From a5f28fe0c923984c263592e82bbce99b0032b794 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 08:50:47 +0000 Subject: [chore]: Bump github.com/gin-contrib/gzip from 1.0.0 to 1.0.1 (#2899) Bumps [github.com/gin-contrib/gzip](https://github.com/gin-contrib/gzip) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/gin-contrib/gzip/releases) - [Changelog](https://github.com/gin-contrib/gzip/blob/master/.goreleaser.yaml) - [Commits](https://github.com/gin-contrib/gzip/compare/v1.0.0...v1.0.1) --- updated-dependencies: - dependency-name: github.com/gin-contrib/gzip dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 15 +- go.sum | 35 +- vendor/github.com/bytedance/sonic/.gitmodules | 7 +- vendor/github.com/bytedance/sonic/Makefile | 116 - vendor/github.com/bytedance/sonic/ast/api.go | 19 +- .../github.com/bytedance/sonic/ast/api_compat.go | 91 +- vendor/github.com/bytedance/sonic/ast/b64_amd64.go | 2 +- vendor/github.com/bytedance/sonic/ast/decode.go | 33 + vendor/github.com/bytedance/sonic/ast/node.go | 22 +- vendor/github.com/bytedance/sonic/ast/parser.go | 5 + vendor/github.com/bytedance/sonic/ast/search.go | 66 +- .../bytedance/sonic/encoder/encoder_amd64.go | 2 + .../bytedance/sonic/encoder/encoder_compat.go | 27 +- vendor/github.com/bytedance/sonic/go.work | 5 +- .../github.com/bytedance/sonic/internal/abi/abi.go | 197 - .../bytedance/sonic/internal/abi/abi_amd64.go | 282 - .../sonic/internal/abi/abi_legacy_amd64.go | 182 - .../sonic/internal/abi/abi_regabi_amd64.go | 316 - .../bytedance/sonic/internal/abi/stubs.go | 35 - .../internal/decoder/assembler_regabi_amd64.go | 3 +- .../bytedance/sonic/internal/decoder/primitives.go | 2 - .../sonic/internal/decoder/stubs_go116.go | 4 +- .../sonic/internal/decoder/stubs_go120.go | 4 +- .../internal/encoder/assembler_regabi_amd64.go | 2 + .../bytedance/sonic/internal/encoder/encoder.go | 2 +- .../bytedance/sonic/internal/encoder/primitives.go | 9 +- .../sonic/internal/encoder/stubs_go116.go | 4 +- .../sonic/internal/encoder/stubs_go117.go | 4 +- .../sonic/internal/encoder/stubs_go120.go | 4 +- .../sonic/internal/encoder/stubs_go121.go | 4 +- .../bytedance/sonic/internal/native/avx/f32toa.go | 36 + .../sonic/internal/native/avx/f32toa_subr.go | 44 + .../sonic/internal/native/avx/f32toa_text_amd64.go | 964 + .../bytedance/sonic/internal/native/avx/f64toa.go | 37 + .../sonic/internal/native/avx/f64toa_subr.go | 46 + .../sonic/internal/native/avx/f64toa_text_amd64.go | 2402 + .../sonic/internal/native/avx/get_by_path.go | 37 + .../sonic/internal/native/avx/get_by_path_subr.go | 45 + .../internal/native/avx/get_by_path_text_amd64.go | 6049 ++ .../sonic/internal/native/avx/html_escape.go | 36 + .../sonic/internal/native/avx/html_escape_subr.go | 45 + .../internal/native/avx/html_escape_text_amd64.go | 620 + .../bytedance/sonic/internal/native/avx/i64toa.go | 37 + .../sonic/internal/native/avx/i64toa_subr.go | 47 + .../sonic/internal/native/avx/i64toa_text_amd64.go | 639 + .../bytedance/sonic/internal/native/avx/lspace.go | 36 + .../sonic/internal/native/avx/lspace_subr.go | 37 + .../sonic/internal/native/avx/lspace_text_amd64.go | 44 + .../sonic/internal/native/avx/native_amd64.go | 188 - .../sonic/internal/native/avx/native_export.go | 47 + .../sonic/internal/native/avx/native_subr_amd64.go | 607 - .../sonic/internal/native/avx/native_text_amd64.go | 14088 --- .../bytedance/sonic/internal/native/avx/quote.go | 35 + .../sonic/internal/native/avx/quote_subr.go | 46 + .../sonic/internal/native/avx/quote_text_amd64.go | 1085 + .../sonic/internal/native/avx/skip_array.go | 37 + .../sonic/internal/native/avx/skip_array_subr.go | 46 + .../internal/native/avx/skip_array_text_amd64.go | 2854 + .../sonic/internal/native/avx/skip_number.go | 36 + .../sonic/internal/native/avx/skip_number_subr.go | 46 + .../internal/native/avx/skip_number_text_amd64.go | 394 + .../sonic/internal/native/avx/skip_object.go | 37 + .../sonic/internal/native/avx/skip_object_subr.go | 46 + .../internal/native/avx/skip_object_text_amd64.go | 2854 + .../sonic/internal/native/avx/skip_one.go | 37 + .../sonic/internal/native/avx/skip_one_fast.go | 37 + .../internal/native/avx/skip_one_fast_subr.go | 45 + .../native/avx/skip_one_fast_text_amd64.go | 945 + .../sonic/internal/native/avx/skip_one_subr.go | 46 + .../internal/native/avx/skip_one_text_amd64.go | 2830 + .../bytedance/sonic/internal/native/avx/u64toa.go | 36 + .../sonic/internal/native/avx/u64toa_subr.go | 39 + .../sonic/internal/native/avx/u64toa_text_amd64.go | 371 + .../bytedance/sonic/internal/native/avx/unquote.go | 36 + .../sonic/internal/native/avx/unquote_subr.go | 46 + .../internal/native/avx/unquote_text_amd64.go | 639 + .../sonic/internal/native/avx/validate_one.go | 37 + .../sonic/internal/native/avx/validate_one_subr.go | 46 + .../internal/native/avx/validate_one_text_amd64.go | 2851 + .../sonic/internal/native/avx/validate_utf8.go | 39 + .../internal/native/avx/validate_utf8_fast.go | 36 + .../internal/native/avx/validate_utf8_fast_subr.go | 41 + .../native/avx/validate_utf8_fast_text_amd64.go | 156 + .../internal/native/avx/validate_utf8_subr.go | 44 + .../native/avx/validate_utf8_text_amd64.go | 191 + .../bytedance/sonic/internal/native/avx/value.go | 33 + .../sonic/internal/native/avx/value_subr.go | 46 + .../sonic/internal/native/avx/value_text_amd64.go | 5639 ++ .../bytedance/sonic/internal/native/avx/vnumber.go | 33 + .../sonic/internal/native/avx/vnumber_subr.go | 46 + .../internal/native/avx/vnumber_text_amd64.go | 4387 + .../bytedance/sonic/internal/native/avx/vsigned.go | 33 + .../sonic/internal/native/avx/vsigned_subr.go | 50 + .../internal/native/avx/vsigned_text_amd64.go | 112 + .../bytedance/sonic/internal/native/avx/vstring.go | 33 + .../sonic/internal/native/avx/vstring_subr.go | 46 + .../internal/native/avx/vstring_text_amd64.go | 643 + .../sonic/internal/native/avx/vunsigned.go | 33 + .../sonic/internal/native/avx/vunsigned_subr.go | 43 + .../internal/native/avx/vunsigned_text_amd64.go | 108 + .../bytedance/sonic/internal/native/avx2/f32toa.go | 36 + .../sonic/internal/native/avx2/f32toa_subr.go | 44 + .../internal/native/avx2/f32toa_text_amd64.go | 964 + .../bytedance/sonic/internal/native/avx2/f64toa.go | 37 + .../sonic/internal/native/avx2/f64toa_subr.go | 46 + .../internal/native/avx2/f64toa_text_amd64.go | 2402 + .../sonic/internal/native/avx2/get_by_path.go | 37 + .../sonic/internal/native/avx2/get_by_path_subr.go | 45 + .../internal/native/avx2/get_by_path_text_amd64.go | 6531 ++ .../sonic/internal/native/avx2/html_escape.go | 36 + .../sonic/internal/native/avx2/html_escape_subr.go | 45 + .../internal/native/avx2/html_escape_text_amd64.go | 845 + .../bytedance/sonic/internal/native/avx2/i64toa.go | 37 + .../sonic/internal/native/avx2/i64toa_subr.go | 47 + .../internal/native/avx2/i64toa_text_amd64.go | 639 + .../bytedance/sonic/internal/native/avx2/lspace.go | 36 + .../sonic/internal/native/avx2/lspace_subr.go | 37 + .../internal/native/avx2/lspace_text_amd64.go | 110 + .../sonic/internal/native/avx2/native_amd64.go | 188 - .../sonic/internal/native/avx2/native_export.go | 47 + .../internal/native/avx2/native_subr_amd64.go | 614 - .../internal/native/avx2/native_text_amd64.go | 14825 --- .../bytedance/sonic/internal/native/avx2/quote.go | 35 + .../sonic/internal/native/avx2/quote_subr.go | 46 + .../sonic/internal/native/avx2/quote_text_amd64.go | 1354 + .../sonic/internal/native/avx2/skip_array.go | 37 + .../sonic/internal/native/avx2/skip_array_subr.go | 46 + .../internal/native/avx2/skip_array_text_amd64.go | 3082 + .../sonic/internal/native/avx2/skip_number.go | 36 + .../sonic/internal/native/avx2/skip_number_subr.go | 46 + .../internal/native/avx2/skip_number_text_amd64.go | 521 + .../sonic/internal/native/avx2/skip_object.go | 37 + .../sonic/internal/native/avx2/skip_object_subr.go | 46 + .../internal/native/avx2/skip_object_text_amd64.go | 3082 + .../sonic/internal/native/avx2/skip_one.go | 37 + .../sonic/internal/native/avx2/skip_one_fast.go | 37 + .../internal/native/avx2/skip_one_fast_subr.go | 45 + .../native/avx2/skip_one_fast_text_amd64.go | 952 + .../sonic/internal/native/avx2/skip_one_subr.go | 46 + .../internal/native/avx2/skip_one_text_amd64.go | 3068 + .../bytedance/sonic/internal/native/avx2/u64toa.go | 36 + .../sonic/internal/native/avx2/u64toa_subr.go | 39 + .../internal/native/avx2/u64toa_text_amd64.go | 371 + .../sonic/internal/native/avx2/unquote.go | 36 + .../sonic/internal/native/avx2/unquote_subr.go | 46 + .../internal/native/avx2/unquote_text_amd64.go | 676 + .../sonic/internal/native/avx2/validate_one.go | 37 + .../internal/native/avx2/validate_one_subr.go | 46 + .../native/avx2/validate_one_text_amd64.go | 3079 + .../sonic/internal/native/avx2/validate_utf8.go | 39 + .../internal/native/avx2/validate_utf8_fast.go | 36 + .../native/avx2/validate_utf8_fast_subr.go | 40 + .../native/avx2/validate_utf8_fast_text_amd64.go | 739 + .../internal/native/avx2/validate_utf8_subr.go | 44 + .../native/avx2/validate_utf8_text_amd64.go | 191 + .../bytedance/sonic/internal/native/avx2/value.go | 33 + .../sonic/internal/native/avx2/value_subr.go | 46 + .../sonic/internal/native/avx2/value_text_amd64.go | 5874 ++ .../sonic/internal/native/avx2/vnumber.go | 33 + .../sonic/internal/native/avx2/vnumber_subr.go | 46 + .../internal/native/avx2/vnumber_text_amd64.go | 4521 + .../sonic/internal/native/avx2/vsigned.go | 33 + .../sonic/internal/native/avx2/vsigned_subr.go | 50 + .../internal/native/avx2/vsigned_text_amd64.go | 112 + .../sonic/internal/native/avx2/vstring.go | 33 + .../sonic/internal/native/avx2/vstring_subr.go | 46 + .../internal/native/avx2/vstring_text_amd64.go | 585 + .../sonic/internal/native/avx2/vunsigned.go | 33 + .../sonic/internal/native/avx2/vunsigned_subr.go | 43 + .../internal/native/avx2/vunsigned_text_amd64.go | 108 + .../sonic/internal/native/dispatch_amd64.go | 179 +- .../sonic/internal/native/dispatch_arm64.go | 2 +- .../bytedance/sonic/internal/native/f32toa.tmpl | 36 + .../bytedance/sonic/internal/native/f64toa.tmpl | 37 + .../sonic/internal/native/fastfloat_test.tmpl | 5 + .../sonic/internal/native/fastint_test.tmpl | 5 + .../sonic/internal/native/get_by_path.tmpl | 37 + .../sonic/internal/native/html_escape.tmpl | 36 + .../bytedance/sonic/internal/native/i64toa.tmpl | 37 + .../bytedance/sonic/internal/native/lspace.tmpl | 36 + .../sonic/internal/native/native_amd64.tmpl | 183 - .../sonic/internal/native/native_arm64.tmpl | 246 - .../sonic/internal/native/native_export.tmpl | 47 + .../sonic/internal/native/native_export_arm64.tmpl | 47 - .../sonic/internal/native/native_test.tmpl | 5 + .../sonic/internal/native/neon/f32toa_arm64.s | 2 +- .../sonic/internal/native/neon/f64toa_arm64.s | 2 +- .../sonic/internal/native/neon/get_by_path_arm64.s | 7798 +- .../internal/native/neon/validate_one_arm64.s | 3391 +- .../bytedance/sonic/internal/native/quote.tmpl | 35 + .../sonic/internal/native/recover_test.tmpl | 1115 +- .../sonic/internal/native/skip_array.tmpl | 37 + .../sonic/internal/native/skip_number.tmpl | 36 + .../sonic/internal/native/skip_object.tmpl | 37 + .../bytedance/sonic/internal/native/skip_one.tmpl | 37 + .../sonic/internal/native/skip_one_fast.tmpl | 37 + .../bytedance/sonic/internal/native/sse/f32toa.go | 36 + .../sonic/internal/native/sse/f32toa_subr.go | 44 + .../sonic/internal/native/sse/f32toa_text_amd64.go | 956 + .../bytedance/sonic/internal/native/sse/f64toa.go | 37 + .../sonic/internal/native/sse/f64toa_subr.go | 46 + .../sonic/internal/native/sse/f64toa_text_amd64.go | 2394 + .../sonic/internal/native/sse/get_by_path.go | 37 + .../sonic/internal/native/sse/get_by_path_subr.go | 46 + .../internal/native/sse/get_by_path_text_amd64.go | 6541 ++ .../sonic/internal/native/sse/html_escape.go | 36 + .../sonic/internal/native/sse/html_escape_subr.go | 45 + .../internal/native/sse/html_escape_text_amd64.go | 624 + .../bytedance/sonic/internal/native/sse/i64toa.go | 37 + .../sonic/internal/native/sse/i64toa_subr.go | 47 + .../sonic/internal/native/sse/i64toa_text_amd64.go | 666 + .../bytedance/sonic/internal/native/sse/lspace.go | 36 + .../sonic/internal/native/sse/lspace_subr.go | 37 + .../sonic/internal/native/sse/lspace_text_amd64.go | 44 + .../sonic/internal/native/sse/native_amd64.go | 188 - .../sonic/internal/native/sse/native_export.go | 47 + .../sonic/internal/native/sse/native_subr_amd64.go | 608 - .../sonic/internal/native/sse/native_text_amd64.go | 14282 --- .../bytedance/sonic/internal/native/sse/quote.go | 35 + .../sonic/internal/native/sse/quote_subr.go | 46 + .../sonic/internal/native/sse/quote_text_amd64.go | 1093 + .../sonic/internal/native/sse/skip_array.go | 37 + .../sonic/internal/native/sse/skip_array_subr.go | 46 + .../internal/native/sse/skip_array_text_amd64.go | 3021 + .../sonic/internal/native/sse/skip_number.go | 36 + .../sonic/internal/native/sse/skip_number_subr.go | 46 + .../internal/native/sse/skip_number_text_amd64.go | 394 + .../sonic/internal/native/sse/skip_object.go | 37 + .../sonic/internal/native/sse/skip_object_subr.go | 46 + .../internal/native/sse/skip_object_text_amd64.go | 3021 + .../sonic/internal/native/sse/skip_one.go | 37 + .../sonic/internal/native/sse/skip_one_fast.go | 37 + .../internal/native/sse/skip_one_fast_subr.go | 46 + .../native/sse/skip_one_fast_text_amd64.go | 1039 + .../sonic/internal/native/sse/skip_one_subr.go | 46 + .../internal/native/sse/skip_one_text_amd64.go | 2974 + .../bytedance/sonic/internal/native/sse/u64toa.go | 36 + .../sonic/internal/native/sse/u64toa_subr.go | 39 + .../sonic/internal/native/sse/u64toa_text_amd64.go | 391 + .../bytedance/sonic/internal/native/sse/unquote.go | 36 + .../sonic/internal/native/sse/unquote_subr.go | 46 + .../internal/native/sse/unquote_text_amd64.go | 639 + .../sonic/internal/native/sse/validate_one.go | 37 + .../sonic/internal/native/sse/validate_one_subr.go | 46 + .../internal/native/sse/validate_one_text_amd64.go | 3018 + .../sonic/internal/native/sse/validate_utf8.go | 39 + .../internal/native/sse/validate_utf8_fast.go | 36 + .../internal/native/sse/validate_utf8_fast_subr.go | 41 + .../native/sse/validate_utf8_fast_text_amd64.go | 156 + .../internal/native/sse/validate_utf8_subr.go | 44 + .../native/sse/validate_utf8_text_amd64.go | 191 + .../bytedance/sonic/internal/native/sse/value.go | 33 + .../sonic/internal/native/sse/value_subr.go | 46 + .../sonic/internal/native/sse/value_text_amd64.go | 5655 ++ .../bytedance/sonic/internal/native/sse/vnumber.go | 33 + .../sonic/internal/native/sse/vnumber_subr.go | 46 + .../internal/native/sse/vnumber_text_amd64.go | 4378 + .../bytedance/sonic/internal/native/sse/vsigned.go | 33 + .../sonic/internal/native/sse/vsigned_subr.go | 50 + .../internal/native/sse/vsigned_text_amd64.go | 112 + .../bytedance/sonic/internal/native/sse/vstring.go | 33 + .../sonic/internal/native/sse/vstring_subr.go | 46 + .../internal/native/sse/vstring_text_amd64.go | 663 + .../sonic/internal/native/sse/vunsigned.go | 33 + .../sonic/internal/native/sse/vunsigned_subr.go | 43 + .../internal/native/sse/vunsigned_text_amd64.go | 108 + .../bytedance/sonic/internal/native/types/types.go | 2 + .../bytedance/sonic/internal/native/u64toa.tmpl | 36 + .../bytedance/sonic/internal/native/unquote.tmpl | 36 + .../sonic/internal/native/validate_one.tmpl | 37 + .../sonic/internal/native/validate_utf8.tmpl | 39 + .../sonic/internal/native/validate_utf8_fast.tmpl | 36 + .../bytedance/sonic/internal/native/value.tmpl | 33 + .../bytedance/sonic/internal/native/vnumber.tmpl | 33 + .../bytedance/sonic/internal/native/vsigned.tmpl | 33 + .../bytedance/sonic/internal/native/vstring.tmpl | 33 + .../bytedance/sonic/internal/native/vunsigned.tmpl | 33 + .../bytedance/sonic/internal/rt/fastvalue.go | 9 + vendor/github.com/bytedance/sonic/loader/LICENSE | 201 + .../bytedance/sonic/loader/funcdata_compat.go | 2 +- .../bytedance/sonic/loader/funcdata_go116.go | 2 +- .../bytedance/sonic/loader/funcdata_go118.go | 2 +- .../bytedance/sonic/loader/funcdata_go120.go | 2 +- .../bytedance/sonic/loader/funcdata_go121.go | 2 +- .../bytedance/sonic/loader/funcdata_latest.go | 2 +- .../bytedance/sonic/loader/internal/abi/abi.go | 197 + .../sonic/loader/internal/abi/abi_amd64.go | 282 + .../sonic/loader/internal/abi/abi_legacy_amd64.go | 182 + .../sonic/loader/internal/abi/abi_regabi_amd64.go | 316 + .../bytedance/sonic/loader/internal/abi/stubs.go | 35 + .../bytedance/sonic/loader/internal/rt/fastmem.go | 62 + .../sonic/loader/internal/rt/fastvalue.go | 183 + .../bytedance/sonic/loader/internal/rt/stackmap.go | 181 + .../bytedance/sonic/loader/loader_latest.go | 2 +- .../github.com/bytedance/sonic/loader/wrapper.go | 4 +- .../github.com/bytedance/sonic/unquote/unquote.go | 31 +- vendor/github.com/chenzhuoyu/base64x/.gitignore | 43 - vendor/github.com/chenzhuoyu/base64x/.gitmodules | 3 - vendor/github.com/chenzhuoyu/base64x/LICENSE | 201 - vendor/github.com/chenzhuoyu/base64x/Makefile | 29 - vendor/github.com/chenzhuoyu/base64x/README.md | 4 - vendor/github.com/chenzhuoyu/base64x/base64x.go | 151 - vendor/github.com/chenzhuoyu/base64x/cpuid.go | 17 - vendor/github.com/chenzhuoyu/base64x/faststr.go | 35 - .../github.com/chenzhuoyu/base64x/native_amd64.go | 42 - .../chenzhuoyu/base64x/native_subr_amd64.go | 63 - .../chenzhuoyu/base64x/native_text_amd64.go | 5305 - vendor/github.com/chenzhuoyu/iasm/LICENSE | 201 - vendor/github.com/chenzhuoyu/iasm/expr/ast.go | 245 - vendor/github.com/chenzhuoyu/iasm/expr/errors.go | 37 - vendor/github.com/chenzhuoyu/iasm/expr/ops.go | 51 - vendor/github.com/chenzhuoyu/iasm/expr/parser.go | 313 - vendor/github.com/chenzhuoyu/iasm/expr/pools.go | 26 - vendor/github.com/chenzhuoyu/iasm/expr/term.go | 7 - vendor/github.com/chenzhuoyu/iasm/expr/utils.go | 61 - vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go | 235 - vendor/github.com/chenzhuoyu/iasm/x86_64/asm.s | 0 .../github.com/chenzhuoyu/iasm/x86_64/assembler.go | 1803 - .../chenzhuoyu/iasm/x86_64/assembler_alias.go | 33 - vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go | 63 - .../github.com/chenzhuoyu/iasm/x86_64/encodings.go | 675 - .../chenzhuoyu/iasm/x86_64/instructions.go | 97194 ------------------ .../chenzhuoyu/iasm/x86_64/instructions_table.go | 12291 --- .../github.com/chenzhuoyu/iasm/x86_64/operands.go | 649 - vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go | 38 - .../github.com/chenzhuoyu/iasm/x86_64/program.go | 568 - .../github.com/chenzhuoyu/iasm/x86_64/registers.go | 677 - vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go | 131 - vendor/github.com/cloudwego/base64x/.gitignore | 30 + vendor/github.com/cloudwego/base64x/.golangci.yaml | 37 + .../github.com/cloudwego/base64x/.licenserc.yaml | 14 + .../cloudwego/base64x/CODE_OF_CONDUCT.md | 128 + .../github.com/cloudwego/base64x/CONTRIBUTING.md | 55 + vendor/github.com/cloudwego/base64x/LICENSE | 201 + vendor/github.com/cloudwego/base64x/LICENSE-APACHE | 177 + vendor/github.com/cloudwego/base64x/Makefile | 29 + vendor/github.com/cloudwego/base64x/README.md | 4 + vendor/github.com/cloudwego/base64x/_typos.toml | 4 + vendor/github.com/cloudwego/base64x/base64x.go | 167 + .../cloudwego/base64x/check_branch_name.sh | 10 + vendor/github.com/cloudwego/base64x/cpuid.go | 33 + vendor/github.com/cloudwego/base64x/faststr.go | 51 + .../github.com/cloudwego/base64x/native_amd64.go | 58 + .../cloudwego/base64x/native_subr_amd64.go | 63 + .../cloudwego/base64x/native_text_amd64.go | 5305 + vendor/github.com/cloudwego/iasm/LICENSE-APACHE | 177 + vendor/github.com/cloudwego/iasm/expr/ast.go | 261 + vendor/github.com/cloudwego/iasm/expr/errors.go | 53 + vendor/github.com/cloudwego/iasm/expr/ops.go | 67 + vendor/github.com/cloudwego/iasm/expr/parser.go | 329 + vendor/github.com/cloudwego/iasm/expr/pools.go | 42 + vendor/github.com/cloudwego/iasm/expr/term.go | 23 + vendor/github.com/cloudwego/iasm/expr/utils.go | 77 + vendor/github.com/cloudwego/iasm/x86_64/arch.go | 251 + vendor/github.com/cloudwego/iasm/x86_64/asm.s | 16 + .../github.com/cloudwego/iasm/x86_64/assembler.go | 1819 + .../cloudwego/iasm/x86_64/assembler_alias.go | 49 + vendor/github.com/cloudwego/iasm/x86_64/eface.go | 79 + .../github.com/cloudwego/iasm/x86_64/encodings.go | 691 + .../cloudwego/iasm/x86_64/instructions.go | 97210 +++++++++++++++++++ .../cloudwego/iasm/x86_64/instructions_table.go | 12307 +++ .../github.com/cloudwego/iasm/x86_64/operands.go | 665 + vendor/github.com/cloudwego/iasm/x86_64/pools.go | 54 + vendor/github.com/cloudwego/iasm/x86_64/program.go | 584 + .../github.com/cloudwego/iasm/x86_64/registers.go | 693 + vendor/github.com/cloudwego/iasm/x86_64/utils.go | 147 + .../github.com/gin-contrib/gzip/.goreleaser.yaml | 54 +- .../go-playground/validator/v10/README.md | 2 +- .../go-playground/validator/v10/baked_in.go | 48 +- .../go-playground/validator/v10/country_codes.go | 27 + .../github.com/go-playground/validator/v10/doc.go | 9 + .../go-playground/validator/v10/regexes.go | 4 +- .../pelletier/go-toml/v2/internal/tracker/seen.go | 12 +- .../github.com/pelletier/go-toml/v2/marshaler.go | 4 + .../protobuf/encoding/protojson/encode.go | 20 +- .../protobuf/encoding/prototext/encode.go | 20 +- .../protobuf/internal/descfmt/stringer.go | 1 + .../editiondefaults/editions_defaults.binpb | Bin 63 -> 78 bytes .../protobuf/internal/encoding/tag/tag.go | 4 +- .../protobuf/internal/errors/errors.go | 15 + .../protobuf/internal/filedesc/desc.go | 84 +- .../protobuf/internal/filedesc/desc_init.go | 41 +- .../protobuf/internal/filedesc/desc_lazy.go | 44 +- .../protobuf/internal/filedesc/editions.go | 18 +- .../protobuf/internal/filedesc/placeholder.go | 1 + .../protobuf/internal/genid/go_features_gen.go | 2 +- .../protobuf/internal/impl/codec_field.go | 64 +- .../protobuf/internal/impl/codec_map.go | 15 +- .../protobuf/internal/impl/legacy_enum.go | 1 + .../protobuf/internal/impl/legacy_extension.go | 2 +- .../protobuf/internal/impl/legacy_file.go | 4 +- .../protobuf/internal/impl/legacy_message.go | 10 +- .../protobuf/internal/impl/message_reflect.go | 31 +- .../protobuf/internal/impl/message_reflect_gen.go | 142 +- .../protobuf/internal/version/version.go | 2 +- vendor/google.golang.org/protobuf/proto/decode.go | 2 + vendor/google.golang.org/protobuf/proto/encode.go | 44 +- .../google.golang.org/protobuf/proto/extension.go | 11 +- .../google.golang.org/protobuf/proto/messageset.go | 7 +- vendor/google.golang.org/protobuf/proto/size.go | 2 + .../protobuf/reflect/protoreflect/proto.go | 2 +- .../protobuf/reflect/protoreflect/type.go | 6 + vendor/modules.txt | 31 +- 403 files changed, 252418 insertions(+), 174241 deletions(-) delete mode 100644 vendor/github.com/bytedance/sonic/Makefile delete mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/abi/stubs.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/f32toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/f64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/html_escape.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/i64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/lspace.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/lspace_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/lspace_text_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_export.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/quote.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/quote_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/quote_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_array.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_number.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_object.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_one.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/u64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/unquote.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/unquote_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/unquote_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_one.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/value.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/value_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/value_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vnumber.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vsigned.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vstring.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vstring_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vstring_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/lspace.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_text_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_export.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/quote.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/quote_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/quote_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/unquote.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/value.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/value_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/value_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vstring.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/f32toa.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/f64toa.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/get_by_path.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/html_escape.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/i64toa.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/lspace.tmpl delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_export.tmpl delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/quote.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/skip_array.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/skip_number.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/skip_object.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/skip_one.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/skip_one_fast.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/f32toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/f64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/html_escape.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/i64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/lspace.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/lspace_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/lspace_text_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_export.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go delete mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/quote.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/quote_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/quote_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_array.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_number.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_object.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_one.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/u64toa.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/unquote.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/unquote_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/unquote_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_one.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/value.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/value_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/value_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vnumber.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vsigned.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vstring.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vstring_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vstring_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_subr.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_text_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/internal/native/u64toa.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/unquote.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/validate_one.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/validate_utf8.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/validate_utf8_fast.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/value.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/vnumber.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/vsigned.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/vstring.tmpl create mode 100644 vendor/github.com/bytedance/sonic/internal/native/vunsigned.tmpl create mode 100644 vendor/github.com/bytedance/sonic/loader/LICENSE create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/abi/abi.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/abi/abi_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/abi/abi_legacy_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/abi/abi_regabi_amd64.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/abi/stubs.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/rt/fastmem.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/rt/fastvalue.go create mode 100644 vendor/github.com/bytedance/sonic/loader/internal/rt/stackmap.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/.gitignore delete mode 100644 vendor/github.com/chenzhuoyu/base64x/.gitmodules delete mode 100644 vendor/github.com/chenzhuoyu/base64x/LICENSE delete mode 100644 vendor/github.com/chenzhuoyu/base64x/Makefile delete mode 100644 vendor/github.com/chenzhuoyu/base64x/README.md delete mode 100644 vendor/github.com/chenzhuoyu/base64x/base64x.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/cpuid.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/faststr.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/native_amd64.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go delete mode 100644 vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/LICENSE delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/ast.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/errors.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/ops.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/parser.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/pools.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/term.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/expr/utils.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/asm.s delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/program.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go delete mode 100644 vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go create mode 100644 vendor/github.com/cloudwego/base64x/.gitignore create mode 100644 vendor/github.com/cloudwego/base64x/.golangci.yaml create mode 100644 vendor/github.com/cloudwego/base64x/.licenserc.yaml create mode 100644 vendor/github.com/cloudwego/base64x/CODE_OF_CONDUCT.md create mode 100644 vendor/github.com/cloudwego/base64x/CONTRIBUTING.md create mode 100644 vendor/github.com/cloudwego/base64x/LICENSE create mode 100644 vendor/github.com/cloudwego/base64x/LICENSE-APACHE create mode 100644 vendor/github.com/cloudwego/base64x/Makefile create mode 100644 vendor/github.com/cloudwego/base64x/README.md create mode 100644 vendor/github.com/cloudwego/base64x/_typos.toml create mode 100644 vendor/github.com/cloudwego/base64x/base64x.go create mode 100644 vendor/github.com/cloudwego/base64x/check_branch_name.sh create mode 100644 vendor/github.com/cloudwego/base64x/cpuid.go create mode 100644 vendor/github.com/cloudwego/base64x/faststr.go create mode 100644 vendor/github.com/cloudwego/base64x/native_amd64.go create mode 100644 vendor/github.com/cloudwego/base64x/native_subr_amd64.go create mode 100644 vendor/github.com/cloudwego/base64x/native_text_amd64.go create mode 100644 vendor/github.com/cloudwego/iasm/LICENSE-APACHE create mode 100644 vendor/github.com/cloudwego/iasm/expr/ast.go create mode 100644 vendor/github.com/cloudwego/iasm/expr/errors.go create mode 100644 vendor/github.com/cloudwego/iasm/expr/ops.go create mode 100644 vendor/github.com/cloudwego/iasm/expr/parser.go create mode 100644 vendor/github.com/cloudwego/iasm/expr/pools.go create mode 100644 vendor/github.com/cloudwego/iasm/expr/term.go create mode 100644 vendor/github.com/cloudwego/iasm/expr/utils.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/arch.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/asm.s create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/assembler.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/assembler_alias.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/eface.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/encodings.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/instructions.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/instructions_table.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/operands.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/pools.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/program.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/registers.go create mode 100644 vendor/github.com/cloudwego/iasm/x86_64/utils.go diff --git a/go.mod b/go.mod index ced5ddc29..64ff422ca 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( github.com/coreos/go-oidc/v3 v3.10.0 github.com/disintegration/imaging v1.6.2 github.com/gin-contrib/cors v1.7.1 - github.com/gin-contrib/gzip v1.0.0 + github.com/gin-contrib/gzip v1.0.1 github.com/gin-contrib/sessions v1.0.0 github.com/gin-gonic/gin v1.9.1 github.com/go-playground/form/v4 v4.2.1 @@ -95,12 +95,13 @@ require ( github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bytedance/sonic v1.11.3 // indirect + github.com/bytedance/sonic v1.11.6 // indirect + github.com/bytedance/sonic/loader v0.1.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect - github.com/chenzhuoyu/iasm v0.9.1 // indirect github.com/cilium/ebpf v0.9.1 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cloudwego/iasm v0.2.0 // indirect github.com/containerd/cgroups/v3 v3.0.1 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/cornelk/hashmap v1.0.8 // indirect @@ -134,7 +135,7 @@ require ( github.com/go-openapi/validate v0.24.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.19.0 // indirect + github.com/go-playground/validator/v10 v10.20.0 // indirect github.com/go-xmlfmt/xmlfmt v0.0.0-20211206191508-7fd73a941850 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus/v5 v5.0.4 // indirect @@ -175,7 +176,7 @@ require ( github.com/ncruces/go-strftime v0.1.9 // indirect github.com/opencontainers/runtime-spec v1.0.2 // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/pelletier/go-toml/v2 v2.2.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.0 // indirect @@ -217,7 +218,7 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 // indirect diff --git a/go.sum b/go.sum index 7a64956ed..08e45cb31 100644 --- a/go.sum +++ b/go.sum @@ -107,28 +107,25 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZc9Do= github.com/buckket/go-blurhash v1.1.0/go.mod h1:aT2iqo5W9vu9GpyoLErKfTHwgODsZp3bQfXjXJUxNb8= -github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= -github.com/bytedance/sonic v1.11.3 h1:jRN+yEjakWh8aK5FzrciUHG8OFXK+4/KrAX/ysEtHAA= -github.com/bytedance/sonic v1.11.3/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= +github.com/bytedance/sonic v1.11.6 h1:oUp34TzMlL+OY1OUWxHqsdkgC/Zfc85zGqw9siXjrc0= +github.com/bytedance/sonic v1.11.6/go.mod h1:LysEHSvpvDySVdC2f87zGWf6CIKJcAvqab1ZaiQtds4= +github.com/bytedance/sonic/loader v0.1.1 h1:c+e5Pt1k/cy5wMveRDyk2X4B9hF4g7an8N3zCYjJFNM= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/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/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= -github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= -github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 h1:ox2F0PSMlrAAiAdknSRMDrAr8mfxPCfSZolH+/qQnyQ= github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08/go.mod h1:pCxVEbcm3AMg7ejXyorUXi6HQCzOIBf7zEDVPtw0/U4= @@ -192,8 +189,8 @@ github.com/gavv/httpexpect v2.0.0+incompatible h1:1X9kcRshkSKEjNJJxX9Y9mQ5BRfbxU github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= github.com/gin-contrib/cors v1.7.1 h1:s9SIppU/rk8enVvkzwiC2VK3UZ/0NNGsWfUKvV55rqs= github.com/gin-contrib/cors v1.7.1/go.mod h1:n/Zj7B4xyrgk/cX1WCX2dkzFfaNm/xJb6oIUk7WTtps= -github.com/gin-contrib/gzip v1.0.0 h1:UKN586Po/92IDX6ie5CWLgMI81obiIp5nSP85T3wlTk= -github.com/gin-contrib/gzip v1.0.0/go.mod h1:CtG7tQrPB3vIBo6Gat9FVUsis+1emjvQqd66ME5TdnE= +github.com/gin-contrib/gzip v1.0.1 h1:HQ8ENHODeLY7a4g1Au/46Z92bdGFl74OhxcZble9WJE= +github.com/gin-contrib/gzip v1.0.1/go.mod h1:njt428fdUNRvjuJf16tZMYZ2Yl+WQB53X5wmhDwXvC4= github.com/gin-contrib/sessions v1.0.0 h1:r5GLta4Oy5xo9rAwMHx8B4wLpeRGHMdz9NafzJAdP8Y= github.com/gin-contrib/sessions v1.0.0/go.mod h1:DN0f4bvpqMQElDdi+gNGScrP2QEI04IErRyMFyorUOI= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= @@ -248,8 +245,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn0+wvQ3bZ8b/AU4= -github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.20.0 h1:K9ISHbSaI0lyB2eWMPJo+kOS/FBExVwjEviJTixqxL8= +github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-session/session v3.1.2+incompatible/go.mod h1:8B3iivBQjrz/JtC68Np2T1yBBLxTan3mn/3OM0CyRt0= github.com/go-swagger/go-swagger v0.30.6-0.20240418033037-c46c303aaa02 h1:J6YiT/eg3gAfKMdVCkWXe6khsO+nxa8W4URZ4AUqzbA= github.com/go-swagger/go-swagger v0.30.6-0.20240418033037-c46c303aaa02/go.mod h1:i1/E+d8iPNReSE7y04FaVu5OPKB3il5cn+T1Egogg3I= @@ -464,8 +461,8 @@ github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e h1:s2RNOM/IGd github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e/go.mod h1:nBdnFKj15wFbf94Rwfq4m30eAcyY9V/IyKAGQFtqkW0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= -github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= -github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -960,8 +957,8 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= +google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/bytedance/sonic/.gitmodules b/vendor/github.com/bytedance/sonic/.gitmodules index b8d11c921..ea84b991a 100644 --- a/vendor/github.com/bytedance/sonic/.gitmodules +++ b/vendor/github.com/bytedance/sonic/.gitmodules @@ -1,3 +1,6 @@ -[submodule "tools/asm2asm"] +[submodule "cloudwego"] path = tools/asm2asm - url = https://github.com/chenzhuoyu/asm2asm + url = https://github.com/cloudwego/asm2asm.git +[submodule "tools/simde"] + path = tools/simde + url = https://github.com/simd-everywhere/simde.git diff --git a/vendor/github.com/bytedance/sonic/Makefile b/vendor/github.com/bytedance/sonic/Makefile deleted file mode 100644 index 69b8e11f1..000000000 --- a/vendor/github.com/bytedance/sonic/Makefile +++ /dev/null @@ -1,116 +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. -# - -ARCH := avx avx2 sse -TMP_DIR := output -OUT_DIR := internal/native -SRC_FILE := native/native.c - -CPU_avx := amd64 -CPU_avx2 := amd64 -CPU_sse := amd64 - -TMPL_avx := native_test fastint_test fastfloat_test native_amd64 recover_test -TMPL_avx2 := native_test fastint_test fastfloat_test native_amd64 recover_test -TMPL_sse := native_test fastint_test fastfloat_test native_amd64 recover_test - -CFLAGS_avx := -msse -mno-sse4 -mavx -mpclmul -mno-avx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=0 -CFLAGS_avx2 := -msse -mno-sse4 -mavx -mpclmul -mavx2 -mstack-alignment=0 -DUSE_AVX=1 -DUSE_AVX2=1 -CFLAGS_sse := -msse -mno-sse4 -mno-avx -mno-avx2 -mpclmul - -CC_amd64 := clang -ASM2ASM_amd64 := tools/asm2asm/asm2asm.py - -CFLAGS := -mno-red-zone -CFLAGS += -target x86_64-apple-macos11 -CFLAGS += -fno-asynchronous-unwind-tables -CFLAGS += -fno-builtin -CFLAGS += -fno-exceptions -CFLAGS += -fno-rtti -CFLAGS += -fno-stack-protector -CFLAGS += -nostdlib -CFLAGS += -O3 -CFLAGS += -Wall -Werror - -NATIVE_SRC := $(wildcard native/*.h) -NATIVE_SRC += $(wildcard native/*.c) - -.PHONY: all clean ${ARCH} - -define build_tmpl - $(eval @arch := $(1)) - $(eval @tmpl := $(2)) - $(eval @dest := $(3)) - $(eval @cpu := $(4)) - -${@dest}: ${@tmpl} - mkdir -p $(dir ${@dest}) - echo '// +build ${@cpu}' > ${@dest} - echo >> ${@dest} - echo >> ${@dest} - echo '// Code generated by Makefile, DO NOT EDIT.' >> ${@dest} - echo >> ${@dest} - sed -e 's/{{PACKAGE}}/${@arch}/g' ${@tmpl} >> ${@dest} -endef - -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_text_${@cpu}.go) - $(eval @stubin := ${OUT_DIR}/native_${@cpu}.tmpl) - $(eval @stubout := ${OUT_DIR}/$(1)/native_${@cpu}.go) - -$(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}} -r ${@stubout} ${TMP_DIR}/$(1)/native.s - -$(eval $(call \ - build_tmpl, \ - $(1), \ - ${@stubin}, \ - ${@stubout} \ -)) - -$(foreach \ - tmpl, \ - $(value TMPL_$(1)), \ - $(eval $(call \ - build_tmpl, \ - $(1), \ - ${OUT_DIR}/${tmpl}.tmpl, \ - ${OUT_DIR}/$(1)/${tmpl}.go, \ - $(value CPU_$(1)) \ - )) \ -) -endef - -all: ${ARCH} - -clean: - for arch in ${ARCH}; do \ - rm -vfr ${TMP_DIR}/$${arch}; \ - rm -vfr ${OUT_DIR}/$${arch}; \ - done - -$(foreach \ - arch, \ - ${ARCH}, \ - $(eval $(call build_arch,${arch})) \ -) diff --git a/vendor/github.com/bytedance/sonic/ast/api.go b/vendor/github.com/bytedance/sonic/ast/api.go index 373d62a9f..316a62a9d 100644 --- a/vendor/github.com/bytedance/sonic/ast/api.go +++ b/vendor/github.com/bytedance/sonic/ast/api.go @@ -1,3 +1,4 @@ +//go:build (amd64 && go1.16 && !go1.23) || (arm64 && go1.20 && !go1.23) // +build amd64,go1.16,!go1.23 arm64,go1.20,!go1.23 /* @@ -27,6 +28,7 @@ import ( `github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/rt` uq `github.com/bytedance/sonic/unquote` + `github.com/bytedance/sonic/utf8` ) var typeByte = rt.UnpackEface(byte(0)).Type @@ -101,7 +103,7 @@ func (self *Parser) skip() (int, types.ParsingError) { func (self *Node) encodeInterface(buf *[]byte) error { //WARN: NOT compatible with json.Encoder - return encoder.EncodeInto(buf, self.packAny(), 0) + return encoder.EncodeInto(buf, self.packAny(), encoder.NoEncoderNewline) } func (self *Parser) skipFast() (int, types.ParsingError) { @@ -112,13 +114,22 @@ func (self *Parser) skipFast() (int, types.ParsingError) { return start, 0 } -func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) { - fsm := types.NewStateMachine() +func (self *Parser) getByPath(validate bool, path ...interface{}) (int, types.ParsingError) { + var fsm *types.StateMachine + if validate { + fsm = types.NewStateMachine() + } start := native.GetByPath(&self.s, &self.p, &path, fsm) - types.FreeStateMachine(fsm) + if validate { + types.FreeStateMachine(fsm) + } runtime.KeepAlive(path) if start < 0 { return self.p, types.ParsingError(-start) } return start, 0 } + +func validate_utf8(str string) bool { + return utf8.ValidateString(str) +} diff --git a/vendor/github.com/bytedance/sonic/ast/api_compat.go b/vendor/github.com/bytedance/sonic/ast/api_compat.go index 2c889fc2a..82d1eacd3 100644 --- a/vendor/github.com/bytedance/sonic/ast/api_compat.go +++ b/vendor/github.com/bytedance/sonic/ast/api_compat.go @@ -19,67 +19,69 @@ package ast import ( - `encoding/json` + `encoding/json` + `unicode/utf8` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` ) func init() { - println("WARNING:(ast) sonic only supports Go1.16~1.22, but your environment is not suitable") + println("WARNING:(ast) sonic only supports Go1.16~1.22, but your environment is not suitable") } func quote(buf *[]byte, val string) { - quoteString(buf, val) + quoteString(buf, val) } +// unquote unescapes a internal JSON string (it doesn't count quotas at the begining and end) func unquote(src string) (string, types.ParsingError) { - sp := rt.IndexChar(src, -1) - out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2)) - if !ok { - return "", types.ERR_INVALID_ESCAPE - } - return rt.Mem2Str(out), 0 + sp := rt.IndexChar(src, -1) + out, ok := unquoteBytes(rt.BytesFrom(sp, len(src)+2, len(src)+2)) + if !ok { + return "", types.ERR_INVALID_ESCAPE + } + return rt.Mem2Str(out), 0 } func (self *Parser) decodeValue() (val types.JsonState) { - e, v := decodeValue(self.s, self.p, self.dbuf == nil) - if e < 0 { - return v - } - self.p = e - return v + e, v := decodeValue(self.s, self.p, self.dbuf == nil) + if e < 0 { + return v + } + self.p = e + return v } func (self *Parser) skip() (int, types.ParsingError) { - e, s := skipValue(self.s, self.p) - if e < 0 { - return self.p, types.ParsingError(-e) - } - self.p = e - return s, 0 + e, s := skipValue(self.s, self.p) + if e < 0 { + return self.p, types.ParsingError(-e) + } + self.p = e + return s, 0 } func (self *Parser) skipFast() (int, types.ParsingError) { - e, s := skipValueFast(self.s, self.p) - if e < 0 { - return self.p, types.ParsingError(-e) - } - self.p = e - return s, 0 + e, s := skipValueFast(self.s, self.p) + if e < 0 { + return self.p, types.ParsingError(-e) + } + self.p = e + return s, 0 } func (self *Node) encodeInterface(buf *[]byte) error { - out, err := json.Marshal(self.packAny()) - if err != nil { - return err - } - *buf = append(*buf, out...) - return nil + out, err := json.Marshal(self.packAny()) + if err != nil { + return err + } + *buf = append(*buf, out...) + return nil } -func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) { +func (self *Parser) getByPath(validate bool, path ...interface{}) (int, types.ParsingError) { for _, p := range path { if idx, ok := p.(int); ok && idx >= 0 { if err := self.searchIndex(idx); err != 0 { @@ -93,13 +95,20 @@ func (self *Parser) getByPath(path ...interface{}) (int, types.ParsingError) { panic("path must be either int(>=0) or string") } } - start, e := self.skip() + + var start int + var e types.ParsingError + if validate { + start, e = self.skip() + } else { + start, e = self.skipFast() + } if e != 0 { return self.p, e } - // t := switchRawType(self.s[start]) - // if t == _V_NUMBER { - // self.p = 1 + backward(self.s, self.p-1) - // } return start, 0 } + +func validate_utf8(str string) bool { + return utf8.ValidString(str) +} diff --git a/vendor/github.com/bytedance/sonic/ast/b64_amd64.go b/vendor/github.com/bytedance/sonic/ast/b64_amd64.go index fd3d85e36..3e32b600b 100644 --- a/vendor/github.com/bytedance/sonic/ast/b64_amd64.go +++ b/vendor/github.com/bytedance/sonic/ast/b64_amd64.go @@ -19,7 +19,7 @@ package ast import ( - `github.com/chenzhuoyu/base64x` + `github.com/cloudwego/base64x` ) func decodeBase64(src string) ([]byte, error) { diff --git a/vendor/github.com/bytedance/sonic/ast/decode.go b/vendor/github.com/bytedance/sonic/ast/decode.go index 3e08bfcb2..c521fb5f0 100644 --- a/vendor/github.com/bytedance/sonic/ast/decode.go +++ b/vendor/github.com/bytedance/sonic/ast/decode.go @@ -583,3 +583,36 @@ func skipArray(src string, pos int) (ret int, start int) { pos++ } } + +// DecodeString decodes a JSON string from pos and return golang string. +// - needEsc indicates if to unescaped escaping chars +// - hasEsc tells if the returned string has escaping chars +// - validStr enables validating UTF8 charset +// +func _DecodeString(src string, pos int, needEsc bool, validStr bool) (v string, ret int, hasEsc bool) { + p := NewParserObj(src) + p.p = pos + switch val := p.decodeValue(); val.Vt { + case types.V_STRING: + str := p.s[val.Iv : p.p-1] + if validStr && !validate_utf8(str) { + return "", -int(types.ERR_INVALID_UTF8), false + } + /* fast path: no escape sequence */ + if val.Ep == -1 { + return str, p.p, false + } else if !needEsc { + return str, p.p, true + } + /* unquote the string */ + out, err := unquote(str) + /* check for errors */ + if err != 0 { + return "", -int(err), true + } else { + return out, p.p, true + } + default: + return "", -int(_ERR_UNSUPPORT_TYPE), false + } +} diff --git a/vendor/github.com/bytedance/sonic/ast/node.go b/vendor/github.com/bytedance/sonic/ast/node.go index 9637659b1..ac6d22808 100644 --- a/vendor/github.com/bytedance/sonic/ast/node.go +++ b/vendor/github.com/bytedance/sonic/ast/node.go @@ -852,29 +852,29 @@ func (self *Node) IndexPair(idx int) *Pair { } func (self *Node) indexOrGet(idx int, key string) (*Node, int) { - if err := self.should(types.V_OBJECT, "an object"); err != nil { - return unwrapError(err), idx - } + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return unwrapError(err), idx + } - pr := self.skipIndexPair(idx) - if pr != nil && pr.Key == key { - return &pr.Value, idx - } + pr := self.skipIndexPair(idx) + if pr != nil && pr.Key == key { + return &pr.Value, idx + } - return self.skipKey(key) + return self.skipKey(key) } // IndexOrGet firstly use idx to index a value and check if its key matches // If not, then use the key to search value func (self *Node) IndexOrGet(idx int, key string) *Node { - node, _ := self.indexOrGet(idx, key) - return node + node, _ := self.indexOrGet(idx, key) + return node } // IndexOrGetWithIdx attempts to retrieve a node by index and key, returning the node and its correct index. // If the key does not match at the given index, it searches by key and returns the node with its updated index. func (self *Node) IndexOrGetWithIdx(idx int, key string) (*Node, int) { - return self.indexOrGet(idx, key) + return self.indexOrGet(idx, key) } /** Generic Value Converters **/ diff --git a/vendor/github.com/bytedance/sonic/ast/parser.go b/vendor/github.com/bytedance/sonic/ast/parser.go index 3e5309c19..a1f582623 100644 --- a/vendor/github.com/bytedance/sonic/ast/parser.go +++ b/vendor/github.com/bytedance/sonic/ast/parser.go @@ -653,3 +653,8 @@ func (self *Parser) ExportError(err types.ParsingError) error { Code: err, }.Description()) } + +func backward(src string, i int) int { + for ; i>=0 && isSpace(src[i]); i-- {} + return i +} diff --git a/vendor/github.com/bytedance/sonic/ast/search.go b/vendor/github.com/bytedance/sonic/ast/search.go index 7108e7ea6..a8d1e76f6 100644 --- a/vendor/github.com/bytedance/sonic/ast/search.go +++ b/vendor/github.com/bytedance/sonic/ast/search.go @@ -36,7 +36,7 @@ func NewSearcher(str string) *Searcher { // GetByPathCopy search in depth from top json and returns a **Copied** json node at the path location func (self *Searcher) GetByPathCopy(path ...interface{}) (Node, error) { - return self.getByPath(true, path...) + return self.getByPath(true, true, path...) } // GetByPathNoCopy search in depth from top json and returns a **Referenced** json node at the path location @@ -44,15 +44,15 @@ func (self *Searcher) GetByPathCopy(path ...interface{}) (Node, error) { // WARN: this search directly refer partial json from top json, which has faster speed, // may consumes more memory. func (self *Searcher) GetByPath(path ...interface{}) (Node, error) { - return self.getByPath(false, path...) + return self.getByPath(false, true, path...) } -func (self *Searcher) getByPath(copystring bool, path ...interface{}) (Node, error) { +func (self *Searcher) getByPath(copystring bool, validate bool, path ...interface{}) (Node, error) { var err types.ParsingError var start int self.parser.p = 0 - start, err = self.parser.getByPath(path...) + start, err = self.parser.getByPath(validate, path...) if err != 0 { // for compatibility with old version if err == types.ERR_NOT_FOUND { @@ -78,3 +78,61 @@ func (self *Searcher) getByPath(copystring bool, path ...interface{}) (Node, err } return newRawNode(raw, t), nil } + +// GetByPath searches a path and returns relaction and types of target +func _GetByPath(src string, path ...interface{}) (start int, end int, typ int, err error) { + p := NewParserObj(src) + s, e := p.getByPath(false, path...) + if e != 0 { + // for compatibility with old version + if e == types.ERR_NOT_FOUND { + return -1, -1, 0, ErrNotExist + } + if e == types.ERR_UNSUPPORT_TYPE { + panic("path must be either int(>=0) or string") + } + return -1, -1, 0, p.syntaxError(e) + } + + t := switchRawType(p.s[s]) + if t == _V_NONE { + return -1, -1, 0, ErrNotExist + } + if t == _V_NUMBER { + p.p = 1 + backward(p.s, p.p-1) + } + return s, p.p, int(t), nil +} + +// ValidSyntax check if a json has a valid JSON syntax, +// while not validate UTF-8 charset +func _ValidSyntax(json string) bool { + p := NewParserObj(json) + _, e := p.skip() + if e != 0 { + return false + } + if skipBlank(p.s, p.p) != -int(types.ERR_EOF) { + return false + } + return true +} + +// SkipFast skip a json value in fast-skip algs, +// while not strictly validate JSON syntax and UTF-8 charset. +func _SkipFast(src string, i int) (int, int, error) { + p := NewParserObj(src) + p.p = i + s, e := p.skipFast() + if e != 0 { + return -1, -1, p.ExportError(e) + } + t := switchRawType(p.s[s]) + if t == _V_NONE { + return -1, -1, ErrNotExist + } + if t == _V_NUMBER { + p.p = 1 + backward(p.s, p.p-1) + } + return s, p.p, nil +} diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go b/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go index b4f1b7b52..4dabec6c5 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_amd64.go @@ -22,6 +22,8 @@ import ( `github.com/bytedance/sonic/internal/encoder` ) +// EnableFallback indicates if encoder use fallback +const EnableFallback = false // Encoder represents a specific set of encoder configurations. type Encoder = encoder.Encoder diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go index 320dd9b5c..38761c453 100644 --- a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go +++ b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go @@ -28,9 +28,12 @@ import ( ) func init() { - println("WARNING: sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable") + println("WARNING:(encoder) sonic only supports Go1.16~1.22 && CPU amd64, but your environment is not suitable") } +// EnableFallback indicates if encoder use fallback +const EnableFallback = true + // Options is a set of encoding options. type Options uint64 @@ -188,15 +191,19 @@ func Encode(val interface{}, opts Options) ([]byte, error) { // EncodeInto is like Encode but uses a user-supplied buffer instead of allocating // a new one. func EncodeInto(buf *[]byte, val interface{}, opts Options) error { - if buf == nil { - panic("user-supplied buffer buf is nil") - } - w := bytes.NewBuffer(*buf) - enc := json.NewEncoder(w) - enc.SetEscapeHTML((opts & EscapeHTML) != 0) - err := enc.Encode(val) - *buf = w.Bytes() - return err + if buf == nil { + panic("user-supplied buffer buf is nil") + } + w := bytes.NewBuffer(*buf) + enc := json.NewEncoder(w) + enc.SetEscapeHTML((opts & EscapeHTML) != 0) + err := enc.Encode(val) + *buf = w.Bytes() + l := len(*buf) + if l > 0 && (opts & NoEncoderNewline != 0) && (*buf)[l-1] == '\n' { + *buf = (*buf)[:l-1] + } + return err } // HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029 diff --git a/vendor/github.com/bytedance/sonic/go.work b/vendor/github.com/bytedance/sonic/go.work index e21d6f872..8d2af51b9 100644 --- a/vendor/github.com/bytedance/sonic/go.work +++ b/vendor/github.com/bytedance/sonic/go.work @@ -2,7 +2,8 @@ go 1.18 use ( . - ./generic_test - ./fuzz ./external_jsonlib_test + ./fuzz + ./generic_test + ./loader ) diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi.go b/vendor/github.com/bytedance/sonic/internal/abi/abi.go deleted file mode 100644 index b0aa68a10..000000000 --- a/vendor/github.com/bytedance/sonic/internal/abi/abi.go +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright 2022 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package abi - -import ( - `fmt` - `reflect` - `sort` - `strings` - - `github.com/bytedance/sonic/internal/rt` -) - -type FunctionLayout struct { - FP uint32 - Args []Parameter - Rets []Parameter -} - -func (self FunctionLayout) String() string { - return self.formatFn() -} - -func (self FunctionLayout) ArgSize() uint32 { - size := uintptr(0) - for _, arg := range self.Args { - size += arg.Type.Size() - } - return uint32(size) -} - -type slot struct { - p bool - m uint32 -} - -func (self FunctionLayout) StackMap() *rt.StackMap { - var st []slot - var mb rt.StackMapBuilder - - /* add arguments */ - for _, v := range self.Args { - st = append(st, slot { - m: v.Mem, - p: v.IsPointer, - }) - } - - /* add stack-passed return values */ - for _, v := range self.Rets { - if !v.InRegister { - st = append(st, slot { - m: v.Mem, - p: v.IsPointer, - }) - } - } - - /* sort by memory offset */ - sort.Slice(st, func(i int, j int) bool { - return st[i].m < st[j].m - }) - - /* add the bits */ - for _, v := range st { - mb.AddField(v.p) - } - - /* build the stack map */ - return mb.Build() -} - -func (self FunctionLayout) formatFn() string { - fp := self.FP - return fmt.Sprintf("\n%#04x\nRets:\n%s\nArgs:\n%s", fp, self.formatSeq(self.Rets, &fp), self.formatSeq(self.Args, &fp)) -} - -func (self FunctionLayout) formatSeq(v []Parameter, fp *uint32) string { - nb := len(v) - mm := make([]string, 0, len(v)) - - /* convert each part */ - for i := nb-1; i >=0; i-- { - *fp -= PtrSize - mm = append(mm, fmt.Sprintf("%#04x %s", *fp, v[i].String())) - } - - /* join them together */ - return strings.Join(mm, "\n") -} - -type Frame struct { - desc *FunctionLayout - locals []bool - ccall bool -} - -func NewFrame(desc *FunctionLayout, locals []bool, ccall bool) Frame { - fr := Frame{} - fr.desc = desc - fr.locals = locals - fr.ccall = ccall - return fr -} - -func (self *Frame) String() string { - out := self.desc.String() - - off := -8 - out += fmt.Sprintf("\n%#4x [Return PC]", off) - off -= 8 - out += fmt.Sprintf("\n%#4x [RBP]", off) - off -= 8 - - for _, v := range ReservedRegs(self.ccall) { - out += fmt.Sprintf("\n%#4x [%v]", off, v) - off -= PtrSize - } - - for _, b := range self.locals { - out += fmt.Sprintf("\n%#4x [%v]", off, b) - off -= PtrSize - } - - return out -} - -func (self *Frame) Prev() uint32 { - return self.Size() + PtrSize -} - -func (self *Frame) Size() uint32 { - return uint32(self.Offs() + PtrSize) -} - -func (self *Frame) Offs() uint32 { - return uint32(len(ReservedRegs(self.ccall)) * PtrSize + len(self.locals)*PtrSize) -} - -func (self *Frame) ArgPtrs() *rt.StackMap { - return self.desc.StackMap() -} - -func (self *Frame) LocalPtrs() *rt.StackMap { - var m rt.StackMapBuilder - for _, b := range self.locals { - m.AddFields(len(ReservedRegs(self.ccall)), b) - } - return m.Build() -} - -func alignUp(n uint32, a int) uint32 { - return (uint32(n) + uint32(a) - 1) &^ (uint32(a) - 1) -} - -func isPointer(vt reflect.Type) bool { - switch vt.Kind() { - case reflect.Bool : fallthrough - case reflect.Int : fallthrough - case reflect.Int8 : fallthrough - case reflect.Int16 : fallthrough - case reflect.Int32 : fallthrough - case reflect.Int64 : fallthrough - case reflect.Uint : fallthrough - case reflect.Uint8 : fallthrough - case reflect.Uint16 : fallthrough - case reflect.Uint32 : fallthrough - case reflect.Uint64 : fallthrough - case reflect.Float32 : fallthrough - case reflect.Float64 : fallthrough - case reflect.Uintptr : return false - case reflect.Chan : fallthrough - case reflect.Func : fallthrough - case reflect.Map : fallthrough - case reflect.Ptr : fallthrough - case reflect.UnsafePointer : return true - case reflect.Complex64 : fallthrough - case reflect.Complex128 : fallthrough - case reflect.Array : fallthrough - case reflect.Struct : panic("abi: unsupported types") - default : panic("abi: invalid value type") - } -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go b/vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go deleted file mode 100644 index be1a6b7c9..000000000 --- a/vendor/github.com/bytedance/sonic/internal/abi/abi_amd64.go +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Copyright 2022 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package abi - -import ( - `fmt` - `reflect` - `unsafe` - - . `github.com/chenzhuoyu/iasm/x86_64` -) - -const ( - PtrSize = 8 // pointer size - PtrAlign = 8 // pointer alignment -) - -var iregOrderC = []Register{ - RDI, - RSI, - RDX, - RCX, - R8, - R9, -} - -var xregOrderC = []Register{ - XMM0, - XMM1, - XMM2, - XMM3, - XMM4, - XMM5, - XMM6, - XMM7, -} - -var ( - intType = reflect.TypeOf(0) - ptrType = reflect.TypeOf(unsafe.Pointer(nil)) -) - -func (self *Frame) argv(i int) *MemoryOperand { - return Ptr(RSP, int32(self.Prev() + self.desc.Args[i].Mem)) -} - -// spillv is used for growstack spill registers -func (self *Frame) spillv(i int) *MemoryOperand { - // remain one slot for caller return pc - return Ptr(RSP, PtrSize + int32(self.desc.Args[i].Mem)) -} - -func (self *Frame) retv(i int) *MemoryOperand { - return Ptr(RSP, int32(self.Prev() + self.desc.Rets[i].Mem)) -} - -func (self *Frame) resv(i int) *MemoryOperand { - return Ptr(RSP, int32(self.Offs() - uint32((i+1) * PtrSize))) -} - -func (self *Frame) emitGrowStack(p *Program, entry *Label) { - // spill all register arguments - for i, v := range self.desc.Args { - if v.InRegister { - if v.IsFloat == floatKind64 { - p.MOVSD(v.Reg, self.spillv(i)) - } else if v.IsFloat == floatKind32 { - p.MOVSS(v.Reg, self.spillv(i)) - }else { - p.MOVQ(v.Reg, self.spillv(i)) - } - } - } - - // call runtime.morestack_noctxt - p.MOVQ(F_morestack_noctxt, R12) - p.CALLQ(R12) - // load all register arguments - for i, v := range self.desc.Args { - if v.InRegister { - if v.IsFloat == floatKind64 { - p.MOVSD(self.spillv(i), v.Reg) - } else if v.IsFloat == floatKind32 { - p.MOVSS(self.spillv(i), v.Reg) - }else { - p.MOVQ(self.spillv(i), v.Reg) - } - } - } - - // jump back to the function entry - p.JMP(entry) -} - -func (self *Frame) GrowStackTextSize() uint32 { - p := DefaultArch.CreateProgram() - // spill all register arguments - for i, v := range self.desc.Args { - if v.InRegister { - if v.IsFloat == floatKind64 { - p.MOVSD(v.Reg, self.spillv(i)) - } else if v.IsFloat == floatKind32 { - p.MOVSS(v.Reg, self.spillv(i)) - }else { - p.MOVQ(v.Reg, self.spillv(i)) - } - } - } - - // call runtime.morestack_noctxt - p.MOVQ(F_morestack_noctxt, R12) - p.CALLQ(R12) - // load all register arguments - for i, v := range self.desc.Args { - if v.InRegister { - if v.IsFloat == floatKind64 { - p.MOVSD(self.spillv(i), v.Reg) - } else if v.IsFloat == floatKind32 { - p.MOVSS(self.spillv(i), v.Reg) - } else { - p.MOVQ(self.spillv(i), v.Reg) - } - } - } - - // jump back to the function entry - l := CreateLabel("") - p.Link(l) - p.JMP(l) - - return uint32(len(p.Assemble(0))) -} - -func (self *Frame) emitPrologue(p *Program) { - p.SUBQ(self.Size(), RSP) - p.MOVQ(RBP, Ptr(RSP, int32(self.Offs()))) - p.LEAQ(Ptr(RSP, int32(self.Offs())), RBP) -} - -func (self *Frame) emitEpilogue(p *Program) { - p.MOVQ(Ptr(RSP, int32(self.Offs())), RBP) - p.ADDQ(self.Size(), RSP) - p.RET() -} - -func (self *Frame) emitReserveRegs(p *Program) { - // spill reserved registers - for i, r := range ReservedRegs(self.ccall) { - switch r.(type) { - case Register64: - p.MOVQ(r, self.resv(i)) - case XMMRegister: - p.MOVSD(r, self.resv(i)) - default: - panic(fmt.Sprintf("unsupported register type %t to reserve", r)) - } - } -} - -func (self *Frame) emitSpillPtrs(p *Program) { - // spill pointer argument registers - for i, r := range self.desc.Args { - if r.InRegister && r.IsPointer { - p.MOVQ(r.Reg, self.argv(i)) - } - } -} - -func (self *Frame) emitClearPtrs(p *Program) { - // spill pointer argument registers - for i, r := range self.desc.Args { - if r.InRegister && r.IsPointer { - p.MOVQ(int64(0), self.argv(i)) - } - } -} - -func (self *Frame) emitCallC(p *Program, addr uintptr) { - p.MOVQ(addr, RAX) - p.CALLQ(RAX) -} - -type floatKind uint8 - -const ( - notFloatKind floatKind = iota - floatKind32 - floatKind64 -) - -type Parameter struct { - InRegister bool - IsPointer bool - IsFloat floatKind - Reg Register - Mem uint32 - Type reflect.Type -} - -func mkIReg(vt reflect.Type, reg Register64) (p Parameter) { - p.Reg = reg - p.Type = vt - p.InRegister = true - p.IsPointer = isPointer(vt) - return -} - -func isFloat(vt reflect.Type) floatKind { - switch vt.Kind() { - case reflect.Float32: - return floatKind32 - case reflect.Float64: - return floatKind64 - default: - return notFloatKind - } -} - -func mkXReg(vt reflect.Type, reg XMMRegister) (p Parameter) { - p.Reg = reg - p.Type = vt - p.InRegister = true - p.IsFloat = isFloat(vt) - return -} - -func mkStack(vt reflect.Type, mem uint32) (p Parameter) { - p.Mem = mem - p.Type = vt - p.InRegister = false - p.IsPointer = isPointer(vt) - p.IsFloat = isFloat(vt) - return -} - -func (self Parameter) String() string { - if self.InRegister { - return fmt.Sprintf("[%%%s, Pointer(%v), Float(%v)]", self.Reg, self.IsPointer, self.IsFloat) - } else { - return fmt.Sprintf("[%d(FP), Pointer(%v), Float(%v)]", self.Mem, self.IsPointer, self.IsFloat) - } -} - -func CallC(addr uintptr, fr Frame, maxStack uintptr) []byte { - p := DefaultArch.CreateProgram() - - stack := CreateLabel("_stack_grow") - entry := CreateLabel("_entry") - p.Link(entry) - fr.emitStackCheck(p, stack, maxStack) - fr.emitPrologue(p) - fr.emitReserveRegs(p) - fr.emitSpillPtrs(p) - fr.emitExchangeArgs(p) - fr.emitCallC(p, addr) - fr.emitExchangeRets(p) - fr.emitRestoreRegs(p) - fr.emitEpilogue(p) - p.Link(stack) - fr.emitGrowStack(p, entry) - - return p.Assemble(0) -} - - -func (self *Frame) emitDebug(p *Program) { - p.INT(3) -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go b/vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go deleted file mode 100644 index f13c815fc..000000000 --- a/vendor/github.com/bytedance/sonic/internal/abi/abi_legacy_amd64.go +++ /dev/null @@ -1,182 +0,0 @@ -//go:build !go1.17 -// +build !go1.17 - -/* - * Copyright 2022 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package abi - -import ( - `fmt` - `reflect` - `runtime` - - . `github.com/chenzhuoyu/iasm/x86_64` -) - -func ReservedRegs(callc bool) []Register { - return nil -} - -func salloc(p []Parameter, sp uint32, vt reflect.Type) (uint32, []Parameter) { - switch vt.Kind() { - case reflect.Bool : return sp + 8, append(p, mkStack(reflect.TypeOf(false), sp)) - case reflect.Int : return sp + 8, append(p, mkStack(intType, sp)) - case reflect.Int8 : return sp + 8, append(p, mkStack(reflect.TypeOf(int8(0)), sp)) - case reflect.Int16 : return sp + 8, append(p, mkStack(reflect.TypeOf(int16(0)), sp)) - case reflect.Int32 : return sp + 8, append(p, mkStack(reflect.TypeOf(int32(0)), sp)) - case reflect.Int64 : return sp + 8, append(p, mkStack(reflect.TypeOf(int64(0)), sp)) - case reflect.Uint : return sp + 8, append(p, mkStack(reflect.TypeOf(uint(0)), sp)) - case reflect.Uint8 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint8(0)), sp)) - case reflect.Uint16 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint16(0)), sp)) - case reflect.Uint32 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint32(0)), sp)) - case reflect.Uint64 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint64(0)), sp)) - case reflect.Uintptr : return sp + 8, append(p, mkStack(reflect.TypeOf(uintptr(0)), sp)) - case reflect.Float32 : return sp + 8, append(p, mkStack(reflect.TypeOf(float32(0)), sp)) - case reflect.Float64 : return sp + 8, append(p, mkStack(reflect.TypeOf(float64(0)), sp)) - case reflect.Complex64 : panic("abi: go116: not implemented: complex64") - case reflect.Complex128 : panic("abi: go116: not implemented: complex128") - case reflect.Array : panic("abi: go116: not implemented: arrays") - case reflect.Chan : return sp + 8, append(p, mkStack(reflect.TypeOf((chan int)(nil)), sp)) - case reflect.Func : return sp + 8, append(p, mkStack(reflect.TypeOf((func())(nil)), sp)) - case reflect.Map : return sp + 8, append(p, mkStack(reflect.TypeOf((map[int]int)(nil)), sp)) - case reflect.Ptr : return sp + 8, append(p, mkStack(reflect.TypeOf((*int)(nil)), sp)) - case reflect.UnsafePointer : return sp + 8, append(p, mkStack(ptrType, sp)) - case reflect.Interface : return sp + 16, append(p, mkStack(ptrType, sp), mkStack(ptrType, sp + 8)) - case reflect.Slice : return sp + 24, append(p, mkStack(ptrType, sp), mkStack(intType, sp + 8), mkStack(intType, sp + 16)) - case reflect.String : return sp + 16, append(p, mkStack(ptrType, sp), mkStack(intType, sp + 8)) - case reflect.Struct : panic("abi: go116: not implemented: structs") - default : panic("abi: invalid value type") - } -} - -func NewFunctionLayout(ft reflect.Type) FunctionLayout { - var sp uint32 - var fn FunctionLayout - - /* assign every arguments */ - for i := 0; i < ft.NumIn(); i++ { - sp, fn.Args = salloc(fn.Args, sp, ft.In(i)) - } - - /* assign every return value */ - for i := 0; i < ft.NumOut(); i++ { - sp, fn.Rets = salloc(fn.Rets, sp, ft.Out(i)) - } - - /* update function ID and stack pointer */ - fn.FP = sp - return fn -} - -func (self *Frame) emitExchangeArgs(p *Program) { - iregArgs, xregArgs := 0, 0 - for _, v := range self.desc.Args { - if v.IsFloat != notFloatKind { - xregArgs += 1 - } else { - iregArgs += 1 - } - } - - if iregArgs > len(iregOrderC) { - panic("too many arguments, only support at most 6 integer arguments now") - } - if xregArgs > len(xregOrderC) { - panic("too many arguments, only support at most 8 float arguments now") - } - - ic, xc := iregArgs, xregArgs - for i := 0; i < len(self.desc.Args); i++ { - arg := self.desc.Args[i] - if arg.IsFloat == floatKind64 { - p.MOVSD(self.argv(i), xregOrderC[xregArgs - xc]) - xc -= 1 - } else if arg.IsFloat == floatKind32 { - p.MOVSS(self.argv(i), xregOrderC[xregArgs - xc]) - xc -= 1 - } else { - p.MOVQ(self.argv(i), iregOrderC[iregArgs - ic]) - ic -= 1 - } - } -} - -func (self *Frame) emitStackCheck(p *Program, to *Label, maxStack uintptr) { - // get the current goroutine - switch runtime.GOOS { - case "linux" : p.MOVQ(Abs(-8), R14).FS() - case "darwin" : p.MOVQ(Abs(0x30), R14).GS() - case "windows": break // windows always stores G pointer at R14 - default : panic("unsupported operating system") - } - - // check the stack guard - p.LEAQ(Ptr(RSP, -int32(self.Size() + uint32(maxStack))), RAX) - p.CMPQ(Ptr(R14, _G_stackguard0), RAX) - p.JBE(to) -} - -func (self *Frame) StackCheckTextSize() uint32 { - p := DefaultArch.CreateProgram() - - // get the current goroutine - switch runtime.GOOS { - case "linux" : p.MOVQ(Abs(-8), R14).FS() - case "darwin" : p.MOVQ(Abs(0x30), R14).GS() - case "windows": break // windows always stores G pointer at R14 - default : panic("unsupported operating system") - } - - // check the stack guard - p.LEAQ(Ptr(RSP, -int32(self.Size())), RAX) - p.CMPQ(Ptr(R14, _G_stackguard0), RAX) - l := CreateLabel("") - p.Link(l) - p.JBE(l) - - return uint32(len(p.Assemble(0))) -} - -func (self *Frame) emitExchangeRets(p *Program) { - if len(self.desc.Rets) > 1 { - panic("too many results, only support one result now") - } - // store result - if len(self.desc.Rets) ==1 { - if self.desc.Rets[0].IsFloat == floatKind64 { - p.MOVSD(xregOrderC[0], self.retv(0)) - } else if self.desc.Rets[0].IsFloat == floatKind32 { - p.MOVSS(xregOrderC[0], self.retv(0)) - } else { - p.MOVQ(RAX, self.retv(0)) - } - } -} - -func (self *Frame) emitRestoreRegs(p *Program) { - // load reserved registers - for i, r := range ReservedRegs(self.ccall) { - switch r.(type) { - case Register64: - p.MOVQ(self.resv(i), r) - case XMMRegister: - p.MOVSD(self.resv(i), r) - default: - panic(fmt.Sprintf("unsupported register type %t to reserve", r)) - } - } -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go deleted file mode 100644 index 91cdf8c3d..000000000 --- a/vendor/github.com/bytedance/sonic/internal/abi/abi_regabi_amd64.go +++ /dev/null @@ -1,316 +0,0 @@ -//go:build go1.17 -// +build go1.17 - -/* - * Copyright 2022 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** Go Internal ABI implementation - * - * This module implements the function layout algorithm described by the Go internal ABI. - * See https://github.com/golang/go/blob/master/src/cmd/compile/abi-internal.md for more info. - */ - -package abi - -import ( - `fmt` - `reflect` - - . `github.com/chenzhuoyu/iasm/x86_64` -) - -/** Frame Structure of the Generated Function - FP +------------------------------+ - | . . . | - | 2nd reg argument spill space | - + 1st reg argument spill space | - | | - | . . . | - | 2nd stack-assigned result | - + 1st stack-assigned result | - | | - | . . . | - | 2nd stack-assigned argument | - | 1st stack-assigned argument | - | stack-assigned receiver | -prev() +------------------------------+ (Previous Frame) - Return PC | -size() -------------------------------| - Saved RBP | -offs() -------------------------------| - 1th Reserved Registers | - -------------------------------| - 2th Reserved Registers | - -------------------------------| - Local Variables | - RSP -------------------------------|↓ lower addresses -*/ - -const zeroRegGo = XMM15 - -var iregOrderGo = [...]Register64 { - RAX,// RDI - RBX,// RSI - RCX,// RDX - RDI,// RCX - RSI,// R8 - R8, // R9 - R9, - R10, - R11, -} - -var xregOrderGo = [...]XMMRegister { - XMM0, - XMM1, - XMM2, - XMM3, - XMM4, - XMM5, - XMM6, - XMM7, - XMM8, - XMM9, - XMM10, - XMM11, - XMM12, - XMM13, - XMM14, -} - -func ReservedRegs(callc bool) []Register { - if callc { - return nil - } - return []Register { - R14, // current goroutine - R15, // GOT reference - } -} - -type stackAlloc struct { - s uint32 - i int - x int -} - -func (self *stackAlloc) reset() { - self.i, self.x = 0, 0 -} - -func (self *stackAlloc) ireg(vt reflect.Type) (p Parameter) { - p = mkIReg(vt, iregOrderGo[self.i]) - self.i++ - return -} - -func (self *stackAlloc) xreg(vt reflect.Type) (p Parameter) { - p = mkXReg(vt, xregOrderGo[self.x]) - self.x++ - return -} - -func (self *stackAlloc) stack(vt reflect.Type) (p Parameter) { - p = mkStack(vt, self.s) - self.s += uint32(vt.Size()) - return -} - -func (self *stackAlloc) spill(n uint32, a int) uint32 { - self.s = alignUp(self.s, a) + n - return self.s -} - -func (self *stackAlloc) alloc(p []Parameter, vt reflect.Type) []Parameter { - nb := vt.Size() - vk := vt.Kind() - - /* zero-sized objects are allocated on stack */ - if nb == 0 { - return append(p, mkStack(intType, self.s)) - } - - /* check for value type */ - switch vk { - case reflect.Bool : return self.valloc(p, reflect.TypeOf(false)) - case reflect.Int : return self.valloc(p, intType) - case reflect.Int8 : return self.valloc(p, reflect.TypeOf(int8(0))) - case reflect.Int16 : return self.valloc(p, reflect.TypeOf(int16(0))) - case reflect.Int32 : return self.valloc(p, reflect.TypeOf(uint32(0))) - case reflect.Int64 : return self.valloc(p, reflect.TypeOf(int64(0))) - case reflect.Uint : return self.valloc(p, reflect.TypeOf(uint(0))) - case reflect.Uint8 : return self.valloc(p, reflect.TypeOf(uint8(0))) - case reflect.Uint16 : return self.valloc(p, reflect.TypeOf(uint16(0))) - case reflect.Uint32 : return self.valloc(p, reflect.TypeOf(uint32(0))) - case reflect.Uint64 : return self.valloc(p, reflect.TypeOf(uint64(0))) - case reflect.Uintptr : return self.valloc(p, reflect.TypeOf(uintptr(0))) - case reflect.Float32 : return self.valloc(p, reflect.TypeOf(float32(0))) - case reflect.Float64 : return self.valloc(p, reflect.TypeOf(float64(0))) - case reflect.Complex64 : panic("abi: go117: not implemented: complex64") - case reflect.Complex128 : panic("abi: go117: not implemented: complex128") - case reflect.Array : panic("abi: go117: not implemented: arrays") - case reflect.Chan : return self.valloc(p, reflect.TypeOf((chan int)(nil))) - case reflect.Func : return self.valloc(p, reflect.TypeOf((func())(nil))) - case reflect.Map : return self.valloc(p, reflect.TypeOf((map[int]int)(nil))) - case reflect.Ptr : return self.valloc(p, reflect.TypeOf((*int)(nil))) - case reflect.UnsafePointer : return self.valloc(p, ptrType) - case reflect.Interface : return self.valloc(p, ptrType, ptrType) - case reflect.Slice : return self.valloc(p, ptrType, intType, intType) - case reflect.String : return self.valloc(p, ptrType, intType) - case reflect.Struct : panic("abi: go117: not implemented: structs") - default : panic("abi: invalid value type") - } -} - -func (self *stackAlloc) valloc(p []Parameter, vts ...reflect.Type) []Parameter { - for _, vt := range vts { - enum := isFloat(vt) - if enum != notFloatKind && self.x < len(xregOrderGo) { - p = append(p, self.xreg(vt)) - } else if enum == notFloatKind && self.i < len(iregOrderGo) { - p = append(p, self.ireg(vt)) - } else { - p = append(p, self.stack(vt)) - } - } - return p -} - -func NewFunctionLayout(ft reflect.Type) FunctionLayout { - var sa stackAlloc - var fn FunctionLayout - - /* assign every arguments */ - for i := 0; i < ft.NumIn(); i++ { - fn.Args = sa.alloc(fn.Args, ft.In(i)) - } - - /* reset the register counter, and add a pointer alignment field */ - sa.reset() - - /* assign every return value */ - for i := 0; i < ft.NumOut(); i++ { - fn.Rets = sa.alloc(fn.Rets, ft.Out(i)) - } - - sa.spill(0, PtrAlign) - - /* assign spill slots */ - for i := 0; i < len(fn.Args); i++ { - if fn.Args[i].InRegister { - fn.Args[i].Mem = sa.spill(PtrSize, PtrAlign) - PtrSize - } - } - - /* add the final pointer alignment field */ - fn.FP = sa.spill(0, PtrAlign) - return fn -} - -func (self *Frame) emitExchangeArgs(p *Program) { - iregArgs := make([]Parameter, 0, len(self.desc.Args)) - xregArgs := 0 - for _, v := range self.desc.Args { - if v.InRegister { - if v.IsFloat != notFloatKind { - xregArgs += 1 - } else { - iregArgs = append(iregArgs, v) - } - } else { - panic("not support stack-assgined arguments now") - } - } - if xregArgs > len(xregOrderC) { - panic("too many arguments, only support at most 8 integer register arguments now") - } - - switch len(iregArgs) { - case 0, 1, 2, 3: { - //Fast-Path: when arguments count are less than four, just exchange the registers - for i := 0; i < len(iregArgs); i++ { - p.MOVQ(iregOrderGo[i], iregOrderC[i]) - } - } - case 4, 5, 6: { - // need to spill 3th ~ regArgs registers before exchange - for i := 3; i < len(iregArgs); i++ { - arg := iregArgs[i] - // pointer args have already been spilled - if !arg.IsPointer { - p.MOVQ(iregOrderGo[i], Ptr(RSP, int32(self.Prev() + arg.Mem))) - } - } - p.MOVQ(iregOrderGo[0], iregOrderC[0]) - p.MOVQ(iregOrderGo[1], iregOrderC[1]) - p.MOVQ(iregOrderGo[2], iregOrderC[2]) - for i := 3; i < len(iregArgs); i++ { - arg := iregArgs[i] - p.MOVQ(Ptr(RSP, int32(self.Prev() + arg.Mem)), iregOrderC[i]) - } - } - default: - panic("too many arguments, only support at most 6 integer register arguments now") - } -} - -func (self *Frame) emitStackCheck(p *Program, to *Label, maxStack uintptr) { - p.LEAQ(Ptr(RSP, int32(-(self.Size() + uint32(maxStack)))), R12) - p.CMPQ(Ptr(R14, _G_stackguard0), R12) - p.JBE(to) -} - -func (self *Frame) StackCheckTextSize() uint32 { - p := DefaultArch.CreateProgram() - p.LEAQ(Ptr(RSP, int32(-(self.Size()))), R12) - p.CMPQ(Ptr(R14, _G_stackguard0), R12) - to := CreateLabel("") - p.Link(to) - p.JBE(to) - return uint32(len(p.Assemble(0))) -} - -func (self *Frame) emitExchangeRets(p *Program) { - if len(self.desc.Rets) > 1 { - panic("too many results, only support one result now") - } - // store result - if len(self.desc.Rets) == 1 && !self.desc.Rets[0].InRegister { - if self.desc.Rets[0].IsFloat == floatKind64 { - p.MOVSD(xregOrderC[0], self.retv(0)) - } else if self.desc.Rets[0].IsFloat == floatKind32 { - p.MOVSS(xregOrderC[0], self.retv(0)) - } else { - p.MOVQ(RAX, self.retv(0)) - } - } -} - -func (self *Frame) emitRestoreRegs(p *Program) { - // load reserved registers - for i, r := range ReservedRegs(self.ccall) { - switch r.(type) { - case Register64: - p.MOVQ(self.resv(i), r) - case XMMRegister: - p.MOVSD(self.resv(i), r) - default: - panic(fmt.Sprintf("unsupported register type %t to reserve", r)) - } - } - // zero xmm15 for go abi - p.XORPS(zeroRegGo, zeroRegGo) -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/abi/stubs.go b/vendor/github.com/bytedance/sonic/internal/abi/stubs.go deleted file mode 100644 index b2486a1cf..000000000 --- a/vendor/github.com/bytedance/sonic/internal/abi/stubs.go +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright 2023 ByteDance Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package abi - -import ( - _ `unsafe` - - `github.com/bytedance/sonic/internal/rt` -) - -const ( - _G_stackguard0 = 0x10 -) - -var ( - F_morestack_noctxt = uintptr(rt.FuncAddr(morestack_noctxt)) -) - -//go:linkname morestack_noctxt runtime.morestack_noctxt -func morestack_noctxt() - diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go index 0defb75a5..6c6fde91a 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go @@ -134,6 +134,7 @@ var ( _R9 = jit.Reg("R9") _X0 = jit.Reg("X0") _X1 = jit.Reg("X1") + _X15 = jit.Reg("X15") ) var ( @@ -421,6 +422,7 @@ func (self *_Assembler) call_go(fn obj.Addr) { func (self *_Assembler) callc(fn obj.Addr) { self.save(_IP) self.call(fn) + self.Emit("XORPS", _X15, _X15) self.load(_IP) } @@ -605,7 +607,6 @@ func (self *_Assembler) 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) } diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/primitives.go b/vendor/github.com/bytedance/sonic/internal/decoder/primitives.go index d6053e2cb..1c9ce1fa9 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/primitives.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/primitives.go @@ -30,9 +30,7 @@ func decodeTypedPointer(s string, i int, vt *rt.GoType, vp unsafe.Pointer, sb *_ return 0, err } else { rt.MoreStack(_FP_size + _VD_size + native.MaxFrameSize) - rt.StopProf() ret, err := fn(s, i, vp, sb, fv, "", nil) - rt.StartProf() return ret, err } } diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go index c6e133d8c..b02eb2b8b 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go @@ -22,12 +22,12 @@ import ( `unsafe` `reflect` - _ `github.com/chenzhuoyu/base64x` + _ `github.com/cloudwego/base64x` `github.com/bytedance/sonic/internal/rt` ) -//go:linkname _subr__b64decode github.com/chenzhuoyu/base64x._subr__b64decode +//go:linkname _subr__b64decode github.com/cloudwego/base64x._subr__b64decode var _subr__b64decode uintptr // runtime.maxElementSize 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 73960ea14..870e25390 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go120.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go120.go @@ -22,12 +22,12 @@ import ( `unsafe` `reflect` - _ `github.com/chenzhuoyu/base64x` + _ `github.com/cloudwego/base64x` `github.com/bytedance/sonic/internal/rt` ) -//go:linkname _subr__b64decode github.com/chenzhuoyu/base64x._subr__b64decode +//go:linkname _subr__b64decode github.com/cloudwego/base64x._subr__b64decode var _subr__b64decode uintptr // runtime.maxElementSize diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go index 4584c6d29..330b68817 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go @@ -128,6 +128,7 @@ var ( var ( _X0 = jit.Reg("X0") + _X15 = jit.Reg("X15") _Y0 = jit.Reg("Y0") ) @@ -512,6 +513,7 @@ func (self *_Assembler) call_c(pc obj.Addr) { self.call(pc) // CALL $pc self.xload(_REG_ffi...) // LOAD $REG_ffi self.Emit("XCHGQ", _SP_p, _BX) + self.Emit("XORPS", _X15, _X15) } func (self *_Assembler) call_go(pc obj.Addr) { diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go index 0a46455eb..d285c2991 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go @@ -337,7 +337,7 @@ func Valid(data []byte) (ok bool, start int) { s := rt.Mem2Str(data) p := 0 m := types.NewStateMachine() - ret := native.ValidateOne(&s, &p, m) + ret := native.ValidateOne(&s, &p, m, types.F_VALIDATE_STRING) types.FreeStateMachine(m) if ret < 0 { diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go index 0f3c40881..94f1c3dc6 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go @@ -23,6 +23,7 @@ import ( `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` ) @@ -73,15 +74,11 @@ func encodeTypedPointer(buf *[]byte, vt *rt.GoType, vp *unsafe.Pointer, sb *_Sta return err } else if vt.Indirect() { rt.MoreStack(_FP_size + native.MaxFrameSize) - rt.StopProf() err := fn(buf, *vp, sb, fv) - rt.StartProf() return err } else { rt.MoreStack(_FP_size + native.MaxFrameSize) - rt.StopProf() err := fn(buf, unsafe.Pointer(vp), sb, fv) - rt.StartProf() return err } } @@ -123,8 +120,8 @@ func htmlEscape(dst []byte, src []byte) []byte { dbuf := (*rt.GoSlice)(unsafe.Pointer(&dst)) /* grow dst if it is shorter */ - if cap(dst) - len(dst) < len(src) + native.BufPaddingSize { - cap := len(src) * 3 / 2 + native.BufPaddingSize + if cap(dst) - len(dst) < len(src) + types.BufPaddingSize { + cap := len(src) * 3 / 2 + types.BufPaddingSize *dbuf = growslice(typeByte, *dbuf, cap) } 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 a21b6b4a6..84c186fcf 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go @@ -21,12 +21,12 @@ package encoder import ( `unsafe` - _ `github.com/chenzhuoyu/base64x` + _ `github.com/cloudwego/base64x` `github.com/bytedance/sonic/internal/rt` ) -//go:linkname _subr__b64encode github.com/chenzhuoyu/base64x._subr__b64encode +//go:linkname _subr__b64encode github.com/cloudwego/base64x._subr__b64encode var _subr__b64encode uintptr //go:noescape diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go index 7d934be33..6e56aca00 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go117.go @@ -21,12 +21,12 @@ package encoder import ( `unsafe` - _ `github.com/chenzhuoyu/base64x` + _ `github.com/cloudwego/base64x` `github.com/bytedance/sonic/internal/rt` ) -//go:linkname _subr__b64encode github.com/chenzhuoyu/base64x._subr__b64encode +//go:linkname _subr__b64encode github.com/cloudwego/base64x._subr__b64encode var _subr__b64encode uintptr //go:noescape 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 ce3c88e9a..2b5e79bb6 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go @@ -21,12 +21,12 @@ package encoder import ( `unsafe` - _ `github.com/chenzhuoyu/base64x` + _ `github.com/cloudwego/base64x` `github.com/bytedance/sonic/internal/rt` ) -//go:linkname _subr__b64encode github.com/chenzhuoyu/base64x._subr__b64encode +//go:linkname _subr__b64encode github.com/cloudwego/base64x._subr__b64encode var _subr__b64encode uintptr //go:noescape diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go index 700ddf8b5..89ae5d210 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go @@ -21,12 +21,12 @@ package encoder import ( `unsafe` - _ `github.com/chenzhuoyu/base64x` + _ `github.com/cloudwego/base64x` `github.com/bytedance/sonic/internal/rt` ) -//go:linkname _subr__b64encode github.com/chenzhuoyu/base64x._subr__b64encode +//go:linkname _subr__b64encode github.com/cloudwego/base64x._subr__b64encode var _subr__b64encode uintptr //go:noescape diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa.go new file mode 100644 index 000000000..b1c3f75ca --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f32toa func(out *byte, val float32) (ret int) + +var S_f32toa uintptr + +//go:nosplit +func f32toa(out *byte, val float32) (ret int) { + return F_f32toa((*byte)(rt.NoEscape(unsafe.Pointer(out))), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_subr.go new file mode 100644 index 000000000..6c95bd982 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_subr.go @@ -0,0 +1,44 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__f32toa = 32 +) + +const ( + _stack__f32toa = 48 +) + +const ( + _size__f32toa = 3392 +) + +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}, + } +) + +var _cfunc_f32toa = []loader.CFunc{ + {"_f32toa_entry", 0, _entry__f32toa, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_text_amd64.go new file mode 100644 index 000000000..c7aa104b2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/f32toa_text_amd64.go @@ -0,0 +1,964 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_f32toa = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000010 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000020 .p2align 4, 0x90 + //0x00000020 _f32toa + 0x55, //0x00000020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000021 movq %rsp, %rbp + 0x41, 0x57, //0x00000024 pushq %r15 + 0x41, 0x56, //0x00000026 pushq %r14 + 0x41, 0x55, //0x00000028 pushq %r13 + 0x41, 0x54, //0x0000002a pushq %r12 + 0x53, //0x0000002c pushq %rbx + 0xc5, 0xf9, 0x7e, 0xc0, //0x0000002d vmovd %xmm0, %eax + 0x89, 0xc1, //0x00000031 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00000033 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00000036 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00000039 cmpl $255, %ebx + 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x0000003f je LBB0_139 + 0xc6, 0x07, 0x2d, //0x00000045 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00000048 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x0000004b shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x0000004f leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00000053 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00000058 je LBB0_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x0000005e andl $8388607, %eax + 0x85, 0xdb, //0x00000063 testl %ebx, %ebx + 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x00000065 je LBB0_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x0000006b leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00000071 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00000078 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x0000007b cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x0000007e ja LBB0_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00000084 movl $150, %ecx + 0x29, 0xd9, //0x00000089 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000008b movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00000092 shlq %cl, %rdx + 0xf7, 0xd2, //0x00000095 notl %edx + 0x85, 0xf2, //0x00000097 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00000099 je LBB0_32 + //0x0000009f LBB0_5 + 0x41, 0x89, 0xf6, //0x0000009f movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x000000a2 andl $1, %r14d + 0x85, 0xc0, //0x000000a6 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x000000a8 sete %al + 0x83, 0xfb, 0x01, //0x000000ab cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x000000ae seta %cl + 0x20, 0xc1, //0x000000b1 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000000b3 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x000000b6 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x000000b9 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x000000bd leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x000000c1 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x000000c8 xorl %edx, %edx + 0x84, 0xc9, //0x000000ca testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x000000cc movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x000000d1 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x000000d4 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x000000d7 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x000000db imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x000000e2 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x000000e5 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x000000e8 movl $31, %edx + 0x44, 0x29, 0xda, //0x000000ed subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x000000f0 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x36, 0x0d, 0x00, 0x00, //0x000000f3 leaq $3382(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x000000fa incb %cl + 0xd3, 0xe0, //0x000000fc shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x000000fe movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00000102 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00000105 shrq $32, %rax + 0x31, 0xdb, //0x00000109 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x0000010b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x0000010e seta %bl + 0x41, 0xd3, 0xe2, //0x00000111 shll %cl, %r10d + 0x09, 0xd3, //0x00000114 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00000116 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00000119 mulq %r12 + 0x49, 0x89, 0xd2, //0x0000011c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x0000011f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00000123 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00000126 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00000129 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x0000012d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00000134 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00000136 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00000139 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x0000013c shrq $32, %rax + 0x31, 0xc9, //0x00000140 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00000142 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00000145 seta %cl + 0x09, 0xd1, //0x00000148 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x0000014a addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x0000014d subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00000150 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00000154 jb LBB0_12 + 0x44, 0x89, 0xd2, //0x0000015a movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000015d movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00000162 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000166 shrq $37, %rax + 0x41, 0x89, 0xde, //0x0000016a movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x0000016d leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00000175 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00000179 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x0000017c setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00000180 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00000185 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00000187 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x0000018a setbe %dl + 0x41, 0x38, 0xd4, //0x0000018d cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00000190 je LBB0_12 + 0x45, 0x31, 0xed, //0x00000196 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00000199 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x0000019c setbe %r13b + 0x41, 0x01, 0xc5, //0x000001a0 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x000001a3 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x000001a6 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x000001ad jae LBB0_18 + //0x000001b3 LBB0_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000001b3 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x000001b8 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x000001bc jb LBB0_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000001c2 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x000001c7 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x000001cb jb LBB0_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000001d1 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x000001d6 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x000001dd jb LBB0_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000001e3 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x000001ea movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x000001ef jmp LBB0_21 + //0x000001f4 LBB0_12 + 0x4d, 0x89, 0xd6, //0x000001f4 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x000001f7 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x000001fb movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x000001fe andl $-4, %esi + 0x39, 0xf3, //0x00000201 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00000203 setbe %dl + 0x8d, 0x5e, 0x04, //0x00000206 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00000209 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x0000020b setbe %al + 0x38, 0xc2, //0x0000020e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00000210 je LBB0_15 + 0x45, 0x31, 0xed, //0x00000216 xorl %r13d, %r13d + 0x39, 0xcb, //0x00000219 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x0000021b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000021f jmp LBB0_17 + //0x00000224 LBB0_14 + 0x41, 0xc6, 0x00, 0x30, //0x00000224 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00000228 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x0000022b incl %r8d + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x0000022e jmp LBB0_138 + //0x00000233 LBB0_15 + 0x83, 0xce, 0x02, //0x00000233 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00000236 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x0000023c cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000023f ja LBB0_17 + 0x0f, 0x94, 0xc0, //0x00000245 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00000248 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x0000024c andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x0000024f movzbl %r10b, %r13d + //0x00000253 LBB0_17 + 0x45, 0x01, 0xf5, //0x00000253 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00000256 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x0000025d jb LBB0_8 + //0x00000263 LBB0_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00000263 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00000268 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000026f jb LBB0_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00000275 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x0000027a cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000281 jb LBB0_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00000287 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x0000028e movl $9, %eax + //0x00000293 LBB0_21 + 0x83, 0xd8, 0x00, //0x00000293 sbbl $0, %eax + //0x00000296 LBB0_22 + 0x46, 0x8d, 0x3c, 0x18, //0x00000296 leal (%rax,%r11), %r15d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x0000029a leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x0000029f cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000002a2 jb LBB0_26 + 0x89, 0xc0, //0x000002a8 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x000002aa leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000002af cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x000002b6 jb LBB0_30 + 0x44, 0x89, 0xe8, //0x000002bc movl %r13d, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000002bf movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd8, //0x000002c5 imulq %rax, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x000002c9 shrq $45, %r11 + 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x000002cd imull $-10000, %r11d, %eax + 0x44, 0x01, 0xe8, //0x000002d4 addl %r13d, %eax + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000002d7 je LBB0_62 + 0x89, 0xc1, //0x000002dd movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000002df imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000002e6 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x000002ea imull $100, %ecx, %edx + 0x29, 0xd0, //0x000002ed subl %edx, %eax + 0x48, 0x8d, 0x15, 0x6a, 0x0a, 0x00, 0x00, //0x000002ef leaq $2666(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x000002f6 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x000002fa movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x000002fe movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00000302 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00000306 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00000309 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x0000030d cmpl $100, %r11d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00000311 jae LBB0_64 + //0x00000317 LBB0_31 + 0x44, 0x89, 0xda, //0x00000317 movl %r11d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x0000031a jmp LBB0_66 + //0x0000031f LBB0_26 + 0x41, 0x89, 0xc4, //0x0000031f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00000322 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00000325 js LBB0_38 + 0x4b, 0x8d, 0x34, 0x20, //0x0000032b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x0000032f cmpl $10000, %r13d + 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00000336 jb LBB0_43 + 0x44, 0x89, 0xe8, //0x0000033c movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x0000033f movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00000344 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000348 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x0000034c imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00000352 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00000355 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000035c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00000360 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00000363 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0xf4, 0x09, 0x00, 0x00, //0x00000365 leaq $2548(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x0000036c movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00000370 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00000374 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00000378 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x0000037c movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00000380 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00000383 cmpl $100, %r13d + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00000387 jae LBB0_44 + //0x0000038d LBB0_29 + 0x44, 0x89, 0xe9, //0x0000038d movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00000390 jmp LBB0_46 + //0x00000395 LBB0_30 + 0x45, 0x31, 0xc9, //0x00000395 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00000398 movq %rbx, %rcx + 0x45, 0x89, 0xeb, //0x0000039b movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x0000039e cmpl $100, %r11d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x000003a2 jb LBB0_31 + //0x000003a8 LBB0_64 + 0x48, 0xff, 0xc9, //0x000003a8 decq %rcx + 0x4c, 0x8d, 0x15, 0xae, 0x09, 0x00, 0x00, //0x000003ab leaq $2478(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003b2 .p2align 4, 0x90 + //0x000003c0 LBB0_65 + 0x44, 0x89, 0xda, //0x000003c0 movl %r11d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x000003c3 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000003ca shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x000003ce imull $100, %edx, %eax + 0x44, 0x89, 0xde, //0x000003d1 movl %r11d, %esi + 0x29, 0xc6, //0x000003d4 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x000003d6 movzwl (%r10,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x000003db movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x000003df addq $-2, %rcx + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000003e3 cmpl $9999, %r11d + 0x41, 0x89, 0xd3, //0x000003ea movl %edx, %r11d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000003ed ja LBB0_65 + //0x000003f3 LBB0_66 + 0x49, 0x8d, 0x70, 0x01, //0x000003f3 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x000003f7 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x000003fa jb LBB0_68 + 0x89, 0xd0, //0x00000400 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x57, 0x09, 0x00, 0x00, //0x00000402 leaq $2391(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00000409 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000040c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00000410 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00000414 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000418 jmp LBB0_69 + //0x0000041d LBB0_68 + 0x80, 0xc2, 0x30, //0x0000041d addb $48, %dl + 0x88, 0x16, //0x00000420 movb %dl, (%rsi) + //0x00000422 LBB0_69 + 0x4c, 0x29, 0xcb, //0x00000422 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000425 .p2align 4, 0x90 + //0x00000430 LBB0_70 + 0x80, 0x7b, 0xff, 0x30, //0x00000430 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000434 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000438 je LBB0_70 + 0x41, 0x88, 0x10, //0x0000043e movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00000441 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000445 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00000448 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000044b cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x0000044f jl LBB0_73 + 0xc6, 0x06, 0x2e, //0x00000455 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00000458 movq %rax, %rbx + //0x0000045b LBB0_73 + 0xc6, 0x03, 0x65, //0x0000045b movb $101, (%rbx) + 0x45, 0x85, 0xff, //0x0000045e testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00000461 jle LBB0_76 + 0x41, 0xff, 0xcf, //0x00000467 decl %r15d + 0xc6, 0x43, 0x01, 0x2b, //0x0000046a movb $43, $1(%rbx) + 0x44, 0x89, 0xf8, //0x0000046e movl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00000471 cmpl $100, %eax + 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00000474 jl LBB0_77 + //0x0000047a LBB0_75 + 0x89, 0xc1, //0x0000047a movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000047c movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000481 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00000485 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00000489 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x0000048c leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x0000048f subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xc8, 0x08, 0x00, 0x00, //0x00000491 leaq $2248(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00000498 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x0000049c movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004a0 orb $48, %al + 0x88, 0x43, 0x04, //0x000004a2 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004a5 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x000004a9 movq %rbx, %r8 + 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x000004ac jmp LBB0_137 + //0x000004b1 LBB0_32 + 0xd3, 0xee, //0x000004b1 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000004b3 cmpl $100000, %esi + 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x000004b9 jb LBB0_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x000004bf movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x000004c4 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000004ca jb LBB0_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000004d0 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000004d5 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000004db jb LBB0_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x000004e1 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x000004e7 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x000004ec sbbq $0, %rax + //0x000004f0 LBB0_36 + 0x4c, 0x01, 0xc0, //0x000004f0 addq %r8, %rax + //0x000004f3 LBB0_37 + 0x89, 0xf1, //0x000004f3 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000004f5 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004fa imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000004fe shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000502 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00000508 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x0000050a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00000511 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00000515 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00000518 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x3f, 0x08, 0x00, 0x00, //0x0000051a leaq $2111(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00000521 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000525 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00000529 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x0000052d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00000531 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00000534 addq $-4, %rax + 0x89, 0xd6, //0x00000538 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x0000053a cmpl $100, %esi + 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x0000053d jae LBB0_56 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00000543 jmp LBB0_58 + //0x00000548 LBB0_38 + 0x45, 0x85, 0xff, //0x00000548 testl %r15d, %r15d + 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x0000054b jg LBB0_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00000551 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00000557 addq $2, %r8 + 0x45, 0x85, 0xff, //0x0000055b testl %r15d, %r15d + 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x0000055e jns LBB0_98 + 0x31, 0xf6, //0x00000564 xorl %esi, %esi + 0x41, 0x83, 0xff, 0x80, //0x00000566 cmpl $-128, %r15d + 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x0000056a ja LBB0_96 + 0x45, 0x89, 0xfa, //0x00000570 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00000573 notl %r10d + 0x49, 0xff, 0xc2, //0x00000576 incq %r10 + 0x4c, 0x89, 0xd6, //0x00000579 movq %r10, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x0000057c andq $-128, %rsi + 0x48, 0x8d, 0x46, 0x80, //0x00000580 leaq $-128(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00000584 movq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00000587 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x0000058b incq %rcx + 0x41, 0x89, 0xcb, //0x0000058e movl %ecx, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00000591 andl $3, %r11d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00000595 cmpq $384, %rax + 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x0000059b jae LBB0_90 + 0x31, 0xdb, //0x000005a1 xorl %ebx, %ebx + 0xe9, 0xda, 0x03, 0x00, 0x00, //0x000005a3 jmp LBB0_92 + //0x000005a8 LBB0_76 + 0xc6, 0x43, 0x01, 0x2d, //0x000005a8 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005ac movl $1, %eax + 0x44, 0x29, 0xf8, //0x000005b1 subl %r15d, %eax + 0x83, 0xf8, 0x64, //0x000005b4 cmpl $100, %eax + 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x000005b7 jge LBB0_75 + //0x000005bd LBB0_77 + 0x83, 0xf8, 0x0a, //0x000005bd cmpl $10, %eax + 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x000005c0 jl LBB0_79 + 0x48, 0x98, //0x000005c6 cltq + 0x48, 0x8d, 0x0d, 0x91, 0x07, 0x00, 0x00, //0x000005c8 leaq $1937(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000005cf movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x000005d3 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x000005d7 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x000005db movq %rbx, %r8 + 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x000005de jmp LBB0_137 + //0x000005e3 LBB0_43 + 0x48, 0x89, 0xf0, //0x000005e3 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x000005e6 cmpl $100, %r13d + 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x000005ea jb LBB0_29 + //0x000005f0 LBB0_44 + 0x48, 0xff, 0xc8, //0x000005f0 decq %rax + 0x4c, 0x8d, 0x15, 0x66, 0x07, 0x00, 0x00, //0x000005f3 leaq $1894(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005fa .p2align 4, 0x90 + //0x00000600 LBB0_45 + 0x44, 0x89, 0xe9, //0x00000600 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00000603 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x0000060a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x0000060e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00000611 movl %r13d, %edx + 0x29, 0xda, //0x00000614 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00000616 movzwl (%r10,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x0000061b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000061f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00000623 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x0000062a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000062d ja LBB0_45 + //0x00000633 LBB0_46 + 0x49, 0x63, 0xc7, //0x00000633 movslq %r15d, %rax + 0x83, 0xf9, 0x0a, //0x00000636 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000639 jb LBB0_48 + 0x89, 0xc9, //0x0000063f movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0x18, 0x07, 0x00, 0x00, //0x00000641 leaq $1816(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000648 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x0000064c movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00000650 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00000653 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000656 jl LBB0_49 + 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x0000065c jmp LBB0_137 + //0x00000661 LBB0_48 + 0x80, 0xc1, 0x30, //0x00000661 addb $48, %cl + 0x41, 0x88, 0x08, //0x00000664 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00000667 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x0000066a cmpq %rax, %r12 + 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x0000066d jge LBB0_137 + //0x00000673 LBB0_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00000673 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00000677 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x0000067c cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x0000067f cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00000683 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00000687 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x0000068a subq %rcx, %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000068d cmpq $128, %r11 + 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00000694 jb LBB0_87 + 0x4d, 0x89, 0xda, //0x0000069a movq %r11, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x0000069d andq $-128, %r10 + 0x49, 0x8d, 0x4a, 0x80, //0x000006a1 leaq $-128(%r10), %rcx + 0x48, 0x89, 0xcb, //0x000006a5 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x000006a8 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x000006ac incq %rbx + 0x89, 0xda, //0x000006af movl %ebx, %edx + 0x83, 0xe2, 0x03, //0x000006b1 andl $3, %edx + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x000006b4 cmpq $384, %rcx + 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x000006bb jae LBB0_80 + 0x31, 0xc0, //0x000006c1 xorl %eax, %eax + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x000006c3 jmp LBB0_82 + //0x000006c8 LBB0_79 + 0x04, 0x30, //0x000006c8 addb $48, %al + 0x88, 0x43, 0x02, //0x000006ca movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x000006cd addq $3, %rbx + 0x49, 0x89, 0xd8, //0x000006d1 movq %rbx, %r8 + 0xe9, 0x57, 0x06, 0x00, 0x00, //0x000006d4 jmp LBB0_137 + //0x000006d9 LBB0_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000006d9 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x000006df cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x000006e2 jb LBB0_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000006e8 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x000006ee cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000006f1 jb LBB0_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000006f7 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x000006fd cmpl $1000, %esi + 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x00000703 jae LBB0_88 + //0x00000709 LBB0_55 + 0x4d, 0x01, 0xc1, //0x00000709 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x0000070c movq %r9, %rax + 0x83, 0xfe, 0x64, //0x0000070f cmpl $100, %esi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00000712 jb LBB0_58 + //0x00000718 LBB0_56 + 0x48, 0xff, 0xc8, //0x00000718 decq %rax + 0x4c, 0x8d, 0x15, 0x3e, 0x06, 0x00, 0x00, //0x0000071b leaq $1598(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000722 .p2align 4, 0x90 + //0x00000730 LBB0_57 + 0x89, 0xf3, //0x00000730 movl %esi, %ebx + 0x89, 0xf6, //0x00000732 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00000734 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000073b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x0000073f imull $100, %esi, %ecx + 0x89, 0xda, //0x00000742 movl %ebx, %edx + 0x29, 0xca, //0x00000744 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00000746 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x0000074b movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000074f addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00000753 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00000759 ja LBB0_57 + //0x0000075f LBB0_58 + 0x83, 0xfe, 0x0a, //0x0000075f cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000762 jb LBB0_60 + 0x89, 0xf0, //0x00000768 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0xef, 0x05, 0x00, 0x00, //0x0000076a leaq $1519(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000771 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00000775 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00000779 jmp LBB0_61 + //0x0000077e LBB0_60 + 0x40, 0x80, 0xc6, 0x30, //0x0000077e addb $48, %sil + 0x41, 0x88, 0x30, //0x00000782 movb %sil, (%r8) + //0x00000785 LBB0_61 + 0x41, 0x29, 0xf9, //0x00000785 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00000788 movl %r9d, %r8d + 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x0000078b jmp LBB0_138 + //0x00000790 LBB0_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000790 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00000796 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x0000079a cmpl $100, %r11d + 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x0000079e jb LBB0_31 + 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x000007a4 jmp LBB0_64 + //0x000007a9 LBB0_80 + 0x48, 0x29, 0xd3, //0x000007a9 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x000007ac leaq $480(%rdi,%rax), %rcx + 0x31, 0xc0, //0x000007b4 xorl %eax, %eax + 0xc5, 0xfe, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x000007b6 vmovdqu $-1982(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, //0x000007be .p2align 4, 0x90 + //0x000007c0 LBB0_81 + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x000007c0 vmovdqu %ymm0, $-480(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x000007c9 vmovdqu %ymm0, $-448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x000007d2 vmovdqu %ymm0, $-416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x000007db vmovdqu %ymm0, $-384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x000007e4 vmovdqu %ymm0, $-352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x000007ed vmovdqu %ymm0, $-320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x000007f6 vmovdqu %ymm0, $-288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x000007ff vmovdqu %ymm0, $-256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00000808 vmovdqu %ymm0, $-224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x00000811 vmovdqu %ymm0, $-192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x0000081a vmovdqu %ymm0, $-160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x00000823 vmovdqu %ymm0, $-128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x00000829 vmovdqu %ymm0, $-96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x0000082f vmovdqu %ymm0, $-64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x00000835 vmovdqu %ymm0, $-32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x0000083b vmovdqu %ymm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00000840 addq $512, %rax + 0x48, 0x83, 0xc3, 0xfc, //0x00000846 addq $-4, %rbx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x0000084a jne LBB0_81 + //0x00000850 LBB0_82 + 0x48, 0x85, 0xd2, //0x00000850 testq %rdx, %rdx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000853 je LBB0_85 + 0x4c, 0x01, 0xc8, //0x00000859 addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x0000085c addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x0000085f leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x00000864 negq %rdx + 0xc5, 0xfe, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00000867 vmovdqu $-2159(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, //0x0000086f .p2align 4, 0x90 + //0x00000870 LBB0_84 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000870 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000875 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x0000087a vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x0000087f vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000883 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00000887 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000088a jne LBB0_84 + //0x00000890 LBB0_85 + 0x4d, 0x39, 0xda, //0x00000890 cmpq %r11, %r10 + 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00000893 je LBB0_137 + 0x4c, 0x01, 0xd6, //0x00000899 addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, //0x0000089c .p2align 4, 0x90 + //0x000008a0 LBB0_87 + 0xc6, 0x06, 0x30, //0x000008a0 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x000008a3 incq %rsi + 0x4c, 0x39, 0xc6, //0x000008a6 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x000008a9 jb LBB0_87 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x000008af jmp LBB0_137 + //0x000008b4 LBB0_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000008b4 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x000008ba movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x000008bd sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x000008c1 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000008c5 cmpl $10000, %esi + 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x000008cb jae LBB0_37 + 0x49, 0x89, 0xc1, //0x000008d1 movq %rax, %r9 + 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x000008d4 jmp LBB0_56 + //0x000008d9 LBB0_90 + 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x000008d9 leaq $482(%r9,%rdi), %rax + 0x4d, 0x89, 0xde, //0x000008e1 movq %r11, %r14 + 0x49, 0x29, 0xce, //0x000008e4 subq %rcx, %r14 + 0x31, 0xdb, //0x000008e7 xorl %ebx, %ebx + 0xc5, 0xfe, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x000008e9 vmovdqu $-2289(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x000008f1 LBB0_91 + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x000008f1 vmovdqu %ymm0, $-480(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x000008fa vmovdqu %ymm0, $-448(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x00000903 vmovdqu %ymm0, $-416(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x0000090c vmovdqu %ymm0, $-384(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x00000915 vmovdqu %ymm0, $-352(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x0000091e vmovdqu %ymm0, $-320(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x00000927 vmovdqu %ymm0, $-288(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x00000930 vmovdqu %ymm0, $-256(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x00000939 vmovdqu %ymm0, $-224(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x00000942 vmovdqu %ymm0, $-192(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x0000094b vmovdqu %ymm0, $-160(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x00000954 vmovdqu %ymm0, $-128(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x0000095a vmovdqu %ymm0, $-96(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x00000960 vmovdqu %ymm0, $-64(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x00000966 vmovdqu %ymm0, $-32(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x0000096c vmovdqu %ymm0, (%rax,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00000971 addq $512, %rbx + 0x49, 0x83, 0xc6, 0x04, //0x00000978 addq $4, %r14 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000097c jne LBB0_91 + //0x00000982 LBB0_92 + 0x4d, 0x85, 0xdb, //0x00000982 testq %r11, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000985 je LBB0_95 + 0x4c, 0x01, 0xcb, //0x0000098b addq %r9, %rbx + 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x0000098e leaq $98(%rdi,%rbx), %rax + 0x49, 0xf7, 0xdb, //0x00000993 negq %r11 + 0xc5, 0xfe, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x00000996 vmovdqu $-2462(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x0000099e LBB0_94 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x0000099e vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x000009a3 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x000009a8 vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x000009ad vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x000009b1 subq $-128, %rax + 0x49, 0xff, 0xc3, //0x000009b5 incq %r11 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000009b8 jne LBB0_94 + //0x000009be LBB0_95 + 0x49, 0x01, 0xf0, //0x000009be addq %rsi, %r8 + 0x49, 0x39, 0xf2, //0x000009c1 cmpq %rsi, %r10 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000009c4 je LBB0_98 + //0x000009ca LBB0_96 + 0x44, 0x89, 0xf8, //0x000009ca movl %r15d, %eax + 0xf7, 0xd8, //0x000009cd negl %eax + 0x90, //0x000009cf .p2align 4, 0x90 + //0x000009d0 LBB0_97 + 0x41, 0xc6, 0x00, 0x30, //0x000009d0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000009d4 incq %r8 + 0xff, 0xc6, //0x000009d7 incl %esi + 0x39, 0xc6, //0x000009d9 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000009db jl LBB0_97 + //0x000009e1 LBB0_98 + 0x4b, 0x8d, 0x04, 0x20, //0x000009e1 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000009e5 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x000009ec jb LBB0_101 + 0x44, 0x89, 0xe9, //0x000009f2 movl %r13d, %ecx + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000009f5 movl $3518437209, %r10d + 0x4c, 0x0f, 0xaf, 0xd1, //0x000009fb imulq %rcx, %r10 + 0x49, 0xc1, 0xea, 0x2d, //0x000009ff shrq $45, %r10 + 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000a03 imull $-10000, %r10d, %ecx + 0x44, 0x01, 0xe9, //0x00000a0a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x00000a0d je LBB0_103 + 0x89, 0xca, //0x00000a13 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00000a15 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00000a1c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00000a20 imull $100, %edx, %ebx + 0x29, 0xd9, //0x00000a23 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x34, 0x03, 0x00, 0x00, //0x00000a25 leaq $820(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00000a2c movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000a30 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00000a34 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00000a38 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x00000a3c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00000a3f addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00000a43 cmpl $100, %r10d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00000a47 jae LBB0_105 + //0x00000a4d LBB0_102 + 0x44, 0x89, 0xd1, //0x00000a4d movl %r10d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00000a50 jmp LBB0_107 + //0x00000a55 LBB0_101 + 0x45, 0x31, 0xc9, //0x00000a55 xorl %r9d, %r9d + 0x45, 0x89, 0xea, //0x00000a58 movl %r13d, %r10d + 0x41, 0x83, 0xfa, 0x64, //0x00000a5b cmpl $100, %r10d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x00000a5f jb LBB0_102 + //0x00000a65 LBB0_105 + 0x48, 0xff, 0xc8, //0x00000a65 decq %rax + 0x48, 0x8d, 0x15, 0xf1, 0x02, 0x00, 0x00, //0x00000a68 leaq $753(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x00000a6f .p2align 4, 0x90 + //0x00000a70 LBB0_106 + 0x44, 0x89, 0xd1, //0x00000a70 movl %r10d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00000a73 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00000a7a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00000a7e imull $100, %ecx, %ebx + 0x44, 0x89, 0xd6, //0x00000a81 movl %r10d, %esi + 0x29, 0xde, //0x00000a84 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x00000a86 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x00000a8a movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00000a8e addq $-2, %rax + 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00000a92 cmpl $9999, %r10d + 0x41, 0x89, 0xca, //0x00000a99 movl %ecx, %r10d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00000a9c ja LBB0_106 + //0x00000aa2 LBB0_107 + 0x83, 0xf9, 0x0a, //0x00000aa2 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000aa5 jb LBB0_109 + 0x89, 0xc8, //0x00000aab movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xac, 0x02, 0x00, 0x00, //0x00000aad leaq $684(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000ab4 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00000ab8 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000abc jmp LBB0_110 + //0x00000ac1 LBB0_109 + 0x80, 0xc1, 0x30, //0x00000ac1 addb $48, %cl + 0x41, 0x88, 0x08, //0x00000ac4 movb %cl, (%r8) + //0x00000ac7 LBB0_110 + 0x4d, 0x29, 0xcc, //0x00000ac7 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x00000aca leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x00000acf leaq $97(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00000ad4 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ad9 .p2align 4, 0x90 + //0x00000ae0 LBB0_111 + 0x48, 0xff, 0xca, //0x00000ae0 decq %rdx + 0x48, 0xff, 0xce, //0x00000ae3 decq %rsi + 0x48, 0xff, 0xc8, //0x00000ae6 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000ae9 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x00000aef leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000af4 je LBB0_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x00000afa leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xff, //0x00000afe testl %r15d, %r15d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00000b01 jle LBB0_116 + 0x44, 0x89, 0xc9, //0x00000b07 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x00000b0a subl %r8d, %ecx + 0x41, 0x39, 0xcf, //0x00000b0d cmpl %ecx, %r15d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00000b10 jge LBB0_117 + 0x43, 0x8d, 0x0c, 0x07, //0x00000b16 leal (%r15,%r8), %ecx + 0x41, 0x29, 0xc9, //0x00000b1a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x00000b1d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xca, //0x00000b21 movl %r9d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00000b24 andl $3, %r10d + 0x48, 0x83, 0xf9, 0x03, //0x00000b28 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x00000b2c jae LBB0_121 + 0x31, 0xc9, //0x00000b32 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00000b34 jmp LBB0_124 + //0x00000b39 LBB0_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00000b39 jle LBB0_116 + 0x45, 0x01, 0xc7, //0x00000b3f addl %r8d, %r15d + 0x45, 0x89, 0xce, //0x00000b42 movl %r9d, %r14d + 0x41, 0xf7, 0xd6, //0x00000b45 notl %r14d + 0x45, 0x01, 0xfe, //0x00000b48 addl %r15d, %r14d + 0x45, 0x31, 0xd2, //0x00000b4b xorl %r10d, %r10d + 0x4d, 0x89, 0xcb, //0x00000b4e movq %r9, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x00000b51 cmpl $126, %r14d + 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x00000b55 jbe LBB0_135 + 0x49, 0xff, 0xc6, //0x00000b5b incq %r14 + 0x4d, 0x89, 0xf2, //0x00000b5e movq %r14, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x00000b61 andq $-128, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00000b65 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x00000b69 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xd9, //0x00000b6d movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00000b70 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00000b74 incq %rcx + 0x41, 0x89, 0xcc, //0x00000b77 movl %ecx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x00000b7a andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x00000b7e cmpq $384, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x00000b85 jae LBB0_129 + 0x31, 0xc9, //0x00000b8b xorl %ecx, %ecx + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x00000b8d jmp LBB0_131 + //0x00000b92 LBB0_116 + 0x4d, 0x89, 0xc8, //0x00000b92 movq %r9, %r8 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x00000b95 jmp LBB0_137 + //0x00000b9a LBB0_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000b9a movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00000ba0 addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00000ba4 cmpl $100, %r10d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x00000ba8 jb LBB0_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x00000bae jmp LBB0_105 + //0x00000bb3 LBB0_121 + 0x4d, 0x89, 0xd3, //0x00000bb3 movq %r10, %r11 + 0x4d, 0x29, 0xcb, //0x00000bb6 subq %r9, %r11 + 0x31, 0xc9, //0x00000bb9 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bbb .p2align 4, 0x90 + //0x00000bc0 LBB0_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00000bc0 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00000bc4 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00000bc8 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000bcc addq $-4, %rcx + 0x49, 0x39, 0xcb, //0x00000bd0 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000bd3 jne LBB0_122 + 0x48, 0xf7, 0xd9, //0x00000bd9 negq %rcx + //0x00000bdc LBB0_124 + 0x4d, 0x85, 0xd2, //0x00000bdc testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00000bdf je LBB0_127 + 0x49, 0xf7, 0xda, //0x00000be5 negq %r10 + 0x4c, 0x89, 0xc2, //0x00000be8 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x00000beb subq %rcx, %rdx + 0x31, 0xc9, //0x00000bee xorl %ecx, %ecx + //0x00000bf0 .p2align 4, 0x90 + //0x00000bf0 LBB0_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00000bf0 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00000bf4 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00000bf9 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x00000bfe decq %rcx + 0x49, 0x39, 0xca, //0x00000c01 cmpq %rcx, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00000c04 jne LBB0_126 + //0x00000c0a LBB0_127 + 0x49, 0x63, 0xcf, //0x00000c0a movslq %r15d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x00000c0d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00000c12 addq %rax, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00000c15 jmp LBB0_137 + //0x00000c1a LBB0_129 + 0x4c, 0x89, 0xe3, //0x00000c1a movq %r12, %rbx + 0x48, 0x29, 0xcb, //0x00000c1d subq %rcx, %rbx + 0x31, 0xc9, //0x00000c20 xorl %ecx, %ecx + 0xc5, 0xfe, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x00000c22 vmovdqu $-3114(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000c2a LBB0_130 + 0x49, 0x8d, 0x04, 0x08, //0x00000c2a leaq (%r8,%rcx), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x00000c2e vmovdqu %ymm0, (%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x00000c33 vmovdqu %ymm0, $32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x00000c39 vmovdqu %ymm0, $64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x00000c3f vmovdqu %ymm0, $96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x00000c45 vmovdqu %ymm0, $128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x00000c4e vmovdqu %ymm0, $160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x00000c57 vmovdqu %ymm0, $192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x00000c60 vmovdqu %ymm0, $224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x00000c69 vmovdqu %ymm0, $256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x00000c72 vmovdqu %ymm0, $288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x00000c7b vmovdqu %ymm0, $320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x00000c84 vmovdqu %ymm0, $352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x00000c8d vmovdqu %ymm0, $384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x00000c96 vmovdqu %ymm0, $416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x00000c9f vmovdqu %ymm0, $448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x00000ca8 vmovdqu %ymm0, $480(%rsi,%rax) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00000cb1 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x00000cb8 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x00000cbc jne LBB0_130 + //0x00000cc2 LBB0_131 + 0x49, 0x01, 0xf3, //0x00000cc2 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00000cc5 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00000cc8 je LBB0_134 + 0x49, 0x01, 0xc8, //0x00000cce addq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x00000cd1 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00000cd4 negq %r12 + 0xc5, 0xfe, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00000cd7 vmovdqu $-3295(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000cdf LBB0_133 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x00000cdf vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00000ce5 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x00000ceb vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00000cf1 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x00000cf6 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x00000cfa incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00000cfd jne LBB0_133 + //0x00000d03 LBB0_134 + 0x4d, 0x89, 0xd8, //0x00000d03 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x00000d06 cmpq %r10, %r14 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000d09 je LBB0_137 + //0x00000d0f LBB0_135 + 0x45, 0x29, 0xd7, //0x00000d0f subl %r10d, %r15d + 0x45, 0x29, 0xcf, //0x00000d12 subl %r9d, %r15d + 0x4d, 0x89, 0xd8, //0x00000d15 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d18 .p2align 4, 0x90 + //0x00000d20 LBB0_136 + 0x41, 0xc6, 0x00, 0x30, //0x00000d20 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00000d24 incq %r8 + 0x41, 0xff, 0xcf, //0x00000d27 decl %r15d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00000d2a jne LBB0_136 + //0x00000d30 LBB0_137 + 0x41, 0x29, 0xf8, //0x00000d30 subl %edi, %r8d + //0x00000d33 LBB0_138 + 0x44, 0x89, 0xc0, //0x00000d33 movl %r8d, %eax + 0x5b, //0x00000d36 popq %rbx + 0x41, 0x5c, //0x00000d37 popq %r12 + 0x41, 0x5d, //0x00000d39 popq %r13 + 0x41, 0x5e, //0x00000d3b popq %r14 + 0x41, 0x5f, //0x00000d3d popq %r15 + 0x5d, //0x00000d3f popq %rbp + 0xc5, 0xf8, 0x77, //0x00000d40 vzeroupper + 0xc3, //0x00000d43 retq + //0x00000d44 LBB0_139 + 0x45, 0x31, 0xc0, //0x00000d44 xorl %r8d, %r8d + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x00000d47 jmp LBB0_138 + //0x00000d4c LBB0_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x00000d4c movl $-149, %r15d + 0x89, 0xc6, //0x00000d52 movl %eax, %esi + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x00000d54 jmp LBB0_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d59 .p2align 4, 0x00 + //0x00000d60 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000d60 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000d70 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000d80 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000d90 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000da0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000db0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000dc0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000dd0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000de0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00000df0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x00000e00 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00000e10 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00000e20 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e28 .p2align 4, 0x00 + //0x00000e30 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00000e30 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00000e38 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00000e40 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00000e48 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00000e50 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00000e58 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00000e60 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00000e68 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00000e70 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00000e78 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00000e80 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00000e88 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00000e90 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00000e98 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00000ea0 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00000ea8 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00000eb0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00000eb8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00000ec0 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00000ec8 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00000ed0 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00000ed8 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00000ee0 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ee8 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00000ef0 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00000ef8 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00000f00 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00000f08 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00000f10 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00000f18 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000f20 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000f28 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00000f30 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00000f38 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00000f40 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00000f48 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00000f50 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00000f58 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00000f60 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00000f68 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00000f70 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00000f78 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00000f80 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00000f88 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00000f90 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00000f98 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00000fa0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00000fa8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00000fb0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00000fb8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00000fc0 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00000fc8 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00000fd0 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00000fd8 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00000fe0 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00000fe8 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00000ff0 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00000ff8 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00001000 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00001008 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00001010 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00001018 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00001020 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00001028 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00001030 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00001038 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00001040 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00001048 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00001050 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00001058 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00001060 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00001068 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00001070 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00001078 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00001080 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00001088 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00001090 .quad -5522047002568494196 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa.go new file mode 100644 index 000000000..2051eaa38 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f64toa func(out unsafe.Pointer, val float64) (ret int) + +var S_f64toa uintptr + +//go:nosplit +func f64toa(out *byte, val float64) (ret int) { + return F_f64toa((rt.NoEscape(unsafe.Pointer(out))), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_subr.go new file mode 100644 index 000000000..7d49e2da0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__f64toa = 32 +) + +const ( + _stack__f64toa = 56 +) + +const ( + _size__f64toa = 4704 +) + +var ( + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4614, 56}, + {4618, 48}, + {4619, 40}, + {4621, 32}, + {4623, 24}, + {4625, 16}, + {4627, 8}, + {4631, 0}, + {4694, 56}, + } +) + +var _cfunc_f64toa = []loader.CFunc{ + {"_f64toa_entry", 0, _entry__f64toa, 0, nil}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_text_amd64.go new file mode 100644 index 000000000..aa2d5af20 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/f64toa_text_amd64.go @@ -0,0 +1,2402 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_f64toa = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000010 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000020 .p2align 4, 0x90 + //0x00000020 _f64toa + 0x55, //0x00000020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000021 movq %rsp, %rbp + 0x41, 0x57, //0x00000024 pushq %r15 + 0x41, 0x56, //0x00000026 pushq %r14 + 0x41, 0x55, //0x00000028 pushq %r13 + 0x41, 0x54, //0x0000002a pushq %r12 + 0x53, //0x0000002c pushq %rbx + 0x50, //0x0000002d pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000002e vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000033 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000036 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000003a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000003f cmpl $2047, %eax + 0x0f, 0x84, 0xee, 0x11, 0x00, 0x00, //0x00000044 je LBB0_165 + 0xc6, 0x07, 0x2d, //0x0000004a movb $45, (%rdi) + 0x48, 0x89, 0xd6, //0x0000004d movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x3f, //0x00000050 shrq $63, %rsi + 0x4c, 0x8d, 0x04, 0x37, //0x00000054 leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x00000058 leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000060 testq %rcx, %rcx + 0x0f, 0x84, 0x7e, 0x02, 0x00, 0x00, //0x00000063 je LBB0_6 + 0x49, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000069 movabsq $4503599627370495, %r11 + 0x4c, 0x21, 0xda, //0x00000073 andq %r11, %rdx + 0x85, 0xc0, //0x00000076 testl %eax, %eax + 0x0f, 0x84, 0xc2, 0x11, 0x00, 0x00, //0x00000078 je LBB0_166 + 0x49, 0xff, 0xc3, //0x0000007e incq %r11 + 0x49, 0x09, 0xd3, //0x00000081 orq %rdx, %r11 + 0x44, 0x8d, 0x90, 0xcd, 0xfb, 0xff, 0xff, //0x00000084 leal $-1075(%rax), %r10d + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000008b leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000091 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000094 ja LBB0_7 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000009a movl $1075, %ecx + 0x29, 0xc1, //0x0000009f subl %eax, %ecx + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000000a1 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x000000a8 shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x000000ab notq %rbx + 0x49, 0x85, 0xdb, //0x000000ae testq %rbx, %r11 + 0x0f, 0x84, 0x43, 0x06, 0x00, 0x00, //0x000000b1 je LBB0_42 + //0x000000b7 LBB0_7 + 0x48, 0x89, 0x75, 0xd0, //0x000000b7 movq %rsi, $-48(%rbp) + //0x000000bb LBB0_8 + 0x48, 0x85, 0xd2, //0x000000bb testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x000000be sete %cl + 0x83, 0xf8, 0x01, //0x000000c1 cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x000000c4 seta %al + 0x20, 0xc8, //0x000000c7 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x000000c9 movzbl %al, %eax + 0x4e, 0x8d, 0x4c, 0x98, 0xfe, //0x000000cc leaq $-2(%rax,%r11,4), %r9 + 0x45, 0x69, 0xfa, 0x13, 0x44, 0x13, 0x00, //0x000000d1 imull $1262611, %r10d, %r15d + 0x31, 0xc9, //0x000000d8 xorl %ecx, %ecx + 0x84, 0xc0, //0x000000da testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x000000dc movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x000000e1 cmovel %ecx, %eax + 0x41, 0x29, 0xc7, //0x000000e4 subl %eax, %r15d + 0x41, 0xc1, 0xff, 0x16, //0x000000e7 sarl $22, %r15d + 0x41, 0x69, 0xcf, 0xb1, 0x6c, 0xe5, 0xff, //0x000000eb imull $-1741647, %r15d, %ecx + 0xc1, 0xe9, 0x13, //0x000000f2 shrl $19, %ecx + 0x44, 0x01, 0xd1, //0x000000f5 addl %r10d, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x000000f8 movl $292, %eax + 0x44, 0x29, 0xf8, //0x000000fd subl %r15d, %eax + 0x48, 0x98, //0x00000100 cltq + 0x48, 0xc1, 0xe0, 0x04, //0x00000102 shlq $4, %rax + 0x48, 0x8d, 0x15, 0x43, 0x12, 0x00, 0x00, //0x00000106 leaq $4675(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x24, 0x10, //0x0000010d movq (%rax,%rdx), %r12 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x00000111 movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000116 incb %cl + 0x49, 0xd3, 0xe1, //0x00000118 shlq %cl, %r9 + 0x4c, 0x89, 0xc8, //0x0000011b movq %r9, %rax + 0x49, 0xf7, 0xe5, //0x0000011e mulq %r13 + 0x49, 0x89, 0xd2, //0x00000121 movq %rdx, %r10 + 0x4c, 0x89, 0xc8, //0x00000124 movq %r9, %rax + 0x49, 0xf7, 0xe4, //0x00000127 mulq %r12 + 0x4a, 0x8d, 0x34, 0x9d, 0x00, 0x00, 0x00, 0x00, //0x0000012a leaq (,%r11,4), %rsi + 0x4c, 0x01, 0xd0, //0x00000132 addq %r10, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000135 adcq $0, %rdx + 0x31, 0xdb, //0x00000139 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x0000013b cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x0000013f seta %bl + 0x48, 0x09, 0xd3, //0x00000142 orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x00000145 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000148 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000014b mulq %r13 + 0x49, 0x89, 0xd2, //0x0000014e movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x00000151 movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000154 mulq %r12 + 0x49, 0x89, 0xd1, //0x00000157 movq %rdx, %r9 + 0x4a, 0x8d, 0x34, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x0000015a leaq $2(,%r11,4), %rsi + 0x4c, 0x01, 0xd0, //0x00000162 addq %r10, %rax + 0x49, 0x83, 0xd1, 0x00, //0x00000165 adcq $0, %r9 + 0x45, 0x31, 0xd2, //0x00000169 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x0000016c cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x00000170 seta %r10b + 0x4d, 0x09, 0xca, //0x00000174 orq %r9, %r10 + 0x48, 0xd3, 0xe6, //0x00000177 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x0000017a movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000017d mulq %r13 + 0x48, 0x89, 0xd1, //0x00000180 movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000183 movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000186 mulq %r12 + 0x48, 0x01, 0xc8, //0x00000189 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x0000018c adcq $0, %rdx + 0x31, 0xf6, //0x00000190 xorl %esi, %esi + 0x48, 0x83, 0xf8, 0x01, //0x00000192 cmpq $1, %rax + 0x40, 0x0f, 0x97, 0xc6, //0x00000196 seta %sil + 0x48, 0x09, 0xd6, //0x0000019a orq %rdx, %rsi + 0x41, 0x83, 0xe3, 0x01, //0x0000019d andl $1, %r11d + 0x4c, 0x01, 0xdb, //0x000001a1 addq %r11, %rbx + 0x4c, 0x29, 0xde, //0x000001a4 subq %r11, %rsi + 0x49, 0x83, 0xfa, 0x28, //0x000001a7 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x000001ab jb LBB0_20 + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000001b1 movabsq $-3689348814741910323, %rcx + 0x4c, 0x89, 0xc8, //0x000001bb movq %r9, %rax + 0x48, 0xf7, 0xe1, //0x000001be mulq %rcx + 0x49, 0x89, 0xd6, //0x000001c1 movq %rdx, %r14 + 0x49, 0xc1, 0xee, 0x05, //0x000001c4 shrq $5, %r14 + 0x4a, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x000001c8 leaq (,%r14,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000001d0 leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x000001d4 cmpq %rdx, %rbx + 0x41, 0x0f, 0x96, 0xc3, //0x000001d7 setbe %r11b + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x000001db leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xf0, //0x000001e0 cmpq %rsi, %rax + 0x0f, 0x96, 0xc2, //0x000001e3 setbe %dl + 0x41, 0x38, 0xd3, //0x000001e6 cmpb %dl, %r11b + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000001e9 je LBB0_20 + 0x31, 0xd2, //0x000001ef xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x000001f1 cmpq %rsi, %rax + 0x0f, 0x96, 0xc2, //0x000001f4 setbe %dl + 0x49, 0x01, 0xd6, //0x000001f7 addq %rdx, %r14 + 0x41, 0xff, 0xc7, //0x000001fa incl %r15d + 0x49, 0xba, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000001fd movabsq $8589934464, %r10 + 0x49, 0x8d, 0x82, 0x7f, 0xe4, 0x0b, 0x54, //0x00000207 leaq $1410065535(%r10), %rax + 0x49, 0x39, 0xc6, //0x0000020e cmpq %rax, %r14 + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00000211 ja LBB0_25 + //0x00000217 LBB0_11 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000217 movl $1, %eax + 0x49, 0x83, 0xfe, 0x0a, //0x0000021c cmpq $10, %r14 + 0x0f, 0x82, 0x9e, 0x01, 0x00, 0x00, //0x00000220 jb LBB0_32 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000226 movl $2, %eax + 0x49, 0x83, 0xfe, 0x64, //0x0000022b cmpq $100, %r14 + 0x0f, 0x82, 0x8f, 0x01, 0x00, 0x00, //0x0000022f jb LBB0_32 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00000235 movl $3, %eax + 0x49, 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000023a cmpq $1000, %r14 + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x00000241 jb LBB0_32 + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00000247 movl $4, %eax + 0x49, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000024c cmpq $10000, %r14 + 0x0f, 0x82, 0x6b, 0x01, 0x00, 0x00, //0x00000253 jb LBB0_32 + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00000259 movl $5, %eax + 0x49, 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000025e cmpq $100000, %r14 + 0x0f, 0x82, 0x59, 0x01, 0x00, 0x00, //0x00000265 jb LBB0_32 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x0000026b movl $6, %eax + 0x49, 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000270 cmpq $1000000, %r14 + 0x0f, 0x82, 0x47, 0x01, 0x00, 0x00, //0x00000277 jb LBB0_32 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x0000027d movl $7, %eax + 0x49, 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000282 cmpq $10000000, %r14 + 0x0f, 0x82, 0x35, 0x01, 0x00, 0x00, //0x00000289 jb LBB0_32 + 0xb8, 0x08, 0x00, 0x00, 0x00, //0x0000028f movl $8, %eax + 0x49, 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00000294 cmpq $100000000, %r14 + 0x0f, 0x82, 0x23, 0x01, 0x00, 0x00, //0x0000029b jb LBB0_32 + 0x49, 0x81, 0xfe, 0x00, 0xca, 0x9a, 0x3b, //0x000002a1 cmpq $1000000000, %r14 + 0xb8, 0x0a, 0x00, 0x00, 0x00, //0x000002a8 movl $10, %eax + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x000002ad jmp LBB0_31 + //0x000002b2 LBB0_20 + 0x4d, 0x89, 0xcb, //0x000002b2 movq %r9, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x000002b5 shrq $2, %r11 + 0x4c, 0x89, 0xca, //0x000002b9 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x000002bc andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x000002c0 cmpq %rdx, %rbx + 0x0f, 0x96, 0xc1, //0x000002c3 setbe %cl + 0x48, 0x8d, 0x5a, 0x04, //0x000002c6 leaq $4(%rdx), %rbx + 0x48, 0x39, 0xf3, //0x000002ca cmpq %rsi, %rbx + 0x0f, 0x96, 0xc0, //0x000002cd setbe %al + 0x38, 0xc1, //0x000002d0 cmpb %al, %cl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000002d2 je LBB0_22 + 0x45, 0x31, 0xf6, //0x000002d8 xorl %r14d, %r14d + 0x48, 0x39, 0xf3, //0x000002db cmpq %rsi, %rbx + 0x41, 0x0f, 0x96, 0xc6, //0x000002de setbe %r14b + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000002e2 jmp LBB0_24 + //0x000002e7 LBB0_6 + 0x41, 0xc6, 0x00, 0x30, //0x000002e7 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x000002eb subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x000002ee incl %r8d + 0xe9, 0x2d, 0x0f, 0x00, 0x00, //0x000002f1 jmp LBB0_164 + //0x000002f6 LBB0_22 + 0x48, 0x83, 0xca, 0x02, //0x000002f6 orq $2, %rdx + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x000002fa movl $1, %r14d + 0x49, 0x39, 0xd2, //0x00000300 cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00000303 ja LBB0_24 + 0x0f, 0x94, 0xc0, //0x00000309 sete %al + 0x41, 0xc0, 0xe9, 0x02, //0x0000030c shrb $2, %r9b + 0x41, 0x20, 0xc1, //0x00000310 andb %al, %r9b + 0x45, 0x0f, 0xb6, 0xf1, //0x00000313 movzbl %r9b, %r14d + //0x00000317 LBB0_24 + 0x4d, 0x01, 0xde, //0x00000317 addq %r11, %r14 + 0x49, 0xba, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000031a movabsq $8589934464, %r10 + 0x49, 0x8d, 0x82, 0x7f, 0xe4, 0x0b, 0x54, //0x00000324 leaq $1410065535(%r10), %rax + 0x49, 0x39, 0xc6, //0x0000032b cmpq %rax, %r14 + 0x0f, 0x86, 0xe3, 0xfe, 0xff, 0xff, //0x0000032e jbe LBB0_11 + //0x00000334 LBB0_25 + 0x4c, 0x89, 0xf2, //0x00000334 movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0b, //0x00000337 shrq $11, %rdx + 0xb8, 0x0b, 0x00, 0x00, 0x00, //0x0000033b movl $11, %eax + 0x48, 0x81, 0xfa, 0xdd, 0x0e, 0xe9, 0x02, //0x00000340 cmpq $48828125, %rdx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00000347 jb LBB0_32 + 0x4c, 0x89, 0xf2, //0x0000034d movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0c, //0x00000350 shrq $12, %rdx + 0xb8, 0x0c, 0x00, 0x00, 0x00, //0x00000354 movl $12, %eax + 0x48, 0x81, 0xfa, 0x51, 0x4a, 0x8d, 0x0e, //0x00000359 cmpq $244140625, %rdx + 0x0f, 0x82, 0x5e, 0x00, 0x00, 0x00, //0x00000360 jb LBB0_32 + 0x4c, 0x89, 0xf2, //0x00000366 movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0d, //0x00000369 shrq $13, %rdx + 0xb8, 0x0d, 0x00, 0x00, 0x00, //0x0000036d movl $13, %eax + 0x48, 0x81, 0xfa, 0x95, 0x73, 0xc2, 0x48, //0x00000372 cmpq $1220703125, %rdx + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000379 jb LBB0_32 + 0xb8, 0x0e, 0x00, 0x00, 0x00, //0x0000037f movl $14, %eax + 0x48, 0xba, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000384 movabsq $100000000000000, %rdx + 0x49, 0x39, 0xd6, //0x0000038e cmpq %rdx, %r14 + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000391 jb LBB0_32 + 0xb8, 0x0f, 0x00, 0x00, 0x00, //0x00000397 movl $15, %eax + 0x48, 0xba, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x0000039c movabsq $1000000000000000, %rdx + 0x49, 0x39, 0xd6, //0x000003a6 cmpq %rdx, %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000003a9 jb LBB0_32 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000003af movabsq $10000000000000000, %rax + 0x49, 0x39, 0xc6, //0x000003b9 cmpq %rax, %r14 + 0xb8, 0x11, 0x00, 0x00, 0x00, //0x000003bc movl $17, %eax + //0x000003c1 LBB0_31 + 0x83, 0xd8, 0x00, //0x000003c1 sbbl $0, %eax + //0x000003c4 LBB0_32 + 0x46, 0x8d, 0x0c, 0x38, //0x000003c4 leal (%rax,%r15), %r9d + 0x42, 0x8d, 0x54, 0x38, 0x05, //0x000003c8 leal $5(%rax,%r15), %edx + 0x41, 0x89, 0xc4, //0x000003cd movl %eax, %r12d + 0x83, 0xfa, 0x1b, //0x000003d0 cmpl $27, %edx + 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x000003d3 jb LBB0_36 + 0x4f, 0x8d, 0x7c, 0x20, 0x01, //0x000003d9 leaq $1(%r8,%r12), %r15 + 0x4c, 0x89, 0xf0, //0x000003de movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000003e1 shrq $32, %rax + 0x0f, 0x84, 0xa8, 0x01, 0x00, 0x00, //0x000003e5 je LBB0_40 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000003eb movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x000003f5 movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x000003f8 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000003fb shrq $26, %rdx + 0x69, 0xda, 0x00, 0x1f, 0x0a, 0xfa, //0x000003ff imull $-100000000, %edx, %ebx + 0x44, 0x01, 0xf3, //0x00000405 addl %r14d, %ebx + 0x0f, 0x84, 0xc6, 0x07, 0x00, 0x00, //0x00000408 je LBB0_86 + 0x89, 0xd8, //0x0000040e movl %ebx, %eax + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000410 movl $3518437209, %r10d + 0x49, 0x0f, 0xaf, 0xc2, //0x00000416 imulq %r10, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x0000041a shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x0000041e imull $10000, %eax, %ecx + 0x29, 0xcb, //0x00000424 subl %ecx, %ebx + 0x48, 0x89, 0xc1, //0x00000426 movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xca, //0x00000429 imulq %r10, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000042d shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x00000431 imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000437 subl %ecx, %eax + 0x0f, 0xb7, 0xcb, //0x00000439 movzwl %bx, %ecx + 0xc1, 0xe9, 0x02, //0x0000043c shrl $2, %ecx + 0x44, 0x69, 0xd1, 0x7b, 0x14, 0x00, 0x00, //0x0000043f imull $5243, %ecx, %r10d + 0x41, 0xc1, 0xea, 0x11, //0x00000446 shrl $17, %r10d + 0x41, 0x6b, 0xca, 0x64, //0x0000044a imull $100, %r10d, %ecx + 0x29, 0xcb, //0x0000044e subl %ecx, %ebx + 0x44, 0x0f, 0xb7, 0xdb, //0x00000450 movzwl %bx, %r11d + 0x0f, 0xb7, 0xd8, //0x00000454 movzwl %ax, %ebx + 0xc1, 0xeb, 0x02, //0x00000457 shrl $2, %ebx + 0x69, 0xdb, 0x7b, 0x14, 0x00, 0x00, //0x0000045a imull $5243, %ebx, %ebx + 0xc1, 0xeb, 0x11, //0x00000460 shrl $17, %ebx + 0x6b, 0xcb, 0x64, //0x00000463 imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00000466 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf0, //0x00000468 movzwl %ax, %r14d + 0x48, 0x8d, 0x0d, 0x0d, 0x0e, 0x00, 0x00, //0x0000046c leaq $3597(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000473 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfe, //0x00000478 movw %ax, $-2(%r15) + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x0000047d movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00000482 movw %ax, $-4(%r15) + 0x42, 0x0f, 0xb7, 0x04, 0x71, //0x00000487 movzwl (%rcx,%r14,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfa, //0x0000048c movw %ax, $-6(%r15) + 0x0f, 0xb7, 0x04, 0x59, //0x00000491 movzwl (%rcx,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xf8, //0x00000495 movw %ax, $-8(%r15) + 0x45, 0x31, 0xd2, //0x0000049a xorl %r10d, %r10d + 0x4d, 0x8d, 0x67, 0xf8, //0x0000049d leaq $-8(%r15), %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x000004a1 cmpl $10000, %edx + 0x0f, 0x83, 0xfb, 0x00, 0x00, 0x00, //0x000004a7 jae LBB0_88 + //0x000004ad LBB0_41 + 0x89, 0xd3, //0x000004ad movl %edx, %ebx + 0xe9, 0x56, 0x01, 0x00, 0x00, //0x000004af jmp LBB0_90 + //0x000004b4 LBB0_36 + 0x45, 0x85, 0xff, //0x000004b4 testl %r15d, %r15d + 0x0f, 0x88, 0x61, 0x04, 0x00, 0x00, //0x000004b7 js LBB0_57 + 0x4b, 0x8d, 0x1c, 0x20, //0x000004bd leaq (%r8,%r12), %rbx + 0x4c, 0x89, 0xf0, //0x000004c1 movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000004c4 shrq $32, %rax + 0x0f, 0x84, 0xed, 0x04, 0x00, 0x00, //0x000004c8 je LBB0_62 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000004ce movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x000004d8 movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x000004db mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000004de shrq $26, %rdx + 0x69, 0xf2, 0x00, 0x1f, 0x0a, 0xfa, //0x000004e2 imull $-100000000, %edx, %esi + 0x44, 0x01, 0xf6, //0x000004e8 addl %r14d, %esi + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000004eb movl $3518437209, %r10d + 0x48, 0x89, 0xf0, //0x000004f1 movq %rsi, %rax + 0x49, 0x0f, 0xaf, 0xc2, //0x000004f4 imulq %r10, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000004f8 shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x000004fc imull $10000, %eax, %ecx + 0x29, 0xce, //0x00000502 subl %ecx, %esi + 0x48, 0x89, 0xc1, //0x00000504 movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xca, //0x00000507 imulq %r10, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000050b shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x0000050f imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000515 subl %ecx, %eax + 0x0f, 0xb7, 0xce, //0x00000517 movzwl %si, %ecx + 0xc1, 0xe9, 0x02, //0x0000051a shrl $2, %ecx + 0x44, 0x69, 0xd1, 0x7b, 0x14, 0x00, 0x00, //0x0000051d imull $5243, %ecx, %r10d + 0x41, 0xc1, 0xea, 0x11, //0x00000524 shrl $17, %r10d + 0x41, 0x6b, 0xca, 0x64, //0x00000528 imull $100, %r10d, %ecx + 0x29, 0xce, //0x0000052c subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xde, //0x0000052e movzwl %si, %r11d + 0x0f, 0xb7, 0xf0, //0x00000532 movzwl %ax, %esi + 0xc1, 0xee, 0x02, //0x00000535 shrl $2, %esi + 0x69, 0xf6, 0x7b, 0x14, 0x00, 0x00, //0x00000538 imull $5243, %esi, %esi + 0xc1, 0xee, 0x11, //0x0000053e shrl $17, %esi + 0x6b, 0xce, 0x64, //0x00000541 imull $100, %esi, %ecx + 0x29, 0xc8, //0x00000544 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf8, //0x00000546 movzwl %ax, %r15d + 0x48, 0x8d, 0x0d, 0x2f, 0x0d, 0x00, 0x00, //0x0000054a leaq $3375(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000551 movzwl (%rcx,%r11,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00000556 movw %ax, $-2(%rbx) + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x0000055a movzwl (%rcx,%r10,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x0000055f movw %ax, $-4(%rbx) + 0x42, 0x0f, 0xb7, 0x04, 0x79, //0x00000563 movzwl (%rcx,%r15,2), %eax + 0x66, 0x89, 0x43, 0xfa, //0x00000568 movw %ax, $-6(%rbx) + 0x48, 0x8d, 0x43, 0xf8, //0x0000056c leaq $-8(%rbx), %rax + 0x0f, 0xb7, 0x0c, 0x71, //0x00000570 movzwl (%rcx,%rsi,2), %ecx + 0x66, 0x89, 0x4b, 0xf8, //0x00000574 movw %cx, $-8(%rbx) + 0x41, 0x89, 0xd6, //0x00000578 movl %edx, %r14d + 0x49, 0x89, 0xff, //0x0000057b movq %rdi, %r15 + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000057e cmpl $10000, %r14d + 0x0f, 0x83, 0x43, 0x04, 0x00, 0x00, //0x00000585 jae LBB0_63 + //0x0000058b LBB0_39 + 0x44, 0x89, 0xf2, //0x0000058b movl %r14d, %edx + 0xe9, 0x97, 0x04, 0x00, 0x00, //0x0000058e jmp LBB0_65 + //0x00000593 LBB0_40 + 0x45, 0x31, 0xd2, //0x00000593 xorl %r10d, %r10d + 0x44, 0x89, 0xf2, //0x00000596 movl %r14d, %edx + 0x4d, 0x89, 0xfc, //0x00000599 movq %r15, %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x0000059c cmpl $10000, %edx + 0x0f, 0x82, 0x05, 0xff, 0xff, 0xff, //0x000005a2 jb LBB0_41 + //0x000005a8 LBB0_88 + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000005a8 movl $3518437209, %r11d + 0x4c, 0x8d, 0x35, 0xcb, 0x0c, 0x00, 0x00, //0x000005ae leaq $3275(%rip), %r14 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005b5 .p2align 4, 0x90 + //0x000005c0 LBB0_89 + 0x89, 0xd3, //0x000005c0 movl %edx, %ebx + 0x49, 0x0f, 0xaf, 0xdb, //0x000005c2 imulq %r11, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x000005c6 shrq $45, %rbx + 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x000005ca imull $-10000, %ebx, %eax + 0x01, 0xd0, //0x000005d0 addl %edx, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x000005d2 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x000005d9 shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x000005dd imull $100, %esi, %ecx + 0x29, 0xc8, //0x000005e0 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x46, //0x000005e2 movzwl (%r14,%rax,2), %eax + 0x66, 0x41, 0x89, 0x44, 0x24, 0xfe, //0x000005e7 movw %ax, $-2(%r12) + 0x41, 0x0f, 0xb7, 0x04, 0x76, //0x000005ed movzwl (%r14,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x44, 0x24, 0xfc, //0x000005f2 movw %ax, $-4(%r12) + 0x49, 0x83, 0xc4, 0xfc, //0x000005f8 addq $-4, %r12 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x000005fc cmpl $99999999, %edx + 0x89, 0xda, //0x00000602 movl %ebx, %edx + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x00000604 ja LBB0_89 + //0x0000060a LBB0_90 + 0x83, 0xfb, 0x64, //0x0000060a cmpl $100, %ebx + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x0000060d jb LBB0_92 + 0x0f, 0xb7, 0xc3, //0x00000613 movzwl %bx, %eax + 0xc1, 0xe8, 0x02, //0x00000616 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000619 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000061f shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000622 imull $100, %eax, %ecx + 0x29, 0xcb, //0x00000625 subl %ecx, %ebx + 0x0f, 0xb7, 0xcb, //0x00000627 movzwl %bx, %ecx + 0x48, 0x8d, 0x15, 0x4f, 0x0c, 0x00, 0x00, //0x0000062a leaq $3151(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000631 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4c, 0x24, 0xfe, //0x00000635 movw %cx, $-2(%r12) + 0x49, 0x83, 0xc4, 0xfe, //0x0000063b addq $-2, %r12 + 0x89, 0xc3, //0x0000063f movl %eax, %ebx + //0x00000641 LBB0_92 + 0x49, 0x8d, 0x40, 0x01, //0x00000641 leaq $1(%r8), %rax + 0x83, 0xfb, 0x0a, //0x00000645 cmpl $10, %ebx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000648 jb LBB0_94 + 0x89, 0xd9, //0x0000064e movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x29, 0x0c, 0x00, 0x00, //0x00000650 leaq $3113(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000657 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4c, 0x24, 0xfe, //0x0000065b movw %cx, $-2(%r12) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000661 jmp LBB0_95 + //0x00000666 LBB0_94 + 0x80, 0xc3, 0x30, //0x00000666 addb $48, %bl + 0x88, 0x18, //0x00000669 movb %bl, (%rax) + //0x0000066b LBB0_95 + 0x4d, 0x29, 0xd7, //0x0000066b subq %r10, %r15 + 0x90, 0x90, //0x0000066e .p2align 4, 0x90 + //0x00000670 LBB0_96 + 0x41, 0x80, 0x7f, 0xff, 0x30, //0x00000670 cmpb $48, $-1(%r15) + 0x4d, 0x8d, 0x7f, 0xff, //0x00000675 leaq $-1(%r15), %r15 + 0x0f, 0x84, 0xf1, 0xff, 0xff, 0xff, //0x00000679 je LBB0_96 + 0x41, 0x8a, 0x48, 0x01, //0x0000067f movb $1(%r8), %cl + 0x41, 0x88, 0x08, //0x00000683 movb %cl, (%r8) + 0x49, 0x8d, 0x4f, 0x01, //0x00000686 leaq $1(%r15), %rcx + 0x48, 0x89, 0xca, //0x0000068a movq %rcx, %rdx + 0x48, 0x29, 0xc2, //0x0000068d subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000690 cmpq $2, %rdx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00000694 jl LBB0_99 + 0xc6, 0x00, 0x2e, //0x0000069a movb $46, (%rax) + 0x49, 0x89, 0xcf, //0x0000069d movq %rcx, %r15 + //0x000006a0 LBB0_99 + 0x41, 0xc6, 0x07, 0x65, //0x000006a0 movb $101, (%r15) + 0x45, 0x85, 0xc9, //0x000006a4 testl %r9d, %r9d + 0x0f, 0x8e, 0xd1, 0x02, 0x00, 0x00, //0x000006a7 jle LBB0_102 + 0x41, 0xff, 0xc9, //0x000006ad decl %r9d + 0x41, 0xc6, 0x47, 0x01, 0x2b, //0x000006b0 movb $43, $1(%r15) + 0x44, 0x89, 0xc8, //0x000006b5 movl %r9d, %eax + 0x83, 0xf8, 0x64, //0x000006b8 cmpl $100, %eax + 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x000006bb jl LBB0_103 + //0x000006c1 LBB0_101 + 0x89, 0xc1, //0x000006c1 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000006c3 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000006c8 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000006cc shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000006d0 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000006d3 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000006d6 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xa1, 0x0b, 0x00, 0x00, //0x000006d8 leaq $2977(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000006df movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x41, 0x89, 0x4f, 0x02, //0x000006e3 movw %cx, $2(%r15) + 0x0c, 0x30, //0x000006e8 orb $48, %al + 0x41, 0x88, 0x47, 0x04, //0x000006ea movb %al, $4(%r15) + 0x49, 0x83, 0xc7, 0x05, //0x000006ee addq $5, %r15 + 0x4d, 0x89, 0xf8, //0x000006f2 movq %r15, %r8 + 0xe9, 0x26, 0x0b, 0x00, 0x00, //0x000006f5 jmp LBB0_163 + //0x000006fa LBB0_42 + 0x49, 0xd3, 0xeb, //0x000006fa shrq %cl, %r11 + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000006fd movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000707 addq $1410065535, %rax + 0x49, 0x39, 0xc3, //0x0000070d cmpq %rax, %r11 + 0x0f, 0x86, 0xf7, 0x03, 0x00, 0x00, //0x00000710 jbe LBB0_73 + 0x4c, 0x89, 0xd8, //0x00000716 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000719 shrq $11, %rax + 0x41, 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000071d movl $11, %r10d + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000723 cmpq $48828125, %rax + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000729 jb LBB0_49 + 0x4c, 0x89, 0xd8, //0x0000072f movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x00000732 shrq $12, %rax + 0x41, 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000736 movl $12, %r10d + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x0000073c cmpq $244140625, %rax + 0x0f, 0x82, 0x62, 0x00, 0x00, 0x00, //0x00000742 jb LBB0_49 + 0x4c, 0x89, 0xd8, //0x00000748 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x0000074b shrq $13, %rax + 0x41, 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000074f movl $13, %r10d + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000755 cmpq $1220703125, %rax + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x0000075b jb LBB0_49 + 0x41, 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000761 movl $14, %r10d + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000767 movabsq $100000000000000, %rax + 0x49, 0x39, 0xc3, //0x00000771 cmpq %rax, %r11 + 0x0f, 0x82, 0x30, 0x00, 0x00, 0x00, //0x00000774 jb LBB0_49 + 0x41, 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000077a movl $15, %r10d + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000780 movabsq $1000000000000000, %rax + 0x49, 0x39, 0xc3, //0x0000078a cmpq %rax, %r11 + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000078d jb LBB0_49 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000793 movabsq $10000000000000000, %rax + 0x49, 0x39, 0xc3, //0x0000079d cmpq %rax, %r11 + 0x41, 0xba, 0x11, 0x00, 0x00, 0x00, //0x000007a0 movl $17, %r10d + 0x49, 0x83, 0xda, 0x00, //0x000007a6 sbbq $0, %r10 + //0x000007aa LBB0_49 + 0x4d, 0x01, 0xc2, //0x000007aa addq %r8, %r10 + //0x000007ad LBB0_50 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000007ad movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xd8, //0x000007b7 movq %r11, %rax + 0x48, 0xf7, 0xe2, //0x000007ba mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000007bd shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x000007c1 imull $-100000000, %edx, %ecx + 0x44, 0x01, 0xd9, //0x000007c7 addl %r11d, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x000007ca movl $3518437209, %r9d + 0x48, 0x89, 0xce, //0x000007d0 movq %rcx, %rsi + 0x49, 0x0f, 0xaf, 0xf1, //0x000007d3 imulq %r9, %rsi + 0x48, 0xc1, 0xee, 0x2d, //0x000007d7 shrq $45, %rsi + 0x69, 0xde, 0x10, 0x27, 0x00, 0x00, //0x000007db imull $10000, %esi, %ebx + 0x29, 0xd9, //0x000007e1 subl %ebx, %ecx + 0x48, 0x89, 0xf0, //0x000007e3 movq %rsi, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x000007e6 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000007ea shrq $45, %rax + 0x69, 0xc0, 0x10, 0x27, 0x00, 0x00, //0x000007ee imull $10000, %eax, %eax + 0x29, 0xc6, //0x000007f4 subl %eax, %esi + 0x0f, 0xb7, 0xc1, //0x000007f6 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x000007f9 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000007fc imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000802 shrl $17, %eax + 0x6b, 0xd8, 0x64, //0x00000805 imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000808 subl %ebx, %ecx + 0x44, 0x0f, 0xb7, 0xc9, //0x0000080a movzwl %cx, %r9d + 0x0f, 0xb7, 0xde, //0x0000080e movzwl %si, %ebx + 0xc1, 0xeb, 0x02, //0x00000811 shrl $2, %ebx + 0x69, 0xdb, 0x7b, 0x14, 0x00, 0x00, //0x00000814 imull $5243, %ebx, %ebx + 0xc1, 0xeb, 0x11, //0x0000081a shrl $17, %ebx + 0x6b, 0xcb, 0x64, //0x0000081d imull $100, %ebx, %ecx + 0x29, 0xce, //0x00000820 subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xde, //0x00000822 movzwl %si, %r11d + 0x48, 0x8d, 0x35, 0x53, 0x0a, 0x00, 0x00, //0x00000826 leaq $2643(%rip), %rsi /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x0c, 0x4e, //0x0000082d movzwl (%rsi,%r9,2), %ecx + 0x66, 0x41, 0x89, 0x4a, 0xfe, //0x00000832 movw %cx, $-2(%r10) + 0x0f, 0xb7, 0x04, 0x46, //0x00000837 movzwl (%rsi,%rax,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xfc, //0x0000083b movw %ax, $-4(%r10) + 0x42, 0x0f, 0xb7, 0x04, 0x5e, //0x00000840 movzwl (%rsi,%r11,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xfa, //0x00000845 movw %ax, $-6(%r10) + 0x0f, 0xb7, 0x04, 0x5e, //0x0000084a movzwl (%rsi,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xf8, //0x0000084e movw %ax, $-8(%r10) + 0x49, 0x8d, 0x42, 0xf8, //0x00000853 leaq $-8(%r10), %rax + 0x49, 0x89, 0xd3, //0x00000857 movq %rdx, %r11 + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000085a cmpl $10000, %r11d + 0x0f, 0x82, 0x4b, 0x03, 0x00, 0x00, //0x00000861 jb LBB0_83 + //0x00000867 LBB0_51 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000867 movl $3518437209, %r9d + 0x4c, 0x8d, 0x35, 0x0c, 0x0a, 0x00, 0x00, //0x0000086d leaq $2572(%rip), %r14 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000874 .p2align 4, 0x90 + //0x00000880 LBB0_52 + 0x44, 0x89, 0xda, //0x00000880 movl %r11d, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000883 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000887 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x0000088b imull $-10000, %edx, %ecx + 0x44, 0x01, 0xd9, //0x00000891 addl %r11d, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00000894 imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000089b shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x0000089f imull $100, %esi, %ebx + 0x29, 0xd9, //0x000008a2 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4e, //0x000008a4 movzwl (%r14,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x000008a9 movw %cx, $-2(%rax) + 0x41, 0x0f, 0xb7, 0x0c, 0x76, //0x000008ad movzwl (%r14,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x000008b2 movw %cx, $-4(%rax) + 0x48, 0x83, 0xc0, 0xfc, //0x000008b6 addq $-4, %rax + 0x41, 0x81, 0xfb, 0xff, 0xe0, 0xf5, 0x05, //0x000008ba cmpl $99999999, %r11d + 0x41, 0x89, 0xd3, //0x000008c1 movl %edx, %r11d + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x000008c4 ja LBB0_52 + 0x83, 0xfa, 0x64, //0x000008ca cmpl $100, %edx + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x000008cd jb LBB0_55 + //0x000008d3 LBB0_54 + 0x0f, 0xb7, 0xca, //0x000008d3 movzwl %dx, %ecx + 0xc1, 0xe9, 0x02, //0x000008d6 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000008d9 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000008df shrl $17, %ecx + 0x6b, 0xf1, 0x64, //0x000008e2 imull $100, %ecx, %esi + 0x29, 0xf2, //0x000008e5 subl %esi, %edx + 0x0f, 0xb7, 0xd2, //0x000008e7 movzwl %dx, %edx + 0x48, 0x8d, 0x35, 0x8f, 0x09, 0x00, 0x00, //0x000008ea leaq $2447(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x000008f1 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x000008f5 movw %dx, $-2(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000008f9 addq $-2, %rax + 0x89, 0xca, //0x000008fd movl %ecx, %edx + //0x000008ff LBB0_55 + 0x83, 0xfa, 0x0a, //0x000008ff cmpl $10, %edx + 0x0f, 0x82, 0xbb, 0x02, 0x00, 0x00, //0x00000902 jb LBB0_84 + 0x89, 0xd1, //0x00000908 movl %edx, %ecx + 0x48, 0x8d, 0x15, 0x6f, 0x09, 0x00, 0x00, //0x0000090a leaq $2415(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000911 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000915 movw %cx, $-2(%rax) + 0xe9, 0xab, 0x02, 0x00, 0x00, //0x00000919 jmp LBB0_85 + //0x0000091e LBB0_57 + 0x45, 0x85, 0xc9, //0x0000091e testl %r9d, %r9d + 0x0f, 0x8f, 0xea, 0x04, 0x00, 0x00, //0x00000921 jg LBB0_122 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00000927 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x0000092d addq $2, %r8 + 0x45, 0x85, 0xc9, //0x00000931 testl %r9d, %r9d + 0x0f, 0x89, 0xd7, 0x04, 0x00, 0x00, //0x00000934 jns LBB0_122 + 0x31, 0xc0, //0x0000093a xorl %eax, %eax + 0x41, 0x83, 0xf9, 0x80, //0x0000093c cmpl $-128, %r9d + 0x0f, 0x87, 0xb4, 0x04, 0x00, 0x00, //0x00000940 ja LBB0_120 + 0x45, 0x89, 0xcb, //0x00000946 movl %r9d, %r11d + 0x41, 0xf7, 0xd3, //0x00000949 notl %r11d + 0x49, 0xff, 0xc3, //0x0000094c incq %r11 + 0x4c, 0x89, 0xd8, //0x0000094f movq %r11, %rax + 0x4c, 0x21, 0xd0, //0x00000952 andq %r10, %rax + 0x48, 0x8d, 0x70, 0x80, //0x00000955 leaq $-128(%rax), %rsi + 0x48, 0x89, 0xf2, //0x00000959 movq %rsi, %rdx + 0x48, 0xc1, 0xea, 0x07, //0x0000095c shrq $7, %rdx + 0x48, 0xff, 0xc2, //0x00000960 incq %rdx + 0x41, 0x89, 0xd7, //0x00000963 movl %edx, %r15d + 0x41, 0x83, 0xe7, 0x03, //0x00000966 andl $3, %r15d + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x0000096a cmpq $384, %rsi + 0x0f, 0x83, 0x8d, 0x03, 0x00, 0x00, //0x00000971 jae LBB0_114 + 0x31, 0xd2, //0x00000977 xorl %edx, %edx + 0xe9, 0x33, 0x04, 0x00, 0x00, //0x00000979 jmp LBB0_116 + //0x0000097e LBB0_102 + 0x41, 0xc6, 0x47, 0x01, 0x2d, //0x0000097e movb $45, $1(%r15) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000983 movl $1, %eax + 0x44, 0x29, 0xc8, //0x00000988 subl %r9d, %eax + 0x83, 0xf8, 0x64, //0x0000098b cmpl $100, %eax + 0x0f, 0x8d, 0x2d, 0xfd, 0xff, 0xff, //0x0000098e jge LBB0_101 + //0x00000994 LBB0_103 + 0x83, 0xf8, 0x0a, //0x00000994 cmpl $10, %eax + 0x0f, 0x8c, 0x5e, 0x01, 0x00, 0x00, //0x00000997 jl LBB0_105 + 0x48, 0x98, //0x0000099d cltq + 0x48, 0x8d, 0x0d, 0xda, 0x08, 0x00, 0x00, //0x0000099f leaq $2266(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000009a6 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x47, 0x02, //0x000009aa movw %ax, $2(%r15) + 0x49, 0x83, 0xc7, 0x04, //0x000009af addq $4, %r15 + 0x4d, 0x89, 0xf8, //0x000009b3 movq %r15, %r8 + 0xe9, 0x65, 0x08, 0x00, 0x00, //0x000009b6 jmp LBB0_163 + //0x000009bb LBB0_62 + 0x48, 0x89, 0xd8, //0x000009bb movq %rbx, %rax + 0x49, 0x89, 0xff, //0x000009be movq %rdi, %r15 + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000009c1 cmpl $10000, %r14d + 0x0f, 0x82, 0xbd, 0xfb, 0xff, 0xff, //0x000009c8 jb LBB0_39 + //0x000009ce LBB0_63 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000009ce movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xa5, 0x08, 0x00, 0x00, //0x000009d4 leaq $2213(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009db .p2align 4, 0x90 + //0x000009e0 LBB0_64 + 0x44, 0x89, 0xf2, //0x000009e0 movl %r14d, %edx + 0x49, 0x0f, 0xaf, 0xd2, //0x000009e3 imulq %r10, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000009e7 shrq $45, %rdx + 0x69, 0xf2, 0xf0, 0xd8, 0xff, 0xff, //0x000009eb imull $-10000, %edx, %esi + 0x44, 0x01, 0xf6, //0x000009f1 addl %r14d, %esi + 0x48, 0x69, 0xce, 0x1f, 0x85, 0xeb, 0x51, //0x000009f4 imulq $1374389535, %rsi, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000009fb shrq $37, %rcx + 0x6b, 0xf9, 0x64, //0x000009ff imull $100, %ecx, %edi + 0x29, 0xfe, //0x00000a02 subl %edi, %esi + 0x41, 0x0f, 0xb7, 0x34, 0x73, //0x00000a04 movzwl (%r11,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xfe, //0x00000a09 movw %si, $-2(%rax) + 0x41, 0x0f, 0xb7, 0x0c, 0x4b, //0x00000a0d movzwl (%r11,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00000a12 movw %cx, $-4(%rax) + 0x48, 0x83, 0xc0, 0xfc, //0x00000a16 addq $-4, %rax + 0x41, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000a1a cmpl $99999999, %r14d + 0x41, 0x89, 0xd6, //0x00000a21 movl %edx, %r14d + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x00000a24 ja LBB0_64 + //0x00000a2a LBB0_65 + 0x83, 0xfa, 0x64, //0x00000a2a cmpl $100, %edx + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x00000a2d jb LBB0_67 + 0x0f, 0xb7, 0xca, //0x00000a33 movzwl %dx, %ecx + 0xc1, 0xe9, 0x02, //0x00000a36 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00000a39 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00000a3f shrl $17, %ecx + 0x6b, 0xf1, 0x64, //0x00000a42 imull $100, %ecx, %esi + 0x29, 0xf2, //0x00000a45 subl %esi, %edx + 0x0f, 0xb7, 0xd2, //0x00000a47 movzwl %dx, %edx + 0x48, 0x8d, 0x35, 0x2f, 0x08, 0x00, 0x00, //0x00000a4a leaq $2095(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00000a51 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x00000a55 movw %dx, $-2(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00000a59 addq $-2, %rax + 0x89, 0xca, //0x00000a5d movl %ecx, %edx + //0x00000a5f LBB0_67 + 0x4c, 0x89, 0xff, //0x00000a5f movq %r15, %rdi + 0x4c, 0x8b, 0x5d, 0xd0, //0x00000a62 movq $-48(%rbp), %r11 + 0x49, 0x63, 0xc9, //0x00000a66 movslq %r9d, %rcx + 0x83, 0xfa, 0x0a, //0x00000a69 cmpl $10, %edx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000a6c jb LBB0_69 + 0x89, 0xd2, //0x00000a72 movl %edx, %edx + 0x48, 0x8d, 0x35, 0x05, 0x08, 0x00, 0x00, //0x00000a74 leaq $2053(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00000a7b movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x00000a7f movw %dx, $-2(%rax) + 0x49, 0x01, 0xc8, //0x00000a83 addq %rcx, %r8 + 0x49, 0x39, 0xcc, //0x00000a86 cmpq %rcx, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000a89 jl LBB0_70 + 0xe9, 0x8c, 0x07, 0x00, 0x00, //0x00000a8f jmp LBB0_163 + //0x00000a94 LBB0_69 + 0x80, 0xc2, 0x30, //0x00000a94 addb $48, %dl + 0x41, 0x88, 0x10, //0x00000a97 movb %dl, (%r8) + 0x49, 0x01, 0xc8, //0x00000a9a addq %rcx, %r8 + 0x49, 0x39, 0xcc, //0x00000a9d cmpq %rcx, %r12 + 0x0f, 0x8d, 0x7a, 0x07, 0x00, 0x00, //0x00000aa0 jge LBB0_163 + //0x00000aa6 LBB0_70 + 0x4b, 0x8d, 0x04, 0x23, //0x00000aa6 leaq (%r11,%r12), %rax + 0x4c, 0x8d, 0x54, 0x07, 0x01, //0x00000aaa leaq $1(%rdi,%rax), %r10 + 0x4d, 0x39, 0xc2, //0x00000aaf cmpq %r8, %r10 + 0x4d, 0x0f, 0x46, 0xd0, //0x00000ab2 cmovbeq %r8, %r10 + 0x4a, 0x8d, 0x0c, 0x1f, //0x00000ab6 leaq (%rdi,%r11), %rcx + 0x4c, 0x01, 0xe1, //0x00000aba addq %r12, %rcx + 0x49, 0x29, 0xca, //0x00000abd subq %rcx, %r10 + 0x49, 0x81, 0xfa, 0x80, 0x00, 0x00, 0x00, //0x00000ac0 cmpq $128, %r10 + 0x0f, 0x82, 0x23, 0x02, 0x00, 0x00, //0x00000ac7 jb LBB0_113 + 0x4d, 0x89, 0xd1, //0x00000acd movq %r10, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x00000ad0 andq $-128, %r9 + 0x49, 0x8d, 0x71, 0x80, //0x00000ad4 leaq $-128(%r9), %rsi + 0x48, 0x89, 0xf2, //0x00000ad8 movq %rsi, %rdx + 0x48, 0xc1, 0xea, 0x07, //0x00000adb shrq $7, %rdx + 0x48, 0xff, 0xc2, //0x00000adf incq %rdx + 0x89, 0xd1, //0x00000ae2 movl %edx, %ecx + 0x83, 0xe1, 0x03, //0x00000ae4 andl $3, %ecx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000ae7 cmpq $384, %rsi + 0x0f, 0x83, 0xfb, 0x00, 0x00, 0x00, //0x00000aee jae LBB0_106 + 0x31, 0xc0, //0x00000af4 xorl %eax, %eax + 0xe9, 0xa5, 0x01, 0x00, 0x00, //0x00000af6 jmp LBB0_108 + //0x00000afb LBB0_105 + 0x04, 0x30, //0x00000afb addb $48, %al + 0x41, 0x88, 0x47, 0x02, //0x00000afd movb %al, $2(%r15) + 0x49, 0x83, 0xc7, 0x03, //0x00000b01 addq $3, %r15 + 0x4d, 0x89, 0xf8, //0x00000b05 movq %r15, %r8 + 0xe9, 0x13, 0x07, 0x00, 0x00, //0x00000b08 jmp LBB0_163 + //0x00000b0d LBB0_73 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000b0d movl $1, %r10d + 0x49, 0x83, 0xfb, 0x0a, //0x00000b13 cmpq $10, %r11 + 0x0f, 0x82, 0x82, 0x00, 0x00, 0x00, //0x00000b17 jb LBB0_81 + 0x41, 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000b1d movl $2, %r10d + 0x49, 0x83, 0xfb, 0x64, //0x00000b23 cmpq $100, %r11 + 0x0f, 0x82, 0x72, 0x00, 0x00, 0x00, //0x00000b27 jb LBB0_81 + 0x41, 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000b2d movl $3, %r10d + 0x49, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00000b33 cmpq $1000, %r11 + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x00000b3a jb LBB0_81 + 0x41, 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000b40 movl $4, %r10d + 0x49, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00000b46 cmpq $10000, %r11 + 0x0f, 0x82, 0x4c, 0x00, 0x00, 0x00, //0x00000b4d jb LBB0_81 + 0x41, 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000b53 movl $5, %r10d + 0x49, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00000b59 cmpq $100000, %r11 + 0x0f, 0x82, 0x39, 0x00, 0x00, 0x00, //0x00000b60 jb LBB0_81 + 0x41, 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000b66 movl $6, %r10d + 0x49, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00000b6c cmpq $1000000, %r11 + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00000b73 jb LBB0_81 + 0x41, 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000b79 movl $7, %r10d + 0x49, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00000b7f cmpq $10000000, %r11 + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00000b86 jb LBB0_81 + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000b8c movl $8, %r10d + 0x49, 0x81, 0xfb, 0xff, 0xe0, 0xf5, 0x05, //0x00000b92 cmpq $99999999, %r11 + 0x0f, 0x87, 0xb3, 0x06, 0x00, 0x00, //0x00000b99 ja LBB0_167 + //0x00000b9f LBB0_81 + 0x4d, 0x01, 0xc2, //0x00000b9f addq %r8, %r10 + //0x00000ba2 LBB0_82 + 0x4c, 0x89, 0xd0, //0x00000ba2 movq %r10, %rax + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00000ba5 cmpl $10000, %r11d + 0x0f, 0x83, 0xb5, 0xfc, 0xff, 0xff, //0x00000bac jae LBB0_51 + //0x00000bb2 LBB0_83 + 0x44, 0x89, 0xda, //0x00000bb2 movl %r11d, %edx + 0x83, 0xfa, 0x64, //0x00000bb5 cmpl $100, %edx + 0x0f, 0x83, 0x15, 0xfd, 0xff, 0xff, //0x00000bb8 jae LBB0_54 + 0xe9, 0x3c, 0xfd, 0xff, 0xff, //0x00000bbe jmp LBB0_55 + //0x00000bc3 LBB0_84 + 0x80, 0xc2, 0x30, //0x00000bc3 addb $48, %dl + 0x41, 0x88, 0x10, //0x00000bc6 movb %dl, (%r8) + //0x00000bc9 LBB0_85 + 0x41, 0x29, 0xfa, //0x00000bc9 subl %edi, %r10d + 0x45, 0x89, 0xd0, //0x00000bcc movl %r10d, %r8d + 0xe9, 0x4f, 0x06, 0x00, 0x00, //0x00000bcf jmp LBB0_164 + //0x00000bd4 LBB0_86 + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000bd4 movl $8, %r10d + 0x4d, 0x8d, 0x67, 0xf8, //0x00000bda leaq $-8(%r15), %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000bde cmpl $10000, %edx + 0x0f, 0x82, 0xc3, 0xf8, 0xff, 0xff, //0x00000be4 jb LBB0_41 + 0xe9, 0xb9, 0xf9, 0xff, 0xff, //0x00000bea jmp LBB0_88 + //0x00000bef LBB0_106 + 0x48, 0x29, 0xca, //0x00000bef subq %rcx, %rdx + 0x48, 0x8d, 0xb4, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x00000bf2 leaq $480(%rdi,%rax), %rsi + 0x31, 0xc0, //0x00000bfa xorl %eax, %eax + 0xc5, 0xfe, 0x6f, 0x05, 0xfc, 0xf3, 0xff, 0xff, //0x00000bfc vmovdqu $-3076(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c04 .p2align 4, 0x90 + //0x00000c10 LBB0_107 + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0xfe, 0xff, 0xff, //0x00000c10 vmovdqu %ymm0, $-480(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0xfe, 0xff, 0xff, //0x00000c19 vmovdqu %ymm0, $-448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0xfe, 0xff, 0xff, //0x00000c22 vmovdqu %ymm0, $-416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0xfe, 0xff, 0xff, //0x00000c2b vmovdqu %ymm0, $-384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0xfe, 0xff, 0xff, //0x00000c34 vmovdqu %ymm0, $-352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0xfe, 0xff, 0xff, //0x00000c3d vmovdqu %ymm0, $-320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0xfe, 0xff, 0xff, //0x00000c46 vmovdqu %ymm0, $-288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0xff, 0xff, 0xff, //0x00000c4f vmovdqu %ymm0, $-256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0xff, 0xff, 0xff, //0x00000c58 vmovdqu %ymm0, $-224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0xff, 0xff, 0xff, //0x00000c61 vmovdqu %ymm0, $-192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0xff, 0xff, 0xff, //0x00000c6a vmovdqu %ymm0, $-160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x80, //0x00000c73 vmovdqu %ymm0, $-128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0xa0, //0x00000c79 vmovdqu %ymm0, $-96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0xc0, //0x00000c7f vmovdqu %ymm0, $-64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0xe0, //0x00000c85 vmovdqu %ymm0, $-32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x00000c8b vmovdqu %ymm0, (%rsi,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00000c90 addq $512, %rax + 0x48, 0x83, 0xc2, 0xfc, //0x00000c96 addq $-4, %rdx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00000c9a jne LBB0_107 + //0x00000ca0 LBB0_108 + 0x48, 0x85, 0xc9, //0x00000ca0 testq %rcx, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000ca3 je LBB0_111 + 0x4c, 0x01, 0xd8, //0x00000ca9 addq %r11, %rax + 0x4c, 0x01, 0xe0, //0x00000cac addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x00000caf leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xd9, //0x00000cb4 negq %rcx + 0xc5, 0xfe, 0x6f, 0x05, 0x41, 0xf3, 0xff, 0xff, //0x00000cb7 vmovdqu $-3263(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, //0x00000cbf .p2align 4, 0x90 + //0x00000cc0 LBB0_110 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000cc0 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000cc5 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000cca vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00000ccf vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000cd3 subq $-128, %rax + 0x48, 0xff, 0xc1, //0x00000cd7 incq %rcx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000cda jne LBB0_110 + //0x00000ce0 LBB0_111 + 0x4d, 0x39, 0xd1, //0x00000ce0 cmpq %r10, %r9 + 0x0f, 0x84, 0x37, 0x05, 0x00, 0x00, //0x00000ce3 je LBB0_163 + 0x4c, 0x01, 0xcb, //0x00000ce9 addq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, //0x00000cec .p2align 4, 0x90 + //0x00000cf0 LBB0_113 + 0xc6, 0x03, 0x30, //0x00000cf0 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000cf3 incq %rbx + 0x4c, 0x39, 0xc3, //0x00000cf6 cmpq %r8, %rbx + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00000cf9 jb LBB0_113 + 0xe9, 0x1c, 0x05, 0x00, 0x00, //0x00000cff jmp LBB0_163 + //0x00000d04 LBB0_114 + 0x48, 0x8b, 0x4d, 0xd0, //0x00000d04 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0xb4, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00000d08 leaq $482(%rcx,%rdi), %rsi + 0x4c, 0x89, 0xfb, //0x00000d10 movq %r15, %rbx + 0x48, 0x29, 0xd3, //0x00000d13 subq %rdx, %rbx + 0x31, 0xd2, //0x00000d16 xorl %edx, %edx + 0xc5, 0xfe, 0x6f, 0x05, 0xe0, 0xf2, 0xff, 0xff, //0x00000d18 vmovdqu $-3360(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000d20 LBB0_115 + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x20, 0xfe, 0xff, 0xff, //0x00000d20 vmovdqu %ymm0, $-480(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x40, 0xfe, 0xff, 0xff, //0x00000d29 vmovdqu %ymm0, $-448(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x60, 0xfe, 0xff, 0xff, //0x00000d32 vmovdqu %ymm0, $-416(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x80, 0xfe, 0xff, 0xff, //0x00000d3b vmovdqu %ymm0, $-384(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0xa0, 0xfe, 0xff, 0xff, //0x00000d44 vmovdqu %ymm0, $-352(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0xc0, 0xfe, 0xff, 0xff, //0x00000d4d vmovdqu %ymm0, $-320(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0xe0, 0xfe, 0xff, 0xff, //0x00000d56 vmovdqu %ymm0, $-288(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x00, 0xff, 0xff, 0xff, //0x00000d5f vmovdqu %ymm0, $-256(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x20, 0xff, 0xff, 0xff, //0x00000d68 vmovdqu %ymm0, $-224(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x40, 0xff, 0xff, 0xff, //0x00000d71 vmovdqu %ymm0, $-192(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x60, 0xff, 0xff, 0xff, //0x00000d7a vmovdqu %ymm0, $-160(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0x80, //0x00000d83 vmovdqu %ymm0, $-128(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0xa0, //0x00000d89 vmovdqu %ymm0, $-96(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0xc0, //0x00000d8f vmovdqu %ymm0, $-64(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0xe0, //0x00000d95 vmovdqu %ymm0, $-32(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x04, 0x16, //0x00000d9b vmovdqu %ymm0, (%rsi,%rdx) + 0x48, 0x81, 0xc2, 0x00, 0x02, 0x00, 0x00, //0x00000da0 addq $512, %rdx + 0x48, 0x83, 0xc3, 0x04, //0x00000da7 addq $4, %rbx + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000dab jne LBB0_115 + //0x00000db1 LBB0_116 + 0x4d, 0x85, 0xff, //0x00000db1 testq %r15, %r15 + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00000db4 je LBB0_119 + 0x48, 0x03, 0x55, 0xd0, //0x00000dba addq $-48(%rbp), %rdx + 0x48, 0x8d, 0x54, 0x17, 0x62, //0x00000dbe leaq $98(%rdi,%rdx), %rdx + 0x49, 0xf7, 0xdf, //0x00000dc3 negq %r15 + 0xc5, 0xfe, 0x6f, 0x05, 0x32, 0xf2, 0xff, 0xff, //0x00000dc6 vmovdqu $-3534(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000dce LBB0_118 + 0xc5, 0xfe, 0x7f, 0x42, 0xa0, //0x00000dce vmovdqu %ymm0, $-96(%rdx) + 0xc5, 0xfe, 0x7f, 0x42, 0xc0, //0x00000dd3 vmovdqu %ymm0, $-64(%rdx) + 0xc5, 0xfe, 0x7f, 0x42, 0xe0, //0x00000dd8 vmovdqu %ymm0, $-32(%rdx) + 0xc5, 0xfe, 0x7f, 0x02, //0x00000ddd vmovdqu %ymm0, (%rdx) + 0x48, 0x83, 0xea, 0x80, //0x00000de1 subq $-128, %rdx + 0x49, 0xff, 0xc7, //0x00000de5 incq %r15 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000de8 jne LBB0_118 + //0x00000dee LBB0_119 + 0x49, 0x01, 0xc0, //0x00000dee addq %rax, %r8 + 0x49, 0x39, 0xc3, //0x00000df1 cmpq %rax, %r11 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000df4 je LBB0_122 + //0x00000dfa LBB0_120 + 0x44, 0x89, 0xca, //0x00000dfa movl %r9d, %edx + 0xf7, 0xda, //0x00000dfd negl %edx + 0x90, //0x00000dff .p2align 4, 0x90 + //0x00000e00 LBB0_121 + 0x41, 0xc6, 0x00, 0x30, //0x00000e00 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00000e04 incq %r8 + 0xff, 0xc0, //0x00000e07 incl %eax + 0x39, 0xd0, //0x00000e09 cmpl %edx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x00000e0b jl LBB0_121 + //0x00000e11 LBB0_122 + 0x4f, 0x8d, 0x2c, 0x20, //0x00000e11 leaq (%r8,%r12), %r13 + 0x4c, 0x89, 0xf0, //0x00000e15 movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000e18 shrq $32, %rax + 0x0f, 0x84, 0xc9, 0x00, 0x00, 0x00, //0x00000e1c je LBB0_125 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000e22 movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x00000e2c movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x00000e2f mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00000e32 shrq $26, %rdx + 0x69, 0xf2, 0x00, 0x1f, 0x0a, 0xfa, //0x00000e36 imull $-100000000, %edx, %esi + 0x44, 0x01, 0xf6, //0x00000e3c addl %r14d, %esi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00000e3f je LBB0_127 + 0x89, 0xf0, //0x00000e45 movl %esi, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00000e47 movl $3518437209, %r11d + 0x49, 0x0f, 0xaf, 0xc3, //0x00000e4d imulq %r11, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000e51 shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x00000e55 imull $10000, %eax, %ecx + 0x29, 0xce, //0x00000e5b subl %ecx, %esi + 0x48, 0x89, 0xc1, //0x00000e5d movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xcb, //0x00000e60 imulq %r11, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000e64 shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x00000e68 imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000e6e subl %ecx, %eax + 0x0f, 0xb7, 0xce, //0x00000e70 movzwl %si, %ecx + 0xc1, 0xe9, 0x02, //0x00000e73 shrl $2, %ecx + 0x44, 0x69, 0xd9, 0x7b, 0x14, 0x00, 0x00, //0x00000e76 imull $5243, %ecx, %r11d + 0x41, 0xc1, 0xeb, 0x11, //0x00000e7d shrl $17, %r11d + 0x41, 0x6b, 0xcb, 0x64, //0x00000e81 imull $100, %r11d, %ecx + 0x29, 0xce, //0x00000e85 subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xf6, //0x00000e87 movzwl %si, %r14d + 0x0f, 0xb7, 0xf0, //0x00000e8b movzwl %ax, %esi + 0xc1, 0xee, 0x02, //0x00000e8e shrl $2, %esi + 0x69, 0xf6, 0x7b, 0x14, 0x00, 0x00, //0x00000e91 imull $5243, %esi, %esi + 0xc1, 0xee, 0x11, //0x00000e97 shrl $17, %esi + 0x6b, 0xce, 0x64, //0x00000e9a imull $100, %esi, %ecx + 0x29, 0xc8, //0x00000e9d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf8, //0x00000e9f movzwl %ax, %r15d + 0x48, 0x8d, 0x0d, 0xd6, 0x03, 0x00, 0x00, //0x00000ea3 leaq $982(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x71, //0x00000eaa movzwl (%rcx,%r14,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000eaf movw %ax, $-2(%r13) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000eb4 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfc, //0x00000eb9 movw %ax, $-4(%r13) + 0x42, 0x0f, 0xb7, 0x04, 0x79, //0x00000ebe movzwl (%rcx,%r15,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfa, //0x00000ec3 movw %ax, $-6(%r13) + 0x0f, 0xb7, 0x04, 0x71, //0x00000ec8 movzwl (%rcx,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xf8, //0x00000ecc movw %ax, $-8(%r13) + 0x45, 0x31, 0xdb, //0x00000ed1 xorl %r11d, %r11d + 0x49, 0x83, 0xc5, 0xf8, //0x00000ed4 addq $-8, %r13 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000ed8 cmpl $10000, %edx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00000ede jae LBB0_129 + //0x00000ee4 LBB0_126 + 0x89, 0xd1, //0x00000ee4 movl %edx, %ecx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000ee6 jmp LBB0_131 + //0x00000eeb LBB0_125 + 0x45, 0x31, 0xdb, //0x00000eeb xorl %r11d, %r11d + 0x44, 0x89, 0xf2, //0x00000eee movl %r14d, %edx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000ef1 cmpl $10000, %edx + 0x0f, 0x82, 0xe7, 0xff, 0xff, 0xff, //0x00000ef7 jb LBB0_126 + //0x00000efd LBB0_129 + 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00000efd movl $3518437209, %r14d + 0x4c, 0x8d, 0x3d, 0x76, 0x03, 0x00, 0x00, //0x00000f03 leaq $886(%rip), %r15 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f0a .p2align 4, 0x90 + //0x00000f10 LBB0_130 + 0x89, 0xd1, //0x00000f10 movl %edx, %ecx + 0x49, 0x0f, 0xaf, 0xce, //0x00000f12 imulq %r14, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000f16 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00000f1a imull $-10000, %ecx, %eax + 0x01, 0xd0, //0x00000f20 addl %edx, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00000f22 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00000f29 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00000f2d imull $100, %esi, %ebx + 0x29, 0xd8, //0x00000f30 subl %ebx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x47, //0x00000f32 movzwl (%r15,%rax,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000f37 movw %ax, $-2(%r13) + 0x41, 0x0f, 0xb7, 0x04, 0x77, //0x00000f3c movzwl (%r15,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfc, //0x00000f41 movw %ax, $-4(%r13) + 0x49, 0x83, 0xc5, 0xfc, //0x00000f46 addq $-4, %r13 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00000f4a cmpl $99999999, %edx + 0x89, 0xca, //0x00000f50 movl %ecx, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000f52 ja LBB0_130 + //0x00000f58 LBB0_131 + 0x83, 0xf9, 0x64, //0x00000f58 cmpl $100, %ecx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000f5b jb LBB0_133 + 0x0f, 0xb7, 0xc1, //0x00000f61 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f64 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f67 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f6d shrl $17, %eax + 0x6b, 0xd0, 0x64, //0x00000f70 imull $100, %eax, %edx + 0x29, 0xd1, //0x00000f73 subl %edx, %ecx + 0x0f, 0xb7, 0xc9, //0x00000f75 movzwl %cx, %ecx + 0x48, 0x8d, 0x15, 0x01, 0x03, 0x00, 0x00, //0x00000f78 leaq $769(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f7f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4d, 0xfe, //0x00000f83 movw %cx, $-2(%r13) + 0x49, 0x83, 0xc5, 0xfe, //0x00000f88 addq $-2, %r13 + 0x89, 0xc1, //0x00000f8c movl %eax, %ecx + //0x00000f8e LBB0_133 + 0x83, 0xf9, 0x0a, //0x00000f8e cmpl $10, %ecx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000f91 jb LBB0_135 + 0x89, 0xc8, //0x00000f97 movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xe0, 0x02, 0x00, 0x00, //0x00000f99 leaq $736(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000fa0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000fa4 movw %ax, $-2(%r13) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000fa9 jmp LBB0_136 + //0x00000fae LBB0_135 + 0x80, 0xc1, 0x30, //0x00000fae addb $48, %cl + 0x41, 0x88, 0x08, //0x00000fb1 movb %cl, (%r8) + //0x00000fb4 LBB0_136 + 0x4d, 0x29, 0xdc, //0x00000fb4 subq %r11, %r12 + 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00000fb7 leaq $1(%r12), %rcx + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x00000fbc leaq $97(%r12), %rdx + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x00000fc1 leaq $2(%r12), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fc6 .p2align 4, 0x90 + //0x00000fd0 LBB0_137 + 0x48, 0xff, 0xca, //0x00000fd0 decq %rdx + 0x48, 0xff, 0xc9, //0x00000fd3 decq %rcx + 0x48, 0xff, 0xcb, //0x00000fd6 decq %rbx + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000fd9 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x00000fdf leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000fe4 je LBB0_137 + 0x4d, 0x8d, 0x3c, 0x08, //0x00000fea leaq (%r8,%rcx), %r15 + 0x45, 0x85, 0xc9, //0x00000fee testl %r9d, %r9d + 0x0f, 0x8e, 0x86, 0x00, 0x00, 0x00, //0x00000ff1 jle LBB0_142 + 0x44, 0x89, 0xf8, //0x00000ff7 movl %r15d, %eax + 0x44, 0x29, 0xc0, //0x00000ffa subl %r8d, %eax + 0x41, 0x39, 0xc1, //0x00000ffd cmpl %eax, %r9d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00001000 jge LBB0_143 + 0x43, 0x8d, 0x04, 0x01, //0x00001006 leal (%r9,%r8), %eax + 0x41, 0x29, 0xc7, //0x0000100a subl %eax, %r15d + 0x49, 0x8d, 0x47, 0xff, //0x0000100d leaq $-1(%r15), %rax + 0x45, 0x89, 0xfa, //0x00001011 movl %r15d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00001014 andl $3, %r10d + 0x48, 0x83, 0xf8, 0x03, //0x00001018 cmpq $3, %rax + 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x0000101c jae LBB0_147 + 0x31, 0xc0, //0x00001022 xorl %eax, %eax + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00001024 jmp LBB0_150 + //0x00001029 LBB0_143 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x00001029 jle LBB0_142 + 0x45, 0x01, 0xc1, //0x0000102f addl %r8d, %r9d + 0x45, 0x89, 0xfe, //0x00001032 movl %r15d, %r14d + 0x41, 0xf7, 0xd6, //0x00001035 notl %r14d + 0x45, 0x01, 0xce, //0x00001038 addl %r9d, %r14d + 0x31, 0xc0, //0x0000103b xorl %eax, %eax + 0x4d, 0x89, 0xfb, //0x0000103d movq %r15, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x00001040 cmpl $126, %r14d + 0x0f, 0x86, 0xb8, 0x01, 0x00, 0x00, //0x00001044 jbe LBB0_161 + 0x49, 0xff, 0xc6, //0x0000104a incq %r14 + 0x4d, 0x21, 0xf2, //0x0000104d andq %r14, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00001050 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x00001054 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xde, //0x00001058 movq %rbx, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x0000105b shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x0000105f incq %rsi + 0x41, 0x89, 0xf4, //0x00001062 movl %esi, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x00001065 andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x00001069 cmpq $384, %rbx + 0x0f, 0x83, 0x94, 0x00, 0x00, 0x00, //0x00001070 jae LBB0_155 + 0x31, 0xf6, //0x00001076 xorl %esi, %esi + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00001078 jmp LBB0_157 + //0x0000107d LBB0_142 + 0x4d, 0x89, 0xf8, //0x0000107d movq %r15, %r8 + 0xe9, 0x9b, 0x01, 0x00, 0x00, //0x00001080 jmp LBB0_163 + //0x00001085 LBB0_127 + 0x41, 0xbb, 0x08, 0x00, 0x00, 0x00, //0x00001085 movl $8, %r11d + 0x49, 0x83, 0xc5, 0xf8, //0x0000108b addq $-8, %r13 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x0000108f cmpl $10000, %edx + 0x0f, 0x82, 0x49, 0xfe, 0xff, 0xff, //0x00001095 jb LBB0_126 + 0xe9, 0x5d, 0xfe, 0xff, 0xff, //0x0000109b jmp LBB0_129 + //0x000010a0 LBB0_147 + 0x4d, 0x89, 0xd3, //0x000010a0 movq %r10, %r11 + 0x4d, 0x29, 0xfb, //0x000010a3 subq %r15, %r11 + 0x31, 0xc0, //0x000010a6 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000010a8 .p2align 4, 0x90 + //0x000010b0 LBB0_148 + 0x49, 0x8d, 0x14, 0x00, //0x000010b0 leaq (%r8,%rax), %rdx + 0x8b, 0x74, 0x11, 0xfc, //0x000010b4 movl $-4(%rcx,%rdx), %esi + 0x89, 0x74, 0x11, 0xfd, //0x000010b8 movl %esi, $-3(%rcx,%rdx) + 0x48, 0x83, 0xc0, 0xfc, //0x000010bc addq $-4, %rax + 0x49, 0x39, 0xc3, //0x000010c0 cmpq %rax, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000010c3 jne LBB0_148 + 0x48, 0xf7, 0xd8, //0x000010c9 negq %rax + //0x000010cc LBB0_150 + 0x4d, 0x85, 0xd2, //0x000010cc testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000010cf je LBB0_153 + 0x49, 0xf7, 0xda, //0x000010d5 negq %r10 + 0x4c, 0x89, 0xc1, //0x000010d8 movq %r8, %rcx + 0x48, 0x29, 0xc1, //0x000010db subq %rax, %rcx + 0x31, 0xc0, //0x000010de xorl %eax, %eax + //0x000010e0 .p2align 4, 0x90 + //0x000010e0 LBB0_152 + 0x48, 0x8d, 0x34, 0x01, //0x000010e0 leaq (%rcx,%rax), %rsi + 0x41, 0x0f, 0xb6, 0x14, 0x34, //0x000010e4 movzbl (%r12,%rsi), %edx + 0x41, 0x88, 0x54, 0x34, 0x01, //0x000010e9 movb %dl, $1(%r12,%rsi) + 0x48, 0xff, 0xc8, //0x000010ee decq %rax + 0x49, 0x39, 0xc2, //0x000010f1 cmpq %rax, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x000010f4 jne LBB0_152 + //0x000010fa LBB0_153 + 0x49, 0x63, 0xc1, //0x000010fa movslq %r9d, %rax + 0x41, 0xc6, 0x04, 0x00, 0x2e, //0x000010fd movb $46, (%r8,%rax) + 0x49, 0x01, 0xd8, //0x00001102 addq %rbx, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00001105 jmp LBB0_163 + //0x0000110a LBB0_155 + 0x4c, 0x89, 0xe3, //0x0000110a movq %r12, %rbx + 0x48, 0x29, 0xf3, //0x0000110d subq %rsi, %rbx + 0x31, 0xf6, //0x00001110 xorl %esi, %esi + 0xc5, 0xfe, 0x6f, 0x05, 0xe6, 0xee, 0xff, 0xff, //0x00001112 vmovdqu $-4378(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x0000111a LBB0_156 + 0x49, 0x8d, 0x04, 0x30, //0x0000111a leaq (%r8,%rsi), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x0000111e vmovdqu %ymm0, (%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x20, //0x00001123 vmovdqu %ymm0, $32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x40, //0x00001129 vmovdqu %ymm0, $64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x60, //0x0000112f vmovdqu %ymm0, $96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0x00, 0x00, 0x00, //0x00001135 vmovdqu %ymm0, $128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0x00, 0x00, 0x00, //0x0000113e vmovdqu %ymm0, $160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0x00, 0x00, 0x00, //0x00001147 vmovdqu %ymm0, $192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0x00, 0x00, 0x00, //0x00001150 vmovdqu %ymm0, $224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0x01, 0x00, 0x00, //0x00001159 vmovdqu %ymm0, $256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0x01, 0x00, 0x00, //0x00001162 vmovdqu %ymm0, $288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0x01, 0x00, 0x00, //0x0000116b vmovdqu %ymm0, $320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0x01, 0x00, 0x00, //0x00001174 vmovdqu %ymm0, $352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0x01, 0x00, 0x00, //0x0000117d vmovdqu %ymm0, $384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0x01, 0x00, 0x00, //0x00001186 vmovdqu %ymm0, $416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0x01, 0x00, 0x00, //0x0000118f vmovdqu %ymm0, $448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0x01, 0x00, 0x00, //0x00001198 vmovdqu %ymm0, $480(%rcx,%rax) + 0x48, 0x81, 0xc6, 0x00, 0x02, 0x00, 0x00, //0x000011a1 addq $512, %rsi + 0x48, 0x83, 0xc3, 0x04, //0x000011a8 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000011ac jne LBB0_156 + //0x000011b2 LBB0_157 + 0x49, 0x01, 0xcb, //0x000011b2 addq %rcx, %r11 + 0x4d, 0x85, 0xe4, //0x000011b5 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000011b8 je LBB0_160 + 0x49, 0x01, 0xf0, //0x000011be addq %rsi, %r8 + 0x49, 0x01, 0xd0, //0x000011c1 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x000011c4 negq %r12 + 0xc5, 0xfe, 0x6f, 0x05, 0x31, 0xee, 0xff, 0xff, //0x000011c7 vmovdqu $-4559(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x000011cf LBB0_159 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x000011cf vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x000011d5 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x000011db vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x000011e1 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x000011e6 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x000011ea incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000011ed jne LBB0_159 + //0x000011f3 LBB0_160 + 0x44, 0x89, 0xd0, //0x000011f3 movl %r10d, %eax + 0x4d, 0x89, 0xd8, //0x000011f6 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x000011f9 cmpq %r10, %r14 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000011fc je LBB0_163 + //0x00001202 LBB0_161 + 0x41, 0x29, 0xc1, //0x00001202 subl %eax, %r9d + 0x45, 0x29, 0xf9, //0x00001205 subl %r15d, %r9d + 0x4d, 0x89, 0xd8, //0x00001208 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000120b .p2align 4, 0x90 + //0x00001210 LBB0_162 + 0x41, 0xc6, 0x00, 0x30, //0x00001210 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00001214 incq %r8 + 0x41, 0xff, 0xc9, //0x00001217 decl %r9d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000121a jne LBB0_162 + //0x00001220 LBB0_163 + 0x41, 0x29, 0xf8, //0x00001220 subl %edi, %r8d + //0x00001223 LBB0_164 + 0x44, 0x89, 0xc0, //0x00001223 movl %r8d, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00001226 addq $8, %rsp + 0x5b, //0x0000122a popq %rbx + 0x41, 0x5c, //0x0000122b popq %r12 + 0x41, 0x5d, //0x0000122d popq %r13 + 0x41, 0x5e, //0x0000122f popq %r14 + 0x41, 0x5f, //0x00001231 popq %r15 + 0x5d, //0x00001233 popq %rbp + 0xc5, 0xf8, 0x77, //0x00001234 vzeroupper + 0xc3, //0x00001237 retq + //0x00001238 LBB0_165 + 0x45, 0x31, 0xc0, //0x00001238 xorl %r8d, %r8d + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x0000123b jmp LBB0_164 + //0x00001240 LBB0_166 + 0x48, 0x89, 0x75, 0xd0, //0x00001240 movq %rsi, $-48(%rbp) + 0x41, 0xba, 0xce, 0xfb, 0xff, 0xff, //0x00001244 movl $-1074, %r10d + 0x49, 0x89, 0xd3, //0x0000124a movq %rdx, %r11 + 0xe9, 0x69, 0xee, 0xff, 0xff, //0x0000124d jmp LBB0_8 + //0x00001252 LBB0_167 + 0x49, 0x81, 0xfb, 0x00, 0xca, 0x9a, 0x3b, //0x00001252 cmpq $1000000000, %r11 + 0x4d, 0x89, 0xc2, //0x00001259 movq %r8, %r10 + 0x49, 0x83, 0xda, 0x00, //0x0000125c sbbq $0, %r10 + 0x49, 0x83, 0xc2, 0x0a, //0x00001260 addq $10, %r10 + 0x4c, 0x89, 0xd8, //0x00001264 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00001267 shrq $32, %rax + 0x0f, 0x85, 0x3c, 0xf5, 0xff, 0xff, //0x0000126b jne LBB0_50 + 0xe9, 0x2c, 0xf9, 0xff, 0xff, //0x00001271 jmp LBB0_82 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001276 .p2align 4, 0x00 + //0x00001280 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00001280 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00001290 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x000012a0 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x000012b0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x000012c0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x000012d0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x000012e0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000012f0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00001300 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00001310 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x00001320 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00001330 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00001340 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001348 .p2align 4, 0x00 + //0x00001350 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00001350 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00001358 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00001360 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00001368 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00001370 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00001378 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00001380 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00001388 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00001390 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00001398 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x000013a0 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x000013a8 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x000013b0 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x000013b8 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x000013c0 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x000013c8 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000013d0 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000013d8 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x000013e0 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x000013e8 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x000013f0 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x000013f8 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00001400 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00001408 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00001410 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00001418 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00001420 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00001428 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00001430 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00001438 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00001440 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00001448 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00001450 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00001458 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00001460 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00001468 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00001470 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00001478 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00001480 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00001488 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00001490 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00001498 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x000014a0 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x000014a8 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x000014b0 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x000014b8 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x000014c0 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x000014c8 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x000014d0 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x000014d8 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x000014e0 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x000014e8 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x000014f0 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x000014f8 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00001500 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00001508 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00001510 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00001518 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00001520 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00001528 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00001530 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00001538 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00001540 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00001548 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00001550 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00001558 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00001560 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00001568 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00001570 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00001578 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00001580 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00001588 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00001590 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00001598 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x000015a0 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x000015a8 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x000015b0 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x000015b8 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x000015c0 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x000015c8 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x000015d0 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x000015d8 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x000015e0 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x000015e8 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x000015f0 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x000015f8 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00001600 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00001608 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00001610 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00001618 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00001620 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00001628 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00001630 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00001638 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00001640 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00001648 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00001650 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00001658 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00001660 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00001668 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00001670 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00001678 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00001680 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00001688 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00001690 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00001698 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x000016a0 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x000016a8 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x000016b0 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x000016b8 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x000016c0 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x000016c8 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x000016d0 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x000016d8 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x000016e0 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x000016e8 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x000016f0 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x000016f8 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00001700 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00001708 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00001710 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00001718 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00001720 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00001728 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00001730 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00001738 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00001740 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00001748 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00001750 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00001758 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00001760 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00001768 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00001770 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00001778 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00001780 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00001788 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00001790 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00001798 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x000017a0 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x000017a8 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x000017b0 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x000017b8 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x000017c0 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x000017c8 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x000017d0 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x000017d8 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x000017e0 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x000017e8 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x000017f0 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x000017f8 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00001800 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00001808 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00001810 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00001818 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00001820 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00001828 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00001830 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00001838 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00001840 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00001848 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00001850 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00001858 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00001860 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00001868 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00001870 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00001878 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00001880 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00001888 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00001890 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00001898 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x000018a0 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x000018a8 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x000018b0 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x000018b8 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x000018c0 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x000018c8 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x000018d0 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x000018d8 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x000018e0 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x000018e8 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x000018f0 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x000018f8 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00001900 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00001908 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00001910 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00001918 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00001920 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00001928 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00001930 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00001938 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00001940 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00001948 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00001950 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00001958 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00001960 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00001968 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00001970 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00001978 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00001980 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00001988 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00001990 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00001998 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x000019a0 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x000019a8 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x000019b0 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x000019b8 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x000019c0 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x000019c8 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x000019d0 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x000019d8 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x000019e0 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x000019e8 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x000019f0 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x000019f8 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00001a00 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00001a08 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00001a10 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00001a18 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00001a20 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00001a28 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00001a30 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00001a38 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00001a40 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00001a48 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00001a50 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00001a58 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00001a60 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00001a68 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00001a70 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00001a78 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00001a80 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00001a88 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00001a90 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00001a98 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00001aa0 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00001aa8 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00001ab0 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00001ab8 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00001ac0 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00001ac8 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00001ad0 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00001ad8 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00001ae0 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00001ae8 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00001af0 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00001af8 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00001b00 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00001b08 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00001b10 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00001b18 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00001b20 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00001b28 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00001b30 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00001b38 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00001b40 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00001b48 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00001b50 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00001b58 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00001b60 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00001b68 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00001b70 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00001b78 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00001b80 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00001b88 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00001b90 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00001b98 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00001ba0 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00001ba8 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00001bb0 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00001bb8 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00001bc0 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00001bc8 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00001bd0 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00001bd8 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00001be0 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00001be8 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00001bf0 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00001bf8 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00001c00 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00001c08 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00001c10 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00001c18 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00001c20 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00001c28 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00001c30 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00001c38 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00001c40 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00001c48 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00001c50 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00001c58 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00001c60 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00001c68 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00001c70 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00001c78 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00001c80 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00001c88 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00001c90 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00001c98 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00001ca0 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00001ca8 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00001cb0 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00001cb8 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00001cc0 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00001cc8 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00001cd0 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00001cd8 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00001ce0 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00001ce8 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00001cf0 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00001cf8 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x00001d00 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x00001d08 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x00001d10 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x00001d18 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x00001d20 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x00001d28 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x00001d30 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x00001d38 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x00001d40 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x00001d48 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00001d50 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00001d58 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00001d60 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00001d68 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00001d70 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00001d78 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00001d80 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00001d88 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00001d90 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00001d98 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00001da0 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00001da8 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00001db0 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00001db8 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00001dc0 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00001dc8 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00001dd0 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00001dd8 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00001de0 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00001de8 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x00001df0 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x00001df8 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x00001e00 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x00001e08 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x00001e10 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x00001e18 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x00001e20 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x00001e28 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x00001e30 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x00001e38 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x00001e40 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x00001e48 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00001e50 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00001e58 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00001e60 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00001e68 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00001e70 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00001e78 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00001e80 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00001e88 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00001e90 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00001e98 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00001ea0 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00001ea8 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00001eb0 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00001eb8 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00001ec0 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00001ec8 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00001ed0 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00001ed8 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00001ee0 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00001ee8 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x00001ef0 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x00001ef8 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x00001f00 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x00001f08 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x00001f10 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x00001f18 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x00001f20 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x00001f28 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x00001f30 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x00001f38 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x00001f40 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x00001f48 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00001f50 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00001f58 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00001f60 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00001f68 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00001f70 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00001f78 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00001f80 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00001f88 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00001f90 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00001f98 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00001fa0 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00001fa8 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00001fb0 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00001fb8 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00001fc0 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00001fc8 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00001fd0 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00001fd8 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00001fe0 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00001fe8 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x00001ff0 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x00001ff8 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x00002000 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x00002008 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00002010 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00002018 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x00002020 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x00002028 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x00002030 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x00002038 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x00002040 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x00002048 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00002050 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00002058 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00002060 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00002068 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00002070 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00002078 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00002080 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00002088 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00002090 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00002098 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x000020a0 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x000020a8 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x000020b0 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x000020b8 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x000020c0 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x000020c8 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x000020d0 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x000020d8 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x000020e0 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x000020e8 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x000020f0 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x000020f8 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x00002100 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x00002108 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x00002110 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x00002118 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x00002120 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x00002128 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x00002130 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x00002138 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x00002140 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x00002148 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00002150 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00002158 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00002160 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00002168 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00002170 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00002178 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00002180 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00002188 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00002190 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00002198 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x000021a0 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x000021a8 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x000021b0 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x000021b8 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x000021c0 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x000021c8 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x000021d0 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x000021d8 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x000021e0 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x000021e8 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x000021f0 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x000021f8 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x00002200 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x00002208 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x00002210 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x00002218 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x00002220 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x00002228 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x00002230 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x00002238 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x00002240 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x00002248 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00002250 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00002258 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00002260 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00002268 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00002270 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00002278 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00002280 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00002288 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00002290 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00002298 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x000022a0 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x000022a8 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x000022b0 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x000022b8 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x000022c0 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x000022c8 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x000022d0 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x000022d8 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x000022e0 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x000022e8 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x000022f0 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x000022f8 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x00002300 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x00002308 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x00002310 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x00002318 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x00002320 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x00002328 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x00002330 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x00002338 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x00002340 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x00002348 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00002350 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00002358 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00002360 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00002368 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00002370 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00002378 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00002380 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00002388 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00002390 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00002398 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x000023a0 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x000023a8 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x000023b0 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x000023b8 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x000023c0 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x000023c8 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x000023d0 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x000023d8 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x000023e0 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x000023e8 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x000023f0 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x000023f8 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00002400 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00002408 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00002410 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00002418 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00002420 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00002428 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00002430 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00002438 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00002440 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00002448 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00002450 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00002458 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00002460 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00002468 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00002470 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00002478 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00002480 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00002488 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00002490 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00002498 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000024a0 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x000024a8 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000024b0 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x000024b8 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000024c0 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x000024c8 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000024d0 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x000024d8 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x000024e0 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x000024e8 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x000024f0 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x000024f8 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00002500 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00002508 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00002510 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00002518 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00002520 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00002528 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00002530 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00002538 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00002540 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00002548 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00002550 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00002558 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00002560 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00002568 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00002570 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00002578 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002580 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002588 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002590 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002598 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000025a0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000025b0 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x000025c0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000025d0 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025d8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x000025e0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025e8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x000025f0 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00002600 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002608 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00002610 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002618 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00002620 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002628 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00002630 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002638 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00002640 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002648 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00002650 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002658 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00002660 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002668 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00002670 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002678 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00002680 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002688 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00002690 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002698 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000026a0 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026a8 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000026b0 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b8 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x000026c0 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026c8 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000026d0 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026d8 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x000026e0 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026e8 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x000026f0 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026f8 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00002700 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002708 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00002710 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002718 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00002720 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002728 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00002730 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002738 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00002740 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002748 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00002750 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00002758 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00002760 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00002768 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00002770 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00002778 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00002780 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00002788 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00002790 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00002798 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000027a0 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x000027a8 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000027b0 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x000027b8 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x000027c0 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x000027c8 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x000027d0 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x000027d8 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x000027e0 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x000027e8 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x000027f0 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x000027f8 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00002800 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00002808 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00002810 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00002818 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00002820 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00002828 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00002830 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00002838 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00002840 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00002848 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00002850 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00002858 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00002860 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00002868 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00002870 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00002878 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00002880 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00002888 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00002890 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00002898 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x000028a0 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x000028a8 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x000028b0 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x000028b8 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x000028c0 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x000028c8 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x000028d0 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x000028d8 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x000028e0 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x000028e8 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x000028f0 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x000028f8 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00002900 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00002908 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00002910 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00002918 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00002920 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00002928 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00002930 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00002938 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00002940 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00002948 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00002950 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00002958 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00002960 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00002968 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00002970 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00002978 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00002980 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00002988 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00002990 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00002998 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x000029a0 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x000029a8 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x000029b0 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x000029b8 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x000029c0 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x000029c8 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x000029d0 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x000029d8 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x000029e0 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x000029e8 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x000029f0 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x000029f8 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x00002a00 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x00002a08 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x00002a10 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x00002a18 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x00002a20 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x00002a28 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x00002a30 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x00002a38 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x00002a40 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x00002a48 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00002a50 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00002a58 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00002a60 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00002a68 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00002a70 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00002a78 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00002a80 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00002a88 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00002a90 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00002a98 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00002aa0 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00002aa8 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00002ab0 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00002ab8 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00002ac0 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00002ac8 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00002ad0 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00002ad8 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00002ae0 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00002ae8 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x00002af0 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x00002af8 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x00002b00 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x00002b08 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x00002b10 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x00002b18 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x00002b20 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x00002b28 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x00002b30 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x00002b38 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x00002b40 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x00002b48 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00002b50 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00002b58 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00002b60 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00002b68 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00002b70 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00002b78 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00002b80 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00002b88 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00002b90 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00002b98 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00002ba0 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00002ba8 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00002bb0 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00002bb8 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00002bc0 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00002bc8 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00002bd0 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00002bd8 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00002be0 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00002be8 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x00002bf0 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x00002bf8 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x00002c00 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x00002c08 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x00002c10 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x00002c18 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x00002c20 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x00002c28 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x00002c30 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x00002c38 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x00002c40 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x00002c48 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00002c50 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00002c58 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00002c60 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00002c68 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00002c70 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00002c78 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00002c80 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00002c88 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00002c90 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00002c98 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00002ca0 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00002ca8 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00002cb0 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00002cb8 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00002cc0 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00002cc8 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00002cd0 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00002cd8 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00002ce0 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00002ce8 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x00002cf0 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x00002cf8 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x00002d00 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x00002d08 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x00002d10 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x00002d18 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x00002d20 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x00002d28 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x00002d30 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x00002d38 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x00002d40 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x00002d48 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00002d50 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00002d58 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00002d60 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00002d68 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00002d70 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00002d78 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00002d80 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00002d88 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00002d90 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00002d98 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00002da0 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00002da8 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00002db0 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00002db8 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00002dc0 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00002dc8 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00002dd0 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00002dd8 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00002de0 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00002de8 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x00002df0 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x00002df8 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x00002e00 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x00002e08 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x00002e10 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x00002e18 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x00002e20 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x00002e28 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x00002e30 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x00002e38 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x00002e40 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x00002e48 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00002e50 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00002e58 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00002e60 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00002e68 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00002e70 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00002e78 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00002e80 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00002e88 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00002e90 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00002e98 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00002ea0 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00002ea8 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00002eb0 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00002eb8 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00002ec0 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00002ec8 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00002ed0 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00002ed8 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00002ee0 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00002ee8 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x00002ef0 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x00002ef8 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x00002f00 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x00002f08 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x00002f10 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x00002f18 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x00002f20 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x00002f28 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x00002f30 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x00002f38 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x00002f40 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x00002f48 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00002f50 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00002f58 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00002f60 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00002f68 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00002f70 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00002f78 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00002f80 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00002f88 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00002f90 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00002f98 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00002fa0 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00002fa8 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00002fb0 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00002fb8 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00002fc0 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00002fc8 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00002fd0 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00002fd8 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00002fe0 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00002fe8 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x00002ff0 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x00002ff8 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x00003000 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x00003008 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00003010 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00003018 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x00003020 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x00003028 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x00003030 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x00003038 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x00003040 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x00003048 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00003050 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00003058 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00003060 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00003068 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00003070 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00003078 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00003080 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00003088 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00003090 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00003098 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x000030a0 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x000030a8 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x000030b0 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x000030b8 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x000030c0 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x000030c8 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x000030d0 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x000030d8 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x000030e0 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x000030e8 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x000030f0 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x000030f8 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x00003100 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x00003108 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x00003110 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x00003118 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x00003120 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x00003128 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x00003130 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x00003138 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x00003140 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x00003148 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00003150 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00003158 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00003160 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00003168 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00003170 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00003178 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00003180 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00003188 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00003190 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00003198 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x000031a0 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x000031a8 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x000031b0 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x000031b8 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x000031c0 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x000031c8 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x000031d0 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x000031d8 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x000031e0 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x000031e8 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x000031f0 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x000031f8 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x00003200 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x00003208 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x00003210 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x00003218 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x00003220 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x00003228 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x00003230 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x00003238 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x00003240 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x00003248 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00003250 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00003258 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00003260 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00003268 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00003270 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00003278 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00003280 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00003288 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00003290 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00003298 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x000032a0 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x000032a8 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x000032b0 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x000032b8 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x000032c0 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x000032c8 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x000032d0 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x000032d8 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x000032e0 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x000032e8 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x000032f0 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x000032f8 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x00003300 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x00003308 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x00003310 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x00003318 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x00003320 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x00003328 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x00003330 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x00003338 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x00003340 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x00003348 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00003350 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00003358 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00003360 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00003368 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00003370 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00003378 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00003380 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00003388 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00003390 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00003398 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x000033a0 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x000033a8 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x000033b0 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x000033b8 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x000033c0 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x000033c8 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x000033d0 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x000033d8 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x000033e0 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x000033e8 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x000033f0 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x000033f8 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00003400 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00003408 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00003410 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00003418 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00003420 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00003428 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00003430 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00003438 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00003440 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00003448 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00003450 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00003458 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00003460 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00003468 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00003470 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00003478 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00003480 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00003488 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00003490 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00003498 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x000034a0 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x000034a8 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x000034b0 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x000034b8 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x000034c0 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x000034c8 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x000034d0 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x000034d8 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x000034e0 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x000034e8 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x000034f0 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x000034f8 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00003500 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00003508 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00003510 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00003518 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00003520 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00003528 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00003530 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00003538 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00003540 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00003548 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00003550 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00003558 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00003560 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00003568 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00003570 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00003578 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00003580 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00003588 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00003590 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00003598 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x000035a0 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x000035a8 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x000035b0 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x000035b8 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x000035c0 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x000035c8 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x000035d0 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x000035d8 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x000035e0 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x000035e8 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x000035f0 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x000035f8 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00003600 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00003608 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00003610 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00003618 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00003620 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00003628 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00003630 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00003638 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00003640 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00003648 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00003650 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00003658 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00003660 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00003668 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00003670 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00003678 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00003680 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00003688 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00003690 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00003698 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x000036a0 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x000036a8 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x000036b0 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x000036b8 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x000036c0 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x000036c8 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x000036d0 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x000036d8 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x000036e0 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x000036e8 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x000036f0 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x000036f8 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00003700 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00003708 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00003710 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00003718 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00003720 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00003728 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00003730 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00003738 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00003740 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00003748 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00003750 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00003758 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00003760 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00003768 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00003770 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00003778 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00003780 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00003788 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00003790 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00003798 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x000037a0 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x000037a8 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x000037b0 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x000037b8 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x000037c0 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x000037c8 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x000037d0 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x000037d8 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x000037e0 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x000037e8 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x000037f0 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x000037f8 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00003800 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00003808 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00003810 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00003818 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00003820 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00003828 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00003830 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00003838 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00003840 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00003848 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00003850 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00003858 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00003860 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00003868 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00003870 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00003878 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00003880 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00003888 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00003890 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00003898 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x000038a0 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x000038a8 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x000038b0 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x000038b8 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x000038c0 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x000038c8 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x000038d0 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x000038d8 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x000038e0 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x000038e8 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x000038f0 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x000038f8 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00003900 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00003908 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00003910 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00003918 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00003920 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00003928 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00003930 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00003938 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00003940 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00003948 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00003950 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00003958 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00003960 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00003968 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00003970 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00003978 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00003980 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00003988 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00003990 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00003998 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x000039a0 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x000039a8 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x000039b0 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x000039b8 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x000039c0 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x000039c8 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x000039d0 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x000039d8 .quad 7784369436827535058 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path.go b/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path.go new file mode 100644 index 000000000..facf29d77 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_get_by_path uintptr + +//go:nosplit +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return F_get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_subr.go new file mode 100644 index 000000000..c45a53baf --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__get_by_path = 224 +) + +const ( + _stack__get_by_path = 272 +) + +const ( + _size__get_by_path = 20184 +) + +var ( + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {17077, 272}, + {17078, 264}, + {17080, 256}, + {17082, 248}, + {17084, 240}, + {17086, 232}, + {17090, 224}, + {20184, 272}, + } +) + +var _cfunc_get_by_path = []loader.CFunc{ + {"_get_by_path_entry", 0, _entry__get_by_path, 0, nil}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_text_amd64.go new file mode 100644 index 000000000..a2a3886e2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/get_by_path_text_amd64.go @@ -0,0 +1,6049 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_get_by_path = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, // QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000010 LCPI0_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000010 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000020 LCPI0_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000020 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000030 LCPI0_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000050 LCPI0_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00000050 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00000060 LCPI0_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00000060 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00000070 LCPI0_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000070 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00000080 LCPI0_8 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000080 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000090 LCPI0_9 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000090 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x000000a0 LCPI0_10 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000a0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x000000b0 LCPI0_11 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000b0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x000000c0 LCPI0_12 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000000c0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000000d0 LCPI0_13 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000000d0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000e0 .p2align 4, 0x90 + //0x000000e0 _get_by_path + 0x55, //0x000000e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000e1 movq %rsp, %rbp + 0x41, 0x57, //0x000000e4 pushq %r15 + 0x41, 0x56, //0x000000e6 pushq %r14 + 0x41, 0x55, //0x000000e8 pushq %r13 + 0x41, 0x54, //0x000000ea pushq %r12 + 0x53, //0x000000ec pushq %rbx + 0x48, 0x81, 0xec, 0xe0, 0x00, 0x00, 0x00, //0x000000ed subq $224, %rsp + 0x49, 0x89, 0xf0, //0x000000f4 movq %rsi, %r8 + 0x49, 0x89, 0xff, //0x000000f7 movq %rdi, %r15 + 0x48, 0x8b, 0x42, 0x08, //0x000000fa movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x000000fe testq %rax, %rax + 0x48, 0x89, 0x74, 0x24, 0x18, //0x00000101 movq %rsi, $24(%rsp) + 0x48, 0x89, 0x7c, 0x24, 0x28, //0x00000106 movq %rdi, $40(%rsp) + 0x48, 0x89, 0x4c, 0x24, 0x40, //0x0000010b movq %rcx, $64(%rsp) + 0x0f, 0x84, 0xb4, 0x2a, 0x00, 0x00, //0x00000110 je LBB0_447 + 0x4c, 0x8b, 0x2a, //0x00000116 movq (%rdx), %r13 + 0x48, 0xc1, 0xe0, 0x04, //0x00000119 shlq $4, %rax + 0x4c, 0x01, 0xe8, //0x0000011d addq %r13, %rax + 0x48, 0x89, 0x84, 0x24, 0xc0, 0x00, 0x00, 0x00, //0x00000120 movq %rax, $192(%rsp) + 0x4d, 0x8d, 0x5f, 0x08, //0x00000128 leaq $8(%r15), %r11 + 0x49, 0x8b, 0x3f, //0x0000012c movq (%r15), %rdi + 0x49, 0x8b, 0x00, //0x0000012f movq (%r8), %rax + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000132 movabsq $4294977024, %r9 + 0xc5, 0xfa, 0x6f, 0x05, 0xec, 0xfe, 0xff, 0xff, //0x0000013c vmovdqu $-276(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xf4, 0xfe, 0xff, 0xff, //0x00000144 vmovdqu $-268(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x35, 0xac, 0xfe, 0xff, 0xff, //0x0000014c vmovdqu $-340(%rip), %xmm14 /* LCPI0_0+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0xb4, 0xfe, 0xff, 0xff, //0x00000154 vmovdqu $-332(%rip), %xmm15 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0xbc, 0xfe, 0xff, 0xff, //0x0000015c vmovdqu $-324(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00000164 vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0x7a, 0x6f, 0x15, 0xef, 0xfe, 0xff, 0xff, //0x00000169 vmovdqu $-273(%rip), %xmm10 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0xf7, 0xfe, 0xff, 0xff, //0x00000171 vmovdqu $-265(%rip), %xmm11 /* LCPI0_7+0(%rip) */ + 0xc4, 0x41, 0x39, 0xef, 0xc0, //0x00000179 vpxor %xmm8, %xmm8, %xmm8 + 0xc5, 0x7a, 0x6f, 0x25, 0xca, 0xfe, 0xff, 0xff, //0x0000017e vmovdqu $-310(%rip), %xmm12 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x2d, 0x92, 0xfe, 0xff, 0xff, //0x00000186 vmovdqu $-366(%rip), %xmm13 /* LCPI0_2+0(%rip) */ + 0x4c, 0x89, 0x5c, 0x24, 0x38, //0x0000018e movq %r11, $56(%rsp) + //0x00000193 LBB0_2 + 0x49, 0x8b, 0x0b, //0x00000193 movq (%r11), %rcx + 0x48, 0x89, 0xc2, //0x00000196 movq %rax, %rdx + 0x48, 0x29, 0xca, //0x00000199 subq %rcx, %rdx + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000019c jae LBB0_7 + 0x8a, 0x1c, 0x07, //0x000001a2 movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000001a5 cmpb $13, %bl + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x000001a8 je LBB0_7 + 0x80, 0xfb, 0x20, //0x000001ae cmpb $32, %bl + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000001b1 je LBB0_7 + 0x80, 0xc3, 0xf7, //0x000001b7 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000001ba cmpb $1, %bl + 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x000001bd jbe LBB0_7 + 0x48, 0x89, 0xc6, //0x000001c3 movq %rax, %rsi + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000001c6 jmp LBB0_27 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001cb .p2align 4, 0x90 + //0x000001d0 LBB0_7 + 0x48, 0x8d, 0x70, 0x01, //0x000001d0 leaq $1(%rax), %rsi + 0x48, 0x39, 0xce, //0x000001d4 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000001d7 jae LBB0_11 + 0x8a, 0x1c, 0x37, //0x000001dd movb (%rdi,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x000001e0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000001e3 je LBB0_11 + 0x80, 0xfb, 0x20, //0x000001e9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000001ec je LBB0_11 + 0x80, 0xc3, 0xf7, //0x000001f2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000001f5 cmpb $1, %bl + 0x0f, 0x87, 0x02, 0x01, 0x00, 0x00, //0x000001f8 ja LBB0_27 + 0x90, 0x90, //0x000001fe .p2align 4, 0x90 + //0x00000200 LBB0_11 + 0x48, 0x8d, 0x70, 0x02, //0x00000200 leaq $2(%rax), %rsi + 0x48, 0x39, 0xce, //0x00000204 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000207 jae LBB0_15 + 0x8a, 0x1c, 0x37, //0x0000020d movb (%rdi,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00000210 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000213 je LBB0_15 + 0x80, 0xfb, 0x20, //0x00000219 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000021c je LBB0_15 + 0x80, 0xc3, 0xf7, //0x00000222 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000225 cmpb $1, %bl + 0x0f, 0x87, 0xd2, 0x00, 0x00, 0x00, //0x00000228 ja LBB0_27 + 0x90, 0x90, //0x0000022e .p2align 4, 0x90 + //0x00000230 LBB0_15 + 0x48, 0x8d, 0x70, 0x03, //0x00000230 leaq $3(%rax), %rsi + 0x48, 0x39, 0xce, //0x00000234 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000237 jae LBB0_19 + 0x8a, 0x1c, 0x37, //0x0000023d movb (%rdi,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00000240 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000243 je LBB0_19 + 0x80, 0xfb, 0x20, //0x00000249 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000024c je LBB0_19 + 0x80, 0xc3, 0xf7, //0x00000252 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000255 cmpb $1, %bl + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000258 ja LBB0_27 + 0x90, 0x90, //0x0000025e .p2align 4, 0x90 + //0x00000260 LBB0_19 + 0x4c, 0x8d, 0x50, 0x04, //0x00000260 leaq $4(%rax), %r10 + 0x4c, 0x39, 0xd1, //0x00000264 cmpq %r10, %rcx + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x00000267 jbe LBB0_834 + 0x4c, 0x39, 0xd1, //0x0000026d cmpq %r10, %rcx + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00000270 je LBB0_26 + 0x4c, 0x8d, 0x14, 0x0f, //0x00000276 leaq (%rdi,%rcx), %r10 + 0x48, 0x83, 0xc2, 0x04, //0x0000027a addq $4, %rdx + 0x48, 0x89, 0xfb, //0x0000027e movq %rdi, %rbx + 0x48, 0x8d, 0x74, 0x07, 0x05, //0x00000281 leaq $5(%rdi,%rax), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000286 .p2align 4, 0x90 + //0x00000290 LBB0_22 + 0x0f, 0xbe, 0x7e, 0xff, //0x00000290 movsbl $-1(%rsi), %edi + 0x83, 0xff, 0x20, //0x00000294 cmpl $32, %edi + 0x0f, 0x87, 0x7f, 0x00, 0x00, 0x00, //0x00000297 ja LBB0_28 + 0x49, 0x0f, 0xa3, 0xf9, //0x0000029d btq %rdi, %r9 + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x000002a1 jae LBB0_28 + 0x48, 0xff, 0xc6, //0x000002a7 incq %rsi + 0x48, 0xff, 0xc2, //0x000002aa incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000002ad jne LBB0_22 + 0x48, 0x89, 0xdf, //0x000002b3 movq %rbx, %rdi + 0x49, 0x29, 0xfa, //0x000002b6 subq %rdi, %r10 + 0x4c, 0x89, 0xd6, //0x000002b9 movq %r10, %rsi + 0x48, 0x39, 0xce, //0x000002bc cmpq %rcx, %rsi + 0x0f, 0x82, 0x3b, 0x00, 0x00, 0x00, //0x000002bf jb LBB0_27 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000002c5 jmp LBB0_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002ca .p2align 4, 0x90 + //0x000002d0 LBB0_834 + 0x4d, 0x89, 0x10, //0x000002d0 movq %r10, (%r8) + 0x31, 0xc9, //0x000002d3 xorl %ecx, %ecx + 0x49, 0x8b, 0x45, 0x00, //0x000002d5 movq (%r13), %rax + 0x48, 0x85, 0xc0, //0x000002d9 testq %rax, %rax + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x000002dc jne LBB0_30 + 0xe9, 0x82, 0x40, 0x00, 0x00, //0x000002e2 jmp LBB0_835 + //0x000002e7 LBB0_26 + 0x49, 0x01, 0xfa, //0x000002e7 addq %rdi, %r10 + 0x49, 0x29, 0xfa, //0x000002ea subq %rdi, %r10 + 0x4c, 0x89, 0xd6, //0x000002ed movq %r10, %rsi + 0x48, 0x39, 0xce, //0x000002f0 cmpq %rcx, %rsi + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002f3 jae LBB0_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002f9 .p2align 4, 0x90 + //0x00000300 LBB0_27 + 0x4c, 0x8d, 0x56, 0x01, //0x00000300 leaq $1(%rsi), %r10 + 0x4d, 0x89, 0x10, //0x00000304 movq %r10, (%r8) + 0x8a, 0x0c, 0x37, //0x00000307 movb (%rdi,%rsi), %cl + 0x49, 0x8b, 0x45, 0x00, //0x0000030a movq (%r13), %rax + 0x48, 0x85, 0xc0, //0x0000030e testq %rax, %rax + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00000311 jne LBB0_30 + 0xe9, 0x4d, 0x40, 0x00, 0x00, //0x00000317 jmp LBB0_835 + //0x0000031c LBB0_28 + 0x48, 0x89, 0xdf, //0x0000031c movq %rbx, %rdi + 0x48, 0x89, 0xda, //0x0000031f movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00000322 notq %rdx + 0x48, 0x01, 0xd6, //0x00000325 addq %rdx, %rsi + 0x48, 0x39, 0xce, //0x00000328 cmpq %rcx, %rsi + 0x0f, 0x82, 0xcf, 0xff, 0xff, 0xff, //0x0000032b jb LBB0_27 + //0x00000331 LBB0_29 + 0x31, 0xc9, //0x00000331 xorl %ecx, %ecx + 0x49, 0x89, 0xc2, //0x00000333 movq %rax, %r10 + 0x49, 0x8b, 0x45, 0x00, //0x00000336 movq (%r13), %rax + 0x48, 0x85, 0xc0, //0x0000033a testq %rax, %rax + 0x0f, 0x84, 0x26, 0x40, 0x00, 0x00, //0x0000033d je LBB0_835 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000343 .p2align 4, 0x90 + //0x00000350 LBB0_30 + 0x8a, 0x40, 0x17, //0x00000350 movb $23(%rax), %al + 0x24, 0x1f, //0x00000353 andb $31, %al + 0x3c, 0x02, //0x00000355 cmpb $2, %al + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00000357 je LBB0_343 + 0x3c, 0x18, //0x0000035d cmpb $24, %al + 0x0f, 0x85, 0x04, 0x40, 0x00, 0x00, //0x0000035f jne LBB0_835 + 0x80, 0xf9, 0x7b, //0x00000365 cmpb $123, %cl + 0x4c, 0x89, 0x6c, 0x24, 0x58, //0x00000368 movq %r13, $88(%rsp) + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000036d je LBB0_33 + 0xe9, 0x09, 0x40, 0x00, 0x00, //0x00000373 jmp LBB0_837 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000378 .p2align 4, 0x90 + //0x00000380 LBB0_343 + 0x80, 0xf9, 0x5b, //0x00000380 cmpb $91, %cl + 0x0f, 0x85, 0xf8, 0x3f, 0x00, 0x00, //0x00000383 jne LBB0_837 + 0x49, 0x8b, 0x45, 0x08, //0x00000389 movq $8(%r13), %rax + 0x4c, 0x8b, 0x30, //0x0000038d movq (%rax), %r14 + 0x4d, 0x85, 0xf6, //0x00000390 testq %r14, %r14 + 0x0f, 0x88, 0xd0, 0x3f, 0x00, 0x00, //0x00000393 js LBB0_835 + 0x49, 0x8b, 0x03, //0x00000399 movq (%r11), %rax + 0x4c, 0x89, 0xd1, //0x0000039c movq %r10, %rcx + 0x48, 0x29, 0xc1, //0x0000039f subq %rax, %rcx + 0x0f, 0x83, 0xb8, 0x19, 0x00, 0x00, //0x000003a2 jae LBB0_350 + 0x42, 0x8a, 0x14, 0x17, //0x000003a8 movb (%rdi,%r10), %dl + 0x80, 0xfa, 0x0d, //0x000003ac cmpb $13, %dl + 0x0f, 0x84, 0xab, 0x19, 0x00, 0x00, //0x000003af je LBB0_350 + 0x80, 0xfa, 0x20, //0x000003b5 cmpb $32, %dl + 0x0f, 0x84, 0xa2, 0x19, 0x00, 0x00, //0x000003b8 je LBB0_350 + 0x80, 0xc2, 0xf7, //0x000003be addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000003c1 cmpb $1, %dl + 0x0f, 0x86, 0x96, 0x19, 0x00, 0x00, //0x000003c4 jbe LBB0_350 + 0x4c, 0x89, 0xd2, //0x000003ca movq %r10, %rdx + 0xe9, 0xbf, 0x1a, 0x00, 0x00, //0x000003cd jmp LBB0_372 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003d2 .p2align 4, 0x90 + //0x000003e0 LBB0_246 + 0x48, 0x01, 0xfe, //0x000003e0 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x000003e3 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x000003e6 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x000003e9 cmpq %rax, %rdx + 0x0f, 0x83, 0x8f, 0x3f, 0x00, 0x00, //0x000003ec jae LBB0_837 + //0x000003f2 LBB0_248 + 0x4c, 0x8d, 0x52, 0x01, //0x000003f2 leaq $1(%rdx), %r10 + 0x4d, 0x89, 0x10, //0x000003f6 movq %r10, (%r8) + 0x8a, 0x04, 0x17, //0x000003f9 movb (%rdi,%rdx), %al + 0x3c, 0x2c, //0x000003fc cmpb $44, %al + 0x0f, 0x85, 0x2f, 0x3f, 0x00, 0x00, //0x000003fe jne LBB0_249 + //0x00000404 LBB0_33 + 0x49, 0x8b, 0x03, //0x00000404 movq (%r11), %rax + 0x4c, 0x89, 0xd1, //0x00000407 movq %r10, %rcx + 0x48, 0x29, 0xc1, //0x0000040a subq %rax, %rcx + 0x48, 0x89, 0x7c, 0x24, 0x20, //0x0000040d movq %rdi, $32(%rsp) + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00000412 jae LBB0_38 + 0x42, 0x8a, 0x14, 0x17, //0x00000418 movb (%rdi,%r10), %dl + 0x80, 0xfa, 0x0d, //0x0000041c cmpb $13, %dl + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x0000041f je LBB0_38 + 0x80, 0xfa, 0x20, //0x00000425 cmpb $32, %dl + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000428 je LBB0_38 + 0x80, 0xc2, 0xf7, //0x0000042e addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000431 cmpb $1, %dl + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00000434 jbe LBB0_38 + 0x4c, 0x89, 0xd2, //0x0000043a movq %r10, %rdx + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x0000043d jmp LBB0_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000442 .p2align 4, 0x90 + //0x00000450 LBB0_38 + 0x49, 0x8d, 0x52, 0x01, //0x00000450 leaq $1(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00000454 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000457 jae LBB0_42 + 0x8a, 0x1c, 0x17, //0x0000045d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000460 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000463 je LBB0_42 + 0x80, 0xfb, 0x20, //0x00000469 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000046c je LBB0_42 + 0x80, 0xc3, 0xf7, //0x00000472 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000475 cmpb $1, %bl + 0x0f, 0x87, 0x09, 0x01, 0x00, 0x00, //0x00000478 ja LBB0_59 + 0x90, 0x90, //0x0000047e .p2align 4, 0x90 + //0x00000480 LBB0_42 + 0x49, 0x8d, 0x52, 0x02, //0x00000480 leaq $2(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00000484 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000487 jae LBB0_46 + 0x8a, 0x1c, 0x17, //0x0000048d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000490 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000493 je LBB0_46 + 0x80, 0xfb, 0x20, //0x00000499 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000049c je LBB0_46 + 0x80, 0xc3, 0xf7, //0x000004a2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000004a5 cmpb $1, %bl + 0x0f, 0x87, 0xd9, 0x00, 0x00, 0x00, //0x000004a8 ja LBB0_59 + 0x90, 0x90, //0x000004ae .p2align 4, 0x90 + //0x000004b0 LBB0_46 + 0x49, 0x8d, 0x52, 0x03, //0x000004b0 leaq $3(%r10), %rdx + 0x48, 0x39, 0xc2, //0x000004b4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000004b7 jae LBB0_50 + 0x8a, 0x1c, 0x17, //0x000004bd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x000004c0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000004c3 je LBB0_50 + 0x80, 0xfb, 0x20, //0x000004c9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000004cc je LBB0_50 + 0x80, 0xc3, 0xf7, //0x000004d2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000004d5 cmpb $1, %bl + 0x0f, 0x87, 0xa9, 0x00, 0x00, 0x00, //0x000004d8 ja LBB0_59 + 0x90, 0x90, //0x000004de .p2align 4, 0x90 + //0x000004e0 LBB0_50 + 0x49, 0x8d, 0x72, 0x04, //0x000004e0 leaq $4(%r10), %rsi + 0x48, 0x39, 0xf0, //0x000004e4 cmpq %rsi, %rax + 0x0f, 0x86, 0x9d, 0x28, 0x00, 0x00, //0x000004e7 jbe LBB0_550 + 0x48, 0x39, 0xf0, //0x000004ed cmpq %rsi, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000004f0 je LBB0_57 + 0x48, 0x8d, 0x34, 0x07, //0x000004f6 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x000004fa addq $4, %rcx + 0x4a, 0x8d, 0x54, 0x17, 0x05, //0x000004fe leaq $5(%rdi,%r10), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000503 .p2align 4, 0x90 + //0x00000510 LBB0_53 + 0x0f, 0xbe, 0x7a, 0xff, //0x00000510 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00000514 cmpl $32, %edi + 0x0f, 0x87, 0x53, 0x00, 0x00, 0x00, //0x00000517 ja LBB0_58 + 0x49, 0x0f, 0xa3, 0xf9, //0x0000051d btq %rdi, %r9 + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00000521 jae LBB0_58 + 0x48, 0xff, 0xc2, //0x00000527 incq %rdx + 0x48, 0xff, 0xc1, //0x0000052a incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000052d jne LBB0_53 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000533 movq $32(%rsp), %rdi + 0x48, 0x29, 0xfe, //0x00000538 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x0000053b movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x0000053e cmpq %rax, %rdx + 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x00000541 jb LBB0_59 + 0xe9, 0x35, 0x3e, 0x00, 0x00, //0x00000547 jmp LBB0_837 + 0x90, 0x90, 0x90, 0x90, //0x0000054c .p2align 4, 0x90 + //0x00000550 LBB0_57 + 0x48, 0x01, 0xfe, //0x00000550 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x00000553 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00000556 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x00000559 cmpq %rax, %rdx + 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x0000055c jb LBB0_59 + 0xe9, 0x1a, 0x3e, 0x00, 0x00, //0x00000562 jmp LBB0_837 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000567 .p2align 4, 0x90 + //0x00000570 LBB0_58 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000570 movq $32(%rsp), %rdi + 0x48, 0x89, 0xf9, //0x00000575 movq %rdi, %rcx + 0x48, 0xf7, 0xd1, //0x00000578 notq %rcx + 0x48, 0x01, 0xca, //0x0000057b addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x0000057e cmpq %rax, %rdx + 0x0f, 0x83, 0xfa, 0x3d, 0x00, 0x00, //0x00000581 jae LBB0_837 + //0x00000587 LBB0_59 + 0x4c, 0x8d, 0x52, 0x01, //0x00000587 leaq $1(%rdx), %r10 + 0x4d, 0x89, 0x10, //0x0000058b movq %r10, (%r8) + 0x8a, 0x04, 0x17, //0x0000058e movb (%rdi,%rdx), %al + 0x3c, 0x22, //0x00000591 cmpb $34, %al + 0x0f, 0x85, 0x9a, 0x3d, 0x00, 0x00, //0x00000593 jne LBB0_249 + 0x49, 0x8b, 0x33, //0x00000599 movq (%r11), %rsi + 0x48, 0x89, 0xf1, //0x0000059c movq %rsi, %rcx + 0x4c, 0x29, 0xd1, //0x0000059f subq %r10, %rcx + 0x0f, 0x84, 0x8f, 0x47, 0x00, 0x00, //0x000005a2 je LBB0_936 + 0x49, 0x8b, 0x45, 0x08, //0x000005a8 movq $8(%r13), %rax + 0x4c, 0x8b, 0x20, //0x000005ac movq (%rax), %r12 + 0x48, 0x8b, 0x40, 0x08, //0x000005af movq $8(%rax), %rax + 0x48, 0x89, 0x44, 0x24, 0x48, //0x000005b3 movq %rax, $72(%rsp) + 0x49, 0x01, 0xfa, //0x000005b8 addq %rdi, %r10 + 0x48, 0x83, 0xf9, 0x40, //0x000005bb cmpq $64, %rcx + 0x4c, 0x89, 0x94, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x000005bf movq %r10, $176(%rsp) + 0x48, 0x89, 0xb4, 0x24, 0xb8, 0x00, 0x00, 0x00, //0x000005c7 movq %rsi, $184(%rsp) + 0x0f, 0x82, 0x0c, 0x11, 0x00, 0x00, //0x000005cf jb LBB0_105 + 0x4c, 0x89, 0x64, 0x24, 0x30, //0x000005d5 movq %r12, $48(%rsp) + 0x89, 0xc8, //0x000005da movl %ecx, %eax + 0x83, 0xe0, 0x3f, //0x000005dc andl $63, %eax + 0x48, 0x89, 0x84, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x000005df movq %rax, $168(%rsp) + 0x48, 0x29, 0xd6, //0x000005e7 subq %rdx, %rsi + 0x48, 0x83, 0xc6, 0xbf, //0x000005ea addq $-65, %rsi + 0x48, 0x83, 0xe6, 0xc0, //0x000005ee andq $-64, %rsi + 0x48, 0x01, 0xd6, //0x000005f2 addq %rdx, %rsi + 0x48, 0x8d, 0x44, 0x37, 0x41, //0x000005f5 leaq $65(%rdi,%rsi), %rax + 0x48, 0x89, 0x44, 0x24, 0x50, //0x000005fa movq %rax, $80(%rsp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000005ff movq $-1, %r8 + 0x4c, 0x89, 0xd6, //0x00000606 movq %r10, %rsi + 0x31, 0xdb, //0x00000609 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000060b .p2align 4, 0x90 + //0x00000610 LBB0_63 + 0xc5, 0xfa, 0x6f, 0x16, //0x00000610 vmovdqu (%rsi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x6e, 0x10, //0x00000614 vmovdqu $16(%rsi), %xmm5 + 0xc5, 0xfa, 0x6f, 0x76, 0x20, //0x00000619 vmovdqu $32(%rsi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x7e, 0x30, //0x0000061e vmovdqu $48(%rsi), %xmm7 + 0xc5, 0xe9, 0x74, 0xd8, //0x00000623 vpcmpeqb %xmm0, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00000627 vpmovmskb %xmm3, %edi + 0xc5, 0xd1, 0x74, 0xd8, //0x0000062b vpcmpeqb %xmm0, %xmm5, %xmm3 + 0xc5, 0x79, 0xd7, 0xe3, //0x0000062f vpmovmskb %xmm3, %r12d + 0xc5, 0xc9, 0x74, 0xd8, //0x00000633 vpcmpeqb %xmm0, %xmm6, %xmm3 + 0xc5, 0x79, 0xd7, 0xeb, //0x00000637 vpmovmskb %xmm3, %r13d + 0xc5, 0xc1, 0x74, 0xd8, //0x0000063b vpcmpeqb %xmm0, %xmm7, %xmm3 + 0xc5, 0x79, 0xd7, 0xfb, //0x0000063f vpmovmskb %xmm3, %r15d + 0xc5, 0xe9, 0x74, 0xd1, //0x00000643 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xca, //0x00000647 vpmovmskb %xmm2, %r9d + 0xc5, 0xd1, 0x74, 0xd1, //0x0000064b vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000064f vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x00000653 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xda, //0x00000657 vpmovmskb %xmm2, %r11d + 0xc5, 0xc1, 0x74, 0xd1, //0x0000065b vpcmpeqb %xmm1, %xmm7, %xmm2 + 0xc5, 0x79, 0xd7, 0xd2, //0x0000065f vpmovmskb %xmm2, %r10d + 0x49, 0xc1, 0xe7, 0x30, //0x00000663 shlq $48, %r15 + 0x49, 0xc1, 0xe5, 0x20, //0x00000667 shlq $32, %r13 + 0x49, 0xc1, 0xe4, 0x10, //0x0000066b shlq $16, %r12 + 0x4c, 0x09, 0xe7, //0x0000066f orq %r12, %rdi + 0x4c, 0x09, 0xef, //0x00000672 orq %r13, %rdi + 0x49, 0xc1, 0xe2, 0x30, //0x00000675 shlq $48, %r10 + 0x49, 0xc1, 0xe3, 0x20, //0x00000679 shlq $32, %r11 + 0x49, 0xc1, 0xe6, 0x10, //0x0000067d shlq $16, %r14 + 0x4d, 0x09, 0xf1, //0x00000681 orq %r14, %r9 + 0x4d, 0x09, 0xd9, //0x00000684 orq %r11, %r9 + 0x4d, 0x09, 0xd1, //0x00000687 orq %r10, %r9 + 0x49, 0x83, 0xf8, 0xff, //0x0000068a cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000068e jne LBB0_65 + 0x4d, 0x85, 0xc9, //0x00000694 testq %r9, %r9 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000697 jne LBB0_74 + //0x0000069d LBB0_65 + 0x4c, 0x09, 0xff, //0x0000069d orq %r15, %rdi + 0x4c, 0x89, 0xc8, //0x000006a0 movq %r9, %rax + 0x48, 0x09, 0xd8, //0x000006a3 orq %rbx, %rax + 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x000006a6 jne LBB0_75 + //0x000006ac LBB0_66 + 0x48, 0x85, 0xff, //0x000006ac testq %rdi, %rdi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x000006af jne LBB0_76 + //0x000006b5 LBB0_67 + 0x48, 0x83, 0xc1, 0xc0, //0x000006b5 addq $-64, %rcx + 0x48, 0x83, 0xc6, 0x40, //0x000006b9 addq $64, %rsi + 0x48, 0x83, 0xf9, 0x3f, //0x000006bd cmpq $63, %rcx + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000006c1 ja LBB0_63 + 0xe9, 0x53, 0x0f, 0x00, 0x00, //0x000006c7 jmp LBB0_68 + //0x000006cc LBB0_74 + 0x49, 0x89, 0xf2, //0x000006cc movq %rsi, %r10 + 0x4c, 0x2b, 0x54, 0x24, 0x20, //0x000006cf subq $32(%rsp), %r10 + 0x4d, 0x0f, 0xbc, 0xc1, //0x000006d4 bsfq %r9, %r8 + 0x4d, 0x01, 0xd0, //0x000006d8 addq %r10, %r8 + 0x4c, 0x09, 0xff, //0x000006db orq %r15, %rdi + 0x4c, 0x89, 0xc8, //0x000006de movq %r9, %rax + 0x48, 0x09, 0xd8, //0x000006e1 orq %rbx, %rax + 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x000006e4 je LBB0_66 + //0x000006ea LBB0_75 + 0x49, 0x89, 0xdb, //0x000006ea movq %rbx, %r11 + 0x49, 0xf7, 0xd3, //0x000006ed notq %r11 + 0x4d, 0x21, 0xcb, //0x000006f0 andq %r9, %r11 + 0x4f, 0x8d, 0x14, 0x1b, //0x000006f3 leaq (%r11,%r11), %r10 + 0x49, 0x09, 0xda, //0x000006f7 orq %rbx, %r10 + 0x4d, 0x89, 0xd6, //0x000006fa movq %r10, %r14 + 0x49, 0xf7, 0xd6, //0x000006fd notq %r14 + 0x4d, 0x21, 0xce, //0x00000700 andq %r9, %r14 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000703 movabsq $-6148914691236517206, %rbx + 0x49, 0x21, 0xde, //0x0000070d andq %rbx, %r14 + 0x31, 0xdb, //0x00000710 xorl %ebx, %ebx + 0x4d, 0x01, 0xde, //0x00000712 addq %r11, %r14 + 0x0f, 0x92, 0xc3, //0x00000715 setb %bl + 0x4d, 0x01, 0xf6, //0x00000718 addq %r14, %r14 + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000071b movabsq $6148914691236517205, %rax + 0x49, 0x31, 0xc6, //0x00000725 xorq %rax, %r14 + 0x4d, 0x21, 0xd6, //0x00000728 andq %r10, %r14 + 0x49, 0xf7, 0xd6, //0x0000072b notq %r14 + 0x4c, 0x21, 0xf7, //0x0000072e andq %r14, %rdi + 0x48, 0x85, 0xff, //0x00000731 testq %rdi, %rdi + 0x0f, 0x84, 0x7b, 0xff, 0xff, 0xff, //0x00000734 je LBB0_67 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000073a .p2align 4, 0x90 + //0x00000740 LBB0_76 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000740 bsfq %rdi, %rax + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000744 movq $32(%rsp), %rdi + 0x48, 0x29, 0xfe, //0x00000749 subq %rdi, %rsi + 0x4c, 0x8d, 0x54, 0x06, 0x01, //0x0000074c leaq $1(%rsi,%rax), %r10 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00000751 movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x6c, 0x24, 0x58, //0x00000756 movq $88(%rsp), %r13 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x0000075b movq $56(%rsp), %r11 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000760 movabsq $4294977024, %r9 + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x0000076a movq $48(%rsp), %r12 + 0x48, 0x8b, 0x74, 0x24, 0x48, //0x0000076f movq $72(%rsp), %rsi + 0x4d, 0x85, 0xd2, //0x00000774 testq %r10, %r10 + 0x48, 0x8b, 0x9c, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x00000777 movq $176(%rsp), %rbx + 0x0f, 0x88, 0xba, 0x45, 0x00, 0x00, //0x0000077f js LBB0_937 + //0x00000785 LBB0_79 + 0x48, 0x8b, 0x44, 0x24, 0x18, //0x00000785 movq $24(%rsp), %rax + 0x4c, 0x89, 0x10, //0x0000078a movq %r10, (%rax) + 0x49, 0x83, 0xf8, 0xff, //0x0000078d cmpq $-1, %r8 + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00000791 je LBB0_81 + 0x4d, 0x39, 0xd0, //0x00000797 cmpq %r10, %r8 + 0x0f, 0x8e, 0x5e, 0x0f, 0x00, 0x00, //0x0000079a jle LBB0_107 + //0x000007a0 LBB0_81 + 0x4c, 0x89, 0xd1, //0x000007a0 movq %r10, %rcx + 0x48, 0x29, 0xd1, //0x000007a3 subq %rdx, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x000007a6 addq $-2, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000007aa movl $1, %edx + 0x48, 0x89, 0xc8, //0x000007af movq %rcx, %rax + 0x48, 0x09, 0xf0, //0x000007b2 orq %rsi, %rax + 0x0f, 0x84, 0xe5, 0x00, 0x00, 0x00, //0x000007b5 je LBB0_92 + 0x48, 0x39, 0xf1, //0x000007bb cmpq %rsi, %rcx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000007be movq $24(%rsp), %r8 + 0x0f, 0x85, 0xf7, 0x00, 0x00, 0x00, //0x000007c3 jne LBB0_93 + 0x48, 0x83, 0xfe, 0x10, //0x000007c9 cmpq $16, %rsi + 0x0f, 0x82, 0x68, 0x00, 0x00, 0x00, //0x000007cd jb LBB0_88 + 0x48, 0x8d, 0x4e, 0xf0, //0x000007d3 leaq $-16(%rsi), %rcx + 0x48, 0x89, 0xc8, //0x000007d7 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x000007da andq $-16, %rax + 0x48, 0x8d, 0x74, 0x03, 0x10, //0x000007de leaq $16(%rbx,%rax), %rsi + 0x49, 0x8d, 0x7c, 0x04, 0x10, //0x000007e3 leaq $16(%r12,%rax), %rdi + 0x83, 0xe1, 0x0f, //0x000007e8 andl $15, %ecx + 0x31, 0xdb, //0x000007eb xorl %ebx, %ebx + 0x90, 0x90, 0x90, //0x000007ed .p2align 4, 0x90 + //0x000007f0 LBB0_85 + 0x48, 0x8b, 0x84, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x000007f0 movq $176(%rsp), %rax + 0xc5, 0xfa, 0x6f, 0x14, 0x18, //0x000007f8 vmovdqu (%rax,%rbx), %xmm2 + 0xc4, 0xc1, 0x69, 0x74, 0x14, 0x1c, //0x000007fd vpcmpeqb (%r12,%rbx), %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000803 vpmovmskb %xmm2, %eax + 0x66, 0x83, 0xf8, 0xff, //0x00000807 cmpw $-1, %ax + 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x0000080b jne LBB0_98 + 0x48, 0x8b, 0x44, 0x24, 0x48, //0x00000811 movq $72(%rsp), %rax + 0x48, 0x83, 0xc0, 0xf0, //0x00000816 addq $-16, %rax + 0x48, 0x83, 0xc3, 0x10, //0x0000081a addq $16, %rbx + 0x48, 0x89, 0x44, 0x24, 0x48, //0x0000081e movq %rax, $72(%rsp) + 0x48, 0x83, 0xf8, 0x0f, //0x00000823 cmpq $15, %rax + 0x0f, 0x87, 0xc3, 0xff, 0xff, 0xff, //0x00000827 ja LBB0_85 + 0x49, 0x89, 0xfc, //0x0000082d movq %rdi, %r12 + 0x48, 0x89, 0xf3, //0x00000830 movq %rsi, %rbx + 0x48, 0x89, 0xce, //0x00000833 movq %rcx, %rsi + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000836 movq $32(%rsp), %rdi + //0x0000083b LBB0_88 + 0x44, 0x89, 0xe0, //0x0000083b movl %r12d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x0000083e andl $4095, %eax + 0x3d, 0xf0, 0x0f, 0x00, 0x00, //0x00000843 cmpl $4080, %eax + 0x0f, 0x87, 0x88, 0x00, 0x00, 0x00, //0x00000848 ja LBB0_94 + 0x89, 0xd8, //0x0000084e movl %ebx, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00000850 andl $4095, %eax + 0x3d, 0xf1, 0x0f, 0x00, 0x00, //0x00000855 cmpl $4081, %eax + 0x0f, 0x83, 0x76, 0x00, 0x00, 0x00, //0x0000085a jae LBB0_94 + 0xc5, 0xfa, 0x6f, 0x13, //0x00000860 vmovdqu (%rbx), %xmm2 + 0xc4, 0xc1, 0x69, 0x74, 0x14, 0x24, //0x00000864 vpcmpeqb (%r12), %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x0000086a vpmovmskb %xmm2, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x0000086e cmpw $-1, %cx + 0x0f, 0x84, 0x98, 0x00, 0x00, 0x00, //0x00000872 je LBB0_100 + 0xf7, 0xd1, //0x00000878 notl %ecx + 0x0f, 0xb7, 0xc1, //0x0000087a movzwl %cx, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x0000087d bsfq %rax, %rax + 0x31, 0xd2, //0x00000881 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x00000883 cmpq %rsi, %rax + 0x0f, 0x93, 0xc2, //0x00000886 setae %dl + 0x49, 0x8b, 0x0b, //0x00000889 movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x0000088c movq %r10, %rsi + 0x48, 0x29, 0xce, //0x0000088f subq %rcx, %rsi + 0x0f, 0x82, 0x87, 0x00, 0x00, 0x00, //0x00000892 jb LBB0_101 + 0xe9, 0xe3, 0x00, 0x00, 0x00, //0x00000898 jmp LBB0_154 + 0x90, 0x90, 0x90, //0x0000089d .p2align 4, 0x90 + //0x000008a0 LBB0_92 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000008a0 movq $24(%rsp), %r8 + 0x49, 0x8b, 0x0b, //0x000008a5 movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x000008a8 movq %r10, %rsi + 0x48, 0x29, 0xce, //0x000008ab subq %rcx, %rsi + 0x0f, 0x82, 0x6b, 0x00, 0x00, 0x00, //0x000008ae jb LBB0_101 + 0xe9, 0xc7, 0x00, 0x00, 0x00, //0x000008b4 jmp LBB0_154 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008b9 .p2align 4, 0x90 + //0x000008c0 LBB0_93 + 0x31, 0xd2, //0x000008c0 xorl %edx, %edx + 0x49, 0x8b, 0x0b, //0x000008c2 movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x000008c5 movq %r10, %rsi + 0x48, 0x29, 0xce, //0x000008c8 subq %rcx, %rsi + 0x0f, 0x82, 0x4e, 0x00, 0x00, 0x00, //0x000008cb jb LBB0_101 + 0xe9, 0xaa, 0x00, 0x00, 0x00, //0x000008d1 jmp LBB0_154 + //0x000008d6 LBB0_94 + 0x48, 0x85, 0xf6, //0x000008d6 testq %rsi, %rsi + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000008d9 je LBB0_100 + 0x31, 0xc9, //0x000008df xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008e1 .p2align 4, 0x90 + //0x000008f0 LBB0_96 + 0x0f, 0xb6, 0x04, 0x0b, //0x000008f0 movzbl (%rbx,%rcx), %eax + 0x41, 0x3a, 0x04, 0x0c, //0x000008f4 cmpb (%r12,%rcx), %al + 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x000008f8 jne LBB0_99 + 0x48, 0xff, 0xc1, //0x000008fe incq %rcx + 0x48, 0x39, 0xce, //0x00000901 cmpq %rcx, %rsi + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00000904 jne LBB0_96 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000090a .p2align 4, 0x90 + //0x00000910 LBB0_100 + 0x49, 0x8b, 0x0b, //0x00000910 movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x00000913 movq %r10, %rsi + 0x48, 0x29, 0xce, //0x00000916 subq %rcx, %rsi + 0x0f, 0x83, 0x61, 0x00, 0x00, 0x00, //0x00000919 jae LBB0_154 + //0x0000091f LBB0_101 + 0x42, 0x8a, 0x04, 0x17, //0x0000091f movb (%rdi,%r10), %al + 0x3c, 0x0d, //0x00000923 cmpb $13, %al + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x00000925 je LBB0_154 + 0x3c, 0x20, //0x0000092b cmpb $32, %al + 0x0f, 0x84, 0x4d, 0x00, 0x00, 0x00, //0x0000092d je LBB0_154 + 0x04, 0xf7, //0x00000933 addb $-9, %al + 0x3c, 0x01, //0x00000935 cmpb $1, %al + 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00000937 jbe LBB0_154 + 0x4c, 0x89, 0xd0, //0x0000093d movq %r10, %rax + 0xe9, 0x62, 0x01, 0x00, 0x00, //0x00000940 jmp LBB0_176 + //0x00000945 LBB0_98 + 0x31, 0xd2, //0x00000945 xorl %edx, %edx + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000947 movq $32(%rsp), %rdi + 0x49, 0x8b, 0x0b, //0x0000094c movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x0000094f movq %r10, %rsi + 0x48, 0x29, 0xce, //0x00000952 subq %rcx, %rsi + 0x0f, 0x82, 0xc4, 0xff, 0xff, 0xff, //0x00000955 jb LBB0_101 + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x0000095b jmp LBB0_154 + //0x00000960 LBB0_99 + 0x31, 0xd2, //0x00000960 xorl %edx, %edx + 0x49, 0x8b, 0x0b, //0x00000962 movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x00000965 movq %r10, %rsi + 0x48, 0x29, 0xce, //0x00000968 subq %rcx, %rsi + 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x0000096b jb LBB0_101 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000971 .p2align 4, 0x90 + //0x00000980 LBB0_154 + 0x49, 0x8d, 0x42, 0x01, //0x00000980 leaq $1(%r10), %rax + 0x48, 0x39, 0xc8, //0x00000984 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000987 jae LBB0_158 + 0x8a, 0x1c, 0x07, //0x0000098d movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00000990 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000993 je LBB0_158 + 0x80, 0xfb, 0x20, //0x00000999 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000099c je LBB0_158 + 0x80, 0xc3, 0xf7, //0x000009a2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000009a5 cmpb $1, %bl + 0x0f, 0x87, 0xf9, 0x00, 0x00, 0x00, //0x000009a8 ja LBB0_176 + 0x90, 0x90, //0x000009ae .p2align 4, 0x90 + //0x000009b0 LBB0_158 + 0x49, 0x8d, 0x42, 0x02, //0x000009b0 leaq $2(%r10), %rax + 0x48, 0x39, 0xc8, //0x000009b4 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000009b7 jae LBB0_162 + 0x8a, 0x1c, 0x07, //0x000009bd movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000009c0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000009c3 je LBB0_162 + 0x80, 0xfb, 0x20, //0x000009c9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000009cc je LBB0_162 + 0x80, 0xc3, 0xf7, //0x000009d2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000009d5 cmpb $1, %bl + 0x0f, 0x87, 0xc9, 0x00, 0x00, 0x00, //0x000009d8 ja LBB0_176 + 0x90, 0x90, //0x000009de .p2align 4, 0x90 + //0x000009e0 LBB0_162 + 0x49, 0x8d, 0x42, 0x03, //0x000009e0 leaq $3(%r10), %rax + 0x48, 0x39, 0xc8, //0x000009e4 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000009e7 jae LBB0_166 + 0x8a, 0x1c, 0x07, //0x000009ed movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000009f0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000009f3 je LBB0_166 + 0x80, 0xfb, 0x20, //0x000009f9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000009fc je LBB0_166 + 0x80, 0xc3, 0xf7, //0x00000a02 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000a05 cmpb $1, %bl + 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x00000a08 ja LBB0_176 + 0x90, 0x90, //0x00000a0e .p2align 4, 0x90 + //0x00000a10 LBB0_166 + 0x49, 0x8d, 0x7a, 0x04, //0x00000a10 leaq $4(%r10), %rdi + 0x48, 0x39, 0xf9, //0x00000a14 cmpq %rdi, %rcx + 0x0f, 0x86, 0x5e, 0x39, 0x00, 0x00, //0x00000a17 jbe LBB0_836 + 0x48, 0x39, 0xf9, //0x00000a1d cmpq %rdi, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00000a20 je LBB0_173 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00000a26 movq $32(%rsp), %rax + 0x48, 0x8d, 0x3c, 0x08, //0x00000a2b leaq (%rax,%rcx), %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00000a2f addq $4, %rsi + 0x4a, 0x8d, 0x44, 0x10, 0x05, //0x00000a33 leaq $5(%rax,%r10), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a38 .p2align 4, 0x90 + //0x00000a40 LBB0_169 + 0x0f, 0xbe, 0x58, 0xff, //0x00000a40 movsbl $-1(%rax), %ebx + 0x83, 0xfb, 0x20, //0x00000a44 cmpl $32, %ebx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00000a47 ja LBB0_175 + 0x49, 0x0f, 0xa3, 0xd9, //0x00000a4d btq %rbx, %r9 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00000a51 jae LBB0_175 + 0x48, 0xff, 0xc0, //0x00000a57 incq %rax + 0x48, 0xff, 0xc6, //0x00000a5a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00000a5d jne LBB0_169 + 0x48, 0x8b, 0x74, 0x24, 0x20, //0x00000a63 movq $32(%rsp), %rsi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000a68 jmp LBB0_174 + 0x90, 0x90, 0x90, //0x00000a6d .p2align 4, 0x90 + //0x00000a70 LBB0_173 + 0x48, 0x8b, 0x74, 0x24, 0x20, //0x00000a70 movq $32(%rsp), %rsi + 0x48, 0x01, 0xf7, //0x00000a75 addq %rsi, %rdi + //0x00000a78 LBB0_174 + 0x48, 0x29, 0xf7, //0x00000a78 subq %rsi, %rdi + 0x48, 0x89, 0xf8, //0x00000a7b movq %rdi, %rax + 0x48, 0x89, 0xf7, //0x00000a7e movq %rsi, %rdi + 0x48, 0x39, 0xc8, //0x00000a81 cmpq %rcx, %rax + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00000a84 jb LBB0_176 + 0xe9, 0xf2, 0x38, 0x00, 0x00, //0x00000a8a jmp LBB0_837 + 0x90, //0x00000a8f .p2align 4, 0x90 + //0x00000a90 LBB0_175 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000a90 movq $32(%rsp), %rdi + 0x48, 0x89, 0xfe, //0x00000a95 movq %rdi, %rsi + 0x48, 0xf7, 0xd6, //0x00000a98 notq %rsi + 0x48, 0x01, 0xf0, //0x00000a9b addq %rsi, %rax + 0x48, 0x39, 0xc8, //0x00000a9e cmpq %rcx, %rax + 0x0f, 0x83, 0xda, 0x38, 0x00, 0x00, //0x00000aa1 jae LBB0_837 + //0x00000aa7 LBB0_176 + 0x4c, 0x8d, 0x50, 0x01, //0x00000aa7 leaq $1(%rax), %r10 + 0x4d, 0x89, 0x10, //0x00000aab movq %r10, (%r8) + 0x80, 0x3c, 0x07, 0x3a, //0x00000aae cmpb $58, (%rdi,%rax) + 0x0f, 0x85, 0xc9, 0x38, 0x00, 0x00, //0x00000ab2 jne LBB0_837 + 0x48, 0x85, 0xd2, //0x00000ab8 testq %rdx, %rdx + 0x0f, 0x85, 0xef, 0x20, 0x00, 0x00, //0x00000abb jne LBB0_446 + 0x49, 0x8b, 0x13, //0x00000ac1 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x00000ac4 cmpq %rdx, %r10 + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00000ac7 jae LBB0_183 + 0x42, 0x8a, 0x0c, 0x17, //0x00000acd movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00000ad1 cmpb $13, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000ad4 je LBB0_183 + 0x80, 0xf9, 0x20, //0x00000ada cmpb $32, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00000add je LBB0_183 + 0x80, 0xc1, 0xf7, //0x00000ae3 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000ae6 cmpb $1, %cl + 0x0f, 0x86, 0x11, 0x00, 0x00, 0x00, //0x00000ae9 jbe LBB0_183 + 0x4c, 0x89, 0xd1, //0x00000aef movq %r10, %rcx + 0xe9, 0x49, 0x01, 0x00, 0x00, //0x00000af2 jmp LBB0_205 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000af7 .p2align 4, 0x90 + //0x00000b00 LBB0_183 + 0x48, 0x8d, 0x48, 0x02, //0x00000b00 leaq $2(%rax), %rcx + 0x48, 0x39, 0xd1, //0x00000b04 cmpq %rdx, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000b07 jae LBB0_187 + 0x8a, 0x1c, 0x0f, //0x00000b0d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00000b10 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000b13 je LBB0_187 + 0x80, 0xfb, 0x20, //0x00000b19 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000b1c je LBB0_187 + 0x80, 0xc3, 0xf7, //0x00000b22 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000b25 cmpb $1, %bl + 0x0f, 0x87, 0x12, 0x01, 0x00, 0x00, //0x00000b28 ja LBB0_205 + 0x90, 0x90, //0x00000b2e .p2align 4, 0x90 + //0x00000b30 LBB0_187 + 0x48, 0x8d, 0x48, 0x03, //0x00000b30 leaq $3(%rax), %rcx + 0x48, 0x39, 0xd1, //0x00000b34 cmpq %rdx, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000b37 jae LBB0_191 + 0x8a, 0x1c, 0x0f, //0x00000b3d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00000b40 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000b43 je LBB0_191 + 0x80, 0xfb, 0x20, //0x00000b49 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000b4c je LBB0_191 + 0x80, 0xc3, 0xf7, //0x00000b52 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000b55 cmpb $1, %bl + 0x0f, 0x87, 0xe2, 0x00, 0x00, 0x00, //0x00000b58 ja LBB0_205 + 0x90, 0x90, //0x00000b5e .p2align 4, 0x90 + //0x00000b60 LBB0_191 + 0x48, 0x8d, 0x48, 0x04, //0x00000b60 leaq $4(%rax), %rcx + 0x48, 0x39, 0xd1, //0x00000b64 cmpq %rdx, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000b67 jae LBB0_195 + 0x8a, 0x1c, 0x0f, //0x00000b6d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00000b70 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000b73 je LBB0_195 + 0x80, 0xfb, 0x20, //0x00000b79 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000b7c je LBB0_195 + 0x80, 0xc3, 0xf7, //0x00000b82 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000b85 cmpb $1, %bl + 0x0f, 0x87, 0xb2, 0x00, 0x00, 0x00, //0x00000b88 ja LBB0_205 + 0x90, 0x90, //0x00000b8e .p2align 4, 0x90 + //0x00000b90 LBB0_195 + 0x48, 0x8d, 0x70, 0x05, //0x00000b90 leaq $5(%rax), %rsi + 0x48, 0x39, 0xf2, //0x00000b94 cmpq %rsi, %rdx + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x00000b97 jbe LBB0_202 + 0x48, 0x39, 0xf2, //0x00000b9d cmpq %rsi, %rdx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00000ba0 je LBB0_203 + 0x48, 0x8d, 0x34, 0x17, //0x00000ba6 leaq (%rdi,%rdx), %rsi + 0x48, 0x8d, 0x4c, 0x07, 0x06, //0x00000baa leaq $6(%rdi,%rax), %rcx + 0x48, 0x29, 0xd0, //0x00000baf subq %rdx, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00000bb2 addq $5, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bb6 .p2align 4, 0x90 + //0x00000bc0 LBB0_198 + 0x0f, 0xbe, 0x79, 0xff, //0x00000bc0 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x00000bc4 cmpl $32, %edi + 0x0f, 0x87, 0x55, 0x00, 0x00, 0x00, //0x00000bc7 ja LBB0_204 + 0x49, 0x0f, 0xa3, 0xf9, //0x00000bcd btq %rdi, %r9 + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00000bd1 jae LBB0_204 + 0x48, 0xff, 0xc1, //0x00000bd7 incq %rcx + 0x48, 0xff, 0xc0, //0x00000bda incq %rax + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00000bdd jne LBB0_198 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000be3 movq $32(%rsp), %rdi + 0x48, 0x29, 0xfe, //0x00000be8 subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00000beb movq %rsi, %rcx + 0x48, 0x39, 0xd1, //0x00000bee cmpq %rdx, %rcx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00000bf1 jb LBB0_205 + 0xe9, 0x34, 0x01, 0x00, 0x00, //0x00000bf7 jmp LBB0_222 + 0x90, 0x90, 0x90, 0x90, //0x00000bfc .p2align 4, 0x90 + //0x00000c00 LBB0_202 + 0x49, 0x89, 0x30, //0x00000c00 movq %rsi, (%r8) + 0x49, 0x89, 0xf2, //0x00000c03 movq %rsi, %r10 + 0xe9, 0x25, 0x01, 0x00, 0x00, //0x00000c06 jmp LBB0_222 + //0x00000c0b LBB0_203 + 0x48, 0x01, 0xfe, //0x00000c0b addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x00000c0e subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00000c11 movq %rsi, %rcx + 0x48, 0x39, 0xd1, //0x00000c14 cmpq %rdx, %rcx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00000c17 jb LBB0_205 + 0xe9, 0x0e, 0x01, 0x00, 0x00, //0x00000c1d jmp LBB0_222 + //0x00000c22 LBB0_204 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000c22 movq $32(%rsp), %rdi + 0x48, 0x89, 0xf8, //0x00000c27 movq %rdi, %rax + 0x48, 0xf7, 0xd0, //0x00000c2a notq %rax + 0x48, 0x01, 0xc1, //0x00000c2d addq %rax, %rcx + 0x48, 0x39, 0xd1, //0x00000c30 cmpq %rdx, %rcx + 0x0f, 0x83, 0xf7, 0x00, 0x00, 0x00, //0x00000c33 jae LBB0_222 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c39 .p2align 4, 0x90 + //0x00000c40 LBB0_205 + 0x4c, 0x8d, 0x51, 0x01, //0x00000c40 leaq $1(%rcx), %r10 + 0x4d, 0x89, 0x10, //0x00000c44 movq %r10, (%r8) + 0x0f, 0xbe, 0x04, 0x0f, //0x00000c47 movsbl (%rdi,%rcx), %eax + 0x83, 0xf8, 0x7b, //0x00000c4b cmpl $123, %eax + 0x0f, 0x87, 0x75, 0x06, 0x00, 0x00, //0x00000c4e ja LBB0_289 + 0x48, 0x8d, 0x15, 0x4d, 0x45, 0x00, 0x00, //0x00000c54 leaq $17741(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x00000c5b movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x00000c5f addq %rdx, %rax + 0xff, 0xe0, //0x00000c62 jmpq *%rax + //0x00000c64 LBB0_207 + 0x49, 0x8b, 0x13, //0x00000c64 movq (%r11), %rdx + 0x48, 0x89, 0xd0, //0x00000c67 movq %rdx, %rax + 0x4c, 0x29, 0xd0, //0x00000c6a subq %r10, %rax + 0x49, 0x01, 0xfa, //0x00000c6d addq %rdi, %r10 + 0x48, 0x83, 0xf8, 0x10, //0x00000c70 cmpq $16, %rax + 0x0f, 0x82, 0x60, 0x00, 0x00, 0x00, //0x00000c74 jb LBB0_212 + 0x48, 0x29, 0xca, //0x00000c7a subq %rcx, %rdx + 0x48, 0x83, 0xc2, 0xef, //0x00000c7d addq $-17, %rdx + 0x48, 0x89, 0xd6, //0x00000c81 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x00000c84 andq $-16, %rsi + 0x48, 0x01, 0xce, //0x00000c88 addq %rcx, %rsi + 0x48, 0x8d, 0x4c, 0x37, 0x11, //0x00000c8b leaq $17(%rdi,%rsi), %rcx + 0x83, 0xe2, 0x0f, //0x00000c90 andl $15, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c93 .p2align 4, 0x90 + //0x00000ca0 LBB0_209 + 0xc4, 0xc1, 0x7a, 0x6f, 0x12, //0x00000ca0 vmovdqu (%r10), %xmm2 + 0xc5, 0x89, 0x74, 0xda, //0x00000ca5 vpcmpeqb %xmm2, %xmm14, %xmm3 + 0xc5, 0x81, 0xeb, 0xd2, //0x00000ca9 vpor %xmm2, %xmm15, %xmm2 + 0xc5, 0xe9, 0x74, 0xd4, //0x00000cad vpcmpeqb %xmm4, %xmm2, %xmm2 + 0xc5, 0xe9, 0xeb, 0xd3, //0x00000cb1 vpor %xmm3, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x00000cb5 vpmovmskb %xmm2, %esi + 0x66, 0x85, 0xf6, //0x00000cb9 testw %si, %si + 0x0f, 0x85, 0x5e, 0x00, 0x00, 0x00, //0x00000cbc jne LBB0_220 + 0x49, 0x83, 0xc2, 0x10, //0x00000cc2 addq $16, %r10 + 0x48, 0x83, 0xc0, 0xf0, //0x00000cc6 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00000cca cmpq $15, %rax + 0x0f, 0x87, 0xcc, 0xff, 0xff, 0xff, //0x00000cce ja LBB0_209 + 0x48, 0x89, 0xd0, //0x00000cd4 movq %rdx, %rax + 0x49, 0x89, 0xca, //0x00000cd7 movq %rcx, %r10 + //0x00000cda LBB0_212 + 0x48, 0x85, 0xc0, //0x00000cda testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00000cdd je LBB0_219 + 0x49, 0x8d, 0x0c, 0x02, //0x00000ce3 leaq (%r10,%rax), %rcx + //0x00000ce7 LBB0_214 + 0x41, 0x0f, 0xb6, 0x12, //0x00000ce7 movzbl (%r10), %edx + 0x80, 0xfa, 0x2c, //0x00000ceb cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000cee je LBB0_219 + 0x80, 0xfa, 0x7d, //0x00000cf4 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00000cf7 je LBB0_219 + 0x80, 0xfa, 0x5d, //0x00000cfd cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00000d00 je LBB0_219 + 0x49, 0xff, 0xc2, //0x00000d06 incq %r10 + 0x48, 0xff, 0xc8, //0x00000d09 decq %rax + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00000d0c jne LBB0_214 + 0x49, 0x89, 0xca, //0x00000d12 movq %rcx, %r10 + //0x00000d15 LBB0_219 + 0x49, 0x29, 0xfa, //0x00000d15 subq %rdi, %r10 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00000d18 jmp LBB0_221 + 0x90, 0x90, 0x90, //0x00000d1d .p2align 4, 0x90 + //0x00000d20 LBB0_220 + 0x0f, 0xb7, 0xc6, //0x00000d20 movzwl %si, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00000d23 bsfq %rax, %rax + 0x49, 0x29, 0xfa, //0x00000d27 subq %rdi, %r10 + 0x49, 0x01, 0xc2, //0x00000d2a addq %rax, %r10 + //0x00000d2d LBB0_221 + 0x4d, 0x89, 0x10, //0x00000d2d movq %r10, (%r8) + //0x00000d30 LBB0_222 + 0x49, 0x8b, 0x3f, //0x00000d30 movq (%r15), %rdi + 0x49, 0x8b, 0x47, 0x08, //0x00000d33 movq $8(%r15), %rax + 0x4c, 0x89, 0xd1, //0x00000d37 movq %r10, %rcx + 0x48, 0x29, 0xc1, //0x00000d3a subq %rax, %rcx + 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x00000d3d jae LBB0_227 + 0x42, 0x8a, 0x14, 0x17, //0x00000d43 movb (%rdi,%r10), %dl + 0x80, 0xfa, 0x0d, //0x00000d47 cmpb $13, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00000d4a je LBB0_227 + 0x80, 0xfa, 0x20, //0x00000d50 cmpb $32, %dl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000d53 je LBB0_227 + 0x80, 0xc2, 0xf7, //0x00000d59 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000d5c cmpb $1, %dl + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x00000d5f jbe LBB0_227 + 0x4c, 0x89, 0xd2, //0x00000d65 movq %r10, %rdx + 0xe9, 0x85, 0xf6, 0xff, 0xff, //0x00000d68 jmp LBB0_248 + 0x90, 0x90, 0x90, //0x00000d6d .p2align 4, 0x90 + //0x00000d70 LBB0_227 + 0x49, 0x8d, 0x52, 0x01, //0x00000d70 leaq $1(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00000d74 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000d77 jae LBB0_231 + 0x8a, 0x1c, 0x17, //0x00000d7d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000d80 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000d83 je LBB0_231 + 0x80, 0xfb, 0x20, //0x00000d89 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000d8c je LBB0_231 + 0x80, 0xc3, 0xf7, //0x00000d92 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000d95 cmpb $1, %bl + 0x0f, 0x87, 0x54, 0xf6, 0xff, 0xff, //0x00000d98 ja LBB0_248 + 0x90, 0x90, //0x00000d9e .p2align 4, 0x90 + //0x00000da0 LBB0_231 + 0x49, 0x8d, 0x52, 0x02, //0x00000da0 leaq $2(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00000da4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000da7 jae LBB0_235 + 0x8a, 0x1c, 0x17, //0x00000dad movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000db0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000db3 je LBB0_235 + 0x80, 0xfb, 0x20, //0x00000db9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000dbc je LBB0_235 + 0x80, 0xc3, 0xf7, //0x00000dc2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000dc5 cmpb $1, %bl + 0x0f, 0x87, 0x24, 0xf6, 0xff, 0xff, //0x00000dc8 ja LBB0_248 + 0x90, 0x90, //0x00000dce .p2align 4, 0x90 + //0x00000dd0 LBB0_235 + 0x49, 0x8d, 0x52, 0x03, //0x00000dd0 leaq $3(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00000dd4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000dd7 jae LBB0_239 + 0x8a, 0x1c, 0x17, //0x00000ddd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000de0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000de3 je LBB0_239 + 0x80, 0xfb, 0x20, //0x00000de9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000dec je LBB0_239 + 0x80, 0xc3, 0xf7, //0x00000df2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000df5 cmpb $1, %bl + 0x0f, 0x87, 0xf4, 0xf5, 0xff, 0xff, //0x00000df8 ja LBB0_248 + 0x90, 0x90, //0x00000dfe .p2align 4, 0x90 + //0x00000e00 LBB0_239 + 0x49, 0x8d, 0x72, 0x04, //0x00000e00 leaq $4(%r10), %rsi + 0x48, 0x39, 0xf0, //0x00000e04 cmpq %rsi, %rax + 0x0f, 0x86, 0x7d, 0x1f, 0x00, 0x00, //0x00000e07 jbe LBB0_550 + 0x48, 0x39, 0xf0, //0x00000e0d cmpq %rsi, %rax + 0x0f, 0x84, 0xca, 0xf5, 0xff, 0xff, //0x00000e10 je LBB0_246 + 0x48, 0x8d, 0x34, 0x07, //0x00000e16 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x00000e1a addq $4, %rcx + 0x48, 0x89, 0xfb, //0x00000e1e movq %rdi, %rbx + 0x4a, 0x8d, 0x54, 0x17, 0x05, //0x00000e21 leaq $5(%rdi,%r10), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e26 .p2align 4, 0x90 + //0x00000e30 LBB0_242 + 0x0f, 0xbe, 0x7a, 0xff, //0x00000e30 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00000e34 cmpl $32, %edi + 0x0f, 0x87, 0x2d, 0x00, 0x00, 0x00, //0x00000e37 ja LBB0_247 + 0x49, 0x0f, 0xa3, 0xf9, //0x00000e3d btq %rdi, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000e41 jae LBB0_247 + 0x48, 0xff, 0xc2, //0x00000e47 incq %rdx + 0x48, 0xff, 0xc1, //0x00000e4a incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00000e4d jne LBB0_242 + 0x48, 0x89, 0xdf, //0x00000e53 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00000e56 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00000e59 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x00000e5c cmpq %rax, %rdx + 0x0f, 0x82, 0x8d, 0xf5, 0xff, 0xff, //0x00000e5f jb LBB0_248 + 0xe9, 0x17, 0x35, 0x00, 0x00, //0x00000e65 jmp LBB0_837 + //0x00000e6a LBB0_247 + 0x48, 0x89, 0xdf, //0x00000e6a movq %rbx, %rdi + 0x48, 0x89, 0xd9, //0x00000e6d movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000e70 notq %rcx + 0x48, 0x01, 0xca, //0x00000e73 addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00000e76 cmpq %rax, %rdx + 0x0f, 0x82, 0x73, 0xf5, 0xff, 0xff, //0x00000e79 jb LBB0_248 + 0xe9, 0xfd, 0x34, 0x00, 0x00, //0x00000e7f jmp LBB0_837 + //0x00000e84 LBB0_250 + 0x48, 0x83, 0xc1, 0x04, //0x00000e84 addq $4, %rcx + 0x49, 0x3b, 0x0b, //0x00000e88 cmpq (%r11), %rcx + 0x0f, 0x87, 0x9f, 0xfe, 0xff, 0xff, //0x00000e8b ja LBB0_222 + 0xe9, 0x33, 0x04, 0x00, 0x00, //0x00000e91 jmp LBB0_289 + //0x00000e96 LBB0_251 + 0x4d, 0x8b, 0x03, //0x00000e96 movq (%r11), %r8 + 0x4c, 0x89, 0xc0, //0x00000e99 movq %r8, %rax + 0x4c, 0x29, 0xd0, //0x00000e9c subq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00000e9f cmpq $32, %rax + 0x0f, 0x8c, 0xbd, 0x0c, 0x00, 0x00, //0x00000ea3 jl LBB0_323 + 0x4c, 0x8d, 0x0c, 0x0f, //0x00000ea9 leaq (%rdi,%rcx), %r9 + 0x49, 0x29, 0xc8, //0x00000ead subq %rcx, %r8 + 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x00000eb0 movl $31, %ecx + 0x31, 0xc0, //0x00000eb5 xorl %eax, %eax + 0x45, 0x31, 0xdb, //0x00000eb7 xorl %r11d, %r11d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000eba jmp LBB0_253 + 0x90, //0x00000ebf .p2align 4, 0x90 + //0x00000ec0 LBB0_256 + 0x45, 0x31, 0xdb, //0x00000ec0 xorl %r11d, %r11d + 0x85, 0xdb, //0x00000ec3 testl %ebx, %ebx + 0x0f, 0x85, 0xa9, 0x00, 0x00, 0x00, //0x00000ec5 jne LBB0_255 + //0x00000ecb LBB0_257 + 0x48, 0x83, 0xc0, 0x20, //0x00000ecb addq $32, %rax + 0x49, 0x8d, 0x54, 0x08, 0xe0, //0x00000ecf leaq $-32(%r8,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xe0, //0x00000ed4 addq $-32, %rcx + 0x48, 0x83, 0xfa, 0x3f, //0x00000ed8 cmpq $63, %rdx + 0x0f, 0x8e, 0xbc, 0x0b, 0x00, 0x00, //0x00000edc jle LBB0_258 + //0x00000ee2 LBB0_253 + 0xc4, 0xc1, 0x7a, 0x6f, 0x54, 0x01, 0x01, //0x00000ee2 vmovdqu $1(%r9,%rax), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x5c, 0x01, 0x11, //0x00000ee9 vmovdqu $17(%r9,%rax), %xmm3 + 0xc5, 0xe9, 0x74, 0xe8, //0x00000ef0 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00000ef4 vpmovmskb %xmm5, %edx + 0xc5, 0xe1, 0x74, 0xe8, //0x00000ef8 vpcmpeqb %xmm0, %xmm3, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x00000efc vpmovmskb %xmm5, %ebx + 0x48, 0xc1, 0xe3, 0x10, //0x00000f00 shlq $16, %rbx + 0x48, 0x09, 0xd3, //0x00000f04 orq %rdx, %rbx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000f07 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x00000f0b vpmovmskb %xmm2, %esi + 0xc5, 0xe1, 0x74, 0xd1, //0x00000f0f vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000f13 vpmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x10, //0x00000f17 shlq $16, %rdx + 0x48, 0x09, 0xf2, //0x00000f1b orq %rsi, %rdx + 0x48, 0x89, 0xd6, //0x00000f1e movq %rdx, %rsi + 0x4c, 0x09, 0xde, //0x00000f21 orq %r11, %rsi + 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x00000f24 je LBB0_256 + 0x44, 0x89, 0xde, //0x00000f2a movl %r11d, %esi + 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00000f2d movl $4294967295, %r14d + 0x44, 0x31, 0xf6, //0x00000f33 xorl %r14d, %esi + 0x21, 0xf2, //0x00000f36 andl %esi, %edx + 0x8d, 0x34, 0x12, //0x00000f38 leal (%rdx,%rdx), %esi + 0x44, 0x09, 0xde, //0x00000f3b orl %r11d, %esi + 0x41, 0x8d, 0xbe, 0xab, 0xaa, 0xaa, 0xaa, //0x00000f3e leal $-1431655765(%r14), %edi + 0x31, 0xf7, //0x00000f45 xorl %esi, %edi + 0x21, 0xd7, //0x00000f47 andl %edx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000f49 andl $-1431655766, %edi + 0x45, 0x31, 0xdb, //0x00000f4f xorl %r11d, %r11d + 0x01, 0xd7, //0x00000f52 addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc3, //0x00000f54 setb %r11b + 0x01, 0xff, //0x00000f58 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00000f5a xorl $1431655765, %edi + 0x21, 0xf7, //0x00000f60 andl %esi, %edi + 0x44, 0x31, 0xf7, //0x00000f62 xorl %r14d, %edi + 0x21, 0xfb, //0x00000f65 andl %edi, %ebx + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00000f67 movq $32(%rsp), %rdi + 0x85, 0xdb, //0x00000f6c testl %ebx, %ebx + 0x0f, 0x84, 0x57, 0xff, 0xff, 0xff, //0x00000f6e je LBB0_257 + //0x00000f74 LBB0_255 + 0x48, 0x0f, 0xbc, 0xcb, //0x00000f74 bsfq %rbx, %rcx + 0x49, 0x01, 0xc9, //0x00000f78 addq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00000f7b addq %rax, %r9 + 0x49, 0x29, 0xf9, //0x00000f7e subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0x02, //0x00000f81 addq $2, %r9 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00000f85 movq $24(%rsp), %r8 + 0x4d, 0x89, 0x08, //0x00000f8a movq %r9, (%r8) + 0x4d, 0x89, 0xca, //0x00000f8d movq %r9, %r10 + //0x00000f90 LBB0_341 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00000f90 movq $56(%rsp), %r11 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000f95 movabsq $4294977024, %r9 + 0xe9, 0x8c, 0xfd, 0xff, 0xff, //0x00000f9f jmp LBB0_222 + //0x00000fa4 LBB0_262 + 0x4d, 0x8b, 0x0b, //0x00000fa4 movq (%r11), %r9 + 0x4d, 0x29, 0xd1, //0x00000fa7 subq %r10, %r9 + 0x4c, 0x01, 0xd7, //0x00000faa addq %r10, %rdi + 0x45, 0x31, 0xc0, //0x00000fad xorl %r8d, %r8d + 0x45, 0x31, 0xd2, //0x00000fb0 xorl %r10d, %r10d + 0x45, 0x31, 0xdb, //0x00000fb3 xorl %r11d, %r11d + 0x31, 0xd2, //0x00000fb6 xorl %edx, %edx + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00000fb8 jmp LBB0_264 + //0x00000fbd LBB0_263 + 0x49, 0xc1, 0xfe, 0x3f, //0x00000fbd sarq $63, %r14 + 0xf3, 0x48, 0x0f, 0xb8, 0xc7, //0x00000fc1 popcntq %rdi, %rax + 0x49, 0x01, 0xc3, //0x00000fc6 addq %rax, %r11 + 0x4c, 0x89, 0xe7, //0x00000fc9 movq %r12, %rdi + 0x48, 0x83, 0xc7, 0x40, //0x00000fcc addq $64, %rdi + 0x49, 0x83, 0xc1, 0xc0, //0x00000fd0 addq $-64, %r9 + 0x4d, 0x89, 0xf0, //0x00000fd4 movq %r14, %r8 + //0x00000fd7 LBB0_264 + 0x49, 0x83, 0xf9, 0x40, //0x00000fd7 cmpq $64, %r9 + 0x0f, 0x8c, 0xab, 0x01, 0x00, 0x00, //0x00000fdb jl LBB0_272 + //0x00000fe1 LBB0_265 + 0xc5, 0xfa, 0x6f, 0x17, //0x00000fe1 vmovdqu (%rdi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x77, 0x10, //0x00000fe5 vmovdqu $16(%rdi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x6f, 0x20, //0x00000fea vmovdqu $32(%rdi), %xmm5 + 0x49, 0x89, 0xfc, //0x00000fef movq %rdi, %r12 + 0xc5, 0xfa, 0x6f, 0x7f, 0x30, //0x00000ff2 vmovdqu $48(%rdi), %xmm7 + 0xc5, 0xe9, 0x74, 0xd8, //0x00000ff7 vpcmpeqb %xmm0, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xf3, //0x00000ffb vpmovmskb %xmm3, %esi + 0xc5, 0xc9, 0x74, 0xd8, //0x00000fff vpcmpeqb %xmm0, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00001003 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd8, //0x00001007 vpcmpeqb %xmm0, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x0000100b vpmovmskb %xmm3, %edi + 0xc5, 0xc1, 0x74, 0xd8, //0x0000100f vpcmpeqb %xmm0, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00001013 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00001017 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x0000101b shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x0000101f shlq $16, %rax + 0x48, 0x09, 0xc6, //0x00001023 orq %rax, %rsi + 0x48, 0x09, 0xfe, //0x00001026 orq %rdi, %rsi + 0x48, 0x09, 0xde, //0x00001029 orq %rbx, %rsi + 0xc5, 0xe9, 0x74, 0xd9, //0x0000102c vpcmpeqb %xmm1, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00001030 vpmovmskb %xmm3, %edi + 0xc5, 0xc9, 0x74, 0xd9, //0x00001034 vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00001038 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd9, //0x0000103c vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00001040 vpmovmskb %xmm3, %ebx + 0xc5, 0xc1, 0x74, 0xd9, //0x00001044 vpcmpeqb %xmm1, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x00001048 vpmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x0000104c shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00001050 shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001054 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001058 orq %rax, %rdi + 0x48, 0x09, 0xdf, //0x0000105b orq %rbx, %rdi + 0x48, 0x09, 0xcf, //0x0000105e orq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x00001061 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00001064 orq %r10, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00001067 je LBB0_267 + 0x4c, 0x89, 0xd0, //0x0000106d movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x00001070 notq %rax + 0x48, 0x21, 0xf8, //0x00001073 andq %rdi, %rax + 0x4c, 0x8d, 0x34, 0x00, //0x00001076 leaq (%rax,%rax), %r14 + 0x4d, 0x09, 0xd6, //0x0000107a orq %r10, %r14 + 0x4c, 0x89, 0xf1, //0x0000107d movq %r14, %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001080 movabsq $-6148914691236517206, %rbx + 0x48, 0x31, 0xd9, //0x0000108a xorq %rbx, %rcx + 0x48, 0x21, 0xdf, //0x0000108d andq %rbx, %rdi + 0x48, 0x21, 0xcf, //0x00001090 andq %rcx, %rdi + 0x45, 0x31, 0xd2, //0x00001093 xorl %r10d, %r10d + 0x48, 0x01, 0xc7, //0x00001096 addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x00001099 setb %r10b + 0x48, 0x01, 0xff, //0x0000109d addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000010a0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x000010aa xorq %rax, %rdi + 0x4c, 0x21, 0xf7, //0x000010ad andq %r14, %rdi + 0x48, 0xf7, 0xd7, //0x000010b0 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000010b3 jmp LBB0_268 + //0x000010b8 LBB0_267 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000010b8 movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x000010bf xorl %r10d, %r10d + //0x000010c2 LBB0_268 + 0x48, 0x21, 0xf7, //0x000010c2 andq %rsi, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xdf, //0x000010c5 vmovq %rdi, %xmm3 + 0xc4, 0xc3, 0x61, 0x44, 0xd9, 0x00, //0x000010ca vpclmulqdq $0, %xmm9, %xmm3, %xmm3 + 0xc4, 0xc1, 0xf9, 0x7e, 0xde, //0x000010d0 vmovq %xmm3, %r14 + 0x4d, 0x31, 0xc6, //0x000010d5 xorq %r8, %r14 + 0xc5, 0xa9, 0x74, 0xda, //0x000010d8 vpcmpeqb %xmm2, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000010dc vpmovmskb %xmm3, %edi + 0xc5, 0xa9, 0x74, 0xde, //0x000010e0 vpcmpeqb %xmm6, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x000010e4 vpmovmskb %xmm3, %eax + 0xc5, 0xa9, 0x74, 0xdd, //0x000010e8 vpcmpeqb %xmm5, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x000010ec vpmovmskb %xmm3, %ecx + 0xc5, 0xa9, 0x74, 0xdf, //0x000010f0 vpcmpeqb %xmm7, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x000010f4 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x000010f8 shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x000010fc shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00001100 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001104 orq %rax, %rdi + 0x48, 0x09, 0xcf, //0x00001107 orq %rcx, %rdi + 0x48, 0x09, 0xdf, //0x0000110a orq %rbx, %rdi + 0x4d, 0x89, 0xf0, //0x0000110d movq %r14, %r8 + 0x49, 0xf7, 0xd0, //0x00001110 notq %r8 + 0x4c, 0x21, 0xc7, //0x00001113 andq %r8, %rdi + 0xc5, 0xa1, 0x74, 0xd2, //0x00001116 vpcmpeqb %xmm2, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x0000111a vpmovmskb %xmm2, %eax + 0xc5, 0xa1, 0x74, 0xd6, //0x0000111e vpcmpeqb %xmm6, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00001122 vpmovmskb %xmm2, %ebx + 0xc5, 0xa1, 0x74, 0xd5, //0x00001126 vpcmpeqb %xmm5, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x0000112a vpmovmskb %xmm2, %esi + 0xc5, 0xa1, 0x74, 0xd7, //0x0000112e vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00001132 vpmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00001136 shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x0000113a shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x0000113e shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x00001142 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x00001145 orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x00001148 orq %rcx, %rax + 0x4c, 0x21, 0xc0, //0x0000114b andq %r8, %rax + 0x0f, 0x84, 0x69, 0xfe, 0xff, 0xff, //0x0000114e je LBB0_263 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001154 movq $24(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001159 .p2align 4, 0x90 + //0x00001160 LBB0_270 + 0x48, 0x8d, 0x58, 0xff, //0x00001160 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00001164 movq %rbx, %rcx + 0x48, 0x21, 0xf9, //0x00001167 andq %rdi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x0000116a popcntq %rcx, %rcx + 0x4c, 0x01, 0xd9, //0x0000116f addq %r11, %rcx + 0x48, 0x39, 0xd1, //0x00001172 cmpq %rdx, %rcx + 0x0f, 0x86, 0x71, 0x04, 0x00, 0x00, //0x00001175 jbe LBB0_316 + 0x48, 0xff, 0xc2, //0x0000117b incq %rdx + 0x48, 0x21, 0xd8, //0x0000117e andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00001181 jne LBB0_270 + 0xe9, 0x31, 0xfe, 0xff, 0xff, //0x00001187 jmp LBB0_263 + //0x0000118c LBB0_272 + 0x4d, 0x85, 0xc9, //0x0000118c testq %r9, %r9 + 0x0f, 0x8e, 0x5c, 0x0b, 0x00, 0x00, //0x0000118f jle LBB0_338 + 0x48, 0x89, 0xf9, //0x00001195 movq %rdi, %rcx + 0xc5, 0x7e, 0x7f, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00001198 vmovdqu %ymm8, $128(%rsp) + 0xc5, 0x7e, 0x7f, 0x44, 0x24, 0x60, //0x000011a1 vmovdqu %ymm8, $96(%rsp) + 0x89, 0xc8, //0x000011a7 movl %ecx, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x000011a9 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x000011ae cmpl $4033, %eax + 0x0f, 0x82, 0x34, 0x00, 0x00, 0x00, //0x000011b3 jb LBB0_276 + 0x49, 0x83, 0xf9, 0x20, //0x000011b9 cmpq $32, %r9 + 0x0f, 0x82, 0x37, 0x00, 0x00, 0x00, //0x000011bd jb LBB0_277 + 0xc5, 0xf8, 0x10, 0x11, //0x000011c3 vmovups (%rcx), %xmm2 + 0xc5, 0xf8, 0x11, 0x54, 0x24, 0x60, //0x000011c7 vmovups %xmm2, $96(%rsp) + 0xc5, 0xfa, 0x6f, 0x51, 0x10, //0x000011cd vmovdqu $16(%rcx), %xmm2 + 0xc5, 0xfa, 0x7f, 0x54, 0x24, 0x70, //0x000011d2 vmovdqu %xmm2, $112(%rsp) + 0x48, 0x83, 0xc1, 0x20, //0x000011d8 addq $32, %rcx + 0x49, 0x8d, 0x79, 0xe0, //0x000011dc leaq $-32(%r9), %rdi + 0x48, 0x8d, 0xb4, 0x24, 0x80, 0x00, 0x00, 0x00, //0x000011e0 leaq $128(%rsp), %rsi + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000011e8 jmp LBB0_278 + //0x000011ed LBB0_276 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x000011ed movq $40(%rsp), %r15 + 0x48, 0x89, 0xcf, //0x000011f2 movq %rcx, %rdi + 0xe9, 0xe7, 0xfd, 0xff, 0xff, //0x000011f5 jmp LBB0_265 + //0x000011fa LBB0_277 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x000011fa leaq $96(%rsp), %rsi + 0x4c, 0x89, 0xcf, //0x000011ff movq %r9, %rdi + //0x00001202 LBB0_278 + 0x48, 0x83, 0xff, 0x10, //0x00001202 cmpq $16, %rdi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00001206 jb LBB0_279 + 0xc5, 0xfa, 0x6f, 0x11, //0x0000120c vmovdqu (%rcx), %xmm2 + 0xc5, 0xfa, 0x7f, 0x16, //0x00001210 vmovdqu %xmm2, (%rsi) + 0x48, 0x83, 0xc1, 0x10, //0x00001214 addq $16, %rcx + 0x48, 0x83, 0xc6, 0x10, //0x00001218 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x0000121c addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00001220 cmpq $8, %rdi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00001224 jae LBB0_286 + //0x0000122a LBB0_280 + 0x48, 0x83, 0xff, 0x04, //0x0000122a cmpq $4, %rdi + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x0000122e jl LBB0_281 + //0x00001234 LBB0_287 + 0x8b, 0x01, //0x00001234 movl (%rcx), %eax + 0x89, 0x06, //0x00001236 movl %eax, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x00001238 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x0000123c addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00001240 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00001244 cmpq $2, %rdi + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00001248 jae LBB0_282 + 0xe9, 0x42, 0x00, 0x00, 0x00, //0x0000124e jmp LBB0_283 + //0x00001253 LBB0_279 + 0x48, 0x83, 0xff, 0x08, //0x00001253 cmpq $8, %rdi + 0x0f, 0x82, 0xcd, 0xff, 0xff, 0xff, //0x00001257 jb LBB0_280 + //0x0000125d LBB0_286 + 0x48, 0x8b, 0x01, //0x0000125d movq (%rcx), %rax + 0x48, 0x89, 0x06, //0x00001260 movq %rax, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x00001263 addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00001267 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x0000126b addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x0000126f cmpq $4, %rdi + 0x0f, 0x8d, 0xbb, 0xff, 0xff, 0xff, //0x00001273 jge LBB0_287 + //0x00001279 LBB0_281 + 0x48, 0x83, 0xff, 0x02, //0x00001279 cmpq $2, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000127d jb LBB0_283 + //0x00001283 LBB0_282 + 0x0f, 0xb7, 0x01, //0x00001283 movzwl (%rcx), %eax + 0x66, 0x89, 0x06, //0x00001286 movw %ax, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x00001289 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000128d addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00001291 addq $-2, %rdi + //0x00001295 LBB0_283 + 0x48, 0x89, 0xc8, //0x00001295 movq %rcx, %rax + 0x48, 0x8d, 0x4c, 0x24, 0x60, //0x00001298 leaq $96(%rsp), %rcx + 0x48, 0x85, 0xff, //0x0000129d testq %rdi, %rdi + 0x48, 0x89, 0xcf, //0x000012a0 movq %rcx, %rdi + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x000012a3 movq $40(%rsp), %r15 + 0x0f, 0x84, 0x33, 0xfd, 0xff, 0xff, //0x000012a8 je LBB0_265 + 0x8a, 0x00, //0x000012ae movb (%rax), %al + 0x88, 0x06, //0x000012b0 movb %al, (%rsi) + 0x48, 0x8d, 0x7c, 0x24, 0x60, //0x000012b2 leaq $96(%rsp), %rdi + 0xe9, 0x25, 0xfd, 0xff, 0xff, //0x000012b7 jmp LBB0_265 + //0x000012bc LBB0_288 + 0x48, 0x83, 0xc1, 0x05, //0x000012bc addq $5, %rcx + 0x49, 0x3b, 0x0b, //0x000012c0 cmpq (%r11), %rcx + 0x0f, 0x87, 0x67, 0xfa, 0xff, 0xff, //0x000012c3 ja LBB0_222 + //0x000012c9 LBB0_289 + 0x49, 0x89, 0x08, //0x000012c9 movq %rcx, (%r8) + 0x49, 0x89, 0xca, //0x000012cc movq %rcx, %r10 + 0xe9, 0x5c, 0xfa, 0xff, 0xff, //0x000012cf jmp LBB0_222 + //0x000012d4 LBB0_290 + 0x4d, 0x8b, 0x0b, //0x000012d4 movq (%r11), %r9 + 0x4d, 0x29, 0xd1, //0x000012d7 subq %r10, %r9 + 0x4c, 0x01, 0xd7, //0x000012da addq %r10, %rdi + 0x45, 0x31, 0xc0, //0x000012dd xorl %r8d, %r8d + 0x45, 0x31, 0xd2, //0x000012e0 xorl %r10d, %r10d + 0x45, 0x31, 0xdb, //0x000012e3 xorl %r11d, %r11d + 0x31, 0xd2, //0x000012e6 xorl %edx, %edx + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x000012e8 jmp LBB0_292 + //0x000012ed LBB0_291 + 0x49, 0xc1, 0xfe, 0x3f, //0x000012ed sarq $63, %r14 + 0xf3, 0x48, 0x0f, 0xb8, 0xc7, //0x000012f1 popcntq %rdi, %rax + 0x49, 0x01, 0xc3, //0x000012f6 addq %rax, %r11 + 0x4c, 0x89, 0xe7, //0x000012f9 movq %r12, %rdi + 0x48, 0x83, 0xc7, 0x40, //0x000012fc addq $64, %rdi + 0x49, 0x83, 0xc1, 0xc0, //0x00001300 addq $-64, %r9 + 0x4d, 0x89, 0xf0, //0x00001304 movq %r14, %r8 + //0x00001307 LBB0_292 + 0x49, 0x83, 0xf9, 0x40, //0x00001307 cmpq $64, %r9 + 0x0f, 0x8c, 0xab, 0x01, 0x00, 0x00, //0x0000130b jl LBB0_300 + //0x00001311 LBB0_293 + 0xc5, 0xfa, 0x6f, 0x17, //0x00001311 vmovdqu (%rdi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x77, 0x10, //0x00001315 vmovdqu $16(%rdi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x6f, 0x20, //0x0000131a vmovdqu $32(%rdi), %xmm5 + 0x49, 0x89, 0xfc, //0x0000131f movq %rdi, %r12 + 0xc5, 0xfa, 0x6f, 0x7f, 0x30, //0x00001322 vmovdqu $48(%rdi), %xmm7 + 0xc5, 0xe9, 0x74, 0xd8, //0x00001327 vpcmpeqb %xmm0, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xf3, //0x0000132b vpmovmskb %xmm3, %esi + 0xc5, 0xc9, 0x74, 0xd8, //0x0000132f vpcmpeqb %xmm0, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00001333 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd8, //0x00001337 vpcmpeqb %xmm0, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x0000133b vpmovmskb %xmm3, %edi + 0xc5, 0xc1, 0x74, 0xd8, //0x0000133f vpcmpeqb %xmm0, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00001343 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00001347 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x0000134b shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x0000134f shlq $16, %rax + 0x48, 0x09, 0xc6, //0x00001353 orq %rax, %rsi + 0x48, 0x09, 0xfe, //0x00001356 orq %rdi, %rsi + 0x48, 0x09, 0xde, //0x00001359 orq %rbx, %rsi + 0xc5, 0xe9, 0x74, 0xd9, //0x0000135c vpcmpeqb %xmm1, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00001360 vpmovmskb %xmm3, %edi + 0xc5, 0xc9, 0x74, 0xd9, //0x00001364 vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00001368 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd9, //0x0000136c vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00001370 vpmovmskb %xmm3, %ebx + 0xc5, 0xc1, 0x74, 0xd9, //0x00001374 vpcmpeqb %xmm1, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x00001378 vpmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x0000137c shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00001380 shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001384 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001388 orq %rax, %rdi + 0x48, 0x09, 0xdf, //0x0000138b orq %rbx, %rdi + 0x48, 0x09, 0xcf, //0x0000138e orq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x00001391 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00001394 orq %r10, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00001397 je LBB0_295 + 0x4c, 0x89, 0xd0, //0x0000139d movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000013a0 notq %rax + 0x48, 0x21, 0xf8, //0x000013a3 andq %rdi, %rax + 0x4c, 0x8d, 0x34, 0x00, //0x000013a6 leaq (%rax,%rax), %r14 + 0x4d, 0x09, 0xd6, //0x000013aa orq %r10, %r14 + 0x4c, 0x89, 0xf1, //0x000013ad movq %r14, %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000013b0 movabsq $-6148914691236517206, %rbx + 0x48, 0x31, 0xd9, //0x000013ba xorq %rbx, %rcx + 0x48, 0x21, 0xdf, //0x000013bd andq %rbx, %rdi + 0x48, 0x21, 0xcf, //0x000013c0 andq %rcx, %rdi + 0x45, 0x31, 0xd2, //0x000013c3 xorl %r10d, %r10d + 0x48, 0x01, 0xc7, //0x000013c6 addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x000013c9 setb %r10b + 0x48, 0x01, 0xff, //0x000013cd addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000013d0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x000013da xorq %rax, %rdi + 0x4c, 0x21, 0xf7, //0x000013dd andq %r14, %rdi + 0x48, 0xf7, 0xd7, //0x000013e0 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000013e3 jmp LBB0_296 + //0x000013e8 LBB0_295 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000013e8 movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x000013ef xorl %r10d, %r10d + //0x000013f2 LBB0_296 + 0x48, 0x21, 0xf7, //0x000013f2 andq %rsi, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xdf, //0x000013f5 vmovq %rdi, %xmm3 + 0xc4, 0xc3, 0x61, 0x44, 0xd9, 0x00, //0x000013fa vpclmulqdq $0, %xmm9, %xmm3, %xmm3 + 0xc4, 0xc1, 0xf9, 0x7e, 0xde, //0x00001400 vmovq %xmm3, %r14 + 0x4d, 0x31, 0xc6, //0x00001405 xorq %r8, %r14 + 0xc5, 0x99, 0x74, 0xda, //0x00001408 vpcmpeqb %xmm2, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x0000140c vpmovmskb %xmm3, %edi + 0xc5, 0x99, 0x74, 0xde, //0x00001410 vpcmpeqb %xmm6, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00001414 vpmovmskb %xmm3, %eax + 0xc5, 0x99, 0x74, 0xdd, //0x00001418 vpcmpeqb %xmm5, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x0000141c vpmovmskb %xmm3, %ecx + 0xc5, 0x99, 0x74, 0xdf, //0x00001420 vpcmpeqb %xmm7, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00001424 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00001428 shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x0000142c shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00001430 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001434 orq %rax, %rdi + 0x48, 0x09, 0xcf, //0x00001437 orq %rcx, %rdi + 0x48, 0x09, 0xdf, //0x0000143a orq %rbx, %rdi + 0x4d, 0x89, 0xf0, //0x0000143d movq %r14, %r8 + 0x49, 0xf7, 0xd0, //0x00001440 notq %r8 + 0x4c, 0x21, 0xc7, //0x00001443 andq %r8, %rdi + 0xc5, 0x91, 0x74, 0xd2, //0x00001446 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x0000144a vpmovmskb %xmm2, %eax + 0xc5, 0x91, 0x74, 0xd6, //0x0000144e vpcmpeqb %xmm6, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00001452 vpmovmskb %xmm2, %ebx + 0xc5, 0x91, 0x74, 0xd5, //0x00001456 vpcmpeqb %xmm5, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x0000145a vpmovmskb %xmm2, %esi + 0xc5, 0x91, 0x74, 0xd7, //0x0000145e vpcmpeqb %xmm7, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00001462 vpmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00001466 shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x0000146a shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x0000146e shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x00001472 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x00001475 orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x00001478 orq %rcx, %rax + 0x4c, 0x21, 0xc0, //0x0000147b andq %r8, %rax + 0x0f, 0x84, 0x69, 0xfe, 0xff, 0xff, //0x0000147e je LBB0_291 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001484 movq $24(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001489 .p2align 4, 0x90 + //0x00001490 LBB0_298 + 0x48, 0x8d, 0x58, 0xff, //0x00001490 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00001494 movq %rbx, %rcx + 0x48, 0x21, 0xf9, //0x00001497 andq %rdi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x0000149a popcntq %rcx, %rcx + 0x4c, 0x01, 0xd9, //0x0000149f addq %r11, %rcx + 0x48, 0x39, 0xd1, //0x000014a2 cmpq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x01, 0x00, 0x00, //0x000014a5 jbe LBB0_316 + 0x48, 0xff, 0xc2, //0x000014ab incq %rdx + 0x48, 0x21, 0xd8, //0x000014ae andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000014b1 jne LBB0_298 + 0xe9, 0x31, 0xfe, 0xff, 0xff, //0x000014b7 jmp LBB0_291 + //0x000014bc LBB0_300 + 0x4d, 0x85, 0xc9, //0x000014bc testq %r9, %r9 + 0x0f, 0x8e, 0x2c, 0x08, 0x00, 0x00, //0x000014bf jle LBB0_338 + 0x48, 0x89, 0xf9, //0x000014c5 movq %rdi, %rcx + 0xc5, 0x7e, 0x7f, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, //0x000014c8 vmovdqu %ymm8, $128(%rsp) + 0xc5, 0x7e, 0x7f, 0x44, 0x24, 0x60, //0x000014d1 vmovdqu %ymm8, $96(%rsp) + 0x89, 0xc8, //0x000014d7 movl %ecx, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x000014d9 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x000014de cmpl $4033, %eax + 0x0f, 0x82, 0x34, 0x00, 0x00, 0x00, //0x000014e3 jb LBB0_304 + 0x49, 0x83, 0xf9, 0x20, //0x000014e9 cmpq $32, %r9 + 0x0f, 0x82, 0x37, 0x00, 0x00, 0x00, //0x000014ed jb LBB0_305 + 0xc5, 0xf8, 0x10, 0x11, //0x000014f3 vmovups (%rcx), %xmm2 + 0xc5, 0xf8, 0x11, 0x54, 0x24, 0x60, //0x000014f7 vmovups %xmm2, $96(%rsp) + 0xc5, 0xfa, 0x6f, 0x51, 0x10, //0x000014fd vmovdqu $16(%rcx), %xmm2 + 0xc5, 0xfa, 0x7f, 0x54, 0x24, 0x70, //0x00001502 vmovdqu %xmm2, $112(%rsp) + 0x48, 0x83, 0xc1, 0x20, //0x00001508 addq $32, %rcx + 0x49, 0x8d, 0x79, 0xe0, //0x0000150c leaq $-32(%r9), %rdi + 0x48, 0x8d, 0xb4, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00001510 leaq $128(%rsp), %rsi + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00001518 jmp LBB0_306 + //0x0000151d LBB0_304 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x0000151d movq $40(%rsp), %r15 + 0x48, 0x89, 0xcf, //0x00001522 movq %rcx, %rdi + 0xe9, 0xe7, 0xfd, 0xff, 0xff, //0x00001525 jmp LBB0_293 + //0x0000152a LBB0_305 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x0000152a leaq $96(%rsp), %rsi + 0x4c, 0x89, 0xcf, //0x0000152f movq %r9, %rdi + //0x00001532 LBB0_306 + 0x48, 0x83, 0xff, 0x10, //0x00001532 cmpq $16, %rdi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00001536 jb LBB0_307 + 0xc5, 0xfa, 0x6f, 0x11, //0x0000153c vmovdqu (%rcx), %xmm2 + 0xc5, 0xfa, 0x7f, 0x16, //0x00001540 vmovdqu %xmm2, (%rsi) + 0x48, 0x83, 0xc1, 0x10, //0x00001544 addq $16, %rcx + 0x48, 0x83, 0xc6, 0x10, //0x00001548 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x0000154c addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00001550 cmpq $8, %rdi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00001554 jae LBB0_314 + //0x0000155a LBB0_308 + 0x48, 0x83, 0xff, 0x04, //0x0000155a cmpq $4, %rdi + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x0000155e jl LBB0_309 + //0x00001564 LBB0_315 + 0x8b, 0x01, //0x00001564 movl (%rcx), %eax + 0x89, 0x06, //0x00001566 movl %eax, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x00001568 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x0000156c addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00001570 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00001574 cmpq $2, %rdi + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00001578 jae LBB0_310 + 0xe9, 0x42, 0x00, 0x00, 0x00, //0x0000157e jmp LBB0_311 + //0x00001583 LBB0_307 + 0x48, 0x83, 0xff, 0x08, //0x00001583 cmpq $8, %rdi + 0x0f, 0x82, 0xcd, 0xff, 0xff, 0xff, //0x00001587 jb LBB0_308 + //0x0000158d LBB0_314 + 0x48, 0x8b, 0x01, //0x0000158d movq (%rcx), %rax + 0x48, 0x89, 0x06, //0x00001590 movq %rax, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x00001593 addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00001597 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x0000159b addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x0000159f cmpq $4, %rdi + 0x0f, 0x8d, 0xbb, 0xff, 0xff, 0xff, //0x000015a3 jge LBB0_315 + //0x000015a9 LBB0_309 + 0x48, 0x83, 0xff, 0x02, //0x000015a9 cmpq $2, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000015ad jb LBB0_311 + //0x000015b3 LBB0_310 + 0x0f, 0xb7, 0x01, //0x000015b3 movzwl (%rcx), %eax + 0x66, 0x89, 0x06, //0x000015b6 movw %ax, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x000015b9 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x000015bd addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x000015c1 addq $-2, %rdi + //0x000015c5 LBB0_311 + 0x48, 0x89, 0xc8, //0x000015c5 movq %rcx, %rax + 0x48, 0x8d, 0x4c, 0x24, 0x60, //0x000015c8 leaq $96(%rsp), %rcx + 0x48, 0x85, 0xff, //0x000015cd testq %rdi, %rdi + 0x48, 0x89, 0xcf, //0x000015d0 movq %rcx, %rdi + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x000015d3 movq $40(%rsp), %r15 + 0x0f, 0x84, 0x33, 0xfd, 0xff, 0xff, //0x000015d8 je LBB0_293 + 0x8a, 0x00, //0x000015de movb (%rax), %al + 0x88, 0x06, //0x000015e0 movb %al, (%rsi) + 0x48, 0x8d, 0x7c, 0x24, 0x60, //0x000015e2 leaq $96(%rsp), %rdi + 0xe9, 0x25, 0xfd, 0xff, 0xff, //0x000015e7 jmp LBB0_293 + //0x000015ec LBB0_316 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x000015ec movq $56(%rsp), %r11 + 0x49, 0x8b, 0x0b, //0x000015f1 movq (%r11), %rcx + 0x48, 0x0f, 0xbc, 0xc0, //0x000015f4 bsfq %rax, %rax + 0x4c, 0x29, 0xc8, //0x000015f8 subq %r9, %rax + 0x4c, 0x8d, 0x54, 0x08, 0x01, //0x000015fb leaq $1(%rax,%rcx), %r10 + 0x4d, 0x89, 0x10, //0x00001600 movq %r10, (%r8) + 0x49, 0x8b, 0x03, //0x00001603 movq (%r11), %rax + 0x49, 0x39, 0xc2, //0x00001606 cmpq %rax, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00001609 cmovaq %rax, %r10 + 0x4d, 0x89, 0x10, //0x0000160d movq %r10, (%r8) + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001610 movabsq $4294977024, %r9 + 0xe9, 0x11, 0xf7, 0xff, 0xff, //0x0000161a jmp LBB0_222 + //0x0000161f LBB0_68 + 0x48, 0x8b, 0x8c, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x0000161f movq $168(%rsp), %rcx + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001627 movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x6c, 0x24, 0x58, //0x0000162c movq $88(%rsp), %r13 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001631 movq $56(%rsp), %r11 + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00001636 movq $48(%rsp), %r12 + 0x4c, 0x8b, 0x54, 0x24, 0x50, //0x0000163b movq $80(%rsp), %r10 + 0x48, 0x83, 0xf9, 0x20, //0x00001640 cmpq $32, %rcx + 0x0f, 0x82, 0xaa, 0x00, 0x00, 0x00, //0x00001644 jb LBB0_106 + //0x0000164a LBB0_69 + 0xc4, 0xc1, 0x7a, 0x6f, 0x12, //0x0000164a vmovdqu (%r10), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x5a, 0x10, //0x0000164f vmovdqu $16(%r10), %xmm3 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001655 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0x79, 0xd7, 0xcd, //0x00001659 vpmovmskb %xmm5, %r9d + 0xc5, 0xe1, 0x74, 0xe8, //0x0000165d vpcmpeqb %xmm0, %xmm3, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001661 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xd1, //0x00001665 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001669 vpmovmskb %xmm2, %edi + 0xc5, 0xe1, 0x74, 0xd1, //0x0000166d vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001671 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe6, 0x10, //0x00001675 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00001679 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x0000167d orq %rax, %rdi + 0x49, 0x83, 0xf8, 0xff, //0x00001680 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001684 jne LBB0_71 + 0x48, 0x85, 0xff, //0x0000168a testq %rdi, %rdi + 0x0f, 0x85, 0xdc, 0x04, 0x00, 0x00, //0x0000168d jne LBB0_324 + //0x00001693 LBB0_71 + 0x4c, 0x09, 0xce, //0x00001693 orq %r9, %rsi + 0x48, 0x89, 0xf8, //0x00001696 movq %rdi, %rax + 0x48, 0x09, 0xd8, //0x00001699 orq %rbx, %rax + 0x0f, 0x85, 0xeb, 0x04, 0x00, 0x00, //0x0000169c jne LBB0_325 + //0x000016a2 LBB0_72 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000016a2 movabsq $4294977024, %r9 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x000016ac movq $32(%rsp), %rdi + 0x48, 0x85, 0xf6, //0x000016b1 testq %rsi, %rsi + 0x0f, 0x84, 0x23, 0x05, 0x00, 0x00, //0x000016b4 je LBB0_326 + //0x000016ba LBB0_73 + 0x48, 0x0f, 0xbc, 0xc6, //0x000016ba bsfq %rsi, %rax + 0x49, 0x29, 0xfa, //0x000016be subq %rdi, %r10 + 0x4d, 0x8d, 0x54, 0x02, 0x01, //0x000016c1 leaq $1(%r10,%rax), %r10 + 0x48, 0x8b, 0x74, 0x24, 0x48, //0x000016c6 movq $72(%rsp), %rsi + 0x4d, 0x85, 0xd2, //0x000016cb testq %r10, %r10 + 0x48, 0x8b, 0x9c, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x000016ce movq $176(%rsp), %rbx + 0x0f, 0x89, 0xa9, 0xf0, 0xff, 0xff, //0x000016d6 jns LBB0_79 + 0xe9, 0x5e, 0x36, 0x00, 0x00, //0x000016dc jmp LBB0_937 + //0x000016e1 LBB0_105 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000016e1 movq $-1, %r8 + 0x31, 0xdb, //0x000016e8 xorl %ebx, %ebx + 0x48, 0x83, 0xf9, 0x20, //0x000016ea cmpq $32, %rcx + 0x0f, 0x83, 0x56, 0xff, 0xff, 0xff, //0x000016ee jae LBB0_69 + //0x000016f4 LBB0_106 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x000016f4 movq $32(%rsp), %rdi + 0xe9, 0xe7, 0x04, 0x00, 0x00, //0x000016f9 jmp LBB0_327 + //0x000016fe LBB0_107 + 0x48, 0xc7, 0x44, 0x24, 0x60, 0x00, 0x00, 0x00, 0x00, //0x000016fe movq $0, $96(%rsp) + 0x4e, 0x8d, 0x4c, 0x17, 0xff, //0x00001707 leaq $-1(%rdi,%r10), %r9 + 0x4d, 0x8d, 0x1c, 0x34, //0x0000170c leaq (%r12,%rsi), %r11 + 0x48, 0x85, 0xf6, //0x00001710 testq %rsi, %rsi + 0x0f, 0x8e, 0x10, 0x04, 0x00, 0x00, //0x00001713 jle LBB0_151 + 0x49, 0x39, 0xd9, //0x00001719 cmpq %rbx, %r9 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x0000171c movq $24(%rsp), %r8 + 0x0f, 0x86, 0x07, 0x04, 0x00, 0x00, //0x00001721 jbe LBB0_152 + //0x00001727 LBB0_109 + 0x8a, 0x03, //0x00001727 movb (%rbx), %al + 0x3c, 0x5c, //0x00001729 cmpb $92, %al + 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x0000172b jne LBB0_114 + 0x4c, 0x89, 0xcf, //0x00001731 movq %r9, %rdi + 0x48, 0x29, 0xdf, //0x00001734 subq %rbx, %rdi + 0x48, 0x85, 0xff, //0x00001737 testq %rdi, %rdi + 0x0f, 0x8e, 0xff, 0x37, 0x00, 0x00, //0x0000173a jle LBB0_958 + 0x49, 0x89, 0xde, //0x00001740 movq %rbx, %r14 + 0x0f, 0xb6, 0x43, 0x01, //0x00001743 movzbl $1(%rbx), %eax + 0x48, 0x8d, 0x0d, 0x22, 0x42, 0x00, 0x00, //0x00001747 leaq $16930(%rip), %rcx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x1c, 0x08, //0x0000174e movb (%rax,%rcx), %bl + 0x80, 0xfb, 0xff, //0x00001751 cmpb $-1, %bl + 0x0f, 0x84, 0x9b, 0x00, 0x00, 0x00, //0x00001754 je LBB0_116 + 0x84, 0xdb, //0x0000175a testb %bl, %bl + 0x0f, 0x84, 0xc5, 0x37, 0x00, 0x00, //0x0000175c je LBB0_956 + 0x88, 0x5c, 0x24, 0x60, //0x00001762 movb %bl, $96(%rsp) + 0x49, 0x83, 0xc6, 0x02, //0x00001766 addq $2, %r14 + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000176a movl $1, %edi + 0x48, 0x8d, 0x44, 0x3c, 0x60, //0x0000176f leaq $96(%rsp,%rdi), %rax + 0x4d, 0x39, 0xdc, //0x00001774 cmpq %r11, %r12 + 0x0f, 0x83, 0x7f, 0x01, 0x00, 0x00, //0x00001777 jae LBB0_146 + //0x0000177d LBB0_126 + 0x48, 0x8d, 0x4c, 0x24, 0x60, //0x0000177d leaq $96(%rsp), %rcx + 0x48, 0x39, 0xc8, //0x00001782 cmpq %rcx, %rax + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00001785 movq $32(%rsp), %rdi + 0x0f, 0x86, 0x7b, 0x01, 0x00, 0x00, //0x0000178a jbe LBB0_133 + 0x41, 0x38, 0x1c, 0x24, //0x00001790 cmpb %bl, (%r12) + 0x0f, 0x85, 0x71, 0x01, 0x00, 0x00, //0x00001794 jne LBB0_133 + 0x49, 0xff, 0xc4, //0x0000179a incq %r12 + 0x48, 0x8d, 0x4c, 0x24, 0x61, //0x0000179d leaq $97(%rsp), %rcx + 0x4c, 0x89, 0xe7, //0x000017a2 movq %r12, %rdi + 0x4c, 0x89, 0xf3, //0x000017a5 movq %r14, %rbx + //0x000017a8 LBB0_129 + 0x49, 0x89, 0xfc, //0x000017a8 movq %rdi, %r12 + 0x48, 0x89, 0xce, //0x000017ab movq %rcx, %rsi + 0x48, 0x39, 0xc1, //0x000017ae cmpq %rax, %rcx + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000017b1 jae LBB0_132 + 0x4d, 0x39, 0xdc, //0x000017b7 cmpq %r11, %r12 + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x000017ba jae LBB0_132 + 0x41, 0x0f, 0xb6, 0x14, 0x24, //0x000017c0 movzbl (%r12), %edx + 0x49, 0x8d, 0x7c, 0x24, 0x01, //0x000017c5 leaq $1(%r12), %rdi + 0x48, 0x8d, 0x4e, 0x01, //0x000017ca leaq $1(%rsi), %rcx + 0x3a, 0x16, //0x000017ce cmpb (%rsi), %dl + 0x0f, 0x84, 0xd2, 0xff, 0xff, 0xff, //0x000017d0 je LBB0_129 + //0x000017d6 LBB0_132 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x000017d6 movq $32(%rsp), %rdi + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x000017db jmp LBB0_148 + //0x000017e0 LBB0_114 + 0x41, 0x3a, 0x04, 0x24, //0x000017e0 cmpb (%r12), %al + 0x0f, 0x85, 0x75, 0x03, 0x00, 0x00, //0x000017e4 jne LBB0_322 + 0x48, 0xff, 0xc3, //0x000017ea incq %rbx + 0x49, 0xff, 0xc4, //0x000017ed incq %r12 + 0xe9, 0x27, 0x01, 0x00, 0x00, //0x000017f0 jmp LBB0_149 + //0x000017f5 LBB0_116 + 0x48, 0x83, 0xff, 0x03, //0x000017f5 cmpq $3, %rdi + 0x0f, 0x8e, 0x3a, 0x37, 0x00, 0x00, //0x000017f9 jle LBB0_957 + 0x41, 0x8b, 0x4e, 0x02, //0x000017ff movl $2(%r14), %ecx + 0x89, 0xce, //0x00001803 movl %ecx, %esi + 0xf7, 0xd6, //0x00001805 notl %esi + 0x8d, 0x81, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001807 leal $-808464432(%rcx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000180d andl $-2139062144, %esi + 0x85, 0xc6, //0x00001813 testl %eax, %esi + 0x0f, 0x85, 0x72, 0x36, 0x00, 0x00, //0x00001815 jne LBB0_954 + 0x8d, 0x81, 0x19, 0x19, 0x19, 0x19, //0x0000181b leal $421075225(%rcx), %eax + 0x09, 0xc8, //0x00001821 orl %ecx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001823 testl $-2139062144, %eax + 0x0f, 0x85, 0x5f, 0x36, 0x00, 0x00, //0x00001828 jne LBB0_954 + 0x89, 0xc8, //0x0000182e movl %ecx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001830 andl $2139062143, %eax + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001835 movl $-1061109568, %ebx + 0x29, 0xc3, //0x0000183a subl %eax, %ebx + 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x0000183c leal $1179010630(%rax), %edx + 0x21, 0xf3, //0x00001842 andl %esi, %ebx + 0x85, 0xd3, //0x00001844 testl %edx, %ebx + 0x0f, 0x85, 0x41, 0x36, 0x00, 0x00, //0x00001846 jne LBB0_954 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000184c movl $-522133280, %edx + 0x29, 0xc2, //0x00001851 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001853 addl $960051513, %eax + 0x21, 0xd6, //0x00001858 andl %edx, %esi + 0x85, 0xc6, //0x0000185a testl %eax, %esi + 0x0f, 0x85, 0x2b, 0x36, 0x00, 0x00, //0x0000185c jne LBB0_954 + 0x0f, 0xc9, //0x00001862 bswapl %ecx + 0x89, 0xc8, //0x00001864 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00001866 shrl $4, %eax + 0xf7, 0xd0, //0x00001869 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000186b andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00001870 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001873 andl $252645135, %ecx + 0x01, 0xc1, //0x00001879 addl %eax, %ecx + 0x89, 0xcb, //0x0000187b movl %ecx, %ebx + 0xc1, 0xeb, 0x04, //0x0000187d shrl $4, %ebx + 0x09, 0xcb, //0x00001880 orl %ecx, %ebx + 0x89, 0xde, //0x00001882 movl %ebx, %esi + 0xc1, 0xee, 0x08, //0x00001884 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001887 andl $65280, %esi + 0x0f, 0xb6, 0xc3, //0x0000188d movzbl %bl, %eax + 0x09, 0xf0, //0x00001890 orl %esi, %eax + 0x4d, 0x8d, 0x46, 0x06, //0x00001892 leaq $6(%r14), %r8 + 0x83, 0xf8, 0x7f, //0x00001896 cmpl $127, %eax + 0x0f, 0x86, 0x94, 0x00, 0x00, 0x00, //0x00001899 jbe LBB0_134 + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000189f cmpl $2047, %eax + 0x0f, 0x86, 0x97, 0x00, 0x00, 0x00, //0x000018a4 jbe LBB0_135 + 0x89, 0xd9, //0x000018aa movl %ebx, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x000018ac andl $16252928, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x000018b2 cmpl $14155776, %ecx + 0x0f, 0x84, 0xa2, 0x00, 0x00, 0x00, //0x000018b8 je LBB0_136 + 0xc1, 0xee, 0x0c, //0x000018be shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x000018c1 orb $-32, %sil + 0x40, 0x88, 0x74, 0x24, 0x60, //0x000018c5 movb %sil, $96(%rsp) + 0xc1, 0xe8, 0x06, //0x000018ca shrl $6, %eax + 0x24, 0x3f, //0x000018cd andb $63, %al + 0x0c, 0x80, //0x000018cf orb $-128, %al + 0x88, 0x44, 0x24, 0x61, //0x000018d1 movb %al, $97(%rsp) + 0x80, 0xe3, 0x3f, //0x000018d5 andb $63, %bl + 0x80, 0xcb, 0x80, //0x000018d8 orb $-128, %bl + 0x88, 0x5c, 0x24, 0x62, //0x000018db movb %bl, $98(%rsp) + 0xbf, 0x03, 0x00, 0x00, 0x00, //0x000018df movl $3, %edi + 0x89, 0xf3, //0x000018e4 movl %esi, %ebx + //0x000018e6 LBB0_125 + 0x4d, 0x89, 0xc6, //0x000018e6 movq %r8, %r14 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000018e9 movq $24(%rsp), %r8 + 0x48, 0x8d, 0x44, 0x3c, 0x60, //0x000018ee leaq $96(%rsp,%rdi), %rax + 0x4d, 0x39, 0xdc, //0x000018f3 cmpq %r11, %r12 + 0x0f, 0x82, 0x81, 0xfe, 0xff, 0xff, //0x000018f6 jb LBB0_126 + //0x000018fc LBB0_146 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x000018fc leaq $96(%rsp), %rsi + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00001901 movq $32(%rsp), %rdi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00001906 jmp LBB0_147 + //0x0000190b LBB0_133 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x0000190b leaq $96(%rsp), %rsi + //0x00001910 LBB0_147 + 0x4c, 0x89, 0xf3, //0x00001910 movq %r14, %rbx + //0x00001913 LBB0_148 + 0x48, 0x39, 0xc6, //0x00001913 cmpq %rax, %rsi + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x00001916 jne LBB0_322 + //0x0000191c LBB0_149 + 0x49, 0x39, 0xd9, //0x0000191c cmpq %rbx, %r9 + 0x0f, 0x86, 0x09, 0x02, 0x00, 0x00, //0x0000191f jbe LBB0_152 + 0x4d, 0x39, 0xdc, //0x00001925 cmpq %r11, %r12 + 0x0f, 0x82, 0xf9, 0xfd, 0xff, 0xff, //0x00001928 jb LBB0_109 + 0xe9, 0xfb, 0x01, 0x00, 0x00, //0x0000192e jmp LBB0_152 + //0x00001933 LBB0_134 + 0x88, 0x5c, 0x24, 0x60, //0x00001933 movb %bl, $96(%rsp) + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00001937 movl $1, %edi + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x0000193c jmp LBB0_125 + //0x00001941 LBB0_135 + 0xc1, 0xe8, 0x06, //0x00001941 shrl $6, %eax + 0x0c, 0xc0, //0x00001944 orb $-64, %al + 0x88, 0x44, 0x24, 0x60, //0x00001946 movb %al, $96(%rsp) + 0x80, 0xe3, 0x3f, //0x0000194a andb $63, %bl + 0x80, 0xcb, 0x80, //0x0000194d orb $-128, %bl + 0x88, 0x5c, 0x24, 0x61, //0x00001950 movb %bl, $97(%rsp) + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00001954 movl $2, %edi + 0x89, 0xc3, //0x00001959 movl %eax, %ebx + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x0000195b jmp LBB0_125 + //0x00001960 LBB0_136 + 0x48, 0x83, 0xff, 0x06, //0x00001960 cmpq $6, %rdi + 0x0f, 0x8c, 0x0a, 0x36, 0x00, 0x00, //0x00001964 jl LBB0_963 + 0x3d, 0xff, 0xdb, 0x00, 0x00, //0x0000196a cmpl $56319, %eax + 0x0f, 0x87, 0xff, 0x35, 0x00, 0x00, //0x0000196f ja LBB0_963 + 0x41, 0x80, 0x38, 0x5c, //0x00001975 cmpb $92, (%r8) + 0x0f, 0x85, 0xf5, 0x35, 0x00, 0x00, //0x00001979 jne LBB0_963 + 0x41, 0x80, 0x7e, 0x07, 0x75, //0x0000197f cmpb $117, $7(%r14) + 0x0f, 0x85, 0xea, 0x35, 0x00, 0x00, //0x00001984 jne LBB0_963 + 0x4c, 0x89, 0xf1, //0x0000198a movq %r14, %rcx + 0x4d, 0x8d, 0x46, 0x08, //0x0000198d leaq $8(%r14), %r8 + 0x41, 0x8b, 0x7e, 0x08, //0x00001991 movl $8(%r14), %edi + 0x89, 0xfb, //0x00001995 movl %edi, %ebx + 0xf7, 0xd3, //0x00001997 notl %ebx + 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001999 leal $-808464432(%rdi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x0000199f andl $-2139062144, %ebx + 0x85, 0xcb, //0x000019a5 testl %ecx, %ebx + 0x0f, 0x85, 0xd3, 0x35, 0x00, 0x00, //0x000019a7 jne LBB0_964 + 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x000019ad leal $421075225(%rdi), %ecx + 0x09, 0xf9, //0x000019b3 orl %edi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000019b5 testl $-2139062144, %ecx + 0x0f, 0x85, 0xbf, 0x35, 0x00, 0x00, //0x000019bb jne LBB0_964 + 0x89, 0xf9, //0x000019c1 movl %edi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x000019c3 andl $2139062143, %ecx + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x000019c9 movl $-1061109568, %edx + 0x29, 0xca, //0x000019ce subl %ecx, %edx + 0x8d, 0xb1, 0x46, 0x46, 0x46, 0x46, //0x000019d0 leal $1179010630(%rcx), %esi + 0x21, 0xda, //0x000019d6 andl %ebx, %edx + 0x85, 0xf2, //0x000019d8 testl %esi, %edx + 0x0f, 0x85, 0xa0, 0x35, 0x00, 0x00, //0x000019da jne LBB0_964 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x000019e0 movl $-522133280, %edx + 0x29, 0xca, //0x000019e5 subl %ecx, %edx + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x000019e7 addl $960051513, %ecx + 0x21, 0xd3, //0x000019ed andl %edx, %ebx + 0x85, 0xcb, //0x000019ef testl %ecx, %ebx + 0x0f, 0x85, 0x89, 0x35, 0x00, 0x00, //0x000019f1 jne LBB0_964 + 0x0f, 0xcf, //0x000019f7 bswapl %edi + 0x89, 0xf9, //0x000019f9 movl %edi, %ecx + 0xc1, 0xe9, 0x04, //0x000019fb shrl $4, %ecx + 0xf7, 0xd1, //0x000019fe notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001a00 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001a06 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001a09 andl $252645135, %edi + 0x01, 0xcf, //0x00001a0f addl %ecx, %edi + 0x89, 0xf9, //0x00001a11 movl %edi, %ecx + 0xc1, 0xe9, 0x04, //0x00001a13 shrl $4, %ecx + 0x09, 0xf9, //0x00001a16 orl %edi, %ecx + 0x89, 0xca, //0x00001a18 movl %ecx, %edx + 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00001a1a andl $16515072, %edx + 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x00001a20 cmpl $14417920, %edx + 0x0f, 0x85, 0x48, 0x35, 0x00, 0x00, //0x00001a26 jne LBB0_963 + 0x89, 0xca, //0x00001a2c movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x00001a2e shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00001a31 andl $65280, %edx + 0x0f, 0xb6, 0xc9, //0x00001a37 movzbl %cl, %ecx + 0x09, 0xd1, //0x00001a3a orl %edx, %ecx + 0xc1, 0xe0, 0x0a, //0x00001a3c shll $10, %eax + 0x8d, 0x84, 0x08, 0x00, 0x24, 0xa0, 0xfc, //0x00001a3f leal $-56613888(%rax,%rcx), %eax + 0x89, 0xc3, //0x00001a46 movl %eax, %ebx + 0xc1, 0xeb, 0x12, //0x00001a48 shrl $18, %ebx + 0x80, 0xcb, 0xf0, //0x00001a4b orb $-16, %bl + 0x88, 0x5c, 0x24, 0x60, //0x00001a4e movb %bl, $96(%rsp) + 0x89, 0xc1, //0x00001a52 movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x00001a54 shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x00001a57 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001a5a orb $-128, %cl + 0x88, 0x4c, 0x24, 0x61, //0x00001a5d movb %cl, $97(%rsp) + 0x89, 0xc1, //0x00001a61 movl %eax, %ecx + 0xc1, 0xe9, 0x06, //0x00001a63 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00001a66 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001a69 orb $-128, %cl + 0x88, 0x4c, 0x24, 0x62, //0x00001a6c movb %cl, $98(%rsp) + 0x24, 0x3f, //0x00001a70 andb $63, %al + 0x0c, 0x80, //0x00001a72 orb $-128, %al + 0x88, 0x44, 0x24, 0x63, //0x00001a74 movb %al, $99(%rsp) + 0x49, 0x83, 0xc6, 0x0c, //0x00001a78 addq $12, %r14 + 0xbf, 0x04, 0x00, 0x00, 0x00, //0x00001a7c movl $4, %edi + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001a81 movq $24(%rsp), %r8 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001a86 movq $40(%rsp), %r15 + 0x48, 0x8d, 0x44, 0x3c, 0x60, //0x00001a8b leaq $96(%rsp,%rdi), %rax + 0x4d, 0x39, 0xdc, //0x00001a90 cmpq %r11, %r12 + 0x0f, 0x82, 0xe4, 0xfc, 0xff, 0xff, //0x00001a93 jb LBB0_126 + 0xe9, 0x5e, 0xfe, 0xff, 0xff, //0x00001a99 jmp LBB0_146 + //0x00001a9e LBB0_258 + 0x4d, 0x85, 0xdb, //0x00001a9e testq %r11, %r11 + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00001aa1 jne LBB0_339 + 0x4a, 0x8d, 0x4c, 0x08, 0x01, //0x00001aa7 leaq $1(%rax,%r9), %rcx + 0x48, 0xf7, 0xd0, //0x00001aac notq %rax + 0x4c, 0x01, 0xc0, //0x00001aaf addq %r8, %rax + //0x00001ab2 LBB0_260 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001ab2 movq $56(%rsp), %r11 + //0x00001ab7 LBB0_261 + 0x48, 0x85, 0xc0, //0x00001ab7 testq %rax, %rax + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001aba movq $24(%rsp), %r8 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001abf movabsq $4294977024, %r9 + 0x0f, 0x8f, 0x1d, 0x00, 0x00, 0x00, //0x00001ac9 jg LBB0_318 + 0xe9, 0x5c, 0xf2, 0xff, 0xff, //0x00001acf jmp LBB0_222 + //0x00001ad4 LBB0_317 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00001ad4 movq $-2, %rdx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00001adb movl $2, %esi + 0x48, 0x01, 0xf1, //0x00001ae0 addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00001ae3 addq %rdx, %rax + 0x0f, 0x8e, 0x44, 0xf2, 0xff, 0xff, //0x00001ae6 jle LBB0_222 + //0x00001aec LBB0_318 + 0x0f, 0xb6, 0x11, //0x00001aec movzbl (%rcx), %edx + 0x80, 0xfa, 0x5c, //0x00001aef cmpb $92, %dl + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00001af2 je LBB0_317 + 0x80, 0xfa, 0x22, //0x00001af8 cmpb $34, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00001afb je LBB0_321 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00001b01 movq $-1, %rdx + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00001b08 movl $1, %esi + 0x48, 0x01, 0xf1, //0x00001b0d addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00001b10 addq %rdx, %rax + 0x0f, 0x8f, 0xd3, 0xff, 0xff, 0xff, //0x00001b13 jg LBB0_318 + 0xe9, 0x12, 0xf2, 0xff, 0xff, //0x00001b19 jmp LBB0_222 + //0x00001b1e LBB0_321 + 0x48, 0x29, 0xf9, //0x00001b1e subq %rdi, %rcx + 0x48, 0xff, 0xc1, //0x00001b21 incq %rcx + 0xe9, 0xa0, 0xf7, 0xff, 0xff, //0x00001b24 jmp LBB0_289 + //0x00001b29 LBB0_151 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001b29 movq $24(%rsp), %r8 + //0x00001b2e LBB0_152 + 0x49, 0x31, 0xd9, //0x00001b2e xorq %rbx, %r9 + 0x4d, 0x31, 0xdc, //0x00001b31 xorq %r11, %r12 + 0x31, 0xd2, //0x00001b34 xorl %edx, %edx + 0x4d, 0x09, 0xcc, //0x00001b36 orq %r9, %r12 + 0x0f, 0x94, 0xc2, //0x00001b39 sete %dl + //0x00001b3c LBB0_153 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001b3c movq $56(%rsp), %r11 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001b41 movabsq $4294977024, %r9 + 0x49, 0x8b, 0x0b, //0x00001b4b movq (%r11), %rcx + 0x4c, 0x89, 0xd6, //0x00001b4e movq %r10, %rsi + 0x48, 0x29, 0xce, //0x00001b51 subq %rcx, %rsi + 0x0f, 0x82, 0xc5, 0xed, 0xff, 0xff, //0x00001b54 jb LBB0_101 + 0xe9, 0x21, 0xee, 0xff, 0xff, //0x00001b5a jmp LBB0_154 + //0x00001b5f LBB0_322 + 0x31, 0xd2, //0x00001b5f xorl %edx, %edx + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00001b61 jmp LBB0_153 + //0x00001b66 LBB0_323 + 0x4a, 0x8d, 0x0c, 0x17, //0x00001b66 leaq (%rdi,%r10), %rcx + 0xe9, 0x43, 0xff, 0xff, 0xff, //0x00001b6a jmp LBB0_260 + //0x00001b6f LBB0_324 + 0x4c, 0x89, 0xd0, //0x00001b6f movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x20, //0x00001b72 subq $32(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xc7, //0x00001b77 bsfq %rdi, %r8 + 0x49, 0x01, 0xc0, //0x00001b7b addq %rax, %r8 + 0x4c, 0x09, 0xce, //0x00001b7e orq %r9, %rsi + 0x48, 0x89, 0xf8, //0x00001b81 movq %rdi, %rax + 0x48, 0x09, 0xd8, //0x00001b84 orq %rbx, %rax + 0x0f, 0x84, 0x15, 0xfb, 0xff, 0xff, //0x00001b87 je LBB0_72 + //0x00001b8d LBB0_325 + 0x4d, 0x89, 0xd6, //0x00001b8d movq %r10, %r14 + 0x41, 0x89, 0xda, //0x00001b90 movl %ebx, %r10d + 0x41, 0xf7, 0xd2, //0x00001b93 notl %r10d + 0x41, 0x21, 0xfa, //0x00001b96 andl %edi, %r10d + 0x47, 0x8d, 0x0c, 0x12, //0x00001b99 leal (%r10,%r10), %r9d + 0x41, 0x09, 0xd9, //0x00001b9d orl %ebx, %r9d + 0x44, 0x89, 0xc8, //0x00001ba0 movl %r9d, %eax + 0xf7, 0xd0, //0x00001ba3 notl %eax + 0x21, 0xf8, //0x00001ba5 andl %edi, %eax + 0x25, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001ba7 andl $-1431655766, %eax + 0x31, 0xdb, //0x00001bac xorl %ebx, %ebx + 0x44, 0x01, 0xd0, //0x00001bae addl %r10d, %eax + 0x4d, 0x89, 0xf2, //0x00001bb1 movq %r14, %r10 + 0x0f, 0x92, 0xc3, //0x00001bb4 setb %bl + 0x01, 0xc0, //0x00001bb7 addl %eax, %eax + 0x35, 0x55, 0x55, 0x55, 0x55, //0x00001bb9 xorl $1431655765, %eax + 0x44, 0x21, 0xc8, //0x00001bbe andl %r9d, %eax + 0xf7, 0xd0, //0x00001bc1 notl %eax + 0x21, 0xc6, //0x00001bc3 andl %eax, %esi + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001bc5 movabsq $4294977024, %r9 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00001bcf movq $32(%rsp), %rdi + 0x48, 0x85, 0xf6, //0x00001bd4 testq %rsi, %rsi + 0x0f, 0x85, 0xdd, 0xfa, 0xff, 0xff, //0x00001bd7 jne LBB0_73 + //0x00001bdd LBB0_326 + 0x49, 0x83, 0xc2, 0x20, //0x00001bdd addq $32, %r10 + 0x48, 0x83, 0xc1, 0xe0, //0x00001be1 addq $-32, %rcx + //0x00001be5 LBB0_327 + 0x48, 0x85, 0xdb, //0x00001be5 testq %rbx, %rbx + 0x48, 0x8b, 0x74, 0x24, 0x48, //0x00001be8 movq $72(%rsp), %rsi + 0x0f, 0x85, 0xb2, 0x00, 0x00, 0x00, //0x00001bed jne LBB0_336 + 0x4d, 0x89, 0xc1, //0x00001bf3 movq %r8, %r9 + 0x48, 0x85, 0xc9, //0x00001bf6 testq %rcx, %rcx + 0x0f, 0x84, 0x40, 0x31, 0x00, 0x00, //0x00001bf9 je LBB0_937 + //0x00001bff LBB0_329 + 0x48, 0xf7, 0xd7, //0x00001bff notq %rdi + //0x00001c02 LBB0_330 + 0x4c, 0x89, 0xd3, //0x00001c02 movq %r10, %rbx + 0x49, 0xff, 0xc2, //0x00001c05 incq %r10 + 0x48, 0x89, 0xd8, //0x00001c08 movq %rbx, %rax + 0x0f, 0xb6, 0x1b, //0x00001c0b movzbl (%rbx), %ebx + 0x80, 0xfb, 0x22, //0x00001c0e cmpb $34, %bl + 0x0f, 0x84, 0x66, 0x00, 0x00, 0x00, //0x00001c11 je LBB0_335 + 0x48, 0x8d, 0x71, 0xff, //0x00001c17 leaq $-1(%rcx), %rsi + 0x80, 0xfb, 0x5c, //0x00001c1b cmpb $92, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00001c1e je LBB0_333 + 0x48, 0x89, 0xf1, //0x00001c24 movq %rsi, %rcx + 0x48, 0x85, 0xf6, //0x00001c27 testq %rsi, %rsi + 0x48, 0x8b, 0x74, 0x24, 0x48, //0x00001c2a movq $72(%rsp), %rsi + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00001c2f jne LBB0_330 + 0xe9, 0x05, 0x31, 0x00, 0x00, //0x00001c35 jmp LBB0_937 + //0x00001c3a LBB0_333 + 0x48, 0x85, 0xf6, //0x00001c3a testq %rsi, %rsi + 0x0f, 0x84, 0xfc, 0x30, 0x00, 0x00, //0x00001c3d je LBB0_937 + 0x49, 0x01, 0xfa, //0x00001c43 addq %rdi, %r10 + 0x49, 0x83, 0xf9, 0xff, //0x00001c46 cmpq $-1, %r9 + 0x4d, 0x0f, 0x44, 0xc2, //0x00001c4a cmoveq %r10, %r8 + 0x4d, 0x0f, 0x44, 0xca, //0x00001c4e cmoveq %r10, %r9 + 0x49, 0x89, 0xc2, //0x00001c52 movq %rax, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x00001c55 addq $2, %r10 + 0x48, 0x83, 0xc1, 0xfe, //0x00001c59 addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00001c5d movq %rcx, %rsi + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001c60 movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001c65 movq $56(%rsp), %r11 + 0x48, 0x85, 0xf6, //0x00001c6a testq %rsi, %rsi + 0x48, 0x8b, 0x74, 0x24, 0x48, //0x00001c6d movq $72(%rsp), %rsi + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00001c72 jne LBB0_330 + 0xe9, 0xc2, 0x30, 0x00, 0x00, //0x00001c78 jmp LBB0_937 + //0x00001c7d LBB0_335 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00001c7d movq $32(%rsp), %rdi + 0x49, 0x29, 0xfa, //0x00001c82 subq %rdi, %r10 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001c85 movabsq $4294977024, %r9 + 0x4d, 0x85, 0xd2, //0x00001c8f testq %r10, %r10 + 0x48, 0x8b, 0x9c, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x00001c92 movq $176(%rsp), %rbx + 0x0f, 0x89, 0xe5, 0xea, 0xff, 0xff, //0x00001c9a jns LBB0_79 + 0xe9, 0x9a, 0x30, 0x00, 0x00, //0x00001ca0 jmp LBB0_937 + //0x00001ca5 LBB0_336 + 0x48, 0x85, 0xc9, //0x00001ca5 testq %rcx, %rcx + 0x0f, 0x84, 0x91, 0x30, 0x00, 0x00, //0x00001ca8 je LBB0_937 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00001cae movq $32(%rsp), %rdi + 0x49, 0x89, 0xf9, //0x00001cb3 movq %rdi, %r9 + 0x49, 0xf7, 0xd1, //0x00001cb6 notq %r9 + 0x4d, 0x01, 0xd1, //0x00001cb9 addq %r10, %r9 + 0x49, 0x83, 0xf8, 0xff, //0x00001cbc cmpq $-1, %r8 + 0x4c, 0x89, 0xc0, //0x00001cc0 movq %r8, %rax + 0x49, 0x0f, 0x44, 0xc1, //0x00001cc3 cmoveq %r9, %rax + 0x4d, 0x0f, 0x45, 0xc8, //0x00001cc7 cmovneq %r8, %r9 + 0x49, 0xff, 0xc2, //0x00001ccb incq %r10 + 0x48, 0xff, 0xc9, //0x00001cce decq %rcx + 0x49, 0x89, 0xc0, //0x00001cd1 movq %rax, %r8 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001cd4 movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001cd9 movq $56(%rsp), %r11 + 0x48, 0x8b, 0x74, 0x24, 0x48, //0x00001cde movq $72(%rsp), %rsi + 0x48, 0x85, 0xc9, //0x00001ce3 testq %rcx, %rcx + 0x0f, 0x85, 0x13, 0xff, 0xff, 0xff, //0x00001ce6 jne LBB0_329 + 0xe9, 0x4e, 0x30, 0x00, 0x00, //0x00001cec jmp LBB0_937 + //0x00001cf1 LBB0_338 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001cf1 movq $56(%rsp), %r11 + 0x4d, 0x8b, 0x13, //0x00001cf6 movq (%r11), %r10 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001cf9 movq $24(%rsp), %r8 + 0x4d, 0x89, 0x10, //0x00001cfe movq %r10, (%r8) + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001d01 movq $40(%rsp), %r15 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001d06 movabsq $4294977024, %r9 + 0xe9, 0x1b, 0xf0, 0xff, 0xff, //0x00001d10 jmp LBB0_222 + //0x00001d15 LBB0_339 + 0x49, 0x8d, 0x48, 0xff, //0x00001d15 leaq $-1(%r8), %rcx + 0x48, 0x39, 0xc1, //0x00001d19 cmpq %rax, %rcx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001d1c jne LBB0_342 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00001d22 movq $24(%rsp), %r8 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001d27 movq $40(%rsp), %r15 + 0xe9, 0x5f, 0xf2, 0xff, 0xff, //0x00001d2c jmp LBB0_341 + //0x00001d31 LBB0_342 + 0x4a, 0x8d, 0x4c, 0x08, 0x02, //0x00001d31 leaq $2(%rax,%r9), %rcx + 0x49, 0x29, 0xc0, //0x00001d36 subq %rax, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00001d39 addq $-2, %r8 + 0x4c, 0x89, 0xc0, //0x00001d3d movq %r8, %rax + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00001d40 movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00001d45 movq $56(%rsp), %r11 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00001d4a movq $32(%rsp), %rdi + 0xe9, 0x63, 0xfd, 0xff, 0xff, //0x00001d4f jmp LBB0_261 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d54 .p2align 4, 0x90 + //0x00001d60 LBB0_350 + 0x49, 0x8d, 0x52, 0x01, //0x00001d60 leaq $1(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00001d64 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001d67 jae LBB0_354 + 0x8a, 0x1c, 0x17, //0x00001d6d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00001d70 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001d73 je LBB0_354 + 0x80, 0xfb, 0x20, //0x00001d79 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001d7c je LBB0_354 + 0x80, 0xc3, 0xf7, //0x00001d82 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001d85 cmpb $1, %bl + 0x0f, 0x87, 0x03, 0x01, 0x00, 0x00, //0x00001d88 ja LBB0_372 + 0x90, 0x90, //0x00001d8e .p2align 4, 0x90 + //0x00001d90 LBB0_354 + 0x49, 0x8d, 0x52, 0x02, //0x00001d90 leaq $2(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00001d94 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001d97 jae LBB0_358 + 0x8a, 0x1c, 0x17, //0x00001d9d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00001da0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001da3 je LBB0_358 + 0x80, 0xfb, 0x20, //0x00001da9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001dac je LBB0_358 + 0x80, 0xc3, 0xf7, //0x00001db2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001db5 cmpb $1, %bl + 0x0f, 0x87, 0xd3, 0x00, 0x00, 0x00, //0x00001db8 ja LBB0_372 + 0x90, 0x90, //0x00001dbe .p2align 4, 0x90 + //0x00001dc0 LBB0_358 + 0x49, 0x8d, 0x52, 0x03, //0x00001dc0 leaq $3(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00001dc4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001dc7 jae LBB0_362 + 0x8a, 0x1c, 0x17, //0x00001dcd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00001dd0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001dd3 je LBB0_362 + 0x80, 0xfb, 0x20, //0x00001dd9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001ddc je LBB0_362 + 0x80, 0xc3, 0xf7, //0x00001de2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001de5 cmpb $1, %bl + 0x0f, 0x87, 0xa3, 0x00, 0x00, 0x00, //0x00001de8 ja LBB0_372 + 0x90, 0x90, //0x00001dee .p2align 4, 0x90 + //0x00001df0 LBB0_362 + 0x49, 0x8d, 0x72, 0x04, //0x00001df0 leaq $4(%r10), %rsi + 0x48, 0x39, 0xf0, //0x00001df4 cmpq %rsi, %rax + 0x0f, 0x86, 0x5d, 0x00, 0x00, 0x00, //0x00001df7 jbe LBB0_369 + 0x48, 0x39, 0xf0, //0x00001dfd cmpq %rsi, %rax + 0x0f, 0x84, 0x5f, 0x00, 0x00, 0x00, //0x00001e00 je LBB0_370 + 0x48, 0x8d, 0x34, 0x07, //0x00001e06 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x00001e0a addq $4, %rcx + 0x48, 0x89, 0xfb, //0x00001e0e movq %rdi, %rbx + 0x4a, 0x8d, 0x54, 0x17, 0x05, //0x00001e11 leaq $5(%rdi,%r10), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001e16 .p2align 4, 0x90 + //0x00001e20 LBB0_365 + 0x0f, 0xbe, 0x7a, 0xff, //0x00001e20 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00001e24 cmpl $32, %edi + 0x0f, 0x87, 0x4f, 0x00, 0x00, 0x00, //0x00001e27 ja LBB0_371 + 0x49, 0x0f, 0xa3, 0xf9, //0x00001e2d btq %rdi, %r9 + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00001e31 jae LBB0_371 + 0x48, 0xff, 0xc2, //0x00001e37 incq %rdx + 0x48, 0xff, 0xc1, //0x00001e3a incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00001e3d jne LBB0_365 + 0x48, 0x89, 0xdf, //0x00001e43 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00001e46 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00001e49 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x00001e4c cmpq %rax, %rdx + 0x0f, 0x82, 0x3c, 0x00, 0x00, 0x00, //0x00001e4f jb LBB0_372 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00001e55 jmp LBB0_373 + //0x00001e5a LBB0_369 + 0x49, 0x89, 0x30, //0x00001e5a movq %rsi, (%r8) + 0x49, 0x89, 0xf2, //0x00001e5d movq %rsi, %r10 + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00001e60 jmp LBB0_373 + //0x00001e65 LBB0_370 + 0x48, 0x01, 0xfe, //0x00001e65 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x00001e68 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00001e6b movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x00001e6e cmpq %rax, %rdx + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00001e71 jb LBB0_372 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00001e77 jmp LBB0_373 + //0x00001e7c LBB0_371 + 0x48, 0x89, 0xdf, //0x00001e7c movq %rbx, %rdi + 0x48, 0x89, 0xd9, //0x00001e7f movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00001e82 notq %rcx + 0x48, 0x01, 0xca, //0x00001e85 addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00001e88 cmpq %rax, %rdx + 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00001e8b jae LBB0_373 + //0x00001e91 LBB0_372 + 0x4c, 0x8d, 0x52, 0x01, //0x00001e91 leaq $1(%rdx), %r10 + 0x4d, 0x89, 0x10, //0x00001e95 movq %r10, (%r8) + 0x80, 0x3c, 0x17, 0x5d, //0x00001e98 cmpb $93, (%rdi,%rdx) + 0x0f, 0x84, 0xb5, 0x24, 0x00, 0x00, //0x00001e9c je LBB0_833 + //0x00001ea2 LBB0_373 + 0x49, 0xff, 0xca, //0x00001ea2 decq %r10 + 0x4d, 0x89, 0x10, //0x00001ea5 movq %r10, (%r8) + 0x4d, 0x85, 0xf6, //0x00001ea8 testq %r14, %r14 + 0x0f, 0x8e, 0xff, 0x0c, 0x00, 0x00, //0x00001eab jle LBB0_446 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001eb1 .p2align 4, 0x90 + //0x00001ec0 LBB0_374 + 0x49, 0x8b, 0x03, //0x00001ec0 movq (%r11), %rax + 0x4c, 0x89, 0xd2, //0x00001ec3 movq %r10, %rdx + 0x48, 0x29, 0xc2, //0x00001ec6 subq %rax, %rdx + 0x0f, 0x83, 0x31, 0x00, 0x00, 0x00, //0x00001ec9 jae LBB0_379 + 0x42, 0x8a, 0x0c, 0x17, //0x00001ecf movb (%rdi,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00001ed3 cmpb $13, %cl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00001ed6 je LBB0_379 + 0x80, 0xf9, 0x20, //0x00001edc cmpb $32, %cl + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00001edf je LBB0_379 + 0x80, 0xc1, 0xf7, //0x00001ee5 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00001ee8 cmpb $1, %cl + 0x0f, 0x86, 0x0f, 0x00, 0x00, 0x00, //0x00001eeb jbe LBB0_379 + 0x4c, 0x89, 0xd1, //0x00001ef1 movq %r10, %rcx + 0xe9, 0x47, 0x01, 0x00, 0x00, //0x00001ef4 jmp LBB0_401 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ef9 .p2align 4, 0x90 + //0x00001f00 LBB0_379 + 0x49, 0x8d, 0x4a, 0x01, //0x00001f00 leaq $1(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00001f04 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001f07 jae LBB0_383 + 0x8a, 0x1c, 0x0f, //0x00001f0d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00001f10 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001f13 je LBB0_383 + 0x80, 0xfb, 0x20, //0x00001f19 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001f1c je LBB0_383 + 0x80, 0xc3, 0xf7, //0x00001f22 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001f25 cmpb $1, %bl + 0x0f, 0x87, 0x12, 0x01, 0x00, 0x00, //0x00001f28 ja LBB0_401 + 0x90, 0x90, //0x00001f2e .p2align 4, 0x90 + //0x00001f30 LBB0_383 + 0x49, 0x8d, 0x4a, 0x02, //0x00001f30 leaq $2(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00001f34 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001f37 jae LBB0_387 + 0x8a, 0x1c, 0x0f, //0x00001f3d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00001f40 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001f43 je LBB0_387 + 0x80, 0xfb, 0x20, //0x00001f49 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001f4c je LBB0_387 + 0x80, 0xc3, 0xf7, //0x00001f52 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001f55 cmpb $1, %bl + 0x0f, 0x87, 0xe2, 0x00, 0x00, 0x00, //0x00001f58 ja LBB0_401 + 0x90, 0x90, //0x00001f5e .p2align 4, 0x90 + //0x00001f60 LBB0_387 + 0x49, 0x8d, 0x4a, 0x03, //0x00001f60 leaq $3(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00001f64 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001f67 jae LBB0_391 + 0x8a, 0x1c, 0x0f, //0x00001f6d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00001f70 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001f73 je LBB0_391 + 0x80, 0xfb, 0x20, //0x00001f79 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001f7c je LBB0_391 + 0x80, 0xc3, 0xf7, //0x00001f82 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001f85 cmpb $1, %bl + 0x0f, 0x87, 0xb2, 0x00, 0x00, 0x00, //0x00001f88 ja LBB0_401 + 0x90, 0x90, //0x00001f8e .p2align 4, 0x90 + //0x00001f90 LBB0_391 + 0x49, 0x8d, 0x72, 0x04, //0x00001f90 leaq $4(%r10), %rsi + 0x48, 0x39, 0xf0, //0x00001f94 cmpq %rsi, %rax + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x00001f97 jbe LBB0_398 + 0x48, 0x39, 0xf0, //0x00001f9d cmpq %rsi, %rax + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00001fa0 je LBB0_399 + 0x48, 0x8d, 0x34, 0x07, //0x00001fa6 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc2, 0x04, //0x00001faa addq $4, %rdx + 0x48, 0x89, 0xfb, //0x00001fae movq %rdi, %rbx + 0x4a, 0x8d, 0x4c, 0x17, 0x05, //0x00001fb1 leaq $5(%rdi,%r10), %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001fb6 .p2align 4, 0x90 + //0x00001fc0 LBB0_394 + 0x0f, 0xbe, 0x79, 0xff, //0x00001fc0 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x00001fc4 cmpl $32, %edi + 0x0f, 0x87, 0x55, 0x00, 0x00, 0x00, //0x00001fc7 ja LBB0_400 + 0x49, 0x0f, 0xa3, 0xf9, //0x00001fcd btq %rdi, %r9 + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00001fd1 jae LBB0_400 + 0x48, 0xff, 0xc1, //0x00001fd7 incq %rcx + 0x48, 0xff, 0xc2, //0x00001fda incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00001fdd jne LBB0_394 + 0x48, 0x89, 0xdf, //0x00001fe3 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00001fe6 subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00001fe9 movq %rsi, %rcx + 0x48, 0x39, 0xc1, //0x00001fec cmpq %rax, %rcx + 0x0f, 0x82, 0x4b, 0x00, 0x00, 0x00, //0x00001fef jb LBB0_401 + 0xe9, 0x46, 0x01, 0x00, 0x00, //0x00001ff5 jmp LBB0_418 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ffa .p2align 4, 0x90 + //0x00002000 LBB0_398 + 0x49, 0x89, 0x30, //0x00002000 movq %rsi, (%r8) + 0x49, 0x89, 0xf2, //0x00002003 movq %rsi, %r10 + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00002006 jmp LBB0_418 + //0x0000200b LBB0_399 + 0x48, 0x01, 0xfe, //0x0000200b addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x0000200e subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00002011 movq %rsi, %rcx + 0x48, 0x39, 0xc1, //0x00002014 cmpq %rax, %rcx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00002017 jb LBB0_401 + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x0000201d jmp LBB0_418 + //0x00002022 LBB0_400 + 0x48, 0x89, 0xdf, //0x00002022 movq %rbx, %rdi + 0x48, 0x89, 0xda, //0x00002025 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00002028 notq %rdx + 0x48, 0x01, 0xd1, //0x0000202b addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x0000202e cmpq %rax, %rcx + 0x0f, 0x83, 0x09, 0x01, 0x00, 0x00, //0x00002031 jae LBB0_418 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002037 .p2align 4, 0x90 + //0x00002040 LBB0_401 + 0x4c, 0x8d, 0x51, 0x01, //0x00002040 leaq $1(%rcx), %r10 + 0x4d, 0x89, 0x10, //0x00002044 movq %r10, (%r8) + 0x0f, 0xbe, 0x04, 0x0f, //0x00002047 movsbl (%rdi,%rcx), %eax + 0x83, 0xf8, 0x7b, //0x0000204b cmpl $123, %eax + 0x0f, 0x87, 0xf1, 0x06, 0x00, 0x00, //0x0000204e ja LBB0_488 + 0x48, 0x8d, 0x15, 0x5d, 0x2f, 0x00, 0x00, //0x00002054 leaq $12125(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x0000205b movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x0000205f addq %rdx, %rax + 0x4c, 0x89, 0x74, 0x24, 0x48, //0x00002062 movq %r14, $72(%rsp) + 0xff, 0xe0, //0x00002067 jmpq *%rax + //0x00002069 LBB0_403 + 0x49, 0x8b, 0x13, //0x00002069 movq (%r11), %rdx + 0x48, 0x89, 0xd0, //0x0000206c movq %rdx, %rax + 0x4c, 0x29, 0xd0, //0x0000206f subq %r10, %rax + 0x49, 0x01, 0xfa, //0x00002072 addq %rdi, %r10 + 0x48, 0x83, 0xf8, 0x10, //0x00002075 cmpq $16, %rax + 0x0f, 0x82, 0x5b, 0x00, 0x00, 0x00, //0x00002079 jb LBB0_408 + 0x48, 0x29, 0xca, //0x0000207f subq %rcx, %rdx + 0x48, 0x83, 0xc2, 0xef, //0x00002082 addq $-17, %rdx + 0x48, 0x89, 0xd6, //0x00002086 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x00002089 andq $-16, %rsi + 0x48, 0x01, 0xce, //0x0000208d addq %rcx, %rsi + 0x48, 0x8d, 0x4c, 0x37, 0x11, //0x00002090 leaq $17(%rdi,%rsi), %rcx + 0x83, 0xe2, 0x0f, //0x00002095 andl $15, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002098 .p2align 4, 0x90 + //0x000020a0 LBB0_405 + 0xc4, 0xc1, 0x7a, 0x6f, 0x12, //0x000020a0 vmovdqu (%r10), %xmm2 + 0xc5, 0x89, 0x74, 0xda, //0x000020a5 vpcmpeqb %xmm2, %xmm14, %xmm3 + 0xc5, 0x81, 0xeb, 0xd2, //0x000020a9 vpor %xmm2, %xmm15, %xmm2 + 0xc5, 0xe9, 0x74, 0xd4, //0x000020ad vpcmpeqb %xmm4, %xmm2, %xmm2 + 0xc5, 0xe9, 0xeb, 0xd3, //0x000020b1 vpor %xmm3, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000020b5 vpmovmskb %xmm2, %esi + 0x66, 0x85, 0xf6, //0x000020b9 testw %si, %si + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x000020bc jne LBB0_416 + 0x49, 0x83, 0xc2, 0x10, //0x000020c2 addq $16, %r10 + 0x48, 0x83, 0xc0, 0xf0, //0x000020c6 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x000020ca cmpq $15, %rax + 0x0f, 0x87, 0xcc, 0xff, 0xff, 0xff, //0x000020ce ja LBB0_405 + 0x48, 0x89, 0xd0, //0x000020d4 movq %rdx, %rax + 0x49, 0x89, 0xca, //0x000020d7 movq %rcx, %r10 + //0x000020da LBB0_408 + 0x48, 0x85, 0xc0, //0x000020da testq %rax, %rax + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x000020dd je LBB0_415 + 0x49, 0x8d, 0x0c, 0x02, //0x000020e3 leaq (%r10,%rax), %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000020e7 .p2align 4, 0x90 + //0x000020f0 LBB0_410 + 0x41, 0x0f, 0xb6, 0x12, //0x000020f0 movzbl (%r10), %edx + 0x80, 0xfa, 0x2c, //0x000020f4 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000020f7 je LBB0_415 + 0x80, 0xfa, 0x7d, //0x000020fd cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00002100 je LBB0_415 + 0x80, 0xfa, 0x5d, //0x00002106 cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00002109 je LBB0_415 + 0x49, 0xff, 0xc2, //0x0000210f incq %r10 + 0x48, 0xff, 0xc8, //0x00002112 decq %rax + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00002115 jne LBB0_410 + 0x49, 0x89, 0xca, //0x0000211b movq %rcx, %r10 + //0x0000211e LBB0_415 + 0x49, 0x29, 0xfa, //0x0000211e subq %rdi, %r10 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002121 jmp LBB0_417 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002126 .p2align 4, 0x90 + //0x00002130 LBB0_416 + 0x0f, 0xb7, 0xc6, //0x00002130 movzwl %si, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00002133 bsfq %rax, %rax + 0x49, 0x29, 0xfa, //0x00002137 subq %rdi, %r10 + 0x49, 0x01, 0xc2, //0x0000213a addq %rax, %r10 + //0x0000213d LBB0_417 + 0x4d, 0x89, 0x10, //0x0000213d movq %r10, (%r8) + //0x00002140 LBB0_418 + 0x49, 0x8b, 0x3f, //0x00002140 movq (%r15), %rdi + 0x49, 0x8b, 0x47, 0x08, //0x00002143 movq $8(%r15), %rax + 0x4c, 0x89, 0xd1, //0x00002147 movq %r10, %rcx + 0x48, 0x29, 0xc1, //0x0000214a subq %rax, %rcx + 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x0000214d jae LBB0_423 + 0x42, 0x8a, 0x14, 0x17, //0x00002153 movb (%rdi,%r10), %dl + 0x80, 0xfa, 0x0d, //0x00002157 cmpb $13, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000215a je LBB0_423 + 0x80, 0xfa, 0x20, //0x00002160 cmpb $32, %dl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002163 je LBB0_423 + 0x80, 0xc2, 0xf7, //0x00002169 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000216c cmpb $1, %dl + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x0000216f jbe LBB0_423 + 0x4c, 0x89, 0xd2, //0x00002175 movq %r10, %rdx + 0xe9, 0x38, 0x01, 0x00, 0x00, //0x00002178 jmp LBB0_444 + 0x90, 0x90, 0x90, //0x0000217d .p2align 4, 0x90 + //0x00002180 LBB0_423 + 0x49, 0x8d, 0x52, 0x01, //0x00002180 leaq $1(%r10), %rdx + 0x48, 0x39, 0xc2, //0x00002184 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002187 jae LBB0_427 + 0x8a, 0x1c, 0x17, //0x0000218d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00002190 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002193 je LBB0_427 + 0x80, 0xfb, 0x20, //0x00002199 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000219c je LBB0_427 + 0x80, 0xc3, 0xf7, //0x000021a2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000021a5 cmpb $1, %bl + 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x000021a8 ja LBB0_444 + 0x90, 0x90, //0x000021ae .p2align 4, 0x90 + //0x000021b0 LBB0_427 + 0x49, 0x8d, 0x52, 0x02, //0x000021b0 leaq $2(%r10), %rdx + 0x48, 0x39, 0xc2, //0x000021b4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000021b7 jae LBB0_431 + 0x8a, 0x1c, 0x17, //0x000021bd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x000021c0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000021c3 je LBB0_431 + 0x80, 0xfb, 0x20, //0x000021c9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000021cc je LBB0_431 + 0x80, 0xc3, 0xf7, //0x000021d2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000021d5 cmpb $1, %bl + 0x0f, 0x87, 0xd7, 0x00, 0x00, 0x00, //0x000021d8 ja LBB0_444 + 0x90, 0x90, //0x000021de .p2align 4, 0x90 + //0x000021e0 LBB0_431 + 0x49, 0x8d, 0x52, 0x03, //0x000021e0 leaq $3(%r10), %rdx + 0x48, 0x39, 0xc2, //0x000021e4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000021e7 jae LBB0_435 + 0x8a, 0x1c, 0x17, //0x000021ed movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x000021f0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000021f3 je LBB0_435 + 0x80, 0xfb, 0x20, //0x000021f9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000021fc je LBB0_435 + 0x80, 0xc3, 0xf7, //0x00002202 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002205 cmpb $1, %bl + 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x00002208 ja LBB0_444 + 0x90, 0x90, //0x0000220e .p2align 4, 0x90 + //0x00002210 LBB0_435 + 0x49, 0x8d, 0x72, 0x04, //0x00002210 leaq $4(%r10), %rsi + 0x48, 0x39, 0xf0, //0x00002214 cmpq %rsi, %rax + 0x0f, 0x86, 0x6d, 0x0b, 0x00, 0x00, //0x00002217 jbe LBB0_550 + 0x48, 0x39, 0xf0, //0x0000221d cmpq %rsi, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00002220 je LBB0_442 + 0x48, 0x8d, 0x34, 0x07, //0x00002226 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x0000222a addq $4, %rcx + 0x48, 0x89, 0xfb, //0x0000222e movq %rdi, %rbx + 0x4a, 0x8d, 0x54, 0x17, 0x05, //0x00002231 leaq $5(%rdi,%r10), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002236 .p2align 4, 0x90 + //0x00002240 LBB0_438 + 0x0f, 0xbe, 0x7a, 0xff, //0x00002240 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00002244 cmpl $32, %edi + 0x0f, 0x87, 0x53, 0x00, 0x00, 0x00, //0x00002247 ja LBB0_443 + 0x49, 0x0f, 0xa3, 0xf9, //0x0000224d btq %rdi, %r9 + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00002251 jae LBB0_443 + 0x48, 0xff, 0xc2, //0x00002257 incq %rdx + 0x48, 0xff, 0xc1, //0x0000225a incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000225d jne LBB0_438 + 0x48, 0x89, 0xdf, //0x00002263 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00002266 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00002269 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x0000226c cmpq %rax, %rdx + 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x0000226f jb LBB0_444 + 0xe9, 0x07, 0x21, 0x00, 0x00, //0x00002275 jmp LBB0_837 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000227a .p2align 4, 0x90 + //0x00002280 LBB0_442 + 0x48, 0x01, 0xfe, //0x00002280 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x00002283 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00002286 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x00002289 cmpq %rax, %rdx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x0000228c jb LBB0_444 + 0xe9, 0xea, 0x20, 0x00, 0x00, //0x00002292 jmp LBB0_837 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002297 .p2align 4, 0x90 + //0x000022a0 LBB0_443 + 0x48, 0x89, 0xdf, //0x000022a0 movq %rbx, %rdi + 0x48, 0x89, 0xd9, //0x000022a3 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x000022a6 notq %rcx + 0x48, 0x01, 0xca, //0x000022a9 addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x000022ac cmpq %rax, %rdx + 0x0f, 0x83, 0xcc, 0x20, 0x00, 0x00, //0x000022af jae LBB0_837 + //0x000022b5 LBB0_444 + 0x4c, 0x8d, 0x52, 0x01, //0x000022b5 leaq $1(%rdx), %r10 + 0x4d, 0x89, 0x10, //0x000022b9 movq %r10, (%r8) + 0x8a, 0x04, 0x17, //0x000022bc movb (%rdi,%rdx), %al + 0x3c, 0x2c, //0x000022bf cmpb $44, %al + 0x0f, 0x85, 0x88, 0x20, 0x00, 0x00, //0x000022c1 jne LBB0_832 + 0x49, 0x83, 0xfe, 0x02, //0x000022c7 cmpq $2, %r14 + 0x4d, 0x8d, 0x76, 0xff, //0x000022cb leaq $-1(%r14), %r14 + 0x0f, 0x8d, 0xeb, 0xfb, 0xff, 0xff, //0x000022cf jge LBB0_374 + 0xe9, 0xd6, 0x08, 0x00, 0x00, //0x000022d5 jmp LBB0_446 + //0x000022da LBB0_449 + 0x48, 0x83, 0xc1, 0x04, //0x000022da addq $4, %rcx + 0x49, 0x3b, 0x0b, //0x000022de cmpq (%r11), %rcx + 0x0f, 0x87, 0x59, 0xfe, 0xff, 0xff, //0x000022e1 ja LBB0_418 + 0xe9, 0x59, 0x04, 0x00, 0x00, //0x000022e7 jmp LBB0_488 + //0x000022ec LBB0_450 + 0x4d, 0x8b, 0x03, //0x000022ec movq (%r11), %r8 + 0x4c, 0x89, 0xc0, //0x000022ef movq %r8, %rax + 0x4c, 0x29, 0xd0, //0x000022f2 subq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x000022f5 cmpq $32, %rax + 0x0f, 0x8c, 0x3c, 0x08, 0x00, 0x00, //0x000022f9 jl LBB0_522 + 0x4c, 0x8d, 0x0c, 0x0f, //0x000022ff leaq (%rdi,%rcx), %r9 + 0x49, 0x29, 0xc8, //0x00002303 subq %rcx, %r8 + 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x00002306 movl $31, %ecx + 0x31, 0xc0, //0x0000230b xorl %eax, %eax + 0x45, 0x31, 0xdb, //0x0000230d xorl %r11d, %r11d + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002310 jmp LBB0_452 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002315 .p2align 4, 0x90 + //0x00002320 LBB0_455 + 0x45, 0x31, 0xdb, //0x00002320 xorl %r11d, %r11d + 0x85, 0xdb, //0x00002323 testl %ebx, %ebx + 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x00002325 jne LBB0_454 + //0x0000232b LBB0_456 + 0x48, 0x83, 0xc0, 0x20, //0x0000232b addq $32, %rax + 0x49, 0x8d, 0x54, 0x08, 0xe0, //0x0000232f leaq $-32(%r8,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xe0, //0x00002334 addq $-32, %rcx + 0x48, 0x83, 0xfa, 0x3f, //0x00002338 cmpq $63, %rdx + 0x0f, 0x8e, 0x6e, 0x07, 0x00, 0x00, //0x0000233c jle LBB0_457 + //0x00002342 LBB0_452 + 0xc4, 0xc1, 0x7a, 0x6f, 0x54, 0x01, 0x01, //0x00002342 vmovdqu $1(%r9,%rax), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x5c, 0x01, 0x11, //0x00002349 vmovdqu $17(%r9,%rax), %xmm3 + 0xc5, 0xe9, 0x74, 0xe8, //0x00002350 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00002354 vpmovmskb %xmm5, %edx + 0xc5, 0xe1, 0x74, 0xe8, //0x00002358 vpcmpeqb %xmm0, %xmm3, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x0000235c vpmovmskb %xmm5, %ebx + 0x48, 0xc1, 0xe3, 0x10, //0x00002360 shlq $16, %rbx + 0x48, 0x09, 0xd3, //0x00002364 orq %rdx, %rbx + 0xc5, 0xe9, 0x74, 0xd1, //0x00002367 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x0000236b vpmovmskb %xmm2, %esi + 0xc5, 0xe1, 0x74, 0xd1, //0x0000236f vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00002373 vpmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x10, //0x00002377 shlq $16, %rdx + 0x48, 0x09, 0xf2, //0x0000237b orq %rsi, %rdx + 0x48, 0x89, 0xd6, //0x0000237e movq %rdx, %rsi + 0x4c, 0x09, 0xde, //0x00002381 orq %r11, %rsi + 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x00002384 je LBB0_455 + 0x44, 0x89, 0xde, //0x0000238a movl %r11d, %esi + 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x0000238d movl $4294967295, %r14d + 0x44, 0x31, 0xf6, //0x00002393 xorl %r14d, %esi + 0x21, 0xf2, //0x00002396 andl %esi, %edx + 0x8d, 0x34, 0x12, //0x00002398 leal (%rdx,%rdx), %esi + 0x44, 0x09, 0xde, //0x0000239b orl %r11d, %esi + 0x4d, 0x89, 0xfc, //0x0000239e movq %r15, %r12 + 0x4d, 0x89, 0xef, //0x000023a1 movq %r13, %r15 + 0x49, 0x89, 0xfd, //0x000023a4 movq %rdi, %r13 + 0x41, 0x8d, 0xbe, 0xab, 0xaa, 0xaa, 0xaa, //0x000023a7 leal $-1431655765(%r14), %edi + 0x31, 0xf7, //0x000023ae xorl %esi, %edi + 0x21, 0xd7, //0x000023b0 andl %edx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000023b2 andl $-1431655766, %edi + 0x45, 0x31, 0xdb, //0x000023b8 xorl %r11d, %r11d + 0x01, 0xd7, //0x000023bb addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc3, //0x000023bd setb %r11b + 0x01, 0xff, //0x000023c1 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000023c3 xorl $1431655765, %edi + 0x21, 0xf7, //0x000023c9 andl %esi, %edi + 0x44, 0x31, 0xf7, //0x000023cb xorl %r14d, %edi + 0x4c, 0x8b, 0x74, 0x24, 0x48, //0x000023ce movq $72(%rsp), %r14 + 0x21, 0xfb, //0x000023d3 andl %edi, %ebx + 0x4c, 0x89, 0xef, //0x000023d5 movq %r13, %rdi + 0x4d, 0x89, 0xfd, //0x000023d8 movq %r15, %r13 + 0x4d, 0x89, 0xe7, //0x000023db movq %r12, %r15 + 0x85, 0xdb, //0x000023de testl %ebx, %ebx + 0x0f, 0x84, 0x45, 0xff, 0xff, 0xff, //0x000023e0 je LBB0_456 + //0x000023e6 LBB0_454 + 0x48, 0x0f, 0xbc, 0xcb, //0x000023e6 bsfq %rbx, %rcx + 0x49, 0x01, 0xc9, //0x000023ea addq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x000023ed addq %rax, %r9 + 0x49, 0x29, 0xf9, //0x000023f0 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0x02, //0x000023f3 addq $2, %r9 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000023f7 movq $24(%rsp), %r8 + 0x4d, 0x89, 0x08, //0x000023fc movq %r9, (%r8) + 0x4d, 0x89, 0xca, //0x000023ff movq %r9, %r10 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00002402 movq $56(%rsp), %r11 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002407 movabsq $4294977024, %r9 + 0xe9, 0x2a, 0xfd, 0xff, 0xff, //0x00002411 jmp LBB0_418 + //0x00002416 LBB0_461 + 0x4d, 0x8b, 0x0b, //0x00002416 movq (%r11), %r9 + 0x4d, 0x29, 0xd1, //0x00002419 subq %r10, %r9 + 0x4c, 0x01, 0xd7, //0x0000241c addq %r10, %rdi + 0x45, 0x31, 0xc0, //0x0000241f xorl %r8d, %r8d + 0x45, 0x31, 0xd2, //0x00002422 xorl %r10d, %r10d + 0x45, 0x31, 0xdb, //0x00002425 xorl %r11d, %r11d + 0x31, 0xd2, //0x00002428 xorl %edx, %edx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x0000242a jmp LBB0_463 + //0x0000242f LBB0_462 + 0x49, 0xc1, 0xfe, 0x3f, //0x0000242f sarq $63, %r14 + 0xf3, 0x48, 0x0f, 0xb8, 0xc7, //0x00002433 popcntq %rdi, %rax + 0x49, 0x01, 0xc3, //0x00002438 addq %rax, %r11 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x0000243b movq $32(%rsp), %rdi + 0x48, 0x83, 0xc7, 0x40, //0x00002440 addq $64, %rdi + 0x49, 0x83, 0xc1, 0xc0, //0x00002444 addq $-64, %r9 + 0x4d, 0x89, 0xf0, //0x00002448 movq %r14, %r8 + //0x0000244b LBB0_463 + 0x49, 0x83, 0xf9, 0x40, //0x0000244b cmpq $64, %r9 + 0x0f, 0x8c, 0xa7, 0x01, 0x00, 0x00, //0x0000244f jl LBB0_471 + //0x00002455 LBB0_464 + 0xc5, 0xfa, 0x6f, 0x17, //0x00002455 vmovdqu (%rdi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x77, 0x10, //0x00002459 vmovdqu $16(%rdi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x6f, 0x20, //0x0000245e vmovdqu $32(%rdi), %xmm5 + 0x48, 0x89, 0x7c, 0x24, 0x20, //0x00002463 movq %rdi, $32(%rsp) + 0xc5, 0xfa, 0x6f, 0x7f, 0x30, //0x00002468 vmovdqu $48(%rdi), %xmm7 + 0xc5, 0xe9, 0x74, 0xd8, //0x0000246d vpcmpeqb %xmm0, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xf3, //0x00002471 vpmovmskb %xmm3, %esi + 0xc5, 0xc9, 0x74, 0xd8, //0x00002475 vpcmpeqb %xmm0, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00002479 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd8, //0x0000247d vpcmpeqb %xmm0, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00002481 vpmovmskb %xmm3, %edi + 0xc5, 0xc1, 0x74, 0xd8, //0x00002485 vpcmpeqb %xmm0, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x00002489 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x0000248d shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x00002491 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x00002495 shlq $16, %rax + 0x48, 0x09, 0xc6, //0x00002499 orq %rax, %rsi + 0x48, 0x09, 0xfe, //0x0000249c orq %rdi, %rsi + 0x48, 0x09, 0xde, //0x0000249f orq %rbx, %rsi + 0xc5, 0xe9, 0x74, 0xd9, //0x000024a2 vpcmpeqb %xmm1, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000024a6 vpmovmskb %xmm3, %edi + 0xc5, 0xc9, 0x74, 0xd9, //0x000024aa vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x000024ae vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd9, //0x000024b2 vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x000024b6 vpmovmskb %xmm3, %ebx + 0xc5, 0xc1, 0x74, 0xd9, //0x000024ba vpcmpeqb %xmm1, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x000024be vpmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000024c2 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x000024c6 shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x000024ca shlq $16, %rax + 0x48, 0x09, 0xc7, //0x000024ce orq %rax, %rdi + 0x48, 0x09, 0xdf, //0x000024d1 orq %rbx, %rdi + 0x48, 0x09, 0xcf, //0x000024d4 orq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x000024d7 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x000024da orq %r10, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000024dd je LBB0_466 + 0x4c, 0x89, 0xd0, //0x000024e3 movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000024e6 notq %rax + 0x48, 0x21, 0xf8, //0x000024e9 andq %rdi, %rax + 0x4c, 0x8d, 0x34, 0x00, //0x000024ec leaq (%rax,%rax), %r14 + 0x4d, 0x09, 0xd6, //0x000024f0 orq %r10, %r14 + 0x4c, 0x89, 0xf1, //0x000024f3 movq %r14, %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000024f6 movabsq $-6148914691236517206, %rbx + 0x48, 0x31, 0xd9, //0x00002500 xorq %rbx, %rcx + 0x48, 0x21, 0xdf, //0x00002503 andq %rbx, %rdi + 0x48, 0x21, 0xcf, //0x00002506 andq %rcx, %rdi + 0x45, 0x31, 0xd2, //0x00002509 xorl %r10d, %r10d + 0x48, 0x01, 0xc7, //0x0000250c addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x0000250f setb %r10b + 0x48, 0x01, 0xff, //0x00002513 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002516 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00002520 xorq %rax, %rdi + 0x4c, 0x21, 0xf7, //0x00002523 andq %r14, %rdi + 0x48, 0xf7, 0xd7, //0x00002526 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002529 jmp LBB0_467 + //0x0000252e LBB0_466 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000252e movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x00002535 xorl %r10d, %r10d + //0x00002538 LBB0_467 + 0x48, 0x21, 0xf7, //0x00002538 andq %rsi, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xdf, //0x0000253b vmovq %rdi, %xmm3 + 0xc4, 0xc3, 0x61, 0x44, 0xd9, 0x00, //0x00002540 vpclmulqdq $0, %xmm9, %xmm3, %xmm3 + 0xc4, 0xc1, 0xf9, 0x7e, 0xde, //0x00002546 vmovq %xmm3, %r14 + 0x4d, 0x31, 0xc6, //0x0000254b xorq %r8, %r14 + 0xc5, 0xa9, 0x74, 0xda, //0x0000254e vpcmpeqb %xmm2, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00002552 vpmovmskb %xmm3, %edi + 0xc5, 0xa9, 0x74, 0xde, //0x00002556 vpcmpeqb %xmm6, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x0000255a vpmovmskb %xmm3, %eax + 0xc5, 0xa9, 0x74, 0xdd, //0x0000255e vpcmpeqb %xmm5, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x00002562 vpmovmskb %xmm3, %ecx + 0xc5, 0xa9, 0x74, 0xdf, //0x00002566 vpcmpeqb %xmm7, %xmm10, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x0000256a vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x0000256e shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00002572 shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00002576 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x0000257a orq %rax, %rdi + 0x48, 0x09, 0xcf, //0x0000257d orq %rcx, %rdi + 0x48, 0x09, 0xdf, //0x00002580 orq %rbx, %rdi + 0x4d, 0x89, 0xf0, //0x00002583 movq %r14, %r8 + 0x49, 0xf7, 0xd0, //0x00002586 notq %r8 + 0x4c, 0x21, 0xc7, //0x00002589 andq %r8, %rdi + 0xc5, 0xa1, 0x74, 0xd2, //0x0000258c vpcmpeqb %xmm2, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00002590 vpmovmskb %xmm2, %eax + 0xc5, 0xa1, 0x74, 0xd6, //0x00002594 vpcmpeqb %xmm6, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00002598 vpmovmskb %xmm2, %ebx + 0xc5, 0xa1, 0x74, 0xd5, //0x0000259c vpcmpeqb %xmm5, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000025a0 vpmovmskb %xmm2, %esi + 0xc5, 0xa1, 0x74, 0xd7, //0x000025a4 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000025a8 vpmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000025ac shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x000025b0 shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x000025b4 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x000025b8 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x000025bb orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x000025be orq %rcx, %rax + 0x4c, 0x21, 0xc0, //0x000025c1 andq %r8, %rax + 0x0f, 0x84, 0x65, 0xfe, 0xff, 0xff, //0x000025c4 je LBB0_462 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000025ca movq $24(%rsp), %r8 + 0x90, //0x000025cf .p2align 4, 0x90 + //0x000025d0 LBB0_469 + 0x48, 0x8d, 0x58, 0xff, //0x000025d0 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x000025d4 movq %rbx, %rcx + 0x48, 0x21, 0xf9, //0x000025d7 andq %rdi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x000025da popcntq %rcx, %rcx + 0x4c, 0x01, 0xd9, //0x000025df addq %r11, %rcx + 0x48, 0x39, 0xd1, //0x000025e2 cmpq %rdx, %rcx + 0x0f, 0x86, 0x8d, 0x04, 0x00, 0x00, //0x000025e5 jbe LBB0_515 + 0x48, 0xff, 0xc2, //0x000025eb incq %rdx + 0x48, 0x21, 0xd8, //0x000025ee andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000025f1 jne LBB0_469 + 0xe9, 0x33, 0xfe, 0xff, 0xff, //0x000025f7 jmp LBB0_462 + //0x000025fc LBB0_471 + 0x4d, 0x85, 0xc9, //0x000025fc testq %r9, %r9 + 0x0f, 0x8e, 0x3f, 0x05, 0x00, 0x00, //0x000025ff jle LBB0_523 + 0xc5, 0x7e, 0x7f, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00002605 vmovdqu %ymm8, $128(%rsp) + 0xc5, 0x7e, 0x7f, 0x44, 0x24, 0x60, //0x0000260e vmovdqu %ymm8, $96(%rsp) + 0x89, 0xf8, //0x00002614 movl %edi, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00002616 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x0000261b cmpl $4033, %eax + 0x0f, 0x82, 0x37, 0x00, 0x00, 0x00, //0x00002620 jb LBB0_475 + 0x48, 0x89, 0xf8, //0x00002626 movq %rdi, %rax + 0x49, 0x83, 0xf9, 0x20, //0x00002629 cmpq $32, %r9 + 0x0f, 0x82, 0x34, 0x00, 0x00, 0x00, //0x0000262d jb LBB0_476 + 0xc5, 0xf8, 0x10, 0x10, //0x00002633 vmovups (%rax), %xmm2 + 0xc5, 0xf8, 0x11, 0x54, 0x24, 0x60, //0x00002637 vmovups %xmm2, $96(%rsp) + 0xc5, 0xf8, 0x10, 0x50, 0x10, //0x0000263d vmovups $16(%rax), %xmm2 + 0xc5, 0xf8, 0x11, 0x54, 0x24, 0x70, //0x00002642 vmovups %xmm2, $112(%rsp) + 0x48, 0x83, 0xc0, 0x20, //0x00002648 addq $32, %rax + 0x49, 0x8d, 0x79, 0xe0, //0x0000264c leaq $-32(%r9), %rdi + 0x48, 0x8d, 0xb4, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00002650 leaq $128(%rsp), %rsi + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00002658 jmp LBB0_477 + //0x0000265d LBB0_475 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x0000265d movq $40(%rsp), %r15 + 0xe9, 0xee, 0xfd, 0xff, 0xff, //0x00002662 jmp LBB0_464 + //0x00002667 LBB0_476 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x00002667 leaq $96(%rsp), %rsi + 0x4c, 0x89, 0xcf, //0x0000266c movq %r9, %rdi + //0x0000266f LBB0_477 + 0x48, 0x83, 0xff, 0x10, //0x0000266f cmpq $16, %rdi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00002673 jb LBB0_478 + 0xc5, 0xf8, 0x10, 0x10, //0x00002679 vmovups (%rax), %xmm2 + 0xc5, 0xf8, 0x11, 0x16, //0x0000267d vmovups %xmm2, (%rsi) + 0x48, 0x83, 0xc0, 0x10, //0x00002681 addq $16, %rax + 0x48, 0x83, 0xc6, 0x10, //0x00002685 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x00002689 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x0000268d cmpq $8, %rdi + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00002691 jae LBB0_485 + //0x00002697 LBB0_479 + 0x48, 0x83, 0xff, 0x04, //0x00002697 cmpq $4, %rdi + 0x0f, 0x8c, 0x51, 0x00, 0x00, 0x00, //0x0000269b jl LBB0_480 + //0x000026a1 LBB0_486 + 0x48, 0x89, 0xc1, //0x000026a1 movq %rax, %rcx + 0x8b, 0x00, //0x000026a4 movl (%rax), %eax + 0x89, 0x06, //0x000026a6 movl %eax, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x000026a8 addq $4, %rcx + 0x48, 0x89, 0xc8, //0x000026ac movq %rcx, %rax + 0x48, 0x83, 0xc6, 0x04, //0x000026af addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x000026b3 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000026b7 cmpq $2, %rdi + 0x0f, 0x83, 0x3b, 0x00, 0x00, 0x00, //0x000026bb jae LBB0_481 + 0xe9, 0x4e, 0x00, 0x00, 0x00, //0x000026c1 jmp LBB0_482 + //0x000026c6 LBB0_478 + 0x48, 0x83, 0xff, 0x08, //0x000026c6 cmpq $8, %rdi + 0x0f, 0x82, 0xc7, 0xff, 0xff, 0xff, //0x000026ca jb LBB0_479 + //0x000026d0 LBB0_485 + 0x48, 0x89, 0xc1, //0x000026d0 movq %rax, %rcx + 0x48, 0x8b, 0x00, //0x000026d3 movq (%rax), %rax + 0x48, 0x89, 0x06, //0x000026d6 movq %rax, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x000026d9 addq $8, %rcx + 0x48, 0x89, 0xc8, //0x000026dd movq %rcx, %rax + 0x48, 0x83, 0xc6, 0x08, //0x000026e0 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x000026e4 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x000026e8 cmpq $4, %rdi + 0x0f, 0x8d, 0xaf, 0xff, 0xff, 0xff, //0x000026ec jge LBB0_486 + //0x000026f2 LBB0_480 + 0x48, 0x83, 0xff, 0x02, //0x000026f2 cmpq $2, %rdi + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x000026f6 jb LBB0_482 + //0x000026fc LBB0_481 + 0x48, 0x89, 0xc1, //0x000026fc movq %rax, %rcx + 0x0f, 0xb7, 0x00, //0x000026ff movzwl (%rax), %eax + 0x66, 0x89, 0x06, //0x00002702 movw %ax, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x00002705 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x00002709 addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x0000270d addq $-2, %rdi + 0x48, 0x89, 0xc8, //0x00002711 movq %rcx, %rax + //0x00002714 LBB0_482 + 0x48, 0x8d, 0x4c, 0x24, 0x60, //0x00002714 leaq $96(%rsp), %rcx + 0x48, 0x85, 0xff, //0x00002719 testq %rdi, %rdi + 0x48, 0x89, 0xcf, //0x0000271c movq %rcx, %rdi + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x0000271f movq $40(%rsp), %r15 + 0x0f, 0x84, 0x2b, 0xfd, 0xff, 0xff, //0x00002724 je LBB0_464 + 0x8a, 0x00, //0x0000272a movb (%rax), %al + 0x88, 0x06, //0x0000272c movb %al, (%rsi) + 0x48, 0x8d, 0x7c, 0x24, 0x60, //0x0000272e leaq $96(%rsp), %rdi + 0xe9, 0x1d, 0xfd, 0xff, 0xff, //0x00002733 jmp LBB0_464 + //0x00002738 LBB0_487 + 0x48, 0x83, 0xc1, 0x05, //0x00002738 addq $5, %rcx + 0x49, 0x3b, 0x0b, //0x0000273c cmpq (%r11), %rcx + 0x0f, 0x87, 0xfb, 0xf9, 0xff, 0xff, //0x0000273f ja LBB0_418 + //0x00002745 LBB0_488 + 0x49, 0x89, 0x08, //0x00002745 movq %rcx, (%r8) + 0x49, 0x89, 0xca, //0x00002748 movq %rcx, %r10 + 0xe9, 0xf0, 0xf9, 0xff, 0xff, //0x0000274b jmp LBB0_418 + //0x00002750 LBB0_489 + 0x4d, 0x8b, 0x0b, //0x00002750 movq (%r11), %r9 + 0x4d, 0x29, 0xd1, //0x00002753 subq %r10, %r9 + 0x4c, 0x01, 0xd7, //0x00002756 addq %r10, %rdi + 0x45, 0x31, 0xc0, //0x00002759 xorl %r8d, %r8d + 0x45, 0x31, 0xd2, //0x0000275c xorl %r10d, %r10d + 0x45, 0x31, 0xdb, //0x0000275f xorl %r11d, %r11d + 0x31, 0xd2, //0x00002762 xorl %edx, %edx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00002764 jmp LBB0_491 + //0x00002769 LBB0_490 + 0x49, 0xc1, 0xfe, 0x3f, //0x00002769 sarq $63, %r14 + 0xf3, 0x48, 0x0f, 0xb8, 0xc7, //0x0000276d popcntq %rdi, %rax + 0x49, 0x01, 0xc3, //0x00002772 addq %rax, %r11 + 0x48, 0x8b, 0x7c, 0x24, 0x20, //0x00002775 movq $32(%rsp), %rdi + 0x48, 0x83, 0xc7, 0x40, //0x0000277a addq $64, %rdi + 0x49, 0x83, 0xc1, 0xc0, //0x0000277e addq $-64, %r9 + 0x4d, 0x89, 0xf0, //0x00002782 movq %r14, %r8 + //0x00002785 LBB0_491 + 0x49, 0x83, 0xf9, 0x40, //0x00002785 cmpq $64, %r9 + 0x0f, 0x8c, 0xad, 0x01, 0x00, 0x00, //0x00002789 jl LBB0_499 + //0x0000278f LBB0_492 + 0xc5, 0xfa, 0x6f, 0x17, //0x0000278f vmovdqu (%rdi), %xmm2 + 0xc5, 0xfa, 0x6f, 0x77, 0x10, //0x00002793 vmovdqu $16(%rdi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x6f, 0x20, //0x00002798 vmovdqu $32(%rdi), %xmm5 + 0x48, 0x89, 0x7c, 0x24, 0x20, //0x0000279d movq %rdi, $32(%rsp) + 0xc5, 0xfa, 0x6f, 0x7f, 0x30, //0x000027a2 vmovdqu $48(%rdi), %xmm7 + 0xc5, 0xe9, 0x74, 0xd8, //0x000027a7 vpcmpeqb %xmm0, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xf3, //0x000027ab vpmovmskb %xmm3, %esi + 0xc5, 0xc9, 0x74, 0xd8, //0x000027af vpcmpeqb %xmm0, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x000027b3 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd8, //0x000027b7 vpcmpeqb %xmm0, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000027bb vpmovmskb %xmm3, %edi + 0xc5, 0xc1, 0x74, 0xd8, //0x000027bf vpcmpeqb %xmm0, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x000027c3 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x000027c7 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x000027cb shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x000027cf shlq $16, %rax + 0x48, 0x09, 0xc6, //0x000027d3 orq %rax, %rsi + 0x48, 0x09, 0xfe, //0x000027d6 orq %rdi, %rsi + 0x48, 0x09, 0xde, //0x000027d9 orq %rbx, %rsi + 0xc5, 0xe9, 0x74, 0xd9, //0x000027dc vpcmpeqb %xmm1, %xmm2, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000027e0 vpmovmskb %xmm3, %edi + 0xc5, 0xc9, 0x74, 0xd9, //0x000027e4 vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x000027e8 vpmovmskb %xmm3, %eax + 0xc5, 0xd1, 0x74, 0xd9, //0x000027ec vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x000027f0 vpmovmskb %xmm3, %ebx + 0xc5, 0xc1, 0x74, 0xd9, //0x000027f4 vpcmpeqb %xmm1, %xmm7, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x000027f8 vpmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000027fc shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00002800 shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00002804 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00002808 orq %rax, %rdi + 0x48, 0x09, 0xdf, //0x0000280b orq %rbx, %rdi + 0x48, 0x09, 0xcf, //0x0000280e orq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x00002811 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00002814 orq %r10, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00002817 je LBB0_494 + 0x4c, 0x89, 0xd0, //0x0000281d movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x00002820 notq %rax + 0x48, 0x21, 0xf8, //0x00002823 andq %rdi, %rax + 0x4c, 0x8d, 0x34, 0x00, //0x00002826 leaq (%rax,%rax), %r14 + 0x4d, 0x09, 0xd6, //0x0000282a orq %r10, %r14 + 0x4c, 0x89, 0xf1, //0x0000282d movq %r14, %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002830 movabsq $-6148914691236517206, %rbx + 0x48, 0x31, 0xd9, //0x0000283a xorq %rbx, %rcx + 0x48, 0x21, 0xdf, //0x0000283d andq %rbx, %rdi + 0x48, 0x21, 0xcf, //0x00002840 andq %rcx, %rdi + 0x45, 0x31, 0xd2, //0x00002843 xorl %r10d, %r10d + 0x48, 0x01, 0xc7, //0x00002846 addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc2, //0x00002849 setb %r10b + 0x48, 0x01, 0xff, //0x0000284d addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002850 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000285a xorq %rax, %rdi + 0x4c, 0x21, 0xf7, //0x0000285d andq %r14, %rdi + 0x48, 0xf7, 0xd7, //0x00002860 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002863 jmp LBB0_495 + //0x00002868 LBB0_494 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002868 movq $-1, %rdi + 0x45, 0x31, 0xd2, //0x0000286f xorl %r10d, %r10d + //0x00002872 LBB0_495 + 0x48, 0x21, 0xf7, //0x00002872 andq %rsi, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xdf, //0x00002875 vmovq %rdi, %xmm3 + 0xc4, 0xc3, 0x61, 0x44, 0xd9, 0x00, //0x0000287a vpclmulqdq $0, %xmm9, %xmm3, %xmm3 + 0xc4, 0xc1, 0xf9, 0x7e, 0xde, //0x00002880 vmovq %xmm3, %r14 + 0x4d, 0x31, 0xc6, //0x00002885 xorq %r8, %r14 + 0xc5, 0x99, 0x74, 0xda, //0x00002888 vpcmpeqb %xmm2, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x0000288c vpmovmskb %xmm3, %edi + 0xc5, 0x99, 0x74, 0xde, //0x00002890 vpcmpeqb %xmm6, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00002894 vpmovmskb %xmm3, %eax + 0xc5, 0x99, 0x74, 0xdd, //0x00002898 vpcmpeqb %xmm5, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x0000289c vpmovmskb %xmm3, %ecx + 0xc5, 0x99, 0x74, 0xdf, //0x000028a0 vpcmpeqb %xmm7, %xmm12, %xmm3 + 0xc5, 0xf9, 0xd7, 0xdb, //0x000028a4 vpmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x000028a8 shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x000028ac shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x000028b0 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x000028b4 orq %rax, %rdi + 0x48, 0x09, 0xcf, //0x000028b7 orq %rcx, %rdi + 0x48, 0x09, 0xdf, //0x000028ba orq %rbx, %rdi + 0x4d, 0x89, 0xf0, //0x000028bd movq %r14, %r8 + 0x49, 0xf7, 0xd0, //0x000028c0 notq %r8 + 0x4c, 0x21, 0xc7, //0x000028c3 andq %r8, %rdi + 0xc5, 0x91, 0x74, 0xd2, //0x000028c6 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000028ca vpmovmskb %xmm2, %eax + 0xc5, 0x91, 0x74, 0xd6, //0x000028ce vpcmpeqb %xmm6, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000028d2 vpmovmskb %xmm2, %ebx + 0xc5, 0x91, 0x74, 0xd5, //0x000028d6 vpcmpeqb %xmm5, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000028da vpmovmskb %xmm2, %esi + 0xc5, 0x91, 0x74, 0xd7, //0x000028de vpcmpeqb %xmm7, %xmm13, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000028e2 vpmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000028e6 shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x000028ea shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x000028ee shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x000028f2 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x000028f5 orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x000028f8 orq %rcx, %rax + 0x4c, 0x21, 0xc0, //0x000028fb andq %r8, %rax + 0x0f, 0x84, 0x65, 0xfe, 0xff, 0xff, //0x000028fe je LBB0_490 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00002904 movq $24(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002909 .p2align 4, 0x90 + //0x00002910 LBB0_497 + 0x48, 0x8d, 0x58, 0xff, //0x00002910 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00002914 movq %rbx, %rcx + 0x48, 0x21, 0xf9, //0x00002917 andq %rdi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x0000291a popcntq %rcx, %rcx + 0x4c, 0x01, 0xd9, //0x0000291f addq %r11, %rcx + 0x48, 0x39, 0xd1, //0x00002922 cmpq %rdx, %rcx + 0x0f, 0x86, 0x4d, 0x01, 0x00, 0x00, //0x00002925 jbe LBB0_515 + 0x48, 0xff, 0xc2, //0x0000292b incq %rdx + 0x48, 0x21, 0xd8, //0x0000292e andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002931 jne LBB0_497 + 0xe9, 0x2d, 0xfe, 0xff, 0xff, //0x00002937 jmp LBB0_490 + //0x0000293c LBB0_499 + 0x4d, 0x85, 0xc9, //0x0000293c testq %r9, %r9 + 0x0f, 0x8e, 0xff, 0x01, 0x00, 0x00, //0x0000293f jle LBB0_523 + 0xc5, 0x7e, 0x7f, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00002945 vmovdqu %ymm8, $128(%rsp) + 0xc5, 0x7e, 0x7f, 0x44, 0x24, 0x60, //0x0000294e vmovdqu %ymm8, $96(%rsp) + 0x89, 0xf8, //0x00002954 movl %edi, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00002956 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x0000295b cmpl $4033, %eax + 0x0f, 0x82, 0x37, 0x00, 0x00, 0x00, //0x00002960 jb LBB0_503 + 0x48, 0x89, 0xf8, //0x00002966 movq %rdi, %rax + 0x49, 0x83, 0xf9, 0x20, //0x00002969 cmpq $32, %r9 + 0x0f, 0x82, 0x34, 0x00, 0x00, 0x00, //0x0000296d jb LBB0_504 + 0xc5, 0xf8, 0x10, 0x10, //0x00002973 vmovups (%rax), %xmm2 + 0xc5, 0xf8, 0x11, 0x54, 0x24, 0x60, //0x00002977 vmovups %xmm2, $96(%rsp) + 0xc5, 0xf8, 0x10, 0x50, 0x10, //0x0000297d vmovups $16(%rax), %xmm2 + 0xc5, 0xf8, 0x11, 0x54, 0x24, 0x70, //0x00002982 vmovups %xmm2, $112(%rsp) + 0x48, 0x83, 0xc0, 0x20, //0x00002988 addq $32, %rax + 0x49, 0x8d, 0x79, 0xe0, //0x0000298c leaq $-32(%r9), %rdi + 0x48, 0x8d, 0xb4, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00002990 leaq $128(%rsp), %rsi + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00002998 jmp LBB0_505 + //0x0000299d LBB0_503 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x0000299d movq $40(%rsp), %r15 + 0xe9, 0xe8, 0xfd, 0xff, 0xff, //0x000029a2 jmp LBB0_492 + //0x000029a7 LBB0_504 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x000029a7 leaq $96(%rsp), %rsi + 0x4c, 0x89, 0xcf, //0x000029ac movq %r9, %rdi + //0x000029af LBB0_505 + 0x48, 0x83, 0xff, 0x10, //0x000029af cmpq $16, %rdi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x000029b3 jb LBB0_506 + 0xc5, 0xf8, 0x10, 0x10, //0x000029b9 vmovups (%rax), %xmm2 + 0xc5, 0xf8, 0x11, 0x16, //0x000029bd vmovups %xmm2, (%rsi) + 0x48, 0x83, 0xc0, 0x10, //0x000029c1 addq $16, %rax + 0x48, 0x83, 0xc6, 0x10, //0x000029c5 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x000029c9 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x000029cd cmpq $8, %rdi + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x000029d1 jae LBB0_513 + //0x000029d7 LBB0_507 + 0x48, 0x83, 0xff, 0x04, //0x000029d7 cmpq $4, %rdi + 0x0f, 0x8c, 0x51, 0x00, 0x00, 0x00, //0x000029db jl LBB0_508 + //0x000029e1 LBB0_514 + 0x48, 0x89, 0xc1, //0x000029e1 movq %rax, %rcx + 0x8b, 0x00, //0x000029e4 movl (%rax), %eax + 0x89, 0x06, //0x000029e6 movl %eax, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x000029e8 addq $4, %rcx + 0x48, 0x89, 0xc8, //0x000029ec movq %rcx, %rax + 0x48, 0x83, 0xc6, 0x04, //0x000029ef addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x000029f3 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000029f7 cmpq $2, %rdi + 0x0f, 0x83, 0x3b, 0x00, 0x00, 0x00, //0x000029fb jae LBB0_509 + 0xe9, 0x4e, 0x00, 0x00, 0x00, //0x00002a01 jmp LBB0_510 + //0x00002a06 LBB0_506 + 0x48, 0x83, 0xff, 0x08, //0x00002a06 cmpq $8, %rdi + 0x0f, 0x82, 0xc7, 0xff, 0xff, 0xff, //0x00002a0a jb LBB0_507 + //0x00002a10 LBB0_513 + 0x48, 0x89, 0xc1, //0x00002a10 movq %rax, %rcx + 0x48, 0x8b, 0x00, //0x00002a13 movq (%rax), %rax + 0x48, 0x89, 0x06, //0x00002a16 movq %rax, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x00002a19 addq $8, %rcx + 0x48, 0x89, 0xc8, //0x00002a1d movq %rcx, %rax + 0x48, 0x83, 0xc6, 0x08, //0x00002a20 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x00002a24 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00002a28 cmpq $4, %rdi + 0x0f, 0x8d, 0xaf, 0xff, 0xff, 0xff, //0x00002a2c jge LBB0_514 + //0x00002a32 LBB0_508 + 0x48, 0x83, 0xff, 0x02, //0x00002a32 cmpq $2, %rdi + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00002a36 jb LBB0_510 + //0x00002a3c LBB0_509 + 0x48, 0x89, 0xc1, //0x00002a3c movq %rax, %rcx + 0x0f, 0xb7, 0x00, //0x00002a3f movzwl (%rax), %eax + 0x66, 0x89, 0x06, //0x00002a42 movw %ax, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x00002a45 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x00002a49 addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00002a4d addq $-2, %rdi + 0x48, 0x89, 0xc8, //0x00002a51 movq %rcx, %rax + //0x00002a54 LBB0_510 + 0x48, 0x8d, 0x4c, 0x24, 0x60, //0x00002a54 leaq $96(%rsp), %rcx + 0x48, 0x85, 0xff, //0x00002a59 testq %rdi, %rdi + 0x48, 0x89, 0xcf, //0x00002a5c movq %rcx, %rdi + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00002a5f movq $40(%rsp), %r15 + 0x0f, 0x84, 0x25, 0xfd, 0xff, 0xff, //0x00002a64 je LBB0_492 + 0x8a, 0x00, //0x00002a6a movb (%rax), %al + 0x88, 0x06, //0x00002a6c movb %al, (%rsi) + 0x48, 0x8d, 0x7c, 0x24, 0x60, //0x00002a6e leaq $96(%rsp), %rdi + 0xe9, 0x17, 0xfd, 0xff, 0xff, //0x00002a73 jmp LBB0_492 + //0x00002a78 LBB0_515 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00002a78 movq $56(%rsp), %r11 + 0x49, 0x8b, 0x0b, //0x00002a7d movq (%r11), %rcx + 0x48, 0x0f, 0xbc, 0xc0, //0x00002a80 bsfq %rax, %rax + 0x4c, 0x29, 0xc8, //0x00002a84 subq %r9, %rax + 0x4c, 0x8d, 0x54, 0x08, 0x01, //0x00002a87 leaq $1(%rax,%rcx), %r10 + 0x4d, 0x89, 0x10, //0x00002a8c movq %r10, (%r8) + 0x49, 0x8b, 0x03, //0x00002a8f movq (%r11), %rax + 0x49, 0x39, 0xc2, //0x00002a92 cmpq %rax, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00002a95 cmovaq %rax, %r10 + 0x4d, 0x89, 0x10, //0x00002a99 movq %r10, (%r8) + //0x00002a9c LBB0_516 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002a9c movabsq $4294977024, %r9 + 0x4c, 0x8b, 0x74, 0x24, 0x48, //0x00002aa6 movq $72(%rsp), %r14 + 0xe9, 0x90, 0xf6, 0xff, 0xff, //0x00002aab jmp LBB0_418 + //0x00002ab0 LBB0_457 + 0x4d, 0x85, 0xdb, //0x00002ab0 testq %r11, %r11 + 0x0f, 0x85, 0xa5, 0x00, 0x00, 0x00, //0x00002ab3 jne LBB0_524 + 0x4a, 0x8d, 0x4c, 0x08, 0x01, //0x00002ab9 leaq $1(%rax,%r9), %rcx + 0x48, 0xf7, 0xd0, //0x00002abe notq %rax + 0x4c, 0x01, 0xc0, //0x00002ac1 addq %r8, %rax + //0x00002ac4 LBB0_459 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00002ac4 movq $56(%rsp), %r11 + //0x00002ac9 LBB0_460 + 0x48, 0x85, 0xc0, //0x00002ac9 testq %rax, %rax + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00002acc movq $24(%rsp), %r8 + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002ad1 movabsq $4294977024, %r9 + 0x0f, 0x8f, 0x1d, 0x00, 0x00, 0x00, //0x00002adb jg LBB0_518 + 0xe9, 0x5a, 0xf6, 0xff, 0xff, //0x00002ae1 jmp LBB0_418 + //0x00002ae6 LBB0_517 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00002ae6 movq $-2, %rdx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00002aed movl $2, %esi + 0x48, 0x01, 0xf1, //0x00002af2 addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00002af5 addq %rdx, %rax + 0x0f, 0x8e, 0x42, 0xf6, 0xff, 0xff, //0x00002af8 jle LBB0_418 + //0x00002afe LBB0_518 + 0x0f, 0xb6, 0x11, //0x00002afe movzbl (%rcx), %edx + 0x80, 0xfa, 0x5c, //0x00002b01 cmpb $92, %dl + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00002b04 je LBB0_517 + 0x80, 0xfa, 0x22, //0x00002b0a cmpb $34, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00002b0d je LBB0_521 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00002b13 movq $-1, %rdx + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00002b1a movl $1, %esi + 0x48, 0x01, 0xf1, //0x00002b1f addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00002b22 addq %rdx, %rax + 0x0f, 0x8f, 0xd3, 0xff, 0xff, 0xff, //0x00002b25 jg LBB0_518 + 0xe9, 0x10, 0xf6, 0xff, 0xff, //0x00002b2b jmp LBB0_418 + //0x00002b30 LBB0_521 + 0x48, 0x29, 0xf9, //0x00002b30 subq %rdi, %rcx + 0x48, 0xff, 0xc1, //0x00002b33 incq %rcx + 0xe9, 0x0a, 0xfc, 0xff, 0xff, //0x00002b36 jmp LBB0_488 + //0x00002b3b LBB0_522 + 0x4a, 0x8d, 0x0c, 0x17, //0x00002b3b leaq (%rdi,%r10), %rcx + 0xe9, 0x80, 0xff, 0xff, 0xff, //0x00002b3f jmp LBB0_459 + //0x00002b44 LBB0_523 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00002b44 movq $56(%rsp), %r11 + 0x4d, 0x8b, 0x13, //0x00002b49 movq (%r11), %r10 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00002b4c movq $24(%rsp), %r8 + 0x4d, 0x89, 0x10, //0x00002b51 movq %r10, (%r8) + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00002b54 movq $40(%rsp), %r15 + 0xe9, 0x3e, 0xff, 0xff, 0xff, //0x00002b59 jmp LBB0_516 + //0x00002b5e LBB0_524 + 0x49, 0x8d, 0x48, 0xff, //0x00002b5e leaq $-1(%r8), %rcx + 0x48, 0x39, 0xc1, //0x00002b62 cmpq %rax, %rcx + 0x0f, 0x85, 0x14, 0x00, 0x00, 0x00, //0x00002b65 jne LBB0_526 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00002b6b movq $24(%rsp), %r8 + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00002b70 movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00002b75 movq $56(%rsp), %r11 + 0xe9, 0x1d, 0xff, 0xff, 0xff, //0x00002b7a jmp LBB0_516 + //0x00002b7f LBB0_526 + 0x4a, 0x8d, 0x4c, 0x08, 0x02, //0x00002b7f leaq $2(%rax,%r9), %rcx + 0x49, 0x29, 0xc0, //0x00002b84 subq %rax, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00002b87 addq $-2, %r8 + 0x4c, 0x89, 0xc0, //0x00002b8b movq %r8, %rax + 0x4c, 0x8b, 0x7c, 0x24, 0x28, //0x00002b8e movq $40(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x38, //0x00002b93 movq $56(%rsp), %r11 + 0x4c, 0x8b, 0x74, 0x24, 0x48, //0x00002b98 movq $72(%rsp), %r14 + 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00002b9d jmp LBB0_460 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ba2 .p2align 4, 0x90 + //0x00002bb0 LBB0_446 + 0x49, 0x83, 0xc5, 0x10, //0x00002bb0 addq $16, %r13 + 0x4c, 0x89, 0xd0, //0x00002bb4 movq %r10, %rax + 0x4c, 0x3b, 0xac, 0x24, 0xc0, 0x00, 0x00, 0x00, //0x00002bb7 cmpq $192(%rsp), %r13 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00002bbf movq $64(%rsp), %rcx + 0x0f, 0x85, 0xc9, 0xd5, 0xff, 0xff, //0x00002bc4 jne LBB0_2 + //0x00002bca LBB0_447 + 0x48, 0x85, 0xc9, //0x00002bca testq %rcx, %rcx + 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00002bcd je LBB0_527 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002bd3 movl $1, %r11d + 0xc4, 0xc1, 0xf9, 0x6e, 0xc3, //0x00002bd9 vmovq %r11, %xmm0 + 0xc5, 0xfa, 0x7f, 0x01, //0x00002bde vmovdqu %xmm0, (%rcx) + 0x4d, 0x8b, 0x27, //0x00002be2 movq (%r15), %r12 + 0x4c, 0x89, 0xe0, //0x00002be5 movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00002be8 notq %rax + 0x48, 0x89, 0x44, 0x24, 0x38, //0x00002beb movq %rax, $56(%rsp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002bf0 movl $1, %eax + 0x4c, 0x29, 0xe0, //0x00002bf5 subq %r12, %rax + 0x48, 0x89, 0x44, 0x24, 0x58, //0x00002bf8 movq %rax, $88(%rsp) + 0x4d, 0x8b, 0x38, //0x00002bfd movq (%r8), %r15 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x00002c00 leaq $5(%r12), %rax + 0x48, 0x89, 0x84, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x00002c05 movq %rax, $176(%rsp) + 0x48, 0xc7, 0x44, 0x24, 0x48, 0xff, 0xff, 0xff, 0xff, //0x00002c0d movq $-1, $72(%rsp) + 0xc5, 0xfa, 0x6f, 0x05, 0x12, 0xd4, 0xff, 0xff, //0x00002c16 vmovdqu $-11246(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x1a, 0xd4, 0xff, 0xff, //0x00002c1e vmovdqu $-11238(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x05, 0x52, 0xd4, 0xff, 0xff, //0x00002c26 vmovdqu $-11182(%rip), %xmm8 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x5a, 0xd4, 0xff, 0xff, //0x00002c2e vmovdqu $-11174(%rip), %xmm9 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x62, 0xd4, 0xff, 0xff, //0x00002c36 vmovdqu $-11166(%rip), %xmm10 /* LCPI0_10+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0x6a, 0xd4, 0xff, 0xff, //0x00002c3e vmovdqu $-11158(%rip), %xmm11 /* LCPI0_11+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x25, 0xc2, 0xd3, 0xff, 0xff, //0x00002c46 vmovdqu $-11326(%rip), %xmm12 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x2d, 0x6a, 0xd4, 0xff, 0xff, //0x00002c4e vmovdqu $-11158(%rip), %xmm13 /* LCPI0_12+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x72, 0xd4, 0xff, 0xff, //0x00002c56 vmovdqu $-11150(%rip), %xmm2 /* LCPI0_13+0(%rip) */ + 0x4c, 0x89, 0x64, 0x24, 0x30, //0x00002c5e movq %r12, $48(%rsp) + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x00002c63 jmp LBB0_556 + //0x00002c68 LBB0_527 + 0x4d, 0x8b, 0x1f, //0x00002c68 movq (%r15), %r11 + 0x49, 0x8b, 0x77, 0x08, //0x00002c6b movq $8(%r15), %rsi + 0x49, 0x8b, 0x10, //0x00002c6f movq (%r8), %rdx + 0x48, 0x89, 0xd1, //0x00002c72 movq %rdx, %rcx + 0x48, 0x29, 0xf1, //0x00002c75 subq %rsi, %rcx + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x00002c78 jae LBB0_532 + 0x41, 0x8a, 0x04, 0x13, //0x00002c7e movb (%r11,%rdx), %al + 0x3c, 0x0d, //0x00002c82 cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00002c84 je LBB0_532 + 0x3c, 0x20, //0x00002c8a cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002c8c je LBB0_532 + 0x04, 0xf7, //0x00002c92 addb $-9, %al + 0x3c, 0x01, //0x00002c94 cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00002c96 jbe LBB0_532 + 0x49, 0x89, 0xd4, //0x00002c9c movq %rdx, %r12 + 0xe9, 0x42, 0x17, 0x00, 0x00, //0x00002c9f jmp LBB0_843 + //0x00002ca4 LBB0_532 + 0x4c, 0x8d, 0x62, 0x01, //0x00002ca4 leaq $1(%rdx), %r12 + 0x49, 0x39, 0xf4, //0x00002ca8 cmpq %rsi, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00002cab jae LBB0_536 + 0x43, 0x8a, 0x04, 0x23, //0x00002cb1 movb (%r11,%r12), %al + 0x3c, 0x0d, //0x00002cb5 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002cb7 je LBB0_536 + 0x3c, 0x20, //0x00002cbd cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002cbf je LBB0_536 + 0x04, 0xf7, //0x00002cc5 addb $-9, %al + 0x3c, 0x01, //0x00002cc7 cmpb $1, %al + 0x0f, 0x87, 0x17, 0x17, 0x00, 0x00, //0x00002cc9 ja LBB0_843 + //0x00002ccf LBB0_536 + 0x4c, 0x8d, 0x62, 0x02, //0x00002ccf leaq $2(%rdx), %r12 + 0x49, 0x39, 0xf4, //0x00002cd3 cmpq %rsi, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00002cd6 jae LBB0_540 + 0x43, 0x8a, 0x04, 0x23, //0x00002cdc movb (%r11,%r12), %al + 0x3c, 0x0d, //0x00002ce0 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002ce2 je LBB0_540 + 0x3c, 0x20, //0x00002ce8 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002cea je LBB0_540 + 0x04, 0xf7, //0x00002cf0 addb $-9, %al + 0x3c, 0x01, //0x00002cf2 cmpb $1, %al + 0x0f, 0x87, 0xec, 0x16, 0x00, 0x00, //0x00002cf4 ja LBB0_843 + //0x00002cfa LBB0_540 + 0x4c, 0x8d, 0x62, 0x03, //0x00002cfa leaq $3(%rdx), %r12 + 0x49, 0x39, 0xf4, //0x00002cfe cmpq %rsi, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00002d01 jae LBB0_544 + 0x43, 0x8a, 0x04, 0x23, //0x00002d07 movb (%r11,%r12), %al + 0x3c, 0x0d, //0x00002d0b cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002d0d je LBB0_544 + 0x3c, 0x20, //0x00002d13 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002d15 je LBB0_544 + 0x04, 0xf7, //0x00002d1b addb $-9, %al + 0x3c, 0x01, //0x00002d1d cmpb $1, %al + 0x0f, 0x87, 0xc1, 0x16, 0x00, 0x00, //0x00002d1f ja LBB0_843 + //0x00002d25 LBB0_544 + 0x48, 0x8d, 0x7a, 0x04, //0x00002d25 leaq $4(%rdx), %rdi + 0x48, 0x39, 0xfe, //0x00002d29 cmpq %rdi, %rsi + 0x0f, 0x86, 0x0e, 0x16, 0x00, 0x00, //0x00002d2c jbe LBB0_831 + 0x48, 0x39, 0xfe, //0x00002d32 cmpq %rdi, %rsi + 0x0f, 0x84, 0x74, 0x16, 0x00, 0x00, //0x00002d35 je LBB0_840 + 0x49, 0x8d, 0x3c, 0x33, //0x00002d3b leaq (%r11,%rsi), %rdi + 0x48, 0x83, 0xc1, 0x04, //0x00002d3f addq $4, %rcx + 0x4e, 0x8d, 0x64, 0x1a, 0x05, //0x00002d43 leaq $5(%rdx,%r11), %r12 + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002d48 movabsq $4294977024, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002d52 .p2align 4, 0x90 + //0x00002d60 LBB0_547 + 0x41, 0x0f, 0xbe, 0x54, 0x24, 0xff, //0x00002d60 movsbl $-1(%r12), %edx + 0x83, 0xfa, 0x20, //0x00002d66 cmpl $32, %edx + 0x0f, 0x87, 0x5e, 0x16, 0x00, 0x00, //0x00002d69 ja LBB0_842 + 0x48, 0x0f, 0xa3, 0xd0, //0x00002d6f btq %rdx, %rax + 0x0f, 0x83, 0x54, 0x16, 0x00, 0x00, //0x00002d73 jae LBB0_842 + 0x49, 0xff, 0xc4, //0x00002d79 incq %r12 + 0x48, 0xff, 0xc1, //0x00002d7c incq %rcx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00002d7f jne LBB0_547 + 0xe9, 0x28, 0x16, 0x00, 0x00, //0x00002d85 jmp LBB0_841 + //0x00002d8a LBB0_550 + 0x49, 0x89, 0x30, //0x00002d8a movq %rsi, (%r8) + 0x49, 0x89, 0xf2, //0x00002d8d movq %rsi, %r10 + 0xe9, 0xec, 0x15, 0x00, 0x00, //0x00002d90 jmp LBB0_837 + //0x00002d95 LBB0_551 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x00002d95 cmpq $4095, %r11 + 0x0f, 0x8f, 0x5c, 0x17, 0x00, 0x00, //0x00002d9c jg LBB0_942 + 0x49, 0x8d, 0x43, 0x01, //0x00002da2 leaq $1(%r11), %rax + 0x48, 0x89, 0x01, //0x00002da6 movq %rax, (%rcx) + 0x4a, 0xc7, 0x44, 0xd9, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00002da9 movq $0, $8(%rcx,%r11,8) + //0x00002db2 LBB0_553 + 0x4d, 0x89, 0xfa, //0x00002db2 movq %r15, %r10 + //0x00002db5 LBB0_554 + 0x48, 0x8b, 0x31, //0x00002db5 movq (%rcx), %rsi + 0x4d, 0x89, 0xd7, //0x00002db8 movq %r10, %r15 + 0x49, 0x89, 0xf3, //0x00002dbb movq %rsi, %r11 + 0x4c, 0x8b, 0x6c, 0x24, 0x48, //0x00002dbe movq $72(%rsp), %r13 + 0x48, 0x85, 0xf6, //0x00002dc3 testq %rsi, %rsi + 0x0f, 0x84, 0xc2, 0x15, 0x00, 0x00, //0x00002dc6 je LBB0_839 + //0x00002dcc LBB0_556 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00002dcc movq $40(%rsp), %r10 + 0x49, 0x8b, 0x52, 0x08, //0x00002dd1 movq $8(%r10), %rdx + 0x4c, 0x89, 0xfe, //0x00002dd5 movq %r15, %rsi + 0x48, 0x29, 0xd6, //0x00002dd8 subq %rdx, %rsi + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00002ddb jae LBB0_561 + 0x43, 0x8a, 0x04, 0x3c, //0x00002de1 movb (%r12,%r15), %al + 0x3c, 0x0d, //0x00002de5 cmpb $13, %al + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00002de7 je LBB0_561 + 0x3c, 0x20, //0x00002ded cmpb $32, %al + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00002def je LBB0_561 + 0x04, 0xf7, //0x00002df5 addb $-9, %al + 0x3c, 0x01, //0x00002df7 cmpb $1, %al + 0x0f, 0x86, 0x11, 0x00, 0x00, 0x00, //0x00002df9 jbe LBB0_561 + 0x4d, 0x89, 0xf9, //0x00002dff movq %r15, %r9 + 0xe9, 0x37, 0x01, 0x00, 0x00, //0x00002e02 jmp LBB0_583 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e07 .p2align 4, 0x90 + //0x00002e10 LBB0_561 + 0x4d, 0x8d, 0x4f, 0x01, //0x00002e10 leaq $1(%r15), %r9 + 0x49, 0x39, 0xd1, //0x00002e14 cmpq %rdx, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002e17 jae LBB0_565 + 0x43, 0x8a, 0x1c, 0x0c, //0x00002e1d movb (%r12,%r9), %bl + 0x80, 0xfb, 0x0d, //0x00002e21 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002e24 je LBB0_565 + 0x80, 0xfb, 0x20, //0x00002e2a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002e2d je LBB0_565 + 0x80, 0xc3, 0xf7, //0x00002e33 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002e36 cmpb $1, %bl + 0x0f, 0x87, 0xff, 0x00, 0x00, 0x00, //0x00002e39 ja LBB0_583 + 0x90, //0x00002e3f .p2align 4, 0x90 + //0x00002e40 LBB0_565 + 0x4d, 0x8d, 0x4f, 0x02, //0x00002e40 leaq $2(%r15), %r9 + 0x49, 0x39, 0xd1, //0x00002e44 cmpq %rdx, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002e47 jae LBB0_569 + 0x43, 0x8a, 0x1c, 0x0c, //0x00002e4d movb (%r12,%r9), %bl + 0x80, 0xfb, 0x0d, //0x00002e51 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002e54 je LBB0_569 + 0x80, 0xfb, 0x20, //0x00002e5a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002e5d je LBB0_569 + 0x80, 0xc3, 0xf7, //0x00002e63 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002e66 cmpb $1, %bl + 0x0f, 0x87, 0xcf, 0x00, 0x00, 0x00, //0x00002e69 ja LBB0_583 + 0x90, //0x00002e6f .p2align 4, 0x90 + //0x00002e70 LBB0_569 + 0x4d, 0x8d, 0x4f, 0x03, //0x00002e70 leaq $3(%r15), %r9 + 0x49, 0x39, 0xd1, //0x00002e74 cmpq %rdx, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002e77 jae LBB0_573 + 0x43, 0x8a, 0x1c, 0x0c, //0x00002e7d movb (%r12,%r9), %bl + 0x80, 0xfb, 0x0d, //0x00002e81 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002e84 je LBB0_573 + 0x80, 0xfb, 0x20, //0x00002e8a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002e8d je LBB0_573 + 0x80, 0xc3, 0xf7, //0x00002e93 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002e96 cmpb $1, %bl + 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x00002e99 ja LBB0_583 + 0x90, //0x00002e9f .p2align 4, 0x90 + //0x00002ea0 LBB0_573 + 0x49, 0x8d, 0x7f, 0x04, //0x00002ea0 leaq $4(%r15), %rdi + 0x48, 0x39, 0xfa, //0x00002ea4 cmpq %rdi, %rdx + 0x0f, 0x86, 0x93, 0x14, 0x00, 0x00, //0x00002ea7 jbe LBB0_831 + 0x48, 0x39, 0xfa, //0x00002ead cmpq %rdi, %rdx + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00002eb0 je LBB0_579 + 0x49, 0x8d, 0x3c, 0x14, //0x00002eb6 leaq (%r12,%rdx), %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00002eba addq $4, %rsi + 0x4c, 0x03, 0xbc, 0x24, 0xb0, 0x00, 0x00, 0x00, //0x00002ebe addq $176(%rsp), %r15 + 0x4d, 0x89, 0xf9, //0x00002ec6 movq %r15, %r9 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002ec9 movabsq $4294977024, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ed3 .p2align 4, 0x90 + //0x00002ee0 LBB0_576 + 0x41, 0x0f, 0xbe, 0x41, 0xff, //0x00002ee0 movsbl $-1(%r9), %eax + 0x83, 0xf8, 0x20, //0x00002ee5 cmpl $32, %eax + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00002ee8 ja LBB0_582 + 0x48, 0x0f, 0xa3, 0xc3, //0x00002eee btq %rax, %rbx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00002ef2 jae LBB0_582 + 0x49, 0xff, 0xc1, //0x00002ef8 incq %r9 + 0x48, 0xff, 0xc6, //0x00002efb incq %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00002efe jne LBB0_576 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002f04 jmp LBB0_580 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f09 .p2align 4, 0x90 + //0x00002f10 LBB0_579 + 0x4c, 0x01, 0xe7, //0x00002f10 addq %r12, %rdi + //0x00002f13 LBB0_580 + 0x4c, 0x29, 0xe7, //0x00002f13 subq %r12, %rdi + 0x49, 0x89, 0xf9, //0x00002f16 movq %rdi, %r9 + 0x49, 0x39, 0xd1, //0x00002f19 cmpq %rdx, %r9 + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00002f1c jb LBB0_583 + 0xe9, 0x7c, 0x14, 0x00, 0x00, //0x00002f22 jmp LBB0_581 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f27 .p2align 4, 0x90 + //0x00002f30 LBB0_582 + 0x4c, 0x03, 0x4c, 0x24, 0x38, //0x00002f30 addq $56(%rsp), %r9 + 0x49, 0x39, 0xd1, //0x00002f35 cmpq %rdx, %r9 + 0x0f, 0x83, 0x65, 0x14, 0x00, 0x00, //0x00002f38 jae LBB0_581 + //0x00002f3e LBB0_583 + 0x4d, 0x8d, 0x79, 0x01, //0x00002f3e leaq $1(%r9), %r15 + 0x4d, 0x89, 0x38, //0x00002f42 movq %r15, (%r8) + 0x43, 0x0f, 0xbe, 0x3c, 0x0c, //0x00002f45 movsbl (%r12,%r9), %edi + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00002f4a movq $-1, %r13 + 0x85, 0xff, //0x00002f51 testl %edi, %edi + 0x0f, 0x84, 0x35, 0x14, 0x00, 0x00, //0x00002f53 je LBB0_839 + 0x49, 0x8d, 0x73, 0xff, //0x00002f59 leaq $-1(%r11), %rsi + 0x42, 0x8b, 0x04, 0xd9, //0x00002f5d movl (%rcx,%r11,8), %eax + 0x48, 0x8b, 0x54, 0x24, 0x48, //0x00002f61 movq $72(%rsp), %rdx + 0x48, 0x83, 0xfa, 0xff, //0x00002f66 cmpq $-1, %rdx + 0x49, 0x0f, 0x44, 0xd1, //0x00002f6a cmoveq %r9, %rdx + 0x48, 0x89, 0x54, 0x24, 0x48, //0x00002f6e movq %rdx, $72(%rsp) + 0xff, 0xc8, //0x00002f73 decl %eax + 0x83, 0xf8, 0x05, //0x00002f75 cmpl $5, %eax + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00002f78 ja LBB0_589 + 0x48, 0x8d, 0x15, 0x13, 0x24, 0x00, 0x00, //0x00002f7e leaq $9235(%rip), %rdx /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x00002f85 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x00002f89 addq %rdx, %rax + 0xff, 0xe0, //0x00002f8c jmpq *%rax + //0x00002f8e LBB0_586 + 0x83, 0xff, 0x2c, //0x00002f8e cmpl $44, %edi + 0x0f, 0x84, 0xfe, 0xfd, 0xff, 0xff, //0x00002f91 je LBB0_551 + 0x83, 0xff, 0x5d, //0x00002f97 cmpl $93, %edi + 0x0f, 0x84, 0x87, 0x04, 0x00, 0x00, //0x00002f9a je LBB0_588 + 0xe9, 0xe2, 0x13, 0x00, 0x00, //0x00002fa0 jmp LBB0_838 + //0x00002fa5 LBB0_589 + 0x48, 0x89, 0x31, //0x00002fa5 movq %rsi, (%rcx) + 0x83, 0xff, 0x7b, //0x00002fa8 cmpl $123, %edi + 0x0f, 0x86, 0x01, 0x02, 0x00, 0x00, //0x00002fab jbe LBB0_615 + 0xe9, 0xd1, 0x13, 0x00, 0x00, //0x00002fb1 jmp LBB0_838 + //0x00002fb6 LBB0_590 + 0x83, 0xff, 0x2c, //0x00002fb6 cmpl $44, %edi + 0x0f, 0x85, 0x5f, 0x04, 0x00, 0x00, //0x00002fb9 jne LBB0_591 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x00002fbf cmpq $4095, %r11 + 0x0f, 0x8f, 0x32, 0x15, 0x00, 0x00, //0x00002fc6 jg LBB0_942 + 0x49, 0x8d, 0x43, 0x01, //0x00002fcc leaq $1(%r11), %rax + 0x48, 0x89, 0x01, //0x00002fd0 movq %rax, (%rcx) + 0x4a, 0xc7, 0x44, 0xd9, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00002fd3 movq $3, $8(%rcx,%r11,8) + 0xe9, 0xd1, 0xfd, 0xff, 0xff, //0x00002fdc jmp LBB0_553 + //0x00002fe1 LBB0_592 + 0x40, 0x80, 0xff, 0x22, //0x00002fe1 cmpb $34, %dil + 0x0f, 0x85, 0x9c, 0x13, 0x00, 0x00, //0x00002fe5 jne LBB0_838 + 0x4a, 0xc7, 0x04, 0xd9, 0x04, 0x00, 0x00, 0x00, //0x00002feb movq $4, (%rcx,%r11,8) + 0x49, 0x8b, 0x42, 0x08, //0x00002ff3 movq $8(%r10), %rax + 0x48, 0x89, 0xc3, //0x00002ff7 movq %rax, %rbx + 0x4c, 0x29, 0xfb, //0x00002ffa subq %r15, %rbx + 0x0f, 0x84, 0x78, 0x1e, 0x00, 0x00, //0x00002ffd je LBB0_960 + 0x4f, 0x8d, 0x14, 0x3c, //0x00003003 leaq (%r12,%r15), %r10 + 0x48, 0x83, 0xfb, 0x40, //0x00003007 cmpq $64, %rbx + 0x48, 0x89, 0x44, 0x24, 0x20, //0x0000300b movq %rax, $32(%rsp) + 0x0f, 0x82, 0xd6, 0x10, 0x00, 0x00, //0x00003010 jb LBB0_809 + 0x89, 0xd9, //0x00003016 movl %ebx, %ecx + 0x83, 0xe1, 0x3f, //0x00003018 andl $63, %ecx + 0x48, 0x89, 0x4c, 0x24, 0x50, //0x0000301b movq %rcx, $80(%rsp) + 0x4c, 0x29, 0xc8, //0x00003020 subq %r9, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x00003023 addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00003027 andq $-64, %rax + 0x4c, 0x01, 0xc8, //0x0000302b addq %r9, %rax + 0x49, 0x8d, 0x44, 0x04, 0x41, //0x0000302e leaq $65(%r12,%rax), %rax + 0x48, 0x89, 0x84, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x00003033 movq %rax, $168(%rsp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000303b movq $-1, %r12 + 0x45, 0x31, 0xed, //0x00003042 xorl %r13d, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003045 .p2align 4, 0x90 + //0x00003050 LBB0_596 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1a, //0x00003050 vmovdqu (%r10), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x62, 0x10, //0x00003055 vmovdqu $16(%r10), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6a, 0x20, //0x0000305b vmovdqu $32(%r10), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x72, 0x30, //0x00003061 vmovdqu $48(%r10), %xmm6 + 0xc5, 0xe1, 0x74, 0xf8, //0x00003067 vpcmpeqb %xmm0, %xmm3, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000306b vpmovmskb %xmm7, %esi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000306f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xc7, //0x00003073 vpmovmskb %xmm7, %eax + 0xc5, 0xd1, 0x74, 0xf8, //0x00003077 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xd7, //0x0000307b vpmovmskb %xmm7, %edx + 0xc5, 0xc9, 0x74, 0xf8, //0x0000307f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00003083 vpmovmskb %xmm7, %ecx + 0xc5, 0xe1, 0x74, 0xd9, //0x00003087 vpcmpeqb %xmm1, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x0000308b vpmovmskb %xmm3, %edi + 0xc5, 0xd9, 0x74, 0xd9, //0x0000308f vpcmpeqb %xmm1, %xmm4, %xmm3 + 0xc5, 0x79, 0xd7, 0xc3, //0x00003093 vpmovmskb %xmm3, %r8d + 0xc5, 0xd1, 0x74, 0xd9, //0x00003097 vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0x79, 0xd7, 0xdb, //0x0000309b vpmovmskb %xmm3, %r11d + 0xc5, 0xc9, 0x74, 0xd9, //0x0000309f vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0x79, 0xd7, 0xf3, //0x000030a3 vpmovmskb %xmm3, %r14d + 0x48, 0xc1, 0xe1, 0x30, //0x000030a7 shlq $48, %rcx + 0x48, 0xc1, 0xe2, 0x20, //0x000030ab shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x000030af shlq $16, %rax + 0x48, 0x09, 0xc6, //0x000030b3 orq %rax, %rsi + 0x48, 0x09, 0xd6, //0x000030b6 orq %rdx, %rsi + 0x49, 0xc1, 0xe6, 0x30, //0x000030b9 shlq $48, %r14 + 0x49, 0xc1, 0xe3, 0x20, //0x000030bd shlq $32, %r11 + 0x49, 0xc1, 0xe0, 0x10, //0x000030c1 shlq $16, %r8 + 0x4c, 0x09, 0xc7, //0x000030c5 orq %r8, %rdi + 0x4c, 0x09, 0xdf, //0x000030c8 orq %r11, %rdi + 0x4c, 0x09, 0xf7, //0x000030cb orq %r14, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x000030ce cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000030d2 jne LBB0_598 + 0x48, 0x85, 0xff, //0x000030d8 testq %rdi, %rdi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x000030db jne LBB0_610 + //0x000030e1 LBB0_598 + 0x48, 0x09, 0xce, //0x000030e1 orq %rcx, %rsi + 0x48, 0x89, 0xf8, //0x000030e4 movq %rdi, %rax + 0x4c, 0x09, 0xe8, //0x000030e7 orq %r13, %rax + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000030ea movq $24(%rsp), %r8 + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x000030ef jne LBB0_609 + 0x48, 0x85, 0xf6, //0x000030f5 testq %rsi, %rsi + 0x0f, 0x85, 0x73, 0x0b, 0x00, 0x00, //0x000030f8 jne LBB0_606 + //0x000030fe LBB0_600 + 0x48, 0x83, 0xc3, 0xc0, //0x000030fe addq $-64, %rbx + 0x49, 0x83, 0xc2, 0x40, //0x00003102 addq $64, %r10 + 0x48, 0x83, 0xfb, 0x3f, //0x00003106 cmpq $63, %rbx + 0x0f, 0x87, 0x40, 0xff, 0xff, 0xff, //0x0000310a ja LBB0_596 + 0xe9, 0xdf, 0x0a, 0x00, 0x00, //0x00003110 jmp LBB0_601 + //0x00003115 LBB0_609 + 0x4c, 0x89, 0xe8, //0x00003115 movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x00003118 notq %rax + 0x48, 0x21, 0xf8, //0x0000311b andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x0000311e leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe9, //0x00003122 orq %r13, %rcx + 0x48, 0x89, 0xca, //0x00003125 movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003128 notq %rdx + 0x48, 0x21, 0xfa, //0x0000312b andq %rdi, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000312e movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x00003138 andq %rdi, %rdx + 0x45, 0x31, 0xed, //0x0000313b xorl %r13d, %r13d + 0x48, 0x01, 0xc2, //0x0000313e addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc5, //0x00003141 setb %r13b + 0x48, 0x01, 0xd2, //0x00003145 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003148 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00003152 xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x00003155 andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003158 notq %rdx + 0x48, 0x21, 0xd6, //0x0000315b andq %rdx, %rsi + 0x48, 0x85, 0xf6, //0x0000315e testq %rsi, %rsi + 0x0f, 0x84, 0x97, 0xff, 0xff, 0xff, //0x00003161 je LBB0_600 + 0xe9, 0x05, 0x0b, 0x00, 0x00, //0x00003167 jmp LBB0_606 + //0x0000316c LBB0_610 + 0x4c, 0x89, 0xd0, //0x0000316c movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x30, //0x0000316f subq $48(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x00003174 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x00003178 addq %rax, %r12 + 0xe9, 0x61, 0xff, 0xff, 0xff, //0x0000317b jmp LBB0_598 + //0x00003180 LBB0_611 + 0x40, 0x80, 0xff, 0x3a, //0x00003180 cmpb $58, %dil + 0x0f, 0x85, 0xfd, 0x11, 0x00, 0x00, //0x00003184 jne LBB0_838 + 0x4a, 0xc7, 0x04, 0xd9, 0x00, 0x00, 0x00, 0x00, //0x0000318a movq $0, (%rcx,%r11,8) + 0xe9, 0x1b, 0xfc, 0xff, 0xff, //0x00003192 jmp LBB0_553 + //0x00003197 LBB0_613 + 0x40, 0x80, 0xff, 0x5d, //0x00003197 cmpb $93, %dil + 0x0f, 0x84, 0x86, 0x02, 0x00, 0x00, //0x0000319b je LBB0_588 + 0x4a, 0xc7, 0x04, 0xd9, 0x01, 0x00, 0x00, 0x00, //0x000031a1 movq $1, (%rcx,%r11,8) + 0x83, 0xff, 0x7b, //0x000031a9 cmpl $123, %edi + 0x0f, 0x87, 0xd5, 0x11, 0x00, 0x00, //0x000031ac ja LBB0_838 + //0x000031b2 LBB0_615 + 0x4f, 0x8d, 0x14, 0x0c, //0x000031b2 leaq (%r12,%r9), %r10 + 0x89, 0xf8, //0x000031b6 movl %edi, %eax + 0x48, 0x8d, 0x15, 0xf1, 0x21, 0x00, 0x00, //0x000031b8 leaq $8689(%rip), %rdx /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000031bf movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000031c3 addq %rdx, %rax + 0xff, 0xe0, //0x000031c6 jmpq *%rax + //0x000031c8 LBB0_618 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x000031c8 movq $40(%rsp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x000031cd movq $8(%rax), %rdi + 0x4c, 0x29, 0xcf, //0x000031d1 subq %r9, %rdi + 0x0f, 0x84, 0x59, 0x13, 0x00, 0x00, //0x000031d4 je LBB0_865 + 0x41, 0x80, 0x3a, 0x30, //0x000031da cmpb $48, (%r10) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000031de jne LBB0_623 + 0x48, 0x83, 0xff, 0x01, //0x000031e4 cmpq $1, %rdi + 0x0f, 0x84, 0x6b, 0x04, 0x00, 0x00, //0x000031e8 je LBB0_686 + 0x43, 0x8a, 0x04, 0x3c, //0x000031ee movb (%r12,%r15), %al + 0x04, 0xd2, //0x000031f2 addb $-46, %al + 0x3c, 0x37, //0x000031f4 cmpb $55, %al + 0x0f, 0x87, 0x5d, 0x04, 0x00, 0x00, //0x000031f6 ja LBB0_686 + 0x0f, 0xb6, 0xc0, //0x000031fc movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000031ff movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00003209 btq %rax, %rdx + 0x0f, 0x83, 0x46, 0x04, 0x00, 0x00, //0x0000320d jae LBB0_686 + //0x00003213 LBB0_623 + 0x48, 0x83, 0xff, 0x10, //0x00003213 cmpq $16, %rdi + 0x0f, 0x82, 0x54, 0x0f, 0x00, 0x00, //0x00003217 jb LBB0_816 + 0x48, 0x8d, 0x57, 0xf0, //0x0000321d leaq $-16(%rdi), %rdx + 0x48, 0x89, 0xd0, //0x00003221 movq %rdx, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00003224 andq $-16, %rax + 0x4e, 0x8d, 0x7c, 0x10, 0x10, //0x00003228 leaq $16(%rax,%r10), %r15 + 0x83, 0xe2, 0x0f, //0x0000322d andl $15, %edx + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00003230 movq $-1, %r13 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00003237 movq $-1, %r11 + 0x48, 0xc7, 0x44, 0x24, 0x20, 0xff, 0xff, 0xff, 0xff, //0x0000323e movq $-1, $32(%rsp) + 0x4d, 0x89, 0xd4, //0x00003247 movq %r10, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000324a .p2align 4, 0x90 + //0x00003250 LBB0_625 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1c, 0x24, //0x00003250 vmovdqu (%r12), %xmm3 + 0xc4, 0xc1, 0x61, 0x64, 0xe0, //0x00003256 vpcmpgtb %xmm8, %xmm3, %xmm4 + 0xc5, 0xb1, 0x64, 0xeb, //0x0000325b vpcmpgtb %xmm3, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000325f vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xeb, //0x00003263 vpcmpeqb %xmm3, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf3, //0x00003267 vpcmpeqb %xmm3, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000326b vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf3, //0x0000326f vpor %xmm3, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xdb, //0x00003273 vpcmpeqb %xmm3, %xmm13, %xmm3 + 0xc5, 0xc9, 0x74, 0xf2, //0x00003277 vpcmpeqb %xmm2, %xmm6, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfb, //0x0000327b vpor %xmm3, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x0000327f vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x00003283 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0x79, 0xd7, 0xc3, //0x00003287 vpmovmskb %xmm3, %r8d + 0xc5, 0x79, 0xd7, 0xf6, //0x0000328b vpmovmskb %xmm6, %r14d + 0xc5, 0xf9, 0xd7, 0xf5, //0x0000328f vpmovmskb %xmm5, %esi + 0xc5, 0xf9, 0xd7, 0xc4, //0x00003293 vpmovmskb %xmm4, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003297 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x0000329c xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x0000329f bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x000032a3 cmpl $16, %ecx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000032a6 je LBB0_627 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000032ac movl $-1, %eax + 0xd3, 0xe0, //0x000032b1 shll %cl, %eax + 0xf7, 0xd0, //0x000032b3 notl %eax + 0x41, 0x21, 0xc0, //0x000032b5 andl %eax, %r8d + 0x41, 0x21, 0xc6, //0x000032b8 andl %eax, %r14d + 0x21, 0xf0, //0x000032bb andl %esi, %eax + 0x89, 0xc6, //0x000032bd movl %eax, %esi + //0x000032bf LBB0_627 + 0x41, 0x8d, 0x40, 0xff, //0x000032bf leal $-1(%r8), %eax + 0x44, 0x21, 0xc0, //0x000032c3 andl %r8d, %eax + 0x0f, 0x85, 0xdd, 0x09, 0x00, 0x00, //0x000032c6 jne LBB0_776 + 0x41, 0x8d, 0x46, 0xff, //0x000032cc leal $-1(%r14), %eax + 0x44, 0x21, 0xf0, //0x000032d0 andl %r14d, %eax + 0x0f, 0x85, 0xd0, 0x09, 0x00, 0x00, //0x000032d3 jne LBB0_776 + 0x8d, 0x46, 0xff, //0x000032d9 leal $-1(%rsi), %eax + 0x21, 0xf0, //0x000032dc andl %esi, %eax + 0x0f, 0x85, 0xc5, 0x09, 0x00, 0x00, //0x000032de jne LBB0_776 + 0x45, 0x85, 0xc0, //0x000032e4 testl %r8d, %r8d + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000032e7 je LBB0_633 + 0x4c, 0x89, 0xe3, //0x000032ed movq %r12, %rbx + 0x4c, 0x29, 0xd3, //0x000032f0 subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xc0, //0x000032f3 bsfl %r8d, %eax + 0x48, 0x01, 0xd8, //0x000032f7 addq %rbx, %rax + 0x48, 0x83, 0x7c, 0x24, 0x20, 0xff, //0x000032fa cmpq $-1, $32(%rsp) + 0x0f, 0x85, 0xac, 0x0c, 0x00, 0x00, //0x00003300 jne LBB0_804 + 0x48, 0x89, 0x44, 0x24, 0x20, //0x00003306 movq %rax, $32(%rsp) + //0x0000330b LBB0_633 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x0000330b movq $24(%rsp), %r8 + 0x45, 0x85, 0xf6, //0x00003310 testl %r14d, %r14d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003313 je LBB0_636 + 0x4c, 0x89, 0xe3, //0x00003319 movq %r12, %rbx + 0x4c, 0x29, 0xd3, //0x0000331c subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xc6, //0x0000331f bsfl %r14d, %eax + 0x48, 0x01, 0xd8, //0x00003323 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00003326 cmpq $-1, %r11 + 0x0f, 0x85, 0x76, 0x0b, 0x00, 0x00, //0x0000332a jne LBB0_791 + 0x49, 0x89, 0xc3, //0x00003330 movq %rax, %r11 + //0x00003333 LBB0_636 + 0x85, 0xf6, //0x00003333 testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003335 je LBB0_639 + 0x4c, 0x89, 0xe3, //0x0000333b movq %r12, %rbx + 0x4c, 0x29, 0xd3, //0x0000333e subq %r10, %rbx + 0x0f, 0xbc, 0xc6, //0x00003341 bsfl %esi, %eax + 0x48, 0x01, 0xd8, //0x00003344 addq %rbx, %rax + 0x49, 0x83, 0xfd, 0xff, //0x00003347 cmpq $-1, %r13 + 0x0f, 0x85, 0x55, 0x0b, 0x00, 0x00, //0x0000334b jne LBB0_791 + 0x49, 0x89, 0xc5, //0x00003351 movq %rax, %r13 + //0x00003354 LBB0_639 + 0x83, 0xf9, 0x10, //0x00003354 cmpl $16, %ecx + 0x0f, 0x85, 0x73, 0x02, 0x00, 0x00, //0x00003357 jne LBB0_673 + 0x49, 0x83, 0xc4, 0x10, //0x0000335d addq $16, %r12 + 0x48, 0x83, 0xc7, 0xf0, //0x00003361 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x00003365 cmpq $15, %rdi + 0x0f, 0x87, 0xe1, 0xfe, 0xff, 0xff, //0x00003369 ja LBB0_625 + 0x48, 0x85, 0xd2, //0x0000336f testq %rdx, %rdx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003372 movq $24(%rsp), %r8 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00003377 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x0000337c movq $48(%rsp), %r12 + 0x0f, 0x84, 0x59, 0x02, 0x00, 0x00, //0x00003381 je LBB0_674 + //0x00003387 LBB0_642 + 0x49, 0x8d, 0x3c, 0x17, //0x00003387 leaq (%r15,%rdx), %rdi + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x0000338b jmp LBB0_644 + //0x00003390 .p2align 4, 0x90 + //0x00003390 LBB0_643 + 0x49, 0x89, 0xf7, //0x00003390 movq %rsi, %r15 + 0x48, 0xff, 0xca, //0x00003393 decq %rdx + 0x0f, 0x84, 0x2c, 0x0b, 0x00, 0x00, //0x00003396 je LBB0_794 + //0x0000339c LBB0_644 + 0x41, 0x0f, 0xbe, 0x07, //0x0000339c movsbl (%r15), %eax + 0x83, 0xc0, 0xd5, //0x000033a0 addl $-43, %eax + 0x83, 0xf8, 0x3a, //0x000033a3 cmpl $58, %eax + 0x0f, 0x87, 0x34, 0x02, 0x00, 0x00, //0x000033a6 ja LBB0_674 + 0x49, 0x8d, 0x77, 0x01, //0x000033ac leaq $1(%r15), %rsi + 0x48, 0x8d, 0x1d, 0xd5, 0x22, 0x00, 0x00, //0x000033b0 leaq $8917(%rip), %rbx /* LJTI0_5+0(%rip) */ + 0x48, 0x63, 0x04, 0x83, //0x000033b7 movslq (%rbx,%rax,4), %rax + 0x48, 0x01, 0xd8, //0x000033bb addq %rbx, %rax + 0xff, 0xe0, //0x000033be jmpq *%rax + //0x000033c0 LBB0_646 + 0x49, 0x89, 0xf7, //0x000033c0 movq %rsi, %r15 + 0x4d, 0x29, 0xd7, //0x000033c3 subq %r10, %r15 + 0x49, 0x83, 0xfd, 0xff, //0x000033c6 cmpq $-1, %r13 + 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x000033ca jne LBB0_683 + 0x49, 0xff, 0xcf, //0x000033d0 decq %r15 + 0x4d, 0x89, 0xfd, //0x000033d3 movq %r15, %r13 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x000033d6 jmp LBB0_643 + //0x000033db LBB0_648 + 0x49, 0x89, 0xf7, //0x000033db movq %rsi, %r15 + 0x4d, 0x29, 0xd7, //0x000033de subq %r10, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x000033e1 cmpq $-1, %r11 + 0x0f, 0x85, 0x5f, 0x02, 0x00, 0x00, //0x000033e5 jne LBB0_683 + 0x49, 0xff, 0xcf, //0x000033eb decq %r15 + 0x4d, 0x89, 0xfb, //0x000033ee movq %r15, %r11 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x000033f1 jmp LBB0_643 + //0x000033f6 LBB0_650 + 0x49, 0x89, 0xf7, //0x000033f6 movq %rsi, %r15 + 0x4d, 0x29, 0xd7, //0x000033f9 subq %r10, %r15 + 0x48, 0x83, 0x7c, 0x24, 0x20, 0xff, //0x000033fc cmpq $-1, $32(%rsp) + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x00003402 jne LBB0_683 + 0x49, 0xff, 0xcf, //0x00003408 decq %r15 + 0x4c, 0x89, 0x7c, 0x24, 0x20, //0x0000340b movq %r15, $32(%rsp) + 0xe9, 0x7b, 0xff, 0xff, 0xff, //0x00003410 jmp LBB0_643 + //0x00003415 LBB0_616 + 0x83, 0xff, 0x22, //0x00003415 cmpl $34, %edi + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00003418 je LBB0_654 + //0x0000341e LBB0_591 + 0x83, 0xff, 0x7d, //0x0000341e cmpl $125, %edi + 0x0f, 0x85, 0x60, 0x0f, 0x00, 0x00, //0x00003421 jne LBB0_838 + //0x00003427 LBB0_588 + 0x48, 0x89, 0x31, //0x00003427 movq %rsi, (%rcx) + 0x49, 0x89, 0xf3, //0x0000342a movq %rsi, %r11 + 0x4c, 0x8b, 0x6c, 0x24, 0x48, //0x0000342d movq $72(%rsp), %r13 + 0x48, 0x85, 0xf6, //0x00003432 testq %rsi, %rsi + 0x0f, 0x85, 0x91, 0xf9, 0xff, 0xff, //0x00003435 jne LBB0_556 + 0xe9, 0x4e, 0x0f, 0x00, 0x00, //0x0000343b jmp LBB0_839 + //0x00003440 LBB0_654 + 0x4a, 0xc7, 0x04, 0xd9, 0x02, 0x00, 0x00, 0x00, //0x00003440 movq $2, (%rcx,%r11,8) + 0x49, 0x8b, 0x42, 0x08, //0x00003448 movq $8(%r10), %rax + 0x48, 0x89, 0xc3, //0x0000344c movq %rax, %rbx + 0x4c, 0x29, 0xfb, //0x0000344f subq %r15, %rbx + 0x0f, 0x84, 0x23, 0x1a, 0x00, 0x00, //0x00003452 je LBB0_960 + 0x4f, 0x8d, 0x14, 0x3c, //0x00003458 leaq (%r12,%r15), %r10 + 0x48, 0x83, 0xfb, 0x40, //0x0000345c cmpq $64, %rbx + 0x48, 0x89, 0x44, 0x24, 0x20, //0x00003460 movq %rax, $32(%rsp) + 0x0f, 0x82, 0x37, 0x0d, 0x00, 0x00, //0x00003465 jb LBB0_817 + 0x89, 0xd9, //0x0000346b movl %ebx, %ecx + 0x83, 0xe1, 0x3f, //0x0000346d andl $63, %ecx + 0x48, 0x89, 0x4c, 0x24, 0x50, //0x00003470 movq %rcx, $80(%rsp) + 0x4c, 0x29, 0xc8, //0x00003475 subq %r9, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x00003478 addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000347c andq $-64, %rax + 0x4c, 0x01, 0xc8, //0x00003480 addq %r9, %rax + 0x49, 0x8d, 0x44, 0x04, 0x41, //0x00003483 leaq $65(%r12,%rax), %rax + 0x48, 0x89, 0x84, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x00003488 movq %rax, $168(%rsp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00003490 movq $-1, %r12 + 0x45, 0x31, 0xed, //0x00003497 xorl %r13d, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000349a .p2align 4, 0x90 + //0x000034a0 LBB0_657 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1a, //0x000034a0 vmovdqu (%r10), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x62, 0x10, //0x000034a5 vmovdqu $16(%r10), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6a, 0x20, //0x000034ab vmovdqu $32(%r10), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x72, 0x30, //0x000034b1 vmovdqu $48(%r10), %xmm6 + 0xc5, 0xe1, 0x74, 0xf8, //0x000034b7 vpcmpeqb %xmm0, %xmm3, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x000034bb vpmovmskb %xmm7, %esi + 0xc5, 0xd9, 0x74, 0xf8, //0x000034bf vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xc7, //0x000034c3 vpmovmskb %xmm7, %eax + 0xc5, 0xd1, 0x74, 0xf8, //0x000034c7 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xd7, //0x000034cb vpmovmskb %xmm7, %edx + 0xc5, 0xc9, 0x74, 0xf8, //0x000034cf vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x000034d3 vpmovmskb %xmm7, %ecx + 0xc5, 0xe1, 0x74, 0xd9, //0x000034d7 vpcmpeqb %xmm1, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x000034db vpmovmskb %xmm3, %edi + 0xc5, 0xd9, 0x74, 0xd9, //0x000034df vpcmpeqb %xmm1, %xmm4, %xmm3 + 0xc5, 0x79, 0xd7, 0xc3, //0x000034e3 vpmovmskb %xmm3, %r8d + 0xc5, 0xd1, 0x74, 0xd9, //0x000034e7 vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0x79, 0xd7, 0xdb, //0x000034eb vpmovmskb %xmm3, %r11d + 0xc5, 0xc9, 0x74, 0xd9, //0x000034ef vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0x79, 0xd7, 0xf3, //0x000034f3 vpmovmskb %xmm3, %r14d + 0x48, 0xc1, 0xe1, 0x30, //0x000034f7 shlq $48, %rcx + 0x48, 0xc1, 0xe2, 0x20, //0x000034fb shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x000034ff shlq $16, %rax + 0x48, 0x09, 0xc6, //0x00003503 orq %rax, %rsi + 0x48, 0x09, 0xd6, //0x00003506 orq %rdx, %rsi + 0x49, 0xc1, 0xe6, 0x30, //0x00003509 shlq $48, %r14 + 0x49, 0xc1, 0xe3, 0x20, //0x0000350d shlq $32, %r11 + 0x49, 0xc1, 0xe0, 0x10, //0x00003511 shlq $16, %r8 + 0x4c, 0x09, 0xc7, //0x00003515 orq %r8, %rdi + 0x4c, 0x09, 0xdf, //0x00003518 orq %r11, %rdi + 0x4c, 0x09, 0xf7, //0x0000351b orq %r14, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000351e cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003522 jne LBB0_659 + 0x48, 0x85, 0xff, //0x00003528 testq %rdi, %rdi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x0000352b jne LBB0_672 + //0x00003531 LBB0_659 + 0x48, 0x09, 0xce, //0x00003531 orq %rcx, %rsi + 0x48, 0x89, 0xf8, //0x00003534 movq %rdi, %rax + 0x4c, 0x09, 0xe8, //0x00003537 orq %r13, %rax + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x0000353a movq $24(%rsp), %r8 + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x0000353f jne LBB0_671 + 0x48, 0x85, 0xf6, //0x00003545 testq %rsi, %rsi + 0x0f, 0x85, 0xe4, 0x08, 0x00, 0x00, //0x00003548 jne LBB0_667 + //0x0000354e LBB0_661 + 0x48, 0x83, 0xc3, 0xc0, //0x0000354e addq $-64, %rbx + 0x49, 0x83, 0xc2, 0x40, //0x00003552 addq $64, %r10 + 0x48, 0x83, 0xfb, 0x3f, //0x00003556 cmpq $63, %rbx + 0x0f, 0x87, 0x40, 0xff, 0xff, 0xff, //0x0000355a ja LBB0_657 + 0xe9, 0x50, 0x08, 0x00, 0x00, //0x00003560 jmp LBB0_662 + //0x00003565 LBB0_671 + 0x4c, 0x89, 0xe8, //0x00003565 movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x00003568 notq %rax + 0x48, 0x21, 0xf8, //0x0000356b andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x0000356e leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe9, //0x00003572 orq %r13, %rcx + 0x48, 0x89, 0xca, //0x00003575 movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003578 notq %rdx + 0x48, 0x21, 0xfa, //0x0000357b andq %rdi, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000357e movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x00003588 andq %rdi, %rdx + 0x45, 0x31, 0xed, //0x0000358b xorl %r13d, %r13d + 0x48, 0x01, 0xc2, //0x0000358e addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc5, //0x00003591 setb %r13b + 0x48, 0x01, 0xd2, //0x00003595 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003598 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x000035a2 xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x000035a5 andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x000035a8 notq %rdx + 0x48, 0x21, 0xd6, //0x000035ab andq %rdx, %rsi + 0x48, 0x85, 0xf6, //0x000035ae testq %rsi, %rsi + 0x0f, 0x84, 0x97, 0xff, 0xff, 0xff, //0x000035b1 je LBB0_661 + 0xe9, 0x76, 0x08, 0x00, 0x00, //0x000035b7 jmp LBB0_667 + //0x000035bc LBB0_672 + 0x4c, 0x89, 0xd0, //0x000035bc movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x30, //0x000035bf subq $48(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x000035c4 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x000035c8 addq %rax, %r12 + 0xe9, 0x61, 0xff, 0xff, 0xff, //0x000035cb jmp LBB0_659 + //0x000035d0 LBB0_673 + 0x49, 0x01, 0xcc, //0x000035d0 addq %rcx, %r12 + 0x4d, 0x89, 0xe7, //0x000035d3 movq %r12, %r15 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x000035d6 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x000035db movq $48(%rsp), %r12 + //0x000035e0 LBB0_674 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000035e0 movq $-1, %rax + 0x4d, 0x85, 0xdb, //0x000035e7 testq %r11, %r11 + 0x0f, 0x84, 0x31, 0x17, 0x00, 0x00, //0x000035ea je LBB0_931 + //0x000035f0 LBB0_675 + 0x4d, 0x85, 0xed, //0x000035f0 testq %r13, %r13 + 0x0f, 0x84, 0x28, 0x17, 0x00, 0x00, //0x000035f3 je LBB0_931 + 0x48, 0x8b, 0x54, 0x24, 0x20, //0x000035f9 movq $32(%rsp), %rdx + 0x48, 0x85, 0xd2, //0x000035fe testq %rdx, %rdx + 0x0f, 0x84, 0x1a, 0x17, 0x00, 0x00, //0x00003601 je LBB0_931 + 0x4d, 0x29, 0xd7, //0x00003607 subq %r10, %r15 + 0x49, 0x8d, 0x47, 0xff, //0x0000360a leaq $-1(%r15), %rax + 0x49, 0x39, 0xc3, //0x0000360e cmpq %rax, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00003611 je LBB0_683 + 0x48, 0x39, 0xc2, //0x00003617 cmpq %rax, %rdx + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000361a je LBB0_683 + 0x49, 0x39, 0xc5, //0x00003620 cmpq %rax, %r13 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00003623 je LBB0_683 + 0x4d, 0x85, 0xed, //0x00003629 testq %r13, %r13 + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x0000362c jle LBB0_687 + 0x49, 0x8d, 0x45, 0xff, //0x00003632 leaq $-1(%r13), %rax + 0x49, 0x39, 0xc3, //0x00003636 cmpq %rax, %r11 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00003639 je LBB0_687 + 0x49, 0xf7, 0xd5, //0x0000363f notq %r13 + 0x4d, 0x89, 0xef, //0x00003642 movq %r13, %r15 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00003645 jmp LBB0_684 + //0x0000364a LBB0_683 + 0x49, 0xf7, 0xdf, //0x0000364a negq %r15 + //0x0000364d LBB0_684 + 0x4d, 0x85, 0xff, //0x0000364d testq %r15, %r15 + 0x0f, 0x88, 0xc8, 0x16, 0x00, 0x00, //0x00003650 js LBB0_930 + 0x4d, 0x01, 0xcf, //0x00003656 addq %r9, %r15 + //0x00003659 LBB0_686 + 0x4d, 0x89, 0x38, //0x00003659 movq %r15, (%r8) + 0x4d, 0x89, 0xfa, //0x0000365c movq %r15, %r10 + 0x4d, 0x89, 0xcd, //0x0000365f movq %r9, %r13 + 0x4d, 0x85, 0xc9, //0x00003662 testq %r9, %r9 + 0x0f, 0x89, 0x4a, 0xf7, 0xff, 0xff, //0x00003665 jns LBB0_554 + 0xe9, 0x1e, 0x0d, 0x00, 0x00, //0x0000366b jmp LBB0_839 + //0x00003670 LBB0_687 + 0x48, 0x89, 0xd0, //0x00003670 movq %rdx, %rax + 0x4c, 0x09, 0xd8, //0x00003673 orq %r11, %rax + 0x4c, 0x39, 0xda, //0x00003676 cmpq %r11, %rdx + 0x0f, 0x8c, 0xb1, 0x04, 0x00, 0x00, //0x00003679 jl LBB0_761 + 0x48, 0x85, 0xc0, //0x0000367f testq %rax, %rax + 0x0f, 0x88, 0xa8, 0x04, 0x00, 0x00, //0x00003682 js LBB0_761 + 0x48, 0xf7, 0xd2, //0x00003688 notq %rdx + 0x49, 0x89, 0xd7, //0x0000368b movq %rdx, %r15 + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x0000368e jmp LBB0_684 + //0x00003693 LBB0_690 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00003693 movq $40(%rsp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00003698 movq $8(%rax), %rax + 0x48, 0x89, 0xc3, //0x0000369c movq %rax, %rbx + 0x4c, 0x29, 0xfb, //0x0000369f subq %r15, %rbx + 0x0f, 0x84, 0xd3, 0x17, 0x00, 0x00, //0x000036a2 je LBB0_960 + 0x4f, 0x8d, 0x14, 0x3c, //0x000036a8 leaq (%r12,%r15), %r10 + 0x48, 0x83, 0xfb, 0x40, //0x000036ac cmpq $64, %rbx + 0x48, 0x89, 0x44, 0x24, 0x20, //0x000036b0 movq %rax, $32(%rsp) + 0x0f, 0x82, 0x4a, 0x0b, 0x00, 0x00, //0x000036b5 jb LBB0_821 + 0x89, 0xd9, //0x000036bb movl %ebx, %ecx + 0x83, 0xe1, 0x3f, //0x000036bd andl $63, %ecx + 0x48, 0x89, 0x4c, 0x24, 0x50, //0x000036c0 movq %rcx, $80(%rsp) + 0x4c, 0x29, 0xc8, //0x000036c5 subq %r9, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x000036c8 addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x000036cc andq $-64, %rax + 0x4c, 0x01, 0xc8, //0x000036d0 addq %r9, %rax + 0x49, 0x8d, 0x44, 0x04, 0x41, //0x000036d3 leaq $65(%r12,%rax), %rax + 0x48, 0x89, 0x84, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x000036d8 movq %rax, $168(%rsp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000036e0 movq $-1, %r12 + 0x45, 0x31, 0xed, //0x000036e7 xorl %r13d, %r13d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000036ea .p2align 4, 0x90 + //0x000036f0 LBB0_693 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1a, //0x000036f0 vmovdqu (%r10), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x62, 0x10, //0x000036f5 vmovdqu $16(%r10), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6a, 0x20, //0x000036fb vmovdqu $32(%r10), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x72, 0x30, //0x00003701 vmovdqu $48(%r10), %xmm6 + 0xc5, 0xe1, 0x74, 0xf8, //0x00003707 vpcmpeqb %xmm0, %xmm3, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000370b vpmovmskb %xmm7, %esi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000370f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xc7, //0x00003713 vpmovmskb %xmm7, %eax + 0xc5, 0xd1, 0x74, 0xf8, //0x00003717 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xd7, //0x0000371b vpmovmskb %xmm7, %edx + 0xc5, 0xc9, 0x74, 0xf8, //0x0000371f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00003723 vpmovmskb %xmm7, %ecx + 0xc5, 0xe1, 0x74, 0xd9, //0x00003727 vpcmpeqb %xmm1, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x0000372b vpmovmskb %xmm3, %edi + 0xc5, 0xd9, 0x74, 0xd9, //0x0000372f vpcmpeqb %xmm1, %xmm4, %xmm3 + 0xc5, 0x79, 0xd7, 0xc3, //0x00003733 vpmovmskb %xmm3, %r8d + 0xc5, 0xd1, 0x74, 0xd9, //0x00003737 vpcmpeqb %xmm1, %xmm5, %xmm3 + 0xc5, 0x79, 0xd7, 0xdb, //0x0000373b vpmovmskb %xmm3, %r11d + 0xc5, 0xc9, 0x74, 0xd9, //0x0000373f vpcmpeqb %xmm1, %xmm6, %xmm3 + 0xc5, 0x79, 0xd7, 0xf3, //0x00003743 vpmovmskb %xmm3, %r14d + 0x48, 0xc1, 0xe1, 0x30, //0x00003747 shlq $48, %rcx + 0x48, 0xc1, 0xe2, 0x20, //0x0000374b shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000374f shlq $16, %rax + 0x48, 0x09, 0xc6, //0x00003753 orq %rax, %rsi + 0x48, 0x09, 0xd6, //0x00003756 orq %rdx, %rsi + 0x49, 0xc1, 0xe6, 0x30, //0x00003759 shlq $48, %r14 + 0x49, 0xc1, 0xe3, 0x20, //0x0000375d shlq $32, %r11 + 0x49, 0xc1, 0xe0, 0x10, //0x00003761 shlq $16, %r8 + 0x4c, 0x09, 0xc7, //0x00003765 orq %r8, %rdi + 0x4c, 0x09, 0xdf, //0x00003768 orq %r11, %rdi + 0x4c, 0x09, 0xf7, //0x0000376b orq %r14, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000376e cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003772 jne LBB0_695 + 0x48, 0x85, 0xff, //0x00003778 testq %rdi, %rdi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x0000377b jne LBB0_710 + //0x00003781 LBB0_695 + 0x48, 0x09, 0xce, //0x00003781 orq %rcx, %rsi + 0x48, 0x89, 0xf8, //0x00003784 movq %rdi, %rax + 0x4c, 0x09, 0xe8, //0x00003787 orq %r13, %rax + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x0000378a movq $24(%rsp), %r8 + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x0000378f jne LBB0_709 + 0x48, 0x85, 0xf6, //0x00003795 testq %rsi, %rsi + 0x0f, 0x85, 0xd3, 0x04, 0x00, 0x00, //0x00003798 jne LBB0_606 + //0x0000379e LBB0_697 + 0x48, 0x83, 0xc3, 0xc0, //0x0000379e addq $-64, %rbx + 0x49, 0x83, 0xc2, 0x40, //0x000037a2 addq $64, %r10 + 0x48, 0x83, 0xfb, 0x3f, //0x000037a6 cmpq $63, %rbx + 0x0f, 0x87, 0x40, 0xff, 0xff, 0xff, //0x000037aa ja LBB0_693 + 0xe9, 0x3f, 0x08, 0x00, 0x00, //0x000037b0 jmp LBB0_698 + //0x000037b5 LBB0_709 + 0x4c, 0x89, 0xe8, //0x000037b5 movq %r13, %rax + 0x48, 0xf7, 0xd0, //0x000037b8 notq %rax + 0x48, 0x21, 0xf8, //0x000037bb andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000037be leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe9, //0x000037c2 orq %r13, %rcx + 0x48, 0x89, 0xca, //0x000037c5 movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x000037c8 notq %rdx + 0x48, 0x21, 0xfa, //0x000037cb andq %rdi, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000037ce movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x000037d8 andq %rdi, %rdx + 0x45, 0x31, 0xed, //0x000037db xorl %r13d, %r13d + 0x48, 0x01, 0xc2, //0x000037de addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc5, //0x000037e1 setb %r13b + 0x48, 0x01, 0xd2, //0x000037e5 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000037e8 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x000037f2 xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x000037f5 andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x000037f8 notq %rdx + 0x48, 0x21, 0xd6, //0x000037fb andq %rdx, %rsi + 0x48, 0x85, 0xf6, //0x000037fe testq %rsi, %rsi + 0x0f, 0x84, 0x97, 0xff, 0xff, 0xff, //0x00003801 je LBB0_697 + 0xe9, 0x65, 0x04, 0x00, 0x00, //0x00003807 jmp LBB0_606 + //0x0000380c LBB0_710 + 0x4c, 0x89, 0xd0, //0x0000380c movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x30, //0x0000380f subq $48(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x00003814 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x00003818 addq %rax, %r12 + 0xe9, 0x61, 0xff, 0xff, 0xff, //0x0000381b jmp LBB0_695 + //0x00003820 LBB0_711 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00003820 movq $40(%rsp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x00003825 movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x00003829 subq %r15, %rdi + 0x0f, 0x84, 0x31, 0x15, 0x00, 0x00, //0x0000382c je LBB0_939 + 0x4f, 0x8d, 0x34, 0x3c, //0x00003832 leaq (%r12,%r15), %r14 + 0x41, 0x80, 0x3e, 0x30, //0x00003836 cmpb $48, (%r14) + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000383a jne LBB0_716 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003840 movl $1, %r10d + 0x48, 0x83, 0xff, 0x01, //0x00003846 cmpq $1, %rdi + 0x0f, 0x84, 0x88, 0x03, 0x00, 0x00, //0x0000384a je LBB0_774 + 0x41, 0x8a, 0x46, 0x01, //0x00003850 movb $1(%r14), %al + 0x04, 0xd2, //0x00003854 addb $-46, %al + 0x3c, 0x37, //0x00003856 cmpb $55, %al + 0x0f, 0x87, 0x7a, 0x03, 0x00, 0x00, //0x00003858 ja LBB0_774 + 0x0f, 0xb6, 0xc0, //0x0000385e movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003861 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x0000386b btq %rax, %rdx + 0x0f, 0x83, 0x63, 0x03, 0x00, 0x00, //0x0000386f jae LBB0_774 + //0x00003875 LBB0_716 + 0x48, 0x83, 0xff, 0x10, //0x00003875 cmpq $16, %rdi + 0x0f, 0x82, 0x9f, 0x09, 0x00, 0x00, //0x00003879 jb LBB0_822 + 0x4c, 0x8d, 0x5f, 0xf0, //0x0000387f leaq $-16(%rdi), %r11 + 0x4c, 0x89, 0xd8, //0x00003883 movq %r11, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00003886 andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x30, 0x10, //0x0000388a leaq $16(%rax,%r14), %r8 + 0x41, 0x83, 0xe3, 0x0f, //0x0000388f andl $15, %r11d + 0x48, 0xc7, 0x44, 0x24, 0x20, 0xff, 0xff, 0xff, 0xff, //0x00003893 movq $-1, $32(%rsp) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000389c movq $-1, %r13 + 0x48, 0xc7, 0x44, 0x24, 0x50, 0xff, 0xff, 0xff, 0xff, //0x000038a3 movq $-1, $80(%rsp) + 0x4d, 0x89, 0xf4, //0x000038ac movq %r14, %r12 + //0x000038af LBB0_718 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1c, 0x24, //0x000038af vmovdqu (%r12), %xmm3 + 0xc4, 0xc1, 0x61, 0x64, 0xe0, //0x000038b5 vpcmpgtb %xmm8, %xmm3, %xmm4 + 0xc5, 0xb1, 0x64, 0xeb, //0x000038ba vpcmpgtb %xmm3, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000038be vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xeb, //0x000038c2 vpcmpeqb %xmm3, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf3, //0x000038c6 vpcmpeqb %xmm3, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000038ca vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf3, //0x000038ce vpor %xmm3, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xdb, //0x000038d2 vpcmpeqb %xmm3, %xmm13, %xmm3 + 0xc5, 0xc9, 0x74, 0xf2, //0x000038d6 vpcmpeqb %xmm2, %xmm6, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfb, //0x000038da vpor %xmm3, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x000038de vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000038e2 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0xf9, 0xd7, 0xdb, //0x000038e6 vpmovmskb %xmm3, %ebx + 0xc5, 0xf9, 0xd7, 0xd6, //0x000038ea vpmovmskb %xmm6, %edx + 0xc5, 0xf9, 0xd7, 0xf5, //0x000038ee vpmovmskb %xmm5, %esi + 0xc5, 0xf9, 0xd7, 0xc4, //0x000038f2 vpmovmskb %xmm4, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000038f6 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x000038fb xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000038fe bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x00003902 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00003905 je LBB0_720 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000390b movl $-1, %eax + 0xd3, 0xe0, //0x00003910 shll %cl, %eax + 0xf7, 0xd0, //0x00003912 notl %eax + 0x21, 0xc3, //0x00003914 andl %eax, %ebx + 0x21, 0xc2, //0x00003916 andl %eax, %edx + 0x21, 0xf0, //0x00003918 andl %esi, %eax + 0x89, 0xc6, //0x0000391a movl %eax, %esi + //0x0000391c LBB0_720 + 0x8d, 0x43, 0xff, //0x0000391c leal $-1(%rbx), %eax + 0x21, 0xd8, //0x0000391f andl %ebx, %eax + 0x0f, 0x85, 0xb1, 0x06, 0x00, 0x00, //0x00003921 jne LBB0_805 + 0x8d, 0x42, 0xff, //0x00003927 leal $-1(%rdx), %eax + 0x21, 0xd0, //0x0000392a andl %edx, %eax + 0x0f, 0x85, 0xa6, 0x06, 0x00, 0x00, //0x0000392c jne LBB0_805 + 0x8d, 0x46, 0xff, //0x00003932 leal $-1(%rsi), %eax + 0x21, 0xf0, //0x00003935 andl %esi, %eax + 0x0f, 0x85, 0x9b, 0x06, 0x00, 0x00, //0x00003937 jne LBB0_805 + 0x85, 0xdb, //0x0000393d testl %ebx, %ebx + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000393f je LBB0_726 + 0x4c, 0x89, 0xe0, //0x00003945 movq %r12, %rax + 0x4c, 0x29, 0xf0, //0x00003948 subq %r14, %rax + 0x44, 0x0f, 0xbc, 0xd3, //0x0000394b bsfl %ebx, %r10d + 0x49, 0x01, 0xc2, //0x0000394f addq %rax, %r10 + 0x48, 0x83, 0x7c, 0x24, 0x50, 0xff, //0x00003952 cmpq $-1, $80(%rsp) + 0x0f, 0x85, 0x84, 0x06, 0x00, 0x00, //0x00003958 jne LBB0_806 + 0x4c, 0x89, 0x54, 0x24, 0x50, //0x0000395e movq %r10, $80(%rsp) + //0x00003963 LBB0_726 + 0x85, 0xd2, //0x00003963 testl %edx, %edx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003965 je LBB0_729 + 0x4c, 0x89, 0xe0, //0x0000396b movq %r12, %rax + 0x4c, 0x29, 0xf0, //0x0000396e subq %r14, %rax + 0x44, 0x0f, 0xbc, 0xd2, //0x00003971 bsfl %edx, %r10d + 0x49, 0x01, 0xc2, //0x00003975 addq %rax, %r10 + 0x49, 0x83, 0xfd, 0xff, //0x00003978 cmpq $-1, %r13 + 0x0f, 0x85, 0x60, 0x06, 0x00, 0x00, //0x0000397c jne LBB0_806 + 0x4d, 0x89, 0xd5, //0x00003982 movq %r10, %r13 + //0x00003985 LBB0_729 + 0x85, 0xf6, //0x00003985 testl %esi, %esi + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x00003987 je LBB0_732 + 0x4c, 0x89, 0xe0, //0x0000398d movq %r12, %rax + 0x4c, 0x29, 0xf0, //0x00003990 subq %r14, %rax + 0x44, 0x0f, 0xbc, 0xd6, //0x00003993 bsfl %esi, %r10d + 0x49, 0x01, 0xc2, //0x00003997 addq %rax, %r10 + 0x48, 0x83, 0x7c, 0x24, 0x20, 0xff, //0x0000399a cmpq $-1, $32(%rsp) + 0x0f, 0x85, 0x3c, 0x06, 0x00, 0x00, //0x000039a0 jne LBB0_806 + 0x4c, 0x89, 0x54, 0x24, 0x20, //0x000039a6 movq %r10, $32(%rsp) + //0x000039ab LBB0_732 + 0x83, 0xf9, 0x10, //0x000039ab cmpl $16, %ecx + 0x0f, 0x85, 0x96, 0x01, 0x00, 0x00, //0x000039ae jne LBB0_762 + 0x49, 0x83, 0xc4, 0x10, //0x000039b4 addq $16, %r12 + 0x48, 0x83, 0xc7, 0xf0, //0x000039b8 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x000039bc cmpq $15, %rdi + 0x0f, 0x87, 0xe9, 0xfe, 0xff, 0xff, //0x000039c0 ja LBB0_718 + 0x4d, 0x85, 0xdb, //0x000039c6 testq %r11, %r11 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x000039c9 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x000039ce movq $48(%rsp), %r12 + 0x48, 0x8d, 0x3d, 0xc6, 0x1b, 0x00, 0x00, //0x000039d3 leaq $7110(%rip), %rdi /* LJTI0_4+0(%rip) */ + 0x0f, 0x84, 0x7a, 0x01, 0x00, 0x00, //0x000039da je LBB0_763 + //0x000039e0 LBB0_735 + 0x4b, 0x8d, 0x34, 0x18, //0x000039e0 leaq (%r8,%r11), %rsi + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000039e4 jmp LBB0_739 + //0x000039e9 LBB0_736 + 0x49, 0x89, 0xd2, //0x000039e9 movq %rdx, %r10 + 0x4d, 0x29, 0xf2, //0x000039ec subq %r14, %r10 + 0x48, 0x83, 0x7c, 0x24, 0x20, 0xff, //0x000039ef cmpq $-1, $32(%rsp) + 0x0f, 0x85, 0x02, 0x08, 0x00, 0x00, //0x000039f5 jne LBB0_823 + 0x49, 0xff, 0xca, //0x000039fb decq %r10 + 0x4c, 0x89, 0x54, 0x24, 0x20, //0x000039fe movq %r10, $32(%rsp) + //0x00003a03 LBB0_738 + 0x49, 0x89, 0xd0, //0x00003a03 movq %rdx, %r8 + 0x49, 0xff, 0xcb, //0x00003a06 decq %r11 + 0x0f, 0x84, 0x4a, 0x07, 0x00, 0x00, //0x00003a09 je LBB0_815 + //0x00003a0f LBB0_739 + 0x41, 0x0f, 0xbe, 0x00, //0x00003a0f movsbl (%r8), %eax + 0x83, 0xc0, 0xd5, //0x00003a13 addl $-43, %eax + 0x83, 0xf8, 0x3a, //0x00003a16 cmpl $58, %eax + 0x0f, 0x87, 0x3b, 0x01, 0x00, 0x00, //0x00003a19 ja LBB0_763 + 0x49, 0x8d, 0x50, 0x01, //0x00003a1f leaq $1(%r8), %rdx + 0x48, 0x63, 0x04, 0x87, //0x00003a23 movslq (%rdi,%rax,4), %rax + 0x48, 0x01, 0xf8, //0x00003a27 addq %rdi, %rax + 0xff, 0xe0, //0x00003a2a jmpq *%rax + //0x00003a2c LBB0_741 + 0x49, 0x89, 0xd2, //0x00003a2c movq %rdx, %r10 + 0x4d, 0x29, 0xf2, //0x00003a2f subq %r14, %r10 + 0x49, 0x83, 0xfd, 0xff, //0x00003a32 cmpq $-1, %r13 + 0x0f, 0x85, 0xc1, 0x07, 0x00, 0x00, //0x00003a36 jne LBB0_823 + 0x49, 0xff, 0xca, //0x00003a3c decq %r10 + 0x4d, 0x89, 0xd5, //0x00003a3f movq %r10, %r13 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x00003a42 jmp LBB0_738 + //0x00003a47 LBB0_743 + 0x49, 0x89, 0xd2, //0x00003a47 movq %rdx, %r10 + 0x4d, 0x29, 0xf2, //0x00003a4a subq %r14, %r10 + 0x48, 0x83, 0x7c, 0x24, 0x50, 0xff, //0x00003a4d cmpq $-1, $80(%rsp) + 0x0f, 0x85, 0xa4, 0x07, 0x00, 0x00, //0x00003a53 jne LBB0_823 + 0x49, 0xff, 0xca, //0x00003a59 decq %r10 + 0x4c, 0x89, 0x54, 0x24, 0x50, //0x00003a5c movq %r10, $80(%rsp) + 0xe9, 0x9d, 0xff, 0xff, 0xff, //0x00003a61 jmp LBB0_738 + //0x00003a66 LBB0_745 + 0x48, 0x8b, 0x01, //0x00003a66 movq (%rcx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00003a69 cmpq $4095, %rax + 0x0f, 0x8f, 0x89, 0x0a, 0x00, 0x00, //0x00003a6f jg LBB0_942 + 0x48, 0x8d, 0x50, 0x01, //0x00003a75 leaq $1(%rax), %rdx + 0x48, 0x89, 0x11, //0x00003a79 movq %rdx, (%rcx) + 0x48, 0xc7, 0x44, 0xc1, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00003a7c movq $5, $8(%rcx,%rax,8) + 0xe9, 0x28, 0xf3, 0xff, 0xff, //0x00003a85 jmp LBB0_553 + //0x00003a8a LBB0_747 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00003a8a movq $40(%rsp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00003a8f movq $8(%rax), %rax + 0x48, 0x8d, 0x50, 0xfc, //0x00003a93 leaq $-4(%rax), %rdx + 0x49, 0x39, 0xd1, //0x00003a97 cmpq %rdx, %r9 + 0x0f, 0x83, 0x8f, 0x12, 0x00, 0x00, //0x00003a9a jae LBB0_941 + 0x43, 0x8b, 0x04, 0x3c, //0x00003aa0 movl (%r12,%r15), %eax + 0x3d, 0x61, 0x6c, 0x73, 0x65, //0x00003aa4 cmpl $1702063201, %eax + 0x0f, 0x85, 0xcb, 0x12, 0x00, 0x00, //0x00003aa9 jne LBB0_943 + 0x4d, 0x8d, 0x51, 0x05, //0x00003aaf leaq $5(%r9), %r10 + 0xe9, 0x28, 0x01, 0x00, 0x00, //0x00003ab3 jmp LBB0_775 + //0x00003ab8 LBB0_750 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00003ab8 movq $40(%rsp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00003abd movq $8(%rax), %rax + 0x48, 0x8d, 0x50, 0xfd, //0x00003ac1 leaq $-3(%rax), %rdx + 0x49, 0x39, 0xd1, //0x00003ac5 cmpq %rdx, %r9 + 0x0f, 0x83, 0x61, 0x12, 0x00, 0x00, //0x00003ac8 jae LBB0_941 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00003ace cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00003ad5 je LBB0_758 + 0xe9, 0xeb, 0x12, 0x00, 0x00, //0x00003adb jmp LBB0_752 + //0x00003ae0 LBB0_756 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00003ae0 movq $40(%rsp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00003ae5 movq $8(%rax), %rax + 0x48, 0x8d, 0x50, 0xfd, //0x00003ae9 leaq $-3(%rax), %rdx + 0x49, 0x39, 0xd1, //0x00003aed cmpq %rdx, %r9 + 0x0f, 0x83, 0x39, 0x12, 0x00, 0x00, //0x00003af0 jae LBB0_941 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x00003af6 cmpl $1702195828, (%r10) + 0x0f, 0x85, 0x1a, 0x13, 0x00, 0x00, //0x00003afd jne LBB0_948 + //0x00003b03 LBB0_758 + 0x4d, 0x8d, 0x51, 0x04, //0x00003b03 leaq $4(%r9), %r10 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00003b07 jmp LBB0_775 + //0x00003b0c LBB0_759 + 0x48, 0x8b, 0x01, //0x00003b0c movq (%rcx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00003b0f cmpq $4095, %rax + 0x0f, 0x8f, 0xe3, 0x09, 0x00, 0x00, //0x00003b15 jg LBB0_942 + 0x48, 0x8d, 0x50, 0x01, //0x00003b1b leaq $1(%rax), %rdx + 0x48, 0x89, 0x11, //0x00003b1f movq %rdx, (%rcx) + 0x48, 0xc7, 0x44, 0xc1, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00003b22 movq $6, $8(%rcx,%rax,8) + 0xe9, 0x82, 0xf2, 0xff, 0xff, //0x00003b2b jmp LBB0_553 + //0x00003b30 LBB0_761 + 0x48, 0x85, 0xc0, //0x00003b30 testq %rax, %rax + 0x49, 0x8d, 0x43, 0xff, //0x00003b33 leaq $-1(%r11), %rax + 0x49, 0xf7, 0xd3, //0x00003b37 notq %r11 + 0x4d, 0x0f, 0x48, 0xdf, //0x00003b3a cmovsq %r15, %r11 + 0x48, 0x39, 0xc2, //0x00003b3e cmpq %rax, %rdx + 0x4d, 0x0f, 0x44, 0xfb, //0x00003b41 cmoveq %r11, %r15 + 0xe9, 0x03, 0xfb, 0xff, 0xff, //0x00003b45 jmp LBB0_684 + //0x00003b4a LBB0_762 + 0x49, 0x01, 0xcc, //0x00003b4a addq %rcx, %r12 + 0x4d, 0x89, 0xe0, //0x00003b4d movq %r12, %r8 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00003b50 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00003b55 movq $48(%rsp), %r12 + //0x00003b5a LBB0_763 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00003b5a movq $-1, %r10 + 0x4d, 0x85, 0xed, //0x00003b61 testq %r13, %r13 + 0x0f, 0x84, 0x00, 0x12, 0x00, 0x00, //0x00003b64 je LBB0_940 + //0x00003b6a LBB0_764 + 0x48, 0x8b, 0x74, 0x24, 0x20, //0x00003b6a movq $32(%rsp), %rsi + 0x48, 0x85, 0xf6, //0x00003b6f testq %rsi, %rsi + 0x0f, 0x84, 0xf2, 0x11, 0x00, 0x00, //0x00003b72 je LBB0_940 + 0x48, 0x8b, 0x54, 0x24, 0x50, //0x00003b78 movq $80(%rsp), %rdx + 0x48, 0x85, 0xd2, //0x00003b7d testq %rdx, %rdx + 0x0f, 0x84, 0xe4, 0x11, 0x00, 0x00, //0x00003b80 je LBB0_940 + 0x4d, 0x29, 0xf0, //0x00003b86 subq %r14, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00003b89 leaq $-1(%r8), %rax + 0x49, 0x39, 0xc5, //0x00003b8d cmpq %rax, %r13 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00003b90 je LBB0_772 + 0x48, 0x39, 0xc2, //0x00003b96 cmpq %rax, %rdx + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00003b99 je LBB0_772 + 0x48, 0x39, 0xc6, //0x00003b9f cmpq %rax, %rsi + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00003ba2 je LBB0_772 + 0x48, 0x85, 0xf6, //0x00003ba8 testq %rsi, %rsi + 0x0f, 0x8e, 0x0f, 0x01, 0x00, 0x00, //0x00003bab jle LBB0_778 + 0x48, 0x8d, 0x46, 0xff, //0x00003bb1 leaq $-1(%rsi), %rax + 0x49, 0x39, 0xc5, //0x00003bb5 cmpq %rax, %r13 + 0x0f, 0x84, 0x02, 0x01, 0x00, 0x00, //0x00003bb8 je LBB0_778 + 0x48, 0xf7, 0xd6, //0x00003bbe notq %rsi + 0x49, 0x89, 0xf2, //0x00003bc1 movq %rsi, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00003bc4 jmp LBB0_773 + //0x00003bc9 LBB0_772 + 0x49, 0xf7, 0xd8, //0x00003bc9 negq %r8 + 0x4d, 0x89, 0xc2, //0x00003bcc movq %r8, %r10 + //0x00003bcf LBB0_773 + 0x4d, 0x85, 0xd2, //0x00003bcf testq %r10, %r10 + 0x0f, 0x88, 0x92, 0x11, 0x00, 0x00, //0x00003bd2 js LBB0_940 + //0x00003bd8 LBB0_774 + 0x4d, 0x01, 0xfa, //0x00003bd8 addq %r15, %r10 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003bdb movq $24(%rsp), %r8 + //0x00003be0 LBB0_775 + 0x4d, 0x89, 0x10, //0x00003be0 movq %r10, (%r8) + 0x4d, 0x89, 0xcd, //0x00003be3 movq %r9, %r13 + 0x4d, 0x85, 0xff, //0x00003be6 testq %r15, %r15 + 0x0f, 0x8f, 0xc6, 0xf1, 0xff, 0xff, //0x00003be9 jg LBB0_554 + 0xe9, 0x9a, 0x07, 0x00, 0x00, //0x00003bef jmp LBB0_839 + //0x00003bf4 LBB0_601 + 0x4c, 0x8b, 0x94, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x00003bf4 movq $168(%rsp), %r10 + 0x48, 0x8b, 0x5c, 0x24, 0x50, //0x00003bfc movq $80(%rsp), %rbx + 0x48, 0x83, 0xfb, 0x20, //0x00003c01 cmpq $32, %rbx + 0x0f, 0x82, 0xf5, 0x04, 0x00, 0x00, //0x00003c05 jb LBB0_810 + //0x00003c0b LBB0_602 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1a, //0x00003c0b vmovdqu (%r10), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x62, 0x10, //0x00003c10 vmovdqu $16(%r10), %xmm4 + 0xc5, 0xe1, 0x74, 0xe8, //0x00003c16 vpcmpeqb %xmm0, %xmm3, %xmm5 + 0xc5, 0xf9, 0xd7, 0xfd, //0x00003c1a vpmovmskb %xmm5, %edi + 0xc5, 0xd9, 0x74, 0xe8, //0x00003c1e vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00003c22 vpmovmskb %xmm5, %esi + 0xc5, 0xe1, 0x74, 0xd9, //0x00003c26 vpcmpeqb %xmm1, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x00003c2a vpmovmskb %xmm3, %ecx + 0xc5, 0xd9, 0x74, 0xd9, //0x00003c2e vpcmpeqb %xmm1, %xmm4, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00003c32 vpmovmskb %xmm3, %eax + 0x48, 0xc1, 0xe6, 0x10, //0x00003c36 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00003c3a shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00003c3e orq %rax, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00003c41 cmpq $-1, %r12 + 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x00003c45 jne LBB0_781 + 0x48, 0x85, 0xc9, //0x00003c4b testq %rcx, %rcx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003c4e movq $24(%rsp), %r8 + 0x0f, 0x85, 0xfa, 0x05, 0x00, 0x00, //0x00003c53 jne LBB0_824 + 0x48, 0x09, 0xfe, //0x00003c59 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00003c5c movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x00003c5f orq %r13, %rax + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00003c62 jne LBB0_782 + //0x00003c68 LBB0_605 + 0x48, 0x85, 0xf6, //0x00003c68 testq %rsi, %rsi + 0x0f, 0x84, 0xbf, 0x00, 0x00, 0x00, //0x00003c6b je LBB0_783 + //0x00003c71 LBB0_606 + 0x48, 0x0f, 0xbc, 0xc6, //0x00003c71 bsfq %rsi, %rax + 0x4c, 0x03, 0x54, 0x24, 0x58, //0x00003c75 addq $88(%rsp), %r10 + 0x49, 0x01, 0xc2, //0x00003c7a addq %rax, %r10 + //0x00003c7d LBB0_607 + 0x4d, 0x85, 0xd2, //0x00003c7d testq %r10, %r10 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00003c80 movq $32(%rsp), %rax + 0x0f, 0x88, 0x7f, 0x08, 0x00, 0x00, //0x00003c85 js LBB0_861 + 0x4d, 0x89, 0x10, //0x00003c8b movq %r10, (%r8) + 0x4d, 0x89, 0xcd, //0x00003c8e movq %r9, %r13 + 0x4d, 0x85, 0xff, //0x00003c91 testq %r15, %r15 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00003c94 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00003c99 movq $48(%rsp), %r12 + 0x0f, 0x8f, 0x11, 0xf1, 0xff, 0xff, //0x00003c9e jg LBB0_554 + 0xe9, 0xe5, 0x06, 0x00, 0x00, //0x00003ca4 jmp LBB0_839 + //0x00003ca9 LBB0_776 + 0x4d, 0x29, 0xd4, //0x00003ca9 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xf8, //0x00003cac bsfl %eax, %r15d + 0x4d, 0x01, 0xe7, //0x00003cb0 addq %r12, %r15 + 0x49, 0xf7, 0xd7, //0x00003cb3 notq %r15 + //0x00003cb6 LBB0_777 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003cb6 movq $24(%rsp), %r8 + 0xe9, 0xec, 0x01, 0x00, 0x00, //0x00003cbb jmp LBB0_792 + //0x00003cc0 LBB0_778 + 0x48, 0x89, 0xd0, //0x00003cc0 movq %rdx, %rax + 0x4c, 0x09, 0xe8, //0x00003cc3 orq %r13, %rax + 0x4c, 0x39, 0xea, //0x00003cc6 cmpq %r13, %rdx + 0x0f, 0x8c, 0xba, 0x01, 0x00, 0x00, //0x00003cc9 jl LBB0_790 + 0x48, 0x85, 0xc0, //0x00003ccf testq %rax, %rax + 0x0f, 0x88, 0xb1, 0x01, 0x00, 0x00, //0x00003cd2 js LBB0_790 + 0x48, 0xf7, 0xd2, //0x00003cd8 notq %rdx + 0x49, 0x89, 0xd2, //0x00003cdb movq %rdx, %r10 + 0xe9, 0xec, 0xfe, 0xff, 0xff, //0x00003cde jmp LBB0_773 + //0x00003ce3 LBB0_781 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003ce3 movq $24(%rsp), %r8 + 0x48, 0x09, 0xfe, //0x00003ce8 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00003ceb movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x00003cee orq %r13, %rax + 0x0f, 0x84, 0x71, 0xff, 0xff, 0xff, //0x00003cf1 je LBB0_605 + //0x00003cf7 LBB0_782 + 0x44, 0x89, 0xe8, //0x00003cf7 movl %r13d, %eax + 0xf7, 0xd0, //0x00003cfa notl %eax + 0x21, 0xc8, //0x00003cfc andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00003cfe leal (%rax,%rax), %edx + 0x44, 0x09, 0xea, //0x00003d01 orl %r13d, %edx + 0x89, 0xd7, //0x00003d04 movl %edx, %edi + 0xf7, 0xd7, //0x00003d06 notl %edi + 0x21, 0xcf, //0x00003d08 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003d0a andl $-1431655766, %edi + 0x45, 0x31, 0xed, //0x00003d10 xorl %r13d, %r13d + 0x01, 0xc7, //0x00003d13 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc5, //0x00003d15 setb %r13b + 0x01, 0xff, //0x00003d19 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00003d1b xorl $1431655765, %edi + 0x21, 0xd7, //0x00003d21 andl %edx, %edi + 0xf7, 0xd7, //0x00003d23 notl %edi + 0x21, 0xfe, //0x00003d25 andl %edi, %esi + 0x48, 0x85, 0xf6, //0x00003d27 testq %rsi, %rsi + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x00003d2a jne LBB0_606 + //0x00003d30 LBB0_783 + 0x49, 0x83, 0xc2, 0x20, //0x00003d30 addq $32, %r10 + 0x48, 0x83, 0xc3, 0xe0, //0x00003d34 addq $-32, %rbx + 0x4d, 0x85, 0xed, //0x00003d38 testq %r13, %r13 + 0x0f, 0x85, 0xcd, 0x03, 0x00, 0x00, //0x00003d3b jne LBB0_811 + //0x00003d41 LBB0_784 + 0x4c, 0x89, 0xe2, //0x00003d41 movq %r12, %rdx + 0x48, 0x85, 0xdb, //0x00003d44 testq %rbx, %rbx + 0x0f, 0x84, 0x36, 0x11, 0x00, 0x00, //0x00003d47 je LBB0_813 + //0x00003d4d LBB0_785 + 0x49, 0x8d, 0x4a, 0x01, //0x00003d4d leaq $1(%r10), %rcx + 0x41, 0x0f, 0xb6, 0x02, //0x00003d51 movzbl (%r10), %eax + 0x3c, 0x22, //0x00003d55 cmpb $34, %al + 0x0f, 0x84, 0x5e, 0x01, 0x00, 0x00, //0x00003d57 je LBB0_793 + 0x48, 0x8d, 0x73, 0xff, //0x00003d5d leaq $-1(%rbx), %rsi + 0x3c, 0x5c, //0x00003d61 cmpb $92, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003d63 je LBB0_788 + 0x48, 0x89, 0xf3, //0x00003d69 movq %rsi, %rbx + 0x49, 0x89, 0xca, //0x00003d6c movq %rcx, %r10 + 0x48, 0x85, 0xf6, //0x00003d6f testq %rsi, %rsi + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00003d72 jne LBB0_785 + 0xe9, 0x06, 0x11, 0x00, 0x00, //0x00003d78 jmp LBB0_813 + //0x00003d7d LBB0_788 + 0x48, 0x85, 0xf6, //0x00003d7d testq %rsi, %rsi + 0x0f, 0x84, 0x9e, 0x05, 0x00, 0x00, //0x00003d80 je LBB0_830 + 0x48, 0x03, 0x4c, 0x24, 0x38, //0x00003d86 addq $56(%rsp), %rcx + 0x48, 0x83, 0xfa, 0xff, //0x00003d8b cmpq $-1, %rdx + 0x4c, 0x0f, 0x44, 0xe1, //0x00003d8f cmoveq %rcx, %r12 + 0x48, 0x0f, 0x44, 0xd1, //0x00003d93 cmoveq %rcx, %rdx + 0x49, 0x83, 0xc2, 0x02, //0x00003d97 addq $2, %r10 + 0x48, 0x83, 0xc3, 0xfe, //0x00003d9b addq $-2, %rbx + 0x48, 0x89, 0xde, //0x00003d9f movq %rbx, %rsi + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003da2 movq $24(%rsp), %r8 + 0x48, 0x85, 0xf6, //0x00003da7 testq %rsi, %rsi + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00003daa jne LBB0_785 + 0xe9, 0xce, 0x10, 0x00, 0x00, //0x00003db0 jmp LBB0_813 + //0x00003db5 LBB0_662 + 0x4c, 0x8b, 0x94, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x00003db5 movq $168(%rsp), %r10 + 0x48, 0x8b, 0x5c, 0x24, 0x50, //0x00003dbd movq $80(%rsp), %rbx + 0x48, 0x83, 0xfb, 0x20, //0x00003dc2 cmpq $32, %rbx + 0x0f, 0x82, 0xea, 0x03, 0x00, 0x00, //0x00003dc6 jb LBB0_818 + //0x00003dcc LBB0_663 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1a, //0x00003dcc vmovdqu (%r10), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x62, 0x10, //0x00003dd1 vmovdqu $16(%r10), %xmm4 + 0xc5, 0xe1, 0x74, 0xe8, //0x00003dd7 vpcmpeqb %xmm0, %xmm3, %xmm5 + 0xc5, 0xf9, 0xd7, 0xfd, //0x00003ddb vpmovmskb %xmm5, %edi + 0xc5, 0xd9, 0x74, 0xe8, //0x00003ddf vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00003de3 vpmovmskb %xmm5, %esi + 0xc5, 0xe1, 0x74, 0xd9, //0x00003de7 vpcmpeqb %xmm1, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x00003deb vpmovmskb %xmm3, %ecx + 0xc5, 0xd9, 0x74, 0xd9, //0x00003def vpcmpeqb %xmm1, %xmm4, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00003df3 vpmovmskb %xmm3, %eax + 0x48, 0xc1, 0xe6, 0x10, //0x00003df7 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00003dfb shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00003dff orq %rax, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00003e02 cmpq $-1, %r12 + 0x0f, 0x85, 0xd4, 0x00, 0x00, 0x00, //0x00003e06 jne LBB0_795 + 0x48, 0x85, 0xc9, //0x00003e0c testq %rcx, %rcx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003e0f movq $24(%rsp), %r8 + 0x0f, 0x85, 0x5c, 0x04, 0x00, 0x00, //0x00003e14 jne LBB0_825 + 0x48, 0x09, 0xfe, //0x00003e1a orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00003e1d movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x00003e20 orq %r13, %rax + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x00003e23 jne LBB0_796 + //0x00003e29 LBB0_666 + 0x48, 0x85, 0xf6, //0x00003e29 testq %rsi, %rsi + 0x0f, 0x84, 0xfb, 0x00, 0x00, 0x00, //0x00003e2c je LBB0_797 + //0x00003e32 LBB0_667 + 0x48, 0x0f, 0xbc, 0xc6, //0x00003e32 bsfq %rsi, %rax + 0x4c, 0x03, 0x54, 0x24, 0x58, //0x00003e36 addq $88(%rsp), %r10 + 0x49, 0x01, 0xc2, //0x00003e3b addq %rax, %r10 + 0x4d, 0x85, 0xd2, //0x00003e3e testq %r10, %r10 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00003e41 movq $32(%rsp), %rax + 0x0f, 0x88, 0xbe, 0x06, 0x00, 0x00, //0x00003e46 js LBB0_861 + //0x00003e4c LBB0_668 + 0x4d, 0x89, 0x10, //0x00003e4c movq %r10, (%r8) + 0x4d, 0x89, 0xcd, //0x00003e4f movq %r9, %r13 + 0x4d, 0x85, 0xff, //0x00003e52 testq %r15, %r15 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00003e55 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00003e5a movq $48(%rsp), %r12 + 0x0f, 0x8e, 0x29, 0x05, 0x00, 0x00, //0x00003e5f jle LBB0_839 + 0x48, 0x8b, 0x01, //0x00003e65 movq (%rcx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00003e68 cmpq $4095, %rax + 0x0f, 0x8f, 0x8a, 0x06, 0x00, 0x00, //0x00003e6e jg LBB0_942 + 0x48, 0x8d, 0x50, 0x01, //0x00003e74 leaq $1(%rax), %rdx + 0x48, 0x89, 0x11, //0x00003e78 movq %rdx, (%rcx) + 0x48, 0xc7, 0x44, 0xc1, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00003e7b movq $4, $8(%rcx,%rax,8) + 0xe9, 0x2c, 0xef, 0xff, 0xff, //0x00003e84 jmp LBB0_554 + //0x00003e89 LBB0_790 + 0x48, 0x85, 0xc0, //0x00003e89 testq %rax, %rax + 0x49, 0x8d, 0x45, 0xff, //0x00003e8c leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x00003e90 notq %r13 + 0x4d, 0x0f, 0x48, 0xe8, //0x00003e93 cmovsq %r8, %r13 + 0x48, 0x39, 0xc2, //0x00003e97 cmpq %rax, %rdx + 0x4d, 0x0f, 0x45, 0xe8, //0x00003e9a cmovneq %r8, %r13 + 0x4d, 0x89, 0xea, //0x00003e9e movq %r13, %r10 + 0xe9, 0x29, 0xfd, 0xff, 0xff, //0x00003ea1 jmp LBB0_773 + //0x00003ea6 LBB0_791 + 0x48, 0xf7, 0xd0, //0x00003ea6 notq %rax + 0x49, 0x89, 0xc7, //0x00003ea9 movq %rax, %r15 + //0x00003eac LBB0_792 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00003eac movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00003eb1 movq $48(%rsp), %r12 + 0xe9, 0x92, 0xf7, 0xff, 0xff, //0x00003eb6 jmp LBB0_684 + //0x00003ebb LBB0_793 + 0x48, 0x2b, 0x4c, 0x24, 0x30, //0x00003ebb subq $48(%rsp), %rcx + 0x49, 0x89, 0xca, //0x00003ec0 movq %rcx, %r10 + 0xe9, 0xb5, 0xfd, 0xff, 0xff, //0x00003ec3 jmp LBB0_607 + //0x00003ec8 LBB0_794 + 0x49, 0x89, 0xff, //0x00003ec8 movq %rdi, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003ecb movq $-1, %rax + 0x4d, 0x85, 0xdb, //0x00003ed2 testq %r11, %r11 + 0x0f, 0x85, 0x15, 0xf7, 0xff, 0xff, //0x00003ed5 jne LBB0_675 + 0xe9, 0x41, 0x0e, 0x00, 0x00, //0x00003edb jmp LBB0_931 + //0x00003ee0 LBB0_795 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003ee0 movq $24(%rsp), %r8 + 0x48, 0x09, 0xfe, //0x00003ee5 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00003ee8 movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x00003eeb orq %r13, %rax + 0x0f, 0x84, 0x35, 0xff, 0xff, 0xff, //0x00003eee je LBB0_666 + //0x00003ef4 LBB0_796 + 0x44, 0x89, 0xe8, //0x00003ef4 movl %r13d, %eax + 0xf7, 0xd0, //0x00003ef7 notl %eax + 0x21, 0xc8, //0x00003ef9 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00003efb leal (%rax,%rax), %edx + 0x44, 0x09, 0xea, //0x00003efe orl %r13d, %edx + 0x89, 0xd7, //0x00003f01 movl %edx, %edi + 0xf7, 0xd7, //0x00003f03 notl %edi + 0x21, 0xcf, //0x00003f05 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003f07 andl $-1431655766, %edi + 0x45, 0x31, 0xed, //0x00003f0d xorl %r13d, %r13d + 0x01, 0xc7, //0x00003f10 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc5, //0x00003f12 setb %r13b + 0x01, 0xff, //0x00003f16 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00003f18 xorl $1431655765, %edi + 0x21, 0xd7, //0x00003f1e andl %edx, %edi + 0xf7, 0xd7, //0x00003f20 notl %edi + 0x21, 0xfe, //0x00003f22 andl %edi, %esi + 0x48, 0x85, 0xf6, //0x00003f24 testq %rsi, %rsi + 0x0f, 0x85, 0x05, 0xff, 0xff, 0xff, //0x00003f27 jne LBB0_667 + //0x00003f2d LBB0_797 + 0x49, 0x83, 0xc2, 0x20, //0x00003f2d addq $32, %r10 + 0x48, 0x83, 0xc3, 0xe0, //0x00003f31 addq $-32, %rbx + 0x4d, 0x85, 0xed, //0x00003f35 testq %r13, %r13 + 0x0f, 0x85, 0x86, 0x02, 0x00, 0x00, //0x00003f38 jne LBB0_819 + //0x00003f3e LBB0_798 + 0x4c, 0x89, 0xe2, //0x00003f3e movq %r12, %rdx + 0x48, 0x85, 0xdb, //0x00003f41 testq %rbx, %rbx + 0x0f, 0x84, 0x39, 0x0f, 0x00, 0x00, //0x00003f44 je LBB0_813 + //0x00003f4a LBB0_799 + 0x49, 0x8d, 0x4a, 0x01, //0x00003f4a leaq $1(%r10), %rcx + 0x41, 0x0f, 0xb6, 0x02, //0x00003f4e movzbl (%r10), %eax + 0x3c, 0x22, //0x00003f52 cmpb $34, %al + 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003f54 je LBB0_860 + 0x48, 0x8d, 0x73, 0xff, //0x00003f5a leaq $-1(%rbx), %rsi + 0x3c, 0x5c, //0x00003f5e cmpb $92, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003f60 je LBB0_802 + 0x48, 0x89, 0xf3, //0x00003f66 movq %rsi, %rbx + 0x49, 0x89, 0xca, //0x00003f69 movq %rcx, %r10 + 0x48, 0x85, 0xf6, //0x00003f6c testq %rsi, %rsi + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00003f6f jne LBB0_799 + 0xe9, 0x09, 0x0f, 0x00, 0x00, //0x00003f75 jmp LBB0_813 + //0x00003f7a LBB0_802 + 0x48, 0x85, 0xf6, //0x00003f7a testq %rsi, %rsi + 0x0f, 0x84, 0xa1, 0x03, 0x00, 0x00, //0x00003f7d je LBB0_830 + 0x48, 0x03, 0x4c, 0x24, 0x38, //0x00003f83 addq $56(%rsp), %rcx + 0x48, 0x83, 0xfa, 0xff, //0x00003f88 cmpq $-1, %rdx + 0x4c, 0x0f, 0x44, 0xe1, //0x00003f8c cmoveq %rcx, %r12 + 0x48, 0x0f, 0x44, 0xd1, //0x00003f90 cmoveq %rcx, %rdx + 0x49, 0x83, 0xc2, 0x02, //0x00003f94 addq $2, %r10 + 0x48, 0x83, 0xc3, 0xfe, //0x00003f98 addq $-2, %rbx + 0x48, 0x89, 0xde, //0x00003f9c movq %rbx, %rsi + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003f9f movq $24(%rsp), %r8 + 0x48, 0x85, 0xf6, //0x00003fa4 testq %rsi, %rsi + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00003fa7 jne LBB0_799 + 0xe9, 0xd1, 0x0e, 0x00, 0x00, //0x00003fad jmp LBB0_813 + //0x00003fb2 LBB0_804 + 0x48, 0xf7, 0xd0, //0x00003fb2 notq %rax + 0x49, 0x89, 0xc7, //0x00003fb5 movq %rax, %r15 + 0xe9, 0xf9, 0xfc, 0xff, 0xff, //0x00003fb8 jmp LBB0_777 + //0x00003fbd LBB0_860 + 0x48, 0x2b, 0x4c, 0x24, 0x30, //0x00003fbd subq $48(%rsp), %rcx + 0x49, 0x89, 0xca, //0x00003fc2 movq %rcx, %r10 + 0x4d, 0x85, 0xd2, //0x00003fc5 testq %r10, %r10 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00003fc8 movq $32(%rsp), %rax + 0x0f, 0x89, 0x79, 0xfe, 0xff, 0xff, //0x00003fcd jns LBB0_668 + 0xe9, 0x32, 0x05, 0x00, 0x00, //0x00003fd3 jmp LBB0_861 + //0x00003fd8 LBB0_805 + 0x4d, 0x29, 0xf4, //0x00003fd8 subq %r14, %r12 + 0x44, 0x0f, 0xbc, 0xd0, //0x00003fdb bsfl %eax, %r10d + 0x4d, 0x01, 0xe2, //0x00003fdf addq %r12, %r10 + //0x00003fe2 LBB0_806 + 0x49, 0xf7, 0xd2, //0x00003fe2 notq %r10 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00003fe5 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00003fea movq $48(%rsp), %r12 + 0xe9, 0xdb, 0xfb, 0xff, 0xff, //0x00003fef jmp LBB0_773 + //0x00003ff4 LBB0_698 + 0x4c, 0x8b, 0x94, 0x24, 0xa8, 0x00, 0x00, 0x00, //0x00003ff4 movq $168(%rsp), %r10 + 0x48, 0x8b, 0x5c, 0x24, 0x50, //0x00003ffc movq $80(%rsp), %rbx + 0x48, 0x83, 0xfb, 0x20, //0x00004001 cmpq $32, %rbx + 0x0f, 0x82, 0x69, 0x00, 0x00, 0x00, //0x00004005 jb LBB0_704 + //0x0000400b LBB0_699 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1a, //0x0000400b vmovdqu (%r10), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x62, 0x10, //0x00004010 vmovdqu $16(%r10), %xmm4 + 0xc5, 0xe1, 0x74, 0xe8, //0x00004016 vpcmpeqb %xmm0, %xmm3, %xmm5 + 0xc5, 0xf9, 0xd7, 0xfd, //0x0000401a vpmovmskb %xmm5, %edi + 0xc5, 0xd9, 0x74, 0xe8, //0x0000401e vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00004022 vpmovmskb %xmm5, %esi + 0xc5, 0xe1, 0x74, 0xd9, //0x00004026 vpcmpeqb %xmm1, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x0000402a vpmovmskb %xmm3, %ecx + 0xc5, 0xd9, 0x74, 0xd9, //0x0000402e vpcmpeqb %xmm1, %xmm4, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00004032 vpmovmskb %xmm3, %eax + 0x48, 0xc1, 0xe6, 0x10, //0x00004036 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x0000403a shlq $16, %rax + 0x48, 0x09, 0xc1, //0x0000403e orq %rax, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00004041 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00004045 jne LBB0_701 + 0x48, 0x85, 0xc9, //0x0000404b testq %rcx, %rcx + 0x0f, 0x85, 0x45, 0x02, 0x00, 0x00, //0x0000404e jne LBB0_826 + //0x00004054 LBB0_701 + 0x48, 0x09, 0xfe, //0x00004054 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00004057 movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x0000405a orq %r13, %rax + 0x0f, 0x85, 0x54, 0x02, 0x00, 0x00, //0x0000405d jne LBB0_827 + //0x00004063 LBB0_702 + 0x48, 0x85, 0xf6, //0x00004063 testq %rsi, %rsi + 0x0f, 0x85, 0x05, 0xfc, 0xff, 0xff, //0x00004066 jne LBB0_606 + //0x0000406c LBB0_703 + 0x49, 0x83, 0xc2, 0x20, //0x0000406c addq $32, %r10 + 0x48, 0x83, 0xc3, 0xe0, //0x00004070 addq $-32, %rbx + //0x00004074 LBB0_704 + 0x4d, 0x85, 0xed, //0x00004074 testq %r13, %r13 + 0x0f, 0x85, 0x78, 0x02, 0x00, 0x00, //0x00004077 jne LBB0_828 + 0x4c, 0x89, 0xe2, //0x0000407d movq %r12, %rdx + 0x48, 0x85, 0xdb, //0x00004080 testq %rbx, %rbx + 0x0f, 0x84, 0x9b, 0x02, 0x00, 0x00, //0x00004083 je LBB0_830 + //0x00004089 LBB0_706 + 0x49, 0x8d, 0x4a, 0x01, //0x00004089 leaq $1(%r10), %rcx + 0x41, 0x0f, 0xb6, 0x02, //0x0000408d movzbl (%r10), %eax + 0x3c, 0x22, //0x00004091 cmpb $34, %al + 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x00004093 je LBB0_814 + 0x48, 0x8d, 0x73, 0xff, //0x00004099 leaq $-1(%rbx), %rsi + 0x3c, 0x5c, //0x0000409d cmpb $92, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000409f je LBB0_807 + 0x48, 0x89, 0xf3, //0x000040a5 movq %rsi, %rbx + 0x49, 0x89, 0xca, //0x000040a8 movq %rcx, %r10 + 0x48, 0x85, 0xf6, //0x000040ab testq %rsi, %rsi + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x000040ae jne LBB0_706 + 0xe9, 0x6b, 0x02, 0x00, 0x00, //0x000040b4 jmp LBB0_830 + //0x000040b9 LBB0_807 + 0x48, 0x85, 0xf6, //0x000040b9 testq %rsi, %rsi + 0x0f, 0x84, 0x62, 0x02, 0x00, 0x00, //0x000040bc je LBB0_830 + 0x48, 0x03, 0x4c, 0x24, 0x38, //0x000040c2 addq $56(%rsp), %rcx + 0x48, 0x83, 0xfa, 0xff, //0x000040c7 cmpq $-1, %rdx + 0x4c, 0x0f, 0x44, 0xe1, //0x000040cb cmoveq %rcx, %r12 + 0x48, 0x0f, 0x44, 0xd1, //0x000040cf cmoveq %rcx, %rdx + 0x49, 0x83, 0xc2, 0x02, //0x000040d3 addq $2, %r10 + 0x48, 0x83, 0xc3, 0xfe, //0x000040d7 addq $-2, %rbx + 0x48, 0x89, 0xde, //0x000040db movq %rbx, %rsi + 0x48, 0x85, 0xf6, //0x000040de testq %rsi, %rsi + 0x0f, 0x85, 0xa2, 0xff, 0xff, 0xff, //0x000040e1 jne LBB0_706 + 0xe9, 0x38, 0x02, 0x00, 0x00, //0x000040e7 jmp LBB0_830 + //0x000040ec LBB0_809 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000040ec movq $-1, %r12 + 0x45, 0x31, 0xed, //0x000040f3 xorl %r13d, %r13d + 0x48, 0x83, 0xfb, 0x20, //0x000040f6 cmpq $32, %rbx + 0x0f, 0x83, 0x0b, 0xfb, 0xff, 0xff, //0x000040fa jae LBB0_602 + //0x00004100 LBB0_810 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00004100 movq $24(%rsp), %r8 + 0x4d, 0x85, 0xed, //0x00004105 testq %r13, %r13 + 0x0f, 0x84, 0x33, 0xfc, 0xff, 0xff, //0x00004108 je LBB0_784 + //0x0000410e LBB0_811 + 0x48, 0x85, 0xdb, //0x0000410e testq %rbx, %rbx + 0x0f, 0x84, 0x0d, 0x02, 0x00, 0x00, //0x00004111 je LBB0_830 + 0x48, 0x8b, 0x44, 0x24, 0x38, //0x00004117 movq $56(%rsp), %rax + 0x4c, 0x01, 0xd0, //0x0000411c addq %r10, %rax + 0x49, 0x83, 0xfc, 0xff, //0x0000411f cmpq $-1, %r12 + 0x4c, 0x89, 0xe2, //0x00004123 movq %r12, %rdx + 0x4c, 0x0f, 0x44, 0xe0, //0x00004126 cmoveq %rax, %r12 + 0x48, 0x0f, 0x44, 0xd0, //0x0000412a cmoveq %rax, %rdx + 0x49, 0xff, 0xc2, //0x0000412e incq %r10 + 0x48, 0xff, 0xcb, //0x00004131 decq %rbx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00004134 movq $24(%rsp), %r8 + 0x48, 0x85, 0xdb, //0x00004139 testq %rbx, %rbx + 0x0f, 0x85, 0x0b, 0xfc, 0xff, 0xff, //0x0000413c jne LBB0_785 + 0xe9, 0x3c, 0x0d, 0x00, 0x00, //0x00004142 jmp LBB0_813 + //0x00004147 LBB0_814 + 0x48, 0x2b, 0x4c, 0x24, 0x30, //0x00004147 subq $48(%rsp), %rcx + 0x49, 0x89, 0xca, //0x0000414c movq %rcx, %r10 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x0000414f movq $24(%rsp), %r8 + 0xe9, 0x24, 0xfb, 0xff, 0xff, //0x00004154 jmp LBB0_607 + //0x00004159 LBB0_815 + 0x49, 0x89, 0xf0, //0x00004159 movq %rsi, %r8 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000415c movq $-1, %r10 + 0x4d, 0x85, 0xed, //0x00004163 testq %r13, %r13 + 0x0f, 0x85, 0xfe, 0xf9, 0xff, 0xff, //0x00004166 jne LBB0_764 + 0xe9, 0xf9, 0x0b, 0x00, 0x00, //0x0000416c jmp LBB0_940 + //0x00004171 LBB0_816 + 0x48, 0xc7, 0x44, 0x24, 0x20, 0xff, 0xff, 0xff, 0xff, //0x00004171 movq $-1, $32(%rsp) + 0x4d, 0x89, 0xd7, //0x0000417a movq %r10, %r15 + 0x48, 0x89, 0xfa, //0x0000417d movq %rdi, %rdx + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00004180 movq $-1, %r11 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004187 movq $-1, %r13 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x0000418e movq $24(%rsp), %r8 + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x00004193 movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00004198 movq $48(%rsp), %r12 + 0xe9, 0xe5, 0xf1, 0xff, 0xff, //0x0000419d jmp LBB0_642 + //0x000041a2 LBB0_817 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000041a2 movq $-1, %r12 + 0x45, 0x31, 0xed, //0x000041a9 xorl %r13d, %r13d + 0x48, 0x83, 0xfb, 0x20, //0x000041ac cmpq $32, %rbx + 0x0f, 0x83, 0x16, 0xfc, 0xff, 0xff, //0x000041b0 jae LBB0_663 + //0x000041b6 LBB0_818 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000041b6 movq $24(%rsp), %r8 + 0x4d, 0x85, 0xed, //0x000041bb testq %r13, %r13 + 0x0f, 0x84, 0x7a, 0xfd, 0xff, 0xff, //0x000041be je LBB0_798 + //0x000041c4 LBB0_819 + 0x48, 0x85, 0xdb, //0x000041c4 testq %rbx, %rbx + 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x000041c7 je LBB0_830 + 0x48, 0x8b, 0x44, 0x24, 0x38, //0x000041cd movq $56(%rsp), %rax + 0x4c, 0x01, 0xd0, //0x000041d2 addq %r10, %rax + 0x49, 0x83, 0xfc, 0xff, //0x000041d5 cmpq $-1, %r12 + 0x4c, 0x89, 0xe2, //0x000041d9 movq %r12, %rdx + 0x4c, 0x0f, 0x44, 0xe0, //0x000041dc cmoveq %rax, %r12 + 0x48, 0x0f, 0x44, 0xd0, //0x000041e0 cmoveq %rax, %rdx + 0x49, 0xff, 0xc2, //0x000041e4 incq %r10 + 0x48, 0xff, 0xcb, //0x000041e7 decq %rbx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x000041ea movq $24(%rsp), %r8 + 0x48, 0x85, 0xdb, //0x000041ef testq %rbx, %rbx + 0x0f, 0x85, 0x52, 0xfd, 0xff, 0xff, //0x000041f2 jne LBB0_799 + 0xe9, 0x86, 0x0c, 0x00, 0x00, //0x000041f8 jmp LBB0_813 + //0x000041fd LBB0_823 + 0x49, 0xf7, 0xda, //0x000041fd negq %r10 + 0xe9, 0xca, 0xf9, 0xff, 0xff, //0x00004200 jmp LBB0_773 + //0x00004205 LBB0_821 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00004205 movq $-1, %r12 + 0x45, 0x31, 0xed, //0x0000420c xorl %r13d, %r13d + 0x48, 0x83, 0xfb, 0x20, //0x0000420f cmpq $32, %rbx + 0x0f, 0x83, 0xf2, 0xfd, 0xff, 0xff, //0x00004213 jae LBB0_699 + 0xe9, 0x56, 0xfe, 0xff, 0xff, //0x00004219 jmp LBB0_704 + //0x0000421e LBB0_822 + 0x48, 0xc7, 0x44, 0x24, 0x50, 0xff, 0xff, 0xff, 0xff, //0x0000421e movq $-1, $80(%rsp) + 0x4d, 0x89, 0xf0, //0x00004227 movq %r14, %r8 + 0x49, 0x89, 0xfb, //0x0000422a movq %rdi, %r11 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000422d movq $-1, %r13 + 0x48, 0xc7, 0x44, 0x24, 0x20, 0xff, 0xff, 0xff, 0xff, //0x00004234 movq $-1, $32(%rsp) + 0x48, 0x8b, 0x4c, 0x24, 0x40, //0x0000423d movq $64(%rsp), %rcx + 0x4c, 0x8b, 0x64, 0x24, 0x30, //0x00004242 movq $48(%rsp), %r12 + 0x48, 0x8d, 0x3d, 0x52, 0x13, 0x00, 0x00, //0x00004247 leaq $4946(%rip), %rdi /* LJTI0_4+0(%rip) */ + 0xe9, 0x8d, 0xf7, 0xff, 0xff, //0x0000424e jmp LBB0_735 + //0x00004253 LBB0_824 + 0x4c, 0x89, 0xd0, //0x00004253 movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x30, //0x00004256 subq $48(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xe1, //0x0000425b bsfq %rcx, %r12 + 0x49, 0x01, 0xc4, //0x0000425f addq %rax, %r12 + 0x48, 0x09, 0xfe, //0x00004262 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00004265 movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x00004268 orq %r13, %rax + 0x0f, 0x84, 0xf7, 0xf9, 0xff, 0xff, //0x0000426b je LBB0_605 + 0xe9, 0x81, 0xfa, 0xff, 0xff, //0x00004271 jmp LBB0_782 + //0x00004276 LBB0_825 + 0x4c, 0x89, 0xd0, //0x00004276 movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x30, //0x00004279 subq $48(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xe1, //0x0000427e bsfq %rcx, %r12 + 0x49, 0x01, 0xc4, //0x00004282 addq %rax, %r12 + 0x48, 0x09, 0xfe, //0x00004285 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x00004288 movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x0000428b orq %r13, %rax + 0x0f, 0x84, 0x95, 0xfb, 0xff, 0xff, //0x0000428e je LBB0_666 + 0xe9, 0x5b, 0xfc, 0xff, 0xff, //0x00004294 jmp LBB0_796 + //0x00004299 LBB0_826 + 0x4c, 0x89, 0xd0, //0x00004299 movq %r10, %rax + 0x48, 0x2b, 0x44, 0x24, 0x30, //0x0000429c subq $48(%rsp), %rax + 0x4c, 0x0f, 0xbc, 0xe1, //0x000042a1 bsfq %rcx, %r12 + 0x49, 0x01, 0xc4, //0x000042a5 addq %rax, %r12 + 0x48, 0x09, 0xfe, //0x000042a8 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x000042ab movq %rcx, %rax + 0x4c, 0x09, 0xe8, //0x000042ae orq %r13, %rax + 0x0f, 0x84, 0xac, 0xfd, 0xff, 0xff, //0x000042b1 je LBB0_702 + //0x000042b7 LBB0_827 + 0x44, 0x89, 0xe8, //0x000042b7 movl %r13d, %eax + 0xf7, 0xd0, //0x000042ba notl %eax + 0x21, 0xc8, //0x000042bc andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x000042be leal (%rax,%rax), %edx + 0x44, 0x09, 0xea, //0x000042c1 orl %r13d, %edx + 0x89, 0xd7, //0x000042c4 movl %edx, %edi + 0xf7, 0xd7, //0x000042c6 notl %edi + 0x21, 0xcf, //0x000042c8 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000042ca andl $-1431655766, %edi + 0x45, 0x31, 0xed, //0x000042d0 xorl %r13d, %r13d + 0x01, 0xc7, //0x000042d3 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc5, //0x000042d5 setb %r13b + 0x01, 0xff, //0x000042d9 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000042db xorl $1431655765, %edi + 0x21, 0xd7, //0x000042e1 andl %edx, %edi + 0xf7, 0xd7, //0x000042e3 notl %edi + 0x21, 0xfe, //0x000042e5 andl %edi, %esi + 0x48, 0x85, 0xf6, //0x000042e7 testq %rsi, %rsi + 0x0f, 0x85, 0x81, 0xf9, 0xff, 0xff, //0x000042ea jne LBB0_606 + 0xe9, 0x77, 0xfd, 0xff, 0xff, //0x000042f0 jmp LBB0_703 + //0x000042f5 LBB0_828 + 0x48, 0x85, 0xdb, //0x000042f5 testq %rbx, %rbx + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000042f8 je LBB0_830 + 0x48, 0x8b, 0x44, 0x24, 0x38, //0x000042fe movq $56(%rsp), %rax + 0x4c, 0x01, 0xd0, //0x00004303 addq %r10, %rax + 0x49, 0x83, 0xfc, 0xff, //0x00004306 cmpq $-1, %r12 + 0x4c, 0x89, 0xe2, //0x0000430a movq %r12, %rdx + 0x4c, 0x0f, 0x44, 0xe0, //0x0000430d cmoveq %rax, %r12 + 0x48, 0x0f, 0x44, 0xd0, //0x00004311 cmoveq %rax, %rdx + 0x49, 0xff, 0xc2, //0x00004315 incq %r10 + 0x48, 0xff, 0xcb, //0x00004318 decq %rbx + 0x48, 0x85, 0xdb, //0x0000431b testq %rbx, %rbx + 0x0f, 0x85, 0x65, 0xfd, 0xff, 0xff, //0x0000431e jne LBB0_706 + //0x00004324 LBB0_830 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00004324 movq $24(%rsp), %r8 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00004329 movq $32(%rsp), %rax + 0xe9, 0xe1, 0x01, 0x00, 0x00, //0x0000432e jmp LBB0_862 + //0x00004333 LBB0_249 + 0x3c, 0x7d, //0x00004333 cmpb $125, %al + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00004335 je LBB0_833 + 0xe9, 0x41, 0x00, 0x00, 0x00, //0x0000433b jmp LBB0_837 + //0x00004340 LBB0_831 + 0x49, 0x89, 0x38, //0x00004340 movq %rdi, (%r8) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004343 movq $-1, %r13 + 0xe9, 0x3f, 0x00, 0x00, 0x00, //0x0000434a jmp LBB0_839 + //0x0000434f LBB0_832 + 0x3c, 0x5d, //0x0000434f cmpb $93, %al + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00004351 jne LBB0_837 + //0x00004357 LBB0_833 + 0x49, 0xff, 0xca, //0x00004357 decq %r10 + 0x4d, 0x89, 0x10, //0x0000435a movq %r10, (%r8) + 0x49, 0xc7, 0xc5, 0xdf, 0xff, 0xff, 0xff, //0x0000435d movq $-33, %r13 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004364 jmp LBB0_839 + //0x00004369 LBB0_835 + 0x49, 0xff, 0xca, //0x00004369 decq %r10 + 0x4d, 0x89, 0x10, //0x0000436c movq %r10, (%r8) + 0x49, 0xc7, 0xc5, 0xde, 0xff, 0xff, 0xff, //0x0000436f movq $-34, %r13 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00004376 jmp LBB0_839 + //0x0000437b LBB0_836 + 0x49, 0x89, 0x38, //0x0000437b movq %rdi, (%r8) + 0x49, 0x89, 0xfa, //0x0000437e movq %rdi, %r10 + //0x00004381 LBB0_837 + 0x49, 0xff, 0xca, //0x00004381 decq %r10 + 0x4d, 0x89, 0x10, //0x00004384 movq %r10, (%r8) + //0x00004387 LBB0_838 + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00004387 movq $-2, %r13 + //0x0000438e LBB0_839 + 0x4c, 0x89, 0xe8, //0x0000438e movq %r13, %rax + 0x48, 0x8d, 0x65, 0xd8, //0x00004391 leaq $-40(%rbp), %rsp + 0x5b, //0x00004395 popq %rbx + 0x41, 0x5c, //0x00004396 popq %r12 + 0x41, 0x5d, //0x00004398 popq %r13 + 0x41, 0x5e, //0x0000439a popq %r14 + 0x41, 0x5f, //0x0000439c popq %r15 + 0x5d, //0x0000439e popq %rbp + 0xc5, 0xf8, 0x77, //0x0000439f vzeroupper + 0xc3, //0x000043a2 retq + //0x000043a3 LBB0_581 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000043a3 movq $-1, %r13 + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000043aa jmp LBB0_839 + //0x000043af LBB0_840 + 0x4c, 0x01, 0xdf, //0x000043af addq %r11, %rdi + //0x000043b2 LBB0_841 + 0x4c, 0x29, 0xdf, //0x000043b2 subq %r11, %rdi + 0x49, 0x89, 0xfc, //0x000043b5 movq %rdi, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000043b8 movq $-1, %r13 + 0x49, 0x39, 0xf4, //0x000043bf cmpq %rsi, %r12 + 0x0f, 0x83, 0xc6, 0xff, 0xff, 0xff, //0x000043c2 jae LBB0_839 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x000043c8 jmp LBB0_843 + //0x000043cd LBB0_842 + 0x4c, 0x89, 0xd8, //0x000043cd movq %r11, %rax + 0x48, 0xf7, 0xd0, //0x000043d0 notq %rax + 0x49, 0x01, 0xc4, //0x000043d3 addq %rax, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000043d6 movq $-1, %r13 + 0x49, 0x39, 0xf4, //0x000043dd cmpq %rsi, %r12 + 0x0f, 0x83, 0xa8, 0xff, 0xff, 0xff, //0x000043e0 jae LBB0_839 + //0x000043e6 LBB0_843 + 0x49, 0x8d, 0x7c, 0x24, 0x01, //0x000043e6 leaq $1(%r12), %rdi + 0x49, 0x89, 0x38, //0x000043eb movq %rdi, (%r8) + 0x43, 0x0f, 0xbe, 0x04, 0x23, //0x000043ee movsbl (%r11,%r12), %eax + 0x83, 0xf8, 0x7b, //0x000043f3 cmpl $123, %eax + 0x0f, 0x87, 0x43, 0x01, 0x00, 0x00, //0x000043f6 ja LBB0_866 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000043fc movq $-1, %r13 + 0x48, 0x8d, 0x15, 0x6e, 0x13, 0x00, 0x00, //0x00004403 leaq $4974(%rip), %rdx /* LJTI0_6+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x0000440a movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x0000440e addq %rdx, %rax + 0xff, 0xe0, //0x00004411 jmpq *%rax + //0x00004413 LBB0_845 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00004413 movq $40(%rsp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00004418 movq $8(%rax), %rdx + 0x48, 0x89, 0xd1, //0x0000441c movq %rdx, %rcx + 0x48, 0x29, 0xf9, //0x0000441f subq %rdi, %rcx + 0x4c, 0x01, 0xdf, //0x00004422 addq %r11, %rdi + 0x48, 0x83, 0xf9, 0x10, //0x00004425 cmpq $16, %rcx + 0x0f, 0x82, 0x6a, 0x00, 0x00, 0x00, //0x00004429 jb LBB0_850 + 0x4c, 0x29, 0xe2, //0x0000442f subq %r12, %rdx + 0x48, 0x83, 0xc2, 0xef, //0x00004432 addq $-17, %rdx + 0x48, 0x89, 0xd0, //0x00004436 movq %rdx, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00004439 andq $-16, %rax + 0x4c, 0x01, 0xe0, //0x0000443d addq %r12, %rax + 0x49, 0x8d, 0x74, 0x03, 0x11, //0x00004440 leaq $17(%r11,%rax), %rsi + 0x83, 0xe2, 0x0f, //0x00004445 andl $15, %edx + 0xc5, 0xfa, 0x6f, 0x05, 0xb0, 0xbb, 0xff, 0xff, //0x00004448 vmovdqu $-17488(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xb8, 0xbb, 0xff, 0xff, //0x00004450 vmovdqu $-17480(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xc0, 0xbb, 0xff, 0xff, //0x00004458 vmovdqu $-17472(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + //0x00004460 .p2align 4, 0x90 + //0x00004460 LBB0_847 + 0xc5, 0xfa, 0x6f, 0x1f, //0x00004460 vmovdqu (%rdi), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00004464 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00004468 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x0000446c vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x00004470 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00004474 vpmovmskb %xmm3, %eax + 0x66, 0x85, 0xc0, //0x00004478 testw %ax, %ax + 0x0f, 0x85, 0x65, 0x00, 0x00, 0x00, //0x0000447b jne LBB0_858 + 0x48, 0x83, 0xc7, 0x10, //0x00004481 addq $16, %rdi + 0x48, 0x83, 0xc1, 0xf0, //0x00004485 addq $-16, %rcx + 0x48, 0x83, 0xf9, 0x0f, //0x00004489 cmpq $15, %rcx + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000448d ja LBB0_847 + 0x48, 0x89, 0xd1, //0x00004493 movq %rdx, %rcx + 0x48, 0x89, 0xf7, //0x00004496 movq %rsi, %rdi + //0x00004499 LBB0_850 + 0x48, 0x85, 0xc9, //0x00004499 testq %rcx, %rcx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x0000449c je LBB0_857 + 0x48, 0x8d, 0x04, 0x0f, //0x000044a2 leaq (%rdi,%rcx), %rax + //0x000044a6 LBB0_852 + 0x0f, 0xb6, 0x17, //0x000044a6 movzbl (%rdi), %edx + 0x80, 0xfa, 0x2c, //0x000044a9 cmpb $44, %dl + 0x0f, 0x84, 0xa9, 0x08, 0x00, 0x00, //0x000044ac je LBB0_938 + 0x80, 0xfa, 0x7d, //0x000044b2 cmpb $125, %dl + 0x0f, 0x84, 0xa0, 0x08, 0x00, 0x00, //0x000044b5 je LBB0_938 + 0x80, 0xfa, 0x5d, //0x000044bb cmpb $93, %dl + 0x0f, 0x84, 0x97, 0x08, 0x00, 0x00, //0x000044be je LBB0_938 + 0x48, 0xff, 0xc7, //0x000044c4 incq %rdi + 0x48, 0xff, 0xc9, //0x000044c7 decq %rcx + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000044ca jne LBB0_852 + 0x48, 0x89, 0xc7, //0x000044d0 movq %rax, %rdi + //0x000044d3 LBB0_857 + 0x4c, 0x29, 0xdf, //0x000044d3 subq %r11, %rdi + 0x48, 0x8b, 0x44, 0x24, 0x18, //0x000044d6 movq $24(%rsp), %rax + 0x48, 0x89, 0x38, //0x000044db movq %rdi, (%rax) + 0x4d, 0x89, 0xe5, //0x000044de movq %r12, %r13 + 0xe9, 0xa8, 0xfe, 0xff, 0xff, //0x000044e1 jmp LBB0_839 + //0x000044e6 LBB0_858 + 0x0f, 0xb7, 0xc0, //0x000044e6 movzwl %ax, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x000044e9 bsfq %rax, %rax + 0x4c, 0x29, 0xdf, //0x000044ed subq %r11, %rdi + 0x48, 0x01, 0xc7, //0x000044f0 addq %rax, %rdi + //0x000044f3 LBB0_859 + 0x49, 0x89, 0x38, //0x000044f3 movq %rdi, (%r8) + 0x4d, 0x89, 0xe5, //0x000044f6 movq %r12, %r13 + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x000044f9 jmp LBB0_839 + //0x000044fe LBB0_942 + 0x49, 0xc7, 0xc5, 0xf9, 0xff, 0xff, 0xff, //0x000044fe movq $-7, %r13 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x00004505 jmp LBB0_839 + //0x0000450a LBB0_861 + 0x49, 0x83, 0xfa, 0xff, //0x0000450a cmpq $-1, %r10 + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x0000450e jne LBB0_863 + //0x00004514 LBB0_862 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00004514 movq $-1, %r10 + 0x49, 0x89, 0xc4, //0x0000451b movq %rax, %r12 + //0x0000451e LBB0_863 + 0x4d, 0x89, 0x20, //0x0000451e movq %r12, (%r8) + 0x4d, 0x89, 0xd5, //0x00004521 movq %r10, %r13 + 0xe9, 0x65, 0xfe, 0xff, 0xff, //0x00004524 jmp LBB0_839 + //0x00004529 LBB0_864 + 0x49, 0x8d, 0x44, 0x24, 0x04, //0x00004529 leaq $4(%r12), %rax + 0xe9, 0x5e, 0x04, 0x00, 0x00, //0x0000452e jmp LBB0_903 + //0x00004533 LBB0_865 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004533 movq $-1, %rax + 0xe9, 0xe2, 0x07, 0x00, 0x00, //0x0000453a jmp LBB0_931 + //0x0000453f LBB0_866 + 0x4d, 0x89, 0x20, //0x0000453f movq %r12, (%r8) + 0xe9, 0x40, 0xfe, 0xff, 0xff, //0x00004542 jmp LBB0_838 + //0x00004547 LBB0_867 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00004547 movq $40(%rsp), %rax + 0x4c, 0x8b, 0x40, 0x08, //0x0000454c movq $8(%rax), %r8 + 0x4d, 0x89, 0xc6, //0x00004550 movq %r8, %r14 + 0x49, 0x29, 0xfe, //0x00004553 subq %rdi, %r14 + 0x49, 0x83, 0xfe, 0x20, //0x00004556 cmpq $32, %r14 + 0x0f, 0x8c, 0xf6, 0x09, 0x00, 0x00, //0x0000455a jl LBB0_961 + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00004560 movl $4294967295, %r9d + 0x4f, 0x8d, 0x14, 0x23, //0x00004566 leaq (%r11,%r12), %r10 + 0x4d, 0x29, 0xe0, //0x0000456a subq %r12, %r8 + 0xbe, 0x1f, 0x00, 0x00, 0x00, //0x0000456d movl $31, %esi + 0x45, 0x31, 0xf6, //0x00004572 xorl %r14d, %r14d + 0xc5, 0xfa, 0x6f, 0x05, 0xb3, 0xba, 0xff, 0xff, //0x00004575 vmovdqu $-17741(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xbb, 0xba, 0xff, 0xff, //0x0000457d vmovdqu $-17733(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x45, 0x31, 0xff, //0x00004585 xorl %r15d, %r15d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00004588 jmp LBB0_869 + //0x0000458d LBB0_872 + 0x45, 0x31, 0xff, //0x0000458d xorl %r15d, %r15d + 0x85, 0xff, //0x00004590 testl %edi, %edi + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00004592 jne LBB0_871 + //0x00004598 LBB0_873 + 0x49, 0x83, 0xc6, 0x20, //0x00004598 addq $32, %r14 + 0x49, 0x8d, 0x44, 0x30, 0xe0, //0x0000459c leaq $-32(%r8,%rsi), %rax + 0x48, 0x83, 0xc6, 0xe0, //0x000045a1 addq $-32, %rsi + 0x48, 0x83, 0xf8, 0x3f, //0x000045a5 cmpq $63, %rax + 0x0f, 0x8e, 0xf1, 0x08, 0x00, 0x00, //0x000045a9 jle LBB0_874 + //0x000045af LBB0_869 + 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x32, 0x01, //0x000045af vmovdqu $1(%r10,%r14), %xmm2 + 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x32, 0x11, //0x000045b6 vmovdqu $17(%r10,%r14), %xmm3 + 0xc5, 0xe9, 0x74, 0xe0, //0x000045bd vpcmpeqb %xmm0, %xmm2, %xmm4 + 0xc5, 0xf9, 0xd7, 0xc4, //0x000045c1 vpmovmskb %xmm4, %eax + 0xc5, 0xe1, 0x74, 0xe0, //0x000045c5 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x000045c9 vpmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x000045cd shlq $16, %rdi + 0x48, 0x09, 0xc7, //0x000045d1 orq %rax, %rdi + 0xc5, 0xe9, 0x74, 0xd1, //0x000045d4 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000045d8 vpmovmskb %xmm2, %ebx + 0xc5, 0xe1, 0x74, 0xd1, //0x000045dc vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000045e0 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x000045e4 shlq $16, %rax + 0x48, 0x09, 0xd8, //0x000045e8 orq %rbx, %rax + 0x48, 0x89, 0xc3, //0x000045eb movq %rax, %rbx + 0x4c, 0x09, 0xfb, //0x000045ee orq %r15, %rbx + 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x000045f1 je LBB0_872 + 0x44, 0x89, 0xfb, //0x000045f7 movl %r15d, %ebx + 0x44, 0x31, 0xcb, //0x000045fa xorl %r9d, %ebx + 0x21, 0xd8, //0x000045fd andl %ebx, %eax + 0x8d, 0x1c, 0x00, //0x000045ff leal (%rax,%rax), %ebx + 0x44, 0x09, 0xfb, //0x00004602 orl %r15d, %ebx + 0x41, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x00004605 leal $-1431655765(%r9), %edx + 0x31, 0xda, //0x0000460c xorl %ebx, %edx + 0x21, 0xc2, //0x0000460e andl %eax, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004610 andl $-1431655766, %edx + 0x45, 0x31, 0xff, //0x00004616 xorl %r15d, %r15d + 0x01, 0xc2, //0x00004619 addl %eax, %edx + 0x41, 0x0f, 0x92, 0xc7, //0x0000461b setb %r15b + 0x01, 0xd2, //0x0000461f addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00004621 xorl $1431655765, %edx + 0x21, 0xda, //0x00004627 andl %ebx, %edx + 0x44, 0x31, 0xca, //0x00004629 xorl %r9d, %edx + 0x21, 0xd7, //0x0000462c andl %edx, %edi + 0x85, 0xff, //0x0000462e testl %edi, %edi + 0x0f, 0x84, 0x62, 0xff, 0xff, 0xff, //0x00004630 je LBB0_873 + //0x00004636 LBB0_871 + 0x48, 0x0f, 0xbc, 0xc7, //0x00004636 bsfq %rdi, %rax + 0x49, 0x01, 0xc2, //0x0000463a addq %rax, %r10 + 0x4d, 0x01, 0xf2, //0x0000463d addq %r14, %r10 + 0x4d, 0x29, 0xda, //0x00004640 subq %r11, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x00004643 addq $2, %r10 + 0x48, 0x8b, 0x44, 0x24, 0x18, //0x00004647 movq $24(%rsp), %rax + 0x4c, 0x89, 0x10, //0x0000464c movq %r10, (%rax) + 0x4d, 0x89, 0xe5, //0x0000464f movq %r12, %r13 + 0xe9, 0x37, 0xfd, 0xff, 0xff, //0x00004652 jmp LBB0_839 + //0x00004657 LBB0_878 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00004657 movq $40(%rsp), %rax + 0x4c, 0x8b, 0x70, 0x08, //0x0000465c movq $8(%rax), %r14 + 0x49, 0x29, 0xfe, //0x00004660 subq %rdi, %r14 + 0x49, 0x01, 0xfb, //0x00004663 addq %rdi, %r11 + 0x45, 0x31, 0xc9, //0x00004666 xorl %r9d, %r9d + 0xc5, 0x7a, 0x6f, 0x15, 0xbf, 0xb9, 0xff, 0xff, //0x00004669 vmovdqu $-17985(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xc7, 0xb9, 0xff, 0xff, //0x00004671 vmovdqu $-17977(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00004679 vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xfa, 0x6f, 0x1d, 0xda, 0xb9, 0xff, 0xff, //0x0000467e vmovdqu $-17958(%rip), %xmm3 /* LCPI0_6+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0xe2, 0xb9, 0xff, 0xff, //0x00004686 vmovdqu $-17950(%rip), %xmm4 /* LCPI0_7+0(%rip) */ + 0xc4, 0x41, 0x39, 0xef, 0xc0, //0x0000468e vpxor %xmm8, %xmm8, %xmm8 + 0x31, 0xc9, //0x00004693 xorl %ecx, %ecx + 0x45, 0x31, 0xff, //0x00004695 xorl %r15d, %r15d + 0x31, 0xdb, //0x00004698 xorl %ebx, %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000469a jmp LBB0_880 + //0x0000469f LBB0_879 + 0x49, 0xc1, 0xf8, 0x3f, //0x0000469f sarq $63, %r8 + 0xf3, 0x48, 0x0f, 0xb8, 0xc7, //0x000046a3 popcntq %rdi, %rax + 0x49, 0x01, 0xc7, //0x000046a8 addq %rax, %r15 + 0x49, 0x83, 0xc3, 0x40, //0x000046ab addq $64, %r11 + 0x49, 0x83, 0xc6, 0xc0, //0x000046af addq $-64, %r14 + 0x4d, 0x89, 0xc1, //0x000046b3 movq %r8, %r9 + //0x000046b6 LBB0_880 + 0x49, 0x83, 0xfe, 0x40, //0x000046b6 cmpq $64, %r14 + 0x0f, 0x8c, 0x9d, 0x01, 0x00, 0x00, //0x000046ba jl LBB0_887 + //0x000046c0 LBB0_881 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000046c0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x000046c5 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x20, //0x000046cb vmovdqu $32(%r11), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x000046d1 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x000046d7 vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x000046db vpmovmskb %xmm0, %r8d + 0xc5, 0xa9, 0x74, 0xc5, //0x000046df vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000046e3 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc7, //0x000046e7 vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000046eb vpmovmskb %xmm0, %edi + 0xc5, 0xa9, 0x74, 0xc6, //0x000046ef vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x000046f3 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x000046f7 shlq $48, %r10 + 0x48, 0xc1, 0xe7, 0x20, //0x000046fb shlq $32, %rdi + 0x48, 0xc1, 0xe2, 0x10, //0x000046ff shlq $16, %rdx + 0x49, 0x09, 0xd0, //0x00004703 orq %rdx, %r8 + 0x49, 0x09, 0xf8, //0x00004706 orq %rdi, %r8 + 0x4d, 0x09, 0xd0, //0x00004709 orq %r10, %r8 + 0xc5, 0xe9, 0x74, 0xc1, //0x0000470c vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00004710 vpmovmskb %xmm0, %edi + 0xc5, 0xd1, 0x74, 0xc1, //0x00004714 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00004718 vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x0000471c vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00004720 vpmovmskb %xmm0, %eax + 0xc5, 0xc9, 0x74, 0xc1, //0x00004724 vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00004728 vpmovmskb %xmm0, %esi + 0x48, 0xc1, 0xe6, 0x30, //0x0000472c shlq $48, %rsi + 0x48, 0xc1, 0xe0, 0x20, //0x00004730 shlq $32, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00004734 shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x00004738 orq %rdx, %rdi + 0x48, 0x09, 0xc7, //0x0000473b orq %rax, %rdi + 0x48, 0x09, 0xf7, //0x0000473e orq %rsi, %rdi + 0x48, 0x89, 0xf8, //0x00004741 movq %rdi, %rax + 0x48, 0x09, 0xc8, //0x00004744 orq %rcx, %rax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00004747 je LBB0_883 + 0x48, 0x89, 0xc8, //0x0000474d movq %rcx, %rax + 0x48, 0xf7, 0xd0, //0x00004750 notq %rax + 0x48, 0x21, 0xf8, //0x00004753 andq %rdi, %rax + 0x48, 0x8d, 0x14, 0x00, //0x00004756 leaq (%rax,%rax), %rdx + 0x48, 0x09, 0xca, //0x0000475a orq %rcx, %rdx + 0x48, 0x89, 0xd6, //0x0000475d movq %rdx, %rsi + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004760 movabsq $-6148914691236517206, %rcx + 0x48, 0x31, 0xce, //0x0000476a xorq %rcx, %rsi + 0x48, 0x21, 0xcf, //0x0000476d andq %rcx, %rdi + 0x48, 0x21, 0xf7, //0x00004770 andq %rsi, %rdi + 0x31, 0xc9, //0x00004773 xorl %ecx, %ecx + 0x48, 0x01, 0xc7, //0x00004775 addq %rax, %rdi + 0x0f, 0x92, 0xc1, //0x00004778 setb %cl + 0x48, 0x01, 0xff, //0x0000477b addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000477e movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00004788 xorq %rax, %rdi + 0x48, 0x21, 0xd7, //0x0000478b andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x0000478e notq %rdi + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00004791 jmp LBB0_884 + //0x00004796 LBB0_883 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004796 movq $-1, %rdi + 0x31, 0xc9, //0x0000479d xorl %ecx, %ecx + //0x0000479f LBB0_884 + 0x4c, 0x21, 0xc7, //0x0000479f andq %r8, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000047a2 vmovq %rdi, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x000047a7 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc0, //0x000047ad vmovq %xmm0, %r8 + 0x4d, 0x31, 0xc8, //0x000047b2 xorq %r9, %r8 + 0xc5, 0xe9, 0x74, 0xc3, //0x000047b5 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000047b9 vpmovmskb %xmm0, %edi + 0xc5, 0xd1, 0x74, 0xc3, //0x000047bd vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000047c1 vpmovmskb %xmm0, %eax + 0xc5, 0xc1, 0x74, 0xc3, //0x000047c5 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000047c9 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x000047cd vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x000047d1 vpmovmskb %xmm0, %esi + 0x48, 0xc1, 0xe6, 0x30, //0x000047d5 shlq $48, %rsi + 0x48, 0xc1, 0xe2, 0x20, //0x000047d9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x000047dd shlq $16, %rax + 0x48, 0x09, 0xc7, //0x000047e1 orq %rax, %rdi + 0x48, 0x09, 0xd7, //0x000047e4 orq %rdx, %rdi + 0x48, 0x09, 0xf7, //0x000047e7 orq %rsi, %rdi + 0x4d, 0x89, 0xc1, //0x000047ea movq %r8, %r9 + 0x49, 0xf7, 0xd1, //0x000047ed notq %r9 + 0x4c, 0x21, 0xcf, //0x000047f0 andq %r9, %rdi + 0xc5, 0xe9, 0x74, 0xc4, //0x000047f3 vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000047f7 vpmovmskb %xmm0, %edx + 0xc5, 0xd1, 0x74, 0xc4, //0x000047fb vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x000047ff vpmovmskb %xmm0, %esi + 0xc5, 0xc1, 0x74, 0xc4, //0x00004803 vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00004807 vpmovmskb %xmm0, %eax + 0xc5, 0xc9, 0x74, 0xc4, //0x0000480b vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x0000480f vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00004813 shlq $48, %r10 + 0x48, 0xc1, 0xe0, 0x20, //0x00004817 shlq $32, %rax + 0x48, 0xc1, 0xe6, 0x10, //0x0000481b shlq $16, %rsi + 0x48, 0x09, 0xf2, //0x0000481f orq %rsi, %rdx + 0x48, 0x09, 0xc2, //0x00004822 orq %rax, %rdx + 0x4c, 0x09, 0xd2, //0x00004825 orq %r10, %rdx + 0x4c, 0x21, 0xca, //0x00004828 andq %r9, %rdx + 0x0f, 0x84, 0x6e, 0xfe, 0xff, 0xff, //0x0000482b je LBB0_879 + //0x00004831 LBB0_885 + 0x48, 0x8d, 0x42, 0xff, //0x00004831 leaq $-1(%rdx), %rax + 0x48, 0x89, 0xc6, //0x00004835 movq %rax, %rsi + 0x48, 0x21, 0xfe, //0x00004838 andq %rdi, %rsi + 0xf3, 0x48, 0x0f, 0xb8, 0xf6, //0x0000483b popcntq %rsi, %rsi + 0x4c, 0x01, 0xfe, //0x00004840 addq %r15, %rsi + 0x48, 0x39, 0xde, //0x00004843 cmpq %rbx, %rsi + 0x0f, 0x86, 0x94, 0x04, 0x00, 0x00, //0x00004846 jbe LBB0_929 + 0x48, 0xff, 0xc3, //0x0000484c incq %rbx + 0x48, 0x21, 0xc2, //0x0000484f andq %rax, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00004852 jne LBB0_885 + 0xe9, 0x42, 0xfe, 0xff, 0xff, //0x00004858 jmp LBB0_879 + //0x0000485d LBB0_887 + 0x4d, 0x85, 0xf6, //0x0000485d testq %r14, %r14 + 0x0f, 0x8e, 0xf8, 0x06, 0x00, 0x00, //0x00004860 jle LBB0_962 + 0xc5, 0x7e, 0x7f, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00004866 vmovdqu %ymm8, $128(%rsp) + 0xc5, 0x7e, 0x7f, 0x44, 0x24, 0x60, //0x0000486f vmovdqu %ymm8, $96(%rsp) + 0x44, 0x89, 0xd8, //0x00004875 movl %r11d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00004878 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x0000487d cmpl $4033, %eax + 0x0f, 0x82, 0x38, 0xfe, 0xff, 0xff, //0x00004882 jb LBB0_881 + 0x49, 0x83, 0xfe, 0x20, //0x00004888 cmpq $32, %r14 + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x0000488c jb LBB0_891 + 0xc4, 0xc1, 0x78, 0x10, 0x03, //0x00004892 vmovups (%r11), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x60, //0x00004897 vmovups %xmm0, $96(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x43, 0x10, //0x0000489d vmovdqu $16(%r11), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x70, //0x000048a3 vmovdqu %xmm0, $112(%rsp) + 0x49, 0x83, 0xc3, 0x20, //0x000048a9 addq $32, %r11 + 0x49, 0x8d, 0x7e, 0xe0, //0x000048ad leaq $-32(%r14), %rdi + 0x48, 0x8d, 0xb4, 0x24, 0x80, 0x00, 0x00, 0x00, //0x000048b1 leaq $128(%rsp), %rsi + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x000048b9 jmp LBB0_892 + //0x000048be LBB0_891 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x000048be leaq $96(%rsp), %rsi + 0x4c, 0x89, 0xf7, //0x000048c3 movq %r14, %rdi + //0x000048c6 LBB0_892 + 0x48, 0x83, 0xff, 0x10, //0x000048c6 cmpq $16, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000048ca jb LBB0_893 + 0xc4, 0xc1, 0x7a, 0x6f, 0x03, //0x000048d0 vmovdqu (%r11), %xmm0 + 0xc5, 0xfa, 0x7f, 0x06, //0x000048d5 vmovdqu %xmm0, (%rsi) + 0x49, 0x83, 0xc3, 0x10, //0x000048d9 addq $16, %r11 + 0x48, 0x83, 0xc6, 0x10, //0x000048dd addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x000048e1 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x000048e5 cmpq $8, %rdi + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x000048e9 jae LBB0_898 + //0x000048ef LBB0_894 + 0x48, 0x83, 0xff, 0x04, //0x000048ef cmpq $4, %rdi + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x000048f3 jl LBB0_895 + //0x000048f9 LBB0_899 + 0x41, 0x8b, 0x03, //0x000048f9 movl (%r11), %eax + 0x89, 0x06, //0x000048fc movl %eax, (%rsi) + 0x49, 0x83, 0xc3, 0x04, //0x000048fe addq $4, %r11 + 0x48, 0x83, 0xc6, 0x04, //0x00004902 addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00004906 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x0000490a cmpq $2, %rdi + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x0000490e jae LBB0_900 + //0x00004914 LBB0_896 + 0x4c, 0x89, 0xda, //0x00004914 movq %r11, %rdx + 0x4c, 0x8d, 0x5c, 0x24, 0x60, //0x00004917 leaq $96(%rsp), %r11 + 0x48, 0x85, 0xff, //0x0000491c testq %rdi, %rdi + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x0000491f jne LBB0_901 + 0xe9, 0x96, 0xfd, 0xff, 0xff, //0x00004925 jmp LBB0_881 + //0x0000492a LBB0_893 + 0x48, 0x83, 0xff, 0x08, //0x0000492a cmpq $8, %rdi + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x0000492e jb LBB0_894 + //0x00004934 LBB0_898 + 0x49, 0x8b, 0x03, //0x00004934 movq (%r11), %rax + 0x48, 0x89, 0x06, //0x00004937 movq %rax, (%rsi) + 0x49, 0x83, 0xc3, 0x08, //0x0000493a addq $8, %r11 + 0x48, 0x83, 0xc6, 0x08, //0x0000493e addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x00004942 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00004946 cmpq $4, %rdi + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x0000494a jge LBB0_899 + //0x00004950 LBB0_895 + 0x48, 0x83, 0xff, 0x02, //0x00004950 cmpq $2, %rdi + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00004954 jb LBB0_896 + //0x0000495a LBB0_900 + 0x41, 0x0f, 0xb7, 0x03, //0x0000495a movzwl (%r11), %eax + 0x66, 0x89, 0x06, //0x0000495e movw %ax, (%rsi) + 0x49, 0x83, 0xc3, 0x02, //0x00004961 addq $2, %r11 + 0x48, 0x83, 0xc6, 0x02, //0x00004965 addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00004969 addq $-2, %rdi + 0x4c, 0x89, 0xda, //0x0000496d movq %r11, %rdx + 0x4c, 0x8d, 0x5c, 0x24, 0x60, //0x00004970 leaq $96(%rsp), %r11 + 0x48, 0x85, 0xff, //0x00004975 testq %rdi, %rdi + 0x0f, 0x84, 0x42, 0xfd, 0xff, 0xff, //0x00004978 je LBB0_881 + //0x0000497e LBB0_901 + 0x8a, 0x02, //0x0000497e movb (%rdx), %al + 0x88, 0x06, //0x00004980 movb %al, (%rsi) + 0x4c, 0x8d, 0x5c, 0x24, 0x60, //0x00004982 leaq $96(%rsp), %r11 + 0xe9, 0x34, 0xfd, 0xff, 0xff, //0x00004987 jmp LBB0_881 + //0x0000498c LBB0_902 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x0000498c leaq $5(%r12), %rax + //0x00004991 LBB0_903 + 0x48, 0x8b, 0x54, 0x24, 0x28, //0x00004991 movq $40(%rsp), %rdx + 0x48, 0x3b, 0x42, 0x08, //0x00004996 cmpq $8(%rdx), %rax + 0x0f, 0x87, 0xee, 0xf9, 0xff, 0xff, //0x0000499a ja LBB0_839 + 0x49, 0x89, 0x00, //0x000049a0 movq %rax, (%r8) + 0x4d, 0x89, 0xe5, //0x000049a3 movq %r12, %r13 + 0xe9, 0xe3, 0xf9, 0xff, 0xff, //0x000049a6 jmp LBB0_839 + //0x000049ab LBB0_905 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x000049ab movq $40(%rsp), %rax + 0x4c, 0x8b, 0x70, 0x08, //0x000049b0 movq $8(%rax), %r14 + 0x49, 0x29, 0xfe, //0x000049b4 subq %rdi, %r14 + 0x49, 0x01, 0xfb, //0x000049b7 addq %rdi, %r11 + 0x45, 0x31, 0xc9, //0x000049ba xorl %r9d, %r9d + 0xc5, 0x7a, 0x6f, 0x15, 0x6b, 0xb6, 0xff, 0xff, //0x000049bd vmovdqu $-18837(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x73, 0xb6, 0xff, 0xff, //0x000049c5 vmovdqu $-18829(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x000049cd vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xfa, 0x6f, 0x1d, 0x76, 0xb6, 0xff, 0xff, //0x000049d2 vmovdqu $-18826(%rip), %xmm3 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0x3e, 0xb6, 0xff, 0xff, //0x000049da vmovdqu $-18882(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x39, 0xef, 0xc0, //0x000049e2 vpxor %xmm8, %xmm8, %xmm8 + 0x31, 0xc9, //0x000049e7 xorl %ecx, %ecx + 0x45, 0x31, 0xff, //0x000049e9 xorl %r15d, %r15d + 0x31, 0xdb, //0x000049ec xorl %ebx, %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000049ee jmp LBB0_907 + //0x000049f3 LBB0_906 + 0x49, 0xc1, 0xf8, 0x3f, //0x000049f3 sarq $63, %r8 + 0xf3, 0x48, 0x0f, 0xb8, 0xc7, //0x000049f7 popcntq %rdi, %rax + 0x49, 0x01, 0xc7, //0x000049fc addq %rax, %r15 + 0x49, 0x83, 0xc3, 0x40, //0x000049ff addq $64, %r11 + 0x49, 0x83, 0xc6, 0xc0, //0x00004a03 addq $-64, %r14 + 0x4d, 0x89, 0xc1, //0x00004a07 movq %r8, %r9 + //0x00004a0a LBB0_907 + 0x49, 0x83, 0xfe, 0x40, //0x00004a0a cmpq $64, %r14 + 0x0f, 0x8c, 0x9d, 0x01, 0x00, 0x00, //0x00004a0e jl LBB0_914 + //0x00004a14 LBB0_908 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00004a14 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00004a19 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x20, //0x00004a1f vmovdqu $32(%r11), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00004a25 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00004a2b vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00004a2f vpmovmskb %xmm0, %r8d + 0xc5, 0xa9, 0x74, 0xc5, //0x00004a33 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00004a37 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc7, //0x00004a3b vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00004a3f vpmovmskb %xmm0, %edi + 0xc5, 0xa9, 0x74, 0xc6, //0x00004a43 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00004a47 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00004a4b shlq $48, %r10 + 0x48, 0xc1, 0xe7, 0x20, //0x00004a4f shlq $32, %rdi + 0x48, 0xc1, 0xe2, 0x10, //0x00004a53 shlq $16, %rdx + 0x49, 0x09, 0xd0, //0x00004a57 orq %rdx, %r8 + 0x49, 0x09, 0xf8, //0x00004a5a orq %rdi, %r8 + 0x4d, 0x09, 0xd0, //0x00004a5d orq %r10, %r8 + 0xc5, 0xe9, 0x74, 0xc1, //0x00004a60 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00004a64 vpmovmskb %xmm0, %edi + 0xc5, 0xd1, 0x74, 0xc1, //0x00004a68 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00004a6c vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x00004a70 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00004a74 vpmovmskb %xmm0, %eax + 0xc5, 0xc9, 0x74, 0xc1, //0x00004a78 vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00004a7c vpmovmskb %xmm0, %esi + 0x48, 0xc1, 0xe6, 0x30, //0x00004a80 shlq $48, %rsi + 0x48, 0xc1, 0xe0, 0x20, //0x00004a84 shlq $32, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00004a88 shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x00004a8c orq %rdx, %rdi + 0x48, 0x09, 0xc7, //0x00004a8f orq %rax, %rdi + 0x48, 0x09, 0xf7, //0x00004a92 orq %rsi, %rdi + 0x48, 0x89, 0xf8, //0x00004a95 movq %rdi, %rax + 0x48, 0x09, 0xc8, //0x00004a98 orq %rcx, %rax + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00004a9b je LBB0_910 + 0x48, 0x89, 0xc8, //0x00004aa1 movq %rcx, %rax + 0x48, 0xf7, 0xd0, //0x00004aa4 notq %rax + 0x48, 0x21, 0xf8, //0x00004aa7 andq %rdi, %rax + 0x48, 0x8d, 0x14, 0x00, //0x00004aaa leaq (%rax,%rax), %rdx + 0x48, 0x09, 0xca, //0x00004aae orq %rcx, %rdx + 0x48, 0x89, 0xd6, //0x00004ab1 movq %rdx, %rsi + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004ab4 movabsq $-6148914691236517206, %rcx + 0x48, 0x31, 0xce, //0x00004abe xorq %rcx, %rsi + 0x48, 0x21, 0xcf, //0x00004ac1 andq %rcx, %rdi + 0x48, 0x21, 0xf7, //0x00004ac4 andq %rsi, %rdi + 0x31, 0xc9, //0x00004ac7 xorl %ecx, %ecx + 0x48, 0x01, 0xc7, //0x00004ac9 addq %rax, %rdi + 0x0f, 0x92, 0xc1, //0x00004acc setb %cl + 0x48, 0x01, 0xff, //0x00004acf addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00004ad2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00004adc xorq %rax, %rdi + 0x48, 0x21, 0xd7, //0x00004adf andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x00004ae2 notq %rdi + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00004ae5 jmp LBB0_911 + //0x00004aea LBB0_910 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004aea movq $-1, %rdi + 0x31, 0xc9, //0x00004af1 xorl %ecx, %ecx + //0x00004af3 LBB0_911 + 0x4c, 0x21, 0xc7, //0x00004af3 andq %r8, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x00004af6 vmovq %rdi, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00004afb vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc0, //0x00004b01 vmovq %xmm0, %r8 + 0x4d, 0x31, 0xc8, //0x00004b06 xorq %r9, %r8 + 0xc5, 0xe9, 0x74, 0xc3, //0x00004b09 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00004b0d vpmovmskb %xmm0, %edi + 0xc5, 0xd1, 0x74, 0xc3, //0x00004b11 vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00004b15 vpmovmskb %xmm0, %eax + 0xc5, 0xc1, 0x74, 0xc3, //0x00004b19 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00004b1d vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00004b21 vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00004b25 vpmovmskb %xmm0, %esi + 0x48, 0xc1, 0xe6, 0x30, //0x00004b29 shlq $48, %rsi + 0x48, 0xc1, 0xe2, 0x20, //0x00004b2d shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00004b31 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00004b35 orq %rax, %rdi + 0x48, 0x09, 0xd7, //0x00004b38 orq %rdx, %rdi + 0x48, 0x09, 0xf7, //0x00004b3b orq %rsi, %rdi + 0x4d, 0x89, 0xc1, //0x00004b3e movq %r8, %r9 + 0x49, 0xf7, 0xd1, //0x00004b41 notq %r9 + 0x4c, 0x21, 0xcf, //0x00004b44 andq %r9, %rdi + 0xc5, 0xe9, 0x74, 0xc4, //0x00004b47 vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00004b4b vpmovmskb %xmm0, %edx + 0xc5, 0xd1, 0x74, 0xc4, //0x00004b4f vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00004b53 vpmovmskb %xmm0, %esi + 0xc5, 0xc1, 0x74, 0xc4, //0x00004b57 vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00004b5b vpmovmskb %xmm0, %eax + 0xc5, 0xc9, 0x74, 0xc4, //0x00004b5f vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00004b63 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00004b67 shlq $48, %r10 + 0x48, 0xc1, 0xe0, 0x20, //0x00004b6b shlq $32, %rax + 0x48, 0xc1, 0xe6, 0x10, //0x00004b6f shlq $16, %rsi + 0x48, 0x09, 0xf2, //0x00004b73 orq %rsi, %rdx + 0x48, 0x09, 0xc2, //0x00004b76 orq %rax, %rdx + 0x4c, 0x09, 0xd2, //0x00004b79 orq %r10, %rdx + 0x4c, 0x21, 0xca, //0x00004b7c andq %r9, %rdx + 0x0f, 0x84, 0x6e, 0xfe, 0xff, 0xff, //0x00004b7f je LBB0_906 + //0x00004b85 LBB0_912 + 0x48, 0x8d, 0x42, 0xff, //0x00004b85 leaq $-1(%rdx), %rax + 0x48, 0x89, 0xc6, //0x00004b89 movq %rax, %rsi + 0x48, 0x21, 0xfe, //0x00004b8c andq %rdi, %rsi + 0xf3, 0x48, 0x0f, 0xb8, 0xf6, //0x00004b8f popcntq %rsi, %rsi + 0x4c, 0x01, 0xfe, //0x00004b94 addq %r15, %rsi + 0x48, 0x39, 0xde, //0x00004b97 cmpq %rbx, %rsi + 0x0f, 0x86, 0x40, 0x01, 0x00, 0x00, //0x00004b9a jbe LBB0_929 + 0x48, 0xff, 0xc3, //0x00004ba0 incq %rbx + 0x48, 0x21, 0xc2, //0x00004ba3 andq %rax, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00004ba6 jne LBB0_912 + 0xe9, 0x42, 0xfe, 0xff, 0xff, //0x00004bac jmp LBB0_906 + //0x00004bb1 LBB0_914 + 0x4d, 0x85, 0xf6, //0x00004bb1 testq %r14, %r14 + 0x0f, 0x8e, 0xa4, 0x03, 0x00, 0x00, //0x00004bb4 jle LBB0_962 + 0xc5, 0x7e, 0x7f, 0x84, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00004bba vmovdqu %ymm8, $128(%rsp) + 0xc5, 0x7e, 0x7f, 0x44, 0x24, 0x60, //0x00004bc3 vmovdqu %ymm8, $96(%rsp) + 0x44, 0x89, 0xd8, //0x00004bc9 movl %r11d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00004bcc andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00004bd1 cmpl $4033, %eax + 0x0f, 0x82, 0x38, 0xfe, 0xff, 0xff, //0x00004bd6 jb LBB0_908 + 0x49, 0x83, 0xfe, 0x20, //0x00004bdc cmpq $32, %r14 + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x00004be0 jb LBB0_918 + 0xc4, 0xc1, 0x78, 0x10, 0x03, //0x00004be6 vmovups (%r11), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x60, //0x00004beb vmovups %xmm0, $96(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x43, 0x10, //0x00004bf1 vmovdqu $16(%r11), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x70, //0x00004bf7 vmovdqu %xmm0, $112(%rsp) + 0x49, 0x83, 0xc3, 0x20, //0x00004bfd addq $32, %r11 + 0x49, 0x8d, 0x7e, 0xe0, //0x00004c01 leaq $-32(%r14), %rdi + 0x48, 0x8d, 0xb4, 0x24, 0x80, 0x00, 0x00, 0x00, //0x00004c05 leaq $128(%rsp), %rsi + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00004c0d jmp LBB0_919 + //0x00004c12 LBB0_918 + 0x48, 0x8d, 0x74, 0x24, 0x60, //0x00004c12 leaq $96(%rsp), %rsi + 0x4c, 0x89, 0xf7, //0x00004c17 movq %r14, %rdi + //0x00004c1a LBB0_919 + 0x48, 0x83, 0xff, 0x10, //0x00004c1a cmpq $16, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00004c1e jb LBB0_920 + 0xc4, 0xc1, 0x7a, 0x6f, 0x03, //0x00004c24 vmovdqu (%r11), %xmm0 + 0xc5, 0xfa, 0x7f, 0x06, //0x00004c29 vmovdqu %xmm0, (%rsi) + 0x49, 0x83, 0xc3, 0x10, //0x00004c2d addq $16, %r11 + 0x48, 0x83, 0xc6, 0x10, //0x00004c31 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x00004c35 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00004c39 cmpq $8, %rdi + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00004c3d jae LBB0_925 + //0x00004c43 LBB0_921 + 0x48, 0x83, 0xff, 0x04, //0x00004c43 cmpq $4, %rdi + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00004c47 jl LBB0_922 + //0x00004c4d LBB0_926 + 0x41, 0x8b, 0x03, //0x00004c4d movl (%r11), %eax + 0x89, 0x06, //0x00004c50 movl %eax, (%rsi) + 0x49, 0x83, 0xc3, 0x04, //0x00004c52 addq $4, %r11 + 0x48, 0x83, 0xc6, 0x04, //0x00004c56 addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00004c5a addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00004c5e cmpq $2, %rdi + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004c62 jae LBB0_927 + //0x00004c68 LBB0_923 + 0x4c, 0x89, 0xda, //0x00004c68 movq %r11, %rdx + 0x4c, 0x8d, 0x5c, 0x24, 0x60, //0x00004c6b leaq $96(%rsp), %r11 + 0x48, 0x85, 0xff, //0x00004c70 testq %rdi, %rdi + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00004c73 jne LBB0_928 + 0xe9, 0x96, 0xfd, 0xff, 0xff, //0x00004c79 jmp LBB0_908 + //0x00004c7e LBB0_920 + 0x48, 0x83, 0xff, 0x08, //0x00004c7e cmpq $8, %rdi + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00004c82 jb LBB0_921 + //0x00004c88 LBB0_925 + 0x49, 0x8b, 0x03, //0x00004c88 movq (%r11), %rax + 0x48, 0x89, 0x06, //0x00004c8b movq %rax, (%rsi) + 0x49, 0x83, 0xc3, 0x08, //0x00004c8e addq $8, %r11 + 0x48, 0x83, 0xc6, 0x08, //0x00004c92 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x00004c96 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00004c9a cmpq $4, %rdi + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00004c9e jge LBB0_926 + //0x00004ca4 LBB0_922 + 0x48, 0x83, 0xff, 0x02, //0x00004ca4 cmpq $2, %rdi + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00004ca8 jb LBB0_923 + //0x00004cae LBB0_927 + 0x41, 0x0f, 0xb7, 0x03, //0x00004cae movzwl (%r11), %eax + 0x66, 0x89, 0x06, //0x00004cb2 movw %ax, (%rsi) + 0x49, 0x83, 0xc3, 0x02, //0x00004cb5 addq $2, %r11 + 0x48, 0x83, 0xc6, 0x02, //0x00004cb9 addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00004cbd addq $-2, %rdi + 0x4c, 0x89, 0xda, //0x00004cc1 movq %r11, %rdx + 0x4c, 0x8d, 0x5c, 0x24, 0x60, //0x00004cc4 leaq $96(%rsp), %r11 + 0x48, 0x85, 0xff, //0x00004cc9 testq %rdi, %rdi + 0x0f, 0x84, 0x42, 0xfd, 0xff, 0xff, //0x00004ccc je LBB0_908 + //0x00004cd2 LBB0_928 + 0x8a, 0x02, //0x00004cd2 movb (%rdx), %al + 0x88, 0x06, //0x00004cd4 movb %al, (%rsi) + 0x4c, 0x8d, 0x5c, 0x24, 0x60, //0x00004cd6 leaq $96(%rsp), %r11 + 0xe9, 0x34, 0xfd, 0xff, 0xff, //0x00004cdb jmp LBB0_908 + //0x00004ce0 LBB0_929 + 0x48, 0x8b, 0x74, 0x24, 0x28, //0x00004ce0 movq $40(%rsp), %rsi + 0x48, 0x8b, 0x46, 0x08, //0x00004ce5 movq $8(%rsi), %rax + 0x48, 0x0f, 0xbc, 0xca, //0x00004ce9 bsfq %rdx, %rcx + 0x4c, 0x29, 0xf1, //0x00004ced subq %r14, %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00004cf0 leaq $1(%rcx,%rax), %rax + 0x48, 0x8b, 0x54, 0x24, 0x18, //0x00004cf5 movq $24(%rsp), %rdx + 0x48, 0x89, 0x02, //0x00004cfa movq %rax, (%rdx) + 0x48, 0x8b, 0x4e, 0x08, //0x00004cfd movq $8(%rsi), %rcx + 0x48, 0x39, 0xc8, //0x00004d01 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00004d04 cmovaq %rcx, %rax + 0x48, 0x89, 0x02, //0x00004d08 movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004d0b movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xe0, //0x00004d12 cmovaq %rax, %r12 + 0x4d, 0x89, 0xe5, //0x00004d16 movq %r12, %r13 + 0xe9, 0x70, 0xf6, 0xff, 0xff, //0x00004d19 jmp LBB0_839 + //0x00004d1e LBB0_930 + 0x4c, 0x89, 0xf8, //0x00004d1e movq %r15, %rax + //0x00004d21 LBB0_931 + 0x48, 0xf7, 0xd0, //0x00004d21 notq %rax + 0x49, 0x01, 0xc1, //0x00004d24 addq %rax, %r9 + 0x4d, 0x89, 0x08, //0x00004d27 movq %r9, (%r8) + 0xe9, 0x58, 0xf6, 0xff, 0xff, //0x00004d2a jmp LBB0_838 + //0x00004d2f LBB0_941 + 0x49, 0x89, 0x00, //0x00004d2f movq %rax, (%r8) + 0xe9, 0x57, 0xf6, 0xff, 0xff, //0x00004d32 jmp LBB0_839 + //0x00004d37 LBB0_936 + 0x4c, 0x89, 0x94, 0x24, 0xb8, 0x00, 0x00, 0x00, //0x00004d37 movq %r10, $184(%rsp) + //0x00004d3f LBB0_937 + 0x48, 0x8b, 0x44, 0x24, 0x18, //0x00004d3f movq $24(%rsp), %rax + 0x48, 0x8b, 0x8c, 0x24, 0xb8, 0x00, 0x00, 0x00, //0x00004d44 movq $184(%rsp), %rcx + 0x48, 0x89, 0x08, //0x00004d4c movq %rcx, (%rax) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004d4f movq $-1, %r13 + 0xe9, 0x33, 0xf6, 0xff, 0xff, //0x00004d56 jmp LBB0_839 + //0x00004d5b LBB0_938 + 0x4c, 0x29, 0xdf, //0x00004d5b subq %r11, %rdi + 0xe9, 0x90, 0xf7, 0xff, 0xff, //0x00004d5e jmp LBB0_859 + //0x00004d63 LBB0_939 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00004d63 movq $-1, %r10 + //0x00004d6a LBB0_940 + 0x4d, 0x29, 0xd1, //0x00004d6a subq %r10, %r9 + 0x48, 0x8b, 0x44, 0x24, 0x18, //0x00004d6d movq $24(%rsp), %rax + 0x4c, 0x89, 0x08, //0x00004d72 movq %r9, (%rax) + 0xe9, 0x0d, 0xf6, 0xff, 0xff, //0x00004d75 jmp LBB0_838 + //0x00004d7a LBB0_943 + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00004d7a movq $-2, %r13 + 0x3c, 0x61, //0x00004d81 cmpb $97, %al + 0x0f, 0x85, 0x05, 0xf6, 0xff, 0xff, //0x00004d83 jne LBB0_839 + 0x49, 0x8d, 0x41, 0x02, //0x00004d89 leaq $2(%r9), %rax + 0x49, 0x89, 0x00, //0x00004d8d movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x02, 0x6c, //0x00004d90 cmpb $108, $2(%r12,%r9) + 0x0f, 0x85, 0xf2, 0xf5, 0xff, 0xff, //0x00004d96 jne LBB0_839 + 0x49, 0x8d, 0x41, 0x03, //0x00004d9c leaq $3(%r9), %rax + 0x49, 0x89, 0x00, //0x00004da0 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x03, 0x73, //0x00004da3 cmpb $115, $3(%r12,%r9) + 0x0f, 0x85, 0xdf, 0xf5, 0xff, 0xff, //0x00004da9 jne LBB0_839 + 0x49, 0x8d, 0x41, 0x04, //0x00004daf leaq $4(%r9), %rax + 0x49, 0x89, 0x00, //0x00004db3 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x04, 0x65, //0x00004db6 cmpb $101, $4(%r12,%r9) + 0x0f, 0x85, 0xcc, 0xf5, 0xff, 0xff, //0x00004dbc jne LBB0_839 + 0x49, 0x83, 0xc1, 0x05, //0x00004dc2 addq $5, %r9 + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00004dc6 jmp LBB0_953 + //0x00004dcb LBB0_752 + 0x4d, 0x89, 0x08, //0x00004dcb movq %r9, (%r8) + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00004dce movq $-2, %r13 + 0x41, 0x80, 0x3a, 0x6e, //0x00004dd5 cmpb $110, (%r10) + 0x0f, 0x85, 0xaf, 0xf5, 0xff, 0xff, //0x00004dd9 jne LBB0_839 + 0x49, 0x8d, 0x41, 0x01, //0x00004ddf leaq $1(%r9), %rax + 0x49, 0x89, 0x00, //0x00004de3 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x01, 0x75, //0x00004de6 cmpb $117, $1(%r12,%r9) + 0x0f, 0x85, 0x9c, 0xf5, 0xff, 0xff, //0x00004dec jne LBB0_839 + 0x49, 0x8d, 0x41, 0x02, //0x00004df2 leaq $2(%r9), %rax + 0x49, 0x89, 0x00, //0x00004df6 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x02, 0x6c, //0x00004df9 cmpb $108, $2(%r12,%r9) + 0x0f, 0x85, 0x89, 0xf5, 0xff, 0xff, //0x00004dff jne LBB0_839 + 0x49, 0x8d, 0x41, 0x03, //0x00004e05 leaq $3(%r9), %rax + 0x49, 0x89, 0x00, //0x00004e09 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x03, 0x6c, //0x00004e0c cmpb $108, $3(%r12,%r9) + 0x0f, 0x85, 0x76, 0xf5, 0xff, 0xff, //0x00004e12 jne LBB0_839 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00004e18 jmp LBB0_952 + //0x00004e1d LBB0_948 + 0x4d, 0x89, 0x08, //0x00004e1d movq %r9, (%r8) + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00004e20 movq $-2, %r13 + 0x41, 0x80, 0x3a, 0x74, //0x00004e27 cmpb $116, (%r10) + 0x0f, 0x85, 0x5d, 0xf5, 0xff, 0xff, //0x00004e2b jne LBB0_839 + 0x49, 0x8d, 0x41, 0x01, //0x00004e31 leaq $1(%r9), %rax + 0x49, 0x89, 0x00, //0x00004e35 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x01, 0x72, //0x00004e38 cmpb $114, $1(%r12,%r9) + 0x0f, 0x85, 0x4a, 0xf5, 0xff, 0xff, //0x00004e3e jne LBB0_839 + 0x49, 0x8d, 0x41, 0x02, //0x00004e44 leaq $2(%r9), %rax + 0x49, 0x89, 0x00, //0x00004e48 movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x02, 0x75, //0x00004e4b cmpb $117, $2(%r12,%r9) + 0x0f, 0x85, 0x37, 0xf5, 0xff, 0xff, //0x00004e51 jne LBB0_839 + 0x49, 0x8d, 0x41, 0x03, //0x00004e57 leaq $3(%r9), %rax + 0x49, 0x89, 0x00, //0x00004e5b movq %rax, (%r8) + 0x43, 0x80, 0x7c, 0x0c, 0x03, 0x65, //0x00004e5e cmpb $101, $3(%r12,%r9) + 0x0f, 0x85, 0x24, 0xf5, 0xff, 0xff, //0x00004e64 jne LBB0_839 + //0x00004e6a LBB0_952 + 0x49, 0x83, 0xc1, 0x04, //0x00004e6a addq $4, %r9 + //0x00004e6e LBB0_953 + 0x48, 0x8b, 0x44, 0x24, 0x18, //0x00004e6e movq $24(%rsp), %rax + 0x4c, 0x89, 0x08, //0x00004e73 movq %r9, (%rax) + 0xe9, 0x13, 0xf5, 0xff, 0xff, //0x00004e76 jmp LBB0_839 + //0x00004e7b LBB0_960 + 0x4c, 0x89, 0xf8, //0x00004e7b movq %r15, %rax + 0xe9, 0x91, 0xf6, 0xff, 0xff, //0x00004e7e jmp LBB0_862 + //0x00004e83 LBB0_813 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00004e83 movq $32(%rsp), %rax + 0xe9, 0x87, 0xf6, 0xff, 0xff, //0x00004e88 jmp LBB0_862 + //0x00004e8d LBB0_954 + 0x4c, 0x89, 0xf3, //0x00004e8d movq %r14, %rbx + 0x48, 0x83, 0xc3, 0x02, //0x00004e90 addq $2, %rbx + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00004e94 movq $-2, %r13 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00004e9b jmp LBB0_959 + //0x00004ea0 LBB0_874 + 0x4d, 0x85, 0xff, //0x00004ea0 testq %r15, %r15 + 0x0f, 0x85, 0xeb, 0x00, 0x00, 0x00, //0x00004ea3 jne LBB0_966 + 0x4b, 0x8d, 0x7c, 0x16, 0x01, //0x00004ea9 leaq $1(%r14,%r10), %rdi + 0x49, 0xf7, 0xd6, //0x00004eae notq %r14 + 0x4d, 0x01, 0xc6, //0x00004eb1 addq %r8, %r14 + //0x00004eb4 LBB0_876 + 0x4d, 0x85, 0xf6, //0x00004eb4 testq %r14, %r14 + 0x48, 0x8b, 0x54, 0x24, 0x18, //0x00004eb7 movq $24(%rsp), %rdx + 0x0f, 0x8e, 0xcc, 0xf4, 0xff, 0xff, //0x00004ebc jle LBB0_839 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004ec2 movq $-1, %r13 + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00004ec9 jmp LBB0_933 + //0x00004ece LBB0_932 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ece movq $-2, %rax + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00004ed5 movl $2, %ecx + 0x48, 0x01, 0xcf, //0x00004eda addq %rcx, %rdi + 0x49, 0x01, 0xc6, //0x00004edd addq %rax, %r14 + 0x0f, 0x8e, 0xa8, 0xf4, 0xff, 0xff, //0x00004ee0 jle LBB0_839 + //0x00004ee6 LBB0_933 + 0x0f, 0xb6, 0x07, //0x00004ee6 movzbl (%rdi), %eax + 0x3c, 0x5c, //0x00004ee9 cmpb $92, %al + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x00004eeb je LBB0_932 + 0x3c, 0x22, //0x00004ef1 cmpb $34, %al + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00004ef3 je LBB0_955 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004ef9 movq $-1, %rax + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004f00 movl $1, %ecx + 0x48, 0x01, 0xcf, //0x00004f05 addq %rcx, %rdi + 0x49, 0x01, 0xc6, //0x00004f08 addq %rax, %r14 + 0x0f, 0x8f, 0xd5, 0xff, 0xff, 0xff, //0x00004f0b jg LBB0_933 + 0xe9, 0x78, 0xf4, 0xff, 0xff, //0x00004f11 jmp LBB0_839 + //0x00004f16 LBB0_955 + 0x4c, 0x29, 0xdf, //0x00004f16 subq %r11, %rdi + 0x48, 0xff, 0xc7, //0x00004f19 incq %rdi + 0x48, 0x89, 0x3a, //0x00004f1c movq %rdi, (%rdx) + 0x4d, 0x89, 0xe5, //0x00004f1f movq %r12, %r13 + 0xe9, 0x67, 0xf4, 0xff, 0xff, //0x00004f22 jmp LBB0_839 + //0x00004f27 LBB0_956 + 0x4c, 0x89, 0xf3, //0x00004f27 movq %r14, %rbx + 0x48, 0xff, 0xc3, //0x00004f2a incq %rbx + 0x49, 0xc7, 0xc5, 0xfd, 0xff, 0xff, 0xff, //0x00004f2d movq $-3, %r13 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004f34 jmp LBB0_959 + //0x00004f39 LBB0_957 + 0x4c, 0x89, 0xf3, //0x00004f39 movq %r14, %rbx + 0x48, 0xff, 0xc3, //0x00004f3c incq %rbx + //0x00004f3f LBB0_958 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004f3f movq $-1, %r13 + //0x00004f46 LBB0_959 + 0x48, 0x8b, 0x44, 0x24, 0x20, //0x00004f46 movq $32(%rsp), %rax + 0x48, 0x29, 0xc3, //0x00004f4b subq %rax, %rbx + 0x49, 0x89, 0x18, //0x00004f4e movq %rbx, (%r8) + 0xe9, 0x38, 0xf4, 0xff, 0xff, //0x00004f51 jmp LBB0_839 + //0x00004f56 LBB0_961 + 0x4c, 0x01, 0xdf, //0x00004f56 addq %r11, %rdi + 0xe9, 0x56, 0xff, 0xff, 0xff, //0x00004f59 jmp LBB0_876 + //0x00004f5e LBB0_962 + 0x48, 0x8b, 0x44, 0x24, 0x28, //0x00004f5e movq $40(%rsp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00004f63 movq $8(%rax), %rax + 0x48, 0x8b, 0x54, 0x24, 0x18, //0x00004f67 movq $24(%rsp), %rdx + 0x48, 0x89, 0x02, //0x00004f6c movq %rax, (%rdx) + 0xe9, 0x1a, 0xf4, 0xff, 0xff, //0x00004f6f jmp LBB0_839 + //0x00004f74 LBB0_963 + 0x49, 0xc7, 0xc5, 0xfc, 0xff, 0xff, 0xff, //0x00004f74 movq $-4, %r13 + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00004f7b jmp LBB0_965 + //0x00004f80 LBB0_964 + 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00004f80 movq $-2, %r13 + //0x00004f87 LBB0_965 + 0x4c, 0x89, 0xc3, //0x00004f87 movq %r8, %rbx + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00004f8a movq $24(%rsp), %r8 + 0xe9, 0xb2, 0xff, 0xff, 0xff, //0x00004f8f jmp LBB0_959 + //0x00004f94 LBB0_966 + 0x49, 0x8d, 0x40, 0xff, //0x00004f94 leaq $-1(%r8), %rax + 0x4c, 0x39, 0xf0, //0x00004f98 cmpq %r14, %rax + 0x0f, 0x84, 0xed, 0xf3, 0xff, 0xff, //0x00004f9b je LBB0_839 + 0x4b, 0x8d, 0x7c, 0x16, 0x02, //0x00004fa1 leaq $2(%r14,%r10), %rdi + 0x4d, 0x29, 0xf0, //0x00004fa6 subq %r14, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00004fa9 addq $-2, %r8 + 0x4d, 0x89, 0xc6, //0x00004fad movq %r8, %r14 + 0xe9, 0xff, 0xfe, 0xff, 0xff, //0x00004fb0 jmp LBB0_876 + 0x90, 0x90, 0x90, //0x00004fb5 .p2align 2, 0x90 + // // .set L0_0_set_418, LBB0_418-LJTI0_0 + // // .set L0_0_set_488, LBB0_488-LJTI0_0 + // // .set L0_0_set_450, LBB0_450-LJTI0_0 + // // .set L0_0_set_403, LBB0_403-LJTI0_0 + // // .set L0_0_set_461, LBB0_461-LJTI0_0 + // // .set L0_0_set_487, LBB0_487-LJTI0_0 + // // .set L0_0_set_449, LBB0_449-LJTI0_0 + // // .set L0_0_set_489, LBB0_489-LJTI0_0 + //0x00004fb8 LJTI0_0 + 0x88, 0xd1, 0xff, 0xff, //0x00004fb8 .long L0_0_set_418 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fbc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fc0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fc4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fc8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fcc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fd0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fd4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fd8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fdc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fe0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fe4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fe8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004fec .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004ff0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004ff4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004ff8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00004ffc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005000 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005004 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005008 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000500c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005010 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005014 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005018 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000501c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005020 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005024 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005028 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000502c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005030 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005034 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005038 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000503c .long L0_0_set_488 + 0x34, 0xd3, 0xff, 0xff, //0x00005040 .long L0_0_set_450 + 0x8d, 0xd7, 0xff, 0xff, //0x00005044 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005048 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000504c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005050 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005054 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005058 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000505c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005060 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005064 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005068 .long L0_0_set_488 + 0xb1, 0xd0, 0xff, 0xff, //0x0000506c .long L0_0_set_403 + 0x8d, 0xd7, 0xff, 0xff, //0x00005070 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005074 .long L0_0_set_488 + 0xb1, 0xd0, 0xff, 0xff, //0x00005078 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x0000507c .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x00005080 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x00005084 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x00005088 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x0000508c .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x00005090 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x00005094 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x00005098 .long L0_0_set_403 + 0xb1, 0xd0, 0xff, 0xff, //0x0000509c .long L0_0_set_403 + 0x8d, 0xd7, 0xff, 0xff, //0x000050a0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050a4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050a8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050ac .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050b0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050b4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050b8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050bc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050c0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050c4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050c8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050cc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050d0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050d4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050d8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050dc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050e0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050e4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050e8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050ec .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050f0 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050f4 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050f8 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000050fc .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005100 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005104 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005108 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000510c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005110 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005114 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005118 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000511c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005120 .long L0_0_set_488 + 0x5e, 0xd4, 0xff, 0xff, //0x00005124 .long L0_0_set_461 + 0x8d, 0xd7, 0xff, 0xff, //0x00005128 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000512c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005130 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005134 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005138 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000513c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005140 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005144 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005148 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000514c .long L0_0_set_488 + 0x80, 0xd7, 0xff, 0xff, //0x00005150 .long L0_0_set_487 + 0x8d, 0xd7, 0xff, 0xff, //0x00005154 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005158 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000515c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005160 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005164 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005168 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000516c .long L0_0_set_488 + 0x22, 0xd3, 0xff, 0xff, //0x00005170 .long L0_0_set_449 + 0x8d, 0xd7, 0xff, 0xff, //0x00005174 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005178 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000517c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005180 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005184 .long L0_0_set_488 + 0x22, 0xd3, 0xff, 0xff, //0x00005188 .long L0_0_set_449 + 0x8d, 0xd7, 0xff, 0xff, //0x0000518c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005190 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005194 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x00005198 .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x0000519c .long L0_0_set_488 + 0x8d, 0xd7, 0xff, 0xff, //0x000051a0 .long L0_0_set_488 + 0x98, 0xd7, 0xff, 0xff, //0x000051a4 .long L0_0_set_489 + // // .set L0_1_set_222, LBB0_222-LJTI0_1 + // // .set L0_1_set_289, LBB0_289-LJTI0_1 + // // .set L0_1_set_251, LBB0_251-LJTI0_1 + // // .set L0_1_set_207, LBB0_207-LJTI0_1 + // // .set L0_1_set_262, LBB0_262-LJTI0_1 + // // .set L0_1_set_288, LBB0_288-LJTI0_1 + // // .set L0_1_set_250, LBB0_250-LJTI0_1 + // // .set L0_1_set_290, LBB0_290-LJTI0_1 + //0x000051a8 LJTI0_1 + 0x88, 0xbb, 0xff, 0xff, //0x000051a8 .long L0_1_set_222 + 0x21, 0xc1, 0xff, 0xff, //0x000051ac .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051b0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051b4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051b8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051bc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051c0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051c4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051c8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051cc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051d0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051d4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051d8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051dc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051e0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051e4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051e8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051ec .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051f0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051f4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051f8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000051fc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005200 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005204 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005208 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000520c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005210 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005214 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005218 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000521c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005220 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005224 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005228 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000522c .long L0_1_set_289 + 0xee, 0xbc, 0xff, 0xff, //0x00005230 .long L0_1_set_251 + 0x21, 0xc1, 0xff, 0xff, //0x00005234 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005238 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000523c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005240 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005244 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005248 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000524c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005250 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005254 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005258 .long L0_1_set_289 + 0xbc, 0xba, 0xff, 0xff, //0x0000525c .long L0_1_set_207 + 0x21, 0xc1, 0xff, 0xff, //0x00005260 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005264 .long L0_1_set_289 + 0xbc, 0xba, 0xff, 0xff, //0x00005268 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x0000526c .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x00005270 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x00005274 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x00005278 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x0000527c .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x00005280 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x00005284 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x00005288 .long L0_1_set_207 + 0xbc, 0xba, 0xff, 0xff, //0x0000528c .long L0_1_set_207 + 0x21, 0xc1, 0xff, 0xff, //0x00005290 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005294 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005298 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000529c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052a0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052a4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052a8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052ac .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052b0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052b4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052b8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052bc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052c0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052c4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052c8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052cc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052d0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052d4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052d8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052dc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052e0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052e4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052e8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052ec .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052f0 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052f4 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052f8 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x000052fc .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005300 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005304 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005308 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000530c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005310 .long L0_1_set_289 + 0xfc, 0xbd, 0xff, 0xff, //0x00005314 .long L0_1_set_262 + 0x21, 0xc1, 0xff, 0xff, //0x00005318 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000531c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005320 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005324 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005328 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000532c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005330 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005334 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005338 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000533c .long L0_1_set_289 + 0x14, 0xc1, 0xff, 0xff, //0x00005340 .long L0_1_set_288 + 0x21, 0xc1, 0xff, 0xff, //0x00005344 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005348 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000534c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005350 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005354 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005358 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000535c .long L0_1_set_289 + 0xdc, 0xbc, 0xff, 0xff, //0x00005360 .long L0_1_set_250 + 0x21, 0xc1, 0xff, 0xff, //0x00005364 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005368 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000536c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005370 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005374 .long L0_1_set_289 + 0xdc, 0xbc, 0xff, 0xff, //0x00005378 .long L0_1_set_250 + 0x21, 0xc1, 0xff, 0xff, //0x0000537c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005380 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005384 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005388 .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x0000538c .long L0_1_set_289 + 0x21, 0xc1, 0xff, 0xff, //0x00005390 .long L0_1_set_289 + 0x2c, 0xc1, 0xff, 0xff, //0x00005394 .long L0_1_set_290 + // // .set L0_2_set_586, LBB0_586-LJTI0_2 + // // .set L0_2_set_590, LBB0_590-LJTI0_2 + // // .set L0_2_set_592, LBB0_592-LJTI0_2 + // // .set L0_2_set_611, LBB0_611-LJTI0_2 + // // .set L0_2_set_613, LBB0_613-LJTI0_2 + // // .set L0_2_set_616, LBB0_616-LJTI0_2 + //0x00005398 LJTI0_2 + 0xf6, 0xdb, 0xff, 0xff, //0x00005398 .long L0_2_set_586 + 0x1e, 0xdc, 0xff, 0xff, //0x0000539c .long L0_2_set_590 + 0x49, 0xdc, 0xff, 0xff, //0x000053a0 .long L0_2_set_592 + 0xe8, 0xdd, 0xff, 0xff, //0x000053a4 .long L0_2_set_611 + 0xff, 0xdd, 0xff, 0xff, //0x000053a8 .long L0_2_set_613 + 0x7d, 0xe0, 0xff, 0xff, //0x000053ac .long L0_2_set_616 + // // .set L0_3_set_839, LBB0_839-LJTI0_3 + // // .set L0_3_set_838, LBB0_838-LJTI0_3 + // // .set L0_3_set_690, LBB0_690-LJTI0_3 + // // .set L0_3_set_711, LBB0_711-LJTI0_3 + // // .set L0_3_set_618, LBB0_618-LJTI0_3 + // // .set L0_3_set_745, LBB0_745-LJTI0_3 + // // .set L0_3_set_747, LBB0_747-LJTI0_3 + // // .set L0_3_set_750, LBB0_750-LJTI0_3 + // // .set L0_3_set_756, LBB0_756-LJTI0_3 + // // .set L0_3_set_759, LBB0_759-LJTI0_3 + //0x000053b0 LJTI0_3 + 0xde, 0xef, 0xff, 0xff, //0x000053b0 .long L0_3_set_839 + 0xd7, 0xef, 0xff, 0xff, //0x000053b4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053b8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053bc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053c0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053c4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053c8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053cc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053d0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053d4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053d8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053dc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053e0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053e4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053e8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053ec .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053f0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053f4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053f8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000053fc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005400 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005404 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005408 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000540c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005410 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005414 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005418 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000541c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005420 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005424 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005428 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000542c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005430 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005434 .long L0_3_set_838 + 0xe3, 0xe2, 0xff, 0xff, //0x00005438 .long L0_3_set_690 + 0xd7, 0xef, 0xff, 0xff, //0x0000543c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005440 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005444 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005448 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000544c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005450 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005454 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005458 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000545c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005460 .long L0_3_set_838 + 0x70, 0xe4, 0xff, 0xff, //0x00005464 .long L0_3_set_711 + 0xd7, 0xef, 0xff, 0xff, //0x00005468 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000546c .long L0_3_set_838 + 0x18, 0xde, 0xff, 0xff, //0x00005470 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005474 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005478 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x0000547c .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005480 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005484 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005488 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x0000548c .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005490 .long L0_3_set_618 + 0x18, 0xde, 0xff, 0xff, //0x00005494 .long L0_3_set_618 + 0xd7, 0xef, 0xff, 0xff, //0x00005498 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000549c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054a0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054a4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054a8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054ac .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054b0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054b4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054b8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054bc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054c0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054c4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054c8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054cc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054d0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054d4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054d8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054dc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054e0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054e4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054e8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054ec .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054f0 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054f4 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054f8 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x000054fc .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005500 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005504 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005508 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000550c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005510 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005514 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005518 .long L0_3_set_838 + 0xb6, 0xe6, 0xff, 0xff, //0x0000551c .long L0_3_set_745 + 0xd7, 0xef, 0xff, 0xff, //0x00005520 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005524 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005528 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000552c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005530 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005534 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005538 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000553c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005540 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005544 .long L0_3_set_838 + 0xda, 0xe6, 0xff, 0xff, //0x00005548 .long L0_3_set_747 + 0xd7, 0xef, 0xff, 0xff, //0x0000554c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005550 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005554 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005558 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000555c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005560 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005564 .long L0_3_set_838 + 0x08, 0xe7, 0xff, 0xff, //0x00005568 .long L0_3_set_750 + 0xd7, 0xef, 0xff, 0xff, //0x0000556c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005570 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005574 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005578 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000557c .long L0_3_set_838 + 0x30, 0xe7, 0xff, 0xff, //0x00005580 .long L0_3_set_756 + 0xd7, 0xef, 0xff, 0xff, //0x00005584 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005588 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x0000558c .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005590 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005594 .long L0_3_set_838 + 0xd7, 0xef, 0xff, 0xff, //0x00005598 .long L0_3_set_838 + 0x5c, 0xe7, 0xff, 0xff, //0x0000559c .long L0_3_set_759 + // // .set L0_4_set_736, LBB0_736-LJTI0_4 + // // .set L0_4_set_763, LBB0_763-LJTI0_4 + // // .set L0_4_set_743, LBB0_743-LJTI0_4 + // // .set L0_4_set_738, LBB0_738-LJTI0_4 + // // .set L0_4_set_741, LBB0_741-LJTI0_4 + //0x000055a0 LJTI0_4 + 0x49, 0xe4, 0xff, 0xff, //0x000055a0 .long L0_4_set_736 + 0xba, 0xe5, 0xff, 0xff, //0x000055a4 .long L0_4_set_763 + 0x49, 0xe4, 0xff, 0xff, //0x000055a8 .long L0_4_set_736 + 0xa7, 0xe4, 0xff, 0xff, //0x000055ac .long L0_4_set_743 + 0xba, 0xe5, 0xff, 0xff, //0x000055b0 .long L0_4_set_763 + 0x63, 0xe4, 0xff, 0xff, //0x000055b4 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055b8 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055bc .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055c0 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055c4 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055c8 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055cc .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055d0 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055d4 .long L0_4_set_738 + 0x63, 0xe4, 0xff, 0xff, //0x000055d8 .long L0_4_set_738 + 0xba, 0xe5, 0xff, 0xff, //0x000055dc .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055e0 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055e4 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055e8 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055ec .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055f0 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055f4 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055f8 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x000055fc .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005600 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005604 .long L0_4_set_763 + 0x8c, 0xe4, 0xff, 0xff, //0x00005608 .long L0_4_set_741 + 0xba, 0xe5, 0xff, 0xff, //0x0000560c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005610 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005614 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005618 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000561c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005620 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005624 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005628 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000562c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005630 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005634 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005638 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000563c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005640 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005644 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005648 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000564c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005650 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005654 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005658 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000565c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005660 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005664 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005668 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000566c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005670 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005674 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005678 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x0000567c .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005680 .long L0_4_set_763 + 0xba, 0xe5, 0xff, 0xff, //0x00005684 .long L0_4_set_763 + 0x8c, 0xe4, 0xff, 0xff, //0x00005688 .long L0_4_set_741 + // // .set L0_5_set_646, LBB0_646-LJTI0_5 + // // .set L0_5_set_674, LBB0_674-LJTI0_5 + // // .set L0_5_set_650, LBB0_650-LJTI0_5 + // // .set L0_5_set_643, LBB0_643-LJTI0_5 + // // .set L0_5_set_648, LBB0_648-LJTI0_5 + //0x0000568c LJTI0_5 + 0x34, 0xdd, 0xff, 0xff, //0x0000568c .long L0_5_set_646 + 0x54, 0xdf, 0xff, 0xff, //0x00005690 .long L0_5_set_674 + 0x34, 0xdd, 0xff, 0xff, //0x00005694 .long L0_5_set_646 + 0x6a, 0xdd, 0xff, 0xff, //0x00005698 .long L0_5_set_650 + 0x54, 0xdf, 0xff, 0xff, //0x0000569c .long L0_5_set_674 + 0x04, 0xdd, 0xff, 0xff, //0x000056a0 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056a4 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056a8 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056ac .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056b0 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056b4 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056b8 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056bc .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056c0 .long L0_5_set_643 + 0x04, 0xdd, 0xff, 0xff, //0x000056c4 .long L0_5_set_643 + 0x54, 0xdf, 0xff, 0xff, //0x000056c8 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056cc .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056d0 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056d4 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056d8 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056dc .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056e0 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056e4 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056e8 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056ec .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056f0 .long L0_5_set_674 + 0x4f, 0xdd, 0xff, 0xff, //0x000056f4 .long L0_5_set_648 + 0x54, 0xdf, 0xff, 0xff, //0x000056f8 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x000056fc .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005700 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005704 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005708 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000570c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005710 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005714 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005718 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000571c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005720 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005724 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005728 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000572c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005730 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005734 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005738 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000573c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005740 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005744 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005748 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000574c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005750 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005754 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005758 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000575c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005760 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005764 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005768 .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x0000576c .long L0_5_set_674 + 0x54, 0xdf, 0xff, 0xff, //0x00005770 .long L0_5_set_674 + 0x4f, 0xdd, 0xff, 0xff, //0x00005774 .long L0_5_set_648 + // // .set L0_6_set_839, LBB0_839-LJTI0_6 + // // .set L0_6_set_866, LBB0_866-LJTI0_6 + // // .set L0_6_set_867, LBB0_867-LJTI0_6 + // // .set L0_6_set_845, LBB0_845-LJTI0_6 + // // .set L0_6_set_878, LBB0_878-LJTI0_6 + // // .set L0_6_set_902, LBB0_902-LJTI0_6 + // // .set L0_6_set_864, LBB0_864-LJTI0_6 + // // .set L0_6_set_905, LBB0_905-LJTI0_6 + //0x00005778 LJTI0_6 + 0x16, 0xec, 0xff, 0xff, //0x00005778 .long L0_6_set_839 + 0xc7, 0xed, 0xff, 0xff, //0x0000577c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005780 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005784 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005788 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000578c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005790 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005794 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005798 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000579c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057a0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057a4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057a8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057ac .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057b0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057b4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057b8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057bc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057c0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057c4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057c8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057cc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057d0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057d4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057d8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057dc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057e0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057e4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057e8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057ec .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057f0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057f4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057f8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000057fc .long L0_6_set_866 + 0xcf, 0xed, 0xff, 0xff, //0x00005800 .long L0_6_set_867 + 0xc7, 0xed, 0xff, 0xff, //0x00005804 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005808 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000580c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005810 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005814 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005818 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000581c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005820 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005824 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005828 .long L0_6_set_866 + 0x9b, 0xec, 0xff, 0xff, //0x0000582c .long L0_6_set_845 + 0xc7, 0xed, 0xff, 0xff, //0x00005830 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005834 .long L0_6_set_866 + 0x9b, 0xec, 0xff, 0xff, //0x00005838 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x0000583c .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x00005840 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x00005844 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x00005848 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x0000584c .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x00005850 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x00005854 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x00005858 .long L0_6_set_845 + 0x9b, 0xec, 0xff, 0xff, //0x0000585c .long L0_6_set_845 + 0xc7, 0xed, 0xff, 0xff, //0x00005860 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005864 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005868 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000586c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005870 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005874 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005878 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000587c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005880 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005884 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005888 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000588c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005890 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005894 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005898 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000589c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058a0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058a4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058a8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058ac .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058b0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058b4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058b8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058bc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058c0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058c4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058c8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058cc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058d0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058d4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058d8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058dc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058e0 .long L0_6_set_866 + 0xdf, 0xee, 0xff, 0xff, //0x000058e4 .long L0_6_set_878 + 0xc7, 0xed, 0xff, 0xff, //0x000058e8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058ec .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058f0 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058f4 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058f8 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x000058fc .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005900 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005904 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005908 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000590c .long L0_6_set_866 + 0x14, 0xf2, 0xff, 0xff, //0x00005910 .long L0_6_set_902 + 0xc7, 0xed, 0xff, 0xff, //0x00005914 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005918 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000591c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005920 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005924 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005928 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000592c .long L0_6_set_866 + 0xb1, 0xed, 0xff, 0xff, //0x00005930 .long L0_6_set_864 + 0xc7, 0xed, 0xff, 0xff, //0x00005934 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005938 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000593c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005940 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005944 .long L0_6_set_866 + 0xb1, 0xed, 0xff, 0xff, //0x00005948 .long L0_6_set_864 + 0xc7, 0xed, 0xff, 0xff, //0x0000594c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005950 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005954 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005958 .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x0000595c .long L0_6_set_866 + 0xc7, 0xed, 0xff, 0xff, //0x00005960 .long L0_6_set_866 + 0x33, 0xf2, 0xff, 0xff, //0x00005964 .long L0_6_set_905 + //0x00005968 .p2align 2, 0x00 + //0x00005968 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00005968 .long 2 + 0x00, 0x00, 0x00, 0x00, //0x0000596c .p2align 4, 0x00 + //0x00005970 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00005990 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x000059c0 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x000059d0 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x000059e0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a06 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a16 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a26 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a36 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a66 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape.go b/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape.go new file mode 100644 index 000000000..d66d1a6b6 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + +var S_html_escape uintptr + +//go:nosplit +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return F_html_escape(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(dn))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_subr.go new file mode 100644 index 000000000..0599b11aa --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__html_escape = 64 +) + +const ( + _stack__html_escape = 72 +) + +const ( + _size__html_escape = 1248 +) + +var ( + _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}, + } +) + +var _cfunc_html_escape = []loader.CFunc{ + {"_html_escape_entry", 0, _entry__html_escape, 0, nil}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_text_amd64.go new file mode 100644 index 000000000..797e12cb8 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/html_escape_text_amd64.go @@ -0,0 +1,620 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_html_escape = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, // QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00000010 LCPI0_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00000010 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00000020 LCPI0_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00000020 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x00000030 LCPI0_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00000030 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00000040 .p2align 4, 0x90 + //0x00000040 _html_escape + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x41, 0x57, //0x00000044 pushq %r15 + 0x41, 0x56, //0x00000046 pushq %r14 + 0x41, 0x55, //0x00000048 pushq %r13 + 0x41, 0x54, //0x0000004a pushq %r12 + 0x53, //0x0000004c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000004d subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x00000051 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd2, //0x00000055 movq %rdx, %r10 + 0x48, 0x89, 0x55, 0xc8, //0x00000058 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x0000005c movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x00000060 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x00000063 testq %rsi, %rsi + 0x0f, 0x8e, 0x73, 0x04, 0x00, 0x00, //0x00000066 jle LBB0_59 + 0x48, 0x8b, 0x45, 0xc0, //0x0000006c movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00000070 movq (%rax), %r9 + 0xc5, 0xfa, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00000073 vmovdqu $-123(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000007b vmovdqu $-115(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00000083 vmovdqu $-107(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000008b vmovdqu $-99(%rip), %xmm3 /* LCPI0_3+0(%rip) */ + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00000093 movabsq $5764607797912141824, %r14 + 0x4c, 0x8d, 0x1d, 0x7c, 0x04, 0x00, 0x00, //0x0000009d leaq $1148(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0xd0, //0x000000a4 movq $-48(%rbp), %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x000000a8 movq $-56(%rbp), %r10 + 0x90, 0x90, 0x90, 0x90, //0x000000ac .p2align 4, 0x90 + //0x000000b0 LBB0_2 + 0x4d, 0x85, 0xc9, //0x000000b0 testq %r9, %r9 + 0x0f, 0x8e, 0x45, 0x04, 0x00, 0x00, //0x000000b3 jle LBB0_61 + 0x48, 0x83, 0xfe, 0x0f, //0x000000b9 cmpq $15, %rsi + 0x0f, 0x9f, 0xc3, //0x000000bd setg %bl + 0x4d, 0x89, 0xcc, //0x000000c0 movq %r9, %r12 + 0x4d, 0x89, 0xd0, //0x000000c3 movq %r10, %r8 + 0x48, 0x89, 0xf0, //0x000000c6 movq %rsi, %rax + 0x4d, 0x89, 0xfd, //0x000000c9 movq %r15, %r13 + 0x49, 0x83, 0xf9, 0x10, //0x000000cc cmpq $16, %r9 + 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x000000d0 jl LBB0_9 + 0x48, 0x83, 0xfe, 0x10, //0x000000d6 cmpq $16, %rsi + 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x000000da jl LBB0_9 + 0x4d, 0x89, 0xfd, //0x000000e0 movq %r15, %r13 + 0x48, 0x89, 0xf0, //0x000000e3 movq %rsi, %rax + 0x4d, 0x89, 0xd0, //0x000000e6 movq %r10, %r8 + 0x4c, 0x89, 0xc9, //0x000000e9 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, //0x000000ec .p2align 4, 0x90 + //0x000000f0 LBB0_6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x000000f0 vmovdqu (%r13), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x000000f6 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000000fa vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000000fe vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xeb, 0xf2, //0x00000102 vpor %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00000106 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x0000010a vpor %xmm6, %xmm5, %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x20, //0x0000010e vmovdqu %xmm4, (%r8) + 0xc5, 0xf9, 0xd7, 0xd5, //0x00000113 vpmovmskb %xmm5, %edx + 0x66, 0x85, 0xd2, //0x00000117 testw %dx, %dx + 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x0000011a jne LBB0_21 + 0x49, 0x83, 0xc5, 0x10, //0x00000120 addq $16, %r13 + 0x49, 0x83, 0xc0, 0x10, //0x00000124 addq $16, %r8 + 0x4c, 0x8d, 0x61, 0xf0, //0x00000128 leaq $-16(%rcx), %r12 + 0x48, 0x83, 0xf8, 0x1f, //0x0000012c cmpq $31, %rax + 0x0f, 0x9f, 0xc3, //0x00000130 setg %bl + 0x48, 0x83, 0xf8, 0x20, //0x00000133 cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x00000137 leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x0000013b jl LBB0_9 + 0x48, 0x83, 0xf9, 0x1f, //0x00000141 cmpq $31, %rcx + 0x4c, 0x89, 0xe1, //0x00000145 movq %r12, %rcx + 0x0f, 0x8f, 0xa2, 0xff, 0xff, 0xff, //0x00000148 jg LBB0_6 + 0x90, 0x90, //0x0000014e .p2align 4, 0x90 + //0x00000150 LBB0_9 + 0x84, 0xdb, //0x00000150 testb %bl, %bl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00000152 je LBB0_13 + 0x4c, 0x89, 0xf2, //0x00000158 movq %r14, %rdx + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x0000015b vmovdqu (%r13), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x00000161 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00000165 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x00000169 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xeb, 0xf2, //0x0000016d vpor %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00000171 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x00000175 vpor %xmm6, %xmm5, %xmm5 + 0xc5, 0xf9, 0xd7, 0xc5, //0x00000179 vpmovmskb %xmm5, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000017d orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xf0, //0x00000182 bsfl %eax, %r14d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe0, //0x00000186 vmovq %xmm4, %rax + 0x4d, 0x39, 0xf4, //0x0000018b cmpq %r14, %r12 + 0x0f, 0x8d, 0xd7, 0x00, 0x00, 0x00, //0x0000018e jge LBB0_22 + 0x49, 0x83, 0xfc, 0x08, //0x00000194 cmpq $8, %r12 + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00000198 jb LBB0_25 + 0x49, 0x89, 0x00, //0x0000019e movq %rax, (%r8) + 0x4d, 0x8d, 0x75, 0x08, //0x000001a1 leaq $8(%r13), %r14 + 0x49, 0x83, 0xc0, 0x08, //0x000001a5 addq $8, %r8 + 0x49, 0x8d, 0x44, 0x24, 0xf8, //0x000001a9 leaq $-8(%r12), %rax + 0x48, 0x83, 0xf8, 0x04, //0x000001ae cmpq $4, %rax + 0x0f, 0x8d, 0xff, 0x00, 0x00, 0x00, //0x000001b2 jge LBB0_26 + 0xe9, 0x0c, 0x01, 0x00, 0x00, //0x000001b8 jmp LBB0_27 + 0x90, 0x90, 0x90, //0x000001bd .p2align 4, 0x90 + //0x000001c0 LBB0_13 + 0x4d, 0x85, 0xe4, //0x000001c0 testq %r12, %r12 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x000001c3 jle LBB0_20 + 0x48, 0x85, 0xc0, //0x000001c9 testq %rax, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x000001cc jle LBB0_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001d2 .p2align 4, 0x90 + //0x000001e0 LBB0_15 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x000001e0 movzbl (%r13), %ecx + 0x48, 0x83, 0xf9, 0x3e, //0x000001e5 cmpq $62, %rcx + 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x000001e9 ja LBB0_17 + 0x49, 0x0f, 0xa3, 0xce, //0x000001ef btq %rcx, %r14 + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x000001f3 jb LBB0_24 + //0x000001f9 LBB0_17 + 0x80, 0xf9, 0xe2, //0x000001f9 cmpb $-30, %cl + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x000001fc je LBB0_24 + 0x49, 0xff, 0xc5, //0x00000202 incq %r13 + 0x41, 0x88, 0x08, //0x00000205 movb %cl, (%r8) + 0x48, 0x83, 0xf8, 0x02, //0x00000208 cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x0000020c leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x00000210 jl LBB0_20 + 0x49, 0xff, 0xc0, //0x00000216 incq %r8 + 0x49, 0x83, 0xfc, 0x01, //0x00000219 cmpq $1, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000021d leaq $-1(%r12), %r12 + 0x0f, 0x8f, 0xb8, 0xff, 0xff, 0xff, //0x00000222 jg LBB0_15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000228 .p2align 4, 0x90 + //0x00000230 LBB0_20 + 0x4d, 0x29, 0xfd, //0x00000230 subq %r15, %r13 + 0x48, 0xf7, 0xd8, //0x00000233 negq %rax + 0x4d, 0x19, 0xe4, //0x00000236 sbbq %r12, %r12 + 0x4d, 0x31, 0xec, //0x00000239 xorq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x0000023c testq %r12, %r12 + 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x0000023f jns LBB0_37 + 0xe9, 0x72, 0x02, 0x00, 0x00, //0x00000245 jmp LBB0_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000024a .p2align 4, 0x90 + //0x00000250 LBB0_21 + 0x0f, 0xb7, 0xc2, //0x00000250 movzwl %dx, %eax + 0x4d, 0x29, 0xfd, //0x00000253 subq %r15, %r13 + 0x44, 0x0f, 0xbc, 0xe0, //0x00000256 bsfl %eax, %r12d + 0x4d, 0x01, 0xec, //0x0000025a addq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x0000025d testq %r12, %r12 + 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x00000260 jns LBB0_37 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00000266 jmp LBB0_57 + //0x0000026b LBB0_22 + 0x41, 0x83, 0xfe, 0x08, //0x0000026b cmpl $8, %r14d + 0x0f, 0x82, 0xa9, 0x00, 0x00, 0x00, //0x0000026f jb LBB0_31 + 0x49, 0x89, 0x00, //0x00000275 movq %rax, (%r8) + 0x4d, 0x8d, 0x65, 0x08, //0x00000278 leaq $8(%r13), %r12 + 0x49, 0x83, 0xc0, 0x08, //0x0000027c addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00000280 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000284 cmpq $4, %rax + 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00000288 jge LBB0_32 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000028e jmp LBB0_33 + //0x00000293 LBB0_24 + 0x4d, 0x29, 0xfd, //0x00000293 subq %r15, %r13 + 0x4d, 0x89, 0xec, //0x00000296 movq %r13, %r12 + 0x4d, 0x85, 0xe4, //0x00000299 testq %r12, %r12 + 0x0f, 0x89, 0xfe, 0x00, 0x00, 0x00, //0x0000029c jns LBB0_37 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x000002a2 jmp LBB0_57 + //0x000002a7 LBB0_25 + 0x4d, 0x89, 0xee, //0x000002a7 movq %r13, %r14 + 0x4c, 0x89, 0xe0, //0x000002aa movq %r12, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000002ad cmpq $4, %rax + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000002b1 jl LBB0_27 + //0x000002b7 LBB0_26 + 0x41, 0x8b, 0x0e, //0x000002b7 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x000002ba movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x000002bd addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x000002c1 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000002c5 addq $-4, %rax + //0x000002c9 LBB0_27 + 0x48, 0x83, 0xf8, 0x02, //0x000002c9 cmpq $2, %rax + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000002cd jb LBB0_28 + 0x41, 0x0f, 0xb7, 0x0e, //0x000002d3 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000002d7 movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x000002db addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x000002df addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x000002e3 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x000002e7 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000002ea jne LBB0_29 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000002f0 jmp LBB0_30 + //0x000002f5 LBB0_28 + 0x48, 0x85, 0xc0, //0x000002f5 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000002f8 je LBB0_30 + //0x000002fe LBB0_29 + 0x41, 0x8a, 0x06, //0x000002fe movb (%r14), %al + 0x41, 0x88, 0x00, //0x00000301 movb %al, (%r8) + //0x00000304 LBB0_30 + 0x4d, 0x29, 0xfc, //0x00000304 subq %r15, %r12 + 0x4d, 0x01, 0xec, //0x00000307 addq %r13, %r12 + 0x49, 0xf7, 0xd4, //0x0000030a notq %r12 + 0x49, 0x89, 0xd6, //0x0000030d movq %rdx, %r14 + 0x4d, 0x85, 0xe4, //0x00000310 testq %r12, %r12 + 0x0f, 0x89, 0x87, 0x00, 0x00, 0x00, //0x00000313 jns LBB0_37 + 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x00000319 jmp LBB0_57 + //0x0000031e LBB0_31 + 0x4d, 0x89, 0xec, //0x0000031e movq %r13, %r12 + 0x4c, 0x89, 0xf0, //0x00000321 movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000324 cmpq $4, %rax + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00000328 jl LBB0_33 + //0x0000032e LBB0_32 + 0x41, 0x8b, 0x0c, 0x24, //0x0000032e movl (%r12), %ecx + 0x41, 0x89, 0x08, //0x00000332 movl %ecx, (%r8) + 0x49, 0x83, 0xc4, 0x04, //0x00000335 addq $4, %r12 + 0x49, 0x83, 0xc0, 0x04, //0x00000339 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x0000033d addq $-4, %rax + //0x00000341 LBB0_33 + 0x48, 0x83, 0xf8, 0x02, //0x00000341 cmpq $2, %rax + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00000345 jb LBB0_34 + 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x0000034b movzwl (%r12), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00000350 movw %cx, (%r8) + 0x49, 0x83, 0xc4, 0x02, //0x00000354 addq $2, %r12 + 0x49, 0x83, 0xc0, 0x02, //0x00000358 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x0000035c addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00000360 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00000363 jne LBB0_35 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00000369 jmp LBB0_36 + //0x0000036e LBB0_34 + 0x48, 0x85, 0xc0, //0x0000036e testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00000371 je LBB0_36 + //0x00000377 LBB0_35 + 0x41, 0x8a, 0x04, 0x24, //0x00000377 movb (%r12), %al + 0x41, 0x88, 0x00, //0x0000037b movb %al, (%r8) + //0x0000037e LBB0_36 + 0x4d, 0x29, 0xfd, //0x0000037e subq %r15, %r13 + 0x4d, 0x01, 0xf5, //0x00000381 addq %r14, %r13 + 0x4d, 0x89, 0xec, //0x00000384 movq %r13, %r12 + 0x49, 0x89, 0xd6, //0x00000387 movq %rdx, %r14 + 0x4d, 0x85, 0xe4, //0x0000038a testq %r12, %r12 + 0x0f, 0x88, 0x29, 0x01, 0x00, 0x00, //0x0000038d js LBB0_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000393 .p2align 4, 0x90 + //0x000003a0 LBB0_37 + 0x4d, 0x01, 0xe7, //0x000003a0 addq %r12, %r15 + 0x4d, 0x01, 0xe2, //0x000003a3 addq %r12, %r10 + 0x4c, 0x29, 0xe6, //0x000003a6 subq %r12, %rsi + 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x000003a9 jle LBB0_58 + 0x4d, 0x29, 0xe1, //0x000003af subq %r12, %r9 + 0x41, 0x8a, 0x0f, //0x000003b2 movb (%r15), %cl + 0x80, 0xf9, 0xe2, //0x000003b5 cmpb $-30, %cl + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x000003b8 je LBB0_51 + 0x4c, 0x89, 0xf8, //0x000003be movq %r15, %rax + //0x000003c1 LBB0_40 + 0x0f, 0xb6, 0xd1, //0x000003c1 movzbl %cl, %edx + 0x48, 0xc1, 0xe2, 0x04, //0x000003c4 shlq $4, %rdx + 0x4a, 0x8b, 0x3c, 0x1a, //0x000003c8 movq (%rdx,%r11), %rdi + 0x48, 0x63, 0xdf, //0x000003cc movslq %edi, %rbx + 0x49, 0x29, 0xd9, //0x000003cf subq %rbx, %r9 + 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x000003d2 jl LBB0_60 + 0x48, 0xc1, 0xe7, 0x20, //0x000003d8 shlq $32, %rdi + 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x000003dc leaq $8(%rdx,%r11), %r15 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000003e1 movabsq $12884901889, %rcx + 0x48, 0x39, 0xcf, //0x000003eb cmpq %rcx, %rdi + 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x000003ee jl LBB0_43 + 0x41, 0x8b, 0x0f, //0x000003f4 movl (%r15), %ecx + 0x41, 0x89, 0x0a, //0x000003f7 movl %ecx, (%r10) + 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x000003fa leaq $12(%rdx,%r11), %r15 + 0x4d, 0x8d, 0x42, 0x04, //0x000003ff leaq $4(%r10), %r8 + 0x48, 0x8d, 0x7b, 0xfc, //0x00000403 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x00000407 cmpq $2, %rdi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x0000040b jae LBB0_44 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000411 jmp LBB0_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000416 .p2align 4, 0x90 + //0x00000420 LBB0_43 + 0x4d, 0x89, 0xd0, //0x00000420 movq %r10, %r8 + 0x48, 0x89, 0xdf, //0x00000423 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00000426 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000042a jb LBB0_45 + //0x00000430 LBB0_44 + 0x41, 0x0f, 0xb7, 0x17, //0x00000430 movzwl (%r15), %edx + 0x66, 0x41, 0x89, 0x10, //0x00000434 movw %dx, (%r8) + 0x49, 0x83, 0xc7, 0x02, //0x00000438 addq $2, %r15 + 0x49, 0x83, 0xc0, 0x02, //0x0000043c addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x00000440 addq $-2, %rdi + //0x00000444 LBB0_45 + 0x48, 0x85, 0xff, //0x00000444 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00000447 je LBB0_47 + 0x41, 0x8a, 0x0f, //0x0000044d movb (%r15), %cl + 0x41, 0x88, 0x08, //0x00000450 movb %cl, (%r8) + //0x00000453 LBB0_47 + 0x49, 0x01, 0xda, //0x00000453 addq %rbx, %r10 + //0x00000456 LBB0_48 + 0x48, 0xff, 0xc0, //0x00000456 incq %rax + 0x49, 0x89, 0xc7, //0x00000459 movq %rax, %r15 + 0x48, 0x83, 0xfe, 0x01, //0x0000045c cmpq $1, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00000460 leaq $-1(%rsi), %rsi + 0x0f, 0x8f, 0x46, 0xfc, 0xff, 0xff, //0x00000464 jg LBB0_2 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x0000046a jmp LBB0_59 + //0x0000046f LBB0_51 + 0x48, 0x83, 0xfe, 0x03, //0x0000046f cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00000473 jl LBB0_55 + 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00000479 cmpb $-128, $1(%r15) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000047e jne LBB0_55 + 0x41, 0x8a, 0x4f, 0x02, //0x00000484 movb $2(%r15), %cl + 0x89, 0xc8, //0x00000488 movl %ecx, %eax + 0x24, 0xfe, //0x0000048a andb $-2, %al + 0x3c, 0xa8, //0x0000048c cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000048e jne LBB0_55 + 0x49, 0x8d, 0x47, 0x02, //0x00000494 leaq $2(%r15), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00000498 addq $-2, %rsi + 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000049c jmp LBB0_40 + //0x000004a1 LBB0_55 + 0x4d, 0x85, 0xc9, //0x000004a1 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x000004a4 jle LBB0_61 + 0x41, 0xc6, 0x02, 0xe2, //0x000004aa movb $-30, (%r10) + 0x49, 0xff, 0xc2, //0x000004ae incq %r10 + 0x49, 0xff, 0xc9, //0x000004b1 decq %r9 + 0x4c, 0x89, 0xf8, //0x000004b4 movq %r15, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x000004b7 jmp LBB0_48 + //0x000004bc LBB0_57 + 0x4c, 0x2b, 0x55, 0xc8, //0x000004bc subq $-56(%rbp), %r10 + 0x49, 0xf7, 0xd4, //0x000004c0 notq %r12 + 0x4d, 0x01, 0xe2, //0x000004c3 addq %r12, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000004c6 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x000004ca movq %r10, (%rax) + 0x4c, 0x2b, 0x7d, 0xd0, //0x000004cd subq $-48(%rbp), %r15 + 0x4d, 0x01, 0xe7, //0x000004d1 addq %r12, %r15 + 0x49, 0xf7, 0xd7, //0x000004d4 notq %r15 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000004d7 jmp LBB0_62 + //0x000004dc LBB0_58 + 0x4c, 0x89, 0xf8, //0x000004dc movq %r15, %rax + //0x000004df LBB0_59 + 0x4c, 0x2b, 0x55, 0xc8, //0x000004df subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x4d, 0xc0, //0x000004e3 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x11, //0x000004e7 movq %r10, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x000004ea subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000004ee jmp LBB0_63 + //0x000004f3 LBB0_60 + 0x4c, 0x2b, 0x55, 0xc8, //0x000004f3 subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000004f7 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x000004fb movq %r10, (%rax) + //0x000004fe LBB0_61 + 0x49, 0xf7, 0xd7, //0x000004fe notq %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x00000501 addq $-48(%rbp), %r15 + //0x00000505 LBB0_62 + 0x4c, 0x89, 0xf8, //0x00000505 movq %r15, %rax + //0x00000508 LBB0_63 + 0x48, 0x83, 0xc4, 0x18, //0x00000508 addq $24, %rsp + 0x5b, //0x0000050c popq %rbx + 0x41, 0x5c, //0x0000050d popq %r12 + 0x41, 0x5d, //0x0000050f popq %r13 + 0x41, 0x5e, //0x00000511 popq %r14 + 0x41, 0x5f, //0x00000513 popq %r15 + 0x5d, //0x00000515 popq %rbp + 0xc3, //0x00000516 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000517 .p2align 4, 0x00 + //0x00000520 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000780 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00000788 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x000008e8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00000908 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fa0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00000fa8 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fb0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00000fb8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa.go new file mode 100644 index 000000000..d9917195c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_i64toa func(out unsafe.Pointer, val int64) (ret int) + +var S_i64toa uintptr + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return F_i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_subr.go new file mode 100644 index 000000000..aafd71430 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_subr.go @@ -0,0 +1,47 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__i64toa = 64 +) + +const ( + _stack__i64toa = 8 +) + +const ( + _size__i64toa = 2272 +) + +var ( + _pcsp__i64toa = [][2]uint32{ + {1, 0}, + {170, 8}, + {171, 0}, + {505, 8}, + {506, 0}, + {637, 8}, + {638, 0}, + {1101, 8}, + {1102, 0}, + {1238, 8}, + {1239, 0}, + {1540, 8}, + {1541, 0}, + {1901, 8}, + {1902, 0}, + {2268, 8}, + {2270, 0}, + } +) + +var _cfunc_i64toa = []loader.CFunc{ + {"_i64toa_entry", 0, _entry__i64toa, 0, nil}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_text_amd64.go new file mode 100644 index 000000000..de53bfe12 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/i64toa_text_amd64.go @@ -0,0 +1,639 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_i64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209 + //0x00000010 LCPI0_3 + 0x0a, 0x00, //0x00000010 .word 10 + 0x0a, 0x00, //0x00000012 .word 10 + 0x0a, 0x00, //0x00000014 .word 10 + 0x0a, 0x00, //0x00000016 .word 10 + 0x0a, 0x00, //0x00000018 .word 10 + 0x0a, 0x00, //0x0000001a .word 10 + 0x0a, 0x00, //0x0000001c .word 10 + 0x0a, 0x00, //0x0000001e .word 10 + //0x00000020 LCPI0_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000020 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000030 .p2align 3, 0x00 + //0x00000030 LCPI0_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000030 .quad -9223315738079846203 + //0x00000038 LCPI0_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000038 .quad -9223336852348469120 + //0x00000040 .p2align 4, 0x90 + //0x00000040 _i64toa + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x48, 0x85, 0xf6, //0x00000044 testq %rsi, %rsi + 0x0f, 0x88, 0xaf, 0x00, 0x00, 0x00, //0x00000047 js LBB0_25 + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x0000004d cmpq $9999, %rsi + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x00000054 ja LBB0_9 + 0x0f, 0xb7, 0xc6, //0x0000005a movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x0000005d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000060 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000066 shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000069 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x0000006d imull $100, %eax, %eax + 0x89, 0xf1, //0x00000070 movl %esi, %ecx + 0x29, 0xc1, //0x00000072 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000074 movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000077 addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000007a cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000080 jb LBB0_4 + 0x48, 0x8d, 0x0d, 0x93, 0x08, 0x00, 0x00, //0x00000086 leaq $2195(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x0000008d movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000090 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000092 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000097 jmp LBB0_5 + //0x0000009c LBB0_4 + 0x31, 0xc9, //0x0000009c xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x0000009e cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000000a1 jb LBB0_6 + //0x000000a7 LBB0_5 + 0x0f, 0xb7, 0xd2, //0x000000a7 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000000aa orq $1, %rdx + 0x48, 0x8d, 0x35, 0x6b, 0x08, 0x00, 0x00, //0x000000ae leaq $2155(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000000b5 movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x000000b8 movl %ecx, %esi + 0xff, 0xc1, //0x000000ba incl %ecx + 0x88, 0x14, 0x37, //0x000000bc movb %dl, (%rdi,%rsi) + //0x000000bf LBB0_7 + 0x48, 0x8d, 0x15, 0x5a, 0x08, 0x00, 0x00, //0x000000bf leaq $2138(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x000000c6 movb (%rax,%rdx), %dl + 0x89, 0xce, //0x000000c9 movl %ecx, %esi + 0xff, 0xc1, //0x000000cb incl %ecx + 0x88, 0x14, 0x37, //0x000000cd movb %dl, (%rdi,%rsi) + //0x000000d0 LBB0_8 + 0x0f, 0xb7, 0xc0, //0x000000d0 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000000d3 orq $1, %rax + 0x48, 0x8d, 0x15, 0x42, 0x08, 0x00, 0x00, //0x000000d7 leaq $2114(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x000000de movb (%rax,%rdx), %al + 0x89, 0xca, //0x000000e1 movl %ecx, %edx + 0xff, 0xc1, //0x000000e3 incl %ecx + 0x88, 0x04, 0x17, //0x000000e5 movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x000000e8 movl %ecx, %eax + 0x5d, //0x000000ea popq %rbp + 0xc3, //0x000000eb retq + //0x000000ec LBB0_6 + 0x31, 0xc9, //0x000000ec xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000000ee cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000f1 jae LBB0_7 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000f7 jmp LBB0_8 + //0x000000fc LBB0_25 + 0xc6, 0x07, 0x2d, //0x000000fc movb $45, (%rdi) + 0x48, 0xf7, 0xde, //0x000000ff negq %rsi + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000102 cmpq $9999, %rsi + 0x0f, 0x87, 0xd3, 0x01, 0x00, 0x00, //0x00000109 ja LBB0_33 + 0x0f, 0xb7, 0xc6, //0x0000010f movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000112 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000115 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000011b shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x0000011e leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000122 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000125 movl %esi, %ecx + 0x29, 0xc1, //0x00000127 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000129 movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x0000012c addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000012f cmpl $1000, %esi + 0x0f, 0x82, 0xab, 0x00, 0x00, 0x00, //0x00000135 jb LBB0_28 + 0x48, 0x8d, 0x0d, 0xde, 0x07, 0x00, 0x00, //0x0000013b leaq $2014(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000142 movb (%rdx,%rcx), %cl + 0x88, 0x4f, 0x01, //0x00000145 movb %cl, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000148 movl $1, %ecx + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x0000014d jmp LBB0_29 + //0x00000152 LBB0_9 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000152 cmpq $99999999, %rsi + 0x0f, 0x87, 0x18, 0x02, 0x00, 0x00, //0x00000159 ja LBB0_17 + 0x89, 0xf0, //0x0000015f movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000161 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000166 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000016a shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000016e imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000175 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000177 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000017a imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000181 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000185 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000189 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000018c shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000018f imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000195 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000198 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000019b subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000019d movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x000001a1 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x000001a4 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x000001a7 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000001aa imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000001b0 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x000001b3 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x000001b7 imull $100, %eax, %eax + 0x29, 0xc1, //0x000001ba subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x000001bc movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x000001c0 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000001c3 cmpl $10000000, %esi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000001c9 jb LBB0_12 + 0x48, 0x8d, 0x05, 0x4a, 0x07, 0x00, 0x00, //0x000001cf leaq $1866(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x000001d6 movb (%r10,%rax), %al + 0x88, 0x07, //0x000001da movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000001dc movl $1, %ecx + 0xe9, 0x63, 0x00, 0x00, 0x00, //0x000001e1 jmp LBB0_13 + //0x000001e6 LBB0_28 + 0x31, 0xc9, //0x000001e6 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x000001e8 cmpl $100, %esi + 0x0f, 0x82, 0xce, 0x00, 0x00, 0x00, //0x000001eb jb LBB0_30 + //0x000001f1 LBB0_29 + 0x0f, 0xb7, 0xd2, //0x000001f1 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000001f4 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x21, 0x07, 0x00, 0x00, //0x000001f8 leaq $1825(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000001ff movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000202 movl %ecx, %esi + 0xff, 0xc1, //0x00000204 incl %ecx + 0x88, 0x54, 0x37, 0x01, //0x00000206 movb %dl, $1(%rdi,%rsi) + //0x0000020a LBB0_31 + 0x48, 0x8d, 0x15, 0x0f, 0x07, 0x00, 0x00, //0x0000020a leaq $1807(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000211 movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000214 movl %ecx, %esi + 0xff, 0xc1, //0x00000216 incl %ecx + 0x88, 0x54, 0x37, 0x01, //0x00000218 movb %dl, $1(%rdi,%rsi) + //0x0000021c LBB0_32 + 0x0f, 0xb7, 0xc0, //0x0000021c movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000021f orq $1, %rax + 0x48, 0x8d, 0x15, 0xf6, 0x06, 0x00, 0x00, //0x00000223 leaq $1782(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x0000022a movb (%rax,%rdx), %al + 0x89, 0xca, //0x0000022d movl %ecx, %edx + 0xff, 0xc1, //0x0000022f incl %ecx + 0x88, 0x44, 0x17, 0x01, //0x00000231 movb %al, $1(%rdi,%rdx) + 0xff, 0xc1, //0x00000235 incl %ecx + 0x89, 0xc8, //0x00000237 movl %ecx, %eax + 0x5d, //0x00000239 popq %rbp + 0xc3, //0x0000023a retq + //0x0000023b LBB0_12 + 0x31, 0xc9, //0x0000023b xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x0000023d cmpl $1000000, %esi + 0x0f, 0x82, 0x86, 0x00, 0x00, 0x00, //0x00000243 jb LBB0_14 + //0x00000249 LBB0_13 + 0x44, 0x89, 0xd0, //0x00000249 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000024c orq $1, %rax + 0x48, 0x8d, 0x35, 0xc9, 0x06, 0x00, 0x00, //0x00000250 leaq $1737(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000257 movb (%rax,%rsi), %al + 0x89, 0xce, //0x0000025a movl %ecx, %esi + 0xff, 0xc1, //0x0000025c incl %ecx + 0x88, 0x04, 0x37, //0x0000025e movb %al, (%rdi,%rsi) + //0x00000261 LBB0_15 + 0x48, 0x8d, 0x05, 0xb8, 0x06, 0x00, 0x00, //0x00000261 leaq $1720(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000268 movb (%r9,%rax), %al + 0x89, 0xce, //0x0000026c movl %ecx, %esi + 0xff, 0xc1, //0x0000026e incl %ecx + 0x88, 0x04, 0x37, //0x00000270 movb %al, (%rdi,%rsi) + //0x00000273 LBB0_16 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000273 movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000277 orq $1, %rax + 0x48, 0x8d, 0x35, 0x9e, 0x06, 0x00, 0x00, //0x0000027b leaq $1694(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000282 movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000285 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000287 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x0000028a movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x0000028e movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000292 movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000296 orq $1, %rax + 0x8a, 0x04, 0x30, //0x0000029a movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x0000029d movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x000002a1 movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x000002a5 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x000002a9 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000002ad orq $1, %rax + 0x8a, 0x04, 0x30, //0x000002b1 movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x000002b4 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x000002b7 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x000002bb movl %ecx, %eax + 0x5d, //0x000002bd popq %rbp + 0xc3, //0x000002be retq + //0x000002bf LBB0_30 + 0x31, 0xc9, //0x000002bf xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000002c1 cmpl $10, %esi + 0x0f, 0x83, 0x40, 0xff, 0xff, 0xff, //0x000002c4 jae LBB0_31 + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x000002ca jmp LBB0_32 + //0x000002cf LBB0_14 + 0x31, 0xc9, //0x000002cf xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000002d1 cmpl $100000, %esi + 0x0f, 0x83, 0x84, 0xff, 0xff, 0xff, //0x000002d7 jae LBB0_15 + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x000002dd jmp LBB0_16 + //0x000002e2 LBB0_33 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000002e2 cmpq $99999999, %rsi + 0x0f, 0x87, 0x3c, 0x02, 0x00, 0x00, //0x000002e9 ja LBB0_41 + 0x89, 0xf0, //0x000002ef movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000002f1 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x000002f6 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000002fa shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x000002fe imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000305 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000307 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000030a imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000311 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000315 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000319 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000031c shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000031f imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000325 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000328 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000032b subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000032d movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000331 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000334 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000337 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000033a imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000340 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000343 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000347 imull $100, %eax, %eax + 0x29, 0xc1, //0x0000034a subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x0000034c movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000350 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000353 cmpl $10000000, %esi + 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00000359 jb LBB0_36 + 0x48, 0x8d, 0x05, 0xba, 0x05, 0x00, 0x00, //0x0000035f leaq $1466(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000366 movb (%r10,%rax), %al + 0x88, 0x47, 0x01, //0x0000036a movb %al, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000036d movl $1, %ecx + 0xe9, 0x26, 0x01, 0x00, 0x00, //0x00000372 jmp LBB0_37 + //0x00000377 LBB0_17 + 0x48, 0xb9, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000377 movabsq $10000000000000000, %rcx + 0x48, 0x39, 0xce, //0x00000381 cmpq %rcx, %rsi + 0x0f, 0x83, 0xbc, 0x02, 0x00, 0x00, //0x00000384 jae LBB0_19 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000038a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000394 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000397 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x0000039a shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x0000039e imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000003a4 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x000003a6 vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x4e, 0xfc, 0xff, 0xff, //0x000003aa vmovdqu $-946(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x000003b2 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000003b6 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000003bb movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000003c0 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000003c5 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000003c9 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000003cd vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000003d1 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000003d6 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000003db vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0x48, 0xfc, 0xff, 0xff, //0x000003e0 vmovddup $-952(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000003e8 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x44, 0xfc, 0xff, 0xff, //0x000003ec vmovddup $-956(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000003f4 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x10, 0xfc, 0xff, 0xff, //0x000003f8 vmovdqu $-1008(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00000400 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x00000404 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x00000409 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x0000040d vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00000411 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00000415 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x0000041a vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x0000041e vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00000422 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00000426 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x0000042b vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00000430 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00000435 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00000439 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x0000043d vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00000441 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00000446 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x0000044a vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0xca, 0xfb, 0xff, 0xff, //0x0000044e vpaddb $-1078(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x00000456 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x0000045a vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x0000045e vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000462 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00000467 xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x0000046c bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x0000046f movl $16, %ecx + 0x29, 0xc1, //0x00000474 subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x00000476 shlq $4, %rax + 0x48, 0x8d, 0x15, 0x6f, 0x05, 0x00, 0x00, //0x0000047a leaq $1391(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x00000481 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00000487 vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x0000048b movl %ecx, %eax + 0x5d, //0x0000048d popq %rbp + 0xc3, //0x0000048e retq + //0x0000048f LBB0_36 + 0x31, 0xc9, //0x0000048f xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000491 cmpl $1000000, %esi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000497 jb LBB0_38 + //0x0000049d LBB0_37 + 0x44, 0x89, 0xd0, //0x0000049d movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004a0 orq $1, %rax + 0x48, 0x8d, 0x35, 0x75, 0x04, 0x00, 0x00, //0x000004a4 leaq $1141(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000004ab movb (%rax,%rsi), %al + 0x89, 0xce, //0x000004ae movl %ecx, %esi + 0xff, 0xc1, //0x000004b0 incl %ecx + 0x88, 0x44, 0x37, 0x01, //0x000004b2 movb %al, $1(%rdi,%rsi) + //0x000004b6 LBB0_39 + 0x48, 0x8d, 0x05, 0x63, 0x04, 0x00, 0x00, //0x000004b6 leaq $1123(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x000004bd movb (%r9,%rax), %al + 0x89, 0xce, //0x000004c1 movl %ecx, %esi + 0xff, 0xc1, //0x000004c3 incl %ecx + 0x88, 0x44, 0x37, 0x01, //0x000004c5 movb %al, $1(%rdi,%rsi) + //0x000004c9 LBB0_40 + 0x41, 0x0f, 0xb7, 0xc1, //0x000004c9 movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004cd orq $1, %rax + 0x48, 0x8d, 0x35, 0x48, 0x04, 0x00, 0x00, //0x000004d1 leaq $1096(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000004d8 movb (%rax,%rsi), %al + 0x89, 0xca, //0x000004db movl %ecx, %edx + 0x88, 0x44, 0x17, 0x01, //0x000004dd movb %al, $1(%rdi,%rdx) + 0x41, 0x8a, 0x04, 0x30, //0x000004e1 movb (%r8,%rsi), %al + 0x88, 0x44, 0x17, 0x02, //0x000004e5 movb %al, $2(%rdi,%rdx) + 0x41, 0x0f, 0xb7, 0xc0, //0x000004e9 movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004ed orq $1, %rax + 0x8a, 0x04, 0x30, //0x000004f1 movb (%rax,%rsi), %al + 0x88, 0x44, 0x17, 0x03, //0x000004f4 movb %al, $3(%rdi,%rdx) + 0x41, 0x8a, 0x04, 0x33, //0x000004f8 movb (%r11,%rsi), %al + 0x88, 0x44, 0x17, 0x04, //0x000004fc movb %al, $4(%rdi,%rdx) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000500 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000504 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000508 movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x0000050b addl $5, %ecx + 0x88, 0x44, 0x17, 0x05, //0x0000050e movb %al, $5(%rdi,%rdx) + 0xff, 0xc1, //0x00000512 incl %ecx + 0x89, 0xc8, //0x00000514 movl %ecx, %eax + 0x5d, //0x00000516 popq %rbp + 0xc3, //0x00000517 retq + //0x00000518 LBB0_38 + 0x31, 0xc9, //0x00000518 xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000051a cmpl $100000, %esi + 0x0f, 0x83, 0x90, 0xff, 0xff, 0xff, //0x00000520 jae LBB0_39 + 0xe9, 0x9e, 0xff, 0xff, 0xff, //0x00000526 jmp LBB0_40 + //0x0000052b LBB0_41 + 0x48, 0xb9, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000052b movabsq $10000000000000000, %rcx + 0x48, 0x39, 0xce, //0x00000535 cmpq %rcx, %rsi + 0x0f, 0x83, 0x71, 0x02, 0x00, 0x00, //0x00000538 jae LBB0_43 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000053e movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000548 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000054b mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x0000054e shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000552 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00000558 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000055a vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x9a, 0xfa, 0xff, 0xff, //0x0000055e vmovdqu $-1382(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00000566 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000056a vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x0000056f movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000574 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00000579 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x0000057d vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000581 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000585 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000058a vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x0000058f vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0x94, 0xfa, 0xff, 0xff, //0x00000594 vmovddup $-1388(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000059c vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x90, 0xfa, 0xff, 0xff, //0x000005a0 vmovddup $-1392(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000005a8 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x5c, 0xfa, 0xff, 0xff, //0x000005ac vmovdqu $-1444(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000005b4 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000005b8 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000005bd vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000005c1 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000005c5 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000005c9 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000005ce vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000005d2 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000005d6 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000005da vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000005df vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000005e4 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000005e9 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000005ed vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000005f1 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000005f5 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000005fa vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000005fe vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x16, 0xfa, 0xff, 0xff, //0x00000602 vpaddb $-1514(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x0000060a vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x0000060e vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000612 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000616 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000061b xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00000620 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000623 movl $16, %ecx + 0x29, 0xc1, //0x00000628 subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000062a shlq $4, %rax + 0x48, 0x8d, 0x15, 0xbb, 0x03, 0x00, 0x00, //0x0000062e leaq $955(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x00000635 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x47, 0x01, //0x0000063b vmovdqu %xmm0, $1(%rdi) + 0xff, 0xc1, //0x00000640 incl %ecx + 0x89, 0xc8, //0x00000642 movl %ecx, %eax + 0x5d, //0x00000644 popq %rbp + 0xc3, //0x00000645 retq + //0x00000646 LBB0_19 + 0x48, 0xba, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000646 movabsq $4153837486827862103, %rdx + 0x48, 0x89, 0xf0, //0x00000650 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00000653 mulq %rdx + 0x48, 0xc1, 0xea, 0x33, //0x00000656 shrq $51, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x0000065a imulq %rdx, %rcx + 0x48, 0x29, 0xce, //0x0000065e subq %rcx, %rsi + 0x83, 0xfa, 0x09, //0x00000661 cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000664 ja LBB0_21 + 0x80, 0xc2, 0x30, //0x0000066a addb $48, %dl + 0x88, 0x17, //0x0000066d movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000066f movl $1, %ecx + 0xe9, 0x5c, 0x00, 0x00, 0x00, //0x00000674 jmp LBB0_24 + //0x00000679 LBB0_21 + 0x83, 0xfa, 0x63, //0x00000679 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x0000067c ja LBB0_23 + 0x89, 0xd0, //0x00000682 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x95, 0x02, 0x00, 0x00, //0x00000684 leaq $661(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000068b movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000068e movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x00000692 movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x00000694 movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000697 movl $2, %ecx + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x0000069c jmp LBB0_24 + //0x000006a1 LBB0_23 + 0x89, 0xd0, //0x000006a1 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000006a3 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000006a6 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000006ac shrl $17, %eax + 0x8d, 0x48, 0x30, //0x000006af leal $48(%rax), %ecx + 0x88, 0x0f, //0x000006b2 movb %cl, (%rdi) + 0x6b, 0xc0, 0x64, //0x000006b4 imull $100, %eax, %eax + 0x29, 0xc2, //0x000006b7 subl %eax, %edx + 0x0f, 0xb7, 0xc2, //0x000006b9 movzwl %dx, %eax + 0x48, 0x8d, 0x0d, 0x5d, 0x02, 0x00, 0x00, //0x000006bc leaq $605(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000006c3 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000006c6 movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000006ca movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000006cd movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000006d0 movl $3, %ecx + //0x000006d5 LBB0_24 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000006d5 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000006df movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000006e2 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000006e5 shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x000006e9 vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x0b, 0xf9, 0xff, 0xff, //0x000006ed vmovdqu $-1781(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x000006f5 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000006f9 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000006fe movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000703 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00000708 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x0000070c vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000710 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000714 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000719 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x0000071e vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0x05, 0xf9, 0xff, 0xff, //0x00000723 vmovddup $-1787(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000072b vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x01, 0xf9, 0xff, 0xff, //0x0000072f vmovddup $-1791(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x00000737 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0xcd, 0xf8, 0xff, 0xff, //0x0000073b vmovdqu $-1843(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00000743 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x00000747 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x0000074c vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000750 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00000756 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x00000758 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x0000075c vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00000760 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00000765 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00000769 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x0000076d vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00000771 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00000776 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000077b vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00000780 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00000784 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00000788 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000078c vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00000791 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00000795 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x7f, 0xf8, 0xff, 0xff, //0x00000799 vpaddb $-1921(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x000007a1 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000007a3 vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x000007a8 orl $16, %ecx + 0x89, 0xc8, //0x000007ab movl %ecx, %eax + 0x5d, //0x000007ad popq %rbp + 0xc3, //0x000007ae retq + //0x000007af LBB0_43 + 0x48, 0xba, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000007af movabsq $4153837486827862103, %rdx + 0x48, 0x89, 0xf0, //0x000007b9 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000007bc mulq %rdx + 0x48, 0xc1, 0xea, 0x33, //0x000007bf shrq $51, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x000007c3 imulq %rdx, %rcx + 0x48, 0x29, 0xce, //0x000007c7 subq %rcx, %rsi + 0x83, 0xfa, 0x09, //0x000007ca cmpl $9, %edx + 0x0f, 0x87, 0x10, 0x00, 0x00, 0x00, //0x000007cd ja LBB0_45 + 0x80, 0xc2, 0x30, //0x000007d3 addb $48, %dl + 0x88, 0x57, 0x01, //0x000007d6 movb %dl, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000007d9 movl $1, %ecx + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x000007de jmp LBB0_48 + //0x000007e3 LBB0_45 + 0x83, 0xfa, 0x63, //0x000007e3 cmpl $99, %edx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x000007e6 ja LBB0_47 + 0x89, 0xd0, //0x000007ec movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x2b, 0x01, 0x00, 0x00, //0x000007ee leaq $299(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000007f5 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000007f8 movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000007fc movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000007ff movb %al, $2(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000802 movl $2, %ecx + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00000807 jmp LBB0_48 + //0x0000080c LBB0_47 + 0x89, 0xd0, //0x0000080c movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000080e shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000811 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000817 shrl $17, %eax + 0x8d, 0x48, 0x30, //0x0000081a leal $48(%rax), %ecx + 0x88, 0x4f, 0x01, //0x0000081d movb %cl, $1(%rdi) + 0x6b, 0xc0, 0x64, //0x00000820 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000823 subl %eax, %edx + 0x0f, 0xb7, 0xc2, //0x00000825 movzwl %dx, %eax + 0x48, 0x8d, 0x0d, 0xf1, 0x00, 0x00, 0x00, //0x00000828 leaq $241(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000082f movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00000832 movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x02, //0x00000836 movb %dl, $2(%rdi) + 0x88, 0x47, 0x03, //0x00000839 movb %al, $3(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000083c movl $3, %ecx + //0x00000841 LBB0_48 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000841 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x0000084b movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000084e mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00000851 shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00000855 vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x9f, 0xf7, 0xff, 0xff, //0x00000859 vmovdqu $-2145(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00000861 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00000865 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x0000086a movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000086f vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00000874 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00000878 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x0000087c vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000880 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000885 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x0000088a vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0x99, 0xf7, 0xff, 0xff, //0x0000088f vmovddup $-2151(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x00000897 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x95, 0xf7, 0xff, 0xff, //0x0000089b vmovddup $-2155(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000008a3 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x61, 0xf7, 0xff, 0xff, //0x000008a7 vmovdqu $-2207(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000008af vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000008b3 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000008b8 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000008bc imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000008c2 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000008c4 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000008c8 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000008cc vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000008d1 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000008d5 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000008d9 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000008dd vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000008e2 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000008e7 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000008ec vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000008f0 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000008f4 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000008f8 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000008fd vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00000901 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x13, 0xf7, 0xff, 0xff, //0x00000905 vpaddb $-2285(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x0000090d movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x44, 0x07, 0x01, //0x0000090f vmovdqu %xmm0, $1(%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00000915 orl $16, %ecx + 0xff, 0xc1, //0x00000918 incl %ecx + 0x89, 0xc8, //0x0000091a movl %ecx, %eax + 0x5d, //0x0000091c popq %rbp + 0xc3, //0x0000091d retq + 0x00, 0x00, //0x0000091e .p2align 4, 0x00 + //0x00000920 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000920 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000930 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000940 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000950 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000960 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000970 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000980 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000990 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x000009a0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000009b0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000009c0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000009d0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x000009e0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e8 .p2align 4, 0x00 + //0x000009f0 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x000009f0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x00000a00 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000a10 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000a20 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000a30 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a40 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a50 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a60 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a70 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/lspace.go b/vendor/github.com/bytedance/sonic/internal/native/avx/lspace.go new file mode 100644 index 000000000..2a48ae46a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/lspace.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + +var S_lspace uintptr + +//go:nosplit +func lspace(sp *byte, nb int, off int) (ret int) { + return F_lspace(rt.NoEscape(unsafe.Pointer(sp)), nb, off) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/lspace_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/lspace_subr.go new file mode 100644 index 000000000..52d528582 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/lspace_subr.go @@ -0,0 +1,37 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__lspace = 0 +) + +const ( + _stack__lspace = 8 +) + +const ( + _size__lspace = 113 +) + +var ( + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {112, 0}, + } +) + +var _cfunc_lspace = []loader.CFunc{ + {"_lspace_entry", 0, _entry__lspace, 0, nil}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/lspace_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/lspace_text_amd64.go new file mode 100644 index 000000000..bf7751e21 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/lspace_text_amd64.go @@ -0,0 +1,44 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_lspace = []byte{ + // .p2align 4, 0x90 + // _lspace + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x48, 0x39, 0xd6, //0x00000004 cmpq %rdx, %rsi + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000007 je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x0000000d leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000011 leaq $1(%rdx,%rdi), %rax + 0x48, 0x29, 0xf2, //0x00000016 subq %rsi, %rdx + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000019 movabsq $4294977024, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000023 .p2align 4, 0x90 + //0x00000030 LBB0_3 + 0x0f, 0xbe, 0x48, 0xff, //0x00000030 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000034 cmpl $32, %ecx + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000037 ja LBB0_5 + 0x48, 0x0f, 0xa3, 0xce, //0x0000003d btq %rcx, %rsi + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000041 jae LBB0_5 + 0x48, 0xff, 0xc0, //0x00000047 incq %rax + 0x48, 0xff, 0xc2, //0x0000004a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000004d jne LBB0_3 + 0x49, 0x29, 0xf8, //0x00000053 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000056 movq %r8, %rax + 0x5d, //0x00000059 popq %rbp + 0xc3, //0x0000005a retq + //0x0000005b LBB0_1 + 0x48, 0x01, 0xfa, //0x0000005b addq %rdi, %rdx + 0x49, 0x89, 0xd0, //0x0000005e movq %rdx, %r8 + 0x49, 0x29, 0xf8, //0x00000061 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000064 movq %r8, %rax + 0x5d, //0x00000067 popq %rbp + 0xc3, //0x00000068 retq + //0x00000069 LBB0_5 + 0x48, 0xf7, 0xd7, //0x00000069 notq %rdi + 0x48, 0x01, 0xf8, //0x0000006c addq %rdi, %rax + 0x5d, //0x0000006f popq %rbp + 0xc3, //0x00000070 retq +} + 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 deleted file mode 100644 index 3b6573fbe..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_amd64.go +++ /dev/null @@ -1,188 +0,0 @@ -// +build amd64 - - -// Code generated by Makefile, DO NOT EDIT. - -// 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 - -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) -) - -//go:nosplit -func i64toa(out *byte, val int64) (ret int) { - return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func u64toa(out *byte, val uint64) (ret int) { - return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f64toa(out *byte, val float64) (ret int) { - return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f32toa(out *byte, val float32) (ret int) { - return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { - return __lspace(rt.NoEscape(sp), nb, off) -} - -//go:nosplit -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -func skip_number(s *string, p *int) (ret int) { - return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) -} - -//go:nosplit -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 -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 -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 -func validate_utf8_fast(s *string) (ret int) { - return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) -} - diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_export.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_export.go new file mode 100644 index 000000000..8b36a6657 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_export.go @@ -0,0 +1,47 @@ +/* + * 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 + +import ( + `github.com/bytedance/sonic/loader` +) + + +func Use() { + loader.WrapGoC(_text_f64toa, _cfunc_f64toa, []loader.GoC{{"_f64toa", &S_f64toa, &F_f64toa}}, "avx", "avx/f64toa.c") + loader.WrapGoC(_text_f32toa, _cfunc_f32toa, []loader.GoC{{"_f32toa", &S_f32toa, &F_f32toa}}, "avx", "avx/f32toa.c") + loader.WrapGoC(_text_get_by_path, _cfunc_get_by_path, []loader.GoC{{"_get_by_path", &S_get_by_path, &F_get_by_path}}, "avx", "avx/get_by_path.c") + loader.WrapGoC(_text_html_escape, _cfunc_html_escape, []loader.GoC{{"_html_escape", &S_html_escape, &F_html_escape}}, "avx", "avx/html_escape.c") + loader.WrapGoC(_text_i64toa, _cfunc_i64toa, []loader.GoC{{"_i64toa", &S_i64toa, &F_i64toa}}, "avx", "avx/i64toa.c") + loader.WrapGoC(_text_lspace, _cfunc_lspace, []loader.GoC{{"_lspace", &S_lspace, &F_lspace}}, "avx", "avx/lspace.c") + loader.WrapGoC(_text_quote, _cfunc_quote, []loader.GoC{{"_quote", &S_quote, &F_quote}}, "avx", "avx/quote.c") + loader.WrapGoC(_text_skip_array, _cfunc_skip_array, []loader.GoC{{"_skip_array", &S_skip_array, &F_skip_array}}, "avx", "avx/skip_array.c") + loader.WrapGoC(_text_skip_number, _cfunc_skip_number, []loader.GoC{{"_skip_number", &S_skip_number, &F_skip_number}}, "avx", "avx/skip_number.c") + loader.WrapGoC(_text_skip_one, _cfunc_skip_one, []loader.GoC{{"_skip_one", &S_skip_one, &F_skip_one}}, "avx", "avx/skip_one.c") + loader.WrapGoC(_text_skip_object, _cfunc_skip_object, []loader.GoC{{"_skip_object", &S_skip_object, &F_skip_object}}, "avx", "avx/skip_object.c") + loader.WrapGoC(_text_skip_one_fast, _cfunc_skip_one_fast, []loader.GoC{{"_skip_one_fast", &S_skip_one_fast, &F_skip_one_fast}}, "avx", "avx/skip_one_fast.c") + loader.WrapGoC(_text_u64toa, _cfunc_u64toa, []loader.GoC{{"_u64toa", &S_u64toa, &F_u64toa}}, "avx", "avx/u64toa.c") + loader.WrapGoC(_text_unquote, _cfunc_unquote, []loader.GoC{{"_unquote", &S_unquote, &F_unquote}}, "avx", "avx/unquote.c") + loader.WrapGoC(_text_validate_one, _cfunc_validate_one, []loader.GoC{{"_validate_one", &S_validate_one, &F_validate_one}}, "avx", "avx/validate_one.c") + loader.WrapGoC(_text_validate_utf8, _cfunc_validate_utf8, []loader.GoC{{"_validate_utf8", &S_validate_utf8, &F_validate_utf8}}, "avx", "avx/validate_utf8.c") + loader.WrapGoC(_text_validate_utf8_fast, _cfunc_validate_utf8_fast, []loader.GoC{{"_validate_utf8_fast", &S_validate_utf8_fast, &F_validate_utf8_fast}}, "avx", "avx/validate_utf8_fast.c") + loader.WrapGoC(_text_vnumber, _cfunc_vnumber, []loader.GoC{{"_vnumber", &S_vnumber, &F_vnumber}}, "avx", "avx/vnumber.c") + loader.WrapGoC(_text_vsigned, _cfunc_vsigned, []loader.GoC{{"_vsigned", &S_vsigned, &F_vsigned}}, "avx", "avx/vsigned.c") + loader.WrapGoC(_text_vunsigned, _cfunc_vunsigned, []loader.GoC{{"_vunsigned", &S_vunsigned, &F_vunsigned}}, "avx", "avx/vunsigned.c") + loader.WrapGoC(_text_vstring, _cfunc_vstring, []loader.GoC{{"_vstring", &S_vstring, &F_vstring}}, "avx", "avx/vstring.c") + loader.WrapGoC(_text_value, _cfunc_value, []loader.GoC{{"_value", &S_value, &F_value}}, "avx", "avx/value.c") +} 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 deleted file mode 100644 index 57f0e2f1c..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go +++ /dev/null @@ -1,607 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -package avx - -import ( - `github.com/bytedance/sonic/loader` -) - -const ( - _entry__f32toa = 31168 - _entry__f64toa = 192 - _entry__format_significand = 35344 - _entry__format_integer = 3040 - _entry__get_by_path = 25696 - _entry__fsm_exec = 17920 - _entry__advance_string = 14320 - _entry__advance_string_default = 36736 - _entry__do_skip_number = 20528 - _entry__skip_one_fast = 22176 - _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 = 21952 - _entry__unquote = 6576 - _entry__validate_one = 22000 - _entry__validate_utf8 = 29904 - _entry__validate_utf8_fast = 30576 - _entry__value = 12320 - _entry__vnumber = 15648 - _entry__atof_eisel_lemire64 = 10160 - _entry__atof_native = 11712 - _entry__decimal_to_f64 = 10528 - _entry__right_shift = 36304 - _entry__left_shift = 35808 - _entry__vsigned = 17200 - _entry__vstring = 14144 - _entry__vunsigned = 17520 -) - -const ( - _stack__f32toa = 48 - _stack__f64toa = 80 - _stack__format_significand = 24 - _stack__format_integer = 16 - _stack__get_by_path = 280 - _stack__fsm_exec = 168 - _stack__advance_string = 64 - _stack__advance_string_default = 64 - _stack__do_skip_number = 48 - _stack__skip_one_fast = 176 - _stack__html_escape = 72 - _stack__i64toa = 16 - _stack__u64toa = 8 - _stack__lspace = 8 - _stack__quote = 56 - _stack__skip_array = 176 - _stack__skip_number = 104 - _stack__skip_object = 176 - _stack__skip_one = 176 - _stack__unquote = 88 - _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 = 120 - _stack__vunsigned = 8 -) - -const ( - _size__f32toa = 3392 - _size__f64toa = 2848 - _size__format_significand = 464 - _size__format_integer = 432 - _size__get_by_path = 4208 - _size__fsm_exec = 1692 - _size__advance_string = 1280 - _size__advance_string_default = 944 - _size__do_skip_number = 924 - _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 = 160 - _size__skip_object = 48 - _size__skip_one = 48 - _size__unquote = 2272 - _size__validate_one = 48 - _size__validate_utf8 = 672 - _size__validate_utf8_fast = 560 - _size__value = 1308 - _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__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__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__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}, - {12, 40}, - {13, 48}, - {107, 56}, - {111, 48}, - {112, 40}, - {114, 32}, - {116, 24}, - {118, 16}, - {120, 8}, - {121, 0}, - {145, 56}, - } - _pcsp__skip_object = [][2]uint32{ - {1, 0}, - {28, 8}, - {34, 0}, - } - _pcsp__skip_one = [][2]uint32{ - {1, 0}, - {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}, - {1308, 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}, - {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, - {"_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}, - {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, - {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, - {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, - {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, - {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, - {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, - {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, - {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, - {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, - {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, - {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, - {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, - {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, - {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, - {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, - {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, - {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, - {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, - {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, - {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, - {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, - {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, - {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, - {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go deleted file mode 100644 index e42d5a6ff..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go +++ /dev/null @@ -1,14088 +0,0 @@ -// +build amd64 -// Code generated by asm2asm, DO NOT EDIT. - -package avx - -var Text__native_entry__ = []byte{ - 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) - 0xc3, //0x0000000c retq - 0x90, 0x90, 0x90, //0x0000000d .p2align 4, 0x90 - //0x00000010 _lspace - 0x55, //0x00000010 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp - 0x48, 0x39, 0xd6, //0x00000014 cmpq %rdx, %rsi - 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000017 je LBB0_1 - 0x4c, 0x8d, 0x04, 0x37, //0x0000001d leaq (%rdi,%rsi), %r8 - 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000021 leaq $1(%rdx,%rdi), %rax - 0x48, 0x29, 0xf2, //0x00000026 subq %rsi, %rdx - 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000029 movabsq $4294977024, %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000033 .p2align 4, 0x90 - //0x00000040 LBB0_3 - 0x0f, 0xbe, 0x48, 0xff, //0x00000040 movsbl $-1(%rax), %ecx - 0x83, 0xf9, 0x20, //0x00000044 cmpl $32, %ecx - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000047 ja LBB0_5 - 0x48, 0x0f, 0xa3, 0xce, //0x0000004d btq %rcx, %rsi - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000051 jae LBB0_5 - 0x48, 0xff, 0xc0, //0x00000057 incq %rax - 0x48, 0xff, 0xc2, //0x0000005a incq %rdx - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000005d jne LBB0_3 - 0x49, 0x29, 0xf8, //0x00000063 subq %rdi, %r8 - 0x4c, 0x89, 0xc0, //0x00000066 movq %r8, %rax - 0x5d, //0x00000069 popq %rbp - 0xc3, //0x0000006a retq - //0x0000006b LBB0_1 - 0x48, 0x01, 0xfa, //0x0000006b addq %rdi, %rdx - 0x49, 0x89, 0xd0, //0x0000006e movq %rdx, %r8 - 0x49, 0x29, 0xf8, //0x00000071 subq %rdi, %r8 - 0x4c, 0x89, 0xc0, //0x00000074 movq %r8, %rax - 0x5d, //0x00000077 popq %rbp - 0xc3, //0x00000078 retq - //0x00000079 LBB0_5 - 0x48, 0xf7, 0xd7, //0x00000079 notq %rdi - 0x48, 0x01, 0xf8, //0x0000007c addq %rdi, %rax - 0x5d, //0x0000007f popq %rbp - 0xc3, //0x00000080 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000081 .p2align 5, 0x00 - //0x000000a0 LCPI1_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000b0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000000c0 .p2align 4, 0x90 - //0x000000c0 _f64toa - 0x55, //0x000000c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000000c1 movq %rsp, %rbp - 0x41, 0x57, //0x000000c4 pushq %r15 - 0x41, 0x56, //0x000000c6 pushq %r14 - 0x41, 0x55, //0x000000c8 pushq %r13 - 0x41, 0x54, //0x000000ca pushq %r12 - 0x53, //0x000000cc pushq %rbx - 0x50, //0x000000cd pushq %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x000000ce vmovq %xmm0, %rdx - 0x48, 0x89, 0xd0, //0x000000d3 movq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000000d6 shrq $52, %rax - 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000da andl $2047, %eax - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000df cmpl $2047, %eax - 0x0f, 0x84, 0xcc, 0x0a, 0x00, 0x00, //0x000000e4 je LBB1_114 - 0x49, 0x89, 0xfe, //0x000000ea movq %rdi, %r14 - 0xc6, 0x07, 0x2d, //0x000000ed movb $45, (%rdi) - 0x49, 0x89, 0xd4, //0x000000f0 movq %rdx, %r12 - 0x49, 0xc1, 0xec, 0x3f, //0x000000f3 shrq $63, %r12 - 0x4e, 0x8d, 0x3c, 0x27, //0x000000f7 leaq (%rdi,%r12), %r15 - 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000fb leaq (,%rdx,2), %rcx - 0x48, 0x85, 0xc9, //0x00000103 testq %rcx, %rcx - 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x00000106 je LBB1_19 - 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000010c movabsq $4503599627370495, %rdi - 0x48, 0x21, 0xfa, //0x00000116 andq %rdi, %rdx - 0x85, 0xc0, //0x00000119 testl %eax, %eax - 0x0f, 0x84, 0x9c, 0x0a, 0x00, 0x00, //0x0000011b je LBB1_115 - 0x48, 0xff, 0xc7, //0x00000121 incq %rdi - 0x48, 0x09, 0xd7, //0x00000124 orq %rdx, %rdi - 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x00000127 leal $-1075(%rax), %ebx - 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000012d leal $-1023(%rax), %ecx - 0x83, 0xf9, 0x34, //0x00000133 cmpl $52, %ecx - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000136 ja LBB1_5 - 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000013c movl $1075, %ecx - 0x29, 0xc1, //0x00000141 subl %eax, %ecx - 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000143 movq $-1, %rsi - 0x48, 0xd3, 0xe6, //0x0000014a shlq %cl, %rsi - 0x48, 0xf7, 0xd6, //0x0000014d notq %rsi - 0x48, 0x85, 0xf7, //0x00000150 testq %rsi, %rdi - 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x00000153 je LBB1_43 - //0x00000159 LBB1_5 - 0x48, 0x85, 0xd2, //0x00000159 testq %rdx, %rdx - 0x0f, 0x94, 0xc1, //0x0000015c sete %cl - 0x83, 0xf8, 0x01, //0x0000015f cmpl $1, %eax - 0x0f, 0x97, 0xc0, //0x00000162 seta %al - 0x20, 0xc8, //0x00000165 andb %cl, %al - 0x0f, 0xb6, 0xc0, //0x00000167 movzbl %al, %eax - 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x0000016a leaq $-2(%rax,%rdi,4), %rsi - 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x0000016f imull $1262611, %ebx, %r9d - 0x31, 0xc9, //0x00000176 xorl %ecx, %ecx - 0x84, 0xc0, //0x00000178 testb %al, %al - 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x0000017a movl $524031, %eax - 0x0f, 0x44, 0xc1, //0x0000017f cmovel %ecx, %eax - 0x41, 0x29, 0xc1, //0x00000182 subl %eax, %r9d - 0x41, 0xc1, 0xf9, 0x16, //0x00000185 sarl $22, %r9d - 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000189 imull $-1741647, %r9d, %ecx - 0xc1, 0xe9, 0x13, //0x00000190 shrl $19, %ecx - 0x01, 0xd9, //0x00000193 addl %ebx, %ecx - 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000195 movl $292, %eax - 0x44, 0x29, 0xc8, //0x0000019a subl %r9d, %eax - 0x48, 0x98, //0x0000019d cltq - 0x48, 0xc1, 0xe0, 0x04, //0x0000019f shlq $4, %rax - 0x48, 0x8d, 0x15, 0x16, 0xbe, 0x00, 0x00, //0x000001a3 leaq $48662(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ - 0x4c, 0x8b, 0x1c, 0x10, //0x000001aa movq (%rax,%rdx), %r11 - 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x000001ae movq $8(%rax,%rdx), %r13 - 0xfe, 0xc1, //0x000001b3 incb %cl - 0x48, 0xd3, 0xe6, //0x000001b5 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x000001b8 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x000001bb mulq %r13 - 0x48, 0x89, 0xd3, //0x000001be movq %rdx, %rbx - 0x48, 0x89, 0xf0, //0x000001c1 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x000001c4 mulq %r11 - 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x000001c7 leaq (,%rdi,4), %rsi - 0x48, 0x01, 0xd8, //0x000001cf addq %rbx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x000001d2 adcq $0, %rdx - 0x31, 0xdb, //0x000001d6 xorl %ebx, %ebx - 0x48, 0x83, 0xf8, 0x01, //0x000001d8 cmpq $1, %rax - 0x0f, 0x97, 0xc3, //0x000001dc seta %bl - 0x48, 0x09, 0xd3, //0x000001df orq %rdx, %rbx - 0x48, 0xd3, 0xe6, //0x000001e2 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x000001e5 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x000001e8 mulq %r13 - 0x49, 0x89, 0xd2, //0x000001eb movq %rdx, %r10 - 0x48, 0x89, 0xf0, //0x000001ee movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x000001f1 mulq %r11 - 0x49, 0x89, 0xd0, //0x000001f4 movq %rdx, %r8 - 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001f7 leaq $2(,%rdi,4), %rsi - 0x4c, 0x01, 0xd0, //0x000001ff addq %r10, %rax - 0x49, 0x83, 0xd0, 0x00, //0x00000202 adcq $0, %r8 - 0x45, 0x31, 0xd2, //0x00000206 xorl %r10d, %r10d - 0x48, 0x83, 0xf8, 0x01, //0x00000209 cmpq $1, %rax - 0x41, 0x0f, 0x97, 0xc2, //0x0000020d seta %r10b - 0x4d, 0x09, 0xc2, //0x00000211 orq %r8, %r10 - 0x48, 0xd3, 0xe6, //0x00000214 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x00000217 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x0000021a mulq %r13 - 0x48, 0x89, 0xd1, //0x0000021d movq %rdx, %rcx - 0x48, 0x89, 0xf0, //0x00000220 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00000223 mulq %r11 - 0x48, 0x01, 0xc8, //0x00000226 addq %rcx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x00000229 adcq $0, %rdx - 0x31, 0xc9, //0x0000022d xorl %ecx, %ecx - 0x48, 0x83, 0xf8, 0x01, //0x0000022f cmpq $1, %rax - 0x0f, 0x97, 0xc1, //0x00000233 seta %cl - 0x48, 0x09, 0xd1, //0x00000236 orq %rdx, %rcx - 0x83, 0xe7, 0x01, //0x00000239 andl $1, %edi - 0x48, 0x01, 0xfb, //0x0000023c addq %rdi, %rbx - 0x48, 0x29, 0xf9, //0x0000023f subq %rdi, %rcx - 0x49, 0x83, 0xfa, 0x28, //0x00000242 cmpq $40, %r10 - 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x00000246 jb LBB1_17 - 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000024c movabsq $-3689348814741910323, %rdx - 0x4c, 0x89, 0xc0, //0x00000256 movq %r8, %rax - 0x48, 0xf7, 0xe2, //0x00000259 mulq %rdx - 0x48, 0x89, 0xd7, //0x0000025c movq %rdx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x0000025f shrq $5, %rdi - 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x00000263 leaq (,%rdi,8), %rax - 0x48, 0x8d, 0x14, 0x80, //0x0000026b leaq (%rax,%rax,4), %rdx - 0x48, 0x39, 0xd3, //0x0000026f cmpq %rdx, %rbx - 0x40, 0x0f, 0x96, 0xc6, //0x00000272 setbe %sil - 0x48, 0x8d, 0x44, 0x80, 0x28, //0x00000276 leaq $40(%rax,%rax,4), %rax - 0x48, 0x39, 0xc8, //0x0000027b cmpq %rcx, %rax - 0x0f, 0x96, 0xc2, //0x0000027e setbe %dl - 0x40, 0x38, 0xd6, //0x00000281 cmpb %dl, %sil - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000284 je LBB1_17 - 0x31, 0xd2, //0x0000028a xorl %edx, %edx - 0x48, 0x39, 0xc8, //0x0000028c cmpq %rcx, %rax - 0x0f, 0x96, 0xc2, //0x0000028f setbe %dl - 0x48, 0x01, 0xd7, //0x00000292 addq %rdx, %rdi - 0x41, 0xff, 0xc1, //0x00000295 incl %r9d - 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000298 movabsq $8589934464, %rbx - 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x000002a2 leaq $1410065535(%rbx), %rax - 0x48, 0x39, 0xc7, //0x000002a9 cmpq %rax, %rdi - 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x000002ac ja LBB1_23 - //0x000002b2 LBB1_8 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000002b2 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x000002b7 cmpq $10, %rdi - 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x000002bb jb LBB1_30 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000002c1 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x000002c6 cmpq $100, %rdi - 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x000002ca jb LBB1_30 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000002d0 movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000002d5 cmpq $1000, %rdi - 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x000002dc jb LBB1_30 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000002e2 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000002e7 cmpq $10000, %rdi - 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000002ee jb LBB1_30 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000002f4 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000002f9 cmpq $100000, %rdi - 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x00000300 jb LBB1_30 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000306 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000030b cmpq $1000000, %rdi - 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x00000312 jb LBB1_30 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000318 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000031d cmpq $10000000, %rdi - 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x00000324 jb LBB1_30 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000032a movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000032f cmpq $100000000, %rdi - 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x00000336 jb LBB1_30 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x0000033c cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000343 movl $10, %edx - 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000348 jmp LBB1_29 - //0x0000034d LBB1_17 - 0x4d, 0x89, 0xc3, //0x0000034d movq %r8, %r11 - 0x49, 0xc1, 0xeb, 0x02, //0x00000350 shrq $2, %r11 - 0x4c, 0x89, 0xc2, //0x00000354 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfc, //0x00000357 andq $-4, %rdx - 0x48, 0x39, 0xd3, //0x0000035b cmpq %rdx, %rbx - 0x0f, 0x96, 0xc3, //0x0000035e setbe %bl - 0x48, 0x8d, 0x72, 0x04, //0x00000361 leaq $4(%rdx), %rsi - 0x48, 0x39, 0xce, //0x00000365 cmpq %rcx, %rsi - 0x0f, 0x96, 0xc0, //0x00000368 setbe %al - 0x38, 0xc3, //0x0000036b cmpb %al, %bl - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000036d je LBB1_20 - 0x31, 0xff, //0x00000373 xorl %edi, %edi - 0x48, 0x39, 0xce, //0x00000375 cmpq %rcx, %rsi - 0x40, 0x0f, 0x96, 0xc7, //0x00000378 setbe %dil - 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000037c jmp LBB1_22 - //0x00000381 LBB1_19 - 0x41, 0xc6, 0x07, 0x30, //0x00000381 movb $48, (%r15) - 0x45, 0x29, 0xf7, //0x00000385 subl %r14d, %r15d - 0x41, 0xff, 0xc7, //0x00000388 incl %r15d - 0x44, 0x89, 0xfb, //0x0000038b movl %r15d, %ebx - 0xe9, 0x0f, 0x08, 0x00, 0x00, //0x0000038e jmp LBB1_113 - //0x00000393 LBB1_20 - 0x48, 0x83, 0xca, 0x02, //0x00000393 orq $2, %rdx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000397 movl $1, %edi - 0x49, 0x39, 0xd2, //0x0000039c cmpq %rdx, %r10 - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000039f ja LBB1_22 - 0x0f, 0x94, 0xc0, //0x000003a5 sete %al - 0x41, 0xc0, 0xe8, 0x02, //0x000003a8 shrb $2, %r8b - 0x41, 0x20, 0xc0, //0x000003ac andb %al, %r8b - 0x41, 0x0f, 0xb6, 0xf8, //0x000003af movzbl %r8b, %edi - //0x000003b3 LBB1_22 - 0x4c, 0x01, 0xdf, //0x000003b3 addq %r11, %rdi - 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000003b6 movabsq $8589934464, %rbx - 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x000003c0 leaq $1410065535(%rbx), %rax - 0x48, 0x39, 0xc7, //0x000003c7 cmpq %rax, %rdi - 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x000003ca jbe LBB1_8 - //0x000003d0 LBB1_23 - 0x48, 0x89, 0xf8, //0x000003d0 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x000003d3 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003d7 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003dc cmpq $48828125, %rax - 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x000003e2 jb LBB1_30 - 0x48, 0x89, 0xf8, //0x000003e8 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x000003eb shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003ef movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003f4 cmpq $244140625, %rax - 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000003fa jb LBB1_30 - 0x48, 0x89, 0xf8, //0x00000400 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000403 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000407 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000040c cmpq $1220703125, %rax - 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000412 jb LBB1_30 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000418 movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000041d movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000427 cmpq %rax, %rdi - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x0000042a jb LBB1_30 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000430 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000435 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000043f cmpq %rax, %rdi - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000442 jb LBB1_30 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000448 movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000452 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000455 movl $17, %edx - //0x0000045a LBB1_29 - 0x83, 0xda, 0x00, //0x0000045a sbbl $0, %edx - //0x0000045d LBB1_30 - 0x46, 0x8d, 0x2c, 0x0a, //0x0000045d leal (%rdx,%r9), %r13d - 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x00000461 leal $5(%rdx,%r9), %eax - 0x83, 0xf8, 0x1b, //0x00000466 cmpl $27, %eax - 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x00000469 jb LBB1_38 - 0x4d, 0x8d, 0x67, 0x01, //0x0000046f leaq $1(%r15), %r12 - 0x4c, 0x89, 0xe6, //0x00000473 movq %r12, %rsi - 0xe8, 0x95, 0x85, 0x00, 0x00, //0x00000476 callq _format_significand - 0x48, 0x89, 0xc3, //0x0000047b movq %rax, %rbx - 0x90, 0x90, //0x0000047e .p2align 4, 0x90 - //0x00000480 LBB1_32 - 0x80, 0x7b, 0xff, 0x30, //0x00000480 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00000484 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000488 je LBB1_32 - 0x41, 0x8a, 0x47, 0x01, //0x0000048e movb $1(%r15), %al - 0x41, 0x88, 0x07, //0x00000492 movb %al, (%r15) - 0x48, 0x8d, 0x43, 0x01, //0x00000495 leaq $1(%rbx), %rax - 0x48, 0x89, 0xc1, //0x00000499 movq %rax, %rcx - 0x4c, 0x29, 0xe1, //0x0000049c subq %r12, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000049f cmpq $2, %rcx - 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x000004a3 jl LBB1_35 - 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x000004a9 movb $46, (%r12) - 0x48, 0x89, 0xc3, //0x000004ae movq %rax, %rbx - //0x000004b1 LBB1_35 - 0xc6, 0x03, 0x65, //0x000004b1 movb $101, (%rbx) - 0x45, 0x85, 0xed, //0x000004b4 testl %r13d, %r13d - 0x0f, 0x8e, 0x5a, 0x01, 0x00, 0x00, //0x000004b7 jle LBB1_51 - 0x41, 0xff, 0xcd, //0x000004bd decl %r13d - 0xc6, 0x43, 0x01, 0x2b, //0x000004c0 movb $43, $1(%rbx) - 0x44, 0x89, 0xe8, //0x000004c4 movl %r13d, %eax - 0x83, 0xf8, 0x64, //0x000004c7 cmpl $100, %eax - 0x0f, 0x8c, 0x5c, 0x01, 0x00, 0x00, //0x000004ca jl LBB1_52 - //0x000004d0 LBB1_37 - 0x89, 0xc1, //0x000004d0 movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004d2 movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x000004d7 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x000004db shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x000004df leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x000004e2 leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x000004e5 subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x02, 0xba, 0x00, 0x00, //0x000004e7 leaq $47618(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x000004ee movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x000004f2 movw %cx, $2(%rbx) - 0x0c, 0x30, //0x000004f6 orb $48, %al - 0x88, 0x43, 0x04, //0x000004f8 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x000004fb addq $5, %rbx - 0xe9, 0x9b, 0x06, 0x00, 0x00, //0x000004ff jmp LBB1_112 - //0x00000504 LBB1_38 - 0x45, 0x85, 0xc9, //0x00000504 testl %r9d, %r9d - 0x0f, 0x88, 0x42, 0x01, 0x00, 0x00, //0x00000507 js LBB1_54 - 0x4d, 0x63, 0xed, //0x0000050d movslq %r13d, %r13 - 0x4b, 0x8d, 0x1c, 0x2f, //0x00000510 leaq (%r15,%r13), %rbx - 0x4c, 0x89, 0xfe, //0x00000514 movq %r15, %rsi - 0xe8, 0xc4, 0x06, 0x00, 0x00, //0x00000517 callq _format_integer - 0x48, 0x39, 0xd8, //0x0000051c cmpq %rbx, %rax - 0x0f, 0x83, 0x7a, 0x06, 0x00, 0x00, //0x0000051f jae LBB1_112 - 0x4d, 0x01, 0xec, //0x00000525 addq %r13, %r12 - 0x49, 0x29, 0xc4, //0x00000528 subq %rax, %r12 - 0x4d, 0x01, 0xf4, //0x0000052b addq %r14, %r12 - 0x49, 0x81, 0xfc, 0x80, 0x00, 0x00, 0x00, //0x0000052e cmpq $128, %r12 - 0x0f, 0x82, 0x15, 0x03, 0x00, 0x00, //0x00000535 jb LBB1_76 - 0x4c, 0x89, 0xe1, //0x0000053b movq %r12, %rcx - 0x48, 0x83, 0xe1, 0x80, //0x0000053e andq $-128, %rcx - 0x48, 0x8d, 0x79, 0x80, //0x00000542 leaq $-128(%rcx), %rdi - 0x48, 0x89, 0xfe, //0x00000546 movq %rdi, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x00000549 shrq $7, %rsi - 0x48, 0xff, 0xc6, //0x0000054d incq %rsi - 0x89, 0xf2, //0x00000550 movl %esi, %edx - 0x83, 0xe2, 0x03, //0x00000552 andl $3, %edx - 0x48, 0x81, 0xff, 0x80, 0x01, 0x00, 0x00, //0x00000555 cmpq $384, %rdi - 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x0000055c jae LBB1_69 - 0x31, 0xff, //0x00000562 xorl %edi, %edi - 0xe9, 0x9b, 0x02, 0x00, 0x00, //0x00000564 jmp LBB1_71 - //0x00000569 LBB1_43 - 0x48, 0xd3, 0xef, //0x00000569 shrq %cl, %rdi - 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000056c movabsq $8589934464, %rax - 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000576 addq $1410065535, %rax - 0x48, 0x39, 0xc7, //0x0000057c cmpq %rax, %rdi - 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x0000057f jbe LBB1_60 - 0x48, 0x89, 0xf8, //0x00000585 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000588 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000058c movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000591 cmpq $48828125, %rax - 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000597 jb LBB1_68 - 0x48, 0x89, 0xf8, //0x0000059d movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x000005a0 shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000005a4 movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000005a9 cmpq $244140625, %rax - 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x000005af jb LBB1_68 - 0x48, 0x89, 0xf8, //0x000005b5 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x000005b8 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000005bc movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000005c1 cmpq $1220703125, %rax - 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x000005c7 jb LBB1_68 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005cd movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005d2 movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005dc cmpq %rax, %rdi - 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x000005df jb LBB1_68 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005e5 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005ea movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005f4 cmpq %rax, %rdi - 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x000005f7 jb LBB1_68 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005fd movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000607 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x0000060a movl $17, %edx - //0x0000060f LBB1_50 - 0x83, 0xda, 0x00, //0x0000060f sbbl $0, %edx - 0xe9, 0x33, 0x01, 0x00, 0x00, //0x00000612 jmp LBB1_68 - //0x00000617 LBB1_51 - 0xc6, 0x43, 0x01, 0x2d, //0x00000617 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000061b movl $1, %eax - 0x44, 0x29, 0xe8, //0x00000620 subl %r13d, %eax - 0x83, 0xf8, 0x64, //0x00000623 cmpl $100, %eax - 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x00000626 jge LBB1_37 - //0x0000062c LBB1_52 - 0x83, 0xf8, 0x0a, //0x0000062c cmpl $10, %eax - 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x0000062f jl LBB1_59 - 0x48, 0x98, //0x00000635 cltq - 0x48, 0x8d, 0x0d, 0xb2, 0xb8, 0x00, 0x00, //0x00000637 leaq $47282(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x0000063e movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x00000642 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00000646 addq $4, %rbx - 0xe9, 0x50, 0x05, 0x00, 0x00, //0x0000064a jmp LBB1_112 - //0x0000064f LBB1_54 - 0x45, 0x85, 0xed, //0x0000064f testl %r13d, %r13d - 0x0f, 0x8f, 0x19, 0x03, 0x00, 0x00, //0x00000652 jg LBB1_85 - 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000658 movw $11824, (%r15) - 0x49, 0x83, 0xc7, 0x02, //0x0000065e addq $2, %r15 - 0x45, 0x85, 0xed, //0x00000662 testl %r13d, %r13d - 0x0f, 0x89, 0x06, 0x03, 0x00, 0x00, //0x00000665 jns LBB1_85 - 0x31, 0xc0, //0x0000066b xorl %eax, %eax - 0x41, 0x83, 0xfd, 0x80, //0x0000066d cmpl $-128, %r13d - 0x0f, 0x87, 0xe1, 0x02, 0x00, 0x00, //0x00000671 ja LBB1_83 - 0x45, 0x89, 0xe8, //0x00000677 movl %r13d, %r8d - 0x41, 0xf7, 0xd0, //0x0000067a notl %r8d - 0x49, 0xff, 0xc0, //0x0000067d incq %r8 - 0x4c, 0x89, 0xc0, //0x00000680 movq %r8, %rax - 0x49, 0x89, 0xda, //0x00000683 movq %rbx, %r10 - 0x48, 0x21, 0xd8, //0x00000686 andq %rbx, %rax - 0x48, 0x8d, 0x48, 0x80, //0x00000689 leaq $-128(%rax), %rcx - 0x48, 0x89, 0xcb, //0x0000068d movq %rcx, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00000690 shrq $7, %rbx - 0x48, 0xff, 0xc3, //0x00000694 incq %rbx - 0x41, 0x89, 0xd9, //0x00000697 movl %ebx, %r9d - 0x41, 0x83, 0xe1, 0x03, //0x0000069a andl $3, %r9d - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000069e cmpq $384, %rcx - 0x0f, 0x83, 0xb9, 0x01, 0x00, 0x00, //0x000006a5 jae LBB1_77 - 0x31, 0xdb, //0x000006ab xorl %ebx, %ebx - 0xe9, 0x5b, 0x02, 0x00, 0x00, //0x000006ad jmp LBB1_79 - //0x000006b2 LBB1_59 - 0x04, 0x30, //0x000006b2 addb $48, %al - 0x88, 0x43, 0x02, //0x000006b4 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x000006b7 addq $3, %rbx - 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x000006bb jmp LBB1_112 - //0x000006c0 LBB1_60 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000006c0 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x000006c5 cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006c9 jb LBB1_68 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006cf movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x000006d4 cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006d8 jb LBB1_68 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006de movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006e3 cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006ea jb LBB1_68 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006f0 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006f5 cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006fc jb LBB1_68 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000702 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000707 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x0000070e jb LBB1_68 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000714 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000719 cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000720 jb LBB1_68 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000726 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000072b cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000732 jb LBB1_68 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000738 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000073d cmpq $100000000, %rdi - 0x0f, 0x83, 0x80, 0x04, 0x00, 0x00, //0x00000744 jae LBB1_116 - //0x0000074a LBB1_68 - 0x4c, 0x89, 0xfe, //0x0000074a movq %r15, %rsi - 0xe8, 0x8e, 0x04, 0x00, 0x00, //0x0000074d callq _format_integer - 0x48, 0x89, 0xc3, //0x00000752 movq %rax, %rbx - 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00000755 jmp LBB1_112 - //0x0000075a LBB1_69 - 0x48, 0x29, 0xd6, //0x0000075a subq %rdx, %rsi - 0x31, 0xff, //0x0000075d xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x39, 0xf9, 0xff, 0xff, //0x0000075f vmovdqa $-1735(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000767 .p2align 4, 0x90 - //0x00000770 LBB1_70 - 0xc5, 0xfe, 0x7f, 0x04, 0x38, //0x00000770 vmovdqu %ymm0, (%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x20, //0x00000775 vmovdqu %ymm0, $32(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x40, //0x0000077b vmovdqu %ymm0, $64(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x60, //0x00000781 vmovdqu %ymm0, $96(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x00000787 vmovdqu %ymm0, $128(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000790 vmovdqu %ymm0, $160(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x00000799 vmovdqu %ymm0, $192(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x000007a2 vmovdqu %ymm0, $224(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x00, 0x01, 0x00, 0x00, //0x000007ab vmovdqu %ymm0, $256(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x20, 0x01, 0x00, 0x00, //0x000007b4 vmovdqu %ymm0, $288(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x40, 0x01, 0x00, 0x00, //0x000007bd vmovdqu %ymm0, $320(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x60, 0x01, 0x00, 0x00, //0x000007c6 vmovdqu %ymm0, $352(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x01, 0x00, 0x00, //0x000007cf vmovdqu %ymm0, $384(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x01, 0x00, 0x00, //0x000007d8 vmovdqu %ymm0, $416(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x01, 0x00, 0x00, //0x000007e1 vmovdqu %ymm0, $448(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x01, 0x00, 0x00, //0x000007ea vmovdqu %ymm0, $480(%rax,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x000007f3 addq $512, %rdi - 0x48, 0x83, 0xc6, 0xfc, //0x000007fa addq $-4, %rsi - 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x000007fe jne LBB1_70 - //0x00000804 LBB1_71 - 0x48, 0x85, 0xd2, //0x00000804 testq %rdx, %rdx - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000807 je LBB1_74 - 0x48, 0x8d, 0x74, 0x07, 0x60, //0x0000080d leaq $96(%rdi,%rax), %rsi - 0x48, 0xf7, 0xda, //0x00000812 negq %rdx - 0xc5, 0xfd, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000815 vmovdqa $-1917(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, //0x0000081d .p2align 4, 0x90 - //0x00000820 LBB1_73 - 0xc5, 0xfe, 0x7f, 0x46, 0xa0, //0x00000820 vmovdqu %ymm0, $-96(%rsi) - 0xc5, 0xfe, 0x7f, 0x46, 0xc0, //0x00000825 vmovdqu %ymm0, $-64(%rsi) - 0xc5, 0xfe, 0x7f, 0x46, 0xe0, //0x0000082a vmovdqu %ymm0, $-32(%rsi) - 0xc5, 0xfe, 0x7f, 0x06, //0x0000082f vmovdqu %ymm0, (%rsi) - 0x48, 0x83, 0xee, 0x80, //0x00000833 subq $-128, %rsi - 0x48, 0xff, 0xc2, //0x00000837 incq %rdx - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000083a jne LBB1_73 - //0x00000840 LBB1_74 - 0x4c, 0x39, 0xe1, //0x00000840 cmpq %r12, %rcx - 0x0f, 0x84, 0x56, 0x03, 0x00, 0x00, //0x00000843 je LBB1_112 - 0x48, 0x01, 0xc8, //0x00000849 addq %rcx, %rax - 0x90, 0x90, 0x90, 0x90, //0x0000084c .p2align 4, 0x90 - //0x00000850 LBB1_76 - 0xc6, 0x00, 0x30, //0x00000850 movb $48, (%rax) - 0x48, 0xff, 0xc0, //0x00000853 incq %rax - 0x48, 0x39, 0xc3, //0x00000856 cmpq %rax, %rbx - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000859 jne LBB1_76 - 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x0000085f jmp LBB1_112 - //0x00000864 LBB1_77 - 0x4b, 0x8d, 0x8c, 0x34, 0xe2, 0x01, 0x00, 0x00, //0x00000864 leaq $482(%r12,%r14), %rcx - 0x4c, 0x89, 0xce, //0x0000086c movq %r9, %rsi - 0x48, 0x29, 0xde, //0x0000086f subq %rbx, %rsi - 0x31, 0xdb, //0x00000872 xorl %ebx, %ebx - 0xc5, 0xfd, 0x6f, 0x05, 0x24, 0xf8, 0xff, 0xff, //0x00000874 vmovdqa $-2012(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x0000087c LBB1_78 - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xfe, 0xff, 0xff, //0x0000087c vmovdqu %ymm0, $-480(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xfe, 0xff, 0xff, //0x00000885 vmovdqu %ymm0, $-448(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xfe, 0xff, 0xff, //0x0000088e vmovdqu %ymm0, $-416(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x80, 0xfe, 0xff, 0xff, //0x00000897 vmovdqu %ymm0, $-384(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xa0, 0xfe, 0xff, 0xff, //0x000008a0 vmovdqu %ymm0, $-352(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xc0, 0xfe, 0xff, 0xff, //0x000008a9 vmovdqu %ymm0, $-320(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xe0, 0xfe, 0xff, 0xff, //0x000008b2 vmovdqu %ymm0, $-288(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x00, 0xff, 0xff, 0xff, //0x000008bb vmovdqu %ymm0, $-256(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x000008c4 vmovdqu %ymm0, $-224(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x000008cd vmovdqu %ymm0, $-192(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x000008d6 vmovdqu %ymm0, $-160(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0x80, //0x000008df vmovdqu %ymm0, $-128(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x000008e5 vmovdqu %ymm0, $-96(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x000008eb vmovdqu %ymm0, $-64(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x000008f1 vmovdqu %ymm0, $-32(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x000008f7 vmovdqu %ymm0, (%rcx,%rbx) - 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x000008fc addq $512, %rbx - 0x48, 0x83, 0xc6, 0x04, //0x00000903 addq $4, %rsi - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000907 jne LBB1_78 - //0x0000090d LBB1_79 - 0x4d, 0x85, 0xc9, //0x0000090d testq %r9, %r9 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000910 je LBB1_82 - 0x4c, 0x01, 0xe3, //0x00000916 addq %r12, %rbx - 0x49, 0x8d, 0x4c, 0x1e, 0x62, //0x00000919 leaq $98(%r14,%rbx), %rcx - 0x49, 0xf7, 0xd9, //0x0000091e negq %r9 - 0xc5, 0xfd, 0x6f, 0x05, 0x77, 0xf7, 0xff, 0xff, //0x00000921 vmovdqa $-2185(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000929 LBB1_81 - 0xc5, 0xfe, 0x7f, 0x41, 0xa0, //0x00000929 vmovdqu %ymm0, $-96(%rcx) - 0xc5, 0xfe, 0x7f, 0x41, 0xc0, //0x0000092e vmovdqu %ymm0, $-64(%rcx) - 0xc5, 0xfe, 0x7f, 0x41, 0xe0, //0x00000933 vmovdqu %ymm0, $-32(%rcx) - 0xc5, 0xfe, 0x7f, 0x01, //0x00000938 vmovdqu %ymm0, (%rcx) - 0x48, 0x83, 0xe9, 0x80, //0x0000093c subq $-128, %rcx - 0x49, 0xff, 0xc1, //0x00000940 incq %r9 - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000943 jne LBB1_81 - //0x00000949 LBB1_82 - 0x49, 0x01, 0xc7, //0x00000949 addq %rax, %r15 - 0x49, 0x39, 0xc0, //0x0000094c cmpq %rax, %r8 - 0x4c, 0x89, 0xd3, //0x0000094f movq %r10, %rbx - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000952 je LBB1_85 - //0x00000958 LBB1_83 - 0x44, 0x89, 0xe9, //0x00000958 movl %r13d, %ecx - 0xf7, 0xd9, //0x0000095b negl %ecx - 0x90, 0x90, 0x90, //0x0000095d .p2align 4, 0x90 - //0x00000960 LBB1_84 - 0x41, 0xc6, 0x07, 0x30, //0x00000960 movb $48, (%r15) - 0x49, 0xff, 0xc7, //0x00000964 incq %r15 - 0xff, 0xc0, //0x00000967 incl %eax - 0x39, 0xc8, //0x00000969 cmpl %ecx, %eax - 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000096b jl LBB1_84 - //0x00000971 LBB1_85 - 0x4c, 0x89, 0xfe, //0x00000971 movq %r15, %rsi - 0xc5, 0xf8, 0x77, //0x00000974 vzeroupper - 0xe8, 0x94, 0x80, 0x00, 0x00, //0x00000977 callq _format_significand - 0x90, 0x90, 0x90, 0x90, //0x0000097c .p2align 4, 0x90 - //0x00000980 LBB1_86 - 0x80, 0x78, 0xff, 0x30, //0x00000980 cmpb $48, $-1(%rax) - 0x48, 0x8d, 0x40, 0xff, //0x00000984 leaq $-1(%rax), %rax - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000988 je LBB1_86 - 0x48, 0x8d, 0x48, 0x01, //0x0000098e leaq $1(%rax), %rcx - 0x45, 0x85, 0xed, //0x00000992 testl %r13d, %r13d - 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000995 jle LBB1_91 - 0x89, 0xca, //0x0000099b movl %ecx, %edx - 0x44, 0x29, 0xfa, //0x0000099d subl %r15d, %edx - 0x41, 0x39, 0xd5, //0x000009a0 cmpl %edx, %r13d - 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x000009a3 jge LBB1_92 - 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x000009a9 leal (%r13,%r15), %edx - 0x29, 0xd1, //0x000009ae subl %edx, %ecx - 0x48, 0x8d, 0x71, 0xff, //0x000009b0 leaq $-1(%rcx), %rsi - 0x89, 0xca, //0x000009b4 movl %ecx, %edx - 0x83, 0xe2, 0x03, //0x000009b6 andl $3, %edx - 0x48, 0x83, 0xfe, 0x03, //0x000009b9 cmpq $3, %rsi - 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x000009bd jae LBB1_96 - 0x31, 0xc9, //0x000009c3 xorl %ecx, %ecx - 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x000009c5 jmp LBB1_99 - //0x000009ca LBB1_92 - 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000009ca jle LBB1_91 - 0x48, 0x89, 0xde, //0x000009d0 movq %rbx, %rsi - 0x45, 0x01, 0xfd, //0x000009d3 addl %r15d, %r13d - 0x41, 0x89, 0xc8, //0x000009d6 movl %ecx, %r8d - 0x41, 0xf7, 0xd0, //0x000009d9 notl %r8d - 0x45, 0x01, 0xe8, //0x000009dc addl %r13d, %r8d - 0x31, 0xd2, //0x000009df xorl %edx, %edx - 0x48, 0x89, 0xcb, //0x000009e1 movq %rcx, %rbx - 0x41, 0x83, 0xf8, 0x7e, //0x000009e4 cmpl $126, %r8d - 0x0f, 0x86, 0x8f, 0x01, 0x00, 0x00, //0x000009e8 jbe LBB1_110 - 0x49, 0xff, 0xc0, //0x000009ee incq %r8 - 0x48, 0x89, 0xf3, //0x000009f1 movq %rsi, %rbx - 0x4c, 0x21, 0xc3, //0x000009f4 andq %r8, %rbx - 0x48, 0x8d, 0x73, 0x80, //0x000009f7 leaq $-128(%rbx), %rsi - 0x48, 0x89, 0xf7, //0x000009fb movq %rsi, %rdi - 0x48, 0xc1, 0xef, 0x07, //0x000009fe shrq $7, %rdi - 0x48, 0xff, 0xc7, //0x00000a02 incq %rdi - 0x89, 0xfa, //0x00000a05 movl %edi, %edx - 0x83, 0xe2, 0x03, //0x00000a07 andl $3, %edx - 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000a0a cmpq $384, %rsi - 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00000a11 jae LBB1_104 - 0x31, 0xff, //0x00000a17 xorl %edi, %edi - 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a19 jmp LBB1_106 - //0x00000a1e LBB1_91 - 0x48, 0x89, 0xcb, //0x00000a1e movq %rcx, %rbx - 0xe9, 0x79, 0x01, 0x00, 0x00, //0x00000a21 jmp LBB1_112 - //0x00000a26 LBB1_96 - 0x48, 0x89, 0xd6, //0x00000a26 movq %rdx, %rsi - 0x48, 0x29, 0xce, //0x00000a29 subq %rcx, %rsi - 0x31, 0xc9, //0x00000a2c xorl %ecx, %ecx - 0x90, 0x90, //0x00000a2e .p2align 4, 0x90 - //0x00000a30 LBB1_97 - 0x8b, 0x7c, 0x08, 0xfd, //0x00000a30 movl $-3(%rax,%rcx), %edi - 0x89, 0x7c, 0x08, 0xfe, //0x00000a34 movl %edi, $-2(%rax,%rcx) - 0x48, 0x83, 0xc1, 0xfc, //0x00000a38 addq $-4, %rcx - 0x48, 0x39, 0xce, //0x00000a3c cmpq %rcx, %rsi - 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000a3f jne LBB1_97 - 0x48, 0xf7, 0xd9, //0x00000a45 negq %rcx - //0x00000a48 LBB1_99 - 0x48, 0x85, 0xd2, //0x00000a48 testq %rdx, %rdx - 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000a4b je LBB1_102 - 0x48, 0xf7, 0xd9, //0x00000a51 negq %rcx - 0x48, 0xf7, 0xda, //0x00000a54 negq %rdx - 0x31, 0xf6, //0x00000a57 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a59 .p2align 4, 0x90 - //0x00000a60 LBB1_101 - 0x48, 0x8d, 0x3c, 0x31, //0x00000a60 leaq (%rcx,%rsi), %rdi - 0x0f, 0xb6, 0x1c, 0x38, //0x00000a64 movzbl (%rax,%rdi), %ebx - 0x88, 0x5c, 0x38, 0x01, //0x00000a68 movb %bl, $1(%rax,%rdi) - 0x48, 0xff, 0xce, //0x00000a6c decq %rsi - 0x48, 0x39, 0xf2, //0x00000a6f cmpq %rsi, %rdx - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000a72 jne LBB1_101 - //0x00000a78 LBB1_102 - 0x49, 0x63, 0xcd, //0x00000a78 movslq %r13d, %rcx - 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000a7b movb $46, (%r15,%rcx) - 0x48, 0x83, 0xc0, 0x02, //0x00000a80 addq $2, %rax - 0x48, 0x89, 0xc3, //0x00000a84 movq %rax, %rbx - 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a87 jmp LBB1_112 - //0x00000a8c LBB1_104 - 0x48, 0x89, 0xd6, //0x00000a8c movq %rdx, %rsi - 0x48, 0x29, 0xfe, //0x00000a8f subq %rdi, %rsi - 0x31, 0xff, //0x00000a92 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x04, 0xf6, 0xff, 0xff, //0x00000a94 vmovdqa $-2556(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000a9c LBB1_105 - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x01, //0x00000a9c vmovdqu %ymm0, $1(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x21, //0x00000aa2 vmovdqu %ymm0, $33(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x41, //0x00000aa8 vmovdqu %ymm0, $65(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x61, //0x00000aae vmovdqu %ymm0, $97(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000ab4 vmovdqu %ymm0, $129(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000abd vmovdqu %ymm0, $161(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000ac6 vmovdqu %ymm0, $193(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000acf vmovdqu %ymm0, $225(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x01, 0x01, 0x00, 0x00, //0x00000ad8 vmovdqu %ymm0, $257(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x21, 0x01, 0x00, 0x00, //0x00000ae1 vmovdqu %ymm0, $289(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x41, 0x01, 0x00, 0x00, //0x00000aea vmovdqu %ymm0, $321(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x61, 0x01, 0x00, 0x00, //0x00000af3 vmovdqu %ymm0, $353(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x01, 0x00, 0x00, //0x00000afc vmovdqu %ymm0, $385(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x01, 0x00, 0x00, //0x00000b05 vmovdqu %ymm0, $417(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x01, 0x00, 0x00, //0x00000b0e vmovdqu %ymm0, $449(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x01, 0x00, 0x00, //0x00000b17 vmovdqu %ymm0, $481(%rax,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000b20 addq $512, %rdi - 0x48, 0x83, 0xc6, 0x04, //0x00000b27 addq $4, %rsi - 0x0f, 0x85, 0x6b, 0xff, 0xff, 0xff, //0x00000b2b jne LBB1_105 - //0x00000b31 LBB1_106 - 0x48, 0x89, 0xde, //0x00000b31 movq %rbx, %rsi - 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000b34 leaq $1(%rax,%rbx), %rbx - 0x48, 0x85, 0xd2, //0x00000b39 testq %rdx, %rdx - 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00000b3c je LBB1_109 - 0x48, 0x8d, 0x44, 0x38, 0x61, //0x00000b42 leaq $97(%rax,%rdi), %rax - 0x48, 0xf7, 0xda, //0x00000b47 negq %rdx - 0xc5, 0xfd, 0x6f, 0x05, 0x4e, 0xf5, 0xff, 0xff, //0x00000b4a vmovdqa $-2738(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000b52 LBB1_108 - 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000b52 vmovdqu %ymm0, $-96(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000b57 vmovdqu %ymm0, $-64(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000b5c vmovdqu %ymm0, $-32(%rax) - 0xc5, 0xfe, 0x7f, 0x00, //0x00000b61 vmovdqu %ymm0, (%rax) - 0x48, 0x83, 0xe8, 0x80, //0x00000b65 subq $-128, %rax - 0x48, 0xff, 0xc2, //0x00000b69 incq %rdx - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000b6c jne LBB1_108 - //0x00000b72 LBB1_109 - 0x89, 0xf2, //0x00000b72 movl %esi, %edx - 0x49, 0x39, 0xf0, //0x00000b74 cmpq %rsi, %r8 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000b77 je LBB1_112 - //0x00000b7d LBB1_110 - 0x41, 0x29, 0xd5, //0x00000b7d subl %edx, %r13d - 0x41, 0x29, 0xcd, //0x00000b80 subl %ecx, %r13d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b83 .p2align 4, 0x90 - //0x00000b90 LBB1_111 - 0xc6, 0x03, 0x30, //0x00000b90 movb $48, (%rbx) - 0x48, 0xff, 0xc3, //0x00000b93 incq %rbx - 0x41, 0xff, 0xcd, //0x00000b96 decl %r13d - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000b99 jne LBB1_111 - //0x00000b9f LBB1_112 - 0x44, 0x29, 0xf3, //0x00000b9f subl %r14d, %ebx - //0x00000ba2 LBB1_113 - 0x89, 0xd8, //0x00000ba2 movl %ebx, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00000ba4 addq $8, %rsp - 0x5b, //0x00000ba8 popq %rbx - 0x41, 0x5c, //0x00000ba9 popq %r12 - 0x41, 0x5d, //0x00000bab popq %r13 - 0x41, 0x5e, //0x00000bad popq %r14 - 0x41, 0x5f, //0x00000baf popq %r15 - 0x5d, //0x00000bb1 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000bb2 vzeroupper - 0xc3, //0x00000bb5 retq - //0x00000bb6 LBB1_114 - 0x31, 0xdb, //0x00000bb6 xorl %ebx, %ebx - 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00000bb8 jmp LBB1_113 - //0x00000bbd LBB1_115 - 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000bbd movl $-1074, %ebx - 0x48, 0x89, 0xd7, //0x00000bc2 movq %rdx, %rdi - 0xe9, 0x8f, 0xf5, 0xff, 0xff, //0x00000bc5 jmp LBB1_5 - //0x00000bca LBB1_116 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000bca cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000bd1 movl $10, %edx - 0xe9, 0x34, 0xfa, 0xff, 0xff, //0x00000bd6 jmp LBB1_50 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bdb .p2align 4, 0x90 - //0x00000be0 _format_integer - 0x55, //0x00000be0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000be1 movq %rsp, %rbp - 0x53, //0x00000be4 pushq %rbx - 0x41, 0x89, 0xd0, //0x00000be5 movl %edx, %r8d - 0x49, 0x01, 0xf0, //0x00000be8 addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00000beb movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00000bee shrq $32, %rax - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000bf2 je LBB2_1 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000bf8 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00000c02 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00000c05 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000c08 shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000c0c imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00000c12 addl %edi, %ecx - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c14 movl $3518437209, %r9d - 0x48, 0x89, 0xc8, //0x00000c1a movq %rcx, %rax - 0x49, 0x0f, 0xaf, 0xc1, //0x00000c1d imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00000c21 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000c25 imull $10000, %eax, %edi - 0x29, 0xf9, //0x00000c2b subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00000c2d movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00000c30 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00000c34 shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c38 imull $10000, %edi, %edi - 0x29, 0xf8, //0x00000c3e subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00000c40 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00000c43 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000c46 imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00000c4d shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00000c51 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00000c55 subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00000c57 movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00000c5b movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00000c5e shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000c61 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00000c67 shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00000c6a imull $100, %edi, %ecx - 0x29, 0xc8, //0x00000c6d subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00000c6f movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x76, 0xb2, 0x00, 0x00, //0x00000c73 leaq $45686(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000c7a movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000c7f movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000c84 movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000c89 movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000c8e movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000c93 movw %ax, $-6(%r8) - 0x4d, 0x8d, 0x58, 0xf8, //0x00000c98 leaq $-8(%r8), %r11 - 0x0f, 0xb7, 0x0c, 0x79, //0x00000c9c movzwl (%rcx,%rdi,2), %ecx - 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000ca0 movw %cx, $-8(%r8) - 0x48, 0x89, 0xd7, //0x00000ca5 movq %rdx, %rdi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000ca8 cmpl $10000, %edi - 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000cae jae LBB2_5 - //0x00000cb4 LBB2_4 - 0x89, 0xfa, //0x00000cb4 movl %edi, %edx - 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000cb6 jmp LBB2_7 - //0x00000cbb LBB2_1 - 0x4d, 0x89, 0xc3, //0x00000cbb movq %r8, %r11 - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000cbe cmpl $10000, %edi - 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000cc4 jb LBB2_4 - //0x00000cca LBB2_5 - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000cca movl $3518437209, %r9d - 0x4c, 0x8d, 0x15, 0x19, 0xb2, 0x00, 0x00, //0x00000cd0 leaq $45593(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cd7 .p2align 4, 0x90 - //0x00000ce0 LBB2_6 - 0x89, 0xfa, //0x00000ce0 movl %edi, %edx - 0x49, 0x0f, 0xaf, 0xd1, //0x00000ce2 imulq %r9, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000ce6 shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000cea imull $-10000, %edx, %ecx - 0x01, 0xf9, //0x00000cf0 addl %edi, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000cf2 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00000cf9 shrq $37, %rax - 0x6b, 0xd8, 0x64, //0x00000cfd imull $100, %eax, %ebx - 0x29, 0xd9, //0x00000d00 subl %ebx, %ecx - 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d02 movzwl (%r10,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d07 movw %cx, $-2(%r11) - 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000d0c movzwl (%r10,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000d11 movw %ax, $-4(%r11) - 0x49, 0x83, 0xc3, 0xfc, //0x00000d16 addq $-4, %r11 - 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000d1a cmpl $99999999, %edi - 0x89, 0xd7, //0x00000d20 movl %edx, %edi - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000d22 ja LBB2_6 - //0x00000d28 LBB2_7 - 0x83, 0xfa, 0x64, //0x00000d28 cmpl $100, %edx - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000d2b jb LBB2_9 - 0x0f, 0xb7, 0xc2, //0x00000d31 movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000d34 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000d37 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000d3d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00000d40 imull $100, %eax, %ecx - 0x29, 0xca, //0x00000d43 subl %ecx, %edx - 0x0f, 0xb7, 0xca, //0x00000d45 movzwl %dx, %ecx - 0x48, 0x8d, 0x15, 0xa1, 0xb1, 0x00, 0x00, //0x00000d48 leaq $45473(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d4f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d53 movw %cx, $-2(%r11) - 0x49, 0x83, 0xc3, 0xfe, //0x00000d58 addq $-2, %r11 - 0x89, 0xc2, //0x00000d5c movl %eax, %edx - //0x00000d5e LBB2_9 - 0x83, 0xfa, 0x0a, //0x00000d5e cmpl $10, %edx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000d61 jb LBB2_11 - 0x89, 0xd0, //0x00000d67 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x80, 0xb1, 0x00, 0x00, //0x00000d69 leaq $45440(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00000d70 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000d74 movw %ax, $-2(%r11) - 0x4c, 0x89, 0xc0, //0x00000d79 movq %r8, %rax - 0x5b, //0x00000d7c popq %rbx - 0x5d, //0x00000d7d popq %rbp - 0xc3, //0x00000d7e retq - //0x00000d7f LBB2_11 - 0x80, 0xc2, 0x30, //0x00000d7f addb $48, %dl - 0x88, 0x16, //0x00000d82 movb %dl, (%rsi) - 0x4c, 0x89, 0xc0, //0x00000d84 movq %r8, %rax - 0x5b, //0x00000d87 popq %rbx - 0x5d, //0x00000d88 popq %rbp - 0xc3, //0x00000d89 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d8a .p2align 4, 0x90 - //0x00000d90 _i64toa - 0x48, 0x85, 0xf6, //0x00000d90 testq %rsi, %rsi - 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000d93 js LBB3_1 - 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000d99 jmp _u64toa - //0x00000d9e LBB3_1 - 0x55, //0x00000d9e pushq %rbp - 0x48, 0x89, 0xe5, //0x00000d9f movq %rsp, %rbp - 0xc6, 0x07, 0x2d, //0x00000da2 movb $45, (%rdi) - 0x48, 0xff, 0xc7, //0x00000da5 incq %rdi - 0x48, 0xf7, 0xde, //0x00000da8 negq %rsi - 0xe8, 0x50, 0x00, 0x00, 0x00, //0x00000dab callq _u64toa - 0xff, 0xc0, //0x00000db0 incl %eax - 0x5d, //0x00000db2 popq %rbp - 0xc3, //0x00000db3 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db4 .p2align 4, 0x00 - //0x00000dc0 LCPI4_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000dc8 .quad 3518437209 - //0x00000dd0 LCPI4_3 - 0x0a, 0x00, //0x00000dd0 .word 10 - 0x0a, 0x00, //0x00000dd2 .word 10 - 0x0a, 0x00, //0x00000dd4 .word 10 - 0x0a, 0x00, //0x00000dd6 .word 10 - 0x0a, 0x00, //0x00000dd8 .word 10 - 0x0a, 0x00, //0x00000dda .word 10 - 0x0a, 0x00, //0x00000ddc .word 10 - 0x0a, 0x00, //0x00000dde .word 10 - //0x00000de0 LCPI4_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000de0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000df0 .p2align 3, 0x00 - //0x00000df0 LCPI4_1 - 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000df0 .quad -9223315738079846203 - //0x00000df8 LCPI4_2 - 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000df8 .quad -9223336852348469120 - //0x00000e00 .p2align 4, 0x90 - //0x00000e00 _u64toa - 0x55, //0x00000e00 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000e01 movq %rsp, %rbp - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e04 cmpq $9999, %rsi - 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000e0b ja LBB4_8 - 0x0f, 0xb7, 0xc6, //0x00000e11 movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000e14 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e17 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000e1d shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000e20 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000e24 imull $100, %eax, %eax - 0x89, 0xf1, //0x00000e27 movl %esi, %ecx - 0x29, 0xc1, //0x00000e29 subl %eax, %ecx - 0x0f, 0xb7, 0xc1, //0x00000e2b movzwl %cx, %eax - 0x48, 0x01, 0xc0, //0x00000e2e addq %rax, %rax - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000e31 cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000e37 jb LBB4_3 - 0x48, 0x8d, 0x0d, 0xac, 0xb0, 0x00, 0x00, //0x00000e3d leaq $45228(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x0a, //0x00000e44 movb (%rdx,%rcx), %cl - 0x88, 0x0f, //0x00000e47 movb %cl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e49 movl $1, %ecx - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e4e jmp LBB4_4 - //0x00000e53 LBB4_3 - 0x31, 0xc9, //0x00000e53 xorl %ecx, %ecx - 0x83, 0xfe, 0x64, //0x00000e55 cmpl $100, %esi - 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000e58 jb LBB4_5 - //0x00000e5e LBB4_4 - 0x0f, 0xb7, 0xd2, //0x00000e5e movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00000e61 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x84, 0xb0, 0x00, 0x00, //0x00000e65 leaq $45188(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00000e6c movb (%rdx,%rsi), %dl - 0x89, 0xce, //0x00000e6f movl %ecx, %esi - 0xff, 0xc1, //0x00000e71 incl %ecx - 0x88, 0x14, 0x37, //0x00000e73 movb %dl, (%rdi,%rsi) - //0x00000e76 LBB4_6 - 0x48, 0x8d, 0x15, 0x73, 0xb0, 0x00, 0x00, //0x00000e76 leaq $45171(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x10, //0x00000e7d movb (%rax,%rdx), %dl - 0x89, 0xce, //0x00000e80 movl %ecx, %esi - 0xff, 0xc1, //0x00000e82 incl %ecx - 0x88, 0x14, 0x37, //0x00000e84 movb %dl, (%rdi,%rsi) - //0x00000e87 LBB4_7 - 0x0f, 0xb7, 0xc0, //0x00000e87 movzwl %ax, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000e8a orq $1, %rax - 0x48, 0x8d, 0x15, 0x5b, 0xb0, 0x00, 0x00, //0x00000e8e leaq $45147(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x10, //0x00000e95 movb (%rax,%rdx), %al - 0x89, 0xca, //0x00000e98 movl %ecx, %edx - 0xff, 0xc1, //0x00000e9a incl %ecx - 0x88, 0x04, 0x17, //0x00000e9c movb %al, (%rdi,%rdx) - 0x89, 0xc8, //0x00000e9f movl %ecx, %eax - 0x5d, //0x00000ea1 popq %rbp - 0xc3, //0x00000ea2 retq - //0x00000ea3 LBB4_5 - 0x31, 0xc9, //0x00000ea3 xorl %ecx, %ecx - 0x83, 0xfe, 0x0a, //0x00000ea5 cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000ea8 jae LBB4_6 - 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000eae jmp LBB4_7 - //0x00000eb3 LBB4_8 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000eb3 cmpq $99999999, %rsi - 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000eba ja LBB4_16 - 0x89, 0xf0, //0x00000ec0 movl %esi, %eax - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000ec2 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00000ec7 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000ecb shrq $45, %rdx - 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000ecf imull $10000, %edx, %r8d - 0x89, 0xf1, //0x00000ed6 movl %esi, %ecx - 0x44, 0x29, 0xc1, //0x00000ed8 subl %r8d, %ecx - 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000edb imulq $1125899907, %rax, %r10 - 0x49, 0xc1, 0xea, 0x31, //0x00000ee2 shrq $49, %r10 - 0x41, 0x83, 0xe2, 0xfe, //0x00000ee6 andl $-2, %r10d - 0x0f, 0xb7, 0xc2, //0x00000eea movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000eed shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ef0 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ef6 shrl $17, %eax - 0x6b, 0xc0, 0x64, //0x00000ef9 imull $100, %eax, %eax - 0x29, 0xc2, //0x00000efc subl %eax, %edx - 0x44, 0x0f, 0xb7, 0xca, //0x00000efe movzwl %dx, %r9d - 0x4d, 0x01, 0xc9, //0x00000f02 addq %r9, %r9 - 0x0f, 0xb7, 0xc1, //0x00000f05 movzwl %cx, %eax - 0xc1, 0xe8, 0x02, //0x00000f08 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f0b imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000f11 shrl $17, %eax - 0x4c, 0x8d, 0x04, 0x00, //0x00000f14 leaq (%rax,%rax), %r8 - 0x6b, 0xc0, 0x64, //0x00000f18 imull $100, %eax, %eax - 0x29, 0xc1, //0x00000f1b subl %eax, %ecx - 0x44, 0x0f, 0xb7, 0xd9, //0x00000f1d movzwl %cx, %r11d - 0x4d, 0x01, 0xdb, //0x00000f21 addq %r11, %r11 - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000f24 cmpl $10000000, %esi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000f2a jb LBB4_11 - 0x48, 0x8d, 0x05, 0xb9, 0xaf, 0x00, 0x00, //0x00000f30 leaq $44985(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x02, //0x00000f37 movb (%r10,%rax), %al - 0x88, 0x07, //0x00000f3b movb %al, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000f3d movl $1, %ecx - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000f42 jmp LBB4_12 - //0x00000f47 LBB4_11 - 0x31, 0xc9, //0x00000f47 xorl %ecx, %ecx - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000f49 cmpl $1000000, %esi - 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000f4f jb LBB4_13 - //0x00000f55 LBB4_12 - 0x44, 0x89, 0xd0, //0x00000f55 movl %r10d, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f58 orq $1, %rax - 0x48, 0x8d, 0x35, 0x8d, 0xaf, 0x00, 0x00, //0x00000f5c leaq $44941(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x30, //0x00000f63 movb (%rax,%rsi), %al - 0x89, 0xce, //0x00000f66 movl %ecx, %esi - 0xff, 0xc1, //0x00000f68 incl %ecx - 0x88, 0x04, 0x37, //0x00000f6a movb %al, (%rdi,%rsi) - //0x00000f6d LBB4_14 - 0x48, 0x8d, 0x05, 0x7c, 0xaf, 0x00, 0x00, //0x00000f6d leaq $44924(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x01, //0x00000f74 movb (%r9,%rax), %al - 0x89, 0xce, //0x00000f78 movl %ecx, %esi - 0xff, 0xc1, //0x00000f7a incl %ecx - 0x88, 0x04, 0x37, //0x00000f7c movb %al, (%rdi,%rsi) - //0x00000f7f LBB4_15 - 0x41, 0x0f, 0xb7, 0xc1, //0x00000f7f movzwl %r9w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f83 orq $1, %rax - 0x48, 0x8d, 0x35, 0x62, 0xaf, 0x00, 0x00, //0x00000f87 leaq $44898(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x30, //0x00000f8e movb (%rax,%rsi), %al - 0x89, 0xca, //0x00000f91 movl %ecx, %edx - 0x88, 0x04, 0x3a, //0x00000f93 movb %al, (%rdx,%rdi) - 0x41, 0x8a, 0x04, 0x30, //0x00000f96 movb (%r8,%rsi), %al - 0x88, 0x44, 0x3a, 0x01, //0x00000f9a movb %al, $1(%rdx,%rdi) - 0x41, 0x0f, 0xb7, 0xc0, //0x00000f9e movzwl %r8w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000fa2 orq $1, %rax - 0x8a, 0x04, 0x30, //0x00000fa6 movb (%rax,%rsi), %al - 0x88, 0x44, 0x3a, 0x02, //0x00000fa9 movb %al, $2(%rdx,%rdi) - 0x41, 0x8a, 0x04, 0x33, //0x00000fad movb (%r11,%rsi), %al - 0x88, 0x44, 0x3a, 0x03, //0x00000fb1 movb %al, $3(%rdx,%rdi) - 0x41, 0x0f, 0xb7, 0xc3, //0x00000fb5 movzwl %r11w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000fb9 orq $1, %rax - 0x8a, 0x04, 0x30, //0x00000fbd movb (%rax,%rsi), %al - 0x83, 0xc1, 0x05, //0x00000fc0 addl $5, %ecx - 0x88, 0x44, 0x3a, 0x04, //0x00000fc3 movb %al, $4(%rdx,%rdi) - 0x89, 0xc8, //0x00000fc7 movl %ecx, %eax - 0x5d, //0x00000fc9 popq %rbp - 0xc3, //0x00000fca retq - //0x00000fcb LBB4_13 - 0x31, 0xc9, //0x00000fcb xorl %ecx, %ecx - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000fcd cmpl $100000, %esi - 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000fd3 jae LBB4_14 - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000fd9 jmp LBB4_15 - //0x00000fde LBB4_16 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000fde movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x00000fe8 cmpq %rax, %rsi - 0x0f, 0x87, 0x05, 0x01, 0x00, 0x00, //0x00000feb ja LBB4_18 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ff1 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf0, //0x00000ffb movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00000ffe mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00001001 shrq $26, %rdx - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001005 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000100b subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xc2, //0x0000100d vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00001011 vmovdqa $-601(%rip), %xmm1 /* LCPI4_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x00001019 vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000101d vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001022 movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00001027 vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x0000102c vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x00001030 vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x00001034 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00001038 vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000103d vpshuflw $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001042 vpshufd $80, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x15, 0xa1, 0xfd, 0xff, 0xff, //0x00001047 vmovddup $-607(%rip), %xmm2 /* LCPI4_1+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc2, //0x0000104f vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x25, 0x9d, 0xfd, 0xff, 0xff, //0x00001053 vmovddup $-611(%rip), %xmm4 /* LCPI4_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc4, //0x0000105b vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x69, 0xfd, 0xff, 0xff, //0x0000105f vmovdqa $-663(%rip), %xmm5 /* LCPI4_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x00001067 vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000106b vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x00001070 vpsubw %xmm6, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6e, 0xf6, //0x00001074 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x00001078 vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x0000107c vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x00001081 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x00001085 vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x00001089 vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000108d vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001092 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001097 vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x0000109c vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x000010a0 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x000010a4 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000010a8 vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x000010ad vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x000010b1 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x0d, 0x23, 0xfd, 0xff, 0xff, //0x000010b5 vpaddb $-733(%rip), %xmm0, %xmm1 /* LCPI4_4+0(%rip) */ - 0xc5, 0xe9, 0xef, 0xd2, //0x000010bd vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf9, 0x74, 0xc2, //0x000010c1 vpcmpeqb %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000010c5 vpmovmskb %xmm0, %eax - 0x0d, 0x00, 0x80, 0x00, 0x00, //0x000010c9 orl $32768, %eax - 0x35, 0xff, 0x7f, 0xff, 0xff, //0x000010ce xorl $-32769, %eax - 0x0f, 0xbc, 0xc0, //0x000010d3 bsfl %eax, %eax - 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000010d6 movl $16, %ecx - 0x29, 0xc1, //0x000010db subl %eax, %ecx - 0x48, 0xc1, 0xe0, 0x04, //0x000010dd shlq $4, %rax - 0x48, 0x8d, 0x15, 0x68, 0xd5, 0x00, 0x00, //0x000010e1 leaq $54632(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ - 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x000010e8 vpshufb (%rax,%rdx), %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x000010ee vmovdqu %xmm0, (%rdi) - 0x89, 0xc8, //0x000010f2 movl %ecx, %eax - 0x5d, //0x000010f4 popq %rbp - 0xc3, //0x000010f5 retq - //0x000010f6 LBB4_18 - 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000010f6 movabsq $4153837486827862103, %rcx - 0x48, 0x89, 0xf0, //0x00001100 movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001103 mulq %rcx - 0x48, 0xc1, 0xea, 0x33, //0x00001106 shrq $51, %rdx - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000110a movabsq $10000000000000000, %rax - 0x48, 0x0f, 0xaf, 0xc2, //0x00001114 imulq %rdx, %rax - 0x48, 0x29, 0xc6, //0x00001118 subq %rax, %rsi - 0x83, 0xfa, 0x09, //0x0000111b cmpl $9, %edx - 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000111e ja LBB4_20 - 0x80, 0xc2, 0x30, //0x00001124 addb $48, %dl - 0x88, 0x17, //0x00001127 movb %dl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001129 movl $1, %ecx - 0xe9, 0xba, 0x00, 0x00, 0x00, //0x0000112e jmp LBB4_25 - //0x00001133 LBB4_20 - 0x83, 0xfa, 0x63, //0x00001133 cmpl $99, %edx - 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00001136 ja LBB4_22 - 0x89, 0xd0, //0x0000113c movl %edx, %eax - 0x48, 0x8d, 0x0d, 0xab, 0xad, 0x00, 0x00, //0x0000113e leaq $44459(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x00001145 movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x00001148 movb $1(%rcx,%rax,2), %al - 0x88, 0x17, //0x0000114c movb %dl, (%rdi) - 0x88, 0x47, 0x01, //0x0000114e movb %al, $1(%rdi) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00001151 movl $2, %ecx - 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00001156 jmp LBB4_25 - //0x0000115b LBB4_22 - 0x89, 0xd0, //0x0000115b movl %edx, %eax - 0xc1, 0xe8, 0x02, //0x0000115d shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001160 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00001166 shrl $17, %eax - 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001169 cmpl $999, %edx - 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x0000116f ja LBB4_24 - 0x83, 0xc0, 0x30, //0x00001175 addl $48, %eax - 0x88, 0x07, //0x00001178 movb %al, (%rdi) - 0x0f, 0xb7, 0xc2, //0x0000117a movzwl %dx, %eax - 0x89, 0xc1, //0x0000117d movl %eax, %ecx - 0xc1, 0xe9, 0x02, //0x0000117f shrl $2, %ecx - 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001182 imull $5243, %ecx, %ecx - 0xc1, 0xe9, 0x11, //0x00001188 shrl $17, %ecx - 0x6b, 0xc9, 0x64, //0x0000118b imull $100, %ecx, %ecx - 0x29, 0xc8, //0x0000118e subl %ecx, %eax - 0x0f, 0xb7, 0xc0, //0x00001190 movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0x56, 0xad, 0x00, 0x00, //0x00001193 leaq $44374(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x0000119a movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x0000119d movb $1(%rcx,%rax,2), %al - 0x88, 0x57, 0x01, //0x000011a1 movb %dl, $1(%rdi) - 0x88, 0x47, 0x02, //0x000011a4 movb %al, $2(%rdi) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000011a7 movl $3, %ecx - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000011ac jmp LBB4_25 - //0x000011b1 LBB4_24 - 0x6b, 0xc8, 0x64, //0x000011b1 imull $100, %eax, %ecx - 0x29, 0xca, //0x000011b4 subl %ecx, %edx - 0x0f, 0xb7, 0xc0, //0x000011b6 movzwl %ax, %eax - 0x4c, 0x8d, 0x05, 0x30, 0xad, 0x00, 0x00, //0x000011b9 leaq $44336(%rip), %r8 /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x0c, 0x40, //0x000011c0 movb (%r8,%rax,2), %cl - 0x41, 0x8a, 0x44, 0x40, 0x01, //0x000011c4 movb $1(%r8,%rax,2), %al - 0x88, 0x0f, //0x000011c9 movb %cl, (%rdi) - 0x88, 0x47, 0x01, //0x000011cb movb %al, $1(%rdi) - 0x0f, 0xb7, 0xc2, //0x000011ce movzwl %dx, %eax - 0x41, 0x8a, 0x0c, 0x40, //0x000011d1 movb (%r8,%rax,2), %cl - 0x48, 0x01, 0xc0, //0x000011d5 addq %rax, %rax - 0x88, 0x4f, 0x02, //0x000011d8 movb %cl, $2(%rdi) - 0x83, 0xc8, 0x01, //0x000011db orl $1, %eax - 0x0f, 0xb7, 0xc0, //0x000011de movzwl %ax, %eax - 0x42, 0x8a, 0x04, 0x00, //0x000011e1 movb (%rax,%r8), %al - 0x88, 0x47, 0x03, //0x000011e5 movb %al, $3(%rdi) - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000011e8 movl $4, %ecx - //0x000011ed LBB4_25 - 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011ed movabsq $-6067343680855748867, %rdx - 0x48, 0x89, 0xf0, //0x000011f7 movq %rsi, %rax - 0x48, 0xf7, 0xe2, //0x000011fa mulq %rdx - 0x48, 0xc1, 0xea, 0x1a, //0x000011fd shrq $26, %rdx - 0xc5, 0xf9, 0x6e, 0xc2, //0x00001201 vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0xb3, 0xfb, 0xff, 0xff, //0x00001205 vmovdqa $-1101(%rip), %xmm1 /* LCPI4_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x0000120d vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001211 vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001216 movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000121b vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x00001220 vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x00001224 vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x00001228 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000122c vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00001231 vpshuflw $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001236 vpshufd $80, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x15, 0xad, 0xfb, 0xff, 0xff, //0x0000123b vmovddup $-1107(%rip), %xmm2 /* LCPI4_1+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc2, //0x00001243 vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x12, 0x25, 0xa9, 0xfb, 0xff, 0xff, //0x00001247 vmovddup $-1111(%rip), %xmm4 /* LCPI4_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc4, //0x0000124f vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x75, 0xfb, 0xff, 0xff, //0x00001253 vmovdqa $-1163(%rip), %xmm5 /* LCPI4_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x0000125b vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000125f vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x00001264 vpsubw %xmm6, %xmm0, %xmm0 - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001268 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000126e subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xf6, //0x00001270 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x00001274 vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00001278 vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x0000127d vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x00001281 vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x00001285 vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001289 vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x0000128e vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001293 vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x00001298 vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x0000129c vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x000012a0 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000012a4 vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x000012a9 vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x000012ad vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x05, 0x27, 0xfb, 0xff, 0xff, //0x000012b1 vpaddb $-1241(%rip), %xmm0, %xmm0 /* LCPI4_4+0(%rip) */ - 0x89, 0xc8, //0x000012b9 movl %ecx, %eax - 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000012bb vmovdqu %xmm0, (%rdi,%rax) - 0x83, 0xc9, 0x10, //0x000012c0 orl $16, %ecx - 0x89, 0xc8, //0x000012c3 movl %ecx, %eax - 0x5d, //0x000012c5 popq %rbp - 0xc3, //0x000012c6 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c7 .p2align 4, 0x00 - //0x000012d0 LCPI5_0 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000012d0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000012e0 LCPI5_1 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000012e0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000012f0 LCPI5_2 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000012f0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00001300 .p2align 4, 0x90 - //0x00001300 _quote - 0x55, //0x00001300 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001301 movq %rsp, %rbp - 0x41, 0x57, //0x00001304 pushq %r15 - 0x41, 0x56, //0x00001306 pushq %r14 - 0x41, 0x55, //0x00001308 pushq %r13 - 0x41, 0x54, //0x0000130a pushq %r12 - 0x53, //0x0000130c pushq %rbx - 0x50, //0x0000130d pushq %rax - 0x49, 0x89, 0xcb, //0x0000130e movq %rcx, %r11 - 0x49, 0x89, 0xd4, //0x00001311 movq %rdx, %r12 - 0x48, 0x89, 0xf0, //0x00001314 movq %rsi, %rax - 0x4c, 0x8b, 0x31, //0x00001317 movq (%rcx), %r14 - 0x41, 0xf6, 0xc0, 0x01, //0x0000131a testb $1, %r8b - 0x48, 0x8d, 0x0d, 0xbb, 0xd3, 0x00, 0x00, //0x0000131e leaq $54203(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ - 0x4c, 0x8d, 0x05, 0xb4, 0xe3, 0x00, 0x00, //0x00001325 leaq $58292(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xc1, //0x0000132c cmoveq %rcx, %r8 - 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001330 leaq (,%rsi,8), %rcx - 0x49, 0x39, 0xce, //0x00001338 cmpq %rcx, %r14 - 0x0f, 0x8d, 0xe1, 0x03, 0x00, 0x00, //0x0000133b jge LBB5_51 - 0x4d, 0x89, 0xe7, //0x00001341 movq %r12, %r15 - 0x49, 0x89, 0xfa, //0x00001344 movq %rdi, %r10 - 0x48, 0x85, 0xc0, //0x00001347 testq %rax, %rax - 0x0f, 0x84, 0xc4, 0x03, 0x00, 0x00, //0x0000134a je LBB5_74 - 0xc5, 0xf9, 0x6f, 0x05, 0x78, 0xff, 0xff, 0xff, //0x00001350 vmovdqa $-136(%rip), %xmm0 /* LCPI5_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x80, 0xff, 0xff, 0xff, //0x00001358 vmovdqa $-128(%rip), %xmm1 /* LCPI5_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x88, 0xff, 0xff, 0xff, //0x00001360 vmovdqa $-120(%rip), %xmm2 /* LCPI5_2+0(%rip) */ - 0xc5, 0xe1, 0x76, 0xdb, //0x00001368 vpcmpeqd %xmm3, %xmm3, %xmm3 - 0x49, 0x89, 0xfa, //0x0000136c movq %rdi, %r10 - 0x4d, 0x89, 0xe7, //0x0000136f movq %r12, %r15 - 0x4c, 0x89, 0x65, 0xd0, //0x00001372 movq %r12, $-48(%rbp) - //0x00001376 LBB5_3 - 0x4c, 0x89, 0xda, //0x00001376 movq %r11, %rdx - 0x48, 0x83, 0xf8, 0x0f, //0x00001379 cmpq $15, %rax - 0x41, 0x0f, 0x9f, 0xc3, //0x0000137d setg %r11b - 0x4d, 0x89, 0xf1, //0x00001381 movq %r14, %r9 - 0x4d, 0x89, 0xfd, //0x00001384 movq %r15, %r13 - 0x48, 0x89, 0xc6, //0x00001387 movq %rax, %rsi - 0x4d, 0x89, 0xd4, //0x0000138a movq %r10, %r12 - 0x49, 0x83, 0xfe, 0x10, //0x0000138d cmpq $16, %r14 - 0x0f, 0x8c, 0x89, 0x00, 0x00, 0x00, //0x00001391 jl LBB5_9 - 0x48, 0x83, 0xf8, 0x10, //0x00001397 cmpq $16, %rax - 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x0000139b jl LBB5_9 - 0x4d, 0x89, 0xd4, //0x000013a1 movq %r10, %r12 - 0x48, 0x89, 0xc6, //0x000013a4 movq %rax, %rsi - 0x4d, 0x89, 0xfd, //0x000013a7 movq %r15, %r13 - 0x4c, 0x89, 0xf3, //0x000013aa movq %r14, %rbx - 0x90, 0x90, 0x90, //0x000013ad .p2align 4, 0x90 - //0x000013b0 LBB5_6 - 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x000013b0 vmovdqu (%r12), %xmm4 - 0xc5, 0xf9, 0x64, 0xec, //0x000013b6 vpcmpgtb %xmm4, %xmm0, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x000013ba vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xd9, 0x74, 0xfa, //0x000013be vpcmpeqb %xmm2, %xmm4, %xmm7 - 0xc5, 0xc1, 0xeb, 0xf6, //0x000013c2 vpor %xmm6, %xmm7, %xmm6 - 0xc4, 0xc1, 0x7a, 0x7f, 0x65, 0x00, //0x000013c6 vmovdqu %xmm4, (%r13) - 0xc5, 0xd9, 0x64, 0xe3, //0x000013cc vpcmpgtb %xmm3, %xmm4, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe5, //0x000013d0 vpand %xmm5, %xmm4, %xmm4 - 0xc5, 0xc9, 0xeb, 0xe4, //0x000013d4 vpor %xmm4, %xmm6, %xmm4 - 0xc5, 0xf9, 0xd7, 0xcc, //0x000013d8 vpmovmskb %xmm4, %ecx - 0x66, 0x85, 0xc9, //0x000013dc testw %cx, %cx - 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x000013df jne LBB5_19 - 0x49, 0x83, 0xc4, 0x10, //0x000013e5 addq $16, %r12 - 0x49, 0x83, 0xc5, 0x10, //0x000013e9 addq $16, %r13 - 0x4c, 0x8d, 0x4b, 0xf0, //0x000013ed leaq $-16(%rbx), %r9 - 0x48, 0x83, 0xfe, 0x1f, //0x000013f1 cmpq $31, %rsi - 0x41, 0x0f, 0x9f, 0xc3, //0x000013f5 setg %r11b - 0x48, 0x83, 0xfe, 0x20, //0x000013f9 cmpq $32, %rsi - 0x48, 0x8d, 0x76, 0xf0, //0x000013fd leaq $-16(%rsi), %rsi - 0x0f, 0x8c, 0x19, 0x00, 0x00, 0x00, //0x00001401 jl LBB5_9 - 0x48, 0x83, 0xfb, 0x1f, //0x00001407 cmpq $31, %rbx - 0x4c, 0x89, 0xcb, //0x0000140b movq %r9, %rbx - 0x0f, 0x8f, 0x9c, 0xff, 0xff, 0xff, //0x0000140e jg LBB5_6 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001414 .p2align 4, 0x90 - //0x00001420 LBB5_9 - 0x45, 0x84, 0xdb, //0x00001420 testb %r11b, %r11b - 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001423 je LBB5_13 - 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x00001429 vmovdqu (%r12), %xmm4 - 0xc5, 0xf9, 0x64, 0xec, //0x0000142f vpcmpgtb %xmm4, %xmm0, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x00001433 vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xd9, 0x74, 0xfa, //0x00001437 vpcmpeqb %xmm2, %xmm4, %xmm7 - 0xc5, 0xc1, 0xeb, 0xf6, //0x0000143b vpor %xmm6, %xmm7, %xmm6 - 0xc5, 0xd9, 0x64, 0xfb, //0x0000143f vpcmpgtb %xmm3, %xmm4, %xmm7 - 0xc5, 0xc1, 0xdb, 0xed, //0x00001443 vpand %xmm5, %xmm7, %xmm5 - 0xc5, 0xc9, 0xeb, 0xed, //0x00001447 vpor %xmm5, %xmm6, %xmm5 - 0xc5, 0xf9, 0xd7, 0xcd, //0x0000144b vpmovmskb %xmm5, %ecx - 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000144f orl $65536, %ecx - 0x44, 0x0f, 0xbc, 0xd9, //0x00001455 bsfl %ecx, %r11d - 0xc4, 0xe1, 0xf9, 0x7e, 0xe1, //0x00001459 vmovq %xmm4, %rcx - 0x4d, 0x39, 0xd9, //0x0000145e cmpq %r11, %r9 - 0x0f, 0x8d, 0xb0, 0x00, 0x00, 0x00, //0x00001461 jge LBB5_20 - 0x49, 0x83, 0xf9, 0x08, //0x00001467 cmpq $8, %r9 - 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x0000146b jb LBB5_23 - 0x49, 0x89, 0x4d, 0x00, //0x00001471 movq %rcx, (%r13) - 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x00001475 leaq $8(%r12), %r11 - 0x49, 0x83, 0xc5, 0x08, //0x0000147a addq $8, %r13 - 0x49, 0x8d, 0x71, 0xf8, //0x0000147e leaq $-8(%r9), %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00001482 cmpq $4, %rsi - 0x0f, 0x8d, 0xd0, 0x00, 0x00, 0x00, //0x00001486 jge LBB5_24 - 0xe9, 0xde, 0x00, 0x00, 0x00, //0x0000148c jmp LBB5_25 - //0x00001491 LBB5_13 - 0x4d, 0x85, 0xc9, //0x00001491 testq %r9, %r9 - 0x49, 0x89, 0xd3, //0x00001494 movq %rdx, %r11 - 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00001497 jle LBB5_18 - 0x48, 0x85, 0xf6, //0x0000149d testq %rsi, %rsi - 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000014a0 jle LBB5_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014a6 .p2align 4, 0x90 - //0x000014b0 LBB5_15 - 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000014b0 movzbl (%r12), %ebx - 0x48, 0x89, 0xd9, //0x000014b5 movq %rbx, %rcx - 0x48, 0xc1, 0xe1, 0x04, //0x000014b8 shlq $4, %rcx - 0x48, 0x8d, 0x15, 0x1d, 0xd2, 0x00, 0x00, //0x000014bc leaq $53789(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ - 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000014c3 cmpq $0, (%rcx,%rdx) - 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000014c8 jne LBB5_22 - 0x49, 0xff, 0xc4, //0x000014ce incq %r12 - 0x41, 0x88, 0x5d, 0x00, //0x000014d1 movb %bl, (%r13) - 0x48, 0x83, 0xfe, 0x02, //0x000014d5 cmpq $2, %rsi - 0x48, 0x8d, 0x76, 0xff, //0x000014d9 leaq $-1(%rsi), %rsi - 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000014dd jl LBB5_18 - 0x49, 0xff, 0xc5, //0x000014e3 incq %r13 - 0x49, 0x83, 0xf9, 0x01, //0x000014e6 cmpq $1, %r9 - 0x4d, 0x8d, 0x49, 0xff, //0x000014ea leaq $-1(%r9), %r9 - 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x000014ee jg LBB5_15 - //0x000014f4 LBB5_18 - 0x4d, 0x29, 0xd4, //0x000014f4 subq %r10, %r12 - 0x48, 0xf7, 0xde, //0x000014f7 negq %rsi - 0x4d, 0x19, 0xc9, //0x000014fa sbbq %r9, %r9 - 0x4d, 0x31, 0xe1, //0x000014fd xorq %r12, %r9 - 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x00001500 jmp LBB5_36 - //0x00001505 LBB5_19 - 0x0f, 0xb7, 0xc9, //0x00001505 movzwl %cx, %ecx - 0x4d, 0x29, 0xd4, //0x00001508 subq %r10, %r12 - 0x44, 0x0f, 0xbc, 0xc9, //0x0000150b bsfl %ecx, %r9d - 0x4d, 0x01, 0xe1, //0x0000150f addq %r12, %r9 - 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00001512 jmp LBB5_35 - //0x00001517 LBB5_20 - 0x41, 0x83, 0xfb, 0x08, //0x00001517 cmpl $8, %r11d - 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000151b jb LBB5_29 - 0x49, 0x89, 0x4d, 0x00, //0x00001521 movq %rcx, (%r13) - 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00001525 leaq $8(%r12), %rbx - 0x49, 0x83, 0xc5, 0x08, //0x0000152a addq $8, %r13 - 0x49, 0x8d, 0x73, 0xf8, //0x0000152e leaq $-8(%r11), %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00001532 cmpq $4, %rsi - 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00001536 jge LBB5_30 - 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000153c jmp LBB5_31 - //0x00001541 LBB5_22 - 0x4d, 0x29, 0xd4, //0x00001541 subq %r10, %r12 - 0x4d, 0x89, 0xe1, //0x00001544 movq %r12, %r9 - 0xe9, 0xd7, 0x00, 0x00, 0x00, //0x00001547 jmp LBB5_36 - //0x0000154c LBB5_23 - 0x4d, 0x89, 0xe3, //0x0000154c movq %r12, %r11 - 0x4c, 0x89, 0xce, //0x0000154f movq %r9, %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00001552 cmpq $4, %rsi - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001556 jl LBB5_25 - //0x0000155c LBB5_24 - 0x41, 0x8b, 0x0b, //0x0000155c movl (%r11), %ecx - 0x41, 0x89, 0x4d, 0x00, //0x0000155f movl %ecx, (%r13) - 0x49, 0x83, 0xc3, 0x04, //0x00001563 addq $4, %r11 - 0x49, 0x83, 0xc5, 0x04, //0x00001567 addq $4, %r13 - 0x48, 0x83, 0xc6, 0xfc, //0x0000156b addq $-4, %rsi - //0x0000156f LBB5_25 - 0x48, 0x83, 0xfe, 0x02, //0x0000156f cmpq $2, %rsi - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00001573 jb LBB5_26 - 0x41, 0x0f, 0xb7, 0x0b, //0x00001579 movzwl (%r11), %ecx - 0x66, 0x41, 0x89, 0x4d, 0x00, //0x0000157d movw %cx, (%r13) - 0x49, 0x83, 0xc3, 0x02, //0x00001582 addq $2, %r11 - 0x49, 0x83, 0xc5, 0x02, //0x00001586 addq $2, %r13 - 0x48, 0x83, 0xc6, 0xfe, //0x0000158a addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x0000158e testq %rsi, %rsi - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001591 jne LBB5_27 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001597 jmp LBB5_28 - //0x0000159c LBB5_26 - 0x48, 0x85, 0xf6, //0x0000159c testq %rsi, %rsi - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000159f je LBB5_28 - //0x000015a5 LBB5_27 - 0x41, 0x8a, 0x0b, //0x000015a5 movb (%r11), %cl - 0x41, 0x88, 0x4d, 0x00, //0x000015a8 movb %cl, (%r13) - //0x000015ac LBB5_28 - 0x4d, 0x29, 0xd1, //0x000015ac subq %r10, %r9 - 0x4d, 0x01, 0xe1, //0x000015af addq %r12, %r9 - 0x49, 0xf7, 0xd1, //0x000015b2 notq %r9 - 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000015b5 jmp LBB5_35 - //0x000015ba LBB5_29 - 0x4c, 0x89, 0xe3, //0x000015ba movq %r12, %rbx - 0x4c, 0x89, 0xde, //0x000015bd movq %r11, %rsi - 0x48, 0x83, 0xfe, 0x04, //0x000015c0 cmpq $4, %rsi - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000015c4 jl LBB5_31 - //0x000015ca LBB5_30 - 0x8b, 0x0b, //0x000015ca movl (%rbx), %ecx - 0x41, 0x89, 0x4d, 0x00, //0x000015cc movl %ecx, (%r13) - 0x48, 0x83, 0xc3, 0x04, //0x000015d0 addq $4, %rbx - 0x49, 0x83, 0xc5, 0x04, //0x000015d4 addq $4, %r13 - 0x48, 0x83, 0xc6, 0xfc, //0x000015d8 addq $-4, %rsi - //0x000015dc LBB5_31 - 0x48, 0x83, 0xfe, 0x02, //0x000015dc cmpq $2, %rsi - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000015e0 jb LBB5_32 - 0x0f, 0xb7, 0x0b, //0x000015e6 movzwl (%rbx), %ecx - 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000015e9 movw %cx, (%r13) - 0x48, 0x83, 0xc3, 0x02, //0x000015ee addq $2, %rbx - 0x49, 0x83, 0xc5, 0x02, //0x000015f2 addq $2, %r13 - 0x48, 0x83, 0xc6, 0xfe, //0x000015f6 addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x000015fa testq %rsi, %rsi - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000015fd jne LBB5_33 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001603 jmp LBB5_34 - //0x00001608 LBB5_32 - 0x48, 0x85, 0xf6, //0x00001608 testq %rsi, %rsi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000160b je LBB5_34 - //0x00001611 LBB5_33 - 0x8a, 0x0b, //0x00001611 movb (%rbx), %cl - 0x41, 0x88, 0x4d, 0x00, //0x00001613 movb %cl, (%r13) - //0x00001617 LBB5_34 - 0x4d, 0x29, 0xd4, //0x00001617 subq %r10, %r12 - 0x4d, 0x01, 0xdc, //0x0000161a addq %r11, %r12 - 0x4d, 0x89, 0xe1, //0x0000161d movq %r12, %r9 - //0x00001620 LBB5_35 - 0x49, 0x89, 0xd3, //0x00001620 movq %rdx, %r11 - //0x00001623 LBB5_36 - 0x4d, 0x85, 0xc9, //0x00001623 testq %r9, %r9 - 0x4c, 0x8b, 0x65, 0xd0, //0x00001626 movq $-48(%rbp), %r12 - 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000162a movabsq $12884901889, %r13 - 0x0f, 0x88, 0x46, 0x03, 0x00, 0x00, //0x00001634 js LBB5_78 - 0x4d, 0x01, 0xca, //0x0000163a addq %r9, %r10 - 0x4d, 0x01, 0xcf, //0x0000163d addq %r9, %r15 - 0x4c, 0x39, 0xc8, //0x00001640 cmpq %r9, %rax - 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x00001643 je LBB5_74 - 0x4d, 0x29, 0xce, //0x00001649 subq %r9, %r14 - 0x49, 0x29, 0xc1, //0x0000164c subq %rax, %r9 - 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x0000164f jmp LBB5_40 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001654 .p2align 4, 0x90 - //0x00001660 LBB5_39 - 0x49, 0xff, 0xc2, //0x00001660 incq %r10 - 0x49, 0x01, 0xc7, //0x00001663 addq %rax, %r15 - 0x49, 0xff, 0xc1, //0x00001666 incq %r9 - 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00001669 je LBB5_74 - //0x0000166f LBB5_40 - 0x41, 0x0f, 0xb6, 0x0a, //0x0000166f movzbl (%r10), %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00001673 shlq $4, %rcx - 0x49, 0x8b, 0x1c, 0x08, //0x00001677 movq (%r8,%rcx), %rbx - 0x85, 0xdb, //0x0000167b testl %ebx, %ebx - 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000167d je LBB5_48 - 0x48, 0x63, 0xc3, //0x00001683 movslq %ebx, %rax - 0x49, 0x29, 0xc6, //0x00001686 subq %rax, %r14 - 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x00001689 jl LBB5_75 - 0x48, 0xc1, 0xe3, 0x20, //0x0000168f shlq $32, %rbx - 0x49, 0x8d, 0x74, 0x08, 0x08, //0x00001693 leaq $8(%r8,%rcx), %rsi - 0x4c, 0x39, 0xeb, //0x00001698 cmpq %r13, %rbx - 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x0000169b jl LBB5_44 - 0x8b, 0x36, //0x000016a1 movl (%rsi), %esi - 0x41, 0x89, 0x37, //0x000016a3 movl %esi, (%r15) - 0x49, 0x8d, 0x74, 0x08, 0x0c, //0x000016a6 leaq $12(%r8,%rcx), %rsi - 0x49, 0x8d, 0x5f, 0x04, //0x000016ab leaq $4(%r15), %rbx - 0x48, 0x8d, 0x48, 0xfc, //0x000016af leaq $-4(%rax), %rcx - 0x48, 0x83, 0xf9, 0x02, //0x000016b3 cmpq $2, %rcx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000016b7 jae LBB5_45 - 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000016bd jmp LBB5_46 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000016c2 .p2align 4, 0x90 - //0x000016d0 LBB5_44 - 0x4c, 0x89, 0xfb, //0x000016d0 movq %r15, %rbx - 0x48, 0x89, 0xc1, //0x000016d3 movq %rax, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x000016d6 cmpq $2, %rcx - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000016da jb LBB5_46 - //0x000016e0 LBB5_45 - 0x0f, 0xb7, 0x16, //0x000016e0 movzwl (%rsi), %edx - 0x66, 0x89, 0x13, //0x000016e3 movw %dx, (%rbx) - 0x48, 0x83, 0xc6, 0x02, //0x000016e6 addq $2, %rsi - 0x48, 0x83, 0xc3, 0x02, //0x000016ea addq $2, %rbx - 0x48, 0x83, 0xc1, 0xfe, //0x000016ee addq $-2, %rcx - //0x000016f2 LBB5_46 - 0x48, 0x85, 0xc9, //0x000016f2 testq %rcx, %rcx - 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x000016f5 je LBB5_39 - 0x0f, 0xb6, 0x0e, //0x000016fb movzbl (%rsi), %ecx - 0x88, 0x0b, //0x000016fe movb %cl, (%rbx) - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00001700 jmp LBB5_39 - //0x00001705 LBB5_48 - 0x4c, 0x89, 0xc8, //0x00001705 movq %r9, %rax - 0x48, 0xf7, 0xd8, //0x00001708 negq %rax - 0x4d, 0x85, 0xc9, //0x0000170b testq %r9, %r9 - 0x0f, 0x85, 0x62, 0xfc, 0xff, 0xff, //0x0000170e jne LBB5_3 - //0x00001714 LBB5_74 - 0x4d, 0x29, 0xe7, //0x00001714 subq %r12, %r15 - 0x4d, 0x89, 0x3b, //0x00001717 movq %r15, (%r11) - 0x49, 0x29, 0xfa, //0x0000171a subq %rdi, %r10 - 0xe9, 0x4c, 0x02, 0x00, 0x00, //0x0000171d jmp LBB5_76 - //0x00001722 LBB5_51 - 0x4c, 0x8d, 0x0d, 0xb7, 0xef, 0x00, 0x00, //0x00001722 leaq $61367(%rip), %r9 /* __EscTab+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x05, 0x9f, 0xfb, 0xff, 0xff, //0x00001729 vmovdqa $-1121(%rip), %xmm0 /* LCPI5_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfb, 0xff, 0xff, //0x00001731 vmovdqa $-1113(%rip), %xmm1 /* LCPI5_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00001739 vmovdqa $-1105(%rip), %xmm2 /* LCPI5_2+0(%rip) */ - 0xc5, 0xe1, 0x76, 0xdb, //0x00001741 vpcmpeqd %xmm3, %xmm3, %xmm3 - 0x4c, 0x89, 0xe3, //0x00001745 movq %r12, %rbx - 0x49, 0x89, 0xc2, //0x00001748 movq %rax, %r10 - //0x0000174b LBB5_52 - 0x49, 0x83, 0xfa, 0x10, //0x0000174b cmpq $16, %r10 - 0x0f, 0x8c, 0x5e, 0x00, 0x00, 0x00, //0x0000174f jl LBB5_57 - 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001755 movl $16, %ecx - 0x31, 0xf6, //0x0000175a xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, //0x0000175c .p2align 4, 0x90 - //0x00001760 LBB5_54 - 0xc5, 0xfa, 0x6f, 0x24, 0x37, //0x00001760 vmovdqu (%rdi,%rsi), %xmm4 - 0xc5, 0xf9, 0x64, 0xec, //0x00001765 vpcmpgtb %xmm4, %xmm0, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x00001769 vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xd9, 0x74, 0xfa, //0x0000176d vpcmpeqb %xmm2, %xmm4, %xmm7 - 0xc5, 0xc1, 0xeb, 0xf6, //0x00001771 vpor %xmm6, %xmm7, %xmm6 - 0xc5, 0xfa, 0x7f, 0x24, 0x33, //0x00001775 vmovdqu %xmm4, (%rbx,%rsi) - 0xc5, 0xd9, 0x64, 0xe3, //0x0000177a vpcmpgtb %xmm3, %xmm4, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe5, //0x0000177e vpand %xmm5, %xmm4, %xmm4 - 0xc5, 0xc9, 0xeb, 0xe4, //0x00001782 vpor %xmm4, %xmm6, %xmm4 - 0xc5, 0xf9, 0xd7, 0xd4, //0x00001786 vpmovmskb %xmm4, %edx - 0x66, 0x85, 0xd2, //0x0000178a testw %dx, %dx - 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x0000178d jne LBB5_67 - 0x48, 0x83, 0xc6, 0x10, //0x00001793 addq $16, %rsi - 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x00001797 leaq $-16(%r10,%rcx), %rdx - 0x48, 0x83, 0xc1, 0xf0, //0x0000179c addq $-16, %rcx - 0x48, 0x83, 0xfa, 0x1f, //0x000017a0 cmpq $31, %rdx - 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x000017a4 jg LBB5_54 - 0x48, 0x01, 0xf7, //0x000017aa addq %rsi, %rdi - 0x49, 0x29, 0xf2, //0x000017ad subq %rsi, %r10 - 0x48, 0x01, 0xf3, //0x000017b0 addq %rsi, %rbx - //0x000017b3 LBB5_57 - 0x49, 0x83, 0xfa, 0x08, //0x000017b3 cmpq $8, %r10 - 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000017b7 jl LBB5_61 - 0x0f, 0xb6, 0x0f, //0x000017bd movzbl (%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017c0 movzbl (%rcx,%r9), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x000017c5 movzbl $1(%rdi), %edx - 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000017c9 movzbl (%rdx,%r9), %edx - 0x01, 0xd2, //0x000017ce addl %edx, %edx - 0x09, 0xca, //0x000017d0 orl %ecx, %edx - 0x0f, 0xb6, 0x4f, 0x02, //0x000017d2 movzbl $2(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000017d6 movzbl (%rcx,%r9), %esi - 0xc1, 0xe6, 0x02, //0x000017db shll $2, %esi - 0x0f, 0xb6, 0x4f, 0x03, //0x000017de movzbl $3(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017e2 movzbl (%rcx,%r9), %ecx - 0xc1, 0xe1, 0x03, //0x000017e7 shll $3, %ecx - 0x09, 0xf1, //0x000017ea orl %esi, %ecx - 0x09, 0xd1, //0x000017ec orl %edx, %ecx - 0x48, 0x8b, 0x17, //0x000017ee movq (%rdi), %rdx - 0x48, 0x89, 0x13, //0x000017f1 movq %rdx, (%rbx) - 0x84, 0xc9, //0x000017f4 testb %cl, %cl - 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x000017f6 jne LBB5_71 - 0x0f, 0xb6, 0x4f, 0x04, //0x000017fc movzbl $4(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001800 movzbl (%rcx,%r9), %ecx - 0x0f, 0xb6, 0x57, 0x05, //0x00001805 movzbl $5(%rdi), %edx - 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001809 movzbl (%rdx,%r9), %edx - 0x01, 0xd2, //0x0000180e addl %edx, %edx - 0x09, 0xca, //0x00001810 orl %ecx, %edx - 0x0f, 0xb6, 0x4f, 0x06, //0x00001812 movzbl $6(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001816 movzbl (%rcx,%r9), %esi - 0xc1, 0xe6, 0x02, //0x0000181b shll $2, %esi - 0x0f, 0xb6, 0x4f, 0x07, //0x0000181e movzbl $7(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001822 movzbl (%rcx,%r9), %ecx - 0xc1, 0xe1, 0x03, //0x00001827 shll $3, %ecx - 0x09, 0xf1, //0x0000182a orl %esi, %ecx - 0x09, 0xd1, //0x0000182c orl %edx, %ecx - 0x84, 0xc9, //0x0000182e testb %cl, %cl - 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00001830 jne LBB5_72 - 0x48, 0x83, 0xc3, 0x08, //0x00001836 addq $8, %rbx - 0x48, 0x83, 0xc7, 0x08, //0x0000183a addq $8, %rdi - 0x49, 0x83, 0xc2, 0xf8, //0x0000183e addq $-8, %r10 - //0x00001842 LBB5_61 - 0x49, 0x83, 0xfa, 0x04, //0x00001842 cmpq $4, %r10 - 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001846 jl LBB5_64 - 0x0f, 0xb6, 0x0f, //0x0000184c movzbl (%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000184f movzbl (%rcx,%r9), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x00001854 movzbl $1(%rdi), %edx - 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001858 movzbl (%rdx,%r9), %edx - 0x01, 0xd2, //0x0000185d addl %edx, %edx - 0x09, 0xca, //0x0000185f orl %ecx, %edx - 0x0f, 0xb6, 0x4f, 0x02, //0x00001861 movzbl $2(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001865 movzbl (%rcx,%r9), %esi - 0xc1, 0xe6, 0x02, //0x0000186a shll $2, %esi - 0x0f, 0xb6, 0x4f, 0x03, //0x0000186d movzbl $3(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001871 movzbl (%rcx,%r9), %ecx - 0xc1, 0xe1, 0x03, //0x00001876 shll $3, %ecx - 0x09, 0xf1, //0x00001879 orl %esi, %ecx - 0x09, 0xd1, //0x0000187b orl %edx, %ecx - 0x8b, 0x17, //0x0000187d movl (%rdi), %edx - 0x89, 0x13, //0x0000187f movl %edx, (%rbx) - 0x84, 0xc9, //0x00001881 testb %cl, %cl - 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001883 jne LBB5_71 - 0x48, 0x83, 0xc3, 0x04, //0x00001889 addq $4, %rbx - 0x48, 0x83, 0xc7, 0x04, //0x0000188d addq $4, %rdi - 0x49, 0x83, 0xc2, 0xfc, //0x00001891 addq $-4, %r10 - //0x00001895 LBB5_64 - 0x4d, 0x85, 0xd2, //0x00001895 testq %r10, %r10 - 0x0f, 0x8e, 0xb9, 0x00, 0x00, 0x00, //0x00001898 jle LBB5_73 - 0x90, 0x90, //0x0000189e .p2align 4, 0x90 - //0x000018a0 LBB5_65 - 0x0f, 0xb6, 0x0f, //0x000018a0 movzbl (%rdi), %ecx - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000018a3 cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000018a8 jne LBB5_68 - 0x48, 0xff, 0xc7, //0x000018ae incq %rdi - 0x88, 0x0b, //0x000018b1 movb %cl, (%rbx) - 0x48, 0xff, 0xc3, //0x000018b3 incq %rbx - 0x49, 0x83, 0xfa, 0x01, //0x000018b6 cmpq $1, %r10 - 0x4d, 0x8d, 0x52, 0xff, //0x000018ba leaq $-1(%r10), %r10 - 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000018be jg LBB5_65 - 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000018c4 jmp LBB5_73 - //0x000018c9 LBB5_67 - 0x0f, 0xb7, 0xca, //0x000018c9 movzwl %dx, %ecx - 0x0f, 0xbc, 0xc9, //0x000018cc bsfl %ecx, %ecx - 0x48, 0x01, 0xcf, //0x000018cf addq %rcx, %rdi - 0x48, 0x01, 0xf7, //0x000018d2 addq %rsi, %rdi - 0x49, 0x29, 0xca, //0x000018d5 subq %rcx, %r10 - 0x49, 0x29, 0xf2, //0x000018d8 subq %rsi, %r10 - 0x48, 0x01, 0xcb, //0x000018db addq %rcx, %rbx - 0x48, 0x01, 0xf3, //0x000018de addq %rsi, %rbx - //0x000018e1 LBB5_68 - 0x8a, 0x0f, //0x000018e1 movb (%rdi), %cl - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 - //0x000018f0 LBB5_69 - 0x48, 0x89, 0xda, //0x000018f0 movq %rbx, %rdx - 0x0f, 0xb6, 0xc9, //0x000018f3 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x000018f6 shlq $4, %rcx - 0x49, 0x63, 0x1c, 0x08, //0x000018fa movslq (%r8,%rcx), %rbx - 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x000018fe movq $8(%r8,%rcx), %rcx - 0x48, 0x89, 0x0a, //0x00001903 movq %rcx, (%rdx) - 0x48, 0x01, 0xd3, //0x00001906 addq %rdx, %rbx - 0x49, 0x83, 0xfa, 0x02, //0x00001909 cmpq $2, %r10 - 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000190d jl LBB5_73 - 0x49, 0xff, 0xca, //0x00001913 decq %r10 - 0x0f, 0xb6, 0x4f, 0x01, //0x00001916 movzbl $1(%rdi), %ecx - 0x48, 0xff, 0xc7, //0x0000191a incq %rdi - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000191d cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001922 jne LBB5_69 - 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x00001928 jmp LBB5_52 - //0x0000192d LBB5_71 - 0x0f, 0xbc, 0xc9, //0x0000192d bsfl %ecx, %ecx - 0x48, 0x01, 0xcf, //0x00001930 addq %rcx, %rdi - 0x49, 0x29, 0xca, //0x00001933 subq %rcx, %r10 - 0x48, 0x01, 0xcb, //0x00001936 addq %rcx, %rbx - 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00001939 jmp LBB5_68 - //0x0000193e LBB5_72 - 0x0f, 0xbc, 0xc9, //0x0000193e bsfl %ecx, %ecx - 0x48, 0x8d, 0x51, 0x04, //0x00001941 leaq $4(%rcx), %rdx - 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00001945 leaq $4(%rdi,%rcx), %rdi - 0x49, 0x29, 0xd2, //0x0000194a subq %rdx, %r10 - 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000194d leaq $4(%rbx,%rcx), %rbx - 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00001952 jmp LBB5_68 - //0x00001957 LBB5_73 - 0x4c, 0x29, 0xe3, //0x00001957 subq %r12, %rbx - 0x49, 0x89, 0x1b, //0x0000195a movq %rbx, (%r11) - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000195d jmp LBB5_77 - //0x00001962 LBB5_75 - 0x4d, 0x29, 0xe7, //0x00001962 subq %r12, %r15 - 0x4d, 0x89, 0x3b, //0x00001965 movq %r15, (%r11) - 0x49, 0xf7, 0xd2, //0x00001968 notq %r10 - 0x49, 0x01, 0xfa, //0x0000196b addq %rdi, %r10 - //0x0000196e LBB5_76 - 0x4c, 0x89, 0xd0, //0x0000196e movq %r10, %rax - //0x00001971 LBB5_77 - 0x48, 0x83, 0xc4, 0x08, //0x00001971 addq $8, %rsp - 0x5b, //0x00001975 popq %rbx - 0x41, 0x5c, //0x00001976 popq %r12 - 0x41, 0x5d, //0x00001978 popq %r13 - 0x41, 0x5e, //0x0000197a popq %r14 - 0x41, 0x5f, //0x0000197c popq %r15 - 0x5d, //0x0000197e popq %rbp - 0xc3, //0x0000197f retq - //0x00001980 LBB5_78 - 0x4d, 0x29, 0xe7, //0x00001980 subq %r12, %r15 - 0x49, 0xf7, 0xd1, //0x00001983 notq %r9 - 0x4d, 0x01, 0xcf, //0x00001986 addq %r9, %r15 - 0x4d, 0x89, 0x3b, //0x00001989 movq %r15, (%r11) - 0x49, 0x29, 0xfa, //0x0000198c subq %rdi, %r10 - 0x4d, 0x01, 0xca, //0x0000198f addq %r9, %r10 - 0x49, 0xf7, 0xd2, //0x00001992 notq %r10 - 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00001995 jmp LBB5_76 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000199a .p2align 4, 0x00 - //0x000019a0 LCPI6_0 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000019a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000019b0 .p2align 4, 0x90 - //0x000019b0 _unquote - 0x55, //0x000019b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000019b1 movq %rsp, %rbp - 0x41, 0x57, //0x000019b4 pushq %r15 - 0x41, 0x56, //0x000019b6 pushq %r14 - 0x41, 0x55, //0x000019b8 pushq %r13 - 0x41, 0x54, //0x000019ba pushq %r12 - 0x53, //0x000019bc pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x000019bd subq $40, %rsp - 0x48, 0x85, 0xf6, //0x000019c1 testq %rsi, %rsi - 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x000019c4 je LBB6_82 - 0x49, 0x89, 0xf3, //0x000019ca movq %rsi, %r11 - 0x48, 0x89, 0x4d, 0xc8, //0x000019cd movq %rcx, $-56(%rbp) - 0x4c, 0x89, 0xc0, //0x000019d1 movq %r8, %rax - 0x4c, 0x89, 0x45, 0xb8, //0x000019d4 movq %r8, $-72(%rbp) - 0x45, 0x89, 0xc2, //0x000019d8 movl %r8d, %r10d - 0x41, 0x83, 0xe2, 0x01, //0x000019db andl $1, %r10d - 0x4c, 0x8d, 0x05, 0xfa, 0xed, 0x00, 0x00, //0x000019df leaq $60922(%rip), %r8 /* __UnquoteTab+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x000019e6 vmovdqa $-78(%rip), %xmm0 /* LCPI6_0+0(%rip) */ - 0x49, 0x89, 0xf9, //0x000019ee movq %rdi, %r9 - 0x49, 0x89, 0xf5, //0x000019f1 movq %rsi, %r13 - 0x48, 0x89, 0xd0, //0x000019f4 movq %rdx, %rax - //0x000019f7 LBB6_2 - 0x41, 0x80, 0x39, 0x5c, //0x000019f7 cmpb $92, (%r9) - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000019fb jne LBB6_4 - 0x31, 0xf6, //0x00001a01 xorl %esi, %esi - 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00001a03 jmp LBB6_13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a08 .p2align 4, 0x90 - //0x00001a10 LBB6_4 - 0x4d, 0x89, 0xef, //0x00001a10 movq %r13, %r15 - 0x48, 0x89, 0xc6, //0x00001a13 movq %rax, %rsi - 0x4d, 0x89, 0xce, //0x00001a16 movq %r9, %r14 - 0x49, 0x83, 0xfd, 0x10, //0x00001a19 cmpq $16, %r13 - 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x00001a1d jl LBB6_7 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a23 .p2align 4, 0x90 - //0x00001a30 LBB6_5 - 0xc4, 0xc1, 0x7a, 0x6f, 0x0e, //0x00001a30 vmovdqu (%r14), %xmm1 - 0xc5, 0xfa, 0x7f, 0x0e, //0x00001a35 vmovdqu %xmm1, (%rsi) - 0xc5, 0xf1, 0x74, 0xc8, //0x00001a39 vpcmpeqb %xmm0, %xmm1, %xmm1 - 0xc5, 0xf9, 0xd7, 0xd9, //0x00001a3d vpmovmskb %xmm1, %ebx - 0x66, 0x85, 0xdb, //0x00001a41 testw %bx, %bx - 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00001a44 jne LBB6_12 - 0x49, 0x83, 0xc6, 0x10, //0x00001a4a addq $16, %r14 - 0x48, 0x83, 0xc6, 0x10, //0x00001a4e addq $16, %rsi - 0x49, 0x83, 0xff, 0x1f, //0x00001a52 cmpq $31, %r15 - 0x4d, 0x8d, 0x7f, 0xf0, //0x00001a56 leaq $-16(%r15), %r15 - 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x00001a5a jg LBB6_5 - //0x00001a60 LBB6_7 - 0x4d, 0x85, 0xff, //0x00001a60 testq %r15, %r15 - 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x00001a63 je LBB6_83 - 0x31, 0xdb, //0x00001a69 xorl %ebx, %ebx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a6b .p2align 4, 0x90 - //0x00001a70 LBB6_9 - 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x00001a70 movzbl (%r14,%rbx), %ecx - 0x80, 0xf9, 0x5c, //0x00001a75 cmpb $92, %cl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001a78 je LBB6_11 - 0x88, 0x0c, 0x1e, //0x00001a7e movb %cl, (%rsi,%rbx) - 0x48, 0xff, 0xc3, //0x00001a81 incq %rbx - 0x49, 0x39, 0xdf, //0x00001a84 cmpq %rbx, %r15 - 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x00001a87 jne LBB6_9 - 0xe9, 0xac, 0x05, 0x00, 0x00, //0x00001a8d jmp LBB6_83 - //0x00001a92 LBB6_11 - 0x49, 0x01, 0xde, //0x00001a92 addq %rbx, %r14 - 0x4d, 0x29, 0xce, //0x00001a95 subq %r9, %r14 - 0x4c, 0x89, 0xf6, //0x00001a98 movq %r14, %rsi - 0x48, 0x83, 0xfe, 0xff, //0x00001a9b cmpq $-1, %rsi - 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00001a9f jne LBB6_13 - 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00001aa5 jmp LBB6_83 - //0x00001aaa LBB6_12 - 0x0f, 0xb7, 0xcb, //0x00001aaa movzwl %bx, %ecx - 0x4d, 0x29, 0xce, //0x00001aad subq %r9, %r14 - 0x48, 0x0f, 0xbc, 0xf1, //0x00001ab0 bsfq %rcx, %rsi - 0x4c, 0x01, 0xf6, //0x00001ab4 addq %r14, %rsi - 0x48, 0x83, 0xfe, 0xff, //0x00001ab7 cmpq $-1, %rsi - 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x00001abb je LBB6_83 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac1 .p2align 4, 0x90 - //0x00001ad0 LBB6_13 - 0x48, 0x8d, 0x4e, 0x02, //0x00001ad0 leaq $2(%rsi), %rcx - 0x49, 0x29, 0xcd, //0x00001ad4 subq %rcx, %r13 - 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00001ad7 js LBB6_94 - 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x00001add leaq $2(%r9,%rsi), %r9 - 0x4d, 0x85, 0xd2, //0x00001ae2 testq %r10, %r10 - 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00001ae5 jne LBB6_58 - //0x00001aeb LBB6_15 - 0x48, 0x01, 0xf0, //0x00001aeb addq %rsi, %rax - 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x00001aee movzbl $-1(%r9), %ecx - 0x42, 0x8a, 0x0c, 0x01, //0x00001af3 movb (%rcx,%r8), %cl - 0x80, 0xf9, 0xff, //0x00001af7 cmpb $-1, %cl - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001afa je LBB6_18 - 0x84, 0xc9, //0x00001b00 testb %cl, %cl - 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00001b02 je LBB6_95 - 0x88, 0x08, //0x00001b08 movb %cl, (%rax) - 0x48, 0xff, 0xc0, //0x00001b0a incq %rax - 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00001b0d jmp LBB6_57 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b12 .p2align 4, 0x90 - //0x00001b20 LBB6_18 - 0x49, 0x83, 0xfd, 0x03, //0x00001b20 cmpq $3, %r13 - 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00001b24 jle LBB6_94 - 0x41, 0x8b, 0x31, //0x00001b2a movl (%r9), %esi - 0x89, 0xf1, //0x00001b2d movl %esi, %ecx - 0xf7, 0xd1, //0x00001b2f notl %ecx - 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001b31 leal $-808464432(%rsi), %ebx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001b37 andl $-2139062144, %ecx - 0x85, 0xd9, //0x00001b3d testl %ebx, %ecx - 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x00001b3f jne LBB6_85 - 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001b45 leal $421075225(%rsi), %ebx - 0x09, 0xf3, //0x00001b4b orl %esi, %ebx - 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001b4d testl $-2139062144, %ebx - 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b53 jne LBB6_85 - 0x89, 0xf3, //0x00001b59 movl %esi, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001b5b andl $2139062143, %ebx - 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001b61 movl $-1061109568, %r14d - 0x41, 0x29, 0xde, //0x00001b67 subl %ebx, %r14d - 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x00001b6a leal $1179010630(%rbx), %r15d - 0x41, 0x21, 0xce, //0x00001b71 andl %ecx, %r14d - 0x45, 0x85, 0xfe, //0x00001b74 testl %r15d, %r14d - 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x00001b77 jne LBB6_85 - 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001b7d movl $-522133280, %r14d - 0x41, 0x29, 0xde, //0x00001b83 subl %ebx, %r14d - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001b86 addl $960051513, %ebx - 0x44, 0x21, 0xf1, //0x00001b8c andl %r14d, %ecx - 0x85, 0xd9, //0x00001b8f testl %ebx, %ecx - 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x00001b91 jne LBB6_85 - 0x0f, 0xce, //0x00001b97 bswapl %esi - 0x89, 0xf1, //0x00001b99 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001b9b shrl $4, %ecx - 0xf7, 0xd1, //0x00001b9e notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001ba0 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001ba6 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001ba9 andl $252645135, %esi - 0x01, 0xce, //0x00001baf addl %ecx, %esi - 0x89, 0xf1, //0x00001bb1 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001bb3 shrl $4, %ecx - 0x09, 0xf1, //0x00001bb6 orl %esi, %ecx - 0x44, 0x0f, 0xb6, 0xf9, //0x00001bb8 movzbl %cl, %r15d - 0xc1, 0xe9, 0x08, //0x00001bbc shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001bbf andl $65280, %ecx - 0x41, 0x09, 0xcf, //0x00001bc5 orl %ecx, %r15d - 0x4d, 0x8d, 0x75, 0xfc, //0x00001bc8 leaq $-4(%r13), %r14 - 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00001bcc cmpl $128, %r15d - 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00001bd3 jb LBB6_66 - 0x45, 0x31, 0xe4, //0x00001bd9 xorl %r12d, %r12d - 0x4d, 0x85, 0xd2, //0x00001bdc testq %r10, %r10 - 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x00001bdf je LBB6_40 - //0x00001be5 LBB6_25 - 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001be5 cmpl $2048, %r15d - 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x00001bec jb LBB6_68 - 0x44, 0x89, 0xf9, //0x00001bf2 movl %r15d, %ecx - 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001bf5 andl $-2048, %ecx - 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001bfb cmpl $55296, %ecx - 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00001c01 jne LBB6_54 - 0x4d, 0x85, 0xf6, //0x00001c07 testq %r14, %r14 - 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x00001c0a jle LBB6_72 - 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001c10 cmpb $92, $4(%r9,%r12) - 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00001c16 jne LBB6_73 - 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001c1c cmpl $56319, %r15d - 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00001c23 ja LBB6_70 - 0x49, 0x83, 0xfe, 0x07, //0x00001c29 cmpq $7, %r14 - 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x00001c2d jl LBB6_70 - 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00001c33 cmpb $92, $5(%r9,%r12) - 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00001c39 jne LBB6_70 - 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x00001c3f cmpb $117, $6(%r9,%r12) - 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x00001c45 jne LBB6_70 - 0x43, 0x8b, 0x74, 0x21, 0x07, //0x00001c4b movl $7(%r9,%r12), %esi - 0x89, 0xf1, //0x00001c50 movl %esi, %ecx - 0xf7, 0xd1, //0x00001c52 notl %ecx - 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c54 leal $-808464432(%rsi), %ebx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001c5a andl $-2139062144, %ecx - 0x85, 0xd9, //0x00001c60 testl %ebx, %ecx - 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00001c62 jne LBB6_99 - 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001c68 leal $421075225(%rsi), %ebx - 0x09, 0xf3, //0x00001c6e orl %esi, %ebx - 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001c70 testl $-2139062144, %ebx - 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x00001c76 jne LBB6_99 - 0x89, 0xf3, //0x00001c7c movl %esi, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c7e andl $2139062143, %ebx - 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c84 movl $-1061109568, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001c8b subl %ebx, $-44(%rbp) - 0x48, 0x89, 0x75, 0xb0, //0x00001c8e movq %rsi, $-80(%rbp) - 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001c92 leal $1179010630(%rbx), %esi - 0x89, 0x75, 0xc4, //0x00001c98 movl %esi, $-60(%rbp) - 0x21, 0x4d, 0xd4, //0x00001c9b andl %ecx, $-44(%rbp) - 0x8b, 0x75, 0xc4, //0x00001c9e movl $-60(%rbp), %esi - 0x85, 0x75, 0xd4, //0x00001ca1 testl %esi, $-44(%rbp) - 0x48, 0x8b, 0x75, 0xb0, //0x00001ca4 movq $-80(%rbp), %rsi - 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00001ca8 jne LBB6_99 - 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001cae movl $-522133280, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001cb5 subl %ebx, $-44(%rbp) - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001cb8 addl $960051513, %ebx - 0x23, 0x4d, 0xd4, //0x00001cbe andl $-44(%rbp), %ecx - 0x85, 0xd9, //0x00001cc1 testl %ebx, %ecx - 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00001cc3 jne LBB6_99 - 0x0f, 0xce, //0x00001cc9 bswapl %esi - 0x89, 0xf1, //0x00001ccb movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001ccd shrl $4, %ecx - 0xf7, 0xd1, //0x00001cd0 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001cd2 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001cd8 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001cdb andl $252645135, %esi - 0x01, 0xce, //0x00001ce1 addl %ecx, %esi - 0x89, 0xf1, //0x00001ce3 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001ce5 shrl $4, %ecx - 0x09, 0xf1, //0x00001ce8 orl %esi, %ecx - 0x89, 0xce, //0x00001cea movl %ecx, %esi - 0xc1, 0xee, 0x08, //0x00001cec shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001cef andl $65280, %esi - 0x0f, 0xb6, 0xd9, //0x00001cf5 movzbl %cl, %ebx - 0x09, 0xf3, //0x00001cf8 orl %esi, %ebx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001cfa andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001d00 cmpl $14417920, %ecx - 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00001d06 je LBB6_77 - 0xf6, 0x45, 0xb8, 0x02, //0x00001d0c testb $2, $-72(%rbp) - 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00001d10 je LBB6_114 - 0x49, 0x83, 0xc6, 0xf9, //0x00001d16 addq $-7, %r14 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001d1a movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001d1f movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00001d23 addq $3, %rax - 0x49, 0x83, 0xc4, 0x07, //0x00001d27 addq $7, %r12 - 0x41, 0x89, 0xdf, //0x00001d2b movl %ebx, %r15d - 0x83, 0xfb, 0x7f, //0x00001d2e cmpl $127, %ebx - 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00001d31 ja LBB6_25 - 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d37 jmp LBB6_53 - 0x90, 0x90, 0x90, 0x90, //0x00001d3c .p2align 4, 0x90 - //0x00001d40 LBB6_40 - 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001d40 cmpl $2048, %r15d - 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00001d47 jb LBB6_68 - 0x44, 0x89, 0xf9, //0x00001d4d movl %r15d, %ecx - 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001d50 andl $-2048, %ecx - 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001d56 cmpl $55296, %ecx - 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001d5c jne LBB6_54 - 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001d62 cmpl $56319, %r15d - 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x00001d69 ja LBB6_69 - 0x49, 0x83, 0xfe, 0x06, //0x00001d6f cmpq $6, %r14 - 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x00001d73 jl LBB6_69 - 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001d79 cmpb $92, $4(%r9,%r12) - 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x00001d7f jne LBB6_69 - 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00001d85 cmpb $117, $5(%r9,%r12) - 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x00001d8b jne LBB6_69 - 0x43, 0x8b, 0x74, 0x21, 0x06, //0x00001d91 movl $6(%r9,%r12), %esi - 0x89, 0xf1, //0x00001d96 movl %esi, %ecx - 0xf7, 0xd1, //0x00001d98 notl %ecx - 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d9a leal $-808464432(%rsi), %ebx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001da0 andl $-2139062144, %ecx - 0x85, 0xd9, //0x00001da6 testl %ebx, %ecx - 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00001da8 jne LBB6_98 - 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001dae leal $421075225(%rsi), %ebx - 0x09, 0xf3, //0x00001db4 orl %esi, %ebx - 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001db6 testl $-2139062144, %ebx - 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x00001dbc jne LBB6_98 - 0x89, 0xf3, //0x00001dc2 movl %esi, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dc4 andl $2139062143, %ebx - 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dca movl $-1061109568, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001dd1 subl %ebx, $-44(%rbp) - 0x48, 0x89, 0x75, 0xb0, //0x00001dd4 movq %rsi, $-80(%rbp) - 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001dd8 leal $1179010630(%rbx), %esi - 0x89, 0x75, 0xc4, //0x00001dde movl %esi, $-60(%rbp) - 0x21, 0x4d, 0xd4, //0x00001de1 andl %ecx, $-44(%rbp) - 0x8b, 0x75, 0xc4, //0x00001de4 movl $-60(%rbp), %esi - 0x85, 0x75, 0xd4, //0x00001de7 testl %esi, $-44(%rbp) - 0x48, 0x8b, 0x75, 0xb0, //0x00001dea movq $-80(%rbp), %rsi - 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x00001dee jne LBB6_98 - 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001df4 movl $-522133280, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001dfb subl %ebx, $-44(%rbp) - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001dfe addl $960051513, %ebx - 0x23, 0x4d, 0xd4, //0x00001e04 andl $-44(%rbp), %ecx - 0x85, 0xd9, //0x00001e07 testl %ebx, %ecx - 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00001e09 jne LBB6_98 - 0x0f, 0xce, //0x00001e0f bswapl %esi - 0x89, 0xf1, //0x00001e11 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001e13 shrl $4, %ecx - 0xf7, 0xd1, //0x00001e16 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e18 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001e1e leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e21 andl $252645135, %esi - 0x01, 0xce, //0x00001e27 addl %ecx, %esi - 0x89, 0xf1, //0x00001e29 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001e2b shrl $4, %ecx - 0x09, 0xf1, //0x00001e2e orl %esi, %ecx - 0x89, 0xce, //0x00001e30 movl %ecx, %esi - 0xc1, 0xee, 0x08, //0x00001e32 shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001e35 andl $65280, %esi - 0x0f, 0xb6, 0xd9, //0x00001e3b movzbl %cl, %ebx - 0x09, 0xf3, //0x00001e3e orl %esi, %ebx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001e40 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001e46 cmpl $14417920, %ecx - 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00001e4c je LBB6_76 - 0xf6, 0x45, 0xb8, 0x02, //0x00001e52 testb $2, $-72(%rbp) - 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x00001e56 je LBB6_113 - 0x49, 0x83, 0xc6, 0xfa, //0x00001e5c addq $-6, %r14 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001e60 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001e65 movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00001e69 addq $3, %rax - 0x49, 0x83, 0xc4, 0x06, //0x00001e6d addq $6, %r12 - 0x41, 0x89, 0xdf, //0x00001e71 movl %ebx, %r15d - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e74 cmpl $128, %ebx - 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00001e7a jae LBB6_40 - //0x00001e80 LBB6_53 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e80 leaq $4(%r9,%r12), %r9 - 0x41, 0x89, 0xdf, //0x00001e85 movl %ebx, %r15d - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00001e88 jmp LBB6_67 - 0x90, 0x90, 0x90, //0x00001e8d .p2align 4, 0x90 - //0x00001e90 LBB6_54 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e90 leaq $4(%r9,%r12), %r9 - 0x44, 0x89, 0xf9, //0x00001e95 movl %r15d, %ecx - 0xc1, 0xe9, 0x0c, //0x00001e98 shrl $12, %ecx - 0x80, 0xc9, 0xe0, //0x00001e9b orb $-32, %cl - 0x88, 0x08, //0x00001e9e movb %cl, (%rax) - 0x44, 0x89, 0xf9, //0x00001ea0 movl %r15d, %ecx - 0xc1, 0xe9, 0x06, //0x00001ea3 shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x00001ea6 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00001ea9 orb $-128, %cl - 0x88, 0x48, 0x01, //0x00001eac movb %cl, $1(%rax) - 0x41, 0x80, 0xe7, 0x3f, //0x00001eaf andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00001eb3 orb $-128, %r15b - 0x44, 0x88, 0x78, 0x02, //0x00001eb7 movb %r15b, $2(%rax) - //0x00001ebb LBB6_55 - 0x48, 0x83, 0xc0, 0x03, //0x00001ebb addq $3, %rax - //0x00001ebf LBB6_56 - 0x4d, 0x89, 0xf5, //0x00001ebf movq %r14, %r13 - //0x00001ec2 LBB6_57 - 0x4d, 0x85, 0xed, //0x00001ec2 testq %r13, %r13 - 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00001ec5 jne LBB6_2 - 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001ecb jmp LBB6_96 - //0x00001ed0 LBB6_58 - 0x45, 0x85, 0xed, //0x00001ed0 testl %r13d, %r13d - 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00001ed3 je LBB6_94 - 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00001ed9 cmpb $92, $-1(%r9) - 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x00001ede jne LBB6_97 - 0x41, 0x80, 0x39, 0x5c, //0x00001ee4 cmpb $92, (%r9) - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00001ee8 jne LBB6_65 - 0x41, 0x83, 0xfd, 0x01, //0x00001eee cmpl $1, %r13d - 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00001ef2 jle LBB6_94 - 0x41, 0x8a, 0x49, 0x01, //0x00001ef8 movb $1(%r9), %cl - 0x80, 0xf9, 0x22, //0x00001efc cmpb $34, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00001eff je LBB6_64 - 0x80, 0xf9, 0x5c, //0x00001f05 cmpb $92, %cl - 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00001f08 jne LBB6_109 - //0x00001f0e LBB6_64 - 0x49, 0xff, 0xc1, //0x00001f0e incq %r9 - 0x49, 0xff, 0xcd, //0x00001f11 decq %r13 - //0x00001f14 LBB6_65 - 0x49, 0xff, 0xc1, //0x00001f14 incq %r9 - 0x49, 0xff, 0xcd, //0x00001f17 decq %r13 - 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x00001f1a jmp LBB6_15 - //0x00001f1f LBB6_66 - 0x49, 0x83, 0xc1, 0x04, //0x00001f1f addq $4, %r9 - //0x00001f23 LBB6_67 - 0x44, 0x88, 0x38, //0x00001f23 movb %r15b, (%rax) - 0x48, 0xff, 0xc0, //0x00001f26 incq %rax - 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00001f29 jmp LBB6_56 - //0x00001f2e LBB6_68 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f2e leaq $4(%r9,%r12), %r9 - 0x44, 0x89, 0xf9, //0x00001f33 movl %r15d, %ecx - 0xc1, 0xe9, 0x06, //0x00001f36 shrl $6, %ecx - 0x80, 0xc9, 0xc0, //0x00001f39 orb $-64, %cl - 0x88, 0x08, //0x00001f3c movb %cl, (%rax) - 0x41, 0x80, 0xe7, 0x3f, //0x00001f3e andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00001f42 orb $-128, %r15b - 0x44, 0x88, 0x78, 0x01, //0x00001f46 movb %r15b, $1(%rax) - 0x48, 0x83, 0xc0, 0x02, //0x00001f4a addq $2, %rax - 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x00001f4e jmp LBB6_56 - //0x00001f53 LBB6_69 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f53 leaq $4(%r9,%r12), %r9 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001f58 jmp LBB6_71 - //0x00001f5d LBB6_70 - 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x00001f5d leaq $5(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00001f62 subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xfb, //0x00001f65 addq $-5, %r13 - 0x4d, 0x89, 0xee, //0x00001f69 movq %r13, %r14 - //0x00001f6c LBB6_71 - 0xf6, 0x45, 0xb8, 0x02, //0x00001f6c testb $2, $-72(%rbp) - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_75 - 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00001f76 jmp LBB6_116 - //0x00001f7b LBB6_72 - 0xf6, 0x45, 0xb8, 0x02, //0x00001f7b testb $2, $-72(%rbp) - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001f7f jne LBB6_74 - 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x00001f85 jmp LBB6_94 - //0x00001f8a LBB6_73 - 0xf6, 0x45, 0xb8, 0x02, //0x00001f8a testb $2, $-72(%rbp) - 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x00001f8e je LBB6_117 - //0x00001f94 LBB6_74 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f94 leaq $4(%r9,%r12), %r9 - //0x00001f99 LBB6_75 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001f99 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001f9e movb $-67, $2(%rax) - 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00001fa2 jmp LBB6_55 - //0x00001fa7 LBB6_76 - 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00001fa7 leaq $10(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00001fac subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xf6, //0x00001faf addq $-10, %r13 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001fb3 jmp LBB6_78 - //0x00001fb8 LBB6_77 - 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00001fb8 leaq $11(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00001fbd subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xf5, //0x00001fc0 addq $-11, %r13 - //0x00001fc4 LBB6_78 - 0x41, 0xc1, 0xe7, 0x0a, //0x00001fc4 shll $10, %r15d - 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00001fc8 leal $-56613888(%r15,%rbx), %ecx - 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00001fd0 cmpl $1114112, %ecx - 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00001fd6 jb LBB6_81 - 0xf6, 0x45, 0xb8, 0x02, //0x00001fdc testb $2, $-72(%rbp) - 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00001fe0 je LBB6_111 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001fe6 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001feb movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00001fef addq $3, %rax - 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00001ff3 jmp LBB6_57 - //0x00001ff8 LBB6_81 - 0x89, 0xce, //0x00001ff8 movl %ecx, %esi - 0xc1, 0xee, 0x12, //0x00001ffa shrl $18, %esi - 0x40, 0x80, 0xce, 0xf0, //0x00001ffd orb $-16, %sil - 0x40, 0x88, 0x30, //0x00002001 movb %sil, (%rax) - 0x89, 0xce, //0x00002004 movl %ecx, %esi - 0xc1, 0xee, 0x0c, //0x00002006 shrl $12, %esi - 0x40, 0x80, 0xe6, 0x3f, //0x00002009 andb $63, %sil - 0x40, 0x80, 0xce, 0x80, //0x0000200d orb $-128, %sil - 0x40, 0x88, 0x70, 0x01, //0x00002011 movb %sil, $1(%rax) - 0x89, 0xce, //0x00002015 movl %ecx, %esi - 0xc1, 0xee, 0x06, //0x00002017 shrl $6, %esi - 0x40, 0x80, 0xe6, 0x3f, //0x0000201a andb $63, %sil - 0x40, 0x80, 0xce, 0x80, //0x0000201e orb $-128, %sil - 0x40, 0x88, 0x70, 0x02, //0x00002022 movb %sil, $2(%rax) - 0x80, 0xe1, 0x3f, //0x00002026 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00002029 orb $-128, %cl - 0x88, 0x48, 0x03, //0x0000202c movb %cl, $3(%rax) - 0x48, 0x83, 0xc0, 0x04, //0x0000202f addq $4, %rax - 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00002033 jmp LBB6_57 - //0x00002038 LBB6_82 - 0x45, 0x31, 0xed, //0x00002038 xorl %r13d, %r13d - 0x48, 0x89, 0xd0, //0x0000203b movq %rdx, %rax - //0x0000203e LBB6_83 - 0x4c, 0x01, 0xe8, //0x0000203e addq %r13, %rax - 0x48, 0x29, 0xd0, //0x00002041 subq %rdx, %rax - //0x00002044 LBB6_84 - 0x48, 0x83, 0xc4, 0x28, //0x00002044 addq $40, %rsp - 0x5b, //0x00002048 popq %rbx - 0x41, 0x5c, //0x00002049 popq %r12 - 0x41, 0x5d, //0x0000204b popq %r13 - 0x41, 0x5e, //0x0000204d popq %r14 - 0x41, 0x5f, //0x0000204f popq %r15 - 0x5d, //0x00002051 popq %rbp - 0xc3, //0x00002052 retq - //0x00002053 LBB6_85 - 0x4c, 0x89, 0xca, //0x00002053 movq %r9, %rdx - 0x48, 0x29, 0xfa, //0x00002056 subq %rdi, %rdx - 0x48, 0x8b, 0x7d, 0xc8, //0x00002059 movq $-56(%rbp), %rdi - 0x48, 0x89, 0x17, //0x0000205d movq %rdx, (%rdi) - 0x41, 0x8a, 0x09, //0x00002060 movb (%r9), %cl - 0x8d, 0x71, 0xd0, //0x00002063 leal $-48(%rcx), %esi - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002066 movq $-2, %rax - 0x40, 0x80, 0xfe, 0x0a, //0x0000206d cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002071 jb LBB6_87 - 0x80, 0xe1, 0xdf, //0x00002077 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x0000207a addb $-65, %cl - 0x80, 0xf9, 0x05, //0x0000207d cmpb $5, %cl - 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x00002080 ja LBB6_84 - //0x00002086 LBB6_87 - 0x48, 0x8d, 0x4a, 0x01, //0x00002086 leaq $1(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x0000208a movq %rcx, (%rdi) - 0x41, 0x8a, 0x49, 0x01, //0x0000208d movb $1(%r9), %cl - 0x8d, 0x71, 0xd0, //0x00002091 leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x00002094 cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002098 jb LBB6_89 - 0x80, 0xe1, 0xdf, //0x0000209e andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000020a1 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000020a4 cmpb $5, %cl - 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x000020a7 ja LBB6_84 - //0x000020ad LBB6_89 - 0x48, 0x8d, 0x4a, 0x02, //0x000020ad leaq $2(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x000020b1 movq %rcx, (%rdi) - 0x41, 0x8a, 0x49, 0x02, //0x000020b4 movb $2(%r9), %cl - 0x8d, 0x71, 0xd0, //0x000020b8 leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x000020bb cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020bf jb LBB6_91 - 0x80, 0xe1, 0xdf, //0x000020c5 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000020c8 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000020cb cmpb $5, %cl - 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x000020ce ja LBB6_84 - //0x000020d4 LBB6_91 - 0x48, 0x8d, 0x4a, 0x03, //0x000020d4 leaq $3(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x000020d8 movq %rcx, (%rdi) - 0x41, 0x8a, 0x49, 0x03, //0x000020db movb $3(%r9), %cl - 0x8d, 0x71, 0xd0, //0x000020df leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x000020e2 cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020e6 jb LBB6_93 - 0x80, 0xe1, 0xdf, //0x000020ec andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000020ef addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000020f2 cmpb $5, %cl - 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000020f5 ja LBB6_84 - //0x000020fb LBB6_93 - 0x48, 0x83, 0xc2, 0x04, //0x000020fb addq $4, %rdx - 0x48, 0x89, 0x17, //0x000020ff movq %rdx, (%rdi) - 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002102 jmp LBB6_84 - //0x00002107 LBB6_94 - 0x48, 0x8b, 0x45, 0xc8, //0x00002107 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x18, //0x0000210b movq %r11, (%rax) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000210e movq $-1, %rax - 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00002115 jmp LBB6_84 - //0x0000211a LBB6_95 - 0x48, 0xf7, 0xd7, //0x0000211a notq %rdi - 0x49, 0x01, 0xf9, //0x0000211d addq %rdi, %r9 - 0x48, 0x8b, 0x45, 0xc8, //0x00002120 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x08, //0x00002124 movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00002127 movq $-3, %rax - 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000212e jmp LBB6_84 - //0x00002133 LBB6_96 - 0x45, 0x31, 0xed, //0x00002133 xorl %r13d, %r13d - 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00002136 jmp LBB6_83 - //0x0000213b LBB6_97 - 0x48, 0xf7, 0xd7, //0x0000213b notq %rdi - 0x49, 0x01, 0xf9, //0x0000213e addq %rdi, %r9 - 0xe9, 0xda, 0x00, 0x00, 0x00, //0x00002141 jmp LBB6_110 - //0x00002146 LBB6_98 - 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x00002146 leaq $4(%r9,%r12), %rsi - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000214b jmp LBB6_100 - //0x00002150 LBB6_99 - 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002150 leaq $5(%r9,%r12), %rsi - //0x00002155 LBB6_100 - 0x48, 0x89, 0xf2, //0x00002155 movq %rsi, %rdx - 0x48, 0x29, 0xfa, //0x00002158 subq %rdi, %rdx - 0x48, 0x83, 0xc2, 0x02, //0x0000215b addq $2, %rdx - 0x48, 0x8b, 0x45, 0xc8, //0x0000215f movq $-56(%rbp), %rax - 0x48, 0x89, 0x10, //0x00002163 movq %rdx, (%rax) - 0x8a, 0x4e, 0x02, //0x00002166 movb $2(%rsi), %cl - 0x8d, 0x79, 0xd0, //0x00002169 leal $-48(%rcx), %edi - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000216c movq $-2, %rax - 0x40, 0x80, 0xff, 0x0a, //0x00002173 cmpb $10, %dil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002177 jb LBB6_102 - 0x80, 0xe1, 0xdf, //0x0000217d andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x00002180 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x00002183 cmpb $5, %cl - 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x00002186 ja LBB6_84 - //0x0000218c LBB6_102 - 0x48, 0x8d, 0x4a, 0x01, //0x0000218c leaq $1(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xc8, //0x00002190 movq $-56(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x00002194 movq %rcx, (%rdi) - 0x8a, 0x4e, 0x03, //0x00002197 movb $3(%rsi), %cl - 0x8d, 0x79, 0xd0, //0x0000219a leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x0000219d cmpb $10, %dil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021a1 jb LBB6_104 - 0x80, 0xe1, 0xdf, //0x000021a7 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000021aa addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000021ad cmpb $5, %cl - 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x000021b0 ja LBB6_84 - //0x000021b6 LBB6_104 - 0x48, 0x8d, 0x4a, 0x02, //0x000021b6 leaq $2(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xc8, //0x000021ba movq $-56(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x000021be movq %rcx, (%rdi) - 0x8a, 0x4e, 0x04, //0x000021c1 movb $4(%rsi), %cl - 0x8d, 0x79, 0xd0, //0x000021c4 leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x000021c7 cmpb $10, %dil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021cb jb LBB6_106 - 0x80, 0xe1, 0xdf, //0x000021d1 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000021d4 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000021d7 cmpb $5, %cl - 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x000021da ja LBB6_84 - //0x000021e0 LBB6_106 - 0x48, 0x8d, 0x4a, 0x03, //0x000021e0 leaq $3(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xc8, //0x000021e4 movq $-56(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x000021e8 movq %rcx, (%rdi) - 0x8a, 0x4e, 0x05, //0x000021eb movb $5(%rsi), %cl - 0x8d, 0x71, 0xd0, //0x000021ee leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x000021f1 cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021f5 jb LBB6_108 - 0x80, 0xe1, 0xdf, //0x000021fb andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000021fe addb $-65, %cl - 0x80, 0xf9, 0x05, //0x00002201 cmpb $5, %cl - 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00002204 ja LBB6_84 - //0x0000220a LBB6_108 - 0x48, 0x83, 0xc2, 0x04, //0x0000220a addq $4, %rdx - 0x48, 0x8b, 0x4d, 0xc8, //0x0000220e movq $-56(%rbp), %rcx - 0x48, 0x89, 0x11, //0x00002212 movq %rdx, (%rcx) - 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00002215 jmp LBB6_84 - //0x0000221a LBB6_109 - 0x49, 0x29, 0xf9, //0x0000221a subq %rdi, %r9 - 0x49, 0xff, 0xc1, //0x0000221d incq %r9 - //0x00002220 LBB6_110 - 0x48, 0x8b, 0x45, 0xc8, //0x00002220 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x08, //0x00002224 movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002227 movq $-2, %rax - 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000222e jmp LBB6_84 - //0x00002233 LBB6_111 - 0x49, 0x29, 0xf9, //0x00002233 subq %rdi, %r9 - 0x49, 0x83, 0xc1, 0xfc, //0x00002236 addq $-4, %r9 - //0x0000223a LBB6_112 - 0x48, 0x8b, 0x45, 0xc8, //0x0000223a movq $-56(%rbp), %rax - 0x4c, 0x89, 0x08, //0x0000223e movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002241 movq $-4, %rax - 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00002248 jmp LBB6_84 - //0x0000224d LBB6_113 - 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000224d leaq $10(%r9,%r12), %rax - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002252 jmp LBB6_115 - //0x00002257 LBB6_114 - 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002257 leaq $11(%r9,%r12), %rax - //0x0000225c LBB6_115 - 0x48, 0x29, 0xf8, //0x0000225c subq %rdi, %rax - 0x48, 0x83, 0xc0, 0xfc, //0x0000225f addq $-4, %rax - 0x48, 0x8b, 0x4d, 0xc8, //0x00002263 movq $-56(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00002267 movq %rax, (%rcx) - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000226a movq $-4, %rax - 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x00002271 jmp LBB6_84 - //0x00002276 LBB6_116 - 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002276 leaq $4(%r10,%rdi), %rax - 0x49, 0x29, 0xc1, //0x0000227b subq %rax, %r9 - 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x0000227e jmp LBB6_112 - //0x00002283 LBB6_117 - 0x4d, 0x01, 0xe1, //0x00002283 addq %r12, %r9 - 0x49, 0x29, 0xf9, //0x00002286 subq %rdi, %r9 - 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002289 jmp LBB6_112 - 0x00, 0x00, //0x0000228e .p2align 4, 0x00 - //0x00002290 LCPI7_0 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002290 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x000022a0 LCPI7_1 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000022a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x000022b0 LCPI7_2 - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000022b0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' - //0x000022c0 LCPI7_3 - 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000022c0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' - //0x000022d0 .p2align 4, 0x90 - //0x000022d0 _html_escape - 0x55, //0x000022d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000022d1 movq %rsp, %rbp - 0x41, 0x57, //0x000022d4 pushq %r15 - 0x41, 0x56, //0x000022d6 pushq %r14 - 0x41, 0x55, //0x000022d8 pushq %r13 - 0x41, 0x54, //0x000022da pushq %r12 - 0x53, //0x000022dc pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x000022dd subq $24, %rsp - 0x48, 0x89, 0x4d, 0xc0, //0x000022e1 movq %rcx, $-64(%rbp) - 0x49, 0x89, 0xd2, //0x000022e5 movq %rdx, %r10 - 0x48, 0x89, 0x55, 0xc8, //0x000022e8 movq %rdx, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x000022ec movq %rdi, $-48(%rbp) - 0x48, 0x89, 0xf8, //0x000022f0 movq %rdi, %rax - 0x48, 0x85, 0xf6, //0x000022f3 testq %rsi, %rsi - 0x0f, 0x8e, 0x73, 0x04, 0x00, 0x00, //0x000022f6 jle LBB7_59 - 0x48, 0x8b, 0x45, 0xc0, //0x000022fc movq $-64(%rbp), %rax - 0x4c, 0x8b, 0x08, //0x00002300 movq (%rax), %r9 - 0xc5, 0xf9, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00002303 vmovdqa $-123(%rip), %xmm0 /* LCPI7_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000230b vmovdqa $-115(%rip), %xmm1 /* LCPI7_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00002313 vmovdqa $-107(%rip), %xmm2 /* LCPI7_2+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000231b vmovdqa $-99(%rip), %xmm3 /* LCPI7_3+0(%rip) */ - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002323 movabsq $5764607797912141824, %r14 - 0x4c, 0x8d, 0x1d, 0xac, 0xe5, 0x00, 0x00, //0x0000232d leaq $58796(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x4c, 0x8b, 0x7d, 0xd0, //0x00002334 movq $-48(%rbp), %r15 - 0x4c, 0x8b, 0x55, 0xc8, //0x00002338 movq $-56(%rbp), %r10 - 0x90, 0x90, 0x90, 0x90, //0x0000233c .p2align 4, 0x90 - //0x00002340 LBB7_2 - 0x4d, 0x85, 0xc9, //0x00002340 testq %r9, %r9 - 0x0f, 0x8e, 0x45, 0x04, 0x00, 0x00, //0x00002343 jle LBB7_61 - 0x48, 0x83, 0xfe, 0x0f, //0x00002349 cmpq $15, %rsi - 0x0f, 0x9f, 0xc3, //0x0000234d setg %bl - 0x4d, 0x89, 0xcc, //0x00002350 movq %r9, %r12 - 0x4d, 0x89, 0xd0, //0x00002353 movq %r10, %r8 - 0x48, 0x89, 0xf0, //0x00002356 movq %rsi, %rax - 0x4d, 0x89, 0xfd, //0x00002359 movq %r15, %r13 - 0x49, 0x83, 0xf9, 0x10, //0x0000235c cmpq $16, %r9 - 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x00002360 jl LBB7_9 - 0x48, 0x83, 0xfe, 0x10, //0x00002366 cmpq $16, %rsi - 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x0000236a jl LBB7_9 - 0x4d, 0x89, 0xfd, //0x00002370 movq %r15, %r13 - 0x48, 0x89, 0xf0, //0x00002373 movq %rsi, %rax - 0x4d, 0x89, 0xd0, //0x00002376 movq %r10, %r8 - 0x4c, 0x89, 0xc9, //0x00002379 movq %r9, %rcx - 0x90, 0x90, 0x90, 0x90, //0x0000237c .p2align 4, 0x90 - //0x00002380 LBB7_6 - 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x00002380 vmovdqu (%r13), %xmm4 - 0xc5, 0xd9, 0x74, 0xe8, //0x00002386 vpcmpeqb %xmm0, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x0000238a vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xc9, 0xeb, 0xed, //0x0000238e vpor %xmm5, %xmm6, %xmm5 - 0xc5, 0xd9, 0xeb, 0xf2, //0x00002392 vpor %xmm2, %xmm4, %xmm6 - 0xc5, 0xc9, 0x74, 0xf3, //0x00002396 vpcmpeqb %xmm3, %xmm6, %xmm6 - 0xc5, 0xd1, 0xeb, 0xee, //0x0000239a vpor %xmm6, %xmm5, %xmm5 - 0xc4, 0xc1, 0x7a, 0x7f, 0x20, //0x0000239e vmovdqu %xmm4, (%r8) - 0xc5, 0xf9, 0xd7, 0xd5, //0x000023a3 vpmovmskb %xmm5, %edx - 0x66, 0x85, 0xd2, //0x000023a7 testw %dx, %dx - 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x000023aa jne LBB7_21 - 0x49, 0x83, 0xc5, 0x10, //0x000023b0 addq $16, %r13 - 0x49, 0x83, 0xc0, 0x10, //0x000023b4 addq $16, %r8 - 0x4c, 0x8d, 0x61, 0xf0, //0x000023b8 leaq $-16(%rcx), %r12 - 0x48, 0x83, 0xf8, 0x1f, //0x000023bc cmpq $31, %rax - 0x0f, 0x9f, 0xc3, //0x000023c0 setg %bl - 0x48, 0x83, 0xf8, 0x20, //0x000023c3 cmpq $32, %rax - 0x48, 0x8d, 0x40, 0xf0, //0x000023c7 leaq $-16(%rax), %rax - 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x000023cb jl LBB7_9 - 0x48, 0x83, 0xf9, 0x1f, //0x000023d1 cmpq $31, %rcx - 0x4c, 0x89, 0xe1, //0x000023d5 movq %r12, %rcx - 0x0f, 0x8f, 0xa2, 0xff, 0xff, 0xff, //0x000023d8 jg LBB7_6 - 0x90, 0x90, //0x000023de .p2align 4, 0x90 - //0x000023e0 LBB7_9 - 0x84, 0xdb, //0x000023e0 testb %bl, %bl - 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x000023e2 je LBB7_13 - 0x4c, 0x89, 0xf2, //0x000023e8 movq %r14, %rdx - 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x000023eb vmovdqu (%r13), %xmm4 - 0xc5, 0xd9, 0x74, 0xe8, //0x000023f1 vpcmpeqb %xmm0, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xf1, //0x000023f5 vpcmpeqb %xmm1, %xmm4, %xmm6 - 0xc5, 0xc9, 0xeb, 0xed, //0x000023f9 vpor %xmm5, %xmm6, %xmm5 - 0xc5, 0xd9, 0xeb, 0xf2, //0x000023fd vpor %xmm2, %xmm4, %xmm6 - 0xc5, 0xc9, 0x74, 0xf3, //0x00002401 vpcmpeqb %xmm3, %xmm6, %xmm6 - 0xc5, 0xd1, 0xeb, 0xee, //0x00002405 vpor %xmm6, %xmm5, %xmm5 - 0xc5, 0xf9, 0xd7, 0xc5, //0x00002409 vpmovmskb %xmm5, %eax - 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000240d orl $65536, %eax - 0x44, 0x0f, 0xbc, 0xf0, //0x00002412 bsfl %eax, %r14d - 0xc4, 0xe1, 0xf9, 0x7e, 0xe0, //0x00002416 vmovq %xmm4, %rax - 0x4d, 0x39, 0xf4, //0x0000241b cmpq %r14, %r12 - 0x0f, 0x8d, 0xd7, 0x00, 0x00, 0x00, //0x0000241e jge LBB7_22 - 0x49, 0x83, 0xfc, 0x08, //0x00002424 cmpq $8, %r12 - 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00002428 jb LBB7_25 - 0x49, 0x89, 0x00, //0x0000242e movq %rax, (%r8) - 0x4d, 0x8d, 0x75, 0x08, //0x00002431 leaq $8(%r13), %r14 - 0x49, 0x83, 0xc0, 0x08, //0x00002435 addq $8, %r8 - 0x49, 0x8d, 0x44, 0x24, 0xf8, //0x00002439 leaq $-8(%r12), %rax - 0x48, 0x83, 0xf8, 0x04, //0x0000243e cmpq $4, %rax - 0x0f, 0x8d, 0xff, 0x00, 0x00, 0x00, //0x00002442 jge LBB7_26 - 0xe9, 0x0c, 0x01, 0x00, 0x00, //0x00002448 jmp LBB7_27 - 0x90, 0x90, 0x90, //0x0000244d .p2align 4, 0x90 - //0x00002450 LBB7_13 - 0x4d, 0x85, 0xe4, //0x00002450 testq %r12, %r12 - 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00002453 jle LBB7_20 - 0x48, 0x85, 0xc0, //0x00002459 testq %rax, %rax - 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000245c jle LBB7_20 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002462 .p2align 4, 0x90 - //0x00002470 LBB7_15 - 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00002470 movzbl (%r13), %ecx - 0x48, 0x83, 0xf9, 0x3e, //0x00002475 cmpq $62, %rcx - 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00002479 ja LBB7_17 - 0x49, 0x0f, 0xa3, 0xce, //0x0000247f btq %rcx, %r14 - 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00002483 jb LBB7_24 - //0x00002489 LBB7_17 - 0x80, 0xf9, 0xe2, //0x00002489 cmpb $-30, %cl - 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000248c je LBB7_24 - 0x49, 0xff, 0xc5, //0x00002492 incq %r13 - 0x41, 0x88, 0x08, //0x00002495 movb %cl, (%r8) - 0x48, 0x83, 0xf8, 0x02, //0x00002498 cmpq $2, %rax - 0x48, 0x8d, 0x40, 0xff, //0x0000249c leaq $-1(%rax), %rax - 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x000024a0 jl LBB7_20 - 0x49, 0xff, 0xc0, //0x000024a6 incq %r8 - 0x49, 0x83, 0xfc, 0x01, //0x000024a9 cmpq $1, %r12 - 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x000024ad leaq $-1(%r12), %r12 - 0x0f, 0x8f, 0xb8, 0xff, 0xff, 0xff, //0x000024b2 jg LBB7_15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024b8 .p2align 4, 0x90 - //0x000024c0 LBB7_20 - 0x4d, 0x29, 0xfd, //0x000024c0 subq %r15, %r13 - 0x48, 0xf7, 0xd8, //0x000024c3 negq %rax - 0x4d, 0x19, 0xe4, //0x000024c6 sbbq %r12, %r12 - 0x4d, 0x31, 0xec, //0x000024c9 xorq %r13, %r12 - 0x4d, 0x85, 0xe4, //0x000024cc testq %r12, %r12 - 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x000024cf jns LBB7_37 - 0xe9, 0x72, 0x02, 0x00, 0x00, //0x000024d5 jmp LBB7_57 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024da .p2align 4, 0x90 - //0x000024e0 LBB7_21 - 0x0f, 0xb7, 0xc2, //0x000024e0 movzwl %dx, %eax - 0x4d, 0x29, 0xfd, //0x000024e3 subq %r15, %r13 - 0x44, 0x0f, 0xbc, 0xe0, //0x000024e6 bsfl %eax, %r12d - 0x4d, 0x01, 0xec, //0x000024ea addq %r13, %r12 - 0x4d, 0x85, 0xe4, //0x000024ed testq %r12, %r12 - 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x000024f0 jns LBB7_37 - 0xe9, 0x51, 0x02, 0x00, 0x00, //0x000024f6 jmp LBB7_57 - //0x000024fb LBB7_22 - 0x41, 0x83, 0xfe, 0x08, //0x000024fb cmpl $8, %r14d - 0x0f, 0x82, 0xa9, 0x00, 0x00, 0x00, //0x000024ff jb LBB7_31 - 0x49, 0x89, 0x00, //0x00002505 movq %rax, (%r8) - 0x4d, 0x8d, 0x65, 0x08, //0x00002508 leaq $8(%r13), %r12 - 0x49, 0x83, 0xc0, 0x08, //0x0000250c addq $8, %r8 - 0x49, 0x8d, 0x46, 0xf8, //0x00002510 leaq $-8(%r14), %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002514 cmpq $4, %rax - 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00002518 jge LBB7_32 - 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000251e jmp LBB7_33 - //0x00002523 LBB7_24 - 0x4d, 0x29, 0xfd, //0x00002523 subq %r15, %r13 - 0x4d, 0x89, 0xec, //0x00002526 movq %r13, %r12 - 0x4d, 0x85, 0xe4, //0x00002529 testq %r12, %r12 - 0x0f, 0x89, 0xfe, 0x00, 0x00, 0x00, //0x0000252c jns LBB7_37 - 0xe9, 0x15, 0x02, 0x00, 0x00, //0x00002532 jmp LBB7_57 - //0x00002537 LBB7_25 - 0x4d, 0x89, 0xee, //0x00002537 movq %r13, %r14 - 0x4c, 0x89, 0xe0, //0x0000253a movq %r12, %rax - 0x48, 0x83, 0xf8, 0x04, //0x0000253d cmpq $4, %rax - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00002541 jl LBB7_27 - //0x00002547 LBB7_26 - 0x41, 0x8b, 0x0e, //0x00002547 movl (%r14), %ecx - 0x41, 0x89, 0x08, //0x0000254a movl %ecx, (%r8) - 0x49, 0x83, 0xc6, 0x04, //0x0000254d addq $4, %r14 - 0x49, 0x83, 0xc0, 0x04, //0x00002551 addq $4, %r8 - 0x48, 0x83, 0xc0, 0xfc, //0x00002555 addq $-4, %rax - //0x00002559 LBB7_27 - 0x48, 0x83, 0xf8, 0x02, //0x00002559 cmpq $2, %rax - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x0000255d jb LBB7_28 - 0x41, 0x0f, 0xb7, 0x0e, //0x00002563 movzwl (%r14), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002567 movw %cx, (%r8) - 0x49, 0x83, 0xc6, 0x02, //0x0000256b addq $2, %r14 - 0x49, 0x83, 0xc0, 0x02, //0x0000256f addq $2, %r8 - 0x48, 0x83, 0xc0, 0xfe, //0x00002573 addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00002577 testq %rax, %rax - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000257a jne LBB7_29 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00002580 jmp LBB7_30 - //0x00002585 LBB7_28 - 0x48, 0x85, 0xc0, //0x00002585 testq %rax, %rax - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002588 je LBB7_30 - //0x0000258e LBB7_29 - 0x41, 0x8a, 0x06, //0x0000258e movb (%r14), %al - 0x41, 0x88, 0x00, //0x00002591 movb %al, (%r8) - //0x00002594 LBB7_30 - 0x4d, 0x29, 0xfc, //0x00002594 subq %r15, %r12 - 0x4d, 0x01, 0xec, //0x00002597 addq %r13, %r12 - 0x49, 0xf7, 0xd4, //0x0000259a notq %r12 - 0x49, 0x89, 0xd6, //0x0000259d movq %rdx, %r14 - 0x4d, 0x85, 0xe4, //0x000025a0 testq %r12, %r12 - 0x0f, 0x89, 0x87, 0x00, 0x00, 0x00, //0x000025a3 jns LBB7_37 - 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x000025a9 jmp LBB7_57 - //0x000025ae LBB7_31 - 0x4d, 0x89, 0xec, //0x000025ae movq %r13, %r12 - 0x4c, 0x89, 0xf0, //0x000025b1 movq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x000025b4 cmpq $4, %rax - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x000025b8 jl LBB7_33 - //0x000025be LBB7_32 - 0x41, 0x8b, 0x0c, 0x24, //0x000025be movl (%r12), %ecx - 0x41, 0x89, 0x08, //0x000025c2 movl %ecx, (%r8) - 0x49, 0x83, 0xc4, 0x04, //0x000025c5 addq $4, %r12 - 0x49, 0x83, 0xc0, 0x04, //0x000025c9 addq $4, %r8 - 0x48, 0x83, 0xc0, 0xfc, //0x000025cd addq $-4, %rax - //0x000025d1 LBB7_33 - 0x48, 0x83, 0xf8, 0x02, //0x000025d1 cmpq $2, %rax - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000025d5 jb LBB7_34 - 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x000025db movzwl (%r12), %ecx - 0x66, 0x41, 0x89, 0x08, //0x000025e0 movw %cx, (%r8) - 0x49, 0x83, 0xc4, 0x02, //0x000025e4 addq $2, %r12 - 0x49, 0x83, 0xc0, 0x02, //0x000025e8 addq $2, %r8 - 0x48, 0x83, 0xc0, 0xfe, //0x000025ec addq $-2, %rax - 0x48, 0x85, 0xc0, //0x000025f0 testq %rax, %rax - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000025f3 jne LBB7_35 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000025f9 jmp LBB7_36 - //0x000025fe LBB7_34 - 0x48, 0x85, 0xc0, //0x000025fe testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002601 je LBB7_36 - //0x00002607 LBB7_35 - 0x41, 0x8a, 0x04, 0x24, //0x00002607 movb (%r12), %al - 0x41, 0x88, 0x00, //0x0000260b movb %al, (%r8) - //0x0000260e LBB7_36 - 0x4d, 0x29, 0xfd, //0x0000260e subq %r15, %r13 - 0x4d, 0x01, 0xf5, //0x00002611 addq %r14, %r13 - 0x4d, 0x89, 0xec, //0x00002614 movq %r13, %r12 - 0x49, 0x89, 0xd6, //0x00002617 movq %rdx, %r14 - 0x4d, 0x85, 0xe4, //0x0000261a testq %r12, %r12 - 0x0f, 0x88, 0x29, 0x01, 0x00, 0x00, //0x0000261d js LBB7_57 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002623 .p2align 4, 0x90 - //0x00002630 LBB7_37 - 0x4d, 0x01, 0xe7, //0x00002630 addq %r12, %r15 - 0x4d, 0x01, 0xe2, //0x00002633 addq %r12, %r10 - 0x4c, 0x29, 0xe6, //0x00002636 subq %r12, %rsi - 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x00002639 jle LBB7_58 - 0x4d, 0x29, 0xe1, //0x0000263f subq %r12, %r9 - 0x41, 0x8a, 0x0f, //0x00002642 movb (%r15), %cl - 0x80, 0xf9, 0xe2, //0x00002645 cmpb $-30, %cl - 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x00002648 je LBB7_51 - 0x4c, 0x89, 0xf8, //0x0000264e movq %r15, %rax - //0x00002651 LBB7_40 - 0x0f, 0xb6, 0xd1, //0x00002651 movzbl %cl, %edx - 0x48, 0xc1, 0xe2, 0x04, //0x00002654 shlq $4, %rdx - 0x4a, 0x8b, 0x3c, 0x1a, //0x00002658 movq (%rdx,%r11), %rdi - 0x48, 0x63, 0xdf, //0x0000265c movslq %edi, %rbx - 0x49, 0x29, 0xd9, //0x0000265f subq %rbx, %r9 - 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x00002662 jl LBB7_60 - 0x48, 0xc1, 0xe7, 0x20, //0x00002668 shlq $32, %rdi - 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x0000266c leaq $8(%rdx,%r11), %r15 - 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002671 movabsq $12884901889, %rcx - 0x48, 0x39, 0xcf, //0x0000267b cmpq %rcx, %rdi - 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000267e jl LBB7_43 - 0x41, 0x8b, 0x0f, //0x00002684 movl (%r15), %ecx - 0x41, 0x89, 0x0a, //0x00002687 movl %ecx, (%r10) - 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x0000268a leaq $12(%rdx,%r11), %r15 - 0x4d, 0x8d, 0x42, 0x04, //0x0000268f leaq $4(%r10), %r8 - 0x48, 0x8d, 0x7b, 0xfc, //0x00002693 leaq $-4(%rbx), %rdi - 0x48, 0x83, 0xff, 0x02, //0x00002697 cmpq $2, %rdi - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x0000269b jae LBB7_44 - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000026a1 jmp LBB7_45 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026a6 .p2align 4, 0x90 - //0x000026b0 LBB7_43 - 0x4d, 0x89, 0xd0, //0x000026b0 movq %r10, %r8 - 0x48, 0x89, 0xdf, //0x000026b3 movq %rbx, %rdi - 0x48, 0x83, 0xff, 0x02, //0x000026b6 cmpq $2, %rdi - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000026ba jb LBB7_45 - //0x000026c0 LBB7_44 - 0x41, 0x0f, 0xb7, 0x17, //0x000026c0 movzwl (%r15), %edx - 0x66, 0x41, 0x89, 0x10, //0x000026c4 movw %dx, (%r8) - 0x49, 0x83, 0xc7, 0x02, //0x000026c8 addq $2, %r15 - 0x49, 0x83, 0xc0, 0x02, //0x000026cc addq $2, %r8 - 0x48, 0x83, 0xc7, 0xfe, //0x000026d0 addq $-2, %rdi - //0x000026d4 LBB7_45 - 0x48, 0x85, 0xff, //0x000026d4 testq %rdi, %rdi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000026d7 je LBB7_47 - 0x41, 0x8a, 0x0f, //0x000026dd movb (%r15), %cl - 0x41, 0x88, 0x08, //0x000026e0 movb %cl, (%r8) - //0x000026e3 LBB7_47 - 0x49, 0x01, 0xda, //0x000026e3 addq %rbx, %r10 - //0x000026e6 LBB7_48 - 0x48, 0xff, 0xc0, //0x000026e6 incq %rax - 0x49, 0x89, 0xc7, //0x000026e9 movq %rax, %r15 - 0x48, 0x83, 0xfe, 0x01, //0x000026ec cmpq $1, %rsi - 0x48, 0x8d, 0x76, 0xff, //0x000026f0 leaq $-1(%rsi), %rsi - 0x0f, 0x8f, 0x46, 0xfc, 0xff, 0xff, //0x000026f4 jg LBB7_2 - 0xe9, 0x70, 0x00, 0x00, 0x00, //0x000026fa jmp LBB7_59 - //0x000026ff LBB7_51 - 0x48, 0x83, 0xfe, 0x03, //0x000026ff cmpq $3, %rsi - 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002703 jl LBB7_55 - 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00002709 cmpb $-128, $1(%r15) - 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000270e jne LBB7_55 - 0x41, 0x8a, 0x4f, 0x02, //0x00002714 movb $2(%r15), %cl - 0x89, 0xc8, //0x00002718 movl %ecx, %eax - 0x24, 0xfe, //0x0000271a andb $-2, %al - 0x3c, 0xa8, //0x0000271c cmpb $-88, %al - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000271e jne LBB7_55 - 0x49, 0x8d, 0x47, 0x02, //0x00002724 leaq $2(%r15), %rax - 0x48, 0x83, 0xc6, 0xfe, //0x00002728 addq $-2, %rsi - 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000272c jmp LBB7_40 - //0x00002731 LBB7_55 - 0x4d, 0x85, 0xc9, //0x00002731 testq %r9, %r9 - 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00002734 jle LBB7_61 - 0x41, 0xc6, 0x02, 0xe2, //0x0000273a movb $-30, (%r10) - 0x49, 0xff, 0xc2, //0x0000273e incq %r10 - 0x49, 0xff, 0xc9, //0x00002741 decq %r9 - 0x4c, 0x89, 0xf8, //0x00002744 movq %r15, %rax - 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00002747 jmp LBB7_48 - //0x0000274c LBB7_57 - 0x4c, 0x2b, 0x55, 0xc8, //0x0000274c subq $-56(%rbp), %r10 - 0x49, 0xf7, 0xd4, //0x00002750 notq %r12 - 0x4d, 0x01, 0xe2, //0x00002753 addq %r12, %r10 - 0x48, 0x8b, 0x45, 0xc0, //0x00002756 movq $-64(%rbp), %rax - 0x4c, 0x89, 0x10, //0x0000275a movq %r10, (%rax) - 0x4c, 0x2b, 0x7d, 0xd0, //0x0000275d subq $-48(%rbp), %r15 - 0x4d, 0x01, 0xe7, //0x00002761 addq %r12, %r15 - 0x49, 0xf7, 0xd7, //0x00002764 notq %r15 - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00002767 jmp LBB7_62 - //0x0000276c LBB7_58 - 0x4c, 0x89, 0xf8, //0x0000276c movq %r15, %rax - //0x0000276f LBB7_59 - 0x4c, 0x2b, 0x55, 0xc8, //0x0000276f subq $-56(%rbp), %r10 - 0x48, 0x8b, 0x4d, 0xc0, //0x00002773 movq $-64(%rbp), %rcx - 0x4c, 0x89, 0x11, //0x00002777 movq %r10, (%rcx) - 0x48, 0x2b, 0x45, 0xd0, //0x0000277a subq $-48(%rbp), %rax - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000277e jmp LBB7_63 - //0x00002783 LBB7_60 - 0x4c, 0x2b, 0x55, 0xc8, //0x00002783 subq $-56(%rbp), %r10 - 0x48, 0x8b, 0x45, 0xc0, //0x00002787 movq $-64(%rbp), %rax - 0x4c, 0x89, 0x10, //0x0000278b movq %r10, (%rax) - //0x0000278e LBB7_61 - 0x49, 0xf7, 0xd7, //0x0000278e notq %r15 - 0x4c, 0x03, 0x7d, 0xd0, //0x00002791 addq $-48(%rbp), %r15 - //0x00002795 LBB7_62 - 0x4c, 0x89, 0xf8, //0x00002795 movq %r15, %rax - //0x00002798 LBB7_63 - 0x48, 0x83, 0xc4, 0x18, //0x00002798 addq $24, %rsp - 0x5b, //0x0000279c popq %rbx - 0x41, 0x5c, //0x0000279d popq %r12 - 0x41, 0x5d, //0x0000279f popq %r13 - 0x41, 0x5e, //0x000027a1 popq %r14 - 0x41, 0x5f, //0x000027a3 popq %r15 - 0x5d, //0x000027a5 popq %rbp - 0xc3, //0x000027a6 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027a7 .p2align 4, 0x90 - //0x000027b0 _atof_eisel_lemire64 - 0x55, //0x000027b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000027b1 movq %rsp, %rbp - 0x41, 0x57, //0x000027b4 pushq %r15 - 0x41, 0x56, //0x000027b6 pushq %r14 - 0x53, //0x000027b8 pushq %rbx - 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000027b9 leal $348(%rsi), %eax - 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000027bf cmpl $695, %eax - 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x000027c4 ja LBB8_1 - 0x49, 0x89, 0xc8, //0x000027ca movq %rcx, %r8 - 0x41, 0x89, 0xd1, //0x000027cd movl %edx, %r9d - 0x48, 0x85, 0xff, //0x000027d0 testq %rdi, %rdi - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000027d3 je LBB8_4 - 0x4c, 0x0f, 0xbd, 0xd7, //0x000027d9 bsrq %rdi, %r10 - 0x49, 0x83, 0xf2, 0x3f, //0x000027dd xorq $63, %r10 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000027e1 jmp LBB8_5 - //0x000027e6 LBB8_4 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x000027e6 movl $64, %r10d - //0x000027ec LBB8_5 - 0x44, 0x89, 0xd1, //0x000027ec movl %r10d, %ecx - 0x48, 0xd3, 0xe7, //0x000027ef shlq %cl, %rdi - 0x89, 0xc1, //0x000027f2 movl %eax, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x000027f4 shlq $4, %rcx - 0x4c, 0x8d, 0x3d, 0x31, 0x6b, 0x00, 0x00, //0x000027f8 leaq $27441(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ - 0x48, 0x89, 0xf8, //0x000027ff movq %rdi, %rax - 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x00002802 mulq $8(%rcx,%r15) - 0x49, 0x89, 0xc3, //0x00002807 movq %rax, %r11 - 0x49, 0x89, 0xd6, //0x0000280a movq %rdx, %r14 - 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000280d andl $511, %edx - 0x48, 0x89, 0xfb, //0x00002813 movq %rdi, %rbx - 0x48, 0xf7, 0xd3, //0x00002816 notq %rbx - 0x48, 0x39, 0xd8, //0x00002819 cmpq %rbx, %rax - 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x0000281c jbe LBB8_11 - 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002822 cmpl $511, %edx - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00002828 jne LBB8_11 - 0x48, 0x89, 0xf8, //0x0000282e movq %rdi, %rax - 0x4a, 0xf7, 0x24, 0x39, //0x00002831 mulq (%rcx,%r15) - 0x49, 0x01, 0xd3, //0x00002835 addq %rdx, %r11 - 0x49, 0x83, 0xd6, 0x00, //0x00002838 adcq $0, %r14 - 0x44, 0x89, 0xf2, //0x0000283c movl %r14d, %edx - 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000283f andl $511, %edx - 0x48, 0x39, 0xd8, //0x00002845 cmpq %rbx, %rax - 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00002848 jbe LBB8_11 - 0x49, 0x83, 0xfb, 0xff, //0x0000284e cmpq $-1, %r11 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00002852 jne LBB8_11 - 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002858 cmpl $511, %edx - 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x0000285e je LBB8_1 - //0x00002864 LBB8_11 - 0x4c, 0x89, 0xf7, //0x00002864 movq %r14, %rdi - 0x48, 0xc1, 0xef, 0x3f, //0x00002867 shrq $63, %rdi - 0x8d, 0x4f, 0x09, //0x0000286b leal $9(%rdi), %ecx - 0x49, 0xd3, 0xee, //0x0000286e shrq %cl, %r14 - 0x4c, 0x09, 0xda, //0x00002871 orq %r11, %rdx - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002874 jne LBB8_14 - 0x44, 0x89, 0xf0, //0x0000287a movl %r14d, %eax - 0x83, 0xe0, 0x03, //0x0000287d andl $3, %eax - 0x83, 0xf8, 0x01, //0x00002880 cmpl $1, %eax - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00002883 je LBB8_1 - //0x00002889 LBB8_14 - 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x00002889 imull $217706, %esi, %eax - 0xc1, 0xf8, 0x10, //0x0000288f sarl $16, %eax - 0x05, 0x3f, 0x04, 0x00, 0x00, //0x00002892 addl $1087, %eax - 0x48, 0x98, //0x00002897 cltq - 0x4c, 0x29, 0xd0, //0x00002899 subq %r10, %rax - 0x48, 0x83, 0xf7, 0x01, //0x0000289c xorq $1, %rdi - 0x48, 0x29, 0xf8, //0x000028a0 subq %rdi, %rax - 0x44, 0x89, 0xf2, //0x000028a3 movl %r14d, %edx - 0x83, 0xe2, 0x01, //0x000028a6 andl $1, %edx - 0x4c, 0x01, 0xf2, //0x000028a9 addq %r14, %rdx - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000028ac movabsq $126100789566373888, %rcx - 0x48, 0x21, 0xd1, //0x000028b6 andq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x01, //0x000028b9 cmpq $1, %rcx - 0x48, 0x83, 0xd8, 0xff, //0x000028bd sbbq $-1, %rax - 0x48, 0x8d, 0x70, 0xff, //0x000028c1 leaq $-1(%rax), %rsi - 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000028c5 cmpq $2045, %rsi - 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000028cc jbe LBB8_16 - //0x000028d2 LBB8_1 - 0x31, 0xc0, //0x000028d2 xorl %eax, %eax - //0x000028d4 LBB8_17 - 0x5b, //0x000028d4 popq %rbx - 0x41, 0x5e, //0x000028d5 popq %r14 - 0x41, 0x5f, //0x000028d7 popq %r15 - 0x5d, //0x000028d9 popq %rbp - 0xc3, //0x000028da retq - //0x000028db LBB8_16 - 0x48, 0x83, 0xf9, 0x01, //0x000028db cmpq $1, %rcx - 0xb1, 0x02, //0x000028df movb $2, %cl - 0x80, 0xd9, 0x00, //0x000028e1 sbbb $0, %cl - 0x48, 0xd3, 0xea, //0x000028e4 shrq %cl, %rdx - 0x48, 0xc1, 0xe0, 0x34, //0x000028e7 shlq $52, %rax - 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000028eb movabsq $4503599627370495, %rcx - 0x48, 0x21, 0xd1, //0x000028f5 andq %rdx, %rcx - 0x48, 0x09, 0xc1, //0x000028f8 orq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000028fb movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xc8, //0x00002905 orq %rcx, %rax - 0x41, 0x83, 0xf9, 0xff, //0x00002908 cmpl $-1, %r9d - 0x48, 0x0f, 0x45, 0xc1, //0x0000290c cmovneq %rcx, %rax - 0x49, 0x89, 0x00, //0x00002910 movq %rax, (%r8) - 0xb0, 0x01, //0x00002913 movb $1, %al - 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00002915 jmp LBB8_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000291a .p2align 4, 0x90 - //0x00002920 _decimal_to_f64 - 0x55, //0x00002920 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002921 movq %rsp, %rbp - 0x41, 0x57, //0x00002924 pushq %r15 - 0x41, 0x56, //0x00002926 pushq %r14 - 0x41, 0x55, //0x00002928 pushq %r13 - 0x41, 0x54, //0x0000292a pushq %r12 - 0x53, //0x0000292c pushq %rbx - 0x50, //0x0000292d pushq %rax - 0x48, 0x89, 0xf3, //0x0000292e movq %rsi, %rbx - 0x49, 0x89, 0xfc, //0x00002931 movq %rdi, %r12 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002934 movabsq $4503599627370496, %r13 - 0x83, 0x7f, 0x10, 0x00, //0x0000293e cmpl $0, $16(%rdi) - 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00002942 je LBB9_4 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002948 movabsq $9218868437227405312, %r14 - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002952 movl $20(%r12), %eax - 0x45, 0x31, 0xff, //0x00002957 xorl %r15d, %r15d - 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000295a cmpl $310, %eax - 0x0f, 0x8f, 0x0e, 0x04, 0x00, 0x00, //0x0000295f jg LBB9_78 - 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002965 cmpl $-330, %eax - 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000296a jge LBB9_5 - 0x45, 0x31, 0xf6, //0x00002970 xorl %r14d, %r14d - 0xe9, 0xfb, 0x03, 0x00, 0x00, //0x00002973 jmp LBB9_78 - //0x00002978 LBB9_4 - 0x45, 0x31, 0xf6, //0x00002978 xorl %r14d, %r14d - 0x45, 0x31, 0xff, //0x0000297b xorl %r15d, %r15d - 0xe9, 0xf0, 0x03, 0x00, 0x00, //0x0000297e jmp LBB9_78 - //0x00002983 LBB9_5 - 0x85, 0xc0, //0x00002983 testl %eax, %eax - 0x48, 0x89, 0x5d, 0xd0, //0x00002985 movq %rbx, $-48(%rbp) - 0x0f, 0x8e, 0xf1, 0x00, 0x00, 0x00, //0x00002989 jle LBB9_22 - 0x45, 0x31, 0xff, //0x0000298f xorl %r15d, %r15d - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002992 jmp LBB9_9 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002997 .p2align 4, 0x90 - //0x000029a0 LBB9_7 - 0xf7, 0xdb, //0x000029a0 negl %ebx - 0x4c, 0x89, 0xe7, //0x000029a2 movq %r12, %rdi - 0x89, 0xde, //0x000029a5 movl %ebx, %esi - 0xe8, 0x24, 0x64, 0x00, 0x00, //0x000029a7 callq _right_shift - //0x000029ac LBB9_8 - 0x45, 0x01, 0xf7, //0x000029ac addl %r14d, %r15d - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x000029af movl $20(%r12), %eax - 0x85, 0xc0, //0x000029b4 testl %eax, %eax - 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x000029b6 jle LBB9_22 - //0x000029bc LBB9_9 - 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x000029bc movl $27, %r14d - 0x83, 0xf8, 0x08, //0x000029c2 cmpl $8, %eax - 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000029c5 jg LBB9_11 - 0x89, 0xc0, //0x000029cb movl %eax, %eax - 0x48, 0x8d, 0x0d, 0xec, 0x94, 0x00, 0x00, //0x000029cd leaq $38124(%rip), %rcx /* _POW_TAB+0(%rip) */ - 0x44, 0x8b, 0x34, 0x81, //0x000029d4 movl (%rcx,%rax,4), %r14d - //0x000029d8 LBB9_11 - 0x45, 0x85, 0xf6, //0x000029d8 testl %r14d, %r14d - 0x0f, 0x84, 0xcb, 0xff, 0xff, 0xff, //0x000029db je LBB9_8 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000029e1 cmpl $0, $16(%r12) - 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x000029e7 je LBB9_8 - 0x44, 0x89, 0xf3, //0x000029ed movl %r14d, %ebx - 0xf7, 0xdb, //0x000029f0 negl %ebx - 0x45, 0x85, 0xf6, //0x000029f2 testl %r14d, %r14d - 0x0f, 0x88, 0x35, 0x00, 0x00, 0x00, //0x000029f5 js LBB9_16 - 0x41, 0x83, 0xfe, 0x3d, //0x000029fb cmpl $61, %r14d - 0x0f, 0x8c, 0x9b, 0xff, 0xff, 0xff, //0x000029ff jl LBB9_7 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a05 .p2align 4, 0x90 - //0x00002a10 LBB9_15 - 0x4c, 0x89, 0xe7, //0x00002a10 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a13 movl $60, %esi - 0xe8, 0xb3, 0x63, 0x00, 0x00, //0x00002a18 callq _right_shift - 0x8d, 0x43, 0x3c, //0x00002a1d leal $60(%rbx), %eax - 0x83, 0xfb, 0x88, //0x00002a20 cmpl $-120, %ebx - 0x89, 0xc3, //0x00002a23 movl %eax, %ebx - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002a25 jl LBB9_15 - 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002a2b jmp LBB9_7 - //0x00002a30 LBB9_16 - 0x41, 0x83, 0xfe, 0xc3, //0x00002a30 cmpl $-61, %r14d - 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00002a34 jg LBB9_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a3a .p2align 4, 0x90 - //0x00002a40 LBB9_17 - 0x4c, 0x89, 0xe7, //0x00002a40 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a43 movl $60, %esi - 0xe8, 0x93, 0x61, 0x00, 0x00, //0x00002a48 callq _left_shift - 0x8d, 0x73, 0xc4, //0x00002a4d leal $-60(%rbx), %esi - 0x83, 0xfb, 0x78, //0x00002a50 cmpl $120, %ebx - 0x89, 0xf3, //0x00002a53 movl %esi, %ebx - 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002a55 jg LBB9_17 - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002a5b jmp LBB9_19 - //0x00002a60 LBB9_18 - 0x89, 0xde, //0x00002a60 movl %ebx, %esi - //0x00002a62 LBB9_19 - 0x4c, 0x89, 0xe7, //0x00002a62 movq %r12, %rdi - 0xe8, 0x76, 0x61, 0x00, 0x00, //0x00002a65 callq _left_shift - 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002a6a jmp LBB9_8 - 0x90, //0x00002a6f .p2align 4, 0x90 - //0x00002a70 LBB9_20 - 0x4c, 0x89, 0xe7, //0x00002a70 movq %r12, %rdi - 0xe8, 0x68, 0x61, 0x00, 0x00, //0x00002a73 callq _left_shift - //0x00002a78 LBB9_21 - 0x45, 0x29, 0xf7, //0x00002a78 subl %r14d, %r15d - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002a7b movl $20(%r12), %eax - //0x00002a80 LBB9_22 - 0x85, 0xc0, //0x00002a80 testl %eax, %eax - 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00002a82 js LBB9_25 - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00002a88 jne LBB9_36 - 0x49, 0x8b, 0x0c, 0x24, //0x00002a8e movq (%r12), %rcx - 0x80, 0x39, 0x35, //0x00002a92 cmpb $53, (%rcx) - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002a95 jl LBB9_26 - 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00002a9b jmp LBB9_36 - //0x00002aa0 .p2align 4, 0x90 - //0x00002aa0 LBB9_25 - 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x00002aa0 movl $27, %r14d - 0x83, 0xf8, 0xf8, //0x00002aa6 cmpl $-8, %eax - 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x00002aa9 jl LBB9_27 - //0x00002aaf LBB9_26 - 0xf7, 0xd8, //0x00002aaf negl %eax - 0x48, 0x98, //0x00002ab1 cltq - 0x48, 0x8d, 0x0d, 0x06, 0x94, 0x00, 0x00, //0x00002ab3 leaq $37894(%rip), %rcx /* _POW_TAB+0(%rip) */ - 0x44, 0x8b, 0x34, 0x81, //0x00002aba movl (%rcx,%rax,4), %r14d - //0x00002abe LBB9_27 - 0x45, 0x85, 0xf6, //0x00002abe testl %r14d, %r14d - 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00002ac1 je LBB9_21 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002ac7 cmpl $0, $16(%r12) - 0x0f, 0x84, 0xa5, 0xff, 0xff, 0xff, //0x00002acd je LBB9_21 - 0x45, 0x85, 0xf6, //0x00002ad3 testl %r14d, %r14d - 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002ad6 jle LBB9_33 - 0x44, 0x89, 0xf6, //0x00002adc movl %r14d, %esi - 0x41, 0x83, 0xfe, 0x3d, //0x00002adf cmpl $61, %r14d - 0x0f, 0x8c, 0x87, 0xff, 0xff, 0xff, //0x00002ae3 jl LBB9_20 - 0x44, 0x89, 0xf3, //0x00002ae9 movl %r14d, %ebx - 0x90, 0x90, 0x90, 0x90, //0x00002aec .p2align 4, 0x90 - //0x00002af0 LBB9_32 - 0x4c, 0x89, 0xe7, //0x00002af0 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002af3 movl $60, %esi - 0xe8, 0xe3, 0x60, 0x00, 0x00, //0x00002af8 callq _left_shift - 0x8d, 0x73, 0xc4, //0x00002afd leal $-60(%rbx), %esi - 0x83, 0xfb, 0x78, //0x00002b00 cmpl $120, %ebx - 0x89, 0xf3, //0x00002b03 movl %esi, %ebx - 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002b05 jg LBB9_32 - 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00002b0b jmp LBB9_20 - //0x00002b10 LBB9_33 - 0x44, 0x89, 0xf3, //0x00002b10 movl %r14d, %ebx - 0x41, 0x83, 0xfe, 0xc3, //0x00002b13 cmpl $-61, %r14d - 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x00002b17 jg LBB9_35 - 0x90, 0x90, 0x90, //0x00002b1d .p2align 4, 0x90 - //0x00002b20 LBB9_34 - 0x4c, 0x89, 0xe7, //0x00002b20 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b23 movl $60, %esi - 0xe8, 0xa3, 0x62, 0x00, 0x00, //0x00002b28 callq _right_shift - 0x8d, 0x43, 0x3c, //0x00002b2d leal $60(%rbx), %eax - 0x83, 0xfb, 0x88, //0x00002b30 cmpl $-120, %ebx - 0x89, 0xc3, //0x00002b33 movl %eax, %ebx - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b35 jl LBB9_34 - //0x00002b3b LBB9_35 - 0xf7, 0xdb, //0x00002b3b negl %ebx - 0x4c, 0x89, 0xe7, //0x00002b3d movq %r12, %rdi - 0x89, 0xde, //0x00002b40 movl %ebx, %esi - 0xe8, 0x89, 0x62, 0x00, 0x00, //0x00002b42 callq _right_shift - 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00002b47 jmp LBB9_21 - //0x00002b4c LBB9_36 - 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x00002b4c cmpl $-1022, %r15d - 0x0f, 0x8f, 0x4b, 0x00, 0x00, 0x00, //0x00002b53 jg LBB9_42 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002b59 cmpl $0, $16(%r12) - 0x48, 0x8b, 0x5d, 0xd0, //0x00002b5f movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002b63 je LBB9_44 - 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00002b69 cmpl $-1082, %r15d - 0x0f, 0x8f, 0x55, 0x00, 0x00, 0x00, //0x00002b70 jg LBB9_45 - 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00002b76 addl $961, %r15d - 0x90, 0x90, 0x90, //0x00002b7d .p2align 4, 0x90 - //0x00002b80 LBB9_40 - 0x4c, 0x89, 0xe7, //0x00002b80 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b83 movl $60, %esi - 0xe8, 0x43, 0x62, 0x00, 0x00, //0x00002b88 callq _right_shift - 0x41, 0x83, 0xc7, 0x3c, //0x00002b8d addl $60, %r15d - 0x41, 0x83, 0xff, 0x88, //0x00002b91 cmpl $-120, %r15d - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b95 jl LBB9_40 - 0x41, 0x83, 0xc7, 0x3c, //0x00002b9b addl $60, %r15d - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00002b9f jmp LBB9_46 - //0x00002ba4 LBB9_42 - 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002ba4 cmpl $1024, %r15d - 0x48, 0x8b, 0x5d, 0xd0, //0x00002bab movq $-48(%rbp), %rbx - 0x0f, 0x8f, 0x87, 0x01, 0x00, 0x00, //0x00002baf jg LBB9_75 - 0x41, 0xff, 0xcf, //0x00002bb5 decl %r15d - 0x45, 0x89, 0xfe, //0x00002bb8 movl %r15d, %r14d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002bbb jmp LBB9_47 - //0x00002bc0 LBB9_44 - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002bc0 movl $-1022, %r14d - 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00002bc6 jmp LBB9_49 - //0x00002bcb LBB9_45 - 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x00002bcb addl $1021, %r15d - //0x00002bd2 LBB9_46 - 0x41, 0xf7, 0xdf, //0x00002bd2 negl %r15d - 0x4c, 0x89, 0xe7, //0x00002bd5 movq %r12, %rdi - 0x44, 0x89, 0xfe, //0x00002bd8 movl %r15d, %esi - 0xe8, 0xf0, 0x61, 0x00, 0x00, //0x00002bdb callq _right_shift - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002be0 movl $-1022, %r14d - //0x00002be6 LBB9_47 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002be6 cmpl $0, $16(%r12) - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002bec je LBB9_49 - 0x4c, 0x89, 0xe7, //0x00002bf2 movq %r12, %rdi - 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002bf5 movl $53, %esi - 0xe8, 0xe1, 0x5f, 0x00, 0x00, //0x00002bfa callq _left_shift - //0x00002bff LBB9_49 - 0x4d, 0x63, 0x44, 0x24, 0x14, //0x00002bff movslq $20(%r12), %r8 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c04 movq $-1, %r15 - 0x49, 0x83, 0xf8, 0x14, //0x00002c0b cmpq $20, %r8 - 0x0f, 0x8f, 0x3f, 0x01, 0x00, 0x00, //0x00002c0f jg LBB9_77 - 0x44, 0x89, 0xc1, //0x00002c15 movl %r8d, %ecx - 0x85, 0xc9, //0x00002c18 testl %ecx, %ecx - 0x0f, 0x8e, 0x3c, 0x00, 0x00, 0x00, //0x00002c1a jle LBB9_54 - 0x49, 0x63, 0x74, 0x24, 0x10, //0x00002c20 movslq $16(%r12), %rsi - 0x31, 0xd2, //0x00002c25 xorl %edx, %edx - 0x45, 0x31, 0xff, //0x00002c27 xorl %r15d, %r15d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c2a .p2align 4, 0x90 - //0x00002c30 LBB9_52 - 0x48, 0x39, 0xf2, //0x00002c30 cmpq %rsi, %rdx - 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002c33 jge LBB9_55 - 0x4b, 0x8d, 0x04, 0xbf, //0x00002c39 leaq (%r15,%r15,4), %rax - 0x49, 0x8b, 0x3c, 0x24, //0x00002c3d movq (%r12), %rdi - 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00002c41 movsbq (%rdi,%rdx), %rdi - 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00002c46 leaq $-48(%rdi,%rax,2), %r15 - 0x48, 0xff, 0xc2, //0x00002c4b incq %rdx - 0x48, 0x39, 0xd1, //0x00002c4e cmpq %rdx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002c51 jne LBB9_52 - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002c57 jmp LBB9_55 - //0x00002c5c LBB9_54 - 0x31, 0xd2, //0x00002c5c xorl %edx, %edx - 0x45, 0x31, 0xff, //0x00002c5e xorl %r15d, %r15d - //0x00002c61 LBB9_55 - 0x41, 0x39, 0xd0, //0x00002c61 cmpl %edx, %r8d - 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00002c64 jle LBB9_63 - 0x89, 0xcf, //0x00002c6a movl %ecx, %edi - 0x29, 0xd7, //0x00002c6c subl %edx, %edi - 0x89, 0xd6, //0x00002c6e movl %edx, %esi - 0xf7, 0xd6, //0x00002c70 notl %esi - 0x44, 0x01, 0xc6, //0x00002c72 addl %r8d, %esi - 0x83, 0xe7, 0x07, //0x00002c75 andl $7, %edi - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00002c78 je LBB9_60 - 0xf7, 0xdf, //0x00002c7e negl %edi - 0x31, 0xc0, //0x00002c80 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c82 .p2align 4, 0x90 - //0x00002c90 LBB9_58 - 0x4d, 0x01, 0xff, //0x00002c90 addq %r15, %r15 - 0x4f, 0x8d, 0x3c, 0xbf, //0x00002c93 leaq (%r15,%r15,4), %r15 - 0xff, 0xc8, //0x00002c97 decl %eax - 0x39, 0xc7, //0x00002c99 cmpl %eax, %edi - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002c9b jne LBB9_58 - 0x29, 0xc2, //0x00002ca1 subl %eax, %edx - //0x00002ca3 LBB9_60 - 0x83, 0xfe, 0x07, //0x00002ca3 cmpl $7, %esi - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002ca6 jb LBB9_63 - 0x89, 0xc8, //0x00002cac movl %ecx, %eax - 0x29, 0xd0, //0x00002cae subl %edx, %eax - //0x00002cb0 .p2align 4, 0x90 - //0x00002cb0 LBB9_62 - 0x4d, 0x69, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00002cb0 imulq $100000000, %r15, %r15 - 0x83, 0xc0, 0xf8, //0x00002cb7 addl $-8, %eax - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002cba jne LBB9_62 - //0x00002cc0 LBB9_63 - 0x85, 0xc9, //0x00002cc0 testl %ecx, %ecx - 0x0f, 0x88, 0x4c, 0x00, 0x00, 0x00, //0x00002cc2 js LBB9_71 - 0x41, 0x8b, 0x54, 0x24, 0x10, //0x00002cc8 movl $16(%r12), %edx - 0x44, 0x39, 0xc2, //0x00002ccd cmpl %r8d, %edx - 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002cd0 jle LBB9_71 - 0x49, 0x8b, 0x34, 0x24, //0x00002cd6 movq (%r12), %rsi - 0x8a, 0x04, 0x0e, //0x00002cda movb (%rsi,%rcx), %al - 0x8d, 0x79, 0x01, //0x00002cdd leal $1(%rcx), %edi - 0x39, 0xd7, //0x00002ce0 cmpl %edx, %edi - 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x00002ce2 jne LBB9_72 - 0x3c, 0x35, //0x00002ce8 cmpb $53, %al - 0x0f, 0x85, 0xb7, 0x00, 0x00, 0x00, //0x00002cea jne LBB9_72 - 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x00002cf0 cmpl $0, $28(%r12) - 0x0f, 0x95, 0xc2, //0x00002cf6 setne %dl - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00002cf9 jne LBB9_73 - 0x85, 0xc9, //0x00002cff testl %ecx, %ecx - 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x00002d01 jle LBB9_73 - 0x41, 0x8a, 0x54, 0x30, 0xff, //0x00002d07 movb $-1(%r8,%rsi), %dl - 0x80, 0xe2, 0x01, //0x00002d0c andb $1, %dl - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002d0f jmp LBB9_73 - //0x00002d14 LBB9_71 - 0x31, 0xd2, //0x00002d14 xorl %edx, %edx - //0x00002d16 LBB9_73 - 0x0f, 0xb6, 0xc2, //0x00002d16 movzbl %dl, %eax - 0x49, 0x01, 0xc7, //0x00002d19 addq %rax, %r15 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002d1c movabsq $9007199254740992, %rax - 0x49, 0x39, 0xc7, //0x00002d26 cmpq %rax, %r15 - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00002d29 jne LBB9_77 - 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00002d2f cmpl $1022, %r14d - 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00002d36 jle LBB9_76 - //0x00002d3c LBB9_75 - 0x45, 0x31, 0xff, //0x00002d3c xorl %r15d, %r15d - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d3f movabsq $9218868437227405312, %r14 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002d49 jmp LBB9_78 - //0x00002d4e LBB9_76 - 0x41, 0xff, 0xc6, //0x00002d4e incl %r14d - 0x4d, 0x89, 0xef, //0x00002d51 movq %r13, %r15 - //0x00002d54 LBB9_77 - 0x4c, 0x89, 0xf8, //0x00002d54 movq %r15, %rax - 0x4c, 0x21, 0xe8, //0x00002d57 andq %r13, %rax - 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00002d5a addl $1023, %r14d - 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00002d61 andl $2047, %r14d - 0x49, 0xc1, 0xe6, 0x34, //0x00002d68 shlq $52, %r14 - 0x48, 0x85, 0xc0, //0x00002d6c testq %rax, %rax - 0x4c, 0x0f, 0x44, 0xf0, //0x00002d6f cmoveq %rax, %r14 - //0x00002d73 LBB9_78 - 0x49, 0xff, 0xcd, //0x00002d73 decq %r13 - 0x4d, 0x21, 0xfd, //0x00002d76 andq %r15, %r13 - 0x4d, 0x09, 0xf5, //0x00002d79 orq %r14, %r13 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002d7c movabsq $-9223372036854775808, %rax - 0x4c, 0x09, 0xe8, //0x00002d86 orq %r13, %rax - 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00002d89 cmpl $0, $24(%r12) - 0x49, 0x0f, 0x44, 0xc5, //0x00002d8f cmoveq %r13, %rax - 0x48, 0x89, 0x03, //0x00002d93 movq %rax, (%rbx) - 0x31, 0xc0, //0x00002d96 xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00002d98 addq $8, %rsp - 0x5b, //0x00002d9c popq %rbx - 0x41, 0x5c, //0x00002d9d popq %r12 - 0x41, 0x5d, //0x00002d9f popq %r13 - 0x41, 0x5e, //0x00002da1 popq %r14 - 0x41, 0x5f, //0x00002da3 popq %r15 - 0x5d, //0x00002da5 popq %rbp - 0xc3, //0x00002da6 retq - //0x00002da7 LBB9_72 - 0x3c, 0x34, //0x00002da7 cmpb $52, %al - 0x0f, 0x9f, 0xc2, //0x00002da9 setg %dl - 0xe9, 0x65, 0xff, 0xff, 0xff, //0x00002dac jmp LBB9_73 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002db1 .p2align 4, 0x90 - //0x00002dc0 _atof_native - 0x55, //0x00002dc0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002dc1 movq %rsp, %rbp - 0x48, 0x83, 0xec, 0x30, //0x00002dc4 subq $48, %rsp - 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00002dc8 movq $0, $-40(%rbp) - 0x48, 0x89, 0x55, 0xe0, //0x00002dd0 movq %rdx, $-32(%rbp) - 0x48, 0x89, 0x4d, 0xe8, //0x00002dd4 movq %rcx, $-24(%rbp) - 0x48, 0x85, 0xc9, //0x00002dd8 testq %rcx, %rcx - 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00002ddb je LBB10_5 - 0xc6, 0x02, 0x00, //0x00002de1 movb $0, (%rdx) - 0x48, 0x83, 0xf9, 0x01, //0x00002de4 cmpq $1, %rcx - 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00002de8 je LBB10_5 - 0xc6, 0x42, 0x01, 0x00, //0x00002dee movb $0, $1(%rdx) - 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00002df2 cmpq $3, $-24(%rbp) - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00002df7 jb LBB10_5 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00002dfd movl $2, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e02 .p2align 4, 0x90 - //0x00002e10 LBB10_4 - 0x48, 0x8b, 0x4d, 0xe0, //0x00002e10 movq $-32(%rbp), %rcx - 0xc6, 0x04, 0x01, 0x00, //0x00002e14 movb $0, (%rcx,%rax) - 0x48, 0xff, 0xc0, //0x00002e18 incq %rax - 0x48, 0x39, 0x45, 0xe8, //0x00002e1b cmpq %rax, $-24(%rbp) - 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00002e1f ja LBB10_4 - //0x00002e25 LBB10_5 - 0xc5, 0xf8, 0x57, 0xc0, //0x00002e25 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00002e29 vmovups %xmm0, $-16(%rbp) - 0x80, 0x3f, 0x2d, //0x00002e2e cmpb $45, (%rdi) - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002e31 jne LBB10_6 - 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00002e37 movl $1, $-8(%rbp) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002e3e movl $1, %eax - 0x48, 0x39, 0xf0, //0x00002e43 cmpq %rsi, %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002e46 jl LBB10_9 - //0x00002e4c LBB10_41 - 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00002e4c movl $0, $-12(%rbp) - 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x00002e53 jmp LBB10_40 - //0x00002e58 LBB10_6 - 0x31, 0xc0, //0x00002e58 xorl %eax, %eax - 0x48, 0x39, 0xf0, //0x00002e5a cmpq %rsi, %rax - 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00002e5d jge LBB10_41 - //0x00002e63 LBB10_9 - 0x41, 0xb3, 0x01, //0x00002e63 movb $1, %r11b - 0x45, 0x31, 0xc9, //0x00002e66 xorl %r9d, %r9d - 0x45, 0x31, 0xd2, //0x00002e69 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00002e6c xorl %r8d, %r8d - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002e6f jmp LBB10_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e74 .p2align 4, 0x90 - //0x00002e80 LBB10_13 - 0xff, 0x4d, 0xf4, //0x00002e80 decl $-12(%rbp) - 0x45, 0x31, 0xd2, //0x00002e83 xorl %r10d, %r10d - //0x00002e86 LBB10_22 - 0x48, 0xff, 0xc0, //0x00002e86 incq %rax - 0x48, 0x39, 0xf0, //0x00002e89 cmpq %rsi, %rax - 0x41, 0x0f, 0x9c, 0xc3, //0x00002e8c setl %r11b - 0x48, 0x39, 0xc6, //0x00002e90 cmpq %rax, %rsi - 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00002e93 je LBB10_23 - //0x00002e99 LBB10_10 - 0x0f, 0xb6, 0x0c, 0x07, //0x00002e99 movzbl (%rdi,%rax), %ecx - 0x8d, 0x51, 0xd0, //0x00002e9d leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00002ea0 cmpb $9, %dl - 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00002ea3 ja LBB10_19 - 0x45, 0x85, 0xd2, //0x00002ea9 testl %r10d, %r10d - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002eac jne LBB10_14 - 0x80, 0xf9, 0x30, //0x00002eb2 cmpb $48, %cl - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00002eb5 je LBB10_13 - //0x00002ebb LBB10_14 - 0x4d, 0x63, 0xd1, //0x00002ebb movslq %r9d, %r10 - 0x4c, 0x39, 0x55, 0xe8, //0x00002ebe cmpq %r10, $-24(%rbp) - 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00002ec2 jbe LBB10_16 - 0x48, 0x8b, 0x55, 0xe0, //0x00002ec8 movq $-32(%rbp), %rdx - 0x42, 0x88, 0x0c, 0x12, //0x00002ecc movb %cl, (%rdx,%r10) - 0x44, 0x8b, 0x4d, 0xf0, //0x00002ed0 movl $-16(%rbp), %r9d - 0x41, 0xff, 0xc1, //0x00002ed4 incl %r9d - 0x44, 0x89, 0x4d, 0xf0, //0x00002ed7 movl %r9d, $-16(%rbp) - 0x45, 0x89, 0xca, //0x00002edb movl %r9d, %r10d - 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00002ede jmp LBB10_22 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ee3 .p2align 4, 0x90 - //0x00002ef0 LBB10_19 - 0x80, 0xf9, 0x2e, //0x00002ef0 cmpb $46, %cl - 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00002ef3 jne LBB10_20 - 0x44, 0x89, 0x55, 0xf4, //0x00002ef9 movl %r10d, $-12(%rbp) - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002efd movl $1, %r8d - 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00002f03 jmp LBB10_22 - //0x00002f08 LBB10_16 - 0x80, 0xf9, 0x30, //0x00002f08 cmpb $48, %cl - 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00002f0b jne LBB10_18 - 0x45, 0x89, 0xca, //0x00002f11 movl %r9d, %r10d - 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00002f14 jmp LBB10_22 - //0x00002f19 LBB10_18 - 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00002f19 movl $1, $-4(%rbp) - 0x45, 0x89, 0xca, //0x00002f20 movl %r9d, %r10d - 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00002f23 jmp LBB10_22 - //0x00002f28 LBB10_23 - 0x89, 0xf1, //0x00002f28 movl %esi, %ecx - 0x48, 0x89, 0xf0, //0x00002f2a movq %rsi, %rax - 0x45, 0x85, 0xc0, //0x00002f2d testl %r8d, %r8d - 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00002f30 jne LBB10_26 - //0x00002f36 LBB10_25 - 0x44, 0x89, 0x4d, 0xf4, //0x00002f36 movl %r9d, $-12(%rbp) - //0x00002f3a LBB10_26 - 0x41, 0xf6, 0xc3, 0x01, //0x00002f3a testb $1, %r11b - 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00002f3e je LBB10_40 - 0x8a, 0x0c, 0x0f, //0x00002f44 movb (%rdi,%rcx), %cl - 0x80, 0xc9, 0x20, //0x00002f47 orb $32, %cl - 0x80, 0xf9, 0x65, //0x00002f4a cmpb $101, %cl - 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00002f4d jne LBB10_40 - 0x89, 0xc2, //0x00002f53 movl %eax, %edx - 0x8a, 0x4c, 0x17, 0x01, //0x00002f55 movb $1(%rdi,%rdx), %cl - 0x80, 0xf9, 0x2d, //0x00002f59 cmpb $45, %cl - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002f5c je LBB10_32 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f62 movl $1, %r8d - 0x80, 0xf9, 0x2b, //0x00002f68 cmpb $43, %cl - 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00002f6b jne LBB10_30 - 0x83, 0xc0, 0x02, //0x00002f71 addl $2, %eax - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00002f74 jmp LBB10_33 - //0x00002f79 LBB10_20 - 0x48, 0x89, 0xc1, //0x00002f79 movq %rax, %rcx - 0x45, 0x85, 0xc0, //0x00002f7c testl %r8d, %r8d - 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00002f7f jne LBB10_26 - 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002f85 jmp LBB10_25 - //0x00002f8a LBB10_32 - 0x83, 0xc0, 0x02, //0x00002f8a addl $2, %eax - 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00002f8d movl $-1, %r8d - //0x00002f93 LBB10_33 - 0x89, 0xc2, //0x00002f93 movl %eax, %edx - 0x48, 0x63, 0xd2, //0x00002f95 movslq %edx, %rdx - 0x45, 0x31, 0xc9, //0x00002f98 xorl %r9d, %r9d - 0x48, 0x39, 0xf2, //0x00002f9b cmpq %rsi, %rdx - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002f9e jl LBB10_35 - 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00002fa4 jmp LBB10_39 - //0x00002fa9 LBB10_30 - 0x48, 0xff, 0xc2, //0x00002fa9 incq %rdx - 0x48, 0x63, 0xd2, //0x00002fac movslq %edx, %rdx - 0x45, 0x31, 0xc9, //0x00002faf xorl %r9d, %r9d - 0x48, 0x39, 0xf2, //0x00002fb2 cmpq %rsi, %rdx - 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00002fb5 jge LBB10_39 - //0x00002fbb LBB10_35 - 0x45, 0x31, 0xc9, //0x00002fbb xorl %r9d, %r9d - 0x90, 0x90, //0x00002fbe .p2align 4, 0x90 - //0x00002fc0 LBB10_36 - 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00002fc0 cmpl $9999, %r9d - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00002fc7 jg LBB10_39 - 0x0f, 0xb6, 0x0c, 0x17, //0x00002fcd movzbl (%rdi,%rdx), %ecx - 0x8d, 0x41, 0xd0, //0x00002fd1 leal $-48(%rcx), %eax - 0x3c, 0x09, //0x00002fd4 cmpb $9, %al - 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00002fd6 ja LBB10_39 - 0x43, 0x8d, 0x04, 0x89, //0x00002fdc leal (%r9,%r9,4), %eax - 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00002fe0 leal $-48(%rcx,%rax,2), %r9d - 0x48, 0xff, 0xc2, //0x00002fe5 incq %rdx - 0x48, 0x39, 0xd6, //0x00002fe8 cmpq %rdx, %rsi - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00002feb jne LBB10_36 - //0x00002ff1 LBB10_39 - 0x45, 0x0f, 0xaf, 0xc8, //0x00002ff1 imull %r8d, %r9d - 0x44, 0x01, 0x4d, 0xf4, //0x00002ff5 addl %r9d, $-12(%rbp) - //0x00002ff9 LBB10_40 - 0x48, 0x8d, 0x7d, 0xe0, //0x00002ff9 leaq $-32(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd8, //0x00002ffd leaq $-40(%rbp), %rsi - 0xe8, 0x1a, 0xf9, 0xff, 0xff, //0x00003001 callq _decimal_to_f64 - 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003006 vmovsd $-40(%rbp), %xmm0 - 0x48, 0x83, 0xc4, 0x30, //0x0000300b addq $48, %rsp - 0x5d, //0x0000300f popq %rbp - 0xc3, //0x00003010 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003011 .p2align 4, 0x90 - //0x00003020 _value - 0x55, //0x00003020 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003021 movq %rsp, %rbp - 0x41, 0x57, //0x00003024 pushq %r15 - 0x41, 0x56, //0x00003026 pushq %r14 - 0x41, 0x55, //0x00003028 pushq %r13 - 0x41, 0x54, //0x0000302a pushq %r12 - 0x53, //0x0000302c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000302d subq $40, %rsp - 0x49, 0x89, 0xc9, //0x00003031 movq %rcx, %r9 - 0x49, 0x89, 0xd4, //0x00003034 movq %rdx, %r12 - 0x49, 0x89, 0xf7, //0x00003037 movq %rsi, %r15 - 0x49, 0x89, 0xfd, //0x0000303a movq %rdi, %r13 - 0x48, 0x89, 0x55, 0xd0, //0x0000303d movq %rdx, $-48(%rbp) - 0x48, 0x89, 0x7d, 0xb0, //0x00003041 movq %rdi, $-80(%rbp) - 0x48, 0x89, 0x75, 0xb8, //0x00003045 movq %rsi, $-72(%rbp) - 0x48, 0x89, 0xd0, //0x00003049 movq %rdx, %rax - 0x48, 0x29, 0xf0, //0x0000304c subq %rsi, %rax - 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000304f jae LBB11_5 - 0x43, 0x8a, 0x4c, 0x25, 0x00, //0x00003055 movb (%r13,%r12), %cl - 0x80, 0xf9, 0x0d, //0x0000305a cmpb $13, %cl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000305d je LBB11_5 - 0x80, 0xf9, 0x20, //0x00003063 cmpb $32, %cl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003066 je LBB11_5 - 0x8d, 0x51, 0xf7, //0x0000306c leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x0000306f cmpb $1, %dl - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003072 jbe LBB11_5 - 0x4c, 0x89, 0xe3, //0x00003078 movq %r12, %rbx - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x0000307b jmp LBB11_28 - //0x00003080 LBB11_5 - 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003080 leaq $1(%r12), %rbx - 0x4c, 0x39, 0xfb, //0x00003085 cmpq %r15, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00003088 jae LBB11_9 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x0000308e movb (%r13,%rbx), %cl - 0x80, 0xf9, 0x0d, //0x00003093 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003096 je LBB11_9 - 0x80, 0xf9, 0x20, //0x0000309c cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000309f je LBB11_9 - 0x8d, 0x51, 0xf7, //0x000030a5 leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x000030a8 cmpb $1, %dl - 0x0f, 0x87, 0x01, 0x01, 0x00, 0x00, //0x000030ab ja LBB11_28 - //0x000030b1 LBB11_9 - 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000030b1 leaq $2(%r12), %rbx - 0x4c, 0x39, 0xfb, //0x000030b6 cmpq %r15, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030b9 jae LBB11_13 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030bf movb (%r13,%rbx), %cl - 0x80, 0xf9, 0x0d, //0x000030c4 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030c7 je LBB11_13 - 0x80, 0xf9, 0x20, //0x000030cd cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030d0 je LBB11_13 - 0x8d, 0x51, 0xf7, //0x000030d6 leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x000030d9 cmpb $1, %dl - 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000030dc ja LBB11_28 - //0x000030e2 LBB11_13 - 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000030e2 leaq $3(%r12), %rbx - 0x4c, 0x39, 0xfb, //0x000030e7 cmpq %r15, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030ea jae LBB11_17 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030f0 movb (%r13,%rbx), %cl - 0x80, 0xf9, 0x0d, //0x000030f5 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030f8 je LBB11_17 - 0x80, 0xf9, 0x20, //0x000030fe cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003101 je LBB11_17 - 0x8d, 0x51, 0xf7, //0x00003107 leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x0000310a cmpb $1, %dl - 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x0000310d ja LBB11_28 - //0x00003113 LBB11_17 - 0x49, 0x8d, 0x4c, 0x24, 0x04, //0x00003113 leaq $4(%r12), %rcx - 0x4c, 0x39, 0xf9, //0x00003118 cmpq %r15, %rcx - 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x0000311b jae LBB11_23 - 0x49, 0x39, 0xcf, //0x00003121 cmpq %rcx, %r15 - 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00003124 je LBB11_24 - 0x4b, 0x8d, 0x4c, 0x3d, 0x00, //0x0000312a leaq (%r13,%r15), %rcx - 0x48, 0x83, 0xc0, 0x04, //0x0000312f addq $4, %rax - 0x4b, 0x8d, 0x5c, 0x2c, 0x05, //0x00003133 leaq $5(%r12,%r13), %rbx - 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003138 movabsq $4294977024, %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003142 .p2align 4, 0x90 - //0x00003150 LBB11_20 - 0x0f, 0xbe, 0x73, 0xff, //0x00003150 movsbl $-1(%rbx), %esi - 0x83, 0xfe, 0x20, //0x00003154 cmpl $32, %esi - 0x0f, 0x87, 0x3e, 0x00, 0x00, 0x00, //0x00003157 ja LBB11_26 - 0x48, 0x0f, 0xa3, 0xf2, //0x0000315d btq %rsi, %rdx - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00003161 jae LBB11_26 - 0x48, 0xff, 0xc3, //0x00003167 incq %rbx - 0x48, 0xff, 0xc0, //0x0000316a incq %rax - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000316d jne LBB11_20 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00003173 jmp LBB11_25 - //0x00003178 LBB11_23 - 0x48, 0x89, 0x4d, 0xd0, //0x00003178 movq %rcx, $-48(%rbp) - 0x49, 0x89, 0xcc, //0x0000317c movq %rcx, %r12 - 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x0000317f jmp LBB11_32 - //0x00003184 LBB11_24 - 0x4c, 0x01, 0xe9, //0x00003184 addq %r13, %rcx - //0x00003187 LBB11_25 - 0x4c, 0x29, 0xe9, //0x00003187 subq %r13, %rcx - 0x48, 0x89, 0xcb, //0x0000318a movq %rcx, %rbx - 0x4c, 0x39, 0xfb, //0x0000318d cmpq %r15, %rbx - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00003190 jb LBB11_27 - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x00003196 jmp LBB11_32 - //0x0000319b LBB11_26 - 0x4c, 0x89, 0xe8, //0x0000319b movq %r13, %rax - 0x48, 0xf7, 0xd0, //0x0000319e notq %rax - 0x48, 0x01, 0xc3, //0x000031a1 addq %rax, %rbx - 0x4c, 0x39, 0xfb, //0x000031a4 cmpq %r15, %rbx - 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x000031a7 jae LBB11_32 - //0x000031ad LBB11_27 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000031ad movb (%r13,%rbx), %cl - //0x000031b2 LBB11_28 - 0x4c, 0x8d, 0x63, 0x01, //0x000031b2 leaq $1(%rbx), %r12 - 0x4c, 0x89, 0x65, 0xd0, //0x000031b6 movq %r12, $-48(%rbp) - 0x0f, 0xbe, 0xc1, //0x000031ba movsbl %cl, %eax - 0x83, 0xf8, 0x7d, //0x000031bd cmpl $125, %eax - 0x0f, 0x87, 0xbe, 0x00, 0x00, 0x00, //0x000031c0 ja LBB11_40 - 0x4d, 0x8d, 0x74, 0x1d, 0x00, //0x000031c6 leaq (%r13,%rbx), %r14 - 0x48, 0x8d, 0x15, 0x6a, 0x03, 0x00, 0x00, //0x000031cb leaq $874(%rip), %rdx /* LJTI11_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x82, //0x000031d2 movslq (%rdx,%rax,4), %rax - 0x48, 0x01, 0xd0, //0x000031d6 addq %rdx, %rax - 0xff, 0xe0, //0x000031d9 jmpq *%rax - //0x000031db LBB11_30 - 0x48, 0x89, 0x5d, 0xd0, //0x000031db movq %rbx, $-48(%rbp) - 0x41, 0xf6, 0xc0, 0x02, //0x000031df testb $2, %r8b - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000031e3 jne LBB11_35 - 0x48, 0x8d, 0x7d, 0xb0, //0x000031e9 leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd0, //0x000031ed leaq $-48(%rbp), %rsi - 0x4c, 0x89, 0xca, //0x000031f1 movq %r9, %rdx - 0xe8, 0x27, 0x0b, 0x00, 0x00, //0x000031f4 callq _vnumber - 0x48, 0x8b, 0x5d, 0xd0, //0x000031f9 movq $-48(%rbp), %rbx - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000031fd jmp LBB11_34 - //0x00003202 LBB11_32 - 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x00003202 movq $1, (%r9) - //0x00003209 LBB11_33 - 0x4c, 0x89, 0xe3, //0x00003209 movq %r12, %rbx - //0x0000320c LBB11_34 - 0x48, 0x89, 0xd8, //0x0000320c movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x28, //0x0000320f addq $40, %rsp - 0x5b, //0x00003213 popq %rbx - 0x41, 0x5c, //0x00003214 popq %r12 - 0x41, 0x5d, //0x00003216 popq %r13 - 0x41, 0x5e, //0x00003218 popq %r14 - 0x41, 0x5f, //0x0000321a popq %r15 - 0x5d, //0x0000321c popq %rbp - 0xc3, //0x0000321d retq - //0x0000321e LBB11_35 - 0x49, 0x29, 0xdf, //0x0000321e subq %rbx, %r15 - 0x31, 0xc0, //0x00003221 xorl %eax, %eax - 0x80, 0xf9, 0x2d, //0x00003223 cmpb $45, %cl - 0x0f, 0x94, 0xc0, //0x00003226 sete %al - 0x49, 0x01, 0xc6, //0x00003229 addq %rax, %r14 - 0x49, 0x29, 0xc7, //0x0000322c subq %rax, %r15 - 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x0000322f je LBB11_84 - 0x4c, 0x89, 0x4d, 0xc8, //0x00003235 movq %r9, $-56(%rbp) - 0x41, 0x8a, 0x06, //0x00003239 movb (%r14), %al - 0x04, 0xd0, //0x0000323c addb $-48, %al - 0x3c, 0x0a, //0x0000323e cmpb $10, %al - 0x0f, 0x83, 0xd9, 0x02, 0x00, 0x00, //0x00003240 jae LBB11_86 - 0x4c, 0x89, 0xf7, //0x00003246 movq %r14, %rdi - 0x4c, 0x89, 0xfe, //0x00003249 movq %r15, %rsi - 0xe8, 0xdf, 0x1d, 0x00, 0x00, //0x0000324c callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00003251 testq %rax, %rax - 0x0f, 0x88, 0xbf, 0x02, 0x00, 0x00, //0x00003254 js LBB11_85 - 0x49, 0x01, 0xc6, //0x0000325a addq %rax, %r14 - 0x4d, 0x29, 0xee, //0x0000325d subq %r13, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x00003260 movq %r14, $-48(%rbp) - 0x4d, 0x85, 0xe4, //0x00003264 testq %r12, %r12 - 0x4c, 0x8b, 0x4d, 0xc8, //0x00003267 movq $-56(%rbp), %r9 - 0x0f, 0x8e, 0xc0, 0x02, 0x00, 0x00, //0x0000326b jle LBB11_87 - 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003271 movq $8, (%r9) - 0x49, 0x89, 0x59, 0x18, //0x00003278 movq %rbx, $24(%r9) - 0x4c, 0x89, 0xf3, //0x0000327c movq %r14, %rbx - 0xe9, 0x88, 0xff, 0xff, 0xff, //0x0000327f jmp LBB11_34 - //0x00003284 LBB11_40 - 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x00003284 movq $-2, (%r9) - 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x0000328b jmp LBB11_34 - //0x00003290 LBB11_41 - 0x4d, 0x89, 0xce, //0x00003290 movq %r9, %r14 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003293 movq $-1, $-64(%rbp) - 0x48, 0x8d, 0x7d, 0xb0, //0x0000329b leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc0, //0x0000329f leaq $-64(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x000032a3 movq %r12, %rsi - 0x4c, 0x89, 0xc1, //0x000032a6 movq %r8, %rcx - 0xe8, 0x42, 0x05, 0x00, 0x00, //0x000032a9 callq _advance_string - 0x48, 0x89, 0xc3, //0x000032ae movq %rax, %rbx - 0x48, 0x85, 0xc0, //0x000032b1 testq %rax, %rax - 0x0f, 0x88, 0x47, 0x01, 0x00, 0x00, //0x000032b4 js LBB11_61 - 0x48, 0x89, 0x5d, 0xd0, //0x000032ba movq %rbx, $-48(%rbp) - 0x4d, 0x89, 0x66, 0x10, //0x000032be movq %r12, $16(%r14) - 0x48, 0x8b, 0x45, 0xc0, //0x000032c2 movq $-64(%rbp), %rax - 0x48, 0x39, 0xd8, //0x000032c6 cmpq %rbx, %rax - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032c9 movq $-1, %rcx - 0x48, 0x0f, 0x4c, 0xc8, //0x000032d0 cmovlq %rax, %rcx - 0x49, 0x89, 0x4e, 0x18, //0x000032d4 movq %rcx, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000032d8 movl $7, %eax - 0x49, 0x89, 0x06, //0x000032dd movq %rax, (%r14) - 0xe9, 0x27, 0xff, 0xff, 0xff, //0x000032e0 jmp LBB11_34 - //0x000032e5 LBB11_43 - 0x31, 0xc0, //0x000032e5 xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x000032e7 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x000032ea setns %al - 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000032ed movl $11, %ecx - 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x000032f2 jmp LBB11_60 - //0x000032f7 LBB11_44 - 0x31, 0xc0, //0x000032f7 xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x000032f9 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x000032fc setns %al - 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x000032ff movl $10, %ecx - 0xe9, 0xe2, 0x00, 0x00, 0x00, //0x00003304 jmp LBB11_60 - //0x00003309 LBB11_45 - 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x00003309 movq $5, (%r9) - 0xe9, 0xf4, 0xfe, 0xff, 0xff, //0x00003310 jmp LBB11_33 - //0x00003315 LBB11_46 - 0x31, 0xc0, //0x00003315 xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x00003317 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x0000331a setns %al - 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x0000331d movl $12, %ecx - 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003322 jmp LBB11_60 - //0x00003327 LBB11_47 - 0x49, 0x8d, 0x47, 0xfc, //0x00003327 leaq $-4(%r15), %rax - 0x48, 0x39, 0xc3, //0x0000332b cmpq %rax, %rbx - 0x0f, 0x83, 0x88, 0x00, 0x00, 0x00, //0x0000332e jae LBB11_56 - 0x43, 0x8b, 0x4c, 0x25, 0x00, //0x00003334 movl (%r13,%r12), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00003339 cmpl $1702063201, %ecx - 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000333f jne LBB11_62 - 0x48, 0x83, 0xc3, 0x05, //0x00003345 addq $5, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00003349 movq %rbx, $-48(%rbp) - 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000334d movl $4, %eax - 0x49, 0x89, 0xdf, //0x00003352 movq %rbx, %r15 - 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00003355 jmp LBB11_57 - //0x0000335a LBB11_50 - 0x49, 0x8d, 0x47, 0xfd, //0x0000335a leaq $-3(%r15), %rax - 0x48, 0x39, 0xc3, //0x0000335e cmpq %rax, %rbx - 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x00003361 jae LBB11_56 - 0x41, 0x8b, 0x0e, //0x00003367 movl (%r14), %ecx - 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x0000336a cmpl $1819047278, %ecx - 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003370 jne LBB11_66 - 0x48, 0x83, 0xc3, 0x04, //0x00003376 addq $4, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x0000337a movq %rbx, $-48(%rbp) - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x0000337e movl $2, %eax - 0x49, 0x89, 0xdf, //0x00003383 movq %rbx, %r15 - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x00003386 jmp LBB11_57 - //0x0000338b LBB11_53 - 0x49, 0x8d, 0x47, 0xfd, //0x0000338b leaq $-3(%r15), %rax - 0x48, 0x39, 0xc3, //0x0000338f cmpq %rax, %rbx - 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00003392 jae LBB11_56 - 0x41, 0x8b, 0x0e, //0x00003398 movl (%r14), %ecx - 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x0000339b cmpl $1702195828, %ecx - 0x0f, 0x85, 0xeb, 0x00, 0x00, 0x00, //0x000033a1 jne LBB11_70 - 0x48, 0x83, 0xc3, 0x04, //0x000033a7 addq $4, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000033ab movq %rbx, $-48(%rbp) - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000033af movl $3, %eax - 0x49, 0x89, 0xdf, //0x000033b4 movq %rbx, %r15 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000033b7 jmp LBB11_57 - //0x000033bc LBB11_56 - 0x4c, 0x89, 0x7d, 0xd0, //0x000033bc movq %r15, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033c0 movq $-1, %rax - //0x000033c7 LBB11_57 - 0x49, 0x89, 0x01, //0x000033c7 movq %rax, (%r9) - 0x4c, 0x89, 0xfb, //0x000033ca movq %r15, %rbx - 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x000033cd jmp LBB11_34 - //0x000033d2 LBB11_58 - 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000033d2 movq $6, (%r9) - 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000033d9 jmp LBB11_33 - //0x000033de LBB11_59 - 0x31, 0xc0, //0x000033de xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x000033e0 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x000033e3 setns %al - 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000033e6 movl $13, %ecx - //0x000033eb LBB11_60 - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000033eb movq $-2, %rdx - 0x48, 0x0f, 0x48, 0xd1, //0x000033f2 cmovsq %rcx, %rdx - 0x49, 0x89, 0x11, //0x000033f6 movq %rdx, (%r9) - 0x49, 0x29, 0xc4, //0x000033f9 subq %rax, %r12 - 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x000033fc jmp LBB11_33 - //0x00003401 LBB11_61 - 0x4c, 0x89, 0x7d, 0xd0, //0x00003401 movq %r15, $-48(%rbp) - 0x49, 0x89, 0x1e, //0x00003405 movq %rbx, (%r14) - 0x4c, 0x89, 0xfb, //0x00003408 movq %r15, %rbx - 0xe9, 0xfc, 0xfd, 0xff, 0xff, //0x0000340b jmp LBB11_34 - //0x00003410 LBB11_62 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003410 movq $-2, %rax - 0x80, 0xf9, 0x61, //0x00003417 cmpb $97, %cl - 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x0000341a jne LBB11_74 - 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x00003420 cmpb $108, $2(%r13,%rbx) - 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00003426 jne LBB11_81 - 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x73, //0x0000342c cmpb $115, $3(%r13,%rbx) - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003432 jne LBB11_79 - 0x4c, 0x8d, 0x7b, 0x04, //0x00003438 leaq $4(%rbx), %r15 - 0x48, 0x8d, 0x4b, 0x05, //0x0000343c leaq $5(%rbx), %rcx - 0x41, 0x80, 0x7c, 0x1d, 0x04, 0x65, //0x00003440 cmpb $101, $4(%r13,%rbx) - 0x4c, 0x0f, 0x44, 0xf9, //0x00003446 cmoveq %rcx, %r15 - 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000344a jmp LBB11_83 - //0x0000344f LBB11_66 - 0x48, 0x89, 0x5d, 0xd0, //0x0000344f movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003453 movq $-2, %rax - 0x80, 0xf9, 0x6e, //0x0000345a cmpb $110, %cl - 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x0000345d jne LBB11_76 - 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x75, //0x00003463 cmpb $117, $1(%r13,%rbx) - 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00003469 jne LBB11_77 - 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x0000346f cmpb $108, $2(%r13,%rbx) - 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x00003475 jne LBB11_81 - 0x4c, 0x8d, 0x7b, 0x03, //0x0000347b leaq $3(%rbx), %r15 - 0x48, 0x8d, 0x4b, 0x04, //0x0000347f leaq $4(%rbx), %rcx - 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x6c, //0x00003483 cmpb $108, $3(%r13,%rbx) - 0x4c, 0x0f, 0x44, 0xf9, //0x00003489 cmoveq %rcx, %r15 - 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x0000348d jmp LBB11_83 - //0x00003492 LBB11_70 - 0x48, 0x89, 0x5d, 0xd0, //0x00003492 movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003496 movq $-2, %rax - 0x80, 0xf9, 0x74, //0x0000349d cmpb $116, %cl - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034a0 jne LBB11_76 - 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x72, //0x000034a6 cmpb $114, $1(%r13,%rbx) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000034ac jne LBB11_77 - 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x75, //0x000034b2 cmpb $117, $2(%r13,%rbx) - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034b8 jne LBB11_81 - 0x4c, 0x8d, 0x7b, 0x03, //0x000034be leaq $3(%rbx), %r15 - 0x48, 0x8d, 0x4b, 0x04, //0x000034c2 leaq $4(%rbx), %rcx - 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x65, //0x000034c6 cmpb $101, $3(%r13,%rbx) - 0x4c, 0x0f, 0x44, 0xf9, //0x000034cc cmoveq %rcx, %r15 - 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034d0 jmp LBB11_83 - //0x000034d5 LBB11_76 - 0x49, 0x89, 0xdf, //0x000034d5 movq %rbx, %r15 - 0xe9, 0xea, 0xfe, 0xff, 0xff, //0x000034d8 jmp LBB11_57 - //0x000034dd LBB11_74 - 0x4d, 0x89, 0xe7, //0x000034dd movq %r12, %r15 - 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x000034e0 jmp LBB11_57 - //0x000034e5 LBB11_77 - 0x48, 0xff, 0xc3, //0x000034e5 incq %rbx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000034e8 jmp LBB11_82 - //0x000034ed LBB11_81 - 0x48, 0x83, 0xc3, 0x02, //0x000034ed addq $2, %rbx - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000034f1 jmp LBB11_82 - //0x000034f6 LBB11_79 - 0x48, 0x83, 0xc3, 0x03, //0x000034f6 addq $3, %rbx - //0x000034fa LBB11_82 - 0x49, 0x89, 0xdf, //0x000034fa movq %rbx, %r15 - //0x000034fd LBB11_83 - 0x4c, 0x89, 0x7d, 0xd0, //0x000034fd movq %r15, $-48(%rbp) - 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003501 jmp LBB11_57 - //0x00003506 LBB11_84 - 0x4d, 0x29, 0xee, //0x00003506 subq %r13, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x00003509 movq %r14, $-48(%rbp) - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000350d movq $-1, %rbx - 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00003514 jmp LBB11_87 - //0x00003519 LBB11_85 - 0x48, 0xf7, 0xd0, //0x00003519 notq %rax - 0x49, 0x01, 0xc6, //0x0000351c addq %rax, %r14 - //0x0000351f LBB11_86 - 0x4d, 0x29, 0xee, //0x0000351f subq %r13, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x00003522 movq %r14, $-48(%rbp) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003526 movq $-2, %rbx - 0x4c, 0x8b, 0x4d, 0xc8, //0x0000352d movq $-56(%rbp), %r9 - //0x00003531 LBB11_87 - 0x49, 0x89, 0x19, //0x00003531 movq %rbx, (%r9) - 0x4c, 0x89, 0xf3, //0x00003534 movq %r14, %rbx - 0xe9, 0xd0, 0xfc, 0xff, 0xff, //0x00003537 jmp LBB11_34 - //0x0000353c .p2align 2, 0x90 - // // .set L11_0_set_32, LBB11_32-LJTI11_0 - // // .set L11_0_set_40, LBB11_40-LJTI11_0 - // // .set L11_0_set_41, LBB11_41-LJTI11_0 - // // .set L11_0_set_43, LBB11_43-LJTI11_0 - // // .set L11_0_set_30, LBB11_30-LJTI11_0 - // // .set L11_0_set_44, LBB11_44-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_50, LBB11_50-LJTI11_0 - // // .set L11_0_set_53, LBB11_53-LJTI11_0 - // // .set L11_0_set_58, LBB11_58-LJTI11_0 - // // .set L11_0_set_59, LBB11_59-LJTI11_0 - //0x0000353c LJTI11_0 - 0xc6, 0xfc, 0xff, 0xff, //0x0000353c .long L11_0_set_32 - 0x48, 0xfd, 0xff, 0xff, //0x00003540 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003544 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003548 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000354c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003550 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003554 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003558 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000355c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003560 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003564 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003568 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000356c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003570 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003574 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003578 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000357c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003580 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003584 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003588 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000358c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003590 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003594 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003598 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000359c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035a0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035a4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035a8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035ac .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035b0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035b4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035b8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035bc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035c0 .long L11_0_set_40 - 0x54, 0xfd, 0xff, 0xff, //0x000035c4 .long L11_0_set_41 - 0x48, 0xfd, 0xff, 0xff, //0x000035c8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035cc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035d0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035d4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035d8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035dc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035e0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035e4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035e8 .long L11_0_set_40 - 0xa9, 0xfd, 0xff, 0xff, //0x000035ec .long L11_0_set_43 - 0x9f, 0xfc, 0xff, 0xff, //0x000035f0 .long L11_0_set_30 - 0x48, 0xfd, 0xff, 0xff, //0x000035f4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035f8 .long L11_0_set_40 - 0x9f, 0xfc, 0xff, 0xff, //0x000035fc .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003600 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003604 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003608 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x0000360c .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003610 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003614 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003618 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x0000361c .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003620 .long L11_0_set_30 - 0xbb, 0xfd, 0xff, 0xff, //0x00003624 .long L11_0_set_44 - 0x48, 0xfd, 0xff, 0xff, //0x00003628 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000362c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003630 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003634 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003638 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000363c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003640 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003644 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003648 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000364c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003650 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003654 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003658 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000365c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003660 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003664 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003668 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000366c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003670 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003674 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003678 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000367c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003680 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003684 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003688 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000368c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003690 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003694 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003698 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000369c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036a0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036a4 .long L11_0_set_40 - 0xcd, 0xfd, 0xff, 0xff, //0x000036a8 .long L11_0_set_45 - 0x48, 0xfd, 0xff, 0xff, //0x000036ac .long L11_0_set_40 - 0xd9, 0xfd, 0xff, 0xff, //0x000036b0 .long L11_0_set_46 - 0x48, 0xfd, 0xff, 0xff, //0x000036b4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036b8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036bc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036c0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036c4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036c8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036cc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036d0 .long L11_0_set_40 - 0xeb, 0xfd, 0xff, 0xff, //0x000036d4 .long L11_0_set_47 - 0x48, 0xfd, 0xff, 0xff, //0x000036d8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036dc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036e0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036e4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036e8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036ec .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036f0 .long L11_0_set_40 - 0x1e, 0xfe, 0xff, 0xff, //0x000036f4 .long L11_0_set_50 - 0x48, 0xfd, 0xff, 0xff, //0x000036f8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036fc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003700 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003704 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003708 .long L11_0_set_40 - 0x4f, 0xfe, 0xff, 0xff, //0x0000370c .long L11_0_set_53 - 0x48, 0xfd, 0xff, 0xff, //0x00003710 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003714 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003718 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000371c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003720 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003724 .long L11_0_set_40 - 0x96, 0xfe, 0xff, 0xff, //0x00003728 .long L11_0_set_58 - 0x48, 0xfd, 0xff, 0xff, //0x0000372c .long L11_0_set_40 - 0xa2, 0xfe, 0xff, 0xff, //0x00003730 .long L11_0_set_59 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003734 .p2align 4, 0x90 - //0x00003740 _vstring - 0x55, //0x00003740 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003741 movq %rsp, %rbp - 0x41, 0x57, //0x00003744 pushq %r15 - 0x41, 0x56, //0x00003746 pushq %r14 - 0x41, 0x54, //0x00003748 pushq %r12 - 0x53, //0x0000374a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000374b subq $16, %rsp - 0x49, 0x89, 0xd6, //0x0000374f movq %rdx, %r14 - 0x48, 0x89, 0xf3, //0x00003752 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00003755 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003758 movq $-1, $-40(%rbp) - 0x4c, 0x8b, 0x26, //0x00003760 movq (%rsi), %r12 - 0x48, 0x8d, 0x55, 0xd8, //0x00003763 leaq $-40(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00003767 movq %r12, %rsi - 0xe8, 0x81, 0x00, 0x00, 0x00, //0x0000376a callq _advance_string - 0x48, 0x85, 0xc0, //0x0000376f testq %rax, %rax - 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003772 js LBB12_1 - 0x48, 0x89, 0x03, //0x00003778 movq %rax, (%rbx) - 0x4d, 0x89, 0x66, 0x10, //0x0000377b movq %r12, $16(%r14) - 0x48, 0x8b, 0x4d, 0xd8, //0x0000377f movq $-40(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x00003783 cmpq %rax, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003786 movq $-1, %rax - 0x48, 0x0f, 0x4c, 0xc1, //0x0000378d cmovlq %rcx, %rax - 0x49, 0x89, 0x46, 0x18, //0x00003791 movq %rax, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003795 movl $7, %eax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000379a jmp LBB12_3 - //0x0000379f LBB12_1 - 0x49, 0x8b, 0x4f, 0x08, //0x0000379f movq $8(%r15), %rcx - 0x48, 0x89, 0x0b, //0x000037a3 movq %rcx, (%rbx) - //0x000037a6 LBB12_3 - 0x49, 0x89, 0x06, //0x000037a6 movq %rax, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x000037a9 addq $16, %rsp - 0x5b, //0x000037ad popq %rbx - 0x41, 0x5c, //0x000037ae popq %r12 - 0x41, 0x5e, //0x000037b0 popq %r14 - 0x41, 0x5f, //0x000037b2 popq %r15 - 0x5d, //0x000037b4 popq %rbp - 0xc3, //0x000037b5 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000037b6 .p2align 4, 0x00 - //0x000037c0 LCPI13_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000037c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000037d0 LCPI13_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000037d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000037e0 LCPI13_2 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000037e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000037f0 .p2align 4, 0x90 - //0x000037f0 _advance_string - 0xf6, 0xc1, 0x20, //0x000037f0 testb $32, %cl - 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x000037f3 jne LBB13_2 - 0xe9, 0x82, 0x57, 0x00, 0x00, //0x000037f9 jmp _advance_string_default - //0x000037fe LBB13_2 - 0x55, //0x000037fe pushq %rbp - 0x48, 0x89, 0xe5, //0x000037ff movq %rsp, %rbp - 0x41, 0x57, //0x00003802 pushq %r15 - 0x41, 0x56, //0x00003804 pushq %r14 - 0x41, 0x55, //0x00003806 pushq %r13 - 0x41, 0x54, //0x00003808 pushq %r12 - 0x53, //0x0000380a pushq %rbx - 0x50, //0x0000380b pushq %rax - 0x4c, 0x8b, 0x7f, 0x08, //0x0000380c movq $8(%rdi), %r15 - 0x49, 0x29, 0xf7, //0x00003810 subq %rsi, %r15 - 0x0f, 0x84, 0xac, 0x04, 0x00, 0x00, //0x00003813 je LBB13_45 - 0x48, 0x8b, 0x07, //0x00003819 movq (%rdi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x0000381c movq %rax, $-48(%rbp) - 0x48, 0x01, 0xc6, //0x00003820 addq %rax, %rsi - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003823 movq $-1, (%rdx) - 0x49, 0x83, 0xff, 0x40, //0x0000382a cmpq $64, %r15 - 0x0f, 0x82, 0xd0, 0x03, 0x00, 0x00, //0x0000382e jb LBB13_46 - 0x45, 0x89, 0xf9, //0x00003834 movl %r15d, %r9d - 0x41, 0x83, 0xe1, 0x3f, //0x00003837 andl $63, %r9d - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000383b movq $-1, %r14 - 0x45, 0x31, 0xe4, //0x00003842 xorl %r12d, %r12d - 0xc5, 0x79, 0x6f, 0x05, 0x73, 0xff, 0xff, 0xff, //0x00003845 vmovdqa $-141(%rip), %xmm8 /* LCPI13_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x7b, 0xff, 0xff, 0xff, //0x0000384d vmovdqa $-133(%rip), %xmm1 /* LCPI13_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x83, 0xff, 0xff, 0xff, //0x00003855 vmovdqa $-125(%rip), %xmm2 /* LCPI13_2+0(%rip) */ - 0xc5, 0xe1, 0x76, 0xdb, //0x0000385d vpcmpeqd %xmm3, %xmm3, %xmm3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003861 .p2align 4, 0x90 - //0x00003870 LBB13_5 - 0xc5, 0xfa, 0x6f, 0x3e, //0x00003870 vmovdqu (%rsi), %xmm7 - 0xc5, 0xfa, 0x6f, 0x76, 0x10, //0x00003874 vmovdqu $16(%rsi), %xmm6 - 0xc5, 0xfa, 0x6f, 0x6e, 0x20, //0x00003879 vmovdqu $32(%rsi), %xmm5 - 0xc5, 0xfa, 0x6f, 0x66, 0x30, //0x0000387e vmovdqu $48(%rsi), %xmm4 - 0xc5, 0xb9, 0x74, 0xc7, //0x00003883 vpcmpeqb %xmm7, %xmm8, %xmm0 - 0xc5, 0x79, 0xd7, 0xd8, //0x00003887 vpmovmskb %xmm0, %r11d - 0xc5, 0xb9, 0x74, 0xc6, //0x0000388b vpcmpeqb %xmm6, %xmm8, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x0000388f vpmovmskb %xmm0, %r10d - 0xc5, 0xb9, 0x74, 0xc5, //0x00003893 vpcmpeqb %xmm5, %xmm8, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00003897 vpmovmskb %xmm0, %ecx - 0xc5, 0xb9, 0x74, 0xc4, //0x0000389b vpcmpeqb %xmm4, %xmm8, %xmm0 - 0xc5, 0x79, 0xd7, 0xe8, //0x0000389f vpmovmskb %xmm0, %r13d - 0xc5, 0xc1, 0x74, 0xc1, //0x000038a3 vpcmpeqb %xmm1, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x000038a7 vpmovmskb %xmm0, %r8d - 0xc5, 0xc9, 0x74, 0xc1, //0x000038ab vpcmpeqb %xmm1, %xmm6, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x000038af vpmovmskb %xmm0, %eax - 0xc5, 0xd1, 0x74, 0xc1, //0x000038b3 vpcmpeqb %xmm1, %xmm5, %xmm0 - 0x49, 0xc1, 0xe2, 0x10, //0x000038b7 shlq $16, %r10 - 0x4d, 0x09, 0xd3, //0x000038bb orq %r10, %r11 - 0xc5, 0xf9, 0xd7, 0xd8, //0x000038be vpmovmskb %xmm0, %ebx - 0xc5, 0xd9, 0x74, 0xc1, //0x000038c2 vpcmpeqb %xmm1, %xmm4, %xmm0 - 0x48, 0xc1, 0xe1, 0x20, //0x000038c6 shlq $32, %rcx - 0x49, 0x09, 0xcb, //0x000038ca orq %rcx, %r11 - 0xc5, 0xf9, 0xd7, 0xf8, //0x000038cd vpmovmskb %xmm0, %edi - 0xc5, 0xe9, 0x64, 0xc7, //0x000038d1 vpcmpgtb %xmm7, %xmm2, %xmm0 - 0xc5, 0xc1, 0x64, 0xfb, //0x000038d5 vpcmpgtb %xmm3, %xmm7, %xmm7 - 0xc5, 0xc1, 0xdb, 0xc0, //0x000038d9 vpand %xmm0, %xmm7, %xmm0 - 0x48, 0xc1, 0xe0, 0x10, //0x000038dd shlq $16, %rax - 0x49, 0x09, 0xc0, //0x000038e1 orq %rax, %r8 - 0xc5, 0xf9, 0xd7, 0xc8, //0x000038e4 vpmovmskb %xmm0, %ecx - 0xc5, 0xe9, 0x64, 0xc6, //0x000038e8 vpcmpgtb %xmm6, %xmm2, %xmm0 - 0xc5, 0xc9, 0x64, 0xf3, //0x000038ec vpcmpgtb %xmm3, %xmm6, %xmm6 - 0xc5, 0xc9, 0xdb, 0xc0, //0x000038f0 vpand %xmm0, %xmm6, %xmm0 - 0x48, 0xc1, 0xe3, 0x20, //0x000038f4 shlq $32, %rbx - 0x49, 0x09, 0xd8, //0x000038f8 orq %rbx, %r8 - 0xc5, 0xf9, 0xd7, 0xd8, //0x000038fb vpmovmskb %xmm0, %ebx - 0xc5, 0xe9, 0x64, 0xc5, //0x000038ff vpcmpgtb %xmm5, %xmm2, %xmm0 - 0xc5, 0xd1, 0x64, 0xeb, //0x00003903 vpcmpgtb %xmm3, %xmm5, %xmm5 - 0xc5, 0xd1, 0xdb, 0xc0, //0x00003907 vpand %xmm0, %xmm5, %xmm0 - 0x48, 0xc1, 0xe7, 0x30, //0x0000390b shlq $48, %rdi - 0x49, 0x09, 0xf8, //0x0000390f orq %rdi, %r8 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00003912 vpmovmskb %xmm0, %eax - 0xc5, 0xe9, 0x64, 0xc4, //0x00003916 vpcmpgtb %xmm4, %xmm2, %xmm0 - 0xc5, 0xd9, 0x64, 0xe3, //0x0000391a vpcmpgtb %xmm3, %xmm4, %xmm4 - 0xc5, 0xd9, 0xdb, 0xc0, //0x0000391e vpand %xmm0, %xmm4, %xmm0 - 0x48, 0xc1, 0xe3, 0x10, //0x00003922 shlq $16, %rbx - 0x48, 0x09, 0xd9, //0x00003926 orq %rbx, %rcx - 0xc5, 0x79, 0xd7, 0xd0, //0x00003929 vpmovmskb %xmm0, %r10d - 0x49, 0xc1, 0xe5, 0x30, //0x0000392d shlq $48, %r13 - 0x48, 0xc1, 0xe0, 0x20, //0x00003931 shlq $32, %rax - 0x49, 0x83, 0xfe, 0xff, //0x00003935 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003939 jne LBB13_7 - 0x4d, 0x85, 0xc0, //0x0000393f testq %r8, %r8 - 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00003942 jne LBB13_12 - //0x00003948 LBB13_7 - 0x49, 0xc1, 0xe2, 0x30, //0x00003948 shlq $48, %r10 - 0x48, 0x09, 0xc1, //0x0000394c orq %rax, %rcx - 0x4d, 0x09, 0xeb, //0x0000394f orq %r13, %r11 - 0x4c, 0x89, 0xc0, //0x00003952 movq %r8, %rax - 0x4c, 0x09, 0xe0, //0x00003955 orq %r12, %rax - 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00003958 jne LBB13_11 - 0x4c, 0x09, 0xd1, //0x0000395e orq %r10, %rcx - 0x4d, 0x85, 0xdb, //0x00003961 testq %r11, %r11 - 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x00003964 jne LBB13_13 - //0x0000396a LBB13_9 - 0x48, 0x85, 0xc9, //0x0000396a testq %rcx, %rcx - 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000396d jne LBB13_19 - 0x48, 0x83, 0xc6, 0x40, //0x00003973 addq $64, %rsi - 0x49, 0x83, 0xc7, 0xc0, //0x00003977 addq $-64, %r15 - 0x49, 0x83, 0xff, 0x3f, //0x0000397b cmpq $63, %r15 - 0x0f, 0x87, 0xeb, 0xfe, 0xff, 0xff, //0x0000397f ja LBB13_5 - 0xe9, 0xea, 0x00, 0x00, 0x00, //0x00003985 jmp LBB13_21 - //0x0000398a LBB13_11 - 0x4c, 0x89, 0xe0, //0x0000398a movq %r12, %rax - 0x48, 0xf7, 0xd0, //0x0000398d notq %rax - 0x4c, 0x21, 0xc0, //0x00003990 andq %r8, %rax - 0x4c, 0x8d, 0x2c, 0x00, //0x00003993 leaq (%rax,%rax), %r13 - 0x4d, 0x09, 0xe5, //0x00003997 orq %r12, %r13 - 0x4c, 0x89, 0xeb, //0x0000399a movq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x0000399d notq %rbx - 0x4c, 0x21, 0xc3, //0x000039a0 andq %r8, %rbx - 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000039a3 movabsq $-6148914691236517206, %rdi - 0x48, 0x21, 0xfb, //0x000039ad andq %rdi, %rbx - 0x45, 0x31, 0xe4, //0x000039b0 xorl %r12d, %r12d - 0x48, 0x01, 0xc3, //0x000039b3 addq %rax, %rbx - 0x41, 0x0f, 0x92, 0xc4, //0x000039b6 setb %r12b - 0x48, 0x01, 0xdb, //0x000039ba addq %rbx, %rbx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000039bd movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc3, //0x000039c7 xorq %rax, %rbx - 0x4c, 0x21, 0xeb, //0x000039ca andq %r13, %rbx - 0x48, 0xf7, 0xd3, //0x000039cd notq %rbx - 0x49, 0x21, 0xdb, //0x000039d0 andq %rbx, %r11 - 0x4c, 0x09, 0xd1, //0x000039d3 orq %r10, %rcx - 0x4d, 0x85, 0xdb, //0x000039d6 testq %r11, %r11 - 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x000039d9 je LBB13_9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000039df jmp LBB13_13 - //0x000039e4 LBB13_12 - 0x48, 0x89, 0xf7, //0x000039e4 movq %rsi, %rdi - 0x48, 0x2b, 0x7d, 0xd0, //0x000039e7 subq $-48(%rbp), %rdi - 0x4d, 0x0f, 0xbc, 0xf0, //0x000039eb bsfq %r8, %r14 - 0x49, 0x01, 0xfe, //0x000039ef addq %rdi, %r14 - 0x4c, 0x89, 0x32, //0x000039f2 movq %r14, (%rdx) - 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x000039f5 jmp LBB13_7 - //0x000039fa LBB13_13 - 0x49, 0x0f, 0xbc, 0xc3, //0x000039fa bsfq %r11, %rax - 0x48, 0x85, 0xc9, //0x000039fe testq %rcx, %rcx - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003a01 je LBB13_17 - 0x48, 0x0f, 0xbc, 0xc9, //0x00003a07 bsfq %rcx, %rcx - 0x48, 0x2b, 0x75, 0xd0, //0x00003a0b subq $-48(%rbp), %rsi - 0x48, 0x39, 0xc1, //0x00003a0f cmpq %rax, %rcx - 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00003a12 jb LBB13_18 - //0x00003a18 LBB13_15 - 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00003a18 leaq $1(%rsi,%rax), %rax - //0x00003a1d LBB13_16 - 0x48, 0x83, 0xc4, 0x08, //0x00003a1d addq $8, %rsp - 0x5b, //0x00003a21 popq %rbx - 0x41, 0x5c, //0x00003a22 popq %r12 - 0x41, 0x5d, //0x00003a24 popq %r13 - 0x41, 0x5e, //0x00003a26 popq %r14 - 0x41, 0x5f, //0x00003a28 popq %r15 - 0x5d, //0x00003a2a popq %rbp - 0xc3, //0x00003a2b retq - //0x00003a2c LBB13_17 - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003a2c movl $64, %ecx - 0x48, 0x2b, 0x75, 0xd0, //0x00003a31 subq $-48(%rbp), %rsi - 0x48, 0x39, 0xc1, //0x00003a35 cmpq %rax, %rcx - 0x0f, 0x83, 0xda, 0xff, 0xff, 0xff, //0x00003a38 jae LBB13_15 - //0x00003a3e LBB13_18 - 0x48, 0x01, 0xf1, //0x00003a3e addq %rsi, %rcx - 0x48, 0x89, 0x0a, //0x00003a41 movq %rcx, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a44 movq $-2, %rax - 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003a4b jmp LBB13_16 - //0x00003a50 LBB13_19 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a50 movq $-2, %rax - 0x49, 0x83, 0xfe, 0xff, //0x00003a57 cmpq $-1, %r14 - 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00003a5b jne LBB13_16 - 0x48, 0x0f, 0xbc, 0xc9, //0x00003a61 bsfq %rcx, %rcx - 0x48, 0x2b, 0x75, 0xd0, //0x00003a65 subq $-48(%rbp), %rsi - 0x48, 0x01, 0xce, //0x00003a69 addq %rcx, %rsi - 0x48, 0x89, 0x32, //0x00003a6c movq %rsi, (%rdx) - 0xe9, 0xa9, 0xff, 0xff, 0xff, //0x00003a6f jmp LBB13_16 - //0x00003a74 LBB13_21 - 0x4d, 0x89, 0xcf, //0x00003a74 movq %r9, %r15 - 0x49, 0x83, 0xff, 0x20, //0x00003a77 cmpq $32, %r15 - 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x00003a7b jb LBB13_34 - //0x00003a81 LBB13_22 - 0xc5, 0xfa, 0x6f, 0x06, //0x00003a81 vmovdqu (%rsi), %xmm0 - 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00003a85 vmovdqu $16(%rsi), %xmm1 - 0xc5, 0xf9, 0x6f, 0x15, 0x2e, 0xfd, 0xff, 0xff, //0x00003a8a vmovdqa $-722(%rip), %xmm2 /* LCPI13_0+0(%rip) */ - 0xc5, 0xf9, 0x74, 0xda, //0x00003a92 vpcmpeqb %xmm2, %xmm0, %xmm3 - 0xc5, 0xf9, 0xd7, 0xfb, //0x00003a96 vpmovmskb %xmm3, %edi - 0xc5, 0xf1, 0x74, 0xd2, //0x00003a9a vpcmpeqb %xmm2, %xmm1, %xmm2 - 0xc5, 0x79, 0xd7, 0xca, //0x00003a9e vpmovmskb %xmm2, %r9d - 0xc5, 0xf9, 0x6f, 0x15, 0x26, 0xfd, 0xff, 0xff, //0x00003aa2 vmovdqa $-730(%rip), %xmm2 /* LCPI13_1+0(%rip) */ - 0xc5, 0xf9, 0x74, 0xda, //0x00003aaa vpcmpeqb %xmm2, %xmm0, %xmm3 - 0xc5, 0xf9, 0xd7, 0xc3, //0x00003aae vpmovmskb %xmm3, %eax - 0xc5, 0xf1, 0x74, 0xd2, //0x00003ab2 vpcmpeqb %xmm2, %xmm1, %xmm2 - 0xc5, 0xf9, 0xd7, 0xca, //0x00003ab6 vpmovmskb %xmm2, %ecx - 0xc5, 0xf9, 0x6f, 0x15, 0x1e, 0xfd, 0xff, 0xff, //0x00003aba vmovdqa $-738(%rip), %xmm2 /* LCPI13_2+0(%rip) */ - 0xc5, 0xe9, 0x64, 0xd8, //0x00003ac2 vpcmpgtb %xmm0, %xmm2, %xmm3 - 0xc5, 0xd9, 0x76, 0xe4, //0x00003ac6 vpcmpeqd %xmm4, %xmm4, %xmm4 - 0xc5, 0xf9, 0x64, 0xc4, //0x00003aca vpcmpgtb %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0xdb, 0xc3, //0x00003ace vpand %xmm3, %xmm0, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x00003ad2 vpmovmskb %xmm0, %r8d - 0xc5, 0xe9, 0x64, 0xc1, //0x00003ad6 vpcmpgtb %xmm1, %xmm2, %xmm0 - 0xc5, 0xf1, 0x64, 0xcc, //0x00003ada vpcmpgtb %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xdb, 0xc0, //0x00003ade vpand %xmm0, %xmm1, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd8, //0x00003ae2 vpmovmskb %xmm0, %ebx - 0x49, 0xc1, 0xe1, 0x10, //0x00003ae6 shlq $16, %r9 - 0x48, 0xc1, 0xe1, 0x10, //0x00003aea shlq $16, %rcx - 0x48, 0x09, 0xc8, //0x00003aee orq %rcx, %rax - 0x49, 0x83, 0xfe, 0xff, //0x00003af1 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003af5 jne LBB13_24 - 0x48, 0x85, 0xc0, //0x00003afb testq %rax, %rax - 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, //0x00003afe jne LBB13_49 - //0x00003b04 LBB13_24 - 0x48, 0xc1, 0xe3, 0x10, //0x00003b04 shlq $16, %rbx - 0x49, 0x09, 0xf9, //0x00003b08 orq %rdi, %r9 - 0x48, 0x89, 0xc1, //0x00003b0b movq %rax, %rcx - 0x4c, 0x09, 0xe1, //0x00003b0e orq %r12, %rcx - 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x00003b11 jne LBB13_47 - //0x00003b17 LBB13_25 - 0x4c, 0x09, 0xc3, //0x00003b17 orq %r8, %rbx - 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003b1a movl $64, %eax - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003b1f movl $64, %ecx - 0x4d, 0x85, 0xc9, //0x00003b24 testq %r9, %r9 - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003b27 je LBB13_27 - 0x49, 0x0f, 0xbc, 0xc9, //0x00003b2d bsfq %r9, %rcx - //0x00003b31 LBB13_27 - 0x48, 0x0f, 0xbc, 0xfb, //0x00003b31 bsfq %rbx, %rdi - 0x48, 0x85, 0xdb, //0x00003b35 testq %rbx, %rbx - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00003b38 je LBB13_29 - 0x48, 0x89, 0xf8, //0x00003b3e movq %rdi, %rax - //0x00003b41 LBB13_29 - 0x4d, 0x85, 0xc9, //0x00003b41 testq %r9, %r9 - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003b44 je LBB13_32 - 0x48, 0x2b, 0x75, 0xd0, //0x00003b4a subq $-48(%rbp), %rsi - 0x48, 0x39, 0xc8, //0x00003b4e cmpq %rcx, %rax - 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003b51 jb LBB13_48 - 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00003b57 leaq $1(%rsi,%rcx), %rax - 0xe9, 0xbc, 0xfe, 0xff, 0xff, //0x00003b5c jmp LBB13_16 - //0x00003b61 LBB13_32 - 0x48, 0x85, 0xdb, //0x00003b61 testq %rbx, %rbx - 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00003b64 jne LBB13_50 - 0x48, 0x83, 0xc6, 0x20, //0x00003b6a addq $32, %rsi - 0x49, 0x83, 0xc7, 0xe0, //0x00003b6e addq $-32, %r15 - //0x00003b72 LBB13_34 - 0x4d, 0x85, 0xe4, //0x00003b72 testq %r12, %r12 - 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x00003b75 jne LBB13_51 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003b7b movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00003b82 testq %r15, %r15 - 0x0f, 0x84, 0x92, 0xfe, 0xff, 0xff, //0x00003b85 je LBB13_16 - //0x00003b8b LBB13_36 - 0x0f, 0xb6, 0x0e, //0x00003b8b movzbl (%rsi), %ecx - 0x80, 0xf9, 0x22, //0x00003b8e cmpb $34, %cl - 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00003b91 je LBB13_44 - 0x80, 0xf9, 0x5c, //0x00003b97 cmpb $92, %cl - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003b9a je LBB13_41 - 0x80, 0xf9, 0x1f, //0x00003ba0 cmpb $31, %cl - 0x0f, 0x86, 0x28, 0x01, 0x00, 0x00, //0x00003ba3 jbe LBB13_55 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003ba9 movq $-1, %rcx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00003bb0 movl $1, %edi - //0x00003bb5 LBB13_40 - 0x48, 0x01, 0xfe, //0x00003bb5 addq %rdi, %rsi - 0x49, 0x01, 0xcf, //0x00003bb8 addq %rcx, %r15 - 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003bbb jne LBB13_36 - 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x00003bc1 jmp LBB13_16 - //0x00003bc6 LBB13_41 - 0x49, 0x83, 0xff, 0x01, //0x00003bc6 cmpq $1, %r15 - 0x0f, 0x84, 0x4d, 0xfe, 0xff, 0xff, //0x00003bca je LBB13_16 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003bd0 movq $-2, %rcx - 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00003bd7 movl $2, %edi - 0x49, 0x83, 0xfe, 0xff, //0x00003bdc cmpq $-1, %r14 - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003be0 jne LBB13_40 - 0x49, 0x89, 0xf6, //0x00003be6 movq %rsi, %r14 - 0x4c, 0x2b, 0x75, 0xd0, //0x00003be9 subq $-48(%rbp), %r14 - 0x4c, 0x89, 0x32, //0x00003bed movq %r14, (%rdx) - 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x00003bf0 jmp LBB13_40 - //0x00003bf5 LBB13_44 - 0x48, 0x2b, 0x75, 0xd0, //0x00003bf5 subq $-48(%rbp), %rsi - 0x48, 0xff, 0xc6, //0x00003bf9 incq %rsi - 0x48, 0x89, 0xf0, //0x00003bfc movq %rsi, %rax - 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x00003bff jmp LBB13_16 - //0x00003c04 LBB13_46 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003c04 movq $-1, %r14 - 0x45, 0x31, 0xe4, //0x00003c0b xorl %r12d, %r12d - 0x49, 0x83, 0xff, 0x20, //0x00003c0e cmpq $32, %r15 - 0x0f, 0x83, 0x69, 0xfe, 0xff, 0xff, //0x00003c12 jae LBB13_22 - 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003c18 jmp LBB13_34 - //0x00003c1d LBB13_47 - 0x44, 0x89, 0xe1, //0x00003c1d movl %r12d, %ecx - 0xf7, 0xd1, //0x00003c20 notl %ecx - 0x21, 0xc1, //0x00003c22 andl %eax, %ecx - 0x44, 0x8d, 0x14, 0x09, //0x00003c24 leal (%rcx,%rcx), %r10d - 0x45, 0x09, 0xe2, //0x00003c28 orl %r12d, %r10d - 0x44, 0x89, 0xd7, //0x00003c2b movl %r10d, %edi - 0xf7, 0xd7, //0x00003c2e notl %edi - 0x21, 0xc7, //0x00003c30 andl %eax, %edi - 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c32 andl $-1431655766, %edi - 0x45, 0x31, 0xe4, //0x00003c38 xorl %r12d, %r12d - 0x01, 0xcf, //0x00003c3b addl %ecx, %edi - 0x41, 0x0f, 0x92, 0xc4, //0x00003c3d setb %r12b - 0x01, 0xff, //0x00003c41 addl %edi, %edi - 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00003c43 xorl $1431655765, %edi - 0x44, 0x21, 0xd7, //0x00003c49 andl %r10d, %edi - 0xf7, 0xd7, //0x00003c4c notl %edi - 0x41, 0x21, 0xf9, //0x00003c4e andl %edi, %r9d - 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003c51 jmp LBB13_25 - //0x00003c56 LBB13_48 - 0x48, 0x01, 0xf0, //0x00003c56 addq %rsi, %rax - 0x48, 0x89, 0x02, //0x00003c59 movq %rax, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003c5c movq $-2, %rax - 0xe9, 0xb5, 0xfd, 0xff, 0xff, //0x00003c63 jmp LBB13_16 - //0x00003c68 LBB13_49 - 0x48, 0x89, 0xf1, //0x00003c68 movq %rsi, %rcx - 0x48, 0x2b, 0x4d, 0xd0, //0x00003c6b subq $-48(%rbp), %rcx - 0x4c, 0x0f, 0xbc, 0xf0, //0x00003c6f bsfq %rax, %r14 - 0x49, 0x01, 0xce, //0x00003c73 addq %rcx, %r14 - 0x4c, 0x89, 0x32, //0x00003c76 movq %r14, (%rdx) - 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00003c79 jmp LBB13_24 - //0x00003c7e LBB13_50 - 0x48, 0x2b, 0x75, 0xd0, //0x00003c7e subq $-48(%rbp), %rsi - 0x48, 0x01, 0xfe, //0x00003c82 addq %rdi, %rsi - 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x00003c85 jmp LBB13_56 - //0x00003c8a LBB13_51 - 0x4d, 0x85, 0xff, //0x00003c8a testq %r15, %r15 - 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00003c8d je LBB13_45 - 0x49, 0x83, 0xfe, 0xff, //0x00003c93 cmpq $-1, %r14 - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003c97 jne LBB13_54 - 0x4c, 0x8b, 0x75, 0xd0, //0x00003c9d movq $-48(%rbp), %r14 - 0x49, 0xf7, 0xd6, //0x00003ca1 notq %r14 - 0x49, 0x01, 0xf6, //0x00003ca4 addq %rsi, %r14 - 0x4c, 0x89, 0x32, //0x00003ca7 movq %r14, (%rdx) - //0x00003caa LBB13_54 - 0x48, 0xff, 0xc6, //0x00003caa incq %rsi - 0x49, 0xff, 0xcf, //0x00003cad decq %r15 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003cb0 movq $-1, %rax - 0x4d, 0x85, 0xff, //0x00003cb7 testq %r15, %r15 - 0x0f, 0x85, 0xcb, 0xfe, 0xff, 0xff, //0x00003cba jne LBB13_36 - 0xe9, 0x58, 0xfd, 0xff, 0xff, //0x00003cc0 jmp LBB13_16 - //0x00003cc5 LBB13_45 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003cc5 movq $-1, %rax - 0xe9, 0x4c, 0xfd, 0xff, 0xff, //0x00003ccc jmp LBB13_16 - //0x00003cd1 LBB13_55 - 0x48, 0x2b, 0x75, 0xd0, //0x00003cd1 subq $-48(%rbp), %rsi - //0x00003cd5 LBB13_56 - 0x48, 0x89, 0x32, //0x00003cd5 movq %rsi, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003cd8 movq $-2, %rax - 0xe9, 0x39, 0xfd, 0xff, 0xff, //0x00003cdf jmp LBB13_16 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ce4 .p2align 4, 0x00 - //0x00003cf0 LCPI14_0 - 0x00, 0x00, 0x30, 0x43, //0x00003cf0 .long 1127219200 - 0x00, 0x00, 0x30, 0x45, //0x00003cf4 .long 1160773632 - 0x00, 0x00, 0x00, 0x00, //0x00003cf8 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00003cfc .long 0 - //0x00003d00 LCPI14_1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003d00 .quad 4841369599423283200 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003d08 .quad 4985484787499139072 - //0x00003d10 .p2align 3, 0x00 - //0x00003d10 LCPI14_2 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003d10 .quad 4831355200913801216 - //0x00003d18 LCPI14_3 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003d18 .quad -4392016835940974592 - //0x00003d20 .p2align 4, 0x90 - //0x00003d20 _vnumber - 0x55, //0x00003d20 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003d21 movq %rsp, %rbp - 0x41, 0x57, //0x00003d24 pushq %r15 - 0x41, 0x56, //0x00003d26 pushq %r14 - 0x41, 0x55, //0x00003d28 pushq %r13 - 0x41, 0x54, //0x00003d2a pushq %r12 - 0x53, //0x00003d2c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x00003d2d subq $56, %rsp - 0x48, 0x89, 0xd3, //0x00003d31 movq %rdx, %rbx - 0x49, 0x89, 0xf6, //0x00003d34 movq %rsi, %r14 - 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00003d37 movq $0, $-48(%rbp) - 0x48, 0x8b, 0x06, //0x00003d3f movq (%rsi), %rax - 0x4c, 0x8b, 0x3f, //0x00003d42 movq (%rdi), %r15 - 0x4c, 0x8b, 0x6f, 0x08, //0x00003d45 movq $8(%rdi), %r13 - 0x4c, 0x8b, 0x52, 0x20, //0x00003d49 movq $32(%rdx), %r10 - 0x4c, 0x8b, 0x5a, 0x28, //0x00003d4d movq $40(%rdx), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00003d51 movq $9, (%rdx) - 0xc5, 0xf9, 0x57, 0xc0, //0x00003d58 vxorpd %xmm0, %xmm0, %xmm0 - 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00003d5c vmovupd %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x00003d61 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00003d64 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xe8, //0x00003d68 cmpq %r13, %rax - 0x0f, 0x83, 0xc8, 0x02, 0x00, 0x00, //0x00003d6b jae LBB14_52 - 0x41, 0x8a, 0x3c, 0x07, //0x00003d71 movb (%r15,%rax), %dil - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003d75 movl $1, %r9d - 0x40, 0x80, 0xff, 0x2d, //0x00003d7b cmpb $45, %dil - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00003d7f jne LBB14_4 - 0x48, 0xff, 0xc0, //0x00003d85 incq %rax - 0x4c, 0x39, 0xe8, //0x00003d88 cmpq %r13, %rax - 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x00003d8b jae LBB14_52 - 0x41, 0x8a, 0x3c, 0x07, //0x00003d91 movb (%r15,%rax), %dil - 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003d95 movl $-1, %r9d - //0x00003d9b LBB14_4 - 0x8d, 0x4f, 0xd0, //0x00003d9b leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x00003d9e cmpb $10, %cl - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00003da1 jb LBB14_6 - //0x00003da7 LBB14_5 - 0x49, 0x89, 0x06, //0x00003da7 movq %rax, (%r14) - 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x00003daa movq $-2, (%rbx) - 0xe9, 0x8d, 0x02, 0x00, 0x00, //0x00003db1 jmp LBB14_53 - //0x00003db6 LBB14_6 - 0x40, 0x80, 0xff, 0x30, //0x00003db6 cmpb $48, %dil - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003dba jne LBB14_10 - 0x48, 0x8d, 0x70, 0x01, //0x00003dc0 leaq $1(%rax), %rsi - 0x4c, 0x39, 0xe8, //0x00003dc4 cmpq %r13, %rax - 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00003dc7 jae LBB14_19 - 0x41, 0x8a, 0x14, 0x37, //0x00003dcd movb (%r15,%rsi), %dl - 0x80, 0xc2, 0xd2, //0x00003dd1 addb $-46, %dl - 0x80, 0xfa, 0x37, //0x00003dd4 cmpb $55, %dl - 0x0f, 0x87, 0x94, 0x00, 0x00, 0x00, //0x00003dd7 ja LBB14_19 - 0x44, 0x0f, 0xb6, 0xc2, //0x00003ddd movzbl %dl, %r8d - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003de1 movabsq $36028797027352577, %rdx - 0x4c, 0x0f, 0xa3, 0xc2, //0x00003deb btq %r8, %rdx - 0x0f, 0x83, 0x7c, 0x00, 0x00, 0x00, //0x00003def jae LBB14_19 - //0x00003df5 LBB14_10 - 0x4c, 0x39, 0xe8, //0x00003df5 cmpq %r13, %rax - 0x0f, 0x83, 0x67, 0x00, 0x00, 0x00, //0x00003df8 jae LBB14_18 - 0x80, 0xf9, 0x09, //0x00003dfe cmpb $9, %cl - 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00003e01 ja LBB14_20 - 0x4d, 0x8d, 0x45, 0xff, //0x00003e07 leaq $-1(%r13), %r8 - 0x31, 0xc9, //0x00003e0b xorl %ecx, %ecx - 0x31, 0xf6, //0x00003e0d xorl %esi, %esi - 0x45, 0x31, 0xe4, //0x00003e0f xorl %r12d, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e12 .p2align 4, 0x90 - //0x00003e20 LBB14_13 - 0x83, 0xfe, 0x12, //0x00003e20 cmpl $18, %esi - 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00003e23 jg LBB14_15 - 0x48, 0x0f, 0xbe, 0xff, //0x00003e29 movsbq %dil, %rdi - 0x4b, 0x8d, 0x14, 0xa4, //0x00003e2d leaq (%r12,%r12,4), %rdx - 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003e31 leaq $-48(%rdi,%rdx,2), %r12 - 0xff, 0xc6, //0x00003e36 incl %esi - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003e38 jmp LBB14_16 - 0x90, 0x90, 0x90, //0x00003e3d .p2align 4, 0x90 - //0x00003e40 LBB14_15 - 0xff, 0xc1, //0x00003e40 incl %ecx - //0x00003e42 LBB14_16 - 0x49, 0x39, 0xc0, //0x00003e42 cmpq %rax, %r8 - 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00003e45 je LBB14_24 - 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00003e4b movzbl $1(%r15,%rax), %edi - 0x48, 0xff, 0xc0, //0x00003e51 incq %rax - 0x8d, 0x57, 0xd0, //0x00003e54 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x0a, //0x00003e57 cmpb $10, %dl - 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00003e5a jb LBB14_13 - 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00003e60 jmp LBB14_21 - //0x00003e65 LBB14_18 - 0x31, 0xc9, //0x00003e65 xorl %ecx, %ecx - 0x31, 0xf6, //0x00003e67 xorl %esi, %esi - 0x45, 0x31, 0xe4, //0x00003e69 xorl %r12d, %r12d - 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00003e6c jmp LBB14_25 - //0x00003e71 LBB14_19 - 0x49, 0x89, 0x36, //0x00003e71 movq %rsi, (%r14) - 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00003e74 jmp LBB14_53 - //0x00003e79 LBB14_20 - 0x45, 0x31, 0xe4, //0x00003e79 xorl %r12d, %r12d - 0x31, 0xf6, //0x00003e7c xorl %esi, %esi - 0x31, 0xc9, //0x00003e7e xorl %ecx, %ecx - //0x00003e80 LBB14_21 - 0x31, 0xd2, //0x00003e80 xorl %edx, %edx - 0x85, 0xc9, //0x00003e82 testl %ecx, %ecx - 0x0f, 0x9f, 0xc2, //0x00003e84 setg %dl - 0x89, 0x55, 0xcc, //0x00003e87 movl %edx, $-52(%rbp) - 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003e8a movl $9, %r8d - 0x40, 0x80, 0xff, 0x2e, //0x00003e90 cmpb $46, %dil - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00003e94 jne LBB14_26 - 0x48, 0xff, 0xc0, //0x00003e9a incq %rax - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003e9d movq $8, (%rbx) - 0x4c, 0x39, 0xe8, //0x00003ea4 cmpq %r13, %rax - 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00003ea7 jae LBB14_52 - 0x41, 0x8a, 0x14, 0x07, //0x00003ead movb (%r15,%rax), %dl - 0x80, 0xc2, 0xd0, //0x00003eb1 addb $-48, %dl - 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00003eb4 movl $8, %r8d - 0x80, 0xfa, 0x0a, //0x00003eba cmpb $10, %dl - 0x0f, 0x83, 0xe4, 0xfe, 0xff, 0xff, //0x00003ebd jae LBB14_5 - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003ec3 jmp LBB14_26 - //0x00003ec8 LBB14_24 - 0x4c, 0x89, 0xe8, //0x00003ec8 movq %r13, %rax - //0x00003ecb LBB14_25 - 0x31, 0xd2, //0x00003ecb xorl %edx, %edx - 0x85, 0xc9, //0x00003ecd testl %ecx, %ecx - 0x0f, 0x9f, 0xc2, //0x00003ecf setg %dl - 0x89, 0x55, 0xcc, //0x00003ed2 movl %edx, $-52(%rbp) - 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003ed5 movl $9, %r8d - //0x00003edb LBB14_26 - 0x85, 0xc9, //0x00003edb testl %ecx, %ecx - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003edd jne LBB14_35 - 0x4d, 0x85, 0xe4, //0x00003ee3 testq %r12, %r12 - 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00003ee6 jne LBB14_35 - 0x4c, 0x39, 0xe8, //0x00003eec cmpq %r13, %rax - 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00003eef jae LBB14_33 - 0x89, 0xc7, //0x00003ef5 movl %eax, %edi - 0x44, 0x29, 0xef, //0x00003ef7 subl %r13d, %edi - 0x31, 0xf6, //0x00003efa xorl %esi, %esi - 0x31, 0xc9, //0x00003efc xorl %ecx, %ecx - 0x90, 0x90, //0x00003efe .p2align 4, 0x90 - //0x00003f00 LBB14_30 - 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00003f00 cmpb $48, (%r15,%rax) - 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00003f05 jne LBB14_34 - 0x48, 0xff, 0xc0, //0x00003f0b incq %rax - 0xff, 0xc9, //0x00003f0e decl %ecx - 0x49, 0x39, 0xc5, //0x00003f10 cmpq %rax, %r13 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00003f13 jne LBB14_30 - 0x45, 0x31, 0xe4, //0x00003f19 xorl %r12d, %r12d - 0x41, 0x83, 0xf8, 0x09, //0x00003f1c cmpl $9, %r8d - 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00003f20 je LBB14_55 - 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00003f26 jmp LBB14_59 - //0x00003f2b LBB14_33 - 0x31, 0xc9, //0x00003f2b xorl %ecx, %ecx - 0x31, 0xf6, //0x00003f2d xorl %esi, %esi - //0x00003f2f LBB14_34 - 0x45, 0x31, 0xe4, //0x00003f2f xorl %r12d, %r12d - //0x00003f32 LBB14_35 - 0x4c, 0x39, 0xe8, //0x00003f32 cmpq %r13, %rax - 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00003f35 jae LBB14_40 - 0x83, 0xfe, 0x12, //0x00003f3b cmpl $18, %esi - 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00003f3e jg LBB14_40 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f44 .p2align 4, 0x90 - //0x00003f50 LBB14_37 - 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00003f50 movzbl (%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00003f55 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00003f58 cmpb $9, %dl - 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00003f5b ja LBB14_40 - 0x4b, 0x8d, 0x14, 0xa4, //0x00003f61 leaq (%r12,%r12,4), %rdx - 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003f65 leaq $-48(%rdi,%rdx,2), %r12 - 0xff, 0xc9, //0x00003f6a decl %ecx - 0x48, 0xff, 0xc0, //0x00003f6c incq %rax - 0x4c, 0x39, 0xe8, //0x00003f6f cmpq %r13, %rax - 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003f72 jae LBB14_40 - 0x8d, 0x56, 0x01, //0x00003f78 leal $1(%rsi), %edx - 0x83, 0xfe, 0x12, //0x00003f7b cmpl $18, %esi - 0x89, 0xd6, //0x00003f7e movl %edx, %esi - 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00003f80 jl LBB14_37 - //0x00003f86 LBB14_40 - 0x4c, 0x39, 0xe8, //0x00003f86 cmpq %r13, %rax - 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00003f89 jae LBB14_54 - 0x41, 0x8a, 0x34, 0x07, //0x00003f8f movb (%r15,%rax), %sil - 0x8d, 0x56, 0xd0, //0x00003f93 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x09, //0x00003f96 cmpb $9, %dl - 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00003f99 ja LBB14_46 - 0x49, 0x8d, 0x7d, 0xff, //0x00003f9f leaq $-1(%r13), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fa3 .p2align 4, 0x90 - //0x00003fb0 LBB14_43 - 0x48, 0x39, 0xc7, //0x00003fb0 cmpq %rax, %rdi - 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00003fb3 je LBB14_76 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00003fb9 movzbl $1(%r15,%rax), %esi - 0x48, 0xff, 0xc0, //0x00003fbf incq %rax - 0x8d, 0x56, 0xd0, //0x00003fc2 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x09, //0x00003fc5 cmpb $9, %dl - 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00003fc8 jbe LBB14_43 - 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00003fce movl $1, $-52(%rbp) - //0x00003fd5 LBB14_46 - 0x40, 0x80, 0xce, 0x20, //0x00003fd5 orb $32, %sil - 0x40, 0x80, 0xfe, 0x65, //0x00003fd9 cmpb $101, %sil - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00003fdd jne LBB14_54 - 0x48, 0x8d, 0x78, 0x01, //0x00003fe3 leaq $1(%rax), %rdi - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003fe7 movq $8, (%rbx) - 0x4c, 0x39, 0xef, //0x00003fee cmpq %r13, %rdi - 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00003ff1 jae LBB14_52 - 0x41, 0x8a, 0x34, 0x3f, //0x00003ff7 movb (%r15,%rdi), %sil - 0x40, 0x80, 0xfe, 0x2d, //0x00003ffb cmpb $45, %sil - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00003fff je LBB14_50 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004005 movl $1, %r8d - 0x40, 0x80, 0xfe, 0x2b, //0x0000400b cmpb $43, %sil - 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x0000400f jne LBB14_85 - //0x00004015 LBB14_50 - 0x48, 0x83, 0xc0, 0x02, //0x00004015 addq $2, %rax - 0x4c, 0x39, 0xe8, //0x00004019 cmpq %r13, %rax - 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000401c jae LBB14_52 - 0x31, 0xd2, //0x00004022 xorl %edx, %edx - 0x40, 0x80, 0xfe, 0x2b, //0x00004024 cmpb $43, %sil - 0x0f, 0x94, 0xc2, //0x00004028 sete %dl - 0x44, 0x8d, 0x44, 0x12, 0xff, //0x0000402b leal $-1(%rdx,%rdx), %r8d - 0x41, 0x8a, 0x34, 0x07, //0x00004030 movb (%r15,%rax), %sil - 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00004034 jmp LBB14_86 - //0x00004039 LBB14_52 - 0x4d, 0x89, 0x2e, //0x00004039 movq %r13, (%r14) - 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x0000403c movq $-1, (%rbx) - //0x00004043 LBB14_53 - 0x48, 0x83, 0xc4, 0x38, //0x00004043 addq $56, %rsp - 0x5b, //0x00004047 popq %rbx - 0x41, 0x5c, //0x00004048 popq %r12 - 0x41, 0x5d, //0x0000404a popq %r13 - 0x41, 0x5e, //0x0000404c popq %r14 - 0x41, 0x5f, //0x0000404e popq %r15 - 0x5d, //0x00004050 popq %rbp - 0xc3, //0x00004051 retq - //0x00004052 LBB14_54 - 0x89, 0xcf, //0x00004052 movl %ecx, %edi - 0x49, 0x89, 0xc5, //0x00004054 movq %rax, %r13 - 0x41, 0x83, 0xf8, 0x09, //0x00004057 cmpl $9, %r8d - 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x0000405b jne LBB14_59 - //0x00004061 LBB14_55 - 0x85, 0xff, //0x00004061 testl %edi, %edi - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004063 jne LBB14_58 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004069 movabsq $-9223372036854775808, %rax - 0x49, 0x63, 0xc9, //0x00004073 movslq %r9d, %rcx - 0x4d, 0x85, 0xe4, //0x00004076 testq %r12, %r12 - 0x0f, 0x89, 0xba, 0x01, 0x00, 0x00, //0x00004079 jns LBB14_80 - 0x4c, 0x89, 0xe2, //0x0000407f movq %r12, %rdx - 0x48, 0x21, 0xca, //0x00004082 andq %rcx, %rdx - 0x48, 0x39, 0xc2, //0x00004085 cmpq %rax, %rdx - 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00004088 je LBB14_80 - //0x0000408e LBB14_58 - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x0000408e movq $8, (%rbx) - //0x00004095 LBB14_59 - 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00004095 movq $0, $-64(%rbp) - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000409d vmovq %r12, %xmm0 - 0xc5, 0xf9, 0x62, 0x05, 0x46, 0xfc, 0xff, 0xff, //0x000040a2 vpunpckldq $-954(%rip), %xmm0, %xmm0 /* LCPI14_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0x4e, 0xfc, 0xff, 0xff, //0x000040aa vsubpd $-946(%rip), %xmm0, %xmm0 /* LCPI14_1+0(%rip) */ - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x000040b2 vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x000040b8 vaddsd %xmm0, %xmm1, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x000040bc vmovsd %xmm0, $-48(%rbp) - 0x4c, 0x89, 0xe0, //0x000040c1 movq %r12, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000040c4 shrq $52, %rax - 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x000040c8 je LBB14_71 - //0x000040ce LBB14_60 - 0x4c, 0x89, 0x5d, 0xb0, //0x000040ce movq %r11, $-80(%rbp) - 0x4c, 0x89, 0x55, 0xa8, //0x000040d2 movq %r10, $-88(%rbp) - 0x48, 0x8d, 0x4d, 0xd0, //0x000040d6 leaq $-48(%rbp), %rcx - 0x48, 0x89, 0xfe, //0x000040da movq %rdi, %rsi - 0x4c, 0x89, 0xe7, //0x000040dd movq %r12, %rdi - 0x48, 0x89, 0x75, 0xb8, //0x000040e0 movq %rsi, $-72(%rbp) - 0x44, 0x89, 0xca, //0x000040e4 movl %r9d, %edx - 0x44, 0x89, 0x4d, 0xc8, //0x000040e7 movl %r9d, $-56(%rbp) - 0xe8, 0xc0, 0xe6, 0xff, 0xff, //0x000040eb callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x000040f0 testb %al, %al - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000040f2 je LBB14_64 - 0x48, 0x8b, 0x75, 0xb8, //0x000040f8 movq $-72(%rbp), %rsi - 0x8b, 0x55, 0xc8, //0x000040fc movl $-56(%rbp), %edx - 0x83, 0x7d, 0xcc, 0x00, //0x000040ff cmpl $0, $-52(%rbp) - 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004103 je LBB14_79 - 0x49, 0xff, 0xc4, //0x00004109 incq %r12 - 0x48, 0x8d, 0x4d, 0xc0, //0x0000410c leaq $-64(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x00004110 movq %r12, %rdi - 0xe8, 0x98, 0xe6, 0xff, 0xff, //0x00004113 callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00004118 testb %al, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000411a je LBB14_64 - 0xc5, 0xfb, 0x10, 0x4d, 0xc0, //0x00004120 vmovsd $-64(%rbp), %xmm1 - 0xc5, 0xfb, 0x10, 0x45, 0xd0, //0x00004125 vmovsd $-48(%rbp), %xmm0 - 0xc5, 0xf9, 0x2e, 0xc8, //0x0000412a vucomisd %xmm0, %xmm1 - 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x0000412e jne LBB14_64 - 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004134 jnp LBB14_66 - //0x0000413a LBB14_64 - 0x49, 0x8b, 0x06, //0x0000413a movq (%r14), %rax - 0x49, 0x01, 0xc7, //0x0000413d addq %rax, %r15 - 0x4c, 0x89, 0xee, //0x00004140 movq %r13, %rsi - 0x48, 0x29, 0xc6, //0x00004143 subq %rax, %rsi - 0x4c, 0x89, 0xff, //0x00004146 movq %r15, %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x00004149 movq $-88(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x0000414d movq $-80(%rbp), %rcx - 0xe8, 0x6a, 0xec, 0xff, 0xff, //0x00004151 callq _atof_native - //0x00004156 LBB14_65 - 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004156 vmovsd %xmm0, $-48(%rbp) - //0x0000415b LBB14_66 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000415b vmovq %xmm0, %rax - //0x00004160 LBB14_67 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004160 movabsq $-9223372036854775808, %rcx - 0x48, 0xff, 0xc9, //0x0000416a decq %rcx - 0x48, 0x21, 0xc1, //0x0000416d andq %rax, %rcx - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004170 movabsq $9218868437227405312, %rdx - 0x48, 0x39, 0xd1, //0x0000417a cmpq %rdx, %rcx - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x0000417d jne LBB14_69 - 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x00004183 movq $-8, (%rbx) - //0x0000418a LBB14_69 - 0x48, 0x89, 0x43, 0x08, //0x0000418a movq %rax, $8(%rbx) - //0x0000418e LBB14_70 - 0x4d, 0x89, 0x2e, //0x0000418e movq %r13, (%r14) - 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004191 jmp LBB14_53 - //0x00004196 LBB14_71 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004196 vmovq %xmm0, %rcx - 0x44, 0x89, 0xc8, //0x0000419b movl %r9d, %eax - 0xc1, 0xe8, 0x1f, //0x0000419e shrl $31, %eax - 0x48, 0xc1, 0xe0, 0x3f, //0x000041a1 shlq $63, %rax - 0x48, 0x09, 0xc8, //0x000041a5 orq %rcx, %rax - 0x48, 0x89, 0x45, 0xd0, //0x000041a8 movq %rax, $-48(%rbp) - 0x4d, 0x85, 0xe4, //0x000041ac testq %r12, %r12 - 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x000041af je LBB14_67 - 0x85, 0xff, //0x000041b5 testl %edi, %edi - 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x000041b7 je LBB14_67 - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000041bd vmovq %rax, %xmm0 - 0x8d, 0x47, 0xff, //0x000041c2 leal $-1(%rdi), %eax - 0x83, 0xf8, 0x24, //0x000041c5 cmpl $36, %eax - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x000041c8 ja LBB14_77 - 0x83, 0xff, 0x17, //0x000041ce cmpl $23, %edi - 0x0f, 0x8c, 0x9d, 0x00, 0x00, 0x00, //0x000041d1 jl LBB14_81 - 0x48, 0x63, 0xc7, //0x000041d7 movslq %edi, %rax - 0x48, 0x8d, 0x0d, 0xcf, 0xef, 0x00, 0x00, //0x000041da leaq $61391(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x000041e1 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x000041ea vmovsd %xmm0, $-48(%rbp) - 0xb8, 0x16, 0x00, 0x00, 0x00, //0x000041ef movl $22, %eax - 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000041f4 jmp LBB14_82 - //0x000041f9 LBB14_76 - 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x000041f9 movl $1, $-52(%rbp) - 0x89, 0xcf, //0x00004200 movl %ecx, %edi - 0x41, 0x83, 0xf8, 0x09, //0x00004202 cmpl $9, %r8d - 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00004206 je LBB14_55 - 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000420c jmp LBB14_59 - //0x00004211 LBB14_77 - 0x83, 0xff, 0xea, //0x00004211 cmpl $-22, %edi - 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004214 jb LBB14_60 - 0xf7, 0xdf, //0x0000421a negl %edi - 0x48, 0x63, 0xc7, //0x0000421c movslq %edi, %rax - 0x48, 0x8d, 0x0d, 0x8a, 0xef, 0x00, 0x00, //0x0000421f leaq $61322(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00004226 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 - 0xe9, 0x26, 0xff, 0xff, 0xff, //0x0000422b jmp LBB14_65 - //0x00004230 LBB14_79 - 0x48, 0x8b, 0x45, 0xd0, //0x00004230 movq $-48(%rbp), %rax - 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004234 jmp LBB14_67 - //0x00004239 LBB14_80 - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004239 vmovq %r12, %xmm0 - 0x4c, 0x0f, 0xaf, 0xe1, //0x0000423e imulq %rcx, %r12 - 0xc5, 0xf9, 0x62, 0x05, 0xa6, 0xfa, 0xff, 0xff, //0x00004242 vpunpckldq $-1370(%rip), %xmm0, %xmm0 /* LCPI14_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0xae, 0xfa, 0xff, 0xff, //0x0000424a vsubpd $-1362(%rip), %xmm0, %xmm0 /* LCPI14_1+0(%rip) */ - 0x4c, 0x89, 0x63, 0x10, //0x00004252 movq %r12, $16(%rbx) - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004256 vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x0000425c vaddsd %xmm0, %xmm1, %xmm0 - 0x48, 0x21, 0xc8, //0x00004260 andq %rcx, %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004263 vmovq %xmm0, %rcx - 0x48, 0x09, 0xc1, //0x00004268 orq %rax, %rcx - 0x48, 0x89, 0x4b, 0x08, //0x0000426b movq %rcx, $8(%rbx) - 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x0000426f jmp LBB14_70 - //0x00004274 LBB14_81 - 0x89, 0xf8, //0x00004274 movl %edi, %eax - //0x00004276 LBB14_82 - 0xc5, 0xf9, 0x2e, 0x05, 0x92, 0xfa, 0xff, 0xff, //0x00004276 vucomisd $-1390(%rip), %xmm0 /* LCPI14_2+0(%rip) */ - 0x0f, 0x87, 0x4a, 0xfe, 0xff, 0xff, //0x0000427e ja LBB14_60 - 0xc5, 0xfb, 0x10, 0x0d, 0x8c, 0xfa, 0xff, 0xff, //0x00004284 vmovsd $-1396(%rip), %xmm1 /* LCPI14_3+0(%rip) */ - 0xc5, 0xf9, 0x2e, 0xc8, //0x0000428c vucomisd %xmm0, %xmm1 - 0x0f, 0x87, 0x38, 0xfe, 0xff, 0xff, //0x00004290 ja LBB14_60 - 0x89, 0xc0, //0x00004296 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x11, 0xef, 0x00, 0x00, //0x00004298 leaq $61201(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x0000429f vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x000042a4 jmp LBB14_65 - //0x000042a9 LBB14_85 - 0x48, 0x89, 0xf8, //0x000042a9 movq %rdi, %rax - //0x000042ac LBB14_86 - 0x8d, 0x7e, 0xd0, //0x000042ac leal $-48(%rsi), %edi - 0x40, 0x80, 0xff, 0x09, //0x000042af cmpb $9, %dil - 0x0f, 0x87, 0xee, 0xfa, 0xff, 0xff, //0x000042b3 ja LBB14_5 - 0x44, 0x89, 0x4d, 0xc8, //0x000042b9 movl %r9d, $-56(%rbp) - 0x4c, 0x39, 0xe8, //0x000042bd cmpq %r13, %rax - 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000042c0 jae LBB14_93 - 0x40, 0x80, 0xff, 0x09, //0x000042c6 cmpb $9, %dil - 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x000042ca ja LBB14_93 - 0x4d, 0x8d, 0x4d, 0xff, //0x000042d0 leaq $-1(%r13), %r9 - 0x31, 0xff, //0x000042d4 xorl %edi, %edi - //0x000042d6 LBB14_90 - 0x89, 0xfa, //0x000042d6 movl %edi, %edx - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000042d8 cmpl $10000, %edi - 0x8d, 0x3c, 0x92, //0x000042de leal (%rdx,%rdx,4), %edi - 0x40, 0x0f, 0xb6, 0xf6, //0x000042e1 movzbl %sil, %esi - 0x8d, 0x7c, 0x7e, 0xd0, //0x000042e5 leal $-48(%rsi,%rdi,2), %edi - 0x0f, 0x4d, 0xfa, //0x000042e9 cmovgel %edx, %edi - 0x49, 0x39, 0xc1, //0x000042ec cmpq %rax, %r9 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000042ef je LBB14_94 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x000042f5 movzbl $1(%r15,%rax), %esi - 0x48, 0xff, 0xc0, //0x000042fb incq %rax - 0x8d, 0x56, 0xd0, //0x000042fe leal $-48(%rsi), %edx - 0x80, 0xfa, 0x0a, //0x00004301 cmpb $10, %dl - 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004304 jb LBB14_90 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000430a jmp LBB14_95 - //0x0000430f LBB14_93 - 0x31, 0xff, //0x0000430f xorl %edi, %edi - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004311 jmp LBB14_95 - //0x00004316 LBB14_94 - 0x4c, 0x89, 0xe8, //0x00004316 movq %r13, %rax - //0x00004319 LBB14_95 - 0x41, 0x0f, 0xaf, 0xf8, //0x00004319 imull %r8d, %edi - 0x01, 0xcf, //0x0000431d addl %ecx, %edi - 0x49, 0x89, 0xc5, //0x0000431f movq %rax, %r13 - 0x44, 0x8b, 0x4d, 0xc8, //0x00004322 movl $-56(%rbp), %r9d - 0xe9, 0x6a, 0xfd, 0xff, 0xff, //0x00004326 jmp LBB14_59 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000432b .p2align 4, 0x90 - //0x00004330 _vsigned - 0x55, //0x00004330 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004331 movq %rsp, %rbp - 0x53, //0x00004334 pushq %rbx - 0x48, 0x8b, 0x1e, //0x00004335 movq (%rsi), %rbx - 0x4c, 0x8b, 0x07, //0x00004338 movq (%rdi), %r8 - 0x4c, 0x8b, 0x57, 0x08, //0x0000433b movq $8(%rdi), %r10 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000433f movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x00004346 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000434a vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x0000434f movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00004352 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xd3, //0x00004356 cmpq %r10, %rbx - 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00004359 jae LBB15_1 - 0x41, 0x8a, 0x0c, 0x18, //0x0000435f movb (%r8,%rbx), %cl - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004363 movl $1, %r9d - 0x80, 0xf9, 0x2d, //0x00004369 cmpb $45, %cl - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000436c jne LBB15_5 - 0x48, 0xff, 0xc3, //0x00004372 incq %rbx - 0x4c, 0x39, 0xd3, //0x00004375 cmpq %r10, %rbx - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004378 jae LBB15_1 - 0x41, 0x8a, 0x0c, 0x18, //0x0000437e movb (%r8,%rbx), %cl - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004382 movq $-1, %r9 - //0x00004389 LBB15_5 - 0x8d, 0x79, 0xd0, //0x00004389 leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x0000438c cmpb $10, %dil - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00004390 jb LBB15_7 - 0x48, 0x89, 0x1e, //0x00004396 movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004399 movq $-2, (%rdx) - 0x5b, //0x000043a0 popq %rbx - 0x5d, //0x000043a1 popq %rbp - 0xc3, //0x000043a2 retq - //0x000043a3 LBB15_1 - 0x4c, 0x89, 0x16, //0x000043a3 movq %r10, (%rsi) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000043a6 movq $-1, (%rdx) - 0x5b, //0x000043ad popq %rbx - 0x5d, //0x000043ae popq %rbp - 0xc3, //0x000043af retq - //0x000043b0 LBB15_7 - 0x80, 0xf9, 0x30, //0x000043b0 cmpb $48, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000043b3 jne LBB15_8 - 0x48, 0x8d, 0x7b, 0x01, //0x000043b9 leaq $1(%rbx), %rdi - 0x4c, 0x39, 0xd3, //0x000043bd cmpq %r10, %rbx - 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x000043c0 jae LBB15_17 - 0x41, 0x8a, 0x0c, 0x38, //0x000043c6 movb (%r8,%rdi), %cl - 0x80, 0xc1, 0xd2, //0x000043ca addb $-46, %cl - 0x80, 0xf9, 0x37, //0x000043cd cmpb $55, %cl - 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000043d0 ja LBB15_17 - 0x44, 0x0f, 0xb6, 0xd9, //0x000043d6 movzbl %cl, %r11d - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000043da movabsq $36028797027352577, %rcx - 0x4c, 0x0f, 0xa3, 0xd9, //0x000043e4 btq %r11, %rcx - 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000043e8 jae LBB15_17 - //0x000043ee LBB15_8 - 0x31, 0xff, //0x000043ee xorl %edi, %edi - //0x000043f0 .p2align 4, 0x90 - //0x000043f0 LBB15_9 - 0x4c, 0x39, 0xd3, //0x000043f0 cmpq %r10, %rbx - 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x000043f3 jae LBB15_22 - 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x000043f9 movsbq (%r8,%rbx), %rcx - 0x8d, 0x41, 0xd0, //0x000043fe leal $-48(%rcx), %eax - 0x3c, 0x09, //0x00004401 cmpb $9, %al - 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00004403 ja LBB15_18 - 0x48, 0x6b, 0xff, 0x0a, //0x00004409 imulq $10, %rdi, %rdi - 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000440d jo LBB15_13 - 0x48, 0xff, 0xc3, //0x00004413 incq %rbx - 0x48, 0x83, 0xc1, 0xd0, //0x00004416 addq $-48, %rcx - 0x49, 0x0f, 0xaf, 0xc9, //0x0000441a imulq %r9, %rcx - 0x48, 0x01, 0xcf, //0x0000441e addq %rcx, %rdi - 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00004421 jno LBB15_9 - //0x00004427 LBB15_13 - 0x48, 0xff, 0xcb, //0x00004427 decq %rbx - 0x48, 0x89, 0x1e, //0x0000442a movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000442d movq $-5, (%rdx) - 0x5b, //0x00004434 popq %rbx - 0x5d, //0x00004435 popq %rbp - 0xc3, //0x00004436 retq - //0x00004437 LBB15_17 - 0x48, 0x89, 0x3e, //0x00004437 movq %rdi, (%rsi) - 0x5b, //0x0000443a popq %rbx - 0x5d, //0x0000443b popq %rbp - 0xc3, //0x0000443c retq - //0x0000443d LBB15_18 - 0x80, 0xf9, 0x65, //0x0000443d cmpb $101, %cl - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00004440 je LBB15_21 - 0x80, 0xf9, 0x45, //0x00004446 cmpb $69, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00004449 je LBB15_21 - 0x80, 0xf9, 0x2e, //0x0000444f cmpb $46, %cl - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00004452 jne LBB15_22 - //0x00004458 LBB15_21 - 0x48, 0x89, 0x1e, //0x00004458 movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000445b movq $-6, (%rdx) - 0x5b, //0x00004462 popq %rbx - 0x5d, //0x00004463 popq %rbp - 0xc3, //0x00004464 retq - //0x00004465 LBB15_22 - 0x48, 0x89, 0x1e, //0x00004465 movq %rbx, (%rsi) - 0x48, 0x89, 0x7a, 0x10, //0x00004468 movq %rdi, $16(%rdx) - 0x5b, //0x0000446c popq %rbx - 0x5d, //0x0000446d popq %rbp - 0xc3, //0x0000446e retq - 0x90, //0x0000446f .p2align 4, 0x90 - //0x00004470 _vunsigned - 0x55, //0x00004470 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004471 movq %rsp, %rbp - 0x49, 0x89, 0xd0, //0x00004474 movq %rdx, %r8 - 0x48, 0x8b, 0x0e, //0x00004477 movq (%rsi), %rcx - 0x4c, 0x8b, 0x0f, //0x0000447a movq (%rdi), %r9 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000447d movq $8(%rdi), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004481 movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x00004488 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000448c vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x06, //0x00004491 movq (%rsi), %rax - 0x48, 0x89, 0x42, 0x18, //0x00004494 movq %rax, $24(%rdx) - 0x4c, 0x39, 0xd9, //0x00004498 cmpq %r11, %rcx - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x0000449b jae LBB16_1 - 0x41, 0x8a, 0x04, 0x09, //0x000044a1 movb (%r9,%rcx), %al - 0x3c, 0x2d, //0x000044a5 cmpb $45, %al - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000044a7 jne LBB16_4 - //0x000044ad LBB16_3 - 0x48, 0x89, 0x0e, //0x000044ad movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x000044b0 movq $-6, (%r8) - 0x5d, //0x000044b7 popq %rbp - 0xc3, //0x000044b8 retq - //0x000044b9 LBB16_1 - 0x4c, 0x89, 0x1e, //0x000044b9 movq %r11, (%rsi) - 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000044bc movq $-1, (%r8) - 0x5d, //0x000044c3 popq %rbp - 0xc3, //0x000044c4 retq - //0x000044c5 LBB16_4 - 0x8d, 0x50, 0xd0, //0x000044c5 leal $-48(%rax), %edx - 0x80, 0xfa, 0x0a, //0x000044c8 cmpb $10, %dl - 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x000044cb jb LBB16_6 - 0x48, 0x89, 0x0e, //0x000044d1 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x000044d4 movq $-2, (%r8) - 0x5d, //0x000044db popq %rbp - 0xc3, //0x000044dc retq - //0x000044dd LBB16_6 - 0x3c, 0x30, //0x000044dd cmpb $48, %al - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000044df jne LBB16_7 - 0x41, 0x8a, 0x44, 0x09, 0x01, //0x000044e5 movb $1(%r9,%rcx), %al - 0x04, 0xd2, //0x000044ea addb $-46, %al - 0x3c, 0x37, //0x000044ec cmpb $55, %al - 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x000044ee ja LBB16_16 - 0x0f, 0xb6, 0xc0, //0x000044f4 movzbl %al, %eax - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000044f7 movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xc2, //0x00004501 btq %rax, %rdx - 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00004505 jae LBB16_16 - //0x0000450b LBB16_7 - 0x31, 0xc0, //0x0000450b xorl %eax, %eax - 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000450d movl $10, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004513 .p2align 4, 0x90 - //0x00004520 LBB16_8 - 0x4c, 0x39, 0xd9, //0x00004520 cmpq %r11, %rcx - 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00004523 jae LBB16_20 - 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00004529 movsbl (%r9,%rcx), %edi - 0x8d, 0x57, 0xd0, //0x0000452e leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00004531 cmpb $9, %dl - 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x00004534 ja LBB16_17 - 0x49, 0xf7, 0xe2, //0x0000453a mulq %r10 - 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x0000453d jo LBB16_13 - 0x48, 0xff, 0xc1, //0x00004543 incq %rcx - 0x83, 0xc7, 0xd0, //0x00004546 addl $-48, %edi - 0x48, 0x63, 0xd7, //0x00004549 movslq %edi, %rdx - 0x48, 0x89, 0xd7, //0x0000454c movq %rdx, %rdi - 0x48, 0xc1, 0xff, 0x3f, //0x0000454f sarq $63, %rdi - 0x48, 0x01, 0xd0, //0x00004553 addq %rdx, %rax - 0x48, 0x83, 0xd7, 0x00, //0x00004556 adcq $0, %rdi - 0x89, 0xfa, //0x0000455a movl %edi, %edx - 0x83, 0xe2, 0x01, //0x0000455c andl $1, %edx - 0x48, 0xf7, 0xda, //0x0000455f negq %rdx - 0x48, 0x31, 0xd7, //0x00004562 xorq %rdx, %rdi - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00004565 jne LBB16_13 - 0x48, 0x85, 0xd2, //0x0000456b testq %rdx, %rdx - 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x0000456e jns LBB16_8 - //0x00004574 LBB16_13 - 0x48, 0xff, 0xc9, //0x00004574 decq %rcx - 0x48, 0x89, 0x0e, //0x00004577 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x0000457a movq $-5, (%r8) - 0x5d, //0x00004581 popq %rbp - 0xc3, //0x00004582 retq - //0x00004583 LBB16_17 - 0x40, 0x80, 0xff, 0x65, //0x00004583 cmpb $101, %dil - 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x00004587 je LBB16_3 - 0x40, 0x80, 0xff, 0x45, //0x0000458d cmpb $69, %dil - 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x00004591 je LBB16_3 - 0x40, 0x80, 0xff, 0x2e, //0x00004597 cmpb $46, %dil - 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x0000459b je LBB16_3 - //0x000045a1 LBB16_20 - 0x48, 0x89, 0x0e, //0x000045a1 movq %rcx, (%rsi) - 0x49, 0x89, 0x40, 0x10, //0x000045a4 movq %rax, $16(%r8) - 0x5d, //0x000045a8 popq %rbp - 0xc3, //0x000045a9 retq - //0x000045aa LBB16_16 - 0x48, 0xff, 0xc1, //0x000045aa incq %rcx - 0x48, 0x89, 0x0e, //0x000045ad movq %rcx, (%rsi) - 0x5d, //0x000045b0 popq %rbp - 0xc3, //0x000045b1 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045b2 .p2align 4, 0x00 - //0x000045c0 LCPI17_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045c0 .quad 1 - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000045c8 .quad 5 - //0x000045d0 .p2align 4, 0x90 - //0x000045d0 _skip_array - 0x55, //0x000045d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000045d1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000045d4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000045d7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000045da movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000045dd vmovaps $-37(%rip), %xmm0 /* LCPI17_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x000045e5 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x000045e9 movq %rax, %rdi - 0x5d, //0x000045ec popq %rbp - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000045ed jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000045f2 .p2align 4, 0x90 - //0x00004600 _fsm_exec - 0x55, //0x00004600 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004601 movq %rsp, %rbp - 0x41, 0x57, //0x00004604 pushq %r15 - 0x41, 0x56, //0x00004606 pushq %r14 - 0x41, 0x55, //0x00004608 pushq %r13 - 0x41, 0x54, //0x0000460a pushq %r12 - 0x53, //0x0000460c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000460d subq $56, %rsp - 0x48, 0x89, 0x4d, 0xa8, //0x00004611 movq %rcx, $-88(%rbp) - 0x4c, 0x8b, 0x0f, //0x00004615 movq (%rdi), %r9 - 0x4d, 0x85, 0xc9, //0x00004618 testq %r9, %r9 - 0x0f, 0x84, 0x16, 0x05, 0x00, 0x00, //0x0000461b je LBB18_2 - 0x49, 0x89, 0xd0, //0x00004621 movq %rdx, %r8 - 0x49, 0x89, 0xfa, //0x00004624 movq %rdi, %r10 - 0x48, 0x8d, 0x46, 0x08, //0x00004627 leaq $8(%rsi), %rax - 0x48, 0x89, 0x45, 0xc8, //0x0000462b movq %rax, $-56(%rbp) - 0x4c, 0x8b, 0x2a, //0x0000462f movq (%rdx), %r13 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004632 movq $-1, %r14 - 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004639 movabsq $4294977024, %r12 - 0x4c, 0x8d, 0x1d, 0x52, 0x06, 0x00, 0x00, //0x00004643 leaq $1618(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x48, 0x89, 0x55, 0xd0, //0x0000464a movq %rdx, $-48(%rbp) - 0x48, 0x89, 0x75, 0xb0, //0x0000464e movq %rsi, $-80(%rbp) - 0x48, 0x89, 0x7d, 0xb8, //0x00004652 movq %rdi, $-72(%rbp) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00004656 jmp LBB18_8 - //0x0000465b LBB18_3 - 0x49, 0x8b, 0x02, //0x0000465b movq (%r10), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000465e cmpq $4095, %rax - 0x0f, 0x8f, 0xe3, 0x04, 0x00, 0x00, //0x00004664 jg LBB18_82 - 0x48, 0x8d, 0x48, 0x01, //0x0000466a leaq $1(%rax), %rcx - 0x49, 0x89, 0x0a, //0x0000466e movq %rcx, (%r10) - 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004671 movq $6, $8(%r10,%rax,8) - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000467a .p2align 4, 0x90 - //0x00004680 LBB18_5 - 0x4c, 0x89, 0xe9, //0x00004680 movq %r13, %rcx - //0x00004683 LBB18_6 - 0x49, 0x8b, 0x12, //0x00004683 movq (%r10), %rdx - 0x49, 0x89, 0xcd, //0x00004686 movq %rcx, %r13 - //0x00004689 LBB18_7 - 0x49, 0x89, 0xd1, //0x00004689 movq %rdx, %r9 - 0x4c, 0x89, 0xf0, //0x0000468c movq %r14, %rax - 0x48, 0x85, 0xd2, //0x0000468f testq %rdx, %rdx - 0x0f, 0x84, 0xa6, 0x04, 0x00, 0x00, //0x00004692 je LBB18_88 - //0x00004698 LBB18_8 - 0x48, 0x8b, 0x3e, //0x00004698 movq (%rsi), %rdi - 0x48, 0x8b, 0x46, 0x08, //0x0000469b movq $8(%rsi), %rax - 0x4c, 0x89, 0xea, //0x0000469f movq %r13, %rdx - 0x48, 0x29, 0xc2, //0x000046a2 subq %rax, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000046a5 jae LBB18_13 - 0x42, 0x8a, 0x1c, 0x2f, //0x000046ab movb (%rdi,%r13), %bl - 0x80, 0xfb, 0x0d, //0x000046af cmpb $13, %bl - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000046b2 je LBB18_13 - 0x80, 0xfb, 0x20, //0x000046b8 cmpb $32, %bl - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000046bb je LBB18_13 - 0x80, 0xc3, 0xf7, //0x000046c1 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000046c4 cmpb $1, %bl - 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000046c7 jbe LBB18_13 - 0x4d, 0x89, 0xef, //0x000046cd movq %r13, %r15 - 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x000046d0 jmp LBB18_34 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046d5 .p2align 4, 0x90 - //0x000046e0 LBB18_13 - 0x4d, 0x8d, 0x7d, 0x01, //0x000046e0 leaq $1(%r13), %r15 - 0x49, 0x39, 0xc7, //0x000046e4 cmpq %rax, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000046e7 jae LBB18_17 - 0x42, 0x8a, 0x1c, 0x3f, //0x000046ed movb (%rdi,%r15), %bl - 0x80, 0xfb, 0x0d, //0x000046f1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000046f4 je LBB18_17 - 0x80, 0xfb, 0x20, //0x000046fa cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000046fd je LBB18_17 - 0x80, 0xc3, 0xf7, //0x00004703 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004706 cmpb $1, %bl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00004709 ja LBB18_34 - 0x90, //0x0000470f .p2align 4, 0x90 - //0x00004710 LBB18_17 - 0x4d, 0x8d, 0x7d, 0x02, //0x00004710 leaq $2(%r13), %r15 - 0x49, 0x39, 0xc7, //0x00004714 cmpq %rax, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004717 jae LBB18_21 - 0x42, 0x8a, 0x1c, 0x3f, //0x0000471d movb (%rdi,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00004721 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004724 je LBB18_21 - 0x80, 0xfb, 0x20, //0x0000472a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000472d je LBB18_21 - 0x80, 0xc3, 0xf7, //0x00004733 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004736 cmpb $1, %bl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00004739 ja LBB18_34 - 0x90, //0x0000473f .p2align 4, 0x90 - //0x00004740 LBB18_21 - 0x4d, 0x8d, 0x7d, 0x03, //0x00004740 leaq $3(%r13), %r15 - 0x49, 0x39, 0xc7, //0x00004744 cmpq %rax, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004747 jae LBB18_25 - 0x42, 0x8a, 0x1c, 0x3f, //0x0000474d movb (%rdi,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00004751 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004754 je LBB18_25 - 0x80, 0xfb, 0x20, //0x0000475a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000475d je LBB18_25 - 0x80, 0xc3, 0xf7, //0x00004763 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004766 cmpb $1, %bl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00004769 ja LBB18_34 - 0x90, //0x0000476f .p2align 4, 0x90 - //0x00004770 LBB18_25 - 0x49, 0x8d, 0x4d, 0x04, //0x00004770 leaq $4(%r13), %rcx - 0x48, 0x39, 0xc8, //0x00004774 cmpq %rcx, %rax - 0x0f, 0x86, 0xb7, 0x03, 0x00, 0x00, //0x00004777 jbe LBB18_79 - 0x48, 0x39, 0xc8, //0x0000477d cmpq %rcx, %rax - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00004780 je LBB18_31 - 0x48, 0x8d, 0x0c, 0x07, //0x00004786 leaq (%rdi,%rax), %rcx - 0x48, 0x83, 0xc2, 0x04, //0x0000478a addq $4, %rdx - 0x4e, 0x8d, 0x7c, 0x2f, 0x05, //0x0000478e leaq $5(%rdi,%r13), %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004793 .p2align 4, 0x90 - //0x000047a0 LBB18_28 - 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x000047a0 movsbl $-1(%r15), %ebx - 0x83, 0xfb, 0x20, //0x000047a5 cmpl $32, %ebx - 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000047a8 ja LBB18_33 - 0x49, 0x0f, 0xa3, 0xdc, //0x000047ae btq %rbx, %r12 - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000047b2 jae LBB18_33 - 0x49, 0xff, 0xc7, //0x000047b8 incq %r15 - 0x48, 0xff, 0xc2, //0x000047bb incq %rdx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000047be jne LBB18_28 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000047c4 jmp LBB18_32 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047c9 .p2align 4, 0x90 - //0x000047d0 LBB18_31 - 0x48, 0x01, 0xf9, //0x000047d0 addq %rdi, %rcx - //0x000047d3 LBB18_32 - 0x48, 0x29, 0xf9, //0x000047d3 subq %rdi, %rcx - 0x49, 0x89, 0xcf, //0x000047d6 movq %rcx, %r15 - 0x49, 0x39, 0xc7, //0x000047d9 cmpq %rax, %r15 - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000047dc jb LBB18_34 - 0xe9, 0x50, 0x03, 0x00, 0x00, //0x000047e2 jmp LBB18_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047e7 .p2align 4, 0x90 - //0x000047f0 LBB18_33 - 0x48, 0x89, 0xfa, //0x000047f0 movq %rdi, %rdx - 0x48, 0xf7, 0xd2, //0x000047f3 notq %rdx - 0x49, 0x01, 0xd7, //0x000047f6 addq %rdx, %r15 - 0x49, 0x39, 0xc7, //0x000047f9 cmpq %rax, %r15 - 0x0f, 0x83, 0x35, 0x03, 0x00, 0x00, //0x000047fc jae LBB18_2 - //0x00004802 LBB18_34 - 0x4d, 0x8d, 0x6f, 0x01, //0x00004802 leaq $1(%r15), %r13 - 0x4d, 0x89, 0x28, //0x00004806 movq %r13, (%r8) - 0x42, 0x0f, 0xbe, 0x0c, 0x3f, //0x00004809 movsbl (%rdi,%r15), %ecx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000480e movq $-1, %rax - 0x85, 0xc9, //0x00004815 testl %ecx, %ecx - 0x0f, 0x84, 0x21, 0x03, 0x00, 0x00, //0x00004817 je LBB18_88 - 0x49, 0x8d, 0x51, 0xff, //0x0000481d leaq $-1(%r9), %rdx - 0x43, 0x8b, 0x1c, 0xca, //0x00004821 movl (%r10,%r9,8), %ebx - 0x49, 0x83, 0xfe, 0xff, //0x00004825 cmpq $-1, %r14 - 0x4d, 0x0f, 0x44, 0xf7, //0x00004829 cmoveq %r15, %r14 - 0xff, 0xcb, //0x0000482d decl %ebx - 0x83, 0xfb, 0x05, //0x0000482f cmpl $5, %ebx - 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00004832 ja LBB18_40 - 0x49, 0x63, 0x1c, 0x9b, //0x00004838 movslq (%r11,%rbx,4), %rbx - 0x4c, 0x01, 0xdb, //0x0000483c addq %r11, %rbx - 0xff, 0xe3, //0x0000483f jmpq *%rbx - //0x00004841 LBB18_37 - 0x83, 0xf9, 0x2c, //0x00004841 cmpl $44, %ecx - 0x0f, 0x84, 0x5d, 0x01, 0x00, 0x00, //0x00004844 je LBB18_58 - 0x83, 0xf9, 0x5d, //0x0000484a cmpl $93, %ecx - 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x0000484d je LBB18_39 - 0xe9, 0x32, 0x03, 0x00, 0x00, //0x00004853 jmp LBB18_87 - //0x00004858 LBB18_40 - 0x49, 0x89, 0x12, //0x00004858 movq %rdx, (%r10) - 0x83, 0xf9, 0x7b, //0x0000485b cmpl $123, %ecx - 0x0f, 0x86, 0xd1, 0x00, 0x00, 0x00, //0x0000485e jbe LBB18_56 - 0xe9, 0x21, 0x03, 0x00, 0x00, //0x00004864 jmp LBB18_87 - //0x00004869 LBB18_41 - 0x83, 0xf9, 0x2c, //0x00004869 cmpl $44, %ecx - 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x0000486c je LBB18_60 - 0x83, 0xf9, 0x7d, //0x00004872 cmpl $125, %ecx - 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x00004875 je LBB18_39 - 0xe9, 0x0a, 0x03, 0x00, 0x00, //0x0000487b jmp LBB18_87 - //0x00004880 LBB18_44 - 0x80, 0xf9, 0x22, //0x00004880 cmpb $34, %cl - 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x00004883 jne LBB18_87 - 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x00004889 movq $4, (%r10,%r9,8) - //0x00004891 LBB18_46 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004891 movq $-1, $-64(%rbp) - 0x48, 0x89, 0xf7, //0x00004899 movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x0000489c movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x0000489f leaq $-64(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa8, //0x000048a3 movq $-88(%rbp), %rcx - 0xe8, 0x44, 0xef, 0xff, 0xff, //0x000048a7 callq _advance_string - 0x48, 0x89, 0xc1, //0x000048ac movq %rax, %rcx - 0x48, 0x85, 0xc0, //0x000048af testq %rax, %rax - 0x0f, 0x88, 0xa1, 0x02, 0x00, 0x00, //0x000048b2 js LBB18_81 - //0x000048b8 LBB18_47 - 0x4c, 0x8b, 0x45, 0xd0, //0x000048b8 movq $-48(%rbp), %r8 - 0x49, 0x89, 0x08, //0x000048bc movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x000048bf movq %r15, %rax - 0x4d, 0x85, 0xed, //0x000048c2 testq %r13, %r13 - 0x48, 0x8b, 0x75, 0xb0, //0x000048c5 movq $-80(%rbp), %rsi - 0x4c, 0x8b, 0x55, 0xb8, //0x000048c9 movq $-72(%rbp), %r10 - 0x4c, 0x8d, 0x1d, 0xc8, 0x03, 0x00, 0x00, //0x000048cd leaq $968(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x0f, 0x8f, 0xa9, 0xfd, 0xff, 0xff, //0x000048d4 jg LBB18_6 - 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x000048da jmp LBB18_88 - //0x000048df LBB18_48 - 0x80, 0xf9, 0x3a, //0x000048df cmpb $58, %cl - 0x0f, 0x85, 0xa2, 0x02, 0x00, 0x00, //0x000048e2 jne LBB18_87 - 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x000048e8 movq $0, (%r10,%r9,8) - 0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x000048f0 jmp LBB18_5 - //0x000048f5 LBB18_50 - 0x80, 0xf9, 0x5d, //0x000048f5 cmpb $93, %cl - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000048f8 jne LBB18_55 - //0x000048fe LBB18_39 - 0x49, 0x89, 0x12, //0x000048fe movq %rdx, (%r10) - 0xe9, 0x83, 0xfd, 0xff, 0xff, //0x00004901 jmp LBB18_7 - //0x00004906 LBB18_52 - 0x83, 0xf9, 0x22, //0x00004906 cmpl $34, %ecx - 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00004909 je LBB18_62 - 0x83, 0xf9, 0x7d, //0x0000490f cmpl $125, %ecx - 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x00004912 jne LBB18_87 - 0x49, 0x89, 0x12, //0x00004918 movq %rdx, (%r10) - 0x4c, 0x8b, 0x45, 0xd0, //0x0000491b movq $-48(%rbp), %r8 - 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x0000491f jmp LBB18_7 - //0x00004924 LBB18_55 - 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00004924 movq $1, (%r10,%r9,8) - 0x83, 0xf9, 0x7b, //0x0000492c cmpl $123, %ecx - 0x0f, 0x87, 0x55, 0x02, 0x00, 0x00, //0x0000492f ja LBB18_87 - //0x00004935 LBB18_56 - 0x4a, 0x8d, 0x1c, 0x3f, //0x00004935 leaq (%rdi,%r15), %rbx - 0x89, 0xca, //0x00004939 movl %ecx, %edx - 0x48, 0x8d, 0x0d, 0x72, 0x03, 0x00, 0x00, //0x0000493b leaq $882(%rip), %rcx /* LJTI18_1+0(%rip) */ - 0x48, 0x63, 0x14, 0x91, //0x00004942 movslq (%rcx,%rdx,4), %rdx - 0x48, 0x01, 0xca, //0x00004946 addq %rcx, %rdx - 0xff, 0xe2, //0x00004949 jmpq *%rdx - //0x0000494b LBB18_57 - 0x48, 0x8b, 0x45, 0xc8, //0x0000494b movq $-56(%rbp), %rax - 0x48, 0x8b, 0x30, //0x0000494f movq (%rax), %rsi - 0x4c, 0x29, 0xfe, //0x00004952 subq %r15, %rsi - 0x48, 0x89, 0xdf, //0x00004955 movq %rbx, %rdi - 0xe8, 0xd3, 0x06, 0x00, 0x00, //0x00004958 callq _do_skip_number - 0x4c, 0x8d, 0x1d, 0x38, 0x03, 0x00, 0x00, //0x0000495d leaq $824(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x4c, 0x8b, 0x55, 0xb8, //0x00004964 movq $-72(%rbp), %r10 - 0x48, 0x8b, 0x75, 0xb0, //0x00004968 movq $-80(%rbp), %rsi - 0x4c, 0x8b, 0x45, 0xd0, //0x0000496c movq $-48(%rbp), %r8 - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004970 movq $-2, %rdx - 0x48, 0x29, 0xc2, //0x00004977 subq %rax, %rdx - 0x48, 0x85, 0xc0, //0x0000497a testq %rax, %rax - 0x48, 0x8d, 0x48, 0xff, //0x0000497d leaq $-1(%rax), %rcx - 0x48, 0x0f, 0x48, 0xca, //0x00004981 cmovsq %rdx, %rcx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004985 movq $-2, %rax - 0x4c, 0x0f, 0x48, 0xf8, //0x0000498c cmovsq %rax, %r15 - 0x4c, 0x01, 0xe9, //0x00004990 addq %r13, %rcx - 0x49, 0x89, 0x08, //0x00004993 movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x00004996 movq %r15, %rax - 0x4d, 0x85, 0xff, //0x00004999 testq %r15, %r15 - 0x0f, 0x89, 0xe1, 0xfc, 0xff, 0xff, //0x0000499c jns LBB18_6 - 0xe9, 0x97, 0x01, 0x00, 0x00, //0x000049a2 jmp LBB18_88 - //0x000049a7 LBB18_58 - 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000049a7 cmpq $4095, %r9 - 0x0f, 0x8f, 0x99, 0x01, 0x00, 0x00, //0x000049ae jg LBB18_82 - 0x49, 0x8d, 0x41, 0x01, //0x000049b4 leaq $1(%r9), %rax - 0x49, 0x89, 0x02, //0x000049b8 movq %rax, (%r10) - 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000049bb movq $0, $8(%r10,%r9,8) - 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x000049c4 jmp LBB18_5 - //0x000049c9 LBB18_60 - 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000049c9 cmpq $4095, %r9 - 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x000049d0 jg LBB18_82 - 0x49, 0x8d, 0x41, 0x01, //0x000049d6 leaq $1(%r9), %rax - 0x49, 0x89, 0x02, //0x000049da movq %rax, (%r10) - 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000049dd movq $3, $8(%r10,%r9,8) - 0xe9, 0x95, 0xfc, 0xff, 0xff, //0x000049e6 jmp LBB18_5 - //0x000049eb LBB18_62 - 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x000049eb movq $2, (%r10,%r9,8) - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000049f3 movq $-1, $-64(%rbp) - 0x48, 0x89, 0xf7, //0x000049fb movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x000049fe movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x00004a01 leaq $-64(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa8, //0x00004a05 movq $-88(%rbp), %rcx - 0xe8, 0xe2, 0xed, 0xff, 0xff, //0x00004a09 callq _advance_string - 0x48, 0x89, 0xc1, //0x00004a0e movq %rax, %rcx - 0x48, 0x85, 0xc0, //0x00004a11 testq %rax, %rax - 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x00004a14 js LBB18_81 - 0x4c, 0x8b, 0x45, 0xd0, //0x00004a1a movq $-48(%rbp), %r8 - 0x49, 0x89, 0x08, //0x00004a1e movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x00004a21 movq %r15, %rax - 0x4d, 0x85, 0xed, //0x00004a24 testq %r13, %r13 - 0x48, 0x8b, 0x75, 0xb0, //0x00004a27 movq $-80(%rbp), %rsi - 0x4c, 0x8b, 0x55, 0xb8, //0x00004a2b movq $-72(%rbp), %r10 - 0x4c, 0x8d, 0x1d, 0x66, 0x02, 0x00, 0x00, //0x00004a2f leaq $614(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x0f, 0x8e, 0x02, 0x01, 0x00, 0x00, //0x00004a36 jle LBB18_88 - 0x49, 0x8b, 0x02, //0x00004a3c movq (%r10), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a3f cmpq $4095, %rax - 0x0f, 0x8f, 0x02, 0x01, 0x00, 0x00, //0x00004a45 jg LBB18_82 - 0x48, 0x8d, 0x50, 0x01, //0x00004a4b leaq $1(%rax), %rdx - 0x49, 0x89, 0x12, //0x00004a4f movq %rdx, (%r10) - 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004a52 movq $4, $8(%r10,%rax,8) - 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00004a5b jmp LBB18_6 - //0x00004a60 LBB18_66 - 0x4c, 0x01, 0xef, //0x00004a60 addq %r13, %rdi - 0x48, 0x8b, 0x45, 0xc8, //0x00004a63 movq $-56(%rbp), %rax - 0x48, 0x8b, 0x30, //0x00004a67 movq (%rax), %rsi - 0x4c, 0x29, 0xee, //0x00004a6a subq %r13, %rsi - 0xe8, 0xbe, 0x05, 0x00, 0x00, //0x00004a6d callq _do_skip_number - 0x48, 0x89, 0xc1, //0x00004a72 movq %rax, %rcx - 0x48, 0x85, 0xc0, //0x00004a75 testq %rax, %rax - 0x0f, 0x88, 0x02, 0x01, 0x00, 0x00, //0x00004a78 js LBB18_86 - 0x4c, 0x01, 0xe9, //0x00004a7e addq %r13, %rcx - 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x00004a81 jmp LBB18_47 - //0x00004a86 LBB18_68 - 0x49, 0x8b, 0x02, //0x00004a86 movq (%r10), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a89 cmpq $4095, %rax - 0x0f, 0x8f, 0xb8, 0x00, 0x00, 0x00, //0x00004a8f jg LBB18_82 - 0x48, 0x8d, 0x48, 0x01, //0x00004a95 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0a, //0x00004a99 movq %rcx, (%r10) - 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004a9c movq $5, $8(%r10,%rax,8) - 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00004aa5 jmp LBB18_5 - //0x00004aaa LBB18_70 - 0x48, 0x8b, 0x4d, 0xc8, //0x00004aaa movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004aae movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfc, //0x00004ab1 leaq $-4(%rcx), %rdx - 0x49, 0x39, 0xd7, //0x00004ab5 cmpq %rdx, %r15 - 0x0f, 0x83, 0xd8, 0x00, 0x00, 0x00, //0x00004ab8 jae LBB18_90 - 0x42, 0x8b, 0x0c, 0x2f, //0x00004abe movl (%rdi,%r13), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004ac2 cmpl $1702063201, %ecx - 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00004ac8 jne LBB18_97 - 0x49, 0x8d, 0x4f, 0x05, //0x00004ace leaq $5(%r15), %rcx - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00004ad2 jmp LBB18_78 - //0x00004ad7 LBB18_73 - 0x48, 0x8b, 0x55, 0xc8, //0x00004ad7 movq $-56(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00004adb movq (%rdx), %rdx - 0x48, 0x8d, 0x4a, 0xfd, //0x00004ade leaq $-3(%rdx), %rcx - 0x49, 0x39, 0xcf, //0x00004ae2 cmpq %rcx, %r15 - 0x0f, 0x83, 0x8d, 0x00, 0x00, 0x00, //0x00004ae5 jae LBB18_92 - 0x81, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, //0x00004aeb cmpl $1819047278, (%rbx) - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004af1 je LBB18_77 - 0xe9, 0x48, 0x01, 0x00, 0x00, //0x00004af7 jmp LBB18_102 - //0x00004afc LBB18_75 - 0x48, 0x8b, 0x55, 0xc8, //0x00004afc movq $-56(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00004b00 movq (%rdx), %rdx - 0x48, 0x8d, 0x4a, 0xfd, //0x00004b03 leaq $-3(%rdx), %rcx - 0x49, 0x39, 0xcf, //0x00004b07 cmpq %rcx, %r15 - 0x0f, 0x83, 0x68, 0x00, 0x00, 0x00, //0x00004b0a jae LBB18_92 - 0x81, 0x3b, 0x74, 0x72, 0x75, 0x65, //0x00004b10 cmpl $1702195828, (%rbx) - 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00004b16 jne LBB18_93 - //0x00004b1c LBB18_77 - 0x49, 0x8d, 0x4f, 0x04, //0x00004b1c leaq $4(%r15), %rcx - //0x00004b20 LBB18_78 - 0x49, 0x89, 0x08, //0x00004b20 movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x00004b23 movq %r15, %rax - 0x4d, 0x85, 0xed, //0x00004b26 testq %r13, %r13 - 0x0f, 0x8f, 0x54, 0xfb, 0xff, 0xff, //0x00004b29 jg LBB18_6 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004b2f jmp LBB18_88 - //0x00004b34 LBB18_79 - 0x49, 0x89, 0x08, //0x00004b34 movq %rcx, (%r8) - //0x00004b37 LBB18_2 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004b37 movq $-1, %rax - //0x00004b3e LBB18_88 - 0x48, 0x83, 0xc4, 0x38, //0x00004b3e addq $56, %rsp - 0x5b, //0x00004b42 popq %rbx - 0x41, 0x5c, //0x00004b43 popq %r12 - 0x41, 0x5d, //0x00004b45 popq %r13 - 0x41, 0x5e, //0x00004b47 popq %r14 - 0x41, 0x5f, //0x00004b49 popq %r15 - 0x5d, //0x00004b4b popq %rbp - 0xc3, //0x00004b4c retq - //0x00004b4d LBB18_82 - 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00004b4d movq $-7, %rax - 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00004b54 jmp LBB18_88 - //0x00004b59 LBB18_81 - 0x48, 0x83, 0xf9, 0xff, //0x00004b59 cmpq $-1, %rcx - 0x48, 0x8d, 0x45, 0xc0, //0x00004b5d leaq $-64(%rbp), %rax - 0x48, 0x0f, 0x44, 0x45, 0xc8, //0x00004b61 cmoveq $-56(%rbp), %rax - 0x48, 0x8b, 0x00, //0x00004b66 movq (%rax), %rax - 0x48, 0x8b, 0x55, 0xd0, //0x00004b69 movq $-48(%rbp), %rdx - 0x48, 0x89, 0x02, //0x00004b6d movq %rax, (%rdx) - 0x48, 0x89, 0xc8, //0x00004b70 movq %rcx, %rax - 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00004b73 jmp LBB18_88 - //0x00004b78 LBB18_92 - 0x49, 0x89, 0x10, //0x00004b78 movq %rdx, (%r8) - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004b7b jmp LBB18_88 - //0x00004b80 LBB18_86 - 0x49, 0x29, 0xcf, //0x00004b80 subq %rcx, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x00004b83 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00004b87 movq %r15, (%rax) - //0x00004b8a LBB18_87 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004b8a movq $-2, %rax - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004b91 jmp LBB18_88 - //0x00004b96 LBB18_90 - 0x49, 0x89, 0x08, //0x00004b96 movq %rcx, (%r8) - 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x00004b99 jmp LBB18_88 - //0x00004b9e LBB18_93 - 0x4d, 0x89, 0x38, //0x00004b9e movq %r15, (%r8) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ba1 movq $-2, %rax - 0x80, 0x3b, 0x74, //0x00004ba8 cmpb $116, (%rbx) - 0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00004bab jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x01, //0x00004bb1 leaq $1(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004bb5 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00004bb8 cmpb $114, $1(%rdi,%r15) - 0x0f, 0x85, 0x7a, 0xff, 0xff, 0xff, //0x00004bbe jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x02, //0x00004bc4 leaq $2(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004bc8 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00004bcb cmpb $117, $2(%rdi,%r15) - 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00004bd1 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x03, //0x00004bd7 leaq $3(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004bdb movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00004bde cmpb $101, $3(%rdi,%r15) - 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00004be4 je LBB18_106 - 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00004bea jmp LBB18_88 - //0x00004bef LBB18_97 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004bef movq $-2, %rax - 0x80, 0xf9, 0x61, //0x00004bf6 cmpb $97, %cl - 0x0f, 0x85, 0x3f, 0xff, 0xff, 0xff, //0x00004bf9 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x02, //0x00004bff leaq $2(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c03 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c06 cmpb $108, $2(%rdi,%r15) - 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00004c0c jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x03, //0x00004c12 leaq $3(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c16 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00004c19 cmpb $115, $3(%rdi,%r15) - 0x0f, 0x85, 0x19, 0xff, 0xff, 0xff, //0x00004c1f jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x04, //0x00004c25 leaq $4(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c29 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00004c2c cmpb $101, $4(%rdi,%r15) - 0x0f, 0x85, 0x06, 0xff, 0xff, 0xff, //0x00004c32 jne LBB18_88 - 0x49, 0x83, 0xc7, 0x05, //0x00004c38 addq $5, %r15 - 0x4d, 0x89, 0x38, //0x00004c3c movq %r15, (%r8) - 0xe9, 0xfa, 0xfe, 0xff, 0xff, //0x00004c3f jmp LBB18_88 - //0x00004c44 LBB18_102 - 0x4d, 0x89, 0x38, //0x00004c44 movq %r15, (%r8) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c47 movq $-2, %rax - 0x80, 0x3b, 0x6e, //0x00004c4e cmpb $110, (%rbx) - 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x00004c51 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x01, //0x00004c57 leaq $1(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c5b movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00004c5e cmpb $117, $1(%rdi,%r15) - 0x0f, 0x85, 0xd4, 0xfe, 0xff, 0xff, //0x00004c64 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x02, //0x00004c6a leaq $2(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c6e movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c71 cmpb $108, $2(%rdi,%r15) - 0x0f, 0x85, 0xc1, 0xfe, 0xff, 0xff, //0x00004c77 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x03, //0x00004c7d leaq $3(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c81 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00004c84 cmpb $108, $3(%rdi,%r15) - 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00004c8a jne LBB18_88 - //0x00004c90 LBB18_106 - 0x49, 0x83, 0xc7, 0x04, //0x00004c90 addq $4, %r15 - 0x4d, 0x89, 0x38, //0x00004c94 movq %r15, (%r8) - 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00004c97 jmp LBB18_88 - //0x00004c9c .p2align 2, 0x90 - // // .set L18_0_set_37, LBB18_37-LJTI18_0 - // // .set L18_0_set_41, LBB18_41-LJTI18_0 - // // .set L18_0_set_44, LBB18_44-LJTI18_0 - // // .set L18_0_set_48, LBB18_48-LJTI18_0 - // // .set L18_0_set_50, LBB18_50-LJTI18_0 - // // .set L18_0_set_52, LBB18_52-LJTI18_0 - //0x00004c9c LJTI18_0 - 0xa5, 0xfb, 0xff, 0xff, //0x00004c9c .long L18_0_set_37 - 0xcd, 0xfb, 0xff, 0xff, //0x00004ca0 .long L18_0_set_41 - 0xe4, 0xfb, 0xff, 0xff, //0x00004ca4 .long L18_0_set_44 - 0x43, 0xfc, 0xff, 0xff, //0x00004ca8 .long L18_0_set_48 - 0x59, 0xfc, 0xff, 0xff, //0x00004cac .long L18_0_set_50 - 0x6a, 0xfc, 0xff, 0xff, //0x00004cb0 .long L18_0_set_52 - // // .set L18_1_set_88, LBB18_88-LJTI18_1 - // // .set L18_1_set_87, LBB18_87-LJTI18_1 - // // .set L18_1_set_46, LBB18_46-LJTI18_1 - // // .set L18_1_set_66, LBB18_66-LJTI18_1 - // // .set L18_1_set_57, LBB18_57-LJTI18_1 - // // .set L18_1_set_68, LBB18_68-LJTI18_1 - // // .set L18_1_set_70, LBB18_70-LJTI18_1 - // // .set L18_1_set_73, LBB18_73-LJTI18_1 - // // .set L18_1_set_75, LBB18_75-LJTI18_1 - // // .set L18_1_set_3, LBB18_3-LJTI18_1 - //0x00004cb4 LJTI18_1 - 0x8a, 0xfe, 0xff, 0xff, //0x00004cb4 .long L18_1_set_88 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cb8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cbc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cc0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cc4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cc8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ccc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cd0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cd4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cd8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cdc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ce0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ce4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ce8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cec .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cf0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cf4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cf8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004cfc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d00 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d04 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d08 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d0c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d10 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d14 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d18 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d1c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d20 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d24 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d28 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d2c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d30 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d34 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d38 .long L18_1_set_87 - 0xdd, 0xfb, 0xff, 0xff, //0x00004d3c .long L18_1_set_46 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d40 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d44 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d48 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d4c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d50 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d54 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d58 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d5c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d60 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d64 .long L18_1_set_87 - 0xac, 0xfd, 0xff, 0xff, //0x00004d68 .long L18_1_set_66 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d6c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d70 .long L18_1_set_87 - 0x97, 0xfc, 0xff, 0xff, //0x00004d74 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d78 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d7c .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d80 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d84 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d88 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d8c .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d90 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d94 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004d98 .long L18_1_set_57 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d9c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004da0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004da4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004da8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dac .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004db0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004db4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004db8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dbc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dc0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dc4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dc8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dcc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dd0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dd4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dd8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ddc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004de0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004de4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004de8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dec .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004df0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004df4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004df8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dfc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e00 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e04 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e08 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e0c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e10 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e14 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e18 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e1c .long L18_1_set_87 - 0xd2, 0xfd, 0xff, 0xff, //0x00004e20 .long L18_1_set_68 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e24 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e28 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e2c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e30 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e34 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e38 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e3c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e40 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e44 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e48 .long L18_1_set_87 - 0xf6, 0xfd, 0xff, 0xff, //0x00004e4c .long L18_1_set_70 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e50 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e54 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e58 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e5c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e60 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e64 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e68 .long L18_1_set_87 - 0x23, 0xfe, 0xff, 0xff, //0x00004e6c .long L18_1_set_73 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e70 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e74 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e78 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e7c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e80 .long L18_1_set_87 - 0x48, 0xfe, 0xff, 0xff, //0x00004e84 .long L18_1_set_75 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e88 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e8c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e90 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e94 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e98 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e9c .long L18_1_set_87 - 0xa7, 0xf9, 0xff, 0xff, //0x00004ea0 .long L18_1_set_3 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ea4 .p2align 4, 0x00 - //0x00004eb0 LCPI19_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004eb0 .quad 1 - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004eb8 .quad 6 - //0x00004ec0 .p2align 4, 0x90 - //0x00004ec0 _skip_object - 0x55, //0x00004ec0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004ec1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00004ec4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00004ec7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x00004eca movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00004ecd vmovaps $-37(%rip), %xmm0 /* LCPI19_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00004ed5 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00004ed9 movq %rax, %rdi - 0x5d, //0x00004edc popq %rbp - 0xe9, 0x1e, 0xf7, 0xff, 0xff, //0x00004edd jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004ee2 .p2align 4, 0x90 - //0x00004ef0 _skip_string - 0x55, //0x00004ef0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004ef1 movq %rsp, %rbp - 0x41, 0x57, //0x00004ef4 pushq %r15 - 0x41, 0x56, //0x00004ef6 pushq %r14 - 0x41, 0x54, //0x00004ef8 pushq %r12 - 0x53, //0x00004efa pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00004efb subq $16, %rsp - 0x48, 0x89, 0xd1, //0x00004eff movq %rdx, %rcx - 0x49, 0x89, 0xf6, //0x00004f02 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00004f05 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004f08 movq $-1, $-40(%rbp) - 0x48, 0x8b, 0x1e, //0x00004f10 movq (%rsi), %rbx - 0x4c, 0x8d, 0x65, 0xd8, //0x00004f13 leaq $-40(%rbp), %r12 - 0x48, 0x89, 0xde, //0x00004f17 movq %rbx, %rsi - 0x4c, 0x89, 0xe2, //0x00004f1a movq %r12, %rdx - 0xe8, 0xce, 0xe8, 0xff, 0xff, //0x00004f1d callq _advance_string - 0x48, 0x85, 0xc0, //0x00004f22 testq %rax, %rax - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f25 js LBB20_1 - 0x48, 0xff, 0xcb, //0x00004f2b decq %rbx - 0x48, 0x89, 0xc1, //0x00004f2e movq %rax, %rcx - 0x48, 0x89, 0xd8, //0x00004f31 movq %rbx, %rax - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f34 jmp LBB20_3 - //0x00004f39 LBB20_1 - 0x49, 0x83, 0xc7, 0x08, //0x00004f39 addq $8, %r15 - 0x48, 0x83, 0xf8, 0xff, //0x00004f3d cmpq $-1, %rax - 0x4d, 0x0f, 0x44, 0xe7, //0x00004f41 cmoveq %r15, %r12 - 0x49, 0x8b, 0x0c, 0x24, //0x00004f45 movq (%r12), %rcx - //0x00004f49 LBB20_3 - 0x49, 0x89, 0x0e, //0x00004f49 movq %rcx, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00004f4c addq $16, %rsp - 0x5b, //0x00004f50 popq %rbx - 0x41, 0x5c, //0x00004f51 popq %r12 - 0x41, 0x5e, //0x00004f53 popq %r14 - 0x41, 0x5f, //0x00004f55 popq %r15 - 0x5d, //0x00004f57 popq %rbp - 0xc3, //0x00004f58 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f59 .p2align 4, 0x90 - //0x00004f60 _skip_negative - 0x55, //0x00004f60 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004f61 movq %rsp, %rbp - 0x41, 0x56, //0x00004f64 pushq %r14 - 0x53, //0x00004f66 pushq %rbx - 0x49, 0x89, 0xf6, //0x00004f67 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x00004f6a movq (%rsi), %rbx - 0x48, 0x8b, 0x07, //0x00004f6d movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00004f70 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x00004f73 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x00004f77 subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x00004f7a movq %rax, %rdi - 0xe8, 0xae, 0x00, 0x00, 0x00, //0x00004f7d callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00004f82 testq %rax, %rax - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f85 js LBB21_1 - 0x48, 0x01, 0xd8, //0x00004f8b addq %rbx, %rax - 0x49, 0x89, 0x06, //0x00004f8e movq %rax, (%r14) - 0x48, 0xff, 0xcb, //0x00004f91 decq %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f94 jmp LBB21_3 - //0x00004f99 LBB21_1 - 0x48, 0xf7, 0xd0, //0x00004f99 notq %rax - 0x48, 0x01, 0xc3, //0x00004f9c addq %rax, %rbx - 0x49, 0x89, 0x1e, //0x00004f9f movq %rbx, (%r14) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00004fa2 movq $-2, %rbx - //0x00004fa9 LBB21_3 - 0x48, 0x89, 0xd8, //0x00004fa9 movq %rbx, %rax - 0x5b, //0x00004fac popq %rbx - 0x41, 0x5e, //0x00004fad popq %r14 - 0x5d, //0x00004faf popq %rbp - 0xc3, //0x00004fb0 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fb1 .p2align 4, 0x00 - //0x00004fc0 LCPI22_0 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004fc0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00004fd0 LCPI22_1 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00004fd0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00004fe0 LCPI22_2 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00004fe0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00004ff0 LCPI22_3 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00004ff0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005000 LCPI22_4 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005000 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00005010 LCPI22_5 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005010 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005020 LCPI22_6 - 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005020 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' - //0x00005030 .p2align 4, 0x90 - //0x00005030 _do_skip_number - 0x55, //0x00005030 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005031 movq %rsp, %rbp - 0x41, 0x57, //0x00005034 pushq %r15 - 0x41, 0x56, //0x00005036 pushq %r14 - 0x41, 0x55, //0x00005038 pushq %r13 - 0x41, 0x54, //0x0000503a pushq %r12 - 0x53, //0x0000503c pushq %rbx - 0x48, 0x85, 0xf6, //0x0000503d testq %rsi, %rsi - 0x0f, 0x84, 0x64, 0x02, 0x00, 0x00, //0x00005040 je LBB22_34 - 0x80, 0x3f, 0x30, //0x00005046 cmpb $48, (%rdi) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005049 jne LBB22_5 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000504f movl $1, %edx - 0x48, 0x83, 0xfe, 0x01, //0x00005054 cmpq $1, %rsi - 0x0f, 0x84, 0x20, 0x03, 0x00, 0x00, //0x00005058 je LBB22_52 - 0x8a, 0x47, 0x01, //0x0000505e movb $1(%rdi), %al - 0x04, 0xd2, //0x00005061 addb $-46, %al - 0x3c, 0x37, //0x00005063 cmpb $55, %al - 0x0f, 0x87, 0x13, 0x03, 0x00, 0x00, //0x00005065 ja LBB22_52 - 0x0f, 0xb6, 0xc0, //0x0000506b movzbl %al, %eax - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000506e movabsq $36028797027352577, %rcx - 0x48, 0x0f, 0xa3, 0xc1, //0x00005078 btq %rax, %rcx - 0x0f, 0x83, 0xfc, 0x02, 0x00, 0x00, //0x0000507c jae LBB22_52 - //0x00005082 LBB22_5 - 0x48, 0x83, 0xfe, 0x10, //0x00005082 cmpq $16, %rsi - 0x0f, 0x82, 0x20, 0x03, 0x00, 0x00, //0x00005086 jb LBB22_57 - 0x4c, 0x8d, 0x5e, 0xf0, //0x0000508c leaq $-16(%rsi), %r11 - 0x4c, 0x89, 0xd8, //0x00005090 movq %r11, %rax - 0x48, 0x83, 0xe0, 0xf0, //0x00005093 andq $-16, %rax - 0x4c, 0x8d, 0x54, 0x38, 0x10, //0x00005097 leaq $16(%rax,%rdi), %r10 - 0x41, 0x83, 0xe3, 0x0f, //0x0000509c andl $15, %r11d - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000050a0 movq $-1, %r9 - 0xc5, 0x79, 0x6f, 0x05, 0x11, 0xff, 0xff, 0xff, //0x000050a7 vmovdqa $-239(%rip), %xmm8 /* LCPI22_0+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x19, 0xff, 0xff, 0xff, //0x000050af vmovdqa $-231(%rip), %xmm9 /* LCPI22_1+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x21, 0xff, 0xff, 0xff, //0x000050b7 vmovdqa $-223(%rip), %xmm10 /* LCPI22_2+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x1d, 0x29, 0xff, 0xff, 0xff, //0x000050bf vmovdqa $-215(%rip), %xmm11 /* LCPI22_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x31, 0xff, 0xff, 0xff, //0x000050c7 vmovdqa $-207(%rip), %xmm4 /* LCPI22_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0x39, 0xff, 0xff, 0xff, //0x000050cf vmovdqa $-199(%rip), %xmm5 /* LCPI22_5+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x35, 0x41, 0xff, 0xff, 0xff, //0x000050d7 vmovdqa $-191(%rip), %xmm6 /* LCPI22_6+0(%rip) */ - 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000050df movl $4294967295, %r14d - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000050e5 movq $-1, %rax - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000050ec movq $-1, %r8 - 0x49, 0x89, 0xff, //0x000050f3 movq %rdi, %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000050f6 .p2align 4, 0x90 - //0x00005100 LBB22_7 - 0xc4, 0xc1, 0x7a, 0x6f, 0x3f, //0x00005100 vmovdqu (%r15), %xmm7 - 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005105 vpcmpgtb %xmm8, %xmm7, %xmm0 - 0xc5, 0xb1, 0x64, 0xcf, //0x0000510a vpcmpgtb %xmm7, %xmm9, %xmm1 - 0xc5, 0xf9, 0xdb, 0xc1, //0x0000510e vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xa9, 0x74, 0xcf, //0x00005112 vpcmpeqb %xmm7, %xmm10, %xmm1 - 0xc5, 0xa1, 0x74, 0xd7, //0x00005116 vpcmpeqb %xmm7, %xmm11, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x0000511a vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xc1, 0xeb, 0xd4, //0x0000511e vpor %xmm4, %xmm7, %xmm2 - 0xc5, 0xe9, 0x74, 0xd6, //0x00005122 vpcmpeqb %xmm6, %xmm2, %xmm2 - 0xc5, 0xc1, 0x74, 0xfd, //0x00005126 vpcmpeqb %xmm5, %xmm7, %xmm7 - 0xc5, 0xe9, 0xeb, 0xdf, //0x0000512a vpor %xmm7, %xmm2, %xmm3 - 0xc5, 0xf1, 0xeb, 0xc0, //0x0000512e vpor %xmm0, %xmm1, %xmm0 - 0xc5, 0xe1, 0xeb, 0xc0, //0x00005132 vpor %xmm0, %xmm3, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd7, //0x00005136 vpmovmskb %xmm7, %edx - 0xc5, 0x79, 0xd7, 0xea, //0x0000513a vpmovmskb %xmm2, %r13d - 0xc5, 0x79, 0xd7, 0xe1, //0x0000513e vpmovmskb %xmm1, %r12d - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005142 vpmovmskb %xmm0, %ecx - 0x4c, 0x31, 0xf1, //0x00005146 xorq %r14, %rcx - 0x48, 0x0f, 0xbc, 0xc9, //0x00005149 bsfq %rcx, %rcx - 0x83, 0xf9, 0x10, //0x0000514d cmpl $16, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005150 je LBB22_9 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005156 movl $-1, %ebx - 0xd3, 0xe3, //0x0000515b shll %cl, %ebx - 0xf7, 0xd3, //0x0000515d notl %ebx - 0x21, 0xda, //0x0000515f andl %ebx, %edx - 0x41, 0x21, 0xdd, //0x00005161 andl %ebx, %r13d - 0x44, 0x21, 0xe3, //0x00005164 andl %r12d, %ebx - 0x41, 0x89, 0xdc, //0x00005167 movl %ebx, %r12d - //0x0000516a LBB22_9 - 0x8d, 0x5a, 0xff, //0x0000516a leal $-1(%rdx), %ebx - 0x21, 0xd3, //0x0000516d andl %edx, %ebx - 0x0f, 0x85, 0xfd, 0x01, 0x00, 0x00, //0x0000516f jne LBB22_50 - 0x41, 0x8d, 0x5d, 0xff, //0x00005175 leal $-1(%r13), %ebx - 0x44, 0x21, 0xeb, //0x00005179 andl %r13d, %ebx - 0x0f, 0x85, 0xf0, 0x01, 0x00, 0x00, //0x0000517c jne LBB22_50 - 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005182 leal $-1(%r12), %ebx - 0x44, 0x21, 0xe3, //0x00005187 andl %r12d, %ebx - 0x0f, 0x85, 0xe2, 0x01, 0x00, 0x00, //0x0000518a jne LBB22_50 - 0x85, 0xd2, //0x00005190 testl %edx, %edx - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005192 je LBB22_15 - 0x4c, 0x89, 0xfb, //0x00005198 movq %r15, %rbx - 0x48, 0x29, 0xfb, //0x0000519b subq %rdi, %rbx - 0x0f, 0xbc, 0xd2, //0x0000519e bsfl %edx, %edx - 0x48, 0x01, 0xda, //0x000051a1 addq %rbx, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x000051a4 cmpq $-1, %r8 - 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x000051a8 jne LBB22_51 - 0x49, 0x89, 0xd0, //0x000051ae movq %rdx, %r8 - //0x000051b1 LBB22_15 - 0x45, 0x85, 0xed, //0x000051b1 testl %r13d, %r13d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000051b4 je LBB22_18 - 0x4c, 0x89, 0xfb, //0x000051ba movq %r15, %rbx - 0x48, 0x29, 0xfb, //0x000051bd subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd5, //0x000051c0 bsfl %r13d, %edx - 0x48, 0x01, 0xda, //0x000051c4 addq %rbx, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x000051c7 cmpq $-1, %rax - 0x0f, 0x85, 0xaa, 0x01, 0x00, 0x00, //0x000051cb jne LBB22_51 - 0x48, 0x89, 0xd0, //0x000051d1 movq %rdx, %rax - //0x000051d4 LBB22_18 - 0x45, 0x85, 0xe4, //0x000051d4 testl %r12d, %r12d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000051d7 je LBB22_21 - 0x4c, 0x89, 0xfb, //0x000051dd movq %r15, %rbx - 0x48, 0x29, 0xfb, //0x000051e0 subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd4, //0x000051e3 bsfl %r12d, %edx - 0x48, 0x01, 0xda, //0x000051e7 addq %rbx, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x000051ea cmpq $-1, %r9 - 0x0f, 0x85, 0x87, 0x01, 0x00, 0x00, //0x000051ee jne LBB22_51 - 0x49, 0x89, 0xd1, //0x000051f4 movq %rdx, %r9 - //0x000051f7 LBB22_21 - 0x83, 0xf9, 0x10, //0x000051f7 cmpl $16, %ecx - 0x0f, 0x85, 0xb6, 0x00, 0x00, 0x00, //0x000051fa jne LBB22_35 - 0x49, 0x83, 0xc7, 0x10, //0x00005200 addq $16, %r15 - 0x48, 0x83, 0xc6, 0xf0, //0x00005204 addq $-16, %rsi - 0x48, 0x83, 0xfe, 0x0f, //0x00005208 cmpq $15, %rsi - 0x0f, 0x87, 0xee, 0xfe, 0xff, 0xff, //0x0000520c ja LBB22_7 - 0x4d, 0x85, 0xdb, //0x00005212 testq %r11, %r11 - 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00005215 je LBB22_36 - //0x0000521b LBB22_24 - 0x4b, 0x8d, 0x0c, 0x1a, //0x0000521b leaq (%r10,%r11), %rcx - 0x48, 0x8d, 0x35, 0xa6, 0x01, 0x00, 0x00, //0x0000521f leaq $422(%rip), %rsi /* LJTI22_0+0(%rip) */ - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00005226 jmp LBB22_26 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000522b .p2align 4, 0x90 - //0x00005230 LBB22_25 - 0x49, 0x89, 0xda, //0x00005230 movq %rbx, %r10 - 0x49, 0xff, 0xcb, //0x00005233 decq %r11 - 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00005236 je LBB22_54 - //0x0000523c LBB22_26 - 0x41, 0x0f, 0xbe, 0x12, //0x0000523c movsbl (%r10), %edx - 0x83, 0xc2, 0xd5, //0x00005240 addl $-43, %edx - 0x83, 0xfa, 0x3a, //0x00005243 cmpl $58, %edx - 0x0f, 0x87, 0x70, 0x00, 0x00, 0x00, //0x00005246 ja LBB22_36 - 0x49, 0x8d, 0x5a, 0x01, //0x0000524c leaq $1(%r10), %rbx - 0x48, 0x63, 0x14, 0x96, //0x00005250 movslq (%rsi,%rdx,4), %rdx - 0x48, 0x01, 0xf2, //0x00005254 addq %rsi, %rdx - 0xff, 0xe2, //0x00005257 jmpq *%rdx - //0x00005259 LBB22_28 - 0x48, 0x89, 0xda, //0x00005259 movq %rbx, %rdx - 0x48, 0x29, 0xfa, //0x0000525c subq %rdi, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x0000525f cmpq $-1, %r9 - 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x00005263 jne LBB22_58 - 0x48, 0xff, 0xca, //0x00005269 decq %rdx - 0x49, 0x89, 0xd1, //0x0000526c movq %rdx, %r9 - 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000526f jmp LBB22_25 - //0x00005274 LBB22_30 - 0x48, 0x89, 0xda, //0x00005274 movq %rbx, %rdx - 0x48, 0x29, 0xfa, //0x00005277 subq %rdi, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x0000527a cmpq $-1, %rax - 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x0000527e jne LBB22_58 - 0x48, 0xff, 0xca, //0x00005284 decq %rdx - 0x48, 0x89, 0xd0, //0x00005287 movq %rdx, %rax - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000528a jmp LBB22_25 - //0x0000528f LBB22_32 - 0x48, 0x89, 0xda, //0x0000528f movq %rbx, %rdx - 0x48, 0x29, 0xfa, //0x00005292 subq %rdi, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x00005295 cmpq $-1, %r8 - 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00005299 jne LBB22_58 - 0x48, 0xff, 0xca, //0x0000529f decq %rdx - 0x49, 0x89, 0xd0, //0x000052a2 movq %rdx, %r8 - 0xe9, 0x86, 0xff, 0xff, 0xff, //0x000052a5 jmp LBB22_25 - //0x000052aa LBB22_34 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000052aa movq $-1, %rax - 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x000052b1 jmp LBB22_53 - //0x000052b6 LBB22_35 - 0x49, 0x01, 0xcf, //0x000052b6 addq %rcx, %r15 - 0x4d, 0x89, 0xfa, //0x000052b9 movq %r15, %r10 - //0x000052bc LBB22_36 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000052bc movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x000052c3 testq %rax, %rax - 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x000052c6 je LBB22_52 - //0x000052cc LBB22_37 - 0x4d, 0x85, 0xc9, //0x000052cc testq %r9, %r9 - 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x000052cf je LBB22_52 - 0x4d, 0x85, 0xc0, //0x000052d5 testq %r8, %r8 - 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x000052d8 je LBB22_52 - 0x49, 0x29, 0xfa, //0x000052de subq %rdi, %r10 - 0x49, 0x8d, 0x4a, 0xff, //0x000052e1 leaq $-1(%r10), %rcx - 0x48, 0x39, 0xc8, //0x000052e5 cmpq %rcx, %rax - 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000052e8 je LBB22_45 - 0x49, 0x39, 0xc8, //0x000052ee cmpq %rcx, %r8 - 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000052f1 je LBB22_45 - 0x49, 0x39, 0xc9, //0x000052f7 cmpq %rcx, %r9 - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000052fa je LBB22_45 - 0x4d, 0x85, 0xc9, //0x00005300 testq %r9, %r9 - 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x00005303 jle LBB22_46 - 0x49, 0x8d, 0x49, 0xff, //0x00005309 leaq $-1(%r9), %rcx - 0x48, 0x39, 0xc8, //0x0000530d cmpq %rcx, %rax - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00005310 je LBB22_46 - 0x49, 0xf7, 0xd1, //0x00005316 notq %r9 - 0x4c, 0x89, 0xca, //0x00005319 movq %r9, %rdx - 0x4c, 0x89, 0xc8, //0x0000531c movq %r9, %rax - 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x0000531f jmp LBB22_53 - //0x00005324 LBB22_45 - 0x49, 0xf7, 0xda, //0x00005324 negq %r10 - 0x4c, 0x89, 0xd2, //0x00005327 movq %r10, %rdx - 0x4c, 0x89, 0xd0, //0x0000532a movq %r10, %rax - 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000532d jmp LBB22_53 - //0x00005332 LBB22_46 - 0x4c, 0x89, 0xc1, //0x00005332 movq %r8, %rcx - 0x48, 0x09, 0xc1, //0x00005335 orq %rax, %rcx - 0x49, 0x39, 0xc0, //0x00005338 cmpq %rax, %r8 - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x0000533b jl LBB22_49 - 0x48, 0x85, 0xc9, //0x00005341 testq %rcx, %rcx - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005344 js LBB22_49 - 0x49, 0xf7, 0xd0, //0x0000534a notq %r8 - 0x4c, 0x89, 0xc2, //0x0000534d movq %r8, %rdx - 0x4c, 0x89, 0xc0, //0x00005350 movq %r8, %rax - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00005353 jmp LBB22_53 - //0x00005358 LBB22_49 - 0x48, 0x85, 0xc9, //0x00005358 testq %rcx, %rcx - 0x48, 0x8d, 0x48, 0xff, //0x0000535b leaq $-1(%rax), %rcx - 0x48, 0xf7, 0xd0, //0x0000535f notq %rax - 0x49, 0x0f, 0x48, 0xc2, //0x00005362 cmovsq %r10, %rax - 0x49, 0x39, 0xc8, //0x00005366 cmpq %rcx, %r8 - 0x49, 0x0f, 0x45, 0xc2, //0x00005369 cmovneq %r10, %rax - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000536d jmp LBB22_53 - //0x00005372 LBB22_50 - 0x49, 0x29, 0xff, //0x00005372 subq %rdi, %r15 - 0x0f, 0xbc, 0xd3, //0x00005375 bsfl %ebx, %edx - 0x4c, 0x01, 0xfa, //0x00005378 addq %r15, %rdx - //0x0000537b LBB22_51 - 0x48, 0xf7, 0xd2, //0x0000537b notq %rdx - //0x0000537e LBB22_52 - 0x48, 0x89, 0xd0, //0x0000537e movq %rdx, %rax - //0x00005381 LBB22_53 - 0x5b, //0x00005381 popq %rbx - 0x41, 0x5c, //0x00005382 popq %r12 - 0x41, 0x5d, //0x00005384 popq %r13 - 0x41, 0x5e, //0x00005386 popq %r14 - 0x41, 0x5f, //0x00005388 popq %r15 - 0x5d, //0x0000538a popq %rbp - 0xc3, //0x0000538b retq - //0x0000538c LBB22_54 - 0x49, 0x89, 0xca, //0x0000538c movq %rcx, %r10 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000538f movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x00005396 testq %rax, %rax - 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005399 jne LBB22_37 - 0xe9, 0xda, 0xff, 0xff, 0xff, //0x0000539f jmp LBB22_52 - //0x000053a4 LBB22_58 - 0x48, 0xf7, 0xda, //0x000053a4 negq %rdx - 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x000053a7 jmp LBB22_52 - //0x000053ac LBB22_57 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053ac movq $-1, %r8 - 0x49, 0x89, 0xfa, //0x000053b3 movq %rdi, %r10 - 0x49, 0x89, 0xf3, //0x000053b6 movq %rsi, %r11 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053b9 movq $-1, %rax - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000053c0 movq $-1, %r9 - 0xe9, 0x4f, 0xfe, 0xff, 0xff, //0x000053c7 jmp LBB22_24 - //0x000053cc .p2align 2, 0x90 - // // .set L22_0_set_28, LBB22_28-LJTI22_0 - // // .set L22_0_set_36, LBB22_36-LJTI22_0 - // // .set L22_0_set_32, LBB22_32-LJTI22_0 - // // .set L22_0_set_25, LBB22_25-LJTI22_0 - // // .set L22_0_set_30, LBB22_30-LJTI22_0 - //0x000053cc LJTI22_0 - 0x8d, 0xfe, 0xff, 0xff, //0x000053cc .long L22_0_set_28 - 0xf0, 0xfe, 0xff, 0xff, //0x000053d0 .long L22_0_set_36 - 0x8d, 0xfe, 0xff, 0xff, //0x000053d4 .long L22_0_set_28 - 0xc3, 0xfe, 0xff, 0xff, //0x000053d8 .long L22_0_set_32 - 0xf0, 0xfe, 0xff, 0xff, //0x000053dc .long L22_0_set_36 - 0x64, 0xfe, 0xff, 0xff, //0x000053e0 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053e4 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053e8 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053ec .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053f0 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053f4 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053f8 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x000053fc .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005400 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005404 .long L22_0_set_25 - 0xf0, 0xfe, 0xff, 0xff, //0x00005408 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000540c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005410 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005414 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005418 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000541c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005420 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005424 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005428 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000542c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005430 .long L22_0_set_36 - 0xa8, 0xfe, 0xff, 0xff, //0x00005434 .long L22_0_set_30 - 0xf0, 0xfe, 0xff, 0xff, //0x00005438 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000543c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005440 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005444 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005448 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000544c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005450 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005454 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005458 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000545c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005460 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005464 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005468 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000546c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005470 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005474 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005478 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000547c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005480 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005484 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005488 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000548c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005490 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005494 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005498 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000549c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054a0 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054a4 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054a8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054ac .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054b0 .long L22_0_set_36 - 0xa8, 0xfe, 0xff, 0xff, //0x000054b4 .long L22_0_set_30 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000054b8 .p2align 4, 0x90 - //0x000054c0 _skip_positive - 0x55, //0x000054c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000054c1 movq %rsp, %rbp - 0x41, 0x57, //0x000054c4 pushq %r15 - 0x41, 0x56, //0x000054c6 pushq %r14 - 0x53, //0x000054c8 pushq %rbx - 0x50, //0x000054c9 pushq %rax - 0x49, 0x89, 0xf6, //0x000054ca movq %rsi, %r14 - 0x4c, 0x8b, 0x3e, //0x000054cd movq (%rsi), %r15 - 0x49, 0x8d, 0x5f, 0xff, //0x000054d0 leaq $-1(%r15), %rbx - 0x48, 0x8b, 0x07, //0x000054d4 movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x000054d7 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x000054da movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x000054de subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x000054e1 movq %rax, %rdi - 0xe8, 0x47, 0xfb, 0xff, 0xff, //0x000054e4 callq _do_skip_number - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000054e9 movq $-2, %rcx - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000054f0 movq $-2, %rdx - 0x48, 0x29, 0xc2, //0x000054f7 subq %rax, %rdx - 0x48, 0x85, 0xc0, //0x000054fa testq %rax, %rax - 0x48, 0x8d, 0x40, 0xff, //0x000054fd leaq $-1(%rax), %rax - 0x48, 0x0f, 0x48, 0xc2, //0x00005501 cmovsq %rdx, %rax - 0x48, 0x0f, 0x49, 0xcb, //0x00005505 cmovnsq %rbx, %rcx - 0x4c, 0x01, 0xf8, //0x00005509 addq %r15, %rax - 0x49, 0x89, 0x06, //0x0000550c movq %rax, (%r14) - 0x48, 0x89, 0xc8, //0x0000550f movq %rcx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00005512 addq $8, %rsp - 0x5b, //0x00005516 popq %rbx - 0x41, 0x5e, //0x00005517 popq %r14 - 0x41, 0x5f, //0x00005519 popq %r15 - 0x5d, //0x0000551b popq %rbp - 0xc3, //0x0000551c retq - 0x90, 0x90, 0x90, //0x0000551d .p2align 4, 0x90 - //0x00005520 _skip_number - 0x55, //0x00005520 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005521 movq %rsp, %rbp - 0x41, 0x57, //0x00005524 pushq %r15 - 0x41, 0x56, //0x00005526 pushq %r14 - 0x41, 0x55, //0x00005528 pushq %r13 - 0x41, 0x54, //0x0000552a pushq %r12 - 0x53, //0x0000552c pushq %rbx - 0x50, //0x0000552d pushq %rax - 0x49, 0x89, 0xf6, //0x0000552e movq %rsi, %r14 - 0x4c, 0x8b, 0x27, //0x00005531 movq (%rdi), %r12 - 0x48, 0x8b, 0x77, 0x08, //0x00005534 movq $8(%rdi), %rsi - 0x4d, 0x8b, 0x2e, //0x00005538 movq (%r14), %r13 - 0x4c, 0x29, 0xee, //0x0000553b subq %r13, %rsi - 0x31, 0xc0, //0x0000553e xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00005540 cmpb $45, (%r12,%r13) - 0x4b, 0x8d, 0x1c, 0x2c, //0x00005545 leaq (%r12,%r13), %rbx - 0x0f, 0x94, 0xc0, //0x00005549 sete %al - 0x48, 0x01, 0xc3, //0x0000554c addq %rax, %rbx - 0x48, 0x29, 0xc6, //0x0000554f subq %rax, %rsi - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00005552 je LBB24_1 - 0x8a, 0x03, //0x00005558 movb (%rbx), %al - 0x04, 0xd0, //0x0000555a addb $-48, %al - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000555c movq $-2, %r15 - 0x3c, 0x09, //0x00005563 cmpb $9, %al - 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00005565 ja LBB24_6 - 0x48, 0x89, 0xdf, //0x0000556b movq %rbx, %rdi - 0xe8, 0xbd, 0xfa, 0xff, 0xff, //0x0000556e callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00005573 testq %rax, %rax - 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00005576 js LBB24_4 - 0x48, 0x01, 0xc3, //0x0000557c addq %rax, %rbx - 0x4d, 0x89, 0xef, //0x0000557f movq %r13, %r15 - //0x00005582 LBB24_6 - 0x4c, 0x29, 0xe3, //0x00005582 subq %r12, %rbx - 0x49, 0x89, 0x1e, //0x00005585 movq %rbx, (%r14) - 0x4c, 0x89, 0xf8, //0x00005588 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x08, //0x0000558b addq $8, %rsp - 0x5b, //0x0000558f popq %rbx - 0x41, 0x5c, //0x00005590 popq %r12 - 0x41, 0x5d, //0x00005592 popq %r13 - 0x41, 0x5e, //0x00005594 popq %r14 - 0x41, 0x5f, //0x00005596 popq %r15 - 0x5d, //0x00005598 popq %rbp - 0xc3, //0x00005599 retq - //0x0000559a LBB24_1 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000559a movq $-1, %r15 - 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x000055a1 jmp LBB24_6 - //0x000055a6 LBB24_4 - 0x48, 0xf7, 0xd0, //0x000055a6 notq %rax - 0x48, 0x01, 0xc3, //0x000055a9 addq %rax, %rbx - 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x000055ac jmp LBB24_6 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000055b1 .p2align 4, 0x90 - //0x000055c0 _skip_one - 0x55, //0x000055c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000055c1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000055c4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000055c7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000055ca movq %rdi, %rsi - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000055cd movl $1, %edi - 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000055d2 vmovq %rdi, %xmm0 - 0xc5, 0xfa, 0x7f, 0x00, //0x000055d7 vmovdqu %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x000055db movq %rax, %rdi - 0x5d, //0x000055de popq %rbp - 0xe9, 0x1c, 0xf0, 0xff, 0xff, //0x000055df jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000055e4 .p2align 4, 0x90 - //0x000055f0 _validate_one - 0x55, //0x000055f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000055f1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000055f4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000055f7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000055fa movq %rdi, %rsi - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000055fd movl $1, %ecx - 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005602 vmovq %rcx, %xmm0 - 0xc5, 0xfa, 0x7f, 0x00, //0x00005607 vmovdqu %xmm0, (%rax) - 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000560b movl $32, %ecx - 0x48, 0x89, 0xc7, //0x00005610 movq %rax, %rdi - 0x5d, //0x00005613 popq %rbp - 0xe9, 0xe7, 0xef, 0xff, 0xff, //0x00005614 jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005619 .p2align 4, 0x00 - //0x00005620 LCPI27_0 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00005620 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x00005630 LCPI27_1 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005630 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00005640 LCPI27_2 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005640 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x00005650 LCPI27_3 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005650 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00005660 LCPI27_4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005660 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00005670 LCPI27_5 - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005670 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - //0x00005680 LCPI27_6 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005680 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00005690 LCPI27_7 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005690 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x000056a0 .p2align 4, 0x90 - //0x000056a0 _skip_one_fast - 0x55, //0x000056a0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000056a1 movq %rsp, %rbp - 0x41, 0x57, //0x000056a4 pushq %r15 - 0x41, 0x56, //0x000056a6 pushq %r14 - 0x41, 0x55, //0x000056a8 pushq %r13 - 0x41, 0x54, //0x000056aa pushq %r12 - 0x53, //0x000056ac pushq %rbx - 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x000056ad subq $128, %rsp - 0x4c, 0x8b, 0x37, //0x000056b4 movq (%rdi), %r14 - 0x4c, 0x8b, 0x47, 0x08, //0x000056b7 movq $8(%rdi), %r8 - 0x48, 0x8b, 0x16, //0x000056bb movq (%rsi), %rdx - 0x48, 0x89, 0xd0, //0x000056be movq %rdx, %rax - 0x4c, 0x29, 0xc0, //0x000056c1 subq %r8, %rax - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000056c4 jae LBB27_5 - 0x41, 0x8a, 0x0c, 0x16, //0x000056ca movb (%r14,%rdx), %cl - 0x80, 0xf9, 0x0d, //0x000056ce cmpb $13, %cl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000056d1 je LBB27_5 - 0x80, 0xf9, 0x20, //0x000056d7 cmpb $32, %cl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000056da je LBB27_5 - 0x80, 0xc1, 0xf7, //0x000056e0 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x000056e3 cmpb $1, %cl - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000056e6 jbe LBB27_5 - 0x49, 0x89, 0xd3, //0x000056ec movq %rdx, %r11 - 0xe9, 0x2b, 0x01, 0x00, 0x00, //0x000056ef jmp LBB27_27 - //0x000056f4 LBB27_5 - 0x4c, 0x8d, 0x5a, 0x01, //0x000056f4 leaq $1(%rdx), %r11 - 0x4d, 0x39, 0xc3, //0x000056f8 cmpq %r8, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000056fb jae LBB27_9 - 0x43, 0x8a, 0x0c, 0x1e, //0x00005701 movb (%r14,%r11), %cl - 0x80, 0xf9, 0x0d, //0x00005705 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005708 je LBB27_9 - 0x80, 0xf9, 0x20, //0x0000570e cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00005711 je LBB27_9 - 0x80, 0xc1, 0xf7, //0x00005717 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x0000571a cmpb $1, %cl - 0x0f, 0x87, 0xfc, 0x00, 0x00, 0x00, //0x0000571d ja LBB27_27 - //0x00005723 LBB27_9 - 0x4c, 0x8d, 0x5a, 0x02, //0x00005723 leaq $2(%rdx), %r11 - 0x4d, 0x39, 0xc3, //0x00005727 cmpq %r8, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000572a jae LBB27_13 - 0x43, 0x8a, 0x0c, 0x1e, //0x00005730 movb (%r14,%r11), %cl - 0x80, 0xf9, 0x0d, //0x00005734 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005737 je LBB27_13 - 0x80, 0xf9, 0x20, //0x0000573d cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00005740 je LBB27_13 - 0x80, 0xc1, 0xf7, //0x00005746 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x00005749 cmpb $1, %cl - 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x0000574c ja LBB27_27 - //0x00005752 LBB27_13 - 0x4c, 0x8d, 0x5a, 0x03, //0x00005752 leaq $3(%rdx), %r11 - 0x4d, 0x39, 0xc3, //0x00005756 cmpq %r8, %r11 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005759 jae LBB27_17 - 0x43, 0x8a, 0x0c, 0x1e, //0x0000575f movb (%r14,%r11), %cl - 0x80, 0xf9, 0x0d, //0x00005763 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005766 je LBB27_17 - 0x80, 0xf9, 0x20, //0x0000576c cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000576f je LBB27_17 - 0x80, 0xc1, 0xf7, //0x00005775 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x00005778 cmpb $1, %cl - 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x0000577b ja LBB27_27 - //0x00005781 LBB27_17 - 0x48, 0x8d, 0x4a, 0x04, //0x00005781 leaq $4(%rdx), %rcx - 0x49, 0x39, 0xc8, //0x00005785 cmpq %rcx, %r8 - 0x0f, 0x86, 0x4b, 0x00, 0x00, 0x00, //0x00005788 jbe LBB27_23 - 0x49, 0x39, 0xc8, //0x0000578e cmpq %rcx, %r8 - 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00005791 je LBB27_24 - 0x4b, 0x8d, 0x0c, 0x06, //0x00005797 leaq (%r14,%r8), %rcx - 0x48, 0x83, 0xc0, 0x04, //0x0000579b addq $4, %rax - 0x4e, 0x8d, 0x5c, 0x32, 0x05, //0x0000579f leaq $5(%rdx,%r14), %r11 - 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000057a4 movabsq $4294977024, %rdx - 0x90, 0x90, //0x000057ae .p2align 4, 0x90 - //0x000057b0 LBB27_20 - 0x41, 0x0f, 0xbe, 0x5b, 0xff, //0x000057b0 movsbl $-1(%r11), %ebx - 0x83, 0xfb, 0x20, //0x000057b5 cmpl $32, %ebx - 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x000057b8 ja LBB27_26 - 0x48, 0x0f, 0xa3, 0xda, //0x000057be btq %rbx, %rdx - 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x000057c2 jae LBB27_26 - 0x49, 0xff, 0xc3, //0x000057c8 incq %r11 - 0x48, 0xff, 0xc0, //0x000057cb incq %rax - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000057ce jne LBB27_20 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000057d4 jmp LBB27_25 - //0x000057d9 LBB27_23 - 0x48, 0x89, 0x0e, //0x000057d9 movq %rcx, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057dc movq $-1, %rax - 0xe9, 0x46, 0x01, 0x00, 0x00, //0x000057e3 jmp LBB27_45 - //0x000057e8 LBB27_24 - 0x4c, 0x01, 0xf1, //0x000057e8 addq %r14, %rcx - //0x000057eb LBB27_25 - 0x4c, 0x29, 0xf1, //0x000057eb subq %r14, %rcx - 0x49, 0x89, 0xcb, //0x000057ee movq %rcx, %r11 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000057f1 movq $-1, %rax - 0x4d, 0x39, 0xc3, //0x000057f8 cmpq %r8, %r11 - 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x000057fb jb LBB27_27 - 0xe9, 0x28, 0x01, 0x00, 0x00, //0x00005801 jmp LBB27_45 - //0x00005806 LBB27_26 - 0x4c, 0x89, 0xf0, //0x00005806 movq %r14, %rax - 0x48, 0xf7, 0xd0, //0x00005809 notq %rax - 0x49, 0x01, 0xc3, //0x0000580c addq %rax, %r11 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000580f movq $-1, %rax - 0x4d, 0x39, 0xc3, //0x00005816 cmpq %r8, %r11 - 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x00005819 jae LBB27_45 - //0x0000581f LBB27_27 - 0x49, 0x8d, 0x5b, 0x01, //0x0000581f leaq $1(%r11), %rbx - 0x48, 0x89, 0x1e, //0x00005823 movq %rbx, (%rsi) - 0x43, 0x0f, 0xbe, 0x0c, 0x1e, //0x00005826 movsbl (%r14,%r11), %ecx - 0x83, 0xf9, 0x7b, //0x0000582b cmpl $123, %ecx - 0x0f, 0x87, 0x1f, 0x01, 0x00, 0x00, //0x0000582e ja LBB27_47 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005834 movq $-1, %rax - 0x48, 0x8d, 0x15, 0x26, 0x0a, 0x00, 0x00, //0x0000583b leaq $2598(%rip), %rdx /* LJTI27_0+0(%rip) */ - 0x48, 0x63, 0x0c, 0x8a, //0x00005842 movslq (%rdx,%rcx,4), %rcx - 0x48, 0x01, 0xd1, //0x00005846 addq %rdx, %rcx - 0xff, 0xe1, //0x00005849 jmpq *%rcx - //0x0000584b LBB27_29 - 0x48, 0x8b, 0x4f, 0x08, //0x0000584b movq $8(%rdi), %rcx - 0x48, 0x89, 0xc8, //0x0000584f movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x00005852 subq %rbx, %rax - 0x4c, 0x01, 0xf3, //0x00005855 addq %r14, %rbx - 0x48, 0x83, 0xf8, 0x10, //0x00005858 cmpq $16, %rax - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x0000585c jb LBB27_34 - 0x4c, 0x29, 0xd9, //0x00005862 subq %r11, %rcx - 0x48, 0x83, 0xc1, 0xef, //0x00005865 addq $-17, %rcx - 0x48, 0x89, 0xca, //0x00005869 movq %rcx, %rdx - 0x48, 0x83, 0xe2, 0xf0, //0x0000586c andq $-16, %rdx - 0x4c, 0x01, 0xda, //0x00005870 addq %r11, %rdx - 0x49, 0x8d, 0x54, 0x16, 0x11, //0x00005873 leaq $17(%r14,%rdx), %rdx - 0x83, 0xe1, 0x0f, //0x00005878 andl $15, %ecx - 0xc5, 0xf9, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x0000587b vmovdqa $-611(%rip), %xmm0 /* LCPI27_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00005883 vmovdqa $-603(%rip), %xmm1 /* LCPI27_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x0000588b vmovdqa $-595(%rip), %xmm2 /* LCPI27_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005893 .p2align 4, 0x90 - //0x000058a0 LBB27_31 - 0xc5, 0xfa, 0x6f, 0x1b, //0x000058a0 vmovdqu (%rbx), %xmm3 - 0xc5, 0xe1, 0x74, 0xe0, //0x000058a4 vpcmpeqb %xmm0, %xmm3, %xmm4 - 0xc5, 0xe1, 0xeb, 0xd9, //0x000058a8 vpor %xmm1, %xmm3, %xmm3 - 0xc5, 0xe1, 0x74, 0xda, //0x000058ac vpcmpeqb %xmm2, %xmm3, %xmm3 - 0xc5, 0xe1, 0xeb, 0xdc, //0x000058b0 vpor %xmm4, %xmm3, %xmm3 - 0xc5, 0xf9, 0xd7, 0xfb, //0x000058b4 vpmovmskb %xmm3, %edi - 0x66, 0x85, 0xff, //0x000058b8 testw %di, %di - 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x000058bb jne LBB27_42 - 0x48, 0x83, 0xc3, 0x10, //0x000058c1 addq $16, %rbx - 0x48, 0x83, 0xc0, 0xf0, //0x000058c5 addq $-16, %rax - 0x48, 0x83, 0xf8, 0x0f, //0x000058c9 cmpq $15, %rax - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000058cd ja LBB27_31 - 0x48, 0x89, 0xc8, //0x000058d3 movq %rcx, %rax - 0x48, 0x89, 0xd3, //0x000058d6 movq %rdx, %rbx - //0x000058d9 LBB27_34 - 0x48, 0x85, 0xc0, //0x000058d9 testq %rax, %rax - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000058dc je LBB27_41 - 0x48, 0x8d, 0x0c, 0x03, //0x000058e2 leaq (%rbx,%rax), %rcx - //0x000058e6 LBB27_36 - 0x0f, 0xb6, 0x13, //0x000058e6 movzbl (%rbx), %edx - 0x80, 0xfa, 0x2c, //0x000058e9 cmpb $44, %dl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000058ec je LBB27_41 - 0x80, 0xfa, 0x7d, //0x000058f2 cmpb $125, %dl - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000058f5 je LBB27_41 - 0x80, 0xfa, 0x5d, //0x000058fb cmpb $93, %dl - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000058fe je LBB27_41 - 0x48, 0xff, 0xc3, //0x00005904 incq %rbx - 0x48, 0xff, 0xc8, //0x00005907 decq %rax - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000590a jne LBB27_36 - 0x48, 0x89, 0xcb, //0x00005910 movq %rcx, %rbx - //0x00005913 LBB27_41 - 0x4c, 0x29, 0xf3, //0x00005913 subq %r14, %rbx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005916 jmp LBB27_43 - //0x0000591b LBB27_42 - 0x0f, 0xb7, 0xc7, //0x0000591b movzwl %di, %eax - 0x48, 0x0f, 0xbc, 0xc0, //0x0000591e bsfq %rax, %rax - 0x4c, 0x29, 0xf3, //0x00005922 subq %r14, %rbx - 0x48, 0x01, 0xc3, //0x00005925 addq %rax, %rbx - //0x00005928 LBB27_43 - 0x48, 0x89, 0x1e, //0x00005928 movq %rbx, (%rsi) - //0x0000592b LBB27_44 - 0x4c, 0x89, 0xd8, //0x0000592b movq %r11, %rax - //0x0000592e LBB27_45 - 0x48, 0x8d, 0x65, 0xd8, //0x0000592e leaq $-40(%rbp), %rsp - 0x5b, //0x00005932 popq %rbx - 0x41, 0x5c, //0x00005933 popq %r12 - 0x41, 0x5d, //0x00005935 popq %r13 - 0x41, 0x5e, //0x00005937 popq %r14 - 0x41, 0x5f, //0x00005939 popq %r15 - 0x5d, //0x0000593b popq %rbp - 0xc5, 0xf8, 0x77, //0x0000593c vzeroupper - 0xc3, //0x0000593f retq - //0x00005940 LBB27_46 - 0x49, 0x8d, 0x4b, 0x04, //0x00005940 leaq $4(%r11), %rcx - 0x48, 0x3b, 0x4f, 0x08, //0x00005944 cmpq $8(%rdi), %rcx - 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00005948 ja LBB27_45 - 0xe9, 0xa6, 0x04, 0x00, 0x00, //0x0000594e jmp LBB27_83 - //0x00005953 LBB27_47 - 0x4c, 0x89, 0x1e, //0x00005953 movq %r11, (%rsi) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00005956 movq $-2, %rax - 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000595d jmp LBB27_45 - //0x00005962 LBB27_48 - 0x4c, 0x8b, 0x47, 0x08, //0x00005962 movq $8(%rdi), %r8 - 0x4d, 0x89, 0xc7, //0x00005966 movq %r8, %r15 - 0x49, 0x29, 0xdf, //0x00005969 subq %rbx, %r15 - 0x49, 0x83, 0xff, 0x20, //0x0000596c cmpq $32, %r15 - 0x0f, 0x8c, 0xbb, 0x08, 0x00, 0x00, //0x00005970 jl LBB27_117 - 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00005976 movl $4294967295, %r9d - 0x4f, 0x8d, 0x14, 0x1e, //0x0000597c leaq (%r14,%r11), %r10 - 0x4d, 0x29, 0xd8, //0x00005980 subq %r11, %r8 - 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00005983 movl $31, %r13d - 0x45, 0x31, 0xff, //0x00005989 xorl %r15d, %r15d - 0xc5, 0xf9, 0x6f, 0x05, 0xbc, 0xfc, 0xff, 0xff, //0x0000598c vmovdqa $-836(%rip), %xmm0 /* LCPI27_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xc4, 0xfc, 0xff, 0xff, //0x00005994 vmovdqa $-828(%rip), %xmm1 /* LCPI27_4+0(%rip) */ - 0x45, 0x31, 0xe4, //0x0000599c xorl %r12d, %r12d - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000599f jmp LBB27_50 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000059a4 .p2align 4, 0x90 - //0x000059b0 LBB27_52 - 0x45, 0x31, 0xe4, //0x000059b0 xorl %r12d, %r12d - 0x85, 0xc9, //0x000059b3 testl %ecx, %ecx - 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x000059b5 jne LBB27_110 - //0x000059bb LBB27_53 - 0x49, 0x83, 0xc7, 0x20, //0x000059bb addq $32, %r15 - 0x4b, 0x8d, 0x4c, 0x28, 0xe0, //0x000059bf leaq $-32(%r8,%r13), %rcx - 0x49, 0x83, 0xc5, 0xe0, //0x000059c4 addq $-32, %r13 - 0x48, 0x83, 0xf9, 0x3f, //0x000059c8 cmpq $63, %rcx - 0x0f, 0x8e, 0xdc, 0x07, 0x00, 0x00, //0x000059cc jle LBB27_54 - //0x000059d2 LBB27_50 - 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x3a, 0x01, //0x000059d2 vmovdqu $1(%r10,%r15), %xmm2 - 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x3a, 0x11, //0x000059d9 vmovdqu $17(%r10,%r15), %xmm3 - 0xc5, 0xe9, 0x74, 0xe0, //0x000059e0 vpcmpeqb %xmm0, %xmm2, %xmm4 - 0xc5, 0xf9, 0xd7, 0xfc, //0x000059e4 vpmovmskb %xmm4, %edi - 0xc5, 0xe1, 0x74, 0xe0, //0x000059e8 vpcmpeqb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf9, 0xd7, 0xcc, //0x000059ec vpmovmskb %xmm4, %ecx - 0x48, 0xc1, 0xe1, 0x10, //0x000059f0 shlq $16, %rcx - 0x48, 0x09, 0xf9, //0x000059f4 orq %rdi, %rcx - 0xc5, 0xe9, 0x74, 0xd1, //0x000059f7 vpcmpeqb %xmm1, %xmm2, %xmm2 - 0xc5, 0xf9, 0xd7, 0xda, //0x000059fb vpmovmskb %xmm2, %ebx - 0xc5, 0xe1, 0x74, 0xd1, //0x000059ff vpcmpeqb %xmm1, %xmm3, %xmm2 - 0xc5, 0xf9, 0xd7, 0xfa, //0x00005a03 vpmovmskb %xmm2, %edi - 0x48, 0xc1, 0xe7, 0x10, //0x00005a07 shlq $16, %rdi - 0x48, 0x09, 0xdf, //0x00005a0b orq %rbx, %rdi - 0x48, 0x89, 0xfb, //0x00005a0e movq %rdi, %rbx - 0x4c, 0x09, 0xe3, //0x00005a11 orq %r12, %rbx - 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x00005a14 je LBB27_52 - 0x44, 0x89, 0xe3, //0x00005a1a movl %r12d, %ebx - 0x44, 0x31, 0xcb, //0x00005a1d xorl %r9d, %ebx - 0x21, 0xdf, //0x00005a20 andl %ebx, %edi - 0x8d, 0x1c, 0x3f, //0x00005a22 leal (%rdi,%rdi), %ebx - 0x44, 0x09, 0xe3, //0x00005a25 orl %r12d, %ebx - 0x41, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x00005a28 leal $-1431655765(%r9), %edx - 0x31, 0xda, //0x00005a2f xorl %ebx, %edx - 0x21, 0xfa, //0x00005a31 andl %edi, %edx - 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005a33 andl $-1431655766, %edx - 0x45, 0x31, 0xe4, //0x00005a39 xorl %r12d, %r12d - 0x01, 0xfa, //0x00005a3c addl %edi, %edx - 0x41, 0x0f, 0x92, 0xc4, //0x00005a3e setb %r12b - 0x01, 0xd2, //0x00005a42 addl %edx, %edx - 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00005a44 xorl $1431655765, %edx - 0x21, 0xda, //0x00005a4a andl %ebx, %edx - 0x44, 0x31, 0xca, //0x00005a4c xorl %r9d, %edx - 0x21, 0xd1, //0x00005a4f andl %edx, %ecx - 0x85, 0xc9, //0x00005a51 testl %ecx, %ecx - 0x0f, 0x84, 0x62, 0xff, 0xff, 0xff, //0x00005a53 je LBB27_53 - //0x00005a59 LBB27_110 - 0x48, 0x0f, 0xbc, 0xc1, //0x00005a59 bsfq %rcx, %rax - 0x49, 0x01, 0xc2, //0x00005a5d addq %rax, %r10 - 0x4d, 0x01, 0xfa, //0x00005a60 addq %r15, %r10 - 0x4d, 0x29, 0xf2, //0x00005a63 subq %r14, %r10 - 0x49, 0x83, 0xc2, 0x02, //0x00005a66 addq $2, %r10 - 0x4c, 0x89, 0x16, //0x00005a6a movq %r10, (%rsi) - 0xe9, 0xb9, 0xfe, 0xff, 0xff, //0x00005a6d jmp LBB27_44 - //0x00005a72 LBB27_57 - 0x48, 0x8b, 0x4f, 0x08, //0x00005a72 movq $8(%rdi), %rcx - 0x48, 0x29, 0xd9, //0x00005a76 subq %rbx, %rcx - 0x49, 0x01, 0xde, //0x00005a79 addq %rbx, %r14 - 0x45, 0x31, 0xe4, //0x00005a7c xorl %r12d, %r12d - 0xc5, 0x79, 0x6f, 0x15, 0xc9, 0xfb, 0xff, 0xff, //0x00005a7f vmovdqa $-1079(%rip), %xmm10 /* LCPI27_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xd1, 0xfb, 0xff, 0xff, //0x00005a87 vmovdqa $-1071(%rip), %xmm1 /* LCPI27_4+0(%rip) */ - 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005a8f vpcmpeqd %xmm9, %xmm9, %xmm9 - 0xc5, 0xf9, 0x6f, 0x1d, 0xe4, 0xfb, 0xff, 0xff, //0x00005a94 vmovdqa $-1052(%rip), %xmm3 /* LCPI27_6+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0xec, 0xfb, 0xff, 0xff, //0x00005a9c vmovdqa $-1044(%rip), %xmm4 /* LCPI27_7+0(%rip) */ - 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005aa4 vxorps %xmm8, %xmm8, %xmm8 - 0x31, 0xdb, //0x00005aa9 xorl %ebx, %ebx - 0x45, 0x31, 0xc0, //0x00005aab xorl %r8d, %r8d - 0x45, 0x31, 0xff, //0x00005aae xorl %r15d, %r15d - 0x48, 0x83, 0xf9, 0x40, //0x00005ab1 cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005ab5 movq %rcx, $8(%rsp) - 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005aba movq %r8, $16(%rsp) - 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x00005abf jge LBB27_58 - //0x00005ac5 LBB27_67 - 0x48, 0x85, 0xc9, //0x00005ac5 testq %rcx, %rcx - 0x0f, 0x8e, 0x6b, 0x07, 0x00, 0x00, //0x00005ac8 jle LBB27_118 - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005ace vmovups %ymm8, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005ad4 vmovups %ymm8, $32(%rsp) - 0x44, 0x89, 0xf1, //0x00005ada movl %r14d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005add andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005ae3 cmpl $4033, %ecx - 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00005ae9 jb LBB27_58 - 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005aef cmpq $32, $8(%rsp) - 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00005af5 jb LBB27_71 - 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005afb vmovups (%r14), %xmm0 - 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005b00 vmovups %xmm0, $32(%rsp) - 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005b06 vmovdqu $16(%r14), %xmm0 - 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005b0c vmovdqu %xmm0, $48(%rsp) - 0x49, 0x83, 0xc6, 0x20, //0x00005b12 addq $32, %r14 - 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005b16 movq $8(%rsp), %rcx - 0x48, 0x8d, 0x51, 0xe0, //0x00005b1b leaq $-32(%rcx), %rdx - 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00005b1f leaq $64(%rsp), %r8 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005b24 jmp LBB27_72 - //0x00005b29 LBB27_71 - 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00005b29 leaq $32(%rsp), %r8 - 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005b2e movq $8(%rsp), %rdx - //0x00005b33 LBB27_72 - 0x48, 0x83, 0xfa, 0x10, //0x00005b33 cmpq $16, %rdx - 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005b37 jb LBB27_73 - 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005b3d vmovdqu (%r14), %xmm0 - 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00005b42 vmovdqu %xmm0, (%r8) - 0x49, 0x83, 0xc6, 0x10, //0x00005b47 addq $16, %r14 - 0x49, 0x83, 0xc0, 0x10, //0x00005b4b addq $16, %r8 - 0x48, 0x83, 0xc2, 0xf0, //0x00005b4f addq $-16, %rdx - 0x48, 0x83, 0xfa, 0x08, //0x00005b53 cmpq $8, %rdx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005b57 jae LBB27_78 - //0x00005b5d LBB27_74 - 0x48, 0x83, 0xfa, 0x04, //0x00005b5d cmpq $4, %rdx - 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00005b61 jl LBB27_75 - //0x00005b67 LBB27_79 - 0x41, 0x8b, 0x0e, //0x00005b67 movl (%r14), %ecx - 0x41, 0x89, 0x08, //0x00005b6a movl %ecx, (%r8) - 0x49, 0x83, 0xc6, 0x04, //0x00005b6d addq $4, %r14 - 0x49, 0x83, 0xc0, 0x04, //0x00005b71 addq $4, %r8 - 0x48, 0x83, 0xc2, 0xfc, //0x00005b75 addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00005b79 cmpq $2, %rdx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005b7d jae LBB27_80 - //0x00005b83 LBB27_76 - 0x4c, 0x89, 0xf1, //0x00005b83 movq %r14, %rcx - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005b86 leaq $32(%rsp), %r14 - 0x48, 0x85, 0xd2, //0x00005b8b testq %rdx, %rdx - 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005b8e jne LBB27_81 - 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00005b94 jmp LBB27_58 - //0x00005b99 LBB27_73 - 0x48, 0x83, 0xfa, 0x08, //0x00005b99 cmpq $8, %rdx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005b9d jb LBB27_74 - //0x00005ba3 LBB27_78 - 0x49, 0x8b, 0x0e, //0x00005ba3 movq (%r14), %rcx - 0x49, 0x89, 0x08, //0x00005ba6 movq %rcx, (%r8) - 0x49, 0x83, 0xc6, 0x08, //0x00005ba9 addq $8, %r14 - 0x49, 0x83, 0xc0, 0x08, //0x00005bad addq $8, %r8 - 0x48, 0x83, 0xc2, 0xf8, //0x00005bb1 addq $-8, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x00005bb5 cmpq $4, %rdx - 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00005bb9 jge LBB27_79 - //0x00005bbf LBB27_75 - 0x48, 0x83, 0xfa, 0x02, //0x00005bbf cmpq $2, %rdx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005bc3 jb LBB27_76 - //0x00005bc9 LBB27_80 - 0x41, 0x0f, 0xb7, 0x0e, //0x00005bc9 movzwl (%r14), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00005bcd movw %cx, (%r8) - 0x49, 0x83, 0xc6, 0x02, //0x00005bd1 addq $2, %r14 - 0x49, 0x83, 0xc0, 0x02, //0x00005bd5 addq $2, %r8 - 0x48, 0x83, 0xc2, 0xfe, //0x00005bd9 addq $-2, %rdx - 0x4c, 0x89, 0xf1, //0x00005bdd movq %r14, %rcx - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005be0 leaq $32(%rsp), %r14 - 0x48, 0x85, 0xd2, //0x00005be5 testq %rdx, %rdx - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005be8 je LBB27_58 - //0x00005bee LBB27_81 - 0x8a, 0x09, //0x00005bee movb (%rcx), %cl - 0x41, 0x88, 0x08, //0x00005bf0 movb %cl, (%r8) - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005bf3 leaq $32(%rsp), %r14 - //0x00005bf8 LBB27_58 - 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005bf8 vmovdqu (%r14), %xmm2 - 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005bfd vmovdqu $16(%r14), %xmm5 - 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005c03 vmovdqu $32(%r14), %xmm7 - 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005c09 vmovdqu $48(%r14), %xmm6 - 0xc5, 0xa9, 0x74, 0xc2, //0x00005c0f vpcmpeqb %xmm2, %xmm10, %xmm0 - 0xc5, 0x79, 0xd7, 0xe8, //0x00005c13 vpmovmskb %xmm0, %r13d - 0xc5, 0xa9, 0x74, 0xc5, //0x00005c17 vpcmpeqb %xmm5, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005c1b vpmovmskb %xmm0, %ecx - 0xc5, 0xa9, 0x74, 0xc7, //0x00005c1f vpcmpeqb %xmm7, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005c23 vpmovmskb %xmm0, %edx - 0xc5, 0xa9, 0x74, 0xc6, //0x00005c27 vpcmpeqb %xmm6, %xmm10, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00005c2b vpmovmskb %xmm0, %r9d - 0x49, 0xc1, 0xe1, 0x30, //0x00005c2f shlq $48, %r9 - 0x48, 0xc1, 0xe2, 0x20, //0x00005c33 shlq $32, %rdx - 0x48, 0xc1, 0xe1, 0x10, //0x00005c37 shlq $16, %rcx - 0x49, 0x09, 0xcd, //0x00005c3b orq %rcx, %r13 - 0x49, 0x09, 0xd5, //0x00005c3e orq %rdx, %r13 - 0x4d, 0x09, 0xcd, //0x00005c41 orq %r9, %r13 - 0xc5, 0xe9, 0x74, 0xc1, //0x00005c44 vpcmpeqb %xmm1, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005c48 vpmovmskb %xmm0, %ecx - 0xc5, 0xd1, 0x74, 0xc1, //0x00005c4c vpcmpeqb %xmm1, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005c50 vpmovmskb %xmm0, %edx - 0xc5, 0xc1, 0x74, 0xc1, //0x00005c54 vpcmpeqb %xmm1, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00005c58 vpmovmskb %xmm0, %r9d - 0xc5, 0xc9, 0x74, 0xc1, //0x00005c5c vpcmpeqb %xmm1, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00005c60 vpmovmskb %xmm0, %r10d - 0x49, 0xc1, 0xe2, 0x30, //0x00005c64 shlq $48, %r10 - 0x49, 0xc1, 0xe1, 0x20, //0x00005c68 shlq $32, %r9 - 0x48, 0xc1, 0xe2, 0x10, //0x00005c6c shlq $16, %rdx - 0x48, 0x09, 0xd1, //0x00005c70 orq %rdx, %rcx - 0x4c, 0x09, 0xc9, //0x00005c73 orq %r9, %rcx - 0x4c, 0x09, 0xd1, //0x00005c76 orq %r10, %rcx - 0x48, 0x89, 0xca, //0x00005c79 movq %rcx, %rdx - 0x48, 0x09, 0xda, //0x00005c7c orq %rbx, %rdx - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005c7f je LBB27_60 - 0x48, 0x89, 0xda, //0x00005c85 movq %rbx, %rdx - 0x48, 0xf7, 0xd2, //0x00005c88 notq %rdx - 0x48, 0x21, 0xca, //0x00005c8b andq %rcx, %rdx - 0x4c, 0x8d, 0x0c, 0x12, //0x00005c8e leaq (%rdx,%rdx), %r9 - 0x49, 0x09, 0xd9, //0x00005c92 orq %rbx, %r9 - 0x4d, 0x89, 0xca, //0x00005c95 movq %r9, %r10 - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c98 movabsq $-6148914691236517206, %rbx - 0x49, 0x31, 0xda, //0x00005ca2 xorq %rbx, %r10 - 0x48, 0x21, 0xd9, //0x00005ca5 andq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x00005ca8 andq %r10, %rcx - 0x31, 0xdb, //0x00005cab xorl %ebx, %ebx - 0x48, 0x01, 0xd1, //0x00005cad addq %rdx, %rcx - 0x0f, 0x92, 0xc3, //0x00005cb0 setb %bl - 0x48, 0x01, 0xc9, //0x00005cb3 addq %rcx, %rcx - 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005cb6 movabsq $6148914691236517205, %rdx - 0x48, 0x31, 0xd1, //0x00005cc0 xorq %rdx, %rcx - 0x4c, 0x21, 0xc9, //0x00005cc3 andq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x00005cc6 notq %rcx - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00005cc9 jmp LBB27_61 - //0x00005cce LBB27_60 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005cce movq $-1, %rcx - 0x31, 0xdb, //0x00005cd5 xorl %ebx, %ebx - //0x00005cd7 LBB27_61 - 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00005cd7 movq %rbx, $24(%rsp) - 0x4c, 0x21, 0xe9, //0x00005cdc andq %r13, %rcx - 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005cdf vmovq %rcx, %xmm0 - 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00005ce4 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 - 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00005cea vmovq %xmm0, %r13 - 0x4d, 0x31, 0xe5, //0x00005cef xorq %r12, %r13 - 0xc5, 0xe9, 0x74, 0xc3, //0x00005cf2 vpcmpeqb %xmm3, %xmm2, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00005cf6 vpmovmskb %xmm0, %r10d - 0xc5, 0xd1, 0x74, 0xc3, //0x00005cfa vpcmpeqb %xmm3, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005cfe vpmovmskb %xmm0, %ecx - 0xc5, 0xc1, 0x74, 0xc3, //0x00005d02 vpcmpeqb %xmm3, %xmm7, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005d06 vpmovmskb %xmm0, %edx - 0xc5, 0xc9, 0x74, 0xc3, //0x00005d0a vpcmpeqb %xmm3, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00005d0e vpmovmskb %xmm0, %r9d - 0x49, 0xc1, 0xe1, 0x30, //0x00005d12 shlq $48, %r9 - 0x48, 0xc1, 0xe2, 0x20, //0x00005d16 shlq $32, %rdx - 0x48, 0xc1, 0xe1, 0x10, //0x00005d1a shlq $16, %rcx - 0x49, 0x09, 0xca, //0x00005d1e orq %rcx, %r10 - 0x49, 0x09, 0xd2, //0x00005d21 orq %rdx, %r10 - 0x4d, 0x09, 0xca, //0x00005d24 orq %r9, %r10 - 0x4d, 0x89, 0xe9, //0x00005d27 movq %r13, %r9 - 0x49, 0xf7, 0xd1, //0x00005d2a notq %r9 - 0x4d, 0x21, 0xca, //0x00005d2d andq %r9, %r10 - 0xc5, 0xe9, 0x74, 0xc4, //0x00005d30 vpcmpeqb %xmm4, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005d34 vpmovmskb %xmm0, %ecx - 0xc5, 0xd1, 0x74, 0xc4, //0x00005d38 vpcmpeqb %xmm4, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005d3c vpmovmskb %xmm0, %edx - 0xc5, 0xc1, 0x74, 0xc4, //0x00005d40 vpcmpeqb %xmm4, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x00005d44 vpmovmskb %xmm0, %r8d - 0xc5, 0xc9, 0x74, 0xc4, //0x00005d48 vpcmpeqb %xmm4, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xe0, //0x00005d4c vpmovmskb %xmm0, %r12d - 0x49, 0xc1, 0xe4, 0x30, //0x00005d50 shlq $48, %r12 - 0x49, 0xc1, 0xe0, 0x20, //0x00005d54 shlq $32, %r8 - 0x48, 0xc1, 0xe2, 0x10, //0x00005d58 shlq $16, %rdx - 0x48, 0x09, 0xd1, //0x00005d5c orq %rdx, %rcx - 0x4c, 0x09, 0xc1, //0x00005d5f orq %r8, %rcx - 0x4c, 0x09, 0xe1, //0x00005d62 orq %r12, %rcx - 0x4c, 0x21, 0xc9, //0x00005d65 andq %r9, %rcx - 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00005d68 je LBB27_65 - 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00005d6e movq $16(%rsp), %r8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005d73 .p2align 4, 0x90 - //0x00005d80 LBB27_63 - 0x48, 0x8d, 0x59, 0xff, //0x00005d80 leaq $-1(%rcx), %rbx - 0x48, 0x89, 0xda, //0x00005d84 movq %rbx, %rdx - 0x4c, 0x21, 0xd2, //0x00005d87 andq %r10, %rdx - 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00005d8a popcntq %rdx, %rdx - 0x4c, 0x01, 0xc2, //0x00005d8f addq %r8, %rdx - 0x4c, 0x39, 0xfa, //0x00005d92 cmpq %r15, %rdx - 0x0f, 0x86, 0xe0, 0x03, 0x00, 0x00, //0x00005d95 jbe LBB27_109 - 0x49, 0xff, 0xc7, //0x00005d9b incq %r15 - 0x48, 0x21, 0xd9, //0x00005d9e andq %rbx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00005da1 jne LBB27_63 - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00005da7 jmp LBB27_66 - //0x00005dac LBB27_65 - 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00005dac movq $16(%rsp), %r8 - //0x00005db1 LBB27_66 - 0x49, 0xc1, 0xfd, 0x3f, //0x00005db1 sarq $63, %r13 - 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00005db5 popcntq %r10, %rcx - 0x49, 0x01, 0xc8, //0x00005dba addq %rcx, %r8 - 0x49, 0x83, 0xc6, 0x40, //0x00005dbd addq $64, %r14 - 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005dc1 movq $8(%rsp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00005dc6 addq $-64, %rcx - 0x4d, 0x89, 0xec, //0x00005dca movq %r13, %r12 - 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00005dcd movq $24(%rsp), %rbx - 0x48, 0x83, 0xf9, 0x40, //0x00005dd2 cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005dd6 movq %rcx, $8(%rsp) - 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005ddb movq %r8, $16(%rsp) - 0x0f, 0x8d, 0x12, 0xfe, 0xff, 0xff, //0x00005de0 jge LBB27_58 - 0xe9, 0xda, 0xfc, 0xff, 0xff, //0x00005de6 jmp LBB27_67 - //0x00005deb LBB27_82 - 0x49, 0x8d, 0x4b, 0x05, //0x00005deb leaq $5(%r11), %rcx - 0x48, 0x3b, 0x4f, 0x08, //0x00005def cmpq $8(%rdi), %rcx - 0x0f, 0x87, 0x35, 0xfb, 0xff, 0xff, //0x00005df3 ja LBB27_45 - //0x00005df9 LBB27_83 - 0x48, 0x89, 0x0e, //0x00005df9 movq %rcx, (%rsi) - 0xe9, 0x2a, 0xfb, 0xff, 0xff, //0x00005dfc jmp LBB27_44 - //0x00005e01 LBB27_84 - 0x48, 0x8b, 0x4f, 0x08, //0x00005e01 movq $8(%rdi), %rcx - 0x48, 0x29, 0xd9, //0x00005e05 subq %rbx, %rcx - 0x49, 0x01, 0xde, //0x00005e08 addq %rbx, %r14 - 0x45, 0x31, 0xe4, //0x00005e0b xorl %r12d, %r12d - 0xc5, 0x79, 0x6f, 0x15, 0x3a, 0xf8, 0xff, 0xff, //0x00005e0e vmovdqa $-1990(%rip), %xmm10 /* LCPI27_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x42, 0xf8, 0xff, 0xff, //0x00005e16 vmovdqa $-1982(%rip), %xmm1 /* LCPI27_4+0(%rip) */ - 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005e1e vpcmpeqd %xmm9, %xmm9, %xmm9 - 0xc5, 0xf9, 0x6f, 0x1d, 0x45, 0xf8, 0xff, 0xff, //0x00005e23 vmovdqa $-1979(%rip), %xmm3 /* LCPI27_5+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x0d, 0xf8, 0xff, 0xff, //0x00005e2b vmovdqa $-2035(%rip), %xmm4 /* LCPI27_2+0(%rip) */ - 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005e33 vxorps %xmm8, %xmm8, %xmm8 - 0x31, 0xdb, //0x00005e38 xorl %ebx, %ebx - 0x45, 0x31, 0xc0, //0x00005e3a xorl %r8d, %r8d - 0x45, 0x31, 0xff, //0x00005e3d xorl %r15d, %r15d - 0x48, 0x83, 0xf9, 0x40, //0x00005e40 cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00005e44 movq %rcx, $8(%rsp) - 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00005e49 movq %r8, $16(%rsp) - 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x00005e4e jge LBB27_85 - //0x00005e54 LBB27_94 - 0x48, 0x85, 0xc9, //0x00005e54 testq %rcx, %rcx - 0x0f, 0x8e, 0xdc, 0x03, 0x00, 0x00, //0x00005e57 jle LBB27_118 - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005e5d vmovups %ymm8, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005e63 vmovups %ymm8, $32(%rsp) - 0x44, 0x89, 0xf1, //0x00005e69 movl %r14d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005e6c andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005e72 cmpl $4033, %ecx - 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00005e78 jb LBB27_85 - 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005e7e cmpq $32, $8(%rsp) - 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00005e84 jb LBB27_98 - 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005e8a vmovups (%r14), %xmm0 - 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005e8f vmovups %xmm0, $32(%rsp) - 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005e95 vmovdqu $16(%r14), %xmm0 - 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005e9b vmovdqu %xmm0, $48(%rsp) - 0x49, 0x83, 0xc6, 0x20, //0x00005ea1 addq $32, %r14 - 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00005ea5 movq $8(%rsp), %rcx - 0x48, 0x8d, 0x51, 0xe0, //0x00005eaa leaq $-32(%rcx), %rdx - 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00005eae leaq $64(%rsp), %r8 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005eb3 jmp LBB27_99 - //0x00005eb8 LBB27_98 - 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00005eb8 leaq $32(%rsp), %r8 - 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005ebd movq $8(%rsp), %rdx - //0x00005ec2 LBB27_99 - 0x48, 0x83, 0xfa, 0x10, //0x00005ec2 cmpq $16, %rdx - 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005ec6 jb LBB27_100 - 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005ecc vmovdqu (%r14), %xmm0 - 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00005ed1 vmovdqu %xmm0, (%r8) - 0x49, 0x83, 0xc6, 0x10, //0x00005ed6 addq $16, %r14 - 0x49, 0x83, 0xc0, 0x10, //0x00005eda addq $16, %r8 - 0x48, 0x83, 0xc2, 0xf0, //0x00005ede addq $-16, %rdx - 0x48, 0x83, 0xfa, 0x08, //0x00005ee2 cmpq $8, %rdx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005ee6 jae LBB27_105 - //0x00005eec LBB27_101 - 0x48, 0x83, 0xfa, 0x04, //0x00005eec cmpq $4, %rdx - 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00005ef0 jl LBB27_102 - //0x00005ef6 LBB27_106 - 0x41, 0x8b, 0x0e, //0x00005ef6 movl (%r14), %ecx - 0x41, 0x89, 0x08, //0x00005ef9 movl %ecx, (%r8) - 0x49, 0x83, 0xc6, 0x04, //0x00005efc addq $4, %r14 - 0x49, 0x83, 0xc0, 0x04, //0x00005f00 addq $4, %r8 - 0x48, 0x83, 0xc2, 0xfc, //0x00005f04 addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00005f08 cmpq $2, %rdx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005f0c jae LBB27_107 - //0x00005f12 LBB27_103 - 0x4c, 0x89, 0xf1, //0x00005f12 movq %r14, %rcx - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f15 leaq $32(%rsp), %r14 - 0x48, 0x85, 0xd2, //0x00005f1a testq %rdx, %rdx - 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005f1d jne LBB27_108 - 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00005f23 jmp LBB27_85 - //0x00005f28 LBB27_100 - 0x48, 0x83, 0xfa, 0x08, //0x00005f28 cmpq $8, %rdx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005f2c jb LBB27_101 - //0x00005f32 LBB27_105 - 0x49, 0x8b, 0x0e, //0x00005f32 movq (%r14), %rcx - 0x49, 0x89, 0x08, //0x00005f35 movq %rcx, (%r8) - 0x49, 0x83, 0xc6, 0x08, //0x00005f38 addq $8, %r14 - 0x49, 0x83, 0xc0, 0x08, //0x00005f3c addq $8, %r8 - 0x48, 0x83, 0xc2, 0xf8, //0x00005f40 addq $-8, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x00005f44 cmpq $4, %rdx - 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00005f48 jge LBB27_106 - //0x00005f4e LBB27_102 - 0x48, 0x83, 0xfa, 0x02, //0x00005f4e cmpq $2, %rdx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005f52 jb LBB27_103 - //0x00005f58 LBB27_107 - 0x41, 0x0f, 0xb7, 0x0e, //0x00005f58 movzwl (%r14), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00005f5c movw %cx, (%r8) - 0x49, 0x83, 0xc6, 0x02, //0x00005f60 addq $2, %r14 - 0x49, 0x83, 0xc0, 0x02, //0x00005f64 addq $2, %r8 - 0x48, 0x83, 0xc2, 0xfe, //0x00005f68 addq $-2, %rdx - 0x4c, 0x89, 0xf1, //0x00005f6c movq %r14, %rcx - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f6f leaq $32(%rsp), %r14 - 0x48, 0x85, 0xd2, //0x00005f74 testq %rdx, %rdx - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005f77 je LBB27_85 - //0x00005f7d LBB27_108 - 0x8a, 0x09, //0x00005f7d movb (%rcx), %cl - 0x41, 0x88, 0x08, //0x00005f7f movb %cl, (%r8) - 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005f82 leaq $32(%rsp), %r14 - //0x00005f87 LBB27_85 - 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005f87 vmovdqu (%r14), %xmm2 - 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005f8c vmovdqu $16(%r14), %xmm5 - 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005f92 vmovdqu $32(%r14), %xmm7 - 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005f98 vmovdqu $48(%r14), %xmm6 - 0xc5, 0xa9, 0x74, 0xc2, //0x00005f9e vpcmpeqb %xmm2, %xmm10, %xmm0 - 0xc5, 0x79, 0xd7, 0xe8, //0x00005fa2 vpmovmskb %xmm0, %r13d - 0xc5, 0xa9, 0x74, 0xc5, //0x00005fa6 vpcmpeqb %xmm5, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005faa vpmovmskb %xmm0, %ecx - 0xc5, 0xa9, 0x74, 0xc7, //0x00005fae vpcmpeqb %xmm7, %xmm10, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fb2 vpmovmskb %xmm0, %edx - 0xc5, 0xa9, 0x74, 0xc6, //0x00005fb6 vpcmpeqb %xmm6, %xmm10, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00005fba vpmovmskb %xmm0, %r9d - 0x49, 0xc1, 0xe1, 0x30, //0x00005fbe shlq $48, %r9 - 0x48, 0xc1, 0xe2, 0x20, //0x00005fc2 shlq $32, %rdx - 0x48, 0xc1, 0xe1, 0x10, //0x00005fc6 shlq $16, %rcx - 0x49, 0x09, 0xcd, //0x00005fca orq %rcx, %r13 - 0x49, 0x09, 0xd5, //0x00005fcd orq %rdx, %r13 - 0x4d, 0x09, 0xcd, //0x00005fd0 orq %r9, %r13 - 0xc5, 0xe9, 0x74, 0xc1, //0x00005fd3 vpcmpeqb %xmm1, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005fd7 vpmovmskb %xmm0, %ecx - 0xc5, 0xd1, 0x74, 0xc1, //0x00005fdb vpcmpeqb %xmm1, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fdf vpmovmskb %xmm0, %edx - 0xc5, 0xc1, 0x74, 0xc1, //0x00005fe3 vpcmpeqb %xmm1, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x00005fe7 vpmovmskb %xmm0, %r9d - 0xc5, 0xc9, 0x74, 0xc1, //0x00005feb vpcmpeqb %xmm1, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00005fef vpmovmskb %xmm0, %r10d - 0x49, 0xc1, 0xe2, 0x30, //0x00005ff3 shlq $48, %r10 - 0x49, 0xc1, 0xe1, 0x20, //0x00005ff7 shlq $32, %r9 - 0x48, 0xc1, 0xe2, 0x10, //0x00005ffb shlq $16, %rdx - 0x48, 0x09, 0xd1, //0x00005fff orq %rdx, %rcx - 0x4c, 0x09, 0xc9, //0x00006002 orq %r9, %rcx - 0x4c, 0x09, 0xd1, //0x00006005 orq %r10, %rcx - 0x48, 0x89, 0xca, //0x00006008 movq %rcx, %rdx - 0x48, 0x09, 0xda, //0x0000600b orq %rbx, %rdx - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x0000600e je LBB27_87 - 0x48, 0x89, 0xda, //0x00006014 movq %rbx, %rdx - 0x48, 0xf7, 0xd2, //0x00006017 notq %rdx - 0x48, 0x21, 0xca, //0x0000601a andq %rcx, %rdx - 0x4c, 0x8d, 0x0c, 0x12, //0x0000601d leaq (%rdx,%rdx), %r9 - 0x49, 0x09, 0xd9, //0x00006021 orq %rbx, %r9 - 0x4d, 0x89, 0xca, //0x00006024 movq %r9, %r10 - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006027 movabsq $-6148914691236517206, %rbx - 0x49, 0x31, 0xda, //0x00006031 xorq %rbx, %r10 - 0x48, 0x21, 0xd9, //0x00006034 andq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x00006037 andq %r10, %rcx - 0x31, 0xdb, //0x0000603a xorl %ebx, %ebx - 0x48, 0x01, 0xd1, //0x0000603c addq %rdx, %rcx - 0x0f, 0x92, 0xc3, //0x0000603f setb %bl - 0x48, 0x01, 0xc9, //0x00006042 addq %rcx, %rcx - 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006045 movabsq $6148914691236517205, %rdx - 0x48, 0x31, 0xd1, //0x0000604f xorq %rdx, %rcx - 0x4c, 0x21, 0xc9, //0x00006052 andq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x00006055 notq %rcx - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00006058 jmp LBB27_88 - //0x0000605d LBB27_87 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000605d movq $-1, %rcx - 0x31, 0xdb, //0x00006064 xorl %ebx, %ebx - //0x00006066 LBB27_88 - 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00006066 movq %rbx, $24(%rsp) - 0x4c, 0x21, 0xe9, //0x0000606b andq %r13, %rcx - 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x0000606e vmovq %rcx, %xmm0 - 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00006073 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 - 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00006079 vmovq %xmm0, %r13 - 0x4d, 0x31, 0xe5, //0x0000607e xorq %r12, %r13 - 0xc5, 0xe9, 0x74, 0xc3, //0x00006081 vpcmpeqb %xmm3, %xmm2, %xmm0 - 0xc5, 0x79, 0xd7, 0xd0, //0x00006085 vpmovmskb %xmm0, %r10d - 0xc5, 0xd1, 0x74, 0xc3, //0x00006089 vpcmpeqb %xmm3, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x0000608d vpmovmskb %xmm0, %ecx - 0xc5, 0xc1, 0x74, 0xc3, //0x00006091 vpcmpeqb %xmm3, %xmm7, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00006095 vpmovmskb %xmm0, %edx - 0xc5, 0xc9, 0x74, 0xc3, //0x00006099 vpcmpeqb %xmm3, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xc8, //0x0000609d vpmovmskb %xmm0, %r9d - 0x49, 0xc1, 0xe1, 0x30, //0x000060a1 shlq $48, %r9 - 0x48, 0xc1, 0xe2, 0x20, //0x000060a5 shlq $32, %rdx - 0x48, 0xc1, 0xe1, 0x10, //0x000060a9 shlq $16, %rcx - 0x49, 0x09, 0xca, //0x000060ad orq %rcx, %r10 - 0x49, 0x09, 0xd2, //0x000060b0 orq %rdx, %r10 - 0x4d, 0x09, 0xca, //0x000060b3 orq %r9, %r10 - 0x4d, 0x89, 0xe9, //0x000060b6 movq %r13, %r9 - 0x49, 0xf7, 0xd1, //0x000060b9 notq %r9 - 0x4d, 0x21, 0xca, //0x000060bc andq %r9, %r10 - 0xc5, 0xe9, 0x74, 0xc4, //0x000060bf vpcmpeqb %xmm4, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x000060c3 vpmovmskb %xmm0, %ecx - 0xc5, 0xd1, 0x74, 0xc4, //0x000060c7 vpcmpeqb %xmm4, %xmm5, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x000060cb vpmovmskb %xmm0, %edx - 0xc5, 0xc1, 0x74, 0xc4, //0x000060cf vpcmpeqb %xmm4, %xmm7, %xmm0 - 0xc5, 0x79, 0xd7, 0xc0, //0x000060d3 vpmovmskb %xmm0, %r8d - 0xc5, 0xc9, 0x74, 0xc4, //0x000060d7 vpcmpeqb %xmm4, %xmm6, %xmm0 - 0xc5, 0x79, 0xd7, 0xe0, //0x000060db vpmovmskb %xmm0, %r12d - 0x49, 0xc1, 0xe4, 0x30, //0x000060df shlq $48, %r12 - 0x49, 0xc1, 0xe0, 0x20, //0x000060e3 shlq $32, %r8 - 0x48, 0xc1, 0xe2, 0x10, //0x000060e7 shlq $16, %rdx - 0x48, 0x09, 0xd1, //0x000060eb orq %rdx, %rcx - 0x4c, 0x09, 0xc1, //0x000060ee orq %r8, %rcx - 0x4c, 0x09, 0xe1, //0x000060f1 orq %r12, %rcx - 0x4c, 0x21, 0xc9, //0x000060f4 andq %r9, %rcx - 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x000060f7 je LBB27_92 - 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x000060fd movq $16(%rsp), %r8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006102 .p2align 4, 0x90 - //0x00006110 LBB27_90 - 0x48, 0x8d, 0x59, 0xff, //0x00006110 leaq $-1(%rcx), %rbx - 0x48, 0x89, 0xda, //0x00006114 movq %rbx, %rdx - 0x4c, 0x21, 0xd2, //0x00006117 andq %r10, %rdx - 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x0000611a popcntq %rdx, %rdx - 0x4c, 0x01, 0xc2, //0x0000611f addq %r8, %rdx - 0x4c, 0x39, 0xfa, //0x00006122 cmpq %r15, %rdx - 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006125 jbe LBB27_109 - 0x49, 0xff, 0xc7, //0x0000612b incq %r15 - 0x48, 0x21, 0xd9, //0x0000612e andq %rbx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00006131 jne LBB27_90 - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00006137 jmp LBB27_93 - //0x0000613c LBB27_92 - 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x0000613c movq $16(%rsp), %r8 - //0x00006141 LBB27_93 - 0x49, 0xc1, 0xfd, 0x3f, //0x00006141 sarq $63, %r13 - 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00006145 popcntq %r10, %rcx - 0x49, 0x01, 0xc8, //0x0000614a addq %rcx, %r8 - 0x49, 0x83, 0xc6, 0x40, //0x0000614d addq $64, %r14 - 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00006151 movq $8(%rsp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00006156 addq $-64, %rcx - 0x4d, 0x89, 0xec, //0x0000615a movq %r13, %r12 - 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x0000615d movq $24(%rsp), %rbx - 0x48, 0x83, 0xf9, 0x40, //0x00006162 cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00006166 movq %rcx, $8(%rsp) - 0x4c, 0x89, 0x44, 0x24, 0x10, //0x0000616b movq %r8, $16(%rsp) - 0x0f, 0x8d, 0x11, 0xfe, 0xff, 0xff, //0x00006170 jge LBB27_85 - 0xe9, 0xd9, 0xfc, 0xff, 0xff, //0x00006176 jmp LBB27_94 - //0x0000617b LBB27_109 - 0x48, 0x8b, 0x47, 0x08, //0x0000617b movq $8(%rdi), %rax - 0x48, 0x0f, 0xbc, 0xc9, //0x0000617f bsfq %rcx, %rcx - 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x00006183 subq $8(%rsp), %rcx - 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006188 leaq $1(%rcx,%rax), %rax - 0x48, 0x89, 0x06, //0x0000618d movq %rax, (%rsi) - 0x48, 0x8b, 0x4f, 0x08, //0x00006190 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc8, //0x00006194 cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x00006197 cmovaq %rcx, %rax - 0x48, 0x89, 0x06, //0x0000619b movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000619e movq $-1, %rax - 0x4c, 0x0f, 0x47, 0xd8, //0x000061a5 cmovaq %rax, %r11 - 0xe9, 0x7d, 0xf7, 0xff, 0xff, //0x000061a9 jmp LBB27_44 - //0x000061ae LBB27_54 - 0x4d, 0x85, 0xe4, //0x000061ae testq %r12, %r12 - 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x000061b1 jne LBB27_119 - 0x4b, 0x8d, 0x5c, 0x17, 0x01, //0x000061b7 leaq $1(%r15,%r10), %rbx - 0x49, 0xf7, 0xd7, //0x000061bc notq %r15 - 0x4d, 0x01, 0xc7, //0x000061bf addq %r8, %r15 - //0x000061c2 LBB27_56 - 0x4d, 0x85, 0xff, //0x000061c2 testq %r15, %r15 - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x000061c5 jg LBB27_113 - 0xe9, 0x5e, 0xf7, 0xff, 0xff, //0x000061cb jmp LBB27_45 - //0x000061d0 LBB27_111 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000061d0 movq $-2, %rcx - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000061d7 movl $2, %eax - 0x48, 0x01, 0xc3, //0x000061dc addq %rax, %rbx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061df movq $-1, %rax - 0x49, 0x01, 0xcf, //0x000061e6 addq %rcx, %r15 - 0x0f, 0x8e, 0x3f, 0xf7, 0xff, 0xff, //0x000061e9 jle LBB27_45 - //0x000061ef LBB27_113 - 0x0f, 0xb6, 0x03, //0x000061ef movzbl (%rbx), %eax - 0x3c, 0x5c, //0x000061f2 cmpb $92, %al - 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x000061f4 je LBB27_111 - 0x3c, 0x22, //0x000061fa cmpb $34, %al - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000061fc je LBB27_116 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006202 movq $-1, %rcx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006209 movl $1, %eax - 0x48, 0x01, 0xc3, //0x0000620e addq %rax, %rbx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006211 movq $-1, %rax - 0x49, 0x01, 0xcf, //0x00006218 addq %rcx, %r15 - 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000621b jg LBB27_113 - 0xe9, 0x08, 0xf7, 0xff, 0xff, //0x00006221 jmp LBB27_45 - //0x00006226 LBB27_116 - 0x4c, 0x29, 0xf3, //0x00006226 subq %r14, %rbx - 0x48, 0xff, 0xc3, //0x00006229 incq %rbx - 0xe9, 0xf7, 0xf6, 0xff, 0xff, //0x0000622c jmp LBB27_43 - //0x00006231 LBB27_117 - 0x4c, 0x01, 0xf3, //0x00006231 addq %r14, %rbx - 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00006234 jmp LBB27_56 - //0x00006239 LBB27_118 - 0x48, 0x8b, 0x4f, 0x08, //0x00006239 movq $8(%rdi), %rcx - 0x48, 0x89, 0x0e, //0x0000623d movq %rcx, (%rsi) - 0xe9, 0xe9, 0xf6, 0xff, 0xff, //0x00006240 jmp LBB27_45 - //0x00006245 LBB27_119 - 0x49, 0x8d, 0x48, 0xff, //0x00006245 leaq $-1(%r8), %rcx - 0x4c, 0x39, 0xf9, //0x00006249 cmpq %r15, %rcx - 0x0f, 0x84, 0xdc, 0xf6, 0xff, 0xff, //0x0000624c je LBB27_45 - 0x4b, 0x8d, 0x5c, 0x17, 0x02, //0x00006252 leaq $2(%r15,%r10), %rbx - 0x4d, 0x29, 0xf8, //0x00006257 subq %r15, %r8 - 0x49, 0x83, 0xc0, 0xfe, //0x0000625a addq $-2, %r8 - 0x4d, 0x89, 0xc7, //0x0000625e movq %r8, %r15 - 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00006261 jmp LBB27_56 - 0x90, 0x90, //0x00006266 .p2align 2, 0x90 - // // .set L27_0_set_45, LBB27_45-LJTI27_0 - // // .set L27_0_set_47, LBB27_47-LJTI27_0 - // // .set L27_0_set_48, LBB27_48-LJTI27_0 - // // .set L27_0_set_29, LBB27_29-LJTI27_0 - // // .set L27_0_set_57, LBB27_57-LJTI27_0 - // // .set L27_0_set_82, LBB27_82-LJTI27_0 - // // .set L27_0_set_46, LBB27_46-LJTI27_0 - // // .set L27_0_set_84, LBB27_84-LJTI27_0 - //0x00006268 LJTI27_0 - 0xc6, 0xf6, 0xff, 0xff, //0x00006268 .long L27_0_set_45 - 0xeb, 0xf6, 0xff, 0xff, //0x0000626c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006270 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006274 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006278 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000627c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006280 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006284 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006288 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000628c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006290 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006294 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006298 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000629c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062a0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062a4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062a8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062ac .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062b0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062b4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062b8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062bc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062c0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062c4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062c8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062cc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062d0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062d4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062d8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062dc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062e0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062e4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062e8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062ec .long L27_0_set_47 - 0xfa, 0xf6, 0xff, 0xff, //0x000062f0 .long L27_0_set_48 - 0xeb, 0xf6, 0xff, 0xff, //0x000062f4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062f8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000062fc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006300 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006304 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006308 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000630c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006310 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006314 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006318 .long L27_0_set_47 - 0xe3, 0xf5, 0xff, 0xff, //0x0000631c .long L27_0_set_29 - 0xeb, 0xf6, 0xff, 0xff, //0x00006320 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006324 .long L27_0_set_47 - 0xe3, 0xf5, 0xff, 0xff, //0x00006328 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x0000632c .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x00006330 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x00006334 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x00006338 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x0000633c .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x00006340 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x00006344 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x00006348 .long L27_0_set_29 - 0xe3, 0xf5, 0xff, 0xff, //0x0000634c .long L27_0_set_29 - 0xeb, 0xf6, 0xff, 0xff, //0x00006350 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006354 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006358 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000635c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006360 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006364 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006368 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000636c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006370 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006374 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006378 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000637c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006380 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006384 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006388 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000638c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006390 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006394 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006398 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000639c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063a0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063a4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063a8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063ac .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063b0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063b4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063b8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063bc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063c0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063c4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063c8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063cc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063d0 .long L27_0_set_47 - 0x0a, 0xf8, 0xff, 0xff, //0x000063d4 .long L27_0_set_57 - 0xeb, 0xf6, 0xff, 0xff, //0x000063d8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063dc .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063e0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063e4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063e8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063ec .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063f0 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063f4 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063f8 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x000063fc .long L27_0_set_47 - 0x83, 0xfb, 0xff, 0xff, //0x00006400 .long L27_0_set_82 - 0xeb, 0xf6, 0xff, 0xff, //0x00006404 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006408 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000640c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006410 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006414 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006418 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000641c .long L27_0_set_47 - 0xd8, 0xf6, 0xff, 0xff, //0x00006420 .long L27_0_set_46 - 0xeb, 0xf6, 0xff, 0xff, //0x00006424 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006428 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000642c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006430 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006434 .long L27_0_set_47 - 0xd8, 0xf6, 0xff, 0xff, //0x00006438 .long L27_0_set_46 - 0xeb, 0xf6, 0xff, 0xff, //0x0000643c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006440 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006444 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006448 .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x0000644c .long L27_0_set_47 - 0xeb, 0xf6, 0xff, 0xff, //0x00006450 .long L27_0_set_47 - 0x99, 0xfb, 0xff, 0xff, //0x00006454 .long L27_0_set_84 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006458 .p2align 4, 0x90 - //0x00006460 _get_by_path - 0x55, //0x00006460 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006461 movq %rsp, %rbp - 0x41, 0x57, //0x00006464 pushq %r15 - 0x41, 0x56, //0x00006466 pushq %r14 - 0x41, 0x55, //0x00006468 pushq %r13 - 0x41, 0x54, //0x0000646a pushq %r12 - 0x53, //0x0000646c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000646d subq $56, %rsp - 0x49, 0x89, 0xf7, //0x00006471 movq %rsi, %r15 - 0x49, 0x89, 0xfb, //0x00006474 movq %rdi, %r11 - 0x4c, 0x8b, 0x52, 0x08, //0x00006477 movq $8(%rdx), %r10 - 0x4d, 0x85, 0xd2, //0x0000647b testq %r10, %r10 - 0x0f, 0x84, 0x4c, 0x0f, 0x00, 0x00, //0x0000647e je LBB28_244 - 0x48, 0x8b, 0x02, //0x00006484 movq (%rdx), %rax - 0x49, 0xc1, 0xe2, 0x04, //0x00006487 shlq $4, %r10 - 0x48, 0x89, 0x45, 0xb8, //0x0000648b movq %rax, $-72(%rbp) - 0x49, 0x01, 0xc2, //0x0000648f addq %rax, %r10 - 0x4d, 0x8b, 0x0b, //0x00006492 movq (%r11), %r9 - 0x49, 0x8b, 0x17, //0x00006495 movq (%r15), %rdx - 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006498 movabsq $4294977024, %r12 - 0x4c, 0x89, 0x5d, 0xc0, //0x000064a2 movq %r11, $-64(%rbp) - 0x48, 0x89, 0x4d, 0xa0, //0x000064a6 movq %rcx, $-96(%rbp) - 0x4c, 0x89, 0x55, 0xa8, //0x000064aa movq %r10, $-88(%rbp) - //0x000064ae LBB28_2 - 0x4d, 0x8b, 0x43, 0x08, //0x000064ae movq $8(%r11), %r8 - 0x48, 0x89, 0xd7, //0x000064b2 movq %rdx, %rdi - 0x4c, 0x29, 0xc7, //0x000064b5 subq %r8, %rdi - 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000064b8 jae LBB28_7 - 0x41, 0x8a, 0x04, 0x11, //0x000064be movb (%r9,%rdx), %al - 0x3c, 0x0d, //0x000064c2 cmpb $13, %al - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000064c4 je LBB28_7 - 0x3c, 0x20, //0x000064ca cmpb $32, %al - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000064cc je LBB28_7 - 0x04, 0xf7, //0x000064d2 addb $-9, %al - 0x3c, 0x01, //0x000064d4 cmpb $1, %al - 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000064d6 jbe LBB28_7 - 0x48, 0x89, 0xd6, //0x000064dc movq %rdx, %rsi - 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000064df jmp LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000064e4 .p2align 4, 0x90 - //0x000064f0 LBB28_7 - 0x48, 0x8d, 0x72, 0x01, //0x000064f0 leaq $1(%rdx), %rsi - 0x4c, 0x39, 0xc6, //0x000064f4 cmpq %r8, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000064f7 jae LBB28_11 - 0x41, 0x8a, 0x04, 0x31, //0x000064fd movb (%r9,%rsi), %al - 0x3c, 0x0d, //0x00006501 cmpb $13, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006503 je LBB28_11 - 0x3c, 0x20, //0x00006509 cmpb $32, %al - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000650b je LBB28_11 - 0x04, 0xf7, //0x00006511 addb $-9, %al - 0x3c, 0x01, //0x00006513 cmpb $1, %al - 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006515 ja LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000651b .p2align 4, 0x90 - //0x00006520 LBB28_11 - 0x48, 0x8d, 0x72, 0x02, //0x00006520 leaq $2(%rdx), %rsi - 0x4c, 0x39, 0xc6, //0x00006524 cmpq %r8, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006527 jae LBB28_15 - 0x41, 0x8a, 0x04, 0x31, //0x0000652d movb (%r9,%rsi), %al - 0x3c, 0x0d, //0x00006531 cmpb $13, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006533 je LBB28_15 - 0x3c, 0x20, //0x00006539 cmpb $32, %al - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000653b je LBB28_15 - 0x04, 0xf7, //0x00006541 addb $-9, %al - 0x3c, 0x01, //0x00006543 cmpb $1, %al - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006545 ja LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000654b .p2align 4, 0x90 - //0x00006550 LBB28_15 - 0x48, 0x8d, 0x72, 0x03, //0x00006550 leaq $3(%rdx), %rsi - 0x4c, 0x39, 0xc6, //0x00006554 cmpq %r8, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006557 jae LBB28_19 - 0x41, 0x8a, 0x04, 0x31, //0x0000655d movb (%r9,%rsi), %al - 0x3c, 0x0d, //0x00006561 cmpb $13, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006563 je LBB28_19 - 0x3c, 0x20, //0x00006569 cmpb $32, %al - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000656b je LBB28_19 - 0x04, 0xf7, //0x00006571 addb $-9, %al - 0x3c, 0x01, //0x00006573 cmpb $1, %al - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006575 ja LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000657b .p2align 4, 0x90 - //0x00006580 LBB28_19 - 0x48, 0x8d, 0x42, 0x04, //0x00006580 leaq $4(%rdx), %rax - 0x49, 0x39, 0xc0, //0x00006584 cmpq %rax, %r8 - 0x0f, 0x86, 0x83, 0x00, 0x00, 0x00, //0x00006587 jbe LBB28_25 - 0x49, 0x39, 0xc0, //0x0000658d cmpq %rax, %r8 - 0x0f, 0x84, 0x94, 0x00, 0x00, 0x00, //0x00006590 je LBB28_26 - 0x4b, 0x8d, 0x04, 0x01, //0x00006596 leaq (%r9,%r8), %rax - 0x48, 0x83, 0xc7, 0x04, //0x0000659a addq $4, %rdi - 0x49, 0x8d, 0x74, 0x11, 0x05, //0x0000659e leaq $5(%r9,%rdx), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000065a3 .p2align 4, 0x90 - //0x000065b0 LBB28_22 - 0x0f, 0xbe, 0x5e, 0xff, //0x000065b0 movsbl $-1(%rsi), %ebx - 0x83, 0xfb, 0x20, //0x000065b4 cmpl $32, %ebx - 0x0f, 0x87, 0xfd, 0x0b, 0x00, 0x00, //0x000065b7 ja LBB28_29 - 0x49, 0x0f, 0xa3, 0xdc, //0x000065bd btq %rbx, %r12 - 0x0f, 0x83, 0xf3, 0x0b, 0x00, 0x00, //0x000065c1 jae LBB28_29 - 0x48, 0xff, 0xc6, //0x000065c7 incq %rsi - 0x48, 0xff, 0xc7, //0x000065ca incq %rdi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000065cd jne LBB28_22 - 0x4c, 0x29, 0xc8, //0x000065d3 subq %r9, %rax - 0x48, 0x89, 0xc6, //0x000065d6 movq %rax, %rsi - 0x4c, 0x39, 0xc6, //0x000065d9 cmpq %r8, %rsi - 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x000065dc jae LBB28_30 - //0x000065e2 LBB28_28 - 0x48, 0x8d, 0x46, 0x01, //0x000065e2 leaq $1(%rsi), %rax - 0x49, 0x89, 0x07, //0x000065e6 movq %rax, (%r15) - 0x41, 0x8a, 0x34, 0x31, //0x000065e9 movb (%r9,%rsi), %sil - 0x48, 0x8b, 0x55, 0xb8, //0x000065ed movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x000065f1 movq (%rdx), %rdx - 0x48, 0x85, 0xd2, //0x000065f4 testq %rdx, %rdx - 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000065f7 jne LBB28_31 - 0xe9, 0x29, 0x0e, 0x00, 0x00, //0x000065fd jmp LBB28_251 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006602 .p2align 4, 0x90 - //0x00006610 LBB28_25 - 0x49, 0x89, 0x07, //0x00006610 movq %rax, (%r15) - 0x31, 0xf6, //0x00006613 xorl %esi, %esi - 0x48, 0x8b, 0x55, 0xb8, //0x00006615 movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00006619 movq (%rdx), %rdx - 0x48, 0x85, 0xd2, //0x0000661c testq %rdx, %rdx - 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000661f jne LBB28_31 - 0xe9, 0x01, 0x0e, 0x00, 0x00, //0x00006625 jmp LBB28_251 - //0x0000662a LBB28_26 - 0x4c, 0x01, 0xc8, //0x0000662a addq %r9, %rax - 0x4c, 0x29, 0xc8, //0x0000662d subq %r9, %rax - 0x48, 0x89, 0xc6, //0x00006630 movq %rax, %rsi - 0x4c, 0x39, 0xc6, //0x00006633 cmpq %r8, %rsi - 0x0f, 0x82, 0xa6, 0xff, 0xff, 0xff, //0x00006636 jb LBB28_28 - //0x0000663c LBB28_30 - 0x31, 0xf6, //0x0000663c xorl %esi, %esi - 0x48, 0x89, 0xd0, //0x0000663e movq %rdx, %rax - 0x48, 0x8b, 0x55, 0xb8, //0x00006641 movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00006645 movq (%rdx), %rdx - 0x48, 0x85, 0xd2, //0x00006648 testq %rdx, %rdx - 0x0f, 0x84, 0xda, 0x0d, 0x00, 0x00, //0x0000664b je LBB28_251 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006651 .p2align 4, 0x90 - //0x00006660 LBB28_31 - 0x8a, 0x52, 0x17, //0x00006660 movb $23(%rdx), %dl - 0x80, 0xe2, 0x1f, //0x00006663 andb $31, %dl - 0x80, 0xfa, 0x02, //0x00006666 cmpb $2, %dl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006669 je LBB28_184 - 0x80, 0xfa, 0x18, //0x0000666f cmpb $24, %dl - 0x0f, 0x85, 0xb3, 0x0d, 0x00, 0x00, //0x00006672 jne LBB28_251 - 0x40, 0x80, 0xfe, 0x7b, //0x00006678 cmpb $123, %sil - 0x4c, 0x89, 0x7d, 0xd0, //0x0000667c movq %r15, $-48(%rbp) - 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x00006680 je LBB28_34 - 0xe9, 0x71, 0x0d, 0x00, 0x00, //0x00006686 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000668b .p2align 4, 0x90 - //0x00006690 LBB28_184 - 0x40, 0x80, 0xfe, 0x5b, //0x00006690 cmpb $91, %sil - 0x0f, 0x85, 0x62, 0x0d, 0x00, 0x00, //0x00006694 jne LBB28_247 - 0x48, 0x8b, 0x55, 0xb8, //0x0000669a movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x52, 0x08, //0x0000669e movq $8(%rdx), %rdx - 0x4c, 0x8b, 0x32, //0x000066a2 movq (%rdx), %r14 - 0x4d, 0x85, 0xf6, //0x000066a5 testq %r14, %r14 - 0x0f, 0x88, 0x7d, 0x0d, 0x00, 0x00, //0x000066a8 js LBB28_251 - 0x4d, 0x8b, 0x43, 0x08, //0x000066ae movq $8(%r11), %r8 - 0x48, 0x89, 0xc6, //0x000066b2 movq %rax, %rsi - 0x4c, 0x29, 0xc6, //0x000066b5 subq %r8, %rsi - 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000066b8 jae LBB28_191 - 0x41, 0x8a, 0x14, 0x01, //0x000066be movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x000066c2 cmpb $13, %dl - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000066c5 je LBB28_191 - 0x80, 0xfa, 0x20, //0x000066cb cmpb $32, %dl - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000066ce je LBB28_191 - 0x80, 0xc2, 0xf7, //0x000066d4 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000066d7 cmpb $1, %dl - 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x000066da jbe LBB28_191 - 0x48, 0x89, 0xc7, //0x000066e0 movq %rax, %rdi - 0xe9, 0x12, 0x0b, 0x00, 0x00, //0x000066e3 jmp LBB28_213 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066e8 .p2align 4, 0x90 - //0x000066f0 LBB28_191 - 0x48, 0x8d, 0x78, 0x01, //0x000066f0 leaq $1(%rax), %rdi - 0x4c, 0x39, 0xc7, //0x000066f4 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000066f7 jae LBB28_195 - 0x41, 0x8a, 0x14, 0x39, //0x000066fd movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00006701 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006704 je LBB28_195 - 0x80, 0xfa, 0x20, //0x0000670a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000670d je LBB28_195 - 0x80, 0xc2, 0xf7, //0x00006713 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006716 cmpb $1, %dl - 0x0f, 0x87, 0xdb, 0x0a, 0x00, 0x00, //0x00006719 ja LBB28_213 - 0x90, //0x0000671f .p2align 4, 0x90 - //0x00006720 LBB28_195 - 0x48, 0x8d, 0x78, 0x02, //0x00006720 leaq $2(%rax), %rdi - 0x4c, 0x39, 0xc7, //0x00006724 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006727 jae LBB28_199 - 0x41, 0x8a, 0x14, 0x39, //0x0000672d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00006731 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006734 je LBB28_199 - 0x80, 0xfa, 0x20, //0x0000673a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000673d je LBB28_199 - 0x80, 0xc2, 0xf7, //0x00006743 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006746 cmpb $1, %dl - 0x0f, 0x87, 0xab, 0x0a, 0x00, 0x00, //0x00006749 ja LBB28_213 - 0x90, //0x0000674f .p2align 4, 0x90 - //0x00006750 LBB28_199 - 0x48, 0x8d, 0x78, 0x03, //0x00006750 leaq $3(%rax), %rdi - 0x4c, 0x39, 0xc7, //0x00006754 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006757 jae LBB28_203 - 0x41, 0x8a, 0x14, 0x39, //0x0000675d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00006761 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006764 je LBB28_203 - 0x80, 0xfa, 0x20, //0x0000676a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000676d je LBB28_203 - 0x80, 0xc2, 0xf7, //0x00006773 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006776 cmpb $1, %dl - 0x0f, 0x87, 0x7b, 0x0a, 0x00, 0x00, //0x00006779 ja LBB28_213 - 0x90, //0x0000677f .p2align 4, 0x90 - //0x00006780 LBB28_203 - 0x48, 0x8d, 0x50, 0x04, //0x00006780 leaq $4(%rax), %rdx - 0x49, 0x39, 0xd0, //0x00006784 cmpq %rdx, %r8 - 0x0f, 0x86, 0x22, 0x0a, 0x00, 0x00, //0x00006787 jbe LBB28_209 - 0x49, 0x39, 0xd0, //0x0000678d cmpq %rdx, %r8 - 0x0f, 0x84, 0x3b, 0x0a, 0x00, 0x00, //0x00006790 je LBB28_210 - 0x4b, 0x8d, 0x14, 0x01, //0x00006796 leaq (%r9,%r8), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x0000679a addq $4, %rsi - 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000679e leaq $5(%r9,%rax), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067a3 .p2align 4, 0x90 - //0x000067b0 LBB28_206 - 0x0f, 0xbe, 0x4f, 0xff, //0x000067b0 movsbl $-1(%rdi), %ecx - 0x83, 0xf9, 0x20, //0x000067b4 cmpl $32, %ecx - 0x0f, 0x87, 0x2b, 0x0a, 0x00, 0x00, //0x000067b7 ja LBB28_212 - 0x49, 0x0f, 0xa3, 0xcc, //0x000067bd btq %rcx, %r12 - 0x0f, 0x83, 0x21, 0x0a, 0x00, 0x00, //0x000067c1 jae LBB28_212 - 0x48, 0xff, 0xc7, //0x000067c7 incq %rdi - 0x48, 0xff, 0xc6, //0x000067ca incq %rsi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000067cd jne LBB28_206 - 0xe9, 0xfc, 0x09, 0x00, 0x00, //0x000067d3 jmp LBB28_211 - //0x000067d8 LBB28_180 - 0x4c, 0x89, 0xca, //0x000067d8 movq %r9, %rdx - 0x48, 0xf7, 0xd2, //0x000067db notq %rdx - 0x48, 0x01, 0xd7, //0x000067de addq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x000067e1 cmpq %rcx, %rdi - 0x0f, 0x83, 0x12, 0x0c, 0x00, 0x00, //0x000067e4 jae LBB28_247 - //0x000067ea LBB28_181 - 0x48, 0x8d, 0x47, 0x01, //0x000067ea leaq $1(%rdi), %rax - 0x49, 0x89, 0x07, //0x000067ee movq %rax, (%r15) - 0x41, 0x8a, 0x0c, 0x39, //0x000067f1 movb (%r9,%rdi), %cl - 0x80, 0xf9, 0x2c, //0x000067f5 cmpb $44, %cl - 0x0f, 0x85, 0x42, 0x0c, 0x00, 0x00, //0x000067f8 jne LBB28_253 - //0x000067fe LBB28_34 - 0x49, 0x8b, 0x4b, 0x08, //0x000067fe movq $8(%r11), %rcx - 0x48, 0x89, 0xc6, //0x00006802 movq %rax, %rsi - 0x48, 0x29, 0xce, //0x00006805 subq %rcx, %rsi - 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x00006808 jae LBB28_39 - 0x41, 0x8a, 0x14, 0x01, //0x0000680e movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00006812 cmpb $13, %dl - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00006815 je LBB28_39 - 0x80, 0xfa, 0x20, //0x0000681b cmpb $32, %dl - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000681e je LBB28_39 - 0x80, 0xc2, 0xf7, //0x00006824 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006827 cmpb $1, %dl - 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x0000682a jbe LBB28_39 - 0x49, 0x89, 0xc5, //0x00006830 movq %rax, %r13 - 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00006833 jmp LBB28_60 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006838 .p2align 4, 0x90 - //0x00006840 LBB28_39 - 0x4c, 0x8d, 0x68, 0x01, //0x00006840 leaq $1(%rax), %r13 - 0x49, 0x39, 0xcd, //0x00006844 cmpq %rcx, %r13 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006847 jae LBB28_43 - 0x43, 0x8a, 0x14, 0x29, //0x0000684d movb (%r9,%r13), %dl - 0x80, 0xfa, 0x0d, //0x00006851 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006854 je LBB28_43 - 0x80, 0xfa, 0x20, //0x0000685a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000685d je LBB28_43 - 0x80, 0xc2, 0xf7, //0x00006863 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006866 cmpb $1, %dl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006869 ja LBB28_60 - 0x90, //0x0000686f .p2align 4, 0x90 - //0x00006870 LBB28_43 - 0x4c, 0x8d, 0x68, 0x02, //0x00006870 leaq $2(%rax), %r13 - 0x49, 0x39, 0xcd, //0x00006874 cmpq %rcx, %r13 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006877 jae LBB28_47 - 0x43, 0x8a, 0x14, 0x29, //0x0000687d movb (%r9,%r13), %dl - 0x80, 0xfa, 0x0d, //0x00006881 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006884 je LBB28_47 - 0x80, 0xfa, 0x20, //0x0000688a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000688d je LBB28_47 - 0x80, 0xc2, 0xf7, //0x00006893 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006896 cmpb $1, %dl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006899 ja LBB28_60 - 0x90, //0x0000689f .p2align 4, 0x90 - //0x000068a0 LBB28_47 - 0x4c, 0x8d, 0x68, 0x03, //0x000068a0 leaq $3(%rax), %r13 - 0x49, 0x39, 0xcd, //0x000068a4 cmpq %rcx, %r13 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000068a7 jae LBB28_51 - 0x43, 0x8a, 0x14, 0x29, //0x000068ad movb (%r9,%r13), %dl - 0x80, 0xfa, 0x0d, //0x000068b1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000068b4 je LBB28_51 - 0x80, 0xfa, 0x20, //0x000068ba cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000068bd je LBB28_51 - 0x80, 0xc2, 0xf7, //0x000068c3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000068c6 cmpb $1, %dl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000068c9 ja LBB28_60 - 0x90, //0x000068cf .p2align 4, 0x90 - //0x000068d0 LBB28_51 - 0x48, 0x8d, 0x50, 0x04, //0x000068d0 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd1, //0x000068d4 cmpq %rdx, %rcx - 0x0f, 0x86, 0x19, 0x0b, 0x00, 0x00, //0x000068d7 jbe LBB28_245 - 0x48, 0x39, 0xd1, //0x000068dd cmpq %rdx, %rcx - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000068e0 je LBB28_57 - 0x49, 0x8d, 0x14, 0x09, //0x000068e6 leaq (%r9,%rcx), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x000068ea addq $4, %rsi - 0x4d, 0x8d, 0x6c, 0x01, 0x05, //0x000068ee leaq $5(%r9,%rax), %r13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068f3 .p2align 4, 0x90 - //0x00006900 LBB28_54 - 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00006900 movsbl $-1(%r13), %edi - 0x83, 0xff, 0x20, //0x00006905 cmpl $32, %edi - 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00006908 ja LBB28_59 - 0x49, 0x0f, 0xa3, 0xfc, //0x0000690e btq %rdi, %r12 - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006912 jae LBB28_59 - 0x49, 0xff, 0xc5, //0x00006918 incq %r13 - 0x48, 0xff, 0xc6, //0x0000691b incq %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000691e jne LBB28_54 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006924 jmp LBB28_58 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006929 .p2align 4, 0x90 - //0x00006930 LBB28_57 - 0x4c, 0x01, 0xca, //0x00006930 addq %r9, %rdx - //0x00006933 LBB28_58 - 0x4c, 0x29, 0xca, //0x00006933 subq %r9, %rdx - 0x49, 0x89, 0xd5, //0x00006936 movq %rdx, %r13 - 0x49, 0x39, 0xcd, //0x00006939 cmpq %rcx, %r13 - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000693c jb LBB28_60 - 0xe9, 0xb5, 0x0a, 0x00, 0x00, //0x00006942 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006947 .p2align 4, 0x90 - //0x00006950 LBB28_59 - 0x4c, 0x89, 0xca, //0x00006950 movq %r9, %rdx - 0x48, 0xf7, 0xd2, //0x00006953 notq %rdx - 0x49, 0x01, 0xd5, //0x00006956 addq %rdx, %r13 - 0x49, 0x39, 0xcd, //0x00006959 cmpq %rcx, %r13 - 0x0f, 0x83, 0x9a, 0x0a, 0x00, 0x00, //0x0000695c jae LBB28_247 - //0x00006962 LBB28_60 - 0x49, 0x8d, 0x5d, 0x01, //0x00006962 leaq $1(%r13), %rbx - 0x49, 0x89, 0x1f, //0x00006966 movq %rbx, (%r15) - 0x43, 0x8a, 0x0c, 0x29, //0x00006969 movb (%r9,%r13), %cl - 0x80, 0xf9, 0x22, //0x0000696d cmpb $34, %cl - 0x0f, 0x85, 0xc7, 0x0a, 0x00, 0x00, //0x00006970 jne LBB28_252 - 0x48, 0x8b, 0x45, 0xb8, //0x00006976 movq $-72(%rbp), %rax - 0x48, 0x8b, 0x40, 0x08, //0x0000697a movq $8(%rax), %rax - 0x4c, 0x8b, 0x30, //0x0000697e movq (%rax), %r14 - 0x4c, 0x8b, 0x78, 0x08, //0x00006981 movq $8(%rax), %r15 - 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006985 movq $-1, $-80(%rbp) - 0x4c, 0x89, 0xdf, //0x0000698d movq %r11, %rdi - 0x48, 0x89, 0xde, //0x00006990 movq %rbx, %rsi - 0x48, 0x8d, 0x55, 0xb0, //0x00006993 leaq $-80(%rbp), %rdx - 0xe8, 0xe4, 0x25, 0x00, 0x00, //0x00006997 callq _advance_string_default - 0x48, 0x85, 0xc0, //0x0000699c testq %rax, %rax - 0x0f, 0x88, 0xb6, 0x0a, 0x00, 0x00, //0x0000699f js LBB28_255 - 0x48, 0x8b, 0x4d, 0xd0, //0x000069a5 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x000069a9 movq %rax, (%rcx) - 0x48, 0x8b, 0x4d, 0xb0, //0x000069ac movq $-80(%rbp), %rcx - 0x48, 0x83, 0xf9, 0xff, //0x000069b0 cmpq $-1, %rcx - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000069b4 je LBB28_64 - 0x48, 0x39, 0xc1, //0x000069ba cmpq %rax, %rcx - 0x0f, 0x8e, 0x61, 0x01, 0x00, 0x00, //0x000069bd jle LBB28_87 - //0x000069c3 LBB28_64 - 0x48, 0x89, 0xc2, //0x000069c3 movq %rax, %rdx - 0x4c, 0x29, 0xea, //0x000069c6 subq %r13, %rdx - 0x48, 0x83, 0xc2, 0xfe, //0x000069c9 addq $-2, %rdx - 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000069cd movl $1, %r10d - 0x48, 0x89, 0xd1, //0x000069d3 movq %rdx, %rcx - 0x4c, 0x09, 0xf9, //0x000069d6 orq %r15, %rcx - 0x4c, 0x8b, 0x5d, 0xc0, //0x000069d9 movq $-64(%rbp), %r11 - 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x000069dd je LBB28_82 - 0x4c, 0x39, 0xfa, //0x000069e3 cmpq %r15, %rdx - 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x000069e6 jne LBB28_81 - 0x49, 0x03, 0x1b, //0x000069ec addq (%r11), %rbx - 0x49, 0x83, 0xff, 0x10, //0x000069ef cmpq $16, %r15 - 0x0f, 0x82, 0x5b, 0x00, 0x00, 0x00, //0x000069f3 jb LBB28_71 - 0x49, 0x8d, 0x57, 0xf0, //0x000069f9 leaq $-16(%r15), %rdx - 0x48, 0x89, 0xd1, //0x000069fd movq %rdx, %rcx - 0x48, 0x83, 0xe1, 0xf0, //0x00006a00 andq $-16, %rcx - 0x4c, 0x8d, 0x44, 0x0b, 0x10, //0x00006a04 leaq $16(%rbx,%rcx), %r8 - 0x49, 0x8d, 0x7c, 0x0e, 0x10, //0x00006a09 leaq $16(%r14,%rcx), %rdi - 0x83, 0xe2, 0x0f, //0x00006a0e andl $15, %edx - 0x31, 0xf6, //0x00006a11 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a13 .p2align 4, 0x90 - //0x00006a20 LBB28_68 - 0xc5, 0xfa, 0x6f, 0x04, 0x33, //0x00006a20 vmovdqu (%rbx,%rsi), %xmm0 - 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x36, //0x00006a25 vpcmpeqb (%r14,%rsi), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00006a2b vpmovmskb %xmm0, %ecx - 0x66, 0x83, 0xf9, 0xff, //0x00006a2f cmpw $-1, %cx - 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00006a33 jne LBB28_81 - 0x49, 0x83, 0xc7, 0xf0, //0x00006a39 addq $-16, %r15 - 0x48, 0x83, 0xc6, 0x10, //0x00006a3d addq $16, %rsi - 0x49, 0x83, 0xff, 0x0f, //0x00006a41 cmpq $15, %r15 - 0x0f, 0x87, 0xd5, 0xff, 0xff, 0xff, //0x00006a45 ja LBB28_68 - 0x49, 0x89, 0xd7, //0x00006a4b movq %rdx, %r15 - 0x49, 0x89, 0xfe, //0x00006a4e movq %rdi, %r14 - 0x4c, 0x89, 0xc3, //0x00006a51 movq %r8, %rbx - //0x00006a54 LBB28_71 - 0x44, 0x89, 0xf1, //0x00006a54 movl %r14d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006a57 andl $4095, %ecx - 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006a5d cmpl $4080, %ecx - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00006a63 ja LBB28_76 - 0x89, 0xd9, //0x00006a69 movl %ebx, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006a6b andl $4095, %ecx - 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006a71 cmpl $4081, %ecx - 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00006a77 jae LBB28_76 - 0xc5, 0xfa, 0x6f, 0x03, //0x00006a7d vmovdqu (%rbx), %xmm0 - 0xc4, 0xc1, 0x79, 0x74, 0x06, //0x00006a81 vpcmpeqb (%r14), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd0, //0x00006a86 vpmovmskb %xmm0, %edx - 0x66, 0x83, 0xfa, 0xff, //0x00006a8a cmpw $-1, %dx - 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00006a8e je LBB28_82 - 0xf7, 0xd2, //0x00006a94 notl %edx - 0x0f, 0xb7, 0xca, //0x00006a96 movzwl %dx, %ecx - 0x48, 0x0f, 0xbc, 0xc9, //0x00006a99 bsfq %rcx, %rcx - 0x45, 0x31, 0xd2, //0x00006a9d xorl %r10d, %r10d - 0x4c, 0x39, 0xf9, //0x00006aa0 cmpq %r15, %rcx - 0x41, 0x0f, 0x93, 0xc2, //0x00006aa3 setae %r10b - 0xe9, 0x37, 0x00, 0x00, 0x00, //0x00006aa7 jmp LBB28_82 - //0x00006aac LBB28_76 - 0x4d, 0x85, 0xff, //0x00006aac testq %r15, %r15 - 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00006aaf je LBB28_82 - 0x31, 0xd2, //0x00006ab5 xorl %edx, %edx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ab7 .p2align 4, 0x90 - //0x00006ac0 LBB28_78 - 0x0f, 0xb6, 0x0c, 0x13, //0x00006ac0 movzbl (%rbx,%rdx), %ecx - 0x41, 0x3a, 0x0c, 0x16, //0x00006ac4 cmpb (%r14,%rdx), %cl - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006ac8 jne LBB28_81 - 0x48, 0xff, 0xc2, //0x00006ace incq %rdx - 0x49, 0x39, 0xd7, //0x00006ad1 cmpq %rdx, %r15 - 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00006ad4 jne LBB28_78 - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006ada jmp LBB28_82 - 0x90, //0x00006adf .p2align 4, 0x90 - //0x00006ae0 LBB28_81 - 0x45, 0x31, 0xd2, //0x00006ae0 xorl %r10d, %r10d - //0x00006ae3 LBB28_82 - 0x4d, 0x8b, 0x0b, //0x00006ae3 movq (%r11), %r9 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ae6 movq $-48(%rbp), %r15 - 0x49, 0x8b, 0x73, 0x08, //0x00006aea movq $8(%r11), %rsi - 0x48, 0x89, 0xc7, //0x00006aee movq %rax, %rdi - 0x48, 0x29, 0xf7, //0x00006af1 subq %rsi, %rdi - 0x0f, 0x83, 0x16, 0x04, 0x00, 0x00, //0x00006af4 jae LBB28_132 - //0x00006afa LBB28_83 - 0x41, 0x8a, 0x14, 0x01, //0x00006afa movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00006afe cmpb $13, %dl - 0x0f, 0x84, 0x09, 0x04, 0x00, 0x00, //0x00006b01 je LBB28_132 - 0x80, 0xfa, 0x20, //0x00006b07 cmpb $32, %dl - 0x0f, 0x84, 0x00, 0x04, 0x00, 0x00, //0x00006b0a je LBB28_132 - 0x80, 0xc2, 0xf7, //0x00006b10 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006b13 cmpb $1, %dl - 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00006b16 jbe LBB28_132 - 0x48, 0x89, 0xc3, //0x00006b1c movq %rax, %rbx - 0xe9, 0x0e, 0x05, 0x00, 0x00, //0x00006b1f jmp LBB28_153 - //0x00006b24 LBB28_87 - 0x48, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00006b24 movq $0, $-56(%rbp) - 0x48, 0x8b, 0x4d, 0xc0, //0x00006b2c movq $-64(%rbp), %rcx - 0x4c, 0x8b, 0x09, //0x00006b30 movq (%rcx), %r9 - 0x4c, 0x01, 0xcb, //0x00006b33 addq %r9, %rbx - 0x4d, 0x8d, 0x44, 0x01, 0xff, //0x00006b36 leaq $-1(%r9,%rax), %r8 - 0x4f, 0x8d, 0x1c, 0x3e, //0x00006b3b leaq (%r14,%r15), %r11 - 0x4d, 0x85, 0xff, //0x00006b3f testq %r15, %r15 - 0x0f, 0x8e, 0xa0, 0x03, 0x00, 0x00, //0x00006b42 jle LBB28_129 - 0x49, 0x39, 0xd8, //0x00006b48 cmpq %rbx, %r8 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006b4b movq $-48(%rbp), %r15 - 0x0f, 0x86, 0x97, 0x03, 0x00, 0x00, //0x00006b4f jbe LBB28_130 - //0x00006b55 LBB28_89 - 0x8a, 0x0b, //0x00006b55 movb (%rbx), %cl - 0x80, 0xf9, 0x5c, //0x00006b57 cmpb $92, %cl - 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006b5a jne LBB28_94 - 0x4c, 0x89, 0xc2, //0x00006b60 movq %r8, %rdx - 0x48, 0x29, 0xda, //0x00006b63 subq %rbx, %rdx - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006b66 movq $-1, %rcx - 0x48, 0x85, 0xd2, //0x00006b6d testq %rdx, %rdx - 0x0f, 0x8e, 0x22, 0x09, 0x00, 0x00, //0x00006b70 jle LBB28_259 - 0x0f, 0xb6, 0x73, 0x01, //0x00006b76 movzbl $1(%rbx), %esi - 0x48, 0x8d, 0x3d, 0x5f, 0x9c, 0x00, 0x00, //0x00006b7a leaq $40031(%rip), %rdi /* __UnquoteTab+0(%rip) */ - 0x44, 0x8a, 0x3c, 0x3e, //0x00006b81 movb (%rsi,%rdi), %r15b - 0x41, 0x80, 0xff, 0xff, //0x00006b85 cmpb $-1, %r15b - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00006b89 je LBB28_96 - 0x45, 0x84, 0xff, //0x00006b8f testb %r15b, %r15b - 0x0f, 0x84, 0xee, 0x08, 0x00, 0x00, //0x00006b92 je LBB28_257 - 0x44, 0x88, 0x7d, 0xc8, //0x00006b98 movb %r15b, $-56(%rbp) - 0x48, 0x83, 0xc3, 0x02, //0x00006b9c addq $2, %rbx - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006ba0 movl $1, %edx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006ba5 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006baa cmpq %r11, %r14 - 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00006bad jb LBB28_107 - 0xe9, 0x08, 0x03, 0x00, 0x00, //0x00006bb3 jmp LBB28_113 - //0x00006bb8 LBB28_94 - 0x41, 0x3a, 0x0e, //0x00006bb8 cmpb (%r14), %cl - 0x0f, 0x85, 0xe6, 0x05, 0x00, 0x00, //0x00006bbb jne LBB28_183 - 0x48, 0xff, 0xc3, //0x00006bc1 incq %rbx - 0x49, 0xff, 0xc6, //0x00006bc4 incq %r14 - 0xe9, 0x05, 0x03, 0x00, 0x00, //0x00006bc7 jmp LBB28_115 - //0x00006bcc LBB28_96 - 0x48, 0x83, 0xfa, 0x03, //0x00006bcc cmpq $3, %rdx - 0x0f, 0x8e, 0xbf, 0x08, 0x00, 0x00, //0x00006bd0 jle LBB28_258 - 0x8b, 0x4b, 0x02, //0x00006bd6 movl $2(%rbx), %ecx - 0x89, 0xce, //0x00006bd9 movl %ecx, %esi - 0xf7, 0xd6, //0x00006bdb notl %esi - 0x8d, 0xb9, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006bdd leal $-808464432(%rcx), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00006be3 andl $-2139062144, %esi - 0x85, 0xfe, //0x00006be9 testl %edi, %esi - 0x0f, 0x85, 0x85, 0x08, 0x00, 0x00, //0x00006beb jne LBB28_256 - 0x8d, 0xb9, 0x19, 0x19, 0x19, 0x19, //0x00006bf1 leal $421075225(%rcx), %edi - 0x09, 0xcf, //0x00006bf7 orl %ecx, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00006bf9 testl $-2139062144, %edi - 0x0f, 0x85, 0x71, 0x08, 0x00, 0x00, //0x00006bff jne LBB28_256 - 0x89, 0xcf, //0x00006c05 movl %ecx, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006c07 andl $2139062143, %edi - 0x41, 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006c0d movl $-1061109568, %r10d - 0x41, 0x29, 0xfa, //0x00006c13 subl %edi, %r10d - 0x44, 0x8d, 0xbf, 0x46, 0x46, 0x46, 0x46, //0x00006c16 leal $1179010630(%rdi), %r15d - 0x41, 0x21, 0xf2, //0x00006c1d andl %esi, %r10d - 0x45, 0x85, 0xfa, //0x00006c20 testl %r15d, %r10d - 0x0f, 0x85, 0x4d, 0x08, 0x00, 0x00, //0x00006c23 jne LBB28_256 - 0x41, 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006c29 movl $-522133280, %r10d - 0x41, 0x29, 0xfa, //0x00006c2f subl %edi, %r10d - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00006c32 addl $960051513, %edi - 0x44, 0x21, 0xd6, //0x00006c38 andl %r10d, %esi - 0x85, 0xfe, //0x00006c3b testl %edi, %esi - 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00006c3d jne LBB28_256 - 0x0f, 0xc9, //0x00006c43 bswapl %ecx - 0x89, 0xce, //0x00006c45 movl %ecx, %esi - 0xc1, 0xee, 0x04, //0x00006c47 shrl $4, %esi - 0xf7, 0xd6, //0x00006c4a notl %esi - 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006c4c andl $16843009, %esi - 0x8d, 0x34, 0xf6, //0x00006c52 leal (%rsi,%rsi,8), %esi - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006c55 andl $252645135, %ecx - 0x01, 0xf1, //0x00006c5b addl %esi, %ecx - 0x41, 0x89, 0xcf, //0x00006c5d movl %ecx, %r15d - 0x41, 0xc1, 0xef, 0x04, //0x00006c60 shrl $4, %r15d - 0x41, 0x09, 0xcf, //0x00006c64 orl %ecx, %r15d - 0x44, 0x89, 0xfe, //0x00006c67 movl %r15d, %esi - 0xc1, 0xee, 0x08, //0x00006c6a shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00006c6d andl $65280, %esi - 0x41, 0x0f, 0xb6, 0xcf, //0x00006c73 movzbl %r15b, %ecx - 0x09, 0xf1, //0x00006c77 orl %esi, %ecx - 0x4c, 0x8d, 0x53, 0x06, //0x00006c79 leaq $6(%rbx), %r10 - 0x83, 0xf9, 0x7f, //0x00006c7d cmpl $127, %ecx - 0x0f, 0x86, 0xb2, 0x00, 0x00, 0x00, //0x00006c80 jbe LBB28_117 - 0x81, 0xf9, 0xff, 0x07, 0x00, 0x00, //0x00006c86 cmpl $2047, %ecx - 0x0f, 0x86, 0xc5, 0x00, 0x00, 0x00, //0x00006c8c jbe LBB28_118 - 0x44, 0x89, 0xff, //0x00006c92 movl %r15d, %edi - 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x00006c95 andl $16252928, %edi - 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x00006c9b cmpl $14155776, %edi - 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00006ca1 je LBB28_119 - 0xc1, 0xee, 0x0c, //0x00006ca7 shrl $12, %esi - 0x40, 0x80, 0xce, 0xe0, //0x00006caa orb $-32, %sil - 0x40, 0x88, 0x75, 0xc8, //0x00006cae movb %sil, $-56(%rbp) - 0xc1, 0xe9, 0x06, //0x00006cb2 shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x00006cb5 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00006cb8 orb $-128, %cl - 0x88, 0x4d, 0xc9, //0x00006cbb movb %cl, $-55(%rbp) - 0x41, 0x80, 0xe7, 0x3f, //0x00006cbe andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00006cc2 orb $-128, %r15b - 0x44, 0x88, 0x7d, 0xca, //0x00006cc6 movb %r15b, $-54(%rbp) - 0xba, 0x03, 0x00, 0x00, 0x00, //0x00006cca movl $3, %edx - 0x41, 0x89, 0xf7, //0x00006ccf movl %esi, %r15d - 0x4c, 0x89, 0xd3, //0x00006cd2 movq %r10, %rbx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006cd5 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006cda cmpq %r11, %r14 - 0x0f, 0x83, 0xdd, 0x01, 0x00, 0x00, //0x00006cdd jae LBB28_113 - //0x00006ce3 LBB28_107 - 0x48, 0x8d, 0x4d, 0xc8, //0x00006ce3 leaq $-56(%rbp), %rcx - 0x49, 0x39, 0xca, //0x00006ce7 cmpq %rcx, %r10 - 0x0f, 0x86, 0xd0, 0x01, 0x00, 0x00, //0x00006cea jbe LBB28_113 - 0x45, 0x38, 0x3e, //0x00006cf0 cmpb %r15b, (%r14) - 0x0f, 0x85, 0xc7, 0x01, 0x00, 0x00, //0x00006cf3 jne LBB28_113 - 0x49, 0xff, 0xc6, //0x00006cf9 incq %r14 - 0x48, 0x8d, 0x75, 0xc9, //0x00006cfc leaq $-55(%rbp), %rsi - 0x4c, 0x89, 0xf7, //0x00006d00 movq %r14, %rdi - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006d03 movq $-48(%rbp), %r15 - //0x00006d07 LBB28_110 - 0x49, 0x89, 0xfe, //0x00006d07 movq %rdi, %r14 - 0x48, 0x89, 0xf2, //0x00006d0a movq %rsi, %rdx - 0x4c, 0x39, 0xd6, //0x00006d0d cmpq %r10, %rsi - 0x0f, 0x83, 0xb2, 0x01, 0x00, 0x00, //0x00006d10 jae LBB28_114 - 0x4d, 0x39, 0xde, //0x00006d16 cmpq %r11, %r14 - 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x00006d19 jae LBB28_114 - 0x41, 0x0f, 0xb6, 0x0e, //0x00006d1f movzbl (%r14), %ecx - 0x49, 0x8d, 0x7e, 0x01, //0x00006d23 leaq $1(%r14), %rdi - 0x48, 0x8d, 0x72, 0x01, //0x00006d27 leaq $1(%rdx), %rsi - 0x3a, 0x0a, //0x00006d2b cmpb (%rdx), %cl - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006d2d je LBB28_110 - 0xe9, 0x90, 0x01, 0x00, 0x00, //0x00006d33 jmp LBB28_114 - //0x00006d38 LBB28_117 - 0x44, 0x88, 0x7d, 0xc8, //0x00006d38 movb %r15b, $-56(%rbp) - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006d3c movl $1, %edx - 0x4c, 0x89, 0xd3, //0x00006d41 movq %r10, %rbx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d44 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006d49 cmpq %r11, %r14 - 0x0f, 0x82, 0x91, 0xff, 0xff, 0xff, //0x00006d4c jb LBB28_107 - 0xe9, 0x69, 0x01, 0x00, 0x00, //0x00006d52 jmp LBB28_113 - //0x00006d57 LBB28_118 - 0xc1, 0xe9, 0x06, //0x00006d57 shrl $6, %ecx - 0x80, 0xc9, 0xc0, //0x00006d5a orb $-64, %cl - 0x88, 0x4d, 0xc8, //0x00006d5d movb %cl, $-56(%rbp) - 0x41, 0x80, 0xe7, 0x3f, //0x00006d60 andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00006d64 orb $-128, %r15b - 0x44, 0x88, 0x7d, 0xc9, //0x00006d68 movb %r15b, $-55(%rbp) - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00006d6c movl $2, %edx - 0x41, 0x89, 0xcf, //0x00006d71 movl %ecx, %r15d - 0x4c, 0x89, 0xd3, //0x00006d74 movq %r10, %rbx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d77 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006d7c cmpq %r11, %r14 - 0x0f, 0x82, 0x5e, 0xff, 0xff, 0xff, //0x00006d7f jb LBB28_107 - 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00006d85 jmp LBB28_113 - //0x00006d8a LBB28_119 - 0x48, 0x83, 0xfa, 0x06, //0x00006d8a cmpq $6, %rdx - 0x0f, 0x8c, 0x1f, 0x07, 0x00, 0x00, //0x00006d8e jl LBB28_261 - 0x81, 0xf9, 0xff, 0xdb, 0x00, 0x00, //0x00006d94 cmpl $56319, %ecx - 0x0f, 0x87, 0x13, 0x07, 0x00, 0x00, //0x00006d9a ja LBB28_261 - 0x41, 0x80, 0x3a, 0x5c, //0x00006da0 cmpb $92, (%r10) - 0x0f, 0x85, 0x09, 0x07, 0x00, 0x00, //0x00006da4 jne LBB28_261 - 0x80, 0x7b, 0x07, 0x75, //0x00006daa cmpb $117, $7(%rbx) - 0x0f, 0x85, 0xff, 0x06, 0x00, 0x00, //0x00006dae jne LBB28_261 - 0x4c, 0x8d, 0x53, 0x08, //0x00006db4 leaq $8(%rbx), %r10 - 0x8b, 0x53, 0x08, //0x00006db8 movl $8(%rbx), %edx - 0x89, 0xd7, //0x00006dbb movl %edx, %edi - 0xf7, 0xd7, //0x00006dbd notl %edi - 0x8d, 0xb2, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006dbf leal $-808464432(%rdx), %esi - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00006dc5 andl $-2139062144, %edi - 0x85, 0xf7, //0x00006dcb testl %esi, %edi - 0x0f, 0x85, 0xd4, 0x06, 0x00, 0x00, //0x00006dcd jne LBB28_260 - 0x8d, 0xb2, 0x19, 0x19, 0x19, 0x19, //0x00006dd3 leal $421075225(%rdx), %esi - 0x09, 0xd6, //0x00006dd9 orl %edx, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00006ddb testl $-2139062144, %esi - 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00006de1 jne LBB28_260 - 0x89, 0xd6, //0x00006de7 movl %edx, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006de9 andl $2139062143, %esi - 0x41, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006def movl $-1061109568, %r15d - 0x41, 0x29, 0xf7, //0x00006df5 subl %esi, %r15d - 0x44, 0x8d, 0xae, 0x46, 0x46, 0x46, 0x46, //0x00006df8 leal $1179010630(%rsi), %r13d - 0x41, 0x21, 0xff, //0x00006dff andl %edi, %r15d - 0x45, 0x85, 0xef, //0x00006e02 testl %r13d, %r15d - 0x0f, 0x85, 0x9c, 0x06, 0x00, 0x00, //0x00006e05 jne LBB28_260 - 0x41, 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006e0b movl $-522133280, %r15d - 0x41, 0x29, 0xf7, //0x00006e11 subl %esi, %r15d - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00006e14 addl $960051513, %esi - 0x44, 0x21, 0xff, //0x00006e1a andl %r15d, %edi - 0x85, 0xf7, //0x00006e1d testl %esi, %edi - 0x0f, 0x85, 0x82, 0x06, 0x00, 0x00, //0x00006e1f jne LBB28_260 - 0x0f, 0xca, //0x00006e25 bswapl %edx - 0x89, 0xd6, //0x00006e27 movl %edx, %esi - 0xc1, 0xee, 0x04, //0x00006e29 shrl $4, %esi - 0xf7, 0xd6, //0x00006e2c notl %esi - 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006e2e andl $16843009, %esi - 0x8d, 0x34, 0xf6, //0x00006e34 leal (%rsi,%rsi,8), %esi - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006e37 andl $252645135, %edx - 0x01, 0xf2, //0x00006e3d addl %esi, %edx - 0x89, 0xd6, //0x00006e3f movl %edx, %esi - 0xc1, 0xee, 0x04, //0x00006e41 shrl $4, %esi - 0x09, 0xd6, //0x00006e44 orl %edx, %esi - 0x89, 0xf2, //0x00006e46 movl %esi, %edx - 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00006e48 andl $16515072, %edx - 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x00006e4e cmpl $14417920, %edx - 0x0f, 0x85, 0x59, 0x06, 0x00, 0x00, //0x00006e54 jne LBB28_261 - 0x89, 0xf2, //0x00006e5a movl %esi, %edx - 0xc1, 0xea, 0x08, //0x00006e5c shrl $8, %edx - 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00006e5f andl $65280, %edx - 0x40, 0x0f, 0xb6, 0xf6, //0x00006e65 movzbl %sil, %esi - 0x09, 0xd6, //0x00006e69 orl %edx, %esi - 0xc1, 0xe1, 0x0a, //0x00006e6b shll $10, %ecx - 0x8d, 0x8c, 0x31, 0x00, 0x24, 0xa0, 0xfc, //0x00006e6e leal $-56613888(%rcx,%rsi), %ecx - 0x41, 0x89, 0xcf, //0x00006e75 movl %ecx, %r15d - 0x41, 0xc1, 0xef, 0x12, //0x00006e78 shrl $18, %r15d - 0x41, 0x80, 0xcf, 0xf0, //0x00006e7c orb $-16, %r15b - 0x44, 0x88, 0x7d, 0xc8, //0x00006e80 movb %r15b, $-56(%rbp) - 0x89, 0xca, //0x00006e84 movl %ecx, %edx - 0xc1, 0xea, 0x0c, //0x00006e86 shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x00006e89 andb $63, %dl - 0x80, 0xca, 0x80, //0x00006e8c orb $-128, %dl - 0x88, 0x55, 0xc9, //0x00006e8f movb %dl, $-55(%rbp) - 0x89, 0xca, //0x00006e92 movl %ecx, %edx - 0xc1, 0xea, 0x06, //0x00006e94 shrl $6, %edx - 0x80, 0xe2, 0x3f, //0x00006e97 andb $63, %dl - 0x80, 0xca, 0x80, //0x00006e9a orb $-128, %dl - 0x88, 0x55, 0xca, //0x00006e9d movb %dl, $-54(%rbp) - 0x80, 0xe1, 0x3f, //0x00006ea0 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00006ea3 orb $-128, %cl - 0x88, 0x4d, 0xcb, //0x00006ea6 movb %cl, $-53(%rbp) - 0x48, 0x83, 0xc3, 0x0c, //0x00006ea9 addq $12, %rbx - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00006ead movl $4, %edx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006eb2 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006eb7 cmpq %r11, %r14 - 0x0f, 0x82, 0x23, 0xfe, 0xff, 0xff, //0x00006eba jb LBB28_107 - //0x00006ec0 LBB28_113 - 0x48, 0x8d, 0x55, 0xc8, //0x00006ec0 leaq $-56(%rbp), %rdx - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ec4 movq $-48(%rbp), %r15 - //0x00006ec8 LBB28_114 - 0x4c, 0x39, 0xd2, //0x00006ec8 cmpq %r10, %rdx - 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x00006ecb jne LBB28_183 - //0x00006ed1 LBB28_115 - 0x49, 0x39, 0xd8, //0x00006ed1 cmpq %rbx, %r8 - 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x00006ed4 jbe LBB28_130 - 0x4d, 0x39, 0xde, //0x00006eda cmpq %r11, %r14 - 0x0f, 0x82, 0x72, 0xfc, 0xff, 0xff, //0x00006edd jb LBB28_89 - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006ee3 jmp LBB28_130 - //0x00006ee8 LBB28_129 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ee8 movq $-48(%rbp), %r15 - //0x00006eec LBB28_130 - 0x49, 0x31, 0xd8, //0x00006eec xorq %rbx, %r8 - 0x4d, 0x31, 0xde, //0x00006eef xorq %r11, %r14 - 0x45, 0x31, 0xd2, //0x00006ef2 xorl %r10d, %r10d - 0x4d, 0x09, 0xc6, //0x00006ef5 orq %r8, %r14 - 0x41, 0x0f, 0x94, 0xc2, //0x00006ef8 sete %r10b - //0x00006efc LBB28_131 - 0x4c, 0x8b, 0x5d, 0xc0, //0x00006efc movq $-64(%rbp), %r11 - 0x49, 0x8b, 0x73, 0x08, //0x00006f00 movq $8(%r11), %rsi - 0x48, 0x89, 0xc7, //0x00006f04 movq %rax, %rdi - 0x48, 0x29, 0xf7, //0x00006f07 subq %rsi, %rdi - 0x0f, 0x82, 0xea, 0xfb, 0xff, 0xff, //0x00006f0a jb LBB28_83 - //0x00006f10 .p2align 4, 0x90 - //0x00006f10 LBB28_132 - 0x48, 0x8d, 0x58, 0x01, //0x00006f10 leaq $1(%rax), %rbx - 0x48, 0x39, 0xf3, //0x00006f14 cmpq %rsi, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f17 jae LBB28_136 - 0x41, 0x8a, 0x14, 0x19, //0x00006f1d movb (%r9,%rbx), %dl - 0x80, 0xfa, 0x0d, //0x00006f21 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f24 je LBB28_136 - 0x80, 0xfa, 0x20, //0x00006f2a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f2d je LBB28_136 - 0x80, 0xc2, 0xf7, //0x00006f33 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006f36 cmpb $1, %dl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006f39 ja LBB28_153 - 0x90, //0x00006f3f .p2align 4, 0x90 - //0x00006f40 LBB28_136 - 0x48, 0x8d, 0x58, 0x02, //0x00006f40 leaq $2(%rax), %rbx - 0x48, 0x39, 0xf3, //0x00006f44 cmpq %rsi, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f47 jae LBB28_140 - 0x41, 0x8a, 0x14, 0x19, //0x00006f4d movb (%r9,%rbx), %dl - 0x80, 0xfa, 0x0d, //0x00006f51 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f54 je LBB28_140 - 0x80, 0xfa, 0x20, //0x00006f5a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f5d je LBB28_140 - 0x80, 0xc2, 0xf7, //0x00006f63 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006f66 cmpb $1, %dl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006f69 ja LBB28_153 - 0x90, //0x00006f6f .p2align 4, 0x90 - //0x00006f70 LBB28_140 - 0x48, 0x8d, 0x58, 0x03, //0x00006f70 leaq $3(%rax), %rbx - 0x48, 0x39, 0xf3, //0x00006f74 cmpq %rsi, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f77 jae LBB28_144 - 0x41, 0x8a, 0x14, 0x19, //0x00006f7d movb (%r9,%rbx), %dl - 0x80, 0xfa, 0x0d, //0x00006f81 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006f84 je LBB28_144 - 0x80, 0xfa, 0x20, //0x00006f8a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006f8d je LBB28_144 - 0x80, 0xc2, 0xf7, //0x00006f93 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006f96 cmpb $1, %dl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00006f99 ja LBB28_153 - 0x90, //0x00006f9f .p2align 4, 0x90 - //0x00006fa0 LBB28_144 - 0x48, 0x8d, 0x50, 0x04, //0x00006fa0 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd6, //0x00006fa4 cmpq %rdx, %rsi - 0x0f, 0x86, 0x49, 0x04, 0x00, 0x00, //0x00006fa7 jbe LBB28_245 - 0x48, 0x39, 0xd6, //0x00006fad cmpq %rdx, %rsi - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00006fb0 je LBB28_150 - 0x49, 0x8d, 0x14, 0x31, //0x00006fb6 leaq (%r9,%rsi), %rdx - 0x48, 0x83, 0xc7, 0x04, //0x00006fba addq $4, %rdi - 0x49, 0x8d, 0x5c, 0x01, 0x05, //0x00006fbe leaq $5(%r9,%rax), %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fc3 .p2align 4, 0x90 - //0x00006fd0 LBB28_147 - 0x0f, 0xbe, 0x4b, 0xff, //0x00006fd0 movsbl $-1(%rbx), %ecx - 0x83, 0xf9, 0x20, //0x00006fd4 cmpl $32, %ecx - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00006fd7 ja LBB28_152 - 0x49, 0x0f, 0xa3, 0xcc, //0x00006fdd btq %rcx, %r12 - 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00006fe1 jae LBB28_152 - 0x48, 0xff, 0xc3, //0x00006fe7 incq %rbx - 0x48, 0xff, 0xc7, //0x00006fea incq %rdi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00006fed jne LBB28_147 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00006ff3 jmp LBB28_151 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ff8 .p2align 4, 0x90 - //0x00007000 LBB28_150 - 0x4c, 0x01, 0xca, //0x00007000 addq %r9, %rdx - //0x00007003 LBB28_151 - 0x4c, 0x29, 0xca, //0x00007003 subq %r9, %rdx - 0x48, 0x89, 0xd3, //0x00007006 movq %rdx, %rbx - 0x48, 0x39, 0xf3, //0x00007009 cmpq %rsi, %rbx - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000700c jb LBB28_153 - 0xe9, 0xe5, 0x03, 0x00, 0x00, //0x00007012 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007017 .p2align 4, 0x90 - //0x00007020 LBB28_152 - 0x4c, 0x89, 0xc9, //0x00007020 movq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x00007023 notq %rcx - 0x48, 0x01, 0xcb, //0x00007026 addq %rcx, %rbx - 0x48, 0x39, 0xf3, //0x00007029 cmpq %rsi, %rbx - 0x0f, 0x83, 0xca, 0x03, 0x00, 0x00, //0x0000702c jae LBB28_247 - //0x00007032 LBB28_153 - 0x48, 0x8d, 0x53, 0x01, //0x00007032 leaq $1(%rbx), %rdx - 0x49, 0x89, 0x17, //0x00007036 movq %rdx, (%r15) - 0x41, 0x80, 0x3c, 0x19, 0x3a, //0x00007039 cmpb $58, (%r9,%rbx) - 0x0f, 0x85, 0xb5, 0x03, 0x00, 0x00, //0x0000703e jne LBB28_246 - 0x4d, 0x85, 0xd2, //0x00007044 testq %r10, %r10 - 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00007047 jne LBB28_243 - 0x4c, 0x89, 0xdf, //0x0000704d movq %r11, %rdi - 0x4c, 0x89, 0xfe, //0x00007050 movq %r15, %rsi - 0xe8, 0x48, 0xe6, 0xff, 0xff, //0x00007053 callq _skip_one_fast - 0x4c, 0x8b, 0x5d, 0xc0, //0x00007058 movq $-64(%rbp), %r11 - 0x4d, 0x8b, 0x0b, //0x0000705c movq (%r11), %r9 - 0x49, 0x8b, 0x4b, 0x08, //0x0000705f movq $8(%r11), %rcx - 0x49, 0x8b, 0x07, //0x00007063 movq (%r15), %rax - 0x48, 0x89, 0xc6, //0x00007066 movq %rax, %rsi - 0x48, 0x29, 0xce, //0x00007069 subq %rcx, %rsi - 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000706c jae LBB28_160 - 0x41, 0x8a, 0x14, 0x01, //0x00007072 movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00007076 cmpb $13, %dl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00007079 je LBB28_160 - 0x80, 0xfa, 0x20, //0x0000707f cmpb $32, %dl - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007082 je LBB28_160 - 0x80, 0xc2, 0xf7, //0x00007088 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x0000708b cmpb $1, %dl - 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000708e jbe LBB28_160 - 0x48, 0x89, 0xc7, //0x00007094 movq %rax, %rdi - 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x00007097 jmp LBB28_181 - 0x90, 0x90, 0x90, 0x90, //0x0000709c .p2align 4, 0x90 - //0x000070a0 LBB28_160 - 0x48, 0x8d, 0x78, 0x01, //0x000070a0 leaq $1(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000070a4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070a7 jae LBB28_164 - 0x41, 0x8a, 0x14, 0x39, //0x000070ad movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000070b1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000070b4 je LBB28_164 - 0x80, 0xfa, 0x20, //0x000070ba cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000070bd je LBB28_164 - 0x80, 0xc2, 0xf7, //0x000070c3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000070c6 cmpb $1, %dl - 0x0f, 0x87, 0x1b, 0xf7, 0xff, 0xff, //0x000070c9 ja LBB28_181 - 0x90, //0x000070cf .p2align 4, 0x90 - //0x000070d0 LBB28_164 - 0x48, 0x8d, 0x78, 0x02, //0x000070d0 leaq $2(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000070d4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070d7 jae LBB28_168 - 0x41, 0x8a, 0x14, 0x39, //0x000070dd movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000070e1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000070e4 je LBB28_168 - 0x80, 0xfa, 0x20, //0x000070ea cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000070ed je LBB28_168 - 0x80, 0xc2, 0xf7, //0x000070f3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000070f6 cmpb $1, %dl - 0x0f, 0x87, 0xeb, 0xf6, 0xff, 0xff, //0x000070f9 ja LBB28_181 - 0x90, //0x000070ff .p2align 4, 0x90 - //0x00007100 LBB28_168 - 0x48, 0x8d, 0x78, 0x03, //0x00007100 leaq $3(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007104 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007107 jae LBB28_172 - 0x41, 0x8a, 0x14, 0x39, //0x0000710d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00007111 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007114 je LBB28_172 - 0x80, 0xfa, 0x20, //0x0000711a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000711d je LBB28_172 - 0x80, 0xc2, 0xf7, //0x00007123 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007126 cmpb $1, %dl - 0x0f, 0x87, 0xbb, 0xf6, 0xff, 0xff, //0x00007129 ja LBB28_181 - 0x90, //0x0000712f .p2align 4, 0x90 - //0x00007130 LBB28_172 - 0x48, 0x8d, 0x50, 0x04, //0x00007130 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd1, //0x00007134 cmpq %rdx, %rcx - 0x0f, 0x86, 0xb9, 0x02, 0x00, 0x00, //0x00007137 jbe LBB28_245 - 0x48, 0x39, 0xd1, //0x0000713d cmpq %rdx, %rcx - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007140 je LBB28_178 - 0x49, 0x8d, 0x14, 0x09, //0x00007146 leaq (%r9,%rcx), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x0000714a addq $4, %rsi - 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000714e leaq $5(%r9,%rax), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007153 .p2align 4, 0x90 - //0x00007160 LBB28_175 - 0x0f, 0xbe, 0x5f, 0xff, //0x00007160 movsbl $-1(%rdi), %ebx - 0x83, 0xfb, 0x20, //0x00007164 cmpl $32, %ebx - 0x0f, 0x87, 0x6b, 0xf6, 0xff, 0xff, //0x00007167 ja LBB28_180 - 0x49, 0x0f, 0xa3, 0xdc, //0x0000716d btq %rbx, %r12 - 0x0f, 0x83, 0x61, 0xf6, 0xff, 0xff, //0x00007171 jae LBB28_180 - 0x48, 0xff, 0xc7, //0x00007177 incq %rdi - 0x48, 0xff, 0xc6, //0x0000717a incq %rsi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000717d jne LBB28_175 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007183 jmp LBB28_179 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007188 .p2align 4, 0x90 - //0x00007190 LBB28_178 - 0x4c, 0x01, 0xca, //0x00007190 addq %r9, %rdx - //0x00007193 LBB28_179 - 0x4c, 0x29, 0xca, //0x00007193 subq %r9, %rdx - 0x48, 0x89, 0xd7, //0x00007196 movq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x00007199 cmpq %rcx, %rdi - 0x0f, 0x82, 0x48, 0xf6, 0xff, 0xff, //0x0000719c jb LBB28_181 - 0xe9, 0x55, 0x02, 0x00, 0x00, //0x000071a2 jmp LBB28_247 - //0x000071a7 LBB28_183 - 0x45, 0x31, 0xd2, //0x000071a7 xorl %r10d, %r10d - 0xe9, 0x4d, 0xfd, 0xff, 0xff, //0x000071aa jmp LBB28_131 - //0x000071af LBB28_209 - 0x49, 0x89, 0x17, //0x000071af movq %rdx, (%r15) - 0x48, 0x89, 0xd0, //0x000071b2 movq %rdx, %rax - 0xe9, 0x52, 0x00, 0x00, 0x00, //0x000071b5 jmp LBB28_214 - //0x000071ba LBB28_29 - 0x4c, 0x89, 0xc8, //0x000071ba movq %r9, %rax - 0x48, 0xf7, 0xd0, //0x000071bd notq %rax - 0x48, 0x01, 0xc6, //0x000071c0 addq %rax, %rsi - 0x4c, 0x39, 0xc6, //0x000071c3 cmpq %r8, %rsi - 0x0f, 0x82, 0x16, 0xf4, 0xff, 0xff, //0x000071c6 jb LBB28_28 - 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x000071cc jmp LBB28_30 - //0x000071d1 LBB28_210 - 0x4c, 0x01, 0xca, //0x000071d1 addq %r9, %rdx - //0x000071d4 LBB28_211 - 0x4c, 0x29, 0xca, //0x000071d4 subq %r9, %rdx - 0x48, 0x89, 0xd7, //0x000071d7 movq %rdx, %rdi - 0x4c, 0x39, 0xc7, //0x000071da cmpq %r8, %rdi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000071dd jb LBB28_213 - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000071e3 jmp LBB28_214 - //0x000071e8 LBB28_212 - 0x4c, 0x89, 0xc9, //0x000071e8 movq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x000071eb notq %rcx - 0x48, 0x01, 0xcf, //0x000071ee addq %rcx, %rdi - 0x4c, 0x39, 0xc7, //0x000071f1 cmpq %r8, %rdi - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000071f4 jae LBB28_214 - //0x000071fa LBB28_213 - 0x48, 0x8d, 0x47, 0x01, //0x000071fa leaq $1(%rdi), %rax - 0x49, 0x89, 0x07, //0x000071fe movq %rax, (%r15) - 0x41, 0x80, 0x3c, 0x39, 0x5d, //0x00007201 cmpb $93, (%r9,%rdi) - 0x0f, 0x84, 0x3d, 0x02, 0x00, 0x00, //0x00007206 je LBB28_254 - //0x0000720c LBB28_214 - 0x48, 0xff, 0xc8, //0x0000720c decq %rax - 0x49, 0x89, 0x07, //0x0000720f movq %rax, (%r15) - 0x48, 0x89, 0xc2, //0x00007212 movq %rax, %rdx - 0x4d, 0x85, 0xf6, //0x00007215 testq %r14, %r14 - 0x0f, 0x8e, 0x95, 0x01, 0x00, 0x00, //0x00007218 jle LBB28_243 - 0x90, 0x90, //0x0000721e .p2align 4, 0x90 - //0x00007220 LBB28_215 - 0x4c, 0x89, 0xdf, //0x00007220 movq %r11, %rdi - 0x4c, 0x89, 0xfe, //0x00007223 movq %r15, %rsi - 0xe8, 0x75, 0xe4, 0xff, 0xff, //0x00007226 callq _skip_one_fast - 0x4c, 0x8b, 0x5d, 0xc0, //0x0000722b movq $-64(%rbp), %r11 - 0x4d, 0x8b, 0x0b, //0x0000722f movq (%r11), %r9 - 0x49, 0x8b, 0x4b, 0x08, //0x00007232 movq $8(%r11), %rcx - 0x49, 0x8b, 0x07, //0x00007236 movq (%r15), %rax - 0x48, 0x89, 0xc6, //0x00007239 movq %rax, %rsi - 0x48, 0x29, 0xce, //0x0000723c subq %rcx, %rsi - 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000723f jae LBB28_220 - 0x41, 0x8a, 0x14, 0x01, //0x00007245 movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00007249 cmpb $13, %dl - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000724c je LBB28_220 - 0x80, 0xfa, 0x20, //0x00007252 cmpb $32, %dl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00007255 je LBB28_220 - 0x80, 0xc2, 0xf7, //0x0000725b addb $-9, %dl - 0x80, 0xfa, 0x01, //0x0000725e cmpb $1, %dl - 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00007261 jbe LBB28_220 - 0x48, 0x89, 0xc7, //0x00007267 movq %rax, %rdi - 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000726a jmp LBB28_241 - 0x90, //0x0000726f .p2align 4, 0x90 - //0x00007270 LBB28_220 - 0x48, 0x8d, 0x78, 0x01, //0x00007270 leaq $1(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007274 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007277 jae LBB28_224 - 0x41, 0x8a, 0x14, 0x39, //0x0000727d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00007281 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007284 je LBB28_224 - 0x80, 0xfa, 0x20, //0x0000728a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000728d je LBB28_224 - 0x80, 0xc2, 0xf7, //0x00007293 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007296 cmpb $1, %dl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007299 ja LBB28_241 - 0x90, //0x0000729f .p2align 4, 0x90 - //0x000072a0 LBB28_224 - 0x48, 0x8d, 0x78, 0x02, //0x000072a0 leaq $2(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000072a4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072a7 jae LBB28_228 - 0x41, 0x8a, 0x14, 0x39, //0x000072ad movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000072b1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072b4 je LBB28_228 - 0x80, 0xfa, 0x20, //0x000072ba cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072bd je LBB28_228 - 0x80, 0xc2, 0xf7, //0x000072c3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000072c6 cmpb $1, %dl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x000072c9 ja LBB28_241 - 0x90, //0x000072cf .p2align 4, 0x90 - //0x000072d0 LBB28_228 - 0x48, 0x8d, 0x78, 0x03, //0x000072d0 leaq $3(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000072d4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072d7 jae LBB28_232 - 0x41, 0x8a, 0x14, 0x39, //0x000072dd movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000072e1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072e4 je LBB28_232 - 0x80, 0xfa, 0x20, //0x000072ea cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072ed je LBB28_232 - 0x80, 0xc2, 0xf7, //0x000072f3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000072f6 cmpb $1, %dl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000072f9 ja LBB28_241 - 0x90, //0x000072ff .p2align 4, 0x90 - //0x00007300 LBB28_232 - 0x48, 0x8d, 0x50, 0x04, //0x00007300 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd1, //0x00007304 cmpq %rdx, %rcx - 0x0f, 0x86, 0xe9, 0x00, 0x00, 0x00, //0x00007307 jbe LBB28_245 - 0x48, 0x39, 0xd1, //0x0000730d cmpq %rdx, %rcx - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007310 je LBB28_238 - 0x49, 0x8d, 0x14, 0x09, //0x00007316 leaq (%r9,%rcx), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x0000731a addq $4, %rsi - 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000731e leaq $5(%r9,%rax), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007323 .p2align 4, 0x90 - //0x00007330 LBB28_235 - 0x0f, 0xbe, 0x5f, 0xff, //0x00007330 movsbl $-1(%rdi), %ebx - 0x83, 0xfb, 0x20, //0x00007334 cmpl $32, %ebx - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00007337 ja LBB28_240 - 0x49, 0x0f, 0xa3, 0xdc, //0x0000733d btq %rbx, %r12 - 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00007341 jae LBB28_240 - 0x48, 0xff, 0xc7, //0x00007347 incq %rdi - 0x48, 0xff, 0xc6, //0x0000734a incq %rsi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000734d jne LBB28_235 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007353 jmp LBB28_239 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007358 .p2align 4, 0x90 - //0x00007360 LBB28_238 - 0x4c, 0x01, 0xca, //0x00007360 addq %r9, %rdx - //0x00007363 LBB28_239 - 0x4c, 0x29, 0xca, //0x00007363 subq %r9, %rdx - 0x48, 0x89, 0xd7, //0x00007366 movq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x00007369 cmpq %rcx, %rdi - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000736c jb LBB28_241 - 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00007372 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007377 .p2align 4, 0x90 - //0x00007380 LBB28_240 - 0x4c, 0x89, 0xca, //0x00007380 movq %r9, %rdx - 0x48, 0xf7, 0xd2, //0x00007383 notq %rdx - 0x48, 0x01, 0xd7, //0x00007386 addq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x00007389 cmpq %rcx, %rdi - 0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x0000738c jae LBB28_247 - //0x00007392 LBB28_241 - 0x48, 0x8d, 0x57, 0x01, //0x00007392 leaq $1(%rdi), %rdx - 0x49, 0x89, 0x17, //0x00007396 movq %rdx, (%r15) - 0x41, 0x8a, 0x04, 0x39, //0x00007399 movb (%r9,%rdi), %al - 0x3c, 0x2c, //0x0000739d cmpb $44, %al - 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x0000739f jne LBB28_249 - 0x49, 0x83, 0xfe, 0x02, //0x000073a5 cmpq $2, %r14 - 0x4d, 0x8d, 0x76, 0xff, //0x000073a9 leaq $-1(%r14), %r14 - 0x0f, 0x8d, 0x6d, 0xfe, 0xff, 0xff, //0x000073ad jge LBB28_215 - //0x000073b3 LBB28_243 - 0x48, 0x8b, 0x45, 0xb8, //0x000073b3 movq $-72(%rbp), %rax - 0x48, 0x83, 0xc0, 0x10, //0x000073b7 addq $16, %rax - 0x4c, 0x8b, 0x55, 0xa8, //0x000073bb movq $-88(%rbp), %r10 - 0x48, 0x89, 0x45, 0xb8, //0x000073bf movq %rax, $-72(%rbp) - 0x4c, 0x39, 0xd0, //0x000073c3 cmpq %r10, %rax - 0x48, 0x8b, 0x4d, 0xa0, //0x000073c6 movq $-96(%rbp), %rcx - 0x0f, 0x85, 0xde, 0xf0, 0xff, 0xff, //0x000073ca jne LBB28_2 - //0x000073d0 LBB28_244 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000073d0 movl $1, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000073d5 vmovq %rax, %xmm0 - 0xc5, 0xfa, 0x7f, 0x01, //0x000073da vmovdqu %xmm0, (%rcx) - 0x48, 0x89, 0xcf, //0x000073de movq %rcx, %rdi - 0x4c, 0x89, 0xde, //0x000073e1 movq %r11, %rsi - 0x4c, 0x89, 0xfa, //0x000073e4 movq %r15, %rdx - 0x31, 0xc9, //0x000073e7 xorl %ecx, %ecx - 0xe8, 0x12, 0xd2, 0xff, 0xff, //0x000073e9 callq _fsm_exec - 0x48, 0x89, 0xc1, //0x000073ee movq %rax, %rcx - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000073f1 jmp LBB28_248 - //0x000073f6 LBB28_245 - 0x49, 0x89, 0x17, //0x000073f6 movq %rdx, (%r15) - //0x000073f9 LBB28_246 - 0x48, 0x89, 0xd0, //0x000073f9 movq %rdx, %rax - //0x000073fc LBB28_247 - 0x48, 0xff, 0xc8, //0x000073fc decq %rax - 0x49, 0x89, 0x07, //0x000073ff movq %rax, (%r15) - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00007402 movq $-2, %rcx - //0x00007409 LBB28_248 - 0x48, 0x89, 0xc8, //0x00007409 movq %rcx, %rax - 0x48, 0x83, 0xc4, 0x38, //0x0000740c addq $56, %rsp - 0x5b, //0x00007410 popq %rbx - 0x41, 0x5c, //0x00007411 popq %r12 - 0x41, 0x5d, //0x00007413 popq %r13 - 0x41, 0x5e, //0x00007415 popq %r14 - 0x41, 0x5f, //0x00007417 popq %r15 - 0x5d, //0x00007419 popq %rbp - 0xc3, //0x0000741a retq - //0x0000741b LBB28_249 - 0x3c, 0x5d, //0x0000741b cmpb $93, %al - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000741d jne LBB28_246 - 0x48, 0x89, 0xd0, //0x00007423 movq %rdx, %rax - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00007426 jmp LBB28_254 - //0x0000742b LBB28_251 - 0x48, 0xff, 0xc8, //0x0000742b decq %rax - 0x49, 0x89, 0x07, //0x0000742e movq %rax, (%r15) - 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00007431 movq $-34, %rcx - 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00007438 jmp LBB28_248 - //0x0000743d LBB28_252 - 0x48, 0x89, 0xd8, //0x0000743d movq %rbx, %rax - //0x00007440 LBB28_253 - 0x80, 0xf9, 0x7d, //0x00007440 cmpb $125, %cl - 0x0f, 0x85, 0xb3, 0xff, 0xff, 0xff, //0x00007443 jne LBB28_247 - //0x00007449 LBB28_254 - 0x48, 0xff, 0xc8, //0x00007449 decq %rax - 0x49, 0x89, 0x07, //0x0000744c movq %rax, (%r15) - 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x0000744f movq $-33, %rcx - 0xe9, 0xae, 0xff, 0xff, 0xff, //0x00007456 jmp LBB28_248 - //0x0000745b LBB28_255 - 0x48, 0x8b, 0x45, 0xc0, //0x0000745b movq $-64(%rbp), %rax - 0x48, 0x8b, 0x40, 0x08, //0x0000745f movq $8(%rax), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00007463 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00007467 movq %rax, (%rcx) - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000746a movq $-1, %rcx - 0xe9, 0x93, 0xff, 0xff, 0xff, //0x00007471 jmp LBB28_248 - //0x00007476 LBB28_256 - 0x48, 0x83, 0xc3, 0x02, //0x00007476 addq $2, %rbx - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000747a movq $-2, %rcx - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007481 jmp LBB28_259 - //0x00007486 LBB28_257 - 0x48, 0xff, 0xc3, //0x00007486 incq %rbx - 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x00007489 movq $-3, %rcx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00007490 jmp LBB28_259 - //0x00007495 LBB28_258 - 0x48, 0xff, 0xc3, //0x00007495 incq %rbx - //0x00007498 LBB28_259 - 0x48, 0x8b, 0x45, 0xd0, //0x00007498 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xcb, //0x0000749c subq %r9, %rbx - 0x48, 0x89, 0x18, //0x0000749f movq %rbx, (%rax) - 0xe9, 0x62, 0xff, 0xff, 0xff, //0x000074a2 jmp LBB28_248 - //0x000074a7 LBB28_260 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000074a7 movq $-2, %rcx - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000074ae jmp LBB28_262 - //0x000074b3 LBB28_261 - 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000074b3 movq $-4, %rcx - //0x000074ba LBB28_262 - 0x4c, 0x89, 0xd3, //0x000074ba movq %r10, %rbx - 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000074bd jmp LBB28_259 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074c2 .p2align 4, 0x90 - //0x000074d0 _validate_utf8 - 0x55, //0x000074d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000074d1 movq %rsp, %rbp - 0x41, 0x57, //0x000074d4 pushq %r15 - 0x41, 0x56, //0x000074d6 pushq %r14 - 0x41, 0x54, //0x000074d8 pushq %r12 - 0x53, //0x000074da pushq %rbx - 0x50, //0x000074db pushq %rax - 0x4c, 0x8b, 0x17, //0x000074dc movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x000074df movq $8(%rdi), %r11 - 0x48, 0x8b, 0x0e, //0x000074e3 movq (%rsi), %rcx - 0x4c, 0x01, 0xd1, //0x000074e6 addq %r10, %rcx - 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x000074e9 leaq $-3(%r10,%r11), %r8 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000074ee jmp LBB29_1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074f3 .p2align 4, 0x90 - //0x00007500 LBB29_19 - 0x48, 0x01, 0xd9, //0x00007500 addq %rbx, %rcx - //0x00007503 LBB29_1 - 0x4c, 0x39, 0xc1, //0x00007503 cmpq %r8, %rcx - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007506 jae LBB29_2 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000750c movl $1, %ebx - 0x80, 0x39, 0x00, //0x00007511 cmpb $0, (%rcx) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007514 jns LBB29_19 - 0x8b, 0x01, //0x0000751a movl (%rcx), %eax - 0x89, 0xc7, //0x0000751c movl %eax, %edi - 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000751e andl $12632304, %edi - 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007524 cmpl $8421600, %edi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000752a jne LBB29_10 - 0x89, 0xc7, //0x00007530 movl %eax, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007532 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007538 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000753e je LBB29_10 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007544 movl $3, %ebx - 0x85, 0xff, //0x00007549 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000754b jne LBB29_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007551 .p2align 4, 0x90 - //0x00007560 LBB29_10 - 0x89, 0xc7, //0x00007560 movl %eax, %edi - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007562 andl $49376, %edi - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007568 cmpl $32960, %edi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000756e jne LBB29_12 - 0x89, 0xc7, //0x00007574 movl %eax, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007576 movl $2, %ebx - 0x83, 0xe7, 0x1e, //0x0000757b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000757e jne LBB29_19 - //0x00007584 LBB29_12 - 0x89, 0xc7, //0x00007584 movl %eax, %edi - 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007586 andl $-1061109512, %edi - 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000758c cmpl $-2139062032, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007592 jne LBB29_16 - 0x89, 0xc7, //0x00007598 movl %eax, %edi - 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000759a andl $12295, %edi - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000075a0 je LBB29_16 - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000075a6 movl $4, %ebx - 0xa8, 0x04, //0x000075ab testb $4, %al - 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000075ad je LBB29_19 - 0x25, 0x03, 0x30, 0x00, 0x00, //0x000075b3 andl $12291, %eax - 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000075b8 je LBB29_19 - //0x000075be LBB29_16 - 0x48, 0x89, 0xcf, //0x000075be movq %rcx, %rdi - 0x4c, 0x29, 0xd7, //0x000075c1 subq %r10, %rdi - 0x48, 0x8b, 0x1a, //0x000075c4 movq (%rdx), %rbx - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000075c7 cmpq $4096, %rbx - 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000075ce jae LBB29_17 - 0x48, 0x63, 0xc7, //0x000075d4 movslq %edi, %rax - 0x48, 0x8d, 0x7b, 0x01, //0x000075d7 leaq $1(%rbx), %rdi - 0x48, 0x89, 0x3a, //0x000075db movq %rdi, (%rdx) - 0x48, 0x89, 0x44, 0xda, 0x08, //0x000075de movq %rax, $8(%rdx,%rbx,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000075e3 movl $1, %ebx - 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000075e8 jmp LBB29_19 - //0x000075ed LBB29_2 - 0x4d, 0x01, 0xd3, //0x000075ed addq %r10, %r11 - 0x4c, 0x39, 0xd9, //0x000075f0 cmpq %r11, %rcx - 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x000075f3 jae LBB29_36 - 0x4c, 0x8d, 0x45, 0xdc, //0x000075f9 leaq $-36(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xda, //0x000075fd leaq $-38(%rbp), %r9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007601 jmp LBB29_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007606 .p2align 4, 0x90 - //0x00007610 LBB29_5 - 0x48, 0xff, 0xc1, //0x00007610 incq %rcx - 0x4c, 0x39, 0xd9, //0x00007613 cmpq %r11, %rcx - 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007616 jae LBB29_36 - //0x0000761c LBB29_4 - 0x80, 0x39, 0x00, //0x0000761c cmpb $0, (%rcx) - 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000761f jns LBB29_5 - 0xc6, 0x45, 0xdc, 0x00, //0x00007625 movb $0, $-36(%rbp) - 0xc6, 0x45, 0xda, 0x00, //0x00007629 movb $0, $-38(%rbp) - 0x4c, 0x89, 0xdb, //0x0000762d movq %r11, %rbx - 0x48, 0x29, 0xcb, //0x00007630 subq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00007633 cmpq $2, %rbx - 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007637 jb LBB29_21 - 0x44, 0x0f, 0xb6, 0x21, //0x0000763d movzbl (%rcx), %r12d - 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007641 movzbl $1(%rcx), %r14d - 0x44, 0x88, 0x65, 0xdc, //0x00007646 movb %r12b, $-36(%rbp) - 0x4c, 0x8d, 0x79, 0x02, //0x0000764a leaq $2(%rcx), %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x0000764e addq $-2, %rbx - 0x4c, 0x89, 0xcf, //0x00007652 movq %r9, %rdi - 0x48, 0x85, 0xdb, //0x00007655 testq %rbx, %rbx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007658 je LBB29_24 - //0x0000765e LBB29_25 - 0x41, 0x0f, 0xb6, 0x07, //0x0000765e movzbl (%r15), %eax - 0x88, 0x07, //0x00007662 movb %al, (%rdi) - 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007664 movzbl $-36(%rbp), %r12d - 0x0f, 0xb6, 0x7d, 0xda, //0x00007669 movzbl $-38(%rbp), %edi - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000766d jmp LBB29_26 - //0x00007672 LBB29_21 - 0x45, 0x31, 0xe4, //0x00007672 xorl %r12d, %r12d - 0x45, 0x31, 0xf6, //0x00007675 xorl %r14d, %r14d - 0x4c, 0x89, 0xc7, //0x00007678 movq %r8, %rdi - 0x49, 0x89, 0xcf, //0x0000767b movq %rcx, %r15 - 0x48, 0x85, 0xdb, //0x0000767e testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007681 jne LBB29_25 - //0x00007687 LBB29_24 - 0x31, 0xff, //0x00007687 xorl %edi, %edi - //0x00007689 LBB29_26 - 0x40, 0x0f, 0xb6, 0xc7, //0x00007689 movzbl %dil, %eax - 0xc1, 0xe0, 0x10, //0x0000768d shll $16, %eax - 0x41, 0x0f, 0xb6, 0xde, //0x00007690 movzbl %r14b, %ebx - 0xc1, 0xe3, 0x08, //0x00007694 shll $8, %ebx - 0x41, 0x0f, 0xb6, 0xfc, //0x00007697 movzbl %r12b, %edi - 0x09, 0xdf, //0x0000769b orl %ebx, %edi - 0x09, 0xf8, //0x0000769d orl %edi, %eax - 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x0000769f andl $12632304, %eax - 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000076a4 cmpl $8421600, %eax - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000076a9 jne LBB29_29 - 0x89, 0xf8, //0x000076af movl %edi, %eax - 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000076b1 andl $8207, %eax - 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000076b6 cmpl $8205, %eax - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000076bb je LBB29_29 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000076c1 movl $3, %ebx - 0x85, 0xc0, //0x000076c6 testl %eax, %eax - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000076c8 jne LBB29_34 - 0x90, 0x90, //0x000076ce .p2align 4, 0x90 - //0x000076d0 LBB29_29 - 0x41, 0xf6, 0xc4, 0x1e, //0x000076d0 testb $30, %r12b - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000076d4 je LBB29_31 - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000076da andl $49376, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000076e0 movl $2, %ebx - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000076e5 cmpl $32960, %edi - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000076eb jne LBB29_31 - //0x000076f1 LBB29_34 - 0x48, 0x01, 0xd9, //0x000076f1 addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x000076f4 cmpq %r11, %rcx - 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x000076f7 jb LBB29_4 - 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000076fd jmp LBB29_36 - //0x00007702 LBB29_31 - 0x48, 0x89, 0xc8, //0x00007702 movq %rcx, %rax - 0x4c, 0x29, 0xd0, //0x00007705 subq %r10, %rax - 0x48, 0x8b, 0x3a, //0x00007708 movq (%rdx), %rdi - 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000770b cmpq $4096, %rdi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007712 jae LBB29_32 - 0x48, 0x98, //0x00007718 cltq - 0x48, 0x8d, 0x5f, 0x01, //0x0000771a leaq $1(%rdi), %rbx - 0x48, 0x89, 0x1a, //0x0000771e movq %rbx, (%rdx) - 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007721 movq %rax, $8(%rdx,%rdi,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007726 movl $1, %ebx - 0x48, 0x01, 0xd9, //0x0000772b addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x0000772e cmpq %r11, %rcx - 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007731 jb LBB29_4 - //0x00007737 LBB29_36 - 0x4c, 0x29, 0xd1, //0x00007737 subq %r10, %rcx - 0x48, 0x89, 0x0e, //0x0000773a movq %rcx, (%rsi) - 0x31, 0xc0, //0x0000773d xorl %eax, %eax - //0x0000773f LBB29_37 - 0x48, 0x83, 0xc4, 0x08, //0x0000773f addq $8, %rsp - 0x5b, //0x00007743 popq %rbx - 0x41, 0x5c, //0x00007744 popq %r12 - 0x41, 0x5e, //0x00007746 popq %r14 - 0x41, 0x5f, //0x00007748 popq %r15 - 0x5d, //0x0000774a popq %rbp - 0xc3, //0x0000774b retq - //0x0000774c LBB29_32 - 0x48, 0x89, 0x06, //0x0000774c movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000774f movq $-1, %rax - 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007756 jmp LBB29_37 - //0x0000775b LBB29_17 - 0x48, 0x89, 0x3e, //0x0000775b movq %rdi, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000775e movq $-1, %rax - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007765 jmp LBB29_37 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000776a .p2align 4, 0x90 - //0x00007770 _validate_utf8_fast - 0x55, //0x00007770 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007771 movq %rsp, %rbp - 0x53, //0x00007774 pushq %rbx - 0x50, //0x00007775 pushq %rax - 0x4c, 0x8b, 0x17, //0x00007776 movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x00007779 movq $8(%rdi), %r11 - 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000777d leaq $-3(%r10,%r11), %rsi - 0x4c, 0x89, 0xd0, //0x00007782 movq %r10, %rax - 0x49, 0x39, 0xf2, //0x00007785 cmpq %rsi, %r10 - 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007788 jae LBB30_14 - 0x4c, 0x89, 0xd0, //0x0000778e movq %r10, %rax - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007791 jmp LBB30_3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007796 .p2align 4, 0x90 - //0x000077a0 LBB30_2 - 0x48, 0x01, 0xd0, //0x000077a0 addq %rdx, %rax - 0x48, 0x39, 0xf0, //0x000077a3 cmpq %rsi, %rax - 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x000077a6 jae LBB30_14 - //0x000077ac LBB30_3 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x000077ac movl $1, %edx - 0x80, 0x38, 0x00, //0x000077b1 cmpb $0, (%rax) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000077b4 jns LBB30_2 - 0x8b, 0x38, //0x000077ba movl (%rax), %edi - 0x89, 0xf9, //0x000077bc movl %edi, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000077be andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000077c4 cmpl $8421600, %ecx - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000077ca jne LBB30_7 - 0x89, 0xf9, //0x000077d0 movl %edi, %ecx - 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000077d2 andl $8207, %ecx - 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000077d8 cmpl $8205, %ecx - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000077de je LBB30_7 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000077e4 movl $3, %edx - 0x85, 0xc9, //0x000077e9 testl %ecx, %ecx - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000077eb jne LBB30_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077f1 .p2align 4, 0x90 - //0x00007800 LBB30_7 - 0x89, 0xf9, //0x00007800 movl %edi, %ecx - 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x00007802 andl $49376, %ecx - 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00007808 cmpl $32960, %ecx - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000780e jne LBB30_9 - 0x89, 0xf9, //0x00007814 movl %edi, %ecx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007816 movl $2, %edx - 0x83, 0xe1, 0x1e, //0x0000781b andl $30, %ecx - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000781e jne LBB30_2 - //0x00007824 LBB30_9 - 0x89, 0xf9, //0x00007824 movl %edi, %ecx - 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007826 andl $-1061109512, %ecx - 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x0000782c cmpl $-2139062032, %ecx - 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007832 jne LBB30_13 - 0x89, 0xf9, //0x00007838 movl %edi, %ecx - 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000783a andl $12295, %ecx - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007840 je LBB30_13 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007846 movl $4, %edx - 0x40, 0xf6, 0xc7, 0x04, //0x0000784b testb $4, %dil - 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x0000784f je LBB30_2 - 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007855 andl $12291, %edi - 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x0000785b je LBB30_2 - //0x00007861 LBB30_13 - 0x48, 0xf7, 0xd0, //0x00007861 notq %rax - 0x4c, 0x01, 0xd0, //0x00007864 addq %r10, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00007867 addq $8, %rsp - 0x5b, //0x0000786b popq %rbx - 0x5d, //0x0000786c popq %rbp - 0xc3, //0x0000786d retq - //0x0000786e LBB30_14 - 0x4d, 0x01, 0xd3, //0x0000786e addq %r10, %r11 - 0x4c, 0x39, 0xd8, //0x00007871 cmpq %r11, %rax - 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007874 jae LBB30_30 - 0x4c, 0x8d, 0x45, 0xf4, //0x0000787a leaq $-12(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xf2, //0x0000787e leaq $-14(%rbp), %r9 - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007882 jmp LBB30_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007887 .p2align 4, 0x90 - //0x00007890 LBB30_16 - 0x48, 0xff, 0xc0, //0x00007890 incq %rax - 0x4c, 0x39, 0xd8, //0x00007893 cmpq %r11, %rax - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007896 jae LBB30_30 - //0x0000789c LBB30_17 - 0x80, 0x38, 0x00, //0x0000789c cmpb $0, (%rax) - 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000789f jns LBB30_16 - 0xc6, 0x45, 0xf4, 0x00, //0x000078a5 movb $0, $-12(%rbp) - 0xc6, 0x45, 0xf2, 0x00, //0x000078a9 movb $0, $-14(%rbp) - 0x4c, 0x89, 0xda, //0x000078ad movq %r11, %rdx - 0x48, 0x29, 0xc2, //0x000078b0 subq %rax, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x000078b3 cmpq $2, %rdx - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x000078b7 jb LBB30_21 - 0x0f, 0xb6, 0x30, //0x000078bd movzbl (%rax), %esi - 0x0f, 0xb6, 0x78, 0x01, //0x000078c0 movzbl $1(%rax), %edi - 0x40, 0x88, 0x75, 0xf4, //0x000078c4 movb %sil, $-12(%rbp) - 0x48, 0x8d, 0x48, 0x02, //0x000078c8 leaq $2(%rax), %rcx - 0x48, 0x83, 0xc2, 0xfe, //0x000078cc addq $-2, %rdx - 0x4c, 0x89, 0xcb, //0x000078d0 movq %r9, %rbx - 0x48, 0x85, 0xd2, //0x000078d3 testq %rdx, %rdx - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000078d6 je LBB30_22 - //0x000078dc LBB30_20 - 0x0f, 0xb6, 0x09, //0x000078dc movzbl (%rcx), %ecx - 0x88, 0x0b, //0x000078df movb %cl, (%rbx) - 0x0f, 0xb6, 0x75, 0xf4, //0x000078e1 movzbl $-12(%rbp), %esi - 0x0f, 0xb6, 0x4d, 0xf2, //0x000078e5 movzbl $-14(%rbp), %ecx - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000078e9 jmp LBB30_23 - //0x000078ee LBB30_21 - 0x31, 0xf6, //0x000078ee xorl %esi, %esi - 0x31, 0xff, //0x000078f0 xorl %edi, %edi - 0x4c, 0x89, 0xc3, //0x000078f2 movq %r8, %rbx - 0x48, 0x89, 0xc1, //0x000078f5 movq %rax, %rcx - 0x48, 0x85, 0xd2, //0x000078f8 testq %rdx, %rdx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x000078fb jne LBB30_20 - //0x00007901 LBB30_22 - 0x31, 0xc9, //0x00007901 xorl %ecx, %ecx - //0x00007903 LBB30_23 - 0x0f, 0xb6, 0xc9, //0x00007903 movzbl %cl, %ecx - 0xc1, 0xe1, 0x10, //0x00007906 shll $16, %ecx - 0x40, 0x0f, 0xb6, 0xff, //0x00007909 movzbl %dil, %edi - 0xc1, 0xe7, 0x08, //0x0000790d shll $8, %edi - 0x40, 0x0f, 0xb6, 0xd6, //0x00007910 movzbl %sil, %edx - 0x09, 0xfa, //0x00007914 orl %edi, %edx - 0x09, 0xd1, //0x00007916 orl %edx, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x00007918 andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x0000791e cmpl $8421600, %ecx - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007924 jne LBB30_26 - 0x89, 0xd7, //0x0000792a movl %edx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000792c andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007932 cmpl $8205, %edi - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00007938 je LBB30_26 - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000793e movl $3, %ecx - 0x85, 0xff, //0x00007943 testl %edi, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007945 jne LBB30_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000794b .p2align 4, 0x90 - //0x00007950 LBB30_26 - 0x40, 0xf6, 0xc6, 0x1e, //0x00007950 testb $30, %sil - 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007954 je LBB30_13 - 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x0000795a andl $49376, %edx - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007960 movl $2, %ecx - 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007965 cmpl $32960, %edx - 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x0000796b jne LBB30_13 - //0x00007971 LBB30_28 - 0x48, 0x01, 0xc8, //0x00007971 addq %rcx, %rax - 0x4c, 0x39, 0xd8, //0x00007974 cmpq %r11, %rax - 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007977 jb LBB30_17 - //0x0000797d LBB30_30 - 0x31, 0xc0, //0x0000797d xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x0000797f addq $8, %rsp - 0x5b, //0x00007983 popq %rbx - 0x5d, //0x00007984 popq %rbp - 0xc3, //0x00007985 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007986 .p2align 5, 0x00 - //0x000079a0 LCPI31_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000079a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000079b0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000079c0 .p2align 4, 0x90 - //0x000079c0 _f32toa - 0x55, //0x000079c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000079c1 movq %rsp, %rbp - 0x41, 0x57, //0x000079c4 pushq %r15 - 0x41, 0x56, //0x000079c6 pushq %r14 - 0x41, 0x55, //0x000079c8 pushq %r13 - 0x41, 0x54, //0x000079ca pushq %r12 - 0x53, //0x000079cc pushq %rbx - 0xc5, 0xf9, 0x7e, 0xc0, //0x000079cd vmovd %xmm0, %eax - 0x89, 0xc1, //0x000079d1 movl %eax, %ecx - 0xc1, 0xe9, 0x17, //0x000079d3 shrl $23, %ecx - 0x0f, 0xb6, 0xd9, //0x000079d6 movzbl %cl, %ebx - 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x000079d9 cmpl $255, %ebx - 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x000079df je LBB31_139 - 0xc6, 0x07, 0x2d, //0x000079e5 movb $45, (%rdi) - 0x41, 0x89, 0xc1, //0x000079e8 movl %eax, %r9d - 0x41, 0xc1, 0xe9, 0x1f, //0x000079eb shrl $31, %r9d - 0x4e, 0x8d, 0x04, 0x0f, //0x000079ef leaq (%rdi,%r9), %r8 - 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x000079f3 testl $2147483647, %eax - 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x000079f8 je LBB31_14 - 0x25, 0xff, 0xff, 0x7f, 0x00, //0x000079fe andl $8388607, %eax - 0x85, 0xdb, //0x00007a03 testl %ebx, %ebx - 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x00007a05 je LBB31_140 - 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x00007a0b leal $8388608(%rax), %esi - 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00007a11 leal $-150(%rbx), %r15d - 0x8d, 0x4b, 0x81, //0x00007a18 leal $-127(%rbx), %ecx - 0x83, 0xf9, 0x17, //0x00007a1b cmpl $23, %ecx - 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x00007a1e ja LBB31_5 - 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007a24 movl $150, %ecx - 0x29, 0xd9, //0x00007a29 subl %ebx, %ecx - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00007a2b movq $-1, %rdx - 0x48, 0xd3, 0xe2, //0x00007a32 shlq %cl, %rdx - 0xf7, 0xd2, //0x00007a35 notl %edx - 0x85, 0xf2, //0x00007a37 testl %esi, %edx - 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00007a39 je LBB31_32 - //0x00007a3f LBB31_5 - 0x41, 0x89, 0xf6, //0x00007a3f movl %esi, %r14d - 0x41, 0x83, 0xe6, 0x01, //0x00007a42 andl $1, %r14d - 0x85, 0xc0, //0x00007a46 testl %eax, %eax - 0x0f, 0x94, 0xc0, //0x00007a48 sete %al - 0x83, 0xfb, 0x01, //0x00007a4b cmpl $1, %ebx - 0x0f, 0x97, 0xc1, //0x00007a4e seta %cl - 0x20, 0xc1, //0x00007a51 andb %al, %cl - 0x0f, 0xb6, 0xc9, //0x00007a53 movzbl %cl, %ecx - 0x41, 0x89, 0xf2, //0x00007a56 movl %esi, %r10d - 0x41, 0xc1, 0xe2, 0x02, //0x00007a59 shll $2, %r10d - 0x8d, 0x44, 0xb1, 0xfe, //0x00007a5d leal $-2(%rcx,%rsi,4), %eax - 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00007a61 imull $1262611, %r15d, %r11d - 0x31, 0xd2, //0x00007a68 xorl %edx, %edx - 0x84, 0xc9, //0x00007a6a testb %cl, %cl - 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x00007a6c movl $524031, %ecx - 0x0f, 0x44, 0xca, //0x00007a71 cmovel %edx, %ecx - 0x41, 0x29, 0xcb, //0x00007a74 subl %ecx, %r11d - 0x41, 0xc1, 0xfb, 0x16, //0x00007a77 sarl $22, %r11d - 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x00007a7b imull $-1741647, %r11d, %ecx - 0xc1, 0xe9, 0x13, //0x00007a82 shrl $19, %ecx - 0x44, 0x01, 0xf9, //0x00007a85 addl %r15d, %ecx - 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007a88 movl $31, %edx - 0x44, 0x29, 0xda, //0x00007a8d subl %r11d, %edx - 0x48, 0x63, 0xd2, //0x00007a90 movslq %edx, %rdx - 0x48, 0x8d, 0x1d, 0xd6, 0xb7, 0x00, 0x00, //0x00007a93 leaq $47062(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ - 0xfe, 0xc1, //0x00007a9a incb %cl - 0xd3, 0xe0, //0x00007a9c shll %cl, %eax - 0x4c, 0x8b, 0x24, 0xd3, //0x00007a9e movq (%rbx,%rdx,8), %r12 - 0x49, 0xf7, 0xe4, //0x00007aa2 mulq %r12 - 0x48, 0xc1, 0xe8, 0x20, //0x00007aa5 shrq $32, %rax - 0x31, 0xdb, //0x00007aa9 xorl %ebx, %ebx - 0x83, 0xf8, 0x01, //0x00007aab cmpl $1, %eax - 0x0f, 0x97, 0xc3, //0x00007aae seta %bl - 0x41, 0xd3, 0xe2, //0x00007ab1 shll %cl, %r10d - 0x09, 0xd3, //0x00007ab4 orl %edx, %ebx - 0x4c, 0x89, 0xd0, //0x00007ab6 movq %r10, %rax - 0x49, 0xf7, 0xe4, //0x00007ab9 mulq %r12 - 0x49, 0x89, 0xd2, //0x00007abc movq %rdx, %r10 - 0x48, 0xc1, 0xe8, 0x20, //0x00007abf shrq $32, %rax - 0x45, 0x31, 0xff, //0x00007ac3 xorl %r15d, %r15d - 0x83, 0xf8, 0x01, //0x00007ac6 cmpl $1, %eax - 0x41, 0x0f, 0x97, 0xc7, //0x00007ac9 seta %r15b - 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x00007acd leal $2(,%rsi,4), %eax - 0xd3, 0xe0, //0x00007ad4 shll %cl, %eax - 0x45, 0x09, 0xd7, //0x00007ad6 orl %r10d, %r15d - 0x49, 0xf7, 0xe4, //0x00007ad9 mulq %r12 - 0x48, 0xc1, 0xe8, 0x20, //0x00007adc shrq $32, %rax - 0x31, 0xc9, //0x00007ae0 xorl %ecx, %ecx - 0x83, 0xf8, 0x01, //0x00007ae2 cmpl $1, %eax - 0x0f, 0x97, 0xc1, //0x00007ae5 seta %cl - 0x09, 0xd1, //0x00007ae8 orl %edx, %ecx - 0x44, 0x01, 0xf3, //0x00007aea addl %r14d, %ebx - 0x44, 0x29, 0xf1, //0x00007aed subl %r14d, %ecx - 0x41, 0x83, 0xff, 0x28, //0x00007af0 cmpl $40, %r15d - 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00007af4 jb LBB31_12 - 0x44, 0x89, 0xd2, //0x00007afa movl %r10d, %edx - 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007afd movl $3435973837, %eax - 0x48, 0x0f, 0xaf, 0xc2, //0x00007b02 imulq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007b06 shrq $37, %rax - 0x41, 0x89, 0xde, //0x00007b0a movl %ebx, %r14d - 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x00007b0d leaq (,%rax,8), %rsi - 0x48, 0x8d, 0x14, 0xb6, //0x00007b15 leaq (%rsi,%rsi,4), %rdx - 0x4c, 0x39, 0xf2, //0x00007b19 cmpq %r14, %rdx - 0x41, 0x0f, 0x93, 0xc4, //0x00007b1c setae %r12b - 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00007b20 leaq $40(%rsi,%rsi,4), %r14 - 0x89, 0xce, //0x00007b25 movl %ecx, %esi - 0x49, 0x39, 0xf6, //0x00007b27 cmpq %rsi, %r14 - 0x0f, 0x96, 0xc2, //0x00007b2a setbe %dl - 0x41, 0x38, 0xd4, //0x00007b2d cmpb %dl, %r12b - 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00007b30 je LBB31_12 - 0x45, 0x31, 0xed, //0x00007b36 xorl %r13d, %r13d - 0x49, 0x39, 0xf6, //0x00007b39 cmpq %rsi, %r14 - 0x41, 0x0f, 0x96, 0xc5, //0x00007b3c setbe %r13b - 0x41, 0x01, 0xc5, //0x00007b40 addl %eax, %r13d - 0x41, 0xff, 0xc3, //0x00007b43 incl %r11d - 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007b46 cmpl $100000, %r13d - 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x00007b4d jae LBB31_18 - //0x00007b53 LBB31_8 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007b53 movl $1, %eax - 0x41, 0x83, 0xfd, 0x0a, //0x00007b58 cmpl $10, %r13d - 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x00007b5c jb LBB31_22 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007b62 movl $2, %eax - 0x41, 0x83, 0xfd, 0x64, //0x00007b67 cmpl $100, %r13d - 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x00007b6b jb LBB31_22 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007b71 movl $3, %eax - 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00007b76 cmpl $1000, %r13d - 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x00007b7d jb LBB31_22 - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007b83 cmpl $10000, %r13d - 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00007b8a movl $5, %eax - 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x00007b8f jmp LBB31_21 - //0x00007b94 LBB31_12 - 0x4d, 0x89, 0xd6, //0x00007b94 movq %r10, %r14 - 0x49, 0xc1, 0xee, 0x02, //0x00007b97 shrq $2, %r14 - 0x44, 0x89, 0xd6, //0x00007b9b movl %r10d, %esi - 0x83, 0xe6, 0xfc, //0x00007b9e andl $-4, %esi - 0x39, 0xf3, //0x00007ba1 cmpl %esi, %ebx - 0x0f, 0x96, 0xc2, //0x00007ba3 setbe %dl - 0x8d, 0x5e, 0x04, //0x00007ba6 leal $4(%rsi), %ebx - 0x39, 0xcb, //0x00007ba9 cmpl %ecx, %ebx - 0x0f, 0x96, 0xc0, //0x00007bab setbe %al - 0x38, 0xc2, //0x00007bae cmpb %al, %dl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00007bb0 je LBB31_15 - 0x45, 0x31, 0xed, //0x00007bb6 xorl %r13d, %r13d - 0x39, 0xcb, //0x00007bb9 cmpl %ecx, %ebx - 0x41, 0x0f, 0x96, 0xc5, //0x00007bbb setbe %r13b - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00007bbf jmp LBB31_17 - //0x00007bc4 LBB31_14 - 0x41, 0xc6, 0x00, 0x30, //0x00007bc4 movb $48, (%r8) - 0x41, 0x29, 0xf8, //0x00007bc8 subl %edi, %r8d - 0x41, 0xff, 0xc0, //0x00007bcb incl %r8d - 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x00007bce jmp LBB31_138 - //0x00007bd3 LBB31_15 - 0x83, 0xce, 0x02, //0x00007bd3 orl $2, %esi - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007bd6 movl $1, %r13d - 0x41, 0x39, 0xf7, //0x00007bdc cmpl %esi, %r15d - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007bdf ja LBB31_17 - 0x0f, 0x94, 0xc0, //0x00007be5 sete %al - 0x41, 0xc0, 0xea, 0x02, //0x00007be8 shrb $2, %r10b - 0x41, 0x20, 0xc2, //0x00007bec andb %al, %r10b - 0x45, 0x0f, 0xb6, 0xea, //0x00007bef movzbl %r10b, %r13d - //0x00007bf3 LBB31_17 - 0x45, 0x01, 0xf5, //0x00007bf3 addl %r14d, %r13d - 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007bf6 cmpl $100000, %r13d - 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x00007bfd jb LBB31_8 - //0x00007c03 LBB31_18 - 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007c03 movl $6, %eax - 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00007c08 cmpl $1000000, %r13d - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007c0f jb LBB31_22 - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007c15 movl $7, %eax - 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x00007c1a cmpl $10000000, %r13d - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007c21 jb LBB31_22 - 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00007c27 cmpl $100000000, %r13d - 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007c2e movl $9, %eax - //0x00007c33 LBB31_21 - 0x83, 0xd8, 0x00, //0x00007c33 sbbl $0, %eax - //0x00007c36 LBB31_22 - 0x46, 0x8d, 0x3c, 0x18, //0x00007c36 leal (%rax,%r11), %r15d - 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x00007c3a leal $5(%rax,%r11), %ecx - 0x83, 0xf9, 0x1b, //0x00007c3f cmpl $27, %ecx - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007c42 jb LBB31_26 - 0x89, 0xc0, //0x00007c48 movl %eax, %eax - 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x00007c4a leaq $1(%r8,%rax), %rbx - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007c4f cmpl $10000, %r13d - 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x00007c56 jb LBB31_30 - 0x44, 0x89, 0xe8, //0x00007c5c movl %r13d, %eax - 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007c5f movl $3518437209, %r11d - 0x4c, 0x0f, 0xaf, 0xd8, //0x00007c65 imulq %rax, %r11 - 0x49, 0xc1, 0xeb, 0x2d, //0x00007c69 shrq $45, %r11 - 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007c6d imull $-10000, %r11d, %eax - 0x44, 0x01, 0xe8, //0x00007c74 addl %r13d, %eax - 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x00007c77 je LBB31_62 - 0x89, 0xc1, //0x00007c7d movl %eax, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007c7f imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x00007c86 shrq $37, %rcx - 0x6b, 0xd1, 0x64, //0x00007c8a imull $100, %ecx, %edx - 0x29, 0xd0, //0x00007c8d subl %edx, %eax - 0x48, 0x8d, 0x15, 0x5a, 0x42, 0x00, 0x00, //0x00007c8f leaq $16986(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x42, //0x00007c96 movzwl (%rdx,%rax,2), %eax - 0x66, 0x89, 0x43, 0xfe, //0x00007c9a movw %ax, $-2(%rbx) - 0x0f, 0xb7, 0x04, 0x4a, //0x00007c9e movzwl (%rdx,%rcx,2), %eax - 0x66, 0x89, 0x43, 0xfc, //0x00007ca2 movw %ax, $-4(%rbx) - 0x45, 0x31, 0xc9, //0x00007ca6 xorl %r9d, %r9d - 0x48, 0x8d, 0x4b, 0xfc, //0x00007ca9 leaq $-4(%rbx), %rcx - 0x41, 0x83, 0xfb, 0x64, //0x00007cad cmpl $100, %r11d - 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00007cb1 jae LBB31_64 - //0x00007cb7 LBB31_31 - 0x44, 0x89, 0xda, //0x00007cb7 movl %r11d, %edx - 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00007cba jmp LBB31_66 - //0x00007cbf LBB31_26 - 0x41, 0x89, 0xc4, //0x00007cbf movl %eax, %r12d - 0x45, 0x85, 0xdb, //0x00007cc2 testl %r11d, %r11d - 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00007cc5 js LBB31_38 - 0x4b, 0x8d, 0x34, 0x20, //0x00007ccb leaq (%r8,%r12), %rsi - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007ccf cmpl $10000, %r13d - 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00007cd6 jb LBB31_43 - 0x44, 0x89, 0xe8, //0x00007cdc movl %r13d, %eax - 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00007cdf movl $3518437209, %ecx - 0x48, 0x0f, 0xaf, 0xc8, //0x00007ce4 imulq %rax, %rcx - 0x48, 0xc1, 0xe9, 0x2d, //0x00007ce8 shrq $45, %rcx - 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00007cec imull $-10000, %ecx, %eax - 0x44, 0x01, 0xe8, //0x00007cf2 addl %r13d, %eax - 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00007cf5 imulq $1374389535, %rax, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00007cfc shrq $37, %rdx - 0x6b, 0xda, 0x64, //0x00007d00 imull $100, %edx, %ebx - 0x29, 0xd8, //0x00007d03 subl %ebx, %eax - 0x48, 0x8d, 0x1d, 0xe4, 0x41, 0x00, 0x00, //0x00007d05 leaq $16868(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x43, //0x00007d0c movzwl (%rbx,%rax,2), %eax - 0x66, 0x89, 0x46, 0xfe, //0x00007d10 movw %ax, $-2(%rsi) - 0x48, 0x8d, 0x46, 0xfc, //0x00007d14 leaq $-4(%rsi), %rax - 0x0f, 0xb7, 0x14, 0x53, //0x00007d18 movzwl (%rbx,%rdx,2), %edx - 0x66, 0x89, 0x56, 0xfc, //0x00007d1c movw %dx, $-4(%rsi) - 0x41, 0x89, 0xcd, //0x00007d20 movl %ecx, %r13d - 0x41, 0x83, 0xfd, 0x64, //0x00007d23 cmpl $100, %r13d - 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00007d27 jae LBB31_44 - //0x00007d2d LBB31_29 - 0x44, 0x89, 0xe9, //0x00007d2d movl %r13d, %ecx - 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00007d30 jmp LBB31_46 - //0x00007d35 LBB31_30 - 0x45, 0x31, 0xc9, //0x00007d35 xorl %r9d, %r9d - 0x48, 0x89, 0xd9, //0x00007d38 movq %rbx, %rcx - 0x45, 0x89, 0xeb, //0x00007d3b movl %r13d, %r11d - 0x41, 0x83, 0xfb, 0x64, //0x00007d3e cmpl $100, %r11d - 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00007d42 jb LBB31_31 - //0x00007d48 LBB31_64 - 0x48, 0xff, 0xc9, //0x00007d48 decq %rcx - 0x4c, 0x8d, 0x15, 0x9e, 0x41, 0x00, 0x00, //0x00007d4b leaq $16798(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d52 .p2align 4, 0x90 - //0x00007d60 LBB31_65 - 0x44, 0x89, 0xda, //0x00007d60 movl %r11d, %edx - 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00007d63 imulq $1374389535, %rdx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00007d6a shrq $37, %rdx - 0x6b, 0xc2, 0x64, //0x00007d6e imull $100, %edx, %eax - 0x44, 0x89, 0xde, //0x00007d71 movl %r11d, %esi - 0x29, 0xc6, //0x00007d74 subl %eax, %esi - 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x00007d76 movzwl (%r10,%rsi,2), %eax - 0x66, 0x89, 0x41, 0xff, //0x00007d7b movw %ax, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00007d7f addq $-2, %rcx - 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00007d83 cmpl $9999, %r11d - 0x41, 0x89, 0xd3, //0x00007d8a movl %edx, %r11d - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007d8d ja LBB31_65 - //0x00007d93 LBB31_66 - 0x49, 0x8d, 0x70, 0x01, //0x00007d93 leaq $1(%r8), %rsi - 0x83, 0xfa, 0x0a, //0x00007d97 cmpl $10, %edx - 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00007d9a jb LBB31_68 - 0x89, 0xd0, //0x00007da0 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x47, 0x41, 0x00, 0x00, //0x00007da2 leaq $16711(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x00007da9 movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x00007dac movb $1(%rcx,%rax,2), %al - 0x41, 0x88, 0x50, 0x01, //0x00007db0 movb %dl, $1(%r8) - 0x41, 0x88, 0x40, 0x02, //0x00007db4 movb %al, $2(%r8) - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00007db8 jmp LBB31_69 - //0x00007dbd LBB31_68 - 0x80, 0xc2, 0x30, //0x00007dbd addb $48, %dl - 0x88, 0x16, //0x00007dc0 movb %dl, (%rsi) - //0x00007dc2 LBB31_69 - 0x4c, 0x29, 0xcb, //0x00007dc2 subq %r9, %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007dc5 .p2align 4, 0x90 - //0x00007dd0 LBB31_70 - 0x80, 0x7b, 0xff, 0x30, //0x00007dd0 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00007dd4 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00007dd8 je LBB31_70 - 0x41, 0x88, 0x10, //0x00007dde movb %dl, (%r8) - 0x48, 0x8d, 0x43, 0x01, //0x00007de1 leaq $1(%rbx), %rax - 0x48, 0x89, 0xc1, //0x00007de5 movq %rax, %rcx - 0x48, 0x29, 0xf1, //0x00007de8 subq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00007deb cmpq $2, %rcx - 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00007def jl LBB31_73 - 0xc6, 0x06, 0x2e, //0x00007df5 movb $46, (%rsi) - 0x48, 0x89, 0xc3, //0x00007df8 movq %rax, %rbx - //0x00007dfb LBB31_73 - 0xc6, 0x03, 0x65, //0x00007dfb movb $101, (%rbx) - 0x45, 0x85, 0xff, //0x00007dfe testl %r15d, %r15d - 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00007e01 jle LBB31_76 - 0x41, 0xff, 0xcf, //0x00007e07 decl %r15d - 0xc6, 0x43, 0x01, 0x2b, //0x00007e0a movb $43, $1(%rbx) - 0x44, 0x89, 0xf8, //0x00007e0e movl %r15d, %eax - 0x83, 0xf8, 0x64, //0x00007e11 cmpl $100, %eax - 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00007e14 jl LBB31_77 - //0x00007e1a LBB31_75 - 0x89, 0xc1, //0x00007e1a movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007e1c movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00007e21 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x00007e25 shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x00007e29 leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x00007e2c leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x00007e2f subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0xb8, 0x40, 0x00, 0x00, //0x00007e31 leaq $16568(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x00007e38 movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x00007e3c movw %cx, $2(%rbx) - 0x0c, 0x30, //0x00007e40 orb $48, %al - 0x88, 0x43, 0x04, //0x00007e42 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x00007e45 addq $5, %rbx - 0x49, 0x89, 0xd8, //0x00007e49 movq %rbx, %r8 - 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x00007e4c jmp LBB31_137 - //0x00007e51 LBB31_32 - 0xd3, 0xee, //0x00007e51 shrl %cl, %esi - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00007e53 cmpl $100000, %esi - 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x00007e59 jb LBB31_52 - 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007e5f movl $6, %eax - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00007e64 cmpl $1000000, %esi - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007e6a jb LBB31_36 - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007e70 movl $7, %eax - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00007e75 cmpl $10000000, %esi - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007e7b jb LBB31_36 - 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00007e81 cmpl $100000000, %esi - 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007e87 movl $9, %eax - 0x48, 0x83, 0xd8, 0x00, //0x00007e8c sbbq $0, %rax - //0x00007e90 LBB31_36 - 0x4c, 0x01, 0xc0, //0x00007e90 addq %r8, %rax - //0x00007e93 LBB31_37 - 0x89, 0xf1, //0x00007e93 movl %esi, %ecx - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007e95 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00007e9a imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00007e9e shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00007ea2 imull $-10000, %edx, %ecx - 0x01, 0xf1, //0x00007ea8 addl %esi, %ecx - 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00007eaa imulq $1374389535, %rcx, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00007eb1 shrq $37, %rsi - 0x6b, 0xde, 0x64, //0x00007eb5 imull $100, %esi, %ebx - 0x29, 0xd9, //0x00007eb8 subl %ebx, %ecx - 0x48, 0x8d, 0x1d, 0x2f, 0x40, 0x00, 0x00, //0x00007eba leaq $16431(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4b, //0x00007ec1 movzwl (%rbx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0xfe, //0x00007ec5 movw %cx, $-2(%rax) - 0x0f, 0xb7, 0x0c, 0x73, //0x00007ec9 movzwl (%rbx,%rsi,2), %ecx - 0x66, 0x89, 0x48, 0xfc, //0x00007ecd movw %cx, $-4(%rax) - 0x49, 0x89, 0xc1, //0x00007ed1 movq %rax, %r9 - 0x48, 0x83, 0xc0, 0xfc, //0x00007ed4 addq $-4, %rax - 0x89, 0xd6, //0x00007ed8 movl %edx, %esi - 0x83, 0xfe, 0x64, //0x00007eda cmpl $100, %esi - 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x00007edd jae LBB31_56 - 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00007ee3 jmp LBB31_58 - //0x00007ee8 LBB31_38 - 0x45, 0x85, 0xff, //0x00007ee8 testl %r15d, %r15d - 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x00007eeb jg LBB31_98 - 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00007ef1 movw $11824, (%r8) - 0x49, 0x83, 0xc0, 0x02, //0x00007ef7 addq $2, %r8 - 0x45, 0x85, 0xff, //0x00007efb testl %r15d, %r15d - 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x00007efe jns LBB31_98 - 0x31, 0xf6, //0x00007f04 xorl %esi, %esi - 0x41, 0x83, 0xff, 0x80, //0x00007f06 cmpl $-128, %r15d - 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x00007f0a ja LBB31_96 - 0x45, 0x89, 0xfa, //0x00007f10 movl %r15d, %r10d - 0x41, 0xf7, 0xd2, //0x00007f13 notl %r10d - 0x49, 0xff, 0xc2, //0x00007f16 incq %r10 - 0x4c, 0x89, 0xd6, //0x00007f19 movq %r10, %rsi - 0x48, 0x83, 0xe6, 0x80, //0x00007f1c andq $-128, %rsi - 0x48, 0x8d, 0x46, 0x80, //0x00007f20 leaq $-128(%rsi), %rax - 0x48, 0x89, 0xc1, //0x00007f24 movq %rax, %rcx - 0x48, 0xc1, 0xe9, 0x07, //0x00007f27 shrq $7, %rcx - 0x48, 0xff, 0xc1, //0x00007f2b incq %rcx - 0x41, 0x89, 0xcb, //0x00007f2e movl %ecx, %r11d - 0x41, 0x83, 0xe3, 0x03, //0x00007f31 andl $3, %r11d - 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00007f35 cmpq $384, %rax - 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x00007f3b jae LBB31_90 - 0x31, 0xdb, //0x00007f41 xorl %ebx, %ebx - 0xe9, 0xda, 0x03, 0x00, 0x00, //0x00007f43 jmp LBB31_92 - //0x00007f48 LBB31_76 - 0xc6, 0x43, 0x01, 0x2d, //0x00007f48 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007f4c movl $1, %eax - 0x44, 0x29, 0xf8, //0x00007f51 subl %r15d, %eax - 0x83, 0xf8, 0x64, //0x00007f54 cmpl $100, %eax - 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x00007f57 jge LBB31_75 - //0x00007f5d LBB31_77 - 0x83, 0xf8, 0x0a, //0x00007f5d cmpl $10, %eax - 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x00007f60 jl LBB31_79 - 0x48, 0x98, //0x00007f66 cltq - 0x48, 0x8d, 0x0d, 0x81, 0x3f, 0x00, 0x00, //0x00007f68 leaq $16257(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00007f6f movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x00007f73 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00007f77 addq $4, %rbx - 0x49, 0x89, 0xd8, //0x00007f7b movq %rbx, %r8 - 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x00007f7e jmp LBB31_137 - //0x00007f83 LBB31_43 - 0x48, 0x89, 0xf0, //0x00007f83 movq %rsi, %rax - 0x41, 0x83, 0xfd, 0x64, //0x00007f86 cmpl $100, %r13d - 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x00007f8a jb LBB31_29 - //0x00007f90 LBB31_44 - 0x48, 0xff, 0xc8, //0x00007f90 decq %rax - 0x4c, 0x8d, 0x15, 0x56, 0x3f, 0x00, 0x00, //0x00007f93 leaq $16214(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f9a .p2align 4, 0x90 - //0x00007fa0 LBB31_45 - 0x44, 0x89, 0xe9, //0x00007fa0 movl %r13d, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007fa3 imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x00007faa shrq $37, %rcx - 0x6b, 0xd9, 0x64, //0x00007fae imull $100, %ecx, %ebx - 0x44, 0x89, 0xea, //0x00007fb1 movl %r13d, %edx - 0x29, 0xda, //0x00007fb4 subl %ebx, %edx - 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00007fb6 movzwl (%r10,%rdx,2), %edx - 0x66, 0x89, 0x50, 0xff, //0x00007fbb movw %dx, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x00007fbf addq $-2, %rax - 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00007fc3 cmpl $9999, %r13d - 0x41, 0x89, 0xcd, //0x00007fca movl %ecx, %r13d - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007fcd ja LBB31_45 - //0x00007fd3 LBB31_46 - 0x49, 0x63, 0xc7, //0x00007fd3 movslq %r15d, %rax - 0x83, 0xf9, 0x0a, //0x00007fd6 cmpl $10, %ecx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007fd9 jb LBB31_48 - 0x89, 0xc9, //0x00007fdf movl %ecx, %ecx - 0x48, 0x8d, 0x15, 0x08, 0x3f, 0x00, 0x00, //0x00007fe1 leaq $16136(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00007fe8 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00007fec movw %cx, (%r8) - 0x49, 0x01, 0xc0, //0x00007ff0 addq %rax, %r8 - 0x49, 0x39, 0xc4, //0x00007ff3 cmpq %rax, %r12 - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00007ff6 jl LBB31_49 - 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x00007ffc jmp LBB31_137 - //0x00008001 LBB31_48 - 0x80, 0xc1, 0x30, //0x00008001 addb $48, %cl - 0x41, 0x88, 0x08, //0x00008004 movb %cl, (%r8) - 0x49, 0x01, 0xc0, //0x00008007 addq %rax, %r8 - 0x49, 0x39, 0xc4, //0x0000800a cmpq %rax, %r12 - 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x0000800d jge LBB31_137 - //0x00008013 LBB31_49 - 0x4b, 0x8d, 0x04, 0x21, //0x00008013 leaq (%r9,%r12), %rax - 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00008017 leaq $1(%rdi,%rax), %r11 - 0x4d, 0x39, 0xc3, //0x0000801c cmpq %r8, %r11 - 0x4d, 0x0f, 0x46, 0xd8, //0x0000801f cmovbeq %r8, %r11 - 0x4a, 0x8d, 0x0c, 0x0f, //0x00008023 leaq (%rdi,%r9), %rcx - 0x4c, 0x01, 0xe1, //0x00008027 addq %r12, %rcx - 0x49, 0x29, 0xcb, //0x0000802a subq %rcx, %r11 - 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000802d cmpq $128, %r11 - 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00008034 jb LBB31_87 - 0x4d, 0x89, 0xda, //0x0000803a movq %r11, %r10 - 0x49, 0x83, 0xe2, 0x80, //0x0000803d andq $-128, %r10 - 0x49, 0x8d, 0x4a, 0x80, //0x00008041 leaq $-128(%r10), %rcx - 0x48, 0x89, 0xcb, //0x00008045 movq %rcx, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00008048 shrq $7, %rbx - 0x48, 0xff, 0xc3, //0x0000804c incq %rbx - 0x89, 0xda, //0x0000804f movl %ebx, %edx - 0x83, 0xe2, 0x03, //0x00008051 andl $3, %edx - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x00008054 cmpq $384, %rcx - 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x0000805b jae LBB31_80 - 0x31, 0xc0, //0x00008061 xorl %eax, %eax - 0xe9, 0x88, 0x01, 0x00, 0x00, //0x00008063 jmp LBB31_82 - //0x00008068 LBB31_79 - 0x04, 0x30, //0x00008068 addb $48, %al - 0x88, 0x43, 0x02, //0x0000806a movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x0000806d addq $3, %rbx - 0x49, 0x89, 0xd8, //0x00008071 movq %rbx, %r8 - 0xe9, 0x57, 0x06, 0x00, 0x00, //0x00008074 jmp LBB31_137 - //0x00008079 LBB31_52 - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008079 movl $1, %r9d - 0x83, 0xfe, 0x0a, //0x0000807f cmpl $10, %esi - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008082 jb LBB31_55 - 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008088 movl $2, %r9d - 0x83, 0xfe, 0x64, //0x0000808e cmpl $100, %esi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008091 jb LBB31_55 - 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008097 movl $3, %r9d - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000809d cmpl $1000, %esi - 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x000080a3 jae LBB31_88 - //0x000080a9 LBB31_55 - 0x4d, 0x01, 0xc1, //0x000080a9 addq %r8, %r9 - 0x4c, 0x89, 0xc8, //0x000080ac movq %r9, %rax - 0x83, 0xfe, 0x64, //0x000080af cmpl $100, %esi - 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x000080b2 jb LBB31_58 - //0x000080b8 LBB31_56 - 0x48, 0xff, 0xc8, //0x000080b8 decq %rax - 0x4c, 0x8d, 0x15, 0x2e, 0x3e, 0x00, 0x00, //0x000080bb leaq $15918(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080c2 .p2align 4, 0x90 - //0x000080d0 LBB31_57 - 0x89, 0xf3, //0x000080d0 movl %esi, %ebx - 0x89, 0xf6, //0x000080d2 movl %esi, %esi - 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x000080d4 imulq $1374389535, %rsi, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x000080db shrq $37, %rsi - 0x6b, 0xce, 0x64, //0x000080df imull $100, %esi, %ecx - 0x89, 0xda, //0x000080e2 movl %ebx, %edx - 0x29, 0xca, //0x000080e4 subl %ecx, %edx - 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x000080e6 movzwl (%r10,%rdx,2), %ecx - 0x66, 0x89, 0x48, 0xff, //0x000080eb movw %cx, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x000080ef addq $-2, %rax - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000080f3 cmpl $9999, %ebx - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000080f9 ja LBB31_57 - //0x000080ff LBB31_58 - 0x83, 0xfe, 0x0a, //0x000080ff cmpl $10, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008102 jb LBB31_60 - 0x89, 0xf0, //0x00008108 movl %esi, %eax - 0x48, 0x8d, 0x0d, 0xdf, 0x3d, 0x00, 0x00, //0x0000810a leaq $15839(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008111 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x00, //0x00008115 movw %ax, (%r8) - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00008119 jmp LBB31_61 - //0x0000811e LBB31_60 - 0x40, 0x80, 0xc6, 0x30, //0x0000811e addb $48, %sil - 0x41, 0x88, 0x30, //0x00008122 movb %sil, (%r8) - //0x00008125 LBB31_61 - 0x41, 0x29, 0xf9, //0x00008125 subl %edi, %r9d - 0x45, 0x89, 0xc8, //0x00008128 movl %r9d, %r8d - 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x0000812b jmp LBB31_138 - //0x00008130 LBB31_62 - 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00008130 movl $4, %r9d - 0x48, 0x8d, 0x4b, 0xfc, //0x00008136 leaq $-4(%rbx), %rcx - 0x41, 0x83, 0xfb, 0x64, //0x0000813a cmpl $100, %r11d - 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x0000813e jb LBB31_31 - 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x00008144 jmp LBB31_64 - //0x00008149 LBB31_80 - 0x48, 0x29, 0xd3, //0x00008149 subq %rdx, %rbx - 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x0000814c leaq $480(%rdi,%rax), %rcx - 0x31, 0xc0, //0x00008154 xorl %eax, %eax - 0xc5, 0xfd, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x00008156 vmovdqa $-1982(%rip), %ymm0 /* LCPI31_0+0(%rip) */ - 0x90, 0x90, //0x0000815e .p2align 4, 0x90 - //0x00008160 LBB31_81 - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x00008160 vmovdqu %ymm0, $-480(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x00008169 vmovdqu %ymm0, $-448(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x00008172 vmovdqu %ymm0, $-416(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x0000817b vmovdqu %ymm0, $-384(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x00008184 vmovdqu %ymm0, $-352(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x0000818d vmovdqu %ymm0, $-320(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x00008196 vmovdqu %ymm0, $-288(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x0000819f vmovdqu %ymm0, $-256(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x000081a8 vmovdqu %ymm0, $-224(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x000081b1 vmovdqu %ymm0, $-192(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x000081ba vmovdqu %ymm0, $-160(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x000081c3 vmovdqu %ymm0, $-128(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x000081c9 vmovdqu %ymm0, $-96(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x000081cf vmovdqu %ymm0, $-64(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x000081d5 vmovdqu %ymm0, $-32(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x000081db vmovdqu %ymm0, (%rcx,%rax) - 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x000081e0 addq $512, %rax - 0x48, 0x83, 0xc3, 0xfc, //0x000081e6 addq $-4, %rbx - 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000081ea jne LBB31_81 - //0x000081f0 LBB31_82 - 0x48, 0x85, 0xd2, //0x000081f0 testq %rdx, %rdx - 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000081f3 je LBB31_85 - 0x4c, 0x01, 0xc8, //0x000081f9 addq %r9, %rax - 0x4c, 0x01, 0xe0, //0x000081fc addq %r12, %rax - 0x48, 0x8d, 0x44, 0x07, 0x60, //0x000081ff leaq $96(%rdi,%rax), %rax - 0x48, 0xf7, 0xda, //0x00008204 negq %rdx - 0xc5, 0xfd, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00008207 vmovdqa $-2159(%rip), %ymm0 /* LCPI31_0+0(%rip) */ - 0x90, //0x0000820f .p2align 4, 0x90 - //0x00008210 LBB31_84 - 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00008210 vmovdqu %ymm0, $-96(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008215 vmovdqu %ymm0, $-64(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x0000821a vmovdqu %ymm0, $-32(%rax) - 0xc5, 0xfe, 0x7f, 0x00, //0x0000821f vmovdqu %ymm0, (%rax) - 0x48, 0x83, 0xe8, 0x80, //0x00008223 subq $-128, %rax - 0x48, 0xff, 0xc2, //0x00008227 incq %rdx - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000822a jne LBB31_84 - //0x00008230 LBB31_85 - 0x4d, 0x39, 0xda, //0x00008230 cmpq %r11, %r10 - 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00008233 je LBB31_137 - 0x4c, 0x01, 0xd6, //0x00008239 addq %r10, %rsi - 0x90, 0x90, 0x90, 0x90, //0x0000823c .p2align 4, 0x90 - //0x00008240 LBB31_87 - 0xc6, 0x06, 0x30, //0x00008240 movb $48, (%rsi) - 0x48, 0xff, 0xc6, //0x00008243 incq %rsi - 0x4c, 0x39, 0xc6, //0x00008246 cmpq %r8, %rsi - 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008249 jb LBB31_87 - 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x0000824f jmp LBB31_137 - //0x00008254 LBB31_88 - 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008254 cmpl $10000, %esi - 0x4c, 0x89, 0xc0, //0x0000825a movq %r8, %rax - 0x48, 0x83, 0xd8, 0x00, //0x0000825d sbbq $0, %rax - 0x48, 0x83, 0xc0, 0x05, //0x00008261 addq $5, %rax - 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008265 cmpl $10000, %esi - 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x0000826b jae LBB31_37 - 0x49, 0x89, 0xc1, //0x00008271 movq %rax, %r9 - 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x00008274 jmp LBB31_56 - //0x00008279 LBB31_90 - 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00008279 leaq $482(%r9,%rdi), %rax - 0x4d, 0x89, 0xde, //0x00008281 movq %r11, %r14 - 0x49, 0x29, 0xce, //0x00008284 subq %rcx, %r14 - 0x31, 0xdb, //0x00008287 xorl %ebx, %ebx - 0xc5, 0xfd, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x00008289 vmovdqa $-2289(%rip), %ymm0 /* LCPI31_0+0(%rip) */ - //0x00008291 LBB31_91 - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x00008291 vmovdqu %ymm0, $-480(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x0000829a vmovdqu %ymm0, $-448(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x000082a3 vmovdqu %ymm0, $-416(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x000082ac vmovdqu %ymm0, $-384(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x000082b5 vmovdqu %ymm0, $-352(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x000082be vmovdqu %ymm0, $-320(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x000082c7 vmovdqu %ymm0, $-288(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x000082d0 vmovdqu %ymm0, $-256(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x000082d9 vmovdqu %ymm0, $-224(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x000082e2 vmovdqu %ymm0, $-192(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x000082eb vmovdqu %ymm0, $-160(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x000082f4 vmovdqu %ymm0, $-128(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x000082fa vmovdqu %ymm0, $-96(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x00008300 vmovdqu %ymm0, $-64(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x00008306 vmovdqu %ymm0, $-32(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x0000830c vmovdqu %ymm0, (%rax,%rbx) - 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00008311 addq $512, %rbx - 0x49, 0x83, 0xc6, 0x04, //0x00008318 addq $4, %r14 - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000831c jne LBB31_91 - //0x00008322 LBB31_92 - 0x4d, 0x85, 0xdb, //0x00008322 testq %r11, %r11 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008325 je LBB31_95 - 0x4c, 0x01, 0xcb, //0x0000832b addq %r9, %rbx - 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x0000832e leaq $98(%rdi,%rbx), %rax - 0x49, 0xf7, 0xdb, //0x00008333 negq %r11 - 0xc5, 0xfd, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x00008336 vmovdqa $-2462(%rip), %ymm0 /* LCPI31_0+0(%rip) */ - //0x0000833e LBB31_94 - 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x0000833e vmovdqu %ymm0, $-96(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008343 vmovdqu %ymm0, $-64(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00008348 vmovdqu %ymm0, $-32(%rax) - 0xc5, 0xfe, 0x7f, 0x00, //0x0000834d vmovdqu %ymm0, (%rax) - 0x48, 0x83, 0xe8, 0x80, //0x00008351 subq $-128, %rax - 0x49, 0xff, 0xc3, //0x00008355 incq %r11 - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00008358 jne LBB31_94 - //0x0000835e LBB31_95 - 0x49, 0x01, 0xf0, //0x0000835e addq %rsi, %r8 - 0x49, 0x39, 0xf2, //0x00008361 cmpq %rsi, %r10 - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00008364 je LBB31_98 - //0x0000836a LBB31_96 - 0x44, 0x89, 0xf8, //0x0000836a movl %r15d, %eax - 0xf7, 0xd8, //0x0000836d negl %eax - 0x90, //0x0000836f .p2align 4, 0x90 - //0x00008370 LBB31_97 - 0x41, 0xc6, 0x00, 0x30, //0x00008370 movb $48, (%r8) - 0x49, 0xff, 0xc0, //0x00008374 incq %r8 - 0xff, 0xc6, //0x00008377 incl %esi - 0x39, 0xc6, //0x00008379 cmpl %eax, %esi - 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000837b jl LBB31_97 - //0x00008381 LBB31_98 - 0x4b, 0x8d, 0x04, 0x20, //0x00008381 leaq (%r8,%r12), %rax - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008385 cmpl $10000, %r13d - 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000838c jb LBB31_101 - 0x44, 0x89, 0xe9, //0x00008392 movl %r13d, %ecx - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008395 movl $3518437209, %r10d - 0x4c, 0x0f, 0xaf, 0xd1, //0x0000839b imulq %rcx, %r10 - 0x49, 0xc1, 0xea, 0x2d, //0x0000839f shrq $45, %r10 - 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x000083a3 imull $-10000, %r10d, %ecx - 0x44, 0x01, 0xe9, //0x000083aa addl %r13d, %ecx - 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x000083ad je LBB31_103 - 0x89, 0xca, //0x000083b3 movl %ecx, %edx - 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x000083b5 imulq $1374389535, %rdx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x000083bc shrq $37, %rdx - 0x6b, 0xda, 0x64, //0x000083c0 imull $100, %edx, %ebx - 0x29, 0xd9, //0x000083c3 subl %ebx, %ecx - 0x48, 0x8d, 0x1d, 0x24, 0x3b, 0x00, 0x00, //0x000083c5 leaq $15140(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4b, //0x000083cc movzwl (%rbx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0xfe, //0x000083d0 movw %cx, $-2(%rax) - 0x0f, 0xb7, 0x0c, 0x53, //0x000083d4 movzwl (%rbx,%rdx,2), %ecx - 0x66, 0x89, 0x48, 0xfc, //0x000083d8 movw %cx, $-4(%rax) - 0x45, 0x31, 0xc9, //0x000083dc xorl %r9d, %r9d - 0x48, 0x83, 0xc0, 0xfc, //0x000083df addq $-4, %rax - 0x41, 0x83, 0xfa, 0x64, //0x000083e3 cmpl $100, %r10d - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000083e7 jae LBB31_105 - //0x000083ed LBB31_102 - 0x44, 0x89, 0xd1, //0x000083ed movl %r10d, %ecx - 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000083f0 jmp LBB31_107 - //0x000083f5 LBB31_101 - 0x45, 0x31, 0xc9, //0x000083f5 xorl %r9d, %r9d - 0x45, 0x89, 0xea, //0x000083f8 movl %r13d, %r10d - 0x41, 0x83, 0xfa, 0x64, //0x000083fb cmpl $100, %r10d - 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x000083ff jb LBB31_102 - //0x00008405 LBB31_105 - 0x48, 0xff, 0xc8, //0x00008405 decq %rax - 0x48, 0x8d, 0x15, 0xe1, 0x3a, 0x00, 0x00, //0x00008408 leaq $15073(%rip), %rdx /* _Digits+0(%rip) */ - 0x90, //0x0000840f .p2align 4, 0x90 - //0x00008410 LBB31_106 - 0x44, 0x89, 0xd1, //0x00008410 movl %r10d, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008413 imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x0000841a shrq $37, %rcx - 0x6b, 0xd9, 0x64, //0x0000841e imull $100, %ecx, %ebx - 0x44, 0x89, 0xd6, //0x00008421 movl %r10d, %esi - 0x29, 0xde, //0x00008424 subl %ebx, %esi - 0x0f, 0xb7, 0x34, 0x72, //0x00008426 movzwl (%rdx,%rsi,2), %esi - 0x66, 0x89, 0x70, 0xff, //0x0000842a movw %si, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x0000842e addq $-2, %rax - 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00008432 cmpl $9999, %r10d - 0x41, 0x89, 0xca, //0x00008439 movl %ecx, %r10d - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000843c ja LBB31_106 - //0x00008442 LBB31_107 - 0x83, 0xf9, 0x0a, //0x00008442 cmpl $10, %ecx - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008445 jb LBB31_109 - 0x89, 0xc8, //0x0000844b movl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x9c, 0x3a, 0x00, 0x00, //0x0000844d leaq $15004(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008454 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x00, //0x00008458 movw %ax, (%r8) - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x0000845c jmp LBB31_110 - //0x00008461 LBB31_109 - 0x80, 0xc1, 0x30, //0x00008461 addb $48, %cl - 0x41, 0x88, 0x08, //0x00008464 movb %cl, (%r8) - //0x00008467 LBB31_110 - 0x4d, 0x29, 0xcc, //0x00008467 subq %r9, %r12 - 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000846a leaq $1(%r12), %rsi - 0x49, 0x8d, 0x54, 0x24, 0x61, //0x0000846f leaq $97(%r12), %rdx - 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00008474 leaq $2(%r12), %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008479 .p2align 4, 0x90 - //0x00008480 LBB31_111 - 0x48, 0xff, 0xca, //0x00008480 decq %rdx - 0x48, 0xff, 0xce, //0x00008483 decq %rsi - 0x48, 0xff, 0xc8, //0x00008486 decq %rax - 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00008489 cmpb $48, $-1(%r8,%r12) - 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000848f leaq $-1(%r12), %r12 - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00008494 je LBB31_111 - 0x4d, 0x8d, 0x0c, 0x30, //0x0000849a leaq (%r8,%rsi), %r9 - 0x45, 0x85, 0xff, //0x0000849e testl %r15d, %r15d - 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x000084a1 jle LBB31_116 - 0x44, 0x89, 0xc9, //0x000084a7 movl %r9d, %ecx - 0x44, 0x29, 0xc1, //0x000084aa subl %r8d, %ecx - 0x41, 0x39, 0xcf, //0x000084ad cmpl %ecx, %r15d - 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x000084b0 jge LBB31_117 - 0x43, 0x8d, 0x0c, 0x07, //0x000084b6 leal (%r15,%r8), %ecx - 0x41, 0x29, 0xc9, //0x000084ba subl %ecx, %r9d - 0x49, 0x8d, 0x49, 0xff, //0x000084bd leaq $-1(%r9), %rcx - 0x45, 0x89, 0xca, //0x000084c1 movl %r9d, %r10d - 0x41, 0x83, 0xe2, 0x03, //0x000084c4 andl $3, %r10d - 0x48, 0x83, 0xf9, 0x03, //0x000084c8 cmpq $3, %rcx - 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x000084cc jae LBB31_121 - 0x31, 0xc9, //0x000084d2 xorl %ecx, %ecx - 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x000084d4 jmp LBB31_124 - //0x000084d9 LBB31_117 - 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x000084d9 jle LBB31_116 - 0x45, 0x01, 0xc7, //0x000084df addl %r8d, %r15d - 0x45, 0x89, 0xce, //0x000084e2 movl %r9d, %r14d - 0x41, 0xf7, 0xd6, //0x000084e5 notl %r14d - 0x45, 0x01, 0xfe, //0x000084e8 addl %r15d, %r14d - 0x45, 0x31, 0xd2, //0x000084eb xorl %r10d, %r10d - 0x4d, 0x89, 0xcb, //0x000084ee movq %r9, %r11 - 0x41, 0x83, 0xfe, 0x7e, //0x000084f1 cmpl $126, %r14d - 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x000084f5 jbe LBB31_135 - 0x49, 0xff, 0xc6, //0x000084fb incq %r14 - 0x4d, 0x89, 0xf2, //0x000084fe movq %r14, %r10 - 0x49, 0x83, 0xe2, 0x80, //0x00008501 andq $-128, %r10 - 0x4f, 0x8d, 0x1c, 0x10, //0x00008505 leaq (%r8,%r10), %r11 - 0x49, 0x8d, 0x5a, 0x80, //0x00008509 leaq $-128(%r10), %rbx - 0x48, 0x89, 0xd9, //0x0000850d movq %rbx, %rcx - 0x48, 0xc1, 0xe9, 0x07, //0x00008510 shrq $7, %rcx - 0x48, 0xff, 0xc1, //0x00008514 incq %rcx - 0x41, 0x89, 0xcc, //0x00008517 movl %ecx, %r12d - 0x41, 0x83, 0xe4, 0x03, //0x0000851a andl $3, %r12d - 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x0000851e cmpq $384, %rbx - 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x00008525 jae LBB31_129 - 0x31, 0xc9, //0x0000852b xorl %ecx, %ecx - 0xe9, 0x30, 0x01, 0x00, 0x00, //0x0000852d jmp LBB31_131 - //0x00008532 LBB31_116 - 0x4d, 0x89, 0xc8, //0x00008532 movq %r9, %r8 - 0xe9, 0x96, 0x01, 0x00, 0x00, //0x00008535 jmp LBB31_137 - //0x0000853a LBB31_103 - 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000853a movl $4, %r9d - 0x48, 0x83, 0xc0, 0xfc, //0x00008540 addq $-4, %rax - 0x41, 0x83, 0xfa, 0x64, //0x00008544 cmpl $100, %r10d - 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x00008548 jb LBB31_102 - 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x0000854e jmp LBB31_105 - //0x00008553 LBB31_121 - 0x4d, 0x89, 0xd3, //0x00008553 movq %r10, %r11 - 0x4d, 0x29, 0xcb, //0x00008556 subq %r9, %r11 - 0x31, 0xc9, //0x00008559 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000855b .p2align 4, 0x90 - //0x00008560 LBB31_122 - 0x49, 0x8d, 0x1c, 0x08, //0x00008560 leaq (%r8,%rcx), %rbx - 0x8b, 0x54, 0x1e, 0xfc, //0x00008564 movl $-4(%rsi,%rbx), %edx - 0x89, 0x54, 0x1e, 0xfd, //0x00008568 movl %edx, $-3(%rsi,%rbx) - 0x48, 0x83, 0xc1, 0xfc, //0x0000856c addq $-4, %rcx - 0x49, 0x39, 0xcb, //0x00008570 cmpq %rcx, %r11 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008573 jne LBB31_122 - 0x48, 0xf7, 0xd9, //0x00008579 negq %rcx - //0x0000857c LBB31_124 - 0x4d, 0x85, 0xd2, //0x0000857c testq %r10, %r10 - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000857f je LBB31_127 - 0x49, 0xf7, 0xda, //0x00008585 negq %r10 - 0x4c, 0x89, 0xc2, //0x00008588 movq %r8, %rdx - 0x48, 0x29, 0xca, //0x0000858b subq %rcx, %rdx - 0x31, 0xc9, //0x0000858e xorl %ecx, %ecx - //0x00008590 .p2align 4, 0x90 - //0x00008590 LBB31_126 - 0x48, 0x8d, 0x34, 0x0a, //0x00008590 leaq (%rdx,%rcx), %rsi - 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00008594 movzbl (%r12,%rsi), %ebx - 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00008599 movb %bl, $1(%r12,%rsi) - 0x48, 0xff, 0xc9, //0x0000859e decq %rcx - 0x49, 0x39, 0xca, //0x000085a1 cmpq %rcx, %r10 - 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x000085a4 jne LBB31_126 - //0x000085aa LBB31_127 - 0x49, 0x63, 0xcf, //0x000085aa movslq %r15d, %rcx - 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x000085ad movb $46, (%r8,%rcx) - 0x49, 0x01, 0xc0, //0x000085b2 addq %rax, %r8 - 0xe9, 0x16, 0x01, 0x00, 0x00, //0x000085b5 jmp LBB31_137 - //0x000085ba LBB31_129 - 0x4c, 0x89, 0xe3, //0x000085ba movq %r12, %rbx - 0x48, 0x29, 0xcb, //0x000085bd subq %rcx, %rbx - 0x31, 0xc9, //0x000085c0 xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x000085c2 vmovdqa $-3114(%rip), %ymm0 /* LCPI31_0+0(%rip) */ - //0x000085ca LBB31_130 - 0x49, 0x8d, 0x04, 0x08, //0x000085ca leaq (%r8,%rcx), %rax - 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x000085ce vmovdqu %ymm0, (%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x000085d3 vmovdqu %ymm0, $32(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x000085d9 vmovdqu %ymm0, $64(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x000085df vmovdqu %ymm0, $96(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x000085e5 vmovdqu %ymm0, $128(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x000085ee vmovdqu %ymm0, $160(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x000085f7 vmovdqu %ymm0, $192(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x00008600 vmovdqu %ymm0, $224(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x00008609 vmovdqu %ymm0, $256(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x00008612 vmovdqu %ymm0, $288(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x0000861b vmovdqu %ymm0, $320(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x00008624 vmovdqu %ymm0, $352(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x0000862d vmovdqu %ymm0, $384(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x00008636 vmovdqu %ymm0, $416(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x0000863f vmovdqu %ymm0, $448(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x00008648 vmovdqu %ymm0, $480(%rsi,%rax) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008651 addq $512, %rcx - 0x48, 0x83, 0xc3, 0x04, //0x00008658 addq $4, %rbx - 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x0000865c jne LBB31_130 - //0x00008662 LBB31_131 - 0x49, 0x01, 0xf3, //0x00008662 addq %rsi, %r11 - 0x4d, 0x85, 0xe4, //0x00008665 testq %r12, %r12 - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00008668 je LBB31_134 - 0x49, 0x01, 0xc8, //0x0000866e addq %rcx, %r8 - 0x49, 0x01, 0xd0, //0x00008671 addq %rdx, %r8 - 0x49, 0xf7, 0xdc, //0x00008674 negq %r12 - 0xc5, 0xfd, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00008677 vmovdqa $-3295(%rip), %ymm0 /* LCPI31_0+0(%rip) */ - //0x0000867f LBB31_133 - 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x0000867f vmovdqu %ymm0, $-96(%r8) - 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00008685 vmovdqu %ymm0, $-64(%r8) - 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x0000868b vmovdqu %ymm0, $-32(%r8) - 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00008691 vmovdqu %ymm0, (%r8) - 0x49, 0x83, 0xe8, 0x80, //0x00008696 subq $-128, %r8 - 0x49, 0xff, 0xc4, //0x0000869a incq %r12 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000869d jne LBB31_133 - //0x000086a3 LBB31_134 - 0x4d, 0x89, 0xd8, //0x000086a3 movq %r11, %r8 - 0x4d, 0x39, 0xd6, //0x000086a6 cmpq %r10, %r14 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000086a9 je LBB31_137 - //0x000086af LBB31_135 - 0x45, 0x29, 0xd7, //0x000086af subl %r10d, %r15d - 0x45, 0x29, 0xcf, //0x000086b2 subl %r9d, %r15d - 0x4d, 0x89, 0xd8, //0x000086b5 movq %r11, %r8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000086b8 .p2align 4, 0x90 - //0x000086c0 LBB31_136 - 0x41, 0xc6, 0x00, 0x30, //0x000086c0 movb $48, (%r8) - 0x49, 0xff, 0xc0, //0x000086c4 incq %r8 - 0x41, 0xff, 0xcf, //0x000086c7 decl %r15d - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000086ca jne LBB31_136 - //0x000086d0 LBB31_137 - 0x41, 0x29, 0xf8, //0x000086d0 subl %edi, %r8d - //0x000086d3 LBB31_138 - 0x44, 0x89, 0xc0, //0x000086d3 movl %r8d, %eax - 0x5b, //0x000086d6 popq %rbx - 0x41, 0x5c, //0x000086d7 popq %r12 - 0x41, 0x5d, //0x000086d9 popq %r13 - 0x41, 0x5e, //0x000086db popq %r14 - 0x41, 0x5f, //0x000086dd popq %r15 - 0x5d, //0x000086df popq %rbp - 0xc5, 0xf8, 0x77, //0x000086e0 vzeroupper - 0xc3, //0x000086e3 retq - //0x000086e4 LBB31_139 - 0x45, 0x31, 0xc0, //0x000086e4 xorl %r8d, %r8d - 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000086e7 jmp LBB31_138 - //0x000086ec LBB31_140 - 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x000086ec movl $-149, %r15d - 0x89, 0xc6, //0x000086f2 movl %eax, %esi - 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x000086f4 jmp LBB31_5 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000086f9 .p2align 4, 0x00 - //0x00008700 LCPI32_0 - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008700 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' - //0x00008710 LCPI32_1 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00008710 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00008720 LCPI32_2 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008720 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - //0x00008730 LCPI32_3 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008730 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x00008740 LCPI32_4 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008740 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x00008750 LCPI32_5 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008750 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00008760 .p2align 4, 0x90 - //0x00008760 _to_lower - 0x55, //0x00008760 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008761 movq %rsp, %rbp - 0x48, 0x83, 0xfa, 0x10, //0x00008764 cmpq $16, %rdx - 0x0f, 0x82, 0xdf, 0x00, 0x00, 0x00, //0x00008768 jb LBB32_8 - 0x48, 0x8d, 0x4a, 0xf0, //0x0000876e leaq $-16(%rdx), %rcx - 0xf6, 0xc1, 0x10, //0x00008772 testb $16, %cl - 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00008775 jne LBB32_2 - 0xc5, 0xfa, 0x6f, 0x06, //0x0000877b vmovdqu (%rsi), %xmm0 - 0xc5, 0xf9, 0x64, 0x0d, 0x79, 0xff, 0xff, 0xff, //0x0000877f vpcmpgtb $-135(%rip), %xmm0, %xmm1 /* LCPI32_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x81, 0xff, 0xff, 0xff, //0x00008787 vmovdqa $-127(%rip), %xmm2 /* LCPI32_1+0(%rip) */ - 0xc5, 0xe9, 0x64, 0xd0, //0x0000878f vpcmpgtb %xmm0, %xmm2, %xmm2 - 0xc5, 0xe9, 0xdb, 0xc9, //0x00008793 vpand %xmm1, %xmm2, %xmm1 - 0xc5, 0xf1, 0xdb, 0x0d, 0x81, 0xff, 0xff, 0xff, //0x00008797 vpand $-127(%rip), %xmm1, %xmm1 /* LCPI32_2+0(%rip) */ - 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x0000879f vpsllw $5, %xmm1, %xmm1 - 0xc5, 0xf1, 0xfc, 0xc0, //0x000087a4 vpaddb %xmm0, %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x000087a8 vmovdqu %xmm0, (%rdi) - 0x48, 0x83, 0xc6, 0x10, //0x000087ac addq $16, %rsi - 0x48, 0x83, 0xc7, 0x10, //0x000087b0 addq $16, %rdi - 0x48, 0x89, 0xc8, //0x000087b4 movq %rcx, %rax - 0x48, 0x83, 0xf9, 0x10, //0x000087b7 cmpq $16, %rcx - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000087bb jae LBB32_5 - 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000087c1 jmp LBB32_7 - //0x000087c6 LBB32_2 - 0x48, 0x89, 0xd0, //0x000087c6 movq %rdx, %rax - 0x48, 0x83, 0xf9, 0x10, //0x000087c9 cmpq $16, %rcx - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000087cd jb LBB32_7 - //0x000087d3 LBB32_5 - 0xc5, 0xf9, 0x6f, 0x05, 0x25, 0xff, 0xff, 0xff, //0x000087d3 vmovdqa $-219(%rip), %xmm0 /* LCPI32_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x2d, 0xff, 0xff, 0xff, //0x000087db vmovdqa $-211(%rip), %xmm1 /* LCPI32_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x35, 0xff, 0xff, 0xff, //0x000087e3 vmovdqa $-203(%rip), %xmm2 /* LCPI32_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000087eb .p2align 4, 0x90 - //0x000087f0 LBB32_6 - 0xc5, 0xfa, 0x6f, 0x1e, //0x000087f0 vmovdqu (%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x000087f4 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x000087f8 vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x000087fc vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x00008800 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008804 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x00008809 vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1f, //0x0000880d vmovdqu %xmm3, (%rdi) - 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008811 vmovdqu $16(%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x00008816 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x0000881a vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x0000881e vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x00008822 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008826 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x0000882b vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x0000882f vmovdqu %xmm3, $16(%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x00008834 addq $32, %rsi - 0x48, 0x83, 0xc7, 0x20, //0x00008838 addq $32, %rdi - 0x48, 0x83, 0xc0, 0xe0, //0x0000883c addq $-32, %rax - 0x48, 0x83, 0xf8, 0x0f, //0x00008840 cmpq $15, %rax - 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x00008844 ja LBB32_6 - //0x0000884a LBB32_7 - 0x83, 0xe2, 0x0f, //0x0000884a andl $15, %edx - //0x0000884d LBB32_8 - 0x48, 0x85, 0xd2, //0x0000884d testq %rdx, %rdx - 0x0f, 0x84, 0x99, 0x01, 0x00, 0x00, //0x00008850 je LBB32_16 - 0x48, 0x83, 0xfa, 0x0f, //0x00008856 cmpq $15, %rdx - 0x0f, 0x86, 0x1a, 0x00, 0x00, 0x00, //0x0000885a jbe LBB32_10 - 0x48, 0x8d, 0x04, 0x16, //0x00008860 leaq (%rsi,%rdx), %rax - 0x48, 0x39, 0xc7, //0x00008864 cmpq %rax, %rdi - 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00008867 jae LBB32_19 - 0x48, 0x8d, 0x04, 0x17, //0x0000886d leaq (%rdi,%rdx), %rax - 0x48, 0x39, 0xc6, //0x00008871 cmpq %rax, %rsi - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00008874 jae LBB32_19 - //0x0000887a LBB32_10 - 0xf6, 0xc2, 0x01, //0x0000887a testb $1, %dl - 0x0f, 0x85, 0xfd, 0x00, 0x00, 0x00, //0x0000887d jne LBB32_12 - //0x00008883 LBB32_11 - 0x49, 0x89, 0xd0, //0x00008883 movq %rdx, %r8 - 0x48, 0x83, 0xfa, 0x01, //0x00008886 cmpq $1, %rdx - 0x0f, 0x85, 0x1a, 0x01, 0x00, 0x00, //0x0000888a jne LBB32_14 - 0xe9, 0x5a, 0x01, 0x00, 0x00, //0x00008890 jmp LBB32_16 - //0x00008895 LBB32_19 - 0x49, 0x89, 0xd0, //0x00008895 movq %rdx, %r8 - 0x49, 0x83, 0xe0, 0xf0, //0x00008898 andq $-16, %r8 - 0x49, 0x8d, 0x48, 0xf0, //0x0000889c leaq $-16(%r8), %rcx - 0x48, 0x89, 0xc8, //0x000088a0 movq %rcx, %rax - 0x48, 0xc1, 0xe8, 0x04, //0x000088a3 shrq $4, %rax - 0x48, 0xff, 0xc0, //0x000088a7 incq %rax - 0x41, 0x89, 0xc1, //0x000088aa movl %eax, %r9d - 0x41, 0x83, 0xe1, 0x01, //0x000088ad andl $1, %r9d - 0x48, 0x85, 0xc9, //0x000088b1 testq %rcx, %rcx - 0x0f, 0x84, 0x37, 0x01, 0x00, 0x00, //0x000088b4 je LBB32_20 - 0x4c, 0x29, 0xc8, //0x000088ba subq %r9, %rax - 0x31, 0xc9, //0x000088bd xorl %ecx, %ecx - 0xc5, 0xf9, 0x6f, 0x05, 0x69, 0xfe, 0xff, 0xff, //0x000088bf vmovdqa $-407(%rip), %xmm0 /* LCPI32_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x71, 0xfe, 0xff, 0xff, //0x000088c7 vmovdqa $-399(%rip), %xmm1 /* LCPI32_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x79, 0xfe, 0xff, 0xff, //0x000088cf vmovdqa $-391(%rip), %xmm2 /* LCPI32_5+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000088d7 .p2align 4, 0x90 - //0x000088e0 LBB32_22 - 0xc5, 0xfa, 0x6f, 0x1c, 0x0e, //0x000088e0 vmovdqu (%rsi,%rcx), %xmm3 - 0xc5, 0xe1, 0xfc, 0xe0, //0x000088e5 vpaddb %xmm0, %xmm3, %xmm4 - 0xc5, 0xd9, 0xda, 0xe9, //0x000088e9 vpminub %xmm1, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xe5, //0x000088ed vpcmpeqb %xmm5, %xmm4, %xmm4 - 0xc5, 0xe1, 0xfc, 0xea, //0x000088f1 vpaddb %xmm2, %xmm3, %xmm5 - 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x000088f5 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1c, 0x0f, //0x000088fb vmovdqu %xmm3, (%rdi,%rcx) - 0xc5, 0xfa, 0x6f, 0x5c, 0x0e, 0x10, //0x00008900 vmovdqu $16(%rsi,%rcx), %xmm3 - 0xc5, 0xe1, 0xfc, 0xe0, //0x00008906 vpaddb %xmm0, %xmm3, %xmm4 - 0xc5, 0xd9, 0xda, 0xe9, //0x0000890a vpminub %xmm1, %xmm4, %xmm5 - 0xc5, 0xd9, 0x74, 0xe5, //0x0000890e vpcmpeqb %xmm5, %xmm4, %xmm4 - 0xc5, 0xe1, 0xfc, 0xea, //0x00008912 vpaddb %xmm2, %xmm3, %xmm5 - 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008916 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 - 0xc5, 0xfa, 0x7f, 0x5c, 0x0f, 0x10, //0x0000891c vmovdqu %xmm3, $16(%rdi,%rcx) - 0x48, 0x83, 0xc1, 0x20, //0x00008922 addq $32, %rcx - 0x48, 0x83, 0xc0, 0xfe, //0x00008926 addq $-2, %rax - 0x0f, 0x85, 0xb0, 0xff, 0xff, 0xff, //0x0000892a jne LBB32_22 - 0x4d, 0x85, 0xc9, //0x00008930 testq %r9, %r9 - 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00008933 je LBB32_25 - //0x00008939 LBB32_24 - 0xc5, 0xfa, 0x6f, 0x04, 0x0e, //0x00008939 vmovdqu (%rsi,%rcx), %xmm0 - 0xc5, 0xf9, 0xfc, 0x0d, 0xea, 0xfd, 0xff, 0xff, //0x0000893e vpaddb $-534(%rip), %xmm0, %xmm1 /* LCPI32_3+0(%rip) */ - 0xc5, 0xf1, 0xda, 0x15, 0xf2, 0xfd, 0xff, 0xff, //0x00008946 vpminub $-526(%rip), %xmm1, %xmm2 /* LCPI32_4+0(%rip) */ - 0xc5, 0xf9, 0xfc, 0x1d, 0xfa, 0xfd, 0xff, 0xff, //0x0000894e vpaddb $-518(%rip), %xmm0, %xmm3 /* LCPI32_5+0(%rip) */ - 0xc5, 0xf1, 0x74, 0xca, //0x00008956 vpcmpeqb %xmm2, %xmm1, %xmm1 - 0xc4, 0xe3, 0x79, 0x4c, 0xc3, 0x10, //0x0000895a vpblendvb %xmm1, %xmm3, %xmm0, %xmm0 - 0xc5, 0xfa, 0x7f, 0x04, 0x0f, //0x00008960 vmovdqu %xmm0, (%rdi,%rcx) - //0x00008965 LBB32_25 - 0x4c, 0x39, 0xc2, //0x00008965 cmpq %r8, %rdx - 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00008968 je LBB32_16 - 0x83, 0xe2, 0x0f, //0x0000896e andl $15, %edx - 0x4c, 0x01, 0xc6, //0x00008971 addq %r8, %rsi - 0x4c, 0x01, 0xc7, //0x00008974 addq %r8, %rdi - 0xf6, 0xc2, 0x01, //0x00008977 testb $1, %dl - 0x0f, 0x84, 0x03, 0xff, 0xff, 0xff, //0x0000897a je LBB32_11 - //0x00008980 LBB32_12 - 0x0f, 0xb6, 0x06, //0x00008980 movzbl (%rsi), %eax - 0x44, 0x8d, 0x40, 0xbf, //0x00008983 leal $-65(%rax), %r8d - 0x8d, 0x48, 0x20, //0x00008987 leal $32(%rax), %ecx - 0x41, 0x80, 0xf8, 0x1a, //0x0000898a cmpb $26, %r8b - 0x0f, 0xb6, 0xc9, //0x0000898e movzbl %cl, %ecx - 0x0f, 0x43, 0xc8, //0x00008991 cmovael %eax, %ecx - 0x4c, 0x8d, 0x42, 0xff, //0x00008994 leaq $-1(%rdx), %r8 - 0x88, 0x0f, //0x00008998 movb %cl, (%rdi) - 0x48, 0xff, 0xc6, //0x0000899a incq %rsi - 0x48, 0xff, 0xc7, //0x0000899d incq %rdi - 0x48, 0x83, 0xfa, 0x01, //0x000089a0 cmpq $1, %rdx - 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000089a4 je LBB32_16 - //0x000089aa LBB32_14 - 0x31, 0xc9, //0x000089aa xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, //0x000089ac .p2align 4, 0x90 - //0x000089b0 LBB32_15 - 0x0f, 0xb6, 0x14, 0x0e, //0x000089b0 movzbl (%rsi,%rcx), %edx - 0x44, 0x8d, 0x4a, 0xbf, //0x000089b4 leal $-65(%rdx), %r9d - 0x8d, 0x42, 0x20, //0x000089b8 leal $32(%rdx), %eax - 0x41, 0x80, 0xf9, 0x1a, //0x000089bb cmpb $26, %r9b - 0x0f, 0xb6, 0xc0, //0x000089bf movzbl %al, %eax - 0x0f, 0x43, 0xc2, //0x000089c2 cmovael %edx, %eax - 0x88, 0x04, 0x0f, //0x000089c5 movb %al, (%rdi,%rcx) - 0x0f, 0xb6, 0x44, 0x0e, 0x01, //0x000089c8 movzbl $1(%rsi,%rcx), %eax - 0x44, 0x8d, 0x48, 0xbf, //0x000089cd leal $-65(%rax), %r9d - 0x8d, 0x50, 0x20, //0x000089d1 leal $32(%rax), %edx - 0x41, 0x80, 0xf9, 0x1a, //0x000089d4 cmpb $26, %r9b - 0x0f, 0xb6, 0xd2, //0x000089d8 movzbl %dl, %edx - 0x0f, 0x43, 0xd0, //0x000089db cmovael %eax, %edx - 0x88, 0x54, 0x0f, 0x01, //0x000089de movb %dl, $1(%rdi,%rcx) - 0x48, 0x83, 0xc1, 0x02, //0x000089e2 addq $2, %rcx - 0x49, 0x39, 0xc8, //0x000089e6 cmpq %rcx, %r8 - 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x000089e9 jne LBB32_15 - //0x000089ef LBB32_16 - 0x5d, //0x000089ef popq %rbp - 0xc3, //0x000089f0 retq - //0x000089f1 LBB32_20 - 0x31, 0xc9, //0x000089f1 xorl %ecx, %ecx - 0x4d, 0x85, 0xc9, //0x000089f3 testq %r9, %r9 - 0x0f, 0x85, 0x3d, 0xff, 0xff, 0xff, //0x000089f6 jne LBB32_24 - 0xe9, 0x64, 0xff, 0xff, 0xff, //0x000089fc jmp LBB32_25 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008a01 .p2align 4, 0x90 - //0x00008a10 _format_significand - 0x55, //0x00008a10 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008a11 movq %rsp, %rbp - 0x41, 0x56, //0x00008a14 pushq %r14 - 0x53, //0x00008a16 pushq %rbx - 0x4c, 0x63, 0xc2, //0x00008a17 movslq %edx, %r8 - 0x49, 0x01, 0xf0, //0x00008a1a addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00008a1d movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00008a20 shrq $32, %rax - 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x00008a24 je LBB33_1 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008a2a movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00008a34 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00008a37 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00008a3a shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008a3e imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00008a44 addl %edi, %ecx - 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00008a46 je LBB33_3 - 0x89, 0xc8, //0x00008a4c movl %ecx, %eax - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008a4e movl $3518437209, %r9d - 0x49, 0x0f, 0xaf, 0xc1, //0x00008a54 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00008a58 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008a5c imull $10000, %eax, %edi - 0x29, 0xf9, //0x00008a62 subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00008a64 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00008a67 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008a6b shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008a6f imull $10000, %edi, %edi - 0x29, 0xf8, //0x00008a75 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00008a77 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00008a7a shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008a7d imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00008a84 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00008a88 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00008a8c subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00008a8e movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00008a92 movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00008a95 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008a98 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00008a9e shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00008aa1 imull $100, %edi, %ecx - 0x29, 0xc8, //0x00008aa4 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00008aa6 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x3f, 0x34, 0x00, 0x00, //0x00008aaa leaq $13375(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008ab1 movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008ab6 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008abb movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008ac0 movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008ac5 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008aca movw %ax, $-6(%r8) - 0x0f, 0xb7, 0x04, 0x79, //0x00008acf movzwl (%rcx,%rdi,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008ad3 movw %ax, $-8(%r8) - 0x45, 0x31, 0xc9, //0x00008ad8 xorl %r9d, %r9d - 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00008adb jmp LBB33_5 - //0x00008ae0 LBB33_1 - 0x45, 0x31, 0xc9, //0x00008ae0 xorl %r9d, %r9d - 0x4d, 0x89, 0xc6, //0x00008ae3 movq %r8, %r14 - 0x48, 0x89, 0xfa, //0x00008ae6 movq %rdi, %rdx - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008ae9 cmpl $10000, %edx - 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00008aef jae LBB33_8 - //0x00008af5 LBB33_7 - 0x89, 0xd7, //0x00008af5 movl %edx, %edi - 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00008af7 jmp LBB33_10 - //0x00008afc LBB33_3 - 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008afc movl $8, %r9d - //0x00008b02 LBB33_5 - 0x4d, 0x8d, 0x70, 0xf8, //0x00008b02 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008b06 cmpl $10000, %edx - 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00008b0c jb LBB33_7 - //0x00008b12 LBB33_8 - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008b12 movl $3518437209, %r10d - 0x4c, 0x8d, 0x1d, 0xd1, 0x33, 0x00, 0x00, //0x00008b18 leaq $13265(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, //0x00008b1f .p2align 4, 0x90 - //0x00008b20 LBB33_9 - 0x89, 0xd7, //0x00008b20 movl %edx, %edi - 0x49, 0x0f, 0xaf, 0xfa, //0x00008b22 imulq %r10, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008b26 shrq $45, %rdi - 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008b2a imull $-10000, %edi, %eax - 0x01, 0xd0, //0x00008b30 addl %edx, %eax - 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008b32 imulq $1374389535, %rax, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00008b39 shrq $37, %rbx - 0x6b, 0xcb, 0x64, //0x00008b3d imull $100, %ebx, %ecx - 0x29, 0xc8, //0x00008b40 subl %ecx, %eax - 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008b42 movzwl (%r11,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008b47 movw %ax, $-2(%r14) - 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008b4c movzwl (%r11,%rbx,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008b51 movw %ax, $-4(%r14) - 0x49, 0x83, 0xc6, 0xfc, //0x00008b56 addq $-4, %r14 - 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008b5a cmpl $99999999, %edx - 0x89, 0xfa, //0x00008b60 movl %edi, %edx - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008b62 ja LBB33_9 - //0x00008b68 LBB33_10 - 0x83, 0xff, 0x64, //0x00008b68 cmpl $100, %edi - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008b6b jae LBB33_11 - 0x83, 0xff, 0x0a, //0x00008b71 cmpl $10, %edi - 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008b74 jb LBB33_14 - //0x00008b7a LBB33_13 - 0x89, 0xf8, //0x00008b7a movl %edi, %eax - 0x48, 0x8d, 0x0d, 0x6d, 0x33, 0x00, 0x00, //0x00008b7c leaq $13165(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008b83 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008b87 movw %ax, $-2(%r14) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008b8c jmp LBB33_15 - //0x00008b91 LBB33_11 - 0x0f, 0xb7, 0xc7, //0x00008b91 movzwl %di, %eax - 0xc1, 0xe8, 0x02, //0x00008b94 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008b97 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00008b9d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00008ba0 imull $100, %eax, %ecx - 0x29, 0xcf, //0x00008ba3 subl %ecx, %edi - 0x0f, 0xb7, 0xcf, //0x00008ba5 movzwl %di, %ecx - 0x48, 0x8d, 0x15, 0x41, 0x33, 0x00, 0x00, //0x00008ba8 leaq $13121(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008baf movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008bb3 movw %cx, $-2(%r14) - 0x49, 0x83, 0xc6, 0xfe, //0x00008bb8 addq $-2, %r14 - 0x89, 0xc7, //0x00008bbc movl %eax, %edi - 0x83, 0xff, 0x0a, //0x00008bbe cmpl $10, %edi - 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008bc1 jae LBB33_13 - //0x00008bc7 LBB33_14 - 0x40, 0x80, 0xc7, 0x30, //0x00008bc7 addb $48, %dil - 0x40, 0x88, 0x3e, //0x00008bcb movb %dil, (%rsi) - //0x00008bce LBB33_15 - 0x4d, 0x29, 0xc8, //0x00008bce subq %r9, %r8 - 0x4c, 0x89, 0xc0, //0x00008bd1 movq %r8, %rax - 0x5b, //0x00008bd4 popq %rbx - 0x41, 0x5e, //0x00008bd5 popq %r14 - 0x5d, //0x00008bd7 popq %rbp - 0xc3, //0x00008bd8 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008bd9 .p2align 4, 0x90 - //0x00008be0 _left_shift - 0x55, //0x00008be0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008be1 movq %rsp, %rbp - 0x41, 0x56, //0x00008be4 pushq %r14 - 0x53, //0x00008be6 pushq %rbx - 0x89, 0xf1, //0x00008be7 movl %esi, %ecx - 0x48, 0x6b, 0xd1, 0x68, //0x00008be9 imulq $104, %rcx, %rdx - 0x48, 0x8d, 0x35, 0xec, 0x8c, 0x00, 0x00, //0x00008bed leaq $36076(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ - 0x44, 0x8b, 0x04, 0x32, //0x00008bf4 movl (%rdx,%rsi), %r8d - 0x4c, 0x8b, 0x17, //0x00008bf8 movq (%rdi), %r10 - 0x4c, 0x63, 0x4f, 0x10, //0x00008bfb movslq $16(%rdi), %r9 - 0x8a, 0x44, 0x32, 0x04, //0x00008bff movb $4(%rdx,%rsi), %al - 0x4d, 0x85, 0xc9, //0x00008c03 testq %r9, %r9 - 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00008c06 je LBB34_6 - 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00008c0c leaq $5(%rdx,%rsi), %rdx - 0x31, 0xf6, //0x00008c11 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c13 .p2align 4, 0x90 - //0x00008c20 LBB34_3 - 0x84, 0xc0, //0x00008c20 testb %al, %al - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00008c22 je LBB34_8 - 0x41, 0x38, 0x04, 0x32, //0x00008c28 cmpb %al, (%r10,%rsi) - 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x00008c2c jne LBB34_5 - 0x0f, 0xb6, 0x04, 0x32, //0x00008c32 movzbl (%rdx,%rsi), %eax - 0x48, 0xff, 0xc6, //0x00008c36 incq %rsi - 0x49, 0x39, 0xf1, //0x00008c39 cmpq %rsi, %r9 - 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00008c3c jne LBB34_3 - //0x00008c42 LBB34_6 - 0x84, 0xc0, //0x00008c42 testb %al, %al - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00008c44 je LBB34_8 - //0x00008c4a LBB34_7 - 0x41, 0xff, 0xc8, //0x00008c4a decl %r8d - //0x00008c4d LBB34_8 - 0x45, 0x85, 0xc9, //0x00008c4d testl %r9d, %r9d - 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00008c50 jle LBB34_23 - 0x43, 0x8d, 0x04, 0x08, //0x00008c56 leal (%r8,%r9), %eax - 0x4c, 0x63, 0xf0, //0x00008c5a movslq %eax, %r14 - 0x49, 0xff, 0xce, //0x00008c5d decq %r14 - 0x31, 0xd2, //0x00008c60 xorl %edx, %edx - 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008c62 movabsq $-3689348814741910323, %r11 - 0x90, 0x90, 0x90, 0x90, //0x00008c6c .p2align 4, 0x90 - //0x00008c70 LBB34_10 - 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00008c70 movsbq $-1(%r10,%r9), %rsi - 0x48, 0x83, 0xc6, 0xd0, //0x00008c76 addq $-48, %rsi - 0x48, 0xd3, 0xe6, //0x00008c7a shlq %cl, %rsi - 0x48, 0x01, 0xd6, //0x00008c7d addq %rdx, %rsi - 0x48, 0x89, 0xf0, //0x00008c80 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00008c83 mulq %r11 - 0x48, 0xc1, 0xea, 0x03, //0x00008c86 shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00008c8a leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00008c8e leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xf0, //0x00008c92 movq %rsi, %rax - 0x48, 0x29, 0xd8, //0x00008c95 subq %rbx, %rax - 0x4c, 0x39, 0x77, 0x08, //0x00008c98 cmpq %r14, $8(%rdi) - 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00008c9c jbe LBB34_16 - 0x04, 0x30, //0x00008ca2 addb $48, %al - 0x43, 0x88, 0x04, 0x32, //0x00008ca4 movb %al, (%r10,%r14) - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00008ca8 jmp LBB34_18 - 0x90, 0x90, 0x90, //0x00008cad .p2align 4, 0x90 - //0x00008cb0 LBB34_16 - 0x48, 0x85, 0xc0, //0x00008cb0 testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008cb3 je LBB34_18 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008cb9 movl $1, $28(%rdi) - //0x00008cc0 LBB34_18 - 0x49, 0x83, 0xf9, 0x02, //0x00008cc0 cmpq $2, %r9 - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00008cc4 jl LBB34_12 - 0x49, 0xff, 0xc9, //0x00008cca decq %r9 - 0x4c, 0x8b, 0x17, //0x00008ccd movq (%rdi), %r10 - 0x49, 0xff, 0xce, //0x00008cd0 decq %r14 - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00008cd3 jmp LBB34_10 - //0x00008cd8 LBB34_12 - 0x48, 0x83, 0xfe, 0x0a, //0x00008cd8 cmpq $10, %rsi - 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00008cdc jae LBB34_13 - //0x00008ce2 LBB34_23 - 0x48, 0x63, 0x4f, 0x10, //0x00008ce2 movslq $16(%rdi), %rcx - 0x49, 0x63, 0xc0, //0x00008ce6 movslq %r8d, %rax - 0x48, 0x01, 0xc8, //0x00008ce9 addq %rcx, %rax - 0x89, 0x47, 0x10, //0x00008cec movl %eax, $16(%rdi) - 0x48, 0x8b, 0x4f, 0x08, //0x00008cef movq $8(%rdi), %rcx - 0x48, 0x39, 0xc1, //0x00008cf3 cmpq %rax, %rcx - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008cf6 ja LBB34_25 - 0x89, 0x4f, 0x10, //0x00008cfc movl %ecx, $16(%rdi) - 0x89, 0xc8, //0x00008cff movl %ecx, %eax - //0x00008d01 LBB34_25 - 0x44, 0x01, 0x47, 0x14, //0x00008d01 addl %r8d, $20(%rdi) - 0x85, 0xc0, //0x00008d05 testl %eax, %eax - 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00008d07 jle LBB34_29 - 0x48, 0x8b, 0x0f, //0x00008d0d movq (%rdi), %rcx - 0x89, 0xc0, //0x00008d10 movl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d12 .p2align 4, 0x90 - //0x00008d20 LBB34_27 - 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00008d20 cmpb $48, $-1(%rcx,%rax) - 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00008d25 jne LBB34_31 - 0x89, 0xc2, //0x00008d2b movl %eax, %edx - 0x48, 0xff, 0xc8, //0x00008d2d decq %rax - 0xff, 0xca, //0x00008d30 decl %edx - 0x89, 0x57, 0x10, //0x00008d32 movl %edx, $16(%rdi) - 0x48, 0x8d, 0x50, 0x01, //0x00008d35 leaq $1(%rax), %rdx - 0x48, 0x83, 0xfa, 0x01, //0x00008d39 cmpq $1, %rdx - 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00008d3d jg LBB34_27 - //0x00008d43 LBB34_29 - 0x85, 0xc0, //0x00008d43 testl %eax, %eax - 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00008d45 je LBB34_30 - //0x00008d4b LBB34_31 - 0x5b, //0x00008d4b popq %rbx - 0x41, 0x5e, //0x00008d4c popq %r14 - 0x5d, //0x00008d4e popq %rbp - 0xc3, //0x00008d4f retq - //0x00008d50 LBB34_13 - 0x49, 0x63, 0xf6, //0x00008d50 movslq %r14d, %rsi - 0x48, 0xff, 0xce, //0x00008d53 decq %rsi - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00008d56 jmp LBB34_14 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d5b .p2align 4, 0x90 - //0x00008d60 LBB34_15 - 0x04, 0x30, //0x00008d60 addb $48, %al - 0x48, 0x8b, 0x1f, //0x00008d62 movq (%rdi), %rbx - 0x88, 0x04, 0x33, //0x00008d65 movb %al, (%rbx,%rsi) - //0x00008d68 LBB34_22 - 0x48, 0xff, 0xce, //0x00008d68 decq %rsi - 0x48, 0x83, 0xf9, 0x09, //0x00008d6b cmpq $9, %rcx - 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00008d6f jbe LBB34_23 - //0x00008d75 LBB34_14 - 0x48, 0x89, 0xd1, //0x00008d75 movq %rdx, %rcx - 0x48, 0x89, 0xd0, //0x00008d78 movq %rdx, %rax - 0x49, 0xf7, 0xe3, //0x00008d7b mulq %r11 - 0x48, 0xc1, 0xea, 0x03, //0x00008d7e shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00008d82 leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00008d86 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xc8, //0x00008d8a movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x00008d8d subq %rbx, %rax - 0x48, 0x39, 0x77, 0x08, //0x00008d90 cmpq %rsi, $8(%rdi) - 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00008d94 ja LBB34_15 - 0x48, 0x85, 0xc0, //0x00008d9a testq %rax, %rax - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00008d9d je LBB34_22 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008da3 movl $1, $28(%rdi) - 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00008daa jmp LBB34_22 - //0x00008daf LBB34_30 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008daf movl $0, $20(%rdi) - 0x5b, //0x00008db6 popq %rbx - 0x41, 0x5e, //0x00008db7 popq %r14 - 0x5d, //0x00008db9 popq %rbp - 0xc3, //0x00008dba retq - //0x00008dbb LBB34_5 - 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00008dbb jl LBB34_7 - 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00008dc1 jmp LBB34_8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008dc6 .p2align 4, 0x90 - //0x00008dd0 _right_shift - 0x55, //0x00008dd0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008dd1 movq %rsp, %rbp - 0x89, 0xf1, //0x00008dd4 movl %esi, %ecx - 0x4c, 0x63, 0x4f, 0x10, //0x00008dd6 movslq $16(%rdi), %r9 - 0x31, 0xf6, //0x00008dda xorl %esi, %esi - 0x31, 0xc0, //0x00008ddc xorl %eax, %eax - 0x90, 0x90, //0x00008dde .p2align 4, 0x90 - //0x00008de0 LBB35_1 - 0x4c, 0x39, 0xce, //0x00008de0 cmpq %r9, %rsi - 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00008de3 jge LBB35_2 - 0x48, 0x8d, 0x04, 0x80, //0x00008de9 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x17, //0x00008ded movq (%rdi), %rdx - 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00008df0 movsbq (%rdx,%rsi), %rdx - 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00008df5 leaq $-48(%rdx,%rax,2), %rax - 0x48, 0xff, 0xc6, //0x00008dfa incq %rsi - 0x48, 0x89, 0xc2, //0x00008dfd movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00008e00 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00008e03 testq %rdx, %rdx - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00008e06 je LBB35_1 - //0x00008e0c LBB35_6 - 0x8b, 0x57, 0x14, //0x00008e0c movl $20(%rdi), %edx - 0x29, 0xf2, //0x00008e0f subl %esi, %edx - 0xff, 0xc2, //0x00008e11 incl %edx - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00008e13 movq $-1, %r8 - 0x49, 0xd3, 0xe0, //0x00008e1a shlq %cl, %r8 - 0x89, 0x57, 0x14, //0x00008e1d movl %edx, $20(%rdi) - 0x49, 0xf7, 0xd0, //0x00008e20 notq %r8 - 0x45, 0x31, 0xd2, //0x00008e23 xorl %r10d, %r10d - 0x44, 0x39, 0xce, //0x00008e26 cmpl %r9d, %esi - 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00008e29 jge LBB35_9 - 0x4c, 0x63, 0xce, //0x00008e2f movslq %esi, %r9 - 0x48, 0x8b, 0x37, //0x00008e32 movq (%rdi), %rsi - 0x45, 0x31, 0xd2, //0x00008e35 xorl %r10d, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e38 .p2align 4, 0x90 - //0x00008e40 LBB35_8 - 0x48, 0x89, 0xc2, //0x00008e40 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00008e43 shrq %cl, %rdx - 0x4c, 0x21, 0xc0, //0x00008e46 andq %r8, %rax - 0x80, 0xc2, 0x30, //0x00008e49 addb $48, %dl - 0x42, 0x88, 0x14, 0x16, //0x00008e4c movb %dl, (%rsi,%r10) - 0x48, 0x8d, 0x04, 0x80, //0x00008e50 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x37, //0x00008e54 movq (%rdi), %rsi - 0x4a, 0x8d, 0x14, 0x0e, //0x00008e57 leaq (%rsi,%r9), %rdx - 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x00008e5b movsbq (%r10,%rdx), %rdx - 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00008e60 leaq $-48(%rdx,%rax,2), %rax - 0x4c, 0x63, 0x5f, 0x10, //0x00008e65 movslq $16(%rdi), %r11 - 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00008e69 leaq $1(%r9,%r10), %rdx - 0x49, 0xff, 0xc2, //0x00008e6e incq %r10 - 0x4c, 0x39, 0xda, //0x00008e71 cmpq %r11, %rdx - 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00008e74 jl LBB35_8 - 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00008e7a jmp LBB35_9 - 0x90, //0x00008e7f .p2align 4, 0x90 - //0x00008e80 LBB35_11 - 0x40, 0x80, 0xc6, 0x30, //0x00008e80 addb $48, %sil - 0x48, 0x8b, 0x17, //0x00008e84 movq (%rdi), %rdx - 0x42, 0x88, 0x34, 0x0a, //0x00008e87 movb %sil, (%rdx,%r9) - 0x41, 0xff, 0xc1, //0x00008e8b incl %r9d - 0x45, 0x89, 0xca, //0x00008e8e movl %r9d, %r10d - //0x00008e91 LBB35_14 - 0x48, 0x01, 0xc0, //0x00008e91 addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00008e94 leaq (%rax,%rax,4), %rax - //0x00008e98 LBB35_9 - 0x48, 0x85, 0xc0, //0x00008e98 testq %rax, %rax - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00008e9b je LBB35_15 - 0x48, 0x89, 0xc6, //0x00008ea1 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x00008ea4 shrq %cl, %rsi - 0x4c, 0x21, 0xc0, //0x00008ea7 andq %r8, %rax - 0x4d, 0x63, 0xca, //0x00008eaa movslq %r10d, %r9 - 0x4c, 0x39, 0x4f, 0x08, //0x00008ead cmpq %r9, $8(%rdi) - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00008eb1 ja LBB35_11 - 0x48, 0x85, 0xf6, //0x00008eb7 testq %rsi, %rsi - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00008eba je LBB35_14 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008ec0 movl $1, $28(%rdi) - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00008ec7 jmp LBB35_14 - //0x00008ecc LBB35_15 - 0x44, 0x89, 0x57, 0x10, //0x00008ecc movl %r10d, $16(%rdi) - 0x45, 0x85, 0xd2, //0x00008ed0 testl %r10d, %r10d - 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00008ed3 jle LBB35_19 - 0x48, 0x8b, 0x07, //0x00008ed9 movq (%rdi), %rax - 0x45, 0x89, 0xd2, //0x00008edc movl %r10d, %r10d - 0x90, //0x00008edf .p2align 4, 0x90 - //0x00008ee0 LBB35_17 - 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00008ee0 cmpb $48, $-1(%rax,%r10) - 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00008ee6 jne LBB35_21 - 0x44, 0x89, 0xd1, //0x00008eec movl %r10d, %ecx - 0x49, 0xff, 0xca, //0x00008eef decq %r10 - 0xff, 0xc9, //0x00008ef2 decl %ecx - 0x89, 0x4f, 0x10, //0x00008ef4 movl %ecx, $16(%rdi) - 0x49, 0x8d, 0x4a, 0x01, //0x00008ef7 leaq $1(%r10), %rcx - 0x48, 0x83, 0xf9, 0x01, //0x00008efb cmpq $1, %rcx - 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x00008eff jg LBB35_17 - //0x00008f05 LBB35_19 - 0x45, 0x85, 0xd2, //0x00008f05 testl %r10d, %r10d - 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00008f08 je LBB35_20 - //0x00008f0e LBB35_21 - 0x5d, //0x00008f0e popq %rbp - 0xc3, //0x00008f0f retq - //0x00008f10 LBB35_2 - 0x48, 0x85, 0xc0, //0x00008f10 testq %rax, %rax - 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00008f13 je LBB35_22 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f19 .p2align 4, 0x90 - 0x48, 0x89, 0xc2, //0x00008f20 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00008f23 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00008f26 testq %rdx, %rdx - 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00008f29 jne LBB35_6 - //0x00008f2f LBB35_4 - 0x48, 0x01, 0xc0, //0x00008f2f addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00008f32 leaq (%rax,%rax,4), %rax - 0xff, 0xc6, //0x00008f36 incl %esi - 0x48, 0x89, 0xc2, //0x00008f38 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00008f3b shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00008f3e testq %rdx, %rdx - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00008f41 je LBB35_4 - 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00008f47 jmp LBB35_6 - //0x00008f4c LBB35_20 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008f4c movl $0, $20(%rdi) - 0x5d, //0x00008f53 popq %rbp - 0xc3, //0x00008f54 retq - //0x00008f55 LBB35_22 - 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00008f55 movl $0, $16(%rdi) - 0x5d, //0x00008f5c popq %rbp - 0xc3, //0x00008f5d retq - 0x00, 0x00, //0x00008f5e .p2align 4, 0x00 - //0x00008f60 LCPI36_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00008f60 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00008f70 LCPI36_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00008f70 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00008f80 .p2align 4, 0x90 - //0x00008f80 _advance_string_default - 0x55, //0x00008f80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008f81 movq %rsp, %rbp - 0x41, 0x57, //0x00008f84 pushq %r15 - 0x41, 0x56, //0x00008f86 pushq %r14 - 0x41, 0x55, //0x00008f88 pushq %r13 - 0x41, 0x54, //0x00008f8a pushq %r12 - 0x53, //0x00008f8c pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00008f8d subq $16, %rsp - 0x4c, 0x8b, 0x67, 0x08, //0x00008f91 movq $8(%rdi), %r12 - 0x49, 0x29, 0xf4, //0x00008f95 subq %rsi, %r12 - 0x0f, 0x84, 0x79, 0x03, 0x00, 0x00, //0x00008f98 je LBB36_17 - 0x48, 0x8b, 0x07, //0x00008f9e movq (%rdi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x00008fa1 movq %rax, $-48(%rbp) - 0x48, 0x01, 0xc6, //0x00008fa5 addq %rax, %rsi - 0x48, 0x89, 0x55, 0xc8, //0x00008fa8 movq %rdx, $-56(%rbp) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00008fac movq $-1, (%rdx) - 0x49, 0x83, 0xfc, 0x40, //0x00008fb3 cmpq $64, %r12 - 0x0f, 0x82, 0xfa, 0x01, 0x00, 0x00, //0x00008fb7 jb LBB36_18 - 0x45, 0x89, 0xe1, //0x00008fbd movl %r12d, %r9d - 0x41, 0x83, 0xe1, 0x3f, //0x00008fc0 andl $63, %r9d - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00008fc4 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00008fcb xorl %r15d, %r15d - 0xc5, 0xf9, 0x6f, 0x05, 0x8a, 0xff, 0xff, 0xff, //0x00008fce vmovdqa $-118(%rip), %xmm0 /* LCPI36_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x00008fd6 vmovdqa $-110(%rip), %xmm1 /* LCPI36_1+0(%rip) */ - 0x48, 0x8b, 0x55, 0xd0, //0x00008fde movq $-48(%rbp), %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fe2 .p2align 4, 0x90 - //0x00008ff0 LBB36_3 - 0xc5, 0xfa, 0x6f, 0x16, //0x00008ff0 vmovdqu (%rsi), %xmm2 - 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008ff4 vmovdqu $16(%rsi), %xmm3 - 0xc5, 0xfa, 0x6f, 0x66, 0x20, //0x00008ff9 vmovdqu $32(%rsi), %xmm4 - 0xc5, 0xfa, 0x6f, 0x6e, 0x30, //0x00008ffe vmovdqu $48(%rsi), %xmm5 - 0xc5, 0xe9, 0x74, 0xf0, //0x00009003 vpcmpeqb %xmm0, %xmm2, %xmm6 - 0xc5, 0xf9, 0xd7, 0xde, //0x00009007 vpmovmskb %xmm6, %ebx - 0xc5, 0xe1, 0x74, 0xf0, //0x0000900b vpcmpeqb %xmm0, %xmm3, %xmm6 - 0xc5, 0xf9, 0xd7, 0xce, //0x0000900f vpmovmskb %xmm6, %ecx - 0xc5, 0xd9, 0x74, 0xf0, //0x00009013 vpcmpeqb %xmm0, %xmm4, %xmm6 - 0xc5, 0xf9, 0xd7, 0xc6, //0x00009017 vpmovmskb %xmm6, %eax - 0xc5, 0xd1, 0x74, 0xf0, //0x0000901b vpcmpeqb %xmm0, %xmm5, %xmm6 - 0xc5, 0x79, 0xd7, 0xee, //0x0000901f vpmovmskb %xmm6, %r13d - 0xc5, 0xe9, 0x74, 0xd1, //0x00009023 vpcmpeqb %xmm1, %xmm2, %xmm2 - 0xc5, 0xf9, 0xd7, 0xfa, //0x00009027 vpmovmskb %xmm2, %edi - 0xc5, 0xe1, 0x74, 0xd1, //0x0000902b vpcmpeqb %xmm1, %xmm3, %xmm2 - 0xc5, 0x79, 0xd7, 0xd2, //0x0000902f vpmovmskb %xmm2, %r10d - 0xc5, 0xd9, 0x74, 0xd1, //0x00009033 vpcmpeqb %xmm1, %xmm4, %xmm2 - 0xc5, 0x79, 0xd7, 0xda, //0x00009037 vpmovmskb %xmm2, %r11d - 0xc5, 0xd1, 0x74, 0xd1, //0x0000903b vpcmpeqb %xmm1, %xmm5, %xmm2 - 0xc5, 0x79, 0xd7, 0xc2, //0x0000903f vpmovmskb %xmm2, %r8d - 0x49, 0xc1, 0xe5, 0x30, //0x00009043 shlq $48, %r13 - 0x48, 0xc1, 0xe0, 0x20, //0x00009047 shlq $32, %rax - 0x48, 0xc1, 0xe1, 0x10, //0x0000904b shlq $16, %rcx - 0x48, 0x09, 0xcb, //0x0000904f orq %rcx, %rbx - 0x48, 0x09, 0xc3, //0x00009052 orq %rax, %rbx - 0x49, 0xc1, 0xe0, 0x30, //0x00009055 shlq $48, %r8 - 0x49, 0xc1, 0xe3, 0x20, //0x00009059 shlq $32, %r11 - 0x49, 0xc1, 0xe2, 0x10, //0x0000905d shlq $16, %r10 - 0x4c, 0x09, 0xd7, //0x00009061 orq %r10, %rdi - 0x4c, 0x09, 0xdf, //0x00009064 orq %r11, %rdi - 0x4c, 0x09, 0xc7, //0x00009067 orq %r8, %rdi - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000906a je LBB36_5 - 0x49, 0x83, 0xfe, 0xff, //0x00009070 cmpq $-1, %r14 - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00009074 je LBB36_8 - //0x0000907a LBB36_5 - 0x4c, 0x09, 0xeb, //0x0000907a orq %r13, %rbx - 0x48, 0x89, 0xf8, //0x0000907d movq %rdi, %rax - 0x4c, 0x09, 0xf8, //0x00009080 orq %r15, %rax - 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00009083 jne LBB36_9 - //0x00009089 LBB36_6 - 0x48, 0x85, 0xdb, //0x00009089 testq %rbx, %rbx - 0x0f, 0x85, 0x0a, 0x01, 0x00, 0x00, //0x0000908c jne LBB36_15 - //0x00009092 LBB36_7 - 0x48, 0x83, 0xc6, 0x40, //0x00009092 addq $64, %rsi - 0x49, 0x83, 0xc4, 0xc0, //0x00009096 addq $-64, %r12 - 0x49, 0x83, 0xfc, 0x3f, //0x0000909a cmpq $63, %r12 - 0x0f, 0x87, 0x4c, 0xff, 0xff, 0xff, //0x0000909e ja LBB36_3 - 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x000090a4 jmp LBB36_10 - //0x000090a9 LBB36_8 - 0x48, 0x89, 0xf0, //0x000090a9 movq %rsi, %rax - 0x48, 0x29, 0xd0, //0x000090ac subq %rdx, %rax - 0x4c, 0x0f, 0xbc, 0xf7, //0x000090af bsfq %rdi, %r14 - 0x49, 0x01, 0xc6, //0x000090b3 addq %rax, %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x000090b6 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x000090ba movq %r14, (%rax) - 0x4c, 0x09, 0xeb, //0x000090bd orq %r13, %rbx - 0x48, 0x89, 0xf8, //0x000090c0 movq %rdi, %rax - 0x4c, 0x09, 0xf8, //0x000090c3 orq %r15, %rax - 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x000090c6 je LBB36_6 - //0x000090cc LBB36_9 - 0x4c, 0x89, 0xf8, //0x000090cc movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x000090cf notq %rax - 0x48, 0x21, 0xf8, //0x000090d2 andq %rdi, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x000090d5 leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf8, //0x000090d9 orq %r15, %r8 - 0x4c, 0x89, 0xc1, //0x000090dc movq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x000090df notq %rcx - 0x48, 0x21, 0xf9, //0x000090e2 andq %rdi, %rcx - 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000090e5 movabsq $-6148914691236517206, %rdi - 0x48, 0x21, 0xf9, //0x000090ef andq %rdi, %rcx - 0x45, 0x31, 0xff, //0x000090f2 xorl %r15d, %r15d - 0x48, 0x01, 0xc1, //0x000090f5 addq %rax, %rcx - 0x41, 0x0f, 0x92, 0xc7, //0x000090f8 setb %r15b - 0x48, 0x01, 0xc9, //0x000090fc addq %rcx, %rcx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000090ff movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc1, //0x00009109 xorq %rax, %rcx - 0x4c, 0x21, 0xc1, //0x0000910c andq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x0000910f notq %rcx - 0x48, 0x21, 0xcb, //0x00009112 andq %rcx, %rbx - 0x48, 0x85, 0xdb, //0x00009115 testq %rbx, %rbx - 0x0f, 0x84, 0x74, 0xff, 0xff, 0xff, //0x00009118 je LBB36_7 - 0xe9, 0x79, 0x00, 0x00, 0x00, //0x0000911e jmp LBB36_15 - //0x00009123 LBB36_10 - 0x4d, 0x89, 0xcc, //0x00009123 movq %r9, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x00009126 cmpq $32, %r12 - 0x0f, 0x82, 0x0b, 0x01, 0x00, 0x00, //0x0000912a jb LBB36_22 - //0x00009130 LBB36_11 - 0xc5, 0xfa, 0x6f, 0x06, //0x00009130 vmovdqu (%rsi), %xmm0 - 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00009134 vmovdqu $16(%rsi), %xmm1 - 0xc5, 0xf9, 0x6f, 0x15, 0x1f, 0xfe, 0xff, 0xff, //0x00009139 vmovdqa $-481(%rip), %xmm2 /* LCPI36_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x1d, 0x27, 0xfe, 0xff, 0xff, //0x00009141 vmovdqa $-473(%rip), %xmm3 /* LCPI36_1+0(%rip) */ - 0xc5, 0xf9, 0x74, 0xe2, //0x00009149 vpcmpeqb %xmm2, %xmm0, %xmm4 - 0xc5, 0xf9, 0xd7, 0xfc, //0x0000914d vpmovmskb %xmm4, %edi - 0xc5, 0xf1, 0x74, 0xd2, //0x00009151 vpcmpeqb %xmm2, %xmm1, %xmm2 - 0xc5, 0xf9, 0xd7, 0xda, //0x00009155 vpmovmskb %xmm2, %ebx - 0xc5, 0xf9, 0x74, 0xc3, //0x00009159 vpcmpeqb %xmm3, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x0000915d vpmovmskb %xmm0, %eax - 0xc5, 0xf1, 0x74, 0xc3, //0x00009161 vpcmpeqb %xmm3, %xmm1, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00009165 vpmovmskb %xmm0, %ecx - 0x48, 0xc1, 0xe3, 0x10, //0x00009169 shlq $16, %rbx - 0x48, 0xc1, 0xe1, 0x10, //0x0000916d shlq $16, %rcx - 0x48, 0x09, 0xc8, //0x00009171 orq %rcx, %rax - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00009174 je LBB36_13 - 0x49, 0x83, 0xfe, 0xff, //0x0000917a cmpq $-1, %r14 - 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000917e je LBB36_19 - //0x00009184 LBB36_13 - 0x48, 0x09, 0xfb, //0x00009184 orq %rdi, %rbx - 0x48, 0x89, 0xc1, //0x00009187 movq %rax, %rcx - 0x4c, 0x09, 0xf9, //0x0000918a orq %r15, %rcx - 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x0000918d jne LBB36_20 - //0x00009193 LBB36_14 - 0x48, 0x85, 0xdb, //0x00009193 testq %rbx, %rbx - 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x00009196 je LBB36_21 - //0x0000919c LBB36_15 - 0x48, 0x0f, 0xbc, 0xc3, //0x0000919c bsfq %rbx, %rax - 0x48, 0x29, 0xd6, //0x000091a0 subq %rdx, %rsi - 0x48, 0x8d, 0x44, 0x06, 0x01, //0x000091a3 leaq $1(%rsi,%rax), %rax - //0x000091a8 LBB36_16 - 0x48, 0x83, 0xc4, 0x10, //0x000091a8 addq $16, %rsp - 0x5b, //0x000091ac popq %rbx - 0x41, 0x5c, //0x000091ad popq %r12 - 0x41, 0x5d, //0x000091af popq %r13 - 0x41, 0x5e, //0x000091b1 popq %r14 - 0x41, 0x5f, //0x000091b3 popq %r15 - 0x5d, //0x000091b5 popq %rbp - 0xc3, //0x000091b6 retq - //0x000091b7 LBB36_18 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000091b7 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x000091be xorl %r15d, %r15d - 0x48, 0x8b, 0x55, 0xd0, //0x000091c1 movq $-48(%rbp), %rdx - 0x49, 0x83, 0xfc, 0x20, //0x000091c5 cmpq $32, %r12 - 0x0f, 0x83, 0x61, 0xff, 0xff, 0xff, //0x000091c9 jae LBB36_11 - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000091cf jmp LBB36_22 - //0x000091d4 LBB36_19 - 0x48, 0x89, 0xf1, //0x000091d4 movq %rsi, %rcx - 0x48, 0x29, 0xd1, //0x000091d7 subq %rdx, %rcx - 0x4c, 0x0f, 0xbc, 0xf0, //0x000091da bsfq %rax, %r14 - 0x49, 0x01, 0xce, //0x000091de addq %rcx, %r14 - 0x48, 0x8b, 0x4d, 0xc8, //0x000091e1 movq $-56(%rbp), %rcx - 0x4c, 0x89, 0x31, //0x000091e5 movq %r14, (%rcx) - 0x48, 0x09, 0xfb, //0x000091e8 orq %rdi, %rbx - 0x48, 0x89, 0xc1, //0x000091eb movq %rax, %rcx - 0x4c, 0x09, 0xf9, //0x000091ee orq %r15, %rcx - 0x0f, 0x84, 0x9c, 0xff, 0xff, 0xff, //0x000091f1 je LBB36_14 - //0x000091f7 LBB36_20 - 0x44, 0x89, 0xf9, //0x000091f7 movl %r15d, %ecx - 0xf7, 0xd1, //0x000091fa notl %ecx - 0x21, 0xc1, //0x000091fc andl %eax, %ecx - 0x44, 0x8d, 0x04, 0x09, //0x000091fe leal (%rcx,%rcx), %r8d - 0x45, 0x09, 0xf8, //0x00009202 orl %r15d, %r8d - 0x44, 0x89, 0xc7, //0x00009205 movl %r8d, %edi - 0xf7, 0xd7, //0x00009208 notl %edi - 0x21, 0xc7, //0x0000920a andl %eax, %edi - 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000920c andl $-1431655766, %edi - 0x45, 0x31, 0xff, //0x00009212 xorl %r15d, %r15d - 0x01, 0xcf, //0x00009215 addl %ecx, %edi - 0x41, 0x0f, 0x92, 0xc7, //0x00009217 setb %r15b - 0x01, 0xff, //0x0000921b addl %edi, %edi - 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000921d xorl $1431655765, %edi - 0x44, 0x21, 0xc7, //0x00009223 andl %r8d, %edi - 0xf7, 0xd7, //0x00009226 notl %edi - 0x21, 0xfb, //0x00009228 andl %edi, %ebx - 0x48, 0x85, 0xdb, //0x0000922a testq %rbx, %rbx - 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x0000922d jne LBB36_15 - //0x00009233 LBB36_21 - 0x48, 0x83, 0xc6, 0x20, //0x00009233 addq $32, %rsi - 0x49, 0x83, 0xc4, 0xe0, //0x00009237 addq $-32, %r12 - //0x0000923b LBB36_22 - 0x4d, 0x85, 0xff, //0x0000923b testq %r15, %r15 - 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000923e jne LBB36_33 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009244 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x0000924b testq %r12, %r12 - 0x0f, 0x84, 0x54, 0xff, 0xff, 0xff, //0x0000924e je LBB36_16 - //0x00009254 LBB36_24 - 0x49, 0x89, 0xd1, //0x00009254 movq %rdx, %r9 - 0x49, 0xf7, 0xd1, //0x00009257 notq %r9 - 0x48, 0x8b, 0x4d, 0xc8, //0x0000925a movq $-56(%rbp), %rcx - //0x0000925e LBB36_25 - 0x48, 0x8d, 0x7e, 0x01, //0x0000925e leaq $1(%rsi), %rdi - 0x0f, 0xb6, 0x1e, //0x00009262 movzbl (%rsi), %ebx - 0x80, 0xfb, 0x22, //0x00009265 cmpb $34, %bl - 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00009268 je LBB36_32 - 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x0000926e leaq $-1(%r12), %r10 - 0x80, 0xfb, 0x5c, //0x00009273 cmpb $92, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00009276 je LBB36_28 - 0x4d, 0x89, 0xd4, //0x0000927c movq %r10, %r12 - 0x48, 0x89, 0xfe, //0x0000927f movq %rdi, %rsi - 0x4d, 0x85, 0xd2, //0x00009282 testq %r10, %r10 - 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00009285 jne LBB36_25 - 0xe9, 0x18, 0xff, 0xff, 0xff, //0x0000928b jmp LBB36_16 - //0x00009290 LBB36_28 - 0x4d, 0x85, 0xd2, //0x00009290 testq %r10, %r10 - 0x0f, 0x84, 0x0f, 0xff, 0xff, 0xff, //0x00009293 je LBB36_16 - 0x49, 0x83, 0xfe, 0xff, //0x00009299 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000929d jne LBB36_31 - 0x4c, 0x01, 0xcf, //0x000092a3 addq %r9, %rdi - 0x48, 0x89, 0x39, //0x000092a6 movq %rdi, (%rcx) - 0x49, 0x89, 0xfe, //0x000092a9 movq %rdi, %r14 - //0x000092ac LBB36_31 - 0x48, 0x83, 0xc6, 0x02, //0x000092ac addq $2, %rsi - 0x49, 0x83, 0xc4, 0xfe, //0x000092b0 addq $-2, %r12 - 0x4d, 0x89, 0xe2, //0x000092b4 movq %r12, %r10 - 0x48, 0x8b, 0x55, 0xd0, //0x000092b7 movq $-48(%rbp), %rdx - 0x4d, 0x85, 0xd2, //0x000092bb testq %r10, %r10 - 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x000092be jne LBB36_25 - 0xe9, 0xdf, 0xfe, 0xff, 0xff, //0x000092c4 jmp LBB36_16 - //0x000092c9 LBB36_32 - 0x48, 0x29, 0xd7, //0x000092c9 subq %rdx, %rdi - 0x48, 0x89, 0xf8, //0x000092cc movq %rdi, %rax - 0xe9, 0xd4, 0xfe, 0xff, 0xff, //0x000092cf jmp LBB36_16 - //0x000092d4 LBB36_33 - 0x4d, 0x85, 0xe4, //0x000092d4 testq %r12, %r12 - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000092d7 je LBB36_17 - 0x49, 0x83, 0xfe, 0xff, //0x000092dd cmpq $-1, %r14 - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000092e1 jne LBB36_36 - 0x4c, 0x8b, 0x75, 0xd0, //0x000092e7 movq $-48(%rbp), %r14 - 0x49, 0xf7, 0xd6, //0x000092eb notq %r14 - 0x49, 0x01, 0xf6, //0x000092ee addq %rsi, %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x000092f1 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x000092f5 movq %r14, (%rax) - //0x000092f8 LBB36_36 - 0x48, 0xff, 0xc6, //0x000092f8 incq %rsi - 0x49, 0xff, 0xcc, //0x000092fb decq %r12 - 0x48, 0x8b, 0x55, 0xd0, //0x000092fe movq $-48(%rbp), %rdx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009302 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x00009309 testq %r12, %r12 - 0x0f, 0x85, 0x42, 0xff, 0xff, 0xff, //0x0000930c jne LBB36_24 - 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x00009312 jmp LBB36_16 - //0x00009317 LBB36_17 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009317 movq $-1, %rax - 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x0000931e jmp LBB36_16 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009323 .p2align 4, 0x00 - //0x00009330 _POW10_M128_TAB - 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009330 .quad 1671618768450675795 - 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009338 .quad -391859759250406776 - 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009340 .quad 1044761730281672372 - 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009348 .quad -7162441377172586091 - 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009350 .quad 5917638181279478369 - 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009358 .quad -4341365703038344710 - 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009360 .quad -1826324310255427847 - 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009368 .quad -815021110370542984 - 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009370 .quad -8058981721550724260 - 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009378 .quad -7426917221622671221 - 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009380 .quad 8373016921771146291 - 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009388 .quad -4671960508600951122 - 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009390 .quad 1242899115359157055 - 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009398 .quad -1228264617323800998 - 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000093a0 .quad 5388497965526861063 - 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000093a8 .quad -7685194413468457480 - 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x000093b0 .quad 6735622456908576329 - 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x000093b8 .quad -4994806998408183946 - 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x000093c0 .quad -803843965719055396 - 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x000093c8 .quad -1631822729582842029 - 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x000093d0 .quad 8720969558280366185 - 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x000093d8 .quad -7937418233630358124 - 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x000093e0 .quad -7545532125859093884 - 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x000093e8 .quad -5310086773610559751 - 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x000093f0 .quad -208543120469091547 - 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x000093f8 .quad -2025922448585811785 - 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009400 .quad -130339450293182217 - 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009408 .quad -8183730558007214222 - 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009410 .quad -4774610331293865675 - 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009418 .quad -5617977179081629873 - 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009420 .quad -5968262914117332094 - 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009428 .quad -2410785455424649437 - 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009430 .quad 5493207715531443249 - 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009438 .quad -8424269937281487754 - 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009440 .quad -2356862392440471747 - 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009448 .quad -5918651403174471789 - 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009450 .quad -2946077990550589683 - 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009458 .quad -2786628235540701832 - 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009460 .quad -8758827771735200408 - 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009468 .quad -8659171674854020501 - 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009470 .quad 7498209359040551106 - 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009478 .quad -6212278575140137722 - 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009480 .quad 149389661945913074 - 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009488 .quad -3153662200497784248 - 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009490 .quad 93368538716195671 - 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009498 .quad -8888567902952197011 - 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000094a0 .quad 4728396691822632493 - 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000094a8 .quad -6499023860262858360 - 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x000094b0 .quad 5910495864778290617 - 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x000094b8 .quad -3512093806901185046 - 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x000094c0 .quad 8305745933913819539 - 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x000094c8 .quad -9112587656954322510 - 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x000094d0 .quad 1158810380537498616 - 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x000094d8 .quad -6779048552765515233 - 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x000094e0 .quad -3163173042755514634 - 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x000094e8 .quad -3862124672529506138 - 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x000094f0 .quad -8565652321871781196 - 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x000094f8 .quad -215969822234494768 - 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009500 .quad 6175682344898606512 - 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009508 .quad -7052510166537641086 - 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009510 .quad -1503769105731517667 - 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009518 .quad -4203951689744663454 - 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009520 .quad -6491397400591784988 - 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009528 .quad -643253593753441413 - 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009530 .quad 5166248661484910190 - 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009538 .quad -7319562523736982739 - 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009540 .quad -7377247228426025974 - 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009548 .quad -4537767136243840520 - 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009550 .quad -4609873017105144563 - 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009558 .quad -1060522901877412746 - 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009560 .quad 4036358391950366504 - 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009568 .quad -7580355841314464822 - 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009570 .quad -4177924046916817678 - 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009578 .quad -4863758783215693124 - 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009580 .quad -610719040218634194 - 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009588 .quad -1468012460592228501 - 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009590 .quad 8841672636718129437 - 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009598 .quad -7835036815511224669 - 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x000095a0 .quad 6440404777470273892 - 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x000095a8 .quad -5182110000961642932 - 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x000095b0 .quad 8050505971837842365 - 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x000095b8 .quad -1865951482774665761 - 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x000095c0 .quad -6497648813669818282 - 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x000095c8 .quad -8083748704375247957 - 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x000095d0 .quad -8122061017087272852 - 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x000095d8 .quad -5492999862041672042 - 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x000095e0 .quad 3682481783923072647 - 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x000095e8 .quad -2254563809124702148 - 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x000095f0 .quad -6921820921902855404 - 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x000095f8 .quad -8326631408344020699 - 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009600 .quad 571095884476206553 - 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009608 .quad -5796603242002637969 - 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009610 .quad -3897816162832129712 - 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009618 .quad -2634068034075909558 - 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009620 .quad -4741978110983775022 - 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009628 .quad -8563821548938525330 - 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009630 .quad 7907585416552444934 - 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009638 .quad -6093090917745768758 - 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009640 .quad 661109733835780360 - 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009648 .quad -3004677628754823043 - 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009650 .quad 2719036592861056677 - 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009658 .quad -8795452545612846258 - 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009660 .quad -5824576295778454962 - 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009668 .quad -6382629663588669919 - 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009670 .quad 1942651667131707105 - 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009678 .quad -3366601061058449494 - 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009680 .quad 5825843310384704845 - 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009688 .quad -9021654690802612790 - 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009690 .quad -1941067898873894752 - 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009698 .quad -6665382345075878084 - 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x000096a0 .quad 2185351144835019464 - 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x000096a8 .quad -3720041912917459700 - 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x000096b0 .quad 2731688931043774330 - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x000096b8 .quad -38366372719436721 - 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x000096c0 .quad 8624834609543440812 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x000096c8 .quad -6941508010590729807 - 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x000096d0 .quad -3054014793352862697 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x000096d8 .quad -4065198994811024355 - 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x000096e0 .quad 5405853545163697437 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x000096e8 .quad -469812725086392539 - 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x000096f0 .quad 5684501474941004850 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x000096f8 .quad -7211161980820077193 - 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009700 .quad 2493940825248868159 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009708 .quad -4402266457597708587 - 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009710 .quad 7729112049988473103 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009718 .quad -891147053569747830 - 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009720 .quad -9004363024039368023 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009728 .quad -7474495936122174250 - 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009730 .quad 2579604275232953683 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009738 .quad -4731433901725329908 - 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009740 .quad 3224505344041192104 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009748 .quad -1302606358729274481 - 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009750 .quad 8932844867666826921 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009758 .quad -7731658001846878407 - 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009760 .quad -2669001970698630061 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009768 .quad -5052886483881210105 - 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009770 .quad -3336252463373287576 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009778 .quad -1704422086424124727 - 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009780 .quad 2526528228819083169 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009788 .quad -7982792831656159810 - 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009790 .quad -6065211750830921846 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009798 .quad -5366805021142811859 - 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x000097a0 .quad 1641857348316123500 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x000097a8 .quad -2096820258001126919 - 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x000097b0 .quad -5891368184943504669 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x000097b8 .quad -8228041688891786181 - 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x000097c0 .quad -7364210231179380836 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x000097c8 .quad -5673366092687344822 - 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x000097d0 .quad 4629795266307937667 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x000097d8 .quad -2480021597431793123 - 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x000097e0 .quad 5199465050656154994 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x000097e8 .quad -8467542526035952558 - 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x000097f0 .quad -2724040723534582065 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x000097f8 .quad -5972742139117552794 - 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009800 .quad -8016736922845615486 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009808 .quad -2854241655469553088 - 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009810 .quad 6518754469289960081 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009818 .quad -8701430062309552536 - 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009820 .quad 8148443086612450102 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009828 .quad -6265101559459552766 - 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009830 .quad 962181821410786819 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009838 .quad -3219690930897053053 - 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009840 .quad -1704479370831952190 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009848 .quad -8929835859451740015 - 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009850 .quad 7092772823314835570 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009858 .quad -6550608805887287114 - 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009860 .quad -357406007711231345 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009868 .quad -3576574988931720989 - 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009870 .quad 8999993282035256217 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009878 .quad -9152888395723407474 - 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009880 .quad 2026619565689294464 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009888 .quad -6829424476226871438 - 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009890 .quad -6690097579743157728 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009898 .quad -3925094576856201394 - 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x000098a0 .quad 5472436080603216552 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x000098a8 .quad -294682202642863838 - 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x000098b0 .quad 8031958568804398249 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x000098b8 .quad -7101705404292871755 - 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x000098c0 .quad -3795109844276665901 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x000098c8 .quad -4265445736938701790 - 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x000098d0 .quad 9091170749936331336 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x000098d8 .quad -720121152745989333 - 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x000098e0 .quad 3376138709496513133 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x000098e8 .quad -7367604748107325189 - 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x000098f0 .quad -391512631556746488 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x000098f8 .quad -4597819916706768583 - 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009900 .quad 8733981247408842698 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009908 .quad -1135588877456072824 - 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009910 .quad 5458738279630526686 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009918 .quad -7627272076051127371 - 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009920 .quad -7011635205744005354 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009928 .quad -4922404076636521310 - 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009930 .quad 5070514048102157020 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009938 .quad -1541319077368263733 - 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009940 .quad 863228270850154185 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009948 .quad -7880853450996246689 - 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009950 .quad -3532650679864695173 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009958 .quad -5239380795317920458 - 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009960 .quad -9027499368258256870 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009968 .quad -1937539975720012668 - 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009970 .quad -3336344095947716592 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009978 .quad -8128491512466089774 - 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009980 .quad -8782116138362033643 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009988 .quad -5548928372155224313 - 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009990 .quad 7469098900757009562 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009998 .quad -2324474446766642487 - 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x000099a0 .quad -2249342214667950880 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x000099a8 .quad -8370325556870233411 - 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x000099b0 .quad 6411694268519837208 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x000099b8 .quad -5851220927660403859 - 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x000099c0 .quad -5820440219632367202 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x000099c8 .quad -2702340141148116920 - 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x000099d0 .quad 7891439908798240259 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x000099d8 .quad -8606491615858654931 - 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x000099e0 .quad -3970758169284363389 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x000099e8 .quad -6146428501395930760 - 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x000099f0 .quad -351761693178066332 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x000099f8 .quad -3071349608317525546 - 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009a00 .quad 6697677969404790399 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009a08 .quad -8837122532839535322 - 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009a10 .quad -851274575098787810 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009a18 .quad -6434717147622031249 - 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009a20 .quad -1064093218873484762 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009a28 .quad -3431710416100151157 - 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009a30 .quad 8558313775058847832 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009a38 .quad -9062348037703676329 - 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009a40 .quad 6086206200396171886 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009a48 .quad -6716249028702207507 - 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009a50 .quad -6227300304786948855 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009a58 .quad -3783625267450371480 - 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009a60 .quad -3172439362556298164 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009a68 .quad -117845565885576446 - 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009a70 .quad -4288617610811380305 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009a78 .quad -6991182506319567135 - 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009a80 .quad 3862600023340550427 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009a88 .quad -4127292114472071014 - 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009a90 .quad -4395122007679087774 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009a98 .quad -547429124662700864 - 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009aa0 .quad 8782263791269039901 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009aa8 .quad -7259672230555269896 - 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009ab0 .quad -7468914334623251740 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009ab8 .quad -4462904269766699466 - 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009ac0 .quad 4498915137003099037 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009ac8 .quad -966944318780986428 - 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009ad0 .quad -6411550076227838910 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009ad8 .quad -7521869226879198374 - 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009ae0 .quad 5820620459997365075 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009ae8 .quad -4790650515171610063 - 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009af0 .quad -6559282480285457368 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009af8 .quad -1376627125537124675 - 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00009b00 .quad -8711237568605798759 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00009b08 .quad -7777920981101784778 - 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00009b10 .quad 2946011094524915263 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00009b18 .quad -5110715207949843068 - 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00009b20 .quad 3682513868156144079 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00009b28 .quad -1776707991509915931 - 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00009b30 .quad 4607414176811284001 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00009b38 .quad -8027971522334779313 - 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00009b40 .quad 1147581702586717097 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00009b48 .quad -5423278384491086237 - 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00009b50 .quad -3177208890193991532 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00009b58 .quad -2167411962186469893 - 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00009b60 .quad 7237616480483531100 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00009b68 .quad -8272161504007625539 - 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00009b70 .quad -4788037454677749837 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00009b78 .quad -5728515861582144020 - 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00009b80 .quad -1373360799919799392 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00009b88 .quad -2548958808550292121 - 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00009b90 .quad -858350499949874620 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00009b98 .quad -8510628282985014432 - 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00009ba0 .quad 3538747893490044629 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00009ba8 .quad -6026599335303880135 - 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00009bb0 .quad 9035120885289943691 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00009bb8 .quad -2921563150702462265 - 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00009bc0 .quad -5882264492762254953 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00009bc8 .quad -8743505996830120772 - 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00009bd0 .quad -2741144597525430788 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00009bd8 .quad -6317696477610263061 - 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00009be0 .quad -3426430746906788485 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00009be8 .quad -3285434578585440922 - 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00009bf0 .quad 4776009810824339053 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00009bf8 .quad -8970925639256982432 - 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00009c00 .quad 5970012263530423816 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00009c08 .quad -6601971030643840136 - 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00009c10 .quad 7462515329413029771 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00009c18 .quad -3640777769877412266 - 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00009c20 .quad 52386062455755702 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00009c28 .quad -9193015133814464522 - 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00009c30 .quad -9157889458785081180 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00009c38 .quad -6879582898840692749 - 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00009c40 .quad 6999382250228200141 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00009c48 .quad -3987792605123478032 - 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00009c50 .quad 8749227812785250177 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00009c58 .quad -373054737976959636 - 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00009c60 .quad -3755104653863994448 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00009c68 .quad -7150688238876681629 - 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00009c70 .quad -4693880817329993060 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00009c78 .quad -4326674280168464132 - 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00009c80 .quad -1255665003235103420 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00009c88 .quad -796656831783192261 - 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00009c90 .quad 8438581409832836170 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00009c98 .quad -7415439547505577019 - 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00009ca0 .quad -3286831292991118499 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00009ca8 .quad -4657613415954583370 - 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00009cb0 .quad -8720225134666286028 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00009cb8 .quad -1210330751515841308 - 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00009cc0 .quad -3144297699952734816 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00009cc8 .quad -7673985747338482674 - 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00009cd0 .quad -8542058143368306423 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00009cd8 .quad -4980796165745715438 - 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00009ce0 .quad 3157485376071780683 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00009ce8 .quad -1614309188754756393 - 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00009cf0 .quad 8890957387685944783 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00009cf8 .quad -7926472270612804602 - 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00009d00 .quad 1890324697752655170 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00009d08 .quad -5296404319838617848 - 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00009d10 .quad 2362905872190818963 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00009d18 .quad -2008819381370884406 - 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00009d20 .quad 6088502188546649756 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00009d28 .quad -8173041140997884610 - 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00009d30 .quad -1612744301171463613 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00009d38 .quad -5604615407819967859 - 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00009d40 .quad 7207441660390446292 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00009d48 .quad -2394083241347571919 - 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00009d50 .quad -2412877989897052924 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00009d58 .quad -8413831053483314306 - 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00009d60 .quad -7627783505798704059 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00009d68 .quad -5905602798426754978 - 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00009d70 .quad 4300328673033783639 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00009d78 .quad -2770317479606055818 - 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00009d80 .quad -1923980597781273130 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00009d88 .quad -8648977452394866743 - 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00009d90 .quad 6818396289628184396 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00009d98 .quad -6199535797066195524 - 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00009da0 .quad 8522995362035230495 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00009da8 .quad -3137733727905356501 - 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00009db0 .quad 3021029092058325107 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00009db8 .quad -8878612607581929669 - 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00009dc0 .quad -835399653354481520 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00009dc8 .quad -6486579741050024183 - 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00009dd0 .quad 8179122470161673908 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00009dd8 .quad -3496538657885142324 - 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00009de0 .quad -4111420493003729616 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00009de8 .quad -9102865688819295809 - 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00009df0 .quad -5139275616254662020 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00009df8 .quad -6766896092596731857 - 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00009e00 .quad -6424094520318327524 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00009e08 .quad -3846934097318526917 - 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00009e10 .quad -8030118150397909405 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00009e18 .quad -196981603220770742 - 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00009e20 .quad -7324666853212387330 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00009e28 .quad -7040642529654063570 - 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00009e30 .quad 4679224488766679549 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00009e38 .quad -4189117143640191558 - 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00009e40 .quad -3374341425896426372 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00009e48 .quad -624710411122851544 - 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00009e50 .quad -9026492418826348338 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00009e58 .quad -7307973034592864071 - 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00009e60 .quad -2059743486678159615 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00009e68 .quad -4523280274813692185 - 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00009e70 .quad -2574679358347699519 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00009e78 .quad -1042414325089727327 - 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00009e80 .quad 3002511419460075705 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00009e88 .quad -7569037980822161435 - 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00009e90 .quad 8364825292752482535 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00009e98 .quad -4849611457600313890 - 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00009ea0 .quad 1232659579085827361 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00009ea8 .quad -1450328303573004458 - 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00009eb0 .quad -3841273781498745804 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00009eb8 .quad -7823984217374209643 - 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00009ec0 .quad 4421779809981343554 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00009ec8 .quad -5168294253290374149 - 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00009ed0 .quad 915538744049291538 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00009ed8 .quad -1848681798185579782 - 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00009ee0 .quad 5183897733458195115 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00009ee8 .quad -8072955151507069220 - 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00009ef0 .quad 6479872166822743894 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00009ef8 .quad -5479507920956448621 - 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00009f00 .quad 3488154190101041964 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00009f08 .quad -2237698882768172872 - 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00009f10 .quad 2180096368813151227 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00009f18 .quad -8316090829371189901 - 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00009f20 .quad -1886565557410948870 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00009f28 .quad -5783427518286599473 - 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00009f30 .quad -2358206946763686087 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00009f38 .quad -2617598379430861437 - 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00009f40 .quad 7749492695127472003 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00009f48 .quad -8553528014785370254 - 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00009f50 .quad 463493832054564196 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00009f58 .quad -6080224000054324913 - 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00009f60 .quad -4032318728359182659 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00009f68 .quad -2988593981640518238 - 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00009f70 .quad -4826042214438183114 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00009f78 .quad -8785400266166405755 - 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00009f80 .quad 3190819268807046916 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00009f88 .quad -6370064314280619289 - 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00009f90 .quad -623161932418579259 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00009f98 .quad -3350894374423386208 - 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00009fa0 .quad -7307005235402693893 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00009fa8 .quad -9011838011655698236 - 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00009fb0 .quad -4522070525825979462 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00009fb8 .quad -6653111496142234891 - 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00009fc0 .quad 3570783879572301480 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00009fc8 .quad -3704703351750405709 - 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00009fd0 .quad -148206168962011054 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00009fd8 .quad -19193171260619233 - 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00009fe0 .quad -92628855601256909 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00009fe8 .quad -6929524759678968877 - 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00009ff0 .quad -115786069501571136 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00009ff8 .quad -4050219931171323192 - 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a000 .quad 4466953431550423984 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a008 .quad -451088895536766085 - 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a010 .quad 486002885505321038 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a018 .quad -7199459587351560659 - 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a020 .quad 5219189625309039202 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a028 .quad -4387638465762062920 - 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a030 .quad 6523987031636299002 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a038 .quad -872862063775190746 - 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a040 .quad -534194123654701028 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a048 .quad -7463067817500576073 - 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a050 .quad -667742654568376285 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a058 .quad -4717148753448332187 - 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a060 .quad 8388693718644305452 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a068 .quad -1284749923383027329 - 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a070 .quad -6286281471915778852 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a078 .quad -7720497729755473937 - 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a080 .quad -7857851839894723565 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a088 .quad -5038936143766954517 - 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a090 .quad 8624429273841147159 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a098 .quad -1686984161281305242 - 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a0a0 .quad 778582277723329070 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a0a8 .quad -7971894128441897632 - 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a0b0 .quad 973227847154161338 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a0b8 .quad -5353181642124984136 - 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a0c0 .quad 1216534808942701673 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a0c8 .quad -2079791034228842266 - 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a0d0 .quad -3851351762838199359 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a0d8 .quad -8217398424034108273 - 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a0e0 .quad -4814189703547749198 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a0e8 .quad -5660062011615247437 - 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a0f0 .quad -6017737129434686498 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a0f8 .quad -2463391496091671392 - 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a100 .quad 7768129340171790699 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a108 .quad -8457148712698376476 - 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a110 .quad -8736582398494813242 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a118 .quad -5959749872445582691 - 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a120 .quad -1697355961263740745 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a128 .quad -2838001322129590460 - 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a130 .quad 1244995533423855986 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a138 .quad -8691279853972075893 - 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a140 .quad -3055441601647567921 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a148 .quad -6252413799037706963 - 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a150 .quad 5404070034795315907 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a158 .quad -3203831230369745799 - 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a160 .quad -3539985255894009414 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a168 .quad -8919923546622172981 - 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a170 .quad -4424981569867511768 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a178 .quad -6538218414850328322 - 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a180 .quad 8303831092947774002 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a188 .quad -3561087000135522498 - 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a190 .quad 578208414664970847 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a198 .quad -9143208402725783417 - 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a1a0 .quad -3888925500096174345 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a1a8 .quad -6817324484979841368 - 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a1b0 .quad -249470856692830027 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a1b8 .quad -3909969587797413806 - 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a1c0 .quad -4923524589293425438 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a1c8 .quad -275775966319379353 - 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a1d0 .quad -3077202868308390899 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a1d8 .quad -7089889006590693952 - 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a1e0 .quad 765182433041899281 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a1e8 .quad -4250675239810979535 - 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a1f0 .quad 5568164059729762005 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a1f8 .quad -701658031336336515 - 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a200 .quad 5785945546544795205 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a208 .quad -7356065297226292178 - 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a210 .quad -1990940103673781802 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a218 .quad -4583395603105477319 - 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a220 .quad 6734696907262548556 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a228 .quad -1117558485454458744 - 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a230 .quad 4209185567039092847 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a238 .quad -7616003081050118571 - 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a240 .quad -8573576096483297653 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a248 .quad -4908317832885260310 - 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a250 .quad 3118087934678041646 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a258 .quad -1523711272679187483 - 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a260 .quad 4254647968387469981 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a268 .quad -7869848573065574033 - 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a270 .quad 706623942056949572 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a278 .quad -5225624697904579637 - 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a280 .quad -3728406090856200939 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a288 .quad -1920344853953336643 - 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a290 .quad -6941939825212513491 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a298 .quad -8117744561361917258 - 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a2a0 .quad 5157633273766521849 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a2a8 .quad -5535494683275008668 - 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a2b0 .quad 6447041592208152311 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a2b8 .quad -2307682335666372931 - 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a2c0 .quad 6335244004343789146 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a2c8 .quad -8359830487432564938 - 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a2d0 .quad -1304317031425039375 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a2d8 .quad -5838102090863318269 - 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a2e0 .quad -1630396289281299219 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a2e8 .quad -2685941595151759932 - 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a2f0 .quad 1286845328412881940 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a2f8 .quad -8596242524610931813 - 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a300 .quad -3003129357911285479 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a308 .quad -6133617137336276863 - 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a310 .quad 5469460339465668959 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a318 .quad -3055335403242958174 - 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a320 .quad 8030098730593431003 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a328 .quad -8827113654667930715 - 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a330 .quad -3797434642040374958 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a338 .quad -6422206049907525490 - 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a340 .quad 9088264752731695015 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a348 .quad -3416071543957018958 - 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a350 .quad -8154892584824854328 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a358 .quad -9052573742614218705 - 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a360 .quad 8253128342678483706 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a368 .quad -6704031159840385477 - 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a370 .quad 5704724409920716729 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a378 .quad -3768352931373093942 - 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a380 .quad -2092466524453879896 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a388 .quad -98755145788979524 - 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a390 .quad 998051431430019017 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a398 .quad -6979250993759194058 - 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a3a0 .quad -7975807747567252037 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a3a8 .quad -4112377723771604669 - 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a3b0 .quad 8476984389250486570 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a3b8 .quad -528786136287117932 - 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a3c0 .quad -3925256793573221702 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a3c8 .quad -7248020362820530564 - 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a3d0 .quad -294884973539139224 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a3d8 .quad -4448339435098275301 - 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a3e0 .quad -368606216923924029 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a3e8 .quad -948738275445456222 - 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a3f0 .quad -2536221894791146470 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a3f8 .quad -7510490449794491995 - 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a400 .quad 6053094668365842720 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a408 .quad -4776427043815727089 - 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a410 .quad 2954682317029915496 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a418 .quad -1358847786342270957 - 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a420 .quad -459166561069996767 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a428 .quad -7766808894105001205 - 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a430 .quad -573958201337495959 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a438 .quad -5096825099203863602 - 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a440 .quad -5329133770099257852 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a448 .quad -1759345355577441598 - 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a450 .quad -5636551615525730110 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a458 .quad -8017119874876982855 - 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a460 .quad 2177682517447613171 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a468 .quad -5409713825168840664 - 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a470 .quad 2722103146809516464 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a478 .quad -2150456263033662926 - 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a480 .quad 6313000485183335694 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a488 .quad -8261564192037121185 - 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a490 .quad 3279564588051781713 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a498 .quad -5715269221619013577 - 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a4a0 .quad -512230283362660763 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a4a8 .quad -2532400508596379068 - 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a4b0 .quad 1985699082112030975 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a4b8 .quad -8500279345513818773 - 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a4c0 .quad -2129562165787349185 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a4c8 .quad -6013663163464885563 - 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a4d0 .quad 6561419329620589327 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a4d8 .quad -2905392935903719049 - 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a4e0 .quad -7428327965055601431 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a4e8 .quad -8733399612580906262 - 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a4f0 .quad 4549648098962661924 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a4f8 .quad -6305063497298744923 - 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000a500 .quad -8147997931578836307 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000a508 .quad -3269643353196043250 - 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000a510 .quad 1825030320404309164 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000a518 .quad -8961056123388608887 - 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000a520 .quad 6892973918932774359 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000a528 .quad -6589634135808373205 - 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000a530 .quad 4004531380238580045 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000a538 .quad -3625356651333078602 - 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000a540 .quad -2108853905778275376 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000a548 .quad -9183376934724255983 - 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000a550 .quad 6587304654631931588 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000a558 .quad -6867535149977932074 - 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000a560 .quad -989241218564861323 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000a568 .quad -3972732919045027189 - 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000a570 .quad -1236551523206076654 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000a578 .quad -354230130378896082 - 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000a580 .quad 6144684325637283947 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000a588 .quad -7138922859127891907 - 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000a590 .quad -6154202648235558778 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000a598 .quad -4311967555482476980 - 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000a5a0 .quad -3081067291867060568 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000a5a8 .quad -778273425925708321 - 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000a5b0 .quad -1925667057416912855 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000a5b8 .quad -7403949918844649557 - 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000a5c0 .quad -2407083821771141069 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000a5c8 .quad -4643251380128424042 - 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000a5d0 .quad -7620540795641314240 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000a5d8 .quad -1192378206733142148 - 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000a5e0 .quad -2456994988062127448 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000a5e8 .quad -7662765406849295699 - 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000a5f0 .quad 6152128301777116498 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000a5f8 .quad -4966770740134231719 - 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000a600 .quad -6144897678060768090 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000a608 .quad -1596777406740401745 - 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000a610 .quad -3840561048787980056 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000a618 .quad -7915514906853832947 - 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000a620 .quad 4422670725869800738 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000a628 .quad -5282707615139903279 - 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000a630 .quad -8306719647944912790 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000a638 .quad -1991698500497491195 - 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000a640 .quad 8643358275316593218 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000a648 .quad -8162340590452013853 - 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000a650 .quad 6192511825718353619 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000a658 .quad -5591239719637629412 - 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000a660 .quad 7740639782147942024 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000a668 .quad -2377363631119648861 - 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000a670 .quad 2532056854628769813 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000a678 .quad -8403381297090862394 - 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000a680 .quad -6058300968568813542 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000a688 .quad -5892540602936190089 - 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000a690 .quad -7572876210711016927 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000a698 .quad -2753989735242849707 - 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000a6a0 .quad 9102010423587778132 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000a6a8 .quad -8638772612167862923 - 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000a6b0 .quad -2457545025797441047 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000a6b8 .quad -6186779746782440750 - 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000a6c0 .quad -7683617300674189212 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000a6c8 .quad -3121788665050663033 - 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000a6d0 .quad -4802260812921368258 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000a6d8 .quad -8868646943297746252 - 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000a6e0 .quad -1391139997724322418 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000a6e8 .quad -6474122660694794911 - 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000a6f0 .quad 7484447039699372786 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000a6f8 .quad -3480967307441105734 - 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000a700 .quad -9157278655470055721 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000a708 .quad -9093133594791772940 - 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000a710 .quad -6834912300910181747 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000a718 .quad -6754730975062328271 - 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000a720 .quad 679731660717048624 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000a728 .quad -3831727700400522434 - 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000a730 .quad -8373707460958465028 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000a738 .quad -177973607073265139 - 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000a740 .quad 8601490892183123069 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000a748 .quad -7028762532061872568 - 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000a750 .quad -7694880458480647779 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000a758 .quad -4174267146649952806 - 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000a760 .quad 4216457482181353988 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000a768 .quad -606147914885053103 - 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000a770 .quad -4282243101277735614 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000a778 .quad -7296371474444240046 - 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000a780 .quad 8482254178684994195 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000a788 .quad -4508778324627912153 - 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000a790 .quad 5991131704928854840 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000a798 .quad -1024286887357502287 - 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000a7a0 .quad -3173071712060547581 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000a7a8 .quad -7557708332239520786 - 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000a7b0 .quad -8578025658503072380 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000a7b8 .quad -4835449396872013078 - 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000a7c0 .quad 3112525982153323237 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000a7c8 .quad -1432625727662628443 - 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000a7d0 .quad 4251171748059520975 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000a7d8 .quad -7812920107430224633 - 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000a7e0 .quad 702278666647013314 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000a7e8 .quad -5154464115860392887 - 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000a7f0 .quad 5489534351736154547 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000a7f8 .quad -1831394126398103205 - 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000a800 .quad 1125115960621402640 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000a808 .quad -8062150356639896359 - 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000a810 .quad 6018080969204141204 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000a818 .quad -5466001927372482545 - 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000a820 .quad 2910915193077788601 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000a828 .quad -2220816390788215277 - 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000a830 .quad -486521013540076077 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000a838 .quad -8305539271883716405 - 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000a840 .quad -608151266925095096 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000a848 .quad -5770238071427257602 - 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000a850 .quad -5371875102083756773 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000a858 .quad -2601111570856684098 - 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000a860 .quad 3560107088838733872 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000a868 .quad -8543223759426509417 - 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000a870 .quad -161552157378970563 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000a878 .quad -6067343680855748868 - 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000a880 .quad 4409745821703674700 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000a888 .quad -2972493582642298180 - 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000a890 .quad -6467280898289979121 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000a898 .quad -8775337516792518219 - 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000a8a0 .quad 1139270913992301907 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000a8a8 .quad -6357485877563259869 - 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000a8b0 .quad -3187597375937010520 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000a8b8 .quad -3335171328526686933 - 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000a8c0 .quad 7231123676894144233 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000a8c8 .quad -9002011107970261189 - 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000a8d0 .quad 4427218577690292387 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000a8d8 .quad -6640827866535438582 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000a8e0 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a8f0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000a8f8 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a900 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000a908 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a910 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000a918 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a920 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000a928 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a930 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000a938 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a940 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000a948 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a950 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000a958 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a960 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000a968 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a970 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000a978 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a980 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000a988 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a990 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000a998 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9a0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000a9a8 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9b0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000a9b8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9c0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000a9c8 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9d0 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000a9d8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9e0 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000a9e8 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a9f0 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000a9f8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa00 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000aa08 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa10 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000aa18 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa20 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000aa28 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa30 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000aa38 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa40 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000aa48 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa50 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000aa58 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa60 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000aa68 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa70 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000aa78 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa80 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000aa88 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aa90 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000aa98 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aaa0 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000aaa8 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000aab0 .quad 4611686018427387904 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000aab8 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000aac0 .quad 5764607523034234880 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000aac8 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000aad0 .quad -6629298651489370112 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000aad8 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000aae0 .quad 5548434740920451072 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000aae8 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000aaf0 .quad -1143914305352105984 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000aaf8 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000ab00 .quad 7793479155164643328 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000ab08 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000ab10 .quad -4093209111326359552 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000ab18 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000ab20 .quad 4359273333062107136 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000ab28 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000ab30 .quad 5449091666327633920 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000ab38 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000ab40 .quad 2199678564482154496 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000ab48 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000ab50 .quad 1374799102801346560 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000ab58 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000ab60 .quad 1718498878501683200 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000ab68 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000ab70 .quad 6759809616554491904 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000ab78 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000ab80 .quad 6530724019560251392 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000ab88 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000ab90 .quad -1059967012404461568 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000ab98 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000aba0 .quad 7898413271349198848 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000aba8 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000abb0 .quad -1981020733047832576 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000abb8 .quad -8106986416796705681 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000abc0 .quad -2476275916309790720 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000abc8 .quad -5522047002568494197 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000abd0 .quad -3095344895387238400 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000abd8 .quad -2290872734783229842 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000abe0 .quad 4982938468024057856 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000abe8 .quad -8349324486880600507 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000abf0 .quad -7606384970252091392 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000abf8 .quad -5824969590173362730 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000ac00 .quad 4327076842467049472 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000ac08 .quad -2669525969289315508 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000ac10 .quad -6518949010312869888 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000ac18 .quad -8585982758446904049 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000ac20 .quad -8148686262891087360 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000ac28 .quad -6120792429631242157 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000ac30 .quad 8260886245095692416 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000ac38 .quad -3039304518611664792 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000ac40 .quad 5163053903184807760 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000ac48 .quad -8817094351773372351 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000ac50 .quad -7381240676301154012 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000ac58 .quad -6409681921289327535 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000ac60 .quad -3178808521666707 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000ac68 .quad -3400416383184271515 - 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000ac70 .quad -4613672773753429596 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000ac78 .quad -9042789267131251553 - 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000ac80 .quad -5767090967191786995 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000ac88 .quad -6691800565486676537 - 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000ac90 .quad -7208863708989733744 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000ac98 .quad -3753064688430957767 - 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000aca0 .quad 212292400617608628 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000aca8 .quad -79644842111309304 - 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000acb0 .quad 132682750386005392 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000acb8 .quad -6967307053960650171 - 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000acc0 .quad 4777539456409894645 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000acc8 .quad -4097447799023424810 - 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000acd0 .quad -3251447716342407502 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000acd8 .quad -510123730351893109 - 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000ace0 .quad 7191217214140771119 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000ace8 .quad -7236356359111015049 - 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000acf0 .quad 4377335499248575995 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000acf8 .quad -4433759430461380907 - 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000ad00 .quad -8363388681221443718 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000ad08 .quad -930513269649338230 - 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000ad10 .quad -7532960934977096276 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000ad18 .quad -7499099821171918250 - 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000ad20 .quad 4418856886560793367 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000ad28 .quad -4762188758037509908 - 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000ad30 .quad 5523571108200991709 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000ad38 .quad -1341049929119499481 - 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000ad40 .quad -8076983103442849942 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000ad48 .quad -7755685233340769032 - 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000ad50 .quad -5484542860876174524 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000ad58 .quad -5082920523248573386 - 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000ad60 .quad 6979379479186945558 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000ad68 .quad -1741964635633328828 - 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000ad70 .quad -4861259862362934835 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000ad78 .quad -8006256924911912374 - 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000ad80 .quad 7758483227328495169 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000ad88 .quad -5396135137712502563 - 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000ad90 .quad -4136954021121544751 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000ad98 .quad -2133482903713240300 - 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000ada0 .quad -279753253987271518 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000ada8 .quad -8250955842461857044 - 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000adb0 .quad 4261994450943298507 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000adb8 .quad -5702008784649933400 - 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000adc0 .quad 5327493063679123134 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000adc8 .quad -2515824962385028846 - 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000add0 .quad 7941369183226839863 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000add8 .quad -8489919629131724885 - 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000ade0 .quad 5315025460606161924 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000ade8 .quad -6000713517987268202 - 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000adf0 .quad -2579590211097073402 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000adf8 .quad -2889205879056697349 - 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000ae00 .quad 7611128154919104931 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000ae08 .quad -8723282702051517699 - 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000ae10 .quad -4321147861633282548 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000ae18 .quad -6292417359137009220 - 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000ae20 .quad -789748808614215280 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000ae28 .quad -3253835680493873621 - 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000ae30 .quad 8729779031470891258 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000ae38 .quad -8951176327949752869 - 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000ae40 .quad 6300537770911226168 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000ae48 .quad -6577284391509803182 - 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000ae50 .quad -1347699823215743098 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000ae58 .quad -3609919470959866074 - 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000ae60 .quad 6075216638131242420 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000ae68 .quad -9173728696990998152 - 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000ae70 .quad 7594020797664053025 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000ae78 .quad -6855474852811359786 - 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000ae80 .quad 269153960225290473 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000ae88 .quad -3957657547586811828 - 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000ae90 .quad 336442450281613091 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000ae98 .quad -335385916056126881 - 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000aea0 .quad 7127805559067090038 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000aea8 .quad -7127145225176161157 - 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000aeb0 .quad 4298070930406474644 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000aeb8 .quad -4297245513042813542 - 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000aec0 .quad -3850783373846682503 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000aec8 .quad -759870872876129024 - 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000aed0 .quad 9122475437414293195 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000aed8 .quad -7392448323188662496 - 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000aee0 .quad -7043649776941685122 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000aee8 .quad -4628874385558440216 - 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000aef0 .quad -4192876202749718498 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000aef8 .quad -1174406963520662366 - 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000af00 .quad -4926390635932268014 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000af08 .quad -7651533379841495835 - 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000af10 .quad 3065383741939440791 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000af18 .quad -4952730706374481889 - 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000af20 .quad -779956341003086915 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000af28 .quad -1579227364540714458 - 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000af30 .quad 6430056314514152534 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000af38 .quad -7904546130479028392 - 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000af40 .quad 8037570393142690668 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000af48 .quad -5268996644671397586 - 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000af50 .quad 823590954573587527 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000af58 .quad -1974559787411859078 - 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000af60 .quad 5126430365035880108 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000af68 .quad -8151628894773493780 - 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000af70 .quad 6408037956294850135 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000af78 .quad -5577850100039479321 - 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000af80 .quad 3398361426941174765 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000af88 .quad -2360626606621961247 - 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000af90 .quad -4793553135802847628 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000af98 .quad -8392920656779807636 - 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000afa0 .quad -1380255401326171631 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000afa8 .quad -5879464802547371641 - 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000afb0 .quad -1725319251657714539 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000afb8 .quad -2737644984756826647 - 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000afc0 .quad 3533361486141316317 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000afc8 .quad -8628557143114098510 - 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000afd0 .quad -4806670179178130411 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000afd8 .quad -6174010410465235234 - 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000afe0 .quad 7826720331309500698 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000afe8 .quad -3105826994654156138 - 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000aff0 .quad 280014188641050032 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000aff8 .quad -8858670899299929442 - 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b000 .quad -8873354301053463268 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b008 .quad -6461652605697523899 - 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b010 .quad -1868320839462053277 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b018 .quad -3465379738694516970 - 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b020 .quad 5749828502977298558 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b028 .quad -9083391364325154962 - 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b030 .quad -2036086408133152611 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b038 .quad -6742553186979055799 - 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b040 .quad 6678264026688335045 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b048 .quad -3816505465296431844 - 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b050 .quad 8347830033360418806 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b058 .quad -158945813193151901 - 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b060 .quad 2911550761636567802 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b068 .quad -7016870160886801794 - 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b070 .quad -5583933584809066056 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b078 .quad -4159401682681114339 - 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b080 .quad 2243455055843443238 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b088 .quad -587566084924005019 - 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b090 .quad 3708002419115845976 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b098 .quad -7284757830718584993 - 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b0a0 .quad 23317005467419566 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b0a8 .quad -4494261269970843337 - 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b0b0 .quad -4582539761593113446 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b0b8 .quad -1006140569036166268 - 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b0c0 .quad -558244341782001952 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b0c8 .quad -7546366883288685774 - 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b0d0 .quad -5309491445654890344 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b0d8 .quad -4821272585683469313 - 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b0e0 .quad -6636864307068612930 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b0e8 .quad -1414904713676948737 - 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b0f0 .quad -4148040191917883081 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b0f8 .quad -7801844473689174817 - 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b100 .quad -5185050239897353852 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b108 .quad -5140619573684080617 - 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b110 .quad -6481312799871692315 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b118 .quad -1814088448677712867 - 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b120 .quad -8662506518347195601 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b128 .quad -8051334308064652398 - 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b130 .quad 3006924907348169211 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b138 .quad -5452481866653427593 - 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b140 .quad -853029884242176390 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b148 .quad -2203916314889396588 - 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b150 .quad 1772699331562333708 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b158 .quad -8294976724446954723 - 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b160 .quad 6827560182880305039 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b168 .quad -5757034887131305500 - 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b170 .quad 8534450228600381299 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b178 .quad -2584607590486743971 - 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b180 .quad 7639874402088932264 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b188 .quad -8532908771695296838 - 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b190 .quad 326470965756389522 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b198 .quad -6054449946191733143 - 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b1a0 .quad 5019774725622874806 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b1a8 .quad -2956376414312278525 - 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b1b0 .quad 831516194300602802 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b1b8 .quad -8765264286586255934 - 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b1c0 .quad -8183976793979022306 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b1c8 .quad -6344894339805432014 - 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b1d0 .quad 3605087062808385830 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b1d8 .quad -3319431906329402113 - 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b1e0 .quad 9170708441896323000 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b1e8 .quad -8992173969096958177 - 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b1f0 .quad 6851699533943015846 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b1f8 .quad -6628531442943809817 - 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b200 .quad 3952938399001381903 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b208 .quad -3673978285252374367 - 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b210 .quad -4446942528265218167 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b218 .quad -9213765455923815836 - 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b220 .quad -946992141904134804 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b228 .quad -6905520801477381891 - 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b230 .quad 8039631859474607303 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b238 .quad -4020214983419339459 - 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b240 .quad -3785518230938904583 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b248 .quad -413582710846786420 - 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b250 .quad -60105885123121413 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b258 .quad -7176018221920323369 - 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b260 .quad -75132356403901766 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b268 .quad -4358336758973016307 - 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b270 .quad 9129456591349898601 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b278 .quad -836234930288882479 - 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b280 .quad -1211618658047395231 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b288 .quad -7440175859071633406 - 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b290 .quad -6126209340986631942 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b298 .quad -4688533805412153853 - 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b2a0 .quad -7657761676233289928 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b2a8 .quad -1248981238337804412 - 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b2b0 .quad -2480258038432112253 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b2b8 .quad -7698142301602209614 - 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b2c0 .quad -7712008566467528220 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b2c8 .quad -5010991858575374113 - 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b2d0 .quad 8806733365625141341 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b2d8 .quad -1652053804791829737 - 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b2e0 .quad -6025006692552756422 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b2e8 .quad -7950062655635975442 - 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b2f0 .quad 6303799689591218185 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b2f8 .quad -5325892301117581398 - 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b300 .quad -1343622424865753077 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b308 .quad -2045679357969588844 - 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b310 .quad 1466078993672598279 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b318 .quad -8196078626372074883 - 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b320 .quad 6444284760518135752 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b328 .quad -5633412264537705700 - 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b330 .quad 8055355950647669691 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b338 .quad -2430079312244744221 - 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b340 .quad 2728754459941099604 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b348 .quad -8436328597794046994 - 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b350 .quad -5812428961928401302 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b358 .quad -5933724728815170839 - 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b360 .quad 1957835834444274180 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b368 .quad -2805469892591575644 - 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b370 .quad -7999724640327104446 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b378 .quad -8670947710510816634 - 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b380 .quad 3835402254873283155 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b388 .quad -6226998619711132888 - 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b390 .quad 4794252818591603944 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b398 .quad -3172062256211528206 - 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b3a0 .quad 7608094030047140369 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b3a8 .quad -8900067937773286985 - 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b3b0 .quad 4898431519131537557 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b3b8 .quad -6513398903789220827 - 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b3c0 .quad -7712018656367741765 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b3c8 .quad -3530062611309138130 - 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b3d0 .quad 2097517367411243253 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b3d8 .quad -9123818159709293187 - 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b3e0 .quad 7233582727691441970 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b3e8 .quad -6793086681209228580 - 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b3f0 .quad 9041978409614302462 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b3f8 .quad -3879672333084147821 - 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b400 .quad 6690786993590490174 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b408 .quad -237904397927796872 - 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b410 .quad 4181741870994056359 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b418 .quad -7066219276345954901 - 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b420 .quad 615491320315182544 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b428 .quad -4221088077005055722 - 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b430 .quad -8454007886460797627 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b438 .quad -664674077828931749 - 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b440 .quad 3939617107816777291 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b448 .quad -7332950326284164199 - 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b450 .quad -8910536670511192099 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b458 .quad -4554501889427817345 - 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b460 .quad 7308573235570561493 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b468 .quad -1081441343357383777 - 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b470 .quad -6961356773836868827 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b478 .quad -7593429867239446717 - 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b480 .quad -8701695967296086034 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b488 .quad -4880101315621920492 - 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b490 .quad -6265433940692719638 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b498 .quad -1488440626100012711 - 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b4a0 .quad 695789805494438130 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b4a8 .quad -7847804418953589800 - 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b4b0 .quad 869737256868047663 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b4b8 .quad -5198069505264599346 - 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b4c0 .quad -8136200465769716230 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b4c8 .quad -1885900863153361279 - 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b4d0 .quad -473439272678684740 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b4d8 .quad -8096217067111932656 - 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b4e0 .quad 4019886927579031980 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b4e8 .quad -5508585315462527915 - 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b4f0 .quad -8810199395808373737 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b4f8 .quad -2274045625900771990 - 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000b500 .quad -7812217631593927538 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000b508 .quad -8338807543829064350 - 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000b510 .quad 4069786015789754290 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000b518 .quad -5811823411358942533 - 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000b520 .quad 475546501309804958 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000b528 .quad -2653093245771290262 - 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000b530 .quad 4908902581746016003 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000b538 .quad -8575712306248138270 - 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000b540 .quad -3087243809672255805 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000b548 .quad -6107954364382784934 - 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000b550 .quad -8470740780517707660 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000b558 .quad -3023256937051093263 - 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000b560 .quad -682526969396179383 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000b568 .quad -8807064613298015146 - 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000b570 .quad -5464844730172612133 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000b578 .quad -6397144748195131028 - 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000b580 .quad -2219369894288377262 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000b588 .quad -3384744916816525881 - 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000b590 .quad -1387106183930235789 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000b598 .quad -9032994600651410532 - 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000b5a0 .quad 2877803288514593168 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000b5a8 .quad -6679557232386875260 - 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000b5b0 .quad 3597254110643241460 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000b5b8 .quad -3737760522056206171 - 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000b5c0 .quad 9108253656731439729 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000b5c8 .quad -60514634142869810 - 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000b5d0 .quad 1080972517029761926 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000b5d8 .quad -6955350673980375487 - 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000b5e0 .quad 5962901664714590312 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000b5e8 .quad -4082502324048081455 - 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000b5f0 .quad -6381430974388925822 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000b5f8 .quad -491441886632713915 - 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000b600 .quad -8600080377420466543 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000b608 .quad -7224680206786528053 - 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000b610 .quad 7696643601933968437 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000b618 .quad -4419164240055772162 - 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000b620 .quad 397432465562684739 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000b628 .quad -912269281642327298 - 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000b630 .quad -4363290727450709942 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000b638 .quad -7487697328667536418 - 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000b640 .quad 8380944645968776284 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000b648 .quad -4747935642407032618 - 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000b650 .quad 1252808770606194547 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000b658 .quad -1323233534581402868 - 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000b660 .quad -8440366555225904216 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000b668 .quad -7744549986754458649 - 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000b670 .quad 7896285879677171346 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000b678 .quad -5069001465015685407 - 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000b680 .quad -3964700705685699529 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000b688 .quad -1724565812842218855 - 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000b690 .quad 2133748077373825698 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000b698 .quad -7995382660667468640 - 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000b6a0 .quad 2667185096717282123 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000b6a8 .quad -5382542307406947896 - 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000b6b0 .quad 3333981370896602653 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000b6b8 .quad -2116491865831296966 - 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000b6c0 .quad 6695424375237764562 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000b6c8 .quad -8240336443785642460 - 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000b6d0 .quad 8369280469047205703 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000b6d8 .quad -5688734536304665171 - 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000b6e0 .quad -3373457468973156583 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000b6e8 .quad -2499232151953443560 - 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000b6f0 .quad -9025939945749304721 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000b6f8 .quad -8479549122611984081 - 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000b700 .quad 7164319141522920715 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000b708 .quad -5987750384837592197 - 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000b710 .quad 4343712908476262990 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000b718 .quad -2873001962619602342 - 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000b720 .quad 7326506586225052273 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000b728 .quad -8713155254278333320 - 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000b730 .quad 9158133232781315341 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000b738 .quad -6279758049420528746 - 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000b740 .quad 2224294504121868368 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000b748 .quad -3238011543348273028 - 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000b750 .quad -7833187971778608078 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000b758 .quad -8941286242233752499 - 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000b760 .quad -568112927868484289 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000b768 .quad -6564921784364802720 - 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000b770 .quad 3901544858591782542 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000b778 .quad -3594466212028615495 - 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000b780 .quad -4479063491021217767 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000b788 .quad -9164070410158966541 - 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000b790 .quad -5598829363776522209 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000b798 .quad -6843401994271320272 - 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000b7a0 .quad -2386850686293264857 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000b7a8 .quad -3942566474411762436 - 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000b7b0 .quad 1628122660560806833 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000b7b8 .quad -316522074587315140 - 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000b7c0 .quad -8205795374004271538 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000b7c8 .quad -7115355324258153819 - 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000b7d0 .quad -1033872180650563614 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000b7d8 .quad -4282508136895304370 - 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000b7e0 .quad -5904026244240592421 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000b7e8 .quad -741449152691742558 - 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000b7f0 .quad -5995859411864064215 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000b7f8 .quad -7380934748073420955 - 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000b800 .quad 1728547772024695539 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000b808 .quad -4614482416664388289 - 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000b810 .quad -2451001303396518480 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000b818 .quad -1156417002403097458 - 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000b820 .quad 5385653213018257806 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000b828 .quad -7640289654143017767 - 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000b830 .quad -7102991539009341455 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000b838 .quad -4938676049251384305 - 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000b840 .quad -8878739423761676819 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000b848 .quad -1561659043136842477 - 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000b850 .quad 3674159897003727796 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000b858 .quad -7893565929601608404 - 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000b860 .quad 4592699871254659745 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000b868 .quad -5255271393574622601 - 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000b870 .quad 1129188820640936778 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000b878 .quad -1957403223540890347 - 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000b880 .quad 3011586022114279438 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000b888 .quad -8140906042354138323 - 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000b890 .quad 8376168546070237202 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000b898 .quad -5564446534515285000 - 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000b8a0 .quad -7976533391121755114 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000b8a8 .quad -2343872149716718346 - 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000b8b0 .quad 1932195658189984910 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000b8b8 .quad -8382449121214030822 - 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000b8c0 .quad -6808127464117294671 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000b8c8 .quad -5866375383090150624 - 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000b8d0 .quad -3898473311719230434 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000b8d8 .quad -2721283210435300376 - 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000b8e0 .quad 9092669226243950738 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000b8e8 .quad -8618331034163144591 - 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000b8f0 .quad -2469221522477225289 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000b8f8 .quad -6161227774276542835 - 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000b900 .quad 6136845133758244197 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000b908 .quad -3089848699418290639 - 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000b910 .quad -3082000819042179233 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000b918 .quad -8848684464777513506 - 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000b920 .quad -8464187042230111945 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000b928 .quad -6449169562544503978 - 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000b930 .quad 3254824252494523781 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000b938 .quad -3449775934753242068 - 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000b940 .quad -7189106879045698445 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000b948 .quad -9073638986861858149 - 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000b950 .quad -8986383598807123057 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000b958 .quad -6730362715149934782 - 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000b960 .quad 2602078556773259891 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000b968 .quad -3801267375510030573 - 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000b970 .quad -1359087822460813040 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000b978 .quad -139898200960150313 - 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000b980 .quad -849429889038008150 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000b988 .quad -7004965403241175802 - 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000b990 .quad -5673473379724898091 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000b998 .quad -4144520735624081848 - 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000b9a0 .quad -2480155706228734710 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000b9a8 .quad -568964901102714406 - 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000b9b0 .quad -3855940325606653146 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000b9b8 .quad -7273132090830278360 - 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000b9c0 .quad -208239388580928528 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000b9c8 .quad -4479729095110460046 - 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000b9d0 .quad -4871985254153548564 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000b9d8 .quad -987975350460687153 - 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000b9e0 .quad -3044990783845967853 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000b9e8 .quad -7535013621679011327 - 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000b9f0 .quad 5417133557047315992 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000b9f8 .quad -4807081008671376254 - 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000ba00 .quad -2451955090545630818 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000ba08 .quad -1397165242411832414 - 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000ba10 .quad -3838314940804713213 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000ba18 .quad -7790757304148477115 - 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000ba20 .quad 4425478360848884291 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000ba28 .quad -5126760611758208489 - 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000ba30 .quad 920161932633717460 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000ba38 .quad -1796764746270372707 - 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000ba40 .quad 2880944217109767365 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000ba48 .quad -8040506994060064798 - 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000ba50 .quad -5622191765467566602 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000ba58 .quad -5438947724147693094 - 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000ba60 .quad 6807318348447705459 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000ba68 .quad -2186998636757228463 - 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000ba70 .quad -2662955059861265944 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000ba78 .quad -8284403175614349646 - 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000ba80 .quad -7940379843253970334 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000ba88 .quad -5743817951090549153 - 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000ba90 .quad 8521269269642088699 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000ba98 .quad -2568086420435798537 - 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000baa0 .quad -6203421752542164323 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000baa8 .quad -8522583040413455942 - 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bab0 .quad 6080780864604458308 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bab8 .quad -6041542782089432023 - 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bac0 .quad -6234081974526590827 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bac8 .quad -2940242459184402125 - 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bad0 .quad 5327070802775656541 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bad8 .quad -8755180564631333184 - 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bae0 .quad 6658838503469570676 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bae8 .quad -6332289687361778576 - 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000baf0 .quad 8323548129336963345 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000baf8 .quad -3303676090774835316 - 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000bb00 .quad -4021154456019173717 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000bb08 .quad -8982326584375353929 - 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000bb10 .quad -5026443070023967147 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000bb18 .quad -6616222212041804507 - 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000bb20 .quad 2940318199324816875 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000bb28 .quad -3658591746624867729 - 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000bb30 .quad 8755227902219092403 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000bb38 .quad -9204148869281624187 - 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000bb40 .quad -2891023177508298209 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000bb48 .quad -6893500068174642330 - 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000bb50 .quad -8225464990312760665 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000bb58 .quad -4005189066790915008 - 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000bb60 .quad -5670145219463562927 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000bb68 .quad -394800315061255856 - 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000bb70 .quad 7985374283903742931 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000bb78 .quad -7164279224554366766 - 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000bb80 .quad 758345818024902856 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000bb88 .quad -4343663012265570553 - 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000bb90 .quad -3663753745896259334 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000bb98 .quad -817892746904575288 - 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000bba0 .quad -9207375118826243940 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000bba8 .quad -7428711994456441411 - 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000bbb0 .quad -2285846861678029117 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000bbb8 .quad -4674203974643163860 - 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000bbc0 .quad 1754377441329851508 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000bbc8 .quad -1231068949876566920 - 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000bbd0 .quad 1096485900831157192 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000bbd8 .quad -7686947121313936181 - 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000bbe0 .quad -3241078642388441414 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000bbe8 .quad -4996997883215032323 - 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000bbf0 .quad 5172023733869224041 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000bbf8 .quad -1634561335591402499 - 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000bc00 .quad 5538357842881958977 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000bc08 .quad -7939129862385708418 - 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000bc10 .quad -2300424733252327086 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000bc18 .quad -5312226309554747619 - 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000bc20 .quad 6347841120289366950 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000bc28 .quad -2028596868516046619 - 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000bc30 .quad 6273243709394548296 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000bc38 .quad -8185402070463610993 - 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000bc40 .quad 3229868618315797466 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000bc48 .quad -5620066569652125837 - 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000bc50 .quad -574350245532641071 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000bc58 .quad -2413397193637769393 - 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000bc60 .quad -358968903457900670 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000bc68 .quad -8425902273664687727 - 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000bc70 .quad 8774660907532399971 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000bc78 .quad -5920691823653471754 - 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000bc80 .quad 1744954097560724156 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000bc88 .quad -2789178761139451788 - 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000bc90 .quad -8132775725879323211 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000bc98 .quad -8660765753353239224 - 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000bca0 .quad -5554283638921766110 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000bca8 .quad -6214271173264161126 - 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000bcb0 .quad 6892203506629956075 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000bcb8 .quad -3156152948152813503 - 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000bcc0 .quad -2609901835997359309 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000bcc8 .quad -8890124620236590296 - 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000bcd0 .quad 1349308723430688768 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000bcd8 .quad -6500969756868349965 - 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000bce0 .quad -2925050114139026944 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000bce8 .quad -3514526177658049553 - 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000bcf0 .quad -1828156321336891840 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000bcf8 .quad -9114107888677362827 - 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000bd00 .quad 6938176635183661008 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000bd08 .quad -6780948842419315629 - 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000bd10 .quad 4061034775552188356 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000bd18 .quad -3864500034596756632 - 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000bd20 .quad 5076293469440235445 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000bd28 .quad -218939024818557886 - 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000bd30 .quad 7784369436827535057 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000bd38 .quad -7054365918152680535 - 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000bd40 .quad -4104596259247744891 - 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000bd48 .quad -4206271379263462765 - 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000bd50 .quad -5130745324059681113 - 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000bd58 .quad -646153205651940552 - 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000bd60 .quad 8322499218531169064 - 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000bd68 .quad -7321374781173544701 - 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000bd70 .quad 5791438004736573426 - 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000bd78 .quad -4540032458039542972 - 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000bd80 .quad 7239297505920716783 - 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000bd88 .quad -1063354554122040811 - 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000bd90 .quad 6830403950414141941 - 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000bd98 .quad -7582125623967357363 - 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000bda0 .quad -5297053117264486286 - 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000bda8 .quad -4865971011531808800 - 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000bdb0 .quad -2009630378153219953 - 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000bdb8 .quad -1470777745987373096 - 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000bdc0 .quad -8173548013986844327 - 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000bdc8 .quad -7836765118883190041 - 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000bdd0 .quad 8229809056225996208 - 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000bdd8 .quad -5184270380176599647 - 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000bde0 .quad -3547796734999668452 - 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000bde8 .quad -1868651956793361655 - 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000bdf0 .quad 2394313059052595121 - 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000bdf8 .quad -8085436500636932890 - 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000be00 .quad -6230480713039031907 - 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000be08 .quad -5495109607368778209 - 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000be10 .quad -7788100891298789883 - 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000be18 .quad -2257200990783584857 - 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000be20 .quad -4867563057061743677 - 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000be28 .quad -8328279646880822392 - 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000be30 .quad -1472767802899791692 - 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000be38 .quad -5798663540173640086 - 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000be40 .quad -6452645772052127519 - 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000be48 .quad -2636643406789662203 - 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000be50 .quad -8644589625959967604 - 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000be58 .quad -8565431156884620733 - 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000be60 .quad 7641007041259592112 - 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000be68 .quad -6095102927678388012 - 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000be70 .quad -8895485272135061476 - 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000be78 .quad -3007192641170597111 - 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000be80 .quad -947992276657025519 - 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000be88 .quad -8797024428372705051 - 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000be90 .quad 8038381691033493909 - 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000be98 .quad -6384594517038493409 - 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000bea0 .quad 5436291095364479483 - 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000bea8 .quad -3369057127870728857 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000beb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000bec0 .p2align 4, 0x00 - //0x0000bec0 _POW_TAB - 0x01, 0x00, 0x00, 0x00, //0x0000bec0 .long 1 - 0x03, 0x00, 0x00, 0x00, //0x0000bec4 .long 3 - 0x06, 0x00, 0x00, 0x00, //0x0000bec8 .long 6 - 0x09, 0x00, 0x00, 0x00, //0x0000becc .long 9 - 0x0d, 0x00, 0x00, 0x00, //0x0000bed0 .long 13 - 0x10, 0x00, 0x00, 0x00, //0x0000bed4 .long 16 - 0x13, 0x00, 0x00, 0x00, //0x0000bed8 .long 19 - 0x17, 0x00, 0x00, 0x00, //0x0000bedc .long 23 - 0x1a, 0x00, 0x00, 0x00, //0x0000bee0 .long 26 - //0x0000bee4 .p2align 2, 0x00 - //0x0000bee4 _MASK_USE_NUMBER - 0x02, 0x00, 0x00, 0x00, //0x0000bee4 .long 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bee8 .p2align 4, 0x00 - //0x0000bef0 _Digits - 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000bef0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000bf00 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000bf10 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000bf20 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000bf30 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000bf40 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000bf50 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000bf60 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000bf70 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000bf80 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000bf90 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000bfa0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000bfb0 QUAD $0x3939383937393639 // .ascii 8, '96979899' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bfb8 .p2align 4, 0x00 - //0x0000bfc0 _pow10_ceil_sig.g - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000bfc0 .quad -38366372719436721 - 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000bfc8 .quad 2731688931043774331 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000bfd0 .quad -6941508010590729807 - 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000bfd8 .quad 8624834609543440813 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000bfe0 .quad -4065198994811024355 - 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000bfe8 .quad -3054014793352862696 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000bff0 .quad -469812725086392539 - 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000bff8 .quad 5405853545163697438 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c000 .quad -7211161980820077193 - 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c008 .quad 5684501474941004851 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c010 .quad -4402266457597708587 - 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c018 .quad 2493940825248868160 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c020 .quad -891147053569747830 - 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c028 .quad 7729112049988473104 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c030 .quad -7474495936122174250 - 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c038 .quad -9004363024039368022 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c040 .quad -4731433901725329908 - 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c048 .quad 2579604275232953684 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c050 .quad -1302606358729274481 - 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c058 .quad 3224505344041192105 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c060 .quad -7731658001846878407 - 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c068 .quad 8932844867666826922 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c070 .quad -5052886483881210105 - 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c078 .quad -2669001970698630060 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c080 .quad -1704422086424124727 - 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c088 .quad -3336252463373287575 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c090 .quad -7982792831656159810 - 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c098 .quad 2526528228819083170 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c0a0 .quad -5366805021142811859 - 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c0a8 .quad -6065211750830921845 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c0b0 .quad -2096820258001126919 - 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c0b8 .quad 1641857348316123501 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c0c0 .quad -8228041688891786181 - 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c0c8 .quad -5891368184943504668 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c0d0 .quad -5673366092687344822 - 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c0d8 .quad -7364210231179380835 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c0e0 .quad -2480021597431793123 - 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c0e8 .quad 4629795266307937668 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c0f0 .quad -8467542526035952558 - 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c0f8 .quad 5199465050656154995 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c100 .quad -5972742139117552794 - 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c108 .quad -2724040723534582064 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c110 .quad -2854241655469553088 - 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c118 .quad -8016736922845615485 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c120 .quad -8701430062309552536 - 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c128 .quad 6518754469289960082 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c130 .quad -6265101559459552766 - 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c138 .quad 8148443086612450103 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c140 .quad -3219690930897053053 - 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c148 .quad 962181821410786820 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c150 .quad -8929835859451740015 - 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c158 .quad -1704479370831952189 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c160 .quad -6550608805887287114 - 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c168 .quad 7092772823314835571 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c170 .quad -3576574988931720989 - 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c178 .quad -357406007711231344 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c180 .quad -9152888395723407474 - 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c188 .quad 8999993282035256218 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c190 .quad -6829424476226871438 - 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c198 .quad 2026619565689294465 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c1a0 .quad -3925094576856201394 - 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c1a8 .quad -6690097579743157727 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c1b0 .quad -294682202642863838 - 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c1b8 .quad 5472436080603216553 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c1c0 .quad -7101705404292871755 - 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c1c8 .quad 8031958568804398250 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c1d0 .quad -4265445736938701790 - 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c1d8 .quad -3795109844276665900 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c1e0 .quad -720121152745989333 - 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c1e8 .quad 9091170749936331337 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c1f0 .quad -7367604748107325189 - 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c1f8 .quad 3376138709496513134 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c200 .quad -4597819916706768583 - 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c208 .quad -391512631556746487 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c210 .quad -1135588877456072824 - 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c218 .quad 8733981247408842699 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c220 .quad -7627272076051127371 - 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c228 .quad 5458738279630526687 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c230 .quad -4922404076636521310 - 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c238 .quad -7011635205744005353 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c240 .quad -1541319077368263733 - 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c248 .quad 5070514048102157021 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c250 .quad -7880853450996246689 - 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c258 .quad 863228270850154186 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c260 .quad -5239380795317920458 - 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c268 .quad -3532650679864695172 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c270 .quad -1937539975720012668 - 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c278 .quad -9027499368258256869 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c280 .quad -8128491512466089774 - 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c288 .quad -3336344095947716591 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c290 .quad -5548928372155224313 - 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c298 .quad -8782116138362033642 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c2a0 .quad -2324474446766642487 - 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c2a8 .quad 7469098900757009563 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c2b0 .quad -8370325556870233411 - 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c2b8 .quad -2249342214667950879 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c2c0 .quad -5851220927660403859 - 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c2c8 .quad 6411694268519837209 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c2d0 .quad -2702340141148116920 - 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c2d8 .quad -5820440219632367201 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c2e0 .quad -8606491615858654931 - 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c2e8 .quad 7891439908798240260 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c2f0 .quad -6146428501395930760 - 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c2f8 .quad -3970758169284363388 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c300 .quad -3071349608317525546 - 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c308 .quad -351761693178066331 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c310 .quad -8837122532839535322 - 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c318 .quad 6697677969404790400 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c320 .quad -6434717147622031249 - 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c328 .quad -851274575098787809 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c330 .quad -3431710416100151157 - 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c338 .quad -1064093218873484761 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c340 .quad -9062348037703676329 - 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c348 .quad 8558313775058847833 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c350 .quad -6716249028702207507 - 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c358 .quad 6086206200396171887 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c360 .quad -3783625267450371480 - 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c368 .quad -6227300304786948854 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c370 .quad -117845565885576446 - 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c378 .quad -3172439362556298163 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c380 .quad -6991182506319567135 - 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c388 .quad -4288617610811380304 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c390 .quad -4127292114472071014 - 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c398 .quad 3862600023340550428 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c3a0 .quad -547429124662700864 - 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c3a8 .quad -4395122007679087773 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c3b0 .quad -7259672230555269896 - 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c3b8 .quad 8782263791269039902 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c3c0 .quad -4462904269766699466 - 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c3c8 .quad -7468914334623251739 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c3d0 .quad -966944318780986428 - 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c3d8 .quad 4498915137003099038 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c3e0 .quad -7521869226879198374 - 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c3e8 .quad -6411550076227838909 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c3f0 .quad -4790650515171610063 - 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c3f8 .quad 5820620459997365076 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c400 .quad -1376627125537124675 - 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c408 .quad -6559282480285457367 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c410 .quad -7777920981101784778 - 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c418 .quad -8711237568605798758 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c420 .quad -5110715207949843068 - 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c428 .quad 2946011094524915264 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c430 .quad -1776707991509915931 - 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c438 .quad 3682513868156144080 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c440 .quad -8027971522334779313 - 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c448 .quad 4607414176811284002 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c450 .quad -5423278384491086237 - 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c458 .quad 1147581702586717098 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c460 .quad -2167411962186469893 - 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c468 .quad -3177208890193991531 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c470 .quad -8272161504007625539 - 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c478 .quad 7237616480483531101 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c480 .quad -5728515861582144020 - 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c488 .quad -4788037454677749836 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c490 .quad -2548958808550292121 - 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c498 .quad -1373360799919799391 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c4a0 .quad -8510628282985014432 - 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c4a8 .quad -858350499949874619 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c4b0 .quad -6026599335303880135 - 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c4b8 .quad 3538747893490044630 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c4c0 .quad -2921563150702462265 - 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c4c8 .quad 9035120885289943692 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c4d0 .quad -8743505996830120772 - 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c4d8 .quad -5882264492762254952 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c4e0 .quad -6317696477610263061 - 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c4e8 .quad -2741144597525430787 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c4f0 .quad -3285434578585440922 - 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c4f8 .quad -3426430746906788484 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000c500 .quad -8970925639256982432 - 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000c508 .quad 4776009810824339054 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000c510 .quad -6601971030643840136 - 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000c518 .quad 5970012263530423817 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000c520 .quad -3640777769877412266 - 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000c528 .quad 7462515329413029772 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000c530 .quad -9193015133814464522 - 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000c538 .quad 52386062455755703 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000c540 .quad -6879582898840692749 - 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000c548 .quad -9157889458785081179 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000c550 .quad -3987792605123478032 - 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000c558 .quad 6999382250228200142 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000c560 .quad -373054737976959636 - 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000c568 .quad 8749227812785250178 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000c570 .quad -7150688238876681629 - 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000c578 .quad -3755104653863994447 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000c580 .quad -4326674280168464132 - 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000c588 .quad -4693880817329993059 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000c590 .quad -796656831783192261 - 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000c598 .quad -1255665003235103419 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000c5a0 .quad -7415439547505577019 - 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000c5a8 .quad 8438581409832836171 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000c5b0 .quad -4657613415954583370 - 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000c5b8 .quad -3286831292991118498 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000c5c0 .quad -1210330751515841308 - 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000c5c8 .quad -8720225134666286027 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000c5d0 .quad -7673985747338482674 - 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000c5d8 .quad -3144297699952734815 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000c5e0 .quad -4980796165745715438 - 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000c5e8 .quad -8542058143368306422 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000c5f0 .quad -1614309188754756393 - 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000c5f8 .quad 3157485376071780684 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000c600 .quad -7926472270612804602 - 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000c608 .quad 8890957387685944784 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000c610 .quad -5296404319838617848 - 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000c618 .quad 1890324697752655171 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000c620 .quad -2008819381370884406 - 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000c628 .quad 2362905872190818964 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000c630 .quad -8173041140997884610 - 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000c638 .quad 6088502188546649757 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000c640 .quad -5604615407819967859 - 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000c648 .quad -1612744301171463612 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000c650 .quad -2394083241347571919 - 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000c658 .quad 7207441660390446293 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000c660 .quad -8413831053483314306 - 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000c668 .quad -2412877989897052923 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000c670 .quad -5905602798426754978 - 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000c678 .quad -7627783505798704058 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000c680 .quad -2770317479606055818 - 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000c688 .quad 4300328673033783640 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000c690 .quad -8648977452394866743 - 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000c698 .quad -1923980597781273129 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000c6a0 .quad -6199535797066195524 - 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000c6a8 .quad 6818396289628184397 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000c6b0 .quad -3137733727905356501 - 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000c6b8 .quad 8522995362035230496 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000c6c0 .quad -8878612607581929669 - 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000c6c8 .quad 3021029092058325108 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000c6d0 .quad -6486579741050024183 - 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000c6d8 .quad -835399653354481519 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000c6e0 .quad -3496538657885142324 - 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000c6e8 .quad 8179122470161673909 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000c6f0 .quad -9102865688819295809 - 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000c6f8 .quad -4111420493003729615 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000c700 .quad -6766896092596731857 - 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000c708 .quad -5139275616254662019 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000c710 .quad -3846934097318526917 - 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000c718 .quad -6424094520318327523 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000c720 .quad -196981603220770742 - 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000c728 .quad -8030118150397909404 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000c730 .quad -7040642529654063570 - 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000c738 .quad -7324666853212387329 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000c740 .quad -4189117143640191558 - 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000c748 .quad 4679224488766679550 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000c750 .quad -624710411122851544 - 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000c758 .quad -3374341425896426371 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000c760 .quad -7307973034592864071 - 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000c768 .quad -9026492418826348337 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000c770 .quad -4523280274813692185 - 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000c778 .quad -2059743486678159614 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000c780 .quad -1042414325089727327 - 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000c788 .quad -2574679358347699518 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000c790 .quad -7569037980822161435 - 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000c798 .quad 3002511419460075706 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000c7a0 .quad -4849611457600313890 - 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000c7a8 .quad 8364825292752482536 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000c7b0 .quad -1450328303573004458 - 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000c7b8 .quad 1232659579085827362 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000c7c0 .quad -7823984217374209643 - 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000c7c8 .quad -3841273781498745803 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000c7d0 .quad -5168294253290374149 - 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000c7d8 .quad 4421779809981343555 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000c7e0 .quad -1848681798185579782 - 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000c7e8 .quad 915538744049291539 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000c7f0 .quad -8072955151507069220 - 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000c7f8 .quad 5183897733458195116 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000c800 .quad -5479507920956448621 - 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000c808 .quad 6479872166822743895 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000c810 .quad -2237698882768172872 - 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000c818 .quad 3488154190101041965 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000c820 .quad -8316090829371189901 - 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000c828 .quad 2180096368813151228 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000c830 .quad -5783427518286599473 - 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000c838 .quad -1886565557410948869 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000c840 .quad -2617598379430861437 - 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000c848 .quad -2358206946763686086 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000c850 .quad -8553528014785370254 - 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000c858 .quad 7749492695127472004 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000c860 .quad -6080224000054324913 - 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000c868 .quad 463493832054564197 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000c870 .quad -2988593981640518238 - 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000c878 .quad -4032318728359182658 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000c880 .quad -8785400266166405755 - 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000c888 .quad -4826042214438183113 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000c890 .quad -6370064314280619289 - 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000c898 .quad 3190819268807046917 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000c8a0 .quad -3350894374423386208 - 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000c8a8 .quad -623161932418579258 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000c8b0 .quad -9011838011655698236 - 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000c8b8 .quad -7307005235402693892 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000c8c0 .quad -6653111496142234891 - 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000c8c8 .quad -4522070525825979461 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000c8d0 .quad -3704703351750405709 - 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000c8d8 .quad 3570783879572301481 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000c8e0 .quad -19193171260619233 - 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000c8e8 .quad -148206168962011053 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000c8f0 .quad -6929524759678968877 - 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000c8f8 .quad -92628855601256908 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000c900 .quad -4050219931171323192 - 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000c908 .quad -115786069501571135 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000c910 .quad -451088895536766085 - 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000c918 .quad 4466953431550423985 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000c920 .quad -7199459587351560659 - 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000c928 .quad 486002885505321039 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000c930 .quad -4387638465762062920 - 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000c938 .quad 5219189625309039203 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000c940 .quad -872862063775190746 - 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000c948 .quad 6523987031636299003 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000c950 .quad -7463067817500576073 - 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000c958 .quad -534194123654701027 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000c960 .quad -4717148753448332187 - 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000c968 .quad -667742654568376284 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000c970 .quad -1284749923383027329 - 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000c978 .quad 8388693718644305453 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000c980 .quad -7720497729755473937 - 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000c988 .quad -6286281471915778851 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000c990 .quad -5038936143766954517 - 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000c998 .quad -7857851839894723564 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000c9a0 .quad -1686984161281305242 - 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000c9a8 .quad 8624429273841147160 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000c9b0 .quad -7971894128441897632 - 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000c9b8 .quad 778582277723329071 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000c9c0 .quad -5353181642124984136 - 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000c9c8 .quad 973227847154161339 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000c9d0 .quad -2079791034228842266 - 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000c9d8 .quad 1216534808942701674 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000c9e0 .quad -8217398424034108273 - 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000c9e8 .quad -3851351762838199358 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000c9f0 .quad -5660062011615247437 - 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000c9f8 .quad -4814189703547749197 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000ca00 .quad -2463391496091671392 - 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000ca08 .quad -6017737129434686497 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000ca10 .quad -8457148712698376476 - 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000ca18 .quad 7768129340171790700 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000ca20 .quad -5959749872445582691 - 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000ca28 .quad -8736582398494813241 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000ca30 .quad -2838001322129590460 - 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000ca38 .quad -1697355961263740744 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ca40 .quad -8691279853972075893 - 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ca48 .quad 1244995533423855987 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000ca50 .quad -6252413799037706963 - 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000ca58 .quad -3055441601647567920 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000ca60 .quad -3203831230369745799 - 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000ca68 .quad 5404070034795315908 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000ca70 .quad -8919923546622172981 - 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000ca78 .quad -3539985255894009413 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000ca80 .quad -6538218414850328322 - 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000ca88 .quad -4424981569867511767 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000ca90 .quad -3561087000135522498 - 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000ca98 .quad 8303831092947774003 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000caa0 .quad -9143208402725783417 - 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000caa8 .quad 578208414664970848 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cab0 .quad -6817324484979841368 - 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cab8 .quad -3888925500096174344 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000cac0 .quad -3909969587797413806 - 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000cac8 .quad -249470856692830026 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cad0 .quad -275775966319379353 - 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cad8 .quad -4923524589293425437 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cae0 .quad -7089889006590693952 - 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cae8 .quad -3077202868308390898 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000caf0 .quad -4250675239810979535 - 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000caf8 .quad 765182433041899282 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000cb00 .quad -701658031336336515 - 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000cb08 .quad 5568164059729762006 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000cb10 .quad -7356065297226292178 - 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000cb18 .quad 5785945546544795206 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000cb20 .quad -4583395603105477319 - 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000cb28 .quad -1990940103673781801 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000cb30 .quad -1117558485454458744 - 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000cb38 .quad 6734696907262548557 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000cb40 .quad -7616003081050118571 - 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000cb48 .quad 4209185567039092848 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000cb50 .quad -4908317832885260310 - 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000cb58 .quad -8573576096483297652 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000cb60 .quad -1523711272679187483 - 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000cb68 .quad 3118087934678041647 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000cb70 .quad -7869848573065574033 - 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000cb78 .quad 4254647968387469982 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000cb80 .quad -5225624697904579637 - 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000cb88 .quad 706623942056949573 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000cb90 .quad -1920344853953336643 - 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000cb98 .quad -3728406090856200938 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000cba0 .quad -8117744561361917258 - 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000cba8 .quad -6941939825212513490 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000cbb0 .quad -5535494683275008668 - 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000cbb8 .quad 5157633273766521850 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000cbc0 .quad -2307682335666372931 - 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000cbc8 .quad 6447041592208152312 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000cbd0 .quad -8359830487432564938 - 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000cbd8 .quad 6335244004343789147 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000cbe0 .quad -5838102090863318269 - 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000cbe8 .quad -1304317031425039374 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000cbf0 .quad -2685941595151759932 - 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000cbf8 .quad -1630396289281299218 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000cc00 .quad -8596242524610931813 - 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000cc08 .quad 1286845328412881941 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000cc10 .quad -6133617137336276863 - 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000cc18 .quad -3003129357911285478 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000cc20 .quad -3055335403242958174 - 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000cc28 .quad 5469460339465668960 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000cc30 .quad -8827113654667930715 - 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000cc38 .quad 8030098730593431004 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000cc40 .quad -6422206049907525490 - 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000cc48 .quad -3797434642040374957 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000cc50 .quad -3416071543957018958 - 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000cc58 .quad 9088264752731695016 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000cc60 .quad -9052573742614218705 - 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000cc68 .quad -8154892584824854327 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000cc70 .quad -6704031159840385477 - 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000cc78 .quad 8253128342678483707 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000cc80 .quad -3768352931373093942 - 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000cc88 .quad 5704724409920716730 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000cc90 .quad -98755145788979524 - 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000cc98 .quad -2092466524453879895 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000cca0 .quad -6979250993759194058 - 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000cca8 .quad 998051431430019018 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000ccb0 .quad -4112377723771604669 - 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000ccb8 .quad -7975807747567252036 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000ccc0 .quad -528786136287117932 - 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000ccc8 .quad 8476984389250486571 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000ccd0 .quad -7248020362820530564 - 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000ccd8 .quad -3925256793573221701 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000cce0 .quad -4448339435098275301 - 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000cce8 .quad -294884973539139223 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000ccf0 .quad -948738275445456222 - 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000ccf8 .quad -368606216923924028 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000cd00 .quad -7510490449794491995 - 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000cd08 .quad -2536221894791146469 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000cd10 .quad -4776427043815727089 - 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000cd18 .quad 6053094668365842721 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000cd20 .quad -1358847786342270957 - 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000cd28 .quad 2954682317029915497 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000cd30 .quad -7766808894105001205 - 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000cd38 .quad -459166561069996766 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000cd40 .quad -5096825099203863602 - 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000cd48 .quad -573958201337495958 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000cd50 .quad -1759345355577441598 - 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000cd58 .quad -5329133770099257851 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000cd60 .quad -8017119874876982855 - 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000cd68 .quad -5636551615525730109 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000cd70 .quad -5409713825168840664 - 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000cd78 .quad 2177682517447613172 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000cd80 .quad -2150456263033662926 - 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000cd88 .quad 2722103146809516465 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000cd90 .quad -8261564192037121185 - 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000cd98 .quad 6313000485183335695 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000cda0 .quad -5715269221619013577 - 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000cda8 .quad 3279564588051781714 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000cdb0 .quad -2532400508596379068 - 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000cdb8 .quad -512230283362660762 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000cdc0 .quad -8500279345513818773 - 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000cdc8 .quad 1985699082112030976 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000cdd0 .quad -6013663163464885563 - 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000cdd8 .quad -2129562165787349184 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000cde0 .quad -2905392935903719049 - 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000cde8 .quad 6561419329620589328 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000cdf0 .quad -8733399612580906262 - 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000cdf8 .quad -7428327965055601430 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000ce00 .quad -6305063497298744923 - 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000ce08 .quad 4549648098962661925 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000ce10 .quad -3269643353196043250 - 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000ce18 .quad -8147997931578836306 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000ce20 .quad -8961056123388608887 - 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000ce28 .quad 1825030320404309165 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000ce30 .quad -6589634135808373205 - 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000ce38 .quad 6892973918932774360 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000ce40 .quad -3625356651333078602 - 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000ce48 .quad 4004531380238580046 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000ce50 .quad -9183376934724255983 - 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000ce58 .quad -2108853905778275375 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000ce60 .quad -6867535149977932074 - 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000ce68 .quad 6587304654631931589 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000ce70 .quad -3972732919045027189 - 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000ce78 .quad -989241218564861322 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000ce80 .quad -354230130378896082 - 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000ce88 .quad -1236551523206076653 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000ce90 .quad -7138922859127891907 - 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000ce98 .quad 6144684325637283948 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000cea0 .quad -4311967555482476980 - 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000cea8 .quad -6154202648235558777 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000ceb0 .quad -778273425925708321 - 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000ceb8 .quad -3081067291867060567 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000cec0 .quad -7403949918844649557 - 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000cec8 .quad -1925667057416912854 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000ced0 .quad -4643251380128424042 - 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000ced8 .quad -2407083821771141068 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000cee0 .quad -1192378206733142148 - 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000cee8 .quad -7620540795641314239 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000cef0 .quad -7662765406849295699 - 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000cef8 .quad -2456994988062127447 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000cf00 .quad -4966770740134231719 - 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000cf08 .quad 6152128301777116499 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000cf10 .quad -1596777406740401745 - 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000cf18 .quad -6144897678060768089 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000cf20 .quad -7915514906853832947 - 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000cf28 .quad -3840561048787980055 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000cf30 .quad -5282707615139903279 - 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000cf38 .quad 4422670725869800739 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000cf40 .quad -1991698500497491195 - 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000cf48 .quad -8306719647944912789 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000cf50 .quad -8162340590452013853 - 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000cf58 .quad 8643358275316593219 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000cf60 .quad -5591239719637629412 - 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000cf68 .quad 6192511825718353620 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000cf70 .quad -2377363631119648861 - 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000cf78 .quad 7740639782147942025 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000cf80 .quad -8403381297090862394 - 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000cf88 .quad 2532056854628769814 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000cf90 .quad -5892540602936190089 - 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000cf98 .quad -6058300968568813541 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000cfa0 .quad -2753989735242849707 - 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000cfa8 .quad -7572876210711016926 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000cfb0 .quad -8638772612167862923 - 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000cfb8 .quad 9102010423587778133 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000cfc0 .quad -6186779746782440750 - 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000cfc8 .quad -2457545025797441046 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000cfd0 .quad -3121788665050663033 - 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000cfd8 .quad -7683617300674189211 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000cfe0 .quad -8868646943297746252 - 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000cfe8 .quad -4802260812921368257 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000cff0 .quad -6474122660694794911 - 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000cff8 .quad -1391139997724322417 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d000 .quad -3480967307441105734 - 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d008 .quad 7484447039699372787 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d010 .quad -9093133594791772940 - 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d018 .quad -9157278655470055720 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d020 .quad -6754730975062328271 - 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d028 .quad -6834912300910181746 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d030 .quad -3831727700400522434 - 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d038 .quad 679731660717048625 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d040 .quad -177973607073265139 - 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d048 .quad -8373707460958465027 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d050 .quad -7028762532061872568 - 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d058 .quad 8601490892183123070 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d060 .quad -4174267146649952806 - 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d068 .quad -7694880458480647778 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d070 .quad -606147914885053103 - 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d078 .quad 4216457482181353989 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d080 .quad -7296371474444240046 - 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d088 .quad -4282243101277735613 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d090 .quad -4508778324627912153 - 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d098 .quad 8482254178684994196 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d0a0 .quad -1024286887357502287 - 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d0a8 .quad 5991131704928854841 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d0b0 .quad -7557708332239520786 - 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d0b8 .quad -3173071712060547580 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d0c0 .quad -4835449396872013078 - 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d0c8 .quad -8578025658503072379 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d0d0 .quad -1432625727662628443 - 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d0d8 .quad 3112525982153323238 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d0e0 .quad -7812920107430224633 - 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d0e8 .quad 4251171748059520976 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d0f0 .quad -5154464115860392887 - 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d0f8 .quad 702278666647013315 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d100 .quad -1831394126398103205 - 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d108 .quad 5489534351736154548 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d110 .quad -8062150356639896359 - 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d118 .quad 1125115960621402641 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d120 .quad -5466001927372482545 - 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d128 .quad 6018080969204141205 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d130 .quad -2220816390788215277 - 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d138 .quad 2910915193077788602 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d140 .quad -8305539271883716405 - 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d148 .quad -486521013540076076 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d150 .quad -5770238071427257602 - 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d158 .quad -608151266925095095 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d160 .quad -2601111570856684098 - 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d168 .quad -5371875102083756772 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d170 .quad -8543223759426509417 - 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d178 .quad 3560107088838733873 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d180 .quad -6067343680855748868 - 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d188 .quad -161552157378970562 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d190 .quad -2972493582642298180 - 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d198 .quad 4409745821703674701 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d1a0 .quad -8775337516792518219 - 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d1a8 .quad -6467280898289979120 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d1b0 .quad -6357485877563259869 - 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d1b8 .quad 1139270913992301908 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d1c0 .quad -3335171328526686933 - 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d1c8 .quad -3187597375937010519 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d1d0 .quad -9002011107970261189 - 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d1d8 .quad 7231123676894144234 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d1e0 .quad -6640827866535438582 - 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d1e8 .quad 4427218577690292388 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d1f0 .quad -3689348814741910324 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d1f8 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d200 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d208 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d210 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d218 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d220 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d228 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d230 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d238 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d240 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d248 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d250 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d258 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d260 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d268 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d270 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d278 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d280 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d288 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d290 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d298 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d2a0 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2a8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d2b0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2b8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d2c0 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2c8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d2d0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2d8 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d2e0 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2e8 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d2f0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2f8 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d300 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d308 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d310 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d318 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d320 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d328 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d330 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d338 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d340 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d348 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d350 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d358 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d360 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d368 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d370 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d378 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d380 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d388 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d390 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d398 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d3a0 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d3a8 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d3b0 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d3b8 .quad 0 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d3c0 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d3c8 .quad 4611686018427387904 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d3d0 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d3d8 .quad 5764607523034234880 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d3e0 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d3e8 .quad -6629298651489370112 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d3f0 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d3f8 .quad 5548434740920451072 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d400 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d408 .quad -1143914305352105984 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d410 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d418 .quad 7793479155164643328 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d420 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d428 .quad -4093209111326359552 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d430 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d438 .quad 4359273333062107136 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d440 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d448 .quad 5449091666327633920 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d450 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d458 .quad 2199678564482154496 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d460 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d468 .quad 1374799102801346560 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d470 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d478 .quad 1718498878501683200 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d480 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d488 .quad 6759809616554491904 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d490 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d498 .quad 6530724019560251392 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d4a0 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d4a8 .quad -1059967012404461568 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d4b0 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d4b8 .quad 7898413271349198848 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d4c0 .quad -8106986416796705681 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d4c8 .quad -1981020733047832576 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d4d0 .quad -5522047002568494197 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d4d8 .quad -2476275916309790720 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d4e0 .quad -2290872734783229842 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d4e8 .quad -3095344895387238400 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d4f0 .quad -8349324486880600507 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d4f8 .quad 4982938468024057856 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000d500 .quad -5824969590173362730 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000d508 .quad -7606384970252091392 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000d510 .quad -2669525969289315508 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000d518 .quad 4327076842467049472 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000d520 .quad -8585982758446904049 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000d528 .quad -6518949010312869888 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000d530 .quad -6120792429631242157 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000d538 .quad -8148686262891087360 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000d540 .quad -3039304518611664792 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000d548 .quad 8260886245095692416 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000d550 .quad -8817094351773372351 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000d558 .quad 5163053903184807760 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000d560 .quad -6409681921289327535 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000d568 .quad -7381240676301154012 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000d570 .quad -3400416383184271515 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000d578 .quad -3178808521666707 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000d580 .quad -9042789267131251553 - 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000d588 .quad -4613672773753429595 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000d590 .quad -6691800565486676537 - 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000d598 .quad -5767090967191786994 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000d5a0 .quad -3753064688430957767 - 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000d5a8 .quad -7208863708989733743 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000d5b0 .quad -79644842111309304 - 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000d5b8 .quad 212292400617608629 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000d5c0 .quad -6967307053960650171 - 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000d5c8 .quad 132682750386005393 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000d5d0 .quad -4097447799023424810 - 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000d5d8 .quad 4777539456409894646 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000d5e0 .quad -510123730351893109 - 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000d5e8 .quad -3251447716342407501 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000d5f0 .quad -7236356359111015049 - 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000d5f8 .quad 7191217214140771120 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000d600 .quad -4433759430461380907 - 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000d608 .quad 4377335499248575996 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000d610 .quad -930513269649338230 - 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000d618 .quad -8363388681221443717 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000d620 .quad -7499099821171918250 - 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000d628 .quad -7532960934977096275 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000d630 .quad -4762188758037509908 - 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000d638 .quad 4418856886560793368 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000d640 .quad -1341049929119499481 - 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000d648 .quad 5523571108200991710 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000d650 .quad -7755685233340769032 - 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000d658 .quad -8076983103442849941 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000d660 .quad -5082920523248573386 - 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000d668 .quad -5484542860876174523 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000d670 .quad -1741964635633328828 - 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000d678 .quad 6979379479186945559 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000d680 .quad -8006256924911912374 - 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000d688 .quad -4861259862362934834 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000d690 .quad -5396135137712502563 - 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000d698 .quad 7758483227328495170 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000d6a0 .quad -2133482903713240300 - 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000d6a8 .quad -4136954021121544750 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000d6b0 .quad -8250955842461857044 - 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000d6b8 .quad -279753253987271517 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000d6c0 .quad -5702008784649933400 - 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000d6c8 .quad 4261994450943298508 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000d6d0 .quad -2515824962385028846 - 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000d6d8 .quad 5327493063679123135 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000d6e0 .quad -8489919629131724885 - 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000d6e8 .quad 7941369183226839864 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000d6f0 .quad -6000713517987268202 - 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000d6f8 .quad 5315025460606161925 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000d700 .quad -2889205879056697349 - 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000d708 .quad -2579590211097073401 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000d710 .quad -8723282702051517699 - 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000d718 .quad 7611128154919104932 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000d720 .quad -6292417359137009220 - 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000d728 .quad -4321147861633282547 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000d730 .quad -3253835680493873621 - 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000d738 .quad -789748808614215279 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000d740 .quad -8951176327949752869 - 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000d748 .quad 8729779031470891259 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000d750 .quad -6577284391509803182 - 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000d758 .quad 6300537770911226169 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000d760 .quad -3609919470959866074 - 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000d768 .quad -1347699823215743097 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000d770 .quad -9173728696990998152 - 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000d778 .quad 6075216638131242421 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000d780 .quad -6855474852811359786 - 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000d788 .quad 7594020797664053026 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000d790 .quad -3957657547586811828 - 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000d798 .quad 269153960225290474 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000d7a0 .quad -335385916056126881 - 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000d7a8 .quad 336442450281613092 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000d7b0 .quad -7127145225176161157 - 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000d7b8 .quad 7127805559067090039 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000d7c0 .quad -4297245513042813542 - 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000d7c8 .quad 4298070930406474645 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000d7d0 .quad -759870872876129024 - 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000d7d8 .quad -3850783373846682502 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000d7e0 .quad -7392448323188662496 - 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000d7e8 .quad 9122475437414293196 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000d7f0 .quad -4628874385558440216 - 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000d7f8 .quad -7043649776941685121 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000d800 .quad -1174406963520662366 - 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000d808 .quad -4192876202749718497 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000d810 .quad -7651533379841495835 - 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000d818 .quad -4926390635932268013 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000d820 .quad -4952730706374481889 - 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000d828 .quad 3065383741939440792 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000d830 .quad -1579227364540714458 - 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000d838 .quad -779956341003086914 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000d840 .quad -7904546130479028392 - 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000d848 .quad 6430056314514152535 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000d850 .quad -5268996644671397586 - 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000d858 .quad 8037570393142690669 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000d860 .quad -1974559787411859078 - 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000d868 .quad 823590954573587528 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000d870 .quad -8151628894773493780 - 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000d878 .quad 5126430365035880109 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000d880 .quad -5577850100039479321 - 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000d888 .quad 6408037956294850136 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000d890 .quad -2360626606621961247 - 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000d898 .quad 3398361426941174766 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000d8a0 .quad -8392920656779807636 - 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000d8a8 .quad -4793553135802847627 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000d8b0 .quad -5879464802547371641 - 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000d8b8 .quad -1380255401326171630 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000d8c0 .quad -2737644984756826647 - 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000d8c8 .quad -1725319251657714538 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000d8d0 .quad -8628557143114098510 - 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000d8d8 .quad 3533361486141316318 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000d8e0 .quad -6174010410465235234 - 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000d8e8 .quad -4806670179178130410 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000d8f0 .quad -3105826994654156138 - 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000d8f8 .quad 7826720331309500699 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000d900 .quad -8858670899299929442 - 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000d908 .quad 280014188641050033 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000d910 .quad -6461652605697523899 - 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000d918 .quad -8873354301053463267 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000d920 .quad -3465379738694516970 - 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000d928 .quad -1868320839462053276 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000d930 .quad -9083391364325154962 - 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000d938 .quad 5749828502977298559 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000d940 .quad -6742553186979055799 - 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000d948 .quad -2036086408133152610 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000d950 .quad -3816505465296431844 - 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000d958 .quad 6678264026688335046 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000d960 .quad -158945813193151901 - 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000d968 .quad 8347830033360418807 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000d970 .quad -7016870160886801794 - 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000d978 .quad 2911550761636567803 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000d980 .quad -4159401682681114339 - 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000d988 .quad -5583933584809066055 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000d990 .quad -587566084924005019 - 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000d998 .quad 2243455055843443239 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000d9a0 .quad -7284757830718584993 - 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000d9a8 .quad 3708002419115845977 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000d9b0 .quad -4494261269970843337 - 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000d9b8 .quad 23317005467419567 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000d9c0 .quad -1006140569036166268 - 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000d9c8 .quad -4582539761593113445 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000d9d0 .quad -7546366883288685774 - 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000d9d8 .quad -558244341782001951 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000d9e0 .quad -4821272585683469313 - 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000d9e8 .quad -5309491445654890343 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000d9f0 .quad -1414904713676948737 - 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000d9f8 .quad -6636864307068612929 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000da00 .quad -7801844473689174817 - 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000da08 .quad -4148040191917883080 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000da10 .quad -5140619573684080617 - 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000da18 .quad -5185050239897353851 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000da20 .quad -1814088448677712867 - 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000da28 .quad -6481312799871692314 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000da30 .quad -8051334308064652398 - 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000da38 .quad -8662506518347195600 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000da40 .quad -5452481866653427593 - 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000da48 .quad 3006924907348169212 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000da50 .quad -2203916314889396588 - 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000da58 .quad -853029884242176389 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000da60 .quad -8294976724446954723 - 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000da68 .quad 1772699331562333709 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000da70 .quad -5757034887131305500 - 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000da78 .quad 6827560182880305040 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000da80 .quad -2584607590486743971 - 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000da88 .quad 8534450228600381300 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000da90 .quad -8532908771695296838 - 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000da98 .quad 7639874402088932265 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000daa0 .quad -6054449946191733143 - 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000daa8 .quad 326470965756389523 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dab0 .quad -2956376414312278525 - 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dab8 .quad 5019774725622874807 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dac0 .quad -8765264286586255934 - 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dac8 .quad 831516194300602803 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dad0 .quad -6344894339805432014 - 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dad8 .quad -8183976793979022305 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dae0 .quad -3319431906329402113 - 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dae8 .quad 3605087062808385831 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000daf0 .quad -8992173969096958177 - 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000daf8 .quad 9170708441896323001 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000db00 .quad -6628531442943809817 - 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000db08 .quad 6851699533943015847 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000db10 .quad -3673978285252374367 - 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000db18 .quad 3952938399001381904 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000db20 .quad -9213765455923815836 - 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000db28 .quad -4446942528265218166 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000db30 .quad -6905520801477381891 - 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000db38 .quad -946992141904134803 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000db40 .quad -4020214983419339459 - 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000db48 .quad 8039631859474607304 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000db50 .quad -413582710846786420 - 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000db58 .quad -3785518230938904582 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000db60 .quad -7176018221920323369 - 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000db68 .quad -60105885123121412 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000db70 .quad -4358336758973016307 - 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000db78 .quad -75132356403901765 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000db80 .quad -836234930288882479 - 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000db88 .quad 9129456591349898602 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000db90 .quad -7440175859071633406 - 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000db98 .quad -1211618658047395230 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000dba0 .quad -4688533805412153853 - 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000dba8 .quad -6126209340986631941 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000dbb0 .quad -1248981238337804412 - 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000dbb8 .quad -7657761676233289927 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000dbc0 .quad -7698142301602209614 - 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000dbc8 .quad -2480258038432112252 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000dbd0 .quad -5010991858575374113 - 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000dbd8 .quad -7712008566467528219 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000dbe0 .quad -1652053804791829737 - 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000dbe8 .quad 8806733365625141342 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000dbf0 .quad -7950062655635975442 - 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000dbf8 .quad -6025006692552756421 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000dc00 .quad -5325892301117581398 - 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000dc08 .quad 6303799689591218186 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000dc10 .quad -2045679357969588844 - 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000dc18 .quad -1343622424865753076 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000dc20 .quad -8196078626372074883 - 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000dc28 .quad 1466078993672598280 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000dc30 .quad -5633412264537705700 - 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000dc38 .quad 6444284760518135753 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000dc40 .quad -2430079312244744221 - 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000dc48 .quad 8055355950647669692 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000dc50 .quad -8436328597794046994 - 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000dc58 .quad 2728754459941099605 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000dc60 .quad -5933724728815170839 - 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000dc68 .quad -5812428961928401301 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000dc70 .quad -2805469892591575644 - 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000dc78 .quad 1957835834444274181 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000dc80 .quad -8670947710510816634 - 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000dc88 .quad -7999724640327104445 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000dc90 .quad -6226998619711132888 - 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000dc98 .quad 3835402254873283156 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000dca0 .quad -3172062256211528206 - 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000dca8 .quad 4794252818591603945 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000dcb0 .quad -8900067937773286985 - 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000dcb8 .quad 7608094030047140370 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000dcc0 .quad -6513398903789220827 - 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000dcc8 .quad 4898431519131537558 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000dcd0 .quad -3530062611309138130 - 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000dcd8 .quad -7712018656367741764 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000dce0 .quad -9123818159709293187 - 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000dce8 .quad 2097517367411243254 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000dcf0 .quad -6793086681209228580 - 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000dcf8 .quad 7233582727691441971 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000dd00 .quad -3879672333084147821 - 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000dd08 .quad 9041978409614302463 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000dd10 .quad -237904397927796872 - 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000dd18 .quad 6690786993590490175 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000dd20 .quad -7066219276345954901 - 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000dd28 .quad 4181741870994056360 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000dd30 .quad -4221088077005055722 - 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000dd38 .quad 615491320315182545 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000dd40 .quad -664674077828931749 - 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000dd48 .quad -8454007886460797626 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000dd50 .quad -7332950326284164199 - 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000dd58 .quad 3939617107816777292 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000dd60 .quad -4554501889427817345 - 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000dd68 .quad -8910536670511192098 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000dd70 .quad -1081441343357383777 - 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000dd78 .quad 7308573235570561494 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000dd80 .quad -7593429867239446717 - 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000dd88 .quad -6961356773836868826 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000dd90 .quad -4880101315621920492 - 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000dd98 .quad -8701695967296086033 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000dda0 .quad -1488440626100012711 - 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000dda8 .quad -6265433940692719637 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000ddb0 .quad -7847804418953589800 - 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000ddb8 .quad 695789805494438131 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000ddc0 .quad -5198069505264599346 - 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000ddc8 .quad 869737256868047664 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000ddd0 .quad -1885900863153361279 - 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000ddd8 .quad -8136200465769716229 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000dde0 .quad -8096217067111932656 - 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000dde8 .quad -473439272678684739 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000ddf0 .quad -5508585315462527915 - 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000ddf8 .quad 4019886927579031981 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000de00 .quad -2274045625900771990 - 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000de08 .quad -8810199395808373736 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000de10 .quad -8338807543829064350 - 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000de18 .quad -7812217631593927537 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000de20 .quad -5811823411358942533 - 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000de28 .quad 4069786015789754291 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000de30 .quad -2653093245771290262 - 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000de38 .quad 475546501309804959 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000de40 .quad -8575712306248138270 - 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000de48 .quad 4908902581746016004 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000de50 .quad -6107954364382784934 - 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000de58 .quad -3087243809672255804 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000de60 .quad -3023256937051093263 - 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000de68 .quad -8470740780517707659 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000de70 .quad -8807064613298015146 - 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000de78 .quad -682526969396179382 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000de80 .quad -6397144748195131028 - 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000de88 .quad -5464844730172612132 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000de90 .quad -3384744916816525881 - 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000de98 .quad -2219369894288377261 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000dea0 .quad -9032994600651410532 - 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000dea8 .quad -1387106183930235788 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000deb0 .quad -6679557232386875260 - 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000deb8 .quad 2877803288514593169 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000dec0 .quad -3737760522056206171 - 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000dec8 .quad 3597254110643241461 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000ded0 .quad -60514634142869810 - 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000ded8 .quad 9108253656731439730 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000dee0 .quad -6955350673980375487 - 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000dee8 .quad 1080972517029761927 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000def0 .quad -4082502324048081455 - 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000def8 .quad 5962901664714590313 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000df00 .quad -491441886632713915 - 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000df08 .quad -6381430974388925821 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000df10 .quad -7224680206786528053 - 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000df18 .quad -8600080377420466542 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000df20 .quad -4419164240055772162 - 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000df28 .quad 7696643601933968438 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000df30 .quad -912269281642327298 - 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000df38 .quad 397432465562684740 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000df40 .quad -7487697328667536418 - 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000df48 .quad -4363290727450709941 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000df50 .quad -4747935642407032618 - 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000df58 .quad 8380944645968776285 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000df60 .quad -1323233534581402868 - 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000df68 .quad 1252808770606194548 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000df70 .quad -7744549986754458649 - 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000df78 .quad -8440366555225904215 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000df80 .quad -5069001465015685407 - 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000df88 .quad 7896285879677171347 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000df90 .quad -1724565812842218855 - 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000df98 .quad -3964700705685699528 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000dfa0 .quad -7995382660667468640 - 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000dfa8 .quad 2133748077373825699 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000dfb0 .quad -5382542307406947896 - 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000dfb8 .quad 2667185096717282124 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000dfc0 .quad -2116491865831296966 - 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000dfc8 .quad 3333981370896602654 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000dfd0 .quad -8240336443785642460 - 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000dfd8 .quad 6695424375237764563 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000dfe0 .quad -5688734536304665171 - 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000dfe8 .quad 8369280469047205704 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000dff0 .quad -2499232151953443560 - 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000dff8 .quad -3373457468973156582 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e000 .quad -8479549122611984081 - 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e008 .quad -9025939945749304720 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e010 .quad -5987750384837592197 - 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e018 .quad 7164319141522920716 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e020 .quad -2873001962619602342 - 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e028 .quad 4343712908476262991 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e030 .quad -8713155254278333320 - 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e038 .quad 7326506586225052274 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e040 .quad -6279758049420528746 - 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e048 .quad 9158133232781315342 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e050 .quad -3238011543348273028 - 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e058 .quad 2224294504121868369 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e060 .quad -8941286242233752499 - 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e068 .quad -7833187971778608077 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e070 .quad -6564921784364802720 - 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e078 .quad -568112927868484288 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e080 .quad -3594466212028615495 - 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e088 .quad 3901544858591782543 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e090 .quad -9164070410158966541 - 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e098 .quad -4479063491021217766 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e0a0 .quad -6843401994271320272 - 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e0a8 .quad -5598829363776522208 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e0b0 .quad -3942566474411762436 - 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e0b8 .quad -2386850686293264856 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e0c0 .quad -316522074587315140 - 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e0c8 .quad 1628122660560806834 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e0d0 .quad -7115355324258153819 - 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e0d8 .quad -8205795374004271537 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e0e0 .quad -4282508136895304370 - 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e0e8 .quad -1033872180650563613 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e0f0 .quad -741449152691742558 - 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e0f8 .quad -5904026244240592420 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e100 .quad -7380934748073420955 - 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e108 .quad -5995859411864064214 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e110 .quad -4614482416664388289 - 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e118 .quad 1728547772024695540 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e120 .quad -1156417002403097458 - 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e128 .quad -2451001303396518479 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e130 .quad -7640289654143017767 - 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e138 .quad 5385653213018257807 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e140 .quad -4938676049251384305 - 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e148 .quad -7102991539009341454 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e150 .quad -1561659043136842477 - 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e158 .quad -8878739423761676818 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e160 .quad -7893565929601608404 - 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e168 .quad 3674159897003727797 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e170 .quad -5255271393574622601 - 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e178 .quad 4592699871254659746 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e180 .quad -1957403223540890347 - 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e188 .quad 1129188820640936779 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e190 .quad -8140906042354138323 - 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e198 .quad 3011586022114279439 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e1a0 .quad -5564446534515285000 - 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e1a8 .quad 8376168546070237203 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e1b0 .quad -2343872149716718346 - 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e1b8 .quad -7976533391121755113 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e1c0 .quad -8382449121214030822 - 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e1c8 .quad 1932195658189984911 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e1d0 .quad -5866375383090150624 - 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e1d8 .quad -6808127464117294670 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e1e0 .quad -2721283210435300376 - 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e1e8 .quad -3898473311719230433 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e1f0 .quad -8618331034163144591 - 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e1f8 .quad 9092669226243950739 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e200 .quad -6161227774276542835 - 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e208 .quad -2469221522477225288 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e210 .quad -3089848699418290639 - 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e218 .quad 6136845133758244198 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e220 .quad -8848684464777513506 - 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e228 .quad -3082000819042179232 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e230 .quad -6449169562544503978 - 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e238 .quad -8464187042230111944 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e240 .quad -3449775934753242068 - 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e248 .quad 3254824252494523782 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e250 .quad -9073638986861858149 - 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e258 .quad -7189106879045698444 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e260 .quad -6730362715149934782 - 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e268 .quad -8986383598807123056 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e270 .quad -3801267375510030573 - 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e278 .quad 2602078556773259892 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e280 .quad -139898200960150313 - 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e288 .quad -1359087822460813039 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e290 .quad -7004965403241175802 - 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e298 .quad -849429889038008149 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e2a0 .quad -4144520735624081848 - 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e2a8 .quad -5673473379724898090 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e2b0 .quad -568964901102714406 - 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e2b8 .quad -2480155706228734709 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e2c0 .quad -7273132090830278360 - 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e2c8 .quad -3855940325606653145 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e2d0 .quad -4479729095110460046 - 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e2d8 .quad -208239388580928527 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e2e0 .quad -987975350460687153 - 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e2e8 .quad -4871985254153548563 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e2f0 .quad -7535013621679011327 - 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e2f8 .quad -3044990783845967852 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e300 .quad -4807081008671376254 - 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e308 .quad 5417133557047315993 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e310 .quad -1397165242411832414 - 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e318 .quad -2451955090545630817 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e320 .quad -7790757304148477115 - 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e328 .quad -3838314940804713212 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e330 .quad -5126760611758208489 - 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e338 .quad 4425478360848884292 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e340 .quad -1796764746270372707 - 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e348 .quad 920161932633717461 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e350 .quad -8040506994060064798 - 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e358 .quad 2880944217109767366 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e360 .quad -5438947724147693094 - 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e368 .quad -5622191765467566601 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e370 .quad -2186998636757228463 - 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e378 .quad 6807318348447705460 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e380 .quad -8284403175614349646 - 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e388 .quad -2662955059861265943 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e390 .quad -5743817951090549153 - 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e398 .quad -7940379843253970333 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e3a0 .quad -2568086420435798537 - 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e3a8 .quad 8521269269642088700 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e3b0 .quad -8522583040413455942 - 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e3b8 .quad -6203421752542164322 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e3c0 .quad -6041542782089432023 - 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e3c8 .quad 6080780864604458309 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e3d0 .quad -2940242459184402125 - 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e3d8 .quad -6234081974526590826 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e3e0 .quad -8755180564631333184 - 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e3e8 .quad 5327070802775656542 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e3f0 .quad -6332289687361778576 - 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e3f8 .quad 6658838503469570677 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e400 .quad -3303676090774835316 - 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e408 .quad 8323548129336963346 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e410 .quad -8982326584375353929 - 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e418 .quad -4021154456019173716 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e420 .quad -6616222212041804507 - 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e428 .quad -5026443070023967146 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e430 .quad -3658591746624867729 - 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e438 .quad 2940318199324816876 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e440 .quad -9204148869281624187 - 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e448 .quad 8755227902219092404 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e450 .quad -6893500068174642330 - 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e458 .quad -2891023177508298208 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e460 .quad -4005189066790915008 - 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e468 .quad -8225464990312760664 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e470 .quad -394800315061255856 - 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e478 .quad -5670145219463562926 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e480 .quad -7164279224554366766 - 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e488 .quad 7985374283903742932 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e490 .quad -4343663012265570553 - 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e498 .quad 758345818024902857 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e4a0 .quad -817892746904575288 - 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e4a8 .quad -3663753745896259333 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e4b0 .quad -7428711994456441411 - 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e4b8 .quad -9207375118826243939 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e4c0 .quad -4674203974643163860 - 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e4c8 .quad -2285846861678029116 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e4d0 .quad -1231068949876566920 - 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e4d8 .quad 1754377441329851509 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e4e0 .quad -7686947121313936181 - 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e4e8 .quad 1096485900831157193 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e4f0 .quad -4996997883215032323 - 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e4f8 .quad -3241078642388441413 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000e500 .quad -1634561335591402499 - 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000e508 .quad 5172023733869224042 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000e510 .quad -7939129862385708418 - 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000e518 .quad 5538357842881958978 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000e520 .quad -5312226309554747619 - 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000e528 .quad -2300424733252327085 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000e530 .quad -2028596868516046619 - 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000e538 .quad 6347841120289366951 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000e540 .quad -8185402070463610993 - 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000e548 .quad 6273243709394548297 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000e550 .quad -5620066569652125837 - 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000e558 .quad 3229868618315797467 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000e560 .quad -2413397193637769393 - 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000e568 .quad -574350245532641070 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000e570 .quad -8425902273664687727 - 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000e578 .quad -358968903457900669 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000e580 .quad -5920691823653471754 - 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000e588 .quad 8774660907532399972 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000e590 .quad -2789178761139451788 - 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000e598 .quad 1744954097560724157 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000e5a0 .quad -8660765753353239224 - 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000e5a8 .quad -8132775725879323210 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000e5b0 .quad -6214271173264161126 - 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000e5b8 .quad -5554283638921766109 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000e5c0 .quad -3156152948152813503 - 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000e5c8 .quad 6892203506629956076 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000e5d0 .quad -8890124620236590296 - 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000e5d8 .quad -2609901835997359308 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000e5e0 .quad -6500969756868349965 - 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000e5e8 .quad 1349308723430688769 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000e5f0 .quad -3514526177658049553 - 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000e5f8 .quad -2925050114139026943 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000e600 .quad -9114107888677362827 - 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000e608 .quad -1828156321336891839 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000e610 .quad -6780948842419315629 - 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000e618 .quad 6938176635183661009 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000e620 .quad -3864500034596756632 - 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000e628 .quad 4061034775552188357 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000e630 .quad -218939024818557886 - 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000e638 .quad 5076293469440235446 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000e640 .quad -7054365918152680535 - 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000e648 .quad 7784369436827535058 - //0x0000e650 .p2align 4, 0x00 - //0x0000e650 _VecShiftShuffles - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000e650 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000e660 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000e670 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000e680 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000e690 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6a0 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6b0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6c0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e6d0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - //0x0000e6e0 .p2align 4, 0x00 - //0x0000e6e0 __SingleQuoteTab - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6e0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000e6e8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6f0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000e6f8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e700 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000e708 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e710 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000e718 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e720 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000e728 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e730 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000e738 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e740 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000e748 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e750 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000e758 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e760 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000e768 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e770 .quad 2 - 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e778 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e780 .quad 2 - 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e788 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e790 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000e798 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7a0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000e7a8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7b0 .quad 2 - 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7b8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7c0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000e7c8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7d0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000e7d8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7e0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000e7e8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e7f0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000e7f8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e800 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000e808 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e810 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000e818 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e820 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000e828 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e830 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000e838 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e840 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000e848 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e850 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000e858 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e860 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000e868 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e870 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000e878 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e880 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000e888 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e890 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000e898 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8a0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000e8a8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8b0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000e8b8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8c0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000e8c8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8d0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000e8d8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e900 .quad 2 - 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e908 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ead0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 .quad 2 - 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000f6e0 .p2align 4, 0x00 - //0x0000f6e0 __DoubleQuoteTab - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000f6e8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000f6f8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000f708 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000f718 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000f728 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000f738 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000f748 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000f758 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000f768 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 .quad 3 - 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f778 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 .quad 3 - 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f788 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000f798 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000f7a8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 .quad 3 - 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000f7c8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000f7d8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000f7e8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000f7f8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000f808 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000f818 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000f828 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000f838 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000f848 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000f858 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000f868 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000f878 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000f888 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000f898 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000f8a8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000f8b8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000f8c8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000f8d8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 .quad 4 - 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000f908 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 .quad 4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x0000fca8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x000106e0 .p2align 4, 0x00 - //0x000106e0 __EscTab - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000106e0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000106f0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00010730 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001073d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001074d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001075d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001076d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001077d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001078d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001079d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, //0x000107dd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - //0x000107e0 .p2align 4, 0x00 - //0x000107e0 __UnquoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010800 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010840 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010850 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010856 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010866 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010876 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010886 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010896 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x000108e0 .p2align 4, 0x00 - //0x000108e0 __HtmlQuoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00010b48 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00010ca8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00010cc8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011368 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011378 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x000118e0 .p2align 4, 0x00 - //0x000118e0 _LSHIFT_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011948 .long 1 - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001194c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001195c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001196c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001197c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001198c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001199c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000119ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x000119b0 .long 1 - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011a14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011a18 .long 1 - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a1c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011a7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011a80 .long 2 - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a84 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011ae4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011ae8 .long 2 - 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aec QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011b4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011b50 .long 2 - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b54 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011bb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00011bb8 .long 3 - 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bbc QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011c1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00011c20 .long 3 - 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c24 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011c84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00011c88 .long 3 - 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c8c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011cec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00011cf0 .long 4 - 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011d54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00011d58 .long 4 - 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d5c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011dbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00011dc0 .long 4 - 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011e24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00011e28 .long 4 - 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e2c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011e8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00011e90 .long 5 - 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e94 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011ef4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00011ef8 .long 5 - 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011efc QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011f5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00011f60 .long 5 - 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00011f64 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011fc4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00011fc8 .long 6 - 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00011fcc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001200c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001201c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001202c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012030 .long 6 - 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012034 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012094 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012098 .long 6 - 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001209c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000120fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012100 .long 7 - 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012104 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012164 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012168 .long 7 - 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001216c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001217c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001218c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001219c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000121cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000121d0 .long 7 - 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000121d4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012234 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012238 .long 7 - 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001223c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001224c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001225c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001226c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001227c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001228c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001229c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x000122a0 .long 8 - 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x000122a4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122b4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012304 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012308 .long 8 - 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001230c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001231c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001232c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001233c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001234c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001235c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001236c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012370 .long 8 - 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012374 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012384 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000123d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000123d8 .long 9 - 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x000123dc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123ec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001240c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001241c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001242c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001243c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012440 .long 9 - 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012444 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012454 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000124a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000124a8 .long 9 - 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000124ac QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124bc QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001250c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012510 .long 10 - 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012514 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012524 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012554 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012574 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012578 .long 10 - 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x0001257c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001258c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001259c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000125dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x000125e0 .long 10 - 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x000125e4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125f4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012624 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012644 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012648 .long 10 - 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001264c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001265c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001266c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001267c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001268c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000126ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x000126b0 .long 11 - 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x000126b4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126c4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012714 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012718 .long 11 - 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001271c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001272c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001273c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001274c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001275c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001277c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012780 .long 11 - 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012784 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012794 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000127e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x000127e8 .long 12 - 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x000127ec QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127fc QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001280c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001281c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001282c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001284c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012850 .long 12 - 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012854 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012864 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012894 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000128b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x000128b8 .long 12 - 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x000128bc QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000128cc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001291c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012920 .long 13 - 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012924 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012934 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012984 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012988 .long 13 - 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0001298c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0001299c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000129ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x000129f0 .long 13 - 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x000129f4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012a04 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012a54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012a58 .long 13 - 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012a5c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012a6c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012abc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012ac0 .long 14 - 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012ac4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012ad4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012b28 .long 14 - 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00012b2c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00012b3c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012b90 .long 14 - 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00012b94 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00012ba4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bb4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012bf4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00012bf8 .long 15 - 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00012bfc QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00012c0c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c1c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00012c60 .long 15 - 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00012c64 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00012c74 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c84 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012cc4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00012cc8 .long 15 - 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00012ccc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00012cdc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00012d30 .long 16 - 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00012d34 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00012d44 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d54 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00012d98 .long 16 - 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00012d9c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00012dac QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dbc QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012dfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00012e00 .long 16 - 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00012e04 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00012e14 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e24 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00012e68 .long 16 - 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00012e6c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00012e7c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e8c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012ecc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00012ed0 .long 17 - 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00012ed4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00012ee4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ef4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00012f38 .long 17 - 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00012f3c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00012f4c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f5c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00012fa0 .long 17 - 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00012fa4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00012fb4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fc4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013004 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013008 .long 18 - 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001300c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001301c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001302c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001303c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001306c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013070 .long 18 - 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013074 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013084 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013094 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000130d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000130d8 .long 18 - 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000130dc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000130ec QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130fc QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001310c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001313c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x13, 0x00, 0x00, 0x00, //0x00013140 .long 19 - 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013144 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013154 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013164 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000131a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a8 .p2align 4, 0x00 - //0x000131b0 _P10_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000131b0 .quad 4607182418800017408 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000131b8 .quad 4621819117588971520 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000131c0 .quad 4636737291354636288 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000131c8 .quad 4652007308841189376 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000131d0 .quad 4666723172467343360 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000131d8 .quad 4681608360884174848 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000131e0 .quad 4696837146684686336 - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000131e8 .quad 4711630319722168320 - 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000131f0 .quad 4726483295884279808 - 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000131f8 .quad 4741671816366391296 - 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013200 .quad 4756540486875873280 - 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013208 .quad 4771362005757984768 - 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013210 .quad 4786511204640096256 - 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013218 .quad 4801453603149578240 - 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013220 .quad 4816244402031689728 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013228 .quad 4831355200913801216 - 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013230 .quad 4846369599423283200 - 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013238 .quad 4861130398305394688 - 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013240 .quad 4876203697187506176 - 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013248 .quad 4891288408196988160 - 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013250 .quad 4906019910204099648 - 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013258 .quad 4921056587992461136 - 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013260 .quad 4936209963552724370 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013268 .p2align 4, 0x00 - //0x00013270 _pow10_ceil_sig_f32.g - 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013270 .quad -9093133594791772939 - 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013278 .quad -6754730975062328270 - 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013280 .quad -3831727700400522433 - 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013288 .quad -177973607073265138 - 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013290 .quad -7028762532061872567 - 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013298 .quad -4174267146649952805 - 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x000132a0 .quad -606147914885053102 - 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x000132a8 .quad -7296371474444240045 - 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000132b0 .quad -4508778324627912152 - 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000132b8 .quad -1024286887357502286 - 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000132c0 .quad -7557708332239520785 - 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000132c8 .quad -4835449396872013077 - 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000132d0 .quad -1432625727662628442 - 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000132d8 .quad -7812920107430224632 - 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000132e0 .quad -5154464115860392886 - 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000132e8 .quad -1831394126398103204 - 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000132f0 .quad -8062150356639896358 - 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000132f8 .quad -5466001927372482544 - 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013300 .quad -2220816390788215276 - 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013308 .quad -8305539271883716404 - 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013310 .quad -5770238071427257601 - 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013318 .quad -2601111570856684097 - 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013320 .quad -8543223759426509416 - 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013328 .quad -6067343680855748867 - 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013330 .quad -2972493582642298179 - 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013338 .quad -8775337516792518218 - 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013340 .quad -6357485877563259868 - 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013348 .quad -3335171328526686932 - 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013350 .quad -9002011107970261188 - 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013358 .quad -6640827866535438581 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013360 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013368 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013370 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013378 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013380 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013388 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013390 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013398 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000133a0 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000133a8 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000133b0 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000133b8 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000133c0 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000133c8 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000133d0 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x000133d8 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x000133e0 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x000133e8 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000133f0 .quad -5646744073709551616 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000133f8 .quad -2446744073709551616 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013400 .quad -8446744073709551616 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013408 .quad -5946744073709551616 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013410 .quad -2821744073709551616 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013418 .quad -8681119073709551616 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013420 .quad -6239712823709551616 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013428 .quad -3187955011209551616 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013430 .quad -8910000909647051616 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013438 .quad -6525815118631426616 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013440 .quad -3545582879861895366 - 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013448 .quad -9133518327554766459 - 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013450 .quad -6805211891016070170 - 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013458 .quad -3894828845342699809 - 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013460 .quad -256850038250986857 - 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013468 .quad -7078060301547948642 - 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013470 .quad -4235889358507547898 - 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013478 .quad -683175679707046969 - 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013480 .quad -7344513827457986211 - 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013488 .quad -4568956265895094860 - 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013490 .quad -1099509313941480671 - 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013498 .quad -7604722348854507275 - 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000134a0 .quad -4894216917640746190 - 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000134a8 .quad -1506085128623544834 - 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000134b0 .quad -7858832233030797377 - 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000134b8 .quad -5211854272861108818 - 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000134c0 .quad -1903131822648998118 - 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000134c8 .quad -8106986416796705680 - 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000134d0 .quad -5522047002568494196 -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/quote.go b/vendor/github.com/bytedance/sonic/internal/native/avx/quote.go new file mode 100644 index 000000000..06a51fde1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/quote.go @@ -0,0 +1,35 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) +var F_quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + +var S_quote uintptr + +//go:nosplit +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return F_quote(rt.NoEscape(sp), nb, rt.NoEscape(dp), rt.NoEscape(unsafe.Pointer(dn)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/quote_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/quote_subr.go new file mode 100644 index 000000000..e9b6e90d2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/quote_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__quote = 48 +) + +const ( + _stack__quote = 56 +) + +const ( + _size__quote = 1696 +) + +var ( + _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}, + } +) + +var _cfunc_quote = []loader.CFunc{ + {"_quote_entry", 0, _entry__quote, 0, nil}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/quote_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/quote_text_amd64.go new file mode 100644 index 000000000..dd8098e7a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/quote_text_amd64.go @@ -0,0 +1,1085 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_quote = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000010 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 .p2align 4, 0x90 + //0x00000030 _quote + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x50, //0x0000003d pushq %rax + 0x49, 0x89, 0xcb, //0x0000003e movq %rcx, %r11 + 0x49, 0x89, 0xd4, //0x00000041 movq %rdx, %r12 + 0x48, 0x89, 0xf0, //0x00000044 movq %rsi, %rax + 0x4c, 0x8b, 0x31, //0x00000047 movq (%rcx), %r14 + 0x41, 0xf6, 0xc0, 0x01, //0x0000004a testb $1, %r8b + 0x48, 0x8d, 0x0d, 0x7b, 0x06, 0x00, 0x00, //0x0000004e leaq $1659(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x74, 0x16, 0x00, 0x00, //0x00000055 leaq $5748(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc1, //0x0000005c cmoveq %rcx, %r8 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00000060 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xce, //0x00000068 cmpq %rcx, %r14 + 0x0f, 0x8d, 0xe1, 0x03, 0x00, 0x00, //0x0000006b jge LBB0_51 + 0x4d, 0x89, 0xe7, //0x00000071 movq %r12, %r15 + 0x49, 0x89, 0xfa, //0x00000074 movq %rdi, %r10 + 0x48, 0x85, 0xc0, //0x00000077 testq %rax, %rax + 0x0f, 0x84, 0xc4, 0x03, 0x00, 0x00, //0x0000007a je LBB0_74 + 0xc5, 0xfa, 0x6f, 0x05, 0x78, 0xff, 0xff, 0xff, //0x00000080 vmovdqu $-136(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x80, 0xff, 0xff, 0xff, //0x00000088 vmovdqu $-128(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x88, 0xff, 0xff, 0xff, //0x00000090 vmovdqu $-120(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00000098 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x49, 0x89, 0xfa, //0x0000009c movq %rdi, %r10 + 0x4d, 0x89, 0xe7, //0x0000009f movq %r12, %r15 + 0x4c, 0x89, 0x65, 0xd0, //0x000000a2 movq %r12, $-48(%rbp) + //0x000000a6 LBB0_3 + 0x4c, 0x89, 0xda, //0x000000a6 movq %r11, %rdx + 0x48, 0x83, 0xf8, 0x0f, //0x000000a9 cmpq $15, %rax + 0x41, 0x0f, 0x9f, 0xc3, //0x000000ad setg %r11b + 0x4d, 0x89, 0xf1, //0x000000b1 movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x000000b4 movq %r15, %r13 + 0x48, 0x89, 0xc6, //0x000000b7 movq %rax, %rsi + 0x4d, 0x89, 0xd4, //0x000000ba movq %r10, %r12 + 0x49, 0x83, 0xfe, 0x10, //0x000000bd cmpq $16, %r14 + 0x0f, 0x8c, 0x89, 0x00, 0x00, 0x00, //0x000000c1 jl LBB0_9 + 0x48, 0x83, 0xf8, 0x10, //0x000000c7 cmpq $16, %rax + 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x000000cb jl LBB0_9 + 0x4d, 0x89, 0xd4, //0x000000d1 movq %r10, %r12 + 0x48, 0x89, 0xc6, //0x000000d4 movq %rax, %rsi + 0x4d, 0x89, 0xfd, //0x000000d7 movq %r15, %r13 + 0x4c, 0x89, 0xf3, //0x000000da movq %r14, %rbx + 0x90, 0x90, 0x90, //0x000000dd .p2align 4, 0x90 + //0x000000e0 LBB0_6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x000000e0 vmovdqu (%r12), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x000000e6 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000000ea vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x000000ee vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x000000f2 vpor %xmm6, %xmm7, %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x65, 0x00, //0x000000f6 vmovdqu %xmm4, (%r13) + 0xc5, 0xd9, 0x64, 0xe3, //0x000000fc vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe5, //0x00000100 vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x00000104 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x00000108 vpmovmskb %xmm4, %ecx + 0x66, 0x85, 0xc9, //0x0000010c testw %cx, %cx + 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x0000010f jne LBB0_19 + 0x49, 0x83, 0xc4, 0x10, //0x00000115 addq $16, %r12 + 0x49, 0x83, 0xc5, 0x10, //0x00000119 addq $16, %r13 + 0x4c, 0x8d, 0x4b, 0xf0, //0x0000011d leaq $-16(%rbx), %r9 + 0x48, 0x83, 0xfe, 0x1f, //0x00000121 cmpq $31, %rsi + 0x41, 0x0f, 0x9f, 0xc3, //0x00000125 setg %r11b + 0x48, 0x83, 0xfe, 0x20, //0x00000129 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x0000012d leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x19, 0x00, 0x00, 0x00, //0x00000131 jl LBB0_9 + 0x48, 0x83, 0xfb, 0x1f, //0x00000137 cmpq $31, %rbx + 0x4c, 0x89, 0xcb, //0x0000013b movq %r9, %rbx + 0x0f, 0x8f, 0x9c, 0xff, 0xff, 0xff, //0x0000013e jg LBB0_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000144 .p2align 4, 0x90 + //0x00000150 LBB0_9 + 0x45, 0x84, 0xdb, //0x00000150 testb %r11b, %r11b + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00000153 je LBB0_13 + 0xc4, 0xc1, 0x7a, 0x6f, 0x24, 0x24, //0x00000159 vmovdqu (%r12), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x0000015f vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00000163 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x00000167 vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x0000016b vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xd9, 0x64, 0xfb, //0x0000016f vpcmpgtb %xmm3, %xmm4, %xmm7 + 0xc5, 0xc1, 0xdb, 0xed, //0x00000173 vpand %xmm5, %xmm7, %xmm5 + 0xc5, 0xc9, 0xeb, 0xed, //0x00000177 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x0000017b vpmovmskb %xmm5, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000017f orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xd9, //0x00000185 bsfl %ecx, %r11d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe1, //0x00000189 vmovq %xmm4, %rcx + 0x4d, 0x39, 0xd9, //0x0000018e cmpq %r11, %r9 + 0x0f, 0x8d, 0xb0, 0x00, 0x00, 0x00, //0x00000191 jge LBB0_20 + 0x49, 0x83, 0xf9, 0x08, //0x00000197 cmpq $8, %r9 + 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x0000019b jb LBB0_23 + 0x49, 0x89, 0x4d, 0x00, //0x000001a1 movq %rcx, (%r13) + 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x000001a5 leaq $8(%r12), %r11 + 0x49, 0x83, 0xc5, 0x08, //0x000001aa addq $8, %r13 + 0x49, 0x8d, 0x71, 0xf8, //0x000001ae leaq $-8(%r9), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000001b2 cmpq $4, %rsi + 0x0f, 0x8d, 0xd0, 0x00, 0x00, 0x00, //0x000001b6 jge LBB0_24 + 0xe9, 0xde, 0x00, 0x00, 0x00, //0x000001bc jmp LBB0_25 + //0x000001c1 LBB0_13 + 0x4d, 0x85, 0xc9, //0x000001c1 testq %r9, %r9 + 0x49, 0x89, 0xd3, //0x000001c4 movq %rdx, %r11 + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x000001c7 jle LBB0_18 + 0x48, 0x85, 0xf6, //0x000001cd testq %rsi, %rsi + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x000001d0 jle LBB0_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001d6 .p2align 4, 0x90 + //0x000001e0 LBB0_15 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000001e0 movzbl (%r12), %ebx + 0x48, 0x89, 0xd9, //0x000001e5 movq %rbx, %rcx + 0x48, 0xc1, 0xe1, 0x04, //0x000001e8 shlq $4, %rcx + 0x48, 0x8d, 0x15, 0xdd, 0x04, 0x00, 0x00, //0x000001ec leaq $1245(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000001f3 cmpq $0, (%rcx,%rdx) + 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000001f8 jne LBB0_22 + 0x49, 0xff, 0xc4, //0x000001fe incq %r12 + 0x41, 0x88, 0x5d, 0x00, //0x00000201 movb %bl, (%r13) + 0x48, 0x83, 0xfe, 0x02, //0x00000205 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00000209 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x0000020d jl LBB0_18 + 0x49, 0xff, 0xc5, //0x00000213 incq %r13 + 0x49, 0x83, 0xf9, 0x01, //0x00000216 cmpq $1, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x0000021a leaq $-1(%r9), %r9 + 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x0000021e jg LBB0_15 + //0x00000224 LBB0_18 + 0x4d, 0x29, 0xd4, //0x00000224 subq %r10, %r12 + 0x48, 0xf7, 0xde, //0x00000227 negq %rsi + 0x4d, 0x19, 0xc9, //0x0000022a sbbq %r9, %r9 + 0x4d, 0x31, 0xe1, //0x0000022d xorq %r12, %r9 + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x00000230 jmp LBB0_36 + //0x00000235 LBB0_19 + 0x0f, 0xb7, 0xc9, //0x00000235 movzwl %cx, %ecx + 0x4d, 0x29, 0xd4, //0x00000238 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xc9, //0x0000023b bsfl %ecx, %r9d + 0x4d, 0x01, 0xe1, //0x0000023f addq %r12, %r9 + 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00000242 jmp LBB0_35 + //0x00000247 LBB0_20 + 0x41, 0x83, 0xfb, 0x08, //0x00000247 cmpl $8, %r11d + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000024b jb LBB0_29 + 0x49, 0x89, 0x4d, 0x00, //0x00000251 movq %rcx, (%r13) + 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00000255 leaq $8(%r12), %rbx + 0x49, 0x83, 0xc5, 0x08, //0x0000025a addq $8, %r13 + 0x49, 0x8d, 0x73, 0xf8, //0x0000025e leaq $-8(%r11), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00000262 cmpq $4, %rsi + 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00000266 jge LBB0_30 + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000026c jmp LBB0_31 + //0x00000271 LBB0_22 + 0x4d, 0x29, 0xd4, //0x00000271 subq %r10, %r12 + 0x4d, 0x89, 0xe1, //0x00000274 movq %r12, %r9 + 0xe9, 0xd7, 0x00, 0x00, 0x00, //0x00000277 jmp LBB0_36 + //0x0000027c LBB0_23 + 0x4d, 0x89, 0xe3, //0x0000027c movq %r12, %r11 + 0x4c, 0x89, 0xce, //0x0000027f movq %r9, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00000282 cmpq $4, %rsi + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00000286 jl LBB0_25 + //0x0000028c LBB0_24 + 0x41, 0x8b, 0x0b, //0x0000028c movl (%r11), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000028f movl %ecx, (%r13) + 0x49, 0x83, 0xc3, 0x04, //0x00000293 addq $4, %r11 + 0x49, 0x83, 0xc5, 0x04, //0x00000297 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x0000029b addq $-4, %rsi + //0x0000029f LBB0_25 + 0x48, 0x83, 0xfe, 0x02, //0x0000029f cmpq $2, %rsi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000002a3 jb LBB0_26 + 0x41, 0x0f, 0xb7, 0x0b, //0x000002a9 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000002ad movw %cx, (%r13) + 0x49, 0x83, 0xc3, 0x02, //0x000002b2 addq $2, %r11 + 0x49, 0x83, 0xc5, 0x02, //0x000002b6 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x000002ba addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x000002be testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000002c1 jne LBB0_27 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000002c7 jmp LBB0_28 + //0x000002cc LBB0_26 + 0x48, 0x85, 0xf6, //0x000002cc testq %rsi, %rsi + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000002cf je LBB0_28 + //0x000002d5 LBB0_27 + 0x41, 0x8a, 0x0b, //0x000002d5 movb (%r11), %cl + 0x41, 0x88, 0x4d, 0x00, //0x000002d8 movb %cl, (%r13) + //0x000002dc LBB0_28 + 0x4d, 0x29, 0xd1, //0x000002dc subq %r10, %r9 + 0x4d, 0x01, 0xe1, //0x000002df addq %r12, %r9 + 0x49, 0xf7, 0xd1, //0x000002e2 notq %r9 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000002e5 jmp LBB0_35 + //0x000002ea LBB0_29 + 0x4c, 0x89, 0xe3, //0x000002ea movq %r12, %rbx + 0x4c, 0x89, 0xde, //0x000002ed movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000002f0 cmpq $4, %rsi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000002f4 jl LBB0_31 + //0x000002fa LBB0_30 + 0x8b, 0x0b, //0x000002fa movl (%rbx), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x000002fc movl %ecx, (%r13) + 0x48, 0x83, 0xc3, 0x04, //0x00000300 addq $4, %rbx + 0x49, 0x83, 0xc5, 0x04, //0x00000304 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x00000308 addq $-4, %rsi + //0x0000030c LBB0_31 + 0x48, 0x83, 0xfe, 0x02, //0x0000030c cmpq $2, %rsi + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000310 jb LBB0_32 + 0x0f, 0xb7, 0x0b, //0x00000316 movzwl (%rbx), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x00000319 movw %cx, (%r13) + 0x48, 0x83, 0xc3, 0x02, //0x0000031e addq $2, %rbx + 0x49, 0x83, 0xc5, 0x02, //0x00000322 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x00000326 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000032a testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000032d jne LBB0_33 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00000333 jmp LBB0_34 + //0x00000338 LBB0_32 + 0x48, 0x85, 0xf6, //0x00000338 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000033b je LBB0_34 + //0x00000341 LBB0_33 + 0x8a, 0x0b, //0x00000341 movb (%rbx), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00000343 movb %cl, (%r13) + //0x00000347 LBB0_34 + 0x4d, 0x29, 0xd4, //0x00000347 subq %r10, %r12 + 0x4d, 0x01, 0xdc, //0x0000034a addq %r11, %r12 + 0x4d, 0x89, 0xe1, //0x0000034d movq %r12, %r9 + //0x00000350 LBB0_35 + 0x49, 0x89, 0xd3, //0x00000350 movq %rdx, %r11 + //0x00000353 LBB0_36 + 0x4d, 0x85, 0xc9, //0x00000353 testq %r9, %r9 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000356 movq $-48(%rbp), %r12 + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000035a movabsq $12884901889, %r13 + 0x0f, 0x88, 0x46, 0x03, 0x00, 0x00, //0x00000364 js LBB0_78 + 0x4d, 0x01, 0xca, //0x0000036a addq %r9, %r10 + 0x4d, 0x01, 0xcf, //0x0000036d addq %r9, %r15 + 0x4c, 0x39, 0xc8, //0x00000370 cmpq %r9, %rax + 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x00000373 je LBB0_74 + 0x4d, 0x29, 0xce, //0x00000379 subq %r9, %r14 + 0x49, 0x29, 0xc1, //0x0000037c subq %rax, %r9 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x0000037f jmp LBB0_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000384 .p2align 4, 0x90 + //0x00000390 LBB0_39 + 0x49, 0xff, 0xc2, //0x00000390 incq %r10 + 0x49, 0x01, 0xc7, //0x00000393 addq %rax, %r15 + 0x49, 0xff, 0xc1, //0x00000396 incq %r9 + 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00000399 je LBB0_74 + //0x0000039f LBB0_40 + 0x41, 0x0f, 0xb6, 0x0a, //0x0000039f movzbl (%r10), %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000003a3 shlq $4, %rcx + 0x49, 0x8b, 0x1c, 0x08, //0x000003a7 movq (%r8,%rcx), %rbx + 0x85, 0xdb, //0x000003ab testl %ebx, %ebx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x000003ad je LBB0_48 + 0x48, 0x63, 0xc3, //0x000003b3 movslq %ebx, %rax + 0x49, 0x29, 0xc6, //0x000003b6 subq %rax, %r14 + 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x000003b9 jl LBB0_75 + 0x48, 0xc1, 0xe3, 0x20, //0x000003bf shlq $32, %rbx + 0x49, 0x8d, 0x74, 0x08, 0x08, //0x000003c3 leaq $8(%r8,%rcx), %rsi + 0x4c, 0x39, 0xeb, //0x000003c8 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x000003cb jl LBB0_44 + 0x8b, 0x36, //0x000003d1 movl (%rsi), %esi + 0x41, 0x89, 0x37, //0x000003d3 movl %esi, (%r15) + 0x49, 0x8d, 0x74, 0x08, 0x0c, //0x000003d6 leaq $12(%r8,%rcx), %rsi + 0x49, 0x8d, 0x5f, 0x04, //0x000003db leaq $4(%r15), %rbx + 0x48, 0x8d, 0x48, 0xfc, //0x000003df leaq $-4(%rax), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000003e3 cmpq $2, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000003e7 jae LBB0_45 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000003ed jmp LBB0_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003f2 .p2align 4, 0x90 + //0x00000400 LBB0_44 + 0x4c, 0x89, 0xfb, //0x00000400 movq %r15, %rbx + 0x48, 0x89, 0xc1, //0x00000403 movq %rax, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00000406 cmpq $2, %rcx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000040a jb LBB0_46 + //0x00000410 LBB0_45 + 0x0f, 0xb7, 0x16, //0x00000410 movzwl (%rsi), %edx + 0x66, 0x89, 0x13, //0x00000413 movw %dx, (%rbx) + 0x48, 0x83, 0xc6, 0x02, //0x00000416 addq $2, %rsi + 0x48, 0x83, 0xc3, 0x02, //0x0000041a addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000041e addq $-2, %rcx + //0x00000422 LBB0_46 + 0x48, 0x85, 0xc9, //0x00000422 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x00000425 je LBB0_39 + 0x0f, 0xb6, 0x0e, //0x0000042b movzbl (%rsi), %ecx + 0x88, 0x0b, //0x0000042e movb %cl, (%rbx) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00000430 jmp LBB0_39 + //0x00000435 LBB0_48 + 0x4c, 0x89, 0xc8, //0x00000435 movq %r9, %rax + 0x48, 0xf7, 0xd8, //0x00000438 negq %rax + 0x4d, 0x85, 0xc9, //0x0000043b testq %r9, %r9 + 0x0f, 0x85, 0x62, 0xfc, 0xff, 0xff, //0x0000043e jne LBB0_3 + //0x00000444 LBB0_74 + 0x4d, 0x29, 0xe7, //0x00000444 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00000447 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000044a subq %rdi, %r10 + 0xe9, 0x4c, 0x02, 0x00, 0x00, //0x0000044d jmp LBB0_76 + //0x00000452 LBB0_51 + 0x4c, 0x8d, 0x0d, 0x77, 0x22, 0x00, 0x00, //0x00000452 leaq $8823(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x05, 0x9f, 0xfb, 0xff, 0xff, //0x00000459 vmovdqu $-1121(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xa7, 0xfb, 0xff, 0xff, //0x00000461 vmovdqu $-1113(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00000469 vmovdqu $-1105(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00000471 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x4c, 0x89, 0xe3, //0x00000475 movq %r12, %rbx + 0x49, 0x89, 0xc2, //0x00000478 movq %rax, %r10 + //0x0000047b LBB0_52 + 0x49, 0x83, 0xfa, 0x10, //0x0000047b cmpq $16, %r10 + 0x0f, 0x8c, 0x5e, 0x00, 0x00, 0x00, //0x0000047f jl LBB0_57 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000485 movl $16, %ecx + 0x31, 0xf6, //0x0000048a xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x0000048c .p2align 4, 0x90 + //0x00000490 LBB0_54 + 0xc5, 0xfa, 0x6f, 0x24, 0x37, //0x00000490 vmovdqu (%rdi,%rsi), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x00000495 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00000499 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x0000049d vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x000004a1 vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xfa, 0x7f, 0x24, 0x33, //0x000004a5 vmovdqu %xmm4, (%rbx,%rsi) + 0xc5, 0xd9, 0x64, 0xe3, //0x000004aa vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000004ae vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x000004b2 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xd4, //0x000004b6 vpmovmskb %xmm4, %edx + 0x66, 0x85, 0xd2, //0x000004ba testw %dx, %dx + 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x000004bd jne LBB0_67 + 0x48, 0x83, 0xc6, 0x10, //0x000004c3 addq $16, %rsi + 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x000004c7 leaq $-16(%r10,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x000004cc addq $-16, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x000004d0 cmpq $31, %rdx + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x000004d4 jg LBB0_54 + 0x48, 0x01, 0xf7, //0x000004da addq %rsi, %rdi + 0x49, 0x29, 0xf2, //0x000004dd subq %rsi, %r10 + 0x48, 0x01, 0xf3, //0x000004e0 addq %rsi, %rbx + //0x000004e3 LBB0_57 + 0x49, 0x83, 0xfa, 0x08, //0x000004e3 cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000004e7 jl LBB0_61 + 0x0f, 0xb6, 0x0f, //0x000004ed movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000004f0 movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x000004f5 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000004f9 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x000004fe addl %edx, %edx + 0x09, 0xca, //0x00000500 orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x00000502 movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00000506 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000050b shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x0000050e movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00000512 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00000517 shll $3, %ecx + 0x09, 0xf1, //0x0000051a orl %esi, %ecx + 0x09, 0xd1, //0x0000051c orl %edx, %ecx + 0x48, 0x8b, 0x17, //0x0000051e movq (%rdi), %rdx + 0x48, 0x89, 0x13, //0x00000521 movq %rdx, (%rbx) + 0x84, 0xc9, //0x00000524 testb %cl, %cl + 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x00000526 jne LBB0_71 + 0x0f, 0xb6, 0x4f, 0x04, //0x0000052c movzbl $4(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00000530 movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00000535 movzbl $5(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00000539 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000053e addl %edx, %edx + 0x09, 0xca, //0x00000540 orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x06, //0x00000542 movzbl $6(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00000546 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000054b shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x07, //0x0000054e movzbl $7(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00000552 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00000557 shll $3, %ecx + 0x09, 0xf1, //0x0000055a orl %esi, %ecx + 0x09, 0xd1, //0x0000055c orl %edx, %ecx + 0x84, 0xc9, //0x0000055e testb %cl, %cl + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00000560 jne LBB0_72 + 0x48, 0x83, 0xc3, 0x08, //0x00000566 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x0000056a addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x0000056e addq $-8, %r10 + //0x00000572 LBB0_61 + 0x49, 0x83, 0xfa, 0x04, //0x00000572 cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00000576 jl LBB0_64 + 0x0f, 0xb6, 0x0f, //0x0000057c movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000057f movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00000584 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00000588 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000058d addl %edx, %edx + 0x09, 0xca, //0x0000058f orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x00000591 movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00000595 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x0000059a shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x0000059d movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000005a1 movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x000005a6 shll $3, %ecx + 0x09, 0xf1, //0x000005a9 orl %esi, %ecx + 0x09, 0xd1, //0x000005ab orl %edx, %ecx + 0x8b, 0x17, //0x000005ad movl (%rdi), %edx + 0x89, 0x13, //0x000005af movl %edx, (%rbx) + 0x84, 0xc9, //0x000005b1 testb %cl, %cl + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x000005b3 jne LBB0_71 + 0x48, 0x83, 0xc3, 0x04, //0x000005b9 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x000005bd addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x000005c1 addq $-4, %r10 + //0x000005c5 LBB0_64 + 0x4d, 0x85, 0xd2, //0x000005c5 testq %r10, %r10 + 0x0f, 0x8e, 0xb9, 0x00, 0x00, 0x00, //0x000005c8 jle LBB0_73 + 0x90, 0x90, //0x000005ce .p2align 4, 0x90 + //0x000005d0 LBB0_65 + 0x0f, 0xb6, 0x0f, //0x000005d0 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000005d3 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000005d8 jne LBB0_68 + 0x48, 0xff, 0xc7, //0x000005de incq %rdi + 0x88, 0x0b, //0x000005e1 movb %cl, (%rbx) + 0x48, 0xff, 0xc3, //0x000005e3 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x000005e6 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x000005ea leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000005ee jg LBB0_65 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000005f4 jmp LBB0_73 + //0x000005f9 LBB0_67 + 0x0f, 0xb7, 0xca, //0x000005f9 movzwl %dx, %ecx + 0x0f, 0xbc, 0xc9, //0x000005fc bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x000005ff addq %rcx, %rdi + 0x48, 0x01, 0xf7, //0x00000602 addq %rsi, %rdi + 0x49, 0x29, 0xca, //0x00000605 subq %rcx, %r10 + 0x49, 0x29, 0xf2, //0x00000608 subq %rsi, %r10 + 0x48, 0x01, 0xcb, //0x0000060b addq %rcx, %rbx + 0x48, 0x01, 0xf3, //0x0000060e addq %rsi, %rbx + //0x00000611 LBB0_68 + 0x8a, 0x0f, //0x00000611 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000613 .p2align 4, 0x90 + //0x00000620 LBB0_69 + 0x48, 0x89, 0xda, //0x00000620 movq %rbx, %rdx + 0x0f, 0xb6, 0xc9, //0x00000623 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00000626 shlq $4, %rcx + 0x49, 0x63, 0x1c, 0x08, //0x0000062a movslq (%r8,%rcx), %rbx + 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x0000062e movq $8(%r8,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00000633 movq %rcx, (%rdx) + 0x48, 0x01, 0xd3, //0x00000636 addq %rdx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00000639 cmpq $2, %r10 + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000063d jl LBB0_73 + 0x49, 0xff, 0xca, //0x00000643 decq %r10 + 0x0f, 0xb6, 0x4f, 0x01, //0x00000646 movzbl $1(%rdi), %ecx + 0x48, 0xff, 0xc7, //0x0000064a incq %rdi + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000064d cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00000652 jne LBB0_69 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x00000658 jmp LBB0_52 + //0x0000065d LBB0_71 + 0x0f, 0xbc, 0xc9, //0x0000065d bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00000660 addq %rcx, %rdi + 0x49, 0x29, 0xca, //0x00000663 subq %rcx, %r10 + 0x48, 0x01, 0xcb, //0x00000666 addq %rcx, %rbx + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00000669 jmp LBB0_68 + //0x0000066e LBB0_72 + 0x0f, 0xbc, 0xc9, //0x0000066e bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00000671 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00000675 leaq $4(%rdi,%rcx), %rdi + 0x49, 0x29, 0xd2, //0x0000067a subq %rdx, %r10 + 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000067d leaq $4(%rbx,%rcx), %rbx + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00000682 jmp LBB0_68 + //0x00000687 LBB0_73 + 0x4c, 0x29, 0xe3, //0x00000687 subq %r12, %rbx + 0x49, 0x89, 0x1b, //0x0000068a movq %rbx, (%r11) + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000068d jmp LBB0_77 + //0x00000692 LBB0_75 + 0x4d, 0x29, 0xe7, //0x00000692 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00000695 movq %r15, (%r11) + 0x49, 0xf7, 0xd2, //0x00000698 notq %r10 + 0x49, 0x01, 0xfa, //0x0000069b addq %rdi, %r10 + //0x0000069e LBB0_76 + 0x4c, 0x89, 0xd0, //0x0000069e movq %r10, %rax + //0x000006a1 LBB0_77 + 0x48, 0x83, 0xc4, 0x08, //0x000006a1 addq $8, %rsp + 0x5b, //0x000006a5 popq %rbx + 0x41, 0x5c, //0x000006a6 popq %r12 + 0x41, 0x5d, //0x000006a8 popq %r13 + 0x41, 0x5e, //0x000006aa popq %r14 + 0x41, 0x5f, //0x000006ac popq %r15 + 0x5d, //0x000006ae popq %rbp + 0xc3, //0x000006af retq + //0x000006b0 LBB0_78 + 0x4d, 0x29, 0xe7, //0x000006b0 subq %r12, %r15 + 0x49, 0xf7, 0xd1, //0x000006b3 notq %r9 + 0x4d, 0x01, 0xcf, //0x000006b6 addq %r9, %r15 + 0x4d, 0x89, 0x3b, //0x000006b9 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x000006bc subq %rdi, %r10 + 0x4d, 0x01, 0xca, //0x000006bf addq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x000006c2 notq %r10 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000006c5 jmp LBB0_76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006ca .p2align 4, 0x00 + //0x000006d0 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x000006d8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x000006e8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x000006f8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000700 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x00000708 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000710 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x00000718 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000720 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x00000728 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000730 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x00000738 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000740 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x00000748 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000750 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x00000758 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000760 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000768 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000770 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000778 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000780 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x00000788 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000790 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x00000798 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007a0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007a8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x000007b8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x000007c8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x000007d8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x000007e8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x000007f8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000800 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x00000808 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000810 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x00000818 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000820 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x00000828 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000830 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x00000838 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000840 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x00000848 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000850 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x00000858 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000860 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x00000868 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000870 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x00000878 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000880 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x00000888 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000890 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x00000898 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x000008a8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x000008b8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x000008c8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f8 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c90 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c98 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000016d0 .p2align 4, 0x00 + //0x000016d0 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x000016d8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x000016e8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x000016f8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001700 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00001708 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001710 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00001718 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001720 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00001728 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001730 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00001738 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001740 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x00001748 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001750 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x00001758 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001760 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001768 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001770 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001778 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001780 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x00001788 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001790 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x00001798 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017a0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017a8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x000017b8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x000017c8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x000017d8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x000017e8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x000017f8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001800 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00001808 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001810 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00001818 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001820 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00001828 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001830 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00001838 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001840 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x00001848 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001850 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x00001858 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001860 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x00001868 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001870 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x00001878 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001880 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x00001888 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001890 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x00001898 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x000018a8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x000018b8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x000018c8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018f0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x000018f8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c90 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00001c98 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000026d0 .p2align 4, 0x00 + //0x000026d0 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000026d0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000026e0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026f0 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00002720 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000272d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000273d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000274d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000275d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000276d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000277d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000278d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000279d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x000027cd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array.go new file mode 100644 index 000000000..5099458cd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_array uintptr + +//go:nosplit +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_subr.go new file mode 100644 index 000000000..388028257 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_array = 160 +) + +const ( + _stack__skip_array = 152 +) + +const ( + _size__skip_array = 9524 +) + +var ( + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {8962, 152}, + {8966, 48}, + {8967, 40}, + {8969, 32}, + {8971, 24}, + {8973, 16}, + {8975, 8}, + {8976, 0}, + {9524, 152}, + } +) + +var _cfunc_skip_array = []loader.CFunc{ + {"_skip_array_entry", 0, _entry__skip_array, 0, nil}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_text_amd64.go new file mode 100644 index 000000000..2fb5d8238 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_array_text_amd64.go @@ -0,0 +1,2854 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_skip_array = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 5 + //0x00000010 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000030 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000040 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000040 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000050 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000050 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000060 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000060 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000070 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000070 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000080 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000080 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000090 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000090 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000a0 .p2align 4, 0x90 + //0x000000a0 _skip_array + 0x55, //0x000000a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp + 0x41, 0x57, //0x000000a4 pushq %r15 + 0x41, 0x56, //0x000000a6 pushq %r14 + 0x41, 0x55, //0x000000a8 pushq %r13 + 0x41, 0x54, //0x000000aa pushq %r12 + 0x53, //0x000000ac pushq %rbx + 0x48, 0x83, 0xec, 0x68, //0x000000ad subq $104, %rsp + 0x48, 0x89, 0x4d, 0x80, //0x000000b1 movq %rcx, $-128(%rbp) + 0x49, 0x89, 0xd1, //0x000000b5 movq %rdx, %r9 + 0xc5, 0xf8, 0x10, 0x05, 0x40, 0xff, 0xff, 0xff, //0x000000b8 vmovups $-192(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x02, //0x000000c0 vmovups %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x90, //0x000000c4 movq %rdi, $-112(%rbp) + 0x4c, 0x8b, 0x27, //0x000000c8 movq (%rdi), %r12 + 0x4c, 0x89, 0xe0, //0x000000cb movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x000000ce notq %rax + 0x48, 0x89, 0x45, 0xa0, //0x000000d1 movq %rax, $-96(%rbp) + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000000d5 movl $1, %r10d + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000db movl $1, %eax + 0x4c, 0x29, 0xe0, //0x000000e0 subq %r12, %rax + 0x48, 0x89, 0x45, 0x98, //0x000000e3 movq %rax, $-104(%rbp) + 0x49, 0x8d, 0x44, 0x24, 0x40, //0x000000e7 leaq $64(%r12), %rax + 0x48, 0x89, 0x45, 0x88, //0x000000ec movq %rax, $-120(%rbp) + 0x4c, 0x8b, 0x1e, //0x000000f0 movq (%rsi), %r11 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x000000f3 leaq $5(%r12), %rax + 0x48, 0x89, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000000f8 movq %rax, $-144(%rbp) + 0x48, 0xc7, 0x85, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x000000ff movq $-1, $-136(%rbp) + 0xc5, 0xfa, 0x6f, 0x05, 0xfe, 0xfe, 0xff, 0xff, //0x0000010a vmovdqu $-258(%rip), %xmm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x06, 0xff, 0xff, 0xff, //0x00000112 vmovdqu $-250(%rip), %xmm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0x0e, 0xff, 0xff, 0xff, //0x0000011a vmovdqu $-242(%rip), %xmm15 /* LCPI0_3+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00000122 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0xc5, 0x7a, 0x6f, 0x05, 0x12, 0xff, 0xff, 0xff, //0x00000126 vmovdqu $-238(%rip), %xmm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x1a, 0xff, 0xff, 0xff, //0x0000012e vmovdqu $-230(%rip), %xmm9 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x22, 0xff, 0xff, 0xff, //0x00000136 vmovdqu $-222(%rip), %xmm10 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0x2a, 0xff, 0xff, 0xff, //0x0000013e vmovdqu $-214(%rip), %xmm11 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x25, 0xe2, 0xfe, 0xff, 0xff, //0x00000146 vmovdqu $-286(%rip), %xmm12 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x2d, 0x2a, 0xff, 0xff, 0xff, //0x0000014e vmovdqu $-214(%rip), %xmm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x35, 0x32, 0xff, 0xff, 0xff, //0x00000156 vmovdqu $-206(%rip), %xmm14 /* LCPI0_9+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000015e movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x65, 0xd0, //0x00000162 movq %r12, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc0, //0x00000166 movq %rdx, $-64(%rbp) + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x0000016a jmp LBB0_4 + //0x0000016f LBB0_257 + 0x48, 0x85, 0xc0, //0x0000016f testq %rax, %rax + 0x49, 0x8d, 0x45, 0xff, //0x00000172 leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x00000176 notq %r13 + 0x4c, 0x0f, 0x48, 0xe9, //0x00000179 cmovsq %rcx, %r13 + 0x49, 0x39, 0xc3, //0x0000017d cmpq %rax, %r11 + 0x49, 0x89, 0xcb, //0x00000180 movq %rcx, %r11 + 0x4d, 0x0f, 0x44, 0xdd, //0x00000183 cmoveq %r13, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000187 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x0000018b testq %r11, %r11 + 0x0f, 0x88, 0xfb, 0x21, 0x00, 0x00, //0x0000018e js LBB0_419 + //0x00000194 LBB0_258 + 0x4d, 0x01, 0xfb, //0x00000194 addq %r15, %r11 + //0x00000197 LBB0_1 + 0x4c, 0x89, 0x1e, //0x00000197 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000019a movq %r15, %rax + 0x4d, 0x85, 0xff, //0x0000019d testq %r15, %r15 + 0x0f, 0x88, 0xfc, 0x21, 0x00, 0x00, //0x000001a0 js LBB0_423 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001a6 .p2align 4, 0x90 + //0x000001b0 LBB0_2 + 0x49, 0x8b, 0x11, //0x000001b0 movq (%r9), %rdx + 0x49, 0x89, 0xd2, //0x000001b3 movq %rdx, %r10 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000001b6 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000001bd testq %rdx, %rdx + 0x0f, 0x84, 0xdc, 0x21, 0x00, 0x00, //0x000001c0 je LBB0_423 + //0x000001c6 LBB0_4 + 0x48, 0x8b, 0x45, 0x90, //0x000001c6 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x000001ca movq $8(%rax), %rax + 0x4c, 0x89, 0xdb, //0x000001ce movq %r11, %rbx + 0x48, 0x29, 0xc3, //0x000001d1 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000001d4 jae LBB0_9 + 0x43, 0x8a, 0x14, 0x1c, //0x000001da movb (%r12,%r11), %dl + 0x80, 0xfa, 0x0d, //0x000001de cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001e1 je LBB0_9 + 0x80, 0xfa, 0x20, //0x000001e7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001ea je LBB0_9 + 0x80, 0xc2, 0xf7, //0x000001f0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001f3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001f6 jbe LBB0_9 + 0x4d, 0x89, 0xdf, //0x000001fc movq %r11, %r15 + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x000001ff jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000204 .p2align 4, 0x90 + //0x00000210 LBB0_9 + 0x4d, 0x8d, 0x7b, 0x01, //0x00000210 leaq $1(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000214 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000217 jae LBB0_13 + 0x43, 0x8a, 0x14, 0x3c, //0x0000021d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000221 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000224 je LBB0_13 + 0x80, 0xfa, 0x20, //0x0000022a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000022d je LBB0_13 + 0x80, 0xc2, 0xf7, //0x00000233 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000236 cmpb $1, %dl + 0x0f, 0x87, 0xfe, 0x00, 0x00, 0x00, //0x00000239 ja LBB0_30 + 0x90, //0x0000023f .p2align 4, 0x90 + //0x00000240 LBB0_13 + 0x4d, 0x8d, 0x7b, 0x02, //0x00000240 leaq $2(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000244 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000247 jae LBB0_17 + 0x43, 0x8a, 0x14, 0x3c, //0x0000024d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000251 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000254 je LBB0_17 + 0x80, 0xfa, 0x20, //0x0000025a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000025d je LBB0_17 + 0x80, 0xc2, 0xf7, //0x00000263 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000266 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000269 ja LBB0_30 + 0x90, //0x0000026f .p2align 4, 0x90 + //0x00000270 LBB0_17 + 0x4d, 0x8d, 0x7b, 0x03, //0x00000270 leaq $3(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000274 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000277 jae LBB0_21 + 0x43, 0x8a, 0x14, 0x3c, //0x0000027d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000281 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000284 je LBB0_21 + 0x80, 0xfa, 0x20, //0x0000028a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000028d je LBB0_21 + 0x80, 0xc2, 0xf7, //0x00000293 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000296 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000299 ja LBB0_30 + 0x90, //0x0000029f .p2align 4, 0x90 + //0x000002a0 LBB0_21 + 0x49, 0x8d, 0x53, 0x04, //0x000002a0 leaq $4(%r11), %rdx + 0x48, 0x39, 0xd0, //0x000002a4 cmpq %rdx, %rax + 0x0f, 0x86, 0xa1, 0x20, 0x00, 0x00, //0x000002a7 jbe LBB0_413 + 0x48, 0x39, 0xd0, //0x000002ad cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000002b0 je LBB0_27 + 0x49, 0x8d, 0x14, 0x04, //0x000002b6 leaq (%r12,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x000002ba addq $4, %rbx + 0x4c, 0x03, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x000002be addq $-144(%rbp), %r11 + 0x4d, 0x89, 0xdf, //0x000002c5 movq %r11, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002c8 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d2 .p2align 4, 0x90 + //0x000002e0 LBB0_24 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002e0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002e5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002e8 ja LBB0_29 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002ee btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002f2 jae LBB0_29 + 0x49, 0xff, 0xc7, //0x000002f8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002fb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002fe jne LBB0_24 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000304 jmp LBB0_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000309 .p2align 4, 0x90 + //0x00000310 LBB0_27 + 0x4c, 0x01, 0xe2, //0x00000310 addq %r12, %rdx + //0x00000313 LBB0_28 + 0x4c, 0x29, 0xe2, //0x00000313 subq %r12, %rdx + 0x49, 0x89, 0xd7, //0x00000316 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00000319 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000031c jb LBB0_30 + 0xe9, 0x2a, 0x20, 0x00, 0x00, //0x00000322 jmp LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000327 .p2align 4, 0x90 + //0x00000330 LBB0_29 + 0x4c, 0x03, 0x7d, 0xa0, //0x00000330 addq $-96(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x00000334 cmpq %rax, %r15 + 0x0f, 0x83, 0x14, 0x20, 0x00, 0x00, //0x00000337 jae LBB0_414 + //0x0000033d LBB0_30 + 0x4d, 0x8d, 0x5f, 0x01, //0x0000033d leaq $1(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00000341 movq %r11, (%rsi) + 0x43, 0x0f, 0xbe, 0x1c, 0x3c, //0x00000344 movsbl (%r12,%r15), %ebx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000349 movq $-1, %rax + 0x85, 0xdb, //0x00000350 testl %ebx, %ebx + 0x0f, 0x84, 0x4a, 0x20, 0x00, 0x00, //0x00000352 je LBB0_423 + 0x4d, 0x89, 0xf8, //0x00000358 movq %r15, %r8 + 0x49, 0xf7, 0xd0, //0x0000035b notq %r8 + 0x49, 0x8d, 0x52, 0xff, //0x0000035e leaq $-1(%r10), %rdx + 0x43, 0x8b, 0x3c, 0xd1, //0x00000362 movl (%r9,%r10,8), %edi + 0x48, 0x8b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000366 movq $-136(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x0000036d cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x00000371 cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000375 movq %rcx, $-136(%rbp) + 0xff, 0xcf, //0x0000037c decl %edi + 0x83, 0xff, 0x05, //0x0000037e cmpl $5, %edi + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00000381 ja LBB0_36 + 0x48, 0x8d, 0x0d, 0x46, 0x22, 0x00, 0x00, //0x00000387 leaq $8774(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xb9, //0x0000038e movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x00000392 addq %rcx, %rdi + 0xff, 0xe7, //0x00000395 jmpq *%rdi + //0x00000397 LBB0_33 + 0x83, 0xfb, 0x2c, //0x00000397 cmpl $44, %ebx + 0x0f, 0x84, 0xb6, 0x04, 0x00, 0x00, //0x0000039a je LBB0_100 + 0x83, 0xfb, 0x5d, //0x000003a0 cmpl $93, %ebx + 0x0f, 0x84, 0x92, 0x04, 0x00, 0x00, //0x000003a3 je LBB0_35 + 0xe9, 0xed, 0x1f, 0x00, 0x00, //0x000003a9 jmp LBB0_422 + //0x000003ae LBB0_36 + 0x49, 0x89, 0x11, //0x000003ae movq %rdx, (%r9) + 0x83, 0xfb, 0x7b, //0x000003b1 cmpl $123, %ebx + 0x0f, 0x86, 0x19, 0x02, 0x00, 0x00, //0x000003b4 jbe LBB0_63 + 0xe9, 0xdc, 0x1f, 0x00, 0x00, //0x000003ba jmp LBB0_422 + //0x000003bf LBB0_37 + 0x83, 0xfb, 0x2c, //0x000003bf cmpl $44, %ebx + 0x0f, 0x85, 0x6a, 0x04, 0x00, 0x00, //0x000003c2 jne LBB0_38 + 0x49, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x000003c8 cmpq $4095, %r10 + 0x0f, 0x8f, 0x88, 0x1f, 0x00, 0x00, //0x000003cf jg LBB0_441 + 0x49, 0x8d, 0x42, 0x01, //0x000003d5 leaq $1(%r10), %rax + 0x49, 0x89, 0x01, //0x000003d9 movq %rax, (%r9) + 0x4b, 0xc7, 0x44, 0xd1, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000003dc movq $3, $8(%r9,%r10,8) + 0xe9, 0xc6, 0xfd, 0xff, 0xff, //0x000003e5 jmp LBB0_2 + //0x000003ea LBB0_39 + 0x80, 0xfb, 0x22, //0x000003ea cmpb $34, %bl + 0x0f, 0x85, 0xa8, 0x1f, 0x00, 0x00, //0x000003ed jne LBB0_422 + 0x4b, 0xc7, 0x04, 0xd1, 0x04, 0x00, 0x00, 0x00, //0x000003f3 movq $4, (%r9,%r10,8) + 0x48, 0x8b, 0x45, 0x90, //0x000003fb movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x000003ff movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000403 testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000407 movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x0000040b movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0x63, 0x04, 0x00, 0x00, //0x0000040f jne LBB0_104 + 0x49, 0x89, 0xd5, //0x00000415 movq %rdx, %r13 + 0x4d, 0x29, 0xdd, //0x00000418 subq %r11, %r13 + 0x0f, 0x84, 0x30, 0x21, 0x00, 0x00, //0x0000041b je LBB0_456 + 0x4c, 0x89, 0xd8, //0x00000421 movq %r11, %rax + 0x4d, 0x01, 0xe3, //0x00000424 addq %r12, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000427 cmpq $64, %r13 + 0x0f, 0x82, 0x0b, 0x1a, 0x00, 0x00, //0x0000042b jb LBB0_353 + 0x45, 0x89, 0xea, //0x00000431 movl %r13d, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000434 andl $63, %r10d + 0x4a, 0x8d, 0x4c, 0x02, 0xc0, //0x00000438 leaq $-64(%rdx,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x0000043d andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000441 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000444 addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb8, //0x00000448 movq %rcx, $-72(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000044c movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00000453 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000456 .p2align 4, 0x90 + //0x00000460 LBB0_44 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000460 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000465 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x0000046b vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000471 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000477 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x0000047b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000047f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000483 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000487 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000048b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000048f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000493 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000497 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000049b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000049f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000004a3 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x000004a7 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x000004ab vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x000004af vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x000004b3 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x000004b7 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x000004bb shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000004bf shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000004c3 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x000004c6 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x000004c9 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x000004cd shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x000004d1 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x000004d5 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x000004d8 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x000004db orq %r8, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000004de cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000004e2 jne LBB0_46 + 0x48, 0x85, 0xd2, //0x000004e8 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000004eb jne LBB0_55 + //0x000004f1 LBB0_46 + 0x48, 0x09, 0xdf, //0x000004f1 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004f4 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x000004f7 orq %r12, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004fa jne LBB0_56 + //0x00000500 LBB0_47 + 0x48, 0x85, 0xff, //0x00000500 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000503 jne LBB0_57 + //0x00000509 LBB0_48 + 0x49, 0x83, 0xc5, 0xc0, //0x00000509 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x0000050d addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000511 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000515 ja LBB0_44 + 0xe9, 0x1d, 0x12, 0x00, 0x00, //0x0000051b jmp LBB0_49 + //0x00000520 LBB0_55 + 0x4c, 0x89, 0xd8, //0x00000520 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000523 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000527 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x0000052b addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x0000052e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000531 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x00000534 orq %r12, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000537 je LBB0_47 + //0x0000053d LBB0_56 + 0x4c, 0x89, 0xe0, //0x0000053d movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00000540 notq %rax + 0x48, 0x21, 0xd0, //0x00000543 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000546 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe1, //0x0000054a orq %r12, %rcx + 0x48, 0x89, 0xce, //0x0000054d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000550 notq %rsi + 0x48, 0x21, 0xd6, //0x00000553 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000556 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000560 andq %rdx, %rsi + 0x45, 0x31, 0xe4, //0x00000563 xorl %r12d, %r12d + 0x48, 0x01, 0xc6, //0x00000566 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc4, //0x00000569 setb %r12b + 0x48, 0x01, 0xf6, //0x0000056d addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000570 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000057a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000057d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000580 notq %rsi + 0x48, 0x21, 0xf7, //0x00000583 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000586 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000589 je LBB0_48 + //0x0000058f LBB0_57 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000058f bsfq %rdi, %rax + //0x00000593 LBB0_58 + 0x4c, 0x03, 0x5d, 0x98, //0x00000593 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000597 addq %rax, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000059a movq $-48(%rbp), %r12 + 0xe9, 0x3a, 0x09, 0x00, 0x00, //0x0000059e jmp LBB0_187 + //0x000005a3 LBB0_59 + 0x80, 0xfb, 0x3a, //0x000005a3 cmpb $58, %bl + 0x0f, 0x85, 0xef, 0x1d, 0x00, 0x00, //0x000005a6 jne LBB0_422 + 0x4b, 0xc7, 0x04, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000005ac movq $0, (%r9,%r10,8) + 0xe9, 0xf7, 0xfb, 0xff, 0xff, //0x000005b4 jmp LBB0_2 + //0x000005b9 LBB0_61 + 0x80, 0xfb, 0x5d, //0x000005b9 cmpb $93, %bl + 0x0f, 0x84, 0x79, 0x02, 0x00, 0x00, //0x000005bc je LBB0_35 + 0x4b, 0xc7, 0x04, 0xd1, 0x01, 0x00, 0x00, 0x00, //0x000005c2 movq $1, (%r9,%r10,8) + 0x83, 0xfb, 0x7b, //0x000005ca cmpl $123, %ebx + 0x0f, 0x87, 0xc8, 0x1d, 0x00, 0x00, //0x000005cd ja LBB0_422 + //0x000005d3 LBB0_63 + 0x4f, 0x8d, 0x14, 0x3c, //0x000005d3 leaq (%r12,%r15), %r10 + 0x89, 0xd9, //0x000005d7 movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x0c, 0x20, 0x00, 0x00, //0x000005d9 leaq $8204(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000005e0 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000005e4 addq %rdx, %rcx + 0xff, 0xe1, //0x000005e7 jmpq *%rcx + //0x000005e9 LBB0_66 + 0x48, 0x8b, 0x45, 0x90, //0x000005e9 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x000005ed movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x000005f1 subq %r15, %rdi + 0x0f, 0x84, 0x89, 0x1d, 0x00, 0x00, //0x000005f4 je LBB0_417 + 0x41, 0x80, 0x3a, 0x30, //0x000005fa cmpb $48, (%r10) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005fe jne LBB0_71 + 0x48, 0x83, 0xff, 0x01, //0x00000604 cmpq $1, %rdi + 0x0f, 0x84, 0x89, 0xfb, 0xff, 0xff, //0x00000608 je LBB0_1 + 0x43, 0x8a, 0x04, 0x1c, //0x0000060e movb (%r12,%r11), %al + 0x04, 0xd2, //0x00000612 addb $-46, %al + 0x3c, 0x37, //0x00000614 cmpb $55, %al + 0x0f, 0x87, 0x7b, 0xfb, 0xff, 0xff, //0x00000616 ja LBB0_1 + 0x0f, 0xb6, 0xc0, //0x0000061c movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000061f movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000629 btq %rax, %rcx + 0x0f, 0x83, 0x64, 0xfb, 0xff, 0xff, //0x0000062d jae LBB0_1 + //0x00000633 LBB0_71 + 0x48, 0x83, 0xff, 0x10, //0x00000633 cmpq $16, %rdi + 0x0f, 0x82, 0xde, 0x17, 0x00, 0x00, //0x00000637 jb LBB0_342 + 0x4c, 0x8d, 0x4f, 0xf0, //0x0000063d leaq $-16(%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x00000641 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000644 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x10, 0x10, //0x00000648 leaq $16(%rax,%r10), %rax + 0x48, 0x89, 0x45, 0xa8, //0x0000064d movq %rax, $-88(%rbp) + 0x41, 0x83, 0xe1, 0x0f, //0x00000651 andl $15, %r9d + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000655 movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000065c movq $-1, %r13 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000663 movq $-1, %r11 + 0x4d, 0x89, 0xd6, //0x0000066a movq %r10, %r14 + 0x90, 0x90, 0x90, //0x0000066d .p2align 4, 0x90 + //0x00000670 LBB0_73 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00000670 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x00000675 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x0000067a vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000067e vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x00000682 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x00000686 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000068a vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x0000068e vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x00000692 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x00000696 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x0000069a vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x0000069e vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000006a2 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0x79, 0xd7, 0xc2, //0x000006a6 vpmovmskb %xmm2, %r8d + 0xc5, 0xf9, 0xd7, 0xc6, //0x000006aa vpmovmskb %xmm6, %eax + 0xc5, 0xf9, 0xd7, 0xd5, //0x000006ae vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x000006b2 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000006b6 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x000006bb addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x000006c2 xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x000006c5 bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x000006c9 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000006cc je LBB0_75 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000006d2 movl $-1, %esi + 0xd3, 0xe6, //0x000006d7 shll %cl, %esi + 0xf7, 0xd6, //0x000006d9 notl %esi + 0x41, 0x21, 0xf0, //0x000006db andl %esi, %r8d + 0x21, 0xf0, //0x000006de andl %esi, %eax + 0x21, 0xd6, //0x000006e0 andl %edx, %esi + 0x89, 0xf2, //0x000006e2 movl %esi, %edx + //0x000006e4 LBB0_75 + 0x41, 0x8d, 0x70, 0xff, //0x000006e4 leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x000006e8 andl %r8d, %esi + 0x0f, 0x85, 0x17, 0x10, 0x00, 0x00, //0x000006eb jne LBB0_308 + 0x8d, 0x70, 0xff, //0x000006f1 leal $-1(%rax), %esi + 0x21, 0xc6, //0x000006f4 andl %eax, %esi + 0x0f, 0x85, 0x0c, 0x10, 0x00, 0x00, //0x000006f6 jne LBB0_308 + 0x8d, 0x72, 0xff, //0x000006fc leal $-1(%rdx), %esi + 0x21, 0xd6, //0x000006ff andl %edx, %esi + 0x0f, 0x85, 0x01, 0x10, 0x00, 0x00, //0x00000701 jne LBB0_308 + 0x45, 0x85, 0xc0, //0x00000707 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000070a je LBB0_81 + 0x4c, 0x89, 0xf3, //0x00000710 movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x00000713 subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x00000716 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x0000071a addq %rbx, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x0000071d cmpq $-1, %r11 + 0x0f, 0x85, 0x93, 0x13, 0x00, 0x00, //0x00000721 jne LBB0_325 + 0x49, 0x89, 0xf3, //0x00000727 movq %rsi, %r11 + //0x0000072a LBB0_81 + 0x85, 0xc0, //0x0000072a testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000072c je LBB0_84 + 0x4c, 0x89, 0xf6, //0x00000732 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000735 subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000738 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x0000073b addq %rsi, %rax + 0x49, 0x83, 0xfd, 0xff, //0x0000073e cmpq $-1, %r13 + 0x0f, 0x85, 0x64, 0x11, 0x00, 0x00, //0x00000742 jne LBB0_313 + 0x49, 0x89, 0xc5, //0x00000748 movq %rax, %r13 + //0x0000074b LBB0_84 + 0x85, 0xd2, //0x0000074b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000074d je LBB0_87 + 0x4c, 0x89, 0xf6, //0x00000753 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000756 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x00000759 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x0000075c addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x0000075f cmpq $-1, %r12 + 0x0f, 0x85, 0x43, 0x11, 0x00, 0x00, //0x00000763 jne LBB0_313 + 0x49, 0x89, 0xc4, //0x00000769 movq %rax, %r12 + //0x0000076c LBB0_87 + 0x83, 0xf9, 0x10, //0x0000076c cmpl $16, %ecx + 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x0000076f jne LBB0_148 + 0x49, 0x83, 0xc6, 0x10, //0x00000775 addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x00000779 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x0000077d cmpq $15, %rdi + 0x0f, 0x87, 0xe9, 0xfe, 0xff, 0xff, //0x00000781 ja LBB0_73 + 0x4d, 0x85, 0xc9, //0x00000787 testq %r9, %r9 + 0x0f, 0x84, 0xb1, 0x04, 0x00, 0x00, //0x0000078a je LBB0_150 + //0x00000790 LBB0_90 + 0x48, 0x8b, 0x7d, 0xa8, //0x00000790 movq $-88(%rbp), %rdi + 0x4a, 0x8d, 0x0c, 0x0f, //0x00000794 leaq (%rdi,%r9), %rcx + 0x48, 0x8d, 0x35, 0x29, 0x21, 0x00, 0x00, //0x00000798 leaq $8489(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x0000079f jmp LBB0_92 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007a4 .p2align 4, 0x90 + //0x000007b0 LBB0_91 + 0x48, 0x89, 0xc7, //0x000007b0 movq %rax, %rdi + 0x49, 0xff, 0xc9, //0x000007b3 decq %r9 + 0x0f, 0x84, 0xfb, 0x10, 0x00, 0x00, //0x000007b6 je LBB0_314 + //0x000007bc LBB0_92 + 0x0f, 0xbe, 0x17, //0x000007bc movsbl (%rdi), %edx + 0x83, 0xc2, 0xd5, //0x000007bf addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000007c2 cmpl $58, %edx + 0x0f, 0x87, 0x72, 0x04, 0x00, 0x00, //0x000007c5 ja LBB0_149 + 0x48, 0x8d, 0x47, 0x01, //0x000007cb leaq $1(%rdi), %rax + 0x48, 0x63, 0x14, 0x96, //0x000007cf movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000007d3 addq %rsi, %rdx + 0xff, 0xe2, //0x000007d6 jmpq *%rdx + //0x000007d8 LBB0_94 + 0x48, 0x89, 0xc2, //0x000007d8 movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x000007db subq %r10, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000007de cmpq $-1, %r12 + 0x0f, 0x85, 0x86, 0x13, 0x00, 0x00, //0x000007e2 jne LBB0_418 + 0x48, 0xff, 0xca, //0x000007e8 decq %rdx + 0x49, 0x89, 0xd4, //0x000007eb movq %rdx, %r12 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x000007ee jmp LBB0_91 + //0x000007f3 LBB0_96 + 0x48, 0x89, 0xc2, //0x000007f3 movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x000007f6 subq %r10, %rdx + 0x49, 0x83, 0xfd, 0xff, //0x000007f9 cmpq $-1, %r13 + 0x0f, 0x85, 0x6b, 0x13, 0x00, 0x00, //0x000007fd jne LBB0_418 + 0x48, 0xff, 0xca, //0x00000803 decq %rdx + 0x49, 0x89, 0xd5, //0x00000806 movq %rdx, %r13 + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x00000809 jmp LBB0_91 + //0x0000080e LBB0_98 + 0x48, 0x89, 0xc2, //0x0000080e movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x00000811 subq %r10, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x00000814 cmpq $-1, %r11 + 0x0f, 0x85, 0x50, 0x13, 0x00, 0x00, //0x00000818 jne LBB0_418 + 0x48, 0xff, 0xca, //0x0000081e decq %rdx + 0x49, 0x89, 0xd3, //0x00000821 movq %rdx, %r11 + 0xe9, 0x87, 0xff, 0xff, 0xff, //0x00000824 jmp LBB0_91 + //0x00000829 LBB0_64 + 0x83, 0xfb, 0x22, //0x00000829 cmpl $34, %ebx + 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x0000082c je LBB0_125 + //0x00000832 LBB0_38 + 0x83, 0xfb, 0x7d, //0x00000832 cmpl $125, %ebx + 0x0f, 0x85, 0x60, 0x1b, 0x00, 0x00, //0x00000835 jne LBB0_422 + //0x0000083b LBB0_35 + 0x49, 0x89, 0x11, //0x0000083b movq %rdx, (%r9) + 0x49, 0x89, 0xd2, //0x0000083e movq %rdx, %r10 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000841 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x00000848 testq %rdx, %rdx + 0x0f, 0x85, 0x75, 0xf9, 0xff, 0xff, //0x0000084b jne LBB0_4 + 0xe9, 0x4c, 0x1b, 0x00, 0x00, //0x00000851 jmp LBB0_423 + //0x00000856 LBB0_100 + 0x49, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x00000856 cmpq $4095, %r10 + 0x0f, 0x8f, 0xfa, 0x1a, 0x00, 0x00, //0x0000085d jg LBB0_441 + 0x49, 0x8d, 0x42, 0x01, //0x00000863 leaq $1(%r10), %rax + 0x49, 0x89, 0x01, //0x00000867 movq %rax, (%r9) + 0x4b, 0xc7, 0x44, 0xd1, 0x08, 0x00, 0x00, 0x00, 0x00, //0x0000086a movq $0, $8(%r9,%r10,8) + 0xe9, 0x38, 0xf9, 0xff, 0xff, //0x00000873 jmp LBB0_2 + //0x00000878 LBB0_104 + 0x48, 0x89, 0xd0, //0x00000878 movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x0000087b subq %r11, %rax + 0x0f, 0x84, 0xcd, 0x1c, 0x00, 0x00, //0x0000087e je LBB0_456 + 0x4c, 0x89, 0xd9, //0x00000884 movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x00000887 addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x0000088a cmpq $64, %rax + 0x0f, 0x82, 0xc1, 0x15, 0x00, 0x00, //0x0000088e jb LBB0_354 + 0x89, 0xc6, //0x00000894 movl %eax, %esi + 0x83, 0xe6, 0x3f, //0x00000896 andl $63, %esi + 0x48, 0x89, 0x75, 0xb8, //0x00000899 movq %rsi, $-72(%rbp) + 0x4e, 0x8d, 0x54, 0x02, 0xc0, //0x0000089d leaq $-64(%rdx,%r8), %r10 + 0x49, 0x83, 0xe2, 0xc0, //0x000008a2 andq $-64, %r10 + 0x49, 0x01, 0xca, //0x000008a6 addq %rcx, %r10 + 0x4c, 0x03, 0x55, 0x88, //0x000008a9 addq $-120(%rbp), %r10 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000008ad movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x000008b4 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008b7 .p2align 4, 0x90 + //0x000008c0 LBB0_107 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x000008c0 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x000008c5 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x000008cb vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x000008d1 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x000008d7 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000008db vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x000008df vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000008e3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000008e7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000008eb vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000008ef vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000008f3 vpmovmskb %xmm2, %edx + 0xc5, 0xc9, 0x74, 0xd1, //0x000008f7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000008fb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000008ff vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00000903 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00000907 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x0000090b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x0000090f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000912 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000916 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x0000091a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x0000091e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000921 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000925 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000929 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x0000092d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000931 shlq $16, %rdi + 0x49, 0x09, 0xfd, //0x00000935 orq %rdi, %r13 + 0xc5, 0x79, 0xd7, 0xe2, //0x00000938 vpmovmskb %xmm2, %r12d + 0xc5, 0x81, 0x64, 0xd5, //0x0000093c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000940 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000944 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000948 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000094c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000094f vpmovmskb %xmm2, %edi + 0xc5, 0x81, 0x64, 0xd4, //0x00000953 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000957 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000095b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000095f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000963 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000966 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000096a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000096e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000972 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000976 shlq $16, %rdi + 0x49, 0x09, 0xfc, //0x0000097a orq %rdi, %r12 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000097d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe2, 0x30, //0x00000981 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x00000985 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00000989 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000098d jne LBB0_109 + 0x4d, 0x85, 0xed, //0x00000993 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000996 jne LBB0_124 + //0x0000099c LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x0000099c shlq $48, %r14 + 0x49, 0x09, 0xcc, //0x000009a0 orq %rcx, %r12 + 0x48, 0x09, 0xd6, //0x000009a3 orq %rdx, %rsi + 0x4c, 0x89, 0xe9, //0x000009a6 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x000009a9 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000009ac jne LBB0_145 + 0x4d, 0x09, 0xf4, //0x000009b2 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x000009b5 testq %rsi, %rsi + 0x0f, 0x85, 0x39, 0x02, 0x00, 0x00, //0x000009b8 jne LBB0_146 + //0x000009be LBB0_111 + 0x4d, 0x85, 0xe4, //0x000009be testq %r12, %r12 + 0x0f, 0x85, 0x0c, 0x1a, 0x00, 0x00, //0x000009c1 jne LBB0_426 + 0x48, 0x83, 0xc0, 0xc0, //0x000009c7 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x000009cb addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x000009cf cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x000009d3 ja LBB0_107 + 0xe9, 0xda, 0x0d, 0x00, 0x00, //0x000009d9 jmp LBB0_113 + //0x000009de LBB0_145 + 0x4c, 0x89, 0xc1, //0x000009de movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000009e1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000009e4 andq %r13, %rcx + 0x48, 0x8d, 0x14, 0x09, //0x000009e7 leaq (%rcx,%rcx), %rdx + 0x4c, 0x09, 0xc2, //0x000009eb orq %r8, %rdx + 0x48, 0x89, 0xd7, //0x000009ee movq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x000009f1 notq %rdi + 0x4c, 0x21, 0xef, //0x000009f4 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000009f7 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x00000a01 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x00000a04 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x00000a07 addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x00000a0a setb %r8b + 0x48, 0x01, 0xff, //0x00000a0e addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a11 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00000a1b xorq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x00000a1e andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x00000a21 notq %rdi + 0x48, 0x21, 0xfe, //0x00000a24 andq %rdi, %rsi + 0x4d, 0x09, 0xf4, //0x00000a27 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x00000a2a testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00000a2d je LBB0_111 + 0xe9, 0xbf, 0x01, 0x00, 0x00, //0x00000a33 jmp LBB0_146 + //0x00000a38 LBB0_124 + 0x4c, 0x89, 0xdf, //0x00000a38 movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00000a3b subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000a3f bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x00000a43 addq %rdi, %r9 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x00000a46 jmp LBB0_109 + //0x00000a4b LBB0_125 + 0x4b, 0xc7, 0x04, 0xd1, 0x02, 0x00, 0x00, 0x00, //0x00000a4b movq $2, (%r9,%r10,8) + 0x48, 0x8b, 0x45, 0x90, //0x00000a53 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000a57 movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000a5b testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000a5f movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00000a63 movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0x71, 0x02, 0x00, 0x00, //0x00000a67 jne LBB0_161 + 0x49, 0x89, 0xd5, //0x00000a6d movq %rdx, %r13 + 0x4d, 0x29, 0xdd, //0x00000a70 subq %r11, %r13 + 0x0f, 0x84, 0xf3, 0x1a, 0x00, 0x00, //0x00000a73 je LBB0_454 + 0x4c, 0x89, 0xd8, //0x00000a79 movq %r11, %rax + 0x4d, 0x01, 0xe3, //0x00000a7c addq %r12, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000a7f cmpq $64, %r13 + 0x0f, 0x82, 0xfc, 0x13, 0x00, 0x00, //0x00000a83 jb LBB0_357 + 0x45, 0x89, 0xea, //0x00000a89 movl %r13d, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000a8c andl $63, %r10d + 0x4a, 0x8d, 0x4c, 0x02, 0xc0, //0x00000a90 leaq $-64(%rdx,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000a95 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000a99 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000a9c addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb8, //0x00000aa0 movq %rcx, $-72(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000aa4 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00000aab xorl %r9d, %r9d + 0x90, 0x90, //0x00000aae .p2align 4, 0x90 + //0x00000ab0 LBB0_129 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000ab0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000ab5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000abb vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000ac1 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000ac7 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x00000acb vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x00000acf vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000ad3 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000ad7 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x00000adb vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x00000adf vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000ae3 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000ae7 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000aeb vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000aef vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000af3 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00000af7 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00000afb vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x00000aff vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000b03 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x00000b07 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000b0b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000b0f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b13 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b16 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x00000b19 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b1d shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000b21 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000b25 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000b28 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x00000b2b orq %r8, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x00000b2e cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b32 jne LBB0_131 + 0x48, 0x85, 0xd2, //0x00000b38 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000b3b jne LBB0_140 + //0x00000b41 LBB0_131 + 0x48, 0x09, 0xdf, //0x00000b41 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b44 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000b47 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000b4a jne LBB0_141 + //0x00000b50 LBB0_132 + 0x48, 0x85, 0xff, //0x00000b50 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000b53 jne LBB0_142 + //0x00000b59 LBB0_133 + 0x49, 0x83, 0xc5, 0xc0, //0x00000b59 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000b5d addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000b61 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000b65 ja LBB0_129 + 0xe9, 0x64, 0x0d, 0x00, 0x00, //0x00000b6b jmp LBB0_134 + //0x00000b70 LBB0_140 + 0x4c, 0x89, 0xd8, //0x00000b70 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000b73 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe2, //0x00000b77 bsfq %rdx, %r12 + 0x49, 0x01, 0xc4, //0x00000b7b addq %rax, %r12 + 0x48, 0x09, 0xdf, //0x00000b7e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b81 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000b84 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000b87 je LBB0_132 + //0x00000b8d LBB0_141 + 0x4c, 0x89, 0xc8, //0x00000b8d movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000b90 notq %rax + 0x48, 0x21, 0xd0, //0x00000b93 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000b96 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x00000b9a orq %r9, %rcx + 0x48, 0x89, 0xce, //0x00000b9d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000ba0 notq %rsi + 0x48, 0x21, 0xd6, //0x00000ba3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000ba6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000bb0 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x00000bb3 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x00000bb6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x00000bb9 setb %r9b + 0x48, 0x01, 0xf6, //0x00000bbd addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000bc0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000bca xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000bcd andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000bd0 notq %rsi + 0x48, 0x21, 0xf7, //0x00000bd3 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000bd6 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000bd9 je LBB0_133 + //0x00000bdf LBB0_142 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000bdf bsfq %rdi, %rax + //0x00000be3 LBB0_143 + 0x4c, 0x03, 0x5d, 0x98, //0x00000be3 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000be7 addq %rax, %r11 + //0x00000bea LBB0_144 + 0x48, 0x8b, 0x75, 0xc8, //0x00000bea movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000bee movq $-64(%rbp), %r9 + 0xe9, 0x59, 0x03, 0x00, 0x00, //0x00000bf2 jmp LBB0_195 + //0x00000bf7 LBB0_146 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000bf7 bsfq %rsi, %rax + 0x4d, 0x85, 0xe4, //0x00000bfb testq %r12, %r12 + 0x0f, 0x84, 0xbf, 0x02, 0x00, 0x00, //0x00000bfe je LBB0_185 + 0x49, 0x0f, 0xbc, 0xcc, //0x00000c04 bsfq %r12, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000c08 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000c0c subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000c0f cmpq %rax, %rcx + 0x0f, 0x83, 0xc0, 0x02, 0x00, 0x00, //0x00000c12 jae LBB0_186 + 0xe9, 0x3d, 0x19, 0x00, 0x00, //0x00000c18 jmp LBB0_306 + //0x00000c1d LBB0_148 + 0x49, 0x01, 0xce, //0x00000c1d addq %rcx, %r14 + 0x4c, 0x89, 0x75, 0xa8, //0x00000c20 movq %r14, $-88(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c24 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000c2b testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c2e movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000c32 jne LBB0_151 + 0xe9, 0x55, 0x17, 0x00, 0x00, //0x00000c38 jmp LBB0_420 + //0x00000c3d LBB0_149 + 0x48, 0x89, 0x7d, 0xa8, //0x00000c3d movq %rdi, $-88(%rbp) + //0x00000c41 LBB0_150 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c41 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000c48 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c4b movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x3d, 0x17, 0x00, 0x00, //0x00000c4f je LBB0_420 + //0x00000c55 LBB0_151 + 0x4d, 0x85, 0xe4, //0x00000c55 testq %r12, %r12 + 0x0f, 0x84, 0x34, 0x17, 0x00, 0x00, //0x00000c58 je LBB0_420 + 0x4d, 0x85, 0xdb, //0x00000c5e testq %r11, %r11 + 0x0f, 0x84, 0x2b, 0x17, 0x00, 0x00, //0x00000c61 je LBB0_420 + 0x48, 0x8b, 0x45, 0xa8, //0x00000c67 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xd0, //0x00000c6b subq %r10, %rax + 0x48, 0x89, 0xc1, //0x00000c6e movq %rax, %rcx + 0x48, 0xff, 0xc8, //0x00000c71 decq %rax + 0x49, 0x39, 0xc5, //0x00000c74 cmpq %rax, %r13 + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000c77 je LBB0_159 + 0x49, 0x39, 0xc3, //0x00000c7d cmpq %rax, %r11 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00000c80 je LBB0_159 + 0x49, 0x39, 0xc4, //0x00000c86 cmpq %rax, %r12 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000c89 je LBB0_159 + 0x4d, 0x85, 0xe4, //0x00000c8f testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000c92 movq $-64(%rbp), %r9 + 0x0f, 0x8e, 0x68, 0x02, 0x00, 0x00, //0x00000c96 jle LBB0_189 + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000c9c leaq $-1(%r12), %rax + 0x49, 0x39, 0xc5, //0x00000ca1 cmpq %rax, %r13 + 0x0f, 0x84, 0x5a, 0x02, 0x00, 0x00, //0x00000ca4 je LBB0_189 + 0x49, 0xf7, 0xd4, //0x00000caa notq %r12 + 0x4d, 0x89, 0xe3, //0x00000cad movq %r12, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000cb0 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000cb4 testq %r11, %r11 + 0x0f, 0x89, 0xd7, 0xf4, 0xff, 0xff, //0x00000cb7 jns LBB0_258 + 0xe9, 0xcd, 0x16, 0x00, 0x00, //0x00000cbd jmp LBB0_419 + //0x00000cc2 LBB0_159 + 0x49, 0x89, 0xcb, //0x00000cc2 movq %rcx, %r11 + 0x49, 0xf7, 0xdb, //0x00000cc5 negq %r11 + //0x00000cc8 LBB0_160 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000cc8 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000ccc movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00000cd0 testq %r11, %r11 + 0x0f, 0x89, 0xbb, 0xf4, 0xff, 0xff, //0x00000cd3 jns LBB0_258 + 0xe9, 0xb1, 0x16, 0x00, 0x00, //0x00000cd9 jmp LBB0_419 + //0x00000cde LBB0_161 + 0x48, 0x89, 0xd0, //0x00000cde movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x00000ce1 subq %r11, %rax + 0x0f, 0x84, 0x82, 0x18, 0x00, 0x00, //0x00000ce4 je LBB0_454 + 0x4c, 0x89, 0xd9, //0x00000cea movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x00000ced addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000cf0 cmpq $64, %rax + 0x0f, 0x82, 0xa4, 0x11, 0x00, 0x00, //0x00000cf4 jb LBB0_358 + 0x41, 0x89, 0xc2, //0x00000cfa movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000cfd andl $63, %r10d + 0x4e, 0x8d, 0x44, 0x02, 0xc0, //0x00000d01 leaq $-64(%rdx,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000d06 andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x00000d0a addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000d0d addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000d11 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00000d18 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d1b .p2align 4, 0x90 + //0x00000d20 LBB0_164 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00000d20 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00000d25 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x00000d2b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x00000d31 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x00000d37 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x00000d3b vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x00000d3f vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d43 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x00000d47 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d4b vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x00000d4f vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00000d53 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x00000d57 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x00000d5b vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x00000d5f vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d63 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000d67 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000d6b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x00000d6f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d72 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000d76 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x00000d7a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000d7e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d81 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000d85 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000d89 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x00000d8d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00000d91 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000d95 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d98 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x00000d9c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000da0 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000da4 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000da8 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x00000dac orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000daf vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00000db3 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000db7 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000dbb vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x00000dbf shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000dc3 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000dc6 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x00000dca vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x00000dce vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000dd2 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000dd6 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00000dda orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x00000ddd vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00000de1 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00000de5 shlq $32, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00000de9 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000ded jne LBB0_166 + 0x4d, 0x85, 0xed, //0x00000df3 testq %r13, %r13 + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00000df6 jne LBB0_181 + //0x00000dfc LBB0_166 + 0x49, 0xc1, 0xe6, 0x30, //0x00000dfc shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00000e00 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00000e03 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00000e06 movq %r13, %rcx + 0x4c, 0x09, 0xc9, //0x00000e09 orq %r9, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000e0c jne LBB0_182 + 0x4c, 0x09, 0xf2, //0x00000e12 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e15 testq %rsi, %rsi + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00000e18 jne LBB0_183 + //0x00000e1e LBB0_168 + 0x48, 0x85, 0xd2, //0x00000e1e testq %rdx, %rdx + 0x0f, 0x85, 0xda, 0x15, 0x00, 0x00, //0x00000e21 jne LBB0_432 + 0x48, 0x83, 0xc0, 0xc0, //0x00000e27 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000e2b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000e2f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x00000e33 ja LBB0_164 + 0xe9, 0x11, 0x0b, 0x00, 0x00, //0x00000e39 jmp LBB0_170 + //0x00000e3e LBB0_182 + 0x4c, 0x89, 0xc9, //0x00000e3e movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000e41 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000e44 andq %r13, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00000e47 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xcb, //0x00000e4b orq %r9, %rbx + 0x48, 0x89, 0x5d, 0xb8, //0x00000e4e movq %rbx, $-72(%rbp) + 0x48, 0xf7, 0xd3, //0x00000e52 notq %rbx + 0x4c, 0x21, 0xeb, //0x00000e55 andq %r13, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000e58 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00000e62 andq %rdi, %rbx + 0x45, 0x31, 0xc9, //0x00000e65 xorl %r9d, %r9d + 0x48, 0x01, 0xcb, //0x00000e68 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc1, //0x00000e6b setb %r9b + 0x48, 0x01, 0xdb, //0x00000e6f addq %rbx, %rbx + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000e72 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcb, //0x00000e7c xorq %rcx, %rbx + 0x48, 0x23, 0x5d, 0xb8, //0x00000e7f andq $-72(%rbp), %rbx + 0x48, 0xf7, 0xd3, //0x00000e83 notq %rbx + 0x48, 0x21, 0xde, //0x00000e86 andq %rbx, %rsi + 0x4c, 0x09, 0xf2, //0x00000e89 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e8c testq %rsi, %rsi + 0x0f, 0x84, 0x89, 0xff, 0xff, 0xff, //0x00000e8f je LBB0_168 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000e95 jmp LBB0_183 + //0x00000e9a LBB0_181 + 0x4c, 0x89, 0xdb, //0x00000e9a movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00000e9d subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xe5, //0x00000ea1 bsfq %r13, %r12 + 0x49, 0x01, 0xdc, //0x00000ea5 addq %rbx, %r12 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00000ea8 jmp LBB0_166 + //0x00000ead LBB0_183 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000ead bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000eb1 testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00000eb4 je LBB0_192 + 0x48, 0x0f, 0xbc, 0xca, //0x00000eba bsfq %rdx, %rcx + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x00000ebe jmp LBB0_193 + //0x00000ec3 LBB0_185 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000ec3 movl $64, %ecx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000ec8 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000ecc subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000ecf cmpq %rax, %rcx + 0x0f, 0x82, 0x82, 0x16, 0x00, 0x00, //0x00000ed2 jb LBB0_306 + //0x00000ed8 LBB0_186 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000ed8 leaq $1(%r11,%rax), %r11 + //0x00000edd LBB0_187 + 0x4d, 0x85, 0xdb, //0x00000edd testq %r11, %r11 + 0x0f, 0x88, 0x83, 0x14, 0x00, 0x00, //0x00000ee0 js LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00000ee6 movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000eea movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000eed movq %r15, %rax + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00000ef0 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000ef5 movq $-64(%rbp), %r9 + 0x0f, 0x8f, 0xb1, 0xf2, 0xff, 0xff, //0x00000ef9 jg LBB0_2 + 0xe9, 0x9e, 0x14, 0x00, 0x00, //0x00000eff jmp LBB0_423 + //0x00000f04 LBB0_189 + 0x4c, 0x89, 0xd8, //0x00000f04 movq %r11, %rax + 0x4c, 0x09, 0xe8, //0x00000f07 orq %r13, %rax + 0x4d, 0x39, 0xeb, //0x00000f0a cmpq %r13, %r11 + 0x0f, 0x8c, 0x5c, 0xf2, 0xff, 0xff, //0x00000f0d jl LBB0_257 + 0x48, 0x85, 0xc0, //0x00000f13 testq %rax, %rax + 0x0f, 0x88, 0x53, 0xf2, 0xff, 0xff, //0x00000f16 js LBB0_257 + 0x49, 0xf7, 0xd3, //0x00000f1c notq %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f1f movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000f23 testq %r11, %r11 + 0x0f, 0x89, 0x68, 0xf2, 0xff, 0xff, //0x00000f26 jns LBB0_258 + 0xe9, 0x5e, 0x14, 0x00, 0x00, //0x00000f2c jmp LBB0_419 + //0x00000f31 LBB0_192 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f31 movl $64, %ecx + //0x00000f36 LBB0_193 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f36 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000f3a movq $-64(%rbp), %r9 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000f3e subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000f42 cmpq %rax, %rcx + 0x0f, 0x82, 0x2a, 0x16, 0x00, 0x00, //0x00000f45 jb LBB0_455 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f4b leaq $1(%r11,%rax), %r11 + //0x00000f50 LBB0_195 + 0x4d, 0x85, 0xdb, //0x00000f50 testq %r11, %r11 + 0x0f, 0x88, 0x58, 0x14, 0x00, 0x00, //0x00000f53 js LBB0_424 + 0x4c, 0x89, 0x1e, //0x00000f59 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000f5c movq %r15, %rax + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00000f5f cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f64 movq $-48(%rbp), %r12 + 0x0f, 0x8e, 0x34, 0x14, 0x00, 0x00, //0x00000f68 jle LBB0_423 + 0x49, 0x8b, 0x01, //0x00000f6e movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000f71 cmpq $4095, %rax + 0x0f, 0x8f, 0xe0, 0x13, 0x00, 0x00, //0x00000f77 jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x00000f7d leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x00000f81 movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00000f84 movq $4, $8(%r9,%rax,8) + 0xe9, 0x1e, 0xf2, 0xff, 0xff, //0x00000f8d jmp LBB0_2 + //0x00000f92 LBB0_199 + 0x48, 0x8b, 0x45, 0x90, //0x00000f92 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000f96 movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000f9a testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000f9e movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00000fa2 movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0xa3, 0x04, 0x00, 0x00, //0x00000fa6 jne LBB0_268 + 0x49, 0x89, 0xd4, //0x00000fac movq %rdx, %r12 + 0x4d, 0x29, 0xdc, //0x00000faf subq %r11, %r12 + 0x0f, 0x84, 0x99, 0x15, 0x00, 0x00, //0x00000fb2 je LBB0_456 + 0x48, 0x8b, 0x45, 0xd0, //0x00000fb8 movq $-48(%rbp), %rax + 0x4c, 0x89, 0xd9, //0x00000fbc movq %r11, %rcx + 0x49, 0x01, 0xc3, //0x00000fbf addq %rax, %r11 + 0x49, 0x83, 0xfc, 0x40, //0x00000fc2 cmpq $64, %r12 + 0x0f, 0x82, 0x12, 0x0f, 0x00, 0x00, //0x00000fc6 jb LBB0_360 + 0x44, 0x89, 0xe0, //0x00000fcc movl %r12d, %eax + 0x83, 0xe0, 0x3f, //0x00000fcf andl $63, %eax + 0x48, 0x89, 0x45, 0xb8, //0x00000fd2 movq %rax, $-72(%rbp) + 0x4e, 0x8d, 0x44, 0x02, 0xc0, //0x00000fd6 leaq $-64(%rdx,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000fdb andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x00000fdf addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000fe2 addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fe6 movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00000fed xorl %r10d, %r10d + //0x00000ff0 .p2align 4, 0x90 + //0x00000ff0 LBB0_203 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000ff0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000ff5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000ffb vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00001001 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00001007 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x0000100b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000100f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00001013 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00001017 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000101b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000101f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0x79, 0xd7, 0xef, //0x00001023 vpmovmskb %xmm7, %r13d + 0xc5, 0xe9, 0x74, 0xd1, //0x00001027 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000102b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000102f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001033 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00001037 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000103b vpmovmskb %xmm2, %ebx + 0xc5, 0xc9, 0x74, 0xd1, //0x0000103f vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001043 vpmovmskb %xmm2, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x00001047 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x0000104b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000104f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001053 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001056 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x00001059 shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000105d shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001061 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001065 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x00001068 orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000106b orq %r14, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000106e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001072 jne LBB0_205 + 0x48, 0x85, 0xd2, //0x00001078 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000107b jne LBB0_213 + //0x00001081 LBB0_205 + 0x4c, 0x09, 0xef, //0x00001081 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001084 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x00001087 orq %r10, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000108a jne LBB0_214 + //0x00001090 LBB0_206 + 0x48, 0x85, 0xff, //0x00001090 testq %rdi, %rdi + 0x0f, 0x85, 0xf6, 0xf4, 0xff, 0xff, //0x00001093 jne LBB0_57 + //0x00001099 LBB0_207 + 0x49, 0x83, 0xc4, 0xc0, //0x00001099 addq $-64, %r12 + 0x49, 0x83, 0xc3, 0x40, //0x0000109d addq $64, %r11 + 0x49, 0x83, 0xfc, 0x3f, //0x000010a1 cmpq $63, %r12 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x000010a5 ja LBB0_203 + 0xe9, 0x01, 0x0b, 0x00, 0x00, //0x000010ab jmp LBB0_208 + //0x000010b0 LBB0_213 + 0x4c, 0x89, 0xd8, //0x000010b0 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000010b3 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x000010b7 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x000010bb addq %rax, %r9 + 0x4c, 0x09, 0xef, //0x000010be orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x000010c1 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x000010c4 orq %r10, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000010c7 je LBB0_206 + //0x000010cd LBB0_214 + 0x4c, 0x89, 0xd0, //0x000010cd movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000010d0 notq %rax + 0x48, 0x21, 0xd0, //0x000010d3 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000010d6 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xd1, //0x000010da orq %r10, %rcx + 0x48, 0x89, 0xce, //0x000010dd movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000010e0 notq %rsi + 0x48, 0x21, 0xd6, //0x000010e3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000010e6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000010f0 andq %rdx, %rsi + 0x45, 0x31, 0xd2, //0x000010f3 xorl %r10d, %r10d + 0x48, 0x01, 0xc6, //0x000010f6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc2, //0x000010f9 setb %r10b + 0x48, 0x01, 0xf6, //0x000010fd addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001100 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000110a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000110d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00001110 notq %rsi + 0x48, 0x21, 0xf7, //0x00001113 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00001116 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00001119 je LBB0_207 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x0000111f jmp LBB0_57 + //0x00001124 LBB0_215 + 0x48, 0x8b, 0x45, 0x90, //0x00001124 movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00001128 movq $8(%rax), %r10 + 0x4d, 0x29, 0xda, //0x0000112c subq %r11, %r10 + 0x0f, 0x84, 0xfa, 0x12, 0x00, 0x00, //0x0000112f je LBB0_438 + 0x4c, 0x89, 0x5d, 0xa8, //0x00001135 movq %r11, $-88(%rbp) + 0x4d, 0x01, 0xdc, //0x00001139 addq %r11, %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x0000113c cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001141 jne LBB0_220 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001147 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x0000114d cmpq $1, %r10 + 0x0f, 0x84, 0x7c, 0x05, 0x00, 0x00, //0x00001151 je LBB0_303 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001157 movb $1(%r12), %al + 0x04, 0xd2, //0x0000115c addb $-46, %al + 0x3c, 0x37, //0x0000115e cmpb $55, %al + 0x0f, 0x87, 0x6d, 0x05, 0x00, 0x00, //0x00001160 ja LBB0_303 + 0x0f, 0xb6, 0xc0, //0x00001166 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001169 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00001173 btq %rax, %rcx + 0x0f, 0x83, 0x56, 0x05, 0x00, 0x00, //0x00001177 jae LBB0_303 + //0x0000117d LBB0_220 + 0x49, 0x83, 0xfa, 0x10, //0x0000117d cmpq $16, %r10 + 0x0f, 0x82, 0x30, 0x0d, 0x00, 0x00, //0x00001181 jb LBB0_359 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001187 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x0000118b movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000118e andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x00001192 leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001197 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000119b movq $-1, $-72(%rbp) + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x000011a3 movq $-1, $-80(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000011ab movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x000011b2 movq %r12, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011b5 .p2align 4, 0x90 + //0x000011c0 LBB0_222 + 0xc4, 0xc1, 0x7a, 0x6f, 0x55, 0x00, //0x000011c0 vmovdqu (%r13), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x000011c6 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x000011cb vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000011cf vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x000011d3 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x000011d7 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000011db vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x000011df vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x000011e3 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x000011e7 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x000011eb vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x000011ef vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000011f3 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000011f7 vpmovmskb %xmm2, %eax + 0xc5, 0xf9, 0xd7, 0xde, //0x000011fb vpmovmskb %xmm6, %ebx + 0xc5, 0xf9, 0xd7, 0xd5, //0x000011ff vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x00001203 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001207 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x0000120c leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x00001213 xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x00001216 bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x0000121a cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000121d je LBB0_224 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00001223 movl $-1, %edi + 0xd3, 0xe7, //0x00001228 shll %cl, %edi + 0xf7, 0xd7, //0x0000122a notl %edi + 0x21, 0xf8, //0x0000122c andl %edi, %eax + 0x21, 0xfb, //0x0000122e andl %edi, %ebx + 0x21, 0xd7, //0x00001230 andl %edx, %edi + 0x89, 0xfa, //0x00001232 movl %edi, %edx + //0x00001234 LBB0_224 + 0x8d, 0x78, 0xff, //0x00001234 leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001237 andl %eax, %edi + 0x0f, 0x85, 0x4f, 0x09, 0x00, 0x00, //0x00001239 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x0000123f leal $-1(%rbx), %edi + 0x21, 0xdf, //0x00001242 andl %ebx, %edi + 0x0f, 0x85, 0x44, 0x09, 0x00, 0x00, //0x00001244 jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x0000124a leal $-1(%rdx), %edi + 0x21, 0xd7, //0x0000124d andl %edx, %edi + 0x0f, 0x85, 0x39, 0x09, 0x00, 0x00, //0x0000124f jne LBB0_337 + 0x85, 0xc0, //0x00001255 testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001257 je LBB0_230 + 0x4c, 0x89, 0xef, //0x0000125d movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001260 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x00001263 bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001267 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000126a cmpq $-1, %r14 + 0x0f, 0x85, 0x24, 0x09, 0x00, 0x00, //0x0000126e jne LBB0_338 + 0x4d, 0x89, 0xde, //0x00001274 movq %r11, %r14 + //0x00001277 LBB0_230 + 0x85, 0xdb, //0x00001277 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001279 je LBB0_233 + 0x4c, 0x89, 0xe8, //0x0000127f movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x00001282 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x00001285 bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001289 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb0, 0xff, //0x0000128c cmpq $-1, $-80(%rbp) + 0x0f, 0x85, 0x01, 0x09, 0x00, 0x00, //0x00001291 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb0, //0x00001297 movq %r11, $-80(%rbp) + //0x0000129b LBB0_233 + 0x85, 0xd2, //0x0000129b testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000129d je LBB0_236 + 0x4c, 0x89, 0xe8, //0x000012a3 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x000012a6 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x000012a9 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x000012ad addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x000012b0 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0xdd, 0x08, 0x00, 0x00, //0x000012b5 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb8, //0x000012bb movq %r11, $-72(%rbp) + //0x000012bf LBB0_236 + 0x83, 0xf9, 0x10, //0x000012bf cmpl $16, %ecx + 0x0f, 0x85, 0x81, 0x03, 0x00, 0x00, //0x000012c2 jne LBB0_291 + 0x49, 0x83, 0xc5, 0x10, //0x000012c8 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000012cc addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000012d0 cmpq $15, %r10 + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x000012d4 ja LBB0_222 + 0x4d, 0x85, 0xc9, //0x000012da testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xf8, 0x14, 0x00, 0x00, //0x000012dd leaq $5368(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xb0, //0x000012e4 movq $-80(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x000012e8 movq $-72(%rbp), %rbx + 0x0f, 0x84, 0x65, 0x03, 0x00, 0x00, //0x000012ec je LBB0_292 + //0x000012f2 LBB0_239 + 0x4b, 0x8d, 0x0c, 0x08, //0x000012f2 leaq (%r8,%r9), %rcx + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x000012f6 jmp LBB0_262 + //0x000012fb LBB0_240 + 0x49, 0x8b, 0x01, //0x000012fb movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000012fe cmpq $4095, %rax + 0x0f, 0x8f, 0x53, 0x10, 0x00, 0x00, //0x00001304 jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x0000130a leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x0000130e movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001311 movq $5, $8(%r9,%rax,8) + 0xe9, 0x91, 0xee, 0xff, 0xff, //0x0000131a jmp LBB0_2 + //0x0000131f LBB0_242 + 0x48, 0x8b, 0x4d, 0x90, //0x0000131f movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001323 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001327 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x0000132b cmpq %rdx, %r15 + 0x0f, 0x83, 0x97, 0x10, 0x00, 0x00, //0x0000132e jae LBB0_440 + 0x43, 0x8b, 0x0c, 0x1c, //0x00001334 movl (%r12,%r11), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001338 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xfa, 0x10, 0x00, 0x00, //0x0000133e jne LBB0_442 + 0x4c, 0x89, 0xd9, //0x00001344 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x05, //0x00001347 leaq $5(%r15), %r11 + 0xe9, 0x50, 0x00, 0x00, 0x00, //0x0000134b jmp LBB0_254 + //0x00001350 LBB0_245 + 0x48, 0x8b, 0x4d, 0x90, //0x00001350 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001354 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001358 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x0000135c cmpq %rdx, %r15 + 0x0f, 0x83, 0x66, 0x10, 0x00, 0x00, //0x0000135f jae LBB0_440 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00001365 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x0000136c je LBB0_253 + 0xe9, 0x1c, 0x11, 0x00, 0x00, //0x00001372 jmp LBB0_247 + //0x00001377 LBB0_251 + 0x48, 0x8b, 0x4d, 0x90, //0x00001377 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x0000137b movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x0000137f leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001383 cmpq %rdx, %r15 + 0x0f, 0x83, 0x3f, 0x10, 0x00, 0x00, //0x00001386 jae LBB0_440 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x0000138c cmpl $1702195828, (%r10) + 0x0f, 0x85, 0x4c, 0x11, 0x00, 0x00, //0x00001393 jne LBB0_447 + //0x00001399 LBB0_253 + 0x4c, 0x89, 0xd9, //0x00001399 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x04, //0x0000139c leaq $4(%r15), %r11 + //0x000013a0 LBB0_254 + 0x4c, 0x89, 0x1e, //0x000013a0 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000013a3 movq %r15, %rax + 0x48, 0x85, 0xc9, //0x000013a6 testq %rcx, %rcx + 0x0f, 0x8f, 0x01, 0xee, 0xff, 0xff, //0x000013a9 jg LBB0_2 + 0xe9, 0xee, 0x0f, 0x00, 0x00, //0x000013af jmp LBB0_423 + //0x000013b4 LBB0_255 + 0x49, 0x8b, 0x01, //0x000013b4 movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000013b7 cmpq $4095, %rax + 0x0f, 0x8f, 0x9a, 0x0f, 0x00, 0x00, //0x000013bd jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x000013c3 leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x000013c7 movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000013ca movq $6, $8(%r9,%rax,8) + 0xe9, 0xd8, 0xed, 0xff, 0xff, //0x000013d3 jmp LBB0_2 + //0x000013d8 LBB0_259 + 0x49, 0x89, 0xc3, //0x000013d8 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000013db subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000013de cmpq $-1, %r14 + 0x0f, 0x85, 0x95, 0x0a, 0x00, 0x00, //0x000013e2 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x000013e8 decq %r11 + 0x4d, 0x89, 0xde, //0x000013eb movq %r11, %r14 + 0x90, 0x90, //0x000013ee .p2align 4, 0x90 + //0x000013f0 LBB0_261 + 0x49, 0x89, 0xc0, //0x000013f0 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x000013f3 decq %r9 + 0x0f, 0x84, 0x03, 0x0a, 0x00, 0x00, //0x000013f6 je LBB0_341 + //0x000013fc LBB0_262 + 0x41, 0x0f, 0xbe, 0x10, //0x000013fc movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x00001400 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00001403 cmpl $58, %edx + 0x0f, 0x87, 0x4b, 0x02, 0x00, 0x00, //0x00001406 ja LBB0_292 + 0x49, 0x8d, 0x40, 0x01, //0x0000140c leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001410 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001414 addq %rsi, %rdx + 0xff, 0xe2, //0x00001417 jmpq *%rdx + //0x00001419 LBB0_264 + 0x49, 0x89, 0xc3, //0x00001419 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000141c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000141f cmpq $-1, %rbx + 0x0f, 0x85, 0x54, 0x0a, 0x00, 0x00, //0x00001423 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001429 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000142c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000142f jmp LBB0_261 + //0x00001434 LBB0_266 + 0x49, 0x89, 0xc3, //0x00001434 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001437 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000143a cmpq $-1, %rdi + 0x0f, 0x85, 0x39, 0x0a, 0x00, 0x00, //0x0000143e jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001444 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001447 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000144a jmp LBB0_261 + //0x0000144f LBB0_268 + 0x48, 0x89, 0xd0, //0x0000144f movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x00001452 subq %r11, %rax + 0x0f, 0x84, 0xf6, 0x10, 0x00, 0x00, //0x00001455 je LBB0_456 + 0x4c, 0x89, 0xd9, //0x0000145b movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x0000145e addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00001461 cmpq $64, %rax + 0x0f, 0x82, 0x8c, 0x0a, 0x00, 0x00, //0x00001465 jb LBB0_361 + 0x41, 0x89, 0xc2, //0x0000146b movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x0000146e andl $63, %r10d + 0x4e, 0x8d, 0x64, 0x02, 0xc0, //0x00001472 leaq $-64(%rdx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001477 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x0000147b addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x0000147e addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001482 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001489 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x0000148c .p2align 4, 0x90 + //0x00001490 LBB0_271 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00001490 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00001495 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x0000149b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x000014a1 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x000014a7 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000014ab vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x000014af vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000014b3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000014b7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000014bb vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000014bf vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000014c3 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x000014c7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000014cb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000014cf vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000014d3 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x000014d7 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x000014db shlq $16, %rbx + 0x48, 0x09, 0xde, //0x000014df orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x000014e2 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x000014e6 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x000014ea shlq $32, %rcx + 0x48, 0x09, 0xce, //0x000014ee orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x000014f1 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x000014f5 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x000014f9 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x000014fd vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00001501 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00001505 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00001508 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x0000150c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00001510 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00001514 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00001518 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000151c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000151f vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00001523 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001527 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000152b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000152f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00001533 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00001536 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000153a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000153e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001542 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00001546 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x0000154a orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x0000154d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001551 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00001555 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001559 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000155d jne LBB0_273 + 0x4d, 0x85, 0xed, //0x00001563 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001566 jne LBB0_287 + //0x0000156c LBB0_273 + 0x49, 0xc1, 0xe6, 0x30, //0x0000156c shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00001570 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00001573 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00001576 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x00001579 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000157c jne LBB0_288 + 0x4c, 0x09, 0xf2, //0x00001582 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001585 testq %rsi, %rsi + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x00001588 jne LBB0_289 + //0x0000158e LBB0_275 + 0x48, 0x85, 0xd2, //0x0000158e testq %rdx, %rdx + 0x0f, 0x85, 0xa7, 0x0f, 0x00, 0x00, //0x00001591 jne LBB0_452 + 0x48, 0x83, 0xc0, 0xc0, //0x00001597 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x0000159b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x0000159f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x000015a3 ja LBB0_271 + 0xe9, 0xf0, 0x06, 0x00, 0x00, //0x000015a9 jmp LBB0_277 + //0x000015ae LBB0_288 + 0x4c, 0x89, 0xc1, //0x000015ae movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000015b1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000015b4 andq %r13, %rcx + 0x4c, 0x89, 0x55, 0xb8, //0x000015b7 movq %r10, $-72(%rbp) + 0x4c, 0x8d, 0x14, 0x09, //0x000015bb leaq (%rcx,%rcx), %r10 + 0x4d, 0x09, 0xc2, //0x000015bf orq %r8, %r10 + 0x4c, 0x89, 0xd7, //0x000015c2 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x000015c5 notq %rdi + 0x4c, 0x21, 0xef, //0x000015c8 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000015cb movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000015d5 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x000015d8 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x000015db addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x000015de setb %r8b + 0x48, 0x01, 0xff, //0x000015e2 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000015e5 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x000015ef xorq %rcx, %rdi + 0x4c, 0x21, 0xd7, //0x000015f2 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xb8, //0x000015f5 movq $-72(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x000015f9 notq %rdi + 0x48, 0x21, 0xfe, //0x000015fc andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x000015ff orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001602 testq %rsi, %rsi + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00001605 je LBB0_275 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x0000160b jmp LBB0_289 + //0x00001610 LBB0_287 + 0x4c, 0x89, 0xdb, //0x00001610 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00001613 subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xcd, //0x00001617 bsfq %r13, %r9 + 0x49, 0x01, 0xd9, //0x0000161b addq %rbx, %r9 + 0xe9, 0x49, 0xff, 0xff, 0xff, //0x0000161e jmp LBB0_273 + //0x00001623 LBB0_289 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001623 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001627 testq %rdx, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000162a movq $-48(%rbp), %r12 + 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, //0x0000162e je LBB0_304 + 0x48, 0x0f, 0xbc, 0xca, //0x00001634 bsfq %rdx, %rcx + 0x4d, 0x29, 0xe3, //0x00001638 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x0000163b cmpq %rax, %rcx + 0x0f, 0x83, 0x94, 0xf8, 0xff, 0xff, //0x0000163e jae LBB0_186 + 0xe9, 0x11, 0x0f, 0x00, 0x00, //0x00001644 jmp LBB0_306 + //0x00001649 LBB0_291 + 0x49, 0x01, 0xcd, //0x00001649 addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000164c movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xb0, //0x0000164f movq $-80(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x00001653 movq $-72(%rbp), %rbx + //0x00001657 LBB0_292 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001657 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x0000165e testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001661 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xcb, 0x0d, 0x00, 0x00, //0x00001665 je LBB0_439 + //0x0000166b LBB0_293 + 0x48, 0x85, 0xdb, //0x0000166b testq %rbx, %rbx + 0x0f, 0x84, 0xc2, 0x0d, 0x00, 0x00, //0x0000166e je LBB0_439 + 0x4d, 0x85, 0xf6, //0x00001674 testq %r14, %r14 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001677 movq $-64(%rbp), %r9 + 0x0f, 0x84, 0xb5, 0x0d, 0x00, 0x00, //0x0000167b je LBB0_439 + 0x4d, 0x29, 0xe0, //0x00001681 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00001684 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x00001688 cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000168b je LBB0_301 + 0x49, 0x39, 0xc6, //0x00001691 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00001694 je LBB0_301 + 0x48, 0x39, 0xc3, //0x0000169a cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x0000169d je LBB0_301 + 0x48, 0x85, 0xdb, //0x000016a3 testq %rbx, %rbx + 0x0f, 0x8e, 0x6e, 0x00, 0x00, 0x00, //0x000016a6 jle LBB0_309 + 0x48, 0x8d, 0x43, 0xff, //0x000016ac leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000016b0 cmpq %rax, %rdi + 0x0f, 0x84, 0x61, 0x00, 0x00, 0x00, //0x000016b3 je LBB0_309 + 0x48, 0xf7, 0xd3, //0x000016b9 notq %rbx + 0x49, 0x89, 0xdb, //0x000016bc movq %rbx, %r11 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000016bf jmp LBB0_302 + //0x000016c4 LBB0_301 + 0x49, 0xf7, 0xd8, //0x000016c4 negq %r8 + 0x4d, 0x89, 0xc3, //0x000016c7 movq %r8, %r11 + //0x000016ca LBB0_302 + 0x4d, 0x85, 0xdb, //0x000016ca testq %r11, %r11 + 0x0f, 0x88, 0x63, 0x0d, 0x00, 0x00, //0x000016cd js LBB0_439 + //0x000016d3 LBB0_303 + 0x48, 0x8b, 0x4d, 0xa8, //0x000016d3 movq $-88(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x000016d7 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x000016da movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000016dd movq %r15, %rax + 0x48, 0x85, 0xc9, //0x000016e0 testq %rcx, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x000016e3 movq $-48(%rbp), %r12 + 0x0f, 0x8f, 0xc3, 0xea, 0xff, 0xff, //0x000016e7 jg LBB0_2 + 0xe9, 0xb0, 0x0c, 0x00, 0x00, //0x000016ed jmp LBB0_423 + //0x000016f2 LBB0_304 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000016f2 movl $64, %ecx + 0x4d, 0x29, 0xe3, //0x000016f7 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x000016fa cmpq %rax, %rcx + 0x0f, 0x83, 0xd5, 0xf7, 0xff, 0xff, //0x000016fd jae LBB0_186 + 0xe9, 0x52, 0x0e, 0x00, 0x00, //0x00001703 jmp LBB0_306 + //0x00001708 LBB0_308 + 0x4d, 0x29, 0xd6, //0x00001708 subq %r10, %r14 + 0x44, 0x0f, 0xbc, 0xde, //0x0000170b bsfl %esi, %r11d + 0x4d, 0x01, 0xf3, //0x0000170f addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x00001712 notq %r11 + 0xe9, 0xa6, 0x03, 0x00, 0x00, //0x00001715 jmp LBB0_326 + //0x0000171a LBB0_309 + 0x4c, 0x89, 0xf0, //0x0000171a movq %r14, %rax + 0x48, 0x09, 0xf8, //0x0000171d orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001720 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x66, 0x01, 0x00, 0x00, //0x00001723 jl LBB0_312 + 0x48, 0x85, 0xc0, //0x00001729 testq %rax, %rax + 0x0f, 0x88, 0x5d, 0x01, 0x00, 0x00, //0x0000172c js LBB0_312 + 0x49, 0xf7, 0xd6, //0x00001732 notq %r14 + 0x4d, 0x89, 0xf3, //0x00001735 movq %r14, %r11 + 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00001738 jmp LBB0_302 + //0x0000173d LBB0_49 + 0x4c, 0x8b, 0x5d, 0xb8, //0x0000173d movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xd5, //0x00001741 movq %r10, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001744 cmpq $32, %r13 + 0x0f, 0x82, 0x66, 0x08, 0x00, 0x00, //0x00001748 jb LBB0_366 + //0x0000174e LBB0_50 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x0000174e vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001753 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001759 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x0000175d vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001761 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001765 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001769 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000176d vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001771 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001775 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001779 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000177d shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001781 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001784 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001788 jne LBB0_52 + 0x48, 0x85, 0xff, //0x0000178e testq %rdi, %rdi + 0x0f, 0x85, 0xbc, 0x07, 0x00, 0x00, //0x00001791 jne LBB0_363 + //0x00001797 LBB0_52 + 0x48, 0x09, 0xca, //0x00001797 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x0000179a movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x0000179d orq %r12, %rax + 0x0f, 0x85, 0xca, 0x07, 0x00, 0x00, //0x000017a0 jne LBB0_364 + //0x000017a6 LBB0_53 + 0x48, 0x85, 0xd2, //0x000017a6 testq %rdx, %rdx + 0x0f, 0x84, 0xfd, 0x07, 0x00, 0x00, //0x000017a9 je LBB0_365 + //0x000017af LBB0_54 + 0x48, 0x0f, 0xbc, 0xc2, //0x000017af bsfq %rdx, %rax + 0xe9, 0xdb, 0xed, 0xff, 0xff, //0x000017b3 jmp LBB0_58 + //0x000017b8 LBB0_113 + 0x4d, 0x89, 0xd3, //0x000017b8 movq %r10, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x000017bb movq $-72(%rbp), %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000017bf movq $-48(%rbp), %r12 + 0x48, 0x83, 0xf8, 0x20, //0x000017c3 cmpq $32, %rax + 0x0f, 0x82, 0x66, 0x02, 0x00, 0x00, //0x000017c7 jb LBB0_317 + //0x000017cd LBB0_114 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000017cd vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000017d2 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000017d8 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000017dc vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000017e0 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x000017e4 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x000017e8 vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000017ec vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x000017f0 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x000017f4 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x000017f8 vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x000017fc vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001800 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001804 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001808 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000180c vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001810 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001814 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001818 shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x0000181c shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001820 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001823 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001827 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x0000182d testq %rdx, %rdx + 0x0f, 0x85, 0xf8, 0x07, 0x00, 0x00, //0x00001830 jne LBB0_373 + //0x00001836 LBB0_116 + 0x48, 0xc1, 0xe7, 0x10, //0x00001836 shlq $16, %rdi + 0x48, 0x09, 0xce, //0x0000183a orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x0000183d movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001840 orq %r8, %rcx + 0x0f, 0x85, 0xcb, 0x06, 0x00, 0x00, //0x00001843 jne LBB0_362 + //0x00001849 LBB0_117 + 0x4c, 0x09, 0xf7, //0x00001849 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000184c movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001851 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001856 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001859 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000185f bsfq %rsi, %rdx + //0x00001863 LBB0_119 + 0x48, 0x85, 0xff, //0x00001863 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001866 je LBB0_121 + 0x48, 0x0f, 0xbc, 0xcf, //0x0000186c bsfq %rdi, %rcx + //0x00001870 LBB0_121 + 0x48, 0x85, 0xf6, //0x00001870 testq %rsi, %rsi + 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x00001873 je LBB0_315 + //0x00001879 LBB0_122 + 0x4d, 0x29, 0xe3, //0x00001879 subq %r12, %r11 + 0x48, 0x39, 0xd1, //0x0000187c cmpq %rdx, %rcx + 0x0f, 0x82, 0xd5, 0x0c, 0x00, 0x00, //0x0000187f jb LBB0_306 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001885 leaq $1(%r11,%rdx), %r11 + 0xe9, 0x4e, 0xf6, 0xff, 0xff, //0x0000188a jmp LBB0_187 + //0x0000188f LBB0_312 + 0x48, 0x85, 0xc0, //0x0000188f testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x00001892 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x00001896 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x00001899 cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x0000189d cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x000018a0 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x000018a4 movq %rdi, %r11 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x000018a7 jmp LBB0_302 + //0x000018ac LBB0_313 + 0x48, 0xf7, 0xd0, //0x000018ac notq %rax + 0x49, 0x89, 0xc3, //0x000018af movq %rax, %r11 + 0xe9, 0x09, 0x02, 0x00, 0x00, //0x000018b2 jmp LBB0_326 + //0x000018b7 LBB0_314 + 0x48, 0x89, 0x4d, 0xa8, //0x000018b7 movq %rcx, $-88(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000018bb movq $-1, %rax + 0x4d, 0x85, 0xed, //0x000018c2 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000018c5 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x86, 0xf3, 0xff, 0xff, //0x000018c9 jne LBB0_151 + 0xe9, 0xbe, 0x0a, 0x00, 0x00, //0x000018cf jmp LBB0_420 + //0x000018d4 LBB0_134 + 0x4c, 0x8b, 0x5d, 0xb8, //0x000018d4 movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xd5, //0x000018d8 movq %r10, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x000018db cmpq $32, %r13 + 0x0f, 0x82, 0x57, 0x08, 0x00, 0x00, //0x000018df jb LBB0_382 + //0x000018e5 LBB0_135 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000018e5 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000018ea vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000018f0 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000018f4 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000018f8 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000018fc vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001900 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001904 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001908 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x0000190c vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001910 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001914 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001918 orq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000191b cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000191f jne LBB0_137 + 0x48, 0x85, 0xff, //0x00001925 testq %rdi, %rdi + 0x0f, 0x85, 0xad, 0x07, 0x00, 0x00, //0x00001928 jne LBB0_379 + //0x0000192e LBB0_137 + 0x48, 0x09, 0xca, //0x0000192e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001931 movq %rdi, %rax + 0x4c, 0x09, 0xc8, //0x00001934 orq %r9, %rax + 0x0f, 0x85, 0xbb, 0x07, 0x00, 0x00, //0x00001937 jne LBB0_380 + //0x0000193d LBB0_138 + 0x48, 0x85, 0xd2, //0x0000193d testq %rdx, %rdx + 0x0f, 0x84, 0xee, 0x07, 0x00, 0x00, //0x00001940 je LBB0_381 + //0x00001946 LBB0_139 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001946 bsfq %rdx, %rax + 0xe9, 0x94, 0xf2, 0xff, 0xff, //0x0000194a jmp LBB0_143 + //0x0000194f LBB0_170 + 0x4d, 0x89, 0xc3, //0x0000194f movq %r8, %r11 + 0x4c, 0x89, 0xd0, //0x00001952 movq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001955 cmpq $32, %rax + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x00001959 jb LBB0_329 + //0x0000195f LBB0_171 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x0000195f vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001964 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x0000196a vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0x79, 0xd7, 0xc5, //0x0000196e vpmovmskb %xmm5, %r8d + 0xc5, 0xd9, 0x74, 0xe8, //0x00001972 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001976 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x0000197a vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000197e vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001982 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001986 vpmovmskb %xmm5, %ecx + 0xc5, 0x81, 0x64, 0xea, //0x0000198a vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x0000198e vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001992 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001996 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x0000199a vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000199e vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x000019a2 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000019a6 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x000019aa shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000019ae shlq $16, %rcx + 0x48, 0x09, 0xca, //0x000019b2 orq %rcx, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000019b5 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000019b9 jne LBB0_173 + 0x48, 0x85, 0xd2, //0x000019bf testq %rdx, %rdx + 0x0f, 0x85, 0x02, 0x08, 0x00, 0x00, //0x000019c2 jne LBB0_390 + //0x000019c8 LBB0_173 + 0x48, 0xc1, 0xe7, 0x10, //0x000019c8 shlq $16, %rdi + 0x4c, 0x09, 0xc6, //0x000019cc orq %r8, %rsi + 0x48, 0x89, 0xd1, //0x000019cf movq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x000019d2 orq %r9, %rcx + 0x0f, 0x85, 0x65, 0x06, 0x00, 0x00, //0x000019d5 jne LBB0_374 + //0x000019db LBB0_174 + 0x4c, 0x09, 0xf7, //0x000019db orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000019de movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000019e3 movl $64, %edx + 0x48, 0x85, 0xf6, //0x000019e8 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019eb je LBB0_176 + 0x48, 0x0f, 0xbc, 0xd6, //0x000019f1 bsfq %rsi, %rdx + //0x000019f5 LBB0_176 + 0x48, 0x85, 0xff, //0x000019f5 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019f8 je LBB0_178 + 0x48, 0x0f, 0xbc, 0xcf, //0x000019fe bsfq %rdi, %rcx + //0x00001a02 LBB0_178 + 0x48, 0x85, 0xf6, //0x00001a02 testq %rsi, %rsi + 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, //0x00001a05 je LBB0_327 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00001a0b subq $-48(%rbp), %r11 + 0x48, 0x39, 0xd1, //0x00001a0f cmpq %rdx, %rcx + 0x0f, 0x82, 0x83, 0x0b, 0x00, 0x00, //0x00001a12 jb LBB0_458 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001a18 leaq $1(%r11,%rdx), %r11 + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00001a1d jmp LBB0_144 + //0x00001a22 LBB0_315 + 0x48, 0x85, 0xff, //0x00001a22 testq %rdi, %rdi + 0x0f, 0x85, 0x5c, 0x0b, 0x00, 0x00, //0x00001a25 jne LBB0_457 + 0x49, 0x83, 0xc3, 0x20, //0x00001a2b addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001a2f addq $-32, %rax + //0x00001a33 LBB0_317 + 0x4d, 0x85, 0xc0, //0x00001a33 testq %r8, %r8 + 0x0f, 0x85, 0x6f, 0x06, 0x00, 0x00, //0x00001a36 jne LBB0_377 + 0x48, 0x85, 0xc0, //0x00001a3c testq %rax, %rax + 0x0f, 0x84, 0x2e, 0x09, 0x00, 0x00, //0x00001a3f je LBB0_416 + //0x00001a45 LBB0_319 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001a45 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001a49 cmpb $34, %cl + 0x0f, 0x84, 0xa4, 0x03, 0x00, 0x00, //0x00001a4c je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001a52 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001a55 je LBB0_323 + 0x80, 0xf9, 0x1f, //0x00001a5b cmpb $31, %cl + 0x0f, 0x86, 0x2f, 0x0b, 0x00, 0x00, //0x00001a5e jbe LBB0_461 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001a64 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001a6b movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001a70 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001a73 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001a76 jne LBB0_319 + 0xe9, 0xf2, 0x08, 0x00, 0x00, //0x00001a7c jmp LBB0_416 + //0x00001a81 LBB0_323 + 0x48, 0x83, 0xf8, 0x01, //0x00001a81 cmpq $1, %rax + 0x0f, 0x84, 0xe8, 0x08, 0x00, 0x00, //0x00001a85 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001a8b movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001a8e movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001a92 subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001a95 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001a99 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001a9d movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001aa4 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001aa9 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001aac addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001aaf jne LBB0_319 + 0xe9, 0xb9, 0x08, 0x00, 0x00, //0x00001ab5 jmp LBB0_416 + //0x00001aba LBB0_325 + 0x48, 0xf7, 0xd6, //0x00001aba notq %rsi + 0x49, 0x89, 0xf3, //0x00001abd movq %rsi, %r11 + //0x00001ac0 LBB0_326 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ac0 movq $-56(%rbp), %rsi + 0xe9, 0xff, 0xf1, 0xff, 0xff, //0x00001ac4 jmp LBB0_160 + //0x00001ac9 LBB0_327 + 0x48, 0x85, 0xff, //0x00001ac9 testq %rdi, %rdi + 0x0f, 0x85, 0xdb, 0x0a, 0x00, 0x00, //0x00001acc jne LBB0_459 + 0x49, 0x83, 0xc3, 0x20, //0x00001ad2 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001ad6 addq $-32, %rax + //0x00001ada LBB0_329 + 0x4d, 0x85, 0xc9, //0x00001ada testq %r9, %r9 + 0x0f, 0x85, 0x2e, 0x07, 0x00, 0x00, //0x00001add jne LBB0_393 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ae3 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001ae7 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00001aeb testq %rax, %rax + 0x0f, 0x84, 0xc7, 0x08, 0x00, 0x00, //0x00001aee je LBB0_425 + //0x00001af4 LBB0_331 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001af4 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001af8 cmpb $34, %cl + 0x0f, 0x84, 0xa7, 0x00, 0x00, 0x00, //0x00001afb je LBB0_340 + 0x80, 0xf9, 0x5c, //0x00001b01 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001b04 je LBB0_335 + 0x80, 0xf9, 0x1f, //0x00001b0a cmpb $31, %cl + 0x0f, 0x86, 0xa3, 0x0a, 0x00, 0x00, //0x00001b0d jbe LBB0_460 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001b13 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001b1a movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001b1f addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b22 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001b25 jne LBB0_331 + 0xe9, 0x8b, 0x08, 0x00, 0x00, //0x00001b2b jmp LBB0_425 + //0x00001b30 LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x00001b30 cmpq $1, %rax + 0x0f, 0x84, 0x8f, 0x0a, 0x00, 0x00, //0x00001b34 je LBB0_462 + 0x4c, 0x89, 0xd9, //0x00001b3a movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001b3d subq $-48(%rbp), %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00001b41 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00001b45 cmoveq %rcx, %r12 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001b49 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001b50 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b55 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b59 movq $-64(%rbp), %r9 + 0x49, 0x01, 0xd3, //0x00001b5d addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b60 addq %rcx, %rax + 0x0f, 0x85, 0x8b, 0xff, 0xff, 0xff, //0x00001b63 jne LBB0_331 + 0xe9, 0x4d, 0x08, 0x00, 0x00, //0x00001b69 jmp LBB0_425 + //0x00001b6e LBB0_418 + 0x48, 0xf7, 0xda, //0x00001b6e negq %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b71 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x65, 0xd0, //0x00001b75 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b79 movq $-64(%rbp), %r9 + 0x49, 0x89, 0xd3, //0x00001b7d movq %rdx, %r11 + 0x4d, 0x85, 0xdb, //0x00001b80 testq %r11, %r11 + 0x0f, 0x89, 0x0b, 0xe6, 0xff, 0xff, //0x00001b83 jns LBB0_258 + 0xe9, 0x01, 0x08, 0x00, 0x00, //0x00001b89 jmp LBB0_419 + //0x00001b8e LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001b8e subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001b91 bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001b95 addq %r13, %r11 + //0x00001b98 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001b98 notq %r11 + //0x00001b9b LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b9b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b9f movq $-64(%rbp), %r9 + 0xe9, 0x22, 0xfb, 0xff, 0xff, //0x00001ba3 jmp LBB0_302 + //0x00001ba8 LBB0_340 + 0x4c, 0x03, 0x5d, 0x98, //0x00001ba8 addq $-104(%rbp), %r11 + 0xe9, 0x9f, 0xf3, 0xff, 0xff, //0x00001bac jmp LBB0_195 + //0x00001bb1 LBB0_208 + 0x4d, 0x89, 0xc3, //0x00001bb1 movq %r8, %r11 + 0x4c, 0x8b, 0x65, 0xb8, //0x00001bb4 movq $-72(%rbp), %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00001bb8 cmpq $32, %r12 + 0x0f, 0x82, 0x69, 0x00, 0x00, 0x00, //0x00001bbc jb LBB0_399 + //0x00001bc2 LBB0_209 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001bc2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001bc7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001bcd vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001bd1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001bd5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001bd9 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001bdd vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001be1 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001be5 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001be9 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001bed shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001bf1 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001bf5 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001bf8 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001bfc jne LBB0_211 + 0x48, 0x85, 0xff, //0x00001c02 testq %rdi, %rdi + 0x0f, 0x85, 0x75, 0x06, 0x00, 0x00, //0x00001c05 jne LBB0_396 + //0x00001c0b LBB0_211 + 0x48, 0x09, 0xca, //0x00001c0b orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001c0e movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00001c11 orq %r10, %rax + 0x0f, 0x85, 0x83, 0x06, 0x00, 0x00, //0x00001c14 jne LBB0_397 + //0x00001c1a LBB0_212 + 0x48, 0x85, 0xd2, //0x00001c1a testq %rdx, %rdx + 0x0f, 0x85, 0x8c, 0xfb, 0xff, 0xff, //0x00001c1d jne LBB0_54 + //0x00001c23 LBB0_398 + 0x49, 0x83, 0xc3, 0x20, //0x00001c23 addq $32, %r11 + 0x49, 0x83, 0xc4, 0xe0, //0x00001c27 addq $-32, %r12 + //0x00001c2b LBB0_399 + 0x4d, 0x85, 0xd2, //0x00001c2b testq %r10, %r10 + 0x0f, 0x85, 0xbe, 0x06, 0x00, 0x00, //0x00001c2e jne LBB0_411 + 0x4d, 0x85, 0xe4, //0x00001c34 testq %r12, %r12 + 0x0f, 0x84, 0x36, 0x07, 0x00, 0x00, //0x00001c37 je LBB0_416 + //0x00001c3d LBB0_401 + 0x49, 0x8d, 0x4b, 0x01, //0x00001c3d leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001c41 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001c45 cmpb $34, %bl + 0x0f, 0x84, 0x20, 0x02, 0x00, 0x00, //0x00001c48 je LBB0_406 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00001c4e leaq $-1(%r12), %rdx + 0x80, 0xfb, 0x5c, //0x00001c53 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001c56 je LBB0_404 + 0x49, 0x89, 0xd4, //0x00001c5c movq %rdx, %r12 + 0x49, 0x89, 0xcb, //0x00001c5f movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001c62 testq %rdx, %rdx + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00001c65 jne LBB0_401 + 0xe9, 0x03, 0x07, 0x00, 0x00, //0x00001c6b jmp LBB0_416 + //0x00001c70 LBB0_404 + 0x48, 0x85, 0xd2, //0x00001c70 testq %rdx, %rdx + 0x0f, 0x84, 0xfa, 0x06, 0x00, 0x00, //0x00001c73 je LBB0_416 + 0x48, 0x03, 0x4d, 0xa0, //0x00001c79 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001c7d cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001c81 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00001c85 addq $2, %r11 + 0x49, 0x83, 0xc4, 0xfe, //0x00001c89 addq $-2, %r12 + 0x4c, 0x89, 0xe2, //0x00001c8d movq %r12, %rdx + 0x48, 0x85, 0xd2, //0x00001c90 testq %rdx, %rdx + 0x0f, 0x85, 0xa4, 0xff, 0xff, 0xff, //0x00001c93 jne LBB0_401 + 0xe9, 0xd5, 0x06, 0x00, 0x00, //0x00001c99 jmp LBB0_416 + //0x00001c9e LBB0_277 + 0x4d, 0x89, 0xe3, //0x00001c9e movq %r12, %r11 + 0x4c, 0x89, 0xd0, //0x00001ca1 movq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001ca4 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001ca8 movq $-48(%rbp), %r12 + 0x0f, 0x82, 0xbd, 0x00, 0x00, 0x00, //0x00001cac jb LBB0_345 + //0x00001cb2 LBB0_278 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001cb2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001cb7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001cbd vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001cc1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001cc5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001cc9 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x00001ccd vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001cd1 vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001cd5 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x00001cd9 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x00001cdd vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x00001ce1 vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001ce5 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001ce9 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001ced vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001cf1 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001cf5 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001cf9 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001cfd shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00001d01 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001d05 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001d08 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001d0c jne LBB0_280 + 0x48, 0x85, 0xd2, //0x00001d12 testq %rdx, %rdx + 0x0f, 0x85, 0xc5, 0x05, 0x00, 0x00, //0x00001d15 jne LBB0_408 + //0x00001d1b LBB0_280 + 0x48, 0xc1, 0xe7, 0x10, //0x00001d1b shlq $16, %rdi + 0x48, 0x09, 0xce, //0x00001d1f orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x00001d22 movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001d25 orq %r8, %rcx + 0x0f, 0x85, 0x17, 0x05, 0x00, 0x00, //0x00001d28 jne LBB0_395 + //0x00001d2e LBB0_281 + 0x4c, 0x09, 0xf7, //0x00001d2e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001d31 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001d36 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001d3b testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d3e je LBB0_283 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001d44 bsfq %rsi, %rdx + //0x00001d48 LBB0_283 + 0x48, 0x85, 0xff, //0x00001d48 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d4b je LBB0_285 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001d51 bsfq %rdi, %rcx + //0x00001d55 LBB0_285 + 0x48, 0x85, 0xf6, //0x00001d55 testq %rsi, %rsi + 0x0f, 0x85, 0x1b, 0xfb, 0xff, 0xff, //0x00001d58 jne LBB0_122 + 0x48, 0x85, 0xff, //0x00001d5e testq %rdi, %rdi + 0x0f, 0x85, 0x20, 0x08, 0x00, 0x00, //0x00001d61 jne LBB0_457 + 0x49, 0x83, 0xc3, 0x20, //0x00001d67 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001d6b addq $-32, %rax + //0x00001d6f LBB0_345 + 0x4d, 0x85, 0xc0, //0x00001d6f testq %r8, %r8 + 0x0f, 0x85, 0xa6, 0x05, 0x00, 0x00, //0x00001d72 jne LBB0_409 + 0x48, 0x85, 0xc0, //0x00001d78 testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x00001d7b je LBB0_416 + //0x00001d81 LBB0_347 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001d81 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001d85 cmpb $34, %cl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001d88 je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001d8e cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001d91 je LBB0_351 + 0x80, 0xf9, 0x1f, //0x00001d97 cmpb $31, %cl + 0x0f, 0x86, 0xf3, 0x07, 0x00, 0x00, //0x00001d9a jbe LBB0_461 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001da0 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001da7 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001dac addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001daf addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001db2 jne LBB0_347 + 0xe9, 0xb6, 0x05, 0x00, 0x00, //0x00001db8 jmp LBB0_416 + //0x00001dbd LBB0_351 + 0x48, 0x83, 0xf8, 0x01, //0x00001dbd cmpq $1, %rax + 0x0f, 0x84, 0xac, 0x05, 0x00, 0x00, //0x00001dc1 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001dc7 movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001dca movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001dce subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001dd1 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001dd5 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001dd9 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001de0 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001de5 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001de8 addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001deb jne LBB0_347 + 0xe9, 0x7d, 0x05, 0x00, 0x00, //0x00001df1 jmp LBB0_416 + //0x00001df6 LBB0_355 + 0x4c, 0x03, 0x5d, 0x98, //0x00001df6 addq $-104(%rbp), %r11 + 0xe9, 0xde, 0xf0, 0xff, 0xff, //0x00001dfa jmp LBB0_187 + //0x00001dff LBB0_341 + 0x49, 0x89, 0xc8, //0x00001dff movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e02 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001e09 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001e0c movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x55, 0xf8, 0xff, 0xff, //0x00001e10 jne LBB0_293 + 0xe9, 0x1b, 0x06, 0x00, 0x00, //0x00001e16 jmp LBB0_439 + //0x00001e1b LBB0_342 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e1b movq $-1, %r11 + 0x4c, 0x89, 0x55, 0xa8, //0x00001e22 movq %r10, $-88(%rbp) + 0x49, 0x89, 0xf9, //0x00001e26 movq %rdi, %r9 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001e29 movq $-1, %r13 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e30 movq $-1, %r12 + 0xe9, 0x54, 0xe9, 0xff, 0xff, //0x00001e37 jmp LBB0_90 + //0x00001e3c LBB0_353 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e3c movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00001e43 xorl %r12d, %r12d + 0x49, 0x83, 0xfd, 0x20, //0x00001e46 cmpq $32, %r13 + 0x0f, 0x83, 0xfe, 0xf8, 0xff, 0xff, //0x00001e4a jae LBB0_50 + 0xe9, 0x5f, 0x01, 0x00, 0x00, //0x00001e50 jmp LBB0_366 + //0x00001e55 LBB0_354 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e55 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001e5c xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001e5f cmpq $32, %rax + 0x0f, 0x83, 0x64, 0xf9, 0xff, 0xff, //0x00001e63 jae LBB0_114 + 0xe9, 0xc5, 0xfb, 0xff, 0xff, //0x00001e69 jmp LBB0_317 + //0x00001e6e LBB0_406 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001e6e movq $-48(%rbp), %r12 + //0x00001e72 LBB0_407 + 0x4c, 0x29, 0xe1, //0x00001e72 subq %r12, %rcx + 0x49, 0x89, 0xcb, //0x00001e75 movq %rcx, %r11 + 0xe9, 0x60, 0xf0, 0xff, 0xff, //0x00001e78 jmp LBB0_187 + //0x00001e7d LBB0_356 + 0x49, 0xf7, 0xdb, //0x00001e7d negq %r11 + 0xe9, 0x16, 0xfd, 0xff, 0xff, //0x00001e80 jmp LBB0_339 + //0x00001e85 LBB0_357 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e85 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00001e8c xorl %r9d, %r9d + 0x49, 0x83, 0xfd, 0x20, //0x00001e8f cmpq $32, %r13 + 0x0f, 0x83, 0x4c, 0xfa, 0xff, 0xff, //0x00001e93 jae LBB0_135 + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00001e99 jmp LBB0_382 + //0x00001e9e LBB0_358 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e9e movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00001ea5 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x00001ea8 cmpq $32, %rax + 0x0f, 0x83, 0xad, 0xfa, 0xff, 0xff, //0x00001eac jae LBB0_171 + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00001eb2 jmp LBB0_329 + //0x00001eb7 LBB0_359 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001eb7 movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x00001ebe movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x00001ec1 movq %r10, %r9 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001ec4 movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ecb movq $-1, %rbx + 0x48, 0x8d, 0x35, 0x03, 0x09, 0x00, 0x00, //0x00001ed2 leaq $2307(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0x14, 0xf4, 0xff, 0xff, //0x00001ed9 jmp LBB0_239 + //0x00001ede LBB0_360 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001ede movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00001ee5 xorl %r10d, %r10d + 0x49, 0x83, 0xfc, 0x20, //0x00001ee8 cmpq $32, %r12 + 0x0f, 0x83, 0xd0, 0xfc, 0xff, 0xff, //0x00001eec jae LBB0_209 + 0xe9, 0x34, 0xfd, 0xff, 0xff, //0x00001ef2 jmp LBB0_399 + //0x00001ef7 LBB0_361 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001ef7 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001efe xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001f01 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f05 movq $-48(%rbp), %r12 + 0x0f, 0x83, 0xa3, 0xfd, 0xff, 0xff, //0x00001f09 jae LBB0_278 + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00001f0f jmp LBB0_345 + //0x00001f14 LBB0_362 + 0x44, 0x89, 0xc1, //0x00001f14 movl %r8d, %ecx + 0xf7, 0xd1, //0x00001f17 notl %ecx + 0x21, 0xd1, //0x00001f19 andl %edx, %ecx + 0x44, 0x8d, 0x24, 0x09, //0x00001f1b leal (%rcx,%rcx), %r12d + 0x45, 0x09, 0xc4, //0x00001f1f orl %r8d, %r12d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f22 movl $2863311530, %ebx + 0x44, 0x31, 0xe3, //0x00001f27 xorl %r12d, %ebx + 0x21, 0xd3, //0x00001f2a andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f2c andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00001f32 xorl %r8d, %r8d + 0x01, 0xcb, //0x00001f35 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00001f37 setb %r8b + 0x01, 0xdb, //0x00001f3b addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00001f3d xorl $1431655765, %ebx + 0x44, 0x21, 0xe3, //0x00001f43 andl %r12d, %ebx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f46 movq $-48(%rbp), %r12 + 0xf7, 0xd3, //0x00001f4a notl %ebx + 0x21, 0xde, //0x00001f4c andl %ebx, %esi + 0xe9, 0xf6, 0xf8, 0xff, 0xff, //0x00001f4e jmp LBB0_117 + //0x00001f53 LBB0_363 + 0x4c, 0x89, 0xd8, //0x00001f53 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001f56 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00001f5a bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x00001f5e addq %rax, %r9 + 0x48, 0x09, 0xca, //0x00001f61 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001f64 movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x00001f67 orq %r12, %rax + 0x0f, 0x84, 0x36, 0xf8, 0xff, 0xff, //0x00001f6a je LBB0_53 + //0x00001f70 LBB0_364 + 0x44, 0x89, 0xe0, //0x00001f70 movl %r12d, %eax + 0xf7, 0xd0, //0x00001f73 notl %eax + 0x21, 0xf8, //0x00001f75 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x00001f77 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xe1, //0x00001f7a orl %r12d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f7d movl $2863311530, %esi + 0x31, 0xce, //0x00001f82 xorl %ecx, %esi + 0x21, 0xfe, //0x00001f84 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f86 andl $-1431655766, %esi + 0x45, 0x31, 0xe4, //0x00001f8c xorl %r12d, %r12d + 0x01, 0xc6, //0x00001f8f addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc4, //0x00001f91 setb %r12b + 0x01, 0xf6, //0x00001f95 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x00001f97 xorl $1431655765, %esi + 0x21, 0xce, //0x00001f9d andl %ecx, %esi + 0xf7, 0xd6, //0x00001f9f notl %esi + 0x21, 0xf2, //0x00001fa1 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00001fa3 testq %rdx, %rdx + 0x0f, 0x85, 0x03, 0xf8, 0xff, 0xff, //0x00001fa6 jne LBB0_54 + //0x00001fac LBB0_365 + 0x49, 0x83, 0xc3, 0x20, //0x00001fac addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00001fb0 addq $-32, %r13 + //0x00001fb4 LBB0_366 + 0x4d, 0x85, 0xe4, //0x00001fb4 testq %r12, %r12 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00001fb7 jne LBB0_375 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001fbd movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x00001fc1 testq %r13, %r13 + 0x0f, 0x84, 0xa9, 0x03, 0x00, 0x00, //0x00001fc4 je LBB0_416 + //0x00001fca LBB0_368 + 0x49, 0x8d, 0x4b, 0x01, //0x00001fca leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001fce movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001fd2 cmpb $34, %bl + 0x0f, 0x84, 0x97, 0xfe, 0xff, 0xff, //0x00001fd5 je LBB0_407 + 0x49, 0x8d, 0x55, 0xff, //0x00001fdb leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00001fdf cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001fe2 je LBB0_371 + 0x49, 0x89, 0xd5, //0x00001fe8 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00001feb movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001fee testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00001ff1 jne LBB0_368 + 0xe9, 0x77, 0x03, 0x00, 0x00, //0x00001ff7 jmp LBB0_416 + //0x00001ffc LBB0_371 + 0x48, 0x85, 0xd2, //0x00001ffc testq %rdx, %rdx + 0x0f, 0x84, 0x6e, 0x03, 0x00, 0x00, //0x00001fff je LBB0_416 + 0x48, 0x03, 0x4d, 0xa0, //0x00002005 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002009 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x0000200d cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00002011 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002015 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002019 movq %r13, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000201c movq $-48(%rbp), %r12 + 0x48, 0x85, 0xd2, //0x00002020 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x00002023 jne LBB0_368 + 0xe9, 0x45, 0x03, 0x00, 0x00, //0x00002029 jmp LBB0_416 + //0x0000202e LBB0_373 + 0x4c, 0x89, 0xdb, //0x0000202e movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x00002031 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002034 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x00002038 addq %rbx, %r9 + 0xe9, 0xf6, 0xf7, 0xff, 0xff, //0x0000203b jmp LBB0_116 + //0x00002040 LBB0_374 + 0x44, 0x89, 0xc9, //0x00002040 movl %r9d, %ecx + 0xf7, 0xd1, //0x00002043 notl %ecx + 0x21, 0xd1, //0x00002045 andl %edx, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x00002047 leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xc8, //0x0000204b orl %r9d, %r8d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000204e movl $2863311530, %ebx + 0x44, 0x31, 0xc3, //0x00002053 xorl %r8d, %ebx + 0x21, 0xd3, //0x00002056 andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002058 andl $-1431655766, %ebx + 0x45, 0x31, 0xc9, //0x0000205e xorl %r9d, %r9d + 0x01, 0xcb, //0x00002061 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc1, //0x00002063 setb %r9b + 0x01, 0xdb, //0x00002067 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00002069 xorl $1431655765, %ebx + 0x44, 0x21, 0xc3, //0x0000206f andl %r8d, %ebx + 0xf7, 0xd3, //0x00002072 notl %ebx + 0x21, 0xde, //0x00002074 andl %ebx, %esi + 0xe9, 0x60, 0xf9, 0xff, 0xff, //0x00002076 jmp LBB0_174 + //0x0000207b LBB0_375 + 0x4d, 0x85, 0xed, //0x0000207b testq %r13, %r13 + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x0000207e je LBB0_416 + 0x48, 0x8b, 0x45, 0xa0, //0x00002084 movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002088 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x0000208b cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x0000208f cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x00002093 incq %r11 + 0x49, 0xff, 0xcd, //0x00002096 decq %r13 + 0x4c, 0x8b, 0x65, 0xd0, //0x00002099 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x0000209d testq %r13, %r13 + 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x000020a0 jne LBB0_368 + 0xe9, 0xc8, 0x02, 0x00, 0x00, //0x000020a6 jmp LBB0_416 + //0x000020ab LBB0_377 + 0x48, 0x85, 0xc0, //0x000020ab testq %rax, %rax + 0x0f, 0x84, 0xbf, 0x02, 0x00, 0x00, //0x000020ae je LBB0_416 + 0x48, 0x8b, 0x4d, 0xa0, //0x000020b4 movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x000020b8 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000020bb cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x000020bf cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x000020c3 incq %r11 + 0x48, 0xff, 0xc8, //0x000020c6 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000020c9 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x000020cd testq %rax, %rax + 0x0f, 0x85, 0x6f, 0xf9, 0xff, 0xff, //0x000020d0 jne LBB0_319 + 0xe9, 0x98, 0x02, 0x00, 0x00, //0x000020d6 jmp LBB0_416 + //0x000020db LBB0_379 + 0x4c, 0x89, 0xd8, //0x000020db movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000020de subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x000020e2 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x000020e6 addq %rax, %r12 + 0x48, 0x09, 0xca, //0x000020e9 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x000020ec movq %rdi, %rax + 0x4c, 0x09, 0xc8, //0x000020ef orq %r9, %rax + 0x0f, 0x84, 0x45, 0xf8, 0xff, 0xff, //0x000020f2 je LBB0_138 + //0x000020f8 LBB0_380 + 0x44, 0x89, 0xc8, //0x000020f8 movl %r9d, %eax + 0xf7, 0xd0, //0x000020fb notl %eax + 0x21, 0xf8, //0x000020fd andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x000020ff leal (%rax,%rax), %ecx + 0x44, 0x09, 0xc9, //0x00002102 orl %r9d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002105 movl $2863311530, %esi + 0x31, 0xce, //0x0000210a xorl %ecx, %esi + 0x21, 0xfe, //0x0000210c andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000210e andl $-1431655766, %esi + 0x45, 0x31, 0xc9, //0x00002114 xorl %r9d, %r9d + 0x01, 0xc6, //0x00002117 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc1, //0x00002119 setb %r9b + 0x01, 0xf6, //0x0000211d addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000211f xorl $1431655765, %esi + 0x21, 0xce, //0x00002125 andl %ecx, %esi + 0xf7, 0xd6, //0x00002127 notl %esi + 0x21, 0xf2, //0x00002129 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x0000212b testq %rdx, %rdx + 0x0f, 0x85, 0x12, 0xf8, 0xff, 0xff, //0x0000212e jne LBB0_139 + //0x00002134 LBB0_381 + 0x49, 0x83, 0xc3, 0x20, //0x00002134 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00002138 addq $-32, %r13 + //0x0000213c LBB0_382 + 0x4d, 0x85, 0xc9, //0x0000213c testq %r9, %r9 + 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x0000213f jne LBB0_391 + 0x48, 0x8b, 0x75, 0xc8, //0x00002145 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002149 movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x0000214d testq %r13, %r13 + 0x0f, 0x84, 0x65, 0x02, 0x00, 0x00, //0x00002150 je LBB0_425 + //0x00002156 LBB0_384 + 0x49, 0x8d, 0x4b, 0x01, //0x00002156 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x0000215a movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x0000215e cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002161 je LBB0_389 + 0x49, 0x8d, 0x55, 0xff, //0x00002167 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x0000216b cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000216e je LBB0_387 + 0x49, 0x89, 0xd5, //0x00002174 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00002177 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x0000217a testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000217d jne LBB0_384 + 0xe9, 0x33, 0x02, 0x00, 0x00, //0x00002183 jmp LBB0_425 + //0x00002188 LBB0_387 + 0x48, 0x85, 0xd2, //0x00002188 testq %rdx, %rdx + 0x0f, 0x84, 0x38, 0x04, 0x00, 0x00, //0x0000218b je LBB0_462 + 0x48, 0x03, 0x4d, 0xa0, //0x00002191 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00002195 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00002199 cmoveq %rcx, %r12 + 0x49, 0x83, 0xc3, 0x02, //0x0000219d addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x000021a1 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x000021a5 movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x000021a8 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x000021ac movq $-64(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x000021b0 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x000021b3 jne LBB0_384 + 0xe9, 0xfd, 0x01, 0x00, 0x00, //0x000021b9 jmp LBB0_425 + //0x000021be LBB0_389 + 0x48, 0x2b, 0x4d, 0xd0, //0x000021be subq $-48(%rbp), %rcx + 0x49, 0x89, 0xcb, //0x000021c2 movq %rcx, %r11 + 0xe9, 0x86, 0xed, 0xff, 0xff, //0x000021c5 jmp LBB0_195 + //0x000021ca LBB0_390 + 0x4c, 0x89, 0xd9, //0x000021ca movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x000021cd subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xe2, //0x000021d1 bsfq %rdx, %r12 + 0x49, 0x01, 0xcc, //0x000021d5 addq %rcx, %r12 + 0xe9, 0xeb, 0xf7, 0xff, 0xff, //0x000021d8 jmp LBB0_173 + //0x000021dd LBB0_391 + 0x4d, 0x85, 0xed, //0x000021dd testq %r13, %r13 + 0x0f, 0x84, 0xe3, 0x03, 0x00, 0x00, //0x000021e0 je LBB0_462 + 0x48, 0x8b, 0x45, 0xa0, //0x000021e6 movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000021ea addq %r11, %rax + 0x49, 0x83, 0xfc, 0xff, //0x000021ed cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe0, //0x000021f1 cmoveq %rax, %r12 + 0x49, 0xff, 0xc3, //0x000021f5 incq %r11 + 0x49, 0xff, 0xcd, //0x000021f8 decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000021fb movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x000021ff movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x00002203 testq %r13, %r13 + 0x0f, 0x85, 0x4a, 0xff, 0xff, 0xff, //0x00002206 jne LBB0_384 + 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x0000220c jmp LBB0_425 + //0x00002211 LBB0_393 + 0x48, 0x85, 0xc0, //0x00002211 testq %rax, %rax + 0x0f, 0x84, 0xaf, 0x03, 0x00, 0x00, //0x00002214 je LBB0_462 + 0x48, 0x8b, 0x4d, 0xa0, //0x0000221a movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000221e addq %r11, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00002221 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00002225 cmoveq %rcx, %r12 + 0x49, 0xff, 0xc3, //0x00002229 incq %r11 + 0x48, 0xff, 0xc8, //0x0000222c decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x0000222f movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002233 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00002237 testq %rax, %rax + 0x0f, 0x85, 0xb4, 0xf8, 0xff, 0xff, //0x0000223a jne LBB0_331 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x00002240 jmp LBB0_425 + //0x00002245 LBB0_395 + 0x44, 0x89, 0xc1, //0x00002245 movl %r8d, %ecx + 0xf7, 0xd1, //0x00002248 notl %ecx + 0x21, 0xd1, //0x0000224a andl %edx, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x0000224c leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xc2, //0x00002250 orl %r8d, %r10d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002253 movl $2863311530, %ebx + 0x44, 0x31, 0xd3, //0x00002258 xorl %r10d, %ebx + 0x21, 0xd3, //0x0000225b andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000225d andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00002263 xorl %r8d, %r8d + 0x01, 0xcb, //0x00002266 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00002268 setb %r8b + 0x01, 0xdb, //0x0000226c addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000226e xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x00002274 andl %r10d, %ebx + 0xf7, 0xd3, //0x00002277 notl %ebx + 0x21, 0xde, //0x00002279 andl %ebx, %esi + 0xe9, 0xae, 0xfa, 0xff, 0xff, //0x0000227b jmp LBB0_281 + //0x00002280 LBB0_396 + 0x4c, 0x89, 0xd8, //0x00002280 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002283 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00002287 bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x0000228b addq %rax, %r9 + 0x48, 0x09, 0xca, //0x0000228e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00002291 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00002294 orq %r10, %rax + 0x0f, 0x84, 0x7d, 0xf9, 0xff, 0xff, //0x00002297 je LBB0_212 + //0x0000229d LBB0_397 + 0x44, 0x89, 0xd0, //0x0000229d movl %r10d, %eax + 0xf7, 0xd0, //0x000022a0 notl %eax + 0x21, 0xf8, //0x000022a2 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x000022a4 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xd1, //0x000022a7 orl %r10d, %ecx + 0x89, 0xce, //0x000022aa movl %ecx, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022ac movl $2863311530, %ebx + 0x31, 0xde, //0x000022b1 xorl %ebx, %esi + 0x21, 0xfe, //0x000022b3 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022b5 andl $-1431655766, %esi + 0x45, 0x31, 0xd2, //0x000022bb xorl %r10d, %r10d + 0x01, 0xc6, //0x000022be addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc2, //0x000022c0 setb %r10b + 0x01, 0xf6, //0x000022c4 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x000022c6 xorl $1431655765, %esi + 0x21, 0xce, //0x000022cc andl %ecx, %esi + 0xf7, 0xd6, //0x000022ce notl %esi + 0x21, 0xf2, //0x000022d0 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x000022d2 testq %rdx, %rdx + 0x0f, 0x85, 0xd4, 0xf4, 0xff, 0xff, //0x000022d5 jne LBB0_54 + 0xe9, 0x43, 0xf9, 0xff, 0xff, //0x000022db jmp LBB0_398 + //0x000022e0 LBB0_408 + 0x4c, 0x89, 0xdb, //0x000022e0 movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x000022e3 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x000022e6 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x000022ea addq %rbx, %r9 + 0xe9, 0x29, 0xfa, 0xff, 0xff, //0x000022ed jmp LBB0_280 + //0x000022f2 LBB0_411 + 0x4d, 0x85, 0xe4, //0x000022f2 testq %r12, %r12 + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x000022f5 je LBB0_416 + 0x48, 0x8b, 0x45, 0xa0, //0x000022fb movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000022ff addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x00002302 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x00002306 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x0000230a incq %r11 + 0x49, 0xff, 0xcc, //0x0000230d decq %r12 + 0x4d, 0x85, 0xe4, //0x00002310 testq %r12, %r12 + 0x0f, 0x85, 0x24, 0xf9, 0xff, 0xff, //0x00002313 jne LBB0_401 + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00002319 jmp LBB0_416 + //0x0000231e LBB0_409 + 0x48, 0x85, 0xc0, //0x0000231e testq %rax, %rax + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00002321 je LBB0_416 + 0x48, 0x8b, 0x4d, 0xa0, //0x00002327 movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000232b addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x0000232e cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002332 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x00002336 incq %r11 + 0x48, 0xff, 0xc8, //0x00002339 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x0000233c movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x00002340 testq %rax, %rax + 0x0f, 0x85, 0x38, 0xfa, 0xff, 0xff, //0x00002343 jne LBB0_347 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002349 jmp LBB0_416 + //0x0000234e LBB0_413 + 0x48, 0x89, 0x16, //0x0000234e movq %rdx, (%rsi) + //0x00002351 LBB0_414 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002351 movq $-1, %rax + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00002358 jmp LBB0_423 + //0x0000235d LBB0_441 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x0000235d movq $-7, %rax + 0xe9, 0x39, 0x00, 0x00, 0x00, //0x00002364 jmp LBB0_423 + //0x00002369 LBB0_415 + 0x49, 0x83, 0xfb, 0xff, //0x00002369 cmpq $-1, %r11 + 0x0f, 0x85, 0x7f, 0x00, 0x00, 0x00, //0x0000236d jne LBB0_307 + //0x00002373 LBB0_416 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002373 movq $-1, %r11 + 0x4c, 0x8b, 0x4d, 0xb0, //0x0000237a movq $-80(%rbp), %r9 + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x0000237e jmp LBB0_307 + //0x00002383 LBB0_417 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002383 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000238a jmp LBB0_420 + //0x0000238f LBB0_419 + 0x4c, 0x89, 0xd8, //0x0000238f movq %r11, %rax + //0x00002392 LBB0_420 + 0x48, 0xf7, 0xd0, //0x00002392 notq %rax + 0x49, 0x01, 0xc7, //0x00002395 addq %rax, %r15 + //0x00002398 LBB0_421 + 0x4c, 0x89, 0x3e, //0x00002398 movq %r15, (%rsi) + //0x0000239b LBB0_422 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000239b movq $-2, %rax + //0x000023a2 LBB0_423 + 0x48, 0x83, 0xc4, 0x68, //0x000023a2 addq $104, %rsp + 0x5b, //0x000023a6 popq %rbx + 0x41, 0x5c, //0x000023a7 popq %r12 + 0x41, 0x5d, //0x000023a9 popq %r13 + 0x41, 0x5e, //0x000023ab popq %r14 + 0x41, 0x5f, //0x000023ad popq %r15 + 0x5d, //0x000023af popq %rbp + 0xc3, //0x000023b0 retq + //0x000023b1 LBB0_424 + 0x49, 0x83, 0xfb, 0xff, //0x000023b1 cmpq $-1, %r11 + 0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x000023b5 jne LBB0_437 + //0x000023bb LBB0_425 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000023bb movq $-1, %r11 + 0x4c, 0x8b, 0x65, 0xb0, //0x000023c2 movq $-80(%rbp), %r12 + 0xe9, 0x59, 0x00, 0x00, 0x00, //0x000023c6 jmp LBB0_437 + //0x000023cb LBB0_440 + 0x48, 0x89, 0x0e, //0x000023cb movq %rcx, (%rsi) + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000023ce jmp LBB0_423 + //0x000023d3 LBB0_426 + 0x49, 0x83, 0xf9, 0xff, //0x000023d3 cmpq $-1, %r9 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000023d7 jne LBB0_431 + 0x49, 0x0f, 0xbc, 0xc4, //0x000023dd bsfq %r12, %rax + //0x000023e1 LBB0_428 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000023e1 subq $-48(%rbp), %r11 + //0x000023e5 LBB0_429 + 0x49, 0x01, 0xc3, //0x000023e5 addq %rax, %r11 + //0x000023e8 LBB0_430 + 0x4d, 0x89, 0xd9, //0x000023e8 movq %r11, %r9 + //0x000023eb LBB0_431 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000023eb movq $-2, %r11 + //0x000023f2 LBB0_307 + 0x48, 0x8b, 0x45, 0xc8, //0x000023f2 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x000023f6 movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x000023f9 movq %r11, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000023fc jmp LBB0_423 + //0x00002401 LBB0_432 + 0x49, 0x83, 0xfc, 0xff, //0x00002401 cmpq $-1, %r12 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002405 jne LBB0_435 + 0x48, 0x0f, 0xbc, 0xc2, //0x0000240b bsfq %rdx, %rax + //0x0000240f LBB0_434 + 0x4c, 0x2b, 0x5d, 0xd0, //0x0000240f subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00002413 addq %rax, %r11 + 0x4d, 0x89, 0xdc, //0x00002416 movq %r11, %r12 + //0x00002419 LBB0_435 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002419 movq $-2, %r11 + //0x00002420 LBB0_436 + 0x48, 0x8b, 0x75, 0xc8, //0x00002420 movq $-56(%rbp), %rsi + //0x00002424 LBB0_437 + 0x4c, 0x89, 0x26, //0x00002424 movq %r12, (%rsi) + 0x4c, 0x89, 0xd8, //0x00002427 movq %r11, %rax + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000242a jmp LBB0_423 + //0x0000242f LBB0_438 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000242f movq $-1, %r11 + //0x00002436 LBB0_439 + 0x4d, 0x29, 0xdf, //0x00002436 subq %r11, %r15 + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00002439 jmp LBB0_421 + //0x0000243e LBB0_442 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000243e movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002445 cmpb $97, %cl + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x00002448 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x0000244e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002452 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x00002455 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x0000245b jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x00002461 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002465 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x73, //0x00002468 cmpb $115, $3(%r12,%r15) + 0x0f, 0x85, 0x2e, 0xff, 0xff, 0xff, //0x0000246e jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x04, //0x00002474 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002478 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x04, 0x65, //0x0000247b cmpb $101, $4(%r12,%r15) + 0x0f, 0x85, 0x1b, 0xff, 0xff, 0xff, //0x00002481 jne LBB0_423 + 0x49, 0x83, 0xc7, 0x05, //0x00002487 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x0000248b movq %r15, (%rsi) + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x0000248e jmp LBB0_423 + //0x00002493 LBB0_247 + 0x4c, 0x89, 0x3e, //0x00002493 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002496 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x0000249d cmpb $110, (%r10) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x000024a1 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x01, //0x000024a7 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024ab movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x75, //0x000024ae cmpb $117, $1(%r12,%r15) + 0x0f, 0x85, 0xe8, 0xfe, 0xff, 0xff, //0x000024b4 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x000024ba leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024be movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x000024c1 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0xd5, 0xfe, 0xff, 0xff, //0x000024c7 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x000024cd leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024d1 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x6c, //0x000024d4 cmpb $108, $3(%r12,%r15) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x000024da jne LBB0_423 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000024e0 jmp LBB0_451 + //0x000024e5 LBB0_447 + 0x4c, 0x89, 0x3e, //0x000024e5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000024e8 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x000024ef cmpb $116, (%r10) + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x000024f3 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x01, //0x000024f9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024fd movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x72, //0x00002500 cmpb $114, $1(%r12,%r15) + 0x0f, 0x85, 0x96, 0xfe, 0xff, 0xff, //0x00002506 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x0000250c leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002510 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x75, //0x00002513 cmpb $117, $2(%r12,%r15) + 0x0f, 0x85, 0x83, 0xfe, 0xff, 0xff, //0x00002519 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x0000251f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002523 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x65, //0x00002526 cmpb $101, $3(%r12,%r15) + 0x0f, 0x85, 0x70, 0xfe, 0xff, 0xff, //0x0000252c jne LBB0_423 + //0x00002532 LBB0_451 + 0x49, 0x83, 0xc7, 0x04, //0x00002532 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002536 movq %r15, (%rsi) + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00002539 jmp LBB0_423 + //0x0000253e LBB0_452 + 0x49, 0x83, 0xf9, 0xff, //0x0000253e cmpq $-1, %r9 + 0x0f, 0x85, 0xa3, 0xfe, 0xff, 0xff, //0x00002542 jne LBB0_431 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002548 bsfq %rdx, %rax + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x0000254c jmp LBB0_428 + //0x00002551 LBB0_456 + 0x4c, 0x89, 0x5d, 0xb0, //0x00002551 movq %r11, $-80(%rbp) + 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x00002555 jmp LBB0_416 + //0x0000255a LBB0_306 + 0x4c, 0x01, 0xd9, //0x0000255a addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000255d movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x00002564 movq %rcx, %r9 + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00002567 jmp LBB0_307 + //0x0000256c LBB0_454 + 0x4c, 0x89, 0x5d, 0xb0, //0x0000256c movq %r11, $-80(%rbp) + 0xe9, 0x46, 0xfe, 0xff, 0xff, //0x00002570 jmp LBB0_425 + //0x00002575 LBB0_455 + 0x4c, 0x01, 0xd9, //0x00002575 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002578 movq $-2, %r11 + 0x49, 0x89, 0xcc, //0x0000257f movq %rcx, %r12 + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00002582 jmp LBB0_437 + //0x00002587 LBB0_457 + 0x48, 0x0f, 0xbc, 0xc7, //0x00002587 bsfq %rdi, %rax + 0x4d, 0x29, 0xe3, //0x0000258b subq %r12, %r11 + 0xe9, 0x52, 0xfe, 0xff, 0xff, //0x0000258e jmp LBB0_429 + //0x00002593 LBB0_461 + 0x4d, 0x29, 0xe3, //0x00002593 subq %r12, %r11 + 0xe9, 0x4d, 0xfe, 0xff, 0xff, //0x00002596 jmp LBB0_430 + //0x0000259b LBB0_458 + 0x4c, 0x01, 0xd9, //0x0000259b addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000259e movq $-2, %r11 + 0x49, 0x89, 0xcc, //0x000025a5 movq %rcx, %r12 + 0xe9, 0x73, 0xfe, 0xff, 0xff, //0x000025a8 jmp LBB0_436 + //0x000025ad LBB0_459 + 0x48, 0x0f, 0xbc, 0xc7, //0x000025ad bsfq %rdi, %rax + 0xe9, 0x59, 0xfe, 0xff, 0xff, //0x000025b1 jmp LBB0_434 + //0x000025b6 LBB0_460 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000025b6 subq $-48(%rbp), %r11 + 0x4d, 0x89, 0xdc, //0x000025ba movq %r11, %r12 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000025bd movq $-2, %r11 + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x000025c4 jmp LBB0_437 + //0x000025c9 LBB0_462 + 0x48, 0x8b, 0x75, 0xc8, //0x000025c9 movq $-56(%rbp), %rsi + 0xe9, 0xe9, 0xfd, 0xff, 0xff, //0x000025cd jmp LBB0_425 + 0x90, 0x90, //0x000025d2 .p2align 2, 0x90 + // // .set L0_0_set_33, LBB0_33-LJTI0_0 + // // .set L0_0_set_37, LBB0_37-LJTI0_0 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_59, LBB0_59-LJTI0_0 + // // .set L0_0_set_61, LBB0_61-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + //0x000025d4 LJTI0_0 + 0xc3, 0xdd, 0xff, 0xff, //0x000025d4 .long L0_0_set_33 + 0xeb, 0xdd, 0xff, 0xff, //0x000025d8 .long L0_0_set_37 + 0x16, 0xde, 0xff, 0xff, //0x000025dc .long L0_0_set_39 + 0xcf, 0xdf, 0xff, 0xff, //0x000025e0 .long L0_0_set_59 + 0xe5, 0xdf, 0xff, 0xff, //0x000025e4 .long L0_0_set_61 + 0x55, 0xe2, 0xff, 0xff, //0x000025e8 .long L0_0_set_64 + // // .set L0_1_set_423, LBB0_423-LJTI0_1 + // // .set L0_1_set_422, LBB0_422-LJTI0_1 + // // .set L0_1_set_199, LBB0_199-LJTI0_1 + // // .set L0_1_set_215, LBB0_215-LJTI0_1 + // // .set L0_1_set_66, LBB0_66-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_242, LBB0_242-LJTI0_1 + // // .set L0_1_set_245, LBB0_245-LJTI0_1 + // // .set L0_1_set_251, LBB0_251-LJTI0_1 + // // .set L0_1_set_255, LBB0_255-LJTI0_1 + //0x000025ec LJTI0_1 + 0xb6, 0xfd, 0xff, 0xff, //0x000025ec .long L0_1_set_423 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025fc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002600 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002604 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002608 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000260c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002610 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002614 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002618 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000261c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002620 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002624 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002628 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000262c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002630 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002634 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002638 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000263c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002640 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002644 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002648 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000264c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002650 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002654 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002658 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000265c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002660 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002664 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002668 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000266c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002670 .long L0_1_set_422 + 0xa6, 0xe9, 0xff, 0xff, //0x00002674 .long L0_1_set_199 + 0xaf, 0xfd, 0xff, 0xff, //0x00002678 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000267c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002680 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002684 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002688 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000268c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002690 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002694 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002698 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000269c .long L0_1_set_422 + 0x38, 0xeb, 0xff, 0xff, //0x000026a0 .long L0_1_set_215 + 0xaf, 0xfd, 0xff, 0xff, //0x000026a4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026a8 .long L0_1_set_422 + 0xfd, 0xdf, 0xff, 0xff, //0x000026ac .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b0 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b4 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b8 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026bc .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c0 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c4 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c8 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026cc .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026d0 .long L0_1_set_66 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026dc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026ec .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026fc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002700 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002704 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002708 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000270c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002710 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002714 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002718 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000271c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002720 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002724 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002728 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000272c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002730 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002734 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002738 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000273c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002740 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002744 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002748 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000274c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002750 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002754 .long L0_1_set_422 + 0x0f, 0xed, 0xff, 0xff, //0x00002758 .long L0_1_set_240 + 0xaf, 0xfd, 0xff, 0xff, //0x0000275c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002760 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002764 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002768 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000276c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002770 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002774 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002778 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000277c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002780 .long L0_1_set_422 + 0x33, 0xed, 0xff, 0xff, //0x00002784 .long L0_1_set_242 + 0xaf, 0xfd, 0xff, 0xff, //0x00002788 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000278c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002790 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002794 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002798 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000279c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a0 .long L0_1_set_422 + 0x64, 0xed, 0xff, 0xff, //0x000027a4 .long L0_1_set_245 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027ac .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b8 .long L0_1_set_422 + 0x8b, 0xed, 0xff, 0xff, //0x000027bc .long L0_1_set_251 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027cc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027d0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027d4 .long L0_1_set_422 + 0xc8, 0xed, 0xff, 0xff, //0x000027d8 .long L0_1_set_255 + // // .set L0_2_set_264, LBB0_264-LJTI0_2 + // // .set L0_2_set_292, LBB0_292-LJTI0_2 + // // .set L0_2_set_259, LBB0_259-LJTI0_2 + // // .set L0_2_set_261, LBB0_261-LJTI0_2 + // // .set L0_2_set_266, LBB0_266-LJTI0_2 + //0x000027dc LJTI0_2 + 0x3d, 0xec, 0xff, 0xff, //0x000027dc .long L0_2_set_264 + 0x7b, 0xee, 0xff, 0xff, //0x000027e0 .long L0_2_set_292 + 0x3d, 0xec, 0xff, 0xff, //0x000027e4 .long L0_2_set_264 + 0xfc, 0xeb, 0xff, 0xff, //0x000027e8 .long L0_2_set_259 + 0x7b, 0xee, 0xff, 0xff, //0x000027ec .long L0_2_set_292 + 0x14, 0xec, 0xff, 0xff, //0x000027f0 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f4 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f8 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027fc .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002800 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002804 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002808 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x0000280c .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002810 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002814 .long L0_2_set_261 + 0x7b, 0xee, 0xff, 0xff, //0x00002818 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000281c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002820 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002824 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002828 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000282c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002830 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002834 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002838 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000283c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002840 .long L0_2_set_292 + 0x58, 0xec, 0xff, 0xff, //0x00002844 .long L0_2_set_266 + 0x7b, 0xee, 0xff, 0xff, //0x00002848 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000284c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002850 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002854 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002858 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000285c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002860 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002864 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002868 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000286c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002870 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002874 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002878 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000287c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002880 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002884 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002888 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000288c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002890 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002894 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002898 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000289c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a0 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a4 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a8 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028ac .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b0 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b4 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b8 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028bc .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028c0 .long L0_2_set_292 + 0x58, 0xec, 0xff, 0xff, //0x000028c4 .long L0_2_set_266 + // // .set L0_3_set_94, LBB0_94-LJTI0_3 + // // .set L0_3_set_149, LBB0_149-LJTI0_3 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + // // .set L0_3_set_91, LBB0_91-LJTI0_3 + // // .set L0_3_set_96, LBB0_96-LJTI0_3 + //0x000028c8 LJTI0_3 + 0x10, 0xdf, 0xff, 0xff, //0x000028c8 .long L0_3_set_94 + 0x75, 0xe3, 0xff, 0xff, //0x000028cc .long L0_3_set_149 + 0x10, 0xdf, 0xff, 0xff, //0x000028d0 .long L0_3_set_94 + 0x46, 0xdf, 0xff, 0xff, //0x000028d4 .long L0_3_set_98 + 0x75, 0xe3, 0xff, 0xff, //0x000028d8 .long L0_3_set_149 + 0xe8, 0xde, 0xff, 0xff, //0x000028dc .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e0 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e4 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e8 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028ec .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f0 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f4 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f8 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028fc .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x00002900 .long L0_3_set_91 + 0x75, 0xe3, 0xff, 0xff, //0x00002904 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002908 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000290c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002910 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002914 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002918 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000291c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002920 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002924 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002928 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000292c .long L0_3_set_149 + 0x2b, 0xdf, 0xff, 0xff, //0x00002930 .long L0_3_set_96 + 0x75, 0xe3, 0xff, 0xff, //0x00002934 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002938 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000293c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002940 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002944 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002948 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000294c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002950 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002954 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002958 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000295c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002960 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002964 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002968 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000296c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002970 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002974 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002978 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000297c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002980 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002984 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002988 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000298c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002990 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002994 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002998 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000299c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029a0 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029a4 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029a8 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029ac .long L0_3_set_149 + 0x2b, 0xdf, 0xff, 0xff, //0x000029b0 .long L0_3_set_96 + //0x000029b4 .p2align 2, 0x00 + //0x000029b4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000029b4 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number.go new file mode 100644 index 000000000..67a3e1c15 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_number uintptr + +//go:nosplit +func skip_number(s *string, p *int) (ret int) { + return F_skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_subr.go new file mode 100644 index 000000000..4ef1835c1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_number = 112 +) + +const ( + _stack__skip_number = 72 +) + +const ( + _size__skip_number = 1108 +) + +var ( + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1025, 72}, + {1029, 48}, + {1030, 40}, + {1032, 32}, + {1034, 24}, + {1036, 16}, + {1038, 8}, + {1039, 0}, + {1108, 72}, + } +) + +var _cfunc_skip_number = []loader.CFunc{ + {"_skip_number_entry", 0, _entry__skip_number, 0, nil}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_text_amd64.go new file mode 100644 index 000000000..7377a7287 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_number_text_amd64.go @@ -0,0 +1,394 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_skip_number = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, // QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000010 LCPI0_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000010 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000020 LCPI0_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000020 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000030 LCPI0_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000030 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000040 LCPI0_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000050 LCPI0_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000050 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000060 LCPI0_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000060 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000070 .p2align 4, 0x90 + //0x00000070 _skip_number + 0x55, //0x00000070 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000071 movq %rsp, %rbp + 0x41, 0x57, //0x00000074 pushq %r15 + 0x41, 0x56, //0x00000076 pushq %r14 + 0x41, 0x55, //0x00000078 pushq %r13 + 0x41, 0x54, //0x0000007a pushq %r12 + 0x53, //0x0000007c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000007d subq $24, %rsp + 0x48, 0x8b, 0x1f, //0x00000081 movq (%rdi), %rbx + 0x4c, 0x8b, 0x6f, 0x08, //0x00000084 movq $8(%rdi), %r13 + 0x48, 0x8b, 0x16, //0x00000088 movq (%rsi), %rdx + 0x49, 0x29, 0xd5, //0x0000008b subq %rdx, %r13 + 0x31, 0xc0, //0x0000008e xorl %eax, %eax + 0x80, 0x3c, 0x13, 0x2d, //0x00000090 cmpb $45, (%rbx,%rdx) + 0x4c, 0x8d, 0x3c, 0x13, //0x00000094 leaq (%rbx,%rdx), %r15 + 0x0f, 0x94, 0xc0, //0x00000098 sete %al + 0x49, 0x01, 0xc7, //0x0000009b addq %rax, %r15 + 0x49, 0x29, 0xc5, //0x0000009e subq %rax, %r13 + 0x0f, 0x84, 0xee, 0x03, 0x00, 0x00, //0x000000a1 je LBB0_1 + 0x41, 0x8a, 0x3f, //0x000000a7 movb (%r15), %dil + 0x8d, 0x4f, 0xd0, //0x000000aa leal $-48(%rdi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000000ad movq $-2, %rax + 0x80, 0xf9, 0x09, //0x000000b4 cmpb $9, %cl + 0x0f, 0x87, 0xae, 0x03, 0x00, 0x00, //0x000000b7 ja LBB0_59 + 0x40, 0x80, 0xff, 0x30, //0x000000bd cmpb $48, %dil + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000000c1 jne LBB0_7 + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000000c7 movl $1, %edi + 0x49, 0x83, 0xfd, 0x01, //0x000000cc cmpq $1, %r13 + 0x0f, 0x84, 0x6a, 0x03, 0x00, 0x00, //0x000000d0 je LBB0_58 + 0x41, 0x8a, 0x47, 0x01, //0x000000d6 movb $1(%r15), %al + 0x04, 0xd2, //0x000000da addb $-46, %al + 0x3c, 0x37, //0x000000dc cmpb $55, %al + 0x0f, 0x87, 0x5c, 0x03, 0x00, 0x00, //0x000000de ja LBB0_58 + 0x0f, 0xb6, 0xc0, //0x000000e4 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000e7 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000000f1 btq %rax, %rcx + 0x0f, 0x83, 0x45, 0x03, 0x00, 0x00, //0x000000f5 jae LBB0_58 + //0x000000fb LBB0_7 + 0x48, 0x89, 0x55, 0xd0, //0x000000fb movq %rdx, $-48(%rbp) + 0x49, 0x83, 0xfd, 0x10, //0x000000ff cmpq $16, %r13 + 0x0f, 0x82, 0x98, 0x03, 0x00, 0x00, //0x00000103 jb LBB0_8 + 0x48, 0x89, 0x5d, 0xc8, //0x00000109 movq %rbx, $-56(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x0000010d movq %rsi, $-64(%rbp) + 0x4d, 0x8d, 0x45, 0xf0, //0x00000111 leaq $-16(%r13), %r8 + 0x4c, 0x89, 0xc0, //0x00000115 movq %r8, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000118 andq $-16, %rax + 0x4e, 0x8d, 0x64, 0x38, 0x10, //0x0000011c leaq $16(%rax,%r15), %r12 + 0x41, 0x83, 0xe0, 0x0f, //0x00000121 andl $15, %r8d + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000125 movq $-1, %r11 + 0xc5, 0x7a, 0x6f, 0x05, 0xcc, 0xfe, 0xff, 0xff, //0x0000012c vmovdqu $-308(%rip), %xmm8 /* LCPI0_0+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0xd4, 0xfe, 0xff, 0xff, //0x00000134 vmovdqu $-300(%rip), %xmm9 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0xdc, 0xfe, 0xff, 0xff, //0x0000013c vmovdqu $-292(%rip), %xmm10 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0xe4, 0xfe, 0xff, 0xff, //0x00000144 vmovdqu $-284(%rip), %xmm11 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0xec, 0xfe, 0xff, 0xff, //0x0000014c vmovdqu $-276(%rip), %xmm4 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x2d, 0xf4, 0xfe, 0xff, 0xff, //0x00000154 vmovdqu $-268(%rip), %xmm5 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x35, 0xfc, 0xfe, 0xff, 0xff, //0x0000015c vmovdqu $-260(%rip), %xmm6 /* LCPI0_6+0(%rip) */ + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000164 movq $-1, %r14 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000016b movq $-1, %r10 + 0x4c, 0x89, 0xfb, //0x00000172 movq %r15, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000175 .p2align 4, 0x90 + //0x00000180 LBB0_10 + 0xc5, 0xfa, 0x6f, 0x3b, //0x00000180 vmovdqu (%rbx), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00000184 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x00000189 vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000018d vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00000191 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00000195 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00000199 vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x0000019d vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x000001a1 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x000001a5 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x000001a9 vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x000001ad vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x000001b1 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xff, //0x000001b5 vpmovmskb %xmm7, %edi + 0xc5, 0xf9, 0xd7, 0xf2, //0x000001b9 vpmovmskb %xmm2, %esi + 0xc5, 0xf9, 0xd7, 0xc1, //0x000001bd vpmovmskb %xmm1, %eax + 0xc5, 0xf9, 0xd7, 0xc8, //0x000001c1 vpmovmskb %xmm0, %ecx + 0xba, 0xff, 0xff, 0xff, 0xff, //0x000001c5 movl $4294967295, %edx + 0x48, 0x31, 0xd1, //0x000001ca xorq %rdx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000001cd bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x000001d1 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000001d4 je LBB0_12 + 0xba, 0xff, 0xff, 0xff, 0xff, //0x000001da movl $-1, %edx + 0xd3, 0xe2, //0x000001df shll %cl, %edx + 0xf7, 0xd2, //0x000001e1 notl %edx + 0x21, 0xd7, //0x000001e3 andl %edx, %edi + 0x21, 0xd6, //0x000001e5 andl %edx, %esi + 0x21, 0xc2, //0x000001e7 andl %eax, %edx + 0x89, 0xd0, //0x000001e9 movl %edx, %eax + //0x000001eb LBB0_12 + 0x44, 0x8d, 0x4f, 0xff, //0x000001eb leal $-1(%rdi), %r9d + 0x41, 0x21, 0xf9, //0x000001ef andl %edi, %r9d + 0x0f, 0x85, 0x26, 0x02, 0x00, 0x00, //0x000001f2 jne LBB0_13 + 0x8d, 0x56, 0xff, //0x000001f8 leal $-1(%rsi), %edx + 0x21, 0xf2, //0x000001fb andl %esi, %edx + 0x0f, 0x85, 0x10, 0x02, 0x00, 0x00, //0x000001fd jne LBB0_17 + 0x8d, 0x50, 0xff, //0x00000203 leal $-1(%rax), %edx + 0x21, 0xc2, //0x00000206 andl %eax, %edx + 0x0f, 0x85, 0x05, 0x02, 0x00, 0x00, //0x00000208 jne LBB0_17 + 0x85, 0xff, //0x0000020e testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000210 je LBB0_22 + 0x48, 0x89, 0xda, //0x00000216 movq %rbx, %rdx + 0x4c, 0x29, 0xfa, //0x00000219 subq %r15, %rdx + 0x0f, 0xbc, 0xff, //0x0000021c bsfl %edi, %edi + 0x48, 0x01, 0xd7, //0x0000021f addq %rdx, %rdi + 0x49, 0x83, 0xfa, 0xff, //0x00000222 cmpq $-1, %r10 + 0x0f, 0x85, 0xfc, 0x01, 0x00, 0x00, //0x00000226 jne LBB0_15 + 0x49, 0x89, 0xfa, //0x0000022c movq %rdi, %r10 + //0x0000022f LBB0_22 + 0x85, 0xf6, //0x0000022f testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000231 je LBB0_25 + 0x48, 0x89, 0xda, //0x00000237 movq %rbx, %rdx + 0x4c, 0x29, 0xfa, //0x0000023a subq %r15, %rdx + 0x0f, 0xbc, 0xfe, //0x0000023d bsfl %esi, %edi + 0x48, 0x01, 0xd7, //0x00000240 addq %rdx, %rdi + 0x49, 0x83, 0xfe, 0xff, //0x00000243 cmpq $-1, %r14 + 0x0f, 0x85, 0xdb, 0x01, 0x00, 0x00, //0x00000247 jne LBB0_15 + 0x49, 0x89, 0xfe, //0x0000024d movq %rdi, %r14 + //0x00000250 LBB0_25 + 0x85, 0xc0, //0x00000250 testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000252 je LBB0_28 + 0x48, 0x89, 0xda, //0x00000258 movq %rbx, %rdx + 0x4c, 0x29, 0xfa, //0x0000025b subq %r15, %rdx + 0x0f, 0xbc, 0xf8, //0x0000025e bsfl %eax, %edi + 0x48, 0x01, 0xd7, //0x00000261 addq %rdx, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x00000264 cmpq $-1, %r11 + 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00000268 jne LBB0_15 + 0x49, 0x89, 0xfb, //0x0000026e movq %rdi, %r11 + //0x00000271 LBB0_28 + 0x83, 0xf9, 0x10, //0x00000271 cmpl $16, %ecx + 0x0f, 0x85, 0xb2, 0x00, 0x00, 0x00, //0x00000274 jne LBB0_60 + 0x48, 0x83, 0xc3, 0x10, //0x0000027a addq $16, %rbx + 0x49, 0x83, 0xc5, 0xf0, //0x0000027e addq $-16, %r13 + 0x49, 0x83, 0xfd, 0x0f, //0x00000282 cmpq $15, %r13 + 0x0f, 0x87, 0xf4, 0xfe, 0xff, 0xff, //0x00000286 ja LBB0_10 + 0x4d, 0x85, 0xc0, //0x0000028c testq %r8, %r8 + 0x48, 0x8b, 0x75, 0xc0, //0x0000028f movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x5d, 0xc8, //0x00000293 movq $-56(%rbp), %rbx + 0x0f, 0x84, 0x9d, 0x00, 0x00, 0x00, //0x00000297 je LBB0_42 + //0x0000029d LBB0_31 + 0x4b, 0x8d, 0x04, 0x04, //0x0000029d leaq (%r12,%r8), %rax + 0x48, 0x8d, 0x0d, 0x1c, 0x02, 0x00, 0x00, //0x000002a1 leaq $540(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000002a8 jmp LBB0_32 + 0x90, 0x90, 0x90, //0x000002ad .p2align 4, 0x90 + //0x000002b0 LBB0_40 + 0x49, 0x89, 0xd4, //0x000002b0 movq %rdx, %r12 + 0x49, 0xff, 0xc8, //0x000002b3 decq %r8 + 0x0f, 0x84, 0x8f, 0x01, 0x00, 0x00, //0x000002b6 je LBB0_41 + //0x000002bc LBB0_32 + 0x41, 0x0f, 0xbe, 0x3c, 0x24, //0x000002bc movsbl (%r12), %edi + 0x83, 0xc7, 0xd5, //0x000002c1 addl $-43, %edi + 0x83, 0xff, 0x3a, //0x000002c4 cmpl $58, %edi + 0x0f, 0x87, 0x6d, 0x00, 0x00, 0x00, //0x000002c7 ja LBB0_42 + 0x49, 0x8d, 0x54, 0x24, 0x01, //0x000002cd leaq $1(%r12), %rdx + 0x48, 0x63, 0x3c, 0xb9, //0x000002d2 movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x000002d6 addq %rcx, %rdi + 0xff, 0xe7, //0x000002d9 jmpq *%rdi + //0x000002db LBB0_38 + 0x48, 0x89, 0xd7, //0x000002db movq %rdx, %rdi + 0x4c, 0x29, 0xff, //0x000002de subq %r15, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x000002e1 cmpq $-1, %r11 + 0x0f, 0x85, 0x95, 0x01, 0x00, 0x00, //0x000002e5 jne LBB0_61 + 0x48, 0xff, 0xcf, //0x000002eb decq %rdi + 0x49, 0x89, 0xfb, //0x000002ee movq %rdi, %r11 + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000002f1 jmp LBB0_40 + //0x000002f6 LBB0_36 + 0x48, 0x89, 0xd7, //0x000002f6 movq %rdx, %rdi + 0x4c, 0x29, 0xff, //0x000002f9 subq %r15, %rdi + 0x49, 0x83, 0xfe, 0xff, //0x000002fc cmpq $-1, %r14 + 0x0f, 0x85, 0x7a, 0x01, 0x00, 0x00, //0x00000300 jne LBB0_61 + 0x48, 0xff, 0xcf, //0x00000306 decq %rdi + 0x49, 0x89, 0xfe, //0x00000309 movq %rdi, %r14 + 0xe9, 0x9f, 0xff, 0xff, 0xff, //0x0000030c jmp LBB0_40 + //0x00000311 LBB0_34 + 0x48, 0x89, 0xd7, //0x00000311 movq %rdx, %rdi + 0x4c, 0x29, 0xff, //0x00000314 subq %r15, %rdi + 0x49, 0x83, 0xfa, 0xff, //0x00000317 cmpq $-1, %r10 + 0x0f, 0x85, 0x5f, 0x01, 0x00, 0x00, //0x0000031b jne LBB0_61 + 0x48, 0xff, 0xcf, //0x00000321 decq %rdi + 0x49, 0x89, 0xfa, //0x00000324 movq %rdi, %r10 + 0xe9, 0x84, 0xff, 0xff, 0xff, //0x00000327 jmp LBB0_40 + //0x0000032c LBB0_60 + 0x48, 0x01, 0xcb, //0x0000032c addq %rcx, %rbx + 0x49, 0x89, 0xdc, //0x0000032f movq %rbx, %r12 + 0x48, 0x8b, 0x75, 0xc0, //0x00000332 movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x5d, 0xc8, //0x00000336 movq $-56(%rbp), %rbx + //0x0000033a LBB0_42 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000033a movq $-1, %rdi + 0x4d, 0x85, 0xf6, //0x00000341 testq %r14, %r14 + 0x0f, 0x84, 0x14, 0x01, 0x00, 0x00, //0x00000344 je LBB0_57 + //0x0000034a LBB0_43 + 0x4d, 0x85, 0xdb, //0x0000034a testq %r11, %r11 + 0x0f, 0x84, 0x0b, 0x01, 0x00, 0x00, //0x0000034d je LBB0_57 + 0x4d, 0x85, 0xd2, //0x00000353 testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x00000356 movq $-48(%rbp), %rdx + 0x0f, 0x84, 0xfe, 0x00, 0x00, 0x00, //0x0000035a je LBB0_57 + 0x4d, 0x29, 0xfc, //0x00000360 subq %r15, %r12 + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000363 leaq $-1(%r12), %rax + 0x49, 0x39, 0xc6, //0x00000368 cmpq %rax, %r14 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x0000036b je LBB0_48 + 0x49, 0x39, 0xc2, //0x00000371 cmpq %rax, %r10 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000374 je LBB0_48 + 0x49, 0x39, 0xc3, //0x0000037a cmpq %rax, %r11 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000037d je LBB0_48 + 0x4d, 0x85, 0xdb, //0x00000383 testq %r11, %r11 + 0x0f, 0x8e, 0x35, 0x00, 0x00, 0x00, //0x00000386 jle LBB0_52 + 0x49, 0x8d, 0x43, 0xff, //0x0000038c leaq $-1(%r11), %rax + 0x49, 0x39, 0xc6, //0x00000390 cmpq %rax, %r14 + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000393 je LBB0_52 + 0x49, 0xf7, 0xd3, //0x00000399 notq %r11 + 0x4c, 0x89, 0xdf, //0x0000039c movq %r11, %rdi + 0x48, 0x85, 0xff, //0x0000039f testq %rdi, %rdi + 0x0f, 0x89, 0x98, 0x00, 0x00, 0x00, //0x000003a2 jns LBB0_58 + 0xe9, 0xb1, 0x00, 0x00, 0x00, //0x000003a8 jmp LBB0_57 + //0x000003ad LBB0_48 + 0x49, 0xf7, 0xdc, //0x000003ad negq %r12 + 0x4c, 0x89, 0xe7, //0x000003b0 movq %r12, %rdi + 0x48, 0x85, 0xff, //0x000003b3 testq %rdi, %rdi + 0x0f, 0x89, 0x84, 0x00, 0x00, 0x00, //0x000003b6 jns LBB0_58 + 0xe9, 0x9d, 0x00, 0x00, 0x00, //0x000003bc jmp LBB0_57 + //0x000003c1 LBB0_52 + 0x4c, 0x89, 0xd0, //0x000003c1 movq %r10, %rax + 0x4c, 0x09, 0xf0, //0x000003c4 orq %r14, %rax + 0x4d, 0x39, 0xf2, //0x000003c7 cmpq %r14, %r10 + 0x0f, 0x8c, 0x1d, 0x00, 0x00, 0x00, //0x000003ca jl LBB0_55 + 0x48, 0x85, 0xc0, //0x000003d0 testq %rax, %rax + 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x000003d3 js LBB0_55 + 0x49, 0xf7, 0xd2, //0x000003d9 notq %r10 + 0x4c, 0x89, 0xd7, //0x000003dc movq %r10, %rdi + 0x48, 0x85, 0xff, //0x000003df testq %rdi, %rdi + 0x0f, 0x89, 0x58, 0x00, 0x00, 0x00, //0x000003e2 jns LBB0_58 + 0xe9, 0x71, 0x00, 0x00, 0x00, //0x000003e8 jmp LBB0_57 + //0x000003ed LBB0_55 + 0x48, 0x85, 0xc0, //0x000003ed testq %rax, %rax + 0x49, 0x8d, 0x46, 0xff, //0x000003f0 leaq $-1(%r14), %rax + 0x49, 0xf7, 0xd6, //0x000003f4 notq %r14 + 0x4d, 0x0f, 0x48, 0xf4, //0x000003f7 cmovsq %r12, %r14 + 0x49, 0x39, 0xc2, //0x000003fb cmpq %rax, %r10 + 0x4d, 0x0f, 0x45, 0xf4, //0x000003fe cmovneq %r12, %r14 + 0x4c, 0x89, 0xf7, //0x00000402 movq %r14, %rdi + 0x48, 0x85, 0xff, //0x00000405 testq %rdi, %rdi + 0x0f, 0x89, 0x32, 0x00, 0x00, 0x00, //0x00000408 jns LBB0_58 + 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x0000040e jmp LBB0_57 + //0x00000413 LBB0_17 + 0x4c, 0x29, 0xfb, //0x00000413 subq %r15, %rbx + 0x0f, 0xbc, 0xfa, //0x00000416 bsfl %edx, %edi + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00000419 jmp LBB0_14 + //0x0000041e LBB0_13 + 0x4c, 0x29, 0xfb, //0x0000041e subq %r15, %rbx + 0x41, 0x0f, 0xbc, 0xf9, //0x00000421 bsfl %r9d, %edi + //0x00000425 LBB0_14 + 0x48, 0x01, 0xdf, //0x00000425 addq %rbx, %rdi + //0x00000428 LBB0_15 + 0x48, 0xf7, 0xd7, //0x00000428 notq %rdi + 0x48, 0x8b, 0x75, 0xc0, //0x0000042b movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x5d, 0xc8, //0x0000042f movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x55, 0xd0, //0x00000433 movq $-48(%rbp), %rdx + 0x48, 0x85, 0xff, //0x00000437 testq %rdi, %rdi + 0x0f, 0x88, 0x1e, 0x00, 0x00, 0x00, //0x0000043a js LBB0_57 + //0x00000440 LBB0_58 + 0x49, 0x01, 0xff, //0x00000440 addq %rdi, %r15 + 0x48, 0x89, 0xd0, //0x00000443 movq %rdx, %rax + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00000446 jmp LBB0_59 + //0x0000044b LBB0_41 + 0x49, 0x89, 0xc4, //0x0000044b movq %rax, %r12 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000044e movq $-1, %rdi + 0x4d, 0x85, 0xf6, //0x00000455 testq %r14, %r14 + 0x0f, 0x85, 0xec, 0xfe, 0xff, 0xff, //0x00000458 jne LBB0_43 + //0x0000045e LBB0_57 + 0x48, 0xf7, 0xd7, //0x0000045e notq %rdi + 0x49, 0x01, 0xff, //0x00000461 addq %rdi, %r15 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000464 movq $-2, %rax + //0x0000046b LBB0_59 + 0x49, 0x29, 0xdf, //0x0000046b subq %rbx, %r15 + 0x4c, 0x89, 0x3e, //0x0000046e movq %r15, (%rsi) + 0x48, 0x83, 0xc4, 0x18, //0x00000471 addq $24, %rsp + 0x5b, //0x00000475 popq %rbx + 0x41, 0x5c, //0x00000476 popq %r12 + 0x41, 0x5d, //0x00000478 popq %r13 + 0x41, 0x5e, //0x0000047a popq %r14 + 0x41, 0x5f, //0x0000047c popq %r15 + 0x5d, //0x0000047e popq %rbp + 0xc3, //0x0000047f retq + //0x00000480 LBB0_61 + 0x48, 0xf7, 0xdf, //0x00000480 negq %rdi + 0x48, 0x8b, 0x55, 0xd0, //0x00000483 movq $-48(%rbp), %rdx + 0x48, 0x85, 0xff, //0x00000487 testq %rdi, %rdi + 0x0f, 0x89, 0xb0, 0xff, 0xff, 0xff, //0x0000048a jns LBB0_58 + 0xe9, 0xc9, 0xff, 0xff, 0xff, //0x00000490 jmp LBB0_57 + //0x00000495 LBB0_1 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000495 movq $-1, %rax + 0xe9, 0xca, 0xff, 0xff, 0xff, //0x0000049c jmp LBB0_59 + //0x000004a1 LBB0_8 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000004a1 movq $-1, %r10 + 0x4d, 0x89, 0xfc, //0x000004a8 movq %r15, %r12 + 0x4d, 0x89, 0xe8, //0x000004ab movq %r13, %r8 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000004ae movq $-1, %r14 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000004b5 movq $-1, %r11 + 0xe9, 0xdc, 0xfd, 0xff, 0xff, //0x000004bc jmp LBB0_31 + 0x90, 0x90, 0x90, //0x000004c1 .p2align 2, 0x90 + // // .set L0_0_set_38, LBB0_38-LJTI0_0 + // // .set L0_0_set_42, LBB0_42-LJTI0_0 + // // .set L0_0_set_34, LBB0_34-LJTI0_0 + // // .set L0_0_set_40, LBB0_40-LJTI0_0 + // // .set L0_0_set_36, LBB0_36-LJTI0_0 + //0x000004c4 LJTI0_0 + 0x17, 0xfe, 0xff, 0xff, //0x000004c4 .long L0_0_set_38 + 0x76, 0xfe, 0xff, 0xff, //0x000004c8 .long L0_0_set_42 + 0x17, 0xfe, 0xff, 0xff, //0x000004cc .long L0_0_set_38 + 0x4d, 0xfe, 0xff, 0xff, //0x000004d0 .long L0_0_set_34 + 0x76, 0xfe, 0xff, 0xff, //0x000004d4 .long L0_0_set_42 + 0xec, 0xfd, 0xff, 0xff, //0x000004d8 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004dc .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004e0 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004e4 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004e8 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004ec .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004f0 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004f4 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004f8 .long L0_0_set_40 + 0xec, 0xfd, 0xff, 0xff, //0x000004fc .long L0_0_set_40 + 0x76, 0xfe, 0xff, 0xff, //0x00000500 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000504 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000508 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000050c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000510 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000514 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000518 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000051c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000520 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000524 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000528 .long L0_0_set_42 + 0x32, 0xfe, 0xff, 0xff, //0x0000052c .long L0_0_set_36 + 0x76, 0xfe, 0xff, 0xff, //0x00000530 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000534 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000538 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000053c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000540 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000544 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000548 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000054c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000550 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000554 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000558 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000055c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000560 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000564 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000568 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000056c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000570 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000574 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000578 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000057c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000580 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000584 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000588 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000058c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000590 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000594 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x00000598 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x0000059c .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x000005a0 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x000005a4 .long L0_0_set_42 + 0x76, 0xfe, 0xff, 0xff, //0x000005a8 .long L0_0_set_42 + 0x32, 0xfe, 0xff, 0xff, //0x000005ac .long L0_0_set_36 + //0x000005b0 .p2align 2, 0x00 + //0x000005b0 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000005b0 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object.go new file mode 100644 index 000000000..dd4e7b5a7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_object uintptr + +//go:nosplit +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_subr.go new file mode 100644 index 000000000..925550fea --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_object = 160 +) + +const ( + _stack__skip_object = 152 +) + +const ( + _size__skip_object = 9524 +) + +var ( + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {8962, 152}, + {8966, 48}, + {8967, 40}, + {8969, 32}, + {8971, 24}, + {8973, 16}, + {8975, 8}, + {8976, 0}, + {9524, 152}, + } +) + +var _cfunc_skip_object = []loader.CFunc{ + {"_skip_object_entry", 0, _entry__skip_object, 0, nil}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_text_amd64.go new file mode 100644 index 000000000..1af39c198 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_object_text_amd64.go @@ -0,0 +1,2854 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_skip_object = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 6 + //0x00000010 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000030 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000040 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000040 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000050 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000050 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000060 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000060 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000070 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000070 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000080 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000080 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000090 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000090 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000a0 .p2align 4, 0x90 + //0x000000a0 _skip_object + 0x55, //0x000000a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp + 0x41, 0x57, //0x000000a4 pushq %r15 + 0x41, 0x56, //0x000000a6 pushq %r14 + 0x41, 0x55, //0x000000a8 pushq %r13 + 0x41, 0x54, //0x000000aa pushq %r12 + 0x53, //0x000000ac pushq %rbx + 0x48, 0x83, 0xec, 0x68, //0x000000ad subq $104, %rsp + 0x48, 0x89, 0x4d, 0x80, //0x000000b1 movq %rcx, $-128(%rbp) + 0x49, 0x89, 0xd1, //0x000000b5 movq %rdx, %r9 + 0xc5, 0xf8, 0x10, 0x05, 0x40, 0xff, 0xff, 0xff, //0x000000b8 vmovups $-192(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x02, //0x000000c0 vmovups %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x90, //0x000000c4 movq %rdi, $-112(%rbp) + 0x4c, 0x8b, 0x27, //0x000000c8 movq (%rdi), %r12 + 0x4c, 0x89, 0xe0, //0x000000cb movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x000000ce notq %rax + 0x48, 0x89, 0x45, 0xa0, //0x000000d1 movq %rax, $-96(%rbp) + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000000d5 movl $1, %r10d + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000db movl $1, %eax + 0x4c, 0x29, 0xe0, //0x000000e0 subq %r12, %rax + 0x48, 0x89, 0x45, 0x98, //0x000000e3 movq %rax, $-104(%rbp) + 0x49, 0x8d, 0x44, 0x24, 0x40, //0x000000e7 leaq $64(%r12), %rax + 0x48, 0x89, 0x45, 0x88, //0x000000ec movq %rax, $-120(%rbp) + 0x4c, 0x8b, 0x1e, //0x000000f0 movq (%rsi), %r11 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x000000f3 leaq $5(%r12), %rax + 0x48, 0x89, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000000f8 movq %rax, $-144(%rbp) + 0x48, 0xc7, 0x85, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x000000ff movq $-1, $-136(%rbp) + 0xc5, 0xfa, 0x6f, 0x05, 0xfe, 0xfe, 0xff, 0xff, //0x0000010a vmovdqu $-258(%rip), %xmm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x06, 0xff, 0xff, 0xff, //0x00000112 vmovdqu $-250(%rip), %xmm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0x0e, 0xff, 0xff, 0xff, //0x0000011a vmovdqu $-242(%rip), %xmm15 /* LCPI0_3+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00000122 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0xc5, 0x7a, 0x6f, 0x05, 0x12, 0xff, 0xff, 0xff, //0x00000126 vmovdqu $-238(%rip), %xmm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x1a, 0xff, 0xff, 0xff, //0x0000012e vmovdqu $-230(%rip), %xmm9 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x22, 0xff, 0xff, 0xff, //0x00000136 vmovdqu $-222(%rip), %xmm10 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0x2a, 0xff, 0xff, 0xff, //0x0000013e vmovdqu $-214(%rip), %xmm11 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x25, 0xe2, 0xfe, 0xff, 0xff, //0x00000146 vmovdqu $-286(%rip), %xmm12 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x2d, 0x2a, 0xff, 0xff, 0xff, //0x0000014e vmovdqu $-214(%rip), %xmm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x35, 0x32, 0xff, 0xff, 0xff, //0x00000156 vmovdqu $-206(%rip), %xmm14 /* LCPI0_9+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000015e movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x65, 0xd0, //0x00000162 movq %r12, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc0, //0x00000166 movq %rdx, $-64(%rbp) + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x0000016a jmp LBB0_4 + //0x0000016f LBB0_257 + 0x48, 0x85, 0xc0, //0x0000016f testq %rax, %rax + 0x49, 0x8d, 0x45, 0xff, //0x00000172 leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x00000176 notq %r13 + 0x4c, 0x0f, 0x48, 0xe9, //0x00000179 cmovsq %rcx, %r13 + 0x49, 0x39, 0xc3, //0x0000017d cmpq %rax, %r11 + 0x49, 0x89, 0xcb, //0x00000180 movq %rcx, %r11 + 0x4d, 0x0f, 0x44, 0xdd, //0x00000183 cmoveq %r13, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000187 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x0000018b testq %r11, %r11 + 0x0f, 0x88, 0xfb, 0x21, 0x00, 0x00, //0x0000018e js LBB0_419 + //0x00000194 LBB0_258 + 0x4d, 0x01, 0xfb, //0x00000194 addq %r15, %r11 + //0x00000197 LBB0_1 + 0x4c, 0x89, 0x1e, //0x00000197 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000019a movq %r15, %rax + 0x4d, 0x85, 0xff, //0x0000019d testq %r15, %r15 + 0x0f, 0x88, 0xfc, 0x21, 0x00, 0x00, //0x000001a0 js LBB0_423 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001a6 .p2align 4, 0x90 + //0x000001b0 LBB0_2 + 0x49, 0x8b, 0x11, //0x000001b0 movq (%r9), %rdx + 0x49, 0x89, 0xd2, //0x000001b3 movq %rdx, %r10 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000001b6 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000001bd testq %rdx, %rdx + 0x0f, 0x84, 0xdc, 0x21, 0x00, 0x00, //0x000001c0 je LBB0_423 + //0x000001c6 LBB0_4 + 0x48, 0x8b, 0x45, 0x90, //0x000001c6 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x000001ca movq $8(%rax), %rax + 0x4c, 0x89, 0xdb, //0x000001ce movq %r11, %rbx + 0x48, 0x29, 0xc3, //0x000001d1 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000001d4 jae LBB0_9 + 0x43, 0x8a, 0x14, 0x1c, //0x000001da movb (%r12,%r11), %dl + 0x80, 0xfa, 0x0d, //0x000001de cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001e1 je LBB0_9 + 0x80, 0xfa, 0x20, //0x000001e7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001ea je LBB0_9 + 0x80, 0xc2, 0xf7, //0x000001f0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001f3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001f6 jbe LBB0_9 + 0x4d, 0x89, 0xdf, //0x000001fc movq %r11, %r15 + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x000001ff jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000204 .p2align 4, 0x90 + //0x00000210 LBB0_9 + 0x4d, 0x8d, 0x7b, 0x01, //0x00000210 leaq $1(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000214 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000217 jae LBB0_13 + 0x43, 0x8a, 0x14, 0x3c, //0x0000021d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000221 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000224 je LBB0_13 + 0x80, 0xfa, 0x20, //0x0000022a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000022d je LBB0_13 + 0x80, 0xc2, 0xf7, //0x00000233 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000236 cmpb $1, %dl + 0x0f, 0x87, 0xfe, 0x00, 0x00, 0x00, //0x00000239 ja LBB0_30 + 0x90, //0x0000023f .p2align 4, 0x90 + //0x00000240 LBB0_13 + 0x4d, 0x8d, 0x7b, 0x02, //0x00000240 leaq $2(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000244 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000247 jae LBB0_17 + 0x43, 0x8a, 0x14, 0x3c, //0x0000024d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000251 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000254 je LBB0_17 + 0x80, 0xfa, 0x20, //0x0000025a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000025d je LBB0_17 + 0x80, 0xc2, 0xf7, //0x00000263 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000266 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000269 ja LBB0_30 + 0x90, //0x0000026f .p2align 4, 0x90 + //0x00000270 LBB0_17 + 0x4d, 0x8d, 0x7b, 0x03, //0x00000270 leaq $3(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000274 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000277 jae LBB0_21 + 0x43, 0x8a, 0x14, 0x3c, //0x0000027d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000281 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000284 je LBB0_21 + 0x80, 0xfa, 0x20, //0x0000028a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000028d je LBB0_21 + 0x80, 0xc2, 0xf7, //0x00000293 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000296 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000299 ja LBB0_30 + 0x90, //0x0000029f .p2align 4, 0x90 + //0x000002a0 LBB0_21 + 0x49, 0x8d, 0x53, 0x04, //0x000002a0 leaq $4(%r11), %rdx + 0x48, 0x39, 0xd0, //0x000002a4 cmpq %rdx, %rax + 0x0f, 0x86, 0xa1, 0x20, 0x00, 0x00, //0x000002a7 jbe LBB0_413 + 0x48, 0x39, 0xd0, //0x000002ad cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000002b0 je LBB0_27 + 0x49, 0x8d, 0x14, 0x04, //0x000002b6 leaq (%r12,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x000002ba addq $4, %rbx + 0x4c, 0x03, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x000002be addq $-144(%rbp), %r11 + 0x4d, 0x89, 0xdf, //0x000002c5 movq %r11, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002c8 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d2 .p2align 4, 0x90 + //0x000002e0 LBB0_24 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002e0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002e5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002e8 ja LBB0_29 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002ee btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002f2 jae LBB0_29 + 0x49, 0xff, 0xc7, //0x000002f8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002fb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002fe jne LBB0_24 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000304 jmp LBB0_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000309 .p2align 4, 0x90 + //0x00000310 LBB0_27 + 0x4c, 0x01, 0xe2, //0x00000310 addq %r12, %rdx + //0x00000313 LBB0_28 + 0x4c, 0x29, 0xe2, //0x00000313 subq %r12, %rdx + 0x49, 0x89, 0xd7, //0x00000316 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00000319 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000031c jb LBB0_30 + 0xe9, 0x2a, 0x20, 0x00, 0x00, //0x00000322 jmp LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000327 .p2align 4, 0x90 + //0x00000330 LBB0_29 + 0x4c, 0x03, 0x7d, 0xa0, //0x00000330 addq $-96(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x00000334 cmpq %rax, %r15 + 0x0f, 0x83, 0x14, 0x20, 0x00, 0x00, //0x00000337 jae LBB0_414 + //0x0000033d LBB0_30 + 0x4d, 0x8d, 0x5f, 0x01, //0x0000033d leaq $1(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00000341 movq %r11, (%rsi) + 0x43, 0x0f, 0xbe, 0x1c, 0x3c, //0x00000344 movsbl (%r12,%r15), %ebx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000349 movq $-1, %rax + 0x85, 0xdb, //0x00000350 testl %ebx, %ebx + 0x0f, 0x84, 0x4a, 0x20, 0x00, 0x00, //0x00000352 je LBB0_423 + 0x4d, 0x89, 0xf8, //0x00000358 movq %r15, %r8 + 0x49, 0xf7, 0xd0, //0x0000035b notq %r8 + 0x49, 0x8d, 0x52, 0xff, //0x0000035e leaq $-1(%r10), %rdx + 0x43, 0x8b, 0x3c, 0xd1, //0x00000362 movl (%r9,%r10,8), %edi + 0x48, 0x8b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000366 movq $-136(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x0000036d cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x00000371 cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000375 movq %rcx, $-136(%rbp) + 0xff, 0xcf, //0x0000037c decl %edi + 0x83, 0xff, 0x05, //0x0000037e cmpl $5, %edi + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00000381 ja LBB0_36 + 0x48, 0x8d, 0x0d, 0x46, 0x22, 0x00, 0x00, //0x00000387 leaq $8774(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xb9, //0x0000038e movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x00000392 addq %rcx, %rdi + 0xff, 0xe7, //0x00000395 jmpq *%rdi + //0x00000397 LBB0_33 + 0x83, 0xfb, 0x2c, //0x00000397 cmpl $44, %ebx + 0x0f, 0x84, 0xb6, 0x04, 0x00, 0x00, //0x0000039a je LBB0_100 + 0x83, 0xfb, 0x5d, //0x000003a0 cmpl $93, %ebx + 0x0f, 0x84, 0x92, 0x04, 0x00, 0x00, //0x000003a3 je LBB0_35 + 0xe9, 0xed, 0x1f, 0x00, 0x00, //0x000003a9 jmp LBB0_422 + //0x000003ae LBB0_36 + 0x49, 0x89, 0x11, //0x000003ae movq %rdx, (%r9) + 0x83, 0xfb, 0x7b, //0x000003b1 cmpl $123, %ebx + 0x0f, 0x86, 0x19, 0x02, 0x00, 0x00, //0x000003b4 jbe LBB0_63 + 0xe9, 0xdc, 0x1f, 0x00, 0x00, //0x000003ba jmp LBB0_422 + //0x000003bf LBB0_37 + 0x83, 0xfb, 0x2c, //0x000003bf cmpl $44, %ebx + 0x0f, 0x85, 0x6a, 0x04, 0x00, 0x00, //0x000003c2 jne LBB0_38 + 0x49, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x000003c8 cmpq $4095, %r10 + 0x0f, 0x8f, 0x88, 0x1f, 0x00, 0x00, //0x000003cf jg LBB0_441 + 0x49, 0x8d, 0x42, 0x01, //0x000003d5 leaq $1(%r10), %rax + 0x49, 0x89, 0x01, //0x000003d9 movq %rax, (%r9) + 0x4b, 0xc7, 0x44, 0xd1, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000003dc movq $3, $8(%r9,%r10,8) + 0xe9, 0xc6, 0xfd, 0xff, 0xff, //0x000003e5 jmp LBB0_2 + //0x000003ea LBB0_39 + 0x80, 0xfb, 0x22, //0x000003ea cmpb $34, %bl + 0x0f, 0x85, 0xa8, 0x1f, 0x00, 0x00, //0x000003ed jne LBB0_422 + 0x4b, 0xc7, 0x04, 0xd1, 0x04, 0x00, 0x00, 0x00, //0x000003f3 movq $4, (%r9,%r10,8) + 0x48, 0x8b, 0x45, 0x90, //0x000003fb movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x000003ff movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000403 testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000407 movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x0000040b movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0x63, 0x04, 0x00, 0x00, //0x0000040f jne LBB0_104 + 0x49, 0x89, 0xd5, //0x00000415 movq %rdx, %r13 + 0x4d, 0x29, 0xdd, //0x00000418 subq %r11, %r13 + 0x0f, 0x84, 0x30, 0x21, 0x00, 0x00, //0x0000041b je LBB0_456 + 0x4c, 0x89, 0xd8, //0x00000421 movq %r11, %rax + 0x4d, 0x01, 0xe3, //0x00000424 addq %r12, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000427 cmpq $64, %r13 + 0x0f, 0x82, 0x0b, 0x1a, 0x00, 0x00, //0x0000042b jb LBB0_353 + 0x45, 0x89, 0xea, //0x00000431 movl %r13d, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000434 andl $63, %r10d + 0x4a, 0x8d, 0x4c, 0x02, 0xc0, //0x00000438 leaq $-64(%rdx,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x0000043d andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000441 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000444 addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb8, //0x00000448 movq %rcx, $-72(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000044c movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00000453 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000456 .p2align 4, 0x90 + //0x00000460 LBB0_44 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000460 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000465 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x0000046b vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000471 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000477 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x0000047b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000047f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000483 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000487 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000048b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000048f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000493 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000497 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000049b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000049f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000004a3 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x000004a7 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x000004ab vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x000004af vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x000004b3 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x000004b7 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x000004bb shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000004bf shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000004c3 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x000004c6 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x000004c9 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x000004cd shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x000004d1 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x000004d5 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x000004d8 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x000004db orq %r8, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000004de cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000004e2 jne LBB0_46 + 0x48, 0x85, 0xd2, //0x000004e8 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000004eb jne LBB0_55 + //0x000004f1 LBB0_46 + 0x48, 0x09, 0xdf, //0x000004f1 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004f4 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x000004f7 orq %r12, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004fa jne LBB0_56 + //0x00000500 LBB0_47 + 0x48, 0x85, 0xff, //0x00000500 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000503 jne LBB0_57 + //0x00000509 LBB0_48 + 0x49, 0x83, 0xc5, 0xc0, //0x00000509 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x0000050d addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000511 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000515 ja LBB0_44 + 0xe9, 0x1d, 0x12, 0x00, 0x00, //0x0000051b jmp LBB0_49 + //0x00000520 LBB0_55 + 0x4c, 0x89, 0xd8, //0x00000520 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000523 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000527 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x0000052b addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x0000052e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000531 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x00000534 orq %r12, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000537 je LBB0_47 + //0x0000053d LBB0_56 + 0x4c, 0x89, 0xe0, //0x0000053d movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00000540 notq %rax + 0x48, 0x21, 0xd0, //0x00000543 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000546 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe1, //0x0000054a orq %r12, %rcx + 0x48, 0x89, 0xce, //0x0000054d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000550 notq %rsi + 0x48, 0x21, 0xd6, //0x00000553 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000556 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000560 andq %rdx, %rsi + 0x45, 0x31, 0xe4, //0x00000563 xorl %r12d, %r12d + 0x48, 0x01, 0xc6, //0x00000566 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc4, //0x00000569 setb %r12b + 0x48, 0x01, 0xf6, //0x0000056d addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000570 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000057a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000057d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000580 notq %rsi + 0x48, 0x21, 0xf7, //0x00000583 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000586 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000589 je LBB0_48 + //0x0000058f LBB0_57 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000058f bsfq %rdi, %rax + //0x00000593 LBB0_58 + 0x4c, 0x03, 0x5d, 0x98, //0x00000593 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000597 addq %rax, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000059a movq $-48(%rbp), %r12 + 0xe9, 0x3a, 0x09, 0x00, 0x00, //0x0000059e jmp LBB0_187 + //0x000005a3 LBB0_59 + 0x80, 0xfb, 0x3a, //0x000005a3 cmpb $58, %bl + 0x0f, 0x85, 0xef, 0x1d, 0x00, 0x00, //0x000005a6 jne LBB0_422 + 0x4b, 0xc7, 0x04, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000005ac movq $0, (%r9,%r10,8) + 0xe9, 0xf7, 0xfb, 0xff, 0xff, //0x000005b4 jmp LBB0_2 + //0x000005b9 LBB0_61 + 0x80, 0xfb, 0x5d, //0x000005b9 cmpb $93, %bl + 0x0f, 0x84, 0x79, 0x02, 0x00, 0x00, //0x000005bc je LBB0_35 + 0x4b, 0xc7, 0x04, 0xd1, 0x01, 0x00, 0x00, 0x00, //0x000005c2 movq $1, (%r9,%r10,8) + 0x83, 0xfb, 0x7b, //0x000005ca cmpl $123, %ebx + 0x0f, 0x87, 0xc8, 0x1d, 0x00, 0x00, //0x000005cd ja LBB0_422 + //0x000005d3 LBB0_63 + 0x4f, 0x8d, 0x14, 0x3c, //0x000005d3 leaq (%r12,%r15), %r10 + 0x89, 0xd9, //0x000005d7 movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x0c, 0x20, 0x00, 0x00, //0x000005d9 leaq $8204(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000005e0 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000005e4 addq %rdx, %rcx + 0xff, 0xe1, //0x000005e7 jmpq *%rcx + //0x000005e9 LBB0_66 + 0x48, 0x8b, 0x45, 0x90, //0x000005e9 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x000005ed movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x000005f1 subq %r15, %rdi + 0x0f, 0x84, 0x89, 0x1d, 0x00, 0x00, //0x000005f4 je LBB0_417 + 0x41, 0x80, 0x3a, 0x30, //0x000005fa cmpb $48, (%r10) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005fe jne LBB0_71 + 0x48, 0x83, 0xff, 0x01, //0x00000604 cmpq $1, %rdi + 0x0f, 0x84, 0x89, 0xfb, 0xff, 0xff, //0x00000608 je LBB0_1 + 0x43, 0x8a, 0x04, 0x1c, //0x0000060e movb (%r12,%r11), %al + 0x04, 0xd2, //0x00000612 addb $-46, %al + 0x3c, 0x37, //0x00000614 cmpb $55, %al + 0x0f, 0x87, 0x7b, 0xfb, 0xff, 0xff, //0x00000616 ja LBB0_1 + 0x0f, 0xb6, 0xc0, //0x0000061c movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000061f movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000629 btq %rax, %rcx + 0x0f, 0x83, 0x64, 0xfb, 0xff, 0xff, //0x0000062d jae LBB0_1 + //0x00000633 LBB0_71 + 0x48, 0x83, 0xff, 0x10, //0x00000633 cmpq $16, %rdi + 0x0f, 0x82, 0xde, 0x17, 0x00, 0x00, //0x00000637 jb LBB0_342 + 0x4c, 0x8d, 0x4f, 0xf0, //0x0000063d leaq $-16(%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x00000641 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000644 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x10, 0x10, //0x00000648 leaq $16(%rax,%r10), %rax + 0x48, 0x89, 0x45, 0xa8, //0x0000064d movq %rax, $-88(%rbp) + 0x41, 0x83, 0xe1, 0x0f, //0x00000651 andl $15, %r9d + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000655 movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000065c movq $-1, %r13 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000663 movq $-1, %r11 + 0x4d, 0x89, 0xd6, //0x0000066a movq %r10, %r14 + 0x90, 0x90, 0x90, //0x0000066d .p2align 4, 0x90 + //0x00000670 LBB0_73 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00000670 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x00000675 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x0000067a vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000067e vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x00000682 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x00000686 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000068a vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x0000068e vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x00000692 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x00000696 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x0000069a vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x0000069e vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000006a2 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0x79, 0xd7, 0xc2, //0x000006a6 vpmovmskb %xmm2, %r8d + 0xc5, 0xf9, 0xd7, 0xc6, //0x000006aa vpmovmskb %xmm6, %eax + 0xc5, 0xf9, 0xd7, 0xd5, //0x000006ae vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x000006b2 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000006b6 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x000006bb addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x000006c2 xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x000006c5 bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x000006c9 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000006cc je LBB0_75 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000006d2 movl $-1, %esi + 0xd3, 0xe6, //0x000006d7 shll %cl, %esi + 0xf7, 0xd6, //0x000006d9 notl %esi + 0x41, 0x21, 0xf0, //0x000006db andl %esi, %r8d + 0x21, 0xf0, //0x000006de andl %esi, %eax + 0x21, 0xd6, //0x000006e0 andl %edx, %esi + 0x89, 0xf2, //0x000006e2 movl %esi, %edx + //0x000006e4 LBB0_75 + 0x41, 0x8d, 0x70, 0xff, //0x000006e4 leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x000006e8 andl %r8d, %esi + 0x0f, 0x85, 0x17, 0x10, 0x00, 0x00, //0x000006eb jne LBB0_308 + 0x8d, 0x70, 0xff, //0x000006f1 leal $-1(%rax), %esi + 0x21, 0xc6, //0x000006f4 andl %eax, %esi + 0x0f, 0x85, 0x0c, 0x10, 0x00, 0x00, //0x000006f6 jne LBB0_308 + 0x8d, 0x72, 0xff, //0x000006fc leal $-1(%rdx), %esi + 0x21, 0xd6, //0x000006ff andl %edx, %esi + 0x0f, 0x85, 0x01, 0x10, 0x00, 0x00, //0x00000701 jne LBB0_308 + 0x45, 0x85, 0xc0, //0x00000707 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000070a je LBB0_81 + 0x4c, 0x89, 0xf3, //0x00000710 movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x00000713 subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x00000716 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x0000071a addq %rbx, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x0000071d cmpq $-1, %r11 + 0x0f, 0x85, 0x93, 0x13, 0x00, 0x00, //0x00000721 jne LBB0_325 + 0x49, 0x89, 0xf3, //0x00000727 movq %rsi, %r11 + //0x0000072a LBB0_81 + 0x85, 0xc0, //0x0000072a testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000072c je LBB0_84 + 0x4c, 0x89, 0xf6, //0x00000732 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000735 subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000738 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x0000073b addq %rsi, %rax + 0x49, 0x83, 0xfd, 0xff, //0x0000073e cmpq $-1, %r13 + 0x0f, 0x85, 0x64, 0x11, 0x00, 0x00, //0x00000742 jne LBB0_313 + 0x49, 0x89, 0xc5, //0x00000748 movq %rax, %r13 + //0x0000074b LBB0_84 + 0x85, 0xd2, //0x0000074b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000074d je LBB0_87 + 0x4c, 0x89, 0xf6, //0x00000753 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000756 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x00000759 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x0000075c addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x0000075f cmpq $-1, %r12 + 0x0f, 0x85, 0x43, 0x11, 0x00, 0x00, //0x00000763 jne LBB0_313 + 0x49, 0x89, 0xc4, //0x00000769 movq %rax, %r12 + //0x0000076c LBB0_87 + 0x83, 0xf9, 0x10, //0x0000076c cmpl $16, %ecx + 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x0000076f jne LBB0_148 + 0x49, 0x83, 0xc6, 0x10, //0x00000775 addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x00000779 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x0000077d cmpq $15, %rdi + 0x0f, 0x87, 0xe9, 0xfe, 0xff, 0xff, //0x00000781 ja LBB0_73 + 0x4d, 0x85, 0xc9, //0x00000787 testq %r9, %r9 + 0x0f, 0x84, 0xb1, 0x04, 0x00, 0x00, //0x0000078a je LBB0_150 + //0x00000790 LBB0_90 + 0x48, 0x8b, 0x7d, 0xa8, //0x00000790 movq $-88(%rbp), %rdi + 0x4a, 0x8d, 0x0c, 0x0f, //0x00000794 leaq (%rdi,%r9), %rcx + 0x48, 0x8d, 0x35, 0x29, 0x21, 0x00, 0x00, //0x00000798 leaq $8489(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x0000079f jmp LBB0_92 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007a4 .p2align 4, 0x90 + //0x000007b0 LBB0_91 + 0x48, 0x89, 0xc7, //0x000007b0 movq %rax, %rdi + 0x49, 0xff, 0xc9, //0x000007b3 decq %r9 + 0x0f, 0x84, 0xfb, 0x10, 0x00, 0x00, //0x000007b6 je LBB0_314 + //0x000007bc LBB0_92 + 0x0f, 0xbe, 0x17, //0x000007bc movsbl (%rdi), %edx + 0x83, 0xc2, 0xd5, //0x000007bf addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000007c2 cmpl $58, %edx + 0x0f, 0x87, 0x72, 0x04, 0x00, 0x00, //0x000007c5 ja LBB0_149 + 0x48, 0x8d, 0x47, 0x01, //0x000007cb leaq $1(%rdi), %rax + 0x48, 0x63, 0x14, 0x96, //0x000007cf movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000007d3 addq %rsi, %rdx + 0xff, 0xe2, //0x000007d6 jmpq *%rdx + //0x000007d8 LBB0_94 + 0x48, 0x89, 0xc2, //0x000007d8 movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x000007db subq %r10, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000007de cmpq $-1, %r12 + 0x0f, 0x85, 0x86, 0x13, 0x00, 0x00, //0x000007e2 jne LBB0_418 + 0x48, 0xff, 0xca, //0x000007e8 decq %rdx + 0x49, 0x89, 0xd4, //0x000007eb movq %rdx, %r12 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x000007ee jmp LBB0_91 + //0x000007f3 LBB0_96 + 0x48, 0x89, 0xc2, //0x000007f3 movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x000007f6 subq %r10, %rdx + 0x49, 0x83, 0xfd, 0xff, //0x000007f9 cmpq $-1, %r13 + 0x0f, 0x85, 0x6b, 0x13, 0x00, 0x00, //0x000007fd jne LBB0_418 + 0x48, 0xff, 0xca, //0x00000803 decq %rdx + 0x49, 0x89, 0xd5, //0x00000806 movq %rdx, %r13 + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x00000809 jmp LBB0_91 + //0x0000080e LBB0_98 + 0x48, 0x89, 0xc2, //0x0000080e movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x00000811 subq %r10, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x00000814 cmpq $-1, %r11 + 0x0f, 0x85, 0x50, 0x13, 0x00, 0x00, //0x00000818 jne LBB0_418 + 0x48, 0xff, 0xca, //0x0000081e decq %rdx + 0x49, 0x89, 0xd3, //0x00000821 movq %rdx, %r11 + 0xe9, 0x87, 0xff, 0xff, 0xff, //0x00000824 jmp LBB0_91 + //0x00000829 LBB0_64 + 0x83, 0xfb, 0x22, //0x00000829 cmpl $34, %ebx + 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x0000082c je LBB0_125 + //0x00000832 LBB0_38 + 0x83, 0xfb, 0x7d, //0x00000832 cmpl $125, %ebx + 0x0f, 0x85, 0x60, 0x1b, 0x00, 0x00, //0x00000835 jne LBB0_422 + //0x0000083b LBB0_35 + 0x49, 0x89, 0x11, //0x0000083b movq %rdx, (%r9) + 0x49, 0x89, 0xd2, //0x0000083e movq %rdx, %r10 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000841 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x00000848 testq %rdx, %rdx + 0x0f, 0x85, 0x75, 0xf9, 0xff, 0xff, //0x0000084b jne LBB0_4 + 0xe9, 0x4c, 0x1b, 0x00, 0x00, //0x00000851 jmp LBB0_423 + //0x00000856 LBB0_100 + 0x49, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x00000856 cmpq $4095, %r10 + 0x0f, 0x8f, 0xfa, 0x1a, 0x00, 0x00, //0x0000085d jg LBB0_441 + 0x49, 0x8d, 0x42, 0x01, //0x00000863 leaq $1(%r10), %rax + 0x49, 0x89, 0x01, //0x00000867 movq %rax, (%r9) + 0x4b, 0xc7, 0x44, 0xd1, 0x08, 0x00, 0x00, 0x00, 0x00, //0x0000086a movq $0, $8(%r9,%r10,8) + 0xe9, 0x38, 0xf9, 0xff, 0xff, //0x00000873 jmp LBB0_2 + //0x00000878 LBB0_104 + 0x48, 0x89, 0xd0, //0x00000878 movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x0000087b subq %r11, %rax + 0x0f, 0x84, 0xcd, 0x1c, 0x00, 0x00, //0x0000087e je LBB0_456 + 0x4c, 0x89, 0xd9, //0x00000884 movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x00000887 addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x0000088a cmpq $64, %rax + 0x0f, 0x82, 0xc1, 0x15, 0x00, 0x00, //0x0000088e jb LBB0_354 + 0x89, 0xc6, //0x00000894 movl %eax, %esi + 0x83, 0xe6, 0x3f, //0x00000896 andl $63, %esi + 0x48, 0x89, 0x75, 0xb8, //0x00000899 movq %rsi, $-72(%rbp) + 0x4e, 0x8d, 0x54, 0x02, 0xc0, //0x0000089d leaq $-64(%rdx,%r8), %r10 + 0x49, 0x83, 0xe2, 0xc0, //0x000008a2 andq $-64, %r10 + 0x49, 0x01, 0xca, //0x000008a6 addq %rcx, %r10 + 0x4c, 0x03, 0x55, 0x88, //0x000008a9 addq $-120(%rbp), %r10 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000008ad movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x000008b4 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008b7 .p2align 4, 0x90 + //0x000008c0 LBB0_107 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x000008c0 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x000008c5 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x000008cb vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x000008d1 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x000008d7 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000008db vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x000008df vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000008e3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000008e7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000008eb vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000008ef vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000008f3 vpmovmskb %xmm2, %edx + 0xc5, 0xc9, 0x74, 0xd1, //0x000008f7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000008fb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000008ff vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00000903 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00000907 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x0000090b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x0000090f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000912 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000916 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x0000091a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x0000091e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000921 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000925 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000929 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x0000092d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000931 shlq $16, %rdi + 0x49, 0x09, 0xfd, //0x00000935 orq %rdi, %r13 + 0xc5, 0x79, 0xd7, 0xe2, //0x00000938 vpmovmskb %xmm2, %r12d + 0xc5, 0x81, 0x64, 0xd5, //0x0000093c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000940 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000944 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000948 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000094c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000094f vpmovmskb %xmm2, %edi + 0xc5, 0x81, 0x64, 0xd4, //0x00000953 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000957 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000095b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000095f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000963 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000966 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000096a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000096e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000972 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000976 shlq $16, %rdi + 0x49, 0x09, 0xfc, //0x0000097a orq %rdi, %r12 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000097d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe2, 0x30, //0x00000981 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x00000985 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00000989 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000098d jne LBB0_109 + 0x4d, 0x85, 0xed, //0x00000993 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000996 jne LBB0_124 + //0x0000099c LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x0000099c shlq $48, %r14 + 0x49, 0x09, 0xcc, //0x000009a0 orq %rcx, %r12 + 0x48, 0x09, 0xd6, //0x000009a3 orq %rdx, %rsi + 0x4c, 0x89, 0xe9, //0x000009a6 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x000009a9 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000009ac jne LBB0_145 + 0x4d, 0x09, 0xf4, //0x000009b2 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x000009b5 testq %rsi, %rsi + 0x0f, 0x85, 0x39, 0x02, 0x00, 0x00, //0x000009b8 jne LBB0_146 + //0x000009be LBB0_111 + 0x4d, 0x85, 0xe4, //0x000009be testq %r12, %r12 + 0x0f, 0x85, 0x0c, 0x1a, 0x00, 0x00, //0x000009c1 jne LBB0_426 + 0x48, 0x83, 0xc0, 0xc0, //0x000009c7 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x000009cb addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x000009cf cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x000009d3 ja LBB0_107 + 0xe9, 0xda, 0x0d, 0x00, 0x00, //0x000009d9 jmp LBB0_113 + //0x000009de LBB0_145 + 0x4c, 0x89, 0xc1, //0x000009de movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000009e1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000009e4 andq %r13, %rcx + 0x48, 0x8d, 0x14, 0x09, //0x000009e7 leaq (%rcx,%rcx), %rdx + 0x4c, 0x09, 0xc2, //0x000009eb orq %r8, %rdx + 0x48, 0x89, 0xd7, //0x000009ee movq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x000009f1 notq %rdi + 0x4c, 0x21, 0xef, //0x000009f4 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000009f7 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x00000a01 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x00000a04 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x00000a07 addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x00000a0a setb %r8b + 0x48, 0x01, 0xff, //0x00000a0e addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a11 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00000a1b xorq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x00000a1e andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x00000a21 notq %rdi + 0x48, 0x21, 0xfe, //0x00000a24 andq %rdi, %rsi + 0x4d, 0x09, 0xf4, //0x00000a27 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x00000a2a testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00000a2d je LBB0_111 + 0xe9, 0xbf, 0x01, 0x00, 0x00, //0x00000a33 jmp LBB0_146 + //0x00000a38 LBB0_124 + 0x4c, 0x89, 0xdf, //0x00000a38 movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00000a3b subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000a3f bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x00000a43 addq %rdi, %r9 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x00000a46 jmp LBB0_109 + //0x00000a4b LBB0_125 + 0x4b, 0xc7, 0x04, 0xd1, 0x02, 0x00, 0x00, 0x00, //0x00000a4b movq $2, (%r9,%r10,8) + 0x48, 0x8b, 0x45, 0x90, //0x00000a53 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000a57 movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000a5b testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000a5f movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00000a63 movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0x71, 0x02, 0x00, 0x00, //0x00000a67 jne LBB0_161 + 0x49, 0x89, 0xd5, //0x00000a6d movq %rdx, %r13 + 0x4d, 0x29, 0xdd, //0x00000a70 subq %r11, %r13 + 0x0f, 0x84, 0xf3, 0x1a, 0x00, 0x00, //0x00000a73 je LBB0_454 + 0x4c, 0x89, 0xd8, //0x00000a79 movq %r11, %rax + 0x4d, 0x01, 0xe3, //0x00000a7c addq %r12, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000a7f cmpq $64, %r13 + 0x0f, 0x82, 0xfc, 0x13, 0x00, 0x00, //0x00000a83 jb LBB0_357 + 0x45, 0x89, 0xea, //0x00000a89 movl %r13d, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000a8c andl $63, %r10d + 0x4a, 0x8d, 0x4c, 0x02, 0xc0, //0x00000a90 leaq $-64(%rdx,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000a95 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000a99 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000a9c addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb8, //0x00000aa0 movq %rcx, $-72(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000aa4 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00000aab xorl %r9d, %r9d + 0x90, 0x90, //0x00000aae .p2align 4, 0x90 + //0x00000ab0 LBB0_129 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000ab0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000ab5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000abb vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000ac1 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000ac7 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x00000acb vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x00000acf vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000ad3 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000ad7 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x00000adb vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x00000adf vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000ae3 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000ae7 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000aeb vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000aef vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000af3 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00000af7 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00000afb vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x00000aff vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000b03 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x00000b07 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000b0b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000b0f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b13 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b16 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x00000b19 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b1d shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000b21 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000b25 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000b28 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x00000b2b orq %r8, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x00000b2e cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b32 jne LBB0_131 + 0x48, 0x85, 0xd2, //0x00000b38 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000b3b jne LBB0_140 + //0x00000b41 LBB0_131 + 0x48, 0x09, 0xdf, //0x00000b41 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b44 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000b47 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000b4a jne LBB0_141 + //0x00000b50 LBB0_132 + 0x48, 0x85, 0xff, //0x00000b50 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000b53 jne LBB0_142 + //0x00000b59 LBB0_133 + 0x49, 0x83, 0xc5, 0xc0, //0x00000b59 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000b5d addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000b61 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000b65 ja LBB0_129 + 0xe9, 0x64, 0x0d, 0x00, 0x00, //0x00000b6b jmp LBB0_134 + //0x00000b70 LBB0_140 + 0x4c, 0x89, 0xd8, //0x00000b70 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000b73 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe2, //0x00000b77 bsfq %rdx, %r12 + 0x49, 0x01, 0xc4, //0x00000b7b addq %rax, %r12 + 0x48, 0x09, 0xdf, //0x00000b7e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b81 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000b84 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000b87 je LBB0_132 + //0x00000b8d LBB0_141 + 0x4c, 0x89, 0xc8, //0x00000b8d movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000b90 notq %rax + 0x48, 0x21, 0xd0, //0x00000b93 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000b96 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x00000b9a orq %r9, %rcx + 0x48, 0x89, 0xce, //0x00000b9d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000ba0 notq %rsi + 0x48, 0x21, 0xd6, //0x00000ba3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000ba6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000bb0 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x00000bb3 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x00000bb6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x00000bb9 setb %r9b + 0x48, 0x01, 0xf6, //0x00000bbd addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000bc0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000bca xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000bcd andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000bd0 notq %rsi + 0x48, 0x21, 0xf7, //0x00000bd3 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000bd6 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000bd9 je LBB0_133 + //0x00000bdf LBB0_142 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000bdf bsfq %rdi, %rax + //0x00000be3 LBB0_143 + 0x4c, 0x03, 0x5d, 0x98, //0x00000be3 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000be7 addq %rax, %r11 + //0x00000bea LBB0_144 + 0x48, 0x8b, 0x75, 0xc8, //0x00000bea movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000bee movq $-64(%rbp), %r9 + 0xe9, 0x59, 0x03, 0x00, 0x00, //0x00000bf2 jmp LBB0_195 + //0x00000bf7 LBB0_146 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000bf7 bsfq %rsi, %rax + 0x4d, 0x85, 0xe4, //0x00000bfb testq %r12, %r12 + 0x0f, 0x84, 0xbf, 0x02, 0x00, 0x00, //0x00000bfe je LBB0_185 + 0x49, 0x0f, 0xbc, 0xcc, //0x00000c04 bsfq %r12, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000c08 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000c0c subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000c0f cmpq %rax, %rcx + 0x0f, 0x83, 0xc0, 0x02, 0x00, 0x00, //0x00000c12 jae LBB0_186 + 0xe9, 0x3d, 0x19, 0x00, 0x00, //0x00000c18 jmp LBB0_306 + //0x00000c1d LBB0_148 + 0x49, 0x01, 0xce, //0x00000c1d addq %rcx, %r14 + 0x4c, 0x89, 0x75, 0xa8, //0x00000c20 movq %r14, $-88(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c24 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000c2b testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c2e movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000c32 jne LBB0_151 + 0xe9, 0x55, 0x17, 0x00, 0x00, //0x00000c38 jmp LBB0_420 + //0x00000c3d LBB0_149 + 0x48, 0x89, 0x7d, 0xa8, //0x00000c3d movq %rdi, $-88(%rbp) + //0x00000c41 LBB0_150 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c41 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000c48 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c4b movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x3d, 0x17, 0x00, 0x00, //0x00000c4f je LBB0_420 + //0x00000c55 LBB0_151 + 0x4d, 0x85, 0xe4, //0x00000c55 testq %r12, %r12 + 0x0f, 0x84, 0x34, 0x17, 0x00, 0x00, //0x00000c58 je LBB0_420 + 0x4d, 0x85, 0xdb, //0x00000c5e testq %r11, %r11 + 0x0f, 0x84, 0x2b, 0x17, 0x00, 0x00, //0x00000c61 je LBB0_420 + 0x48, 0x8b, 0x45, 0xa8, //0x00000c67 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xd0, //0x00000c6b subq %r10, %rax + 0x48, 0x89, 0xc1, //0x00000c6e movq %rax, %rcx + 0x48, 0xff, 0xc8, //0x00000c71 decq %rax + 0x49, 0x39, 0xc5, //0x00000c74 cmpq %rax, %r13 + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000c77 je LBB0_159 + 0x49, 0x39, 0xc3, //0x00000c7d cmpq %rax, %r11 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00000c80 je LBB0_159 + 0x49, 0x39, 0xc4, //0x00000c86 cmpq %rax, %r12 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000c89 je LBB0_159 + 0x4d, 0x85, 0xe4, //0x00000c8f testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000c92 movq $-64(%rbp), %r9 + 0x0f, 0x8e, 0x68, 0x02, 0x00, 0x00, //0x00000c96 jle LBB0_189 + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000c9c leaq $-1(%r12), %rax + 0x49, 0x39, 0xc5, //0x00000ca1 cmpq %rax, %r13 + 0x0f, 0x84, 0x5a, 0x02, 0x00, 0x00, //0x00000ca4 je LBB0_189 + 0x49, 0xf7, 0xd4, //0x00000caa notq %r12 + 0x4d, 0x89, 0xe3, //0x00000cad movq %r12, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000cb0 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000cb4 testq %r11, %r11 + 0x0f, 0x89, 0xd7, 0xf4, 0xff, 0xff, //0x00000cb7 jns LBB0_258 + 0xe9, 0xcd, 0x16, 0x00, 0x00, //0x00000cbd jmp LBB0_419 + //0x00000cc2 LBB0_159 + 0x49, 0x89, 0xcb, //0x00000cc2 movq %rcx, %r11 + 0x49, 0xf7, 0xdb, //0x00000cc5 negq %r11 + //0x00000cc8 LBB0_160 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000cc8 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000ccc movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00000cd0 testq %r11, %r11 + 0x0f, 0x89, 0xbb, 0xf4, 0xff, 0xff, //0x00000cd3 jns LBB0_258 + 0xe9, 0xb1, 0x16, 0x00, 0x00, //0x00000cd9 jmp LBB0_419 + //0x00000cde LBB0_161 + 0x48, 0x89, 0xd0, //0x00000cde movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x00000ce1 subq %r11, %rax + 0x0f, 0x84, 0x82, 0x18, 0x00, 0x00, //0x00000ce4 je LBB0_454 + 0x4c, 0x89, 0xd9, //0x00000cea movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x00000ced addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000cf0 cmpq $64, %rax + 0x0f, 0x82, 0xa4, 0x11, 0x00, 0x00, //0x00000cf4 jb LBB0_358 + 0x41, 0x89, 0xc2, //0x00000cfa movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000cfd andl $63, %r10d + 0x4e, 0x8d, 0x44, 0x02, 0xc0, //0x00000d01 leaq $-64(%rdx,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000d06 andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x00000d0a addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000d0d addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000d11 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00000d18 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d1b .p2align 4, 0x90 + //0x00000d20 LBB0_164 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00000d20 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00000d25 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x00000d2b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x00000d31 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x00000d37 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x00000d3b vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x00000d3f vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d43 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x00000d47 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d4b vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x00000d4f vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00000d53 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x00000d57 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x00000d5b vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x00000d5f vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d63 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000d67 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000d6b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x00000d6f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d72 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000d76 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x00000d7a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000d7e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d81 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000d85 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000d89 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x00000d8d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00000d91 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000d95 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d98 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x00000d9c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000da0 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000da4 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000da8 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x00000dac orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000daf vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00000db3 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000db7 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000dbb vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x00000dbf shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000dc3 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000dc6 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x00000dca vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x00000dce vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000dd2 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000dd6 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00000dda orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x00000ddd vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00000de1 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00000de5 shlq $32, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00000de9 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000ded jne LBB0_166 + 0x4d, 0x85, 0xed, //0x00000df3 testq %r13, %r13 + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00000df6 jne LBB0_181 + //0x00000dfc LBB0_166 + 0x49, 0xc1, 0xe6, 0x30, //0x00000dfc shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00000e00 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00000e03 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00000e06 movq %r13, %rcx + 0x4c, 0x09, 0xc9, //0x00000e09 orq %r9, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000e0c jne LBB0_182 + 0x4c, 0x09, 0xf2, //0x00000e12 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e15 testq %rsi, %rsi + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00000e18 jne LBB0_183 + //0x00000e1e LBB0_168 + 0x48, 0x85, 0xd2, //0x00000e1e testq %rdx, %rdx + 0x0f, 0x85, 0xda, 0x15, 0x00, 0x00, //0x00000e21 jne LBB0_432 + 0x48, 0x83, 0xc0, 0xc0, //0x00000e27 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000e2b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000e2f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x00000e33 ja LBB0_164 + 0xe9, 0x11, 0x0b, 0x00, 0x00, //0x00000e39 jmp LBB0_170 + //0x00000e3e LBB0_182 + 0x4c, 0x89, 0xc9, //0x00000e3e movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000e41 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000e44 andq %r13, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00000e47 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xcb, //0x00000e4b orq %r9, %rbx + 0x48, 0x89, 0x5d, 0xb8, //0x00000e4e movq %rbx, $-72(%rbp) + 0x48, 0xf7, 0xd3, //0x00000e52 notq %rbx + 0x4c, 0x21, 0xeb, //0x00000e55 andq %r13, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000e58 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00000e62 andq %rdi, %rbx + 0x45, 0x31, 0xc9, //0x00000e65 xorl %r9d, %r9d + 0x48, 0x01, 0xcb, //0x00000e68 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc1, //0x00000e6b setb %r9b + 0x48, 0x01, 0xdb, //0x00000e6f addq %rbx, %rbx + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000e72 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcb, //0x00000e7c xorq %rcx, %rbx + 0x48, 0x23, 0x5d, 0xb8, //0x00000e7f andq $-72(%rbp), %rbx + 0x48, 0xf7, 0xd3, //0x00000e83 notq %rbx + 0x48, 0x21, 0xde, //0x00000e86 andq %rbx, %rsi + 0x4c, 0x09, 0xf2, //0x00000e89 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e8c testq %rsi, %rsi + 0x0f, 0x84, 0x89, 0xff, 0xff, 0xff, //0x00000e8f je LBB0_168 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000e95 jmp LBB0_183 + //0x00000e9a LBB0_181 + 0x4c, 0x89, 0xdb, //0x00000e9a movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00000e9d subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xe5, //0x00000ea1 bsfq %r13, %r12 + 0x49, 0x01, 0xdc, //0x00000ea5 addq %rbx, %r12 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00000ea8 jmp LBB0_166 + //0x00000ead LBB0_183 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000ead bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000eb1 testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00000eb4 je LBB0_192 + 0x48, 0x0f, 0xbc, 0xca, //0x00000eba bsfq %rdx, %rcx + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x00000ebe jmp LBB0_193 + //0x00000ec3 LBB0_185 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000ec3 movl $64, %ecx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000ec8 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000ecc subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000ecf cmpq %rax, %rcx + 0x0f, 0x82, 0x82, 0x16, 0x00, 0x00, //0x00000ed2 jb LBB0_306 + //0x00000ed8 LBB0_186 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000ed8 leaq $1(%r11,%rax), %r11 + //0x00000edd LBB0_187 + 0x4d, 0x85, 0xdb, //0x00000edd testq %r11, %r11 + 0x0f, 0x88, 0x83, 0x14, 0x00, 0x00, //0x00000ee0 js LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00000ee6 movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000eea movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000eed movq %r15, %rax + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00000ef0 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000ef5 movq $-64(%rbp), %r9 + 0x0f, 0x8f, 0xb1, 0xf2, 0xff, 0xff, //0x00000ef9 jg LBB0_2 + 0xe9, 0x9e, 0x14, 0x00, 0x00, //0x00000eff jmp LBB0_423 + //0x00000f04 LBB0_189 + 0x4c, 0x89, 0xd8, //0x00000f04 movq %r11, %rax + 0x4c, 0x09, 0xe8, //0x00000f07 orq %r13, %rax + 0x4d, 0x39, 0xeb, //0x00000f0a cmpq %r13, %r11 + 0x0f, 0x8c, 0x5c, 0xf2, 0xff, 0xff, //0x00000f0d jl LBB0_257 + 0x48, 0x85, 0xc0, //0x00000f13 testq %rax, %rax + 0x0f, 0x88, 0x53, 0xf2, 0xff, 0xff, //0x00000f16 js LBB0_257 + 0x49, 0xf7, 0xd3, //0x00000f1c notq %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f1f movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000f23 testq %r11, %r11 + 0x0f, 0x89, 0x68, 0xf2, 0xff, 0xff, //0x00000f26 jns LBB0_258 + 0xe9, 0x5e, 0x14, 0x00, 0x00, //0x00000f2c jmp LBB0_419 + //0x00000f31 LBB0_192 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f31 movl $64, %ecx + //0x00000f36 LBB0_193 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f36 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000f3a movq $-64(%rbp), %r9 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000f3e subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000f42 cmpq %rax, %rcx + 0x0f, 0x82, 0x2a, 0x16, 0x00, 0x00, //0x00000f45 jb LBB0_455 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f4b leaq $1(%r11,%rax), %r11 + //0x00000f50 LBB0_195 + 0x4d, 0x85, 0xdb, //0x00000f50 testq %r11, %r11 + 0x0f, 0x88, 0x58, 0x14, 0x00, 0x00, //0x00000f53 js LBB0_424 + 0x4c, 0x89, 0x1e, //0x00000f59 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000f5c movq %r15, %rax + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00000f5f cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f64 movq $-48(%rbp), %r12 + 0x0f, 0x8e, 0x34, 0x14, 0x00, 0x00, //0x00000f68 jle LBB0_423 + 0x49, 0x8b, 0x01, //0x00000f6e movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000f71 cmpq $4095, %rax + 0x0f, 0x8f, 0xe0, 0x13, 0x00, 0x00, //0x00000f77 jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x00000f7d leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x00000f81 movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00000f84 movq $4, $8(%r9,%rax,8) + 0xe9, 0x1e, 0xf2, 0xff, 0xff, //0x00000f8d jmp LBB0_2 + //0x00000f92 LBB0_199 + 0x48, 0x8b, 0x45, 0x90, //0x00000f92 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000f96 movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000f9a testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000f9e movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00000fa2 movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0xa3, 0x04, 0x00, 0x00, //0x00000fa6 jne LBB0_268 + 0x49, 0x89, 0xd4, //0x00000fac movq %rdx, %r12 + 0x4d, 0x29, 0xdc, //0x00000faf subq %r11, %r12 + 0x0f, 0x84, 0x99, 0x15, 0x00, 0x00, //0x00000fb2 je LBB0_456 + 0x48, 0x8b, 0x45, 0xd0, //0x00000fb8 movq $-48(%rbp), %rax + 0x4c, 0x89, 0xd9, //0x00000fbc movq %r11, %rcx + 0x49, 0x01, 0xc3, //0x00000fbf addq %rax, %r11 + 0x49, 0x83, 0xfc, 0x40, //0x00000fc2 cmpq $64, %r12 + 0x0f, 0x82, 0x12, 0x0f, 0x00, 0x00, //0x00000fc6 jb LBB0_360 + 0x44, 0x89, 0xe0, //0x00000fcc movl %r12d, %eax + 0x83, 0xe0, 0x3f, //0x00000fcf andl $63, %eax + 0x48, 0x89, 0x45, 0xb8, //0x00000fd2 movq %rax, $-72(%rbp) + 0x4e, 0x8d, 0x44, 0x02, 0xc0, //0x00000fd6 leaq $-64(%rdx,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000fdb andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x00000fdf addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000fe2 addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fe6 movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00000fed xorl %r10d, %r10d + //0x00000ff0 .p2align 4, 0x90 + //0x00000ff0 LBB0_203 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000ff0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000ff5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000ffb vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00001001 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00001007 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x0000100b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000100f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00001013 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00001017 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000101b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000101f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0x79, 0xd7, 0xef, //0x00001023 vpmovmskb %xmm7, %r13d + 0xc5, 0xe9, 0x74, 0xd1, //0x00001027 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000102b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000102f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001033 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00001037 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000103b vpmovmskb %xmm2, %ebx + 0xc5, 0xc9, 0x74, 0xd1, //0x0000103f vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001043 vpmovmskb %xmm2, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x00001047 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x0000104b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000104f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001053 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001056 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x00001059 shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000105d shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001061 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001065 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x00001068 orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000106b orq %r14, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000106e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001072 jne LBB0_205 + 0x48, 0x85, 0xd2, //0x00001078 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000107b jne LBB0_213 + //0x00001081 LBB0_205 + 0x4c, 0x09, 0xef, //0x00001081 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001084 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x00001087 orq %r10, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000108a jne LBB0_214 + //0x00001090 LBB0_206 + 0x48, 0x85, 0xff, //0x00001090 testq %rdi, %rdi + 0x0f, 0x85, 0xf6, 0xf4, 0xff, 0xff, //0x00001093 jne LBB0_57 + //0x00001099 LBB0_207 + 0x49, 0x83, 0xc4, 0xc0, //0x00001099 addq $-64, %r12 + 0x49, 0x83, 0xc3, 0x40, //0x0000109d addq $64, %r11 + 0x49, 0x83, 0xfc, 0x3f, //0x000010a1 cmpq $63, %r12 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x000010a5 ja LBB0_203 + 0xe9, 0x01, 0x0b, 0x00, 0x00, //0x000010ab jmp LBB0_208 + //0x000010b0 LBB0_213 + 0x4c, 0x89, 0xd8, //0x000010b0 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000010b3 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x000010b7 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x000010bb addq %rax, %r9 + 0x4c, 0x09, 0xef, //0x000010be orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x000010c1 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x000010c4 orq %r10, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000010c7 je LBB0_206 + //0x000010cd LBB0_214 + 0x4c, 0x89, 0xd0, //0x000010cd movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000010d0 notq %rax + 0x48, 0x21, 0xd0, //0x000010d3 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000010d6 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xd1, //0x000010da orq %r10, %rcx + 0x48, 0x89, 0xce, //0x000010dd movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000010e0 notq %rsi + 0x48, 0x21, 0xd6, //0x000010e3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000010e6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000010f0 andq %rdx, %rsi + 0x45, 0x31, 0xd2, //0x000010f3 xorl %r10d, %r10d + 0x48, 0x01, 0xc6, //0x000010f6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc2, //0x000010f9 setb %r10b + 0x48, 0x01, 0xf6, //0x000010fd addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001100 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000110a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000110d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00001110 notq %rsi + 0x48, 0x21, 0xf7, //0x00001113 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00001116 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00001119 je LBB0_207 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x0000111f jmp LBB0_57 + //0x00001124 LBB0_215 + 0x48, 0x8b, 0x45, 0x90, //0x00001124 movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00001128 movq $8(%rax), %r10 + 0x4d, 0x29, 0xda, //0x0000112c subq %r11, %r10 + 0x0f, 0x84, 0xfa, 0x12, 0x00, 0x00, //0x0000112f je LBB0_438 + 0x4c, 0x89, 0x5d, 0xa8, //0x00001135 movq %r11, $-88(%rbp) + 0x4d, 0x01, 0xdc, //0x00001139 addq %r11, %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x0000113c cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001141 jne LBB0_220 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001147 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x0000114d cmpq $1, %r10 + 0x0f, 0x84, 0x7c, 0x05, 0x00, 0x00, //0x00001151 je LBB0_303 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001157 movb $1(%r12), %al + 0x04, 0xd2, //0x0000115c addb $-46, %al + 0x3c, 0x37, //0x0000115e cmpb $55, %al + 0x0f, 0x87, 0x6d, 0x05, 0x00, 0x00, //0x00001160 ja LBB0_303 + 0x0f, 0xb6, 0xc0, //0x00001166 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001169 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00001173 btq %rax, %rcx + 0x0f, 0x83, 0x56, 0x05, 0x00, 0x00, //0x00001177 jae LBB0_303 + //0x0000117d LBB0_220 + 0x49, 0x83, 0xfa, 0x10, //0x0000117d cmpq $16, %r10 + 0x0f, 0x82, 0x30, 0x0d, 0x00, 0x00, //0x00001181 jb LBB0_359 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001187 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x0000118b movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000118e andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x00001192 leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001197 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000119b movq $-1, $-72(%rbp) + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x000011a3 movq $-1, $-80(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000011ab movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x000011b2 movq %r12, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011b5 .p2align 4, 0x90 + //0x000011c0 LBB0_222 + 0xc4, 0xc1, 0x7a, 0x6f, 0x55, 0x00, //0x000011c0 vmovdqu (%r13), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x000011c6 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x000011cb vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000011cf vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x000011d3 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x000011d7 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000011db vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x000011df vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x000011e3 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x000011e7 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x000011eb vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x000011ef vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000011f3 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000011f7 vpmovmskb %xmm2, %eax + 0xc5, 0xf9, 0xd7, 0xde, //0x000011fb vpmovmskb %xmm6, %ebx + 0xc5, 0xf9, 0xd7, 0xd5, //0x000011ff vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x00001203 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001207 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x0000120c leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x00001213 xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x00001216 bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x0000121a cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000121d je LBB0_224 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00001223 movl $-1, %edi + 0xd3, 0xe7, //0x00001228 shll %cl, %edi + 0xf7, 0xd7, //0x0000122a notl %edi + 0x21, 0xf8, //0x0000122c andl %edi, %eax + 0x21, 0xfb, //0x0000122e andl %edi, %ebx + 0x21, 0xd7, //0x00001230 andl %edx, %edi + 0x89, 0xfa, //0x00001232 movl %edi, %edx + //0x00001234 LBB0_224 + 0x8d, 0x78, 0xff, //0x00001234 leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001237 andl %eax, %edi + 0x0f, 0x85, 0x4f, 0x09, 0x00, 0x00, //0x00001239 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x0000123f leal $-1(%rbx), %edi + 0x21, 0xdf, //0x00001242 andl %ebx, %edi + 0x0f, 0x85, 0x44, 0x09, 0x00, 0x00, //0x00001244 jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x0000124a leal $-1(%rdx), %edi + 0x21, 0xd7, //0x0000124d andl %edx, %edi + 0x0f, 0x85, 0x39, 0x09, 0x00, 0x00, //0x0000124f jne LBB0_337 + 0x85, 0xc0, //0x00001255 testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001257 je LBB0_230 + 0x4c, 0x89, 0xef, //0x0000125d movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001260 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x00001263 bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001267 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000126a cmpq $-1, %r14 + 0x0f, 0x85, 0x24, 0x09, 0x00, 0x00, //0x0000126e jne LBB0_338 + 0x4d, 0x89, 0xde, //0x00001274 movq %r11, %r14 + //0x00001277 LBB0_230 + 0x85, 0xdb, //0x00001277 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001279 je LBB0_233 + 0x4c, 0x89, 0xe8, //0x0000127f movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x00001282 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x00001285 bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001289 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb0, 0xff, //0x0000128c cmpq $-1, $-80(%rbp) + 0x0f, 0x85, 0x01, 0x09, 0x00, 0x00, //0x00001291 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb0, //0x00001297 movq %r11, $-80(%rbp) + //0x0000129b LBB0_233 + 0x85, 0xd2, //0x0000129b testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000129d je LBB0_236 + 0x4c, 0x89, 0xe8, //0x000012a3 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x000012a6 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x000012a9 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x000012ad addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x000012b0 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0xdd, 0x08, 0x00, 0x00, //0x000012b5 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb8, //0x000012bb movq %r11, $-72(%rbp) + //0x000012bf LBB0_236 + 0x83, 0xf9, 0x10, //0x000012bf cmpl $16, %ecx + 0x0f, 0x85, 0x81, 0x03, 0x00, 0x00, //0x000012c2 jne LBB0_291 + 0x49, 0x83, 0xc5, 0x10, //0x000012c8 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000012cc addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000012d0 cmpq $15, %r10 + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x000012d4 ja LBB0_222 + 0x4d, 0x85, 0xc9, //0x000012da testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xf8, 0x14, 0x00, 0x00, //0x000012dd leaq $5368(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xb0, //0x000012e4 movq $-80(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x000012e8 movq $-72(%rbp), %rbx + 0x0f, 0x84, 0x65, 0x03, 0x00, 0x00, //0x000012ec je LBB0_292 + //0x000012f2 LBB0_239 + 0x4b, 0x8d, 0x0c, 0x08, //0x000012f2 leaq (%r8,%r9), %rcx + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x000012f6 jmp LBB0_262 + //0x000012fb LBB0_240 + 0x49, 0x8b, 0x01, //0x000012fb movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000012fe cmpq $4095, %rax + 0x0f, 0x8f, 0x53, 0x10, 0x00, 0x00, //0x00001304 jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x0000130a leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x0000130e movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001311 movq $5, $8(%r9,%rax,8) + 0xe9, 0x91, 0xee, 0xff, 0xff, //0x0000131a jmp LBB0_2 + //0x0000131f LBB0_242 + 0x48, 0x8b, 0x4d, 0x90, //0x0000131f movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001323 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001327 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x0000132b cmpq %rdx, %r15 + 0x0f, 0x83, 0x97, 0x10, 0x00, 0x00, //0x0000132e jae LBB0_440 + 0x43, 0x8b, 0x0c, 0x1c, //0x00001334 movl (%r12,%r11), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001338 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xfa, 0x10, 0x00, 0x00, //0x0000133e jne LBB0_442 + 0x4c, 0x89, 0xd9, //0x00001344 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x05, //0x00001347 leaq $5(%r15), %r11 + 0xe9, 0x50, 0x00, 0x00, 0x00, //0x0000134b jmp LBB0_254 + //0x00001350 LBB0_245 + 0x48, 0x8b, 0x4d, 0x90, //0x00001350 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001354 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001358 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x0000135c cmpq %rdx, %r15 + 0x0f, 0x83, 0x66, 0x10, 0x00, 0x00, //0x0000135f jae LBB0_440 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00001365 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x0000136c je LBB0_253 + 0xe9, 0x1c, 0x11, 0x00, 0x00, //0x00001372 jmp LBB0_247 + //0x00001377 LBB0_251 + 0x48, 0x8b, 0x4d, 0x90, //0x00001377 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x0000137b movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x0000137f leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001383 cmpq %rdx, %r15 + 0x0f, 0x83, 0x3f, 0x10, 0x00, 0x00, //0x00001386 jae LBB0_440 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x0000138c cmpl $1702195828, (%r10) + 0x0f, 0x85, 0x4c, 0x11, 0x00, 0x00, //0x00001393 jne LBB0_447 + //0x00001399 LBB0_253 + 0x4c, 0x89, 0xd9, //0x00001399 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x04, //0x0000139c leaq $4(%r15), %r11 + //0x000013a0 LBB0_254 + 0x4c, 0x89, 0x1e, //0x000013a0 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000013a3 movq %r15, %rax + 0x48, 0x85, 0xc9, //0x000013a6 testq %rcx, %rcx + 0x0f, 0x8f, 0x01, 0xee, 0xff, 0xff, //0x000013a9 jg LBB0_2 + 0xe9, 0xee, 0x0f, 0x00, 0x00, //0x000013af jmp LBB0_423 + //0x000013b4 LBB0_255 + 0x49, 0x8b, 0x01, //0x000013b4 movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000013b7 cmpq $4095, %rax + 0x0f, 0x8f, 0x9a, 0x0f, 0x00, 0x00, //0x000013bd jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x000013c3 leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x000013c7 movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000013ca movq $6, $8(%r9,%rax,8) + 0xe9, 0xd8, 0xed, 0xff, 0xff, //0x000013d3 jmp LBB0_2 + //0x000013d8 LBB0_259 + 0x49, 0x89, 0xc3, //0x000013d8 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000013db subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000013de cmpq $-1, %r14 + 0x0f, 0x85, 0x95, 0x0a, 0x00, 0x00, //0x000013e2 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x000013e8 decq %r11 + 0x4d, 0x89, 0xde, //0x000013eb movq %r11, %r14 + 0x90, 0x90, //0x000013ee .p2align 4, 0x90 + //0x000013f0 LBB0_261 + 0x49, 0x89, 0xc0, //0x000013f0 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x000013f3 decq %r9 + 0x0f, 0x84, 0x03, 0x0a, 0x00, 0x00, //0x000013f6 je LBB0_341 + //0x000013fc LBB0_262 + 0x41, 0x0f, 0xbe, 0x10, //0x000013fc movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x00001400 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00001403 cmpl $58, %edx + 0x0f, 0x87, 0x4b, 0x02, 0x00, 0x00, //0x00001406 ja LBB0_292 + 0x49, 0x8d, 0x40, 0x01, //0x0000140c leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001410 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001414 addq %rsi, %rdx + 0xff, 0xe2, //0x00001417 jmpq *%rdx + //0x00001419 LBB0_264 + 0x49, 0x89, 0xc3, //0x00001419 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000141c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000141f cmpq $-1, %rbx + 0x0f, 0x85, 0x54, 0x0a, 0x00, 0x00, //0x00001423 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001429 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000142c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000142f jmp LBB0_261 + //0x00001434 LBB0_266 + 0x49, 0x89, 0xc3, //0x00001434 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001437 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000143a cmpq $-1, %rdi + 0x0f, 0x85, 0x39, 0x0a, 0x00, 0x00, //0x0000143e jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001444 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001447 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000144a jmp LBB0_261 + //0x0000144f LBB0_268 + 0x48, 0x89, 0xd0, //0x0000144f movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x00001452 subq %r11, %rax + 0x0f, 0x84, 0xf6, 0x10, 0x00, 0x00, //0x00001455 je LBB0_456 + 0x4c, 0x89, 0xd9, //0x0000145b movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x0000145e addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00001461 cmpq $64, %rax + 0x0f, 0x82, 0x8c, 0x0a, 0x00, 0x00, //0x00001465 jb LBB0_361 + 0x41, 0x89, 0xc2, //0x0000146b movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x0000146e andl $63, %r10d + 0x4e, 0x8d, 0x64, 0x02, 0xc0, //0x00001472 leaq $-64(%rdx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001477 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x0000147b addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x0000147e addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001482 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001489 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x0000148c .p2align 4, 0x90 + //0x00001490 LBB0_271 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00001490 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00001495 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x0000149b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x000014a1 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x000014a7 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000014ab vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x000014af vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000014b3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000014b7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000014bb vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000014bf vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000014c3 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x000014c7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000014cb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000014cf vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000014d3 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x000014d7 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x000014db shlq $16, %rbx + 0x48, 0x09, 0xde, //0x000014df orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x000014e2 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x000014e6 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x000014ea shlq $32, %rcx + 0x48, 0x09, 0xce, //0x000014ee orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x000014f1 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x000014f5 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x000014f9 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x000014fd vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00001501 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00001505 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00001508 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x0000150c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00001510 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00001514 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00001518 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000151c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000151f vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00001523 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001527 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000152b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000152f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00001533 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00001536 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000153a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000153e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001542 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00001546 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x0000154a orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x0000154d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001551 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00001555 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001559 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000155d jne LBB0_273 + 0x4d, 0x85, 0xed, //0x00001563 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001566 jne LBB0_287 + //0x0000156c LBB0_273 + 0x49, 0xc1, 0xe6, 0x30, //0x0000156c shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00001570 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00001573 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00001576 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x00001579 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000157c jne LBB0_288 + 0x4c, 0x09, 0xf2, //0x00001582 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001585 testq %rsi, %rsi + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x00001588 jne LBB0_289 + //0x0000158e LBB0_275 + 0x48, 0x85, 0xd2, //0x0000158e testq %rdx, %rdx + 0x0f, 0x85, 0xa7, 0x0f, 0x00, 0x00, //0x00001591 jne LBB0_452 + 0x48, 0x83, 0xc0, 0xc0, //0x00001597 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x0000159b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x0000159f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x000015a3 ja LBB0_271 + 0xe9, 0xf0, 0x06, 0x00, 0x00, //0x000015a9 jmp LBB0_277 + //0x000015ae LBB0_288 + 0x4c, 0x89, 0xc1, //0x000015ae movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000015b1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000015b4 andq %r13, %rcx + 0x4c, 0x89, 0x55, 0xb8, //0x000015b7 movq %r10, $-72(%rbp) + 0x4c, 0x8d, 0x14, 0x09, //0x000015bb leaq (%rcx,%rcx), %r10 + 0x4d, 0x09, 0xc2, //0x000015bf orq %r8, %r10 + 0x4c, 0x89, 0xd7, //0x000015c2 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x000015c5 notq %rdi + 0x4c, 0x21, 0xef, //0x000015c8 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000015cb movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000015d5 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x000015d8 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x000015db addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x000015de setb %r8b + 0x48, 0x01, 0xff, //0x000015e2 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000015e5 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x000015ef xorq %rcx, %rdi + 0x4c, 0x21, 0xd7, //0x000015f2 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xb8, //0x000015f5 movq $-72(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x000015f9 notq %rdi + 0x48, 0x21, 0xfe, //0x000015fc andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x000015ff orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001602 testq %rsi, %rsi + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00001605 je LBB0_275 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x0000160b jmp LBB0_289 + //0x00001610 LBB0_287 + 0x4c, 0x89, 0xdb, //0x00001610 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00001613 subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xcd, //0x00001617 bsfq %r13, %r9 + 0x49, 0x01, 0xd9, //0x0000161b addq %rbx, %r9 + 0xe9, 0x49, 0xff, 0xff, 0xff, //0x0000161e jmp LBB0_273 + //0x00001623 LBB0_289 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001623 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001627 testq %rdx, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000162a movq $-48(%rbp), %r12 + 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, //0x0000162e je LBB0_304 + 0x48, 0x0f, 0xbc, 0xca, //0x00001634 bsfq %rdx, %rcx + 0x4d, 0x29, 0xe3, //0x00001638 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x0000163b cmpq %rax, %rcx + 0x0f, 0x83, 0x94, 0xf8, 0xff, 0xff, //0x0000163e jae LBB0_186 + 0xe9, 0x11, 0x0f, 0x00, 0x00, //0x00001644 jmp LBB0_306 + //0x00001649 LBB0_291 + 0x49, 0x01, 0xcd, //0x00001649 addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000164c movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xb0, //0x0000164f movq $-80(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x00001653 movq $-72(%rbp), %rbx + //0x00001657 LBB0_292 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001657 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x0000165e testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001661 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xcb, 0x0d, 0x00, 0x00, //0x00001665 je LBB0_439 + //0x0000166b LBB0_293 + 0x48, 0x85, 0xdb, //0x0000166b testq %rbx, %rbx + 0x0f, 0x84, 0xc2, 0x0d, 0x00, 0x00, //0x0000166e je LBB0_439 + 0x4d, 0x85, 0xf6, //0x00001674 testq %r14, %r14 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001677 movq $-64(%rbp), %r9 + 0x0f, 0x84, 0xb5, 0x0d, 0x00, 0x00, //0x0000167b je LBB0_439 + 0x4d, 0x29, 0xe0, //0x00001681 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00001684 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x00001688 cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000168b je LBB0_301 + 0x49, 0x39, 0xc6, //0x00001691 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00001694 je LBB0_301 + 0x48, 0x39, 0xc3, //0x0000169a cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x0000169d je LBB0_301 + 0x48, 0x85, 0xdb, //0x000016a3 testq %rbx, %rbx + 0x0f, 0x8e, 0x6e, 0x00, 0x00, 0x00, //0x000016a6 jle LBB0_309 + 0x48, 0x8d, 0x43, 0xff, //0x000016ac leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000016b0 cmpq %rax, %rdi + 0x0f, 0x84, 0x61, 0x00, 0x00, 0x00, //0x000016b3 je LBB0_309 + 0x48, 0xf7, 0xd3, //0x000016b9 notq %rbx + 0x49, 0x89, 0xdb, //0x000016bc movq %rbx, %r11 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000016bf jmp LBB0_302 + //0x000016c4 LBB0_301 + 0x49, 0xf7, 0xd8, //0x000016c4 negq %r8 + 0x4d, 0x89, 0xc3, //0x000016c7 movq %r8, %r11 + //0x000016ca LBB0_302 + 0x4d, 0x85, 0xdb, //0x000016ca testq %r11, %r11 + 0x0f, 0x88, 0x63, 0x0d, 0x00, 0x00, //0x000016cd js LBB0_439 + //0x000016d3 LBB0_303 + 0x48, 0x8b, 0x4d, 0xa8, //0x000016d3 movq $-88(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x000016d7 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x000016da movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000016dd movq %r15, %rax + 0x48, 0x85, 0xc9, //0x000016e0 testq %rcx, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x000016e3 movq $-48(%rbp), %r12 + 0x0f, 0x8f, 0xc3, 0xea, 0xff, 0xff, //0x000016e7 jg LBB0_2 + 0xe9, 0xb0, 0x0c, 0x00, 0x00, //0x000016ed jmp LBB0_423 + //0x000016f2 LBB0_304 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000016f2 movl $64, %ecx + 0x4d, 0x29, 0xe3, //0x000016f7 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x000016fa cmpq %rax, %rcx + 0x0f, 0x83, 0xd5, 0xf7, 0xff, 0xff, //0x000016fd jae LBB0_186 + 0xe9, 0x52, 0x0e, 0x00, 0x00, //0x00001703 jmp LBB0_306 + //0x00001708 LBB0_308 + 0x4d, 0x29, 0xd6, //0x00001708 subq %r10, %r14 + 0x44, 0x0f, 0xbc, 0xde, //0x0000170b bsfl %esi, %r11d + 0x4d, 0x01, 0xf3, //0x0000170f addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x00001712 notq %r11 + 0xe9, 0xa6, 0x03, 0x00, 0x00, //0x00001715 jmp LBB0_326 + //0x0000171a LBB0_309 + 0x4c, 0x89, 0xf0, //0x0000171a movq %r14, %rax + 0x48, 0x09, 0xf8, //0x0000171d orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001720 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x66, 0x01, 0x00, 0x00, //0x00001723 jl LBB0_312 + 0x48, 0x85, 0xc0, //0x00001729 testq %rax, %rax + 0x0f, 0x88, 0x5d, 0x01, 0x00, 0x00, //0x0000172c js LBB0_312 + 0x49, 0xf7, 0xd6, //0x00001732 notq %r14 + 0x4d, 0x89, 0xf3, //0x00001735 movq %r14, %r11 + 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00001738 jmp LBB0_302 + //0x0000173d LBB0_49 + 0x4c, 0x8b, 0x5d, 0xb8, //0x0000173d movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xd5, //0x00001741 movq %r10, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001744 cmpq $32, %r13 + 0x0f, 0x82, 0x66, 0x08, 0x00, 0x00, //0x00001748 jb LBB0_366 + //0x0000174e LBB0_50 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x0000174e vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001753 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001759 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x0000175d vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001761 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001765 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001769 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000176d vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001771 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001775 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001779 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000177d shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001781 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001784 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001788 jne LBB0_52 + 0x48, 0x85, 0xff, //0x0000178e testq %rdi, %rdi + 0x0f, 0x85, 0xbc, 0x07, 0x00, 0x00, //0x00001791 jne LBB0_363 + //0x00001797 LBB0_52 + 0x48, 0x09, 0xca, //0x00001797 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x0000179a movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x0000179d orq %r12, %rax + 0x0f, 0x85, 0xca, 0x07, 0x00, 0x00, //0x000017a0 jne LBB0_364 + //0x000017a6 LBB0_53 + 0x48, 0x85, 0xd2, //0x000017a6 testq %rdx, %rdx + 0x0f, 0x84, 0xfd, 0x07, 0x00, 0x00, //0x000017a9 je LBB0_365 + //0x000017af LBB0_54 + 0x48, 0x0f, 0xbc, 0xc2, //0x000017af bsfq %rdx, %rax + 0xe9, 0xdb, 0xed, 0xff, 0xff, //0x000017b3 jmp LBB0_58 + //0x000017b8 LBB0_113 + 0x4d, 0x89, 0xd3, //0x000017b8 movq %r10, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x000017bb movq $-72(%rbp), %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000017bf movq $-48(%rbp), %r12 + 0x48, 0x83, 0xf8, 0x20, //0x000017c3 cmpq $32, %rax + 0x0f, 0x82, 0x66, 0x02, 0x00, 0x00, //0x000017c7 jb LBB0_317 + //0x000017cd LBB0_114 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000017cd vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000017d2 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000017d8 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000017dc vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000017e0 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x000017e4 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x000017e8 vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000017ec vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x000017f0 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x000017f4 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x000017f8 vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x000017fc vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001800 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001804 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001808 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000180c vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001810 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001814 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001818 shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x0000181c shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001820 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001823 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001827 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x0000182d testq %rdx, %rdx + 0x0f, 0x85, 0xf8, 0x07, 0x00, 0x00, //0x00001830 jne LBB0_373 + //0x00001836 LBB0_116 + 0x48, 0xc1, 0xe7, 0x10, //0x00001836 shlq $16, %rdi + 0x48, 0x09, 0xce, //0x0000183a orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x0000183d movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001840 orq %r8, %rcx + 0x0f, 0x85, 0xcb, 0x06, 0x00, 0x00, //0x00001843 jne LBB0_362 + //0x00001849 LBB0_117 + 0x4c, 0x09, 0xf7, //0x00001849 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000184c movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001851 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001856 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001859 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000185f bsfq %rsi, %rdx + //0x00001863 LBB0_119 + 0x48, 0x85, 0xff, //0x00001863 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001866 je LBB0_121 + 0x48, 0x0f, 0xbc, 0xcf, //0x0000186c bsfq %rdi, %rcx + //0x00001870 LBB0_121 + 0x48, 0x85, 0xf6, //0x00001870 testq %rsi, %rsi + 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x00001873 je LBB0_315 + //0x00001879 LBB0_122 + 0x4d, 0x29, 0xe3, //0x00001879 subq %r12, %r11 + 0x48, 0x39, 0xd1, //0x0000187c cmpq %rdx, %rcx + 0x0f, 0x82, 0xd5, 0x0c, 0x00, 0x00, //0x0000187f jb LBB0_306 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001885 leaq $1(%r11,%rdx), %r11 + 0xe9, 0x4e, 0xf6, 0xff, 0xff, //0x0000188a jmp LBB0_187 + //0x0000188f LBB0_312 + 0x48, 0x85, 0xc0, //0x0000188f testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x00001892 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x00001896 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x00001899 cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x0000189d cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x000018a0 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x000018a4 movq %rdi, %r11 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x000018a7 jmp LBB0_302 + //0x000018ac LBB0_313 + 0x48, 0xf7, 0xd0, //0x000018ac notq %rax + 0x49, 0x89, 0xc3, //0x000018af movq %rax, %r11 + 0xe9, 0x09, 0x02, 0x00, 0x00, //0x000018b2 jmp LBB0_326 + //0x000018b7 LBB0_314 + 0x48, 0x89, 0x4d, 0xa8, //0x000018b7 movq %rcx, $-88(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000018bb movq $-1, %rax + 0x4d, 0x85, 0xed, //0x000018c2 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000018c5 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x86, 0xf3, 0xff, 0xff, //0x000018c9 jne LBB0_151 + 0xe9, 0xbe, 0x0a, 0x00, 0x00, //0x000018cf jmp LBB0_420 + //0x000018d4 LBB0_134 + 0x4c, 0x8b, 0x5d, 0xb8, //0x000018d4 movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xd5, //0x000018d8 movq %r10, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x000018db cmpq $32, %r13 + 0x0f, 0x82, 0x57, 0x08, 0x00, 0x00, //0x000018df jb LBB0_382 + //0x000018e5 LBB0_135 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000018e5 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000018ea vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000018f0 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000018f4 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000018f8 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000018fc vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001900 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001904 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001908 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x0000190c vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001910 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001914 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001918 orq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000191b cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000191f jne LBB0_137 + 0x48, 0x85, 0xff, //0x00001925 testq %rdi, %rdi + 0x0f, 0x85, 0xad, 0x07, 0x00, 0x00, //0x00001928 jne LBB0_379 + //0x0000192e LBB0_137 + 0x48, 0x09, 0xca, //0x0000192e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001931 movq %rdi, %rax + 0x4c, 0x09, 0xc8, //0x00001934 orq %r9, %rax + 0x0f, 0x85, 0xbb, 0x07, 0x00, 0x00, //0x00001937 jne LBB0_380 + //0x0000193d LBB0_138 + 0x48, 0x85, 0xd2, //0x0000193d testq %rdx, %rdx + 0x0f, 0x84, 0xee, 0x07, 0x00, 0x00, //0x00001940 je LBB0_381 + //0x00001946 LBB0_139 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001946 bsfq %rdx, %rax + 0xe9, 0x94, 0xf2, 0xff, 0xff, //0x0000194a jmp LBB0_143 + //0x0000194f LBB0_170 + 0x4d, 0x89, 0xc3, //0x0000194f movq %r8, %r11 + 0x4c, 0x89, 0xd0, //0x00001952 movq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001955 cmpq $32, %rax + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x00001959 jb LBB0_329 + //0x0000195f LBB0_171 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x0000195f vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001964 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x0000196a vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0x79, 0xd7, 0xc5, //0x0000196e vpmovmskb %xmm5, %r8d + 0xc5, 0xd9, 0x74, 0xe8, //0x00001972 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001976 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x0000197a vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000197e vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001982 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001986 vpmovmskb %xmm5, %ecx + 0xc5, 0x81, 0x64, 0xea, //0x0000198a vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x0000198e vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001992 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001996 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x0000199a vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000199e vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x000019a2 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000019a6 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x000019aa shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000019ae shlq $16, %rcx + 0x48, 0x09, 0xca, //0x000019b2 orq %rcx, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000019b5 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000019b9 jne LBB0_173 + 0x48, 0x85, 0xd2, //0x000019bf testq %rdx, %rdx + 0x0f, 0x85, 0x02, 0x08, 0x00, 0x00, //0x000019c2 jne LBB0_390 + //0x000019c8 LBB0_173 + 0x48, 0xc1, 0xe7, 0x10, //0x000019c8 shlq $16, %rdi + 0x4c, 0x09, 0xc6, //0x000019cc orq %r8, %rsi + 0x48, 0x89, 0xd1, //0x000019cf movq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x000019d2 orq %r9, %rcx + 0x0f, 0x85, 0x65, 0x06, 0x00, 0x00, //0x000019d5 jne LBB0_374 + //0x000019db LBB0_174 + 0x4c, 0x09, 0xf7, //0x000019db orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000019de movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000019e3 movl $64, %edx + 0x48, 0x85, 0xf6, //0x000019e8 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019eb je LBB0_176 + 0x48, 0x0f, 0xbc, 0xd6, //0x000019f1 bsfq %rsi, %rdx + //0x000019f5 LBB0_176 + 0x48, 0x85, 0xff, //0x000019f5 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019f8 je LBB0_178 + 0x48, 0x0f, 0xbc, 0xcf, //0x000019fe bsfq %rdi, %rcx + //0x00001a02 LBB0_178 + 0x48, 0x85, 0xf6, //0x00001a02 testq %rsi, %rsi + 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, //0x00001a05 je LBB0_327 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00001a0b subq $-48(%rbp), %r11 + 0x48, 0x39, 0xd1, //0x00001a0f cmpq %rdx, %rcx + 0x0f, 0x82, 0x83, 0x0b, 0x00, 0x00, //0x00001a12 jb LBB0_458 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001a18 leaq $1(%r11,%rdx), %r11 + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00001a1d jmp LBB0_144 + //0x00001a22 LBB0_315 + 0x48, 0x85, 0xff, //0x00001a22 testq %rdi, %rdi + 0x0f, 0x85, 0x5c, 0x0b, 0x00, 0x00, //0x00001a25 jne LBB0_457 + 0x49, 0x83, 0xc3, 0x20, //0x00001a2b addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001a2f addq $-32, %rax + //0x00001a33 LBB0_317 + 0x4d, 0x85, 0xc0, //0x00001a33 testq %r8, %r8 + 0x0f, 0x85, 0x6f, 0x06, 0x00, 0x00, //0x00001a36 jne LBB0_377 + 0x48, 0x85, 0xc0, //0x00001a3c testq %rax, %rax + 0x0f, 0x84, 0x2e, 0x09, 0x00, 0x00, //0x00001a3f je LBB0_416 + //0x00001a45 LBB0_319 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001a45 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001a49 cmpb $34, %cl + 0x0f, 0x84, 0xa4, 0x03, 0x00, 0x00, //0x00001a4c je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001a52 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001a55 je LBB0_323 + 0x80, 0xf9, 0x1f, //0x00001a5b cmpb $31, %cl + 0x0f, 0x86, 0x2f, 0x0b, 0x00, 0x00, //0x00001a5e jbe LBB0_461 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001a64 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001a6b movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001a70 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001a73 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001a76 jne LBB0_319 + 0xe9, 0xf2, 0x08, 0x00, 0x00, //0x00001a7c jmp LBB0_416 + //0x00001a81 LBB0_323 + 0x48, 0x83, 0xf8, 0x01, //0x00001a81 cmpq $1, %rax + 0x0f, 0x84, 0xe8, 0x08, 0x00, 0x00, //0x00001a85 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001a8b movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001a8e movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001a92 subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001a95 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001a99 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001a9d movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001aa4 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001aa9 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001aac addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001aaf jne LBB0_319 + 0xe9, 0xb9, 0x08, 0x00, 0x00, //0x00001ab5 jmp LBB0_416 + //0x00001aba LBB0_325 + 0x48, 0xf7, 0xd6, //0x00001aba notq %rsi + 0x49, 0x89, 0xf3, //0x00001abd movq %rsi, %r11 + //0x00001ac0 LBB0_326 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ac0 movq $-56(%rbp), %rsi + 0xe9, 0xff, 0xf1, 0xff, 0xff, //0x00001ac4 jmp LBB0_160 + //0x00001ac9 LBB0_327 + 0x48, 0x85, 0xff, //0x00001ac9 testq %rdi, %rdi + 0x0f, 0x85, 0xdb, 0x0a, 0x00, 0x00, //0x00001acc jne LBB0_459 + 0x49, 0x83, 0xc3, 0x20, //0x00001ad2 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001ad6 addq $-32, %rax + //0x00001ada LBB0_329 + 0x4d, 0x85, 0xc9, //0x00001ada testq %r9, %r9 + 0x0f, 0x85, 0x2e, 0x07, 0x00, 0x00, //0x00001add jne LBB0_393 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ae3 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001ae7 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00001aeb testq %rax, %rax + 0x0f, 0x84, 0xc7, 0x08, 0x00, 0x00, //0x00001aee je LBB0_425 + //0x00001af4 LBB0_331 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001af4 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001af8 cmpb $34, %cl + 0x0f, 0x84, 0xa7, 0x00, 0x00, 0x00, //0x00001afb je LBB0_340 + 0x80, 0xf9, 0x5c, //0x00001b01 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001b04 je LBB0_335 + 0x80, 0xf9, 0x1f, //0x00001b0a cmpb $31, %cl + 0x0f, 0x86, 0xa3, 0x0a, 0x00, 0x00, //0x00001b0d jbe LBB0_460 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001b13 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001b1a movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001b1f addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b22 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001b25 jne LBB0_331 + 0xe9, 0x8b, 0x08, 0x00, 0x00, //0x00001b2b jmp LBB0_425 + //0x00001b30 LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x00001b30 cmpq $1, %rax + 0x0f, 0x84, 0x8f, 0x0a, 0x00, 0x00, //0x00001b34 je LBB0_462 + 0x4c, 0x89, 0xd9, //0x00001b3a movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001b3d subq $-48(%rbp), %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00001b41 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00001b45 cmoveq %rcx, %r12 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001b49 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001b50 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b55 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b59 movq $-64(%rbp), %r9 + 0x49, 0x01, 0xd3, //0x00001b5d addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b60 addq %rcx, %rax + 0x0f, 0x85, 0x8b, 0xff, 0xff, 0xff, //0x00001b63 jne LBB0_331 + 0xe9, 0x4d, 0x08, 0x00, 0x00, //0x00001b69 jmp LBB0_425 + //0x00001b6e LBB0_418 + 0x48, 0xf7, 0xda, //0x00001b6e negq %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b71 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x65, 0xd0, //0x00001b75 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b79 movq $-64(%rbp), %r9 + 0x49, 0x89, 0xd3, //0x00001b7d movq %rdx, %r11 + 0x4d, 0x85, 0xdb, //0x00001b80 testq %r11, %r11 + 0x0f, 0x89, 0x0b, 0xe6, 0xff, 0xff, //0x00001b83 jns LBB0_258 + 0xe9, 0x01, 0x08, 0x00, 0x00, //0x00001b89 jmp LBB0_419 + //0x00001b8e LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001b8e subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001b91 bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001b95 addq %r13, %r11 + //0x00001b98 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001b98 notq %r11 + //0x00001b9b LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b9b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b9f movq $-64(%rbp), %r9 + 0xe9, 0x22, 0xfb, 0xff, 0xff, //0x00001ba3 jmp LBB0_302 + //0x00001ba8 LBB0_340 + 0x4c, 0x03, 0x5d, 0x98, //0x00001ba8 addq $-104(%rbp), %r11 + 0xe9, 0x9f, 0xf3, 0xff, 0xff, //0x00001bac jmp LBB0_195 + //0x00001bb1 LBB0_208 + 0x4d, 0x89, 0xc3, //0x00001bb1 movq %r8, %r11 + 0x4c, 0x8b, 0x65, 0xb8, //0x00001bb4 movq $-72(%rbp), %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00001bb8 cmpq $32, %r12 + 0x0f, 0x82, 0x69, 0x00, 0x00, 0x00, //0x00001bbc jb LBB0_399 + //0x00001bc2 LBB0_209 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001bc2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001bc7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001bcd vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001bd1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001bd5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001bd9 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001bdd vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001be1 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001be5 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001be9 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001bed shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001bf1 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001bf5 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001bf8 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001bfc jne LBB0_211 + 0x48, 0x85, 0xff, //0x00001c02 testq %rdi, %rdi + 0x0f, 0x85, 0x75, 0x06, 0x00, 0x00, //0x00001c05 jne LBB0_396 + //0x00001c0b LBB0_211 + 0x48, 0x09, 0xca, //0x00001c0b orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001c0e movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00001c11 orq %r10, %rax + 0x0f, 0x85, 0x83, 0x06, 0x00, 0x00, //0x00001c14 jne LBB0_397 + //0x00001c1a LBB0_212 + 0x48, 0x85, 0xd2, //0x00001c1a testq %rdx, %rdx + 0x0f, 0x85, 0x8c, 0xfb, 0xff, 0xff, //0x00001c1d jne LBB0_54 + //0x00001c23 LBB0_398 + 0x49, 0x83, 0xc3, 0x20, //0x00001c23 addq $32, %r11 + 0x49, 0x83, 0xc4, 0xe0, //0x00001c27 addq $-32, %r12 + //0x00001c2b LBB0_399 + 0x4d, 0x85, 0xd2, //0x00001c2b testq %r10, %r10 + 0x0f, 0x85, 0xbe, 0x06, 0x00, 0x00, //0x00001c2e jne LBB0_411 + 0x4d, 0x85, 0xe4, //0x00001c34 testq %r12, %r12 + 0x0f, 0x84, 0x36, 0x07, 0x00, 0x00, //0x00001c37 je LBB0_416 + //0x00001c3d LBB0_401 + 0x49, 0x8d, 0x4b, 0x01, //0x00001c3d leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001c41 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001c45 cmpb $34, %bl + 0x0f, 0x84, 0x20, 0x02, 0x00, 0x00, //0x00001c48 je LBB0_406 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00001c4e leaq $-1(%r12), %rdx + 0x80, 0xfb, 0x5c, //0x00001c53 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001c56 je LBB0_404 + 0x49, 0x89, 0xd4, //0x00001c5c movq %rdx, %r12 + 0x49, 0x89, 0xcb, //0x00001c5f movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001c62 testq %rdx, %rdx + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00001c65 jne LBB0_401 + 0xe9, 0x03, 0x07, 0x00, 0x00, //0x00001c6b jmp LBB0_416 + //0x00001c70 LBB0_404 + 0x48, 0x85, 0xd2, //0x00001c70 testq %rdx, %rdx + 0x0f, 0x84, 0xfa, 0x06, 0x00, 0x00, //0x00001c73 je LBB0_416 + 0x48, 0x03, 0x4d, 0xa0, //0x00001c79 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001c7d cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001c81 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00001c85 addq $2, %r11 + 0x49, 0x83, 0xc4, 0xfe, //0x00001c89 addq $-2, %r12 + 0x4c, 0x89, 0xe2, //0x00001c8d movq %r12, %rdx + 0x48, 0x85, 0xd2, //0x00001c90 testq %rdx, %rdx + 0x0f, 0x85, 0xa4, 0xff, 0xff, 0xff, //0x00001c93 jne LBB0_401 + 0xe9, 0xd5, 0x06, 0x00, 0x00, //0x00001c99 jmp LBB0_416 + //0x00001c9e LBB0_277 + 0x4d, 0x89, 0xe3, //0x00001c9e movq %r12, %r11 + 0x4c, 0x89, 0xd0, //0x00001ca1 movq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001ca4 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001ca8 movq $-48(%rbp), %r12 + 0x0f, 0x82, 0xbd, 0x00, 0x00, 0x00, //0x00001cac jb LBB0_345 + //0x00001cb2 LBB0_278 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001cb2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001cb7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001cbd vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001cc1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001cc5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001cc9 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x00001ccd vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001cd1 vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001cd5 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x00001cd9 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x00001cdd vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x00001ce1 vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001ce5 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001ce9 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001ced vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001cf1 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001cf5 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001cf9 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001cfd shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00001d01 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001d05 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001d08 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001d0c jne LBB0_280 + 0x48, 0x85, 0xd2, //0x00001d12 testq %rdx, %rdx + 0x0f, 0x85, 0xc5, 0x05, 0x00, 0x00, //0x00001d15 jne LBB0_408 + //0x00001d1b LBB0_280 + 0x48, 0xc1, 0xe7, 0x10, //0x00001d1b shlq $16, %rdi + 0x48, 0x09, 0xce, //0x00001d1f orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x00001d22 movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001d25 orq %r8, %rcx + 0x0f, 0x85, 0x17, 0x05, 0x00, 0x00, //0x00001d28 jne LBB0_395 + //0x00001d2e LBB0_281 + 0x4c, 0x09, 0xf7, //0x00001d2e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001d31 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001d36 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001d3b testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d3e je LBB0_283 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001d44 bsfq %rsi, %rdx + //0x00001d48 LBB0_283 + 0x48, 0x85, 0xff, //0x00001d48 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d4b je LBB0_285 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001d51 bsfq %rdi, %rcx + //0x00001d55 LBB0_285 + 0x48, 0x85, 0xf6, //0x00001d55 testq %rsi, %rsi + 0x0f, 0x85, 0x1b, 0xfb, 0xff, 0xff, //0x00001d58 jne LBB0_122 + 0x48, 0x85, 0xff, //0x00001d5e testq %rdi, %rdi + 0x0f, 0x85, 0x20, 0x08, 0x00, 0x00, //0x00001d61 jne LBB0_457 + 0x49, 0x83, 0xc3, 0x20, //0x00001d67 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001d6b addq $-32, %rax + //0x00001d6f LBB0_345 + 0x4d, 0x85, 0xc0, //0x00001d6f testq %r8, %r8 + 0x0f, 0x85, 0xa6, 0x05, 0x00, 0x00, //0x00001d72 jne LBB0_409 + 0x48, 0x85, 0xc0, //0x00001d78 testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x00001d7b je LBB0_416 + //0x00001d81 LBB0_347 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001d81 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001d85 cmpb $34, %cl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001d88 je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001d8e cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001d91 je LBB0_351 + 0x80, 0xf9, 0x1f, //0x00001d97 cmpb $31, %cl + 0x0f, 0x86, 0xf3, 0x07, 0x00, 0x00, //0x00001d9a jbe LBB0_461 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001da0 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001da7 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001dac addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001daf addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001db2 jne LBB0_347 + 0xe9, 0xb6, 0x05, 0x00, 0x00, //0x00001db8 jmp LBB0_416 + //0x00001dbd LBB0_351 + 0x48, 0x83, 0xf8, 0x01, //0x00001dbd cmpq $1, %rax + 0x0f, 0x84, 0xac, 0x05, 0x00, 0x00, //0x00001dc1 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001dc7 movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001dca movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001dce subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001dd1 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001dd5 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001dd9 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001de0 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001de5 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001de8 addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001deb jne LBB0_347 + 0xe9, 0x7d, 0x05, 0x00, 0x00, //0x00001df1 jmp LBB0_416 + //0x00001df6 LBB0_355 + 0x4c, 0x03, 0x5d, 0x98, //0x00001df6 addq $-104(%rbp), %r11 + 0xe9, 0xde, 0xf0, 0xff, 0xff, //0x00001dfa jmp LBB0_187 + //0x00001dff LBB0_341 + 0x49, 0x89, 0xc8, //0x00001dff movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e02 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001e09 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001e0c movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x55, 0xf8, 0xff, 0xff, //0x00001e10 jne LBB0_293 + 0xe9, 0x1b, 0x06, 0x00, 0x00, //0x00001e16 jmp LBB0_439 + //0x00001e1b LBB0_342 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e1b movq $-1, %r11 + 0x4c, 0x89, 0x55, 0xa8, //0x00001e22 movq %r10, $-88(%rbp) + 0x49, 0x89, 0xf9, //0x00001e26 movq %rdi, %r9 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001e29 movq $-1, %r13 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e30 movq $-1, %r12 + 0xe9, 0x54, 0xe9, 0xff, 0xff, //0x00001e37 jmp LBB0_90 + //0x00001e3c LBB0_353 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e3c movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00001e43 xorl %r12d, %r12d + 0x49, 0x83, 0xfd, 0x20, //0x00001e46 cmpq $32, %r13 + 0x0f, 0x83, 0xfe, 0xf8, 0xff, 0xff, //0x00001e4a jae LBB0_50 + 0xe9, 0x5f, 0x01, 0x00, 0x00, //0x00001e50 jmp LBB0_366 + //0x00001e55 LBB0_354 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e55 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001e5c xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001e5f cmpq $32, %rax + 0x0f, 0x83, 0x64, 0xf9, 0xff, 0xff, //0x00001e63 jae LBB0_114 + 0xe9, 0xc5, 0xfb, 0xff, 0xff, //0x00001e69 jmp LBB0_317 + //0x00001e6e LBB0_406 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001e6e movq $-48(%rbp), %r12 + //0x00001e72 LBB0_407 + 0x4c, 0x29, 0xe1, //0x00001e72 subq %r12, %rcx + 0x49, 0x89, 0xcb, //0x00001e75 movq %rcx, %r11 + 0xe9, 0x60, 0xf0, 0xff, 0xff, //0x00001e78 jmp LBB0_187 + //0x00001e7d LBB0_356 + 0x49, 0xf7, 0xdb, //0x00001e7d negq %r11 + 0xe9, 0x16, 0xfd, 0xff, 0xff, //0x00001e80 jmp LBB0_339 + //0x00001e85 LBB0_357 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e85 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00001e8c xorl %r9d, %r9d + 0x49, 0x83, 0xfd, 0x20, //0x00001e8f cmpq $32, %r13 + 0x0f, 0x83, 0x4c, 0xfa, 0xff, 0xff, //0x00001e93 jae LBB0_135 + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00001e99 jmp LBB0_382 + //0x00001e9e LBB0_358 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e9e movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00001ea5 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x00001ea8 cmpq $32, %rax + 0x0f, 0x83, 0xad, 0xfa, 0xff, 0xff, //0x00001eac jae LBB0_171 + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00001eb2 jmp LBB0_329 + //0x00001eb7 LBB0_359 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001eb7 movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x00001ebe movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x00001ec1 movq %r10, %r9 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001ec4 movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ecb movq $-1, %rbx + 0x48, 0x8d, 0x35, 0x03, 0x09, 0x00, 0x00, //0x00001ed2 leaq $2307(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0x14, 0xf4, 0xff, 0xff, //0x00001ed9 jmp LBB0_239 + //0x00001ede LBB0_360 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001ede movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00001ee5 xorl %r10d, %r10d + 0x49, 0x83, 0xfc, 0x20, //0x00001ee8 cmpq $32, %r12 + 0x0f, 0x83, 0xd0, 0xfc, 0xff, 0xff, //0x00001eec jae LBB0_209 + 0xe9, 0x34, 0xfd, 0xff, 0xff, //0x00001ef2 jmp LBB0_399 + //0x00001ef7 LBB0_361 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001ef7 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001efe xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001f01 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f05 movq $-48(%rbp), %r12 + 0x0f, 0x83, 0xa3, 0xfd, 0xff, 0xff, //0x00001f09 jae LBB0_278 + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00001f0f jmp LBB0_345 + //0x00001f14 LBB0_362 + 0x44, 0x89, 0xc1, //0x00001f14 movl %r8d, %ecx + 0xf7, 0xd1, //0x00001f17 notl %ecx + 0x21, 0xd1, //0x00001f19 andl %edx, %ecx + 0x44, 0x8d, 0x24, 0x09, //0x00001f1b leal (%rcx,%rcx), %r12d + 0x45, 0x09, 0xc4, //0x00001f1f orl %r8d, %r12d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f22 movl $2863311530, %ebx + 0x44, 0x31, 0xe3, //0x00001f27 xorl %r12d, %ebx + 0x21, 0xd3, //0x00001f2a andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f2c andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00001f32 xorl %r8d, %r8d + 0x01, 0xcb, //0x00001f35 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00001f37 setb %r8b + 0x01, 0xdb, //0x00001f3b addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00001f3d xorl $1431655765, %ebx + 0x44, 0x21, 0xe3, //0x00001f43 andl %r12d, %ebx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f46 movq $-48(%rbp), %r12 + 0xf7, 0xd3, //0x00001f4a notl %ebx + 0x21, 0xde, //0x00001f4c andl %ebx, %esi + 0xe9, 0xf6, 0xf8, 0xff, 0xff, //0x00001f4e jmp LBB0_117 + //0x00001f53 LBB0_363 + 0x4c, 0x89, 0xd8, //0x00001f53 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001f56 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00001f5a bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x00001f5e addq %rax, %r9 + 0x48, 0x09, 0xca, //0x00001f61 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001f64 movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x00001f67 orq %r12, %rax + 0x0f, 0x84, 0x36, 0xf8, 0xff, 0xff, //0x00001f6a je LBB0_53 + //0x00001f70 LBB0_364 + 0x44, 0x89, 0xe0, //0x00001f70 movl %r12d, %eax + 0xf7, 0xd0, //0x00001f73 notl %eax + 0x21, 0xf8, //0x00001f75 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x00001f77 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xe1, //0x00001f7a orl %r12d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f7d movl $2863311530, %esi + 0x31, 0xce, //0x00001f82 xorl %ecx, %esi + 0x21, 0xfe, //0x00001f84 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f86 andl $-1431655766, %esi + 0x45, 0x31, 0xe4, //0x00001f8c xorl %r12d, %r12d + 0x01, 0xc6, //0x00001f8f addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc4, //0x00001f91 setb %r12b + 0x01, 0xf6, //0x00001f95 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x00001f97 xorl $1431655765, %esi + 0x21, 0xce, //0x00001f9d andl %ecx, %esi + 0xf7, 0xd6, //0x00001f9f notl %esi + 0x21, 0xf2, //0x00001fa1 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00001fa3 testq %rdx, %rdx + 0x0f, 0x85, 0x03, 0xf8, 0xff, 0xff, //0x00001fa6 jne LBB0_54 + //0x00001fac LBB0_365 + 0x49, 0x83, 0xc3, 0x20, //0x00001fac addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00001fb0 addq $-32, %r13 + //0x00001fb4 LBB0_366 + 0x4d, 0x85, 0xe4, //0x00001fb4 testq %r12, %r12 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00001fb7 jne LBB0_375 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001fbd movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x00001fc1 testq %r13, %r13 + 0x0f, 0x84, 0xa9, 0x03, 0x00, 0x00, //0x00001fc4 je LBB0_416 + //0x00001fca LBB0_368 + 0x49, 0x8d, 0x4b, 0x01, //0x00001fca leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001fce movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001fd2 cmpb $34, %bl + 0x0f, 0x84, 0x97, 0xfe, 0xff, 0xff, //0x00001fd5 je LBB0_407 + 0x49, 0x8d, 0x55, 0xff, //0x00001fdb leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00001fdf cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001fe2 je LBB0_371 + 0x49, 0x89, 0xd5, //0x00001fe8 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00001feb movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001fee testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00001ff1 jne LBB0_368 + 0xe9, 0x77, 0x03, 0x00, 0x00, //0x00001ff7 jmp LBB0_416 + //0x00001ffc LBB0_371 + 0x48, 0x85, 0xd2, //0x00001ffc testq %rdx, %rdx + 0x0f, 0x84, 0x6e, 0x03, 0x00, 0x00, //0x00001fff je LBB0_416 + 0x48, 0x03, 0x4d, 0xa0, //0x00002005 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002009 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x0000200d cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00002011 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002015 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002019 movq %r13, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000201c movq $-48(%rbp), %r12 + 0x48, 0x85, 0xd2, //0x00002020 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x00002023 jne LBB0_368 + 0xe9, 0x45, 0x03, 0x00, 0x00, //0x00002029 jmp LBB0_416 + //0x0000202e LBB0_373 + 0x4c, 0x89, 0xdb, //0x0000202e movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x00002031 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002034 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x00002038 addq %rbx, %r9 + 0xe9, 0xf6, 0xf7, 0xff, 0xff, //0x0000203b jmp LBB0_116 + //0x00002040 LBB0_374 + 0x44, 0x89, 0xc9, //0x00002040 movl %r9d, %ecx + 0xf7, 0xd1, //0x00002043 notl %ecx + 0x21, 0xd1, //0x00002045 andl %edx, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x00002047 leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xc8, //0x0000204b orl %r9d, %r8d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000204e movl $2863311530, %ebx + 0x44, 0x31, 0xc3, //0x00002053 xorl %r8d, %ebx + 0x21, 0xd3, //0x00002056 andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002058 andl $-1431655766, %ebx + 0x45, 0x31, 0xc9, //0x0000205e xorl %r9d, %r9d + 0x01, 0xcb, //0x00002061 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc1, //0x00002063 setb %r9b + 0x01, 0xdb, //0x00002067 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00002069 xorl $1431655765, %ebx + 0x44, 0x21, 0xc3, //0x0000206f andl %r8d, %ebx + 0xf7, 0xd3, //0x00002072 notl %ebx + 0x21, 0xde, //0x00002074 andl %ebx, %esi + 0xe9, 0x60, 0xf9, 0xff, 0xff, //0x00002076 jmp LBB0_174 + //0x0000207b LBB0_375 + 0x4d, 0x85, 0xed, //0x0000207b testq %r13, %r13 + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x0000207e je LBB0_416 + 0x48, 0x8b, 0x45, 0xa0, //0x00002084 movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002088 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x0000208b cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x0000208f cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x00002093 incq %r11 + 0x49, 0xff, 0xcd, //0x00002096 decq %r13 + 0x4c, 0x8b, 0x65, 0xd0, //0x00002099 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x0000209d testq %r13, %r13 + 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x000020a0 jne LBB0_368 + 0xe9, 0xc8, 0x02, 0x00, 0x00, //0x000020a6 jmp LBB0_416 + //0x000020ab LBB0_377 + 0x48, 0x85, 0xc0, //0x000020ab testq %rax, %rax + 0x0f, 0x84, 0xbf, 0x02, 0x00, 0x00, //0x000020ae je LBB0_416 + 0x48, 0x8b, 0x4d, 0xa0, //0x000020b4 movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x000020b8 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000020bb cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x000020bf cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x000020c3 incq %r11 + 0x48, 0xff, 0xc8, //0x000020c6 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000020c9 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x000020cd testq %rax, %rax + 0x0f, 0x85, 0x6f, 0xf9, 0xff, 0xff, //0x000020d0 jne LBB0_319 + 0xe9, 0x98, 0x02, 0x00, 0x00, //0x000020d6 jmp LBB0_416 + //0x000020db LBB0_379 + 0x4c, 0x89, 0xd8, //0x000020db movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000020de subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x000020e2 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x000020e6 addq %rax, %r12 + 0x48, 0x09, 0xca, //0x000020e9 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x000020ec movq %rdi, %rax + 0x4c, 0x09, 0xc8, //0x000020ef orq %r9, %rax + 0x0f, 0x84, 0x45, 0xf8, 0xff, 0xff, //0x000020f2 je LBB0_138 + //0x000020f8 LBB0_380 + 0x44, 0x89, 0xc8, //0x000020f8 movl %r9d, %eax + 0xf7, 0xd0, //0x000020fb notl %eax + 0x21, 0xf8, //0x000020fd andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x000020ff leal (%rax,%rax), %ecx + 0x44, 0x09, 0xc9, //0x00002102 orl %r9d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002105 movl $2863311530, %esi + 0x31, 0xce, //0x0000210a xorl %ecx, %esi + 0x21, 0xfe, //0x0000210c andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000210e andl $-1431655766, %esi + 0x45, 0x31, 0xc9, //0x00002114 xorl %r9d, %r9d + 0x01, 0xc6, //0x00002117 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc1, //0x00002119 setb %r9b + 0x01, 0xf6, //0x0000211d addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000211f xorl $1431655765, %esi + 0x21, 0xce, //0x00002125 andl %ecx, %esi + 0xf7, 0xd6, //0x00002127 notl %esi + 0x21, 0xf2, //0x00002129 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x0000212b testq %rdx, %rdx + 0x0f, 0x85, 0x12, 0xf8, 0xff, 0xff, //0x0000212e jne LBB0_139 + //0x00002134 LBB0_381 + 0x49, 0x83, 0xc3, 0x20, //0x00002134 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00002138 addq $-32, %r13 + //0x0000213c LBB0_382 + 0x4d, 0x85, 0xc9, //0x0000213c testq %r9, %r9 + 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x0000213f jne LBB0_391 + 0x48, 0x8b, 0x75, 0xc8, //0x00002145 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002149 movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x0000214d testq %r13, %r13 + 0x0f, 0x84, 0x65, 0x02, 0x00, 0x00, //0x00002150 je LBB0_425 + //0x00002156 LBB0_384 + 0x49, 0x8d, 0x4b, 0x01, //0x00002156 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x0000215a movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x0000215e cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002161 je LBB0_389 + 0x49, 0x8d, 0x55, 0xff, //0x00002167 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x0000216b cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000216e je LBB0_387 + 0x49, 0x89, 0xd5, //0x00002174 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00002177 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x0000217a testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000217d jne LBB0_384 + 0xe9, 0x33, 0x02, 0x00, 0x00, //0x00002183 jmp LBB0_425 + //0x00002188 LBB0_387 + 0x48, 0x85, 0xd2, //0x00002188 testq %rdx, %rdx + 0x0f, 0x84, 0x38, 0x04, 0x00, 0x00, //0x0000218b je LBB0_462 + 0x48, 0x03, 0x4d, 0xa0, //0x00002191 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00002195 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00002199 cmoveq %rcx, %r12 + 0x49, 0x83, 0xc3, 0x02, //0x0000219d addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x000021a1 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x000021a5 movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x000021a8 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x000021ac movq $-64(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x000021b0 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x000021b3 jne LBB0_384 + 0xe9, 0xfd, 0x01, 0x00, 0x00, //0x000021b9 jmp LBB0_425 + //0x000021be LBB0_389 + 0x48, 0x2b, 0x4d, 0xd0, //0x000021be subq $-48(%rbp), %rcx + 0x49, 0x89, 0xcb, //0x000021c2 movq %rcx, %r11 + 0xe9, 0x86, 0xed, 0xff, 0xff, //0x000021c5 jmp LBB0_195 + //0x000021ca LBB0_390 + 0x4c, 0x89, 0xd9, //0x000021ca movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x000021cd subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xe2, //0x000021d1 bsfq %rdx, %r12 + 0x49, 0x01, 0xcc, //0x000021d5 addq %rcx, %r12 + 0xe9, 0xeb, 0xf7, 0xff, 0xff, //0x000021d8 jmp LBB0_173 + //0x000021dd LBB0_391 + 0x4d, 0x85, 0xed, //0x000021dd testq %r13, %r13 + 0x0f, 0x84, 0xe3, 0x03, 0x00, 0x00, //0x000021e0 je LBB0_462 + 0x48, 0x8b, 0x45, 0xa0, //0x000021e6 movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000021ea addq %r11, %rax + 0x49, 0x83, 0xfc, 0xff, //0x000021ed cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe0, //0x000021f1 cmoveq %rax, %r12 + 0x49, 0xff, 0xc3, //0x000021f5 incq %r11 + 0x49, 0xff, 0xcd, //0x000021f8 decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000021fb movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x000021ff movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x00002203 testq %r13, %r13 + 0x0f, 0x85, 0x4a, 0xff, 0xff, 0xff, //0x00002206 jne LBB0_384 + 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x0000220c jmp LBB0_425 + //0x00002211 LBB0_393 + 0x48, 0x85, 0xc0, //0x00002211 testq %rax, %rax + 0x0f, 0x84, 0xaf, 0x03, 0x00, 0x00, //0x00002214 je LBB0_462 + 0x48, 0x8b, 0x4d, 0xa0, //0x0000221a movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000221e addq %r11, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00002221 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00002225 cmoveq %rcx, %r12 + 0x49, 0xff, 0xc3, //0x00002229 incq %r11 + 0x48, 0xff, 0xc8, //0x0000222c decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x0000222f movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002233 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00002237 testq %rax, %rax + 0x0f, 0x85, 0xb4, 0xf8, 0xff, 0xff, //0x0000223a jne LBB0_331 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x00002240 jmp LBB0_425 + //0x00002245 LBB0_395 + 0x44, 0x89, 0xc1, //0x00002245 movl %r8d, %ecx + 0xf7, 0xd1, //0x00002248 notl %ecx + 0x21, 0xd1, //0x0000224a andl %edx, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x0000224c leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xc2, //0x00002250 orl %r8d, %r10d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002253 movl $2863311530, %ebx + 0x44, 0x31, 0xd3, //0x00002258 xorl %r10d, %ebx + 0x21, 0xd3, //0x0000225b andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000225d andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00002263 xorl %r8d, %r8d + 0x01, 0xcb, //0x00002266 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00002268 setb %r8b + 0x01, 0xdb, //0x0000226c addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000226e xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x00002274 andl %r10d, %ebx + 0xf7, 0xd3, //0x00002277 notl %ebx + 0x21, 0xde, //0x00002279 andl %ebx, %esi + 0xe9, 0xae, 0xfa, 0xff, 0xff, //0x0000227b jmp LBB0_281 + //0x00002280 LBB0_396 + 0x4c, 0x89, 0xd8, //0x00002280 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002283 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00002287 bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x0000228b addq %rax, %r9 + 0x48, 0x09, 0xca, //0x0000228e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00002291 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00002294 orq %r10, %rax + 0x0f, 0x84, 0x7d, 0xf9, 0xff, 0xff, //0x00002297 je LBB0_212 + //0x0000229d LBB0_397 + 0x44, 0x89, 0xd0, //0x0000229d movl %r10d, %eax + 0xf7, 0xd0, //0x000022a0 notl %eax + 0x21, 0xf8, //0x000022a2 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x000022a4 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xd1, //0x000022a7 orl %r10d, %ecx + 0x89, 0xce, //0x000022aa movl %ecx, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022ac movl $2863311530, %ebx + 0x31, 0xde, //0x000022b1 xorl %ebx, %esi + 0x21, 0xfe, //0x000022b3 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022b5 andl $-1431655766, %esi + 0x45, 0x31, 0xd2, //0x000022bb xorl %r10d, %r10d + 0x01, 0xc6, //0x000022be addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc2, //0x000022c0 setb %r10b + 0x01, 0xf6, //0x000022c4 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x000022c6 xorl $1431655765, %esi + 0x21, 0xce, //0x000022cc andl %ecx, %esi + 0xf7, 0xd6, //0x000022ce notl %esi + 0x21, 0xf2, //0x000022d0 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x000022d2 testq %rdx, %rdx + 0x0f, 0x85, 0xd4, 0xf4, 0xff, 0xff, //0x000022d5 jne LBB0_54 + 0xe9, 0x43, 0xf9, 0xff, 0xff, //0x000022db jmp LBB0_398 + //0x000022e0 LBB0_408 + 0x4c, 0x89, 0xdb, //0x000022e0 movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x000022e3 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x000022e6 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x000022ea addq %rbx, %r9 + 0xe9, 0x29, 0xfa, 0xff, 0xff, //0x000022ed jmp LBB0_280 + //0x000022f2 LBB0_411 + 0x4d, 0x85, 0xe4, //0x000022f2 testq %r12, %r12 + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x000022f5 je LBB0_416 + 0x48, 0x8b, 0x45, 0xa0, //0x000022fb movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000022ff addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x00002302 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x00002306 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x0000230a incq %r11 + 0x49, 0xff, 0xcc, //0x0000230d decq %r12 + 0x4d, 0x85, 0xe4, //0x00002310 testq %r12, %r12 + 0x0f, 0x85, 0x24, 0xf9, 0xff, 0xff, //0x00002313 jne LBB0_401 + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00002319 jmp LBB0_416 + //0x0000231e LBB0_409 + 0x48, 0x85, 0xc0, //0x0000231e testq %rax, %rax + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00002321 je LBB0_416 + 0x48, 0x8b, 0x4d, 0xa0, //0x00002327 movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000232b addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x0000232e cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002332 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x00002336 incq %r11 + 0x48, 0xff, 0xc8, //0x00002339 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x0000233c movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x00002340 testq %rax, %rax + 0x0f, 0x85, 0x38, 0xfa, 0xff, 0xff, //0x00002343 jne LBB0_347 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002349 jmp LBB0_416 + //0x0000234e LBB0_413 + 0x48, 0x89, 0x16, //0x0000234e movq %rdx, (%rsi) + //0x00002351 LBB0_414 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002351 movq $-1, %rax + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00002358 jmp LBB0_423 + //0x0000235d LBB0_441 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x0000235d movq $-7, %rax + 0xe9, 0x39, 0x00, 0x00, 0x00, //0x00002364 jmp LBB0_423 + //0x00002369 LBB0_415 + 0x49, 0x83, 0xfb, 0xff, //0x00002369 cmpq $-1, %r11 + 0x0f, 0x85, 0x7f, 0x00, 0x00, 0x00, //0x0000236d jne LBB0_307 + //0x00002373 LBB0_416 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002373 movq $-1, %r11 + 0x4c, 0x8b, 0x4d, 0xb0, //0x0000237a movq $-80(%rbp), %r9 + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x0000237e jmp LBB0_307 + //0x00002383 LBB0_417 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002383 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000238a jmp LBB0_420 + //0x0000238f LBB0_419 + 0x4c, 0x89, 0xd8, //0x0000238f movq %r11, %rax + //0x00002392 LBB0_420 + 0x48, 0xf7, 0xd0, //0x00002392 notq %rax + 0x49, 0x01, 0xc7, //0x00002395 addq %rax, %r15 + //0x00002398 LBB0_421 + 0x4c, 0x89, 0x3e, //0x00002398 movq %r15, (%rsi) + //0x0000239b LBB0_422 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000239b movq $-2, %rax + //0x000023a2 LBB0_423 + 0x48, 0x83, 0xc4, 0x68, //0x000023a2 addq $104, %rsp + 0x5b, //0x000023a6 popq %rbx + 0x41, 0x5c, //0x000023a7 popq %r12 + 0x41, 0x5d, //0x000023a9 popq %r13 + 0x41, 0x5e, //0x000023ab popq %r14 + 0x41, 0x5f, //0x000023ad popq %r15 + 0x5d, //0x000023af popq %rbp + 0xc3, //0x000023b0 retq + //0x000023b1 LBB0_424 + 0x49, 0x83, 0xfb, 0xff, //0x000023b1 cmpq $-1, %r11 + 0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x000023b5 jne LBB0_437 + //0x000023bb LBB0_425 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000023bb movq $-1, %r11 + 0x4c, 0x8b, 0x65, 0xb0, //0x000023c2 movq $-80(%rbp), %r12 + 0xe9, 0x59, 0x00, 0x00, 0x00, //0x000023c6 jmp LBB0_437 + //0x000023cb LBB0_440 + 0x48, 0x89, 0x0e, //0x000023cb movq %rcx, (%rsi) + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000023ce jmp LBB0_423 + //0x000023d3 LBB0_426 + 0x49, 0x83, 0xf9, 0xff, //0x000023d3 cmpq $-1, %r9 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000023d7 jne LBB0_431 + 0x49, 0x0f, 0xbc, 0xc4, //0x000023dd bsfq %r12, %rax + //0x000023e1 LBB0_428 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000023e1 subq $-48(%rbp), %r11 + //0x000023e5 LBB0_429 + 0x49, 0x01, 0xc3, //0x000023e5 addq %rax, %r11 + //0x000023e8 LBB0_430 + 0x4d, 0x89, 0xd9, //0x000023e8 movq %r11, %r9 + //0x000023eb LBB0_431 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000023eb movq $-2, %r11 + //0x000023f2 LBB0_307 + 0x48, 0x8b, 0x45, 0xc8, //0x000023f2 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x000023f6 movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x000023f9 movq %r11, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000023fc jmp LBB0_423 + //0x00002401 LBB0_432 + 0x49, 0x83, 0xfc, 0xff, //0x00002401 cmpq $-1, %r12 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002405 jne LBB0_435 + 0x48, 0x0f, 0xbc, 0xc2, //0x0000240b bsfq %rdx, %rax + //0x0000240f LBB0_434 + 0x4c, 0x2b, 0x5d, 0xd0, //0x0000240f subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00002413 addq %rax, %r11 + 0x4d, 0x89, 0xdc, //0x00002416 movq %r11, %r12 + //0x00002419 LBB0_435 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002419 movq $-2, %r11 + //0x00002420 LBB0_436 + 0x48, 0x8b, 0x75, 0xc8, //0x00002420 movq $-56(%rbp), %rsi + //0x00002424 LBB0_437 + 0x4c, 0x89, 0x26, //0x00002424 movq %r12, (%rsi) + 0x4c, 0x89, 0xd8, //0x00002427 movq %r11, %rax + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000242a jmp LBB0_423 + //0x0000242f LBB0_438 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000242f movq $-1, %r11 + //0x00002436 LBB0_439 + 0x4d, 0x29, 0xdf, //0x00002436 subq %r11, %r15 + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00002439 jmp LBB0_421 + //0x0000243e LBB0_442 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000243e movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002445 cmpb $97, %cl + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x00002448 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x0000244e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002452 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x00002455 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x0000245b jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x00002461 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002465 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x73, //0x00002468 cmpb $115, $3(%r12,%r15) + 0x0f, 0x85, 0x2e, 0xff, 0xff, 0xff, //0x0000246e jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x04, //0x00002474 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002478 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x04, 0x65, //0x0000247b cmpb $101, $4(%r12,%r15) + 0x0f, 0x85, 0x1b, 0xff, 0xff, 0xff, //0x00002481 jne LBB0_423 + 0x49, 0x83, 0xc7, 0x05, //0x00002487 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x0000248b movq %r15, (%rsi) + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x0000248e jmp LBB0_423 + //0x00002493 LBB0_247 + 0x4c, 0x89, 0x3e, //0x00002493 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002496 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x0000249d cmpb $110, (%r10) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x000024a1 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x01, //0x000024a7 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024ab movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x75, //0x000024ae cmpb $117, $1(%r12,%r15) + 0x0f, 0x85, 0xe8, 0xfe, 0xff, 0xff, //0x000024b4 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x000024ba leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024be movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x000024c1 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0xd5, 0xfe, 0xff, 0xff, //0x000024c7 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x000024cd leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024d1 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x6c, //0x000024d4 cmpb $108, $3(%r12,%r15) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x000024da jne LBB0_423 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000024e0 jmp LBB0_451 + //0x000024e5 LBB0_447 + 0x4c, 0x89, 0x3e, //0x000024e5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000024e8 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x000024ef cmpb $116, (%r10) + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x000024f3 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x01, //0x000024f9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024fd movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x72, //0x00002500 cmpb $114, $1(%r12,%r15) + 0x0f, 0x85, 0x96, 0xfe, 0xff, 0xff, //0x00002506 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x0000250c leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002510 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x75, //0x00002513 cmpb $117, $2(%r12,%r15) + 0x0f, 0x85, 0x83, 0xfe, 0xff, 0xff, //0x00002519 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x0000251f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002523 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x65, //0x00002526 cmpb $101, $3(%r12,%r15) + 0x0f, 0x85, 0x70, 0xfe, 0xff, 0xff, //0x0000252c jne LBB0_423 + //0x00002532 LBB0_451 + 0x49, 0x83, 0xc7, 0x04, //0x00002532 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002536 movq %r15, (%rsi) + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00002539 jmp LBB0_423 + //0x0000253e LBB0_452 + 0x49, 0x83, 0xf9, 0xff, //0x0000253e cmpq $-1, %r9 + 0x0f, 0x85, 0xa3, 0xfe, 0xff, 0xff, //0x00002542 jne LBB0_431 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002548 bsfq %rdx, %rax + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x0000254c jmp LBB0_428 + //0x00002551 LBB0_456 + 0x4c, 0x89, 0x5d, 0xb0, //0x00002551 movq %r11, $-80(%rbp) + 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x00002555 jmp LBB0_416 + //0x0000255a LBB0_306 + 0x4c, 0x01, 0xd9, //0x0000255a addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000255d movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x00002564 movq %rcx, %r9 + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00002567 jmp LBB0_307 + //0x0000256c LBB0_454 + 0x4c, 0x89, 0x5d, 0xb0, //0x0000256c movq %r11, $-80(%rbp) + 0xe9, 0x46, 0xfe, 0xff, 0xff, //0x00002570 jmp LBB0_425 + //0x00002575 LBB0_455 + 0x4c, 0x01, 0xd9, //0x00002575 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002578 movq $-2, %r11 + 0x49, 0x89, 0xcc, //0x0000257f movq %rcx, %r12 + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00002582 jmp LBB0_437 + //0x00002587 LBB0_457 + 0x48, 0x0f, 0xbc, 0xc7, //0x00002587 bsfq %rdi, %rax + 0x4d, 0x29, 0xe3, //0x0000258b subq %r12, %r11 + 0xe9, 0x52, 0xfe, 0xff, 0xff, //0x0000258e jmp LBB0_429 + //0x00002593 LBB0_461 + 0x4d, 0x29, 0xe3, //0x00002593 subq %r12, %r11 + 0xe9, 0x4d, 0xfe, 0xff, 0xff, //0x00002596 jmp LBB0_430 + //0x0000259b LBB0_458 + 0x4c, 0x01, 0xd9, //0x0000259b addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000259e movq $-2, %r11 + 0x49, 0x89, 0xcc, //0x000025a5 movq %rcx, %r12 + 0xe9, 0x73, 0xfe, 0xff, 0xff, //0x000025a8 jmp LBB0_436 + //0x000025ad LBB0_459 + 0x48, 0x0f, 0xbc, 0xc7, //0x000025ad bsfq %rdi, %rax + 0xe9, 0x59, 0xfe, 0xff, 0xff, //0x000025b1 jmp LBB0_434 + //0x000025b6 LBB0_460 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000025b6 subq $-48(%rbp), %r11 + 0x4d, 0x89, 0xdc, //0x000025ba movq %r11, %r12 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000025bd movq $-2, %r11 + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x000025c4 jmp LBB0_437 + //0x000025c9 LBB0_462 + 0x48, 0x8b, 0x75, 0xc8, //0x000025c9 movq $-56(%rbp), %rsi + 0xe9, 0xe9, 0xfd, 0xff, 0xff, //0x000025cd jmp LBB0_425 + 0x90, 0x90, //0x000025d2 .p2align 2, 0x90 + // // .set L0_0_set_33, LBB0_33-LJTI0_0 + // // .set L0_0_set_37, LBB0_37-LJTI0_0 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_59, LBB0_59-LJTI0_0 + // // .set L0_0_set_61, LBB0_61-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + //0x000025d4 LJTI0_0 + 0xc3, 0xdd, 0xff, 0xff, //0x000025d4 .long L0_0_set_33 + 0xeb, 0xdd, 0xff, 0xff, //0x000025d8 .long L0_0_set_37 + 0x16, 0xde, 0xff, 0xff, //0x000025dc .long L0_0_set_39 + 0xcf, 0xdf, 0xff, 0xff, //0x000025e0 .long L0_0_set_59 + 0xe5, 0xdf, 0xff, 0xff, //0x000025e4 .long L0_0_set_61 + 0x55, 0xe2, 0xff, 0xff, //0x000025e8 .long L0_0_set_64 + // // .set L0_1_set_423, LBB0_423-LJTI0_1 + // // .set L0_1_set_422, LBB0_422-LJTI0_1 + // // .set L0_1_set_199, LBB0_199-LJTI0_1 + // // .set L0_1_set_215, LBB0_215-LJTI0_1 + // // .set L0_1_set_66, LBB0_66-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_242, LBB0_242-LJTI0_1 + // // .set L0_1_set_245, LBB0_245-LJTI0_1 + // // .set L0_1_set_251, LBB0_251-LJTI0_1 + // // .set L0_1_set_255, LBB0_255-LJTI0_1 + //0x000025ec LJTI0_1 + 0xb6, 0xfd, 0xff, 0xff, //0x000025ec .long L0_1_set_423 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025fc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002600 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002604 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002608 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000260c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002610 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002614 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002618 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000261c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002620 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002624 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002628 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000262c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002630 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002634 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002638 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000263c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002640 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002644 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002648 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000264c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002650 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002654 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002658 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000265c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002660 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002664 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002668 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000266c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002670 .long L0_1_set_422 + 0xa6, 0xe9, 0xff, 0xff, //0x00002674 .long L0_1_set_199 + 0xaf, 0xfd, 0xff, 0xff, //0x00002678 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000267c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002680 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002684 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002688 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000268c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002690 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002694 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002698 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000269c .long L0_1_set_422 + 0x38, 0xeb, 0xff, 0xff, //0x000026a0 .long L0_1_set_215 + 0xaf, 0xfd, 0xff, 0xff, //0x000026a4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026a8 .long L0_1_set_422 + 0xfd, 0xdf, 0xff, 0xff, //0x000026ac .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b0 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b4 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b8 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026bc .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c0 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c4 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c8 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026cc .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026d0 .long L0_1_set_66 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026dc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026ec .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026fc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002700 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002704 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002708 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000270c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002710 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002714 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002718 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000271c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002720 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002724 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002728 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000272c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002730 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002734 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002738 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000273c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002740 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002744 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002748 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000274c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002750 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002754 .long L0_1_set_422 + 0x0f, 0xed, 0xff, 0xff, //0x00002758 .long L0_1_set_240 + 0xaf, 0xfd, 0xff, 0xff, //0x0000275c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002760 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002764 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002768 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000276c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002770 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002774 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002778 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000277c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002780 .long L0_1_set_422 + 0x33, 0xed, 0xff, 0xff, //0x00002784 .long L0_1_set_242 + 0xaf, 0xfd, 0xff, 0xff, //0x00002788 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000278c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002790 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002794 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002798 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000279c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a0 .long L0_1_set_422 + 0x64, 0xed, 0xff, 0xff, //0x000027a4 .long L0_1_set_245 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027ac .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b8 .long L0_1_set_422 + 0x8b, 0xed, 0xff, 0xff, //0x000027bc .long L0_1_set_251 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027cc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027d0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027d4 .long L0_1_set_422 + 0xc8, 0xed, 0xff, 0xff, //0x000027d8 .long L0_1_set_255 + // // .set L0_2_set_264, LBB0_264-LJTI0_2 + // // .set L0_2_set_292, LBB0_292-LJTI0_2 + // // .set L0_2_set_259, LBB0_259-LJTI0_2 + // // .set L0_2_set_261, LBB0_261-LJTI0_2 + // // .set L0_2_set_266, LBB0_266-LJTI0_2 + //0x000027dc LJTI0_2 + 0x3d, 0xec, 0xff, 0xff, //0x000027dc .long L0_2_set_264 + 0x7b, 0xee, 0xff, 0xff, //0x000027e0 .long L0_2_set_292 + 0x3d, 0xec, 0xff, 0xff, //0x000027e4 .long L0_2_set_264 + 0xfc, 0xeb, 0xff, 0xff, //0x000027e8 .long L0_2_set_259 + 0x7b, 0xee, 0xff, 0xff, //0x000027ec .long L0_2_set_292 + 0x14, 0xec, 0xff, 0xff, //0x000027f0 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f4 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f8 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027fc .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002800 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002804 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002808 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x0000280c .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002810 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002814 .long L0_2_set_261 + 0x7b, 0xee, 0xff, 0xff, //0x00002818 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000281c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002820 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002824 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002828 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000282c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002830 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002834 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002838 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000283c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002840 .long L0_2_set_292 + 0x58, 0xec, 0xff, 0xff, //0x00002844 .long L0_2_set_266 + 0x7b, 0xee, 0xff, 0xff, //0x00002848 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000284c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002850 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002854 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002858 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000285c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002860 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002864 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002868 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000286c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002870 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002874 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002878 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000287c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002880 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002884 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002888 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000288c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002890 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002894 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002898 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000289c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a0 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a4 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a8 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028ac .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b0 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b4 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b8 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028bc .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028c0 .long L0_2_set_292 + 0x58, 0xec, 0xff, 0xff, //0x000028c4 .long L0_2_set_266 + // // .set L0_3_set_94, LBB0_94-LJTI0_3 + // // .set L0_3_set_149, LBB0_149-LJTI0_3 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + // // .set L0_3_set_91, LBB0_91-LJTI0_3 + // // .set L0_3_set_96, LBB0_96-LJTI0_3 + //0x000028c8 LJTI0_3 + 0x10, 0xdf, 0xff, 0xff, //0x000028c8 .long L0_3_set_94 + 0x75, 0xe3, 0xff, 0xff, //0x000028cc .long L0_3_set_149 + 0x10, 0xdf, 0xff, 0xff, //0x000028d0 .long L0_3_set_94 + 0x46, 0xdf, 0xff, 0xff, //0x000028d4 .long L0_3_set_98 + 0x75, 0xe3, 0xff, 0xff, //0x000028d8 .long L0_3_set_149 + 0xe8, 0xde, 0xff, 0xff, //0x000028dc .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e0 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e4 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e8 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028ec .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f0 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f4 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f8 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028fc .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x00002900 .long L0_3_set_91 + 0x75, 0xe3, 0xff, 0xff, //0x00002904 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002908 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000290c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002910 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002914 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002918 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000291c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002920 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002924 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002928 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000292c .long L0_3_set_149 + 0x2b, 0xdf, 0xff, 0xff, //0x00002930 .long L0_3_set_96 + 0x75, 0xe3, 0xff, 0xff, //0x00002934 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002938 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000293c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002940 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002944 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002948 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000294c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002950 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002954 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002958 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000295c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002960 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002964 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002968 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000296c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002970 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002974 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002978 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000297c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002980 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002984 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002988 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000298c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002990 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002994 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002998 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000299c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029a0 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029a4 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029a8 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000029ac .long L0_3_set_149 + 0x2b, 0xdf, 0xff, 0xff, //0x000029b0 .long L0_3_set_96 + //0x000029b4 .p2align 2, 0x00 + //0x000029b4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000029b4 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one.go new file mode 100644 index 000000000..9d3cd0247 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_one uintptr + +//go:nosplit +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast.go new file mode 100644 index 000000000..cab45bc60 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_one_fast uintptr + +//go:nosplit +func skip_one_fast(s *string, p *int) (ret int) { + return F_skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_subr.go new file mode 100644 index 000000000..c21d86cc5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_one_fast = 128 +) + +const ( + _stack__skip_one_fast = 176 +) + +const ( + _size__skip_one_fast = 3016 +) + +var ( + _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}, + } +) + +var _cfunc_skip_one_fast = []loader.CFunc{ + {"_skip_one_fast_entry", 0, _entry__skip_one_fast, 0, nil}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_text_amd64.go new file mode 100644 index 000000000..bf3f39bd1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_fast_text_amd64.go @@ -0,0 +1,945 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_skip_one_fast = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, // QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000010 LCPI0_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000010 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000020 LCPI0_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000020 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000030 LCPI0_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000050 LCPI0_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00000050 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00000060 LCPI0_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00000060 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00000070 LCPI0_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000070 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00000080 .p2align 4, 0x90 + //0x00000080 _skip_one_fast + 0x55, //0x00000080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000081 movq %rsp, %rbp + 0x41, 0x57, //0x00000084 pushq %r15 + 0x41, 0x56, //0x00000086 pushq %r14 + 0x41, 0x55, //0x00000088 pushq %r13 + 0x41, 0x54, //0x0000008a pushq %r12 + 0x53, //0x0000008c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000008d subq $128, %rsp + 0x4c, 0x8b, 0x37, //0x00000094 movq (%rdi), %r14 + 0x4c, 0x8b, 0x47, 0x08, //0x00000097 movq $8(%rdi), %r8 + 0x48, 0x8b, 0x16, //0x0000009b movq (%rsi), %rdx + 0x48, 0x89, 0xd0, //0x0000009e movq %rdx, %rax + 0x4c, 0x29, 0xc0, //0x000000a1 subq %r8, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000000a4 jae LBB0_5 + 0x41, 0x8a, 0x0c, 0x16, //0x000000aa movb (%r14,%rdx), %cl + 0x80, 0xf9, 0x0d, //0x000000ae cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000000b1 je LBB0_5 + 0x80, 0xf9, 0x20, //0x000000b7 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000000ba je LBB0_5 + 0x80, 0xc1, 0xf7, //0x000000c0 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000000c3 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000000c6 jbe LBB0_5 + 0x49, 0x89, 0xd3, //0x000000cc movq %rdx, %r11 + 0xe9, 0x2b, 0x01, 0x00, 0x00, //0x000000cf jmp LBB0_27 + //0x000000d4 LBB0_5 + 0x4c, 0x8d, 0x5a, 0x01, //0x000000d4 leaq $1(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x000000d8 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000000db jae LBB0_9 + 0x43, 0x8a, 0x0c, 0x1e, //0x000000e1 movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x000000e5 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000000e8 je LBB0_9 + 0x80, 0xf9, 0x20, //0x000000ee cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000000f1 je LBB0_9 + 0x80, 0xc1, 0xf7, //0x000000f7 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000000fa cmpb $1, %cl + 0x0f, 0x87, 0xfc, 0x00, 0x00, 0x00, //0x000000fd ja LBB0_27 + //0x00000103 LBB0_9 + 0x4c, 0x8d, 0x5a, 0x02, //0x00000103 leaq $2(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x00000107 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000010a jae LBB0_13 + 0x43, 0x8a, 0x0c, 0x1e, //0x00000110 movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00000114 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000117 je LBB0_13 + 0x80, 0xf9, 0x20, //0x0000011d cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000120 je LBB0_13 + 0x80, 0xc1, 0xf7, //0x00000126 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000129 cmpb $1, %cl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x0000012c ja LBB0_27 + //0x00000132 LBB0_13 + 0x4c, 0x8d, 0x5a, 0x03, //0x00000132 leaq $3(%rdx), %r11 + 0x4d, 0x39, 0xc3, //0x00000136 cmpq %r8, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000139 jae LBB0_17 + 0x43, 0x8a, 0x0c, 0x1e, //0x0000013f movb (%r14,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00000143 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000146 je LBB0_17 + 0x80, 0xf9, 0x20, //0x0000014c cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000014f je LBB0_17 + 0x80, 0xc1, 0xf7, //0x00000155 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000158 cmpb $1, %cl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x0000015b ja LBB0_27 + //0x00000161 LBB0_17 + 0x48, 0x8d, 0x4a, 0x04, //0x00000161 leaq $4(%rdx), %rcx + 0x49, 0x39, 0xc8, //0x00000165 cmpq %rcx, %r8 + 0x0f, 0x86, 0x4b, 0x00, 0x00, 0x00, //0x00000168 jbe LBB0_23 + 0x49, 0x39, 0xc8, //0x0000016e cmpq %rcx, %r8 + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00000171 je LBB0_24 + 0x4b, 0x8d, 0x0c, 0x06, //0x00000177 leaq (%r14,%r8), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x0000017b addq $4, %rax + 0x4e, 0x8d, 0x5c, 0x32, 0x05, //0x0000017f leaq $5(%rdx,%r14), %r11 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000184 movabsq $4294977024, %rdx + 0x90, 0x90, //0x0000018e .p2align 4, 0x90 + //0x00000190 LBB0_20 + 0x41, 0x0f, 0xbe, 0x5b, 0xff, //0x00000190 movsbl $-1(%r11), %ebx + 0x83, 0xfb, 0x20, //0x00000195 cmpl $32, %ebx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00000198 ja LBB0_26 + 0x48, 0x0f, 0xa3, 0xda, //0x0000019e btq %rbx, %rdx + 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x000001a2 jae LBB0_26 + 0x49, 0xff, 0xc3, //0x000001a8 incq %r11 + 0x48, 0xff, 0xc0, //0x000001ab incq %rax + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000001ae jne LBB0_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000001b4 jmp LBB0_25 + //0x000001b9 LBB0_23 + 0x48, 0x89, 0x0e, //0x000001b9 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000001bc movq $-1, %rax + 0xe9, 0x46, 0x01, 0x00, 0x00, //0x000001c3 jmp LBB0_45 + //0x000001c8 LBB0_24 + 0x4c, 0x01, 0xf1, //0x000001c8 addq %r14, %rcx + //0x000001cb LBB0_25 + 0x4c, 0x29, 0xf1, //0x000001cb subq %r14, %rcx + 0x49, 0x89, 0xcb, //0x000001ce movq %rcx, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000001d1 movq $-1, %rax + 0x4d, 0x39, 0xc3, //0x000001d8 cmpq %r8, %r11 + 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x000001db jb LBB0_27 + 0xe9, 0x28, 0x01, 0x00, 0x00, //0x000001e1 jmp LBB0_45 + //0x000001e6 LBB0_26 + 0x4c, 0x89, 0xf0, //0x000001e6 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x000001e9 notq %rax + 0x49, 0x01, 0xc3, //0x000001ec addq %rax, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000001ef movq $-1, %rax + 0x4d, 0x39, 0xc3, //0x000001f6 cmpq %r8, %r11 + 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x000001f9 jae LBB0_45 + //0x000001ff LBB0_27 + 0x49, 0x8d, 0x5b, 0x01, //0x000001ff leaq $1(%r11), %rbx + 0x48, 0x89, 0x1e, //0x00000203 movq %rbx, (%rsi) + 0x43, 0x0f, 0xbe, 0x0c, 0x1e, //0x00000206 movsbl (%r14,%r11), %ecx + 0x83, 0xf9, 0x7b, //0x0000020b cmpl $123, %ecx + 0x0f, 0x87, 0x1f, 0x01, 0x00, 0x00, //0x0000020e ja LBB0_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000214 movq $-1, %rax + 0x48, 0x8d, 0x15, 0x26, 0x0a, 0x00, 0x00, //0x0000021b leaq $2598(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x00000222 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00000226 addq %rdx, %rcx + 0xff, 0xe1, //0x00000229 jmpq *%rcx + //0x0000022b LBB0_29 + 0x48, 0x8b, 0x4f, 0x08, //0x0000022b movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000022f movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00000232 subq %rbx, %rax + 0x4c, 0x01, 0xf3, //0x00000235 addq %r14, %rbx + 0x48, 0x83, 0xf8, 0x10, //0x00000238 cmpq $16, %rax + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x0000023c jb LBB0_34 + 0x4c, 0x29, 0xd9, //0x00000242 subq %r11, %rcx + 0x48, 0x83, 0xc1, 0xef, //0x00000245 addq $-17, %rcx + 0x48, 0x89, 0xca, //0x00000249 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x0000024c andq $-16, %rdx + 0x4c, 0x01, 0xda, //0x00000250 addq %r11, %rdx + 0x49, 0x8d, 0x54, 0x16, 0x11, //0x00000253 leaq $17(%r14,%rdx), %rdx + 0x83, 0xe1, 0x0f, //0x00000258 andl $15, %ecx + 0xc5, 0xfa, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x0000025b vmovdqu $-611(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00000263 vmovdqu $-603(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x0000026b vmovdqu $-595(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000273 .p2align 4, 0x90 + //0x00000280 LBB0_31 + 0xc5, 0xfa, 0x6f, 0x1b, //0x00000280 vmovdqu (%rbx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00000284 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00000288 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x0000028c vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x00000290 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00000294 vpmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x00000298 testw %di, %di + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000029b jne LBB0_42 + 0x48, 0x83, 0xc3, 0x10, //0x000002a1 addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x000002a5 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x000002a9 cmpq $15, %rax + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000002ad ja LBB0_31 + 0x48, 0x89, 0xc8, //0x000002b3 movq %rcx, %rax + 0x48, 0x89, 0xd3, //0x000002b6 movq %rdx, %rbx + //0x000002b9 LBB0_34 + 0x48, 0x85, 0xc0, //0x000002b9 testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000002bc je LBB0_41 + 0x48, 0x8d, 0x0c, 0x03, //0x000002c2 leaq (%rbx,%rax), %rcx + //0x000002c6 LBB0_36 + 0x0f, 0xb6, 0x13, //0x000002c6 movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x000002c9 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000002cc je LBB0_41 + 0x80, 0xfa, 0x7d, //0x000002d2 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000002d5 je LBB0_41 + 0x80, 0xfa, 0x5d, //0x000002db cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000002de je LBB0_41 + 0x48, 0xff, 0xc3, //0x000002e4 incq %rbx + 0x48, 0xff, 0xc8, //0x000002e7 decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000002ea jne LBB0_36 + 0x48, 0x89, 0xcb, //0x000002f0 movq %rcx, %rbx + //0x000002f3 LBB0_41 + 0x4c, 0x29, 0xf3, //0x000002f3 subq %r14, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000002f6 jmp LBB0_43 + //0x000002fb LBB0_42 + 0x0f, 0xb7, 0xc7, //0x000002fb movzwl %di, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x000002fe bsfq %rax, %rax + 0x4c, 0x29, 0xf3, //0x00000302 subq %r14, %rbx + 0x48, 0x01, 0xc3, //0x00000305 addq %rax, %rbx + //0x00000308 LBB0_43 + 0x48, 0x89, 0x1e, //0x00000308 movq %rbx, (%rsi) + //0x0000030b LBB0_44 + 0x4c, 0x89, 0xd8, //0x0000030b movq %r11, %rax + //0x0000030e LBB0_45 + 0x48, 0x8d, 0x65, 0xd8, //0x0000030e leaq $-40(%rbp), %rsp + 0x5b, //0x00000312 popq %rbx + 0x41, 0x5c, //0x00000313 popq %r12 + 0x41, 0x5d, //0x00000315 popq %r13 + 0x41, 0x5e, //0x00000317 popq %r14 + 0x41, 0x5f, //0x00000319 popq %r15 + 0x5d, //0x0000031b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000031c vzeroupper + 0xc3, //0x0000031f retq + //0x00000320 LBB0_46 + 0x49, 0x8d, 0x4b, 0x04, //0x00000320 leaq $4(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00000324 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00000328 ja LBB0_45 + 0xe9, 0xa6, 0x04, 0x00, 0x00, //0x0000032e jmp LBB0_83 + //0x00000333 LBB0_47 + 0x4c, 0x89, 0x1e, //0x00000333 movq %r11, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000336 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000033d jmp LBB0_45 + //0x00000342 LBB0_48 + 0x4c, 0x8b, 0x47, 0x08, //0x00000342 movq $8(%rdi), %r8 + 0x4d, 0x89, 0xc7, //0x00000346 movq %r8, %r15 + 0x49, 0x29, 0xdf, //0x00000349 subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x0000034c cmpq $32, %r15 + 0x0f, 0x8c, 0xbb, 0x08, 0x00, 0x00, //0x00000350 jl LBB0_117 + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00000356 movl $4294967295, %r9d + 0x4f, 0x8d, 0x14, 0x1e, //0x0000035c leaq (%r14,%r11), %r10 + 0x4d, 0x29, 0xd8, //0x00000360 subq %r11, %r8 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00000363 movl $31, %r13d + 0x45, 0x31, 0xff, //0x00000369 xorl %r15d, %r15d + 0xc5, 0xfa, 0x6f, 0x05, 0xbc, 0xfc, 0xff, 0xff, //0x0000036c vmovdqu $-836(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xc4, 0xfc, 0xff, 0xff, //0x00000374 vmovdqu $-828(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x45, 0x31, 0xe4, //0x0000037c xorl %r12d, %r12d + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000037f jmp LBB0_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000384 .p2align 4, 0x90 + //0x00000390 LBB0_52 + 0x45, 0x31, 0xe4, //0x00000390 xorl %r12d, %r12d + 0x85, 0xc9, //0x00000393 testl %ecx, %ecx + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00000395 jne LBB0_110 + //0x0000039b LBB0_53 + 0x49, 0x83, 0xc7, 0x20, //0x0000039b addq $32, %r15 + 0x4b, 0x8d, 0x4c, 0x28, 0xe0, //0x0000039f leaq $-32(%r8,%r13), %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x000003a4 addq $-32, %r13 + 0x48, 0x83, 0xf9, 0x3f, //0x000003a8 cmpq $63, %rcx + 0x0f, 0x8e, 0xdc, 0x07, 0x00, 0x00, //0x000003ac jle LBB0_54 + //0x000003b2 LBB0_50 + 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x3a, 0x01, //0x000003b2 vmovdqu $1(%r10,%r15), %xmm2 + 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x3a, 0x11, //0x000003b9 vmovdqu $17(%r10,%r15), %xmm3 + 0xc5, 0xe9, 0x74, 0xe0, //0x000003c0 vpcmpeqb %xmm0, %xmm2, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x000003c4 vpmovmskb %xmm4, %edi + 0xc5, 0xe1, 0x74, 0xe0, //0x000003c8 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x000003cc vpmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x000003d0 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x000003d4 orq %rdi, %rcx + 0xc5, 0xe9, 0x74, 0xd1, //0x000003d7 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000003db vpmovmskb %xmm2, %ebx + 0xc5, 0xe1, 0x74, 0xd1, //0x000003df vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000003e3 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x000003e7 shlq $16, %rdi + 0x48, 0x09, 0xdf, //0x000003eb orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x000003ee movq %rdi, %rbx + 0x4c, 0x09, 0xe3, //0x000003f1 orq %r12, %rbx + 0x0f, 0x84, 0x96, 0xff, 0xff, 0xff, //0x000003f4 je LBB0_52 + 0x44, 0x89, 0xe3, //0x000003fa movl %r12d, %ebx + 0x44, 0x31, 0xcb, //0x000003fd xorl %r9d, %ebx + 0x21, 0xdf, //0x00000400 andl %ebx, %edi + 0x8d, 0x1c, 0x3f, //0x00000402 leal (%rdi,%rdi), %ebx + 0x44, 0x09, 0xe3, //0x00000405 orl %r12d, %ebx + 0x41, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x00000408 leal $-1431655765(%r9), %edx + 0x31, 0xda, //0x0000040f xorl %ebx, %edx + 0x21, 0xfa, //0x00000411 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000413 andl $-1431655766, %edx + 0x45, 0x31, 0xe4, //0x00000419 xorl %r12d, %r12d + 0x01, 0xfa, //0x0000041c addl %edi, %edx + 0x41, 0x0f, 0x92, 0xc4, //0x0000041e setb %r12b + 0x01, 0xd2, //0x00000422 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00000424 xorl $1431655765, %edx + 0x21, 0xda, //0x0000042a andl %ebx, %edx + 0x44, 0x31, 0xca, //0x0000042c xorl %r9d, %edx + 0x21, 0xd1, //0x0000042f andl %edx, %ecx + 0x85, 0xc9, //0x00000431 testl %ecx, %ecx + 0x0f, 0x84, 0x62, 0xff, 0xff, 0xff, //0x00000433 je LBB0_53 + //0x00000439 LBB0_110 + 0x48, 0x0f, 0xbc, 0xc1, //0x00000439 bsfq %rcx, %rax + 0x49, 0x01, 0xc2, //0x0000043d addq %rax, %r10 + 0x4d, 0x01, 0xfa, //0x00000440 addq %r15, %r10 + 0x4d, 0x29, 0xf2, //0x00000443 subq %r14, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x00000446 addq $2, %r10 + 0x4c, 0x89, 0x16, //0x0000044a movq %r10, (%rsi) + 0xe9, 0xb9, 0xfe, 0xff, 0xff, //0x0000044d jmp LBB0_44 + //0x00000452 LBB0_57 + 0x48, 0x8b, 0x4f, 0x08, //0x00000452 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00000456 subq %rbx, %rcx + 0x49, 0x01, 0xde, //0x00000459 addq %rbx, %r14 + 0x45, 0x31, 0xe4, //0x0000045c xorl %r12d, %r12d + 0xc5, 0x7a, 0x6f, 0x15, 0xc9, 0xfb, 0xff, 0xff, //0x0000045f vmovdqu $-1079(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xd1, 0xfb, 0xff, 0xff, //0x00000467 vmovdqu $-1071(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x0000046f vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xfa, 0x6f, 0x1d, 0xe4, 0xfb, 0xff, 0xff, //0x00000474 vmovdqu $-1052(%rip), %xmm3 /* LCPI0_6+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0xec, 0xfb, 0xff, 0xff, //0x0000047c vmovdqu $-1044(%rip), %xmm4 /* LCPI0_7+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00000484 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xdb, //0x00000489 xorl %ebx, %ebx + 0x45, 0x31, 0xc0, //0x0000048b xorl %r8d, %r8d + 0x45, 0x31, 0xff, //0x0000048e xorl %r15d, %r15d + 0x48, 0x83, 0xf9, 0x40, //0x00000491 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00000495 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x0000049a movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x0000049f jge LBB0_58 + //0x000004a5 LBB0_67 + 0x48, 0x85, 0xc9, //0x000004a5 testq %rcx, %rcx + 0x0f, 0x8e, 0x6b, 0x07, 0x00, 0x00, //0x000004a8 jle LBB0_118 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x000004ae vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x000004b4 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf1, //0x000004ba movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x000004bd andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x000004c3 cmpl $4033, %ecx + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x000004c9 jb LBB0_58 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x000004cf cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x000004d5 jb LBB0_71 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x000004db vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x000004e0 vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x000004e6 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x000004ec vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x000004f2 addq $32, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x000004f6 movq $8(%rsp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x000004fb leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x000004ff leaq $64(%rsp), %r8 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000504 jmp LBB0_72 + //0x00000509 LBB0_71 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00000509 leaq $32(%rsp), %r8 + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x0000050e movq $8(%rsp), %rdx + //0x00000513 LBB0_72 + 0x48, 0x83, 0xfa, 0x10, //0x00000513 cmpq $16, %rdx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00000517 jb LBB0_73 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x0000051d vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00000522 vmovdqu %xmm0, (%r8) + 0x49, 0x83, 0xc6, 0x10, //0x00000527 addq $16, %r14 + 0x49, 0x83, 0xc0, 0x10, //0x0000052b addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x0000052f addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00000533 cmpq $8, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00000537 jae LBB0_78 + //0x0000053d LBB0_74 + 0x48, 0x83, 0xfa, 0x04, //0x0000053d cmpq $4, %rdx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00000541 jl LBB0_75 + //0x00000547 LBB0_79 + 0x41, 0x8b, 0x0e, //0x00000547 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x0000054a movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x0000054d addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x00000551 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x00000555 addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000559 cmpq $2, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x0000055d jae LBB0_80 + //0x00000563 LBB0_76 + 0x4c, 0x89, 0xf1, //0x00000563 movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000566 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x0000056b testq %rdx, %rdx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000056e jne LBB0_81 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00000574 jmp LBB0_58 + //0x00000579 LBB0_73 + 0x48, 0x83, 0xfa, 0x08, //0x00000579 cmpq $8, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x0000057d jb LBB0_74 + //0x00000583 LBB0_78 + 0x49, 0x8b, 0x0e, //0x00000583 movq (%r14), %rcx + 0x49, 0x89, 0x08, //0x00000586 movq %rcx, (%r8) + 0x49, 0x83, 0xc6, 0x08, //0x00000589 addq $8, %r14 + 0x49, 0x83, 0xc0, 0x08, //0x0000058d addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00000591 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00000595 cmpq $4, %rdx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00000599 jge LBB0_79 + //0x0000059f LBB0_75 + 0x48, 0x83, 0xfa, 0x02, //0x0000059f cmpq $2, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x000005a3 jb LBB0_76 + //0x000005a9 LBB0_80 + 0x41, 0x0f, 0xb7, 0x0e, //0x000005a9 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000005ad movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x000005b1 addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x000005b5 addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x000005b9 addq $-2, %rdx + 0x4c, 0x89, 0xf1, //0x000005bd movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000005c0 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x000005c5 testq %rdx, %rdx + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000005c8 je LBB0_58 + //0x000005ce LBB0_81 + 0x8a, 0x09, //0x000005ce movb (%rcx), %cl + 0x41, 0x88, 0x08, //0x000005d0 movb %cl, (%r8) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000005d3 leaq $32(%rsp), %r14 + //0x000005d8 LBB0_58 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x000005d8 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x000005dd vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x000005e3 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x000005e9 vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x000005ef vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x000005f3 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x000005f7 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000005fb vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc7, //0x000005ff vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000603 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc6, //0x00000607 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x0000060b vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x0000060f shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00000613 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00000617 shlq $16, %rcx + 0x49, 0x09, 0xcd, //0x0000061b orq %rcx, %r13 + 0x49, 0x09, 0xd5, //0x0000061e orq %rdx, %r13 + 0x4d, 0x09, 0xcd, //0x00000621 orq %r9, %r13 + 0xc5, 0xe9, 0x74, 0xc1, //0x00000624 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000628 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x0000062c vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000630 vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x00000634 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00000638 vpmovmskb %xmm0, %r9d + 0xc5, 0xc9, 0x74, 0xc1, //0x0000063c vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00000640 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00000644 shlq $48, %r10 + 0x49, 0xc1, 0xe1, 0x20, //0x00000648 shlq $32, %r9 + 0x48, 0xc1, 0xe2, 0x10, //0x0000064c shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00000650 orq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x00000653 orq %r9, %rcx + 0x4c, 0x09, 0xd1, //0x00000656 orq %r10, %rcx + 0x48, 0x89, 0xca, //0x00000659 movq %rcx, %rdx + 0x48, 0x09, 0xda, //0x0000065c orq %rbx, %rdx + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x0000065f je LBB0_60 + 0x48, 0x89, 0xda, //0x00000665 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00000668 notq %rdx + 0x48, 0x21, 0xca, //0x0000066b andq %rcx, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x0000066e leaq (%rdx,%rdx), %r9 + 0x49, 0x09, 0xd9, //0x00000672 orq %rbx, %r9 + 0x4d, 0x89, 0xca, //0x00000675 movq %r9, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000678 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00000682 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00000685 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00000688 andq %r10, %rcx + 0x31, 0xdb, //0x0000068b xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x0000068d addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00000690 setb %bl + 0x48, 0x01, 0xc9, //0x00000693 addq %rcx, %rcx + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000696 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd1, //0x000006a0 xorq %rdx, %rcx + 0x4c, 0x21, 0xc9, //0x000006a3 andq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x000006a6 notq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000006a9 jmp LBB0_61 + //0x000006ae LBB0_60 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000006ae movq $-1, %rcx + 0x31, 0xdb, //0x000006b5 xorl %ebx, %ebx + //0x000006b7 LBB0_61 + 0x48, 0x89, 0x5c, 0x24, 0x18, //0x000006b7 movq %rbx, $24(%rsp) + 0x4c, 0x21, 0xe9, //0x000006bc andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x000006bf vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x000006c4 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x000006ca vmovq %xmm0, %r13 + 0x4d, 0x31, 0xe5, //0x000006cf xorq %r12, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x000006d2 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x000006d6 vpmovmskb %xmm0, %r10d + 0xc5, 0xd1, 0x74, 0xc3, //0x000006da vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000006de vpmovmskb %xmm0, %ecx + 0xc5, 0xc1, 0x74, 0xc3, //0x000006e2 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000006e6 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x000006ea vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x000006ee vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x000006f2 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x000006f6 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x000006fa shlq $16, %rcx + 0x49, 0x09, 0xca, //0x000006fe orq %rcx, %r10 + 0x49, 0x09, 0xd2, //0x00000701 orq %rdx, %r10 + 0x4d, 0x09, 0xca, //0x00000704 orq %r9, %r10 + 0x4d, 0x89, 0xe9, //0x00000707 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x0000070a notq %r9 + 0x4d, 0x21, 0xca, //0x0000070d andq %r9, %r10 + 0xc5, 0xe9, 0x74, 0xc4, //0x00000710 vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000714 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc4, //0x00000718 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x0000071c vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc4, //0x00000720 vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00000724 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x00000728 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x0000072c vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x00000730 shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x00000734 shlq $32, %r8 + 0x48, 0xc1, 0xe2, 0x10, //0x00000738 shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x0000073c orq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x0000073f orq %r8, %rcx + 0x4c, 0x09, 0xe1, //0x00000742 orq %r12, %rcx + 0x4c, 0x21, 0xc9, //0x00000745 andq %r9, %rcx + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000748 je LBB0_65 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x0000074e movq $16(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000753 .p2align 4, 0x90 + //0x00000760 LBB0_63 + 0x48, 0x8d, 0x59, 0xff, //0x00000760 leaq $-1(%rcx), %rbx + 0x48, 0x89, 0xda, //0x00000764 movq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x00000767 andq %r10, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x0000076a popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x0000076f addq %r8, %rdx + 0x4c, 0x39, 0xfa, //0x00000772 cmpq %r15, %rdx + 0x0f, 0x86, 0xe0, 0x03, 0x00, 0x00, //0x00000775 jbe LBB0_109 + 0x49, 0xff, 0xc7, //0x0000077b incq %r15 + 0x48, 0x21, 0xd9, //0x0000077e andq %rbx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00000781 jne LBB0_63 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000787 jmp LBB0_66 + //0x0000078c LBB0_65 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x0000078c movq $16(%rsp), %r8 + //0x00000791 LBB0_66 + 0x49, 0xc1, 0xfd, 0x3f, //0x00000791 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00000795 popcntq %r10, %rcx + 0x49, 0x01, 0xc8, //0x0000079a addq %rcx, %r8 + 0x49, 0x83, 0xc6, 0x40, //0x0000079d addq $64, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x000007a1 movq $8(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x000007a6 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x000007aa movq %r13, %r12 + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x000007ad movq $24(%rsp), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x000007b2 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x000007b6 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x000007bb movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x12, 0xfe, 0xff, 0xff, //0x000007c0 jge LBB0_58 + 0xe9, 0xda, 0xfc, 0xff, 0xff, //0x000007c6 jmp LBB0_67 + //0x000007cb LBB0_82 + 0x49, 0x8d, 0x4b, 0x05, //0x000007cb leaq $5(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x000007cf cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0x35, 0xfb, 0xff, 0xff, //0x000007d3 ja LBB0_45 + //0x000007d9 LBB0_83 + 0x48, 0x89, 0x0e, //0x000007d9 movq %rcx, (%rsi) + 0xe9, 0x2a, 0xfb, 0xff, 0xff, //0x000007dc jmp LBB0_44 + //0x000007e1 LBB0_84 + 0x48, 0x8b, 0x4f, 0x08, //0x000007e1 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x000007e5 subq %rbx, %rcx + 0x49, 0x01, 0xde, //0x000007e8 addq %rbx, %r14 + 0x45, 0x31, 0xe4, //0x000007eb xorl %r12d, %r12d + 0xc5, 0x7a, 0x6f, 0x15, 0x3a, 0xf8, 0xff, 0xff, //0x000007ee vmovdqu $-1990(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x42, 0xf8, 0xff, 0xff, //0x000007f6 vmovdqu $-1982(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x000007fe vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xfa, 0x6f, 0x1d, 0x45, 0xf8, 0xff, 0xff, //0x00000803 vmovdqu $-1979(%rip), %xmm3 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0x0d, 0xf8, 0xff, 0xff, //0x0000080b vmovdqu $-2035(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00000813 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xdb, //0x00000818 xorl %ebx, %ebx + 0x45, 0x31, 0xc0, //0x0000081a xorl %r8d, %r8d + 0x45, 0x31, 0xff, //0x0000081d xorl %r15d, %r15d + 0x48, 0x83, 0xf9, 0x40, //0x00000820 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00000824 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00000829 movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x33, 0x01, 0x00, 0x00, //0x0000082e jge LBB0_85 + //0x00000834 LBB0_94 + 0x48, 0x85, 0xc9, //0x00000834 testq %rcx, %rcx + 0x0f, 0x8e, 0xdc, 0x03, 0x00, 0x00, //0x00000837 jle LBB0_118 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x0000083d vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00000843 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf1, //0x00000849 movl %r14d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x0000084c andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00000852 cmpl $4033, %ecx + 0x0f, 0x82, 0x09, 0x01, 0x00, 0x00, //0x00000858 jb LBB0_85 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x0000085e cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x00000864 jb LBB0_98 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x0000086a vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x0000086f vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00000875 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x0000087b vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00000881 addq $32, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00000885 movq $8(%rsp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x0000088a leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x0000088e leaq $64(%rsp), %r8 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000893 jmp LBB0_99 + //0x00000898 LBB0_98 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00000898 leaq $32(%rsp), %r8 + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x0000089d movq $8(%rsp), %rdx + //0x000008a2 LBB0_99 + 0x48, 0x83, 0xfa, 0x10, //0x000008a2 cmpq $16, %rdx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x000008a6 jb LBB0_100 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x000008ac vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x000008b1 vmovdqu %xmm0, (%r8) + 0x49, 0x83, 0xc6, 0x10, //0x000008b6 addq $16, %r14 + 0x49, 0x83, 0xc0, 0x10, //0x000008ba addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x000008be addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x000008c2 cmpq $8, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000008c6 jae LBB0_105 + //0x000008cc LBB0_101 + 0x48, 0x83, 0xfa, 0x04, //0x000008cc cmpq $4, %rdx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x000008d0 jl LBB0_102 + //0x000008d6 LBB0_106 + 0x41, 0x8b, 0x0e, //0x000008d6 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x000008d9 movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x000008dc addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x000008e0 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x000008e4 addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000008e8 cmpq $2, %rdx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000008ec jae LBB0_107 + //0x000008f2 LBB0_103 + 0x4c, 0x89, 0xf1, //0x000008f2 movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000008f5 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x000008fa testq %rdx, %rdx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x000008fd jne LBB0_108 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00000903 jmp LBB0_85 + //0x00000908 LBB0_100 + 0x48, 0x83, 0xfa, 0x08, //0x00000908 cmpq $8, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x0000090c jb LBB0_101 + //0x00000912 LBB0_105 + 0x49, 0x8b, 0x0e, //0x00000912 movq (%r14), %rcx + 0x49, 0x89, 0x08, //0x00000915 movq %rcx, (%r8) + 0x49, 0x83, 0xc6, 0x08, //0x00000918 addq $8, %r14 + 0x49, 0x83, 0xc0, 0x08, //0x0000091c addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00000920 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00000924 cmpq $4, %rdx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00000928 jge LBB0_106 + //0x0000092e LBB0_102 + 0x48, 0x83, 0xfa, 0x02, //0x0000092e cmpq $2, %rdx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00000932 jb LBB0_103 + //0x00000938 LBB0_107 + 0x41, 0x0f, 0xb7, 0x0e, //0x00000938 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x0000093c movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x00000940 addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00000944 addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x00000948 addq $-2, %rdx + 0x4c, 0x89, 0xf1, //0x0000094c movq %r14, %rcx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x0000094f leaq $32(%rsp), %r14 + 0x48, 0x85, 0xd2, //0x00000954 testq %rdx, %rdx + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00000957 je LBB0_85 + //0x0000095d LBB0_108 + 0x8a, 0x09, //0x0000095d movb (%rcx), %cl + 0x41, 0x88, 0x08, //0x0000095f movb %cl, (%r8) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000962 leaq $32(%rsp), %r14 + //0x00000967 LBB0_85 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00000967 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x0000096c vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00000972 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00000978 vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x0000097e vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00000982 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x00000986 vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x0000098a vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc7, //0x0000098e vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000992 vpmovmskb %xmm0, %edx + 0xc5, 0xa9, 0x74, 0xc6, //0x00000996 vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x0000099a vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x0000099e shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x000009a2 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x000009a6 shlq $16, %rcx + 0x49, 0x09, 0xcd, //0x000009aa orq %rcx, %r13 + 0x49, 0x09, 0xd5, //0x000009ad orq %rdx, %r13 + 0x4d, 0x09, 0xcd, //0x000009b0 orq %r9, %r13 + 0xc5, 0xe9, 0x74, 0xc1, //0x000009b3 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000009b7 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x000009bb vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000009bf vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc1, //0x000009c3 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x000009c7 vpmovmskb %xmm0, %r9d + 0xc5, 0xc9, 0x74, 0xc1, //0x000009cb vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x000009cf vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x000009d3 shlq $48, %r10 + 0x49, 0xc1, 0xe1, 0x20, //0x000009d7 shlq $32, %r9 + 0x48, 0xc1, 0xe2, 0x10, //0x000009db shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x000009df orq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x000009e2 orq %r9, %rcx + 0x4c, 0x09, 0xd1, //0x000009e5 orq %r10, %rcx + 0x48, 0x89, 0xca, //0x000009e8 movq %rcx, %rdx + 0x48, 0x09, 0xda, //0x000009eb orq %rbx, %rdx + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x000009ee je LBB0_87 + 0x48, 0x89, 0xda, //0x000009f4 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x000009f7 notq %rdx + 0x48, 0x21, 0xca, //0x000009fa andq %rcx, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x000009fd leaq (%rdx,%rdx), %r9 + 0x49, 0x09, 0xd9, //0x00000a01 orq %rbx, %r9 + 0x4d, 0x89, 0xca, //0x00000a04 movq %r9, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000a07 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00000a11 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00000a14 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00000a17 andq %r10, %rcx + 0x31, 0xdb, //0x00000a1a xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x00000a1c addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00000a1f setb %bl + 0x48, 0x01, 0xc9, //0x00000a22 addq %rcx, %rcx + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a25 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd1, //0x00000a2f xorq %rdx, %rcx + 0x4c, 0x21, 0xc9, //0x00000a32 andq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000a35 notq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00000a38 jmp LBB0_88 + //0x00000a3d LBB0_87 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000a3d movq $-1, %rcx + 0x31, 0xdb, //0x00000a44 xorl %ebx, %ebx + //0x00000a46 LBB0_88 + 0x48, 0x89, 0x5c, 0x24, 0x18, //0x00000a46 movq %rbx, $24(%rsp) + 0x4c, 0x21, 0xe9, //0x00000a4b andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00000a4e vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00000a53 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00000a59 vmovq %xmm0, %r13 + 0x4d, 0x31, 0xe5, //0x00000a5e xorq %r12, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x00000a61 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00000a65 vpmovmskb %xmm0, %r10d + 0xc5, 0xd1, 0x74, 0xc3, //0x00000a69 vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000a6d vpmovmskb %xmm0, %ecx + 0xc5, 0xc1, 0x74, 0xc3, //0x00000a71 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000a75 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00000a79 vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00000a7d vpmovmskb %xmm0, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00000a81 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00000a85 shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x00000a89 shlq $16, %rcx + 0x49, 0x09, 0xca, //0x00000a8d orq %rcx, %r10 + 0x49, 0x09, 0xd2, //0x00000a90 orq %rdx, %r10 + 0x4d, 0x09, 0xca, //0x00000a93 orq %r9, %r10 + 0x4d, 0x89, 0xe9, //0x00000a96 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x00000a99 notq %r9 + 0x4d, 0x21, 0xca, //0x00000a9c andq %r9, %r10 + 0xc5, 0xe9, 0x74, 0xc4, //0x00000a9f vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000aa3 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc4, //0x00000aa7 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000aab vpmovmskb %xmm0, %edx + 0xc5, 0xc1, 0x74, 0xc4, //0x00000aaf vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00000ab3 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x00000ab7 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x00000abb vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x00000abf shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x00000ac3 shlq $32, %r8 + 0x48, 0xc1, 0xe2, 0x10, //0x00000ac7 shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x00000acb orq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00000ace orq %r8, %rcx + 0x4c, 0x09, 0xe1, //0x00000ad1 orq %r12, %rcx + 0x4c, 0x21, 0xc9, //0x00000ad4 andq %r9, %rcx + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00000ad7 je LBB0_92 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00000add movq $16(%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ae2 .p2align 4, 0x90 + //0x00000af0 LBB0_90 + 0x48, 0x8d, 0x59, 0xff, //0x00000af0 leaq $-1(%rcx), %rbx + 0x48, 0x89, 0xda, //0x00000af4 movq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x00000af7 andq %r10, %rdx + 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00000afa popcntq %rdx, %rdx + 0x4c, 0x01, 0xc2, //0x00000aff addq %r8, %rdx + 0x4c, 0x39, 0xfa, //0x00000b02 cmpq %r15, %rdx + 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00000b05 jbe LBB0_109 + 0x49, 0xff, 0xc7, //0x00000b0b incq %r15 + 0x48, 0x21, 0xd9, //0x00000b0e andq %rbx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00000b11 jne LBB0_90 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000b17 jmp LBB0_93 + //0x00000b1c LBB0_92 + 0x4c, 0x8b, 0x44, 0x24, 0x10, //0x00000b1c movq $16(%rsp), %r8 + //0x00000b21 LBB0_93 + 0x49, 0xc1, 0xfd, 0x3f, //0x00000b21 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xca, //0x00000b25 popcntq %r10, %rcx + 0x49, 0x01, 0xc8, //0x00000b2a addq %rcx, %r8 + 0x49, 0x83, 0xc6, 0x40, //0x00000b2d addq $64, %r14 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00000b31 movq $8(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00000b36 addq $-64, %rcx + 0x4d, 0x89, 0xec, //0x00000b3a movq %r13, %r12 + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00000b3d movq $24(%rsp), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00000b42 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x08, //0x00000b46 movq %rcx, $8(%rsp) + 0x4c, 0x89, 0x44, 0x24, 0x10, //0x00000b4b movq %r8, $16(%rsp) + 0x0f, 0x8d, 0x11, 0xfe, 0xff, 0xff, //0x00000b50 jge LBB0_85 + 0xe9, 0xd9, 0xfc, 0xff, 0xff, //0x00000b56 jmp LBB0_94 + //0x00000b5b LBB0_109 + 0x48, 0x8b, 0x47, 0x08, //0x00000b5b movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xc9, //0x00000b5f bsfq %rcx, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x00000b63 subq $8(%rsp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00000b68 leaq $1(%rcx,%rax), %rax + 0x48, 0x89, 0x06, //0x00000b6d movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00000b70 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00000b74 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00000b77 cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x00000b7b movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b7e movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xd8, //0x00000b85 cmovaq %rax, %r11 + 0xe9, 0x7d, 0xf7, 0xff, 0xff, //0x00000b89 jmp LBB0_44 + //0x00000b8e LBB0_54 + 0x4d, 0x85, 0xe4, //0x00000b8e testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x00000b91 jne LBB0_119 + 0x4b, 0x8d, 0x5c, 0x17, 0x01, //0x00000b97 leaq $1(%r15,%r10), %rbx + 0x49, 0xf7, 0xd7, //0x00000b9c notq %r15 + 0x4d, 0x01, 0xc7, //0x00000b9f addq %r8, %r15 + //0x00000ba2 LBB0_56 + 0x4d, 0x85, 0xff, //0x00000ba2 testq %r15, %r15 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00000ba5 jg LBB0_113 + 0xe9, 0x5e, 0xf7, 0xff, 0xff, //0x00000bab jmp LBB0_45 + //0x00000bb0 LBB0_111 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00000bb0 movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000bb7 movl $2, %eax + 0x48, 0x01, 0xc3, //0x00000bbc addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000bbf movq $-1, %rax + 0x49, 0x01, 0xcf, //0x00000bc6 addq %rcx, %r15 + 0x0f, 0x8e, 0x3f, 0xf7, 0xff, 0xff, //0x00000bc9 jle LBB0_45 + //0x00000bcf LBB0_113 + 0x0f, 0xb6, 0x03, //0x00000bcf movzbl (%rbx), %eax + 0x3c, 0x5c, //0x00000bd2 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00000bd4 je LBB0_111 + 0x3c, 0x22, //0x00000bda cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00000bdc je LBB0_116 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000be2 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000be9 movl $1, %eax + 0x48, 0x01, 0xc3, //0x00000bee addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000bf1 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x00000bf8 addq %rcx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x00000bfb jg LBB0_113 + 0xe9, 0x08, 0xf7, 0xff, 0xff, //0x00000c01 jmp LBB0_45 + //0x00000c06 LBB0_116 + 0x4c, 0x29, 0xf3, //0x00000c06 subq %r14, %rbx + 0x48, 0xff, 0xc3, //0x00000c09 incq %rbx + 0xe9, 0xf7, 0xf6, 0xff, 0xff, //0x00000c0c jmp LBB0_43 + //0x00000c11 LBB0_117 + 0x4c, 0x01, 0xf3, //0x00000c11 addq %r14, %rbx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00000c14 jmp LBB0_56 + //0x00000c19 LBB0_118 + 0x48, 0x8b, 0x4f, 0x08, //0x00000c19 movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00000c1d movq %rcx, (%rsi) + 0xe9, 0xe9, 0xf6, 0xff, 0xff, //0x00000c20 jmp LBB0_45 + //0x00000c25 LBB0_119 + 0x49, 0x8d, 0x48, 0xff, //0x00000c25 leaq $-1(%r8), %rcx + 0x4c, 0x39, 0xf9, //0x00000c29 cmpq %r15, %rcx + 0x0f, 0x84, 0xdc, 0xf6, 0xff, 0xff, //0x00000c2c je LBB0_45 + 0x4b, 0x8d, 0x5c, 0x17, 0x02, //0x00000c32 leaq $2(%r15,%r10), %rbx + 0x4d, 0x29, 0xf8, //0x00000c37 subq %r15, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00000c3a addq $-2, %r8 + 0x4d, 0x89, 0xc7, //0x00000c3e movq %r8, %r15 + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00000c41 jmp LBB0_56 + 0x90, 0x90, //0x00000c46 .p2align 2, 0x90 + // // .set L0_0_set_45, LBB0_45-LJTI0_0 + // // .set L0_0_set_47, LBB0_47-LJTI0_0 + // // .set L0_0_set_48, LBB0_48-LJTI0_0 + // // .set L0_0_set_29, LBB0_29-LJTI0_0 + // // .set L0_0_set_57, LBB0_57-LJTI0_0 + // // .set L0_0_set_82, LBB0_82-LJTI0_0 + // // .set L0_0_set_46, LBB0_46-LJTI0_0 + // // .set L0_0_set_84, LBB0_84-LJTI0_0 + //0x00000c48 LJTI0_0 + 0xc6, 0xf6, 0xff, 0xff, //0x00000c48 .long L0_0_set_45 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c4c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c50 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c54 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c58 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c5c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c60 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c64 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c68 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c6c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c70 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c74 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c78 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c7c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c80 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c84 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c88 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c8c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c90 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c94 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c98 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000c9c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ca0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ca4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ca8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cac .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cb0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cb4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cb8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cbc .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cc0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cc4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cc8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ccc .long L0_0_set_47 + 0xfa, 0xf6, 0xff, 0xff, //0x00000cd0 .long L0_0_set_48 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cd4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cd8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cdc .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ce0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ce4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ce8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cec .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cf0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cf4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000cf8 .long L0_0_set_47 + 0xe3, 0xf5, 0xff, 0xff, //0x00000cfc .long L0_0_set_29 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d00 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d04 .long L0_0_set_47 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d08 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d0c .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d10 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d14 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d18 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d1c .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d20 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d24 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d28 .long L0_0_set_29 + 0xe3, 0xf5, 0xff, 0xff, //0x00000d2c .long L0_0_set_29 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d30 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d34 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d38 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d3c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d40 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d44 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d48 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d4c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d50 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d54 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d58 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d5c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d60 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d64 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d68 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d6c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d70 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d74 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d78 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d7c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d80 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d84 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d88 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d8c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d90 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d94 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d98 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000d9c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000da0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000da4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000da8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dac .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000db0 .long L0_0_set_47 + 0x0a, 0xf8, 0xff, 0xff, //0x00000db4 .long L0_0_set_57 + 0xeb, 0xf6, 0xff, 0xff, //0x00000db8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dbc .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dc0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dc4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dc8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dcc .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dd0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dd4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dd8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000ddc .long L0_0_set_47 + 0x83, 0xfb, 0xff, 0xff, //0x00000de0 .long L0_0_set_82 + 0xeb, 0xf6, 0xff, 0xff, //0x00000de4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000de8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dec .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000df0 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000df4 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000df8 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000dfc .long L0_0_set_47 + 0xd8, 0xf6, 0xff, 0xff, //0x00000e00 .long L0_0_set_46 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e04 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e08 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e0c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e10 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e14 .long L0_0_set_47 + 0xd8, 0xf6, 0xff, 0xff, //0x00000e18 .long L0_0_set_46 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e1c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e20 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e24 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e28 .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e2c .long L0_0_set_47 + 0xeb, 0xf6, 0xff, 0xff, //0x00000e30 .long L0_0_set_47 + 0x99, 0xfb, 0xff, 0xff, //0x00000e34 .long L0_0_set_84 + //0x00000e38 .p2align 2, 0x00 + //0x00000e38 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000e38 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_subr.go new file mode 100644 index 000000000..a52f5fd11 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_one = 144 +) + +const ( + _stack__skip_one = 160 +) + +const ( + _size__skip_one = 9472 +) + +var ( + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9044, 160}, + {9048, 48}, + {9049, 40}, + {9051, 32}, + {9053, 24}, + {9055, 16}, + {9057, 8}, + {9058, 0}, + {9472, 160}, + } +) + +var _cfunc_skip_one = []loader.CFunc{ + {"_skip_one_entry", 0, _entry__skip_one, 0, nil}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_text_amd64.go new file mode 100644 index 000000000..9b663ae31 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/skip_one_text_amd64.go @@ -0,0 +1,2830 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_skip_one = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 LCPI0_3 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000030 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000040 LCPI0_4 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000040 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000050 LCPI0_5 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_6 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000070 LCPI0_7 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000080 LCPI0_8 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000080 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000090 .p2align 4, 0x90 + //0x00000090 _skip_one + 0x55, //0x00000090 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000091 movq %rsp, %rbp + 0x41, 0x57, //0x00000094 pushq %r15 + 0x41, 0x56, //0x00000096 pushq %r14 + 0x41, 0x55, //0x00000098 pushq %r13 + 0x41, 0x54, //0x0000009a pushq %r12 + 0x53, //0x0000009c pushq %rbx + 0x48, 0x83, 0xec, 0x70, //0x0000009d subq $112, %rsp + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x000000a1 movq %rcx, $-136(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000a8 movl $1, %r8d + 0xc4, 0xc1, 0xf9, 0x6e, 0xc0, //0x000000ae vmovq %r8, %xmm0 + 0xc5, 0xfa, 0x7f, 0x02, //0x000000b3 vmovdqu %xmm0, (%rdx) + 0x4c, 0x8b, 0x27, //0x000000b7 movq (%rdi), %r12 + 0x4c, 0x89, 0xe0, //0x000000ba movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x000000bd notq %rax + 0x48, 0x89, 0x45, 0x98, //0x000000c0 movq %rax, $-104(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000c4 movl $1, %eax + 0x4c, 0x29, 0xe0, //0x000000c9 subq %r12, %rax + 0x48, 0x89, 0x45, 0x90, //0x000000cc movq %rax, $-112(%rbp) + 0x49, 0x8d, 0x44, 0x24, 0x40, //0x000000d0 leaq $64(%r12), %rax + 0x48, 0x89, 0x45, 0x88, //0x000000d5 movq %rax, $-120(%rbp) + 0x4c, 0x8b, 0x36, //0x000000d9 movq (%rsi), %r14 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x000000dc leaq $5(%r12), %rax + 0x48, 0x89, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000000e1 movq %rax, $-152(%rbp) + 0x48, 0xc7, 0x85, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x000000e8 movq $-1, $-144(%rbp) + 0xc5, 0xfa, 0x6f, 0x05, 0x05, 0xff, 0xff, 0xff, //0x000000f3 vmovdqu $-251(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x0d, 0xff, 0xff, 0xff, //0x000000fb vmovdqu $-243(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0x15, 0xff, 0xff, 0xff, //0x00000103 vmovdqu $-235(%rip), %xmm15 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x0000010b vpcmpeqd %xmm3, %xmm3, %xmm3 + 0xc5, 0x7a, 0x6f, 0x05, 0x19, 0xff, 0xff, 0xff, //0x0000010f vmovdqu $-231(%rip), %xmm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x21, 0xff, 0xff, 0xff, //0x00000117 vmovdqu $-223(%rip), %xmm9 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x29, 0xff, 0xff, 0xff, //0x0000011f vmovdqu $-215(%rip), %xmm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0x31, 0xff, 0xff, 0xff, //0x00000127 vmovdqu $-207(%rip), %xmm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x25, 0xe9, 0xfe, 0xff, 0xff, //0x0000012f vmovdqu $-279(%rip), %xmm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x2d, 0x31, 0xff, 0xff, 0xff, //0x00000137 vmovdqu $-207(%rip), %xmm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x35, 0x39, 0xff, 0xff, 0xff, //0x0000013f vmovdqu $-199(%rip), %xmm14 /* LCPI0_8+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x00000147 movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x65, 0xd0, //0x0000014b movq %r12, $-48(%rbp) + 0x48, 0x89, 0x55, 0xb8, //0x0000014f movq %rdx, $-72(%rbp) + 0x48, 0x89, 0x7d, 0xc0, //0x00000153 movq %rdi, $-64(%rbp) + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00000157 jmp LBB0_4 + 0x90, 0x90, 0x90, 0x90, //0x0000015c .p2align 4, 0x90 + //0x00000160 LBB0_1 + 0x4d, 0x89, 0xd3, //0x00000160 movq %r10, %r11 + //0x00000163 LBB0_2 + 0x4c, 0x8b, 0x0a, //0x00000163 movq (%rdx), %r9 + 0x4d, 0x89, 0xde, //0x00000166 movq %r11, %r14 + //0x00000169 LBB0_3 + 0x4d, 0x89, 0xc8, //0x00000169 movq %r9, %r8 + 0x48, 0x8b, 0x85, 0x70, 0xff, 0xff, 0xff, //0x0000016c movq $-144(%rbp), %rax + 0x4d, 0x85, 0xc9, //0x00000173 testq %r9, %r9 + 0x0f, 0x84, 0x68, 0x22, 0x00, 0x00, //0x00000176 je LBB0_424 + //0x0000017c LBB0_4 + 0x4c, 0x8b, 0x4f, 0x08, //0x0000017c movq $8(%rdi), %r9 + 0x4c, 0x89, 0xf0, //0x00000180 movq %r14, %rax + 0x4c, 0x89, 0xf3, //0x00000183 movq %r14, %rbx + 0x4c, 0x29, 0xcb, //0x00000186 subq %r9, %rbx + 0x0f, 0x83, 0x31, 0x00, 0x00, 0x00, //0x00000189 jae LBB0_9 + 0x41, 0x8a, 0x0c, 0x04, //0x0000018f movb (%r12,%rax), %cl + 0x80, 0xf9, 0x0d, //0x00000193 cmpb $13, %cl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00000196 je LBB0_9 + 0x80, 0xf9, 0x20, //0x0000019c cmpb $32, %cl + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000019f je LBB0_9 + 0x80, 0xc1, 0xf7, //0x000001a5 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000001a8 cmpb $1, %cl + 0x0f, 0x86, 0x0f, 0x00, 0x00, 0x00, //0x000001ab jbe LBB0_9 + 0x49, 0x89, 0xc7, //0x000001b1 movq %rax, %r15 + 0xe9, 0x34, 0x01, 0x00, 0x00, //0x000001b4 jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001b9 .p2align 4, 0x90 + //0x000001c0 LBB0_9 + 0x4c, 0x8d, 0x78, 0x01, //0x000001c0 leaq $1(%rax), %r15 + 0x4d, 0x39, 0xcf, //0x000001c4 cmpq %r9, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000001c7 jae LBB0_13 + 0x43, 0x8a, 0x0c, 0x3c, //0x000001cd movb (%r12,%r15), %cl + 0x80, 0xf9, 0x0d, //0x000001d1 cmpb $13, %cl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000001d4 je LBB0_13 + 0x80, 0xf9, 0x20, //0x000001da cmpb $32, %cl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000001dd je LBB0_13 + 0x80, 0xc1, 0xf7, //0x000001e3 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000001e6 cmpb $1, %cl + 0x0f, 0x87, 0xfe, 0x00, 0x00, 0x00, //0x000001e9 ja LBB0_30 + 0x90, //0x000001ef .p2align 4, 0x90 + //0x000001f0 LBB0_13 + 0x4c, 0x8d, 0x78, 0x02, //0x000001f0 leaq $2(%rax), %r15 + 0x4d, 0x39, 0xcf, //0x000001f4 cmpq %r9, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000001f7 jae LBB0_17 + 0x43, 0x8a, 0x0c, 0x3c, //0x000001fd movb (%r12,%r15), %cl + 0x80, 0xf9, 0x0d, //0x00000201 cmpb $13, %cl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000204 je LBB0_17 + 0x80, 0xf9, 0x20, //0x0000020a cmpb $32, %cl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000020d je LBB0_17 + 0x80, 0xc1, 0xf7, //0x00000213 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000216 cmpb $1, %cl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000219 ja LBB0_30 + 0x90, //0x0000021f .p2align 4, 0x90 + //0x00000220 LBB0_17 + 0x4c, 0x8d, 0x78, 0x03, //0x00000220 leaq $3(%rax), %r15 + 0x4d, 0x39, 0xcf, //0x00000224 cmpq %r9, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000227 jae LBB0_21 + 0x43, 0x8a, 0x0c, 0x3c, //0x0000022d movb (%r12,%r15), %cl + 0x80, 0xf9, 0x0d, //0x00000231 cmpb $13, %cl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000234 je LBB0_21 + 0x80, 0xf9, 0x20, //0x0000023a cmpb $32, %cl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000023d je LBB0_21 + 0x80, 0xc1, 0xf7, //0x00000243 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000246 cmpb $1, %cl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000249 ja LBB0_30 + 0x90, //0x0000024f .p2align 4, 0x90 + //0x00000250 LBB0_21 + 0x48, 0x8d, 0x48, 0x04, //0x00000250 leaq $4(%rax), %rcx + 0x49, 0x39, 0xc9, //0x00000254 cmpq %rcx, %r9 + 0x0f, 0x86, 0x33, 0x21, 0x00, 0x00, //0x00000257 jbe LBB0_413 + 0x49, 0x39, 0xc9, //0x0000025d cmpq %rcx, %r9 + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00000260 je LBB0_27 + 0x4b, 0x8d, 0x0c, 0x0c, //0x00000266 leaq (%r12,%r9), %rcx + 0x48, 0x83, 0xc3, 0x04, //0x0000026a addq $4, %rbx + 0x48, 0x03, 0x85, 0x68, 0xff, 0xff, 0xff, //0x0000026e addq $-152(%rbp), %rax + 0x49, 0x89, 0xc7, //0x00000275 movq %rax, %r15 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000278 movabsq $4294977024, %r10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000282 .p2align 4, 0x90 + //0x00000290 LBB0_24 + 0x41, 0x0f, 0xbe, 0x47, 0xff, //0x00000290 movsbl $-1(%r15), %eax + 0x83, 0xf8, 0x20, //0x00000295 cmpl $32, %eax + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00000298 ja LBB0_29 + 0x49, 0x0f, 0xa3, 0xc2, //0x0000029e btq %rax, %r10 + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002a2 jae LBB0_29 + 0x49, 0xff, 0xc7, //0x000002a8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002ab incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002ae jne LBB0_24 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000002b4 jmp LBB0_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002b9 .p2align 4, 0x90 + //0x000002c0 LBB0_27 + 0x4c, 0x01, 0xe1, //0x000002c0 addq %r12, %rcx + //0x000002c3 LBB0_28 + 0x4c, 0x29, 0xe1, //0x000002c3 subq %r12, %rcx + 0x49, 0x89, 0xcf, //0x000002c6 movq %rcx, %r15 + 0x4d, 0x39, 0xcf, //0x000002c9 cmpq %r9, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x000002cc jb LBB0_30 + 0xe9, 0xbc, 0x20, 0x00, 0x00, //0x000002d2 jmp LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d7 .p2align 4, 0x90 + //0x000002e0 LBB0_29 + 0x4c, 0x03, 0x7d, 0x98, //0x000002e0 addq $-104(%rbp), %r15 + 0x4d, 0x39, 0xcf, //0x000002e4 cmpq %r9, %r15 + 0x0f, 0x83, 0xa6, 0x20, 0x00, 0x00, //0x000002e7 jae LBB0_414 + //0x000002ed LBB0_30 + 0x4d, 0x8d, 0x57, 0x01, //0x000002ed leaq $1(%r15), %r10 + 0x4c, 0x89, 0x16, //0x000002f1 movq %r10, (%rsi) + 0x47, 0x0f, 0xbe, 0x1c, 0x3c, //0x000002f4 movsbl (%r12,%r15), %r11d + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000002f9 movq $-1, %rax + 0x45, 0x85, 0xdb, //0x00000300 testl %r11d, %r11d + 0x0f, 0x84, 0xdb, 0x20, 0x00, 0x00, //0x00000303 je LBB0_424 + 0x4d, 0x8d, 0x48, 0xff, //0x00000309 leaq $-1(%r8), %r9 + 0x42, 0x8b, 0x0c, 0xc2, //0x0000030d movl (%rdx,%r8,8), %ecx + 0x48, 0x8b, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x00000311 movq $-144(%rbp), %rbx + 0x48, 0x83, 0xfb, 0xff, //0x00000318 cmpq $-1, %rbx + 0x49, 0x0f, 0x44, 0xdf, //0x0000031c cmoveq %r15, %rbx + 0x48, 0x89, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x00000320 movq %rbx, $-144(%rbp) + 0xff, 0xc9, //0x00000327 decl %ecx + 0x83, 0xf9, 0x05, //0x00000329 cmpl $5, %ecx + 0x0f, 0x87, 0x3d, 0x02, 0x00, 0x00, //0x0000032c ja LBB0_62 + 0x48, 0x8d, 0x1d, 0x57, 0x22, 0x00, 0x00, //0x00000332 leaq $8791(%rip), %rbx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8b, //0x00000339 movslq (%rbx,%rcx,4), %rcx + 0x48, 0x01, 0xd9, //0x0000033d addq %rbx, %rcx + 0xff, 0xe1, //0x00000340 jmpq *%rcx + //0x00000342 LBB0_33 + 0x41, 0x83, 0xfb, 0x2c, //0x00000342 cmpl $44, %r11d + 0x0f, 0x84, 0xb2, 0x04, 0x00, 0x00, //0x00000346 je LBB0_102 + 0x41, 0x83, 0xfb, 0x5d, //0x0000034c cmpl $93, %r11d + 0x0f, 0x84, 0x42, 0x02, 0x00, 0x00, //0x00000350 je LBB0_65 + 0xe9, 0x82, 0x20, 0x00, 0x00, //0x00000356 jmp LBB0_423 + //0x0000035b LBB0_35 + 0x41, 0x83, 0xfb, 0x2c, //0x0000035b cmpl $44, %r11d + 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x0000035f jne LBB0_64 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x00000365 cmpq $4095, %r8 + 0x0f, 0x8f, 0x2d, 0x20, 0x00, 0x00, //0x0000036c jg LBB0_432 + 0x49, 0x8d, 0x40, 0x01, //0x00000372 leaq $1(%r8), %rax + 0x48, 0x89, 0x02, //0x00000376 movq %rax, (%rdx) + 0x4a, 0xc7, 0x44, 0xc2, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00000379 movq $3, $8(%rdx,%r8,8) + 0xe9, 0xd9, 0xfd, 0xff, 0xff, //0x00000382 jmp LBB0_1 + //0x00000387 LBB0_38 + 0x41, 0x80, 0xfb, 0x22, //0x00000387 cmpb $34, %r11b + 0x0f, 0x85, 0x4c, 0x20, 0x00, 0x00, //0x0000038b jne LBB0_423 + 0x4a, 0xc7, 0x04, 0xc2, 0x04, 0x00, 0x00, 0x00, //0x00000391 movq $4, (%rdx,%r8,8) + 0x48, 0x8b, 0x4f, 0x08, //0x00000399 movq $8(%rdi), %rcx + 0xf6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x20, //0x0000039d testb $32, $-136(%rbp) + 0x48, 0x89, 0x4d, 0xa0, //0x000003a4 movq %rcx, $-96(%rbp) + 0x0f, 0x85, 0x72, 0x04, 0x00, 0x00, //0x000003a8 jne LBB0_104 + 0x49, 0x89, 0xcd, //0x000003ae movq %rcx, %r13 + 0x4d, 0x29, 0xd5, //0x000003b1 subq %r10, %r13 + 0x0f, 0x84, 0x9d, 0x21, 0x00, 0x00, //0x000003b4 je LBB0_449 + 0x4f, 0x8d, 0x1c, 0x14, //0x000003ba leaq (%r12,%r10), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x000003be cmpq $64, %r13 + 0x0f, 0x82, 0x40, 0x1a, 0x00, 0x00, //0x000003c2 jb LBB0_353 + 0x44, 0x89, 0xe8, //0x000003c8 movl %r13d, %eax + 0x83, 0xe0, 0x3f, //0x000003cb andl $63, %eax + 0x48, 0x89, 0x45, 0xa8, //0x000003ce movq %rax, $-88(%rbp) + 0x4c, 0x29, 0xf9, //0x000003d2 subq %r15, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x000003d5 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x000003d9 andq $-64, %rcx + 0x4c, 0x01, 0xd1, //0x000003dd addq %r10, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x000003e0 addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0x80, //0x000003e4 movq %rcx, $-128(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000003e8 movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x000003ef xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003f2 .p2align 4, 0x90 + //0x00000400 LBB0_43 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000400 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000405 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x0000040b vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000411 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000417 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x0000041b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000041f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000423 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000427 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000042b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000042f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000433 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000437 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000043b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000043f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000443 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00000447 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000044b vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x0000044f vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000453 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x00000457 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x0000045b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000045f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000463 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000466 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x00000469 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x0000046d shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000471 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000475 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000478 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x0000047b orq %r8, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000047e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000482 jne LBB0_45 + 0x48, 0x85, 0xd2, //0x00000488 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000048b jne LBB0_54 + //0x00000491 LBB0_45 + 0x48, 0x09, 0xdf, //0x00000491 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000494 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x00000497 orq %r12, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000049a jne LBB0_55 + //0x000004a0 LBB0_46 + 0x48, 0x85, 0xff, //0x000004a0 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000004a3 jne LBB0_56 + //0x000004a9 LBB0_47 + 0x49, 0x83, 0xc5, 0xc0, //0x000004a9 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x000004ad addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x000004b1 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x000004b5 ja LBB0_43 + 0xe9, 0xb4, 0x12, 0x00, 0x00, //0x000004bb jmp LBB0_48 + //0x000004c0 LBB0_54 + 0x4c, 0x89, 0xd8, //0x000004c0 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000004c3 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x000004c7 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x000004cb addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x000004ce orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004d1 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x000004d4 orq %r12, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000004d7 je LBB0_46 + //0x000004dd LBB0_55 + 0x4c, 0x89, 0xe0, //0x000004dd movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x000004e0 notq %rax + 0x48, 0x21, 0xd0, //0x000004e3 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000004e6 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe1, //0x000004ea orq %r12, %rcx + 0x48, 0x89, 0xce, //0x000004ed movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000004f0 notq %rsi + 0x48, 0x21, 0xd6, //0x000004f3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000004f6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000500 andq %rdx, %rsi + 0x45, 0x31, 0xe4, //0x00000503 xorl %r12d, %r12d + 0x48, 0x01, 0xc6, //0x00000506 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc4, //0x00000509 setb %r12b + 0x48, 0x01, 0xf6, //0x0000050d addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000510 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000051a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000051d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000520 notq %rsi + 0x48, 0x21, 0xf7, //0x00000523 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000526 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000529 je LBB0_47 + //0x0000052f LBB0_56 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000052f bsfq %rdi, %rax + //0x00000533 LBB0_57 + 0x4c, 0x03, 0x5d, 0x90, //0x00000533 addq $-112(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000537 addq %rax, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000053a movq $-48(%rbp), %r12 + 0xe9, 0x80, 0x09, 0x00, 0x00, //0x0000053e jmp LBB0_186 + //0x00000543 LBB0_58 + 0x41, 0x80, 0xfb, 0x3a, //0x00000543 cmpb $58, %r11b + 0x0f, 0x85, 0x90, 0x1e, 0x00, 0x00, //0x00000547 jne LBB0_423 + 0x4a, 0xc7, 0x04, 0xc2, 0x00, 0x00, 0x00, 0x00, //0x0000054d movq $0, (%rdx,%r8,8) + 0xe9, 0x06, 0xfc, 0xff, 0xff, //0x00000555 jmp LBB0_1 + //0x0000055a LBB0_60 + 0x4d, 0x89, 0xd6, //0x0000055a movq %r10, %r14 + 0x41, 0x80, 0xfb, 0x5d, //0x0000055d cmpb $93, %r11b + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000561 jne LBB0_66 + 0x4c, 0x89, 0x0a, //0x00000567 movq %r9, (%rdx) + 0xe9, 0xfa, 0xfb, 0xff, 0xff, //0x0000056a jmp LBB0_3 + //0x0000056f LBB0_62 + 0x4d, 0x89, 0xd6, //0x0000056f movq %r10, %r14 + 0x4c, 0x89, 0x0a, //0x00000572 movq %r9, (%rdx) + 0x41, 0x83, 0xfb, 0x7b, //0x00000575 cmpl $123, %r11d + 0x0f, 0x86, 0x36, 0x00, 0x00, 0x00, //0x00000579 jbe LBB0_67 + 0xe9, 0x59, 0x1e, 0x00, 0x00, //0x0000057f jmp LBB0_423 + //0x00000584 LBB0_63 + 0x41, 0x83, 0xfb, 0x22, //0x00000584 cmpl $34, %r11d + 0x0f, 0x84, 0x6d, 0x04, 0x00, 0x00, //0x00000588 je LBB0_125 + //0x0000058e LBB0_64 + 0x41, 0x83, 0xfb, 0x7d, //0x0000058e cmpl $125, %r11d + 0x0f, 0x85, 0x45, 0x1e, 0x00, 0x00, //0x00000592 jne LBB0_423 + //0x00000598 LBB0_65 + 0x4d, 0x89, 0xd6, //0x00000598 movq %r10, %r14 + 0x4c, 0x89, 0x0a, //0x0000059b movq %r9, (%rdx) + 0xe9, 0xc6, 0xfb, 0xff, 0xff, //0x0000059e jmp LBB0_3 + //0x000005a3 LBB0_66 + 0x4a, 0xc7, 0x04, 0xc2, 0x01, 0x00, 0x00, 0x00, //0x000005a3 movq $1, (%rdx,%r8,8) + 0x41, 0x83, 0xfb, 0x7b, //0x000005ab cmpl $123, %r11d + 0x0f, 0x87, 0x28, 0x1e, 0x00, 0x00, //0x000005af ja LBB0_423 + //0x000005b5 LBB0_67 + 0x4f, 0x8d, 0x14, 0x3c, //0x000005b5 leaq (%r12,%r15), %r10 + 0x44, 0x89, 0xd9, //0x000005b9 movl %r11d, %ecx + 0x48, 0x8d, 0x1d, 0xe5, 0x1f, 0x00, 0x00, //0x000005bc leaq $8165(%rip), %rbx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8b, //0x000005c3 movslq (%rbx,%rcx,4), %rcx + 0x48, 0x01, 0xd9, //0x000005c7 addq %rbx, %rcx + 0xff, 0xe1, //0x000005ca jmpq *%rcx + //0x000005cc LBB0_68 + 0x4c, 0x8b, 0x4f, 0x08, //0x000005cc movq $8(%rdi), %r9 + 0x4d, 0x29, 0xf9, //0x000005d0 subq %r15, %r9 + 0x0f, 0x84, 0xec, 0x1d, 0x00, 0x00, //0x000005d3 je LBB0_418 + 0x41, 0x80, 0x3a, 0x30, //0x000005d9 cmpb $48, (%r10) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005dd jne LBB0_73 + 0x49, 0x83, 0xf9, 0x01, //0x000005e3 cmpq $1, %r9 + 0x0f, 0x84, 0xa1, 0x06, 0x00, 0x00, //0x000005e7 je LBB0_269 + 0x43, 0x8a, 0x04, 0x34, //0x000005ed movb (%r12,%r14), %al + 0x04, 0xd2, //0x000005f1 addb $-46, %al + 0x3c, 0x37, //0x000005f3 cmpb $55, %al + 0x0f, 0x87, 0x93, 0x06, 0x00, 0x00, //0x000005f5 ja LBB0_269 + 0x0f, 0xb6, 0xc0, //0x000005fb movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000005fe movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000608 btq %rax, %rcx + 0x0f, 0x83, 0x7c, 0x06, 0x00, 0x00, //0x0000060c jae LBB0_269 + //0x00000612 LBB0_73 + 0x49, 0x83, 0xf9, 0x10, //0x00000612 cmpq $16, %r9 + 0x0f, 0x82, 0xcb, 0x17, 0x00, 0x00, //0x00000616 jb LBB0_342 + 0x49, 0x8d, 0x79, 0xf0, //0x0000061c leaq $-16(%r9), %rdi + 0x48, 0x89, 0xf8, //0x00000620 movq %rdi, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000623 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x10, 0x10, //0x00000627 leaq $16(%rax,%r10), %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000062c movq %rax, $-80(%rbp) + 0x83, 0xe7, 0x0f, //0x00000630 andl $15, %edi + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000633 movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000063a movq $-1, %r13 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000641 movq $-1, %r11 + 0x4d, 0x89, 0xd6, //0x00000648 movq %r10, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000064b .p2align 4, 0x90 + //0x00000650 LBB0_75 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00000650 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x00000655 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x0000065a vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000065e vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x00000662 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x00000666 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000066a vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x0000066e vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x00000672 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x00000676 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x0000067a vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x0000067e vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x00000682 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000686 vpmovmskb %xmm2, %r8d + 0xc5, 0xf9, 0xd7, 0xc6, //0x0000068a vpmovmskb %xmm6, %eax + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000068e vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x00000692 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000696 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x0000069b addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x000006a2 xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x000006a5 bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x000006a9 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000006ac je LBB0_77 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000006b2 movl $-1, %esi + 0xd3, 0xe6, //0x000006b7 shll %cl, %esi + 0xf7, 0xd6, //0x000006b9 notl %esi + 0x41, 0x21, 0xf0, //0x000006bb andl %esi, %r8d + 0x21, 0xf0, //0x000006be andl %esi, %eax + 0x21, 0xd6, //0x000006c0 andl %edx, %esi + 0x89, 0xf2, //0x000006c2 movl %esi, %edx + //0x000006c4 LBB0_77 + 0x41, 0x8d, 0x70, 0xff, //0x000006c4 leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x000006c8 andl %r8d, %esi + 0x0f, 0x85, 0x6b, 0x10, 0x00, 0x00, //0x000006cb jne LBB0_309 + 0x8d, 0x70, 0xff, //0x000006d1 leal $-1(%rax), %esi + 0x21, 0xc6, //0x000006d4 andl %eax, %esi + 0x0f, 0x85, 0x60, 0x10, 0x00, 0x00, //0x000006d6 jne LBB0_309 + 0x8d, 0x72, 0xff, //0x000006dc leal $-1(%rdx), %esi + 0x21, 0xd6, //0x000006df andl %edx, %esi + 0x0f, 0x85, 0x55, 0x10, 0x00, 0x00, //0x000006e1 jne LBB0_309 + 0x45, 0x85, 0xc0, //0x000006e7 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000006ea je LBB0_83 + 0x4c, 0x89, 0xf3, //0x000006f0 movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x000006f3 subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x000006f6 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x000006fa addq %rbx, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x000006fd cmpq $-1, %r11 + 0x0f, 0x85, 0xf5, 0x13, 0x00, 0x00, //0x00000701 jne LBB0_326 + 0x49, 0x89, 0xf3, //0x00000707 movq %rsi, %r11 + //0x0000070a LBB0_83 + 0x85, 0xc0, //0x0000070a testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000070c je LBB0_86 + 0x4c, 0x89, 0xf6, //0x00000712 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000715 subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000718 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x0000071b addq %rsi, %rax + 0x49, 0x83, 0xfd, 0xff, //0x0000071e cmpq $-1, %r13 + 0x0f, 0x85, 0xbd, 0x11, 0x00, 0x00, //0x00000722 jne LBB0_314 + 0x49, 0x89, 0xc5, //0x00000728 movq %rax, %r13 + //0x0000072b LBB0_86 + 0x85, 0xd2, //0x0000072b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000072d je LBB0_89 + 0x4c, 0x89, 0xf6, //0x00000733 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000736 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x00000739 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x0000073c addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x0000073f cmpq $-1, %r12 + 0x0f, 0x85, 0x9c, 0x11, 0x00, 0x00, //0x00000743 jne LBB0_314 + 0x49, 0x89, 0xc4, //0x00000749 movq %rax, %r12 + //0x0000074c LBB0_89 + 0x83, 0xf9, 0x10, //0x0000074c cmpl $16, %ecx + 0x0f, 0x85, 0x74, 0x04, 0x00, 0x00, //0x0000074f jne LBB0_147 + 0x49, 0x83, 0xc6, 0x10, //0x00000755 addq $16, %r14 + 0x49, 0x83, 0xc1, 0xf0, //0x00000759 addq $-16, %r9 + 0x49, 0x83, 0xf9, 0x0f, //0x0000075d cmpq $15, %r9 + 0x0f, 0x87, 0xe9, 0xfe, 0xff, 0xff, //0x00000761 ja LBB0_75 + 0x48, 0x85, 0xff, //0x00000767 testq %rdi, %rdi + 0x0f, 0x84, 0x7d, 0x04, 0x00, 0x00, //0x0000076a je LBB0_149 + //0x00000770 LBB0_92 + 0x48, 0x8b, 0x45, 0xb0, //0x00000770 movq $-80(%rbp), %rax + 0x48, 0x8d, 0x0c, 0x38, //0x00000774 leaq (%rax,%rdi), %rcx + 0x48, 0x8d, 0x35, 0x05, 0x21, 0x00, 0x00, //0x00000778 leaq $8453(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x0000077f jmp LBB0_96 + //0x00000784 LBB0_93 + 0x48, 0x89, 0xd8, //0x00000784 movq %rbx, %rax + 0x4c, 0x29, 0xd0, //0x00000787 subq %r10, %rax + 0x49, 0x83, 0xfc, 0xff, //0x0000078a cmpq $-1, %r12 + 0x0f, 0x85, 0x0f, 0x14, 0x00, 0x00, //0x0000078e jne LBB0_419 + 0x48, 0xff, 0xc8, //0x00000794 decq %rax + 0x49, 0x89, 0xc4, //0x00000797 movq %rax, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000079a .p2align 4, 0x90 + //0x000007a0 LBB0_95 + 0x48, 0x89, 0xd8, //0x000007a0 movq %rbx, %rax + 0x48, 0xff, 0xcf, //0x000007a3 decq %rdi + 0x0f, 0x84, 0x48, 0x11, 0x00, 0x00, //0x000007a6 je LBB0_315 + //0x000007ac LBB0_96 + 0x0f, 0xbe, 0x10, //0x000007ac movsbl (%rax), %edx + 0x83, 0xc2, 0xd5, //0x000007af addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000007b2 cmpl $58, %edx + 0x0f, 0x87, 0x2e, 0x04, 0x00, 0x00, //0x000007b5 ja LBB0_148 + 0x48, 0x8d, 0x58, 0x01, //0x000007bb leaq $1(%rax), %rbx + 0x48, 0x63, 0x14, 0x96, //0x000007bf movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000007c3 addq %rsi, %rdx + 0xff, 0xe2, //0x000007c6 jmpq *%rdx + //0x000007c8 LBB0_98 + 0x48, 0x89, 0xd8, //0x000007c8 movq %rbx, %rax + 0x4c, 0x29, 0xd0, //0x000007cb subq %r10, %rax + 0x49, 0x83, 0xfd, 0xff, //0x000007ce cmpq $-1, %r13 + 0x0f, 0x85, 0xcb, 0x13, 0x00, 0x00, //0x000007d2 jne LBB0_419 + 0x48, 0xff, 0xc8, //0x000007d8 decq %rax + 0x49, 0x89, 0xc5, //0x000007db movq %rax, %r13 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x000007de jmp LBB0_95 + //0x000007e3 LBB0_100 + 0x48, 0x89, 0xd8, //0x000007e3 movq %rbx, %rax + 0x4c, 0x29, 0xd0, //0x000007e6 subq %r10, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000007e9 cmpq $-1, %r11 + 0x0f, 0x85, 0xb0, 0x13, 0x00, 0x00, //0x000007ed jne LBB0_419 + 0x48, 0xff, 0xc8, //0x000007f3 decq %rax + 0x49, 0x89, 0xc3, //0x000007f6 movq %rax, %r11 + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x000007f9 jmp LBB0_95 + //0x000007fe LBB0_102 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x000007fe cmpq $4095, %r8 + 0x0f, 0x8f, 0x94, 0x1b, 0x00, 0x00, //0x00000805 jg LBB0_432 + 0x49, 0x8d, 0x40, 0x01, //0x0000080b leaq $1(%r8), %rax + 0x48, 0x89, 0x02, //0x0000080f movq %rax, (%rdx) + 0x4a, 0xc7, 0x44, 0xc2, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000812 movq $0, $8(%rdx,%r8,8) + 0xe9, 0x40, 0xf9, 0xff, 0xff, //0x0000081b jmp LBB0_1 + //0x00000820 LBB0_104 + 0x48, 0x89, 0xc8, //0x00000820 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000823 subq %r10, %rax + 0x0f, 0x84, 0x2b, 0x1d, 0x00, 0x00, //0x00000826 je LBB0_449 + 0x4f, 0x8d, 0x1c, 0x14, //0x0000082c leaq (%r12,%r10), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000830 cmpq $64, %rax + 0x0f, 0x82, 0xe7, 0x15, 0x00, 0x00, //0x00000834 jb LBB0_354 + 0x89, 0xc2, //0x0000083a movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x0000083c andl $63, %edx + 0x48, 0x89, 0x55, 0xa8, //0x0000083f movq %rdx, $-88(%rbp) + 0x4c, 0x29, 0xf9, //0x00000843 subq %r15, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00000846 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x0000084a andq $-64, %rcx + 0x4c, 0x01, 0xd1, //0x0000084e addq %r10, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000851 addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0x80, //0x00000855 movq %rcx, $-128(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000859 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00000860 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000863 .p2align 4, 0x90 + //0x00000870 LBB0_107 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00000870 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00000875 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x0000087b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x00000881 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x00000887 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x0000088b vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x0000088f vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000893 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x00000897 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x0000089b vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x0000089f vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000008a3 vpmovmskb %xmm2, %edx + 0xc5, 0xc9, 0x74, 0xd1, //0x000008a7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000008ab vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000008af vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000008b3 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x000008b7 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x000008bb shlq $16, %rbx + 0x48, 0x09, 0xde, //0x000008bf orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x000008c2 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x000008c6 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x000008ca shlq $32, %rcx + 0x48, 0x09, 0xce, //0x000008ce orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x000008d1 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x000008d5 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x000008d9 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x000008dd vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x000008e1 shlq $16, %rdi + 0x49, 0x09, 0xfd, //0x000008e5 orq %rdi, %r13 + 0xc5, 0x79, 0xd7, 0xe2, //0x000008e8 vpmovmskb %xmm2, %r12d + 0xc5, 0x81, 0x64, 0xd5, //0x000008ec vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x000008f0 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x000008f4 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x000008f8 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x000008fc orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000008ff vpmovmskb %xmm2, %edi + 0xc5, 0x81, 0x64, 0xd4, //0x00000903 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000907 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000090b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000090f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000913 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000916 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000091a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000091e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000922 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000926 shlq $16, %rdi + 0x49, 0x09, 0xfc, //0x0000092a orq %rdi, %r12 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000092d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe2, 0x30, //0x00000931 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x00000935 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00000939 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000093d jne LBB0_109 + 0x4d, 0x85, 0xed, //0x00000943 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000946 jne LBB0_124 + //0x0000094c LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x0000094c shlq $48, %r14 + 0x49, 0x09, 0xcc, //0x00000950 orq %rcx, %r12 + 0x48, 0x09, 0xd6, //0x00000953 orq %rdx, %rsi + 0x4c, 0x89, 0xe9, //0x00000956 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x00000959 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000095c jne LBB0_144 + 0x4d, 0x09, 0xf4, //0x00000962 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x00000965 testq %rsi, %rsi + 0x0f, 0x85, 0x35, 0x02, 0x00, 0x00, //0x00000968 jne LBB0_145 + //0x0000096e LBB0_111 + 0x4d, 0x85, 0xe4, //0x0000096e testq %r12, %r12 + 0x0f, 0x85, 0x84, 0x1a, 0x00, 0x00, //0x00000971 jne LBB0_425 + 0x48, 0x83, 0xc0, 0xc0, //0x00000977 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x0000097b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x0000097f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x00000983 ja LBB0_107 + 0xe9, 0x62, 0x0e, 0x00, 0x00, //0x00000989 jmp LBB0_113 + //0x0000098e LBB0_144 + 0x4c, 0x89, 0xc1, //0x0000098e movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00000991 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000994 andq %r13, %rcx + 0x48, 0x8d, 0x14, 0x09, //0x00000997 leaq (%rcx,%rcx), %rdx + 0x4c, 0x09, 0xc2, //0x0000099b orq %r8, %rdx + 0x48, 0x89, 0xd7, //0x0000099e movq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x000009a1 notq %rdi + 0x4c, 0x21, 0xef, //0x000009a4 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000009a7 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000009b1 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x000009b4 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x000009b7 addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x000009ba setb %r8b + 0x48, 0x01, 0xff, //0x000009be addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000009c1 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x000009cb xorq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x000009ce andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x000009d1 notq %rdi + 0x48, 0x21, 0xfe, //0x000009d4 andq %rdi, %rsi + 0x4d, 0x09, 0xf4, //0x000009d7 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x000009da testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x000009dd je LBB0_111 + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x000009e3 jmp LBB0_145 + //0x000009e8 LBB0_124 + 0x4c, 0x89, 0xdf, //0x000009e8 movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x000009eb subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x000009ef bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x000009f3 addq %rdi, %r9 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x000009f6 jmp LBB0_109 + //0x000009fb LBB0_125 + 0x4a, 0xc7, 0x04, 0xc2, 0x02, 0x00, 0x00, 0x00, //0x000009fb movq $2, (%rdx,%r8,8) + 0x48, 0x8b, 0x4f, 0x08, //0x00000a03 movq $8(%rdi), %rcx + 0xf6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x20, //0x00000a07 testb $32, $-136(%rbp) + 0x48, 0x89, 0x4d, 0xa0, //0x00000a0e movq %rcx, $-96(%rbp) + 0x0f, 0x85, 0x8d, 0x02, 0x00, 0x00, //0x00000a12 jne LBB0_160 + 0x49, 0x89, 0xcd, //0x00000a18 movq %rcx, %r13 + 0x4d, 0x29, 0xd5, //0x00000a1b subq %r10, %r13 + 0x0f, 0x84, 0x33, 0x1b, 0x00, 0x00, //0x00000a1e je LBB0_449 + 0x4f, 0x8d, 0x1c, 0x14, //0x00000a24 leaq (%r12,%r10), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000a28 cmpq $64, %r13 + 0x0f, 0x82, 0x10, 0x14, 0x00, 0x00, //0x00000a2c jb LBB0_357 + 0x44, 0x89, 0xe8, //0x00000a32 movl %r13d, %eax + 0x83, 0xe0, 0x3f, //0x00000a35 andl $63, %eax + 0x48, 0x89, 0x45, 0xa8, //0x00000a38 movq %rax, $-88(%rbp) + 0x4c, 0x29, 0xf9, //0x00000a3c subq %r15, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00000a3f addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000a43 andq $-64, %rcx + 0x4c, 0x01, 0xd1, //0x00000a47 addq %r10, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000a4a addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0x80, //0x00000a4e movq %rcx, $-128(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000a52 movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00000a59 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, //0x00000a5c .p2align 4, 0x90 + //0x00000a60 LBB0_129 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000a60 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000a65 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000a6b vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000a71 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000a77 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x00000a7b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x00000a7f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000a83 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000a87 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x00000a8b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x00000a8f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000a93 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000a97 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000a9b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000a9f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000aa3 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00000aa7 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00000aab vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x00000aaf vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000ab3 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x00000ab7 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000abb shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000abf shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000ac3 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000ac6 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x00000ac9 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x00000acd shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000ad1 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000ad5 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000ad8 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x00000adb orq %r8, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00000ade cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000ae2 jne LBB0_131 + 0x48, 0x85, 0xd2, //0x00000ae8 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000aeb jne LBB0_140 + //0x00000af1 LBB0_131 + 0x48, 0x09, 0xdf, //0x00000af1 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000af4 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x00000af7 orq %r12, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000afa jne LBB0_141 + //0x00000b00 LBB0_132 + 0x48, 0x85, 0xff, //0x00000b00 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000b03 jne LBB0_142 + //0x00000b09 LBB0_133 + 0x49, 0x83, 0xc5, 0xc0, //0x00000b09 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000b0d addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000b11 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000b15 ja LBB0_129 + 0xe9, 0xf1, 0x0d, 0x00, 0x00, //0x00000b1b jmp LBB0_134 + //0x00000b20 LBB0_140 + 0x4c, 0x89, 0xd8, //0x00000b20 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000b23 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000b27 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x00000b2b addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x00000b2e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b31 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x00000b34 orq %r12, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000b37 je LBB0_132 + //0x00000b3d LBB0_141 + 0x4c, 0x89, 0xe0, //0x00000b3d movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00000b40 notq %rax + 0x48, 0x21, 0xd0, //0x00000b43 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000b46 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe1, //0x00000b4a orq %r12, %rcx + 0x48, 0x89, 0xce, //0x00000b4d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000b50 notq %rsi + 0x48, 0x21, 0xd6, //0x00000b53 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000b56 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000b60 andq %rdx, %rsi + 0x45, 0x31, 0xe4, //0x00000b63 xorl %r12d, %r12d + 0x48, 0x01, 0xc6, //0x00000b66 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc4, //0x00000b69 setb %r12b + 0x48, 0x01, 0xf6, //0x00000b6d addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000b70 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000b7a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000b7d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000b80 notq %rsi + 0x48, 0x21, 0xf7, //0x00000b83 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000b86 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000b89 je LBB0_133 + //0x00000b8f LBB0_142 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000b8f bsfq %rdi, %rax + //0x00000b93 LBB0_143 + 0x4c, 0x03, 0x5d, 0x90, //0x00000b93 addq $-112(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000b97 addq %rax, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000b9a movq $-48(%rbp), %r12 + 0xe9, 0x8f, 0x03, 0x00, 0x00, //0x00000b9e jmp LBB0_193 + //0x00000ba3 LBB0_145 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000ba3 bsfq %rsi, %rax + 0x4d, 0x85, 0xe4, //0x00000ba7 testq %r12, %r12 + 0x0f, 0x84, 0xf9, 0x02, 0x00, 0x00, //0x00000baa je LBB0_184 + 0x49, 0x0f, 0xbc, 0xcc, //0x00000bb0 bsfq %r12, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000bb4 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000bb8 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000bbb cmpq %rax, %rcx + 0x0f, 0x83, 0xfa, 0x02, 0x00, 0x00, //0x00000bbe jae LBB0_185 + 0xe9, 0x97, 0x19, 0x00, 0x00, //0x00000bc4 jmp LBB0_308 + //0x00000bc9 LBB0_147 + 0x49, 0x01, 0xce, //0x00000bc9 addq %rcx, %r14 + 0x4c, 0x89, 0x75, 0xb0, //0x00000bcc movq %r14, $-80(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000bd0 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000bd7 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000bda movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000bde jne LBB0_150 + 0xe9, 0xeb, 0x17, 0x00, 0x00, //0x00000be4 jmp LBB0_421 + //0x00000be9 LBB0_148 + 0x48, 0x89, 0x45, 0xb0, //0x00000be9 movq %rax, $-80(%rbp) + //0x00000bed LBB0_149 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000bed movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000bf4 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000bf7 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xd3, 0x17, 0x00, 0x00, //0x00000bfb je LBB0_421 + //0x00000c01 LBB0_150 + 0x4d, 0x85, 0xe4, //0x00000c01 testq %r12, %r12 + 0x0f, 0x84, 0xca, 0x17, 0x00, 0x00, //0x00000c04 je LBB0_421 + 0x4d, 0x85, 0xdb, //0x00000c0a testq %r11, %r11 + 0x0f, 0x84, 0xc1, 0x17, 0x00, 0x00, //0x00000c0d je LBB0_421 + 0x48, 0x8b, 0x4d, 0xb0, //0x00000c13 movq $-80(%rbp), %rcx + 0x4c, 0x29, 0xd1, //0x00000c17 subq %r10, %rcx + 0x48, 0x8d, 0x41, 0xff, //0x00000c1a leaq $-1(%rcx), %rax + 0x49, 0x39, 0xc5, //0x00000c1e cmpq %rax, %r13 + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00000c21 je LBB0_158 + 0x49, 0x39, 0xc3, //0x00000c27 cmpq %rax, %r11 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00000c2a je LBB0_158 + 0x49, 0x39, 0xc4, //0x00000c30 cmpq %rax, %r12 + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000c33 je LBB0_158 + 0x4d, 0x85, 0xe4, //0x00000c39 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xb8, //0x00000c3c movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000c40 movq $-64(%rbp), %rdi + 0x0f, 0x8e, 0xa2, 0x02, 0x00, 0x00, //0x00000c44 jle LBB0_188 + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000c4a leaq $-1(%r12), %rax + 0x49, 0x39, 0xc5, //0x00000c4f cmpq %rax, %r13 + 0x0f, 0x84, 0x94, 0x02, 0x00, 0x00, //0x00000c52 je LBB0_188 + 0x49, 0xf7, 0xd4, //0x00000c58 notq %r12 + 0x4c, 0x89, 0xe1, //0x00000c5b movq %r12, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000c5e movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc9, //0x00000c62 testq %rcx, %rcx + 0x0f, 0x89, 0x1d, 0x00, 0x00, 0x00, //0x00000c65 jns LBB0_268 + 0xe9, 0x61, 0x17, 0x00, 0x00, //0x00000c6b jmp LBB0_420 + //0x00000c70 LBB0_158 + 0x48, 0xf7, 0xd9, //0x00000c70 negq %rcx + //0x00000c73 LBB0_159 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000c73 movq $-48(%rbp), %r12 + 0x48, 0x8b, 0x55, 0xb8, //0x00000c77 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000c7b movq $-64(%rbp), %rdi + 0x48, 0x85, 0xc9, //0x00000c7f testq %rcx, %rcx + 0x0f, 0x88, 0x49, 0x17, 0x00, 0x00, //0x00000c82 js LBB0_420 + //0x00000c88 LBB0_268 + 0x4c, 0x01, 0xf9, //0x00000c88 addq %r15, %rcx + 0x49, 0x89, 0xce, //0x00000c8b movq %rcx, %r14 + //0x00000c8e LBB0_269 + 0x4d, 0x89, 0xf3, //0x00000c8e movq %r14, %r11 + 0x4c, 0x89, 0x36, //0x00000c91 movq %r14, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000c94 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00000c97 testq %r15, %r15 + 0x0f, 0x89, 0xc3, 0xf4, 0xff, 0xff, //0x00000c9a jns LBB0_2 + 0xe9, 0x3f, 0x17, 0x00, 0x00, //0x00000ca0 jmp LBB0_424 + //0x00000ca5 LBB0_160 + 0x48, 0x89, 0xc8, //0x00000ca5 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000ca8 subq %r10, %rax + 0x0f, 0x84, 0xa6, 0x18, 0x00, 0x00, //0x00000cab je LBB0_449 + 0x4f, 0x8d, 0x1c, 0x14, //0x00000cb1 leaq (%r12,%r10), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000cb5 cmpq $64, %rax + 0x0f, 0x82, 0x9c, 0x11, 0x00, 0x00, //0x00000cb9 jb LBB0_358 + 0x89, 0xc2, //0x00000cbf movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x00000cc1 andl $63, %edx + 0x48, 0x89, 0x55, 0xa8, //0x00000cc4 movq %rdx, $-88(%rbp) + 0x49, 0x89, 0xcc, //0x00000cc8 movq %rcx, %r12 + 0x4d, 0x29, 0xfc, //0x00000ccb subq %r15, %r12 + 0x49, 0x83, 0xc4, 0xbf, //0x00000cce addq $-65, %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00000cd2 andq $-64, %r12 + 0x4d, 0x01, 0xd4, //0x00000cd6 addq %r10, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x00000cd9 addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000cdd movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00000ce4 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ce7 .p2align 4, 0x90 + //0x00000cf0 LBB0_163 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00000cf0 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00000cf5 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x00000cfb vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x00000d01 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x00000d07 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x00000d0b vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x00000d0f vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d13 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x00000d17 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d1b vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x00000d1f vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00000d23 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x00000d27 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x00000d2b vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x00000d2f vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d33 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000d37 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000d3b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x00000d3f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d42 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000d46 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x00000d4a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000d4e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d51 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000d55 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000d59 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x00000d5d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00000d61 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000d65 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d68 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x00000d6c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000d70 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000d74 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000d78 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x00000d7c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d7f vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00000d83 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000d87 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000d8b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x00000d8f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000d93 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d96 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x00000d9a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x00000d9e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000da2 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000da6 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00000daa orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x00000dad vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00000db1 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00000db5 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00000db9 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000dbd jne LBB0_165 + 0x4d, 0x85, 0xed, //0x00000dc3 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00000dc6 jne LBB0_180 + //0x00000dcc LBB0_165 + 0x49, 0xc1, 0xe6, 0x30, //0x00000dcc shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00000dd0 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00000dd3 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00000dd6 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x00000dd9 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000ddc jne LBB0_181 + 0x4c, 0x09, 0xf2, //0x00000de2 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000de5 testq %rsi, %rsi + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x00000de8 jne LBB0_182 + //0x00000dee LBB0_167 + 0x48, 0x85, 0xd2, //0x00000dee testq %rdx, %rdx + 0x0f, 0x85, 0x17, 0x16, 0x00, 0x00, //0x00000df1 jne LBB0_427 + 0x48, 0x83, 0xc0, 0xc0, //0x00000df7 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000dfb addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000dff cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x00000e03 ja LBB0_163 + 0xe9, 0x7f, 0x0b, 0x00, 0x00, //0x00000e09 jmp LBB0_169 + //0x00000e0e LBB0_181 + 0x4c, 0x89, 0xc1, //0x00000e0e movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00000e11 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000e14 andq %r13, %rcx + 0x4c, 0x89, 0x55, 0xb0, //0x00000e17 movq %r10, $-80(%rbp) + 0x4c, 0x8d, 0x14, 0x09, //0x00000e1b leaq (%rcx,%rcx), %r10 + 0x4d, 0x09, 0xc2, //0x00000e1f orq %r8, %r10 + 0x4c, 0x89, 0xd3, //0x00000e22 movq %r10, %rbx + 0x48, 0xf7, 0xd3, //0x00000e25 notq %rbx + 0x4c, 0x21, 0xeb, //0x00000e28 andq %r13, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000e2b movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00000e35 andq %rdi, %rbx + 0x45, 0x31, 0xc0, //0x00000e38 xorl %r8d, %r8d + 0x48, 0x01, 0xcb, //0x00000e3b addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc0, //0x00000e3e setb %r8b + 0x48, 0x01, 0xdb, //0x00000e42 addq %rbx, %rbx + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000e45 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcb, //0x00000e4f xorq %rcx, %rbx + 0x4c, 0x21, 0xd3, //0x00000e52 andq %r10, %rbx + 0x4c, 0x8b, 0x55, 0xb0, //0x00000e55 movq $-80(%rbp), %r10 + 0x48, 0xf7, 0xd3, //0x00000e59 notq %rbx + 0x48, 0x21, 0xde, //0x00000e5c andq %rbx, %rsi + 0x4c, 0x09, 0xf2, //0x00000e5f orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e62 testq %rsi, %rsi + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00000e65 je LBB0_167 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000e6b jmp LBB0_182 + //0x00000e70 LBB0_180 + 0x4c, 0x89, 0xdb, //0x00000e70 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00000e73 subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000e77 bsfq %r13, %r9 + 0x49, 0x01, 0xd9, //0x00000e7b addq %rbx, %r9 + 0xe9, 0x49, 0xff, 0xff, 0xff, //0x00000e7e jmp LBB0_165 + //0x00000e83 LBB0_182 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000e83 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000e87 testq %rdx, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000e8a movq $-48(%rbp), %r12 + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000e8e je LBB0_191 + 0x48, 0x0f, 0xbc, 0xca, //0x00000e94 bsfq %rdx, %rcx + 0x4d, 0x29, 0xe3, //0x00000e98 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000e9b cmpq %rax, %rcx + 0x0f, 0x83, 0x89, 0x00, 0x00, 0x00, //0x00000e9e jae LBB0_192 + 0xe9, 0xb7, 0x16, 0x00, 0x00, //0x00000ea4 jmp LBB0_308 + //0x00000ea9 LBB0_184 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000ea9 movl $64, %ecx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000eae movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000eb2 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000eb5 cmpq %rax, %rcx + 0x0f, 0x82, 0xa2, 0x16, 0x00, 0x00, //0x00000eb8 jb LBB0_308 + //0x00000ebe LBB0_185 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000ebe leaq $1(%r11,%rax), %r11 + //0x00000ec3 LBB0_186 + 0x4d, 0x85, 0xdb, //0x00000ec3 testq %r11, %r11 + 0x0f, 0x88, 0xdf, 0x14, 0x00, 0x00, //0x00000ec6 js LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00000ecc movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000ed0 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000ed3 movq %r15, %rax + 0x4d, 0x85, 0xd2, //0x00000ed6 testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xb8, //0x00000ed9 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000edd movq $-64(%rbp), %rdi + 0x0f, 0x8f, 0x7c, 0xf2, 0xff, 0xff, //0x00000ee1 jg LBB0_2 + 0xe9, 0xf8, 0x14, 0x00, 0x00, //0x00000ee7 jmp LBB0_424 + //0x00000eec LBB0_188 + 0x4c, 0x89, 0xd8, //0x00000eec movq %r11, %rax + 0x4c, 0x09, 0xe8, //0x00000eef orq %r13, %rax + 0x4d, 0x39, 0xeb, //0x00000ef2 cmpq %r13, %r11 + 0x0f, 0x8c, 0x55, 0x05, 0x00, 0x00, //0x00000ef5 jl LBB0_267 + 0x48, 0x85, 0xc0, //0x00000efb testq %rax, %rax + 0x0f, 0x88, 0x4c, 0x05, 0x00, 0x00, //0x00000efe js LBB0_267 + 0x49, 0xf7, 0xd3, //0x00000f04 notq %r11 + 0x4c, 0x89, 0xd9, //0x00000f07 movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f0a movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc9, //0x00000f0e testq %rcx, %rcx + 0x0f, 0x89, 0x71, 0xfd, 0xff, 0xff, //0x00000f11 jns LBB0_268 + 0xe9, 0xb5, 0x14, 0x00, 0x00, //0x00000f17 jmp LBB0_420 + //0x00000f1c LBB0_191 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f1c movl $64, %ecx + 0x4d, 0x29, 0xe3, //0x00000f21 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000f24 cmpq %rax, %rcx + 0x0f, 0x82, 0x33, 0x16, 0x00, 0x00, //0x00000f27 jb LBB0_308 + //0x00000f2d LBB0_192 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f2d leaq $1(%r11,%rax), %r11 + //0x00000f32 LBB0_193 + 0x4d, 0x85, 0xdb, //0x00000f32 testq %r11, %r11 + 0x0f, 0x88, 0x70, 0x14, 0x00, 0x00, //0x00000f35 js LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f3b movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000f3f movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000f42 movq %r15, %rax + 0x4d, 0x85, 0xd2, //0x00000f45 testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xb8, //0x00000f48 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000f4c movq $-64(%rbp), %rdi + 0x0f, 0x8e, 0x8e, 0x14, 0x00, 0x00, //0x00000f50 jle LBB0_424 + 0x48, 0x8b, 0x02, //0x00000f56 movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000f59 cmpq $4095, %rax + 0x0f, 0x8f, 0x3a, 0x14, 0x00, 0x00, //0x00000f5f jg LBB0_432 + 0x48, 0x8d, 0x48, 0x01, //0x00000f65 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x00000f69 movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00000f6c movq $4, $8(%rdx,%rax,8) + 0xe9, 0xe9, 0xf1, 0xff, 0xff, //0x00000f75 jmp LBB0_2 + //0x00000f7a LBB0_197 + 0x4c, 0x8b, 0x47, 0x08, //0x00000f7a movq $8(%rdi), %r8 + 0xf6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x20, //0x00000f7e testb $32, $-136(%rbp) + 0x4c, 0x89, 0x45, 0xa0, //0x00000f85 movq %r8, $-96(%rbp) + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00000f89 jne LBB0_270 + 0x4d, 0x89, 0xc4, //0x00000f8f movq %r8, %r12 + 0x4d, 0x29, 0xf4, //0x00000f92 subq %r14, %r12 + 0x0f, 0x84, 0xd7, 0x15, 0x00, 0x00, //0x00000f95 je LBB0_448 + 0x48, 0x8b, 0x45, 0xd0, //0x00000f9b movq $-48(%rbp), %rax + 0x4e, 0x8d, 0x1c, 0x30, //0x00000f9f leaq (%rax,%r14), %r11 + 0x49, 0x83, 0xfc, 0x40, //0x00000fa3 cmpq $64, %r12 + 0x4c, 0x89, 0x75, 0xb0, //0x00000fa7 movq %r14, $-80(%rbp) + 0x0f, 0x82, 0xea, 0x0e, 0x00, 0x00, //0x00000fab jb LBB0_360 + 0x44, 0x89, 0xe0, //0x00000fb1 movl %r12d, %eax + 0x83, 0xe0, 0x3f, //0x00000fb4 andl $63, %eax + 0x48, 0x89, 0x45, 0xa8, //0x00000fb7 movq %rax, $-88(%rbp) + 0x4d, 0x29, 0xf8, //0x00000fbb subq %r15, %r8 + 0x49, 0x83, 0xc0, 0xbf, //0x00000fbe addq $-65, %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000fc2 andq $-64, %r8 + 0x4d, 0x01, 0xf0, //0x00000fc6 addq %r14, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000fc9 addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fcd movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00000fd4 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fd7 .p2align 4, 0x90 + //0x00000fe0 LBB0_201 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000fe0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000fe5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000feb vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000ff1 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000ff7 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x00000ffb vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x00000fff vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00001003 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00001007 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000100b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000100f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0x79, 0xd7, 0xef, //0x00001013 vpmovmskb %xmm7, %r13d + 0xc5, 0xe9, 0x74, 0xd1, //0x00001017 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000101b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000101f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001023 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00001027 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000102b vpmovmskb %xmm2, %ebx + 0xc5, 0xc9, 0x74, 0xd1, //0x0000102f vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001033 vpmovmskb %xmm2, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x00001037 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x0000103b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000103f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001043 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001046 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x00001049 shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000104d shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001051 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001055 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x00001058 orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000105b orq %r14, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000105e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001062 jne LBB0_203 + 0x48, 0x85, 0xd2, //0x00001068 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000106b jne LBB0_212 + //0x00001071 LBB0_203 + 0x4c, 0x09, 0xef, //0x00001071 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001074 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x00001077 orq %r10, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000107a jne LBB0_213 + //0x00001080 LBB0_204 + 0x48, 0x85, 0xff, //0x00001080 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00001083 jne LBB0_214 + //0x00001089 LBB0_205 + 0x49, 0x83, 0xc4, 0xc0, //0x00001089 addq $-64, %r12 + 0x49, 0x83, 0xc3, 0x40, //0x0000108d addq $64, %r11 + 0x49, 0x83, 0xfc, 0x3f, //0x00001091 cmpq $63, %r12 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00001095 ja LBB0_201 + 0xe9, 0x4e, 0x0b, 0x00, 0x00, //0x0000109b jmp LBB0_206 + //0x000010a0 LBB0_212 + 0x4c, 0x89, 0xd8, //0x000010a0 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000010a3 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x000010a7 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x000010ab addq %rax, %r9 + 0x4c, 0x09, 0xef, //0x000010ae orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x000010b1 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x000010b4 orq %r10, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000010b7 je LBB0_204 + //0x000010bd LBB0_213 + 0x4c, 0x89, 0xd0, //0x000010bd movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000010c0 notq %rax + 0x48, 0x21, 0xd0, //0x000010c3 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000010c6 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xd1, //0x000010ca orq %r10, %rcx + 0x48, 0x89, 0xce, //0x000010cd movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000010d0 notq %rsi + 0x48, 0x21, 0xd6, //0x000010d3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000010d6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000010e0 andq %rdx, %rsi + 0x45, 0x31, 0xd2, //0x000010e3 xorl %r10d, %r10d + 0x48, 0x01, 0xc6, //0x000010e6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc2, //0x000010e9 setb %r10b + 0x48, 0x01, 0xf6, //0x000010ed addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000010f0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x000010fa xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x000010fd andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00001100 notq %rsi + 0x48, 0x21, 0xf7, //0x00001103 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00001106 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00001109 je LBB0_205 + //0x0000110f LBB0_214 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000110f bsfq %rdi, %rax + //0x00001113 LBB0_215 + 0x4c, 0x03, 0x5d, 0x90, //0x00001113 addq $-112(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00001117 addq %rax, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000111a movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x55, 0xb0, //0x0000111e movq $-80(%rbp), %r10 + 0xe9, 0x9c, 0xfd, 0xff, 0xff, //0x00001122 jmp LBB0_186 + //0x00001127 LBB0_216 + 0x4c, 0x8b, 0x57, 0x08, //0x00001127 movq $8(%rdi), %r10 + 0x4d, 0x29, 0xf2, //0x0000112b subq %r14, %r10 + 0x0f, 0x84, 0xf0, 0x12, 0x00, 0x00, //0x0000112e je LBB0_429 + 0x4c, 0x89, 0x75, 0xb0, //0x00001134 movq %r14, $-80(%rbp) + 0x4d, 0x01, 0xf4, //0x00001138 addq %r14, %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x0000113b cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001140 jne LBB0_221 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001146 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x0000114c cmpq $1, %r10 + 0x0f, 0x84, 0xb1, 0x05, 0x00, 0x00, //0x00001150 je LBB0_305 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001156 movb $1(%r12), %al + 0x04, 0xd2, //0x0000115b addb $-46, %al + 0x3c, 0x37, //0x0000115d cmpb $55, %al + 0x0f, 0x87, 0xa2, 0x05, 0x00, 0x00, //0x0000115f ja LBB0_305 + 0x0f, 0xb6, 0xc0, //0x00001165 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001168 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00001172 btq %rax, %rcx + 0x0f, 0x83, 0x8b, 0x05, 0x00, 0x00, //0x00001176 jae LBB0_305 + //0x0000117c LBB0_221 + 0x49, 0x83, 0xfa, 0x10, //0x0000117c cmpq $16, %r10 + 0x0f, 0x82, 0xee, 0x0c, 0x00, 0x00, //0x00001180 jb LBB0_359 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001186 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x0000118a movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000118d andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x00001191 leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001196 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xa8, 0xff, 0xff, 0xff, 0xff, //0x0000119a movq $-1, $-88(%rbp) + 0x48, 0xc7, 0x45, 0xa0, 0xff, 0xff, 0xff, 0xff, //0x000011a2 movq $-1, $-96(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000011aa movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x000011b1 movq %r12, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011b4 .p2align 4, 0x90 + //0x000011c0 LBB0_223 + 0xc4, 0xc1, 0x7a, 0x6f, 0x55, 0x00, //0x000011c0 vmovdqu (%r13), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x000011c6 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x000011cb vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000011cf vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x000011d3 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x000011d7 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000011db vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x000011df vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x000011e3 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x000011e7 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x000011eb vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x000011ef vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000011f3 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000011f7 vpmovmskb %xmm2, %eax + 0xc5, 0xf9, 0xd7, 0xde, //0x000011fb vpmovmskb %xmm6, %ebx + 0xc5, 0xf9, 0xd7, 0xd5, //0x000011ff vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x00001203 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001207 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x0000120c leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x00001213 xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x00001216 bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x0000121a cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000121d je LBB0_225 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00001223 movl $-1, %edi + 0xd3, 0xe7, //0x00001228 shll %cl, %edi + 0xf7, 0xd7, //0x0000122a notl %edi + 0x21, 0xf8, //0x0000122c andl %edi, %eax + 0x21, 0xfb, //0x0000122e andl %edi, %ebx + 0x21, 0xd7, //0x00001230 andl %edx, %edi + 0x89, 0xfa, //0x00001232 movl %edi, %edx + //0x00001234 LBB0_225 + 0x8d, 0x78, 0xff, //0x00001234 leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001237 andl %eax, %edi + 0x0f, 0x85, 0x88, 0x09, 0x00, 0x00, //0x00001239 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x0000123f leal $-1(%rbx), %edi + 0x21, 0xdf, //0x00001242 andl %ebx, %edi + 0x0f, 0x85, 0x7d, 0x09, 0x00, 0x00, //0x00001244 jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x0000124a leal $-1(%rdx), %edi + 0x21, 0xd7, //0x0000124d andl %edx, %edi + 0x0f, 0x85, 0x72, 0x09, 0x00, 0x00, //0x0000124f jne LBB0_337 + 0x85, 0xc0, //0x00001255 testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001257 je LBB0_231 + 0x4c, 0x89, 0xef, //0x0000125d movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001260 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x00001263 bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001267 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000126a cmpq $-1, %r14 + 0x0f, 0x85, 0x5d, 0x09, 0x00, 0x00, //0x0000126e jne LBB0_338 + 0x4d, 0x89, 0xde, //0x00001274 movq %r11, %r14 + //0x00001277 LBB0_231 + 0x85, 0xdb, //0x00001277 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001279 je LBB0_234 + 0x4c, 0x89, 0xe8, //0x0000127f movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x00001282 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x00001285 bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001289 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xa0, 0xff, //0x0000128c cmpq $-1, $-96(%rbp) + 0x0f, 0x85, 0x3a, 0x09, 0x00, 0x00, //0x00001291 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xa0, //0x00001297 movq %r11, $-96(%rbp) + //0x0000129b LBB0_234 + 0x85, 0xd2, //0x0000129b testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000129d je LBB0_237 + 0x4c, 0x89, 0xe8, //0x000012a3 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x000012a6 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x000012a9 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x000012ad addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xa8, 0xff, //0x000012b0 cmpq $-1, $-88(%rbp) + 0x0f, 0x85, 0x16, 0x09, 0x00, 0x00, //0x000012b5 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xa8, //0x000012bb movq %r11, $-88(%rbp) + //0x000012bf LBB0_237 + 0x83, 0xf9, 0x10, //0x000012bf cmpl $16, %ecx + 0x0f, 0x85, 0xb1, 0x03, 0x00, 0x00, //0x000012c2 jne LBB0_293 + 0x49, 0x83, 0xc5, 0x10, //0x000012c8 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000012cc addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000012d0 cmpq $15, %r10 + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x000012d4 ja LBB0_223 + 0x4d, 0x85, 0xc9, //0x000012da testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xb4, 0x14, 0x00, 0x00, //0x000012dd leaq $5300(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xa0, //0x000012e4 movq $-96(%rbp), %rbx + 0x48, 0x8b, 0x4d, 0xa8, //0x000012e8 movq $-88(%rbp), %rcx + 0x0f, 0x84, 0x95, 0x03, 0x00, 0x00, //0x000012ec je LBB0_294 + //0x000012f2 LBB0_240 + 0x4b, 0x8d, 0x3c, 0x08, //0x000012f2 leaq (%r8,%r9), %rdi + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x000012f6 jmp LBB0_244 + //0x000012fb LBB0_241 + 0x49, 0x89, 0xc3, //0x000012fb movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000012fe subq %r12, %r11 + 0x48, 0x83, 0xf9, 0xff, //0x00001301 cmpq $-1, %rcx + 0x0f, 0x85, 0x2f, 0x0b, 0x00, 0x00, //0x00001305 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x0000130b decq %r11 + 0x4c, 0x89, 0xd9, //0x0000130e movq %r11, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001311 .p2align 4, 0x90 + //0x00001320 LBB0_243 + 0x49, 0x89, 0xc0, //0x00001320 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x00001323 decq %r9 + 0x0f, 0x84, 0x9f, 0x0a, 0x00, 0x00, //0x00001326 je LBB0_341 + //0x0000132c LBB0_244 + 0x41, 0x0f, 0xbe, 0x10, //0x0000132c movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x00001330 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00001333 cmpl $58, %edx + 0x0f, 0x87, 0x4b, 0x03, 0x00, 0x00, //0x00001336 ja LBB0_294 + 0x49, 0x8d, 0x40, 0x01, //0x0000133c leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001340 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001344 addq %rsi, %rdx + 0xff, 0xe2, //0x00001347 jmpq *%rdx + //0x00001349 LBB0_246 + 0x49, 0x89, 0xc3, //0x00001349 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000134c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000134f cmpq $-1, %rbx + 0x0f, 0x85, 0xe1, 0x0a, 0x00, 0x00, //0x00001353 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001359 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000135c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000135f jmp LBB0_243 + //0x00001364 LBB0_248 + 0x49, 0x89, 0xc3, //0x00001364 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001367 subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000136a cmpq $-1, %r14 + 0x0f, 0x85, 0xc6, 0x0a, 0x00, 0x00, //0x0000136e jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001374 decq %r11 + 0x4d, 0x89, 0xde, //0x00001377 movq %r11, %r14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000137a jmp LBB0_243 + //0x0000137f LBB0_250 + 0x48, 0x8b, 0x02, //0x0000137f movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001382 cmpq $4095, %rax + 0x0f, 0x8f, 0x11, 0x10, 0x00, 0x00, //0x00001388 jg LBB0_432 + 0x48, 0x8d, 0x48, 0x01, //0x0000138e leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x00001392 movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001395 movq $5, $8(%rdx,%rax,8) + 0x4d, 0x89, 0xf3, //0x0000139e movq %r14, %r11 + 0xe9, 0xbd, 0xed, 0xff, 0xff, //0x000013a1 jmp LBB0_2 + //0x000013a6 LBB0_252 + 0x48, 0x8b, 0x4f, 0x08, //0x000013a6 movq $8(%rdi), %rcx + 0x48, 0x8d, 0x59, 0xfc, //0x000013aa leaq $-4(%rcx), %rbx + 0x49, 0x39, 0xdf, //0x000013ae cmpq %rbx, %r15 + 0x0f, 0x83, 0x3c, 0x10, 0x00, 0x00, //0x000013b1 jae LBB0_431 + 0x43, 0x8b, 0x0c, 0x34, //0x000013b7 movl (%r12,%r14), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x000013bb cmpl $1702063201, %ecx + 0x0f, 0x85, 0x6c, 0x10, 0x00, 0x00, //0x000013c1 jne LBB0_433 + 0x4d, 0x8d, 0x5f, 0x05, //0x000013c7 leaq $5(%r15), %r11 + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x000013cb jmp LBB0_264 + //0x000013d0 LBB0_255 + 0x48, 0x8b, 0x4f, 0x08, //0x000013d0 movq $8(%rdi), %rcx + 0x48, 0x8d, 0x59, 0xfd, //0x000013d4 leaq $-3(%rcx), %rbx + 0x49, 0x39, 0xdf, //0x000013d8 cmpq %rbx, %r15 + 0x0f, 0x83, 0x12, 0x10, 0x00, 0x00, //0x000013db jae LBB0_431 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x000013e1 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x000013e8 je LBB0_263 + 0xe9, 0x95, 0x10, 0x00, 0x00, //0x000013ee jmp LBB0_257 + //0x000013f3 LBB0_261 + 0x48, 0x8b, 0x4f, 0x08, //0x000013f3 movq $8(%rdi), %rcx + 0x48, 0x8d, 0x59, 0xfd, //0x000013f7 leaq $-3(%rcx), %rbx + 0x49, 0x39, 0xdf, //0x000013fb cmpq %rbx, %r15 + 0x0f, 0x83, 0xef, 0x0f, 0x00, 0x00, //0x000013fe jae LBB0_431 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x00001404 cmpl $1702195828, (%r10) + 0x0f, 0x85, 0xc9, 0x10, 0x00, 0x00, //0x0000140b jne LBB0_438 + //0x00001411 LBB0_263 + 0x4d, 0x8d, 0x5f, 0x04, //0x00001411 leaq $4(%r15), %r11 + //0x00001415 LBB0_264 + 0x4c, 0x89, 0x1e, //0x00001415 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001418 movq %r15, %rax + 0x4d, 0x85, 0xf6, //0x0000141b testq %r14, %r14 + 0x0f, 0x8f, 0x3f, 0xed, 0xff, 0xff, //0x0000141e jg LBB0_2 + 0xe9, 0xbb, 0x0f, 0x00, 0x00, //0x00001424 jmp LBB0_424 + //0x00001429 LBB0_265 + 0x48, 0x8b, 0x02, //0x00001429 movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000142c cmpq $4095, %rax + 0x0f, 0x8f, 0x67, 0x0f, 0x00, 0x00, //0x00001432 jg LBB0_432 + 0x48, 0x8d, 0x48, 0x01, //0x00001438 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x0000143c movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x0000143f movq $6, $8(%rdx,%rax,8) + 0x4d, 0x89, 0xf3, //0x00001448 movq %r14, %r11 + 0xe9, 0x13, 0xed, 0xff, 0xff, //0x0000144b jmp LBB0_2 + //0x00001450 LBB0_267 + 0x48, 0x85, 0xc0, //0x00001450 testq %rax, %rax + 0x49, 0x8d, 0x45, 0xff, //0x00001453 leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x00001457 notq %r13 + 0x4c, 0x0f, 0x48, 0xe9, //0x0000145a cmovsq %rcx, %r13 + 0x49, 0x39, 0xc3, //0x0000145e cmpq %rax, %r11 + 0x49, 0x0f, 0x44, 0xcd, //0x00001461 cmoveq %r13, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001465 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc9, //0x00001469 testq %rcx, %rcx + 0x0f, 0x89, 0x16, 0xf8, 0xff, 0xff, //0x0000146c jns LBB0_268 + 0xe9, 0x5a, 0x0f, 0x00, 0x00, //0x00001472 jmp LBB0_420 + //0x00001477 LBB0_270 + 0x4c, 0x89, 0xc0, //0x00001477 movq %r8, %rax + 0x4d, 0x89, 0xf2, //0x0000147a movq %r14, %r10 + 0x4c, 0x29, 0xf0, //0x0000147d subq %r14, %rax + 0x0f, 0x84, 0xd1, 0x10, 0x00, 0x00, //0x00001480 je LBB0_449 + 0x4f, 0x8d, 0x1c, 0x14, //0x00001486 leaq (%r12,%r10), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x0000148a cmpq $64, %rax + 0x0f, 0x82, 0x20, 0x0a, 0x00, 0x00, //0x0000148e jb LBB0_361 + 0x89, 0xc1, //0x00001494 movl %eax, %ecx + 0x83, 0xe1, 0x3f, //0x00001496 andl $63, %ecx + 0x48, 0x89, 0x4d, 0xa8, //0x00001499 movq %rcx, $-88(%rbp) + 0x4d, 0x89, 0xc4, //0x0000149d movq %r8, %r12 + 0x4d, 0x29, 0xfc, //0x000014a0 subq %r15, %r12 + 0x49, 0x83, 0xc4, 0xbf, //0x000014a3 addq $-65, %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x000014a7 andq $-64, %r12 + 0x4d, 0x01, 0xd4, //0x000014ab addq %r10, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x000014ae addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000014b2 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x000014b9 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x000014bc .p2align 4, 0x90 + //0x000014c0 LBB0_273 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x000014c0 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x000014c5 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x000014cb vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x000014d1 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x000014d7 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000014db vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x000014df vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000014e3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000014e7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000014eb vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000014ef vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000014f3 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x000014f7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000014fb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000014ff vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00001503 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00001507 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x0000150b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x0000150f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00001512 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00001516 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x0000151a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x0000151e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00001521 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00001525 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00001529 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x0000152d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00001531 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00001535 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00001538 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x0000153c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00001540 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00001544 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00001548 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000154c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000154f vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00001553 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001557 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000155b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000155f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00001563 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00001566 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000156a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000156e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001572 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00001576 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x0000157a orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x0000157d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001581 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00001585 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001589 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000158d jne LBB0_275 + 0x4d, 0x85, 0xed, //0x00001593 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001596 jne LBB0_289 + //0x0000159c LBB0_275 + 0x49, 0xc1, 0xe6, 0x30, //0x0000159c shlq $48, %r14 + 0x48, 0x09, 0xca, //0x000015a0 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x000015a3 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x000015a6 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x000015a9 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000015ac jne LBB0_290 + 0x4c, 0x09, 0xf2, //0x000015b2 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x000015b5 testq %rsi, %rsi + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x000015b8 jne LBB0_291 + //0x000015be LBB0_277 + 0x48, 0x85, 0xd2, //0x000015be testq %rdx, %rdx + 0x0f, 0x85, 0x47, 0x0e, 0x00, 0x00, //0x000015c1 jne LBB0_427 + 0x48, 0x83, 0xc0, 0xc0, //0x000015c7 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x000015cb addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x000015cf cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x000015d3 ja LBB0_273 + 0xe9, 0x8b, 0x06, 0x00, 0x00, //0x000015d9 jmp LBB0_279 + //0x000015de LBB0_290 + 0x4c, 0x89, 0xc1, //0x000015de movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000015e1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000015e4 andq %r13, %rcx + 0x4c, 0x89, 0x55, 0xb0, //0x000015e7 movq %r10, $-80(%rbp) + 0x4c, 0x8d, 0x14, 0x09, //0x000015eb leaq (%rcx,%rcx), %r10 + 0x4d, 0x09, 0xc2, //0x000015ef orq %r8, %r10 + 0x4c, 0x89, 0xd7, //0x000015f2 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x000015f5 notq %rdi + 0x4c, 0x21, 0xef, //0x000015f8 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000015fb movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x00001605 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x00001608 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x0000160b addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x0000160e setb %r8b + 0x48, 0x01, 0xff, //0x00001612 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001615 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x0000161f xorq %rcx, %rdi + 0x4c, 0x21, 0xd7, //0x00001622 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xb0, //0x00001625 movq $-80(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00001629 notq %rdi + 0x48, 0x21, 0xfe, //0x0000162c andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x0000162f orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001632 testq %rsi, %rsi + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00001635 je LBB0_277 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x0000163b jmp LBB0_291 + //0x00001640 LBB0_289 + 0x4c, 0x89, 0xdb, //0x00001640 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00001643 subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xcd, //0x00001647 bsfq %r13, %r9 + 0x49, 0x01, 0xd9, //0x0000164b addq %rbx, %r9 + 0xe9, 0x49, 0xff, 0xff, 0xff, //0x0000164e jmp LBB0_275 + //0x00001653 LBB0_291 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001653 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001657 testq %rdx, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000165a movq $-48(%rbp), %r12 + 0x0f, 0x84, 0xc2, 0x00, 0x00, 0x00, //0x0000165e je LBB0_306 + 0x48, 0x0f, 0xbc, 0xca, //0x00001664 bsfq %rdx, %rcx + 0x4d, 0x29, 0xe3, //0x00001668 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x0000166b cmpq %rax, %rcx + 0x0f, 0x83, 0x4a, 0xf8, 0xff, 0xff, //0x0000166e jae LBB0_185 + 0xe9, 0xe7, 0x0e, 0x00, 0x00, //0x00001674 jmp LBB0_308 + //0x00001679 LBB0_293 + 0x49, 0x01, 0xcd, //0x00001679 addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000167c movq %r13, %r8 + 0x48, 0x8b, 0x5d, 0xa0, //0x0000167f movq $-96(%rbp), %rbx + 0x48, 0x8b, 0x4d, 0xa8, //0x00001683 movq $-88(%rbp), %rcx + //0x00001687 LBB0_294 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001687 movq $-1, %r11 + 0x48, 0x85, 0xdb, //0x0000168e testq %rbx, %rbx + 0x48, 0x8b, 0x75, 0xc8, //0x00001691 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x90, 0x0d, 0x00, 0x00, //0x00001695 je LBB0_430 + //0x0000169b LBB0_295 + 0x48, 0x85, 0xc9, //0x0000169b testq %rcx, %rcx + 0x0f, 0x84, 0x87, 0x0d, 0x00, 0x00, //0x0000169e je LBB0_430 + 0x4d, 0x85, 0xf6, //0x000016a4 testq %r14, %r14 + 0x48, 0x8b, 0x55, 0xb8, //0x000016a7 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x000016ab movq $-64(%rbp), %rdi + 0x0f, 0x84, 0x76, 0x0d, 0x00, 0x00, //0x000016af je LBB0_430 + 0x4d, 0x29, 0xe0, //0x000016b5 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x000016b8 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc3, //0x000016bc cmpq %rax, %rbx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000016bf je LBB0_303 + 0x49, 0x39, 0xc6, //0x000016c5 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000016c8 je LBB0_303 + 0x48, 0x39, 0xc1, //0x000016ce cmpq %rax, %rcx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000016d1 je LBB0_303 + 0x48, 0x85, 0xc9, //0x000016d7 testq %rcx, %rcx + 0x0f, 0x8e, 0x71, 0x00, 0x00, 0x00, //0x000016da jle LBB0_310 + 0x48, 0x8d, 0x41, 0xff, //0x000016e0 leaq $-1(%rcx), %rax + 0x48, 0x39, 0xc3, //0x000016e4 cmpq %rax, %rbx + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x000016e7 je LBB0_310 + 0x48, 0xf7, 0xd1, //0x000016ed notq %rcx + 0x49, 0x89, 0xcb, //0x000016f0 movq %rcx, %r11 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000016f3 jmp LBB0_304 + //0x000016f8 LBB0_303 + 0x49, 0xf7, 0xd8, //0x000016f8 negq %r8 + 0x4d, 0x89, 0xc3, //0x000016fb movq %r8, %r11 + //0x000016fe LBB0_304 + 0x4d, 0x85, 0xdb, //0x000016fe testq %r11, %r11 + 0x0f, 0x88, 0x24, 0x0d, 0x00, 0x00, //0x00001701 js LBB0_430 + //0x00001707 LBB0_305 + 0x48, 0x8b, 0x4d, 0xb0, //0x00001707 movq $-80(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x0000170b addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x0000170e movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001711 movq %r15, %rax + 0x48, 0x85, 0xc9, //0x00001714 testq %rcx, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001717 movq $-48(%rbp), %r12 + 0x0f, 0x8f, 0x42, 0xea, 0xff, 0xff, //0x0000171b jg LBB0_2 + 0xe9, 0xbe, 0x0c, 0x00, 0x00, //0x00001721 jmp LBB0_424 + //0x00001726 LBB0_306 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001726 movl $64, %ecx + 0x4d, 0x29, 0xe3, //0x0000172b subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x0000172e cmpq %rax, %rcx + 0x0f, 0x83, 0x87, 0xf7, 0xff, 0xff, //0x00001731 jae LBB0_185 + 0xe9, 0x24, 0x0e, 0x00, 0x00, //0x00001737 jmp LBB0_308 + //0x0000173c LBB0_309 + 0x4d, 0x29, 0xd6, //0x0000173c subq %r10, %r14 + 0x0f, 0xbc, 0xce, //0x0000173f bsfl %esi, %ecx + 0x4c, 0x01, 0xf1, //0x00001742 addq %r14, %rcx + 0x48, 0xf7, 0xd1, //0x00001745 notq %rcx + 0x48, 0x8b, 0x75, 0xc8, //0x00001748 movq $-56(%rbp), %rsi + 0xe9, 0x22, 0xf5, 0xff, 0xff, //0x0000174c jmp LBB0_159 + //0x00001751 LBB0_310 + 0x4c, 0x89, 0xf0, //0x00001751 movq %r14, %rax + 0x48, 0x09, 0xd8, //0x00001754 orq %rbx, %rax + 0x49, 0x39, 0xde, //0x00001757 cmpq %rbx, %r14 + 0x0f, 0x8c, 0x68, 0x01, 0x00, 0x00, //0x0000175a jl LBB0_313 + 0x48, 0x85, 0xc0, //0x00001760 testq %rax, %rax + 0x0f, 0x88, 0x5f, 0x01, 0x00, 0x00, //0x00001763 js LBB0_313 + 0x49, 0xf7, 0xd6, //0x00001769 notq %r14 + 0x4d, 0x89, 0xf3, //0x0000176c movq %r14, %r11 + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x0000176f jmp LBB0_304 + //0x00001774 LBB0_48 + 0x4c, 0x8b, 0x5d, 0x80, //0x00001774 movq $-128(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xa8, //0x00001778 movq $-88(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x0000177c cmpq $32, %r13 + 0x0f, 0x82, 0xeb, 0x07, 0x00, 0x00, //0x00001780 jb LBB0_366 + //0x00001786 LBB0_49 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001786 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x0000178b vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001791 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001795 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001799 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000179d vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x000017a1 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000017a5 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x000017a9 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000017ad vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x000017b1 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x000017b5 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x000017b9 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x000017bc cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000017c0 jne LBB0_51 + 0x48, 0x85, 0xff, //0x000017c6 testq %rdi, %rdi + 0x0f, 0x85, 0x41, 0x07, 0x00, 0x00, //0x000017c9 jne LBB0_363 + //0x000017cf LBB0_51 + 0x48, 0x09, 0xca, //0x000017cf orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x000017d2 movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x000017d5 orq %r12, %rax + 0x0f, 0x85, 0x4f, 0x07, 0x00, 0x00, //0x000017d8 jne LBB0_364 + //0x000017de LBB0_52 + 0x48, 0x85, 0xd2, //0x000017de testq %rdx, %rdx + 0x0f, 0x84, 0x82, 0x07, 0x00, 0x00, //0x000017e1 je LBB0_365 + //0x000017e7 LBB0_53 + 0x48, 0x0f, 0xbc, 0xc2, //0x000017e7 bsfq %rdx, %rax + 0xe9, 0x43, 0xed, 0xff, 0xff, //0x000017eb jmp LBB0_57 + //0x000017f0 LBB0_113 + 0x4c, 0x8b, 0x5d, 0x80, //0x000017f0 movq $-128(%rbp), %r11 + 0x48, 0x8b, 0x45, 0xa8, //0x000017f4 movq $-88(%rbp), %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000017f8 movq $-48(%rbp), %r12 + 0x48, 0x83, 0xf8, 0x20, //0x000017fc cmpq $32, %rax + 0x0f, 0x82, 0x6f, 0x02, 0x00, 0x00, //0x00001800 jb LBB0_318 + //0x00001806 LBB0_114 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001806 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x0000180b vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001811 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001815 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001819 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x0000181d vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x00001821 vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001825 vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001829 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x0000182d vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x00001831 vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x00001835 vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001839 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000183d vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001841 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001845 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001849 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000184d vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001851 shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00001855 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001859 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000185c cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001860 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x00001866 testq %rdx, %rdx + 0x0f, 0x85, 0x7c, 0x07, 0x00, 0x00, //0x00001869 jne LBB0_373 + //0x0000186f LBB0_116 + 0x48, 0xc1, 0xe7, 0x10, //0x0000186f shlq $16, %rdi + 0x48, 0x09, 0xce, //0x00001873 orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x00001876 movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001879 orq %r8, %rcx + 0x0f, 0x85, 0x4f, 0x06, 0x00, 0x00, //0x0000187c jne LBB0_362 + //0x00001882 LBB0_117 + 0x4c, 0x09, 0xf7, //0x00001882 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001885 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000188a movl $64, %edx + 0x48, 0x85, 0xf6, //0x0000188f testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001892 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001898 bsfq %rsi, %rdx + //0x0000189c LBB0_119 + 0x48, 0x85, 0xff, //0x0000189c testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000189f je LBB0_121 + 0x48, 0x0f, 0xbc, 0xcf, //0x000018a5 bsfq %rdi, %rcx + //0x000018a9 LBB0_121 + 0x48, 0x85, 0xf6, //0x000018a9 testq %rsi, %rsi + 0x0f, 0x84, 0xb2, 0x01, 0x00, 0x00, //0x000018ac je LBB0_316 + //0x000018b2 LBB0_122 + 0x4d, 0x29, 0xe3, //0x000018b2 subq %r12, %r11 + 0x48, 0x39, 0xd1, //0x000018b5 cmpq %rdx, %rcx + 0x0f, 0x82, 0xa2, 0x0c, 0x00, 0x00, //0x000018b8 jb LBB0_308 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x000018be leaq $1(%r11,%rdx), %r11 + 0xe9, 0xfb, 0xf5, 0xff, 0xff, //0x000018c3 jmp LBB0_186 + //0x000018c8 LBB0_313 + 0x48, 0x85, 0xc0, //0x000018c8 testq %rax, %rax + 0x48, 0x8d, 0x43, 0xff, //0x000018cb leaq $-1(%rbx), %rax + 0x48, 0xf7, 0xd3, //0x000018cf notq %rbx + 0x49, 0x0f, 0x48, 0xd8, //0x000018d2 cmovsq %r8, %rbx + 0x49, 0x39, 0xc6, //0x000018d6 cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xd8, //0x000018d9 cmovneq %r8, %rbx + 0x49, 0x89, 0xdb, //0x000018dd movq %rbx, %r11 + 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x000018e0 jmp LBB0_304 + //0x000018e5 LBB0_314 + 0x48, 0xf7, 0xd0, //0x000018e5 notq %rax + 0x48, 0x89, 0xc1, //0x000018e8 movq %rax, %rcx + 0x48, 0x8b, 0x75, 0xc8, //0x000018eb movq $-56(%rbp), %rsi + 0xe9, 0x7f, 0xf3, 0xff, 0xff, //0x000018ef jmp LBB0_159 + //0x000018f4 LBB0_315 + 0x48, 0x89, 0x4d, 0xb0, //0x000018f4 movq %rcx, $-80(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000018f8 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x000018ff testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00001902 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0xf5, 0xf2, 0xff, 0xff, //0x00001906 jne LBB0_150 + 0xe9, 0xc3, 0x0a, 0x00, 0x00, //0x0000190c jmp LBB0_421 + //0x00001911 LBB0_134 + 0x4c, 0x8b, 0x5d, 0x80, //0x00001911 movq $-128(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xa8, //0x00001915 movq $-88(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001919 cmpq $32, %r13 + 0x0f, 0x82, 0xda, 0x07, 0x00, 0x00, //0x0000191d jb LBB0_382 + //0x00001923 LBB0_135 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001923 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001928 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x0000192e vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001932 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001936 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000193a vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x0000193e vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001942 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001946 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x0000194a vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x0000194e shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001952 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001956 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001959 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000195d jne LBB0_137 + 0x48, 0x85, 0xff, //0x00001963 testq %rdi, %rdi + 0x0f, 0x85, 0x30, 0x07, 0x00, 0x00, //0x00001966 jne LBB0_379 + //0x0000196c LBB0_137 + 0x48, 0x09, 0xca, //0x0000196c orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x0000196f movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x00001972 orq %r12, %rax + 0x0f, 0x85, 0x3e, 0x07, 0x00, 0x00, //0x00001975 jne LBB0_380 + //0x0000197b LBB0_138 + 0x48, 0x85, 0xd2, //0x0000197b testq %rdx, %rdx + 0x0f, 0x84, 0x71, 0x07, 0x00, 0x00, //0x0000197e je LBB0_381 + //0x00001984 LBB0_139 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001984 bsfq %rdx, %rax + 0xe9, 0x06, 0xf2, 0xff, 0xff, //0x00001988 jmp LBB0_143 + //0x0000198d LBB0_169 + 0x4d, 0x89, 0xe3, //0x0000198d movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xa8, //0x00001990 movq $-88(%rbp), %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001994 movq $-48(%rbp), %r12 + 0x48, 0x83, 0xf8, 0x20, //0x00001998 cmpq $32, %rax + 0x0f, 0x82, 0x7a, 0x01, 0x00, 0x00, //0x0000199c jb LBB0_329 + //0x000019a2 LBB0_170 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000019a2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000019a7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000019ad vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000019b1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000019b5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x000019b9 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x000019bd vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000019c1 vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x000019c5 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x000019c9 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x000019cd vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x000019d1 vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x000019d5 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x000019d9 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x000019dd vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x000019e1 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x000019e5 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000019e9 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x000019ed shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x000019f1 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x000019f5 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000019f8 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000019fc jne LBB0_172 + 0x48, 0x85, 0xd2, //0x00001a02 testq %rdx, %rdx + 0x0f, 0x85, 0x77, 0x07, 0x00, 0x00, //0x00001a05 jne LBB0_390 + //0x00001a0b LBB0_172 + 0x48, 0xc1, 0xe7, 0x10, //0x00001a0b shlq $16, %rdi + 0x48, 0x09, 0xce, //0x00001a0f orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x00001a12 movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001a15 orq %r8, %rcx + 0x0f, 0x85, 0xdf, 0x05, 0x00, 0x00, //0x00001a18 jne LBB0_374 + //0x00001a1e LBB0_173 + 0x4c, 0x09, 0xf7, //0x00001a1e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001a21 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001a26 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001a2b testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001a2e je LBB0_175 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001a34 bsfq %rsi, %rdx + //0x00001a38 LBB0_175 + 0x48, 0x85, 0xff, //0x00001a38 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001a3b je LBB0_177 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001a41 bsfq %rdi, %rcx + //0x00001a45 LBB0_177 + 0x48, 0x85, 0xf6, //0x00001a45 testq %rsi, %rsi + 0x0f, 0x84, 0xbd, 0x00, 0x00, 0x00, //0x00001a48 je LBB0_327 + 0x4d, 0x29, 0xe3, //0x00001a4e subq %r12, %r11 + 0x48, 0x39, 0xd1, //0x00001a51 cmpq %rdx, %rcx + 0x0f, 0x82, 0x06, 0x0b, 0x00, 0x00, //0x00001a54 jb LBB0_308 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001a5a leaq $1(%r11,%rdx), %r11 + 0xe9, 0xce, 0xf4, 0xff, 0xff, //0x00001a5f jmp LBB0_193 + //0x00001a64 LBB0_316 + 0x48, 0x85, 0xff, //0x00001a64 testq %rdi, %rdi + 0x0f, 0x85, 0x0e, 0x0b, 0x00, 0x00, //0x00001a67 jne LBB0_450 + 0x49, 0x83, 0xc3, 0x20, //0x00001a6d addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001a71 addq $-32, %rax + //0x00001a75 LBB0_318 + 0x4d, 0x85, 0xc0, //0x00001a75 testq %r8, %r8 + 0x0f, 0x85, 0xee, 0x05, 0x00, 0x00, //0x00001a78 jne LBB0_377 + 0x48, 0x85, 0xc0, //0x00001a7e testq %rax, %rax + 0x0f, 0x84, 0x2e, 0x09, 0x00, 0x00, //0x00001a81 je LBB0_416 + //0x00001a87 LBB0_320 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001a87 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001a8b cmpb $34, %cl + 0x0f, 0x84, 0x2e, 0x03, 0x00, 0x00, //0x00001a8e je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001a94 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001a97 je LBB0_324 + 0x80, 0xf9, 0x1f, //0x00001a9d cmpb $31, %cl + 0x0f, 0x86, 0xe1, 0x0a, 0x00, 0x00, //0x00001aa0 jbe LBB0_451 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001aa6 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001aad movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001ab2 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001ab5 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001ab8 jne LBB0_320 + 0xe9, 0xf2, 0x08, 0x00, 0x00, //0x00001abe jmp LBB0_416 + //0x00001ac3 LBB0_324 + 0x48, 0x83, 0xf8, 0x01, //0x00001ac3 cmpq $1, %rax + 0x0f, 0x84, 0xe8, 0x08, 0x00, 0x00, //0x00001ac7 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001acd movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001ad0 movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001ad4 subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001ad7 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001adb cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001adf movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001ae6 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001aeb addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001aee addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001af1 jne LBB0_320 + 0xe9, 0xb9, 0x08, 0x00, 0x00, //0x00001af7 jmp LBB0_416 + //0x00001afc LBB0_326 + 0x48, 0xf7, 0xd6, //0x00001afc notq %rsi + 0x48, 0x89, 0xf1, //0x00001aff movq %rsi, %rcx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b02 movq $-56(%rbp), %rsi + 0xe9, 0x68, 0xf1, 0xff, 0xff, //0x00001b06 jmp LBB0_159 + //0x00001b0b LBB0_327 + 0x48, 0x85, 0xff, //0x00001b0b testq %rdi, %rdi + 0x0f, 0x85, 0x67, 0x0a, 0x00, 0x00, //0x00001b0e jne LBB0_450 + 0x49, 0x83, 0xc3, 0x20, //0x00001b14 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001b18 addq $-32, %rax + //0x00001b1c LBB0_329 + 0x4d, 0x85, 0xc0, //0x00001b1c testq %r8, %r8 + 0x0f, 0x85, 0x9f, 0x06, 0x00, 0x00, //0x00001b1f jne LBB0_393 + 0x48, 0x85, 0xc0, //0x00001b25 testq %rax, %rax + 0x0f, 0x84, 0x87, 0x08, 0x00, 0x00, //0x00001b28 je LBB0_416 + //0x00001b2e LBB0_331 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001b2e movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001b32 cmpb $34, %cl + 0x0f, 0x84, 0xaa, 0x00, 0x00, 0x00, //0x00001b35 je LBB0_340 + 0x80, 0xf9, 0x5c, //0x00001b3b cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001b3e je LBB0_335 + 0x80, 0xf9, 0x1f, //0x00001b44 cmpb $31, %cl + 0x0f, 0x86, 0x3a, 0x0a, 0x00, 0x00, //0x00001b47 jbe LBB0_451 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001b4d movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001b54 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001b59 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b5c addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001b5f jne LBB0_331 + 0xe9, 0x4b, 0x08, 0x00, 0x00, //0x00001b65 jmp LBB0_416 + //0x00001b6a LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x00001b6a cmpq $1, %rax + 0x0f, 0x84, 0x41, 0x08, 0x00, 0x00, //0x00001b6e je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001b74 movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001b77 movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001b7b subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001b7e cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001b82 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001b86 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001b8d movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001b92 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b95 addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001b98 jne LBB0_331 + 0xe9, 0x12, 0x08, 0x00, 0x00, //0x00001b9e jmp LBB0_416 + //0x00001ba3 LBB0_419 + 0x48, 0xf7, 0xd8, //0x00001ba3 negq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x00001ba6 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x65, 0xd0, //0x00001baa movq $-48(%rbp), %r12 + 0x48, 0x8b, 0x55, 0xb8, //0x00001bae movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00001bb2 movq $-64(%rbp), %rdi + 0x48, 0x89, 0xc1, //0x00001bb6 movq %rax, %rcx + 0x48, 0x85, 0xc9, //0x00001bb9 testq %rcx, %rcx + 0x0f, 0x89, 0xc6, 0xf0, 0xff, 0xff, //0x00001bbc jns LBB0_268 + 0xe9, 0x0a, 0x08, 0x00, 0x00, //0x00001bc2 jmp LBB0_420 + //0x00001bc7 LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001bc7 subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001bca bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001bce addq %r13, %r11 + //0x00001bd1 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001bd1 notq %r11 + //0x00001bd4 LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001bd4 movq $-56(%rbp), %rsi + 0x48, 0x8b, 0x55, 0xb8, //0x00001bd8 movq $-72(%rbp), %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00001bdc movq $-64(%rbp), %rdi + 0xe9, 0x19, 0xfb, 0xff, 0xff, //0x00001be0 jmp LBB0_304 + //0x00001be5 LBB0_340 + 0x4c, 0x03, 0x5d, 0x90, //0x00001be5 addq $-112(%rbp), %r11 + 0xe9, 0x44, 0xf3, 0xff, 0xff, //0x00001be9 jmp LBB0_193 + //0x00001bee LBB0_206 + 0x4d, 0x89, 0xc3, //0x00001bee movq %r8, %r11 + 0x4c, 0x8b, 0x65, 0xa8, //0x00001bf1 movq $-88(%rbp), %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00001bf5 cmpq $32, %r12 + 0x0f, 0x82, 0x99, 0x06, 0x00, 0x00, //0x00001bf9 jb LBB0_399 + //0x00001bff LBB0_207 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001bff vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001c04 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001c0a vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001c0e vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001c12 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001c16 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001c1a vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001c1e vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001c22 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001c26 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001c2a shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001c2e shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001c32 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001c35 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001c39 jne LBB0_209 + 0x48, 0x85, 0xff, //0x00001c3f testq %rdi, %rdi + 0x0f, 0x85, 0xed, 0x05, 0x00, 0x00, //0x00001c42 jne LBB0_396 + //0x00001c48 LBB0_209 + 0x48, 0x09, 0xca, //0x00001c48 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001c4b movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00001c4e orq %r10, %rax + 0x0f, 0x85, 0xfb, 0x05, 0x00, 0x00, //0x00001c51 jne LBB0_397 + //0x00001c57 LBB0_210 + 0x48, 0x85, 0xd2, //0x00001c57 testq %rdx, %rdx + 0x0f, 0x84, 0x30, 0x06, 0x00, 0x00, //0x00001c5a je LBB0_398 + //0x00001c60 LBB0_211 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001c60 bsfq %rdx, %rax + 0xe9, 0xaa, 0xf4, 0xff, 0xff, //0x00001c64 jmp LBB0_215 + //0x00001c69 LBB0_279 + 0x4d, 0x89, 0xe3, //0x00001c69 movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xa8, //0x00001c6c movq $-88(%rbp), %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001c70 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001c74 movq $-48(%rbp), %r12 + 0x0f, 0x82, 0xbd, 0x00, 0x00, 0x00, //0x00001c78 jb LBB0_345 + //0x00001c7e LBB0_280 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001c7e vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001c83 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001c89 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001c8d vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001c91 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001c95 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x00001c99 vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001c9d vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001ca1 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x00001ca5 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x00001ca9 vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x00001cad vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001cb1 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001cb5 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001cb9 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001cbd vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001cc1 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001cc5 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001cc9 shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00001ccd shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001cd1 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001cd4 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001cd8 jne LBB0_282 + 0x48, 0x85, 0xd2, //0x00001cde testq %rdx, %rdx + 0x0f, 0x85, 0x37, 0x06, 0x00, 0x00, //0x00001ce1 jne LBB0_408 + //0x00001ce7 LBB0_282 + 0x48, 0xc1, 0xe7, 0x10, //0x00001ce7 shlq $16, %rdi + 0x48, 0x09, 0xce, //0x00001ceb orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x00001cee movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001cf1 orq %r8, %rcx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001cf4 jne LBB0_395 + //0x00001cfa LBB0_283 + 0x4c, 0x09, 0xf7, //0x00001cfa orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001cfd movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001d02 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001d07 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d0a je LBB0_285 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001d10 bsfq %rsi, %rdx + //0x00001d14 LBB0_285 + 0x48, 0x85, 0xff, //0x00001d14 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d17 je LBB0_287 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001d1d bsfq %rdi, %rcx + //0x00001d21 LBB0_287 + 0x48, 0x85, 0xf6, //0x00001d21 testq %rsi, %rsi + 0x0f, 0x85, 0x88, 0xfb, 0xff, 0xff, //0x00001d24 jne LBB0_122 + 0x48, 0x85, 0xff, //0x00001d2a testq %rdi, %rdi + 0x0f, 0x85, 0x48, 0x08, 0x00, 0x00, //0x00001d2d jne LBB0_450 + 0x49, 0x83, 0xc3, 0x20, //0x00001d33 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001d37 addq $-32, %rax + //0x00001d3b LBB0_345 + 0x4d, 0x85, 0xc0, //0x00001d3b testq %r8, %r8 + 0x0f, 0x85, 0xec, 0x05, 0x00, 0x00, //0x00001d3e jne LBB0_409 + 0x48, 0x85, 0xc0, //0x00001d44 testq %rax, %rax + 0x0f, 0x84, 0x68, 0x06, 0x00, 0x00, //0x00001d47 je LBB0_416 + //0x00001d4d LBB0_347 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001d4d movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001d51 cmpb $34, %cl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001d54 je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001d5a cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001d5d je LBB0_351 + 0x80, 0xf9, 0x1f, //0x00001d63 cmpb $31, %cl + 0x0f, 0x86, 0x1b, 0x08, 0x00, 0x00, //0x00001d66 jbe LBB0_451 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001d6c movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001d73 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001d78 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001d7b addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001d7e jne LBB0_347 + 0xe9, 0x2c, 0x06, 0x00, 0x00, //0x00001d84 jmp LBB0_416 + //0x00001d89 LBB0_351 + 0x48, 0x83, 0xf8, 0x01, //0x00001d89 cmpq $1, %rax + 0x0f, 0x84, 0x22, 0x06, 0x00, 0x00, //0x00001d8d je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001d93 movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001d96 movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001d9a subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001d9d cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001da1 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001da5 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001dac movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001db1 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001db4 addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001db7 jne LBB0_347 + 0xe9, 0xf3, 0x05, 0x00, 0x00, //0x00001dbd jmp LBB0_416 + //0x00001dc2 LBB0_355 + 0x4c, 0x03, 0x5d, 0x90, //0x00001dc2 addq $-112(%rbp), %r11 + 0xe9, 0xf8, 0xf0, 0xff, 0xff, //0x00001dc6 jmp LBB0_186 + //0x00001dcb LBB0_341 + 0x49, 0x89, 0xf8, //0x00001dcb movq %rdi, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001dce movq $-1, %r11 + 0x48, 0x85, 0xdb, //0x00001dd5 testq %rbx, %rbx + 0x48, 0x8b, 0x75, 0xc8, //0x00001dd8 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0xb9, 0xf8, 0xff, 0xff, //0x00001ddc jne LBB0_295 + 0xe9, 0x44, 0x06, 0x00, 0x00, //0x00001de2 jmp LBB0_430 + //0x00001de7 LBB0_342 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001de7 movq $-1, %r11 + 0x4c, 0x89, 0x55, 0xb0, //0x00001dee movq %r10, $-80(%rbp) + 0x4c, 0x89, 0xcf, //0x00001df2 movq %r9, %rdi + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001df5 movq $-1, %r13 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001dfc movq $-1, %r12 + 0xe9, 0x68, 0xe9, 0xff, 0xff, //0x00001e03 jmp LBB0_92 + //0x00001e08 LBB0_353 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e08 movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00001e0f xorl %r12d, %r12d + 0x49, 0x83, 0xfd, 0x20, //0x00001e12 cmpq $32, %r13 + 0x0f, 0x83, 0x6a, 0xf9, 0xff, 0xff, //0x00001e16 jae LBB0_49 + 0xe9, 0x50, 0x01, 0x00, 0x00, //0x00001e1c jmp LBB0_366 + //0x00001e21 LBB0_354 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e21 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001e28 xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001e2b cmpq $32, %rax + 0x0f, 0x83, 0xd1, 0xf9, 0xff, 0xff, //0x00001e2f jae LBB0_114 + 0xe9, 0x3b, 0xfc, 0xff, 0xff, //0x00001e35 jmp LBB0_318 + //0x00001e3a LBB0_356 + 0x49, 0xf7, 0xdb, //0x00001e3a negq %r11 + 0xe9, 0x92, 0xfd, 0xff, 0xff, //0x00001e3d jmp LBB0_339 + //0x00001e42 LBB0_357 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e42 movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00001e49 xorl %r12d, %r12d + 0x49, 0x83, 0xfd, 0x20, //0x00001e4c cmpq $32, %r13 + 0x0f, 0x83, 0xcd, 0xfa, 0xff, 0xff, //0x00001e50 jae LBB0_135 + 0xe9, 0xa2, 0x02, 0x00, 0x00, //0x00001e56 jmp LBB0_382 + //0x00001e5b LBB0_358 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e5b movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001e62 xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001e65 cmpq $32, %rax + 0x0f, 0x83, 0x33, 0xfb, 0xff, 0xff, //0x00001e69 jae LBB0_170 + 0xe9, 0xa8, 0xfc, 0xff, 0xff, //0x00001e6f jmp LBB0_329 + //0x00001e74 LBB0_359 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001e74 movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x00001e7b movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x00001e7e movq %r10, %r9 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e81 movq $-1, %rbx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e88 movq $-1, %rcx + 0x48, 0x8d, 0x35, 0x02, 0x09, 0x00, 0x00, //0x00001e8f leaq $2306(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0x57, 0xf4, 0xff, 0xff, //0x00001e96 jmp LBB0_240 + //0x00001e9b LBB0_360 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e9b movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00001ea2 xorl %r10d, %r10d + 0x49, 0x83, 0xfc, 0x20, //0x00001ea5 cmpq $32, %r12 + 0x0f, 0x83, 0x50, 0xfd, 0xff, 0xff, //0x00001ea9 jae LBB0_207 + 0xe9, 0xe4, 0x03, 0x00, 0x00, //0x00001eaf jmp LBB0_399 + //0x00001eb4 LBB0_361 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001eb4 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001ebb xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001ebe cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001ec2 movq $-48(%rbp), %r12 + 0x0f, 0x83, 0xb2, 0xfd, 0xff, 0xff, //0x00001ec6 jae LBB0_280 + 0xe9, 0x6a, 0xfe, 0xff, 0xff, //0x00001ecc jmp LBB0_345 + //0x00001ed1 LBB0_362 + 0x44, 0x89, 0xc1, //0x00001ed1 movl %r8d, %ecx + 0xf7, 0xd1, //0x00001ed4 notl %ecx + 0x21, 0xd1, //0x00001ed6 andl %edx, %ecx + 0x44, 0x8d, 0x24, 0x09, //0x00001ed8 leal (%rcx,%rcx), %r12d + 0x45, 0x09, 0xc4, //0x00001edc orl %r8d, %r12d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001edf movl $2863311530, %ebx + 0x44, 0x31, 0xe3, //0x00001ee4 xorl %r12d, %ebx + 0x21, 0xd3, //0x00001ee7 andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001ee9 andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00001eef xorl %r8d, %r8d + 0x01, 0xcb, //0x00001ef2 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00001ef4 setb %r8b + 0x01, 0xdb, //0x00001ef8 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00001efa xorl $1431655765, %ebx + 0x44, 0x21, 0xe3, //0x00001f00 andl %r12d, %ebx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f03 movq $-48(%rbp), %r12 + 0xf7, 0xd3, //0x00001f07 notl %ebx + 0x21, 0xde, //0x00001f09 andl %ebx, %esi + 0xe9, 0x72, 0xf9, 0xff, 0xff, //0x00001f0b jmp LBB0_117 + //0x00001f10 LBB0_363 + 0x4c, 0x89, 0xd8, //0x00001f10 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001f13 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00001f17 bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x00001f1b addq %rax, %r9 + 0x48, 0x09, 0xca, //0x00001f1e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001f21 movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x00001f24 orq %r12, %rax + 0x0f, 0x84, 0xb1, 0xf8, 0xff, 0xff, //0x00001f27 je LBB0_52 + //0x00001f2d LBB0_364 + 0x44, 0x89, 0xe0, //0x00001f2d movl %r12d, %eax + 0xf7, 0xd0, //0x00001f30 notl %eax + 0x21, 0xf8, //0x00001f32 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x00001f34 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xe1, //0x00001f37 orl %r12d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f3a movl $2863311530, %esi + 0x31, 0xce, //0x00001f3f xorl %ecx, %esi + 0x21, 0xfe, //0x00001f41 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f43 andl $-1431655766, %esi + 0x45, 0x31, 0xe4, //0x00001f49 xorl %r12d, %r12d + 0x01, 0xc6, //0x00001f4c addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc4, //0x00001f4e setb %r12b + 0x01, 0xf6, //0x00001f52 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x00001f54 xorl $1431655765, %esi + 0x21, 0xce, //0x00001f5a andl %ecx, %esi + 0xf7, 0xd6, //0x00001f5c notl %esi + 0x21, 0xf2, //0x00001f5e andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00001f60 testq %rdx, %rdx + 0x0f, 0x85, 0x7e, 0xf8, 0xff, 0xff, //0x00001f63 jne LBB0_53 + //0x00001f69 LBB0_365 + 0x49, 0x83, 0xc3, 0x20, //0x00001f69 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00001f6d addq $-32, %r13 + //0x00001f71 LBB0_366 + 0x4d, 0x85, 0xe4, //0x00001f71 testq %r12, %r12 + 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00001f74 jne LBB0_375 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f7a movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x00001f7e testq %r13, %r13 + 0x0f, 0x84, 0x2e, 0x04, 0x00, 0x00, //0x00001f81 je LBB0_416 + //0x00001f87 LBB0_368 + 0x49, 0x8d, 0x4b, 0x01, //0x00001f87 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001f8b movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001f8f cmpb $34, %bl + 0x0f, 0x84, 0x7b, 0x03, 0x00, 0x00, //0x00001f92 je LBB0_407 + 0x49, 0x8d, 0x55, 0xff, //0x00001f98 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00001f9c cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001f9f je LBB0_371 + 0x49, 0x89, 0xd5, //0x00001fa5 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00001fa8 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001fab testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00001fae jne LBB0_368 + 0xe9, 0xfc, 0x03, 0x00, 0x00, //0x00001fb4 jmp LBB0_416 + //0x00001fb9 LBB0_371 + 0x48, 0x85, 0xd2, //0x00001fb9 testq %rdx, %rdx + 0x0f, 0x84, 0xf3, 0x03, 0x00, 0x00, //0x00001fbc je LBB0_416 + 0x48, 0x03, 0x4d, 0x98, //0x00001fc2 addq $-104(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001fc6 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001fca cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00001fce addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00001fd2 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00001fd6 movq %r13, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001fd9 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xd2, //0x00001fdd testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x00001fe0 jne LBB0_368 + 0xe9, 0xca, 0x03, 0x00, 0x00, //0x00001fe6 jmp LBB0_416 + //0x00001feb LBB0_373 + 0x4c, 0x89, 0xdb, //0x00001feb movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x00001fee subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x00001ff1 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x00001ff5 addq %rbx, %r9 + 0xe9, 0x72, 0xf8, 0xff, 0xff, //0x00001ff8 jmp LBB0_116 + //0x00001ffd LBB0_374 + 0x44, 0x89, 0xc1, //0x00001ffd movl %r8d, %ecx + 0xf7, 0xd1, //0x00002000 notl %ecx + 0x21, 0xd1, //0x00002002 andl %edx, %ecx + 0x44, 0x8d, 0x24, 0x09, //0x00002004 leal (%rcx,%rcx), %r12d + 0x45, 0x09, 0xc4, //0x00002008 orl %r8d, %r12d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000200b movl $2863311530, %ebx + 0x44, 0x31, 0xe3, //0x00002010 xorl %r12d, %ebx + 0x21, 0xd3, //0x00002013 andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002015 andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x0000201b xorl %r8d, %r8d + 0x01, 0xcb, //0x0000201e addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00002020 setb %r8b + 0x01, 0xdb, //0x00002024 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00002026 xorl $1431655765, %ebx + 0x44, 0x21, 0xe3, //0x0000202c andl %r12d, %ebx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000202f movq $-48(%rbp), %r12 + 0xf7, 0xd3, //0x00002033 notl %ebx + 0x21, 0xde, //0x00002035 andl %ebx, %esi + 0xe9, 0xe2, 0xf9, 0xff, 0xff, //0x00002037 jmp LBB0_173 + //0x0000203c LBB0_375 + 0x4d, 0x85, 0xed, //0x0000203c testq %r13, %r13 + 0x0f, 0x84, 0x70, 0x03, 0x00, 0x00, //0x0000203f je LBB0_416 + 0x48, 0x8b, 0x45, 0x98, //0x00002045 movq $-104(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002049 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x0000204c cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x00002050 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x00002054 incq %r11 + 0x49, 0xff, 0xcd, //0x00002057 decq %r13 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000205a movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x0000205e testq %r13, %r13 + 0x0f, 0x85, 0x20, 0xff, 0xff, 0xff, //0x00002061 jne LBB0_368 + 0xe9, 0x49, 0x03, 0x00, 0x00, //0x00002067 jmp LBB0_416 + //0x0000206c LBB0_377 + 0x48, 0x85, 0xc0, //0x0000206c testq %rax, %rax + 0x0f, 0x84, 0x40, 0x03, 0x00, 0x00, //0x0000206f je LBB0_416 + 0x48, 0x8b, 0x4d, 0x98, //0x00002075 movq $-104(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002079 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x0000207c cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002080 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x00002084 incq %r11 + 0x48, 0xff, 0xc8, //0x00002087 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x0000208a movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x0000208e testq %rax, %rax + 0x0f, 0x85, 0xf0, 0xf9, 0xff, 0xff, //0x00002091 jne LBB0_320 + 0xe9, 0x19, 0x03, 0x00, 0x00, //0x00002097 jmp LBB0_416 + //0x0000209c LBB0_379 + 0x4c, 0x89, 0xd8, //0x0000209c movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x0000209f subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x000020a3 bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x000020a7 addq %rax, %r9 + 0x48, 0x09, 0xca, //0x000020aa orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x000020ad movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x000020b0 orq %r12, %rax + 0x0f, 0x84, 0xc2, 0xf8, 0xff, 0xff, //0x000020b3 je LBB0_138 + //0x000020b9 LBB0_380 + 0x44, 0x89, 0xe0, //0x000020b9 movl %r12d, %eax + 0xf7, 0xd0, //0x000020bc notl %eax + 0x21, 0xf8, //0x000020be andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x000020c0 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xe1, //0x000020c3 orl %r12d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000020c6 movl $2863311530, %esi + 0x31, 0xce, //0x000020cb xorl %ecx, %esi + 0x21, 0xfe, //0x000020cd andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x000020cf andl $-1431655766, %esi + 0x45, 0x31, 0xe4, //0x000020d5 xorl %r12d, %r12d + 0x01, 0xc6, //0x000020d8 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc4, //0x000020da setb %r12b + 0x01, 0xf6, //0x000020de addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x000020e0 xorl $1431655765, %esi + 0x21, 0xce, //0x000020e6 andl %ecx, %esi + 0xf7, 0xd6, //0x000020e8 notl %esi + 0x21, 0xf2, //0x000020ea andl %esi, %edx + 0x48, 0x85, 0xd2, //0x000020ec testq %rdx, %rdx + 0x0f, 0x85, 0x8f, 0xf8, 0xff, 0xff, //0x000020ef jne LBB0_139 + //0x000020f5 LBB0_381 + 0x49, 0x83, 0xc3, 0x20, //0x000020f5 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x000020f9 addq $-32, %r13 + //0x000020fd LBB0_382 + 0x4d, 0x85, 0xe4, //0x000020fd testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x00002100 jne LBB0_391 + 0x4c, 0x8b, 0x65, 0xd0, //0x00002106 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x0000210a testq %r13, %r13 + 0x0f, 0x84, 0xa2, 0x02, 0x00, 0x00, //0x0000210d je LBB0_416 + //0x00002113 LBB0_384 + 0x49, 0x8d, 0x4b, 0x01, //0x00002113 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00002117 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x0000211b cmpb $34, %bl + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x0000211e je LBB0_389 + 0x49, 0x8d, 0x55, 0xff, //0x00002124 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00002128 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000212b je LBB0_387 + 0x49, 0x89, 0xd5, //0x00002131 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00002134 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00002137 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000213a jne LBB0_384 + 0xe9, 0x70, 0x02, 0x00, 0x00, //0x00002140 jmp LBB0_416 + //0x00002145 LBB0_387 + 0x48, 0x85, 0xd2, //0x00002145 testq %rdx, %rdx + 0x0f, 0x84, 0x67, 0x02, 0x00, 0x00, //0x00002148 je LBB0_416 + 0x48, 0x03, 0x4d, 0x98, //0x0000214e addq $-104(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002152 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002156 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x0000215a addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x0000215e addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002162 movq %r13, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x00002165 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xd2, //0x00002169 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x0000216c jne LBB0_384 + 0xe9, 0x3e, 0x02, 0x00, 0x00, //0x00002172 jmp LBB0_416 + //0x00002177 LBB0_389 + 0x4c, 0x29, 0xe1, //0x00002177 subq %r12, %rcx + 0x49, 0x89, 0xcb, //0x0000217a movq %rcx, %r11 + 0xe9, 0xb0, 0xed, 0xff, 0xff, //0x0000217d jmp LBB0_193 + //0x00002182 LBB0_390 + 0x4c, 0x89, 0xdb, //0x00002182 movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x00002185 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002188 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x0000218c addq %rbx, %r9 + 0xe9, 0x77, 0xf8, 0xff, 0xff, //0x0000218f jmp LBB0_172 + //0x00002194 LBB0_391 + 0x4d, 0x85, 0xed, //0x00002194 testq %r13, %r13 + 0x0f, 0x84, 0x18, 0x02, 0x00, 0x00, //0x00002197 je LBB0_416 + 0x48, 0x8b, 0x45, 0x98, //0x0000219d movq $-104(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000021a1 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x000021a4 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x000021a8 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x000021ac incq %r11 + 0x49, 0xff, 0xcd, //0x000021af decq %r13 + 0x4c, 0x8b, 0x65, 0xd0, //0x000021b2 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x000021b6 testq %r13, %r13 + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x000021b9 jne LBB0_384 + 0xe9, 0xf1, 0x01, 0x00, 0x00, //0x000021bf jmp LBB0_416 + //0x000021c4 LBB0_393 + 0x48, 0x85, 0xc0, //0x000021c4 testq %rax, %rax + 0x0f, 0x84, 0xe8, 0x01, 0x00, 0x00, //0x000021c7 je LBB0_416 + 0x48, 0x8b, 0x4d, 0x98, //0x000021cd movq $-104(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x000021d1 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000021d4 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x000021d8 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x000021dc incq %r11 + 0x48, 0xff, 0xc8, //0x000021df decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000021e2 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x000021e6 testq %rax, %rax + 0x0f, 0x85, 0x3f, 0xf9, 0xff, 0xff, //0x000021e9 jne LBB0_331 + 0xe9, 0xc1, 0x01, 0x00, 0x00, //0x000021ef jmp LBB0_416 + //0x000021f4 LBB0_395 + 0x44, 0x89, 0xc1, //0x000021f4 movl %r8d, %ecx + 0xf7, 0xd1, //0x000021f7 notl %ecx + 0x21, 0xd1, //0x000021f9 andl %edx, %ecx + 0x4d, 0x89, 0xd5, //0x000021fb movq %r10, %r13 + 0x44, 0x8d, 0x14, 0x09, //0x000021fe leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xc2, //0x00002202 orl %r8d, %r10d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002205 movl $2863311530, %ebx + 0x44, 0x31, 0xd3, //0x0000220a xorl %r10d, %ebx + 0x21, 0xd3, //0x0000220d andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000220f andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00002215 xorl %r8d, %r8d + 0x01, 0xcb, //0x00002218 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x0000221a setb %r8b + 0x01, 0xdb, //0x0000221e addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00002220 xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x00002226 andl %r10d, %ebx + 0x4d, 0x89, 0xea, //0x00002229 movq %r13, %r10 + 0xf7, 0xd3, //0x0000222c notl %ebx + 0x21, 0xde, //0x0000222e andl %ebx, %esi + 0xe9, 0xc5, 0xfa, 0xff, 0xff, //0x00002230 jmp LBB0_283 + //0x00002235 LBB0_396 + 0x4c, 0x89, 0xd8, //0x00002235 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002238 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x0000223c bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x00002240 addq %rax, %r9 + 0x48, 0x09, 0xca, //0x00002243 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00002246 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00002249 orq %r10, %rax + 0x0f, 0x84, 0x05, 0xfa, 0xff, 0xff, //0x0000224c je LBB0_210 + //0x00002252 LBB0_397 + 0x44, 0x89, 0xd0, //0x00002252 movl %r10d, %eax + 0xf7, 0xd0, //0x00002255 notl %eax + 0x21, 0xf8, //0x00002257 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x00002259 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xd1, //0x0000225c orl %r10d, %ecx + 0x89, 0xce, //0x0000225f movl %ecx, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002261 movl $2863311530, %ebx + 0x31, 0xde, //0x00002266 xorl %ebx, %esi + 0x21, 0xfe, //0x00002268 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000226a andl $-1431655766, %esi + 0x45, 0x31, 0xd2, //0x00002270 xorl %r10d, %r10d + 0x01, 0xc6, //0x00002273 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc2, //0x00002275 setb %r10b + 0x01, 0xf6, //0x00002279 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000227b xorl $1431655765, %esi + 0x21, 0xce, //0x00002281 andl %ecx, %esi + 0xf7, 0xd6, //0x00002283 notl %esi + 0x21, 0xf2, //0x00002285 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00002287 testq %rdx, %rdx + 0x0f, 0x85, 0xd0, 0xf9, 0xff, 0xff, //0x0000228a jne LBB0_211 + //0x00002290 LBB0_398 + 0x49, 0x83, 0xc3, 0x20, //0x00002290 addq $32, %r11 + 0x49, 0x83, 0xc4, 0xe0, //0x00002294 addq $-32, %r12 + //0x00002298 LBB0_399 + 0x4d, 0x85, 0xd2, //0x00002298 testq %r10, %r10 + 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x0000229b jne LBB0_411 + 0x4c, 0x8b, 0x55, 0xb0, //0x000022a1 movq $-80(%rbp), %r10 + 0x4d, 0x85, 0xe4, //0x000022a5 testq %r12, %r12 + 0x0f, 0x84, 0x07, 0x01, 0x00, 0x00, //0x000022a8 je LBB0_416 + //0x000022ae LBB0_401 + 0x49, 0x8d, 0x4b, 0x01, //0x000022ae leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000022b2 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000022b6 cmpb $34, %bl + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x000022b9 je LBB0_406 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x000022bf leaq $-1(%r12), %rdx + 0x80, 0xfb, 0x5c, //0x000022c4 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000022c7 je LBB0_404 + 0x49, 0x89, 0xd4, //0x000022cd movq %rdx, %r12 + 0x49, 0x89, 0xcb, //0x000022d0 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000022d3 testq %rdx, %rdx + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x000022d6 jne LBB0_401 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x000022dc jmp LBB0_416 + //0x000022e1 LBB0_404 + 0x48, 0x85, 0xd2, //0x000022e1 testq %rdx, %rdx + 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x000022e4 je LBB0_416 + 0x48, 0x03, 0x4d, 0x98, //0x000022ea addq $-104(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000022ee cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x000022f2 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x000022f6 addq $2, %r11 + 0x49, 0x83, 0xc4, 0xfe, //0x000022fa addq $-2, %r12 + 0x4c, 0x89, 0xe2, //0x000022fe movq %r12, %rdx + 0x48, 0x85, 0xd2, //0x00002301 testq %rdx, %rdx + 0x0f, 0x85, 0xa4, 0xff, 0xff, 0xff, //0x00002304 jne LBB0_401 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x0000230a jmp LBB0_416 + //0x0000230f LBB0_406 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000230f movq $-48(%rbp), %r12 + //0x00002313 LBB0_407 + 0x4c, 0x29, 0xe1, //0x00002313 subq %r12, %rcx + 0x49, 0x89, 0xcb, //0x00002316 movq %rcx, %r11 + 0xe9, 0xa5, 0xeb, 0xff, 0xff, //0x00002319 jmp LBB0_186 + //0x0000231e LBB0_408 + 0x4c, 0x89, 0xdb, //0x0000231e movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x00002321 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002324 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x00002328 addq %rbx, %r9 + 0xe9, 0xb7, 0xf9, 0xff, 0xff, //0x0000232b jmp LBB0_282 + //0x00002330 LBB0_409 + 0x48, 0x85, 0xc0, //0x00002330 testq %rax, %rax + 0x0f, 0x84, 0x7c, 0x00, 0x00, 0x00, //0x00002333 je LBB0_416 + 0x48, 0x8b, 0x4d, 0x98, //0x00002339 movq $-104(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000233d addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002340 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002344 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x00002348 incq %r11 + 0x48, 0xff, 0xc8, //0x0000234b decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x0000234e movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x00002352 testq %rax, %rax + 0x0f, 0x85, 0xf2, 0xf9, 0xff, 0xff, //0x00002355 jne LBB0_347 + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x0000235b jmp LBB0_416 + //0x00002360 LBB0_411 + 0x4d, 0x85, 0xe4, //0x00002360 testq %r12, %r12 + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00002363 je LBB0_416 + 0x48, 0x8b, 0x45, 0x98, //0x00002369 movq $-104(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x0000236d addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x00002370 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x00002374 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x00002378 incq %r11 + 0x49, 0xff, 0xcc, //0x0000237b decq %r12 + 0x4c, 0x8b, 0x55, 0xb0, //0x0000237e movq $-80(%rbp), %r10 + 0x4d, 0x85, 0xe4, //0x00002382 testq %r12, %r12 + 0x0f, 0x85, 0x23, 0xff, 0xff, 0xff, //0x00002385 jne LBB0_401 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x0000238b jmp LBB0_416 + //0x00002390 LBB0_413 + 0x48, 0x89, 0x0e, //0x00002390 movq %rcx, (%rsi) + //0x00002393 LBB0_414 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002393 movq $-1, %rax + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x0000239a jmp LBB0_424 + //0x0000239f LBB0_432 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x0000239f movq $-7, %rax + 0xe9, 0x39, 0x00, 0x00, 0x00, //0x000023a6 jmp LBB0_424 + //0x000023ab LBB0_415 + 0x49, 0x83, 0xfb, 0xff, //0x000023ab cmpq $-1, %r11 + 0x0f, 0x85, 0x93, 0x01, 0x00, 0x00, //0x000023af jne LBB0_417 + //0x000023b5 LBB0_416 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000023b5 movq $-1, %r11 + 0x4c, 0x8b, 0x4d, 0xa0, //0x000023bc movq $-96(%rbp), %r9 + 0xe9, 0x83, 0x01, 0x00, 0x00, //0x000023c0 jmp LBB0_417 + //0x000023c5 LBB0_418 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000023c5 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000023cc jmp LBB0_421 + //0x000023d1 LBB0_420 + 0x48, 0x89, 0xc8, //0x000023d1 movq %rcx, %rax + //0x000023d4 LBB0_421 + 0x48, 0xf7, 0xd0, //0x000023d4 notq %rax + 0x49, 0x01, 0xc7, //0x000023d7 addq %rax, %r15 + //0x000023da LBB0_422 + 0x4c, 0x89, 0x3e, //0x000023da movq %r15, (%rsi) + //0x000023dd LBB0_423 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000023dd movq $-2, %rax + //0x000023e4 LBB0_424 + 0x48, 0x83, 0xc4, 0x70, //0x000023e4 addq $112, %rsp + 0x5b, //0x000023e8 popq %rbx + 0x41, 0x5c, //0x000023e9 popq %r12 + 0x41, 0x5d, //0x000023eb popq %r13 + 0x41, 0x5e, //0x000023ed popq %r14 + 0x41, 0x5f, //0x000023ef popq %r15 + 0x5d, //0x000023f1 popq %rbp + 0xc3, //0x000023f2 retq + //0x000023f3 LBB0_431 + 0x48, 0x89, 0x0e, //0x000023f3 movq %rcx, (%rsi) + 0xe9, 0xe9, 0xff, 0xff, 0xff, //0x000023f6 jmp LBB0_424 + //0x000023fb LBB0_425 + 0x49, 0x83, 0xf9, 0xff, //0x000023fb cmpq $-1, %r9 + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x000023ff jne LBB0_426 + 0x49, 0x0f, 0xbc, 0xc4, //0x00002405 bsfq %r12, %rax + 0xe9, 0x29, 0x01, 0x00, 0x00, //0x00002409 jmp LBB0_445 + //0x0000240e LBB0_427 + 0x49, 0x83, 0xf9, 0xff, //0x0000240e cmpq $-1, %r9 + 0x0f, 0x84, 0x1b, 0x01, 0x00, 0x00, //0x00002412 je LBB0_444 + //0x00002418 LBB0_426 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002418 movq $-2, %r11 + 0xe9, 0x24, 0x01, 0x00, 0x00, //0x0000241f jmp LBB0_417 + //0x00002424 LBB0_429 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002424 movq $-1, %r11 + //0x0000242b LBB0_430 + 0x4d, 0x29, 0xdf, //0x0000242b subq %r11, %r15 + 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x0000242e jmp LBB0_422 + //0x00002433 LBB0_433 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002433 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x0000243a cmpb $97, %cl + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x0000243d jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x02, //0x00002443 leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002447 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x0000244a cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0x8e, 0xff, 0xff, 0xff, //0x00002450 jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x03, //0x00002456 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000245a movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x73, //0x0000245d cmpb $115, $3(%r12,%r15) + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x00002463 jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x04, //0x00002469 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000246d movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x04, 0x65, //0x00002470 cmpb $101, $4(%r12,%r15) + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x00002476 jne LBB0_424 + 0x49, 0x83, 0xc7, 0x05, //0x0000247c addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x00002480 movq %r15, (%rsi) + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00002483 jmp LBB0_424 + //0x00002488 LBB0_257 + 0x4c, 0x89, 0x3e, //0x00002488 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000248b movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x00002492 cmpb $110, (%r10) + 0x0f, 0x85, 0x48, 0xff, 0xff, 0xff, //0x00002496 jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x01, //0x0000249c leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024a0 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x75, //0x000024a3 cmpb $117, $1(%r12,%r15) + 0x0f, 0x85, 0x35, 0xff, 0xff, 0xff, //0x000024a9 jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x02, //0x000024af leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024b3 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x000024b6 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0x22, 0xff, 0xff, 0xff, //0x000024bc jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x03, //0x000024c2 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024c6 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x6c, //0x000024c9 cmpb $108, $3(%r12,%r15) + 0x0f, 0x85, 0x0f, 0xff, 0xff, 0xff, //0x000024cf jne LBB0_424 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000024d5 jmp LBB0_442 + //0x000024da LBB0_438 + 0x4c, 0x89, 0x3e, //0x000024da movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000024dd movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x000024e4 cmpb $116, (%r10) + 0x0f, 0x85, 0xf6, 0xfe, 0xff, 0xff, //0x000024e8 jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x01, //0x000024ee leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024f2 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x72, //0x000024f5 cmpb $114, $1(%r12,%r15) + 0x0f, 0x85, 0xe3, 0xfe, 0xff, 0xff, //0x000024fb jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x02, //0x00002501 leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002505 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x75, //0x00002508 cmpb $117, $2(%r12,%r15) + 0x0f, 0x85, 0xd0, 0xfe, 0xff, 0xff, //0x0000250e jne LBB0_424 + 0x49, 0x8d, 0x4f, 0x03, //0x00002514 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002518 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x65, //0x0000251b cmpb $101, $3(%r12,%r15) + 0x0f, 0x85, 0xbd, 0xfe, 0xff, 0xff, //0x00002521 jne LBB0_424 + //0x00002527 LBB0_442 + 0x49, 0x83, 0xc7, 0x04, //0x00002527 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x0000252b movq %r15, (%rsi) + 0xe9, 0xb1, 0xfe, 0xff, 0xff, //0x0000252e jmp LBB0_424 + //0x00002533 LBB0_444 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002533 bsfq %rdx, %rax + //0x00002537 LBB0_445 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00002537 subq $-48(%rbp), %r11 + //0x0000253b LBB0_446 + 0x49, 0x01, 0xc3, //0x0000253b addq %rax, %r11 + //0x0000253e LBB0_447 + 0x4d, 0x89, 0xd9, //0x0000253e movq %r11, %r9 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002541 movq $-2, %r11 + //0x00002548 LBB0_417 + 0x48, 0x8b, 0x45, 0xc8, //0x00002548 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000254c movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x0000254f movq %r11, %rax + 0xe9, 0x8d, 0xfe, 0xff, 0xff, //0x00002552 jmp LBB0_424 + //0x00002557 LBB0_449 + 0x4c, 0x89, 0x55, 0xa0, //0x00002557 movq %r10, $-96(%rbp) + 0xe9, 0x55, 0xfe, 0xff, 0xff, //0x0000255b jmp LBB0_416 + //0x00002560 LBB0_308 + 0x4c, 0x01, 0xd9, //0x00002560 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002563 movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x0000256a movq %rcx, %r9 + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x0000256d jmp LBB0_417 + //0x00002572 LBB0_448 + 0x4c, 0x89, 0x75, 0xa0, //0x00002572 movq %r14, $-96(%rbp) + 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x00002576 jmp LBB0_416 + //0x0000257b LBB0_450 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000257b bsfq %rdi, %rax + 0x4d, 0x29, 0xe3, //0x0000257f subq %r12, %r11 + 0xe9, 0xb4, 0xff, 0xff, 0xff, //0x00002582 jmp LBB0_446 + //0x00002587 LBB0_451 + 0x4d, 0x29, 0xe3, //0x00002587 subq %r12, %r11 + 0xe9, 0xaf, 0xff, 0xff, 0xff, //0x0000258a jmp LBB0_447 + 0x90, //0x0000258f .p2align 2, 0x90 + // // .set L0_0_set_33, LBB0_33-LJTI0_0 + // // .set L0_0_set_35, LBB0_35-LJTI0_0 + // // .set L0_0_set_38, LBB0_38-LJTI0_0 + // // .set L0_0_set_58, LBB0_58-LJTI0_0 + // // .set L0_0_set_60, LBB0_60-LJTI0_0 + // // .set L0_0_set_63, LBB0_63-LJTI0_0 + //0x00002590 LJTI0_0 + 0xb2, 0xdd, 0xff, 0xff, //0x00002590 .long L0_0_set_33 + 0xcb, 0xdd, 0xff, 0xff, //0x00002594 .long L0_0_set_35 + 0xf7, 0xdd, 0xff, 0xff, //0x00002598 .long L0_0_set_38 + 0xb3, 0xdf, 0xff, 0xff, //0x0000259c .long L0_0_set_58 + 0xca, 0xdf, 0xff, 0xff, //0x000025a0 .long L0_0_set_60 + 0xf4, 0xdf, 0xff, 0xff, //0x000025a4 .long L0_0_set_63 + // // .set L0_1_set_424, LBB0_424-LJTI0_1 + // // .set L0_1_set_423, LBB0_423-LJTI0_1 + // // .set L0_1_set_197, LBB0_197-LJTI0_1 + // // .set L0_1_set_216, LBB0_216-LJTI0_1 + // // .set L0_1_set_68, LBB0_68-LJTI0_1 + // // .set L0_1_set_250, LBB0_250-LJTI0_1 + // // .set L0_1_set_252, LBB0_252-LJTI0_1 + // // .set L0_1_set_255, LBB0_255-LJTI0_1 + // // .set L0_1_set_261, LBB0_261-LJTI0_1 + // // .set L0_1_set_265, LBB0_265-LJTI0_1 + //0x000025a8 LJTI0_1 + 0x3c, 0xfe, 0xff, 0xff, //0x000025a8 .long L0_1_set_424 + 0x35, 0xfe, 0xff, 0xff, //0x000025ac .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025b0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025b4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025b8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025bc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025c0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025c4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025c8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025cc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025d0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025d4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025d8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025dc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025e0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025e4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025e8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025ec .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025f0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025f4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025f8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000025fc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002600 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002604 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002608 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000260c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002610 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002614 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002618 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000261c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002620 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002624 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002628 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000262c .long L0_1_set_423 + 0xd2, 0xe9, 0xff, 0xff, //0x00002630 .long L0_1_set_197 + 0x35, 0xfe, 0xff, 0xff, //0x00002634 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002638 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000263c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002640 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002644 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002648 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000264c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002650 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002654 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002658 .long L0_1_set_423 + 0x7f, 0xeb, 0xff, 0xff, //0x0000265c .long L0_1_set_216 + 0x35, 0xfe, 0xff, 0xff, //0x00002660 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002664 .long L0_1_set_423 + 0x24, 0xe0, 0xff, 0xff, //0x00002668 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x0000266c .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x00002670 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x00002674 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x00002678 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x0000267c .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x00002680 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x00002684 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x00002688 .long L0_1_set_68 + 0x24, 0xe0, 0xff, 0xff, //0x0000268c .long L0_1_set_68 + 0x35, 0xfe, 0xff, 0xff, //0x00002690 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002694 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002698 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000269c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026a0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026a4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026a8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026ac .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026b0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026b4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026b8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026bc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026c0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026c4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026c8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026cc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026d0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026d4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026d8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026dc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026e0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026e4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026e8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026ec .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026f0 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026f4 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026f8 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x000026fc .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002700 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002704 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002708 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000270c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002710 .long L0_1_set_423 + 0xd7, 0xed, 0xff, 0xff, //0x00002714 .long L0_1_set_250 + 0x35, 0xfe, 0xff, 0xff, //0x00002718 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000271c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002720 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002724 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002728 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000272c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002730 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002734 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002738 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000273c .long L0_1_set_423 + 0xfe, 0xed, 0xff, 0xff, //0x00002740 .long L0_1_set_252 + 0x35, 0xfe, 0xff, 0xff, //0x00002744 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002748 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000274c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002750 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002754 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002758 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000275c .long L0_1_set_423 + 0x28, 0xee, 0xff, 0xff, //0x00002760 .long L0_1_set_255 + 0x35, 0xfe, 0xff, 0xff, //0x00002764 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002768 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000276c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002770 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002774 .long L0_1_set_423 + 0x4b, 0xee, 0xff, 0xff, //0x00002778 .long L0_1_set_261 + 0x35, 0xfe, 0xff, 0xff, //0x0000277c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002780 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002784 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002788 .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x0000278c .long L0_1_set_423 + 0x35, 0xfe, 0xff, 0xff, //0x00002790 .long L0_1_set_423 + 0x81, 0xee, 0xff, 0xff, //0x00002794 .long L0_1_set_265 + // // .set L0_2_set_241, LBB0_241-LJTI0_2 + // // .set L0_2_set_294, LBB0_294-LJTI0_2 + // // .set L0_2_set_248, LBB0_248-LJTI0_2 + // // .set L0_2_set_243, LBB0_243-LJTI0_2 + // // .set L0_2_set_246, LBB0_246-LJTI0_2 + //0x00002798 LJTI0_2 + 0x63, 0xeb, 0xff, 0xff, //0x00002798 .long L0_2_set_241 + 0xef, 0xee, 0xff, 0xff, //0x0000279c .long L0_2_set_294 + 0x63, 0xeb, 0xff, 0xff, //0x000027a0 .long L0_2_set_241 + 0xcc, 0xeb, 0xff, 0xff, //0x000027a4 .long L0_2_set_248 + 0xef, 0xee, 0xff, 0xff, //0x000027a8 .long L0_2_set_294 + 0x88, 0xeb, 0xff, 0xff, //0x000027ac .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027b0 .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027b4 .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027b8 .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027bc .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027c0 .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027c4 .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027c8 .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027cc .long L0_2_set_243 + 0x88, 0xeb, 0xff, 0xff, //0x000027d0 .long L0_2_set_243 + 0xef, 0xee, 0xff, 0xff, //0x000027d4 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027d8 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027dc .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027e0 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027e4 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027e8 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027ec .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027f0 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027f4 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027f8 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x000027fc .long L0_2_set_294 + 0xb1, 0xeb, 0xff, 0xff, //0x00002800 .long L0_2_set_246 + 0xef, 0xee, 0xff, 0xff, //0x00002804 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002808 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000280c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002810 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002814 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002818 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000281c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002820 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002824 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002828 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000282c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002830 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002834 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002838 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000283c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002840 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002844 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002848 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000284c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002850 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002854 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002858 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000285c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002860 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002864 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002868 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000286c .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002870 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002874 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x00002878 .long L0_2_set_294 + 0xef, 0xee, 0xff, 0xff, //0x0000287c .long L0_2_set_294 + 0xb1, 0xeb, 0xff, 0xff, //0x00002880 .long L0_2_set_246 + // // .set L0_3_set_93, LBB0_93-LJTI0_3 + // // .set L0_3_set_148, LBB0_148-LJTI0_3 + // // .set L0_3_set_100, LBB0_100-LJTI0_3 + // // .set L0_3_set_95, LBB0_95-LJTI0_3 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + //0x00002884 LJTI0_3 + 0x00, 0xdf, 0xff, 0xff, //0x00002884 .long L0_3_set_93 + 0x65, 0xe3, 0xff, 0xff, //0x00002888 .long L0_3_set_148 + 0x00, 0xdf, 0xff, 0xff, //0x0000288c .long L0_3_set_93 + 0x5f, 0xdf, 0xff, 0xff, //0x00002890 .long L0_3_set_100 + 0x65, 0xe3, 0xff, 0xff, //0x00002894 .long L0_3_set_148 + 0x1c, 0xdf, 0xff, 0xff, //0x00002898 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x0000289c .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028a0 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028a4 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028a8 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028ac .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028b0 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028b4 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028b8 .long L0_3_set_95 + 0x1c, 0xdf, 0xff, 0xff, //0x000028bc .long L0_3_set_95 + 0x65, 0xe3, 0xff, 0xff, //0x000028c0 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028c4 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028c8 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028cc .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028d0 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028d4 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028d8 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028dc .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028e0 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028e4 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028e8 .long L0_3_set_148 + 0x44, 0xdf, 0xff, 0xff, //0x000028ec .long L0_3_set_98 + 0x65, 0xe3, 0xff, 0xff, //0x000028f0 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028f4 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028f8 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x000028fc .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002900 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002904 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002908 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x0000290c .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002910 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002914 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002918 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x0000291c .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002920 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002924 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002928 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x0000292c .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002930 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002934 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002938 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x0000293c .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002940 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002944 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002948 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x0000294c .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002950 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002954 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002958 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x0000295c .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002960 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002964 .long L0_3_set_148 + 0x65, 0xe3, 0xff, 0xff, //0x00002968 .long L0_3_set_148 + 0x44, 0xdf, 0xff, 0xff, //0x0000296c .long L0_3_set_98 + //0x00002970 .p2align 2, 0x00 + //0x00002970 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002970 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa.go new file mode 100644 index 000000000..466402b64 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_u64toa func(out unsafe.Pointer, val uint64) (ret int) + +var S_u64toa uintptr + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return F_u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_subr.go new file mode 100644 index 000000000..f89e626c7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_subr.go @@ -0,0 +1,39 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__u64toa = 64 +) + +const ( + _stack__u64toa = 8 +) + +const ( + _size__u64toa = 1232 +) + +var ( + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {756, 8}, + {757, 0}, + {1221, 8}, + {1223, 0}, + } +) + +var _cfunc_u64toa = []loader.CFunc{ + {"_u64toa_entry", 0, _entry__u64toa, 0, nil}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_text_amd64.go new file mode 100644 index 000000000..9348e2b1b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/u64toa_text_amd64.go @@ -0,0 +1,371 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_u64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209 + //0x00000010 LCPI0_3 + 0x0a, 0x00, //0x00000010 .word 10 + 0x0a, 0x00, //0x00000012 .word 10 + 0x0a, 0x00, //0x00000014 .word 10 + 0x0a, 0x00, //0x00000016 .word 10 + 0x0a, 0x00, //0x00000018 .word 10 + 0x0a, 0x00, //0x0000001a .word 10 + 0x0a, 0x00, //0x0000001c .word 10 + 0x0a, 0x00, //0x0000001e .word 10 + //0x00000020 LCPI0_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000020 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000030 .p2align 3, 0x00 + //0x00000030 LCPI0_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000030 .quad -9223315738079846203 + //0x00000038 LCPI0_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000038 .quad -9223336852348469120 + //0x00000040 .p2align 4, 0x90 + //0x00000040 _u64toa + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000044 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x0000004b ja LBB0_8 + 0x0f, 0xb7, 0xc6, //0x00000051 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000054 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000057 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000005d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000060 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000064 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000067 movl %esi, %ecx + 0x29, 0xc1, //0x00000069 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x0000006b movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x0000006e addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000071 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000077 jb LBB0_3 + 0x48, 0x8d, 0x0d, 0x8c, 0x04, 0x00, 0x00, //0x0000007d leaq $1164(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000084 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000087 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000089 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000008e jmp LBB0_4 + //0x00000093 LBB0_3 + 0x31, 0xc9, //0x00000093 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000095 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000098 jb LBB0_5 + //0x0000009e LBB0_4 + 0x0f, 0xb7, 0xd2, //0x0000009e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000000a1 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x64, 0x04, 0x00, 0x00, //0x000000a5 leaq $1124(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000000ac movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x000000af movl %ecx, %esi + 0xff, 0xc1, //0x000000b1 incl %ecx + 0x88, 0x14, 0x37, //0x000000b3 movb %dl, (%rdi,%rsi) + //0x000000b6 LBB0_6 + 0x48, 0x8d, 0x15, 0x53, 0x04, 0x00, 0x00, //0x000000b6 leaq $1107(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x000000bd movb (%rax,%rdx), %dl + 0x89, 0xce, //0x000000c0 movl %ecx, %esi + 0xff, 0xc1, //0x000000c2 incl %ecx + 0x88, 0x14, 0x37, //0x000000c4 movb %dl, (%rdi,%rsi) + //0x000000c7 LBB0_7 + 0x0f, 0xb7, 0xc0, //0x000000c7 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000000ca orq $1, %rax + 0x48, 0x8d, 0x15, 0x3b, 0x04, 0x00, 0x00, //0x000000ce leaq $1083(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x000000d5 movb (%rax,%rdx), %al + 0x89, 0xca, //0x000000d8 movl %ecx, %edx + 0xff, 0xc1, //0x000000da incl %ecx + 0x88, 0x04, 0x17, //0x000000dc movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x000000df movl %ecx, %eax + 0x5d, //0x000000e1 popq %rbp + 0xc3, //0x000000e2 retq + //0x000000e3 LBB0_5 + 0x31, 0xc9, //0x000000e3 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000000e5 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000e8 jae LBB0_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000ee jmp LBB0_7 + //0x000000f3 LBB0_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000000f3 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x000000fa ja LBB0_16 + 0x89, 0xf0, //0x00000100 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000102 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000107 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000010b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000010f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000116 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000118 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000011b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000122 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000126 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x0000012a movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000012d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000130 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000136 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000139 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000013c subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000013e movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000142 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000145 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000148 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000014b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000151 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000154 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000158 imull $100, %eax, %eax + 0x29, 0xc1, //0x0000015b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x0000015d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000161 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000164 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000016a jb LBB0_11 + 0x48, 0x8d, 0x05, 0x99, 0x03, 0x00, 0x00, //0x00000170 leaq $921(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000177 movb (%r10,%rax), %al + 0x88, 0x07, //0x0000017b movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000017d movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000182 jmp LBB0_12 + //0x00000187 LBB0_11 + 0x31, 0xc9, //0x00000187 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000189 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x0000018f jb LBB0_13 + //0x00000195 LBB0_12 + 0x44, 0x89, 0xd0, //0x00000195 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000198 orq $1, %rax + 0x48, 0x8d, 0x35, 0x6d, 0x03, 0x00, 0x00, //0x0000019c leaq $877(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000001a3 movb (%rax,%rsi), %al + 0x89, 0xce, //0x000001a6 movl %ecx, %esi + 0xff, 0xc1, //0x000001a8 incl %ecx + 0x88, 0x04, 0x37, //0x000001aa movb %al, (%rdi,%rsi) + //0x000001ad LBB0_14 + 0x48, 0x8d, 0x05, 0x5c, 0x03, 0x00, 0x00, //0x000001ad leaq $860(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x000001b4 movb (%r9,%rax), %al + 0x89, 0xce, //0x000001b8 movl %ecx, %esi + 0xff, 0xc1, //0x000001ba incl %ecx + 0x88, 0x04, 0x37, //0x000001bc movb %al, (%rdi,%rsi) + //0x000001bf LBB0_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x000001bf movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001c3 orq $1, %rax + 0x48, 0x8d, 0x35, 0x42, 0x03, 0x00, 0x00, //0x000001c7 leaq $834(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000001ce movb (%rax,%rsi), %al + 0x89, 0xca, //0x000001d1 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x000001d3 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x000001d6 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x000001da movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x000001de movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001e2 orq $1, %rax + 0x8a, 0x04, 0x30, //0x000001e6 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x000001e9 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x000001ed movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x000001f1 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x000001f5 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001f9 orq $1, %rax + 0x8a, 0x04, 0x30, //0x000001fd movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000200 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000203 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000207 movl %ecx, %eax + 0x5d, //0x00000209 popq %rbp + 0xc3, //0x0000020a retq + //0x0000020b LBB0_13 + 0x31, 0xc9, //0x0000020b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000020d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000213 jae LBB0_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000219 jmp LBB0_15 + //0x0000021e LBB0_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000021e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000228 cmpq %rax, %rsi + 0x0f, 0x87, 0x05, 0x01, 0x00, 0x00, //0x0000022b ja LBB0_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000231 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000023b movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000023e mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000241 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000245 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000024b subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000024d vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00000251 vmovdqu $-601(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00000259 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000025d vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000262 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000267 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000026c vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00000270 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000274 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000278 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000027d vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000282 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xa1, 0xfd, 0xff, 0xff, //0x00000287 vmovddup $-607(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000028f vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x9d, 0xfd, 0xff, 0xff, //0x00000293 vmovddup $-611(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000029b vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x69, 0xfd, 0xff, 0xff, //0x0000029f vmovdqu $-663(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000002a7 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000002ab vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000002b0 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000002b4 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000002b8 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000002bc vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000002c1 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000002c5 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000002c9 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000002cd vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000002d2 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000002d7 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000002dc vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000002e0 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000002e4 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000002e8 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000002ed vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000002f1 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x23, 0xfd, 0xff, 0xff, //0x000002f5 vpaddb $-733(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x000002fd vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00000301 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000305 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000309 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000030e xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00000313 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000316 movl $16, %ecx + 0x29, 0xc1, //0x0000031b subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000031d shlq $4, %rax + 0x48, 0x8d, 0x15, 0xb8, 0x02, 0x00, 0x00, //0x00000321 leaq $696(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x00000328 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x0000032e vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x00000332 movl %ecx, %eax + 0x5d, //0x00000334 popq %rbp + 0xc3, //0x00000335 retq + //0x00000336 LBB0_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000336 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00000340 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000343 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00000346 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000034a movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00000354 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x00000358 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000035b cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000035e ja LBB0_20 + 0x80, 0xc2, 0x30, //0x00000364 addb $48, %dl + 0x88, 0x17, //0x00000367 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000369 movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x0000036e jmp LBB0_25 + //0x00000373 LBB0_20 + 0x83, 0xfa, 0x63, //0x00000373 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00000376 ja LBB0_22 + 0x89, 0xd0, //0x0000037c movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x8b, 0x01, 0x00, 0x00, //0x0000037e leaq $395(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00000385 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00000388 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x0000038c movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x0000038e movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000391 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00000396 jmp LBB0_25 + //0x0000039b LBB0_22 + 0x89, 0xd0, //0x0000039b movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000039d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000003a0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000003a6 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000003a9 cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000003af ja LBB0_24 + 0x83, 0xc0, 0x30, //0x000003b5 addl $48, %eax + 0x88, 0x07, //0x000003b8 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x000003ba movzwl %dx, %eax + 0x89, 0xc1, //0x000003bd movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x000003bf shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000003c2 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000003c8 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x000003cb imull $100, %ecx, %ecx + 0x29, 0xc8, //0x000003ce subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x000003d0 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x36, 0x01, 0x00, 0x00, //0x000003d3 leaq $310(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000003da movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000003dd movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000003e1 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000003e4 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000003e7 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000003ec jmp LBB0_25 + //0x000003f1 LBB0_24 + 0x6b, 0xc8, 0x64, //0x000003f1 imull $100, %eax, %ecx + 0x29, 0xca, //0x000003f4 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x000003f6 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0x10, 0x01, 0x00, 0x00, //0x000003f9 leaq $272(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00000400 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00000404 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x00000409 movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000040b movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x0000040e movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x00000411 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x00000415 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x00000418 movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x0000041b orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x0000041e movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x00000421 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x00000425 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000428 movl $4, %ecx + //0x0000042d LBB0_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000042d movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00000437 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000043a mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x0000043d shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00000441 vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0xb3, 0xfb, 0xff, 0xff, //0x00000445 vmovdqu $-1101(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000044d vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00000451 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000456 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000045b vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00000460 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00000464 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000468 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000046c vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000471 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000476 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xad, 0xfb, 0xff, 0xff, //0x0000047b vmovddup $-1107(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x00000483 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0xa9, 0xfb, 0xff, 0xff, //0x00000487 vmovddup $-1111(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000048f vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x75, 0xfb, 0xff, 0xff, //0x00000493 vmovdqu $-1163(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x0000049b vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000049f vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000004a4 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000004a8 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000004ae subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000004b0 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000004b4 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000004b8 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000004bd vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000004c1 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000004c5 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000004c9 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000004ce vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000004d3 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000004d8 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000004dc vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000004e0 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000004e4 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000004e9 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000004ed vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x27, 0xfb, 0xff, 0xff, //0x000004f1 vpaddb $-1241(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x000004f9 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000004fb vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00000500 orl $16, %ecx + 0x89, 0xc8, //0x00000503 movl %ecx, %eax + 0x5d, //0x00000505 popq %rbp + 0xc3, //0x00000506 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000507 .p2align 4, 0x00 + //0x00000510 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000510 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000520 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000530 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000540 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000550 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000560 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000570 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000580 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000590 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000005a0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000005b0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000005c0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x000005d0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005d8 .p2align 4, 0x00 + //0x000005e0 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x000005e0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x000005f0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000600 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000610 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000620 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000630 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000640 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000650 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000660 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/unquote.go b/vendor/github.com/bytedance/sonic/internal/native/avx/unquote.go new file mode 100644 index 000000000..be4bd43a0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/unquote.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + +var S_unquote uintptr + +//go:nosplit +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return F_unquote(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(ep)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/unquote_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/unquote_subr.go new file mode 100644 index 000000000..47db5a61d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/unquote_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__unquote = 16 +) + +const ( + _stack__unquote = 88 +) + +const ( + _size__unquote = 2272 +) + +var ( + _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}, + } +) + +var _cfunc_unquote = []loader.CFunc{ + {"_unquote_entry", 0, _entry__unquote, 0, nil}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/unquote_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/unquote_text_amd64.go new file mode 100644 index 000000000..2e63621cd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/unquote_text_amd64.go @@ -0,0 +1,639 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_unquote = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, // QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000010 .p2align 4, 0x90 + //0x00000010 _unquote + 0x55, //0x00000010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp + 0x41, 0x57, //0x00000014 pushq %r15 + 0x41, 0x56, //0x00000016 pushq %r14 + 0x41, 0x55, //0x00000018 pushq %r13 + 0x41, 0x54, //0x0000001a pushq %r12 + 0x53, //0x0000001c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000001d subq $40, %rsp + 0x48, 0x85, 0xf6, //0x00000021 testq %rsi, %rsi + 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x00000024 je LBB0_82 + 0x49, 0x89, 0xf3, //0x0000002a movq %rsi, %r11 + 0x48, 0x89, 0x4d, 0xc8, //0x0000002d movq %rcx, $-56(%rbp) + 0x4c, 0x89, 0xc0, //0x00000031 movq %r8, %rax + 0x4c, 0x89, 0x45, 0xb8, //0x00000034 movq %r8, $-72(%rbp) + 0x45, 0x89, 0xc2, //0x00000038 movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x0000003b andl $1, %r10d + 0x4c, 0x8d, 0x05, 0xaa, 0x08, 0x00, 0x00, //0x0000003f leaq $2218(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x00000046 vmovdqu $-78(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x49, 0x89, 0xf9, //0x0000004e movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x00000051 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x00000054 movq %rdx, %rax + //0x00000057 LBB0_2 + 0x41, 0x80, 0x39, 0x5c, //0x00000057 cmpb $92, (%r9) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x0000005b jne LBB0_4 + 0x31, 0xf6, //0x00000061 xorl %esi, %esi + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00000063 jmp LBB0_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000068 .p2align 4, 0x90 + //0x00000070 LBB0_4 + 0x4d, 0x89, 0xef, //0x00000070 movq %r13, %r15 + 0x48, 0x89, 0xc6, //0x00000073 movq %rax, %rsi + 0x4d, 0x89, 0xce, //0x00000076 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x10, //0x00000079 cmpq $16, %r13 + 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x0000007d jl LBB0_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000083 .p2align 4, 0x90 + //0x00000090 LBB0_5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x0e, //0x00000090 vmovdqu (%r14), %xmm1 + 0xc5, 0xfa, 0x7f, 0x0e, //0x00000095 vmovdqu %xmm1, (%rsi) + 0xc5, 0xf1, 0x74, 0xc8, //0x00000099 vpcmpeqb %xmm0, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xd9, //0x0000009d vpmovmskb %xmm1, %ebx + 0x66, 0x85, 0xdb, //0x000000a1 testw %bx, %bx + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x000000a4 jne LBB0_12 + 0x49, 0x83, 0xc6, 0x10, //0x000000aa addq $16, %r14 + 0x48, 0x83, 0xc6, 0x10, //0x000000ae addq $16, %rsi + 0x49, 0x83, 0xff, 0x1f, //0x000000b2 cmpq $31, %r15 + 0x4d, 0x8d, 0x7f, 0xf0, //0x000000b6 leaq $-16(%r15), %r15 + 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x000000ba jg LBB0_5 + //0x000000c0 LBB0_7 + 0x4d, 0x85, 0xff, //0x000000c0 testq %r15, %r15 + 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x000000c3 je LBB0_83 + 0x31, 0xdb, //0x000000c9 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000cb .p2align 4, 0x90 + //0x000000d0 LBB0_9 + 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x000000d0 movzbl (%r14,%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x000000d5 cmpb $92, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000000d8 je LBB0_11 + 0x88, 0x0c, 0x1e, //0x000000de movb %cl, (%rsi,%rbx) + 0x48, 0xff, 0xc3, //0x000000e1 incq %rbx + 0x49, 0x39, 0xdf, //0x000000e4 cmpq %rbx, %r15 + 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x000000e7 jne LBB0_9 + 0xe9, 0xac, 0x05, 0x00, 0x00, //0x000000ed jmp LBB0_83 + //0x000000f2 LBB0_11 + 0x49, 0x01, 0xde, //0x000000f2 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x000000f5 subq %r9, %r14 + 0x4c, 0x89, 0xf6, //0x000000f8 movq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x000000fb cmpq $-1, %rsi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000000ff jne LBB0_13 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00000105 jmp LBB0_83 + //0x0000010a LBB0_12 + 0x0f, 0xb7, 0xcb, //0x0000010a movzwl %bx, %ecx + 0x4d, 0x29, 0xce, //0x0000010d subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xf1, //0x00000110 bsfq %rcx, %rsi + 0x4c, 0x01, 0xf6, //0x00000114 addq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00000117 cmpq $-1, %rsi + 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x0000011b je LBB0_83 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000121 .p2align 4, 0x90 + //0x00000130 LBB0_13 + 0x48, 0x8d, 0x4e, 0x02, //0x00000130 leaq $2(%rsi), %rcx + 0x49, 0x29, 0xcd, //0x00000134 subq %rcx, %r13 + 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00000137 js LBB0_94 + 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x0000013d leaq $2(%r9,%rsi), %r9 + 0x4d, 0x85, 0xd2, //0x00000142 testq %r10, %r10 + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00000145 jne LBB0_58 + //0x0000014b LBB0_15 + 0x48, 0x01, 0xf0, //0x0000014b addq %rsi, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x0000014e movzbl $-1(%r9), %ecx + 0x42, 0x8a, 0x0c, 0x01, //0x00000153 movb (%rcx,%r8), %cl + 0x80, 0xf9, 0xff, //0x00000157 cmpb $-1, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000015a je LBB0_18 + 0x84, 0xc9, //0x00000160 testb %cl, %cl + 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00000162 je LBB0_95 + 0x88, 0x08, //0x00000168 movb %cl, (%rax) + 0x48, 0xff, 0xc0, //0x0000016a incq %rax + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x0000016d jmp LBB0_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000172 .p2align 4, 0x90 + //0x00000180 LBB0_18 + 0x49, 0x83, 0xfd, 0x03, //0x00000180 cmpq $3, %r13 + 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00000184 jle LBB0_94 + 0x41, 0x8b, 0x31, //0x0000018a movl (%r9), %esi + 0x89, 0xf1, //0x0000018d movl %esi, %ecx + 0xf7, 0xd1, //0x0000018f notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000191 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00000197 andl $-2139062144, %ecx + 0x85, 0xd9, //0x0000019d testl %ebx, %ecx + 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x0000019f jne LBB0_85 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x000001a5 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x000001ab orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x000001ad testl $-2139062144, %ebx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x000001b3 jne LBB0_85 + 0x89, 0xf3, //0x000001b9 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000001bb andl $2139062143, %ebx + 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x000001c1 movl $-1061109568, %r14d + 0x41, 0x29, 0xde, //0x000001c7 subl %ebx, %r14d + 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x000001ca leal $1179010630(%rbx), %r15d + 0x41, 0x21, 0xce, //0x000001d1 andl %ecx, %r14d + 0x45, 0x85, 0xfe, //0x000001d4 testl %r15d, %r14d + 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x000001d7 jne LBB0_85 + 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x000001dd movl $-522133280, %r14d + 0x41, 0x29, 0xde, //0x000001e3 subl %ebx, %r14d + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x000001e6 addl $960051513, %ebx + 0x44, 0x21, 0xf1, //0x000001ec andl %r14d, %ecx + 0x85, 0xd9, //0x000001ef testl %ebx, %ecx + 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x000001f1 jne LBB0_85 + 0x0f, 0xce, //0x000001f7 bswapl %esi + 0x89, 0xf1, //0x000001f9 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x000001fb shrl $4, %ecx + 0xf7, 0xd1, //0x000001fe notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000200 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000206 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000209 andl $252645135, %esi + 0x01, 0xce, //0x0000020f addl %ecx, %esi + 0x89, 0xf1, //0x00000211 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00000213 shrl $4, %ecx + 0x09, 0xf1, //0x00000216 orl %esi, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00000218 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x0000021c shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000021f andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00000225 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00000228 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x0000022c cmpl $128, %r15d + 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00000233 jb LBB0_66 + 0x45, 0x31, 0xe4, //0x00000239 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x0000023c testq %r10, %r10 + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x0000023f je LBB0_40 + //0x00000245 LBB0_25 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00000245 cmpl $2048, %r15d + 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x0000024c jb LBB0_68 + 0x44, 0x89, 0xf9, //0x00000252 movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00000255 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x0000025b cmpl $55296, %ecx + 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00000261 jne LBB0_54 + 0x4d, 0x85, 0xf6, //0x00000267 testq %r14, %r14 + 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x0000026a jle LBB0_72 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00000270 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00000276 jne LBB0_73 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x0000027c cmpl $56319, %r15d + 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00000283 ja LBB0_70 + 0x49, 0x83, 0xfe, 0x07, //0x00000289 cmpq $7, %r14 + 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x0000028d jl LBB0_70 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00000293 cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00000299 jne LBB0_70 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x0000029f cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x000002a5 jne LBB0_70 + 0x43, 0x8b, 0x74, 0x21, 0x07, //0x000002ab movl $7(%r9,%r12), %esi + 0x89, 0xf1, //0x000002b0 movl %esi, %ecx + 0xf7, 0xd1, //0x000002b2 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x000002b4 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000002ba andl $-2139062144, %ecx + 0x85, 0xd9, //0x000002c0 testl %ebx, %ecx + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x000002c2 jne LBB0_99 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x000002c8 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x000002ce orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x000002d0 testl $-2139062144, %ebx + 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x000002d6 jne LBB0_99 + 0x89, 0xf3, //0x000002dc movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000002de andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x000002e4 movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x000002eb subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x000002ee movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x000002f2 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x000002f8 movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x000002fb andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x000002fe movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00000301 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00000304 movq $-80(%rbp), %rsi + 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00000308 jne LBB0_99 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000030e movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00000315 subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00000318 addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x0000031e andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00000321 testl %ebx, %ecx + 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00000323 jne LBB0_99 + 0x0f, 0xce, //0x00000329 bswapl %esi + 0x89, 0xf1, //0x0000032b movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x0000032d shrl $4, %ecx + 0xf7, 0xd1, //0x00000330 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000332 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000338 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000033b andl $252645135, %esi + 0x01, 0xce, //0x00000341 addl %ecx, %esi + 0x89, 0xf1, //0x00000343 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00000345 shrl $4, %ecx + 0x09, 0xf1, //0x00000348 orl %esi, %ecx + 0x89, 0xce, //0x0000034a movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x0000034c shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x0000034f andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00000355 movzbl %cl, %ebx + 0x09, 0xf3, //0x00000358 orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000035a andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00000360 cmpl $14417920, %ecx + 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00000366 je LBB0_77 + 0xf6, 0x45, 0xb8, 0x02, //0x0000036c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00000370 je LBB0_114 + 0x49, 0x83, 0xc6, 0xf9, //0x00000376 addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000037a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000037f movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00000383 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x00000387 addq $7, %r12 + 0x41, 0x89, 0xdf, //0x0000038b movl %ebx, %r15d + 0x83, 0xfb, 0x7f, //0x0000038e cmpl $127, %ebx + 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00000391 ja LBB0_25 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00000397 jmp LBB0_53 + 0x90, 0x90, 0x90, 0x90, //0x0000039c .p2align 4, 0x90 + //0x000003a0 LBB0_40 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x000003a0 cmpl $2048, %r15d + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x000003a7 jb LBB0_68 + 0x44, 0x89, 0xf9, //0x000003ad movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x000003b0 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x000003b6 cmpl $55296, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x000003bc jne LBB0_54 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x000003c2 cmpl $56319, %r15d + 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x000003c9 ja LBB0_69 + 0x49, 0x83, 0xfe, 0x06, //0x000003cf cmpq $6, %r14 + 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x000003d3 jl LBB0_69 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x000003d9 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x000003df jne LBB0_69 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x000003e5 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x000003eb jne LBB0_69 + 0x43, 0x8b, 0x74, 0x21, 0x06, //0x000003f1 movl $6(%r9,%r12), %esi + 0x89, 0xf1, //0x000003f6 movl %esi, %ecx + 0xf7, 0xd1, //0x000003f8 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x000003fa leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00000400 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00000406 testl %ebx, %ecx + 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00000408 jne LBB0_98 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x0000040e leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00000414 orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00000416 testl $-2139062144, %ebx + 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x0000041c jne LBB0_98 + 0x89, 0xf3, //0x00000422 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000424 andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000042a movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00000431 subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00000434 movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00000438 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x0000043e movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00000441 andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00000444 movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00000447 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x0000044a movq $-80(%rbp), %rsi + 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x0000044e jne LBB0_98 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000454 movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x0000045b subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000045e addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00000464 andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00000467 testl %ebx, %ecx + 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00000469 jne LBB0_98 + 0x0f, 0xce, //0x0000046f bswapl %esi + 0x89, 0xf1, //0x00000471 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00000473 shrl $4, %ecx + 0xf7, 0xd1, //0x00000476 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000478 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000047e leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000481 andl $252645135, %esi + 0x01, 0xce, //0x00000487 addl %ecx, %esi + 0x89, 0xf1, //0x00000489 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x0000048b shrl $4, %ecx + 0x09, 0xf1, //0x0000048e orl %esi, %ecx + 0x89, 0xce, //0x00000490 movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00000492 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00000495 andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x0000049b movzbl %cl, %ebx + 0x09, 0xf3, //0x0000049e orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x000004a0 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000004a6 cmpl $14417920, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x000004ac je LBB0_76 + 0xf6, 0x45, 0xb8, 0x02, //0x000004b2 testb $2, $-72(%rbp) + 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x000004b6 je LBB0_113 + 0x49, 0x83, 0xc6, 0xfa, //0x000004bc addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000004c0 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000004c5 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x000004c9 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x000004cd addq $6, %r12 + 0x41, 0x89, 0xdf, //0x000004d1 movl %ebx, %r15d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000004d4 cmpl $128, %ebx + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x000004da jae LBB0_40 + //0x000004e0 LBB0_53 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000004e0 leaq $4(%r9,%r12), %r9 + 0x41, 0x89, 0xdf, //0x000004e5 movl %ebx, %r15d + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000004e8 jmp LBB0_67 + 0x90, 0x90, 0x90, //0x000004ed .p2align 4, 0x90 + //0x000004f0 LBB0_54 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000004f0 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x000004f5 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x000004f8 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x000004fb orb $-32, %cl + 0x88, 0x08, //0x000004fe movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00000500 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00000503 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00000506 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000509 orb $-128, %cl + 0x88, 0x48, 0x01, //0x0000050c movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x0000050f andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00000513 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00000517 movb %r15b, $2(%rax) + //0x0000051b LBB0_55 + 0x48, 0x83, 0xc0, 0x03, //0x0000051b addq $3, %rax + //0x0000051f LBB0_56 + 0x4d, 0x89, 0xf5, //0x0000051f movq %r14, %r13 + //0x00000522 LBB0_57 + 0x4d, 0x85, 0xed, //0x00000522 testq %r13, %r13 + 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00000525 jne LBB0_2 + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x0000052b jmp LBB0_96 + //0x00000530 LBB0_58 + 0x45, 0x85, 0xed, //0x00000530 testl %r13d, %r13d + 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00000533 je LBB0_94 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00000539 cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x0000053e jne LBB0_97 + 0x41, 0x80, 0x39, 0x5c, //0x00000544 cmpb $92, (%r9) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000548 jne LBB0_65 + 0x41, 0x83, 0xfd, 0x01, //0x0000054e cmpl $1, %r13d + 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00000552 jle LBB0_94 + 0x41, 0x8a, 0x49, 0x01, //0x00000558 movb $1(%r9), %cl + 0x80, 0xf9, 0x22, //0x0000055c cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x0000055f je LBB0_64 + 0x80, 0xf9, 0x5c, //0x00000565 cmpb $92, %cl + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00000568 jne LBB0_109 + //0x0000056e LBB0_64 + 0x49, 0xff, 0xc1, //0x0000056e incq %r9 + 0x49, 0xff, 0xcd, //0x00000571 decq %r13 + //0x00000574 LBB0_65 + 0x49, 0xff, 0xc1, //0x00000574 incq %r9 + 0x49, 0xff, 0xcd, //0x00000577 decq %r13 + 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x0000057a jmp LBB0_15 + //0x0000057f LBB0_66 + 0x49, 0x83, 0xc1, 0x04, //0x0000057f addq $4, %r9 + //0x00000583 LBB0_67 + 0x44, 0x88, 0x38, //0x00000583 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x00000586 incq %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00000589 jmp LBB0_56 + //0x0000058e LBB0_68 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x0000058e leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00000593 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00000596 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00000599 orb $-64, %cl + 0x88, 0x08, //0x0000059c movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x0000059e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x000005a2 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x000005a6 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x000005aa addq $2, %rax + 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x000005ae jmp LBB0_56 + //0x000005b3 LBB0_69 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000005b3 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000005b8 jmp LBB0_71 + //0x000005bd LBB0_70 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x000005bd leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x000005c2 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x000005c5 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x000005c9 movq %r13, %r14 + //0x000005cc LBB0_71 + 0xf6, 0x45, 0xb8, 0x02, //0x000005cc testb $2, $-72(%rbp) + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000005d0 jne LBB0_75 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x000005d6 jmp LBB0_116 + //0x000005db LBB0_72 + 0xf6, 0x45, 0xb8, 0x02, //0x000005db testb $2, $-72(%rbp) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000005df jne LBB0_74 + 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x000005e5 jmp LBB0_94 + //0x000005ea LBB0_73 + 0xf6, 0x45, 0xb8, 0x02, //0x000005ea testb $2, $-72(%rbp) + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x000005ee je LBB0_117 + //0x000005f4 LBB0_74 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000005f4 leaq $4(%r9,%r12), %r9 + //0x000005f9 LBB0_75 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000005f9 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000005fe movb $-67, $2(%rax) + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00000602 jmp LBB0_55 + //0x00000607 LBB0_76 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00000607 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000060c subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x0000060f addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00000613 jmp LBB0_78 + //0x00000618 LBB0_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00000618 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000061d subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00000620 addq $-11, %r13 + //0x00000624 LBB0_78 + 0x41, 0xc1, 0xe7, 0x0a, //0x00000624 shll $10, %r15d + 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00000628 leal $-56613888(%r15,%rbx), %ecx + 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00000630 cmpl $1114112, %ecx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00000636 jb LBB0_81 + 0xf6, 0x45, 0xb8, 0x02, //0x0000063c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00000640 je LBB0_111 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00000646 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000064b movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x0000064f addq $3, %rax + 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00000653 jmp LBB0_57 + //0x00000658 LBB0_81 + 0x89, 0xce, //0x00000658 movl %ecx, %esi + 0xc1, 0xee, 0x12, //0x0000065a shrl $18, %esi + 0x40, 0x80, 0xce, 0xf0, //0x0000065d orb $-16, %sil + 0x40, 0x88, 0x30, //0x00000661 movb %sil, (%rax) + 0x89, 0xce, //0x00000664 movl %ecx, %esi + 0xc1, 0xee, 0x0c, //0x00000666 shrl $12, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x00000669 andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000066d orb $-128, %sil + 0x40, 0x88, 0x70, 0x01, //0x00000671 movb %sil, $1(%rax) + 0x89, 0xce, //0x00000675 movl %ecx, %esi + 0xc1, 0xee, 0x06, //0x00000677 shrl $6, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x0000067a andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000067e orb $-128, %sil + 0x40, 0x88, 0x70, 0x02, //0x00000682 movb %sil, $2(%rax) + 0x80, 0xe1, 0x3f, //0x00000686 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000689 orb $-128, %cl + 0x88, 0x48, 0x03, //0x0000068c movb %cl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x0000068f addq $4, %rax + 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00000693 jmp LBB0_57 + //0x00000698 LBB0_82 + 0x45, 0x31, 0xed, //0x00000698 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x0000069b movq %rdx, %rax + //0x0000069e LBB0_83 + 0x4c, 0x01, 0xe8, //0x0000069e addq %r13, %rax + 0x48, 0x29, 0xd0, //0x000006a1 subq %rdx, %rax + //0x000006a4 LBB0_84 + 0x48, 0x83, 0xc4, 0x28, //0x000006a4 addq $40, %rsp + 0x5b, //0x000006a8 popq %rbx + 0x41, 0x5c, //0x000006a9 popq %r12 + 0x41, 0x5d, //0x000006ab popq %r13 + 0x41, 0x5e, //0x000006ad popq %r14 + 0x41, 0x5f, //0x000006af popq %r15 + 0x5d, //0x000006b1 popq %rbp + 0xc3, //0x000006b2 retq + //0x000006b3 LBB0_85 + 0x4c, 0x89, 0xca, //0x000006b3 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x000006b6 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xc8, //0x000006b9 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x17, //0x000006bd movq %rdx, (%rdi) + 0x41, 0x8a, 0x09, //0x000006c0 movb (%r9), %cl + 0x8d, 0x71, 0xd0, //0x000006c3 leal $-48(%rcx), %esi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000006c6 movq $-2, %rax + 0x40, 0x80, 0xfe, 0x0a, //0x000006cd cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000006d1 jb LBB0_87 + 0x80, 0xe1, 0xdf, //0x000006d7 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000006da addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000006dd cmpb $5, %cl + 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x000006e0 ja LBB0_84 + //0x000006e6 LBB0_87 + 0x48, 0x8d, 0x4a, 0x01, //0x000006e6 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000006ea movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x01, //0x000006ed movb $1(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000006f1 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000006f4 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000006f8 jb LBB0_89 + 0x80, 0xe1, 0xdf, //0x000006fe andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00000701 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000704 cmpb $5, %cl + 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x00000707 ja LBB0_84 + //0x0000070d LBB0_89 + 0x48, 0x8d, 0x4a, 0x02, //0x0000070d leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00000711 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x02, //0x00000714 movb $2(%r9), %cl + 0x8d, 0x71, 0xd0, //0x00000718 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x0000071b cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000071f jb LBB0_91 + 0x80, 0xe1, 0xdf, //0x00000725 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00000728 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000072b cmpb $5, %cl + 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x0000072e ja LBB0_84 + //0x00000734 LBB0_91 + 0x48, 0x8d, 0x4a, 0x03, //0x00000734 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00000738 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x03, //0x0000073b movb $3(%r9), %cl + 0x8d, 0x71, 0xd0, //0x0000073f leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00000742 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000746 jb LBB0_93 + 0x80, 0xe1, 0xdf, //0x0000074c andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000074f addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000752 cmpb $5, %cl + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x00000755 ja LBB0_84 + //0x0000075b LBB0_93 + 0x48, 0x83, 0xc2, 0x04, //0x0000075b addq $4, %rdx + 0x48, 0x89, 0x17, //0x0000075f movq %rdx, (%rdi) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00000762 jmp LBB0_84 + //0x00000767 LBB0_94 + 0x48, 0x8b, 0x45, 0xc8, //0x00000767 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x18, //0x0000076b movq %r11, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000076e movq $-1, %rax + 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00000775 jmp LBB0_84 + //0x0000077a LBB0_95 + 0x48, 0xf7, 0xd7, //0x0000077a notq %rdi + 0x49, 0x01, 0xf9, //0x0000077d addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xc8, //0x00000780 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00000784 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00000787 movq $-3, %rax + 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000078e jmp LBB0_84 + //0x00000793 LBB0_96 + 0x45, 0x31, 0xed, //0x00000793 xorl %r13d, %r13d + 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00000796 jmp LBB0_83 + //0x0000079b LBB0_97 + 0x48, 0xf7, 0xd7, //0x0000079b notq %rdi + 0x49, 0x01, 0xf9, //0x0000079e addq %rdi, %r9 + 0xe9, 0xda, 0x00, 0x00, 0x00, //0x000007a1 jmp LBB0_110 + //0x000007a6 LBB0_98 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x000007a6 leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x000007ab jmp LBB0_100 + //0x000007b0 LBB0_99 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x000007b0 leaq $5(%r9,%r12), %rsi + //0x000007b5 LBB0_100 + 0x48, 0x89, 0xf2, //0x000007b5 movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x000007b8 subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x000007bb addq $2, %rdx + 0x48, 0x8b, 0x45, 0xc8, //0x000007bf movq $-56(%rbp), %rax + 0x48, 0x89, 0x10, //0x000007c3 movq %rdx, (%rax) + 0x8a, 0x4e, 0x02, //0x000007c6 movb $2(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000007c9 leal $-48(%rcx), %edi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000007cc movq $-2, %rax + 0x40, 0x80, 0xff, 0x0a, //0x000007d3 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000007d7 jb LBB0_102 + 0x80, 0xe1, 0xdf, //0x000007dd andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000007e0 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000007e3 cmpb $5, %cl + 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x000007e6 ja LBB0_84 + //0x000007ec LBB0_102 + 0x48, 0x8d, 0x4a, 0x01, //0x000007ec leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000007f0 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000007f4 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x03, //0x000007f7 movb $3(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000007fa leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000007fd cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000801 jb LBB0_104 + 0x80, 0xe1, 0xdf, //0x00000807 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000080a addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000080d cmpb $5, %cl + 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x00000810 ja LBB0_84 + //0x00000816 LBB0_104 + 0x48, 0x8d, 0x4a, 0x02, //0x00000816 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x0000081a movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x0000081e movq %rcx, (%rdi) + 0x8a, 0x4e, 0x04, //0x00000821 movb $4(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x00000824 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x00000827 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000082b jb LBB0_106 + 0x80, 0xe1, 0xdf, //0x00000831 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00000834 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000837 cmpb $5, %cl + 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x0000083a ja LBB0_84 + //0x00000840 LBB0_106 + 0x48, 0x8d, 0x4a, 0x03, //0x00000840 leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00000844 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00000848 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x05, //0x0000084b movb $5(%rsi), %cl + 0x8d, 0x71, 0xd0, //0x0000084e leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00000851 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000855 jb LBB0_108 + 0x80, 0xe1, 0xdf, //0x0000085b andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000085e addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000861 cmpb $5, %cl + 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00000864 ja LBB0_84 + //0x0000086a LBB0_108 + 0x48, 0x83, 0xc2, 0x04, //0x0000086a addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xc8, //0x0000086e movq $-56(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00000872 movq %rdx, (%rcx) + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00000875 jmp LBB0_84 + //0x0000087a LBB0_109 + 0x49, 0x29, 0xf9, //0x0000087a subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000087d incq %r9 + //0x00000880 LBB0_110 + 0x48, 0x8b, 0x45, 0xc8, //0x00000880 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00000884 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000887 movq $-2, %rax + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000088e jmp LBB0_84 + //0x00000893 LBB0_111 + 0x49, 0x29, 0xf9, //0x00000893 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00000896 addq $-4, %r9 + //0x0000089a LBB0_112 + 0x48, 0x8b, 0x45, 0xc8, //0x0000089a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000089e movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x000008a1 movq $-4, %rax + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x000008a8 jmp LBB0_84 + //0x000008ad LBB0_113 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x000008ad leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x000008b2 jmp LBB0_115 + //0x000008b7 LBB0_114 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x000008b7 leaq $11(%r9,%r12), %rax + //0x000008bc LBB0_115 + 0x48, 0x29, 0xf8, //0x000008bc subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000008bf addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xc8, //0x000008c3 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000008c7 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x000008ca movq $-4, %rax + 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x000008d1 jmp LBB0_84 + //0x000008d6 LBB0_116 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x000008d6 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x000008db subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x000008de jmp LBB0_112 + //0x000008e3 LBB0_117 + 0x4d, 0x01, 0xe1, //0x000008e3 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x000008e6 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x000008e9 jmp LBB0_112 + 0x00, 0x00, //0x000008ee .p2align 4, 0x00 + //0x000008f0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00000910 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00000950 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00000960 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000966 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000976 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000986 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000996 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one.go new file mode 100644 index 000000000..3c9189627 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_validate_one uintptr + +//go:nosplit +func validate_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_subr.go new file mode 100644 index 000000000..869cedda3 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_one = 144 +) + +const ( + _stack__validate_one = 152 +) + +const ( + _size__validate_one = 9524 +) + +var ( + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {8962, 152}, + {8966, 48}, + {8967, 40}, + {8969, 32}, + {8971, 24}, + {8973, 16}, + {8975, 8}, + {8976, 0}, + {9524, 152}, + } +) + +var _cfunc_validate_one = []loader.CFunc{ + {"_validate_one_entry", 0, _entry__validate_one, 0, nil}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_text_amd64.go new file mode 100644 index 000000000..20fcf6fb7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_one_text_amd64.go @@ -0,0 +1,2851 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_validate_one = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 LCPI0_3 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000030 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000040 LCPI0_4 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000040 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000050 LCPI0_5 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_6 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000070 LCPI0_7 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000080 LCPI0_8 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000080 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000090 .p2align 4, 0x90 + //0x00000090 _validate_one + 0x55, //0x00000090 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000091 movq %rsp, %rbp + 0x41, 0x57, //0x00000094 pushq %r15 + 0x41, 0x56, //0x00000096 pushq %r14 + 0x41, 0x55, //0x00000098 pushq %r13 + 0x41, 0x54, //0x0000009a pushq %r12 + 0x53, //0x0000009c pushq %rbx + 0x48, 0x83, 0xec, 0x68, //0x0000009d subq $104, %rsp + 0x48, 0x89, 0x4d, 0x80, //0x000000a1 movq %rcx, $-128(%rbp) + 0x49, 0x89, 0xd1, //0x000000a5 movq %rdx, %r9 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000000a8 movl $1, %r10d + 0xc4, 0xc1, 0xf9, 0x6e, 0xc2, //0x000000ae vmovq %r10, %xmm0 + 0xc5, 0xfa, 0x7f, 0x02, //0x000000b3 vmovdqu %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x90, //0x000000b7 movq %rdi, $-112(%rbp) + 0x4c, 0x8b, 0x27, //0x000000bb movq (%rdi), %r12 + 0x4c, 0x89, 0xe0, //0x000000be movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x000000c1 notq %rax + 0x48, 0x89, 0x45, 0xa0, //0x000000c4 movq %rax, $-96(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000c8 movl $1, %eax + 0x4c, 0x29, 0xe0, //0x000000cd subq %r12, %rax + 0x48, 0x89, 0x45, 0x98, //0x000000d0 movq %rax, $-104(%rbp) + 0x49, 0x8d, 0x44, 0x24, 0x40, //0x000000d4 leaq $64(%r12), %rax + 0x48, 0x89, 0x45, 0x88, //0x000000d9 movq %rax, $-120(%rbp) + 0x4c, 0x8b, 0x1e, //0x000000dd movq (%rsi), %r11 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x000000e0 leaq $5(%r12), %rax + 0x48, 0x89, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000000e5 movq %rax, $-144(%rbp) + 0x48, 0xc7, 0x85, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x000000ec movq $-1, $-136(%rbp) + 0xc5, 0xfa, 0x6f, 0x05, 0x01, 0xff, 0xff, 0xff, //0x000000f7 vmovdqu $-255(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x09, 0xff, 0xff, 0xff, //0x000000ff vmovdqu $-247(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0x11, 0xff, 0xff, 0xff, //0x00000107 vmovdqu $-239(%rip), %xmm15 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x0000010f vpcmpeqd %xmm3, %xmm3, %xmm3 + 0xc5, 0x7a, 0x6f, 0x05, 0x15, 0xff, 0xff, 0xff, //0x00000113 vmovdqu $-235(%rip), %xmm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x1d, 0xff, 0xff, 0xff, //0x0000011b vmovdqu $-227(%rip), %xmm9 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x25, 0xff, 0xff, 0xff, //0x00000123 vmovdqu $-219(%rip), %xmm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0x2d, 0xff, 0xff, 0xff, //0x0000012b vmovdqu $-211(%rip), %xmm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x25, 0xe5, 0xfe, 0xff, 0xff, //0x00000133 vmovdqu $-283(%rip), %xmm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x2d, 0x2d, 0xff, 0xff, 0xff, //0x0000013b vmovdqu $-211(%rip), %xmm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x35, 0x35, 0xff, 0xff, 0xff, //0x00000143 vmovdqu $-203(%rip), %xmm14 /* LCPI0_8+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000014b movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x65, 0xd0, //0x0000014f movq %r12, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc0, //0x00000153 movq %rdx, $-64(%rbp) + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00000157 jmp LBB0_4 + //0x0000015c LBB0_257 + 0x48, 0x85, 0xc0, //0x0000015c testq %rax, %rax + 0x49, 0x8d, 0x45, 0xff, //0x0000015f leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x00000163 notq %r13 + 0x4c, 0x0f, 0x48, 0xe9, //0x00000166 cmovsq %rcx, %r13 + 0x49, 0x39, 0xc3, //0x0000016a cmpq %rax, %r11 + 0x49, 0x89, 0xcb, //0x0000016d movq %rcx, %r11 + 0x4d, 0x0f, 0x44, 0xdd, //0x00000170 cmoveq %r13, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000174 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000178 testq %r11, %r11 + 0x0f, 0x88, 0xfe, 0x21, 0x00, 0x00, //0x0000017b js LBB0_419 + //0x00000181 LBB0_258 + 0x4d, 0x01, 0xfb, //0x00000181 addq %r15, %r11 + //0x00000184 LBB0_1 + 0x4c, 0x89, 0x1e, //0x00000184 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000187 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x0000018a testq %r15, %r15 + 0x0f, 0x88, 0xff, 0x21, 0x00, 0x00, //0x0000018d js LBB0_423 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000193 .p2align 4, 0x90 + //0x000001a0 LBB0_2 + 0x49, 0x8b, 0x11, //0x000001a0 movq (%r9), %rdx + 0x49, 0x89, 0xd2, //0x000001a3 movq %rdx, %r10 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000001a6 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000001ad testq %rdx, %rdx + 0x0f, 0x84, 0xdc, 0x21, 0x00, 0x00, //0x000001b0 je LBB0_423 + //0x000001b6 LBB0_4 + 0x48, 0x8b, 0x45, 0x90, //0x000001b6 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x000001ba movq $8(%rax), %rax + 0x4c, 0x89, 0xdb, //0x000001be movq %r11, %rbx + 0x48, 0x29, 0xc3, //0x000001c1 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000001c4 jae LBB0_9 + 0x43, 0x8a, 0x14, 0x1c, //0x000001ca movb (%r12,%r11), %dl + 0x80, 0xfa, 0x0d, //0x000001ce cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001d1 je LBB0_9 + 0x80, 0xfa, 0x20, //0x000001d7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001da je LBB0_9 + 0x80, 0xc2, 0xf7, //0x000001e0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001e3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001e6 jbe LBB0_9 + 0x4d, 0x89, 0xdf, //0x000001ec movq %r11, %r15 + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x000001ef jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001f4 .p2align 4, 0x90 + //0x00000200 LBB0_9 + 0x4d, 0x8d, 0x7b, 0x01, //0x00000200 leaq $1(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000204 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000207 jae LBB0_13 + 0x43, 0x8a, 0x14, 0x3c, //0x0000020d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000211 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000214 je LBB0_13 + 0x80, 0xfa, 0x20, //0x0000021a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000021d je LBB0_13 + 0x80, 0xc2, 0xf7, //0x00000223 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000226 cmpb $1, %dl + 0x0f, 0x87, 0xfe, 0x00, 0x00, 0x00, //0x00000229 ja LBB0_30 + 0x90, //0x0000022f .p2align 4, 0x90 + //0x00000230 LBB0_13 + 0x4d, 0x8d, 0x7b, 0x02, //0x00000230 leaq $2(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000234 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000237 jae LBB0_17 + 0x43, 0x8a, 0x14, 0x3c, //0x0000023d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000241 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000244 je LBB0_17 + 0x80, 0xfa, 0x20, //0x0000024a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000024d je LBB0_17 + 0x80, 0xc2, 0xf7, //0x00000253 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000256 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000259 ja LBB0_30 + 0x90, //0x0000025f .p2align 4, 0x90 + //0x00000260 LBB0_17 + 0x4d, 0x8d, 0x7b, 0x03, //0x00000260 leaq $3(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000264 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000267 jae LBB0_21 + 0x43, 0x8a, 0x14, 0x3c, //0x0000026d movb (%r12,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000271 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000274 je LBB0_21 + 0x80, 0xfa, 0x20, //0x0000027a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000027d je LBB0_21 + 0x80, 0xc2, 0xf7, //0x00000283 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000286 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000289 ja LBB0_30 + 0x90, //0x0000028f .p2align 4, 0x90 + //0x00000290 LBB0_21 + 0x49, 0x8d, 0x53, 0x04, //0x00000290 leaq $4(%r11), %rdx + 0x48, 0x39, 0xd0, //0x00000294 cmpq %rdx, %rax + 0x0f, 0x86, 0xa1, 0x20, 0x00, 0x00, //0x00000297 jbe LBB0_413 + 0x48, 0x39, 0xd0, //0x0000029d cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000002a0 je LBB0_27 + 0x49, 0x8d, 0x14, 0x04, //0x000002a6 leaq (%r12,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x000002aa addq $4, %rbx + 0x4c, 0x03, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x000002ae addq $-144(%rbp), %r11 + 0x4d, 0x89, 0xdf, //0x000002b5 movq %r11, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002b8 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002c2 .p2align 4, 0x90 + //0x000002d0 LBB0_24 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002d0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002d5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002d8 ja LBB0_29 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002de btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002e2 jae LBB0_29 + 0x49, 0xff, 0xc7, //0x000002e8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002eb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002ee jne LBB0_24 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000002f4 jmp LBB0_28 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002f9 .p2align 4, 0x90 + //0x00000300 LBB0_27 + 0x4c, 0x01, 0xe2, //0x00000300 addq %r12, %rdx + //0x00000303 LBB0_28 + 0x4c, 0x29, 0xe2, //0x00000303 subq %r12, %rdx + 0x49, 0x89, 0xd7, //0x00000306 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00000309 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000030c jb LBB0_30 + 0xe9, 0x2a, 0x20, 0x00, 0x00, //0x00000312 jmp LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000317 .p2align 4, 0x90 + //0x00000320 LBB0_29 + 0x4c, 0x03, 0x7d, 0xa0, //0x00000320 addq $-96(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x00000324 cmpq %rax, %r15 + 0x0f, 0x83, 0x14, 0x20, 0x00, 0x00, //0x00000327 jae LBB0_414 + //0x0000032d LBB0_30 + 0x4d, 0x8d, 0x5f, 0x01, //0x0000032d leaq $1(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00000331 movq %r11, (%rsi) + 0x43, 0x0f, 0xbe, 0x1c, 0x3c, //0x00000334 movsbl (%r12,%r15), %ebx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000339 movq $-1, %rax + 0x85, 0xdb, //0x00000340 testl %ebx, %ebx + 0x0f, 0x84, 0x4a, 0x20, 0x00, 0x00, //0x00000342 je LBB0_423 + 0x4d, 0x89, 0xf8, //0x00000348 movq %r15, %r8 + 0x49, 0xf7, 0xd0, //0x0000034b notq %r8 + 0x49, 0x8d, 0x52, 0xff, //0x0000034e leaq $-1(%r10), %rdx + 0x43, 0x8b, 0x3c, 0xd1, //0x00000352 movl (%r9,%r10,8), %edi + 0x48, 0x8b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000356 movq $-136(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x0000035d cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x00000361 cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000365 movq %rcx, $-136(%rbp) + 0xff, 0xcf, //0x0000036c decl %edi + 0x83, 0xff, 0x05, //0x0000036e cmpl $5, %edi + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00000371 ja LBB0_36 + 0x48, 0x8d, 0x0d, 0x46, 0x22, 0x00, 0x00, //0x00000377 leaq $8774(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xb9, //0x0000037e movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x00000382 addq %rcx, %rdi + 0xff, 0xe7, //0x00000385 jmpq *%rdi + //0x00000387 LBB0_33 + 0x83, 0xfb, 0x2c, //0x00000387 cmpl $44, %ebx + 0x0f, 0x84, 0xb6, 0x04, 0x00, 0x00, //0x0000038a je LBB0_100 + 0x83, 0xfb, 0x5d, //0x00000390 cmpl $93, %ebx + 0x0f, 0x84, 0x92, 0x04, 0x00, 0x00, //0x00000393 je LBB0_35 + 0xe9, 0xed, 0x1f, 0x00, 0x00, //0x00000399 jmp LBB0_422 + //0x0000039e LBB0_36 + 0x49, 0x89, 0x11, //0x0000039e movq %rdx, (%r9) + 0x83, 0xfb, 0x7b, //0x000003a1 cmpl $123, %ebx + 0x0f, 0x86, 0x19, 0x02, 0x00, 0x00, //0x000003a4 jbe LBB0_63 + 0xe9, 0xdc, 0x1f, 0x00, 0x00, //0x000003aa jmp LBB0_422 + //0x000003af LBB0_37 + 0x83, 0xfb, 0x2c, //0x000003af cmpl $44, %ebx + 0x0f, 0x85, 0x6a, 0x04, 0x00, 0x00, //0x000003b2 jne LBB0_38 + 0x49, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x000003b8 cmpq $4095, %r10 + 0x0f, 0x8f, 0x88, 0x1f, 0x00, 0x00, //0x000003bf jg LBB0_441 + 0x49, 0x8d, 0x42, 0x01, //0x000003c5 leaq $1(%r10), %rax + 0x49, 0x89, 0x01, //0x000003c9 movq %rax, (%r9) + 0x4b, 0xc7, 0x44, 0xd1, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000003cc movq $3, $8(%r9,%r10,8) + 0xe9, 0xc6, 0xfd, 0xff, 0xff, //0x000003d5 jmp LBB0_2 + //0x000003da LBB0_39 + 0x80, 0xfb, 0x22, //0x000003da cmpb $34, %bl + 0x0f, 0x85, 0xa8, 0x1f, 0x00, 0x00, //0x000003dd jne LBB0_422 + 0x4b, 0xc7, 0x04, 0xd1, 0x04, 0x00, 0x00, 0x00, //0x000003e3 movq $4, (%r9,%r10,8) + 0x48, 0x8b, 0x45, 0x90, //0x000003eb movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x000003ef movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x000003f3 testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x000003f7 movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x000003fb movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0x63, 0x04, 0x00, 0x00, //0x000003ff jne LBB0_104 + 0x49, 0x89, 0xd5, //0x00000405 movq %rdx, %r13 + 0x4d, 0x29, 0xdd, //0x00000408 subq %r11, %r13 + 0x0f, 0x84, 0x30, 0x21, 0x00, 0x00, //0x0000040b je LBB0_456 + 0x4c, 0x89, 0xd8, //0x00000411 movq %r11, %rax + 0x4d, 0x01, 0xe3, //0x00000414 addq %r12, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000417 cmpq $64, %r13 + 0x0f, 0x82, 0x0b, 0x1a, 0x00, 0x00, //0x0000041b jb LBB0_353 + 0x45, 0x89, 0xea, //0x00000421 movl %r13d, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000424 andl $63, %r10d + 0x4a, 0x8d, 0x4c, 0x02, 0xc0, //0x00000428 leaq $-64(%rdx,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x0000042d andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000431 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000434 addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb8, //0x00000438 movq %rcx, $-72(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000043c movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00000443 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000446 .p2align 4, 0x90 + //0x00000450 LBB0_44 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000450 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000455 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x0000045b vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000461 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000467 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x0000046b vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x0000046f vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000473 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000477 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000047b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000047f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000483 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000487 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000048b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000048f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000493 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00000497 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000049b vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x0000049f vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x000004a3 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x000004a7 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x000004ab shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000004af shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000004b3 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x000004b6 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x000004b9 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x000004bd shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x000004c1 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x000004c5 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x000004c8 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x000004cb orq %r8, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000004ce cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000004d2 jne LBB0_46 + 0x48, 0x85, 0xd2, //0x000004d8 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000004db jne LBB0_55 + //0x000004e1 LBB0_46 + 0x48, 0x09, 0xdf, //0x000004e1 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004e4 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x000004e7 orq %r12, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004ea jne LBB0_56 + //0x000004f0 LBB0_47 + 0x48, 0x85, 0xff, //0x000004f0 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000004f3 jne LBB0_57 + //0x000004f9 LBB0_48 + 0x49, 0x83, 0xc5, 0xc0, //0x000004f9 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x000004fd addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000501 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000505 ja LBB0_44 + 0xe9, 0x1d, 0x12, 0x00, 0x00, //0x0000050b jmp LBB0_49 + //0x00000510 LBB0_55 + 0x4c, 0x89, 0xd8, //0x00000510 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000513 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000517 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x0000051b addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x0000051e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000521 movq %rdx, %rax + 0x4c, 0x09, 0xe0, //0x00000524 orq %r12, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000527 je LBB0_47 + //0x0000052d LBB0_56 + 0x4c, 0x89, 0xe0, //0x0000052d movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00000530 notq %rax + 0x48, 0x21, 0xd0, //0x00000533 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000536 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xe1, //0x0000053a orq %r12, %rcx + 0x48, 0x89, 0xce, //0x0000053d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000540 notq %rsi + 0x48, 0x21, 0xd6, //0x00000543 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000546 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000550 andq %rdx, %rsi + 0x45, 0x31, 0xe4, //0x00000553 xorl %r12d, %r12d + 0x48, 0x01, 0xc6, //0x00000556 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc4, //0x00000559 setb %r12b + 0x48, 0x01, 0xf6, //0x0000055d addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000560 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000056a xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000056d andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000570 notq %rsi + 0x48, 0x21, 0xf7, //0x00000573 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000576 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000579 je LBB0_48 + //0x0000057f LBB0_57 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000057f bsfq %rdi, %rax + //0x00000583 LBB0_58 + 0x4c, 0x03, 0x5d, 0x98, //0x00000583 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000587 addq %rax, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x0000058a movq $-48(%rbp), %r12 + 0xe9, 0x3a, 0x09, 0x00, 0x00, //0x0000058e jmp LBB0_187 + //0x00000593 LBB0_59 + 0x80, 0xfb, 0x3a, //0x00000593 cmpb $58, %bl + 0x0f, 0x85, 0xef, 0x1d, 0x00, 0x00, //0x00000596 jne LBB0_422 + 0x4b, 0xc7, 0x04, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x0000059c movq $0, (%r9,%r10,8) + 0xe9, 0xf7, 0xfb, 0xff, 0xff, //0x000005a4 jmp LBB0_2 + //0x000005a9 LBB0_61 + 0x80, 0xfb, 0x5d, //0x000005a9 cmpb $93, %bl + 0x0f, 0x84, 0x79, 0x02, 0x00, 0x00, //0x000005ac je LBB0_35 + 0x4b, 0xc7, 0x04, 0xd1, 0x01, 0x00, 0x00, 0x00, //0x000005b2 movq $1, (%r9,%r10,8) + 0x83, 0xfb, 0x7b, //0x000005ba cmpl $123, %ebx + 0x0f, 0x87, 0xc8, 0x1d, 0x00, 0x00, //0x000005bd ja LBB0_422 + //0x000005c3 LBB0_63 + 0x4f, 0x8d, 0x14, 0x3c, //0x000005c3 leaq (%r12,%r15), %r10 + 0x89, 0xd9, //0x000005c7 movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x0c, 0x20, 0x00, 0x00, //0x000005c9 leaq $8204(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000005d0 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000005d4 addq %rdx, %rcx + 0xff, 0xe1, //0x000005d7 jmpq *%rcx + //0x000005d9 LBB0_66 + 0x48, 0x8b, 0x45, 0x90, //0x000005d9 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x000005dd movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x000005e1 subq %r15, %rdi + 0x0f, 0x84, 0x89, 0x1d, 0x00, 0x00, //0x000005e4 je LBB0_417 + 0x41, 0x80, 0x3a, 0x30, //0x000005ea cmpb $48, (%r10) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005ee jne LBB0_71 + 0x48, 0x83, 0xff, 0x01, //0x000005f4 cmpq $1, %rdi + 0x0f, 0x84, 0x86, 0xfb, 0xff, 0xff, //0x000005f8 je LBB0_1 + 0x43, 0x8a, 0x04, 0x1c, //0x000005fe movb (%r12,%r11), %al + 0x04, 0xd2, //0x00000602 addb $-46, %al + 0x3c, 0x37, //0x00000604 cmpb $55, %al + 0x0f, 0x87, 0x78, 0xfb, 0xff, 0xff, //0x00000606 ja LBB0_1 + 0x0f, 0xb6, 0xc0, //0x0000060c movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000060f movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000619 btq %rax, %rcx + 0x0f, 0x83, 0x61, 0xfb, 0xff, 0xff, //0x0000061d jae LBB0_1 + //0x00000623 LBB0_71 + 0x48, 0x83, 0xff, 0x10, //0x00000623 cmpq $16, %rdi + 0x0f, 0x82, 0xde, 0x17, 0x00, 0x00, //0x00000627 jb LBB0_342 + 0x4c, 0x8d, 0x4f, 0xf0, //0x0000062d leaq $-16(%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x00000631 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000634 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x10, 0x10, //0x00000638 leaq $16(%rax,%r10), %rax + 0x48, 0x89, 0x45, 0xa8, //0x0000063d movq %rax, $-88(%rbp) + 0x41, 0x83, 0xe1, 0x0f, //0x00000641 andl $15, %r9d + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000645 movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000064c movq $-1, %r13 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000653 movq $-1, %r11 + 0x4d, 0x89, 0xd6, //0x0000065a movq %r10, %r14 + 0x90, 0x90, 0x90, //0x0000065d .p2align 4, 0x90 + //0x00000660 LBB0_73 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00000660 vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x00000665 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x0000066a vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x0000066e vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x00000672 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x00000676 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000067a vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x0000067e vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x00000682 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x00000686 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x0000068a vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x0000068e vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x00000692 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000696 vpmovmskb %xmm2, %r8d + 0xc5, 0xf9, 0xd7, 0xc6, //0x0000069a vpmovmskb %xmm6, %eax + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000069e vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x000006a2 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000006a6 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x000006ab addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x000006b2 xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x000006b5 bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x000006b9 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000006bc je LBB0_75 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x000006c2 movl $-1, %esi + 0xd3, 0xe6, //0x000006c7 shll %cl, %esi + 0xf7, 0xd6, //0x000006c9 notl %esi + 0x41, 0x21, 0xf0, //0x000006cb andl %esi, %r8d + 0x21, 0xf0, //0x000006ce andl %esi, %eax + 0x21, 0xd6, //0x000006d0 andl %edx, %esi + 0x89, 0xf2, //0x000006d2 movl %esi, %edx + //0x000006d4 LBB0_75 + 0x41, 0x8d, 0x70, 0xff, //0x000006d4 leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x000006d8 andl %r8d, %esi + 0x0f, 0x85, 0x17, 0x10, 0x00, 0x00, //0x000006db jne LBB0_308 + 0x8d, 0x70, 0xff, //0x000006e1 leal $-1(%rax), %esi + 0x21, 0xc6, //0x000006e4 andl %eax, %esi + 0x0f, 0x85, 0x0c, 0x10, 0x00, 0x00, //0x000006e6 jne LBB0_308 + 0x8d, 0x72, 0xff, //0x000006ec leal $-1(%rdx), %esi + 0x21, 0xd6, //0x000006ef andl %edx, %esi + 0x0f, 0x85, 0x01, 0x10, 0x00, 0x00, //0x000006f1 jne LBB0_308 + 0x45, 0x85, 0xc0, //0x000006f7 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000006fa je LBB0_81 + 0x4c, 0x89, 0xf3, //0x00000700 movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x00000703 subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x00000706 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x0000070a addq %rbx, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x0000070d cmpq $-1, %r11 + 0x0f, 0x85, 0x93, 0x13, 0x00, 0x00, //0x00000711 jne LBB0_325 + 0x49, 0x89, 0xf3, //0x00000717 movq %rsi, %r11 + //0x0000071a LBB0_81 + 0x85, 0xc0, //0x0000071a testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000071c je LBB0_84 + 0x4c, 0x89, 0xf6, //0x00000722 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000725 subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000728 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x0000072b addq %rsi, %rax + 0x49, 0x83, 0xfd, 0xff, //0x0000072e cmpq $-1, %r13 + 0x0f, 0x85, 0x64, 0x11, 0x00, 0x00, //0x00000732 jne LBB0_313 + 0x49, 0x89, 0xc5, //0x00000738 movq %rax, %r13 + //0x0000073b LBB0_84 + 0x85, 0xd2, //0x0000073b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000073d je LBB0_87 + 0x4c, 0x89, 0xf6, //0x00000743 movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x00000746 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x00000749 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x0000074c addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x0000074f cmpq $-1, %r12 + 0x0f, 0x85, 0x43, 0x11, 0x00, 0x00, //0x00000753 jne LBB0_313 + 0x49, 0x89, 0xc4, //0x00000759 movq %rax, %r12 + //0x0000075c LBB0_87 + 0x83, 0xf9, 0x10, //0x0000075c cmpl $16, %ecx + 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x0000075f jne LBB0_148 + 0x49, 0x83, 0xc6, 0x10, //0x00000765 addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x00000769 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x0000076d cmpq $15, %rdi + 0x0f, 0x87, 0xe9, 0xfe, 0xff, 0xff, //0x00000771 ja LBB0_73 + 0x4d, 0x85, 0xc9, //0x00000777 testq %r9, %r9 + 0x0f, 0x84, 0xb1, 0x04, 0x00, 0x00, //0x0000077a je LBB0_150 + //0x00000780 LBB0_90 + 0x48, 0x8b, 0x7d, 0xa8, //0x00000780 movq $-88(%rbp), %rdi + 0x4a, 0x8d, 0x0c, 0x0f, //0x00000784 leaq (%rdi,%r9), %rcx + 0x48, 0x8d, 0x35, 0x29, 0x21, 0x00, 0x00, //0x00000788 leaq $8489(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x0000078f jmp LBB0_92 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000794 .p2align 4, 0x90 + //0x000007a0 LBB0_91 + 0x48, 0x89, 0xc7, //0x000007a0 movq %rax, %rdi + 0x49, 0xff, 0xc9, //0x000007a3 decq %r9 + 0x0f, 0x84, 0xfb, 0x10, 0x00, 0x00, //0x000007a6 je LBB0_314 + //0x000007ac LBB0_92 + 0x0f, 0xbe, 0x17, //0x000007ac movsbl (%rdi), %edx + 0x83, 0xc2, 0xd5, //0x000007af addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000007b2 cmpl $58, %edx + 0x0f, 0x87, 0x72, 0x04, 0x00, 0x00, //0x000007b5 ja LBB0_149 + 0x48, 0x8d, 0x47, 0x01, //0x000007bb leaq $1(%rdi), %rax + 0x48, 0x63, 0x14, 0x96, //0x000007bf movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000007c3 addq %rsi, %rdx + 0xff, 0xe2, //0x000007c6 jmpq *%rdx + //0x000007c8 LBB0_94 + 0x48, 0x89, 0xc2, //0x000007c8 movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x000007cb subq %r10, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000007ce cmpq $-1, %r12 + 0x0f, 0x85, 0x86, 0x13, 0x00, 0x00, //0x000007d2 jne LBB0_418 + 0x48, 0xff, 0xca, //0x000007d8 decq %rdx + 0x49, 0x89, 0xd4, //0x000007db movq %rdx, %r12 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x000007de jmp LBB0_91 + //0x000007e3 LBB0_96 + 0x48, 0x89, 0xc2, //0x000007e3 movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x000007e6 subq %r10, %rdx + 0x49, 0x83, 0xfd, 0xff, //0x000007e9 cmpq $-1, %r13 + 0x0f, 0x85, 0x6b, 0x13, 0x00, 0x00, //0x000007ed jne LBB0_418 + 0x48, 0xff, 0xca, //0x000007f3 decq %rdx + 0x49, 0x89, 0xd5, //0x000007f6 movq %rdx, %r13 + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x000007f9 jmp LBB0_91 + //0x000007fe LBB0_98 + 0x48, 0x89, 0xc2, //0x000007fe movq %rax, %rdx + 0x4c, 0x29, 0xd2, //0x00000801 subq %r10, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x00000804 cmpq $-1, %r11 + 0x0f, 0x85, 0x50, 0x13, 0x00, 0x00, //0x00000808 jne LBB0_418 + 0x48, 0xff, 0xca, //0x0000080e decq %rdx + 0x49, 0x89, 0xd3, //0x00000811 movq %rdx, %r11 + 0xe9, 0x87, 0xff, 0xff, 0xff, //0x00000814 jmp LBB0_91 + //0x00000819 LBB0_64 + 0x83, 0xfb, 0x22, //0x00000819 cmpl $34, %ebx + 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x0000081c je LBB0_125 + //0x00000822 LBB0_38 + 0x83, 0xfb, 0x7d, //0x00000822 cmpl $125, %ebx + 0x0f, 0x85, 0x60, 0x1b, 0x00, 0x00, //0x00000825 jne LBB0_422 + //0x0000082b LBB0_35 + 0x49, 0x89, 0x11, //0x0000082b movq %rdx, (%r9) + 0x49, 0x89, 0xd2, //0x0000082e movq %rdx, %r10 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000831 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x00000838 testq %rdx, %rdx + 0x0f, 0x85, 0x75, 0xf9, 0xff, 0xff, //0x0000083b jne LBB0_4 + 0xe9, 0x4c, 0x1b, 0x00, 0x00, //0x00000841 jmp LBB0_423 + //0x00000846 LBB0_100 + 0x49, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x00000846 cmpq $4095, %r10 + 0x0f, 0x8f, 0xfa, 0x1a, 0x00, 0x00, //0x0000084d jg LBB0_441 + 0x49, 0x8d, 0x42, 0x01, //0x00000853 leaq $1(%r10), %rax + 0x49, 0x89, 0x01, //0x00000857 movq %rax, (%r9) + 0x4b, 0xc7, 0x44, 0xd1, 0x08, 0x00, 0x00, 0x00, 0x00, //0x0000085a movq $0, $8(%r9,%r10,8) + 0xe9, 0x38, 0xf9, 0xff, 0xff, //0x00000863 jmp LBB0_2 + //0x00000868 LBB0_104 + 0x48, 0x89, 0xd0, //0x00000868 movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x0000086b subq %r11, %rax + 0x0f, 0x84, 0xcd, 0x1c, 0x00, 0x00, //0x0000086e je LBB0_456 + 0x4c, 0x89, 0xd9, //0x00000874 movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x00000877 addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x0000087a cmpq $64, %rax + 0x0f, 0x82, 0xc1, 0x15, 0x00, 0x00, //0x0000087e jb LBB0_354 + 0x89, 0xc6, //0x00000884 movl %eax, %esi + 0x83, 0xe6, 0x3f, //0x00000886 andl $63, %esi + 0x48, 0x89, 0x75, 0xb8, //0x00000889 movq %rsi, $-72(%rbp) + 0x4e, 0x8d, 0x54, 0x02, 0xc0, //0x0000088d leaq $-64(%rdx,%r8), %r10 + 0x49, 0x83, 0xe2, 0xc0, //0x00000892 andq $-64, %r10 + 0x49, 0x01, 0xca, //0x00000896 addq %rcx, %r10 + 0x4c, 0x03, 0x55, 0x88, //0x00000899 addq $-120(%rbp), %r10 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000089d movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x000008a4 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008a7 .p2align 4, 0x90 + //0x000008b0 LBB0_107 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x000008b0 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x000008b5 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x000008bb vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x000008c1 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x000008c7 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x000008cb vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x000008cf vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000008d3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000008d7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000008db vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000008df vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000008e3 vpmovmskb %xmm2, %edx + 0xc5, 0xc9, 0x74, 0xd1, //0x000008e7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000008eb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000008ef vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000008f3 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x000008f7 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x000008fb shlq $16, %rbx + 0x48, 0x09, 0xde, //0x000008ff orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000902 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000906 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x0000090a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x0000090e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000911 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000915 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000919 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x0000091d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000921 shlq $16, %rdi + 0x49, 0x09, 0xfd, //0x00000925 orq %rdi, %r13 + 0xc5, 0x79, 0xd7, 0xe2, //0x00000928 vpmovmskb %xmm2, %r12d + 0xc5, 0x81, 0x64, 0xd5, //0x0000092c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000930 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000934 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000938 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000093c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000093f vpmovmskb %xmm2, %edi + 0xc5, 0x81, 0x64, 0xd4, //0x00000943 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000947 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000094b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000094f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000953 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000956 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000095a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000095e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000962 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe7, 0x10, //0x00000966 shlq $16, %rdi + 0x49, 0x09, 0xfc, //0x0000096a orq %rdi, %r12 + 0xc5, 0x79, 0xd7, 0xf2, //0x0000096d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe2, 0x30, //0x00000971 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x00000975 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00000979 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000097d jne LBB0_109 + 0x4d, 0x85, 0xed, //0x00000983 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000986 jne LBB0_124 + //0x0000098c LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x0000098c shlq $48, %r14 + 0x49, 0x09, 0xcc, //0x00000990 orq %rcx, %r12 + 0x48, 0x09, 0xd6, //0x00000993 orq %rdx, %rsi + 0x4c, 0x89, 0xe9, //0x00000996 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x00000999 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000099c jne LBB0_145 + 0x4d, 0x09, 0xf4, //0x000009a2 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x000009a5 testq %rsi, %rsi + 0x0f, 0x85, 0x39, 0x02, 0x00, 0x00, //0x000009a8 jne LBB0_146 + //0x000009ae LBB0_111 + 0x4d, 0x85, 0xe4, //0x000009ae testq %r12, %r12 + 0x0f, 0x85, 0x0c, 0x1a, 0x00, 0x00, //0x000009b1 jne LBB0_426 + 0x48, 0x83, 0xc0, 0xc0, //0x000009b7 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x000009bb addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x000009bf cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x000009c3 ja LBB0_107 + 0xe9, 0xda, 0x0d, 0x00, 0x00, //0x000009c9 jmp LBB0_113 + //0x000009ce LBB0_145 + 0x4c, 0x89, 0xc1, //0x000009ce movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000009d1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000009d4 andq %r13, %rcx + 0x48, 0x8d, 0x14, 0x09, //0x000009d7 leaq (%rcx,%rcx), %rdx + 0x4c, 0x09, 0xc2, //0x000009db orq %r8, %rdx + 0x48, 0x89, 0xd7, //0x000009de movq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x000009e1 notq %rdi + 0x4c, 0x21, 0xef, //0x000009e4 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000009e7 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000009f1 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x000009f4 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x000009f7 addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x000009fa setb %r8b + 0x48, 0x01, 0xff, //0x000009fe addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a01 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00000a0b xorq %rcx, %rdi + 0x48, 0x21, 0xd7, //0x00000a0e andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x00000a11 notq %rdi + 0x48, 0x21, 0xfe, //0x00000a14 andq %rdi, %rsi + 0x4d, 0x09, 0xf4, //0x00000a17 orq %r14, %r12 + 0x48, 0x85, 0xf6, //0x00000a1a testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00000a1d je LBB0_111 + 0xe9, 0xbf, 0x01, 0x00, 0x00, //0x00000a23 jmp LBB0_146 + //0x00000a28 LBB0_124 + 0x4c, 0x89, 0xdf, //0x00000a28 movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00000a2b subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000a2f bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x00000a33 addq %rdi, %r9 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x00000a36 jmp LBB0_109 + //0x00000a3b LBB0_125 + 0x4b, 0xc7, 0x04, 0xd1, 0x02, 0x00, 0x00, 0x00, //0x00000a3b movq $2, (%r9,%r10,8) + 0x48, 0x8b, 0x45, 0x90, //0x00000a43 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000a47 movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000a4b testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000a4f movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00000a53 movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0x71, 0x02, 0x00, 0x00, //0x00000a57 jne LBB0_161 + 0x49, 0x89, 0xd5, //0x00000a5d movq %rdx, %r13 + 0x4d, 0x29, 0xdd, //0x00000a60 subq %r11, %r13 + 0x0f, 0x84, 0xf3, 0x1a, 0x00, 0x00, //0x00000a63 je LBB0_454 + 0x4c, 0x89, 0xd8, //0x00000a69 movq %r11, %rax + 0x4d, 0x01, 0xe3, //0x00000a6c addq %r12, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000a6f cmpq $64, %r13 + 0x0f, 0x82, 0xfc, 0x13, 0x00, 0x00, //0x00000a73 jb LBB0_357 + 0x45, 0x89, 0xea, //0x00000a79 movl %r13d, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000a7c andl $63, %r10d + 0x4a, 0x8d, 0x4c, 0x02, 0xc0, //0x00000a80 leaq $-64(%rdx,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000a85 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000a89 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000a8c addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb8, //0x00000a90 movq %rcx, $-72(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000a94 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00000a9b xorl %r9d, %r9d + 0x90, 0x90, //0x00000a9e .p2align 4, 0x90 + //0x00000aa0 LBB0_129 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000aa0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000aa5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000aab vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000ab1 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000ab7 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x00000abb vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x00000abf vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00000ac3 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00000ac7 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x00000acb vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x00000acf vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000ad3 vpmovmskb %xmm7, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x00000ad7 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000adb vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000adf vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00000ae3 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00000ae7 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00000aeb vpmovmskb %xmm2, %r14d + 0xc5, 0xc9, 0x74, 0xd1, //0x00000aef vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xc2, //0x00000af3 vpmovmskb %xmm2, %r8d + 0x48, 0xc1, 0xe3, 0x30, //0x00000af7 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000afb shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000aff shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b03 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b06 orq %rsi, %rdi + 0x49, 0xc1, 0xe0, 0x30, //0x00000b09 shlq $48, %r8 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b0d shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000b11 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000b15 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000b18 orq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x00000b1b orq %r8, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x00000b1e cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b22 jne LBB0_131 + 0x48, 0x85, 0xd2, //0x00000b28 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000b2b jne LBB0_140 + //0x00000b31 LBB0_131 + 0x48, 0x09, 0xdf, //0x00000b31 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b34 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000b37 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000b3a jne LBB0_141 + //0x00000b40 LBB0_132 + 0x48, 0x85, 0xff, //0x00000b40 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000b43 jne LBB0_142 + //0x00000b49 LBB0_133 + 0x49, 0x83, 0xc5, 0xc0, //0x00000b49 addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000b4d addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000b51 cmpq $63, %r13 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00000b55 ja LBB0_129 + 0xe9, 0x64, 0x0d, 0x00, 0x00, //0x00000b5b jmp LBB0_134 + //0x00000b60 LBB0_140 + 0x4c, 0x89, 0xd8, //0x00000b60 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000b63 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe2, //0x00000b67 bsfq %rdx, %r12 + 0x49, 0x01, 0xc4, //0x00000b6b addq %rax, %r12 + 0x48, 0x09, 0xdf, //0x00000b6e orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b71 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000b74 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000b77 je LBB0_132 + //0x00000b7d LBB0_141 + 0x4c, 0x89, 0xc8, //0x00000b7d movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000b80 notq %rax + 0x48, 0x21, 0xd0, //0x00000b83 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000b86 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x00000b8a orq %r9, %rcx + 0x48, 0x89, 0xce, //0x00000b8d movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000b90 notq %rsi + 0x48, 0x21, 0xd6, //0x00000b93 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000b96 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000ba0 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x00000ba3 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x00000ba6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x00000ba9 setb %r9b + 0x48, 0x01, 0xf6, //0x00000bad addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000bb0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000bba xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000bbd andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000bc0 notq %rsi + 0x48, 0x21, 0xf7, //0x00000bc3 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000bc6 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000bc9 je LBB0_133 + //0x00000bcf LBB0_142 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000bcf bsfq %rdi, %rax + //0x00000bd3 LBB0_143 + 0x4c, 0x03, 0x5d, 0x98, //0x00000bd3 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000bd7 addq %rax, %r11 + //0x00000bda LBB0_144 + 0x48, 0x8b, 0x75, 0xc8, //0x00000bda movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000bde movq $-64(%rbp), %r9 + 0xe9, 0x59, 0x03, 0x00, 0x00, //0x00000be2 jmp LBB0_195 + //0x00000be7 LBB0_146 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000be7 bsfq %rsi, %rax + 0x4d, 0x85, 0xe4, //0x00000beb testq %r12, %r12 + 0x0f, 0x84, 0xbf, 0x02, 0x00, 0x00, //0x00000bee je LBB0_185 + 0x49, 0x0f, 0xbc, 0xcc, //0x00000bf4 bsfq %r12, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000bf8 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000bfc subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000bff cmpq %rax, %rcx + 0x0f, 0x83, 0xc0, 0x02, 0x00, 0x00, //0x00000c02 jae LBB0_186 + 0xe9, 0x3d, 0x19, 0x00, 0x00, //0x00000c08 jmp LBB0_306 + //0x00000c0d LBB0_148 + 0x49, 0x01, 0xce, //0x00000c0d addq %rcx, %r14 + 0x4c, 0x89, 0x75, 0xa8, //0x00000c10 movq %r14, $-88(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c14 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000c1b testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c1e movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00000c22 jne LBB0_151 + 0xe9, 0x55, 0x17, 0x00, 0x00, //0x00000c28 jmp LBB0_420 + //0x00000c2d LBB0_149 + 0x48, 0x89, 0x7d, 0xa8, //0x00000c2d movq %rdi, $-88(%rbp) + //0x00000c31 LBB0_150 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c31 movq $-1, %rax + 0x4d, 0x85, 0xed, //0x00000c38 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c3b movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x3d, 0x17, 0x00, 0x00, //0x00000c3f je LBB0_420 + //0x00000c45 LBB0_151 + 0x4d, 0x85, 0xe4, //0x00000c45 testq %r12, %r12 + 0x0f, 0x84, 0x34, 0x17, 0x00, 0x00, //0x00000c48 je LBB0_420 + 0x4d, 0x85, 0xdb, //0x00000c4e testq %r11, %r11 + 0x0f, 0x84, 0x2b, 0x17, 0x00, 0x00, //0x00000c51 je LBB0_420 + 0x48, 0x8b, 0x45, 0xa8, //0x00000c57 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xd0, //0x00000c5b subq %r10, %rax + 0x48, 0x89, 0xc1, //0x00000c5e movq %rax, %rcx + 0x48, 0xff, 0xc8, //0x00000c61 decq %rax + 0x49, 0x39, 0xc5, //0x00000c64 cmpq %rax, %r13 + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000c67 je LBB0_159 + 0x49, 0x39, 0xc3, //0x00000c6d cmpq %rax, %r11 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00000c70 je LBB0_159 + 0x49, 0x39, 0xc4, //0x00000c76 cmpq %rax, %r12 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000c79 je LBB0_159 + 0x4d, 0x85, 0xe4, //0x00000c7f testq %r12, %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000c82 movq $-64(%rbp), %r9 + 0x0f, 0x8e, 0x68, 0x02, 0x00, 0x00, //0x00000c86 jle LBB0_189 + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000c8c leaq $-1(%r12), %rax + 0x49, 0x39, 0xc5, //0x00000c91 cmpq %rax, %r13 + 0x0f, 0x84, 0x5a, 0x02, 0x00, 0x00, //0x00000c94 je LBB0_189 + 0x49, 0xf7, 0xd4, //0x00000c9a notq %r12 + 0x4d, 0x89, 0xe3, //0x00000c9d movq %r12, %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000ca0 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000ca4 testq %r11, %r11 + 0x0f, 0x89, 0xd4, 0xf4, 0xff, 0xff, //0x00000ca7 jns LBB0_258 + 0xe9, 0xcd, 0x16, 0x00, 0x00, //0x00000cad jmp LBB0_419 + //0x00000cb2 LBB0_159 + 0x49, 0x89, 0xcb, //0x00000cb2 movq %rcx, %r11 + 0x49, 0xf7, 0xdb, //0x00000cb5 negq %r11 + //0x00000cb8 LBB0_160 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000cb8 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000cbc movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00000cc0 testq %r11, %r11 + 0x0f, 0x89, 0xb8, 0xf4, 0xff, 0xff, //0x00000cc3 jns LBB0_258 + 0xe9, 0xb1, 0x16, 0x00, 0x00, //0x00000cc9 jmp LBB0_419 + //0x00000cce LBB0_161 + 0x48, 0x89, 0xd0, //0x00000cce movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x00000cd1 subq %r11, %rax + 0x0f, 0x84, 0x82, 0x18, 0x00, 0x00, //0x00000cd4 je LBB0_454 + 0x4c, 0x89, 0xd9, //0x00000cda movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x00000cdd addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000ce0 cmpq $64, %rax + 0x0f, 0x82, 0xa4, 0x11, 0x00, 0x00, //0x00000ce4 jb LBB0_358 + 0x41, 0x89, 0xc2, //0x00000cea movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000ced andl $63, %r10d + 0x4e, 0x8d, 0x44, 0x02, 0xc0, //0x00000cf1 leaq $-64(%rdx,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000cf6 andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x00000cfa addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000cfd addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00000d01 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00000d08 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d0b .p2align 4, 0x90 + //0x00000d10 LBB0_164 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00000d10 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00000d15 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x00000d1b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x00000d21 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x00000d27 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x00000d2b vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x00000d2f vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d33 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x00000d37 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d3b vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x00000d3f vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00000d43 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x00000d47 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x00000d4b vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x00000d4f vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d53 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x00000d57 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000d5b shlq $16, %rbx + 0x48, 0x09, 0xde, //0x00000d5f orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d62 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x00000d66 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x00000d6a shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000d6e orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x00000d71 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x00000d75 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000d79 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x00000d7d vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x00000d81 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000d85 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000d88 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x00000d8c vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000d90 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00000d94 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00000d98 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x00000d9c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x00000d9f vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00000da3 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000da7 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000dab vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x00000daf shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000db3 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00000db6 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x00000dba vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x00000dbe vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00000dc2 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00000dc6 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00000dca orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x00000dcd vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00000dd1 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00000dd5 shlq $32, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00000dd9 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000ddd jne LBB0_166 + 0x4d, 0x85, 0xed, //0x00000de3 testq %r13, %r13 + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00000de6 jne LBB0_181 + //0x00000dec LBB0_166 + 0x49, 0xc1, 0xe6, 0x30, //0x00000dec shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00000df0 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00000df3 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00000df6 movq %r13, %rcx + 0x4c, 0x09, 0xc9, //0x00000df9 orq %r9, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000dfc jne LBB0_182 + 0x4c, 0x09, 0xf2, //0x00000e02 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e05 testq %rsi, %rsi + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00000e08 jne LBB0_183 + //0x00000e0e LBB0_168 + 0x48, 0x85, 0xd2, //0x00000e0e testq %rdx, %rdx + 0x0f, 0x85, 0xda, 0x15, 0x00, 0x00, //0x00000e11 jne LBB0_432 + 0x48, 0x83, 0xc0, 0xc0, //0x00000e17 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000e1b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000e1f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x00000e23 ja LBB0_164 + 0xe9, 0x11, 0x0b, 0x00, 0x00, //0x00000e29 jmp LBB0_170 + //0x00000e2e LBB0_182 + 0x4c, 0x89, 0xc9, //0x00000e2e movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000e31 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000e34 andq %r13, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00000e37 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xcb, //0x00000e3b orq %r9, %rbx + 0x48, 0x89, 0x5d, 0xb8, //0x00000e3e movq %rbx, $-72(%rbp) + 0x48, 0xf7, 0xd3, //0x00000e42 notq %rbx + 0x4c, 0x21, 0xeb, //0x00000e45 andq %r13, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000e48 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00000e52 andq %rdi, %rbx + 0x45, 0x31, 0xc9, //0x00000e55 xorl %r9d, %r9d + 0x48, 0x01, 0xcb, //0x00000e58 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc1, //0x00000e5b setb %r9b + 0x48, 0x01, 0xdb, //0x00000e5f addq %rbx, %rbx + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000e62 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcb, //0x00000e6c xorq %rcx, %rbx + 0x48, 0x23, 0x5d, 0xb8, //0x00000e6f andq $-72(%rbp), %rbx + 0x48, 0xf7, 0xd3, //0x00000e73 notq %rbx + 0x48, 0x21, 0xde, //0x00000e76 andq %rbx, %rsi + 0x4c, 0x09, 0xf2, //0x00000e79 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000e7c testq %rsi, %rsi + 0x0f, 0x84, 0x89, 0xff, 0xff, 0xff, //0x00000e7f je LBB0_168 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000e85 jmp LBB0_183 + //0x00000e8a LBB0_181 + 0x4c, 0x89, 0xdb, //0x00000e8a movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00000e8d subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xe5, //0x00000e91 bsfq %r13, %r12 + 0x49, 0x01, 0xdc, //0x00000e95 addq %rbx, %r12 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00000e98 jmp LBB0_166 + //0x00000e9d LBB0_183 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000e9d bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000ea1 testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00000ea4 je LBB0_192 + 0x48, 0x0f, 0xbc, 0xca, //0x00000eaa bsfq %rdx, %rcx + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x00000eae jmp LBB0_193 + //0x00000eb3 LBB0_185 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000eb3 movl $64, %ecx + 0x4c, 0x8b, 0x65, 0xd0, //0x00000eb8 movq $-48(%rbp), %r12 + 0x4d, 0x29, 0xe3, //0x00000ebc subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x00000ebf cmpq %rax, %rcx + 0x0f, 0x82, 0x82, 0x16, 0x00, 0x00, //0x00000ec2 jb LBB0_306 + //0x00000ec8 LBB0_186 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000ec8 leaq $1(%r11,%rax), %r11 + //0x00000ecd LBB0_187 + 0x4d, 0x85, 0xdb, //0x00000ecd testq %r11, %r11 + 0x0f, 0x88, 0x83, 0x14, 0x00, 0x00, //0x00000ed0 js LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00000ed6 movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000eda movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000edd movq %r15, %rax + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00000ee0 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000ee5 movq $-64(%rbp), %r9 + 0x0f, 0x8f, 0xb1, 0xf2, 0xff, 0xff, //0x00000ee9 jg LBB0_2 + 0xe9, 0x9e, 0x14, 0x00, 0x00, //0x00000eef jmp LBB0_423 + //0x00000ef4 LBB0_189 + 0x4c, 0x89, 0xd8, //0x00000ef4 movq %r11, %rax + 0x4c, 0x09, 0xe8, //0x00000ef7 orq %r13, %rax + 0x4d, 0x39, 0xeb, //0x00000efa cmpq %r13, %r11 + 0x0f, 0x8c, 0x59, 0xf2, 0xff, 0xff, //0x00000efd jl LBB0_257 + 0x48, 0x85, 0xc0, //0x00000f03 testq %rax, %rax + 0x0f, 0x88, 0x50, 0xf2, 0xff, 0xff, //0x00000f06 js LBB0_257 + 0x49, 0xf7, 0xd3, //0x00000f0c notq %r11 + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f0f movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xdb, //0x00000f13 testq %r11, %r11 + 0x0f, 0x89, 0x65, 0xf2, 0xff, 0xff, //0x00000f16 jns LBB0_258 + 0xe9, 0x5e, 0x14, 0x00, 0x00, //0x00000f1c jmp LBB0_419 + //0x00000f21 LBB0_192 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f21 movl $64, %ecx + //0x00000f26 LBB0_193 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f26 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000f2a movq $-64(%rbp), %r9 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000f2e subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000f32 cmpq %rax, %rcx + 0x0f, 0x82, 0x2a, 0x16, 0x00, 0x00, //0x00000f35 jb LBB0_455 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f3b leaq $1(%r11,%rax), %r11 + //0x00000f40 LBB0_195 + 0x4d, 0x85, 0xdb, //0x00000f40 testq %r11, %r11 + 0x0f, 0x88, 0x58, 0x14, 0x00, 0x00, //0x00000f43 js LBB0_424 + 0x4c, 0x89, 0x1e, //0x00000f49 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000f4c movq %r15, %rax + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00000f4f cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x65, 0xd0, //0x00000f54 movq $-48(%rbp), %r12 + 0x0f, 0x8e, 0x34, 0x14, 0x00, 0x00, //0x00000f58 jle LBB0_423 + 0x49, 0x8b, 0x01, //0x00000f5e movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000f61 cmpq $4095, %rax + 0x0f, 0x8f, 0xe0, 0x13, 0x00, 0x00, //0x00000f67 jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x00000f6d leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x00000f71 movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00000f74 movq $4, $8(%r9,%rax,8) + 0xe9, 0x1e, 0xf2, 0xff, 0xff, //0x00000f7d jmp LBB0_2 + //0x00000f82 LBB0_199 + 0x48, 0x8b, 0x45, 0x90, //0x00000f82 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000f86 movq $8(%rax), %rdx + 0xf6, 0x45, 0x80, 0x20, //0x00000f8a testb $32, $-128(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000f8e movq %r11, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00000f92 movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0xa3, 0x04, 0x00, 0x00, //0x00000f96 jne LBB0_268 + 0x49, 0x89, 0xd4, //0x00000f9c movq %rdx, %r12 + 0x4d, 0x29, 0xdc, //0x00000f9f subq %r11, %r12 + 0x0f, 0x84, 0x99, 0x15, 0x00, 0x00, //0x00000fa2 je LBB0_456 + 0x48, 0x8b, 0x45, 0xd0, //0x00000fa8 movq $-48(%rbp), %rax + 0x4c, 0x89, 0xd9, //0x00000fac movq %r11, %rcx + 0x49, 0x01, 0xc3, //0x00000faf addq %rax, %r11 + 0x49, 0x83, 0xfc, 0x40, //0x00000fb2 cmpq $64, %r12 + 0x0f, 0x82, 0x12, 0x0f, 0x00, 0x00, //0x00000fb6 jb LBB0_360 + 0x44, 0x89, 0xe0, //0x00000fbc movl %r12d, %eax + 0x83, 0xe0, 0x3f, //0x00000fbf andl $63, %eax + 0x48, 0x89, 0x45, 0xb8, //0x00000fc2 movq %rax, $-72(%rbp) + 0x4e, 0x8d, 0x44, 0x02, 0xc0, //0x00000fc6 leaq $-64(%rdx,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x00000fcb andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x00000fcf addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x88, //0x00000fd2 addq $-120(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fd6 movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00000fdd xorl %r10d, %r10d + //0x00000fe0 .p2align 4, 0x90 + //0x00000fe0 LBB0_203 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00000fe0 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00000fe5 vmovdqu $16(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x20, //0x00000feb vmovdqu $32(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x73, 0x30, //0x00000ff1 vmovdqu $48(%r11), %xmm6 + 0xc5, 0xe9, 0x74, 0xf8, //0x00000ff7 vpcmpeqb %xmm0, %xmm2, %xmm7 + 0xc5, 0xf9, 0xd7, 0xff, //0x00000ffb vpmovmskb %xmm7, %edi + 0xc5, 0xd9, 0x74, 0xf8, //0x00000fff vpcmpeqb %xmm0, %xmm4, %xmm7 + 0xc5, 0xf9, 0xd7, 0xcf, //0x00001003 vpmovmskb %xmm7, %ecx + 0xc5, 0xd1, 0x74, 0xf8, //0x00001007 vpcmpeqb %xmm0, %xmm5, %xmm7 + 0xc5, 0xf9, 0xd7, 0xf7, //0x0000100b vpmovmskb %xmm7, %esi + 0xc5, 0xc9, 0x74, 0xf8, //0x0000100f vpcmpeqb %xmm0, %xmm6, %xmm7 + 0xc5, 0x79, 0xd7, 0xef, //0x00001013 vpmovmskb %xmm7, %r13d + 0xc5, 0xe9, 0x74, 0xd1, //0x00001017 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000101b vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000101f vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001023 vpmovmskb %xmm2, %eax + 0xc5, 0xd1, 0x74, 0xd1, //0x00001027 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000102b vpmovmskb %xmm2, %ebx + 0xc5, 0xc9, 0x74, 0xd1, //0x0000102f vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001033 vpmovmskb %xmm2, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x00001037 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x0000103b shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000103f shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001043 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001046 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x00001049 shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000104d shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001051 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001055 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x00001058 orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000105b orq %r14, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000105e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001062 jne LBB0_205 + 0x48, 0x85, 0xd2, //0x00001068 testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000106b jne LBB0_213 + //0x00001071 LBB0_205 + 0x4c, 0x09, 0xef, //0x00001071 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001074 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x00001077 orq %r10, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000107a jne LBB0_214 + //0x00001080 LBB0_206 + 0x48, 0x85, 0xff, //0x00001080 testq %rdi, %rdi + 0x0f, 0x85, 0xf6, 0xf4, 0xff, 0xff, //0x00001083 jne LBB0_57 + //0x00001089 LBB0_207 + 0x49, 0x83, 0xc4, 0xc0, //0x00001089 addq $-64, %r12 + 0x49, 0x83, 0xc3, 0x40, //0x0000108d addq $64, %r11 + 0x49, 0x83, 0xfc, 0x3f, //0x00001091 cmpq $63, %r12 + 0x0f, 0x87, 0x45, 0xff, 0xff, 0xff, //0x00001095 ja LBB0_203 + 0xe9, 0x01, 0x0b, 0x00, 0x00, //0x0000109b jmp LBB0_208 + //0x000010a0 LBB0_213 + 0x4c, 0x89, 0xd8, //0x000010a0 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000010a3 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x000010a7 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x000010ab addq %rax, %r9 + 0x4c, 0x09, 0xef, //0x000010ae orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x000010b1 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x000010b4 orq %r10, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000010b7 je LBB0_206 + //0x000010bd LBB0_214 + 0x4c, 0x89, 0xd0, //0x000010bd movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000010c0 notq %rax + 0x48, 0x21, 0xd0, //0x000010c3 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000010c6 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xd1, //0x000010ca orq %r10, %rcx + 0x48, 0x89, 0xce, //0x000010cd movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000010d0 notq %rsi + 0x48, 0x21, 0xd6, //0x000010d3 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000010d6 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000010e0 andq %rdx, %rsi + 0x45, 0x31, 0xd2, //0x000010e3 xorl %r10d, %r10d + 0x48, 0x01, 0xc6, //0x000010e6 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc2, //0x000010e9 setb %r10b + 0x48, 0x01, 0xf6, //0x000010ed addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000010f0 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x000010fa xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x000010fd andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00001100 notq %rsi + 0x48, 0x21, 0xf7, //0x00001103 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00001106 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00001109 je LBB0_207 + 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x0000110f jmp LBB0_57 + //0x00001114 LBB0_215 + 0x48, 0x8b, 0x45, 0x90, //0x00001114 movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00001118 movq $8(%rax), %r10 + 0x4d, 0x29, 0xda, //0x0000111c subq %r11, %r10 + 0x0f, 0x84, 0xfa, 0x12, 0x00, 0x00, //0x0000111f je LBB0_438 + 0x4c, 0x89, 0x5d, 0xa8, //0x00001125 movq %r11, $-88(%rbp) + 0x4d, 0x01, 0xdc, //0x00001129 addq %r11, %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x0000112c cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001131 jne LBB0_220 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001137 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x0000113d cmpq $1, %r10 + 0x0f, 0x84, 0x7c, 0x05, 0x00, 0x00, //0x00001141 je LBB0_303 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001147 movb $1(%r12), %al + 0x04, 0xd2, //0x0000114c addb $-46, %al + 0x3c, 0x37, //0x0000114e cmpb $55, %al + 0x0f, 0x87, 0x6d, 0x05, 0x00, 0x00, //0x00001150 ja LBB0_303 + 0x0f, 0xb6, 0xc0, //0x00001156 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001159 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00001163 btq %rax, %rcx + 0x0f, 0x83, 0x56, 0x05, 0x00, 0x00, //0x00001167 jae LBB0_303 + //0x0000116d LBB0_220 + 0x49, 0x83, 0xfa, 0x10, //0x0000116d cmpq $16, %r10 + 0x0f, 0x82, 0x30, 0x0d, 0x00, 0x00, //0x00001171 jb LBB0_359 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001177 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x0000117b movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000117e andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x00001182 leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001187 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000118b movq $-1, $-72(%rbp) + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00001193 movq $-1, $-80(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000119b movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x000011a2 movq %r12, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011a5 .p2align 4, 0x90 + //0x000011b0 LBB0_222 + 0xc4, 0xc1, 0x7a, 0x6f, 0x55, 0x00, //0x000011b0 vmovdqu (%r13), %xmm2 + 0xc4, 0xc1, 0x69, 0x64, 0xe0, //0x000011b6 vpcmpgtb %xmm8, %xmm2, %xmm4 + 0xc5, 0xb1, 0x64, 0xea, //0x000011bb vpcmpgtb %xmm2, %xmm9, %xmm5 + 0xc5, 0xd9, 0xdb, 0xe5, //0x000011bf vpand %xmm5, %xmm4, %xmm4 + 0xc5, 0xa9, 0x74, 0xea, //0x000011c3 vpcmpeqb %xmm2, %xmm10, %xmm5 + 0xc5, 0xa1, 0x74, 0xf2, //0x000011c7 vpcmpeqb %xmm2, %xmm11, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x000011cb vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0x99, 0xeb, 0xf2, //0x000011cf vpor %xmm2, %xmm12, %xmm6 + 0xc5, 0x91, 0x74, 0xd2, //0x000011d3 vpcmpeqb %xmm2, %xmm13, %xmm2 + 0xc5, 0x89, 0x74, 0xf6, //0x000011d7 vpcmpeqb %xmm6, %xmm14, %xmm6 + 0xc5, 0xc9, 0xeb, 0xfa, //0x000011db vpor %xmm2, %xmm6, %xmm7 + 0xc5, 0xd1, 0xeb, 0xe4, //0x000011df vpor %xmm4, %xmm5, %xmm4 + 0xc5, 0xc1, 0xeb, 0xe4, //0x000011e3 vpor %xmm4, %xmm7, %xmm4 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000011e7 vpmovmskb %xmm2, %eax + 0xc5, 0xf9, 0xd7, 0xde, //0x000011eb vpmovmskb %xmm6, %ebx + 0xc5, 0xf9, 0xd7, 0xd5, //0x000011ef vpmovmskb %xmm5, %edx + 0xc5, 0xf9, 0xd7, 0xcc, //0x000011f3 vpmovmskb %xmm4, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000011f7 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x000011fc leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x00001203 xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x00001206 bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x0000120a cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000120d je LBB0_224 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00001213 movl $-1, %edi + 0xd3, 0xe7, //0x00001218 shll %cl, %edi + 0xf7, 0xd7, //0x0000121a notl %edi + 0x21, 0xf8, //0x0000121c andl %edi, %eax + 0x21, 0xfb, //0x0000121e andl %edi, %ebx + 0x21, 0xd7, //0x00001220 andl %edx, %edi + 0x89, 0xfa, //0x00001222 movl %edi, %edx + //0x00001224 LBB0_224 + 0x8d, 0x78, 0xff, //0x00001224 leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001227 andl %eax, %edi + 0x0f, 0x85, 0x4f, 0x09, 0x00, 0x00, //0x00001229 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x0000122f leal $-1(%rbx), %edi + 0x21, 0xdf, //0x00001232 andl %ebx, %edi + 0x0f, 0x85, 0x44, 0x09, 0x00, 0x00, //0x00001234 jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x0000123a leal $-1(%rdx), %edi + 0x21, 0xd7, //0x0000123d andl %edx, %edi + 0x0f, 0x85, 0x39, 0x09, 0x00, 0x00, //0x0000123f jne LBB0_337 + 0x85, 0xc0, //0x00001245 testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001247 je LBB0_230 + 0x4c, 0x89, 0xef, //0x0000124d movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001250 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x00001253 bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001257 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000125a cmpq $-1, %r14 + 0x0f, 0x85, 0x24, 0x09, 0x00, 0x00, //0x0000125e jne LBB0_338 + 0x4d, 0x89, 0xde, //0x00001264 movq %r11, %r14 + //0x00001267 LBB0_230 + 0x85, 0xdb, //0x00001267 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001269 je LBB0_233 + 0x4c, 0x89, 0xe8, //0x0000126f movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x00001272 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x00001275 bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001279 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb0, 0xff, //0x0000127c cmpq $-1, $-80(%rbp) + 0x0f, 0x85, 0x01, 0x09, 0x00, 0x00, //0x00001281 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb0, //0x00001287 movq %r11, $-80(%rbp) + //0x0000128b LBB0_233 + 0x85, 0xd2, //0x0000128b testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000128d je LBB0_236 + 0x4c, 0x89, 0xe8, //0x00001293 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x00001296 subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x00001299 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x0000129d addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x000012a0 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0xdd, 0x08, 0x00, 0x00, //0x000012a5 jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb8, //0x000012ab movq %r11, $-72(%rbp) + //0x000012af LBB0_236 + 0x83, 0xf9, 0x10, //0x000012af cmpl $16, %ecx + 0x0f, 0x85, 0x81, 0x03, 0x00, 0x00, //0x000012b2 jne LBB0_291 + 0x49, 0x83, 0xc5, 0x10, //0x000012b8 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000012bc addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000012c0 cmpq $15, %r10 + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x000012c4 ja LBB0_222 + 0x4d, 0x85, 0xc9, //0x000012ca testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xf8, 0x14, 0x00, 0x00, //0x000012cd leaq $5368(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xb0, //0x000012d4 movq $-80(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x000012d8 movq $-72(%rbp), %rbx + 0x0f, 0x84, 0x65, 0x03, 0x00, 0x00, //0x000012dc je LBB0_292 + //0x000012e2 LBB0_239 + 0x4b, 0x8d, 0x0c, 0x08, //0x000012e2 leaq (%r8,%r9), %rcx + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x000012e6 jmp LBB0_262 + //0x000012eb LBB0_240 + 0x49, 0x8b, 0x01, //0x000012eb movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000012ee cmpq $4095, %rax + 0x0f, 0x8f, 0x53, 0x10, 0x00, 0x00, //0x000012f4 jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x000012fa leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x000012fe movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001301 movq $5, $8(%r9,%rax,8) + 0xe9, 0x91, 0xee, 0xff, 0xff, //0x0000130a jmp LBB0_2 + //0x0000130f LBB0_242 + 0x48, 0x8b, 0x4d, 0x90, //0x0000130f movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001313 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001317 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x0000131b cmpq %rdx, %r15 + 0x0f, 0x83, 0x97, 0x10, 0x00, 0x00, //0x0000131e jae LBB0_440 + 0x43, 0x8b, 0x0c, 0x1c, //0x00001324 movl (%r12,%r11), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001328 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xfa, 0x10, 0x00, 0x00, //0x0000132e jne LBB0_442 + 0x4c, 0x89, 0xd9, //0x00001334 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x05, //0x00001337 leaq $5(%r15), %r11 + 0xe9, 0x50, 0x00, 0x00, 0x00, //0x0000133b jmp LBB0_254 + //0x00001340 LBB0_245 + 0x48, 0x8b, 0x4d, 0x90, //0x00001340 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001344 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001348 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x0000134c cmpq %rdx, %r15 + 0x0f, 0x83, 0x66, 0x10, 0x00, 0x00, //0x0000134f jae LBB0_440 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00001355 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x0000135c je LBB0_253 + 0xe9, 0x1c, 0x11, 0x00, 0x00, //0x00001362 jmp LBB0_247 + //0x00001367 LBB0_251 + 0x48, 0x8b, 0x4d, 0x90, //0x00001367 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x0000136b movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x0000136f leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001373 cmpq %rdx, %r15 + 0x0f, 0x83, 0x3f, 0x10, 0x00, 0x00, //0x00001376 jae LBB0_440 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x0000137c cmpl $1702195828, (%r10) + 0x0f, 0x85, 0x4c, 0x11, 0x00, 0x00, //0x00001383 jne LBB0_447 + //0x00001389 LBB0_253 + 0x4c, 0x89, 0xd9, //0x00001389 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x04, //0x0000138c leaq $4(%r15), %r11 + //0x00001390 LBB0_254 + 0x4c, 0x89, 0x1e, //0x00001390 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001393 movq %r15, %rax + 0x48, 0x85, 0xc9, //0x00001396 testq %rcx, %rcx + 0x0f, 0x8f, 0x01, 0xee, 0xff, 0xff, //0x00001399 jg LBB0_2 + 0xe9, 0xee, 0x0f, 0x00, 0x00, //0x0000139f jmp LBB0_423 + //0x000013a4 LBB0_255 + 0x49, 0x8b, 0x01, //0x000013a4 movq (%r9), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000013a7 cmpq $4095, %rax + 0x0f, 0x8f, 0x9a, 0x0f, 0x00, 0x00, //0x000013ad jg LBB0_441 + 0x48, 0x8d, 0x48, 0x01, //0x000013b3 leaq $1(%rax), %rcx + 0x49, 0x89, 0x09, //0x000013b7 movq %rcx, (%r9) + 0x49, 0xc7, 0x44, 0xc1, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000013ba movq $6, $8(%r9,%rax,8) + 0xe9, 0xd8, 0xed, 0xff, 0xff, //0x000013c3 jmp LBB0_2 + //0x000013c8 LBB0_259 + 0x49, 0x89, 0xc3, //0x000013c8 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000013cb subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000013ce cmpq $-1, %r14 + 0x0f, 0x85, 0x95, 0x0a, 0x00, 0x00, //0x000013d2 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x000013d8 decq %r11 + 0x4d, 0x89, 0xde, //0x000013db movq %r11, %r14 + 0x90, 0x90, //0x000013de .p2align 4, 0x90 + //0x000013e0 LBB0_261 + 0x49, 0x89, 0xc0, //0x000013e0 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x000013e3 decq %r9 + 0x0f, 0x84, 0x03, 0x0a, 0x00, 0x00, //0x000013e6 je LBB0_341 + //0x000013ec LBB0_262 + 0x41, 0x0f, 0xbe, 0x10, //0x000013ec movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x000013f0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000013f3 cmpl $58, %edx + 0x0f, 0x87, 0x4b, 0x02, 0x00, 0x00, //0x000013f6 ja LBB0_292 + 0x49, 0x8d, 0x40, 0x01, //0x000013fc leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001400 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001404 addq %rsi, %rdx + 0xff, 0xe2, //0x00001407 jmpq *%rdx + //0x00001409 LBB0_264 + 0x49, 0x89, 0xc3, //0x00001409 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000140c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000140f cmpq $-1, %rbx + 0x0f, 0x85, 0x54, 0x0a, 0x00, 0x00, //0x00001413 jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001419 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000141c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000141f jmp LBB0_261 + //0x00001424 LBB0_266 + 0x49, 0x89, 0xc3, //0x00001424 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001427 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000142a cmpq $-1, %rdi + 0x0f, 0x85, 0x39, 0x0a, 0x00, 0x00, //0x0000142e jne LBB0_356 + 0x49, 0xff, 0xcb, //0x00001434 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001437 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000143a jmp LBB0_261 + //0x0000143f LBB0_268 + 0x48, 0x89, 0xd0, //0x0000143f movq %rdx, %rax + 0x4c, 0x29, 0xd8, //0x00001442 subq %r11, %rax + 0x0f, 0x84, 0xf6, 0x10, 0x00, 0x00, //0x00001445 je LBB0_456 + 0x4c, 0x89, 0xd9, //0x0000144b movq %r11, %rcx + 0x4d, 0x01, 0xe3, //0x0000144e addq %r12, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00001451 cmpq $64, %rax + 0x0f, 0x82, 0x8c, 0x0a, 0x00, 0x00, //0x00001455 jb LBB0_361 + 0x41, 0x89, 0xc2, //0x0000145b movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x0000145e andl $63, %r10d + 0x4e, 0x8d, 0x64, 0x02, 0xc0, //0x00001462 leaq $-64(%rdx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001467 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x0000146b addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x0000146e addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001472 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001479 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x0000147c .p2align 4, 0x90 + //0x00001480 LBB0_271 + 0xc4, 0xc1, 0x7a, 0x6f, 0x33, //0x00001480 vmovdqu (%r11), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6b, 0x10, //0x00001485 vmovdqu $16(%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x20, //0x0000148b vmovdqu $32(%r11), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7b, 0x30, //0x00001491 vmovdqu $48(%r11), %xmm7 + 0xc5, 0xc9, 0x74, 0xd0, //0x00001497 vpcmpeqb %xmm0, %xmm6, %xmm2 + 0xc5, 0xf9, 0xd7, 0xf2, //0x0000149b vpmovmskb %xmm2, %esi + 0xc5, 0xd1, 0x74, 0xd0, //0x0000149f vpcmpeqb %xmm0, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x000014a3 vpmovmskb %xmm2, %ebx + 0xc5, 0xd9, 0x74, 0xd0, //0x000014a7 vpcmpeqb %xmm0, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x000014ab vpmovmskb %xmm2, %ecx + 0xc5, 0xc1, 0x74, 0xd0, //0x000014af vpcmpeqb %xmm0, %xmm7, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000014b3 vpmovmskb %xmm2, %edi + 0xc5, 0xc9, 0x74, 0xd1, //0x000014b7 vpcmpeqb %xmm1, %xmm6, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x000014bb vpmovmskb %xmm2, %r13d + 0xc5, 0xd1, 0x74, 0xd1, //0x000014bf vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000014c3 vpmovmskb %xmm2, %edx + 0xc5, 0xd9, 0x74, 0xd1, //0x000014c7 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x000014cb shlq $16, %rbx + 0x48, 0x09, 0xde, //0x000014cf orq %rbx, %rsi + 0xc5, 0xf9, 0xd7, 0xda, //0x000014d2 vpmovmskb %xmm2, %ebx + 0xc5, 0xc1, 0x74, 0xd1, //0x000014d6 vpcmpeqb %xmm1, %xmm7, %xmm2 + 0x48, 0xc1, 0xe1, 0x20, //0x000014da shlq $32, %rcx + 0x48, 0x09, 0xce, //0x000014de orq %rcx, %rsi + 0xc5, 0xf9, 0xd7, 0xca, //0x000014e1 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd6, //0x000014e5 vpcmpgtb %xmm6, %xmm15, %xmm2 + 0xc5, 0xc9, 0x64, 0xf3, //0x000014e9 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xd2, //0x000014ed vpand %xmm2, %xmm6, %xmm2 + 0x48, 0xc1, 0xe2, 0x10, //0x000014f1 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x000014f5 orq %rdx, %r13 + 0xc5, 0xf9, 0xd7, 0xd2, //0x000014f8 vpmovmskb %xmm2, %edx + 0xc5, 0x81, 0x64, 0xd5, //0x000014fc vpcmpgtb %xmm5, %xmm15, %xmm2 + 0xc5, 0xd1, 0x64, 0xeb, //0x00001500 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xd2, //0x00001504 vpand %xmm2, %xmm5, %xmm2 + 0x48, 0xc1, 0xe3, 0x20, //0x00001508 shlq $32, %rbx + 0x49, 0x09, 0xdd, //0x0000150c orq %rbx, %r13 + 0xc5, 0xf9, 0xd7, 0xda, //0x0000150f vpmovmskb %xmm2, %ebx + 0xc5, 0x81, 0x64, 0xd4, //0x00001513 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001517 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x0000151b vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe1, 0x30, //0x0000151f shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00001523 orq %rcx, %r13 + 0xc5, 0xf9, 0xd7, 0xca, //0x00001526 vpmovmskb %xmm2, %ecx + 0xc5, 0x81, 0x64, 0xd7, //0x0000152a vpcmpgtb %xmm7, %xmm15, %xmm2 + 0xc5, 0xc1, 0x64, 0xe3, //0x0000152e vpcmpgtb %xmm3, %xmm7, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001532 vpand %xmm2, %xmm4, %xmm2 + 0x48, 0xc1, 0xe3, 0x10, //0x00001536 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x0000153a orq %rbx, %rdx + 0xc5, 0x79, 0xd7, 0xf2, //0x0000153d vpmovmskb %xmm2, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001541 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x00001545 shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001549 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000154d jne LBB0_273 + 0x4d, 0x85, 0xed, //0x00001553 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00001556 jne LBB0_287 + //0x0000155c LBB0_273 + 0x49, 0xc1, 0xe6, 0x30, //0x0000155c shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00001560 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00001563 orq %rdi, %rsi + 0x4c, 0x89, 0xe9, //0x00001566 movq %r13, %rcx + 0x4c, 0x09, 0xc1, //0x00001569 orq %r8, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000156c jne LBB0_288 + 0x4c, 0x09, 0xf2, //0x00001572 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001575 testq %rsi, %rsi + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x00001578 jne LBB0_289 + //0x0000157e LBB0_275 + 0x48, 0x85, 0xd2, //0x0000157e testq %rdx, %rdx + 0x0f, 0x85, 0xa7, 0x0f, 0x00, 0x00, //0x00001581 jne LBB0_452 + 0x48, 0x83, 0xc0, 0xc0, //0x00001587 addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x0000158b addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x0000158f cmpq $63, %rax + 0x0f, 0x87, 0xe7, 0xfe, 0xff, 0xff, //0x00001593 ja LBB0_271 + 0xe9, 0xf0, 0x06, 0x00, 0x00, //0x00001599 jmp LBB0_277 + //0x0000159e LBB0_288 + 0x4c, 0x89, 0xc1, //0x0000159e movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000015a1 notq %rcx + 0x4c, 0x21, 0xe9, //0x000015a4 andq %r13, %rcx + 0x4c, 0x89, 0x55, 0xb8, //0x000015a7 movq %r10, $-72(%rbp) + 0x4c, 0x8d, 0x14, 0x09, //0x000015ab leaq (%rcx,%rcx), %r10 + 0x4d, 0x09, 0xc2, //0x000015af orq %r8, %r10 + 0x4c, 0x89, 0xd7, //0x000015b2 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x000015b5 notq %rdi + 0x4c, 0x21, 0xef, //0x000015b8 andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000015bb movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000015c5 andq %rbx, %rdi + 0x45, 0x31, 0xc0, //0x000015c8 xorl %r8d, %r8d + 0x48, 0x01, 0xcf, //0x000015cb addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x000015ce setb %r8b + 0x48, 0x01, 0xff, //0x000015d2 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000015d5 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x000015df xorq %rcx, %rdi + 0x4c, 0x21, 0xd7, //0x000015e2 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xb8, //0x000015e5 movq $-72(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x000015e9 notq %rdi + 0x48, 0x21, 0xfe, //0x000015ec andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x000015ef orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x000015f2 testq %rsi, %rsi + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x000015f5 je LBB0_275 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000015fb jmp LBB0_289 + //0x00001600 LBB0_287 + 0x4c, 0x89, 0xdb, //0x00001600 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00001603 subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xcd, //0x00001607 bsfq %r13, %r9 + 0x49, 0x01, 0xd9, //0x0000160b addq %rbx, %r9 + 0xe9, 0x49, 0xff, 0xff, 0xff, //0x0000160e jmp LBB0_273 + //0x00001613 LBB0_289 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001613 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001617 testq %rdx, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000161a movq $-48(%rbp), %r12 + 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, //0x0000161e je LBB0_304 + 0x48, 0x0f, 0xbc, 0xca, //0x00001624 bsfq %rdx, %rcx + 0x4d, 0x29, 0xe3, //0x00001628 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x0000162b cmpq %rax, %rcx + 0x0f, 0x83, 0x94, 0xf8, 0xff, 0xff, //0x0000162e jae LBB0_186 + 0xe9, 0x11, 0x0f, 0x00, 0x00, //0x00001634 jmp LBB0_306 + //0x00001639 LBB0_291 + 0x49, 0x01, 0xcd, //0x00001639 addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000163c movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xb0, //0x0000163f movq $-80(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x00001643 movq $-72(%rbp), %rbx + //0x00001647 LBB0_292 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001647 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x0000164e testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001651 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xcb, 0x0d, 0x00, 0x00, //0x00001655 je LBB0_439 + //0x0000165b LBB0_293 + 0x48, 0x85, 0xdb, //0x0000165b testq %rbx, %rbx + 0x0f, 0x84, 0xc2, 0x0d, 0x00, 0x00, //0x0000165e je LBB0_439 + 0x4d, 0x85, 0xf6, //0x00001664 testq %r14, %r14 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001667 movq $-64(%rbp), %r9 + 0x0f, 0x84, 0xb5, 0x0d, 0x00, 0x00, //0x0000166b je LBB0_439 + 0x4d, 0x29, 0xe0, //0x00001671 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00001674 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x00001678 cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000167b je LBB0_301 + 0x49, 0x39, 0xc6, //0x00001681 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00001684 je LBB0_301 + 0x48, 0x39, 0xc3, //0x0000168a cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x0000168d je LBB0_301 + 0x48, 0x85, 0xdb, //0x00001693 testq %rbx, %rbx + 0x0f, 0x8e, 0x6e, 0x00, 0x00, 0x00, //0x00001696 jle LBB0_309 + 0x48, 0x8d, 0x43, 0xff, //0x0000169c leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000016a0 cmpq %rax, %rdi + 0x0f, 0x84, 0x61, 0x00, 0x00, 0x00, //0x000016a3 je LBB0_309 + 0x48, 0xf7, 0xd3, //0x000016a9 notq %rbx + 0x49, 0x89, 0xdb, //0x000016ac movq %rbx, %r11 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000016af jmp LBB0_302 + //0x000016b4 LBB0_301 + 0x49, 0xf7, 0xd8, //0x000016b4 negq %r8 + 0x4d, 0x89, 0xc3, //0x000016b7 movq %r8, %r11 + //0x000016ba LBB0_302 + 0x4d, 0x85, 0xdb, //0x000016ba testq %r11, %r11 + 0x0f, 0x88, 0x63, 0x0d, 0x00, 0x00, //0x000016bd js LBB0_439 + //0x000016c3 LBB0_303 + 0x48, 0x8b, 0x4d, 0xa8, //0x000016c3 movq $-88(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x000016c7 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x000016ca movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000016cd movq %r15, %rax + 0x48, 0x85, 0xc9, //0x000016d0 testq %rcx, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x000016d3 movq $-48(%rbp), %r12 + 0x0f, 0x8f, 0xc3, 0xea, 0xff, 0xff, //0x000016d7 jg LBB0_2 + 0xe9, 0xb0, 0x0c, 0x00, 0x00, //0x000016dd jmp LBB0_423 + //0x000016e2 LBB0_304 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000016e2 movl $64, %ecx + 0x4d, 0x29, 0xe3, //0x000016e7 subq %r12, %r11 + 0x48, 0x39, 0xc1, //0x000016ea cmpq %rax, %rcx + 0x0f, 0x83, 0xd5, 0xf7, 0xff, 0xff, //0x000016ed jae LBB0_186 + 0xe9, 0x52, 0x0e, 0x00, 0x00, //0x000016f3 jmp LBB0_306 + //0x000016f8 LBB0_308 + 0x4d, 0x29, 0xd6, //0x000016f8 subq %r10, %r14 + 0x44, 0x0f, 0xbc, 0xde, //0x000016fb bsfl %esi, %r11d + 0x4d, 0x01, 0xf3, //0x000016ff addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x00001702 notq %r11 + 0xe9, 0xa6, 0x03, 0x00, 0x00, //0x00001705 jmp LBB0_326 + //0x0000170a LBB0_309 + 0x4c, 0x89, 0xf0, //0x0000170a movq %r14, %rax + 0x48, 0x09, 0xf8, //0x0000170d orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001710 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x66, 0x01, 0x00, 0x00, //0x00001713 jl LBB0_312 + 0x48, 0x85, 0xc0, //0x00001719 testq %rax, %rax + 0x0f, 0x88, 0x5d, 0x01, 0x00, 0x00, //0x0000171c js LBB0_312 + 0x49, 0xf7, 0xd6, //0x00001722 notq %r14 + 0x4d, 0x89, 0xf3, //0x00001725 movq %r14, %r11 + 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00001728 jmp LBB0_302 + //0x0000172d LBB0_49 + 0x4c, 0x8b, 0x5d, 0xb8, //0x0000172d movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xd5, //0x00001731 movq %r10, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001734 cmpq $32, %r13 + 0x0f, 0x82, 0x66, 0x08, 0x00, 0x00, //0x00001738 jb LBB0_366 + //0x0000173e LBB0_50 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x0000173e vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001743 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001749 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x0000174d vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001751 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001755 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001759 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000175d vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001761 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001765 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001769 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000176d shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001771 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001774 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001778 jne LBB0_52 + 0x48, 0x85, 0xff, //0x0000177e testq %rdi, %rdi + 0x0f, 0x85, 0xbc, 0x07, 0x00, 0x00, //0x00001781 jne LBB0_363 + //0x00001787 LBB0_52 + 0x48, 0x09, 0xca, //0x00001787 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x0000178a movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x0000178d orq %r12, %rax + 0x0f, 0x85, 0xca, 0x07, 0x00, 0x00, //0x00001790 jne LBB0_364 + //0x00001796 LBB0_53 + 0x48, 0x85, 0xd2, //0x00001796 testq %rdx, %rdx + 0x0f, 0x84, 0xfd, 0x07, 0x00, 0x00, //0x00001799 je LBB0_365 + //0x0000179f LBB0_54 + 0x48, 0x0f, 0xbc, 0xc2, //0x0000179f bsfq %rdx, %rax + 0xe9, 0xdb, 0xed, 0xff, 0xff, //0x000017a3 jmp LBB0_58 + //0x000017a8 LBB0_113 + 0x4d, 0x89, 0xd3, //0x000017a8 movq %r10, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x000017ab movq $-72(%rbp), %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000017af movq $-48(%rbp), %r12 + 0x48, 0x83, 0xf8, 0x20, //0x000017b3 cmpq $32, %rax + 0x0f, 0x82, 0x66, 0x02, 0x00, 0x00, //0x000017b7 jb LBB0_317 + //0x000017bd LBB0_114 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000017bd vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000017c2 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000017c8 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000017cc vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000017d0 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x000017d4 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x000017d8 vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000017dc vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x000017e0 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x000017e4 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x000017e8 vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x000017ec vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x000017f0 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x000017f4 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x000017f8 vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x000017fc vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001800 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001804 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001808 shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x0000180c shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001810 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001813 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001817 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x0000181d testq %rdx, %rdx + 0x0f, 0x85, 0xf8, 0x07, 0x00, 0x00, //0x00001820 jne LBB0_373 + //0x00001826 LBB0_116 + 0x48, 0xc1, 0xe7, 0x10, //0x00001826 shlq $16, %rdi + 0x48, 0x09, 0xce, //0x0000182a orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x0000182d movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001830 orq %r8, %rcx + 0x0f, 0x85, 0xcb, 0x06, 0x00, 0x00, //0x00001833 jne LBB0_362 + //0x00001839 LBB0_117 + 0x4c, 0x09, 0xf7, //0x00001839 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000183c movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001841 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001846 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001849 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000184f bsfq %rsi, %rdx + //0x00001853 LBB0_119 + 0x48, 0x85, 0xff, //0x00001853 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001856 je LBB0_121 + 0x48, 0x0f, 0xbc, 0xcf, //0x0000185c bsfq %rdi, %rcx + //0x00001860 LBB0_121 + 0x48, 0x85, 0xf6, //0x00001860 testq %rsi, %rsi + 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x00001863 je LBB0_315 + //0x00001869 LBB0_122 + 0x4d, 0x29, 0xe3, //0x00001869 subq %r12, %r11 + 0x48, 0x39, 0xd1, //0x0000186c cmpq %rdx, %rcx + 0x0f, 0x82, 0xd5, 0x0c, 0x00, 0x00, //0x0000186f jb LBB0_306 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001875 leaq $1(%r11,%rdx), %r11 + 0xe9, 0x4e, 0xf6, 0xff, 0xff, //0x0000187a jmp LBB0_187 + //0x0000187f LBB0_312 + 0x48, 0x85, 0xc0, //0x0000187f testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x00001882 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x00001886 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x00001889 cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x0000188d cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x00001890 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x00001894 movq %rdi, %r11 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x00001897 jmp LBB0_302 + //0x0000189c LBB0_313 + 0x48, 0xf7, 0xd0, //0x0000189c notq %rax + 0x49, 0x89, 0xc3, //0x0000189f movq %rax, %r11 + 0xe9, 0x09, 0x02, 0x00, 0x00, //0x000018a2 jmp LBB0_326 + //0x000018a7 LBB0_314 + 0x48, 0x89, 0x4d, 0xa8, //0x000018a7 movq %rcx, $-88(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000018ab movq $-1, %rax + 0x4d, 0x85, 0xed, //0x000018b2 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000018b5 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x86, 0xf3, 0xff, 0xff, //0x000018b9 jne LBB0_151 + 0xe9, 0xbe, 0x0a, 0x00, 0x00, //0x000018bf jmp LBB0_420 + //0x000018c4 LBB0_134 + 0x4c, 0x8b, 0x5d, 0xb8, //0x000018c4 movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xd5, //0x000018c8 movq %r10, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x000018cb cmpq $32, %r13 + 0x0f, 0x82, 0x57, 0x08, 0x00, 0x00, //0x000018cf jb LBB0_382 + //0x000018d5 LBB0_135 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x000018d5 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x000018da vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x000018e0 vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000018e4 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x000018e8 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x000018ec vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x000018f0 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000018f4 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x000018f8 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000018fc vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001900 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001904 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001908 orq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000190b cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000190f jne LBB0_137 + 0x48, 0x85, 0xff, //0x00001915 testq %rdi, %rdi + 0x0f, 0x85, 0xad, 0x07, 0x00, 0x00, //0x00001918 jne LBB0_379 + //0x0000191e LBB0_137 + 0x48, 0x09, 0xca, //0x0000191e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001921 movq %rdi, %rax + 0x4c, 0x09, 0xc8, //0x00001924 orq %r9, %rax + 0x0f, 0x85, 0xbb, 0x07, 0x00, 0x00, //0x00001927 jne LBB0_380 + //0x0000192d LBB0_138 + 0x48, 0x85, 0xd2, //0x0000192d testq %rdx, %rdx + 0x0f, 0x84, 0xee, 0x07, 0x00, 0x00, //0x00001930 je LBB0_381 + //0x00001936 LBB0_139 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001936 bsfq %rdx, %rax + 0xe9, 0x94, 0xf2, 0xff, 0xff, //0x0000193a jmp LBB0_143 + //0x0000193f LBB0_170 + 0x4d, 0x89, 0xc3, //0x0000193f movq %r8, %r11 + 0x4c, 0x89, 0xd0, //0x00001942 movq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001945 cmpq $32, %rax + 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x00001949 jb LBB0_329 + //0x0000194f LBB0_171 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x0000194f vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001954 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x0000195a vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0x79, 0xd7, 0xc5, //0x0000195e vpmovmskb %xmm5, %r8d + 0xc5, 0xd9, 0x74, 0xe8, //0x00001962 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001966 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x0000196a vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x0000196e vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001972 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001976 vpmovmskb %xmm5, %ecx + 0xc5, 0x81, 0x64, 0xea, //0x0000197a vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x0000197e vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001982 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001986 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x0000198a vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000198e vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001992 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001996 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x0000199a shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000199e shlq $16, %rcx + 0x48, 0x09, 0xca, //0x000019a2 orq %rcx, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000019a5 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000019a9 jne LBB0_173 + 0x48, 0x85, 0xd2, //0x000019af testq %rdx, %rdx + 0x0f, 0x85, 0x02, 0x08, 0x00, 0x00, //0x000019b2 jne LBB0_390 + //0x000019b8 LBB0_173 + 0x48, 0xc1, 0xe7, 0x10, //0x000019b8 shlq $16, %rdi + 0x4c, 0x09, 0xc6, //0x000019bc orq %r8, %rsi + 0x48, 0x89, 0xd1, //0x000019bf movq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x000019c2 orq %r9, %rcx + 0x0f, 0x85, 0x65, 0x06, 0x00, 0x00, //0x000019c5 jne LBB0_374 + //0x000019cb LBB0_174 + 0x4c, 0x09, 0xf7, //0x000019cb orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000019ce movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000019d3 movl $64, %edx + 0x48, 0x85, 0xf6, //0x000019d8 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019db je LBB0_176 + 0x48, 0x0f, 0xbc, 0xd6, //0x000019e1 bsfq %rsi, %rdx + //0x000019e5 LBB0_176 + 0x48, 0x85, 0xff, //0x000019e5 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019e8 je LBB0_178 + 0x48, 0x0f, 0xbc, 0xcf, //0x000019ee bsfq %rdi, %rcx + //0x000019f2 LBB0_178 + 0x48, 0x85, 0xf6, //0x000019f2 testq %rsi, %rsi + 0x0f, 0x84, 0xbe, 0x00, 0x00, 0x00, //0x000019f5 je LBB0_327 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000019fb subq $-48(%rbp), %r11 + 0x48, 0x39, 0xd1, //0x000019ff cmpq %rdx, %rcx + 0x0f, 0x82, 0x83, 0x0b, 0x00, 0x00, //0x00001a02 jb LBB0_458 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001a08 leaq $1(%r11,%rdx), %r11 + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00001a0d jmp LBB0_144 + //0x00001a12 LBB0_315 + 0x48, 0x85, 0xff, //0x00001a12 testq %rdi, %rdi + 0x0f, 0x85, 0x5c, 0x0b, 0x00, 0x00, //0x00001a15 jne LBB0_457 + 0x49, 0x83, 0xc3, 0x20, //0x00001a1b addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001a1f addq $-32, %rax + //0x00001a23 LBB0_317 + 0x4d, 0x85, 0xc0, //0x00001a23 testq %r8, %r8 + 0x0f, 0x85, 0x6f, 0x06, 0x00, 0x00, //0x00001a26 jne LBB0_377 + 0x48, 0x85, 0xc0, //0x00001a2c testq %rax, %rax + 0x0f, 0x84, 0x2e, 0x09, 0x00, 0x00, //0x00001a2f je LBB0_416 + //0x00001a35 LBB0_319 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001a35 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001a39 cmpb $34, %cl + 0x0f, 0x84, 0xa4, 0x03, 0x00, 0x00, //0x00001a3c je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001a42 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001a45 je LBB0_323 + 0x80, 0xf9, 0x1f, //0x00001a4b cmpb $31, %cl + 0x0f, 0x86, 0x2f, 0x0b, 0x00, 0x00, //0x00001a4e jbe LBB0_461 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001a54 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001a5b movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001a60 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001a63 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001a66 jne LBB0_319 + 0xe9, 0xf2, 0x08, 0x00, 0x00, //0x00001a6c jmp LBB0_416 + //0x00001a71 LBB0_323 + 0x48, 0x83, 0xf8, 0x01, //0x00001a71 cmpq $1, %rax + 0x0f, 0x84, 0xe8, 0x08, 0x00, 0x00, //0x00001a75 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001a7b movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001a7e movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001a82 subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001a85 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001a89 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001a8d movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001a94 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001a99 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001a9c addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001a9f jne LBB0_319 + 0xe9, 0xb9, 0x08, 0x00, 0x00, //0x00001aa5 jmp LBB0_416 + //0x00001aaa LBB0_325 + 0x48, 0xf7, 0xd6, //0x00001aaa notq %rsi + 0x49, 0x89, 0xf3, //0x00001aad movq %rsi, %r11 + //0x00001ab0 LBB0_326 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ab0 movq $-56(%rbp), %rsi + 0xe9, 0xff, 0xf1, 0xff, 0xff, //0x00001ab4 jmp LBB0_160 + //0x00001ab9 LBB0_327 + 0x48, 0x85, 0xff, //0x00001ab9 testq %rdi, %rdi + 0x0f, 0x85, 0xdb, 0x0a, 0x00, 0x00, //0x00001abc jne LBB0_459 + 0x49, 0x83, 0xc3, 0x20, //0x00001ac2 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001ac6 addq $-32, %rax + //0x00001aca LBB0_329 + 0x4d, 0x85, 0xc9, //0x00001aca testq %r9, %r9 + 0x0f, 0x85, 0x2e, 0x07, 0x00, 0x00, //0x00001acd jne LBB0_393 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ad3 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001ad7 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00001adb testq %rax, %rax + 0x0f, 0x84, 0xc7, 0x08, 0x00, 0x00, //0x00001ade je LBB0_425 + //0x00001ae4 LBB0_331 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001ae4 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001ae8 cmpb $34, %cl + 0x0f, 0x84, 0xa7, 0x00, 0x00, 0x00, //0x00001aeb je LBB0_340 + 0x80, 0xf9, 0x5c, //0x00001af1 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001af4 je LBB0_335 + 0x80, 0xf9, 0x1f, //0x00001afa cmpb $31, %cl + 0x0f, 0x86, 0xa3, 0x0a, 0x00, 0x00, //0x00001afd jbe LBB0_460 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001b03 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001b0a movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001b0f addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b12 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001b15 jne LBB0_331 + 0xe9, 0x8b, 0x08, 0x00, 0x00, //0x00001b1b jmp LBB0_425 + //0x00001b20 LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x00001b20 cmpq $1, %rax + 0x0f, 0x84, 0x8f, 0x0a, 0x00, 0x00, //0x00001b24 je LBB0_462 + 0x4c, 0x89, 0xd9, //0x00001b2a movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001b2d subq $-48(%rbp), %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00001b31 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00001b35 cmoveq %rcx, %r12 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001b39 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001b40 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b45 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b49 movq $-64(%rbp), %r9 + 0x49, 0x01, 0xd3, //0x00001b4d addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001b50 addq %rcx, %rax + 0x0f, 0x85, 0x8b, 0xff, 0xff, 0xff, //0x00001b53 jne LBB0_331 + 0xe9, 0x4d, 0x08, 0x00, 0x00, //0x00001b59 jmp LBB0_425 + //0x00001b5e LBB0_418 + 0x48, 0xf7, 0xda, //0x00001b5e negq %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00001b61 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x65, 0xd0, //0x00001b65 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b69 movq $-64(%rbp), %r9 + 0x49, 0x89, 0xd3, //0x00001b6d movq %rdx, %r11 + 0x4d, 0x85, 0xdb, //0x00001b70 testq %r11, %r11 + 0x0f, 0x89, 0x08, 0xe6, 0xff, 0xff, //0x00001b73 jns LBB0_258 + 0xe9, 0x01, 0x08, 0x00, 0x00, //0x00001b79 jmp LBB0_419 + //0x00001b7e LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001b7e subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001b81 bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001b85 addq %r13, %r11 + //0x00001b88 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001b88 notq %r11 + //0x00001b8b LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b8b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001b8f movq $-64(%rbp), %r9 + 0xe9, 0x22, 0xfb, 0xff, 0xff, //0x00001b93 jmp LBB0_302 + //0x00001b98 LBB0_340 + 0x4c, 0x03, 0x5d, 0x98, //0x00001b98 addq $-104(%rbp), %r11 + 0xe9, 0x9f, 0xf3, 0xff, 0xff, //0x00001b9c jmp LBB0_195 + //0x00001ba1 LBB0_208 + 0x4d, 0x89, 0xc3, //0x00001ba1 movq %r8, %r11 + 0x4c, 0x8b, 0x65, 0xb8, //0x00001ba4 movq $-72(%rbp), %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00001ba8 cmpq $32, %r12 + 0x0f, 0x82, 0x69, 0x00, 0x00, 0x00, //0x00001bac jb LBB0_399 + //0x00001bb2 LBB0_209 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001bb2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001bb7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001bbd vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001bc1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001bc5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001bc9 vpmovmskb %xmm5, %edx + 0xc5, 0xe9, 0x74, 0xd1, //0x00001bcd vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001bd1 vpmovmskb %xmm2, %edi + 0xc5, 0xd9, 0x74, 0xd1, //0x00001bd5 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001bd9 vpmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001bdd shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001be1 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00001be5 orq %rax, %rdi + 0x49, 0x83, 0xf9, 0xff, //0x00001be8 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001bec jne LBB0_211 + 0x48, 0x85, 0xff, //0x00001bf2 testq %rdi, %rdi + 0x0f, 0x85, 0x75, 0x06, 0x00, 0x00, //0x00001bf5 jne LBB0_396 + //0x00001bfb LBB0_211 + 0x48, 0x09, 0xca, //0x00001bfb orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001bfe movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00001c01 orq %r10, %rax + 0x0f, 0x85, 0x83, 0x06, 0x00, 0x00, //0x00001c04 jne LBB0_397 + //0x00001c0a LBB0_212 + 0x48, 0x85, 0xd2, //0x00001c0a testq %rdx, %rdx + 0x0f, 0x85, 0x8c, 0xfb, 0xff, 0xff, //0x00001c0d jne LBB0_54 + //0x00001c13 LBB0_398 + 0x49, 0x83, 0xc3, 0x20, //0x00001c13 addq $32, %r11 + 0x49, 0x83, 0xc4, 0xe0, //0x00001c17 addq $-32, %r12 + //0x00001c1b LBB0_399 + 0x4d, 0x85, 0xd2, //0x00001c1b testq %r10, %r10 + 0x0f, 0x85, 0xbe, 0x06, 0x00, 0x00, //0x00001c1e jne LBB0_411 + 0x4d, 0x85, 0xe4, //0x00001c24 testq %r12, %r12 + 0x0f, 0x84, 0x36, 0x07, 0x00, 0x00, //0x00001c27 je LBB0_416 + //0x00001c2d LBB0_401 + 0x49, 0x8d, 0x4b, 0x01, //0x00001c2d leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001c31 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001c35 cmpb $34, %bl + 0x0f, 0x84, 0x20, 0x02, 0x00, 0x00, //0x00001c38 je LBB0_406 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00001c3e leaq $-1(%r12), %rdx + 0x80, 0xfb, 0x5c, //0x00001c43 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001c46 je LBB0_404 + 0x49, 0x89, 0xd4, //0x00001c4c movq %rdx, %r12 + 0x49, 0x89, 0xcb, //0x00001c4f movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001c52 testq %rdx, %rdx + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00001c55 jne LBB0_401 + 0xe9, 0x03, 0x07, 0x00, 0x00, //0x00001c5b jmp LBB0_416 + //0x00001c60 LBB0_404 + 0x48, 0x85, 0xd2, //0x00001c60 testq %rdx, %rdx + 0x0f, 0x84, 0xfa, 0x06, 0x00, 0x00, //0x00001c63 je LBB0_416 + 0x48, 0x03, 0x4d, 0xa0, //0x00001c69 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001c6d cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001c71 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00001c75 addq $2, %r11 + 0x49, 0x83, 0xc4, 0xfe, //0x00001c79 addq $-2, %r12 + 0x4c, 0x89, 0xe2, //0x00001c7d movq %r12, %rdx + 0x48, 0x85, 0xd2, //0x00001c80 testq %rdx, %rdx + 0x0f, 0x85, 0xa4, 0xff, 0xff, 0xff, //0x00001c83 jne LBB0_401 + 0xe9, 0xd5, 0x06, 0x00, 0x00, //0x00001c89 jmp LBB0_416 + //0x00001c8e LBB0_277 + 0x4d, 0x89, 0xe3, //0x00001c8e movq %r12, %r11 + 0x4c, 0x89, 0xd0, //0x00001c91 movq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001c94 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001c98 movq $-48(%rbp), %r12 + 0x0f, 0x82, 0xbd, 0x00, 0x00, 0x00, //0x00001c9c jb LBB0_345 + //0x00001ca2 LBB0_278 + 0xc4, 0xc1, 0x7a, 0x6f, 0x13, //0x00001ca2 vmovdqu (%r11), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x63, 0x10, //0x00001ca7 vmovdqu $16(%r11), %xmm4 + 0xc5, 0xe9, 0x74, 0xe8, //0x00001cad vpcmpeqb %xmm0, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x00001cb1 vpmovmskb %xmm5, %ecx + 0xc5, 0xd9, 0x74, 0xe8, //0x00001cb5 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xf5, //0x00001cb9 vpmovmskb %xmm5, %esi + 0xc5, 0xe9, 0x74, 0xe9, //0x00001cbd vpcmpeqb %xmm1, %xmm2, %xmm5 + 0xc5, 0xf9, 0xd7, 0xd5, //0x00001cc1 vpmovmskb %xmm5, %edx + 0xc5, 0xd9, 0x74, 0xe9, //0x00001cc5 vpcmpeqb %xmm1, %xmm4, %xmm5 + 0xc5, 0xf9, 0xd7, 0xdd, //0x00001cc9 vpmovmskb %xmm5, %ebx + 0xc5, 0x81, 0x64, 0xea, //0x00001ccd vpcmpgtb %xmm2, %xmm15, %xmm5 + 0xc5, 0xe9, 0x64, 0xd3, //0x00001cd1 vpcmpgtb %xmm3, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xd5, //0x00001cd5 vpand %xmm5, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00001cd9 vpmovmskb %xmm2, %r14d + 0xc5, 0x81, 0x64, 0xd4, //0x00001cdd vpcmpgtb %xmm4, %xmm15, %xmm2 + 0xc5, 0xd9, 0x64, 0xe3, //0x00001ce1 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xd2, //0x00001ce5 vpand %xmm2, %xmm4, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x00001ce9 vpmovmskb %xmm2, %edi + 0x48, 0xc1, 0xe6, 0x10, //0x00001ced shlq $16, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00001cf1 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001cf5 orq %rbx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x00001cf8 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001cfc jne LBB0_280 + 0x48, 0x85, 0xd2, //0x00001d02 testq %rdx, %rdx + 0x0f, 0x85, 0xc5, 0x05, 0x00, 0x00, //0x00001d05 jne LBB0_408 + //0x00001d0b LBB0_280 + 0x48, 0xc1, 0xe7, 0x10, //0x00001d0b shlq $16, %rdi + 0x48, 0x09, 0xce, //0x00001d0f orq %rcx, %rsi + 0x48, 0x89, 0xd1, //0x00001d12 movq %rdx, %rcx + 0x4c, 0x09, 0xc1, //0x00001d15 orq %r8, %rcx + 0x0f, 0x85, 0x17, 0x05, 0x00, 0x00, //0x00001d18 jne LBB0_395 + //0x00001d1e LBB0_281 + 0x4c, 0x09, 0xf7, //0x00001d1e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001d21 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001d26 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001d2b testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d2e je LBB0_283 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001d34 bsfq %rsi, %rdx + //0x00001d38 LBB0_283 + 0x48, 0x85, 0xff, //0x00001d38 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001d3b je LBB0_285 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001d41 bsfq %rdi, %rcx + //0x00001d45 LBB0_285 + 0x48, 0x85, 0xf6, //0x00001d45 testq %rsi, %rsi + 0x0f, 0x85, 0x1b, 0xfb, 0xff, 0xff, //0x00001d48 jne LBB0_122 + 0x48, 0x85, 0xff, //0x00001d4e testq %rdi, %rdi + 0x0f, 0x85, 0x20, 0x08, 0x00, 0x00, //0x00001d51 jne LBB0_457 + 0x49, 0x83, 0xc3, 0x20, //0x00001d57 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001d5b addq $-32, %rax + //0x00001d5f LBB0_345 + 0x4d, 0x85, 0xc0, //0x00001d5f testq %r8, %r8 + 0x0f, 0x85, 0xa6, 0x05, 0x00, 0x00, //0x00001d62 jne LBB0_409 + 0x48, 0x85, 0xc0, //0x00001d68 testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x00001d6b je LBB0_416 + //0x00001d71 LBB0_347 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001d71 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001d75 cmpb $34, %cl + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00001d78 je LBB0_355 + 0x80, 0xf9, 0x5c, //0x00001d7e cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001d81 je LBB0_351 + 0x80, 0xf9, 0x1f, //0x00001d87 cmpb $31, %cl + 0x0f, 0x86, 0xf3, 0x07, 0x00, 0x00, //0x00001d8a jbe LBB0_461 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001d90 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001d97 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001d9c addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001d9f addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001da2 jne LBB0_347 + 0xe9, 0xb6, 0x05, 0x00, 0x00, //0x00001da8 jmp LBB0_416 + //0x00001dad LBB0_351 + 0x48, 0x83, 0xf8, 0x01, //0x00001dad cmpq $1, %rax + 0x0f, 0x84, 0xac, 0x05, 0x00, 0x00, //0x00001db1 je LBB0_416 + 0x4c, 0x89, 0xd9, //0x00001db7 movq %r11, %rcx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001dba movq $-48(%rbp), %r12 + 0x4c, 0x29, 0xe1, //0x00001dbe subq %r12, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001dc1 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001dc5 cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001dc9 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001dd0 movl $2, %edx + 0x49, 0x01, 0xd3, //0x00001dd5 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001dd8 addq %rcx, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001ddb jne LBB0_347 + 0xe9, 0x7d, 0x05, 0x00, 0x00, //0x00001de1 jmp LBB0_416 + //0x00001de6 LBB0_355 + 0x4c, 0x03, 0x5d, 0x98, //0x00001de6 addq $-104(%rbp), %r11 + 0xe9, 0xde, 0xf0, 0xff, 0xff, //0x00001dea jmp LBB0_187 + //0x00001def LBB0_341 + 0x49, 0x89, 0xc8, //0x00001def movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001df2 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001df9 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001dfc movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x55, 0xf8, 0xff, 0xff, //0x00001e00 jne LBB0_293 + 0xe9, 0x1b, 0x06, 0x00, 0x00, //0x00001e06 jmp LBB0_439 + //0x00001e0b LBB0_342 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e0b movq $-1, %r11 + 0x4c, 0x89, 0x55, 0xa8, //0x00001e12 movq %r10, $-88(%rbp) + 0x49, 0x89, 0xf9, //0x00001e16 movq %rdi, %r9 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001e19 movq $-1, %r13 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e20 movq $-1, %r12 + 0xe9, 0x54, 0xe9, 0xff, 0xff, //0x00001e27 jmp LBB0_90 + //0x00001e2c LBB0_353 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e2c movq $-1, %r9 + 0x45, 0x31, 0xe4, //0x00001e33 xorl %r12d, %r12d + 0x49, 0x83, 0xfd, 0x20, //0x00001e36 cmpq $32, %r13 + 0x0f, 0x83, 0xfe, 0xf8, 0xff, 0xff, //0x00001e3a jae LBB0_50 + 0xe9, 0x5f, 0x01, 0x00, 0x00, //0x00001e40 jmp LBB0_366 + //0x00001e45 LBB0_354 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001e45 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001e4c xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001e4f cmpq $32, %rax + 0x0f, 0x83, 0x64, 0xf9, 0xff, 0xff, //0x00001e53 jae LBB0_114 + 0xe9, 0xc5, 0xfb, 0xff, 0xff, //0x00001e59 jmp LBB0_317 + //0x00001e5e LBB0_406 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001e5e movq $-48(%rbp), %r12 + //0x00001e62 LBB0_407 + 0x4c, 0x29, 0xe1, //0x00001e62 subq %r12, %rcx + 0x49, 0x89, 0xcb, //0x00001e65 movq %rcx, %r11 + 0xe9, 0x60, 0xf0, 0xff, 0xff, //0x00001e68 jmp LBB0_187 + //0x00001e6d LBB0_356 + 0x49, 0xf7, 0xdb, //0x00001e6d negq %r11 + 0xe9, 0x16, 0xfd, 0xff, 0xff, //0x00001e70 jmp LBB0_339 + //0x00001e75 LBB0_357 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e75 movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00001e7c xorl %r9d, %r9d + 0x49, 0x83, 0xfd, 0x20, //0x00001e7f cmpq $32, %r13 + 0x0f, 0x83, 0x4c, 0xfa, 0xff, 0xff, //0x00001e83 jae LBB0_135 + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00001e89 jmp LBB0_382 + //0x00001e8e LBB0_358 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e8e movq $-1, %r12 + 0x45, 0x31, 0xc9, //0x00001e95 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x00001e98 cmpq $32, %rax + 0x0f, 0x83, 0xad, 0xfa, 0xff, 0xff, //0x00001e9c jae LBB0_171 + 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00001ea2 jmp LBB0_329 + //0x00001ea7 LBB0_359 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001ea7 movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x00001eae movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x00001eb1 movq %r10, %r9 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001eb4 movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ebb movq $-1, %rbx + 0x48, 0x8d, 0x35, 0x03, 0x09, 0x00, 0x00, //0x00001ec2 leaq $2307(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0x14, 0xf4, 0xff, 0xff, //0x00001ec9 jmp LBB0_239 + //0x00001ece LBB0_360 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001ece movq $-1, %r9 + 0x45, 0x31, 0xd2, //0x00001ed5 xorl %r10d, %r10d + 0x49, 0x83, 0xfc, 0x20, //0x00001ed8 cmpq $32, %r12 + 0x0f, 0x83, 0xd0, 0xfc, 0xff, 0xff, //0x00001edc jae LBB0_209 + 0xe9, 0x34, 0xfd, 0xff, 0xff, //0x00001ee2 jmp LBB0_399 + //0x00001ee7 LBB0_361 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001ee7 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001eee xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00001ef1 cmpq $32, %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x00001ef5 movq $-48(%rbp), %r12 + 0x0f, 0x83, 0xa3, 0xfd, 0xff, 0xff, //0x00001ef9 jae LBB0_278 + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00001eff jmp LBB0_345 + //0x00001f04 LBB0_362 + 0x44, 0x89, 0xc1, //0x00001f04 movl %r8d, %ecx + 0xf7, 0xd1, //0x00001f07 notl %ecx + 0x21, 0xd1, //0x00001f09 andl %edx, %ecx + 0x44, 0x8d, 0x24, 0x09, //0x00001f0b leal (%rcx,%rcx), %r12d + 0x45, 0x09, 0xc4, //0x00001f0f orl %r8d, %r12d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f12 movl $2863311530, %ebx + 0x44, 0x31, 0xe3, //0x00001f17 xorl %r12d, %ebx + 0x21, 0xd3, //0x00001f1a andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f1c andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00001f22 xorl %r8d, %r8d + 0x01, 0xcb, //0x00001f25 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00001f27 setb %r8b + 0x01, 0xdb, //0x00001f2b addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00001f2d xorl $1431655765, %ebx + 0x44, 0x21, 0xe3, //0x00001f33 andl %r12d, %ebx + 0x4c, 0x8b, 0x65, 0xd0, //0x00001f36 movq $-48(%rbp), %r12 + 0xf7, 0xd3, //0x00001f3a notl %ebx + 0x21, 0xde, //0x00001f3c andl %ebx, %esi + 0xe9, 0xf6, 0xf8, 0xff, 0xff, //0x00001f3e jmp LBB0_117 + //0x00001f43 LBB0_363 + 0x4c, 0x89, 0xd8, //0x00001f43 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001f46 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00001f4a bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x00001f4e addq %rax, %r9 + 0x48, 0x09, 0xca, //0x00001f51 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00001f54 movq %rdi, %rax + 0x4c, 0x09, 0xe0, //0x00001f57 orq %r12, %rax + 0x0f, 0x84, 0x36, 0xf8, 0xff, 0xff, //0x00001f5a je LBB0_53 + //0x00001f60 LBB0_364 + 0x44, 0x89, 0xe0, //0x00001f60 movl %r12d, %eax + 0xf7, 0xd0, //0x00001f63 notl %eax + 0x21, 0xf8, //0x00001f65 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x00001f67 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xe1, //0x00001f6a orl %r12d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f6d movl $2863311530, %esi + 0x31, 0xce, //0x00001f72 xorl %ecx, %esi + 0x21, 0xfe, //0x00001f74 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f76 andl $-1431655766, %esi + 0x45, 0x31, 0xe4, //0x00001f7c xorl %r12d, %r12d + 0x01, 0xc6, //0x00001f7f addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc4, //0x00001f81 setb %r12b + 0x01, 0xf6, //0x00001f85 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x00001f87 xorl $1431655765, %esi + 0x21, 0xce, //0x00001f8d andl %ecx, %esi + 0xf7, 0xd6, //0x00001f8f notl %esi + 0x21, 0xf2, //0x00001f91 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00001f93 testq %rdx, %rdx + 0x0f, 0x85, 0x03, 0xf8, 0xff, 0xff, //0x00001f96 jne LBB0_54 + //0x00001f9c LBB0_365 + 0x49, 0x83, 0xc3, 0x20, //0x00001f9c addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00001fa0 addq $-32, %r13 + //0x00001fa4 LBB0_366 + 0x4d, 0x85, 0xe4, //0x00001fa4 testq %r12, %r12 + 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00001fa7 jne LBB0_375 + 0x4c, 0x8b, 0x65, 0xd0, //0x00001fad movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x00001fb1 testq %r13, %r13 + 0x0f, 0x84, 0xa9, 0x03, 0x00, 0x00, //0x00001fb4 je LBB0_416 + //0x00001fba LBB0_368 + 0x49, 0x8d, 0x4b, 0x01, //0x00001fba leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00001fbe movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00001fc2 cmpb $34, %bl + 0x0f, 0x84, 0x97, 0xfe, 0xff, 0xff, //0x00001fc5 je LBB0_407 + 0x49, 0x8d, 0x55, 0xff, //0x00001fcb leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00001fcf cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001fd2 je LBB0_371 + 0x49, 0x89, 0xd5, //0x00001fd8 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00001fdb movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00001fde testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00001fe1 jne LBB0_368 + 0xe9, 0x77, 0x03, 0x00, 0x00, //0x00001fe7 jmp LBB0_416 + //0x00001fec LBB0_371 + 0x48, 0x85, 0xd2, //0x00001fec testq %rdx, %rdx + 0x0f, 0x84, 0x6e, 0x03, 0x00, 0x00, //0x00001fef je LBB0_416 + 0x48, 0x03, 0x4d, 0xa0, //0x00001ff5 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001ff9 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001ffd cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00002001 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002005 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002009 movq %r13, %rdx + 0x4c, 0x8b, 0x65, 0xd0, //0x0000200c movq $-48(%rbp), %r12 + 0x48, 0x85, 0xd2, //0x00002010 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x00002013 jne LBB0_368 + 0xe9, 0x45, 0x03, 0x00, 0x00, //0x00002019 jmp LBB0_416 + //0x0000201e LBB0_373 + 0x4c, 0x89, 0xdb, //0x0000201e movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x00002021 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002024 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x00002028 addq %rbx, %r9 + 0xe9, 0xf6, 0xf7, 0xff, 0xff, //0x0000202b jmp LBB0_116 + //0x00002030 LBB0_374 + 0x44, 0x89, 0xc9, //0x00002030 movl %r9d, %ecx + 0xf7, 0xd1, //0x00002033 notl %ecx + 0x21, 0xd1, //0x00002035 andl %edx, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x00002037 leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xc8, //0x0000203b orl %r9d, %r8d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000203e movl $2863311530, %ebx + 0x44, 0x31, 0xc3, //0x00002043 xorl %r8d, %ebx + 0x21, 0xd3, //0x00002046 andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002048 andl $-1431655766, %ebx + 0x45, 0x31, 0xc9, //0x0000204e xorl %r9d, %r9d + 0x01, 0xcb, //0x00002051 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc1, //0x00002053 setb %r9b + 0x01, 0xdb, //0x00002057 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00002059 xorl $1431655765, %ebx + 0x44, 0x21, 0xc3, //0x0000205f andl %r8d, %ebx + 0xf7, 0xd3, //0x00002062 notl %ebx + 0x21, 0xde, //0x00002064 andl %ebx, %esi + 0xe9, 0x60, 0xf9, 0xff, 0xff, //0x00002066 jmp LBB0_174 + //0x0000206b LBB0_375 + 0x4d, 0x85, 0xed, //0x0000206b testq %r13, %r13 + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x0000206e je LBB0_416 + 0x48, 0x8b, 0x45, 0xa0, //0x00002074 movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002078 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x0000207b cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x0000207f cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x00002083 incq %r11 + 0x49, 0xff, 0xcd, //0x00002086 decq %r13 + 0x4c, 0x8b, 0x65, 0xd0, //0x00002089 movq $-48(%rbp), %r12 + 0x4d, 0x85, 0xed, //0x0000208d testq %r13, %r13 + 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x00002090 jne LBB0_368 + 0xe9, 0xc8, 0x02, 0x00, 0x00, //0x00002096 jmp LBB0_416 + //0x0000209b LBB0_377 + 0x48, 0x85, 0xc0, //0x0000209b testq %rax, %rax + 0x0f, 0x84, 0xbf, 0x02, 0x00, 0x00, //0x0000209e je LBB0_416 + 0x48, 0x8b, 0x4d, 0xa0, //0x000020a4 movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x000020a8 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000020ab cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x000020af cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x000020b3 incq %r11 + 0x48, 0xff, 0xc8, //0x000020b6 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x000020b9 movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x000020bd testq %rax, %rax + 0x0f, 0x85, 0x6f, 0xf9, 0xff, 0xff, //0x000020c0 jne LBB0_319 + 0xe9, 0x98, 0x02, 0x00, 0x00, //0x000020c6 jmp LBB0_416 + //0x000020cb LBB0_379 + 0x4c, 0x89, 0xd8, //0x000020cb movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000020ce subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x000020d2 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x000020d6 addq %rax, %r12 + 0x48, 0x09, 0xca, //0x000020d9 orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x000020dc movq %rdi, %rax + 0x4c, 0x09, 0xc8, //0x000020df orq %r9, %rax + 0x0f, 0x84, 0x45, 0xf8, 0xff, 0xff, //0x000020e2 je LBB0_138 + //0x000020e8 LBB0_380 + 0x44, 0x89, 0xc8, //0x000020e8 movl %r9d, %eax + 0xf7, 0xd0, //0x000020eb notl %eax + 0x21, 0xf8, //0x000020ed andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x000020ef leal (%rax,%rax), %ecx + 0x44, 0x09, 0xc9, //0x000020f2 orl %r9d, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000020f5 movl $2863311530, %esi + 0x31, 0xce, //0x000020fa xorl %ecx, %esi + 0x21, 0xfe, //0x000020fc andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x000020fe andl $-1431655766, %esi + 0x45, 0x31, 0xc9, //0x00002104 xorl %r9d, %r9d + 0x01, 0xc6, //0x00002107 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc1, //0x00002109 setb %r9b + 0x01, 0xf6, //0x0000210d addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000210f xorl $1431655765, %esi + 0x21, 0xce, //0x00002115 andl %ecx, %esi + 0xf7, 0xd6, //0x00002117 notl %esi + 0x21, 0xf2, //0x00002119 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x0000211b testq %rdx, %rdx + 0x0f, 0x85, 0x12, 0xf8, 0xff, 0xff, //0x0000211e jne LBB0_139 + //0x00002124 LBB0_381 + 0x49, 0x83, 0xc3, 0x20, //0x00002124 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00002128 addq $-32, %r13 + //0x0000212c LBB0_382 + 0x4d, 0x85, 0xc9, //0x0000212c testq %r9, %r9 + 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x0000212f jne LBB0_391 + 0x48, 0x8b, 0x75, 0xc8, //0x00002135 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002139 movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x0000213d testq %r13, %r13 + 0x0f, 0x84, 0x65, 0x02, 0x00, 0x00, //0x00002140 je LBB0_425 + //0x00002146 LBB0_384 + 0x49, 0x8d, 0x4b, 0x01, //0x00002146 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x0000214a movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x0000214e cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002151 je LBB0_389 + 0x49, 0x8d, 0x55, 0xff, //0x00002157 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x0000215b cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000215e je LBB0_387 + 0x49, 0x89, 0xd5, //0x00002164 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x00002167 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x0000216a testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000216d jne LBB0_384 + 0xe9, 0x33, 0x02, 0x00, 0x00, //0x00002173 jmp LBB0_425 + //0x00002178 LBB0_387 + 0x48, 0x85, 0xd2, //0x00002178 testq %rdx, %rdx + 0x0f, 0x84, 0x38, 0x04, 0x00, 0x00, //0x0000217b je LBB0_462 + 0x48, 0x03, 0x4d, 0xa0, //0x00002181 addq $-96(%rbp), %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00002185 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00002189 cmoveq %rcx, %r12 + 0x49, 0x83, 0xc3, 0x02, //0x0000218d addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002191 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002195 movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00002198 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x0000219c movq $-64(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x000021a0 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x000021a3 jne LBB0_384 + 0xe9, 0xfd, 0x01, 0x00, 0x00, //0x000021a9 jmp LBB0_425 + //0x000021ae LBB0_389 + 0x48, 0x2b, 0x4d, 0xd0, //0x000021ae subq $-48(%rbp), %rcx + 0x49, 0x89, 0xcb, //0x000021b2 movq %rcx, %r11 + 0xe9, 0x86, 0xed, 0xff, 0xff, //0x000021b5 jmp LBB0_195 + //0x000021ba LBB0_390 + 0x4c, 0x89, 0xd9, //0x000021ba movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x000021bd subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xe2, //0x000021c1 bsfq %rdx, %r12 + 0x49, 0x01, 0xcc, //0x000021c5 addq %rcx, %r12 + 0xe9, 0xeb, 0xf7, 0xff, 0xff, //0x000021c8 jmp LBB0_173 + //0x000021cd LBB0_391 + 0x4d, 0x85, 0xed, //0x000021cd testq %r13, %r13 + 0x0f, 0x84, 0xe3, 0x03, 0x00, 0x00, //0x000021d0 je LBB0_462 + 0x48, 0x8b, 0x45, 0xa0, //0x000021d6 movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000021da addq %r11, %rax + 0x49, 0x83, 0xfc, 0xff, //0x000021dd cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe0, //0x000021e1 cmoveq %rax, %r12 + 0x49, 0xff, 0xc3, //0x000021e5 incq %r11 + 0x49, 0xff, 0xcd, //0x000021e8 decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000021eb movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x000021ef movq $-64(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x000021f3 testq %r13, %r13 + 0x0f, 0x85, 0x4a, 0xff, 0xff, 0xff, //0x000021f6 jne LBB0_384 + 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x000021fc jmp LBB0_425 + //0x00002201 LBB0_393 + 0x48, 0x85, 0xc0, //0x00002201 testq %rax, %rax + 0x0f, 0x84, 0xaf, 0x03, 0x00, 0x00, //0x00002204 je LBB0_462 + 0x48, 0x8b, 0x4d, 0xa0, //0x0000220a movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000220e addq %r11, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00002211 cmpq $-1, %r12 + 0x4c, 0x0f, 0x44, 0xe1, //0x00002215 cmoveq %rcx, %r12 + 0x49, 0xff, 0xc3, //0x00002219 incq %r11 + 0x48, 0xff, 0xc8, //0x0000221c decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x0000221f movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002223 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00002227 testq %rax, %rax + 0x0f, 0x85, 0xb4, 0xf8, 0xff, 0xff, //0x0000222a jne LBB0_331 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x00002230 jmp LBB0_425 + //0x00002235 LBB0_395 + 0x44, 0x89, 0xc1, //0x00002235 movl %r8d, %ecx + 0xf7, 0xd1, //0x00002238 notl %ecx + 0x21, 0xd1, //0x0000223a andl %edx, %ecx + 0x44, 0x8d, 0x14, 0x09, //0x0000223c leal (%rcx,%rcx), %r10d + 0x45, 0x09, 0xc2, //0x00002240 orl %r8d, %r10d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002243 movl $2863311530, %ebx + 0x44, 0x31, 0xd3, //0x00002248 xorl %r10d, %ebx + 0x21, 0xd3, //0x0000224b andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000224d andl $-1431655766, %ebx + 0x45, 0x31, 0xc0, //0x00002253 xorl %r8d, %r8d + 0x01, 0xcb, //0x00002256 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc0, //0x00002258 setb %r8b + 0x01, 0xdb, //0x0000225c addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000225e xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x00002264 andl %r10d, %ebx + 0xf7, 0xd3, //0x00002267 notl %ebx + 0x21, 0xde, //0x00002269 andl %ebx, %esi + 0xe9, 0xae, 0xfa, 0xff, 0xff, //0x0000226b jmp LBB0_281 + //0x00002270 LBB0_396 + 0x4c, 0x89, 0xd8, //0x00002270 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002273 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xcf, //0x00002277 bsfq %rdi, %r9 + 0x49, 0x01, 0xc1, //0x0000227b addq %rax, %r9 + 0x48, 0x09, 0xca, //0x0000227e orq %rcx, %rdx + 0x48, 0x89, 0xf8, //0x00002281 movq %rdi, %rax + 0x4c, 0x09, 0xd0, //0x00002284 orq %r10, %rax + 0x0f, 0x84, 0x7d, 0xf9, 0xff, 0xff, //0x00002287 je LBB0_212 + //0x0000228d LBB0_397 + 0x44, 0x89, 0xd0, //0x0000228d movl %r10d, %eax + 0xf7, 0xd0, //0x00002290 notl %eax + 0x21, 0xf8, //0x00002292 andl %edi, %eax + 0x8d, 0x0c, 0x00, //0x00002294 leal (%rax,%rax), %ecx + 0x44, 0x09, 0xd1, //0x00002297 orl %r10d, %ecx + 0x89, 0xce, //0x0000229a movl %ecx, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000229c movl $2863311530, %ebx + 0x31, 0xde, //0x000022a1 xorl %ebx, %esi + 0x21, 0xfe, //0x000022a3 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022a5 andl $-1431655766, %esi + 0x45, 0x31, 0xd2, //0x000022ab xorl %r10d, %r10d + 0x01, 0xc6, //0x000022ae addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc2, //0x000022b0 setb %r10b + 0x01, 0xf6, //0x000022b4 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x000022b6 xorl $1431655765, %esi + 0x21, 0xce, //0x000022bc andl %ecx, %esi + 0xf7, 0xd6, //0x000022be notl %esi + 0x21, 0xf2, //0x000022c0 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x000022c2 testq %rdx, %rdx + 0x0f, 0x85, 0xd4, 0xf4, 0xff, 0xff, //0x000022c5 jne LBB0_54 + 0xe9, 0x43, 0xf9, 0xff, 0xff, //0x000022cb jmp LBB0_398 + //0x000022d0 LBB0_408 + 0x4c, 0x89, 0xdb, //0x000022d0 movq %r11, %rbx + 0x4c, 0x29, 0xe3, //0x000022d3 subq %r12, %rbx + 0x4c, 0x0f, 0xbc, 0xca, //0x000022d6 bsfq %rdx, %r9 + 0x49, 0x01, 0xd9, //0x000022da addq %rbx, %r9 + 0xe9, 0x29, 0xfa, 0xff, 0xff, //0x000022dd jmp LBB0_280 + //0x000022e2 LBB0_411 + 0x4d, 0x85, 0xe4, //0x000022e2 testq %r12, %r12 + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x000022e5 je LBB0_416 + 0x48, 0x8b, 0x45, 0xa0, //0x000022eb movq $-96(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000022ef addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x000022f2 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x000022f6 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x000022fa incq %r11 + 0x49, 0xff, 0xcc, //0x000022fd decq %r12 + 0x4d, 0x85, 0xe4, //0x00002300 testq %r12, %r12 + 0x0f, 0x85, 0x24, 0xf9, 0xff, 0xff, //0x00002303 jne LBB0_401 + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00002309 jmp LBB0_416 + //0x0000230e LBB0_409 + 0x48, 0x85, 0xc0, //0x0000230e testq %rax, %rax + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00002311 je LBB0_416 + 0x48, 0x8b, 0x4d, 0xa0, //0x00002317 movq $-96(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000231b addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x0000231e cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002322 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x00002326 incq %r11 + 0x48, 0xff, 0xc8, //0x00002329 decq %rax + 0x4c, 0x8b, 0x65, 0xd0, //0x0000232c movq $-48(%rbp), %r12 + 0x48, 0x85, 0xc0, //0x00002330 testq %rax, %rax + 0x0f, 0x85, 0x38, 0xfa, 0xff, 0xff, //0x00002333 jne LBB0_347 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002339 jmp LBB0_416 + //0x0000233e LBB0_413 + 0x48, 0x89, 0x16, //0x0000233e movq %rdx, (%rsi) + //0x00002341 LBB0_414 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002341 movq $-1, %rax + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00002348 jmp LBB0_423 + //0x0000234d LBB0_441 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x0000234d movq $-7, %rax + 0xe9, 0x39, 0x00, 0x00, 0x00, //0x00002354 jmp LBB0_423 + //0x00002359 LBB0_415 + 0x49, 0x83, 0xfb, 0xff, //0x00002359 cmpq $-1, %r11 + 0x0f, 0x85, 0x7f, 0x00, 0x00, 0x00, //0x0000235d jne LBB0_307 + //0x00002363 LBB0_416 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002363 movq $-1, %r11 + 0x4c, 0x8b, 0x4d, 0xb0, //0x0000236a movq $-80(%rbp), %r9 + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x0000236e jmp LBB0_307 + //0x00002373 LBB0_417 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002373 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000237a jmp LBB0_420 + //0x0000237f LBB0_419 + 0x4c, 0x89, 0xd8, //0x0000237f movq %r11, %rax + //0x00002382 LBB0_420 + 0x48, 0xf7, 0xd0, //0x00002382 notq %rax + 0x49, 0x01, 0xc7, //0x00002385 addq %rax, %r15 + //0x00002388 LBB0_421 + 0x4c, 0x89, 0x3e, //0x00002388 movq %r15, (%rsi) + //0x0000238b LBB0_422 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000238b movq $-2, %rax + //0x00002392 LBB0_423 + 0x48, 0x83, 0xc4, 0x68, //0x00002392 addq $104, %rsp + 0x5b, //0x00002396 popq %rbx + 0x41, 0x5c, //0x00002397 popq %r12 + 0x41, 0x5d, //0x00002399 popq %r13 + 0x41, 0x5e, //0x0000239b popq %r14 + 0x41, 0x5f, //0x0000239d popq %r15 + 0x5d, //0x0000239f popq %rbp + 0xc3, //0x000023a0 retq + //0x000023a1 LBB0_424 + 0x49, 0x83, 0xfb, 0xff, //0x000023a1 cmpq $-1, %r11 + 0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x000023a5 jne LBB0_437 + //0x000023ab LBB0_425 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000023ab movq $-1, %r11 + 0x4c, 0x8b, 0x65, 0xb0, //0x000023b2 movq $-80(%rbp), %r12 + 0xe9, 0x59, 0x00, 0x00, 0x00, //0x000023b6 jmp LBB0_437 + //0x000023bb LBB0_440 + 0x48, 0x89, 0x0e, //0x000023bb movq %rcx, (%rsi) + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000023be jmp LBB0_423 + //0x000023c3 LBB0_426 + 0x49, 0x83, 0xf9, 0xff, //0x000023c3 cmpq $-1, %r9 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000023c7 jne LBB0_431 + 0x49, 0x0f, 0xbc, 0xc4, //0x000023cd bsfq %r12, %rax + //0x000023d1 LBB0_428 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000023d1 subq $-48(%rbp), %r11 + //0x000023d5 LBB0_429 + 0x49, 0x01, 0xc3, //0x000023d5 addq %rax, %r11 + //0x000023d8 LBB0_430 + 0x4d, 0x89, 0xd9, //0x000023d8 movq %r11, %r9 + //0x000023db LBB0_431 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000023db movq $-2, %r11 + //0x000023e2 LBB0_307 + 0x48, 0x8b, 0x45, 0xc8, //0x000023e2 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x000023e6 movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x000023e9 movq %r11, %rax + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000023ec jmp LBB0_423 + //0x000023f1 LBB0_432 + 0x49, 0x83, 0xfc, 0xff, //0x000023f1 cmpq $-1, %r12 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000023f5 jne LBB0_435 + 0x48, 0x0f, 0xbc, 0xc2, //0x000023fb bsfq %rdx, %rax + //0x000023ff LBB0_434 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000023ff subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00002403 addq %rax, %r11 + 0x4d, 0x89, 0xdc, //0x00002406 movq %r11, %r12 + //0x00002409 LBB0_435 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002409 movq $-2, %r11 + //0x00002410 LBB0_436 + 0x48, 0x8b, 0x75, 0xc8, //0x00002410 movq $-56(%rbp), %rsi + //0x00002414 LBB0_437 + 0x4c, 0x89, 0x26, //0x00002414 movq %r12, (%rsi) + 0x4c, 0x89, 0xd8, //0x00002417 movq %r11, %rax + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000241a jmp LBB0_423 + //0x0000241f LBB0_438 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000241f movq $-1, %r11 + //0x00002426 LBB0_439 + 0x4d, 0x29, 0xdf, //0x00002426 subq %r11, %r15 + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00002429 jmp LBB0_421 + //0x0000242e LBB0_442 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000242e movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002435 cmpb $97, %cl + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x00002438 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x0000243e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002442 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x00002445 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x0000244b jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x00002451 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002455 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x73, //0x00002458 cmpb $115, $3(%r12,%r15) + 0x0f, 0x85, 0x2e, 0xff, 0xff, 0xff, //0x0000245e jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x04, //0x00002464 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002468 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x04, 0x65, //0x0000246b cmpb $101, $4(%r12,%r15) + 0x0f, 0x85, 0x1b, 0xff, 0xff, 0xff, //0x00002471 jne LBB0_423 + 0x49, 0x83, 0xc7, 0x05, //0x00002477 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x0000247b movq %r15, (%rsi) + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x0000247e jmp LBB0_423 + //0x00002483 LBB0_247 + 0x4c, 0x89, 0x3e, //0x00002483 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002486 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x0000248d cmpb $110, (%r10) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x00002491 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x01, //0x00002497 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000249b movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x75, //0x0000249e cmpb $117, $1(%r12,%r15) + 0x0f, 0x85, 0xe8, 0xfe, 0xff, 0xff, //0x000024a4 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x000024aa leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024ae movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x6c, //0x000024b1 cmpb $108, $2(%r12,%r15) + 0x0f, 0x85, 0xd5, 0xfe, 0xff, 0xff, //0x000024b7 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x000024bd leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024c1 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x6c, //0x000024c4 cmpb $108, $3(%r12,%r15) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x000024ca jne LBB0_423 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000024d0 jmp LBB0_451 + //0x000024d5 LBB0_447 + 0x4c, 0x89, 0x3e, //0x000024d5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000024d8 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x000024df cmpb $116, (%r10) + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x000024e3 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x01, //0x000024e9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000024ed movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x72, //0x000024f0 cmpb $114, $1(%r12,%r15) + 0x0f, 0x85, 0x96, 0xfe, 0xff, 0xff, //0x000024f6 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x02, //0x000024fc leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002500 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x75, //0x00002503 cmpb $117, $2(%r12,%r15) + 0x0f, 0x85, 0x83, 0xfe, 0xff, 0xff, //0x00002509 jne LBB0_423 + 0x49, 0x8d, 0x4f, 0x03, //0x0000250f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002513 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3c, 0x03, 0x65, //0x00002516 cmpb $101, $3(%r12,%r15) + 0x0f, 0x85, 0x70, 0xfe, 0xff, 0xff, //0x0000251c jne LBB0_423 + //0x00002522 LBB0_451 + 0x49, 0x83, 0xc7, 0x04, //0x00002522 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002526 movq %r15, (%rsi) + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00002529 jmp LBB0_423 + //0x0000252e LBB0_452 + 0x49, 0x83, 0xf9, 0xff, //0x0000252e cmpq $-1, %r9 + 0x0f, 0x85, 0xa3, 0xfe, 0xff, 0xff, //0x00002532 jne LBB0_431 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002538 bsfq %rdx, %rax + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x0000253c jmp LBB0_428 + //0x00002541 LBB0_456 + 0x4c, 0x89, 0x5d, 0xb0, //0x00002541 movq %r11, $-80(%rbp) + 0xe9, 0x19, 0xfe, 0xff, 0xff, //0x00002545 jmp LBB0_416 + //0x0000254a LBB0_306 + 0x4c, 0x01, 0xd9, //0x0000254a addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000254d movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x00002554 movq %rcx, %r9 + 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00002557 jmp LBB0_307 + //0x0000255c LBB0_454 + 0x4c, 0x89, 0x5d, 0xb0, //0x0000255c movq %r11, $-80(%rbp) + 0xe9, 0x46, 0xfe, 0xff, 0xff, //0x00002560 jmp LBB0_425 + //0x00002565 LBB0_455 + 0x4c, 0x01, 0xd9, //0x00002565 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002568 movq $-2, %r11 + 0x49, 0x89, 0xcc, //0x0000256f movq %rcx, %r12 + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00002572 jmp LBB0_437 + //0x00002577 LBB0_457 + 0x48, 0x0f, 0xbc, 0xc7, //0x00002577 bsfq %rdi, %rax + 0x4d, 0x29, 0xe3, //0x0000257b subq %r12, %r11 + 0xe9, 0x52, 0xfe, 0xff, 0xff, //0x0000257e jmp LBB0_429 + //0x00002583 LBB0_461 + 0x4d, 0x29, 0xe3, //0x00002583 subq %r12, %r11 + 0xe9, 0x4d, 0xfe, 0xff, 0xff, //0x00002586 jmp LBB0_430 + //0x0000258b LBB0_458 + 0x4c, 0x01, 0xd9, //0x0000258b addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000258e movq $-2, %r11 + 0x49, 0x89, 0xcc, //0x00002595 movq %rcx, %r12 + 0xe9, 0x73, 0xfe, 0xff, 0xff, //0x00002598 jmp LBB0_436 + //0x0000259d LBB0_459 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000259d bsfq %rdi, %rax + 0xe9, 0x59, 0xfe, 0xff, 0xff, //0x000025a1 jmp LBB0_434 + //0x000025a6 LBB0_460 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000025a6 subq $-48(%rbp), %r11 + 0x4d, 0x89, 0xdc, //0x000025aa movq %r11, %r12 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000025ad movq $-2, %r11 + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x000025b4 jmp LBB0_437 + //0x000025b9 LBB0_462 + 0x48, 0x8b, 0x75, 0xc8, //0x000025b9 movq $-56(%rbp), %rsi + 0xe9, 0xe9, 0xfd, 0xff, 0xff, //0x000025bd jmp LBB0_425 + 0x90, 0x90, //0x000025c2 .p2align 2, 0x90 + // // .set L0_0_set_33, LBB0_33-LJTI0_0 + // // .set L0_0_set_37, LBB0_37-LJTI0_0 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_59, LBB0_59-LJTI0_0 + // // .set L0_0_set_61, LBB0_61-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + //0x000025c4 LJTI0_0 + 0xc3, 0xdd, 0xff, 0xff, //0x000025c4 .long L0_0_set_33 + 0xeb, 0xdd, 0xff, 0xff, //0x000025c8 .long L0_0_set_37 + 0x16, 0xde, 0xff, 0xff, //0x000025cc .long L0_0_set_39 + 0xcf, 0xdf, 0xff, 0xff, //0x000025d0 .long L0_0_set_59 + 0xe5, 0xdf, 0xff, 0xff, //0x000025d4 .long L0_0_set_61 + 0x55, 0xe2, 0xff, 0xff, //0x000025d8 .long L0_0_set_64 + // // .set L0_1_set_423, LBB0_423-LJTI0_1 + // // .set L0_1_set_422, LBB0_422-LJTI0_1 + // // .set L0_1_set_199, LBB0_199-LJTI0_1 + // // .set L0_1_set_215, LBB0_215-LJTI0_1 + // // .set L0_1_set_66, LBB0_66-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_242, LBB0_242-LJTI0_1 + // // .set L0_1_set_245, LBB0_245-LJTI0_1 + // // .set L0_1_set_251, LBB0_251-LJTI0_1 + // // .set L0_1_set_255, LBB0_255-LJTI0_1 + //0x000025dc LJTI0_1 + 0xb6, 0xfd, 0xff, 0xff, //0x000025dc .long L0_1_set_423 + 0xaf, 0xfd, 0xff, 0xff, //0x000025e0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025e4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025e8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025ec .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025f8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000025fc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002600 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002604 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002608 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000260c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002610 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002614 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002618 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000261c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002620 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002624 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002628 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000262c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002630 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002634 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002638 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000263c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002640 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002644 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002648 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000264c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002650 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002654 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002658 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000265c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002660 .long L0_1_set_422 + 0xa6, 0xe9, 0xff, 0xff, //0x00002664 .long L0_1_set_199 + 0xaf, 0xfd, 0xff, 0xff, //0x00002668 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000266c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002670 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002674 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002678 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000267c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002680 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002684 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002688 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000268c .long L0_1_set_422 + 0x38, 0xeb, 0xff, 0xff, //0x00002690 .long L0_1_set_215 + 0xaf, 0xfd, 0xff, 0xff, //0x00002694 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002698 .long L0_1_set_422 + 0xfd, 0xdf, 0xff, 0xff, //0x0000269c .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026a0 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026a4 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026a8 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026ac .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b0 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b4 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026b8 .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026bc .long L0_1_set_66 + 0xfd, 0xdf, 0xff, 0xff, //0x000026c0 .long L0_1_set_66 + 0xaf, 0xfd, 0xff, 0xff, //0x000026c4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026c8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026cc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026d8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026dc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026e8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026ec .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026f8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000026fc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002700 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002704 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002708 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000270c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002710 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002714 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002718 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000271c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002720 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002724 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002728 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000272c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002730 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002734 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002738 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000273c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002740 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002744 .long L0_1_set_422 + 0x0f, 0xed, 0xff, 0xff, //0x00002748 .long L0_1_set_240 + 0xaf, 0xfd, 0xff, 0xff, //0x0000274c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002750 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002754 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002758 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000275c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002760 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002764 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002768 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000276c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002770 .long L0_1_set_422 + 0x33, 0xed, 0xff, 0xff, //0x00002774 .long L0_1_set_242 + 0xaf, 0xfd, 0xff, 0xff, //0x00002778 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000277c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002780 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002784 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002788 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000278c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x00002790 .long L0_1_set_422 + 0x64, 0xed, 0xff, 0xff, //0x00002794 .long L0_1_set_245 + 0xaf, 0xfd, 0xff, 0xff, //0x00002798 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x0000279c .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027a8 .long L0_1_set_422 + 0x8b, 0xed, 0xff, 0xff, //0x000027ac .long L0_1_set_251 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b4 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027b8 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027bc .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c0 .long L0_1_set_422 + 0xaf, 0xfd, 0xff, 0xff, //0x000027c4 .long L0_1_set_422 + 0xc8, 0xed, 0xff, 0xff, //0x000027c8 .long L0_1_set_255 + // // .set L0_2_set_264, LBB0_264-LJTI0_2 + // // .set L0_2_set_292, LBB0_292-LJTI0_2 + // // .set L0_2_set_259, LBB0_259-LJTI0_2 + // // .set L0_2_set_261, LBB0_261-LJTI0_2 + // // .set L0_2_set_266, LBB0_266-LJTI0_2 + //0x000027cc LJTI0_2 + 0x3d, 0xec, 0xff, 0xff, //0x000027cc .long L0_2_set_264 + 0x7b, 0xee, 0xff, 0xff, //0x000027d0 .long L0_2_set_292 + 0x3d, 0xec, 0xff, 0xff, //0x000027d4 .long L0_2_set_264 + 0xfc, 0xeb, 0xff, 0xff, //0x000027d8 .long L0_2_set_259 + 0x7b, 0xee, 0xff, 0xff, //0x000027dc .long L0_2_set_292 + 0x14, 0xec, 0xff, 0xff, //0x000027e0 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027e4 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027e8 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027ec .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f0 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f4 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027f8 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x000027fc .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002800 .long L0_2_set_261 + 0x14, 0xec, 0xff, 0xff, //0x00002804 .long L0_2_set_261 + 0x7b, 0xee, 0xff, 0xff, //0x00002808 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000280c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002810 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002814 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002818 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000281c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002820 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002824 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002828 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000282c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002830 .long L0_2_set_292 + 0x58, 0xec, 0xff, 0xff, //0x00002834 .long L0_2_set_266 + 0x7b, 0xee, 0xff, 0xff, //0x00002838 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000283c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002840 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002844 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002848 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000284c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002850 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002854 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002858 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000285c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002860 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002864 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002868 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000286c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002870 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002874 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002878 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000287c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002880 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002884 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002888 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000288c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002890 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002894 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x00002898 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x0000289c .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a0 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a4 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028a8 .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028ac .long L0_2_set_292 + 0x7b, 0xee, 0xff, 0xff, //0x000028b0 .long L0_2_set_292 + 0x58, 0xec, 0xff, 0xff, //0x000028b4 .long L0_2_set_266 + // // .set L0_3_set_94, LBB0_94-LJTI0_3 + // // .set L0_3_set_149, LBB0_149-LJTI0_3 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + // // .set L0_3_set_91, LBB0_91-LJTI0_3 + // // .set L0_3_set_96, LBB0_96-LJTI0_3 + //0x000028b8 LJTI0_3 + 0x10, 0xdf, 0xff, 0xff, //0x000028b8 .long L0_3_set_94 + 0x75, 0xe3, 0xff, 0xff, //0x000028bc .long L0_3_set_149 + 0x10, 0xdf, 0xff, 0xff, //0x000028c0 .long L0_3_set_94 + 0x46, 0xdf, 0xff, 0xff, //0x000028c4 .long L0_3_set_98 + 0x75, 0xe3, 0xff, 0xff, //0x000028c8 .long L0_3_set_149 + 0xe8, 0xde, 0xff, 0xff, //0x000028cc .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028d0 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028d4 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028d8 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028dc .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e0 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e4 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028e8 .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028ec .long L0_3_set_91 + 0xe8, 0xde, 0xff, 0xff, //0x000028f0 .long L0_3_set_91 + 0x75, 0xe3, 0xff, 0xff, //0x000028f4 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000028f8 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x000028fc .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002900 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002904 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002908 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000290c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002910 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002914 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002918 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000291c .long L0_3_set_149 + 0x2b, 0xdf, 0xff, 0xff, //0x00002920 .long L0_3_set_96 + 0x75, 0xe3, 0xff, 0xff, //0x00002924 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002928 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000292c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002930 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002934 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002938 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000293c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002940 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002944 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002948 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000294c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002950 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002954 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002958 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000295c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002960 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002964 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002968 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000296c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002970 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002974 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002978 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000297c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002980 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002984 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002988 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000298c .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002990 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002994 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x00002998 .long L0_3_set_149 + 0x75, 0xe3, 0xff, 0xff, //0x0000299c .long L0_3_set_149 + 0x2b, 0xdf, 0xff, 0xff, //0x000029a0 .long L0_3_set_96 + //0x000029a4 .p2align 2, 0x00 + //0x000029a4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000029a4 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8.go new file mode 100644 index 000000000..df95d2288 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8.go @@ -0,0 +1,39 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_validate_utf8 uintptr + +//go:nosplit +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return F_validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} + + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast.go new file mode 100644 index 000000000..364d40e36 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8_fast func(s unsafe.Pointer) (ret int) + +var S_validate_utf8_fast uintptr + +//go:nosplit +func validate_utf8_fast(s *string) (ret int) { + return F_validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_subr.go new file mode 100644 index 000000000..8ed55a0e0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_subr.go @@ -0,0 +1,41 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_utf8_fast = 0 +) + +const ( + _stack__validate_utf8_fast = 24 +) + +const ( + _size__validate_utf8_fast = 536 +) + +var ( + _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}, + } +) + +var _cfunc_validate_utf8_fast = []loader.CFunc{ + {"_validate_utf8_fast_entry", 0, _entry__validate_utf8_fast, 0, nil}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_text_amd64.go new file mode 100644 index 000000000..4e37b8f2d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_fast_text_amd64.go @@ -0,0 +1,156 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_validate_utf8_fast = []byte{ + // .p2align 4, 0x90 + // _validate_utf8_fast + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x53, //0x00000004 pushq %rbx + 0x50, //0x00000005 pushq %rax + 0x4c, 0x8b, 0x17, //0x00000006 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00000009 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000000d leaq $-3(%r10,%r11), %rsi + 0x4c, 0x89, 0xd0, //0x00000012 movq %r10, %rax + 0x49, 0x39, 0xf2, //0x00000015 cmpq %rsi, %r10 + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00000018 jae LBB0_14 + 0x4c, 0x89, 0xd0, //0x0000001e movq %r10, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00000021 jmp LBB0_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000026 .p2align 4, 0x90 + //0x00000030 LBB0_2 + 0x48, 0x01, 0xd0, //0x00000030 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00000033 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00000036 jae LBB0_14 + //0x0000003c LBB0_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000003c movl $1, %edx + 0x80, 0x38, 0x00, //0x00000041 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00000044 jns LBB0_2 + 0x8b, 0x38, //0x0000004a movl (%rax), %edi + 0x89, 0xf9, //0x0000004c movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000004e andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00000054 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000005a jne LBB0_7 + 0x89, 0xf9, //0x00000060 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x00000062 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x00000068 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000006e je LBB0_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000074 movl $3, %edx + 0x85, 0xc9, //0x00000079 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000007b jne LBB0_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000081 .p2align 4, 0x90 + //0x00000090 LBB0_7 + 0x89, 0xf9, //0x00000090 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x00000092 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00000098 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000009e jne LBB0_9 + 0x89, 0xf9, //0x000000a4 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000000a6 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x000000ab andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000000ae jne LBB0_2 + //0x000000b4 LBB0_9 + 0x89, 0xf9, //0x000000b4 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x000000b6 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x000000bc cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x000000c2 jne LBB0_13 + 0x89, 0xf9, //0x000000c8 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x000000ca andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000000d0 je LBB0_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000000d6 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x000000db testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x000000df je LBB0_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x000000e5 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x000000eb je LBB0_2 + //0x000000f1 LBB0_13 + 0x48, 0xf7, 0xd0, //0x000000f1 notq %rax + 0x4c, 0x01, 0xd0, //0x000000f4 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x000000f7 addq $8, %rsp + 0x5b, //0x000000fb popq %rbx + 0x5d, //0x000000fc popq %rbp + 0xc3, //0x000000fd retq + //0x000000fe LBB0_14 + 0x4d, 0x01, 0xd3, //0x000000fe addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00000101 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00000104 jae LBB0_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x0000010a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x0000010e leaq $-14(%rbp), %r9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00000112 jmp LBB0_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000117 .p2align 4, 0x90 + //0x00000120 LBB0_16 + 0x48, 0xff, 0xc0, //0x00000120 incq %rax + 0x4c, 0x39, 0xd8, //0x00000123 cmpq %r11, %rax + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00000126 jae LBB0_30 + //0x0000012c LBB0_17 + 0x80, 0x38, 0x00, //0x0000012c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000012f jns LBB0_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00000135 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x00000139 movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x0000013d movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x00000140 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000143 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00000147 jb LBB0_21 + 0x0f, 0xb6, 0x30, //0x0000014d movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x00000150 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x00000154 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x00000158 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x0000015c addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x00000160 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x00000163 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00000166 je LBB0_22 + //0x0000016c LBB0_20 + 0x0f, 0xb6, 0x09, //0x0000016c movzbl (%rcx), %ecx + 0x88, 0x0b, //0x0000016f movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x00000171 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x00000175 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00000179 jmp LBB0_23 + //0x0000017e LBB0_21 + 0x31, 0xf6, //0x0000017e xorl %esi, %esi + 0x31, 0xff, //0x00000180 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x00000182 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x00000185 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x00000188 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000018b jne LBB0_20 + //0x00000191 LBB0_22 + 0x31, 0xc9, //0x00000191 xorl %ecx, %ecx + //0x00000193 LBB0_23 + 0x0f, 0xb6, 0xc9, //0x00000193 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x00000196 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x00000199 movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x0000019d shll $8, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x000001a0 movzbl %sil, %edx + 0x09, 0xfa, //0x000001a4 orl %edi, %edx + 0x09, 0xd1, //0x000001a6 orl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000001a8 andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000001ae cmpl $8421600, %ecx + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000001b4 jne LBB0_26 + 0x89, 0xd7, //0x000001ba movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000001bc andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000001c2 cmpl $8205, %edi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000001c8 je LBB0_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000001ce movl $3, %ecx + 0x85, 0xff, //0x000001d3 testl %edi, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000001d5 jne LBB0_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001db .p2align 4, 0x90 + //0x000001e0 LBB0_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x000001e0 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000001e4 je LBB0_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x000001ea andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000001f0 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x000001f5 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000001fb jne LBB0_13 + //0x00000201 LBB0_28 + 0x48, 0x01, 0xc8, //0x00000201 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00000204 cmpq %r11, %rax + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00000207 jb LBB0_17 + //0x0000020d LBB0_30 + 0x31, 0xc0, //0x0000020d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x0000020f addq $8, %rsp + 0x5b, //0x00000213 popq %rbx + 0x5d, //0x00000214 popq %rbp + 0xc3, //0x00000215 retq + 0x00, 0x00, //0x00000216 .p2align 2, 0x00 + //0x00000218 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000218 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_subr.go new file mode 100644 index 000000000..0010ffaef --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_subr.go @@ -0,0 +1,44 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_utf8 = 0 +) + +const ( + _stack__validate_utf8 = 48 +) + +const ( + _size__validate_utf8 = 668 +) + +var ( + _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}, + } +) + +var _cfunc_validate_utf8 = []loader.CFunc{ + {"_validate_utf8_entry", 0, _entry__validate_utf8, 0, nil}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_text_amd64.go new file mode 100644 index 000000000..3303b67e6 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/validate_utf8_text_amd64.go @@ -0,0 +1,191 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_validate_utf8 = []byte{ + // .p2align 4, 0x90 + // _validate_utf8 + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x41, 0x57, //0x00000004 pushq %r15 + 0x41, 0x56, //0x00000006 pushq %r14 + 0x41, 0x54, //0x00000008 pushq %r12 + 0x53, //0x0000000a pushq %rbx + 0x50, //0x0000000b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000000c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000000f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00000013 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00000016 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x00000019 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000001e jmp LBB0_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000023 .p2align 4, 0x90 + //0x00000030 LBB0_19 + 0x48, 0x01, 0xd9, //0x00000030 addq %rbx, %rcx + //0x00000033 LBB0_1 + 0x4c, 0x39, 0xc1, //0x00000033 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00000036 jae LBB0_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000003c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00000041 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00000044 jns LBB0_19 + 0x8b, 0x01, //0x0000004a movl (%rcx), %eax + 0x89, 0xc7, //0x0000004c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000004e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00000054 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000005a jne LBB0_10 + 0x89, 0xc7, //0x00000060 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00000062 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00000068 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000006e je LBB0_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000074 movl $3, %ebx + 0x85, 0xff, //0x00000079 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000007b jne LBB0_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000081 .p2align 4, 0x90 + //0x00000090 LBB0_10 + 0x89, 0xc7, //0x00000090 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00000092 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00000098 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000009e jne LBB0_12 + 0x89, 0xc7, //0x000000a4 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000000a6 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x000000ab andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000000ae jne LBB0_19 + //0x000000b4 LBB0_12 + 0x89, 0xc7, //0x000000b4 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000000b6 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000000bc cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000000c2 jne LBB0_16 + 0x89, 0xc7, //0x000000c8 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000000ca andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000000d0 je LBB0_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000000d6 movl $4, %ebx + 0xa8, 0x04, //0x000000db testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000000dd je LBB0_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000000e3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000000e8 je LBB0_19 + //0x000000ee LBB0_16 + 0x48, 0x89, 0xcf, //0x000000ee movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000000f1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000000f4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000000f7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000000fe jae LBB0_17 + 0x48, 0x63, 0xc7, //0x00000104 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00000107 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x0000010b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000010e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000113 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00000118 jmp LBB0_19 + //0x0000011d LBB0_2 + 0x4d, 0x01, 0xd3, //0x0000011d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00000120 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x00000123 jae LBB0_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00000129 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x0000012d leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00000131 jmp LBB0_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000136 .p2align 4, 0x90 + //0x00000140 LBB0_5 + 0x48, 0xff, 0xc1, //0x00000140 incq %rcx + 0x4c, 0x39, 0xd9, //0x00000143 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00000146 jae LBB0_36 + //0x0000014c LBB0_4 + 0x80, 0x39, 0x00, //0x0000014c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000014f jns LBB0_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00000155 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00000159 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000015d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00000160 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000163 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00000167 jb LBB0_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000016d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00000171 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00000176 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000017a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000017e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00000182 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00000185 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000188 je LBB0_24 + //0x0000018e LBB0_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000018e movzbl (%r15), %eax + 0x88, 0x07, //0x00000192 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00000194 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00000199 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000019d jmp LBB0_26 + //0x000001a2 LBB0_21 + 0x45, 0x31, 0xe4, //0x000001a2 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x000001a5 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x000001a8 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x000001ab movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x000001ae testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x000001b1 jne LBB0_25 + //0x000001b7 LBB0_24 + 0x31, 0xff, //0x000001b7 xorl %edi, %edi + //0x000001b9 LBB0_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x000001b9 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x000001bd shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x000001c0 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x000001c4 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x000001c7 movzbl %r12b, %edi + 0x09, 0xdf, //0x000001cb orl %ebx, %edi + 0x09, 0xf8, //0x000001cd orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x000001cf andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000001d4 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000001d9 jne LBB0_29 + 0x89, 0xf8, //0x000001df movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000001e1 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000001e6 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000001eb je LBB0_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000001f1 movl $3, %ebx + 0x85, 0xc0, //0x000001f6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000001f8 jne LBB0_34 + 0x90, 0x90, //0x000001fe .p2align 4, 0x90 + //0x00000200 LBB0_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00000200 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000204 je LBB0_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x0000020a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000210 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00000215 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x0000021b jne LBB0_31 + //0x00000221 LBB0_34 + 0x48, 0x01, 0xd9, //0x00000221 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00000224 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00000227 jb LBB0_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x0000022d jmp LBB0_36 + //0x00000232 LBB0_31 + 0x48, 0x89, 0xc8, //0x00000232 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000235 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00000238 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000023b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00000242 jae LBB0_32 + 0x48, 0x98, //0x00000248 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000024a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000024e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00000251 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000256 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000025b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000025e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00000261 jb LBB0_4 + //0x00000267 LBB0_36 + 0x4c, 0x29, 0xd1, //0x00000267 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000026a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000026d xorl %eax, %eax + //0x0000026f LBB0_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000026f addq $8, %rsp + 0x5b, //0x00000273 popq %rbx + 0x41, 0x5c, //0x00000274 popq %r12 + 0x41, 0x5e, //0x00000276 popq %r14 + 0x41, 0x5f, //0x00000278 popq %r15 + 0x5d, //0x0000027a popq %rbp + 0xc3, //0x0000027b retq + //0x0000027c LBB0_32 + 0x48, 0x89, 0x06, //0x0000027c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000027f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00000286 jmp LBB0_37 + //0x0000028b LBB0_17 + 0x48, 0x89, 0x3e, //0x0000028b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000028e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000295 jmp LBB0_37 + 0x00, 0x00, //0x0000029a .p2align 2, 0x00 + //0x0000029c _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000029c .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/value.go b/vendor/github.com/bytedance/sonic/internal/native/avx/value.go new file mode 100644 index 000000000..3effc2071 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/value.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + +var S_value uintptr + +//go:nosplit +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return F_value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/value_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/value_subr.go new file mode 100644 index 000000000..10cba1c75 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/value_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__value = 192 +) + +const ( + _stack__value = 112 +) + +const ( + _size__value = 12816 +) + +var ( + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {556, 112}, + {560, 48}, + {561, 40}, + {563, 32}, + {565, 24}, + {567, 16}, + {569, 8}, + {573, 0}, + {12816, 112}, + } +) + +var _cfunc_value = []loader.CFunc{ + {"_value_entry", 0, _entry__value, 0, nil}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/value_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/value_text_amd64.go new file mode 100644 index 000000000..f2a7e1f7e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/value_text_amd64.go @@ -0,0 +1,5639 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_value = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 LCPI0_3 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000030 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000040 LCPI0_4 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000040 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000050 LCPI0_5 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_6 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000070 LCPI0_7 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000080 LCPI0_8 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000080 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000090 LCPI0_9 + 0x00, 0x00, 0x30, 0x43, //0x00000090 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00000094 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00000098 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000009c .long 0 + //0x000000a0 LCPI0_10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x000000a0 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x000000a8 .quad 4985484787499139072 + //0x000000b0 .p2align 3, 0x00 + //0x000000b0 LCPI0_11 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000000b0 .quad 4831355200913801216 + //0x000000b8 LCPI0_12 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x000000b8 .quad -4392016835940974592 + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 _value + 0x55, //0x000000c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000c1 movq %rsp, %rbp + 0x41, 0x57, //0x000000c4 pushq %r15 + 0x41, 0x56, //0x000000c6 pushq %r14 + 0x41, 0x55, //0x000000c8 pushq %r13 + 0x41, 0x54, //0x000000ca pushq %r12 + 0x53, //0x000000cc pushq %rbx + 0x48, 0x83, 0xec, 0x40, //0x000000cd subq $64, %rsp + 0x49, 0x89, 0xcd, //0x000000d1 movq %rcx, %r13 + 0x49, 0x89, 0xd3, //0x000000d4 movq %rdx, %r11 + 0x48, 0x89, 0xf8, //0x000000d7 movq %rdi, %rax + 0x48, 0x89, 0xd1, //0x000000da movq %rdx, %rcx + 0x48, 0x29, 0xf1, //0x000000dd subq %rsi, %rcx + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x000000e0 jae LBB0_5 + 0x42, 0x8a, 0x3c, 0x18, //0x000000e6 movb (%rax,%r11), %dil + 0x40, 0x80, 0xff, 0x0d, //0x000000ea cmpb $13, %dil + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000000ee je LBB0_5 + 0x40, 0x80, 0xff, 0x20, //0x000000f4 cmpb $32, %dil + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000000f8 je LBB0_5 + 0x8d, 0x57, 0xf7, //0x000000fe leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x00000101 cmpb $1, %dl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00000104 jbe LBB0_5 + 0x4d, 0x89, 0xdf, //0x0000010a movq %r11, %r15 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x0000010d jmp LBB0_28 + //0x00000112 LBB0_5 + 0x4d, 0x8d, 0x7b, 0x01, //0x00000112 leaq $1(%r11), %r15 + 0x49, 0x39, 0xf7, //0x00000116 cmpq %rsi, %r15 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00000119 jae LBB0_9 + 0x42, 0x8a, 0x3c, 0x38, //0x0000011f movb (%rax,%r15), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00000123 cmpb $13, %dil + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000127 je LBB0_9 + 0x40, 0x80, 0xff, 0x20, //0x0000012d cmpb $32, %dil + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000131 je LBB0_9 + 0x8d, 0x57, 0xf7, //0x00000137 leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x0000013a cmpb $1, %dl + 0x0f, 0x87, 0xfb, 0x00, 0x00, 0x00, //0x0000013d ja LBB0_28 + //0x00000143 LBB0_9 + 0x4d, 0x8d, 0x7b, 0x02, //0x00000143 leaq $2(%r11), %r15 + 0x49, 0x39, 0xf7, //0x00000147 cmpq %rsi, %r15 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x0000014a jae LBB0_13 + 0x42, 0x8a, 0x3c, 0x38, //0x00000150 movb (%rax,%r15), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00000154 cmpb $13, %dil + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000158 je LBB0_13 + 0x40, 0x80, 0xff, 0x20, //0x0000015e cmpb $32, %dil + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000162 je LBB0_13 + 0x8d, 0x57, 0xf7, //0x00000168 leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x0000016b cmpb $1, %dl + 0x0f, 0x87, 0xca, 0x00, 0x00, 0x00, //0x0000016e ja LBB0_28 + //0x00000174 LBB0_13 + 0x4d, 0x8d, 0x7b, 0x03, //0x00000174 leaq $3(%r11), %r15 + 0x49, 0x39, 0xf7, //0x00000178 cmpq %rsi, %r15 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x0000017b jae LBB0_17 + 0x42, 0x8a, 0x3c, 0x38, //0x00000181 movb (%rax,%r15), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00000185 cmpb $13, %dil + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000189 je LBB0_17 + 0x40, 0x80, 0xff, 0x20, //0x0000018f cmpb $32, %dil + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000193 je LBB0_17 + 0x8d, 0x57, 0xf7, //0x00000199 leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x0000019c cmpb $1, %dl + 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x0000019f ja LBB0_28 + //0x000001a5 LBB0_17 + 0x49, 0x8d, 0x53, 0x04, //0x000001a5 leaq $4(%r11), %rdx + 0x48, 0x39, 0xf2, //0x000001a9 cmpq %rsi, %rdx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x000001ac jae LBB0_23 + 0x48, 0x39, 0xd6, //0x000001b2 cmpq %rdx, %rsi + 0x0f, 0x84, 0x56, 0x00, 0x00, 0x00, //0x000001b5 je LBB0_24 + 0x48, 0x8d, 0x14, 0x30, //0x000001bb leaq (%rax,%rsi), %rdx + 0x48, 0x83, 0xc1, 0x04, //0x000001bf addq $4, %rcx + 0x4d, 0x8d, 0x7c, 0x03, 0x05, //0x000001c3 leaq $5(%r11,%rax), %r15 + 0x48, 0xbf, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000001c8 movabsq $4294977024, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001d2 .p2align 4, 0x90 + //0x000001e0 LBB0_20 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x000001e0 movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x000001e5 cmpl $32, %ebx + 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x000001e8 ja LBB0_26 + 0x48, 0x0f, 0xa3, 0xdf, //0x000001ee btq %rbx, %rdi + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x000001f2 jae LBB0_26 + 0x49, 0xff, 0xc7, //0x000001f8 incq %r15 + 0x48, 0xff, 0xc1, //0x000001fb incq %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000001fe jne LBB0_20 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000204 jmp LBB0_25 + //0x00000209 LBB0_23 + 0x49, 0x89, 0xd3, //0x00000209 movq %rdx, %r11 + 0xe9, 0xd0, 0x00, 0x00, 0x00, //0x0000020c jmp LBB0_37 + //0x00000211 LBB0_24 + 0x48, 0x01, 0xc2, //0x00000211 addq %rax, %rdx + //0x00000214 LBB0_25 + 0x48, 0x29, 0xc2, //0x00000214 subq %rax, %rdx + 0x49, 0x89, 0xd7, //0x00000217 movq %rdx, %r15 + 0x49, 0x39, 0xf7, //0x0000021a cmpq %rsi, %r15 + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000021d jb LBB0_27 + 0xe9, 0xb9, 0x00, 0x00, 0x00, //0x00000223 jmp LBB0_37 + //0x00000228 LBB0_26 + 0x48, 0x89, 0xc1, //0x00000228 movq %rax, %rcx + 0x48, 0xf7, 0xd1, //0x0000022b notq %rcx + 0x49, 0x01, 0xcf, //0x0000022e addq %rcx, %r15 + 0x49, 0x39, 0xf7, //0x00000231 cmpq %rsi, %r15 + 0x0f, 0x83, 0xa7, 0x00, 0x00, 0x00, //0x00000234 jae LBB0_37 + //0x0000023a LBB0_27 + 0x42, 0x8a, 0x3c, 0x38, //0x0000023a movb (%rax,%r15), %dil + //0x0000023e LBB0_28 + 0x40, 0x0f, 0xbe, 0xcf, //0x0000023e movsbl %dil, %ecx + 0x83, 0xf9, 0x7d, //0x00000242 cmpl $125, %ecx + 0x0f, 0x87, 0x98, 0x04, 0x00, 0x00, //0x00000245 ja LBB0_99 + 0x4d, 0x8d, 0x5f, 0x01, //0x0000024b leaq $1(%r15), %r11 + 0x4a, 0x8d, 0x1c, 0x38, //0x0000024f leaq (%rax,%r15), %rbx + 0x48, 0x8d, 0x15, 0x76, 0x30, 0x00, 0x00, //0x00000253 leaq $12406(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x0000025a movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x0000025e addq %rdx, %rcx + 0xff, 0xe1, //0x00000261 jmpq *%rcx + //0x00000263 LBB0_30 + 0x41, 0xf6, 0xc0, 0x02, //0x00000263 testb $2, %r8b + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00000267 jne LBB0_39 + 0x4d, 0x8b, 0x65, 0x20, //0x0000026d movq $32(%r13), %r12 + 0x49, 0x8b, 0x4d, 0x28, //0x00000271 movq $40(%r13), %rcx + 0x48, 0x89, 0x4d, 0xa8, //0x00000275 movq %rcx, $-88(%rbp) + 0x49, 0xc7, 0x45, 0x00, 0x09, 0x00, 0x00, 0x00, //0x00000279 movq $9, (%r13) + 0xc5, 0xf9, 0x57, 0xc0, //0x00000281 vxorpd %xmm0, %xmm0, %xmm0 + 0xc4, 0xc1, 0x79, 0x11, 0x45, 0x08, //0x00000285 vmovupd %xmm0, $8(%r13) + 0x4d, 0x89, 0x7d, 0x18, //0x0000028b movq %r15, $24(%r13) + 0x49, 0x39, 0xf7, //0x0000028f cmpq %rsi, %r15 + 0x0f, 0x83, 0x2e, 0x0c, 0x00, 0x00, //0x00000292 jae LBB0_198 + 0x49, 0x89, 0xd8, //0x00000298 movq %rbx, %r8 + 0x8a, 0x1b, //0x0000029b movb (%rbx), %bl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000029d movl $1, %r9d + 0x4c, 0x89, 0xff, //0x000002a3 movq %r15, %rdi + 0x80, 0xfb, 0x2d, //0x000002a6 cmpb $45, %bl + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000002a9 jne LBB0_35 + 0x49, 0x39, 0xf3, //0x000002af cmpq %rsi, %r11 + 0x0f, 0x83, 0x0e, 0x0c, 0x00, 0x00, //0x000002b2 jae LBB0_198 + 0x42, 0x8a, 0x1c, 0x18, //0x000002b8 movb (%rax,%r11), %bl + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000002bc movl $-1, %r9d + 0x4c, 0x89, 0xdf, //0x000002c2 movq %r11, %rdi + //0x000002c5 LBB0_35 + 0x8d, 0x4b, 0xd0, //0x000002c5 leal $-48(%rbx), %ecx + 0x80, 0xf9, 0x0a, //0x000002c8 cmpb $10, %cl + 0x0f, 0x82, 0x41, 0x03, 0x00, 0x00, //0x000002cb jb LBB0_84 + 0x49, 0xc7, 0x45, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x000002d1 movq $-2, (%r13) + 0x49, 0x89, 0xfb, //0x000002d9 movq %rdi, %r11 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x000002dc jmp LBB0_38 + //0x000002e1 LBB0_37 + 0x49, 0xc7, 0x45, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002e1 movq $1, (%r13) + //0x000002e9 LBB0_38 + 0x4c, 0x89, 0xd8, //0x000002e9 movq %r11, %rax + 0x48, 0x83, 0xc4, 0x40, //0x000002ec addq $64, %rsp + 0x5b, //0x000002f0 popq %rbx + 0x41, 0x5c, //0x000002f1 popq %r12 + 0x41, 0x5d, //0x000002f3 popq %r13 + 0x41, 0x5e, //0x000002f5 popq %r14 + 0x41, 0x5f, //0x000002f7 popq %r15 + 0x5d, //0x000002f9 popq %rbp + 0xc5, 0xf8, 0x77, //0x000002fa vzeroupper + 0xc3, //0x000002fd retq + //0x000002fe LBB0_39 + 0x48, 0x89, 0x45, 0xc0, //0x000002fe movq %rax, $-64(%rbp) + 0x4c, 0x29, 0xfe, //0x00000302 subq %r15, %rsi + 0x31, 0xc0, //0x00000305 xorl %eax, %eax + 0x40, 0x80, 0xff, 0x2d, //0x00000307 cmpb $45, %dil + 0x0f, 0x94, 0xc0, //0x0000030b sete %al + 0x48, 0x01, 0xc3, //0x0000030e addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x00000311 subq %rax, %rsi + 0x0f, 0x84, 0xa4, 0x1d, 0x00, 0x00, //0x00000314 je LBB0_450 + 0x4c, 0x89, 0x5d, 0xb8, //0x0000031a movq %r11, $-72(%rbp) + 0x8a, 0x03, //0x0000031e movb (%rbx), %al + 0x8d, 0x48, 0xd0, //0x00000320 leal $-48(%rax), %ecx + 0x80, 0xf9, 0x09, //0x00000323 cmpb $9, %cl + 0x0f, 0x87, 0xaa, 0x0c, 0x00, 0x00, //0x00000326 ja LBB0_220 + 0x3c, 0x30, //0x0000032c cmpb $48, %al + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x0000032e jne LBB0_45 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000334 movl $1, %r11d + 0x48, 0x83, 0xfe, 0x01, //0x0000033a cmpq $1, %rsi + 0x0f, 0x84, 0x76, 0x06, 0x00, 0x00, //0x0000033e je LBB0_129 + 0x8a, 0x43, 0x01, //0x00000344 movb $1(%rbx), %al + 0x04, 0xd2, //0x00000347 addb $-46, %al + 0x3c, 0x37, //0x00000349 cmpb $55, %al + 0x0f, 0x87, 0x69, 0x06, 0x00, 0x00, //0x0000034b ja LBB0_129 + 0x0f, 0xb6, 0xc0, //0x00000351 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000354 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000035e btq %rax, %rcx + 0x0f, 0x83, 0x52, 0x06, 0x00, 0x00, //0x00000362 jae LBB0_129 + //0x00000368 LBB0_45 + 0x4c, 0x89, 0x6d, 0xd0, //0x00000368 movq %r13, $-48(%rbp) + 0x48, 0x83, 0xfe, 0x10, //0x0000036c cmpq $16, %rsi + 0x0f, 0x82, 0x54, 0x1d, 0x00, 0x00, //0x00000370 jb LBB0_452 + 0xba, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000376 movl $2863311530, %edx + 0x48, 0x8d, 0x46, 0xf0, //0x0000037b leaq $-16(%rsi), %rax + 0x48, 0x89, 0xc1, //0x0000037f movq %rax, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00000382 andq $-16, %rcx + 0x4c, 0x8d, 0x54, 0x19, 0x10, //0x00000386 leaq $16(%rcx,%rbx), %r10 + 0x83, 0xe0, 0x0f, //0x0000038b andl $15, %eax + 0x48, 0xc7, 0x45, 0xa8, 0xff, 0xff, 0xff, 0xff, //0x0000038e movq $-1, $-88(%rbp) + 0xc5, 0x7a, 0x6f, 0x05, 0x92, 0xfc, 0xff, 0xff, //0x00000396 vmovdqu $-878(%rip), %xmm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x9a, 0xfc, 0xff, 0xff, //0x0000039e vmovdqu $-870(%rip), %xmm9 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0xa2, 0xfc, 0xff, 0xff, //0x000003a6 vmovdqu $-862(%rip), %xmm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0xaa, 0xfc, 0xff, 0xff, //0x000003ae vmovdqu $-854(%rip), %xmm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0x62, 0xfc, 0xff, 0xff, //0x000003b6 vmovdqu $-926(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x2d, 0xaa, 0xfc, 0xff, 0xff, //0x000003be vmovdqu $-854(%rip), %xmm5 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x35, 0xb2, 0xfc, 0xff, 0xff, //0x000003c6 vmovdqu $-846(%rip), %xmm6 /* LCPI0_8+0(%rip) */ + 0x48, 0x81, 0xc2, 0x55, 0x55, 0x55, 0x55, //0x000003ce addq $1431655765, %rdx + 0x48, 0x89, 0x55, 0xc8, //0x000003d5 movq %rdx, $-56(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000003d9 movq $-1, %r12 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000003e0 movq $-1, %r14 + 0x48, 0x89, 0xdf, //0x000003e7 movq %rbx, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003ea .p2align 4, 0x90 + //0x000003f0 LBB0_47 + 0x49, 0x89, 0xd8, //0x000003f0 movq %rbx, %r8 + 0xc5, 0xfa, 0x6f, 0x3f, //0x000003f3 vmovdqu (%rdi), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x000003f7 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x000003fc vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00000400 vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00000404 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00000408 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000040c vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x00000410 vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00000414 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00000418 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000041c vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x00000420 vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00000424 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000428 vpmovmskb %xmm7, %ebx + 0xc5, 0x79, 0xd7, 0xca, //0x0000042c vpmovmskb %xmm2, %r9d + 0xc5, 0x79, 0xd7, 0xe9, //0x00000430 vpmovmskb %xmm1, %r13d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000434 vpmovmskb %xmm0, %ecx + 0x48, 0x33, 0x4d, 0xc8, //0x00000438 xorq $-56(%rbp), %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000043c bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00000440 cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00000443 je LBB0_49 + 0xba, 0xff, 0xff, 0xff, 0xff, //0x00000449 movl $-1, %edx + 0xd3, 0xe2, //0x0000044e shll %cl, %edx + 0xf7, 0xd2, //0x00000450 notl %edx + 0x21, 0xd3, //0x00000452 andl %edx, %ebx + 0x41, 0x21, 0xd1, //0x00000454 andl %edx, %r9d + 0x44, 0x21, 0xea, //0x00000457 andl %r13d, %edx + 0x41, 0x89, 0xd5, //0x0000045a movl %edx, %r13d + //0x0000045d LBB0_49 + 0x8d, 0x53, 0xff, //0x0000045d leal $-1(%rbx), %edx + 0x21, 0xda, //0x00000460 andl %ebx, %edx + 0x0f, 0x85, 0x39, 0x09, 0x00, 0x00, //0x00000462 jne LBB0_177 + 0x41, 0x8d, 0x51, 0xff, //0x00000468 leal $-1(%r9), %edx + 0x44, 0x21, 0xca, //0x0000046c andl %r9d, %edx + 0x0f, 0x85, 0x2c, 0x09, 0x00, 0x00, //0x0000046f jne LBB0_177 + 0x41, 0x8d, 0x55, 0xff, //0x00000475 leal $-1(%r13), %edx + 0x44, 0x21, 0xea, //0x00000479 andl %r13d, %edx + 0x0f, 0x85, 0x1f, 0x09, 0x00, 0x00, //0x0000047c jne LBB0_177 + 0x85, 0xdb, //0x00000482 testl %ebx, %ebx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000484 je LBB0_55 + 0x48, 0x89, 0xfa, //0x0000048a movq %rdi, %rdx + 0x4c, 0x29, 0xc2, //0x0000048d subq %r8, %rdx + 0x44, 0x0f, 0xbc, 0xdb, //0x00000490 bsfl %ebx, %r11d + 0x49, 0x01, 0xd3, //0x00000494 addq %rdx, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00000497 cmpq $-1, %r14 + 0x0f, 0x85, 0xbf, 0x0b, 0x00, 0x00, //0x0000049b jne LBB0_229 + 0x4d, 0x89, 0xde, //0x000004a1 movq %r11, %r14 + //0x000004a4 LBB0_55 + 0x4c, 0x89, 0xc3, //0x000004a4 movq %r8, %rbx + 0x45, 0x85, 0xc9, //0x000004a7 testl %r9d, %r9d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000004aa je LBB0_58 + 0x48, 0x89, 0xfa, //0x000004b0 movq %rdi, %rdx + 0x48, 0x29, 0xda, //0x000004b3 subq %rbx, %rdx + 0x45, 0x0f, 0xbc, 0xd9, //0x000004b6 bsfl %r9d, %r11d + 0x49, 0x01, 0xd3, //0x000004ba addq %rdx, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x000004bd cmpq $-1, %r12 + 0x0f, 0x85, 0xe7, 0x08, 0x00, 0x00, //0x000004c1 jne LBB0_178 + 0x4d, 0x89, 0xdc, //0x000004c7 movq %r11, %r12 + //0x000004ca LBB0_58 + 0x45, 0x85, 0xed, //0x000004ca testl %r13d, %r13d + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000004cd je LBB0_61 + 0x48, 0x89, 0xfa, //0x000004d3 movq %rdi, %rdx + 0x48, 0x29, 0xda, //0x000004d6 subq %rbx, %rdx + 0x45, 0x0f, 0xbc, 0xdd, //0x000004d9 bsfl %r13d, %r11d + 0x49, 0x01, 0xd3, //0x000004dd addq %rdx, %r11 + 0x48, 0x83, 0x7d, 0xa8, 0xff, //0x000004e0 cmpq $-1, $-88(%rbp) + 0x0f, 0x85, 0xc3, 0x08, 0x00, 0x00, //0x000004e5 jne LBB0_178 + 0x4c, 0x89, 0x5d, 0xa8, //0x000004eb movq %r11, $-88(%rbp) + //0x000004ef LBB0_61 + 0x83, 0xf9, 0x10, //0x000004ef cmpl $16, %ecx + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x000004f2 jne LBB0_74 + 0x48, 0x83, 0xc7, 0x10, //0x000004f8 addq $16, %rdi + 0x48, 0x83, 0xc6, 0xf0, //0x000004fc addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00000500 cmpq $15, %rsi + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x00000504 ja LBB0_47 + 0x48, 0x85, 0xc0, //0x0000050a testq %rax, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000050d movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, //0x00000511 je LBB0_75 + //0x00000517 LBB0_64 + 0x49, 0x8d, 0x0c, 0x02, //0x00000517 leaq (%r10,%rax), %rcx + 0x48, 0x8d, 0x35, 0xa6, 0x2f, 0x00, 0x00, //0x0000051b leaq $12198(%rip), %rsi /* LJTI0_1+0(%rip) */ + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00000522 jmp LBB0_68 + //0x00000527 LBB0_65 + 0x49, 0x89, 0xfb, //0x00000527 movq %rdi, %r11 + 0x49, 0x29, 0xdb, //0x0000052a subq %rbx, %r11 + 0x48, 0x83, 0x7d, 0xa8, 0xff, //0x0000052d cmpq $-1, $-88(%rbp) + 0x0f, 0x85, 0x37, 0x0b, 0x00, 0x00, //0x00000532 jne LBB0_453 + 0x49, 0xff, 0xcb, //0x00000538 decq %r11 + 0x4c, 0x89, 0x5d, 0xa8, //0x0000053b movq %r11, $-88(%rbp) + 0x90, //0x0000053f .p2align 4, 0x90 + //0x00000540 LBB0_67 + 0x49, 0x89, 0xfa, //0x00000540 movq %rdi, %r10 + 0x48, 0xff, 0xc8, //0x00000543 decq %rax + 0x0f, 0x84, 0x71, 0x0a, 0x00, 0x00, //0x00000546 je LBB0_218 + //0x0000054c LBB0_68 + 0x41, 0x0f, 0xbe, 0x12, //0x0000054c movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x00000550 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00000553 cmpl $58, %edx + 0x0f, 0x87, 0x4d, 0x00, 0x00, 0x00, //0x00000556 ja LBB0_75 + 0x49, 0x8d, 0x7a, 0x01, //0x0000055c leaq $1(%r10), %rdi + 0x48, 0x63, 0x14, 0x96, //0x00000560 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00000564 addq %rsi, %rdx + 0xff, 0xe2, //0x00000567 jmpq *%rdx + //0x00000569 LBB0_70 + 0x49, 0x89, 0xfb, //0x00000569 movq %rdi, %r11 + 0x49, 0x29, 0xdb, //0x0000056c subq %rbx, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x0000056f cmpq $-1, %r12 + 0x0f, 0x85, 0xf6, 0x0a, 0x00, 0x00, //0x00000573 jne LBB0_453 + 0x49, 0xff, 0xcb, //0x00000579 decq %r11 + 0x4d, 0x89, 0xdc, //0x0000057c movq %r11, %r12 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000057f jmp LBB0_67 + //0x00000584 LBB0_72 + 0x49, 0x89, 0xfb, //0x00000584 movq %rdi, %r11 + 0x49, 0x29, 0xdb, //0x00000587 subq %rbx, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000058a cmpq $-1, %r14 + 0x0f, 0x85, 0xdb, 0x0a, 0x00, 0x00, //0x0000058e jne LBB0_453 + 0x49, 0xff, 0xcb, //0x00000594 decq %r11 + 0x4d, 0x89, 0xde, //0x00000597 movq %r11, %r14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000059a jmp LBB0_67 + //0x0000059f LBB0_74 + 0x48, 0x01, 0xcf, //0x0000059f addq %rcx, %rdi + 0x49, 0x89, 0xfa, //0x000005a2 movq %rdi, %r10 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000005a5 movq $-48(%rbp), %r13 + //0x000005a9 LBB0_75 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000005a9 movq $-1, %r11 + 0x4d, 0x85, 0xe4, //0x000005b0 testq %r12, %r12 + 0x0f, 0x84, 0x17, 0x0a, 0x00, 0x00, //0x000005b3 je LBB0_219 + //0x000005b9 LBB0_76 + 0x48, 0x8b, 0x4d, 0xa8, //0x000005b9 movq $-88(%rbp), %rcx + 0x48, 0x85, 0xc9, //0x000005bd testq %rcx, %rcx + 0x0f, 0x84, 0x0a, 0x0a, 0x00, 0x00, //0x000005c0 je LBB0_219 + 0x4d, 0x85, 0xf6, //0x000005c6 testq %r14, %r14 + 0x0f, 0x84, 0x01, 0x0a, 0x00, 0x00, //0x000005c9 je LBB0_219 + 0x49, 0x29, 0xda, //0x000005cf subq %rbx, %r10 + 0x49, 0x8d, 0x42, 0xff, //0x000005d2 leaq $-1(%r10), %rax + 0x49, 0x39, 0xc4, //0x000005d6 cmpq %rax, %r12 + 0x0f, 0x84, 0xcc, 0x03, 0x00, 0x00, //0x000005d9 je LBB0_127 + 0x49, 0x39, 0xc6, //0x000005df cmpq %rax, %r14 + 0x0f, 0x84, 0xc3, 0x03, 0x00, 0x00, //0x000005e2 je LBB0_127 + 0x48, 0x39, 0xc1, //0x000005e8 cmpq %rax, %rcx + 0x0f, 0x84, 0xba, 0x03, 0x00, 0x00, //0x000005eb je LBB0_127 + 0x48, 0x85, 0xc9, //0x000005f1 testq %rcx, %rcx + 0x0f, 0x8e, 0xf8, 0x05, 0x00, 0x00, //0x000005f4 jle LBB0_145 + 0x48, 0x8d, 0x41, 0xff, //0x000005fa leaq $-1(%rcx), %rax + 0x49, 0x39, 0xc4, //0x000005fe cmpq %rax, %r12 + 0x0f, 0x84, 0xeb, 0x05, 0x00, 0x00, //0x00000601 je LBB0_145 + 0x48, 0xf7, 0xd1, //0x00000607 notq %rcx + 0x49, 0x89, 0xcb, //0x0000060a movq %rcx, %r11 + 0xe9, 0x9f, 0x03, 0x00, 0x00, //0x0000060d jmp LBB0_128 + //0x00000612 LBB0_84 + 0x80, 0xfb, 0x30, //0x00000612 cmpb $48, %bl + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00000615 jne LBB0_88 + 0x4c, 0x8d, 0x5f, 0x01, //0x0000061b leaq $1(%rdi), %r11 + 0x48, 0x39, 0xf7, //0x0000061f cmpq %rsi, %rdi + 0x0f, 0x83, 0xc1, 0xfc, 0xff, 0xff, //0x00000622 jae LBB0_38 + 0x42, 0x8a, 0x0c, 0x18, //0x00000628 movb (%rax,%r11), %cl + 0x80, 0xc1, 0xd2, //0x0000062c addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000062f cmpb $55, %cl + 0x0f, 0x87, 0xb1, 0xfc, 0xff, 0xff, //0x00000632 ja LBB0_38 + 0x0f, 0xb6, 0xc9, //0x00000638 movzbl %cl, %ecx + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000063b movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00000645 btq %rcx, %rdx + 0x0f, 0x83, 0x9a, 0xfc, 0xff, 0xff, //0x00000649 jae LBB0_38 + //0x0000064f LBB0_88 + 0x48, 0x39, 0xf7, //0x0000064f cmpq %rsi, %rdi + 0x44, 0x89, 0x4d, 0xc8, //0x00000652 movl %r9d, $-56(%rbp) + 0x0f, 0x83, 0xb9, 0x05, 0x00, 0x00, //0x00000656 jae LBB0_148 + 0x48, 0xff, 0xc7, //0x0000065c incq %rdi + 0x31, 0xc9, //0x0000065f xorl %ecx, %ecx + 0x49, 0x89, 0xfb, //0x00000661 movq %rdi, %r11 + 0x31, 0xd2, //0x00000664 xorl %edx, %edx + 0x45, 0x31, 0xd2, //0x00000666 xorl %r10d, %r10d + //0x00000669 LBB0_90 + 0x83, 0xfa, 0x12, //0x00000669 cmpl $18, %edx + 0x0f, 0x8f, 0x13, 0x00, 0x00, 0x00, //0x0000066c jg LBB0_92 + 0x0f, 0xb6, 0xdb, //0x00000672 movzbl %bl, %ebx + 0x4b, 0x8d, 0x3c, 0x92, //0x00000675 leaq (%r10,%r10,4), %rdi + 0x4c, 0x8d, 0x54, 0x7b, 0xd0, //0x00000679 leaq $-48(%rbx,%rdi,2), %r10 + 0xff, 0xc2, //0x0000067e incl %edx + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00000680 jmp LBB0_93 + //0x00000685 LBB0_92 + 0xff, 0xc1, //0x00000685 incl %ecx + //0x00000687 LBB0_93 + 0x4c, 0x39, 0xde, //0x00000687 cmpq %r11, %rsi + 0x0f, 0x84, 0x86, 0x06, 0x00, 0x00, //0x0000068a je LBB0_165 + 0x42, 0x0f, 0xb6, 0x1c, 0x18, //0x00000690 movzbl (%rax,%r11), %ebx + 0x8d, 0x7b, 0xd0, //0x00000695 leal $-48(%rbx), %edi + 0x49, 0xff, 0xc3, //0x00000698 incq %r11 + 0x40, 0x80, 0xff, 0x0a, //0x0000069b cmpb $10, %dil + 0x0f, 0x82, 0xc4, 0xff, 0xff, 0xff, //0x0000069f jb LBB0_90 + 0x45, 0x31, 0xf6, //0x000006a5 xorl %r14d, %r14d + 0x85, 0xc9, //0x000006a8 testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc6, //0x000006aa setg %r14b + 0x80, 0xfb, 0x2e, //0x000006ae cmpb $46, %bl + 0x0f, 0x85, 0x03, 0x07, 0x00, 0x00, //0x000006b1 jne LBB0_179 + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x000006b7 movq $8, (%r13) + 0x49, 0x39, 0xf3, //0x000006bf cmpq %rsi, %r11 + 0x0f, 0x83, 0xfe, 0x07, 0x00, 0x00, //0x000006c2 jae LBB0_198 + 0x42, 0x8a, 0x1c, 0x18, //0x000006c8 movb (%rax,%r11), %bl + 0x80, 0xc3, 0xd0, //0x000006cc addb $-48, %bl + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x000006cf movl $8, %r9d + 0x80, 0xfb, 0x0a, //0x000006d5 cmpb $10, %bl + 0x0f, 0x82, 0x4d, 0x06, 0x00, 0x00, //0x000006d8 jb LBB0_167 + 0xe9, 0x1a, 0x09, 0x00, 0x00, //0x000006de jmp LBB0_98 + //0x000006e3 LBB0_99 + 0x49, 0xc7, 0x45, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x000006e3 movq $-2, (%r13) + 0x4d, 0x89, 0xfb, //0x000006eb movq %r15, %r11 + 0xe9, 0xf6, 0xfb, 0xff, 0xff, //0x000006ee jmp LBB0_38 + //0x000006f3 LBB0_100 + 0x4c, 0x89, 0xfa, //0x000006f3 movq %r15, %rdx + 0x48, 0xf7, 0xd2, //0x000006f6 notq %rdx + 0x41, 0xf6, 0xc0, 0x20, //0x000006f9 testb $32, %r8b + 0x4c, 0x89, 0x6d, 0xd0, //0x000006fd movq %r13, $-48(%rbp) + 0x48, 0x89, 0x45, 0xc0, //0x00000701 movq %rax, $-64(%rbp) + 0x4c, 0x89, 0x5d, 0xb8, //0x00000705 movq %r11, $-72(%rbp) + 0x0f, 0x85, 0xda, 0x02, 0x00, 0x00, //0x00000709 jne LBB0_132 + 0x49, 0x39, 0xf3, //0x0000070f cmpq %rsi, %r11 + 0x0f, 0x84, 0xa7, 0x2b, 0x00, 0x00, //0x00000712 je LBB0_733 + 0x49, 0x89, 0xf4, //0x00000718 movq %rsi, %r12 + 0x4d, 0x29, 0xdc, //0x0000071b subq %r11, %r12 + 0x4e, 0x8d, 0x2c, 0x18, //0x0000071e leaq (%rax,%r11), %r13 + 0x49, 0x83, 0xfc, 0x40, //0x00000722 cmpq $64, %r12 + 0x0f, 0x82, 0xa4, 0x28, 0x00, 0x00, //0x00000726 jb LBB0_692 + 0x48, 0x89, 0xc1, //0x0000072c movq %rax, %rcx + 0x45, 0x89, 0xe6, //0x0000072f movl %r12d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000732 andl $63, %r14d + 0x48, 0x8d, 0x44, 0x16, 0xc0, //0x00000736 leaq $-64(%rsi,%rdx), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000073b andq $-64, %rax + 0x49, 0x01, 0xc7, //0x0000073f addq %rax, %r15 + 0x4a, 0x8d, 0x44, 0x39, 0x41, //0x00000742 leaq $65(%rcx,%r15), %rax + 0x48, 0x89, 0x45, 0xa8, //0x00000747 movq %rax, $-88(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000074b movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000752 xorl %r15d, %r15d + 0xc5, 0xfa, 0x6f, 0x05, 0xa3, 0xf8, 0xff, 0xff, //0x00000755 vmovdqu $-1885(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xab, 0xf8, 0xff, 0xff, //0x0000075d vmovdqu $-1877(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000765 .p2align 4, 0x90 + //0x00000770 LBB0_104 + 0xc4, 0xc1, 0x7a, 0x6f, 0x55, 0x00, //0x00000770 vmovdqu (%r13), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x5d, 0x10, //0x00000776 vmovdqu $16(%r13), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x20, //0x0000077c vmovdqu $32(%r13), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6d, 0x30, //0x00000782 vmovdqu $48(%r13), %xmm5 + 0xc5, 0xe9, 0x74, 0xf0, //0x00000788 vpcmpeqb %xmm0, %xmm2, %xmm6 + 0xc5, 0xf9, 0xd7, 0xfe, //0x0000078c vpmovmskb %xmm6, %edi + 0xc5, 0xe1, 0x74, 0xf0, //0x00000790 vpcmpeqb %xmm0, %xmm3, %xmm6 + 0xc5, 0xf9, 0xd7, 0xd6, //0x00000794 vpmovmskb %xmm6, %edx + 0xc5, 0xd9, 0x74, 0xf0, //0x00000798 vpcmpeqb %xmm0, %xmm4, %xmm6 + 0xc5, 0xf9, 0xd7, 0xce, //0x0000079c vpmovmskb %xmm6, %ecx + 0xc5, 0xd1, 0x74, 0xf0, //0x000007a0 vpcmpeqb %xmm0, %xmm5, %xmm6 + 0xc5, 0xf9, 0xd7, 0xde, //0x000007a4 vpmovmskb %xmm6, %ebx + 0xc5, 0xe9, 0x74, 0xd1, //0x000007a8 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x000007ac vpmovmskb %xmm2, %eax + 0xc5, 0xe1, 0x74, 0xd1, //0x000007b0 vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0x79, 0xd7, 0xd2, //0x000007b4 vpmovmskb %xmm2, %r10d + 0xc5, 0xd9, 0x74, 0xd1, //0x000007b8 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0x79, 0xd7, 0xda, //0x000007bc vpmovmskb %xmm2, %r11d + 0xc5, 0xd1, 0x74, 0xd1, //0x000007c0 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xca, //0x000007c4 vpmovmskb %xmm2, %r9d + 0x48, 0xc1, 0xe3, 0x30, //0x000007c8 shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x000007cc shlq $32, %rcx + 0x48, 0xc1, 0xe2, 0x10, //0x000007d0 shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x000007d4 orq %rdx, %rdi + 0x48, 0x09, 0xcf, //0x000007d7 orq %rcx, %rdi + 0x49, 0xc1, 0xe1, 0x30, //0x000007da shlq $48, %r9 + 0x49, 0xc1, 0xe3, 0x20, //0x000007de shlq $32, %r11 + 0x49, 0xc1, 0xe2, 0x10, //0x000007e2 shlq $16, %r10 + 0x4c, 0x09, 0xd0, //0x000007e6 orq %r10, %rax + 0x4c, 0x09, 0xd8, //0x000007e9 orq %r11, %rax + 0x4c, 0x09, 0xc8, //0x000007ec orq %r9, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000007ef cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000007f3 jne LBB0_106 + 0x48, 0x85, 0xc0, //0x000007f9 testq %rax, %rax + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000007fc jne LBB0_109 + //0x00000802 LBB0_106 + 0x48, 0x09, 0xdf, //0x00000802 orq %rbx, %rdi + 0x48, 0x89, 0xc1, //0x00000805 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00000808 orq %r15, %rcx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000080b jne LBB0_110 + //0x00000811 LBB0_107 + 0x48, 0x85, 0xff, //0x00000811 testq %rdi, %rdi + 0x0f, 0x85, 0xe0, 0x08, 0x00, 0x00, //0x00000814 jne LBB0_235 + //0x0000081a LBB0_108 + 0x49, 0x83, 0xc4, 0xc0, //0x0000081a addq $-64, %r12 + 0x49, 0x83, 0xc5, 0x40, //0x0000081e addq $64, %r13 + 0x49, 0x83, 0xfc, 0x3f, //0x00000822 cmpq $63, %r12 + 0x0f, 0x87, 0x44, 0xff, 0xff, 0xff, //0x00000826 ja LBB0_104 + 0xe9, 0x46, 0x08, 0x00, 0x00, //0x0000082c jmp LBB0_230 + //0x00000831 LBB0_109 + 0x4c, 0x89, 0xe9, //0x00000831 movq %r13, %rcx + 0x48, 0x2b, 0x4d, 0xc0, //0x00000834 subq $-64(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc0, //0x00000838 bsfq %rax, %r8 + 0x49, 0x01, 0xc8, //0x0000083c addq %rcx, %r8 + 0x48, 0x09, 0xdf, //0x0000083f orq %rbx, %rdi + 0x48, 0x89, 0xc1, //0x00000842 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00000845 orq %r15, %rcx + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000848 je LBB0_107 + //0x0000084e LBB0_110 + 0x4c, 0x89, 0xf9, //0x0000084e movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000851 notq %rcx + 0x48, 0x21, 0xc1, //0x00000854 andq %rax, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00000857 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xfb, //0x0000085b orq %r15, %rbx + 0x48, 0x89, 0xda, //0x0000085e movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00000861 notq %rdx + 0x48, 0x21, 0xc2, //0x00000864 andq %rax, %rdx + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000867 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc2, //0x00000871 andq %rax, %rdx + 0x45, 0x31, 0xff, //0x00000874 xorl %r15d, %r15d + 0x48, 0x01, 0xca, //0x00000877 addq %rcx, %rdx + 0x41, 0x0f, 0x92, 0xc7, //0x0000087a setb %r15b + 0x48, 0x01, 0xd2, //0x0000087e addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000881 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x0000088b xorq %rax, %rdx + 0x48, 0x21, 0xda, //0x0000088e andq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00000891 notq %rdx + 0x48, 0x21, 0xd7, //0x00000894 andq %rdx, %rdi + 0x48, 0x85, 0xff, //0x00000897 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x0000089a je LBB0_108 + 0xe9, 0x55, 0x08, 0x00, 0x00, //0x000008a0 jmp LBB0_235 + //0x000008a5 LBB0_111 + 0x31, 0xc9, //0x000008a5 xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x000008a7 testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x000008aa setns %cl + 0xb8, 0x0b, 0x00, 0x00, 0x00, //0x000008ad movl $11, %eax + 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x000008b2 jmp LBB0_126 + //0x000008b7 LBB0_112 + 0x31, 0xc9, //0x000008b7 xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x000008b9 testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x000008bc setns %cl + 0xb8, 0x0a, 0x00, 0x00, 0x00, //0x000008bf movl $10, %eax + 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x000008c4 jmp LBB0_126 + //0x000008c9 LBB0_113 + 0x49, 0xc7, 0x45, 0x00, 0x05, 0x00, 0x00, 0x00, //0x000008c9 movq $5, (%r13) + 0xe9, 0x13, 0xfa, 0xff, 0xff, //0x000008d1 jmp LBB0_38 + //0x000008d6 LBB0_114 + 0x31, 0xc9, //0x000008d6 xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x000008d8 testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x000008db setns %cl + 0xb8, 0x0c, 0x00, 0x00, 0x00, //0x000008de movl $12, %eax + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x000008e3 jmp LBB0_126 + //0x000008e8 LBB0_115 + 0x48, 0x8d, 0x4e, 0xfc, //0x000008e8 leaq $-4(%rsi), %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000008ec movq $-1, %rdx + 0x49, 0x39, 0xcf, //0x000008f3 cmpq %rcx, %r15 + 0x0f, 0x83, 0xb5, 0x06, 0x00, 0x00, //0x000008f6 jae LBB0_217 + 0x42, 0x8b, 0x0c, 0x18, //0x000008fc movl (%rax,%r11), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00000900 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x15, 0x03, 0x00, 0x00, //0x00000906 jne LBB0_149 + 0x49, 0x83, 0xc7, 0x05, //0x0000090c addq $5, %r15 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000910 movl $4, %edx + 0xe9, 0x94, 0x06, 0x00, 0x00, //0x00000915 jmp LBB0_216 + //0x0000091a LBB0_118 + 0x48, 0x8d, 0x4e, 0xfd, //0x0000091a leaq $-3(%rsi), %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000091e movq $-1, %rdx + 0x49, 0x39, 0xcf, //0x00000925 cmpq %rcx, %r15 + 0x0f, 0x83, 0x83, 0x06, 0x00, 0x00, //0x00000928 jae LBB0_217 + 0x8b, 0x0b, //0x0000092e movl (%rbx), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00000930 cmpl $1819047278, %ecx + 0x0f, 0x85, 0x24, 0x03, 0x00, 0x00, //0x00000936 jne LBB0_153 + 0x49, 0x83, 0xc7, 0x04, //0x0000093c addq $4, %r15 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000940 movl $2, %edx + 0xe9, 0x64, 0x06, 0x00, 0x00, //0x00000945 jmp LBB0_216 + //0x0000094a LBB0_121 + 0x48, 0x8d, 0x4e, 0xfd, //0x0000094a leaq $-3(%rsi), %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000094e movq $-1, %rdx + 0x49, 0x39, 0xcf, //0x00000955 cmpq %rcx, %r15 + 0x0f, 0x83, 0x53, 0x06, 0x00, 0x00, //0x00000958 jae LBB0_217 + 0x8b, 0x0b, //0x0000095e movl (%rbx), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x00000960 cmpl $1702195828, %ecx + 0x0f, 0x85, 0x33, 0x03, 0x00, 0x00, //0x00000966 jne LBB0_157 + 0x49, 0x83, 0xc7, 0x04, //0x0000096c addq $4, %r15 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000970 movl $3, %edx + 0xe9, 0x34, 0x06, 0x00, 0x00, //0x00000975 jmp LBB0_216 + //0x0000097a LBB0_124 + 0x49, 0xc7, 0x45, 0x00, 0x06, 0x00, 0x00, 0x00, //0x0000097a movq $6, (%r13) + 0xe9, 0x62, 0xf9, 0xff, 0xff, //0x00000982 jmp LBB0_38 + //0x00000987 LBB0_125 + 0x31, 0xc9, //0x00000987 xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x00000989 testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x0000098c setns %cl + 0xb8, 0x0d, 0x00, 0x00, 0x00, //0x0000098f movl $13, %eax + //0x00000994 LBB0_126 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000994 movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd0, //0x0000099b cmovsq %rax, %rdx + 0x49, 0x89, 0x55, 0x00, //0x0000099f movq %rdx, (%r13) + 0x49, 0x29, 0xcb, //0x000009a3 subq %rcx, %r11 + 0xe9, 0x3e, 0xf9, 0xff, 0xff, //0x000009a6 jmp LBB0_38 + //0x000009ab LBB0_127 + 0x49, 0xf7, 0xda, //0x000009ab negq %r10 + 0x4d, 0x89, 0xd3, //0x000009ae movq %r10, %r11 + //0x000009b1 LBB0_128 + 0x4d, 0x85, 0xdb, //0x000009b1 testq %r11, %r11 + 0x0f, 0x88, 0x16, 0x06, 0x00, 0x00, //0x000009b4 js LBB0_219 + //0x000009ba LBB0_129 + 0x4c, 0x01, 0xdb, //0x000009ba addq %r11, %rbx + 0x49, 0x89, 0xdb, //0x000009bd movq %rbx, %r11 + 0x4c, 0x2b, 0x5d, 0xc0, //0x000009c0 subq $-64(%rbp), %r11 + 0x48, 0x83, 0x7d, 0xb8, 0x00, //0x000009c4 cmpq $0, $-72(%rbp) + 0x0f, 0x8e, 0x11, 0x00, 0x00, 0x00, //0x000009c9 jle LBB0_131 + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x000009cf movq $8, (%r13) + 0x4d, 0x89, 0x7d, 0x18, //0x000009d7 movq %r15, $24(%r13) + 0xe9, 0x09, 0xf9, 0xff, 0xff, //0x000009db jmp LBB0_38 + //0x000009e0 LBB0_131 + 0x4d, 0x89, 0x7d, 0x00, //0x000009e0 movq %r15, (%r13) + 0xe9, 0x00, 0xf9, 0xff, 0xff, //0x000009e4 jmp LBB0_38 + //0x000009e9 LBB0_132 + 0x49, 0x39, 0xf3, //0x000009e9 cmpq %rsi, %r11 + 0x0f, 0x84, 0xcd, 0x28, 0x00, 0x00, //0x000009ec je LBB0_733 + 0x49, 0x89, 0xf4, //0x000009f2 movq %rsi, %r12 + 0x4d, 0x29, 0xdc, //0x000009f5 subq %r11, %r12 + 0x4e, 0x8d, 0x2c, 0x18, //0x000009f8 leaq (%rax,%r11), %r13 + 0x49, 0x83, 0xfc, 0x40, //0x000009fc cmpq $64, %r12 + 0x0f, 0x82, 0xe3, 0x25, 0x00, 0x00, //0x00000a00 jb LBB0_693 + 0x48, 0x89, 0xc1, //0x00000a06 movq %rax, %rcx + 0x45, 0x89, 0xe6, //0x00000a09 movl %r12d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000a0c andl $63, %r14d + 0x48, 0x8d, 0x44, 0x16, 0xc0, //0x00000a10 leaq $-64(%rsi,%rdx), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000a15 andq $-64, %rax + 0x49, 0x01, 0xc7, //0x00000a19 addq %rax, %r15 + 0x4e, 0x8d, 0x4c, 0x39, 0x41, //0x00000a1c leaq $65(%rcx,%r15), %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000a21 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000a28 xorl %r15d, %r15d + 0xc5, 0x7a, 0x6f, 0x05, 0xcd, 0xf5, 0xff, 0xff, //0x00000a2b vmovdqu $-2611(%rip), %xmm8 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xd5, 0xf5, 0xff, 0xff, //0x00000a33 vmovdqu $-2603(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xdd, 0xf5, 0xff, 0xff, //0x00000a3b vmovdqu $-2595(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00000a43 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a47 .p2align 4, 0x90 + //0x00000a50 LBB0_135 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7d, 0x00, //0x00000a50 vmovdqu (%r13), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x75, 0x10, //0x00000a56 vmovdqu $16(%r13), %xmm6 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6d, 0x20, //0x00000a5c vmovdqu $32(%r13), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x30, //0x00000a62 vmovdqu $48(%r13), %xmm4 + 0xc5, 0xb9, 0x74, 0xc7, //0x00000a68 vpcmpeqb %xmm7, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00000a6c vpmovmskb %xmm0, %edi + 0xc5, 0xb9, 0x74, 0xc6, //0x00000a70 vpcmpeqb %xmm6, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00000a74 vpmovmskb %xmm0, %ebx + 0xc5, 0xb9, 0x74, 0xc5, //0x00000a78 vpcmpeqb %xmm5, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000a7c vpmovmskb %xmm0, %edx + 0xc5, 0xb9, 0x74, 0xc4, //0x00000a80 vpcmpeqb %xmm4, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xd8, //0x00000a84 vpmovmskb %xmm0, %r11d + 0xc5, 0xc1, 0x74, 0xc1, //0x00000a88 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000a8c vpmovmskb %xmm0, %eax + 0xc5, 0xc9, 0x74, 0xc1, //0x00000a90 vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000a94 vpmovmskb %xmm0, %ecx + 0xc5, 0xd1, 0x74, 0xc1, //0x00000a98 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0x48, 0xc1, 0xe3, 0x10, //0x00000a9c shlq $16, %rbx + 0x48, 0x09, 0xdf, //0x00000aa0 orq %rbx, %rdi + 0xc5, 0xf9, 0xd7, 0xd8, //0x00000aa3 vpmovmskb %xmm0, %ebx + 0xc5, 0xd9, 0x74, 0xc1, //0x00000aa7 vpcmpeqb %xmm1, %xmm4, %xmm0 + 0x48, 0xc1, 0xe2, 0x20, //0x00000aab shlq $32, %rdx + 0x48, 0x09, 0xd7, //0x00000aaf orq %rdx, %rdi + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000ab2 vpmovmskb %xmm0, %edx + 0xc5, 0xe9, 0x64, 0xc7, //0x00000ab6 vpcmpgtb %xmm7, %xmm2, %xmm0 + 0xc5, 0xc1, 0x64, 0xfb, //0x00000aba vpcmpgtb %xmm3, %xmm7, %xmm7 + 0xc5, 0xc1, 0xdb, 0xc0, //0x00000abe vpand %xmm0, %xmm7, %xmm0 + 0x48, 0xc1, 0xe1, 0x10, //0x00000ac2 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00000ac6 orq %rcx, %rax + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000ac9 vpmovmskb %xmm0, %ecx + 0xc5, 0xe9, 0x64, 0xc6, //0x00000acd vpcmpgtb %xmm6, %xmm2, %xmm0 + 0xc5, 0xc9, 0x64, 0xf3, //0x00000ad1 vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xc0, //0x00000ad5 vpand %xmm0, %xmm6, %xmm0 + 0x48, 0xc1, 0xe3, 0x20, //0x00000ad9 shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x00000add orq %rbx, %rax + 0xc5, 0xf9, 0xd7, 0xd8, //0x00000ae0 vpmovmskb %xmm0, %ebx + 0xc5, 0xe9, 0x64, 0xc5, //0x00000ae4 vpcmpgtb %xmm5, %xmm2, %xmm0 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000ae8 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xc0, //0x00000aec vpand %xmm0, %xmm5, %xmm0 + 0x48, 0xc1, 0xe2, 0x30, //0x00000af0 shlq $48, %rdx + 0x48, 0x09, 0xd0, //0x00000af4 orq %rdx, %rax + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000af7 vpmovmskb %xmm0, %edx + 0xc5, 0xe9, 0x64, 0xc4, //0x00000afb vpcmpgtb %xmm4, %xmm2, %xmm0 + 0xc5, 0xd9, 0x64, 0xe3, //0x00000aff vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xc0, //0x00000b03 vpand %xmm0, %xmm4, %xmm0 + 0x48, 0xc1, 0xe3, 0x10, //0x00000b07 shlq $16, %rbx + 0x48, 0x09, 0xd9, //0x00000b0b orq %rbx, %rcx + 0xc5, 0x79, 0xd7, 0xd0, //0x00000b0e vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe3, 0x30, //0x00000b12 shlq $48, %r11 + 0x48, 0xc1, 0xe2, 0x20, //0x00000b16 shlq $32, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000b1a cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b1e jne LBB0_137 + 0x48, 0x85, 0xc0, //0x00000b24 testq %rax, %rax + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000b27 jne LBB0_142 + //0x00000b2d LBB0_137 + 0x49, 0xc1, 0xe2, 0x30, //0x00000b2d shlq $48, %r10 + 0x48, 0x09, 0xd1, //0x00000b31 orq %rdx, %rcx + 0x4c, 0x09, 0xdf, //0x00000b34 orq %r11, %rdi + 0x48, 0x89, 0xc2, //0x00000b37 movq %rax, %rdx + 0x4c, 0x09, 0xfa, //0x00000b3a orq %r15, %rdx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000b3d jne LBB0_141 + 0x4c, 0x09, 0xd1, //0x00000b43 orq %r10, %rcx + 0x48, 0x85, 0xff, //0x00000b46 testq %rdi, %rdi + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00000b49 jne LBB0_143 + //0x00000b4f LBB0_139 + 0x48, 0x85, 0xc9, //0x00000b4f testq %rcx, %rcx + 0x0f, 0x85, 0xc9, 0x25, 0x00, 0x00, //0x00000b52 jne LBB0_712 + 0x49, 0x83, 0xc4, 0xc0, //0x00000b58 addq $-64, %r12 + 0x49, 0x83, 0xc5, 0x40, //0x00000b5c addq $64, %r13 + 0x49, 0x83, 0xfc, 0x3f, //0x00000b60 cmpq $63, %r12 + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x00000b64 ja LBB0_135 + 0xe9, 0xcb, 0x05, 0x00, 0x00, //0x00000b6a jmp LBB0_239 + //0x00000b6f LBB0_141 + 0x4c, 0x89, 0xfa, //0x00000b6f movq %r15, %rdx + 0x48, 0xf7, 0xd2, //0x00000b72 notq %rdx + 0x48, 0x21, 0xc2, //0x00000b75 andq %rax, %rdx + 0x4c, 0x8d, 0x1c, 0x12, //0x00000b78 leaq (%rdx,%rdx), %r11 + 0x4d, 0x09, 0xfb, //0x00000b7c orq %r15, %r11 + 0x4c, 0x89, 0xdb, //0x00000b7f movq %r11, %rbx + 0x48, 0xf7, 0xd3, //0x00000b82 notq %rbx + 0x48, 0x21, 0xc3, //0x00000b85 andq %rax, %rbx + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000b88 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc3, //0x00000b92 andq %rax, %rbx + 0x45, 0x31, 0xff, //0x00000b95 xorl %r15d, %r15d + 0x48, 0x01, 0xd3, //0x00000b98 addq %rdx, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00000b9b setb %r15b + 0x48, 0x01, 0xdb, //0x00000b9f addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000ba2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x00000bac xorq %rax, %rbx + 0x4c, 0x21, 0xdb, //0x00000baf andq %r11, %rbx + 0x48, 0xf7, 0xd3, //0x00000bb2 notq %rbx + 0x48, 0x21, 0xdf, //0x00000bb5 andq %rbx, %rdi + 0x4c, 0x09, 0xd1, //0x00000bb8 orq %r10, %rcx + 0x48, 0x85, 0xff, //0x00000bbb testq %rdi, %rdi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00000bbe je LBB0_139 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000bc4 jmp LBB0_143 + //0x00000bc9 LBB0_142 + 0x4c, 0x89, 0xeb, //0x00000bc9 movq %r13, %rbx + 0x48, 0x2b, 0x5d, 0xc0, //0x00000bcc subq $-64(%rbp), %rbx + 0x4c, 0x0f, 0xbc, 0xc0, //0x00000bd0 bsfq %rax, %r8 + 0x49, 0x01, 0xd8, //0x00000bd4 addq %rbx, %r8 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x00000bd7 jmp LBB0_137 + //0x00000bdc LBB0_143 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000bdc bsfq %rdi, %rax + 0x48, 0x85, 0xc9, //0x00000be0 testq %rcx, %rcx + 0x0f, 0x84, 0x13, 0x01, 0x00, 0x00, //0x00000be3 je LBB0_162 + 0x48, 0x0f, 0xbc, 0xc9, //0x00000be9 bsfq %rcx, %rcx + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00000bed jmp LBB0_163 + //0x00000bf2 LBB0_145 + 0x4c, 0x89, 0xf0, //0x00000bf2 movq %r14, %rax + 0x4c, 0x09, 0xe0, //0x00000bf5 orq %r12, %rax + 0x4d, 0x39, 0xe6, //0x00000bf8 cmpq %r12, %r14 + 0x0f, 0x8c, 0xdd, 0x00, 0x00, 0x00, //0x00000bfb jl LBB0_161 + 0x48, 0x85, 0xc0, //0x00000c01 testq %rax, %rax + 0x0f, 0x88, 0xd4, 0x00, 0x00, 0x00, //0x00000c04 js LBB0_161 + 0x49, 0xf7, 0xd6, //0x00000c0a notq %r14 + 0x4d, 0x89, 0xf3, //0x00000c0d movq %r14, %r11 + 0xe9, 0x9c, 0xfd, 0xff, 0xff, //0x00000c10 jmp LBB0_128 + //0x00000c15 LBB0_148 + 0x31, 0xc9, //0x00000c15 xorl %ecx, %ecx + 0x31, 0xd2, //0x00000c17 xorl %edx, %edx + 0x45, 0x31, 0xd2, //0x00000c19 xorl %r10d, %r10d + 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x00000c1c jmp LBB0_166 + //0x00000c21 LBB0_149 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000c21 movq $-2, %rdx + 0x80, 0xf9, 0x61, //0x00000c28 cmpb $97, %cl + 0x0f, 0x85, 0x57, 0x01, 0x00, 0x00, //0x00000c2b jne LBB0_175 + 0x42, 0x80, 0x7c, 0x38, 0x02, 0x6c, //0x00000c31 cmpb $108, $2(%rax,%r15) + 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x00000c37 jne LBB0_215 + 0x42, 0x80, 0x7c, 0x38, 0x03, 0x73, //0x00000c3d cmpb $115, $3(%rax,%r15) + 0x0f, 0x85, 0x61, 0x03, 0x00, 0x00, //0x00000c43 jne LBB0_213 + 0x49, 0x8d, 0x77, 0x04, //0x00000c49 leaq $4(%r15), %rsi + 0x49, 0x8d, 0x4f, 0x05, //0x00000c4d leaq $5(%r15), %rcx + 0x42, 0x80, 0x7c, 0x38, 0x04, 0x65, //0x00000c51 cmpb $101, $4(%rax,%r15) + 0x48, 0x0f, 0x44, 0xf1, //0x00000c57 cmoveq %rcx, %rsi + 0xe9, 0x51, 0x03, 0x00, 0x00, //0x00000c5b jmp LBB0_217 + //0x00000c60 LBB0_153 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000c60 movq $-2, %rdx + 0x80, 0xf9, 0x6e, //0x00000c67 cmpb $110, %cl + 0x0f, 0x85, 0x3e, 0x03, 0x00, 0x00, //0x00000c6a jne LBB0_216 + 0x42, 0x80, 0x7c, 0x38, 0x01, 0x75, //0x00000c70 cmpb $117, $1(%rax,%r15) + 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00000c76 jne LBB0_176 + 0x42, 0x80, 0x7c, 0x38, 0x02, 0x6c, //0x00000c7c cmpb $108, $2(%rax,%r15) + 0x0f, 0x85, 0x10, 0x01, 0x00, 0x00, //0x00000c82 jne LBB0_215 + 0x49, 0x8d, 0x77, 0x03, //0x00000c88 leaq $3(%r15), %rsi + 0x49, 0x8d, 0x4f, 0x04, //0x00000c8c leaq $4(%r15), %rcx + 0x42, 0x80, 0x7c, 0x38, 0x03, 0x6c, //0x00000c90 cmpb $108, $3(%rax,%r15) + 0x48, 0x0f, 0x44, 0xf1, //0x00000c96 cmoveq %rcx, %rsi + 0xe9, 0x12, 0x03, 0x00, 0x00, //0x00000c9a jmp LBB0_217 + //0x00000c9f LBB0_157 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000c9f movq $-2, %rdx + 0x80, 0xf9, 0x74, //0x00000ca6 cmpb $116, %cl + 0x0f, 0x85, 0xff, 0x02, 0x00, 0x00, //0x00000ca9 jne LBB0_216 + 0x42, 0x80, 0x7c, 0x38, 0x01, 0x72, //0x00000caf cmpb $114, $1(%rax,%r15) + 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, //0x00000cb5 jne LBB0_176 + 0x42, 0x80, 0x7c, 0x38, 0x02, 0x75, //0x00000cbb cmpb $117, $2(%rax,%r15) + 0x0f, 0x85, 0xd1, 0x00, 0x00, 0x00, //0x00000cc1 jne LBB0_215 + 0x49, 0x8d, 0x77, 0x03, //0x00000cc7 leaq $3(%r15), %rsi + 0x49, 0x8d, 0x4f, 0x04, //0x00000ccb leaq $4(%r15), %rcx + 0x42, 0x80, 0x7c, 0x38, 0x03, 0x65, //0x00000ccf cmpb $101, $3(%rax,%r15) + 0x48, 0x0f, 0x44, 0xf1, //0x00000cd5 cmoveq %rcx, %rsi + 0xe9, 0xd3, 0x02, 0x00, 0x00, //0x00000cd9 jmp LBB0_217 + //0x00000cde LBB0_161 + 0x48, 0x85, 0xc0, //0x00000cde testq %rax, %rax + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000ce1 leaq $-1(%r12), %rax + 0x49, 0xf7, 0xd4, //0x00000ce6 notq %r12 + 0x4d, 0x0f, 0x48, 0xe2, //0x00000ce9 cmovsq %r10, %r12 + 0x49, 0x39, 0xc6, //0x00000ced cmpq %rax, %r14 + 0x4d, 0x0f, 0x45, 0xe2, //0x00000cf0 cmovneq %r10, %r12 + 0x4d, 0x89, 0xe3, //0x00000cf4 movq %r12, %r11 + 0xe9, 0xb5, 0xfc, 0xff, 0xff, //0x00000cf7 jmp LBB0_128 + //0x00000cfc LBB0_162 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000cfc movl $64, %ecx + //0x00000d01 LBB0_163 + 0x48, 0x8b, 0x55, 0xc0, //0x00000d01 movq $-64(%rbp), %rdx + 0x48, 0x39, 0xc1, //0x00000d05 cmpq %rax, %rcx + 0x0f, 0x82, 0x13, 0x24, 0x00, 0x00, //0x00000d08 jb LBB0_712 + 0x49, 0x29, 0xd5, //0x00000d0e subq %rdx, %r13 + 0xe9, 0xec, 0x03, 0x00, 0x00, //0x00000d11 jmp LBB0_236 + //0x00000d16 LBB0_165 + 0x48, 0x89, 0xf7, //0x00000d16 movq %rsi, %rdi + //0x00000d19 LBB0_166 + 0x45, 0x31, 0xf6, //0x00000d19 xorl %r14d, %r14d + 0x85, 0xc9, //0x00000d1c testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc6, //0x00000d1e setg %r14b + 0x41, 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00000d22 movl $9, %r9d + 0x49, 0x89, 0xfb, //0x00000d28 movq %rdi, %r11 + //0x00000d2b LBB0_167 + 0x85, 0xc9, //0x00000d2b testl %ecx, %ecx + 0x48, 0x89, 0x45, 0xc0, //0x00000d2d movq %rax, $-64(%rbp) + 0x0f, 0x85, 0xa8, 0x00, 0x00, 0x00, //0x00000d31 jne LBB0_181 + //0x00000d37 LBB0_168 + 0x4d, 0x85, 0xd2, //0x00000d37 testq %r10, %r10 + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000d3a jne LBB0_181 + 0x49, 0x39, 0xf3, //0x00000d40 cmpq %rsi, %r11 + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00000d43 jae LBB0_174 + 0x44, 0x89, 0x75, 0xb8, //0x00000d49 movl %r14d, $-72(%rbp) + 0x45, 0x89, 0xde, //0x00000d4d movl %r11d, %r14d + 0x41, 0x29, 0xf6, //0x00000d50 subl %esi, %r14d + 0x31, 0xd2, //0x00000d53 xorl %edx, %edx + 0x31, 0xc9, //0x00000d55 xorl %ecx, %ecx + 0x48, 0x8b, 0x45, 0xc0, //0x00000d57 movq $-64(%rbp), %rax + //0x00000d5b LBB0_171 + 0x42, 0x80, 0x3c, 0x18, 0x30, //0x00000d5b cmpb $48, (%rax,%r11) + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x00000d60 jne LBB0_180 + 0x49, 0xff, 0xc3, //0x00000d66 incq %r11 + 0xff, 0xc9, //0x00000d69 decl %ecx + 0x4c, 0x39, 0xde, //0x00000d6b cmpq %r11, %rsi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000d6e jne LBB0_171 + 0x45, 0x31, 0xd2, //0x00000d74 xorl %r10d, %r10d + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00000d77 jmp LBB0_201 + //0x00000d7c LBB0_174 + 0x31, 0xc9, //0x00000d7c xorl %ecx, %ecx + 0x31, 0xd2, //0x00000d7e xorl %edx, %edx + 0x45, 0x31, 0xd2, //0x00000d80 xorl %r10d, %r10d + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x00000d83 jmp LBB0_181 + //0x00000d88 LBB0_175 + 0x4c, 0x89, 0xde, //0x00000d88 movq %r11, %rsi + 0xe9, 0x21, 0x02, 0x00, 0x00, //0x00000d8b jmp LBB0_217 + //0x00000d90 LBB0_176 + 0x49, 0xff, 0xc7, //0x00000d90 incq %r15 + 0xe9, 0x16, 0x02, 0x00, 0x00, //0x00000d93 jmp LBB0_216 + //0x00000d98 LBB0_215 + 0x49, 0x83, 0xc7, 0x02, //0x00000d98 addq $2, %r15 + 0xe9, 0x0d, 0x02, 0x00, 0x00, //0x00000d9c jmp LBB0_216 + //0x00000da1 LBB0_177 + 0x4c, 0x89, 0xc3, //0x00000da1 movq %r8, %rbx + 0x4c, 0x29, 0xc7, //0x00000da4 subq %r8, %rdi + 0x44, 0x0f, 0xbc, 0xda, //0x00000da7 bsfl %edx, %r11d + 0x49, 0x01, 0xfb, //0x00000dab addq %rdi, %r11 + //0x00000dae LBB0_178 + 0x49, 0xf7, 0xd3, //0x00000dae notq %r11 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00000db1 movq $-48(%rbp), %r13 + 0xe9, 0xf7, 0xfb, 0xff, 0xff, //0x00000db5 jmp LBB0_128 + //0x00000dba LBB0_179 + 0x49, 0xff, 0xcb, //0x00000dba decq %r11 + 0x41, 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00000dbd movl $9, %r9d + 0x85, 0xc9, //0x00000dc3 testl %ecx, %ecx + 0x48, 0x89, 0x45, 0xc0, //0x00000dc5 movq %rax, $-64(%rbp) + 0x0f, 0x84, 0x68, 0xff, 0xff, 0xff, //0x00000dc9 je LBB0_168 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000dcf jmp LBB0_181 + //0x00000dd4 LBB0_180 + 0x45, 0x31, 0xd2, //0x00000dd4 xorl %r10d, %r10d + 0x48, 0x8b, 0x45, 0xc0, //0x00000dd7 movq $-64(%rbp), %rax + 0x44, 0x8b, 0x75, 0xb8, //0x00000ddb movl $-72(%rbp), %r14d + //0x00000ddf LBB0_181 + 0x49, 0x39, 0xf3, //0x00000ddf cmpq %rsi, %r11 + 0x0f, 0x83, 0x3c, 0x00, 0x00, 0x00, //0x00000de2 jae LBB0_186 + 0x83, 0xfa, 0x12, //0x00000de8 cmpl $18, %edx + 0x0f, 0x8f, 0x33, 0x00, 0x00, 0x00, //0x00000deb jg LBB0_186 + //0x00000df1 LBB0_183 + 0x42, 0x0f, 0xb6, 0x3c, 0x18, //0x00000df1 movzbl (%rax,%r11), %edi + 0x8d, 0x5f, 0xd0, //0x00000df6 leal $-48(%rdi), %ebx + 0x80, 0xfb, 0x09, //0x00000df9 cmpb $9, %bl + 0x0f, 0x87, 0x22, 0x00, 0x00, 0x00, //0x00000dfc ja LBB0_186 + 0x4b, 0x8d, 0x1c, 0x92, //0x00000e02 leaq (%r10,%r10,4), %rbx + 0x4c, 0x8d, 0x54, 0x5f, 0xd0, //0x00000e06 leaq $-48(%rdi,%rbx,2), %r10 + 0xff, 0xc9, //0x00000e0b decl %ecx + 0x49, 0xff, 0xc3, //0x00000e0d incq %r11 + 0x83, 0xfa, 0x11, //0x00000e10 cmpl $17, %edx + 0x0f, 0x8f, 0x0b, 0x00, 0x00, 0x00, //0x00000e13 jg LBB0_186 + 0xff, 0xc2, //0x00000e19 incl %edx + 0x49, 0x39, 0xf3, //0x00000e1b cmpq %rsi, %r11 + 0x0f, 0x82, 0xcd, 0xff, 0xff, 0xff, //0x00000e1e jb LBB0_183 + //0x00000e24 LBB0_186 + 0x49, 0x39, 0xf3, //0x00000e24 cmpq %rsi, %r11 + 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x00000e27 jae LBB0_199 + 0x42, 0x8a, 0x14, 0x18, //0x00000e2d movb (%rax,%r11), %dl + 0x8d, 0x7a, 0xd0, //0x00000e31 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x00000e34 cmpb $9, %dil + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000e38 ja LBB0_192 + 0x48, 0x8d, 0x7e, 0xff, //0x00000e3e leaq $-1(%rsi), %rdi + //0x00000e42 LBB0_189 + 0x4c, 0x39, 0xdf, //0x00000e42 cmpq %r11, %rdi + 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x00000e45 je LBB0_200 + 0x42, 0x0f, 0xb6, 0x54, 0x18, 0x01, //0x00000e4b movzbl $1(%rax,%r11), %edx + 0x49, 0xff, 0xc3, //0x00000e51 incq %r11 + 0x8d, 0x5a, 0xd0, //0x00000e54 leal $-48(%rdx), %ebx + 0x80, 0xfb, 0x09, //0x00000e57 cmpb $9, %bl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00000e5a jbe LBB0_189 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00000e60 movl $1, %r14d + //0x00000e66 LBB0_192 + 0x80, 0xca, 0x20, //0x00000e66 orb $32, %dl + 0x80, 0xfa, 0x65, //0x00000e69 cmpb $101, %dl + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x00000e6c jne LBB0_199 + 0x49, 0x8d, 0x7b, 0x01, //0x00000e72 leaq $1(%r11), %rdi + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00000e76 movq $8, (%r13) + 0x48, 0x39, 0xf7, //0x00000e7e cmpq %rsi, %rdi + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x00000e81 jae LBB0_198 + 0x8a, 0x14, 0x38, //0x00000e87 movb (%rax,%rdi), %dl + 0x80, 0xfa, 0x2d, //0x00000e8a cmpb $45, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00000e8d je LBB0_196 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e93 movl $1, %r9d + 0x80, 0xfa, 0x2b, //0x00000e99 cmpb $43, %dl + 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x00000e9c jne LBB0_222 + //0x00000ea2 LBB0_196 + 0x49, 0x83, 0xc3, 0x02, //0x00000ea2 addq $2, %r11 + 0x49, 0x39, 0xf3, //0x00000ea6 cmpq %rsi, %r11 + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x00000ea9 jae LBB0_198 + 0x31, 0xff, //0x00000eaf xorl %edi, %edi + 0x80, 0xfa, 0x2b, //0x00000eb1 cmpb $43, %dl + 0x40, 0x0f, 0x94, 0xc7, //0x00000eb4 sete %dil + 0x44, 0x8d, 0x4c, 0x3f, 0xff, //0x00000eb8 leal $-1(%rdi,%rdi), %r9d + 0x42, 0x8a, 0x14, 0x18, //0x00000ebd movb (%rax,%r11), %dl + 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00000ec1 jmp LBB0_223 + //0x00000ec6 LBB0_198 + 0x49, 0xc7, 0x45, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00000ec6 movq $-1, (%r13) + 0x49, 0x89, 0xf3, //0x00000ece movq %rsi, %r11 + 0xe9, 0x13, 0xf4, 0xff, 0xff, //0x00000ed1 jmp LBB0_38 + //0x00000ed6 LBB0_199 + 0x44, 0x89, 0x75, 0xb8, //0x00000ed6 movl %r14d, $-72(%rbp) + 0x41, 0x89, 0xce, //0x00000eda movl %ecx, %r14d + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00000edd jmp LBB0_202 + //0x00000ee2 LBB0_200 + 0xc7, 0x45, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000ee2 movl $1, $-72(%rbp) + 0x41, 0x89, 0xce, //0x00000ee9 movl %ecx, %r14d + //0x00000eec LBB0_201 + 0x49, 0x89, 0xf3, //0x00000eec movq %rsi, %r11 + //0x00000eef LBB0_202 + 0x41, 0x83, 0xf9, 0x09, //0x00000eef cmpl $9, %r9d + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x00000ef3 jne LBB0_207 + 0x45, 0x85, 0xf6, //0x00000ef9 testl %r14d, %r14d + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000efc jne LBB0_206 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000f02 movabsq $-9223372036854775808, %rax + 0x48, 0x63, 0x4d, 0xc8, //0x00000f0c movslq $-56(%rbp), %rcx + 0x4d, 0x85, 0xd2, //0x00000f10 testq %r10, %r10 + 0x0f, 0x89, 0x56, 0x00, 0x00, 0x00, //0x00000f13 jns LBB0_212 + 0x4c, 0x89, 0xd2, //0x00000f19 movq %r10, %rdx + 0x48, 0x21, 0xca, //0x00000f1c andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00000f1f cmpq %rax, %rdx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000f22 je LBB0_212 + //0x00000f28 LBB0_206 + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00000f28 movq $8, (%r13) + //0x00000f30 LBB0_207 + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000f30 movabsq $-9223372036854775808, %r9 + 0x4c, 0x89, 0xd0, //0x00000f3a movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000f3d shrq $52, %rax + 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00000f41 je LBB0_247 + //0x00000f47 LBB0_208 + 0x41, 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00000f47 leal $348(%r14), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x00000f4e cmpl $695, %eax + 0x0f, 0x87, 0xb5, 0x04, 0x00, 0x00, //0x00000f53 ja LBB0_268 + 0x4d, 0x85, 0xd2, //0x00000f59 testq %r10, %r10 + 0x0f, 0x84, 0xa3, 0x03, 0x00, 0x00, //0x00000f5c je LBB0_259 + //0x00000f62 LBB0_210 + 0x49, 0x0f, 0xbd, 0xca, //0x00000f62 bsrq %r10, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x00000f66 xorq $63, %rcx + 0xe9, 0x9b, 0x03, 0x00, 0x00, //0x00000f6a jmp LBB0_260 + //0x00000f6f LBB0_212 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc2, //0x00000f6f vmovq %r10, %xmm0 + 0x4c, 0x0f, 0xaf, 0xd1, //0x00000f74 imulq %rcx, %r10 + 0x4d, 0x89, 0x55, 0x10, //0x00000f78 movq %r10, $16(%r13) + 0xc5, 0xf9, 0x62, 0x05, 0x0c, 0xf1, 0xff, 0xff, //0x00000f7c vpunpckldq $-3828(%rip), %xmm0, %xmm0 /* LCPI0_9+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x14, 0xf1, 0xff, 0xff, //0x00000f84 vsubpd $-3820(%rip), %xmm0, %xmm0 /* LCPI0_10+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00000f8c vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00000f92 vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00000f96 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00000f99 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00000f9e orq %rax, %rcx + 0x49, 0x89, 0x4d, 0x08, //0x00000fa1 movq %rcx, $8(%r13) + 0xe9, 0x3f, 0xf3, 0xff, 0xff, //0x00000fa5 jmp LBB0_38 + //0x00000faa LBB0_213 + 0x49, 0x83, 0xc7, 0x03, //0x00000faa addq $3, %r15 + //0x00000fae LBB0_216 + 0x4c, 0x89, 0xfe, //0x00000fae movq %r15, %rsi + //0x00000fb1 LBB0_217 + 0x49, 0x89, 0x55, 0x00, //0x00000fb1 movq %rdx, (%r13) + 0x49, 0x89, 0xf3, //0x00000fb5 movq %rsi, %r11 + 0xe9, 0x2c, 0xf3, 0xff, 0xff, //0x00000fb8 jmp LBB0_38 + //0x00000fbd LBB0_218 + 0x49, 0x89, 0xca, //0x00000fbd movq %rcx, %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000fc0 movq $-1, %r11 + 0x4d, 0x85, 0xe4, //0x00000fc7 testq %r12, %r12 + 0x0f, 0x85, 0xe9, 0xf5, 0xff, 0xff, //0x00000fca jne LBB0_76 + //0x00000fd0 LBB0_219 + 0x49, 0xf7, 0xd3, //0x00000fd0 notq %r11 + 0x4c, 0x01, 0xdb, //0x00000fd3 addq %r11, %rbx + //0x00000fd6 LBB0_220 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00000fd6 movq $-2, %r15 + //0x00000fdd LBB0_221 + 0x48, 0x2b, 0x5d, 0xc0, //0x00000fdd subq $-64(%rbp), %rbx + 0x49, 0x89, 0xdb, //0x00000fe1 movq %rbx, %r11 + 0x4d, 0x89, 0x7d, 0x00, //0x00000fe4 movq %r15, (%r13) + 0xe9, 0xfc, 0xf2, 0xff, 0xff, //0x00000fe8 jmp LBB0_38 + //0x00000fed LBB0_222 + 0x49, 0x89, 0xfb, //0x00000fed movq %rdi, %r11 + //0x00000ff0 LBB0_223 + 0x8d, 0x7a, 0xd0, //0x00000ff0 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x00000ff3 cmpb $9, %dil + 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x00000ff7 jbe LBB0_225 + //0x00000ffd LBB0_98 + 0x49, 0xc7, 0x45, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00000ffd movq $-2, (%r13) + 0xe9, 0xdf, 0xf2, 0xff, 0xff, //0x00001005 jmp LBB0_38 + //0x0000100a LBB0_225 + 0x44, 0x89, 0x75, 0xb8, //0x0000100a movl %r14d, $-72(%rbp) + 0x45, 0x31, 0xf6, //0x0000100e xorl %r14d, %r14d + 0x49, 0x39, 0xf3, //0x00001011 cmpq %rsi, %r11 + 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x00001014 jae LBB0_246 + 0x48, 0x8d, 0x7e, 0xff, //0x0000101a leaq $-1(%rsi), %rdi + 0x45, 0x31, 0xf6, //0x0000101e xorl %r14d, %r14d + //0x00001021 LBB0_227 + 0x44, 0x89, 0xf3, //0x00001021 movl %r14d, %ebx + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00001024 cmpl $10000, %r14d + 0x8d, 0x04, 0x9b, //0x0000102b leal (%rbx,%rbx,4), %eax + 0x0f, 0xb6, 0xd2, //0x0000102e movzbl %dl, %edx + 0x44, 0x8d, 0x74, 0x42, 0xd0, //0x00001031 leal $-48(%rdx,%rax,2), %r14d + 0x44, 0x0f, 0x4d, 0xf3, //0x00001036 cmovgel %ebx, %r14d + 0x4c, 0x39, 0xdf, //0x0000103a cmpq %r11, %rdi + 0x0f, 0x84, 0xb2, 0x01, 0x00, 0x00, //0x0000103d je LBB0_245 + 0x48, 0x8b, 0x45, 0xc0, //0x00001043 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x54, 0x18, 0x01, //0x00001047 movzbl $1(%rax,%r11), %edx + 0x49, 0xff, 0xc3, //0x0000104d incq %r11 + 0x8d, 0x42, 0xd0, //0x00001050 leal $-48(%rdx), %eax + 0x3c, 0x0a, //0x00001053 cmpb $10, %al + 0x0f, 0x82, 0xc6, 0xff, 0xff, 0xff, //0x00001055 jb LBB0_227 + 0xe9, 0x98, 0x01, 0x00, 0x00, //0x0000105b jmp LBB0_246 + //0x00001060 LBB0_229 + 0x49, 0xf7, 0xd3, //0x00001060 notq %r11 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001063 movq $-48(%rbp), %r13 + 0x4c, 0x89, 0xc3, //0x00001067 movq %r8, %rbx + 0xe9, 0x42, 0xf9, 0xff, 0xff, //0x0000106a jmp LBB0_128 + //0x0000106f LBB0_453 + 0x49, 0xf7, 0xdb, //0x0000106f negq %r11 + 0xe9, 0x3a, 0xf9, 0xff, 0xff, //0x00001072 jmp LBB0_128 + //0x00001077 LBB0_230 + 0x4c, 0x8b, 0x6d, 0xa8, //0x00001077 movq $-88(%rbp), %r13 + 0x4d, 0x89, 0xf4, //0x0000107b movq %r14, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x0000107e cmpq $32, %r12 + 0x0f, 0x82, 0x19, 0x21, 0x00, 0x00, //0x00001082 jb LBB0_717 + //0x00001088 LBB0_231 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001088 vmovdqu (%r13), %xmm0 + 0xc4, 0xc1, 0x7a, 0x6f, 0x4d, 0x10, //0x0000108e vmovdqu $16(%r13), %xmm1 + 0xc5, 0xfa, 0x6f, 0x15, 0x64, 0xef, 0xff, 0xff, //0x00001094 vmovdqu $-4252(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x1d, 0x6c, 0xef, 0xff, 0xff, //0x0000109c vmovdqu $-4244(%rip), %xmm3 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xe2, //0x000010a4 vpcmpeqb %xmm2, %xmm0, %xmm4 + 0xc5, 0xf9, 0xd7, 0xd4, //0x000010a8 vpmovmskb %xmm4, %edx + 0xc5, 0xf1, 0x74, 0xd2, //0x000010ac vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000010b0 vpmovmskb %xmm2, %edi + 0xc5, 0xf9, 0x74, 0xc3, //0x000010b4 vpcmpeqb %xmm3, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000010b8 vpmovmskb %xmm0, %eax + 0xc5, 0xf1, 0x74, 0xc3, //0x000010bc vpcmpeqb %xmm3, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000010c0 vpmovmskb %xmm0, %ecx + 0x48, 0xc1, 0xe7, 0x10, //0x000010c4 shlq $16, %rdi + 0x48, 0xc1, 0xe1, 0x10, //0x000010c8 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x000010cc orq %rcx, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000010cf cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000010d3 jne LBB0_233 + 0x48, 0x85, 0xc0, //0x000010d9 testq %rax, %rax + 0x0f, 0x85, 0x5e, 0x20, 0x00, 0x00, //0x000010dc jne LBB0_714 + //0x000010e2 LBB0_233 + 0x48, 0x09, 0xd7, //0x000010e2 orq %rdx, %rdi + 0x48, 0x89, 0xc1, //0x000010e5 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x000010e8 orq %r15, %rcx + 0x0f, 0x85, 0x6c, 0x20, 0x00, 0x00, //0x000010eb jne LBB0_715 + //0x000010f1 LBB0_234 + 0x48, 0x85, 0xff, //0x000010f1 testq %rdi, %rdi + 0x0f, 0x84, 0x9f, 0x20, 0x00, 0x00, //0x000010f4 je LBB0_716 + //0x000010fa LBB0_235 + 0x48, 0x0f, 0xbc, 0xc7, //0x000010fa bsfq %rdi, %rax + 0x4c, 0x2b, 0x6d, 0xc0, //0x000010fe subq $-64(%rbp), %r13 + //0x00001102 LBB0_236 + 0x4d, 0x8d, 0x5c, 0x05, 0x01, //0x00001102 leaq $1(%r13,%rax), %r11 + //0x00001107 LBB0_237 + 0x4d, 0x85, 0xdb, //0x00001107 testq %r11, %r11 + 0x48, 0x8b, 0x4d, 0xd0, //0x0000110a movq $-48(%rbp), %rcx + 0x0f, 0x88, 0xa0, 0x21, 0x00, 0x00, //0x0000110e js LBB0_732 + 0x48, 0x8b, 0x45, 0xb8, //0x00001114 movq $-72(%rbp), %rax + 0x48, 0x89, 0x41, 0x10, //0x00001118 movq %rax, $16(%rcx) + 0x48, 0xc7, 0x01, 0x07, 0x00, 0x00, 0x00, //0x0000111c movq $7, (%rcx) + 0x4d, 0x39, 0xd8, //0x00001123 cmpq %r11, %r8 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001126 movq $-1, %rax + 0x49, 0x0f, 0x4c, 0xc0, //0x0000112d cmovlq %r8, %rax + 0x48, 0x89, 0x41, 0x18, //0x00001131 movq %rax, $24(%rcx) + 0xe9, 0xaf, 0xf1, 0xff, 0xff, //0x00001135 jmp LBB0_38 + //0x0000113a LBB0_239 + 0x4d, 0x89, 0xcd, //0x0000113a movq %r9, %r13 + 0x4d, 0x89, 0xf4, //0x0000113d movq %r14, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00001140 cmpq $32, %r12 + 0x0f, 0x82, 0x2f, 0x1f, 0x00, 0x00, //0x00001144 jb LBB0_701 + //0x0000114a LBB0_240 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000114a vmovdqu (%r13), %xmm0 + 0xc4, 0xc1, 0x7a, 0x6f, 0x4d, 0x10, //0x00001150 vmovdqu $16(%r13), %xmm1 + 0xc5, 0xfa, 0x6f, 0x15, 0xa2, 0xee, 0xff, 0xff, //0x00001156 vmovdqu $-4446(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x0000115e vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xd3, //0x00001162 vpmovmskb %xmm3, %edx + 0xc5, 0xf1, 0x74, 0xd2, //0x00001166 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000116a vpmovmskb %xmm2, %edi + 0xc5, 0xfa, 0x6f, 0x15, 0x9a, 0xee, 0xff, 0xff, //0x0000116e vmovdqu $-4454(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00001176 vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xcb, //0x0000117a vpmovmskb %xmm3, %ecx + 0xc5, 0xf1, 0x74, 0xd2, //0x0000117e vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xc2, //0x00001182 vpmovmskb %xmm2, %eax + 0xc5, 0xfa, 0x6f, 0x15, 0x92, 0xee, 0xff, 0xff, //0x00001186 vmovdqu $-4462(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd8, //0x0000118e vpcmpgtb %xmm0, %xmm2, %xmm3 + 0xc5, 0xd9, 0x76, 0xe4, //0x00001192 vpcmpeqd %xmm4, %xmm4, %xmm4 + 0xc5, 0xf9, 0x64, 0xc4, //0x00001196 vpcmpgtb %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc3, //0x0000119a vpand %xmm3, %xmm0, %xmm0 + 0xc5, 0xe9, 0x64, 0xd1, //0x0000119e vpcmpgtb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf1, 0x64, 0xcc, //0x000011a2 vpcmpgtb %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xdb, 0xca, //0x000011a6 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0x79, 0xd7, 0xc9, //0x000011aa vpmovmskb %xmm1, %r9d + 0x48, 0xc1, 0xe7, 0x10, //0x000011ae shlq $16, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x000011b2 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x000011b6 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000011b9 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000011bd jne LBB0_242 + 0x48, 0x85, 0xc9, //0x000011c3 testq %rcx, %rcx + 0x0f, 0x85, 0x5d, 0x20, 0x00, 0x00, //0x000011c6 jne LBB0_726 + //0x000011cc LBB0_242 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000011cc vpmovmskb %xmm0, %eax + 0x48, 0x09, 0xd7, //0x000011d0 orq %rdx, %rdi + 0x48, 0x89, 0xca, //0x000011d3 movq %rcx, %rdx + 0x4c, 0x09, 0xfa, //0x000011d6 orq %r15, %rdx + 0x0f, 0x85, 0x23, 0x1e, 0x00, 0x00, //0x000011d9 jne LBB0_694 + 0x49, 0xc1, 0xe1, 0x10, //0x000011df shlq $16, %r9 + 0x48, 0x85, 0xff, //0x000011e3 testq %rdi, %rdi + 0x0f, 0x84, 0x59, 0x1e, 0x00, 0x00, //0x000011e6 je LBB0_695 + //0x000011ec LBB0_244 + 0x48, 0x0f, 0xbc, 0xcf, //0x000011ec bsfq %rdi, %rcx + 0xe9, 0x55, 0x1e, 0x00, 0x00, //0x000011f0 jmp LBB0_696 + //0x000011f5 LBB0_245 + 0x49, 0x89, 0xf3, //0x000011f5 movq %rsi, %r11 + //0x000011f8 LBB0_246 + 0x45, 0x0f, 0xaf, 0xf1, //0x000011f8 imull %r9d, %r14d + 0x41, 0x01, 0xce, //0x000011fc addl %ecx, %r14d + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000011ff movabsq $-9223372036854775808, %r9 + 0x4c, 0x89, 0xd0, //0x00001209 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x0000120c shrq $52, %rax + 0x0f, 0x85, 0x31, 0xfd, 0xff, 0xff, //0x00001210 jne LBB0_208 + //0x00001216 LBB0_247 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc2, //0x00001216 vmovq %r10, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x6d, 0xee, 0xff, 0xff, //0x0000121b vpunpckldq $-4499(%rip), %xmm0, %xmm0 /* LCPI0_9+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x75, 0xee, 0xff, 0xff, //0x00001223 vsubpd $-4491(%rip), %xmm0, %xmm0 /* LCPI0_10+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x0000122b vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00001231 vaddsd %xmm0, %xmm1, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00001235 vmovq %xmm0, %rax + 0x8b, 0x4d, 0xc8, //0x0000123a movl $-56(%rbp), %ecx + 0x89, 0xce, //0x0000123d movl %ecx, %esi + 0xc1, 0xee, 0x1f, //0x0000123f shrl $31, %esi + 0x48, 0xc1, 0xe6, 0x3f, //0x00001242 shlq $63, %rsi + 0x48, 0x09, 0xc6, //0x00001246 orq %rax, %rsi + 0x4d, 0x85, 0xd2, //0x00001249 testq %r10, %r10 + 0x0f, 0x84, 0x02, 0x06, 0x00, 0x00, //0x0000124c je LBB0_328 + 0x45, 0x85, 0xf6, //0x00001252 testl %r14d, %r14d + 0x0f, 0x84, 0xf9, 0x05, 0x00, 0x00, //0x00001255 je LBB0_328 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc6, //0x0000125b vmovq %rsi, %xmm0 + 0x41, 0x8d, 0x46, 0xff, //0x00001260 leal $-1(%r14), %eax + 0x83, 0xf8, 0x24, //0x00001264 cmpl $36, %eax + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00001267 ja LBB0_252 + 0x41, 0x83, 0xfe, 0x17, //0x0000126d cmpl $23, %r14d + 0x0f, 0x8c, 0x43, 0x00, 0x00, 0x00, //0x00001271 jl LBB0_254 + 0x49, 0x63, 0xc6, //0x00001277 movslq %r14d, %rax + 0x48, 0x8d, 0x0d, 0x3f, 0x23, 0x00, 0x00, //0x0000127a leaq $9023(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00001281 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x0000128a movl $22, %eax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x0000128f jmp LBB0_255 + //0x00001294 LBB0_252 + 0x41, 0x83, 0xfe, 0xea, //0x00001294 cmpl $-22, %r14d + 0x0f, 0x82, 0xa9, 0xfc, 0xff, 0xff, //0x00001298 jb LBB0_208 + 0x41, 0xf7, 0xde, //0x0000129e negl %r14d + 0x49, 0x63, 0xc6, //0x000012a1 movslq %r14d, %rax + 0x48, 0x8d, 0x0d, 0x15, 0x23, 0x00, 0x00, //0x000012a4 leaq $8981(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x000012ab vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc6, //0x000012b0 vmovq %xmm0, %rsi + 0xe9, 0x9a, 0x05, 0x00, 0x00, //0x000012b5 jmp LBB0_328 + //0x000012ba LBB0_254 + 0x44, 0x89, 0xf0, //0x000012ba movl %r14d, %eax + //0x000012bd LBB0_255 + 0xc5, 0xf9, 0x2e, 0x05, 0xeb, 0xed, 0xff, 0xff, //0x000012bd vucomisd $-4629(%rip), %xmm0 /* LCPI0_11+0(%rip) */ + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000012c5 ja LBB0_258 + 0xc5, 0xfb, 0x10, 0x0d, 0xe5, 0xed, 0xff, 0xff, //0x000012cb vmovsd $-4635(%rip), %xmm1 /* LCPI0_12+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x000012d3 vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x18, 0x00, 0x00, 0x00, //0x000012d7 ja LBB0_258 + 0x89, 0xc0, //0x000012dd movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xda, 0x22, 0x00, 0x00, //0x000012df leaq $8922(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000012e6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc6, //0x000012eb vmovq %xmm0, %rsi + 0xe9, 0x5f, 0x05, 0x00, 0x00, //0x000012f0 jmp LBB0_328 + //0x000012f5 LBB0_258 + 0x41, 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000012f5 leal $348(%r14), %eax + 0x4d, 0x85, 0xd2, //0x000012fc testq %r10, %r10 + 0x0f, 0x85, 0x5d, 0xfc, 0xff, 0xff, //0x000012ff jne LBB0_210 + //0x00001305 LBB0_259 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001305 movl $64, %ecx + //0x0000130a LBB0_260 + 0x4c, 0x89, 0xd6, //0x0000130a movq %r10, %rsi + 0x48, 0x89, 0x4d, 0xa0, //0x0000130d movq %rcx, $-96(%rbp) + 0x48, 0xd3, 0xe6, //0x00001311 shlq %cl, %rsi + 0x89, 0xc0, //0x00001314 movl %eax, %eax + 0x48, 0xc1, 0xe0, 0x04, //0x00001316 shlq $4, %rax + 0x48, 0x8d, 0x0d, 0x5f, 0x23, 0x00, 0x00, //0x0000131a leaq $9055(%rip), %rcx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0x45, 0xb0, //0x00001321 movq %rax, $-80(%rbp) + 0x48, 0x8b, 0x44, 0x08, 0x08, //0x00001325 movq $8(%rax,%rcx), %rax + 0x48, 0x89, 0x45, 0x98, //0x0000132a movq %rax, $-104(%rbp) + 0x48, 0xf7, 0xe6, //0x0000132e mulq %rsi + 0x48, 0x89, 0xc7, //0x00001331 movq %rax, %rdi + 0x48, 0x89, 0xd3, //0x00001334 movq %rdx, %rbx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00001337 andl $511, %edx + 0x48, 0x89, 0xf1, //0x0000133d movq %rsi, %rcx + 0x48, 0xf7, 0xd1, //0x00001340 notq %rcx + 0x48, 0x39, 0xc8, //0x00001343 cmpq %rcx, %rax + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x00001346 jbe LBB0_265 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x0000134c cmpl $511, %edx + 0x0f, 0x85, 0x40, 0x00, 0x00, 0x00, //0x00001352 jne LBB0_265 + 0x48, 0x89, 0xf0, //0x00001358 movq %rsi, %rax + 0x48, 0x8b, 0x55, 0xb0, //0x0000135b movq $-80(%rbp), %rdx + 0x48, 0x8d, 0x35, 0x1a, 0x23, 0x00, 0x00, //0x0000135f leaq $8986(%rip), %rsi /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x32, //0x00001366 mulq (%rdx,%rsi) + 0x48, 0x01, 0xd7, //0x0000136a addq %rdx, %rdi + 0x48, 0x83, 0xd3, 0x00, //0x0000136d adcq $0, %rbx + 0x89, 0xda, //0x00001371 movl %ebx, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00001373 andl $511, %edx + 0x48, 0x39, 0xc8, //0x00001379 cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x0000137c jbe LBB0_265 + 0x48, 0x83, 0xff, 0xff, //0x00001382 cmpq $-1, %rdi + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00001386 jne LBB0_265 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x0000138c cmpl $511, %edx + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00001392 je LBB0_268 + //0x00001398 LBB0_265 + 0x48, 0x89, 0xd8, //0x00001398 movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x0000139b shrq $63, %rax + 0x8d, 0x48, 0x09, //0x0000139f leal $9(%rax), %ecx + 0x48, 0xd3, 0xeb, //0x000013a2 shrq %cl, %rbx + 0x48, 0x09, 0xfa, //0x000013a5 orq %rdi, %rdx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000013a8 jne LBB0_267 + 0x89, 0xd9, //0x000013ae movl %ebx, %ecx + 0x83, 0xe1, 0x03, //0x000013b0 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x000013b3 cmpl $1, %ecx + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x000013b6 je LBB0_268 + //0x000013bc LBB0_267 + 0x41, 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x000013bc imull $217706, %r14d, %ecx + 0xc1, 0xf9, 0x10, //0x000013c3 sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x000013c6 addl $1087, %ecx + 0x4c, 0x63, 0xf1, //0x000013cc movslq %ecx, %r14 + 0x4c, 0x89, 0xf2, //0x000013cf movq %r14, %rdx + 0x48, 0x2b, 0x55, 0xa0, //0x000013d2 subq $-96(%rbp), %rdx + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000013d6 movabsq $126100789566373888, %rdi + 0x48, 0x83, 0xf0, 0x01, //0x000013e0 xorq $1, %rax + 0x48, 0x29, 0xc2, //0x000013e4 subq %rax, %rdx + 0x89, 0xd8, //0x000013e7 movl %ebx, %eax + 0x83, 0xe0, 0x01, //0x000013e9 andl $1, %eax + 0x48, 0x01, 0xd8, //0x000013ec addq %rbx, %rax + 0x48, 0x89, 0xc1, //0x000013ef movq %rax, %rcx + 0x48, 0x21, 0xf9, //0x000013f2 andq %rdi, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x000013f5 cmpq $1, %rcx + 0x48, 0x83, 0xda, 0xff, //0x000013f9 sbbq $-1, %rdx + 0x48, 0x8d, 0x72, 0xff, //0x000013fd leaq $-1(%rdx), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00001401 cmpq $2045, %rsi + 0x0f, 0x86, 0x69, 0x00, 0x00, 0x00, //0x00001408 jbe LBB0_273 + //0x0000140e LBB0_268 + 0x4c, 0x89, 0xd8, //0x0000140e movq %r11, %rax + 0x4c, 0x29, 0xf8, //0x00001411 subq %r15, %rax + 0x48, 0x8b, 0x4d, 0xa8, //0x00001414 movq $-88(%rbp), %rcx + 0x48, 0x85, 0xc9, //0x00001418 testq %rcx, %rcx + 0x4c, 0x89, 0xc6, //0x0000141b movq %r8, %rsi + 0x0f, 0x84, 0x43, 0x02, 0x00, 0x00, //0x0000141e je LBB0_290 + 0x41, 0xc6, 0x04, 0x24, 0x00, //0x00001424 movb $0, (%r12) + 0x48, 0x83, 0xf9, 0x01, //0x00001429 cmpq $1, %rcx + 0x0f, 0x84, 0x34, 0x02, 0x00, 0x00, //0x0000142d je LBB0_290 + 0x48, 0x8d, 0x51, 0xff, //0x00001433 leaq $-1(%rcx), %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001437 movl $1, %ecx + 0x48, 0x81, 0xfa, 0x80, 0x00, 0x00, 0x00, //0x0000143c cmpq $128, %rdx + 0x0f, 0x82, 0x09, 0x02, 0x00, 0x00, //0x00001443 jb LBB0_288 + 0x48, 0x89, 0xd1, //0x00001449 movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x0000144c andq $-128, %rcx + 0x48, 0x8d, 0x71, 0x80, //0x00001450 leaq $-128(%rcx), %rsi + 0x48, 0x89, 0xf7, //0x00001454 movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x00001457 shrq $7, %rdi + 0x48, 0xff, 0xc7, //0x0000145b incq %rdi + 0x89, 0xfb, //0x0000145e movl %edi, %ebx + 0x83, 0xe3, 0x03, //0x00001460 andl $3, %ebx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00001463 cmpq $384, %rsi + 0x0f, 0x83, 0xe2, 0x00, 0x00, 0x00, //0x0000146a jae LBB0_281 + 0x31, 0xff, //0x00001470 xorl %edi, %edi + 0xe9, 0x8c, 0x01, 0x00, 0x00, //0x00001472 jmp LBB0_283 + //0x00001477 LBB0_273 + 0x48, 0x83, 0xf9, 0x01, //0x00001477 cmpq $1, %rcx + 0xb1, 0x02, //0x0000147b movb $2, %cl + 0x80, 0xd9, 0x00, //0x0000147d sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x00001480 shrq %cl, %rax + 0x48, 0xc1, 0xe2, 0x34, //0x00001483 shlq $52, %rdx + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001487 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x00001491 andq %rcx, %rax + 0x48, 0x09, 0xd0, //0x00001494 orq %rdx, %rax + 0x48, 0x89, 0xc6, //0x00001497 movq %rax, %rsi + 0x4c, 0x09, 0xce, //0x0000149a orq %r9, %rsi + 0x83, 0x7d, 0xc8, 0xff, //0x0000149d cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xf0, //0x000014a1 cmovneq %rax, %rsi + 0x83, 0x7d, 0xb8, 0x00, //0x000014a5 cmpl $0, $-72(%rbp) + 0x0f, 0x84, 0xa5, 0x03, 0x00, 0x00, //0x000014a9 je LBB0_328 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000014af movl $64, %ecx + 0x49, 0xff, 0xc2, //0x000014b4 incq %r10 + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000014b7 je LBB0_276 + 0x49, 0x0f, 0xbd, 0xca, //0x000014bd bsrq %r10, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x000014c1 xorq $63, %rcx + //0x000014c5 LBB0_276 + 0x48, 0x89, 0x4d, 0xa0, //0x000014c5 movq %rcx, $-96(%rbp) + 0x49, 0xd3, 0xe2, //0x000014c9 shlq %cl, %r10 + 0x48, 0x8b, 0x45, 0x98, //0x000014cc movq $-104(%rbp), %rax + 0x49, 0xf7, 0xe2, //0x000014d0 mulq %r10 + 0x48, 0x89, 0xd3, //0x000014d3 movq %rdx, %rbx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000014d6 andl $511, %edx + 0x4c, 0x89, 0xd1, //0x000014dc movq %r10, %rcx + 0x48, 0xf7, 0xd1, //0x000014df notq %rcx + 0x48, 0x89, 0x45, 0xb8, //0x000014e2 movq %rax, $-72(%rbp) + 0x48, 0x39, 0xc8, //0x000014e6 cmpq %rcx, %rax + 0x0f, 0x86, 0x2e, 0x0b, 0x00, 0x00, //0x000014e9 jbe LBB0_629 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000014ef cmpl $511, %edx + 0x0f, 0x85, 0x22, 0x0b, 0x00, 0x00, //0x000014f5 jne LBB0_629 + 0x4c, 0x89, 0xd0, //0x000014fb movq %r10, %rax + 0x48, 0x8b, 0x55, 0xb0, //0x000014fe movq $-80(%rbp), %rdx + 0x48, 0x8d, 0x3d, 0x77, 0x21, 0x00, 0x00, //0x00001502 leaq $8567(%rip), %rdi /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x3a, //0x00001509 mulq (%rdx,%rdi) + 0x48, 0x8b, 0x7d, 0xb8, //0x0000150d movq $-72(%rbp), %rdi + 0x48, 0x01, 0xd7, //0x00001511 addq %rdx, %rdi + 0x48, 0x83, 0xd3, 0x00, //0x00001514 adcq $0, %rbx + 0x89, 0xda, //0x00001518 movl %ebx, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000151a andl $511, %edx + 0x48, 0x39, 0xc8, //0x00001520 cmpq %rcx, %rax + 0x48, 0x89, 0x7d, 0xb8, //0x00001523 movq %rdi, $-72(%rbp) + 0x0f, 0x86, 0xe6, 0x0a, 0x00, 0x00, //0x00001527 jbe LBB0_628 + 0x48, 0x83, 0xff, 0xff, //0x0000152d cmpq $-1, %rdi + 0x0f, 0x85, 0xdc, 0x0a, 0x00, 0x00, //0x00001531 jne LBB0_628 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00001537 cmpl $511, %edx + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x0000153d movabsq $126100789566373888, %rdi + 0x0f, 0x84, 0xc1, 0xfe, 0xff, 0xff, //0x00001547 je LBB0_268 + 0xe9, 0xcb, 0x0a, 0x00, 0x00, //0x0000154d jmp LBB0_629 + //0x00001552 LBB0_281 + 0x48, 0x89, 0xde, //0x00001552 movq %rbx, %rsi + 0x48, 0x29, 0xfe, //0x00001555 subq %rdi, %rsi + 0x31, 0xff, //0x00001558 xorl %edi, %edi + 0xc5, 0xf9, 0x57, 0xc0, //0x0000155a vxorpd %xmm0, %xmm0, %xmm0 + //0x0000155e LBB0_282 + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x3c, 0x01, //0x0000155e vmovupd %ymm0, $1(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x3c, 0x21, //0x00001565 vmovupd %ymm0, $33(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x3c, 0x41, //0x0000156c vmovupd %ymm0, $65(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x3c, 0x61, //0x00001573 vmovupd %ymm0, $97(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0x81, 0x00, 0x00, 0x00, //0x0000157a vmovupd %ymm0, $129(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0xa1, 0x00, 0x00, 0x00, //0x00001584 vmovupd %ymm0, $161(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0xc1, 0x00, 0x00, 0x00, //0x0000158e vmovupd %ymm0, $193(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0xe1, 0x00, 0x00, 0x00, //0x00001598 vmovupd %ymm0, $225(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0x01, 0x01, 0x00, 0x00, //0x000015a2 vmovupd %ymm0, $257(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0x21, 0x01, 0x00, 0x00, //0x000015ac vmovupd %ymm0, $289(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0x41, 0x01, 0x00, 0x00, //0x000015b6 vmovupd %ymm0, $321(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0x61, 0x01, 0x00, 0x00, //0x000015c0 vmovupd %ymm0, $353(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0x81, 0x01, 0x00, 0x00, //0x000015ca vmovupd %ymm0, $385(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0xa1, 0x01, 0x00, 0x00, //0x000015d4 vmovupd %ymm0, $417(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0xc1, 0x01, 0x00, 0x00, //0x000015de vmovupd %ymm0, $449(%r12,%rdi) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x3c, 0xe1, 0x01, 0x00, 0x00, //0x000015e8 vmovupd %ymm0, $481(%r12,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x000015f2 addq $512, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x000015f9 addq $4, %rsi + 0x0f, 0x85, 0x5b, 0xff, 0xff, 0xff, //0x000015fd jne LBB0_282 + //0x00001603 LBB0_283 + 0x48, 0x85, 0xdb, //0x00001603 testq %rbx, %rbx + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00001606 je LBB0_286 + 0x48, 0xf7, 0xdb, //0x0000160c negq %rbx + 0xc5, 0xf9, 0x57, 0xc0, //0x0000160f vxorpd %xmm0, %xmm0, %xmm0 + //0x00001613 LBB0_285 + 0x48, 0x89, 0xfe, //0x00001613 movq %rdi, %rsi + 0x48, 0x83, 0xce, 0x01, //0x00001616 orq $1, %rsi + 0xc4, 0xc1, 0x7d, 0x11, 0x04, 0x34, //0x0000161a vmovupd %ymm0, (%r12,%rsi) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x34, 0x20, //0x00001620 vmovupd %ymm0, $32(%r12,%rsi) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x34, 0x40, //0x00001627 vmovupd %ymm0, $64(%r12,%rsi) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x34, 0x60, //0x0000162e vmovupd %ymm0, $96(%r12,%rsi) + 0x48, 0x83, 0xef, 0x80, //0x00001635 subq $-128, %rdi + 0x48, 0xff, 0xc3, //0x00001639 incq %rbx + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x0000163c jne LBB0_285 + //0x00001642 LBB0_286 + 0x48, 0x39, 0xca, //0x00001642 cmpq %rcx, %rdx + 0x4c, 0x89, 0xc6, //0x00001645 movq %r8, %rsi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00001648 je LBB0_290 + 0x48, 0x83, 0xc9, 0x01, //0x0000164e orq $1, %rcx + //0x00001652 LBB0_288 + 0x48, 0x8b, 0x55, 0xa8, //0x00001652 movq $-88(%rbp), %rdx + //0x00001656 LBB0_289 + 0x41, 0xc6, 0x04, 0x0c, 0x00, //0x00001656 movb $0, (%r12,%rcx) + 0x48, 0xff, 0xc1, //0x0000165b incq %rcx + 0x48, 0x39, 0xca, //0x0000165e cmpq %rcx, %rdx + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00001661 jne LBB0_289 + //0x00001667 LBB0_290 + 0x8a, 0x16, //0x00001667 movb (%rsi), %dl + 0x31, 0xc9, //0x00001669 xorl %ecx, %ecx + 0x80, 0xfa, 0x2d, //0x0000166b cmpb $45, %dl + 0x0f, 0x94, 0xc1, //0x0000166e sete %cl + 0x45, 0x31, 0xc9, //0x00001671 xorl %r9d, %r9d + 0x48, 0x39, 0xc8, //0x00001674 cmpq %rcx, %rax + 0x0f, 0x8e, 0x9a, 0x00, 0x00, 0x00, //0x00001677 jle LBB0_303 + 0x88, 0x55, 0xa0, //0x0000167d movb %dl, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xb0, //0x00001680 movq %r11, $-80(%rbp) + 0xb2, 0x01, //0x00001684 movb $1, %dl + 0x45, 0x31, 0xdb, //0x00001686 xorl %r11d, %r11d + 0x45, 0x31, 0xf6, //0x00001689 xorl %r14d, %r14d + 0x31, 0xdb, //0x0000168c xorl %ebx, %ebx + 0x45, 0x31, 0xd2, //0x0000168e xorl %r10d, %r10d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00001691 jmp LBB0_295 + //0x00001696 LBB0_292 + 0x40, 0x80, 0xff, 0x30, //0x00001696 cmpb $48, %dil + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000169a movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x0000169f cmovnel %edx, %r14d + //0x000016a3 LBB0_293 + 0x44, 0x89, 0xdb, //0x000016a3 movl %r11d, %ebx + //0x000016a6 LBB0_294 + 0x48, 0xff, 0xc1, //0x000016a6 incq %rcx + 0x48, 0x39, 0xc1, //0x000016a9 cmpq %rax, %rcx + 0x0f, 0x9c, 0xc2, //0x000016ac setl %dl + 0x48, 0x39, 0xc8, //0x000016af cmpq %rcx, %rax + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x000016b2 je LBB0_304 + //0x000016b8 LBB0_295 + 0x41, 0x0f, 0xb6, 0x3c, 0x08, //0x000016b8 movzbl (%r8,%rcx), %edi + 0x8d, 0x77, 0xd0, //0x000016bd leal $-48(%rdi), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000016c0 cmpb $9, %sil + 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x000016c4 ja LBB0_299 + 0x85, 0xdb, //0x000016ca testl %ebx, %ebx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000016cc jne LBB0_301 + 0x40, 0x80, 0xff, 0x30, //0x000016d2 cmpb $48, %dil + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x000016d6 jne LBB0_301 + 0x41, 0xff, 0xc9, //0x000016dc decl %r9d + 0x31, 0xdb, //0x000016df xorl %ebx, %ebx + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x000016e1 jmp LBB0_294 + //0x000016e6 LBB0_299 + 0x40, 0x80, 0xff, 0x2e, //0x000016e6 cmpb $46, %dil + 0x0f, 0x85, 0x44, 0x00, 0x00, 0x00, //0x000016ea jne LBB0_305 + 0x41, 0x89, 0xd9, //0x000016f0 movl %ebx, %r9d + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000016f3 movl $1, %r10d + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x000016f9 jmp LBB0_294 + //0x000016fe LBB0_301 + 0x49, 0x63, 0xd3, //0x000016fe movslq %r11d, %rdx + 0x48, 0x39, 0x55, 0xa8, //0x00001701 cmpq %rdx, $-88(%rbp) + 0x0f, 0x86, 0x8b, 0xff, 0xff, 0xff, //0x00001705 jbe LBB0_292 + 0x41, 0x88, 0x3c, 0x14, //0x0000170b movb %dil, (%r12,%rdx) + 0x41, 0xff, 0xc3, //0x0000170f incl %r11d + 0xe9, 0x8c, 0xff, 0xff, 0xff, //0x00001712 jmp LBB0_293 + //0x00001717 LBB0_303 + 0x31, 0xff, //0x00001717 xorl %edi, %edi + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001719 movabsq $4503599627370495, %rcx + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00001723 jmp LBB0_327 + //0x00001728 LBB0_304 + 0x45, 0x85, 0xd2, //0x00001728 testl %r10d, %r10d + 0x45, 0x0f, 0x44, 0xcb, //0x0000172b cmovel %r11d, %r9d + 0xe9, 0xad, 0x00, 0x00, 0x00, //0x0000172f jmp LBB0_319 + //0x00001734 LBB0_305 + 0x45, 0x85, 0xd2, //0x00001734 testl %r10d, %r10d + 0x45, 0x0f, 0x44, 0xcb, //0x00001737 cmovel %r11d, %r9d + 0xf6, 0xc2, 0x01, //0x0000173b testb $1, %dl + 0x0f, 0x84, 0x9d, 0x00, 0x00, 0x00, //0x0000173e je LBB0_319 + 0x40, 0x80, 0xcf, 0x20, //0x00001744 orb $32, %dil + 0x40, 0x80, 0xff, 0x65, //0x00001748 cmpb $101, %dil + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x0000174c jne LBB0_319 + 0x48, 0x8d, 0x71, 0x01, //0x00001752 leaq $1(%rcx), %rsi + 0x89, 0xf2, //0x00001756 movl %esi, %edx + 0x41, 0x8a, 0x14, 0x10, //0x00001758 movb (%r8,%rdx), %dl + 0x80, 0xfa, 0x2b, //0x0000175c cmpb $43, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000175f je LBB0_310 + 0x80, 0xfa, 0x2d, //0x00001765 cmpb $45, %dl + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00001768 jne LBB0_312 + 0x83, 0xc1, 0x02, //0x0000176e addl $2, %ecx + 0xba, 0xff, 0xff, 0xff, 0xff, //0x00001771 movl $-1, %edx + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00001776 jmp LBB0_311 + //0x0000177b LBB0_310 + 0x83, 0xc1, 0x02, //0x0000177b addl $2, %ecx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000177e movl $1, %edx + //0x00001783 LBB0_311 + 0x89, 0xce, //0x00001783 movl %ecx, %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00001785 jmp LBB0_313 + //0x0000178a LBB0_312 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000178a movl $1, %edx + //0x0000178f LBB0_313 + 0x48, 0x63, 0xf6, //0x0000178f movslq %esi, %rsi + 0x31, 0xc9, //0x00001792 xorl %ecx, %ecx + 0x48, 0x39, 0xf0, //0x00001794 cmpq %rsi, %rax + 0x0f, 0x8e, 0x3b, 0x00, 0x00, 0x00, //0x00001797 jle LBB0_318 + 0x49, 0x01, 0xf7, //0x0000179d addq %rsi, %r15 + 0x31, 0xc9, //0x000017a0 xorl %ecx, %ecx + //0x000017a2 LBB0_315 + 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x000017a2 cmpl $9999, %ecx + 0x0f, 0x8f, 0x2a, 0x00, 0x00, 0x00, //0x000017a8 jg LBB0_318 + 0x48, 0x8b, 0x45, 0xc0, //0x000017ae movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x38, //0x000017b2 movzbl (%rax,%r15), %eax + 0x8d, 0x70, 0xd0, //0x000017b7 leal $-48(%rax), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000017ba cmpb $9, %sil + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000017be ja LBB0_318 + 0x8d, 0x0c, 0x89, //0x000017c4 leal (%rcx,%rcx,4), %ecx + 0x8d, 0x4c, 0x48, 0xd0, //0x000017c7 leal $-48(%rax,%rcx,2), %ecx + 0x49, 0xff, 0xc7, //0x000017cb incq %r15 + 0x4c, 0x39, 0x7d, 0xb0, //0x000017ce cmpq %r15, $-80(%rbp) + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x000017d2 jne LBB0_315 + //0x000017d8 LBB0_318 + 0x0f, 0xaf, 0xca, //0x000017d8 imull %edx, %ecx + 0x44, 0x01, 0xc9, //0x000017db addl %r9d, %ecx + 0x41, 0x89, 0xc9, //0x000017de movl %ecx, %r9d + //0x000017e1 LBB0_319 + 0x45, 0x85, 0xdb, //0x000017e1 testl %r11d, %r11d + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000017e4 movabsq $4503599627370495, %rcx + 0x4c, 0x8b, 0x7d, 0xa8, //0x000017ee movq $-88(%rbp), %r15 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000017f2 je LBB0_322 + 0x31, 0xff, //0x000017f8 xorl %edi, %edi + 0x41, 0x81, 0xf9, 0x36, 0x01, 0x00, 0x00, //0x000017fa cmpl $310, %r9d + 0x0f, 0x8e, 0x19, 0x00, 0x00, 0x00, //0x00001801 jle LBB0_323 + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001807 movabsq $9218868437227405312, %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00001811 jmp LBB0_325 + //0x00001816 LBB0_322 + 0x45, 0x31, 0xc9, //0x00001816 xorl %r9d, %r9d + 0x31, 0xff, //0x00001819 xorl %edi, %edi + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000181b jmp LBB0_325 + //0x00001820 LBB0_323 + 0x41, 0x81, 0xf9, 0xb6, 0xfe, 0xff, 0xff, //0x00001820 cmpl $-330, %r9d + 0x0f, 0x8d, 0x51, 0x00, 0x00, 0x00, //0x00001827 jge LBB0_331 + 0x45, 0x31, 0xc9, //0x0000182d xorl %r9d, %r9d + //0x00001830 LBB0_325 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00001830 movq $-80(%rbp), %r11 + //0x00001834 LBB0_326 + 0x8a, 0x55, 0xa0, //0x00001834 movb $-96(%rbp), %dl + //0x00001837 LBB0_327 + 0x48, 0x21, 0xcf, //0x00001837 andq %rcx, %rdi + 0x4c, 0x09, 0xcf, //0x0000183a orq %r9, %rdi + 0x48, 0x89, 0xfe, //0x0000183d movq %rdi, %rsi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001840 movabsq $-9223372036854775808, %r9 + 0x4c, 0x09, 0xce, //0x0000184a orq %r9, %rsi + 0x80, 0xfa, 0x2d, //0x0000184d cmpb $45, %dl + 0x48, 0x0f, 0x45, 0xf7, //0x00001850 cmovneq %rdi, %rsi + //0x00001854 LBB0_328 + 0x49, 0xff, 0xc9, //0x00001854 decq %r9 + 0x49, 0x21, 0xf1, //0x00001857 andq %rsi, %r9 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000185a movabsq $9218868437227405312, %rax + 0x49, 0x39, 0xc1, //0x00001864 cmpq %rax, %r9 + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00001867 jne LBB0_330 + 0x49, 0xc7, 0x45, 0x00, 0xf8, 0xff, 0xff, 0xff, //0x0000186d movq $-8, (%r13) + //0x00001875 LBB0_330 + 0x49, 0x89, 0x75, 0x08, //0x00001875 movq %rsi, $8(%r13) + 0xe9, 0x6b, 0xea, 0xff, 0xff, //0x00001879 jmp LBB0_38 + //0x0000187e LBB0_331 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, //0x0000187e movabsq $1152921504606846975, %r10 + 0x45, 0x85, 0xc9, //0x00001888 testl %r9d, %r9d + 0x4c, 0x89, 0x6d, 0xd0, //0x0000188b movq %r13, $-48(%rbp) + 0x0f, 0x8e, 0x76, 0x07, 0x00, 0x00, //0x0000188f jle LBB0_447 + 0x31, 0xff, //0x00001895 xorl %edi, %edi + 0x44, 0x89, 0xd8, //0x00001897 movl %r11d, %eax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x0000189a jmp LBB0_335 + //0x0000189f LBB0_333 + 0x89, 0xc6, //0x0000189f movl %eax, %esi + //0x000018a1 LBB0_334 + 0x48, 0x8b, 0x7d, 0xc0, //0x000018a1 movq $-64(%rbp), %rdi + 0x03, 0x7d, 0xb8, //0x000018a5 addl $-72(%rbp), %edi + 0x89, 0xf0, //0x000018a8 movl %esi, %eax + 0x45, 0x85, 0xc9, //0x000018aa testl %r9d, %r9d + 0x0f, 0x8e, 0x5c, 0x08, 0x00, 0x00, //0x000018ad jle LBB0_457 + //0x000018b3 LBB0_335 + 0xb9, 0x1b, 0x00, 0x00, 0x00, //0x000018b3 movl $27, %ecx + 0x41, 0x83, 0xf9, 0x08, //0x000018b8 cmpl $8, %r9d + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000018bc jg LBB0_337 + 0x44, 0x89, 0xc9, //0x000018c2 movl %r9d, %ecx + 0x48, 0x8d, 0x15, 0x44, 0x49, 0x00, 0x00, //0x000018c5 leaq $18756(%rip), %rdx /* _POW_TAB+0(%rip) */ + 0x8b, 0x0c, 0x8a, //0x000018cc movl (%rdx,%rcx,4), %ecx + //0x000018cf LBB0_337 + 0x48, 0x89, 0x7d, 0xc0, //0x000018cf movq %rdi, $-64(%rbp) + 0x85, 0xc0, //0x000018d3 testl %eax, %eax + 0x89, 0x4d, 0xb8, //0x000018d5 movl %ecx, $-72(%rbp) + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x000018d8 je LBB0_333 + 0x41, 0x89, 0xc8, //0x000018de movl %ecx, %r8d + 0x41, 0xf7, 0xd8, //0x000018e1 negl %r8d + 0x85, 0xc9, //0x000018e4 testl %ecx, %ecx + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x000018e6 je LBB0_333 + 0x0f, 0x88, 0x90, 0x01, 0x00, 0x00, //0x000018ec js LBB0_364 + //0x000018f2 LBB0_340 + 0x41, 0x83, 0xf8, 0xc3, //0x000018f2 cmpl $-61, %r8d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x000018f6 jle LBB0_344 + 0xe9, 0x91, 0x03, 0x00, 0x00, //0x000018fc jmp LBB0_394 + //0x00001901 LBB0_341 + 0xff, 0xc8, //0x00001901 decl %eax + 0x41, 0x89, 0xc3, //0x00001903 movl %eax, %r11d + //0x00001906 LBB0_342 + 0x45, 0x85, 0xdb, //0x00001906 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00001909 cmovel %r11d, %r9d + //0x0000190d LBB0_343 + 0x44, 0x8d, 0x41, 0x3c, //0x0000190d leal $60(%rcx), %r8d + 0x44, 0x89, 0xd8, //0x00001911 movl %r11d, %eax + 0x83, 0xf9, 0x88, //0x00001914 cmpl $-120, %ecx + 0x0f, 0x8d, 0x66, 0x03, 0x00, 0x00, //0x00001917 jge LBB0_393 + //0x0000191d LBB0_344 + 0x44, 0x89, 0xc1, //0x0000191d movl %r8d, %ecx + 0x48, 0x63, 0xf8, //0x00001920 movslq %eax, %rdi + 0x31, 0xf6, //0x00001923 xorl %esi, %esi + 0x31, 0xd2, //0x00001925 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001927 .p2align 4, 0x90 + //0x00001930 LBB0_345 + 0x48, 0x39, 0xfe, //0x00001930 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00001933 jge LBB0_347 + 0x48, 0x8d, 0x14, 0x92, //0x00001939 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x0000193d movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00001942 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00001947 incq %rsi + 0x49, 0x8d, 0x5a, 0x01, //0x0000194a leaq $1(%r10), %rbx + 0x48, 0x39, 0xda, //0x0000194e cmpq %rbx, %rdx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001951 jb LBB0_345 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001957 jmp LBB0_349 + //0x0000195c LBB0_347 + 0x48, 0x85, 0xd2, //0x0000195c testq %rdx, %rdx + 0x0f, 0x84, 0x15, 0x01, 0x00, 0x00, //0x0000195f je LBB0_362 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001965 .p2align 4, 0x90 + //0x00001970 LBB0_348 + 0x48, 0x01, 0xd2, //0x00001970 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001973 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00001977 incl %esi + 0x49, 0x8d, 0x7a, 0x01, //0x00001979 leaq $1(%r10), %rdi + 0x48, 0x39, 0xfa, //0x0000197d cmpq %rdi, %rdx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00001980 jb LBB0_348 + //0x00001986 LBB0_349 + 0x41, 0x29, 0xf1, //0x00001986 subl %esi, %r9d + 0x31, 0xff, //0x00001989 xorl %edi, %edi + 0x39, 0xc6, //0x0000198b cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x0000198d jge LBB0_354 + 0x48, 0x63, 0xc6, //0x00001993 movslq %esi, %rax + 0x49, 0x63, 0xf3, //0x00001996 movslq %r11d, %rsi + 0x49, 0x8d, 0x3c, 0x04, //0x00001999 leaq (%r12,%rax), %rdi + 0x45, 0x31, 0xdb, //0x0000199d xorl %r11d, %r11d + //0x000019a0 .p2align 4, 0x90 + //0x000019a0 LBB0_351 + 0x48, 0x89, 0xd3, //0x000019a0 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x000019a3 shrq $60, %rbx + 0x4c, 0x21, 0xd2, //0x000019a7 andq %r10, %rdx + 0x80, 0xcb, 0x30, //0x000019aa orb $48, %bl + 0x43, 0x88, 0x1c, 0x1c, //0x000019ad movb %bl, (%r12,%r11) + 0x48, 0x8d, 0x14, 0x92, //0x000019b1 leaq (%rdx,%rdx,4), %rdx + 0x4a, 0x0f, 0xbe, 0x1c, 0x1f, //0x000019b5 movsbq (%rdi,%r11), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x000019ba leaq $-48(%rbx,%rdx,2), %rdx + 0x4a, 0x8d, 0x5c, 0x18, 0x01, //0x000019bf leaq $1(%rax,%r11), %rbx + 0x49, 0xff, 0xc3, //0x000019c4 incq %r11 + 0x48, 0x39, 0xf3, //0x000019c7 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x000019ca jl LBB0_351 + 0x48, 0x85, 0xd2, //0x000019d0 testq %rdx, %rdx + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x000019d3 je LBB0_358 + 0x44, 0x89, 0xdf, //0x000019d9 movl %r11d, %edi + //0x000019dc LBB0_354 + 0x41, 0x89, 0xfb, //0x000019dc movl %edi, %r11d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000019df jmp LBB0_356 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019e4 .p2align 4, 0x90 + //0x000019f0 LBB0_355 + 0x48, 0x85, 0xc0, //0x000019f0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000019f3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000019f8 cmovnel %eax, %r14d + 0x48, 0x01, 0xd2, //0x000019fc addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x000019ff leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001a03 testq %rdx, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00001a06 je LBB0_358 + //0x00001a0c LBB0_356 + 0x48, 0x89, 0xd0, //0x00001a0c movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x3c, //0x00001a0f shrq $60, %rax + 0x4c, 0x21, 0xd2, //0x00001a13 andq %r10, %rdx + 0x49, 0x63, 0xf3, //0x00001a16 movslq %r11d, %rsi + 0x49, 0x39, 0xf7, //0x00001a19 cmpq %rsi, %r15 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x00001a1c jbe LBB0_355 + 0x0c, 0x30, //0x00001a22 orb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001a24 movb %al, (%r12,%rsi) + 0xff, 0xc6, //0x00001a28 incl %esi + 0x41, 0x89, 0xf3, //0x00001a2a movl %esi, %r11d + 0x48, 0x01, 0xd2, //0x00001a2d addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001a30 leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001a34 testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00001a37 jne LBB0_356 + //0x00001a3d LBB0_358 + 0x41, 0xff, 0xc1, //0x00001a3d incl %r9d + 0x45, 0x85, 0xdb, //0x00001a40 testl %r11d, %r11d + 0x0f, 0x8e, 0xbd, 0xfe, 0xff, 0xff, //0x00001a43 jle LBB0_342 + 0x44, 0x89, 0xd8, //0x00001a49 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001a4c cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0xb5, 0xfe, 0xff, 0xff, //0x00001a52 jne LBB0_343 + //0x00001a58 LBB0_360 + 0x48, 0x83, 0xf8, 0x01, //0x00001a58 cmpq $1, %rax + 0x0f, 0x8e, 0x9f, 0xfe, 0xff, 0xff, //0x00001a5c jle LBB0_341 + 0x4c, 0x8d, 0x58, 0xff, //0x00001a62 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001a66 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001a6c movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001a6f je LBB0_360 + 0xe9, 0x93, 0xfe, 0xff, 0xff, //0x00001a75 jmp LBB0_343 + //0x00001a7a LBB0_362 + 0x45, 0x31, 0xdb, //0x00001a7a xorl %r11d, %r11d + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00001a7d jmp LBB0_343 + //0x00001a82 LBB0_364 + 0x83, 0x7d, 0xb8, 0xc3, //0x00001a82 cmpl $-61, $-72(%rbp) + 0x0f, 0x8f, 0x67, 0x03, 0x00, 0x00, //0x00001a86 jg LBB0_415 + 0x4c, 0x8d, 0x2d, 0xad, 0x47, 0x00, 0x00, //0x00001a8c leaq $18349(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00001a93 jmp LBB0_369 + //0x00001a98 LBB0_366 + 0xff, 0xc8, //0x00001a98 decl %eax + 0x41, 0x89, 0xc3, //0x00001a9a movl %eax, %r11d + //0x00001a9d LBB0_367 + 0x45, 0x85, 0xdb, //0x00001a9d testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00001aa0 cmovel %r11d, %r9d + //0x00001aa4 LBB0_368 + 0x48, 0x8b, 0x4d, 0xc8, //0x00001aa4 movq $-56(%rbp), %rcx + 0x44, 0x8d, 0x41, 0xc4, //0x00001aa8 leal $-60(%rcx), %r8d + 0x44, 0x89, 0xd8, //0x00001aac movl %r11d, %eax + 0x83, 0xf9, 0x78, //0x00001aaf cmpl $120, %ecx + 0x0f, 0x8e, 0x28, 0x03, 0x00, 0x00, //0x00001ab2 jle LBB0_414 + //0x00001ab8 LBB0_369 + 0x4c, 0x89, 0x45, 0xc8, //0x00001ab8 movq %r8, $-56(%rbp) + 0x48, 0x63, 0xd8, //0x00001abc movslq %eax, %rbx + 0x85, 0xdb, //0x00001abf testl %ebx, %ebx + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00001ac1 je LBB0_375 + 0xb2, 0x38, //0x00001ac7 movb $56, %dl + 0x31, 0xc9, //0x00001ac9 xorl %ecx, %ecx + //0x00001acb LBB0_371 + 0x41, 0xb8, 0x13, 0x00, 0x00, 0x00, //0x00001acb movl $19, %r8d + 0x48, 0x83, 0xf9, 0x2a, //0x00001ad1 cmpq $42, %rcx + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x00001ad5 je LBB0_376 + 0x41, 0x38, 0x14, 0x0c, //0x00001adb cmpb %dl, (%r12,%rcx) + 0x0f, 0x85, 0x93, 0x01, 0x00, 0x00, //0x00001adf jne LBB0_392 + 0x42, 0x0f, 0xb6, 0x94, 0x29, 0x65, 0x18, 0x00, 0x00, //0x00001ae5 movzbl $6245(%rcx,%r13), %edx + 0x48, 0xff, 0xc1, //0x00001aee incq %rcx + 0x48, 0x39, 0xcb, //0x00001af1 cmpq %rcx, %rbx + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00001af4 jne LBB0_371 + 0x84, 0xd2, //0x00001afa testb %dl, %dl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001afc je LBB0_376 + //0x00001b02 LBB0_375 + 0x41, 0xb8, 0x12, 0x00, 0x00, 0x00, //0x00001b02 movl $18, %r8d + //0x00001b08 LBB0_376 + 0x85, 0xc0, //0x00001b08 testl %eax, %eax + 0x0f, 0x8e, 0x1e, 0x01, 0x00, 0x00, //0x00001b0a jle LBB0_388 + 0x4d, 0x89, 0xcd, //0x00001b10 movq %r9, %r13 + 0x44, 0x01, 0xc0, //0x00001b13 addl %r8d, %eax + 0x48, 0x98, //0x00001b16 cltq + 0x48, 0x89, 0xc7, //0x00001b18 movq %rax, %rdi + 0x48, 0xc1, 0xe7, 0x20, //0x00001b1b shlq $32, %rdi + 0x48, 0xff, 0xc8, //0x00001b1f decq %rax + 0x48, 0xff, 0xc3, //0x00001b22 incq %rbx + 0x31, 0xc9, //0x00001b25 xorl %ecx, %ecx + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00001b27 jmp LBB0_380 + 0x90, 0x90, 0x90, 0x90, //0x00001b2c .p2align 4, 0x90 + //0x00001b30 LBB0_378 + 0x48, 0x85, 0xc0, //0x00001b30 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001b33 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001b38 cmovnel %eax, %r14d + //0x00001b3c LBB0_379 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001b3c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc7, //0x00001b46 addq %rax, %rdi + 0x49, 0x8d, 0x41, 0xff, //0x00001b49 leaq $-1(%r9), %rax + 0x48, 0xff, 0xcb, //0x00001b4d decq %rbx + 0x48, 0x83, 0xfb, 0x01, //0x00001b50 cmpq $1, %rbx + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00001b54 jle LBB0_382 + //0x00001b5a LBB0_380 + 0x49, 0x89, 0xc1, //0x00001b5a movq %rax, %r9 + 0x41, 0x0f, 0xb6, 0x74, 0x1c, 0xfe, //0x00001b5d movzbl $-2(%r12,%rbx), %esi + 0x48, 0xc1, 0xe6, 0x3c, //0x00001b63 shlq $60, %rsi + 0x48, 0x01, 0xce, //0x00001b67 addq %rcx, %rsi + 0x48, 0x89, 0xf0, //0x00001b6a movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001b6d movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00001b77 mulq %rcx + 0x48, 0x89, 0xd1, //0x00001b7a movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00001b7d shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00001b81 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001b85 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00001b89 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x00001b8c subq %rdx, %rax + 0x4d, 0x39, 0xf9, //0x00001b8f cmpq %r15, %r9 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x00001b92 jae LBB0_378 + 0x04, 0x30, //0x00001b98 addb $48, %al + 0x43, 0x88, 0x04, 0x0c, //0x00001b9a movb %al, (%r12,%r9) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00001b9e jmp LBB0_379 + //0x00001ba3 LBB0_382 + 0x48, 0x83, 0xfe, 0x0a, //0x00001ba3 cmpq $10, %rsi + 0x0f, 0x83, 0x0f, 0x00, 0x00, 0x00, //0x00001ba7 jae LBB0_384 + 0x4d, 0x89, 0xe9, //0x00001bad movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x89, 0x46, 0x00, 0x00, //0x00001bb0 leaq $18057(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00001bb7 jmp LBB0_388 + //0x00001bbc LBB0_384 + 0x49, 0x63, 0xf1, //0x00001bbc movslq %r9d, %rsi + 0x48, 0xff, 0xce, //0x00001bbf decq %rsi + 0x4d, 0x89, 0xe9, //0x00001bc2 movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x74, 0x46, 0x00, 0x00, //0x00001bc5 leaq $18036(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00001bcc jmp LBB0_386 + //0x00001bd1 LBB0_385 + 0x48, 0x85, 0xc0, //0x00001bd1 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001bd4 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001bd9 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x00001bdd decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001be0 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001be4 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001be7 jbe LBB0_388 + //0x00001bed LBB0_386 + 0x48, 0x89, 0xc8, //0x00001bed movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001bf0 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001bfa mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00001bfd shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001c01 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001c05 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00001c09 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x00001c0c subq %rdi, %rax + 0x4c, 0x39, 0xfe, //0x00001c0f cmpq %r15, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001c12 jae LBB0_385 + 0x04, 0x30, //0x00001c18 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001c1a movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00001c1e decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001c21 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001c25 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001c28 ja LBB0_386 + //0x00001c2e LBB0_388 + 0x45, 0x01, 0xc3, //0x00001c2e addl %r8d, %r11d + 0x4d, 0x63, 0xdb, //0x00001c31 movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00001c34 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00001c37 cmovbel %r15d, %r11d + 0x45, 0x01, 0xc1, //0x00001c3b addl %r8d, %r9d + 0x45, 0x85, 0xdb, //0x00001c3e testl %r11d, %r11d + 0x0f, 0x8e, 0x56, 0xfe, 0xff, 0xff, //0x00001c41 jle LBB0_367 + 0x44, 0x89, 0xd8, //0x00001c47 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001c4a cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x4e, 0xfe, 0xff, 0xff, //0x00001c50 jne LBB0_368 + //0x00001c56 LBB0_390 + 0x48, 0x83, 0xf8, 0x01, //0x00001c56 cmpq $1, %rax + 0x0f, 0x8e, 0x38, 0xfe, 0xff, 0xff, //0x00001c5a jle LBB0_366 + 0x4c, 0x8d, 0x58, 0xff, //0x00001c60 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001c64 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001c6a movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001c6d je LBB0_390 + 0xe9, 0x2c, 0xfe, 0xff, 0xff, //0x00001c73 jmp LBB0_368 + //0x00001c78 LBB0_392 + 0x0f, 0x8c, 0x84, 0xfe, 0xff, 0xff, //0x00001c78 jl LBB0_375 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00001c7e jmp LBB0_376 + //0x00001c83 LBB0_393 + 0x44, 0x89, 0xd8, //0x00001c83 movl %r11d, %eax + 0x44, 0x89, 0xde, //0x00001c86 movl %r11d, %esi + 0x45, 0x85, 0xc0, //0x00001c89 testl %r8d, %r8d + 0x0f, 0x84, 0x0f, 0xfc, 0xff, 0xff, //0x00001c8c je LBB0_334 + //0x00001c92 LBB0_394 + 0x41, 0xf7, 0xd8, //0x00001c92 negl %r8d + 0x48, 0x63, 0xf8, //0x00001c95 movslq %eax, %rdi + 0x31, 0xf6, //0x00001c98 xorl %esi, %esi + 0x31, 0xd2, //0x00001c9a xorl %edx, %edx + //0x00001c9c LBB0_395 + 0x48, 0x39, 0xfe, //0x00001c9c cmpq %rdi, %rsi + 0x0f, 0x8d, 0x12, 0x01, 0x00, 0x00, //0x00001c9f jge LBB0_411 + 0x48, 0x8d, 0x0c, 0x92, //0x00001ca5 leaq (%rdx,%rdx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x34, //0x00001ca9 movsbq (%r12,%rsi), %rdx + 0x48, 0x8d, 0x54, 0x4a, 0xd0, //0x00001cae leaq $-48(%rdx,%rcx,2), %rdx + 0x48, 0xff, 0xc6, //0x00001cb3 incq %rsi + 0x48, 0x89, 0xd3, //0x00001cb6 movq %rdx, %rbx + 0x44, 0x89, 0xc1, //0x00001cb9 movl %r8d, %ecx + 0x48, 0xd3, 0xeb, //0x00001cbc shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001cbf testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001cc2 je LBB0_395 + //0x00001cc8 LBB0_397 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001cc8 movq $-1, %rbx + 0x44, 0x89, 0xc1, //0x00001ccf movl %r8d, %ecx + 0x48, 0xd3, 0xe3, //0x00001cd2 shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x00001cd5 notq %rbx + 0x31, 0xff, //0x00001cd8 xorl %edi, %edi + 0x39, 0xc6, //0x00001cda cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00001cdc jge LBB0_401 + 0x4c, 0x89, 0x4d, 0xc8, //0x00001ce2 movq %r9, $-56(%rbp) + 0x4c, 0x63, 0xee, //0x00001ce6 movslq %esi, %r13 + 0x4d, 0x63, 0xcb, //0x00001ce9 movslq %r11d, %r9 + 0x4f, 0x8d, 0x1c, 0x2c, //0x00001cec leaq (%r12,%r13), %r11 + 0x31, 0xff, //0x00001cf0 xorl %edi, %edi + //0x00001cf2 LBB0_399 + 0x48, 0x89, 0xd0, //0x00001cf2 movq %rdx, %rax + 0x44, 0x89, 0xc1, //0x00001cf5 movl %r8d, %ecx + 0x48, 0xd3, 0xe8, //0x00001cf8 shrq %cl, %rax + 0x48, 0x21, 0xda, //0x00001cfb andq %rbx, %rdx + 0x04, 0x30, //0x00001cfe addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00001d00 movb %al, (%r12,%rdi) + 0x48, 0x8d, 0x04, 0x92, //0x00001d04 leaq (%rdx,%rdx,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x3b, //0x00001d08 movsbq (%r11,%rdi), %rcx + 0x48, 0x8d, 0x54, 0x41, 0xd0, //0x00001d0d leaq $-48(%rcx,%rax,2), %rdx + 0x49, 0x8d, 0x44, 0x3d, 0x01, //0x00001d12 leaq $1(%r13,%rdi), %rax + 0x48, 0xff, 0xc7, //0x00001d17 incq %rdi + 0x4c, 0x39, 0xc8, //0x00001d1a cmpq %r9, %rax + 0x0f, 0x8c, 0xcf, 0xff, 0xff, 0xff, //0x00001d1d jl LBB0_399 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001d23 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00001d27 movq $-56(%rbp), %r9 + //0x00001d2b LBB0_401 + 0x41, 0x29, 0xf1, //0x00001d2b subl %esi, %r9d + 0x41, 0x89, 0xfb, //0x00001d2e movl %edi, %r11d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001d31 jmp LBB0_404 + //0x00001d36 LBB0_402 + 0x48, 0x85, 0xc0, //0x00001d36 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001d39 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001d3e cmovnel %eax, %r14d + //0x00001d42 LBB0_403 + 0x48, 0x01, 0xd2, //0x00001d42 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001d45 leaq (%rdx,%rdx,4), %rdx + //0x00001d49 LBB0_404 + 0x48, 0x85, 0xd2, //0x00001d49 testq %rdx, %rdx + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00001d4c je LBB0_407 + 0x48, 0x89, 0xd0, //0x00001d52 movq %rdx, %rax + 0x44, 0x89, 0xc1, //0x00001d55 movl %r8d, %ecx + 0x48, 0xd3, 0xe8, //0x00001d58 shrq %cl, %rax + 0x48, 0x21, 0xda, //0x00001d5b andq %rbx, %rdx + 0x49, 0x63, 0xcb, //0x00001d5e movslq %r11d, %rcx + 0x49, 0x39, 0xcf, //0x00001d61 cmpq %rcx, %r15 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00001d64 jbe LBB0_402 + 0x04, 0x30, //0x00001d6a addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001d6c movb %al, (%r12,%rcx) + 0xff, 0xc1, //0x00001d70 incl %ecx + 0x41, 0x89, 0xcb, //0x00001d72 movl %ecx, %r11d + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x00001d75 jmp LBB0_403 + //0x00001d7a LBB0_407 + 0x41, 0xff, 0xc1, //0x00001d7a incl %r9d + 0x45, 0x85, 0xdb, //0x00001d7d testl %r11d, %r11d + 0x0f, 0x8e, 0x49, 0x02, 0x00, 0x00, //0x00001d80 jle LBB0_441 + 0x44, 0x89, 0xd8, //0x00001d86 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001d89 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x00001d8f jne LBB0_442 + //0x00001d95 LBB0_409 + 0x48, 0x83, 0xf8, 0x01, //0x00001d95 cmpq $1, %rax + 0x0f, 0x8e, 0x2b, 0x02, 0x00, 0x00, //0x00001d99 jle LBB0_440 + 0x4c, 0x8d, 0x58, 0xff, //0x00001d9f leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001da3 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001da9 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001dac je LBB0_409 + 0xe9, 0x21, 0x02, 0x00, 0x00, //0x00001db2 jmp LBB0_442 + //0x00001db7 LBB0_411 + 0x48, 0x85, 0xd2, //0x00001db7 testq %rdx, %rdx + 0x0f, 0x84, 0x3e, 0x01, 0x00, 0x00, //0x00001dba je LBB0_430 + //0x00001dc0 LBB0_412 + 0x48, 0x89, 0xd7, //0x00001dc0 movq %rdx, %rdi + 0x44, 0x89, 0xc1, //0x00001dc3 movl %r8d, %ecx + 0x48, 0xd3, 0xef, //0x00001dc6 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00001dc9 testq %rdi, %rdi + 0x0f, 0x85, 0xf6, 0xfe, 0xff, 0xff, //0x00001dcc jne LBB0_397 + 0x48, 0x01, 0xd2, //0x00001dd2 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001dd5 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00001dd9 incl %esi + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00001ddb jmp LBB0_412 + //0x00001de0 LBB0_414 + 0x44, 0x89, 0xd8, //0x00001de0 movl %r11d, %eax + 0x44, 0x89, 0xde, //0x00001de3 movl %r11d, %esi + 0x45, 0x85, 0xc0, //0x00001de6 testl %r8d, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001de9 movq $-48(%rbp), %r13 + 0x0f, 0x84, 0xae, 0xfa, 0xff, 0xff, //0x00001ded je LBB0_334 + //0x00001df3 LBB0_415 + 0x44, 0x89, 0xc1, //0x00001df3 movl %r8d, %ecx + 0x48, 0x6b, 0xf1, 0x68, //0x00001df6 imulq $104, %rcx, %rsi + 0x48, 0x8d, 0x3d, 0x3f, 0x44, 0x00, 0x00, //0x00001dfa leaq $17471(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3e, //0x00001e01 movl (%rsi,%rdi), %ebx + 0x4c, 0x63, 0xe8, //0x00001e04 movslq %eax, %r13 + 0x8a, 0x54, 0x3e, 0x04, //0x00001e07 movb $4(%rsi,%rdi), %dl + 0x45, 0x85, 0xed, //0x00001e0b testl %r13d, %r13d + 0x4c, 0x89, 0x4d, 0xc8, //0x00001e0e movq %r9, $-56(%rbp) + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001e12 je LBB0_420 + 0x48, 0x8d, 0x74, 0x3e, 0x05, //0x00001e18 leaq $5(%rsi,%rdi), %rsi + 0x31, 0xff, //0x00001e1d xorl %edi, %edi + //0x00001e1f LBB0_417 + 0x84, 0xd2, //0x00001e1f testb %dl, %dl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00001e21 je LBB0_422 + 0x41, 0x38, 0x14, 0x3c, //0x00001e27 cmpb %dl, (%r12,%rdi) + 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x00001e2b jne LBB0_443 + 0x0f, 0xb6, 0x14, 0x3e, //0x00001e31 movzbl (%rsi,%rdi), %edx + 0x48, 0xff, 0xc7, //0x00001e35 incq %rdi + 0x49, 0x39, 0xfd, //0x00001e38 cmpq %rdi, %r13 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00001e3b jne LBB0_417 + //0x00001e41 LBB0_420 + 0x84, 0xd2, //0x00001e41 testb %dl, %dl + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x00001e43 je LBB0_422 + //0x00001e49 LBB0_421 + 0xff, 0xcb, //0x00001e49 decl %ebx + //0x00001e4b LBB0_422 + 0x85, 0xc0, //0x00001e4b testl %eax, %eax + 0x0f, 0x8e, 0xb5, 0x00, 0x00, 0x00, //0x00001e4d jle LBB0_431 + 0x89, 0x5d, 0x98, //0x00001e53 movl %ebx, $-104(%rbp) + 0x01, 0xd8, //0x00001e56 addl %ebx, %eax + 0x48, 0x98, //0x00001e58 cltq + 0x49, 0x89, 0xc1, //0x00001e5a movq %rax, %r9 + 0x49, 0xc1, 0xe1, 0x20, //0x00001e5d shlq $32, %r9 + 0x48, 0xff, 0xc8, //0x00001e61 decq %rax + 0x49, 0xff, 0xc5, //0x00001e64 incq %r13 + 0x31, 0xf6, //0x00001e67 xorl %esi, %esi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001e69 jmp LBB0_426 + //0x00001e6e LBB0_424 + 0x48, 0x85, 0xc0, //0x00001e6e testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001e71 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001e76 cmovnel %eax, %r14d + //0x00001e7a LBB0_425 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001e7a movabsq $-4294967296, %rax + 0x49, 0x01, 0xc1, //0x00001e84 addq %rax, %r9 + 0x48, 0x8d, 0x47, 0xff, //0x00001e87 leaq $-1(%rdi), %rax + 0x49, 0xff, 0xcd, //0x00001e8b decq %r13 + 0x49, 0x83, 0xfd, 0x01, //0x00001e8e cmpq $1, %r13 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00001e92 jle LBB0_428 + //0x00001e98 LBB0_426 + 0x48, 0x89, 0xc7, //0x00001e98 movq %rax, %rdi + 0x4b, 0x0f, 0xbe, 0x5c, 0x2c, 0xfe, //0x00001e9b movsbq $-2(%r12,%r13), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00001ea1 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00001ea5 shlq %cl, %rbx + 0x48, 0x01, 0xf3, //0x00001ea8 addq %rsi, %rbx + 0x48, 0x89, 0xd8, //0x00001eab movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001eae movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001eb8 mulq %rdx + 0x48, 0x89, 0xd6, //0x00001ebb movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x03, //0x00001ebe shrq $3, %rsi + 0x48, 0x8d, 0x04, 0x36, //0x00001ec2 leaq (%rsi,%rsi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001ec6 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00001eca movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00001ecd subq %rdx, %rax + 0x4c, 0x39, 0xff, //0x00001ed0 cmpq %r15, %rdi + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00001ed3 jae LBB0_424 + 0x04, 0x30, //0x00001ed9 addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00001edb movb %al, (%r12,%rdi) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00001edf jmp LBB0_425 + //0x00001ee4 LBB0_428 + 0x48, 0x83, 0xfb, 0x0a, //0x00001ee4 cmpq $10, %rbx + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001ee8 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00001eec movq $-56(%rbp), %r9 + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00001ef0 jae LBB0_432 + 0x8b, 0x5d, 0x98, //0x00001ef6 movl $-104(%rbp), %ebx + 0xe9, 0x82, 0x00, 0x00, 0x00, //0x00001ef9 jmp LBB0_436 + //0x00001efe LBB0_430 + 0x45, 0x31, 0xdb, //0x00001efe xorl %r11d, %r11d + 0x31, 0xf6, //0x00001f01 xorl %esi, %esi + 0xe9, 0x99, 0xf9, 0xff, 0xff, //0x00001f03 jmp LBB0_334 + //0x00001f08 LBB0_431 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001f08 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00001f0c movq $-56(%rbp), %r9 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x00001f10 jmp LBB0_436 + //0x00001f15 LBB0_432 + 0x48, 0x63, 0xcf, //0x00001f15 movslq %edi, %rcx + 0x48, 0xff, 0xc9, //0x00001f18 decq %rcx + 0x8b, 0x5d, 0x98, //0x00001f1b movl $-104(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00001f1e jmp LBB0_434 + //0x00001f23 LBB0_433 + 0x48, 0x85, 0xc0, //0x00001f23 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001f26 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001f2b cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x00001f2f decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x00001f32 cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x00001f36 movq %rdx, %rsi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001f39 jbe LBB0_436 + //0x00001f3f LBB0_434 + 0x48, 0x89, 0xf0, //0x00001f3f movq %rsi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001f42 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001f4c mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00001f4f shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001f53 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001f57 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xf0, //0x00001f5b movq %rsi, %rax + 0x48, 0x29, 0xf8, //0x00001f5e subq %rdi, %rax + 0x4c, 0x39, 0xf9, //0x00001f61 cmpq %r15, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001f64 jae LBB0_433 + 0x04, 0x30, //0x00001f6a addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001f6c movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x00001f70 decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x00001f73 cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x00001f77 movq %rdx, %rsi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001f7a ja LBB0_434 + //0x00001f80 LBB0_436 + 0x41, 0x01, 0xdb, //0x00001f80 addl %ebx, %r11d + 0x4d, 0x63, 0xdb, //0x00001f83 movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00001f86 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00001f89 cmovbel %r15d, %r11d + 0x41, 0x01, 0xd9, //0x00001f8d addl %ebx, %r9d + 0x45, 0x85, 0xdb, //0x00001f90 testl %r11d, %r11d + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00001f93 jle LBB0_445 + 0x44, 0x89, 0xd8, //0x00001f99 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001f9c cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00001fa2 jne LBB0_446 + //0x00001fa8 LBB0_438 + 0x48, 0x83, 0xf8, 0x01, //0x00001fa8 cmpq $1, %rax + 0x0f, 0x8e, 0x39, 0x00, 0x00, 0x00, //0x00001fac jle LBB0_444 + 0x4c, 0x8d, 0x58, 0xff, //0x00001fb2 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001fb6 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001fbc movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001fbf je LBB0_438 + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00001fc5 jmp LBB0_446 + //0x00001fca LBB0_440 + 0xff, 0xc8, //0x00001fca decl %eax + 0x41, 0x89, 0xc3, //0x00001fcc movl %eax, %r11d + //0x00001fcf LBB0_441 + 0x45, 0x85, 0xdb, //0x00001fcf testl %r11d, %r11d + 0x0f, 0x84, 0x17, 0x01, 0x00, 0x00, //0x00001fd2 je LBB0_454 + //0x00001fd8 LBB0_442 + 0x44, 0x89, 0xde, //0x00001fd8 movl %r11d, %esi + 0xe9, 0xc1, 0xf8, 0xff, 0xff, //0x00001fdb jmp LBB0_334 + //0x00001fe0 LBB0_443 + 0x0f, 0x8c, 0x63, 0xfe, 0xff, 0xff, //0x00001fe0 jl LBB0_421 + 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00001fe6 jmp LBB0_422 + //0x00001feb LBB0_444 + 0xff, 0xc8, //0x00001feb decl %eax + 0x41, 0x89, 0xc3, //0x00001fed movl %eax, %r11d + //0x00001ff0 LBB0_445 + 0x45, 0x85, 0xdb, //0x00001ff0 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00001ff3 cmovel %r11d, %r9d + //0x00001ff7 LBB0_446 + 0x44, 0x89, 0xd8, //0x00001ff7 movl %r11d, %eax + 0x44, 0x89, 0xde, //0x00001ffa movl %r11d, %esi + 0x45, 0x85, 0xc0, //0x00001ffd testl %r8d, %r8d + 0x0f, 0x89, 0x9b, 0xf8, 0xff, 0xff, //0x00002000 jns LBB0_334 + 0xe9, 0xe7, 0xf8, 0xff, 0xff, //0x00002006 jmp LBB0_340 + //0x0000200b LBB0_447 + 0x44, 0x89, 0xde, //0x0000200b movl %r11d, %esi + 0xe9, 0xfc, 0x00, 0x00, 0x00, //0x0000200e jmp LBB0_457 + //0x00002013 LBB0_628 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x00002013 movabsq $126100789566373888, %rdi + //0x0000201d LBB0_629 + 0x48, 0x89, 0xd8, //0x0000201d movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00002020 shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00002024 leal $9(%rax), %ecx + 0x48, 0xd3, 0xeb, //0x00002027 shrq %cl, %rbx + 0x48, 0x0b, 0x55, 0xb8, //0x0000202a orq $-72(%rbp), %rdx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000202e jne LBB0_631 + 0x89, 0xd9, //0x00002034 movl %ebx, %ecx + 0x83, 0xe1, 0x03, //0x00002036 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00002039 cmpl $1, %ecx + 0x0f, 0x84, 0xcc, 0xf3, 0xff, 0xff, //0x0000203c je LBB0_268 + //0x00002042 LBB0_631 + 0x4c, 0x2b, 0x75, 0xa0, //0x00002042 subq $-96(%rbp), %r14 + 0x48, 0x83, 0xf0, 0x01, //0x00002046 xorq $1, %rax + 0x49, 0x29, 0xc6, //0x0000204a subq %rax, %r14 + 0x89, 0xd8, //0x0000204d movl %ebx, %eax + 0x83, 0xe0, 0x01, //0x0000204f andl $1, %eax + 0x48, 0x01, 0xd8, //0x00002052 addq %rbx, %rax + 0x48, 0x21, 0xc7, //0x00002055 andq %rax, %rdi + 0x48, 0x83, 0xff, 0x01, //0x00002058 cmpq $1, %rdi + 0x49, 0x83, 0xde, 0xff, //0x0000205c sbbq $-1, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00002060 leaq $-1(%r14), %rcx + 0x48, 0x81, 0xf9, 0xfd, 0x07, 0x00, 0x00, //0x00002064 cmpq $2045, %rcx + 0x0f, 0x87, 0x9d, 0xf3, 0xff, 0xff, //0x0000206b ja LBB0_268 + 0x48, 0x83, 0xff, 0x01, //0x00002071 cmpq $1, %rdi + 0xb1, 0x02, //0x00002075 movb $2, %cl + 0x80, 0xd9, 0x00, //0x00002077 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x0000207a shrq %cl, %rax + 0x49, 0xc1, 0xe6, 0x34, //0x0000207d shlq $52, %r14 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002081 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x0000208b andq %rcx, %rax + 0x4c, 0x09, 0xf0, //0x0000208e orq %r14, %rax + 0x48, 0x89, 0xc1, //0x00002091 movq %rax, %rcx + 0x4c, 0x09, 0xc9, //0x00002094 orq %r9, %rcx + 0x83, 0x7d, 0xc8, 0xff, //0x00002097 cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xc8, //0x0000209b cmovneq %rax, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc6, //0x0000209f vmovq %rsi, %xmm0 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc9, //0x000020a4 vmovq %rcx, %xmm1 + 0xc5, 0xf9, 0x2e, 0xc1, //0x000020a9 vucomisd %xmm1, %xmm0 + 0x0f, 0x85, 0x5b, 0xf3, 0xff, 0xff, //0x000020ad jne LBB0_268 + 0x0f, 0x8b, 0x9b, 0xf7, 0xff, 0xff, //0x000020b3 jnp LBB0_328 + 0xe9, 0x50, 0xf3, 0xff, 0xff, //0x000020b9 jmp LBB0_268 + //0x000020be LBB0_450 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000020be movq $-1, %r15 + 0xe9, 0x13, 0xef, 0xff, 0xff, //0x000020c5 jmp LBB0_221 + //0x000020ca LBB0_452 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000020ca movq $-1, %r14 + 0x49, 0x89, 0xda, //0x000020d1 movq %rbx, %r10 + 0x48, 0x89, 0xf0, //0x000020d4 movq %rsi, %rax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000020d7 movq $-1, %r12 + 0x48, 0xc7, 0x45, 0xa8, 0xff, 0xff, 0xff, 0xff, //0x000020de movq $-1, $-88(%rbp) + 0x4c, 0x8b, 0x6d, 0xd0, //0x000020e6 movq $-48(%rbp), %r13 + 0xe9, 0x28, 0xe4, 0xff, 0xff, //0x000020ea jmp LBB0_64 + //0x000020ef LBB0_454 + 0x8b, 0x45, 0xb8, //0x000020ef movl $-72(%rbp), %eax + 0x03, 0x45, 0xc0, //0x000020f2 addl $-64(%rbp), %eax + 0x45, 0x31, 0xc9, //0x000020f5 xorl %r9d, %r9d + 0x45, 0x31, 0xdb, //0x000020f8 xorl %r11d, %r11d + 0x31, 0xf6, //0x000020fb xorl %esi, %esi + 0x89, 0xc7, //0x000020fd movl %eax, %edi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000020ff jmp LBB0_457 + //0x00002104 LBB0_455 + 0x89, 0xf0, //0x00002104 movl %esi, %eax + //0x00002106 LBB0_456 + 0x48, 0x8b, 0x7d, 0xc0, //0x00002106 movq $-64(%rbp), %rdi + 0x2b, 0x7d, 0xb8, //0x0000210a subl $-72(%rbp), %edi + 0x89, 0xc6, //0x0000210d movl %eax, %esi + //0x0000210f LBB0_457 + 0x45, 0x85, 0xc9, //0x0000210f testl %r9d, %r9d + 0x0f, 0x88, 0x16, 0x00, 0x00, 0x00, //0x00002112 js LBB0_460 + 0x0f, 0x85, 0xaa, 0x07, 0x00, 0x00, //0x00002118 jne LBB0_573 + 0x41, 0x80, 0x3c, 0x24, 0x35, //0x0000211e cmpb $53, (%r12) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002123 jl LBB0_461 + 0xe9, 0x9a, 0x07, 0x00, 0x00, //0x00002129 jmp LBB0_573 + //0x0000212e LBB0_460 + 0xb8, 0x1b, 0x00, 0x00, 0x00, //0x0000212e movl $27, %eax + 0x41, 0x83, 0xf9, 0xf8, //0x00002133 cmpl $-8, %r9d + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002137 jl LBB0_462 + //0x0000213d LBB0_461 + 0x44, 0x89, 0xc8, //0x0000213d movl %r9d, %eax + 0xf7, 0xd8, //0x00002140 negl %eax + 0x48, 0x98, //0x00002142 cltq + 0x48, 0x8d, 0x0d, 0xc5, 0x40, 0x00, 0x00, //0x00002144 leaq $16581(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x8b, 0x04, 0x81, //0x0000214b movl (%rcx,%rax,4), %eax + //0x0000214e LBB0_462 + 0x85, 0xf6, //0x0000214e testl %esi, %esi + 0x48, 0x89, 0x7d, 0xc0, //0x00002150 movq %rdi, $-64(%rbp) + 0x89, 0x45, 0xb8, //0x00002154 movl %eax, $-72(%rbp) + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x00002157 je LBB0_455 + 0x85, 0xc0, //0x0000215d testl %eax, %eax + 0x0f, 0x84, 0x9f, 0xff, 0xff, 0xff, //0x0000215f je LBB0_455 + 0x0f, 0x8e, 0x32, 0x02, 0x00, 0x00, //0x00002165 jle LBB0_495 + 0x41, 0x89, 0xc0, //0x0000216b movl %eax, %r8d + 0x83, 0xf8, 0x3d, //0x0000216e cmpl $61, %eax + 0x0f, 0x8c, 0x41, 0x02, 0x00, 0x00, //0x00002171 jl LBB0_497 + 0x4c, 0x8d, 0x2d, 0xc2, 0x40, 0x00, 0x00, //0x00002177 leaq $16578(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x0000217e jmp LBB0_470 + //0x00002183 LBB0_467 + 0xff, 0xc8, //0x00002183 decl %eax + 0x41, 0x89, 0xc3, //0x00002185 movl %eax, %r11d + //0x00002188 LBB0_468 + 0x45, 0x85, 0xdb, //0x00002188 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x0000218b cmovel %r11d, %r9d + //0x0000218f LBB0_469 + 0x48, 0x8b, 0x45, 0xc8, //0x0000218f movq $-56(%rbp), %rax + 0x44, 0x8d, 0x40, 0xc4, //0x00002193 leal $-60(%rax), %r8d + 0x44, 0x89, 0xde, //0x00002197 movl %r11d, %esi + 0x83, 0xf8, 0x78, //0x0000219a cmpl $120, %eax + 0x0f, 0x8e, 0x02, 0x02, 0x00, 0x00, //0x0000219d jle LBB0_496 + //0x000021a3 LBB0_470 + 0x4c, 0x89, 0x45, 0xc8, //0x000021a3 movq %r8, $-56(%rbp) + 0x48, 0x63, 0xde, //0x000021a7 movslq %esi, %rbx + 0x85, 0xdb, //0x000021aa testl %ebx, %ebx + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000021ac je LBB0_476 + 0xb1, 0x38, //0x000021b2 movb $56, %cl + 0x31, 0xc0, //0x000021b4 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000021b6 .p2align 4, 0x90 + //0x000021c0 LBB0_472 + 0x41, 0xb8, 0x13, 0x00, 0x00, 0x00, //0x000021c0 movl $19, %r8d + 0x48, 0x83, 0xf8, 0x2a, //0x000021c6 cmpq $42, %rax + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000021ca je LBB0_477 + 0x41, 0x38, 0x0c, 0x04, //0x000021d0 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x000021d4 jne LBB0_493 + 0x42, 0x0f, 0xb6, 0x8c, 0x28, 0x65, 0x18, 0x00, 0x00, //0x000021da movzbl $6245(%rax,%r13), %ecx + 0x48, 0xff, 0xc0, //0x000021e3 incq %rax + 0x48, 0x39, 0xc3, //0x000021e6 cmpq %rax, %rbx + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x000021e9 jne LBB0_472 + 0x84, 0xc9, //0x000021ef testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000021f1 je LBB0_477 + //0x000021f7 LBB0_476 + 0x41, 0xb8, 0x12, 0x00, 0x00, 0x00, //0x000021f7 movl $18, %r8d + //0x000021fd LBB0_477 + 0x85, 0xf6, //0x000021fd testl %esi, %esi + 0x0f, 0x8e, 0x38, 0x01, 0x00, 0x00, //0x000021ff jle LBB0_489 + 0x4d, 0x89, 0xcd, //0x00002205 movq %r9, %r13 + 0x44, 0x01, 0xc6, //0x00002208 addl %r8d, %esi + 0x48, 0x63, 0xc6, //0x0000220b movslq %esi, %rax + 0x48, 0x89, 0xc7, //0x0000220e movq %rax, %rdi + 0x48, 0xc1, 0xe7, 0x20, //0x00002211 shlq $32, %rdi + 0x48, 0xff, 0xc8, //0x00002215 decq %rax + 0x48, 0xff, 0xc3, //0x00002218 incq %rbx + 0x31, 0xc9, //0x0000221b xorl %ecx, %ecx + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x0000221d jmp LBB0_481 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002222 .p2align 4, 0x90 + //0x00002230 LBB0_479 + 0x48, 0x85, 0xc0, //0x00002230 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002233 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002238 cmovnel %eax, %r14d + //0x0000223c LBB0_480 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000223c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc7, //0x00002246 addq %rax, %rdi + 0x49, 0x8d, 0x41, 0xff, //0x00002249 leaq $-1(%r9), %rax + 0x48, 0xff, 0xcb, //0x0000224d decq %rbx + 0x48, 0x83, 0xfb, 0x01, //0x00002250 cmpq $1, %rbx + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002254 jle LBB0_483 + //0x0000225a LBB0_481 + 0x49, 0x89, 0xc1, //0x0000225a movq %rax, %r9 + 0x41, 0x0f, 0xb6, 0x74, 0x1c, 0xfe, //0x0000225d movzbl $-2(%r12,%rbx), %esi + 0x48, 0xc1, 0xe6, 0x3c, //0x00002263 shlq $60, %rsi + 0x48, 0x01, 0xce, //0x00002267 addq %rcx, %rsi + 0x48, 0x89, 0xf0, //0x0000226a movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000226d movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00002277 mulq %rcx + 0x48, 0x89, 0xd1, //0x0000227a movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x0000227d shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00002281 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002285 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00002289 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x0000228c subq %rdx, %rax + 0x4d, 0x39, 0xf9, //0x0000228f cmpq %r15, %r9 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x00002292 jae LBB0_479 + 0x04, 0x30, //0x00002298 addb $48, %al + 0x43, 0x88, 0x04, 0x0c, //0x0000229a movb %al, (%r12,%r9) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x0000229e jmp LBB0_480 + //0x000022a3 LBB0_483 + 0x48, 0x83, 0xfe, 0x0a, //0x000022a3 cmpq $10, %rsi + 0x0f, 0x83, 0x0f, 0x00, 0x00, 0x00, //0x000022a7 jae LBB0_485 + 0x4d, 0x89, 0xe9, //0x000022ad movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x89, 0x3f, 0x00, 0x00, //0x000022b0 leaq $16265(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000022b7 jmp LBB0_489 + //0x000022bc LBB0_485 + 0x49, 0x63, 0xf1, //0x000022bc movslq %r9d, %rsi + 0x48, 0xff, 0xce, //0x000022bf decq %rsi + 0x4d, 0x89, 0xe9, //0x000022c2 movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x74, 0x3f, 0x00, 0x00, //0x000022c5 leaq $16244(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000022cc jmp LBB0_487 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000022d1 .p2align 4, 0x90 + //0x000022e0 LBB0_486 + 0x48, 0x85, 0xc0, //0x000022e0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000022e3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000022e8 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x000022ec decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000022ef cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000022f3 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000022f6 jbe LBB0_489 + //0x000022fc LBB0_487 + 0x48, 0x89, 0xc8, //0x000022fc movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000022ff movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002309 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000230c shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00002310 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00002314 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00002318 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x0000231b subq %rdi, %rax + 0x4c, 0x39, 0xfe, //0x0000231e cmpq %r15, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00002321 jae LBB0_486 + 0x04, 0x30, //0x00002327 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002329 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x0000232d decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002330 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002334 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002337 ja LBB0_487 + //0x0000233d LBB0_489 + 0x45, 0x01, 0xc3, //0x0000233d addl %r8d, %r11d + 0x4d, 0x63, 0xdb, //0x00002340 movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00002343 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00002346 cmovbel %r15d, %r11d + 0x45, 0x01, 0xc1, //0x0000234a addl %r8d, %r9d + 0x45, 0x85, 0xdb, //0x0000234d testl %r11d, %r11d + 0x0f, 0x8e, 0x32, 0xfe, 0xff, 0xff, //0x00002350 jle LBB0_468 + 0x44, 0x89, 0xd8, //0x00002356 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002359 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x2a, 0xfe, 0xff, 0xff, //0x0000235f jne LBB0_469 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002365 .p2align 4, 0x90 + //0x00002370 LBB0_491 + 0x48, 0x83, 0xf8, 0x01, //0x00002370 cmpq $1, %rax + 0x0f, 0x8e, 0x09, 0xfe, 0xff, 0xff, //0x00002374 jle LBB0_467 + 0x4c, 0x8d, 0x58, 0xff, //0x0000237a leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x0000237e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00002384 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002387 je LBB0_491 + 0xe9, 0xfd, 0xfd, 0xff, 0xff, //0x0000238d jmp LBB0_469 + //0x00002392 LBB0_493 + 0x0f, 0x8c, 0x5f, 0xfe, 0xff, 0xff, //0x00002392 jl LBB0_476 + 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00002398 jmp LBB0_477 + //0x0000239d LBB0_495 + 0x41, 0x89, 0xc0, //0x0000239d movl %eax, %r8d + 0xe9, 0x07, 0x02, 0x00, 0x00, //0x000023a0 jmp LBB0_525 + //0x000023a5 LBB0_496 + 0x44, 0x89, 0xde, //0x000023a5 movl %r11d, %esi + 0x44, 0x89, 0xd8, //0x000023a8 movl %r11d, %eax + 0x45, 0x85, 0xc0, //0x000023ab testl %r8d, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x000023ae movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x4e, 0xfd, 0xff, 0xff, //0x000023b2 je LBB0_456 + //0x000023b8 LBB0_497 + 0x44, 0x89, 0xc1, //0x000023b8 movl %r8d, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x000023bb imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x3d, 0x7a, 0x3e, 0x00, 0x00, //0x000023bf leaq $15994(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3a, //0x000023c6 movl (%rdx,%rdi), %ebx + 0x4c, 0x63, 0xee, //0x000023c9 movslq %esi, %r13 + 0x8a, 0x44, 0x3a, 0x04, //0x000023cc movb $4(%rdx,%rdi), %al + 0x45, 0x85, 0xed, //0x000023d0 testl %r13d, %r13d + 0x4c, 0x89, 0x4d, 0xc8, //0x000023d3 movq %r9, $-56(%rbp) + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000023d7 je LBB0_502 + 0x48, 0x8d, 0x54, 0x3a, 0x05, //0x000023dd leaq $5(%rdx,%rdi), %rdx + 0x31, 0xff, //0x000023e2 xorl %edi, %edi + //0x000023e4 LBB0_499 + 0x84, 0xc0, //0x000023e4 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000023e6 je LBB0_504 + 0x41, 0x38, 0x04, 0x3c, //0x000023ec cmpb %al, (%r12,%rdi) + 0x0f, 0x85, 0x90, 0x01, 0x00, 0x00, //0x000023f0 jne LBB0_521 + 0x0f, 0xb6, 0x04, 0x3a, //0x000023f6 movzbl (%rdx,%rdi), %eax + 0x48, 0xff, 0xc7, //0x000023fa incq %rdi + 0x49, 0x39, 0xfd, //0x000023fd cmpq %rdi, %r13 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00002400 jne LBB0_499 + //0x00002406 LBB0_502 + 0x84, 0xc0, //0x00002406 testb %al, %al + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x00002408 je LBB0_504 + //0x0000240e LBB0_503 + 0xff, 0xcb, //0x0000240e decl %ebx + //0x00002410 LBB0_504 + 0x85, 0xf6, //0x00002410 testl %esi, %esi + 0x0f, 0x8e, 0xac, 0x00, 0x00, 0x00, //0x00002412 jle LBB0_512 + 0x89, 0x5d, 0x98, //0x00002418 movl %ebx, $-104(%rbp) + 0x01, 0xde, //0x0000241b addl %ebx, %esi + 0x48, 0x63, 0xc6, //0x0000241d movslq %esi, %rax + 0x49, 0x89, 0xc1, //0x00002420 movq %rax, %r9 + 0x49, 0xc1, 0xe1, 0x20, //0x00002423 shlq $32, %r9 + 0x48, 0xff, 0xc8, //0x00002427 decq %rax + 0x49, 0xff, 0xc5, //0x0000242a incq %r13 + 0x31, 0xf6, //0x0000242d xorl %esi, %esi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000242f jmp LBB0_508 + //0x00002434 LBB0_506 + 0x48, 0x85, 0xc0, //0x00002434 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002437 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x0000243c cmovnel %eax, %r14d + //0x00002440 LBB0_507 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002440 movabsq $-4294967296, %rax + 0x49, 0x01, 0xc1, //0x0000244a addq %rax, %r9 + 0x48, 0x8d, 0x47, 0xff, //0x0000244d leaq $-1(%rdi), %rax + 0x49, 0xff, 0xcd, //0x00002451 decq %r13 + 0x49, 0x83, 0xfd, 0x01, //0x00002454 cmpq $1, %r13 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00002458 jle LBB0_510 + //0x0000245e LBB0_508 + 0x48, 0x89, 0xc7, //0x0000245e movq %rax, %rdi + 0x4b, 0x0f, 0xbe, 0x5c, 0x2c, 0xfe, //0x00002461 movsbq $-2(%r12,%r13), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00002467 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x0000246b shlq %cl, %rbx + 0x48, 0x01, 0xf3, //0x0000246e addq %rsi, %rbx + 0x48, 0x89, 0xd8, //0x00002471 movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002474 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000247e mulq %rdx + 0x48, 0x89, 0xd6, //0x00002481 movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x03, //0x00002484 shrq $3, %rsi + 0x48, 0x8d, 0x04, 0x36, //0x00002488 leaq (%rsi,%rsi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000248c leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00002490 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002493 subq %rdx, %rax + 0x4c, 0x39, 0xff, //0x00002496 cmpq %r15, %rdi + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00002499 jae LBB0_506 + 0x04, 0x30, //0x0000249f addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x000024a1 movb %al, (%r12,%rdi) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x000024a5 jmp LBB0_507 + //0x000024aa LBB0_510 + 0x48, 0x83, 0xfb, 0x0a, //0x000024aa cmpq $10, %rbx + 0x4c, 0x8b, 0x6d, 0xd0, //0x000024ae movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x000024b2 movq $-56(%rbp), %r9 + 0x0f, 0x83, 0x15, 0x00, 0x00, 0x00, //0x000024b6 jae LBB0_513 + 0x8b, 0x5d, 0x98, //0x000024bc movl $-104(%rbp), %ebx + 0xe9, 0x78, 0x00, 0x00, 0x00, //0x000024bf jmp LBB0_517 + //0x000024c4 LBB0_512 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000024c4 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x000024c8 movq $-56(%rbp), %r9 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x000024cc jmp LBB0_517 + //0x000024d1 LBB0_513 + 0x48, 0x63, 0xcf, //0x000024d1 movslq %edi, %rcx + 0x48, 0xff, 0xc9, //0x000024d4 decq %rcx + 0x8b, 0x5d, 0x98, //0x000024d7 movl $-104(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x000024da jmp LBB0_515 + //0x000024df LBB0_514 + 0x48, 0x85, 0xc0, //0x000024df testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000024e2 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000024e7 cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x000024eb decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x000024ee cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x000024f2 movq %rdx, %rsi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000024f5 jbe LBB0_517 + //0x000024fb LBB0_515 + 0x48, 0x89, 0xf0, //0x000024fb movq %rsi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000024fe movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002508 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000250b shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x0000250f leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00002513 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xf0, //0x00002517 movq %rsi, %rax + 0x48, 0x29, 0xf8, //0x0000251a subq %rdi, %rax + 0x4c, 0x39, 0xf9, //0x0000251d cmpq %r15, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00002520 jae LBB0_514 + 0x04, 0x30, //0x00002526 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00002528 movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x0000252c decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x0000252f cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x00002533 movq %rdx, %rsi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002536 ja LBB0_515 + //0x0000253c LBB0_517 + 0x41, 0x01, 0xdb, //0x0000253c addl %ebx, %r11d + 0x4d, 0x63, 0xdb, //0x0000253f movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00002542 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00002545 cmovbel %r15d, %r11d + 0x41, 0x01, 0xd9, //0x00002549 addl %ebx, %r9d + 0x45, 0x85, 0xdb, //0x0000254c testl %r11d, %r11d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x0000254f jle LBB0_523 + 0x44, 0x89, 0xd8, //0x00002555 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002558 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x0000255e jne LBB0_524 + //0x00002564 LBB0_519 + 0x48, 0x83, 0xf8, 0x01, //0x00002564 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00002568 jle LBB0_522 + 0x4c, 0x8d, 0x58, 0xff, //0x0000256e leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002572 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00002578 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000257b je LBB0_519 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002581 jmp LBB0_524 + //0x00002586 LBB0_521 + 0x0f, 0x8c, 0x82, 0xfe, 0xff, 0xff, //0x00002586 jl LBB0_503 + 0xe9, 0x7f, 0xfe, 0xff, 0xff, //0x0000258c jmp LBB0_504 + //0x00002591 LBB0_522 + 0xff, 0xc8, //0x00002591 decl %eax + 0x41, 0x89, 0xc3, //0x00002593 movl %eax, %r11d + //0x00002596 LBB0_523 + 0x45, 0x85, 0xdb, //0x00002596 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00002599 cmovel %r11d, %r9d + //0x0000259d LBB0_524 + 0x44, 0x89, 0xde, //0x0000259d movl %r11d, %esi + 0x44, 0x89, 0xd8, //0x000025a0 movl %r11d, %eax + 0x45, 0x85, 0xc0, //0x000025a3 testl %r8d, %r8d + 0x0f, 0x89, 0x5a, 0xfb, 0xff, 0xff, //0x000025a6 jns LBB0_456 + //0x000025ac LBB0_525 + 0x41, 0x83, 0xf8, 0xc3, //0x000025ac cmpl $-61, %r8d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x000025b0 jle LBB0_529 + 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x000025b6 jmp LBB0_549 + //0x000025bb LBB0_526 + 0xff, 0xc9, //0x000025bb decl %ecx + 0x41, 0x89, 0xcb, //0x000025bd movl %ecx, %r11d + //0x000025c0 LBB0_527 + 0x45, 0x85, 0xdb, //0x000025c0 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x000025c3 cmovel %r11d, %r9d + //0x000025c7 LBB0_528 + 0x44, 0x8d, 0x40, 0x3c, //0x000025c7 leal $60(%rax), %r8d + 0x44, 0x89, 0xde, //0x000025cb movl %r11d, %esi + 0x83, 0xf8, 0x88, //0x000025ce cmpl $-120, %eax + 0x0f, 0x8d, 0x73, 0x01, 0x00, 0x00, //0x000025d1 jge LBB0_548 + //0x000025d7 LBB0_529 + 0x44, 0x89, 0xc0, //0x000025d7 movl %r8d, %eax + 0x48, 0x63, 0xfe, //0x000025da movslq %esi, %rdi + 0x31, 0xd2, //0x000025dd xorl %edx, %edx + 0x31, 0xc9, //0x000025df xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000025e1 .p2align 4, 0x90 + //0x000025f0 LBB0_530 + 0x48, 0x39, 0xfa, //0x000025f0 cmpq %rdi, %rdx + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x000025f3 jge LBB0_532 + 0x48, 0x8d, 0x0c, 0x89, //0x000025f9 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x000025fd movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00002602 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc2, //0x00002607 incq %rdx + 0x49, 0x8d, 0x5a, 0x01, //0x0000260a leaq $1(%r10), %rbx + 0x48, 0x39, 0xd9, //0x0000260e cmpq %rbx, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00002611 jb LBB0_530 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00002617 jmp LBB0_534 + //0x0000261c LBB0_532 + 0x48, 0x85, 0xc9, //0x0000261c testq %rcx, %rcx + 0x0f, 0x84, 0x1d, 0x01, 0x00, 0x00, //0x0000261f je LBB0_547 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002625 .p2align 4, 0x90 + //0x00002630 LBB0_533 + 0x48, 0x01, 0xc9, //0x00002630 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002633 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc2, //0x00002637 incl %edx + 0x49, 0x8d, 0x7a, 0x01, //0x00002639 leaq $1(%r10), %rdi + 0x48, 0x39, 0xf9, //0x0000263d cmpq %rdi, %rcx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00002640 jb LBB0_533 + //0x00002646 LBB0_534 + 0x41, 0x29, 0xd1, //0x00002646 subl %edx, %r9d + 0x31, 0xff, //0x00002649 xorl %edi, %edi + 0x39, 0xf2, //0x0000264b cmpl %esi, %edx + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x0000264d jge LBB0_539 + 0x48, 0x63, 0xd2, //0x00002653 movslq %edx, %rdx + 0x49, 0x63, 0xf3, //0x00002656 movslq %r11d, %rsi + 0x49, 0x8d, 0x3c, 0x14, //0x00002659 leaq (%r12,%rdx), %rdi + 0x45, 0x31, 0xdb, //0x0000265d xorl %r11d, %r11d + //0x00002660 .p2align 4, 0x90 + //0x00002660 LBB0_536 + 0x48, 0x89, 0xcb, //0x00002660 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00002663 shrq $60, %rbx + 0x4c, 0x21, 0xd1, //0x00002667 andq %r10, %rcx + 0x80, 0xcb, 0x30, //0x0000266a orb $48, %bl + 0x43, 0x88, 0x1c, 0x1c, //0x0000266d movb %bl, (%r12,%r11) + 0x48, 0x8d, 0x0c, 0x89, //0x00002671 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x1c, 0x1f, //0x00002675 movsbq (%rdi,%r11), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x0000267a leaq $-48(%rbx,%rcx,2), %rcx + 0x4a, 0x8d, 0x5c, 0x1a, 0x01, //0x0000267f leaq $1(%rdx,%r11), %rbx + 0x49, 0xff, 0xc3, //0x00002684 incq %r11 + 0x48, 0x39, 0xf3, //0x00002687 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x0000268a jl LBB0_536 + 0x48, 0x85, 0xc9, //0x00002690 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00002693 je LBB0_543 + 0x44, 0x89, 0xdf, //0x00002699 movl %r11d, %edi + //0x0000269c LBB0_539 + 0x41, 0x89, 0xfb, //0x0000269c movl %edi, %r11d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x0000269f jmp LBB0_541 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026a4 .p2align 4, 0x90 + //0x000026b0 LBB0_540 + 0x48, 0x85, 0xd2, //0x000026b0 testq %rdx, %rdx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000026b3 movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x000026b8 cmovnel %edx, %r14d + 0x48, 0x01, 0xc9, //0x000026bc addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000026bf leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000026c3 testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x000026c6 je LBB0_543 + //0x000026cc LBB0_541 + 0x48, 0x89, 0xca, //0x000026cc movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x000026cf shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x000026d3 andq %r10, %rcx + 0x49, 0x63, 0xf3, //0x000026d6 movslq %r11d, %rsi + 0x49, 0x39, 0xf7, //0x000026d9 cmpq %rsi, %r15 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x000026dc jbe LBB0_540 + 0x80, 0xca, 0x30, //0x000026e2 orb $48, %dl + 0x41, 0x88, 0x14, 0x34, //0x000026e5 movb %dl, (%r12,%rsi) + 0xff, 0xc6, //0x000026e9 incl %esi + 0x41, 0x89, 0xf3, //0x000026eb movl %esi, %r11d + 0x48, 0x01, 0xc9, //0x000026ee addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000026f1 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000026f5 testq %rcx, %rcx + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x000026f8 jne LBB0_541 + //0x000026fe LBB0_543 + 0x41, 0xff, 0xc1, //0x000026fe incl %r9d + 0x45, 0x85, 0xdb, //0x00002701 testl %r11d, %r11d + 0x0f, 0x8e, 0xb6, 0xfe, 0xff, 0xff, //0x00002704 jle LBB0_527 + 0x44, 0x89, 0xd9, //0x0000270a movl %r11d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x0000270d cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00002713 jne LBB0_528 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002719 .p2align 4, 0x90 + //0x00002720 LBB0_545 + 0x48, 0x83, 0xf9, 0x01, //0x00002720 cmpq $1, %rcx + 0x0f, 0x8e, 0x91, 0xfe, 0xff, 0xff, //0x00002724 jle LBB0_526 + 0x4c, 0x8d, 0x59, 0xff, //0x0000272a leaq $-1(%rcx), %r11 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x0000272e cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xd9, //0x00002734 movq %r11, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002737 je LBB0_545 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x0000273d jmp LBB0_528 + //0x00002742 LBB0_547 + 0x45, 0x31, 0xdb, //0x00002742 xorl %r11d, %r11d + 0xe9, 0x7d, 0xfe, 0xff, 0xff, //0x00002745 jmp LBB0_528 + //0x0000274a LBB0_548 + 0x44, 0x89, 0xde, //0x0000274a movl %r11d, %esi + 0x44, 0x89, 0xd8, //0x0000274d movl %r11d, %eax + 0x45, 0x85, 0xc0, //0x00002750 testl %r8d, %r8d + 0x0f, 0x84, 0xad, 0xf9, 0xff, 0xff, //0x00002753 je LBB0_456 + //0x00002759 LBB0_549 + 0x41, 0xf7, 0xd8, //0x00002759 negl %r8d + 0x48, 0x63, 0xfe, //0x0000275c movslq %esi, %rdi + 0x31, 0xd2, //0x0000275f xorl %edx, %edx + 0x31, 0xc0, //0x00002761 xorl %eax, %eax + //0x00002763 LBB0_550 + 0x48, 0x39, 0xfa, //0x00002763 cmpq %rdi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002766 jge LBB0_552 + 0x48, 0x8d, 0x04, 0x80, //0x0000276c leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x14, //0x00002770 movsbq (%r12,%rdx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00002775 leaq $-48(%rcx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x0000277a incq %rdx + 0x48, 0x89, 0xc3, //0x0000277d movq %rax, %rbx + 0x44, 0x89, 0xc1, //0x00002780 movl %r8d, %ecx + 0x48, 0xd3, 0xeb, //0x00002783 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00002786 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00002789 je LBB0_550 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000278f jmp LBB0_556 + //0x00002794 LBB0_552 + 0x48, 0x85, 0xc0, //0x00002794 testq %rax, %rax + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00002797 jne LBB0_555 + 0x45, 0x31, 0xdb, //0x0000279d xorl %r11d, %r11d + 0x31, 0xc0, //0x000027a0 xorl %eax, %eax + 0xe9, 0x5f, 0xf9, 0xff, 0xff, //0x000027a2 jmp LBB0_456 + //0x000027a7 LBB0_554 + 0x48, 0x01, 0xc0, //0x000027a7 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000027aa leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x000027ae incl %edx + //0x000027b0 LBB0_555 + 0x48, 0x89, 0xc7, //0x000027b0 movq %rax, %rdi + 0x44, 0x89, 0xc1, //0x000027b3 movl %r8d, %ecx + 0x48, 0xd3, 0xef, //0x000027b6 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x000027b9 testq %rdi, %rdi + 0x0f, 0x84, 0xe5, 0xff, 0xff, 0xff, //0x000027bc je LBB0_554 + //0x000027c2 LBB0_556 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000027c2 movq $-1, %rbx + 0x44, 0x89, 0xc1, //0x000027c9 movl %r8d, %ecx + 0x48, 0xd3, 0xe3, //0x000027cc shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x000027cf notq %rbx + 0x31, 0xff, //0x000027d2 xorl %edi, %edi + 0x39, 0xf2, //0x000027d4 cmpl %esi, %edx + 0x0f, 0x8d, 0x4b, 0x00, 0x00, 0x00, //0x000027d6 jge LBB0_560 + 0x4c, 0x89, 0x4d, 0xc8, //0x000027dc movq %r9, $-56(%rbp) + 0x4c, 0x63, 0xea, //0x000027e0 movslq %edx, %r13 + 0x4d, 0x63, 0xcb, //0x000027e3 movslq %r11d, %r9 + 0x4f, 0x8d, 0x1c, 0x2c, //0x000027e6 leaq (%r12,%r13), %r11 + 0x31, 0xff, //0x000027ea xorl %edi, %edi + //0x000027ec LBB0_558 + 0x48, 0x89, 0xc6, //0x000027ec movq %rax, %rsi + 0x44, 0x89, 0xc1, //0x000027ef movl %r8d, %ecx + 0x48, 0xd3, 0xee, //0x000027f2 shrq %cl, %rsi + 0x48, 0x21, 0xd8, //0x000027f5 andq %rbx, %rax + 0x40, 0x80, 0xc6, 0x30, //0x000027f8 addb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x000027fc movb %sil, (%r12,%rdi) + 0x48, 0x8d, 0x04, 0x80, //0x00002800 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x3b, //0x00002804 movsbq (%r11,%rdi), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00002809 leaq $-48(%rcx,%rax,2), %rax + 0x49, 0x8d, 0x4c, 0x3d, 0x01, //0x0000280e leaq $1(%r13,%rdi), %rcx + 0x48, 0xff, 0xc7, //0x00002813 incq %rdi + 0x4c, 0x39, 0xc9, //0x00002816 cmpq %r9, %rcx + 0x0f, 0x8c, 0xcd, 0xff, 0xff, 0xff, //0x00002819 jl LBB0_558 + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000281f movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00002823 movq $-56(%rbp), %r9 + //0x00002827 LBB0_560 + 0x41, 0x29, 0xd1, //0x00002827 subl %edx, %r9d + 0x41, 0x89, 0xfb, //0x0000282a movl %edi, %r11d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x0000282d jmp LBB0_563 + //0x00002832 LBB0_561 + 0x48, 0x85, 0xd2, //0x00002832 testq %rdx, %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00002835 movl $1, %ecx + 0x44, 0x0f, 0x45, 0xf1, //0x0000283a cmovnel %ecx, %r14d + //0x0000283e LBB0_562 + 0x48, 0x01, 0xc0, //0x0000283e addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002841 leaq (%rax,%rax,4), %rax + //0x00002845 LBB0_563 + 0x48, 0x85, 0xc0, //0x00002845 testq %rax, %rax + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00002848 je LBB0_566 + 0x48, 0x89, 0xc2, //0x0000284e movq %rax, %rdx + 0x44, 0x89, 0xc1, //0x00002851 movl %r8d, %ecx + 0x48, 0xd3, 0xea, //0x00002854 shrq %cl, %rdx + 0x48, 0x21, 0xd8, //0x00002857 andq %rbx, %rax + 0x49, 0x63, 0xcb, //0x0000285a movslq %r11d, %rcx + 0x49, 0x39, 0xcf, //0x0000285d cmpq %rcx, %r15 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00002860 jbe LBB0_561 + 0x80, 0xc2, 0x30, //0x00002866 addb $48, %dl + 0x41, 0x88, 0x14, 0x0c, //0x00002869 movb %dl, (%r12,%rcx) + 0xff, 0xc1, //0x0000286d incl %ecx + 0x41, 0x89, 0xcb, //0x0000286f movl %ecx, %r11d + 0xe9, 0xc7, 0xff, 0xff, 0xff, //0x00002872 jmp LBB0_562 + //0x00002877 LBB0_566 + 0x41, 0xff, 0xc1, //0x00002877 incl %r9d + 0x45, 0x85, 0xdb, //0x0000287a testl %r11d, %r11d + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x0000287d jle LBB0_571 + 0x44, 0x89, 0xd8, //0x00002883 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002886 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x0000288c jne LBB0_572 + //0x00002892 LBB0_568 + 0x48, 0x83, 0xf8, 0x01, //0x00002892 cmpq $1, %rax + 0x0f, 0x8e, 0x18, 0x00, 0x00, 0x00, //0x00002896 jle LBB0_570 + 0x4c, 0x8d, 0x58, 0xff, //0x0000289c leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x000028a0 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x000028a6 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000028a9 je LBB0_568 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000028af jmp LBB0_572 + //0x000028b4 LBB0_570 + 0xff, 0xc8, //0x000028b4 decl %eax + 0x41, 0x89, 0xc3, //0x000028b6 movl %eax, %r11d + //0x000028b9 LBB0_571 + 0x45, 0x85, 0xdb, //0x000028b9 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x000028bc cmovel %r11d, %r9d + //0x000028c0 LBB0_572 + 0x44, 0x89, 0xd8, //0x000028c0 movl %r11d, %eax + 0xe9, 0x3e, 0xf8, 0xff, 0xff, //0x000028c3 jmp LBB0_456 + //0x000028c8 LBB0_573 + 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x000028c8 cmpl $-1022, %edi + 0x4c, 0x89, 0x4d, 0xc8, //0x000028ce movq %r9, $-56(%rbp) + 0x0f, 0x8f, 0x9c, 0x01, 0x00, 0x00, //0x000028d2 jg LBB0_599 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x000028d8 movl $-1022, %r9d + 0x85, 0xf6, //0x000028de testl %esi, %esi + 0x0f, 0x84, 0xb5, 0x01, 0x00, 0x00, //0x000028e0 je LBB0_602 + 0x8d, 0x8f, 0xfd, 0x03, 0x00, 0x00, //0x000028e6 leal $1021(%rdi), %ecx + 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x000028ec cmpl $-1082, %edi + 0x0f, 0x8f, 0xb5, 0x01, 0x00, 0x00, //0x000028f2 jg LBB0_605 + 0x49, 0x8d, 0x42, 0x01, //0x000028f8 leaq $1(%r10), %rax + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x000028fc movl $1, %r13d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002902 jmp LBB0_580 + //0x00002907 LBB0_577 + 0xff, 0xc9, //0x00002907 decl %ecx + 0x41, 0x89, 0xcb, //0x00002909 movl %ecx, %r11d + //0x0000290c LBB0_578 + 0x45, 0x85, 0xdb, //0x0000290c testl %r11d, %r11d + 0x48, 0x8b, 0x4d, 0xc8, //0x0000290f movq $-56(%rbp), %rcx + 0x41, 0x0f, 0x44, 0xcb, //0x00002913 cmovel %r11d, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002917 movq %rcx, $-56(%rbp) + //0x0000291b LBB0_579 + 0x41, 0x8d, 0x48, 0x3c, //0x0000291b leal $60(%r8), %ecx + 0x44, 0x89, 0xde, //0x0000291f movl %r11d, %esi + 0x41, 0x83, 0xf8, 0x88, //0x00002922 cmpl $-120, %r8d + 0x0f, 0x8d, 0x76, 0x01, 0x00, 0x00, //0x00002926 jge LBB0_603 + //0x0000292c LBB0_580 + 0x41, 0x89, 0xc8, //0x0000292c movl %ecx, %r8d + 0x48, 0x63, 0xde, //0x0000292f movslq %esi, %rbx + 0x31, 0xff, //0x00002932 xorl %edi, %edi + 0x31, 0xc9, //0x00002934 xorl %ecx, %ecx + //0x00002936 LBB0_581 + 0x48, 0x39, 0xdf, //0x00002936 cmpq %rbx, %rdi + 0x0f, 0x8d, 0x1f, 0x00, 0x00, 0x00, //0x00002939 jge LBB0_583 + 0x48, 0x8d, 0x0c, 0x89, //0x0000293f leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x3c, //0x00002943 movsbq (%r12,%rdi), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00002948 leaq $-48(%rdx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x0000294d incq %rdi + 0x48, 0x39, 0xc1, //0x00002950 cmpq %rax, %rcx + 0x0f, 0x82, 0xdd, 0xff, 0xff, 0xff, //0x00002953 jb LBB0_581 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00002959 jmp LBB0_585 + //0x0000295e LBB0_583 + 0x48, 0x85, 0xc9, //0x0000295e testq %rcx, %rcx + 0x0f, 0x84, 0x05, 0x01, 0x00, 0x00, //0x00002961 je LBB0_598 + //0x00002967 LBB0_584 + 0x48, 0x01, 0xc9, //0x00002967 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x0000296a leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc7, //0x0000296e incl %edi + 0x48, 0x39, 0xc1, //0x00002970 cmpq %rax, %rcx + 0x0f, 0x82, 0xee, 0xff, 0xff, 0xff, //0x00002973 jb LBB0_584 + //0x00002979 LBB0_585 + 0x48, 0x8b, 0x55, 0xc8, //0x00002979 movq $-56(%rbp), %rdx + 0x29, 0xfa, //0x0000297d subl %edi, %edx + 0x48, 0x89, 0x55, 0xc8, //0x0000297f movq %rdx, $-56(%rbp) + 0x31, 0xdb, //0x00002983 xorl %ebx, %ebx + 0x39, 0xf7, //0x00002985 cmpl %esi, %edi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00002987 jge LBB0_590 + 0x48, 0x63, 0xf7, //0x0000298d movslq %edi, %rsi + 0x49, 0x63, 0xfb, //0x00002990 movslq %r11d, %rdi + 0x49, 0x8d, 0x1c, 0x34, //0x00002993 leaq (%r12,%rsi), %rbx + 0x45, 0x31, 0xdb, //0x00002997 xorl %r11d, %r11d + //0x0000299a LBB0_587 + 0x48, 0x89, 0xca, //0x0000299a movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x0000299d shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x000029a1 andq %r10, %rcx + 0x80, 0xca, 0x30, //0x000029a4 orb $48, %dl + 0x43, 0x88, 0x14, 0x1c, //0x000029a7 movb %dl, (%r12,%r11) + 0x48, 0x8d, 0x0c, 0x89, //0x000029ab leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x14, 0x1b, //0x000029af movsbq (%rbx,%r11), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x000029b4 leaq $-48(%rdx,%rcx,2), %rcx + 0x4a, 0x8d, 0x54, 0x1e, 0x01, //0x000029b9 leaq $1(%rsi,%r11), %rdx + 0x49, 0xff, 0xc3, //0x000029be incq %r11 + 0x48, 0x39, 0xfa, //0x000029c1 cmpq %rdi, %rdx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x000029c4 jl LBB0_587 + 0x48, 0x85, 0xc9, //0x000029ca testq %rcx, %rcx + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x000029cd je LBB0_594 + 0x44, 0x89, 0xdb, //0x000029d3 movl %r11d, %ebx + //0x000029d6 LBB0_590 + 0x41, 0x89, 0xdb, //0x000029d6 movl %ebx, %r11d + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000029d9 jmp LBB0_592 + //0x000029de LBB0_591 + 0x48, 0x85, 0xf6, //0x000029de testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf5, //0x000029e1 cmovnel %r13d, %r14d + 0x48, 0x01, 0xc9, //0x000029e5 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000029e8 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000029ec testq %rcx, %rcx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000029ef je LBB0_594 + //0x000029f5 LBB0_592 + 0x48, 0x89, 0xce, //0x000029f5 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x3c, //0x000029f8 shrq $60, %rsi + 0x4c, 0x21, 0xd1, //0x000029fc andq %r10, %rcx + 0x49, 0x63, 0xfb, //0x000029ff movslq %r11d, %rdi + 0x49, 0x39, 0xff, //0x00002a02 cmpq %rdi, %r15 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00002a05 jbe LBB0_591 + 0x40, 0x80, 0xce, 0x30, //0x00002a0b orb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00002a0f movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00002a13 incl %edi + 0x41, 0x89, 0xfb, //0x00002a15 movl %edi, %r11d + 0x48, 0x01, 0xc9, //0x00002a18 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002a1b leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00002a1f testq %rcx, %rcx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00002a22 jne LBB0_592 + //0x00002a28 LBB0_594 + 0x48, 0x8b, 0x4d, 0xc8, //0x00002a28 movq $-56(%rbp), %rcx + 0xff, 0xc1, //0x00002a2c incl %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002a2e movq %rcx, $-56(%rbp) + 0x45, 0x85, 0xdb, //0x00002a32 testl %r11d, %r11d + 0x0f, 0x8e, 0xd1, 0xfe, 0xff, 0xff, //0x00002a35 jle LBB0_578 + 0x44, 0x89, 0xd9, //0x00002a3b movl %r11d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00002a3e cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xd1, 0xfe, 0xff, 0xff, //0x00002a44 jne LBB0_579 + //0x00002a4a LBB0_596 + 0x48, 0x83, 0xf9, 0x01, //0x00002a4a cmpq $1, %rcx + 0x0f, 0x8e, 0xb3, 0xfe, 0xff, 0xff, //0x00002a4e jle LBB0_577 + 0x4c, 0x8d, 0x59, 0xff, //0x00002a54 leaq $-1(%rcx), %r11 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00002a58 cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xd9, //0x00002a5e movq %r11, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002a61 je LBB0_596 + 0xe9, 0xaf, 0xfe, 0xff, 0xff, //0x00002a67 jmp LBB0_579 + //0x00002a6c LBB0_598 + 0x45, 0x31, 0xdb, //0x00002a6c xorl %r11d, %r11d + 0xe9, 0xa7, 0xfe, 0xff, 0xff, //0x00002a6f jmp LBB0_579 + //0x00002a74 LBB0_599 + 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002a74 cmpl $1024, %edi + 0x0f, 0x8e, 0x11, 0x00, 0x00, 0x00, //0x00002a7a jle LBB0_601 + 0x31, 0xff, //0x00002a80 xorl %edi, %edi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002a82 movabsq $9218868437227405312, %r9 + 0xe9, 0xd4, 0x04, 0x00, 0x00, //0x00002a8c jmp LBB0_688 + //0x00002a91 LBB0_601 + 0xff, 0xcf, //0x00002a91 decl %edi + 0x41, 0x89, 0xf9, //0x00002a93 movl %edi, %r9d + 0xe9, 0x87, 0x01, 0x00, 0x00, //0x00002a96 jmp LBB0_621 + //0x00002a9b LBB0_602 + 0x31, 0xc0, //0x00002a9b xorl %eax, %eax + 0xe9, 0x72, 0x03, 0x00, 0x00, //0x00002a9d jmp LBB0_662 + //0x00002aa2 LBB0_603 + 0x85, 0xc9, //0x00002aa2 testl %ecx, %ecx + 0x0f, 0x84, 0x6f, 0x01, 0x00, 0x00, //0x00002aa4 je LBB0_620 + 0x44, 0x89, 0xde, //0x00002aaa movl %r11d, %esi + //0x00002aad LBB0_605 + 0xf7, 0xd9, //0x00002aad negl %ecx + 0x48, 0x63, 0xfe, //0x00002aaf movslq %esi, %rdi + 0x31, 0xd2, //0x00002ab2 xorl %edx, %edx + 0x31, 0xc0, //0x00002ab4 xorl %eax, %eax + //0x00002ab6 LBB0_606 + 0x48, 0x39, 0xfa, //0x00002ab6 cmpq %rdi, %rdx + 0x0f, 0x8d, 0x25, 0x00, 0x00, 0x00, //0x00002ab9 jge LBB0_623 + 0x48, 0x8d, 0x04, 0x80, //0x00002abf leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x00002ac3 movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x44, 0x43, 0xd0, //0x00002ac8 leaq $-48(%rbx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00002acd incq %rdx + 0x48, 0x89, 0xc3, //0x00002ad0 movq %rax, %rbx + 0x48, 0xd3, 0xeb, //0x00002ad3 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00002ad6 testq %rbx, %rbx + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00002ad9 je LBB0_606 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00002adf jmp LBB0_608 + //0x00002ae4 LBB0_623 + 0x48, 0x85, 0xc0, //0x00002ae4 testq %rax, %rax + 0x0f, 0x84, 0x45, 0x01, 0x00, 0x00, //0x00002ae7 je LBB0_626 + 0x48, 0x89, 0xc7, //0x00002aed movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002af0 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00002af3 testq %rdi, %rdi + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002af6 jne LBB0_608 + //0x00002afc LBB0_625 + 0x48, 0x01, 0xc0, //0x00002afc addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002aff leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00002b03 incl %edx + 0x48, 0x89, 0xc7, //0x00002b05 movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002b08 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00002b0b testq %rdi, %rdi + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00002b0e je LBB0_625 + //0x00002b14 LBB0_608 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002b14 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x00002b1b shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x00002b1e notq %rbx + 0x45, 0x31, 0xc0, //0x00002b21 xorl %r8d, %r8d + 0x39, 0xf2, //0x00002b24 cmpl %esi, %edx + 0x0f, 0x8d, 0x3d, 0x00, 0x00, 0x00, //0x00002b26 jge LBB0_611 + 0x4c, 0x63, 0xd2, //0x00002b2c movslq %edx, %r10 + 0x4d, 0x63, 0xcb, //0x00002b2f movslq %r11d, %r9 + 0x4b, 0x8d, 0x3c, 0x14, //0x00002b32 leaq (%r12,%r10), %rdi + 0x45, 0x31, 0xc0, //0x00002b36 xorl %r8d, %r8d + //0x00002b39 LBB0_610 + 0x48, 0x89, 0xc6, //0x00002b39 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00002b3c shrq %cl, %rsi + 0x48, 0x21, 0xd8, //0x00002b3f andq %rbx, %rax + 0x40, 0x80, 0xc6, 0x30, //0x00002b42 addb $48, %sil + 0x43, 0x88, 0x34, 0x04, //0x00002b46 movb %sil, (%r12,%r8) + 0x48, 0x8d, 0x04, 0x80, //0x00002b4a leaq (%rax,%rax,4), %rax + 0x4a, 0x0f, 0xbe, 0x34, 0x07, //0x00002b4e movsbq (%rdi,%r8), %rsi + 0x48, 0x8d, 0x44, 0x46, 0xd0, //0x00002b53 leaq $-48(%rsi,%rax,2), %rax + 0x4b, 0x8d, 0x74, 0x02, 0x01, //0x00002b58 leaq $1(%r10,%r8), %rsi + 0x49, 0xff, 0xc0, //0x00002b5d incq %r8 + 0x4c, 0x39, 0xce, //0x00002b60 cmpq %r9, %rsi + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00002b63 jl LBB0_610 + //0x00002b69 LBB0_611 + 0x48, 0x8b, 0x75, 0xc8, //0x00002b69 movq $-56(%rbp), %rsi + 0x29, 0xd6, //0x00002b6d subl %edx, %esi + 0x48, 0x89, 0x75, 0xc8, //0x00002b6f movq %rsi, $-56(%rbp) + 0x48, 0x85, 0xc0, //0x00002b73 testq %rax, %rax + 0x0f, 0x84, 0x58, 0x00, 0x00, 0x00, //0x00002b76 je LBB0_616 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00002b7c movl $1, %r9d + 0x48, 0x8b, 0x55, 0xa8, //0x00002b82 movq $-88(%rbp), %rdx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002b86 jmp LBB0_614 + //0x00002b8b LBB0_613 + 0x48, 0x85, 0xf6, //0x00002b8b testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf1, //0x00002b8e cmovnel %r9d, %r14d + 0x48, 0x01, 0xc0, //0x00002b92 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002b95 leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00002b99 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00002b9c je LBB0_616 + //0x00002ba2 LBB0_614 + 0x48, 0x89, 0xc6, //0x00002ba2 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00002ba5 shrq %cl, %rsi + 0x48, 0x21, 0xd8, //0x00002ba8 andq %rbx, %rax + 0x49, 0x63, 0xf8, //0x00002bab movslq %r8d, %rdi + 0x48, 0x39, 0xfa, //0x00002bae cmpq %rdi, %rdx + 0x0f, 0x86, 0xd4, 0xff, 0xff, 0xff, //0x00002bb1 jbe LBB0_613 + 0x40, 0x80, 0xc6, 0x30, //0x00002bb7 addb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00002bbb movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00002bbf incl %edi + 0x41, 0x89, 0xf8, //0x00002bc1 movl %edi, %r8d + 0x48, 0x01, 0xc0, //0x00002bc4 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002bc7 leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00002bcb testq %rax, %rax + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002bce jne LBB0_614 + //0x00002bd4 LBB0_616 + 0x48, 0x8b, 0x45, 0xc8, //0x00002bd4 movq $-56(%rbp), %rax + 0xff, 0xc0, //0x00002bd8 incl %eax + 0x48, 0x89, 0x45, 0xc8, //0x00002bda movq %rax, $-56(%rbp) + 0x45, 0x85, 0xc0, //0x00002bde testl %r8d, %r8d + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002be1 jle LBB0_634 + 0x44, 0x89, 0xc0, //0x00002be7 movl %r8d, %eax + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00002bea movl $-1022, %r9d + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002bf0 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x51, 0x00, 0x00, 0x00, //0x00002bf6 jne LBB0_635 + //0x00002bfc LBB0_618 + 0x48, 0x83, 0xf8, 0x01, //0x00002bfc cmpq $1, %rax + 0x0f, 0x8e, 0x33, 0x00, 0x00, 0x00, //0x00002c00 jle LBB0_633 + 0x4c, 0x8d, 0x58, 0xff, //0x00002c06 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002c0a cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00002c10 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002c13 je LBB0_618 + //0x00002c19 LBB0_620 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00002c19 movl $-1022, %r9d + 0x44, 0x89, 0xde, //0x00002c1f movl %r11d, %esi + //0x00002c22 LBB0_621 + 0x85, 0xf6, //0x00002c22 testl %esi, %esi + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x00002c24 je LBB0_626 + 0x45, 0x89, 0xd8, //0x00002c2a movl %r11d, %r8d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00002c2d jmp LBB0_636 + //0x00002c32 LBB0_626 + 0x31, 0xc0, //0x00002c32 xorl %eax, %eax + 0xe9, 0xd7, 0x01, 0x00, 0x00, //0x00002c34 jmp LBB0_661 + //0x00002c39 LBB0_633 + 0xff, 0xc8, //0x00002c39 decl %eax + 0x41, 0x89, 0xc0, //0x00002c3b movl %eax, %r8d + //0x00002c3e LBB0_634 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00002c3e movl $-1022, %r9d + 0x45, 0x85, 0xc0, //0x00002c44 testl %r8d, %r8d + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x00002c47 je LBB0_683 + //0x00002c4d LBB0_635 + 0x44, 0x89, 0xc6, //0x00002c4d movl %r8d, %esi + //0x00002c50 LBB0_636 + 0x4c, 0x63, 0xee, //0x00002c50 movslq %esi, %r13 + 0xb1, 0x31, //0x00002c53 movb $49, %cl + 0x31, 0xc0, //0x00002c55 xorl %eax, %eax + 0x41, 0xba, 0x10, 0x00, 0x00, 0x00, //0x00002c57 movl $16, %r10d + //0x00002c5d LBB0_637 + 0x48, 0x83, 0xf8, 0x26, //0x00002c5d cmpq $38, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00002c61 je LBB0_641 + 0x41, 0x38, 0x0c, 0x04, //0x00002c67 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00002c6b jne LBB0_642 + 0x48, 0x8d, 0x0d, 0xc8, 0x35, 0x00, 0x00, //0x00002c71 leaq $13768(%rip), %rcx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0xb6, 0x8c, 0x08, 0x8d, 0x15, 0x00, 0x00, //0x00002c78 movzbl $5517(%rax,%rcx), %ecx + 0x48, 0xff, 0xc0, //0x00002c80 incq %rax + 0x49, 0x39, 0xc5, //0x00002c83 cmpq %rax, %r13 + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00002c86 jne LBB0_637 + 0x84, 0xc9, //0x00002c8c testb %cl, %cl + 0x4c, 0x8b, 0x7d, 0xa8, //0x00002c8e movq $-88(%rbp), %r15 + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002c92 jne LBB0_643 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00002c98 jmp LBB0_644 + //0x00002c9d LBB0_641 + 0x4c, 0x8b, 0x7d, 0xa8, //0x00002c9d movq $-88(%rbp), %r15 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00002ca1 jmp LBB0_644 + //0x00002ca6 LBB0_642 + 0x4c, 0x8b, 0x7d, 0xa8, //0x00002ca6 movq $-88(%rbp), %r15 + 0x0f, 0x8d, 0x06, 0x00, 0x00, 0x00, //0x00002caa jge LBB0_644 + //0x00002cb0 LBB0_643 + 0x41, 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00002cb0 movl $15, %r10d + //0x00002cb6 LBB0_644 + 0x85, 0xf6, //0x00002cb6 testl %esi, %esi + 0x0f, 0x8e, 0xf6, 0x00, 0x00, 0x00, //0x00002cb8 jle LBB0_655 + 0x44, 0x01, 0xd6, //0x00002cbe addl %r10d, %esi + 0x48, 0x63, 0xfe, //0x00002cc1 movslq %esi, %rdi + 0x48, 0xff, 0xcf, //0x00002cc4 decq %rdi + 0x49, 0xff, 0xc5, //0x00002cc7 incq %r13 + 0x31, 0xc9, //0x00002cca xorl %ecx, %ecx + 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00002ccc movabsq $-432345564227567616, %r11 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00002cd6 jmp LBB0_648 + //0x00002cdb LBB0_646 + 0x48, 0x85, 0xc0, //0x00002cdb testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002cde movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002ce3 cmovnel %eax, %r14d + //0x00002ce7 LBB0_647 + 0xff, 0xce, //0x00002ce7 decl %esi + 0x48, 0xff, 0xcf, //0x00002ce9 decq %rdi + 0x49, 0xff, 0xcd, //0x00002cec decq %r13 + 0x49, 0x83, 0xfd, 0x01, //0x00002cef cmpq $1, %r13 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002cf3 jle LBB0_650 + //0x00002cf9 LBB0_648 + 0x4b, 0x0f, 0xbe, 0x5c, 0x2c, 0xfe, //0x00002cf9 movsbq $-2(%r12,%r13), %rbx + 0x48, 0xc1, 0xe3, 0x35, //0x00002cff shlq $53, %rbx + 0x48, 0x01, 0xcb, //0x00002d03 addq %rcx, %rbx + 0x4c, 0x01, 0xdb, //0x00002d06 addq %r11, %rbx + 0x48, 0x89, 0xd8, //0x00002d09 movq %rbx, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002d0c movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00002d16 mulq %rcx + 0x48, 0x89, 0xd1, //0x00002d19 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00002d1c shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00002d20 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002d24 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00002d28 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002d2b subq %rdx, %rax + 0x4c, 0x39, 0xff, //0x00002d2e cmpq %r15, %rdi + 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x00002d31 jae LBB0_646 + 0x04, 0x30, //0x00002d37 addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00002d39 movb %al, (%r12,%rdi) + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00002d3d jmp LBB0_647 + //0x00002d42 LBB0_650 + 0x48, 0x83, 0xfb, 0x0a, //0x00002d42 cmpq $10, %rbx + 0x0f, 0x82, 0x68, 0x00, 0x00, 0x00, //0x00002d46 jb LBB0_655 + 0x48, 0x63, 0xf6, //0x00002d4c movslq %esi, %rsi + 0x48, 0xff, 0xce, //0x00002d4f decq %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00002d52 movl $1, %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002d57 jmp LBB0_653 + //0x00002d5c LBB0_652 + 0x48, 0x85, 0xc0, //0x00002d5c testq %rax, %rax + 0x44, 0x0f, 0x45, 0xf7, //0x00002d5f cmovnel %edi, %r14d + 0x48, 0xff, 0xce, //0x00002d63 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002d66 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002d6a movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00002d6d jbe LBB0_655 + //0x00002d73 LBB0_653 + 0x48, 0x89, 0xc8, //0x00002d73 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002d76 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002d80 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00002d83 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00002d87 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00002d8b leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00002d8f movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00002d92 subq %rbx, %rax + 0x4c, 0x39, 0xfe, //0x00002d95 cmpq %r15, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00002d98 jae LBB0_652 + 0x04, 0x30, //0x00002d9e addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002da0 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00002da4 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002da7 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002dab movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002dae ja LBB0_653 + //0x00002db4 LBB0_655 + 0x45, 0x01, 0xd0, //0x00002db4 addl %r10d, %r8d + 0x49, 0x63, 0xc0, //0x00002db7 movslq %r8d, %rax + 0x49, 0x39, 0xc7, //0x00002dba cmpq %rax, %r15 + 0x41, 0x0f, 0x46, 0xc7, //0x00002dbd cmovbel %r15d, %eax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002dc1 movq $-56(%rbp), %rcx + 0x44, 0x01, 0xd1, //0x00002dc5 addl %r10d, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002dc8 movq %rcx, $-56(%rbp) + 0x85, 0xc0, //0x00002dcc testl %eax, %eax + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002dce jle LBB0_660 + 0x89, 0xc1, //0x00002dd4 movl %eax, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00002dd6 cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00002ddc jne LBB0_661 + //0x00002de2 LBB0_657 + 0x48, 0x83, 0xf9, 0x01, //0x00002de2 cmpq $1, %rcx + 0x0f, 0x8e, 0x18, 0x00, 0x00, 0x00, //0x00002de6 jle LBB0_659 + 0x48, 0x8d, 0x41, 0xff, //0x00002dec leaq $-1(%rcx), %rax + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00002df0 cmpb $48, $-2(%r12,%rcx) + 0x48, 0x89, 0xc1, //0x00002df6 movq %rax, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002df9 je LBB0_657 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00002dff jmp LBB0_661 + //0x00002e04 LBB0_659 + 0xff, 0xc9, //0x00002e04 decl %ecx + 0x89, 0xc8, //0x00002e06 movl %ecx, %eax + //0x00002e08 LBB0_660 + 0x85, 0xc0, //0x00002e08 testl %eax, %eax + 0x0f, 0x84, 0x0e, 0x01, 0x00, 0x00, //0x00002e0a je LBB0_683 + //0x00002e10 LBB0_661 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002e10 movq $-48(%rbp), %r13 + //0x00002e14 LBB0_662 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002e14 movq $-80(%rbp), %r11 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002e18 movabsq $4503599627370495, %rcx + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002e22 movq $-1, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00002e29 movq $-56(%rbp), %rsi + 0x83, 0xfe, 0x14, //0x00002e2d cmpl $20, %esi + 0x0f, 0x8f, 0x72, 0x01, 0x00, 0x00, //0x00002e30 jg LBB0_691 + 0x89, 0xf2, //0x00002e36 movl %esi, %edx + 0x85, 0xf6, //0x00002e38 testl %esi, %esi + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00002e3a jle LBB0_668 + 0x48, 0x63, 0xf0, //0x00002e40 movslq %eax, %rsi + 0x31, 0xff, //0x00002e43 xorl %edi, %edi + 0x31, 0xc9, //0x00002e45 xorl %ecx, %ecx + //0x00002e47 LBB0_665 + 0x48, 0x39, 0xf7, //0x00002e47 cmpq %rsi, %rdi + 0x0f, 0x8d, 0x1a, 0x00, 0x00, 0x00, //0x00002e4a jge LBB0_667 + 0x48, 0x8d, 0x0c, 0x89, //0x00002e50 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x3c, //0x00002e54 movsbq (%r12,%rdi), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00002e59 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x00002e5e incq %rdi + 0x48, 0x39, 0xfa, //0x00002e61 cmpq %rdi, %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00002e64 jne LBB0_665 + //0x00002e6a LBB0_667 + 0x45, 0x31, 0xc0, //0x00002e6a xorl %r8d, %r8d + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00002e6d jmp LBB0_669 + //0x00002e72 LBB0_668 + 0x31, 0xff, //0x00002e72 xorl %edi, %edi + 0x41, 0xb0, 0x01, //0x00002e74 movb $1, %r8b + 0x31, 0xc9, //0x00002e77 xorl %ecx, %ecx + //0x00002e79 LBB0_669 + 0x48, 0x8b, 0x75, 0xc8, //0x00002e79 movq $-56(%rbp), %rsi + 0x29, 0xfe, //0x00002e7d subl %edi, %esi + 0x0f, 0x8e, 0x4a, 0x00, 0x00, 0x00, //0x00002e7f jle LBB0_677 + 0x41, 0x89, 0xfa, //0x00002e85 movl %edi, %r10d + 0x41, 0xf7, 0xd2, //0x00002e88 notl %r10d + 0x44, 0x03, 0x55, 0xc8, //0x00002e8b addl $-56(%rbp), %r10d + 0x83, 0xe6, 0x07, //0x00002e8f andl $7, %esi + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002e92 je LBB0_674 + 0xf7, 0xde, //0x00002e98 negl %esi + 0x31, 0xdb, //0x00002e9a xorl %ebx, %ebx + //0x00002e9c LBB0_672 + 0x48, 0x01, 0xc9, //0x00002e9c addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002e9f leaq (%rcx,%rcx,4), %rcx + 0xff, 0xcb, //0x00002ea3 decl %ebx + 0x39, 0xde, //0x00002ea5 cmpl %ebx, %esi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002ea7 jne LBB0_672 + 0x29, 0xdf, //0x00002ead subl %ebx, %edi + //0x00002eaf LBB0_674 + 0x41, 0x83, 0xfa, 0x07, //0x00002eaf cmpl $7, %r10d + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00002eb3 jb LBB0_677 + 0x48, 0x8b, 0x75, 0xc8, //0x00002eb9 movq $-56(%rbp), %rsi + 0x29, 0xfe, //0x00002ebd subl %edi, %esi + //0x00002ebf LBB0_676 + 0x48, 0x69, 0xc9, 0x00, 0xe1, 0xf5, 0x05, //0x00002ebf imulq $100000000, %rcx, %rcx + 0x83, 0xc6, 0xf8, //0x00002ec6 addl $-8, %esi + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002ec9 jne LBB0_676 + //0x00002ecf LBB0_677 + 0x31, 0xff, //0x00002ecf xorl %edi, %edi + 0x48, 0x8b, 0x75, 0xc8, //0x00002ed1 movq $-56(%rbp), %rsi + 0x85, 0xf6, //0x00002ed5 testl %esi, %esi + 0x0f, 0x88, 0x51, 0x00, 0x00, 0x00, //0x00002ed7 js LBB0_685 + 0x39, 0xf0, //0x00002edd cmpl %esi, %eax + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002edf jle LBB0_685 + 0x41, 0x8a, 0x14, 0x14, //0x00002ee5 movb (%r12,%rdx), %dl + 0xff, 0xc6, //0x00002ee9 incl %esi + 0x39, 0xc6, //0x00002eeb cmpl %eax, %esi + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00002eed jne LBB0_684 + 0x80, 0xfa, 0x35, //0x00002ef3 cmpb $53, %dl + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00002ef6 jne LBB0_684 + 0x45, 0x85, 0xf6, //0x00002efc testl %r14d, %r14d + 0x40, 0x0f, 0x95, 0xc7, //0x00002eff setne %dil + 0x41, 0x08, 0xf8, //0x00002f03 orb %dil, %r8b + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00002f06 jne LBB0_685 + 0x48, 0x63, 0x45, 0xc8, //0x00002f0c movslq $-56(%rbp), %rax + 0x42, 0x8a, 0x7c, 0x20, 0xff, //0x00002f10 movb $-1(%rax,%r12), %dil + 0x40, 0x80, 0xe7, 0x01, //0x00002f15 andb $1, %dil + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00002f19 jmp LBB0_685 + //0x00002f1e LBB0_683 + 0x31, 0xc9, //0x00002f1e xorl %ecx, %ecx + 0x31, 0xff, //0x00002f20 xorl %edi, %edi + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00002f22 jmp LBB0_685 + //0x00002f27 LBB0_684 + 0x80, 0xfa, 0x34, //0x00002f27 cmpb $52, %dl + 0x40, 0x0f, 0x9f, 0xc7, //0x00002f2a setg %dil + //0x00002f2e LBB0_685 + 0x40, 0x0f, 0xb6, 0xff, //0x00002f2e movzbl %dil, %edi + 0x48, 0x01, 0xcf, //0x00002f32 addq %rcx, %rdi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002f35 movabsq $9007199254740992, %rax + 0x48, 0x39, 0xc7, //0x00002f3f cmpq %rax, %rdi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00002f42 jne LBB0_689 + 0x41, 0x81, 0xf9, 0xfe, 0x03, 0x00, 0x00, //0x00002f48 cmpl $1022, %r9d + 0x0f, 0x8e, 0x3a, 0x00, 0x00, 0x00, //0x00002f4f jle LBB0_690 + 0x31, 0xff, //0x00002f55 xorl %edi, %edi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002f57 movabsq $9218868437227405312, %r9 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002f61 movq $-48(%rbp), %r13 + //0x00002f65 LBB0_688 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002f65 movq $-80(%rbp), %r11 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002f69 movabsq $4503599627370495, %rcx + 0xe9, 0xbc, 0xe8, 0xff, 0xff, //0x00002f73 jmp LBB0_326 + //0x00002f78 LBB0_689 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002f78 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002f7c movq $-80(%rbp), %r11 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002f80 movabsq $4503599627370495, %rcx + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00002f8a jmp LBB0_691 + //0x00002f8f LBB0_690 + 0x41, 0xff, 0xc1, //0x00002f8f incl %r9d + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002f92 movabsq $4503599627370495, %rcx + 0x48, 0x8d, 0x79, 0x01, //0x00002f9c leaq $1(%rcx), %rdi + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002fa0 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002fa4 movq $-80(%rbp), %r11 + //0x00002fa8 LBB0_691 + 0x8a, 0x55, 0xa0, //0x00002fa8 movb $-96(%rbp), %dl + 0x48, 0x8d, 0x41, 0x01, //0x00002fab leaq $1(%rcx), %rax + 0x48, 0x21, 0xf8, //0x00002faf andq %rdi, %rax + 0x41, 0x81, 0xc1, 0xff, 0x03, 0x00, 0x00, //0x00002fb2 addl $1023, %r9d + 0x41, 0x81, 0xe1, 0xff, 0x07, 0x00, 0x00, //0x00002fb9 andl $2047, %r9d + 0x49, 0xc1, 0xe1, 0x34, //0x00002fc0 shlq $52, %r9 + 0x48, 0x85, 0xc0, //0x00002fc4 testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xc8, //0x00002fc7 cmoveq %rax, %r9 + 0xe9, 0x67, 0xe8, 0xff, 0xff, //0x00002fcb jmp LBB0_327 + //0x00002fd0 LBB0_692 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002fd0 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00002fd7 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00002fda cmpq $32, %r12 + 0x0f, 0x83, 0xa4, 0xe0, 0xff, 0xff, //0x00002fde jae LBB0_231 + 0xe9, 0xb8, 0x01, 0x00, 0x00, //0x00002fe4 jmp LBB0_717 + //0x00002fe9 LBB0_693 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002fe9 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00002ff0 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00002ff3 cmpq $32, %r12 + 0x0f, 0x83, 0x4d, 0xe1, 0xff, 0xff, //0x00002ff7 jae LBB0_240 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002ffd jmp LBB0_701 + //0x00003002 LBB0_694 + 0x44, 0x89, 0xfa, //0x00003002 movl %r15d, %edx + 0xf7, 0xd2, //0x00003005 notl %edx + 0x21, 0xca, //0x00003007 andl %ecx, %edx + 0x44, 0x8d, 0x14, 0x12, //0x00003009 leal (%rdx,%rdx), %r10d + 0x45, 0x09, 0xfa, //0x0000300d orl %r15d, %r10d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003010 movl $2863311530, %ebx + 0x44, 0x31, 0xd3, //0x00003015 xorl %r10d, %ebx + 0x21, 0xcb, //0x00003018 andl %ecx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000301a andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00003020 xorl %r15d, %r15d + 0x01, 0xd3, //0x00003023 addl %edx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x00003025 setb %r15b + 0x01, 0xdb, //0x00003029 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000302b xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x00003031 andl %r10d, %ebx + 0xf7, 0xd3, //0x00003034 notl %ebx + 0x21, 0xdf, //0x00003036 andl %ebx, %edi + 0x49, 0xc1, 0xe1, 0x10, //0x00003038 shlq $16, %r9 + 0x48, 0x85, 0xff, //0x0000303c testq %rdi, %rdi + 0x0f, 0x85, 0xa7, 0xe1, 0xff, 0xff, //0x0000303f jne LBB0_244 + //0x00003045 LBB0_695 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003045 movl $64, %ecx + //0x0000304a LBB0_696 + 0x49, 0x09, 0xc1, //0x0000304a orq %rax, %r9 + 0x48, 0x85, 0xff, //0x0000304d testq %rdi, %rdi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00003050 je LBB0_699 + 0x4d, 0x85, 0xc9, //0x00003056 testq %r9, %r9 + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00003059 je LBB0_709 + 0x49, 0x0f, 0xbc, 0xc1, //0x0000305f bsfq %r9, %rax + 0xe9, 0xa2, 0x00, 0x00, 0x00, //0x00003063 jmp LBB0_710 + //0x00003068 LBB0_699 + 0x4d, 0x85, 0xc9, //0x00003068 testq %r9, %r9 + 0x0f, 0x85, 0xb0, 0x00, 0x00, 0x00, //0x0000306b jne LBB0_712 + 0x49, 0x83, 0xc5, 0x20, //0x00003071 addq $32, %r13 + 0x49, 0x83, 0xc4, 0xe0, //0x00003075 addq $-32, %r12 + //0x00003079 LBB0_701 + 0x4d, 0x85, 0xff, //0x00003079 testq %r15, %r15 + 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x0000307c jne LBB0_727 + 0x4c, 0x89, 0xc0, //0x00003082 movq %r8, %rax + 0x4d, 0x85, 0xe4, //0x00003085 testq %r12, %r12 + 0x0f, 0x84, 0x1b, 0x02, 0x00, 0x00, //0x00003088 je LBB0_731 + //0x0000308e LBB0_703 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x0000308e movzbl (%r13), %ecx + 0x80, 0xf9, 0x22, //0x00003093 cmpb $34, %cl + 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00003096 je LBB0_713 + 0x80, 0xf9, 0x5c, //0x0000309c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x0000309f je LBB0_707 + 0x80, 0xf9, 0x20, //0x000030a5 cmpb $32, %cl + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x000030a8 jb LBB0_712 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000030ae movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000030b5 movl $1, %edx + 0x49, 0x01, 0xd5, //0x000030ba addq %rdx, %r13 + 0x49, 0x01, 0xcc, //0x000030bd addq %rcx, %r12 + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000030c0 jne LBB0_703 + 0xe9, 0xde, 0x01, 0x00, 0x00, //0x000030c6 jmp LBB0_731 + //0x000030cb LBB0_707 + 0x49, 0x83, 0xfc, 0x01, //0x000030cb cmpq $1, %r12 + 0x0f, 0x84, 0xd4, 0x01, 0x00, 0x00, //0x000030cf je LBB0_731 + 0x4c, 0x89, 0xe9, //0x000030d5 movq %r13, %rcx + 0x48, 0x2b, 0x4d, 0xc0, //0x000030d8 subq $-64(%rbp), %rcx + 0x48, 0x83, 0xf8, 0xff, //0x000030dc cmpq $-1, %rax + 0x4c, 0x0f, 0x44, 0xc1, //0x000030e0 cmoveq %rcx, %r8 + 0x48, 0x0f, 0x44, 0xc1, //0x000030e4 cmoveq %rcx, %rax + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000030e8 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000030ef movl $2, %edx + 0x49, 0x01, 0xd5, //0x000030f4 addq %rdx, %r13 + 0x49, 0x01, 0xcc, //0x000030f7 addq %rcx, %r12 + 0x0f, 0x85, 0x8e, 0xff, 0xff, 0xff, //0x000030fa jne LBB0_703 + 0xe9, 0xa4, 0x01, 0x00, 0x00, //0x00003100 jmp LBB0_731 + //0x00003105 LBB0_709 + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003105 movl $64, %eax + //0x0000310a LBB0_710 + 0x48, 0x39, 0xc8, //0x0000310a cmpq %rcx, %rax + 0x0f, 0x82, 0x0e, 0x00, 0x00, 0x00, //0x0000310d jb LBB0_712 + 0x4c, 0x2b, 0x6d, 0xc0, //0x00003113 subq $-64(%rbp), %r13 + 0x4d, 0x8d, 0x5c, 0x0d, 0x01, //0x00003117 leaq $1(%r13,%rcx), %r11 + 0xe9, 0xe6, 0xdf, 0xff, 0xff, //0x0000311c jmp LBB0_237 + //0x00003121 LBB0_712 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003121 movq $-2, %r11 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003128 movq $-48(%rbp), %rcx + 0xe9, 0x83, 0x01, 0x00, 0x00, //0x0000312c jmp LBB0_732 + //0x00003131 LBB0_713 + 0x4c, 0x2b, 0x6d, 0xc0, //0x00003131 subq $-64(%rbp), %r13 + 0x49, 0xff, 0xc5, //0x00003135 incq %r13 + 0x4d, 0x89, 0xeb, //0x00003138 movq %r13, %r11 + 0xe9, 0xc7, 0xdf, 0xff, 0xff, //0x0000313b jmp LBB0_237 + //0x00003140 LBB0_714 + 0x4c, 0x89, 0xe9, //0x00003140 movq %r13, %rcx + 0x48, 0x2b, 0x4d, 0xc0, //0x00003143 subq $-64(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc0, //0x00003147 bsfq %rax, %r8 + 0x49, 0x01, 0xc8, //0x0000314b addq %rcx, %r8 + 0x48, 0x09, 0xd7, //0x0000314e orq %rdx, %rdi + 0x48, 0x89, 0xc1, //0x00003151 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00003154 orq %r15, %rcx + 0x0f, 0x84, 0x94, 0xdf, 0xff, 0xff, //0x00003157 je LBB0_234 + //0x0000315d LBB0_715 + 0x44, 0x89, 0xf9, //0x0000315d movl %r15d, %ecx + 0xf7, 0xd1, //0x00003160 notl %ecx + 0x21, 0xc1, //0x00003162 andl %eax, %ecx + 0x8d, 0x14, 0x09, //0x00003164 leal (%rcx,%rcx), %edx + 0x44, 0x09, 0xfa, //0x00003167 orl %r15d, %edx + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000316a movl $2863311530, %ebx + 0x31, 0xd3, //0x0000316f xorl %edx, %ebx + 0x21, 0xc3, //0x00003171 andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003173 andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00003179 xorl %r15d, %r15d + 0x01, 0xcb, //0x0000317c addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x0000317e setb %r15b + 0x01, 0xdb, //0x00003182 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00003184 xorl $1431655765, %ebx + 0x21, 0xd3, //0x0000318a andl %edx, %ebx + 0xf7, 0xd3, //0x0000318c notl %ebx + 0x21, 0xdf, //0x0000318e andl %ebx, %edi + 0x48, 0x85, 0xff, //0x00003190 testq %rdi, %rdi + 0x0f, 0x85, 0x61, 0xdf, 0xff, 0xff, //0x00003193 jne LBB0_235 + //0x00003199 LBB0_716 + 0x49, 0x83, 0xc5, 0x20, //0x00003199 addq $32, %r13 + 0x49, 0x83, 0xc4, 0xe0, //0x0000319d addq $-32, %r12 + //0x000031a1 LBB0_717 + 0x4d, 0x85, 0xff, //0x000031a1 testq %r15, %r15 + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x000031a4 jne LBB0_729 + 0x4d, 0x89, 0xc1, //0x000031aa movq %r8, %r9 + 0x4d, 0x85, 0xe4, //0x000031ad testq %r12, %r12 + 0x0f, 0x84, 0xf3, 0x00, 0x00, 0x00, //0x000031b0 je LBB0_731 + //0x000031b6 LBB0_719 + 0x48, 0x8b, 0x55, 0xc0, //0x000031b6 movq $-64(%rbp), %rdx + 0x48, 0xf7, 0xd2, //0x000031ba notq %rdx + //0x000031bd LBB0_720 + 0x4d, 0x8d, 0x5d, 0x01, //0x000031bd leaq $1(%r13), %r11 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x000031c1 movzbl (%r13), %eax + 0x3c, 0x22, //0x000031c6 cmpb $34, %al + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x000031c8 je LBB0_725 + 0x49, 0x8d, 0x5c, 0x24, 0xff, //0x000031ce leaq $-1(%r12), %rbx + 0x3c, 0x5c, //0x000031d3 cmpb $92, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000031d5 je LBB0_723 + 0x49, 0x89, 0xdc, //0x000031db movq %rbx, %r12 + 0x4d, 0x89, 0xdd, //0x000031de movq %r11, %r13 + 0x48, 0x85, 0xdb, //0x000031e1 testq %rbx, %rbx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000031e4 jne LBB0_720 + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000031ea jmp LBB0_731 + //0x000031ef LBB0_723 + 0x48, 0x85, 0xdb, //0x000031ef testq %rbx, %rbx + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x000031f2 je LBB0_731 + 0x49, 0x01, 0xd3, //0x000031f8 addq %rdx, %r11 + 0x49, 0x83, 0xf9, 0xff, //0x000031fb cmpq $-1, %r9 + 0x4d, 0x0f, 0x44, 0xc3, //0x000031ff cmoveq %r11, %r8 + 0x4d, 0x0f, 0x44, 0xcb, //0x00003203 cmoveq %r11, %r9 + 0x49, 0x83, 0xc5, 0x02, //0x00003207 addq $2, %r13 + 0x49, 0x83, 0xc4, 0xfe, //0x0000320b addq $-2, %r12 + 0x4c, 0x89, 0xe3, //0x0000320f movq %r12, %rbx + 0x48, 0x85, 0xdb, //0x00003212 testq %rbx, %rbx + 0x0f, 0x85, 0xa2, 0xff, 0xff, 0xff, //0x00003215 jne LBB0_720 + 0xe9, 0x89, 0x00, 0x00, 0x00, //0x0000321b jmp LBB0_731 + //0x00003220 LBB0_725 + 0x4c, 0x2b, 0x5d, 0xc0, //0x00003220 subq $-64(%rbp), %r11 + 0xe9, 0xde, 0xde, 0xff, 0xff, //0x00003224 jmp LBB0_237 + //0x00003229 LBB0_726 + 0x4c, 0x89, 0xe8, //0x00003229 movq %r13, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x0000322c subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x00003230 bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x00003234 addq %rax, %r8 + 0xe9, 0x90, 0xdf, 0xff, 0xff, //0x00003237 jmp LBB0_242 + //0x0000323c LBB0_727 + 0x4d, 0x85, 0xe4, //0x0000323c testq %r12, %r12 + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x0000323f je LBB0_733 + 0x48, 0x8b, 0x45, 0xc0, //0x00003245 movq $-64(%rbp), %rax + 0x48, 0xf7, 0xd0, //0x00003249 notq %rax + 0x4c, 0x01, 0xe8, //0x0000324c addq %r13, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000324f cmpq $-1, %r8 + 0x4c, 0x89, 0xc1, //0x00003253 movq %r8, %rcx + 0x48, 0x0f, 0x44, 0xc8, //0x00003256 cmoveq %rax, %rcx + 0x49, 0x0f, 0x45, 0xc0, //0x0000325a cmovneq %r8, %rax + 0x49, 0xff, 0xc5, //0x0000325e incq %r13 + 0x49, 0xff, 0xcc, //0x00003261 decq %r12 + 0x49, 0x89, 0xc8, //0x00003264 movq %rcx, %r8 + 0x4d, 0x85, 0xe4, //0x00003267 testq %r12, %r12 + 0x0f, 0x85, 0x1e, 0xfe, 0xff, 0xff, //0x0000326a jne LBB0_703 + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00003270 jmp LBB0_731 + //0x00003275 LBB0_729 + 0x4d, 0x85, 0xe4, //0x00003275 testq %r12, %r12 + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00003278 je LBB0_733 + 0x4c, 0x8b, 0x4d, 0xc0, //0x0000327e movq $-64(%rbp), %r9 + 0x49, 0xf7, 0xd1, //0x00003282 notq %r9 + 0x4d, 0x01, 0xe9, //0x00003285 addq %r13, %r9 + 0x49, 0x83, 0xf8, 0xff, //0x00003288 cmpq $-1, %r8 + 0x4c, 0x89, 0xc0, //0x0000328c movq %r8, %rax + 0x49, 0x0f, 0x44, 0xc1, //0x0000328f cmoveq %r9, %rax + 0x4d, 0x0f, 0x45, 0xc8, //0x00003293 cmovneq %r8, %r9 + 0x49, 0xff, 0xc5, //0x00003297 incq %r13 + 0x49, 0xff, 0xcc, //0x0000329a decq %r12 + 0x49, 0x89, 0xc0, //0x0000329d movq %rax, %r8 + 0x4d, 0x85, 0xe4, //0x000032a0 testq %r12, %r12 + 0x0f, 0x85, 0x0d, 0xff, 0xff, 0xff, //0x000032a3 jne LBB0_719 + //0x000032a9 LBB0_731 + 0x48, 0x8b, 0x4d, 0xd0, //0x000032a9 movq $-48(%rbp), %rcx + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000032ad movq $-1, %r11 + //0x000032b4 LBB0_732 + 0x4c, 0x89, 0x19, //0x000032b4 movq %r11, (%rcx) + 0x49, 0x89, 0xf3, //0x000032b7 movq %rsi, %r11 + 0xe9, 0x2a, 0xd0, 0xff, 0xff, //0x000032ba jmp LBB0_38 + //0x000032bf LBB0_733 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000032bf movq $-1, %r11 + 0x48, 0x8b, 0x4d, 0xd0, //0x000032c6 movq $-48(%rbp), %rcx + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x000032ca jmp LBB0_732 + 0x90, //0x000032cf .p2align 2, 0x90 + // // .set L0_0_set_37, LBB0_37-LJTI0_0 + // // .set L0_0_set_99, LBB0_99-LJTI0_0 + // // .set L0_0_set_100, LBB0_100-LJTI0_0 + // // .set L0_0_set_111, LBB0_111-LJTI0_0 + // // .set L0_0_set_30, LBB0_30-LJTI0_0 + // // .set L0_0_set_112, LBB0_112-LJTI0_0 + // // .set L0_0_set_113, LBB0_113-LJTI0_0 + // // .set L0_0_set_114, LBB0_114-LJTI0_0 + // // .set L0_0_set_115, LBB0_115-LJTI0_0 + // // .set L0_0_set_118, LBB0_118-LJTI0_0 + // // .set L0_0_set_121, LBB0_121-LJTI0_0 + // // .set L0_0_set_124, LBB0_124-LJTI0_0 + // // .set L0_0_set_125, LBB0_125-LJTI0_0 + //0x000032d0 LJTI0_0 + 0x11, 0xd0, 0xff, 0xff, //0x000032d0 .long L0_0_set_37 + 0x13, 0xd4, 0xff, 0xff, //0x000032d4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032d8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032dc .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032e0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032e4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032e8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032ec .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032f0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032f4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032f8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000032fc .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003300 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003304 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003308 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000330c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003310 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003314 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003318 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000331c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003320 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003324 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003328 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000332c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003330 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003334 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003338 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000333c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003340 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003344 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003348 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000334c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003350 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003354 .long L0_0_set_99 + 0x23, 0xd4, 0xff, 0xff, //0x00003358 .long L0_0_set_100 + 0x13, 0xd4, 0xff, 0xff, //0x0000335c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003360 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003364 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003368 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000336c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003370 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003374 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003378 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000337c .long L0_0_set_99 + 0xd5, 0xd5, 0xff, 0xff, //0x00003380 .long L0_0_set_111 + 0x93, 0xcf, 0xff, 0xff, //0x00003384 .long L0_0_set_30 + 0x13, 0xd4, 0xff, 0xff, //0x00003388 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000338c .long L0_0_set_99 + 0x93, 0xcf, 0xff, 0xff, //0x00003390 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x00003394 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x00003398 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x0000339c .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033a0 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033a4 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033a8 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033ac .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033b0 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033b4 .long L0_0_set_30 + 0xe7, 0xd5, 0xff, 0xff, //0x000033b8 .long L0_0_set_112 + 0x13, 0xd4, 0xff, 0xff, //0x000033bc .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033c0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033c4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033c8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033cc .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033d0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033d4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033d8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033dc .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033e0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033e4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033e8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033ec .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033f0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033f4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033f8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000033fc .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003400 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003404 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003408 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000340c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003410 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003414 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003418 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000341c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003420 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003424 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003428 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000342c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003430 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003434 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003438 .long L0_0_set_99 + 0xf9, 0xd5, 0xff, 0xff, //0x0000343c .long L0_0_set_113 + 0x13, 0xd4, 0xff, 0xff, //0x00003440 .long L0_0_set_99 + 0x06, 0xd6, 0xff, 0xff, //0x00003444 .long L0_0_set_114 + 0x13, 0xd4, 0xff, 0xff, //0x00003448 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000344c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003450 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003454 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003458 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000345c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003460 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003464 .long L0_0_set_99 + 0x18, 0xd6, 0xff, 0xff, //0x00003468 .long L0_0_set_115 + 0x13, 0xd4, 0xff, 0xff, //0x0000346c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003470 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003474 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003478 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000347c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003480 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003484 .long L0_0_set_99 + 0x4a, 0xd6, 0xff, 0xff, //0x00003488 .long L0_0_set_118 + 0x13, 0xd4, 0xff, 0xff, //0x0000348c .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003490 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003494 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x00003498 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x0000349c .long L0_0_set_99 + 0x7a, 0xd6, 0xff, 0xff, //0x000034a0 .long L0_0_set_121 + 0x13, 0xd4, 0xff, 0xff, //0x000034a4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000034a8 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000034ac .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000034b0 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000034b4 .long L0_0_set_99 + 0x13, 0xd4, 0xff, 0xff, //0x000034b8 .long L0_0_set_99 + 0xaa, 0xd6, 0xff, 0xff, //0x000034bc .long L0_0_set_124 + 0x13, 0xd4, 0xff, 0xff, //0x000034c0 .long L0_0_set_99 + 0xb7, 0xd6, 0xff, 0xff, //0x000034c4 .long L0_0_set_125 + // // .set L0_1_set_65, LBB0_65-LJTI0_1 + // // .set L0_1_set_75, LBB0_75-LJTI0_1 + // // .set L0_1_set_72, LBB0_72-LJTI0_1 + // // .set L0_1_set_67, LBB0_67-LJTI0_1 + // // .set L0_1_set_70, LBB0_70-LJTI0_1 + //0x000034c8 LJTI0_1 + 0x5f, 0xd0, 0xff, 0xff, //0x000034c8 .long L0_1_set_65 + 0xe1, 0xd0, 0xff, 0xff, //0x000034cc .long L0_1_set_75 + 0x5f, 0xd0, 0xff, 0xff, //0x000034d0 .long L0_1_set_65 + 0xbc, 0xd0, 0xff, 0xff, //0x000034d4 .long L0_1_set_72 + 0xe1, 0xd0, 0xff, 0xff, //0x000034d8 .long L0_1_set_75 + 0x78, 0xd0, 0xff, 0xff, //0x000034dc .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034e0 .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034e4 .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034e8 .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034ec .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034f0 .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034f4 .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034f8 .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x000034fc .long L0_1_set_67 + 0x78, 0xd0, 0xff, 0xff, //0x00003500 .long L0_1_set_67 + 0xe1, 0xd0, 0xff, 0xff, //0x00003504 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003508 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000350c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003510 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003514 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003518 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000351c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003520 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003524 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003528 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000352c .long L0_1_set_75 + 0xa1, 0xd0, 0xff, 0xff, //0x00003530 .long L0_1_set_70 + 0xe1, 0xd0, 0xff, 0xff, //0x00003534 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003538 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000353c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003540 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003544 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003548 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000354c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003550 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003554 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003558 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000355c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003560 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003564 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003568 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000356c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003570 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003574 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003578 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000357c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003580 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003584 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003588 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000358c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003590 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003594 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x00003598 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x0000359c .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x000035a0 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x000035a4 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x000035a8 .long L0_1_set_75 + 0xe1, 0xd0, 0xff, 0xff, //0x000035ac .long L0_1_set_75 + 0xa1, 0xd0, 0xff, 0xff, //0x000035b0 .long L0_1_set_70 + //0x000035b4 .p2align 2, 0x00 + //0x000035b4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000035b4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000035b8 .p2align 4, 0x00 + //0x000035c0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000035c0 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000035c8 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000035d0 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000035d8 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000035e0 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000035e8 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000035f0 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000035f8 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00003600 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00003608 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00003610 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00003618 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00003620 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00003628 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00003630 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003638 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00003640 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00003648 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00003650 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00003658 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00003660 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00003668 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00003670 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003678 .p2align 4, 0x00 + //0x00003680 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00003680 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00003688 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00003690 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00003698 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x000036a0 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x000036a8 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x000036b0 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x000036b8 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x000036c0 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x000036c8 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x000036d0 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x000036d8 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x000036e0 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x000036e8 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000036f0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000036f8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00003700 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00003708 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00003710 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00003718 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00003720 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00003728 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00003730 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00003738 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00003740 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00003748 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00003750 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00003758 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00003760 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00003768 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00003770 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00003778 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00003780 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00003788 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00003790 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00003798 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x000037a0 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x000037a8 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x000037b0 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x000037b8 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x000037c0 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x000037c8 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x000037d0 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x000037d8 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x000037e0 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x000037e8 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000037f0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000037f8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00003800 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00003808 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00003810 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00003818 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00003820 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00003828 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00003830 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00003838 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00003840 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00003848 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00003850 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00003858 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00003860 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00003868 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00003870 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00003878 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00003880 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00003888 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00003890 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00003898 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x000038a0 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x000038a8 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x000038b0 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x000038b8 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x000038c0 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x000038c8 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x000038d0 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x000038d8 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x000038e0 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x000038e8 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x000038f0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x000038f8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00003900 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00003908 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00003910 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00003918 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00003920 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00003928 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00003930 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00003938 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00003940 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00003948 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00003950 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00003958 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00003960 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00003968 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00003970 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00003978 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00003980 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00003988 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00003990 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00003998 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x000039a0 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x000039a8 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x000039b0 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x000039b8 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x000039c0 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x000039c8 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x000039d0 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x000039d8 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x000039e0 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x000039e8 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x000039f0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x000039f8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00003a00 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00003a08 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00003a10 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00003a18 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00003a20 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00003a28 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00003a30 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00003a38 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00003a40 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00003a48 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00003a50 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00003a58 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00003a60 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00003a68 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00003a70 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00003a78 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00003a80 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00003a88 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00003a90 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00003a98 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00003aa0 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00003aa8 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00003ab0 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00003ab8 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00003ac0 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00003ac8 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00003ad0 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00003ad8 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00003ae0 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00003ae8 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00003af0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00003af8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00003b00 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00003b08 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00003b10 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00003b18 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00003b20 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00003b28 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00003b30 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00003b38 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00003b40 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00003b48 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00003b50 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00003b58 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00003b60 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00003b68 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00003b70 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00003b78 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00003b80 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00003b88 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00003b90 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00003b98 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00003ba0 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00003ba8 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00003bb0 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00003bb8 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00003bc0 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00003bc8 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00003bd0 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00003bd8 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00003be0 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00003be8 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00003bf0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00003bf8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00003c00 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00003c08 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00003c10 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00003c18 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00003c20 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00003c28 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00003c30 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00003c38 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00003c40 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00003c48 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00003c50 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00003c58 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00003c60 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00003c68 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00003c70 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00003c78 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00003c80 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00003c88 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00003c90 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00003c98 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00003ca0 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00003ca8 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00003cb0 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00003cb8 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00003cc0 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00003cc8 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00003cd0 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00003cd8 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00003ce0 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00003ce8 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00003cf0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00003cf8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00003d00 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00003d08 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00003d10 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00003d18 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00003d20 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00003d28 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00003d30 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00003d38 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00003d40 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00003d48 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00003d50 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00003d58 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00003d60 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00003d68 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00003d70 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00003d78 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00003d80 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00003d88 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00003d90 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00003d98 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00003da0 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00003da8 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00003db0 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00003db8 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00003dc0 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00003dc8 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00003dd0 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00003dd8 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00003de0 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00003de8 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00003df0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00003df8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00003e00 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00003e08 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00003e10 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00003e18 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00003e20 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00003e28 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00003e30 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00003e38 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00003e40 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00003e48 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00003e50 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00003e58 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00003e60 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00003e68 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00003e70 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00003e78 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00003e80 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00003e88 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00003e90 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00003e98 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00003ea0 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00003ea8 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00003eb0 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00003eb8 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00003ec0 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00003ec8 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00003ed0 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00003ed8 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00003ee0 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00003ee8 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00003ef0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00003ef8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00003f00 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00003f08 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00003f10 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00003f18 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00003f20 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00003f28 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00003f30 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00003f38 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00003f40 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00003f48 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00003f50 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00003f58 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00003f60 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00003f68 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00003f70 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00003f78 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00003f80 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00003f88 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00003f90 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00003f98 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00003fa0 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00003fa8 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00003fb0 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00003fb8 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00003fc0 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00003fc8 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00003fd0 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00003fd8 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00003fe0 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00003fe8 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00003ff0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00003ff8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00004000 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00004008 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00004010 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00004018 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00004020 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00004028 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00004030 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00004038 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00004040 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00004048 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00004050 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00004058 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00004060 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00004068 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00004070 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00004078 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00004080 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00004088 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00004090 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00004098 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x000040a0 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x000040a8 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x000040b0 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x000040b8 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x000040c0 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x000040c8 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x000040d0 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x000040d8 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x000040e0 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x000040e8 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x000040f0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x000040f8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00004100 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00004108 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00004110 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00004118 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00004120 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00004128 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00004130 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00004138 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00004140 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00004148 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00004150 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00004158 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00004160 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00004168 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00004170 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00004178 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00004180 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00004188 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00004190 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00004198 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x000041a0 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x000041a8 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x000041b0 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x000041b8 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x000041c0 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x000041c8 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x000041d0 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x000041d8 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x000041e0 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x000041e8 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x000041f0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x000041f8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00004200 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00004208 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00004210 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00004218 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00004220 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00004228 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00004230 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00004238 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00004240 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00004248 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00004250 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00004258 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00004260 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00004268 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00004270 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00004278 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00004280 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00004288 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00004290 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00004298 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x000042a0 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x000042a8 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x000042b0 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x000042b8 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x000042c0 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x000042c8 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x000042d0 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x000042d8 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x000042e0 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x000042e8 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x000042f0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x000042f8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00004300 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00004308 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00004310 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00004318 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00004320 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00004328 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00004330 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00004338 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00004340 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00004348 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00004350 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00004358 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00004360 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00004368 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00004370 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00004378 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00004380 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00004388 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00004390 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00004398 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x000043a0 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x000043a8 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x000043b0 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x000043b8 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x000043c0 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x000043c8 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x000043d0 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x000043d8 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x000043e0 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x000043e8 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x000043f0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x000043f8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00004400 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00004408 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00004410 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00004418 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00004420 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00004428 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00004430 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00004438 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00004440 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00004448 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00004450 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00004458 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00004460 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00004468 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00004470 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00004478 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00004480 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00004488 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00004490 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00004498 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x000044a0 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x000044a8 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x000044b0 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x000044b8 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x000044c0 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x000044c8 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x000044d0 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x000044d8 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x000044e0 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x000044e8 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x000044f0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x000044f8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00004500 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00004508 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00004510 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00004518 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00004520 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00004528 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00004530 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00004538 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00004540 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00004548 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00004550 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00004558 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00004560 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00004568 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00004570 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00004578 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00004580 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00004588 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00004590 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00004598 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x000045a0 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x000045a8 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x000045b0 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x000045b8 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x000045c0 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x000045c8 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x000045d0 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x000045d8 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x000045e0 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x000045e8 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x000045f0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x000045f8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00004600 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00004608 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00004610 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00004618 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00004620 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00004628 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00004630 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00004638 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00004640 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00004648 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00004650 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00004658 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00004660 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00004668 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00004670 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00004678 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00004680 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00004688 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00004690 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00004698 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x000046a0 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x000046a8 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x000046b0 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x000046b8 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x000046c0 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x000046c8 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x000046d0 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x000046d8 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x000046e0 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x000046e8 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x000046f0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x000046f8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00004700 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00004708 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00004710 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00004718 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00004720 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00004728 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00004730 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00004738 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00004740 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00004748 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x00004750 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x00004758 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x00004760 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x00004768 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x00004770 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x00004778 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x00004780 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x00004788 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x00004790 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x00004798 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x000047a0 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x000047a8 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x000047b0 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x000047b8 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x000047c0 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x000047c8 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x000047d0 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x000047d8 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x000047e0 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x000047e8 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x000047f0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x000047f8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00004800 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00004808 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00004810 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00004818 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00004820 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00004828 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00004830 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00004838 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00004840 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00004848 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x00004850 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x00004858 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x00004860 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x00004868 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x00004870 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x00004878 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x00004880 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x00004888 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x00004890 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x00004898 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x000048a0 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x000048a8 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x000048b0 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x000048b8 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x000048c0 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x000048c8 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x000048d0 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x000048d8 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x000048e0 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x000048e8 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x000048f0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x000048f8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00004900 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00004908 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00004910 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00004918 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00004920 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00004928 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00004930 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00004938 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00004940 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00004948 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x00004950 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x00004958 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x00004960 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x00004968 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x00004970 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x00004978 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x00004980 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x00004988 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x00004990 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x00004998 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x000049a0 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x000049a8 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x000049b0 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x000049b8 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x000049c0 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x000049c8 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x000049d0 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x000049d8 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x000049e0 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x000049e8 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x000049f0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x000049f8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00004a00 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00004a08 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00004a10 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00004a18 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00004a20 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00004a28 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00004a30 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00004a38 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00004a40 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00004a48 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x00004a50 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00004a58 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x00004a60 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00004a68 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x00004a70 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00004a78 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x00004a80 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00004a88 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x00004a90 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00004a98 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x00004aa0 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00004aa8 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00004ab0 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00004ab8 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00004ac0 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00004ac8 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00004ad0 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00004ad8 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00004ae0 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00004ae8 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00004af0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00004af8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00004b00 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00004b08 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00004b10 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00004b18 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00004b20 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00004b28 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00004b30 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00004b38 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00004b40 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00004b48 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x00004b50 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00004b58 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x00004b60 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00004b68 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x00004b70 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00004b78 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x00004b80 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00004b88 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x00004b90 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00004b98 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x00004ba0 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00004ba8 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00004bb0 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00004bb8 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00004bc0 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00004bc8 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00004bd0 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00004bd8 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00004be0 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00004be8 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00004bf0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00004bf8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00004c00 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00004c08 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00004c10 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00004c18 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00004c20 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00004c28 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00004c30 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004c48 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00004c58 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00004c68 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00004c78 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00004c88 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00004c98 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ca0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00004ca8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00004cb8 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cc0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00004cc8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cd0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00004cd8 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ce0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00004ce8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00004cf8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00004d08 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00004d18 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d20 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00004d28 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d30 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00004d38 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d40 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00004d48 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d50 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00004d58 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d60 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00004d68 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d70 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00004d78 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d80 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00004d88 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d90 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00004d98 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004da0 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00004da8 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004db0 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00004db8 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004dc0 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00004dc8 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004dd0 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00004dd8 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004de0 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00004de8 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004df0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00004df8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00004e00 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00004e08 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00004e10 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00004e18 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00004e20 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00004e28 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00004e30 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00004e38 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00004e40 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00004e48 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00004e50 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00004e58 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00004e60 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00004e68 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00004e70 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00004e78 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x00004e80 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00004e88 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x00004e90 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00004e98 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x00004ea0 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00004ea8 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00004eb0 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00004eb8 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00004ec0 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00004ec8 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00004ed0 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00004ed8 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00004ee0 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00004ee8 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00004ef0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00004ef8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00004f00 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00004f08 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00004f10 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00004f18 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00004f20 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00004f28 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00004f30 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00004f38 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00004f40 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00004f48 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00004f50 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00004f58 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00004f60 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00004f68 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00004f70 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00004f78 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x00004f80 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x00004f88 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x00004f90 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x00004f98 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x00004fa0 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x00004fa8 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00004fb0 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00004fb8 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00004fc0 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00004fc8 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00004fd0 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00004fd8 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00004fe0 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00004fe8 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00004ff0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00004ff8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00005000 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00005008 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00005010 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00005018 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00005020 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00005028 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00005030 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00005038 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00005040 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00005048 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00005050 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00005058 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x00005060 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x00005068 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x00005070 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x00005078 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x00005080 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x00005088 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x00005090 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x00005098 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x000050a0 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x000050a8 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x000050b0 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x000050b8 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x000050c0 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x000050c8 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x000050d0 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x000050d8 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x000050e0 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x000050e8 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x000050f0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x000050f8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00005100 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00005108 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00005110 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00005118 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00005120 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00005128 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00005130 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00005138 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00005140 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00005148 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00005150 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00005158 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00005160 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00005168 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00005170 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00005178 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00005180 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00005188 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00005190 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00005198 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x000051a0 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x000051a8 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x000051b0 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x000051b8 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x000051c0 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x000051c8 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x000051d0 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x000051d8 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x000051e0 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x000051e8 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x000051f0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x000051f8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00005200 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00005208 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00005210 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00005218 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00005220 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00005228 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00005230 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00005238 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00005240 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00005248 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00005250 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00005258 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00005260 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00005268 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00005270 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00005278 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00005280 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00005288 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00005290 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00005298 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x000052a0 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x000052a8 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x000052b0 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x000052b8 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x000052c0 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x000052c8 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x000052d0 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x000052d8 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x000052e0 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x000052e8 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x000052f0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x000052f8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00005300 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00005308 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00005310 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00005318 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00005320 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00005328 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00005330 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00005338 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00005340 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00005348 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00005350 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00005358 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00005360 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00005368 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00005370 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00005378 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00005380 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00005388 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00005390 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00005398 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x000053a0 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x000053a8 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x000053b0 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x000053b8 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x000053c0 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x000053c8 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x000053d0 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x000053d8 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x000053e0 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x000053e8 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x000053f0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x000053f8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00005400 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00005408 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00005410 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00005418 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00005420 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00005428 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00005430 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00005438 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00005440 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00005448 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00005450 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00005458 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00005460 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00005468 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00005470 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00005478 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00005480 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00005488 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00005490 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00005498 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x000054a0 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x000054a8 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x000054b0 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x000054b8 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x000054c0 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x000054c8 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x000054d0 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x000054d8 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x000054e0 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x000054e8 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x000054f0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x000054f8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00005500 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00005508 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00005510 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00005518 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00005520 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00005528 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00005530 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00005538 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00005540 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00005548 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00005550 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00005558 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00005560 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00005568 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00005570 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00005578 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00005580 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00005588 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00005590 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00005598 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x000055a0 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x000055a8 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x000055b0 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x000055b8 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x000055c0 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x000055c8 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x000055d0 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x000055d8 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x000055e0 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x000055e8 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x000055f0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x000055f8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00005600 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00005608 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00005610 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00005618 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00005620 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00005628 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00005630 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00005638 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00005640 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00005648 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00005650 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00005658 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00005660 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00005668 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00005670 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00005678 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00005680 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00005688 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00005690 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00005698 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x000056a0 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x000056a8 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x000056b0 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x000056b8 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x000056c0 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x000056c8 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x000056d0 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x000056d8 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x000056e0 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x000056e8 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x000056f0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x000056f8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00005700 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00005708 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00005710 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00005718 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00005720 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00005728 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00005730 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00005738 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00005740 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00005748 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x00005750 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x00005758 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x00005760 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x00005768 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x00005770 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x00005778 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x00005780 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x00005788 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x00005790 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x00005798 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x000057a0 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x000057a8 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x000057b0 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x000057b8 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x000057c0 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x000057c8 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x000057d0 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x000057d8 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x000057e0 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x000057e8 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x000057f0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x000057f8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00005800 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00005808 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00005810 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00005818 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00005820 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00005828 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00005830 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00005838 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00005840 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00005848 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x00005850 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x00005858 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x00005860 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x00005868 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x00005870 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x00005878 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x00005880 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x00005888 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x00005890 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x00005898 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x000058a0 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x000058a8 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x000058b0 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x000058b8 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x000058c0 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x000058c8 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x000058d0 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x000058d8 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x000058e0 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x000058e8 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x000058f0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x000058f8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00005900 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00005908 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00005910 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00005918 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00005920 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00005928 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00005930 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00005938 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00005940 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00005948 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x00005950 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x00005958 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x00005960 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x00005968 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x00005970 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x00005978 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x00005980 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x00005988 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x00005990 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x00005998 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x000059a0 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x000059a8 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x000059b0 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x000059b8 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x000059c0 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x000059c8 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x000059d0 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x000059d8 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x000059e0 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x000059e8 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x000059f0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x000059f8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00005a00 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00005a08 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00005a10 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00005a18 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00005a20 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00005a28 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00005a30 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00005a38 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00005a40 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00005a48 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x00005a50 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x00005a58 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x00005a60 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x00005a68 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x00005a70 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x00005a78 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x00005a80 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x00005a88 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x00005a90 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x00005a98 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x00005aa0 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x00005aa8 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00005ab0 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00005ab8 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00005ac0 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00005ac8 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00005ad0 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00005ad8 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00005ae0 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00005ae8 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00005af0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00005af8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00005b00 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00005b08 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00005b10 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00005b18 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00005b20 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00005b28 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00005b30 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00005b38 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00005b40 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00005b48 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x00005b50 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x00005b58 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x00005b60 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x00005b68 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x00005b70 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x00005b78 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x00005b80 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x00005b88 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x00005b90 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x00005b98 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x00005ba0 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x00005ba8 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00005bb0 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00005bb8 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00005bc0 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00005bc8 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00005bd0 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00005bd8 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00005be0 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00005be8 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00005bf0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00005bf8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00005c00 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00005c08 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00005c10 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00005c18 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00005c20 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00005c28 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00005c30 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00005c38 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00005c40 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00005c48 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x00005c50 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x00005c58 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x00005c60 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x00005c68 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x00005c70 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x00005c78 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x00005c80 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x00005c88 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x00005c90 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x00005c98 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x00005ca0 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x00005ca8 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00005cb0 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00005cb8 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00005cc0 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00005cc8 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00005cd0 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00005cd8 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00005ce0 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00005ce8 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00005cf0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00005cf8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00005d00 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00005d08 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00005d10 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00005d18 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00005d20 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00005d28 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00005d30 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00005d38 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00005d40 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00005d48 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00005d50 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00005d58 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00005d60 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00005d68 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00005d70 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00005d78 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x00005d80 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x00005d88 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x00005d90 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x00005d98 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x00005da0 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x00005da8 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00005db0 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00005db8 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00005dc0 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00005dc8 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00005dd0 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00005dd8 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00005de0 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00005de8 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00005df0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00005df8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00005e00 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00005e08 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00005e10 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00005e18 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00005e20 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00005e28 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00005e30 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00005e38 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00005e40 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00005e48 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00005e50 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00005e58 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00005e60 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00005e68 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00005e70 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00005e78 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x00005e80 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x00005e88 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x00005e90 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x00005e98 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x00005ea0 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x00005ea8 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00005eb0 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00005eb8 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00005ec0 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00005ec8 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00005ed0 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00005ed8 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00005ee0 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00005ee8 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00005ef0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00005ef8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00005f00 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00005f08 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00005f10 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00005f18 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00005f20 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00005f28 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00005f30 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00005f38 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00005f40 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00005f48 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00005f50 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00005f58 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00005f60 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00005f68 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00005f70 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00005f78 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x00005f80 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x00005f88 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x00005f90 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x00005f98 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x00005fa0 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x00005fa8 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00005fb0 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00005fb8 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00005fc0 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00005fc8 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00005fd0 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00005fd8 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00005fe0 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00005fe8 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00005ff0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00005ff8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00006000 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00006008 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00006010 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00006018 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00006020 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00006028 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00006030 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00006038 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00006040 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00006048 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00006050 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00006058 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x00006060 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x00006068 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x00006070 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x00006078 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x00006080 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x00006088 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x00006090 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x00006098 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x000060a0 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x000060a8 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x000060b0 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x000060b8 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x000060c0 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x000060c8 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x000060d0 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x000060d8 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x000060e0 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x000060e8 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x000060f0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x000060f8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x00006100 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x00006108 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x00006110 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x00006118 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x00006120 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x00006128 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x00006130 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x00006138 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x00006140 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x00006148 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x00006150 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x00006158 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x00006160 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x00006168 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x00006170 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x00006178 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x00006180 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x00006188 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x00006190 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x00006198 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x000061a0 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x000061a8 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x000061b0 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x000061b8 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x000061c0 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x000061c8 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x000061d0 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x000061d8 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x000061e0 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x000061e8 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x000061f0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x000061f8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00006210 .p2align 4, 0x00 + //0x00006210 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x00006210 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x00006214 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x00006218 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000621c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x00006220 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x00006224 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x00006228 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000622c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x00006230 .long 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006234 .p2align 4, 0x00 + //0x00006240 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062a0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000062a8 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ac QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000630c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00006310 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006314 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006374 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00006378 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000637c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000638c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000639c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000063dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000063e0 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063e4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006444 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00006448 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000644c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000645c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000646c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000647c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000648c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000649c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000064ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000064b0 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064b4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006514 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00006518 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000651c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000652c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000653c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000654c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000655c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000656c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000657c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00006580 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006584 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006594 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000065e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000065e8 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065ec QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000660c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000661c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000662c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000663c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000664c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006650 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006654 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006664 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000066b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000066b8 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066bc QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000670c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000671c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006720 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006724 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006784 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006788 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000678c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000679c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000067ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000067f0 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067f4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006854 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00006858 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000685c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000686c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000687c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000688c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000689c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000068bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000068c0 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000068c4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006924 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006928 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000692c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000693c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000694c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000695c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000696c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000697c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000698c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006990 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00006994 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000069f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000069f8 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x000069fc QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006a5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006a60 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00006a64 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ac4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006ac8 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00006acc QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006b2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006b30 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00006b34 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006b94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006b98 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00006b9c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bac QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006bfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006c00 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00006c04 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c14 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006c64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006c68 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x00006c6c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c7c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ccc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006cd0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00006cd4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ce4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006d34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00006d38 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00006d3c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d4c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006d9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00006da0 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00006da4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006db4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006e04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00006e08 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00006e0c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e1c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006e6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006e70 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00006e74 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e84 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ed4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006ed8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00006edc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006eec QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006f3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006f40 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00006f44 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f54 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006fa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006fa8 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00006fac QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fbc QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000700c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00007010 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00007014 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007024 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007074 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00007078 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0000707c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000708c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000709c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000070dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000070e0 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x000070e4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070f4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007144 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00007148 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0000714c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000715c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000716c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000717c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000718c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000719c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000071ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000071b0 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x000071b4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071c4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007214 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00007218 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0000721c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000722c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000723c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000724c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000725c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000726c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000727c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007280 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00007284 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00007294 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000072e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000072e8 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x000072ec QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000072fc QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000730c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000731c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000732c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000733c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000734c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007350 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00007354 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00007364 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000073b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000073b8 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x000073bc QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x000073cc QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000740c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000741c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00007420 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00007424 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00007434 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007484 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00007488 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0000748c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0000749c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000074ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000074f0 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x000074f4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00007504 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007514 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007554 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00007558 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0000755c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0000756c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000757c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000758c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000759c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000075bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000075c0 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x000075c4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x000075d4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075e4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007624 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00007628 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x0000762c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x0000763c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000764c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000765c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000766c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000767c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000768c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007690 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00007694 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x000076a4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076b4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000076f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000076f8 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x000076fc QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0000770c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000771c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000772c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000773c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000774c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000775c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007760 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00007764 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00007774 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007784 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000077c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000077c8 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x000077cc QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x000077dc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077ec QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000780c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000781c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000782c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007830 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00007834 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00007844 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007854 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007894 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007898 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0000789c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x000078ac QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078bc QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000078fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007900 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00007904 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00007914 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007924 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007964 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007968 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0000796c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0000797c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000798c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000799c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000079cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000079d0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x000079d4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x000079e4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079f4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007a34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007a38 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00007a3c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00007a4c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a5c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007a9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00007aa0 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00007aa4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00007ab4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ac4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007b04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber.go new file mode 100644 index 000000000..ca4cf984f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vnumber uintptr + +//go:nosplit +func vnumber(s *string, p *int, v *types.JsonState) { + F_vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_subr.go new file mode 100644 index 000000000..b7e2d3473 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vnumber = 48 +) + +const ( + _stack__vnumber = 112 +) + +const ( + _size__vnumber = 9048 +) + +var ( + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {751, 112}, + {755, 48}, + {756, 40}, + {758, 32}, + {760, 24}, + {762, 16}, + {764, 8}, + {768, 0}, + {9045, 112}, + } +) + +var _cfunc_vnumber = []loader.CFunc{ + {"_vnumber_entry", 0, _entry__vnumber, 0, nil}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_text_amd64.go new file mode 100644 index 000000000..12446358f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vnumber_text_amd64.go @@ -0,0 +1,4387 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_vnumber = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x00, 0x00, 0x30, 0x43, // .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00000004 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00000008 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000000c .long 0 + //0x00000010 LCPI0_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00000010 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00000018 .quad 4985484787499139072 + //0x00000020 .p2align 3, 0x00 + //0x00000020 LCPI0_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00000020 .quad 4831355200913801216 + //0x00000028 LCPI0_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00000028 .quad -4392016835940974592 + //0x00000030 .p2align 4, 0x90 + //0x00000030 _vnumber + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x48, 0x83, 0xec, 0x40, //0x0000003d subq $64, %rsp + 0x49, 0x89, 0xd6, //0x00000041 movq %rdx, %r14 + 0x4c, 0x8b, 0x07, //0x00000044 movq (%rdi), %r8 + 0x4c, 0x8b, 0x5f, 0x08, //0x00000047 movq $8(%rdi), %r11 + 0x48, 0x8b, 0x06, //0x0000004b movq (%rsi), %rax + 0x4c, 0x8b, 0x62, 0x20, //0x0000004e movq $32(%rdx), %r12 + 0x4c, 0x8b, 0x6a, 0x28, //0x00000052 movq $40(%rdx), %r13 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00000056 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x0000005d vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00000061 vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00000066 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00000069 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd8, //0x0000006d cmpq %r11, %rax + 0x0f, 0x83, 0x9f, 0x02, 0x00, 0x00, //0x00000070 jae LBB0_50 + 0x41, 0x8a, 0x14, 0x00, //0x00000076 movb (%r8,%rax), %dl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000007a movl $1, %r9d + 0x80, 0xfa, 0x2d, //0x00000080 cmpb $45, %dl + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000083 jne LBB0_4 + 0x48, 0xff, 0xc0, //0x00000089 incq %rax + 0x4c, 0x39, 0xd8, //0x0000008c cmpq %r11, %rax + 0x0f, 0x83, 0x80, 0x02, 0x00, 0x00, //0x0000008f jae LBB0_50 + 0x41, 0x8a, 0x14, 0x00, //0x00000095 movb (%r8,%rax), %dl + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00000099 movl $-1, %r9d + //0x0000009f LBB0_4 + 0x8d, 0x4a, 0xd0, //0x0000009f leal $-48(%rdx), %ecx + 0x80, 0xf9, 0x0a, //0x000000a2 cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000000a5 jb LBB0_6 + //0x000000ab LBB0_5 + 0x48, 0x89, 0x06, //0x000000ab movq %rax, (%rsi) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000000ae movq $-2, (%r14) + 0xe9, 0x65, 0x02, 0x00, 0x00, //0x000000b5 jmp LBB0_51 + //0x000000ba LBB0_6 + 0x80, 0xfa, 0x30, //0x000000ba cmpb $48, %dl + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000000bd jne LBB0_10 + 0x48, 0x8d, 0x48, 0x01, //0x000000c3 leaq $1(%rax), %rcx + 0x4c, 0x39, 0xd8, //0x000000c7 cmpq %r11, %rax + 0x0f, 0x83, 0xcb, 0x00, 0x00, 0x00, //0x000000ca jae LBB0_21 + 0x41, 0x8a, 0x1c, 0x08, //0x000000d0 movb (%r8,%rcx), %bl + 0x80, 0xc3, 0xd2, //0x000000d4 addb $-46, %bl + 0x80, 0xfb, 0x37, //0x000000d7 cmpb $55, %bl + 0x0f, 0x87, 0xbb, 0x00, 0x00, 0x00, //0x000000da ja LBB0_21 + 0x0f, 0xb6, 0xfb, //0x000000e0 movzbl %bl, %edi + 0x48, 0xbb, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000e3 movabsq $36028797027352577, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x000000ed btq %rdi, %rbx + 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x000000f1 jae LBB0_21 + //0x000000f7 LBB0_10 + 0x4c, 0x39, 0xd8, //0x000000f7 cmpq %r11, %rax + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000000fa jae LBB0_20 + 0x48, 0xff, 0xc0, //0x00000100 incq %rax + 0x31, 0xc9, //0x00000103 xorl %ecx, %ecx + 0x31, 0xdb, //0x00000105 xorl %ebx, %ebx + 0x45, 0x31, 0xff, //0x00000107 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000010a .p2align 4, 0x90 + //0x00000110 LBB0_12 + 0x83, 0xfb, 0x12, //0x00000110 cmpl $18, %ebx + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00000113 jg LBB0_14 + 0x0f, 0xb6, 0xd2, //0x00000119 movzbl %dl, %edx + 0x4b, 0x8d, 0x3c, 0xbf, //0x0000011c leaq (%r15,%r15,4), %rdi + 0x4c, 0x8d, 0x7c, 0x7a, 0xd0, //0x00000120 leaq $-48(%rdx,%rdi,2), %r15 + 0xff, 0xc3, //0x00000125 incl %ebx + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000127 jmp LBB0_15 + 0x90, 0x90, 0x90, 0x90, //0x0000012c .p2align 4, 0x90 + //0x00000130 LBB0_14 + 0xff, 0xc1, //0x00000130 incl %ecx + //0x00000132 LBB0_15 + 0x49, 0x39, 0xc3, //0x00000132 cmpq %rax, %r11 + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00000135 je LBB0_22 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x0000013b movzbl (%r8,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00000140 leal $-48(%rdx), %edi + 0x48, 0xff, 0xc0, //0x00000143 incq %rax + 0x40, 0x80, 0xff, 0x0a, //0x00000146 cmpb $10, %dil + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x0000014a jb LBB0_12 + 0x31, 0xff, //0x00000150 xorl %edi, %edi + 0x85, 0xc9, //0x00000152 testl %ecx, %ecx + 0x40, 0x0f, 0x9f, 0xc7, //0x00000154 setg %dil + 0x80, 0xfa, 0x2e, //0x00000158 cmpb $46, %dl + 0x0f, 0x85, 0xdf, 0x02, 0x00, 0x00, //0x0000015b jne LBB0_66 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00000161 movq $8, (%r14) + 0x4c, 0x39, 0xd8, //0x00000168 cmpq %r11, %rax + 0x0f, 0x83, 0xa4, 0x01, 0x00, 0x00, //0x0000016b jae LBB0_50 + 0x89, 0x7d, 0xc0, //0x00000171 movl %edi, $-64(%rbp) + 0x41, 0x8a, 0x14, 0x00, //0x00000174 movb (%r8,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00000178 addb $-48, %dl + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000017b movl $8, %r10d + 0x80, 0xfa, 0x0a, //0x00000181 cmpb $10, %dl + 0x0f, 0x83, 0x21, 0xff, 0xff, 0xff, //0x00000184 jae LBB0_5 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000018a jmp LBB0_24 + //0x0000018f LBB0_20 + 0x31, 0xc9, //0x0000018f xorl %ecx, %ecx + 0x31, 0xdb, //0x00000191 xorl %ebx, %ebx + 0x45, 0x31, 0xff, //0x00000193 xorl %r15d, %r15d + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000196 jmp LBB0_23 + //0x0000019b LBB0_21 + 0x48, 0x89, 0x0e, //0x0000019b movq %rcx, (%rsi) + 0xe9, 0x7c, 0x01, 0x00, 0x00, //0x0000019e jmp LBB0_51 + //0x000001a3 LBB0_22 + 0x4c, 0x89, 0xd8, //0x000001a3 movq %r11, %rax + //0x000001a6 LBB0_23 + 0x31, 0xd2, //0x000001a6 xorl %edx, %edx + 0x85, 0xc9, //0x000001a8 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x000001aa setg %dl + 0x89, 0x55, 0xc0, //0x000001ad movl %edx, $-64(%rbp) + 0x41, 0xba, 0x09, 0x00, 0x00, 0x00, //0x000001b0 movl $9, %r10d + //0x000001b6 LBB0_24 + 0x85, 0xc9, //0x000001b6 testl %ecx, %ecx + 0x44, 0x89, 0x4d, 0xc8, //0x000001b8 movl %r9d, $-56(%rbp) + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x000001bc jne LBB0_33 + //0x000001c2 LBB0_25 + 0x4d, 0x85, 0xff, //0x000001c2 testq %r15, %r15 + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x000001c5 jne LBB0_33 + 0x4c, 0x39, 0xd8, //0x000001cb cmpq %r11, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x000001ce jae LBB0_31 + 0x41, 0x89, 0xc1, //0x000001d4 movl %eax, %r9d + 0x45, 0x29, 0xd9, //0x000001d7 subl %r11d, %r9d + 0x31, 0xdb, //0x000001da xorl %ebx, %ebx + 0x31, 0xc9, //0x000001dc xorl %ecx, %ecx + 0x90, 0x90, //0x000001de .p2align 4, 0x90 + //0x000001e0 LBB0_28 + 0x41, 0x80, 0x3c, 0x00, 0x30, //0x000001e0 cmpb $48, (%r8,%rax) + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000001e5 jne LBB0_32 + 0x48, 0xff, 0xc0, //0x000001eb incq %rax + 0xff, 0xc9, //0x000001ee decl %ecx + 0x49, 0x39, 0xc3, //0x000001f0 cmpq %rax, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000001f3 jne LBB0_28 + 0x45, 0x31, 0xff, //0x000001f9 xorl %r15d, %r15d + 0x41, 0x83, 0xfa, 0x09, //0x000001fc cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x00000200 movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000204 movq %r11, $-88(%rbp) + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00000208 je LBB0_53 + 0xe9, 0x6c, 0x01, 0x00, 0x00, //0x0000020e jmp LBB0_57 + //0x00000213 LBB0_31 + 0x31, 0xc9, //0x00000213 xorl %ecx, %ecx + 0x31, 0xdb, //0x00000215 xorl %ebx, %ebx + //0x00000217 LBB0_32 + 0x45, 0x31, 0xff, //0x00000217 xorl %r15d, %r15d + //0x0000021a LBB0_33 + 0x4c, 0x39, 0xd8, //0x0000021a cmpq %r11, %rax + 0x0f, 0x83, 0x41, 0x00, 0x00, 0x00, //0x0000021d jae LBB0_38 + 0x83, 0xfb, 0x12, //0x00000223 cmpl $18, %ebx + 0x0f, 0x8f, 0x38, 0x00, 0x00, 0x00, //0x00000226 jg LBB0_38 + 0x90, 0x90, 0x90, 0x90, //0x0000022c .p2align 4, 0x90 + //0x00000230 LBB0_35 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x00000230 movzbl (%r8,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00000235 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x00000238 cmpb $9, %dil + 0x0f, 0x87, 0x22, 0x00, 0x00, 0x00, //0x0000023c ja LBB0_38 + 0x4b, 0x8d, 0x3c, 0xbf, //0x00000242 leaq (%r15,%r15,4), %rdi + 0x4c, 0x8d, 0x7c, 0x7a, 0xd0, //0x00000246 leaq $-48(%rdx,%rdi,2), %r15 + 0xff, 0xc9, //0x0000024b decl %ecx + 0x48, 0xff, 0xc0, //0x0000024d incq %rax + 0x83, 0xfb, 0x11, //0x00000250 cmpl $17, %ebx + 0x0f, 0x8f, 0x0b, 0x00, 0x00, 0x00, //0x00000253 jg LBB0_38 + 0xff, 0xc3, //0x00000259 incl %ebx + 0x4c, 0x39, 0xd8, //0x0000025b cmpq %r11, %rax + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x0000025e jb LBB0_35 + //0x00000264 LBB0_38 + 0x4c, 0x39, 0xd8, //0x00000264 cmpq %r11, %rax + 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x00000267 jae LBB0_52 + 0x41, 0x8a, 0x1c, 0x00, //0x0000026d movb (%r8,%rax), %bl + 0x8d, 0x53, 0xd0, //0x00000271 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x00000274 cmpb $9, %dl + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x00000277 ja LBB0_44 + 0x49, 0x8d, 0x53, 0xff, //0x0000027d leaq $-1(%r11), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000281 .p2align 4, 0x90 + //0x00000290 LBB0_41 + 0x48, 0x39, 0xc2, //0x00000290 cmpq %rax, %rdx + 0x0f, 0x84, 0xc4, 0x01, 0x00, 0x00, //0x00000293 je LBB0_67 + 0x41, 0x0f, 0xb6, 0x5c, 0x00, 0x01, //0x00000299 movzbl $1(%r8,%rax), %ebx + 0x48, 0xff, 0xc0, //0x0000029f incq %rax + 0x8d, 0x7b, 0xd0, //0x000002a2 leal $-48(%rbx), %edi + 0x40, 0x80, 0xff, 0x09, //0x000002a5 cmpb $9, %dil + 0x0f, 0x86, 0xe1, 0xff, 0xff, 0xff, //0x000002a9 jbe LBB0_41 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x000002af movl $1, $-64(%rbp) + //0x000002b6 LBB0_44 + 0x80, 0xcb, 0x20, //0x000002b6 orb $32, %bl + 0x80, 0xfb, 0x65, //0x000002b9 cmpb $101, %bl + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x000002bc jne LBB0_52 + 0x48, 0x8d, 0x50, 0x01, //0x000002c2 leaq $1(%rax), %rdx + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000002c6 movq $8, (%r14) + 0x4c, 0x39, 0xda, //0x000002cd cmpq %r11, %rdx + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x000002d0 jae LBB0_50 + 0x41, 0x8a, 0x1c, 0x10, //0x000002d6 movb (%r8,%rdx), %bl + 0x80, 0xfb, 0x2d, //0x000002da cmpb $45, %bl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000002dd je LBB0_48 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000002e3 movl $1, %r10d + 0x80, 0xfb, 0x2b, //0x000002e9 cmpb $43, %bl + 0x0f, 0x85, 0x10, 0x05, 0x00, 0x00, //0x000002ec jne LBB0_102 + //0x000002f2 LBB0_48 + 0x48, 0x83, 0xc0, 0x02, //0x000002f2 addq $2, %rax + 0x4c, 0x39, 0xd8, //0x000002f6 cmpq %r11, %rax + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x000002f9 jae LBB0_50 + 0x31, 0xd2, //0x000002ff xorl %edx, %edx + 0x80, 0xfb, 0x2b, //0x00000301 cmpb $43, %bl + 0x0f, 0x94, 0xc2, //0x00000304 sete %dl + 0x44, 0x8d, 0x54, 0x12, 0xff, //0x00000307 leal $-1(%rdx,%rdx), %r10d + 0x41, 0x8a, 0x1c, 0x00, //0x0000030c movb (%r8,%rax), %bl + 0xe9, 0xf0, 0x04, 0x00, 0x00, //0x00000310 jmp LBB0_103 + //0x00000315 LBB0_50 + 0x4c, 0x89, 0x1e, //0x00000315 movq %r11, (%rsi) + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x00000318 movq $-1, (%r14) + //0x0000031f LBB0_51 + 0x48, 0x83, 0xc4, 0x40, //0x0000031f addq $64, %rsp + 0x5b, //0x00000323 popq %rbx + 0x41, 0x5c, //0x00000324 popq %r12 + 0x41, 0x5d, //0x00000326 popq %r13 + 0x41, 0x5e, //0x00000328 popq %r14 + 0x41, 0x5f, //0x0000032a popq %r15 + 0x5d, //0x0000032c popq %rbp + 0xc5, 0xf8, 0x77, //0x0000032d vzeroupper + 0xc3, //0x00000330 retq + //0x00000331 LBB0_52 + 0x41, 0x89, 0xc9, //0x00000331 movl %ecx, %r9d + 0x49, 0x89, 0xc3, //0x00000334 movq %rax, %r11 + 0x41, 0x83, 0xfa, 0x09, //0x00000337 cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x0000033b movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x0000033f movq %r11, $-88(%rbp) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00000343 jne LBB0_57 + //0x00000349 LBB0_53 + 0x45, 0x85, 0xc9, //0x00000349 testl %r9d, %r9d + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000034c jne LBB0_56 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000352 movabsq $-9223372036854775808, %rax + 0x48, 0x63, 0x4d, 0xc8, //0x0000035c movslq $-56(%rbp), %rcx + 0x4d, 0x85, 0xff, //0x00000360 testq %r15, %r15 + 0x0f, 0x89, 0x3b, 0x01, 0x00, 0x00, //0x00000363 jns LBB0_70 + 0x4c, 0x89, 0xfa, //0x00000369 movq %r15, %rdx + 0x48, 0x21, 0xca, //0x0000036c andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x0000036f cmpq %rax, %rdx + 0x0f, 0x84, 0x2c, 0x01, 0x00, 0x00, //0x00000372 je LBB0_70 + //0x00000378 LBB0_56 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00000378 movq $8, (%r14) + //0x0000037f LBB0_57 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000037f movabsq $-9223372036854775808, %rdi + 0x4c, 0x89, 0xf8, //0x00000389 movq %r15, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x0000038c shrq $52, %rax + 0x4c, 0x89, 0x75, 0x98, //0x00000390 movq %r14, $-104(%rbp) + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000394 je LBB0_61 + //0x0000039a LBB0_58 + 0x41, 0x8d, 0x81, 0x5c, 0x01, 0x00, 0x00, //0x0000039a leal $348(%r9), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000003a1 cmpl $695, %eax + 0x0f, 0x87, 0x84, 0x02, 0x00, 0x00, //0x000003a6 ja LBB0_85 + 0x4d, 0x85, 0xff, //0x000003ac testq %r15, %r15 + 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x000003af je LBB0_76 + //0x000003b5 LBB0_60 + 0x4d, 0x0f, 0xbd, 0xd7, //0x000003b5 bsrq %r15, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000003b9 xorq $63, %r10 + 0xe9, 0x71, 0x01, 0x00, 0x00, //0x000003bd jmp LBB0_77 + //0x000003c2 LBB0_61 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc7, //0x000003c2 vmovq %r15, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x31, 0xfc, 0xff, 0xff, //0x000003c7 vpunpckldq $-975(%rip), %xmm0, %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x39, 0xfc, 0xff, 0xff, //0x000003cf vsubpd $-967(%rip), %xmm0, %xmm0 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x000003d7 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x000003dd vaddsd %xmm0, %xmm1, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x000003e1 vmovq %xmm0, %rax + 0x8b, 0x4d, 0xc8, //0x000003e6 movl $-56(%rbp), %ecx + 0x89, 0xcb, //0x000003e9 movl %ecx, %ebx + 0xc1, 0xeb, 0x1f, //0x000003eb shrl $31, %ebx + 0x48, 0xc1, 0xe3, 0x3f, //0x000003ee shlq $63, %rbx + 0x48, 0x09, 0xc3, //0x000003f2 orq %rax, %rbx + 0x4d, 0x85, 0xff, //0x000003f5 testq %r15, %r15 + 0x0f, 0x84, 0x4f, 0x1f, 0x00, 0x00, //0x000003f8 je LBB0_507 + 0x45, 0x85, 0xc9, //0x000003fe testl %r9d, %r9d + 0x0f, 0x84, 0x46, 0x1f, 0x00, 0x00, //0x00000401 je LBB0_507 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x00000407 vmovq %rbx, %xmm0 + 0x41, 0x8d, 0x41, 0xff, //0x0000040c leal $-1(%r9), %eax + 0x83, 0xf8, 0x24, //0x00000410 cmpl $36, %eax + 0x0f, 0x87, 0x65, 0x00, 0x00, 0x00, //0x00000413 ja LBB0_68 + 0x41, 0x83, 0xf9, 0x17, //0x00000419 cmpl $23, %r9d + 0x0f, 0x8c, 0xbf, 0x00, 0x00, 0x00, //0x0000041d jl LBB0_71 + 0x49, 0x63, 0xc1, //0x00000423 movslq %r9d, %rax + 0x48, 0x8d, 0x0d, 0x63, 0x1f, 0x00, 0x00, //0x00000426 leaq $8035(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x0000042d vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00000436 movl $22, %eax + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x0000043b jmp LBB0_72 + //0x00000440 LBB0_66 + 0x89, 0x7d, 0xc0, //0x00000440 movl %edi, $-64(%rbp) + 0x48, 0xff, 0xc8, //0x00000443 decq %rax + 0x41, 0xba, 0x09, 0x00, 0x00, 0x00, //0x00000446 movl $9, %r10d + 0x85, 0xc9, //0x0000044c testl %ecx, %ecx + 0x44, 0x89, 0x4d, 0xc8, //0x0000044e movl %r9d, $-56(%rbp) + 0x0f, 0x84, 0x6a, 0xfd, 0xff, 0xff, //0x00000452 je LBB0_25 + 0xe9, 0xbd, 0xfd, 0xff, 0xff, //0x00000458 jmp LBB0_33 + //0x0000045d LBB0_67 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x0000045d movl $1, $-64(%rbp) + 0x41, 0x89, 0xc9, //0x00000464 movl %ecx, %r9d + 0x41, 0x83, 0xfa, 0x09, //0x00000467 cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x0000046b movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x0000046f movq %r11, $-88(%rbp) + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x00000473 je LBB0_53 + 0xe9, 0x01, 0xff, 0xff, 0xff, //0x00000479 jmp LBB0_57 + //0x0000047e LBB0_68 + 0x41, 0x83, 0xf9, 0xea, //0x0000047e cmpl $-22, %r9d + 0x0f, 0x82, 0x12, 0xff, 0xff, 0xff, //0x00000482 jb LBB0_58 + 0x41, 0xf7, 0xd9, //0x00000488 negl %r9d + 0x49, 0x63, 0xc1, //0x0000048b movslq %r9d, %rax + 0x48, 0x8d, 0x0d, 0xfb, 0x1e, 0x00, 0x00, //0x0000048e leaq $7931(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00000495 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x0000049a vmovq %xmm0, %rbx + 0xe9, 0xa9, 0x1e, 0x00, 0x00, //0x0000049f jmp LBB0_507 + //0x000004a4 LBB0_70 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc7, //0x000004a4 vmovq %r15, %xmm0 + 0x4c, 0x0f, 0xaf, 0xf9, //0x000004a9 imulq %rcx, %r15 + 0xc5, 0xf9, 0x62, 0x05, 0x4b, 0xfb, 0xff, 0xff, //0x000004ad vpunpckldq $-1205(%rip), %xmm0, %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x53, 0xfb, 0xff, 0xff, //0x000004b5 vsubpd $-1197(%rip), %xmm0, %xmm0 /* LCPI0_1+0(%rip) */ + 0x4d, 0x89, 0x7e, 0x10, //0x000004bd movq %r15, $16(%r14) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x000004c1 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x000004c7 vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x000004cb andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x000004ce vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x000004d3 orq %rax, %rcx + 0x49, 0x89, 0x4e, 0x08, //0x000004d6 movq %rcx, $8(%r14) + 0x4c, 0x89, 0x1e, //0x000004da movq %r11, (%rsi) + 0xe9, 0x3d, 0xfe, 0xff, 0xff, //0x000004dd jmp LBB0_51 + //0x000004e2 LBB0_71 + 0x44, 0x89, 0xc8, //0x000004e2 movl %r9d, %eax + //0x000004e5 LBB0_72 + 0xc5, 0xf9, 0x2e, 0x05, 0x33, 0xfb, 0xff, 0xff, //0x000004e5 vucomisd $-1229(%rip), %xmm0 /* LCPI0_2+0(%rip) */ + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000004ed ja LBB0_75 + 0xc5, 0xfb, 0x10, 0x0d, 0x2d, 0xfb, 0xff, 0xff, //0x000004f3 vmovsd $-1235(%rip), %xmm1 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x000004fb vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x18, 0x00, 0x00, 0x00, //0x000004ff ja LBB0_75 + 0x89, 0xc0, //0x00000505 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x82, 0x1e, 0x00, 0x00, //0x00000507 leaq $7810(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x0000050e vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x00000513 vmovq %xmm0, %rbx + 0xe9, 0x30, 0x1e, 0x00, 0x00, //0x00000518 jmp LBB0_507 + //0x0000051d LBB0_75 + 0x41, 0x8d, 0x81, 0x5c, 0x01, 0x00, 0x00, //0x0000051d leal $348(%r9), %eax + 0x4d, 0x85, 0xff, //0x00000524 testq %r15, %r15 + 0x0f, 0x85, 0x88, 0xfe, 0xff, 0xff, //0x00000527 jne LBB0_60 + //0x0000052d LBB0_76 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000052d movl $64, %r10d + //0x00000533 LBB0_77 + 0x4c, 0x89, 0xfb, //0x00000533 movq %r15, %rbx + 0x44, 0x89, 0xd1, //0x00000536 movl %r10d, %ecx + 0x48, 0xd3, 0xe3, //0x00000539 shlq %cl, %rbx + 0x89, 0xc6, //0x0000053c movl %eax, %esi + 0x48, 0xc1, 0xe6, 0x04, //0x0000053e shlq $4, %rsi + 0x48, 0x8d, 0x05, 0x07, 0x1f, 0x00, 0x00, //0x00000542 leaq $7943(%rip), %rax /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x8b, 0x44, 0x06, 0x08, //0x00000549 movq $8(%rsi,%rax), %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000054e movq %rax, $-80(%rbp) + 0x48, 0xf7, 0xe3, //0x00000552 mulq %rbx + 0x49, 0x89, 0xc6, //0x00000555 movq %rax, %r14 + 0x49, 0x89, 0xd3, //0x00000558 movq %rdx, %r11 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000055b andl $511, %edx + 0x48, 0x89, 0xd9, //0x00000561 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000564 notq %rcx + 0x48, 0x39, 0xc8, //0x00000567 cmpq %rcx, %rax + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x0000056a jbe LBB0_82 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00000570 cmpl $511, %edx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000576 jne LBB0_82 + 0x48, 0x89, 0xd8, //0x0000057c movq %rbx, %rax + 0x48, 0x8d, 0x15, 0xca, 0x1e, 0x00, 0x00, //0x0000057f leaq $7882(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x16, //0x00000586 mulq (%rsi,%rdx) + 0x49, 0x01, 0xd6, //0x0000058a addq %rdx, %r14 + 0x49, 0x83, 0xd3, 0x00, //0x0000058d adcq $0, %r11 + 0x44, 0x89, 0xda, //0x00000591 movl %r11d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00000594 andl $511, %edx + 0x48, 0x39, 0xc8, //0x0000059a cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x0000059d jbe LBB0_82 + 0x49, 0x83, 0xfe, 0xff, //0x000005a3 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000005a7 jne LBB0_82 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000005ad cmpl $511, %edx + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x000005b3 je LBB0_85 + //0x000005b9 LBB0_82 + 0x4c, 0x89, 0xd8, //0x000005b9 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x000005bc shrq $63, %rax + 0x8d, 0x48, 0x09, //0x000005c0 leal $9(%rax), %ecx + 0x49, 0xd3, 0xeb, //0x000005c3 shrq %cl, %r11 + 0x4c, 0x09, 0xf2, //0x000005c6 orq %r14, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000005c9 jne LBB0_84 + 0x44, 0x89, 0xd9, //0x000005cf movl %r11d, %ecx + 0x83, 0xe1, 0x03, //0x000005d2 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x000005d5 cmpl $1, %ecx + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x000005d8 je LBB0_85 + //0x000005de LBB0_84 + 0x41, 0x69, 0xc9, 0x6a, 0x52, 0x03, 0x00, //0x000005de imull $217706, %r9d, %ecx + 0xc1, 0xf9, 0x10, //0x000005e5 sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x000005e8 addl $1087, %ecx + 0x4c, 0x63, 0xf1, //0x000005ee movslq %ecx, %r14 + 0x4c, 0x89, 0xf2, //0x000005f1 movq %r14, %rdx + 0x4c, 0x29, 0xd2, //0x000005f4 subq %r10, %rdx + 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000005f7 movabsq $126100789566373888, %r10 + 0x48, 0x83, 0xf0, 0x01, //0x00000601 xorq $1, %rax + 0x48, 0x29, 0xc2, //0x00000605 subq %rax, %rdx + 0x44, 0x89, 0xd8, //0x00000608 movl %r11d, %eax + 0x83, 0xe0, 0x01, //0x0000060b andl $1, %eax + 0x4c, 0x01, 0xd8, //0x0000060e addq %r11, %rax + 0x48, 0x89, 0xc1, //0x00000611 movq %rax, %rcx + 0x4c, 0x21, 0xd1, //0x00000614 andq %r10, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00000617 cmpq $1, %rcx + 0x48, 0x83, 0xda, 0xff, //0x0000061b sbbq $-1, %rdx + 0x48, 0x8d, 0x5a, 0xff, //0x0000061f leaq $-1(%rdx), %rbx + 0x48, 0x81, 0xfb, 0xfd, 0x07, 0x00, 0x00, //0x00000623 cmpq $2045, %rbx + 0x0f, 0x86, 0x6e, 0x00, 0x00, 0x00, //0x0000062a jbe LBB0_90 + //0x00000630 LBB0_85 + 0x48, 0x8b, 0x45, 0xa0, //0x00000630 movq $-96(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00000634 movq (%rax), %rsi + 0x4d, 0x8d, 0x14, 0x30, //0x00000637 leaq (%r8,%rsi), %r10 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000063b movq $-88(%rbp), %rcx + 0x48, 0x29, 0xf1, //0x0000063f subq %rsi, %rcx + 0x4d, 0x85, 0xed, //0x00000642 testq %r13, %r13 + 0x0f, 0x84, 0x36, 0x03, 0x00, 0x00, //0x00000645 je LBB0_116 + 0x41, 0xc6, 0x04, 0x24, 0x00, //0x0000064b movb $0, (%r12) + 0x49, 0x83, 0xfd, 0x01, //0x00000650 cmpq $1, %r13 + 0x0f, 0x84, 0x27, 0x03, 0x00, 0x00, //0x00000654 je LBB0_116 + 0x4d, 0x8d, 0x4d, 0xff, //0x0000065a leaq $-1(%r13), %r9 + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000065e movl $1, %edi + 0x49, 0x81, 0xf9, 0x80, 0x00, 0x00, 0x00, //0x00000663 cmpq $128, %r9 + 0x0f, 0x82, 0x00, 0x03, 0x00, 0x00, //0x0000066a jb LBB0_115 + 0x4c, 0x89, 0xcf, //0x00000670 movq %r9, %rdi + 0x48, 0x83, 0xe7, 0x80, //0x00000673 andq $-128, %rdi + 0x48, 0x8d, 0x57, 0x80, //0x00000677 leaq $-128(%rdi), %rdx + 0x48, 0x89, 0xd3, //0x0000067b movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x0000067e shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x00000682 incq %rbx + 0x89, 0xd8, //0x00000685 movl %ebx, %eax + 0x83, 0xe0, 0x03, //0x00000687 andl $3, %eax + 0x48, 0x81, 0xfa, 0x80, 0x01, 0x00, 0x00, //0x0000068a cmpq $384, %rdx + 0x0f, 0x83, 0xcf, 0x01, 0x00, 0x00, //0x00000691 jae LBB0_108 + 0x31, 0xdb, //0x00000697 xorl %ebx, %ebx + 0xe9, 0x79, 0x02, 0x00, 0x00, //0x00000699 jmp LBB0_110 + //0x0000069e LBB0_90 + 0x48, 0x83, 0xf9, 0x01, //0x0000069e cmpq $1, %rcx + 0xb1, 0x02, //0x000006a2 movb $2, %cl + 0x80, 0xd9, 0x00, //0x000006a4 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x000006a7 shrq %cl, %rax + 0x48, 0xc1, 0xe2, 0x34, //0x000006aa shlq $52, %rdx + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000006ae movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x000006b8 andq %rcx, %rax + 0x48, 0x09, 0xd0, //0x000006bb orq %rdx, %rax + 0x48, 0x89, 0xc3, //0x000006be movq %rax, %rbx + 0x48, 0x09, 0xfb, //0x000006c1 orq %rdi, %rbx + 0x8b, 0x4d, 0xc8, //0x000006c4 movl $-56(%rbp), %ecx + 0x83, 0xf9, 0xff, //0x000006c7 cmpl $-1, %ecx + 0x48, 0x0f, 0x45, 0xd8, //0x000006ca cmovneq %rax, %rbx + 0x83, 0x7d, 0xc0, 0x00, //0x000006ce cmpl $0, $-64(%rbp) + 0x0f, 0x84, 0x75, 0x1c, 0x00, 0x00, //0x000006d2 je LBB0_507 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000006d8 movl $64, %ecx + 0x49, 0xff, 0xc7, //0x000006dd incq %r15 + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000006e0 je LBB0_93 + 0x49, 0x0f, 0xbd, 0xcf, //0x000006e6 bsrq %r15, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x000006ea xorq $63, %rcx + //0x000006ee LBB0_93 + 0x48, 0x89, 0x4d, 0xc0, //0x000006ee movq %rcx, $-64(%rbp) + 0x49, 0xd3, 0xe7, //0x000006f2 shlq %cl, %r15 + 0x48, 0x8b, 0x45, 0xb0, //0x000006f5 movq $-80(%rbp), %rax + 0x49, 0xf7, 0xe7, //0x000006f9 mulq %r15 + 0x49, 0x89, 0xc3, //0x000006fc movq %rax, %r11 + 0x49, 0x89, 0xd1, //0x000006ff movq %rdx, %r9 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00000702 andl $511, %edx + 0x4c, 0x89, 0xf9, //0x00000708 movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x0000070b notq %rcx + 0x48, 0x39, 0xc8, //0x0000070e cmpq %rcx, %rax + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x00000711 jbe LBB0_98 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00000717 cmpl $511, %edx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000071d jne LBB0_98 + 0x4c, 0x89, 0xf8, //0x00000723 movq %r15, %rax + 0x48, 0x8d, 0x15, 0x23, 0x1d, 0x00, 0x00, //0x00000726 leaq $7459(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x16, //0x0000072d mulq (%rsi,%rdx) + 0x49, 0x01, 0xd3, //0x00000731 addq %rdx, %r11 + 0x49, 0x83, 0xd1, 0x00, //0x00000734 adcq $0, %r9 + 0x44, 0x89, 0xca, //0x00000738 movl %r9d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000073b andl $511, %edx + 0x48, 0x39, 0xc8, //0x00000741 cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00000744 jbe LBB0_98 + 0x49, 0x83, 0xfb, 0xff, //0x0000074a cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000074e jne LBB0_98 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00000754 cmpl $511, %edx + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000075a je LBB0_85 + //0x00000760 LBB0_98 + 0x4c, 0x89, 0xc8, //0x00000760 movq %r9, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00000763 shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00000767 leal $9(%rax), %ecx + 0x49, 0xd3, 0xe9, //0x0000076a shrq %cl, %r9 + 0x4c, 0x09, 0xda, //0x0000076d orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00000770 jne LBB0_100 + 0x44, 0x89, 0xc9, //0x00000776 movl %r9d, %ecx + 0x83, 0xe1, 0x03, //0x00000779 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x0000077c cmpl $1, %ecx + 0x0f, 0x84, 0xab, 0xfe, 0xff, 0xff, //0x0000077f je LBB0_85 + //0x00000785 LBB0_100 + 0x4c, 0x2b, 0x75, 0xc0, //0x00000785 subq $-64(%rbp), %r14 + 0x48, 0x83, 0xf0, 0x01, //0x00000789 xorq $1, %rax + 0x49, 0x29, 0xc6, //0x0000078d subq %rax, %r14 + 0x44, 0x89, 0xc8, //0x00000790 movl %r9d, %eax + 0x83, 0xe0, 0x01, //0x00000793 andl $1, %eax + 0x4c, 0x01, 0xc8, //0x00000796 addq %r9, %rax + 0x49, 0x21, 0xc2, //0x00000799 andq %rax, %r10 + 0x49, 0x83, 0xfa, 0x01, //0x0000079c cmpq $1, %r10 + 0x49, 0x83, 0xde, 0xff, //0x000007a0 sbbq $-1, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x000007a4 leaq $-1(%r14), %rcx + 0x48, 0x81, 0xf9, 0xfd, 0x07, 0x00, 0x00, //0x000007a8 cmpq $2045, %rcx + 0x0f, 0x87, 0x7b, 0xfe, 0xff, 0xff, //0x000007af ja LBB0_85 + 0x49, 0x83, 0xfa, 0x01, //0x000007b5 cmpq $1, %r10 + 0xb1, 0x02, //0x000007b9 movb $2, %cl + 0x80, 0xd9, 0x00, //0x000007bb sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x000007be shrq %cl, %rax + 0x49, 0xc1, 0xe6, 0x34, //0x000007c1 shlq $52, %r14 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000007c5 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x000007cf andq %rcx, %rax + 0x4c, 0x09, 0xf0, //0x000007d2 orq %r14, %rax + 0x48, 0x89, 0xc1, //0x000007d5 movq %rax, %rcx + 0x48, 0x09, 0xf9, //0x000007d8 orq %rdi, %rcx + 0x83, 0x7d, 0xc8, 0xff, //0x000007db cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xc8, //0x000007df cmovneq %rax, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x000007e3 vmovq %rbx, %xmm0 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc9, //0x000007e8 vmovq %rcx, %xmm1 + 0xc5, 0xf9, 0x2e, 0xc1, //0x000007ed vucomisd %xmm1, %xmm0 + 0x0f, 0x85, 0x39, 0xfe, 0xff, 0xff, //0x000007f1 jne LBB0_85 + 0x0f, 0x8b, 0x50, 0x1b, 0x00, 0x00, //0x000007f7 jnp LBB0_507 + 0xe9, 0x2e, 0xfe, 0xff, 0xff, //0x000007fd jmp LBB0_85 + //0x00000802 LBB0_102 + 0x48, 0x89, 0xd0, //0x00000802 movq %rdx, %rax + //0x00000805 LBB0_103 + 0x8d, 0x53, 0xd0, //0x00000805 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x00000808 cmpb $9, %dl + 0x0f, 0x87, 0x9a, 0xf8, 0xff, 0xff, //0x0000080b ja LBB0_5 + 0x45, 0x31, 0xc9, //0x00000811 xorl %r9d, %r9d + 0x4c, 0x39, 0xd8, //0x00000814 cmpq %r11, %rax + 0x48, 0x89, 0x75, 0xa0, //0x00000817 movq %rsi, $-96(%rbp) + 0x0f, 0x83, 0xae, 0x02, 0x00, 0x00, //0x0000081b jae LBB0_138 + 0x4c, 0x89, 0xdf, //0x00000821 movq %r11, %rdi + 0x49, 0xff, 0xcb, //0x00000824 decq %r11 + 0x45, 0x31, 0xc9, //0x00000827 xorl %r9d, %r9d + //0x0000082a LBB0_106 + 0x44, 0x89, 0xce, //0x0000082a movl %r9d, %esi + 0x41, 0x81, 0xf9, 0x10, 0x27, 0x00, 0x00, //0x0000082d cmpl $10000, %r9d + 0x8d, 0x14, 0xb6, //0x00000834 leal (%rsi,%rsi,4), %edx + 0x0f, 0xb6, 0xdb, //0x00000837 movzbl %bl, %ebx + 0x44, 0x8d, 0x4c, 0x53, 0xd0, //0x0000083a leal $-48(%rbx,%rdx,2), %r9d + 0x44, 0x0f, 0x4d, 0xce, //0x0000083f cmovgel %esi, %r9d + 0x49, 0x39, 0xc3, //0x00000843 cmpq %rax, %r11 + 0x0f, 0x84, 0x80, 0x02, 0x00, 0x00, //0x00000846 je LBB0_137 + 0x41, 0x0f, 0xb6, 0x5c, 0x00, 0x01, //0x0000084c movzbl $1(%r8,%rax), %ebx + 0x48, 0xff, 0xc0, //0x00000852 incq %rax + 0x8d, 0x53, 0xd0, //0x00000855 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x0a, //0x00000858 cmpb $10, %dl + 0x0f, 0x82, 0xc9, 0xff, 0xff, 0xff, //0x0000085b jb LBB0_106 + 0xe9, 0x69, 0x02, 0x00, 0x00, //0x00000861 jmp LBB0_138 + //0x00000866 LBB0_108 + 0x48, 0x89, 0xc2, //0x00000866 movq %rax, %rdx + 0x48, 0x29, 0xda, //0x00000869 subq %rbx, %rdx + 0x31, 0xdb, //0x0000086c xorl %ebx, %ebx + 0xc5, 0xf9, 0x57, 0xc0, //0x0000086e vxorpd %xmm0, %xmm0, %xmm0 + //0x00000872 LBB0_109 + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x01, //0x00000872 vmovupd %ymm0, $1(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x21, //0x00000879 vmovupd %ymm0, $33(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x41, //0x00000880 vmovupd %ymm0, $65(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x61, //0x00000887 vmovupd %ymm0, $97(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x81, 0x00, 0x00, 0x00, //0x0000088e vmovupd %ymm0, $129(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xa1, 0x00, 0x00, 0x00, //0x00000898 vmovupd %ymm0, $161(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xc1, 0x00, 0x00, 0x00, //0x000008a2 vmovupd %ymm0, $193(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xe1, 0x00, 0x00, 0x00, //0x000008ac vmovupd %ymm0, $225(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x01, 0x01, 0x00, 0x00, //0x000008b6 vmovupd %ymm0, $257(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x21, 0x01, 0x00, 0x00, //0x000008c0 vmovupd %ymm0, $289(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x41, 0x01, 0x00, 0x00, //0x000008ca vmovupd %ymm0, $321(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x61, 0x01, 0x00, 0x00, //0x000008d4 vmovupd %ymm0, $353(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x81, 0x01, 0x00, 0x00, //0x000008de vmovupd %ymm0, $385(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xa1, 0x01, 0x00, 0x00, //0x000008e8 vmovupd %ymm0, $417(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xc1, 0x01, 0x00, 0x00, //0x000008f2 vmovupd %ymm0, $449(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xe1, 0x01, 0x00, 0x00, //0x000008fc vmovupd %ymm0, $481(%r12,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00000906 addq $512, %rbx + 0x48, 0x83, 0xc2, 0x04, //0x0000090d addq $4, %rdx + 0x0f, 0x85, 0x5b, 0xff, 0xff, 0xff, //0x00000911 jne LBB0_109 + //0x00000917 LBB0_110 + 0x48, 0x85, 0xc0, //0x00000917 testq %rax, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x0000091a je LBB0_113 + 0x48, 0xf7, 0xd8, //0x00000920 negq %rax + 0xc5, 0xf9, 0x57, 0xc0, //0x00000923 vxorpd %xmm0, %xmm0, %xmm0 + //0x00000927 LBB0_112 + 0x48, 0x89, 0xda, //0x00000927 movq %rbx, %rdx + 0x48, 0x83, 0xca, 0x01, //0x0000092a orq $1, %rdx + 0xc4, 0xc1, 0x7d, 0x11, 0x04, 0x14, //0x0000092e vmovupd %ymm0, (%r12,%rdx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x14, 0x20, //0x00000934 vmovupd %ymm0, $32(%r12,%rdx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x14, 0x40, //0x0000093b vmovupd %ymm0, $64(%r12,%rdx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x14, 0x60, //0x00000942 vmovupd %ymm0, $96(%r12,%rdx) + 0x48, 0x83, 0xeb, 0x80, //0x00000949 subq $-128, %rbx + 0x48, 0xff, 0xc0, //0x0000094d incq %rax + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00000950 jne LBB0_112 + //0x00000956 LBB0_113 + 0x49, 0x39, 0xf9, //0x00000956 cmpq %rdi, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000959 je LBB0_116 + 0x48, 0x83, 0xcf, 0x01, //0x0000095f orq $1, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000963 .p2align 4, 0x90 + //0x00000970 LBB0_115 + 0x41, 0xc6, 0x04, 0x3c, 0x00, //0x00000970 movb $0, (%r12,%rdi) + 0x48, 0xff, 0xc7, //0x00000975 incq %rdi + 0x49, 0x39, 0xfd, //0x00000978 cmpq %rdi, %r13 + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000097b jne LBB0_115 + //0x00000981 LBB0_116 + 0x41, 0x8a, 0x12, //0x00000981 movb (%r10), %dl + 0x31, 0xff, //0x00000984 xorl %edi, %edi + 0x80, 0xfa, 0x2d, //0x00000986 cmpb $45, %dl + 0x40, 0x0f, 0x94, 0xc7, //0x00000989 sete %dil + 0x48, 0x39, 0xf9, //0x0000098d cmpq %rdi, %rcx + 0x0f, 0x8e, 0xa5, 0x00, 0x00, 0x00, //0x00000990 jle LBB0_128 + 0x48, 0x89, 0x75, 0xc8, //0x00000996 movq %rsi, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x0000099a xorl %r11d, %r11d + 0x88, 0x55, 0xd7, //0x0000099d movb %dl, $-41(%rbp) + 0xb2, 0x01, //0x000009a0 movb $1, %dl + 0x45, 0x31, 0xff, //0x000009a2 xorl %r15d, %r15d + 0x45, 0x31, 0xf6, //0x000009a5 xorl %r14d, %r14d + 0x31, 0xc0, //0x000009a8 xorl %eax, %eax + 0x45, 0x31, 0xc9, //0x000009aa xorl %r9d, %r9d + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000009ad jmp LBB0_120 + //0x000009b2 LBB0_118 + 0x41, 0xff, 0xcb, //0x000009b2 decl %r11d + 0x31, 0xc0, //0x000009b5 xorl %eax, %eax + //0x000009b7 LBB0_119 + 0x48, 0xff, 0xc7, //0x000009b7 incq %rdi + 0x48, 0x39, 0xcf, //0x000009ba cmpq %rcx, %rdi + 0x0f, 0x9c, 0xc2, //0x000009bd setl %dl + 0x48, 0x39, 0xf9, //0x000009c0 cmpq %rdi, %rcx + 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, //0x000009c3 je LBB0_129 + //0x000009c9 LBB0_120 + 0x41, 0x0f, 0xb6, 0x1c, 0x3a, //0x000009c9 movzbl (%r10,%rdi), %ebx + 0x8d, 0x73, 0xd0, //0x000009ce leal $-48(%rbx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000009d1 cmpb $9, %sil + 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x000009d5 ja LBB0_125 + 0x85, 0xc0, //0x000009db testl %eax, %eax + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000009dd jne LBB0_123 + 0x80, 0xfb, 0x30, //0x000009e3 cmpb $48, %bl + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x000009e6 je LBB0_118 + //0x000009ec LBB0_123 + 0x49, 0x63, 0xc7, //0x000009ec movslq %r15d, %rax + 0x49, 0x39, 0xc5, //0x000009ef cmpq %rax, %r13 + 0x0f, 0x86, 0x2f, 0x00, 0x00, 0x00, //0x000009f2 jbe LBB0_127 + 0x41, 0x88, 0x1c, 0x04, //0x000009f8 movb %bl, (%r12,%rax) + 0x41, 0xff, 0xc7, //0x000009fc incl %r15d + 0x44, 0x89, 0xf8, //0x000009ff movl %r15d, %eax + 0xe9, 0xb0, 0xff, 0xff, 0xff, //0x00000a02 jmp LBB0_119 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a07 .p2align 4, 0x90 + //0x00000a10 LBB0_125 + 0x80, 0xfb, 0x2e, //0x00000a10 cmpb $46, %bl + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x00000a13 jne LBB0_130 + 0x41, 0x89, 0xc3, //0x00000a19 movl %eax, %r11d + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000a1c movl $1, %r9d + 0xe9, 0x90, 0xff, 0xff, 0xff, //0x00000a22 jmp LBB0_119 + //0x00000a27 LBB0_127 + 0x80, 0xfb, 0x30, //0x00000a27 cmpb $48, %bl + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000a2a movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00000a2f cmovnel %eax, %r14d + 0x44, 0x89, 0xf8, //0x00000a33 movl %r15d, %eax + 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x00000a36 jmp LBB0_119 + //0x00000a3b LBB0_128 + 0x45, 0x31, 0xc0, //0x00000a3b xorl %r8d, %r8d + 0x31, 0xf6, //0x00000a3e xorl %esi, %esi + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000a40 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000a4a movabsq $4503599627370495, %r10 + 0xe9, 0xe1, 0x18, 0x00, 0x00, //0x00000a54 jmp LBB0_506 + //0x00000a59 LBB0_129 + 0x45, 0x85, 0xc9, //0x00000a59 testl %r9d, %r9d + 0x45, 0x0f, 0x44, 0xdf, //0x00000a5c cmovel %r15d, %r11d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000a60 movabsq $4503599627370495, %r10 + 0xe9, 0xec, 0x00, 0x00, 0x00, //0x00000a6a jmp LBB0_148 + //0x00000a6f LBB0_130 + 0x45, 0x85, 0xc9, //0x00000a6f testl %r9d, %r9d + 0x45, 0x0f, 0x44, 0xdf, //0x00000a72 cmovel %r15d, %r11d + 0xf6, 0xc2, 0x01, //0x00000a76 testb $1, %dl + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000a79 je LBB0_136 + 0x80, 0xcb, 0x20, //0x00000a7f orb $32, %bl + 0x80, 0xfb, 0x65, //0x00000a82 cmpb $101, %bl + 0x48, 0x8b, 0x5d, 0xa8, //0x00000a85 movq $-88(%rbp), %rbx + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00000a89 jne LBB0_136 + 0x48, 0x8d, 0x57, 0x01, //0x00000a8f leaq $1(%rdi), %rdx + 0x89, 0xd0, //0x00000a93 movl %edx, %eax + 0x41, 0x8a, 0x04, 0x02, //0x00000a95 movb (%r10,%rax), %al + 0x3c, 0x2b, //0x00000a99 cmpb $43, %al + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000a9b je LBB0_139 + 0x3c, 0x2d, //0x00000aa1 cmpb $45, %al + 0x48, 0x8b, 0x45, 0xc8, //0x00000aa3 movq $-56(%rbp), %rax + 0x0f, 0x85, 0x50, 0x00, 0x00, 0x00, //0x00000aa7 jne LBB0_140 + 0x83, 0xc7, 0x02, //0x00000aad addl $2, %edi + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00000ab0 movl $-1, %r9d + 0x89, 0xfa, //0x00000ab6 movl %edi, %edx + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00000ab8 jmp LBB0_141 + //0x00000abd LBB0_136 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000abd movabsq $4503599627370495, %r10 + 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x00000ac7 jmp LBB0_148 + //0x00000acc LBB0_137 + 0x48, 0x89, 0xf8, //0x00000acc movq %rdi, %rax + //0x00000acf LBB0_138 + 0x45, 0x0f, 0xaf, 0xca, //0x00000acf imull %r10d, %r9d + 0x41, 0x01, 0xc9, //0x00000ad3 addl %ecx, %r9d + 0x48, 0x89, 0x45, 0xa8, //0x00000ad6 movq %rax, $-88(%rbp) + 0xe9, 0xa0, 0xf8, 0xff, 0xff, //0x00000ada jmp LBB0_57 + //0x00000adf LBB0_139 + 0x83, 0xc7, 0x02, //0x00000adf addl $2, %edi + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000ae2 movl $1, %r9d + 0x89, 0xfa, //0x00000ae8 movl %edi, %edx + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000aea movabsq $4503599627370495, %r10 + 0x48, 0x8b, 0x45, 0xc8, //0x00000af4 movq $-56(%rbp), %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00000af8 jmp LBB0_142 + //0x00000afd LBB0_140 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000afd movl $1, %r9d + //0x00000b03 LBB0_141 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000b03 movabsq $4503599627370495, %r10 + //0x00000b0d LBB0_142 + 0x48, 0x63, 0xfa, //0x00000b0d movslq %edx, %rdi + 0x31, 0xd2, //0x00000b10 xorl %edx, %edx + 0x48, 0x39, 0xf9, //0x00000b12 cmpq %rdi, %rcx + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00000b15 jle LBB0_147 + 0x48, 0x01, 0xf8, //0x00000b1b addq %rdi, %rax + 0x31, 0xd2, //0x00000b1e xorl %edx, %edx + //0x00000b20 LBB0_144 + 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00000b20 cmpl $9999, %edx + 0x0f, 0x8f, 0x25, 0x00, 0x00, 0x00, //0x00000b26 jg LBB0_147 + 0x41, 0x0f, 0xb6, 0x0c, 0x00, //0x00000b2c movzbl (%r8,%rax), %ecx + 0x8d, 0x71, 0xd0, //0x00000b31 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00000b34 cmpb $9, %sil + 0x0f, 0x87, 0x13, 0x00, 0x00, 0x00, //0x00000b38 ja LBB0_147 + 0x8d, 0x14, 0x92, //0x00000b3e leal (%rdx,%rdx,4), %edx + 0x8d, 0x54, 0x51, 0xd0, //0x00000b41 leal $-48(%rcx,%rdx,2), %edx + 0x48, 0xff, 0xc0, //0x00000b45 incq %rax + 0x48, 0x39, 0xc3, //0x00000b48 cmpq %rax, %rbx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000b4b jne LBB0_144 + //0x00000b51 LBB0_147 + 0x41, 0x0f, 0xaf, 0xd1, //0x00000b51 imull %r9d, %edx + 0x44, 0x01, 0xda, //0x00000b55 addl %r11d, %edx + 0x41, 0x89, 0xd3, //0x00000b58 movl %edx, %r11d + //0x00000b5b LBB0_148 + 0x45, 0x85, 0xff, //0x00000b5b testl %r15d, %r15d + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000b5e movabsq $-9223372036854775808, %rdi + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000b68 je LBB0_151 + 0x31, 0xf6, //0x00000b6e xorl %esi, %esi + 0x41, 0x81, 0xfb, 0x36, 0x01, 0x00, 0x00, //0x00000b70 cmpl $310, %r11d + 0x0f, 0x8e, 0x1f, 0x00, 0x00, 0x00, //0x00000b77 jle LBB0_152 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00000b7d movabsq $9218868437227405312, %r8 + 0x8a, 0x55, 0xd7, //0x00000b87 movb $-41(%rbp), %dl + 0xe9, 0xab, 0x17, 0x00, 0x00, //0x00000b8a jmp LBB0_506 + //0x00000b8f LBB0_151 + 0x45, 0x31, 0xc0, //0x00000b8f xorl %r8d, %r8d + 0x31, 0xf6, //0x00000b92 xorl %esi, %esi + 0x8a, 0x55, 0xd7, //0x00000b94 movb $-41(%rbp), %dl + 0xe9, 0x9e, 0x17, 0x00, 0x00, //0x00000b97 jmp LBB0_506 + //0x00000b9c LBB0_152 + 0x41, 0x81, 0xfb, 0xb6, 0xfe, 0xff, 0xff, //0x00000b9c cmpl $-330, %r11d + 0x0f, 0x8d, 0x0b, 0x00, 0x00, 0x00, //0x00000ba3 jge LBB0_154 + 0x45, 0x31, 0xc0, //0x00000ba9 xorl %r8d, %r8d + 0x8a, 0x55, 0xd7, //0x00000bac movb $-41(%rbp), %dl + 0xe9, 0x86, 0x17, 0x00, 0x00, //0x00000baf jmp LBB0_506 + //0x00000bb4 LBB0_154 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, //0x00000bb4 movabsq $1152921504606846975, %r10 + 0x45, 0x85, 0xdb, //0x00000bbe testl %r11d, %r11d + 0x0f, 0x8e, 0xd5, 0x07, 0x00, 0x00, //0x00000bc1 jle LBB0_270 + 0x31, 0xf6, //0x00000bc7 xorl %esi, %esi + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000bc9 movl $1, %r8d + 0x44, 0x89, 0xf8, //0x00000bcf movl %r15d, %eax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00000bd2 jmp LBB0_158 + //0x00000bd7 LBB0_156 + 0x89, 0xc7, //0x00000bd7 movl %eax, %edi + //0x00000bd9 LBB0_157 + 0x48, 0x8b, 0x75, 0xc0, //0x00000bd9 movq $-64(%rbp), %rsi + 0x03, 0x75, 0xbc, //0x00000bdd addl $-68(%rbp), %esi + 0x89, 0xf8, //0x00000be0 movl %edi, %eax + 0x45, 0x85, 0xdb, //0x00000be2 testl %r11d, %r11d + 0x0f, 0x8e, 0xb4, 0x07, 0x00, 0x00, //0x00000be5 jle LBB0_271 + //0x00000beb LBB0_158 + 0x48, 0x89, 0x75, 0xc0, //0x00000beb movq %rsi, $-64(%rbp) + 0xb9, 0x1b, 0x00, 0x00, 0x00, //0x00000bef movl $27, %ecx + 0x41, 0x83, 0xfb, 0x08, //0x00000bf4 cmpl $8, %r11d + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x00000bf8 jg LBB0_160 + 0x44, 0x89, 0xd9, //0x00000bfe movl %r11d, %ecx + 0x48, 0x8d, 0x15, 0xd8, 0x43, 0x00, 0x00, //0x00000c01 leaq $17368(%rip), %rdx /* _POW_TAB+0(%rip) */ + 0x8b, 0x0c, 0x8a, //0x00000c08 movl (%rdx,%rcx,4), %ecx + //0x00000c0b LBB0_160 + 0x85, 0xc0, //0x00000c0b testl %eax, %eax + 0x89, 0x4d, 0xbc, //0x00000c0d movl %ecx, $-68(%rbp) + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00000c10 je LBB0_156 + 0x41, 0x89, 0xc9, //0x00000c16 movl %ecx, %r9d + 0x41, 0xf7, 0xd9, //0x00000c19 negl %r9d + 0x85, 0xc9, //0x00000c1c testl %ecx, %ecx + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x00000c1e je LBB0_156 + 0x0f, 0x88, 0x90, 0x01, 0x00, 0x00, //0x00000c24 js LBB0_187 + //0x00000c2a LBB0_163 + 0x41, 0x83, 0xf9, 0xc3, //0x00000c2a cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x00000c2e jle LBB0_167 + 0xe9, 0xcd, 0x03, 0x00, 0x00, //0x00000c34 jmp LBB0_219 + //0x00000c39 LBB0_164 + 0xff, 0xc8, //0x00000c39 decl %eax + 0x41, 0x89, 0xc7, //0x00000c3b movl %eax, %r15d + //0x00000c3e LBB0_165 + 0x45, 0x85, 0xff, //0x00000c3e testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00000c41 cmovel %r15d, %r11d + //0x00000c45 LBB0_166 + 0x44, 0x8d, 0x49, 0x3c, //0x00000c45 leal $60(%rcx), %r9d + 0x44, 0x89, 0xf8, //0x00000c49 movl %r15d, %eax + 0x83, 0xf9, 0x88, //0x00000c4c cmpl $-120, %ecx + 0x0f, 0x8d, 0xa2, 0x03, 0x00, 0x00, //0x00000c4f jge LBB0_218 + //0x00000c55 LBB0_167 + 0x44, 0x89, 0xc9, //0x00000c55 movl %r9d, %ecx + 0x48, 0x63, 0xf8, //0x00000c58 movslq %eax, %rdi + 0x31, 0xf6, //0x00000c5b xorl %esi, %esi + 0x31, 0xd2, //0x00000c5d xorl %edx, %edx + 0x90, //0x00000c5f .p2align 4, 0x90 + //0x00000c60 LBB0_168 + 0x48, 0x39, 0xfe, //0x00000c60 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000c63 jge LBB0_170 + 0x48, 0x8d, 0x14, 0x92, //0x00000c69 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x00000c6d movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00000c72 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00000c77 incq %rsi + 0x49, 0x8d, 0x5a, 0x01, //0x00000c7a leaq $1(%r10), %rbx + 0x48, 0x39, 0xda, //0x00000c7e cmpq %rbx, %rdx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00000c81 jb LBB0_168 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000c87 jmp LBB0_172 + 0x90, 0x90, 0x90, 0x90, //0x00000c8c .p2align 4, 0x90 + //0x00000c90 LBB0_170 + 0x48, 0x85, 0xd2, //0x00000c90 testq %rdx, %rdx + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00000c93 je LBB0_185 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c99 .p2align 4, 0x90 + //0x00000ca0 LBB0_171 + 0x48, 0x01, 0xd2, //0x00000ca0 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000ca3 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00000ca7 incl %esi + 0x49, 0x8d, 0x7a, 0x01, //0x00000ca9 leaq $1(%r10), %rdi + 0x48, 0x39, 0xfa, //0x00000cad cmpq %rdi, %rdx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000cb0 jb LBB0_171 + //0x00000cb6 LBB0_172 + 0x41, 0x29, 0xf3, //0x00000cb6 subl %esi, %r11d + 0x31, 0xff, //0x00000cb9 xorl %edi, %edi + 0x39, 0xc6, //0x00000cbb cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00000cbd jge LBB0_177 + 0x48, 0x63, 0xc6, //0x00000cc3 movslq %esi, %rax + 0x49, 0x63, 0xf7, //0x00000cc6 movslq %r15d, %rsi + 0x49, 0x8d, 0x3c, 0x04, //0x00000cc9 leaq (%r12,%rax), %rdi + 0x45, 0x31, 0xff, //0x00000ccd xorl %r15d, %r15d + //0x00000cd0 .p2align 4, 0x90 + //0x00000cd0 LBB0_174 + 0x48, 0x89, 0xd3, //0x00000cd0 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00000cd3 shrq $60, %rbx + 0x4c, 0x21, 0xd2, //0x00000cd7 andq %r10, %rdx + 0x80, 0xcb, 0x30, //0x00000cda orb $48, %bl + 0x43, 0x88, 0x1c, 0x3c, //0x00000cdd movb %bl, (%r12,%r15) + 0x48, 0x8d, 0x14, 0x92, //0x00000ce1 leaq (%rdx,%rdx,4), %rdx + 0x4a, 0x0f, 0xbe, 0x1c, 0x3f, //0x00000ce5 movsbq (%rdi,%r15), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00000cea leaq $-48(%rbx,%rdx,2), %rdx + 0x4a, 0x8d, 0x5c, 0x38, 0x01, //0x00000cef leaq $1(%rax,%r15), %rbx + 0x49, 0xff, 0xc7, //0x00000cf4 incq %r15 + 0x48, 0x39, 0xf3, //0x00000cf7 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00000cfa jl LBB0_174 + 0x48, 0x85, 0xd2, //0x00000d00 testq %rdx, %rdx + 0x0f, 0x84, 0x5f, 0x00, 0x00, 0x00, //0x00000d03 je LBB0_181 + 0x44, 0x89, 0xff, //0x00000d09 movl %r15d, %edi + //0x00000d0c LBB0_177 + 0x41, 0x89, 0xff, //0x00000d0c movl %edi, %r15d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000d0f jmp LBB0_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d14 .p2align 4, 0x90 + //0x00000d20 LBB0_178 + 0x48, 0x85, 0xc0, //0x00000d20 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000d23 cmovnel %r8d, %r14d + 0x48, 0x01, 0xd2, //0x00000d27 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000d2a leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00000d2e testq %rdx, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00000d31 je LBB0_181 + //0x00000d37 LBB0_179 + 0x48, 0x89, 0xd0, //0x00000d37 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x3c, //0x00000d3a shrq $60, %rax + 0x4c, 0x21, 0xd2, //0x00000d3e andq %r10, %rdx + 0x49, 0x63, 0xf7, //0x00000d41 movslq %r15d, %rsi + 0x49, 0x39, 0xf5, //0x00000d44 cmpq %rsi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00000d47 jbe LBB0_178 + 0x0c, 0x30, //0x00000d4d orb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00000d4f movb %al, (%r12,%rsi) + 0xff, 0xc6, //0x00000d53 incl %esi + 0x41, 0x89, 0xf7, //0x00000d55 movl %esi, %r15d + 0x48, 0x01, 0xd2, //0x00000d58 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000d5b leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00000d5f testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000d62 jne LBB0_179 + //0x00000d68 LBB0_181 + 0x41, 0xff, 0xc3, //0x00000d68 incl %r11d + 0x45, 0x85, 0xff, //0x00000d6b testl %r15d, %r15d + 0x0f, 0x8e, 0xca, 0xfe, 0xff, 0xff, //0x00000d6e jle LBB0_165 + 0x44, 0x89, 0xf8, //0x00000d74 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000d77 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x00000d7d jne LBB0_166 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d83 .p2align 4, 0x90 + //0x00000d90 LBB0_183 + 0x48, 0x83, 0xf8, 0x01, //0x00000d90 cmpq $1, %rax + 0x0f, 0x8e, 0x9f, 0xfe, 0xff, 0xff, //0x00000d94 jle LBB0_164 + 0x4c, 0x8d, 0x78, 0xff, //0x00000d9a leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00000d9e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00000da4 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00000da7 je LBB0_183 + 0xe9, 0x93, 0xfe, 0xff, 0xff, //0x00000dad jmp LBB0_166 + //0x00000db2 LBB0_185 + 0x45, 0x31, 0xff, //0x00000db2 xorl %r15d, %r15d + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00000db5 jmp LBB0_166 + //0x00000dba LBB0_187 + 0x83, 0xf9, 0xc3, //0x00000dba cmpl $-61, %ecx + 0x0f, 0x8f, 0xbe, 0x03, 0x00, 0x00, //0x00000dbd jg LBB0_238 + 0x48, 0x8d, 0x3d, 0x46, 0x42, 0x00, 0x00, //0x00000dc3 leaq $16966(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00000dca jmp LBB0_192 + //0x00000dcf LBB0_189 + 0x48, 0x8d, 0x3d, 0x3a, 0x42, 0x00, 0x00, //0x00000dcf leaq $16954(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + //0x00000dd6 LBB0_190 + 0x45, 0x85, 0xff, //0x00000dd6 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00000dd9 cmovel %r15d, %r11d + //0x00000ddd LBB0_191 + 0x44, 0x8d, 0x4b, 0xc4, //0x00000ddd leal $-60(%rbx), %r9d + 0x44, 0x89, 0xf8, //0x00000de1 movl %r15d, %eax + 0x83, 0xfb, 0x78, //0x00000de4 cmpl $120, %ebx + 0x0f, 0x8e, 0x85, 0x03, 0x00, 0x00, //0x00000de7 jle LBB0_237 + //0x00000ded LBB0_192 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000ded movl $1, %r8d + 0x44, 0x89, 0xcb, //0x00000df3 movl %r9d, %ebx + 0x48, 0x63, 0xf0, //0x00000df6 movslq %eax, %rsi + 0x85, 0xf6, //0x00000df9 testl %esi, %esi + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000dfb je LBB0_198 + 0xb2, 0x38, //0x00000e01 movb $56, %dl + 0x31, 0xc9, //0x00000e03 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e05 .p2align 4, 0x90 + //0x00000e10 LBB0_194 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00000e10 movl $19, %r9d + 0x48, 0x83, 0xf9, 0x2a, //0x00000e16 cmpq $42, %rcx + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00000e1a je LBB0_199 + 0x41, 0x38, 0x14, 0x0c, //0x00000e20 cmpb %dl, (%r12,%rcx) + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x00000e24 jne LBB0_216 + 0x0f, 0xb6, 0x94, 0x39, 0x65, 0x18, 0x00, 0x00, //0x00000e2a movzbl $6245(%rcx,%rdi), %edx + 0x48, 0xff, 0xc1, //0x00000e32 incq %rcx + 0x48, 0x39, 0xce, //0x00000e35 cmpq %rcx, %rsi + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00000e38 jne LBB0_194 + 0x84, 0xd2, //0x00000e3e testb %dl, %dl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00000e40 je LBB0_199 + //0x00000e46 LBB0_198 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x00000e46 movl $18, %r9d + //0x00000e4c LBB0_199 + 0x85, 0xc0, //0x00000e4c testl %eax, %eax + 0x0f, 0x8e, 0xb7, 0x00, 0x00, 0x00, //0x00000e4e jle LBB0_207 + 0x48, 0x89, 0x5d, 0xb0, //0x00000e54 movq %rbx, $-80(%rbp) + 0x4c, 0x89, 0x5d, 0xc8, //0x00000e58 movq %r11, $-56(%rbp) + 0x44, 0x01, 0xc8, //0x00000e5c addl %r9d, %eax + 0x48, 0x98, //0x00000e5f cltq + 0x48, 0x89, 0xc3, //0x00000e61 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x00000e64 shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x00000e68 decq %rax + 0x48, 0xff, 0xc6, //0x00000e6b incq %rsi + 0x31, 0xc9, //0x00000e6e xorl %ecx, %ecx + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00000e70 jmp LBB0_203 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e75 .p2align 4, 0x90 + //0x00000e80 LBB0_201 + 0x48, 0x85, 0xc0, //0x00000e80 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000e83 cmovnel %r8d, %r14d + //0x00000e87 LBB0_202 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00000e87 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x00000e91 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x00000e94 leaq $-1(%r11), %rax + 0x48, 0xff, 0xce, //0x00000e98 decq %rsi + 0x48, 0x83, 0xfe, 0x01, //0x00000e9b cmpq $1, %rsi + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00000e9f jle LBB0_205 + //0x00000ea5 LBB0_203 + 0x49, 0x89, 0xc3, //0x00000ea5 movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x7c, 0x34, 0xfe, //0x00000ea8 movzbl $-2(%r12,%rsi), %edi + 0x48, 0xc1, 0xe7, 0x3c, //0x00000eae shlq $60, %rdi + 0x48, 0x01, 0xcf, //0x00000eb2 addq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x00000eb5 movq %rdi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000eb8 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00000ec2 mulq %rcx + 0x48, 0x89, 0xd1, //0x00000ec5 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00000ec8 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00000ecc leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00000ed0 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf8, //0x00000ed4 movq %rdi, %rax + 0x48, 0x29, 0xd0, //0x00000ed7 subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x00000eda cmpq %r13, %r11 + 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x00000edd jae LBB0_201 + 0x04, 0x30, //0x00000ee3 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x00000ee5 movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00000ee9 jmp LBB0_202 + //0x00000eee LBB0_205 + 0x48, 0x83, 0xff, 0x0a, //0x00000eee cmpq $10, %rdi + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000ef2 jae LBB0_208 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00000ef8 movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000efc movl $1, %r8d + 0x48, 0x8b, 0x5d, 0xb0, //0x00000f02 movq $-80(%rbp), %rbx + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00000f06 jmp LBB0_212 + //0x00000f0b LBB0_207 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f0b movl $1, %r8d + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00000f11 jmp LBB0_212 + //0x00000f16 LBB0_208 + 0x49, 0x63, 0xf3, //0x00000f16 movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x00000f19 decq %rsi + 0x4c, 0x8b, 0x5d, 0xc8, //0x00000f1c movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f20 movl $1, %r8d + 0x48, 0x8b, 0x5d, 0xb0, //0x00000f26 movq $-80(%rbp), %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00000f2a jmp LBB0_210 + 0x90, //0x00000f2f .p2align 4, 0x90 + //0x00000f30 LBB0_209 + 0x48, 0x85, 0xc0, //0x00000f30 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000f33 cmovnel %r8d, %r14d + 0x48, 0xff, 0xce, //0x00000f37 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00000f3a cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00000f3e movq %rdx, %rcx + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x00000f41 jbe LBB0_212 + //0x00000f47 LBB0_210 + 0x48, 0x89, 0xc8, //0x00000f47 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000f4a movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00000f54 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00000f57 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00000f5b leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00000f5f leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00000f63 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x00000f66 subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x00000f69 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00000f6c jae LBB0_209 + 0x04, 0x30, //0x00000f72 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00000f74 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00000f78 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00000f7b cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00000f7f movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00000f82 ja LBB0_210 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f88 .p2align 4, 0x90 + //0x00000f90 LBB0_212 + 0x45, 0x01, 0xcf, //0x00000f90 addl %r9d, %r15d + 0x4d, 0x63, 0xff, //0x00000f93 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00000f96 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00000f99 cmovbel %r13d, %r15d + 0x45, 0x01, 0xcb, //0x00000f9d addl %r9d, %r11d + 0x45, 0x85, 0xff, //0x00000fa0 testl %r15d, %r15d + 0x0f, 0x8e, 0x26, 0xfe, 0xff, 0xff, //0x00000fa3 jle LBB0_189 + 0x44, 0x89, 0xf8, //0x00000fa9 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000fac cmpb $48, $-1(%rax,%r12) + 0x48, 0x8d, 0x3d, 0x57, 0x40, 0x00, 0x00, //0x00000fb2 leaq $16471(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0x1e, 0xfe, 0xff, 0xff, //0x00000fb9 jne LBB0_191 + 0x90, //0x00000fbf .p2align 4, 0x90 + //0x00000fc0 LBB0_214 + 0x48, 0x83, 0xf8, 0x01, //0x00000fc0 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00000fc4 jle LBB0_217 + 0x4c, 0x8d, 0x78, 0xff, //0x00000fca leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00000fce cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00000fd4 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00000fd7 je LBB0_214 + 0xe9, 0xfb, 0xfd, 0xff, 0xff, //0x00000fdd jmp LBB0_191 + //0x00000fe2 LBB0_216 + 0x0f, 0x8c, 0x5e, 0xfe, 0xff, 0xff, //0x00000fe2 jl LBB0_198 + 0xe9, 0x5f, 0xfe, 0xff, 0xff, //0x00000fe8 jmp LBB0_199 + //0x00000fed LBB0_217 + 0xff, 0xc8, //0x00000fed decl %eax + 0x41, 0x89, 0xc7, //0x00000fef movl %eax, %r15d + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00000ff2 jmp LBB0_190 + //0x00000ff7 LBB0_218 + 0x44, 0x89, 0xf8, //0x00000ff7 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x00000ffa movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x00000ffd testl %r9d, %r9d + 0x0f, 0x84, 0xd3, 0xfb, 0xff, 0xff, //0x00001000 je LBB0_157 + //0x00001006 LBB0_219 + 0x41, 0xf7, 0xd9, //0x00001006 negl %r9d + 0x48, 0x63, 0xf0, //0x00001009 movslq %eax, %rsi + 0x31, 0xff, //0x0000100c xorl %edi, %edi + 0x31, 0xd2, //0x0000100e xorl %edx, %edx + //0x00001010 .p2align 4, 0x90 + //0x00001010 LBB0_220 + 0x48, 0x39, 0xf7, //0x00001010 cmpq %rsi, %rdi + 0x0f, 0x8d, 0x30, 0x01, 0x00, 0x00, //0x00001013 jge LBB0_234 + 0x48, 0x8d, 0x0c, 0x92, //0x00001019 leaq (%rdx,%rdx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x3c, //0x0000101d movsbq (%r12,%rdi), %rdx + 0x48, 0x8d, 0x54, 0x4a, 0xd0, //0x00001022 leaq $-48(%rdx,%rcx,2), %rdx + 0x48, 0xff, 0xc7, //0x00001027 incq %rdi + 0x48, 0x89, 0xd3, //0x0000102a movq %rdx, %rbx + 0x44, 0x89, 0xc9, //0x0000102d movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00001030 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001033 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001036 je LBB0_220 + //0x0000103c LBB0_222 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000103c movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x00001043 movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x00001046 shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001049 notq %rsi + 0x31, 0xdb, //0x0000104c xorl %ebx, %ebx + 0x39, 0xc7, //0x0000104e cmpl %eax, %edi + 0x0f, 0x8d, 0x55, 0x00, 0x00, 0x00, //0x00001050 jge LBB0_226 + 0x4c, 0x89, 0x5d, 0xc8, //0x00001056 movq %r11, $-56(%rbp) + 0x4c, 0x63, 0xdf, //0x0000105a movslq %edi, %r11 + 0x4d, 0x63, 0xc7, //0x0000105d movslq %r15d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00001060 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x00001064 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001066 .p2align 4, 0x90 + //0x00001070 LBB0_224 + 0x48, 0x89, 0xd0, //0x00001070 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x00001073 movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x00001076 shrq %cl, %rax + 0x48, 0x21, 0xf2, //0x00001079 andq %rsi, %rdx + 0x04, 0x30, //0x0000107c addb $48, %al + 0x41, 0x88, 0x04, 0x1c, //0x0000107e movb %al, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x92, //0x00001082 leaq (%rdx,%rdx,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x00001086 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x54, 0x41, 0xd0, //0x0000108b leaq $-48(%rcx,%rax,2), %rdx + 0x49, 0x8d, 0x44, 0x1b, 0x01, //0x00001090 leaq $1(%r11,%rbx), %rax + 0x48, 0xff, 0xc3, //0x00001095 incq %rbx + 0x4c, 0x39, 0xc0, //0x00001098 cmpq %r8, %rax + 0x0f, 0x8c, 0xcf, 0xff, 0xff, 0xff, //0x0000109b jl LBB0_224 + 0x4c, 0x8b, 0x5d, 0xc8, //0x000010a1 movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000010a5 movl $1, %r8d + //0x000010ab LBB0_226 + 0x41, 0x29, 0xfb, //0x000010ab subl %edi, %r11d + 0x41, 0x89, 0xdf, //0x000010ae movl %ebx, %r15d + 0x48, 0x85, 0xd2, //0x000010b1 testq %rdx, %rdx + 0x8b, 0x7d, 0xbc, //0x000010b4 movl $-68(%rbp), %edi + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x000010b7 jne LBB0_228 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x000010bd jmp LBB0_230 + //0x000010c2 LBB0_227 + 0x48, 0x85, 0xc0, //0x000010c2 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x000010c5 cmovnel %r8d, %r14d + 0x48, 0x01, 0xd2, //0x000010c9 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x000010cc leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x000010d0 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000010d3 je LBB0_230 + //0x000010d9 LBB0_228 + 0x48, 0x89, 0xd0, //0x000010d9 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x000010dc movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x000010df shrq %cl, %rax + 0x48, 0x21, 0xf2, //0x000010e2 andq %rsi, %rdx + 0x49, 0x63, 0xcf, //0x000010e5 movslq %r15d, %rcx + 0x49, 0x39, 0xcd, //0x000010e8 cmpq %rcx, %r13 + 0x0f, 0x86, 0xd1, 0xff, 0xff, 0xff, //0x000010eb jbe LBB0_227 + 0x04, 0x30, //0x000010f1 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x000010f3 movb %al, (%r12,%rcx) + 0xff, 0xc1, //0x000010f7 incl %ecx + 0x41, 0x89, 0xcf, //0x000010f9 movl %ecx, %r15d + 0x48, 0x01, 0xd2, //0x000010fc addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x000010ff leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001103 testq %rdx, %rdx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00001106 jne LBB0_228 + //0x0000110c LBB0_230 + 0x41, 0xff, 0xc3, //0x0000110c incl %r11d + 0x45, 0x85, 0xff, //0x0000110f testl %r15d, %r15d + 0x0f, 0x8e, 0x44, 0x02, 0x00, 0x00, //0x00001112 jle LBB0_264 + 0x44, 0x89, 0xf8, //0x00001118 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000111b cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x00001121 jne LBB0_265 + //0x00001127 LBB0_232 + 0x48, 0x83, 0xf8, 0x01, //0x00001127 cmpq $1, %rax + 0x0f, 0x8e, 0x26, 0x02, 0x00, 0x00, //0x0000112b jle LBB0_263 + 0x4c, 0x8d, 0x78, 0xff, //0x00001131 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001135 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x0000113b movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000113e je LBB0_232 + 0xe9, 0x20, 0x02, 0x00, 0x00, //0x00001144 jmp LBB0_265 + //0x00001149 LBB0_234 + 0x48, 0x85, 0xd2, //0x00001149 testq %rdx, %rdx + 0x0f, 0x84, 0x3c, 0x01, 0x00, 0x00, //0x0000114c je LBB0_253 + //0x00001152 LBB0_235 + 0x48, 0x89, 0xd6, //0x00001152 movq %rdx, %rsi + 0x44, 0x89, 0xc9, //0x00001155 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x00001158 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x0000115b testq %rsi, %rsi + 0x0f, 0x85, 0xd8, 0xfe, 0xff, 0xff, //0x0000115e jne LBB0_222 + 0x48, 0x01, 0xd2, //0x00001164 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001167 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc7, //0x0000116b incl %edi + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x0000116d jmp LBB0_235 + //0x00001172 LBB0_237 + 0x44, 0x89, 0xf8, //0x00001172 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x00001175 movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x00001178 testl %r9d, %r9d + 0x0f, 0x84, 0x58, 0xfa, 0xff, 0xff, //0x0000117b je LBB0_157 + //0x00001181 LBB0_238 + 0x44, 0x89, 0xc9, //0x00001181 movl %r9d, %ecx + 0x48, 0x6b, 0xf1, 0x68, //0x00001184 imulq $104, %rcx, %rsi + 0x48, 0x8d, 0x3d, 0x81, 0x3e, 0x00, 0x00, //0x00001188 leaq $16001(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3e, //0x0000118f movl (%rsi,%rdi), %ebx + 0x4c, 0x63, 0xc0, //0x00001192 movslq %eax, %r8 + 0x8a, 0x54, 0x3e, 0x04, //0x00001195 movb $4(%rsi,%rdi), %dl + 0x45, 0x85, 0xc0, //0x00001199 testl %r8d, %r8d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000119c je LBB0_243 + 0x48, 0x8d, 0x74, 0x3e, 0x05, //0x000011a2 leaq $5(%rsi,%rdi), %rsi + 0x31, 0xff, //0x000011a7 xorl %edi, %edi + //0x000011a9 LBB0_240 + 0x84, 0xd2, //0x000011a9 testb %dl, %dl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000011ab je LBB0_245 + 0x41, 0x38, 0x14, 0x3c, //0x000011b1 cmpb %dl, (%r12,%rdi) + 0x0f, 0x85, 0xb6, 0x01, 0x00, 0x00, //0x000011b5 jne LBB0_266 + 0x0f, 0xb6, 0x14, 0x3e, //0x000011bb movzbl (%rsi,%rdi), %edx + 0x48, 0xff, 0xc7, //0x000011bf incq %rdi + 0x49, 0x39, 0xf8, //0x000011c2 cmpq %rdi, %r8 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x000011c5 jne LBB0_240 + //0x000011cb LBB0_243 + 0x84, 0xd2, //0x000011cb testb %dl, %dl + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x000011cd je LBB0_245 + //0x000011d3 LBB0_244 + 0xff, 0xcb, //0x000011d3 decl %ebx + //0x000011d5 LBB0_245 + 0x85, 0xc0, //0x000011d5 testl %eax, %eax + 0x0f, 0x8e, 0xbb, 0x00, 0x00, 0x00, //0x000011d7 jle LBB0_254 + 0x4c, 0x89, 0x5d, 0xc8, //0x000011dd movq %r11, $-56(%rbp) + 0x89, 0x5d, 0xb0, //0x000011e1 movl %ebx, $-80(%rbp) + 0x01, 0xd8, //0x000011e4 addl %ebx, %eax + 0x48, 0x98, //0x000011e6 cltq + 0x48, 0x89, 0xc6, //0x000011e8 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x000011eb shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x000011ef decq %rax + 0x49, 0xff, 0xc0, //0x000011f2 incq %r8 + 0x31, 0xff, //0x000011f5 xorl %edi, %edi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000011f7 jmp LBB0_249 + //0x000011fc LBB0_247 + 0x48, 0x85, 0xc0, //0x000011fc testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000011ff movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001204 cmovnel %eax, %r14d + //0x00001208 LBB0_248 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001208 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x00001212 addq %rax, %rsi + 0x49, 0x8d, 0x43, 0xff, //0x00001215 leaq $-1(%r11), %rax + 0x49, 0xff, 0xc8, //0x00001219 decq %r8 + 0x49, 0x83, 0xf8, 0x01, //0x0000121c cmpq $1, %r8 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00001220 jle LBB0_251 + //0x00001226 LBB0_249 + 0x49, 0x89, 0xc3, //0x00001226 movq %rax, %r11 + 0x4b, 0x0f, 0xbe, 0x5c, 0x04, 0xfe, //0x00001229 movsbq $-2(%r12,%r8), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x0000122f addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00001233 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x00001236 addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x00001239 movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000123c movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001246 mulq %rdx + 0x48, 0x89, 0xd7, //0x00001249 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x0000124c shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x00001250 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001254 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00001258 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x0000125b subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x0000125e cmpq %r13, %r11 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00001261 jae LBB0_247 + 0x04, 0x30, //0x00001267 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x00001269 movb %al, (%r12,%r11) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x0000126d jmp LBB0_248 + //0x00001272 LBB0_251 + 0x48, 0x83, 0xfb, 0x0a, //0x00001272 cmpq $10, %rbx + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001276 movl $1, %r8d + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x0000127c jae LBB0_255 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001282 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xb0, //0x00001286 movl $-80(%rbp), %ebx + 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x00001289 jmp LBB0_259 + //0x0000128e LBB0_253 + 0x45, 0x31, 0xff, //0x0000128e xorl %r15d, %r15d + 0x31, 0xff, //0x00001291 xorl %edi, %edi + 0xe9, 0x41, 0xf9, 0xff, 0xff, //0x00001293 jmp LBB0_157 + //0x00001298 LBB0_254 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001298 movl $1, %r8d + 0xe9, 0x6a, 0x00, 0x00, 0x00, //0x0000129e jmp LBB0_259 + //0x000012a3 LBB0_255 + 0x49, 0x63, 0xcb, //0x000012a3 movslq %r11d, %rcx + 0x48, 0xff, 0xc9, //0x000012a6 decq %rcx + 0x4c, 0x8b, 0x5d, 0xc8, //0x000012a9 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xb0, //0x000012ad movl $-80(%rbp), %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000012b0 jmp LBB0_257 + //0x000012b5 LBB0_256 + 0x48, 0x85, 0xc0, //0x000012b5 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x000012b8 cmovnel %r8d, %r14d + 0x48, 0xff, 0xc9, //0x000012bc decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000012bf cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000012c3 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000012c6 jbe LBB0_259 + //0x000012cc LBB0_257 + 0x48, 0x89, 0xf8, //0x000012cc movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000012cf movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000012d9 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000012dc shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000012e0 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x000012e4 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x000012e8 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x000012eb subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x000012ee cmpq %r13, %rcx + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x000012f1 jae LBB0_256 + 0x04, 0x30, //0x000012f7 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x000012f9 movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x000012fd decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00001300 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001304 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001307 ja LBB0_257 + //0x0000130d LBB0_259 + 0x41, 0x01, 0xdf, //0x0000130d addl %ebx, %r15d + 0x4d, 0x63, 0xff, //0x00001310 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00001313 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00001316 cmovbel %r13d, %r15d + 0x41, 0x01, 0xdb, //0x0000131a addl %ebx, %r11d + 0x45, 0x85, 0xff, //0x0000131d testl %r15d, %r15d + 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x00001320 jle LBB0_268 + 0x44, 0x89, 0xf8, //0x00001326 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001329 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x53, 0x00, 0x00, 0x00, //0x0000132f jne LBB0_269 + //0x00001335 LBB0_261 + 0x48, 0x83, 0xf8, 0x01, //0x00001335 cmpq $1, %rax + 0x0f, 0x8e, 0x3d, 0x00, 0x00, 0x00, //0x00001339 jle LBB0_267 + 0x4c, 0x8d, 0x78, 0xff, //0x0000133f leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001343 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001349 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000134c je LBB0_261 + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001352 jmp LBB0_269 + //0x00001357 LBB0_263 + 0xff, 0xc8, //0x00001357 decl %eax + 0x41, 0x89, 0xc7, //0x00001359 movl %eax, %r15d + //0x0000135c LBB0_264 + 0x48, 0x8b, 0x45, 0xc0, //0x0000135c movq $-64(%rbp), %rax + 0x45, 0x85, 0xff, //0x00001360 testl %r15d, %r15d + 0x0f, 0x84, 0x04, 0x0c, 0x00, 0x00, //0x00001363 je LBB0_444 + //0x00001369 LBB0_265 + 0x44, 0x89, 0xff, //0x00001369 movl %r15d, %edi + 0xe9, 0x68, 0xf8, 0xff, 0xff, //0x0000136c jmp LBB0_157 + //0x00001371 LBB0_266 + 0x0f, 0x8c, 0x5c, 0xfe, 0xff, 0xff, //0x00001371 jl LBB0_244 + 0xe9, 0x59, 0xfe, 0xff, 0xff, //0x00001377 jmp LBB0_245 + //0x0000137c LBB0_267 + 0xff, 0xc8, //0x0000137c decl %eax + 0x41, 0x89, 0xc7, //0x0000137e movl %eax, %r15d + //0x00001381 LBB0_268 + 0x45, 0x85, 0xff, //0x00001381 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001384 cmovel %r15d, %r11d + //0x00001388 LBB0_269 + 0x44, 0x89, 0xf8, //0x00001388 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x0000138b movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x0000138e testl %r9d, %r9d + 0x0f, 0x89, 0x42, 0xf8, 0xff, 0xff, //0x00001391 jns LBB0_157 + 0xe9, 0x8e, 0xf8, 0xff, 0xff, //0x00001397 jmp LBB0_163 + //0x0000139c LBB0_270 + 0x44, 0x89, 0xff, //0x0000139c movl %r15d, %edi + //0x0000139f LBB0_271 + 0x4c, 0x8d, 0x05, 0x6a, 0x3c, 0x00, 0x00, //0x0000139f leaq $15466(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000013a6 jmp LBB0_274 + //0x000013ab LBB0_272 + 0x89, 0xf8, //0x000013ab movl %edi, %eax + //0x000013ad LBB0_273 + 0x48, 0x8b, 0x75, 0xc0, //0x000013ad movq $-64(%rbp), %rsi + 0x2b, 0x75, 0xb0, //0x000013b1 subl $-80(%rbp), %esi + 0x89, 0xc7, //0x000013b4 movl %eax, %edi + //0x000013b6 LBB0_274 + 0x45, 0x85, 0xdb, //0x000013b6 testl %r11d, %r11d + 0x0f, 0x88, 0x16, 0x00, 0x00, 0x00, //0x000013b9 js LBB0_277 + 0x0f, 0x85, 0xcd, 0x07, 0x00, 0x00, //0x000013bf jne LBB0_389 + 0x41, 0x80, 0x3c, 0x24, 0x35, //0x000013c5 cmpb $53, (%r12) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x000013ca jl LBB0_278 + 0xe9, 0xbd, 0x07, 0x00, 0x00, //0x000013d0 jmp LBB0_389 + //0x000013d5 LBB0_277 + 0xb8, 0x1b, 0x00, 0x00, 0x00, //0x000013d5 movl $27, %eax + 0x41, 0x83, 0xfb, 0xf8, //0x000013da cmpl $-8, %r11d + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000013de jl LBB0_279 + //0x000013e4 LBB0_278 + 0x44, 0x89, 0xd8, //0x000013e4 movl %r11d, %eax + 0xf7, 0xd8, //0x000013e7 negl %eax + 0x48, 0x98, //0x000013e9 cltq + 0x48, 0x8d, 0x0d, 0xee, 0x3b, 0x00, 0x00, //0x000013eb leaq $15342(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x8b, 0x04, 0x81, //0x000013f2 movl (%rcx,%rax,4), %eax + //0x000013f5 LBB0_279 + 0x85, 0xff, //0x000013f5 testl %edi, %edi + 0x48, 0x89, 0x75, 0xc0, //0x000013f7 movq %rsi, $-64(%rbp) + 0x89, 0x45, 0xb0, //0x000013fb movl %eax, $-80(%rbp) + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x000013fe je LBB0_272 + 0x85, 0xc0, //0x00001404 testl %eax, %eax + 0x0f, 0x84, 0x9f, 0xff, 0xff, 0xff, //0x00001406 je LBB0_272 + 0x0f, 0x8e, 0x3b, 0x02, 0x00, 0x00, //0x0000140c jle LBB0_311 + 0x41, 0x89, 0xc1, //0x00001412 movl %eax, %r9d + 0x83, 0xf8, 0x3d, //0x00001415 cmpl $61, %eax + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00001418 jge LBB0_286 + 0xe9, 0x41, 0x02, 0x00, 0x00, //0x0000141e jmp LBB0_313 + //0x00001423 LBB0_283 + 0xff, 0xc8, //0x00001423 decl %eax + 0x41, 0x89, 0xc7, //0x00001425 movl %eax, %r15d + //0x00001428 LBB0_284 + 0x45, 0x85, 0xff, //0x00001428 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x0000142b cmovel %r15d, %r11d + //0x0000142f LBB0_285 + 0x44, 0x8d, 0x4b, 0xc4, //0x0000142f leal $-60(%rbx), %r9d + 0x44, 0x89, 0xff, //0x00001433 movl %r15d, %edi + 0x83, 0xfb, 0x78, //0x00001436 cmpl $120, %ebx + 0x0f, 0x8e, 0x16, 0x02, 0x00, 0x00, //0x00001439 jle LBB0_312 + //0x0000143f LBB0_286 + 0x44, 0x89, 0xcb, //0x0000143f movl %r9d, %ebx + 0x48, 0x63, 0xf7, //0x00001442 movslq %edi, %rsi + 0x85, 0xf6, //0x00001445 testl %esi, %esi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00001447 je LBB0_292 + 0xb1, 0x38, //0x0000144d movb $56, %cl + 0x31, 0xc0, //0x0000144f xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001451 .p2align 4, 0x90 + //0x00001460 LBB0_288 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00001460 movl $19, %r9d + 0x48, 0x83, 0xf8, 0x2a, //0x00001466 cmpq $42, %rax + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x0000146a je LBB0_293 + 0x41, 0x38, 0x0c, 0x04, //0x00001470 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xc8, 0x01, 0x00, 0x00, //0x00001474 jne LBB0_309 + 0x42, 0x0f, 0xb6, 0x8c, 0x00, 0x65, 0x18, 0x00, 0x00, //0x0000147a movzbl $6245(%rax,%r8), %ecx + 0x48, 0xff, 0xc0, //0x00001483 incq %rax + 0x48, 0x39, 0xc6, //0x00001486 cmpq %rax, %rsi + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00001489 jne LBB0_288 + 0x84, 0xc9, //0x0000148f testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001491 je LBB0_293 + //0x00001497 LBB0_292 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x00001497 movl $18, %r9d + //0x0000149d LBB0_293 + 0x85, 0xff, //0x0000149d testl %edi, %edi + 0x0f, 0x8e, 0x4b, 0x01, 0x00, 0x00, //0x0000149f jle LBB0_305 + 0x48, 0x89, 0x5d, 0xc8, //0x000014a5 movq %rbx, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x000014a9 movq %r11, %r8 + 0x44, 0x01, 0xcf, //0x000014ac addl %r9d, %edi + 0x48, 0x63, 0xc7, //0x000014af movslq %edi, %rax + 0x48, 0x89, 0xc3, //0x000014b2 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x000014b5 shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x000014b9 decq %rax + 0x48, 0xff, 0xc6, //0x000014bc incq %rsi + 0x31, 0xc9, //0x000014bf xorl %ecx, %ecx + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000014c1 jmp LBB0_297 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014c6 .p2align 4, 0x90 + //0x000014d0 LBB0_295 + 0x48, 0x85, 0xc0, //0x000014d0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000014d3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000014d8 cmovnel %eax, %r14d + //0x000014dc LBB0_296 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000014dc movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x000014e6 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x000014e9 leaq $-1(%r11), %rax + 0x48, 0xff, 0xce, //0x000014ed decq %rsi + 0x48, 0x83, 0xfe, 0x01, //0x000014f0 cmpq $1, %rsi + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x000014f4 jle LBB0_299 + //0x000014fa LBB0_297 + 0x49, 0x89, 0xc3, //0x000014fa movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x7c, 0x34, 0xfe, //0x000014fd movzbl $-2(%r12,%rsi), %edi + 0x48, 0xc1, 0xe7, 0x3c, //0x00001503 shlq $60, %rdi + 0x48, 0x01, 0xcf, //0x00001507 addq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x0000150a movq %rdi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000150d movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00001517 mulq %rcx + 0x48, 0x89, 0xd1, //0x0000151a movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x0000151d shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00001521 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001525 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf8, //0x00001529 movq %rdi, %rax + 0x48, 0x29, 0xd0, //0x0000152c subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x0000152f cmpq %r13, %r11 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x00001532 jae LBB0_295 + 0x04, 0x30, //0x00001538 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x0000153a movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x0000153e jmp LBB0_296 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001543 .p2align 4, 0x90 + //0x00001550 LBB0_299 + 0x48, 0x83, 0xff, 0x0a, //0x00001550 cmpq $10, %rdi + 0x0f, 0x83, 0x13, 0x00, 0x00, 0x00, //0x00001554 jae LBB0_301 + 0x4d, 0x89, 0xc3, //0x0000155a movq %r8, %r11 + 0x4c, 0x8d, 0x05, 0xac, 0x3a, 0x00, 0x00, //0x0000155d leaq $15020(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xc8, //0x00001564 movq $-56(%rbp), %rbx + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00001568 jmp LBB0_305 + //0x0000156d LBB0_301 + 0x49, 0x63, 0xf3, //0x0000156d movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x00001570 decq %rsi + 0x4d, 0x89, 0xc3, //0x00001573 movq %r8, %r11 + 0x4c, 0x8d, 0x05, 0x93, 0x3a, 0x00, 0x00, //0x00001576 leaq $14995(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xc8, //0x0000157d movq $-56(%rbp), %rbx + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00001581 jmp LBB0_303 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001586 .p2align 4, 0x90 + //0x00001590 LBB0_302 + 0x48, 0x85, 0xc0, //0x00001590 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001593 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001598 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x0000159c decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x0000159f cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000015a3 movq %rdx, %rcx + 0x0f, 0x86, 0x44, 0x00, 0x00, 0x00, //0x000015a6 jbe LBB0_305 + //0x000015ac LBB0_303 + 0x48, 0x89, 0xc8, //0x000015ac movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000015af movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000015b9 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000015bc shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000015c0 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x000015c4 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x000015c8 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x000015cb subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x000015ce cmpq %r13, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x000015d1 jae LBB0_302 + 0x04, 0x30, //0x000015d7 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x000015d9 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x000015dd decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000015e0 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000015e4 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000015e7 ja LBB0_303 + 0x90, 0x90, 0x90, //0x000015ed .p2align 4, 0x90 + //0x000015f0 LBB0_305 + 0x45, 0x01, 0xcf, //0x000015f0 addl %r9d, %r15d + 0x4d, 0x63, 0xff, //0x000015f3 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x000015f6 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x000015f9 cmovbel %r13d, %r15d + 0x45, 0x01, 0xcb, //0x000015fd addl %r9d, %r11d + 0x45, 0x85, 0xff, //0x00001600 testl %r15d, %r15d + 0x0f, 0x8e, 0x1f, 0xfe, 0xff, 0xff, //0x00001603 jle LBB0_284 + 0x44, 0x89, 0xf8, //0x00001609 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000160c cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x17, 0xfe, 0xff, 0xff, //0x00001612 jne LBB0_285 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001618 .p2align 4, 0x90 + //0x00001620 LBB0_307 + 0x48, 0x83, 0xf8, 0x01, //0x00001620 cmpq $1, %rax + 0x0f, 0x8e, 0xf9, 0xfd, 0xff, 0xff, //0x00001624 jle LBB0_283 + 0x4c, 0x8d, 0x78, 0xff, //0x0000162a leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x0000162e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001634 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001637 je LBB0_307 + 0xe9, 0xed, 0xfd, 0xff, 0xff, //0x0000163d jmp LBB0_285 + //0x00001642 LBB0_309 + 0x0f, 0x8c, 0x4f, 0xfe, 0xff, 0xff, //0x00001642 jl LBB0_292 + 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00001648 jmp LBB0_293 + //0x0000164d LBB0_311 + 0x41, 0x89, 0xc1, //0x0000164d movl %eax, %r9d + 0xe9, 0x09, 0x02, 0x00, 0x00, //0x00001650 jmp LBB0_341 + //0x00001655 LBB0_312 + 0x44, 0x89, 0xff, //0x00001655 movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x00001658 movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x0000165b testl %r9d, %r9d + 0x0f, 0x84, 0x49, 0xfd, 0xff, 0xff, //0x0000165e je LBB0_273 + //0x00001664 LBB0_313 + 0x44, 0x89, 0xc9, //0x00001664 movl %r9d, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00001667 imulq $104, %rcx, %rdx + 0x42, 0x8b, 0x1c, 0x02, //0x0000166b movl (%rdx,%r8), %ebx + 0x4c, 0x89, 0xc6, //0x0000166f movq %r8, %rsi + 0x4c, 0x63, 0xc7, //0x00001672 movslq %edi, %r8 + 0x8a, 0x44, 0x32, 0x04, //0x00001675 movb $4(%rdx,%rsi), %al + 0x45, 0x85, 0xc0, //0x00001679 testl %r8d, %r8d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000167c je LBB0_318 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00001682 leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00001687 xorl %esi, %esi + //0x00001689 LBB0_315 + 0x84, 0xc0, //0x00001689 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000168b je LBB0_320 + 0x41, 0x38, 0x04, 0x34, //0x00001691 cmpb %al, (%r12,%rsi) + 0x0f, 0x85, 0x9d, 0x01, 0x00, 0x00, //0x00001695 jne LBB0_337 + 0x0f, 0xb6, 0x04, 0x32, //0x0000169b movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x0000169f incq %rsi + 0x49, 0x39, 0xf0, //0x000016a2 cmpq %rsi, %r8 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x000016a5 jne LBB0_315 + //0x000016ab LBB0_318 + 0x84, 0xc0, //0x000016ab testb %al, %al + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x000016ad je LBB0_320 + //0x000016b3 LBB0_319 + 0xff, 0xcb, //0x000016b3 decl %ebx + //0x000016b5 LBB0_320 + 0x85, 0xff, //0x000016b5 testl %edi, %edi + 0x0f, 0x8e, 0xb6, 0x00, 0x00, 0x00, //0x000016b7 jle LBB0_328 + 0x4c, 0x89, 0x5d, 0xc8, //0x000016bd movq %r11, $-56(%rbp) + 0x89, 0x5d, 0xbc, //0x000016c1 movl %ebx, $-68(%rbp) + 0x01, 0xdf, //0x000016c4 addl %ebx, %edi + 0x48, 0x63, 0xc7, //0x000016c6 movslq %edi, %rax + 0x48, 0x89, 0xc6, //0x000016c9 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x000016cc shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x000016d0 decq %rax + 0x49, 0xff, 0xc0, //0x000016d3 incq %r8 + 0x31, 0xff, //0x000016d6 xorl %edi, %edi + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x000016d8 jmp LBB0_324 + 0x90, 0x90, 0x90, //0x000016dd .p2align 4, 0x90 + //0x000016e0 LBB0_322 + 0x48, 0x85, 0xc0, //0x000016e0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000016e3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000016e8 cmovnel %eax, %r14d + //0x000016ec LBB0_323 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000016ec movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x000016f6 addq %rax, %rsi + 0x49, 0x8d, 0x43, 0xff, //0x000016f9 leaq $-1(%r11), %rax + 0x49, 0xff, 0xc8, //0x000016fd decq %r8 + 0x49, 0x83, 0xf8, 0x01, //0x00001700 cmpq $1, %r8 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00001704 jle LBB0_326 + //0x0000170a LBB0_324 + 0x49, 0x89, 0xc3, //0x0000170a movq %rax, %r11 + 0x4b, 0x0f, 0xbe, 0x5c, 0x04, 0xfe, //0x0000170d movsbq $-2(%r12,%r8), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00001713 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00001717 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x0000171a addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x0000171d movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001720 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000172a mulq %rdx + 0x48, 0x89, 0xd7, //0x0000172d movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x00001730 shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x00001734 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001738 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x0000173c movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x0000173f subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x00001742 cmpq %r13, %r11 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00001745 jae LBB0_322 + 0x04, 0x30, //0x0000174b addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x0000174d movb %al, (%r12,%r11) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00001751 jmp LBB0_323 + //0x00001756 LBB0_326 + 0x48, 0x83, 0xfb, 0x0a, //0x00001756 cmpq $10, %rbx + 0x4c, 0x8d, 0x05, 0xaf, 0x38, 0x00, 0x00, //0x0000175a leaq $14511(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00001761 jae LBB0_329 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001767 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xbc, //0x0000176b movl $-68(%rbp), %ebx + 0xe9, 0x7b, 0x00, 0x00, 0x00, //0x0000176e jmp LBB0_333 + //0x00001773 LBB0_328 + 0x4c, 0x8d, 0x05, 0x96, 0x38, 0x00, 0x00, //0x00001773 leaq $14486(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x0000177a jmp LBB0_333 + //0x0000177f LBB0_329 + 0x49, 0x63, 0xcb, //0x0000177f movslq %r11d, %rcx + 0x48, 0xff, 0xc9, //0x00001782 decq %rcx + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001785 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xbc, //0x00001789 movl $-68(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x0000178c jmp LBB0_331 + //0x00001791 LBB0_330 + 0x48, 0x85, 0xc0, //0x00001791 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001794 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001799 cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x0000179d decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000017a0 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000017a4 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000017a7 jbe LBB0_333 + //0x000017ad LBB0_331 + 0x48, 0x89, 0xf8, //0x000017ad movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000017b0 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000017ba mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000017bd shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000017c1 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x000017c5 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x000017c9 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x000017cc subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x000017cf cmpq %r13, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x000017d2 jae LBB0_330 + 0x04, 0x30, //0x000017d8 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x000017da movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x000017de decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000017e1 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000017e5 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000017e8 ja LBB0_331 + //0x000017ee LBB0_333 + 0x41, 0x01, 0xdf, //0x000017ee addl %ebx, %r15d + 0x4d, 0x63, 0xff, //0x000017f1 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x000017f4 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x000017f7 cmovbel %r13d, %r15d + 0x41, 0x01, 0xdb, //0x000017fb addl %ebx, %r11d + 0x45, 0x85, 0xff, //0x000017fe testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x00001801 jle LBB0_339 + 0x44, 0x89, 0xf8, //0x00001807 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000180a cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00001810 jne LBB0_340 + //0x00001816 LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x00001816 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x0000181a jle LBB0_338 + 0x4c, 0x8d, 0x78, 0xff, //0x00001820 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001824 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x0000182a movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000182d je LBB0_335 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001833 jmp LBB0_340 + //0x00001838 LBB0_337 + 0x0f, 0x8c, 0x75, 0xfe, 0xff, 0xff, //0x00001838 jl LBB0_319 + 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x0000183e jmp LBB0_320 + //0x00001843 LBB0_338 + 0xff, 0xc8, //0x00001843 decl %eax + 0x41, 0x89, 0xc7, //0x00001845 movl %eax, %r15d + //0x00001848 LBB0_339 + 0x45, 0x85, 0xff, //0x00001848 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x0000184b cmovel %r15d, %r11d + //0x0000184f LBB0_340 + 0x44, 0x89, 0xff, //0x0000184f movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x00001852 movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x00001855 testl %r9d, %r9d + 0x0f, 0x89, 0x4f, 0xfb, 0xff, 0xff, //0x00001858 jns LBB0_273 + //0x0000185e LBB0_341 + 0x41, 0x83, 0xf9, 0xc3, //0x0000185e cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x00001862 jle LBB0_345 + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x00001868 jmp LBB0_365 + //0x0000186d LBB0_342 + 0xff, 0xc9, //0x0000186d decl %ecx + 0x41, 0x89, 0xcf, //0x0000186f movl %ecx, %r15d + //0x00001872 LBB0_343 + 0x45, 0x85, 0xff, //0x00001872 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001875 cmovel %r15d, %r11d + //0x00001879 LBB0_344 + 0x44, 0x8d, 0x48, 0x3c, //0x00001879 leal $60(%rax), %r9d + 0x44, 0x89, 0xff, //0x0000187d movl %r15d, %edi + 0x83, 0xf8, 0x88, //0x00001880 cmpl $-120, %eax + 0x0f, 0x8d, 0x71, 0x01, 0x00, 0x00, //0x00001883 jge LBB0_364 + //0x00001889 LBB0_345 + 0x44, 0x89, 0xc8, //0x00001889 movl %r9d, %eax + 0x48, 0x63, 0xf7, //0x0000188c movslq %edi, %rsi + 0x31, 0xd2, //0x0000188f xorl %edx, %edx + 0x31, 0xc9, //0x00001891 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001893 .p2align 4, 0x90 + //0x000018a0 LBB0_346 + 0x48, 0x39, 0xf2, //0x000018a0 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x000018a3 jge LBB0_348 + 0x48, 0x8d, 0x0c, 0x89, //0x000018a9 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x000018ad movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x000018b2 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc2, //0x000018b7 incq %rdx + 0x49, 0x8d, 0x5a, 0x01, //0x000018ba leaq $1(%r10), %rbx + 0x48, 0x39, 0xd9, //0x000018be cmpq %rbx, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x000018c1 jb LBB0_346 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000018c7 jmp LBB0_350 + 0x90, 0x90, 0x90, 0x90, //0x000018cc .p2align 4, 0x90 + //0x000018d0 LBB0_348 + 0x48, 0x85, 0xc9, //0x000018d0 testq %rcx, %rcx + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x000018d3 je LBB0_363 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018d9 .p2align 4, 0x90 + //0x000018e0 LBB0_349 + 0x48, 0x01, 0xc9, //0x000018e0 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000018e3 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc2, //0x000018e7 incl %edx + 0x49, 0x8d, 0x72, 0x01, //0x000018e9 leaq $1(%r10), %rsi + 0x48, 0x39, 0xf1, //0x000018ed cmpq %rsi, %rcx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x000018f0 jb LBB0_349 + //0x000018f6 LBB0_350 + 0x41, 0x29, 0xd3, //0x000018f6 subl %edx, %r11d + 0x31, 0xf6, //0x000018f9 xorl %esi, %esi + 0x39, 0xfa, //0x000018fb cmpl %edi, %edx + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x000018fd jge LBB0_355 + 0x48, 0x63, 0xd2, //0x00001903 movslq %edx, %rdx + 0x49, 0x63, 0xf7, //0x00001906 movslq %r15d, %rsi + 0x49, 0x8d, 0x3c, 0x14, //0x00001909 leaq (%r12,%rdx), %rdi + 0x45, 0x31, 0xff, //0x0000190d xorl %r15d, %r15d + //0x00001910 .p2align 4, 0x90 + //0x00001910 LBB0_352 + 0x48, 0x89, 0xcb, //0x00001910 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00001913 shrq $60, %rbx + 0x4c, 0x21, 0xd1, //0x00001917 andq %r10, %rcx + 0x80, 0xcb, 0x30, //0x0000191a orb $48, %bl + 0x43, 0x88, 0x1c, 0x3c, //0x0000191d movb %bl, (%r12,%r15) + 0x48, 0x8d, 0x0c, 0x89, //0x00001921 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x1c, 0x3f, //0x00001925 movsbq (%rdi,%r15), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x0000192a leaq $-48(%rbx,%rcx,2), %rcx + 0x4a, 0x8d, 0x5c, 0x3a, 0x01, //0x0000192f leaq $1(%rdx,%r15), %rbx + 0x49, 0xff, 0xc7, //0x00001934 incq %r15 + 0x48, 0x39, 0xf3, //0x00001937 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x0000193a jl LBB0_352 + 0x48, 0x85, 0xc9, //0x00001940 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00001943 je LBB0_359 + 0x44, 0x89, 0xfe, //0x00001949 movl %r15d, %esi + //0x0000194c LBB0_355 + 0x41, 0x89, 0xf7, //0x0000194c movl %esi, %r15d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x0000194f jmp LBB0_357 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001954 .p2align 4, 0x90 + //0x00001960 LBB0_356 + 0x48, 0x85, 0xd2, //0x00001960 testq %rdx, %rdx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001963 movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x00001968 cmovnel %edx, %r14d + 0x48, 0x01, 0xc9, //0x0000196c addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x0000196f leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001973 testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00001976 je LBB0_359 + //0x0000197c LBB0_357 + 0x48, 0x89, 0xca, //0x0000197c movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x0000197f shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x00001983 andq %r10, %rcx + 0x49, 0x63, 0xf7, //0x00001986 movslq %r15d, %rsi + 0x49, 0x39, 0xf5, //0x00001989 cmpq %rsi, %r13 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x0000198c jbe LBB0_356 + 0x80, 0xca, 0x30, //0x00001992 orb $48, %dl + 0x41, 0x88, 0x14, 0x34, //0x00001995 movb %dl, (%r12,%rsi) + 0xff, 0xc6, //0x00001999 incl %esi + 0x41, 0x89, 0xf7, //0x0000199b movl %esi, %r15d + 0x48, 0x01, 0xc9, //0x0000199e addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000019a1 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000019a5 testq %rcx, %rcx + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x000019a8 jne LBB0_357 + //0x000019ae LBB0_359 + 0x41, 0xff, 0xc3, //0x000019ae incl %r11d + 0x45, 0x85, 0xff, //0x000019b1 testl %r15d, %r15d + 0x0f, 0x8e, 0xb8, 0xfe, 0xff, 0xff, //0x000019b4 jle LBB0_343 + 0x44, 0x89, 0xf9, //0x000019ba movl %r15d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x000019bd cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xb0, 0xfe, 0xff, 0xff, //0x000019c3 jne LBB0_344 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019c9 .p2align 4, 0x90 + //0x000019d0 LBB0_361 + 0x48, 0x83, 0xf9, 0x01, //0x000019d0 cmpq $1, %rcx + 0x0f, 0x8e, 0x93, 0xfe, 0xff, 0xff, //0x000019d4 jle LBB0_342 + 0x4c, 0x8d, 0x79, 0xff, //0x000019da leaq $-1(%rcx), %r15 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x000019de cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xf9, //0x000019e4 movq %r15, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000019e7 je LBB0_361 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x000019ed jmp LBB0_344 + //0x000019f2 LBB0_363 + 0x45, 0x31, 0xff, //0x000019f2 xorl %r15d, %r15d + 0xe9, 0x7f, 0xfe, 0xff, 0xff, //0x000019f5 jmp LBB0_344 + //0x000019fa LBB0_364 + 0x44, 0x89, 0xff, //0x000019fa movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x000019fd movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x00001a00 testl %r9d, %r9d + 0x0f, 0x84, 0xa4, 0xf9, 0xff, 0xff, //0x00001a03 je LBB0_273 + //0x00001a09 LBB0_365 + 0x41, 0xf7, 0xd9, //0x00001a09 negl %r9d + 0x48, 0x63, 0xf7, //0x00001a0c movslq %edi, %rsi + 0x31, 0xd2, //0x00001a0f xorl %edx, %edx + 0x31, 0xc0, //0x00001a11 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a13 .p2align 4, 0x90 + //0x00001a20 LBB0_366 + 0x48, 0x39, 0xf2, //0x00001a20 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x22, 0x01, 0x00, 0x00, //0x00001a23 jge LBB0_382 + 0x48, 0x8d, 0x04, 0x80, //0x00001a29 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x14, //0x00001a2d movsbq (%r12,%rdx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00001a32 leaq $-48(%rcx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00001a37 incq %rdx + 0x48, 0x89, 0xc3, //0x00001a3a movq %rax, %rbx + 0x44, 0x89, 0xc9, //0x00001a3d movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00001a40 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001a43 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001a46 je LBB0_366 + //0x00001a4c LBB0_368 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001a4c movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x00001a53 movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x00001a56 shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001a59 notq %rsi + 0x31, 0xdb, //0x00001a5c xorl %ebx, %ebx + 0x39, 0xfa, //0x00001a5e cmpl %edi, %edx + 0x0f, 0x8d, 0x58, 0x00, 0x00, 0x00, //0x00001a60 jge LBB0_372 + 0x4c, 0x89, 0x5d, 0xc8, //0x00001a66 movq %r11, $-56(%rbp) + 0x4c, 0x63, 0xda, //0x00001a6a movslq %edx, %r11 + 0x4d, 0x63, 0xc7, //0x00001a6d movslq %r15d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00001a70 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x00001a74 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a76 .p2align 4, 0x90 + //0x00001a80 LBB0_370 + 0x48, 0x89, 0xc7, //0x00001a80 movq %rax, %rdi + 0x44, 0x89, 0xc9, //0x00001a83 movl %r9d, %ecx + 0x48, 0xd3, 0xef, //0x00001a86 shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001a89 andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00001a8c addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00001a90 movb %dil, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x80, //0x00001a94 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x00001a98 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00001a9d leaq $-48(%rcx,%rax,2), %rax + 0x49, 0x8d, 0x4c, 0x1b, 0x01, //0x00001aa2 leaq $1(%r11,%rbx), %rcx + 0x48, 0xff, 0xc3, //0x00001aa7 incq %rbx + 0x4c, 0x39, 0xc1, //0x00001aaa cmpq %r8, %rcx + 0x0f, 0x8c, 0xcd, 0xff, 0xff, 0xff, //0x00001aad jl LBB0_370 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001ab3 movq $-56(%rbp), %r11 + 0x4c, 0x8d, 0x05, 0x52, 0x35, 0x00, 0x00, //0x00001ab7 leaq $13650(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + //0x00001abe LBB0_372 + 0x41, 0x29, 0xd3, //0x00001abe subl %edx, %r11d + 0x41, 0x89, 0xdf, //0x00001ac1 movl %ebx, %r15d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001ac4 jmp LBB0_375 + //0x00001ac9 LBB0_373 + 0x48, 0x85, 0xd2, //0x00001ac9 testq %rdx, %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001acc movl $1, %ecx + 0x44, 0x0f, 0x45, 0xf1, //0x00001ad1 cmovnel %ecx, %r14d + //0x00001ad5 LBB0_374 + 0x48, 0x01, 0xc0, //0x00001ad5 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001ad8 leaq (%rax,%rax,4), %rax + //0x00001adc LBB0_375 + 0x48, 0x85, 0xc0, //0x00001adc testq %rax, %rax + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001adf je LBB0_378 + 0x48, 0x89, 0xc2, //0x00001ae5 movq %rax, %rdx + 0x44, 0x89, 0xc9, //0x00001ae8 movl %r9d, %ecx + 0x48, 0xd3, 0xea, //0x00001aeb shrq %cl, %rdx + 0x48, 0x21, 0xf0, //0x00001aee andq %rsi, %rax + 0x49, 0x63, 0xcf, //0x00001af1 movslq %r15d, %rcx + 0x49, 0x39, 0xcd, //0x00001af4 cmpq %rcx, %r13 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00001af7 jbe LBB0_373 + 0x80, 0xc2, 0x30, //0x00001afd addb $48, %dl + 0x41, 0x88, 0x14, 0x0c, //0x00001b00 movb %dl, (%r12,%rcx) + 0xff, 0xc1, //0x00001b04 incl %ecx + 0x41, 0x89, 0xcf, //0x00001b06 movl %ecx, %r15d + 0xe9, 0xc7, 0xff, 0xff, 0xff, //0x00001b09 jmp LBB0_374 + //0x00001b0e LBB0_378 + 0x41, 0xff, 0xc3, //0x00001b0e incl %r11d + 0x45, 0x85, 0xff, //0x00001b11 testl %r15d, %r15d + 0x0f, 0x8e, 0x69, 0x00, 0x00, 0x00, //0x00001b14 jle LBB0_387 + 0x44, 0x89, 0xf8, //0x00001b1a movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001b1d cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x61, 0x00, 0x00, 0x00, //0x00001b23 jne LBB0_388 + //0x00001b29 LBB0_380 + 0x48, 0x83, 0xf8, 0x01, //0x00001b29 cmpq $1, %rax + 0x0f, 0x8e, 0x4b, 0x00, 0x00, 0x00, //0x00001b2d jle LBB0_386 + 0x4c, 0x8d, 0x78, 0xff, //0x00001b33 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001b37 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001b3d movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001b40 je LBB0_380 + 0xe9, 0x3f, 0x00, 0x00, 0x00, //0x00001b46 jmp LBB0_388 + //0x00001b4b LBB0_382 + 0x48, 0x85, 0xc0, //0x00001b4b testq %rax, %rax + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001b4e je LBB0_385 + //0x00001b54 LBB0_383 + 0x48, 0x89, 0xc6, //0x00001b54 movq %rax, %rsi + 0x44, 0x89, 0xc9, //0x00001b57 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x00001b5a shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001b5d testq %rsi, %rsi + 0x0f, 0x85, 0xe6, 0xfe, 0xff, 0xff, //0x00001b60 jne LBB0_368 + 0x48, 0x01, 0xc0, //0x00001b66 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001b69 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00001b6d incl %edx + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00001b6f jmp LBB0_383 + //0x00001b74 LBB0_385 + 0x45, 0x31, 0xff, //0x00001b74 xorl %r15d, %r15d + 0x31, 0xc0, //0x00001b77 xorl %eax, %eax + 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x00001b79 jmp LBB0_273 + //0x00001b7e LBB0_386 + 0xff, 0xc8, //0x00001b7e decl %eax + 0x41, 0x89, 0xc7, //0x00001b80 movl %eax, %r15d + //0x00001b83 LBB0_387 + 0x45, 0x85, 0xff, //0x00001b83 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001b86 cmovel %r15d, %r11d + //0x00001b8a LBB0_388 + 0x44, 0x89, 0xf8, //0x00001b8a movl %r15d, %eax + 0xe9, 0x1b, 0xf8, 0xff, 0xff, //0x00001b8d jmp LBB0_273 + //0x00001b92 LBB0_389 + 0x81, 0xfe, 0x02, 0xfc, 0xff, 0xff, //0x00001b92 cmpl $-1022, %esi + 0x0f, 0x8f, 0xb1, 0x01, 0x00, 0x00, //0x00001b98 jg LBB0_415 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001b9e movl $-1022, %r8d + 0x85, 0xff, //0x00001ba4 testl %edi, %edi + 0x0f, 0x84, 0xfd, 0x01, 0x00, 0x00, //0x00001ba6 je LBB0_420 + 0x8d, 0x8e, 0xfd, 0x03, 0x00, 0x00, //0x00001bac leal $1021(%rsi), %ecx + 0x81, 0xfe, 0xc6, 0xfb, 0xff, 0xff, //0x00001bb2 cmpl $-1082, %esi + 0x0f, 0x8f, 0x06, 0x02, 0x00, 0x00, //0x00001bb8 jg LBB0_421 + 0x4d, 0x89, 0xd8, //0x00001bbe movq %r11, %r8 + 0x49, 0x8d, 0x42, 0x01, //0x00001bc1 leaq $1(%r10), %rax + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001bc5 movl $1, %r11d + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00001bcb jmp LBB0_396 + //0x00001bd0 LBB0_393 + 0xff, 0xc9, //0x00001bd0 decl %ecx + 0x41, 0x89, 0xcf, //0x00001bd2 movl %ecx, %r15d + //0x00001bd5 LBB0_394 + 0x45, 0x85, 0xff, //0x00001bd5 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xc7, //0x00001bd8 cmovel %r15d, %r8d + //0x00001bdc LBB0_395 + 0x41, 0x8d, 0x49, 0x3c, //0x00001bdc leal $60(%r9), %ecx + 0x44, 0x89, 0xff, //0x00001be0 movl %r15d, %edi + 0x41, 0x83, 0xf9, 0x88, //0x00001be3 cmpl $-120, %r9d + 0x0f, 0x8d, 0xe6, 0x01, 0x00, 0x00, //0x00001be7 jge LBB0_422 + //0x00001bed LBB0_396 + 0x41, 0x89, 0xc9, //0x00001bed movl %ecx, %r9d + 0x48, 0x63, 0xdf, //0x00001bf0 movslq %edi, %rbx + 0x31, 0xf6, //0x00001bf3 xorl %esi, %esi + 0x31, 0xc9, //0x00001bf5 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001bf7 .p2align 4, 0x90 + //0x00001c00 LBB0_397 + 0x48, 0x39, 0xde, //0x00001c00 cmpq %rbx, %rsi + 0x0f, 0x8d, 0x1f, 0x00, 0x00, 0x00, //0x00001c03 jge LBB0_399 + 0x48, 0x8d, 0x0c, 0x89, //0x00001c09 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x34, //0x00001c0d movsbq (%r12,%rsi), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00001c12 leaq $-48(%rdx,%rcx,2), %rcx + 0x48, 0xff, 0xc6, //0x00001c17 incq %rsi + 0x48, 0x39, 0xc1, //0x00001c1a cmpq %rax, %rcx + 0x0f, 0x82, 0xdd, 0xff, 0xff, 0xff, //0x00001c1d jb LBB0_397 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001c23 jmp LBB0_401 + //0x00001c28 LBB0_399 + 0x48, 0x85, 0xc9, //0x00001c28 testq %rcx, %rcx + 0x0f, 0x84, 0x16, 0x01, 0x00, 0x00, //0x00001c2b je LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c31 .p2align 4, 0x90 + //0x00001c40 LBB0_400 + 0x48, 0x01, 0xc9, //0x00001c40 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001c43 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc6, //0x00001c47 incl %esi + 0x48, 0x39, 0xc1, //0x00001c49 cmpq %rax, %rcx + 0x0f, 0x82, 0xee, 0xff, 0xff, 0xff, //0x00001c4c jb LBB0_400 + //0x00001c52 LBB0_401 + 0x41, 0x29, 0xf0, //0x00001c52 subl %esi, %r8d + 0x31, 0xdb, //0x00001c55 xorl %ebx, %ebx + 0x39, 0xfe, //0x00001c57 cmpl %edi, %esi + 0x0f, 0x8d, 0x4d, 0x00, 0x00, 0x00, //0x00001c59 jge LBB0_406 + 0x48, 0x63, 0xf6, //0x00001c5f movslq %esi, %rsi + 0x49, 0x63, 0xff, //0x00001c62 movslq %r15d, %rdi + 0x49, 0x8d, 0x1c, 0x34, //0x00001c65 leaq (%r12,%rsi), %rbx + 0x45, 0x31, 0xff, //0x00001c69 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, //0x00001c6c .p2align 4, 0x90 + //0x00001c70 LBB0_403 + 0x48, 0x89, 0xca, //0x00001c70 movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x00001c73 shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x00001c77 andq %r10, %rcx + 0x80, 0xca, 0x30, //0x00001c7a orb $48, %dl + 0x43, 0x88, 0x14, 0x3c, //0x00001c7d movb %dl, (%r12,%r15) + 0x48, 0x8d, 0x0c, 0x89, //0x00001c81 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x14, 0x3b, //0x00001c85 movsbq (%rbx,%r15), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00001c8a leaq $-48(%rdx,%rcx,2), %rcx + 0x4a, 0x8d, 0x54, 0x3e, 0x01, //0x00001c8f leaq $1(%rsi,%r15), %rdx + 0x49, 0xff, 0xc7, //0x00001c94 incq %r15 + 0x48, 0x39, 0xfa, //0x00001c97 cmpq %rdi, %rdx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001c9a jl LBB0_403 + 0x48, 0x85, 0xc9, //0x00001ca0 testq %rcx, %rcx + 0x0f, 0x84, 0x61, 0x00, 0x00, 0x00, //0x00001ca3 je LBB0_410 + 0x44, 0x89, 0xfb, //0x00001ca9 movl %r15d, %ebx + //0x00001cac LBB0_406 + 0x41, 0x89, 0xdf, //0x00001cac movl %ebx, %r15d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00001caf jmp LBB0_408 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cb4 .p2align 4, 0x90 + //0x00001cc0 LBB0_407 + 0x48, 0x85, 0xf6, //0x00001cc0 testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf3, //0x00001cc3 cmovnel %r11d, %r14d + 0x48, 0x01, 0xc9, //0x00001cc7 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001cca leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001cce testq %rcx, %rcx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001cd1 je LBB0_410 + //0x00001cd7 LBB0_408 + 0x48, 0x89, 0xce, //0x00001cd7 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x3c, //0x00001cda shrq $60, %rsi + 0x4c, 0x21, 0xd1, //0x00001cde andq %r10, %rcx + 0x49, 0x63, 0xff, //0x00001ce1 movslq %r15d, %rdi + 0x49, 0x39, 0xfd, //0x00001ce4 cmpq %rdi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00001ce7 jbe LBB0_407 + 0x40, 0x80, 0xce, 0x30, //0x00001ced orb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00001cf1 movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00001cf5 incl %edi + 0x41, 0x89, 0xff, //0x00001cf7 movl %edi, %r15d + 0x48, 0x01, 0xc9, //0x00001cfa addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001cfd leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001d01 testq %rcx, %rcx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00001d04 jne LBB0_408 + //0x00001d0a LBB0_410 + 0x41, 0xff, 0xc0, //0x00001d0a incl %r8d + 0x45, 0x85, 0xff, //0x00001d0d testl %r15d, %r15d + 0x0f, 0x8e, 0xbf, 0xfe, 0xff, 0xff, //0x00001d10 jle LBB0_394 + 0x44, 0x89, 0xf9, //0x00001d16 movl %r15d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00001d19 cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xb7, 0xfe, 0xff, 0xff, //0x00001d1f jne LBB0_395 + //0x00001d25 LBB0_412 + 0x48, 0x83, 0xf9, 0x01, //0x00001d25 cmpq $1, %rcx + 0x0f, 0x8e, 0xa1, 0xfe, 0xff, 0xff, //0x00001d29 jle LBB0_393 + 0x4c, 0x8d, 0x79, 0xff, //0x00001d2f leaq $-1(%rcx), %r15 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00001d33 cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xf9, //0x00001d39 movq %r15, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001d3c je LBB0_412 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00001d42 jmp LBB0_395 + //0x00001d47 LBB0_414 + 0x45, 0x31, 0xff, //0x00001d47 xorl %r15d, %r15d + 0xe9, 0x8d, 0xfe, 0xff, 0xff, //0x00001d4a jmp LBB0_395 + //0x00001d4f LBB0_415 + 0x81, 0xfe, 0x00, 0x04, 0x00, 0x00, //0x00001d4f cmpl $1024, %esi + 0x0f, 0x8e, 0x28, 0x00, 0x00, 0x00, //0x00001d55 jle LBB0_417 + 0x31, 0xf6, //0x00001d5b xorl %esi, %esi + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001d5d movabsq $9218868437227405312, %r8 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001d67 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d71 movabsq $4503599627370495, %r10 + 0x8a, 0x55, 0xd7, //0x00001d7b movb $-41(%rbp), %dl + 0xe9, 0xb7, 0x05, 0x00, 0x00, //0x00001d7e jmp LBB0_506 + //0x00001d83 LBB0_417 + 0xff, 0xce, //0x00001d83 decl %esi + 0x41, 0x89, 0xf0, //0x00001d85 movl %esi, %r8d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d88 movabsq $4503599627370495, %r10 + //0x00001d92 LBB0_418 + 0x85, 0xff, //0x00001d92 testl %edi, %edi + 0x0f, 0x84, 0xc2, 0x01, 0x00, 0x00, //0x00001d94 je LBB0_443 + 0x4c, 0x89, 0x45, 0xc8, //0x00001d9a movq %r8, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00001d9e movq %r11, %r8 + 0x45, 0x89, 0xfa, //0x00001da1 movl %r15d, %r10d + 0xe9, 0xfa, 0x01, 0x00, 0x00, //0x00001da4 jmp LBB0_448 + //0x00001da9 LBB0_420 + 0x31, 0xc0, //0x00001da9 xorl %eax, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001dab movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001db5 movabsq $4503599627370495, %r10 + 0xe9, 0xcf, 0x03, 0x00, 0x00, //0x00001dbf jmp LBB0_475 + //0x00001dc4 LBB0_421 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001dc4 movabsq $4503599627370495, %r10 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00001dce jmp LBB0_423 + //0x00001dd3 LBB0_422 + 0x44, 0x89, 0xff, //0x00001dd3 movl %r15d, %edi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001dd6 movabsq $4503599627370495, %r10 + 0x4d, 0x89, 0xc3, //0x00001de0 movq %r8, %r11 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001de3 movl $-1022, %r8d + 0x85, 0xc9, //0x00001de9 testl %ecx, %ecx + 0x0f, 0x84, 0xa1, 0xff, 0xff, 0xff, //0x00001deb je LBB0_418 + //0x00001df1 LBB0_423 + 0xf7, 0xd9, //0x00001df1 negl %ecx + 0x48, 0x63, 0xf7, //0x00001df3 movslq %edi, %rsi + 0x31, 0xd2, //0x00001df6 xorl %edx, %edx + 0x31, 0xc0, //0x00001df8 xorl %eax, %eax + //0x00001dfa LBB0_424 + 0x48, 0x39, 0xf2, //0x00001dfa cmpq %rsi, %rdx + 0x0f, 0x8d, 0x25, 0x00, 0x00, 0x00, //0x00001dfd jge LBB0_440 + 0x48, 0x8d, 0x04, 0x80, //0x00001e03 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x00001e07 movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x44, 0x43, 0xd0, //0x00001e0c leaq $-48(%rbx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00001e11 incq %rdx + 0x48, 0x89, 0xc3, //0x00001e14 movq %rax, %rbx + 0x48, 0xd3, 0xeb, //0x00001e17 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001e1a testq %rbx, %rbx + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00001e1d je LBB0_424 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00001e23 jmp LBB0_426 + //0x00001e28 LBB0_440 + 0x48, 0x85, 0xc0, //0x00001e28 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x00001e2b je LBB0_443 + 0x48, 0x89, 0xc6, //0x00001e31 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00001e34 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001e37 testq %rsi, %rsi + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00001e3a jne LBB0_426 + //0x00001e40 LBB0_442 + 0x48, 0x01, 0xc0, //0x00001e40 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001e43 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00001e47 incl %edx + 0x48, 0x89, 0xc6, //0x00001e49 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00001e4c shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001e4f testq %rsi, %rsi + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00001e52 je LBB0_442 + //0x00001e58 LBB0_426 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001e58 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x00001e5f shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001e62 notq %rsi + 0x45, 0x31, 0xd2, //0x00001e65 xorl %r10d, %r10d + 0x39, 0xfa, //0x00001e68 cmpl %edi, %edx + 0x0f, 0x8d, 0x3d, 0x00, 0x00, 0x00, //0x00001e6a jge LBB0_429 + 0x4c, 0x63, 0xca, //0x00001e70 movslq %edx, %r9 + 0x4d, 0x63, 0xc7, //0x00001e73 movslq %r15d, %r8 + 0x4b, 0x8d, 0x1c, 0x0c, //0x00001e76 leaq (%r12,%r9), %rbx + 0x45, 0x31, 0xd2, //0x00001e7a xorl %r10d, %r10d + //0x00001e7d LBB0_428 + 0x48, 0x89, 0xc7, //0x00001e7d movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00001e80 shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001e83 andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00001e86 addb $48, %dil + 0x43, 0x88, 0x3c, 0x14, //0x00001e8a movb %dil, (%r12,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00001e8e leaq (%rax,%rax,4), %rax + 0x4a, 0x0f, 0xbe, 0x3c, 0x13, //0x00001e92 movsbq (%rbx,%r10), %rdi + 0x48, 0x8d, 0x44, 0x47, 0xd0, //0x00001e97 leaq $-48(%rdi,%rax,2), %rax + 0x4b, 0x8d, 0x7c, 0x11, 0x01, //0x00001e9c leaq $1(%r9,%r10), %rdi + 0x49, 0xff, 0xc2, //0x00001ea1 incq %r10 + 0x4c, 0x39, 0xc7, //0x00001ea4 cmpq %r8, %rdi + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001ea7 jl LBB0_428 + //0x00001ead LBB0_429 + 0x41, 0x29, 0xd3, //0x00001ead subl %edx, %r11d + 0x48, 0x85, 0xc0, //0x00001eb0 testq %rax, %rax + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x00001eb3 je LBB0_434 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001eb9 movl $1, %edx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001ebe jmp LBB0_432 + //0x00001ec3 LBB0_431 + 0x48, 0x85, 0xff, //0x00001ec3 testq %rdi, %rdi + 0x44, 0x0f, 0x45, 0xf2, //0x00001ec6 cmovnel %edx, %r14d + 0x48, 0x01, 0xc0, //0x00001eca addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001ecd leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00001ed1 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00001ed4 je LBB0_434 + //0x00001eda LBB0_432 + 0x48, 0x89, 0xc7, //0x00001eda movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00001edd shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001ee0 andq %rsi, %rax + 0x49, 0x63, 0xda, //0x00001ee3 movslq %r10d, %rbx + 0x49, 0x39, 0xdd, //0x00001ee6 cmpq %rbx, %r13 + 0x0f, 0x86, 0xd4, 0xff, 0xff, 0xff, //0x00001ee9 jbe LBB0_431 + 0x40, 0x80, 0xc7, 0x30, //0x00001eef addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00001ef3 movb %dil, (%r12,%rbx) + 0xff, 0xc3, //0x00001ef7 incl %ebx + 0x41, 0x89, 0xda, //0x00001ef9 movl %ebx, %r10d + 0x48, 0x01, 0xc0, //0x00001efc addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001eff leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00001f03 testq %rax, %rax + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00001f06 jne LBB0_432 + //0x00001f0c LBB0_434 + 0x41, 0xff, 0xc3, //0x00001f0c incl %r11d + 0x45, 0x85, 0xd2, //0x00001f0f testl %r10d, %r10d + 0x0f, 0x8e, 0x6d, 0x00, 0x00, 0x00, //0x00001f12 jle LBB0_446 + 0x44, 0x89, 0xd0, //0x00001f18 movl %r10d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001f1b cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x00001f21 jne LBB0_447 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001f27 movabsq $4503599627370495, %r10 + //0x00001f31 LBB0_437 + 0x48, 0x83, 0xf8, 0x01, //0x00001f31 cmpq $1, %rax + 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00001f35 jle LBB0_445 + 0x4c, 0x8d, 0x78, 0xff, //0x00001f3b leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001f3f cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001f45 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001f48 je LBB0_437 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001f4e movl $-1022, %r8d + 0x44, 0x89, 0xff, //0x00001f54 movl %r15d, %edi + 0xe9, 0x36, 0xfe, 0xff, 0xff, //0x00001f57 jmp LBB0_418 + //0x00001f5c LBB0_443 + 0x31, 0xc0, //0x00001f5c xorl %eax, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001f5e movabsq $-9223372036854775808, %rdi + 0xe9, 0x26, 0x02, 0x00, 0x00, //0x00001f68 jmp LBB0_475 + //0x00001f6d LBB0_444 + 0x01, 0xc7, //0x00001f6d addl %eax, %edi + 0x45, 0x31, 0xdb, //0x00001f6f xorl %r11d, %r11d + 0x45, 0x31, 0xff, //0x00001f72 xorl %r15d, %r15d + 0x89, 0xf8, //0x00001f75 movl %edi, %eax + 0x31, 0xff, //0x00001f77 xorl %edi, %edi + 0x89, 0xc6, //0x00001f79 movl %eax, %esi + 0xe9, 0x1f, 0xf4, 0xff, 0xff, //0x00001f7b jmp LBB0_271 + //0x00001f80 LBB0_445 + 0xff, 0xc8, //0x00001f80 decl %eax + 0x41, 0x89, 0xc2, //0x00001f82 movl %eax, %r10d + //0x00001f85 LBB0_446 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001f85 movl $-1022, %r8d + 0x45, 0x85, 0xd2, //0x00001f8b testl %r10d, %r10d + 0x0f, 0x84, 0x1d, 0x03, 0x00, 0x00, //0x00001f8e je LBB0_499 + //0x00001f94 LBB0_447 + 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001f94 movl $-1022, %eax + 0x48, 0x89, 0x45, 0xc8, //0x00001f99 movq %rax, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00001f9d movq %r11, %r8 + 0x44, 0x89, 0xd7, //0x00001fa0 movl %r10d, %edi + //0x00001fa3 LBB0_448 + 0x4c, 0x63, 0xdf, //0x00001fa3 movslq %edi, %r11 + 0xb1, 0x31, //0x00001fa6 movb $49, %cl + 0x31, 0xc0, //0x00001fa8 xorl %eax, %eax + 0x41, 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001faa movl $16, %r9d + //0x00001fb0 LBB0_449 + 0x48, 0x83, 0xf8, 0x26, //0x00001fb0 cmpq $38, %rax + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001fb4 je LBB0_454 + 0x41, 0x38, 0x0c, 0x04, //0x00001fba cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00001fbe jne LBB0_463 + 0x48, 0x8d, 0x0d, 0x45, 0x30, 0x00, 0x00, //0x00001fc4 leaq $12357(%rip), %rcx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0xb6, 0x8c, 0x08, 0x8d, 0x15, 0x00, 0x00, //0x00001fcb movzbl $5517(%rax,%rcx), %ecx + 0x48, 0xff, 0xc0, //0x00001fd3 incq %rax + 0x49, 0x39, 0xc3, //0x00001fd6 cmpq %rax, %r11 + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00001fd9 jne LBB0_449 + 0x84, 0xc9, //0x00001fdf testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001fe1 je LBB0_454 + //0x00001fe7 LBB0_453 + 0x41, 0xb9, 0x0f, 0x00, 0x00, 0x00, //0x00001fe7 movl $15, %r9d + //0x00001fed LBB0_454 + 0x85, 0xff, //0x00001fed testl %edi, %edi + 0x0f, 0x8e, 0x9a, 0x00, 0x00, 0x00, //0x00001fef jle LBB0_462 + 0x44, 0x01, 0xcf, //0x00001ff5 addl %r9d, %edi + 0x48, 0x63, 0xf7, //0x00001ff8 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x00001ffb decq %rsi + 0x49, 0xff, 0xc3, //0x00001ffe incq %r11 + 0x31, 0xc9, //0x00002001 xorl %ecx, %ecx + 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00002003 movabsq $-432345564227567616, %r15 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000200d jmp LBB0_458 + //0x00002012 LBB0_456 + 0x48, 0x85, 0xc0, //0x00002012 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002015 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x0000201a cmovnel %eax, %r14d + //0x0000201e LBB0_457 + 0xff, 0xcf, //0x0000201e decl %edi + 0x48, 0xff, 0xce, //0x00002020 decq %rsi + 0x49, 0xff, 0xcb, //0x00002023 decq %r11 + 0x49, 0x83, 0xfb, 0x01, //0x00002026 cmpq $1, %r11 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x0000202a jle LBB0_460 + //0x00002030 LBB0_458 + 0x4b, 0x0f, 0xbe, 0x5c, 0x1c, 0xfe, //0x00002030 movsbq $-2(%r12,%r11), %rbx + 0x48, 0xc1, 0xe3, 0x35, //0x00002036 shlq $53, %rbx + 0x48, 0x01, 0xcb, //0x0000203a addq %rcx, %rbx + 0x4c, 0x01, 0xfb, //0x0000203d addq %r15, %rbx + 0x48, 0x89, 0xd8, //0x00002040 movq %rbx, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002043 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x0000204d mulq %rcx + 0x48, 0x89, 0xd1, //0x00002050 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00002053 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00002057 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000205b leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x0000205f movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002062 subq %rdx, %rax + 0x4c, 0x39, 0xee, //0x00002065 cmpq %r13, %rsi + 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x00002068 jae LBB0_456 + 0x04, 0x30, //0x0000206e addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002070 movb %al, (%r12,%rsi) + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00002074 jmp LBB0_457 + //0x00002079 LBB0_460 + 0x48, 0x83, 0xfb, 0x0a, //0x00002079 cmpq $10, %rbx + 0x4d, 0x89, 0xc3, //0x0000207d movq %r8, %r11 + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00002080 jae LBB0_464 + 0x4c, 0x8b, 0x45, 0xc8, //0x00002086 movq $-56(%rbp), %r8 + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x0000208a jmp LBB0_468 + //0x0000208f LBB0_462 + 0x4d, 0x89, 0xc3, //0x0000208f movq %r8, %r11 + 0x4c, 0x8b, 0x45, 0xc8, //0x00002092 movq $-56(%rbp), %r8 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002096 jmp LBB0_468 + //0x0000209b LBB0_463 + 0x0f, 0x8c, 0x46, 0xff, 0xff, 0xff, //0x0000209b jl LBB0_453 + 0xe9, 0x47, 0xff, 0xff, 0xff, //0x000020a1 jmp LBB0_454 + //0x000020a6 LBB0_464 + 0x48, 0x63, 0xf7, //0x000020a6 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x000020a9 decq %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000020ac movl $1, %edi + 0x4c, 0x8b, 0x45, 0xc8, //0x000020b1 movq $-56(%rbp), %r8 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000020b5 jmp LBB0_466 + //0x000020ba LBB0_465 + 0x48, 0x85, 0xc0, //0x000020ba testq %rax, %rax + 0x44, 0x0f, 0x45, 0xf7, //0x000020bd cmovnel %edi, %r14d + 0x48, 0xff, 0xce, //0x000020c1 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000020c4 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000020c8 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000020cb jbe LBB0_468 + //0x000020d1 LBB0_466 + 0x48, 0x89, 0xc8, //0x000020d1 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000020d4 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000020de mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000020e1 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000020e5 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x000020e9 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x000020ed movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x000020f0 subq %rbx, %rax + 0x4c, 0x39, 0xee, //0x000020f3 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x000020f6 jae LBB0_465 + 0x04, 0x30, //0x000020fc addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x000020fe movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00002102 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002105 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002109 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x0000210c ja LBB0_466 + //0x00002112 LBB0_468 + 0x45, 0x01, 0xca, //0x00002112 addl %r9d, %r10d + 0x49, 0x63, 0xc2, //0x00002115 movslq %r10d, %rax + 0x49, 0x39, 0xc5, //0x00002118 cmpq %rax, %r13 + 0x41, 0x0f, 0x46, 0xc5, //0x0000211b cmovbel %r13d, %eax + 0x45, 0x01, 0xcb, //0x0000211f addl %r9d, %r11d + 0x85, 0xc0, //0x00002122 testl %eax, %eax + 0x0f, 0x8e, 0x44, 0x00, 0x00, 0x00, //0x00002124 jle LBB0_472 + 0x89, 0xc1, //0x0000212a movl %eax, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x0000212c cmpb $48, $-1(%rcx,%r12) + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002132 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000213c movabsq $4503599627370495, %r10 + 0x0f, 0x85, 0x47, 0x00, 0x00, 0x00, //0x00002146 jne LBB0_475 + //0x0000214c LBB0_470 + 0x48, 0x83, 0xf9, 0x01, //0x0000214c cmpq $1, %rcx + 0x0f, 0x8e, 0x31, 0x00, 0x00, 0x00, //0x00002150 jle LBB0_473 + 0x48, 0x8d, 0x41, 0xff, //0x00002156 leaq $-1(%rcx), %rax + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x0000215a cmpb $48, $-2(%r12,%rcx) + 0x48, 0x89, 0xc1, //0x00002160 movq %rax, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002163 je LBB0_470 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002169 jmp LBB0_475 + //0x0000216e LBB0_472 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000216e movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002178 movabsq $4503599627370495, %r10 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00002182 jmp LBB0_474 + //0x00002187 LBB0_473 + 0xff, 0xc9, //0x00002187 decl %ecx + 0x89, 0xc8, //0x00002189 movl %ecx, %eax + //0x0000218b LBB0_474 + 0x85, 0xc0, //0x0000218b testl %eax, %eax + 0x0f, 0x84, 0x15, 0x01, 0x00, 0x00, //0x0000218d je LBB0_498 + //0x00002193 LBB0_475 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00002193 movq $-1, %rsi + 0x41, 0x83, 0xfb, 0x14, //0x0000219a cmpl $20, %r11d + 0x0f, 0x8e, 0x08, 0x00, 0x00, 0x00, //0x0000219e jle LBB0_477 + 0x8a, 0x55, 0xd7, //0x000021a4 movb $-41(%rbp), %dl + 0xe9, 0x6e, 0x01, 0x00, 0x00, //0x000021a7 jmp LBB0_505 + //0x000021ac LBB0_477 + 0x44, 0x89, 0xda, //0x000021ac movl %r11d, %edx + 0x45, 0x85, 0xdb, //0x000021af testl %r11d, %r11d + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x000021b2 jle LBB0_482 + 0x48, 0x63, 0xf0, //0x000021b8 movslq %eax, %rsi + 0x31, 0xff, //0x000021bb xorl %edi, %edi + 0x31, 0xc9, //0x000021bd xorl %ecx, %ecx + //0x000021bf LBB0_479 + 0x48, 0x39, 0xf7, //0x000021bf cmpq %rsi, %rdi + 0x0f, 0x8d, 0x1a, 0x00, 0x00, 0x00, //0x000021c2 jge LBB0_481 + 0x48, 0x8d, 0x0c, 0x89, //0x000021c8 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x3c, //0x000021cc movsbq (%r12,%rdi), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x000021d1 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x000021d6 incq %rdi + 0x48, 0x39, 0xfa, //0x000021d9 cmpq %rdi, %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000021dc jne LBB0_479 + //0x000021e2 LBB0_481 + 0x45, 0x31, 0xc9, //0x000021e2 xorl %r9d, %r9d + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000021e5 jmp LBB0_483 + //0x000021ea LBB0_482 + 0x31, 0xff, //0x000021ea xorl %edi, %edi + 0x41, 0xb1, 0x01, //0x000021ec movb $1, %r9b + 0x31, 0xc9, //0x000021ef xorl %ecx, %ecx + //0x000021f1 LBB0_483 + 0x44, 0x89, 0xde, //0x000021f1 movl %r11d, %esi + 0x29, 0xfe, //0x000021f4 subl %edi, %esi + 0x0f, 0x8e, 0x52, 0x00, 0x00, 0x00, //0x000021f6 jle LBB0_491 + 0x41, 0x89, 0xfa, //0x000021fc movl %edi, %r10d + 0x41, 0xf7, 0xd2, //0x000021ff notl %r10d + 0x45, 0x01, 0xda, //0x00002202 addl %r11d, %r10d + 0x83, 0xe6, 0x07, //0x00002205 andl $7, %esi + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002208 je LBB0_488 + 0xf7, 0xde, //0x0000220e negl %esi + 0x31, 0xdb, //0x00002210 xorl %ebx, %ebx + //0x00002212 LBB0_486 + 0x48, 0x01, 0xc9, //0x00002212 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002215 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xcb, //0x00002219 decl %ebx + 0x39, 0xde, //0x0000221b cmpl %ebx, %esi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000221d jne LBB0_486 + 0x29, 0xdf, //0x00002223 subl %ebx, %edi + //0x00002225 LBB0_488 + 0x41, 0x83, 0xfa, 0x07, //0x00002225 cmpl $7, %r10d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002229 movabsq $4503599627370495, %r10 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00002233 jb LBB0_491 + 0x44, 0x89, 0xde, //0x00002239 movl %r11d, %esi + 0x29, 0xfe, //0x0000223c subl %edi, %esi + //0x0000223e LBB0_490 + 0x48, 0x69, 0xc9, 0x00, 0xe1, 0xf5, 0x05, //0x0000223e imulq $100000000, %rcx, %rcx + 0x83, 0xc6, 0xf8, //0x00002245 addl $-8, %esi + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002248 jne LBB0_490 + //0x0000224e LBB0_491 + 0x31, 0xff, //0x0000224e xorl %edi, %edi + 0x45, 0x85, 0xdb, //0x00002250 testl %r11d, %r11d + 0x0f, 0x88, 0x66, 0x00, 0x00, 0x00, //0x00002253 js LBB0_500 + 0x44, 0x39, 0xd8, //0x00002259 cmpl %r11d, %eax + 0x0f, 0x8e, 0x5d, 0x00, 0x00, 0x00, //0x0000225c jle LBB0_500 + 0x41, 0x8a, 0x14, 0x14, //0x00002262 movb (%r12,%rdx), %dl + 0x41, 0x8d, 0x73, 0x01, //0x00002266 leal $1(%r11), %esi + 0x39, 0xc6, //0x0000226a cmpl %eax, %esi + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x0000226c jne LBB0_497 + 0x80, 0xfa, 0x35, //0x00002272 cmpb $53, %dl + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002275 jne LBB0_497 + 0x45, 0x85, 0xf6, //0x0000227b testl %r14d, %r14d + 0x40, 0x0f, 0x95, 0xc7, //0x0000227e setne %dil + 0x41, 0x08, 0xf9, //0x00002282 orb %dil, %r9b + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00002285 jne LBB0_500 + 0x49, 0x63, 0xc3, //0x0000228b movslq %r11d, %rax + 0x42, 0x8a, 0x7c, 0x20, 0xff, //0x0000228e movb $-1(%rax,%r12), %dil + 0x40, 0x80, 0xe7, 0x01, //0x00002293 andb $1, %dil + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00002297 jmp LBB0_500 + //0x0000229c LBB0_497 + 0x80, 0xfa, 0x34, //0x0000229c cmpb $52, %dl + 0x40, 0x0f, 0x9f, 0xc7, //0x0000229f setg %dil + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000022a3 jmp LBB0_500 + //0x000022a8 LBB0_498 + 0x31, 0xc9, //0x000022a8 xorl %ecx, %ecx + 0x31, 0xff, //0x000022aa xorl %edi, %edi + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000022ac jmp LBB0_500 + //0x000022b1 LBB0_499 + 0x31, 0xc9, //0x000022b1 xorl %ecx, %ecx + 0x31, 0xff, //0x000022b3 xorl %edi, %edi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000022b5 movabsq $4503599627370495, %r10 + //0x000022bf LBB0_500 + 0x8a, 0x55, 0xd7, //0x000022bf movb $-41(%rbp), %dl + 0x40, 0x0f, 0xb6, 0xf7, //0x000022c2 movzbl %dil, %esi + 0x48, 0x01, 0xce, //0x000022c6 addq %rcx, %rsi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x000022c9 movabsq $9007199254740992, %rax + 0x48, 0x39, 0xc6, //0x000022d3 cmpq %rax, %rsi + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000022d6 jne LBB0_503 + 0x41, 0x81, 0xf8, 0xfe, 0x03, 0x00, 0x00, //0x000022dc cmpl $1022, %r8d + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000022e3 movabsq $-9223372036854775808, %rdi + 0x0f, 0x8e, 0x20, 0x00, 0x00, 0x00, //0x000022ed jle LBB0_504 + 0x31, 0xf6, //0x000022f3 xorl %esi, %esi + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000022f5 movabsq $9218868437227405312, %r8 + 0xe9, 0x36, 0x00, 0x00, 0x00, //0x000022ff jmp LBB0_506 + //0x00002304 LBB0_503 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002304 movabsq $-9223372036854775808, %rdi + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000230e jmp LBB0_505 + //0x00002313 LBB0_504 + 0x41, 0xff, 0xc0, //0x00002313 incl %r8d + 0x49, 0x8d, 0x72, 0x01, //0x00002316 leaq $1(%r10), %rsi + //0x0000231a LBB0_505 + 0x49, 0x8d, 0x42, 0x01, //0x0000231a leaq $1(%r10), %rax + 0x48, 0x21, 0xf0, //0x0000231e andq %rsi, %rax + 0x41, 0x81, 0xc0, 0xff, 0x03, 0x00, 0x00, //0x00002321 addl $1023, %r8d + 0x41, 0x81, 0xe0, 0xff, 0x07, 0x00, 0x00, //0x00002328 andl $2047, %r8d + 0x49, 0xc1, 0xe0, 0x34, //0x0000232f shlq $52, %r8 + 0x48, 0x85, 0xc0, //0x00002333 testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xc0, //0x00002336 cmoveq %rax, %r8 + //0x0000233a LBB0_506 + 0x4c, 0x21, 0xd6, //0x0000233a andq %r10, %rsi + 0x4c, 0x09, 0xc6, //0x0000233d orq %r8, %rsi + 0x48, 0x89, 0xf3, //0x00002340 movq %rsi, %rbx + 0x48, 0x09, 0xfb, //0x00002343 orq %rdi, %rbx + 0x80, 0xfa, 0x2d, //0x00002346 cmpb $45, %dl + 0x48, 0x0f, 0x45, 0xde, //0x00002349 cmovneq %rsi, %rbx + //0x0000234d LBB0_507 + 0x48, 0xff, 0xcf, //0x0000234d decq %rdi + 0x48, 0x21, 0xdf, //0x00002350 andq %rbx, %rdi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002353 movabsq $9218868437227405312, %rax + 0x48, 0x39, 0xc7, //0x0000235d cmpq %rax, %rdi + 0x48, 0x8b, 0x45, 0x98, //0x00002360 movq $-104(%rbp), %rax + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00002364 jne LBB0_509 + 0x48, 0xc7, 0x00, 0xf8, 0xff, 0xff, 0xff, //0x0000236a movq $-8, (%rax) + //0x00002371 LBB0_509 + 0x48, 0x89, 0x58, 0x08, //0x00002371 movq %rbx, $8(%rax) + 0x48, 0x8b, 0x45, 0xa0, //0x00002375 movq $-96(%rbp), %rax + 0x48, 0x8b, 0x4d, 0xa8, //0x00002379 movq $-88(%rbp), %rcx + 0x48, 0x89, 0x08, //0x0000237d movq %rcx, (%rax) + 0xe9, 0x9a, 0xdf, 0xff, 0xff, //0x00002380 jmp LBB0_51 + 0x00, 0x00, 0x00, //0x00002385 .p2align 2, 0x00 + //0x00002388 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002388 .long 2 + 0x00, 0x00, 0x00, 0x00, //0x0000238c .p2align 4, 0x00 + //0x00002390 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00002390 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00002398 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000023a0 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000023a8 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000023b0 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000023b8 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000023c0 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000023c8 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000023d0 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000023d8 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000023e0 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000023e8 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x000023f0 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x000023f8 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00002400 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00002408 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00002410 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00002418 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00002420 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00002428 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00002430 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00002438 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00002440 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002448 .p2align 4, 0x00 + //0x00002450 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00002450 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00002458 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00002460 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00002468 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00002470 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00002478 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00002480 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00002488 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00002490 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00002498 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x000024a0 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x000024a8 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x000024b0 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x000024b8 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000024c0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000024c8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x000024d0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x000024d8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x000024e0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x000024e8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x000024f0 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x000024f8 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00002500 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00002508 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00002510 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00002518 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00002520 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00002528 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00002530 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00002538 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00002540 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00002548 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00002550 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00002558 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00002560 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00002568 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00002570 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00002578 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00002580 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00002588 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00002590 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00002598 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x000025a0 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x000025a8 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x000025b0 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x000025b8 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000025c0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000025c8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x000025d0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x000025d8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x000025e0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x000025e8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x000025f0 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x000025f8 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00002600 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00002608 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00002610 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00002618 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00002620 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00002628 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00002630 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00002638 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00002640 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00002648 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00002650 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00002658 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00002660 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00002668 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00002670 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00002678 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00002680 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00002688 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00002690 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00002698 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x000026a0 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x000026a8 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x000026b0 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x000026b8 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x000026c0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x000026c8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x000026d0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x000026d8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x000026e0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x000026e8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x000026f0 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x000026f8 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00002700 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00002708 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00002710 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00002718 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00002720 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00002728 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00002730 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00002738 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00002740 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00002748 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00002750 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00002758 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00002760 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00002768 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00002770 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00002778 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00002780 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00002788 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00002790 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00002798 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x000027a0 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x000027a8 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x000027b0 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x000027b8 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x000027c0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x000027c8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x000027d0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x000027d8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x000027e0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x000027e8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x000027f0 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x000027f8 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00002800 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00002808 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00002810 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00002818 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00002820 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00002828 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00002830 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00002838 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00002840 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00002848 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00002850 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00002858 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00002860 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00002868 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00002870 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00002878 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00002880 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00002888 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00002890 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00002898 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x000028a0 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x000028a8 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x000028b0 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x000028b8 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x000028c0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x000028c8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x000028d0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x000028d8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x000028e0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x000028e8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x000028f0 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x000028f8 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00002900 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00002908 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00002910 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00002918 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00002920 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00002928 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00002930 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00002938 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00002940 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00002948 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00002950 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00002958 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00002960 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00002968 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00002970 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00002978 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00002980 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00002988 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00002990 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00002998 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x000029a0 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x000029a8 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x000029b0 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x000029b8 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x000029c0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x000029c8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x000029d0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x000029d8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x000029e0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x000029e8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x000029f0 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x000029f8 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00002a00 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00002a08 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00002a10 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00002a18 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00002a20 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00002a28 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00002a30 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00002a38 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00002a40 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00002a48 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00002a50 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00002a58 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00002a60 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00002a68 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00002a70 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00002a78 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00002a80 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00002a88 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00002a90 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00002a98 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00002aa0 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00002aa8 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00002ab0 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00002ab8 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00002ac0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00002ac8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00002ad0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00002ad8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00002ae0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00002ae8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00002af0 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00002af8 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00002b00 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00002b08 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00002b10 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00002b18 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00002b20 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00002b28 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00002b30 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00002b38 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00002b40 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00002b48 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00002b50 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00002b58 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00002b60 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00002b68 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00002b70 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00002b78 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00002b80 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00002b88 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00002b90 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00002b98 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00002ba0 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00002ba8 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00002bb0 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00002bb8 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00002bc0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00002bc8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00002bd0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00002bd8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00002be0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00002be8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00002bf0 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00002bf8 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00002c00 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00002c08 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00002c10 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00002c18 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00002c20 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00002c28 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00002c30 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00002c38 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00002c40 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00002c48 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00002c50 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00002c58 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00002c60 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00002c68 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00002c70 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00002c78 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00002c80 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00002c88 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00002c90 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00002c98 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00002ca0 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00002ca8 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00002cb0 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00002cb8 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00002cc0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00002cc8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00002cd0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00002cd8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00002ce0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00002ce8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00002cf0 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00002cf8 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00002d00 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00002d08 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00002d10 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00002d18 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00002d20 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00002d28 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00002d30 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00002d38 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00002d40 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00002d48 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00002d50 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00002d58 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00002d60 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00002d68 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00002d70 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00002d78 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00002d80 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00002d88 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00002d90 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00002d98 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00002da0 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00002da8 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00002db0 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00002db8 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00002dc0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00002dc8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00002dd0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00002dd8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00002de0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00002de8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00002df0 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00002df8 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00002e00 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00002e08 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00002e10 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00002e18 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00002e20 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00002e28 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00002e30 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00002e38 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00002e40 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00002e48 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00002e50 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00002e58 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00002e60 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00002e68 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00002e70 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00002e78 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00002e80 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00002e88 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00002e90 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00002e98 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00002ea0 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00002ea8 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00002eb0 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00002eb8 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00002ec0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00002ec8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00002ed0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00002ed8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00002ee0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00002ee8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00002ef0 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00002ef8 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00002f00 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00002f08 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00002f10 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00002f18 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00002f20 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00002f28 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00002f30 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00002f38 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00002f40 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00002f48 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00002f50 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00002f58 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00002f60 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00002f68 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00002f70 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00002f78 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00002f80 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00002f88 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00002f90 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00002f98 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00002fa0 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00002fa8 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00002fb0 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00002fb8 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00002fc0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00002fc8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00002fd0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00002fd8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00002fe0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00002fe8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00002ff0 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00002ff8 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00003000 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00003008 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00003010 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00003018 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00003020 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00003028 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00003030 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00003038 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00003040 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00003048 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00003050 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00003058 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00003060 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00003068 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00003070 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00003078 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00003080 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00003088 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00003090 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00003098 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x000030a0 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x000030a8 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x000030b0 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x000030b8 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x000030c0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x000030c8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x000030d0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x000030d8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x000030e0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x000030e8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x000030f0 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x000030f8 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00003100 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00003108 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00003110 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00003118 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00003120 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00003128 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00003130 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00003138 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00003140 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00003148 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00003150 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00003158 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00003160 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00003168 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00003170 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00003178 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x00003180 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x00003188 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x00003190 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x00003198 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x000031a0 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x000031a8 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x000031b0 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x000031b8 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x000031c0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x000031c8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x000031d0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x000031d8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x000031e0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x000031e8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x000031f0 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x000031f8 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00003200 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00003208 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00003210 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00003218 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00003220 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00003228 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00003230 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00003238 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00003240 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00003248 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00003250 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00003258 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00003260 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00003268 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x00003270 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x00003278 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x00003280 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x00003288 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x00003290 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x00003298 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x000032a0 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x000032a8 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x000032b0 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x000032b8 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x000032c0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x000032c8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x000032d0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x000032d8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x000032e0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x000032e8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x000032f0 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x000032f8 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00003300 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00003308 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00003310 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00003318 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00003320 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00003328 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00003330 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00003338 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00003340 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00003348 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00003350 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00003358 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00003360 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00003368 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x00003370 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x00003378 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x00003380 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x00003388 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x00003390 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x00003398 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x000033a0 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x000033a8 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x000033b0 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x000033b8 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x000033c0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x000033c8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x000033d0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x000033d8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x000033e0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x000033e8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x000033f0 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x000033f8 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00003400 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00003408 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00003410 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00003418 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00003420 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00003428 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00003430 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00003438 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00003440 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00003448 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00003450 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00003458 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00003460 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00003468 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x00003470 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x00003478 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x00003480 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x00003488 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00003490 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00003498 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x000034a0 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x000034a8 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x000034b0 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x000034b8 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x000034c0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x000034c8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x000034d0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x000034d8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x000034e0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x000034e8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x000034f0 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x000034f8 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00003500 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00003508 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00003510 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00003518 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x00003520 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x00003528 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x00003530 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x00003538 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x00003540 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x00003548 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x00003550 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x00003558 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x00003560 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x00003568 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x00003570 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x00003578 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x00003580 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x00003588 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x00003590 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x00003598 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x000035a0 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x000035a8 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x000035b0 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x000035b8 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x000035c0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x000035c8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x000035d0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x000035d8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x000035e0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x000035e8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x000035f0 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x000035f8 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00003600 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00003608 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00003610 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00003618 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x00003620 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x00003628 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x00003630 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x00003638 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x00003640 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x00003648 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x00003650 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x00003658 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x00003660 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x00003668 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x00003670 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x00003678 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x00003680 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x00003688 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x00003690 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x00003698 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x000036a0 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x000036a8 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x000036b0 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x000036b8 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x000036c0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x000036c8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x000036d0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x000036d8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x000036e0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x000036e8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x000036f0 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x000036f8 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00003700 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00003708 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00003710 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00003718 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x00003720 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x00003728 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x00003730 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x00003738 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x00003740 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x00003748 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x00003750 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x00003758 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x00003760 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x00003768 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x00003770 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x00003778 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x00003780 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x00003788 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x00003790 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x00003798 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x000037a0 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x000037a8 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x000037b0 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x000037b8 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x000037c0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x000037c8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x000037d0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x000037d8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x000037e0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x000037e8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x000037f0 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x000037f8 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00003800 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00003808 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00003810 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00003818 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x00003820 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00003828 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x00003830 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00003838 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x00003840 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00003848 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x00003850 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00003858 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x00003860 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00003868 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x00003870 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00003878 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00003880 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00003888 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00003890 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00003898 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x000038a0 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000038a8 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x000038b0 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000038b8 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x000038c0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000038c8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x000038d0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000038d8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x000038e0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000038e8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x000038f0 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000038f8 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00003900 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00003908 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00003910 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00003918 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x00003920 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00003928 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x00003930 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00003938 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x00003940 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00003948 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x00003950 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00003958 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x00003960 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00003968 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x00003970 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00003978 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00003980 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00003988 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00003990 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00003998 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x000039a0 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x000039a8 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x000039b0 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x000039b8 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x000039c0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x000039c8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x000039d0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x000039d8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x000039e0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x000039e8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x000039f0 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x000039f8 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00003a00 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00003a18 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00003a28 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00003a38 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00003a48 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00003a58 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00003a68 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00003a78 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00003a88 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00003a98 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003aa0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00003aa8 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ab0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00003ab8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ac0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00003ac8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ad0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00003ad8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ae0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00003ae8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003af0 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00003af8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b00 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00003b08 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b10 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00003b18 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b20 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00003b28 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b30 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00003b38 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b40 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00003b48 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b50 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00003b58 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b60 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00003b68 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b70 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00003b78 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b80 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00003b88 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b90 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00003b98 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ba0 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00003ba8 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003bb0 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00003bb8 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003bc0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00003bc8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00003bd0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00003bd8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00003be0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00003be8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00003bf0 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00003bf8 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00003c00 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00003c08 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00003c10 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00003c18 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00003c20 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00003c28 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00003c30 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00003c38 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00003c40 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00003c48 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x00003c50 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00003c58 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x00003c60 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00003c68 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x00003c70 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00003c78 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00003c80 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00003c88 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00003c90 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00003c98 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00003ca0 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00003ca8 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00003cb0 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00003cb8 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00003cc0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00003cc8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00003cd0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00003cd8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00003ce0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00003ce8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00003cf0 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00003cf8 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00003d00 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00003d08 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00003d10 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00003d18 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00003d20 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00003d28 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00003d30 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00003d38 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00003d40 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00003d48 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x00003d50 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x00003d58 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x00003d60 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x00003d68 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x00003d70 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x00003d78 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00003d80 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00003d88 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00003d90 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00003d98 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00003da0 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00003da8 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00003db0 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00003db8 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00003dc0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00003dc8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00003dd0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00003dd8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00003de0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00003de8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00003df0 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00003df8 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00003e00 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00003e08 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00003e10 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00003e18 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00003e20 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00003e28 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x00003e30 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x00003e38 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x00003e40 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x00003e48 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x00003e50 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x00003e58 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x00003e60 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x00003e68 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x00003e70 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x00003e78 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x00003e80 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x00003e88 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x00003e90 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x00003e98 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x00003ea0 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x00003ea8 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x00003eb0 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x00003eb8 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x00003ec0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x00003ec8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00003ed0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00003ed8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00003ee0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00003ee8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00003ef0 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00003ef8 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00003f00 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00003f08 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00003f10 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00003f18 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00003f20 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00003f28 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00003f30 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00003f38 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00003f40 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00003f48 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00003f50 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00003f58 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00003f60 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00003f68 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x00003f70 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x00003f78 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x00003f80 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x00003f88 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x00003f90 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x00003f98 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x00003fa0 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x00003fa8 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x00003fb0 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x00003fb8 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x00003fc0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x00003fc8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00003fd0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00003fd8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00003fe0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00003fe8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00003ff0 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00003ff8 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00004000 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00004008 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00004010 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00004018 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00004020 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00004028 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00004030 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00004038 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00004040 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00004048 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00004050 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00004058 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00004060 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00004068 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x00004070 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x00004078 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x00004080 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x00004088 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x00004090 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x00004098 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x000040a0 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x000040a8 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x000040b0 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x000040b8 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x000040c0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x000040c8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x000040d0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x000040d8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x000040e0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x000040e8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x000040f0 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x000040f8 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00004100 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00004108 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00004110 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00004118 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00004120 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00004128 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00004130 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00004138 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00004140 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00004148 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00004150 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00004158 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00004160 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00004168 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x00004170 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x00004178 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x00004180 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x00004188 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x00004190 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x00004198 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x000041a0 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x000041a8 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x000041b0 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x000041b8 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x000041c0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x000041c8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x000041d0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x000041d8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x000041e0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x000041e8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x000041f0 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x000041f8 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00004200 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00004208 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00004210 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00004218 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00004220 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00004228 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00004230 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00004238 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00004240 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00004248 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00004250 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00004258 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00004260 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00004268 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x00004270 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x00004278 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x00004280 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x00004288 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x00004290 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x00004298 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x000042a0 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x000042a8 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x000042b0 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x000042b8 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x000042c0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x000042c8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x000042d0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x000042d8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x000042e0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x000042e8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x000042f0 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x000042f8 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00004300 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00004308 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00004310 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00004318 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00004320 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00004328 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00004330 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00004338 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00004340 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00004348 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00004350 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00004358 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00004360 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00004368 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x00004370 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x00004378 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x00004380 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x00004388 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x00004390 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x00004398 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x000043a0 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x000043a8 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x000043b0 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x000043b8 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x000043c0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x000043c8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x000043d0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x000043d8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x000043e0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x000043e8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x000043f0 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x000043f8 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00004400 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00004408 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00004410 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00004418 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00004420 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00004428 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00004430 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00004438 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00004440 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00004448 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00004450 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00004458 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00004460 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00004468 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x00004470 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x00004478 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x00004480 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x00004488 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00004490 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00004498 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x000044a0 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x000044a8 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x000044b0 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x000044b8 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x000044c0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x000044c8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x000044d0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x000044d8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x000044e0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x000044e8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x000044f0 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x000044f8 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00004500 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00004508 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00004510 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00004518 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x00004520 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x00004528 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x00004530 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x00004538 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x00004540 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x00004548 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x00004550 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x00004558 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x00004560 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x00004568 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x00004570 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x00004578 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x00004580 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x00004588 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x00004590 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x00004598 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x000045a0 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x000045a8 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x000045b0 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x000045b8 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x000045c0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x000045c8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x000045d0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x000045d8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x000045e0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x000045e8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x000045f0 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x000045f8 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00004600 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00004608 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00004610 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00004618 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x00004620 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x00004628 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x00004630 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x00004638 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x00004640 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x00004648 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x00004650 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x00004658 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x00004660 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x00004668 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x00004670 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x00004678 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x00004680 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x00004688 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x00004690 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x00004698 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x000046a0 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x000046a8 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x000046b0 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x000046b8 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x000046c0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x000046c8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x000046d0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x000046d8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x000046e0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x000046e8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x000046f0 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x000046f8 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00004700 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00004708 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00004710 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00004718 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x00004720 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x00004728 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x00004730 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x00004738 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x00004740 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x00004748 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x00004750 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x00004758 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x00004760 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x00004768 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x00004770 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x00004778 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x00004780 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x00004788 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x00004790 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x00004798 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x000047a0 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x000047a8 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x000047b0 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x000047b8 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x000047c0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x000047c8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x000047d0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x000047d8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x000047e0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x000047e8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x000047f0 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x000047f8 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00004800 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00004808 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00004810 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00004818 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x00004820 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x00004828 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x00004830 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x00004838 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x00004840 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x00004848 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x00004850 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x00004858 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x00004860 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x00004868 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x00004870 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x00004878 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00004880 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00004888 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00004890 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00004898 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x000048a0 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x000048a8 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x000048b0 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x000048b8 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x000048c0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x000048c8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x000048d0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x000048d8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x000048e0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x000048e8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x000048f0 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x000048f8 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00004900 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00004908 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00004910 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00004918 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x00004920 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x00004928 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x00004930 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x00004938 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x00004940 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x00004948 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x00004950 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x00004958 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x00004960 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x00004968 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x00004970 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x00004978 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00004980 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00004988 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00004990 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00004998 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x000049a0 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x000049a8 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x000049b0 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x000049b8 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x000049c0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x000049c8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x000049d0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x000049d8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x000049e0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x000049e8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x000049f0 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x000049f8 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00004a00 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00004a08 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00004a10 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00004a18 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x00004a20 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x00004a28 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x00004a30 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x00004a38 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x00004a40 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x00004a48 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x00004a50 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x00004a58 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x00004a60 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x00004a68 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x00004a70 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x00004a78 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00004a80 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00004a88 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00004a90 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00004a98 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00004aa0 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00004aa8 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00004ab0 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00004ab8 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00004ac0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00004ac8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00004ad0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00004ad8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00004ae0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00004ae8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00004af0 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00004af8 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00004b00 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00004b08 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00004b10 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00004b18 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00004b20 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00004b28 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00004b30 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00004b38 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00004b40 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00004b48 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x00004b50 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x00004b58 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x00004b60 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x00004b68 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x00004b70 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x00004b78 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00004b80 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00004b88 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00004b90 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00004b98 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00004ba0 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00004ba8 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00004bb0 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00004bb8 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00004bc0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00004bc8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00004bd0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00004bd8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00004be0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00004be8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00004bf0 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00004bf8 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00004c00 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00004c08 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00004c10 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00004c18 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00004c20 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00004c28 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00004c30 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00004c38 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00004c40 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00004c48 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x00004c50 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x00004c58 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x00004c60 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x00004c68 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x00004c70 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x00004c78 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00004c80 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00004c88 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00004c90 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00004c98 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00004ca0 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00004ca8 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00004cb0 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00004cb8 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00004cc0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00004cc8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00004cd0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00004cd8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00004ce0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00004ce8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00004cf0 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00004cf8 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00004d00 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00004d08 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00004d10 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00004d18 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00004d20 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00004d28 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00004d30 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00004d38 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00004d40 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00004d48 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x00004d50 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x00004d58 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x00004d60 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x00004d68 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x00004d70 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x00004d78 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00004d80 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00004d88 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00004d90 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00004d98 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00004da0 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00004da8 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00004db0 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00004db8 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00004dc0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00004dc8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00004dd0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00004dd8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00004de0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00004de8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00004df0 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00004df8 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00004e00 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00004e08 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00004e10 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00004e18 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00004e20 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00004e28 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x00004e30 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x00004e38 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x00004e40 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x00004e48 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x00004e50 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x00004e58 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x00004e60 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x00004e68 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x00004e70 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x00004e78 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x00004e80 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x00004e88 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x00004e90 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x00004e98 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x00004ea0 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x00004ea8 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x00004eb0 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x00004eb8 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x00004ec0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x00004ec8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x00004ed0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x00004ed8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x00004ee0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x00004ee8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x00004ef0 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x00004ef8 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x00004f00 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x00004f08 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x00004f10 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x00004f18 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x00004f20 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x00004f28 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x00004f30 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x00004f38 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x00004f40 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x00004f48 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x00004f50 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x00004f58 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x00004f60 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x00004f68 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x00004f70 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x00004f78 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x00004f80 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x00004f88 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x00004f90 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x00004f98 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x00004fa0 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x00004fa8 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x00004fb0 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x00004fb8 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x00004fc0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x00004fc8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00004fe0 .p2align 4, 0x00 + //0x00004fe0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x00004fe0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x00004fe4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x00004fe8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x00004fec .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x00004ff0 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x00004ff4 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x00004ff8 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x00004ffc .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x00005000 .long 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005004 .p2align 4, 0x00 + //0x00005010 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005070 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00005078 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000507c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000508c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000509c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000050dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000050e0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050e4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005144 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00005148 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000514c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000515c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000516c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000517c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000518c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000519c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000051ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000051b0 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051b4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005214 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00005218 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000521c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000522c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000523c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000524c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000525c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000526c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000527c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00005280 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005284 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000052e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000052e8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052ec QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000530c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000531c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000532c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000533c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000534c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00005350 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005354 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000053b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000053b8 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053bc QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000540c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000541c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005420 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005424 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005484 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005488 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000548c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000549c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000054ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000054f0 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054f4 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005554 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005558 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000555c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000556c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000557c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000558c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000559c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000055bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000055c0 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055c4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005624 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005628 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000562c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000563c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000564c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000565c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000566c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000567c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000568c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005690 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00005694 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000056f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000056f8 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000056fc QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000570c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000571c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000572c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000573c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000574c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000575c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00005760 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00005764 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000057c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000057c8 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x000057cc QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000580c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000581c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000582c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005830 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00005834 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005894 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005898 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0000589c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000058fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005900 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00005904 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005964 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005968 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0000596c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000597c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000598c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000599c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000059cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000059d0 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x000059d4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059e4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005a34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005a38 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x00005a3c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a4c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005a9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005aa0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00005aa4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ab4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005b04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005b08 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00005b0c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b1c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005b6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005b70 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00005b74 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b84 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005bd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005bd8 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00005bdc QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bec QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005c3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005c40 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00005c44 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c54 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005ca4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005ca8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00005cac QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cbc QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005d0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005d10 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00005d14 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d24 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005d74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005d78 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00005d7c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d8c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005ddc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00005de0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00005de4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005df4 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005e44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00005e48 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00005e4c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e5c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005eac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00005eb0 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00005eb4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ec4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ef4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005f14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00005f18 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00005f1c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f2c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005f7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00005f80 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00005f84 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f94 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005fe4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00005fe8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00005fec QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00005ffc QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000600c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000601c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000602c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000603c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000604c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006050 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00006054 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00006064 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000060b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000060b8 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x000060bc QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000060cc QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000610c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000611c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006120 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00006124 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00006134 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006184 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006188 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x0000618c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x0000619c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000061ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000061f0 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x000061f4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00006204 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006244 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006254 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00006258 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0000625c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0000626c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000627c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000628c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000629c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000062bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000062c0 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x000062c4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x000062d4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062e4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006314 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006324 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006328 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0000632c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0000633c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000634c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000635c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000636c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000637c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000638c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006390 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00006394 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x000063a4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063b4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000063f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000063f8 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x000063fc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x0000640c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000641c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000642c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000643c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000644c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000645c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006460 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00006464 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00006474 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006484 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000064c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000064c8 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x000064cc QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x000064dc QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064ec QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000650c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000651c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000652c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006530 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00006534 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00006544 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006554 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006584 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006594 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006598 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0000659c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x000065ac QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065bc QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000065fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00006600 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00006604 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00006614 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006624 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006654 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006664 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00006668 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0000666c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0000667c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000668c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000669c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000066cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000066d0 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x000066d4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000066e4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066f4 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006734 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00006738 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0000673c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0000674c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000675c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000676c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000677c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000678c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000679c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000067a0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x000067a4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x000067b4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067c4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006804 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00006808 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x0000680c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x0000681c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000682c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000683c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000684c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000685c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000686c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00006870 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00006874 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00006884 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006894 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000068d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned.go new file mode 100644 index 000000000..c42f4b071 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vsigned uintptr + +//go:nosplit +func vsigned(s *string, p *int, v *types.JsonState) { + F_vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_subr.go new file mode 100644 index 000000000..0cb1239d8 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_subr.go @@ -0,0 +1,50 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vsigned = 0 +) + +const ( + _stack__vsigned = 16 +) + +const ( + _size__vsigned = 320 +) + +var ( + _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}, + } +) + +var _cfunc_vsigned = []loader.CFunc{ + {"_vsigned_entry", 0, _entry__vsigned, 0, nil}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_text_amd64.go new file mode 100644 index 000000000..632bd6ef5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vsigned_text_amd64.go @@ -0,0 +1,112 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_vsigned = []byte{ + // .p2align 4, 0x90 + // _vsigned + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x53, //0x00000004 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00000005 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00000008 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000000b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000000f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00000016 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000001a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000001f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00000022 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x00000026 cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00000029 jae LBB0_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000002f movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000033 movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00000039 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000003c jne LBB0_5 + 0x48, 0xff, 0xc3, //0x00000042 incq %rbx + 0x4c, 0x39, 0xd3, //0x00000045 cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00000048 jae LBB0_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000004e movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000052 movq $-1, %r9 + //0x00000059 LBB0_5 + 0x8d, 0x79, 0xd0, //0x00000059 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000005c cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00000060 jb LBB0_7 + 0x48, 0x89, 0x1e, //0x00000066 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00000069 movq $-2, (%rdx) + 0x5b, //0x00000070 popq %rbx + 0x5d, //0x00000071 popq %rbp + 0xc3, //0x00000072 retq + //0x00000073 LBB0_1 + 0x4c, 0x89, 0x16, //0x00000073 movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00000076 movq $-1, (%rdx) + 0x5b, //0x0000007d popq %rbx + 0x5d, //0x0000007e popq %rbp + 0xc3, //0x0000007f retq + //0x00000080 LBB0_7 + 0x80, 0xf9, 0x30, //0x00000080 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00000083 jne LBB0_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00000089 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x0000008d cmpq %r10, %rbx + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00000090 jae LBB0_17 + 0x41, 0x8a, 0x0c, 0x38, //0x00000096 movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x0000009a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000009d cmpb $55, %cl + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000000a0 ja LBB0_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x000000a6 movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000aa movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x000000b4 btq %r11, %rcx + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000000b8 jae LBB0_17 + //0x000000be LBB0_8 + 0x31, 0xff, //0x000000be xorl %edi, %edi + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 LBB0_9 + 0x4c, 0x39, 0xd3, //0x000000c0 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x000000c3 jae LBB0_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x000000c9 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x000000ce leal $-48(%rcx), %eax + 0x3c, 0x09, //0x000000d1 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x000000d3 ja LBB0_18 + 0x48, 0x6b, 0xff, 0x0a, //0x000000d9 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x000000dd jo LBB0_13 + 0x48, 0xff, 0xc3, //0x000000e3 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x000000e6 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x000000ea imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x000000ee addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x000000f1 jno LBB0_9 + //0x000000f7 LBB0_13 + 0x48, 0xff, 0xcb, //0x000000f7 decq %rbx + 0x48, 0x89, 0x1e, //0x000000fa movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x000000fd movq $-5, (%rdx) + 0x5b, //0x00000104 popq %rbx + 0x5d, //0x00000105 popq %rbp + 0xc3, //0x00000106 retq + //0x00000107 LBB0_17 + 0x48, 0x89, 0x3e, //0x00000107 movq %rdi, (%rsi) + 0x5b, //0x0000010a popq %rbx + 0x5d, //0x0000010b popq %rbp + 0xc3, //0x0000010c retq + //0x0000010d LBB0_18 + 0x80, 0xf9, 0x65, //0x0000010d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000110 je LBB0_21 + 0x80, 0xf9, 0x45, //0x00000116 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00000119 je LBB0_21 + 0x80, 0xf9, 0x2e, //0x0000011f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00000122 jne LBB0_22 + //0x00000128 LBB0_21 + 0x48, 0x89, 0x1e, //0x00000128 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000012b movq $-6, (%rdx) + 0x5b, //0x00000132 popq %rbx + 0x5d, //0x00000133 popq %rbp + 0xc3, //0x00000134 retq + //0x00000135 LBB0_22 + 0x48, 0x89, 0x1e, //0x00000135 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x00000138 movq %rdi, $16(%rdx) + 0x5b, //0x0000013c popq %rbx + 0x5d, //0x0000013d popq %rbp + 0xc3, //0x0000013e retq + 0x00, //0x0000013f .p2align 2, 0x00 + //0x00000140 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000140 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vstring.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vstring.go new file mode 100644 index 000000000..07b84c0d5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vstring.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + +var S_vstring uintptr + +//go:nosplit +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + F_vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vstring_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vstring_subr.go new file mode 100644 index 000000000..e86d2ce55 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vstring_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vstring = 48 +) + +const ( + _stack__vstring = 88 +) + +const ( + _size__vstring = 2328 +) + +var ( + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2171, 88}, + {2175, 48}, + {2176, 40}, + {2178, 32}, + {2180, 24}, + {2182, 16}, + {2184, 8}, + {2185, 0}, + {2327, 88}, + } +) + +var _cfunc_vstring = []loader.CFunc{ + {"_vstring_entry", 0, _entry__vstring, 0, nil}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vstring_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vstring_text_amd64.go new file mode 100644 index 000000000..5b1f7dc1b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vstring_text_amd64.go @@ -0,0 +1,643 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_vstring = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 .p2align 4, 0x90 + //0x00000030 _vstring + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000003d subq $40, %rsp + 0x48, 0x89, 0xd3, //0x00000041 movq %rdx, %rbx + 0x4c, 0x8b, 0x16, //0x00000044 movq (%rsi), %r10 + 0xf6, 0xc1, 0x20, //0x00000047 testb $32, %cl + 0x48, 0x89, 0x55, 0xb8, //0x0000004a movq %rdx, $-72(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x0000004e movq %rsi, $-64(%rbp) + 0x0f, 0x85, 0xad, 0x01, 0x00, 0x00, //0x00000052 jne LBB0_12 + 0x48, 0x8b, 0x4f, 0x08, //0x00000058 movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000005c movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x0000005f subq %r10, %rax + 0x0f, 0x84, 0x68, 0x06, 0x00, 0x00, //0x00000062 je LBB0_55 + 0x48, 0x89, 0x4d, 0xc8, //0x00000068 movq %rcx, $-56(%rbp) + 0x48, 0x8b, 0x37, //0x0000006c movq (%rdi), %rsi + 0x4a, 0x8d, 0x0c, 0x16, //0x0000006f leaq (%rsi,%r10), %rcx + 0x48, 0x83, 0xf8, 0x40, //0x00000073 cmpq $64, %rax + 0x48, 0x89, 0x75, 0xd0, //0x00000077 movq %rsi, $-48(%rbp) + 0x0f, 0x82, 0x5b, 0x06, 0x00, 0x00, //0x0000007b jb LBB0_56 + 0x41, 0x89, 0xc5, //0x00000081 movl %eax, %r13d + 0x41, 0x83, 0xe5, 0x3f, //0x00000084 andl $63, %r13d + 0x48, 0x8d, 0x50, 0xc0, //0x00000088 leaq $-64(%rax), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x0000008c andq $-64, %rdx + 0x4c, 0x01, 0xd2, //0x00000090 addq %r10, %rdx + 0x48, 0x8d, 0x54, 0x16, 0x40, //0x00000093 leaq $64(%rsi,%rdx), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00000098 movq %rdx, $-80(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000009c movq $-1, %r11 + 0x45, 0x31, 0xc0, //0x000000a3 xorl %r8d, %r8d + 0xc5, 0xfa, 0x6f, 0x05, 0x52, 0xff, 0xff, 0xff, //0x000000a6 vmovdqu $-174(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x5a, 0xff, 0xff, 0xff, //0x000000ae vmovdqu $-166(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000b6 .p2align 4, 0x90 + //0x000000c0 LBB0_4 + 0xc5, 0xfa, 0x6f, 0x11, //0x000000c0 vmovdqu (%rcx), %xmm2 + 0xc5, 0xfa, 0x6f, 0x59, 0x10, //0x000000c4 vmovdqu $16(%rcx), %xmm3 + 0xc5, 0xfa, 0x6f, 0x61, 0x20, //0x000000c9 vmovdqu $32(%rcx), %xmm4 + 0xc5, 0xfa, 0x6f, 0x69, 0x30, //0x000000ce vmovdqu $48(%rcx), %xmm5 + 0xc5, 0xe9, 0x74, 0xf0, //0x000000d3 vpcmpeqb %xmm0, %xmm2, %xmm6 + 0xc5, 0xf9, 0xd7, 0xde, //0x000000d7 vpmovmskb %xmm6, %ebx + 0xc5, 0xe1, 0x74, 0xf0, //0x000000db vpcmpeqb %xmm0, %xmm3, %xmm6 + 0xc5, 0xf9, 0xd7, 0xd6, //0x000000df vpmovmskb %xmm6, %edx + 0xc5, 0xd9, 0x74, 0xf0, //0x000000e3 vpcmpeqb %xmm0, %xmm4, %xmm6 + 0xc5, 0xf9, 0xd7, 0xf6, //0x000000e7 vpmovmskb %xmm6, %esi + 0xc5, 0xd1, 0x74, 0xf0, //0x000000eb vpcmpeqb %xmm0, %xmm5, %xmm6 + 0xc5, 0x79, 0xd7, 0xfe, //0x000000ef vpmovmskb %xmm6, %r15d + 0xc5, 0xe9, 0x74, 0xd1, //0x000000f3 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000000f7 vpmovmskb %xmm2, %edi + 0xc5, 0xe1, 0x74, 0xd1, //0x000000fb vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0x79, 0xd7, 0xe2, //0x000000ff vpmovmskb %xmm2, %r12d + 0xc5, 0xd9, 0x74, 0xd1, //0x00000103 vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0x79, 0xd7, 0xf2, //0x00000107 vpmovmskb %xmm2, %r14d + 0xc5, 0xd1, 0x74, 0xd1, //0x0000010b vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xca, //0x0000010f vpmovmskb %xmm2, %r9d + 0x49, 0xc1, 0xe7, 0x30, //0x00000113 shlq $48, %r15 + 0x48, 0xc1, 0xe6, 0x20, //0x00000117 shlq $32, %rsi + 0x48, 0xc1, 0xe2, 0x10, //0x0000011b shlq $16, %rdx + 0x48, 0x09, 0xd3, //0x0000011f orq %rdx, %rbx + 0x48, 0x09, 0xf3, //0x00000122 orq %rsi, %rbx + 0x49, 0xc1, 0xe1, 0x30, //0x00000125 shlq $48, %r9 + 0x49, 0xc1, 0xe6, 0x20, //0x00000129 shlq $32, %r14 + 0x49, 0xc1, 0xe4, 0x10, //0x0000012d shlq $16, %r12 + 0x4c, 0x09, 0xe7, //0x00000131 orq %r12, %rdi + 0x4c, 0x09, 0xf7, //0x00000134 orq %r14, %rdi + 0x4c, 0x09, 0xcf, //0x00000137 orq %r9, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x0000013a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000013e jne LBB0_6 + 0x48, 0x85, 0xff, //0x00000144 testq %rdi, %rdi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000147 jne LBB0_9 + //0x0000014d LBB0_6 + 0x4c, 0x09, 0xfb, //0x0000014d orq %r15, %rbx + 0x48, 0x89, 0xfa, //0x00000150 movq %rdi, %rdx + 0x4c, 0x09, 0xc2, //0x00000153 orq %r8, %rdx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000156 jne LBB0_10 + //0x0000015c LBB0_7 + 0x48, 0x85, 0xdb, //0x0000015c testq %rbx, %rbx + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x0000015f jne LBB0_11 + //0x00000165 LBB0_8 + 0x48, 0x83, 0xc0, 0xc0, //0x00000165 addq $-64, %rax + 0x48, 0x83, 0xc1, 0x40, //0x00000169 addq $64, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x0000016d cmpq $63, %rax + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x00000171 ja LBB0_4 + 0xe9, 0xef, 0x02, 0x00, 0x00, //0x00000177 jmp LBB0_29 + //0x0000017c LBB0_9 + 0x48, 0x89, 0xca, //0x0000017c movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x0000017f subq $-48(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xdf, //0x00000183 bsfq %rdi, %r11 + 0x49, 0x01, 0xd3, //0x00000187 addq %rdx, %r11 + 0x4c, 0x09, 0xfb, //0x0000018a orq %r15, %rbx + 0x48, 0x89, 0xfa, //0x0000018d movq %rdi, %rdx + 0x4c, 0x09, 0xc2, //0x00000190 orq %r8, %rdx + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000193 je LBB0_7 + //0x00000199 LBB0_10 + 0x4c, 0x89, 0xc2, //0x00000199 movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x0000019c notq %rdx + 0x48, 0x21, 0xfa, //0x0000019f andq %rdi, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x000001a2 leaq (%rdx,%rdx), %r9 + 0x4d, 0x09, 0xc1, //0x000001a6 orq %r8, %r9 + 0x4c, 0x89, 0xce, //0x000001a9 movq %r9, %rsi + 0x48, 0xf7, 0xd6, //0x000001ac notq %rsi + 0x48, 0x21, 0xfe, //0x000001af andq %rdi, %rsi + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000001b2 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfe, //0x000001bc andq %rdi, %rsi + 0x45, 0x31, 0xc0, //0x000001bf xorl %r8d, %r8d + 0x48, 0x01, 0xd6, //0x000001c2 addq %rdx, %rsi + 0x41, 0x0f, 0x92, 0xc0, //0x000001c5 setb %r8b + 0x48, 0x01, 0xf6, //0x000001c9 addq %rsi, %rsi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000001cc movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd6, //0x000001d6 xorq %rdx, %rsi + 0x4c, 0x21, 0xce, //0x000001d9 andq %r9, %rsi + 0x48, 0xf7, 0xd6, //0x000001dc notq %rsi + 0x48, 0x21, 0xf3, //0x000001df andq %rsi, %rbx + 0x48, 0x85, 0xdb, //0x000001e2 testq %rbx, %rbx + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000001e5 je LBB0_8 + //0x000001eb LBB0_11 + 0x48, 0x0f, 0xbc, 0xc3, //0x000001eb bsfq %rbx, %rax + 0x48, 0x2b, 0x4d, 0xd0, //0x000001ef subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x000001f3 leaq $1(%rcx,%rax), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x000001f8 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x000001fc movq $-64(%rbp), %rsi + 0xe9, 0x38, 0x02, 0x00, 0x00, //0x00000200 jmp LBB0_27 + //0x00000205 LBB0_12 + 0x48, 0x8b, 0x4f, 0x08, //0x00000205 movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x00000209 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x0000020c subq %r10, %rax + 0x0f, 0x84, 0xbb, 0x04, 0x00, 0x00, //0x0000020f je LBB0_55 + 0x48, 0x89, 0x4d, 0xc8, //0x00000215 movq %rcx, $-56(%rbp) + 0x48, 0x8b, 0x3f, //0x00000219 movq (%rdi), %rdi + 0x4a, 0x8d, 0x0c, 0x17, //0x0000021c leaq (%rdi,%r10), %rcx + 0x48, 0x83, 0xf8, 0x40, //0x00000220 cmpq $64, %rax + 0x48, 0x89, 0x7d, 0xd0, //0x00000224 movq %rdi, $-48(%rbp) + 0x0f, 0x82, 0x1b, 0x05, 0x00, 0x00, //0x00000228 jb LBB0_60 + 0x41, 0x89, 0xc5, //0x0000022e movl %eax, %r13d + 0x41, 0x83, 0xe5, 0x3f, //0x00000231 andl $63, %r13d + 0x48, 0x8d, 0x50, 0xc0, //0x00000235 leaq $-64(%rax), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x00000239 andq $-64, %rdx + 0x4c, 0x01, 0xd2, //0x0000023d addq %r10, %rdx + 0x48, 0x8d, 0x54, 0x17, 0x40, //0x00000240 leaq $64(%rdi,%rdx), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00000245 movq %rdx, $-80(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000249 movq $-1, %r11 + 0x45, 0x31, 0xc9, //0x00000250 xorl %r9d, %r9d + 0xc5, 0x7a, 0x6f, 0x05, 0xa5, 0xfd, 0xff, 0xff, //0x00000253 vmovdqu $-603(%rip), %xmm8 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xad, 0xfd, 0xff, 0xff, //0x0000025b vmovdqu $-595(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xb5, 0xfd, 0xff, 0xff, //0x00000263 vmovdqu $-587(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x0000026b vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x90, //0x0000026f .p2align 4, 0x90 + //0x00000270 LBB0_15 + 0xc5, 0xfa, 0x6f, 0x39, //0x00000270 vmovdqu (%rcx), %xmm7 + 0xc5, 0xfa, 0x6f, 0x71, 0x10, //0x00000274 vmovdqu $16(%rcx), %xmm6 + 0xc5, 0xfa, 0x6f, 0x69, 0x20, //0x00000279 vmovdqu $32(%rcx), %xmm5 + 0xc5, 0xfa, 0x6f, 0x61, 0x30, //0x0000027e vmovdqu $48(%rcx), %xmm4 + 0xc5, 0xb9, 0x74, 0xc7, //0x00000283 vpcmpeqb %xmm7, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00000287 vpmovmskb %xmm0, %ebx + 0xc5, 0xb9, 0x74, 0xc6, //0x0000028b vpcmpeqb %xmm6, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x0000028f vpmovmskb %xmm0, %edx + 0xc5, 0xb9, 0x74, 0xc5, //0x00000293 vpcmpeqb %xmm5, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00000297 vpmovmskb %xmm0, %esi + 0xc5, 0xb9, 0x74, 0xc4, //0x0000029b vpcmpeqb %xmm4, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x0000029f vpmovmskb %xmm0, %r8d + 0xc5, 0xc1, 0x74, 0xc1, //0x000002a3 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xf8, //0x000002a7 vpmovmskb %xmm0, %r15d + 0xc5, 0xc9, 0x74, 0xc1, //0x000002ab vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000002af vpmovmskb %xmm0, %edi + 0xc5, 0xd1, 0x74, 0xc1, //0x000002b3 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0x48, 0xc1, 0xe2, 0x10, //0x000002b7 shlq $16, %rdx + 0x48, 0x09, 0xd3, //0x000002bb orq %rdx, %rbx + 0xc5, 0xf9, 0xd7, 0xd0, //0x000002be vpmovmskb %xmm0, %edx + 0xc5, 0xd9, 0x74, 0xc1, //0x000002c2 vpcmpeqb %xmm1, %xmm4, %xmm0 + 0x48, 0xc1, 0xe6, 0x20, //0x000002c6 shlq $32, %rsi + 0x48, 0x09, 0xf3, //0x000002ca orq %rsi, %rbx + 0xc5, 0xf9, 0xd7, 0xf0, //0x000002cd vpmovmskb %xmm0, %esi + 0xc5, 0xe9, 0x64, 0xc7, //0x000002d1 vpcmpgtb %xmm7, %xmm2, %xmm0 + 0xc5, 0xc1, 0x64, 0xfb, //0x000002d5 vpcmpgtb %xmm3, %xmm7, %xmm7 + 0xc5, 0xc1, 0xdb, 0xc0, //0x000002d9 vpand %xmm0, %xmm7, %xmm0 + 0x48, 0xc1, 0xe7, 0x10, //0x000002dd shlq $16, %rdi + 0x49, 0x09, 0xff, //0x000002e1 orq %rdi, %r15 + 0xc5, 0x79, 0xd7, 0xe0, //0x000002e4 vpmovmskb %xmm0, %r12d + 0xc5, 0xe9, 0x64, 0xc6, //0x000002e8 vpcmpgtb %xmm6, %xmm2, %xmm0 + 0xc5, 0xc9, 0x64, 0xf3, //0x000002ec vpcmpgtb %xmm3, %xmm6, %xmm6 + 0xc5, 0xc9, 0xdb, 0xc0, //0x000002f0 vpand %xmm0, %xmm6, %xmm0 + 0x48, 0xc1, 0xe2, 0x20, //0x000002f4 shlq $32, %rdx + 0x49, 0x09, 0xd7, //0x000002f8 orq %rdx, %r15 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000002fb vpmovmskb %xmm0, %edi + 0xc5, 0xe9, 0x64, 0xc5, //0x000002ff vpcmpgtb %xmm5, %xmm2, %xmm0 + 0xc5, 0xd1, 0x64, 0xeb, //0x00000303 vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xd1, 0xdb, 0xc0, //0x00000307 vpand %xmm0, %xmm5, %xmm0 + 0x48, 0xc1, 0xe6, 0x30, //0x0000030b shlq $48, %rsi + 0x49, 0x09, 0xf7, //0x0000030f orq %rsi, %r15 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00000312 vpmovmskb %xmm0, %edx + 0xc5, 0xe9, 0x64, 0xc4, //0x00000316 vpcmpgtb %xmm4, %xmm2, %xmm0 + 0xc5, 0xd9, 0x64, 0xe3, //0x0000031a vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd9, 0xdb, 0xc0, //0x0000031e vpand %xmm0, %xmm4, %xmm0 + 0x48, 0xc1, 0xe7, 0x10, //0x00000322 shlq $16, %rdi + 0x49, 0x09, 0xfc, //0x00000326 orq %rdi, %r12 + 0xc5, 0x79, 0xd7, 0xf0, //0x00000329 vpmovmskb %xmm0, %r14d + 0x49, 0xc1, 0xe0, 0x30, //0x0000032d shlq $48, %r8 + 0x48, 0xc1, 0xe2, 0x20, //0x00000331 shlq $32, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x00000335 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000339 jne LBB0_17 + 0x4d, 0x85, 0xff, //0x0000033f testq %r15, %r15 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000342 jne LBB0_22 + //0x00000348 LBB0_17 + 0x49, 0xc1, 0xe6, 0x30, //0x00000348 shlq $48, %r14 + 0x49, 0x09, 0xd4, //0x0000034c orq %rdx, %r12 + 0x4c, 0x09, 0xc3, //0x0000034f orq %r8, %rbx + 0x4c, 0x89, 0xfa, //0x00000352 movq %r15, %rdx + 0x4c, 0x09, 0xca, //0x00000355 orq %r9, %rdx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000358 jne LBB0_21 + 0x4d, 0x09, 0xf4, //0x0000035e orq %r14, %r12 + 0x48, 0x85, 0xdb, //0x00000361 testq %rbx, %rbx + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00000364 jne LBB0_23 + //0x0000036a LBB0_19 + 0x4d, 0x85, 0xe4, //0x0000036a testq %r12, %r12 + 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x0000036d jne LBB0_35 + 0x48, 0x83, 0xc0, 0xc0, //0x00000373 addq $-64, %rax + 0x48, 0x83, 0xc1, 0x40, //0x00000377 addq $64, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x0000037b cmpq $63, %rax + 0x0f, 0x87, 0xeb, 0xfe, 0xff, 0xff, //0x0000037f ja LBB0_15 + 0xe9, 0x8a, 0x01, 0x00, 0x00, //0x00000385 jmp LBB0_37 + //0x0000038a LBB0_21 + 0x4c, 0x89, 0xca, //0x0000038a movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x0000038d notq %rdx + 0x4c, 0x21, 0xfa, //0x00000390 andq %r15, %rdx + 0x4c, 0x8d, 0x04, 0x12, //0x00000393 leaq (%rdx,%rdx), %r8 + 0x4d, 0x09, 0xc8, //0x00000397 orq %r9, %r8 + 0x4c, 0x89, 0xc7, //0x0000039a movq %r8, %rdi + 0x48, 0xf7, 0xd7, //0x0000039d notq %rdi + 0x4c, 0x21, 0xff, //0x000003a0 andq %r15, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000003a3 movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x000003ad andq %rsi, %rdi + 0x45, 0x31, 0xc9, //0x000003b0 xorl %r9d, %r9d + 0x48, 0x01, 0xd7, //0x000003b3 addq %rdx, %rdi + 0x41, 0x0f, 0x92, 0xc1, //0x000003b6 setb %r9b + 0x48, 0x01, 0xff, //0x000003ba addq %rdi, %rdi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000003bd movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd7, //0x000003c7 xorq %rdx, %rdi + 0x4c, 0x21, 0xc7, //0x000003ca andq %r8, %rdi + 0x48, 0xf7, 0xd7, //0x000003cd notq %rdi + 0x48, 0x21, 0xfb, //0x000003d0 andq %rdi, %rbx + 0x4d, 0x09, 0xf4, //0x000003d3 orq %r14, %r12 + 0x48, 0x85, 0xdb, //0x000003d6 testq %rbx, %rbx + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x000003d9 je LBB0_19 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000003df jmp LBB0_23 + //0x000003e4 LBB0_22 + 0x48, 0x89, 0xce, //0x000003e4 movq %rcx, %rsi + 0x48, 0x2b, 0x75, 0xd0, //0x000003e7 subq $-48(%rbp), %rsi + 0x4d, 0x0f, 0xbc, 0xdf, //0x000003eb bsfq %r15, %r11 + 0x49, 0x01, 0xf3, //0x000003ef addq %rsi, %r11 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x000003f2 jmp LBB0_17 + //0x000003f7 LBB0_23 + 0x48, 0x0f, 0xbc, 0xc3, //0x000003f7 bsfq %rbx, %rax + 0x4d, 0x85, 0xe4, //0x000003fb testq %r12, %r12 + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000003fe je LBB0_25 + 0x49, 0x0f, 0xbc, 0xd4, //0x00000404 bsfq %r12, %rdx + 0x48, 0x8b, 0x5d, 0xb8, //0x00000408 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000040c movq $-64(%rbp), %rsi + 0x48, 0x39, 0xc2, //0x00000410 cmpq %rax, %rdx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00000413 jae LBB0_26 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x00000419 jmp LBB0_80 + //0x0000041e LBB0_25 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000041e movl $64, %edx + 0x48, 0x8b, 0x5d, 0xb8, //0x00000423 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000427 movq $-64(%rbp), %rsi + 0x48, 0x39, 0xc2, //0x0000042b cmpq %rax, %rdx + 0x0f, 0x82, 0x66, 0x04, 0x00, 0x00, //0x0000042e jb LBB0_80 + //0x00000434 LBB0_26 + 0x48, 0x2b, 0x4d, 0xd0, //0x00000434 subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x00000438 leaq $1(%rcx,%rax), %rdi + //0x0000043d LBB0_27 + 0x48, 0x85, 0xff, //0x0000043d testq %rdi, %rdi + 0x0f, 0x88, 0x5b, 0x04, 0x00, 0x00, //0x00000440 js LBB0_81 + 0x48, 0x89, 0x3e, //0x00000446 movq %rdi, (%rsi) + 0x4c, 0x89, 0x53, 0x10, //0x00000449 movq %r10, $16(%rbx) + 0x48, 0xc7, 0x03, 0x07, 0x00, 0x00, 0x00, //0x0000044d movq $7, (%rbx) + 0x49, 0x39, 0xfb, //0x00000454 cmpq %rdi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000457 movq $-1, %rax + 0x49, 0x0f, 0x4c, 0xc3, //0x0000045e cmovlq %r11, %rax + 0x48, 0x89, 0x43, 0x18, //0x00000462 movq %rax, $24(%rbx) + 0xe9, 0x40, 0x04, 0x00, 0x00, //0x00000466 jmp LBB0_83 + //0x0000046b LBB0_29 + 0x48, 0x8b, 0x4d, 0xb0, //0x0000046b movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe8, //0x0000046f movq %r13, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00000472 cmpq $32, %rax + 0x0f, 0x82, 0x74, 0x02, 0x00, 0x00, //0x00000476 jb LBB0_57 + //0x0000047c LBB0_30 + 0xc5, 0xfa, 0x6f, 0x01, //0x0000047c vmovdqu (%rcx), %xmm0 + 0xc5, 0xfa, 0x6f, 0x49, 0x10, //0x00000480 vmovdqu $16(%rcx), %xmm1 + 0xc5, 0xfa, 0x6f, 0x15, 0x73, 0xfb, 0xff, 0xff, //0x00000485 vmovdqu $-1165(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x1d, 0x7b, 0xfb, 0xff, 0xff, //0x0000048d vmovdqu $-1157(%rip), %xmm3 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xe2, //0x00000495 vpcmpeqb %xmm2, %xmm0, %xmm4 + 0xc5, 0x79, 0xd7, 0xcc, //0x00000499 vpmovmskb %xmm4, %r9d + 0xc5, 0xf1, 0x74, 0xd2, //0x0000049d vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x000004a1 vpmovmskb %xmm2, %edi + 0xc5, 0xf9, 0x74, 0xc3, //0x000004a5 vpcmpeqb %xmm3, %xmm0, %xmm0 + 0xc5, 0x79, 0xd7, 0xf8, //0x000004a9 vpmovmskb %xmm0, %r15d + 0xc5, 0xf1, 0x74, 0xc3, //0x000004ad vpcmpeqb %xmm3, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x000004b1 vpmovmskb %xmm0, %edx + 0x48, 0xc1, 0xe7, 0x10, //0x000004b5 shlq $16, %rdi + 0x48, 0xc1, 0xe2, 0x10, //0x000004b9 shlq $16, %rdx + 0x49, 0x09, 0xd7, //0x000004bd orq %rdx, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x000004c0 cmpq $-1, %r11 + 0x0f, 0x85, 0x0b, 0x01, 0x00, 0x00, //0x000004c4 jne LBB0_43 + 0x4d, 0x85, 0xff, //0x000004ca testq %r15, %r15 + 0x48, 0x8b, 0x5d, 0xb8, //0x000004cd movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x000004d1 movq $-64(%rbp), %rsi + 0x0f, 0x85, 0xdf, 0x03, 0x00, 0x00, //0x000004d5 jne LBB0_84 + 0x4c, 0x09, 0xcf, //0x000004db orq %r9, %rdi + 0x4c, 0x89, 0xfa, //0x000004de movq %r15, %rdx + 0x4c, 0x09, 0xc2, //0x000004e1 orq %r8, %rdx + 0x0f, 0x85, 0x02, 0x01, 0x00, 0x00, //0x000004e4 jne LBB0_44 + //0x000004ea LBB0_33 + 0x48, 0x85, 0xff, //0x000004ea testq %rdi, %rdi + 0x0f, 0x84, 0x3c, 0x01, 0x00, 0x00, //0x000004ed je LBB0_45 + //0x000004f3 LBB0_34 + 0x48, 0x0f, 0xbc, 0xc7, //0x000004f3 bsfq %rdi, %rax + 0xe9, 0x38, 0xff, 0xff, 0xff, //0x000004f7 jmp LBB0_26 + //0x000004fc LBB0_35 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x000004fc movq $-2, %rdi + //0x00000503 LBB0_36 + 0x4c, 0x8b, 0x55, 0xc8, //0x00000503 movq $-56(%rbp), %r10 + 0x48, 0x8b, 0x5d, 0xb8, //0x00000507 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000050b movq $-64(%rbp), %rsi + 0xe9, 0x91, 0x03, 0x00, 0x00, //0x0000050f jmp LBB0_82 + //0x00000514 LBB0_37 + 0x48, 0x8b, 0x4d, 0xb0, //0x00000514 movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe8, //0x00000518 movq %r13, %rax + 0x48, 0x8b, 0x5d, 0xb8, //0x0000051b movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000051f movq $-64(%rbp), %rsi + 0x48, 0x83, 0xf8, 0x20, //0x00000523 cmpq $32, %rax + 0x0f, 0x82, 0xb1, 0x02, 0x00, 0x00, //0x00000527 jb LBB0_68 + //0x0000052d LBB0_38 + 0xc5, 0xfa, 0x6f, 0x01, //0x0000052d vmovdqu (%rcx), %xmm0 + 0xc5, 0xfa, 0x6f, 0x49, 0x10, //0x00000531 vmovdqu $16(%rcx), %xmm1 + 0xc5, 0xfa, 0x6f, 0x15, 0xc2, 0xfa, 0xff, 0xff, //0x00000536 vmovdqu $-1342(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x0000053e vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0x79, 0xd7, 0xe3, //0x00000542 vpmovmskb %xmm3, %r12d + 0xc5, 0xf1, 0x74, 0xd2, //0x00000546 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000054a vpmovmskb %xmm2, %edi + 0xc5, 0xfa, 0x6f, 0x15, 0xba, 0xfa, 0xff, 0xff, //0x0000054e vmovdqu $-1350(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00000556 vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0x79, 0xd7, 0xfb, //0x0000055a vpmovmskb %xmm3, %r15d + 0xc5, 0xf1, 0x74, 0xd2, //0x0000055e vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00000562 vpmovmskb %xmm2, %edx + 0xc5, 0xfa, 0x6f, 0x15, 0xb2, 0xfa, 0xff, 0xff, //0x00000566 vmovdqu $-1358(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd8, //0x0000056e vpcmpgtb %xmm0, %xmm2, %xmm3 + 0xc5, 0xd9, 0x76, 0xe4, //0x00000572 vpcmpeqd %xmm4, %xmm4, %xmm4 + 0xc5, 0xf9, 0x64, 0xc4, //0x00000576 vpcmpgtb %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc3, //0x0000057a vpand %xmm3, %xmm0, %xmm0 + 0xc5, 0xe9, 0x64, 0xd1, //0x0000057e vpcmpgtb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf1, 0x64, 0xcc, //0x00000582 vpcmpgtb %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xdb, 0xca, //0x00000586 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0x79, 0xd7, 0xf1, //0x0000058a vpmovmskb %xmm1, %r14d + 0x48, 0xc1, 0xe7, 0x10, //0x0000058e shlq $16, %rdi + 0x48, 0xc1, 0xe2, 0x10, //0x00000592 shlq $16, %rdx + 0x49, 0x09, 0xd7, //0x00000596 orq %rdx, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x00000599 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000059d jne LBB0_40 + 0x4d, 0x85, 0xff, //0x000005a3 testq %r15, %r15 + 0x0f, 0x85, 0x30, 0x03, 0x00, 0x00, //0x000005a6 jne LBB0_85 + //0x000005ac LBB0_40 + 0xc5, 0x79, 0xd7, 0xc0, //0x000005ac vpmovmskb %xmm0, %r8d + 0x4c, 0x09, 0xe7, //0x000005b0 orq %r12, %rdi + 0x4c, 0x89, 0xfa, //0x000005b3 movq %r15, %rdx + 0x4c, 0x09, 0xca, //0x000005b6 orq %r9, %rdx + 0x0f, 0x85, 0xa3, 0x01, 0x00, 0x00, //0x000005b9 jne LBB0_61 + 0x49, 0xc1, 0xe6, 0x10, //0x000005bf shlq $16, %r14 + 0x48, 0x85, 0xff, //0x000005c3 testq %rdi, %rdi + 0x0f, 0x84, 0xde, 0x01, 0x00, 0x00, //0x000005c6 je LBB0_62 + //0x000005cc LBB0_42 + 0x48, 0x0f, 0xbc, 0xd7, //0x000005cc bsfq %rdi, %rdx + 0xe9, 0xda, 0x01, 0x00, 0x00, //0x000005d0 jmp LBB0_63 + //0x000005d5 LBB0_43 + 0x48, 0x8b, 0x5d, 0xb8, //0x000005d5 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x000005d9 movq $-64(%rbp), %rsi + 0x4c, 0x09, 0xcf, //0x000005dd orq %r9, %rdi + 0x4c, 0x89, 0xfa, //0x000005e0 movq %r15, %rdx + 0x4c, 0x09, 0xc2, //0x000005e3 orq %r8, %rdx + 0x0f, 0x84, 0xfe, 0xfe, 0xff, 0xff, //0x000005e6 je LBB0_33 + //0x000005ec LBB0_44 + 0x45, 0x89, 0xc6, //0x000005ec movl %r8d, %r14d + 0x41, 0xf7, 0xd6, //0x000005ef notl %r14d + 0x45, 0x21, 0xfe, //0x000005f2 andl %r15d, %r14d + 0x47, 0x8d, 0x0c, 0x36, //0x000005f5 leal (%r14,%r14), %r9d + 0x45, 0x09, 0xc1, //0x000005f9 orl %r8d, %r9d + 0xba, 0xaa, 0xaa, 0xaa, 0xaa, //0x000005fc movl $2863311530, %edx + 0x44, 0x31, 0xca, //0x00000601 xorl %r9d, %edx + 0x44, 0x21, 0xfa, //0x00000604 andl %r15d, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000607 andl $-1431655766, %edx + 0x45, 0x31, 0xc0, //0x0000060d xorl %r8d, %r8d + 0x44, 0x01, 0xf2, //0x00000610 addl %r14d, %edx + 0x41, 0x0f, 0x92, 0xc0, //0x00000613 setb %r8b + 0x01, 0xd2, //0x00000617 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00000619 xorl $1431655765, %edx + 0x44, 0x21, 0xca, //0x0000061f andl %r9d, %edx + 0xf7, 0xd2, //0x00000622 notl %edx + 0x21, 0xd7, //0x00000624 andl %edx, %edi + 0x48, 0x85, 0xff, //0x00000626 testq %rdi, %rdi + 0x0f, 0x85, 0xc4, 0xfe, 0xff, 0xff, //0x00000629 jne LBB0_34 + //0x0000062f LBB0_45 + 0x48, 0x83, 0xc1, 0x20, //0x0000062f addq $32, %rcx + 0x48, 0x83, 0xc0, 0xe0, //0x00000633 addq $-32, %rax + 0x4d, 0x85, 0xc0, //0x00000637 testq %r8, %r8 + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x0000063a jne LBB0_58 + //0x00000640 LBB0_46 + 0x4d, 0x89, 0xd8, //0x00000640 movq %r11, %r8 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000643 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x0000064a testq %rax, %rax + 0x0f, 0x84, 0x4e, 0x02, 0x00, 0x00, //0x0000064d je LBB0_81 + //0x00000653 LBB0_47 + 0x4c, 0x8b, 0x75, 0xd0, //0x00000653 movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x00000657 notq %r14 + //0x0000065a LBB0_48 + 0x4c, 0x8d, 0x79, 0x01, //0x0000065a leaq $1(%rcx), %r15 + 0x0f, 0xb6, 0x11, //0x0000065e movzbl (%rcx), %edx + 0x80, 0xfa, 0x22, //0x00000661 cmpb $34, %dl + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00000664 je LBB0_53 + 0x4c, 0x8d, 0x48, 0xff, //0x0000066a leaq $-1(%rax), %r9 + 0x80, 0xfa, 0x5c, //0x0000066e cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00000671 je LBB0_51 + 0x4c, 0x89, 0xc8, //0x00000677 movq %r9, %rax + 0x4c, 0x89, 0xf9, //0x0000067a movq %r15, %rcx + 0x4d, 0x85, 0xc9, //0x0000067d testq %r9, %r9 + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00000680 jne LBB0_48 + 0xe9, 0x16, 0x02, 0x00, 0x00, //0x00000686 jmp LBB0_81 + //0x0000068b LBB0_51 + 0x4d, 0x85, 0xc9, //0x0000068b testq %r9, %r9 + 0x0f, 0x84, 0x6f, 0xfe, 0xff, 0xff, //0x0000068e je LBB0_36 + 0x4d, 0x01, 0xf7, //0x00000694 addq %r14, %r15 + 0x49, 0x83, 0xf8, 0xff, //0x00000697 cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xdf, //0x0000069b cmoveq %r15, %r11 + 0x4d, 0x0f, 0x44, 0xc7, //0x0000069f cmoveq %r15, %r8 + 0x48, 0x83, 0xc1, 0x02, //0x000006a3 addq $2, %rcx + 0x48, 0x83, 0xc0, 0xfe, //0x000006a7 addq $-2, %rax + 0x49, 0x89, 0xc1, //0x000006ab movq %rax, %r9 + 0x48, 0x8b, 0x5d, 0xb8, //0x000006ae movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x000006b2 movq $-64(%rbp), %rsi + 0x4d, 0x85, 0xc9, //0x000006b6 testq %r9, %r9 + 0x0f, 0x85, 0x9b, 0xff, 0xff, 0xff, //0x000006b9 jne LBB0_48 + 0xe9, 0xdd, 0x01, 0x00, 0x00, //0x000006bf jmp LBB0_81 + //0x000006c4 LBB0_53 + 0x4c, 0x2b, 0x7d, 0xd0, //0x000006c4 subq $-48(%rbp), %r15 + 0x4c, 0x89, 0xff, //0x000006c8 movq %r15, %rdi + 0xe9, 0x6d, 0xfd, 0xff, 0xff, //0x000006cb jmp LBB0_27 + //0x000006d0 LBB0_55 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000006d0 movq $-1, %rdi + 0xe9, 0xc9, 0x01, 0x00, 0x00, //0x000006d7 jmp LBB0_82 + //0x000006dc LBB0_56 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000006dc movq $-1, %r11 + 0x45, 0x31, 0xc0, //0x000006e3 xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x000006e6 cmpq $32, %rax + 0x0f, 0x83, 0x8c, 0xfd, 0xff, 0xff, //0x000006ea jae LBB0_30 + //0x000006f0 LBB0_57 + 0x48, 0x8b, 0x5d, 0xb8, //0x000006f0 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x000006f4 movq $-64(%rbp), %rsi + 0x4d, 0x85, 0xc0, //0x000006f8 testq %r8, %r8 + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x000006fb je LBB0_46 + //0x00000701 LBB0_58 + 0x48, 0x85, 0xc0, //0x00000701 testq %rax, %rax + 0x0f, 0x84, 0x25, 0x02, 0x00, 0x00, //0x00000704 je LBB0_88 + 0x4c, 0x8b, 0x45, 0xd0, //0x0000070a movq $-48(%rbp), %r8 + 0x49, 0xf7, 0xd0, //0x0000070e notq %r8 + 0x49, 0x01, 0xc8, //0x00000711 addq %rcx, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00000714 cmpq $-1, %r11 + 0x4c, 0x89, 0xda, //0x00000718 movq %r11, %rdx + 0x49, 0x0f, 0x44, 0xd0, //0x0000071b cmoveq %r8, %rdx + 0x4d, 0x0f, 0x45, 0xc3, //0x0000071f cmovneq %r11, %r8 + 0x48, 0xff, 0xc1, //0x00000723 incq %rcx + 0x48, 0xff, 0xc8, //0x00000726 decq %rax + 0x49, 0x89, 0xd3, //0x00000729 movq %rdx, %r11 + 0x48, 0x8b, 0x5d, 0xb8, //0x0000072c movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000730 movq $-64(%rbp), %rsi + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000734 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x0000073b testq %rax, %rax + 0x0f, 0x85, 0x0f, 0xff, 0xff, 0xff, //0x0000073e jne LBB0_47 + 0xe9, 0x58, 0x01, 0x00, 0x00, //0x00000744 jmp LBB0_81 + //0x00000749 LBB0_60 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000749 movq $-1, %r11 + 0x45, 0x31, 0xc9, //0x00000750 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x00000753 cmpq $32, %rax + 0x0f, 0x83, 0xd0, 0xfd, 0xff, 0xff, //0x00000757 jae LBB0_38 + 0xe9, 0x7c, 0x00, 0x00, 0x00, //0x0000075d jmp LBB0_68 + //0x00000762 LBB0_61 + 0x45, 0x89, 0xcd, //0x00000762 movl %r9d, %r13d + 0x41, 0xf7, 0xd5, //0x00000765 notl %r13d + 0x45, 0x21, 0xfd, //0x00000768 andl %r15d, %r13d + 0x47, 0x8d, 0x64, 0x2d, 0x00, //0x0000076b leal (%r13,%r13), %r12d + 0x45, 0x09, 0xcc, //0x00000770 orl %r9d, %r12d + 0xba, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000773 movl $2863311530, %edx + 0x44, 0x31, 0xe2, //0x00000778 xorl %r12d, %edx + 0x44, 0x21, 0xfa, //0x0000077b andl %r15d, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000077e andl $-1431655766, %edx + 0x45, 0x31, 0xc9, //0x00000784 xorl %r9d, %r9d + 0x44, 0x01, 0xea, //0x00000787 addl %r13d, %edx + 0x41, 0x0f, 0x92, 0xc1, //0x0000078a setb %r9b + 0x01, 0xd2, //0x0000078e addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00000790 xorl $1431655765, %edx + 0x44, 0x21, 0xe2, //0x00000796 andl %r12d, %edx + 0xf7, 0xd2, //0x00000799 notl %edx + 0x21, 0xd7, //0x0000079b andl %edx, %edi + 0x49, 0xc1, 0xe6, 0x10, //0x0000079d shlq $16, %r14 + 0x48, 0x85, 0xff, //0x000007a1 testq %rdi, %rdi + 0x0f, 0x85, 0x22, 0xfe, 0xff, 0xff, //0x000007a4 jne LBB0_42 + //0x000007aa LBB0_62 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000007aa movl $64, %edx + //0x000007af LBB0_63 + 0x4d, 0x09, 0xc6, //0x000007af orq %r8, %r14 + 0x48, 0x85, 0xff, //0x000007b2 testq %rdi, %rdi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000007b5 je LBB0_66 + 0x4d, 0x85, 0xf6, //0x000007bb testq %r14, %r14 + 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x000007be je LBB0_76 + 0x49, 0x0f, 0xbc, 0xc6, //0x000007c4 bsfq %r14, %rax + 0xe9, 0xa7, 0x00, 0x00, 0x00, //0x000007c8 jmp LBB0_77 + //0x000007cd LBB0_66 + 0x4d, 0x85, 0xf6, //0x000007cd testq %r14, %r14 + 0x0f, 0x85, 0xc4, 0x00, 0x00, 0x00, //0x000007d0 jne LBB0_80 + 0x48, 0x83, 0xc1, 0x20, //0x000007d6 addq $32, %rcx + 0x48, 0x83, 0xc0, 0xe0, //0x000007da addq $-32, %rax + //0x000007de LBB0_68 + 0x4d, 0x85, 0xc9, //0x000007de testq %r9, %r9 + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x000007e1 jne LBB0_86 + 0x4d, 0x89, 0xd8, //0x000007e7 movq %r11, %r8 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000007ea movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x000007f1 testq %rax, %rax + 0x0f, 0x84, 0xa7, 0x00, 0x00, 0x00, //0x000007f4 je LBB0_81 + //0x000007fa LBB0_70 + 0x0f, 0xb6, 0x11, //0x000007fa movzbl (%rcx), %edx + 0x80, 0xfa, 0x22, //0x000007fd cmpb $34, %dl + 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, //0x00000800 je LBB0_79 + 0x80, 0xfa, 0x5c, //0x00000806 cmpb $92, %dl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000809 je LBB0_74 + 0x80, 0xfa, 0x20, //0x0000080f cmpb $32, %dl + 0x0f, 0x82, 0x82, 0x00, 0x00, 0x00, //0x00000812 jb LBB0_80 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000818 movq $-1, %r9 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000081f movl $1, %edx + 0x48, 0x01, 0xd1, //0x00000824 addq %rdx, %rcx + 0x4c, 0x01, 0xc8, //0x00000827 addq %r9, %rax + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x0000082a jne LBB0_70 + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00000830 jmp LBB0_81 + //0x00000835 LBB0_74 + 0x48, 0x83, 0xf8, 0x01, //0x00000835 cmpq $1, %rax + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x00000839 je LBB0_81 + 0x48, 0x89, 0xca, //0x0000083f movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x00000842 subq $-48(%rbp), %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000846 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xda, //0x0000084a cmoveq %rdx, %r11 + 0x4c, 0x0f, 0x44, 0xc2, //0x0000084e cmoveq %rdx, %r8 + 0x49, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00000852 movq $-2, %r9 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000859 movl $2, %edx + 0x48, 0x01, 0xd1, //0x0000085e addq %rdx, %rcx + 0x4c, 0x01, 0xc8, //0x00000861 addq %r9, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00000864 jne LBB0_70 + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000086a jmp LBB0_81 + //0x0000086f LBB0_76 + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x0000086f movl $64, %eax + //0x00000874 LBB0_77 + 0x48, 0x39, 0xd0, //0x00000874 cmpq %rdx, %rax + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00000877 jb LBB0_80 + 0x48, 0x2b, 0x4d, 0xd0, //0x0000087d subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x7c, 0x11, 0x01, //0x00000881 leaq $1(%rcx,%rdx), %rdi + 0xe9, 0xb2, 0xfb, 0xff, 0xff, //0x00000886 jmp LBB0_27 + //0x0000088b LBB0_79 + 0x48, 0x2b, 0x4d, 0xd0, //0x0000088b subq $-48(%rbp), %rcx + 0x48, 0xff, 0xc1, //0x0000088f incq %rcx + 0x48, 0x89, 0xcf, //0x00000892 movq %rcx, %rdi + 0xe9, 0xa3, 0xfb, 0xff, 0xff, //0x00000895 jmp LBB0_27 + //0x0000089a LBB0_80 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000089a movq $-2, %rdi + //0x000008a1 LBB0_81 + 0x4c, 0x8b, 0x55, 0xc8, //0x000008a1 movq $-56(%rbp), %r10 + //0x000008a5 LBB0_82 + 0x4c, 0x89, 0x16, //0x000008a5 movq %r10, (%rsi) + 0x48, 0x89, 0x3b, //0x000008a8 movq %rdi, (%rbx) + //0x000008ab LBB0_83 + 0x48, 0x83, 0xc4, 0x28, //0x000008ab addq $40, %rsp + 0x5b, //0x000008af popq %rbx + 0x41, 0x5c, //0x000008b0 popq %r12 + 0x41, 0x5d, //0x000008b2 popq %r13 + 0x41, 0x5e, //0x000008b4 popq %r14 + 0x41, 0x5f, //0x000008b6 popq %r15 + 0x5d, //0x000008b8 popq %rbp + 0xc3, //0x000008b9 retq + //0x000008ba LBB0_84 + 0x48, 0x89, 0xca, //0x000008ba movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x000008bd subq $-48(%rbp), %rdx + 0x4d, 0x0f, 0xbc, 0xdf, //0x000008c1 bsfq %r15, %r11 + 0x49, 0x01, 0xd3, //0x000008c5 addq %rdx, %r11 + 0x4c, 0x09, 0xcf, //0x000008c8 orq %r9, %rdi + 0x4c, 0x89, 0xfa, //0x000008cb movq %r15, %rdx + 0x4c, 0x09, 0xc2, //0x000008ce orq %r8, %rdx + 0x0f, 0x84, 0x13, 0xfc, 0xff, 0xff, //0x000008d1 je LBB0_33 + 0xe9, 0x10, 0xfd, 0xff, 0xff, //0x000008d7 jmp LBB0_44 + //0x000008dc LBB0_85 + 0x48, 0x89, 0xca, //0x000008dc movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x000008df subq $-48(%rbp), %rdx + 0x4d, 0x0f, 0xbc, 0xdf, //0x000008e3 bsfq %r15, %r11 + 0x49, 0x01, 0xd3, //0x000008e7 addq %rdx, %r11 + 0xe9, 0xbd, 0xfc, 0xff, 0xff, //0x000008ea jmp LBB0_40 + //0x000008ef LBB0_86 + 0x48, 0x85, 0xc0, //0x000008ef testq %rax, %rax + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x000008f2 je LBB0_89 + 0x4c, 0x8b, 0x45, 0xd0, //0x000008f8 movq $-48(%rbp), %r8 + 0x49, 0xf7, 0xd0, //0x000008fc notq %r8 + 0x49, 0x01, 0xc8, //0x000008ff addq %rcx, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00000902 cmpq $-1, %r11 + 0x4c, 0x89, 0xda, //0x00000906 movq %r11, %rdx + 0x49, 0x0f, 0x44, 0xd0, //0x00000909 cmoveq %r8, %rdx + 0x4d, 0x0f, 0x45, 0xc3, //0x0000090d cmovneq %r11, %r8 + 0x48, 0xff, 0xc1, //0x00000911 incq %rcx + 0x48, 0xff, 0xc8, //0x00000914 decq %rax + 0x49, 0x89, 0xd3, //0x00000917 movq %rdx, %r11 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000091a movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x00000921 testq %rax, %rax + 0x0f, 0x85, 0xd0, 0xfe, 0xff, 0xff, //0x00000924 jne LBB0_70 + 0xe9, 0x72, 0xff, 0xff, 0xff, //0x0000092a jmp LBB0_81 + //0x0000092f LBB0_88 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000092f movq $-1, %rdi + 0xe9, 0xc8, 0xfb, 0xff, 0xff, //0x00000936 jmp LBB0_36 + //0x0000093b LBB0_89 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000093b movq $-1, %rdi + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00000942 jmp LBB0_81 + 0x00, //0x00000947 .p2align 2, 0x00 + //0x00000948 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000948 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned.go new file mode 100644 index 000000000..fdac8b637 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vunsigned uintptr + +//go:nosplit +func vunsigned(s *string, p *int, v *types.JsonState) { + F_vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_subr.go new file mode 100644 index 000000000..aa8776020 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_subr.go @@ -0,0 +1,43 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vunsigned = 0 +) + +const ( + _stack__vunsigned = 8 +) + +const ( + _size__vunsigned = 324 +) + +var ( + _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 _cfunc_vunsigned = []loader.CFunc{ + {"_vunsigned_entry", 0, _entry__vunsigned, 0, nil}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_text_amd64.go new file mode 100644 index 000000000..7892cbb27 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/vunsigned_text_amd64.go @@ -0,0 +1,108 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx + +var _text_vunsigned = []byte{ + // .p2align 4, 0x90 + // _vunsigned + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x00000004 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x00000007 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x0000000a movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000000d movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00000011 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00000018 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000001c vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x00000021 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x00000024 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x00000028 cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x0000002b jae LBB0_1 + 0x41, 0x8a, 0x04, 0x09, //0x00000031 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x00000035 cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00000037 jne LBB0_4 + //0x0000003d LBB0_3 + 0x48, 0x89, 0x0e, //0x0000003d movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00000040 movq $-6, (%r8) + 0x5d, //0x00000047 popq %rbp + 0xc3, //0x00000048 retq + //0x00000049 LBB0_1 + 0x4c, 0x89, 0x1e, //0x00000049 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000004c movq $-1, (%r8) + 0x5d, //0x00000053 popq %rbp + 0xc3, //0x00000054 retq + //0x00000055 LBB0_4 + 0x8d, 0x50, 0xd0, //0x00000055 leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x00000058 cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x0000005b jb LBB0_6 + 0x48, 0x89, 0x0e, //0x00000061 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00000064 movq $-2, (%r8) + 0x5d, //0x0000006b popq %rbp + 0xc3, //0x0000006c retq + //0x0000006d LBB0_6 + 0x3c, 0x30, //0x0000006d cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000006f jne LBB0_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00000075 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x0000007a addb $-46, %al + 0x3c, 0x37, //0x0000007c cmpb $55, %al + 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x0000007e ja LBB0_16 + 0x0f, 0xb6, 0xc0, //0x00000084 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000087 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00000091 btq %rax, %rdx + 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00000095 jae LBB0_16 + //0x0000009b LBB0_7 + 0x31, 0xc0, //0x0000009b xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000009d movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000a3 .p2align 4, 0x90 + //0x000000b0 LBB0_8 + 0x4c, 0x39, 0xd9, //0x000000b0 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x000000b3 jae LBB0_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x000000b9 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x000000be leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x000000c1 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x000000c4 ja LBB0_17 + 0x49, 0xf7, 0xe2, //0x000000ca mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x000000cd jo LBB0_13 + 0x48, 0xff, 0xc1, //0x000000d3 incq %rcx + 0x83, 0xc7, 0xd0, //0x000000d6 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x000000d9 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x000000dc movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x000000df sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000000e3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000000e6 adcq $0, %rdi + 0x89, 0xfa, //0x000000ea movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000000ec andl $1, %edx + 0x48, 0xf7, 0xda, //0x000000ef negq %rdx + 0x48, 0x31, 0xd7, //0x000000f2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000000f5 jne LBB0_13 + 0x48, 0x85, 0xd2, //0x000000fb testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000000fe jns LBB0_8 + //0x00000104 LBB0_13 + 0x48, 0xff, 0xc9, //0x00000104 decq %rcx + 0x48, 0x89, 0x0e, //0x00000107 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x0000010a movq $-5, (%r8) + 0x5d, //0x00000111 popq %rbp + 0xc3, //0x00000112 retq + //0x00000113 LBB0_17 + 0x40, 0x80, 0xff, 0x65, //0x00000113 cmpb $101, %dil + 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x00000117 je LBB0_3 + 0x40, 0x80, 0xff, 0x45, //0x0000011d cmpb $69, %dil + 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x00000121 je LBB0_3 + 0x40, 0x80, 0xff, 0x2e, //0x00000127 cmpb $46, %dil + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x0000012b je LBB0_3 + //0x00000131 LBB0_20 + 0x48, 0x89, 0x0e, //0x00000131 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x00000134 movq %rax, $16(%r8) + 0x5d, //0x00000138 popq %rbp + 0xc3, //0x00000139 retq + //0x0000013a LBB0_16 + 0x48, 0xff, 0xc1, //0x0000013a incq %rcx + 0x48, 0x89, 0x0e, //0x0000013d movq %rcx, (%rsi) + 0x5d, //0x00000140 popq %rbp + 0xc3, //0x00000141 retq + 0x00, 0x00, //0x00000142 .p2align 2, 0x00 + //0x00000144 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000144 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa.go new file mode 100644 index 000000000..0032b7a95 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f32toa func(out *byte, val float32) (ret int) + +var S_f32toa uintptr + +//go:nosplit +func f32toa(out *byte, val float32) (ret int) { + return F_f32toa((*byte)(rt.NoEscape(unsafe.Pointer(out))), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_subr.go new file mode 100644 index 000000000..1081a4952 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_subr.go @@ -0,0 +1,44 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__f32toa = 32 +) + +const ( + _stack__f32toa = 48 +) + +const ( + _size__f32toa = 3392 +) + +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}, + } +) + +var _cfunc_f32toa = []loader.CFunc{ + {"_f32toa_entry", 0, _entry__f32toa, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_text_amd64.go new file mode 100644 index 000000000..2559830e9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/f32toa_text_amd64.go @@ -0,0 +1,964 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_f32toa = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000010 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000020 .p2align 4, 0x90 + //0x00000020 _f32toa + 0x55, //0x00000020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000021 movq %rsp, %rbp + 0x41, 0x57, //0x00000024 pushq %r15 + 0x41, 0x56, //0x00000026 pushq %r14 + 0x41, 0x55, //0x00000028 pushq %r13 + 0x41, 0x54, //0x0000002a pushq %r12 + 0x53, //0x0000002c pushq %rbx + 0xc5, 0xf9, 0x7e, 0xc0, //0x0000002d vmovd %xmm0, %eax + 0x89, 0xc1, //0x00000031 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00000033 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00000036 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00000039 cmpl $255, %ebx + 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x0000003f je LBB0_139 + 0xc6, 0x07, 0x2d, //0x00000045 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00000048 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x0000004b shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x0000004f leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00000053 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00000058 je LBB0_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x0000005e andl $8388607, %eax + 0x85, 0xdb, //0x00000063 testl %ebx, %ebx + 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x00000065 je LBB0_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x0000006b leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00000071 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00000078 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x0000007b cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x0000007e ja LBB0_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00000084 movl $150, %ecx + 0x29, 0xd9, //0x00000089 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000008b movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00000092 shlq %cl, %rdx + 0xf7, 0xd2, //0x00000095 notl %edx + 0x85, 0xf2, //0x00000097 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00000099 je LBB0_32 + //0x0000009f LBB0_5 + 0x41, 0x89, 0xf6, //0x0000009f movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x000000a2 andl $1, %r14d + 0x85, 0xc0, //0x000000a6 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x000000a8 sete %al + 0x83, 0xfb, 0x01, //0x000000ab cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x000000ae seta %cl + 0x20, 0xc1, //0x000000b1 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000000b3 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x000000b6 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x000000b9 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x000000bd leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x000000c1 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x000000c8 xorl %edx, %edx + 0x84, 0xc9, //0x000000ca testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x000000cc movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x000000d1 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x000000d4 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x000000d7 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x000000db imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x000000e2 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x000000e5 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x000000e8 movl $31, %edx + 0x44, 0x29, 0xda, //0x000000ed subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x000000f0 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0x36, 0x0d, 0x00, 0x00, //0x000000f3 leaq $3382(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x000000fa incb %cl + 0xd3, 0xe0, //0x000000fc shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x000000fe movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x00000102 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x00000105 shrq $32, %rax + 0x31, 0xdb, //0x00000109 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x0000010b cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x0000010e seta %bl + 0x41, 0xd3, 0xe2, //0x00000111 shll %cl, %r10d + 0x09, 0xd3, //0x00000114 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00000116 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00000119 mulq %r12 + 0x49, 0x89, 0xd2, //0x0000011c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x0000011f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00000123 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00000126 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00000129 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x0000012d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00000134 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00000136 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00000139 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x0000013c shrq $32, %rax + 0x31, 0xc9, //0x00000140 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00000142 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00000145 seta %cl + 0x09, 0xd1, //0x00000148 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x0000014a addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x0000014d subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00000150 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00000154 jb LBB0_12 + 0x44, 0x89, 0xd2, //0x0000015a movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000015d movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00000162 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000166 shrq $37, %rax + 0x41, 0x89, 0xde, //0x0000016a movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x0000016d leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00000175 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00000179 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x0000017c setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00000180 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00000185 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00000187 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x0000018a setbe %dl + 0x41, 0x38, 0xd4, //0x0000018d cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00000190 je LBB0_12 + 0x45, 0x31, 0xed, //0x00000196 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00000199 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x0000019c setbe %r13b + 0x41, 0x01, 0xc5, //0x000001a0 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x000001a3 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x000001a6 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x000001ad jae LBB0_18 + //0x000001b3 LBB0_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000001b3 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x000001b8 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x000001bc jb LBB0_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000001c2 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x000001c7 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x000001cb jb LBB0_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000001d1 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x000001d6 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x000001dd jb LBB0_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000001e3 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x000001ea movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x000001ef jmp LBB0_21 + //0x000001f4 LBB0_12 + 0x4d, 0x89, 0xd6, //0x000001f4 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x000001f7 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x000001fb movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x000001fe andl $-4, %esi + 0x39, 0xf3, //0x00000201 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x00000203 setbe %dl + 0x8d, 0x5e, 0x04, //0x00000206 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x00000209 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x0000020b setbe %al + 0x38, 0xc2, //0x0000020e cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00000210 je LBB0_15 + 0x45, 0x31, 0xed, //0x00000216 xorl %r13d, %r13d + 0x39, 0xcb, //0x00000219 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x0000021b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000021f jmp LBB0_17 + //0x00000224 LBB0_14 + 0x41, 0xc6, 0x00, 0x30, //0x00000224 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00000228 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x0000022b incl %r8d + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x0000022e jmp LBB0_138 + //0x00000233 LBB0_15 + 0x83, 0xce, 0x02, //0x00000233 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00000236 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x0000023c cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000023f ja LBB0_17 + 0x0f, 0x94, 0xc0, //0x00000245 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00000248 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x0000024c andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x0000024f movzbl %r10b, %r13d + //0x00000253 LBB0_17 + 0x45, 0x01, 0xf5, //0x00000253 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00000256 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x0000025d jb LBB0_8 + //0x00000263 LBB0_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00000263 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00000268 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000026f jb LBB0_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00000275 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x0000027a cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000281 jb LBB0_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00000287 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x0000028e movl $9, %eax + //0x00000293 LBB0_21 + 0x83, 0xd8, 0x00, //0x00000293 sbbl $0, %eax + //0x00000296 LBB0_22 + 0x46, 0x8d, 0x3c, 0x18, //0x00000296 leal (%rax,%r11), %r15d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x0000029a leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x0000029f cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000002a2 jb LBB0_26 + 0x89, 0xc0, //0x000002a8 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x000002aa leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000002af cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x000002b6 jb LBB0_30 + 0x44, 0x89, 0xe8, //0x000002bc movl %r13d, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000002bf movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd8, //0x000002c5 imulq %rax, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x000002c9 shrq $45, %r11 + 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x000002cd imull $-10000, %r11d, %eax + 0x44, 0x01, 0xe8, //0x000002d4 addl %r13d, %eax + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000002d7 je LBB0_62 + 0x89, 0xc1, //0x000002dd movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000002df imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000002e6 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x000002ea imull $100, %ecx, %edx + 0x29, 0xd0, //0x000002ed subl %edx, %eax + 0x48, 0x8d, 0x15, 0x6a, 0x0a, 0x00, 0x00, //0x000002ef leaq $2666(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x000002f6 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x000002fa movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x000002fe movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x00000302 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x00000306 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00000309 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x0000030d cmpl $100, %r11d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00000311 jae LBB0_64 + //0x00000317 LBB0_31 + 0x44, 0x89, 0xda, //0x00000317 movl %r11d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x0000031a jmp LBB0_66 + //0x0000031f LBB0_26 + 0x41, 0x89, 0xc4, //0x0000031f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00000322 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00000325 js LBB0_38 + 0x4b, 0x8d, 0x34, 0x20, //0x0000032b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x0000032f cmpl $10000, %r13d + 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00000336 jb LBB0_43 + 0x44, 0x89, 0xe8, //0x0000033c movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x0000033f movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00000344 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000348 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x0000034c imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00000352 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00000355 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000035c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00000360 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00000363 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0xf4, 0x09, 0x00, 0x00, //0x00000365 leaq $2548(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x0000036c movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00000370 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00000374 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00000378 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x0000037c movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00000380 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00000383 cmpl $100, %r13d + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00000387 jae LBB0_44 + //0x0000038d LBB0_29 + 0x44, 0x89, 0xe9, //0x0000038d movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00000390 jmp LBB0_46 + //0x00000395 LBB0_30 + 0x45, 0x31, 0xc9, //0x00000395 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00000398 movq %rbx, %rcx + 0x45, 0x89, 0xeb, //0x0000039b movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x0000039e cmpl $100, %r11d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x000003a2 jb LBB0_31 + //0x000003a8 LBB0_64 + 0x48, 0xff, 0xc9, //0x000003a8 decq %rcx + 0x4c, 0x8d, 0x15, 0xae, 0x09, 0x00, 0x00, //0x000003ab leaq $2478(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003b2 .p2align 4, 0x90 + //0x000003c0 LBB0_65 + 0x44, 0x89, 0xda, //0x000003c0 movl %r11d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x000003c3 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000003ca shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x000003ce imull $100, %edx, %eax + 0x44, 0x89, 0xde, //0x000003d1 movl %r11d, %esi + 0x29, 0xc6, //0x000003d4 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x000003d6 movzwl (%r10,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x000003db movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x000003df addq $-2, %rcx + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000003e3 cmpl $9999, %r11d + 0x41, 0x89, 0xd3, //0x000003ea movl %edx, %r11d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000003ed ja LBB0_65 + //0x000003f3 LBB0_66 + 0x49, 0x8d, 0x70, 0x01, //0x000003f3 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x000003f7 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x000003fa jb LBB0_68 + 0x89, 0xd0, //0x00000400 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x57, 0x09, 0x00, 0x00, //0x00000402 leaq $2391(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00000409 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000040c movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00000410 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00000414 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000418 jmp LBB0_69 + //0x0000041d LBB0_68 + 0x80, 0xc2, 0x30, //0x0000041d addb $48, %dl + 0x88, 0x16, //0x00000420 movb %dl, (%rsi) + //0x00000422 LBB0_69 + 0x4c, 0x29, 0xcb, //0x00000422 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000425 .p2align 4, 0x90 + //0x00000430 LBB0_70 + 0x80, 0x7b, 0xff, 0x30, //0x00000430 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000434 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000438 je LBB0_70 + 0x41, 0x88, 0x10, //0x0000043e movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00000441 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000445 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00000448 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000044b cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x0000044f jl LBB0_73 + 0xc6, 0x06, 0x2e, //0x00000455 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00000458 movq %rax, %rbx + //0x0000045b LBB0_73 + 0xc6, 0x03, 0x65, //0x0000045b movb $101, (%rbx) + 0x45, 0x85, 0xff, //0x0000045e testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00000461 jle LBB0_76 + 0x41, 0xff, 0xcf, //0x00000467 decl %r15d + 0xc6, 0x43, 0x01, 0x2b, //0x0000046a movb $43, $1(%rbx) + 0x44, 0x89, 0xf8, //0x0000046e movl %r15d, %eax + 0x83, 0xf8, 0x64, //0x00000471 cmpl $100, %eax + 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00000474 jl LBB0_77 + //0x0000047a LBB0_75 + 0x89, 0xc1, //0x0000047a movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000047c movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000481 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00000485 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00000489 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x0000048c leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x0000048f subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xc8, 0x08, 0x00, 0x00, //0x00000491 leaq $2248(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00000498 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x0000049c movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004a0 orb $48, %al + 0x88, 0x43, 0x04, //0x000004a2 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004a5 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x000004a9 movq %rbx, %r8 + 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x000004ac jmp LBB0_137 + //0x000004b1 LBB0_32 + 0xd3, 0xee, //0x000004b1 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000004b3 cmpl $100000, %esi + 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x000004b9 jb LBB0_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x000004bf movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x000004c4 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000004ca jb LBB0_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000004d0 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000004d5 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000004db jb LBB0_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x000004e1 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x000004e7 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x000004ec sbbq $0, %rax + //0x000004f0 LBB0_36 + 0x4c, 0x01, 0xc0, //0x000004f0 addq %r8, %rax + //0x000004f3 LBB0_37 + 0x89, 0xf1, //0x000004f3 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000004f5 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004fa imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000004fe shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000502 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x00000508 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x0000050a imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00000511 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00000515 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00000518 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x3f, 0x08, 0x00, 0x00, //0x0000051a leaq $2111(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00000521 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000525 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00000529 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x0000052d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00000531 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00000534 addq $-4, %rax + 0x89, 0xd6, //0x00000538 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x0000053a cmpl $100, %esi + 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x0000053d jae LBB0_56 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00000543 jmp LBB0_58 + //0x00000548 LBB0_38 + 0x45, 0x85, 0xff, //0x00000548 testl %r15d, %r15d + 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x0000054b jg LBB0_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00000551 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00000557 addq $2, %r8 + 0x45, 0x85, 0xff, //0x0000055b testl %r15d, %r15d + 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x0000055e jns LBB0_98 + 0x31, 0xf6, //0x00000564 xorl %esi, %esi + 0x41, 0x83, 0xff, 0x80, //0x00000566 cmpl $-128, %r15d + 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x0000056a ja LBB0_96 + 0x45, 0x89, 0xfa, //0x00000570 movl %r15d, %r10d + 0x41, 0xf7, 0xd2, //0x00000573 notl %r10d + 0x49, 0xff, 0xc2, //0x00000576 incq %r10 + 0x4c, 0x89, 0xd6, //0x00000579 movq %r10, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x0000057c andq $-128, %rsi + 0x48, 0x8d, 0x46, 0x80, //0x00000580 leaq $-128(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00000584 movq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00000587 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x0000058b incq %rcx + 0x41, 0x89, 0xcb, //0x0000058e movl %ecx, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00000591 andl $3, %r11d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00000595 cmpq $384, %rax + 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x0000059b jae LBB0_90 + 0x31, 0xdb, //0x000005a1 xorl %ebx, %ebx + 0xe9, 0xda, 0x03, 0x00, 0x00, //0x000005a3 jmp LBB0_92 + //0x000005a8 LBB0_76 + 0xc6, 0x43, 0x01, 0x2d, //0x000005a8 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005ac movl $1, %eax + 0x44, 0x29, 0xf8, //0x000005b1 subl %r15d, %eax + 0x83, 0xf8, 0x64, //0x000005b4 cmpl $100, %eax + 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x000005b7 jge LBB0_75 + //0x000005bd LBB0_77 + 0x83, 0xf8, 0x0a, //0x000005bd cmpl $10, %eax + 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x000005c0 jl LBB0_79 + 0x48, 0x98, //0x000005c6 cltq + 0x48, 0x8d, 0x0d, 0x91, 0x07, 0x00, 0x00, //0x000005c8 leaq $1937(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000005cf movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x000005d3 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x000005d7 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x000005db movq %rbx, %r8 + 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x000005de jmp LBB0_137 + //0x000005e3 LBB0_43 + 0x48, 0x89, 0xf0, //0x000005e3 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x000005e6 cmpl $100, %r13d + 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x000005ea jb LBB0_29 + //0x000005f0 LBB0_44 + 0x48, 0xff, 0xc8, //0x000005f0 decq %rax + 0x4c, 0x8d, 0x15, 0x66, 0x07, 0x00, 0x00, //0x000005f3 leaq $1894(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005fa .p2align 4, 0x90 + //0x00000600 LBB0_45 + 0x44, 0x89, 0xe9, //0x00000600 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00000603 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x0000060a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x0000060e imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00000611 movl %r13d, %edx + 0x29, 0xda, //0x00000614 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00000616 movzwl (%r10,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x0000061b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000061f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00000623 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x0000062a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000062d ja LBB0_45 + //0x00000633 LBB0_46 + 0x49, 0x63, 0xc7, //0x00000633 movslq %r15d, %rax + 0x83, 0xf9, 0x0a, //0x00000636 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000639 jb LBB0_48 + 0x89, 0xc9, //0x0000063f movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0x18, 0x07, 0x00, 0x00, //0x00000641 leaq $1816(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000648 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x0000064c movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00000650 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00000653 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000656 jl LBB0_49 + 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x0000065c jmp LBB0_137 + //0x00000661 LBB0_48 + 0x80, 0xc1, 0x30, //0x00000661 addb $48, %cl + 0x41, 0x88, 0x08, //0x00000664 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00000667 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x0000066a cmpq %rax, %r12 + 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x0000066d jge LBB0_137 + //0x00000673 LBB0_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00000673 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00000677 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x0000067c cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x0000067f cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00000683 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00000687 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x0000068a subq %rcx, %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000068d cmpq $128, %r11 + 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00000694 jb LBB0_87 + 0x4d, 0x89, 0xda, //0x0000069a movq %r11, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x0000069d andq $-128, %r10 + 0x49, 0x8d, 0x4a, 0x80, //0x000006a1 leaq $-128(%r10), %rcx + 0x48, 0x89, 0xcb, //0x000006a5 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x000006a8 shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x000006ac incq %rbx + 0x89, 0xda, //0x000006af movl %ebx, %edx + 0x83, 0xe2, 0x03, //0x000006b1 andl $3, %edx + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x000006b4 cmpq $384, %rcx + 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x000006bb jae LBB0_80 + 0x31, 0xc0, //0x000006c1 xorl %eax, %eax + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x000006c3 jmp LBB0_82 + //0x000006c8 LBB0_79 + 0x04, 0x30, //0x000006c8 addb $48, %al + 0x88, 0x43, 0x02, //0x000006ca movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x000006cd addq $3, %rbx + 0x49, 0x89, 0xd8, //0x000006d1 movq %rbx, %r8 + 0xe9, 0x57, 0x06, 0x00, 0x00, //0x000006d4 jmp LBB0_137 + //0x000006d9 LBB0_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000006d9 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x000006df cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x000006e2 jb LBB0_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000006e8 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x000006ee cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000006f1 jb LBB0_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000006f7 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x000006fd cmpl $1000, %esi + 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x00000703 jae LBB0_88 + //0x00000709 LBB0_55 + 0x4d, 0x01, 0xc1, //0x00000709 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x0000070c movq %r9, %rax + 0x83, 0xfe, 0x64, //0x0000070f cmpl $100, %esi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00000712 jb LBB0_58 + //0x00000718 LBB0_56 + 0x48, 0xff, 0xc8, //0x00000718 decq %rax + 0x4c, 0x8d, 0x15, 0x3e, 0x06, 0x00, 0x00, //0x0000071b leaq $1598(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000722 .p2align 4, 0x90 + //0x00000730 LBB0_57 + 0x89, 0xf3, //0x00000730 movl %esi, %ebx + 0x89, 0xf6, //0x00000732 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00000734 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000073b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x0000073f imull $100, %esi, %ecx + 0x89, 0xda, //0x00000742 movl %ebx, %edx + 0x29, 0xca, //0x00000744 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00000746 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x0000074b movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000074f addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00000753 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00000759 ja LBB0_57 + //0x0000075f LBB0_58 + 0x83, 0xfe, 0x0a, //0x0000075f cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000762 jb LBB0_60 + 0x89, 0xf0, //0x00000768 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0xef, 0x05, 0x00, 0x00, //0x0000076a leaq $1519(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000771 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00000775 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00000779 jmp LBB0_61 + //0x0000077e LBB0_60 + 0x40, 0x80, 0xc6, 0x30, //0x0000077e addb $48, %sil + 0x41, 0x88, 0x30, //0x00000782 movb %sil, (%r8) + //0x00000785 LBB0_61 + 0x41, 0x29, 0xf9, //0x00000785 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00000788 movl %r9d, %r8d + 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x0000078b jmp LBB0_138 + //0x00000790 LBB0_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000790 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00000796 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfb, 0x64, //0x0000079a cmpl $100, %r11d + 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x0000079e jb LBB0_31 + 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x000007a4 jmp LBB0_64 + //0x000007a9 LBB0_80 + 0x48, 0x29, 0xd3, //0x000007a9 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x000007ac leaq $480(%rdi,%rax), %rcx + 0x31, 0xc0, //0x000007b4 xorl %eax, %eax + 0xc5, 0xfe, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x000007b6 vmovdqu $-1982(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, //0x000007be .p2align 4, 0x90 + //0x000007c0 LBB0_81 + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x000007c0 vmovdqu %ymm0, $-480(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x000007c9 vmovdqu %ymm0, $-448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x000007d2 vmovdqu %ymm0, $-416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x000007db vmovdqu %ymm0, $-384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x000007e4 vmovdqu %ymm0, $-352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x000007ed vmovdqu %ymm0, $-320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x000007f6 vmovdqu %ymm0, $-288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x000007ff vmovdqu %ymm0, $-256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00000808 vmovdqu %ymm0, $-224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x00000811 vmovdqu %ymm0, $-192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x0000081a vmovdqu %ymm0, $-160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x00000823 vmovdqu %ymm0, $-128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x00000829 vmovdqu %ymm0, $-96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x0000082f vmovdqu %ymm0, $-64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x00000835 vmovdqu %ymm0, $-32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x0000083b vmovdqu %ymm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00000840 addq $512, %rax + 0x48, 0x83, 0xc3, 0xfc, //0x00000846 addq $-4, %rbx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x0000084a jne LBB0_81 + //0x00000850 LBB0_82 + 0x48, 0x85, 0xd2, //0x00000850 testq %rdx, %rdx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000853 je LBB0_85 + 0x4c, 0x01, 0xc8, //0x00000859 addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x0000085c addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x0000085f leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x00000864 negq %rdx + 0xc5, 0xfe, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00000867 vmovdqu $-2159(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, //0x0000086f .p2align 4, 0x90 + //0x00000870 LBB0_84 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000870 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000875 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x0000087a vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x0000087f vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000883 subq $-128, %rax + 0x48, 0xff, 0xc2, //0x00000887 incq %rdx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000088a jne LBB0_84 + //0x00000890 LBB0_85 + 0x4d, 0x39, 0xda, //0x00000890 cmpq %r11, %r10 + 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00000893 je LBB0_137 + 0x4c, 0x01, 0xd6, //0x00000899 addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, //0x0000089c .p2align 4, 0x90 + //0x000008a0 LBB0_87 + 0xc6, 0x06, 0x30, //0x000008a0 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x000008a3 incq %rsi + 0x4c, 0x39, 0xc6, //0x000008a6 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x000008a9 jb LBB0_87 + 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x000008af jmp LBB0_137 + //0x000008b4 LBB0_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000008b4 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x000008ba movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x000008bd sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x000008c1 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000008c5 cmpl $10000, %esi + 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x000008cb jae LBB0_37 + 0x49, 0x89, 0xc1, //0x000008d1 movq %rax, %r9 + 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x000008d4 jmp LBB0_56 + //0x000008d9 LBB0_90 + 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x000008d9 leaq $482(%r9,%rdi), %rax + 0x4d, 0x89, 0xde, //0x000008e1 movq %r11, %r14 + 0x49, 0x29, 0xce, //0x000008e4 subq %rcx, %r14 + 0x31, 0xdb, //0x000008e7 xorl %ebx, %ebx + 0xc5, 0xfe, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x000008e9 vmovdqu $-2289(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x000008f1 LBB0_91 + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x000008f1 vmovdqu %ymm0, $-480(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x000008fa vmovdqu %ymm0, $-448(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x00000903 vmovdqu %ymm0, $-416(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x0000090c vmovdqu %ymm0, $-384(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x00000915 vmovdqu %ymm0, $-352(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x0000091e vmovdqu %ymm0, $-320(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x00000927 vmovdqu %ymm0, $-288(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x00000930 vmovdqu %ymm0, $-256(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x00000939 vmovdqu %ymm0, $-224(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x00000942 vmovdqu %ymm0, $-192(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x0000094b vmovdqu %ymm0, $-160(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x00000954 vmovdqu %ymm0, $-128(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x0000095a vmovdqu %ymm0, $-96(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x00000960 vmovdqu %ymm0, $-64(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x00000966 vmovdqu %ymm0, $-32(%rax,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x0000096c vmovdqu %ymm0, (%rax,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00000971 addq $512, %rbx + 0x49, 0x83, 0xc6, 0x04, //0x00000978 addq $4, %r14 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000097c jne LBB0_91 + //0x00000982 LBB0_92 + 0x4d, 0x85, 0xdb, //0x00000982 testq %r11, %r11 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000985 je LBB0_95 + 0x4c, 0x01, 0xcb, //0x0000098b addq %r9, %rbx + 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x0000098e leaq $98(%rdi,%rbx), %rax + 0x49, 0xf7, 0xdb, //0x00000993 negq %r11 + 0xc5, 0xfe, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x00000996 vmovdqu $-2462(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x0000099e LBB0_94 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x0000099e vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x000009a3 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x000009a8 vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x000009ad vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x000009b1 subq $-128, %rax + 0x49, 0xff, 0xc3, //0x000009b5 incq %r11 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000009b8 jne LBB0_94 + //0x000009be LBB0_95 + 0x49, 0x01, 0xf0, //0x000009be addq %rsi, %r8 + 0x49, 0x39, 0xf2, //0x000009c1 cmpq %rsi, %r10 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000009c4 je LBB0_98 + //0x000009ca LBB0_96 + 0x44, 0x89, 0xf8, //0x000009ca movl %r15d, %eax + 0xf7, 0xd8, //0x000009cd negl %eax + 0x90, //0x000009cf .p2align 4, 0x90 + //0x000009d0 LBB0_97 + 0x41, 0xc6, 0x00, 0x30, //0x000009d0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000009d4 incq %r8 + 0xff, 0xc6, //0x000009d7 incl %esi + 0x39, 0xc6, //0x000009d9 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000009db jl LBB0_97 + //0x000009e1 LBB0_98 + 0x4b, 0x8d, 0x04, 0x20, //0x000009e1 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000009e5 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x000009ec jb LBB0_101 + 0x44, 0x89, 0xe9, //0x000009f2 movl %r13d, %ecx + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000009f5 movl $3518437209, %r10d + 0x4c, 0x0f, 0xaf, 0xd1, //0x000009fb imulq %rcx, %r10 + 0x49, 0xc1, 0xea, 0x2d, //0x000009ff shrq $45, %r10 + 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000a03 imull $-10000, %r10d, %ecx + 0x44, 0x01, 0xe9, //0x00000a0a addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x00000a0d je LBB0_103 + 0x89, 0xca, //0x00000a13 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00000a15 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00000a1c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00000a20 imull $100, %edx, %ebx + 0x29, 0xd9, //0x00000a23 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x34, 0x03, 0x00, 0x00, //0x00000a25 leaq $820(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00000a2c movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000a30 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00000a34 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00000a38 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x00000a3c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00000a3f addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00000a43 cmpl $100, %r10d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00000a47 jae LBB0_105 + //0x00000a4d LBB0_102 + 0x44, 0x89, 0xd1, //0x00000a4d movl %r10d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00000a50 jmp LBB0_107 + //0x00000a55 LBB0_101 + 0x45, 0x31, 0xc9, //0x00000a55 xorl %r9d, %r9d + 0x45, 0x89, 0xea, //0x00000a58 movl %r13d, %r10d + 0x41, 0x83, 0xfa, 0x64, //0x00000a5b cmpl $100, %r10d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x00000a5f jb LBB0_102 + //0x00000a65 LBB0_105 + 0x48, 0xff, 0xc8, //0x00000a65 decq %rax + 0x48, 0x8d, 0x15, 0xf1, 0x02, 0x00, 0x00, //0x00000a68 leaq $753(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x00000a6f .p2align 4, 0x90 + //0x00000a70 LBB0_106 + 0x44, 0x89, 0xd1, //0x00000a70 movl %r10d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00000a73 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00000a7a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00000a7e imull $100, %ecx, %ebx + 0x44, 0x89, 0xd6, //0x00000a81 movl %r10d, %esi + 0x29, 0xde, //0x00000a84 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x00000a86 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x00000a8a movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00000a8e addq $-2, %rax + 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00000a92 cmpl $9999, %r10d + 0x41, 0x89, 0xca, //0x00000a99 movl %ecx, %r10d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00000a9c ja LBB0_106 + //0x00000aa2 LBB0_107 + 0x83, 0xf9, 0x0a, //0x00000aa2 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000aa5 jb LBB0_109 + 0x89, 0xc8, //0x00000aab movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xac, 0x02, 0x00, 0x00, //0x00000aad leaq $684(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000ab4 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00000ab8 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000abc jmp LBB0_110 + //0x00000ac1 LBB0_109 + 0x80, 0xc1, 0x30, //0x00000ac1 addb $48, %cl + 0x41, 0x88, 0x08, //0x00000ac4 movb %cl, (%r8) + //0x00000ac7 LBB0_110 + 0x4d, 0x29, 0xcc, //0x00000ac7 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x00000aca leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x00000acf leaq $97(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00000ad4 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ad9 .p2align 4, 0x90 + //0x00000ae0 LBB0_111 + 0x48, 0xff, 0xca, //0x00000ae0 decq %rdx + 0x48, 0xff, 0xce, //0x00000ae3 decq %rsi + 0x48, 0xff, 0xc8, //0x00000ae6 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000ae9 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x00000aef leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000af4 je LBB0_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x00000afa leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xff, //0x00000afe testl %r15d, %r15d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00000b01 jle LBB0_116 + 0x44, 0x89, 0xc9, //0x00000b07 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x00000b0a subl %r8d, %ecx + 0x41, 0x39, 0xcf, //0x00000b0d cmpl %ecx, %r15d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00000b10 jge LBB0_117 + 0x43, 0x8d, 0x0c, 0x07, //0x00000b16 leal (%r15,%r8), %ecx + 0x41, 0x29, 0xc9, //0x00000b1a subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x00000b1d leaq $-1(%r9), %rcx + 0x45, 0x89, 0xca, //0x00000b21 movl %r9d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00000b24 andl $3, %r10d + 0x48, 0x83, 0xf9, 0x03, //0x00000b28 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x00000b2c jae LBB0_121 + 0x31, 0xc9, //0x00000b32 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00000b34 jmp LBB0_124 + //0x00000b39 LBB0_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00000b39 jle LBB0_116 + 0x45, 0x01, 0xc7, //0x00000b3f addl %r8d, %r15d + 0x45, 0x89, 0xce, //0x00000b42 movl %r9d, %r14d + 0x41, 0xf7, 0xd6, //0x00000b45 notl %r14d + 0x45, 0x01, 0xfe, //0x00000b48 addl %r15d, %r14d + 0x45, 0x31, 0xd2, //0x00000b4b xorl %r10d, %r10d + 0x4d, 0x89, 0xcb, //0x00000b4e movq %r9, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x00000b51 cmpl $126, %r14d + 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x00000b55 jbe LBB0_135 + 0x49, 0xff, 0xc6, //0x00000b5b incq %r14 + 0x4d, 0x89, 0xf2, //0x00000b5e movq %r14, %r10 + 0x49, 0x83, 0xe2, 0x80, //0x00000b61 andq $-128, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00000b65 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x00000b69 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xd9, //0x00000b6d movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x07, //0x00000b70 shrq $7, %rcx + 0x48, 0xff, 0xc1, //0x00000b74 incq %rcx + 0x41, 0x89, 0xcc, //0x00000b77 movl %ecx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x00000b7a andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x00000b7e cmpq $384, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x00000b85 jae LBB0_129 + 0x31, 0xc9, //0x00000b8b xorl %ecx, %ecx + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x00000b8d jmp LBB0_131 + //0x00000b92 LBB0_116 + 0x4d, 0x89, 0xc8, //0x00000b92 movq %r9, %r8 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x00000b95 jmp LBB0_137 + //0x00000b9a LBB0_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000b9a movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00000ba0 addq $-4, %rax + 0x41, 0x83, 0xfa, 0x64, //0x00000ba4 cmpl $100, %r10d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x00000ba8 jb LBB0_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x00000bae jmp LBB0_105 + //0x00000bb3 LBB0_121 + 0x4d, 0x89, 0xd3, //0x00000bb3 movq %r10, %r11 + 0x4d, 0x29, 0xcb, //0x00000bb6 subq %r9, %r11 + 0x31, 0xc9, //0x00000bb9 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bbb .p2align 4, 0x90 + //0x00000bc0 LBB0_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00000bc0 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00000bc4 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00000bc8 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000bcc addq $-4, %rcx + 0x49, 0x39, 0xcb, //0x00000bd0 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000bd3 jne LBB0_122 + 0x48, 0xf7, 0xd9, //0x00000bd9 negq %rcx + //0x00000bdc LBB0_124 + 0x4d, 0x85, 0xd2, //0x00000bdc testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00000bdf je LBB0_127 + 0x49, 0xf7, 0xda, //0x00000be5 negq %r10 + 0x4c, 0x89, 0xc2, //0x00000be8 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x00000beb subq %rcx, %rdx + 0x31, 0xc9, //0x00000bee xorl %ecx, %ecx + //0x00000bf0 .p2align 4, 0x90 + //0x00000bf0 LBB0_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00000bf0 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00000bf4 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00000bf9 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x00000bfe decq %rcx + 0x49, 0x39, 0xca, //0x00000c01 cmpq %rcx, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00000c04 jne LBB0_126 + //0x00000c0a LBB0_127 + 0x49, 0x63, 0xcf, //0x00000c0a movslq %r15d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x00000c0d movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00000c12 addq %rax, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00000c15 jmp LBB0_137 + //0x00000c1a LBB0_129 + 0x4c, 0x89, 0xe3, //0x00000c1a movq %r12, %rbx + 0x48, 0x29, 0xcb, //0x00000c1d subq %rcx, %rbx + 0x31, 0xc9, //0x00000c20 xorl %ecx, %ecx + 0xc5, 0xfe, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x00000c22 vmovdqu $-3114(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000c2a LBB0_130 + 0x49, 0x8d, 0x04, 0x08, //0x00000c2a leaq (%r8,%rcx), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x00000c2e vmovdqu %ymm0, (%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x00000c33 vmovdqu %ymm0, $32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x00000c39 vmovdqu %ymm0, $64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x00000c3f vmovdqu %ymm0, $96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x00000c45 vmovdqu %ymm0, $128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x00000c4e vmovdqu %ymm0, $160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x00000c57 vmovdqu %ymm0, $192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x00000c60 vmovdqu %ymm0, $224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x00000c69 vmovdqu %ymm0, $256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x00000c72 vmovdqu %ymm0, $288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x00000c7b vmovdqu %ymm0, $320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x00000c84 vmovdqu %ymm0, $352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x00000c8d vmovdqu %ymm0, $384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x00000c96 vmovdqu %ymm0, $416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x00000c9f vmovdqu %ymm0, $448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x00000ca8 vmovdqu %ymm0, $480(%rsi,%rax) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00000cb1 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x00000cb8 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x00000cbc jne LBB0_130 + //0x00000cc2 LBB0_131 + 0x49, 0x01, 0xf3, //0x00000cc2 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00000cc5 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00000cc8 je LBB0_134 + 0x49, 0x01, 0xc8, //0x00000cce addq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x00000cd1 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00000cd4 negq %r12 + 0xc5, 0xfe, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00000cd7 vmovdqu $-3295(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000cdf LBB0_133 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x00000cdf vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00000ce5 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x00000ceb vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00000cf1 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x00000cf6 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x00000cfa incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00000cfd jne LBB0_133 + //0x00000d03 LBB0_134 + 0x4d, 0x89, 0xd8, //0x00000d03 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x00000d06 cmpq %r10, %r14 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000d09 je LBB0_137 + //0x00000d0f LBB0_135 + 0x45, 0x29, 0xd7, //0x00000d0f subl %r10d, %r15d + 0x45, 0x29, 0xcf, //0x00000d12 subl %r9d, %r15d + 0x4d, 0x89, 0xd8, //0x00000d15 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d18 .p2align 4, 0x90 + //0x00000d20 LBB0_136 + 0x41, 0xc6, 0x00, 0x30, //0x00000d20 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00000d24 incq %r8 + 0x41, 0xff, 0xcf, //0x00000d27 decl %r15d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00000d2a jne LBB0_136 + //0x00000d30 LBB0_137 + 0x41, 0x29, 0xf8, //0x00000d30 subl %edi, %r8d + //0x00000d33 LBB0_138 + 0x44, 0x89, 0xc0, //0x00000d33 movl %r8d, %eax + 0x5b, //0x00000d36 popq %rbx + 0x41, 0x5c, //0x00000d37 popq %r12 + 0x41, 0x5d, //0x00000d39 popq %r13 + 0x41, 0x5e, //0x00000d3b popq %r14 + 0x41, 0x5f, //0x00000d3d popq %r15 + 0x5d, //0x00000d3f popq %rbp + 0xc5, 0xf8, 0x77, //0x00000d40 vzeroupper + 0xc3, //0x00000d43 retq + //0x00000d44 LBB0_139 + 0x45, 0x31, 0xc0, //0x00000d44 xorl %r8d, %r8d + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x00000d47 jmp LBB0_138 + //0x00000d4c LBB0_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x00000d4c movl $-149, %r15d + 0x89, 0xc6, //0x00000d52 movl %eax, %esi + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x00000d54 jmp LBB0_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d59 .p2align 4, 0x00 + //0x00000d60 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000d60 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000d70 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000d80 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000d90 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000da0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000db0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000dc0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000dd0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000de0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00000df0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x00000e00 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00000e10 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00000e20 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e28 .p2align 4, 0x00 + //0x00000e30 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00000e30 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00000e38 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00000e40 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00000e48 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00000e50 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00000e58 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00000e60 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00000e68 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00000e70 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00000e78 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00000e80 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00000e88 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00000e90 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00000e98 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00000ea0 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00000ea8 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00000eb0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00000eb8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00000ec0 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00000ec8 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00000ed0 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00000ed8 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00000ee0 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ee8 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00000ef0 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00000ef8 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00000f00 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00000f08 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00000f10 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00000f18 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000f20 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000f28 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00000f30 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00000f38 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00000f40 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00000f48 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00000f50 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00000f58 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00000f60 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00000f68 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00000f70 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00000f78 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00000f80 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00000f88 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00000f90 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00000f98 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00000fa0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00000fa8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00000fb0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00000fb8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00000fc0 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00000fc8 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00000fd0 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00000fd8 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00000fe0 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00000fe8 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00000ff0 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00000ff8 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00001000 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00001008 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00001010 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00001018 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00001020 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00001028 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00001030 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00001038 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00001040 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00001048 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00001050 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00001058 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00001060 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00001068 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00001070 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00001078 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00001080 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00001088 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00001090 .quad -5522047002568494196 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa.go new file mode 100644 index 000000000..ffd22bce2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f64toa func(out unsafe.Pointer, val float64) (ret int) + +var S_f64toa uintptr + +//go:nosplit +func f64toa(out *byte, val float64) (ret int) { + return F_f64toa((rt.NoEscape(unsafe.Pointer(out))), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_subr.go new file mode 100644 index 000000000..ee33b5f88 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__f64toa = 32 +) + +const ( + _stack__f64toa = 56 +) + +const ( + _size__f64toa = 4704 +) + +var ( + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4614, 56}, + {4618, 48}, + {4619, 40}, + {4621, 32}, + {4623, 24}, + {4625, 16}, + {4627, 8}, + {4631, 0}, + {4694, 56}, + } +) + +var _cfunc_f64toa = []loader.CFunc{ + {"_f64toa_entry", 0, _entry__f64toa, 0, nil}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_text_amd64.go new file mode 100644 index 000000000..0721610ea --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/f64toa_text_amd64.go @@ -0,0 +1,2402 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_f64toa = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000010 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000020 .p2align 4, 0x90 + //0x00000020 _f64toa + 0x55, //0x00000020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000021 movq %rsp, %rbp + 0x41, 0x57, //0x00000024 pushq %r15 + 0x41, 0x56, //0x00000026 pushq %r14 + 0x41, 0x55, //0x00000028 pushq %r13 + 0x41, 0x54, //0x0000002a pushq %r12 + 0x53, //0x0000002c pushq %rbx + 0x50, //0x0000002d pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000002e vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000033 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000036 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000003a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000003f cmpl $2047, %eax + 0x0f, 0x84, 0xee, 0x11, 0x00, 0x00, //0x00000044 je LBB0_165 + 0xc6, 0x07, 0x2d, //0x0000004a movb $45, (%rdi) + 0x48, 0x89, 0xd6, //0x0000004d movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x3f, //0x00000050 shrq $63, %rsi + 0x4c, 0x8d, 0x04, 0x37, //0x00000054 leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x00000058 leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000060 testq %rcx, %rcx + 0x0f, 0x84, 0x7e, 0x02, 0x00, 0x00, //0x00000063 je LBB0_6 + 0x49, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000069 movabsq $4503599627370495, %r11 + 0x4c, 0x21, 0xda, //0x00000073 andq %r11, %rdx + 0x85, 0xc0, //0x00000076 testl %eax, %eax + 0x0f, 0x84, 0xc2, 0x11, 0x00, 0x00, //0x00000078 je LBB0_166 + 0x49, 0xff, 0xc3, //0x0000007e incq %r11 + 0x49, 0x09, 0xd3, //0x00000081 orq %rdx, %r11 + 0x44, 0x8d, 0x90, 0xcd, 0xfb, 0xff, 0xff, //0x00000084 leal $-1075(%rax), %r10d + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000008b leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000091 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000094 ja LBB0_7 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000009a movl $1075, %ecx + 0x29, 0xc1, //0x0000009f subl %eax, %ecx + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000000a1 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x000000a8 shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x000000ab notq %rbx + 0x49, 0x85, 0xdb, //0x000000ae testq %rbx, %r11 + 0x0f, 0x84, 0x43, 0x06, 0x00, 0x00, //0x000000b1 je LBB0_42 + //0x000000b7 LBB0_7 + 0x48, 0x89, 0x75, 0xd0, //0x000000b7 movq %rsi, $-48(%rbp) + //0x000000bb LBB0_8 + 0x48, 0x85, 0xd2, //0x000000bb testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x000000be sete %cl + 0x83, 0xf8, 0x01, //0x000000c1 cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x000000c4 seta %al + 0x20, 0xc8, //0x000000c7 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x000000c9 movzbl %al, %eax + 0x4e, 0x8d, 0x4c, 0x98, 0xfe, //0x000000cc leaq $-2(%rax,%r11,4), %r9 + 0x45, 0x69, 0xfa, 0x13, 0x44, 0x13, 0x00, //0x000000d1 imull $1262611, %r10d, %r15d + 0x31, 0xc9, //0x000000d8 xorl %ecx, %ecx + 0x84, 0xc0, //0x000000da testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x000000dc movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x000000e1 cmovel %ecx, %eax + 0x41, 0x29, 0xc7, //0x000000e4 subl %eax, %r15d + 0x41, 0xc1, 0xff, 0x16, //0x000000e7 sarl $22, %r15d + 0x41, 0x69, 0xcf, 0xb1, 0x6c, 0xe5, 0xff, //0x000000eb imull $-1741647, %r15d, %ecx + 0xc1, 0xe9, 0x13, //0x000000f2 shrl $19, %ecx + 0x44, 0x01, 0xd1, //0x000000f5 addl %r10d, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x000000f8 movl $292, %eax + 0x44, 0x29, 0xf8, //0x000000fd subl %r15d, %eax + 0x48, 0x98, //0x00000100 cltq + 0x48, 0xc1, 0xe0, 0x04, //0x00000102 shlq $4, %rax + 0x48, 0x8d, 0x15, 0x43, 0x12, 0x00, 0x00, //0x00000106 leaq $4675(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x24, 0x10, //0x0000010d movq (%rax,%rdx), %r12 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x00000111 movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000116 incb %cl + 0x49, 0xd3, 0xe1, //0x00000118 shlq %cl, %r9 + 0x4c, 0x89, 0xc8, //0x0000011b movq %r9, %rax + 0x49, 0xf7, 0xe5, //0x0000011e mulq %r13 + 0x49, 0x89, 0xd2, //0x00000121 movq %rdx, %r10 + 0x4c, 0x89, 0xc8, //0x00000124 movq %r9, %rax + 0x49, 0xf7, 0xe4, //0x00000127 mulq %r12 + 0x4a, 0x8d, 0x34, 0x9d, 0x00, 0x00, 0x00, 0x00, //0x0000012a leaq (,%r11,4), %rsi + 0x4c, 0x01, 0xd0, //0x00000132 addq %r10, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000135 adcq $0, %rdx + 0x31, 0xdb, //0x00000139 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x0000013b cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x0000013f seta %bl + 0x48, 0x09, 0xd3, //0x00000142 orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x00000145 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000148 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000014b mulq %r13 + 0x49, 0x89, 0xd2, //0x0000014e movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x00000151 movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000154 mulq %r12 + 0x49, 0x89, 0xd1, //0x00000157 movq %rdx, %r9 + 0x4a, 0x8d, 0x34, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x0000015a leaq $2(,%r11,4), %rsi + 0x4c, 0x01, 0xd0, //0x00000162 addq %r10, %rax + 0x49, 0x83, 0xd1, 0x00, //0x00000165 adcq $0, %r9 + 0x45, 0x31, 0xd2, //0x00000169 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x0000016c cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x00000170 seta %r10b + 0x4d, 0x09, 0xca, //0x00000174 orq %r9, %r10 + 0x48, 0xd3, 0xe6, //0x00000177 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x0000017a movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000017d mulq %r13 + 0x48, 0x89, 0xd1, //0x00000180 movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000183 movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000186 mulq %r12 + 0x48, 0x01, 0xc8, //0x00000189 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x0000018c adcq $0, %rdx + 0x31, 0xf6, //0x00000190 xorl %esi, %esi + 0x48, 0x83, 0xf8, 0x01, //0x00000192 cmpq $1, %rax + 0x40, 0x0f, 0x97, 0xc6, //0x00000196 seta %sil + 0x48, 0x09, 0xd6, //0x0000019a orq %rdx, %rsi + 0x41, 0x83, 0xe3, 0x01, //0x0000019d andl $1, %r11d + 0x4c, 0x01, 0xdb, //0x000001a1 addq %r11, %rbx + 0x4c, 0x29, 0xde, //0x000001a4 subq %r11, %rsi + 0x49, 0x83, 0xfa, 0x28, //0x000001a7 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x000001ab jb LBB0_20 + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000001b1 movabsq $-3689348814741910323, %rcx + 0x4c, 0x89, 0xc8, //0x000001bb movq %r9, %rax + 0x48, 0xf7, 0xe1, //0x000001be mulq %rcx + 0x49, 0x89, 0xd6, //0x000001c1 movq %rdx, %r14 + 0x49, 0xc1, 0xee, 0x05, //0x000001c4 shrq $5, %r14 + 0x4a, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x000001c8 leaq (,%r14,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000001d0 leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x000001d4 cmpq %rdx, %rbx + 0x41, 0x0f, 0x96, 0xc3, //0x000001d7 setbe %r11b + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x000001db leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xf0, //0x000001e0 cmpq %rsi, %rax + 0x0f, 0x96, 0xc2, //0x000001e3 setbe %dl + 0x41, 0x38, 0xd3, //0x000001e6 cmpb %dl, %r11b + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000001e9 je LBB0_20 + 0x31, 0xd2, //0x000001ef xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x000001f1 cmpq %rsi, %rax + 0x0f, 0x96, 0xc2, //0x000001f4 setbe %dl + 0x49, 0x01, 0xd6, //0x000001f7 addq %rdx, %r14 + 0x41, 0xff, 0xc7, //0x000001fa incl %r15d + 0x49, 0xba, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000001fd movabsq $8589934464, %r10 + 0x49, 0x8d, 0x82, 0x7f, 0xe4, 0x0b, 0x54, //0x00000207 leaq $1410065535(%r10), %rax + 0x49, 0x39, 0xc6, //0x0000020e cmpq %rax, %r14 + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00000211 ja LBB0_25 + //0x00000217 LBB0_11 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000217 movl $1, %eax + 0x49, 0x83, 0xfe, 0x0a, //0x0000021c cmpq $10, %r14 + 0x0f, 0x82, 0x9e, 0x01, 0x00, 0x00, //0x00000220 jb LBB0_32 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000226 movl $2, %eax + 0x49, 0x83, 0xfe, 0x64, //0x0000022b cmpq $100, %r14 + 0x0f, 0x82, 0x8f, 0x01, 0x00, 0x00, //0x0000022f jb LBB0_32 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00000235 movl $3, %eax + 0x49, 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000023a cmpq $1000, %r14 + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x00000241 jb LBB0_32 + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00000247 movl $4, %eax + 0x49, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000024c cmpq $10000, %r14 + 0x0f, 0x82, 0x6b, 0x01, 0x00, 0x00, //0x00000253 jb LBB0_32 + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00000259 movl $5, %eax + 0x49, 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000025e cmpq $100000, %r14 + 0x0f, 0x82, 0x59, 0x01, 0x00, 0x00, //0x00000265 jb LBB0_32 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x0000026b movl $6, %eax + 0x49, 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000270 cmpq $1000000, %r14 + 0x0f, 0x82, 0x47, 0x01, 0x00, 0x00, //0x00000277 jb LBB0_32 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x0000027d movl $7, %eax + 0x49, 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000282 cmpq $10000000, %r14 + 0x0f, 0x82, 0x35, 0x01, 0x00, 0x00, //0x00000289 jb LBB0_32 + 0xb8, 0x08, 0x00, 0x00, 0x00, //0x0000028f movl $8, %eax + 0x49, 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00000294 cmpq $100000000, %r14 + 0x0f, 0x82, 0x23, 0x01, 0x00, 0x00, //0x0000029b jb LBB0_32 + 0x49, 0x81, 0xfe, 0x00, 0xca, 0x9a, 0x3b, //0x000002a1 cmpq $1000000000, %r14 + 0xb8, 0x0a, 0x00, 0x00, 0x00, //0x000002a8 movl $10, %eax + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x000002ad jmp LBB0_31 + //0x000002b2 LBB0_20 + 0x4d, 0x89, 0xcb, //0x000002b2 movq %r9, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x000002b5 shrq $2, %r11 + 0x4c, 0x89, 0xca, //0x000002b9 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x000002bc andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x000002c0 cmpq %rdx, %rbx + 0x0f, 0x96, 0xc1, //0x000002c3 setbe %cl + 0x48, 0x8d, 0x5a, 0x04, //0x000002c6 leaq $4(%rdx), %rbx + 0x48, 0x39, 0xf3, //0x000002ca cmpq %rsi, %rbx + 0x0f, 0x96, 0xc0, //0x000002cd setbe %al + 0x38, 0xc1, //0x000002d0 cmpb %al, %cl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000002d2 je LBB0_22 + 0x45, 0x31, 0xf6, //0x000002d8 xorl %r14d, %r14d + 0x48, 0x39, 0xf3, //0x000002db cmpq %rsi, %rbx + 0x41, 0x0f, 0x96, 0xc6, //0x000002de setbe %r14b + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000002e2 jmp LBB0_24 + //0x000002e7 LBB0_6 + 0x41, 0xc6, 0x00, 0x30, //0x000002e7 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x000002eb subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x000002ee incl %r8d + 0xe9, 0x2d, 0x0f, 0x00, 0x00, //0x000002f1 jmp LBB0_164 + //0x000002f6 LBB0_22 + 0x48, 0x83, 0xca, 0x02, //0x000002f6 orq $2, %rdx + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x000002fa movl $1, %r14d + 0x49, 0x39, 0xd2, //0x00000300 cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00000303 ja LBB0_24 + 0x0f, 0x94, 0xc0, //0x00000309 sete %al + 0x41, 0xc0, 0xe9, 0x02, //0x0000030c shrb $2, %r9b + 0x41, 0x20, 0xc1, //0x00000310 andb %al, %r9b + 0x45, 0x0f, 0xb6, 0xf1, //0x00000313 movzbl %r9b, %r14d + //0x00000317 LBB0_24 + 0x4d, 0x01, 0xde, //0x00000317 addq %r11, %r14 + 0x49, 0xba, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000031a movabsq $8589934464, %r10 + 0x49, 0x8d, 0x82, 0x7f, 0xe4, 0x0b, 0x54, //0x00000324 leaq $1410065535(%r10), %rax + 0x49, 0x39, 0xc6, //0x0000032b cmpq %rax, %r14 + 0x0f, 0x86, 0xe3, 0xfe, 0xff, 0xff, //0x0000032e jbe LBB0_11 + //0x00000334 LBB0_25 + 0x4c, 0x89, 0xf2, //0x00000334 movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0b, //0x00000337 shrq $11, %rdx + 0xb8, 0x0b, 0x00, 0x00, 0x00, //0x0000033b movl $11, %eax + 0x48, 0x81, 0xfa, 0xdd, 0x0e, 0xe9, 0x02, //0x00000340 cmpq $48828125, %rdx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00000347 jb LBB0_32 + 0x4c, 0x89, 0xf2, //0x0000034d movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0c, //0x00000350 shrq $12, %rdx + 0xb8, 0x0c, 0x00, 0x00, 0x00, //0x00000354 movl $12, %eax + 0x48, 0x81, 0xfa, 0x51, 0x4a, 0x8d, 0x0e, //0x00000359 cmpq $244140625, %rdx + 0x0f, 0x82, 0x5e, 0x00, 0x00, 0x00, //0x00000360 jb LBB0_32 + 0x4c, 0x89, 0xf2, //0x00000366 movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0d, //0x00000369 shrq $13, %rdx + 0xb8, 0x0d, 0x00, 0x00, 0x00, //0x0000036d movl $13, %eax + 0x48, 0x81, 0xfa, 0x95, 0x73, 0xc2, 0x48, //0x00000372 cmpq $1220703125, %rdx + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000379 jb LBB0_32 + 0xb8, 0x0e, 0x00, 0x00, 0x00, //0x0000037f movl $14, %eax + 0x48, 0xba, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000384 movabsq $100000000000000, %rdx + 0x49, 0x39, 0xd6, //0x0000038e cmpq %rdx, %r14 + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000391 jb LBB0_32 + 0xb8, 0x0f, 0x00, 0x00, 0x00, //0x00000397 movl $15, %eax + 0x48, 0xba, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x0000039c movabsq $1000000000000000, %rdx + 0x49, 0x39, 0xd6, //0x000003a6 cmpq %rdx, %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000003a9 jb LBB0_32 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000003af movabsq $10000000000000000, %rax + 0x49, 0x39, 0xc6, //0x000003b9 cmpq %rax, %r14 + 0xb8, 0x11, 0x00, 0x00, 0x00, //0x000003bc movl $17, %eax + //0x000003c1 LBB0_31 + 0x83, 0xd8, 0x00, //0x000003c1 sbbl $0, %eax + //0x000003c4 LBB0_32 + 0x46, 0x8d, 0x0c, 0x38, //0x000003c4 leal (%rax,%r15), %r9d + 0x42, 0x8d, 0x54, 0x38, 0x05, //0x000003c8 leal $5(%rax,%r15), %edx + 0x41, 0x89, 0xc4, //0x000003cd movl %eax, %r12d + 0x83, 0xfa, 0x1b, //0x000003d0 cmpl $27, %edx + 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x000003d3 jb LBB0_36 + 0x4f, 0x8d, 0x7c, 0x20, 0x01, //0x000003d9 leaq $1(%r8,%r12), %r15 + 0x4c, 0x89, 0xf0, //0x000003de movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000003e1 shrq $32, %rax + 0x0f, 0x84, 0xa8, 0x01, 0x00, 0x00, //0x000003e5 je LBB0_40 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000003eb movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x000003f5 movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x000003f8 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000003fb shrq $26, %rdx + 0x69, 0xda, 0x00, 0x1f, 0x0a, 0xfa, //0x000003ff imull $-100000000, %edx, %ebx + 0x44, 0x01, 0xf3, //0x00000405 addl %r14d, %ebx + 0x0f, 0x84, 0xc6, 0x07, 0x00, 0x00, //0x00000408 je LBB0_86 + 0x89, 0xd8, //0x0000040e movl %ebx, %eax + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000410 movl $3518437209, %r10d + 0x49, 0x0f, 0xaf, 0xc2, //0x00000416 imulq %r10, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x0000041a shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x0000041e imull $10000, %eax, %ecx + 0x29, 0xcb, //0x00000424 subl %ecx, %ebx + 0x48, 0x89, 0xc1, //0x00000426 movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xca, //0x00000429 imulq %r10, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000042d shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x00000431 imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000437 subl %ecx, %eax + 0x0f, 0xb7, 0xcb, //0x00000439 movzwl %bx, %ecx + 0xc1, 0xe9, 0x02, //0x0000043c shrl $2, %ecx + 0x44, 0x69, 0xd1, 0x7b, 0x14, 0x00, 0x00, //0x0000043f imull $5243, %ecx, %r10d + 0x41, 0xc1, 0xea, 0x11, //0x00000446 shrl $17, %r10d + 0x41, 0x6b, 0xca, 0x64, //0x0000044a imull $100, %r10d, %ecx + 0x29, 0xcb, //0x0000044e subl %ecx, %ebx + 0x44, 0x0f, 0xb7, 0xdb, //0x00000450 movzwl %bx, %r11d + 0x0f, 0xb7, 0xd8, //0x00000454 movzwl %ax, %ebx + 0xc1, 0xeb, 0x02, //0x00000457 shrl $2, %ebx + 0x69, 0xdb, 0x7b, 0x14, 0x00, 0x00, //0x0000045a imull $5243, %ebx, %ebx + 0xc1, 0xeb, 0x11, //0x00000460 shrl $17, %ebx + 0x6b, 0xcb, 0x64, //0x00000463 imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00000466 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf0, //0x00000468 movzwl %ax, %r14d + 0x48, 0x8d, 0x0d, 0x0d, 0x0e, 0x00, 0x00, //0x0000046c leaq $3597(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000473 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfe, //0x00000478 movw %ax, $-2(%r15) + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x0000047d movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00000482 movw %ax, $-4(%r15) + 0x42, 0x0f, 0xb7, 0x04, 0x71, //0x00000487 movzwl (%rcx,%r14,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfa, //0x0000048c movw %ax, $-6(%r15) + 0x0f, 0xb7, 0x04, 0x59, //0x00000491 movzwl (%rcx,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xf8, //0x00000495 movw %ax, $-8(%r15) + 0x45, 0x31, 0xd2, //0x0000049a xorl %r10d, %r10d + 0x4d, 0x8d, 0x67, 0xf8, //0x0000049d leaq $-8(%r15), %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x000004a1 cmpl $10000, %edx + 0x0f, 0x83, 0xfb, 0x00, 0x00, 0x00, //0x000004a7 jae LBB0_88 + //0x000004ad LBB0_41 + 0x89, 0xd3, //0x000004ad movl %edx, %ebx + 0xe9, 0x56, 0x01, 0x00, 0x00, //0x000004af jmp LBB0_90 + //0x000004b4 LBB0_36 + 0x45, 0x85, 0xff, //0x000004b4 testl %r15d, %r15d + 0x0f, 0x88, 0x61, 0x04, 0x00, 0x00, //0x000004b7 js LBB0_57 + 0x4b, 0x8d, 0x1c, 0x20, //0x000004bd leaq (%r8,%r12), %rbx + 0x4c, 0x89, 0xf0, //0x000004c1 movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000004c4 shrq $32, %rax + 0x0f, 0x84, 0xed, 0x04, 0x00, 0x00, //0x000004c8 je LBB0_62 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000004ce movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x000004d8 movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x000004db mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000004de shrq $26, %rdx + 0x69, 0xf2, 0x00, 0x1f, 0x0a, 0xfa, //0x000004e2 imull $-100000000, %edx, %esi + 0x44, 0x01, 0xf6, //0x000004e8 addl %r14d, %esi + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000004eb movl $3518437209, %r10d + 0x48, 0x89, 0xf0, //0x000004f1 movq %rsi, %rax + 0x49, 0x0f, 0xaf, 0xc2, //0x000004f4 imulq %r10, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000004f8 shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x000004fc imull $10000, %eax, %ecx + 0x29, 0xce, //0x00000502 subl %ecx, %esi + 0x48, 0x89, 0xc1, //0x00000504 movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xca, //0x00000507 imulq %r10, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000050b shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x0000050f imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000515 subl %ecx, %eax + 0x0f, 0xb7, 0xce, //0x00000517 movzwl %si, %ecx + 0xc1, 0xe9, 0x02, //0x0000051a shrl $2, %ecx + 0x44, 0x69, 0xd1, 0x7b, 0x14, 0x00, 0x00, //0x0000051d imull $5243, %ecx, %r10d + 0x41, 0xc1, 0xea, 0x11, //0x00000524 shrl $17, %r10d + 0x41, 0x6b, 0xca, 0x64, //0x00000528 imull $100, %r10d, %ecx + 0x29, 0xce, //0x0000052c subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xde, //0x0000052e movzwl %si, %r11d + 0x0f, 0xb7, 0xf0, //0x00000532 movzwl %ax, %esi + 0xc1, 0xee, 0x02, //0x00000535 shrl $2, %esi + 0x69, 0xf6, 0x7b, 0x14, 0x00, 0x00, //0x00000538 imull $5243, %esi, %esi + 0xc1, 0xee, 0x11, //0x0000053e shrl $17, %esi + 0x6b, 0xce, 0x64, //0x00000541 imull $100, %esi, %ecx + 0x29, 0xc8, //0x00000544 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf8, //0x00000546 movzwl %ax, %r15d + 0x48, 0x8d, 0x0d, 0x2f, 0x0d, 0x00, 0x00, //0x0000054a leaq $3375(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000551 movzwl (%rcx,%r11,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00000556 movw %ax, $-2(%rbx) + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x0000055a movzwl (%rcx,%r10,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x0000055f movw %ax, $-4(%rbx) + 0x42, 0x0f, 0xb7, 0x04, 0x79, //0x00000563 movzwl (%rcx,%r15,2), %eax + 0x66, 0x89, 0x43, 0xfa, //0x00000568 movw %ax, $-6(%rbx) + 0x48, 0x8d, 0x43, 0xf8, //0x0000056c leaq $-8(%rbx), %rax + 0x0f, 0xb7, 0x0c, 0x71, //0x00000570 movzwl (%rcx,%rsi,2), %ecx + 0x66, 0x89, 0x4b, 0xf8, //0x00000574 movw %cx, $-8(%rbx) + 0x41, 0x89, 0xd6, //0x00000578 movl %edx, %r14d + 0x49, 0x89, 0xff, //0x0000057b movq %rdi, %r15 + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000057e cmpl $10000, %r14d + 0x0f, 0x83, 0x43, 0x04, 0x00, 0x00, //0x00000585 jae LBB0_63 + //0x0000058b LBB0_39 + 0x44, 0x89, 0xf2, //0x0000058b movl %r14d, %edx + 0xe9, 0x97, 0x04, 0x00, 0x00, //0x0000058e jmp LBB0_65 + //0x00000593 LBB0_40 + 0x45, 0x31, 0xd2, //0x00000593 xorl %r10d, %r10d + 0x44, 0x89, 0xf2, //0x00000596 movl %r14d, %edx + 0x4d, 0x89, 0xfc, //0x00000599 movq %r15, %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x0000059c cmpl $10000, %edx + 0x0f, 0x82, 0x05, 0xff, 0xff, 0xff, //0x000005a2 jb LBB0_41 + //0x000005a8 LBB0_88 + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000005a8 movl $3518437209, %r11d + 0x4c, 0x8d, 0x35, 0xcb, 0x0c, 0x00, 0x00, //0x000005ae leaq $3275(%rip), %r14 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005b5 .p2align 4, 0x90 + //0x000005c0 LBB0_89 + 0x89, 0xd3, //0x000005c0 movl %edx, %ebx + 0x49, 0x0f, 0xaf, 0xdb, //0x000005c2 imulq %r11, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x000005c6 shrq $45, %rbx + 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x000005ca imull $-10000, %ebx, %eax + 0x01, 0xd0, //0x000005d0 addl %edx, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x000005d2 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x000005d9 shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x000005dd imull $100, %esi, %ecx + 0x29, 0xc8, //0x000005e0 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x46, //0x000005e2 movzwl (%r14,%rax,2), %eax + 0x66, 0x41, 0x89, 0x44, 0x24, 0xfe, //0x000005e7 movw %ax, $-2(%r12) + 0x41, 0x0f, 0xb7, 0x04, 0x76, //0x000005ed movzwl (%r14,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x44, 0x24, 0xfc, //0x000005f2 movw %ax, $-4(%r12) + 0x49, 0x83, 0xc4, 0xfc, //0x000005f8 addq $-4, %r12 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x000005fc cmpl $99999999, %edx + 0x89, 0xda, //0x00000602 movl %ebx, %edx + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x00000604 ja LBB0_89 + //0x0000060a LBB0_90 + 0x83, 0xfb, 0x64, //0x0000060a cmpl $100, %ebx + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x0000060d jb LBB0_92 + 0x0f, 0xb7, 0xc3, //0x00000613 movzwl %bx, %eax + 0xc1, 0xe8, 0x02, //0x00000616 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000619 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000061f shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000622 imull $100, %eax, %ecx + 0x29, 0xcb, //0x00000625 subl %ecx, %ebx + 0x0f, 0xb7, 0xcb, //0x00000627 movzwl %bx, %ecx + 0x48, 0x8d, 0x15, 0x4f, 0x0c, 0x00, 0x00, //0x0000062a leaq $3151(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000631 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4c, 0x24, 0xfe, //0x00000635 movw %cx, $-2(%r12) + 0x49, 0x83, 0xc4, 0xfe, //0x0000063b addq $-2, %r12 + 0x89, 0xc3, //0x0000063f movl %eax, %ebx + //0x00000641 LBB0_92 + 0x49, 0x8d, 0x40, 0x01, //0x00000641 leaq $1(%r8), %rax + 0x83, 0xfb, 0x0a, //0x00000645 cmpl $10, %ebx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000648 jb LBB0_94 + 0x89, 0xd9, //0x0000064e movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x29, 0x0c, 0x00, 0x00, //0x00000650 leaq $3113(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000657 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4c, 0x24, 0xfe, //0x0000065b movw %cx, $-2(%r12) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000661 jmp LBB0_95 + //0x00000666 LBB0_94 + 0x80, 0xc3, 0x30, //0x00000666 addb $48, %bl + 0x88, 0x18, //0x00000669 movb %bl, (%rax) + //0x0000066b LBB0_95 + 0x4d, 0x29, 0xd7, //0x0000066b subq %r10, %r15 + 0x90, 0x90, //0x0000066e .p2align 4, 0x90 + //0x00000670 LBB0_96 + 0x41, 0x80, 0x7f, 0xff, 0x30, //0x00000670 cmpb $48, $-1(%r15) + 0x4d, 0x8d, 0x7f, 0xff, //0x00000675 leaq $-1(%r15), %r15 + 0x0f, 0x84, 0xf1, 0xff, 0xff, 0xff, //0x00000679 je LBB0_96 + 0x41, 0x8a, 0x48, 0x01, //0x0000067f movb $1(%r8), %cl + 0x41, 0x88, 0x08, //0x00000683 movb %cl, (%r8) + 0x49, 0x8d, 0x4f, 0x01, //0x00000686 leaq $1(%r15), %rcx + 0x48, 0x89, 0xca, //0x0000068a movq %rcx, %rdx + 0x48, 0x29, 0xc2, //0x0000068d subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000690 cmpq $2, %rdx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00000694 jl LBB0_99 + 0xc6, 0x00, 0x2e, //0x0000069a movb $46, (%rax) + 0x49, 0x89, 0xcf, //0x0000069d movq %rcx, %r15 + //0x000006a0 LBB0_99 + 0x41, 0xc6, 0x07, 0x65, //0x000006a0 movb $101, (%r15) + 0x45, 0x85, 0xc9, //0x000006a4 testl %r9d, %r9d + 0x0f, 0x8e, 0xd1, 0x02, 0x00, 0x00, //0x000006a7 jle LBB0_102 + 0x41, 0xff, 0xc9, //0x000006ad decl %r9d + 0x41, 0xc6, 0x47, 0x01, 0x2b, //0x000006b0 movb $43, $1(%r15) + 0x44, 0x89, 0xc8, //0x000006b5 movl %r9d, %eax + 0x83, 0xf8, 0x64, //0x000006b8 cmpl $100, %eax + 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x000006bb jl LBB0_103 + //0x000006c1 LBB0_101 + 0x89, 0xc1, //0x000006c1 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000006c3 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000006c8 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000006cc shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000006d0 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000006d3 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000006d6 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xa1, 0x0b, 0x00, 0x00, //0x000006d8 leaq $2977(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000006df movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x41, 0x89, 0x4f, 0x02, //0x000006e3 movw %cx, $2(%r15) + 0x0c, 0x30, //0x000006e8 orb $48, %al + 0x41, 0x88, 0x47, 0x04, //0x000006ea movb %al, $4(%r15) + 0x49, 0x83, 0xc7, 0x05, //0x000006ee addq $5, %r15 + 0x4d, 0x89, 0xf8, //0x000006f2 movq %r15, %r8 + 0xe9, 0x26, 0x0b, 0x00, 0x00, //0x000006f5 jmp LBB0_163 + //0x000006fa LBB0_42 + 0x49, 0xd3, 0xeb, //0x000006fa shrq %cl, %r11 + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000006fd movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000707 addq $1410065535, %rax + 0x49, 0x39, 0xc3, //0x0000070d cmpq %rax, %r11 + 0x0f, 0x86, 0xf7, 0x03, 0x00, 0x00, //0x00000710 jbe LBB0_73 + 0x4c, 0x89, 0xd8, //0x00000716 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000719 shrq $11, %rax + 0x41, 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000071d movl $11, %r10d + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000723 cmpq $48828125, %rax + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000729 jb LBB0_49 + 0x4c, 0x89, 0xd8, //0x0000072f movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x00000732 shrq $12, %rax + 0x41, 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000736 movl $12, %r10d + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x0000073c cmpq $244140625, %rax + 0x0f, 0x82, 0x62, 0x00, 0x00, 0x00, //0x00000742 jb LBB0_49 + 0x4c, 0x89, 0xd8, //0x00000748 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x0000074b shrq $13, %rax + 0x41, 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000074f movl $13, %r10d + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000755 cmpq $1220703125, %rax + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x0000075b jb LBB0_49 + 0x41, 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000761 movl $14, %r10d + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000767 movabsq $100000000000000, %rax + 0x49, 0x39, 0xc3, //0x00000771 cmpq %rax, %r11 + 0x0f, 0x82, 0x30, 0x00, 0x00, 0x00, //0x00000774 jb LBB0_49 + 0x41, 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000077a movl $15, %r10d + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000780 movabsq $1000000000000000, %rax + 0x49, 0x39, 0xc3, //0x0000078a cmpq %rax, %r11 + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000078d jb LBB0_49 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000793 movabsq $10000000000000000, %rax + 0x49, 0x39, 0xc3, //0x0000079d cmpq %rax, %r11 + 0x41, 0xba, 0x11, 0x00, 0x00, 0x00, //0x000007a0 movl $17, %r10d + 0x49, 0x83, 0xda, 0x00, //0x000007a6 sbbq $0, %r10 + //0x000007aa LBB0_49 + 0x4d, 0x01, 0xc2, //0x000007aa addq %r8, %r10 + //0x000007ad LBB0_50 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000007ad movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xd8, //0x000007b7 movq %r11, %rax + 0x48, 0xf7, 0xe2, //0x000007ba mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000007bd shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x000007c1 imull $-100000000, %edx, %ecx + 0x44, 0x01, 0xd9, //0x000007c7 addl %r11d, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x000007ca movl $3518437209, %r9d + 0x48, 0x89, 0xce, //0x000007d0 movq %rcx, %rsi + 0x49, 0x0f, 0xaf, 0xf1, //0x000007d3 imulq %r9, %rsi + 0x48, 0xc1, 0xee, 0x2d, //0x000007d7 shrq $45, %rsi + 0x69, 0xde, 0x10, 0x27, 0x00, 0x00, //0x000007db imull $10000, %esi, %ebx + 0x29, 0xd9, //0x000007e1 subl %ebx, %ecx + 0x48, 0x89, 0xf0, //0x000007e3 movq %rsi, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x000007e6 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000007ea shrq $45, %rax + 0x69, 0xc0, 0x10, 0x27, 0x00, 0x00, //0x000007ee imull $10000, %eax, %eax + 0x29, 0xc6, //0x000007f4 subl %eax, %esi + 0x0f, 0xb7, 0xc1, //0x000007f6 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x000007f9 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000007fc imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000802 shrl $17, %eax + 0x6b, 0xd8, 0x64, //0x00000805 imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000808 subl %ebx, %ecx + 0x44, 0x0f, 0xb7, 0xc9, //0x0000080a movzwl %cx, %r9d + 0x0f, 0xb7, 0xde, //0x0000080e movzwl %si, %ebx + 0xc1, 0xeb, 0x02, //0x00000811 shrl $2, %ebx + 0x69, 0xdb, 0x7b, 0x14, 0x00, 0x00, //0x00000814 imull $5243, %ebx, %ebx + 0xc1, 0xeb, 0x11, //0x0000081a shrl $17, %ebx + 0x6b, 0xcb, 0x64, //0x0000081d imull $100, %ebx, %ecx + 0x29, 0xce, //0x00000820 subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xde, //0x00000822 movzwl %si, %r11d + 0x48, 0x8d, 0x35, 0x53, 0x0a, 0x00, 0x00, //0x00000826 leaq $2643(%rip), %rsi /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x0c, 0x4e, //0x0000082d movzwl (%rsi,%r9,2), %ecx + 0x66, 0x41, 0x89, 0x4a, 0xfe, //0x00000832 movw %cx, $-2(%r10) + 0x0f, 0xb7, 0x04, 0x46, //0x00000837 movzwl (%rsi,%rax,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xfc, //0x0000083b movw %ax, $-4(%r10) + 0x42, 0x0f, 0xb7, 0x04, 0x5e, //0x00000840 movzwl (%rsi,%r11,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xfa, //0x00000845 movw %ax, $-6(%r10) + 0x0f, 0xb7, 0x04, 0x5e, //0x0000084a movzwl (%rsi,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xf8, //0x0000084e movw %ax, $-8(%r10) + 0x49, 0x8d, 0x42, 0xf8, //0x00000853 leaq $-8(%r10), %rax + 0x49, 0x89, 0xd3, //0x00000857 movq %rdx, %r11 + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000085a cmpl $10000, %r11d + 0x0f, 0x82, 0x4b, 0x03, 0x00, 0x00, //0x00000861 jb LBB0_83 + //0x00000867 LBB0_51 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000867 movl $3518437209, %r9d + 0x4c, 0x8d, 0x35, 0x0c, 0x0a, 0x00, 0x00, //0x0000086d leaq $2572(%rip), %r14 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000874 .p2align 4, 0x90 + //0x00000880 LBB0_52 + 0x44, 0x89, 0xda, //0x00000880 movl %r11d, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000883 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000887 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x0000088b imull $-10000, %edx, %ecx + 0x44, 0x01, 0xd9, //0x00000891 addl %r11d, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00000894 imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000089b shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x0000089f imull $100, %esi, %ebx + 0x29, 0xd9, //0x000008a2 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4e, //0x000008a4 movzwl (%r14,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x000008a9 movw %cx, $-2(%rax) + 0x41, 0x0f, 0xb7, 0x0c, 0x76, //0x000008ad movzwl (%r14,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x000008b2 movw %cx, $-4(%rax) + 0x48, 0x83, 0xc0, 0xfc, //0x000008b6 addq $-4, %rax + 0x41, 0x81, 0xfb, 0xff, 0xe0, 0xf5, 0x05, //0x000008ba cmpl $99999999, %r11d + 0x41, 0x89, 0xd3, //0x000008c1 movl %edx, %r11d + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x000008c4 ja LBB0_52 + 0x83, 0xfa, 0x64, //0x000008ca cmpl $100, %edx + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x000008cd jb LBB0_55 + //0x000008d3 LBB0_54 + 0x0f, 0xb7, 0xca, //0x000008d3 movzwl %dx, %ecx + 0xc1, 0xe9, 0x02, //0x000008d6 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000008d9 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000008df shrl $17, %ecx + 0x6b, 0xf1, 0x64, //0x000008e2 imull $100, %ecx, %esi + 0x29, 0xf2, //0x000008e5 subl %esi, %edx + 0x0f, 0xb7, 0xd2, //0x000008e7 movzwl %dx, %edx + 0x48, 0x8d, 0x35, 0x8f, 0x09, 0x00, 0x00, //0x000008ea leaq $2447(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x000008f1 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x000008f5 movw %dx, $-2(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000008f9 addq $-2, %rax + 0x89, 0xca, //0x000008fd movl %ecx, %edx + //0x000008ff LBB0_55 + 0x83, 0xfa, 0x0a, //0x000008ff cmpl $10, %edx + 0x0f, 0x82, 0xbb, 0x02, 0x00, 0x00, //0x00000902 jb LBB0_84 + 0x89, 0xd1, //0x00000908 movl %edx, %ecx + 0x48, 0x8d, 0x15, 0x6f, 0x09, 0x00, 0x00, //0x0000090a leaq $2415(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000911 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000915 movw %cx, $-2(%rax) + 0xe9, 0xab, 0x02, 0x00, 0x00, //0x00000919 jmp LBB0_85 + //0x0000091e LBB0_57 + 0x45, 0x85, 0xc9, //0x0000091e testl %r9d, %r9d + 0x0f, 0x8f, 0xea, 0x04, 0x00, 0x00, //0x00000921 jg LBB0_122 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00000927 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x0000092d addq $2, %r8 + 0x45, 0x85, 0xc9, //0x00000931 testl %r9d, %r9d + 0x0f, 0x89, 0xd7, 0x04, 0x00, 0x00, //0x00000934 jns LBB0_122 + 0x31, 0xc0, //0x0000093a xorl %eax, %eax + 0x41, 0x83, 0xf9, 0x80, //0x0000093c cmpl $-128, %r9d + 0x0f, 0x87, 0xb4, 0x04, 0x00, 0x00, //0x00000940 ja LBB0_120 + 0x45, 0x89, 0xcb, //0x00000946 movl %r9d, %r11d + 0x41, 0xf7, 0xd3, //0x00000949 notl %r11d + 0x49, 0xff, 0xc3, //0x0000094c incq %r11 + 0x4c, 0x89, 0xd8, //0x0000094f movq %r11, %rax + 0x4c, 0x21, 0xd0, //0x00000952 andq %r10, %rax + 0x48, 0x8d, 0x70, 0x80, //0x00000955 leaq $-128(%rax), %rsi + 0x48, 0x89, 0xf2, //0x00000959 movq %rsi, %rdx + 0x48, 0xc1, 0xea, 0x07, //0x0000095c shrq $7, %rdx + 0x48, 0xff, 0xc2, //0x00000960 incq %rdx + 0x41, 0x89, 0xd7, //0x00000963 movl %edx, %r15d + 0x41, 0x83, 0xe7, 0x03, //0x00000966 andl $3, %r15d + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x0000096a cmpq $384, %rsi + 0x0f, 0x83, 0x8d, 0x03, 0x00, 0x00, //0x00000971 jae LBB0_114 + 0x31, 0xd2, //0x00000977 xorl %edx, %edx + 0xe9, 0x33, 0x04, 0x00, 0x00, //0x00000979 jmp LBB0_116 + //0x0000097e LBB0_102 + 0x41, 0xc6, 0x47, 0x01, 0x2d, //0x0000097e movb $45, $1(%r15) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000983 movl $1, %eax + 0x44, 0x29, 0xc8, //0x00000988 subl %r9d, %eax + 0x83, 0xf8, 0x64, //0x0000098b cmpl $100, %eax + 0x0f, 0x8d, 0x2d, 0xfd, 0xff, 0xff, //0x0000098e jge LBB0_101 + //0x00000994 LBB0_103 + 0x83, 0xf8, 0x0a, //0x00000994 cmpl $10, %eax + 0x0f, 0x8c, 0x5e, 0x01, 0x00, 0x00, //0x00000997 jl LBB0_105 + 0x48, 0x98, //0x0000099d cltq + 0x48, 0x8d, 0x0d, 0xda, 0x08, 0x00, 0x00, //0x0000099f leaq $2266(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000009a6 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x47, 0x02, //0x000009aa movw %ax, $2(%r15) + 0x49, 0x83, 0xc7, 0x04, //0x000009af addq $4, %r15 + 0x4d, 0x89, 0xf8, //0x000009b3 movq %r15, %r8 + 0xe9, 0x65, 0x08, 0x00, 0x00, //0x000009b6 jmp LBB0_163 + //0x000009bb LBB0_62 + 0x48, 0x89, 0xd8, //0x000009bb movq %rbx, %rax + 0x49, 0x89, 0xff, //0x000009be movq %rdi, %r15 + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000009c1 cmpl $10000, %r14d + 0x0f, 0x82, 0xbd, 0xfb, 0xff, 0xff, //0x000009c8 jb LBB0_39 + //0x000009ce LBB0_63 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000009ce movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xa5, 0x08, 0x00, 0x00, //0x000009d4 leaq $2213(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009db .p2align 4, 0x90 + //0x000009e0 LBB0_64 + 0x44, 0x89, 0xf2, //0x000009e0 movl %r14d, %edx + 0x49, 0x0f, 0xaf, 0xd2, //0x000009e3 imulq %r10, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000009e7 shrq $45, %rdx + 0x69, 0xf2, 0xf0, 0xd8, 0xff, 0xff, //0x000009eb imull $-10000, %edx, %esi + 0x44, 0x01, 0xf6, //0x000009f1 addl %r14d, %esi + 0x48, 0x69, 0xce, 0x1f, 0x85, 0xeb, 0x51, //0x000009f4 imulq $1374389535, %rsi, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000009fb shrq $37, %rcx + 0x6b, 0xf9, 0x64, //0x000009ff imull $100, %ecx, %edi + 0x29, 0xfe, //0x00000a02 subl %edi, %esi + 0x41, 0x0f, 0xb7, 0x34, 0x73, //0x00000a04 movzwl (%r11,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xfe, //0x00000a09 movw %si, $-2(%rax) + 0x41, 0x0f, 0xb7, 0x0c, 0x4b, //0x00000a0d movzwl (%r11,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00000a12 movw %cx, $-4(%rax) + 0x48, 0x83, 0xc0, 0xfc, //0x00000a16 addq $-4, %rax + 0x41, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000a1a cmpl $99999999, %r14d + 0x41, 0x89, 0xd6, //0x00000a21 movl %edx, %r14d + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x00000a24 ja LBB0_64 + //0x00000a2a LBB0_65 + 0x83, 0xfa, 0x64, //0x00000a2a cmpl $100, %edx + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x00000a2d jb LBB0_67 + 0x0f, 0xb7, 0xca, //0x00000a33 movzwl %dx, %ecx + 0xc1, 0xe9, 0x02, //0x00000a36 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00000a39 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00000a3f shrl $17, %ecx + 0x6b, 0xf1, 0x64, //0x00000a42 imull $100, %ecx, %esi + 0x29, 0xf2, //0x00000a45 subl %esi, %edx + 0x0f, 0xb7, 0xd2, //0x00000a47 movzwl %dx, %edx + 0x48, 0x8d, 0x35, 0x2f, 0x08, 0x00, 0x00, //0x00000a4a leaq $2095(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00000a51 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x00000a55 movw %dx, $-2(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00000a59 addq $-2, %rax + 0x89, 0xca, //0x00000a5d movl %ecx, %edx + //0x00000a5f LBB0_67 + 0x4c, 0x89, 0xff, //0x00000a5f movq %r15, %rdi + 0x4c, 0x8b, 0x5d, 0xd0, //0x00000a62 movq $-48(%rbp), %r11 + 0x49, 0x63, 0xc9, //0x00000a66 movslq %r9d, %rcx + 0x83, 0xfa, 0x0a, //0x00000a69 cmpl $10, %edx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000a6c jb LBB0_69 + 0x89, 0xd2, //0x00000a72 movl %edx, %edx + 0x48, 0x8d, 0x35, 0x05, 0x08, 0x00, 0x00, //0x00000a74 leaq $2053(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00000a7b movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x00000a7f movw %dx, $-2(%rax) + 0x49, 0x01, 0xc8, //0x00000a83 addq %rcx, %r8 + 0x49, 0x39, 0xcc, //0x00000a86 cmpq %rcx, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000a89 jl LBB0_70 + 0xe9, 0x8c, 0x07, 0x00, 0x00, //0x00000a8f jmp LBB0_163 + //0x00000a94 LBB0_69 + 0x80, 0xc2, 0x30, //0x00000a94 addb $48, %dl + 0x41, 0x88, 0x10, //0x00000a97 movb %dl, (%r8) + 0x49, 0x01, 0xc8, //0x00000a9a addq %rcx, %r8 + 0x49, 0x39, 0xcc, //0x00000a9d cmpq %rcx, %r12 + 0x0f, 0x8d, 0x7a, 0x07, 0x00, 0x00, //0x00000aa0 jge LBB0_163 + //0x00000aa6 LBB0_70 + 0x4b, 0x8d, 0x04, 0x23, //0x00000aa6 leaq (%r11,%r12), %rax + 0x4c, 0x8d, 0x54, 0x07, 0x01, //0x00000aaa leaq $1(%rdi,%rax), %r10 + 0x4d, 0x39, 0xc2, //0x00000aaf cmpq %r8, %r10 + 0x4d, 0x0f, 0x46, 0xd0, //0x00000ab2 cmovbeq %r8, %r10 + 0x4a, 0x8d, 0x0c, 0x1f, //0x00000ab6 leaq (%rdi,%r11), %rcx + 0x4c, 0x01, 0xe1, //0x00000aba addq %r12, %rcx + 0x49, 0x29, 0xca, //0x00000abd subq %rcx, %r10 + 0x49, 0x81, 0xfa, 0x80, 0x00, 0x00, 0x00, //0x00000ac0 cmpq $128, %r10 + 0x0f, 0x82, 0x23, 0x02, 0x00, 0x00, //0x00000ac7 jb LBB0_113 + 0x4d, 0x89, 0xd1, //0x00000acd movq %r10, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x00000ad0 andq $-128, %r9 + 0x49, 0x8d, 0x71, 0x80, //0x00000ad4 leaq $-128(%r9), %rsi + 0x48, 0x89, 0xf2, //0x00000ad8 movq %rsi, %rdx + 0x48, 0xc1, 0xea, 0x07, //0x00000adb shrq $7, %rdx + 0x48, 0xff, 0xc2, //0x00000adf incq %rdx + 0x89, 0xd1, //0x00000ae2 movl %edx, %ecx + 0x83, 0xe1, 0x03, //0x00000ae4 andl $3, %ecx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000ae7 cmpq $384, %rsi + 0x0f, 0x83, 0xfb, 0x00, 0x00, 0x00, //0x00000aee jae LBB0_106 + 0x31, 0xc0, //0x00000af4 xorl %eax, %eax + 0xe9, 0xa5, 0x01, 0x00, 0x00, //0x00000af6 jmp LBB0_108 + //0x00000afb LBB0_105 + 0x04, 0x30, //0x00000afb addb $48, %al + 0x41, 0x88, 0x47, 0x02, //0x00000afd movb %al, $2(%r15) + 0x49, 0x83, 0xc7, 0x03, //0x00000b01 addq $3, %r15 + 0x4d, 0x89, 0xf8, //0x00000b05 movq %r15, %r8 + 0xe9, 0x13, 0x07, 0x00, 0x00, //0x00000b08 jmp LBB0_163 + //0x00000b0d LBB0_73 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000b0d movl $1, %r10d + 0x49, 0x83, 0xfb, 0x0a, //0x00000b13 cmpq $10, %r11 + 0x0f, 0x82, 0x82, 0x00, 0x00, 0x00, //0x00000b17 jb LBB0_81 + 0x41, 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000b1d movl $2, %r10d + 0x49, 0x83, 0xfb, 0x64, //0x00000b23 cmpq $100, %r11 + 0x0f, 0x82, 0x72, 0x00, 0x00, 0x00, //0x00000b27 jb LBB0_81 + 0x41, 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000b2d movl $3, %r10d + 0x49, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00000b33 cmpq $1000, %r11 + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x00000b3a jb LBB0_81 + 0x41, 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000b40 movl $4, %r10d + 0x49, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00000b46 cmpq $10000, %r11 + 0x0f, 0x82, 0x4c, 0x00, 0x00, 0x00, //0x00000b4d jb LBB0_81 + 0x41, 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000b53 movl $5, %r10d + 0x49, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00000b59 cmpq $100000, %r11 + 0x0f, 0x82, 0x39, 0x00, 0x00, 0x00, //0x00000b60 jb LBB0_81 + 0x41, 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000b66 movl $6, %r10d + 0x49, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00000b6c cmpq $1000000, %r11 + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00000b73 jb LBB0_81 + 0x41, 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000b79 movl $7, %r10d + 0x49, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00000b7f cmpq $10000000, %r11 + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00000b86 jb LBB0_81 + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000b8c movl $8, %r10d + 0x49, 0x81, 0xfb, 0xff, 0xe0, 0xf5, 0x05, //0x00000b92 cmpq $99999999, %r11 + 0x0f, 0x87, 0xb3, 0x06, 0x00, 0x00, //0x00000b99 ja LBB0_167 + //0x00000b9f LBB0_81 + 0x4d, 0x01, 0xc2, //0x00000b9f addq %r8, %r10 + //0x00000ba2 LBB0_82 + 0x4c, 0x89, 0xd0, //0x00000ba2 movq %r10, %rax + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00000ba5 cmpl $10000, %r11d + 0x0f, 0x83, 0xb5, 0xfc, 0xff, 0xff, //0x00000bac jae LBB0_51 + //0x00000bb2 LBB0_83 + 0x44, 0x89, 0xda, //0x00000bb2 movl %r11d, %edx + 0x83, 0xfa, 0x64, //0x00000bb5 cmpl $100, %edx + 0x0f, 0x83, 0x15, 0xfd, 0xff, 0xff, //0x00000bb8 jae LBB0_54 + 0xe9, 0x3c, 0xfd, 0xff, 0xff, //0x00000bbe jmp LBB0_55 + //0x00000bc3 LBB0_84 + 0x80, 0xc2, 0x30, //0x00000bc3 addb $48, %dl + 0x41, 0x88, 0x10, //0x00000bc6 movb %dl, (%r8) + //0x00000bc9 LBB0_85 + 0x41, 0x29, 0xfa, //0x00000bc9 subl %edi, %r10d + 0x45, 0x89, 0xd0, //0x00000bcc movl %r10d, %r8d + 0xe9, 0x4f, 0x06, 0x00, 0x00, //0x00000bcf jmp LBB0_164 + //0x00000bd4 LBB0_86 + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000bd4 movl $8, %r10d + 0x4d, 0x8d, 0x67, 0xf8, //0x00000bda leaq $-8(%r15), %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000bde cmpl $10000, %edx + 0x0f, 0x82, 0xc3, 0xf8, 0xff, 0xff, //0x00000be4 jb LBB0_41 + 0xe9, 0xb9, 0xf9, 0xff, 0xff, //0x00000bea jmp LBB0_88 + //0x00000bef LBB0_106 + 0x48, 0x29, 0xca, //0x00000bef subq %rcx, %rdx + 0x48, 0x8d, 0xb4, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x00000bf2 leaq $480(%rdi,%rax), %rsi + 0x31, 0xc0, //0x00000bfa xorl %eax, %eax + 0xc5, 0xfe, 0x6f, 0x05, 0xfc, 0xf3, 0xff, 0xff, //0x00000bfc vmovdqu $-3076(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c04 .p2align 4, 0x90 + //0x00000c10 LBB0_107 + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0xfe, 0xff, 0xff, //0x00000c10 vmovdqu %ymm0, $-480(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0xfe, 0xff, 0xff, //0x00000c19 vmovdqu %ymm0, $-448(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0xfe, 0xff, 0xff, //0x00000c22 vmovdqu %ymm0, $-416(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0xfe, 0xff, 0xff, //0x00000c2b vmovdqu %ymm0, $-384(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0xfe, 0xff, 0xff, //0x00000c34 vmovdqu %ymm0, $-352(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0xfe, 0xff, 0xff, //0x00000c3d vmovdqu %ymm0, $-320(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0xfe, 0xff, 0xff, //0x00000c46 vmovdqu %ymm0, $-288(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0xff, 0xff, 0xff, //0x00000c4f vmovdqu %ymm0, $-256(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0xff, 0xff, 0xff, //0x00000c58 vmovdqu %ymm0, $-224(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0xff, 0xff, 0xff, //0x00000c61 vmovdqu %ymm0, $-192(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0xff, 0xff, 0xff, //0x00000c6a vmovdqu %ymm0, $-160(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x80, //0x00000c73 vmovdqu %ymm0, $-128(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0xa0, //0x00000c79 vmovdqu %ymm0, $-96(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0xc0, //0x00000c7f vmovdqu %ymm0, $-64(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0xe0, //0x00000c85 vmovdqu %ymm0, $-32(%rsi,%rax) + 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x00000c8b vmovdqu %ymm0, (%rsi,%rax) + 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00000c90 addq $512, %rax + 0x48, 0x83, 0xc2, 0xfc, //0x00000c96 addq $-4, %rdx + 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00000c9a jne LBB0_107 + //0x00000ca0 LBB0_108 + 0x48, 0x85, 0xc9, //0x00000ca0 testq %rcx, %rcx + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000ca3 je LBB0_111 + 0x4c, 0x01, 0xd8, //0x00000ca9 addq %r11, %rax + 0x4c, 0x01, 0xe0, //0x00000cac addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x60, //0x00000caf leaq $96(%rdi,%rax), %rax + 0x48, 0xf7, 0xd9, //0x00000cb4 negq %rcx + 0xc5, 0xfe, 0x6f, 0x05, 0x41, 0xf3, 0xff, 0xff, //0x00000cb7 vmovdqu $-3263(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, //0x00000cbf .p2align 4, 0x90 + //0x00000cc0 LBB0_110 + 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000cc0 vmovdqu %ymm0, $-96(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000cc5 vmovdqu %ymm0, $-64(%rax) + 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000cca vmovdqu %ymm0, $-32(%rax) + 0xc5, 0xfe, 0x7f, 0x00, //0x00000ccf vmovdqu %ymm0, (%rax) + 0x48, 0x83, 0xe8, 0x80, //0x00000cd3 subq $-128, %rax + 0x48, 0xff, 0xc1, //0x00000cd7 incq %rcx + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000cda jne LBB0_110 + //0x00000ce0 LBB0_111 + 0x4d, 0x39, 0xd1, //0x00000ce0 cmpq %r10, %r9 + 0x0f, 0x84, 0x37, 0x05, 0x00, 0x00, //0x00000ce3 je LBB0_163 + 0x4c, 0x01, 0xcb, //0x00000ce9 addq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, //0x00000cec .p2align 4, 0x90 + //0x00000cf0 LBB0_113 + 0xc6, 0x03, 0x30, //0x00000cf0 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000cf3 incq %rbx + 0x4c, 0x39, 0xc3, //0x00000cf6 cmpq %r8, %rbx + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00000cf9 jb LBB0_113 + 0xe9, 0x1c, 0x05, 0x00, 0x00, //0x00000cff jmp LBB0_163 + //0x00000d04 LBB0_114 + 0x48, 0x8b, 0x4d, 0xd0, //0x00000d04 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0xb4, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00000d08 leaq $482(%rcx,%rdi), %rsi + 0x4c, 0x89, 0xfb, //0x00000d10 movq %r15, %rbx + 0x48, 0x29, 0xd3, //0x00000d13 subq %rdx, %rbx + 0x31, 0xd2, //0x00000d16 xorl %edx, %edx + 0xc5, 0xfe, 0x6f, 0x05, 0xe0, 0xf2, 0xff, 0xff, //0x00000d18 vmovdqu $-3360(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000d20 LBB0_115 + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x20, 0xfe, 0xff, 0xff, //0x00000d20 vmovdqu %ymm0, $-480(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x40, 0xfe, 0xff, 0xff, //0x00000d29 vmovdqu %ymm0, $-448(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x60, 0xfe, 0xff, 0xff, //0x00000d32 vmovdqu %ymm0, $-416(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x80, 0xfe, 0xff, 0xff, //0x00000d3b vmovdqu %ymm0, $-384(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0xa0, 0xfe, 0xff, 0xff, //0x00000d44 vmovdqu %ymm0, $-352(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0xc0, 0xfe, 0xff, 0xff, //0x00000d4d vmovdqu %ymm0, $-320(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0xe0, 0xfe, 0xff, 0xff, //0x00000d56 vmovdqu %ymm0, $-288(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x00, 0xff, 0xff, 0xff, //0x00000d5f vmovdqu %ymm0, $-256(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x20, 0xff, 0xff, 0xff, //0x00000d68 vmovdqu %ymm0, $-224(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x40, 0xff, 0xff, 0xff, //0x00000d71 vmovdqu %ymm0, $-192(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x16, 0x60, 0xff, 0xff, 0xff, //0x00000d7a vmovdqu %ymm0, $-160(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0x80, //0x00000d83 vmovdqu %ymm0, $-128(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0xa0, //0x00000d89 vmovdqu %ymm0, $-96(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0xc0, //0x00000d8f vmovdqu %ymm0, $-64(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x16, 0xe0, //0x00000d95 vmovdqu %ymm0, $-32(%rsi,%rdx) + 0xc5, 0xfe, 0x7f, 0x04, 0x16, //0x00000d9b vmovdqu %ymm0, (%rsi,%rdx) + 0x48, 0x81, 0xc2, 0x00, 0x02, 0x00, 0x00, //0x00000da0 addq $512, %rdx + 0x48, 0x83, 0xc3, 0x04, //0x00000da7 addq $4, %rbx + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000dab jne LBB0_115 + //0x00000db1 LBB0_116 + 0x4d, 0x85, 0xff, //0x00000db1 testq %r15, %r15 + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00000db4 je LBB0_119 + 0x48, 0x03, 0x55, 0xd0, //0x00000dba addq $-48(%rbp), %rdx + 0x48, 0x8d, 0x54, 0x17, 0x62, //0x00000dbe leaq $98(%rdi,%rdx), %rdx + 0x49, 0xf7, 0xdf, //0x00000dc3 negq %r15 + 0xc5, 0xfe, 0x6f, 0x05, 0x32, 0xf2, 0xff, 0xff, //0x00000dc6 vmovdqu $-3534(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000dce LBB0_118 + 0xc5, 0xfe, 0x7f, 0x42, 0xa0, //0x00000dce vmovdqu %ymm0, $-96(%rdx) + 0xc5, 0xfe, 0x7f, 0x42, 0xc0, //0x00000dd3 vmovdqu %ymm0, $-64(%rdx) + 0xc5, 0xfe, 0x7f, 0x42, 0xe0, //0x00000dd8 vmovdqu %ymm0, $-32(%rdx) + 0xc5, 0xfe, 0x7f, 0x02, //0x00000ddd vmovdqu %ymm0, (%rdx) + 0x48, 0x83, 0xea, 0x80, //0x00000de1 subq $-128, %rdx + 0x49, 0xff, 0xc7, //0x00000de5 incq %r15 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000de8 jne LBB0_118 + //0x00000dee LBB0_119 + 0x49, 0x01, 0xc0, //0x00000dee addq %rax, %r8 + 0x49, 0x39, 0xc3, //0x00000df1 cmpq %rax, %r11 + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000df4 je LBB0_122 + //0x00000dfa LBB0_120 + 0x44, 0x89, 0xca, //0x00000dfa movl %r9d, %edx + 0xf7, 0xda, //0x00000dfd negl %edx + 0x90, //0x00000dff .p2align 4, 0x90 + //0x00000e00 LBB0_121 + 0x41, 0xc6, 0x00, 0x30, //0x00000e00 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00000e04 incq %r8 + 0xff, 0xc0, //0x00000e07 incl %eax + 0x39, 0xd0, //0x00000e09 cmpl %edx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x00000e0b jl LBB0_121 + //0x00000e11 LBB0_122 + 0x4f, 0x8d, 0x2c, 0x20, //0x00000e11 leaq (%r8,%r12), %r13 + 0x4c, 0x89, 0xf0, //0x00000e15 movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000e18 shrq $32, %rax + 0x0f, 0x84, 0xc9, 0x00, 0x00, 0x00, //0x00000e1c je LBB0_125 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000e22 movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x00000e2c movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x00000e2f mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00000e32 shrq $26, %rdx + 0x69, 0xf2, 0x00, 0x1f, 0x0a, 0xfa, //0x00000e36 imull $-100000000, %edx, %esi + 0x44, 0x01, 0xf6, //0x00000e3c addl %r14d, %esi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00000e3f je LBB0_127 + 0x89, 0xf0, //0x00000e45 movl %esi, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00000e47 movl $3518437209, %r11d + 0x49, 0x0f, 0xaf, 0xc3, //0x00000e4d imulq %r11, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000e51 shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x00000e55 imull $10000, %eax, %ecx + 0x29, 0xce, //0x00000e5b subl %ecx, %esi + 0x48, 0x89, 0xc1, //0x00000e5d movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xcb, //0x00000e60 imulq %r11, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000e64 shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x00000e68 imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000e6e subl %ecx, %eax + 0x0f, 0xb7, 0xce, //0x00000e70 movzwl %si, %ecx + 0xc1, 0xe9, 0x02, //0x00000e73 shrl $2, %ecx + 0x44, 0x69, 0xd9, 0x7b, 0x14, 0x00, 0x00, //0x00000e76 imull $5243, %ecx, %r11d + 0x41, 0xc1, 0xeb, 0x11, //0x00000e7d shrl $17, %r11d + 0x41, 0x6b, 0xcb, 0x64, //0x00000e81 imull $100, %r11d, %ecx + 0x29, 0xce, //0x00000e85 subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xf6, //0x00000e87 movzwl %si, %r14d + 0x0f, 0xb7, 0xf0, //0x00000e8b movzwl %ax, %esi + 0xc1, 0xee, 0x02, //0x00000e8e shrl $2, %esi + 0x69, 0xf6, 0x7b, 0x14, 0x00, 0x00, //0x00000e91 imull $5243, %esi, %esi + 0xc1, 0xee, 0x11, //0x00000e97 shrl $17, %esi + 0x6b, 0xce, 0x64, //0x00000e9a imull $100, %esi, %ecx + 0x29, 0xc8, //0x00000e9d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf8, //0x00000e9f movzwl %ax, %r15d + 0x48, 0x8d, 0x0d, 0xd6, 0x03, 0x00, 0x00, //0x00000ea3 leaq $982(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x71, //0x00000eaa movzwl (%rcx,%r14,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000eaf movw %ax, $-2(%r13) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000eb4 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfc, //0x00000eb9 movw %ax, $-4(%r13) + 0x42, 0x0f, 0xb7, 0x04, 0x79, //0x00000ebe movzwl (%rcx,%r15,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfa, //0x00000ec3 movw %ax, $-6(%r13) + 0x0f, 0xb7, 0x04, 0x71, //0x00000ec8 movzwl (%rcx,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xf8, //0x00000ecc movw %ax, $-8(%r13) + 0x45, 0x31, 0xdb, //0x00000ed1 xorl %r11d, %r11d + 0x49, 0x83, 0xc5, 0xf8, //0x00000ed4 addq $-8, %r13 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000ed8 cmpl $10000, %edx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00000ede jae LBB0_129 + //0x00000ee4 LBB0_126 + 0x89, 0xd1, //0x00000ee4 movl %edx, %ecx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000ee6 jmp LBB0_131 + //0x00000eeb LBB0_125 + 0x45, 0x31, 0xdb, //0x00000eeb xorl %r11d, %r11d + 0x44, 0x89, 0xf2, //0x00000eee movl %r14d, %edx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000ef1 cmpl $10000, %edx + 0x0f, 0x82, 0xe7, 0xff, 0xff, 0xff, //0x00000ef7 jb LBB0_126 + //0x00000efd LBB0_129 + 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00000efd movl $3518437209, %r14d + 0x4c, 0x8d, 0x3d, 0x76, 0x03, 0x00, 0x00, //0x00000f03 leaq $886(%rip), %r15 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f0a .p2align 4, 0x90 + //0x00000f10 LBB0_130 + 0x89, 0xd1, //0x00000f10 movl %edx, %ecx + 0x49, 0x0f, 0xaf, 0xce, //0x00000f12 imulq %r14, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000f16 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00000f1a imull $-10000, %ecx, %eax + 0x01, 0xd0, //0x00000f20 addl %edx, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00000f22 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00000f29 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00000f2d imull $100, %esi, %ebx + 0x29, 0xd8, //0x00000f30 subl %ebx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x47, //0x00000f32 movzwl (%r15,%rax,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000f37 movw %ax, $-2(%r13) + 0x41, 0x0f, 0xb7, 0x04, 0x77, //0x00000f3c movzwl (%r15,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfc, //0x00000f41 movw %ax, $-4(%r13) + 0x49, 0x83, 0xc5, 0xfc, //0x00000f46 addq $-4, %r13 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00000f4a cmpl $99999999, %edx + 0x89, 0xca, //0x00000f50 movl %ecx, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000f52 ja LBB0_130 + //0x00000f58 LBB0_131 + 0x83, 0xf9, 0x64, //0x00000f58 cmpl $100, %ecx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000f5b jb LBB0_133 + 0x0f, 0xb7, 0xc1, //0x00000f61 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f64 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f67 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f6d shrl $17, %eax + 0x6b, 0xd0, 0x64, //0x00000f70 imull $100, %eax, %edx + 0x29, 0xd1, //0x00000f73 subl %edx, %ecx + 0x0f, 0xb7, 0xc9, //0x00000f75 movzwl %cx, %ecx + 0x48, 0x8d, 0x15, 0x01, 0x03, 0x00, 0x00, //0x00000f78 leaq $769(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f7f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4d, 0xfe, //0x00000f83 movw %cx, $-2(%r13) + 0x49, 0x83, 0xc5, 0xfe, //0x00000f88 addq $-2, %r13 + 0x89, 0xc1, //0x00000f8c movl %eax, %ecx + //0x00000f8e LBB0_133 + 0x83, 0xf9, 0x0a, //0x00000f8e cmpl $10, %ecx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000f91 jb LBB0_135 + 0x89, 0xc8, //0x00000f97 movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xe0, 0x02, 0x00, 0x00, //0x00000f99 leaq $736(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000fa0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000fa4 movw %ax, $-2(%r13) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000fa9 jmp LBB0_136 + //0x00000fae LBB0_135 + 0x80, 0xc1, 0x30, //0x00000fae addb $48, %cl + 0x41, 0x88, 0x08, //0x00000fb1 movb %cl, (%r8) + //0x00000fb4 LBB0_136 + 0x4d, 0x29, 0xdc, //0x00000fb4 subq %r11, %r12 + 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00000fb7 leaq $1(%r12), %rcx + 0x49, 0x8d, 0x54, 0x24, 0x61, //0x00000fbc leaq $97(%r12), %rdx + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x00000fc1 leaq $2(%r12), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fc6 .p2align 4, 0x90 + //0x00000fd0 LBB0_137 + 0x48, 0xff, 0xca, //0x00000fd0 decq %rdx + 0x48, 0xff, 0xc9, //0x00000fd3 decq %rcx + 0x48, 0xff, 0xcb, //0x00000fd6 decq %rbx + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000fd9 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x00000fdf leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000fe4 je LBB0_137 + 0x4d, 0x8d, 0x3c, 0x08, //0x00000fea leaq (%r8,%rcx), %r15 + 0x45, 0x85, 0xc9, //0x00000fee testl %r9d, %r9d + 0x0f, 0x8e, 0x86, 0x00, 0x00, 0x00, //0x00000ff1 jle LBB0_142 + 0x44, 0x89, 0xf8, //0x00000ff7 movl %r15d, %eax + 0x44, 0x29, 0xc0, //0x00000ffa subl %r8d, %eax + 0x41, 0x39, 0xc1, //0x00000ffd cmpl %eax, %r9d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00001000 jge LBB0_143 + 0x43, 0x8d, 0x04, 0x01, //0x00001006 leal (%r9,%r8), %eax + 0x41, 0x29, 0xc7, //0x0000100a subl %eax, %r15d + 0x49, 0x8d, 0x47, 0xff, //0x0000100d leaq $-1(%r15), %rax + 0x45, 0x89, 0xfa, //0x00001011 movl %r15d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00001014 andl $3, %r10d + 0x48, 0x83, 0xf8, 0x03, //0x00001018 cmpq $3, %rax + 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x0000101c jae LBB0_147 + 0x31, 0xc0, //0x00001022 xorl %eax, %eax + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00001024 jmp LBB0_150 + //0x00001029 LBB0_143 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x00001029 jle LBB0_142 + 0x45, 0x01, 0xc1, //0x0000102f addl %r8d, %r9d + 0x45, 0x89, 0xfe, //0x00001032 movl %r15d, %r14d + 0x41, 0xf7, 0xd6, //0x00001035 notl %r14d + 0x45, 0x01, 0xce, //0x00001038 addl %r9d, %r14d + 0x31, 0xc0, //0x0000103b xorl %eax, %eax + 0x4d, 0x89, 0xfb, //0x0000103d movq %r15, %r11 + 0x41, 0x83, 0xfe, 0x7e, //0x00001040 cmpl $126, %r14d + 0x0f, 0x86, 0xb8, 0x01, 0x00, 0x00, //0x00001044 jbe LBB0_161 + 0x49, 0xff, 0xc6, //0x0000104a incq %r14 + 0x4d, 0x21, 0xf2, //0x0000104d andq %r14, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00001050 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0x80, //0x00001054 leaq $-128(%r10), %rbx + 0x48, 0x89, 0xde, //0x00001058 movq %rbx, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x0000105b shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x0000105f incq %rsi + 0x41, 0x89, 0xf4, //0x00001062 movl %esi, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x00001065 andl $3, %r12d + 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x00001069 cmpq $384, %rbx + 0x0f, 0x83, 0x94, 0x00, 0x00, 0x00, //0x00001070 jae LBB0_155 + 0x31, 0xf6, //0x00001076 xorl %esi, %esi + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00001078 jmp LBB0_157 + //0x0000107d LBB0_142 + 0x4d, 0x89, 0xf8, //0x0000107d movq %r15, %r8 + 0xe9, 0x9b, 0x01, 0x00, 0x00, //0x00001080 jmp LBB0_163 + //0x00001085 LBB0_127 + 0x41, 0xbb, 0x08, 0x00, 0x00, 0x00, //0x00001085 movl $8, %r11d + 0x49, 0x83, 0xc5, 0xf8, //0x0000108b addq $-8, %r13 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x0000108f cmpl $10000, %edx + 0x0f, 0x82, 0x49, 0xfe, 0xff, 0xff, //0x00001095 jb LBB0_126 + 0xe9, 0x5d, 0xfe, 0xff, 0xff, //0x0000109b jmp LBB0_129 + //0x000010a0 LBB0_147 + 0x4d, 0x89, 0xd3, //0x000010a0 movq %r10, %r11 + 0x4d, 0x29, 0xfb, //0x000010a3 subq %r15, %r11 + 0x31, 0xc0, //0x000010a6 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000010a8 .p2align 4, 0x90 + //0x000010b0 LBB0_148 + 0x49, 0x8d, 0x14, 0x00, //0x000010b0 leaq (%r8,%rax), %rdx + 0x8b, 0x74, 0x11, 0xfc, //0x000010b4 movl $-4(%rcx,%rdx), %esi + 0x89, 0x74, 0x11, 0xfd, //0x000010b8 movl %esi, $-3(%rcx,%rdx) + 0x48, 0x83, 0xc0, 0xfc, //0x000010bc addq $-4, %rax + 0x49, 0x39, 0xc3, //0x000010c0 cmpq %rax, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000010c3 jne LBB0_148 + 0x48, 0xf7, 0xd8, //0x000010c9 negq %rax + //0x000010cc LBB0_150 + 0x4d, 0x85, 0xd2, //0x000010cc testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000010cf je LBB0_153 + 0x49, 0xf7, 0xda, //0x000010d5 negq %r10 + 0x4c, 0x89, 0xc1, //0x000010d8 movq %r8, %rcx + 0x48, 0x29, 0xc1, //0x000010db subq %rax, %rcx + 0x31, 0xc0, //0x000010de xorl %eax, %eax + //0x000010e0 .p2align 4, 0x90 + //0x000010e0 LBB0_152 + 0x48, 0x8d, 0x34, 0x01, //0x000010e0 leaq (%rcx,%rax), %rsi + 0x41, 0x0f, 0xb6, 0x14, 0x34, //0x000010e4 movzbl (%r12,%rsi), %edx + 0x41, 0x88, 0x54, 0x34, 0x01, //0x000010e9 movb %dl, $1(%r12,%rsi) + 0x48, 0xff, 0xc8, //0x000010ee decq %rax + 0x49, 0x39, 0xc2, //0x000010f1 cmpq %rax, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x000010f4 jne LBB0_152 + //0x000010fa LBB0_153 + 0x49, 0x63, 0xc1, //0x000010fa movslq %r9d, %rax + 0x41, 0xc6, 0x04, 0x00, 0x2e, //0x000010fd movb $46, (%r8,%rax) + 0x49, 0x01, 0xd8, //0x00001102 addq %rbx, %r8 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00001105 jmp LBB0_163 + //0x0000110a LBB0_155 + 0x4c, 0x89, 0xe3, //0x0000110a movq %r12, %rbx + 0x48, 0x29, 0xf3, //0x0000110d subq %rsi, %rbx + 0x31, 0xf6, //0x00001110 xorl %esi, %esi + 0xc5, 0xfe, 0x6f, 0x05, 0xe6, 0xee, 0xff, 0xff, //0x00001112 vmovdqu $-4378(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x0000111a LBB0_156 + 0x49, 0x8d, 0x04, 0x30, //0x0000111a leaq (%r8,%rsi), %rax + 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x0000111e vmovdqu %ymm0, (%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x20, //0x00001123 vmovdqu %ymm0, $32(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x40, //0x00001129 vmovdqu %ymm0, $64(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x60, //0x0000112f vmovdqu %ymm0, $96(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0x00, 0x00, 0x00, //0x00001135 vmovdqu %ymm0, $128(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0x00, 0x00, 0x00, //0x0000113e vmovdqu %ymm0, $160(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0x00, 0x00, 0x00, //0x00001147 vmovdqu %ymm0, $192(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0x00, 0x00, 0x00, //0x00001150 vmovdqu %ymm0, $224(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0x01, 0x00, 0x00, //0x00001159 vmovdqu %ymm0, $256(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0x01, 0x00, 0x00, //0x00001162 vmovdqu %ymm0, $288(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0x01, 0x00, 0x00, //0x0000116b vmovdqu %ymm0, $320(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0x01, 0x00, 0x00, //0x00001174 vmovdqu %ymm0, $352(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0x01, 0x00, 0x00, //0x0000117d vmovdqu %ymm0, $384(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0x01, 0x00, 0x00, //0x00001186 vmovdqu %ymm0, $416(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0x01, 0x00, 0x00, //0x0000118f vmovdqu %ymm0, $448(%rcx,%rax) + 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0x01, 0x00, 0x00, //0x00001198 vmovdqu %ymm0, $480(%rcx,%rax) + 0x48, 0x81, 0xc6, 0x00, 0x02, 0x00, 0x00, //0x000011a1 addq $512, %rsi + 0x48, 0x83, 0xc3, 0x04, //0x000011a8 addq $4, %rbx + 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000011ac jne LBB0_156 + //0x000011b2 LBB0_157 + 0x49, 0x01, 0xcb, //0x000011b2 addq %rcx, %r11 + 0x4d, 0x85, 0xe4, //0x000011b5 testq %r12, %r12 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000011b8 je LBB0_160 + 0x49, 0x01, 0xf0, //0x000011be addq %rsi, %r8 + 0x49, 0x01, 0xd0, //0x000011c1 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x000011c4 negq %r12 + 0xc5, 0xfe, 0x6f, 0x05, 0x31, 0xee, 0xff, 0xff, //0x000011c7 vmovdqu $-4559(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x000011cf LBB0_159 + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x000011cf vmovdqu %ymm0, $-96(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x000011d5 vmovdqu %ymm0, $-64(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x000011db vmovdqu %ymm0, $-32(%r8) + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x000011e1 vmovdqu %ymm0, (%r8) + 0x49, 0x83, 0xe8, 0x80, //0x000011e6 subq $-128, %r8 + 0x49, 0xff, 0xc4, //0x000011ea incq %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000011ed jne LBB0_159 + //0x000011f3 LBB0_160 + 0x44, 0x89, 0xd0, //0x000011f3 movl %r10d, %eax + 0x4d, 0x89, 0xd8, //0x000011f6 movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x000011f9 cmpq %r10, %r14 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000011fc je LBB0_163 + //0x00001202 LBB0_161 + 0x41, 0x29, 0xc1, //0x00001202 subl %eax, %r9d + 0x45, 0x29, 0xf9, //0x00001205 subl %r15d, %r9d + 0x4d, 0x89, 0xd8, //0x00001208 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000120b .p2align 4, 0x90 + //0x00001210 LBB0_162 + 0x41, 0xc6, 0x00, 0x30, //0x00001210 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00001214 incq %r8 + 0x41, 0xff, 0xc9, //0x00001217 decl %r9d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000121a jne LBB0_162 + //0x00001220 LBB0_163 + 0x41, 0x29, 0xf8, //0x00001220 subl %edi, %r8d + //0x00001223 LBB0_164 + 0x44, 0x89, 0xc0, //0x00001223 movl %r8d, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00001226 addq $8, %rsp + 0x5b, //0x0000122a popq %rbx + 0x41, 0x5c, //0x0000122b popq %r12 + 0x41, 0x5d, //0x0000122d popq %r13 + 0x41, 0x5e, //0x0000122f popq %r14 + 0x41, 0x5f, //0x00001231 popq %r15 + 0x5d, //0x00001233 popq %rbp + 0xc5, 0xf8, 0x77, //0x00001234 vzeroupper + 0xc3, //0x00001237 retq + //0x00001238 LBB0_165 + 0x45, 0x31, 0xc0, //0x00001238 xorl %r8d, %r8d + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x0000123b jmp LBB0_164 + //0x00001240 LBB0_166 + 0x48, 0x89, 0x75, 0xd0, //0x00001240 movq %rsi, $-48(%rbp) + 0x41, 0xba, 0xce, 0xfb, 0xff, 0xff, //0x00001244 movl $-1074, %r10d + 0x49, 0x89, 0xd3, //0x0000124a movq %rdx, %r11 + 0xe9, 0x69, 0xee, 0xff, 0xff, //0x0000124d jmp LBB0_8 + //0x00001252 LBB0_167 + 0x49, 0x81, 0xfb, 0x00, 0xca, 0x9a, 0x3b, //0x00001252 cmpq $1000000000, %r11 + 0x4d, 0x89, 0xc2, //0x00001259 movq %r8, %r10 + 0x49, 0x83, 0xda, 0x00, //0x0000125c sbbq $0, %r10 + 0x49, 0x83, 0xc2, 0x0a, //0x00001260 addq $10, %r10 + 0x4c, 0x89, 0xd8, //0x00001264 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00001267 shrq $32, %rax + 0x0f, 0x85, 0x3c, 0xf5, 0xff, 0xff, //0x0000126b jne LBB0_50 + 0xe9, 0x2c, 0xf9, 0xff, 0xff, //0x00001271 jmp LBB0_82 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001276 .p2align 4, 0x00 + //0x00001280 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00001280 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00001290 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x000012a0 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x000012b0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x000012c0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x000012d0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x000012e0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000012f0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00001300 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00001310 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x00001320 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00001330 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00001340 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001348 .p2align 4, 0x00 + //0x00001350 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00001350 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00001358 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00001360 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00001368 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00001370 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00001378 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00001380 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00001388 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00001390 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00001398 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x000013a0 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x000013a8 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x000013b0 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x000013b8 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x000013c0 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x000013c8 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000013d0 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000013d8 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x000013e0 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x000013e8 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x000013f0 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x000013f8 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00001400 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00001408 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00001410 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00001418 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00001420 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00001428 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00001430 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00001438 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00001440 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00001448 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00001450 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00001458 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00001460 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00001468 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00001470 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00001478 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00001480 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00001488 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00001490 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00001498 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x000014a0 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x000014a8 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x000014b0 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x000014b8 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x000014c0 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x000014c8 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x000014d0 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x000014d8 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x000014e0 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x000014e8 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x000014f0 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x000014f8 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00001500 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00001508 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00001510 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00001518 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00001520 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00001528 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00001530 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00001538 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00001540 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00001548 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00001550 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00001558 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00001560 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00001568 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00001570 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00001578 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00001580 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00001588 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00001590 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00001598 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x000015a0 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x000015a8 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x000015b0 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x000015b8 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x000015c0 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x000015c8 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x000015d0 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x000015d8 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x000015e0 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x000015e8 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x000015f0 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x000015f8 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00001600 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00001608 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00001610 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00001618 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00001620 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00001628 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00001630 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00001638 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00001640 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00001648 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00001650 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00001658 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00001660 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00001668 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00001670 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00001678 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00001680 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00001688 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00001690 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00001698 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x000016a0 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x000016a8 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x000016b0 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x000016b8 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x000016c0 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x000016c8 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x000016d0 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x000016d8 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x000016e0 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x000016e8 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x000016f0 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x000016f8 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00001700 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00001708 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00001710 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00001718 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00001720 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00001728 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00001730 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00001738 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00001740 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00001748 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00001750 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00001758 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00001760 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00001768 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00001770 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00001778 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00001780 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00001788 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00001790 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00001798 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x000017a0 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x000017a8 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x000017b0 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x000017b8 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x000017c0 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x000017c8 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x000017d0 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x000017d8 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x000017e0 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x000017e8 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x000017f0 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x000017f8 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00001800 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00001808 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00001810 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00001818 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00001820 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00001828 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00001830 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00001838 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00001840 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00001848 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00001850 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00001858 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00001860 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00001868 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00001870 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00001878 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00001880 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00001888 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00001890 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00001898 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x000018a0 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x000018a8 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x000018b0 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x000018b8 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x000018c0 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x000018c8 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x000018d0 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x000018d8 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x000018e0 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x000018e8 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x000018f0 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x000018f8 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00001900 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00001908 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00001910 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00001918 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00001920 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00001928 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00001930 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00001938 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00001940 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00001948 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00001950 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00001958 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00001960 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00001968 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00001970 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00001978 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00001980 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00001988 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00001990 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00001998 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x000019a0 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x000019a8 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x000019b0 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x000019b8 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x000019c0 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x000019c8 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x000019d0 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x000019d8 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x000019e0 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x000019e8 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x000019f0 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x000019f8 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00001a00 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00001a08 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00001a10 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00001a18 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00001a20 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00001a28 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00001a30 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00001a38 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00001a40 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00001a48 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00001a50 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00001a58 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00001a60 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00001a68 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00001a70 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00001a78 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00001a80 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00001a88 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00001a90 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00001a98 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00001aa0 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00001aa8 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00001ab0 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00001ab8 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00001ac0 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00001ac8 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00001ad0 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00001ad8 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00001ae0 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00001ae8 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00001af0 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00001af8 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00001b00 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00001b08 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00001b10 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00001b18 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00001b20 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00001b28 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00001b30 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00001b38 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00001b40 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00001b48 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00001b50 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00001b58 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00001b60 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00001b68 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00001b70 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00001b78 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00001b80 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00001b88 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00001b90 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00001b98 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00001ba0 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00001ba8 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00001bb0 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00001bb8 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00001bc0 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00001bc8 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00001bd0 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00001bd8 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00001be0 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00001be8 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00001bf0 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00001bf8 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00001c00 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00001c08 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00001c10 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00001c18 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00001c20 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00001c28 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00001c30 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00001c38 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00001c40 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00001c48 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00001c50 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00001c58 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00001c60 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00001c68 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00001c70 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00001c78 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00001c80 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00001c88 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00001c90 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00001c98 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00001ca0 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00001ca8 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00001cb0 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00001cb8 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00001cc0 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00001cc8 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00001cd0 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00001cd8 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00001ce0 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00001ce8 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00001cf0 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00001cf8 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x00001d00 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x00001d08 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x00001d10 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x00001d18 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x00001d20 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x00001d28 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x00001d30 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x00001d38 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x00001d40 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x00001d48 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00001d50 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00001d58 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00001d60 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00001d68 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00001d70 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00001d78 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00001d80 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00001d88 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00001d90 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00001d98 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00001da0 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00001da8 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00001db0 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00001db8 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00001dc0 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00001dc8 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00001dd0 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00001dd8 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00001de0 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00001de8 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x00001df0 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x00001df8 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x00001e00 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x00001e08 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x00001e10 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x00001e18 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x00001e20 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x00001e28 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x00001e30 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x00001e38 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x00001e40 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x00001e48 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00001e50 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00001e58 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00001e60 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00001e68 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00001e70 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00001e78 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00001e80 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00001e88 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00001e90 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00001e98 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00001ea0 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00001ea8 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00001eb0 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00001eb8 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00001ec0 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00001ec8 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00001ed0 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00001ed8 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00001ee0 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00001ee8 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x00001ef0 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x00001ef8 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x00001f00 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x00001f08 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x00001f10 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x00001f18 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x00001f20 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x00001f28 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x00001f30 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x00001f38 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x00001f40 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x00001f48 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00001f50 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00001f58 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00001f60 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00001f68 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00001f70 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00001f78 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00001f80 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00001f88 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00001f90 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00001f98 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00001fa0 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00001fa8 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00001fb0 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00001fb8 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00001fc0 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00001fc8 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00001fd0 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00001fd8 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00001fe0 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00001fe8 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x00001ff0 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x00001ff8 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x00002000 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x00002008 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00002010 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00002018 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x00002020 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x00002028 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x00002030 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x00002038 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x00002040 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x00002048 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00002050 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00002058 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00002060 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00002068 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00002070 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00002078 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00002080 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00002088 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00002090 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00002098 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x000020a0 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x000020a8 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x000020b0 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x000020b8 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x000020c0 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x000020c8 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x000020d0 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x000020d8 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x000020e0 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x000020e8 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x000020f0 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x000020f8 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x00002100 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x00002108 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x00002110 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x00002118 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x00002120 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x00002128 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x00002130 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x00002138 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x00002140 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x00002148 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00002150 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00002158 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00002160 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00002168 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00002170 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00002178 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00002180 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00002188 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00002190 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00002198 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x000021a0 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x000021a8 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x000021b0 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x000021b8 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x000021c0 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x000021c8 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x000021d0 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x000021d8 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x000021e0 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x000021e8 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x000021f0 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x000021f8 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x00002200 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x00002208 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x00002210 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x00002218 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x00002220 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x00002228 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x00002230 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x00002238 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x00002240 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x00002248 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00002250 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00002258 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00002260 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00002268 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00002270 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00002278 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00002280 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00002288 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00002290 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00002298 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x000022a0 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x000022a8 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x000022b0 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x000022b8 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x000022c0 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x000022c8 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x000022d0 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x000022d8 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x000022e0 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x000022e8 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x000022f0 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x000022f8 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x00002300 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x00002308 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x00002310 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x00002318 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x00002320 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x00002328 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x00002330 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x00002338 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x00002340 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x00002348 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00002350 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00002358 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00002360 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00002368 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00002370 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00002378 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00002380 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00002388 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00002390 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00002398 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x000023a0 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x000023a8 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x000023b0 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x000023b8 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x000023c0 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x000023c8 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x000023d0 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x000023d8 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x000023e0 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x000023e8 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x000023f0 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x000023f8 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00002400 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00002408 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00002410 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00002418 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00002420 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00002428 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00002430 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00002438 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00002440 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00002448 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00002450 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00002458 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00002460 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00002468 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00002470 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00002478 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00002480 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00002488 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00002490 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00002498 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000024a0 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x000024a8 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000024b0 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x000024b8 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000024c0 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x000024c8 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000024d0 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x000024d8 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x000024e0 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x000024e8 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x000024f0 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x000024f8 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00002500 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00002508 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00002510 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00002518 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00002520 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00002528 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00002530 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00002538 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00002540 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00002548 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00002550 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00002558 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00002560 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00002568 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00002570 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00002578 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002580 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002588 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002590 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002598 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000025a0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000025b0 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x000025c0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000025d0 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025d8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x000025e0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025e8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x000025f0 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00002600 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002608 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00002610 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002618 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00002620 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002628 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00002630 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002638 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00002640 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002648 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00002650 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002658 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00002660 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002668 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00002670 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002678 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00002680 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002688 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00002690 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002698 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000026a0 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026a8 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000026b0 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b8 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x000026c0 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026c8 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000026d0 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026d8 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x000026e0 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026e8 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x000026f0 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026f8 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00002700 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002708 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00002710 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002718 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00002720 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002728 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00002730 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002738 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00002740 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002748 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00002750 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00002758 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00002760 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00002768 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00002770 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00002778 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00002780 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00002788 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00002790 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00002798 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000027a0 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x000027a8 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000027b0 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x000027b8 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x000027c0 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x000027c8 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x000027d0 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x000027d8 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x000027e0 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x000027e8 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x000027f0 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x000027f8 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00002800 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00002808 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00002810 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00002818 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00002820 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00002828 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00002830 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00002838 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00002840 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00002848 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00002850 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00002858 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00002860 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00002868 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00002870 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00002878 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00002880 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00002888 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00002890 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00002898 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x000028a0 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x000028a8 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x000028b0 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x000028b8 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x000028c0 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x000028c8 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x000028d0 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x000028d8 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x000028e0 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x000028e8 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x000028f0 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x000028f8 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00002900 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00002908 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00002910 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00002918 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00002920 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00002928 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00002930 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00002938 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00002940 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00002948 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00002950 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00002958 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00002960 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00002968 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00002970 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00002978 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00002980 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00002988 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00002990 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00002998 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x000029a0 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x000029a8 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x000029b0 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x000029b8 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x000029c0 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x000029c8 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x000029d0 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x000029d8 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x000029e0 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x000029e8 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x000029f0 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x000029f8 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x00002a00 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x00002a08 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x00002a10 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x00002a18 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x00002a20 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x00002a28 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x00002a30 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x00002a38 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x00002a40 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x00002a48 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00002a50 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00002a58 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00002a60 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00002a68 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00002a70 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00002a78 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00002a80 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00002a88 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00002a90 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00002a98 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00002aa0 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00002aa8 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00002ab0 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00002ab8 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00002ac0 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00002ac8 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00002ad0 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00002ad8 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00002ae0 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00002ae8 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x00002af0 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x00002af8 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x00002b00 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x00002b08 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x00002b10 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x00002b18 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x00002b20 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x00002b28 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x00002b30 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x00002b38 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x00002b40 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x00002b48 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00002b50 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00002b58 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00002b60 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00002b68 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00002b70 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00002b78 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00002b80 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00002b88 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00002b90 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00002b98 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00002ba0 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00002ba8 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00002bb0 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00002bb8 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00002bc0 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00002bc8 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00002bd0 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00002bd8 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00002be0 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00002be8 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x00002bf0 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x00002bf8 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x00002c00 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x00002c08 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x00002c10 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x00002c18 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x00002c20 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x00002c28 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x00002c30 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x00002c38 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x00002c40 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x00002c48 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00002c50 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00002c58 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00002c60 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00002c68 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00002c70 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00002c78 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00002c80 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00002c88 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00002c90 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00002c98 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00002ca0 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00002ca8 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00002cb0 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00002cb8 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00002cc0 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00002cc8 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00002cd0 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00002cd8 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00002ce0 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00002ce8 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x00002cf0 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x00002cf8 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x00002d00 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x00002d08 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x00002d10 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x00002d18 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x00002d20 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x00002d28 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x00002d30 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x00002d38 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x00002d40 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x00002d48 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00002d50 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00002d58 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00002d60 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00002d68 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00002d70 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00002d78 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00002d80 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00002d88 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00002d90 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00002d98 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00002da0 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00002da8 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00002db0 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00002db8 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00002dc0 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00002dc8 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00002dd0 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00002dd8 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00002de0 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00002de8 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x00002df0 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x00002df8 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x00002e00 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x00002e08 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x00002e10 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x00002e18 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x00002e20 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x00002e28 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x00002e30 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x00002e38 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x00002e40 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x00002e48 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00002e50 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00002e58 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00002e60 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00002e68 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00002e70 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00002e78 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00002e80 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00002e88 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00002e90 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00002e98 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00002ea0 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00002ea8 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00002eb0 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00002eb8 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00002ec0 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00002ec8 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00002ed0 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00002ed8 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00002ee0 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00002ee8 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x00002ef0 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x00002ef8 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x00002f00 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x00002f08 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x00002f10 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x00002f18 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x00002f20 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x00002f28 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x00002f30 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x00002f38 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x00002f40 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x00002f48 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00002f50 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00002f58 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00002f60 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00002f68 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00002f70 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00002f78 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00002f80 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00002f88 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00002f90 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00002f98 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00002fa0 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00002fa8 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00002fb0 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00002fb8 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00002fc0 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00002fc8 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00002fd0 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00002fd8 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00002fe0 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00002fe8 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x00002ff0 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x00002ff8 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x00003000 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x00003008 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00003010 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00003018 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x00003020 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x00003028 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x00003030 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x00003038 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x00003040 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x00003048 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00003050 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00003058 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00003060 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00003068 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00003070 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00003078 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00003080 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00003088 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00003090 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00003098 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x000030a0 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x000030a8 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x000030b0 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x000030b8 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x000030c0 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x000030c8 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x000030d0 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x000030d8 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x000030e0 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x000030e8 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x000030f0 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x000030f8 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x00003100 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x00003108 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x00003110 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x00003118 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x00003120 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x00003128 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x00003130 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x00003138 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x00003140 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x00003148 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00003150 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00003158 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00003160 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00003168 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00003170 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00003178 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00003180 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00003188 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00003190 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00003198 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x000031a0 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x000031a8 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x000031b0 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x000031b8 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x000031c0 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x000031c8 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x000031d0 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x000031d8 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x000031e0 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x000031e8 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x000031f0 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x000031f8 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x00003200 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x00003208 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x00003210 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x00003218 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x00003220 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x00003228 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x00003230 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x00003238 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x00003240 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x00003248 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00003250 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00003258 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00003260 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00003268 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00003270 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00003278 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00003280 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00003288 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00003290 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00003298 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x000032a0 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x000032a8 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x000032b0 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x000032b8 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x000032c0 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x000032c8 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x000032d0 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x000032d8 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x000032e0 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x000032e8 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x000032f0 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x000032f8 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x00003300 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x00003308 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x00003310 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x00003318 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x00003320 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x00003328 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x00003330 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x00003338 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x00003340 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x00003348 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00003350 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00003358 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00003360 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00003368 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00003370 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00003378 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00003380 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00003388 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00003390 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00003398 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x000033a0 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x000033a8 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x000033b0 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x000033b8 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x000033c0 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x000033c8 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x000033d0 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x000033d8 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x000033e0 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x000033e8 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x000033f0 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x000033f8 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00003400 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00003408 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00003410 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00003418 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00003420 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00003428 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00003430 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00003438 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00003440 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00003448 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00003450 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00003458 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00003460 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00003468 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00003470 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00003478 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00003480 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00003488 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00003490 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00003498 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x000034a0 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x000034a8 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x000034b0 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x000034b8 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x000034c0 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x000034c8 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x000034d0 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x000034d8 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x000034e0 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x000034e8 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x000034f0 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x000034f8 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00003500 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00003508 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00003510 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00003518 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00003520 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00003528 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00003530 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00003538 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00003540 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00003548 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00003550 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00003558 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00003560 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00003568 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00003570 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00003578 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00003580 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00003588 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00003590 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00003598 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x000035a0 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x000035a8 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x000035b0 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x000035b8 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x000035c0 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x000035c8 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x000035d0 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x000035d8 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x000035e0 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x000035e8 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x000035f0 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x000035f8 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00003600 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00003608 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00003610 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00003618 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00003620 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00003628 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00003630 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00003638 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00003640 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00003648 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00003650 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00003658 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00003660 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00003668 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00003670 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00003678 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00003680 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00003688 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00003690 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00003698 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x000036a0 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x000036a8 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x000036b0 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x000036b8 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x000036c0 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x000036c8 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x000036d0 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x000036d8 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x000036e0 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x000036e8 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x000036f0 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x000036f8 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00003700 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00003708 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00003710 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00003718 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00003720 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00003728 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00003730 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00003738 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00003740 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00003748 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00003750 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00003758 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00003760 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00003768 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00003770 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00003778 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00003780 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00003788 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00003790 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00003798 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x000037a0 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x000037a8 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x000037b0 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x000037b8 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x000037c0 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x000037c8 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x000037d0 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x000037d8 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x000037e0 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x000037e8 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x000037f0 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x000037f8 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00003800 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00003808 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00003810 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00003818 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00003820 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00003828 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00003830 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00003838 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00003840 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00003848 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00003850 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00003858 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00003860 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00003868 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00003870 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00003878 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00003880 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00003888 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00003890 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00003898 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x000038a0 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x000038a8 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x000038b0 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x000038b8 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x000038c0 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x000038c8 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x000038d0 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x000038d8 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x000038e0 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x000038e8 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x000038f0 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x000038f8 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00003900 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00003908 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00003910 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00003918 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00003920 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00003928 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00003930 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00003938 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00003940 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00003948 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00003950 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00003958 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00003960 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00003968 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00003970 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00003978 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00003980 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00003988 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00003990 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00003998 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x000039a0 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x000039a8 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x000039b0 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x000039b8 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x000039c0 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x000039c8 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x000039d0 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x000039d8 .quad 7784369436827535058 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path.go new file mode 100644 index 000000000..0d2dc2766 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_get_by_path uintptr + +//go:nosplit +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return F_get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_subr.go new file mode 100644 index 000000000..9087de6c1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__get_by_path = 624 +) + +const ( + _stack__get_by_path = 240 +) + +const ( + _size__get_by_path = 21752 +) + +var ( + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {12437, 240}, + {12438, 232}, + {12440, 224}, + {12442, 216}, + {12444, 208}, + {12446, 200}, + {12450, 192}, + {21752, 240}, + } +) + +var _cfunc_get_by_path = []loader.CFunc{ + {"_get_by_path_entry", 0, _entry__get_by_path, 0, nil}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_text_amd64.go new file mode 100644 index 000000000..93454ce5f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/get_by_path_text_amd64.go @@ -0,0 +1,6531 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_get_by_path = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, // .byte 32 + 0x00, //0x00000001 .byte 0 + 0x00, //0x00000002 .byte 0 + 0x00, //0x00000003 .byte 0 + 0x00, //0x00000004 .byte 0 + 0x00, //0x00000005 .byte 0 + 0x00, //0x00000006 .byte 0 + 0x00, //0x00000007 .byte 0 + 0x00, //0x00000008 .byte 0 + 0x09, //0x00000009 .byte 9 + 0x0a, //0x0000000a .byte 10 + 0x00, //0x0000000b .byte 0 + 0x00, //0x0000000c .byte 0 + 0x0d, //0x0000000d .byte 13 + 0x00, //0x0000000e .byte 0 + 0x00, //0x0000000f .byte 0 + 0x20, //0x00000010 .byte 32 + 0x00, //0x00000011 .byte 0 + 0x00, //0x00000012 .byte 0 + 0x00, //0x00000013 .byte 0 + 0x00, //0x00000014 .byte 0 + 0x00, //0x00000015 .byte 0 + 0x00, //0x00000016 .byte 0 + 0x00, //0x00000017 .byte 0 + 0x00, //0x00000018 .byte 0 + 0x09, //0x00000019 .byte 9 + 0x0a, //0x0000001a .byte 10 + 0x00, //0x0000001b .byte 0 + 0x00, //0x0000001c .byte 0 + 0x0d, //0x0000001d .byte 13 + 0x00, //0x0000001e .byte 0 + 0x00, //0x0000001f .byte 0 + //0x00000020 LCPI0_1 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00000020 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00000030 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000040 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000060 LCPI0_3 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000060 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000070 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000080 LCPI0_7 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000080 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000090 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000000a0 LCPI0_8 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000000c0 LCPI0_9 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000000c0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000000d0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x000000e0 LCPI0_10 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000000e0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000000f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00000100 LCPI0_11 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000100 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000110 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00000120 LCPI0_12 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000120 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000130 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000140 LCPI0_13 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000140 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000150 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000160 LCPI0_14 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000160 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000170 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000180 LCPI0_15 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000180 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000190 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x000001a0 LCPI0_16 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000001a0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000001b0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000001c0 LCPI0_17 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001c0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001d0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000001e0 .p2align 4, 0x00 + //0x000001e0 LCPI0_4 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x000001e0 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x000001f0 LCPI0_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000001f0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000200 LCPI0_6 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000200 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000210 LCPI0_18 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000210 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000220 LCPI0_19 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000220 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000230 LCPI0_20 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000230 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000240 LCPI0_21 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000240 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000250 LCPI0_22 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000250 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000260 LCPI0_23 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000260 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000270 .p2align 4, 0x90 + //0x00000270 _get_by_path + 0x55, //0x00000270 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000271 movq %rsp, %rbp + 0x41, 0x57, //0x00000274 pushq %r15 + 0x41, 0x56, //0x00000276 pushq %r14 + 0x41, 0x55, //0x00000278 pushq %r13 + 0x41, 0x54, //0x0000027a pushq %r12 + 0x53, //0x0000027c pushq %rbx + 0x48, 0x81, 0xec, 0xc0, 0x00, 0x00, 0x00, //0x0000027d subq $192, %rsp + 0x49, 0x89, 0xca, //0x00000284 movq %rcx, %r10 + 0x49, 0x89, 0xf6, //0x00000287 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x0000028a movq %rdi, %r15 + 0x48, 0x8b, 0x4a, 0x08, //0x0000028d movq $8(%rdx), %rcx + 0x48, 0x85, 0xc9, //0x00000291 testq %rcx, %rcx + 0x48, 0x89, 0x74, 0x24, 0x08, //0x00000294 movq %rsi, $8(%rsp) + 0x48, 0x89, 0x7c, 0x24, 0x10, //0x00000299 movq %rdi, $16(%rsp) + 0x0f, 0x84, 0x2f, 0x2c, 0x00, 0x00, //0x0000029e je LBB0_525 + 0x4c, 0x8b, 0x2a, //0x000002a4 movq (%rdx), %r13 + 0x48, 0xc1, 0xe1, 0x04, //0x000002a7 shlq $4, %rcx + 0x4c, 0x01, 0xe9, //0x000002ab addq %r13, %rcx + 0x4d, 0x8d, 0x5f, 0x08, //0x000002ae leaq $8(%r15), %r11 + 0x4d, 0x8b, 0x07, //0x000002b2 movq (%r15), %r8 + 0x49, 0x8b, 0x06, //0x000002b5 movq (%r14), %rax + 0xc5, 0xfe, 0x6f, 0x05, 0x40, 0xfd, 0xff, 0xff, //0x000002b8 vmovdqu $-704(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xb8, 0xfd, 0xff, 0xff, //0x000002c0 vmovdqu $-584(%rip), %ymm1 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0xd0, 0xfd, 0xff, 0xff, //0x000002c8 vmovdqu $-560(%rip), %ymm2 /* LCPI0_8+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x1d, 0x48, 0xfd, 0xff, 0xff, //0x000002d0 vmovdqu $-696(%rip), %ymm3 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x60, 0xfd, 0xff, 0xff, //0x000002d8 vmovdqu $-672(%rip), %ymm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x78, 0xfd, 0xff, 0xff, //0x000002e0 vmovdqu $-648(%rip), %ymm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x000002e8 vmovdqu $-240(%rip), %xmm8 /* LCPI0_6+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x000002f0 vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xe3, 0xfd, 0xff, 0xff, //0x000002f5 vmovdqu $-541(%rip), %ymm10 /* LCPI0_10+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xfb, 0xfd, 0xff, 0xff, //0x000002fd vmovdqu $-517(%rip), %ymm11 /* LCPI0_11+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xb3, 0xfd, 0xff, 0xff, //0x00000305 vmovdqu $-589(%rip), %ymm13 /* LCPI0_9+0(%rip) */ + 0x4c, 0x89, 0x5c, 0x24, 0x18, //0x0000030d movq %r11, $24(%rsp) + 0x4c, 0x89, 0x54, 0x24, 0x28, //0x00000312 movq %r10, $40(%rsp) + 0x48, 0x89, 0x8c, 0x24, 0xa0, 0x00, 0x00, 0x00, //0x00000317 movq %rcx, $160(%rsp) + //0x0000031f LBB0_2 + 0x49, 0x8b, 0x0b, //0x0000031f movq (%r11), %rcx + 0x48, 0x39, 0xc8, //0x00000322 cmpq %rcx, %rax + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00000325 jae LBB0_7 + 0x41, 0x8a, 0x14, 0x00, //0x0000032b movb (%r8,%rax), %dl + 0x80, 0xfa, 0x0d, //0x0000032f cmpb $13, %dl + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000332 je LBB0_7 + 0x80, 0xfa, 0x20, //0x00000338 cmpb $32, %dl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000033b je LBB0_7 + 0x80, 0xc2, 0xf7, //0x00000341 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000344 cmpb $1, %dl + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x00000347 jbe LBB0_7 + 0x48, 0x89, 0xc2, //0x0000034d movq %rax, %rdx + 0xe9, 0xc3, 0x01, 0x00, 0x00, //0x00000350 jmp LBB0_33 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000355 .p2align 4, 0x90 + //0x00000360 LBB0_7 + 0x48, 0x8d, 0x50, 0x01, //0x00000360 leaq $1(%rax), %rdx + 0x48, 0x39, 0xca, //0x00000364 cmpq %rcx, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000367 jae LBB0_11 + 0x41, 0x8a, 0x1c, 0x10, //0x0000036d movb (%r8,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000371 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000374 je LBB0_11 + 0x80, 0xfb, 0x20, //0x0000037a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000037d je LBB0_11 + 0x80, 0xc3, 0xf7, //0x00000383 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000386 cmpb $1, %bl + 0x0f, 0x87, 0x89, 0x01, 0x00, 0x00, //0x00000389 ja LBB0_33 + 0x90, //0x0000038f .p2align 4, 0x90 + //0x00000390 LBB0_11 + 0x48, 0x8d, 0x50, 0x02, //0x00000390 leaq $2(%rax), %rdx + 0x48, 0x39, 0xca, //0x00000394 cmpq %rcx, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000397 jae LBB0_15 + 0x41, 0x8a, 0x1c, 0x10, //0x0000039d movb (%r8,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x000003a1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000003a4 je LBB0_15 + 0x80, 0xfb, 0x20, //0x000003aa cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000003ad je LBB0_15 + 0x80, 0xc3, 0xf7, //0x000003b3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000003b6 cmpb $1, %bl + 0x0f, 0x87, 0x59, 0x01, 0x00, 0x00, //0x000003b9 ja LBB0_33 + 0x90, //0x000003bf .p2align 4, 0x90 + //0x000003c0 LBB0_15 + 0x48, 0x8d, 0x50, 0x03, //0x000003c0 leaq $3(%rax), %rdx + 0x48, 0x39, 0xca, //0x000003c4 cmpq %rcx, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000003c7 jae LBB0_19 + 0x41, 0x8a, 0x1c, 0x10, //0x000003cd movb (%r8,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x000003d1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000003d4 je LBB0_19 + 0x80, 0xfb, 0x20, //0x000003da cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000003dd je LBB0_19 + 0x80, 0xc3, 0xf7, //0x000003e3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000003e6 cmpb $1, %bl + 0x0f, 0x87, 0x29, 0x01, 0x00, 0x00, //0x000003e9 ja LBB0_33 + 0x90, //0x000003ef .p2align 4, 0x90 + //0x000003f0 LBB0_19 + 0x4c, 0x8d, 0x50, 0x04, //0x000003f0 leaq $4(%rax), %r10 + 0x48, 0x89, 0xcf, //0x000003f4 movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000003f7 subq %r10, %rdi + 0x0f, 0x86, 0xe0, 0x00, 0x00, 0x00, //0x000003fa jbe LBB0_627 + 0x4d, 0x01, 0xc2, //0x00000400 addq %r8, %r10 + 0x48, 0x83, 0xff, 0x20, //0x00000403 cmpq $32, %rdi + 0x0f, 0x82, 0x58, 0x00, 0x00, 0x00, //0x00000407 jb LBB0_25 + 0x48, 0x89, 0xca, //0x0000040d movq %rcx, %rdx + 0x48, 0x29, 0xc2, //0x00000410 subq %rax, %rdx + 0x48, 0x83, 0xc2, 0xdc, //0x00000413 addq $-36, %rdx + 0x48, 0x89, 0xd6, //0x00000417 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x0000041a andq $-32, %rsi + 0x48, 0x01, 0xc6, //0x0000041e addq %rax, %rsi + 0x49, 0x8d, 0x74, 0x30, 0x24, //0x00000421 leaq $36(%r8,%rsi), %rsi + 0x83, 0xe2, 0x1f, //0x00000426 andl $31, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000429 .p2align 4, 0x90 + //0x00000430 LBB0_22 + 0xc4, 0x41, 0x7e, 0x6f, 0x32, //0x00000430 vmovdqu (%r10), %ymm14 + 0xc4, 0x42, 0x7d, 0x00, 0xfe, //0x00000435 vpshufb %ymm14, %ymm0, %ymm15 + 0xc4, 0x41, 0x0d, 0x74, 0xf7, //0x0000043a vpcmpeqb %ymm15, %ymm14, %ymm14 + 0xc4, 0xc1, 0x7d, 0xd7, 0xde, //0x0000043f vpmovmskb %ymm14, %ebx + 0x83, 0xfb, 0xff, //0x00000444 cmpl $-1, %ebx + 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x00000447 jne LBB0_32 + 0x49, 0x83, 0xc2, 0x20, //0x0000044d addq $32, %r10 + 0x48, 0x83, 0xc7, 0xe0, //0x00000451 addq $-32, %rdi + 0x48, 0x83, 0xff, 0x1f, //0x00000455 cmpq $31, %rdi + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00000459 ja LBB0_22 + 0x48, 0x89, 0xd7, //0x0000045f movq %rdx, %rdi + 0x49, 0x89, 0xf2, //0x00000462 movq %rsi, %r10 + //0x00000465 LBB0_25 + 0x48, 0x85, 0xff, //0x00000465 testq %rdi, %rdi + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00000468 je LBB0_31 + 0x4d, 0x89, 0xc1, //0x0000046e movq %r8, %r9 + 0x4d, 0x8d, 0x04, 0x3a, //0x00000471 leaq (%r10,%rdi), %r8 + 0x49, 0xff, 0xc2, //0x00000475 incq %r10 + 0x4c, 0x89, 0xd2, //0x00000478 movq %r10, %rdx + //0x0000047b LBB0_27 + 0x0f, 0xbe, 0x5a, 0xff, //0x0000047b movsbl $-1(%rdx), %ebx + 0x83, 0xfb, 0x20, //0x0000047f cmpl $32, %ebx + 0x0f, 0x87, 0x1a, 0x2a, 0x00, 0x00, //0x00000482 ja LBB0_34 + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000488 movabsq $4294977024, %rsi + 0x48, 0x0f, 0xa3, 0xde, //0x00000492 btq %rbx, %rsi + 0x0f, 0x83, 0x06, 0x2a, 0x00, 0x00, //0x00000496 jae LBB0_34 + 0x48, 0xff, 0xcf, //0x0000049c decq %rdi + 0x48, 0xff, 0xc2, //0x0000049f incq %rdx + 0x48, 0x85, 0xff, //0x000004a2 testq %rdi, %rdi + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x000004a5 jne LBB0_27 + 0x4d, 0x89, 0xc2, //0x000004ab movq %r8, %r10 + 0x4d, 0x89, 0xc8, //0x000004ae movq %r9, %r8 + //0x000004b1 LBB0_31 + 0x4d, 0x29, 0xc2, //0x000004b1 subq %r8, %r10 + 0x4c, 0x89, 0xd2, //0x000004b4 movq %r10, %rdx + 0x48, 0x39, 0xca, //0x000004b7 cmpq %rcx, %rdx + 0x0f, 0x82, 0x58, 0x00, 0x00, 0x00, //0x000004ba jb LBB0_33 + //0x000004c0 LBB0_35 + 0x31, 0xc9, //0x000004c0 xorl %ecx, %ecx + 0x49, 0x89, 0xc2, //0x000004c2 movq %rax, %r10 + 0x49, 0x8b, 0x45, 0x00, //0x000004c5 movq (%r13), %rax + 0x48, 0x85, 0xc0, //0x000004c9 testq %rax, %rax + 0x0f, 0x85, 0x5e, 0x00, 0x00, 0x00, //0x000004cc jne LBB0_36 + 0xe9, 0x2e, 0x2c, 0x00, 0x00, //0x000004d2 jmp LBB0_628 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004d7 .p2align 4, 0x90 + //0x000004e0 LBB0_627 + 0x4d, 0x89, 0x16, //0x000004e0 movq %r10, (%r14) + 0x31, 0xc9, //0x000004e3 xorl %ecx, %ecx + 0x49, 0x8b, 0x45, 0x00, //0x000004e5 movq (%r13), %rax + 0x48, 0x85, 0xc0, //0x000004e9 testq %rax, %rax + 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x000004ec jne LBB0_36 + 0xe9, 0x0e, 0x2c, 0x00, 0x00, //0x000004f2 jmp LBB0_628 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004f7 .p2align 4, 0x90 + //0x00000500 LBB0_32 + 0x4d, 0x29, 0xc2, //0x00000500 subq %r8, %r10 + 0xf7, 0xd3, //0x00000503 notl %ebx + 0x48, 0x63, 0xd3, //0x00000505 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00000508 bsfq %rdx, %rdx + 0x4c, 0x01, 0xd2, //0x0000050c addq %r10, %rdx + 0x48, 0x39, 0xca, //0x0000050f cmpq %rcx, %rdx + 0x0f, 0x83, 0xa8, 0xff, 0xff, 0xff, //0x00000512 jae LBB0_35 + //0x00000518 LBB0_33 + 0x4c, 0x8d, 0x52, 0x01, //0x00000518 leaq $1(%rdx), %r10 + 0x4d, 0x89, 0x16, //0x0000051c movq %r10, (%r14) + 0x41, 0x8a, 0x0c, 0x10, //0x0000051f movb (%r8,%rdx), %cl + 0x49, 0x8b, 0x45, 0x00, //0x00000523 movq (%r13), %rax + 0x48, 0x85, 0xc0, //0x00000527 testq %rax, %rax + 0x0f, 0x84, 0xd5, 0x2b, 0x00, 0x00, //0x0000052a je LBB0_628 + //0x00000530 LBB0_36 + 0x8a, 0x40, 0x17, //0x00000530 movb $23(%rax), %al + 0x24, 0x1f, //0x00000533 andb $31, %al + 0x3c, 0x02, //0x00000535 cmpb $2, %al + 0x0f, 0x84, 0x53, 0x1a, 0x00, 0x00, //0x00000537 je LBB0_387 + 0x3c, 0x18, //0x0000053d cmpb $24, %al + 0x0f, 0x85, 0xc0, 0x2b, 0x00, 0x00, //0x0000053f jne LBB0_628 + 0x80, 0xf9, 0x7b, //0x00000545 cmpb $123, %cl + 0x0f, 0x85, 0xa3, 0x2d, 0x00, 0x00, //0x00000548 jne LBB0_657 + //0x0000054e LBB0_39 + 0x49, 0x8b, 0x03, //0x0000054e movq (%r11), %rax + 0x49, 0x39, 0xc2, //0x00000551 cmpq %rax, %r10 + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00000554 jae LBB0_44 + 0x43, 0x8a, 0x0c, 0x10, //0x0000055a movb (%r8,%r10), %cl + 0x80, 0xf9, 0x0d, //0x0000055e cmpb $13, %cl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000561 je LBB0_44 + 0x80, 0xf9, 0x20, //0x00000567 cmpb $32, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000056a je LBB0_44 + 0x80, 0xc1, 0xf7, //0x00000570 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000573 cmpb $1, %cl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x00000576 jbe LBB0_44 + 0x4c, 0x89, 0xd1, //0x0000057c movq %r10, %rcx + 0xe9, 0x84, 0x01, 0x00, 0x00, //0x0000057f jmp LBB0_70 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000584 .p2align 4, 0x90 + //0x00000590 LBB0_44 + 0x49, 0x8d, 0x4a, 0x01, //0x00000590 leaq $1(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00000594 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000597 jae LBB0_48 + 0x41, 0x8a, 0x14, 0x08, //0x0000059d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000005a1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000005a4 je LBB0_48 + 0x80, 0xfa, 0x20, //0x000005aa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000005ad je LBB0_48 + 0x80, 0xc2, 0xf7, //0x000005b3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000005b6 cmpb $1, %dl + 0x0f, 0x87, 0x49, 0x01, 0x00, 0x00, //0x000005b9 ja LBB0_70 + 0x90, //0x000005bf .p2align 4, 0x90 + //0x000005c0 LBB0_48 + 0x49, 0x8d, 0x4a, 0x02, //0x000005c0 leaq $2(%r10), %rcx + 0x48, 0x39, 0xc1, //0x000005c4 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000005c7 jae LBB0_52 + 0x41, 0x8a, 0x14, 0x08, //0x000005cd movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000005d1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000005d4 je LBB0_52 + 0x80, 0xfa, 0x20, //0x000005da cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000005dd je LBB0_52 + 0x80, 0xc2, 0xf7, //0x000005e3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000005e6 cmpb $1, %dl + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x000005e9 ja LBB0_70 + 0x90, //0x000005ef .p2align 4, 0x90 + //0x000005f0 LBB0_52 + 0x49, 0x8d, 0x4a, 0x03, //0x000005f0 leaq $3(%r10), %rcx + 0x48, 0x39, 0xc1, //0x000005f4 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000005f7 jae LBB0_56 + 0x41, 0x8a, 0x14, 0x08, //0x000005fd movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00000601 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000604 je LBB0_56 + 0x80, 0xfa, 0x20, //0x0000060a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000060d je LBB0_56 + 0x80, 0xc2, 0xf7, //0x00000613 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000616 cmpb $1, %dl + 0x0f, 0x87, 0xe9, 0x00, 0x00, 0x00, //0x00000619 ja LBB0_70 + 0x90, //0x0000061f .p2align 4, 0x90 + //0x00000620 LBB0_56 + 0x49, 0x8d, 0x4a, 0x04, //0x00000620 leaq $4(%r10), %rcx + 0x48, 0x89, 0xc2, //0x00000624 movq %rax, %rdx + 0x48, 0x29, 0xca, //0x00000627 subq %rcx, %rdx + 0x0f, 0x86, 0xbd, 0x2a, 0x00, 0x00, //0x0000062a jbe LBB0_625 + 0x4c, 0x01, 0xc1, //0x00000630 addq %r8, %rcx + 0x48, 0x83, 0xfa, 0x20, //0x00000633 cmpq $32, %rdx + 0x0f, 0x82, 0x57, 0x00, 0x00, 0x00, //0x00000637 jb LBB0_62 + 0x48, 0x89, 0xc6, //0x0000063d movq %rax, %rsi + 0x4c, 0x29, 0xd6, //0x00000640 subq %r10, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x00000643 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x00000647 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x0000064a andq $-32, %rdi + 0x4c, 0x01, 0xd7, //0x0000064e addq %r10, %rdi + 0x49, 0x8d, 0x7c, 0x38, 0x24, //0x00000651 leaq $36(%r8,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x00000656 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000659 .p2align 4, 0x90 + //0x00000660 LBB0_59 + 0xc5, 0x7e, 0x6f, 0x31, //0x00000660 vmovdqu (%rcx), %ymm14 + 0xc4, 0x42, 0x7d, 0x00, 0xfe, //0x00000664 vpshufb %ymm14, %ymm0, %ymm15 + 0xc4, 0x41, 0x0d, 0x74, 0xf7, //0x00000669 vpcmpeqb %ymm15, %ymm14, %ymm14 + 0xc4, 0xc1, 0x7d, 0xd7, 0xde, //0x0000066e vpmovmskb %ymm14, %ebx + 0x83, 0xfb, 0xff, //0x00000673 cmpl $-1, %ebx + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00000676 jne LBB0_69 + 0x48, 0x83, 0xc1, 0x20, //0x0000067c addq $32, %rcx + 0x48, 0x83, 0xc2, 0xe0, //0x00000680 addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x00000684 cmpq $31, %rdx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00000688 ja LBB0_59 + 0x48, 0x89, 0xf2, //0x0000068e movq %rsi, %rdx + 0x48, 0x89, 0xf9, //0x00000691 movq %rdi, %rcx + //0x00000694 LBB0_62 + 0x48, 0x85, 0xd2, //0x00000694 testq %rdx, %rdx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00000697 je LBB0_68 + 0x48, 0x8d, 0x34, 0x11, //0x0000069d leaq (%rcx,%rdx), %rsi + 0x48, 0xff, 0xc1, //0x000006a1 incq %rcx + //0x000006a4 LBB0_64 + 0x0f, 0xbe, 0x79, 0xff, //0x000006a4 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x000006a8 cmpl $32, %edi + 0x0f, 0x87, 0x0d, 0x05, 0x00, 0x00, //0x000006ab ja LBB0_125 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000006b1 movabsq $4294977024, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x000006bb btq %rdi, %rbx + 0x0f, 0x83, 0xf9, 0x04, 0x00, 0x00, //0x000006bf jae LBB0_125 + 0x48, 0xff, 0xca, //0x000006c5 decq %rdx + 0x48, 0xff, 0xc1, //0x000006c8 incq %rcx + 0x48, 0x85, 0xd2, //0x000006cb testq %rdx, %rdx + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x000006ce jne LBB0_64 + 0x48, 0x89, 0xf1, //0x000006d4 movq %rsi, %rcx + //0x000006d7 LBB0_68 + 0x4c, 0x29, 0xc1, //0x000006d7 subq %r8, %rcx + 0x48, 0x39, 0xc1, //0x000006da cmpq %rax, %rcx + 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x000006dd jb LBB0_70 + 0xe9, 0x09, 0x2c, 0x00, 0x00, //0x000006e3 jmp LBB0_657 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000006e8 .p2align 4, 0x90 + //0x000006f0 LBB0_69 + 0x4c, 0x29, 0xc1, //0x000006f0 subq %r8, %rcx + 0xf7, 0xd3, //0x000006f3 notl %ebx + 0x48, 0x63, 0xd3, //0x000006f5 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x000006f8 bsfq %rdx, %rdx + 0x48, 0x01, 0xd1, //0x000006fc addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x000006ff cmpq %rax, %rcx + 0x0f, 0x83, 0xe9, 0x2b, 0x00, 0x00, //0x00000702 jae LBB0_657 + //0x00000708 LBB0_70 + 0x4c, 0x8d, 0x49, 0x01, //0x00000708 leaq $1(%rcx), %r9 + 0x4d, 0x89, 0x0e, //0x0000070c movq %r9, (%r14) + 0x41, 0x8a, 0x04, 0x08, //0x0000070f movb (%r8,%rcx), %al + 0x3c, 0x22, //0x00000713 cmpb $34, %al + 0x0f, 0x85, 0xfc, 0x29, 0x00, 0x00, //0x00000715 jne LBB0_629 + 0x49, 0x8b, 0x33, //0x0000071b movq (%r11), %rsi + 0x48, 0x89, 0xf0, //0x0000071e movq %rsi, %rax + 0x4c, 0x29, 0xc8, //0x00000721 subq %r9, %rax + 0x0f, 0x84, 0x08, 0x4e, 0x00, 0x00, //0x00000724 je LBB0_1093 + 0x49, 0x8b, 0x55, 0x08, //0x0000072a movq $8(%r13), %rdx + 0x4c, 0x8b, 0x22, //0x0000072e movq (%rdx), %r12 + 0x48, 0x8b, 0x52, 0x08, //0x00000731 movq $8(%rdx), %rdx + 0x4d, 0x01, 0xc1, //0x00000735 addq %r8, %r9 + 0x48, 0x83, 0xf8, 0x40, //0x00000738 cmpq $64, %rax + 0x4c, 0x89, 0x04, 0x24, //0x0000073c movq %r8, (%rsp) + 0x48, 0x89, 0xb4, 0x24, 0x98, 0x00, 0x00, 0x00, //0x00000740 movq %rsi, $152(%rsp) + 0x0f, 0x82, 0x87, 0x04, 0x00, 0x00, //0x00000748 jb LBB0_126 + 0x4c, 0x89, 0x64, 0x24, 0x20, //0x0000074e movq %r12, $32(%rsp) + 0x4d, 0x89, 0xee, //0x00000753 movq %r13, %r14 + 0x41, 0x89, 0xc2, //0x00000756 movl %eax, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00000759 andl $63, %r10d + 0x48, 0x29, 0xce, //0x0000075d subq %rcx, %rsi + 0x48, 0x83, 0xc6, 0xbf, //0x00000760 addq $-65, %rsi + 0x48, 0x83, 0xe6, 0xc0, //0x00000764 andq $-64, %rsi + 0x48, 0x01, 0xce, //0x00000768 addq %rcx, %rsi + 0x49, 0x8d, 0x74, 0x30, 0x41, //0x0000076b leaq $65(%r8,%rsi), %rsi + 0x48, 0x89, 0x74, 0x24, 0x30, //0x00000770 movq %rsi, $48(%rsp) + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000775 movq $-1, %r15 + 0x4d, 0x89, 0xc8, //0x0000077c movq %r9, %r8 + 0x31, 0xdb, //0x0000077f xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000781 .p2align 4, 0x90 + //0x00000790 LBB0_74 + 0xc4, 0x41, 0x7e, 0x6f, 0x30, //0x00000790 vmovdqu (%r8), %ymm14 + 0xc4, 0x41, 0x7e, 0x6f, 0x78, 0x20, //0x00000795 vmovdqu $32(%r8), %ymm15 + 0xc5, 0x0d, 0x74, 0xe1, //0x0000079b vpcmpeqb %ymm1, %ymm14, %ymm12 + 0xc4, 0x41, 0x7d, 0xd7, 0xdc, //0x0000079f vpmovmskb %ymm12, %r11d + 0xc5, 0x05, 0x74, 0xe1, //0x000007a4 vpcmpeqb %ymm1, %ymm15, %ymm12 + 0xc4, 0xc1, 0x7d, 0xd7, 0xfc, //0x000007a8 vpmovmskb %ymm12, %edi + 0xc5, 0x0d, 0x74, 0xe2, //0x000007ad vpcmpeqb %ymm2, %ymm14, %ymm12 + 0xc4, 0x41, 0x7d, 0xd7, 0xec, //0x000007b1 vpmovmskb %ymm12, %r13d + 0xc5, 0x05, 0x74, 0xe2, //0x000007b6 vpcmpeqb %ymm2, %ymm15, %ymm12 + 0xc4, 0x41, 0x7d, 0xd7, 0xe4, //0x000007ba vpmovmskb %ymm12, %r12d + 0x48, 0xc1, 0xe7, 0x20, //0x000007bf shlq $32, %rdi + 0x49, 0xc1, 0xe4, 0x20, //0x000007c3 shlq $32, %r12 + 0x4d, 0x09, 0xe5, //0x000007c7 orq %r12, %r13 + 0x49, 0x83, 0xff, 0xff, //0x000007ca cmpq $-1, %r15 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000007ce jne LBB0_76 + 0x4d, 0x85, 0xed, //0x000007d4 testq %r13, %r13 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000007d7 jne LBB0_84 + //0x000007dd LBB0_76 + 0x4c, 0x09, 0xdf, //0x000007dd orq %r11, %rdi + 0x4c, 0x89, 0xee, //0x000007e0 movq %r13, %rsi + 0x48, 0x09, 0xde, //0x000007e3 orq %rbx, %rsi + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000007e6 jne LBB0_85 + //0x000007ec LBB0_77 + 0x48, 0x85, 0xff, //0x000007ec testq %rdi, %rdi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x000007ef jne LBB0_86 + //0x000007f5 LBB0_78 + 0x48, 0x83, 0xc0, 0xc0, //0x000007f5 addq $-64, %rax + 0x49, 0x83, 0xc0, 0x40, //0x000007f9 addq $64, %r8 + 0x48, 0x83, 0xf8, 0x3f, //0x000007fd cmpq $63, %rax + 0x0f, 0x87, 0x89, 0xff, 0xff, 0xff, //0x00000801 ja LBB0_74 + 0xe9, 0x4a, 0x03, 0x00, 0x00, //0x00000807 jmp LBB0_79 + //0x0000080c LBB0_84 + 0x4d, 0x89, 0xc4, //0x0000080c movq %r8, %r12 + 0x4c, 0x2b, 0x24, 0x24, //0x0000080f subq (%rsp), %r12 + 0x4d, 0x0f, 0xbc, 0xfd, //0x00000813 bsfq %r13, %r15 + 0x4d, 0x01, 0xe7, //0x00000817 addq %r12, %r15 + 0x4c, 0x09, 0xdf, //0x0000081a orq %r11, %rdi + 0x4c, 0x89, 0xee, //0x0000081d movq %r13, %rsi + 0x48, 0x09, 0xde, //0x00000820 orq %rbx, %rsi + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000823 je LBB0_77 + //0x00000829 LBB0_85 + 0x49, 0x89, 0xdc, //0x00000829 movq %rbx, %r12 + 0x49, 0xf7, 0xd4, //0x0000082c notq %r12 + 0x4d, 0x21, 0xec, //0x0000082f andq %r13, %r12 + 0x4f, 0x8d, 0x1c, 0x24, //0x00000832 leaq (%r12,%r12), %r11 + 0x49, 0x09, 0xdb, //0x00000836 orq %rbx, %r11 + 0x4c, 0x89, 0x5c, 0x24, 0x38, //0x00000839 movq %r11, $56(%rsp) + 0x49, 0xf7, 0xd3, //0x0000083e notq %r11 + 0x4d, 0x21, 0xeb, //0x00000841 andq %r13, %r11 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000844 movabsq $-6148914691236517206, %rbx + 0x49, 0x21, 0xdb, //0x0000084e andq %rbx, %r11 + 0x31, 0xdb, //0x00000851 xorl %ebx, %ebx + 0x4d, 0x01, 0xe3, //0x00000853 addq %r12, %r11 + 0x0f, 0x92, 0xc3, //0x00000856 setb %bl + 0x4d, 0x01, 0xdb, //0x00000859 addq %r11, %r11 + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000085c movabsq $6148914691236517205, %rsi + 0x49, 0x31, 0xf3, //0x00000866 xorq %rsi, %r11 + 0x4c, 0x23, 0x5c, 0x24, 0x38, //0x00000869 andq $56(%rsp), %r11 + 0x49, 0xf7, 0xd3, //0x0000086e notq %r11 + 0x4c, 0x21, 0xdf, //0x00000871 andq %r11, %rdi + 0x48, 0x85, 0xff, //0x00000874 testq %rdi, %rdi + 0x0f, 0x84, 0x78, 0xff, 0xff, 0xff, //0x00000877 je LBB0_78 + 0x90, 0x90, 0x90, //0x0000087d .p2align 4, 0x90 + //0x00000880 LBB0_86 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000880 bsfq %rdi, %rax + 0x4c, 0x2b, 0x04, 0x24, //0x00000884 subq (%rsp), %r8 + 0x4d, 0x8d, 0x54, 0x00, 0x01, //0x00000888 leaq $1(%r8,%rax), %r10 + 0x4d, 0x89, 0xf5, //0x0000088d movq %r14, %r13 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00000890 movq $24(%rsp), %r11 + 0x4c, 0x8b, 0x64, 0x24, 0x20, //0x00000895 movq $32(%rsp), %r12 + //0x0000089a LBB0_87 + 0x4d, 0x85, 0xd2, //0x0000089a testq %r10, %r10 + 0x0f, 0x88, 0x97, 0x4c, 0x00, 0x00, //0x0000089d js LBB0_1094 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000008a3 movq $8(%rsp), %r14 + 0x4d, 0x89, 0x16, //0x000008a8 movq %r10, (%r14) + 0x49, 0x83, 0xff, 0xff, //0x000008ab cmpq $-1, %r15 + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000008af je LBB0_90 + 0x4d, 0x39, 0xd7, //0x000008b5 cmpq %r10, %r15 + 0x0f, 0x8e, 0x3b, 0x03, 0x00, 0x00, //0x000008b8 jle LBB0_127 + //0x000008be LBB0_90 + 0x4c, 0x89, 0xd0, //0x000008be movq %r10, %rax + 0x48, 0x29, 0xc8, //0x000008c1 subq %rcx, %rax + 0x48, 0x83, 0xc0, 0xfe, //0x000008c4 addq $-2, %rax + 0x48, 0x89, 0xc1, //0x000008c8 movq %rax, %rcx + 0x48, 0x09, 0xd1, //0x000008cb orq %rdx, %rcx + 0x4c, 0x8b, 0x04, 0x24, //0x000008ce movq (%rsp), %r8 + 0x0f, 0x84, 0xd8, 0x00, 0x00, 0x00, //0x000008d2 je LBB0_101 + 0x48, 0x39, 0xd0, //0x000008d8 cmpq %rdx, %rax + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000008db movq $16(%rsp), %r15 + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x000008e0 jne LBB0_102 + 0x48, 0x83, 0xfa, 0x20, //0x000008e6 cmpq $32, %rdx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x000008ea jb LBB0_97 + 0x48, 0x8d, 0x42, 0xe0, //0x000008f0 leaq $-32(%rdx), %rax + 0x48, 0x89, 0xc6, //0x000008f4 movq %rax, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x000008f7 andq $-32, %rsi + 0x49, 0x8d, 0x4c, 0x31, 0x20, //0x000008fb leaq $32(%r9,%rsi), %rcx + 0x49, 0x8d, 0x74, 0x34, 0x20, //0x00000900 leaq $32(%r12,%rsi), %rsi + 0x83, 0xe0, 0x1f, //0x00000905 andl $31, %eax + 0x31, 0xff, //0x00000908 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000090a .p2align 4, 0x90 + //0x00000910 LBB0_94 + 0xc4, 0x41, 0x7e, 0x6f, 0x24, 0x39, //0x00000910 vmovdqu (%r9,%rdi), %ymm12 + 0xc4, 0x41, 0x1d, 0x74, 0x24, 0x3c, //0x00000916 vpcmpeqb (%r12,%rdi), %ymm12, %ymm12 + 0xc4, 0xc1, 0x7d, 0xd7, 0xdc, //0x0000091c vpmovmskb %ymm12, %ebx + 0x83, 0xfb, 0xff, //0x00000921 cmpl $-1, %ebx + 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x00000924 jne LBB0_112 + 0x48, 0x83, 0xc2, 0xe0, //0x0000092a addq $-32, %rdx + 0x48, 0x83, 0xc7, 0x20, //0x0000092e addq $32, %rdi + 0x48, 0x83, 0xfa, 0x1f, //0x00000932 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00000936 ja LBB0_94 + 0x48, 0x89, 0xc2, //0x0000093c movq %rax, %rdx + 0x49, 0x89, 0xf4, //0x0000093f movq %rsi, %r12 + 0x49, 0x89, 0xc9, //0x00000942 movq %rcx, %r9 + //0x00000945 LBB0_97 + 0x44, 0x89, 0xce, //0x00000945 movl %r9d, %esi + 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x00000948 andl $4095, %esi + 0x44, 0x89, 0xe1, //0x0000094e movl %r12d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00000951 andl $4095, %ecx + 0x48, 0x81, 0xf9, 0xe0, 0x0f, 0x00, 0x00, //0x00000957 cmpq $4064, %rcx + 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x0000095e ja LBB0_103 + 0x81, 0xfe, 0xe1, 0x0f, 0x00, 0x00, //0x00000964 cmpl $4065, %esi + 0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x0000096a jae LBB0_103 + 0xc4, 0x41, 0x7e, 0x6f, 0x21, //0x00000970 vmovdqu (%r9), %ymm12 + 0xc4, 0x41, 0x1d, 0x74, 0x24, 0x24, //0x00000975 vpcmpeqb (%r12), %ymm12, %ymm12 + 0xc4, 0xc1, 0x7d, 0xd7, 0xc4, //0x0000097b vpmovmskb %ymm12, %eax + 0x83, 0xf8, 0xff, //0x00000980 cmpl $-1, %eax + 0x0f, 0x84, 0x38, 0x01, 0x00, 0x00, //0x00000983 je LBB0_117 + 0xf7, 0xd0, //0x00000989 notl %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x0000098b bsfq %rax, %rax + 0x48, 0x39, 0xd0, //0x0000098f cmpq %rdx, %rax + 0x0f, 0x93, 0xc2, //0x00000992 setae %dl + 0x44, 0x0f, 0xb6, 0xca, //0x00000995 movzbl %dl, %r9d + 0x49, 0x8b, 0x13, //0x00000999 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x0000099c cmpq %rdx, %r10 + 0x0f, 0x82, 0x8b, 0x01, 0x00, 0x00, //0x0000099f jb LBB0_121 + 0xe9, 0xf6, 0x05, 0x00, 0x00, //0x000009a5 jmp LBB0_171 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009aa .p2align 4, 0x90 + //0x000009b0 LBB0_101 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000009b0 movl $1, %r9d + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000009b6 movq $16(%rsp), %r15 + 0x49, 0x8b, 0x13, //0x000009bb movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x000009be cmpq %rdx, %r10 + 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000009c1 jb LBB0_121 + 0xe9, 0xd4, 0x05, 0x00, 0x00, //0x000009c7 jmp LBB0_171 + 0x90, 0x90, 0x90, 0x90, //0x000009cc .p2align 4, 0x90 + //0x000009d0 LBB0_102 + 0x45, 0x31, 0xc9, //0x000009d0 xorl %r9d, %r9d + 0x49, 0x8b, 0x13, //0x000009d3 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x000009d6 cmpq %rdx, %r10 + 0x0f, 0x82, 0x51, 0x01, 0x00, 0x00, //0x000009d9 jb LBB0_121 + 0xe9, 0xbc, 0x05, 0x00, 0x00, //0x000009df jmp LBB0_171 + //0x000009e4 LBB0_103 + 0x48, 0x83, 0xfa, 0x10, //0x000009e4 cmpq $16, %rdx + 0x0f, 0x82, 0x87, 0x00, 0x00, 0x00, //0x000009e8 jb LBB0_113 + 0x48, 0x8d, 0x42, 0xf0, //0x000009ee leaq $-16(%rdx), %rax + 0x48, 0x89, 0xc1, //0x000009f2 movq %rax, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x000009f5 andq $-16, %rcx + 0x49, 0x8d, 0x7c, 0x09, 0x10, //0x000009f9 leaq $16(%r9,%rcx), %rdi + 0x4d, 0x8d, 0x44, 0x0c, 0x10, //0x000009fe leaq $16(%r12,%rcx), %r8 + 0x83, 0xe0, 0x0f, //0x00000a03 andl $15, %eax + 0x31, 0xc9, //0x00000a06 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a08 .p2align 4, 0x90 + //0x00000a10 LBB0_105 + 0xc4, 0xc1, 0x7a, 0x6f, 0x34, 0x09, //0x00000a10 vmovdqu (%r9,%rcx), %xmm6 + 0xc4, 0xc1, 0x49, 0x74, 0x34, 0x0c, //0x00000a16 vpcmpeqb (%r12,%rcx), %xmm6, %xmm6 + 0xc5, 0xf9, 0xd7, 0xf6, //0x00000a1c vpmovmskb %xmm6, %esi + 0x66, 0x83, 0xfe, 0xff, //0x00000a20 cmpw $-1, %si + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00000a24 jne LBB0_118 + 0x48, 0x83, 0xc2, 0xf0, //0x00000a2a addq $-16, %rdx + 0x48, 0x83, 0xc1, 0x10, //0x00000a2e addq $16, %rcx + 0x48, 0x83, 0xfa, 0x0f, //0x00000a32 cmpq $15, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00000a36 ja LBB0_105 + 0x89, 0xfe, //0x00000a3c movl %edi, %esi + 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x00000a3e andl $4095, %esi + 0x44, 0x89, 0xc1, //0x00000a44 movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00000a47 andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00000a4d cmpl $4080, %ecx + 0x0f, 0x86, 0x31, 0x00, 0x00, 0x00, //0x00000a53 jbe LBB0_114 + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00000a59 jmp LBB0_108 + //0x00000a5e LBB0_112 + 0x31, 0xd2, //0x00000a5e xorl %edx, %edx + 0x44, 0x0f, 0xb6, 0xca, //0x00000a60 movzbl %dl, %r9d + 0x49, 0x8b, 0x13, //0x00000a64 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x00000a67 cmpq %rdx, %r10 + 0x0f, 0x82, 0xc0, 0x00, 0x00, 0x00, //0x00000a6a jb LBB0_121 + 0xe9, 0x2b, 0x05, 0x00, 0x00, //0x00000a70 jmp LBB0_171 + //0x00000a75 LBB0_113 + 0x48, 0x89, 0xd0, //0x00000a75 movq %rdx, %rax + 0x4d, 0x89, 0xe0, //0x00000a78 movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x00000a7b movq %r9, %rdi + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00000a7e cmpl $4080, %ecx + 0x0f, 0x87, 0x4e, 0x00, 0x00, 0x00, //0x00000a84 ja LBB0_108 + //0x00000a8a LBB0_114 + 0x81, 0xfe, 0xf1, 0x0f, 0x00, 0x00, //0x00000a8a cmpl $4081, %esi + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00000a90 jae LBB0_108 + 0xc5, 0xfa, 0x6f, 0x37, //0x00000a96 vmovdqu (%rdi), %xmm6 + 0xc4, 0xc1, 0x49, 0x74, 0x30, //0x00000a9a vpcmpeqb (%r8), %xmm6, %xmm6 + 0xc5, 0xf9, 0xd7, 0xce, //0x00000a9f vpmovmskb %xmm6, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x00000aa3 cmpw $-1, %cx + 0x0f, 0x84, 0x69, 0x00, 0x00, 0x00, //0x00000aa7 je LBB0_119 + 0xf7, 0xd1, //0x00000aad notl %ecx + 0x0f, 0xb7, 0xc9, //0x00000aaf movzwl %cx, %ecx + 0x48, 0x0f, 0xbc, 0xc9, //0x00000ab2 bsfq %rcx, %rcx + 0x48, 0x39, 0xc1, //0x00000ab6 cmpq %rax, %rcx + 0x0f, 0x93, 0xc2, //0x00000ab9 setae %dl + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x00000abc jmp LBB0_120 + //0x00000ac1 LBB0_117 + 0xb2, 0x01, //0x00000ac1 movb $1, %dl + 0x44, 0x0f, 0xb6, 0xca, //0x00000ac3 movzbl %dl, %r9d + 0x49, 0x8b, 0x13, //0x00000ac7 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x00000aca cmpq %rdx, %r10 + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x00000acd jb LBB0_121 + 0xe9, 0xc8, 0x04, 0x00, 0x00, //0x00000ad3 jmp LBB0_171 + //0x00000ad8 LBB0_108 + 0xb2, 0x01, //0x00000ad8 movb $1, %dl + 0x48, 0x85, 0xc0, //0x00000ada testq %rax, %rax + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00000add je LBB0_120 + 0x31, 0xc9, //0x00000ae3 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ae5 .p2align 4, 0x90 + //0x00000af0 LBB0_110 + 0x0f, 0xb6, 0x1c, 0x0f, //0x00000af0 movzbl (%rdi,%rcx), %ebx + 0x41, 0x3a, 0x1c, 0x08, //0x00000af4 cmpb (%r8,%rcx), %bl + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00000af8 jne LBB0_118 + 0x48, 0xff, 0xc1, //0x00000afe incq %rcx + 0x48, 0x39, 0xc8, //0x00000b01 cmpq %rcx, %rax + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00000b04 jne LBB0_110 + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00000b0a jmp LBB0_120 + //0x00000b0f LBB0_118 + 0x31, 0xd2, //0x00000b0f xorl %edx, %edx + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00000b11 jmp LBB0_120 + //0x00000b16 LBB0_119 + 0xb2, 0x01, //0x00000b16 movb $1, %dl + //0x00000b18 LBB0_120 + 0x4c, 0x8b, 0x04, 0x24, //0x00000b18 movq (%rsp), %r8 + 0x44, 0x0f, 0xb6, 0xca, //0x00000b1c movzbl %dl, %r9d + 0x49, 0x8b, 0x13, //0x00000b20 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x00000b23 cmpq %rdx, %r10 + 0x0f, 0x83, 0x74, 0x04, 0x00, 0x00, //0x00000b26 jae LBB0_171 + 0x90, 0x90, 0x90, 0x90, //0x00000b2c .p2align 4, 0x90 + //0x00000b30 LBB0_121 + 0x43, 0x8a, 0x04, 0x10, //0x00000b30 movb (%r8,%r10), %al + 0x3c, 0x0d, //0x00000b34 cmpb $13, %al + 0x0f, 0x84, 0x64, 0x04, 0x00, 0x00, //0x00000b36 je LBB0_171 + 0x3c, 0x20, //0x00000b3c cmpb $32, %al + 0x0f, 0x84, 0x5c, 0x04, 0x00, 0x00, //0x00000b3e je LBB0_171 + 0x04, 0xf7, //0x00000b44 addb $-9, %al + 0x3c, 0x01, //0x00000b46 cmpb $1, %al + 0x0f, 0x86, 0x52, 0x04, 0x00, 0x00, //0x00000b48 jbe LBB0_171 + 0x4c, 0x89, 0xd0, //0x00000b4e movq %r10, %rax + 0xe9, 0xc2, 0x05, 0x00, 0x00, //0x00000b51 jmp LBB0_197 + //0x00000b56 LBB0_79 + 0x4c, 0x89, 0x7c, 0x24, 0x38, //0x00000b56 movq %r15, $56(%rsp) + 0x4c, 0x89, 0xd0, //0x00000b5b movq %r10, %rax + 0x4d, 0x89, 0xf5, //0x00000b5e movq %r14, %r13 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00000b61 movq $24(%rsp), %r11 + 0x4c, 0x8b, 0x64, 0x24, 0x20, //0x00000b66 movq $32(%rsp), %r12 + 0x48, 0x8b, 0x7c, 0x24, 0x30, //0x00000b6b movq $48(%rsp), %rdi + 0x48, 0x83, 0xf8, 0x20, //0x00000b70 cmpq $32, %rax + 0x0f, 0x82, 0xe1, 0x12, 0x00, 0x00, //0x00000b74 jb LBB0_371 + //0x00000b7a LBB0_80 + 0xc5, 0x7e, 0x6f, 0x27, //0x00000b7a vmovdqu (%rdi), %ymm12 + 0xc5, 0x1d, 0x74, 0xf1, //0x00000b7e vpcmpeqb %ymm1, %ymm12, %ymm14 + 0xc4, 0x41, 0x7d, 0xd7, 0xc6, //0x00000b82 vpmovmskb %ymm14, %r8d + 0xc5, 0x1d, 0x74, 0xe2, //0x00000b87 vpcmpeqb %ymm2, %ymm12, %ymm12 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf4, //0x00000b8b vpmovmskb %ymm12, %esi + 0x85, 0xf6, //0x00000b90 testl %esi, %esi + 0x0f, 0x85, 0x46, 0x12, 0x00, 0x00, //0x00000b92 jne LBB0_366 + 0x48, 0x85, 0xdb, //0x00000b98 testq %rbx, %rbx + 0x0f, 0x85, 0x64, 0x12, 0x00, 0x00, //0x00000b9b jne LBB0_368 + 0x31, 0xdb, //0x00000ba1 xorl %ebx, %ebx + 0x4d, 0x85, 0xc0, //0x00000ba3 testq %r8, %r8 + 0x0f, 0x84, 0xa7, 0x12, 0x00, 0x00, //0x00000ba6 je LBB0_370 + //0x00000bac LBB0_83 + 0x49, 0x0f, 0xbc, 0xc0, //0x00000bac bsfq %r8, %rax + 0x48, 0x2b, 0x3c, 0x24, //0x00000bb0 subq (%rsp), %rdi + 0x4c, 0x8d, 0x54, 0x07, 0x01, //0x00000bb4 leaq $1(%rdi,%rax), %r10 + 0xe9, 0xdc, 0xfc, 0xff, 0xff, //0x00000bb9 jmp LBB0_87 + //0x00000bbe LBB0_125 + 0x4c, 0x89, 0xc2, //0x00000bbe movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00000bc1 notq %rdx + 0x48, 0x01, 0xd1, //0x00000bc4 addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x00000bc7 cmpq %rax, %rcx + 0x0f, 0x82, 0x38, 0xfb, 0xff, 0xff, //0x00000bca jb LBB0_70 + 0xe9, 0x1c, 0x27, 0x00, 0x00, //0x00000bd0 jmp LBB0_657 + //0x00000bd5 LBB0_126 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000bd5 movq $-1, %r15 + 0x48, 0xc7, 0x44, 0x24, 0x38, 0xff, 0xff, 0xff, 0xff, //0x00000bdc movq $-1, $56(%rsp) + 0x31, 0xdb, //0x00000be5 xorl %ebx, %ebx + 0x4c, 0x89, 0xcf, //0x00000be7 movq %r9, %rdi + 0x48, 0x83, 0xf8, 0x20, //0x00000bea cmpq $32, %rax + 0x0f, 0x83, 0x86, 0xff, 0xff, 0xff, //0x00000bee jae LBB0_80 + 0xe9, 0x62, 0x12, 0x00, 0x00, //0x00000bf4 jmp LBB0_371 + //0x00000bf9 LBB0_127 + 0x48, 0xc7, 0x44, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00, //0x00000bf9 movq $0, $64(%rsp) + 0x48, 0x8b, 0x04, 0x24, //0x00000c02 movq (%rsp), %rax + 0x4e, 0x8d, 0x44, 0x10, 0xff, //0x00000c06 leaq $-1(%rax,%r10), %r8 + 0x4d, 0x8d, 0x34, 0x14, //0x00000c0b leaq (%r12,%rdx), %r14 + 0x48, 0x85, 0xd2, //0x00000c0f testq %rdx, %rdx + 0x0f, 0x8e, 0x5c, 0x03, 0x00, 0x00, //0x00000c12 jle LBB0_169 + 0x4d, 0x39, 0xc8, //0x00000c18 cmpq %r9, %r8 + 0x0f, 0x86, 0x53, 0x03, 0x00, 0x00, //0x00000c1b jbe LBB0_169 + 0x4c, 0x8d, 0x7c, 0x24, 0x40, //0x00000c21 leaq $64(%rsp), %r15 + //0x00000c26 LBB0_130 + 0x41, 0x8a, 0x01, //0x00000c26 movb (%r9), %al + 0x3c, 0x5c, //0x00000c29 cmpb $92, %al + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00000c2b jne LBB0_135 + 0x4c, 0x89, 0xc0, //0x00000c31 movq %r8, %rax + 0x4c, 0x29, 0xc8, //0x00000c34 subq %r9, %rax + 0x48, 0x85, 0xc0, //0x00000c37 testq %rax, %rax + 0x0f, 0x8e, 0xa5, 0x4a, 0x00, 0x00, //0x00000c3a jle LBB0_1114 + 0x41, 0x0f, 0xb6, 0x51, 0x01, //0x00000c40 movzbl $1(%r9), %edx + 0x48, 0x8d, 0x0d, 0xd4, 0x54, 0x00, 0x00, //0x00000c45 leaq $21716(%rip), %rcx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x1c, 0x0a, //0x00000c4c movb (%rdx,%rcx), %bl + 0x80, 0xfb, 0xff, //0x00000c4f cmpb $-1, %bl + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00000c52 je LBB0_137 + 0x84, 0xdb, //0x00000c58 testb %bl, %bl + 0x0f, 0x84, 0x73, 0x4a, 0x00, 0x00, //0x00000c5a je LBB0_1112 + 0x88, 0x5c, 0x24, 0x40, //0x00000c60 movb %bl, $64(%rsp) + 0x49, 0x83, 0xc1, 0x02, //0x00000c64 addq $2, %r9 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000c68 movl $1, %eax + 0x48, 0x8d, 0x44, 0x04, 0x40, //0x00000c6d leaq $64(%rsp,%rax), %rax + 0x4d, 0x39, 0xf4, //0x00000c72 cmpq %r14, %r12 + 0x0f, 0x82, 0x28, 0x01, 0x00, 0x00, //0x00000c75 jb LBB0_147 + 0xe9, 0xd6, 0x02, 0x00, 0x00, //0x00000c7b jmp LBB0_165 + //0x00000c80 LBB0_135 + 0x41, 0x3a, 0x04, 0x24, //0x00000c80 cmpb (%r12), %al + 0x0f, 0x85, 0x3b, 0x11, 0x00, 0x00, //0x00000c84 jne LBB0_364 + 0x49, 0xff, 0xc1, //0x00000c8a incq %r9 + 0x49, 0xff, 0xc4, //0x00000c8d incq %r12 + 0xe9, 0xcd, 0x02, 0x00, 0x00, //0x00000c90 jmp LBB0_167 + //0x00000c95 LBB0_137 + 0x48, 0x83, 0xf8, 0x03, //0x00000c95 cmpq $3, %rax + 0x0f, 0x8e, 0x43, 0x4a, 0x00, 0x00, //0x00000c99 jle LBB0_1113 + 0x41, 0x8b, 0x51, 0x02, //0x00000c9f movl $2(%r9), %edx + 0x89, 0xd6, //0x00000ca3 movl %edx, %esi + 0xf7, 0xd6, //0x00000ca5 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000ca7 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000cad andl $-2139062144, %esi + 0x85, 0xfe, //0x00000cb3 testl %edi, %esi + 0x0f, 0x85, 0xef, 0x49, 0x00, 0x00, //0x00000cb5 jne LBB0_1110 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00000cbb leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x00000cc1 orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000cc3 testl $-2139062144, %edi + 0x0f, 0x85, 0xdb, 0x49, 0x00, 0x00, //0x00000cc9 jne LBB0_1110 + 0x89, 0xd7, //0x00000ccf movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000cd1 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000cd7 movl $-1061109568, %ebx + 0x29, 0xfb, //0x00000cdc subl %edi, %ebx + 0x8d, 0x8f, 0x46, 0x46, 0x46, 0x46, //0x00000cde leal $1179010630(%rdi), %ecx + 0x21, 0xf3, //0x00000ce4 andl %esi, %ebx + 0x85, 0xcb, //0x00000ce6 testl %ecx, %ebx + 0x0f, 0x85, 0xbc, 0x49, 0x00, 0x00, //0x00000ce8 jne LBB0_1110 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000cee movl $-522133280, %ecx + 0x29, 0xf9, //0x00000cf3 subl %edi, %ecx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000cf5 addl $960051513, %edi + 0x21, 0xce, //0x00000cfb andl %ecx, %esi + 0x85, 0xfe, //0x00000cfd testl %edi, %esi + 0x0f, 0x85, 0xa5, 0x49, 0x00, 0x00, //0x00000cff jne LBB0_1110 + 0x0f, 0xca, //0x00000d05 bswapl %edx + 0x89, 0xd1, //0x00000d07 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x00000d09 shrl $4, %ecx + 0xf7, 0xd1, //0x00000d0c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000d0e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000d14 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000d17 andl $252645135, %edx + 0x01, 0xca, //0x00000d1d addl %ecx, %edx + 0x89, 0xd3, //0x00000d1f movl %edx, %ebx + 0xc1, 0xeb, 0x04, //0x00000d21 shrl $4, %ebx + 0x09, 0xd3, //0x00000d24 orl %edx, %ebx + 0x89, 0xde, //0x00000d26 movl %ebx, %esi + 0xc1, 0xee, 0x08, //0x00000d28 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00000d2b andl $65280, %esi + 0x0f, 0xb6, 0xd3, //0x00000d31 movzbl %bl, %edx + 0x09, 0xf2, //0x00000d34 orl %esi, %edx + 0x4d, 0x8d, 0x59, 0x06, //0x00000d36 leaq $6(%r9), %r11 + 0x83, 0xfa, 0x7f, //0x00000d3a cmpl $127, %edx + 0x0f, 0x86, 0xb1, 0x00, 0x00, 0x00, //0x00000d3d jbe LBB0_153 + 0x81, 0xfa, 0xff, 0x07, 0x00, 0x00, //0x00000d43 cmpl $2047, %edx + 0x0f, 0x86, 0xb3, 0x00, 0x00, 0x00, //0x00000d49 jbe LBB0_154 + 0x89, 0xd9, //0x00000d4f movl %ebx, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x00000d51 andl $16252928, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x00000d57 cmpl $14155776, %ecx + 0x0f, 0x84, 0xbf, 0x00, 0x00, 0x00, //0x00000d5d je LBB0_155 + 0xc1, 0xee, 0x0c, //0x00000d63 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x00000d66 orb $-32, %sil + 0x40, 0x88, 0x74, 0x24, 0x40, //0x00000d6a movb %sil, $64(%rsp) + 0xc1, 0xea, 0x06, //0x00000d6f shrl $6, %edx + 0x80, 0xe2, 0x3f, //0x00000d72 andb $63, %dl + 0x80, 0xca, 0x80, //0x00000d75 orb $-128, %dl + 0x88, 0x54, 0x24, 0x41, //0x00000d78 movb %dl, $65(%rsp) + 0x80, 0xe3, 0x3f, //0x00000d7c andb $63, %bl + 0x80, 0xcb, 0x80, //0x00000d7f orb $-128, %bl + 0x88, 0x5c, 0x24, 0x42, //0x00000d82 movb %bl, $66(%rsp) + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00000d86 movl $3, %eax + 0x89, 0xf3, //0x00000d8b movl %esi, %ebx + //0x00000d8d LBB0_146 + 0x4d, 0x89, 0xd9, //0x00000d8d movq %r11, %r9 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00000d90 movq $24(%rsp), %r11 + 0x48, 0x8d, 0x44, 0x04, 0x40, //0x00000d95 leaq $64(%rsp,%rax), %rax + 0x4d, 0x39, 0xf4, //0x00000d9a cmpq %r14, %r12 + 0x0f, 0x83, 0xb3, 0x01, 0x00, 0x00, //0x00000d9d jae LBB0_165 + //0x00000da3 LBB0_147 + 0x4c, 0x39, 0xf8, //0x00000da3 cmpq %r15, %rax + 0x0f, 0x86, 0xaa, 0x01, 0x00, 0x00, //0x00000da6 jbe LBB0_165 + 0x41, 0x38, 0x1c, 0x24, //0x00000dac cmpb %bl, (%r12) + 0x0f, 0x85, 0xa0, 0x01, 0x00, 0x00, //0x00000db0 jne LBB0_165 + 0x49, 0xff, 0xc4, //0x00000db6 incq %r12 + 0x48, 0x8d, 0x74, 0x24, 0x41, //0x00000db9 leaq $65(%rsp), %rsi + 0x4c, 0x89, 0xe7, //0x00000dbe movq %r12, %rdi + //0x00000dc1 LBB0_150 + 0x49, 0x89, 0xfc, //0x00000dc1 movq %rdi, %r12 + 0x48, 0x89, 0xf2, //0x00000dc4 movq %rsi, %rdx + 0x48, 0x39, 0xc6, //0x00000dc7 cmpq %rax, %rsi + 0x0f, 0x83, 0x89, 0x01, 0x00, 0x00, //0x00000dca jae LBB0_166 + 0x4d, 0x39, 0xf4, //0x00000dd0 cmpq %r14, %r12 + 0x0f, 0x83, 0x80, 0x01, 0x00, 0x00, //0x00000dd3 jae LBB0_166 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00000dd9 movzbl (%r12), %ecx + 0x49, 0x8d, 0x7c, 0x24, 0x01, //0x00000dde leaq $1(%r12), %rdi + 0x48, 0x8d, 0x72, 0x01, //0x00000de3 leaq $1(%rdx), %rsi + 0x3a, 0x0a, //0x00000de7 cmpb (%rdx), %cl + 0x0f, 0x84, 0xd2, 0xff, 0xff, 0xff, //0x00000de9 je LBB0_150 + 0xe9, 0x65, 0x01, 0x00, 0x00, //0x00000def jmp LBB0_166 + //0x00000df4 LBB0_153 + 0x88, 0x5c, 0x24, 0x40, //0x00000df4 movb %bl, $64(%rsp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000df8 movl $1, %eax + 0xe9, 0x8b, 0xff, 0xff, 0xff, //0x00000dfd jmp LBB0_146 + //0x00000e02 LBB0_154 + 0xc1, 0xea, 0x06, //0x00000e02 shrl $6, %edx + 0x80, 0xca, 0xc0, //0x00000e05 orb $-64, %dl + 0x88, 0x54, 0x24, 0x40, //0x00000e08 movb %dl, $64(%rsp) + 0x80, 0xe3, 0x3f, //0x00000e0c andb $63, %bl + 0x80, 0xcb, 0x80, //0x00000e0f orb $-128, %bl + 0x88, 0x5c, 0x24, 0x41, //0x00000e12 movb %bl, $65(%rsp) + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000e16 movl $2, %eax + 0x89, 0xd3, //0x00000e1b movl %edx, %ebx + 0xe9, 0x6b, 0xff, 0xff, 0xff, //0x00000e1d jmp LBB0_146 + //0x00000e22 LBB0_155 + 0x48, 0x83, 0xf8, 0x06, //0x00000e22 cmpq $6, %rax + 0x0f, 0x8c, 0xf2, 0x48, 0x00, 0x00, //0x00000e26 jl LBB0_1119 + 0x81, 0xfa, 0xff, 0xdb, 0x00, 0x00, //0x00000e2c cmpl $56319, %edx + 0x0f, 0x87, 0xe6, 0x48, 0x00, 0x00, //0x00000e32 ja LBB0_1119 + 0x41, 0x80, 0x3b, 0x5c, //0x00000e38 cmpb $92, (%r11) + 0x0f, 0x85, 0xdc, 0x48, 0x00, 0x00, //0x00000e3c jne LBB0_1119 + 0x41, 0x80, 0x79, 0x07, 0x75, //0x00000e42 cmpb $117, $7(%r9) + 0x0f, 0x85, 0xd1, 0x48, 0x00, 0x00, //0x00000e47 jne LBB0_1119 + 0x4d, 0x8d, 0x59, 0x08, //0x00000e4d leaq $8(%r9), %r11 + 0x41, 0x8b, 0x59, 0x08, //0x00000e51 movl $8(%r9), %ebx + 0x89, 0xdf, //0x00000e55 movl %ebx, %edi + 0xf7, 0xd7, //0x00000e57 notl %edi + 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000e59 leal $-808464432(%rbx), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00000e5f andl $-2139062144, %edi + 0x85, 0xcf, //0x00000e65 testl %ecx, %edi + 0x0f, 0x85, 0xc0, 0x48, 0x00, 0x00, //0x00000e67 jne LBB0_1120 + 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00000e6d leal $421075225(%rbx), %ecx + 0x09, 0xd9, //0x00000e73 orl %ebx, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00000e75 testl $-2139062144, %ecx + 0x0f, 0x85, 0xac, 0x48, 0x00, 0x00, //0x00000e7b jne LBB0_1120 + 0x89, 0xde, //0x00000e81 movl %ebx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000e83 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000e89 movl $-1061109568, %ecx + 0x29, 0xf1, //0x00000e8e subl %esi, %ecx + 0x8d, 0x86, 0x46, 0x46, 0x46, 0x46, //0x00000e90 leal $1179010630(%rsi), %eax + 0x21, 0xf9, //0x00000e96 andl %edi, %ecx + 0x85, 0xc1, //0x00000e98 testl %eax, %ecx + 0x0f, 0x85, 0x8d, 0x48, 0x00, 0x00, //0x00000e9a jne LBB0_1120 + 0xb8, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000ea0 movl $-522133280, %eax + 0x29, 0xf0, //0x00000ea5 subl %esi, %eax + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00000ea7 addl $960051513, %esi + 0x21, 0xc7, //0x00000ead andl %eax, %edi + 0x85, 0xf7, //0x00000eaf testl %esi, %edi + 0x0f, 0x85, 0x76, 0x48, 0x00, 0x00, //0x00000eb1 jne LBB0_1120 + 0x0f, 0xcb, //0x00000eb7 bswapl %ebx + 0x89, 0xd8, //0x00000eb9 movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00000ebb shrl $4, %eax + 0xf7, 0xd0, //0x00000ebe notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00000ec0 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00000ec5 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000ec8 andl $252645135, %ebx + 0x01, 0xc3, //0x00000ece addl %eax, %ebx + 0x89, 0xde, //0x00000ed0 movl %ebx, %esi + 0xc1, 0xee, 0x04, //0x00000ed2 shrl $4, %esi + 0x09, 0xde, //0x00000ed5 orl %ebx, %esi + 0x89, 0xf0, //0x00000ed7 movl %esi, %eax + 0x25, 0x00, 0x00, 0xfc, 0x00, //0x00000ed9 andl $16515072, %eax + 0x3d, 0x00, 0x00, 0xdc, 0x00, //0x00000ede cmpl $14417920, %eax + 0x0f, 0x85, 0x35, 0x48, 0x00, 0x00, //0x00000ee3 jne LBB0_1119 + 0x89, 0xf0, //0x00000ee9 movl %esi, %eax + 0xc1, 0xe8, 0x08, //0x00000eeb shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000eee andl $65280, %eax + 0x40, 0x0f, 0xb6, 0xce, //0x00000ef3 movzbl %sil, %ecx + 0x09, 0xc1, //0x00000ef7 orl %eax, %ecx + 0xc1, 0xe2, 0x0a, //0x00000ef9 shll $10, %edx + 0x8d, 0x84, 0x0a, 0x00, 0x24, 0xa0, 0xfc, //0x00000efc leal $-56613888(%rdx,%rcx), %eax + 0x89, 0xc3, //0x00000f03 movl %eax, %ebx + 0xc1, 0xeb, 0x12, //0x00000f05 shrl $18, %ebx + 0x80, 0xcb, 0xf0, //0x00000f08 orb $-16, %bl + 0x88, 0x5c, 0x24, 0x40, //0x00000f0b movb %bl, $64(%rsp) + 0x89, 0xc1, //0x00000f0f movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x00000f11 shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x00000f14 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000f17 orb $-128, %cl + 0x88, 0x4c, 0x24, 0x41, //0x00000f1a movb %cl, $65(%rsp) + 0x89, 0xc1, //0x00000f1e movl %eax, %ecx + 0xc1, 0xe9, 0x06, //0x00000f20 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00000f23 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000f26 orb $-128, %cl + 0x88, 0x4c, 0x24, 0x42, //0x00000f29 movb %cl, $66(%rsp) + 0x24, 0x3f, //0x00000f2d andb $63, %al + 0x0c, 0x80, //0x00000f2f orb $-128, %al + 0x88, 0x44, 0x24, 0x43, //0x00000f31 movb %al, $67(%rsp) + 0x49, 0x83, 0xc1, 0x0c, //0x00000f35 addq $12, %r9 + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00000f39 movl $4, %eax + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00000f3e movq $24(%rsp), %r11 + 0x4c, 0x8d, 0x7c, 0x24, 0x40, //0x00000f43 leaq $64(%rsp), %r15 + 0x48, 0x8d, 0x44, 0x04, 0x40, //0x00000f48 leaq $64(%rsp,%rax), %rax + 0x4d, 0x39, 0xf4, //0x00000f4d cmpq %r14, %r12 + 0x0f, 0x82, 0x4d, 0xfe, 0xff, 0xff, //0x00000f50 jb LBB0_147 + //0x00000f56 LBB0_165 + 0x4c, 0x89, 0xfa, //0x00000f56 movq %r15, %rdx + //0x00000f59 LBB0_166 + 0x48, 0x39, 0xc2, //0x00000f59 cmpq %rax, %rdx + 0x0f, 0x85, 0x63, 0x0e, 0x00, 0x00, //0x00000f5c jne LBB0_364 + //0x00000f62 LBB0_167 + 0x4d, 0x39, 0xc8, //0x00000f62 cmpq %r9, %r8 + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00000f65 jbe LBB0_169 + 0x4d, 0x39, 0xf4, //0x00000f6b cmpq %r14, %r12 + 0x0f, 0x82, 0xb2, 0xfc, 0xff, 0xff, //0x00000f6e jb LBB0_130 + //0x00000f74 LBB0_169 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00000f74 movq $16(%rsp), %r15 + 0x4d, 0x31, 0xc8, //0x00000f79 xorq %r9, %r8 + 0x4d, 0x31, 0xf4, //0x00000f7c xorq %r14, %r12 + 0x45, 0x31, 0xc9, //0x00000f7f xorl %r9d, %r9d + 0x4d, 0x09, 0xc4, //0x00000f82 orq %r8, %r12 + 0x41, 0x0f, 0x94, 0xc1, //0x00000f85 sete %r9b + //0x00000f89 LBB0_170 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00000f89 movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x04, 0x24, //0x00000f8e movq (%rsp), %r8 + 0x49, 0x8b, 0x13, //0x00000f92 movq (%r11), %rdx + 0x49, 0x39, 0xd2, //0x00000f95 cmpq %rdx, %r10 + 0x0f, 0x82, 0x92, 0xfb, 0xff, 0xff, //0x00000f98 jb LBB0_121 + 0x90, 0x90, //0x00000f9e .p2align 4, 0x90 + //0x00000fa0 LBB0_171 + 0x49, 0x8d, 0x42, 0x01, //0x00000fa0 leaq $1(%r10), %rax + 0x48, 0x39, 0xd0, //0x00000fa4 cmpq %rdx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000fa7 jae LBB0_175 + 0x41, 0x8a, 0x1c, 0x00, //0x00000fad movb (%r8,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00000fb1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000fb4 je LBB0_175 + 0x80, 0xfb, 0x20, //0x00000fba cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00000fbd je LBB0_175 + 0x80, 0xc3, 0xf7, //0x00000fc3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000fc6 cmpb $1, %bl + 0x0f, 0x87, 0x49, 0x01, 0x00, 0x00, //0x00000fc9 ja LBB0_197 + 0x90, //0x00000fcf .p2align 4, 0x90 + //0x00000fd0 LBB0_175 + 0x49, 0x8d, 0x42, 0x02, //0x00000fd0 leaq $2(%r10), %rax + 0x48, 0x39, 0xd0, //0x00000fd4 cmpq %rdx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000fd7 jae LBB0_179 + 0x41, 0x8a, 0x1c, 0x00, //0x00000fdd movb (%r8,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00000fe1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000fe4 je LBB0_179 + 0x80, 0xfb, 0x20, //0x00000fea cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00000fed je LBB0_179 + 0x80, 0xc3, 0xf7, //0x00000ff3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000ff6 cmpb $1, %bl + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00000ff9 ja LBB0_197 + 0x90, //0x00000fff .p2align 4, 0x90 + //0x00001000 LBB0_179 + 0x49, 0x8d, 0x42, 0x03, //0x00001000 leaq $3(%r10), %rax + 0x48, 0x39, 0xd0, //0x00001004 cmpq %rdx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001007 jae LBB0_183 + 0x41, 0x8a, 0x1c, 0x00, //0x0000100d movb (%r8,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00001011 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00001014 je LBB0_183 + 0x80, 0xfb, 0x20, //0x0000101a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000101d je LBB0_183 + 0x80, 0xc3, 0xf7, //0x00001023 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001026 cmpb $1, %bl + 0x0f, 0x87, 0xe9, 0x00, 0x00, 0x00, //0x00001029 ja LBB0_197 + 0x90, //0x0000102f .p2align 4, 0x90 + //0x00001030 LBB0_183 + 0x49, 0x8d, 0x42, 0x04, //0x00001030 leaq $4(%r10), %rax + 0x48, 0x89, 0xd7, //0x00001034 movq %rdx, %rdi + 0x48, 0x29, 0xc7, //0x00001037 subq %rax, %rdi + 0x0f, 0x86, 0xab, 0x22, 0x00, 0x00, //0x0000103a jbe LBB0_656 + 0x4c, 0x01, 0xc0, //0x00001040 addq %r8, %rax + 0x48, 0x83, 0xff, 0x20, //0x00001043 cmpq $32, %rdi + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x00001047 jb LBB0_189 + 0x48, 0x89, 0xd6, //0x0000104d movq %rdx, %rsi + 0x4c, 0x29, 0xd6, //0x00001050 subq %r10, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x00001053 addq $-36, %rsi + 0x48, 0x89, 0xf1, //0x00001057 movq %rsi, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x0000105a andq $-32, %rcx + 0x4c, 0x01, 0xd1, //0x0000105e addq %r10, %rcx + 0x49, 0x8d, 0x5c, 0x08, 0x24, //0x00001061 leaq $36(%r8,%rcx), %rbx + 0x83, 0xe6, 0x1f, //0x00001066 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001069 .p2align 4, 0x90 + //0x00001070 LBB0_186 + 0xc5, 0xfe, 0x6f, 0x30, //0x00001070 vmovdqu (%rax), %ymm6 + 0xc4, 0x62, 0x7d, 0x00, 0xe6, //0x00001074 vpshufb %ymm6, %ymm0, %ymm12 + 0xc5, 0x9d, 0x74, 0xf6, //0x00001079 vpcmpeqb %ymm6, %ymm12, %ymm6 + 0xc5, 0xfd, 0xd7, 0xce, //0x0000107d vpmovmskb %ymm6, %ecx + 0x83, 0xf9, 0xff, //0x00001081 cmpl $-1, %ecx + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00001084 jne LBB0_196 + 0x48, 0x83, 0xc0, 0x20, //0x0000108a addq $32, %rax + 0x48, 0x83, 0xc7, 0xe0, //0x0000108e addq $-32, %rdi + 0x48, 0x83, 0xff, 0x1f, //0x00001092 cmpq $31, %rdi + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00001096 ja LBB0_186 + 0x48, 0x89, 0xf7, //0x0000109c movq %rsi, %rdi + 0x48, 0x89, 0xd8, //0x0000109f movq %rbx, %rax + //0x000010a2 LBB0_189 + 0x48, 0x85, 0xff, //0x000010a2 testq %rdi, %rdi + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000010a5 je LBB0_195 + 0x48, 0x8d, 0x34, 0x38, //0x000010ab leaq (%rax,%rdi), %rsi + 0x48, 0xff, 0xc0, //0x000010af incq %rax + //0x000010b2 LBB0_191 + 0x0f, 0xbe, 0x48, 0xff, //0x000010b2 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x000010b6 cmpl $32, %ecx + 0x0f, 0x87, 0xb5, 0x0c, 0x00, 0x00, //0x000010b9 ja LBB0_360 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000010bf movabsq $4294977024, %rbx + 0x48, 0x0f, 0xa3, 0xcb, //0x000010c9 btq %rcx, %rbx + 0x0f, 0x83, 0xa1, 0x0c, 0x00, 0x00, //0x000010cd jae LBB0_360 + 0x48, 0xff, 0xcf, //0x000010d3 decq %rdi + 0x48, 0xff, 0xc0, //0x000010d6 incq %rax + 0x48, 0x85, 0xff, //0x000010d9 testq %rdi, %rdi + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x000010dc jne LBB0_191 + 0x48, 0x89, 0xf0, //0x000010e2 movq %rsi, %rax + //0x000010e5 LBB0_195 + 0x4c, 0x29, 0xc0, //0x000010e5 subq %r8, %rax + 0x48, 0x39, 0xd0, //0x000010e8 cmpq %rdx, %rax + 0x0f, 0x82, 0x27, 0x00, 0x00, 0x00, //0x000010eb jb LBB0_197 + 0xe9, 0xfb, 0x21, 0x00, 0x00, //0x000010f1 jmp LBB0_657 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000010f6 .p2align 4, 0x90 + //0x00001100 LBB0_196 + 0x4c, 0x29, 0xc0, //0x00001100 subq %r8, %rax + 0xf7, 0xd1, //0x00001103 notl %ecx + 0x48, 0x63, 0xc9, //0x00001105 movslq %ecx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00001108 bsfq %rcx, %rcx + 0x48, 0x01, 0xc8, //0x0000110c addq %rcx, %rax + 0x48, 0x39, 0xd0, //0x0000110f cmpq %rdx, %rax + 0x0f, 0x83, 0xd9, 0x21, 0x00, 0x00, //0x00001112 jae LBB0_657 + //0x00001118 LBB0_197 + 0x4c, 0x8d, 0x50, 0x01, //0x00001118 leaq $1(%rax), %r10 + 0x4d, 0x89, 0x16, //0x0000111c movq %r10, (%r14) + 0x41, 0x80, 0x3c, 0x00, 0x3a, //0x0000111f cmpb $58, (%r8,%rax) + 0x0f, 0x85, 0xc7, 0x21, 0x00, 0x00, //0x00001124 jne LBB0_657 + 0x4d, 0x85, 0xc9, //0x0000112a testq %r9, %r9 + 0x0f, 0x85, 0x4d, 0x1d, 0x00, 0x00, //0x0000112d jne LBB0_524 + 0x4d, 0x8b, 0x03, //0x00001133 movq (%r11), %r8 + 0x4d, 0x39, 0xc2, //0x00001136 cmpq %r8, %r10 + 0x0f, 0x83, 0x31, 0x00, 0x00, 0x00, //0x00001139 jae LBB0_204 + 0x48, 0x8b, 0x0c, 0x24, //0x0000113f movq (%rsp), %rcx + 0x42, 0x8a, 0x0c, 0x11, //0x00001143 movb (%rcx,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00001147 cmpb $13, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000114a je LBB0_204 + 0x80, 0xf9, 0x20, //0x00001150 cmpb $32, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001153 je LBB0_204 + 0x80, 0xc1, 0xf7, //0x00001159 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000115c cmpb $1, %cl + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x0000115f jbe LBB0_204 + 0x4c, 0x89, 0xd1, //0x00001165 movq %r10, %rcx + 0xe9, 0xac, 0x01, 0x00, 0x00, //0x00001168 jmp LBB0_230 + 0x90, 0x90, 0x90, //0x0000116d .p2align 4, 0x90 + //0x00001170 LBB0_204 + 0x48, 0x8d, 0x48, 0x02, //0x00001170 leaq $2(%rax), %rcx + 0x4c, 0x39, 0xc1, //0x00001174 cmpq %r8, %rcx + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00001177 jae LBB0_208 + 0x48, 0x8b, 0x14, 0x24, //0x0000117d movq (%rsp), %rdx + 0x8a, 0x1c, 0x0a, //0x00001181 movb (%rdx,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00001184 cmpb $13, %bl + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00001187 je LBB0_208 + 0x80, 0xfb, 0x20, //0x0000118d cmpb $32, %bl + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001190 je LBB0_208 + 0x80, 0xc3, 0xf7, //0x00001196 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001199 cmpb $1, %bl + 0x0f, 0x87, 0x77, 0x01, 0x00, 0x00, //0x0000119c ja LBB0_230 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011a2 .p2align 4, 0x90 + //0x000011b0 LBB0_208 + 0x48, 0x8d, 0x48, 0x03, //0x000011b0 leaq $3(%rax), %rcx + 0x4c, 0x39, 0xc1, //0x000011b4 cmpq %r8, %rcx + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000011b7 jae LBB0_212 + 0x48, 0x8b, 0x14, 0x24, //0x000011bd movq (%rsp), %rdx + 0x8a, 0x1c, 0x0a, //0x000011c1 movb (%rdx,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x000011c4 cmpb $13, %bl + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x000011c7 je LBB0_212 + 0x80, 0xfb, 0x20, //0x000011cd cmpb $32, %bl + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000011d0 je LBB0_212 + 0x80, 0xc3, 0xf7, //0x000011d6 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000011d9 cmpb $1, %bl + 0x0f, 0x87, 0x37, 0x01, 0x00, 0x00, //0x000011dc ja LBB0_230 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011e2 .p2align 4, 0x90 + //0x000011f0 LBB0_212 + 0x48, 0x8d, 0x48, 0x04, //0x000011f0 leaq $4(%rax), %rcx + 0x4c, 0x39, 0xc1, //0x000011f4 cmpq %r8, %rcx + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000011f7 jae LBB0_216 + 0x48, 0x8b, 0x14, 0x24, //0x000011fd movq (%rsp), %rdx + 0x8a, 0x1c, 0x0a, //0x00001201 movb (%rdx,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00001204 cmpb $13, %bl + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00001207 je LBB0_216 + 0x80, 0xfb, 0x20, //0x0000120d cmpb $32, %bl + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001210 je LBB0_216 + 0x80, 0xc3, 0xf7, //0x00001216 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001219 cmpb $1, %bl + 0x0f, 0x87, 0xf7, 0x00, 0x00, 0x00, //0x0000121c ja LBB0_230 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001222 .p2align 4, 0x90 + //0x00001230 LBB0_216 + 0x48, 0x8d, 0x48, 0x05, //0x00001230 leaq $5(%rax), %rcx + 0x4c, 0x89, 0xc7, //0x00001234 movq %r8, %rdi + 0x48, 0x29, 0xcf, //0x00001237 subq %rcx, %rdi + 0x0f, 0x86, 0x00, 0x06, 0x00, 0x00, //0x0000123a jbe LBB0_293 + 0x48, 0x8b, 0x1c, 0x24, //0x00001240 movq (%rsp), %rbx + 0x48, 0x01, 0xd9, //0x00001244 addq %rbx, %rcx + 0x48, 0x83, 0xff, 0x20, //0x00001247 cmpq $32, %rdi + 0x0f, 0x82, 0x51, 0x00, 0x00, 0x00, //0x0000124b jb LBB0_222 + 0x4c, 0x89, 0xc2, //0x00001251 movq %r8, %rdx + 0x48, 0x29, 0xc2, //0x00001254 subq %rax, %rdx + 0x48, 0x83, 0xc2, 0xdb, //0x00001257 addq $-37, %rdx + 0x48, 0x89, 0xd6, //0x0000125b movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x0000125e andq $-32, %rsi + 0x48, 0x01, 0xc6, //0x00001262 addq %rax, %rsi + 0x48, 0x8d, 0x44, 0x33, 0x25, //0x00001265 leaq $37(%rbx,%rsi), %rax + 0x83, 0xe2, 0x1f, //0x0000126a andl $31, %edx + 0x90, 0x90, 0x90, //0x0000126d .p2align 4, 0x90 + //0x00001270 LBB0_219 + 0xc5, 0xfe, 0x6f, 0x31, //0x00001270 vmovdqu (%rcx), %ymm6 + 0xc4, 0x62, 0x7d, 0x00, 0xe6, //0x00001274 vpshufb %ymm6, %ymm0, %ymm12 + 0xc5, 0x9d, 0x74, 0xf6, //0x00001279 vpcmpeqb %ymm6, %ymm12, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x0000127d vpmovmskb %ymm6, %ebx + 0x83, 0xfb, 0xff, //0x00001281 cmpl $-1, %ebx + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00001284 jne LBB0_229 + 0x48, 0x83, 0xc1, 0x20, //0x0000128a addq $32, %rcx + 0x48, 0x83, 0xc7, 0xe0, //0x0000128e addq $-32, %rdi + 0x48, 0x83, 0xff, 0x1f, //0x00001292 cmpq $31, %rdi + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00001296 ja LBB0_219 + 0x48, 0x89, 0xd7, //0x0000129c movq %rdx, %rdi + 0x48, 0x89, 0xc1, //0x0000129f movq %rax, %rcx + //0x000012a2 LBB0_222 + 0x48, 0x85, 0xff, //0x000012a2 testq %rdi, %rdi + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000012a5 je LBB0_228 + 0x48, 0x8d, 0x04, 0x39, //0x000012ab leaq (%rcx,%rdi), %rax + 0x48, 0xff, 0xc1, //0x000012af incq %rcx + //0x000012b2 LBB0_224 + 0x0f, 0xbe, 0x71, 0xff, //0x000012b2 movsbl $-1(%rcx), %esi + 0x83, 0xfe, 0x20, //0x000012b6 cmpl $32, %esi + 0x0f, 0x87, 0xe3, 0x0a, 0x00, 0x00, //0x000012b9 ja LBB0_362 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000012bf movabsq $4294977024, %rdx + 0x48, 0x0f, 0xa3, 0xf2, //0x000012c9 btq %rsi, %rdx + 0x0f, 0x83, 0xcf, 0x0a, 0x00, 0x00, //0x000012cd jae LBB0_362 + 0x48, 0xff, 0xcf, //0x000012d3 decq %rdi + 0x48, 0xff, 0xc1, //0x000012d6 incq %rcx + 0x48, 0x85, 0xff, //0x000012d9 testq %rdi, %rdi + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x000012dc jne LBB0_224 + 0x48, 0x89, 0xc1, //0x000012e2 movq %rax, %rcx + //0x000012e5 LBB0_228 + 0x48, 0x2b, 0x0c, 0x24, //0x000012e5 subq (%rsp), %rcx + 0x4c, 0x39, 0xc1, //0x000012e9 cmpq %r8, %rcx + 0x0f, 0x82, 0x27, 0x00, 0x00, 0x00, //0x000012ec jb LBB0_230 + 0xe9, 0x4f, 0x05, 0x00, 0x00, //0x000012f2 jmp LBB0_294 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000012f7 .p2align 4, 0x90 + //0x00001300 LBB0_229 + 0x48, 0x2b, 0x0c, 0x24, //0x00001300 subq (%rsp), %rcx + 0xf7, 0xd3, //0x00001304 notl %ebx + 0x48, 0x63, 0xc3, //0x00001306 movslq %ebx, %rax + 0x48, 0x0f, 0xbc, 0xc0, //0x00001309 bsfq %rax, %rax + 0x48, 0x01, 0xc1, //0x0000130d addq %rax, %rcx + 0x4c, 0x39, 0xc1, //0x00001310 cmpq %r8, %rcx + 0x0f, 0x83, 0x2d, 0x05, 0x00, 0x00, //0x00001313 jae LBB0_294 + //0x00001319 LBB0_230 + 0x4c, 0x8d, 0x51, 0x01, //0x00001319 leaq $1(%rcx), %r10 + 0x4d, 0x89, 0x16, //0x0000131d movq %r10, (%r14) + 0x48, 0x8b, 0x04, 0x24, //0x00001320 movq (%rsp), %rax + 0x0f, 0xbe, 0x04, 0x08, //0x00001324 movsbl (%rax,%rcx), %eax + 0x83, 0xf8, 0x7b, //0x00001328 cmpl $123, %eax + 0x0f, 0x87, 0x0f, 0x05, 0x00, 0x00, //0x0000132b ja LBB0_293 + 0x48, 0x8d, 0x15, 0x20, 0x46, 0x00, 0x00, //0x00001331 leaq $17952(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x00001338 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x0000133c addq %rdx, %rax + 0xff, 0xe0, //0x0000133f jmpq *%rax + //0x00001341 LBB0_232 + 0x49, 0x8b, 0x13, //0x00001341 movq (%r11), %rdx + 0x48, 0x89, 0xd0, //0x00001344 movq %rdx, %rax + 0x4c, 0x29, 0xd0, //0x00001347 subq %r10, %rax + 0x48, 0x8b, 0x3c, 0x24, //0x0000134a movq (%rsp), %rdi + 0x49, 0x01, 0xfa, //0x0000134e addq %rdi, %r10 + 0x48, 0x83, 0xf8, 0x20, //0x00001351 cmpq $32, %rax + 0x0f, 0x82, 0x5e, 0x00, 0x00, 0x00, //0x00001355 jb LBB0_237 + 0x48, 0x29, 0xca, //0x0000135b subq %rcx, %rdx + 0x48, 0x83, 0xc2, 0xdf, //0x0000135e addq $-33, %rdx + 0x48, 0x89, 0xd6, //0x00001362 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x00001365 andq $-32, %rsi + 0x48, 0x01, 0xce, //0x00001369 addq %rcx, %rsi + 0x48, 0x8d, 0x4c, 0x37, 0x21, //0x0000136c leaq $33(%rdi,%rsi), %rcx + 0x83, 0xe2, 0x1f, //0x00001371 andl $31, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001374 .p2align 4, 0x90 + //0x00001380 LBB0_234 + 0xc4, 0xc1, 0x7e, 0x6f, 0x32, //0x00001380 vmovdqu (%r10), %ymm6 + 0xc5, 0x4d, 0x74, 0xe3, //0x00001385 vpcmpeqb %ymm3, %ymm6, %ymm12 + 0xc5, 0xcd, 0xeb, 0xf4, //0x00001389 vpor %ymm4, %ymm6, %ymm6 + 0xc5, 0xcd, 0x74, 0xf5, //0x0000138d vpcmpeqb %ymm5, %ymm6, %ymm6 + 0xc5, 0x9d, 0xeb, 0xf6, //0x00001391 vpor %ymm6, %ymm12, %ymm6 + 0xc5, 0xfd, 0xd7, 0xf6, //0x00001395 vpmovmskb %ymm6, %esi + 0x85, 0xf6, //0x00001399 testl %esi, %esi + 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x0000139b jne LBB0_251 + 0x49, 0x83, 0xc2, 0x20, //0x000013a1 addq $32, %r10 + 0x48, 0x83, 0xc0, 0xe0, //0x000013a5 addq $-32, %rax + 0x48, 0x83, 0xf8, 0x1f, //0x000013a9 cmpq $31, %rax + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000013ad ja LBB0_234 + 0x48, 0x89, 0xd0, //0x000013b3 movq %rdx, %rax + 0x49, 0x89, 0xca, //0x000013b6 movq %rcx, %r10 + //0x000013b9 LBB0_237 + 0x48, 0x83, 0xf8, 0x10, //0x000013b9 cmpq $16, %rax + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x000013bd jb LBB0_242 + 0x48, 0x8d, 0x48, 0xf0, //0x000013c3 leaq $-16(%rax), %rcx + 0x48, 0x89, 0xca, //0x000013c7 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x000013ca andq $-16, %rdx + 0x4a, 0x8d, 0x54, 0x12, 0x10, //0x000013ce leaq $16(%rdx,%r10), %rdx + 0x83, 0xe1, 0x0f, //0x000013d3 andl $15, %ecx + //0x000013d6 LBB0_239 + 0xc4, 0xc1, 0x7a, 0x6f, 0x32, //0x000013d6 vmovdqu (%r10), %xmm6 + 0xc5, 0xc9, 0x74, 0x3d, 0xfd, 0xed, 0xff, 0xff, //0x000013db vpcmpeqb $-4611(%rip), %xmm6, %xmm7 /* LCPI0_4+0(%rip) */ + 0xc5, 0xc9, 0xeb, 0x35, 0x05, 0xee, 0xff, 0xff, //0x000013e3 vpor $-4603(%rip), %xmm6, %xmm6 /* LCPI0_5+0(%rip) */ + 0xc5, 0xb9, 0x74, 0xf6, //0x000013eb vpcmpeqb %xmm6, %xmm8, %xmm6 + 0xc5, 0xc9, 0xeb, 0xf7, //0x000013ef vpor %xmm7, %xmm6, %xmm6 + 0xc5, 0xf9, 0xd7, 0xf6, //0x000013f3 vpmovmskb %xmm6, %esi + 0x66, 0x85, 0xf6, //0x000013f7 testw %si, %si + 0x0f, 0x85, 0x6c, 0x09, 0x00, 0x00, //0x000013fa jne LBB0_359 + 0x49, 0x83, 0xc2, 0x10, //0x00001400 addq $16, %r10 + 0x48, 0x83, 0xc0, 0xf0, //0x00001404 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00001408 cmpq $15, %rax + 0x0f, 0x87, 0xc4, 0xff, 0xff, 0xff, //0x0000140c ja LBB0_239 + 0x48, 0x89, 0xc8, //0x00001412 movq %rcx, %rax + 0x49, 0x89, 0xd2, //0x00001415 movq %rdx, %r10 + //0x00001418 LBB0_242 + 0x48, 0x85, 0xc0, //0x00001418 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x0000141b je LBB0_249 + 0x49, 0x8d, 0x0c, 0x02, //0x00001421 leaq (%r10,%rax), %rcx + //0x00001425 LBB0_244 + 0x41, 0x0f, 0xb6, 0x12, //0x00001425 movzbl (%r10), %edx + 0x80, 0xfa, 0x2c, //0x00001429 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x0000142c je LBB0_249 + 0x80, 0xfa, 0x7d, //0x00001432 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00001435 je LBB0_249 + 0x80, 0xfa, 0x5d, //0x0000143b cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000143e je LBB0_249 + 0x49, 0xff, 0xc2, //0x00001444 incq %r10 + 0x48, 0xff, 0xc8, //0x00001447 decq %rax + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x0000144a jne LBB0_244 + 0x49, 0x89, 0xca, //0x00001450 movq %rcx, %r10 + //0x00001453 LBB0_249 + 0x4c, 0x2b, 0x14, 0x24, //0x00001453 subq (%rsp), %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00001457 movq $8(%rsp), %r14 + 0x4d, 0x89, 0x16, //0x0000145c movq %r10, (%r14) + //0x0000145f LBB0_250 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x0000145f movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001464 movq $24(%rsp), %r11 + 0xe9, 0xd8, 0x03, 0x00, 0x00, //0x00001469 jmp LBB0_294 + 0x90, 0x90, //0x0000146e .p2align 4, 0x90 + //0x00001470 LBB0_251 + 0x48, 0x63, 0xc6, //0x00001470 movslq %esi, %rax + //0x00001473 LBB0_252 + 0x48, 0x0f, 0xbc, 0xc0, //0x00001473 bsfq %rax, %rax + 0x49, 0x29, 0xfa, //0x00001477 subq %rdi, %r10 + 0x49, 0x01, 0xc2, //0x0000147a addq %rax, %r10 + 0x4d, 0x89, 0x16, //0x0000147d movq %r10, (%r14) + 0xe9, 0xc1, 0x03, 0x00, 0x00, //0x00001480 jmp LBB0_294 + //0x00001485 LBB0_253 + 0x48, 0x83, 0xc1, 0x04, //0x00001485 addq $4, %rcx + 0x49, 0x3b, 0x0b, //0x00001489 cmpq (%r11), %rcx + 0x0f, 0x86, 0xae, 0x03, 0x00, 0x00, //0x0000148c jbe LBB0_293 + 0xe9, 0xaf, 0x03, 0x00, 0x00, //0x00001492 jmp LBB0_294 + //0x00001497 LBB0_254 + 0x4d, 0x8b, 0x03, //0x00001497 movq (%r11), %r8 + 0x4c, 0x89, 0xc0, //0x0000149a movq %r8, %rax + 0x4c, 0x29, 0xd0, //0x0000149d subq %r10, %rax + 0x48, 0x83, 0xf8, 0x20, //0x000014a0 cmpq $32, %rax + 0x0f, 0x8c, 0x28, 0x09, 0x00, 0x00, //0x000014a4 jl LBB0_365 + 0x48, 0x8b, 0x04, 0x24, //0x000014aa movq (%rsp), %rax + 0x4c, 0x8d, 0x0c, 0x08, //0x000014ae leaq (%rax,%rcx), %r9 + 0x49, 0x29, 0xc8, //0x000014b2 subq %rcx, %r8 + 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x000014b5 movl $31, %ecx + 0x31, 0xc0, //0x000014ba xorl %eax, %eax + 0x31, 0xdb, //0x000014bc xorl %ebx, %ebx + 0x90, 0x90, //0x000014be .p2align 4, 0x90 + //0x000014c0 LBB0_256 + 0xc4, 0xc1, 0x7e, 0x6f, 0x74, 0x01, 0x01, //0x000014c0 vmovdqu $1(%r9,%rax), %ymm6 + 0xc5, 0x4d, 0x74, 0xe1, //0x000014c7 vpcmpeqb %ymm1, %ymm6, %ymm12 + 0xc4, 0x41, 0x7d, 0xd7, 0xdc, //0x000014cb vpmovmskb %ymm12, %r11d + 0xc5, 0xcd, 0x74, 0xf2, //0x000014d0 vpcmpeqb %ymm2, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xd6, //0x000014d4 vpmovmskb %ymm6, %edx + 0x48, 0x85, 0xdb, //0x000014d8 testq %rbx, %rbx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000014db jne LBB0_259 + 0x85, 0xd2, //0x000014e1 testl %edx, %edx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000014e3 jne LBB0_259 + 0x31, 0xdb, //0x000014e9 xorl %ebx, %ebx + 0xe9, 0x3b, 0x00, 0x00, 0x00, //0x000014eb jmp LBB0_260 + //0x000014f0 .p2align 4, 0x90 + //0x000014f0 LBB0_259 + 0x89, 0xdf, //0x000014f0 movl %ebx, %edi + 0x41, 0xbc, 0xff, 0xff, 0xff, 0xff, //0x000014f2 movl $4294967295, %r12d + 0x44, 0x31, 0xe7, //0x000014f8 xorl %r12d, %edi + 0x21, 0xd7, //0x000014fb andl %edx, %edi + 0x8d, 0x14, 0x3f, //0x000014fd leal (%rdi,%rdi), %edx + 0x09, 0xda, //0x00001500 orl %ebx, %edx + 0x41, 0x8d, 0xb4, 0x24, 0xab, 0xaa, 0xaa, 0xaa, //0x00001502 leal $-1431655765(%r12), %esi + 0x31, 0xd6, //0x0000150a xorl %edx, %esi + 0x21, 0xfe, //0x0000150c andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000150e andl $-1431655766, %esi + 0x31, 0xdb, //0x00001514 xorl %ebx, %ebx + 0x01, 0xfe, //0x00001516 addl %edi, %esi + 0x0f, 0x92, 0xc3, //0x00001518 setb %bl + 0x01, 0xf6, //0x0000151b addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000151d xorl $1431655765, %esi + 0x21, 0xd6, //0x00001523 andl %edx, %esi + 0x44, 0x31, 0xe6, //0x00001525 xorl %r12d, %esi + 0x41, 0x21, 0xf3, //0x00001528 andl %esi, %r11d + //0x0000152b LBB0_260 + 0x45, 0x85, 0xdb, //0x0000152b testl %r11d, %r11d + 0x0f, 0x85, 0xcc, 0x07, 0x00, 0x00, //0x0000152e jne LBB0_354 + 0x48, 0x83, 0xc0, 0x20, //0x00001534 addq $32, %rax + 0x49, 0x8d, 0x54, 0x08, 0xe0, //0x00001538 leaq $-32(%r8,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xe0, //0x0000153d addq $-32, %rcx + 0x48, 0x83, 0xfa, 0x3f, //0x00001541 cmpq $63, %rdx + 0x0f, 0x8f, 0x75, 0xff, 0xff, 0xff, //0x00001545 jg LBB0_256 + 0x48, 0x85, 0xdb, //0x0000154b testq %rbx, %rbx + 0x0f, 0x85, 0x01, 0x0a, 0x00, 0x00, //0x0000154e jne LBB0_384 + 0x4a, 0x8d, 0x4c, 0x08, 0x01, //0x00001554 leaq $1(%rax,%r9), %rcx + 0x48, 0xf7, 0xd0, //0x00001559 notq %rax + 0x4c, 0x01, 0xc0, //0x0000155c addq %r8, %rax + //0x0000155f LBB0_264 + 0x48, 0x85, 0xc0, //0x0000155f testq %rax, %rax + 0x48, 0x8b, 0x3c, 0x24, //0x00001562 movq (%rsp), %rdi + 0x0f, 0x8e, 0xdf, 0x09, 0x00, 0x00, //0x00001566 jle LBB0_383 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x0000156c movq $24(%rsp), %r11 + 0xe9, 0xc4, 0x07, 0x00, 0x00, //0x00001571 jmp LBB0_356 + //0x00001576 LBB0_266 + 0x4d, 0x8b, 0x1b, //0x00001576 movq (%r11), %r11 + 0x4d, 0x29, 0xd3, //0x00001579 subq %r10, %r11 + 0x4c, 0x01, 0x14, 0x24, //0x0000157c addq %r10, (%rsp) + 0x45, 0x31, 0xc0, //0x00001580 xorl %r8d, %r8d + 0x45, 0x31, 0xf6, //0x00001583 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x00001586 xorl %r15d, %r15d + 0x31, 0xd2, //0x00001589 xorl %edx, %edx + 0x49, 0x83, 0xfb, 0x40, //0x0000158b cmpq $64, %r11 + 0x0f, 0x8d, 0x3c, 0x01, 0x00, 0x00, //0x0000158f jge LBB0_267 + //0x00001595 LBB0_276 + 0x4d, 0x85, 0xdb, //0x00001595 testq %r11, %r11 + 0x0f, 0x8e, 0x9b, 0x09, 0x00, 0x00, //0x00001598 jle LBB0_382 + 0xc5, 0xc9, 0xef, 0xf6, //0x0000159e vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x60, //0x000015a2 vmovdqu %ymm6, $96(%rsp) + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x000015a8 vmovdqu %ymm6, $64(%rsp) + 0x48, 0x8b, 0x04, 0x24, //0x000015ae movq (%rsp), %rax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x000015b2 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x000015b7 cmpl $4033, %eax + 0x0f, 0x82, 0x0f, 0x01, 0x00, 0x00, //0x000015bc jb LBB0_267 + 0x49, 0x83, 0xfb, 0x20, //0x000015c2 cmpq $32, %r11 + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000015c6 jb LBB0_280 + 0x48, 0x8b, 0x04, 0x24, //0x000015cc movq (%rsp), %rax + 0xc5, 0xfe, 0x6f, 0x30, //0x000015d0 vmovdqu (%rax), %ymm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x000015d4 vmovdqu %ymm6, $64(%rsp) + 0x48, 0x83, 0xc0, 0x20, //0x000015da addq $32, %rax + 0x48, 0x89, 0x04, 0x24, //0x000015de movq %rax, (%rsp) + 0x4d, 0x8d, 0x53, 0xe0, //0x000015e2 leaq $-32(%r11), %r10 + 0x4c, 0x8d, 0x4c, 0x24, 0x60, //0x000015e6 leaq $96(%rsp), %r9 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x000015eb jmp LBB0_281 + //0x000015f0 LBB0_280 + 0x4c, 0x8d, 0x4c, 0x24, 0x40, //0x000015f0 leaq $64(%rsp), %r9 + 0x4d, 0x89, 0xda, //0x000015f5 movq %r11, %r10 + //0x000015f8 LBB0_281 + 0x49, 0x83, 0xfa, 0x10, //0x000015f8 cmpq $16, %r10 + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000015fc jb LBB0_282 + 0x48, 0x8b, 0x04, 0x24, //0x00001602 movq (%rsp), %rax + 0xc5, 0xfa, 0x6f, 0x30, //0x00001606 vmovdqu (%rax), %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x31, //0x0000160a vmovdqu %xmm6, (%r9) + 0x48, 0x83, 0xc0, 0x10, //0x0000160f addq $16, %rax + 0x48, 0x89, 0x04, 0x24, //0x00001613 movq %rax, (%rsp) + 0x49, 0x83, 0xc1, 0x10, //0x00001617 addq $16, %r9 + 0x49, 0x83, 0xc2, 0xf0, //0x0000161b addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x08, //0x0000161f cmpq $8, %r10 + 0x0f, 0x83, 0x40, 0x00, 0x00, 0x00, //0x00001623 jae LBB0_287 + //0x00001629 LBB0_283 + 0x49, 0x83, 0xfa, 0x04, //0x00001629 cmpq $4, %r10 + 0x0f, 0x8c, 0x5a, 0x00, 0x00, 0x00, //0x0000162d jl LBB0_284 + //0x00001633 LBB0_288 + 0x48, 0x8b, 0x0c, 0x24, //0x00001633 movq (%rsp), %rcx + 0x8b, 0x01, //0x00001637 movl (%rcx), %eax + 0x41, 0x89, 0x01, //0x00001639 movl %eax, (%r9) + 0x48, 0x83, 0xc1, 0x04, //0x0000163c addq $4, %rcx + 0x48, 0x89, 0x0c, 0x24, //0x00001640 movq %rcx, (%rsp) + 0x49, 0x83, 0xc1, 0x04, //0x00001644 addq $4, %r9 + 0x49, 0x83, 0xc2, 0xfc, //0x00001648 addq $-4, %r10 + 0x49, 0x83, 0xfa, 0x02, //0x0000164c cmpq $2, %r10 + 0x0f, 0x83, 0x41, 0x00, 0x00, 0x00, //0x00001650 jae LBB0_285 + //0x00001656 LBB0_289 + 0x48, 0x8b, 0x04, 0x24, //0x00001656 movq (%rsp), %rax + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x0000165a jmp LBB0_290 + //0x0000165f LBB0_282 + 0x49, 0x83, 0xfa, 0x08, //0x0000165f cmpq $8, %r10 + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00001663 jb LBB0_283 + //0x00001669 LBB0_287 + 0x48, 0x8b, 0x0c, 0x24, //0x00001669 movq (%rsp), %rcx + 0x48, 0x8b, 0x01, //0x0000166d movq (%rcx), %rax + 0x49, 0x89, 0x01, //0x00001670 movq %rax, (%r9) + 0x48, 0x83, 0xc1, 0x08, //0x00001673 addq $8, %rcx + 0x48, 0x89, 0x0c, 0x24, //0x00001677 movq %rcx, (%rsp) + 0x49, 0x83, 0xc1, 0x08, //0x0000167b addq $8, %r9 + 0x49, 0x83, 0xc2, 0xf8, //0x0000167f addq $-8, %r10 + 0x49, 0x83, 0xfa, 0x04, //0x00001683 cmpq $4, %r10 + 0x0f, 0x8d, 0xa6, 0xff, 0xff, 0xff, //0x00001687 jge LBB0_288 + //0x0000168d LBB0_284 + 0x49, 0x83, 0xfa, 0x02, //0x0000168d cmpq $2, %r10 + 0x0f, 0x82, 0xbf, 0xff, 0xff, 0xff, //0x00001691 jb LBB0_289 + //0x00001697 LBB0_285 + 0x48, 0x8b, 0x0c, 0x24, //0x00001697 movq (%rsp), %rcx + 0x0f, 0xb7, 0x01, //0x0000169b movzwl (%rcx), %eax + 0x66, 0x41, 0x89, 0x01, //0x0000169e movw %ax, (%r9) + 0x48, 0x83, 0xc1, 0x02, //0x000016a2 addq $2, %rcx + 0x49, 0x83, 0xc1, 0x02, //0x000016a6 addq $2, %r9 + 0x49, 0x83, 0xc2, 0xfe, //0x000016aa addq $-2, %r10 + 0x48, 0x89, 0xc8, //0x000016ae movq %rcx, %rax + //0x000016b1 LBB0_290 + 0x48, 0x8d, 0x4c, 0x24, 0x40, //0x000016b1 leaq $64(%rsp), %rcx + 0x48, 0x89, 0x0c, 0x24, //0x000016b6 movq %rcx, (%rsp) + 0x4d, 0x85, 0xd2, //0x000016ba testq %r10, %r10 + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000016bd je LBB0_267 + 0x8a, 0x00, //0x000016c3 movb (%rax), %al + 0x41, 0x88, 0x01, //0x000016c5 movb %al, (%r9) + 0x48, 0x8d, 0x44, 0x24, 0x40, //0x000016c8 leaq $64(%rsp), %rax + 0x48, 0x89, 0x04, 0x24, //0x000016cd movq %rax, (%rsp) + //0x000016d1 LBB0_267 + 0x48, 0x8b, 0x04, 0x24, //0x000016d1 movq (%rsp), %rax + 0xc5, 0x7e, 0x6f, 0x38, //0x000016d5 vmovdqu (%rax), %ymm15 + 0xc5, 0x7e, 0x6f, 0x70, 0x20, //0x000016d9 vmovdqu $32(%rax), %ymm14 + 0xc5, 0x85, 0x74, 0xf1, //0x000016de vpcmpeqb %ymm1, %ymm15, %ymm6 + 0xc5, 0x7d, 0xd7, 0xce, //0x000016e2 vpmovmskb %ymm6, %r9d + 0xc5, 0x8d, 0x74, 0xf1, //0x000016e6 vpcmpeqb %ymm1, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x000016ea vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x000016ee shlq $32, %rax + 0x49, 0x09, 0xc1, //0x000016f2 orq %rax, %r9 + 0xc5, 0x85, 0x74, 0xf2, //0x000016f5 vpcmpeqb %ymm2, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xfe, //0x000016f9 vpmovmskb %ymm6, %edi + 0xc5, 0x8d, 0x74, 0xf2, //0x000016fd vpcmpeqb %ymm2, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00001701 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00001705 shlq $32, %rax + 0x48, 0x09, 0xc7, //0x00001709 orq %rax, %rdi + 0x48, 0x89, 0xf8, //0x0000170c movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x0000170f orq %r14, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00001712 je LBB0_269 + 0x4c, 0x89, 0xf0, //0x00001718 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x0000171b notq %rax + 0x48, 0x21, 0xf8, //0x0000171e andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00001721 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf1, //0x00001725 orq %r14, %rcx + 0x48, 0x89, 0xcb, //0x00001728 movq %rcx, %rbx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000172b movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf3, //0x00001735 xorq %rsi, %rbx + 0x48, 0x21, 0xf7, //0x00001738 andq %rsi, %rdi + 0x48, 0x21, 0xdf, //0x0000173b andq %rbx, %rdi + 0x45, 0x31, 0xf6, //0x0000173e xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00001741 addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x00001744 setb %r14b + 0x48, 0x01, 0xff, //0x00001748 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000174b movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00001755 xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x00001758 andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x0000175b notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000175e jmp LBB0_270 + //0x00001763 LBB0_269 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001763 movq $-1, %rdi + 0x45, 0x31, 0xf6, //0x0000176a xorl %r14d, %r14d + //0x0000176d LBB0_270 + 0x4c, 0x21, 0xcf, //0x0000176d andq %r9, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xf7, //0x00001770 vmovq %rdi, %xmm6 + 0xc4, 0xc3, 0x49, 0x44, 0xf1, 0x00, //0x00001775 vpclmulqdq $0, %xmm9, %xmm6, %xmm6 + 0xc4, 0xe1, 0xf9, 0x7e, 0xf7, //0x0000177b vmovq %xmm6, %rdi + 0x4c, 0x31, 0xc7, //0x00001780 xorq %r8, %rdi + 0xc4, 0xc1, 0x05, 0x74, 0xf2, //0x00001783 vpcmpeqb %ymm10, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xf6, //0x00001788 vpmovmskb %ymm6, %esi + 0xc4, 0xc1, 0x0d, 0x74, 0xf2, //0x0000178c vpcmpeqb %ymm10, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00001791 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00001795 shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00001799 orq %rax, %rsi + 0x48, 0x89, 0xf9, //0x0000179c movq %rdi, %rcx + 0x48, 0xf7, 0xd1, //0x0000179f notq %rcx + 0x48, 0x21, 0xce, //0x000017a2 andq %rcx, %rsi + 0xc4, 0xc1, 0x05, 0x74, 0xf3, //0x000017a5 vpcmpeqb %ymm11, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x000017aa vpmovmskb %ymm6, %eax + 0xc4, 0xc1, 0x0d, 0x74, 0xf3, //0x000017ae vpcmpeqb %ymm11, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x000017b3 vpmovmskb %ymm6, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x000017b7 shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x000017bb orq %rbx, %rax + 0x48, 0x21, 0xc8, //0x000017be andq %rcx, %rax + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000017c1 je LBB0_274 + 0x4c, 0x8b, 0x04, 0x24, //0x000017c7 movq (%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000017cb .p2align 4, 0x90 + //0x000017d0 LBB0_272 + 0x48, 0x8d, 0x58, 0xff, //0x000017d0 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x000017d4 movq %rbx, %rcx + 0x48, 0x21, 0xf1, //0x000017d7 andq %rsi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x000017da popcntq %rcx, %rcx + 0x4c, 0x01, 0xf9, //0x000017df addq %r15, %rcx + 0x48, 0x39, 0xd1, //0x000017e2 cmpq %rdx, %rcx + 0x0f, 0x86, 0xdf, 0x04, 0x00, 0x00, //0x000017e5 jbe LBB0_352 + 0x48, 0xff, 0xc2, //0x000017eb incq %rdx + 0x48, 0x21, 0xd8, //0x000017ee andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000017f1 jne LBB0_272 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000017f7 jmp LBB0_275 + //0x000017fc LBB0_274 + 0x4c, 0x8b, 0x04, 0x24, //0x000017fc movq (%rsp), %r8 + //0x00001800 LBB0_275 + 0x48, 0xc1, 0xff, 0x3f, //0x00001800 sarq $63, %rdi + 0xf3, 0x48, 0x0f, 0xb8, 0xc6, //0x00001804 popcntq %rsi, %rax + 0x49, 0x01, 0xc7, //0x00001809 addq %rax, %r15 + 0x49, 0x83, 0xc0, 0x40, //0x0000180c addq $64, %r8 + 0x4c, 0x89, 0x04, 0x24, //0x00001810 movq %r8, (%rsp) + 0x49, 0x83, 0xc3, 0xc0, //0x00001814 addq $-64, %r11 + 0x49, 0x89, 0xf8, //0x00001818 movq %rdi, %r8 + 0x49, 0x83, 0xfb, 0x40, //0x0000181b cmpq $64, %r11 + 0x0f, 0x8d, 0xac, 0xfe, 0xff, 0xff, //0x0000181f jge LBB0_267 + 0xe9, 0x6b, 0xfd, 0xff, 0xff, //0x00001825 jmp LBB0_276 + //0x0000182a LBB0_292 + 0x48, 0x83, 0xc1, 0x05, //0x0000182a addq $5, %rcx + 0x49, 0x3b, 0x0b, //0x0000182e cmpq (%r11), %rcx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00001831 ja LBB0_294 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001837 .p2align 4, 0x90 + //0x00001840 LBB0_293 + 0x49, 0x89, 0x0e, //0x00001840 movq %rcx, (%r14) + 0x49, 0x89, 0xca, //0x00001843 movq %rcx, %r10 + //0x00001846 LBB0_294 + 0x4d, 0x8b, 0x07, //0x00001846 movq (%r15), %r8 + 0x49, 0x8b, 0x47, 0x08, //0x00001849 movq $8(%r15), %rax + 0x49, 0x39, 0xc2, //0x0000184d cmpq %rax, %r10 + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00001850 jae LBB0_299 + 0x43, 0x8a, 0x0c, 0x10, //0x00001856 movb (%r8,%r10), %cl + 0x80, 0xf9, 0x0d, //0x0000185a cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000185d je LBB0_299 + 0x80, 0xf9, 0x20, //0x00001863 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001866 je LBB0_299 + 0x80, 0xc1, 0xf7, //0x0000186c addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000186f cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00001872 jbe LBB0_299 + 0x4c, 0x89, 0xd1, //0x00001878 movq %r10, %rcx + 0xe9, 0x78, 0x01, 0x00, 0x00, //0x0000187b jmp LBB0_325 + //0x00001880 .p2align 4, 0x90 + //0x00001880 LBB0_299 + 0x49, 0x8d, 0x4a, 0x01, //0x00001880 leaq $1(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00001884 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001887 jae LBB0_303 + 0x41, 0x8a, 0x14, 0x08, //0x0000188d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00001891 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00001894 je LBB0_303 + 0x80, 0xfa, 0x20, //0x0000189a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000189d je LBB0_303 + 0x80, 0xc2, 0xf7, //0x000018a3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000018a6 cmpb $1, %dl + 0x0f, 0x87, 0x49, 0x01, 0x00, 0x00, //0x000018a9 ja LBB0_325 + 0x90, //0x000018af .p2align 4, 0x90 + //0x000018b0 LBB0_303 + 0x49, 0x8d, 0x4a, 0x02, //0x000018b0 leaq $2(%r10), %rcx + 0x48, 0x39, 0xc1, //0x000018b4 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000018b7 jae LBB0_307 + 0x41, 0x8a, 0x14, 0x08, //0x000018bd movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000018c1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000018c4 je LBB0_307 + 0x80, 0xfa, 0x20, //0x000018ca cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000018cd je LBB0_307 + 0x80, 0xc2, 0xf7, //0x000018d3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000018d6 cmpb $1, %dl + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x000018d9 ja LBB0_325 + 0x90, //0x000018df .p2align 4, 0x90 + //0x000018e0 LBB0_307 + 0x49, 0x8d, 0x4a, 0x03, //0x000018e0 leaq $3(%r10), %rcx + 0x48, 0x39, 0xc1, //0x000018e4 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000018e7 jae LBB0_311 + 0x41, 0x8a, 0x14, 0x08, //0x000018ed movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000018f1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000018f4 je LBB0_311 + 0x80, 0xfa, 0x20, //0x000018fa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000018fd je LBB0_311 + 0x80, 0xc2, 0xf7, //0x00001903 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00001906 cmpb $1, %dl + 0x0f, 0x87, 0xe9, 0x00, 0x00, 0x00, //0x00001909 ja LBB0_325 + 0x90, //0x0000190f .p2align 4, 0x90 + //0x00001910 LBB0_311 + 0x49, 0x8d, 0x4a, 0x04, //0x00001910 leaq $4(%r10), %rcx + 0x48, 0x89, 0xc2, //0x00001914 movq %rax, %rdx + 0x48, 0x29, 0xca, //0x00001917 subq %rcx, %rdx + 0x0f, 0x86, 0xcd, 0x17, 0x00, 0x00, //0x0000191a jbe LBB0_625 + 0x4c, 0x01, 0xc1, //0x00001920 addq %r8, %rcx + 0x48, 0x83, 0xfa, 0x20, //0x00001923 cmpq $32, %rdx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x00001927 jb LBB0_317 + 0x48, 0x89, 0xc6, //0x0000192d movq %rax, %rsi + 0x4c, 0x29, 0xd6, //0x00001930 subq %r10, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x00001933 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x00001937 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x0000193a andq $-32, %rdi + 0x4c, 0x01, 0xd7, //0x0000193e addq %r10, %rdi + 0x49, 0x8d, 0x7c, 0x38, 0x24, //0x00001941 leaq $36(%r8,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x00001946 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001949 .p2align 4, 0x90 + //0x00001950 LBB0_314 + 0xc5, 0xfe, 0x6f, 0x31, //0x00001950 vmovdqu (%rcx), %ymm6 + 0xc4, 0xe2, 0x7d, 0x00, 0xfe, //0x00001954 vpshufb %ymm6, %ymm0, %ymm7 + 0xc5, 0xcd, 0x74, 0xf7, //0x00001959 vpcmpeqb %ymm7, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x0000195d vpmovmskb %ymm6, %ebx + 0x83, 0xfb, 0xff, //0x00001961 cmpl $-1, %ebx + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00001964 jne LBB0_324 + 0x48, 0x83, 0xc1, 0x20, //0x0000196a addq $32, %rcx + 0x48, 0x83, 0xc2, 0xe0, //0x0000196e addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x00001972 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00001976 ja LBB0_314 + 0x48, 0x89, 0xf2, //0x0000197c movq %rsi, %rdx + 0x48, 0x89, 0xf9, //0x0000197f movq %rdi, %rcx + //0x00001982 LBB0_317 + 0x48, 0x85, 0xd2, //0x00001982 testq %rdx, %rdx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00001985 je LBB0_323 + 0x48, 0x8d, 0x34, 0x11, //0x0000198b leaq (%rcx,%rdx), %rsi + 0x48, 0xff, 0xc1, //0x0000198f incq %rcx + //0x00001992 LBB0_319 + 0x0f, 0xbe, 0x79, 0xff, //0x00001992 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x00001996 cmpl $32, %edi + 0x0f, 0x87, 0xec, 0x03, 0x00, 0x00, //0x00001999 ja LBB0_361 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000199f movabsq $4294977024, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x000019a9 btq %rdi, %rbx + 0x0f, 0x83, 0xd8, 0x03, 0x00, 0x00, //0x000019ad jae LBB0_361 + 0x48, 0xff, 0xca, //0x000019b3 decq %rdx + 0x48, 0xff, 0xc1, //0x000019b6 incq %rcx + 0x48, 0x85, 0xd2, //0x000019b9 testq %rdx, %rdx + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x000019bc jne LBB0_319 + 0x48, 0x89, 0xf1, //0x000019c2 movq %rsi, %rcx + //0x000019c5 LBB0_323 + 0x4c, 0x29, 0xc1, //0x000019c5 subq %r8, %rcx + 0x48, 0x39, 0xc1, //0x000019c8 cmpq %rax, %rcx + 0x0f, 0x82, 0x27, 0x00, 0x00, 0x00, //0x000019cb jb LBB0_325 + 0xe9, 0x1b, 0x19, 0x00, 0x00, //0x000019d1 jmp LBB0_657 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019d6 .p2align 4, 0x90 + //0x000019e0 LBB0_324 + 0x4c, 0x29, 0xc1, //0x000019e0 subq %r8, %rcx + 0xf7, 0xd3, //0x000019e3 notl %ebx + 0x48, 0x63, 0xd3, //0x000019e5 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x000019e8 bsfq %rdx, %rdx + 0x48, 0x01, 0xd1, //0x000019ec addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x000019ef cmpq %rax, %rcx + 0x0f, 0x83, 0xf9, 0x18, 0x00, 0x00, //0x000019f2 jae LBB0_657 + //0x000019f8 LBB0_325 + 0x4c, 0x8d, 0x51, 0x01, //0x000019f8 leaq $1(%rcx), %r10 + 0x4d, 0x89, 0x16, //0x000019fc movq %r10, (%r14) + 0x41, 0x8a, 0x04, 0x08, //0x000019ff movb (%r8,%rcx), %al + 0x3c, 0x2c, //0x00001a03 cmpb $44, %al + 0x0f, 0x84, 0x43, 0xeb, 0xff, 0xff, //0x00001a05 je LBB0_39 + 0xe9, 0x0a, 0x17, 0x00, 0x00, //0x00001a0b jmp LBB0_630 + //0x00001a10 LBB0_326 + 0x4d, 0x8b, 0x1b, //0x00001a10 movq (%r11), %r11 + 0x4d, 0x29, 0xd3, //0x00001a13 subq %r10, %r11 + 0x4c, 0x01, 0x14, 0x24, //0x00001a16 addq %r10, (%rsp) + 0x45, 0x31, 0xc0, //0x00001a1a xorl %r8d, %r8d + 0x45, 0x31, 0xf6, //0x00001a1d xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x00001a20 xorl %r15d, %r15d + 0x31, 0xd2, //0x00001a23 xorl %edx, %edx + 0x49, 0x83, 0xfb, 0x40, //0x00001a25 cmpq $64, %r11 + 0x0f, 0x8d, 0x3c, 0x01, 0x00, 0x00, //0x00001a29 jge LBB0_327 + //0x00001a2f LBB0_336 + 0x4d, 0x85, 0xdb, //0x00001a2f testq %r11, %r11 + 0x0f, 0x8e, 0x01, 0x05, 0x00, 0x00, //0x00001a32 jle LBB0_382 + 0xc5, 0xc9, 0xef, 0xf6, //0x00001a38 vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x60, //0x00001a3c vmovdqu %ymm6, $96(%rsp) + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x00001a42 vmovdqu %ymm6, $64(%rsp) + 0x48, 0x8b, 0x04, 0x24, //0x00001a48 movq (%rsp), %rax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00001a4c andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00001a51 cmpl $4033, %eax + 0x0f, 0x82, 0x0f, 0x01, 0x00, 0x00, //0x00001a56 jb LBB0_327 + 0x49, 0x83, 0xfb, 0x20, //0x00001a5c cmpq $32, %r11 + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00001a60 jb LBB0_340 + 0x48, 0x8b, 0x04, 0x24, //0x00001a66 movq (%rsp), %rax + 0xc5, 0xfe, 0x6f, 0x30, //0x00001a6a vmovdqu (%rax), %ymm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x00001a6e vmovdqu %ymm6, $64(%rsp) + 0x48, 0x83, 0xc0, 0x20, //0x00001a74 addq $32, %rax + 0x48, 0x89, 0x04, 0x24, //0x00001a78 movq %rax, (%rsp) + 0x4d, 0x8d, 0x53, 0xe0, //0x00001a7c leaq $-32(%r11), %r10 + 0x4c, 0x8d, 0x4c, 0x24, 0x60, //0x00001a80 leaq $96(%rsp), %r9 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00001a85 jmp LBB0_341 + //0x00001a8a LBB0_340 + 0x4c, 0x8d, 0x4c, 0x24, 0x40, //0x00001a8a leaq $64(%rsp), %r9 + 0x4d, 0x89, 0xda, //0x00001a8f movq %r11, %r10 + //0x00001a92 LBB0_341 + 0x49, 0x83, 0xfa, 0x10, //0x00001a92 cmpq $16, %r10 + 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x00001a96 jb LBB0_342 + 0x48, 0x8b, 0x04, 0x24, //0x00001a9c movq (%rsp), %rax + 0xc5, 0xfa, 0x6f, 0x30, //0x00001aa0 vmovdqu (%rax), %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x31, //0x00001aa4 vmovdqu %xmm6, (%r9) + 0x48, 0x83, 0xc0, 0x10, //0x00001aa9 addq $16, %rax + 0x48, 0x89, 0x04, 0x24, //0x00001aad movq %rax, (%rsp) + 0x49, 0x83, 0xc1, 0x10, //0x00001ab1 addq $16, %r9 + 0x49, 0x83, 0xc2, 0xf0, //0x00001ab5 addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x08, //0x00001ab9 cmpq $8, %r10 + 0x0f, 0x83, 0x40, 0x00, 0x00, 0x00, //0x00001abd jae LBB0_347 + //0x00001ac3 LBB0_343 + 0x49, 0x83, 0xfa, 0x04, //0x00001ac3 cmpq $4, %r10 + 0x0f, 0x8c, 0x5a, 0x00, 0x00, 0x00, //0x00001ac7 jl LBB0_344 + //0x00001acd LBB0_348 + 0x48, 0x8b, 0x0c, 0x24, //0x00001acd movq (%rsp), %rcx + 0x8b, 0x01, //0x00001ad1 movl (%rcx), %eax + 0x41, 0x89, 0x01, //0x00001ad3 movl %eax, (%r9) + 0x48, 0x83, 0xc1, 0x04, //0x00001ad6 addq $4, %rcx + 0x48, 0x89, 0x0c, 0x24, //0x00001ada movq %rcx, (%rsp) + 0x49, 0x83, 0xc1, 0x04, //0x00001ade addq $4, %r9 + 0x49, 0x83, 0xc2, 0xfc, //0x00001ae2 addq $-4, %r10 + 0x49, 0x83, 0xfa, 0x02, //0x00001ae6 cmpq $2, %r10 + 0x0f, 0x83, 0x41, 0x00, 0x00, 0x00, //0x00001aea jae LBB0_345 + //0x00001af0 LBB0_349 + 0x48, 0x8b, 0x04, 0x24, //0x00001af0 movq (%rsp), %rax + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00001af4 jmp LBB0_350 + //0x00001af9 LBB0_342 + 0x49, 0x83, 0xfa, 0x08, //0x00001af9 cmpq $8, %r10 + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00001afd jb LBB0_343 + //0x00001b03 LBB0_347 + 0x48, 0x8b, 0x0c, 0x24, //0x00001b03 movq (%rsp), %rcx + 0x48, 0x8b, 0x01, //0x00001b07 movq (%rcx), %rax + 0x49, 0x89, 0x01, //0x00001b0a movq %rax, (%r9) + 0x48, 0x83, 0xc1, 0x08, //0x00001b0d addq $8, %rcx + 0x48, 0x89, 0x0c, 0x24, //0x00001b11 movq %rcx, (%rsp) + 0x49, 0x83, 0xc1, 0x08, //0x00001b15 addq $8, %r9 + 0x49, 0x83, 0xc2, 0xf8, //0x00001b19 addq $-8, %r10 + 0x49, 0x83, 0xfa, 0x04, //0x00001b1d cmpq $4, %r10 + 0x0f, 0x8d, 0xa6, 0xff, 0xff, 0xff, //0x00001b21 jge LBB0_348 + //0x00001b27 LBB0_344 + 0x49, 0x83, 0xfa, 0x02, //0x00001b27 cmpq $2, %r10 + 0x0f, 0x82, 0xbf, 0xff, 0xff, 0xff, //0x00001b2b jb LBB0_349 + //0x00001b31 LBB0_345 + 0x48, 0x8b, 0x0c, 0x24, //0x00001b31 movq (%rsp), %rcx + 0x0f, 0xb7, 0x01, //0x00001b35 movzwl (%rcx), %eax + 0x66, 0x41, 0x89, 0x01, //0x00001b38 movw %ax, (%r9) + 0x48, 0x83, 0xc1, 0x02, //0x00001b3c addq $2, %rcx + 0x49, 0x83, 0xc1, 0x02, //0x00001b40 addq $2, %r9 + 0x49, 0x83, 0xc2, 0xfe, //0x00001b44 addq $-2, %r10 + 0x48, 0x89, 0xc8, //0x00001b48 movq %rcx, %rax + //0x00001b4b LBB0_350 + 0x48, 0x8d, 0x4c, 0x24, 0x40, //0x00001b4b leaq $64(%rsp), %rcx + 0x48, 0x89, 0x0c, 0x24, //0x00001b50 movq %rcx, (%rsp) + 0x4d, 0x85, 0xd2, //0x00001b54 testq %r10, %r10 + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001b57 je LBB0_327 + 0x8a, 0x00, //0x00001b5d movb (%rax), %al + 0x41, 0x88, 0x01, //0x00001b5f movb %al, (%r9) + 0x48, 0x8d, 0x44, 0x24, 0x40, //0x00001b62 leaq $64(%rsp), %rax + 0x48, 0x89, 0x04, 0x24, //0x00001b67 movq %rax, (%rsp) + //0x00001b6b LBB0_327 + 0x48, 0x8b, 0x04, 0x24, //0x00001b6b movq (%rsp), %rax + 0xc5, 0x7e, 0x6f, 0x38, //0x00001b6f vmovdqu (%rax), %ymm15 + 0xc5, 0x7e, 0x6f, 0x70, 0x20, //0x00001b73 vmovdqu $32(%rax), %ymm14 + 0xc5, 0x85, 0x74, 0xf1, //0x00001b78 vpcmpeqb %ymm1, %ymm15, %ymm6 + 0xc5, 0x7d, 0xd7, 0xce, //0x00001b7c vpmovmskb %ymm6, %r9d + 0xc5, 0x8d, 0x74, 0xf1, //0x00001b80 vpcmpeqb %ymm1, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00001b84 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00001b88 shlq $32, %rax + 0x49, 0x09, 0xc1, //0x00001b8c orq %rax, %r9 + 0xc5, 0x85, 0x74, 0xf2, //0x00001b8f vpcmpeqb %ymm2, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xfe, //0x00001b93 vpmovmskb %ymm6, %edi + 0xc5, 0x8d, 0x74, 0xf2, //0x00001b97 vpcmpeqb %ymm2, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00001b9b vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00001b9f shlq $32, %rax + 0x48, 0x09, 0xc7, //0x00001ba3 orq %rax, %rdi + 0x48, 0x89, 0xf8, //0x00001ba6 movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x00001ba9 orq %r14, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00001bac je LBB0_329 + 0x4c, 0x89, 0xf0, //0x00001bb2 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001bb5 notq %rax + 0x48, 0x21, 0xf8, //0x00001bb8 andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00001bbb leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf1, //0x00001bbf orq %r14, %rcx + 0x48, 0x89, 0xcb, //0x00001bc2 movq %rcx, %rbx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001bc5 movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf3, //0x00001bcf xorq %rsi, %rbx + 0x48, 0x21, 0xf7, //0x00001bd2 andq %rsi, %rdi + 0x48, 0x21, 0xdf, //0x00001bd5 andq %rbx, %rdi + 0x45, 0x31, 0xf6, //0x00001bd8 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00001bdb addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x00001bde setb %r14b + 0x48, 0x01, 0xff, //0x00001be2 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001be5 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00001bef xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x00001bf2 andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x00001bf5 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00001bf8 jmp LBB0_330 + //0x00001bfd LBB0_329 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001bfd movq $-1, %rdi + 0x45, 0x31, 0xf6, //0x00001c04 xorl %r14d, %r14d + //0x00001c07 LBB0_330 + 0x4c, 0x21, 0xcf, //0x00001c07 andq %r9, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xf7, //0x00001c0a vmovq %rdi, %xmm6 + 0xc4, 0xc3, 0x49, 0x44, 0xf1, 0x00, //0x00001c0f vpclmulqdq $0, %xmm9, %xmm6, %xmm6 + 0xc4, 0xe1, 0xf9, 0x7e, 0xf7, //0x00001c15 vmovq %xmm6, %rdi + 0x4c, 0x31, 0xc7, //0x00001c1a xorq %r8, %rdi + 0xc4, 0xc1, 0x05, 0x74, 0xf5, //0x00001c1d vpcmpeqb %ymm13, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xf6, //0x00001c22 vpmovmskb %ymm6, %esi + 0xc4, 0xc1, 0x0d, 0x74, 0xf5, //0x00001c26 vpcmpeqb %ymm13, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00001c2b vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00001c2f shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00001c33 orq %rax, %rsi + 0x48, 0x89, 0xf9, //0x00001c36 movq %rdi, %rcx + 0x48, 0xf7, 0xd1, //0x00001c39 notq %rcx + 0x48, 0x21, 0xce, //0x00001c3c andq %rcx, %rsi + 0xc5, 0x85, 0x74, 0xf5, //0x00001c3f vpcmpeqb %ymm5, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00001c43 vpmovmskb %ymm6, %eax + 0xc5, 0x8d, 0x74, 0xf5, //0x00001c47 vpcmpeqb %ymm5, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x00001c4b vpmovmskb %ymm6, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00001c4f shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x00001c53 orq %rbx, %rax + 0x48, 0x21, 0xc8, //0x00001c56 andq %rcx, %rax + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00001c59 je LBB0_334 + 0x4c, 0x8b, 0x04, 0x24, //0x00001c5f movq (%rsp), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c63 .p2align 4, 0x90 + //0x00001c70 LBB0_332 + 0x48, 0x8d, 0x58, 0xff, //0x00001c70 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00001c74 movq %rbx, %rcx + 0x48, 0x21, 0xf1, //0x00001c77 andq %rsi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x00001c7a popcntq %rcx, %rcx + 0x4c, 0x01, 0xf9, //0x00001c7f addq %r15, %rcx + 0x48, 0x39, 0xd1, //0x00001c82 cmpq %rdx, %rcx + 0x0f, 0x86, 0x3f, 0x00, 0x00, 0x00, //0x00001c85 jbe LBB0_352 + 0x48, 0xff, 0xc2, //0x00001c8b incq %rdx + 0x48, 0x21, 0xd8, //0x00001c8e andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00001c91 jne LBB0_332 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00001c97 jmp LBB0_335 + //0x00001c9c LBB0_334 + 0x4c, 0x8b, 0x04, 0x24, //0x00001c9c movq (%rsp), %r8 + //0x00001ca0 LBB0_335 + 0x48, 0xc1, 0xff, 0x3f, //0x00001ca0 sarq $63, %rdi + 0xf3, 0x48, 0x0f, 0xb8, 0xc6, //0x00001ca4 popcntq %rsi, %rax + 0x49, 0x01, 0xc7, //0x00001ca9 addq %rax, %r15 + 0x49, 0x83, 0xc0, 0x40, //0x00001cac addq $64, %r8 + 0x4c, 0x89, 0x04, 0x24, //0x00001cb0 movq %r8, (%rsp) + 0x49, 0x83, 0xc3, 0xc0, //0x00001cb4 addq $-64, %r11 + 0x49, 0x89, 0xf8, //0x00001cb8 movq %rdi, %r8 + 0x49, 0x83, 0xfb, 0x40, //0x00001cbb cmpq $64, %r11 + 0x0f, 0x8d, 0xa6, 0xfe, 0xff, 0xff, //0x00001cbf jge LBB0_327 + 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x00001cc5 jmp LBB0_336 + //0x00001cca LBB0_352 + 0x48, 0x8b, 0x54, 0x24, 0x18, //0x00001cca movq $24(%rsp), %rdx + 0x48, 0x8b, 0x0a, //0x00001ccf movq (%rdx), %rcx + 0x48, 0x0f, 0xbc, 0xc0, //0x00001cd2 bsfq %rax, %rax + 0x4c, 0x29, 0xd8, //0x00001cd6 subq %r11, %rax + 0x49, 0x89, 0xd3, //0x00001cd9 movq %rdx, %r11 + 0x4c, 0x8d, 0x54, 0x08, 0x01, //0x00001cdc leaq $1(%rax,%rcx), %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00001ce1 movq $8(%rsp), %r14 + 0x4d, 0x89, 0x16, //0x00001ce6 movq %r10, (%r14) + 0x48, 0x8b, 0x02, //0x00001ce9 movq (%rdx), %rax + 0x49, 0x39, 0xc2, //0x00001cec cmpq %rax, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00001cef cmovaq %rax, %r10 + //0x00001cf3 LBB0_353 + 0x4d, 0x89, 0x16, //0x00001cf3 movq %r10, (%r14) + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00001cf6 movq $16(%rsp), %r15 + 0xe9, 0x46, 0xfb, 0xff, 0xff, //0x00001cfb jmp LBB0_294 + //0x00001d00 LBB0_354 + 0x49, 0x0f, 0xbc, 0xcb, //0x00001d00 bsfq %r11, %rcx + 0x49, 0x01, 0xc9, //0x00001d04 addq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00001d07 addq %rax, %r9 + 0x4c, 0x2b, 0x0c, 0x24, //0x00001d0a subq (%rsp), %r9 + 0x49, 0x83, 0xc1, 0x02, //0x00001d0e addq $2, %r9 + 0x4d, 0x89, 0x0e, //0x00001d12 movq %r9, (%r14) + 0x4d, 0x89, 0xca, //0x00001d15 movq %r9, %r10 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001d18 movq $24(%rsp), %r11 + 0xe9, 0x24, 0xfb, 0xff, 0xff, //0x00001d1d jmp LBB0_294 + //0x00001d22 LBB0_355 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00001d22 movq $-2, %rdx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00001d29 movl $2, %esi + 0x48, 0x01, 0xf1, //0x00001d2e addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00001d31 addq %rdx, %rax + 0x0f, 0x8e, 0x0c, 0xfb, 0xff, 0xff, //0x00001d34 jle LBB0_294 + //0x00001d3a LBB0_356 + 0x0f, 0xb6, 0x11, //0x00001d3a movzbl (%rcx), %edx + 0x80, 0xfa, 0x5c, //0x00001d3d cmpb $92, %dl + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00001d40 je LBB0_355 + 0x80, 0xfa, 0x22, //0x00001d46 cmpb $34, %dl + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00001d49 je LBB0_363 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00001d4f movq $-1, %rdx + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00001d56 movl $1, %esi + 0x48, 0x01, 0xf1, //0x00001d5b addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00001d5e addq %rdx, %rax + 0x0f, 0x8f, 0xd3, 0xff, 0xff, 0xff, //0x00001d61 jg LBB0_356 + 0xe9, 0xda, 0xfa, 0xff, 0xff, //0x00001d67 jmp LBB0_294 + //0x00001d6c LBB0_359 + 0x0f, 0xb7, 0xc6, //0x00001d6c movzwl %si, %eax + 0xe9, 0xff, 0xf6, 0xff, 0xff, //0x00001d6f jmp LBB0_252 + //0x00001d74 LBB0_360 + 0x4c, 0x89, 0xc1, //0x00001d74 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00001d77 notq %rcx + 0x48, 0x01, 0xc8, //0x00001d7a addq %rcx, %rax + 0x48, 0x39, 0xd0, //0x00001d7d cmpq %rdx, %rax + 0x0f, 0x82, 0x92, 0xf3, 0xff, 0xff, //0x00001d80 jb LBB0_197 + 0xe9, 0x66, 0x15, 0x00, 0x00, //0x00001d86 jmp LBB0_657 + //0x00001d8b LBB0_361 + 0x4c, 0x89, 0xc2, //0x00001d8b movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00001d8e notq %rdx + 0x48, 0x01, 0xd1, //0x00001d91 addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x00001d94 cmpq %rax, %rcx + 0x0f, 0x82, 0x5b, 0xfc, 0xff, 0xff, //0x00001d97 jb LBB0_325 + 0xe9, 0x4f, 0x15, 0x00, 0x00, //0x00001d9d jmp LBB0_657 + //0x00001da2 LBB0_362 + 0x48, 0x8b, 0x04, 0x24, //0x00001da2 movq (%rsp), %rax + 0x48, 0xf7, 0xd0, //0x00001da6 notq %rax + 0x48, 0x01, 0xc1, //0x00001da9 addq %rax, %rcx + 0x4c, 0x39, 0xc1, //0x00001dac cmpq %r8, %rcx + 0x0f, 0x82, 0x64, 0xf5, 0xff, 0xff, //0x00001daf jb LBB0_230 + 0xe9, 0x8c, 0xfa, 0xff, 0xff, //0x00001db5 jmp LBB0_294 + //0x00001dba LBB0_363 + 0x48, 0x29, 0xf9, //0x00001dba subq %rdi, %rcx + 0x48, 0xff, 0xc1, //0x00001dbd incq %rcx + 0xe9, 0x7b, 0xfa, 0xff, 0xff, //0x00001dc0 jmp LBB0_293 + //0x00001dc5 LBB0_364 + 0x45, 0x31, 0xc9, //0x00001dc5 xorl %r9d, %r9d + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00001dc8 movq $16(%rsp), %r15 + 0xe9, 0xb7, 0xf1, 0xff, 0xff, //0x00001dcd jmp LBB0_170 + //0x00001dd2 LBB0_365 + 0x48, 0x8b, 0x0c, 0x24, //0x00001dd2 movq (%rsp), %rcx + 0x4c, 0x01, 0xd1, //0x00001dd6 addq %r10, %rcx + 0xe9, 0x81, 0xf7, 0xff, 0xff, //0x00001dd9 jmp LBB0_264 + //0x00001dde LBB0_366 + 0x49, 0x89, 0xfe, //0x00001dde movq %rdi, %r14 + 0x48, 0x83, 0x7c, 0x24, 0x38, 0xff, //0x00001de1 cmpq $-1, $56(%rsp) + 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00001de7 jne LBB0_369 + 0x4c, 0x89, 0xf7, //0x00001ded movq %r14, %rdi + 0x48, 0x2b, 0x3c, 0x24, //0x00001df0 subq (%rsp), %rdi + 0x4c, 0x0f, 0xbc, 0xfe, //0x00001df4 bsfq %rsi, %r15 + 0x49, 0x01, 0xff, //0x00001df8 addq %rdi, %r15 + 0x4c, 0x89, 0x7c, 0x24, 0x38, //0x00001dfb movq %r15, $56(%rsp) + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00001e00 jmp LBB0_369 + //0x00001e05 LBB0_368 + 0x49, 0x89, 0xfe, //0x00001e05 movq %rdi, %r14 + //0x00001e08 LBB0_369 + 0x41, 0x89, 0xdb, //0x00001e08 movl %ebx, %r11d + 0x41, 0xf7, 0xd3, //0x00001e0b notl %r11d + 0x41, 0x21, 0xf3, //0x00001e0e andl %esi, %r11d + 0x47, 0x8d, 0x14, 0x1b, //0x00001e11 leal (%r11,%r11), %r10d + 0x41, 0x09, 0xda, //0x00001e15 orl %ebx, %r10d + 0x44, 0x89, 0xd7, //0x00001e18 movl %r10d, %edi + 0xf7, 0xd7, //0x00001e1b notl %edi + 0x21, 0xf7, //0x00001e1d andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001e1f andl $-1431655766, %edi + 0x31, 0xdb, //0x00001e25 xorl %ebx, %ebx + 0x44, 0x01, 0xdf, //0x00001e27 addl %r11d, %edi + 0x0f, 0x92, 0xc3, //0x00001e2a setb %bl + 0x01, 0xff, //0x00001e2d addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00001e2f xorl $1431655765, %edi + 0x44, 0x21, 0xd7, //0x00001e35 andl %r10d, %edi + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00001e38 movl $4294967295, %esi + 0x31, 0xfe, //0x00001e3d xorl %edi, %esi + 0x41, 0x21, 0xf0, //0x00001e3f andl %esi, %r8d + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001e42 movq $24(%rsp), %r11 + 0x4c, 0x89, 0xf7, //0x00001e47 movq %r14, %rdi + 0x4d, 0x85, 0xc0, //0x00001e4a testq %r8, %r8 + 0x0f, 0x85, 0x59, 0xed, 0xff, 0xff, //0x00001e4d jne LBB0_83 + //0x00001e53 LBB0_370 + 0x48, 0x83, 0xc7, 0x20, //0x00001e53 addq $32, %rdi + 0x48, 0x83, 0xc0, 0xe0, //0x00001e57 addq $-32, %rax + //0x00001e5b LBB0_371 + 0x48, 0x85, 0xdb, //0x00001e5b testq %rbx, %rbx + 0x4c, 0x8b, 0x04, 0x24, //0x00001e5e movq (%rsp), %r8 + 0x0f, 0x85, 0x8c, 0x00, 0x00, 0x00, //0x00001e62 jne LBB0_380 + 0x48, 0x85, 0xc0, //0x00001e68 testq %rax, %rax + 0x0f, 0x84, 0xc9, 0x36, 0x00, 0x00, //0x00001e6b je LBB0_1094 + //0x00001e71 LBB0_373 + 0x4d, 0x89, 0xc6, //0x00001e71 movq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x00001e74 notq %r14 + //0x00001e77 LBB0_374 + 0x4c, 0x8d, 0x57, 0x01, //0x00001e77 leaq $1(%rdi), %r10 + 0x0f, 0xb6, 0x1f, //0x00001e7b movzbl (%rdi), %ebx + 0x80, 0xfb, 0x22, //0x00001e7e cmpb $34, %bl + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00001e81 je LBB0_379 + 0x48, 0x8d, 0x70, 0xff, //0x00001e87 leaq $-1(%rax), %rsi + 0x80, 0xfb, 0x5c, //0x00001e8b cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001e8e je LBB0_377 + 0x48, 0x89, 0xf0, //0x00001e94 movq %rsi, %rax + 0x4c, 0x89, 0xd7, //0x00001e97 movq %r10, %rdi + 0x48, 0x85, 0xf6, //0x00001e9a testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00001e9d jne LBB0_374 + 0xe9, 0x92, 0x36, 0x00, 0x00, //0x00001ea3 jmp LBB0_1094 + //0x00001ea8 LBB0_377 + 0x48, 0x85, 0xf6, //0x00001ea8 testq %rsi, %rsi + 0x0f, 0x84, 0x89, 0x36, 0x00, 0x00, //0x00001eab je LBB0_1094 + 0x4d, 0x01, 0xf2, //0x00001eb1 addq %r14, %r10 + 0x48, 0x8b, 0x74, 0x24, 0x38, //0x00001eb4 movq $56(%rsp), %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00001eb9 cmpq $-1, %rsi + 0x4d, 0x0f, 0x44, 0xfa, //0x00001ebd cmoveq %r10, %r15 + 0x49, 0x0f, 0x44, 0xf2, //0x00001ec1 cmoveq %r10, %rsi + 0x48, 0x89, 0x74, 0x24, 0x38, //0x00001ec5 movq %rsi, $56(%rsp) + 0x48, 0x83, 0xc7, 0x02, //0x00001eca addq $2, %rdi + 0x48, 0x83, 0xc0, 0xfe, //0x00001ece addq $-2, %rax + 0x48, 0x89, 0xc6, //0x00001ed2 movq %rax, %rsi + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001ed5 movq $24(%rsp), %r11 + 0x4c, 0x8b, 0x04, 0x24, //0x00001eda movq (%rsp), %r8 + 0x48, 0x85, 0xf6, //0x00001ede testq %rsi, %rsi + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x00001ee1 jne LBB0_374 + 0xe9, 0x4e, 0x36, 0x00, 0x00, //0x00001ee7 jmp LBB0_1094 + //0x00001eec LBB0_379 + 0x4d, 0x29, 0xc2, //0x00001eec subq %r8, %r10 + 0xe9, 0xa6, 0xe9, 0xff, 0xff, //0x00001eef jmp LBB0_87 + //0x00001ef4 LBB0_380 + 0x48, 0x85, 0xc0, //0x00001ef4 testq %rax, %rax + 0x0f, 0x84, 0x3d, 0x36, 0x00, 0x00, //0x00001ef7 je LBB0_1094 + 0x4c, 0x8b, 0x04, 0x24, //0x00001efd movq (%rsp), %r8 + 0x4c, 0x89, 0xc6, //0x00001f01 movq %r8, %rsi + 0x48, 0xf7, 0xd6, //0x00001f04 notq %rsi + 0x48, 0x01, 0xfe, //0x00001f07 addq %rdi, %rsi + 0x48, 0x8b, 0x5c, 0x24, 0x38, //0x00001f0a movq $56(%rsp), %rbx + 0x48, 0x83, 0xfb, 0xff, //0x00001f0f cmpq $-1, %rbx + 0x4c, 0x0f, 0x44, 0xfe, //0x00001f13 cmoveq %rsi, %r15 + 0x48, 0x0f, 0x44, 0xde, //0x00001f17 cmoveq %rsi, %rbx + 0x48, 0x89, 0x5c, 0x24, 0x38, //0x00001f1b movq %rbx, $56(%rsp) + 0x48, 0xff, 0xc7, //0x00001f20 incq %rdi + 0x48, 0xff, 0xc8, //0x00001f23 decq %rax + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001f26 movq $24(%rsp), %r11 + 0x48, 0x85, 0xc0, //0x00001f2b testq %rax, %rax + 0x0f, 0x85, 0x3d, 0xff, 0xff, 0xff, //0x00001f2e jne LBB0_373 + 0xe9, 0x01, 0x36, 0x00, 0x00, //0x00001f34 jmp LBB0_1094 + //0x00001f39 LBB0_382 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001f39 movq $24(%rsp), %r11 + 0x4d, 0x8b, 0x13, //0x00001f3e movq (%r11), %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00001f41 movq $8(%rsp), %r14 + 0xe9, 0xa8, 0xfd, 0xff, 0xff, //0x00001f46 jmp LBB0_353 + //0x00001f4b LBB0_383 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00001f4b movq $24(%rsp), %r11 + 0xe9, 0xf1, 0xf8, 0xff, 0xff, //0x00001f50 jmp LBB0_294 + //0x00001f55 LBB0_384 + 0x49, 0x8d, 0x48, 0xff, //0x00001f55 leaq $-1(%r8), %rcx + 0x48, 0x39, 0xc1, //0x00001f59 cmpq %rax, %rcx + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x00001f5c jne LBB0_386 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00001f62 movq $8(%rsp), %r14 + 0xe9, 0xf3, 0xf4, 0xff, 0xff, //0x00001f67 jmp LBB0_250 + //0x00001f6c LBB0_386 + 0x4a, 0x8d, 0x4c, 0x08, 0x02, //0x00001f6c leaq $2(%rax,%r9), %rcx + 0x49, 0x29, 0xc0, //0x00001f71 subq %rax, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00001f74 addq $-2, %r8 + 0x4c, 0x89, 0xc0, //0x00001f78 movq %r8, %rax + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00001f7b movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00001f80 movq $16(%rsp), %r15 + 0xe9, 0xd5, 0xf5, 0xff, 0xff, //0x00001f85 jmp LBB0_264 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001f8a .p2align 4, 0x90 + //0x00001f90 LBB0_387 + 0x80, 0xf9, 0x5b, //0x00001f90 cmpb $91, %cl + 0x0f, 0x85, 0x58, 0x13, 0x00, 0x00, //0x00001f93 jne LBB0_657 + 0x49, 0x8b, 0x45, 0x08, //0x00001f99 movq $8(%r13), %rax + 0x4c, 0x8b, 0x08, //0x00001f9d movq (%rax), %r9 + 0x4d, 0x85, 0xc9, //0x00001fa0 testq %r9, %r9 + 0x0f, 0x88, 0x5c, 0x11, 0x00, 0x00, //0x00001fa3 js LBB0_628 + 0x49, 0x8b, 0x03, //0x00001fa9 movq (%r11), %rax + 0x49, 0x39, 0xc2, //0x00001fac cmpq %rax, %r10 + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x00001faf jae LBB0_394 + 0x43, 0x8a, 0x0c, 0x10, //0x00001fb5 movb (%r8,%r10), %cl + 0x80, 0xf9, 0x0d, //0x00001fb9 cmpb $13, %cl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x00001fbc je LBB0_394 + 0x80, 0xf9, 0x20, //0x00001fc2 cmpb $32, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00001fc5 je LBB0_394 + 0x80, 0xc1, 0xf7, //0x00001fcb addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00001fce cmpb $1, %cl + 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00001fd1 jbe LBB0_394 + 0x4c, 0x89, 0xd1, //0x00001fd7 movq %r10, %rcx + 0xe9, 0x7a, 0x01, 0x00, 0x00, //0x00001fda jmp LBB0_421 + 0x90, //0x00001fdf .p2align 4, 0x90 + //0x00001fe0 LBB0_394 + 0x49, 0x8d, 0x4a, 0x01, //0x00001fe0 leaq $1(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00001fe4 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001fe7 jae LBB0_398 + 0x41, 0x8a, 0x14, 0x08, //0x00001fed movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00001ff1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00001ff4 je LBB0_398 + 0x80, 0xfa, 0x20, //0x00001ffa cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00001ffd je LBB0_398 + 0x80, 0xc2, 0xf7, //0x00002003 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002006 cmpb $1, %dl + 0x0f, 0x87, 0x4a, 0x01, 0x00, 0x00, //0x00002009 ja LBB0_421 + 0x90, //0x0000200f .p2align 4, 0x90 + //0x00002010 LBB0_398 + 0x49, 0x8d, 0x4a, 0x02, //0x00002010 leaq $2(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00002014 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002017 jae LBB0_402 + 0x41, 0x8a, 0x14, 0x08, //0x0000201d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00002021 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002024 je LBB0_402 + 0x80, 0xfa, 0x20, //0x0000202a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000202d je LBB0_402 + 0x80, 0xc2, 0xf7, //0x00002033 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002036 cmpb $1, %dl + 0x0f, 0x87, 0x1a, 0x01, 0x00, 0x00, //0x00002039 ja LBB0_421 + 0x90, //0x0000203f .p2align 4, 0x90 + //0x00002040 LBB0_402 + 0x49, 0x8d, 0x4a, 0x03, //0x00002040 leaq $3(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00002044 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002047 jae LBB0_406 + 0x41, 0x8a, 0x14, 0x08, //0x0000204d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00002051 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002054 je LBB0_406 + 0x80, 0xfa, 0x20, //0x0000205a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000205d je LBB0_406 + 0x80, 0xc2, 0xf7, //0x00002063 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002066 cmpb $1, %dl + 0x0f, 0x87, 0xea, 0x00, 0x00, 0x00, //0x00002069 ja LBB0_421 + 0x90, //0x0000206f .p2align 4, 0x90 + //0x00002070 LBB0_406 + 0x49, 0x8d, 0x4a, 0x04, //0x00002070 leaq $4(%r10), %rcx + 0x48, 0x89, 0xc2, //0x00002074 movq %rax, %rdx + 0x48, 0x29, 0xca, //0x00002077 subq %rcx, %rdx + 0x0f, 0x86, 0xb6, 0x00, 0x00, 0x00, //0x0000207a jbe LBB0_419 + 0x4c, 0x01, 0xc1, //0x00002080 addq %r8, %rcx + 0x48, 0x83, 0xfa, 0x20, //0x00002083 cmpq $32, %rdx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x00002087 jb LBB0_412 + 0x48, 0x89, 0xc6, //0x0000208d movq %rax, %rsi + 0x4c, 0x29, 0xd6, //0x00002090 subq %r10, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x00002093 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x00002097 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x0000209a andq $-32, %rdi + 0x4c, 0x01, 0xd7, //0x0000209e addq %r10, %rdi + 0x49, 0x8d, 0x7c, 0x38, 0x24, //0x000020a1 leaq $36(%r8,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x000020a6 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000020a9 .p2align 4, 0x90 + //0x000020b0 LBB0_409 + 0xc5, 0xfe, 0x6f, 0x31, //0x000020b0 vmovdqu (%rcx), %ymm6 + 0xc4, 0xe2, 0x7d, 0x00, 0xfe, //0x000020b4 vpshufb %ymm6, %ymm0, %ymm7 + 0xc5, 0xcd, 0x74, 0xf7, //0x000020b9 vpcmpeqb %ymm7, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x000020bd vpmovmskb %ymm6, %ebx + 0x83, 0xfb, 0xff, //0x000020c1 cmpl $-1, %ebx + 0x0f, 0x85, 0x77, 0x00, 0x00, 0x00, //0x000020c4 jne LBB0_420 + 0x48, 0x83, 0xc1, 0x20, //0x000020ca addq $32, %rcx + 0x48, 0x83, 0xc2, 0xe0, //0x000020ce addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x000020d2 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x000020d6 ja LBB0_409 + 0x48, 0x89, 0xf2, //0x000020dc movq %rsi, %rdx + 0x48, 0x89, 0xf9, //0x000020df movq %rdi, %rcx + //0x000020e2 LBB0_412 + 0x48, 0x85, 0xd2, //0x000020e2 testq %rdx, %rdx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000020e5 je LBB0_418 + 0x48, 0x8d, 0x34, 0x11, //0x000020eb leaq (%rcx,%rdx), %rsi + 0x48, 0xff, 0xc1, //0x000020ef incq %rcx + //0x000020f2 LBB0_414 + 0x0f, 0xbe, 0x79, 0xff, //0x000020f2 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x000020f6 cmpl $32, %edi + 0x0f, 0x87, 0xbd, 0x0d, 0x00, 0x00, //0x000020f9 ja LBB0_594 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000020ff movabsq $4294977024, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x00002109 btq %rdi, %rbx + 0x0f, 0x83, 0xa9, 0x0d, 0x00, 0x00, //0x0000210d jae LBB0_594 + 0x48, 0xff, 0xca, //0x00002113 decq %rdx + 0x48, 0xff, 0xc1, //0x00002116 incq %rcx + 0x48, 0x85, 0xd2, //0x00002119 testq %rdx, %rdx + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x0000211c jne LBB0_414 + 0x48, 0x89, 0xf1, //0x00002122 movq %rsi, %rcx + //0x00002125 LBB0_418 + 0x4c, 0x29, 0xc1, //0x00002125 subq %r8, %rcx + 0x48, 0x39, 0xc1, //0x00002128 cmpq %rax, %rcx + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x0000212b jb LBB0_421 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00002131 jmp LBB0_422 + //0x00002136 LBB0_419 + 0x49, 0x89, 0x0e, //0x00002136 movq %rcx, (%r14) + 0x49, 0x89, 0xca, //0x00002139 movq %rcx, %r10 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000213c jmp LBB0_422 + //0x00002141 LBB0_420 + 0x4c, 0x29, 0xc1, //0x00002141 subq %r8, %rcx + 0xf7, 0xd3, //0x00002144 notl %ebx + 0x48, 0x63, 0xd3, //0x00002146 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00002149 bsfq %rdx, %rdx + 0x48, 0x01, 0xd1, //0x0000214d addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x00002150 cmpq %rax, %rcx + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x00002153 jae LBB0_422 + //0x00002159 LBB0_421 + 0x4c, 0x8d, 0x51, 0x01, //0x00002159 leaq $1(%rcx), %r10 + 0x4d, 0x89, 0x16, //0x0000215d movq %r10, (%r14) + 0x41, 0x80, 0x3c, 0x08, 0x5d, //0x00002160 cmpb $93, (%r8,%rcx) + 0x0f, 0x84, 0xb7, 0x0f, 0x00, 0x00, //0x00002165 je LBB0_631 + //0x0000216b LBB0_422 + 0x49, 0xff, 0xca, //0x0000216b decq %r10 + 0x4d, 0x89, 0x16, //0x0000216e movq %r10, (%r14) + 0x4d, 0x85, 0xc9, //0x00002171 testq %r9, %r9 + 0x0f, 0x8e, 0x06, 0x0d, 0x00, 0x00, //0x00002174 jle LBB0_524 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000217a .p2align 4, 0x90 + //0x00002180 LBB0_423 + 0x49, 0x8b, 0x0b, //0x00002180 movq (%r11), %rcx + 0x49, 0x39, 0xca, //0x00002183 cmpq %rcx, %r10 + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00002186 jae LBB0_428 + 0x43, 0x8a, 0x04, 0x10, //0x0000218c movb (%r8,%r10), %al + 0x3c, 0x0d, //0x00002190 cmpb $13, %al + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002192 je LBB0_428 + 0x3c, 0x20, //0x00002198 cmpb $32, %al + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000219a je LBB0_428 + 0x04, 0xf7, //0x000021a0 addb $-9, %al + 0x3c, 0x01, //0x000021a2 cmpb $1, %al + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000021a4 jbe LBB0_428 + 0x4c, 0x89, 0xd0, //0x000021aa movq %r10, %rax + 0xe9, 0x86, 0x01, 0x00, 0x00, //0x000021ad jmp LBB0_454 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000021b2 .p2align 4, 0x90 + //0x000021c0 LBB0_428 + 0x49, 0x8d, 0x42, 0x01, //0x000021c0 leaq $1(%r10), %rax + 0x48, 0x39, 0xc8, //0x000021c4 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000021c7 jae LBB0_432 + 0x41, 0x8a, 0x14, 0x00, //0x000021cd movb (%r8,%rax), %dl + 0x80, 0xfa, 0x0d, //0x000021d1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000021d4 je LBB0_432 + 0x80, 0xfa, 0x20, //0x000021da cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000021dd je LBB0_432 + 0x80, 0xc2, 0xf7, //0x000021e3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000021e6 cmpb $1, %dl + 0x0f, 0x87, 0x49, 0x01, 0x00, 0x00, //0x000021e9 ja LBB0_454 + 0x90, //0x000021ef .p2align 4, 0x90 + //0x000021f0 LBB0_432 + 0x49, 0x8d, 0x42, 0x02, //0x000021f0 leaq $2(%r10), %rax + 0x48, 0x39, 0xc8, //0x000021f4 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000021f7 jae LBB0_436 + 0x41, 0x8a, 0x14, 0x00, //0x000021fd movb (%r8,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00002201 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002204 je LBB0_436 + 0x80, 0xfa, 0x20, //0x0000220a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000220d je LBB0_436 + 0x80, 0xc2, 0xf7, //0x00002213 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002216 cmpb $1, %dl + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00002219 ja LBB0_454 + 0x90, //0x0000221f .p2align 4, 0x90 + //0x00002220 LBB0_436 + 0x49, 0x8d, 0x42, 0x03, //0x00002220 leaq $3(%r10), %rax + 0x48, 0x39, 0xc8, //0x00002224 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002227 jae LBB0_440 + 0x41, 0x8a, 0x14, 0x00, //0x0000222d movb (%r8,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00002231 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002234 je LBB0_440 + 0x80, 0xfa, 0x20, //0x0000223a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000223d je LBB0_440 + 0x80, 0xc2, 0xf7, //0x00002243 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002246 cmpb $1, %dl + 0x0f, 0x87, 0xe9, 0x00, 0x00, 0x00, //0x00002249 ja LBB0_454 + 0x90, //0x0000224f .p2align 4, 0x90 + //0x00002250 LBB0_440 + 0x49, 0x8d, 0x42, 0x04, //0x00002250 leaq $4(%r10), %rax + 0x48, 0x89, 0xca, //0x00002254 movq %rcx, %rdx + 0x48, 0x29, 0xc2, //0x00002257 subq %rax, %rdx + 0x0f, 0x86, 0x70, 0x03, 0x00, 0x00, //0x0000225a jbe LBB0_490 + 0x4c, 0x01, 0xc0, //0x00002260 addq %r8, %rax + 0x48, 0x83, 0xfa, 0x20, //0x00002263 cmpq $32, %rdx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x00002267 jb LBB0_446 + 0x48, 0x89, 0xce, //0x0000226d movq %rcx, %rsi + 0x4c, 0x29, 0xd6, //0x00002270 subq %r10, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x00002273 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x00002277 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x0000227a andq $-32, %rdi + 0x4c, 0x01, 0xd7, //0x0000227e addq %r10, %rdi + 0x49, 0x8d, 0x7c, 0x38, 0x24, //0x00002281 leaq $36(%r8,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x00002286 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002289 .p2align 4, 0x90 + //0x00002290 LBB0_443 + 0xc5, 0xfe, 0x6f, 0x30, //0x00002290 vmovdqu (%rax), %ymm6 + 0xc4, 0xe2, 0x7d, 0x00, 0xfe, //0x00002294 vpshufb %ymm6, %ymm0, %ymm7 + 0xc5, 0xcd, 0x74, 0xf7, //0x00002299 vpcmpeqb %ymm7, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x0000229d vpmovmskb %ymm6, %ebx + 0x83, 0xfb, 0xff, //0x000022a1 cmpl $-1, %ebx + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x000022a4 jne LBB0_453 + 0x48, 0x83, 0xc0, 0x20, //0x000022aa addq $32, %rax + 0x48, 0x83, 0xc2, 0xe0, //0x000022ae addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x000022b2 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x000022b6 ja LBB0_443 + 0x48, 0x89, 0xf2, //0x000022bc movq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x000022bf movq %rdi, %rax + //0x000022c2 LBB0_446 + 0x48, 0x85, 0xd2, //0x000022c2 testq %rdx, %rdx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000022c5 je LBB0_452 + 0x48, 0x8d, 0x34, 0x10, //0x000022cb leaq (%rax,%rdx), %rsi + 0x48, 0xff, 0xc0, //0x000022cf incq %rax + //0x000022d2 LBB0_448 + 0x0f, 0xbe, 0x78, 0xff, //0x000022d2 movsbl $-1(%rax), %edi + 0x83, 0xff, 0x20, //0x000022d6 cmpl $32, %edi + 0x0f, 0x87, 0x7e, 0x0a, 0x00, 0x00, //0x000022d9 ja LBB0_584 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000022df movabsq $4294977024, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x000022e9 btq %rdi, %rbx + 0x0f, 0x83, 0x6a, 0x0a, 0x00, 0x00, //0x000022ed jae LBB0_584 + 0x48, 0xff, 0xca, //0x000022f3 decq %rdx + 0x48, 0xff, 0xc0, //0x000022f6 incq %rax + 0x48, 0x85, 0xd2, //0x000022f9 testq %rdx, %rdx + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x000022fc jne LBB0_448 + 0x48, 0x89, 0xf0, //0x00002302 movq %rsi, %rax + //0x00002305 LBB0_452 + 0x4c, 0x29, 0xc0, //0x00002305 subq %r8, %rax + 0x48, 0x39, 0xc8, //0x00002308 cmpq %rcx, %rax + 0x0f, 0x82, 0x27, 0x00, 0x00, 0x00, //0x0000230b jb LBB0_454 + 0xe9, 0xc0, 0x02, 0x00, 0x00, //0x00002311 jmp LBB0_491 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002316 .p2align 4, 0x90 + //0x00002320 LBB0_453 + 0x4c, 0x29, 0xc0, //0x00002320 subq %r8, %rax + 0xf7, 0xd3, //0x00002323 notl %ebx + 0x48, 0x63, 0xd3, //0x00002325 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00002328 bsfq %rdx, %rdx + 0x48, 0x01, 0xd0, //0x0000232c addq %rdx, %rax + 0x48, 0x39, 0xc8, //0x0000232f cmpq %rcx, %rax + 0x0f, 0x83, 0x9e, 0x02, 0x00, 0x00, //0x00002332 jae LBB0_491 + //0x00002338 LBB0_454 + 0x4c, 0x8d, 0x50, 0x01, //0x00002338 leaq $1(%rax), %r10 + 0x4d, 0x89, 0x16, //0x0000233c movq %r10, (%r14) + 0x41, 0x0f, 0xbe, 0x0c, 0x00, //0x0000233f movsbl (%r8,%rax), %ecx + 0x83, 0xf9, 0x7b, //0x00002344 cmpl $123, %ecx + 0x0f, 0x87, 0x83, 0x02, 0x00, 0x00, //0x00002347 ja LBB0_490 + 0x48, 0x8d, 0x15, 0x14, 0x34, 0x00, 0x00, //0x0000234d leaq $13332(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x00002354 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00002358 addq %rdx, %rcx + 0xff, 0xe1, //0x0000235b jmpq *%rcx + //0x0000235d LBB0_456 + 0x49, 0x8b, 0x13, //0x0000235d movq (%r11), %rdx + 0x48, 0x89, 0xd1, //0x00002360 movq %rdx, %rcx + 0x4c, 0x29, 0xd1, //0x00002363 subq %r10, %rcx + 0x4d, 0x01, 0xc2, //0x00002366 addq %r8, %r10 + 0x48, 0x83, 0xf9, 0x20, //0x00002369 cmpq $32, %rcx + 0x0f, 0x82, 0x56, 0x00, 0x00, 0x00, //0x0000236d jb LBB0_461 + 0x48, 0x29, 0xc2, //0x00002373 subq %rax, %rdx + 0x48, 0x83, 0xc2, 0xdf, //0x00002376 addq $-33, %rdx + 0x48, 0x89, 0xd6, //0x0000237a movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x0000237d andq $-32, %rsi + 0x48, 0x01, 0xc6, //0x00002381 addq %rax, %rsi + 0x49, 0x8d, 0x44, 0x30, 0x21, //0x00002384 leaq $33(%r8,%rsi), %rax + 0x83, 0xe2, 0x1f, //0x00002389 andl $31, %edx + 0x90, 0x90, 0x90, 0x90, //0x0000238c .p2align 4, 0x90 + //0x00002390 LBB0_458 + 0xc4, 0xc1, 0x7e, 0x6f, 0x32, //0x00002390 vmovdqu (%r10), %ymm6 + 0xc5, 0xcd, 0x74, 0xfb, //0x00002395 vpcmpeqb %ymm3, %ymm6, %ymm7 + 0xc5, 0xcd, 0xeb, 0xf4, //0x00002399 vpor %ymm4, %ymm6, %ymm6 + 0xc5, 0xcd, 0x74, 0xf5, //0x0000239d vpcmpeqb %ymm5, %ymm6, %ymm6 + 0xc5, 0xcd, 0xeb, 0xf7, //0x000023a1 vpor %ymm7, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xf6, //0x000023a5 vpmovmskb %ymm6, %esi + 0x85, 0xf6, //0x000023a9 testl %esi, %esi + 0x0f, 0x85, 0xdf, 0x00, 0x00, 0x00, //0x000023ab jne LBB0_474 + 0x49, 0x83, 0xc2, 0x20, //0x000023b1 addq $32, %r10 + 0x48, 0x83, 0xc1, 0xe0, //0x000023b5 addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x1f, //0x000023b9 cmpq $31, %rcx + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000023bd ja LBB0_458 + 0x48, 0x89, 0xd1, //0x000023c3 movq %rdx, %rcx + 0x49, 0x89, 0xc2, //0x000023c6 movq %rax, %r10 + //0x000023c9 LBB0_461 + 0x48, 0x83, 0xf9, 0x10, //0x000023c9 cmpq $16, %rcx + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x000023cd jb LBB0_466 + 0x48, 0x8d, 0x41, 0xf0, //0x000023d3 leaq $-16(%rcx), %rax + 0x48, 0x89, 0xc2, //0x000023d7 movq %rax, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x000023da andq $-16, %rdx + 0x4a, 0x8d, 0x54, 0x12, 0x10, //0x000023de leaq $16(%rdx,%r10), %rdx + 0x83, 0xe0, 0x0f, //0x000023e3 andl $15, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000023e6 .p2align 4, 0x90 + //0x000023f0 LBB0_463 + 0xc4, 0xc1, 0x7a, 0x6f, 0x32, //0x000023f0 vmovdqu (%r10), %xmm6 + 0xc5, 0xc9, 0x74, 0x3d, 0xe3, 0xdd, 0xff, 0xff, //0x000023f5 vpcmpeqb $-8733(%rip), %xmm6, %xmm7 /* LCPI0_4+0(%rip) */ + 0xc5, 0xc9, 0xeb, 0x35, 0xeb, 0xdd, 0xff, 0xff, //0x000023fd vpor $-8725(%rip), %xmm6, %xmm6 /* LCPI0_5+0(%rip) */ + 0xc5, 0xb9, 0x74, 0xf6, //0x00002405 vpcmpeqb %xmm6, %xmm8, %xmm6 + 0xc5, 0xc9, 0xeb, 0xf7, //0x00002409 vpor %xmm7, %xmm6, %xmm6 + 0xc5, 0xf9, 0xd7, 0xf6, //0x0000240d vpmovmskb %xmm6, %esi + 0x66, 0x85, 0xf6, //0x00002411 testw %si, %si + 0x0f, 0x85, 0x24, 0x09, 0x00, 0x00, //0x00002414 jne LBB0_582 + 0x49, 0x83, 0xc2, 0x10, //0x0000241a addq $16, %r10 + 0x48, 0x83, 0xc1, 0xf0, //0x0000241e addq $-16, %rcx + 0x48, 0x83, 0xf9, 0x0f, //0x00002422 cmpq $15, %rcx + 0x0f, 0x87, 0xc4, 0xff, 0xff, 0xff, //0x00002426 ja LBB0_463 + 0x48, 0x89, 0xc1, //0x0000242c movq %rax, %rcx + 0x49, 0x89, 0xd2, //0x0000242f movq %rdx, %r10 + //0x00002432 LBB0_466 + 0x48, 0x85, 0xc9, //0x00002432 testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00002435 je LBB0_473 + 0x49, 0x8d, 0x04, 0x0a, //0x0000243b leaq (%r10,%rcx), %rax + //0x0000243f LBB0_468 + 0x41, 0x0f, 0xb6, 0x12, //0x0000243f movzbl (%r10), %edx + 0x80, 0xfa, 0x2c, //0x00002443 cmpb $44, %dl + 0x0f, 0x84, 0xad, 0x09, 0x00, 0x00, //0x00002446 je LBB0_586 + 0x80, 0xfa, 0x7d, //0x0000244c cmpb $125, %dl + 0x0f, 0x84, 0xa4, 0x09, 0x00, 0x00, //0x0000244f je LBB0_586 + 0x80, 0xfa, 0x5d, //0x00002455 cmpb $93, %dl + 0x0f, 0x84, 0x9b, 0x09, 0x00, 0x00, //0x00002458 je LBB0_586 + 0x49, 0xff, 0xc2, //0x0000245e incq %r10 + 0x48, 0xff, 0xc9, //0x00002461 decq %rcx + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00002464 jne LBB0_468 + 0x49, 0x89, 0xc2, //0x0000246a movq %rax, %r10 + //0x0000246d LBB0_473 + 0x4d, 0x29, 0xc2, //0x0000246d subq %r8, %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00002470 movq $8(%rsp), %r14 + 0x4d, 0x89, 0x16, //0x00002475 movq %r10, (%r14) + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00002478 movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x0000247d movq $24(%rsp), %r11 + 0xe9, 0x4f, 0x01, 0x00, 0x00, //0x00002482 jmp LBB0_491 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002487 .p2align 4, 0x90 + //0x00002490 LBB0_474 + 0x48, 0x63, 0xc6, //0x00002490 movslq %esi, %rax + //0x00002493 LBB0_475 + 0x48, 0x0f, 0xbc, 0xc0, //0x00002493 bsfq %rax, %rax + 0x4d, 0x29, 0xc2, //0x00002497 subq %r8, %r10 + 0x49, 0x01, 0xc2, //0x0000249a addq %rax, %r10 + 0x4d, 0x89, 0x16, //0x0000249d movq %r10, (%r14) + 0xe9, 0x31, 0x01, 0x00, 0x00, //0x000024a0 jmp LBB0_491 + //0x000024a5 LBB0_476 + 0x48, 0x83, 0xc0, 0x04, //0x000024a5 addq $4, %rax + 0x49, 0x3b, 0x03, //0x000024a9 cmpq (%r11), %rax + 0x0f, 0x86, 0x1e, 0x01, 0x00, 0x00, //0x000024ac jbe LBB0_490 + 0xe9, 0x1f, 0x01, 0x00, 0x00, //0x000024b2 jmp LBB0_491 + //0x000024b7 LBB0_477 + 0x4c, 0x89, 0x4c, 0x24, 0x20, //0x000024b7 movq %r9, $32(%rsp) + 0x4c, 0x89, 0x04, 0x24, //0x000024bc movq %r8, (%rsp) + 0x4d, 0x8b, 0x03, //0x000024c0 movq (%r11), %r8 + 0x4c, 0x89, 0xc1, //0x000024c3 movq %r8, %rcx + 0x4c, 0x29, 0xd1, //0x000024c6 subq %r10, %rcx + 0x48, 0x83, 0xf9, 0x20, //0x000024c9 cmpq $32, %rcx + 0x0f, 0x8c, 0x31, 0x09, 0x00, 0x00, //0x000024cd jl LBB0_587 + 0x48, 0x8b, 0x0c, 0x24, //0x000024d3 movq (%rsp), %rcx + 0x4c, 0x8d, 0x0c, 0x01, //0x000024d7 leaq (%rcx,%rax), %r9 + 0x49, 0x29, 0xc0, //0x000024db subq %rax, %r8 + 0xb8, 0x1f, 0x00, 0x00, 0x00, //0x000024de movl $31, %eax + 0x31, 0xc9, //0x000024e3 xorl %ecx, %ecx + 0x31, 0xdb, //0x000024e5 xorl %ebx, %ebx + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x000024e7 jmp LBB0_479 + 0x90, 0x90, 0x90, 0x90, //0x000024ec .p2align 4, 0x90 + //0x000024f0 LBB0_483 + 0x89, 0xdf, //0x000024f0 movl %ebx, %edi + 0x4d, 0x89, 0xf4, //0x000024f2 movq %r14, %r12 + 0x4d, 0x89, 0xfe, //0x000024f5 movq %r15, %r14 + 0x4d, 0x89, 0xef, //0x000024f8 movq %r13, %r15 + 0x41, 0xbd, 0xff, 0xff, 0xff, 0xff, //0x000024fb movl $4294967295, %r13d + 0x44, 0x31, 0xef, //0x00002501 xorl %r13d, %edi + 0x21, 0xd7, //0x00002504 andl %edx, %edi + 0x8d, 0x14, 0x3f, //0x00002506 leal (%rdi,%rdi), %edx + 0x09, 0xda, //0x00002509 orl %ebx, %edx + 0x41, 0x8d, 0xb5, 0xab, 0xaa, 0xaa, 0xaa, //0x0000250b leal $-1431655765(%r13), %esi + 0x31, 0xd6, //0x00002512 xorl %edx, %esi + 0x21, 0xfe, //0x00002514 andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002516 andl $-1431655766, %esi + 0x31, 0xdb, //0x0000251c xorl %ebx, %ebx + 0x01, 0xfe, //0x0000251e addl %edi, %esi + 0x0f, 0x92, 0xc3, //0x00002520 setb %bl + 0x01, 0xf6, //0x00002523 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x00002525 xorl $1431655765, %esi + 0x21, 0xd6, //0x0000252b andl %edx, %esi + 0x44, 0x31, 0xee, //0x0000252d xorl %r13d, %esi + 0x4d, 0x89, 0xfd, //0x00002530 movq %r15, %r13 + 0x4d, 0x89, 0xf7, //0x00002533 movq %r14, %r15 + 0x4d, 0x89, 0xe6, //0x00002536 movq %r12, %r14 + 0x41, 0x21, 0xf3, //0x00002539 andl %esi, %r11d + 0x45, 0x85, 0xdb, //0x0000253c testl %r11d, %r11d + 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x0000253f jne LBB0_482 + //0x00002545 LBB0_484 + 0x48, 0x83, 0xc1, 0x20, //0x00002545 addq $32, %rcx + 0x49, 0x8d, 0x54, 0x00, 0xe0, //0x00002549 leaq $-32(%r8,%rax), %rdx + 0x48, 0x83, 0xc0, 0xe0, //0x0000254e addq $-32, %rax + 0x48, 0x83, 0xfa, 0x3f, //0x00002552 cmpq $63, %rdx + 0x0f, 0x8e, 0x18, 0x08, 0x00, 0x00, //0x00002556 jle LBB0_485 + //0x0000255c LBB0_479 + 0xc4, 0xc1, 0x7e, 0x6f, 0x74, 0x09, 0x01, //0x0000255c vmovdqu $1(%r9,%rcx), %ymm6 + 0xc5, 0xcd, 0x74, 0xf9, //0x00002563 vpcmpeqb %ymm1, %ymm6, %ymm7 + 0xc5, 0x7d, 0xd7, 0xdf, //0x00002567 vpmovmskb %ymm7, %r11d + 0xc5, 0xcd, 0x74, 0xf2, //0x0000256b vpcmpeqb %ymm2, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xd6, //0x0000256f vpmovmskb %ymm6, %edx + 0x48, 0x85, 0xdb, //0x00002573 testq %rbx, %rbx + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00002576 jne LBB0_483 + 0x85, 0xd2, //0x0000257c testl %edx, %edx + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x0000257e jne LBB0_483 + 0x31, 0xdb, //0x00002584 xorl %ebx, %ebx + 0x45, 0x85, 0xdb, //0x00002586 testl %r11d, %r11d + 0x0f, 0x84, 0xb6, 0xff, 0xff, 0xff, //0x00002589 je LBB0_484 + //0x0000258f LBB0_482 + 0x49, 0x0f, 0xbc, 0xc3, //0x0000258f bsfq %r11, %rax + 0x49, 0x01, 0xc1, //0x00002593 addq %rax, %r9 + 0x49, 0x01, 0xc9, //0x00002596 addq %rcx, %r9 + 0x4c, 0x2b, 0x0c, 0x24, //0x00002599 subq (%rsp), %r9 + 0x49, 0x83, 0xc1, 0x02, //0x0000259d addq $2, %r9 + 0x4d, 0x89, 0x0e, //0x000025a1 movq %r9, (%r14) + 0x4d, 0x89, 0xca, //0x000025a4 movq %r9, %r10 + //0x000025a7 LBB0_592 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x000025a7 movq $24(%rsp), %r11 + 0x4c, 0x8b, 0x4c, 0x24, 0x20, //0x000025ac movq $32(%rsp), %r9 + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x000025b1 jmp LBB0_491 + //0x000025b6 LBB0_489 + 0x48, 0x83, 0xc0, 0x05, //0x000025b6 addq $5, %rax + 0x49, 0x3b, 0x03, //0x000025ba cmpq (%r11), %rax + 0x0f, 0x87, 0x13, 0x00, 0x00, 0x00, //0x000025bd ja LBB0_491 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000025c3 .p2align 4, 0x90 + //0x000025d0 LBB0_490 + 0x49, 0x89, 0x06, //0x000025d0 movq %rax, (%r14) + 0x49, 0x89, 0xc2, //0x000025d3 movq %rax, %r10 + //0x000025d6 LBB0_491 + 0x4d, 0x8b, 0x07, //0x000025d6 movq (%r15), %r8 + 0x49, 0x8b, 0x47, 0x08, //0x000025d9 movq $8(%r15), %rax + 0x49, 0x39, 0xc2, //0x000025dd cmpq %rax, %r10 + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000025e0 jae LBB0_496 + 0x43, 0x8a, 0x0c, 0x10, //0x000025e6 movb (%r8,%r10), %cl + 0x80, 0xf9, 0x0d, //0x000025ea cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000025ed je LBB0_496 + 0x80, 0xf9, 0x20, //0x000025f3 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000025f6 je LBB0_496 + 0x80, 0xc1, 0xf7, //0x000025fc addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000025ff cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00002602 jbe LBB0_496 + 0x4c, 0x89, 0xd1, //0x00002608 movq %r10, %rcx + 0xe9, 0x88, 0x01, 0x00, 0x00, //0x0000260b jmp LBB0_522 + //0x00002610 .p2align 4, 0x90 + //0x00002610 LBB0_496 + 0x49, 0x8d, 0x4a, 0x01, //0x00002610 leaq $1(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00002614 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002617 jae LBB0_500 + 0x41, 0x8a, 0x14, 0x08, //0x0000261d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00002621 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002624 je LBB0_500 + 0x80, 0xfa, 0x20, //0x0000262a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000262d je LBB0_500 + 0x80, 0xc2, 0xf7, //0x00002633 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002636 cmpb $1, %dl + 0x0f, 0x87, 0x59, 0x01, 0x00, 0x00, //0x00002639 ja LBB0_522 + 0x90, //0x0000263f .p2align 4, 0x90 + //0x00002640 LBB0_500 + 0x49, 0x8d, 0x4a, 0x02, //0x00002640 leaq $2(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00002644 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002647 jae LBB0_504 + 0x41, 0x8a, 0x14, 0x08, //0x0000264d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00002651 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002654 je LBB0_504 + 0x80, 0xfa, 0x20, //0x0000265a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000265d je LBB0_504 + 0x80, 0xc2, 0xf7, //0x00002663 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002666 cmpb $1, %dl + 0x0f, 0x87, 0x29, 0x01, 0x00, 0x00, //0x00002669 ja LBB0_522 + 0x90, //0x0000266f .p2align 4, 0x90 + //0x00002670 LBB0_504 + 0x49, 0x8d, 0x4a, 0x03, //0x00002670 leaq $3(%r10), %rcx + 0x48, 0x39, 0xc1, //0x00002674 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002677 jae LBB0_508 + 0x41, 0x8a, 0x14, 0x08, //0x0000267d movb (%r8,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00002681 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00002684 je LBB0_508 + 0x80, 0xfa, 0x20, //0x0000268a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000268d je LBB0_508 + 0x80, 0xc2, 0xf7, //0x00002693 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002696 cmpb $1, %dl + 0x0f, 0x87, 0xf9, 0x00, 0x00, 0x00, //0x00002699 ja LBB0_522 + 0x90, //0x0000269f .p2align 4, 0x90 + //0x000026a0 LBB0_508 + 0x49, 0x8d, 0x4a, 0x04, //0x000026a0 leaq $4(%r10), %rcx + 0x48, 0x89, 0xc2, //0x000026a4 movq %rax, %rdx + 0x48, 0x29, 0xca, //0x000026a7 subq %rcx, %rdx + 0x0f, 0x86, 0x3d, 0x0a, 0x00, 0x00, //0x000026aa jbe LBB0_625 + 0x4c, 0x01, 0xc1, //0x000026b0 addq %r8, %rcx + 0x48, 0x83, 0xfa, 0x20, //0x000026b3 cmpq $32, %rdx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x000026b7 jb LBB0_514 + 0x48, 0x89, 0xc6, //0x000026bd movq %rax, %rsi + 0x4c, 0x29, 0xd6, //0x000026c0 subq %r10, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x000026c3 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x000026c7 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x000026ca andq $-32, %rdi + 0x4c, 0x01, 0xd7, //0x000026ce addq %r10, %rdi + 0x49, 0x8d, 0x7c, 0x38, 0x24, //0x000026d1 leaq $36(%r8,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x000026d6 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026d9 .p2align 4, 0x90 + //0x000026e0 LBB0_511 + 0xc5, 0xfe, 0x6f, 0x31, //0x000026e0 vmovdqu (%rcx), %ymm6 + 0xc4, 0xe2, 0x7d, 0x00, 0xfe, //0x000026e4 vpshufb %ymm6, %ymm0, %ymm7 + 0xc5, 0xcd, 0x74, 0xf7, //0x000026e9 vpcmpeqb %ymm7, %ymm6, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x000026ed vpmovmskb %ymm6, %ebx + 0x83, 0xfb, 0xff, //0x000026f1 cmpl $-1, %ebx + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000026f4 jne LBB0_521 + 0x48, 0x83, 0xc1, 0x20, //0x000026fa addq $32, %rcx + 0x48, 0x83, 0xc2, 0xe0, //0x000026fe addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x00002702 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00002706 ja LBB0_511 + 0x48, 0x89, 0xf2, //0x0000270c movq %rsi, %rdx + 0x48, 0x89, 0xf9, //0x0000270f movq %rdi, %rcx + //0x00002712 LBB0_514 + 0x48, 0x85, 0xd2, //0x00002712 testq %rdx, %rdx + 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00002715 je LBB0_520 + 0x48, 0x8d, 0x34, 0x11, //0x0000271b leaq (%rcx,%rdx), %rsi + 0x48, 0xff, 0xc1, //0x0000271f incq %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002722 .p2align 4, 0x90 + //0x00002730 LBB0_516 + 0x0f, 0xbe, 0x79, 0xff, //0x00002730 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x00002734 cmpl $32, %edi + 0x0f, 0x87, 0x09, 0x06, 0x00, 0x00, //0x00002737 ja LBB0_583 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000273d movabsq $4294977024, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x00002747 btq %rdi, %rbx + 0x0f, 0x83, 0xf5, 0x05, 0x00, 0x00, //0x0000274b jae LBB0_583 + 0x48, 0xff, 0xca, //0x00002751 decq %rdx + 0x48, 0xff, 0xc1, //0x00002754 incq %rcx + 0x48, 0x85, 0xd2, //0x00002757 testq %rdx, %rdx + 0x0f, 0x85, 0xd0, 0xff, 0xff, 0xff, //0x0000275a jne LBB0_516 + 0x48, 0x89, 0xf1, //0x00002760 movq %rsi, %rcx + //0x00002763 LBB0_520 + 0x4c, 0x29, 0xc1, //0x00002763 subq %r8, %rcx + 0x48, 0x39, 0xc1, //0x00002766 cmpq %rax, %rcx + 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x00002769 jb LBB0_522 + 0xe9, 0x7d, 0x0b, 0x00, 0x00, //0x0000276f jmp LBB0_657 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002774 .p2align 4, 0x90 + //0x00002780 LBB0_521 + 0x4c, 0x29, 0xc1, //0x00002780 subq %r8, %rcx + 0xf7, 0xd3, //0x00002783 notl %ebx + 0x48, 0x63, 0xd3, //0x00002785 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00002788 bsfq %rdx, %rdx + 0x48, 0x01, 0xd1, //0x0000278c addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x0000278f cmpq %rax, %rcx + 0x0f, 0x83, 0x59, 0x0b, 0x00, 0x00, //0x00002792 jae LBB0_657 + //0x00002798 LBB0_522 + 0x4c, 0x8d, 0x51, 0x01, //0x00002798 leaq $1(%rcx), %r10 + 0x4d, 0x89, 0x16, //0x0000279c movq %r10, (%r14) + 0x41, 0x8a, 0x04, 0x08, //0x0000279f movb (%r8,%rcx), %al + 0x3c, 0x2c, //0x000027a3 cmpb $44, %al + 0x0f, 0x85, 0x4d, 0x09, 0x00, 0x00, //0x000027a5 jne LBB0_626 + 0x49, 0x83, 0xf9, 0x02, //0x000027ab cmpq $2, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x000027af leaq $-1(%r9), %r9 + 0x0f, 0x8d, 0xc7, 0xf9, 0xff, 0xff, //0x000027b3 jge LBB0_423 + 0xe9, 0xc2, 0x06, 0x00, 0x00, //0x000027b9 jmp LBB0_524 + //0x000027be LBB0_527 + 0x4c, 0x89, 0x2c, 0x24, //0x000027be movq %r13, (%rsp) + 0x4d, 0x8b, 0x1b, //0x000027c2 movq (%r11), %r11 + 0x4d, 0x29, 0xd3, //0x000027c5 subq %r10, %r11 + 0x4d, 0x01, 0xd0, //0x000027c8 addq %r10, %r8 + 0x45, 0x31, 0xed, //0x000027cb xorl %r13d, %r13d + 0x45, 0x31, 0xf6, //0x000027ce xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x000027d1 xorl %r15d, %r15d + 0x31, 0xd2, //0x000027d4 xorl %edx, %edx + 0x4d, 0x89, 0xcc, //0x000027d6 movq %r9, %r12 + 0x49, 0x83, 0xfb, 0x40, //0x000027d9 cmpq $64, %r11 + 0x0f, 0x8d, 0x24, 0x01, 0x00, 0x00, //0x000027dd jge LBB0_528 + //0x000027e3 LBB0_537 + 0x48, 0x8b, 0x04, 0x24, //0x000027e3 movq (%rsp), %rax + 0x4d, 0x85, 0xdb, //0x000027e7 testq %r11, %r11 + 0x0f, 0x8e, 0x20, 0x06, 0x00, 0x00, //0x000027ea jle LBB0_588 + 0xc5, 0xc9, 0xef, 0xf6, //0x000027f0 vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x60, //0x000027f4 vmovdqu %ymm6, $96(%rsp) + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x000027fa vmovdqu %ymm6, $64(%rsp) + 0x44, 0x89, 0xc0, //0x00002800 movl %r8d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00002803 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00002808 cmpl $4033, %eax + 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x0000280d jb LBB0_528 + 0x49, 0x83, 0xfb, 0x20, //0x00002813 cmpq $32, %r11 + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00002817 jb LBB0_541 + 0xc4, 0xc1, 0x7e, 0x6f, 0x30, //0x0000281d vmovdqu (%r8), %ymm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x00002822 vmovdqu %ymm6, $64(%rsp) + 0x49, 0x83, 0xc0, 0x20, //0x00002828 addq $32, %r8 + 0x4d, 0x8d, 0x53, 0xe0, //0x0000282c leaq $-32(%r11), %r10 + 0x4c, 0x8d, 0x4c, 0x24, 0x60, //0x00002830 leaq $96(%rsp), %r9 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00002835 jmp LBB0_542 + //0x0000283a LBB0_541 + 0x4c, 0x8d, 0x4c, 0x24, 0x40, //0x0000283a leaq $64(%rsp), %r9 + 0x4d, 0x89, 0xda, //0x0000283f movq %r11, %r10 + //0x00002842 LBB0_542 + 0x49, 0x83, 0xfa, 0x10, //0x00002842 cmpq $16, %r10 + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00002846 jb LBB0_543 + 0xc4, 0xc1, 0x7a, 0x6f, 0x30, //0x0000284c vmovdqu (%r8), %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x31, //0x00002851 vmovdqu %xmm6, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x00002856 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x0000285a addq $16, %r9 + 0x49, 0x83, 0xc2, 0xf0, //0x0000285e addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x08, //0x00002862 cmpq $8, %r10 + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002866 jae LBB0_548 + //0x0000286c LBB0_544 + 0x49, 0x83, 0xfa, 0x04, //0x0000286c cmpq $4, %r10 + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00002870 jl LBB0_545 + //0x00002876 LBB0_549 + 0x41, 0x8b, 0x00, //0x00002876 movl (%r8), %eax + 0x41, 0x89, 0x01, //0x00002879 movl %eax, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x0000287c addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x00002880 addq $4, %r9 + 0x49, 0x83, 0xc2, 0xfc, //0x00002884 addq $-4, %r10 + 0x49, 0x83, 0xfa, 0x02, //0x00002888 cmpq $2, %r10 + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x0000288c jae LBB0_550 + //0x00002892 LBB0_546 + 0x4c, 0x89, 0xc0, //0x00002892 movq %r8, %rax + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00002895 leaq $64(%rsp), %r8 + 0x4d, 0x85, 0xd2, //0x0000289a testq %r10, %r10 + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000289d jne LBB0_551 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x000028a3 jmp LBB0_528 + //0x000028a8 LBB0_543 + 0x49, 0x83, 0xfa, 0x08, //0x000028a8 cmpq $8, %r10 + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x000028ac jb LBB0_544 + //0x000028b2 LBB0_548 + 0x49, 0x8b, 0x00, //0x000028b2 movq (%r8), %rax + 0x49, 0x89, 0x01, //0x000028b5 movq %rax, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x000028b8 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x000028bc addq $8, %r9 + 0x49, 0x83, 0xc2, 0xf8, //0x000028c0 addq $-8, %r10 + 0x49, 0x83, 0xfa, 0x04, //0x000028c4 cmpq $4, %r10 + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x000028c8 jge LBB0_549 + //0x000028ce LBB0_545 + 0x49, 0x83, 0xfa, 0x02, //0x000028ce cmpq $2, %r10 + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x000028d2 jb LBB0_546 + //0x000028d8 LBB0_550 + 0x41, 0x0f, 0xb7, 0x00, //0x000028d8 movzwl (%r8), %eax + 0x66, 0x41, 0x89, 0x01, //0x000028dc movw %ax, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x000028e0 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x000028e4 addq $2, %r9 + 0x49, 0x83, 0xc2, 0xfe, //0x000028e8 addq $-2, %r10 + 0x4c, 0x89, 0xc0, //0x000028ec movq %r8, %rax + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x000028ef leaq $64(%rsp), %r8 + 0x4d, 0x85, 0xd2, //0x000028f4 testq %r10, %r10 + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000028f7 je LBB0_528 + //0x000028fd LBB0_551 + 0x8a, 0x00, //0x000028fd movb (%rax), %al + 0x41, 0x88, 0x01, //0x000028ff movb %al, (%r9) + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00002902 leaq $64(%rsp), %r8 + //0x00002907 LBB0_528 + 0x4c, 0x89, 0xc0, //0x00002907 movq %r8, %rax + 0xc4, 0x41, 0x7e, 0x6f, 0x38, //0x0000290a vmovdqu (%r8), %ymm15 + 0xc4, 0x41, 0x7e, 0x6f, 0x70, 0x20, //0x0000290f vmovdqu $32(%r8), %ymm14 + 0xc5, 0x85, 0x74, 0xf1, //0x00002915 vpcmpeqb %ymm1, %ymm15, %ymm6 + 0xc5, 0x7d, 0xd7, 0xce, //0x00002919 vpmovmskb %ymm6, %r9d + 0xc5, 0x8d, 0x74, 0xf1, //0x0000291d vpcmpeqb %ymm1, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00002921 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00002925 shlq $32, %rax + 0x49, 0x09, 0xc1, //0x00002929 orq %rax, %r9 + 0xc5, 0x85, 0x74, 0xf2, //0x0000292c vpcmpeqb %ymm2, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xfe, //0x00002930 vpmovmskb %ymm6, %edi + 0xc5, 0x8d, 0x74, 0xf2, //0x00002934 vpcmpeqb %ymm2, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00002938 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x0000293c shlq $32, %rax + 0x48, 0x09, 0xc7, //0x00002940 orq %rax, %rdi + 0x48, 0x89, 0xf8, //0x00002943 movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x00002946 orq %r14, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00002949 je LBB0_530 + 0x4c, 0x89, 0xf0, //0x0000294f movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00002952 notq %rax + 0x48, 0x21, 0xf8, //0x00002955 andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00002958 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf1, //0x0000295c orq %r14, %rcx + 0x48, 0x89, 0xcb, //0x0000295f movq %rcx, %rbx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002962 movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf3, //0x0000296c xorq %rsi, %rbx + 0x48, 0x21, 0xf7, //0x0000296f andq %rsi, %rdi + 0x48, 0x21, 0xdf, //0x00002972 andq %rbx, %rdi + 0x45, 0x31, 0xf6, //0x00002975 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00002978 addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000297b setb %r14b + 0x48, 0x01, 0xff, //0x0000297f addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002982 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000298c xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x0000298f andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x00002992 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002995 jmp LBB0_531 + //0x0000299a LBB0_530 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000299a movq $-1, %rdi + 0x45, 0x31, 0xf6, //0x000029a1 xorl %r14d, %r14d + //0x000029a4 LBB0_531 + 0x4c, 0x21, 0xcf, //0x000029a4 andq %r9, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xf7, //0x000029a7 vmovq %rdi, %xmm6 + 0xc4, 0xc3, 0x49, 0x44, 0xf1, 0x00, //0x000029ac vpclmulqdq $0, %xmm9, %xmm6, %xmm6 + 0xc4, 0xe1, 0xf9, 0x7e, 0xf7, //0x000029b2 vmovq %xmm6, %rdi + 0x4c, 0x31, 0xef, //0x000029b7 xorq %r13, %rdi + 0xc4, 0xc1, 0x05, 0x74, 0xf2, //0x000029ba vpcmpeqb %ymm10, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xf6, //0x000029bf vpmovmskb %ymm6, %esi + 0xc4, 0xc1, 0x0d, 0x74, 0xf2, //0x000029c3 vpcmpeqb %ymm10, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x000029c8 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x000029cc shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000029d0 orq %rax, %rsi + 0x48, 0x89, 0xf9, //0x000029d3 movq %rdi, %rcx + 0x48, 0xf7, 0xd1, //0x000029d6 notq %rcx + 0x48, 0x21, 0xce, //0x000029d9 andq %rcx, %rsi + 0xc4, 0xc1, 0x05, 0x74, 0xf3, //0x000029dc vpcmpeqb %ymm11, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x000029e1 vpmovmskb %ymm6, %eax + 0xc4, 0xc1, 0x0d, 0x74, 0xf3, //0x000029e5 vpcmpeqb %ymm11, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x000029ea vpmovmskb %ymm6, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x000029ee shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x000029f2 orq %rbx, %rax + 0x48, 0x21, 0xc8, //0x000029f5 andq %rcx, %rax + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x000029f8 je LBB0_535 + 0x4c, 0x8b, 0x2c, 0x24, //0x000029fe movq (%rsp), %r13 + 0x4d, 0x89, 0xe1, //0x00002a02 movq %r12, %r9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a05 .p2align 4, 0x90 + //0x00002a10 LBB0_533 + 0x48, 0x8d, 0x58, 0xff, //0x00002a10 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00002a14 movq %rbx, %rcx + 0x48, 0x21, 0xf1, //0x00002a17 andq %rsi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x00002a1a popcntq %rcx, %rcx + 0x4c, 0x01, 0xf9, //0x00002a1f addq %r15, %rcx + 0x48, 0x39, 0xd1, //0x00002a22 cmpq %rdx, %rcx + 0x0f, 0x86, 0xdd, 0x02, 0x00, 0x00, //0x00002a25 jbe LBB0_577 + 0x48, 0xff, 0xc2, //0x00002a2b incq %rdx + 0x48, 0x21, 0xd8, //0x00002a2e andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002a31 jne LBB0_533 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002a37 jmp LBB0_536 + //0x00002a3c LBB0_535 + 0x4d, 0x89, 0xe1, //0x00002a3c movq %r12, %r9 + //0x00002a3f LBB0_536 + 0x48, 0xc1, 0xff, 0x3f, //0x00002a3f sarq $63, %rdi + 0xf3, 0x48, 0x0f, 0xb8, 0xc6, //0x00002a43 popcntq %rsi, %rax + 0x49, 0x01, 0xc7, //0x00002a48 addq %rax, %r15 + 0x49, 0x83, 0xc0, 0x40, //0x00002a4b addq $64, %r8 + 0x49, 0x83, 0xc3, 0xc0, //0x00002a4f addq $-64, %r11 + 0x49, 0x89, 0xfd, //0x00002a53 movq %rdi, %r13 + 0x4d, 0x89, 0xcc, //0x00002a56 movq %r9, %r12 + 0x49, 0x83, 0xfb, 0x40, //0x00002a59 cmpq $64, %r11 + 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x00002a5d jge LBB0_528 + 0xe9, 0x7b, 0xfd, 0xff, 0xff, //0x00002a63 jmp LBB0_537 + //0x00002a68 LBB0_552 + 0x4c, 0x89, 0x2c, 0x24, //0x00002a68 movq %r13, (%rsp) + 0x4d, 0x8b, 0x1b, //0x00002a6c movq (%r11), %r11 + 0x4d, 0x29, 0xd3, //0x00002a6f subq %r10, %r11 + 0x4d, 0x01, 0xd0, //0x00002a72 addq %r10, %r8 + 0x45, 0x31, 0xed, //0x00002a75 xorl %r13d, %r13d + 0x45, 0x31, 0xf6, //0x00002a78 xorl %r14d, %r14d + 0x45, 0x31, 0xff, //0x00002a7b xorl %r15d, %r15d + 0x31, 0xd2, //0x00002a7e xorl %edx, %edx + 0x4d, 0x89, 0xcc, //0x00002a80 movq %r9, %r12 + 0x49, 0x83, 0xfb, 0x40, //0x00002a83 cmpq $64, %r11 + 0x0f, 0x8d, 0x24, 0x01, 0x00, 0x00, //0x00002a87 jge LBB0_553 + //0x00002a8d LBB0_562 + 0x48, 0x8b, 0x04, 0x24, //0x00002a8d movq (%rsp), %rax + 0x4d, 0x85, 0xdb, //0x00002a91 testq %r11, %r11 + 0x0f, 0x8e, 0x76, 0x03, 0x00, 0x00, //0x00002a94 jle LBB0_588 + 0xc5, 0xc9, 0xef, 0xf6, //0x00002a9a vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x60, //0x00002a9e vmovdqu %ymm6, $96(%rsp) + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x00002aa4 vmovdqu %ymm6, $64(%rsp) + 0x44, 0x89, 0xc0, //0x00002aaa movl %r8d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00002aad andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00002ab2 cmpl $4033, %eax + 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00002ab7 jb LBB0_553 + 0x49, 0x83, 0xfb, 0x20, //0x00002abd cmpq $32, %r11 + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00002ac1 jb LBB0_566 + 0xc4, 0xc1, 0x7e, 0x6f, 0x30, //0x00002ac7 vmovdqu (%r8), %ymm6 + 0xc5, 0xfe, 0x7f, 0x74, 0x24, 0x40, //0x00002acc vmovdqu %ymm6, $64(%rsp) + 0x49, 0x83, 0xc0, 0x20, //0x00002ad2 addq $32, %r8 + 0x4d, 0x8d, 0x53, 0xe0, //0x00002ad6 leaq $-32(%r11), %r10 + 0x4c, 0x8d, 0x4c, 0x24, 0x60, //0x00002ada leaq $96(%rsp), %r9 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00002adf jmp LBB0_567 + //0x00002ae4 LBB0_566 + 0x4c, 0x8d, 0x4c, 0x24, 0x40, //0x00002ae4 leaq $64(%rsp), %r9 + 0x4d, 0x89, 0xda, //0x00002ae9 movq %r11, %r10 + //0x00002aec LBB0_567 + 0x49, 0x83, 0xfa, 0x10, //0x00002aec cmpq $16, %r10 + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00002af0 jb LBB0_568 + 0xc4, 0xc1, 0x7a, 0x6f, 0x30, //0x00002af6 vmovdqu (%r8), %xmm6 + 0xc4, 0xc1, 0x7a, 0x7f, 0x31, //0x00002afb vmovdqu %xmm6, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x00002b00 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x00002b04 addq $16, %r9 + 0x49, 0x83, 0xc2, 0xf0, //0x00002b08 addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x08, //0x00002b0c cmpq $8, %r10 + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002b10 jae LBB0_573 + //0x00002b16 LBB0_569 + 0x49, 0x83, 0xfa, 0x04, //0x00002b16 cmpq $4, %r10 + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00002b1a jl LBB0_570 + //0x00002b20 LBB0_574 + 0x41, 0x8b, 0x00, //0x00002b20 movl (%r8), %eax + 0x41, 0x89, 0x01, //0x00002b23 movl %eax, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x00002b26 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x00002b2a addq $4, %r9 + 0x49, 0x83, 0xc2, 0xfc, //0x00002b2e addq $-4, %r10 + 0x49, 0x83, 0xfa, 0x02, //0x00002b32 cmpq $2, %r10 + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002b36 jae LBB0_575 + //0x00002b3c LBB0_571 + 0x4c, 0x89, 0xc0, //0x00002b3c movq %r8, %rax + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00002b3f leaq $64(%rsp), %r8 + 0x4d, 0x85, 0xd2, //0x00002b44 testq %r10, %r10 + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00002b47 jne LBB0_576 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00002b4d jmp LBB0_553 + //0x00002b52 LBB0_568 + 0x49, 0x83, 0xfa, 0x08, //0x00002b52 cmpq $8, %r10 + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00002b56 jb LBB0_569 + //0x00002b5c LBB0_573 + 0x49, 0x8b, 0x00, //0x00002b5c movq (%r8), %rax + 0x49, 0x89, 0x01, //0x00002b5f movq %rax, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00002b62 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00002b66 addq $8, %r9 + 0x49, 0x83, 0xc2, 0xf8, //0x00002b6a addq $-8, %r10 + 0x49, 0x83, 0xfa, 0x04, //0x00002b6e cmpq $4, %r10 + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00002b72 jge LBB0_574 + //0x00002b78 LBB0_570 + 0x49, 0x83, 0xfa, 0x02, //0x00002b78 cmpq $2, %r10 + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00002b7c jb LBB0_571 + //0x00002b82 LBB0_575 + 0x41, 0x0f, 0xb7, 0x00, //0x00002b82 movzwl (%r8), %eax + 0x66, 0x41, 0x89, 0x01, //0x00002b86 movw %ax, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00002b8a addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x00002b8e addq $2, %r9 + 0x49, 0x83, 0xc2, 0xfe, //0x00002b92 addq $-2, %r10 + 0x4c, 0x89, 0xc0, //0x00002b96 movq %r8, %rax + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00002b99 leaq $64(%rsp), %r8 + 0x4d, 0x85, 0xd2, //0x00002b9e testq %r10, %r10 + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002ba1 je LBB0_553 + //0x00002ba7 LBB0_576 + 0x8a, 0x00, //0x00002ba7 movb (%rax), %al + 0x41, 0x88, 0x01, //0x00002ba9 movb %al, (%r9) + 0x4c, 0x8d, 0x44, 0x24, 0x40, //0x00002bac leaq $64(%rsp), %r8 + //0x00002bb1 LBB0_553 + 0x4c, 0x89, 0xc0, //0x00002bb1 movq %r8, %rax + 0xc4, 0x41, 0x7e, 0x6f, 0x38, //0x00002bb4 vmovdqu (%r8), %ymm15 + 0xc4, 0x41, 0x7e, 0x6f, 0x70, 0x20, //0x00002bb9 vmovdqu $32(%r8), %ymm14 + 0xc5, 0x85, 0x74, 0xf1, //0x00002bbf vpcmpeqb %ymm1, %ymm15, %ymm6 + 0xc5, 0x7d, 0xd7, 0xce, //0x00002bc3 vpmovmskb %ymm6, %r9d + 0xc5, 0x8d, 0x74, 0xf1, //0x00002bc7 vpcmpeqb %ymm1, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00002bcb vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00002bcf shlq $32, %rax + 0x49, 0x09, 0xc1, //0x00002bd3 orq %rax, %r9 + 0xc5, 0x85, 0x74, 0xf2, //0x00002bd6 vpcmpeqb %ymm2, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xfe, //0x00002bda vpmovmskb %ymm6, %edi + 0xc5, 0x8d, 0x74, 0xf2, //0x00002bde vpcmpeqb %ymm2, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00002be2 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00002be6 shlq $32, %rax + 0x48, 0x09, 0xc7, //0x00002bea orq %rax, %rdi + 0x48, 0x89, 0xf8, //0x00002bed movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x00002bf0 orq %r14, %rax + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00002bf3 je LBB0_555 + 0x4c, 0x89, 0xf0, //0x00002bf9 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00002bfc notq %rax + 0x48, 0x21, 0xf8, //0x00002bff andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00002c02 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf1, //0x00002c06 orq %r14, %rcx + 0x48, 0x89, 0xcb, //0x00002c09 movq %rcx, %rbx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002c0c movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf3, //0x00002c16 xorq %rsi, %rbx + 0x48, 0x21, 0xf7, //0x00002c19 andq %rsi, %rdi + 0x48, 0x21, 0xdf, //0x00002c1c andq %rbx, %rdi + 0x45, 0x31, 0xf6, //0x00002c1f xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00002c22 addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x00002c25 setb %r14b + 0x48, 0x01, 0xff, //0x00002c29 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002c2c movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00002c36 xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x00002c39 andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x00002c3c notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002c3f jmp LBB0_556 + //0x00002c44 LBB0_555 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c44 movq $-1, %rdi + 0x45, 0x31, 0xf6, //0x00002c4b xorl %r14d, %r14d + //0x00002c4e LBB0_556 + 0x4c, 0x21, 0xcf, //0x00002c4e andq %r9, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xf7, //0x00002c51 vmovq %rdi, %xmm6 + 0xc4, 0xc3, 0x49, 0x44, 0xf1, 0x00, //0x00002c56 vpclmulqdq $0, %xmm9, %xmm6, %xmm6 + 0xc4, 0xe1, 0xf9, 0x7e, 0xf7, //0x00002c5c vmovq %xmm6, %rdi + 0x4c, 0x31, 0xef, //0x00002c61 xorq %r13, %rdi + 0xc4, 0xc1, 0x05, 0x74, 0xf5, //0x00002c64 vpcmpeqb %ymm13, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xf6, //0x00002c69 vpmovmskb %ymm6, %esi + 0xc4, 0xc1, 0x0d, 0x74, 0xf5, //0x00002c6d vpcmpeqb %ymm13, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00002c72 vpmovmskb %ymm6, %eax + 0x48, 0xc1, 0xe0, 0x20, //0x00002c76 shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00002c7a orq %rax, %rsi + 0x48, 0x89, 0xf9, //0x00002c7d movq %rdi, %rcx + 0x48, 0xf7, 0xd1, //0x00002c80 notq %rcx + 0x48, 0x21, 0xce, //0x00002c83 andq %rcx, %rsi + 0xc5, 0x85, 0x74, 0xf5, //0x00002c86 vpcmpeqb %ymm5, %ymm15, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00002c8a vpmovmskb %ymm6, %eax + 0xc5, 0x8d, 0x74, 0xf5, //0x00002c8e vpcmpeqb %ymm5, %ymm14, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x00002c92 vpmovmskb %ymm6, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00002c96 shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x00002c9a orq %rbx, %rax + 0x48, 0x21, 0xc8, //0x00002c9d andq %rcx, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00002ca0 je LBB0_560 + 0x4c, 0x8b, 0x2c, 0x24, //0x00002ca6 movq (%rsp), %r13 + 0x4d, 0x89, 0xe1, //0x00002caa movq %r12, %r9 + 0x90, 0x90, 0x90, //0x00002cad .p2align 4, 0x90 + //0x00002cb0 LBB0_558 + 0x48, 0x8d, 0x58, 0xff, //0x00002cb0 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00002cb4 movq %rbx, %rcx + 0x48, 0x21, 0xf1, //0x00002cb7 andq %rsi, %rcx + 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x00002cba popcntq %rcx, %rcx + 0x4c, 0x01, 0xf9, //0x00002cbf addq %r15, %rcx + 0x48, 0x39, 0xd1, //0x00002cc2 cmpq %rdx, %rcx + 0x0f, 0x86, 0x3d, 0x00, 0x00, 0x00, //0x00002cc5 jbe LBB0_577 + 0x48, 0xff, 0xc2, //0x00002ccb incq %rdx + 0x48, 0x21, 0xd8, //0x00002cce andq %rbx, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002cd1 jne LBB0_558 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002cd7 jmp LBB0_561 + //0x00002cdc LBB0_560 + 0x4d, 0x89, 0xe1, //0x00002cdc movq %r12, %r9 + //0x00002cdf LBB0_561 + 0x48, 0xc1, 0xff, 0x3f, //0x00002cdf sarq $63, %rdi + 0xf3, 0x48, 0x0f, 0xb8, 0xc6, //0x00002ce3 popcntq %rsi, %rax + 0x49, 0x01, 0xc7, //0x00002ce8 addq %rax, %r15 + 0x49, 0x83, 0xc0, 0x40, //0x00002ceb addq $64, %r8 + 0x49, 0x83, 0xc3, 0xc0, //0x00002cef addq $-64, %r11 + 0x49, 0x89, 0xfd, //0x00002cf3 movq %rdi, %r13 + 0x4d, 0x89, 0xcc, //0x00002cf6 movq %r9, %r12 + 0x49, 0x83, 0xfb, 0x40, //0x00002cf9 cmpq $64, %r11 + 0x0f, 0x8d, 0xae, 0xfe, 0xff, 0xff, //0x00002cfd jge LBB0_553 + 0xe9, 0x85, 0xfd, 0xff, 0xff, //0x00002d03 jmp LBB0_562 + //0x00002d08 LBB0_577 + 0x48, 0x8b, 0x54, 0x24, 0x18, //0x00002d08 movq $24(%rsp), %rdx + 0x48, 0x8b, 0x0a, //0x00002d0d movq (%rdx), %rcx + 0x48, 0x0f, 0xbc, 0xc0, //0x00002d10 bsfq %rax, %rax + 0x4c, 0x29, 0xd8, //0x00002d14 subq %r11, %rax + 0x49, 0x89, 0xd3, //0x00002d17 movq %rdx, %r11 + 0x4c, 0x8d, 0x54, 0x08, 0x01, //0x00002d1a leaq $1(%rax,%rcx), %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00002d1f movq $8(%rsp), %r14 + 0x4d, 0x89, 0x16, //0x00002d24 movq %r10, (%r14) + 0x48, 0x8b, 0x02, //0x00002d27 movq (%rdx), %rax + 0x49, 0x39, 0xc2, //0x00002d2a cmpq %rax, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00002d2d cmovaq %rax, %r10 + 0x4d, 0x89, 0x16, //0x00002d31 movq %r10, (%r14) + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00002d34 movq $16(%rsp), %r15 + 0xe9, 0x98, 0xf8, 0xff, 0xff, //0x00002d39 jmp LBB0_491 + //0x00002d3e LBB0_582 + 0x0f, 0xb7, 0xc6, //0x00002d3e movzwl %si, %eax + 0xe9, 0x4d, 0xf7, 0xff, 0xff, //0x00002d41 jmp LBB0_475 + //0x00002d46 LBB0_583 + 0x4c, 0x89, 0xc2, //0x00002d46 movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00002d49 notq %rdx + 0x48, 0x01, 0xd1, //0x00002d4c addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x00002d4f cmpq %rax, %rcx + 0x0f, 0x82, 0x40, 0xfa, 0xff, 0xff, //0x00002d52 jb LBB0_522 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00002d58 jmp LBB0_657 + //0x00002d5d LBB0_584 + 0x4c, 0x89, 0xc2, //0x00002d5d movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00002d60 notq %rdx + 0x48, 0x01, 0xd0, //0x00002d63 addq %rdx, %rax + 0x48, 0x39, 0xc8, //0x00002d66 cmpq %rcx, %rax + 0x0f, 0x82, 0xc9, 0xf5, 0xff, 0xff, //0x00002d69 jb LBB0_454 + 0xe9, 0x62, 0xf8, 0xff, 0xff, //0x00002d6f jmp LBB0_491 + //0x00002d74 LBB0_485 + 0x48, 0x85, 0xdb, //0x00002d74 testq %rbx, %rbx + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x00002d77 jne LBB0_590 + 0x4a, 0x8d, 0x44, 0x09, 0x01, //0x00002d7d leaq $1(%rcx,%r9), %rax + 0x48, 0xf7, 0xd1, //0x00002d82 notq %rcx + 0x4c, 0x01, 0xc1, //0x00002d85 addq %r8, %rcx + //0x00002d88 LBB0_487 + 0x48, 0x85, 0xc9, //0x00002d88 testq %rcx, %rcx + 0x48, 0x8b, 0x3c, 0x24, //0x00002d8b movq (%rsp), %rdi + 0x4c, 0x8b, 0x4c, 0x24, 0x20, //0x00002d8f movq $32(%rsp), %r9 + 0x0f, 0x8e, 0x96, 0x00, 0x00, 0x00, //0x00002d94 jle LBB0_589 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00002d9a movq $24(%rsp), %r11 + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00002d9f jmp LBB0_579 + //0x00002da4 LBB0_578 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00002da4 movq $-2, %rdx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00002dab movl $2, %esi + 0x48, 0x01, 0xf0, //0x00002db0 addq %rsi, %rax + 0x48, 0x01, 0xd1, //0x00002db3 addq %rdx, %rcx + 0x0f, 0x8e, 0x1a, 0xf8, 0xff, 0xff, //0x00002db6 jle LBB0_491 + //0x00002dbc LBB0_579 + 0x0f, 0xb6, 0x10, //0x00002dbc movzbl (%rax), %edx + 0x80, 0xfa, 0x5c, //0x00002dbf cmpb $92, %dl + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00002dc2 je LBB0_578 + 0x80, 0xfa, 0x22, //0x00002dc8 cmpb $34, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00002dcb je LBB0_585 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00002dd1 movq $-1, %rdx + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00002dd8 movl $1, %esi + 0x48, 0x01, 0xf0, //0x00002ddd addq %rsi, %rax + 0x48, 0x01, 0xd1, //0x00002de0 addq %rdx, %rcx + 0x0f, 0x8f, 0xd3, 0xff, 0xff, 0xff, //0x00002de3 jg LBB0_579 + 0xe9, 0xe8, 0xf7, 0xff, 0xff, //0x00002de9 jmp LBB0_491 + //0x00002dee LBB0_585 + 0x48, 0x29, 0xf8, //0x00002dee subq %rdi, %rax + 0x48, 0xff, 0xc0, //0x00002df1 incq %rax + 0xe9, 0xd7, 0xf7, 0xff, 0xff, //0x00002df4 jmp LBB0_490 + //0x00002df9 LBB0_586 + 0x4d, 0x29, 0xc2, //0x00002df9 subq %r8, %r10 + 0x4d, 0x89, 0x16, //0x00002dfc movq %r10, (%r14) + 0xe9, 0xd2, 0xf7, 0xff, 0xff, //0x00002dff jmp LBB0_491 + //0x00002e04 LBB0_587 + 0x48, 0x8b, 0x04, 0x24, //0x00002e04 movq (%rsp), %rax + 0x4c, 0x01, 0xd0, //0x00002e08 addq %r10, %rax + 0xe9, 0x78, 0xff, 0xff, 0xff, //0x00002e0b jmp LBB0_487 + //0x00002e10 LBB0_588 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00002e10 movq $24(%rsp), %r11 + 0x4d, 0x8b, 0x13, //0x00002e15 movq (%r11), %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00002e18 movq $8(%rsp), %r14 + 0x4d, 0x89, 0x16, //0x00002e1d movq %r10, (%r14) + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00002e20 movq $16(%rsp), %r15 + 0x49, 0x89, 0xc5, //0x00002e25 movq %rax, %r13 + 0x4d, 0x89, 0xe1, //0x00002e28 movq %r12, %r9 + 0xe9, 0xa6, 0xf7, 0xff, 0xff, //0x00002e2b jmp LBB0_491 + //0x00002e30 LBB0_589 + 0x4c, 0x8b, 0x5c, 0x24, 0x18, //0x00002e30 movq $24(%rsp), %r11 + 0xe9, 0x9c, 0xf7, 0xff, 0xff, //0x00002e35 jmp LBB0_491 + //0x00002e3a LBB0_590 + 0x49, 0x8d, 0x40, 0xff, //0x00002e3a leaq $-1(%r8), %rax + 0x48, 0x39, 0xc8, //0x00002e3e cmpq %rcx, %rax + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002e41 jne LBB0_593 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00002e47 movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00002e4c movq $16(%rsp), %r15 + 0xe9, 0x51, 0xf7, 0xff, 0xff, //0x00002e51 jmp LBB0_592 + //0x00002e56 LBB0_593 + 0x4a, 0x8d, 0x44, 0x09, 0x02, //0x00002e56 leaq $2(%rcx,%r9), %rax + 0x49, 0x29, 0xc8, //0x00002e5b subq %rcx, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00002e5e addq $-2, %r8 + 0x4c, 0x89, 0xc1, //0x00002e62 movq %r8, %rcx + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00002e65 movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00002e6a movq $16(%rsp), %r15 + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00002e6f jmp LBB0_487 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e74 .p2align 4, 0x90 + //0x00002e80 LBB0_524 + 0x49, 0x83, 0xc5, 0x10, //0x00002e80 addq $16, %r13 + 0x4c, 0x89, 0xd0, //0x00002e84 movq %r10, %rax + 0x48, 0x8b, 0x8c, 0x24, 0xa0, 0x00, 0x00, 0x00, //0x00002e87 movq $160(%rsp), %rcx + 0x49, 0x39, 0xcd, //0x00002e8f cmpq %rcx, %r13 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00002e92 movq $40(%rsp), %r10 + 0x0f, 0x85, 0x82, 0xd4, 0xff, 0xff, //0x00002e97 jne LBB0_2 + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00002e9d jmp LBB0_525 + //0x00002ea2 LBB0_34 + 0x4d, 0x89, 0xc8, //0x00002ea2 movq %r9, %r8 + 0x4c, 0x89, 0xce, //0x00002ea5 movq %r9, %rsi + 0x48, 0xf7, 0xd6, //0x00002ea8 notq %rsi + 0x48, 0x01, 0xf2, //0x00002eab addq %rsi, %rdx + 0x48, 0x39, 0xca, //0x00002eae cmpq %rcx, %rdx + 0x0f, 0x82, 0x61, 0xd6, 0xff, 0xff, //0x00002eb1 jb LBB0_33 + 0xe9, 0x04, 0xd6, 0xff, 0xff, //0x00002eb7 jmp LBB0_35 + //0x00002ebc LBB0_594 + 0x4c, 0x89, 0xc2, //0x00002ebc movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00002ebf notq %rdx + 0x48, 0x01, 0xd1, //0x00002ec2 addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x00002ec5 cmpq %rax, %rcx + 0x0f, 0x82, 0x8b, 0xf2, 0xff, 0xff, //0x00002ec8 jb LBB0_421 + 0xe9, 0x98, 0xf2, 0xff, 0xff, //0x00002ece jmp LBB0_422 + //0x00002ed3 LBB0_525 + 0x4d, 0x85, 0xd2, //0x00002ed3 testq %r10, %r10 + 0x0f, 0x84, 0x7c, 0x00, 0x00, 0x00, //0x00002ed6 je LBB0_595 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00002edc movl $1, %r9d + 0xc4, 0xc1, 0xf9, 0x6e, 0xc1, //0x00002ee2 vmovq %r9, %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x02, //0x00002ee7 vmovdqu %xmm0, (%r10) + 0x4d, 0x8b, 0x2e, //0x00002eec movq (%r14), %r13 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002eef movq $-1, %r8 + 0xc5, 0xfe, 0x6f, 0x2d, 0x02, 0xd1, 0xff, 0xff, //0x00002ef6 vmovdqu $-12030(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x7a, 0xd1, 0xff, 0xff, //0x00002efe vmovdqu $-11910(%rip), %ymm6 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x92, 0xd1, 0xff, 0xff, //0x00002f06 vmovdqu $-11886(%rip), %ymm7 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x0a, 0xd2, 0xff, 0xff, //0x00002f0e vmovdqu $-11766(%rip), %ymm8 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x22, 0xd2, 0xff, 0xff, //0x00002f16 vmovdqu $-11742(%rip), %ymm9 /* LCPI0_13+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x3a, 0xd2, 0xff, 0xff, //0x00002f1e vmovdqu $-11718(%rip), %ymm10 /* LCPI0_14+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x52, 0xd2, 0xff, 0xff, //0x00002f26 vmovdqu $-11694(%rip), %ymm11 /* LCPI0_15+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x0a, 0xd1, 0xff, 0xff, //0x00002f2e vmovdqu $-12022(%rip), %ymm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x62, 0xd2, 0xff, 0xff, //0x00002f36 vmovdqu $-11678(%rip), %ymm13 /* LCPI0_16+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x7a, 0xd2, 0xff, 0xff, //0x00002f3e vmovdqu $-11654(%rip), %ymm14 /* LCPI0_17+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0xc2, 0xd2, 0xff, 0xff, //0x00002f46 vmovdqu $-11582(%rip), %xmm15 /* LCPI0_18+0(%rip) */ + 0x4c, 0x89, 0x54, 0x24, 0x28, //0x00002f4e movq %r10, $40(%rsp) + 0xe9, 0xea, 0x03, 0x00, 0x00, //0x00002f53 jmp LBB0_664 + //0x00002f58 LBB0_595 + 0x4d, 0x8b, 0x1f, //0x00002f58 movq (%r15), %r11 + 0x49, 0x8b, 0x5f, 0x08, //0x00002f5b movq $8(%r15), %rbx + 0x49, 0x8b, 0x0e, //0x00002f5f movq (%r14), %rcx + 0x48, 0x39, 0xd9, //0x00002f62 cmpq %rbx, %rcx + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x00002f65 jae LBB0_600 + 0x41, 0x8a, 0x04, 0x0b, //0x00002f6b movb (%r11,%rcx), %al + 0x3c, 0x0d, //0x00002f6f cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00002f71 je LBB0_600 + 0x3c, 0x20, //0x00002f77 cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002f79 je LBB0_600 + 0x04, 0xf7, //0x00002f7f addb $-9, %al + 0x3c, 0x01, //0x00002f81 cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00002f83 jbe LBB0_600 + 0x48, 0x89, 0xc8, //0x00002f89 movq %rcx, %rax + 0xe9, 0xd1, 0x01, 0x00, 0x00, //0x00002f8c jmp LBB0_634 + //0x00002f91 LBB0_600 + 0x48, 0x8d, 0x41, 0x01, //0x00002f91 leaq $1(%rcx), %rax + 0x48, 0x39, 0xd8, //0x00002f95 cmpq %rbx, %rax + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00002f98 jae LBB0_604 + 0x41, 0x8a, 0x14, 0x03, //0x00002f9e movb (%r11,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00002fa2 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00002fa5 je LBB0_604 + 0x80, 0xfa, 0x20, //0x00002fab cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00002fae je LBB0_604 + 0x80, 0xc2, 0xf7, //0x00002fb4 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002fb7 cmpb $1, %dl + 0x0f, 0x87, 0xa2, 0x01, 0x00, 0x00, //0x00002fba ja LBB0_634 + //0x00002fc0 LBB0_604 + 0x48, 0x8d, 0x41, 0x02, //0x00002fc0 leaq $2(%rcx), %rax + 0x48, 0x39, 0xd8, //0x00002fc4 cmpq %rbx, %rax + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00002fc7 jae LBB0_608 + 0x41, 0x8a, 0x14, 0x03, //0x00002fcd movb (%r11,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00002fd1 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00002fd4 je LBB0_608 + 0x80, 0xfa, 0x20, //0x00002fda cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00002fdd je LBB0_608 + 0x80, 0xc2, 0xf7, //0x00002fe3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00002fe6 cmpb $1, %dl + 0x0f, 0x87, 0x73, 0x01, 0x00, 0x00, //0x00002fe9 ja LBB0_634 + //0x00002fef LBB0_608 + 0x48, 0x8d, 0x41, 0x03, //0x00002fef leaq $3(%rcx), %rax + 0x48, 0x39, 0xd8, //0x00002ff3 cmpq %rbx, %rax + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00002ff6 jae LBB0_612 + 0x41, 0x8a, 0x14, 0x03, //0x00002ffc movb (%r11,%rax), %dl + 0x80, 0xfa, 0x0d, //0x00003000 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003003 je LBB0_612 + 0x80, 0xfa, 0x20, //0x00003009 cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000300c je LBB0_612 + 0x80, 0xc2, 0xf7, //0x00003012 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00003015 cmpb $1, %dl + 0x0f, 0x87, 0x44, 0x01, 0x00, 0x00, //0x00003018 ja LBB0_634 + //0x0000301e LBB0_612 + 0x48, 0x8d, 0x41, 0x04, //0x0000301e leaq $4(%rcx), %rax + 0x48, 0x89, 0xda, //0x00003022 movq %rbx, %rdx + 0x48, 0x29, 0xc2, //0x00003025 subq %rax, %rdx + 0x0f, 0x86, 0x06, 0x01, 0x00, 0x00, //0x00003028 jbe LBB0_632 + 0x4c, 0x01, 0xd8, //0x0000302e addq %r11, %rax + 0x48, 0x83, 0xfa, 0x20, //0x00003031 cmpq $32, %rdx + 0x0f, 0x82, 0x57, 0x00, 0x00, 0x00, //0x00003035 jb LBB0_618 + 0x48, 0x89, 0xde, //0x0000303b movq %rbx, %rsi + 0x48, 0x29, 0xce, //0x0000303e subq %rcx, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x00003041 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x00003045 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x00003048 andq $-32, %rdi + 0x48, 0x01, 0xcf, //0x0000304c addq %rcx, %rdi + 0x49, 0x8d, 0x4c, 0x3b, 0x24, //0x0000304f leaq $36(%r11,%rdi), %rcx + 0x83, 0xe6, 0x1f, //0x00003054 andl $31, %esi + 0xc5, 0xfe, 0x6f, 0x05, 0xa1, 0xcf, 0xff, 0xff, //0x00003057 vmovdqu $-12383(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, //0x0000305f .p2align 4, 0x90 + //0x00003060 LBB0_615 + 0xc5, 0xfe, 0x6f, 0x08, //0x00003060 vmovdqu (%rax), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00003064 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x00003069 vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf9, //0x0000306d vpmovmskb %ymm1, %edi + 0x83, 0xff, 0xff, //0x00003071 cmpl $-1, %edi + 0x0f, 0x85, 0xc9, 0x00, 0x00, 0x00, //0x00003074 jne LBB0_633 + 0x48, 0x83, 0xc0, 0x20, //0x0000307a addq $32, %rax + 0x48, 0x83, 0xc2, 0xe0, //0x0000307e addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x00003082 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00003086 ja LBB0_615 + 0x48, 0x89, 0xf2, //0x0000308c movq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x0000308f movq %rcx, %rax + //0x00003092 LBB0_618 + 0x48, 0x85, 0xd2, //0x00003092 testq %rdx, %rdx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00003095 je LBB0_624 + 0x48, 0x8d, 0x0c, 0x10, //0x0000309b leaq (%rax,%rdx), %rcx + 0x48, 0xff, 0xc0, //0x0000309f incq %rax + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000030a2 movabsq $4294977024, %rsi + //0x000030ac LBB0_620 + 0x0f, 0xbe, 0x78, 0xff, //0x000030ac movsbl $-1(%rax), %edi + 0x83, 0xff, 0x20, //0x000030b0 cmpl $32, %edi + 0x0f, 0x87, 0xc9, 0x25, 0x00, 0x00, //0x000030b3 ja LBB0_1108 + 0x48, 0x0f, 0xa3, 0xfe, //0x000030b9 btq %rdi, %rsi + 0x0f, 0x83, 0xbf, 0x25, 0x00, 0x00, //0x000030bd jae LBB0_1108 + 0x48, 0xff, 0xca, //0x000030c3 decq %rdx + 0x48, 0xff, 0xc0, //0x000030c6 incq %rax + 0x48, 0x85, 0xd2, //0x000030c9 testq %rdx, %rdx + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000030cc jne LBB0_620 + 0x48, 0x89, 0xc8, //0x000030d2 movq %rcx, %rax + //0x000030d5 LBB0_624 + 0x4c, 0x29, 0xd8, //0x000030d5 subq %r11, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000030d8 movq $-1, %rcx + 0x48, 0x39, 0xd8, //0x000030df cmpq %rbx, %rax + 0x0f, 0x82, 0x7a, 0x00, 0x00, 0x00, //0x000030e2 jb LBB0_634 + 0xe9, 0x11, 0x02, 0x00, 0x00, //0x000030e8 jmp LBB0_659 + //0x000030ed LBB0_625 + 0x49, 0x89, 0x0e, //0x000030ed movq %rcx, (%r14) + 0x49, 0x89, 0xca, //0x000030f0 movq %rcx, %r10 + 0xe9, 0xf9, 0x01, 0x00, 0x00, //0x000030f3 jmp LBB0_657 + //0x000030f8 LBB0_626 + 0x3c, 0x5d, //0x000030f8 cmpb $93, %al + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x000030fa je LBB0_631 + 0xe9, 0xec, 0x01, 0x00, 0x00, //0x00003100 jmp LBB0_657 + //0x00003105 LBB0_628 + 0x49, 0xff, 0xca, //0x00003105 decq %r10 + 0x4d, 0x89, 0x16, //0x00003108 movq %r10, (%r14) + 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x0000310b movq $-34, %rcx + 0xe9, 0xe7, 0x01, 0x00, 0x00, //0x00003112 jmp LBB0_659 + //0x00003117 LBB0_629 + 0x4d, 0x89, 0xca, //0x00003117 movq %r9, %r10 + //0x0000311a LBB0_630 + 0x3c, 0x7d, //0x0000311a cmpb $125, %al + 0x0f, 0x85, 0xcf, 0x01, 0x00, 0x00, //0x0000311c jne LBB0_657 + //0x00003122 LBB0_631 + 0x49, 0xff, 0xca, //0x00003122 decq %r10 + 0x4d, 0x89, 0x16, //0x00003125 movq %r10, (%r14) + 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x00003128 movq $-33, %rcx + 0xe9, 0xca, 0x01, 0x00, 0x00, //0x0000312f jmp LBB0_659 + //0x00003134 LBB0_632 + 0x49, 0x89, 0x06, //0x00003134 movq %rax, (%r14) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003137 movq $-1, %rcx + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x0000313e jmp LBB0_659 + //0x00003143 LBB0_633 + 0x4c, 0x29, 0xd8, //0x00003143 subq %r11, %rax + 0xf7, 0xd7, //0x00003146 notl %edi + 0x48, 0x63, 0xcf, //0x00003148 movslq %edi, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000314b bsfq %rcx, %rcx + 0x48, 0x01, 0xc8, //0x0000314f addq %rcx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003152 movq $-1, %rcx + 0x48, 0x39, 0xd8, //0x00003159 cmpq %rbx, %rax + 0x0f, 0x83, 0x9c, 0x01, 0x00, 0x00, //0x0000315c jae LBB0_659 + //0x00003162 LBB0_634 + 0x48, 0x8d, 0x58, 0x01, //0x00003162 leaq $1(%rax), %rbx + 0x49, 0x89, 0x1e, //0x00003166 movq %rbx, (%r14) + 0x41, 0x0f, 0xbe, 0x14, 0x03, //0x00003169 movsbl (%r11,%rax), %edx + 0x83, 0xfa, 0x7b, //0x0000316e cmpl $123, %edx + 0x0f, 0x87, 0x53, 0x23, 0x00, 0x00, //0x00003171 ja LBB0_1087 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003177 movq $-1, %rcx + 0x48, 0x8d, 0x35, 0xa3, 0x2d, 0x00, 0x00, //0x0000317e leaq $11683(%rip), %rsi /* LJTI0_6+0(%rip) */ + 0x48, 0x63, 0x14, 0x96, //0x00003185 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00003189 addq %rsi, %rdx + 0xff, 0xe2, //0x0000318c jmpq *%rdx + //0x0000318e LBB0_636 + 0x49, 0x8b, 0x57, 0x08, //0x0000318e movq $8(%r15), %rdx + 0x48, 0x89, 0xd1, //0x00003192 movq %rdx, %rcx + 0x48, 0x29, 0xd9, //0x00003195 subq %rbx, %rcx + 0x4c, 0x01, 0xdb, //0x00003198 addq %r11, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x0000319b cmpq $32, %rcx + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000319f jb LBB0_641 + 0x48, 0x29, 0xc2, //0x000031a5 subq %rax, %rdx + 0x48, 0x83, 0xc2, 0xdf, //0x000031a8 addq $-33, %rdx + 0x48, 0x89, 0xd6, //0x000031ac movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x000031af andq $-32, %rsi + 0x48, 0x01, 0xc6, //0x000031b3 addq %rax, %rsi + 0x49, 0x8d, 0x74, 0x33, 0x21, //0x000031b6 leaq $33(%r11,%rsi), %rsi + 0x83, 0xe2, 0x1f, //0x000031bb andl $31, %edx + 0xc5, 0xfe, 0x6f, 0x05, 0x5a, 0xce, 0xff, 0xff, //0x000031be vmovdqu $-12710(%rip), %ymm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x72, 0xce, 0xff, 0xff, //0x000031c6 vmovdqu $-12686(%rip), %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0x8a, 0xce, 0xff, 0xff, //0x000031ce vmovdqu $-12662(%rip), %ymm2 /* LCPI0_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031d6 .p2align 4, 0x90 + //0x000031e0 LBB0_638 + 0xc5, 0xfe, 0x6f, 0x1b, //0x000031e0 vmovdqu (%rbx), %ymm3 + 0xc5, 0xe5, 0x74, 0xe0, //0x000031e4 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xe5, 0xeb, 0xd9, //0x000031e8 vpor %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0xda, //0x000031ec vpcmpeqb %ymm2, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdc, //0x000031f0 vpor %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0xd7, 0xfb, //0x000031f4 vpmovmskb %ymm3, %edi + 0x85, 0xff, //0x000031f8 testl %edi, %edi + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x000031fa jne LBB0_654 + 0x48, 0x83, 0xc3, 0x20, //0x00003200 addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00003204 addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x1f, //0x00003208 cmpq $31, %rcx + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000320c ja LBB0_638 + 0x48, 0x89, 0xd1, //0x00003212 movq %rdx, %rcx + 0x48, 0x89, 0xf3, //0x00003215 movq %rsi, %rbx + //0x00003218 LBB0_641 + 0x48, 0x83, 0xf9, 0x10, //0x00003218 cmpq $16, %rcx + 0x0f, 0x82, 0x64, 0x00, 0x00, 0x00, //0x0000321c jb LBB0_646 + 0x48, 0x8d, 0x51, 0xf0, //0x00003222 leaq $-16(%rcx), %rdx + 0x48, 0x89, 0xd6, //0x00003226 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x00003229 andq $-16, %rsi + 0x48, 0x8d, 0x74, 0x1e, 0x10, //0x0000322d leaq $16(%rsi,%rbx), %rsi + 0x83, 0xe2, 0x0f, //0x00003232 andl $15, %edx + 0xc5, 0xfa, 0x6f, 0x05, 0xa3, 0xcf, 0xff, 0xff, //0x00003235 vmovdqu $-12381(%rip), %xmm0 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0xab, 0xcf, 0xff, 0xff, //0x0000323d vmovdqu $-12373(%rip), %xmm1 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xb3, 0xcf, 0xff, 0xff, //0x00003245 vmovdqu $-12365(%rip), %xmm2 /* LCPI0_6+0(%rip) */ + //0x0000324d LBB0_643 + 0xc5, 0xfa, 0x6f, 0x1b, //0x0000324d vmovdqu (%rbx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00003251 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00003255 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x00003259 vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x0000325d vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00003261 vpmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x00003265 testw %di, %di + 0x0f, 0x85, 0xe8, 0x22, 0x00, 0x00, //0x00003268 jne LBB0_1095 + 0x48, 0x83, 0xc3, 0x10, //0x0000326e addq $16, %rbx + 0x48, 0x83, 0xc1, 0xf0, //0x00003272 addq $-16, %rcx + 0x48, 0x83, 0xf9, 0x0f, //0x00003276 cmpq $15, %rcx + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000327a ja LBB0_643 + 0x48, 0x89, 0xd1, //0x00003280 movq %rdx, %rcx + 0x48, 0x89, 0xf3, //0x00003283 movq %rsi, %rbx + //0x00003286 LBB0_646 + 0x48, 0x85, 0xc9, //0x00003286 testq %rcx, %rcx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00003289 je LBB0_653 + 0x48, 0x8d, 0x34, 0x0b, //0x0000328f leaq (%rbx,%rcx), %rsi + //0x00003293 LBB0_648 + 0x0f, 0xb6, 0x13, //0x00003293 movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x00003296 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00003299 je LBB0_653 + 0x80, 0xfa, 0x7d, //0x0000329f cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000032a2 je LBB0_653 + 0x80, 0xfa, 0x5d, //0x000032a8 cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000032ab je LBB0_653 + 0x48, 0xff, 0xc3, //0x000032b1 incq %rbx + 0x48, 0xff, 0xc9, //0x000032b4 decq %rcx + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000032b7 jne LBB0_648 + 0x48, 0x89, 0xf3, //0x000032bd movq %rsi, %rbx + //0x000032c0 LBB0_653 + 0x4c, 0x29, 0xdb, //0x000032c0 subq %r11, %rbx + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x000032c3 movq $8(%rsp), %rcx + 0x48, 0x89, 0x19, //0x000032c8 movq %rbx, (%rcx) + 0x48, 0x89, 0xc1, //0x000032cb movq %rax, %rcx + 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000032ce jmp LBB0_659 + //0x000032d3 LBB0_654 + 0x48, 0x63, 0xcf, //0x000032d3 movslq %edi, %rcx + //0x000032d6 LBB0_655 + 0x48, 0x0f, 0xbc, 0xc9, //0x000032d6 bsfq %rcx, %rcx + 0x4c, 0x29, 0xdb, //0x000032da subq %r11, %rbx + 0x48, 0x01, 0xcb, //0x000032dd addq %rcx, %rbx + 0x49, 0x89, 0x1e, //0x000032e0 movq %rbx, (%r14) + 0x48, 0x89, 0xc1, //0x000032e3 movq %rax, %rcx + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000032e6 jmp LBB0_659 + //0x000032eb LBB0_656 + 0x49, 0x89, 0x06, //0x000032eb movq %rax, (%r14) + 0x49, 0x89, 0xc2, //0x000032ee movq %rax, %r10 + //0x000032f1 LBB0_657 + 0x49, 0xff, 0xca, //0x000032f1 decq %r10 + 0x4d, 0x89, 0x16, //0x000032f4 movq %r10, (%r14) + //0x000032f7 LBB0_658 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000032f7 movq $-2, %rcx + //0x000032fe LBB0_659 + 0x48, 0x89, 0xc8, //0x000032fe movq %rcx, %rax + 0x48, 0x8d, 0x65, 0xd8, //0x00003301 leaq $-40(%rbp), %rsp + 0x5b, //0x00003305 popq %rbx + 0x41, 0x5c, //0x00003306 popq %r12 + 0x41, 0x5d, //0x00003308 popq %r13 + 0x41, 0x5e, //0x0000330a popq %r14 + 0x41, 0x5f, //0x0000330c popq %r15 + 0x5d, //0x0000330e popq %rbp + 0xc5, 0xf8, 0x77, //0x0000330f vzeroupper + 0xc3, //0x00003312 retq + //0x00003313 LBB0_660 + 0x4c, 0x89, 0xe8, //0x00003313 movq %r13, %rax + 0x4d, 0x8d, 0x6b, 0x04, //0x00003316 leaq $4(%r11), %r13 + 0x4d, 0x89, 0x2e, //0x0000331a movq %r13, (%r14) + 0x4c, 0x89, 0xd9, //0x0000331d movq %r11, %rcx + 0x48, 0x85, 0xc0, //0x00003320 testq %rax, %rax + 0x0f, 0x8e, 0xd5, 0xff, 0xff, 0xff, //0x00003323 jle LBB0_659 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003329 .p2align 4, 0x90 + //0x00003330 LBB0_662 + 0x49, 0x8b, 0x32, //0x00003330 movq (%r10), %rsi + 0x49, 0x89, 0xf1, //0x00003333 movq %rsi, %r9 + 0x4c, 0x89, 0xc1, //0x00003336 movq %r8, %rcx + 0x48, 0x85, 0xf6, //0x00003339 testq %rsi, %rsi + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000333c je LBB0_659 + //0x00003342 LBB0_664 + 0x4d, 0x8b, 0x27, //0x00003342 movq (%r15), %r12 + 0x49, 0x8b, 0x57, 0x08, //0x00003345 movq $8(%r15), %rdx + 0x49, 0x39, 0xd5, //0x00003349 cmpq %rdx, %r13 + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000334c jae LBB0_669 + 0x43, 0x8a, 0x04, 0x2c, //0x00003352 movb (%r12,%r13), %al + 0x3c, 0x0d, //0x00003356 cmpb $13, %al + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00003358 je LBB0_669 + 0x3c, 0x20, //0x0000335e cmpb $32, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003360 je LBB0_669 + 0x04, 0xf7, //0x00003366 addb $-9, %al + 0x3c, 0x01, //0x00003368 cmpb $1, %al + 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x0000336a jbe LBB0_669 + 0x4d, 0x89, 0xeb, //0x00003370 movq %r13, %r11 + 0xe9, 0x83, 0x01, 0x00, 0x00, //0x00003373 jmp LBB0_695 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003378 .p2align 4, 0x90 + //0x00003380 LBB0_669 + 0x4d, 0x8d, 0x5d, 0x01, //0x00003380 leaq $1(%r13), %r11 + 0x49, 0x39, 0xd3, //0x00003384 cmpq %rdx, %r11 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00003387 jae LBB0_673 + 0x43, 0x8a, 0x1c, 0x1c, //0x0000338d movb (%r12,%r11), %bl + 0x80, 0xfb, 0x0d, //0x00003391 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00003394 je LBB0_673 + 0x80, 0xfb, 0x20, //0x0000339a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000339d je LBB0_673 + 0x80, 0xc3, 0xf7, //0x000033a3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000033a6 cmpb $1, %bl + 0x0f, 0x87, 0x4c, 0x01, 0x00, 0x00, //0x000033a9 ja LBB0_695 + 0x90, //0x000033af .p2align 4, 0x90 + //0x000033b0 LBB0_673 + 0x4d, 0x8d, 0x5d, 0x02, //0x000033b0 leaq $2(%r13), %r11 + 0x49, 0x39, 0xd3, //0x000033b4 cmpq %rdx, %r11 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000033b7 jae LBB0_677 + 0x43, 0x8a, 0x1c, 0x1c, //0x000033bd movb (%r12,%r11), %bl + 0x80, 0xfb, 0x0d, //0x000033c1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000033c4 je LBB0_677 + 0x80, 0xfb, 0x20, //0x000033ca cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000033cd je LBB0_677 + 0x80, 0xc3, 0xf7, //0x000033d3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000033d6 cmpb $1, %bl + 0x0f, 0x87, 0x1c, 0x01, 0x00, 0x00, //0x000033d9 ja LBB0_695 + 0x90, //0x000033df .p2align 4, 0x90 + //0x000033e0 LBB0_677 + 0x4d, 0x8d, 0x5d, 0x03, //0x000033e0 leaq $3(%r13), %r11 + 0x49, 0x39, 0xd3, //0x000033e4 cmpq %rdx, %r11 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000033e7 jae LBB0_681 + 0x43, 0x8a, 0x1c, 0x1c, //0x000033ed movb (%r12,%r11), %bl + 0x80, 0xfb, 0x0d, //0x000033f1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000033f4 je LBB0_681 + 0x80, 0xfb, 0x20, //0x000033fa cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000033fd je LBB0_681 + 0x80, 0xc3, 0xf7, //0x00003403 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00003406 cmpb $1, %bl + 0x0f, 0x87, 0xec, 0x00, 0x00, 0x00, //0x00003409 ja LBB0_695 + 0x90, //0x0000340f .p2align 4, 0x90 + //0x00003410 LBB0_681 + 0x4d, 0x8d, 0x5d, 0x04, //0x00003410 leaq $4(%r13), %r11 + 0x48, 0x89, 0xd6, //0x00003414 movq %rdx, %rsi + 0x4c, 0x29, 0xde, //0x00003417 subq %r11, %rsi + 0x0f, 0x86, 0x82, 0x19, 0x00, 0x00, //0x0000341a jbe LBB0_1013 + 0x4d, 0x01, 0xe3, //0x00003420 addq %r12, %r11 + 0x48, 0x83, 0xfe, 0x20, //0x00003423 cmpq $32, %rsi + 0x0f, 0x82, 0x59, 0x00, 0x00, 0x00, //0x00003427 jb LBB0_687 + 0x4c, 0x89, 0xc0, //0x0000342d movq %r8, %rax + 0x48, 0x89, 0xd1, //0x00003430 movq %rdx, %rcx + 0x4c, 0x29, 0xe9, //0x00003433 subq %r13, %rcx + 0x48, 0x83, 0xc1, 0xdc, //0x00003436 addq $-36, %rcx + 0x48, 0x89, 0xcf, //0x0000343a movq %rcx, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x0000343d andq $-32, %rdi + 0x4c, 0x01, 0xef, //0x00003441 addq %r13, %rdi + 0x4d, 0x8d, 0x44, 0x3c, 0x24, //0x00003444 leaq $36(%r12,%rdi), %r8 + 0x83, 0xe1, 0x1f, //0x00003449 andl $31, %ecx + 0x90, 0x90, 0x90, 0x90, //0x0000344c .p2align 4, 0x90 + //0x00003450 LBB0_684 + 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x00003450 vmovdqu (%r11), %ymm0 + 0xc4, 0xe2, 0x55, 0x00, 0xc8, //0x00003455 vpshufb %ymm0, %ymm5, %ymm1 + 0xc5, 0xfd, 0x74, 0xc1, //0x0000345a vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x0000345e vpmovmskb %ymm0, %ebx + 0x83, 0xfb, 0xff, //0x00003462 cmpl $-1, %ebx + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00003465 jne LBB0_694 + 0x49, 0x83, 0xc3, 0x20, //0x0000346b addq $32, %r11 + 0x48, 0x83, 0xc6, 0xe0, //0x0000346f addq $-32, %rsi + 0x48, 0x83, 0xfe, 0x1f, //0x00003473 cmpq $31, %rsi + 0x0f, 0x87, 0xd3, 0xff, 0xff, 0xff, //0x00003477 ja LBB0_684 + 0x48, 0x89, 0xce, //0x0000347d movq %rcx, %rsi + 0x4d, 0x89, 0xc3, //0x00003480 movq %r8, %r11 + 0x49, 0x89, 0xc0, //0x00003483 movq %rax, %r8 + //0x00003486 LBB0_687 + 0x48, 0x85, 0xf6, //0x00003486 testq %rsi, %rsi + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003489 movabsq $4294977024, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00003493 je LBB0_693 + 0x49, 0x8d, 0x3c, 0x33, //0x00003499 leaq (%r11,%rsi), %rdi + 0x49, 0xff, 0xc3, //0x0000349d incq %r11 + //0x000034a0 LBB0_689 + 0x41, 0x0f, 0xbe, 0x5b, 0xff, //0x000034a0 movsbl $-1(%r11), %ebx + 0x83, 0xfb, 0x20, //0x000034a5 cmpl $32, %ebx + 0x0f, 0x87, 0xcf, 0x0c, 0x00, 0x00, //0x000034a8 ja LBB0_869 + 0x48, 0x0f, 0xa3, 0xd8, //0x000034ae btq %rbx, %rax + 0x0f, 0x83, 0xc5, 0x0c, 0x00, 0x00, //0x000034b2 jae LBB0_869 + 0x48, 0xff, 0xce, //0x000034b8 decq %rsi + 0x49, 0xff, 0xc3, //0x000034bb incq %r11 + 0x48, 0x85, 0xf6, //0x000034be testq %rsi, %rsi + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000034c1 jne LBB0_689 + 0x49, 0x89, 0xfb, //0x000034c7 movq %rdi, %r11 + //0x000034ca LBB0_693 + 0x4d, 0x29, 0xe3, //0x000034ca subq %r12, %r11 + 0x49, 0x39, 0xd3, //0x000034cd cmpq %rdx, %r11 + 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x000034d0 jb LBB0_695 + 0xe9, 0xca, 0x18, 0x00, 0x00, //0x000034d6 jmp LBB0_1014 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000034db .p2align 4, 0x90 + //0x000034e0 LBB0_694 + 0x4d, 0x29, 0xe3, //0x000034e0 subq %r12, %r11 + 0xf7, 0xd3, //0x000034e3 notl %ebx + 0x48, 0x63, 0xcb, //0x000034e5 movslq %ebx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000034e8 bsfq %rcx, %rcx + 0x49, 0x01, 0xcb, //0x000034ec addq %rcx, %r11 + 0x49, 0x89, 0xc0, //0x000034ef movq %rax, %r8 + 0x49, 0x39, 0xd3, //0x000034f2 cmpq %rdx, %r11 + 0x0f, 0x83, 0xaa, 0x18, 0x00, 0x00, //0x000034f5 jae LBB0_1014 + //0x000034fb LBB0_695 + 0x4d, 0x8d, 0x6b, 0x01, //0x000034fb leaq $1(%r11), %r13 + 0x4d, 0x89, 0x2e, //0x000034ff movq %r13, (%r14) + 0x43, 0x0f, 0xbe, 0x3c, 0x1c, //0x00003502 movsbl (%r12,%r11), %edi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003507 movq $-1, %rcx + 0x85, 0xff, //0x0000350e testl %edi, %edi + 0x0f, 0x84, 0xe8, 0xfd, 0xff, 0xff, //0x00003510 je LBB0_659 + 0x49, 0x8d, 0x71, 0xff, //0x00003516 leaq $-1(%r9), %rsi + 0x43, 0x8b, 0x1c, 0xca, //0x0000351a movl (%r10,%r9,8), %ebx + 0x49, 0x83, 0xf8, 0xff, //0x0000351e cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xc3, //0x00003522 cmoveq %r11, %r8 + 0xff, 0xcb, //0x00003526 decl %ebx + 0x83, 0xfb, 0x05, //0x00003528 cmpl $5, %ebx + 0x0f, 0x87, 0xe7, 0x01, 0x00, 0x00, //0x0000352b ja LBB0_724 + 0x48, 0x8d, 0x05, 0x10, 0x26, 0x00, 0x00, //0x00003531 leaq $9744(%rip), %rax /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x14, 0x98, //0x00003538 movslq (%rax,%rbx,4), %rdx + 0x48, 0x01, 0xc2, //0x0000353c addq %rax, %rdx + 0xff, 0xe2, //0x0000353f jmpq *%rdx + //0x00003541 LBB0_698 + 0x83, 0xff, 0x2c, //0x00003541 cmpl $44, %edi + 0x0f, 0x84, 0x77, 0x02, 0x00, 0x00, //0x00003544 je LBB0_733 + 0x83, 0xff, 0x5d, //0x0000354a cmpl $93, %edi + 0x0f, 0x84, 0x57, 0x02, 0x00, 0x00, //0x0000354d je LBB0_700 + 0xe9, 0x9f, 0xfd, 0xff, 0xff, //0x00003553 jmp LBB0_658 + //0x00003558 LBB0_701 + 0x40, 0x80, 0xff, 0x5d, //0x00003558 cmpb $93, %dil + 0x0f, 0x84, 0x48, 0x02, 0x00, 0x00, //0x0000355c je LBB0_700 + 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00003562 movq $1, (%r10,%r9,8) + 0x83, 0xff, 0x7b, //0x0000356a cmpl $123, %edi + 0x0f, 0x86, 0xb1, 0x01, 0x00, 0x00, //0x0000356d jbe LBB0_703 + 0xe9, 0x7f, 0xfd, 0xff, 0xff, //0x00003573 jmp LBB0_658 + //0x00003578 LBB0_704 + 0x40, 0x80, 0xff, 0x22, //0x00003578 cmpb $34, %dil + 0x0f, 0x85, 0x75, 0xfd, 0xff, 0xff, //0x0000357c jne LBB0_658 + 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x00003582 movq $4, (%r10,%r9,8) + 0x49, 0x8b, 0x57, 0x08, //0x0000358a movq $8(%r15), %rdx + 0x48, 0x89, 0xd1, //0x0000358e movq %rdx, %rcx + 0x4c, 0x29, 0xe9, //0x00003591 subq %r13, %rcx + 0x0f, 0x84, 0x06, 0x21, 0x00, 0x00, //0x00003594 je LBB0_1109 + 0x4c, 0x89, 0x6c, 0x24, 0x20, //0x0000359a movq %r13, $32(%rsp) + 0x4b, 0x8d, 0x1c, 0x2c, //0x0000359f leaq (%r12,%r13), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x000035a3 cmpq $64, %rcx + 0x48, 0x89, 0x54, 0x24, 0x18, //0x000035a7 movq %rdx, $24(%rsp) + 0x0f, 0x82, 0xf1, 0x12, 0x00, 0x00, //0x000035ac jb LBB0_949 + 0x4c, 0x89, 0x04, 0x24, //0x000035b2 movq %r8, (%rsp) + 0x4d, 0x89, 0xd0, //0x000035b6 movq %r10, %r8 + 0x41, 0x89, 0xca, //0x000035b9 movl %ecx, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x000035bc andl $63, %r10d + 0x4c, 0x29, 0xda, //0x000035c0 subq %r11, %rdx + 0x48, 0x83, 0xc2, 0xbf, //0x000035c3 addq $-65, %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x000035c7 andq $-64, %rdx + 0x4c, 0x01, 0xda, //0x000035cb addq %r11, %rdx + 0x4d, 0x8d, 0x6c, 0x14, 0x41, //0x000035ce leaq $65(%r12,%rdx), %r13 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000035d3 movq $-1, %r9 + 0x45, 0x31, 0xf6, //0x000035da xorl %r14d, %r14d + 0x90, 0x90, 0x90, //0x000035dd .p2align 4, 0x90 + //0x000035e0 LBB0_708 + 0xc5, 0xfe, 0x6f, 0x03, //0x000035e0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x000035e4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x000035e9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x000035ed vpmovmskb %ymm2, %edx + 0xc5, 0xf5, 0x74, 0xd6, //0x000035f1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x000035f5 vpmovmskb %ymm2, %edi + 0xc5, 0xfd, 0x74, 0xc7, //0x000035f9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x000035fd vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00003601 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00003605 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe7, 0x20, //0x00003609 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x20, //0x0000360d shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00003611 orq %rax, %rsi + 0x49, 0x83, 0xf9, 0xff, //0x00003614 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003618 jne LBB0_710 + 0x48, 0x85, 0xf6, //0x0000361e testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00003621 jne LBB0_718 + //0x00003627 LBB0_710 + 0x48, 0x09, 0xd7, //0x00003627 orq %rdx, %rdi + 0x48, 0x89, 0xf0, //0x0000362a movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x0000362d orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00003630 jne LBB0_719 + //0x00003636 LBB0_711 + 0x48, 0x85, 0xff, //0x00003636 testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x00003639 jne LBB0_720 + //0x0000363f LBB0_712 + 0x48, 0x83, 0xc1, 0xc0, //0x0000363f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00003643 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00003647 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x0000364b ja LBB0_708 + 0xe9, 0x2e, 0x0f, 0x00, 0x00, //0x00003651 jmp LBB0_713 + //0x00003656 LBB0_718 + 0x48, 0x89, 0xd8, //0x00003656 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x00003659 subq %r12, %rax + 0x4c, 0x0f, 0xbc, 0xce, //0x0000365c bsfq %rsi, %r9 + 0x49, 0x01, 0xc1, //0x00003660 addq %rax, %r9 + 0x48, 0x09, 0xd7, //0x00003663 orq %rdx, %rdi + 0x48, 0x89, 0xf0, //0x00003666 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00003669 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000366c je LBB0_711 + //0x00003672 LBB0_719 + 0x4c, 0x89, 0xf0, //0x00003672 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00003675 notq %rax + 0x48, 0x21, 0xf0, //0x00003678 andq %rsi, %rax + 0x4c, 0x8d, 0x3c, 0x00, //0x0000367b leaq (%rax,%rax), %r15 + 0x4d, 0x09, 0xf7, //0x0000367f orq %r14, %r15 + 0x4c, 0x89, 0xfa, //0x00003682 movq %r15, %rdx + 0x48, 0xf7, 0xd2, //0x00003685 notq %rdx + 0x48, 0x21, 0xf2, //0x00003688 andq %rsi, %rdx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000368b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf2, //0x00003695 andq %rsi, %rdx + 0x45, 0x31, 0xf6, //0x00003698 xorl %r14d, %r14d + 0x48, 0x01, 0xc2, //0x0000369b addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc6, //0x0000369e setb %r14b + 0x48, 0x01, 0xd2, //0x000036a2 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000036a5 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x000036af xorq %rax, %rdx + 0x4c, 0x21, 0xfa, //0x000036b2 andq %r15, %rdx + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000036b5 movq $16(%rsp), %r15 + 0x48, 0xf7, 0xd2, //0x000036ba notq %rdx + 0x48, 0x21, 0xd7, //0x000036bd andq %rdx, %rdi + 0x48, 0x85, 0xff, //0x000036c0 testq %rdi, %rdi + 0x0f, 0x84, 0x76, 0xff, 0xff, 0xff, //0x000036c3 je LBB0_712 + //0x000036c9 LBB0_720 + 0x48, 0x0f, 0xbc, 0xc7, //0x000036c9 bsfq %rdi, %rax + 0x4c, 0x29, 0xe3, //0x000036cd subq %r12, %rbx + 0x4c, 0x8d, 0x6c, 0x03, 0x01, //0x000036d0 leaq $1(%rbx,%rax), %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000036d5 movq $8(%rsp), %r14 + 0x4d, 0x89, 0xc2, //0x000036da movq %r8, %r10 + 0x4c, 0x8b, 0x04, 0x24, //0x000036dd movq (%rsp), %r8 + 0x4d, 0x85, 0xed, //0x000036e1 testq %r13, %r13 + 0x0f, 0x88, 0xdc, 0x16, 0x00, 0x00, //0x000036e4 js LBB0_978 + //0x000036ea LBB0_721 + 0x4d, 0x89, 0x2e, //0x000036ea movq %r13, (%r14) + 0x4c, 0x89, 0xd9, //0x000036ed movq %r11, %rcx + 0x48, 0x83, 0x7c, 0x24, 0x20, 0x00, //0x000036f0 cmpq $0, $32(%rsp) + 0x0f, 0x8f, 0x34, 0xfc, 0xff, 0xff, //0x000036f6 jg LBB0_662 + 0xe9, 0xfd, 0xfb, 0xff, 0xff, //0x000036fc jmp LBB0_659 + //0x00003701 LBB0_722 + 0x40, 0x80, 0xff, 0x3a, //0x00003701 cmpb $58, %dil + 0x0f, 0x85, 0xec, 0xfb, 0xff, 0xff, //0x00003705 jne LBB0_658 + 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x0000370b movq $0, (%r10,%r9,8) + 0xe9, 0x18, 0xfc, 0xff, 0xff, //0x00003713 jmp LBB0_662 + //0x00003718 LBB0_724 + 0x49, 0x89, 0x32, //0x00003718 movq %rsi, (%r10) + 0x83, 0xff, 0x7b, //0x0000371b cmpl $123, %edi + 0x0f, 0x87, 0xd3, 0xfb, 0xff, 0xff, //0x0000371e ja LBB0_658 + //0x00003724 LBB0_703 + 0x4f, 0x8d, 0x0c, 0x1c, //0x00003724 leaq (%r12,%r11), %r9 + 0x89, 0xf8, //0x00003728 movl %edi, %eax + 0x48, 0x8d, 0x15, 0x2f, 0x24, 0x00, 0x00, //0x0000372a leaq $9263(%rip), %rdx /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x00003731 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x00003735 addq %rdx, %rax + 0xff, 0xe0, //0x00003738 jmpq *%rax + //0x0000373a LBB0_729 + 0x4d, 0x8b, 0x57, 0x08, //0x0000373a movq $8(%r15), %r10 + 0x4d, 0x29, 0xda, //0x0000373e subq %r11, %r10 + 0x0f, 0x84, 0x9a, 0x16, 0x00, 0x00, //0x00003741 je LBB0_1016 + 0x4c, 0x89, 0x04, 0x24, //0x00003747 movq %r8, (%rsp) + 0x41, 0x80, 0x39, 0x30, //0x0000374b cmpb $48, (%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x0000374f jne LBB0_758 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003755 movl $1, %r8d + 0x49, 0x83, 0xfa, 0x01, //0x0000375b cmpq $1, %r10 + 0x0f, 0x85, 0x1d, 0x02, 0x00, 0x00, //0x0000375f jne LBB0_756 + //0x00003765 LBB0_732 + 0x4c, 0x89, 0xe9, //0x00003765 movq %r13, %rcx + 0xe9, 0xeb, 0x09, 0x00, 0x00, //0x00003768 jmp LBB0_867 + //0x0000376d LBB0_725 + 0x83, 0xff, 0x2c, //0x0000376d cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00003770 jne LBB0_726 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00003776 cmpq $4095, %r9 + 0x0f, 0x8f, 0x2e, 0x16, 0x00, 0x00, //0x0000377d jg LBB0_1097 + 0x49, 0x8d, 0x41, 0x01, //0x00003783 leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x00003787 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x0000378a movq $3, $8(%r10,%r9,8) + 0xe9, 0x98, 0xfb, 0xff, 0xff, //0x00003793 jmp LBB0_662 + //0x00003798 LBB0_727 + 0x83, 0xff, 0x22, //0x00003798 cmpl $34, %edi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x0000379b je LBB0_737 + //0x000037a1 LBB0_726 + 0x83, 0xff, 0x7d, //0x000037a1 cmpl $125, %edi + 0x0f, 0x85, 0x4d, 0xfb, 0xff, 0xff, //0x000037a4 jne LBB0_658 + //0x000037aa LBB0_700 + 0x49, 0x89, 0x32, //0x000037aa movq %rsi, (%r10) + 0x49, 0x89, 0xf1, //0x000037ad movq %rsi, %r9 + 0x4c, 0x89, 0xc1, //0x000037b0 movq %r8, %rcx + 0x48, 0x85, 0xf6, //0x000037b3 testq %rsi, %rsi + 0x0f, 0x85, 0x86, 0xfb, 0xff, 0xff, //0x000037b6 jne LBB0_664 + 0xe9, 0x3d, 0xfb, 0xff, 0xff, //0x000037bc jmp LBB0_659 + //0x000037c1 LBB0_733 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000037c1 cmpq $4095, %r9 + 0x0f, 0x8f, 0xe3, 0x15, 0x00, 0x00, //0x000037c8 jg LBB0_1097 + 0x49, 0x8d, 0x41, 0x01, //0x000037ce leaq $1(%r9), %rax + 0x49, 0x89, 0x02, //0x000037d2 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000037d5 movq $0, $8(%r10,%r9,8) + 0xe9, 0x4d, 0xfb, 0xff, 0xff, //0x000037de jmp LBB0_662 + //0x000037e3 LBB0_737 + 0x4c, 0x89, 0x04, 0x24, //0x000037e3 movq %r8, (%rsp) + 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x000037e7 movq $2, (%r10,%r9,8) + 0x4d, 0x8b, 0x47, 0x08, //0x000037ef movq $8(%r15), %r8 + 0x4c, 0x89, 0xc1, //0x000037f3 movq %r8, %rcx + 0x4c, 0x29, 0xe9, //0x000037f6 subq %r13, %rcx + 0x0f, 0x84, 0xbb, 0x1e, 0x00, 0x00, //0x000037f9 je LBB0_1116 + 0x4c, 0x89, 0x6c, 0x24, 0x20, //0x000037ff movq %r13, $32(%rsp) + 0x4b, 0x8d, 0x1c, 0x2c, //0x00003804 leaq (%r12,%r13), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00003808 cmpq $64, %rcx + 0x0f, 0x82, 0x2e, 0x11, 0x00, 0x00, //0x0000380c jb LBB0_957 + 0x41, 0x89, 0xca, //0x00003812 movl %ecx, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00003815 andl $63, %r10d + 0x4c, 0x89, 0xc0, //0x00003819 movq %r8, %rax + 0x4c, 0x29, 0xd8, //0x0000381c subq %r11, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x0000381f addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00003823 andq $-64, %rax + 0x4c, 0x01, 0xd8, //0x00003827 addq %r11, %rax + 0x4d, 0x8d, 0x6c, 0x04, 0x41, //0x0000382a leaq $65(%r12,%rax), %r13 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000382f movq $-1, %r9 + 0x45, 0x31, 0xf6, //0x00003836 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003839 .p2align 4, 0x90 + //0x00003840 LBB0_740 + 0xc5, 0xfe, 0x6f, 0x03, //0x00003840 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00003844 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00003849 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x0000384d vpmovmskb %ymm2, %edx + 0xc5, 0xf5, 0x74, 0xd6, //0x00003851 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00003855 vpmovmskb %ymm2, %edi + 0xc5, 0xfd, 0x74, 0xc7, //0x00003859 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000385d vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00003861 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00003865 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe7, 0x20, //0x00003869 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x20, //0x0000386d shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00003871 orq %rax, %rsi + 0x49, 0x83, 0xf9, 0xff, //0x00003874 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003878 jne LBB0_742 + 0x48, 0x85, 0xf6, //0x0000387e testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00003881 jne LBB0_750 + //0x00003887 LBB0_742 + 0x48, 0x09, 0xd7, //0x00003887 orq %rdx, %rdi + 0x48, 0x89, 0xf0, //0x0000388a movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x0000388d orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00003890 jne LBB0_751 + //0x00003896 LBB0_743 + 0x48, 0x85, 0xff, //0x00003896 testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x00003899 jne LBB0_752 + //0x0000389f LBB0_744 + 0x48, 0x83, 0xc1, 0xc0, //0x0000389f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x000038a3 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000038a7 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x000038ab ja LBB0_740 + 0xe9, 0x6f, 0x0e, 0x00, 0x00, //0x000038b1 jmp LBB0_745 + //0x000038b6 LBB0_750 + 0x48, 0x89, 0xd8, //0x000038b6 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x000038b9 subq %r12, %rax + 0x4c, 0x0f, 0xbc, 0xce, //0x000038bc bsfq %rsi, %r9 + 0x49, 0x01, 0xc1, //0x000038c0 addq %rax, %r9 + 0x48, 0x09, 0xd7, //0x000038c3 orq %rdx, %rdi + 0x48, 0x89, 0xf0, //0x000038c6 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000038c9 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x000038cc je LBB0_743 + //0x000038d2 LBB0_751 + 0x4c, 0x89, 0xf0, //0x000038d2 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x000038d5 notq %rax + 0x48, 0x21, 0xf0, //0x000038d8 andq %rsi, %rax + 0x4c, 0x8d, 0x3c, 0x00, //0x000038db leaq (%rax,%rax), %r15 + 0x4d, 0x09, 0xf7, //0x000038df orq %r14, %r15 + 0x4c, 0x89, 0xfa, //0x000038e2 movq %r15, %rdx + 0x48, 0xf7, 0xd2, //0x000038e5 notq %rdx + 0x48, 0x21, 0xf2, //0x000038e8 andq %rsi, %rdx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000038eb movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf2, //0x000038f5 andq %rsi, %rdx + 0x45, 0x31, 0xf6, //0x000038f8 xorl %r14d, %r14d + 0x48, 0x01, 0xc2, //0x000038fb addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc6, //0x000038fe setb %r14b + 0x48, 0x01, 0xd2, //0x00003902 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003905 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x0000390f xorq %rax, %rdx + 0x4c, 0x21, 0xfa, //0x00003912 andq %r15, %rdx + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00003915 movq $16(%rsp), %r15 + 0x48, 0xf7, 0xd2, //0x0000391a notq %rdx + 0x48, 0x21, 0xd7, //0x0000391d andq %rdx, %rdi + 0x48, 0x85, 0xff, //0x00003920 testq %rdi, %rdi + 0x0f, 0x84, 0x76, 0xff, 0xff, 0xff, //0x00003923 je LBB0_744 + //0x00003929 LBB0_752 + 0x48, 0x0f, 0xbc, 0xc7, //0x00003929 bsfq %rdi, %rax + 0x4c, 0x29, 0xe3, //0x0000392d subq %r12, %rbx + 0x4c, 0x8d, 0x6c, 0x03, 0x01, //0x00003930 leaq $1(%rbx,%rax), %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00003935 movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x0000393a movq $40(%rsp), %r10 + 0x4d, 0x85, 0xed, //0x0000393f testq %r13, %r13 + 0x0f, 0x88, 0x56, 0x1b, 0x00, 0x00, //0x00003942 js LBB0_1082 + //0x00003948 LBB0_753 + 0x4d, 0x89, 0x2e, //0x00003948 movq %r13, (%r14) + 0x4c, 0x89, 0xd9, //0x0000394b movq %r11, %rcx + 0x48, 0x83, 0x7c, 0x24, 0x20, 0x00, //0x0000394e cmpq $0, $32(%rsp) + 0x4c, 0x8b, 0x04, 0x24, //0x00003954 movq (%rsp), %r8 + 0x0f, 0x8e, 0xa0, 0xf9, 0xff, 0xff, //0x00003958 jle LBB0_659 + 0x49, 0x8b, 0x02, //0x0000395e movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00003961 cmpq $4095, %rax + 0x0f, 0x8f, 0x44, 0x14, 0x00, 0x00, //0x00003967 jg LBB0_1097 + 0x48, 0x8d, 0x48, 0x01, //0x0000396d leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00003971 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00003974 movq $4, $8(%r10,%rax,8) + 0xe9, 0xae, 0xf9, 0xff, 0xff, //0x0000397d jmp LBB0_662 + //0x00003982 LBB0_756 + 0x43, 0x8a, 0x0c, 0x2c, //0x00003982 movb (%r12,%r13), %cl + 0x80, 0xc1, 0xd2, //0x00003986 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00003989 cmpb $55, %cl + 0x0f, 0x87, 0xd3, 0xfd, 0xff, 0xff, //0x0000398c ja LBB0_732 + 0x0f, 0xb6, 0xc1, //0x00003992 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003995 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000399f btq %rax, %rcx + 0x4c, 0x89, 0xe9, //0x000039a3 movq %r13, %rcx + 0x0f, 0x83, 0xac, 0x07, 0x00, 0x00, //0x000039a6 jae LBB0_867 + //0x000039ac LBB0_758 + 0x4c, 0x89, 0x6c, 0x24, 0x20, //0x000039ac movq %r13, $32(%rsp) + 0x49, 0x83, 0xfa, 0x20, //0x000039b1 cmpq $32, %r10 + 0x0f, 0x82, 0x4d, 0x0f, 0x00, 0x00, //0x000039b5 jb LBB0_954 + 0x49, 0x8d, 0x4a, 0xe0, //0x000039bb leaq $-32(%r10), %rcx + 0x48, 0x89, 0xc8, //0x000039bf movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x000039c2 andq $-32, %rax + 0x4e, 0x8d, 0x44, 0x08, 0x20, //0x000039c6 leaq $32(%rax,%r9), %r8 + 0x83, 0xe1, 0x1f, //0x000039cb andl $31, %ecx + 0x48, 0x89, 0x4c, 0x24, 0x18, //0x000039ce movq %rcx, $24(%rsp) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000039d3 movq $-1, %r13 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000039da movq $-1, %r15 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000039e1 movq $-1, %r12 + 0x4c, 0x89, 0xcb, //0x000039e8 movq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039eb .p2align 4, 0x90 + //0x000039f0 LBB0_760 + 0xc5, 0xfe, 0x6f, 0x03, //0x000039f0 vmovdqu (%rbx), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xc8, //0x000039f4 vpcmpgtb %ymm8, %ymm0, %ymm1 + 0xc5, 0xb5, 0x64, 0xd0, //0x000039f9 vpcmpgtb %ymm0, %ymm9, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x000039fd vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0xad, 0x74, 0xd0, //0x00003a01 vpcmpeqb %ymm0, %ymm10, %ymm2 + 0xc5, 0xa5, 0x74, 0xd8, //0x00003a05 vpcmpeqb %ymm0, %ymm11, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00003a09 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0x9d, 0xeb, 0xd8, //0x00003a0d vpor %ymm0, %ymm12, %ymm3 + 0xc5, 0x95, 0x74, 0xc0, //0x00003a11 vpcmpeqb %ymm0, %ymm13, %ymm0 + 0xc5, 0x7d, 0xd7, 0xf0, //0x00003a15 vpmovmskb %ymm0, %r14d + 0xc5, 0x8d, 0x74, 0xdb, //0x00003a19 vpcmpeqb %ymm3, %ymm14, %ymm3 + 0xc5, 0xfd, 0xd7, 0xf3, //0x00003a1d vpmovmskb %ymm3, %esi + 0xc5, 0xfd, 0xd7, 0xfa, //0x00003a21 vpmovmskb %ymm2, %edi + 0xc5, 0xe5, 0xeb, 0xc0, //0x00003a25 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x00003a29 vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00003a2d vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00003a31 vpmovmskb %ymm0, %eax + 0x48, 0xf7, 0xd0, //0x00003a35 notq %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x00003a38 bsfq %rax, %rcx + 0x83, 0xf9, 0x20, //0x00003a3c cmpl $32, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00003a3f je LBB0_762 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003a45 movl $-1, %eax + 0xd3, 0xe0, //0x00003a4a shll %cl, %eax + 0xf7, 0xd0, //0x00003a4c notl %eax + 0x41, 0x21, 0xc6, //0x00003a4e andl %eax, %r14d + 0x21, 0xc6, //0x00003a51 andl %eax, %esi + 0x21, 0xf8, //0x00003a53 andl %edi, %eax + 0x89, 0xc7, //0x00003a55 movl %eax, %edi + //0x00003a57 LBB0_762 + 0x41, 0x8d, 0x56, 0xff, //0x00003a57 leal $-1(%r14), %edx + 0x44, 0x21, 0xf2, //0x00003a5b andl %r14d, %edx + 0x0f, 0x85, 0x81, 0x0b, 0x00, 0x00, //0x00003a5e jne LBB0_921 + 0x8d, 0x56, 0xff, //0x00003a64 leal $-1(%rsi), %edx + 0x21, 0xf2, //0x00003a67 andl %esi, %edx + 0x0f, 0x85, 0x76, 0x0b, 0x00, 0x00, //0x00003a69 jne LBB0_921 + 0x8d, 0x57, 0xff, //0x00003a6f leal $-1(%rdi), %edx + 0x21, 0xfa, //0x00003a72 andl %edi, %edx + 0x0f, 0x85, 0x6b, 0x0b, 0x00, 0x00, //0x00003a74 jne LBB0_921 + 0x45, 0x85, 0xf6, //0x00003a7a testl %r14d, %r14d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003a7d je LBB0_768 + 0x48, 0x89, 0xd8, //0x00003a83 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00003a86 subq %r9, %rax + 0x41, 0x0f, 0xbc, 0xd6, //0x00003a89 bsfl %r14d, %edx + 0x48, 0x01, 0xc2, //0x00003a8d addq %rax, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x00003a90 cmpq $-1, %r12 + 0x0f, 0x85, 0x28, 0x0d, 0x00, 0x00, //0x00003a94 jne LBB0_942 + 0x49, 0x89, 0xd4, //0x00003a9a movq %rdx, %r12 + //0x00003a9d LBB0_768 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00003a9d movq $8(%rsp), %r14 + 0x85, 0xf6, //0x00003aa2 testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003aa4 je LBB0_771 + 0x48, 0x89, 0xd8, //0x00003aaa movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00003aad subq %r9, %rax + 0x0f, 0xbc, 0xd6, //0x00003ab0 bsfl %esi, %edx + 0x48, 0x01, 0xc2, //0x00003ab3 addq %rax, %rdx + 0x49, 0x83, 0xff, 0xff, //0x00003ab6 cmpq $-1, %r15 + 0x0f, 0x85, 0xf7, 0x0c, 0x00, 0x00, //0x00003aba jne LBB0_941 + 0x49, 0x89, 0xd7, //0x00003ac0 movq %rdx, %r15 + //0x00003ac3 LBB0_771 + 0x85, 0xff, //0x00003ac3 testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003ac5 je LBB0_774 + 0x48, 0x89, 0xd8, //0x00003acb movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00003ace subq %r9, %rax + 0x0f, 0xbc, 0xd7, //0x00003ad1 bsfl %edi, %edx + 0x48, 0x01, 0xc2, //0x00003ad4 addq %rax, %rdx + 0x49, 0x83, 0xfd, 0xff, //0x00003ad7 cmpq $-1, %r13 + 0x0f, 0x85, 0xd6, 0x0c, 0x00, 0x00, //0x00003adb jne LBB0_941 + 0x49, 0x89, 0xd5, //0x00003ae1 movq %rdx, %r13 + //0x00003ae4 LBB0_774 + 0x83, 0xf9, 0x20, //0x00003ae4 cmpl $32, %ecx + 0x0f, 0x85, 0x69, 0x02, 0x00, 0x00, //0x00003ae7 jne LBB0_807 + 0x48, 0x83, 0xc3, 0x20, //0x00003aed addq $32, %rbx + 0x49, 0x83, 0xc2, 0xe0, //0x00003af1 addq $-32, %r10 + 0x49, 0x83, 0xfa, 0x1f, //0x00003af5 cmpq $31, %r10 + 0x0f, 0x87, 0xf1, 0xfe, 0xff, 0xff, //0x00003af9 ja LBB0_760 + 0xc5, 0xf8, 0x77, //0x00003aff vzeroupper + 0x4c, 0x8b, 0x54, 0x24, 0x18, //0x00003b02 movq $24(%rsp), %r10 + //0x00003b07 LBB0_777 + 0x49, 0x83, 0xfa, 0x10, //0x00003b07 cmpq $16, %r10 + 0xc5, 0xfe, 0x6f, 0x2d, 0xed, 0xc4, 0xff, 0xff, //0x00003b0b vmovdqu $-15123(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x65, 0xc5, 0xff, 0xff, //0x00003b13 vmovdqu $-15003(%rip), %ymm6 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x7d, 0xc5, 0xff, 0xff, //0x00003b1b vmovdqu $-14979(%rip), %ymm7 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xf5, 0xc5, 0xff, 0xff, //0x00003b23 vmovdqu $-14859(%rip), %ymm8 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x0d, 0xc6, 0xff, 0xff, //0x00003b2b vmovdqu $-14835(%rip), %ymm9 /* LCPI0_13+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x25, 0xc6, 0xff, 0xff, //0x00003b33 vmovdqu $-14811(%rip), %ymm10 /* LCPI0_14+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x3d, 0xc6, 0xff, 0xff, //0x00003b3b vmovdqu $-14787(%rip), %ymm11 /* LCPI0_15+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xf5, 0xc4, 0xff, 0xff, //0x00003b43 vmovdqu $-15115(%rip), %ymm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x4d, 0xc6, 0xff, 0xff, //0x00003b4b vmovdqu $-14771(%rip), %ymm13 /* LCPI0_16+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x65, 0xc6, 0xff, 0xff, //0x00003b53 vmovdqu $-14747(%rip), %ymm14 /* LCPI0_17+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0xad, 0xc6, 0xff, 0xff, //0x00003b5b vmovdqu $-14675(%rip), %xmm15 /* LCPI0_18+0(%rip) */ + 0x0f, 0x82, 0x56, 0x01, 0x00, 0x00, //0x00003b63 jb LBB0_796 + 0x4d, 0x8d, 0x72, 0xf0, //0x00003b69 leaq $-16(%r10), %r14 + 0x4c, 0x89, 0xf0, //0x00003b6d movq %r14, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00003b70 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x00, 0x10, //0x00003b74 leaq $16(%rax,%r8), %rax + 0x48, 0x89, 0x44, 0x24, 0x18, //0x00003b79 movq %rax, $24(%rsp) + 0x41, 0x83, 0xe6, 0x0f, //0x00003b7e andl $15, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b82 .p2align 4, 0x90 + //0x00003b90 LBB0_779 + 0xc4, 0xc1, 0x7a, 0x6f, 0x00, //0x00003b90 vmovdqu (%r8), %xmm0 + 0xc4, 0xc1, 0x79, 0x64, 0xcf, //0x00003b95 vpcmpgtb %xmm15, %xmm0, %xmm1 + 0xc5, 0xfa, 0x6f, 0x15, 0x7e, 0xc6, 0xff, 0xff, //0x00003b9a vmovdqu $-14722(%rip), %xmm2 /* LCPI0_19+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00003ba2 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00003ba6 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0x7e, 0xc6, 0xff, 0xff, //0x00003baa vpcmpeqb $-14722(%rip), %xmm0, %xmm2 /* LCPI0_20+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0x86, 0xc6, 0xff, 0xff, //0x00003bb2 vpcmpeqb $-14714(%rip), %xmm0, %xmm3 /* LCPI0_21+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x00003bba vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0x2a, 0xc6, 0xff, 0xff, //0x00003bbe vpor $-14806(%rip), %xmm0, %xmm3 /* LCPI0_5+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0x82, 0xc6, 0xff, 0xff, //0x00003bc6 vpcmpeqb $-14718(%rip), %xmm0, %xmm0 /* LCPI0_22+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x8a, 0xc6, 0xff, 0xff, //0x00003bce vpcmpeqb $-14710(%rip), %xmm3, %xmm3 /* LCPI0_23+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00003bd6 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00003bda vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00003bde vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00003be2 vpmovmskb %xmm0, %ebx + 0xc5, 0xf9, 0xd7, 0xf3, //0x00003be6 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xfa, //0x00003bea vpmovmskb %xmm2, %edi + 0xc5, 0xf9, 0xd7, 0xc1, //0x00003bee vpmovmskb %xmm1, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003bf2 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x00003bf7 xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x00003bfa bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x00003bfe cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00003c01 je LBB0_781 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003c07 movl $-1, %eax + 0xd3, 0xe0, //0x00003c0c shll %cl, %eax + 0xf7, 0xd0, //0x00003c0e notl %eax + 0x21, 0xc3, //0x00003c10 andl %eax, %ebx + 0x21, 0xc6, //0x00003c12 andl %eax, %esi + 0x21, 0xf8, //0x00003c14 andl %edi, %eax + 0x89, 0xc7, //0x00003c16 movl %eax, %edi + //0x00003c18 LBB0_781 + 0x8d, 0x53, 0xff, //0x00003c18 leal $-1(%rbx), %edx + 0x21, 0xda, //0x00003c1b andl %ebx, %edx + 0x0f, 0x85, 0x7b, 0x0b, 0x00, 0x00, //0x00003c1d jne LBB0_940 + 0x8d, 0x56, 0xff, //0x00003c23 leal $-1(%rsi), %edx + 0x21, 0xf2, //0x00003c26 andl %esi, %edx + 0x0f, 0x85, 0x70, 0x0b, 0x00, 0x00, //0x00003c28 jne LBB0_940 + 0x8d, 0x57, 0xff, //0x00003c2e leal $-1(%rdi), %edx + 0x21, 0xfa, //0x00003c31 andl %edi, %edx + 0x0f, 0x85, 0x65, 0x0b, 0x00, 0x00, //0x00003c33 jne LBB0_940 + 0x85, 0xdb, //0x00003c39 testl %ebx, %ebx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003c3b je LBB0_787 + 0x4c, 0x89, 0xc0, //0x00003c41 movq %r8, %rax + 0x4c, 0x29, 0xc8, //0x00003c44 subq %r9, %rax + 0x0f, 0xbc, 0xdb, //0x00003c47 bsfl %ebx, %ebx + 0x48, 0x01, 0xc3, //0x00003c4a addq %rax, %rbx + 0x49, 0x83, 0xfc, 0xff, //0x00003c4d cmpq $-1, %r12 + 0x0f, 0x85, 0xa3, 0x0b, 0x00, 0x00, //0x00003c51 jne LBB0_945 + 0x49, 0x89, 0xdc, //0x00003c57 movq %rbx, %r12 + //0x00003c5a LBB0_787 + 0x85, 0xf6, //0x00003c5a testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003c5c je LBB0_790 + 0x4c, 0x89, 0xc0, //0x00003c62 movq %r8, %rax + 0x4c, 0x29, 0xc8, //0x00003c65 subq %r9, %rax + 0x0f, 0xbc, 0xf6, //0x00003c68 bsfl %esi, %esi + 0x48, 0x01, 0xc6, //0x00003c6b addq %rax, %rsi + 0x49, 0x83, 0xff, 0xff, //0x00003c6e cmpq $-1, %r15 + 0x0f, 0x85, 0x5a, 0x0b, 0x00, 0x00, //0x00003c72 jne LBB0_943 + 0x49, 0x89, 0xf7, //0x00003c78 movq %rsi, %r15 + //0x00003c7b LBB0_790 + 0x85, 0xff, //0x00003c7b testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003c7d je LBB0_793 + 0x4c, 0x89, 0xc0, //0x00003c83 movq %r8, %rax + 0x4c, 0x29, 0xc8, //0x00003c86 subq %r9, %rax + 0x0f, 0xbc, 0xf7, //0x00003c89 bsfl %edi, %esi + 0x48, 0x01, 0xc6, //0x00003c8c addq %rax, %rsi + 0x49, 0x83, 0xfd, 0xff, //0x00003c8f cmpq $-1, %r13 + 0x0f, 0x85, 0x39, 0x0b, 0x00, 0x00, //0x00003c93 jne LBB0_943 + 0x49, 0x89, 0xf5, //0x00003c99 movq %rsi, %r13 + //0x00003c9c LBB0_793 + 0x83, 0xf9, 0x10, //0x00003c9c cmpl $16, %ecx + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00003c9f jne LBB0_808 + 0x49, 0x83, 0xc0, 0x10, //0x00003ca5 addq $16, %r8 + 0x49, 0x83, 0xc2, 0xf0, //0x00003ca9 addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x00003cad cmpq $15, %r10 + 0x0f, 0x87, 0xd9, 0xfe, 0xff, 0xff, //0x00003cb1 ja LBB0_779 + 0x4d, 0x89, 0xf2, //0x00003cb7 movq %r14, %r10 + 0x4c, 0x8b, 0x44, 0x24, 0x18, //0x00003cba movq $24(%rsp), %r8 + //0x00003cbf LBB0_796 + 0x4d, 0x85, 0xd2, //0x00003cbf testq %r10, %r10 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00003cc2 movq $8(%rsp), %r14 + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00003cc7 je LBB0_809 + 0x4b, 0x8d, 0x0c, 0x10, //0x00003ccd leaq (%r8,%r10), %rcx + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003cd1 jmp LBB0_801 + //0x00003cd6 LBB0_798 + 0x49, 0x89, 0xf0, //0x00003cd6 movq %rsi, %r8 + 0x4d, 0x29, 0xc8, //0x00003cd9 subq %r9, %r8 + 0x49, 0x83, 0xfd, 0xff, //0x00003cdc cmpq $-1, %r13 + 0x0f, 0x85, 0x91, 0x0b, 0x00, 0x00, //0x00003ce0 jne LBB0_946 + 0x49, 0xff, 0xc8, //0x00003ce6 decq %r8 + 0x4d, 0x89, 0xc5, //0x00003ce9 movq %r8, %r13 + 0x90, 0x90, 0x90, 0x90, //0x00003cec .p2align 4, 0x90 + //0x00003cf0 LBB0_800 + 0x49, 0x89, 0xf0, //0x00003cf0 movq %rsi, %r8 + 0x49, 0xff, 0xca, //0x00003cf3 decq %r10 + 0x0f, 0x84, 0xe6, 0x0a, 0x00, 0x00, //0x00003cf6 je LBB0_944 + //0x00003cfc LBB0_801 + 0x41, 0x0f, 0xbe, 0x10, //0x00003cfc movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x00003d00 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00003d03 cmpl $58, %edx + 0x0f, 0x87, 0x78, 0x00, 0x00, 0x00, //0x00003d06 ja LBB0_809 + 0x49, 0x8d, 0x70, 0x01, //0x00003d0c leaq $1(%r8), %rsi + 0x48, 0x8d, 0x3d, 0x25, 0x21, 0x00, 0x00, //0x00003d10 leaq $8485(%rip), %rdi /* LJTI0_5+0(%rip) */ + 0x48, 0x63, 0x04, 0x97, //0x00003d17 movslq (%rdi,%rdx,4), %rax + 0x48, 0x01, 0xf8, //0x00003d1b addq %rdi, %rax + 0xff, 0xe0, //0x00003d1e jmpq *%rax + //0x00003d20 LBB0_803 + 0x49, 0x89, 0xf0, //0x00003d20 movq %rsi, %r8 + 0x4d, 0x29, 0xc8, //0x00003d23 subq %r9, %r8 + 0x49, 0x83, 0xff, 0xff, //0x00003d26 cmpq $-1, %r15 + 0x0f, 0x85, 0x47, 0x0b, 0x00, 0x00, //0x00003d2a jne LBB0_946 + 0x49, 0xff, 0xc8, //0x00003d30 decq %r8 + 0x4d, 0x89, 0xc7, //0x00003d33 movq %r8, %r15 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x00003d36 jmp LBB0_800 + //0x00003d3b LBB0_805 + 0x49, 0x89, 0xf0, //0x00003d3b movq %rsi, %r8 + 0x4d, 0x29, 0xc8, //0x00003d3e subq %r9, %r8 + 0x49, 0x83, 0xfc, 0xff, //0x00003d41 cmpq $-1, %r12 + 0x0f, 0x85, 0x2c, 0x0b, 0x00, 0x00, //0x00003d45 jne LBB0_946 + 0x49, 0xff, 0xc8, //0x00003d4b decq %r8 + 0x4d, 0x89, 0xc4, //0x00003d4e movq %r8, %r12 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00003d51 jmp LBB0_800 + //0x00003d56 LBB0_807 + 0x48, 0x01, 0xcb, //0x00003d56 addq %rcx, %rbx + 0xc5, 0xf8, 0x77, //0x00003d59 vzeroupper + 0xc5, 0x7a, 0x6f, 0x3d, 0xac, 0xc4, 0xff, 0xff, //0x00003d5c vmovdqu $-15188(%rip), %xmm15 /* LCPI0_18+0(%rip) */ + 0x49, 0x89, 0xd8, //0x00003d64 movq %rbx, %r8 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003d67 movq $-1, %rcx + 0x4d, 0x85, 0xff, //0x00003d6e testq %r15, %r15 + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00003d71 jne LBB0_810 + 0xe9, 0x44, 0x17, 0x00, 0x00, //0x00003d77 jmp LBB0_1086 + //0x00003d7c LBB0_808 + 0x49, 0x01, 0xc8, //0x00003d7c addq %rcx, %r8 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00003d7f movq $8(%rsp), %r14 + //0x00003d84 LBB0_809 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003d84 movq $-1, %rcx + 0x4d, 0x85, 0xff, //0x00003d8b testq %r15, %r15 + 0x0f, 0x84, 0x2c, 0x17, 0x00, 0x00, //0x00003d8e je LBB0_1086 + //0x00003d94 LBB0_810 + 0x4d, 0x85, 0xed, //0x00003d94 testq %r13, %r13 + 0x0f, 0x84, 0x23, 0x17, 0x00, 0x00, //0x00003d97 je LBB0_1086 + 0x4d, 0x85, 0xe4, //0x00003d9d testq %r12, %r12 + 0x0f, 0x84, 0x1a, 0x17, 0x00, 0x00, //0x00003da0 je LBB0_1086 + 0x4d, 0x29, 0xc8, //0x00003da6 subq %r9, %r8 + 0x49, 0x8d, 0x48, 0xff, //0x00003da9 leaq $-1(%r8), %rcx + 0x49, 0x39, 0xcf, //0x00003dad cmpq %rcx, %r15 + 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x00003db0 je LBB0_818 + 0x49, 0x39, 0xcc, //0x00003db6 cmpq %rcx, %r12 + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00003db9 je LBB0_818 + 0x49, 0x39, 0xcd, //0x00003dbf cmpq %rcx, %r13 + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00003dc2 je LBB0_818 + 0x4d, 0x85, 0xed, //0x00003dc8 testq %r13, %r13 + 0xc5, 0xfe, 0x6f, 0x2d, 0x2d, 0xc2, 0xff, 0xff, //0x00003dcb vmovdqu $-15827(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xa5, 0xc2, 0xff, 0xff, //0x00003dd3 vmovdqu $-15707(%rip), %ymm6 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xbd, 0xc2, 0xff, 0xff, //0x00003ddb vmovdqu $-15683(%rip), %ymm7 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x35, 0xc3, 0xff, 0xff, //0x00003de3 vmovdqu $-15563(%rip), %ymm8 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x4d, 0xc3, 0xff, 0xff, //0x00003deb vmovdqu $-15539(%rip), %ymm9 /* LCPI0_13+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x65, 0xc3, 0xff, 0xff, //0x00003df3 vmovdqu $-15515(%rip), %ymm10 /* LCPI0_14+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x7d, 0xc3, 0xff, 0xff, //0x00003dfb vmovdqu $-15491(%rip), %ymm11 /* LCPI0_15+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x35, 0xc2, 0xff, 0xff, //0x00003e03 vmovdqu $-15819(%rip), %ymm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x8d, 0xc3, 0xff, 0xff, //0x00003e0b vmovdqu $-15475(%rip), %ymm13 /* LCPI0_16+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xa5, 0xc3, 0xff, 0xff, //0x00003e13 vmovdqu $-15451(%rip), %ymm14 /* LCPI0_17+0(%rip) */ + 0x0f, 0x8e, 0x75, 0x00, 0x00, 0x00, //0x00003e1b jle LBB0_819 + 0x49, 0x8d, 0x45, 0xff, //0x00003e21 leaq $-1(%r13), %rax + 0x49, 0x39, 0xc7, //0x00003e25 cmpq %rax, %r15 + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00003e28 je LBB0_819 + 0x49, 0xf7, 0xd5, //0x00003e2e notq %r13 + 0x4d, 0x89, 0xe8, //0x00003e31 movq %r13, %r8 + 0xe9, 0x09, 0x03, 0x00, 0x00, //0x00003e34 jmp LBB0_864 + //0x00003e39 LBB0_818 + 0x49, 0xf7, 0xd8, //0x00003e39 negq %r8 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00003e3c movq $16(%rsp), %r15 + 0xc5, 0xfe, 0x6f, 0x2d, 0xb7, 0xc1, 0xff, 0xff, //0x00003e41 vmovdqu $-15945(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x2f, 0xc2, 0xff, 0xff, //0x00003e49 vmovdqu $-15825(%rip), %ymm6 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x47, 0xc2, 0xff, 0xff, //0x00003e51 vmovdqu $-15801(%rip), %ymm7 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xbf, 0xc2, 0xff, 0xff, //0x00003e59 vmovdqu $-15681(%rip), %ymm8 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0xd7, 0xc2, 0xff, 0xff, //0x00003e61 vmovdqu $-15657(%rip), %ymm9 /* LCPI0_13+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xef, 0xc2, 0xff, 0xff, //0x00003e69 vmovdqu $-15633(%rip), %ymm10 /* LCPI0_14+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x07, 0xc3, 0xff, 0xff, //0x00003e71 vmovdqu $-15609(%rip), %ymm11 /* LCPI0_15+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xbf, 0xc1, 0xff, 0xff, //0x00003e79 vmovdqu $-15937(%rip), %ymm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x17, 0xc3, 0xff, 0xff, //0x00003e81 vmovdqu $-15593(%rip), %ymm13 /* LCPI0_16+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x2f, 0xc3, 0xff, 0xff, //0x00003e89 vmovdqu $-15569(%rip), %ymm14 /* LCPI0_17+0(%rip) */ + 0xe9, 0xb1, 0x02, 0x00, 0x00, //0x00003e91 jmp LBB0_865 + //0x00003e96 LBB0_819 + 0x4c, 0x89, 0xe1, //0x00003e96 movq %r12, %rcx + 0x4c, 0x09, 0xf9, //0x00003e99 orq %r15, %rcx + 0x4d, 0x39, 0xfc, //0x00003e9c cmpq %r15, %r12 + 0x0f, 0x8c, 0x88, 0x02, 0x00, 0x00, //0x00003e9f jl LBB0_863 + 0x48, 0x85, 0xc9, //0x00003ea5 testq %rcx, %rcx + 0x0f, 0x88, 0x7f, 0x02, 0x00, 0x00, //0x00003ea8 js LBB0_863 + 0x49, 0xf7, 0xd4, //0x00003eae notq %r12 + 0x4d, 0x89, 0xe0, //0x00003eb1 movq %r12, %r8 + 0xe9, 0x89, 0x02, 0x00, 0x00, //0x00003eb4 jmp LBB0_864 + //0x00003eb9 LBB0_822 + 0x4c, 0x89, 0x04, 0x24, //0x00003eb9 movq %r8, (%rsp) + 0x4d, 0x8b, 0x47, 0x08, //0x00003ebd movq $8(%r15), %r8 + 0x4c, 0x89, 0xc1, //0x00003ec1 movq %r8, %rcx + 0x4c, 0x29, 0xe9, //0x00003ec4 subq %r13, %rcx + 0x0f, 0x84, 0xed, 0x17, 0x00, 0x00, //0x00003ec7 je LBB0_1116 + 0x4c, 0x89, 0x6c, 0x24, 0x20, //0x00003ecd movq %r13, $32(%rsp) + 0x4b, 0x8d, 0x1c, 0x2c, //0x00003ed2 leaq (%r12,%r13), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00003ed6 cmpq $64, %rcx + 0x0f, 0x82, 0xb5, 0x0a, 0x00, 0x00, //0x00003eda jb LBB0_961 + 0x41, 0x89, 0xca, //0x00003ee0 movl %ecx, %r10d + 0x41, 0x83, 0xe2, 0x3f, //0x00003ee3 andl $63, %r10d + 0x4c, 0x89, 0xc0, //0x00003ee7 movq %r8, %rax + 0x4c, 0x29, 0xd8, //0x00003eea subq %r11, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x00003eed addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00003ef1 andq $-64, %rax + 0x4c, 0x01, 0xd8, //0x00003ef5 addq %r11, %rax + 0x4d, 0x8d, 0x6c, 0x04, 0x41, //0x00003ef8 leaq $65(%r12,%rax), %r13 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003efd movq $-1, %r9 + 0x45, 0x31, 0xf6, //0x00003f04 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f07 .p2align 4, 0x90 + //0x00003f10 LBB0_825 + 0xc5, 0xfe, 0x6f, 0x03, //0x00003f10 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00003f14 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00003f19 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00003f1d vpmovmskb %ymm2, %edx + 0xc5, 0xf5, 0x74, 0xd6, //0x00003f21 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00003f25 vpmovmskb %ymm2, %edi + 0xc5, 0xfd, 0x74, 0xc7, //0x00003f29 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00003f2d vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00003f31 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00003f35 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe7, 0x20, //0x00003f39 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x20, //0x00003f3d shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00003f41 orq %rax, %rsi + 0x49, 0x83, 0xf9, 0xff, //0x00003f44 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003f48 jne LBB0_827 + 0x48, 0x85, 0xf6, //0x00003f4e testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00003f51 jne LBB0_835 + //0x00003f57 LBB0_827 + 0x48, 0x09, 0xd7, //0x00003f57 orq %rdx, %rdi + 0x48, 0x89, 0xf0, //0x00003f5a movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00003f5d orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00003f60 jne LBB0_836 + //0x00003f66 LBB0_828 + 0x48, 0x85, 0xff, //0x00003f66 testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x00003f69 jne LBB0_837 + //0x00003f6f LBB0_829 + 0x48, 0x83, 0xc1, 0xc0, //0x00003f6f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00003f73 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00003f77 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x00003f7b ja LBB0_825 + 0xe9, 0x84, 0x08, 0x00, 0x00, //0x00003f81 jmp LBB0_830 + //0x00003f86 LBB0_835 + 0x48, 0x89, 0xd8, //0x00003f86 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x00003f89 subq %r12, %rax + 0x4c, 0x0f, 0xbc, 0xce, //0x00003f8c bsfq %rsi, %r9 + 0x49, 0x01, 0xc1, //0x00003f90 addq %rax, %r9 + 0x48, 0x09, 0xd7, //0x00003f93 orq %rdx, %rdi + 0x48, 0x89, 0xf0, //0x00003f96 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00003f99 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00003f9c je LBB0_828 + //0x00003fa2 LBB0_836 + 0x4c, 0x89, 0xf0, //0x00003fa2 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00003fa5 notq %rax + 0x48, 0x21, 0xf0, //0x00003fa8 andq %rsi, %rax + 0x4c, 0x8d, 0x3c, 0x00, //0x00003fab leaq (%rax,%rax), %r15 + 0x4d, 0x09, 0xf7, //0x00003faf orq %r14, %r15 + 0x4c, 0x89, 0xfa, //0x00003fb2 movq %r15, %rdx + 0x48, 0xf7, 0xd2, //0x00003fb5 notq %rdx + 0x48, 0x21, 0xf2, //0x00003fb8 andq %rsi, %rdx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003fbb movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf2, //0x00003fc5 andq %rsi, %rdx + 0x45, 0x31, 0xf6, //0x00003fc8 xorl %r14d, %r14d + 0x48, 0x01, 0xc2, //0x00003fcb addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc6, //0x00003fce setb %r14b + 0x48, 0x01, 0xd2, //0x00003fd2 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003fd5 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00003fdf xorq %rax, %rdx + 0x4c, 0x21, 0xfa, //0x00003fe2 andq %r15, %rdx + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00003fe5 movq $16(%rsp), %r15 + 0x48, 0xf7, 0xd2, //0x00003fea notq %rdx + 0x48, 0x21, 0xd7, //0x00003fed andq %rdx, %rdi + 0x48, 0x85, 0xff, //0x00003ff0 testq %rdi, %rdi + 0x0f, 0x84, 0x76, 0xff, 0xff, 0xff, //0x00003ff3 je LBB0_829 + //0x00003ff9 LBB0_837 + 0x48, 0x0f, 0xbc, 0xc7, //0x00003ff9 bsfq %rdi, %rax + 0x4c, 0x29, 0xe3, //0x00003ffd subq %r12, %rbx + 0x4c, 0x8d, 0x6c, 0x03, 0x01, //0x00004000 leaq $1(%rbx,%rax), %r13 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004005 movq $40(%rsp), %r10 + 0x4d, 0x85, 0xed, //0x0000400a testq %r13, %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x0000400d movq $8(%rsp), %r14 + 0x0f, 0x88, 0x86, 0x14, 0x00, 0x00, //0x00004012 js LBB0_1082 + //0x00004018 LBB0_838 + 0x4d, 0x89, 0x2e, //0x00004018 movq %r13, (%r14) + 0x4c, 0x89, 0xd9, //0x0000401b movq %r11, %rcx + 0x48, 0x83, 0x7c, 0x24, 0x20, 0x00, //0x0000401e cmpq $0, $32(%rsp) + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x00004024 jmp LBB0_868 + //0x00004029 LBB0_839 + 0x4d, 0x8b, 0x4f, 0x08, //0x00004029 movq $8(%r15), %r9 + 0x4d, 0x29, 0xe9, //0x0000402d subq %r13, %r9 + 0x0f, 0x84, 0x32, 0x16, 0x00, 0x00, //0x00004030 je LBB0_1106 + 0x4c, 0x89, 0x6c, 0x24, 0x20, //0x00004036 movq %r13, $32(%rsp) + 0x4d, 0x01, 0xec, //0x0000403b addq %r13, %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x0000403e cmpb $48, (%r12) + 0x0f, 0x85, 0x78, 0x01, 0x00, 0x00, //0x00004043 jne LBB0_872 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00004049 movl $1, %r14d + 0x49, 0x83, 0xf9, 0x01, //0x0000404f cmpq $1, %r9 + 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x00004053 jne LBB0_870 + 0x4c, 0x8b, 0x6c, 0x24, 0x20, //0x00004059 movq $32(%rsp), %r13 + 0xe9, 0x92, 0x06, 0x00, 0x00, //0x0000405e jmp LBB0_935 + //0x00004063 LBB0_843 + 0x49, 0x8b, 0x02, //0x00004063 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004066 cmpq $4095, %rax + 0x0f, 0x8f, 0x3f, 0x0d, 0x00, 0x00, //0x0000406c jg LBB0_1097 + 0x48, 0x8d, 0x48, 0x01, //0x00004072 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00004076 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004079 movq $5, $8(%r10,%rax,8) + 0xe9, 0xa9, 0xf2, 0xff, 0xff, //0x00004082 jmp LBB0_662 + //0x00004087 LBB0_845 + 0x49, 0x8b, 0x57, 0x08, //0x00004087 movq $8(%r15), %rdx + 0x48, 0x8d, 0x42, 0xfc, //0x0000408b leaq $-4(%rdx), %rax + 0x49, 0x39, 0xc3, //0x0000408f cmpq %rax, %r11 + 0x0f, 0x83, 0x3a, 0x14, 0x00, 0x00, //0x00004092 jae LBB0_1096 + 0x43, 0x8b, 0x14, 0x2c, //0x00004098 movl (%r12,%r13), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x0000409c cmpl $1702063201, %edx + 0x0f, 0x85, 0xb6, 0x14, 0x00, 0x00, //0x000040a2 jne LBB0_1098 + 0x4c, 0x89, 0xe8, //0x000040a8 movq %r13, %rax + 0x4d, 0x8d, 0x6b, 0x05, //0x000040ab leaq $5(%r11), %r13 + 0x4d, 0x89, 0x2e, //0x000040af movq %r13, (%r14) + 0x4c, 0x89, 0xd9, //0x000040b2 movq %r11, %rcx + 0x48, 0x85, 0xc0, //0x000040b5 testq %rax, %rax + 0x0f, 0x8f, 0x72, 0xf2, 0xff, 0xff, //0x000040b8 jg LBB0_662 + 0xe9, 0x3b, 0xf2, 0xff, 0xff, //0x000040be jmp LBB0_659 + //0x000040c3 LBB0_848 + 0x49, 0x8b, 0x57, 0x08, //0x000040c3 movq $8(%r15), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000040c7 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc3, //0x000040cb cmpq %rax, %r11 + 0x0f, 0x83, 0xfe, 0x13, 0x00, 0x00, //0x000040ce jae LBB0_1096 + 0x41, 0x81, 0x39, 0x6e, 0x75, 0x6c, 0x6c, //0x000040d4 cmpl $1819047278, (%r9) + 0x0f, 0x84, 0x32, 0xf2, 0xff, 0xff, //0x000040db je LBB0_660 + 0xe9, 0xca, 0x14, 0x00, 0x00, //0x000040e1 jmp LBB0_850 + //0x000040e6 LBB0_855 + 0x49, 0x8b, 0x57, 0x08, //0x000040e6 movq $8(%r15), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000040ea leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc3, //0x000040ee cmpq %rax, %r11 + 0x0f, 0x83, 0xdb, 0x13, 0x00, 0x00, //0x000040f1 jae LBB0_1096 + 0x41, 0x81, 0x39, 0x74, 0x72, 0x75, 0x65, //0x000040f7 cmpl $1702195828, (%r9) + 0x0f, 0x84, 0x0f, 0xf2, 0xff, 0xff, //0x000040fe je LBB0_660 + 0xe9, 0xf9, 0x14, 0x00, 0x00, //0x00004104 jmp LBB0_857 + //0x00004109 LBB0_861 + 0x49, 0x8b, 0x02, //0x00004109 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000410c cmpq $4095, %rax + 0x0f, 0x8f, 0x99, 0x0c, 0x00, 0x00, //0x00004112 jg LBB0_1097 + 0x48, 0x8d, 0x48, 0x01, //0x00004118 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x0000411c movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x0000411f movq $6, $8(%r10,%rax,8) + 0xe9, 0x03, 0xf2, 0xff, 0xff, //0x00004128 jmp LBB0_662 + //0x0000412d LBB0_863 + 0x48, 0x85, 0xc9, //0x0000412d testq %rcx, %rcx + 0x49, 0x8d, 0x47, 0xff, //0x00004130 leaq $-1(%r15), %rax + 0x49, 0xf7, 0xd7, //0x00004134 notq %r15 + 0x4d, 0x0f, 0x48, 0xf8, //0x00004137 cmovsq %r8, %r15 + 0x49, 0x39, 0xc4, //0x0000413b cmpq %rax, %r12 + 0x4d, 0x0f, 0x44, 0xc7, //0x0000413e cmoveq %r15, %r8 + //0x00004142 LBB0_864 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004142 movq $16(%rsp), %r15 + //0x00004147 LBB0_865 + 0x4c, 0x8b, 0x6c, 0x24, 0x20, //0x00004147 movq $32(%rsp), %r13 + 0x4d, 0x85, 0xc0, //0x0000414c testq %r8, %r8 + 0x0f, 0x88, 0x68, 0x13, 0x00, 0x00, //0x0000414f js LBB0_1085 + 0x49, 0x8b, 0x0e, //0x00004155 movq (%r14), %rcx + //0x00004158 LBB0_867 + 0x4c, 0x89, 0xe8, //0x00004158 movq %r13, %rax + 0x4e, 0x8d, 0x6c, 0x01, 0xff, //0x0000415b leaq $-1(%rcx,%r8), %r13 + 0x4d, 0x89, 0x2e, //0x00004160 movq %r13, (%r14) + 0x4c, 0x89, 0xd9, //0x00004163 movq %r11, %rcx + 0x48, 0x85, 0xc0, //0x00004166 testq %rax, %rax + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004169 movq $40(%rsp), %r10 + //0x0000416e LBB0_868 + 0x4c, 0x8b, 0x04, 0x24, //0x0000416e movq (%rsp), %r8 + 0x0f, 0x8f, 0xb8, 0xf1, 0xff, 0xff, //0x00004172 jg LBB0_662 + 0xe9, 0x81, 0xf1, 0xff, 0xff, //0x00004178 jmp LBB0_659 + //0x0000417d LBB0_869 + 0x4c, 0x89, 0xe1, //0x0000417d movq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00004180 notq %rcx + 0x49, 0x01, 0xcb, //0x00004183 addq %rcx, %r11 + 0x49, 0x39, 0xd3, //0x00004186 cmpq %rdx, %r11 + 0x0f, 0x82, 0x6c, 0xf3, 0xff, 0xff, //0x00004189 jb LBB0_695 + 0xe9, 0x11, 0x0c, 0x00, 0x00, //0x0000418f jmp LBB0_1014 + //0x00004194 LBB0_870 + 0x41, 0x8a, 0x4c, 0x24, 0x01, //0x00004194 movb $1(%r12), %cl + 0x80, 0xc1, 0xd2, //0x00004199 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000419c cmpb $55, %cl + 0x4c, 0x8b, 0x6c, 0x24, 0x20, //0x0000419f movq $32(%rsp), %r13 + 0x0f, 0x87, 0x4b, 0x05, 0x00, 0x00, //0x000041a4 ja LBB0_935 + 0x0f, 0xb6, 0xc1, //0x000041aa movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000041ad movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000041b7 btq %rax, %rcx + 0x0f, 0x83, 0x34, 0x05, 0x00, 0x00, //0x000041bb jae LBB0_935 + //0x000041c1 LBB0_872 + 0x49, 0x83, 0xf9, 0x20, //0x000041c1 cmpq $32, %r9 + 0x0f, 0x82, 0xef, 0x07, 0x00, 0x00, //0x000041c5 jb LBB0_962 + 0x49, 0x8d, 0x49, 0xe0, //0x000041cb leaq $-32(%r9), %rcx + 0x48, 0x89, 0xc8, //0x000041cf movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x000041d2 andq $-32, %rax + 0x4e, 0x8d, 0x74, 0x20, 0x20, //0x000041d6 leaq $32(%rax,%r12), %r14 + 0x83, 0xe1, 0x1f, //0x000041db andl $31, %ecx + 0x48, 0x89, 0x8c, 0x24, 0x98, 0x00, 0x00, 0x00, //0x000041de movq %rcx, $152(%rsp) + 0x48, 0xc7, 0x44, 0x24, 0x18, 0xff, 0xff, 0xff, 0xff, //0x000041e6 movq $-1, $24(%rsp) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000041ef movq $-1, %r13 + 0x48, 0xc7, 0x44, 0x24, 0x30, 0xff, 0xff, 0xff, 0xff, //0x000041f6 movq $-1, $48(%rsp) + 0x4d, 0x89, 0xe7, //0x000041ff movq %r12, %r15 + 0x4c, 0x89, 0x04, 0x24, //0x00004202 movq %r8, (%rsp) + //0x00004206 LBB0_874 + 0xc4, 0xc1, 0x7e, 0x6f, 0x07, //0x00004206 vmovdqu (%r15), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xc8, //0x0000420b vpcmpgtb %ymm8, %ymm0, %ymm1 + 0xc5, 0xb5, 0x64, 0xd0, //0x00004210 vpcmpgtb %ymm0, %ymm9, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x00004214 vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0xad, 0x74, 0xd0, //0x00004218 vpcmpeqb %ymm0, %ymm10, %ymm2 + 0xc5, 0xa5, 0x74, 0xd8, //0x0000421c vpcmpeqb %ymm0, %ymm11, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00004220 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0x9d, 0xeb, 0xd8, //0x00004224 vpor %ymm0, %ymm12, %ymm3 + 0xc5, 0x95, 0x74, 0xc0, //0x00004228 vpcmpeqb %ymm0, %ymm13, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x0000422c vpmovmskb %ymm0, %ebx + 0xc5, 0x8d, 0x74, 0xdb, //0x00004230 vpcmpeqb %ymm3, %ymm14, %ymm3 + 0xc5, 0xfd, 0xd7, 0xf3, //0x00004234 vpmovmskb %ymm3, %esi + 0xc5, 0xfd, 0xd7, 0xfa, //0x00004238 vpmovmskb %ymm2, %edi + 0xc5, 0xe5, 0xeb, 0xc0, //0x0000423c vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x00004240 vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00004244 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00004248 vpmovmskb %ymm0, %eax + 0x48, 0xf7, 0xd0, //0x0000424c notq %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x0000424f bsfq %rax, %rcx + 0x4d, 0x89, 0xd0, //0x00004253 movq %r10, %r8 + 0x83, 0xf9, 0x20, //0x00004256 cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00004259 je LBB0_876 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000425f movl $-1, %eax + 0xd3, 0xe0, //0x00004264 shll %cl, %eax + 0xf7, 0xd0, //0x00004266 notl %eax + 0x21, 0xc3, //0x00004268 andl %eax, %ebx + 0x21, 0xc6, //0x0000426a andl %eax, %esi + 0x21, 0xf8, //0x0000426c andl %edi, %eax + 0x89, 0xc7, //0x0000426e movl %eax, %edi + //0x00004270 LBB0_876 + 0x44, 0x8d, 0x53, 0xff, //0x00004270 leal $-1(%rbx), %r10d + 0x41, 0x21, 0xda, //0x00004274 andl %ebx, %r10d + 0x0f, 0x85, 0x46, 0x06, 0x00, 0x00, //0x00004277 jne LBB0_950 + 0x8d, 0x56, 0xff, //0x0000427d leal $-1(%rsi), %edx + 0x21, 0xf2, //0x00004280 andl %esi, %edx + 0x0f, 0x85, 0x47, 0x06, 0x00, 0x00, //0x00004282 jne LBB0_951 + 0x8d, 0x57, 0xff, //0x00004288 leal $-1(%rdi), %edx + 0x21, 0xfa, //0x0000428b andl %edi, %edx + 0x4d, 0x89, 0xc2, //0x0000428d movq %r8, %r10 + 0x0f, 0x85, 0x57, 0x06, 0x00, 0x00, //0x00004290 jne LBB0_953 + 0x85, 0xdb, //0x00004296 testl %ebx, %ebx + 0x4c, 0x8b, 0x04, 0x24, //0x00004298 movq (%rsp), %r8 + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000429c je LBB0_882 + 0x4c, 0x89, 0xf8, //0x000042a2 movq %r15, %rax + 0x4c, 0x29, 0xe0, //0x000042a5 subq %r12, %rax + 0x0f, 0xbc, 0xdb, //0x000042a8 bsfl %ebx, %ebx + 0x48, 0x01, 0xc3, //0x000042ab addq %rax, %rbx + 0x48, 0x83, 0x7c, 0x24, 0x30, 0xff, //0x000042ae cmpq $-1, $48(%rsp) + 0x0f, 0x85, 0x6b, 0x06, 0x00, 0x00, //0x000042b4 jne LBB0_955 + 0x48, 0x89, 0x5c, 0x24, 0x30, //0x000042ba movq %rbx, $48(%rsp) + //0x000042bf LBB0_882 + 0x85, 0xf6, //0x000042bf testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000042c1 je LBB0_885 + 0x4c, 0x89, 0xf8, //0x000042c7 movq %r15, %rax + 0x4c, 0x29, 0xe0, //0x000042ca subq %r12, %rax + 0x0f, 0xbc, 0xf6, //0x000042cd bsfl %esi, %esi + 0x48, 0x01, 0xc6, //0x000042d0 addq %rax, %rsi + 0x49, 0x83, 0xfd, 0xff, //0x000042d3 cmpq $-1, %r13 + 0x0f, 0x85, 0xb6, 0x05, 0x00, 0x00, //0x000042d7 jne LBB0_948 + 0x49, 0x89, 0xf5, //0x000042dd movq %rsi, %r13 + //0x000042e0 LBB0_885 + 0x85, 0xff, //0x000042e0 testl %edi, %edi + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000042e2 je LBB0_888 + 0x4c, 0x89, 0xf8, //0x000042e8 movq %r15, %rax + 0x4c, 0x29, 0xe0, //0x000042eb subq %r12, %rax + 0x0f, 0xbc, 0xf7, //0x000042ee bsfl %edi, %esi + 0x48, 0x01, 0xc6, //0x000042f1 addq %rax, %rsi + 0x48, 0x83, 0x7c, 0x24, 0x18, 0xff, //0x000042f4 cmpq $-1, $24(%rsp) + 0x0f, 0x85, 0x93, 0x05, 0x00, 0x00, //0x000042fa jne LBB0_948 + 0x48, 0x89, 0x74, 0x24, 0x18, //0x00004300 movq %rsi, $24(%rsp) + //0x00004305 LBB0_888 + 0x83, 0xf9, 0x20, //0x00004305 cmpl $32, %ecx + 0x0f, 0x85, 0x30, 0x02, 0x00, 0x00, //0x00004308 jne LBB0_1104 + 0x49, 0x83, 0xc7, 0x20, //0x0000430e addq $32, %r15 + 0x49, 0x83, 0xc1, 0xe0, //0x00004312 addq $-32, %r9 + 0x49, 0x83, 0xf9, 0x1f, //0x00004316 cmpq $31, %r9 + 0x0f, 0x87, 0xe6, 0xfe, 0xff, 0xff, //0x0000431a ja LBB0_874 + 0xc5, 0xf8, 0x77, //0x00004320 vzeroupper + 0x4c, 0x8b, 0x8c, 0x24, 0x98, 0x00, 0x00, 0x00, //0x00004323 movq $152(%rsp), %r9 + //0x0000432b LBB0_891 + 0x49, 0x83, 0xf9, 0x10, //0x0000432b cmpq $16, %r9 + 0xc5, 0xfe, 0x6f, 0x2d, 0xc9, 0xbc, 0xff, 0xff, //0x0000432f vmovdqu $-17207(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x41, 0xbd, 0xff, 0xff, //0x00004337 vmovdqu $-17087(%rip), %ymm6 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x59, 0xbd, 0xff, 0xff, //0x0000433f vmovdqu $-17063(%rip), %ymm7 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x3d, 0xc1, 0xbe, 0xff, 0xff, //0x00004347 vmovdqu $-16703(%rip), %xmm15 /* LCPI0_18+0(%rip) */ + 0x0f, 0x82, 0x49, 0x01, 0x00, 0x00, //0x0000434f jb LBB0_910 + 0x4d, 0x8d, 0x79, 0xf0, //0x00004355 leaq $-16(%r9), %r15 + 0x4c, 0x89, 0xf8, //0x00004359 movq %r15, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000435c andq $-16, %rax + 0x4e, 0x8d, 0x54, 0x30, 0x10, //0x00004360 leaq $16(%rax,%r14), %r10 + 0x41, 0x83, 0xe7, 0x0f, //0x00004365 andl $15, %r15d + //0x00004369 LBB0_893 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00004369 vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x79, 0x64, 0xcf, //0x0000436e vpcmpgtb %xmm15, %xmm0, %xmm1 + 0xc5, 0xfa, 0x6f, 0x15, 0xa5, 0xbe, 0xff, 0xff, //0x00004373 vmovdqu $-16731(%rip), %xmm2 /* LCPI0_19+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x0000437b vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x0000437f vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0xa5, 0xbe, 0xff, 0xff, //0x00004383 vpcmpeqb $-16731(%rip), %xmm0, %xmm2 /* LCPI0_20+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0xad, 0xbe, 0xff, 0xff, //0x0000438b vpcmpeqb $-16723(%rip), %xmm0, %xmm3 /* LCPI0_21+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x00004393 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0x51, 0xbe, 0xff, 0xff, //0x00004397 vpor $-16815(%rip), %xmm0, %xmm3 /* LCPI0_5+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0xa9, 0xbe, 0xff, 0xff, //0x0000439f vpcmpeqb $-16727(%rip), %xmm0, %xmm0 /* LCPI0_22+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0xb1, 0xbe, 0xff, 0xff, //0x000043a7 vpcmpeqb $-16719(%rip), %xmm3, %xmm3 /* LCPI0_23+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x000043af vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x000043b3 vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x000043b7 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xd8, //0x000043bb vpmovmskb %xmm0, %ebx + 0xc5, 0xf9, 0xd7, 0xf3, //0x000043bf vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xfa, //0x000043c3 vpmovmskb %xmm2, %edi + 0xc5, 0xf9, 0xd7, 0xc1, //0x000043c7 vpmovmskb %xmm1, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000043cb movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x000043d0 xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000043d3 bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x000043d7 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000043da je LBB0_895 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000043e0 movl $-1, %eax + 0xd3, 0xe0, //0x000043e5 shll %cl, %eax + 0xf7, 0xd0, //0x000043e7 notl %eax + 0x21, 0xc3, //0x000043e9 andl %eax, %ebx + 0x21, 0xc6, //0x000043eb andl %eax, %esi + 0x21, 0xf8, //0x000043ed andl %edi, %eax + 0x89, 0xc7, //0x000043ef movl %eax, %edi + //0x000043f1 LBB0_895 + 0x8d, 0x53, 0xff, //0x000043f1 leal $-1(%rbx), %edx + 0x21, 0xda, //0x000043f4 andl %ebx, %edx + 0x0f, 0x85, 0x83, 0x04, 0x00, 0x00, //0x000043f6 jne LBB0_947 + 0x8d, 0x56, 0xff, //0x000043fc leal $-1(%rsi), %edx + 0x21, 0xf2, //0x000043ff andl %esi, %edx + 0x0f, 0x85, 0x78, 0x04, 0x00, 0x00, //0x00004401 jne LBB0_947 + 0x8d, 0x57, 0xff, //0x00004407 leal $-1(%rdi), %edx + 0x21, 0xfa, //0x0000440a andl %edi, %edx + 0x0f, 0x85, 0x6d, 0x04, 0x00, 0x00, //0x0000440c jne LBB0_947 + 0x85, 0xdb, //0x00004412 testl %ebx, %ebx + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00004414 je LBB0_901 + 0x4c, 0x89, 0xf0, //0x0000441a movq %r14, %rax + 0x4c, 0x29, 0xe0, //0x0000441d subq %r12, %rax + 0x0f, 0xbc, 0xdb, //0x00004420 bsfl %ebx, %ebx + 0x48, 0x01, 0xc3, //0x00004423 addq %rax, %rbx + 0x48, 0x83, 0x7c, 0x24, 0x30, 0xff, //0x00004426 cmpq $-1, $48(%rsp) + 0x0f, 0x85, 0x4e, 0x05, 0x00, 0x00, //0x0000442c jne LBB0_959 + 0x48, 0x89, 0x5c, 0x24, 0x30, //0x00004432 movq %rbx, $48(%rsp) + //0x00004437 LBB0_901 + 0x85, 0xf6, //0x00004437 testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00004439 je LBB0_904 + 0x4c, 0x89, 0xf0, //0x0000443f movq %r14, %rax + 0x4c, 0x29, 0xe0, //0x00004442 subq %r12, %rax + 0x0f, 0xbc, 0xf6, //0x00004445 bsfl %esi, %esi + 0x48, 0x01, 0xc6, //0x00004448 addq %rax, %rsi + 0x49, 0x83, 0xfd, 0xff, //0x0000444b cmpq $-1, %r13 + 0x0f, 0x85, 0xe0, 0x04, 0x00, 0x00, //0x0000444f jne LBB0_956 + 0x49, 0x89, 0xf5, //0x00004455 movq %rsi, %r13 + //0x00004458 LBB0_904 + 0x85, 0xff, //0x00004458 testl %edi, %edi + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000445a je LBB0_907 + 0x4c, 0x89, 0xf0, //0x00004460 movq %r14, %rax + 0x4c, 0x29, 0xe0, //0x00004463 subq %r12, %rax + 0x0f, 0xbc, 0xf7, //0x00004466 bsfl %edi, %esi + 0x48, 0x01, 0xc6, //0x00004469 addq %rax, %rsi + 0x48, 0x83, 0x7c, 0x24, 0x18, 0xff, //0x0000446c cmpq $-1, $24(%rsp) + 0x0f, 0x85, 0xbd, 0x04, 0x00, 0x00, //0x00004472 jne LBB0_956 + 0x48, 0x89, 0x74, 0x24, 0x18, //0x00004478 movq %rsi, $24(%rsp) + //0x0000447d LBB0_907 + 0x83, 0xf9, 0x10, //0x0000447d cmpl $16, %ecx + 0x0f, 0x85, 0x76, 0x01, 0x00, 0x00, //0x00004480 jne LBB0_922 + 0x49, 0x83, 0xc6, 0x10, //0x00004486 addq $16, %r14 + 0x49, 0x83, 0xc1, 0xf0, //0x0000448a addq $-16, %r9 + 0x49, 0x83, 0xf9, 0x0f, //0x0000448e cmpq $15, %r9 + 0x0f, 0x87, 0xd1, 0xfe, 0xff, 0xff, //0x00004492 ja LBB0_893 + 0x4d, 0x89, 0xf9, //0x00004498 movq %r15, %r9 + 0x4d, 0x89, 0xd6, //0x0000449b movq %r10, %r14 + //0x0000449e LBB0_910 + 0x4d, 0x85, 0xc9, //0x0000449e testq %r9, %r9 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000044a1 movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x000044a6 movq $40(%rsp), %r10 + 0x0f, 0x84, 0x58, 0x01, 0x00, 0x00, //0x000044ab je LBB0_923 + 0x4b, 0x8d, 0x0c, 0x0e, //0x000044b1 leaq (%r14,%r9), %rcx + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000044b5 jmp LBB0_915 + //0x000044ba LBB0_912 + 0x49, 0x89, 0xd6, //0x000044ba movq %rdx, %r14 + 0x4d, 0x29, 0xe6, //0x000044bd subq %r12, %r14 + 0x48, 0x83, 0x7c, 0x24, 0x18, 0xff, //0x000044c0 cmpq $-1, $24(%rsp) + 0x0f, 0x85, 0xdd, 0x01, 0x00, 0x00, //0x000044c6 jne LBB0_932 + 0x49, 0xff, 0xce, //0x000044cc decq %r14 + 0x4c, 0x89, 0x74, 0x24, 0x18, //0x000044cf movq %r14, $24(%rsp) + //0x000044d4 LBB0_914 + 0x49, 0x89, 0xd6, //0x000044d4 movq %rdx, %r14 + 0x49, 0xff, 0xc9, //0x000044d7 decq %r9 + 0x0f, 0x84, 0x85, 0x04, 0x00, 0x00, //0x000044da je LBB0_958 + //0x000044e0 LBB0_915 + 0x41, 0x0f, 0xbe, 0x36, //0x000044e0 movsbl (%r14), %esi + 0x83, 0xc6, 0xd5, //0x000044e4 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x000044e7 cmpl $58, %esi + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x000044ea ja LBB0_923 + 0x49, 0x8d, 0x56, 0x01, //0x000044f0 leaq $1(%r14), %rdx + 0x48, 0x8d, 0x3d, 0x55, 0x18, 0x00, 0x00, //0x000044f4 leaq $6229(%rip), %rdi /* LJTI0_4+0(%rip) */ + 0x48, 0x63, 0x04, 0xb7, //0x000044fb movslq (%rdi,%rsi,4), %rax + 0x48, 0x01, 0xf8, //0x000044ff addq %rdi, %rax + 0xff, 0xe0, //0x00004502 jmpq *%rax + //0x00004504 LBB0_917 + 0x49, 0x89, 0xd6, //0x00004504 movq %rdx, %r14 + 0x4d, 0x29, 0xe6, //0x00004507 subq %r12, %r14 + 0x49, 0x83, 0xfd, 0xff, //0x0000450a cmpq $-1, %r13 + 0x0f, 0x85, 0x95, 0x01, 0x00, 0x00, //0x0000450e jne LBB0_932 + 0x49, 0xff, 0xce, //0x00004514 decq %r14 + 0x4d, 0x89, 0xf5, //0x00004517 movq %r14, %r13 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x0000451a jmp LBB0_914 + //0x0000451f LBB0_919 + 0x49, 0x89, 0xd6, //0x0000451f movq %rdx, %r14 + 0x4d, 0x29, 0xe6, //0x00004522 subq %r12, %r14 + 0x48, 0x83, 0x7c, 0x24, 0x30, 0xff, //0x00004525 cmpq $-1, $48(%rsp) + 0x0f, 0x85, 0x78, 0x01, 0x00, 0x00, //0x0000452b jne LBB0_932 + 0x49, 0xff, 0xce, //0x00004531 decq %r14 + 0x4c, 0x89, 0x74, 0x24, 0x30, //0x00004534 movq %r14, $48(%rsp) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00004539 jmp LBB0_914 + //0x0000453e LBB0_1104 + 0x49, 0x01, 0xcf, //0x0000453e addq %rcx, %r15 + 0xc5, 0xf8, 0x77, //0x00004541 vzeroupper + 0xc5, 0x7a, 0x6f, 0x3d, 0xc4, 0xbc, 0xff, 0xff, //0x00004544 vmovdqu $-17212(%rip), %xmm15 /* LCPI0_18+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x4c, 0xbb, 0xff, 0xff, //0x0000454c vmovdqu $-17588(%rip), %ymm7 /* LCPI0_8+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x24, 0xbb, 0xff, 0xff, //0x00004554 vmovdqu $-17628(%rip), %ymm6 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x9c, 0xba, 0xff, 0xff, //0x0000455c vmovdqu $-17764(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0x4d, 0x89, 0xfe, //0x00004564 movq %r15, %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004567 movq $16(%rsp), %r15 + 0x4d, 0x85, 0xed, //0x0000456c testq %r13, %r13 + 0x48, 0x8b, 0x54, 0x24, 0x30, //0x0000456f movq $48(%rsp), %rdx + 0x48, 0x8b, 0x74, 0x24, 0x18, //0x00004574 movq $24(%rsp), %rsi + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00004579 jne LBB0_924 + 0xe9, 0xdc, 0x10, 0x00, 0x00, //0x0000457f jmp LBB0_1105 + //0x00004584 LBB0_713 + 0x4d, 0x89, 0xcf, //0x00004584 movq %r9, %r15 + 0x4c, 0x89, 0xd1, //0x00004587 movq %r10, %rcx + 0x4c, 0x89, 0xeb, //0x0000458a movq %r13, %rbx + 0x4d, 0x89, 0xc2, //0x0000458d movq %r8, %r10 + 0x4c, 0x8b, 0x04, 0x24, //0x00004590 movq (%rsp), %r8 + 0x48, 0x83, 0xf9, 0x20, //0x00004594 cmpq $32, %rcx + 0x0f, 0x82, 0xb7, 0x04, 0x00, 0x00, //0x00004598 jb LBB0_968 + //0x0000459e LBB0_714 + 0xc5, 0xfe, 0x6f, 0x03, //0x0000459e vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x000045a2 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf9, //0x000045a6 vpmovmskb %ymm1, %edi + 0xc5, 0xfd, 0x74, 0xc7, //0x000045aa vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x000045ae vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x000045b2 testl %esi, %esi + 0x0f, 0x85, 0x21, 0x04, 0x00, 0x00, //0x000045b4 jne LBB0_963 + 0x4d, 0x85, 0xf6, //0x000045ba testq %r14, %r14 + 0x0f, 0x85, 0x3d, 0x04, 0x00, 0x00, //0x000045bd jne LBB0_965 + 0x45, 0x31, 0xf6, //0x000045c3 xorl %r14d, %r14d + 0x48, 0x85, 0xff, //0x000045c6 testq %rdi, %rdi + 0x0f, 0x84, 0x7e, 0x04, 0x00, 0x00, //0x000045c9 je LBB0_967 + //0x000045cf LBB0_717 + 0x48, 0x0f, 0xbc, 0xc7, //0x000045cf bsfq %rdi, %rax + 0x4c, 0x29, 0xe3, //0x000045d3 subq %r12, %rbx + 0x4c, 0x8d, 0x6c, 0x03, 0x01, //0x000045d6 leaq $1(%rbx,%rax), %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000045db movq $8(%rsp), %r14 + 0xe9, 0xf7, 0x04, 0x00, 0x00, //0x000045e0 jmp LBB0_977 + //0x000045e5 LBB0_921 + 0x4c, 0x29, 0xcb, //0x000045e5 subq %r9, %rbx + 0x44, 0x0f, 0xbc, 0xc2, //0x000045e8 bsfl %edx, %r8d + 0x49, 0x01, 0xd8, //0x000045ec addq %rbx, %r8 + 0x49, 0xf7, 0xd0, //0x000045ef notq %r8 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000045f2 movq $8(%rsp), %r14 + 0xe9, 0x46, 0xfb, 0xff, 0xff, //0x000045f7 jmp LBB0_864 + //0x000045fc LBB0_922 + 0x49, 0x01, 0xce, //0x000045fc addq %rcx, %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000045ff movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004604 movq $40(%rsp), %r10 + //0x00004609 LBB0_923 + 0x4d, 0x85, 0xed, //0x00004609 testq %r13, %r13 + 0x48, 0x8b, 0x54, 0x24, 0x30, //0x0000460c movq $48(%rsp), %rdx + 0x48, 0x8b, 0x74, 0x24, 0x18, //0x00004611 movq $24(%rsp), %rsi + 0x0f, 0x84, 0x44, 0x10, 0x00, 0x00, //0x00004616 je LBB0_1105 + //0x0000461c LBB0_924 + 0x48, 0x85, 0xf6, //0x0000461c testq %rsi, %rsi + 0x0f, 0x84, 0x3b, 0x10, 0x00, 0x00, //0x0000461f je LBB0_1105 + 0x48, 0x85, 0xd2, //0x00004625 testq %rdx, %rdx + 0x0f, 0x84, 0x32, 0x10, 0x00, 0x00, //0x00004628 je LBB0_1105 + 0x4d, 0x29, 0xe6, //0x0000462e subq %r12, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00004631 leaq $-1(%r14), %rcx + 0x49, 0x39, 0xcd, //0x00004635 cmpq %rcx, %r13 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00004638 je LBB0_932 + 0x48, 0x39, 0xca, //0x0000463e cmpq %rcx, %rdx + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x00004641 je LBB0_932 + 0x48, 0x39, 0xce, //0x00004647 cmpq %rcx, %rsi + 0x0f, 0x84, 0x59, 0x00, 0x00, 0x00, //0x0000464a je LBB0_932 + 0x48, 0x85, 0xf6, //0x00004650 testq %rsi, %rsi + 0xc5, 0x7e, 0x6f, 0x05, 0xc5, 0xba, 0xff, 0xff, //0x00004653 vmovdqu $-17723(%rip), %ymm8 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0xdd, 0xba, 0xff, 0xff, //0x0000465b vmovdqu $-17699(%rip), %ymm9 /* LCPI0_13+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xf5, 0xba, 0xff, 0xff, //0x00004663 vmovdqu $-17675(%rip), %ymm10 /* LCPI0_14+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x0d, 0xbb, 0xff, 0xff, //0x0000466b vmovdqu $-17651(%rip), %ymm11 /* LCPI0_15+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xc5, 0xb9, 0xff, 0xff, //0x00004673 vmovdqu $-17979(%rip), %ymm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x1d, 0xbb, 0xff, 0xff, //0x0000467b vmovdqu $-17635(%rip), %ymm13 /* LCPI0_16+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x35, 0xbb, 0xff, 0xff, //0x00004683 vmovdqu $-17611(%rip), %ymm14 /* LCPI0_17+0(%rip) */ + 0x0f, 0x8e, 0x71, 0x00, 0x00, 0x00, //0x0000468b jle LBB0_936 + 0x48, 0x8d, 0x46, 0xff, //0x00004691 leaq $-1(%rsi), %rax + 0x49, 0x39, 0xc5, //0x00004695 cmpq %rax, %r13 + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00004698 je LBB0_936 + 0x48, 0xf7, 0xd6, //0x0000469e notq %rsi + 0x49, 0x89, 0xf6, //0x000046a1 movq %rsi, %r14 + 0xe9, 0x3b, 0x00, 0x00, 0x00, //0x000046a4 jmp LBB0_934 + //0x000046a9 LBB0_932 + 0x49, 0xf7, 0xde, //0x000046a9 negq %r14 + //0x000046ac LBB0_933 + 0xc5, 0x7e, 0x6f, 0x05, 0x6c, 0xba, 0xff, 0xff, //0x000046ac vmovdqu $-17812(%rip), %ymm8 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x84, 0xba, 0xff, 0xff, //0x000046b4 vmovdqu $-17788(%rip), %ymm9 /* LCPI0_13+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x9c, 0xba, 0xff, 0xff, //0x000046bc vmovdqu $-17764(%rip), %ymm10 /* LCPI0_14+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xb4, 0xba, 0xff, 0xff, //0x000046c4 vmovdqu $-17740(%rip), %ymm11 /* LCPI0_15+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x6c, 0xb9, 0xff, 0xff, //0x000046cc vmovdqu $-18068(%rip), %ymm12 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xc4, 0xba, 0xff, 0xff, //0x000046d4 vmovdqu $-17724(%rip), %ymm13 /* LCPI0_16+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xdc, 0xba, 0xff, 0xff, //0x000046dc vmovdqu $-17700(%rip), %ymm14 /* LCPI0_17+0(%rip) */ + //0x000046e4 LBB0_934 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x000046e4 movq $8(%rsp), %rax + 0x4c, 0x8b, 0x28, //0x000046e9 movq (%rax), %r13 + 0x4d, 0x85, 0xf6, //0x000046ec testq %r14, %r14 + 0x0f, 0x88, 0x7a, 0x0f, 0x00, 0x00, //0x000046ef js LBB0_1107 + //0x000046f5 LBB0_935 + 0x4d, 0x01, 0xf5, //0x000046f5 addq %r14, %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000046f8 movq $8(%rsp), %r14 + 0xe9, 0xe8, 0xef, 0xff, 0xff, //0x000046fd jmp LBB0_721 + //0x00004702 LBB0_936 + 0x48, 0x89, 0xd1, //0x00004702 movq %rdx, %rcx + 0x4c, 0x09, 0xe9, //0x00004705 orq %r13, %rcx + 0x4c, 0x39, 0xea, //0x00004708 cmpq %r13, %rdx + 0x0f, 0x8c, 0x73, 0x00, 0x00, 0x00, //0x0000470b jl LBB0_939 + 0x48, 0x85, 0xc9, //0x00004711 testq %rcx, %rcx + 0x0f, 0x88, 0x6a, 0x00, 0x00, 0x00, //0x00004714 js LBB0_939 + 0x48, 0xf7, 0xd2, //0x0000471a notq %rdx + 0x49, 0x89, 0xd6, //0x0000471d movq %rdx, %r14 + 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00004720 jmp LBB0_934 + //0x00004725 LBB0_745 + 0x4d, 0x89, 0xcf, //0x00004725 movq %r9, %r15 + 0x4c, 0x89, 0xd1, //0x00004728 movq %r10, %rcx + 0x4c, 0x89, 0xeb, //0x0000472b movq %r13, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x0000472e cmpq $32, %rcx + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004732 movq $40(%rsp), %r10 + 0x0f, 0x82, 0x1a, 0x04, 0x00, 0x00, //0x00004737 jb LBB0_984 + //0x0000473d LBB0_746 + 0xc5, 0xfe, 0x6f, 0x03, //0x0000473d vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00004741 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf9, //0x00004745 vpmovmskb %ymm1, %edi + 0xc5, 0xfd, 0x74, 0xc7, //0x00004749 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000474d vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00004751 testl %esi, %esi + 0x0f, 0x85, 0x96, 0x03, 0x00, 0x00, //0x00004753 jne LBB0_980 + 0x4d, 0x85, 0xf6, //0x00004759 testq %r14, %r14 + 0x0f, 0x85, 0xa7, 0x03, 0x00, 0x00, //0x0000475c jne LBB0_982 + 0x45, 0x31, 0xf6, //0x00004762 xorl %r14d, %r14d + 0x48, 0x85, 0xff, //0x00004765 testq %rdi, %rdi + 0x0f, 0x84, 0xe1, 0x03, 0x00, 0x00, //0x00004768 je LBB0_983 + //0x0000476e LBB0_749 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000476e bsfq %rdi, %rax + 0x4c, 0x29, 0xe3, //0x00004772 subq %r12, %rbx + 0x4c, 0x8d, 0x6c, 0x03, 0x01, //0x00004775 leaq $1(%rbx,%rax), %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x0000477a movq $8(%rsp), %r14 + 0xe9, 0x5f, 0x04, 0x00, 0x00, //0x0000477f jmp LBB0_993 + //0x00004784 LBB0_939 + 0x48, 0x85, 0xc9, //0x00004784 testq %rcx, %rcx + 0x49, 0x8d, 0x45, 0xff, //0x00004787 leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x0000478b notq %r13 + 0x4d, 0x0f, 0x48, 0xee, //0x0000478e cmovsq %r14, %r13 + 0x48, 0x39, 0xc2, //0x00004792 cmpq %rax, %rdx + 0x4d, 0x0f, 0x44, 0xf5, //0x00004795 cmoveq %r13, %r14 + 0xe9, 0x46, 0xff, 0xff, 0xff, //0x00004799 jmp LBB0_934 + //0x0000479e LBB0_940 + 0x4d, 0x29, 0xc8, //0x0000479e subq %r9, %r8 + 0x0f, 0xbc, 0xc2, //0x000047a1 bsfl %edx, %eax + 0x4c, 0x01, 0xc0, //0x000047a4 addq %r8, %rax + 0x48, 0xf7, 0xd0, //0x000047a7 notq %rax + 0x49, 0x89, 0xc0, //0x000047aa movq %rax, %r8 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000047ad movq $8(%rsp), %r14 + 0xe9, 0x8b, 0xf9, 0xff, 0xff, //0x000047b2 jmp LBB0_864 + //0x000047b7 LBB0_941 + 0x48, 0xf7, 0xd2, //0x000047b7 notq %rdx + 0x49, 0x89, 0xd0, //0x000047ba movq %rdx, %r8 + 0xe9, 0x80, 0xf9, 0xff, 0xff, //0x000047bd jmp LBB0_864 + //0x000047c2 LBB0_942 + 0x48, 0xf7, 0xd2, //0x000047c2 notq %rdx + 0x49, 0x89, 0xd0, //0x000047c5 movq %rdx, %r8 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000047c8 movq $8(%rsp), %r14 + 0xe9, 0x70, 0xf9, 0xff, 0xff, //0x000047cd jmp LBB0_864 + //0x000047d2 LBB0_943 + 0x48, 0xf7, 0xd6, //0x000047d2 notq %rsi + 0x49, 0x89, 0xf0, //0x000047d5 movq %rsi, %r8 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x000047d8 movq $8(%rsp), %r14 + 0xe9, 0x60, 0xf9, 0xff, 0xff, //0x000047dd jmp LBB0_864 + //0x000047e2 LBB0_944 + 0x49, 0x89, 0xc8, //0x000047e2 movq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000047e5 movq $-1, %rcx + 0x4d, 0x85, 0xff, //0x000047ec testq %r15, %r15 + 0x0f, 0x85, 0x9f, 0xf5, 0xff, 0xff, //0x000047ef jne LBB0_810 + 0xe9, 0xc6, 0x0c, 0x00, 0x00, //0x000047f5 jmp LBB0_1086 + //0x000047fa LBB0_945 + 0x48, 0xf7, 0xd3, //0x000047fa notq %rbx + 0x49, 0x89, 0xd8, //0x000047fd movq %rbx, %r8 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004800 movq $8(%rsp), %r14 + 0xe9, 0x38, 0xf9, 0xff, 0xff, //0x00004805 jmp LBB0_864 + //0x0000480a LBB0_830 + 0x4d, 0x89, 0xcf, //0x0000480a movq %r9, %r15 + 0x4c, 0x89, 0xd1, //0x0000480d movq %r10, %rcx + 0x4c, 0x89, 0xeb, //0x00004810 movq %r13, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00004813 cmpq $32, %rcx + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004817 movq $40(%rsp), %r10 + 0x0f, 0x82, 0xaf, 0x04, 0x00, 0x00, //0x0000481c jb LBB0_1002 + //0x00004822 LBB0_831 + 0xc5, 0xfe, 0x6f, 0x03, //0x00004822 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00004826 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf9, //0x0000482a vpmovmskb %ymm1, %edi + 0xc5, 0xfd, 0x74, 0xc7, //0x0000482e vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00004832 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00004836 testl %esi, %esi + 0x0f, 0x85, 0x2b, 0x04, 0x00, 0x00, //0x00004838 jne LBB0_998 + 0x4d, 0x85, 0xf6, //0x0000483e testq %r14, %r14 + 0x0f, 0x85, 0x3c, 0x04, 0x00, 0x00, //0x00004841 jne LBB0_1000 + 0x45, 0x31, 0xf6, //0x00004847 xorl %r14d, %r14d + 0x48, 0x85, 0xff, //0x0000484a testq %rdi, %rdi + 0x0f, 0x84, 0x76, 0x04, 0x00, 0x00, //0x0000484d je LBB0_1001 + //0x00004853 LBB0_834 + 0x48, 0x0f, 0xbc, 0xc7, //0x00004853 bsfq %rdi, %rax + 0x4c, 0x29, 0xe3, //0x00004857 subq %r12, %rbx + 0x4c, 0x8d, 0x6c, 0x03, 0x01, //0x0000485a leaq $1(%rbx,%rax), %r13 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x0000485f movq $16(%rsp), %r15 + 0x4d, 0x85, 0xed, //0x00004864 testq %r13, %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004867 movq $8(%rsp), %r14 + 0x0f, 0x89, 0xa6, 0xf7, 0xff, 0xff, //0x0000486c jns LBB0_838 + 0xe9, 0x27, 0x0c, 0x00, 0x00, //0x00004872 jmp LBB0_1082 + //0x00004877 LBB0_946 + 0x49, 0xf7, 0xd8, //0x00004877 negq %r8 + 0xe9, 0xc3, 0xf8, 0xff, 0xff, //0x0000487a jmp LBB0_864 + //0x0000487f LBB0_947 + 0x4d, 0x29, 0xe6, //0x0000487f subq %r12, %r14 + 0x0f, 0xbc, 0xc2, //0x00004882 bsfl %edx, %eax + 0x4c, 0x01, 0xf0, //0x00004885 addq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00004888 notq %rax + 0x49, 0x89, 0xc6, //0x0000488b movq %rax, %r14 + 0xe9, 0xf3, 0x00, 0x00, 0x00, //0x0000488e jmp LBB0_960 + //0x00004893 LBB0_948 + 0x48, 0xf7, 0xd6, //0x00004893 notq %rsi + 0x49, 0x89, 0xf6, //0x00004896 movq %rsi, %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004899 movq $16(%rsp), %r15 + 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x0000489e jmp LBB0_934 + //0x000048a3 LBB0_949 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000048a3 movq $-1, %r9 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000048aa movq $-1, %r15 + 0x45, 0x31, 0xf6, //0x000048b1 xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x000048b4 cmpq $32, %rcx + 0x0f, 0x83, 0xe0, 0xfc, 0xff, 0xff, //0x000048b8 jae LBB0_714 + 0xe9, 0x92, 0x01, 0x00, 0x00, //0x000048be jmp LBB0_968 + //0x000048c3 LBB0_950 + 0x4d, 0x29, 0xe7, //0x000048c3 subq %r12, %r15 + 0x45, 0x0f, 0xbc, 0xf2, //0x000048c6 bsfl %r10d, %r14d + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000048ca jmp LBB0_952 + //0x000048cf LBB0_951 + 0x4d, 0x29, 0xe7, //0x000048cf subq %r12, %r15 + 0x44, 0x0f, 0xbc, 0xf2, //0x000048d2 bsfl %edx, %r14d + //0x000048d6 LBB0_952 + 0x4d, 0x01, 0xfe, //0x000048d6 addq %r15, %r14 + 0x49, 0xf7, 0xd6, //0x000048d9 notq %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000048dc movq $16(%rsp), %r15 + 0x4d, 0x89, 0xc2, //0x000048e1 movq %r8, %r10 + 0x4c, 0x8b, 0x04, 0x24, //0x000048e4 movq (%rsp), %r8 + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x000048e8 jmp LBB0_934 + //0x000048ed LBB0_953 + 0x4d, 0x29, 0xe7, //0x000048ed subq %r12, %r15 + 0x44, 0x0f, 0xbc, 0xf2, //0x000048f0 bsfl %edx, %r14d + 0x4d, 0x01, 0xfe, //0x000048f4 addq %r15, %r14 + 0x49, 0xf7, 0xd6, //0x000048f7 notq %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000048fa movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x04, 0x24, //0x000048ff movq (%rsp), %r8 + 0xe9, 0xdc, 0xfd, 0xff, 0xff, //0x00004903 jmp LBB0_934 + //0x00004908 LBB0_954 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004908 movq $-1, %r13 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000490f movq $-1, %r15 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00004916 movq $-1, %r12 + 0x4d, 0x89, 0xc8, //0x0000491d movq %r9, %r8 + 0xe9, 0xe2, 0xf1, 0xff, 0xff, //0x00004920 jmp LBB0_777 + //0x00004925 LBB0_955 + 0x48, 0xf7, 0xd3, //0x00004925 notq %rbx + 0x49, 0x89, 0xde, //0x00004928 movq %rbx, %r14 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x0000492b movq $16(%rsp), %r15 + 0xe9, 0xaf, 0xfd, 0xff, 0xff, //0x00004930 jmp LBB0_934 + //0x00004935 LBB0_956 + 0x48, 0xf7, 0xd6, //0x00004935 notq %rsi + 0x49, 0x89, 0xf6, //0x00004938 movq %rsi, %r14 + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x0000493b jmp LBB0_960 + //0x00004940 LBB0_957 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004940 movq $-1, %r9 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004947 movq $-1, %r15 + 0x45, 0x31, 0xf6, //0x0000494e xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00004951 cmpq $32, %rcx + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004955 movq $40(%rsp), %r10 + 0x0f, 0x83, 0xdd, 0xfd, 0xff, 0xff, //0x0000495a jae LBB0_746 + 0xe9, 0xf2, 0x01, 0x00, 0x00, //0x00004960 jmp LBB0_984 + //0x00004965 LBB0_958 + 0x49, 0x89, 0xce, //0x00004965 movq %rcx, %r14 + 0x4d, 0x85, 0xed, //0x00004968 testq %r13, %r13 + 0x48, 0x8b, 0x54, 0x24, 0x30, //0x0000496b movq $48(%rsp), %rdx + 0x48, 0x8b, 0x74, 0x24, 0x18, //0x00004970 movq $24(%rsp), %rsi + 0x0f, 0x85, 0xa1, 0xfc, 0xff, 0xff, //0x00004975 jne LBB0_924 + 0xe9, 0xe0, 0x0c, 0x00, 0x00, //0x0000497b jmp LBB0_1105 + //0x00004980 LBB0_959 + 0x48, 0xf7, 0xd3, //0x00004980 notq %rbx + 0x49, 0x89, 0xde, //0x00004983 movq %rbx, %r14 + //0x00004986 LBB0_960 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004986 movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x0000498b movq $40(%rsp), %r10 + 0xe9, 0x17, 0xfd, 0xff, 0xff, //0x00004990 jmp LBB0_933 + //0x00004995 LBB0_961 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004995 movq $-1, %r9 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000499c movq $-1, %r15 + 0x45, 0x31, 0xf6, //0x000049a3 xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x000049a6 cmpq $32, %rcx + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x000049aa movq $40(%rsp), %r10 + 0x0f, 0x83, 0x6d, 0xfe, 0xff, 0xff, //0x000049af jae LBB0_831 + 0xe9, 0x17, 0x03, 0x00, 0x00, //0x000049b5 jmp LBB0_1002 + //0x000049ba LBB0_962 + 0x48, 0xc7, 0x44, 0x24, 0x18, 0xff, 0xff, 0xff, 0xff, //0x000049ba movq $-1, $24(%rsp) + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000049c3 movq $-1, %r13 + 0x48, 0xc7, 0x44, 0x24, 0x30, 0xff, 0xff, 0xff, 0xff, //0x000049ca movq $-1, $48(%rsp) + 0x4d, 0x89, 0xe6, //0x000049d3 movq %r12, %r14 + 0xe9, 0x50, 0xf9, 0xff, 0xff, //0x000049d6 jmp LBB0_891 + //0x000049db LBB0_963 + 0x4d, 0x89, 0xc5, //0x000049db movq %r8, %r13 + 0x4d, 0x89, 0xd0, //0x000049de movq %r10, %r8 + 0x49, 0x83, 0xff, 0xff, //0x000049e1 cmpq $-1, %r15 + 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x000049e5 jne LBB0_966 + 0x48, 0x89, 0xd8, //0x000049eb movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x000049ee subq %r12, %rax + 0x4c, 0x0f, 0xbc, 0xce, //0x000049f1 bsfq %rsi, %r9 + 0x49, 0x01, 0xc1, //0x000049f5 addq %rax, %r9 + 0x4d, 0x89, 0xcf, //0x000049f8 movq %r9, %r15 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000049fb jmp LBB0_966 + //0x00004a00 LBB0_965 + 0x4d, 0x89, 0xc5, //0x00004a00 movq %r8, %r13 + 0x4d, 0x89, 0xd0, //0x00004a03 movq %r10, %r8 + //0x00004a06 LBB0_966 + 0x44, 0x89, 0xf0, //0x00004a06 movl %r14d, %eax + 0xf7, 0xd0, //0x00004a09 notl %eax + 0x21, 0xf0, //0x00004a0b andl %esi, %eax + 0x44, 0x8d, 0x14, 0x00, //0x00004a0d leal (%rax,%rax), %r10d + 0x45, 0x09, 0xf2, //0x00004a11 orl %r14d, %r10d + 0x44, 0x89, 0xd2, //0x00004a14 movl %r10d, %edx + 0xf7, 0xd2, //0x00004a17 notl %edx + 0x21, 0xf2, //0x00004a19 andl %esi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004a1b andl $-1431655766, %edx + 0x45, 0x31, 0xf6, //0x00004a21 xorl %r14d, %r14d + 0x01, 0xc2, //0x00004a24 addl %eax, %edx + 0x41, 0x0f, 0x92, 0xc6, //0x00004a26 setb %r14b + 0x01, 0xd2, //0x00004a2a addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00004a2c xorl $1431655765, %edx + 0x44, 0x21, 0xd2, //0x00004a32 andl %r10d, %edx + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00004a35 movl $4294967295, %eax + 0x31, 0xd0, //0x00004a3a xorl %edx, %eax + 0x21, 0xc7, //0x00004a3c andl %eax, %edi + 0x4d, 0x89, 0xc2, //0x00004a3e movq %r8, %r10 + 0x4d, 0x89, 0xe8, //0x00004a41 movq %r13, %r8 + 0x48, 0x85, 0xff, //0x00004a44 testq %rdi, %rdi + 0x0f, 0x85, 0x82, 0xfb, 0xff, 0xff, //0x00004a47 jne LBB0_717 + //0x00004a4d LBB0_967 + 0x48, 0x83, 0xc3, 0x20, //0x00004a4d addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00004a51 addq $-32, %rcx + //0x00004a55 LBB0_968 + 0x4d, 0x85, 0xf6, //0x00004a55 testq %r14, %r14 + 0x0f, 0x85, 0x98, 0x01, 0x00, 0x00, //0x00004a58 jne LBB0_994 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004a5e movq $8(%rsp), %r14 + 0x48, 0x85, 0xc9, //0x00004a63 testq %rcx, %rcx + 0x0f, 0x84, 0x64, 0x03, 0x00, 0x00, //0x00004a66 je LBB0_979 + //0x00004a6c LBB0_970 + 0x4c, 0x89, 0xe7, //0x00004a6c movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00004a6f notq %rdi + //0x00004a72 LBB0_971 + 0x4c, 0x8d, 0x6b, 0x01, //0x00004a72 leaq $1(%rbx), %r13 + 0x0f, 0xb6, 0x13, //0x00004a76 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00004a79 cmpb $34, %dl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00004a7c je LBB0_976 + 0x48, 0x8d, 0x71, 0xff, //0x00004a82 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00004a86 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00004a89 je LBB0_974 + 0x48, 0x89, 0xf1, //0x00004a8f movq %rsi, %rcx + 0x4c, 0x89, 0xeb, //0x00004a92 movq %r13, %rbx + 0x48, 0x85, 0xf6, //0x00004a95 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00004a98 jne LBB0_971 + 0xe9, 0x2d, 0x03, 0x00, 0x00, //0x00004a9e jmp LBB0_979 + //0x00004aa3 LBB0_974 + 0x48, 0x85, 0xf6, //0x00004aa3 testq %rsi, %rsi + 0x0f, 0x84, 0x90, 0x0c, 0x00, 0x00, //0x00004aa6 je LBB0_1123 + 0x49, 0x01, 0xfd, //0x00004aac addq %rdi, %r13 + 0x49, 0x83, 0xff, 0xff, //0x00004aaf cmpq $-1, %r15 + 0x4d, 0x0f, 0x44, 0xcd, //0x00004ab3 cmoveq %r13, %r9 + 0x4d, 0x0f, 0x44, 0xfd, //0x00004ab7 cmoveq %r13, %r15 + 0x48, 0x83, 0xc3, 0x02, //0x00004abb addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00004abf addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00004ac3 movq %rcx, %rsi + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004ac6 movq $8(%rsp), %r14 + 0x48, 0x85, 0xf6, //0x00004acb testq %rsi, %rsi + 0x0f, 0x85, 0x9e, 0xff, 0xff, 0xff, //0x00004ace jne LBB0_971 + 0xe9, 0xf7, 0x02, 0x00, 0x00, //0x00004ad4 jmp LBB0_979 + //0x00004ad9 LBB0_976 + 0x4d, 0x29, 0xe5, //0x00004ad9 subq %r12, %r13 + //0x00004adc LBB0_977 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004adc movq $16(%rsp), %r15 + 0x4d, 0x85, 0xed, //0x00004ae1 testq %r13, %r13 + 0x0f, 0x89, 0x00, 0xec, 0xff, 0xff, //0x00004ae4 jns LBB0_721 + 0xe9, 0xd7, 0x02, 0x00, 0x00, //0x00004aea jmp LBB0_978 + //0x00004aef LBB0_980 + 0x49, 0x83, 0xff, 0xff, //0x00004aef cmpq $-1, %r15 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004af3 jne LBB0_982 + 0x48, 0x89, 0xd8, //0x00004af9 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x00004afc subq %r12, %rax + 0x4c, 0x0f, 0xbc, 0xce, //0x00004aff bsfq %rsi, %r9 + 0x49, 0x01, 0xc1, //0x00004b03 addq %rax, %r9 + 0x4d, 0x89, 0xcf, //0x00004b06 movq %r9, %r15 + //0x00004b09 LBB0_982 + 0x44, 0x89, 0xf0, //0x00004b09 movl %r14d, %eax + 0xf7, 0xd0, //0x00004b0c notl %eax + 0x21, 0xf0, //0x00004b0e andl %esi, %eax + 0x44, 0x8d, 0x14, 0x00, //0x00004b10 leal (%rax,%rax), %r10d + 0x45, 0x09, 0xf2, //0x00004b14 orl %r14d, %r10d + 0x44, 0x89, 0xd2, //0x00004b17 movl %r10d, %edx + 0xf7, 0xd2, //0x00004b1a notl %edx + 0x21, 0xf2, //0x00004b1c andl %esi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004b1e andl $-1431655766, %edx + 0x45, 0x31, 0xf6, //0x00004b24 xorl %r14d, %r14d + 0x01, 0xc2, //0x00004b27 addl %eax, %edx + 0x41, 0x0f, 0x92, 0xc6, //0x00004b29 setb %r14b + 0x01, 0xd2, //0x00004b2d addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00004b2f xorl $1431655765, %edx + 0x44, 0x21, 0xd2, //0x00004b35 andl %r10d, %edx + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00004b38 movl $4294967295, %eax + 0x31, 0xd0, //0x00004b3d xorl %edx, %eax + 0x21, 0xc7, //0x00004b3f andl %eax, %edi + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004b41 movq $40(%rsp), %r10 + 0x48, 0x85, 0xff, //0x00004b46 testq %rdi, %rdi + 0x0f, 0x85, 0x1f, 0xfc, 0xff, 0xff, //0x00004b49 jne LBB0_749 + //0x00004b4f LBB0_983 + 0x48, 0x83, 0xc3, 0x20, //0x00004b4f addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00004b53 addq $-32, %rcx + //0x00004b57 LBB0_984 + 0x4d, 0x85, 0xf6, //0x00004b57 testq %r14, %r14 + 0x0f, 0x85, 0xcd, 0x00, 0x00, 0x00, //0x00004b5a jne LBB0_996 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004b60 movq $8(%rsp), %r14 + 0x48, 0x85, 0xc9, //0x00004b65 testq %rcx, %rcx + 0x0f, 0x84, 0x3a, 0x09, 0x00, 0x00, //0x00004b68 je LBB0_1083 + //0x00004b6e LBB0_986 + 0x4c, 0x89, 0xe7, //0x00004b6e movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00004b71 notq %rdi + //0x00004b74 LBB0_987 + 0x4c, 0x8d, 0x6b, 0x01, //0x00004b74 leaq $1(%rbx), %r13 + 0x0f, 0xb6, 0x13, //0x00004b78 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00004b7b cmpb $34, %dl + 0x0f, 0x84, 0x5c, 0x00, 0x00, 0x00, //0x00004b7e je LBB0_992 + 0x48, 0x8d, 0x71, 0xff, //0x00004b84 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00004b88 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00004b8b je LBB0_990 + 0x48, 0x89, 0xf1, //0x00004b91 movq %rsi, %rcx + 0x4c, 0x89, 0xeb, //0x00004b94 movq %r13, %rbx + 0x48, 0x85, 0xf6, //0x00004b97 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00004b9a jne LBB0_987 + 0xe9, 0x03, 0x09, 0x00, 0x00, //0x00004ba0 jmp LBB0_1083 + //0x00004ba5 LBB0_990 + 0x48, 0x85, 0xf6, //0x00004ba5 testq %rsi, %rsi + 0x0f, 0x84, 0xea, 0x01, 0x00, 0x00, //0x00004ba8 je LBB0_1012 + 0x49, 0x01, 0xfd, //0x00004bae addq %rdi, %r13 + 0x49, 0x83, 0xff, 0xff, //0x00004bb1 cmpq $-1, %r15 + 0x4d, 0x0f, 0x44, 0xcd, //0x00004bb5 cmoveq %r13, %r9 + 0x4d, 0x0f, 0x44, 0xfd, //0x00004bb9 cmoveq %r13, %r15 + 0x48, 0x83, 0xc3, 0x02, //0x00004bbd addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00004bc1 addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00004bc5 movq %rcx, %rsi + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004bc8 movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004bcd movq $40(%rsp), %r10 + 0x48, 0x85, 0xf6, //0x00004bd2 testq %rsi, %rsi + 0x0f, 0x85, 0x99, 0xff, 0xff, 0xff, //0x00004bd5 jne LBB0_987 + 0xe9, 0xc8, 0x08, 0x00, 0x00, //0x00004bdb jmp LBB0_1083 + //0x00004be0 LBB0_992 + 0x4d, 0x29, 0xe5, //0x00004be0 subq %r12, %r13 + //0x00004be3 LBB0_993 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004be3 movq $16(%rsp), %r15 + 0x4d, 0x85, 0xed, //0x00004be8 testq %r13, %r13 + 0x0f, 0x89, 0x57, 0xed, 0xff, 0xff, //0x00004beb jns LBB0_753 + 0xe9, 0xa8, 0x08, 0x00, 0x00, //0x00004bf1 jmp LBB0_1082 + //0x00004bf6 LBB0_994 + 0x48, 0x85, 0xc9, //0x00004bf6 testq %rcx, %rcx + 0x0f, 0x84, 0x3d, 0x0b, 0x00, 0x00, //0x00004bf9 je LBB0_1123 + 0x4c, 0x89, 0xe0, //0x00004bff movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00004c02 notq %rax + 0x48, 0x01, 0xd8, //0x00004c05 addq %rbx, %rax + 0x49, 0x83, 0xff, 0xff, //0x00004c08 cmpq $-1, %r15 + 0x4c, 0x0f, 0x44, 0xc8, //0x00004c0c cmoveq %rax, %r9 + 0x4c, 0x0f, 0x44, 0xf8, //0x00004c10 cmoveq %rax, %r15 + 0x48, 0xff, 0xc3, //0x00004c14 incq %rbx + 0x48, 0xff, 0xc9, //0x00004c17 decq %rcx + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004c1a movq $8(%rsp), %r14 + 0x48, 0x85, 0xc9, //0x00004c1f testq %rcx, %rcx + 0x0f, 0x85, 0x44, 0xfe, 0xff, 0xff, //0x00004c22 jne LBB0_970 + 0xe9, 0xa3, 0x01, 0x00, 0x00, //0x00004c28 jmp LBB0_979 + //0x00004c2d LBB0_996 + 0x48, 0x85, 0xc9, //0x00004c2d testq %rcx, %rcx + 0x0f, 0x84, 0x62, 0x01, 0x00, 0x00, //0x00004c30 je LBB0_1012 + 0x4c, 0x89, 0xe0, //0x00004c36 movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00004c39 notq %rax + 0x48, 0x01, 0xd8, //0x00004c3c addq %rbx, %rax + 0x49, 0x83, 0xff, 0xff, //0x00004c3f cmpq $-1, %r15 + 0x4c, 0x0f, 0x44, 0xc8, //0x00004c43 cmoveq %rax, %r9 + 0x4c, 0x0f, 0x44, 0xf8, //0x00004c47 cmoveq %rax, %r15 + 0x48, 0xff, 0xc3, //0x00004c4b incq %rbx + 0x48, 0xff, 0xc9, //0x00004c4e decq %rcx + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004c51 movq $8(%rsp), %r14 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004c56 movq $40(%rsp), %r10 + 0x48, 0x85, 0xc9, //0x00004c5b testq %rcx, %rcx + 0x0f, 0x85, 0x0a, 0xff, 0xff, 0xff, //0x00004c5e jne LBB0_986 + 0xe9, 0x3f, 0x08, 0x00, 0x00, //0x00004c64 jmp LBB0_1083 + //0x00004c69 LBB0_998 + 0x49, 0x83, 0xff, 0xff, //0x00004c69 cmpq $-1, %r15 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004c6d jne LBB0_1000 + 0x48, 0x89, 0xd8, //0x00004c73 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x00004c76 subq %r12, %rax + 0x4c, 0x0f, 0xbc, 0xce, //0x00004c79 bsfq %rsi, %r9 + 0x49, 0x01, 0xc1, //0x00004c7d addq %rax, %r9 + 0x4d, 0x89, 0xcf, //0x00004c80 movq %r9, %r15 + //0x00004c83 LBB0_1000 + 0x44, 0x89, 0xf0, //0x00004c83 movl %r14d, %eax + 0xf7, 0xd0, //0x00004c86 notl %eax + 0x21, 0xf0, //0x00004c88 andl %esi, %eax + 0x44, 0x8d, 0x14, 0x00, //0x00004c8a leal (%rax,%rax), %r10d + 0x45, 0x09, 0xf2, //0x00004c8e orl %r14d, %r10d + 0x44, 0x89, 0xd2, //0x00004c91 movl %r10d, %edx + 0xf7, 0xd2, //0x00004c94 notl %edx + 0x21, 0xf2, //0x00004c96 andl %esi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004c98 andl $-1431655766, %edx + 0x45, 0x31, 0xf6, //0x00004c9e xorl %r14d, %r14d + 0x01, 0xc2, //0x00004ca1 addl %eax, %edx + 0x41, 0x0f, 0x92, 0xc6, //0x00004ca3 setb %r14b + 0x01, 0xd2, //0x00004ca7 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00004ca9 xorl $1431655765, %edx + 0x44, 0x21, 0xd2, //0x00004caf andl %r10d, %edx + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00004cb2 movl $4294967295, %eax + 0x31, 0xc2, //0x00004cb7 xorl %eax, %edx + 0x21, 0xd7, //0x00004cb9 andl %edx, %edi + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004cbb movq $40(%rsp), %r10 + 0x48, 0x85, 0xff, //0x00004cc0 testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0xfb, 0xff, 0xff, //0x00004cc3 jne LBB0_834 + //0x00004cc9 LBB0_1001 + 0x48, 0x83, 0xc3, 0x20, //0x00004cc9 addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00004ccd addq $-32, %rcx + //0x00004cd1 LBB0_1002 + 0x4d, 0x85, 0xf6, //0x00004cd1 testq %r14, %r14 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00004cd4 jne LBB0_1010 + 0x48, 0x85, 0xc9, //0x00004cda testq %rcx, %rcx + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00004cdd je LBB0_1012 + //0x00004ce3 LBB0_1004 + 0x4c, 0x89, 0xe7, //0x00004ce3 movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00004ce6 notq %rdi + //0x00004ce9 LBB0_1005 + 0x4c, 0x8d, 0x6b, 0x01, //0x00004ce9 leaq $1(%rbx), %r13 + 0x0f, 0xb6, 0x13, //0x00004ced movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00004cf0 cmpb $34, %dl + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x00004cf3 je LBB0_1081 + 0x48, 0x8d, 0x71, 0xff, //0x00004cf9 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00004cfd cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00004d00 je LBB0_1008 + 0x48, 0x89, 0xf1, //0x00004d06 movq %rsi, %rcx + 0x4c, 0x89, 0xeb, //0x00004d09 movq %r13, %rbx + 0x48, 0x85, 0xf6, //0x00004d0c testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00004d0f jne LBB0_1005 + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00004d15 jmp LBB0_1012 + //0x00004d1a LBB0_1008 + 0x48, 0x85, 0xf6, //0x00004d1a testq %rsi, %rsi + 0x0f, 0x84, 0x75, 0x00, 0x00, 0x00, //0x00004d1d je LBB0_1012 + 0x49, 0x01, 0xfd, //0x00004d23 addq %rdi, %r13 + 0x49, 0x83, 0xff, 0xff, //0x00004d26 cmpq $-1, %r15 + 0x4d, 0x0f, 0x44, 0xcd, //0x00004d2a cmoveq %r13, %r9 + 0x4d, 0x0f, 0x44, 0xfd, //0x00004d2e cmoveq %r13, %r15 + 0x48, 0x83, 0xc3, 0x02, //0x00004d32 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00004d36 addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00004d3a movq %rcx, %rsi + 0x48, 0x85, 0xf6, //0x00004d3d testq %rsi, %rsi + 0x0f, 0x85, 0xa3, 0xff, 0xff, 0xff, //0x00004d40 jne LBB0_1005 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00004d46 jmp LBB0_1012 + //0x00004d4b LBB0_1081 + 0x4d, 0x29, 0xe5, //0x00004d4b subq %r12, %r13 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x00004d4e movq $16(%rsp), %r15 + 0x4c, 0x8b, 0x54, 0x24, 0x28, //0x00004d53 movq $40(%rsp), %r10 + 0x4d, 0x85, 0xed, //0x00004d58 testq %r13, %r13 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004d5b movq $8(%rsp), %r14 + 0x0f, 0x89, 0xb2, 0xf2, 0xff, 0xff, //0x00004d60 jns LBB0_838 + 0xe9, 0x33, 0x07, 0x00, 0x00, //0x00004d66 jmp LBB0_1082 + //0x00004d6b LBB0_1010 + 0x48, 0x85, 0xc9, //0x00004d6b testq %rcx, %rcx + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00004d6e je LBB0_1012 + 0x4c, 0x89, 0xe0, //0x00004d74 movq %r12, %rax + 0x48, 0xf7, 0xd0, //0x00004d77 notq %rax + 0x48, 0x01, 0xd8, //0x00004d7a addq %rbx, %rax + 0x49, 0x83, 0xff, 0xff, //0x00004d7d cmpq $-1, %r15 + 0x4c, 0x0f, 0x44, 0xc8, //0x00004d81 cmoveq %rax, %r9 + 0x4c, 0x0f, 0x44, 0xf8, //0x00004d85 cmoveq %rax, %r15 + 0x48, 0xff, 0xc3, //0x00004d89 incq %rbx + 0x48, 0xff, 0xc9, //0x00004d8c decq %rcx + 0x48, 0x85, 0xc9, //0x00004d8f testq %rcx, %rcx + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x00004d92 jne LBB0_1004 + //0x00004d98 LBB0_1012 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x00004d98 movq $8(%rsp), %r14 + 0xe9, 0x06, 0x07, 0x00, 0x00, //0x00004d9d jmp LBB0_1083 + //0x00004da2 LBB0_1013 + 0x4d, 0x89, 0x1e, //0x00004da2 movq %r11, (%r14) + //0x00004da5 LBB0_1014 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004da5 movq $-1, %rcx + 0xe9, 0x4d, 0xe5, 0xff, 0xff, //0x00004dac jmp LBB0_659 + //0x00004db1 LBB0_1097 + 0x48, 0xc7, 0xc1, 0xf9, 0xff, 0xff, 0xff, //0x00004db1 movq $-7, %rcx + 0xe9, 0x41, 0xe5, 0xff, 0xff, //0x00004db8 jmp LBB0_659 + //0x00004dbd LBB0_1015 + 0x48, 0x8d, 0x50, 0x04, //0x00004dbd leaq $4(%rax), %rdx + 0xe9, 0xbd, 0x03, 0x00, 0x00, //0x00004dc1 jmp LBB0_1053 + //0x00004dc6 LBB0_978 + 0x49, 0x83, 0xfd, 0xff, //0x00004dc6 cmpq $-1, %r13 + 0x0f, 0x85, 0xe2, 0x06, 0x00, 0x00, //0x00004dca jne LBB0_1084 + //0x00004dd0 LBB0_979 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00004dd0 movq $-1, %r13 + 0x4c, 0x8b, 0x4c, 0x24, 0x18, //0x00004dd7 movq $24(%rsp), %r9 + 0xe9, 0xd1, 0x06, 0x00, 0x00, //0x00004ddc jmp LBB0_1084 + //0x00004de1 LBB0_1016 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004de1 movq $-1, %rcx + 0xe9, 0xd3, 0x06, 0x00, 0x00, //0x00004de8 jmp LBB0_1086 + //0x00004ded LBB0_1017 + 0x4d, 0x8b, 0x4f, 0x08, //0x00004ded movq $8(%r15), %r9 + 0x4d, 0x89, 0xcf, //0x00004df1 movq %r9, %r15 + 0x49, 0x29, 0xdf, //0x00004df4 subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x00004df7 cmpq $32, %r15 + 0x0f, 0x8c, 0xff, 0x08, 0x00, 0x00, //0x00004dfb jl LBB0_1117 + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00004e01 movl $4294967295, %r8d + 0x4d, 0x8d, 0x14, 0x03, //0x00004e07 leaq (%r11,%rax), %r10 + 0x49, 0x29, 0xc1, //0x00004e0b subq %rax, %r9 + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00004e0e movl $31, %edx + 0x45, 0x31, 0xff, //0x00004e13 xorl %r15d, %r15d + 0xc5, 0xfe, 0x6f, 0x05, 0x62, 0xb2, 0xff, 0xff, //0x00004e16 vmovdqu $-19870(%rip), %ymm0 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x7a, 0xb2, 0xff, 0xff, //0x00004e1e vmovdqu $-19846(%rip), %ymm1 /* LCPI0_8+0(%rip) */ + 0x45, 0x31, 0xe4, //0x00004e26 xorl %r12d, %r12d + //0x00004e29 LBB0_1019 + 0xc4, 0x81, 0x7e, 0x6f, 0x54, 0x3a, 0x01, //0x00004e29 vmovdqu $1(%r10,%r15), %ymm2 + 0xc5, 0xed, 0x74, 0xd8, //0x00004e30 vpcmpeqb %ymm0, %ymm2, %ymm3 + 0xc5, 0x7d, 0xd7, 0xf3, //0x00004e34 vpmovmskb %ymm3, %r14d + 0xc5, 0xed, 0x74, 0xd1, //0x00004e38 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x00004e3c vpmovmskb %ymm2, %ebx + 0x4d, 0x85, 0xe4, //0x00004e40 testq %r12, %r12 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004e43 jne LBB0_1022 + 0x85, 0xdb, //0x00004e49 testl %ebx, %ebx + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00004e4b jne LBB0_1022 + 0x45, 0x31, 0xe4, //0x00004e51 xorl %r12d, %r12d + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x00004e54 jmp LBB0_1023 + //0x00004e59 LBB0_1022 + 0x44, 0x89, 0xe6, //0x00004e59 movl %r12d, %esi + 0x44, 0x31, 0xc6, //0x00004e5c xorl %r8d, %esi + 0x21, 0xde, //0x00004e5f andl %ebx, %esi + 0x8d, 0x1c, 0x36, //0x00004e61 leal (%rsi,%rsi), %ebx + 0x44, 0x09, 0xe3, //0x00004e64 orl %r12d, %ebx + 0x41, 0x8d, 0xb8, 0xab, 0xaa, 0xaa, 0xaa, //0x00004e67 leal $-1431655765(%r8), %edi + 0x31, 0xdf, //0x00004e6e xorl %ebx, %edi + 0x21, 0xf7, //0x00004e70 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004e72 andl $-1431655766, %edi + 0x45, 0x31, 0xe4, //0x00004e78 xorl %r12d, %r12d + 0x01, 0xf7, //0x00004e7b addl %esi, %edi + 0x41, 0x0f, 0x92, 0xc4, //0x00004e7d setb %r12b + 0x01, 0xff, //0x00004e81 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00004e83 xorl $1431655765, %edi + 0x21, 0xdf, //0x00004e89 andl %ebx, %edi + 0x44, 0x31, 0xc7, //0x00004e8b xorl %r8d, %edi + 0x41, 0x21, 0xfe, //0x00004e8e andl %edi, %r14d + //0x00004e91 LBB0_1023 + 0x45, 0x85, 0xf6, //0x00004e91 testl %r14d, %r14d + 0x0f, 0x85, 0xe3, 0x05, 0x00, 0x00, //0x00004e94 jne LBB0_1080 + 0x49, 0x83, 0xc7, 0x20, //0x00004e9a addq $32, %r15 + 0x49, 0x8d, 0x74, 0x11, 0xe0, //0x00004e9e leaq $-32(%r9,%rdx), %rsi + 0x48, 0x83, 0xc2, 0xe0, //0x00004ea3 addq $-32, %rdx + 0x48, 0x83, 0xfe, 0x3f, //0x00004ea7 cmpq $63, %rsi + 0x0f, 0x8f, 0x78, 0xff, 0xff, 0xff, //0x00004eab jg LBB0_1019 + 0x4d, 0x85, 0xe4, //0x00004eb1 testq %r12, %r12 + 0x0f, 0x85, 0x8c, 0x08, 0x00, 0x00, //0x00004eb4 jne LBB0_1121 + 0x4b, 0x8d, 0x5c, 0x17, 0x01, //0x00004eba leaq $1(%r15,%r10), %rbx + 0x49, 0xf7, 0xd7, //0x00004ebf notq %r15 + 0x4d, 0x01, 0xcf, //0x00004ec2 addq %r9, %r15 + //0x00004ec5 LBB0_1027 + 0x4d, 0x85, 0xff, //0x00004ec5 testq %r15, %r15 + 0x48, 0x8b, 0x74, 0x24, 0x08, //0x00004ec8 movq $8(%rsp), %rsi + 0x0f, 0x8f, 0x26, 0x06, 0x00, 0x00, //0x00004ecd jg LBB0_1090 + 0xe9, 0x26, 0xe4, 0xff, 0xff, //0x00004ed3 jmp LBB0_659 + //0x00004ed8 LBB0_1028 + 0x49, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004ed8 movabsq $-6148914691236517206, %r8 + 0x4d, 0x8b, 0x77, 0x08, //0x00004ee2 movq $8(%r15), %r14 + 0x49, 0x29, 0xde, //0x00004ee6 subq %rbx, %r14 + 0x49, 0x01, 0xdb, //0x00004ee9 addq %rbx, %r11 + 0x45, 0x31, 0xd2, //0x00004eec xorl %r10d, %r10d + 0xc5, 0xfe, 0x6f, 0x05, 0x89, 0xb1, 0xff, 0xff, //0x00004eef vmovdqu $-20087(%rip), %ymm0 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xa1, 0xb1, 0xff, 0xff, //0x00004ef7 vmovdqu $-20063(%rip), %ymm1 /* LCPI0_8+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00004eff vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfe, 0x6f, 0x1d, 0xd5, 0xb1, 0xff, 0xff, //0x00004f03 vmovdqu $-20011(%rip), %ymm3 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0xed, 0xb1, 0xff, 0xff, //0x00004f0b vmovdqu $-19987(%rip), %ymm4 /* LCPI0_11+0(%rip) */ + 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x00004f13 vpxor %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xe4, //0x00004f18 xorl %r12d, %r12d + 0x45, 0x31, 0xff, //0x00004f1b xorl %r15d, %r15d + 0x31, 0xdb, //0x00004f1e xorl %ebx, %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00004f20 jmp LBB0_1030 + //0x00004f25 LBB0_1029 + 0x49, 0xc1, 0xfd, 0x3f, //0x00004f25 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xd1, //0x00004f29 popcntq %r9, %rdx + 0x49, 0x01, 0xd7, //0x00004f2e addq %rdx, %r15 + 0x49, 0x83, 0xc3, 0x40, //0x00004f31 addq $64, %r11 + 0x49, 0x83, 0xc6, 0xc0, //0x00004f35 addq $-64, %r14 + 0x4d, 0x89, 0xea, //0x00004f39 movq %r13, %r10 + //0x00004f3c LBB0_1030 + 0x49, 0x83, 0xfe, 0x40, //0x00004f3c cmpq $64, %r14 + 0x0f, 0x8c, 0x16, 0x01, 0x00, 0x00, //0x00004f40 jl LBB0_1037 + //0x00004f46 LBB0_1031 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3b, //0x00004f46 vmovdqu (%r11), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x73, 0x20, //0x00004f4b vmovdqu $32(%r11), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00004f51 vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00004f55 vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x00004f5a vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00004f5e vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00004f63 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00004f67 orq %rdi, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x00004f6a vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00004f6e vpmovmskb %ymm8, %edi + 0xc5, 0x4d, 0x74, 0xc1, //0x00004f73 vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd0, //0x00004f77 vpmovmskb %ymm8, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x00004f7c shlq $32, %rdx + 0x48, 0x09, 0xd7, //0x00004f80 orq %rdx, %rdi + 0x48, 0x89, 0xfa, //0x00004f83 movq %rdi, %rdx + 0x4c, 0x09, 0xe2, //0x00004f86 orq %r12, %rdx + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00004f89 je LBB0_1033 + 0x4c, 0x89, 0xe2, //0x00004f8f movq %r12, %rdx + 0x48, 0xf7, 0xd2, //0x00004f92 notq %rdx + 0x48, 0x21, 0xfa, //0x00004f95 andq %rdi, %rdx + 0x48, 0x8d, 0x34, 0x12, //0x00004f98 leaq (%rdx,%rdx), %rsi + 0x4c, 0x09, 0xe6, //0x00004f9c orq %r12, %rsi + 0x49, 0x89, 0xf4, //0x00004f9f movq %rsi, %r12 + 0x4d, 0x31, 0xc4, //0x00004fa2 xorq %r8, %r12 + 0x4c, 0x21, 0xc7, //0x00004fa5 andq %r8, %rdi + 0x4c, 0x21, 0xe7, //0x00004fa8 andq %r12, %rdi + 0x45, 0x31, 0xe4, //0x00004fab xorl %r12d, %r12d + 0x48, 0x01, 0xd7, //0x00004fae addq %rdx, %rdi + 0x41, 0x0f, 0x92, 0xc4, //0x00004fb1 setb %r12b + 0x48, 0x01, 0xff, //0x00004fb5 addq %rdi, %rdi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00004fb8 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd7, //0x00004fc2 xorq %rdx, %rdi + 0x48, 0x21, 0xf7, //0x00004fc5 andq %rsi, %rdi + 0x48, 0xf7, 0xd7, //0x00004fc8 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004fcb jmp LBB0_1034 + //0x00004fd0 LBB0_1033 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004fd0 movq $-1, %rdi + 0x45, 0x31, 0xe4, //0x00004fd7 xorl %r12d, %r12d + //0x00004fda LBB0_1034 + 0x4c, 0x21, 0xef, //0x00004fda andq %r13, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x00004fdd vmovq %rdi, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00004fe2 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00004fe8 vmovq %xmm5, %r13 + 0x4d, 0x31, 0xd5, //0x00004fed xorq %r10, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x00004ff0 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0x7d, 0xd7, 0xcd, //0x00004ff4 vpmovmskb %ymm5, %r9d + 0xc5, 0xcd, 0x74, 0xeb, //0x00004ff8 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x00004ffc vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x00005000 shlq $32, %rdx + 0x49, 0x09, 0xd1, //0x00005004 orq %rdx, %r9 + 0x4d, 0x89, 0xea, //0x00005007 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x0000500a notq %r10 + 0x4d, 0x21, 0xd1, //0x0000500d andq %r10, %r9 + 0xc5, 0xc5, 0x74, 0xec, //0x00005010 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x00005014 vpmovmskb %ymm5, %edx + 0xc5, 0xcd, 0x74, 0xec, //0x00005018 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xf5, //0x0000501c vpmovmskb %ymm5, %esi + 0x48, 0xc1, 0xe6, 0x20, //0x00005020 shlq $32, %rsi + 0x48, 0x09, 0xf2, //0x00005024 orq %rsi, %rdx + 0x4c, 0x21, 0xd2, //0x00005027 andq %r10, %rdx + 0x0f, 0x84, 0xf5, 0xfe, 0xff, 0xff, //0x0000502a je LBB0_1029 + //0x00005030 LBB0_1035 + 0x48, 0x8d, 0x7a, 0xff, //0x00005030 leaq $-1(%rdx), %rdi + 0x48, 0x89, 0xfe, //0x00005034 movq %rdi, %rsi + 0x4c, 0x21, 0xce, //0x00005037 andq %r9, %rsi + 0xf3, 0x48, 0x0f, 0xb8, 0xf6, //0x0000503a popcntq %rsi, %rsi + 0x4c, 0x01, 0xfe, //0x0000503f addq %r15, %rsi + 0x48, 0x39, 0xde, //0x00005042 cmpq %rbx, %rsi + 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00005045 jbe LBB0_1079 + 0x48, 0xff, 0xc3, //0x0000504b incq %rbx + 0x48, 0x21, 0xfa, //0x0000504e andq %rdi, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00005051 jne LBB0_1035 + 0xe9, 0xc9, 0xfe, 0xff, 0xff, //0x00005057 jmp LBB0_1029 + //0x0000505c LBB0_1037 + 0x4d, 0x85, 0xf6, //0x0000505c testq %r14, %r14 + 0x0f, 0x8e, 0xa3, 0x06, 0x00, 0x00, //0x0000505f jle LBB0_1118 + 0xc5, 0x7e, 0x7f, 0x4c, 0x24, 0x60, //0x00005065 vmovdqu %ymm9, $96(%rsp) + 0xc5, 0x7e, 0x7f, 0x4c, 0x24, 0x40, //0x0000506b vmovdqu %ymm9, $64(%rsp) + 0x44, 0x89, 0xda, //0x00005071 movl %r11d, %edx + 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x00005074 andl $4095, %edx + 0x81, 0xfa, 0xc1, 0x0f, 0x00, 0x00, //0x0000507a cmpl $4033, %edx + 0x0f, 0x82, 0xc0, 0xfe, 0xff, 0xff, //0x00005080 jb LBB0_1031 + 0x49, 0x83, 0xfe, 0x20, //0x00005086 cmpq $32, %r14 + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x0000508a jb LBB0_1041 + 0xc4, 0xc1, 0x7e, 0x6f, 0x2b, //0x00005090 vmovdqu (%r11), %ymm5 + 0xc5, 0xfe, 0x7f, 0x6c, 0x24, 0x40, //0x00005095 vmovdqu %ymm5, $64(%rsp) + 0x49, 0x83, 0xc3, 0x20, //0x0000509b addq $32, %r11 + 0x49, 0x8d, 0x7e, 0xe0, //0x0000509f leaq $-32(%r14), %rdi + 0x4c, 0x8d, 0x4c, 0x24, 0x60, //0x000050a3 leaq $96(%rsp), %r9 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x000050a8 jmp LBB0_1042 + //0x000050ad LBB0_1041 + 0x4c, 0x8d, 0x4c, 0x24, 0x40, //0x000050ad leaq $64(%rsp), %r9 + 0x4c, 0x89, 0xf7, //0x000050b2 movq %r14, %rdi + //0x000050b5 LBB0_1042 + 0x48, 0x83, 0xff, 0x10, //0x000050b5 cmpq $16, %rdi + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x000050b9 jb LBB0_1043 + 0xc4, 0xc1, 0x7a, 0x6f, 0x2b, //0x000050bf vmovdqu (%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x29, //0x000050c4 vmovdqu %xmm5, (%r9) + 0x49, 0x83, 0xc3, 0x10, //0x000050c9 addq $16, %r11 + 0x49, 0x83, 0xc1, 0x10, //0x000050cd addq $16, %r9 + 0x48, 0x83, 0xc7, 0xf0, //0x000050d1 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x000050d5 cmpq $8, %rdi + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000050d9 jae LBB0_1048 + //0x000050df LBB0_1044 + 0x48, 0x83, 0xff, 0x04, //0x000050df cmpq $4, %rdi + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x000050e3 jl LBB0_1045 + //0x000050e9 LBB0_1049 + 0x41, 0x8b, 0x13, //0x000050e9 movl (%r11), %edx + 0x41, 0x89, 0x11, //0x000050ec movl %edx, (%r9) + 0x49, 0x83, 0xc3, 0x04, //0x000050ef addq $4, %r11 + 0x49, 0x83, 0xc1, 0x04, //0x000050f3 addq $4, %r9 + 0x48, 0x83, 0xc7, 0xfc, //0x000050f7 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000050fb cmpq $2, %rdi + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000050ff jae LBB0_1050 + //0x00005105 LBB0_1046 + 0x4c, 0x89, 0xde, //0x00005105 movq %r11, %rsi + 0x4c, 0x8d, 0x5c, 0x24, 0x40, //0x00005108 leaq $64(%rsp), %r11 + 0x48, 0x85, 0xff, //0x0000510d testq %rdi, %rdi + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00005110 jne LBB0_1051 + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x00005116 jmp LBB0_1031 + //0x0000511b LBB0_1043 + 0x48, 0x83, 0xff, 0x08, //0x0000511b cmpq $8, %rdi + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x0000511f jb LBB0_1044 + //0x00005125 LBB0_1048 + 0x49, 0x8b, 0x13, //0x00005125 movq (%r11), %rdx + 0x49, 0x89, 0x11, //0x00005128 movq %rdx, (%r9) + 0x49, 0x83, 0xc3, 0x08, //0x0000512b addq $8, %r11 + 0x49, 0x83, 0xc1, 0x08, //0x0000512f addq $8, %r9 + 0x48, 0x83, 0xc7, 0xf8, //0x00005133 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00005137 cmpq $4, %rdi + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x0000513b jge LBB0_1049 + //0x00005141 LBB0_1045 + 0x48, 0x83, 0xff, 0x02, //0x00005141 cmpq $2, %rdi + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005145 jb LBB0_1046 + //0x0000514b LBB0_1050 + 0x41, 0x0f, 0xb7, 0x13, //0x0000514b movzwl (%r11), %edx + 0x66, 0x41, 0x89, 0x11, //0x0000514f movw %dx, (%r9) + 0x49, 0x83, 0xc3, 0x02, //0x00005153 addq $2, %r11 + 0x49, 0x83, 0xc1, 0x02, //0x00005157 addq $2, %r9 + 0x48, 0x83, 0xc7, 0xfe, //0x0000515b addq $-2, %rdi + 0x4c, 0x89, 0xde, //0x0000515f movq %r11, %rsi + 0x4c, 0x8d, 0x5c, 0x24, 0x40, //0x00005162 leaq $64(%rsp), %r11 + 0x48, 0x85, 0xff, //0x00005167 testq %rdi, %rdi + 0x0f, 0x84, 0xd6, 0xfd, 0xff, 0xff, //0x0000516a je LBB0_1031 + //0x00005170 LBB0_1051 + 0x8a, 0x16, //0x00005170 movb (%rsi), %dl + 0x41, 0x88, 0x11, //0x00005172 movb %dl, (%r9) + 0x4c, 0x8d, 0x5c, 0x24, 0x40, //0x00005175 leaq $64(%rsp), %r11 + 0xe9, 0xc7, 0xfd, 0xff, 0xff, //0x0000517a jmp LBB0_1031 + //0x0000517f LBB0_1052 + 0x48, 0x8d, 0x50, 0x05, //0x0000517f leaq $5(%rax), %rdx + //0x00005183 LBB0_1053 + 0x49, 0x3b, 0x57, 0x08, //0x00005183 cmpq $8(%r15), %rdx + 0x0f, 0x87, 0x71, 0xe1, 0xff, 0xff, //0x00005187 ja LBB0_659 + 0x49, 0x89, 0x16, //0x0000518d movq %rdx, (%r14) + 0x48, 0x89, 0xc1, //0x00005190 movq %rax, %rcx + 0xe9, 0x66, 0xe1, 0xff, 0xff, //0x00005193 jmp LBB0_659 + //0x00005198 LBB0_1055 + 0x49, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005198 movabsq $-6148914691236517206, %r8 + 0x4d, 0x8b, 0x77, 0x08, //0x000051a2 movq $8(%r15), %r14 + 0x49, 0x29, 0xde, //0x000051a6 subq %rbx, %r14 + 0x49, 0x01, 0xdb, //0x000051a9 addq %rbx, %r11 + 0x45, 0x31, 0xd2, //0x000051ac xorl %r10d, %r10d + 0xc5, 0xfe, 0x6f, 0x05, 0xc9, 0xae, 0xff, 0xff, //0x000051af vmovdqu $-20791(%rip), %ymm0 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xe1, 0xae, 0xff, 0xff, //0x000051b7 vmovdqu $-20767(%rip), %ymm1 /* LCPI0_8+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x000051bf vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfe, 0x6f, 0x1d, 0xf5, 0xae, 0xff, 0xff, //0x000051c3 vmovdqu $-20747(%rip), %ymm3 /* LCPI0_9+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x8d, 0xae, 0xff, 0xff, //0x000051cb vmovdqu $-20851(%rip), %ymm4 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x000051d3 vpxor %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xe4, //0x000051d8 xorl %r12d, %r12d + 0x45, 0x31, 0xff, //0x000051db xorl %r15d, %r15d + 0x31, 0xdb, //0x000051de xorl %ebx, %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000051e0 jmp LBB0_1057 + //0x000051e5 LBB0_1056 + 0x49, 0xc1, 0xfd, 0x3f, //0x000051e5 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xd1, //0x000051e9 popcntq %r9, %rdx + 0x49, 0x01, 0xd7, //0x000051ee addq %rdx, %r15 + 0x49, 0x83, 0xc3, 0x40, //0x000051f1 addq $64, %r11 + 0x49, 0x83, 0xc6, 0xc0, //0x000051f5 addq $-64, %r14 + 0x4d, 0x89, 0xea, //0x000051f9 movq %r13, %r10 + //0x000051fc LBB0_1057 + 0x49, 0x83, 0xfe, 0x40, //0x000051fc cmpq $64, %r14 + 0x0f, 0x8c, 0x16, 0x01, 0x00, 0x00, //0x00005200 jl LBB0_1064 + //0x00005206 LBB0_1058 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3b, //0x00005206 vmovdqu (%r11), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x73, 0x20, //0x0000520b vmovdqu $32(%r11), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00005211 vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00005215 vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x0000521a vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x0000521e vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00005223 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00005227 orq %rdi, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x0000522a vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x0000522e vpmovmskb %ymm8, %edi + 0xc5, 0x4d, 0x74, 0xc1, //0x00005233 vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd0, //0x00005237 vpmovmskb %ymm8, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x0000523c shlq $32, %rdx + 0x48, 0x09, 0xd7, //0x00005240 orq %rdx, %rdi + 0x48, 0x89, 0xfa, //0x00005243 movq %rdi, %rdx + 0x4c, 0x09, 0xe2, //0x00005246 orq %r12, %rdx + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00005249 je LBB0_1060 + 0x4c, 0x89, 0xe2, //0x0000524f movq %r12, %rdx + 0x48, 0xf7, 0xd2, //0x00005252 notq %rdx + 0x48, 0x21, 0xfa, //0x00005255 andq %rdi, %rdx + 0x48, 0x8d, 0x34, 0x12, //0x00005258 leaq (%rdx,%rdx), %rsi + 0x4c, 0x09, 0xe6, //0x0000525c orq %r12, %rsi + 0x49, 0x89, 0xf4, //0x0000525f movq %rsi, %r12 + 0x4d, 0x31, 0xc4, //0x00005262 xorq %r8, %r12 + 0x4c, 0x21, 0xc7, //0x00005265 andq %r8, %rdi + 0x4c, 0x21, 0xe7, //0x00005268 andq %r12, %rdi + 0x45, 0x31, 0xe4, //0x0000526b xorl %r12d, %r12d + 0x48, 0x01, 0xd7, //0x0000526e addq %rdx, %rdi + 0x41, 0x0f, 0x92, 0xc4, //0x00005271 setb %r12b + 0x48, 0x01, 0xff, //0x00005275 addq %rdi, %rdi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005278 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd7, //0x00005282 xorq %rdx, %rdi + 0x48, 0x21, 0xf7, //0x00005285 andq %rsi, %rdi + 0x48, 0xf7, 0xd7, //0x00005288 notq %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000528b jmp LBB0_1061 + //0x00005290 LBB0_1060 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00005290 movq $-1, %rdi + 0x45, 0x31, 0xe4, //0x00005297 xorl %r12d, %r12d + //0x0000529a LBB0_1061 + 0x4c, 0x21, 0xef, //0x0000529a andq %r13, %rdi + 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x0000529d vmovq %rdi, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x000052a2 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x000052a8 vmovq %xmm5, %r13 + 0x4d, 0x31, 0xd5, //0x000052ad xorq %r10, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x000052b0 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0x7d, 0xd7, 0xcd, //0x000052b4 vpmovmskb %ymm5, %r9d + 0xc5, 0xcd, 0x74, 0xeb, //0x000052b8 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x000052bc vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x000052c0 shlq $32, %rdx + 0x49, 0x09, 0xd1, //0x000052c4 orq %rdx, %r9 + 0x4d, 0x89, 0xea, //0x000052c7 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x000052ca notq %r10 + 0x4d, 0x21, 0xd1, //0x000052cd andq %r10, %r9 + 0xc5, 0xc5, 0x74, 0xec, //0x000052d0 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x000052d4 vpmovmskb %ymm5, %edx + 0xc5, 0xcd, 0x74, 0xec, //0x000052d8 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xf5, //0x000052dc vpmovmskb %ymm5, %esi + 0x48, 0xc1, 0xe6, 0x20, //0x000052e0 shlq $32, %rsi + 0x48, 0x09, 0xf2, //0x000052e4 orq %rsi, %rdx + 0x4c, 0x21, 0xd2, //0x000052e7 andq %r10, %rdx + 0x0f, 0x84, 0xf5, 0xfe, 0xff, 0xff, //0x000052ea je LBB0_1056 + //0x000052f0 LBB0_1062 + 0x48, 0x8d, 0x7a, 0xff, //0x000052f0 leaq $-1(%rdx), %rdi + 0x48, 0x89, 0xfe, //0x000052f4 movq %rdi, %rsi + 0x4c, 0x21, 0xce, //0x000052f7 andq %r9, %rsi + 0xf3, 0x48, 0x0f, 0xb8, 0xf6, //0x000052fa popcntq %rsi, %rsi + 0x4c, 0x01, 0xfe, //0x000052ff addq %r15, %rsi + 0x48, 0x39, 0xde, //0x00005302 cmpq %rbx, %rsi + 0x0f, 0x86, 0x34, 0x01, 0x00, 0x00, //0x00005305 jbe LBB0_1079 + 0x48, 0xff, 0xc3, //0x0000530b incq %rbx + 0x48, 0x21, 0xfa, //0x0000530e andq %rdi, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00005311 jne LBB0_1062 + 0xe9, 0xc9, 0xfe, 0xff, 0xff, //0x00005317 jmp LBB0_1056 + //0x0000531c LBB0_1064 + 0x4d, 0x85, 0xf6, //0x0000531c testq %r14, %r14 + 0x0f, 0x8e, 0xe3, 0x03, 0x00, 0x00, //0x0000531f jle LBB0_1118 + 0xc5, 0x7e, 0x7f, 0x4c, 0x24, 0x60, //0x00005325 vmovdqu %ymm9, $96(%rsp) + 0xc5, 0x7e, 0x7f, 0x4c, 0x24, 0x40, //0x0000532b vmovdqu %ymm9, $64(%rsp) + 0x44, 0x89, 0xda, //0x00005331 movl %r11d, %edx + 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x00005334 andl $4095, %edx + 0x81, 0xfa, 0xc1, 0x0f, 0x00, 0x00, //0x0000533a cmpl $4033, %edx + 0x0f, 0x82, 0xc0, 0xfe, 0xff, 0xff, //0x00005340 jb LBB0_1058 + 0x49, 0x83, 0xfe, 0x20, //0x00005346 cmpq $32, %r14 + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x0000534a jb LBB0_1068 + 0xc4, 0xc1, 0x7e, 0x6f, 0x2b, //0x00005350 vmovdqu (%r11), %ymm5 + 0xc5, 0xfe, 0x7f, 0x6c, 0x24, 0x40, //0x00005355 vmovdqu %ymm5, $64(%rsp) + 0x49, 0x83, 0xc3, 0x20, //0x0000535b addq $32, %r11 + 0x49, 0x8d, 0x7e, 0xe0, //0x0000535f leaq $-32(%r14), %rdi + 0x4c, 0x8d, 0x4c, 0x24, 0x60, //0x00005363 leaq $96(%rsp), %r9 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00005368 jmp LBB0_1069 + //0x0000536d LBB0_1068 + 0x4c, 0x8d, 0x4c, 0x24, 0x40, //0x0000536d leaq $64(%rsp), %r9 + 0x4c, 0x89, 0xf7, //0x00005372 movq %r14, %rdi + //0x00005375 LBB0_1069 + 0x48, 0x83, 0xff, 0x10, //0x00005375 cmpq $16, %rdi + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00005379 jb LBB0_1070 + 0xc4, 0xc1, 0x7a, 0x6f, 0x2b, //0x0000537f vmovdqu (%r11), %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x29, //0x00005384 vmovdqu %xmm5, (%r9) + 0x49, 0x83, 0xc3, 0x10, //0x00005389 addq $16, %r11 + 0x49, 0x83, 0xc1, 0x10, //0x0000538d addq $16, %r9 + 0x48, 0x83, 0xc7, 0xf0, //0x00005391 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00005395 cmpq $8, %rdi + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00005399 jae LBB0_1075 + //0x0000539f LBB0_1071 + 0x48, 0x83, 0xff, 0x04, //0x0000539f cmpq $4, %rdi + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x000053a3 jl LBB0_1072 + //0x000053a9 LBB0_1076 + 0x41, 0x8b, 0x13, //0x000053a9 movl (%r11), %edx + 0x41, 0x89, 0x11, //0x000053ac movl %edx, (%r9) + 0x49, 0x83, 0xc3, 0x04, //0x000053af addq $4, %r11 + 0x49, 0x83, 0xc1, 0x04, //0x000053b3 addq $4, %r9 + 0x48, 0x83, 0xc7, 0xfc, //0x000053b7 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000053bb cmpq $2, %rdi + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000053bf jae LBB0_1077 + //0x000053c5 LBB0_1073 + 0x4c, 0x89, 0xde, //0x000053c5 movq %r11, %rsi + 0x4c, 0x8d, 0x5c, 0x24, 0x40, //0x000053c8 leaq $64(%rsp), %r11 + 0x48, 0x85, 0xff, //0x000053cd testq %rdi, %rdi + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x000053d0 jne LBB0_1078 + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000053d6 jmp LBB0_1058 + //0x000053db LBB0_1070 + 0x48, 0x83, 0xff, 0x08, //0x000053db cmpq $8, %rdi + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x000053df jb LBB0_1071 + //0x000053e5 LBB0_1075 + 0x49, 0x8b, 0x13, //0x000053e5 movq (%r11), %rdx + 0x49, 0x89, 0x11, //0x000053e8 movq %rdx, (%r9) + 0x49, 0x83, 0xc3, 0x08, //0x000053eb addq $8, %r11 + 0x49, 0x83, 0xc1, 0x08, //0x000053ef addq $8, %r9 + 0x48, 0x83, 0xc7, 0xf8, //0x000053f3 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x000053f7 cmpq $4, %rdi + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x000053fb jge LBB0_1076 + //0x00005401 LBB0_1072 + 0x48, 0x83, 0xff, 0x02, //0x00005401 cmpq $2, %rdi + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00005405 jb LBB0_1073 + //0x0000540b LBB0_1077 + 0x41, 0x0f, 0xb7, 0x13, //0x0000540b movzwl (%r11), %edx + 0x66, 0x41, 0x89, 0x11, //0x0000540f movw %dx, (%r9) + 0x49, 0x83, 0xc3, 0x02, //0x00005413 addq $2, %r11 + 0x49, 0x83, 0xc1, 0x02, //0x00005417 addq $2, %r9 + 0x48, 0x83, 0xc7, 0xfe, //0x0000541b addq $-2, %rdi + 0x4c, 0x89, 0xde, //0x0000541f movq %r11, %rsi + 0x4c, 0x8d, 0x5c, 0x24, 0x40, //0x00005422 leaq $64(%rsp), %r11 + 0x48, 0x85, 0xff, //0x00005427 testq %rdi, %rdi + 0x0f, 0x84, 0xd6, 0xfd, 0xff, 0xff, //0x0000542a je LBB0_1058 + //0x00005430 LBB0_1078 + 0x8a, 0x16, //0x00005430 movb (%rsi), %dl + 0x41, 0x88, 0x11, //0x00005432 movb %dl, (%r9) + 0x4c, 0x8d, 0x5c, 0x24, 0x40, //0x00005435 leaq $64(%rsp), %r11 + 0xe9, 0xc7, 0xfd, 0xff, 0xff, //0x0000543a jmp LBB0_1058 + //0x0000543f LBB0_1079 + 0x48, 0x8b, 0x7c, 0x24, 0x10, //0x0000543f movq $16(%rsp), %rdi + 0x48, 0x8b, 0x4f, 0x08, //0x00005444 movq $8(%rdi), %rcx + 0x48, 0x0f, 0xbc, 0xd2, //0x00005448 bsfq %rdx, %rdx + 0x4c, 0x29, 0xf2, //0x0000544c subq %r14, %rdx + 0x48, 0x8d, 0x4c, 0x0a, 0x01, //0x0000544f leaq $1(%rdx,%rcx), %rcx + 0x48, 0x8b, 0x74, 0x24, 0x08, //0x00005454 movq $8(%rsp), %rsi + 0x48, 0x89, 0x0e, //0x00005459 movq %rcx, (%rsi) + 0x48, 0x8b, 0x57, 0x08, //0x0000545c movq $8(%rdi), %rdx + 0x48, 0x39, 0xd1, //0x00005460 cmpq %rdx, %rcx + 0x48, 0x0f, 0x47, 0xca, //0x00005463 cmovaq %rdx, %rcx + 0x48, 0x89, 0x0e, //0x00005467 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000546a movq $-1, %rcx + 0x48, 0x0f, 0x47, 0xc1, //0x00005471 cmovaq %rcx, %rax + 0x48, 0x89, 0xc1, //0x00005475 movq %rax, %rcx + 0xe9, 0x81, 0xde, 0xff, 0xff, //0x00005478 jmp LBB0_659 + //0x0000547d LBB0_1080 + 0x49, 0x0f, 0xbc, 0xce, //0x0000547d bsfq %r14, %rcx + 0x49, 0x01, 0xca, //0x00005481 addq %rcx, %r10 + 0x4d, 0x01, 0xfa, //0x00005484 addq %r15, %r10 + 0x4d, 0x29, 0xda, //0x00005487 subq %r11, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x0000548a addq $2, %r10 + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x0000548e movq $8(%rsp), %rcx + 0x4c, 0x89, 0x11, //0x00005493 movq %r10, (%rcx) + 0x48, 0x89, 0xc1, //0x00005496 movq %rax, %rcx + 0xe9, 0x60, 0xde, 0xff, 0xff, //0x00005499 jmp LBB0_659 + //0x0000549e LBB0_1082 + 0x49, 0x83, 0xfd, 0xff, //0x0000549e cmpq $-1, %r13 + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x000054a2 jne LBB0_1084 + //0x000054a8 LBB0_1083 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000054a8 movq $-1, %r13 + 0x4d, 0x89, 0xc1, //0x000054af movq %r8, %r9 + //0x000054b2 LBB0_1084 + 0x4d, 0x89, 0x0e, //0x000054b2 movq %r9, (%r14) + 0x4c, 0x89, 0xe9, //0x000054b5 movq %r13, %rcx + 0xe9, 0x41, 0xde, 0xff, 0xff, //0x000054b8 jmp LBB0_659 + //0x000054bd LBB0_1085 + 0x4c, 0x89, 0xc1, //0x000054bd movq %r8, %rcx + //0x000054c0 LBB0_1086 + 0x49, 0x8b, 0x06, //0x000054c0 movq (%r14), %rax + 0x48, 0x29, 0xc8, //0x000054c3 subq %rcx, %rax + 0x48, 0x83, 0xc0, 0xfe, //0x000054c6 addq $-2, %rax + //0x000054ca LBB0_1087 + 0x49, 0x89, 0x06, //0x000054ca movq %rax, (%r14) + 0xe9, 0x25, 0xde, 0xff, 0xff, //0x000054cd jmp LBB0_658 + //0x000054d2 LBB0_1096 + 0x49, 0x89, 0x16, //0x000054d2 movq %rdx, (%r14) + 0xe9, 0x24, 0xde, 0xff, 0xff, //0x000054d5 jmp LBB0_659 + //0x000054da LBB0_1088 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000054da movq $-2, %rdx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000054e1 movl $2, %ecx + 0x48, 0x01, 0xcb, //0x000054e6 addq %rcx, %rbx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000054e9 movq $-1, %rcx + 0x49, 0x01, 0xd7, //0x000054f0 addq %rdx, %r15 + 0x0f, 0x8e, 0x05, 0xde, 0xff, 0xff, //0x000054f3 jle LBB0_659 + //0x000054f9 LBB0_1090 + 0x0f, 0xb6, 0x0b, //0x000054f9 movzbl (%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x000054fc cmpb $92, %cl + 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x000054ff je LBB0_1088 + 0x80, 0xf9, 0x22, //0x00005505 cmpb $34, %cl + 0x0f, 0x84, 0xb4, 0x01, 0x00, 0x00, //0x00005508 je LBB0_1111 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000550e movq $-1, %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00005515 movl $1, %ecx + 0x48, 0x01, 0xcb, //0x0000551a addq %rcx, %rbx + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000551d movq $-1, %rcx + 0x49, 0x01, 0xd7, //0x00005524 addq %rdx, %r15 + 0x0f, 0x8f, 0xcc, 0xff, 0xff, 0xff, //0x00005527 jg LBB0_1090 + 0xe9, 0xcc, 0xdd, 0xff, 0xff, //0x0000552d jmp LBB0_659 + //0x00005532 LBB0_1093 + 0x4c, 0x89, 0x8c, 0x24, 0x98, 0x00, 0x00, 0x00, //0x00005532 movq %r9, $152(%rsp) + //0x0000553a LBB0_1094 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x0000553a movq $8(%rsp), %rax + 0x48, 0x8b, 0x8c, 0x24, 0x98, 0x00, 0x00, 0x00, //0x0000553f movq $152(%rsp), %rcx + 0x48, 0x89, 0x08, //0x00005547 movq %rcx, (%rax) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000554a movq $-1, %rcx + 0xe9, 0xa8, 0xdd, 0xff, 0xff, //0x00005551 jmp LBB0_659 + //0x00005556 LBB0_1095 + 0x0f, 0xb7, 0xcf, //0x00005556 movzwl %di, %ecx + 0xe9, 0x78, 0xdd, 0xff, 0xff, //0x00005559 jmp LBB0_655 + //0x0000555e LBB0_1098 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000555e movq $-2, %rcx + 0x80, 0xfa, 0x61, //0x00005565 cmpb $97, %dl + 0x0f, 0x85, 0x90, 0xdd, 0xff, 0xff, //0x00005568 jne LBB0_659 + 0x49, 0x8d, 0x43, 0x02, //0x0000556e leaq $2(%r11), %rax + 0x49, 0x89, 0x06, //0x00005572 movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x02, 0x6c, //0x00005575 cmpb $108, $2(%r12,%r11) + 0x0f, 0x85, 0x7d, 0xdd, 0xff, 0xff, //0x0000557b jne LBB0_659 + 0x49, 0x8d, 0x43, 0x03, //0x00005581 leaq $3(%r11), %rax + 0x49, 0x89, 0x06, //0x00005585 movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x03, 0x73, //0x00005588 cmpb $115, $3(%r12,%r11) + 0x0f, 0x85, 0x6a, 0xdd, 0xff, 0xff, //0x0000558e jne LBB0_659 + 0x49, 0x8d, 0x43, 0x04, //0x00005594 leaq $4(%r11), %rax + 0x49, 0x89, 0x06, //0x00005598 movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x04, 0x65, //0x0000559b cmpb $101, $4(%r12,%r11) + 0x0f, 0x85, 0x57, 0xdd, 0xff, 0xff, //0x000055a1 jne LBB0_659 + 0x49, 0x83, 0xc3, 0x05, //0x000055a7 addq $5, %r11 + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x000055ab jmp LBB0_1103 + //0x000055b0 LBB0_850 + 0x4d, 0x89, 0x1e, //0x000055b0 movq %r11, (%r14) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000055b3 movq $-2, %rcx + 0x41, 0x80, 0x39, 0x6e, //0x000055ba cmpb $110, (%r9) + 0x0f, 0x85, 0x3a, 0xdd, 0xff, 0xff, //0x000055be jne LBB0_659 + 0x49, 0x8d, 0x43, 0x01, //0x000055c4 leaq $1(%r11), %rax + 0x49, 0x89, 0x06, //0x000055c8 movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x01, 0x75, //0x000055cb cmpb $117, $1(%r12,%r11) + 0x0f, 0x85, 0x27, 0xdd, 0xff, 0xff, //0x000055d1 jne LBB0_659 + 0x49, 0x8d, 0x43, 0x02, //0x000055d7 leaq $2(%r11), %rax + 0x49, 0x89, 0x06, //0x000055db movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x02, 0x6c, //0x000055de cmpb $108, $2(%r12,%r11) + 0x0f, 0x85, 0x14, 0xdd, 0xff, 0xff, //0x000055e4 jne LBB0_659 + 0x49, 0x8d, 0x43, 0x03, //0x000055ea leaq $3(%r11), %rax + 0x49, 0x89, 0x06, //0x000055ee movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x03, 0x6c, //0x000055f1 cmpb $108, $3(%r12,%r11) + 0x0f, 0x85, 0x01, 0xdd, 0xff, 0xff, //0x000055f7 jne LBB0_659 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000055fd jmp LBB0_854 + //0x00005602 LBB0_857 + 0x4d, 0x89, 0x1e, //0x00005602 movq %r11, (%r14) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005605 movq $-2, %rcx + 0x41, 0x80, 0x39, 0x74, //0x0000560c cmpb $116, (%r9) + 0x0f, 0x85, 0xe8, 0xdc, 0xff, 0xff, //0x00005610 jne LBB0_659 + 0x49, 0x8d, 0x43, 0x01, //0x00005616 leaq $1(%r11), %rax + 0x49, 0x89, 0x06, //0x0000561a movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x01, 0x72, //0x0000561d cmpb $114, $1(%r12,%r11) + 0x0f, 0x85, 0xd5, 0xdc, 0xff, 0xff, //0x00005623 jne LBB0_659 + 0x49, 0x8d, 0x43, 0x02, //0x00005629 leaq $2(%r11), %rax + 0x49, 0x89, 0x06, //0x0000562d movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x02, 0x75, //0x00005630 cmpb $117, $2(%r12,%r11) + 0x0f, 0x85, 0xc2, 0xdc, 0xff, 0xff, //0x00005636 jne LBB0_659 + 0x49, 0x8d, 0x43, 0x03, //0x0000563c leaq $3(%r11), %rax + 0x49, 0x89, 0x06, //0x00005640 movq %rax, (%r14) + 0x43, 0x80, 0x7c, 0x1c, 0x03, 0x65, //0x00005643 cmpb $101, $3(%r12,%r11) + 0x0f, 0x85, 0xaf, 0xdc, 0xff, 0xff, //0x00005649 jne LBB0_659 + //0x0000564f LBB0_854 + 0x49, 0x83, 0xc3, 0x04, //0x0000564f addq $4, %r11 + //0x00005653 LBB0_1103 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00005653 movq $8(%rsp), %rax + 0x4c, 0x89, 0x18, //0x00005658 movq %r11, (%rax) + 0xe9, 0x9e, 0xdc, 0xff, 0xff, //0x0000565b jmp LBB0_659 + //0x00005660 LBB0_1105 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00005660 movq $8(%rsp), %rax + 0x4c, 0x8b, 0x28, //0x00005665 movq (%rax), %r13 + //0x00005668 LBB0_1106 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005668 movq $-1, %r14 + //0x0000566f LBB0_1107 + 0x49, 0xf7, 0xd6, //0x0000566f notq %r14 + 0x4d, 0x01, 0xee, //0x00005672 addq %r13, %r14 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00005675 movq $8(%rsp), %rax + 0x4c, 0x89, 0x30, //0x0000567a movq %r14, (%rax) + 0xe9, 0x75, 0xdc, 0xff, 0xff, //0x0000567d jmp LBB0_658 + //0x00005682 LBB0_1108 + 0x4c, 0x89, 0xd9, //0x00005682 movq %r11, %rcx + 0x48, 0xf7, 0xd1, //0x00005685 notq %rcx + 0x48, 0x01, 0xc8, //0x00005688 addq %rcx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000568b movq $-1, %rcx + 0x48, 0x39, 0xd8, //0x00005692 cmpq %rbx, %rax + 0x0f, 0x82, 0xc7, 0xda, 0xff, 0xff, //0x00005695 jb LBB0_634 + 0xe9, 0x5e, 0xdc, 0xff, 0xff, //0x0000569b jmp LBB0_659 + //0x000056a0 LBB0_1109 + 0x4c, 0x89, 0x6c, 0x24, 0x18, //0x000056a0 movq %r13, $24(%rsp) + 0xe9, 0x26, 0xf7, 0xff, 0xff, //0x000056a5 jmp LBB0_979 + //0x000056aa LBB0_1110 + 0x49, 0x83, 0xc1, 0x02, //0x000056aa addq $2, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000056ae movq $-2, %rcx + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000056b5 jmp LBB0_1115 + //0x000056ba LBB0_1116 + 0x4d, 0x89, 0xe8, //0x000056ba movq %r13, %r8 + 0xe9, 0xe6, 0xfd, 0xff, 0xff, //0x000056bd jmp LBB0_1083 + //0x000056c2 LBB0_1111 + 0x4c, 0x29, 0xdb, //0x000056c2 subq %r11, %rbx + 0x48, 0xff, 0xc3, //0x000056c5 incq %rbx + 0x48, 0x89, 0x1e, //0x000056c8 movq %rbx, (%rsi) + 0x48, 0x89, 0xc1, //0x000056cb movq %rax, %rcx + 0xe9, 0x2b, 0xdc, 0xff, 0xff, //0x000056ce jmp LBB0_659 + //0x000056d3 LBB0_1112 + 0x49, 0xff, 0xc1, //0x000056d3 incq %r9 + 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x000056d6 movq $-3, %rcx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000056dd jmp LBB0_1115 + //0x000056e2 LBB0_1113 + 0x49, 0xff, 0xc1, //0x000056e2 incq %r9 + //0x000056e5 LBB0_1114 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056e5 movq $-1, %rcx + //0x000056ec LBB0_1115 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x000056ec movq $8(%rsp), %rax + 0x48, 0x8b, 0x14, 0x24, //0x000056f1 movq (%rsp), %rdx + 0x49, 0x29, 0xd1, //0x000056f5 subq %rdx, %r9 + 0x4c, 0x89, 0x08, //0x000056f8 movq %r9, (%rax) + 0xe9, 0xfe, 0xdb, 0xff, 0xff, //0x000056fb jmp LBB0_659 + //0x00005700 LBB0_1117 + 0x4c, 0x01, 0xdb, //0x00005700 addq %r11, %rbx + 0xe9, 0xbd, 0xf7, 0xff, 0xff, //0x00005703 jmp LBB0_1027 + //0x00005708 LBB0_1118 + 0x48, 0x8b, 0x44, 0x24, 0x10, //0x00005708 movq $16(%rsp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000570d movq $8(%rax), %rax + 0x48, 0x8b, 0x54, 0x24, 0x08, //0x00005711 movq $8(%rsp), %rdx + 0x48, 0x89, 0x02, //0x00005716 movq %rax, (%rdx) + 0xe9, 0xe0, 0xdb, 0xff, 0xff, //0x00005719 jmp LBB0_659 + //0x0000571e LBB0_1119 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x0000571e movq $-4, %rcx + 0x4d, 0x89, 0xd9, //0x00005725 movq %r11, %r9 + 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00005728 jmp LBB0_1115 + //0x0000572d LBB0_1120 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000572d movq $-2, %rcx + 0x4d, 0x89, 0xd9, //0x00005734 movq %r11, %r9 + 0xe9, 0xb0, 0xff, 0xff, 0xff, //0x00005737 jmp LBB0_1115 + //0x0000573c LBB0_1123 + 0x4c, 0x8b, 0x74, 0x24, 0x08, //0x0000573c movq $8(%rsp), %r14 + 0xe9, 0x8a, 0xf6, 0xff, 0xff, //0x00005741 jmp LBB0_979 + //0x00005746 LBB0_1121 + 0x49, 0x8d, 0x51, 0xff, //0x00005746 leaq $-1(%r9), %rdx + 0x4c, 0x39, 0xfa, //0x0000574a cmpq %r15, %rdx + 0x0f, 0x84, 0xab, 0xdb, 0xff, 0xff, //0x0000574d je LBB0_659 + 0x4b, 0x8d, 0x5c, 0x17, 0x02, //0x00005753 leaq $2(%r15,%r10), %rbx + 0x4d, 0x29, 0xf9, //0x00005758 subq %r15, %r9 + 0x49, 0x83, 0xc1, 0xfe, //0x0000575b addq $-2, %r9 + 0x4d, 0x89, 0xcf, //0x0000575f movq %r9, %r15 + 0xe9, 0x5e, 0xf7, 0xff, 0xff, //0x00005762 jmp LBB0_1027 + 0x90, //0x00005767 .p2align 2, 0x90 + // // .set L0_0_set_491, LBB0_491-LJTI0_0 + // // .set L0_0_set_490, LBB0_490-LJTI0_0 + // // .set L0_0_set_477, LBB0_477-LJTI0_0 + // // .set L0_0_set_456, LBB0_456-LJTI0_0 + // // .set L0_0_set_527, LBB0_527-LJTI0_0 + // // .set L0_0_set_489, LBB0_489-LJTI0_0 + // // .set L0_0_set_476, LBB0_476-LJTI0_0 + // // .set L0_0_set_552, LBB0_552-LJTI0_0 + //0x00005768 LJTI0_0 + 0x6e, 0xce, 0xff, 0xff, //0x00005768 .long L0_0_set_491 + 0x68, 0xce, 0xff, 0xff, //0x0000576c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005770 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005774 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005778 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000577c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005780 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005784 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005788 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000578c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005790 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005794 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005798 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000579c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057a0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057a4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057a8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057ac .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057b0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057b4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057b8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057bc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057c0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057c4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057c8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057cc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057d0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057d4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057d8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057dc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057e0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057e4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057e8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057ec .long L0_0_set_490 + 0x4f, 0xcd, 0xff, 0xff, //0x000057f0 .long L0_0_set_477 + 0x68, 0xce, 0xff, 0xff, //0x000057f4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057f8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000057fc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005800 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005804 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005808 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000580c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005810 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005814 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005818 .long L0_0_set_490 + 0xf5, 0xcb, 0xff, 0xff, //0x0000581c .long L0_0_set_456 + 0x68, 0xce, 0xff, 0xff, //0x00005820 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005824 .long L0_0_set_490 + 0xf5, 0xcb, 0xff, 0xff, //0x00005828 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x0000582c .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x00005830 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x00005834 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x00005838 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x0000583c .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x00005840 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x00005844 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x00005848 .long L0_0_set_456 + 0xf5, 0xcb, 0xff, 0xff, //0x0000584c .long L0_0_set_456 + 0x68, 0xce, 0xff, 0xff, //0x00005850 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005854 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005858 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000585c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005860 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005864 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005868 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000586c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005870 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005874 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005878 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000587c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005880 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005884 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005888 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000588c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005890 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005894 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005898 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000589c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058a0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058a4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058a8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058ac .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058b0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058b4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058b8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058bc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058c0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058c4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058c8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058cc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058d0 .long L0_0_set_490 + 0x56, 0xd0, 0xff, 0xff, //0x000058d4 .long L0_0_set_527 + 0x68, 0xce, 0xff, 0xff, //0x000058d8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058dc .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058e0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058e4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058e8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058ec .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058f0 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058f4 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058f8 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x000058fc .long L0_0_set_490 + 0x4e, 0xce, 0xff, 0xff, //0x00005900 .long L0_0_set_489 + 0x68, 0xce, 0xff, 0xff, //0x00005904 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005908 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000590c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005910 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005914 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005918 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000591c .long L0_0_set_490 + 0x3d, 0xcd, 0xff, 0xff, //0x00005920 .long L0_0_set_476 + 0x68, 0xce, 0xff, 0xff, //0x00005924 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005928 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000592c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005930 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005934 .long L0_0_set_490 + 0x3d, 0xcd, 0xff, 0xff, //0x00005938 .long L0_0_set_476 + 0x68, 0xce, 0xff, 0xff, //0x0000593c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005940 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005944 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005948 .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x0000594c .long L0_0_set_490 + 0x68, 0xce, 0xff, 0xff, //0x00005950 .long L0_0_set_490 + 0x00, 0xd3, 0xff, 0xff, //0x00005954 .long L0_0_set_552 + // // .set L0_1_set_294, LBB0_294-LJTI0_1 + // // .set L0_1_set_293, LBB0_293-LJTI0_1 + // // .set L0_1_set_254, LBB0_254-LJTI0_1 + // // .set L0_1_set_232, LBB0_232-LJTI0_1 + // // .set L0_1_set_266, LBB0_266-LJTI0_1 + // // .set L0_1_set_292, LBB0_292-LJTI0_1 + // // .set L0_1_set_253, LBB0_253-LJTI0_1 + // // .set L0_1_set_326, LBB0_326-LJTI0_1 + //0x00005958 LJTI0_1 + 0xee, 0xbe, 0xff, 0xff, //0x00005958 .long L0_1_set_294 + 0xe8, 0xbe, 0xff, 0xff, //0x0000595c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005960 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005964 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005968 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x0000596c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005970 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005974 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005978 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x0000597c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005980 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005984 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005988 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x0000598c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005990 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005994 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005998 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x0000599c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059a0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059a4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059a8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059ac .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059b0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059b4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059b8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059bc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059c0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059c4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059c8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059cc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059d0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059d4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059d8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059dc .long L0_1_set_293 + 0x3f, 0xbb, 0xff, 0xff, //0x000059e0 .long L0_1_set_254 + 0xe8, 0xbe, 0xff, 0xff, //0x000059e4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059e8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059ec .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059f0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059f4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059f8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x000059fc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a00 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a04 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a08 .long L0_1_set_293 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a0c .long L0_1_set_232 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a10 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a14 .long L0_1_set_293 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a18 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a1c .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a20 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a24 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a28 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a2c .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a30 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a34 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a38 .long L0_1_set_232 + 0xe9, 0xb9, 0xff, 0xff, //0x00005a3c .long L0_1_set_232 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a40 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a44 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a48 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a4c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a50 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a54 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a58 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a5c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a60 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a64 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a68 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a6c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a70 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a74 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a78 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a7c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a80 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a84 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a88 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a8c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a90 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a94 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a98 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005a9c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005aa0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005aa4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005aa8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005aac .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ab0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ab4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ab8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005abc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ac0 .long L0_1_set_293 + 0x1e, 0xbc, 0xff, 0xff, //0x00005ac4 .long L0_1_set_266 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ac8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005acc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ad0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ad4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ad8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005adc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ae0 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ae4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005ae8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005aec .long L0_1_set_293 + 0xd2, 0xbe, 0xff, 0xff, //0x00005af0 .long L0_1_set_292 + 0xe8, 0xbe, 0xff, 0xff, //0x00005af4 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005af8 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005afc .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b00 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b04 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b08 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b0c .long L0_1_set_293 + 0x2d, 0xbb, 0xff, 0xff, //0x00005b10 .long L0_1_set_253 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b14 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b18 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b1c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b20 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b24 .long L0_1_set_293 + 0x2d, 0xbb, 0xff, 0xff, //0x00005b28 .long L0_1_set_253 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b2c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b30 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b34 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b38 .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b3c .long L0_1_set_293 + 0xe8, 0xbe, 0xff, 0xff, //0x00005b40 .long L0_1_set_293 + 0xb8, 0xc0, 0xff, 0xff, //0x00005b44 .long L0_1_set_326 + // // .set L0_2_set_698, LBB0_698-LJTI0_2 + // // .set L0_2_set_725, LBB0_725-LJTI0_2 + // // .set L0_2_set_704, LBB0_704-LJTI0_2 + // // .set L0_2_set_722, LBB0_722-LJTI0_2 + // // .set L0_2_set_701, LBB0_701-LJTI0_2 + // // .set L0_2_set_727, LBB0_727-LJTI0_2 + //0x00005b48 LJTI0_2 + 0xf9, 0xd9, 0xff, 0xff, //0x00005b48 .long L0_2_set_698 + 0x25, 0xdc, 0xff, 0xff, //0x00005b4c .long L0_2_set_725 + 0x30, 0xda, 0xff, 0xff, //0x00005b50 .long L0_2_set_704 + 0xb9, 0xdb, 0xff, 0xff, //0x00005b54 .long L0_2_set_722 + 0x10, 0xda, 0xff, 0xff, //0x00005b58 .long L0_2_set_701 + 0x50, 0xdc, 0xff, 0xff, //0x00005b5c .long L0_2_set_727 + // // .set L0_3_set_659, LBB0_659-LJTI0_3 + // // .set L0_3_set_658, LBB0_658-LJTI0_3 + // // .set L0_3_set_822, LBB0_822-LJTI0_3 + // // .set L0_3_set_839, LBB0_839-LJTI0_3 + // // .set L0_3_set_729, LBB0_729-LJTI0_3 + // // .set L0_3_set_843, LBB0_843-LJTI0_3 + // // .set L0_3_set_845, LBB0_845-LJTI0_3 + // // .set L0_3_set_848, LBB0_848-LJTI0_3 + // // .set L0_3_set_855, LBB0_855-LJTI0_3 + // // .set L0_3_set_861, LBB0_861-LJTI0_3 + //0x00005b60 LJTI0_3 + 0x9e, 0xd7, 0xff, 0xff, //0x00005b60 .long L0_3_set_659 + 0x97, 0xd7, 0xff, 0xff, //0x00005b64 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b68 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b6c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b70 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b74 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b78 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b7c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b80 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b84 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b88 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b8c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b90 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b94 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b98 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005b9c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ba0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ba4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ba8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bac .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bb0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bb4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bb8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bbc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bc0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bc4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bc8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bcc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bd0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bd4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bd8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bdc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005be0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005be4 .long L0_3_set_658 + 0x59, 0xe3, 0xff, 0xff, //0x00005be8 .long L0_3_set_822 + 0x97, 0xd7, 0xff, 0xff, //0x00005bec .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bf0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bf4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bf8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005bfc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c00 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c04 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c08 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c0c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c10 .long L0_3_set_658 + 0xc9, 0xe4, 0xff, 0xff, //0x00005c14 .long L0_3_set_839 + 0x97, 0xd7, 0xff, 0xff, //0x00005c18 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c1c .long L0_3_set_658 + 0xda, 0xdb, 0xff, 0xff, //0x00005c20 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c24 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c28 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c2c .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c30 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c34 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c38 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c3c .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c40 .long L0_3_set_729 + 0xda, 0xdb, 0xff, 0xff, //0x00005c44 .long L0_3_set_729 + 0x97, 0xd7, 0xff, 0xff, //0x00005c48 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c4c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c50 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c54 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c58 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c5c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c60 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c64 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c68 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c6c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c70 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c74 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c78 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c7c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c80 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c84 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c88 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c8c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c90 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c94 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c98 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005c9c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ca0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ca4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ca8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cac .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cb0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cb4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cb8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cbc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cc0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cc4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cc8 .long L0_3_set_658 + 0x03, 0xe5, 0xff, 0xff, //0x00005ccc .long L0_3_set_843 + 0x97, 0xd7, 0xff, 0xff, //0x00005cd0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cd4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cd8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cdc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ce0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ce4 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005ce8 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cec .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cf0 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005cf4 .long L0_3_set_658 + 0x27, 0xe5, 0xff, 0xff, //0x00005cf8 .long L0_3_set_845 + 0x97, 0xd7, 0xff, 0xff, //0x00005cfc .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d00 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d04 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d08 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d0c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d10 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d14 .long L0_3_set_658 + 0x63, 0xe5, 0xff, 0xff, //0x00005d18 .long L0_3_set_848 + 0x97, 0xd7, 0xff, 0xff, //0x00005d1c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d20 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d24 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d28 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d2c .long L0_3_set_658 + 0x86, 0xe5, 0xff, 0xff, //0x00005d30 .long L0_3_set_855 + 0x97, 0xd7, 0xff, 0xff, //0x00005d34 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d38 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d3c .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d40 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d44 .long L0_3_set_658 + 0x97, 0xd7, 0xff, 0xff, //0x00005d48 .long L0_3_set_658 + 0xa9, 0xe5, 0xff, 0xff, //0x00005d4c .long L0_3_set_861 + // // .set L0_4_set_912, LBB0_912-LJTI0_4 + // // .set L0_4_set_923, LBB0_923-LJTI0_4 + // // .set L0_4_set_919, LBB0_919-LJTI0_4 + // // .set L0_4_set_914, LBB0_914-LJTI0_4 + // // .set L0_4_set_917, LBB0_917-LJTI0_4 + //0x00005d50 LJTI0_4 + 0x6a, 0xe7, 0xff, 0xff, //0x00005d50 .long L0_4_set_912 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d54 .long L0_4_set_923 + 0x6a, 0xe7, 0xff, 0xff, //0x00005d58 .long L0_4_set_912 + 0xcf, 0xe7, 0xff, 0xff, //0x00005d5c .long L0_4_set_919 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d60 .long L0_4_set_923 + 0x84, 0xe7, 0xff, 0xff, //0x00005d64 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d68 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d6c .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d70 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d74 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d78 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d7c .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d80 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d84 .long L0_4_set_914 + 0x84, 0xe7, 0xff, 0xff, //0x00005d88 .long L0_4_set_914 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d8c .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d90 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d94 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d98 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005d9c .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005da0 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005da4 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005da8 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dac .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005db0 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005db4 .long L0_4_set_923 + 0xb4, 0xe7, 0xff, 0xff, //0x00005db8 .long L0_4_set_917 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dbc .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dc0 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dc4 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dc8 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dcc .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dd0 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dd4 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dd8 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005ddc .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005de0 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005de4 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005de8 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dec .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005df0 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005df4 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005df8 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005dfc .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e00 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e04 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e08 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e0c .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e10 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e14 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e18 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e1c .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e20 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e24 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e28 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e2c .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e30 .long L0_4_set_923 + 0xb9, 0xe8, 0xff, 0xff, //0x00005e34 .long L0_4_set_923 + 0xb4, 0xe7, 0xff, 0xff, //0x00005e38 .long L0_4_set_917 + // // .set L0_5_set_798, LBB0_798-LJTI0_5 + // // .set L0_5_set_809, LBB0_809-LJTI0_5 + // // .set L0_5_set_805, LBB0_805-LJTI0_5 + // // .set L0_5_set_800, LBB0_800-LJTI0_5 + // // .set L0_5_set_803, LBB0_803-LJTI0_5 + //0x00005e3c LJTI0_5 + 0x9a, 0xde, 0xff, 0xff, //0x00005e3c .long L0_5_set_798 + 0x48, 0xdf, 0xff, 0xff, //0x00005e40 .long L0_5_set_809 + 0x9a, 0xde, 0xff, 0xff, //0x00005e44 .long L0_5_set_798 + 0xff, 0xde, 0xff, 0xff, //0x00005e48 .long L0_5_set_805 + 0x48, 0xdf, 0xff, 0xff, //0x00005e4c .long L0_5_set_809 + 0xb4, 0xde, 0xff, 0xff, //0x00005e50 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e54 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e58 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e5c .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e60 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e64 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e68 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e6c .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e70 .long L0_5_set_800 + 0xb4, 0xde, 0xff, 0xff, //0x00005e74 .long L0_5_set_800 + 0x48, 0xdf, 0xff, 0xff, //0x00005e78 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e7c .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e80 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e84 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e88 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e8c .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e90 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e94 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e98 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005e9c .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ea0 .long L0_5_set_809 + 0xe4, 0xde, 0xff, 0xff, //0x00005ea4 .long L0_5_set_803 + 0x48, 0xdf, 0xff, 0xff, //0x00005ea8 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005eac .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005eb0 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005eb4 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005eb8 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ebc .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ec0 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ec4 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ec8 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ecc .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ed0 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ed4 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ed8 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005edc .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ee0 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ee4 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ee8 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005eec .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ef0 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ef4 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005ef8 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005efc .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f00 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f04 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f08 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f0c .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f10 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f14 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f18 .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f1c .long L0_5_set_809 + 0x48, 0xdf, 0xff, 0xff, //0x00005f20 .long L0_5_set_809 + 0xe4, 0xde, 0xff, 0xff, //0x00005f24 .long L0_5_set_803 + // // .set L0_6_set_659, LBB0_659-LJTI0_6 + // // .set L0_6_set_1087, LBB0_1087-LJTI0_6 + // // .set L0_6_set_1017, LBB0_1017-LJTI0_6 + // // .set L0_6_set_636, LBB0_636-LJTI0_6 + // // .set L0_6_set_1028, LBB0_1028-LJTI0_6 + // // .set L0_6_set_1052, LBB0_1052-LJTI0_6 + // // .set L0_6_set_1015, LBB0_1015-LJTI0_6 + // // .set L0_6_set_1055, LBB0_1055-LJTI0_6 + //0x00005f28 LJTI0_6 + 0xd6, 0xd3, 0xff, 0xff, //0x00005f28 .long L0_6_set_659 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f2c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f30 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f34 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f38 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f3c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f40 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f44 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f48 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f4c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f50 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f54 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f58 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f5c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f60 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f64 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f68 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f6c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f70 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f74 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f78 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f7c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f80 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f84 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f88 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f8c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f90 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f94 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f98 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005f9c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fa0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fa4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fa8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fac .long L0_6_set_1087 + 0xc5, 0xee, 0xff, 0xff, //0x00005fb0 .long L0_6_set_1017 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fb4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fb8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fbc .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fc0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fc4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fc8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fcc .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fd0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fd4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fd8 .long L0_6_set_1087 + 0x66, 0xd2, 0xff, 0xff, //0x00005fdc .long L0_6_set_636 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fe0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00005fe4 .long L0_6_set_1087 + 0x66, 0xd2, 0xff, 0xff, //0x00005fe8 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00005fec .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00005ff0 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00005ff4 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00005ff8 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00005ffc .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00006000 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00006004 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x00006008 .long L0_6_set_636 + 0x66, 0xd2, 0xff, 0xff, //0x0000600c .long L0_6_set_636 + 0xa2, 0xf5, 0xff, 0xff, //0x00006010 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006014 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006018 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000601c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006020 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006024 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006028 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000602c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006030 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006034 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006038 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000603c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006040 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006044 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006048 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000604c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006050 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006054 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006058 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000605c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006060 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006064 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006068 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000606c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006070 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006074 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006078 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000607c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006080 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006084 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006088 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000608c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006090 .long L0_6_set_1087 + 0xb0, 0xef, 0xff, 0xff, //0x00006094 .long L0_6_set_1028 + 0xa2, 0xf5, 0xff, 0xff, //0x00006098 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000609c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060a0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060a4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060a8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060ac .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060b0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060b4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060b8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060bc .long L0_6_set_1087 + 0x57, 0xf2, 0xff, 0xff, //0x000060c0 .long L0_6_set_1052 + 0xa2, 0xf5, 0xff, 0xff, //0x000060c4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060c8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060cc .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060d0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060d4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060d8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060dc .long L0_6_set_1087 + 0x95, 0xee, 0xff, 0xff, //0x000060e0 .long L0_6_set_1015 + 0xa2, 0xf5, 0xff, 0xff, //0x000060e4 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060e8 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060ec .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060f0 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x000060f4 .long L0_6_set_1087 + 0x95, 0xee, 0xff, 0xff, //0x000060f8 .long L0_6_set_1015 + 0xa2, 0xf5, 0xff, 0xff, //0x000060fc .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006100 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006104 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006108 .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x0000610c .long L0_6_set_1087 + 0xa2, 0xf5, 0xff, 0xff, //0x00006110 .long L0_6_set_1087 + 0x70, 0xf2, 0xff, 0xff, //0x00006114 .long L0_6_set_1055 + //0x00006118 .p2align 2, 0x00 + //0x00006118 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00006118 .long 2 + 0x00, 0x00, 0x00, 0x00, //0x0000611c .p2align 4, 0x00 + //0x00006120 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00006140 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00006170 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00006180 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00006190 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006196 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006206 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006216 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape.go new file mode 100644 index 000000000..5d535a33d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + +var S_html_escape uintptr + +//go:nosplit +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return F_html_escape(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(dn))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_subr.go new file mode 100644 index 000000000..d5afc3054 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__html_escape = 192 +) + +const ( + _stack__html_escape = 72 +) + +const ( + _size__html_escape = 2064 +) + +var ( + _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}, + } +) + +var _cfunc_html_escape = []loader.CFunc{ + {"_html_escape_entry", 0, _entry__html_escape, 0, nil}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_text_amd64.go new file mode 100644 index 000000000..f66c2a903 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/html_escape_text_amd64.go @@ -0,0 +1,845 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_html_escape = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, // QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00000010 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00000020 LCPI0_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00000020 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00000030 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00000040 LCPI0_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00000040 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00000050 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x00000060 LCPI0_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00000060 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00000070 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00000080 .p2align 4, 0x00 + //0x00000080 LCPI0_4 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00000080 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00000090 LCPI0_5 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00000090 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x000000a0 LCPI0_6 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000000a0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x000000b0 LCPI0_7 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000000b0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 _html_escape + 0x55, //0x000000c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000c1 movq %rsp, %rbp + 0x41, 0x57, //0x000000c4 pushq %r15 + 0x41, 0x56, //0x000000c6 pushq %r14 + 0x41, 0x55, //0x000000c8 pushq %r13 + 0x41, 0x54, //0x000000ca pushq %r12 + 0x53, //0x000000cc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x000000cd subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x000000d1 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd7, //0x000000d5 movq %rdx, %r15 + 0x48, 0x89, 0x55, 0xc8, //0x000000d8 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000000dc movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x000000e0 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x000000e3 testq %rsi, %rsi + 0x0f, 0x8e, 0xa8, 0x07, 0x00, 0x00, //0x000000e6 jle LBB0_94 + 0x49, 0x89, 0xf2, //0x000000ec movq %rsi, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000000ef movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x000000f3 movq (%rax), %r9 + 0xc5, 0xfe, 0x6f, 0x1d, 0x02, 0xff, 0xff, 0xff, //0x000000f6 vmovdqu $-254(%rip), %ymm3 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x1a, 0xff, 0xff, 0xff, //0x000000fe vmovdqu $-230(%rip), %ymm4 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x32, 0xff, 0xff, 0xff, //0x00000106 vmovdqu $-206(%rip), %ymm5 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x4a, 0xff, 0xff, 0xff, //0x0000010e vmovdqu $-182(%rip), %ymm6 /* LCPI0_3+0(%rip) */ + 0x4c, 0x8d, 0x35, 0xb3, 0x07, 0x00, 0x00, //0x00000116 leaq $1971(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + 0x48, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000011d movabsq $12884901889, %rdi + 0x4c, 0x8b, 0x65, 0xd0, //0x00000127 movq $-48(%rbp), %r12 + 0x4c, 0x8b, 0x7d, 0xc8, //0x0000012b movq $-56(%rbp), %r15 + 0x90, //0x0000012f .p2align 4, 0x90 + //0x00000130 LBB0_2 + 0x4d, 0x85, 0xc9, //0x00000130 testq %r9, %r9 + 0x0f, 0x8e, 0x7a, 0x07, 0x00, 0x00, //0x00000133 jle LBB0_96 + 0x49, 0x83, 0xfa, 0x1f, //0x00000139 cmpq $31, %r10 + 0x0f, 0x9f, 0xc3, //0x0000013d setg %bl + 0x4c, 0x89, 0xc8, //0x00000140 movq %r9, %rax + 0x4d, 0x89, 0xf8, //0x00000143 movq %r15, %r8 + 0x4c, 0x89, 0xd6, //0x00000146 movq %r10, %rsi + 0x4d, 0x89, 0xe5, //0x00000149 movq %r12, %r13 + 0x49, 0x83, 0xf9, 0x20, //0x0000014c cmpq $32, %r9 + 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x00000150 jl LBB0_9 + 0x49, 0x83, 0xfa, 0x20, //0x00000156 cmpq $32, %r10 + 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x0000015a jl LBB0_9 + 0x4d, 0x89, 0xe5, //0x00000160 movq %r12, %r13 + 0x4c, 0x89, 0xd6, //0x00000163 movq %r10, %rsi + 0x4d, 0x89, 0xf8, //0x00000166 movq %r15, %r8 + 0x4c, 0x89, 0xca, //0x00000169 movq %r9, %rdx + 0x90, 0x90, 0x90, 0x90, //0x0000016c .p2align 4, 0x90 + //0x00000170 LBB0_6 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00000170 vmovdqu (%r13), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x00000176 vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x0000017a vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x0000017e vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xd5, //0x00000182 vpor %ymm5, %ymm0, %ymm2 + 0xc5, 0xed, 0x74, 0xd6, //0x00000186 vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc5, 0xf5, 0xeb, 0xca, //0x0000018a vpor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x0000018e vmovdqu %ymm0, (%r8) + 0xc5, 0xfd, 0xd7, 0xc1, //0x00000193 vpmovmskb %ymm1, %eax + 0x85, 0xc0, //0x00000197 testl %eax, %eax + 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x00000199 jne LBB0_19 + 0x49, 0x83, 0xc5, 0x20, //0x0000019f addq $32, %r13 + 0x49, 0x83, 0xc0, 0x20, //0x000001a3 addq $32, %r8 + 0x48, 0x8d, 0x42, 0xe0, //0x000001a7 leaq $-32(%rdx), %rax + 0x48, 0x83, 0xfe, 0x3f, //0x000001ab cmpq $63, %rsi + 0x0f, 0x9f, 0xc3, //0x000001af setg %bl + 0x48, 0x83, 0xfe, 0x40, //0x000001b2 cmpq $64, %rsi + 0x48, 0x8d, 0x76, 0xe0, //0x000001b6 leaq $-32(%rsi), %rsi + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x000001ba jl LBB0_9 + 0x48, 0x83, 0xfa, 0x3f, //0x000001c0 cmpq $63, %rdx + 0x48, 0x89, 0xc2, //0x000001c4 movq %rax, %rdx + 0x0f, 0x8f, 0xa3, 0xff, 0xff, 0xff, //0x000001c7 jg LBB0_6 + 0x90, 0x90, 0x90, //0x000001cd .p2align 4, 0x90 + //0x000001d0 LBB0_9 + 0x84, 0xdb, //0x000001d0 testb %bl, %bl + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x000001d2 je LBB0_13 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000001d8 vmovdqu (%r13), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x000001de vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x000001e2 vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x000001e6 vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc5, //0x000001ea vpor %ymm5, %ymm0, %ymm0 + 0xc5, 0xfd, 0x74, 0xc6, //0x000001ee vpcmpeqb %ymm6, %ymm0, %ymm0 + 0xc5, 0xf5, 0xeb, 0xc0, //0x000001f2 vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000001f6 vpmovmskb %ymm0, %ecx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000001fa movabsq $4294967296, %rdx + 0x48, 0x09, 0xd1, //0x00000204 orq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xd9, //0x00000207 bsfq %rcx, %r11 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000020b vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x00000211 vpextrq $1, %xmm0, %rcx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x00000217 vmovq %xmm0, %rdx + 0x49, 0x39, 0xc3, //0x0000021c cmpq %rax, %r11 + 0x0f, 0x8e, 0x92, 0x01, 0x00, 0x00, //0x0000021f jle LBB0_20 + 0x48, 0x83, 0xf8, 0x10, //0x00000225 cmpq $16, %rax + 0x0f, 0x82, 0xd1, 0x01, 0x00, 0x00, //0x00000229 jb LBB0_23 + 0x49, 0x89, 0x10, //0x0000022f movq %rdx, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00000232 movq %rcx, $8(%r8) + 0x4d, 0x8d, 0x5d, 0x10, //0x00000236 leaq $16(%r13), %r11 + 0x49, 0x83, 0xc0, 0x10, //0x0000023a addq $16, %r8 + 0x48, 0x8d, 0x70, 0xf0, //0x0000023e leaq $-16(%rax), %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00000242 cmpq $8, %rsi + 0x0f, 0x83, 0xc4, 0x01, 0x00, 0x00, //0x00000246 jae LBB0_24 + 0xe9, 0xd1, 0x01, 0x00, 0x00, //0x0000024c jmp LBB0_25 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000251 .p2align 4, 0x90 + //0x00000260 LBB0_13 + 0x4c, 0x89, 0xf2, //0x00000260 movq %r14, %rdx + 0xc5, 0xf8, 0x77, //0x00000263 vzeroupper + 0x48, 0x83, 0xfe, 0x0f, //0x00000266 cmpq $15, %rsi + 0x41, 0x0f, 0x9f, 0xc6, //0x0000026a setg %r14b + 0x48, 0x83, 0xf8, 0x10, //0x0000026e cmpq $16, %rax + 0x0f, 0x8c, 0x22, 0x02, 0x00, 0x00, //0x00000272 jl LBB0_30 + 0x48, 0x83, 0xfe, 0x10, //0x00000278 cmpq $16, %rsi + 0xc5, 0xfa, 0x6f, 0x3d, 0xfc, 0xfd, 0xff, 0xff, //0x0000027c vmovdqu $-516(%rip), %xmm7 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x05, 0x04, 0xfe, 0xff, 0xff, //0x00000284 vmovdqu $-508(%rip), %xmm8 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x0c, 0xfe, 0xff, 0xff, //0x0000028c vmovdqu $-500(%rip), %xmm9 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x14, 0xfe, 0xff, 0xff, //0x00000294 vmovdqu $-492(%rip), %xmm10 /* LCPI0_7+0(%rip) */ + 0x0f, 0x8c, 0x49, 0x02, 0x00, 0x00, //0x0000029c jl LBB0_35 + 0xc5, 0xfe, 0x6f, 0x1d, 0x56, 0xfd, 0xff, 0xff, //0x000002a2 vmovdqu $-682(%rip), %ymm3 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x6e, 0xfd, 0xff, 0xff, //0x000002aa vmovdqu $-658(%rip), %ymm4 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x86, 0xfd, 0xff, 0xff, //0x000002b2 vmovdqu $-634(%rip), %ymm5 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x9e, 0xfd, 0xff, 0xff, //0x000002ba vmovdqu $-610(%rip), %ymm6 /* LCPI0_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002c2 .p2align 4, 0x90 + //0x000002d0 LBB0_16 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x000002d0 vmovdqu (%r13), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x000002d6 vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x000002da vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x000002de vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xeb, 0xd0, //0x000002e2 vpor %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x000002e6 vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x000002ea vpor %xmm2, %xmm1, %xmm1 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x000002ee vmovdqu %xmm0, (%r8) + 0xc5, 0xf9, 0xd7, 0xc9, //0x000002f3 vpmovmskb %xmm1, %ecx + 0x66, 0x85, 0xc9, //0x000002f7 testw %cx, %cx + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x000002fa jne LBB0_22 + 0x49, 0x83, 0xc5, 0x10, //0x00000300 addq $16, %r13 + 0x49, 0x83, 0xc0, 0x10, //0x00000304 addq $16, %r8 + 0x4c, 0x8d, 0x58, 0xf0, //0x00000308 leaq $-16(%rax), %r11 + 0x48, 0x83, 0xfe, 0x1f, //0x0000030c cmpq $31, %rsi + 0x41, 0x0f, 0x9f, 0xc6, //0x00000310 setg %r14b + 0x48, 0x83, 0xfe, 0x20, //0x00000314 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x00000318 leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x0000031c jl LBB0_31 + 0x48, 0x83, 0xf8, 0x1f, //0x00000322 cmpq $31, %rax + 0x4c, 0x89, 0xd8, //0x00000326 movq %r11, %rax + 0x0f, 0x8f, 0xa1, 0xff, 0xff, 0xff, //0x00000329 jg LBB0_16 + 0x90, //0x0000032f .p2align 4, 0x90 + //0x00000330 LBB0_31 + 0x45, 0x84, 0xf6, //0x00000330 testb %r14b, %r14b + 0x0f, 0x84, 0xde, 0x01, 0x00, 0x00, //0x00000333 je LBB0_36 + //0x00000339 LBB0_32 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00000339 vmovdqu (%r13), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x0000033f vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00000343 vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00000347 vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xeb, 0xd0, //0x0000034b vpor %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x0000034f vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00000353 vpor %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x00000357 vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000035b orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xf0, //0x00000360 bsfl %eax, %r14d + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00000364 vmovq %xmm0, %rax + 0x4d, 0x39, 0xf3, //0x00000369 cmpq %r14, %r11 + 0x0f, 0x8d, 0xaa, 0x02, 0x00, 0x00, //0x0000036c jge LBB0_55 + 0x49, 0x83, 0xfb, 0x08, //0x00000372 cmpq $8, %r11 + 0x0f, 0x82, 0xdc, 0x02, 0x00, 0x00, //0x00000376 jb LBB0_58 + 0x49, 0x89, 0x00, //0x0000037c movq %rax, (%r8) + 0x49, 0x8d, 0x45, 0x08, //0x0000037f leaq $8(%r13), %rax + 0x49, 0x83, 0xc0, 0x08, //0x00000383 addq $8, %r8 + 0x49, 0x8d, 0x73, 0xf8, //0x00000387 leaq $-8(%r11), %rsi + 0x49, 0x89, 0xd6, //0x0000038b movq %rdx, %r14 + 0x48, 0x83, 0xfe, 0x04, //0x0000038e cmpq $4, %rsi + 0x0f, 0x8d, 0xd3, 0x02, 0x00, 0x00, //0x00000392 jge LBB0_59 + 0xe9, 0xdf, 0x02, 0x00, 0x00, //0x00000398 jmp LBB0_60 + 0x90, 0x90, 0x90, //0x0000039d .p2align 4, 0x90 + //0x000003a0 LBB0_19 + 0x4d, 0x29, 0xe5, //0x000003a0 subq %r12, %r13 + 0x0f, 0xbc, 0xc0, //0x000003a3 bsfl %eax, %eax + 0x4c, 0x01, 0xe8, //0x000003a6 addq %r13, %rax + 0x48, 0x85, 0xc0, //0x000003a9 testq %rax, %rax + 0x0f, 0x89, 0xae, 0x03, 0x00, 0x00, //0x000003ac jns LBB0_72 + 0xe9, 0xba, 0x04, 0x00, 0x00, //0x000003b2 jmp LBB0_92 + //0x000003b7 LBB0_20 + 0x41, 0x83, 0xfb, 0x10, //0x000003b7 cmpl $16, %r11d + 0x0f, 0x82, 0xc4, 0x01, 0x00, 0x00, //0x000003bb jb LBB0_43 + 0x49, 0x89, 0x10, //0x000003c1 movq %rdx, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x000003c4 movq %rcx, $8(%r8) + 0x49, 0x8d, 0x45, 0x10, //0x000003c8 leaq $16(%r13), %rax + 0x49, 0x83, 0xc0, 0x10, //0x000003cc addq $16, %r8 + 0x49, 0x8d, 0x73, 0xf0, //0x000003d0 leaq $-16(%r11), %rsi + 0x48, 0x83, 0xfe, 0x08, //0x000003d4 cmpq $8, %rsi + 0x0f, 0x83, 0xb7, 0x01, 0x00, 0x00, //0x000003d8 jae LBB0_44 + 0xe9, 0xc4, 0x01, 0x00, 0x00, //0x000003de jmp LBB0_45 + //0x000003e3 LBB0_22 + 0x0f, 0xb7, 0xc1, //0x000003e3 movzwl %cx, %eax + 0x4d, 0x29, 0xe5, //0x000003e6 subq %r12, %r13 + 0x0f, 0xbc, 0xc0, //0x000003e9 bsfl %eax, %eax + 0x4c, 0x01, 0xe8, //0x000003ec addq %r13, %rax + 0x49, 0x89, 0xd6, //0x000003ef movq %rdx, %r14 + 0x48, 0x85, 0xc0, //0x000003f2 testq %rax, %rax + 0x0f, 0x89, 0x65, 0x03, 0x00, 0x00, //0x000003f5 jns LBB0_72 + 0xe9, 0x71, 0x04, 0x00, 0x00, //0x000003fb jmp LBB0_92 + //0x00000400 LBB0_23 + 0x4d, 0x89, 0xeb, //0x00000400 movq %r13, %r11 + 0x48, 0x89, 0xc6, //0x00000403 movq %rax, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00000406 cmpq $8, %rsi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000040a jb LBB0_25 + //0x00000410 LBB0_24 + 0x49, 0x8b, 0x0b, //0x00000410 movq (%r11), %rcx + 0x49, 0x89, 0x08, //0x00000413 movq %rcx, (%r8) + 0x49, 0x83, 0xc3, 0x08, //0x00000416 addq $8, %r11 + 0x49, 0x83, 0xc0, 0x08, //0x0000041a addq $8, %r8 + 0x48, 0x83, 0xc6, 0xf8, //0x0000041e addq $-8, %rsi + //0x00000422 LBB0_25 + 0x48, 0x83, 0xfe, 0x04, //0x00000422 cmpq $4, %rsi + 0x0f, 0x8c, 0x42, 0x00, 0x00, 0x00, //0x00000426 jl LBB0_26 + 0x41, 0x8b, 0x0b, //0x0000042c movl (%r11), %ecx + 0x41, 0x89, 0x08, //0x0000042f movl %ecx, (%r8) + 0x49, 0x83, 0xc3, 0x04, //0x00000432 addq $4, %r11 + 0x49, 0x83, 0xc0, 0x04, //0x00000436 addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x0000043a addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x0000043e cmpq $2, %rsi + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00000442 jae LBB0_52 + //0x00000448 LBB0_27 + 0x48, 0x85, 0xf6, //0x00000448 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000044b je LBB0_29 + //0x00000451 LBB0_28 + 0x41, 0x8a, 0x0b, //0x00000451 movb (%r11), %cl + 0x41, 0x88, 0x08, //0x00000454 movb %cl, (%r8) + //0x00000457 LBB0_29 + 0x4c, 0x29, 0xe0, //0x00000457 subq %r12, %rax + 0x4c, 0x01, 0xe8, //0x0000045a addq %r13, %rax + 0x48, 0xf7, 0xd0, //0x0000045d notq %rax + 0x48, 0x85, 0xc0, //0x00000460 testq %rax, %rax + 0x0f, 0x89, 0xf7, 0x02, 0x00, 0x00, //0x00000463 jns LBB0_72 + 0xe9, 0x03, 0x04, 0x00, 0x00, //0x00000469 jmp LBB0_92 + //0x0000046e LBB0_26 + 0x48, 0x83, 0xfe, 0x02, //0x0000046e cmpq $2, %rsi + 0x0f, 0x82, 0xd0, 0xff, 0xff, 0xff, //0x00000472 jb LBB0_27 + //0x00000478 LBB0_52 + 0x41, 0x0f, 0xb7, 0x0b, //0x00000478 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x08, //0x0000047c movw %cx, (%r8) + 0x49, 0x83, 0xc3, 0x02, //0x00000480 addq $2, %r11 + 0x49, 0x83, 0xc0, 0x02, //0x00000484 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00000488 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000048c testq %rsi, %rsi + 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x0000048f jne LBB0_28 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00000495 jmp LBB0_29 + //0x0000049a LBB0_30 + 0x49, 0x89, 0xc3, //0x0000049a movq %rax, %r11 + 0xc5, 0xfe, 0x6f, 0x1d, 0x5b, 0xfb, 0xff, 0xff, //0x0000049d vmovdqu $-1189(%rip), %ymm3 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x73, 0xfb, 0xff, 0xff, //0x000004a5 vmovdqu $-1165(%rip), %ymm4 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x8b, 0xfb, 0xff, 0xff, //0x000004ad vmovdqu $-1141(%rip), %ymm5 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xa3, 0xfb, 0xff, 0xff, //0x000004b5 vmovdqu $-1117(%rip), %ymm6 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x3d, 0xbb, 0xfb, 0xff, 0xff, //0x000004bd vmovdqu $-1093(%rip), %xmm7 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x05, 0xc3, 0xfb, 0xff, 0xff, //0x000004c5 vmovdqu $-1085(%rip), %xmm8 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0xcb, 0xfb, 0xff, 0xff, //0x000004cd vmovdqu $-1077(%rip), %xmm9 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0xd3, 0xfb, 0xff, 0xff, //0x000004d5 vmovdqu $-1069(%rip), %xmm10 /* LCPI0_7+0(%rip) */ + 0x45, 0x84, 0xf6, //0x000004dd testb %r14b, %r14b + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000004e0 je LBB0_36 + 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x000004e6 jmp LBB0_32 + //0x000004eb LBB0_35 + 0x49, 0x89, 0xc3, //0x000004eb movq %rax, %r11 + 0xc5, 0xfe, 0x6f, 0x1d, 0x0a, 0xfb, 0xff, 0xff, //0x000004ee vmovdqu $-1270(%rip), %ymm3 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x22, 0xfb, 0xff, 0xff, //0x000004f6 vmovdqu $-1246(%rip), %ymm4 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x3a, 0xfb, 0xff, 0xff, //0x000004fe vmovdqu $-1222(%rip), %ymm5 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x52, 0xfb, 0xff, 0xff, //0x00000506 vmovdqu $-1198(%rip), %ymm6 /* LCPI0_3+0(%rip) */ + 0x45, 0x84, 0xf6, //0x0000050e testb %r14b, %r14b + 0x0f, 0x85, 0x22, 0xfe, 0xff, 0xff, //0x00000511 jne LBB0_32 + //0x00000517 LBB0_36 + 0x4d, 0x85, 0xdb, //0x00000517 testq %r11, %r11 + 0x0f, 0x8e, 0xaf, 0x01, 0x00, 0x00, //0x0000051a jle LBB0_64 + 0x48, 0x85, 0xf6, //0x00000520 testq %rsi, %rsi + 0x49, 0x89, 0xd6, //0x00000523 movq %rdx, %r14 + 0x0f, 0x8e, 0xa6, 0x01, 0x00, 0x00, //0x00000526 jle LBB0_65 + 0x90, 0x90, 0x90, 0x90, //0x0000052c .p2align 4, 0x90 + //0x00000530 LBB0_38 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00000530 movzbl (%r13), %eax + 0x48, 0x83, 0xf8, 0x3e, //0x00000535 cmpq $62, %rax + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x00000539 ja LBB0_40 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x0000053f movabsq $5764607797912141824, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000549 btq %rax, %rcx + 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x0000054d jb LBB0_57 + //0x00000553 LBB0_40 + 0x3c, 0xe2, //0x00000553 cmpb $-30, %al + 0x0f, 0x84, 0xe9, 0x00, 0x00, 0x00, //0x00000555 je LBB0_57 + 0x49, 0xff, 0xc5, //0x0000055b incq %r13 + 0x41, 0x88, 0x00, //0x0000055e movb %al, (%r8) + 0x48, 0x83, 0xfe, 0x02, //0x00000561 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00000565 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x63, 0x01, 0x00, 0x00, //0x00000569 jl LBB0_65 + 0x49, 0xff, 0xc0, //0x0000056f incq %r8 + 0x49, 0x83, 0xfb, 0x01, //0x00000572 cmpq $1, %r11 + 0x4d, 0x8d, 0x5b, 0xff, //0x00000576 leaq $-1(%r11), %r11 + 0x0f, 0x8f, 0xb0, 0xff, 0xff, 0xff, //0x0000057a jg LBB0_38 + 0xe9, 0x4d, 0x01, 0x00, 0x00, //0x00000580 jmp LBB0_65 + //0x00000585 LBB0_43 + 0x4c, 0x89, 0xe8, //0x00000585 movq %r13, %rax + 0x4c, 0x89, 0xde, //0x00000588 movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x0000058b cmpq $8, %rsi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000058f jb LBB0_45 + //0x00000595 LBB0_44 + 0x48, 0x8b, 0x08, //0x00000595 movq (%rax), %rcx + 0x49, 0x89, 0x08, //0x00000598 movq %rcx, (%r8) + 0x48, 0x83, 0xc0, 0x08, //0x0000059b addq $8, %rax + 0x49, 0x83, 0xc0, 0x08, //0x0000059f addq $8, %r8 + 0x48, 0x83, 0xc6, 0xf8, //0x000005a3 addq $-8, %rsi + //0x000005a7 LBB0_45 + 0x48, 0x83, 0xfe, 0x04, //0x000005a7 cmpq $4, %rsi + 0x0f, 0x8c, 0x40, 0x00, 0x00, 0x00, //0x000005ab jl LBB0_46 + 0x8b, 0x08, //0x000005b1 movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x000005b3 movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x000005b6 addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x000005ba addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x000005be addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x000005c2 cmpq $2, %rsi + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x000005c6 jae LBB0_54 + //0x000005cc LBB0_47 + 0x48, 0x85, 0xf6, //0x000005cc testq %rsi, %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000005cf je LBB0_49 + //0x000005d5 LBB0_48 + 0x8a, 0x00, //0x000005d5 movb (%rax), %al + 0x41, 0x88, 0x00, //0x000005d7 movb %al, (%r8) + //0x000005da LBB0_49 + 0x4d, 0x29, 0xe5, //0x000005da subq %r12, %r13 + 0x4d, 0x01, 0xdd, //0x000005dd addq %r11, %r13 + 0x4c, 0x89, 0xe8, //0x000005e0 movq %r13, %rax + 0x48, 0x85, 0xc0, //0x000005e3 testq %rax, %rax + 0x0f, 0x89, 0x74, 0x01, 0x00, 0x00, //0x000005e6 jns LBB0_72 + 0xe9, 0x80, 0x02, 0x00, 0x00, //0x000005ec jmp LBB0_92 + //0x000005f1 LBB0_46 + 0x48, 0x83, 0xfe, 0x02, //0x000005f1 cmpq $2, %rsi + 0x0f, 0x82, 0xd1, 0xff, 0xff, 0xff, //0x000005f5 jb LBB0_47 + //0x000005fb LBB0_54 + 0x0f, 0xb7, 0x08, //0x000005fb movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000005fe movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x00000602 addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x00000606 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x0000060a addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000060e testq %rsi, %rsi + 0x0f, 0x85, 0xbe, 0xff, 0xff, 0xff, //0x00000611 jne LBB0_48 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00000617 jmp LBB0_49 + //0x0000061c LBB0_55 + 0x41, 0x83, 0xfe, 0x08, //0x0000061c cmpl $8, %r14d + 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00000620 jb LBB0_66 + 0x49, 0x89, 0x00, //0x00000626 movq %rax, (%r8) + 0x49, 0x8d, 0x75, 0x08, //0x00000629 leaq $8(%r13), %rsi + 0x49, 0x83, 0xc0, 0x08, //0x0000062d addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x00000631 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000635 cmpq $4, %rax + 0x0f, 0x8d, 0xbd, 0x00, 0x00, 0x00, //0x00000639 jge LBB0_67 + 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x0000063f jmp LBB0_68 + //0x00000644 LBB0_57 + 0x4d, 0x29, 0xe5, //0x00000644 subq %r12, %r13 + 0x4c, 0x89, 0xe8, //0x00000647 movq %r13, %rax + 0x48, 0x85, 0xc0, //0x0000064a testq %rax, %rax + 0x0f, 0x89, 0x0d, 0x01, 0x00, 0x00, //0x0000064d jns LBB0_72 + 0xe9, 0x19, 0x02, 0x00, 0x00, //0x00000653 jmp LBB0_92 + //0x00000658 LBB0_58 + 0x4c, 0x89, 0xe8, //0x00000658 movq %r13, %rax + 0x4c, 0x89, 0xde, //0x0000065b movq %r11, %rsi + 0x49, 0x89, 0xd6, //0x0000065e movq %rdx, %r14 + 0x48, 0x83, 0xfe, 0x04, //0x00000661 cmpq $4, %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00000665 jl LBB0_60 + //0x0000066b LBB0_59 + 0x8b, 0x08, //0x0000066b movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x0000066d movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x00000670 addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x00000674 addq $4, %r8 + 0x48, 0x83, 0xc6, 0xfc, //0x00000678 addq $-4, %rsi + //0x0000067c LBB0_60 + 0x48, 0x83, 0xfe, 0x02, //0x0000067c cmpq $2, %rsi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00000680 jb LBB0_61 + 0x0f, 0xb7, 0x08, //0x00000686 movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00000689 movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x0000068d addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x00000691 addq $2, %r8 + 0x48, 0x83, 0xc6, 0xfe, //0x00000695 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x00000699 testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000069c jne LBB0_62 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000006a2 jmp LBB0_63 + //0x000006a7 LBB0_61 + 0x48, 0x85, 0xf6, //0x000006a7 testq %rsi, %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000006aa je LBB0_63 + //0x000006b0 LBB0_62 + 0x8a, 0x00, //0x000006b0 movb (%rax), %al + 0x41, 0x88, 0x00, //0x000006b2 movb %al, (%r8) + //0x000006b5 LBB0_63 + 0x4d, 0x29, 0xe3, //0x000006b5 subq %r12, %r11 + 0x4d, 0x01, 0xeb, //0x000006b8 addq %r13, %r11 + 0x49, 0xf7, 0xd3, //0x000006bb notq %r11 + 0x4c, 0x89, 0xd8, //0x000006be movq %r11, %rax + 0x48, 0x85, 0xc0, //0x000006c1 testq %rax, %rax + 0x0f, 0x89, 0x96, 0x00, 0x00, 0x00, //0x000006c4 jns LBB0_72 + 0xe9, 0xa2, 0x01, 0x00, 0x00, //0x000006ca jmp LBB0_92 + //0x000006cf LBB0_64 + 0x49, 0x89, 0xd6, //0x000006cf movq %rdx, %r14 + //0x000006d2 LBB0_65 + 0x4d, 0x29, 0xe5, //0x000006d2 subq %r12, %r13 + 0x48, 0xf7, 0xde, //0x000006d5 negq %rsi + 0x48, 0x19, 0xc0, //0x000006d8 sbbq %rax, %rax + 0x4c, 0x31, 0xe8, //0x000006db xorq %r13, %rax + 0x48, 0x85, 0xc0, //0x000006de testq %rax, %rax + 0x0f, 0x89, 0x79, 0x00, 0x00, 0x00, //0x000006e1 jns LBB0_72 + 0xe9, 0x85, 0x01, 0x00, 0x00, //0x000006e7 jmp LBB0_92 + //0x000006ec LBB0_66 + 0x4c, 0x89, 0xee, //0x000006ec movq %r13, %rsi + 0x4c, 0x89, 0xf0, //0x000006ef movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000006f2 cmpq $4, %rax + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000006f6 jl LBB0_68 + //0x000006fc LBB0_67 + 0x8b, 0x0e, //0x000006fc movl (%rsi), %ecx + 0x41, 0x89, 0x08, //0x000006fe movl %ecx, (%r8) + 0x48, 0x83, 0xc6, 0x04, //0x00000701 addq $4, %rsi + 0x49, 0x83, 0xc0, 0x04, //0x00000705 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x00000709 addq $-4, %rax + //0x0000070d LBB0_68 + 0x48, 0x83, 0xf8, 0x02, //0x0000070d cmpq $2, %rax + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00000711 jb LBB0_69 + 0x0f, 0xb7, 0x0e, //0x00000717 movzwl (%rsi), %ecx + 0x66, 0x41, 0x89, 0x08, //0x0000071a movw %cx, (%r8) + 0x48, 0x83, 0xc6, 0x02, //0x0000071e addq $2, %rsi + 0x49, 0x83, 0xc0, 0x02, //0x00000722 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00000726 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x0000072a testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000072d jne LBB0_70 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000733 jmp LBB0_71 + //0x00000738 LBB0_69 + 0x48, 0x85, 0xc0, //0x00000738 testq %rax, %rax + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000073b je LBB0_71 + //0x00000741 LBB0_70 + 0x8a, 0x06, //0x00000741 movb (%rsi), %al + 0x41, 0x88, 0x00, //0x00000743 movb %al, (%r8) + //0x00000746 LBB0_71 + 0x4d, 0x29, 0xe5, //0x00000746 subq %r12, %r13 + 0x4d, 0x01, 0xf5, //0x00000749 addq %r14, %r13 + 0x4c, 0x89, 0xe8, //0x0000074c movq %r13, %rax + 0x49, 0x89, 0xd6, //0x0000074f movq %rdx, %r14 + 0x48, 0x85, 0xc0, //0x00000752 testq %rax, %rax + 0x0f, 0x88, 0x16, 0x01, 0x00, 0x00, //0x00000755 js LBB0_92 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000075b .p2align 4, 0x90 + //0x00000760 LBB0_72 + 0x49, 0x01, 0xc4, //0x00000760 addq %rax, %r12 + 0x49, 0x01, 0xc7, //0x00000763 addq %rax, %r15 + 0x49, 0x29, 0xc2, //0x00000766 subq %rax, %r10 + 0x0f, 0x8e, 0x22, 0x01, 0x00, 0x00, //0x00000769 jle LBB0_93 + 0x49, 0x29, 0xc1, //0x0000076f subq %rax, %r9 + 0x41, 0x8a, 0x0c, 0x24, //0x00000772 movb (%r12), %cl + 0x80, 0xf9, 0xe2, //0x00000776 cmpb $-30, %cl + 0x0f, 0x84, 0xa2, 0x00, 0x00, 0x00, //0x00000779 je LBB0_86 + 0x4c, 0x89, 0xe0, //0x0000077f movq %r12, %rax + //0x00000782 LBB0_75 + 0x0f, 0xb6, 0xc9, //0x00000782 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00000785 shlq $4, %rcx + 0x4a, 0x8b, 0x14, 0x31, //0x00000789 movq (%rcx,%r14), %rdx + 0x48, 0x63, 0xf2, //0x0000078d movslq %edx, %rsi + 0x49, 0x29, 0xf1, //0x00000790 subq %rsi, %r9 + 0x0f, 0x8c, 0x0f, 0x01, 0x00, 0x00, //0x00000793 jl LBB0_95 + 0x48, 0xc1, 0xe2, 0x20, //0x00000799 shlq $32, %rdx + 0x4a, 0x8d, 0x5c, 0x31, 0x08, //0x0000079d leaq $8(%rcx,%r14), %rbx + 0x48, 0x39, 0xfa, //0x000007a2 cmpq %rdi, %rdx + 0x0f, 0x8c, 0x25, 0x00, 0x00, 0x00, //0x000007a5 jl LBB0_78 + 0x8b, 0x13, //0x000007ab movl (%rbx), %edx + 0x41, 0x89, 0x17, //0x000007ad movl %edx, (%r15) + 0x4a, 0x8d, 0x5c, 0x31, 0x0c, //0x000007b0 leaq $12(%rcx,%r14), %rbx + 0x49, 0x8d, 0x57, 0x04, //0x000007b5 leaq $4(%r15), %rdx + 0x48, 0x8d, 0x4e, 0xfc, //0x000007b9 leaq $-4(%rsi), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000007bd cmpq $2, %rcx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x000007c1 jae LBB0_79 + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x000007c7 jmp LBB0_80 + 0x90, 0x90, 0x90, 0x90, //0x000007cc .p2align 4, 0x90 + //0x000007d0 LBB0_78 + 0x4c, 0x89, 0xfa, //0x000007d0 movq %r15, %rdx + 0x48, 0x89, 0xf1, //0x000007d3 movq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x000007d6 cmpq $2, %rcx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x000007da jb LBB0_80 + //0x000007e0 LBB0_79 + 0x49, 0x89, 0xf8, //0x000007e0 movq %rdi, %r8 + 0x0f, 0xb7, 0x3b, //0x000007e3 movzwl (%rbx), %edi + 0x66, 0x89, 0x3a, //0x000007e6 movw %di, (%rdx) + 0x4c, 0x89, 0xc7, //0x000007e9 movq %r8, %rdi + 0x48, 0x83, 0xc3, 0x02, //0x000007ec addq $2, %rbx + 0x48, 0x83, 0xc2, 0x02, //0x000007f0 addq $2, %rdx + 0x48, 0x83, 0xc1, 0xfe, //0x000007f4 addq $-2, %rcx + //0x000007f8 LBB0_80 + 0x48, 0x85, 0xc9, //0x000007f8 testq %rcx, %rcx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000007fb je LBB0_82 + 0x8a, 0x0b, //0x00000801 movb (%rbx), %cl + 0x88, 0x0a, //0x00000803 movb %cl, (%rdx) + //0x00000805 LBB0_82 + 0x49, 0x01, 0xf7, //0x00000805 addq %rsi, %r15 + //0x00000808 LBB0_83 + 0x48, 0xff, 0xc0, //0x00000808 incq %rax + 0x49, 0x89, 0xc4, //0x0000080b movq %rax, %r12 + 0x49, 0x83, 0xfa, 0x01, //0x0000080e cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x00000812 leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0x14, 0xf9, 0xff, 0xff, //0x00000816 jg LBB0_2 + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x0000081c jmp LBB0_94 + //0x00000821 LBB0_86 + 0x49, 0x83, 0xfa, 0x03, //0x00000821 cmpq $3, %r10 + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00000825 jl LBB0_90 + 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x0000082b cmpb $-128, $1(%r12) + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x00000831 jne LBB0_90 + 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x00000837 movb $2(%r12), %cl + 0x89, 0xc8, //0x0000083c movl %ecx, %eax + 0x24, 0xfe, //0x0000083e andb $-2, %al + 0x3c, 0xa8, //0x00000840 cmpb $-88, %al + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00000842 jne LBB0_90 + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00000848 leaq $2(%r12), %rax + 0x49, 0x83, 0xc2, 0xfe, //0x0000084d addq $-2, %r10 + 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00000851 jmp LBB0_75 + //0x00000856 LBB0_90 + 0x4d, 0x85, 0xc9, //0x00000856 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00000859 jle LBB0_96 + 0x41, 0xc6, 0x07, 0xe2, //0x0000085f movb $-30, (%r15) + 0x49, 0xff, 0xc7, //0x00000863 incq %r15 + 0x49, 0xff, 0xc9, //0x00000866 decq %r9 + 0x4c, 0x89, 0xe0, //0x00000869 movq %r12, %rax + 0xe9, 0x97, 0xff, 0xff, 0xff, //0x0000086c jmp LBB0_83 + //0x00000871 LBB0_92 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00000871 subq $-56(%rbp), %r15 + 0x48, 0xf7, 0xd0, //0x00000875 notq %rax + 0x49, 0x01, 0xc7, //0x00000878 addq %rax, %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x0000087b movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x0000087f movq %r15, (%rcx) + 0x4c, 0x2b, 0x65, 0xd0, //0x00000882 subq $-48(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00000886 addq %rax, %r12 + 0x49, 0xf7, 0xd4, //0x00000889 notq %r12 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x0000088c jmp LBB0_97 + //0x00000891 LBB0_93 + 0x4c, 0x89, 0xe0, //0x00000891 movq %r12, %rax + //0x00000894 LBB0_94 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00000894 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x00000898 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x0000089c movq %r15, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000089f subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000008a3 jmp LBB0_98 + //0x000008a8 LBB0_95 + 0x4c, 0x2b, 0x7d, 0xc8, //0x000008a8 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x45, 0xc0, //0x000008ac movq $-64(%rbp), %rax + 0x4c, 0x89, 0x38, //0x000008b0 movq %r15, (%rax) + //0x000008b3 LBB0_96 + 0x49, 0xf7, 0xd4, //0x000008b3 notq %r12 + 0x4c, 0x03, 0x65, 0xd0, //0x000008b6 addq $-48(%rbp), %r12 + //0x000008ba LBB0_97 + 0x4c, 0x89, 0xe0, //0x000008ba movq %r12, %rax + //0x000008bd LBB0_98 + 0x48, 0x83, 0xc4, 0x18, //0x000008bd addq $24, %rsp + 0x5b, //0x000008c1 popq %rbx + 0x41, 0x5c, //0x000008c2 popq %r12 + 0x41, 0x5d, //0x000008c4 popq %r13 + 0x41, 0x5e, //0x000008c6 popq %r14 + 0x41, 0x5f, //0x000008c8 popq %r15 + 0x5d, //0x000008ca popq %rbp + 0xc5, 0xf8, 0x77, //0x000008cb vzeroupper + 0xc3, //0x000008ce retq + 0x00, //0x000008cf .p2align 4, 0x00 + //0x000008d0 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00000b38 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00000c98 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00000cb8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001350 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00001358 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001360 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00001368 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa.go new file mode 100644 index 000000000..b41ec3b97 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_i64toa func(out unsafe.Pointer, val int64) (ret int) + +var S_i64toa uintptr + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return F_i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_subr.go new file mode 100644 index 000000000..fb12932d9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_subr.go @@ -0,0 +1,47 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__i64toa = 64 +) + +const ( + _stack__i64toa = 8 +) + +const ( + _size__i64toa = 2288 +) + +var ( + _pcsp__i64toa = [][2]uint32{ + {1, 0}, + {170, 8}, + {171, 0}, + {505, 8}, + {506, 0}, + {637, 8}, + {638, 0}, + {1103, 8}, + {1104, 0}, + {1240, 8}, + {1241, 0}, + {1544, 8}, + {1545, 0}, + {1907, 8}, + {1908, 0}, + {2276, 8}, + {2278, 0}, + } +) + +var _cfunc_i64toa = []loader.CFunc{ + {"_i64toa_entry", 0, _entry__i64toa, 0, nil}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_text_amd64.go new file mode 100644 index 000000000..18e39a46c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/i64toa_text_amd64.go @@ -0,0 +1,639 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_i64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209 + //0x00000010 LCPI0_3 + 0x0a, 0x00, //0x00000010 .word 10 + 0x0a, 0x00, //0x00000012 .word 10 + 0x0a, 0x00, //0x00000014 .word 10 + 0x0a, 0x00, //0x00000016 .word 10 + 0x0a, 0x00, //0x00000018 .word 10 + 0x0a, 0x00, //0x0000001a .word 10 + 0x0a, 0x00, //0x0000001c .word 10 + 0x0a, 0x00, //0x0000001e .word 10 + //0x00000020 LCPI0_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000020 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000030 .p2align 3, 0x00 + //0x00000030 LCPI0_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000030 .quad -9223315738079846203 + //0x00000038 LCPI0_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000038 .quad -9223336852348469120 + //0x00000040 .p2align 4, 0x90 + //0x00000040 _i64toa + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x48, 0x85, 0xf6, //0x00000044 testq %rsi, %rsi + 0x0f, 0x88, 0xaf, 0x00, 0x00, 0x00, //0x00000047 js LBB0_25 + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x0000004d cmpq $9999, %rsi + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x00000054 ja LBB0_9 + 0x0f, 0xb7, 0xc6, //0x0000005a movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x0000005d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000060 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000066 shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000069 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x0000006d imull $100, %eax, %eax + 0x89, 0xf1, //0x00000070 movl %esi, %ecx + 0x29, 0xc1, //0x00000072 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000074 movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000077 addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000007a cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000080 jb LBB0_4 + 0x48, 0x8d, 0x0d, 0xa3, 0x08, 0x00, 0x00, //0x00000086 leaq $2211(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x0000008d movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000090 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000092 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000097 jmp LBB0_5 + //0x0000009c LBB0_4 + 0x31, 0xc9, //0x0000009c xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x0000009e cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000000a1 jb LBB0_6 + //0x000000a7 LBB0_5 + 0x0f, 0xb7, 0xd2, //0x000000a7 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000000aa orq $1, %rdx + 0x48, 0x8d, 0x35, 0x7b, 0x08, 0x00, 0x00, //0x000000ae leaq $2171(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000000b5 movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x000000b8 movl %ecx, %esi + 0xff, 0xc1, //0x000000ba incl %ecx + 0x88, 0x14, 0x37, //0x000000bc movb %dl, (%rdi,%rsi) + //0x000000bf LBB0_7 + 0x48, 0x8d, 0x15, 0x6a, 0x08, 0x00, 0x00, //0x000000bf leaq $2154(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x000000c6 movb (%rax,%rdx), %dl + 0x89, 0xce, //0x000000c9 movl %ecx, %esi + 0xff, 0xc1, //0x000000cb incl %ecx + 0x88, 0x14, 0x37, //0x000000cd movb %dl, (%rdi,%rsi) + //0x000000d0 LBB0_8 + 0x0f, 0xb7, 0xc0, //0x000000d0 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000000d3 orq $1, %rax + 0x48, 0x8d, 0x15, 0x52, 0x08, 0x00, 0x00, //0x000000d7 leaq $2130(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x000000de movb (%rax,%rdx), %al + 0x89, 0xca, //0x000000e1 movl %ecx, %edx + 0xff, 0xc1, //0x000000e3 incl %ecx + 0x88, 0x04, 0x17, //0x000000e5 movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x000000e8 movl %ecx, %eax + 0x5d, //0x000000ea popq %rbp + 0xc3, //0x000000eb retq + //0x000000ec LBB0_6 + 0x31, 0xc9, //0x000000ec xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000000ee cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000f1 jae LBB0_7 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000f7 jmp LBB0_8 + //0x000000fc LBB0_25 + 0xc6, 0x07, 0x2d, //0x000000fc movb $45, (%rdi) + 0x48, 0xf7, 0xde, //0x000000ff negq %rsi + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000102 cmpq $9999, %rsi + 0x0f, 0x87, 0xd3, 0x01, 0x00, 0x00, //0x00000109 ja LBB0_33 + 0x0f, 0xb7, 0xc6, //0x0000010f movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000112 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000115 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000011b shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x0000011e leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000122 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000125 movl %esi, %ecx + 0x29, 0xc1, //0x00000127 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000129 movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x0000012c addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000012f cmpl $1000, %esi + 0x0f, 0x82, 0xab, 0x00, 0x00, 0x00, //0x00000135 jb LBB0_28 + 0x48, 0x8d, 0x0d, 0xee, 0x07, 0x00, 0x00, //0x0000013b leaq $2030(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000142 movb (%rdx,%rcx), %cl + 0x88, 0x4f, 0x01, //0x00000145 movb %cl, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000148 movl $1, %ecx + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x0000014d jmp LBB0_29 + //0x00000152 LBB0_9 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000152 cmpq $99999999, %rsi + 0x0f, 0x87, 0x18, 0x02, 0x00, 0x00, //0x00000159 ja LBB0_17 + 0x89, 0xf0, //0x0000015f movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000161 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000166 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000016a shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000016e imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000175 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000177 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000017a imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000181 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000185 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000189 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000018c shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000018f imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000195 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000198 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000019b subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000019d movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x000001a1 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x000001a4 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x000001a7 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000001aa imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000001b0 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x000001b3 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x000001b7 imull $100, %eax, %eax + 0x29, 0xc1, //0x000001ba subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x000001bc movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x000001c0 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000001c3 cmpl $10000000, %esi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000001c9 jb LBB0_12 + 0x48, 0x8d, 0x05, 0x5a, 0x07, 0x00, 0x00, //0x000001cf leaq $1882(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x000001d6 movb (%r10,%rax), %al + 0x88, 0x07, //0x000001da movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000001dc movl $1, %ecx + 0xe9, 0x63, 0x00, 0x00, 0x00, //0x000001e1 jmp LBB0_13 + //0x000001e6 LBB0_28 + 0x31, 0xc9, //0x000001e6 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x000001e8 cmpl $100, %esi + 0x0f, 0x82, 0xce, 0x00, 0x00, 0x00, //0x000001eb jb LBB0_30 + //0x000001f1 LBB0_29 + 0x0f, 0xb7, 0xd2, //0x000001f1 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000001f4 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x31, 0x07, 0x00, 0x00, //0x000001f8 leaq $1841(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000001ff movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000202 movl %ecx, %esi + 0xff, 0xc1, //0x00000204 incl %ecx + 0x88, 0x54, 0x37, 0x01, //0x00000206 movb %dl, $1(%rdi,%rsi) + //0x0000020a LBB0_31 + 0x48, 0x8d, 0x15, 0x1f, 0x07, 0x00, 0x00, //0x0000020a leaq $1823(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000211 movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000214 movl %ecx, %esi + 0xff, 0xc1, //0x00000216 incl %ecx + 0x88, 0x54, 0x37, 0x01, //0x00000218 movb %dl, $1(%rdi,%rsi) + //0x0000021c LBB0_32 + 0x0f, 0xb7, 0xc0, //0x0000021c movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000021f orq $1, %rax + 0x48, 0x8d, 0x15, 0x06, 0x07, 0x00, 0x00, //0x00000223 leaq $1798(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x0000022a movb (%rax,%rdx), %al + 0x89, 0xca, //0x0000022d movl %ecx, %edx + 0xff, 0xc1, //0x0000022f incl %ecx + 0x88, 0x44, 0x17, 0x01, //0x00000231 movb %al, $1(%rdi,%rdx) + 0xff, 0xc1, //0x00000235 incl %ecx + 0x89, 0xc8, //0x00000237 movl %ecx, %eax + 0x5d, //0x00000239 popq %rbp + 0xc3, //0x0000023a retq + //0x0000023b LBB0_12 + 0x31, 0xc9, //0x0000023b xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x0000023d cmpl $1000000, %esi + 0x0f, 0x82, 0x86, 0x00, 0x00, 0x00, //0x00000243 jb LBB0_14 + //0x00000249 LBB0_13 + 0x44, 0x89, 0xd0, //0x00000249 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000024c orq $1, %rax + 0x48, 0x8d, 0x35, 0xd9, 0x06, 0x00, 0x00, //0x00000250 leaq $1753(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000257 movb (%rax,%rsi), %al + 0x89, 0xce, //0x0000025a movl %ecx, %esi + 0xff, 0xc1, //0x0000025c incl %ecx + 0x88, 0x04, 0x37, //0x0000025e movb %al, (%rdi,%rsi) + //0x00000261 LBB0_15 + 0x48, 0x8d, 0x05, 0xc8, 0x06, 0x00, 0x00, //0x00000261 leaq $1736(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000268 movb (%r9,%rax), %al + 0x89, 0xce, //0x0000026c movl %ecx, %esi + 0xff, 0xc1, //0x0000026e incl %ecx + 0x88, 0x04, 0x37, //0x00000270 movb %al, (%rdi,%rsi) + //0x00000273 LBB0_16 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000273 movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000277 orq $1, %rax + 0x48, 0x8d, 0x35, 0xae, 0x06, 0x00, 0x00, //0x0000027b leaq $1710(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000282 movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000285 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000287 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x0000028a movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x0000028e movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000292 movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000296 orq $1, %rax + 0x8a, 0x04, 0x30, //0x0000029a movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x0000029d movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x000002a1 movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x000002a5 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x000002a9 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000002ad orq $1, %rax + 0x8a, 0x04, 0x30, //0x000002b1 movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x000002b4 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x000002b7 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x000002bb movl %ecx, %eax + 0x5d, //0x000002bd popq %rbp + 0xc3, //0x000002be retq + //0x000002bf LBB0_30 + 0x31, 0xc9, //0x000002bf xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000002c1 cmpl $10, %esi + 0x0f, 0x83, 0x40, 0xff, 0xff, 0xff, //0x000002c4 jae LBB0_31 + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x000002ca jmp LBB0_32 + //0x000002cf LBB0_14 + 0x31, 0xc9, //0x000002cf xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000002d1 cmpl $100000, %esi + 0x0f, 0x83, 0x84, 0xff, 0xff, 0xff, //0x000002d7 jae LBB0_15 + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x000002dd jmp LBB0_16 + //0x000002e2 LBB0_33 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000002e2 cmpq $99999999, %rsi + 0x0f, 0x87, 0x3e, 0x02, 0x00, 0x00, //0x000002e9 ja LBB0_41 + 0x89, 0xf0, //0x000002ef movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000002f1 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x000002f6 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000002fa shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x000002fe imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000305 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000307 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000030a imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000311 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000315 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000319 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000031c shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000031f imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000325 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000328 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000032b subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000032d movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000331 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000334 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000337 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000033a imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000340 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000343 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000347 imull $100, %eax, %eax + 0x29, 0xc1, //0x0000034a subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x0000034c movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000350 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000353 cmpl $10000000, %esi + 0x0f, 0x82, 0x32, 0x01, 0x00, 0x00, //0x00000359 jb LBB0_36 + 0x48, 0x8d, 0x05, 0xca, 0x05, 0x00, 0x00, //0x0000035f leaq $1482(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000366 movb (%r10,%rax), %al + 0x88, 0x47, 0x01, //0x0000036a movb %al, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000036d movl $1, %ecx + 0xe9, 0x28, 0x01, 0x00, 0x00, //0x00000372 jmp LBB0_37 + //0x00000377 LBB0_17 + 0x48, 0xb9, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000377 movabsq $10000000000000000, %rcx + 0x48, 0x39, 0xce, //0x00000381 cmpq %rcx, %rsi + 0x0f, 0x83, 0xc0, 0x02, 0x00, 0x00, //0x00000384 jae LBB0_19 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000038a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000394 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000397 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x0000039a shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x0000039e imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000003a4 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x000003a6 vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x4e, 0xfc, 0xff, 0xff, //0x000003aa vmovdqu $-946(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x000003b2 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000003b6 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000003bb movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000003c0 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000003c5 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000003c9 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000003cd vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000003d1 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000003d6 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000003db vpshufd $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x47, 0xfc, 0xff, 0xff, //0x000003e0 vpbroadcastq $-953(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x46, 0xfc, 0xff, 0xff, //0x000003e9 vpbroadcastq $-954(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000003f2 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc4, //0x000003f6 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x0e, 0xfc, 0xff, 0xff, //0x000003fa vmovdqu $-1010(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00000402 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x00000406 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x0000040b vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x0000040f vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00000413 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00000417 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x0000041c vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00000420 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00000424 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00000428 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x0000042d vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00000432 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00000437 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x0000043b vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x0000043f vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00000443 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00000448 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x0000044c vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0xc8, 0xfb, 0xff, 0xff, //0x00000450 vpaddb $-1080(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x00000458 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x0000045c vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000460 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000464 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00000469 xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x0000046e bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000471 movl $16, %ecx + 0x29, 0xc1, //0x00000476 subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x00000478 shlq $4, %rax + 0x48, 0x8d, 0x15, 0x7d, 0x05, 0x00, 0x00, //0x0000047c leaq $1405(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x00000483 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00000489 vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x0000048d movl %ecx, %eax + 0x5d, //0x0000048f popq %rbp + 0xc3, //0x00000490 retq + //0x00000491 LBB0_36 + 0x31, 0xc9, //0x00000491 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000493 cmpl $1000000, %esi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000499 jb LBB0_38 + //0x0000049f LBB0_37 + 0x44, 0x89, 0xd0, //0x0000049f movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004a2 orq $1, %rax + 0x48, 0x8d, 0x35, 0x83, 0x04, 0x00, 0x00, //0x000004a6 leaq $1155(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000004ad movb (%rax,%rsi), %al + 0x89, 0xce, //0x000004b0 movl %ecx, %esi + 0xff, 0xc1, //0x000004b2 incl %ecx + 0x88, 0x44, 0x37, 0x01, //0x000004b4 movb %al, $1(%rdi,%rsi) + //0x000004b8 LBB0_39 + 0x48, 0x8d, 0x05, 0x71, 0x04, 0x00, 0x00, //0x000004b8 leaq $1137(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x000004bf movb (%r9,%rax), %al + 0x89, 0xce, //0x000004c3 movl %ecx, %esi + 0xff, 0xc1, //0x000004c5 incl %ecx + 0x88, 0x44, 0x37, 0x01, //0x000004c7 movb %al, $1(%rdi,%rsi) + //0x000004cb LBB0_40 + 0x41, 0x0f, 0xb7, 0xc1, //0x000004cb movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004cf orq $1, %rax + 0x48, 0x8d, 0x35, 0x56, 0x04, 0x00, 0x00, //0x000004d3 leaq $1110(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000004da movb (%rax,%rsi), %al + 0x89, 0xca, //0x000004dd movl %ecx, %edx + 0x88, 0x44, 0x17, 0x01, //0x000004df movb %al, $1(%rdi,%rdx) + 0x41, 0x8a, 0x04, 0x30, //0x000004e3 movb (%r8,%rsi), %al + 0x88, 0x44, 0x17, 0x02, //0x000004e7 movb %al, $2(%rdi,%rdx) + 0x41, 0x0f, 0xb7, 0xc0, //0x000004eb movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004ef orq $1, %rax + 0x8a, 0x04, 0x30, //0x000004f3 movb (%rax,%rsi), %al + 0x88, 0x44, 0x17, 0x03, //0x000004f6 movb %al, $3(%rdi,%rdx) + 0x41, 0x8a, 0x04, 0x33, //0x000004fa movb (%r11,%rsi), %al + 0x88, 0x44, 0x17, 0x04, //0x000004fe movb %al, $4(%rdi,%rdx) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000502 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000506 orq $1, %rax + 0x8a, 0x04, 0x30, //0x0000050a movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x0000050d addl $5, %ecx + 0x88, 0x44, 0x17, 0x05, //0x00000510 movb %al, $5(%rdi,%rdx) + 0xff, 0xc1, //0x00000514 incl %ecx + 0x89, 0xc8, //0x00000516 movl %ecx, %eax + 0x5d, //0x00000518 popq %rbp + 0xc3, //0x00000519 retq + //0x0000051a LBB0_38 + 0x31, 0xc9, //0x0000051a xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000051c cmpl $100000, %esi + 0x0f, 0x83, 0x90, 0xff, 0xff, 0xff, //0x00000522 jae LBB0_39 + 0xe9, 0x9e, 0xff, 0xff, 0xff, //0x00000528 jmp LBB0_40 + //0x0000052d LBB0_41 + 0x48, 0xb9, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000052d movabsq $10000000000000000, %rcx + 0x48, 0x39, 0xce, //0x00000537 cmpq %rcx, %rsi + 0x0f, 0x83, 0x75, 0x02, 0x00, 0x00, //0x0000053a jae LBB0_43 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000540 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000054a movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000054d mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000550 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000554 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000055a subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000055c vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x98, 0xfa, 0xff, 0xff, //0x00000560 vmovdqu $-1384(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00000568 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000056c vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000571 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000576 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000057b vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x0000057f vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000583 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000587 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000058c vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000591 vpshufd $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x91, 0xfa, 0xff, 0xff, //0x00000596 vpbroadcastq $-1391(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x90, 0xfa, 0xff, 0xff, //0x0000059f vpbroadcastq $-1392(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000005a8 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc4, //0x000005ac vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x58, 0xfa, 0xff, 0xff, //0x000005b0 vmovdqu $-1448(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000005b8 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000005bc vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000005c1 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000005c5 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000005c9 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000005cd vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000005d2 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000005d6 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000005da vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000005de vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000005e3 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000005e8 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000005ed vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000005f1 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000005f5 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000005f9 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000005fe vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00000602 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x12, 0xfa, 0xff, 0xff, //0x00000606 vpaddb $-1518(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x0000060e vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00000612 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000616 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000061a orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000061f xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00000624 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000627 movl $16, %ecx + 0x29, 0xc1, //0x0000062c subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000062e shlq $4, %rax + 0x48, 0x8d, 0x15, 0xc7, 0x03, 0x00, 0x00, //0x00000632 leaq $967(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x00000639 vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x47, 0x01, //0x0000063f vmovdqu %xmm0, $1(%rdi) + 0xff, 0xc1, //0x00000644 incl %ecx + 0x89, 0xc8, //0x00000646 movl %ecx, %eax + 0x5d, //0x00000648 popq %rbp + 0xc3, //0x00000649 retq + //0x0000064a LBB0_19 + 0x48, 0xba, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x0000064a movabsq $4153837486827862103, %rdx + 0x48, 0x89, 0xf0, //0x00000654 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00000657 mulq %rdx + 0x48, 0xc1, 0xea, 0x33, //0x0000065a shrq $51, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x0000065e imulq %rdx, %rcx + 0x48, 0x29, 0xce, //0x00000662 subq %rcx, %rsi + 0x83, 0xfa, 0x09, //0x00000665 cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000668 ja LBB0_21 + 0x80, 0xc2, 0x30, //0x0000066e addb $48, %dl + 0x88, 0x17, //0x00000671 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000673 movl $1, %ecx + 0xe9, 0x5c, 0x00, 0x00, 0x00, //0x00000678 jmp LBB0_24 + //0x0000067d LBB0_21 + 0x83, 0xfa, 0x63, //0x0000067d cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00000680 ja LBB0_23 + 0x89, 0xd0, //0x00000686 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xa1, 0x02, 0x00, 0x00, //0x00000688 leaq $673(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000068f movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00000692 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x00000696 movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x00000698 movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x0000069b movl $2, %ecx + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000006a0 jmp LBB0_24 + //0x000006a5 LBB0_23 + 0x89, 0xd0, //0x000006a5 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000006a7 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000006aa imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000006b0 shrl $17, %eax + 0x8d, 0x48, 0x30, //0x000006b3 leal $48(%rax), %ecx + 0x88, 0x0f, //0x000006b6 movb %cl, (%rdi) + 0x6b, 0xc0, 0x64, //0x000006b8 imull $100, %eax, %eax + 0x29, 0xc2, //0x000006bb subl %eax, %edx + 0x0f, 0xb7, 0xc2, //0x000006bd movzwl %dx, %eax + 0x48, 0x8d, 0x0d, 0x69, 0x02, 0x00, 0x00, //0x000006c0 leaq $617(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000006c7 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000006ca movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000006ce movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000006d1 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000006d4 movl $3, %ecx + //0x000006d9 LBB0_24 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000006d9 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000006e3 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000006e6 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000006e9 shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x000006ed vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x07, 0xf9, 0xff, 0xff, //0x000006f1 vmovdqu $-1785(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x000006f9 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000006fd vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000702 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000707 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000070c vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00000710 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000714 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000718 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000071d vpshuflw $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x05, 0xf9, 0xff, 0xff, //0x00000722 vpbroadcastq $-1787(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x0000072b vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc2, //0x00000730 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xfb, 0xf8, 0xff, 0xff, //0x00000734 vpbroadcastq $-1797(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000073d vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0xc7, 0xf8, 0xff, 0xff, //0x00000741 vmovdqu $-1849(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00000749 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x0000074d vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x00000752 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000756 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000075c subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x0000075e vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x00000762 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00000766 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x0000076b vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x0000076f vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00000773 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00000777 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x0000077c vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00000781 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00000786 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x0000078a vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x0000078e vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00000792 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00000797 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x0000079b vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x79, 0xf8, 0xff, 0xff, //0x0000079f vpaddb $-1927(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x000007a7 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000007a9 vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x000007ae orl $16, %ecx + 0x89, 0xc8, //0x000007b1 movl %ecx, %eax + 0x5d, //0x000007b3 popq %rbp + 0xc3, //0x000007b4 retq + //0x000007b5 LBB0_43 + 0x48, 0xba, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000007b5 movabsq $4153837486827862103, %rdx + 0x48, 0x89, 0xf0, //0x000007bf movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000007c2 mulq %rdx + 0x48, 0xc1, 0xea, 0x33, //0x000007c5 shrq $51, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x000007c9 imulq %rdx, %rcx + 0x48, 0x29, 0xce, //0x000007cd subq %rcx, %rsi + 0x83, 0xfa, 0x09, //0x000007d0 cmpl $9, %edx + 0x0f, 0x87, 0x10, 0x00, 0x00, 0x00, //0x000007d3 ja LBB0_45 + 0x80, 0xc2, 0x30, //0x000007d9 addb $48, %dl + 0x88, 0x57, 0x01, //0x000007dc movb %dl, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000007df movl $1, %ecx + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x000007e4 jmp LBB0_48 + //0x000007e9 LBB0_45 + 0x83, 0xfa, 0x63, //0x000007e9 cmpl $99, %edx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x000007ec ja LBB0_47 + 0x89, 0xd0, //0x000007f2 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x35, 0x01, 0x00, 0x00, //0x000007f4 leaq $309(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000007fb movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000007fe movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00000802 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x00000805 movb %al, $2(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000808 movl $2, %ecx + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x0000080d jmp LBB0_48 + //0x00000812 LBB0_47 + 0x89, 0xd0, //0x00000812 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x00000814 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000817 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000081d shrl $17, %eax + 0x8d, 0x48, 0x30, //0x00000820 leal $48(%rax), %ecx + 0x88, 0x4f, 0x01, //0x00000823 movb %cl, $1(%rdi) + 0x6b, 0xc0, 0x64, //0x00000826 imull $100, %eax, %eax + 0x29, 0xc2, //0x00000829 subl %eax, %edx + 0x0f, 0xb7, 0xc2, //0x0000082b movzwl %dx, %eax + 0x48, 0x8d, 0x0d, 0xfb, 0x00, 0x00, 0x00, //0x0000082e leaq $251(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00000835 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00000838 movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x02, //0x0000083c movb %dl, $2(%rdi) + 0x88, 0x47, 0x03, //0x0000083f movb %al, $3(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00000842 movl $3, %ecx + //0x00000847 LBB0_48 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000847 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00000851 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00000854 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00000857 shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000085b vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0x99, 0xf7, 0xff, 0xff, //0x0000085f vmovdqu $-2151(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00000867 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000086b vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000870 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000875 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000087a vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x0000087e vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000882 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000886 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000088b vpshuflw $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x97, 0xf7, 0xff, 0xff, //0x00000890 vpbroadcastq $-2153(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000899 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000089e vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x8d, 0xf7, 0xff, 0xff, //0x000008a2 vpbroadcastq $-2163(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000008ab vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x59, 0xf7, 0xff, 0xff, //0x000008af vmovdqu $-2215(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000008b7 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000008bb vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000008c0 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000008c4 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000008ca subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000008cc vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000008d0 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000008d4 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000008d9 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000008dd vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000008e1 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000008e5 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000008ea vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000008ef vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000008f4 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000008f8 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000008fc vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00000900 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00000905 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00000909 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x0b, 0xf7, 0xff, 0xff, //0x0000090d vpaddb $-2293(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x00000915 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x44, 0x07, 0x01, //0x00000917 vmovdqu %xmm0, $1(%rdi,%rax) + 0x83, 0xc9, 0x10, //0x0000091d orl $16, %ecx + 0xff, 0xc1, //0x00000920 incl %ecx + 0x89, 0xc8, //0x00000922 movl %ecx, %eax + 0x5d, //0x00000924 popq %rbp + 0xc3, //0x00000925 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000926 .p2align 4, 0x00 + //0x00000930 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000930 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000940 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000950 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000960 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000970 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000980 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000990 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000009a0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x000009b0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000009c0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000009d0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000009e0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x000009f0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f8 .p2align 4, 0x00 + //0x00000a00 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x00000a00 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x00000a10 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000a20 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000a30 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000a40 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a50 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a60 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a70 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a80 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace.go new file mode 100644 index 000000000..96819248e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + +var S_lspace uintptr + +//go:nosplit +func lspace(sp *byte, nb int, off int) (ret int) { + return F_lspace(rt.NoEscape(unsafe.Pointer(sp)), nb, off) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_subr.go new file mode 100644 index 000000000..8de4801a1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_subr.go @@ -0,0 +1,37 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__lspace = 32 +) + +const ( + _stack__lspace = 8 +) + +const ( + _size__lspace = 220 +) + +var ( + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {184, 8}, + {188, 0}, + {204, 8}, + {208, 0}, + {215, 8}, + {219, 0}, + } +) + +var _cfunc_lspace = []loader.CFunc{ + {"_lspace_entry", 0, _entry__lspace, 0, nil}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_text_amd64.go new file mode 100644 index 000000000..d521b5531 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/lspace_text_amd64.go @@ -0,0 +1,110 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_lspace = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, // .byte 32 + 0x00, //0x00000001 .byte 0 + 0x00, //0x00000002 .byte 0 + 0x00, //0x00000003 .byte 0 + 0x00, //0x00000004 .byte 0 + 0x00, //0x00000005 .byte 0 + 0x00, //0x00000006 .byte 0 + 0x00, //0x00000007 .byte 0 + 0x00, //0x00000008 .byte 0 + 0x09, //0x00000009 .byte 9 + 0x0a, //0x0000000a .byte 10 + 0x00, //0x0000000b .byte 0 + 0x00, //0x0000000c .byte 0 + 0x0d, //0x0000000d .byte 13 + 0x00, //0x0000000e .byte 0 + 0x00, //0x0000000f .byte 0 + 0x20, //0x00000010 .byte 32 + 0x00, //0x00000011 .byte 0 + 0x00, //0x00000012 .byte 0 + 0x00, //0x00000013 .byte 0 + 0x00, //0x00000014 .byte 0 + 0x00, //0x00000015 .byte 0 + 0x00, //0x00000016 .byte 0 + 0x00, //0x00000017 .byte 0 + 0x00, //0x00000018 .byte 0 + 0x09, //0x00000019 .byte 9 + 0x0a, //0x0000001a .byte 10 + 0x00, //0x0000001b .byte 0 + 0x00, //0x0000001c .byte 0 + 0x0d, //0x0000001d .byte 13 + 0x00, //0x0000001e .byte 0 + 0x00, //0x0000001f .byte 0 + //0x00000020 .p2align 4, 0x90 + //0x00000020 _lspace + 0x55, //0x00000020 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000021 movq %rsp, %rbp + 0x48, 0x8d, 0x04, 0x17, //0x00000024 leaq (%rdi,%rdx), %rax + 0x49, 0x89, 0xf1, //0x00000028 movq %rsi, %r9 + 0x49, 0x29, 0xd1, //0x0000002b subq %rdx, %r9 + 0x49, 0x83, 0xf9, 0x20, //0x0000002e cmpq $32, %r9 + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00000032 jb LBB0_4 + 0x48, 0x29, 0xd6, //0x00000038 subq %rdx, %rsi + 0x48, 0x83, 0xc6, 0xe0, //0x0000003b addq $-32, %rsi + 0x48, 0x89, 0xf1, //0x0000003f movq %rsi, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x00000042 andq $-32, %rcx + 0x48, 0x01, 0xd1, //0x00000046 addq %rdx, %rcx + 0x4c, 0x8d, 0x44, 0x0f, 0x20, //0x00000049 leaq $32(%rdi,%rcx), %r8 + 0x83, 0xe6, 0x1f, //0x0000004e andl $31, %esi + 0xc5, 0xfe, 0x6f, 0x05, 0xa7, 0xff, 0xff, 0xff, //0x00000051 vmovdqu $-89(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000059 .p2align 4, 0x90 + //0x00000060 LBB0_2 + 0xc5, 0xfe, 0x6f, 0x08, //0x00000060 vmovdqu (%rax), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000064 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x00000069 vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x0000006d vpmovmskb %ymm1, %edx + 0x83, 0xfa, 0xff, //0x00000071 cmpl $-1, %edx + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00000074 jne LBB0_3 + 0x48, 0x83, 0xc0, 0x20, //0x0000007a addq $32, %rax + 0x49, 0x83, 0xc1, 0xe0, //0x0000007e addq $-32, %r9 + 0x49, 0x83, 0xf9, 0x1f, //0x00000082 cmpq $31, %r9 + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00000086 ja LBB0_2 + 0x49, 0x89, 0xf1, //0x0000008c movq %rsi, %r9 + 0x4c, 0x89, 0xc0, //0x0000008f movq %r8, %rax + //0x00000092 LBB0_4 + 0x4d, 0x85, 0xc9, //0x00000092 testq %r9, %r9 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00000095 je LBB0_13 + 0x4e, 0x8d, 0x04, 0x08, //0x0000009b leaq (%rax,%r9), %r8 + 0x48, 0xff, 0xc0, //0x0000009f incq %rax + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000a2 movabsq $4294977024, %rsi + //0x000000ac LBB0_6 + 0x0f, 0xbe, 0x50, 0xff, //0x000000ac movsbl $-1(%rax), %edx + 0x83, 0xfa, 0x20, //0x000000b0 cmpl $32, %edx + 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x000000b3 ja LBB0_8 + 0x48, 0x0f, 0xa3, 0xd6, //0x000000b9 btq %rdx, %rsi + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x000000bd jae LBB0_8 + 0x49, 0xff, 0xc9, //0x000000c3 decq %r9 + 0x48, 0xff, 0xc0, //0x000000c6 incq %rax + 0x4d, 0x85, 0xc9, //0x000000c9 testq %r9, %r9 + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000000cc jne LBB0_6 + 0x4c, 0x89, 0xc0, //0x000000d2 movq %r8, %rax + //0x000000d5 LBB0_13 + 0x48, 0x29, 0xf8, //0x000000d5 subq %rdi, %rax + 0x5d, //0x000000d8 popq %rbp + 0xc5, 0xf8, 0x77, //0x000000d9 vzeroupper + 0xc3, //0x000000dc retq + //0x000000dd LBB0_3 + 0x48, 0x29, 0xf8, //0x000000dd subq %rdi, %rax + 0xf7, 0xd2, //0x000000e0 notl %edx + 0x48, 0x63, 0xca, //0x000000e2 movslq %edx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000000e5 bsfq %rcx, %rcx + 0x48, 0x01, 0xc8, //0x000000e9 addq %rcx, %rax + 0x5d, //0x000000ec popq %rbp + 0xc5, 0xf8, 0x77, //0x000000ed vzeroupper + 0xc3, //0x000000f0 retq + //0x000000f1 LBB0_8 + 0x48, 0xf7, 0xd7, //0x000000f1 notq %rdi + 0x48, 0x01, 0xf8, //0x000000f4 addq %rdi, %rax + 0x5d, //0x000000f7 popq %rbp + 0xc5, 0xf8, 0x77, //0x000000f8 vzeroupper + 0xc3, //0x000000fb retq +} + 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 deleted file mode 100644 index b05a28ef2..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go +++ /dev/null @@ -1,188 +0,0 @@ -// +build amd64 - - -// Code generated by Makefile, DO NOT EDIT. - -// 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 - -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) -) - -//go:nosplit -func i64toa(out *byte, val int64) (ret int) { - return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func u64toa(out *byte, val uint64) (ret int) { - return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f64toa(out *byte, val float64) (ret int) { - return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f32toa(out *byte, val float32) (ret int) { - return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { - return __lspace(rt.NoEscape(sp), nb, off) -} - -//go:nosplit -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -func skip_number(s *string, p *int) (ret int) { - return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) -} - -//go:nosplit -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 -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 -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 -func validate_utf8_fast(s *string) (ret int) { - return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) -} - diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_export.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_export.go new file mode 100644 index 000000000..e3d882b4a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_export.go @@ -0,0 +1,47 @@ +/* + * 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 + +import ( + `github.com/bytedance/sonic/loader` +) + + +func Use() { + loader.WrapGoC(_text_f64toa, _cfunc_f64toa, []loader.GoC{{"_f64toa", &S_f64toa, &F_f64toa}}, "avx2", "avx2/f64toa.c") + loader.WrapGoC(_text_f32toa, _cfunc_f32toa, []loader.GoC{{"_f32toa", &S_f32toa, &F_f32toa}}, "avx2", "avx2/f32toa.c") + loader.WrapGoC(_text_get_by_path, _cfunc_get_by_path, []loader.GoC{{"_get_by_path", &S_get_by_path, &F_get_by_path}}, "avx2", "avx2/get_by_path.c") + loader.WrapGoC(_text_html_escape, _cfunc_html_escape, []loader.GoC{{"_html_escape", &S_html_escape, &F_html_escape}}, "avx2", "avx2/html_escape.c") + loader.WrapGoC(_text_i64toa, _cfunc_i64toa, []loader.GoC{{"_i64toa", &S_i64toa, &F_i64toa}}, "avx2", "avx2/i64toa.c") + loader.WrapGoC(_text_lspace, _cfunc_lspace, []loader.GoC{{"_lspace", &S_lspace, &F_lspace}}, "avx2", "avx2/lspace.c") + loader.WrapGoC(_text_quote, _cfunc_quote, []loader.GoC{{"_quote", &S_quote, &F_quote}}, "avx2", "avx2/quote.c") + loader.WrapGoC(_text_skip_array, _cfunc_skip_array, []loader.GoC{{"_skip_array", &S_skip_array, &F_skip_array}}, "avx2", "avx2/skip_array.c") + loader.WrapGoC(_text_skip_number, _cfunc_skip_number, []loader.GoC{{"_skip_number", &S_skip_number, &F_skip_number}}, "avx2", "avx2/skip_number.c") + loader.WrapGoC(_text_skip_one, _cfunc_skip_one, []loader.GoC{{"_skip_one", &S_skip_one, &F_skip_one}}, "avx2", "avx2/skip_one.c") + loader.WrapGoC(_text_skip_object, _cfunc_skip_object, []loader.GoC{{"_skip_object", &S_skip_object, &F_skip_object}}, "avx2", "avx2/skip_object.c") + loader.WrapGoC(_text_skip_one_fast, _cfunc_skip_one_fast, []loader.GoC{{"_skip_one_fast", &S_skip_one_fast, &F_skip_one_fast}}, "avx2", "avx2/skip_one_fast.c") + loader.WrapGoC(_text_u64toa, _cfunc_u64toa, []loader.GoC{{"_u64toa", &S_u64toa, &F_u64toa}}, "avx2", "avx2/u64toa.c") + loader.WrapGoC(_text_unquote, _cfunc_unquote, []loader.GoC{{"_unquote", &S_unquote, &F_unquote}}, "avx2", "avx2/unquote.c") + loader.WrapGoC(_text_validate_one, _cfunc_validate_one, []loader.GoC{{"_validate_one", &S_validate_one, &F_validate_one}}, "avx2", "avx2/validate_one.c") + loader.WrapGoC(_text_validate_utf8, _cfunc_validate_utf8, []loader.GoC{{"_validate_utf8", &S_validate_utf8, &F_validate_utf8}}, "avx2", "avx2/validate_utf8.c") + loader.WrapGoC(_text_validate_utf8_fast, _cfunc_validate_utf8_fast, []loader.GoC{{"_validate_utf8_fast", &S_validate_utf8_fast, &F_validate_utf8_fast}}, "avx2", "avx2/validate_utf8_fast.c") + loader.WrapGoC(_text_vnumber, _cfunc_vnumber, []loader.GoC{{"_vnumber", &S_vnumber, &F_vnumber}}, "avx2", "avx2/vnumber.c") + loader.WrapGoC(_text_vsigned, _cfunc_vsigned, []loader.GoC{{"_vsigned", &S_vsigned, &F_vsigned}}, "avx2", "avx2/vsigned.c") + loader.WrapGoC(_text_vunsigned, _cfunc_vunsigned, []loader.GoC{{"_vunsigned", &S_vunsigned, &F_vunsigned}}, "avx2", "avx2/vunsigned.c") + loader.WrapGoC(_text_vstring, _cfunc_vstring, []loader.GoC{{"_vstring", &S_vstring, &F_vstring}}, "avx2", "avx2/vstring.c") + loader.WrapGoC(_text_value, _cfunc_value, []loader.GoC{{"_value", &S_value, &F_value}}, "avx2", "avx2/value.c") +} 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 deleted file mode 100644 index 90f7be732..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go +++ /dev/null @@ -1,614 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -package avx2 - -import ( - `github.com/bytedance/sonic/loader` -) - -const ( - _entry__f32toa = 34656 - _entry__f64toa = 320 - _entry__format_significand = 38880 - _entry__format_integer = 3168 - _entry__get_by_path = 28896 - _entry__fsm_exec = 21072 - _entry__advance_ns = 16928 - _entry__advance_string = 17664 - _entry__advance_string_default = 40320 - _entry__do_skip_number = 23696 - _entry__skip_one_fast = 25968 - _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 = 25552 - _entry__unquote = 7888 - _entry__validate_one = 25600 - _entry__validate_utf8 = 31072 - _entry__validate_utf8_fast = 32016 - _entry__value = 15376 - _entry__vnumber = 18800 - _entry__atof_eisel_lemire64 = 12624 - _entry__atof_native = 14768 - _entry__decimal_to_f64 = 13056 - _entry__right_shift = 39840 - _entry__left_shift = 39344 - _entry__vsigned = 20352 - _entry__vstring = 17424 - _entry__vunsigned = 20672 -) - -const ( - _stack__f32toa = 48 - _stack__f64toa = 80 - _stack__format_significand = 24 - _stack__format_integer = 16 - _stack__get_by_path = 272 - _stack__fsm_exec = 144 - _stack__advance_ns = 8 - _stack__advance_string = 56 - _stack__advance_string_default = 48 - _stack__do_skip_number = 48 - _stack__skip_one_fast = 184 - _stack__html_escape = 72 - _stack__i64toa = 16 - _stack__u64toa = 8 - _stack__lspace = 8 - _stack__quote = 56 - _stack__skip_array = 152 - _stack__skip_number = 104 - _stack__skip_object = 152 - _stack__skip_one = 152 - _stack__unquote = 72 - _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 = 8 -) - -const ( - _size__f32toa = 3392 - _size__f64toa = 2848 - _size__format_significand = 464 - _size__format_integer = 432 - _size__get_by_path = 2176 - _size__fsm_exec = 1468 - _size__advance_ns = 496 - _size__advance_string = 1088 - _size__advance_string_default = 768 - _size__do_skip_number = 1360 - _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 = 160 - _size__skip_object = 48 - _size__skip_one = 48 - _size__unquote = 2480 - _size__validate_one = 64 - _size__validate_utf8 = 672 - _size__validate_utf8_fast = 2608 - _size__value = 1000 - _size__vnumber = 1552 - _size__atof_eisel_lemire64 = 368 - _size__atof_native = 608 - _size__decimal_to_f64 = 1712 - _size__right_shift = 416 - _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__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__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__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}, - {12, 40}, - {13, 48}, - {107, 56}, - {111, 48}, - {112, 40}, - {114, 32}, - {116, 24}, - {118, 16}, - {120, 8}, - {121, 0}, - {145, 56}, - } - _pcsp__skip_object = [][2]uint32{ - {1, 0}, - {28, 8}, - {34, 0}, - } - _pcsp__skip_one = [][2]uint32{ - {1, 0}, - {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}, - {982, 88}, - {986, 48}, - {987, 40}, - {989, 32}, - {991, 24}, - {993, 16}, - {995, 8}, - {1000, 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}, - {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, - {"_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}, - {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, - {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, - {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, - {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, - {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, - {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, - {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, - {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, - {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, - {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, - {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, - {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, - {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, - {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, - {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, - {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, - {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, - {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, - {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, - {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, - {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, - {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, - {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, - {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go deleted file mode 100644 index f00494936..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go +++ /dev/null @@ -1,14825 +0,0 @@ -// +build amd64 -// Code generated by asm2asm, DO NOT EDIT. - -package avx2 - -var Text__native_entry__ = []byte{ - 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) - 0xc3, //0x0000000c retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000000d .p2align 5, 0x00 - //0x00000020 LCPI0_0 - 0x20, //0x00000020 .byte 32 - 0x00, //0x00000021 .byte 0 - 0x00, //0x00000022 .byte 0 - 0x00, //0x00000023 .byte 0 - 0x00, //0x00000024 .byte 0 - 0x00, //0x00000025 .byte 0 - 0x00, //0x00000026 .byte 0 - 0x00, //0x00000027 .byte 0 - 0x00, //0x00000028 .byte 0 - 0x09, //0x00000029 .byte 9 - 0x0a, //0x0000002a .byte 10 - 0x00, //0x0000002b .byte 0 - 0x00, //0x0000002c .byte 0 - 0x0d, //0x0000002d .byte 13 - 0x00, //0x0000002e .byte 0 - 0x00, //0x0000002f .byte 0 - 0x20, //0x00000030 .byte 32 - 0x00, //0x00000031 .byte 0 - 0x00, //0x00000032 .byte 0 - 0x00, //0x00000033 .byte 0 - 0x00, //0x00000034 .byte 0 - 0x00, //0x00000035 .byte 0 - 0x00, //0x00000036 .byte 0 - 0x00, //0x00000037 .byte 0 - 0x00, //0x00000038 .byte 0 - 0x09, //0x00000039 .byte 9 - 0x0a, //0x0000003a .byte 10 - 0x00, //0x0000003b .byte 0 - 0x00, //0x0000003c .byte 0 - 0x0d, //0x0000003d .byte 13 - 0x00, //0x0000003e .byte 0 - 0x00, //0x0000003f .byte 0 - //0x00000040 .p2align 4, 0x90 - //0x00000040 _lspace - 0x55, //0x00000040 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp - 0x48, 0x8d, 0x04, 0x17, //0x00000044 leaq (%rdi,%rdx), %rax - 0x49, 0x89, 0xf1, //0x00000048 movq %rsi, %r9 - 0x49, 0x29, 0xd1, //0x0000004b subq %rdx, %r9 - 0x49, 0x83, 0xf9, 0x20, //0x0000004e cmpq $32, %r9 - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00000052 jb LBB0_4 - 0x48, 0x29, 0xd6, //0x00000058 subq %rdx, %rsi - 0x48, 0x83, 0xc6, 0xe0, //0x0000005b addq $-32, %rsi - 0x48, 0x89, 0xf1, //0x0000005f movq %rsi, %rcx - 0x48, 0x83, 0xe1, 0xe0, //0x00000062 andq $-32, %rcx - 0x48, 0x01, 0xd1, //0x00000066 addq %rdx, %rcx - 0x4c, 0x8d, 0x44, 0x0f, 0x20, //0x00000069 leaq $32(%rdi,%rcx), %r8 - 0x83, 0xe6, 0x1f, //0x0000006e andl $31, %esi - 0xc5, 0xfd, 0x6f, 0x05, 0xa7, 0xff, 0xff, 0xff, //0x00000071 vmovdqa $-89(%rip), %ymm0 /* LCPI0_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000079 .p2align 4, 0x90 - //0x00000080 LBB0_2 - 0xc5, 0xfe, 0x6f, 0x08, //0x00000080 vmovdqu (%rax), %ymm1 - 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000084 vpshufb %ymm1, %ymm0, %ymm2 - 0xc5, 0xf5, 0x74, 0xca, //0x00000089 vpcmpeqb %ymm2, %ymm1, %ymm1 - 0xc5, 0xfd, 0xd7, 0xd1, //0x0000008d vpmovmskb %ymm1, %edx - 0x83, 0xfa, 0xff, //0x00000091 cmpl $-1, %edx - 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00000094 jne LBB0_3 - 0x48, 0x83, 0xc0, 0x20, //0x0000009a addq $32, %rax - 0x49, 0x83, 0xc1, 0xe0, //0x0000009e addq $-32, %r9 - 0x49, 0x83, 0xf9, 0x1f, //0x000000a2 cmpq $31, %r9 - 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x000000a6 ja LBB0_2 - 0x49, 0x89, 0xf1, //0x000000ac movq %rsi, %r9 - 0x4c, 0x89, 0xc0, //0x000000af movq %r8, %rax - //0x000000b2 LBB0_4 - 0x4d, 0x85, 0xc9, //0x000000b2 testq %r9, %r9 - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000000b5 je LBB0_13 - 0x4e, 0x8d, 0x04, 0x08, //0x000000bb leaq (%rax,%r9), %r8 - 0x48, 0xff, 0xc0, //0x000000bf incq %rax - 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000c2 movabsq $4294977024, %rsi - //0x000000cc LBB0_6 - 0x0f, 0xbe, 0x50, 0xff, //0x000000cc movsbl $-1(%rax), %edx - 0x83, 0xfa, 0x20, //0x000000d0 cmpl $32, %edx - 0x0f, 0x87, 0x38, 0x00, 0x00, 0x00, //0x000000d3 ja LBB0_8 - 0x48, 0x0f, 0xa3, 0xd6, //0x000000d9 btq %rdx, %rsi - 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x000000dd jae LBB0_8 - 0x49, 0xff, 0xc9, //0x000000e3 decq %r9 - 0x48, 0xff, 0xc0, //0x000000e6 incq %rax - 0x4d, 0x85, 0xc9, //0x000000e9 testq %r9, %r9 - 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000000ec jne LBB0_6 - 0x4c, 0x89, 0xc0, //0x000000f2 movq %r8, %rax - //0x000000f5 LBB0_13 - 0x48, 0x29, 0xf8, //0x000000f5 subq %rdi, %rax - 0x5d, //0x000000f8 popq %rbp - 0xc5, 0xf8, 0x77, //0x000000f9 vzeroupper - 0xc3, //0x000000fc retq - //0x000000fd LBB0_3 - 0x48, 0x29, 0xf8, //0x000000fd subq %rdi, %rax - 0xf7, 0xd2, //0x00000100 notl %edx - 0x48, 0x63, 0xca, //0x00000102 movslq %edx, %rcx - 0x48, 0x0f, 0xbc, 0xc9, //0x00000105 bsfq %rcx, %rcx - 0x48, 0x01, 0xc8, //0x00000109 addq %rcx, %rax - 0x5d, //0x0000010c popq %rbp - 0xc5, 0xf8, 0x77, //0x0000010d vzeroupper - 0xc3, //0x00000110 retq - //0x00000111 LBB0_8 - 0x48, 0xf7, 0xd7, //0x00000111 notq %rdi - 0x48, 0x01, 0xf8, //0x00000114 addq %rdi, %rax - 0x5d, //0x00000117 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000118 vzeroupper - 0xc3, //0x0000011b retq - 0x00, 0x00, 0x00, 0x00, //0x0000011c .p2align 5, 0x00 - //0x00000120 LCPI1_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000120 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000130 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000140 .p2align 4, 0x90 - //0x00000140 _f64toa - 0x55, //0x00000140 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000141 movq %rsp, %rbp - 0x41, 0x57, //0x00000144 pushq %r15 - 0x41, 0x56, //0x00000146 pushq %r14 - 0x41, 0x55, //0x00000148 pushq %r13 - 0x41, 0x54, //0x0000014a pushq %r12 - 0x53, //0x0000014c pushq %rbx - 0x50, //0x0000014d pushq %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000014e vmovq %xmm0, %rdx - 0x48, 0x89, 0xd0, //0x00000153 movq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x00000156 shrq $52, %rax - 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000015a andl $2047, %eax - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000015f cmpl $2047, %eax - 0x0f, 0x84, 0xcc, 0x0a, 0x00, 0x00, //0x00000164 je LBB1_114 - 0x49, 0x89, 0xfe, //0x0000016a movq %rdi, %r14 - 0xc6, 0x07, 0x2d, //0x0000016d movb $45, (%rdi) - 0x49, 0x89, 0xd4, //0x00000170 movq %rdx, %r12 - 0x49, 0xc1, 0xec, 0x3f, //0x00000173 shrq $63, %r12 - 0x4e, 0x8d, 0x3c, 0x27, //0x00000177 leaq (%rdi,%r12), %r15 - 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x0000017b leaq (,%rdx,2), %rcx - 0x48, 0x85, 0xc9, //0x00000183 testq %rcx, %rcx - 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x00000186 je LBB1_19 - 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000018c movabsq $4503599627370495, %rdi - 0x48, 0x21, 0xfa, //0x00000196 andq %rdi, %rdx - 0x85, 0xc0, //0x00000199 testl %eax, %eax - 0x0f, 0x84, 0x9c, 0x0a, 0x00, 0x00, //0x0000019b je LBB1_115 - 0x48, 0xff, 0xc7, //0x000001a1 incq %rdi - 0x48, 0x09, 0xd7, //0x000001a4 orq %rdx, %rdi - 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x000001a7 leal $-1075(%rax), %ebx - 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000001ad leal $-1023(%rax), %ecx - 0x83, 0xf9, 0x34, //0x000001b3 cmpl $52, %ecx - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000001b6 ja LBB1_5 - 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000001bc movl $1075, %ecx - 0x29, 0xc1, //0x000001c1 subl %eax, %ecx - 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000001c3 movq $-1, %rsi - 0x48, 0xd3, 0xe6, //0x000001ca shlq %cl, %rsi - 0x48, 0xf7, 0xd6, //0x000001cd notq %rsi - 0x48, 0x85, 0xf7, //0x000001d0 testq %rsi, %rdi - 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x000001d3 je LBB1_43 - //0x000001d9 LBB1_5 - 0x48, 0x85, 0xd2, //0x000001d9 testq %rdx, %rdx - 0x0f, 0x94, 0xc1, //0x000001dc sete %cl - 0x83, 0xf8, 0x01, //0x000001df cmpl $1, %eax - 0x0f, 0x97, 0xc0, //0x000001e2 seta %al - 0x20, 0xc8, //0x000001e5 andb %cl, %al - 0x0f, 0xb6, 0xc0, //0x000001e7 movzbl %al, %eax - 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x000001ea leaq $-2(%rax,%rdi,4), %rsi - 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x000001ef imull $1262611, %ebx, %r9d - 0x31, 0xc9, //0x000001f6 xorl %ecx, %ecx - 0x84, 0xc0, //0x000001f8 testb %al, %al - 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x000001fa movl $524031, %eax - 0x0f, 0x44, 0xc1, //0x000001ff cmovel %ecx, %eax - 0x41, 0x29, 0xc1, //0x00000202 subl %eax, %r9d - 0x41, 0xc1, 0xf9, 0x16, //0x00000205 sarl $22, %r9d - 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000209 imull $-1741647, %r9d, %ecx - 0xc1, 0xe9, 0x13, //0x00000210 shrl $19, %ecx - 0x01, 0xd9, //0x00000213 addl %ebx, %ecx - 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000215 movl $292, %eax - 0x44, 0x29, 0xc8, //0x0000021a subl %r9d, %eax - 0x48, 0x98, //0x0000021d cltq - 0x48, 0xc1, 0xe0, 0x04, //0x0000021f shlq $4, %rax - 0x48, 0x8d, 0x15, 0xe6, 0xca, 0x00, 0x00, //0x00000223 leaq $51942(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ - 0x4c, 0x8b, 0x1c, 0x10, //0x0000022a movq (%rax,%rdx), %r11 - 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x0000022e movq $8(%rax,%rdx), %r13 - 0xfe, 0xc1, //0x00000233 incb %cl - 0x48, 0xd3, 0xe6, //0x00000235 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x00000238 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x0000023b mulq %r13 - 0x48, 0x89, 0xd3, //0x0000023e movq %rdx, %rbx - 0x48, 0x89, 0xf0, //0x00000241 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00000244 mulq %r11 - 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x00000247 leaq (,%rdi,4), %rsi - 0x48, 0x01, 0xd8, //0x0000024f addq %rbx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x00000252 adcq $0, %rdx - 0x31, 0xdb, //0x00000256 xorl %ebx, %ebx - 0x48, 0x83, 0xf8, 0x01, //0x00000258 cmpq $1, %rax - 0x0f, 0x97, 0xc3, //0x0000025c seta %bl - 0x48, 0x09, 0xd3, //0x0000025f orq %rdx, %rbx - 0x48, 0xd3, 0xe6, //0x00000262 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x00000265 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x00000268 mulq %r13 - 0x49, 0x89, 0xd2, //0x0000026b movq %rdx, %r10 - 0x48, 0x89, 0xf0, //0x0000026e movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00000271 mulq %r11 - 0x49, 0x89, 0xd0, //0x00000274 movq %rdx, %r8 - 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00000277 leaq $2(,%rdi,4), %rsi - 0x4c, 0x01, 0xd0, //0x0000027f addq %r10, %rax - 0x49, 0x83, 0xd0, 0x00, //0x00000282 adcq $0, %r8 - 0x45, 0x31, 0xd2, //0x00000286 xorl %r10d, %r10d - 0x48, 0x83, 0xf8, 0x01, //0x00000289 cmpq $1, %rax - 0x41, 0x0f, 0x97, 0xc2, //0x0000028d seta %r10b - 0x4d, 0x09, 0xc2, //0x00000291 orq %r8, %r10 - 0x48, 0xd3, 0xe6, //0x00000294 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x00000297 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x0000029a mulq %r13 - 0x48, 0x89, 0xd1, //0x0000029d movq %rdx, %rcx - 0x48, 0x89, 0xf0, //0x000002a0 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x000002a3 mulq %r11 - 0x48, 0x01, 0xc8, //0x000002a6 addq %rcx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x000002a9 adcq $0, %rdx - 0x31, 0xc9, //0x000002ad xorl %ecx, %ecx - 0x48, 0x83, 0xf8, 0x01, //0x000002af cmpq $1, %rax - 0x0f, 0x97, 0xc1, //0x000002b3 seta %cl - 0x48, 0x09, 0xd1, //0x000002b6 orq %rdx, %rcx - 0x83, 0xe7, 0x01, //0x000002b9 andl $1, %edi - 0x48, 0x01, 0xfb, //0x000002bc addq %rdi, %rbx - 0x48, 0x29, 0xf9, //0x000002bf subq %rdi, %rcx - 0x49, 0x83, 0xfa, 0x28, //0x000002c2 cmpq $40, %r10 - 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x000002c6 jb LBB1_17 - 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000002cc movabsq $-3689348814741910323, %rdx - 0x4c, 0x89, 0xc0, //0x000002d6 movq %r8, %rax - 0x48, 0xf7, 0xe2, //0x000002d9 mulq %rdx - 0x48, 0x89, 0xd7, //0x000002dc movq %rdx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x000002df shrq $5, %rdi - 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x000002e3 leaq (,%rdi,8), %rax - 0x48, 0x8d, 0x14, 0x80, //0x000002eb leaq (%rax,%rax,4), %rdx - 0x48, 0x39, 0xd3, //0x000002ef cmpq %rdx, %rbx - 0x40, 0x0f, 0x96, 0xc6, //0x000002f2 setbe %sil - 0x48, 0x8d, 0x44, 0x80, 0x28, //0x000002f6 leaq $40(%rax,%rax,4), %rax - 0x48, 0x39, 0xc8, //0x000002fb cmpq %rcx, %rax - 0x0f, 0x96, 0xc2, //0x000002fe setbe %dl - 0x40, 0x38, 0xd6, //0x00000301 cmpb %dl, %sil - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000304 je LBB1_17 - 0x31, 0xd2, //0x0000030a xorl %edx, %edx - 0x48, 0x39, 0xc8, //0x0000030c cmpq %rcx, %rax - 0x0f, 0x96, 0xc2, //0x0000030f setbe %dl - 0x48, 0x01, 0xd7, //0x00000312 addq %rdx, %rdi - 0x41, 0xff, 0xc1, //0x00000315 incl %r9d - 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000318 movabsq $8589934464, %rbx - 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x00000322 leaq $1410065535(%rbx), %rax - 0x48, 0x39, 0xc7, //0x00000329 cmpq %rax, %rdi - 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000032c ja LBB1_23 - //0x00000332 LBB1_8 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000332 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x00000337 cmpq $10, %rdi - 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x0000033b jb LBB1_30 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000341 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x00000346 cmpq $100, %rdi - 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x0000034a jb LBB1_30 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000350 movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000355 cmpq $1000, %rdi - 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x0000035c jb LBB1_30 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000362 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000367 cmpq $10000, %rdi - 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x0000036e jb LBB1_30 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000374 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000379 cmpq $100000, %rdi - 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x00000380 jb LBB1_30 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000386 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000038b cmpq $1000000, %rdi - 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x00000392 jb LBB1_30 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000398 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000039d cmpq $10000000, %rdi - 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x000003a4 jb LBB1_30 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x000003aa movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000003af cmpq $100000000, %rdi - 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x000003b6 jb LBB1_30 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x000003bc cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x000003c3 movl $10, %edx - 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x000003c8 jmp LBB1_29 - //0x000003cd LBB1_17 - 0x4d, 0x89, 0xc3, //0x000003cd movq %r8, %r11 - 0x49, 0xc1, 0xeb, 0x02, //0x000003d0 shrq $2, %r11 - 0x4c, 0x89, 0xc2, //0x000003d4 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfc, //0x000003d7 andq $-4, %rdx - 0x48, 0x39, 0xd3, //0x000003db cmpq %rdx, %rbx - 0x0f, 0x96, 0xc3, //0x000003de setbe %bl - 0x48, 0x8d, 0x72, 0x04, //0x000003e1 leaq $4(%rdx), %rsi - 0x48, 0x39, 0xce, //0x000003e5 cmpq %rcx, %rsi - 0x0f, 0x96, 0xc0, //0x000003e8 setbe %al - 0x38, 0xc3, //0x000003eb cmpb %al, %bl - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000003ed je LBB1_20 - 0x31, 0xff, //0x000003f3 xorl %edi, %edi - 0x48, 0x39, 0xce, //0x000003f5 cmpq %rcx, %rsi - 0x40, 0x0f, 0x96, 0xc7, //0x000003f8 setbe %dil - 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000003fc jmp LBB1_22 - //0x00000401 LBB1_19 - 0x41, 0xc6, 0x07, 0x30, //0x00000401 movb $48, (%r15) - 0x45, 0x29, 0xf7, //0x00000405 subl %r14d, %r15d - 0x41, 0xff, 0xc7, //0x00000408 incl %r15d - 0x44, 0x89, 0xfb, //0x0000040b movl %r15d, %ebx - 0xe9, 0x0f, 0x08, 0x00, 0x00, //0x0000040e jmp LBB1_113 - //0x00000413 LBB1_20 - 0x48, 0x83, 0xca, 0x02, //0x00000413 orq $2, %rdx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000417 movl $1, %edi - 0x49, 0x39, 0xd2, //0x0000041c cmpq %rdx, %r10 - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000041f ja LBB1_22 - 0x0f, 0x94, 0xc0, //0x00000425 sete %al - 0x41, 0xc0, 0xe8, 0x02, //0x00000428 shrb $2, %r8b - 0x41, 0x20, 0xc0, //0x0000042c andb %al, %r8b - 0x41, 0x0f, 0xb6, 0xf8, //0x0000042f movzbl %r8b, %edi - //0x00000433 LBB1_22 - 0x4c, 0x01, 0xdf, //0x00000433 addq %r11, %rdi - 0x48, 0xbb, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000436 movabsq $8589934464, %rbx - 0x48, 0x8d, 0x83, 0x7f, 0xe4, 0x0b, 0x54, //0x00000440 leaq $1410065535(%rbx), %rax - 0x48, 0x39, 0xc7, //0x00000447 cmpq %rax, %rdi - 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x0000044a jbe LBB1_8 - //0x00000450 LBB1_23 - 0x48, 0x89, 0xf8, //0x00000450 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000453 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x00000457 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x0000045c cmpq $48828125, %rax - 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x00000462 jb LBB1_30 - 0x48, 0x89, 0xf8, //0x00000468 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x0000046b shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x0000046f movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000474 cmpq $244140625, %rax - 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x0000047a jb LBB1_30 - 0x48, 0x89, 0xf8, //0x00000480 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000483 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000487 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000048c cmpq $1220703125, %rax - 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000492 jb LBB1_30 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000498 movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000049d movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x000004a7 cmpq %rax, %rdi - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x000004aa jb LBB1_30 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000004b0 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000004b5 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000004bf cmpq %rax, %rdi - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000004c2 jb LBB1_30 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000004c8 movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000004d2 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x000004d5 movl $17, %edx - //0x000004da LBB1_29 - 0x83, 0xda, 0x00, //0x000004da sbbl $0, %edx - //0x000004dd LBB1_30 - 0x46, 0x8d, 0x2c, 0x0a, //0x000004dd leal (%rdx,%r9), %r13d - 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x000004e1 leal $5(%rdx,%r9), %eax - 0x83, 0xf8, 0x1b, //0x000004e6 cmpl $27, %eax - 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x000004e9 jb LBB1_38 - 0x4d, 0x8d, 0x67, 0x01, //0x000004ef leaq $1(%r15), %r12 - 0x4c, 0x89, 0xe6, //0x000004f3 movq %r12, %rsi - 0xe8, 0xe5, 0x92, 0x00, 0x00, //0x000004f6 callq _format_significand - 0x48, 0x89, 0xc3, //0x000004fb movq %rax, %rbx - 0x90, 0x90, //0x000004fe .p2align 4, 0x90 - //0x00000500 LBB1_32 - 0x80, 0x7b, 0xff, 0x30, //0x00000500 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00000504 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000508 je LBB1_32 - 0x41, 0x8a, 0x47, 0x01, //0x0000050e movb $1(%r15), %al - 0x41, 0x88, 0x07, //0x00000512 movb %al, (%r15) - 0x48, 0x8d, 0x43, 0x01, //0x00000515 leaq $1(%rbx), %rax - 0x48, 0x89, 0xc1, //0x00000519 movq %rax, %rcx - 0x4c, 0x29, 0xe1, //0x0000051c subq %r12, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000051f cmpq $2, %rcx - 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00000523 jl LBB1_35 - 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000529 movb $46, (%r12) - 0x48, 0x89, 0xc3, //0x0000052e movq %rax, %rbx - //0x00000531 LBB1_35 - 0xc6, 0x03, 0x65, //0x00000531 movb $101, (%rbx) - 0x45, 0x85, 0xed, //0x00000534 testl %r13d, %r13d - 0x0f, 0x8e, 0x5a, 0x01, 0x00, 0x00, //0x00000537 jle LBB1_51 - 0x41, 0xff, 0xcd, //0x0000053d decl %r13d - 0xc6, 0x43, 0x01, 0x2b, //0x00000540 movb $43, $1(%rbx) - 0x44, 0x89, 0xe8, //0x00000544 movl %r13d, %eax - 0x83, 0xf8, 0x64, //0x00000547 cmpl $100, %eax - 0x0f, 0x8c, 0x5c, 0x01, 0x00, 0x00, //0x0000054a jl LBB1_52 - //0x00000550 LBB1_37 - 0x89, 0xc1, //0x00000550 movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00000552 movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00000557 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x0000055b shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x0000055f leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x00000562 leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x00000565 subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0xd2, 0xc6, 0x00, 0x00, //0x00000567 leaq $50898(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x0000056e movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x00000572 movw %cx, $2(%rbx) - 0x0c, 0x30, //0x00000576 orb $48, %al - 0x88, 0x43, 0x04, //0x00000578 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x0000057b addq $5, %rbx - 0xe9, 0x9b, 0x06, 0x00, 0x00, //0x0000057f jmp LBB1_112 - //0x00000584 LBB1_38 - 0x45, 0x85, 0xc9, //0x00000584 testl %r9d, %r9d - 0x0f, 0x88, 0x42, 0x01, 0x00, 0x00, //0x00000587 js LBB1_54 - 0x4d, 0x63, 0xed, //0x0000058d movslq %r13d, %r13 - 0x4b, 0x8d, 0x1c, 0x2f, //0x00000590 leaq (%r15,%r13), %rbx - 0x4c, 0x89, 0xfe, //0x00000594 movq %r15, %rsi - 0xe8, 0xc4, 0x06, 0x00, 0x00, //0x00000597 callq _format_integer - 0x48, 0x39, 0xd8, //0x0000059c cmpq %rbx, %rax - 0x0f, 0x83, 0x7a, 0x06, 0x00, 0x00, //0x0000059f jae LBB1_112 - 0x4d, 0x01, 0xec, //0x000005a5 addq %r13, %r12 - 0x49, 0x29, 0xc4, //0x000005a8 subq %rax, %r12 - 0x4d, 0x01, 0xf4, //0x000005ab addq %r14, %r12 - 0x49, 0x81, 0xfc, 0x80, 0x00, 0x00, 0x00, //0x000005ae cmpq $128, %r12 - 0x0f, 0x82, 0x15, 0x03, 0x00, 0x00, //0x000005b5 jb LBB1_76 - 0x4c, 0x89, 0xe1, //0x000005bb movq %r12, %rcx - 0x48, 0x83, 0xe1, 0x80, //0x000005be andq $-128, %rcx - 0x48, 0x8d, 0x79, 0x80, //0x000005c2 leaq $-128(%rcx), %rdi - 0x48, 0x89, 0xfe, //0x000005c6 movq %rdi, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x000005c9 shrq $7, %rsi - 0x48, 0xff, 0xc6, //0x000005cd incq %rsi - 0x89, 0xf2, //0x000005d0 movl %esi, %edx - 0x83, 0xe2, 0x03, //0x000005d2 andl $3, %edx - 0x48, 0x81, 0xff, 0x80, 0x01, 0x00, 0x00, //0x000005d5 cmpq $384, %rdi - 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x000005dc jae LBB1_69 - 0x31, 0xff, //0x000005e2 xorl %edi, %edi - 0xe9, 0x9b, 0x02, 0x00, 0x00, //0x000005e4 jmp LBB1_71 - //0x000005e9 LBB1_43 - 0x48, 0xd3, 0xef, //0x000005e9 shrq %cl, %rdi - 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000005ec movabsq $8589934464, %rax - 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x000005f6 addq $1410065535, %rax - 0x48, 0x39, 0xc7, //0x000005fc cmpq %rax, %rdi - 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x000005ff jbe LBB1_60 - 0x48, 0x89, 0xf8, //0x00000605 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000608 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000060c movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000611 cmpq $48828125, %rax - 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000617 jb LBB1_68 - 0x48, 0x89, 0xf8, //0x0000061d movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x00000620 shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000624 movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000629 cmpq $244140625, %rax - 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x0000062f jb LBB1_68 - 0x48, 0x89, 0xf8, //0x00000635 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000638 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000063c movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000641 cmpq $1220703125, %rax - 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x00000647 jb LBB1_68 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000064d movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000652 movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000065c cmpq %rax, %rdi - 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x0000065f jb LBB1_68 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000665 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x0000066a movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000674 cmpq %rax, %rdi - 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x00000677 jb LBB1_68 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000067d movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000687 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x0000068a movl $17, %edx - //0x0000068f LBB1_50 - 0x83, 0xda, 0x00, //0x0000068f sbbl $0, %edx - 0xe9, 0x33, 0x01, 0x00, 0x00, //0x00000692 jmp LBB1_68 - //0x00000697 LBB1_51 - 0xc6, 0x43, 0x01, 0x2d, //0x00000697 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000069b movl $1, %eax - 0x44, 0x29, 0xe8, //0x000006a0 subl %r13d, %eax - 0x83, 0xf8, 0x64, //0x000006a3 cmpl $100, %eax - 0x0f, 0x8d, 0xa4, 0xfe, 0xff, 0xff, //0x000006a6 jge LBB1_37 - //0x000006ac LBB1_52 - 0x83, 0xf8, 0x0a, //0x000006ac cmpl $10, %eax - 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x000006af jl LBB1_59 - 0x48, 0x98, //0x000006b5 cltq - 0x48, 0x8d, 0x0d, 0x82, 0xc5, 0x00, 0x00, //0x000006b7 leaq $50562(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000006be movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x000006c2 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x000006c6 addq $4, %rbx - 0xe9, 0x50, 0x05, 0x00, 0x00, //0x000006ca jmp LBB1_112 - //0x000006cf LBB1_54 - 0x45, 0x85, 0xed, //0x000006cf testl %r13d, %r13d - 0x0f, 0x8f, 0x19, 0x03, 0x00, 0x00, //0x000006d2 jg LBB1_85 - 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x000006d8 movw $11824, (%r15) - 0x49, 0x83, 0xc7, 0x02, //0x000006de addq $2, %r15 - 0x45, 0x85, 0xed, //0x000006e2 testl %r13d, %r13d - 0x0f, 0x89, 0x06, 0x03, 0x00, 0x00, //0x000006e5 jns LBB1_85 - 0x31, 0xc0, //0x000006eb xorl %eax, %eax - 0x41, 0x83, 0xfd, 0x80, //0x000006ed cmpl $-128, %r13d - 0x0f, 0x87, 0xe1, 0x02, 0x00, 0x00, //0x000006f1 ja LBB1_83 - 0x45, 0x89, 0xe8, //0x000006f7 movl %r13d, %r8d - 0x41, 0xf7, 0xd0, //0x000006fa notl %r8d - 0x49, 0xff, 0xc0, //0x000006fd incq %r8 - 0x4c, 0x89, 0xc0, //0x00000700 movq %r8, %rax - 0x49, 0x89, 0xda, //0x00000703 movq %rbx, %r10 - 0x48, 0x21, 0xd8, //0x00000706 andq %rbx, %rax - 0x48, 0x8d, 0x48, 0x80, //0x00000709 leaq $-128(%rax), %rcx - 0x48, 0x89, 0xcb, //0x0000070d movq %rcx, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00000710 shrq $7, %rbx - 0x48, 0xff, 0xc3, //0x00000714 incq %rbx - 0x41, 0x89, 0xd9, //0x00000717 movl %ebx, %r9d - 0x41, 0x83, 0xe1, 0x03, //0x0000071a andl $3, %r9d - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000071e cmpq $384, %rcx - 0x0f, 0x83, 0xb9, 0x01, 0x00, 0x00, //0x00000725 jae LBB1_77 - 0x31, 0xdb, //0x0000072b xorl %ebx, %ebx - 0xe9, 0x5b, 0x02, 0x00, 0x00, //0x0000072d jmp LBB1_79 - //0x00000732 LBB1_59 - 0x04, 0x30, //0x00000732 addb $48, %al - 0x88, 0x43, 0x02, //0x00000734 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x00000737 addq $3, %rbx - 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x0000073b jmp LBB1_112 - //0x00000740 LBB1_60 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000740 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x00000745 cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000749 jb LBB1_68 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000074f movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x00000754 cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000758 jb LBB1_68 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000075e movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000763 cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000076a jb LBB1_68 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000770 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000775 cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x0000077c jb LBB1_68 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000782 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000787 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x0000078e jb LBB1_68 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000794 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000799 cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000007a0 jb LBB1_68 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x000007a6 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000007ab cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007b2 jb LBB1_68 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x000007b8 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000007bd cmpq $100000000, %rdi - 0x0f, 0x83, 0x80, 0x04, 0x00, 0x00, //0x000007c4 jae LBB1_116 - //0x000007ca LBB1_68 - 0x4c, 0x89, 0xfe, //0x000007ca movq %r15, %rsi - 0xe8, 0x8e, 0x04, 0x00, 0x00, //0x000007cd callq _format_integer - 0x48, 0x89, 0xc3, //0x000007d2 movq %rax, %rbx - 0xe9, 0x45, 0x04, 0x00, 0x00, //0x000007d5 jmp LBB1_112 - //0x000007da LBB1_69 - 0x48, 0x29, 0xd6, //0x000007da subq %rdx, %rsi - 0x31, 0xff, //0x000007dd xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x39, 0xf9, 0xff, 0xff, //0x000007df vmovdqa $-1735(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007e7 .p2align 4, 0x90 - //0x000007f0 LBB1_70 - 0xc5, 0xfe, 0x7f, 0x04, 0x38, //0x000007f0 vmovdqu %ymm0, (%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x20, //0x000007f5 vmovdqu %ymm0, $32(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x40, //0x000007fb vmovdqu %ymm0, $64(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x60, //0x00000801 vmovdqu %ymm0, $96(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x00000807 vmovdqu %ymm0, $128(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000810 vmovdqu %ymm0, $160(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x00000819 vmovdqu %ymm0, $192(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x00000822 vmovdqu %ymm0, $224(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x00, 0x01, 0x00, 0x00, //0x0000082b vmovdqu %ymm0, $256(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x20, 0x01, 0x00, 0x00, //0x00000834 vmovdqu %ymm0, $288(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x40, 0x01, 0x00, 0x00, //0x0000083d vmovdqu %ymm0, $320(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x60, 0x01, 0x00, 0x00, //0x00000846 vmovdqu %ymm0, $352(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x80, 0x01, 0x00, 0x00, //0x0000084f vmovdqu %ymm0, $384(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa0, 0x01, 0x00, 0x00, //0x00000858 vmovdqu %ymm0, $416(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc0, 0x01, 0x00, 0x00, //0x00000861 vmovdqu %ymm0, $448(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe0, 0x01, 0x00, 0x00, //0x0000086a vmovdqu %ymm0, $480(%rax,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000873 addq $512, %rdi - 0x48, 0x83, 0xc6, 0xfc, //0x0000087a addq $-4, %rsi - 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x0000087e jne LBB1_70 - //0x00000884 LBB1_71 - 0x48, 0x85, 0xd2, //0x00000884 testq %rdx, %rdx - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000887 je LBB1_74 - 0x48, 0x8d, 0x74, 0x07, 0x60, //0x0000088d leaq $96(%rdi,%rax), %rsi - 0x48, 0xf7, 0xda, //0x00000892 negq %rdx - 0xc5, 0xfd, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000895 vmovdqa $-1917(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, //0x0000089d .p2align 4, 0x90 - //0x000008a0 LBB1_73 - 0xc5, 0xfe, 0x7f, 0x46, 0xa0, //0x000008a0 vmovdqu %ymm0, $-96(%rsi) - 0xc5, 0xfe, 0x7f, 0x46, 0xc0, //0x000008a5 vmovdqu %ymm0, $-64(%rsi) - 0xc5, 0xfe, 0x7f, 0x46, 0xe0, //0x000008aa vmovdqu %ymm0, $-32(%rsi) - 0xc5, 0xfe, 0x7f, 0x06, //0x000008af vmovdqu %ymm0, (%rsi) - 0x48, 0x83, 0xee, 0x80, //0x000008b3 subq $-128, %rsi - 0x48, 0xff, 0xc2, //0x000008b7 incq %rdx - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000008ba jne LBB1_73 - //0x000008c0 LBB1_74 - 0x4c, 0x39, 0xe1, //0x000008c0 cmpq %r12, %rcx - 0x0f, 0x84, 0x56, 0x03, 0x00, 0x00, //0x000008c3 je LBB1_112 - 0x48, 0x01, 0xc8, //0x000008c9 addq %rcx, %rax - 0x90, 0x90, 0x90, 0x90, //0x000008cc .p2align 4, 0x90 - //0x000008d0 LBB1_76 - 0xc6, 0x00, 0x30, //0x000008d0 movb $48, (%rax) - 0x48, 0xff, 0xc0, //0x000008d3 incq %rax - 0x48, 0x39, 0xc3, //0x000008d6 cmpq %rax, %rbx - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000008d9 jne LBB1_76 - 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x000008df jmp LBB1_112 - //0x000008e4 LBB1_77 - 0x4b, 0x8d, 0x8c, 0x34, 0xe2, 0x01, 0x00, 0x00, //0x000008e4 leaq $482(%r12,%r14), %rcx - 0x4c, 0x89, 0xce, //0x000008ec movq %r9, %rsi - 0x48, 0x29, 0xde, //0x000008ef subq %rbx, %rsi - 0x31, 0xdb, //0x000008f2 xorl %ebx, %ebx - 0xc5, 0xfd, 0x6f, 0x05, 0x24, 0xf8, 0xff, 0xff, //0x000008f4 vmovdqa $-2012(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x000008fc LBB1_78 - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xfe, 0xff, 0xff, //0x000008fc vmovdqu %ymm0, $-480(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xfe, 0xff, 0xff, //0x00000905 vmovdqu %ymm0, $-448(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xfe, 0xff, 0xff, //0x0000090e vmovdqu %ymm0, $-416(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x80, 0xfe, 0xff, 0xff, //0x00000917 vmovdqu %ymm0, $-384(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xa0, 0xfe, 0xff, 0xff, //0x00000920 vmovdqu %ymm0, $-352(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xc0, 0xfe, 0xff, 0xff, //0x00000929 vmovdqu %ymm0, $-320(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0xe0, 0xfe, 0xff, 0xff, //0x00000932 vmovdqu %ymm0, $-288(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x00, 0xff, 0xff, 0xff, //0x0000093b vmovdqu %ymm0, $-256(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x00000944 vmovdqu %ymm0, $-224(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x0000094d vmovdqu %ymm0, $-192(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x00000956 vmovdqu %ymm0, $-160(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0x80, //0x0000095f vmovdqu %ymm0, $-128(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000965 vmovdqu %ymm0, $-96(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x0000096b vmovdqu %ymm0, $-64(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000971 vmovdqu %ymm0, $-32(%rcx,%rbx) - 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000977 vmovdqu %ymm0, (%rcx,%rbx) - 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x0000097c addq $512, %rbx - 0x48, 0x83, 0xc6, 0x04, //0x00000983 addq $4, %rsi - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000987 jne LBB1_78 - //0x0000098d LBB1_79 - 0x4d, 0x85, 0xc9, //0x0000098d testq %r9, %r9 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000990 je LBB1_82 - 0x4c, 0x01, 0xe3, //0x00000996 addq %r12, %rbx - 0x49, 0x8d, 0x4c, 0x1e, 0x62, //0x00000999 leaq $98(%r14,%rbx), %rcx - 0x49, 0xf7, 0xd9, //0x0000099e negq %r9 - 0xc5, 0xfd, 0x6f, 0x05, 0x77, 0xf7, 0xff, 0xff, //0x000009a1 vmovdqa $-2185(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x000009a9 LBB1_81 - 0xc5, 0xfe, 0x7f, 0x41, 0xa0, //0x000009a9 vmovdqu %ymm0, $-96(%rcx) - 0xc5, 0xfe, 0x7f, 0x41, 0xc0, //0x000009ae vmovdqu %ymm0, $-64(%rcx) - 0xc5, 0xfe, 0x7f, 0x41, 0xe0, //0x000009b3 vmovdqu %ymm0, $-32(%rcx) - 0xc5, 0xfe, 0x7f, 0x01, //0x000009b8 vmovdqu %ymm0, (%rcx) - 0x48, 0x83, 0xe9, 0x80, //0x000009bc subq $-128, %rcx - 0x49, 0xff, 0xc1, //0x000009c0 incq %r9 - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000009c3 jne LBB1_81 - //0x000009c9 LBB1_82 - 0x49, 0x01, 0xc7, //0x000009c9 addq %rax, %r15 - 0x49, 0x39, 0xc0, //0x000009cc cmpq %rax, %r8 - 0x4c, 0x89, 0xd3, //0x000009cf movq %r10, %rbx - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009d2 je LBB1_85 - //0x000009d8 LBB1_83 - 0x44, 0x89, 0xe9, //0x000009d8 movl %r13d, %ecx - 0xf7, 0xd9, //0x000009db negl %ecx - 0x90, 0x90, 0x90, //0x000009dd .p2align 4, 0x90 - //0x000009e0 LBB1_84 - 0x41, 0xc6, 0x07, 0x30, //0x000009e0 movb $48, (%r15) - 0x49, 0xff, 0xc7, //0x000009e4 incq %r15 - 0xff, 0xc0, //0x000009e7 incl %eax - 0x39, 0xc8, //0x000009e9 cmpl %ecx, %eax - 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000009eb jl LBB1_84 - //0x000009f1 LBB1_85 - 0x4c, 0x89, 0xfe, //0x000009f1 movq %r15, %rsi - 0xc5, 0xf8, 0x77, //0x000009f4 vzeroupper - 0xe8, 0xe4, 0x8d, 0x00, 0x00, //0x000009f7 callq _format_significand - 0x90, 0x90, 0x90, 0x90, //0x000009fc .p2align 4, 0x90 - //0x00000a00 LBB1_86 - 0x80, 0x78, 0xff, 0x30, //0x00000a00 cmpb $48, $-1(%rax) - 0x48, 0x8d, 0x40, 0xff, //0x00000a04 leaq $-1(%rax), %rax - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000a08 je LBB1_86 - 0x48, 0x8d, 0x48, 0x01, //0x00000a0e leaq $1(%rax), %rcx - 0x45, 0x85, 0xed, //0x00000a12 testl %r13d, %r13d - 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000a15 jle LBB1_91 - 0x89, 0xca, //0x00000a1b movl %ecx, %edx - 0x44, 0x29, 0xfa, //0x00000a1d subl %r15d, %edx - 0x41, 0x39, 0xd5, //0x00000a20 cmpl %edx, %r13d - 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00000a23 jge LBB1_92 - 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x00000a29 leal (%r13,%r15), %edx - 0x29, 0xd1, //0x00000a2e subl %edx, %ecx - 0x48, 0x8d, 0x71, 0xff, //0x00000a30 leaq $-1(%rcx), %rsi - 0x89, 0xca, //0x00000a34 movl %ecx, %edx - 0x83, 0xe2, 0x03, //0x00000a36 andl $3, %edx - 0x48, 0x83, 0xfe, 0x03, //0x00000a39 cmpq $3, %rsi - 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x00000a3d jae LBB1_96 - 0x31, 0xc9, //0x00000a43 xorl %ecx, %ecx - 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00000a45 jmp LBB1_99 - //0x00000a4a LBB1_92 - 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x00000a4a jle LBB1_91 - 0x48, 0x89, 0xde, //0x00000a50 movq %rbx, %rsi - 0x45, 0x01, 0xfd, //0x00000a53 addl %r15d, %r13d - 0x41, 0x89, 0xc8, //0x00000a56 movl %ecx, %r8d - 0x41, 0xf7, 0xd0, //0x00000a59 notl %r8d - 0x45, 0x01, 0xe8, //0x00000a5c addl %r13d, %r8d - 0x31, 0xd2, //0x00000a5f xorl %edx, %edx - 0x48, 0x89, 0xcb, //0x00000a61 movq %rcx, %rbx - 0x41, 0x83, 0xf8, 0x7e, //0x00000a64 cmpl $126, %r8d - 0x0f, 0x86, 0x8f, 0x01, 0x00, 0x00, //0x00000a68 jbe LBB1_110 - 0x49, 0xff, 0xc0, //0x00000a6e incq %r8 - 0x48, 0x89, 0xf3, //0x00000a71 movq %rsi, %rbx - 0x4c, 0x21, 0xc3, //0x00000a74 andq %r8, %rbx - 0x48, 0x8d, 0x73, 0x80, //0x00000a77 leaq $-128(%rbx), %rsi - 0x48, 0x89, 0xf7, //0x00000a7b movq %rsi, %rdi - 0x48, 0xc1, 0xef, 0x07, //0x00000a7e shrq $7, %rdi - 0x48, 0xff, 0xc7, //0x00000a82 incq %rdi - 0x89, 0xfa, //0x00000a85 movl %edi, %edx - 0x83, 0xe2, 0x03, //0x00000a87 andl $3, %edx - 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000a8a cmpq $384, %rsi - 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00000a91 jae LBB1_104 - 0x31, 0xff, //0x00000a97 xorl %edi, %edi - 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000a99 jmp LBB1_106 - //0x00000a9e LBB1_91 - 0x48, 0x89, 0xcb, //0x00000a9e movq %rcx, %rbx - 0xe9, 0x79, 0x01, 0x00, 0x00, //0x00000aa1 jmp LBB1_112 - //0x00000aa6 LBB1_96 - 0x48, 0x89, 0xd6, //0x00000aa6 movq %rdx, %rsi - 0x48, 0x29, 0xce, //0x00000aa9 subq %rcx, %rsi - 0x31, 0xc9, //0x00000aac xorl %ecx, %ecx - 0x90, 0x90, //0x00000aae .p2align 4, 0x90 - //0x00000ab0 LBB1_97 - 0x8b, 0x7c, 0x08, 0xfd, //0x00000ab0 movl $-3(%rax,%rcx), %edi - 0x89, 0x7c, 0x08, 0xfe, //0x00000ab4 movl %edi, $-2(%rax,%rcx) - 0x48, 0x83, 0xc1, 0xfc, //0x00000ab8 addq $-4, %rcx - 0x48, 0x39, 0xce, //0x00000abc cmpq %rcx, %rsi - 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000abf jne LBB1_97 - 0x48, 0xf7, 0xd9, //0x00000ac5 negq %rcx - //0x00000ac8 LBB1_99 - 0x48, 0x85, 0xd2, //0x00000ac8 testq %rdx, %rdx - 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000acb je LBB1_102 - 0x48, 0xf7, 0xd9, //0x00000ad1 negq %rcx - 0x48, 0xf7, 0xda, //0x00000ad4 negq %rdx - 0x31, 0xf6, //0x00000ad7 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ad9 .p2align 4, 0x90 - //0x00000ae0 LBB1_101 - 0x48, 0x8d, 0x3c, 0x31, //0x00000ae0 leaq (%rcx,%rsi), %rdi - 0x0f, 0xb6, 0x1c, 0x38, //0x00000ae4 movzbl (%rax,%rdi), %ebx - 0x88, 0x5c, 0x38, 0x01, //0x00000ae8 movb %bl, $1(%rax,%rdi) - 0x48, 0xff, 0xce, //0x00000aec decq %rsi - 0x48, 0x39, 0xf2, //0x00000aef cmpq %rsi, %rdx - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000af2 jne LBB1_101 - //0x00000af8 LBB1_102 - 0x49, 0x63, 0xcd, //0x00000af8 movslq %r13d, %rcx - 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000afb movb $46, (%r15,%rcx) - 0x48, 0x83, 0xc0, 0x02, //0x00000b00 addq $2, %rax - 0x48, 0x89, 0xc3, //0x00000b04 movq %rax, %rbx - 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00000b07 jmp LBB1_112 - //0x00000b0c LBB1_104 - 0x48, 0x89, 0xd6, //0x00000b0c movq %rdx, %rsi - 0x48, 0x29, 0xfe, //0x00000b0f subq %rdi, %rsi - 0x31, 0xff, //0x00000b12 xorl %edi, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x04, 0xf6, 0xff, 0xff, //0x00000b14 vmovdqa $-2556(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000b1c LBB1_105 - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x01, //0x00000b1c vmovdqu %ymm0, $1(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x21, //0x00000b22 vmovdqu %ymm0, $33(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x41, //0x00000b28 vmovdqu %ymm0, $65(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x44, 0x38, 0x61, //0x00000b2e vmovdqu %ymm0, $97(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000b34 vmovdqu %ymm0, $129(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000b3d vmovdqu %ymm0, $161(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000b46 vmovdqu %ymm0, $193(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000b4f vmovdqu %ymm0, $225(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x01, 0x01, 0x00, 0x00, //0x00000b58 vmovdqu %ymm0, $257(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x21, 0x01, 0x00, 0x00, //0x00000b61 vmovdqu %ymm0, $289(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x41, 0x01, 0x00, 0x00, //0x00000b6a vmovdqu %ymm0, $321(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x61, 0x01, 0x00, 0x00, //0x00000b73 vmovdqu %ymm0, $353(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0x81, 0x01, 0x00, 0x00, //0x00000b7c vmovdqu %ymm0, $385(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xa1, 0x01, 0x00, 0x00, //0x00000b85 vmovdqu %ymm0, $417(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xc1, 0x01, 0x00, 0x00, //0x00000b8e vmovdqu %ymm0, $449(%rax,%rdi) - 0xc5, 0xfe, 0x7f, 0x84, 0x38, 0xe1, 0x01, 0x00, 0x00, //0x00000b97 vmovdqu %ymm0, $481(%rax,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000ba0 addq $512, %rdi - 0x48, 0x83, 0xc6, 0x04, //0x00000ba7 addq $4, %rsi - 0x0f, 0x85, 0x6b, 0xff, 0xff, 0xff, //0x00000bab jne LBB1_105 - //0x00000bb1 LBB1_106 - 0x48, 0x89, 0xde, //0x00000bb1 movq %rbx, %rsi - 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000bb4 leaq $1(%rax,%rbx), %rbx - 0x48, 0x85, 0xd2, //0x00000bb9 testq %rdx, %rdx - 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00000bbc je LBB1_109 - 0x48, 0x8d, 0x44, 0x38, 0x61, //0x00000bc2 leaq $97(%rax,%rdi), %rax - 0x48, 0xf7, 0xda, //0x00000bc7 negq %rdx - 0xc5, 0xfd, 0x6f, 0x05, 0x4e, 0xf5, 0xff, 0xff, //0x00000bca vmovdqa $-2738(%rip), %ymm0 /* LCPI1_0+0(%rip) */ - //0x00000bd2 LBB1_108 - 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00000bd2 vmovdqu %ymm0, $-96(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00000bd7 vmovdqu %ymm0, $-64(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00000bdc vmovdqu %ymm0, $-32(%rax) - 0xc5, 0xfe, 0x7f, 0x00, //0x00000be1 vmovdqu %ymm0, (%rax) - 0x48, 0x83, 0xe8, 0x80, //0x00000be5 subq $-128, %rax - 0x48, 0xff, 0xc2, //0x00000be9 incq %rdx - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00000bec jne LBB1_108 - //0x00000bf2 LBB1_109 - 0x89, 0xf2, //0x00000bf2 movl %esi, %edx - 0x49, 0x39, 0xf0, //0x00000bf4 cmpq %rsi, %r8 - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000bf7 je LBB1_112 - //0x00000bfd LBB1_110 - 0x41, 0x29, 0xd5, //0x00000bfd subl %edx, %r13d - 0x41, 0x29, 0xcd, //0x00000c00 subl %ecx, %r13d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c03 .p2align 4, 0x90 - //0x00000c10 LBB1_111 - 0xc6, 0x03, 0x30, //0x00000c10 movb $48, (%rbx) - 0x48, 0xff, 0xc3, //0x00000c13 incq %rbx - 0x41, 0xff, 0xcd, //0x00000c16 decl %r13d - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000c19 jne LBB1_111 - //0x00000c1f LBB1_112 - 0x44, 0x29, 0xf3, //0x00000c1f subl %r14d, %ebx - //0x00000c22 LBB1_113 - 0x89, 0xd8, //0x00000c22 movl %ebx, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00000c24 addq $8, %rsp - 0x5b, //0x00000c28 popq %rbx - 0x41, 0x5c, //0x00000c29 popq %r12 - 0x41, 0x5d, //0x00000c2b popq %r13 - 0x41, 0x5e, //0x00000c2d popq %r14 - 0x41, 0x5f, //0x00000c2f popq %r15 - 0x5d, //0x00000c31 popq %rbp - 0xc5, 0xf8, 0x77, //0x00000c32 vzeroupper - 0xc3, //0x00000c35 retq - //0x00000c36 LBB1_114 - 0x31, 0xdb, //0x00000c36 xorl %ebx, %ebx - 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00000c38 jmp LBB1_113 - //0x00000c3d LBB1_115 - 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000c3d movl $-1074, %ebx - 0x48, 0x89, 0xd7, //0x00000c42 movq %rdx, %rdi - 0xe9, 0x8f, 0xf5, 0xff, 0xff, //0x00000c45 jmp LBB1_5 - //0x00000c4a LBB1_116 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000c4a cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000c51 movl $10, %edx - 0xe9, 0x34, 0xfa, 0xff, 0xff, //0x00000c56 jmp LBB1_50 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c5b .p2align 4, 0x90 - //0x00000c60 _format_integer - 0x55, //0x00000c60 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000c61 movq %rsp, %rbp - 0x53, //0x00000c64 pushq %rbx - 0x41, 0x89, 0xd0, //0x00000c65 movl %edx, %r8d - 0x49, 0x01, 0xf0, //0x00000c68 addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00000c6b movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00000c6e shrq $32, %rax - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000c72 je LBB2_1 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000c78 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00000c82 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00000c85 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000c88 shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000c8c imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00000c92 addl %edi, %ecx - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c94 movl $3518437209, %r9d - 0x48, 0x89, 0xc8, //0x00000c9a movq %rcx, %rax - 0x49, 0x0f, 0xaf, 0xc1, //0x00000c9d imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00000ca1 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000ca5 imull $10000, %eax, %edi - 0x29, 0xf9, //0x00000cab subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00000cad movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00000cb0 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00000cb4 shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000cb8 imull $10000, %edi, %edi - 0x29, 0xf8, //0x00000cbe subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00000cc0 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00000cc3 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000cc6 imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00000ccd shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00000cd1 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00000cd5 subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00000cd7 movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00000cdb movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00000cde shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000ce1 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00000ce7 shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00000cea imull $100, %edi, %ecx - 0x29, 0xc8, //0x00000ced subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00000cef movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x46, 0xbf, 0x00, 0x00, //0x00000cf3 leaq $48966(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000cfa movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000cff movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000d04 movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000d09 movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000d0e movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000d13 movw %ax, $-6(%r8) - 0x4d, 0x8d, 0x58, 0xf8, //0x00000d18 leaq $-8(%r8), %r11 - 0x0f, 0xb7, 0x0c, 0x79, //0x00000d1c movzwl (%rcx,%rdi,2), %ecx - 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000d20 movw %cx, $-8(%r8) - 0x48, 0x89, 0xd7, //0x00000d25 movq %rdx, %rdi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d28 cmpl $10000, %edi - 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000d2e jae LBB2_5 - //0x00000d34 LBB2_4 - 0x89, 0xfa, //0x00000d34 movl %edi, %edx - 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000d36 jmp LBB2_7 - //0x00000d3b LBB2_1 - 0x4d, 0x89, 0xc3, //0x00000d3b movq %r8, %r11 - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d3e cmpl $10000, %edi - 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000d44 jb LBB2_4 - //0x00000d4a LBB2_5 - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000d4a movl $3518437209, %r9d - 0x4c, 0x8d, 0x15, 0xe9, 0xbe, 0x00, 0x00, //0x00000d50 leaq $48873(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d57 .p2align 4, 0x90 - //0x00000d60 LBB2_6 - 0x89, 0xfa, //0x00000d60 movl %edi, %edx - 0x49, 0x0f, 0xaf, 0xd1, //0x00000d62 imulq %r9, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000d66 shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000d6a imull $-10000, %edx, %ecx - 0x01, 0xf9, //0x00000d70 addl %edi, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000d72 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00000d79 shrq $37, %rax - 0x6b, 0xd8, 0x64, //0x00000d7d imull $100, %eax, %ebx - 0x29, 0xd9, //0x00000d80 subl %ebx, %ecx - 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000d82 movzwl (%r10,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d87 movw %cx, $-2(%r11) - 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000d8c movzwl (%r10,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000d91 movw %ax, $-4(%r11) - 0x49, 0x83, 0xc3, 0xfc, //0x00000d96 addq $-4, %r11 - 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000d9a cmpl $99999999, %edi - 0x89, 0xd7, //0x00000da0 movl %edx, %edi - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000da2 ja LBB2_6 - //0x00000da8 LBB2_7 - 0x83, 0xfa, 0x64, //0x00000da8 cmpl $100, %edx - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000dab jb LBB2_9 - 0x0f, 0xb7, 0xc2, //0x00000db1 movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000db4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000db7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000dbd shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00000dc0 imull $100, %eax, %ecx - 0x29, 0xca, //0x00000dc3 subl %ecx, %edx - 0x0f, 0xb7, 0xca, //0x00000dc5 movzwl %dx, %ecx - 0x48, 0x8d, 0x15, 0x71, 0xbe, 0x00, 0x00, //0x00000dc8 leaq $48753(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00000dcf movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000dd3 movw %cx, $-2(%r11) - 0x49, 0x83, 0xc3, 0xfe, //0x00000dd8 addq $-2, %r11 - 0x89, 0xc2, //0x00000ddc movl %eax, %edx - //0x00000dde LBB2_9 - 0x83, 0xfa, 0x0a, //0x00000dde cmpl $10, %edx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000de1 jb LBB2_11 - 0x89, 0xd0, //0x00000de7 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x50, 0xbe, 0x00, 0x00, //0x00000de9 leaq $48720(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00000df0 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000df4 movw %ax, $-2(%r11) - 0x4c, 0x89, 0xc0, //0x00000df9 movq %r8, %rax - 0x5b, //0x00000dfc popq %rbx - 0x5d, //0x00000dfd popq %rbp - 0xc3, //0x00000dfe retq - //0x00000dff LBB2_11 - 0x80, 0xc2, 0x30, //0x00000dff addb $48, %dl - 0x88, 0x16, //0x00000e02 movb %dl, (%rsi) - 0x4c, 0x89, 0xc0, //0x00000e04 movq %r8, %rax - 0x5b, //0x00000e07 popq %rbx - 0x5d, //0x00000e08 popq %rbp - 0xc3, //0x00000e09 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e0a .p2align 4, 0x90 - //0x00000e10 _i64toa - 0x48, 0x85, 0xf6, //0x00000e10 testq %rsi, %rsi - 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000e13 js LBB3_1 - 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000e19 jmp _u64toa - //0x00000e1e LBB3_1 - 0x55, //0x00000e1e pushq %rbp - 0x48, 0x89, 0xe5, //0x00000e1f movq %rsp, %rbp - 0xc6, 0x07, 0x2d, //0x00000e22 movb $45, (%rdi) - 0x48, 0xff, 0xc7, //0x00000e25 incq %rdi - 0x48, 0xf7, 0xde, //0x00000e28 negq %rsi - 0xe8, 0x50, 0x00, 0x00, 0x00, //0x00000e2b callq _u64toa - 0xff, 0xc0, //0x00000e30 incl %eax - 0x5d, //0x00000e32 popq %rbp - 0xc3, //0x00000e33 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e34 .p2align 4, 0x00 - //0x00000e40 LCPI4_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000e40 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000e48 .quad 3518437209 - //0x00000e50 LCPI4_3 - 0x0a, 0x00, //0x00000e50 .word 10 - 0x0a, 0x00, //0x00000e52 .word 10 - 0x0a, 0x00, //0x00000e54 .word 10 - 0x0a, 0x00, //0x00000e56 .word 10 - 0x0a, 0x00, //0x00000e58 .word 10 - 0x0a, 0x00, //0x00000e5a .word 10 - 0x0a, 0x00, //0x00000e5c .word 10 - 0x0a, 0x00, //0x00000e5e .word 10 - //0x00000e60 LCPI4_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000e60 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000e70 .p2align 3, 0x00 - //0x00000e70 LCPI4_1 - 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000e70 .quad -9223315738079846203 - //0x00000e78 LCPI4_2 - 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000e78 .quad -9223336852348469120 - //0x00000e80 .p2align 4, 0x90 - //0x00000e80 _u64toa - 0x55, //0x00000e80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000e81 movq %rsp, %rbp - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e84 cmpq $9999, %rsi - 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000e8b ja LBB4_8 - 0x0f, 0xb7, 0xc6, //0x00000e91 movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000e94 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e97 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000e9d shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000ea0 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000ea4 imull $100, %eax, %eax - 0x89, 0xf1, //0x00000ea7 movl %esi, %ecx - 0x29, 0xc1, //0x00000ea9 subl %eax, %ecx - 0x0f, 0xb7, 0xc1, //0x00000eab movzwl %cx, %eax - 0x48, 0x01, 0xc0, //0x00000eae addq %rax, %rax - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000eb1 cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000eb7 jb LBB4_3 - 0x48, 0x8d, 0x0d, 0x7c, 0xbd, 0x00, 0x00, //0x00000ebd leaq $48508(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x0a, //0x00000ec4 movb (%rdx,%rcx), %cl - 0x88, 0x0f, //0x00000ec7 movb %cl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000ec9 movl $1, %ecx - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000ece jmp LBB4_4 - //0x00000ed3 LBB4_3 - 0x31, 0xc9, //0x00000ed3 xorl %ecx, %ecx - 0x83, 0xfe, 0x64, //0x00000ed5 cmpl $100, %esi - 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000ed8 jb LBB4_5 - //0x00000ede LBB4_4 - 0x0f, 0xb7, 0xd2, //0x00000ede movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00000ee1 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x54, 0xbd, 0x00, 0x00, //0x00000ee5 leaq $48468(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00000eec movb (%rdx,%rsi), %dl - 0x89, 0xce, //0x00000eef movl %ecx, %esi - 0xff, 0xc1, //0x00000ef1 incl %ecx - 0x88, 0x14, 0x37, //0x00000ef3 movb %dl, (%rdi,%rsi) - //0x00000ef6 LBB4_6 - 0x48, 0x8d, 0x15, 0x43, 0xbd, 0x00, 0x00, //0x00000ef6 leaq $48451(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x10, //0x00000efd movb (%rax,%rdx), %dl - 0x89, 0xce, //0x00000f00 movl %ecx, %esi - 0xff, 0xc1, //0x00000f02 incl %ecx - 0x88, 0x14, 0x37, //0x00000f04 movb %dl, (%rdi,%rsi) - //0x00000f07 LBB4_7 - 0x0f, 0xb7, 0xc0, //0x00000f07 movzwl %ax, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f0a orq $1, %rax - 0x48, 0x8d, 0x15, 0x2b, 0xbd, 0x00, 0x00, //0x00000f0e leaq $48427(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x10, //0x00000f15 movb (%rax,%rdx), %al - 0x89, 0xca, //0x00000f18 movl %ecx, %edx - 0xff, 0xc1, //0x00000f1a incl %ecx - 0x88, 0x04, 0x17, //0x00000f1c movb %al, (%rdi,%rdx) - 0x89, 0xc8, //0x00000f1f movl %ecx, %eax - 0x5d, //0x00000f21 popq %rbp - 0xc3, //0x00000f22 retq - //0x00000f23 LBB4_5 - 0x31, 0xc9, //0x00000f23 xorl %ecx, %ecx - 0x83, 0xfe, 0x0a, //0x00000f25 cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000f28 jae LBB4_6 - 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000f2e jmp LBB4_7 - //0x00000f33 LBB4_8 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000f33 cmpq $99999999, %rsi - 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000f3a ja LBB4_16 - 0x89, 0xf0, //0x00000f40 movl %esi, %eax - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000f42 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00000f47 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000f4b shrq $45, %rdx - 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000f4f imull $10000, %edx, %r8d - 0x89, 0xf1, //0x00000f56 movl %esi, %ecx - 0x44, 0x29, 0xc1, //0x00000f58 subl %r8d, %ecx - 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000f5b imulq $1125899907, %rax, %r10 - 0x49, 0xc1, 0xea, 0x31, //0x00000f62 shrq $49, %r10 - 0x41, 0x83, 0xe2, 0xfe, //0x00000f66 andl $-2, %r10d - 0x0f, 0xb7, 0xc2, //0x00000f6a movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000f6d shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f70 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000f76 shrl $17, %eax - 0x6b, 0xc0, 0x64, //0x00000f79 imull $100, %eax, %eax - 0x29, 0xc2, //0x00000f7c subl %eax, %edx - 0x44, 0x0f, 0xb7, 0xca, //0x00000f7e movzwl %dx, %r9d - 0x4d, 0x01, 0xc9, //0x00000f82 addq %r9, %r9 - 0x0f, 0xb7, 0xc1, //0x00000f85 movzwl %cx, %eax - 0xc1, 0xe8, 0x02, //0x00000f88 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f8b imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000f91 shrl $17, %eax - 0x4c, 0x8d, 0x04, 0x00, //0x00000f94 leaq (%rax,%rax), %r8 - 0x6b, 0xc0, 0x64, //0x00000f98 imull $100, %eax, %eax - 0x29, 0xc1, //0x00000f9b subl %eax, %ecx - 0x44, 0x0f, 0xb7, 0xd9, //0x00000f9d movzwl %cx, %r11d - 0x4d, 0x01, 0xdb, //0x00000fa1 addq %r11, %r11 - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000fa4 cmpl $10000000, %esi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000faa jb LBB4_11 - 0x48, 0x8d, 0x05, 0x89, 0xbc, 0x00, 0x00, //0x00000fb0 leaq $48265(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x02, //0x00000fb7 movb (%r10,%rax), %al - 0x88, 0x07, //0x00000fbb movb %al, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000fbd movl $1, %ecx - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000fc2 jmp LBB4_12 - //0x00000fc7 LBB4_11 - 0x31, 0xc9, //0x00000fc7 xorl %ecx, %ecx - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000fc9 cmpl $1000000, %esi - 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000fcf jb LBB4_13 - //0x00000fd5 LBB4_12 - 0x44, 0x89, 0xd0, //0x00000fd5 movl %r10d, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000fd8 orq $1, %rax - 0x48, 0x8d, 0x35, 0x5d, 0xbc, 0x00, 0x00, //0x00000fdc leaq $48221(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x30, //0x00000fe3 movb (%rax,%rsi), %al - 0x89, 0xce, //0x00000fe6 movl %ecx, %esi - 0xff, 0xc1, //0x00000fe8 incl %ecx - 0x88, 0x04, 0x37, //0x00000fea movb %al, (%rdi,%rsi) - //0x00000fed LBB4_14 - 0x48, 0x8d, 0x05, 0x4c, 0xbc, 0x00, 0x00, //0x00000fed leaq $48204(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x01, //0x00000ff4 movb (%r9,%rax), %al - 0x89, 0xce, //0x00000ff8 movl %ecx, %esi - 0xff, 0xc1, //0x00000ffa incl %ecx - 0x88, 0x04, 0x37, //0x00000ffc movb %al, (%rdi,%rsi) - //0x00000fff LBB4_15 - 0x41, 0x0f, 0xb7, 0xc1, //0x00000fff movzwl %r9w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00001003 orq $1, %rax - 0x48, 0x8d, 0x35, 0x32, 0xbc, 0x00, 0x00, //0x00001007 leaq $48178(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x30, //0x0000100e movb (%rax,%rsi), %al - 0x89, 0xca, //0x00001011 movl %ecx, %edx - 0x88, 0x04, 0x3a, //0x00001013 movb %al, (%rdx,%rdi) - 0x41, 0x8a, 0x04, 0x30, //0x00001016 movb (%r8,%rsi), %al - 0x88, 0x44, 0x3a, 0x01, //0x0000101a movb %al, $1(%rdx,%rdi) - 0x41, 0x0f, 0xb7, 0xc0, //0x0000101e movzwl %r8w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00001022 orq $1, %rax - 0x8a, 0x04, 0x30, //0x00001026 movb (%rax,%rsi), %al - 0x88, 0x44, 0x3a, 0x02, //0x00001029 movb %al, $2(%rdx,%rdi) - 0x41, 0x8a, 0x04, 0x33, //0x0000102d movb (%r11,%rsi), %al - 0x88, 0x44, 0x3a, 0x03, //0x00001031 movb %al, $3(%rdx,%rdi) - 0x41, 0x0f, 0xb7, 0xc3, //0x00001035 movzwl %r11w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00001039 orq $1, %rax - 0x8a, 0x04, 0x30, //0x0000103d movb (%rax,%rsi), %al - 0x83, 0xc1, 0x05, //0x00001040 addl $5, %ecx - 0x88, 0x44, 0x3a, 0x04, //0x00001043 movb %al, $4(%rdx,%rdi) - 0x89, 0xc8, //0x00001047 movl %ecx, %eax - 0x5d, //0x00001049 popq %rbp - 0xc3, //0x0000104a retq - //0x0000104b LBB4_13 - 0x31, 0xc9, //0x0000104b xorl %ecx, %ecx - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000104d cmpl $100000, %esi - 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00001053 jae LBB4_14 - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001059 jmp LBB4_15 - //0x0000105e LBB4_16 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000105e movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x00001068 cmpq %rax, %rsi - 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x0000106b ja LBB4_18 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001071 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf0, //0x0000107b movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x0000107e mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00001081 shrq $26, %rdx - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001085 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000108b subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xc2, //0x0000108d vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00001091 vmovdqa $-601(%rip), %xmm1 /* LCPI4_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x00001099 vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000109d vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000010a2 movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000010a7 vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x000010ac vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x000010b0 vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x000010b4 vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000010b8 vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000010bd vpshuflw $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000010c2 vpshufd $80, %xmm0, %xmm0 - 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xa0, 0xfd, 0xff, 0xff, //0x000010c7 vpbroadcastq $-608(%rip), %xmm2 /* LCPI4_1+0(%rip) */ - 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x9f, 0xfd, 0xff, 0xff, //0x000010d0 vpbroadcastq $-609(%rip), %xmm4 /* LCPI4_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc2, //0x000010d9 vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xe4, 0xc4, //0x000010dd vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x67, 0xfd, 0xff, 0xff, //0x000010e1 vmovdqa $-665(%rip), %xmm5 /* LCPI4_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x000010e9 vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000010ed vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x000010f2 vpsubw %xmm6, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6e, 0xf6, //0x000010f6 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x000010fa vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000010fe vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x00001103 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x00001107 vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x0000110b vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000110f vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001114 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001119 vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x0000111e vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x00001122 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x00001126 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000112a vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x0000112f vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x00001133 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x0d, 0x21, 0xfd, 0xff, 0xff, //0x00001137 vpaddb $-735(%rip), %xmm0, %xmm1 /* LCPI4_4+0(%rip) */ - 0xc5, 0xe9, 0xef, 0xd2, //0x0000113f vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf9, 0x74, 0xc2, //0x00001143 vpcmpeqb %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc0, //0x00001147 vpmovmskb %xmm0, %eax - 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000114b orl $32768, %eax - 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00001150 xorl $-32769, %eax - 0x0f, 0xbc, 0xc0, //0x00001155 bsfl %eax, %eax - 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001158 movl $16, %ecx - 0x29, 0xc1, //0x0000115d subl %eax, %ecx - 0x48, 0xc1, 0xe0, 0x04, //0x0000115f shlq $4, %rax - 0x48, 0x8d, 0x15, 0x36, 0xe2, 0x00, 0x00, //0x00001163 leaq $57910(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ - 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x0000116a vpshufb (%rax,%rdx), %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x00001170 vmovdqu %xmm0, (%rdi) - 0x89, 0xc8, //0x00001174 movl %ecx, %eax - 0x5d, //0x00001176 popq %rbp - 0xc3, //0x00001177 retq - //0x00001178 LBB4_18 - 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001178 movabsq $4153837486827862103, %rcx - 0x48, 0x89, 0xf0, //0x00001182 movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00001185 mulq %rcx - 0x48, 0xc1, 0xea, 0x33, //0x00001188 shrq $51, %rdx - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000118c movabsq $10000000000000000, %rax - 0x48, 0x0f, 0xaf, 0xc2, //0x00001196 imulq %rdx, %rax - 0x48, 0x29, 0xc6, //0x0000119a subq %rax, %rsi - 0x83, 0xfa, 0x09, //0x0000119d cmpl $9, %edx - 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000011a0 ja LBB4_20 - 0x80, 0xc2, 0x30, //0x000011a6 addb $48, %dl - 0x88, 0x17, //0x000011a9 movb %dl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000011ab movl $1, %ecx - 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000011b0 jmp LBB4_25 - //0x000011b5 LBB4_20 - 0x83, 0xfa, 0x63, //0x000011b5 cmpl $99, %edx - 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x000011b8 ja LBB4_22 - 0x89, 0xd0, //0x000011be movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x79, 0xba, 0x00, 0x00, //0x000011c0 leaq $47737(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x000011c7 movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x000011ca movb $1(%rcx,%rax,2), %al - 0x88, 0x17, //0x000011ce movb %dl, (%rdi) - 0x88, 0x47, 0x01, //0x000011d0 movb %al, $1(%rdi) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000011d3 movl $2, %ecx - 0xe9, 0x92, 0x00, 0x00, 0x00, //0x000011d8 jmp LBB4_25 - //0x000011dd LBB4_22 - 0x89, 0xd0, //0x000011dd movl %edx, %eax - 0xc1, 0xe8, 0x02, //0x000011df shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000011e2 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x000011e8 shrl $17, %eax - 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000011eb cmpl $999, %edx - 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000011f1 ja LBB4_24 - 0x83, 0xc0, 0x30, //0x000011f7 addl $48, %eax - 0x88, 0x07, //0x000011fa movb %al, (%rdi) - 0x0f, 0xb7, 0xc2, //0x000011fc movzwl %dx, %eax - 0x89, 0xc1, //0x000011ff movl %eax, %ecx - 0xc1, 0xe9, 0x02, //0x00001201 shrl $2, %ecx - 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001204 imull $5243, %ecx, %ecx - 0xc1, 0xe9, 0x11, //0x0000120a shrl $17, %ecx - 0x6b, 0xc9, 0x64, //0x0000120d imull $100, %ecx, %ecx - 0x29, 0xc8, //0x00001210 subl %ecx, %eax - 0x0f, 0xb7, 0xc0, //0x00001212 movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0x24, 0xba, 0x00, 0x00, //0x00001215 leaq $47652(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x0000121c movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x0000121f movb $1(%rcx,%rax,2), %al - 0x88, 0x57, 0x01, //0x00001223 movb %dl, $1(%rdi) - 0x88, 0x47, 0x02, //0x00001226 movb %al, $2(%rdi) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00001229 movl $3, %ecx - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000122e jmp LBB4_25 - //0x00001233 LBB4_24 - 0x6b, 0xc8, 0x64, //0x00001233 imull $100, %eax, %ecx - 0x29, 0xca, //0x00001236 subl %ecx, %edx - 0x0f, 0xb7, 0xc0, //0x00001238 movzwl %ax, %eax - 0x4c, 0x8d, 0x05, 0xfe, 0xb9, 0x00, 0x00, //0x0000123b leaq $47614(%rip), %r8 /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x0c, 0x40, //0x00001242 movb (%r8,%rax,2), %cl - 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00001246 movb $1(%r8,%rax,2), %al - 0x88, 0x0f, //0x0000124b movb %cl, (%rdi) - 0x88, 0x47, 0x01, //0x0000124d movb %al, $1(%rdi) - 0x0f, 0xb7, 0xc2, //0x00001250 movzwl %dx, %eax - 0x41, 0x8a, 0x0c, 0x40, //0x00001253 movb (%r8,%rax,2), %cl - 0x48, 0x01, 0xc0, //0x00001257 addq %rax, %rax - 0x88, 0x4f, 0x02, //0x0000125a movb %cl, $2(%rdi) - 0x83, 0xc8, 0x01, //0x0000125d orl $1, %eax - 0x0f, 0xb7, 0xc0, //0x00001260 movzwl %ax, %eax - 0x42, 0x8a, 0x04, 0x00, //0x00001263 movb (%rax,%r8), %al - 0x88, 0x47, 0x03, //0x00001267 movb %al, $3(%rdi) - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000126a movl $4, %ecx - //0x0000126f LBB4_25 - 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000126f movabsq $-6067343680855748867, %rdx - 0x48, 0x89, 0xf0, //0x00001279 movq %rsi, %rax - 0x48, 0xf7, 0xe2, //0x0000127c mulq %rdx - 0x48, 0xc1, 0xea, 0x1a, //0x0000127f shrq $26, %rdx - 0xc5, 0xf9, 0x6e, 0xc2, //0x00001283 vmovd %edx, %xmm0 - 0xc5, 0xf9, 0x6f, 0x0d, 0xb1, 0xfb, 0xff, 0xff, //0x00001287 vmovdqa $-1103(%rip), %xmm1 /* LCPI4_0+0(%rip) */ - 0xc5, 0xf9, 0xf4, 0xd1, //0x0000128f vpmuludq %xmm1, %xmm0, %xmm2 - 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001293 vpsrlq $45, %xmm2, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001298 movl $10000, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000129d vmovq %rax, %xmm3 - 0xc5, 0xe9, 0xf4, 0xe3, //0x000012a2 vpmuludq %xmm3, %xmm2, %xmm4 - 0xc5, 0xf9, 0xfa, 0xc4, //0x000012a6 vpsubd %xmm4, %xmm0, %xmm0 - 0xc5, 0xe9, 0x61, 0xc0, //0x000012aa vpunpcklwd %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000012ae vpsllq $2, %xmm0, %xmm0 - 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000012b3 vpshuflw $80, %xmm0, %xmm0 - 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x000012b8 vpbroadcastq $-1105(%rip), %xmm2 /* LCPI4_1+0(%rip) */ - 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000012c1 vpshufd $80, %xmm0, %xmm0 - 0xc5, 0xf9, 0xe4, 0xc2, //0x000012c6 vpmulhuw %xmm2, %xmm0, %xmm0 - 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xa5, 0xfb, 0xff, 0xff, //0x000012ca vpbroadcastq $-1115(%rip), %xmm4 /* LCPI4_2+0(%rip) */ - 0xc5, 0xf9, 0xe4, 0xc4, //0x000012d3 vpmulhuw %xmm4, %xmm0, %xmm0 - 0xc5, 0xf9, 0x6f, 0x2d, 0x71, 0xfb, 0xff, 0xff, //0x000012d7 vmovdqa $-1167(%rip), %xmm5 /* LCPI4_3+0(%rip) */ - 0xc5, 0xf9, 0xd5, 0xf5, //0x000012df vpmullw %xmm5, %xmm0, %xmm6 - 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000012e3 vpsllq $16, %xmm6, %xmm6 - 0xc5, 0xf9, 0xf9, 0xc6, //0x000012e8 vpsubw %xmm6, %xmm0, %xmm0 - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000012ec imull $100000000, %edx, %eax - 0x29, 0xc6, //0x000012f2 subl %eax, %esi - 0xc5, 0xf9, 0x6e, 0xf6, //0x000012f4 vmovd %esi, %xmm6 - 0xc5, 0xc9, 0xf4, 0xc9, //0x000012f8 vpmuludq %xmm1, %xmm6, %xmm1 - 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000012fc vpsrlq $45, %xmm1, %xmm1 - 0xc5, 0xf1, 0xf4, 0xdb, //0x00001301 vpmuludq %xmm3, %xmm1, %xmm3 - 0xc5, 0xc9, 0xfa, 0xdb, //0x00001305 vpsubd %xmm3, %xmm6, %xmm3 - 0xc5, 0xf1, 0x61, 0xcb, //0x00001309 vpunpcklwd %xmm3, %xmm1, %xmm1 - 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x0000130d vpsllq $2, %xmm1, %xmm1 - 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001312 vpshuflw $80, %xmm1, %xmm1 - 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x00001317 vpshufd $80, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xca, //0x0000131c vpmulhuw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf1, 0xe4, 0xcc, //0x00001320 vpmulhuw %xmm4, %xmm1, %xmm1 - 0xc5, 0xf1, 0xd5, 0xd5, //0x00001324 vpmullw %xmm5, %xmm1, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x00001328 vpsllq $16, %xmm2, %xmm2 - 0xc5, 0xf1, 0xf9, 0xca, //0x0000132d vpsubw %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0x67, 0xc1, //0x00001331 vpackuswb %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xfc, 0x05, 0x23, 0xfb, 0xff, 0xff, //0x00001335 vpaddb $-1245(%rip), %xmm0, %xmm0 /* LCPI4_4+0(%rip) */ - 0x89, 0xc8, //0x0000133d movl %ecx, %eax - 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x0000133f vmovdqu %xmm0, (%rdi,%rax) - 0x83, 0xc9, 0x10, //0x00001344 orl $16, %ecx - 0x89, 0xc8, //0x00001347 movl %ecx, %eax - 0x5d, //0x00001349 popq %rbp - 0xc3, //0x0000134a retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000134b .p2align 5, 0x00 - //0x00001360 LCPI5_0 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001360 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001370 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00001380 LCPI5_1 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001380 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001390 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000013a0 LCPI5_2 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000013c0 .p2align 4, 0x00 - //0x000013c0 LCPI5_3 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000013c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000013d0 LCPI5_4 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000013d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000013e0 LCPI5_5 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000013e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000013f0 .p2align 4, 0x90 - //0x000013f0 _quote - 0x55, //0x000013f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000013f1 movq %rsp, %rbp - 0x41, 0x57, //0x000013f4 pushq %r15 - 0x41, 0x56, //0x000013f6 pushq %r14 - 0x41, 0x55, //0x000013f8 pushq %r13 - 0x41, 0x54, //0x000013fa pushq %r12 - 0x53, //0x000013fc pushq %rbx - 0x50, //0x000013fd pushq %rax - 0x49, 0x89, 0xcf, //0x000013fe movq %rcx, %r15 - 0x49, 0x89, 0xf6, //0x00001401 movq %rsi, %r14 - 0x4c, 0x8b, 0x09, //0x00001404 movq (%rcx), %r9 - 0x41, 0xf6, 0xc0, 0x01, //0x00001407 testb $1, %r8b - 0x48, 0x8d, 0x05, 0x1e, 0xe0, 0x00, 0x00, //0x0000140b leaq $57374(%rip), %rax /* __SingleQuoteTab+0(%rip) */ - 0x4c, 0x8d, 0x05, 0x17, 0xf0, 0x00, 0x00, //0x00001412 leaq $61463(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xc0, //0x00001419 cmoveq %rax, %r8 - 0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x0000141d leaq (,%rsi,8), %rax - 0x49, 0x39, 0xc1, //0x00001425 cmpq %rax, %r9 - 0x0f, 0x8d, 0xd8, 0x06, 0x00, 0x00, //0x00001428 jge LBB5_86 - 0x49, 0x89, 0xd4, //0x0000142e movq %rdx, %r12 - 0x49, 0x89, 0xfb, //0x00001431 movq %rdi, %r11 - 0x4d, 0x85, 0xf6, //0x00001434 testq %r14, %r14 - 0x0f, 0x84, 0x12, 0x0a, 0x00, 0x00, //0x00001437 je LBB5_118 - 0xc5, 0xfd, 0x6f, 0x25, 0x1b, 0xff, 0xff, 0xff, //0x0000143d vmovdqa $-229(%rip), %ymm4 /* LCPI5_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x33, 0xff, 0xff, 0xff, //0x00001445 vmovdqa $-205(%rip), %ymm5 /* LCPI5_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x4b, 0xff, 0xff, 0xff, //0x0000144d vmovdqa $-181(%rip), %ymm6 /* LCPI5_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001455 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x49, 0x89, 0xfb, //0x0000145a movq %rdi, %r11 - 0x49, 0x89, 0xd4, //0x0000145d movq %rdx, %r12 - 0x48, 0x89, 0x55, 0xd0, //0x00001460 movq %rdx, $-48(%rbp) - //0x00001464 LBB5_3 - 0x49, 0x83, 0xfe, 0x1f, //0x00001464 cmpq $31, %r14 - 0x0f, 0x9f, 0xc1, //0x00001468 setg %cl - 0x4d, 0x89, 0xca, //0x0000146b movq %r9, %r10 - 0x4c, 0x89, 0xe6, //0x0000146e movq %r12, %rsi - 0x4c, 0x89, 0xf0, //0x00001471 movq %r14, %rax - 0x4d, 0x89, 0xdd, //0x00001474 movq %r11, %r13 - 0x49, 0x83, 0xf9, 0x20, //0x00001477 cmpq $32, %r9 - 0x0f, 0x8c, 0x8f, 0x00, 0x00, 0x00, //0x0000147b jl LBB5_9 - 0x49, 0x83, 0xfe, 0x20, //0x00001481 cmpq $32, %r14 - 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00001485 jl LBB5_9 - 0x4d, 0x89, 0xdd, //0x0000148b movq %r11, %r13 - 0x4c, 0x89, 0xf0, //0x0000148e movq %r14, %rax - 0x4c, 0x89, 0xe6, //0x00001491 movq %r12, %rsi - 0x4c, 0x89, 0xcb, //0x00001494 movq %r9, %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001497 .p2align 4, 0x90 - //0x000014a0 LBB5_6 - 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000014a0 vmovdqu (%r13), %ymm0 - 0xc5, 0xdd, 0x64, 0xc8, //0x000014a6 vpcmpgtb %ymm0, %ymm4, %ymm1 - 0xc5, 0xfd, 0x74, 0xd5, //0x000014aa vpcmpeqb %ymm5, %ymm0, %ymm2 - 0xc5, 0xfd, 0x74, 0xde, //0x000014ae vpcmpeqb %ymm6, %ymm0, %ymm3 - 0xc5, 0xe5, 0xeb, 0xd2, //0x000014b2 vpor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfe, 0x7f, 0x06, //0x000014b6 vmovdqu %ymm0, (%rsi) - 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x000014ba vpcmpgtb %ymm8, %ymm0, %ymm0 - 0xc5, 0xfd, 0xdb, 0xc1, //0x000014bf vpand %ymm1, %ymm0, %ymm0 - 0xc5, 0xed, 0xeb, 0xc0, //0x000014c3 vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc8, //0x000014c7 vpmovmskb %ymm0, %ecx - 0x85, 0xc9, //0x000014cb testl %ecx, %ecx - 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x000014cd jne LBB5_19 - 0x49, 0x83, 0xc5, 0x20, //0x000014d3 addq $32, %r13 - 0x48, 0x83, 0xc6, 0x20, //0x000014d7 addq $32, %rsi - 0x4c, 0x8d, 0x53, 0xe0, //0x000014db leaq $-32(%rbx), %r10 - 0x48, 0x83, 0xf8, 0x3f, //0x000014df cmpq $63, %rax - 0x0f, 0x9f, 0xc1, //0x000014e3 setg %cl - 0x48, 0x83, 0xf8, 0x40, //0x000014e6 cmpq $64, %rax - 0x48, 0x8d, 0x40, 0xe0, //0x000014ea leaq $-32(%rax), %rax - 0x0f, 0x8c, 0x1c, 0x00, 0x00, 0x00, //0x000014ee jl LBB5_9 - 0x48, 0x83, 0xfb, 0x3f, //0x000014f4 cmpq $63, %rbx - 0x4c, 0x89, 0xd3, //0x000014f8 movq %r10, %rbx - 0x0f, 0x8f, 0x9f, 0xff, 0xff, 0xff, //0x000014fb jg LBB5_6 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001501 .p2align 4, 0x90 - //0x00001510 LBB5_9 - 0x84, 0xc9, //0x00001510 testb %cl, %cl - 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x00001512 je LBB5_13 - 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00001518 vmovdqu (%r13), %ymm0 - 0xc5, 0xdd, 0x64, 0xc8, //0x0000151e vpcmpgtb %ymm0, %ymm4, %ymm1 - 0xc5, 0xfd, 0x74, 0xd5, //0x00001522 vpcmpeqb %ymm5, %ymm0, %ymm2 - 0xc5, 0xfd, 0x74, 0xde, //0x00001526 vpcmpeqb %ymm6, %ymm0, %ymm3 - 0xc5, 0xe5, 0xeb, 0xd2, //0x0000152a vpor %ymm2, %ymm3, %ymm2 - 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x0000152e vpcmpgtb %ymm8, %ymm0, %ymm0 - 0xc5, 0xfd, 0xdb, 0xc1, //0x00001533 vpand %ymm1, %ymm0, %ymm0 - 0xc5, 0xed, 0xeb, 0xc0, //0x00001537 vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc0, //0x0000153b vpmovmskb %ymm0, %eax - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000153f movabsq $4294967296, %rcx - 0x48, 0x09, 0xc8, //0x00001549 orq %rcx, %rax - 0x48, 0x0f, 0xbc, 0xc8, //0x0000154c bsfq %rax, %rcx - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001550 vmovdqu (%r13), %xmm0 - 0xc4, 0xe3, 0xf9, 0x16, 0xc0, 0x01, //0x00001556 vpextrq $1, %xmm0, %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x0000155c vmovq %xmm0, %rbx - 0x4c, 0x39, 0xd1, //0x00001561 cmpq %r10, %rcx - 0x0f, 0x8e, 0x6f, 0x01, 0x00, 0x00, //0x00001564 jle LBB5_20 - 0x49, 0x83, 0xfa, 0x10, //0x0000156a cmpq $16, %r10 - 0x0f, 0x82, 0xa5, 0x01, 0x00, 0x00, //0x0000156e jb LBB5_23 - 0x48, 0x89, 0x1e, //0x00001574 movq %rbx, (%rsi) - 0x48, 0x89, 0x46, 0x08, //0x00001577 movq %rax, $8(%rsi) - 0x49, 0x8d, 0x4d, 0x10, //0x0000157b leaq $16(%r13), %rcx - 0x48, 0x83, 0xc6, 0x10, //0x0000157f addq $16, %rsi - 0x49, 0x8d, 0x42, 0xf0, //0x00001583 leaq $-16(%r10), %rax - 0x48, 0x83, 0xf8, 0x08, //0x00001587 cmpq $8, %rax - 0x0f, 0x83, 0x98, 0x01, 0x00, 0x00, //0x0000158b jae LBB5_24 - 0xe9, 0xa5, 0x01, 0x00, 0x00, //0x00001591 jmp LBB5_25 - //0x00001596 LBB5_13 - 0x4c, 0x89, 0xfa, //0x00001596 movq %r15, %rdx - 0xc5, 0xf8, 0x77, //0x00001599 vzeroupper - 0x48, 0x83, 0xf8, 0x0f, //0x0000159c cmpq $15, %rax - 0x41, 0x0f, 0x9f, 0xc7, //0x000015a0 setg %r15b - 0x49, 0x83, 0xfa, 0x10, //0x000015a4 cmpq $16, %r10 - 0x0f, 0x8c, 0xf6, 0x01, 0x00, 0x00, //0x000015a8 jl LBB5_30 - 0x48, 0x83, 0xf8, 0x10, //0x000015ae cmpq $16, %rax - 0xc5, 0xf9, 0x6f, 0x3d, 0x06, 0xfe, 0xff, 0xff, //0x000015b2 vmovdqa $-506(%rip), %xmm7 /* LCPI5_3+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x0e, 0xfe, 0xff, 0xff, //0x000015ba vmovdqa $-498(%rip), %xmm9 /* LCPI5_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x16, 0xfe, 0xff, 0xff, //0x000015c2 vmovdqa $-490(%rip), %xmm10 /* LCPI5_5+0(%rip) */ - 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000015ca vpcmpeqd %xmm11, %xmm11, %xmm11 - 0x0f, 0x8c, 0x1a, 0x02, 0x00, 0x00, //0x000015cf jl LBB5_35 - 0xc5, 0xfd, 0x6f, 0x25, 0x83, 0xfd, 0xff, 0xff, //0x000015d5 vmovdqa $-637(%rip), %ymm4 /* LCPI5_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x9b, 0xfd, 0xff, 0xff, //0x000015dd vmovdqa $-613(%rip), %ymm5 /* LCPI5_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xb3, 0xfd, 0xff, 0xff, //0x000015e5 vmovdqa $-589(%rip), %ymm6 /* LCPI5_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000015ed vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015f2 .p2align 4, 0x90 - //0x00001600 LBB5_16 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001600 vmovdqu (%r13), %xmm0 - 0xc5, 0xc1, 0x64, 0xc8, //0x00001606 vpcmpgtb %xmm0, %xmm7, %xmm1 - 0xc5, 0xb1, 0x74, 0xd0, //0x0000160a vpcmpeqb %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd8, //0x0000160e vpcmpeqb %xmm0, %xmm10, %xmm3 - 0xc5, 0xe1, 0xeb, 0xd2, //0x00001612 vpor %xmm2, %xmm3, %xmm2 - 0xc5, 0xfa, 0x7f, 0x06, //0x00001616 vmovdqu %xmm0, (%rsi) - 0xc4, 0xc1, 0x79, 0x64, 0xc3, //0x0000161a vpcmpgtb %xmm11, %xmm0, %xmm0 - 0xc5, 0xf9, 0xdb, 0xc1, //0x0000161f vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xe9, 0xeb, 0xc0, //0x00001623 vpor %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00001627 vpmovmskb %xmm0, %ecx - 0x66, 0x85, 0xc9, //0x0000162b testw %cx, %cx - 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x0000162e jne LBB5_22 - 0x49, 0x83, 0xc5, 0x10, //0x00001634 addq $16, %r13 - 0x48, 0x83, 0xc6, 0x10, //0x00001638 addq $16, %rsi - 0x49, 0x8d, 0x4a, 0xf0, //0x0000163c leaq $-16(%r10), %rcx - 0x48, 0x83, 0xf8, 0x1f, //0x00001640 cmpq $31, %rax - 0x41, 0x0f, 0x9f, 0xc7, //0x00001644 setg %r15b - 0x48, 0x83, 0xf8, 0x20, //0x00001648 cmpq $32, %rax - 0x48, 0x8d, 0x40, 0xf0, //0x0000164c leaq $-16(%rax), %rax - 0x0f, 0x8c, 0x0d, 0x00, 0x00, 0x00, //0x00001650 jl LBB5_31 - 0x49, 0x83, 0xfa, 0x1f, //0x00001656 cmpq $31, %r10 - 0x49, 0x89, 0xca, //0x0000165a movq %rcx, %r10 - 0x0f, 0x8f, 0x9d, 0xff, 0xff, 0xff, //0x0000165d jg LBB5_16 - //0x00001663 LBB5_31 - 0x45, 0x84, 0xff, //0x00001663 testb %r15b, %r15b - 0x0f, 0x84, 0xac, 0x01, 0x00, 0x00, //0x00001666 je LBB5_36 - //0x0000166c LBB5_32 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000166c vmovdqu (%r13), %xmm0 - 0xc5, 0xc1, 0x64, 0xc8, //0x00001672 vpcmpgtb %xmm0, %xmm7, %xmm1 - 0xc5, 0xb1, 0x74, 0xd0, //0x00001676 vpcmpeqb %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd8, //0x0000167a vpcmpeqb %xmm0, %xmm10, %xmm3 - 0xc5, 0xe1, 0xeb, 0xd2, //0x0000167e vpor %xmm2, %xmm3, %xmm2 - 0xc4, 0xc1, 0x79, 0x64, 0xdb, //0x00001682 vpcmpgtb %xmm11, %xmm0, %xmm3 - 0xc5, 0xe1, 0xdb, 0xc9, //0x00001687 vpand %xmm1, %xmm3, %xmm1 - 0xc5, 0xe9, 0xeb, 0xc9, //0x0000168b vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xf9, 0xd7, 0xc1, //0x0000168f vpmovmskb %xmm1, %eax - 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00001693 orl $65536, %eax - 0x0f, 0xbc, 0xd8, //0x00001698 bsfl %eax, %ebx - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000169b vmovq %xmm0, %rax - 0x48, 0x39, 0xd9, //0x000016a0 cmpq %rbx, %rcx - 0x49, 0x89, 0xd7, //0x000016a3 movq %rdx, %r15 - 0x0f, 0x8d, 0x68, 0x02, 0x00, 0x00, //0x000016a6 jge LBB5_53 - 0x48, 0x83, 0xf9, 0x08, //0x000016ac cmpq $8, %rcx - 0x0f, 0x82, 0x83, 0x02, 0x00, 0x00, //0x000016b0 jb LBB5_56 - 0x48, 0x89, 0x06, //0x000016b6 movq %rax, (%rsi) - 0x49, 0x8d, 0x45, 0x08, //0x000016b9 leaq $8(%r13), %rax - 0x48, 0x83, 0xc6, 0x08, //0x000016bd addq $8, %rsi - 0x48, 0x8d, 0x59, 0xf8, //0x000016c1 leaq $-8(%rcx), %rbx - 0xe9, 0x75, 0x02, 0x00, 0x00, //0x000016c5 jmp LBB5_57 - //0x000016ca LBB5_19 - 0x4d, 0x29, 0xdd, //0x000016ca subq %r11, %r13 - 0x44, 0x0f, 0xbc, 0xd1, //0x000016cd bsfl %ecx, %r10d - 0x4d, 0x01, 0xea, //0x000016d1 addq %r13, %r10 - 0xe9, 0x14, 0x03, 0x00, 0x00, //0x000016d4 jmp LBB5_69 - //0x000016d9 LBB5_20 - 0x83, 0xf9, 0x10, //0x000016d9 cmpl $16, %ecx - 0x0f, 0x82, 0xaa, 0x01, 0x00, 0x00, //0x000016dc jb LBB5_42 - 0x48, 0x89, 0x1e, //0x000016e2 movq %rbx, (%rsi) - 0x48, 0x89, 0x46, 0x08, //0x000016e5 movq %rax, $8(%rsi) - 0x49, 0x8d, 0x5d, 0x10, //0x000016e9 leaq $16(%r13), %rbx - 0x48, 0x83, 0xc6, 0x10, //0x000016ed addq $16, %rsi - 0x48, 0x8d, 0x41, 0xf0, //0x000016f1 leaq $-16(%rcx), %rax - 0x48, 0x83, 0xf8, 0x08, //0x000016f5 cmpq $8, %rax - 0x0f, 0x83, 0x9d, 0x01, 0x00, 0x00, //0x000016f9 jae LBB5_43 - 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x000016ff jmp LBB5_44 - //0x00001704 LBB5_22 - 0x0f, 0xb7, 0xc1, //0x00001704 movzwl %cx, %eax - 0x4d, 0x29, 0xdd, //0x00001707 subq %r11, %r13 - 0x44, 0x0f, 0xbc, 0xd0, //0x0000170a bsfl %eax, %r10d - 0x4d, 0x01, 0xea, //0x0000170e addq %r13, %r10 - 0x49, 0x89, 0xd7, //0x00001711 movq %rdx, %r15 - 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x00001714 jmp LBB5_69 - //0x00001719 LBB5_23 - 0x4c, 0x89, 0xe9, //0x00001719 movq %r13, %rcx - 0x4c, 0x89, 0xd0, //0x0000171c movq %r10, %rax - 0x48, 0x83, 0xf8, 0x08, //0x0000171f cmpq $8, %rax - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001723 jb LBB5_25 - //0x00001729 LBB5_24 - 0x48, 0x8b, 0x11, //0x00001729 movq (%rcx), %rdx - 0x48, 0x89, 0x16, //0x0000172c movq %rdx, (%rsi) - 0x48, 0x83, 0xc1, 0x08, //0x0000172f addq $8, %rcx - 0x48, 0x83, 0xc6, 0x08, //0x00001733 addq $8, %rsi - 0x48, 0x83, 0xc0, 0xf8, //0x00001737 addq $-8, %rax - //0x0000173b LBB5_25 - 0x48, 0x83, 0xf8, 0x04, //0x0000173b cmpq $4, %rax - 0x0f, 0x8c, 0x35, 0x00, 0x00, 0x00, //0x0000173f jl LBB5_26 - 0x8b, 0x11, //0x00001745 movl (%rcx), %edx - 0x89, 0x16, //0x00001747 movl %edx, (%rsi) - 0x48, 0x83, 0xc1, 0x04, //0x00001749 addq $4, %rcx - 0x48, 0x83, 0xc6, 0x04, //0x0000174d addq $4, %rsi - 0x48, 0x83, 0xc0, 0xfc, //0x00001751 addq $-4, %rax - 0x48, 0x83, 0xf8, 0x02, //0x00001755 cmpq $2, %rax - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00001759 jae LBB5_50 - //0x0000175f LBB5_27 - 0x48, 0x85, 0xc0, //0x0000175f testq %rax, %rax - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001762 je LBB5_29 - //0x00001768 LBB5_28 - 0x8a, 0x01, //0x00001768 movb (%rcx), %al - 0x88, 0x06, //0x0000176a movb %al, (%rsi) - //0x0000176c LBB5_29 - 0x4d, 0x29, 0xda, //0x0000176c subq %r11, %r10 - 0x4d, 0x01, 0xea, //0x0000176f addq %r13, %r10 - 0x49, 0xf7, 0xd2, //0x00001772 notq %r10 - 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00001775 jmp LBB5_69 - //0x0000177a LBB5_26 - 0x48, 0x83, 0xf8, 0x02, //0x0000177a cmpq $2, %rax - 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x0000177e jb LBB5_27 - //0x00001784 LBB5_50 - 0x0f, 0xb7, 0x11, //0x00001784 movzwl (%rcx), %edx - 0x66, 0x89, 0x16, //0x00001787 movw %dx, (%rsi) - 0x48, 0x83, 0xc1, 0x02, //0x0000178a addq $2, %rcx - 0x48, 0x83, 0xc6, 0x02, //0x0000178e addq $2, %rsi - 0x48, 0x83, 0xc0, 0xfe, //0x00001792 addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00001796 testq %rax, %rax - 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001799 jne LBB5_28 - 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x0000179f jmp LBB5_29 - //0x000017a4 LBB5_30 - 0x4c, 0x89, 0xd1, //0x000017a4 movq %r10, %rcx - 0xc5, 0xfd, 0x6f, 0x25, 0xb1, 0xfb, 0xff, 0xff, //0x000017a7 vmovdqa $-1103(%rip), %ymm4 /* LCPI5_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0xc9, 0xfb, 0xff, 0xff, //0x000017af vmovdqa $-1079(%rip), %ymm5 /* LCPI5_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xe1, 0xfb, 0xff, 0xff, //0x000017b7 vmovdqa $-1055(%rip), %ymm6 /* LCPI5_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000017bf vpcmpeqd %ymm8, %ymm8, %ymm8 - 0xc5, 0xf9, 0x6f, 0x3d, 0xf4, 0xfb, 0xff, 0xff, //0x000017c4 vmovdqa $-1036(%rip), %xmm7 /* LCPI5_3+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0xfc, 0xfb, 0xff, 0xff, //0x000017cc vmovdqa $-1028(%rip), %xmm9 /* LCPI5_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x04, 0xfc, 0xff, 0xff, //0x000017d4 vmovdqa $-1020(%rip), %xmm10 /* LCPI5_5+0(%rip) */ - 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000017dc vpcmpeqd %xmm11, %xmm11, %xmm11 - 0x45, 0x84, 0xff, //0x000017e1 testb %r15b, %r15b - 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x000017e4 je LBB5_36 - 0xe9, 0x7d, 0xfe, 0xff, 0xff, //0x000017ea jmp LBB5_32 - //0x000017ef LBB5_35 - 0x4c, 0x89, 0xd1, //0x000017ef movq %r10, %rcx - 0xc5, 0xfd, 0x6f, 0x25, 0x66, 0xfb, 0xff, 0xff, //0x000017f2 vmovdqa $-1178(%rip), %ymm4 /* LCPI5_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x7e, 0xfb, 0xff, 0xff, //0x000017fa vmovdqa $-1154(%rip), %ymm5 /* LCPI5_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x96, 0xfb, 0xff, 0xff, //0x00001802 vmovdqa $-1130(%rip), %ymm6 /* LCPI5_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000180a vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x45, 0x84, 0xff, //0x0000180f testb %r15b, %r15b - 0x0f, 0x85, 0x54, 0xfe, 0xff, 0xff, //0x00001812 jne LBB5_32 - //0x00001818 LBB5_36 - 0x48, 0x85, 0xc9, //0x00001818 testq %rcx, %rcx - 0x49, 0x89, 0xd7, //0x0000181b movq %rdx, %r15 - 0x4c, 0x8d, 0x15, 0x0b, 0xdc, 0x00, 0x00, //0x0000181e leaq $56331(%rip), %r10 /* __SingleQuoteTab+0(%rip) */ - 0x0f, 0x8e, 0x50, 0x00, 0x00, 0x00, //0x00001825 jle LBB5_41 - 0x48, 0x85, 0xc0, //0x0000182b testq %rax, %rax - 0x0f, 0x8e, 0x47, 0x00, 0x00, 0x00, //0x0000182e jle LBB5_41 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001834 .p2align 4, 0x90 - //0x00001840 LBB5_38 - 0x41, 0x0f, 0xb6, 0x5d, 0x00, //0x00001840 movzbl (%r13), %ebx - 0x48, 0x89, 0xda, //0x00001845 movq %rbx, %rdx - 0x48, 0xc1, 0xe2, 0x04, //0x00001848 shlq $4, %rdx - 0x4a, 0x83, 0x3c, 0x12, 0x00, //0x0000184c cmpq $0, (%rdx,%r10) - 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, //0x00001851 jne LBB5_55 - 0x49, 0xff, 0xc5, //0x00001857 incq %r13 - 0x88, 0x1e, //0x0000185a movb %bl, (%rsi) - 0x48, 0x83, 0xf8, 0x02, //0x0000185c cmpq $2, %rax - 0x48, 0x8d, 0x40, 0xff, //0x00001860 leaq $-1(%rax), %rax - 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00001864 jl LBB5_41 - 0x48, 0xff, 0xc6, //0x0000186a incq %rsi - 0x48, 0x83, 0xf9, 0x01, //0x0000186d cmpq $1, %rcx - 0x48, 0x8d, 0x49, 0xff, //0x00001871 leaq $-1(%rcx), %rcx - 0x0f, 0x8f, 0xc5, 0xff, 0xff, 0xff, //0x00001875 jg LBB5_38 - //0x0000187b LBB5_41 - 0x4d, 0x29, 0xdd, //0x0000187b subq %r11, %r13 - 0x48, 0xf7, 0xd8, //0x0000187e negq %rax - 0x4d, 0x19, 0xd2, //0x00001881 sbbq %r10, %r10 - 0x4d, 0x31, 0xea, //0x00001884 xorq %r13, %r10 - 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00001887 jmp LBB5_69 - //0x0000188c LBB5_42 - 0x4c, 0x89, 0xeb, //0x0000188c movq %r13, %rbx - 0x48, 0x89, 0xc8, //0x0000188f movq %rcx, %rax - 0x48, 0x83, 0xf8, 0x08, //0x00001892 cmpq $8, %rax - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001896 jb LBB5_44 - //0x0000189c LBB5_43 - 0x48, 0x8b, 0x13, //0x0000189c movq (%rbx), %rdx - 0x48, 0x89, 0x16, //0x0000189f movq %rdx, (%rsi) - 0x48, 0x83, 0xc3, 0x08, //0x000018a2 addq $8, %rbx - 0x48, 0x83, 0xc6, 0x08, //0x000018a6 addq $8, %rsi - 0x48, 0x83, 0xc0, 0xf8, //0x000018aa addq $-8, %rax - //0x000018ae LBB5_44 - 0x48, 0x83, 0xf8, 0x04, //0x000018ae cmpq $4, %rax - 0x0f, 0x8c, 0x32, 0x00, 0x00, 0x00, //0x000018b2 jl LBB5_45 - 0x8b, 0x13, //0x000018b8 movl (%rbx), %edx - 0x89, 0x16, //0x000018ba movl %edx, (%rsi) - 0x48, 0x83, 0xc3, 0x04, //0x000018bc addq $4, %rbx - 0x48, 0x83, 0xc6, 0x04, //0x000018c0 addq $4, %rsi - 0x48, 0x83, 0xc0, 0xfc, //0x000018c4 addq $-4, %rax - 0x48, 0x83, 0xf8, 0x02, //0x000018c8 cmpq $2, %rax - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000018cc jae LBB5_52 - //0x000018d2 LBB5_46 - 0x48, 0x85, 0xc0, //0x000018d2 testq %rax, %rax - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000018d5 je LBB5_48 - //0x000018db LBB5_47 - 0x8a, 0x03, //0x000018db movb (%rbx), %al - 0x88, 0x06, //0x000018dd movb %al, (%rsi) - //0x000018df LBB5_48 - 0x4d, 0x29, 0xdd, //0x000018df subq %r11, %r13 - 0x49, 0x01, 0xcd, //0x000018e2 addq %rcx, %r13 - 0xe9, 0x00, 0x01, 0x00, 0x00, //0x000018e5 jmp LBB5_68 - //0x000018ea LBB5_45 - 0x48, 0x83, 0xf8, 0x02, //0x000018ea cmpq $2, %rax - 0x0f, 0x82, 0xde, 0xff, 0xff, 0xff, //0x000018ee jb LBB5_46 - //0x000018f4 LBB5_52 - 0x0f, 0xb7, 0x13, //0x000018f4 movzwl (%rbx), %edx - 0x66, 0x89, 0x16, //0x000018f7 movw %dx, (%rsi) - 0x48, 0x83, 0xc3, 0x02, //0x000018fa addq $2, %rbx - 0x48, 0x83, 0xc6, 0x02, //0x000018fe addq $2, %rsi - 0x48, 0x83, 0xc0, 0xfe, //0x00001902 addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00001906 testq %rax, %rax - 0x0f, 0x85, 0xcc, 0xff, 0xff, 0xff, //0x00001909 jne LBB5_47 - 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x0000190f jmp LBB5_48 - //0x00001914 LBB5_53 - 0x83, 0xfb, 0x08, //0x00001914 cmpl $8, %ebx - 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x00001917 jb LBB5_62 - 0x48, 0x89, 0x06, //0x0000191d movq %rax, (%rsi) - 0x4d, 0x8d, 0x55, 0x08, //0x00001920 leaq $8(%r13), %r10 - 0x48, 0x83, 0xc6, 0x08, //0x00001924 addq $8, %rsi - 0x48, 0x8d, 0x43, 0xf8, //0x00001928 leaq $-8(%rbx), %rax - 0xe9, 0x80, 0x00, 0x00, 0x00, //0x0000192c jmp LBB5_63 - //0x00001931 LBB5_55 - 0x4d, 0x29, 0xdd, //0x00001931 subq %r11, %r13 - 0xe9, 0xb1, 0x00, 0x00, 0x00, //0x00001934 jmp LBB5_68 - //0x00001939 LBB5_56 - 0x4c, 0x89, 0xe8, //0x00001939 movq %r13, %rax - 0x48, 0x89, 0xcb, //0x0000193c movq %rcx, %rbx - //0x0000193f LBB5_57 - 0x48, 0x83, 0xfb, 0x04, //0x0000193f cmpq $4, %rbx - 0x0f, 0x8c, 0x38, 0x00, 0x00, 0x00, //0x00001943 jl LBB5_58 - 0x8b, 0x10, //0x00001949 movl (%rax), %edx - 0x89, 0x16, //0x0000194b movl %edx, (%rsi) - 0x48, 0x83, 0xc0, 0x04, //0x0000194d addq $4, %rax - 0x48, 0x83, 0xc6, 0x04, //0x00001951 addq $4, %rsi - 0x48, 0x83, 0xc3, 0xfc, //0x00001955 addq $-4, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00001959 cmpq $2, %rbx - 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x0000195d jae LBB5_83 - //0x00001963 LBB5_59 - 0x48, 0x85, 0xdb, //0x00001963 testq %rbx, %rbx - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001966 je LBB5_61 - //0x0000196c LBB5_60 - 0x8a, 0x00, //0x0000196c movb (%rax), %al - 0x88, 0x06, //0x0000196e movb %al, (%rsi) - //0x00001970 LBB5_61 - 0x4c, 0x29, 0xd9, //0x00001970 subq %r11, %rcx - 0x4c, 0x01, 0xe9, //0x00001973 addq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00001976 notq %rcx - 0x49, 0x89, 0xca, //0x00001979 movq %rcx, %r10 - 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x0000197c jmp LBB5_69 - //0x00001981 LBB5_58 - 0x48, 0x83, 0xfb, 0x02, //0x00001981 cmpq $2, %rbx - 0x0f, 0x82, 0xd8, 0xff, 0xff, 0xff, //0x00001985 jb LBB5_59 - //0x0000198b LBB5_83 - 0x0f, 0xb7, 0x10, //0x0000198b movzwl (%rax), %edx - 0x66, 0x89, 0x16, //0x0000198e movw %dx, (%rsi) - 0x48, 0x83, 0xc0, 0x02, //0x00001991 addq $2, %rax - 0x48, 0x83, 0xc6, 0x02, //0x00001995 addq $2, %rsi - 0x48, 0x83, 0xc3, 0xfe, //0x00001999 addq $-2, %rbx - 0x48, 0x85, 0xdb, //0x0000199d testq %rbx, %rbx - 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x000019a0 jne LBB5_60 - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x000019a6 jmp LBB5_61 - //0x000019ab LBB5_62 - 0x4d, 0x89, 0xea, //0x000019ab movq %r13, %r10 - 0x48, 0x89, 0xd8, //0x000019ae movq %rbx, %rax - //0x000019b1 LBB5_63 - 0x48, 0x83, 0xf8, 0x04, //0x000019b1 cmpq $4, %rax - 0x0f, 0x8c, 0x20, 0x01, 0x00, 0x00, //0x000019b5 jl LBB5_64 - 0x41, 0x8b, 0x0a, //0x000019bb movl (%r10), %ecx - 0x89, 0x0e, //0x000019be movl %ecx, (%rsi) - 0x49, 0x83, 0xc2, 0x04, //0x000019c0 addq $4, %r10 - 0x48, 0x83, 0xc6, 0x04, //0x000019c4 addq $4, %rsi - 0x48, 0x83, 0xc0, 0xfc, //0x000019c8 addq $-4, %rax - 0x48, 0x83, 0xf8, 0x02, //0x000019cc cmpq $2, %rax - 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x000019d0 jae LBB5_85 - //0x000019d6 LBB5_65 - 0x48, 0x85, 0xc0, //0x000019d6 testq %rax, %rax - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000019d9 je LBB5_67 - //0x000019df LBB5_66 - 0x41, 0x8a, 0x02, //0x000019df movb (%r10), %al - 0x88, 0x06, //0x000019e2 movb %al, (%rsi) - //0x000019e4 LBB5_67 - 0x4d, 0x29, 0xdd, //0x000019e4 subq %r11, %r13 - 0x49, 0x01, 0xdd, //0x000019e7 addq %rbx, %r13 - //0x000019ea LBB5_68 - 0x4d, 0x89, 0xea, //0x000019ea movq %r13, %r10 - //0x000019ed LBB5_69 - 0x4d, 0x85, 0xd2, //0x000019ed testq %r10, %r10 - 0x48, 0x8b, 0x55, 0xd0, //0x000019f0 movq $-48(%rbp), %rdx - 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000019f4 movabsq $12884901889, %r13 - 0x0f, 0x88, 0x7d, 0x04, 0x00, 0x00, //0x000019fe js LBB5_122 - 0x4d, 0x01, 0xd3, //0x00001a04 addq %r10, %r11 - 0x4d, 0x01, 0xd4, //0x00001a07 addq %r10, %r12 - 0x4d, 0x39, 0xd6, //0x00001a0a cmpq %r10, %r14 - 0x0f, 0x84, 0x3c, 0x04, 0x00, 0x00, //0x00001a0d je LBB5_118 - 0x4d, 0x29, 0xd1, //0x00001a13 subq %r10, %r9 - 0x4d, 0x29, 0xf2, //0x00001a16 subq %r14, %r10 - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00001a19 jmp LBB5_73 - 0x90, 0x90, //0x00001a1e .p2align 4, 0x90 - //0x00001a20 LBB5_72 - 0x49, 0xff, 0xc3, //0x00001a20 incq %r11 - 0x49, 0x01, 0xc4, //0x00001a23 addq %rax, %r12 - 0x49, 0xff, 0xc2, //0x00001a26 incq %r10 - 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x00001a29 je LBB5_118 - //0x00001a2f LBB5_73 - 0x41, 0x0f, 0xb6, 0x33, //0x00001a2f movzbl (%r11), %esi - 0x48, 0xc1, 0xe6, 0x04, //0x00001a33 shlq $4, %rsi - 0x49, 0x8b, 0x1c, 0x30, //0x00001a37 movq (%r8,%rsi), %rbx - 0x85, 0xdb, //0x00001a3b testl %ebx, %ebx - 0x0f, 0x84, 0x84, 0x00, 0x00, 0x00, //0x00001a3d je LBB5_81 - 0x48, 0x63, 0xc3, //0x00001a43 movslq %ebx, %rax - 0x49, 0x29, 0xc1, //0x00001a46 subq %rax, %r9 - 0x0f, 0x8c, 0x0e, 0x04, 0x00, 0x00, //0x00001a49 jl LBB5_119 - 0x48, 0xc1, 0xe3, 0x20, //0x00001a4f shlq $32, %rbx - 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x00001a53 leaq $8(%r8,%rsi), %rcx - 0x4c, 0x39, 0xeb, //0x00001a58 cmpq %r13, %rbx - 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x00001a5b jl LBB5_77 - 0x8b, 0x09, //0x00001a61 movl (%rcx), %ecx - 0x41, 0x89, 0x0c, 0x24, //0x00001a63 movl %ecx, (%r12) - 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00001a67 leaq $12(%r8,%rsi), %rcx - 0x4d, 0x8d, 0x74, 0x24, 0x04, //0x00001a6c leaq $4(%r12), %r14 - 0x48, 0x8d, 0x58, 0xfc, //0x00001a71 leaq $-4(%rax), %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00001a75 cmpq $2, %rbx - 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x00001a79 jae LBB5_78 - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00001a7f jmp LBB5_79 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a84 .p2align 4, 0x90 - //0x00001a90 LBB5_77 - 0x4d, 0x89, 0xe6, //0x00001a90 movq %r12, %r14 - 0x48, 0x89, 0xc3, //0x00001a93 movq %rax, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00001a96 cmpq $2, %rbx - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001a9a jb LBB5_79 - //0x00001aa0 LBB5_78 - 0x0f, 0xb7, 0x31, //0x00001aa0 movzwl (%rcx), %esi - 0x66, 0x41, 0x89, 0x36, //0x00001aa3 movw %si, (%r14) - 0x48, 0x83, 0xc1, 0x02, //0x00001aa7 addq $2, %rcx - 0x49, 0x83, 0xc6, 0x02, //0x00001aab addq $2, %r14 - 0x48, 0x83, 0xc3, 0xfe, //0x00001aaf addq $-2, %rbx - //0x00001ab3 LBB5_79 - 0x48, 0x85, 0xdb, //0x00001ab3 testq %rbx, %rbx - 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x00001ab6 je LBB5_72 - 0x0f, 0xb6, 0x09, //0x00001abc movzbl (%rcx), %ecx - 0x41, 0x88, 0x0e, //0x00001abf movb %cl, (%r14) - 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00001ac2 jmp LBB5_72 - //0x00001ac7 LBB5_81 - 0x4d, 0x89, 0xd6, //0x00001ac7 movq %r10, %r14 - 0x49, 0xf7, 0xde, //0x00001aca negq %r14 - 0x4d, 0x85, 0xd2, //0x00001acd testq %r10, %r10 - 0x0f, 0x85, 0x8e, 0xf9, 0xff, 0xff, //0x00001ad0 jne LBB5_3 - 0xe9, 0x74, 0x03, 0x00, 0x00, //0x00001ad6 jmp LBB5_118 - //0x00001adb LBB5_64 - 0x48, 0x83, 0xf8, 0x02, //0x00001adb cmpq $2, %rax - 0x0f, 0x82, 0xf1, 0xfe, 0xff, 0xff, //0x00001adf jb LBB5_65 - //0x00001ae5 LBB5_85 - 0x41, 0x0f, 0xb7, 0x0a, //0x00001ae5 movzwl (%r10), %ecx - 0x66, 0x89, 0x0e, //0x00001ae9 movw %cx, (%rsi) - 0x49, 0x83, 0xc2, 0x02, //0x00001aec addq $2, %r10 - 0x48, 0x83, 0xc6, 0x02, //0x00001af0 addq $2, %rsi - 0x48, 0x83, 0xc0, 0xfe, //0x00001af4 addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00001af8 testq %rax, %rax - 0x0f, 0x85, 0xde, 0xfe, 0xff, 0xff, //0x00001afb jne LBB5_66 - 0xe9, 0xde, 0xfe, 0xff, 0xff, //0x00001b01 jmp LBB5_67 - //0x00001b06 LBB5_86 - 0x4c, 0x8d, 0x0d, 0x23, 0xf9, 0x00, 0x00, //0x00001b06 leaq $63779(%rip), %r9 /* __EscTab+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0x4b, 0xf8, 0xff, 0xff, //0x00001b0d vmovdqa $-1973(%rip), %ymm10 /* LCPI5_0+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0x63, 0xf8, 0xff, 0xff, //0x00001b15 vmovdqa $-1949(%rip), %ymm9 /* LCPI5_1+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x1d, 0x7b, 0xf8, 0xff, 0xff, //0x00001b1d vmovdqa $-1925(%rip), %ymm11 /* LCPI5_2+0(%rip) */ - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001b25 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0x48, 0x89, 0xd3, //0x00001b2a movq %rdx, %rbx - 0x4d, 0x89, 0xf2, //0x00001b2d movq %r14, %r10 - //0x00001b30 LBB5_87 - 0x49, 0x83, 0xfa, 0x10, //0x00001b30 cmpq $16, %r10 - 0x0f, 0x8d, 0x26, 0x01, 0x00, 0x00, //0x00001b34 jge LBB5_88 - //0x00001b3a LBB5_93 - 0x49, 0x83, 0xfa, 0x08, //0x00001b3a cmpq $8, %r10 - 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00001b3e jl LBB5_97 - //0x00001b44 LBB5_94 - 0x0f, 0xb6, 0x07, //0x00001b44 movzbl (%rdi), %eax - 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b47 movzbl (%rax,%r9), %eax - 0x0f, 0xb6, 0x4f, 0x01, //0x00001b4c movzbl $1(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001b50 movzbl (%rcx,%r9), %ecx - 0x01, 0xc9, //0x00001b55 addl %ecx, %ecx - 0x09, 0xc1, //0x00001b57 orl %eax, %ecx - 0x0f, 0xb6, 0x47, 0x02, //0x00001b59 movzbl $2(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001b5d movzbl (%rax,%r9), %esi - 0xc1, 0xe6, 0x02, //0x00001b62 shll $2, %esi - 0x0f, 0xb6, 0x47, 0x03, //0x00001b65 movzbl $3(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b69 movzbl (%rax,%r9), %eax - 0xc1, 0xe0, 0x03, //0x00001b6e shll $3, %eax - 0x09, 0xf0, //0x00001b71 orl %esi, %eax - 0x09, 0xc8, //0x00001b73 orl %ecx, %eax - 0x48, 0x8b, 0x0f, //0x00001b75 movq (%rdi), %rcx - 0x48, 0x89, 0x0b, //0x00001b78 movq %rcx, (%rbx) - 0x84, 0xc0, //0x00001b7b testb %al, %al - 0x0f, 0x85, 0x9a, 0x02, 0x00, 0x00, //0x00001b7d jne LBB5_115 - 0x0f, 0xb6, 0x47, 0x04, //0x00001b83 movzbl $4(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001b87 movzbl (%rax,%r9), %eax - 0x0f, 0xb6, 0x4f, 0x05, //0x00001b8c movzbl $5(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001b90 movzbl (%rcx,%r9), %ecx - 0x01, 0xc9, //0x00001b95 addl %ecx, %ecx - 0x09, 0xc1, //0x00001b97 orl %eax, %ecx - 0x0f, 0xb6, 0x47, 0x06, //0x00001b99 movzbl $6(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001b9d movzbl (%rax,%r9), %esi - 0xc1, 0xe6, 0x02, //0x00001ba2 shll $2, %esi - 0x0f, 0xb6, 0x47, 0x07, //0x00001ba5 movzbl $7(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001ba9 movzbl (%rax,%r9), %eax - 0xc1, 0xe0, 0x03, //0x00001bae shll $3, %eax - 0x09, 0xf0, //0x00001bb1 orl %esi, %eax - 0x09, 0xc8, //0x00001bb3 orl %ecx, %eax - 0x84, 0xc0, //0x00001bb5 testb %al, %al - 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00001bb7 jne LBB5_116 - 0x48, 0x83, 0xc3, 0x08, //0x00001bbd addq $8, %rbx - 0x48, 0x83, 0xc7, 0x08, //0x00001bc1 addq $8, %rdi - 0x49, 0x83, 0xc2, 0xf8, //0x00001bc5 addq $-8, %r10 - //0x00001bc9 LBB5_97 - 0x49, 0x83, 0xfa, 0x04, //0x00001bc9 cmpq $4, %r10 - 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001bcd jl LBB5_100 - 0x0f, 0xb6, 0x07, //0x00001bd3 movzbl (%rdi), %eax - 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001bd6 movzbl (%rax,%r9), %eax - 0x0f, 0xb6, 0x4f, 0x01, //0x00001bdb movzbl $1(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00001bdf movzbl (%rcx,%r9), %ecx - 0x01, 0xc9, //0x00001be4 addl %ecx, %ecx - 0x09, 0xc1, //0x00001be6 orl %eax, %ecx - 0x0f, 0xb6, 0x47, 0x02, //0x00001be8 movzbl $2(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x00001bec movzbl (%rax,%r9), %esi - 0xc1, 0xe6, 0x02, //0x00001bf1 shll $2, %esi - 0x0f, 0xb6, 0x47, 0x03, //0x00001bf4 movzbl $3(%rdi), %eax - 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00001bf8 movzbl (%rax,%r9), %eax - 0xc1, 0xe0, 0x03, //0x00001bfd shll $3, %eax - 0x09, 0xf0, //0x00001c00 orl %esi, %eax - 0x09, 0xc8, //0x00001c02 orl %ecx, %eax - 0x8b, 0x0f, //0x00001c04 movl (%rdi), %ecx - 0x89, 0x0b, //0x00001c06 movl %ecx, (%rbx) - 0x84, 0xc0, //0x00001c08 testb %al, %al - 0x0f, 0x85, 0x0d, 0x02, 0x00, 0x00, //0x00001c0a jne LBB5_115 - 0x48, 0x83, 0xc3, 0x04, //0x00001c10 addq $4, %rbx - 0x48, 0x83, 0xc7, 0x04, //0x00001c14 addq $4, %rdi - 0x49, 0x83, 0xc2, 0xfc, //0x00001c18 addq $-4, %r10 - //0x00001c1c LBB5_100 - 0x4d, 0x85, 0xd2, //0x00001c1c testq %r10, %r10 - 0x0f, 0x8e, 0x1f, 0x02, 0x00, 0x00, //0x00001c1f jle LBB5_117 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c25 .p2align 4, 0x90 - //0x00001c30 LBB5_101 - 0x0f, 0xb6, 0x07, //0x00001c30 movzbl (%rdi), %eax - 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001c33 cmpb $0, (%rax,%r9) - 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x00001c38 jne LBB5_112 - 0x48, 0xff, 0xc7, //0x00001c3e incq %rdi - 0x88, 0x03, //0x00001c41 movb %al, (%rbx) - 0x48, 0xff, 0xc3, //0x00001c43 incq %rbx - 0x49, 0x83, 0xfa, 0x01, //0x00001c46 cmpq $1, %r10 - 0x4d, 0x8d, 0x52, 0xff, //0x00001c4a leaq $-1(%r10), %r10 - 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x00001c4e jg LBB5_101 - 0xe9, 0xeb, 0x01, 0x00, 0x00, //0x00001c54 jmp LBB5_117 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c59 .p2align 4, 0x90 - //0x00001c60 LBB5_88 - 0x49, 0x83, 0xfa, 0x20, //0x00001c60 cmpq $32, %r10 - 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00001c64 jl LBB5_103 - 0x49, 0x8d, 0x4a, 0x20, //0x00001c6a leaq $32(%r10), %rcx - 0x31, 0xc0, //0x00001c6e xorl %eax, %eax - //0x00001c70 .p2align 4, 0x90 - //0x00001c70 LBB5_90 - 0xc5, 0xfe, 0x6f, 0x04, 0x07, //0x00001c70 vmovdqu (%rdi,%rax), %ymm0 - 0xc5, 0xad, 0x64, 0xc8, //0x00001c75 vpcmpgtb %ymm0, %ymm10, %ymm1 - 0xc5, 0xb5, 0x74, 0xd0, //0x00001c79 vpcmpeqb %ymm0, %ymm9, %ymm2 - 0xc5, 0xa5, 0x74, 0xd8, //0x00001c7d vpcmpeqb %ymm0, %ymm11, %ymm3 - 0xc5, 0xe5, 0xeb, 0xd2, //0x00001c81 vpor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfe, 0x7f, 0x04, 0x03, //0x00001c85 vmovdqu %ymm0, (%rbx,%rax) - 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001c8a vpcmpgtb %ymm8, %ymm0, %ymm0 - 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c8f vpand %ymm1, %ymm0, %ymm0 - 0xc5, 0xed, 0xeb, 0xc0, //0x00001c93 vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd7, 0xf0, //0x00001c97 vpmovmskb %ymm0, %esi - 0x85, 0xf6, //0x00001c9b testl %esi, %esi - 0x0f, 0x85, 0x1a, 0x01, 0x00, 0x00, //0x00001c9d jne LBB5_109 - 0x48, 0x83, 0xc0, 0x20, //0x00001ca3 addq $32, %rax - 0x48, 0x83, 0xc1, 0xe0, //0x00001ca7 addq $-32, %rcx - 0x48, 0x83, 0xf9, 0x3f, //0x00001cab cmpq $63, %rcx - 0x0f, 0x8f, 0xbb, 0xff, 0xff, 0xff, //0x00001caf jg LBB5_90 - 0xc5, 0xf8, 0x77, //0x00001cb5 vzeroupper - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001cb8 vpcmpeqd %ymm8, %ymm8, %ymm8 - 0xc5, 0x7d, 0x6f, 0x1d, 0xdb, 0xf6, 0xff, 0xff, //0x00001cbd vmovdqa $-2341(%rip), %ymm11 /* LCPI5_2+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0xb3, 0xf6, 0xff, 0xff, //0x00001cc5 vmovdqa $-2381(%rip), %ymm9 /* LCPI5_1+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0x8b, 0xf6, 0xff, 0xff, //0x00001ccd vmovdqa $-2421(%rip), %ymm10 /* LCPI5_0+0(%rip) */ - 0x48, 0x01, 0xc7, //0x00001cd5 addq %rax, %rdi - 0x49, 0x29, 0xc2, //0x00001cd8 subq %rax, %r10 - 0x48, 0x01, 0xc3, //0x00001cdb addq %rax, %rbx - 0x48, 0x83, 0xf9, 0x30, //0x00001cde cmpq $48, %rcx - 0xc5, 0xf9, 0x6f, 0x3d, 0xd6, 0xf6, 0xff, 0xff, //0x00001ce2 vmovdqa $-2346(%rip), %xmm7 /* LCPI5_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0xde, 0xf6, 0xff, 0xff, //0x00001cea vmovdqa $-2338(%rip), %xmm5 /* LCPI5_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0xe6, 0xf6, 0xff, 0xff, //0x00001cf2 vmovdqa $-2330(%rip), %xmm4 /* LCPI5_5+0(%rip) */ - 0xc5, 0xc9, 0x76, 0xf6, //0x00001cfa vpcmpeqd %xmm6, %xmm6, %xmm6 - 0x0f, 0x8d, 0x41, 0x00, 0x00, 0x00, //0x00001cfe jge LBB5_104 - 0xe9, 0x31, 0xfe, 0xff, 0xff, //0x00001d04 jmp LBB5_93 - //0x00001d09 LBB5_103 - 0xc5, 0xf8, 0x77, //0x00001d09 vzeroupper - 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001d0c vpcmpeqd %ymm8, %ymm8, %ymm8 - 0xc5, 0x7d, 0x6f, 0x1d, 0x87, 0xf6, 0xff, 0xff, //0x00001d11 vmovdqa $-2425(%rip), %ymm11 /* LCPI5_2+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0x5f, 0xf6, 0xff, 0xff, //0x00001d19 vmovdqa $-2465(%rip), %ymm9 /* LCPI5_1+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0x37, 0xf6, 0xff, 0xff, //0x00001d21 vmovdqa $-2505(%rip), %ymm10 /* LCPI5_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x3d, 0x8f, 0xf6, 0xff, 0xff, //0x00001d29 vmovdqa $-2417(%rip), %xmm7 /* LCPI5_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0x97, 0xf6, 0xff, 0xff, //0x00001d31 vmovdqa $-2409(%rip), %xmm5 /* LCPI5_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0x9f, 0xf6, 0xff, 0xff, //0x00001d39 vmovdqa $-2401(%rip), %xmm4 /* LCPI5_5+0(%rip) */ - 0xc5, 0xc9, 0x76, 0xf6, //0x00001d41 vpcmpeqd %xmm6, %xmm6, %xmm6 - //0x00001d45 LBB5_104 - 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001d45 movl $16, %ecx - 0x31, 0xc0, //0x00001d4a xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, //0x00001d4c .p2align 4, 0x90 - //0x00001d50 LBB5_105 - 0xc5, 0xfa, 0x6f, 0x04, 0x07, //0x00001d50 vmovdqu (%rdi,%rax), %xmm0 - 0xc5, 0xc1, 0x64, 0xc8, //0x00001d55 vpcmpgtb %xmm0, %xmm7, %xmm1 - 0xc5, 0xf9, 0x74, 0xd5, //0x00001d59 vpcmpeqb %xmm5, %xmm0, %xmm2 - 0xc5, 0xf9, 0x74, 0xdc, //0x00001d5d vpcmpeqb %xmm4, %xmm0, %xmm3 - 0xc5, 0xe1, 0xeb, 0xd2, //0x00001d61 vpor %xmm2, %xmm3, %xmm2 - 0xc5, 0xfa, 0x7f, 0x04, 0x03, //0x00001d65 vmovdqu %xmm0, (%rbx,%rax) - 0xc5, 0xf9, 0x64, 0xc6, //0x00001d6a vpcmpgtb %xmm6, %xmm0, %xmm0 - 0xc5, 0xf9, 0xdb, 0xc1, //0x00001d6e vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xe9, 0xeb, 0xc0, //0x00001d72 vpor %xmm0, %xmm2, %xmm0 - 0xc5, 0xf9, 0xd7, 0xf0, //0x00001d76 vpmovmskb %xmm0, %esi - 0x66, 0x85, 0xf6, //0x00001d7a testw %si, %si - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00001d7d jne LBB5_108 - 0x48, 0x83, 0xc0, 0x10, //0x00001d83 addq $16, %rax - 0x49, 0x8d, 0x74, 0x0a, 0xf0, //0x00001d87 leaq $-16(%r10,%rcx), %rsi - 0x48, 0x83, 0xc1, 0xf0, //0x00001d8c addq $-16, %rcx - 0x48, 0x83, 0xfe, 0x1f, //0x00001d90 cmpq $31, %rsi - 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00001d94 jg LBB5_105 - 0x48, 0x01, 0xc7, //0x00001d9a addq %rax, %rdi - 0x49, 0x29, 0xc2, //0x00001d9d subq %rax, %r10 - 0x48, 0x01, 0xc3, //0x00001da0 addq %rax, %rbx - 0x49, 0x83, 0xfa, 0x08, //0x00001da3 cmpq $8, %r10 - 0x0f, 0x8d, 0x97, 0xfd, 0xff, 0xff, //0x00001da7 jge LBB5_94 - 0xe9, 0x17, 0xfe, 0xff, 0xff, //0x00001dad jmp LBB5_97 - //0x00001db2 LBB5_108 - 0x0f, 0xb7, 0xce, //0x00001db2 movzwl %si, %ecx - 0x0f, 0xbc, 0xc9, //0x00001db5 bsfl %ecx, %ecx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00001db8 jmp LBB5_110 - //0x00001dbd LBB5_109 - 0x0f, 0xbc, 0xce, //0x00001dbd bsfl %esi, %ecx - //0x00001dc0 LBB5_110 - 0x48, 0x01, 0xcf, //0x00001dc0 addq %rcx, %rdi - 0x48, 0x01, 0xc7, //0x00001dc3 addq %rax, %rdi - 0x49, 0x29, 0xca, //0x00001dc6 subq %rcx, %r10 - 0x49, 0x29, 0xc2, //0x00001dc9 subq %rax, %r10 - 0x48, 0x01, 0xcb, //0x00001dcc addq %rcx, %rbx - //0x00001dcf LBB5_111 - 0x48, 0x01, 0xc3, //0x00001dcf addq %rax, %rbx - //0x00001dd2 LBB5_112 - 0x8a, 0x07, //0x00001dd2 movb (%rdi), %al - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001dd4 .p2align 4, 0x90 - //0x00001de0 LBB5_113 - 0x48, 0x89, 0xd9, //0x00001de0 movq %rbx, %rcx - 0x0f, 0xb6, 0xc0, //0x00001de3 movzbl %al, %eax - 0x48, 0xc1, 0xe0, 0x04, //0x00001de6 shlq $4, %rax - 0x49, 0x63, 0x1c, 0x00, //0x00001dea movslq (%r8,%rax), %rbx - 0x49, 0x8b, 0x44, 0x00, 0x08, //0x00001dee movq $8(%r8,%rax), %rax - 0x48, 0x89, 0x01, //0x00001df3 movq %rax, (%rcx) - 0x48, 0x01, 0xcb, //0x00001df6 addq %rcx, %rbx - 0x49, 0x83, 0xfa, 0x02, //0x00001df9 cmpq $2, %r10 - 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001dfd jl LBB5_117 - 0x49, 0xff, 0xca, //0x00001e03 decq %r10 - 0x0f, 0xb6, 0x47, 0x01, //0x00001e06 movzbl $1(%rdi), %eax - 0x48, 0xff, 0xc7, //0x00001e0a incq %rdi - 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001e0d cmpb $0, (%rax,%r9) - 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001e12 jne LBB5_113 - 0xe9, 0x13, 0xfd, 0xff, 0xff, //0x00001e18 jmp LBB5_87 - //0x00001e1d LBB5_115 - 0x0f, 0xbc, 0xc0, //0x00001e1d bsfl %eax, %eax - 0x48, 0x01, 0xc7, //0x00001e20 addq %rax, %rdi - 0x49, 0x29, 0xc2, //0x00001e23 subq %rax, %r10 - 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x00001e26 jmp LBB5_111 - //0x00001e2b LBB5_116 - 0x0f, 0xbc, 0xc0, //0x00001e2b bsfl %eax, %eax - 0x48, 0x8d, 0x48, 0x04, //0x00001e2e leaq $4(%rax), %rcx - 0x48, 0x8d, 0x7c, 0x07, 0x04, //0x00001e32 leaq $4(%rdi,%rax), %rdi - 0x49, 0x29, 0xca, //0x00001e37 subq %rcx, %r10 - 0x48, 0x8d, 0x5c, 0x03, 0x04, //0x00001e3a leaq $4(%rbx,%rax), %rbx - 0xe9, 0x8e, 0xff, 0xff, 0xff, //0x00001e3f jmp LBB5_112 - //0x00001e44 LBB5_117 - 0x48, 0x29, 0xd3, //0x00001e44 subq %rdx, %rbx - 0x49, 0x89, 0x1f, //0x00001e47 movq %rbx, (%r15) - 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00001e4a jmp LBB5_121 - //0x00001e4f LBB5_118 - 0x49, 0x29, 0xd4, //0x00001e4f subq %rdx, %r12 - 0x4d, 0x89, 0x27, //0x00001e52 movq %r12, (%r15) - 0x49, 0x29, 0xfb, //0x00001e55 subq %rdi, %r11 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001e58 jmp LBB5_120 - //0x00001e5d LBB5_119 - 0x49, 0x29, 0xd4, //0x00001e5d subq %rdx, %r12 - 0x4d, 0x89, 0x27, //0x00001e60 movq %r12, (%r15) - 0x49, 0xf7, 0xd3, //0x00001e63 notq %r11 - 0x49, 0x01, 0xfb, //0x00001e66 addq %rdi, %r11 - //0x00001e69 LBB5_120 - 0x4d, 0x89, 0xde, //0x00001e69 movq %r11, %r14 - //0x00001e6c LBB5_121 - 0x4c, 0x89, 0xf0, //0x00001e6c movq %r14, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00001e6f addq $8, %rsp - 0x5b, //0x00001e73 popq %rbx - 0x41, 0x5c, //0x00001e74 popq %r12 - 0x41, 0x5d, //0x00001e76 popq %r13 - 0x41, 0x5e, //0x00001e78 popq %r14 - 0x41, 0x5f, //0x00001e7a popq %r15 - 0x5d, //0x00001e7c popq %rbp - 0xc5, 0xf8, 0x77, //0x00001e7d vzeroupper - 0xc3, //0x00001e80 retq - //0x00001e81 LBB5_122 - 0x49, 0x29, 0xd4, //0x00001e81 subq %rdx, %r12 - 0x49, 0xf7, 0xd2, //0x00001e84 notq %r10 - 0x4d, 0x01, 0xd4, //0x00001e87 addq %r10, %r12 - 0x4d, 0x89, 0x27, //0x00001e8a movq %r12, (%r15) - 0x49, 0x29, 0xfb, //0x00001e8d subq %rdi, %r11 - 0x4d, 0x01, 0xd3, //0x00001e90 addq %r10, %r11 - 0x49, 0xf7, 0xd3, //0x00001e93 notq %r11 - 0xe9, 0xce, 0xff, 0xff, 0xff, //0x00001e96 jmp LBB5_120 - 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e9b .p2align 5, 0x00 - //0x00001ea0 LCPI6_0 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001ea0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001eb0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00001ec0 .p2align 4, 0x00 - //0x00001ec0 LCPI6_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001ec0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00001ed0 .p2align 4, 0x90 - //0x00001ed0 _unquote - 0x55, //0x00001ed0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00001ed1 movq %rsp, %rbp - 0x41, 0x57, //0x00001ed4 pushq %r15 - 0x41, 0x56, //0x00001ed6 pushq %r14 - 0x41, 0x55, //0x00001ed8 pushq %r13 - 0x41, 0x54, //0x00001eda pushq %r12 - 0x53, //0x00001edc pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x00001edd subq $24, %rsp - 0x48, 0x85, 0xf6, //0x00001ee1 testq %rsi, %rsi - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001ee4 je LBB6_2 - 0x48, 0x89, 0x4d, 0xd0, //0x00001eea movq %rcx, $-48(%rbp) - 0x45, 0x89, 0xc2, //0x00001eee movl %r8d, %r10d - 0x41, 0x83, 0xe2, 0x01, //0x00001ef1 andl $1, %r10d - 0xc5, 0xfd, 0x6f, 0x0d, 0xa3, 0xff, 0xff, 0xff, //0x00001ef5 vmovdqa $-93(%rip), %ymm1 /* LCPI6_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xbb, 0xff, 0xff, 0xff, //0x00001efd vmovdqa $-69(%rip), %xmm2 /* LCPI6_1+0(%rip) */ - 0x49, 0x89, 0xf9, //0x00001f05 movq %rdi, %r9 - 0x49, 0x89, 0xf5, //0x00001f08 movq %rsi, %r13 - 0x48, 0x89, 0xd0, //0x00001f0b movq %rdx, %rax - 0xe9, 0x59, 0x00, 0x00, 0x00, //0x00001f0e jmp LBB6_8 - //0x00001f13 LBB6_2 - 0x45, 0x31, 0xed, //0x00001f13 xorl %r13d, %r13d - 0x48, 0x89, 0xd0, //0x00001f16 movq %rdx, %rax - //0x00001f19 LBB6_3 - 0x4c, 0x01, 0xe8, //0x00001f19 addq %r13, %rax - 0x48, 0x29, 0xd0, //0x00001f1c subq %rdx, %rax - //0x00001f1f LBB6_4 - 0x48, 0x83, 0xc4, 0x18, //0x00001f1f addq $24, %rsp - 0x5b, //0x00001f23 popq %rbx - 0x41, 0x5c, //0x00001f24 popq %r12 - 0x41, 0x5d, //0x00001f26 popq %r13 - 0x41, 0x5e, //0x00001f28 popq %r14 - 0x41, 0x5f, //0x00001f2a popq %r15 - 0x5d, //0x00001f2c popq %rbp - 0xc5, 0xf8, 0x77, //0x00001f2d vzeroupper - 0xc3, //0x00001f30 retq - //0x00001f31 LBB6_5 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f31 leaq $4(%r9,%r12), %r9 - 0x44, 0x89, 0xf9, //0x00001f36 movl %r15d, %ecx - 0xc1, 0xe9, 0x06, //0x00001f39 shrl $6, %ecx - 0x80, 0xc9, 0xc0, //0x00001f3c orb $-64, %cl - 0x88, 0x08, //0x00001f3f movb %cl, (%rax) - 0x41, 0x80, 0xe7, 0x3f, //0x00001f41 andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00001f45 orb $-128, %r15b - 0x44, 0x88, 0x78, 0x01, //0x00001f49 movb %r15b, $1(%rax) - 0x48, 0x83, 0xc0, 0x02, //0x00001f4d addq $2, %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001f51 .p2align 4, 0x90 - //0x00001f60 LBB6_6 - 0x4d, 0x89, 0xf5, //0x00001f60 movq %r14, %r13 - //0x00001f63 LBB6_7 - 0x4d, 0x85, 0xed, //0x00001f63 testq %r13, %r13 - 0x0f, 0x84, 0x9d, 0x07, 0x00, 0x00, //0x00001f66 je LBB6_101 - //0x00001f6c LBB6_8 - 0x41, 0x80, 0x39, 0x5c, //0x00001f6c cmpb $92, (%r9) - 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_10 - 0x31, 0xdb, //0x00001f76 xorl %ebx, %ebx - 0xe9, 0x43, 0x01, 0x00, 0x00, //0x00001f78 jmp LBB6_24 - 0x90, 0x90, 0x90, //0x00001f7d .p2align 4, 0x90 - //0x00001f80 LBB6_10 - 0x4d, 0x89, 0xec, //0x00001f80 movq %r13, %r12 - 0x49, 0x89, 0xc7, //0x00001f83 movq %rax, %r15 - 0x4d, 0x89, 0xce, //0x00001f86 movq %r9, %r14 - 0x49, 0x83, 0xfd, 0x20, //0x00001f89 cmpq $32, %r13 - 0x0f, 0x8c, 0x3e, 0x00, 0x00, 0x00, //0x00001f8d jl LBB6_14 - 0x4d, 0x89, 0xce, //0x00001f93 movq %r9, %r14 - 0x49, 0x89, 0xc7, //0x00001f96 movq %rax, %r15 - 0x4d, 0x89, 0xec, //0x00001f99 movq %r13, %r12 - 0x90, 0x90, 0x90, 0x90, //0x00001f9c .p2align 4, 0x90 - //0x00001fa0 LBB6_12 - 0xc4, 0xc1, 0x7e, 0x6f, 0x06, //0x00001fa0 vmovdqu (%r14), %ymm0 - 0xc4, 0xc1, 0x7e, 0x7f, 0x07, //0x00001fa5 vmovdqu %ymm0, (%r15) - 0xc5, 0xfd, 0x74, 0xc1, //0x00001faa vpcmpeqb %ymm1, %ymm0, %ymm0 - 0xc5, 0xfd, 0xd7, 0xd8, //0x00001fae vpmovmskb %ymm0, %ebx - 0x85, 0xdb, //0x00001fb2 testl %ebx, %ebx - 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00001fb4 jne LBB6_22 - 0x49, 0x83, 0xc6, 0x20, //0x00001fba addq $32, %r14 - 0x49, 0x83, 0xc7, 0x20, //0x00001fbe addq $32, %r15 - 0x49, 0x83, 0xfc, 0x3f, //0x00001fc2 cmpq $63, %r12 - 0x4d, 0x8d, 0x64, 0x24, 0xe0, //0x00001fc6 leaq $-32(%r12), %r12 - 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001fcb jg LBB6_12 - //0x00001fd1 LBB6_14 - 0xc5, 0xf8, 0x77, //0x00001fd1 vzeroupper - 0xc5, 0xf9, 0x6f, 0x15, 0xe4, 0xfe, 0xff, 0xff, //0x00001fd4 vmovdqa $-284(%rip), %xmm2 /* LCPI6_1+0(%rip) */ - 0x49, 0x83, 0xfc, 0x10, //0x00001fdc cmpq $16, %r12 - 0x0f, 0x8c, 0x3c, 0x00, 0x00, 0x00, //0x00001fe0 jl LBB6_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001fe6 .p2align 4, 0x90 - //0x00001ff0 LBB6_15 - 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00001ff0 vmovdqu (%r14), %xmm0 - 0xc4, 0xc1, 0x7a, 0x7f, 0x07, //0x00001ff5 vmovdqu %xmm0, (%r15) - 0xc5, 0xf9, 0x74, 0xc2, //0x00001ffa vpcmpeqb %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd8, //0x00001ffe vpmovmskb %xmm0, %ebx - 0x66, 0x85, 0xdb, //0x00002002 testw %bx, %bx - 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00002005 jne LBB6_23 - 0x49, 0x83, 0xc6, 0x10, //0x0000200b addq $16, %r14 - 0x49, 0x83, 0xc7, 0x10, //0x0000200f addq $16, %r15 - 0x49, 0x83, 0xfc, 0x1f, //0x00002013 cmpq $31, %r12 - 0x4d, 0x8d, 0x64, 0x24, 0xf0, //0x00002017 leaq $-16(%r12), %r12 - 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000201c jg LBB6_15 - //0x00002022 LBB6_17 - 0x4d, 0x85, 0xe4, //0x00002022 testq %r12, %r12 - 0x0f, 0x84, 0xee, 0xfe, 0xff, 0xff, //0x00002025 je LBB6_3 - 0x31, 0xdb, //0x0000202b xorl %ebx, %ebx - 0xc5, 0xfd, 0x6f, 0x0d, 0x6b, 0xfe, 0xff, 0xff, //0x0000202d vmovdqa $-405(%rip), %ymm1 /* LCPI6_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002035 .p2align 4, 0x90 - //0x00002040 LBB6_19 - 0x45, 0x0f, 0xb6, 0x1c, 0x1e, //0x00002040 movzbl (%r14,%rbx), %r11d - 0x41, 0x80, 0xfb, 0x5c, //0x00002045 cmpb $92, %r11b - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00002049 je LBB6_21 - 0x45, 0x88, 0x1c, 0x1f, //0x0000204f movb %r11b, (%r15,%rbx) - 0x48, 0xff, 0xc3, //0x00002053 incq %rbx - 0x49, 0x39, 0xdc, //0x00002056 cmpq %rbx, %r12 - 0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x00002059 jne LBB6_19 - 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x0000205f jmp LBB6_3 - //0x00002064 LBB6_21 - 0x49, 0x01, 0xde, //0x00002064 addq %rbx, %r14 - 0x4d, 0x29, 0xce, //0x00002067 subq %r9, %r14 - 0x4c, 0x89, 0xf3, //0x0000206a movq %r14, %rbx - 0x48, 0x83, 0xfb, 0xff, //0x0000206d cmpq $-1, %rbx - 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x00002071 jne LBB6_24 - 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x00002077 jmp LBB6_3 - //0x0000207c LBB6_22 - 0x48, 0x63, 0xdb, //0x0000207c movslq %ebx, %rbx - 0x4d, 0x29, 0xce, //0x0000207f subq %r9, %r14 - 0x48, 0x0f, 0xbc, 0xdb, //0x00002082 bsfq %rbx, %rbx - 0x4c, 0x01, 0xf3, //0x00002086 addq %r14, %rbx - 0x48, 0x83, 0xfb, 0xff, //0x00002089 cmpq $-1, %rbx - 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000208d jne LBB6_24 - 0xe9, 0x81, 0xfe, 0xff, 0xff, //0x00002093 jmp LBB6_3 - //0x00002098 LBB6_23 - 0x0f, 0xb7, 0xdb, //0x00002098 movzwl %bx, %ebx - 0x4d, 0x29, 0xce, //0x0000209b subq %r9, %r14 - 0x48, 0x0f, 0xbc, 0xdb, //0x0000209e bsfq %rbx, %rbx - 0x4c, 0x01, 0xf3, //0x000020a2 addq %r14, %rbx - 0xc5, 0xfd, 0x6f, 0x0d, 0xf3, 0xfd, 0xff, 0xff, //0x000020a5 vmovdqa $-525(%rip), %ymm1 /* LCPI6_0+0(%rip) */ - 0x48, 0x83, 0xfb, 0xff, //0x000020ad cmpq $-1, %rbx - 0x0f, 0x84, 0x62, 0xfe, 0xff, 0xff, //0x000020b1 je LBB6_3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000020b7 .p2align 4, 0x90 - //0x000020c0 LBB6_24 - 0x48, 0x8d, 0x4b, 0x02, //0x000020c0 leaq $2(%rbx), %rcx - 0x49, 0x29, 0xcd, //0x000020c4 subq %rcx, %r13 - 0x0f, 0x88, 0x10, 0x06, 0x00, 0x00, //0x000020c7 js LBB6_99 - 0x4d, 0x8d, 0x4c, 0x19, 0x02, //0x000020cd leaq $2(%r9,%rbx), %r9 - 0x4d, 0x85, 0xd2, //0x000020d2 testq %r10, %r10 - 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x000020d5 jne LBB6_67 - //0x000020db LBB6_26 - 0x48, 0x01, 0xd8, //0x000020db addq %rbx, %rax - 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x000020de movzbl $-1(%r9), %ecx - 0x48, 0x8d, 0x1d, 0x46, 0xf4, 0x00, 0x00, //0x000020e3 leaq $62534(%rip), %rbx /* __UnquoteTab+0(%rip) */ - 0x8a, 0x1c, 0x19, //0x000020ea movb (%rcx,%rbx), %bl - 0x80, 0xfb, 0xff, //0x000020ed cmpb $-1, %bl - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000020f0 je LBB6_29 - 0x84, 0xdb, //0x000020f6 testb %bl, %bl - 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x000020f8 je LBB6_100 - 0x88, 0x18, //0x000020fe movb %bl, (%rax) - 0x48, 0xff, 0xc0, //0x00002100 incq %rax - 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00002103 jmp LBB6_7 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002108 .p2align 4, 0x90 - //0x00002110 LBB6_29 - 0x49, 0x83, 0xfd, 0x03, //0x00002110 cmpq $3, %r13 - 0x0f, 0x8e, 0xc3, 0x05, 0x00, 0x00, //0x00002114 jle LBB6_99 - 0x45, 0x8b, 0x31, //0x0000211a movl (%r9), %r14d - 0x45, 0x89, 0xf7, //0x0000211d movl %r14d, %r15d - 0x41, 0xf7, 0xd7, //0x00002120 notl %r15d - 0x41, 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002123 leal $-808464432(%r14), %ecx - 0x41, 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000212a andl $-2139062144, %r15d - 0x41, 0x85, 0xcf, //0x00002131 testl %ecx, %r15d - 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00002134 jne LBB6_90 - 0x41, 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000213a leal $421075225(%r14), %ecx - 0x44, 0x09, 0xf1, //0x00002141 orl %r14d, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002144 testl $-2139062144, %ecx - 0x0f, 0x85, 0xd1, 0x04, 0x00, 0x00, //0x0000214a jne LBB6_90 - 0x44, 0x89, 0xf3, //0x00002150 movl %r14d, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002153 andl $2139062143, %ebx - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002159 movl $-1061109568, %ecx - 0x29, 0xd9, //0x0000215e subl %ebx, %ecx - 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x00002160 leal $1179010630(%rbx), %r11d - 0x44, 0x21, 0xf9, //0x00002167 andl %r15d, %ecx - 0x44, 0x85, 0xd9, //0x0000216a testl %r11d, %ecx - 0x0f, 0x85, 0xae, 0x04, 0x00, 0x00, //0x0000216d jne LBB6_90 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002173 movl $-522133280, %ecx - 0x29, 0xd9, //0x00002178 subl %ebx, %ecx - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000217a addl $960051513, %ebx - 0x41, 0x21, 0xcf, //0x00002180 andl %ecx, %r15d - 0x41, 0x85, 0xdf, //0x00002183 testl %ebx, %r15d - 0x0f, 0x85, 0x95, 0x04, 0x00, 0x00, //0x00002186 jne LBB6_90 - 0x41, 0x0f, 0xce, //0x0000218c bswapl %r14d - 0x44, 0x89, 0xf1, //0x0000218f movl %r14d, %ecx - 0xc1, 0xe9, 0x04, //0x00002192 shrl $4, %ecx - 0xf7, 0xd1, //0x00002195 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002197 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x0000219d leal (%rcx,%rcx,8), %ecx - 0x41, 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x000021a0 andl $252645135, %r14d - 0x41, 0x01, 0xce, //0x000021a7 addl %ecx, %r14d - 0x44, 0x89, 0xf1, //0x000021aa movl %r14d, %ecx - 0xc1, 0xe9, 0x04, //0x000021ad shrl $4, %ecx - 0x44, 0x09, 0xf1, //0x000021b0 orl %r14d, %ecx - 0x44, 0x0f, 0xb6, 0xf9, //0x000021b3 movzbl %cl, %r15d - 0xc1, 0xe9, 0x08, //0x000021b7 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000021ba andl $65280, %ecx - 0x41, 0x09, 0xcf, //0x000021c0 orl %ecx, %r15d - 0x4d, 0x8d, 0x75, 0xfc, //0x000021c3 leaq $-4(%r13), %r14 - 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x000021c7 cmpl $128, %r15d - 0x0f, 0x82, 0x61, 0x03, 0x00, 0x00, //0x000021ce jb LBB6_75 - 0x45, 0x31, 0xe4, //0x000021d4 xorl %r12d, %r12d - 0x4d, 0x85, 0xd2, //0x000021d7 testq %r10, %r10 - 0x0f, 0x84, 0x70, 0x01, 0x00, 0x00, //0x000021da je LBB6_51 - //0x000021e0 LBB6_36 - 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x000021e0 cmpl $2048, %r15d - 0x0f, 0x82, 0x44, 0xfd, 0xff, 0xff, //0x000021e7 jb LBB6_5 - 0x44, 0x89, 0xf9, //0x000021ed movl %r15d, %ecx - 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x000021f0 andl $-2048, %ecx - 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x000021f6 cmpl $55296, %ecx - 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x000021fc jne LBB6_65 - 0x4d, 0x85, 0xf6, //0x00002202 testq %r14, %r14 - 0x0f, 0x8e, 0x61, 0x03, 0x00, 0x00, //0x00002205 jle LBB6_80 - 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x0000220b cmpb $92, $4(%r9,%r12) - 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x00002211 jne LBB6_81 - 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00002217 cmpl $56319, %r15d - 0x0f, 0x87, 0x2a, 0x03, 0x00, 0x00, //0x0000221e ja LBB6_78 - 0x49, 0x83, 0xfe, 0x07, //0x00002224 cmpq $7, %r14 - 0x0f, 0x8c, 0x20, 0x03, 0x00, 0x00, //0x00002228 jl LBB6_78 - 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x0000222e cmpb $92, $5(%r9,%r12) - 0x0f, 0x85, 0x14, 0x03, 0x00, 0x00, //0x00002234 jne LBB6_78 - 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x0000223a cmpb $117, $6(%r9,%r12) - 0x0f, 0x85, 0x08, 0x03, 0x00, 0x00, //0x00002240 jne LBB6_78 - 0x47, 0x8b, 0x5c, 0x21, 0x07, //0x00002246 movl $7(%r9,%r12), %r11d - 0x44, 0x89, 0xdb, //0x0000224b movl %r11d, %ebx - 0xf7, 0xd3, //0x0000224e notl %ebx - 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002250 leal $-808464432(%r11), %ecx - 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00002257 andl $-2139062144, %ebx - 0x89, 0x5d, 0xcc, //0x0000225d movl %ebx, $-52(%rbp) - 0x85, 0xcb, //0x00002260 testl %ecx, %ebx - 0x0f, 0x85, 0xbe, 0x04, 0x00, 0x00, //0x00002262 jne LBB6_104 - 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00002268 leal $421075225(%r11), %ecx - 0x44, 0x09, 0xd9, //0x0000226f orl %r11d, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002272 testl $-2139062144, %ecx - 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x00002278 jne LBB6_104 - 0x44, 0x89, 0xdb, //0x0000227e movl %r11d, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002281 andl $2139062143, %ebx - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002287 movl $-1061109568, %ecx - 0x29, 0xd9, //0x0000228c subl %ebx, %ecx - 0x4c, 0x89, 0x5d, 0xc0, //0x0000228e movq %r11, $-64(%rbp) - 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x00002292 leal $1179010630(%rbx), %r11d - 0x23, 0x4d, 0xcc, //0x00002299 andl $-52(%rbp), %ecx - 0x44, 0x85, 0xd9, //0x0000229c testl %r11d, %ecx - 0x4c, 0x8b, 0x5d, 0xc0, //0x0000229f movq $-64(%rbp), %r11 - 0x0f, 0x85, 0x7d, 0x04, 0x00, 0x00, //0x000022a3 jne LBB6_104 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000022a9 movl $-522133280, %ecx - 0x29, 0xd9, //0x000022ae subl %ebx, %ecx - 0x89, 0x4d, 0xc8, //0x000022b0 movl %ecx, $-56(%rbp) - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x000022b3 addl $960051513, %ebx - 0x8b, 0x4d, 0xcc, //0x000022b9 movl $-52(%rbp), %ecx - 0x23, 0x4d, 0xc8, //0x000022bc andl $-56(%rbp), %ecx - 0x85, 0xd9, //0x000022bf testl %ebx, %ecx - 0x0f, 0x85, 0x5f, 0x04, 0x00, 0x00, //0x000022c1 jne LBB6_104 - 0x41, 0x0f, 0xcb, //0x000022c7 bswapl %r11d - 0x44, 0x89, 0xd9, //0x000022ca movl %r11d, %ecx - 0xc1, 0xe9, 0x04, //0x000022cd shrl $4, %ecx - 0xf7, 0xd1, //0x000022d0 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000022d2 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x000022d8 leal (%rcx,%rcx,8), %ecx - 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x000022db andl $252645135, %r11d - 0x41, 0x01, 0xcb, //0x000022e2 addl %ecx, %r11d - 0x44, 0x89, 0xd9, //0x000022e5 movl %r11d, %ecx - 0xc1, 0xe9, 0x04, //0x000022e8 shrl $4, %ecx - 0x44, 0x09, 0xd9, //0x000022eb orl %r11d, %ecx - 0x89, 0xcb, //0x000022ee movl %ecx, %ebx - 0xc1, 0xeb, 0x08, //0x000022f0 shrl $8, %ebx - 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x000022f3 andl $65280, %ebx - 0x44, 0x0f, 0xb6, 0xd9, //0x000022f9 movzbl %cl, %r11d - 0x41, 0x09, 0xdb, //0x000022fd orl %ebx, %r11d - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002300 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002306 cmpl $14417920, %ecx - 0x0f, 0x84, 0x97, 0x02, 0x00, 0x00, //0x0000230c je LBB6_85 - 0x41, 0xf6, 0xc0, 0x02, //0x00002312 testb $2, %r8b - 0x0f, 0x84, 0x1d, 0x05, 0x00, 0x00, //0x00002316 je LBB6_119 - 0x49, 0x83, 0xc6, 0xf9, //0x0000231c addq $-7, %r14 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00002320 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00002325 movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00002329 addq $3, %rax - 0x49, 0x83, 0xc4, 0x07, //0x0000232d addq $7, %r12 - 0x45, 0x89, 0xdf, //0x00002331 movl %r11d, %r15d - 0x41, 0x83, 0xfb, 0x7f, //0x00002334 cmpl $127, %r11d - 0x0f, 0x87, 0xa2, 0xfe, 0xff, 0xff, //0x00002338 ja LBB6_36 - 0xe9, 0x59, 0x01, 0x00, 0x00, //0x0000233e jmp LBB6_64 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002343 .p2align 4, 0x90 - //0x00002350 LBB6_51 - 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00002350 cmpl $2048, %r15d - 0x0f, 0x82, 0xd4, 0xfb, 0xff, 0xff, //0x00002357 jb LBB6_5 - 0x44, 0x89, 0xf9, //0x0000235d movl %r15d, %ecx - 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00002360 andl $-2048, %ecx - 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00002366 cmpl $55296, %ecx - 0x0f, 0x85, 0x3e, 0x01, 0x00, 0x00, //0x0000236c jne LBB6_65 - 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00002372 cmpl $56319, %r15d - 0x0f, 0x87, 0xc5, 0x01, 0x00, 0x00, //0x00002379 ja LBB6_77 - 0x49, 0x83, 0xfe, 0x06, //0x0000237f cmpq $6, %r14 - 0x0f, 0x8c, 0xbb, 0x01, 0x00, 0x00, //0x00002383 jl LBB6_77 - 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00002389 cmpb $92, $4(%r9,%r12) - 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x0000238f jne LBB6_77 - 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00002395 cmpb $117, $5(%r9,%r12) - 0x0f, 0x85, 0xa3, 0x01, 0x00, 0x00, //0x0000239b jne LBB6_77 - 0x47, 0x8b, 0x5c, 0x21, 0x06, //0x000023a1 movl $6(%r9,%r12), %r11d - 0x44, 0x89, 0xdb, //0x000023a6 movl %r11d, %ebx - 0xf7, 0xd3, //0x000023a9 notl %ebx - 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x000023ab leal $-808464432(%r11), %ecx - 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000023b2 andl $-2139062144, %ebx - 0x89, 0x5d, 0xcc, //0x000023b8 movl %ebx, $-52(%rbp) - 0x85, 0xcb, //0x000023bb testl %ecx, %ebx - 0x0f, 0x85, 0x59, 0x03, 0x00, 0x00, //0x000023bd jne LBB6_103 - 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x000023c3 leal $421075225(%r11), %ecx - 0x44, 0x09, 0xd9, //0x000023ca orl %r11d, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000023cd testl $-2139062144, %ecx - 0x0f, 0x85, 0x43, 0x03, 0x00, 0x00, //0x000023d3 jne LBB6_103 - 0x44, 0x89, 0xdb, //0x000023d9 movl %r11d, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000023dc andl $2139062143, %ebx - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000023e2 movl $-1061109568, %ecx - 0x29, 0xd9, //0x000023e7 subl %ebx, %ecx - 0x4c, 0x89, 0x5d, 0xc0, //0x000023e9 movq %r11, $-64(%rbp) - 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x000023ed leal $1179010630(%rbx), %r11d - 0x23, 0x4d, 0xcc, //0x000023f4 andl $-52(%rbp), %ecx - 0x44, 0x85, 0xd9, //0x000023f7 testl %r11d, %ecx - 0x4c, 0x8b, 0x5d, 0xc0, //0x000023fa movq $-64(%rbp), %r11 - 0x0f, 0x85, 0x18, 0x03, 0x00, 0x00, //0x000023fe jne LBB6_103 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002404 movl $-522133280, %ecx - 0x29, 0xd9, //0x00002409 subl %ebx, %ecx - 0x89, 0x4d, 0xc8, //0x0000240b movl %ecx, $-56(%rbp) - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000240e addl $960051513, %ebx - 0x8b, 0x4d, 0xcc, //0x00002414 movl $-52(%rbp), %ecx - 0x23, 0x4d, 0xc8, //0x00002417 andl $-56(%rbp), %ecx - 0x85, 0xd9, //0x0000241a testl %ebx, %ecx - 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x0000241c jne LBB6_103 - 0x41, 0x0f, 0xcb, //0x00002422 bswapl %r11d - 0x44, 0x89, 0xd9, //0x00002425 movl %r11d, %ecx - 0xc1, 0xe9, 0x04, //0x00002428 shrl $4, %ecx - 0xf7, 0xd1, //0x0000242b notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000242d andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00002433 leal (%rcx,%rcx,8), %ecx - 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002436 andl $252645135, %r11d - 0x41, 0x01, 0xcb, //0x0000243d addl %ecx, %r11d - 0x44, 0x89, 0xd9, //0x00002440 movl %r11d, %ecx - 0xc1, 0xe9, 0x04, //0x00002443 shrl $4, %ecx - 0x44, 0x09, 0xd9, //0x00002446 orl %r11d, %ecx - 0x89, 0xcb, //0x00002449 movl %ecx, %ebx - 0xc1, 0xeb, 0x08, //0x0000244b shrl $8, %ebx - 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x0000244e andl $65280, %ebx - 0x44, 0x0f, 0xb6, 0xd9, //0x00002454 movzbl %cl, %r11d - 0x41, 0x09, 0xdb, //0x00002458 orl %ebx, %r11d - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000245b andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002461 cmpl $14417920, %ecx - 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x00002467 je LBB6_84 - 0x41, 0xf6, 0xc0, 0x02, //0x0000246d testb $2, %r8b - 0x0f, 0x84, 0xb8, 0x03, 0x00, 0x00, //0x00002471 je LBB6_118 - 0x49, 0x83, 0xc6, 0xfa, //0x00002477 addq $-6, %r14 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000247b movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00002480 movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00002484 addq $3, %rax - 0x49, 0x83, 0xc4, 0x06, //0x00002488 addq $6, %r12 - 0x45, 0x89, 0xdf, //0x0000248c movl %r11d, %r15d - 0x41, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000248f cmpl $128, %r11d - 0x0f, 0x83, 0xb4, 0xfe, 0xff, 0xff, //0x00002496 jae LBB6_51 - //0x0000249c LBB6_64 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x0000249c leaq $4(%r9,%r12), %r9 - 0x45, 0x89, 0xdf, //0x000024a1 movl %r11d, %r15d - 0xe9, 0x90, 0x00, 0x00, 0x00, //0x000024a4 jmp LBB6_76 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024a9 .p2align 4, 0x90 - //0x000024b0 LBB6_65 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000024b0 leaq $4(%r9,%r12), %r9 - 0x44, 0x89, 0xf9, //0x000024b5 movl %r15d, %ecx - 0xc1, 0xe9, 0x0c, //0x000024b8 shrl $12, %ecx - 0x80, 0xc9, 0xe0, //0x000024bb orb $-32, %cl - 0x88, 0x08, //0x000024be movb %cl, (%rax) - 0x44, 0x89, 0xf9, //0x000024c0 movl %r15d, %ecx - 0xc1, 0xe9, 0x06, //0x000024c3 shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x000024c6 andb $63, %cl - 0x80, 0xc9, 0x80, //0x000024c9 orb $-128, %cl - 0x88, 0x48, 0x01, //0x000024cc movb %cl, $1(%rax) - 0x41, 0x80, 0xe7, 0x3f, //0x000024cf andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x000024d3 orb $-128, %r15b - 0x44, 0x88, 0x78, 0x02, //0x000024d7 movb %r15b, $2(%rax) - //0x000024db LBB6_66 - 0x48, 0x83, 0xc0, 0x03, //0x000024db addq $3, %rax - 0xe9, 0x7c, 0xfa, 0xff, 0xff, //0x000024df jmp LBB6_6 - //0x000024e4 LBB6_67 - 0x45, 0x85, 0xed, //0x000024e4 testl %r13d, %r13d - 0x0f, 0x84, 0xf0, 0x01, 0x00, 0x00, //0x000024e7 je LBB6_99 - 0x41, 0x80, 0x79, 0xff, 0x5c, //0x000024ed cmpb $92, $-1(%r9) - 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x000024f2 jne LBB6_102 - 0x41, 0x80, 0x39, 0x5c, //0x000024f8 cmpb $92, (%r9) - 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000024fc jne LBB6_74 - 0x41, 0x83, 0xfd, 0x01, //0x00002502 cmpl $1, %r13d - 0x0f, 0x8e, 0xd1, 0x01, 0x00, 0x00, //0x00002506 jle LBB6_99 - 0x45, 0x8a, 0x59, 0x01, //0x0000250c movb $1(%r9), %r11b - 0x41, 0x80, 0xfb, 0x22, //0x00002510 cmpb $34, %r11b - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002514 je LBB6_73 - 0x41, 0x80, 0xfb, 0x5c, //0x0000251a cmpb $92, %r11b - 0x0f, 0x85, 0xd8, 0x02, 0x00, 0x00, //0x0000251e jne LBB6_114 - //0x00002524 LBB6_73 - 0x49, 0xff, 0xc1, //0x00002524 incq %r9 - 0x49, 0xff, 0xcd, //0x00002527 decq %r13 - //0x0000252a LBB6_74 - 0x49, 0xff, 0xc1, //0x0000252a incq %r9 - 0x49, 0xff, 0xcd, //0x0000252d decq %r13 - 0xe9, 0xa6, 0xfb, 0xff, 0xff, //0x00002530 jmp LBB6_26 - //0x00002535 LBB6_75 - 0x49, 0x83, 0xc1, 0x04, //0x00002535 addq $4, %r9 - //0x00002539 LBB6_76 - 0x44, 0x88, 0x38, //0x00002539 movb %r15b, (%rax) - 0x48, 0xff, 0xc0, //0x0000253c incq %rax - 0xe9, 0x1c, 0xfa, 0xff, 0xff, //0x0000253f jmp LBB6_6 - //0x00002544 LBB6_77 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00002544 leaq $4(%r9,%r12), %r9 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00002549 jmp LBB6_79 - //0x0000254e LBB6_78 - 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x0000254e leaq $5(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00002553 subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xfb, //0x00002556 addq $-5, %r13 - 0x4d, 0x89, 0xee, //0x0000255a movq %r13, %r14 - //0x0000255d LBB6_79 - 0x41, 0xf6, 0xc0, 0x02, //0x0000255d testb $2, %r8b - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00002561 jne LBB6_83 - 0xe9, 0xec, 0x02, 0x00, 0x00, //0x00002567 jmp LBB6_121 - //0x0000256c LBB6_80 - 0x41, 0xf6, 0xc0, 0x02, //0x0000256c testb $2, %r8b - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002570 jne LBB6_82 - 0xe9, 0x62, 0x01, 0x00, 0x00, //0x00002576 jmp LBB6_99 - //0x0000257b LBB6_81 - 0x41, 0xf6, 0xc0, 0x02, //0x0000257b testb $2, %r8b - 0x0f, 0x84, 0xe0, 0x02, 0x00, 0x00, //0x0000257f je LBB6_122 - //0x00002585 LBB6_82 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00002585 leaq $4(%r9,%r12), %r9 - //0x0000258a LBB6_83 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000258a movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x0000258f movb $-67, $2(%rax) - 0xe9, 0x43, 0xff, 0xff, 0xff, //0x00002593 jmp LBB6_66 - //0x00002598 LBB6_84 - 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00002598 leaq $10(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x0000259d subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xf6, //0x000025a0 addq $-10, %r13 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000025a4 jmp LBB6_86 - //0x000025a9 LBB6_85 - 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x000025a9 leaq $11(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x000025ae subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xf5, //0x000025b1 addq $-11, %r13 - //0x000025b5 LBB6_86 - 0x41, 0xc1, 0xe7, 0x0a, //0x000025b5 shll $10, %r15d - 0x43, 0x8d, 0x9c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x000025b9 leal $-56613888(%r15,%r11), %ebx - 0x81, 0xfb, 0x00, 0x00, 0x11, 0x00, //0x000025c1 cmpl $1114112, %ebx - 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x000025c7 jb LBB6_89 - 0x41, 0xf6, 0xc0, 0x02, //0x000025cd testb $2, %r8b - 0x0f, 0x84, 0x3e, 0x02, 0x00, 0x00, //0x000025d1 je LBB6_116 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000025d7 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x000025dc movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x000025e0 addq $3, %rax - 0xe9, 0x7a, 0xf9, 0xff, 0xff, //0x000025e4 jmp LBB6_7 - //0x000025e9 LBB6_89 - 0x89, 0xd9, //0x000025e9 movl %ebx, %ecx - 0xc1, 0xe9, 0x12, //0x000025eb shrl $18, %ecx - 0x80, 0xc9, 0xf0, //0x000025ee orb $-16, %cl - 0x88, 0x08, //0x000025f1 movb %cl, (%rax) - 0x89, 0xd9, //0x000025f3 movl %ebx, %ecx - 0xc1, 0xe9, 0x0c, //0x000025f5 shrl $12, %ecx - 0x80, 0xe1, 0x3f, //0x000025f8 andb $63, %cl - 0x80, 0xc9, 0x80, //0x000025fb orb $-128, %cl - 0x88, 0x48, 0x01, //0x000025fe movb %cl, $1(%rax) - 0x89, 0xd9, //0x00002601 movl %ebx, %ecx - 0xc1, 0xe9, 0x06, //0x00002603 shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x00002606 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00002609 orb $-128, %cl - 0x88, 0x48, 0x02, //0x0000260c movb %cl, $2(%rax) - 0x80, 0xe3, 0x3f, //0x0000260f andb $63, %bl - 0x80, 0xcb, 0x80, //0x00002612 orb $-128, %bl - 0x88, 0x58, 0x03, //0x00002615 movb %bl, $3(%rax) - 0x48, 0x83, 0xc0, 0x04, //0x00002618 addq $4, %rax - 0xe9, 0x42, 0xf9, 0xff, 0xff, //0x0000261c jmp LBB6_7 - //0x00002621 LBB6_90 - 0x4c, 0x89, 0xca, //0x00002621 movq %r9, %rdx - 0x48, 0x29, 0xfa, //0x00002624 subq %rdi, %rdx - 0x48, 0x8b, 0x7d, 0xd0, //0x00002627 movq $-48(%rbp), %rdi - 0x48, 0x89, 0x17, //0x0000262b movq %rdx, (%rdi) - 0x41, 0x8a, 0x31, //0x0000262e movb (%r9), %sil - 0x8d, 0x4e, 0xd0, //0x00002631 leal $-48(%rsi), %ecx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002634 movq $-2, %rax - 0x80, 0xf9, 0x0a, //0x0000263b cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000263e jb LBB6_92 - 0x40, 0x80, 0xe6, 0xdf, //0x00002644 andb $-33, %sil - 0x40, 0x80, 0xc6, 0xbf, //0x00002648 addb $-65, %sil - 0x40, 0x80, 0xfe, 0x05, //0x0000264c cmpb $5, %sil - 0x0f, 0x87, 0xc9, 0xf8, 0xff, 0xff, //0x00002650 ja LBB6_4 - //0x00002656 LBB6_92 - 0x48, 0x8d, 0x4a, 0x01, //0x00002656 leaq $1(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x0000265a movq %rcx, (%rdi) - 0x41, 0x8a, 0x71, 0x01, //0x0000265d movb $1(%r9), %sil - 0x8d, 0x4e, 0xd0, //0x00002661 leal $-48(%rsi), %ecx - 0x80, 0xf9, 0x0a, //0x00002664 cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002667 jb LBB6_94 - 0x40, 0x80, 0xe6, 0xdf, //0x0000266d andb $-33, %sil - 0x40, 0x80, 0xc6, 0xbf, //0x00002671 addb $-65, %sil - 0x40, 0x80, 0xfe, 0x05, //0x00002675 cmpb $5, %sil - 0x0f, 0x87, 0xa0, 0xf8, 0xff, 0xff, //0x00002679 ja LBB6_4 - //0x0000267f LBB6_94 - 0x48, 0x8d, 0x4a, 0x02, //0x0000267f leaq $2(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x00002683 movq %rcx, (%rdi) - 0x41, 0x8a, 0x71, 0x02, //0x00002686 movb $2(%r9), %sil - 0x8d, 0x4e, 0xd0, //0x0000268a leal $-48(%rsi), %ecx - 0x80, 0xf9, 0x0a, //0x0000268d cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002690 jb LBB6_96 - 0x40, 0x80, 0xe6, 0xdf, //0x00002696 andb $-33, %sil - 0x40, 0x80, 0xc6, 0xbf, //0x0000269a addb $-65, %sil - 0x40, 0x80, 0xfe, 0x05, //0x0000269e cmpb $5, %sil - 0x0f, 0x87, 0x77, 0xf8, 0xff, 0xff, //0x000026a2 ja LBB6_4 - //0x000026a8 LBB6_96 - 0x48, 0x8d, 0x4a, 0x03, //0x000026a8 leaq $3(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x000026ac movq %rcx, (%rdi) - 0x41, 0x8a, 0x71, 0x03, //0x000026af movb $3(%r9), %sil - 0x8d, 0x4e, 0xd0, //0x000026b3 leal $-48(%rsi), %ecx - 0x80, 0xf9, 0x0a, //0x000026b6 cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000026b9 jb LBB6_98 - 0x40, 0x80, 0xe6, 0xdf, //0x000026bf andb $-33, %sil - 0x40, 0x80, 0xc6, 0xbf, //0x000026c3 addb $-65, %sil - 0x40, 0x80, 0xfe, 0x05, //0x000026c7 cmpb $5, %sil - 0x0f, 0x87, 0x4e, 0xf8, 0xff, 0xff, //0x000026cb ja LBB6_4 - //0x000026d1 LBB6_98 - 0x48, 0x83, 0xc2, 0x04, //0x000026d1 addq $4, %rdx - 0x48, 0x89, 0x17, //0x000026d5 movq %rdx, (%rdi) - 0xe9, 0x42, 0xf8, 0xff, 0xff, //0x000026d8 jmp LBB6_4 - //0x000026dd LBB6_99 - 0x48, 0x8b, 0x45, 0xd0, //0x000026dd movq $-48(%rbp), %rax - 0x48, 0x89, 0x30, //0x000026e1 movq %rsi, (%rax) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000026e4 movq $-1, %rax - 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x000026eb jmp LBB6_4 - //0x000026f0 LBB6_100 - 0x48, 0xf7, 0xd7, //0x000026f0 notq %rdi - 0x49, 0x01, 0xf9, //0x000026f3 addq %rdi, %r9 - 0x48, 0x8b, 0x45, 0xd0, //0x000026f6 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x08, //0x000026fa movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x000026fd movq $-3, %rax - 0xe9, 0x16, 0xf8, 0xff, 0xff, //0x00002704 jmp LBB6_4 - //0x00002709 LBB6_101 - 0x45, 0x31, 0xed, //0x00002709 xorl %r13d, %r13d - 0xe9, 0x08, 0xf8, 0xff, 0xff, //0x0000270c jmp LBB6_3 - //0x00002711 LBB6_102 - 0x48, 0xf7, 0xd7, //0x00002711 notq %rdi - 0x49, 0x01, 0xf9, //0x00002714 addq %rdi, %r9 - 0xe9, 0xe6, 0x00, 0x00, 0x00, //0x00002717 jmp LBB6_115 - //0x0000271c LBB6_103 - 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x0000271c leaq $4(%r9,%r12), %rsi - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002721 jmp LBB6_105 - //0x00002726 LBB6_104 - 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002726 leaq $5(%r9,%r12), %rsi - //0x0000272b LBB6_105 - 0x48, 0x89, 0xf2, //0x0000272b movq %rsi, %rdx - 0x48, 0x29, 0xfa, //0x0000272e subq %rdi, %rdx - 0x48, 0x83, 0xc2, 0x02, //0x00002731 addq $2, %rdx - 0x48, 0x8b, 0x45, 0xd0, //0x00002735 movq $-48(%rbp), %rax - 0x48, 0x89, 0x10, //0x00002739 movq %rdx, (%rax) - 0x40, 0x8a, 0x7e, 0x02, //0x0000273c movb $2(%rsi), %dil - 0x8d, 0x4f, 0xd0, //0x00002740 leal $-48(%rdi), %ecx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002743 movq $-2, %rax - 0x80, 0xf9, 0x0a, //0x0000274a cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000274d jb LBB6_107 - 0x40, 0x80, 0xe7, 0xdf, //0x00002753 andb $-33, %dil - 0x40, 0x80, 0xc7, 0xbf, //0x00002757 addb $-65, %dil - 0x40, 0x80, 0xff, 0x05, //0x0000275b cmpb $5, %dil - 0x0f, 0x87, 0xba, 0xf7, 0xff, 0xff, //0x0000275f ja LBB6_4 - //0x00002765 LBB6_107 - 0x48, 0x8d, 0x4a, 0x01, //0x00002765 leaq $1(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xd0, //0x00002769 movq $-48(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x0000276d movq %rcx, (%rdi) - 0x40, 0x8a, 0x7e, 0x03, //0x00002770 movb $3(%rsi), %dil - 0x8d, 0x4f, 0xd0, //0x00002774 leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x00002777 cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000277a jb LBB6_109 - 0x40, 0x80, 0xe7, 0xdf, //0x00002780 andb $-33, %dil - 0x40, 0x80, 0xc7, 0xbf, //0x00002784 addb $-65, %dil - 0x40, 0x80, 0xff, 0x05, //0x00002788 cmpb $5, %dil - 0x0f, 0x87, 0x8d, 0xf7, 0xff, 0xff, //0x0000278c ja LBB6_4 - //0x00002792 LBB6_109 - 0x48, 0x8d, 0x4a, 0x02, //0x00002792 leaq $2(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xd0, //0x00002796 movq $-48(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x0000279a movq %rcx, (%rdi) - 0x40, 0x8a, 0x7e, 0x04, //0x0000279d movb $4(%rsi), %dil - 0x8d, 0x4f, 0xd0, //0x000027a1 leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x000027a4 cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000027a7 jb LBB6_111 - 0x40, 0x80, 0xe7, 0xdf, //0x000027ad andb $-33, %dil - 0x40, 0x80, 0xc7, 0xbf, //0x000027b1 addb $-65, %dil - 0x40, 0x80, 0xff, 0x05, //0x000027b5 cmpb $5, %dil - 0x0f, 0x87, 0x60, 0xf7, 0xff, 0xff, //0x000027b9 ja LBB6_4 - //0x000027bf LBB6_111 - 0x48, 0x8d, 0x4a, 0x03, //0x000027bf leaq $3(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xd0, //0x000027c3 movq $-48(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x000027c7 movq %rcx, (%rdi) - 0x40, 0x8a, 0x76, 0x05, //0x000027ca movb $5(%rsi), %sil - 0x8d, 0x4e, 0xd0, //0x000027ce leal $-48(%rsi), %ecx - 0x80, 0xf9, 0x0a, //0x000027d1 cmpb $10, %cl - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000027d4 jb LBB6_113 - 0x40, 0x80, 0xe6, 0xdf, //0x000027da andb $-33, %sil - 0x40, 0x80, 0xc6, 0xbf, //0x000027de addb $-65, %sil - 0x40, 0x80, 0xfe, 0x05, //0x000027e2 cmpb $5, %sil - 0x0f, 0x87, 0x33, 0xf7, 0xff, 0xff, //0x000027e6 ja LBB6_4 - //0x000027ec LBB6_113 - 0x48, 0x83, 0xc2, 0x04, //0x000027ec addq $4, %rdx - 0x48, 0x8b, 0x4d, 0xd0, //0x000027f0 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x11, //0x000027f4 movq %rdx, (%rcx) - 0xe9, 0x23, 0xf7, 0xff, 0xff, //0x000027f7 jmp LBB6_4 - //0x000027fc LBB6_114 - 0x49, 0x29, 0xf9, //0x000027fc subq %rdi, %r9 - 0x49, 0xff, 0xc1, //0x000027ff incq %r9 - //0x00002802 LBB6_115 - 0x48, 0x8b, 0x45, 0xd0, //0x00002802 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x08, //0x00002806 movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002809 movq $-2, %rax - 0xe9, 0x0a, 0xf7, 0xff, 0xff, //0x00002810 jmp LBB6_4 - //0x00002815 LBB6_116 - 0x49, 0x29, 0xf9, //0x00002815 subq %rdi, %r9 - 0x49, 0x83, 0xc1, 0xfc, //0x00002818 addq $-4, %r9 - //0x0000281c LBB6_117 - 0x48, 0x8b, 0x45, 0xd0, //0x0000281c movq $-48(%rbp), %rax - 0x4c, 0x89, 0x08, //0x00002820 movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002823 movq $-4, %rax - 0xe9, 0xf0, 0xf6, 0xff, 0xff, //0x0000282a jmp LBB6_4 - //0x0000282f LBB6_118 - 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000282f leaq $10(%r9,%r12), %rax - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002834 jmp LBB6_120 - //0x00002839 LBB6_119 - 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002839 leaq $11(%r9,%r12), %rax - //0x0000283e LBB6_120 - 0x48, 0x29, 0xf8, //0x0000283e subq %rdi, %rax - 0x48, 0x83, 0xc0, 0xfc, //0x00002841 addq $-4, %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00002845 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00002849 movq %rax, (%rcx) - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000284c movq $-4, %rax - 0xe9, 0xc7, 0xf6, 0xff, 0xff, //0x00002853 jmp LBB6_4 - //0x00002858 LBB6_121 - 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002858 leaq $4(%r10,%rdi), %rax - 0x49, 0x29, 0xc1, //0x0000285d subq %rax, %r9 - 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x00002860 jmp LBB6_117 - //0x00002865 LBB6_122 - 0x4d, 0x01, 0xe1, //0x00002865 addq %r12, %r9 - 0x49, 0x29, 0xf9, //0x00002868 subq %rdi, %r9 - 0xe9, 0xac, 0xff, 0xff, 0xff, //0x0000286b jmp LBB6_117 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002870 .p2align 5, 0x00 - //0x00002880 LCPI7_0 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002880 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002890 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x000028a0 LCPI7_1 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000028a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000028b0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x000028c0 LCPI7_2 - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000028c0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000028d0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' - //0x000028e0 LCPI7_3 - 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000028e0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' - 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000028f0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' - //0x00002900 .p2align 4, 0x00 - //0x00002900 LCPI7_4 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002900 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x00002910 LCPI7_5 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002910 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x00002920 LCPI7_6 - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00002920 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' - //0x00002930 LCPI7_7 - 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00002930 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' - //0x00002940 .p2align 4, 0x90 - //0x00002940 _html_escape - 0x55, //0x00002940 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002941 movq %rsp, %rbp - 0x41, 0x57, //0x00002944 pushq %r15 - 0x41, 0x56, //0x00002946 pushq %r14 - 0x41, 0x55, //0x00002948 pushq %r13 - 0x41, 0x54, //0x0000294a pushq %r12 - 0x53, //0x0000294c pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x0000294d subq $24, %rsp - 0x48, 0x89, 0x4d, 0xc0, //0x00002951 movq %rcx, $-64(%rbp) - 0x49, 0x89, 0xd7, //0x00002955 movq %rdx, %r15 - 0x48, 0x89, 0x55, 0xc8, //0x00002958 movq %rdx, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x0000295c movq %rdi, $-48(%rbp) - 0x48, 0x89, 0xf8, //0x00002960 movq %rdi, %rax - 0x48, 0x85, 0xf6, //0x00002963 testq %rsi, %rsi - 0x0f, 0x8e, 0xa8, 0x07, 0x00, 0x00, //0x00002966 jle LBB7_94 - 0x49, 0x89, 0xf2, //0x0000296c movq %rsi, %r10 - 0x48, 0x8b, 0x45, 0xc0, //0x0000296f movq $-64(%rbp), %rax - 0x4c, 0x8b, 0x08, //0x00002973 movq (%rax), %r9 - 0xc5, 0xfd, 0x6f, 0x1d, 0x02, 0xff, 0xff, 0xff, //0x00002976 vmovdqa $-254(%rip), %ymm3 /* LCPI7_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x1a, 0xff, 0xff, 0xff, //0x0000297e vmovdqa $-230(%rip), %ymm4 /* LCPI7_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x32, 0xff, 0xff, 0xff, //0x00002986 vmovdqa $-206(%rip), %ymm5 /* LCPI7_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x4a, 0xff, 0xff, 0xff, //0x0000298e vmovdqa $-182(%rip), %ymm6 /* LCPI7_3+0(%rip) */ - 0x4c, 0x8d, 0x35, 0x93, 0xec, 0x00, 0x00, //0x00002996 leaq $60563(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ - 0x48, 0xbf, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000299d movabsq $12884901889, %rdi - 0x4c, 0x8b, 0x65, 0xd0, //0x000029a7 movq $-48(%rbp), %r12 - 0x4c, 0x8b, 0x7d, 0xc8, //0x000029ab movq $-56(%rbp), %r15 - 0x90, //0x000029af .p2align 4, 0x90 - //0x000029b0 LBB7_2 - 0x4d, 0x85, 0xc9, //0x000029b0 testq %r9, %r9 - 0x0f, 0x8e, 0x7a, 0x07, 0x00, 0x00, //0x000029b3 jle LBB7_96 - 0x49, 0x83, 0xfa, 0x1f, //0x000029b9 cmpq $31, %r10 - 0x0f, 0x9f, 0xc3, //0x000029bd setg %bl - 0x4c, 0x89, 0xc8, //0x000029c0 movq %r9, %rax - 0x4d, 0x89, 0xf8, //0x000029c3 movq %r15, %r8 - 0x4c, 0x89, 0xd6, //0x000029c6 movq %r10, %rsi - 0x4d, 0x89, 0xe5, //0x000029c9 movq %r12, %r13 - 0x49, 0x83, 0xf9, 0x20, //0x000029cc cmpq $32, %r9 - 0x0f, 0x8c, 0x7a, 0x00, 0x00, 0x00, //0x000029d0 jl LBB7_9 - 0x49, 0x83, 0xfa, 0x20, //0x000029d6 cmpq $32, %r10 - 0x0f, 0x8c, 0x70, 0x00, 0x00, 0x00, //0x000029da jl LBB7_9 - 0x4d, 0x89, 0xe5, //0x000029e0 movq %r12, %r13 - 0x4c, 0x89, 0xd6, //0x000029e3 movq %r10, %rsi - 0x4d, 0x89, 0xf8, //0x000029e6 movq %r15, %r8 - 0x4c, 0x89, 0xca, //0x000029e9 movq %r9, %rdx - 0x90, 0x90, 0x90, 0x90, //0x000029ec .p2align 4, 0x90 - //0x000029f0 LBB7_6 - 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000029f0 vmovdqu (%r13), %ymm0 - 0xc5, 0xfd, 0x74, 0xcb, //0x000029f6 vpcmpeqb %ymm3, %ymm0, %ymm1 - 0xc5, 0xfd, 0x74, 0xd4, //0x000029fa vpcmpeqb %ymm4, %ymm0, %ymm2 - 0xc5, 0xed, 0xeb, 0xc9, //0x000029fe vpor %ymm1, %ymm2, %ymm1 - 0xc5, 0xfd, 0xeb, 0xd5, //0x00002a02 vpor %ymm5, %ymm0, %ymm2 - 0xc5, 0xed, 0x74, 0xd6, //0x00002a06 vpcmpeqb %ymm6, %ymm2, %ymm2 - 0xc5, 0xf5, 0xeb, 0xca, //0x00002a0a vpor %ymm2, %ymm1, %ymm1 - 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00002a0e vmovdqu %ymm0, (%r8) - 0xc5, 0xfd, 0xd7, 0xc1, //0x00002a13 vpmovmskb %ymm1, %eax - 0x85, 0xc0, //0x00002a17 testl %eax, %eax - 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x00002a19 jne LBB7_19 - 0x49, 0x83, 0xc5, 0x20, //0x00002a1f addq $32, %r13 - 0x49, 0x83, 0xc0, 0x20, //0x00002a23 addq $32, %r8 - 0x48, 0x8d, 0x42, 0xe0, //0x00002a27 leaq $-32(%rdx), %rax - 0x48, 0x83, 0xfe, 0x3f, //0x00002a2b cmpq $63, %rsi - 0x0f, 0x9f, 0xc3, //0x00002a2f setg %bl - 0x48, 0x83, 0xfe, 0x40, //0x00002a32 cmpq $64, %rsi - 0x48, 0x8d, 0x76, 0xe0, //0x00002a36 leaq $-32(%rsi), %rsi - 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002a3a jl LBB7_9 - 0x48, 0x83, 0xfa, 0x3f, //0x00002a40 cmpq $63, %rdx - 0x48, 0x89, 0xc2, //0x00002a44 movq %rax, %rdx - 0x0f, 0x8f, 0xa3, 0xff, 0xff, 0xff, //0x00002a47 jg LBB7_6 - 0x90, 0x90, 0x90, //0x00002a4d .p2align 4, 0x90 - //0x00002a50 LBB7_9 - 0x84, 0xdb, //0x00002a50 testb %bl, %bl - 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00002a52 je LBB7_13 - 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00002a58 vmovdqu (%r13), %ymm0 - 0xc5, 0xfd, 0x74, 0xcb, //0x00002a5e vpcmpeqb %ymm3, %ymm0, %ymm1 - 0xc5, 0xfd, 0x74, 0xd4, //0x00002a62 vpcmpeqb %ymm4, %ymm0, %ymm2 - 0xc5, 0xed, 0xeb, 0xc9, //0x00002a66 vpor %ymm1, %ymm2, %ymm1 - 0xc5, 0xfd, 0xeb, 0xc5, //0x00002a6a vpor %ymm5, %ymm0, %ymm0 - 0xc5, 0xfd, 0x74, 0xc6, //0x00002a6e vpcmpeqb %ymm6, %ymm0, %ymm0 - 0xc5, 0xf5, 0xeb, 0xc0, //0x00002a72 vpor %ymm0, %ymm1, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc8, //0x00002a76 vpmovmskb %ymm0, %ecx - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002a7a movabsq $4294967296, %rdx - 0x48, 0x09, 0xd1, //0x00002a84 orq %rdx, %rcx - 0x4c, 0x0f, 0xbc, 0xd9, //0x00002a87 bsfq %rcx, %r11 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002a8b vmovdqu (%r13), %xmm0 - 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x00002a91 vpextrq $1, %xmm0, %rcx - 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x00002a97 vmovq %xmm0, %rdx - 0x49, 0x39, 0xc3, //0x00002a9c cmpq %rax, %r11 - 0x0f, 0x8e, 0x92, 0x01, 0x00, 0x00, //0x00002a9f jle LBB7_20 - 0x48, 0x83, 0xf8, 0x10, //0x00002aa5 cmpq $16, %rax - 0x0f, 0x82, 0xd1, 0x01, 0x00, 0x00, //0x00002aa9 jb LBB7_23 - 0x49, 0x89, 0x10, //0x00002aaf movq %rdx, (%r8) - 0x49, 0x89, 0x48, 0x08, //0x00002ab2 movq %rcx, $8(%r8) - 0x4d, 0x8d, 0x5d, 0x10, //0x00002ab6 leaq $16(%r13), %r11 - 0x49, 0x83, 0xc0, 0x10, //0x00002aba addq $16, %r8 - 0x48, 0x8d, 0x70, 0xf0, //0x00002abe leaq $-16(%rax), %rsi - 0x48, 0x83, 0xfe, 0x08, //0x00002ac2 cmpq $8, %rsi - 0x0f, 0x83, 0xc4, 0x01, 0x00, 0x00, //0x00002ac6 jae LBB7_24 - 0xe9, 0xd1, 0x01, 0x00, 0x00, //0x00002acc jmp LBB7_25 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ad1 .p2align 4, 0x90 - //0x00002ae0 LBB7_13 - 0x4c, 0x89, 0xf2, //0x00002ae0 movq %r14, %rdx - 0xc5, 0xf8, 0x77, //0x00002ae3 vzeroupper - 0x48, 0x83, 0xfe, 0x0f, //0x00002ae6 cmpq $15, %rsi - 0x41, 0x0f, 0x9f, 0xc6, //0x00002aea setg %r14b - 0x48, 0x83, 0xf8, 0x10, //0x00002aee cmpq $16, %rax - 0x0f, 0x8c, 0x22, 0x02, 0x00, 0x00, //0x00002af2 jl LBB7_30 - 0x48, 0x83, 0xfe, 0x10, //0x00002af8 cmpq $16, %rsi - 0xc5, 0xf9, 0x6f, 0x3d, 0xfc, 0xfd, 0xff, 0xff, //0x00002afc vmovdqa $-516(%rip), %xmm7 /* LCPI7_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x05, 0x04, 0xfe, 0xff, 0xff, //0x00002b04 vmovdqa $-508(%rip), %xmm8 /* LCPI7_5+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x0c, 0xfe, 0xff, 0xff, //0x00002b0c vmovdqa $-500(%rip), %xmm9 /* LCPI7_6+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x14, 0xfe, 0xff, 0xff, //0x00002b14 vmovdqa $-492(%rip), %xmm10 /* LCPI7_7+0(%rip) */ - 0x0f, 0x8c, 0x49, 0x02, 0x00, 0x00, //0x00002b1c jl LBB7_35 - 0xc5, 0xfd, 0x6f, 0x1d, 0x56, 0xfd, 0xff, 0xff, //0x00002b22 vmovdqa $-682(%rip), %ymm3 /* LCPI7_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x6e, 0xfd, 0xff, 0xff, //0x00002b2a vmovdqa $-658(%rip), %ymm4 /* LCPI7_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x86, 0xfd, 0xff, 0xff, //0x00002b32 vmovdqa $-634(%rip), %ymm5 /* LCPI7_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x9e, 0xfd, 0xff, 0xff, //0x00002b3a vmovdqa $-610(%rip), %ymm6 /* LCPI7_3+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002b42 .p2align 4, 0x90 - //0x00002b50 LBB7_16 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002b50 vmovdqu (%r13), %xmm0 - 0xc5, 0xf9, 0x74, 0xcf, //0x00002b56 vpcmpeqb %xmm7, %xmm0, %xmm1 - 0xc5, 0xb9, 0x74, 0xd0, //0x00002b5a vpcmpeqb %xmm0, %xmm8, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x00002b5e vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xb1, 0xeb, 0xd0, //0x00002b62 vpor %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd2, //0x00002b66 vpcmpeqb %xmm2, %xmm10, %xmm2 - 0xc5, 0xf1, 0xeb, 0xca, //0x00002b6a vpor %xmm2, %xmm1, %xmm1 - 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00002b6e vmovdqu %xmm0, (%r8) - 0xc5, 0xf9, 0xd7, 0xc9, //0x00002b73 vpmovmskb %xmm1, %ecx - 0x66, 0x85, 0xc9, //0x00002b77 testw %cx, %cx - 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x00002b7a jne LBB7_22 - 0x49, 0x83, 0xc5, 0x10, //0x00002b80 addq $16, %r13 - 0x49, 0x83, 0xc0, 0x10, //0x00002b84 addq $16, %r8 - 0x4c, 0x8d, 0x58, 0xf0, //0x00002b88 leaq $-16(%rax), %r11 - 0x48, 0x83, 0xfe, 0x1f, //0x00002b8c cmpq $31, %rsi - 0x41, 0x0f, 0x9f, 0xc6, //0x00002b90 setg %r14b - 0x48, 0x83, 0xfe, 0x20, //0x00002b94 cmpq $32, %rsi - 0x48, 0x8d, 0x76, 0xf0, //0x00002b98 leaq $-16(%rsi), %rsi - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002b9c jl LBB7_31 - 0x48, 0x83, 0xf8, 0x1f, //0x00002ba2 cmpq $31, %rax - 0x4c, 0x89, 0xd8, //0x00002ba6 movq %r11, %rax - 0x0f, 0x8f, 0xa1, 0xff, 0xff, 0xff, //0x00002ba9 jg LBB7_16 - 0x90, //0x00002baf .p2align 4, 0x90 - //0x00002bb0 LBB7_31 - 0x45, 0x84, 0xf6, //0x00002bb0 testb %r14b, %r14b - 0x0f, 0x84, 0xde, 0x01, 0x00, 0x00, //0x00002bb3 je LBB7_36 - //0x00002bb9 LBB7_32 - 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00002bb9 vmovdqu (%r13), %xmm0 - 0xc5, 0xf9, 0x74, 0xcf, //0x00002bbf vpcmpeqb %xmm7, %xmm0, %xmm1 - 0xc5, 0xb9, 0x74, 0xd0, //0x00002bc3 vpcmpeqb %xmm0, %xmm8, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x00002bc7 vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xb1, 0xeb, 0xd0, //0x00002bcb vpor %xmm0, %xmm9, %xmm2 - 0xc5, 0xa9, 0x74, 0xd2, //0x00002bcf vpcmpeqb %xmm2, %xmm10, %xmm2 - 0xc5, 0xf1, 0xeb, 0xca, //0x00002bd3 vpor %xmm2, %xmm1, %xmm1 - 0xc5, 0xf9, 0xd7, 0xc1, //0x00002bd7 vpmovmskb %xmm1, %eax - 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00002bdb orl $65536, %eax - 0x44, 0x0f, 0xbc, 0xf0, //0x00002be0 bsfl %eax, %r14d - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00002be4 vmovq %xmm0, %rax - 0x4d, 0x39, 0xf3, //0x00002be9 cmpq %r14, %r11 - 0x0f, 0x8d, 0xaa, 0x02, 0x00, 0x00, //0x00002bec jge LBB7_55 - 0x49, 0x83, 0xfb, 0x08, //0x00002bf2 cmpq $8, %r11 - 0x0f, 0x82, 0xdc, 0x02, 0x00, 0x00, //0x00002bf6 jb LBB7_58 - 0x49, 0x89, 0x00, //0x00002bfc movq %rax, (%r8) - 0x49, 0x8d, 0x45, 0x08, //0x00002bff leaq $8(%r13), %rax - 0x49, 0x83, 0xc0, 0x08, //0x00002c03 addq $8, %r8 - 0x49, 0x8d, 0x73, 0xf8, //0x00002c07 leaq $-8(%r11), %rsi - 0x49, 0x89, 0xd6, //0x00002c0b movq %rdx, %r14 - 0x48, 0x83, 0xfe, 0x04, //0x00002c0e cmpq $4, %rsi - 0x0f, 0x8d, 0xd3, 0x02, 0x00, 0x00, //0x00002c12 jge LBB7_59 - 0xe9, 0xdf, 0x02, 0x00, 0x00, //0x00002c18 jmp LBB7_60 - 0x90, 0x90, 0x90, //0x00002c1d .p2align 4, 0x90 - //0x00002c20 LBB7_19 - 0x4d, 0x29, 0xe5, //0x00002c20 subq %r12, %r13 - 0x0f, 0xbc, 0xc0, //0x00002c23 bsfl %eax, %eax - 0x4c, 0x01, 0xe8, //0x00002c26 addq %r13, %rax - 0x48, 0x85, 0xc0, //0x00002c29 testq %rax, %rax - 0x0f, 0x89, 0xae, 0x03, 0x00, 0x00, //0x00002c2c jns LBB7_72 - 0xe9, 0xba, 0x04, 0x00, 0x00, //0x00002c32 jmp LBB7_92 - //0x00002c37 LBB7_20 - 0x41, 0x83, 0xfb, 0x10, //0x00002c37 cmpl $16, %r11d - 0x0f, 0x82, 0xc4, 0x01, 0x00, 0x00, //0x00002c3b jb LBB7_43 - 0x49, 0x89, 0x10, //0x00002c41 movq %rdx, (%r8) - 0x49, 0x89, 0x48, 0x08, //0x00002c44 movq %rcx, $8(%r8) - 0x49, 0x8d, 0x45, 0x10, //0x00002c48 leaq $16(%r13), %rax - 0x49, 0x83, 0xc0, 0x10, //0x00002c4c addq $16, %r8 - 0x49, 0x8d, 0x73, 0xf0, //0x00002c50 leaq $-16(%r11), %rsi - 0x48, 0x83, 0xfe, 0x08, //0x00002c54 cmpq $8, %rsi - 0x0f, 0x83, 0xb7, 0x01, 0x00, 0x00, //0x00002c58 jae LBB7_44 - 0xe9, 0xc4, 0x01, 0x00, 0x00, //0x00002c5e jmp LBB7_45 - //0x00002c63 LBB7_22 - 0x0f, 0xb7, 0xc1, //0x00002c63 movzwl %cx, %eax - 0x4d, 0x29, 0xe5, //0x00002c66 subq %r12, %r13 - 0x0f, 0xbc, 0xc0, //0x00002c69 bsfl %eax, %eax - 0x4c, 0x01, 0xe8, //0x00002c6c addq %r13, %rax - 0x49, 0x89, 0xd6, //0x00002c6f movq %rdx, %r14 - 0x48, 0x85, 0xc0, //0x00002c72 testq %rax, %rax - 0x0f, 0x89, 0x65, 0x03, 0x00, 0x00, //0x00002c75 jns LBB7_72 - 0xe9, 0x71, 0x04, 0x00, 0x00, //0x00002c7b jmp LBB7_92 - //0x00002c80 LBB7_23 - 0x4d, 0x89, 0xeb, //0x00002c80 movq %r13, %r11 - 0x48, 0x89, 0xc6, //0x00002c83 movq %rax, %rsi - 0x48, 0x83, 0xfe, 0x08, //0x00002c86 cmpq $8, %rsi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002c8a jb LBB7_25 - //0x00002c90 LBB7_24 - 0x49, 0x8b, 0x0b, //0x00002c90 movq (%r11), %rcx - 0x49, 0x89, 0x08, //0x00002c93 movq %rcx, (%r8) - 0x49, 0x83, 0xc3, 0x08, //0x00002c96 addq $8, %r11 - 0x49, 0x83, 0xc0, 0x08, //0x00002c9a addq $8, %r8 - 0x48, 0x83, 0xc6, 0xf8, //0x00002c9e addq $-8, %rsi - //0x00002ca2 LBB7_25 - 0x48, 0x83, 0xfe, 0x04, //0x00002ca2 cmpq $4, %rsi - 0x0f, 0x8c, 0x42, 0x00, 0x00, 0x00, //0x00002ca6 jl LBB7_26 - 0x41, 0x8b, 0x0b, //0x00002cac movl (%r11), %ecx - 0x41, 0x89, 0x08, //0x00002caf movl %ecx, (%r8) - 0x49, 0x83, 0xc3, 0x04, //0x00002cb2 addq $4, %r11 - 0x49, 0x83, 0xc0, 0x04, //0x00002cb6 addq $4, %r8 - 0x48, 0x83, 0xc6, 0xfc, //0x00002cba addq $-4, %rsi - 0x48, 0x83, 0xfe, 0x02, //0x00002cbe cmpq $2, %rsi - 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00002cc2 jae LBB7_52 - //0x00002cc8 LBB7_27 - 0x48, 0x85, 0xf6, //0x00002cc8 testq %rsi, %rsi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002ccb je LBB7_29 - //0x00002cd1 LBB7_28 - 0x41, 0x8a, 0x0b, //0x00002cd1 movb (%r11), %cl - 0x41, 0x88, 0x08, //0x00002cd4 movb %cl, (%r8) - //0x00002cd7 LBB7_29 - 0x4c, 0x29, 0xe0, //0x00002cd7 subq %r12, %rax - 0x4c, 0x01, 0xe8, //0x00002cda addq %r13, %rax - 0x48, 0xf7, 0xd0, //0x00002cdd notq %rax - 0x48, 0x85, 0xc0, //0x00002ce0 testq %rax, %rax - 0x0f, 0x89, 0xf7, 0x02, 0x00, 0x00, //0x00002ce3 jns LBB7_72 - 0xe9, 0x03, 0x04, 0x00, 0x00, //0x00002ce9 jmp LBB7_92 - //0x00002cee LBB7_26 - 0x48, 0x83, 0xfe, 0x02, //0x00002cee cmpq $2, %rsi - 0x0f, 0x82, 0xd0, 0xff, 0xff, 0xff, //0x00002cf2 jb LBB7_27 - //0x00002cf8 LBB7_52 - 0x41, 0x0f, 0xb7, 0x0b, //0x00002cf8 movzwl (%r11), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002cfc movw %cx, (%r8) - 0x49, 0x83, 0xc3, 0x02, //0x00002d00 addq $2, %r11 - 0x49, 0x83, 0xc0, 0x02, //0x00002d04 addq $2, %r8 - 0x48, 0x83, 0xc6, 0xfe, //0x00002d08 addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x00002d0c testq %rsi, %rsi - 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00002d0f jne LBB7_28 - 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002d15 jmp LBB7_29 - //0x00002d1a LBB7_30 - 0x49, 0x89, 0xc3, //0x00002d1a movq %rax, %r11 - 0xc5, 0xfd, 0x6f, 0x1d, 0x5b, 0xfb, 0xff, 0xff, //0x00002d1d vmovdqa $-1189(%rip), %ymm3 /* LCPI7_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x73, 0xfb, 0xff, 0xff, //0x00002d25 vmovdqa $-1165(%rip), %ymm4 /* LCPI7_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x8b, 0xfb, 0xff, 0xff, //0x00002d2d vmovdqa $-1141(%rip), %ymm5 /* LCPI7_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xa3, 0xfb, 0xff, 0xff, //0x00002d35 vmovdqa $-1117(%rip), %ymm6 /* LCPI7_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x3d, 0xbb, 0xfb, 0xff, 0xff, //0x00002d3d vmovdqa $-1093(%rip), %xmm7 /* LCPI7_4+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x05, 0xc3, 0xfb, 0xff, 0xff, //0x00002d45 vmovdqa $-1085(%rip), %xmm8 /* LCPI7_5+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0xcb, 0xfb, 0xff, 0xff, //0x00002d4d vmovdqa $-1077(%rip), %xmm9 /* LCPI7_6+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0xd3, 0xfb, 0xff, 0xff, //0x00002d55 vmovdqa $-1069(%rip), %xmm10 /* LCPI7_7+0(%rip) */ - 0x45, 0x84, 0xf6, //0x00002d5d testb %r14b, %r14b - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00002d60 je LBB7_36 - 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x00002d66 jmp LBB7_32 - //0x00002d6b LBB7_35 - 0x49, 0x89, 0xc3, //0x00002d6b movq %rax, %r11 - 0xc5, 0xfd, 0x6f, 0x1d, 0x0a, 0xfb, 0xff, 0xff, //0x00002d6e vmovdqa $-1270(%rip), %ymm3 /* LCPI7_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x22, 0xfb, 0xff, 0xff, //0x00002d76 vmovdqa $-1246(%rip), %ymm4 /* LCPI7_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x3a, 0xfb, 0xff, 0xff, //0x00002d7e vmovdqa $-1222(%rip), %ymm5 /* LCPI7_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x52, 0xfb, 0xff, 0xff, //0x00002d86 vmovdqa $-1198(%rip), %ymm6 /* LCPI7_3+0(%rip) */ - 0x45, 0x84, 0xf6, //0x00002d8e testb %r14b, %r14b - 0x0f, 0x85, 0x22, 0xfe, 0xff, 0xff, //0x00002d91 jne LBB7_32 - //0x00002d97 LBB7_36 - 0x4d, 0x85, 0xdb, //0x00002d97 testq %r11, %r11 - 0x0f, 0x8e, 0xaf, 0x01, 0x00, 0x00, //0x00002d9a jle LBB7_64 - 0x48, 0x85, 0xf6, //0x00002da0 testq %rsi, %rsi - 0x49, 0x89, 0xd6, //0x00002da3 movq %rdx, %r14 - 0x0f, 0x8e, 0xa6, 0x01, 0x00, 0x00, //0x00002da6 jle LBB7_65 - 0x90, 0x90, 0x90, 0x90, //0x00002dac .p2align 4, 0x90 - //0x00002db0 LBB7_38 - 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00002db0 movzbl (%r13), %eax - 0x48, 0x83, 0xf8, 0x3e, //0x00002db5 cmpq $62, %rax - 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x00002db9 ja LBB7_40 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002dbf movabsq $5764607797912141824, %rcx - 0x48, 0x0f, 0xa3, 0xc1, //0x00002dc9 btq %rax, %rcx - 0x0f, 0x82, 0xf1, 0x00, 0x00, 0x00, //0x00002dcd jb LBB7_57 - //0x00002dd3 LBB7_40 - 0x3c, 0xe2, //0x00002dd3 cmpb $-30, %al - 0x0f, 0x84, 0xe9, 0x00, 0x00, 0x00, //0x00002dd5 je LBB7_57 - 0x49, 0xff, 0xc5, //0x00002ddb incq %r13 - 0x41, 0x88, 0x00, //0x00002dde movb %al, (%r8) - 0x48, 0x83, 0xfe, 0x02, //0x00002de1 cmpq $2, %rsi - 0x48, 0x8d, 0x76, 0xff, //0x00002de5 leaq $-1(%rsi), %rsi - 0x0f, 0x8c, 0x63, 0x01, 0x00, 0x00, //0x00002de9 jl LBB7_65 - 0x49, 0xff, 0xc0, //0x00002def incq %r8 - 0x49, 0x83, 0xfb, 0x01, //0x00002df2 cmpq $1, %r11 - 0x4d, 0x8d, 0x5b, 0xff, //0x00002df6 leaq $-1(%r11), %r11 - 0x0f, 0x8f, 0xb0, 0xff, 0xff, 0xff, //0x00002dfa jg LBB7_38 - 0xe9, 0x4d, 0x01, 0x00, 0x00, //0x00002e00 jmp LBB7_65 - //0x00002e05 LBB7_43 - 0x4c, 0x89, 0xe8, //0x00002e05 movq %r13, %rax - 0x4c, 0x89, 0xde, //0x00002e08 movq %r11, %rsi - 0x48, 0x83, 0xfe, 0x08, //0x00002e0b cmpq $8, %rsi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00002e0f jb LBB7_45 - //0x00002e15 LBB7_44 - 0x48, 0x8b, 0x08, //0x00002e15 movq (%rax), %rcx - 0x49, 0x89, 0x08, //0x00002e18 movq %rcx, (%r8) - 0x48, 0x83, 0xc0, 0x08, //0x00002e1b addq $8, %rax - 0x49, 0x83, 0xc0, 0x08, //0x00002e1f addq $8, %r8 - 0x48, 0x83, 0xc6, 0xf8, //0x00002e23 addq $-8, %rsi - //0x00002e27 LBB7_45 - 0x48, 0x83, 0xfe, 0x04, //0x00002e27 cmpq $4, %rsi - 0x0f, 0x8c, 0x40, 0x00, 0x00, 0x00, //0x00002e2b jl LBB7_46 - 0x8b, 0x08, //0x00002e31 movl (%rax), %ecx - 0x41, 0x89, 0x08, //0x00002e33 movl %ecx, (%r8) - 0x48, 0x83, 0xc0, 0x04, //0x00002e36 addq $4, %rax - 0x49, 0x83, 0xc0, 0x04, //0x00002e3a addq $4, %r8 - 0x48, 0x83, 0xc6, 0xfc, //0x00002e3e addq $-4, %rsi - 0x48, 0x83, 0xfe, 0x02, //0x00002e42 cmpq $2, %rsi - 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00002e46 jae LBB7_54 - //0x00002e4c LBB7_47 - 0x48, 0x85, 0xf6, //0x00002e4c testq %rsi, %rsi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002e4f je LBB7_49 - //0x00002e55 LBB7_48 - 0x8a, 0x00, //0x00002e55 movb (%rax), %al - 0x41, 0x88, 0x00, //0x00002e57 movb %al, (%r8) - //0x00002e5a LBB7_49 - 0x4d, 0x29, 0xe5, //0x00002e5a subq %r12, %r13 - 0x4d, 0x01, 0xdd, //0x00002e5d addq %r11, %r13 - 0x4c, 0x89, 0xe8, //0x00002e60 movq %r13, %rax - 0x48, 0x85, 0xc0, //0x00002e63 testq %rax, %rax - 0x0f, 0x89, 0x74, 0x01, 0x00, 0x00, //0x00002e66 jns LBB7_72 - 0xe9, 0x80, 0x02, 0x00, 0x00, //0x00002e6c jmp LBB7_92 - //0x00002e71 LBB7_46 - 0x48, 0x83, 0xfe, 0x02, //0x00002e71 cmpq $2, %rsi - 0x0f, 0x82, 0xd1, 0xff, 0xff, 0xff, //0x00002e75 jb LBB7_47 - //0x00002e7b LBB7_54 - 0x0f, 0xb7, 0x08, //0x00002e7b movzwl (%rax), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002e7e movw %cx, (%r8) - 0x48, 0x83, 0xc0, 0x02, //0x00002e82 addq $2, %rax - 0x49, 0x83, 0xc0, 0x02, //0x00002e86 addq $2, %r8 - 0x48, 0x83, 0xc6, 0xfe, //0x00002e8a addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x00002e8e testq %rsi, %rsi - 0x0f, 0x85, 0xbe, 0xff, 0xff, 0xff, //0x00002e91 jne LBB7_48 - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00002e97 jmp LBB7_49 - //0x00002e9c LBB7_55 - 0x41, 0x83, 0xfe, 0x08, //0x00002e9c cmpl $8, %r14d - 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00002ea0 jb LBB7_66 - 0x49, 0x89, 0x00, //0x00002ea6 movq %rax, (%r8) - 0x49, 0x8d, 0x75, 0x08, //0x00002ea9 leaq $8(%r13), %rsi - 0x49, 0x83, 0xc0, 0x08, //0x00002ead addq $8, %r8 - 0x49, 0x8d, 0x46, 0xf8, //0x00002eb1 leaq $-8(%r14), %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002eb5 cmpq $4, %rax - 0x0f, 0x8d, 0xbd, 0x00, 0x00, 0x00, //0x00002eb9 jge LBB7_67 - 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x00002ebf jmp LBB7_68 - //0x00002ec4 LBB7_57 - 0x4d, 0x29, 0xe5, //0x00002ec4 subq %r12, %r13 - 0x4c, 0x89, 0xe8, //0x00002ec7 movq %r13, %rax - 0x48, 0x85, 0xc0, //0x00002eca testq %rax, %rax - 0x0f, 0x89, 0x0d, 0x01, 0x00, 0x00, //0x00002ecd jns LBB7_72 - 0xe9, 0x19, 0x02, 0x00, 0x00, //0x00002ed3 jmp LBB7_92 - //0x00002ed8 LBB7_58 - 0x4c, 0x89, 0xe8, //0x00002ed8 movq %r13, %rax - 0x4c, 0x89, 0xde, //0x00002edb movq %r11, %rsi - 0x49, 0x89, 0xd6, //0x00002ede movq %rdx, %r14 - 0x48, 0x83, 0xfe, 0x04, //0x00002ee1 cmpq $4, %rsi - 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002ee5 jl LBB7_60 - //0x00002eeb LBB7_59 - 0x8b, 0x08, //0x00002eeb movl (%rax), %ecx - 0x41, 0x89, 0x08, //0x00002eed movl %ecx, (%r8) - 0x48, 0x83, 0xc0, 0x04, //0x00002ef0 addq $4, %rax - 0x49, 0x83, 0xc0, 0x04, //0x00002ef4 addq $4, %r8 - 0x48, 0x83, 0xc6, 0xfc, //0x00002ef8 addq $-4, %rsi - //0x00002efc LBB7_60 - 0x48, 0x83, 0xfe, 0x02, //0x00002efc cmpq $2, %rsi - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00002f00 jb LBB7_61 - 0x0f, 0xb7, 0x08, //0x00002f06 movzwl (%rax), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002f09 movw %cx, (%r8) - 0x48, 0x83, 0xc0, 0x02, //0x00002f0d addq $2, %rax - 0x49, 0x83, 0xc0, 0x02, //0x00002f11 addq $2, %r8 - 0x48, 0x83, 0xc6, 0xfe, //0x00002f15 addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x00002f19 testq %rsi, %rsi - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002f1c jne LBB7_62 - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00002f22 jmp LBB7_63 - //0x00002f27 LBB7_61 - 0x48, 0x85, 0xf6, //0x00002f27 testq %rsi, %rsi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002f2a je LBB7_63 - //0x00002f30 LBB7_62 - 0x8a, 0x00, //0x00002f30 movb (%rax), %al - 0x41, 0x88, 0x00, //0x00002f32 movb %al, (%r8) - //0x00002f35 LBB7_63 - 0x4d, 0x29, 0xe3, //0x00002f35 subq %r12, %r11 - 0x4d, 0x01, 0xeb, //0x00002f38 addq %r13, %r11 - 0x49, 0xf7, 0xd3, //0x00002f3b notq %r11 - 0x4c, 0x89, 0xd8, //0x00002f3e movq %r11, %rax - 0x48, 0x85, 0xc0, //0x00002f41 testq %rax, %rax - 0x0f, 0x89, 0x96, 0x00, 0x00, 0x00, //0x00002f44 jns LBB7_72 - 0xe9, 0xa2, 0x01, 0x00, 0x00, //0x00002f4a jmp LBB7_92 - //0x00002f4f LBB7_64 - 0x49, 0x89, 0xd6, //0x00002f4f movq %rdx, %r14 - //0x00002f52 LBB7_65 - 0x4d, 0x29, 0xe5, //0x00002f52 subq %r12, %r13 - 0x48, 0xf7, 0xde, //0x00002f55 negq %rsi - 0x48, 0x19, 0xc0, //0x00002f58 sbbq %rax, %rax - 0x4c, 0x31, 0xe8, //0x00002f5b xorq %r13, %rax - 0x48, 0x85, 0xc0, //0x00002f5e testq %rax, %rax - 0x0f, 0x89, 0x79, 0x00, 0x00, 0x00, //0x00002f61 jns LBB7_72 - 0xe9, 0x85, 0x01, 0x00, 0x00, //0x00002f67 jmp LBB7_92 - //0x00002f6c LBB7_66 - 0x4c, 0x89, 0xee, //0x00002f6c movq %r13, %rsi - 0x4c, 0x89, 0xf0, //0x00002f6f movq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002f72 cmpq $4, %rax - 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002f76 jl LBB7_68 - //0x00002f7c LBB7_67 - 0x8b, 0x0e, //0x00002f7c movl (%rsi), %ecx - 0x41, 0x89, 0x08, //0x00002f7e movl %ecx, (%r8) - 0x48, 0x83, 0xc6, 0x04, //0x00002f81 addq $4, %rsi - 0x49, 0x83, 0xc0, 0x04, //0x00002f85 addq $4, %r8 - 0x48, 0x83, 0xc0, 0xfc, //0x00002f89 addq $-4, %rax - //0x00002f8d LBB7_68 - 0x48, 0x83, 0xf8, 0x02, //0x00002f8d cmpq $2, %rax - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00002f91 jb LBB7_69 - 0x0f, 0xb7, 0x0e, //0x00002f97 movzwl (%rsi), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002f9a movw %cx, (%r8) - 0x48, 0x83, 0xc6, 0x02, //0x00002f9e addq $2, %rsi - 0x49, 0x83, 0xc0, 0x02, //0x00002fa2 addq $2, %r8 - 0x48, 0x83, 0xc0, 0xfe, //0x00002fa6 addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00002faa testq %rax, %rax - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002fad jne LBB7_70 - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00002fb3 jmp LBB7_71 - //0x00002fb8 LBB7_69 - 0x48, 0x85, 0xc0, //0x00002fb8 testq %rax, %rax - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002fbb je LBB7_71 - //0x00002fc1 LBB7_70 - 0x8a, 0x06, //0x00002fc1 movb (%rsi), %al - 0x41, 0x88, 0x00, //0x00002fc3 movb %al, (%r8) - //0x00002fc6 LBB7_71 - 0x4d, 0x29, 0xe5, //0x00002fc6 subq %r12, %r13 - 0x4d, 0x01, 0xf5, //0x00002fc9 addq %r14, %r13 - 0x4c, 0x89, 0xe8, //0x00002fcc movq %r13, %rax - 0x49, 0x89, 0xd6, //0x00002fcf movq %rdx, %r14 - 0x48, 0x85, 0xc0, //0x00002fd2 testq %rax, %rax - 0x0f, 0x88, 0x16, 0x01, 0x00, 0x00, //0x00002fd5 js LBB7_92 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002fdb .p2align 4, 0x90 - //0x00002fe0 LBB7_72 - 0x49, 0x01, 0xc4, //0x00002fe0 addq %rax, %r12 - 0x49, 0x01, 0xc7, //0x00002fe3 addq %rax, %r15 - 0x49, 0x29, 0xc2, //0x00002fe6 subq %rax, %r10 - 0x0f, 0x8e, 0x22, 0x01, 0x00, 0x00, //0x00002fe9 jle LBB7_93 - 0x49, 0x29, 0xc1, //0x00002fef subq %rax, %r9 - 0x41, 0x8a, 0x0c, 0x24, //0x00002ff2 movb (%r12), %cl - 0x80, 0xf9, 0xe2, //0x00002ff6 cmpb $-30, %cl - 0x0f, 0x84, 0xa2, 0x00, 0x00, 0x00, //0x00002ff9 je LBB7_86 - 0x4c, 0x89, 0xe0, //0x00002fff movq %r12, %rax - //0x00003002 LBB7_75 - 0x0f, 0xb6, 0xc9, //0x00003002 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00003005 shlq $4, %rcx - 0x4a, 0x8b, 0x14, 0x31, //0x00003009 movq (%rcx,%r14), %rdx - 0x48, 0x63, 0xf2, //0x0000300d movslq %edx, %rsi - 0x49, 0x29, 0xf1, //0x00003010 subq %rsi, %r9 - 0x0f, 0x8c, 0x0f, 0x01, 0x00, 0x00, //0x00003013 jl LBB7_95 - 0x48, 0xc1, 0xe2, 0x20, //0x00003019 shlq $32, %rdx - 0x4a, 0x8d, 0x5c, 0x31, 0x08, //0x0000301d leaq $8(%rcx,%r14), %rbx - 0x48, 0x39, 0xfa, //0x00003022 cmpq %rdi, %rdx - 0x0f, 0x8c, 0x25, 0x00, 0x00, 0x00, //0x00003025 jl LBB7_78 - 0x8b, 0x13, //0x0000302b movl (%rbx), %edx - 0x41, 0x89, 0x17, //0x0000302d movl %edx, (%r15) - 0x4a, 0x8d, 0x5c, 0x31, 0x0c, //0x00003030 leaq $12(%rcx,%r14), %rbx - 0x49, 0x8d, 0x57, 0x04, //0x00003035 leaq $4(%r15), %rdx - 0x48, 0x8d, 0x4e, 0xfc, //0x00003039 leaq $-4(%rsi), %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000303d cmpq $2, %rcx - 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00003041 jae LBB7_79 - 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00003047 jmp LBB7_80 - 0x90, 0x90, 0x90, 0x90, //0x0000304c .p2align 4, 0x90 - //0x00003050 LBB7_78 - 0x4c, 0x89, 0xfa, //0x00003050 movq %r15, %rdx - 0x48, 0x89, 0xf1, //0x00003053 movq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00003056 cmpq $2, %rcx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x0000305a jb LBB7_80 - //0x00003060 LBB7_79 - 0x49, 0x89, 0xf8, //0x00003060 movq %rdi, %r8 - 0x0f, 0xb7, 0x3b, //0x00003063 movzwl (%rbx), %edi - 0x66, 0x89, 0x3a, //0x00003066 movw %di, (%rdx) - 0x4c, 0x89, 0xc7, //0x00003069 movq %r8, %rdi - 0x48, 0x83, 0xc3, 0x02, //0x0000306c addq $2, %rbx - 0x48, 0x83, 0xc2, 0x02, //0x00003070 addq $2, %rdx - 0x48, 0x83, 0xc1, 0xfe, //0x00003074 addq $-2, %rcx - //0x00003078 LBB7_80 - 0x48, 0x85, 0xc9, //0x00003078 testq %rcx, %rcx - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000307b je LBB7_82 - 0x8a, 0x0b, //0x00003081 movb (%rbx), %cl - 0x88, 0x0a, //0x00003083 movb %cl, (%rdx) - //0x00003085 LBB7_82 - 0x49, 0x01, 0xf7, //0x00003085 addq %rsi, %r15 - //0x00003088 LBB7_83 - 0x48, 0xff, 0xc0, //0x00003088 incq %rax - 0x49, 0x89, 0xc4, //0x0000308b movq %rax, %r12 - 0x49, 0x83, 0xfa, 0x01, //0x0000308e cmpq $1, %r10 - 0x4d, 0x8d, 0x52, 0xff, //0x00003092 leaq $-1(%r10), %r10 - 0x0f, 0x8f, 0x14, 0xf9, 0xff, 0xff, //0x00003096 jg LBB7_2 - 0xe9, 0x73, 0x00, 0x00, 0x00, //0x0000309c jmp LBB7_94 - //0x000030a1 LBB7_86 - 0x49, 0x83, 0xfa, 0x03, //0x000030a1 cmpq $3, %r10 - 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000030a5 jl LBB7_90 - 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x000030ab cmpb $-128, $1(%r12) - 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x000030b1 jne LBB7_90 - 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x000030b7 movb $2(%r12), %cl - 0x89, 0xc8, //0x000030bc movl %ecx, %eax - 0x24, 0xfe, //0x000030be andb $-2, %al - 0x3c, 0xa8, //0x000030c0 cmpb $-88, %al - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000030c2 jne LBB7_90 - 0x49, 0x8d, 0x44, 0x24, 0x02, //0x000030c8 leaq $2(%r12), %rax - 0x49, 0x83, 0xc2, 0xfe, //0x000030cd addq $-2, %r10 - 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x000030d1 jmp LBB7_75 - //0x000030d6 LBB7_90 - 0x4d, 0x85, 0xc9, //0x000030d6 testq %r9, %r9 - 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x000030d9 jle LBB7_96 - 0x41, 0xc6, 0x07, 0xe2, //0x000030df movb $-30, (%r15) - 0x49, 0xff, 0xc7, //0x000030e3 incq %r15 - 0x49, 0xff, 0xc9, //0x000030e6 decq %r9 - 0x4c, 0x89, 0xe0, //0x000030e9 movq %r12, %rax - 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000030ec jmp LBB7_83 - //0x000030f1 LBB7_92 - 0x4c, 0x2b, 0x7d, 0xc8, //0x000030f1 subq $-56(%rbp), %r15 - 0x48, 0xf7, 0xd0, //0x000030f5 notq %rax - 0x49, 0x01, 0xc7, //0x000030f8 addq %rax, %r15 - 0x48, 0x8b, 0x4d, 0xc0, //0x000030fb movq $-64(%rbp), %rcx - 0x4c, 0x89, 0x39, //0x000030ff movq %r15, (%rcx) - 0x4c, 0x2b, 0x65, 0xd0, //0x00003102 subq $-48(%rbp), %r12 - 0x49, 0x01, 0xc4, //0x00003106 addq %rax, %r12 - 0x49, 0xf7, 0xd4, //0x00003109 notq %r12 - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x0000310c jmp LBB7_97 - //0x00003111 LBB7_93 - 0x4c, 0x89, 0xe0, //0x00003111 movq %r12, %rax - //0x00003114 LBB7_94 - 0x4c, 0x2b, 0x7d, 0xc8, //0x00003114 subq $-56(%rbp), %r15 - 0x48, 0x8b, 0x4d, 0xc0, //0x00003118 movq $-64(%rbp), %rcx - 0x4c, 0x89, 0x39, //0x0000311c movq %r15, (%rcx) - 0x48, 0x2b, 0x45, 0xd0, //0x0000311f subq $-48(%rbp), %rax - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003123 jmp LBB7_98 - //0x00003128 LBB7_95 - 0x4c, 0x2b, 0x7d, 0xc8, //0x00003128 subq $-56(%rbp), %r15 - 0x48, 0x8b, 0x45, 0xc0, //0x0000312c movq $-64(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00003130 movq %r15, (%rax) - //0x00003133 LBB7_96 - 0x49, 0xf7, 0xd4, //0x00003133 notq %r12 - 0x4c, 0x03, 0x65, 0xd0, //0x00003136 addq $-48(%rbp), %r12 - //0x0000313a LBB7_97 - 0x4c, 0x89, 0xe0, //0x0000313a movq %r12, %rax - //0x0000313d LBB7_98 - 0x48, 0x83, 0xc4, 0x18, //0x0000313d addq $24, %rsp - 0x5b, //0x00003141 popq %rbx - 0x41, 0x5c, //0x00003142 popq %r12 - 0x41, 0x5d, //0x00003144 popq %r13 - 0x41, 0x5e, //0x00003146 popq %r14 - 0x41, 0x5f, //0x00003148 popq %r15 - 0x5d, //0x0000314a popq %rbp - 0xc5, 0xf8, 0x77, //0x0000314b vzeroupper - 0xc3, //0x0000314e retq - 0x90, //0x0000314f .p2align 4, 0x90 - //0x00003150 _atof_eisel_lemire64 - 0x55, //0x00003150 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003151 movq %rsp, %rbp - 0x41, 0x57, //0x00003154 pushq %r15 - 0x41, 0x56, //0x00003156 pushq %r14 - 0x53, //0x00003158 pushq %rbx - 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00003159 leal $348(%rsi), %eax - 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x0000315f cmpl $695, %eax - 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x00003164 ja LBB8_1 - 0x49, 0x89, 0xc8, //0x0000316a movq %rcx, %r8 - 0x41, 0x89, 0xd1, //0x0000316d movl %edx, %r9d - 0x48, 0x85, 0xff, //0x00003170 testq %rdi, %rdi - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00003173 je LBB8_4 - 0x4c, 0x0f, 0xbd, 0xd7, //0x00003179 bsrq %rdi, %r10 - 0x49, 0x83, 0xf2, 0x3f, //0x0000317d xorq $63, %r10 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00003181 jmp LBB8_5 - //0x00003186 LBB8_4 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003186 movl $64, %r10d - //0x0000318c LBB8_5 - 0x44, 0x89, 0xd1, //0x0000318c movl %r10d, %ecx - 0x48, 0xd3, 0xe7, //0x0000318f shlq %cl, %rdi - 0x89, 0xc1, //0x00003192 movl %eax, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00003194 shlq $4, %rcx - 0x4c, 0x8d, 0x3d, 0xe1, 0x6e, 0x00, 0x00, //0x00003198 leaq $28385(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ - 0x48, 0x89, 0xf8, //0x0000319f movq %rdi, %rax - 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x000031a2 mulq $8(%rcx,%r15) - 0x49, 0x89, 0xc3, //0x000031a7 movq %rax, %r11 - 0x49, 0x89, 0xd6, //0x000031aa movq %rdx, %r14 - 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000031ad andl $511, %edx - 0x48, 0x89, 0xfb, //0x000031b3 movq %rdi, %rbx - 0x48, 0xf7, 0xd3, //0x000031b6 notq %rbx - 0x48, 0x39, 0xd8, //0x000031b9 cmpq %rbx, %rax - 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x000031bc jbe LBB8_11 - 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000031c2 cmpl $511, %edx - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x000031c8 jne LBB8_11 - 0x48, 0x89, 0xf8, //0x000031ce movq %rdi, %rax - 0x4a, 0xf7, 0x24, 0x39, //0x000031d1 mulq (%rcx,%r15) - 0x49, 0x01, 0xd3, //0x000031d5 addq %rdx, %r11 - 0x49, 0x83, 0xd6, 0x00, //0x000031d8 adcq $0, %r14 - 0x44, 0x89, 0xf2, //0x000031dc movl %r14d, %edx - 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000031df andl $511, %edx - 0x48, 0x39, 0xd8, //0x000031e5 cmpq %rbx, %rax - 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000031e8 jbe LBB8_11 - 0x49, 0x83, 0xfb, 0xff, //0x000031ee cmpq $-1, %r11 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000031f2 jne LBB8_11 - 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000031f8 cmpl $511, %edx - 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x000031fe je LBB8_1 - //0x00003204 LBB8_11 - 0x4c, 0x89, 0xf7, //0x00003204 movq %r14, %rdi - 0x48, 0xc1, 0xef, 0x3f, //0x00003207 shrq $63, %rdi - 0x8d, 0x4f, 0x09, //0x0000320b leal $9(%rdi), %ecx - 0x49, 0xd3, 0xee, //0x0000320e shrq %cl, %r14 - 0x4c, 0x09, 0xda, //0x00003211 orq %r11, %rdx - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00003214 jne LBB8_14 - 0x44, 0x89, 0xf0, //0x0000321a movl %r14d, %eax - 0x83, 0xe0, 0x03, //0x0000321d andl $3, %eax - 0x83, 0xf8, 0x01, //0x00003220 cmpl $1, %eax - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00003223 je LBB8_1 - //0x00003229 LBB8_14 - 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x00003229 imull $217706, %esi, %eax - 0xc1, 0xf8, 0x10, //0x0000322f sarl $16, %eax - 0x05, 0x3f, 0x04, 0x00, 0x00, //0x00003232 addl $1087, %eax - 0x48, 0x98, //0x00003237 cltq - 0x4c, 0x29, 0xd0, //0x00003239 subq %r10, %rax - 0x48, 0x83, 0xf7, 0x01, //0x0000323c xorq $1, %rdi - 0x48, 0x29, 0xf8, //0x00003240 subq %rdi, %rax - 0x44, 0x89, 0xf2, //0x00003243 movl %r14d, %edx - 0x83, 0xe2, 0x01, //0x00003246 andl $1, %edx - 0x4c, 0x01, 0xf2, //0x00003249 addq %r14, %rdx - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x0000324c movabsq $126100789566373888, %rcx - 0x48, 0x21, 0xd1, //0x00003256 andq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x01, //0x00003259 cmpq $1, %rcx - 0x48, 0x83, 0xd8, 0xff, //0x0000325d sbbq $-1, %rax - 0x48, 0x8d, 0x70, 0xff, //0x00003261 leaq $-1(%rax), %rsi - 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00003265 cmpq $2045, %rsi - 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x0000326c jbe LBB8_16 - //0x00003272 LBB8_1 - 0x31, 0xc0, //0x00003272 xorl %eax, %eax - //0x00003274 LBB8_17 - 0x5b, //0x00003274 popq %rbx - 0x41, 0x5e, //0x00003275 popq %r14 - 0x41, 0x5f, //0x00003277 popq %r15 - 0x5d, //0x00003279 popq %rbp - 0xc3, //0x0000327a retq - //0x0000327b LBB8_16 - 0x48, 0x83, 0xf9, 0x01, //0x0000327b cmpq $1, %rcx - 0xb1, 0x02, //0x0000327f movb $2, %cl - 0x80, 0xd9, 0x00, //0x00003281 sbbb $0, %cl - 0x48, 0xd3, 0xea, //0x00003284 shrq %cl, %rdx - 0x48, 0xc1, 0xe0, 0x34, //0x00003287 shlq $52, %rax - 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000328b movabsq $4503599627370495, %rcx - 0x48, 0x21, 0xd1, //0x00003295 andq %rdx, %rcx - 0x48, 0x09, 0xc1, //0x00003298 orq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000329b movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xc8, //0x000032a5 orq %rcx, %rax - 0x41, 0x83, 0xf9, 0xff, //0x000032a8 cmpl $-1, %r9d - 0x48, 0x0f, 0x45, 0xc1, //0x000032ac cmovneq %rcx, %rax - 0x49, 0x89, 0x00, //0x000032b0 movq %rax, (%r8) - 0xb0, 0x01, //0x000032b3 movb $1, %al - 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000032b5 jmp LBB8_17 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032ba .p2align 5, 0x00 - //0x000032c0 LCPI9_0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032c0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032c8 .quad 1 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032d0 .quad 1 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032d8 .quad 1 - //0x000032e0 .p2align 3, 0x00 - //0x000032e0 LCPI9_1 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032e0 .quad 1 - //0x000032e8 LCPI9_2 - 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032e8 .quad 10000 - //0x000032f0 LCPI9_3 - 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000032f0 .quad 10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032f8 .p2align 4, 0x90 - //0x00003300 _decimal_to_f64 - 0x55, //0x00003300 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003301 movq %rsp, %rbp - 0x41, 0x57, //0x00003304 pushq %r15 - 0x41, 0x56, //0x00003306 pushq %r14 - 0x41, 0x55, //0x00003308 pushq %r13 - 0x41, 0x54, //0x0000330a pushq %r12 - 0x53, //0x0000330c pushq %rbx - 0x50, //0x0000330d pushq %rax - 0x49, 0x89, 0xf5, //0x0000330e movq %rsi, %r13 - 0x49, 0x89, 0xfc, //0x00003311 movq %rdi, %r12 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00003314 movabsq $4503599627370496, %rbx - 0x83, 0x7f, 0x10, 0x00, //0x0000331e cmpl $0, $16(%rdi) - 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00003322 je LBB9_4 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00003328 movabsq $9218868437227405312, %r14 - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00003332 movl $20(%r12), %eax - 0x45, 0x31, 0xff, //0x00003337 xorl %r15d, %r15d - 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000333a cmpl $310, %eax - 0x0f, 0x8f, 0x1e, 0x06, 0x00, 0x00, //0x0000333f jg LBB9_84 - 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00003345 cmpl $-330, %eax - 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000334a jge LBB9_5 - 0x45, 0x31, 0xf6, //0x00003350 xorl %r14d, %r14d - 0xe9, 0x0b, 0x06, 0x00, 0x00, //0x00003353 jmp LBB9_84 - //0x00003358 LBB9_4 - 0x45, 0x31, 0xf6, //0x00003358 xorl %r14d, %r14d - 0x45, 0x31, 0xff, //0x0000335b xorl %r15d, %r15d - 0xe9, 0x00, 0x06, 0x00, 0x00, //0x0000335e jmp LBB9_84 - //0x00003363 LBB9_5 - 0x85, 0xc0, //0x00003363 testl %eax, %eax - 0x4c, 0x89, 0x6d, 0xd0, //0x00003365 movq %r13, $-48(%rbp) - 0x0f, 0x8e, 0xd0, 0x00, 0x00, 0x00, //0x00003369 jle LBB9_20 - 0x45, 0x31, 0xff, //0x0000336f xorl %r15d, %r15d - 0x4c, 0x8d, 0x2d, 0x97, 0x98, 0x00, 0x00, //0x00003372 leaq $39063(%rip), %r13 /* _POW_TAB+0(%rip) */ - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00003379 jmp LBB9_9 - 0x90, 0x90, //0x0000337e .p2align 4, 0x90 - //0x00003380 LBB9_7 - 0xf7, 0xdb, //0x00003380 negl %ebx - 0x4c, 0x89, 0xe7, //0x00003382 movq %r12, %rdi - 0x89, 0xde, //0x00003385 movl %ebx, %esi - 0xe8, 0x14, 0x68, 0x00, 0x00, //0x00003387 callq _right_shift - //0x0000338c LBB9_8 - 0x45, 0x01, 0xf7, //0x0000338c addl %r14d, %r15d - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x0000338f movl $20(%r12), %eax - 0x85, 0xc0, //0x00003394 testl %eax, %eax - 0x0f, 0x8e, 0xa3, 0x00, 0x00, 0x00, //0x00003396 jle LBB9_20 - //0x0000339c LBB9_9 - 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x0000339c movl $27, %r14d - 0x83, 0xf8, 0x08, //0x000033a2 cmpl $8, %eax - 0x0f, 0x8f, 0x07, 0x00, 0x00, 0x00, //0x000033a5 jg LBB9_11 - 0x89, 0xc0, //0x000033ab movl %eax, %eax - 0x45, 0x8b, 0x74, 0x85, 0x00, //0x000033ad movl (%r13,%rax,4), %r14d - //0x000033b2 LBB9_11 - 0x45, 0x85, 0xf6, //0x000033b2 testl %r14d, %r14d - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000033b5 je LBB9_8 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000033bb cmpl $0, $16(%r12) - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x000033c1 je LBB9_8 - 0x44, 0x89, 0xf3, //0x000033c7 movl %r14d, %ebx - 0xf7, 0xdb, //0x000033ca negl %ebx - 0x45, 0x85, 0xf6, //0x000033cc testl %r14d, %r14d - 0x0f, 0x88, 0x2b, 0x00, 0x00, 0x00, //0x000033cf js LBB9_16 - 0x41, 0x83, 0xfe, 0x3d, //0x000033d5 cmpl $61, %r14d - 0x0f, 0x8c, 0xa1, 0xff, 0xff, 0xff, //0x000033d9 jl LBB9_7 - 0x90, //0x000033df .p2align 4, 0x90 - //0x000033e0 LBB9_15 - 0x4c, 0x89, 0xe7, //0x000033e0 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x000033e3 movl $60, %esi - 0xe8, 0xb3, 0x67, 0x00, 0x00, //0x000033e8 callq _right_shift - 0x8d, 0x43, 0x3c, //0x000033ed leal $60(%rbx), %eax - 0x83, 0xfb, 0x88, //0x000033f0 cmpl $-120, %ebx - 0x89, 0xc3, //0x000033f3 movl %eax, %ebx - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x000033f5 jl LBB9_15 - 0xe9, 0x80, 0xff, 0xff, 0xff, //0x000033fb jmp LBB9_7 - //0x00003400 LBB9_16 - 0x41, 0x83, 0xfe, 0xc3, //0x00003400 cmpl $-61, %r14d - 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00003404 jg LBB9_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000340a .p2align 4, 0x90 - //0x00003410 LBB9_17 - 0x4c, 0x89, 0xe7, //0x00003410 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003413 movl $60, %esi - 0xe8, 0x93, 0x65, 0x00, 0x00, //0x00003418 callq _left_shift - 0x8d, 0x73, 0xc4, //0x0000341d leal $-60(%rbx), %esi - 0x83, 0xfb, 0x78, //0x00003420 cmpl $120, %ebx - 0x89, 0xf3, //0x00003423 movl %esi, %ebx - 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00003425 jg LBB9_17 - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000342b jmp LBB9_19 - //0x00003430 LBB9_18 - 0x89, 0xde, //0x00003430 movl %ebx, %esi - //0x00003432 LBB9_19 - 0x4c, 0x89, 0xe7, //0x00003432 movq %r12, %rdi - 0xe8, 0x76, 0x65, 0x00, 0x00, //0x00003435 callq _left_shift - 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x0000343a jmp LBB9_8 - //0x0000343f LBB9_20 - 0x4c, 0x8d, 0x35, 0xca, 0x97, 0x00, 0x00, //0x0000343f leaq $38858(%rip), %r14 /* _POW_TAB+0(%rip) */ - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003446 jmp LBB9_23 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000344b .p2align 4, 0x90 - //0x00003450 LBB9_21 - 0x4c, 0x89, 0xe7, //0x00003450 movq %r12, %rdi - 0xe8, 0x58, 0x65, 0x00, 0x00, //0x00003453 callq _left_shift - //0x00003458 LBB9_22 - 0x45, 0x29, 0xef, //0x00003458 subl %r13d, %r15d - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x0000345b movl $20(%r12), %eax - //0x00003460 LBB9_23 - 0x85, 0xc0, //0x00003460 testl %eax, %eax - 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00003462 js LBB9_26 - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003468 jne LBB9_37 - 0x49, 0x8b, 0x0c, 0x24, //0x0000346e movq (%r12), %rcx - 0x80, 0x39, 0x35, //0x00003472 cmpb $53, (%rcx) - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00003475 jl LBB9_27 - 0xe9, 0xac, 0x00, 0x00, 0x00, //0x0000347b jmp LBB9_37 - //0x00003480 .p2align 4, 0x90 - //0x00003480 LBB9_26 - 0x41, 0xbd, 0x1b, 0x00, 0x00, 0x00, //0x00003480 movl $27, %r13d - 0x83, 0xf8, 0xf8, //0x00003486 cmpl $-8, %eax - 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00003489 jl LBB9_28 - //0x0000348f LBB9_27 - 0xf7, 0xd8, //0x0000348f negl %eax - 0x48, 0x98, //0x00003491 cltq - 0x45, 0x8b, 0x2c, 0x86, //0x00003493 movl (%r14,%rax,4), %r13d - //0x00003497 LBB9_28 - 0x45, 0x85, 0xed, //0x00003497 testl %r13d, %r13d - 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x0000349a je LBB9_22 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000034a0 cmpl $0, $16(%r12) - 0x0f, 0x84, 0xac, 0xff, 0xff, 0xff, //0x000034a6 je LBB9_22 - 0x45, 0x85, 0xed, //0x000034ac testl %r13d, %r13d - 0x0f, 0x8e, 0x3b, 0x00, 0x00, 0x00, //0x000034af jle LBB9_34 - 0x44, 0x89, 0xee, //0x000034b5 movl %r13d, %esi - 0x41, 0x83, 0xfd, 0x3d, //0x000034b8 cmpl $61, %r13d - 0x0f, 0x8c, 0x8e, 0xff, 0xff, 0xff, //0x000034bc jl LBB9_21 - 0x44, 0x89, 0xeb, //0x000034c2 movl %r13d, %ebx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000034c5 .p2align 4, 0x90 - //0x000034d0 LBB9_33 - 0x4c, 0x89, 0xe7, //0x000034d0 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x000034d3 movl $60, %esi - 0xe8, 0xd3, 0x64, 0x00, 0x00, //0x000034d8 callq _left_shift - 0x8d, 0x73, 0xc4, //0x000034dd leal $-60(%rbx), %esi - 0x83, 0xfb, 0x78, //0x000034e0 cmpl $120, %ebx - 0x89, 0xf3, //0x000034e3 movl %esi, %ebx - 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x000034e5 jg LBB9_33 - 0xe9, 0x60, 0xff, 0xff, 0xff, //0x000034eb jmp LBB9_21 - //0x000034f0 LBB9_34 - 0x44, 0x89, 0xeb, //0x000034f0 movl %r13d, %ebx - 0x41, 0x83, 0xfd, 0xc3, //0x000034f3 cmpl $-61, %r13d - 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x000034f7 jg LBB9_36 - 0x90, 0x90, 0x90, //0x000034fd .p2align 4, 0x90 - //0x00003500 LBB9_35 - 0x4c, 0x89, 0xe7, //0x00003500 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003503 movl $60, %esi - 0xe8, 0x93, 0x66, 0x00, 0x00, //0x00003508 callq _right_shift - 0x8d, 0x43, 0x3c, //0x0000350d leal $60(%rbx), %eax - 0x83, 0xfb, 0x88, //0x00003510 cmpl $-120, %ebx - 0x89, 0xc3, //0x00003513 movl %eax, %ebx - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003515 jl LBB9_35 - //0x0000351b LBB9_36 - 0xf7, 0xdb, //0x0000351b negl %ebx - 0x4c, 0x89, 0xe7, //0x0000351d movq %r12, %rdi - 0x89, 0xde, //0x00003520 movl %ebx, %esi - 0xe8, 0x79, 0x66, 0x00, 0x00, //0x00003522 callq _right_shift - 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00003527 jmp LBB9_22 - //0x0000352c LBB9_37 - 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x0000352c cmpl $-1022, %r15d - 0x0f, 0x8f, 0x5b, 0x00, 0x00, 0x00, //0x00003533 jg LBB9_43 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00003539 cmpl $0, $16(%r12) - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000353f movq $-48(%rbp), %r13 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00003543 movabsq $4503599627370496, %rbx - 0x0f, 0x84, 0x67, 0x00, 0x00, 0x00, //0x0000354d je LBB9_45 - 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00003553 cmpl $-1082, %r15d - 0x0f, 0x8f, 0x65, 0x00, 0x00, 0x00, //0x0000355a jg LBB9_46 - 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00003560 addl $961, %r15d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003567 .p2align 4, 0x90 - //0x00003570 LBB9_41 - 0x4c, 0x89, 0xe7, //0x00003570 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003573 movl $60, %esi - 0xe8, 0x23, 0x66, 0x00, 0x00, //0x00003578 callq _right_shift - 0x41, 0x83, 0xc7, 0x3c, //0x0000357d addl $60, %r15d - 0x41, 0x83, 0xff, 0x88, //0x00003581 cmpl $-120, %r15d - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003585 jl LBB9_41 - 0x41, 0x83, 0xc7, 0x3c, //0x0000358b addl $60, %r15d - 0xe9, 0x38, 0x00, 0x00, 0x00, //0x0000358f jmp LBB9_47 - //0x00003594 LBB9_43 - 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00003594 cmpl $1024, %r15d - 0x4c, 0x8b, 0x6d, 0xd0, //0x0000359b movq $-48(%rbp), %r13 - 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x0000359f movabsq $4503599627370496, %rbx - 0x0f, 0x8f, 0x7d, 0x03, 0x00, 0x00, //0x000035a9 jg LBB9_81 - 0x41, 0xff, 0xcf, //0x000035af decl %r15d - 0x45, 0x89, 0xfe, //0x000035b2 movl %r15d, %r14d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000035b5 jmp LBB9_48 - //0x000035ba LBB9_45 - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x000035ba movl $-1022, %r14d - 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000035c0 jmp LBB9_50 - //0x000035c5 LBB9_46 - 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x000035c5 addl $1021, %r15d - //0x000035cc LBB9_47 - 0x41, 0xf7, 0xdf, //0x000035cc negl %r15d - 0x4c, 0x89, 0xe7, //0x000035cf movq %r12, %rdi - 0x44, 0x89, 0xfe, //0x000035d2 movl %r15d, %esi - 0xe8, 0xc6, 0x65, 0x00, 0x00, //0x000035d5 callq _right_shift - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x000035da movl $-1022, %r14d - //0x000035e0 LBB9_48 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x000035e0 cmpl $0, $16(%r12) - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000035e6 je LBB9_50 - 0x4c, 0x89, 0xe7, //0x000035ec movq %r12, %rdi - 0xbe, 0x35, 0x00, 0x00, 0x00, //0x000035ef movl $53, %esi - 0xe8, 0xb7, 0x63, 0x00, 0x00, //0x000035f4 callq _left_shift - //0x000035f9 LBB9_50 - 0x4d, 0x63, 0x54, 0x24, 0x14, //0x000035f9 movslq $20(%r12), %r10 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000035fe movq $-1, %r15 - 0x49, 0x83, 0xfa, 0x14, //0x00003605 cmpq $20, %r10 - 0x0f, 0x8f, 0x35, 0x03, 0x00, 0x00, //0x00003609 jg LBB9_83 - 0x44, 0x89, 0xd1, //0x0000360f movl %r10d, %ecx - 0x45, 0x85, 0xd2, //0x00003612 testl %r10d, %r10d - 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x00003615 jle LBB9_55 - 0x49, 0x63, 0x74, 0x24, 0x10, //0x0000361b movslq $16(%r12), %rsi - 0x31, 0xd2, //0x00003620 xorl %edx, %edx - 0x45, 0x31, 0xff, //0x00003622 xorl %r15d, %r15d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003625 .p2align 4, 0x90 - //0x00003630 LBB9_53 - 0x48, 0x39, 0xf2, //0x00003630 cmpq %rsi, %rdx - 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00003633 jge LBB9_56 - 0x4b, 0x8d, 0x04, 0xbf, //0x00003639 leaq (%r15,%r15,4), %rax - 0x49, 0x8b, 0x3c, 0x24, //0x0000363d movq (%r12), %rdi - 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00003641 movsbq (%rdi,%rdx), %rdi - 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00003646 leaq $-48(%rdi,%rax,2), %r15 - 0x48, 0xff, 0xc2, //0x0000364b incq %rdx - 0x48, 0x39, 0xd1, //0x0000364e cmpq %rdx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00003651 jne LBB9_53 - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003657 jmp LBB9_56 - //0x0000365c LBB9_55 - 0x31, 0xd2, //0x0000365c xorl %edx, %edx - 0x45, 0x31, 0xff, //0x0000365e xorl %r15d, %r15d - //0x00003661 LBB9_56 - 0x39, 0xd1, //0x00003661 cmpl %edx, %ecx - 0x0f, 0x8e, 0x46, 0x02, 0x00, 0x00, //0x00003663 jle LBB9_69 - 0x45, 0x89, 0xd1, //0x00003669 movl %r10d, %r9d - 0x41, 0x29, 0xd1, //0x0000366c subl %edx, %r9d - 0x41, 0x83, 0xf9, 0x10, //0x0000366f cmpl $16, %r9d - 0x0f, 0x82, 0x22, 0x02, 0x00, 0x00, //0x00003673 jb LBB9_67 - 0x45, 0x89, 0xc8, //0x00003679 movl %r9d, %r8d - 0xc5, 0xf9, 0x6f, 0x05, 0x3c, 0xfc, 0xff, 0xff, //0x0000367c vmovdqa $-964(%rip), %xmm0 /* LCPI9_0+0(%rip) */ - 0xc4, 0xc3, 0xf9, 0x22, 0xc7, 0x00, //0x00003684 vpinsrq $0, %r15, %xmm0, %xmm0 - 0x41, 0x83, 0xe0, 0xf0, //0x0000368a andl $-16, %r8d - 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0x28, 0xfc, 0xff, 0xff, 0xf0, //0x0000368e vpblendd $240, $-984(%rip), %ymm0, %ymm0 /* LCPI9_0+0(%rip) */ - 0x41, 0x8d, 0x78, 0xf0, //0x00003698 leal $-16(%r8), %edi - 0x89, 0xf8, //0x0000369c movl %edi, %eax - 0xc1, 0xe8, 0x04, //0x0000369e shrl $4, %eax - 0xff, 0xc0, //0x000036a1 incl %eax - 0x89, 0xc6, //0x000036a3 movl %eax, %esi - 0x83, 0xe6, 0x03, //0x000036a5 andl $3, %esi - 0x83, 0xff, 0x30, //0x000036a8 cmpl $48, %edi - 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x000036ab jae LBB9_60 - 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x26, 0xfc, 0xff, 0xff, //0x000036b1 vpbroadcastq $-986(%rip), %ymm2 /* LCPI9_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0xda, //0x000036ba vmovdqa %ymm2, %ymm3 - 0xc5, 0xfd, 0x6f, 0xca, //0x000036be vmovdqa %ymm2, %ymm1 - 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x000036c2 jmp LBB9_62 - //0x000036c7 LBB9_60 - 0x89, 0xf7, //0x000036c7 movl %esi, %edi - 0x29, 0xc7, //0x000036c9 subl %eax, %edi - 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x0c, 0xfc, 0xff, 0xff, //0x000036cb vpbroadcastq $-1012(%rip), %ymm2 /* LCPI9_1+0(%rip) */ - 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x0b, 0xfc, 0xff, 0xff, //0x000036d4 vpbroadcastq $-1013(%rip), %ymm4 /* LCPI9_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0xda, //0x000036dd vmovdqa %ymm2, %ymm3 - 0xc5, 0xfd, 0x6f, 0xca, //0x000036e1 vmovdqa %ymm2, %ymm1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000036e5 .p2align 4, 0x90 - //0x000036f0 LBB9_61 - 0xc5, 0xfd, 0xf4, 0xec, //0x000036f0 vpmuludq %ymm4, %ymm0, %ymm5 - 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x000036f4 vpsrlq $32, %ymm0, %ymm0 - 0xc5, 0xfd, 0xf4, 0xc4, //0x000036f9 vpmuludq %ymm4, %ymm0, %ymm0 - 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x000036fd vpsllq $32, %ymm0, %ymm0 - 0xc5, 0xd5, 0xd4, 0xc0, //0x00003702 vpaddq %ymm0, %ymm5, %ymm0 - 0xc5, 0xed, 0xf4, 0xec, //0x00003706 vpmuludq %ymm4, %ymm2, %ymm5 - 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000370a vpsrlq $32, %ymm2, %ymm2 - 0xc5, 0xed, 0xf4, 0xd4, //0x0000370f vpmuludq %ymm4, %ymm2, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003713 vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xd5, 0xd4, 0xd2, //0x00003718 vpaddq %ymm2, %ymm5, %ymm2 - 0xc5, 0xe5, 0xf4, 0xec, //0x0000371c vpmuludq %ymm4, %ymm3, %ymm5 - 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003720 vpsrlq $32, %ymm3, %ymm3 - 0xc5, 0xe5, 0xf4, 0xdc, //0x00003725 vpmuludq %ymm4, %ymm3, %ymm3 - 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003729 vpsllq $32, %ymm3, %ymm3 - 0xc5, 0xd5, 0xd4, 0xdb, //0x0000372e vpaddq %ymm3, %ymm5, %ymm3 - 0xc5, 0xf5, 0xf4, 0xec, //0x00003732 vpmuludq %ymm4, %ymm1, %ymm5 - 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003736 vpsrlq $32, %ymm1, %ymm1 - 0xc5, 0xf5, 0xf4, 0xcc, //0x0000373b vpmuludq %ymm4, %ymm1, %ymm1 - 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x0000373f vpsllq $32, %ymm1, %ymm1 - 0xc5, 0xd5, 0xd4, 0xc9, //0x00003744 vpaddq %ymm1, %ymm5, %ymm1 - 0x83, 0xc7, 0x04, //0x00003748 addl $4, %edi - 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x0000374b jne LBB9_61 - //0x00003751 LBB9_62 - 0x85, 0xf6, //0x00003751 testl %esi, %esi - 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00003753 je LBB9_65 - 0xf7, 0xde, //0x00003759 negl %esi - 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x8c, 0xfb, 0xff, 0xff, //0x0000375b vpbroadcastq $-1140(%rip), %ymm4 /* LCPI9_3+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003764 .p2align 4, 0x90 - //0x00003770 LBB9_64 - 0xc5, 0xfd, 0xf4, 0xec, //0x00003770 vpmuludq %ymm4, %ymm0, %ymm5 - 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003774 vpsrlq $32, %ymm0, %ymm0 - 0xc5, 0xfd, 0xf4, 0xc4, //0x00003779 vpmuludq %ymm4, %ymm0, %ymm0 - 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x0000377d vpsllq $32, %ymm0, %ymm0 - 0xc5, 0xd5, 0xd4, 0xc0, //0x00003782 vpaddq %ymm0, %ymm5, %ymm0 - 0xc5, 0xed, 0xf4, 0xec, //0x00003786 vpmuludq %ymm4, %ymm2, %ymm5 - 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000378a vpsrlq $32, %ymm2, %ymm2 - 0xc5, 0xed, 0xf4, 0xd4, //0x0000378f vpmuludq %ymm4, %ymm2, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003793 vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xd5, 0xd4, 0xd2, //0x00003798 vpaddq %ymm2, %ymm5, %ymm2 - 0xc5, 0xe5, 0xf4, 0xec, //0x0000379c vpmuludq %ymm4, %ymm3, %ymm5 - 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x000037a0 vpsrlq $32, %ymm3, %ymm3 - 0xc5, 0xe5, 0xf4, 0xdc, //0x000037a5 vpmuludq %ymm4, %ymm3, %ymm3 - 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x000037a9 vpsllq $32, %ymm3, %ymm3 - 0xc5, 0xd5, 0xd4, 0xdb, //0x000037ae vpaddq %ymm3, %ymm5, %ymm3 - 0xc5, 0xf5, 0xf4, 0xec, //0x000037b2 vpmuludq %ymm4, %ymm1, %ymm5 - 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x000037b6 vpsrlq $32, %ymm1, %ymm1 - 0xc5, 0xf5, 0xf4, 0xcc, //0x000037bb vpmuludq %ymm4, %ymm1, %ymm1 - 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x000037bf vpsllq $32, %ymm1, %ymm1 - 0xc5, 0xd5, 0xd4, 0xc9, //0x000037c4 vpaddq %ymm1, %ymm5, %ymm1 - 0xff, 0xc6, //0x000037c8 incl %esi - 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x000037ca jne LBB9_64 - //0x000037d0 LBB9_65 - 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x000037d0 vpsrlq $32, %ymm2, %ymm4 - 0xc5, 0xdd, 0xf4, 0xe0, //0x000037d5 vpmuludq %ymm0, %ymm4, %ymm4 - 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x000037d9 vpsrlq $32, %ymm0, %ymm5 - 0xc5, 0xed, 0xf4, 0xed, //0x000037de vpmuludq %ymm5, %ymm2, %ymm5 - 0xc5, 0xd5, 0xd4, 0xe4, //0x000037e2 vpaddq %ymm4, %ymm5, %ymm4 - 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x000037e6 vpsllq $32, %ymm4, %ymm4 - 0xc5, 0xed, 0xf4, 0xc0, //0x000037eb vpmuludq %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xd4, 0xc4, //0x000037ef vpaddq %ymm4, %ymm0, %ymm0 - 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x000037f3 vpsrlq $32, %ymm3, %ymm2 - 0xc5, 0xed, 0xf4, 0xd0, //0x000037f8 vpmuludq %ymm0, %ymm2, %ymm2 - 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x000037fc vpsrlq $32, %ymm0, %ymm4 - 0xc5, 0xe5, 0xf4, 0xe4, //0x00003801 vpmuludq %ymm4, %ymm3, %ymm4 - 0xc5, 0xdd, 0xd4, 0xd2, //0x00003805 vpaddq %ymm2, %ymm4, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003809 vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xe5, 0xf4, 0xc0, //0x0000380e vpmuludq %ymm0, %ymm3, %ymm0 - 0xc5, 0xfd, 0xd4, 0xc2, //0x00003812 vpaddq %ymm2, %ymm0, %ymm0 - 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x00003816 vpsrlq $32, %ymm1, %ymm2 - 0xc5, 0xed, 0xf4, 0xd0, //0x0000381b vpmuludq %ymm0, %ymm2, %ymm2 - 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x0000381f vpsrlq $32, %ymm0, %ymm3 - 0xc5, 0xf5, 0xf4, 0xdb, //0x00003824 vpmuludq %ymm3, %ymm1, %ymm3 - 0xc5, 0xe5, 0xd4, 0xd2, //0x00003828 vpaddq %ymm2, %ymm3, %ymm2 - 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x0000382c vpsllq $32, %ymm2, %ymm2 - 0xc5, 0xf5, 0xf4, 0xc0, //0x00003831 vpmuludq %ymm0, %ymm1, %ymm0 - 0xc5, 0xfd, 0xd4, 0xc2, //0x00003835 vpaddq %ymm2, %ymm0, %ymm0 - 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x00003839 vextracti128 $1, %ymm0, %xmm1 - 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x0000383f vpsrlq $32, %xmm0, %xmm2 - 0xc5, 0xe9, 0xf4, 0xd1, //0x00003844 vpmuludq %xmm1, %xmm2, %xmm2 - 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x00003848 vpsrlq $32, %xmm1, %xmm3 - 0xc5, 0xf9, 0xf4, 0xdb, //0x0000384d vpmuludq %xmm3, %xmm0, %xmm3 - 0xc5, 0xe1, 0xd4, 0xd2, //0x00003851 vpaddq %xmm2, %xmm3, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003855 vpsllq $32, %xmm2, %xmm2 - 0xc5, 0xf9, 0xf4, 0xc1, //0x0000385a vpmuludq %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd4, 0xc2, //0x0000385e vpaddq %xmm2, %xmm0, %xmm0 - 0xc5, 0xf9, 0x70, 0xc8, 0x4e, //0x00003862 vpshufd $78, %xmm0, %xmm1 - 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003867 vpsrlq $32, %xmm0, %xmm2 - 0xc5, 0xe9, 0xf4, 0xd1, //0x0000386c vpmuludq %xmm1, %xmm2, %xmm2 - 0xc5, 0xe1, 0x73, 0xd8, 0x0c, //0x00003870 vpsrldq $12, %xmm0, %xmm3 - 0xc5, 0xf9, 0xf4, 0xdb, //0x00003875 vpmuludq %xmm3, %xmm0, %xmm3 - 0xc5, 0xe1, 0xd4, 0xd2, //0x00003879 vpaddq %xmm2, %xmm3, %xmm2 - 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x0000387d vpsllq $32, %xmm2, %xmm2 - 0xc5, 0xf9, 0xf4, 0xc1, //0x00003882 vpmuludq %xmm1, %xmm0, %xmm0 - 0xc5, 0xf9, 0xd4, 0xc2, //0x00003886 vpaddq %xmm2, %xmm0, %xmm0 - 0xc4, 0xc1, 0xf9, 0x7e, 0xc7, //0x0000388a vmovq %xmm0, %r15 - 0x45, 0x39, 0xc1, //0x0000388f cmpl %r8d, %r9d - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003892 je LBB9_69 - 0x44, 0x01, 0xc2, //0x00003898 addl %r8d, %edx - //0x0000389b LBB9_67 - 0x89, 0xce, //0x0000389b movl %ecx, %esi - 0x29, 0xd6, //0x0000389d subl %edx, %esi - 0x90, //0x0000389f .p2align 4, 0x90 - //0x000038a0 LBB9_68 - 0x4d, 0x01, 0xff, //0x000038a0 addq %r15, %r15 - 0x4f, 0x8d, 0x3c, 0xbf, //0x000038a3 leaq (%r15,%r15,4), %r15 - 0xff, 0xce, //0x000038a7 decl %esi - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000038a9 jne LBB9_68 - //0x000038af LBB9_69 - 0x85, 0xc9, //0x000038af testl %ecx, %ecx - 0x0f, 0x88, 0x4d, 0x00, 0x00, 0x00, //0x000038b1 js LBB9_77 - 0x41, 0x8b, 0x44, 0x24, 0x10, //0x000038b7 movl $16(%r12), %eax - 0x39, 0xc8, //0x000038bc cmpl %ecx, %eax - 0x0f, 0x8e, 0x40, 0x00, 0x00, 0x00, //0x000038be jle LBB9_77 - 0x49, 0x8b, 0x34, 0x24, //0x000038c4 movq (%r12), %rsi - 0x8a, 0x14, 0x0e, //0x000038c8 movb (%rsi,%rcx), %dl - 0x41, 0x8d, 0x7a, 0x01, //0x000038cb leal $1(%r10), %edi - 0x39, 0xc7, //0x000038cf cmpl %eax, %edi - 0x0f, 0x85, 0xc4, 0x00, 0x00, 0x00, //0x000038d1 jne LBB9_78 - 0x80, 0xfa, 0x35, //0x000038d7 cmpb $53, %dl - 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x000038da jne LBB9_78 - 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x000038e0 cmpl $0, $28(%r12) - 0x0f, 0x95, 0xc2, //0x000038e6 setne %dl - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000038e9 jne LBB9_79 - 0x85, 0xc9, //0x000038ef testl %ecx, %ecx - 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x000038f1 jle LBB9_79 - 0x41, 0x8a, 0x54, 0x32, 0xff, //0x000038f7 movb $-1(%r10,%rsi), %dl - 0x80, 0xe2, 0x01, //0x000038fc andb $1, %dl - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000038ff jmp LBB9_79 - //0x00003904 LBB9_77 - 0x31, 0xd2, //0x00003904 xorl %edx, %edx - //0x00003906 LBB9_79 - 0x0f, 0xb6, 0xc2, //0x00003906 movzbl %dl, %eax - 0x49, 0x01, 0xc7, //0x00003909 addq %rax, %r15 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000390c movabsq $9007199254740992, %rax - 0x49, 0x39, 0xc7, //0x00003916 cmpq %rax, %r15 - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00003919 jne LBB9_83 - 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000391f cmpl $1022, %r14d - 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003926 jle LBB9_82 - //0x0000392c LBB9_81 - 0x45, 0x31, 0xff, //0x0000392c xorl %r15d, %r15d - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000392f movabsq $9218868437227405312, %r14 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00003939 jmp LBB9_84 - //0x0000393e LBB9_82 - 0x41, 0xff, 0xc6, //0x0000393e incl %r14d - 0x49, 0x89, 0xdf, //0x00003941 movq %rbx, %r15 - //0x00003944 LBB9_83 - 0x4c, 0x89, 0xf8, //0x00003944 movq %r15, %rax - 0x48, 0x21, 0xd8, //0x00003947 andq %rbx, %rax - 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x0000394a addl $1023, %r14d - 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003951 andl $2047, %r14d - 0x49, 0xc1, 0xe6, 0x34, //0x00003958 shlq $52, %r14 - 0x48, 0x85, 0xc0, //0x0000395c testq %rax, %rax - 0x4c, 0x0f, 0x44, 0xf0, //0x0000395f cmoveq %rax, %r14 - //0x00003963 LBB9_84 - 0x48, 0xff, 0xcb, //0x00003963 decq %rbx - 0x4c, 0x21, 0xfb, //0x00003966 andq %r15, %rbx - 0x4c, 0x09, 0xf3, //0x00003969 orq %r14, %rbx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000396c movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xd8, //0x00003976 orq %rbx, %rax - 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00003979 cmpl $0, $24(%r12) - 0x48, 0x0f, 0x44, 0xc3, //0x0000397f cmoveq %rbx, %rax - 0x49, 0x89, 0x45, 0x00, //0x00003983 movq %rax, (%r13) - 0x31, 0xc0, //0x00003987 xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00003989 addq $8, %rsp - 0x5b, //0x0000398d popq %rbx - 0x41, 0x5c, //0x0000398e popq %r12 - 0x41, 0x5d, //0x00003990 popq %r13 - 0x41, 0x5e, //0x00003992 popq %r14 - 0x41, 0x5f, //0x00003994 popq %r15 - 0x5d, //0x00003996 popq %rbp - 0xc5, 0xf8, 0x77, //0x00003997 vzeroupper - 0xc3, //0x0000399a retq - //0x0000399b LBB9_78 - 0x80, 0xfa, 0x34, //0x0000399b cmpb $52, %dl - 0x0f, 0x9f, 0xc2, //0x0000399e setg %dl - 0xe9, 0x60, 0xff, 0xff, 0xff, //0x000039a1 jmp LBB9_79 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039a6 .p2align 4, 0x90 - //0x000039b0 _atof_native - 0x55, //0x000039b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000039b1 movq %rsp, %rbp - 0x48, 0x83, 0xec, 0x30, //0x000039b4 subq $48, %rsp - 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000039b8 movq $0, $-40(%rbp) - 0x48, 0x89, 0x55, 0xe0, //0x000039c0 movq %rdx, $-32(%rbp) - 0x48, 0x89, 0x4d, 0xe8, //0x000039c4 movq %rcx, $-24(%rbp) - 0x48, 0x85, 0xc9, //0x000039c8 testq %rcx, %rcx - 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x000039cb je LBB10_5 - 0xc6, 0x02, 0x00, //0x000039d1 movb $0, (%rdx) - 0x48, 0x83, 0xf9, 0x01, //0x000039d4 cmpq $1, %rcx - 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000039d8 je LBB10_5 - 0xc6, 0x42, 0x01, 0x00, //0x000039de movb $0, $1(%rdx) - 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x000039e2 cmpq $3, $-24(%rbp) - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x000039e7 jb LBB10_5 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000039ed movl $2, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039f2 .p2align 4, 0x90 - //0x00003a00 LBB10_4 - 0x48, 0x8b, 0x4d, 0xe0, //0x00003a00 movq $-32(%rbp), %rcx - 0xc6, 0x04, 0x01, 0x00, //0x00003a04 movb $0, (%rcx,%rax) - 0x48, 0xff, 0xc0, //0x00003a08 incq %rax - 0x48, 0x39, 0x45, 0xe8, //0x00003a0b cmpq %rax, $-24(%rbp) - 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00003a0f ja LBB10_4 - //0x00003a15 LBB10_5 - 0xc5, 0xf8, 0x57, 0xc0, //0x00003a15 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00003a19 vmovups %xmm0, $-16(%rbp) - 0x80, 0x3f, 0x2d, //0x00003a1e cmpb $45, (%rdi) - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00003a21 jne LBB10_6 - 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003a27 movl $1, $-8(%rbp) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003a2e movl $1, %eax - 0x48, 0x39, 0xf0, //0x00003a33 cmpq %rsi, %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003a36 jl LBB10_9 - //0x00003a3c LBB10_41 - 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00003a3c movl $0, $-12(%rbp) - 0xe9, 0xa1, 0x01, 0x00, 0x00, //0x00003a43 jmp LBB10_40 - //0x00003a48 LBB10_6 - 0x31, 0xc0, //0x00003a48 xorl %eax, %eax - 0x48, 0x39, 0xf0, //0x00003a4a cmpq %rsi, %rax - 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00003a4d jge LBB10_41 - //0x00003a53 LBB10_9 - 0x41, 0xb3, 0x01, //0x00003a53 movb $1, %r11b - 0x45, 0x31, 0xc9, //0x00003a56 xorl %r9d, %r9d - 0x45, 0x31, 0xd2, //0x00003a59 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00003a5c xorl %r8d, %r8d - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00003a5f jmp LBB10_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a64 .p2align 4, 0x90 - //0x00003a70 LBB10_13 - 0xff, 0x4d, 0xf4, //0x00003a70 decl $-12(%rbp) - 0x45, 0x31, 0xd2, //0x00003a73 xorl %r10d, %r10d - //0x00003a76 LBB10_22 - 0x48, 0xff, 0xc0, //0x00003a76 incq %rax - 0x48, 0x39, 0xf0, //0x00003a79 cmpq %rsi, %rax - 0x41, 0x0f, 0x9c, 0xc3, //0x00003a7c setl %r11b - 0x48, 0x39, 0xc6, //0x00003a80 cmpq %rax, %rsi - 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00003a83 je LBB10_23 - //0x00003a89 LBB10_10 - 0x0f, 0xb6, 0x0c, 0x07, //0x00003a89 movzbl (%rdi,%rax), %ecx - 0x8d, 0x51, 0xd0, //0x00003a8d leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00003a90 cmpb $9, %dl - 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00003a93 ja LBB10_19 - 0x45, 0x85, 0xd2, //0x00003a99 testl %r10d, %r10d - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003a9c jne LBB10_14 - 0x80, 0xf9, 0x30, //0x00003aa2 cmpb $48, %cl - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00003aa5 je LBB10_13 - //0x00003aab LBB10_14 - 0x4d, 0x63, 0xd1, //0x00003aab movslq %r9d, %r10 - 0x4c, 0x39, 0x55, 0xe8, //0x00003aae cmpq %r10, $-24(%rbp) - 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00003ab2 jbe LBB10_16 - 0x48, 0x8b, 0x55, 0xe0, //0x00003ab8 movq $-32(%rbp), %rdx - 0x42, 0x88, 0x0c, 0x12, //0x00003abc movb %cl, (%rdx,%r10) - 0x44, 0x8b, 0x4d, 0xf0, //0x00003ac0 movl $-16(%rbp), %r9d - 0x41, 0xff, 0xc1, //0x00003ac4 incl %r9d - 0x44, 0x89, 0x4d, 0xf0, //0x00003ac7 movl %r9d, $-16(%rbp) - 0x45, 0x89, 0xca, //0x00003acb movl %r9d, %r10d - 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00003ace jmp LBB10_22 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003ad3 .p2align 4, 0x90 - //0x00003ae0 LBB10_19 - 0x80, 0xf9, 0x2e, //0x00003ae0 cmpb $46, %cl - 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00003ae3 jne LBB10_20 - 0x44, 0x89, 0x55, 0xf4, //0x00003ae9 movl %r10d, $-12(%rbp) - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003aed movl $1, %r8d - 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00003af3 jmp LBB10_22 - //0x00003af8 LBB10_16 - 0x80, 0xf9, 0x30, //0x00003af8 cmpb $48, %cl - 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00003afb jne LBB10_18 - 0x45, 0x89, 0xca, //0x00003b01 movl %r9d, %r10d - 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00003b04 jmp LBB10_22 - //0x00003b09 LBB10_18 - 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003b09 movl $1, $-4(%rbp) - 0x45, 0x89, 0xca, //0x00003b10 movl %r9d, %r10d - 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00003b13 jmp LBB10_22 - //0x00003b18 LBB10_23 - 0x89, 0xf1, //0x00003b18 movl %esi, %ecx - 0x48, 0x89, 0xf0, //0x00003b1a movq %rsi, %rax - 0x45, 0x85, 0xc0, //0x00003b1d testl %r8d, %r8d - 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00003b20 jne LBB10_26 - //0x00003b26 LBB10_25 - 0x44, 0x89, 0x4d, 0xf4, //0x00003b26 movl %r9d, $-12(%rbp) - //0x00003b2a LBB10_26 - 0x41, 0xf6, 0xc3, 0x01, //0x00003b2a testb $1, %r11b - 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00003b2e je LBB10_40 - 0x8a, 0x0c, 0x0f, //0x00003b34 movb (%rdi,%rcx), %cl - 0x80, 0xc9, 0x20, //0x00003b37 orb $32, %cl - 0x80, 0xf9, 0x65, //0x00003b3a cmpb $101, %cl - 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00003b3d jne LBB10_40 - 0x89, 0xc2, //0x00003b43 movl %eax, %edx - 0x8a, 0x4c, 0x17, 0x01, //0x00003b45 movb $1(%rdi,%rdx), %cl - 0x80, 0xf9, 0x2d, //0x00003b49 cmpb $45, %cl - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00003b4c je LBB10_32 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003b52 movl $1, %r8d - 0x80, 0xf9, 0x2b, //0x00003b58 cmpb $43, %cl - 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00003b5b jne LBB10_30 - 0x83, 0xc0, 0x02, //0x00003b61 addl $2, %eax - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00003b64 jmp LBB10_33 - //0x00003b69 LBB10_20 - 0x48, 0x89, 0xc1, //0x00003b69 movq %rax, %rcx - 0x45, 0x85, 0xc0, //0x00003b6c testl %r8d, %r8d - 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00003b6f jne LBB10_26 - 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00003b75 jmp LBB10_25 - //0x00003b7a LBB10_32 - 0x83, 0xc0, 0x02, //0x00003b7a addl $2, %eax - 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003b7d movl $-1, %r8d - //0x00003b83 LBB10_33 - 0x89, 0xc2, //0x00003b83 movl %eax, %edx - 0x48, 0x63, 0xd2, //0x00003b85 movslq %edx, %rdx - 0x45, 0x31, 0xc9, //0x00003b88 xorl %r9d, %r9d - 0x48, 0x39, 0xf2, //0x00003b8b cmpq %rsi, %rdx - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003b8e jl LBB10_35 - 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00003b94 jmp LBB10_39 - //0x00003b99 LBB10_30 - 0x48, 0xff, 0xc2, //0x00003b99 incq %rdx - 0x48, 0x63, 0xd2, //0x00003b9c movslq %edx, %rdx - 0x45, 0x31, 0xc9, //0x00003b9f xorl %r9d, %r9d - 0x48, 0x39, 0xf2, //0x00003ba2 cmpq %rsi, %rdx - 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00003ba5 jge LBB10_39 - //0x00003bab LBB10_35 - 0x45, 0x31, 0xc9, //0x00003bab xorl %r9d, %r9d - 0x90, 0x90, //0x00003bae .p2align 4, 0x90 - //0x00003bb0 LBB10_36 - 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00003bb0 cmpl $9999, %r9d - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00003bb7 jg LBB10_39 - 0x0f, 0xb6, 0x0c, 0x17, //0x00003bbd movzbl (%rdi,%rdx), %ecx - 0x8d, 0x41, 0xd0, //0x00003bc1 leal $-48(%rcx), %eax - 0x3c, 0x09, //0x00003bc4 cmpb $9, %al - 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00003bc6 ja LBB10_39 - 0x43, 0x8d, 0x04, 0x89, //0x00003bcc leal (%r9,%r9,4), %eax - 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00003bd0 leal $-48(%rcx,%rax,2), %r9d - 0x48, 0xff, 0xc2, //0x00003bd5 incq %rdx - 0x48, 0x39, 0xd6, //0x00003bd8 cmpq %rdx, %rsi - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003bdb jne LBB10_36 - //0x00003be1 LBB10_39 - 0x45, 0x0f, 0xaf, 0xc8, //0x00003be1 imull %r8d, %r9d - 0x44, 0x01, 0x4d, 0xf4, //0x00003be5 addl %r9d, $-12(%rbp) - //0x00003be9 LBB10_40 - 0x48, 0x8d, 0x7d, 0xe0, //0x00003be9 leaq $-32(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd8, //0x00003bed leaq $-40(%rbp), %rsi - 0xe8, 0x0a, 0xf7, 0xff, 0xff, //0x00003bf1 callq _decimal_to_f64 - 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003bf6 vmovsd $-40(%rbp), %xmm0 - 0x48, 0x83, 0xc4, 0x30, //0x00003bfb addq $48, %rsp - 0x5d, //0x00003bff popq %rbp - 0xc3, //0x00003c00 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c01 .p2align 4, 0x90 - //0x00003c10 _value - 0x55, //0x00003c10 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003c11 movq %rsp, %rbp - 0x41, 0x57, //0x00003c14 pushq %r15 - 0x41, 0x56, //0x00003c16 pushq %r14 - 0x41, 0x55, //0x00003c18 pushq %r13 - 0x41, 0x54, //0x00003c1a pushq %r12 - 0x53, //0x00003c1c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x00003c1d subq $40, %rsp - 0x4d, 0x89, 0xc4, //0x00003c21 movq %r8, %r12 - 0x49, 0x89, 0xce, //0x00003c24 movq %rcx, %r14 - 0x48, 0x89, 0xf3, //0x00003c27 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00003c2a movq %rdi, %r15 - 0x48, 0x89, 0x55, 0xd0, //0x00003c2d movq %rdx, $-48(%rbp) - 0x48, 0x89, 0x7d, 0xb0, //0x00003c31 movq %rdi, $-80(%rbp) - 0x48, 0x89, 0x75, 0xb8, //0x00003c35 movq %rsi, $-72(%rbp) - 0x48, 0x8d, 0x55, 0xd0, //0x00003c39 leaq $-48(%rbp), %rdx - 0xe8, 0xde, 0x05, 0x00, 0x00, //0x00003c3d callq _advance_ns - 0x0f, 0xbe, 0xc0, //0x00003c42 movsbl %al, %eax - 0x83, 0xf8, 0x7d, //0x00003c45 cmpl $125, %eax - 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x00003c48 ja LBB11_10 - 0x48, 0x8d, 0x0d, 0xa3, 0x03, 0x00, 0x00, //0x00003c4e leaq $931(%rip), %rcx /* LJTI11_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x00003c55 movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00003c59 addq %rcx, %rax - 0xff, 0xe0, //0x00003c5c jmpq *%rax - //0x00003c5e LBB11_2 - 0x4c, 0x89, 0x75, 0xc8, //0x00003c5e movq %r14, $-56(%rbp) - 0x4c, 0x8b, 0x75, 0xd0, //0x00003c62 movq $-48(%rbp), %r14 - 0x4d, 0x8d, 0x6e, 0xff, //0x00003c66 leaq $-1(%r14), %r13 - 0x4c, 0x89, 0x6d, 0xd0, //0x00003c6a movq %r13, $-48(%rbp) - 0x41, 0xf6, 0xc4, 0x02, //0x00003c6e testb $2, %r12b - 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003c72 jne LBB11_4 - 0x48, 0x8d, 0x7d, 0xb0, //0x00003c78 leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd0, //0x00003c7c leaq $-48(%rbp), %rsi - 0x48, 0x8b, 0x55, 0xc8, //0x00003c80 movq $-56(%rbp), %rdx - 0xe8, 0xe7, 0x0c, 0x00, 0x00, //0x00003c84 callq _vnumber - 0x48, 0x8b, 0x5d, 0xd0, //0x00003c89 movq $-48(%rbp), %rbx - 0xe9, 0x51, 0x03, 0x00, 0x00, //0x00003c8d jmp LBB11_58 - //0x00003c92 LBB11_4 - 0x4c, 0x29, 0xeb, //0x00003c92 subq %r13, %rbx - 0x31, 0xc0, //0x00003c95 xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2f, 0x2d, //0x00003c97 cmpb $45, (%r15,%r13) - 0x4f, 0x8d, 0x24, 0x2f, //0x00003c9c leaq (%r15,%r13), %r12 - 0x0f, 0x94, 0xc0, //0x00003ca0 sete %al - 0x49, 0x01, 0xc4, //0x00003ca3 addq %rax, %r12 - 0x48, 0x29, 0xc3, //0x00003ca6 subq %rax, %rbx - 0x0f, 0x84, 0x03, 0x03, 0x00, 0x00, //0x00003ca9 je LBB11_53 - 0x41, 0x8a, 0x04, 0x24, //0x00003caf movb (%r12), %al - 0x04, 0xd0, //0x00003cb3 addb $-48, %al - 0x3c, 0x0a, //0x00003cb5 cmpb $10, %al - 0x0f, 0x83, 0x0e, 0x03, 0x00, 0x00, //0x00003cb7 jae LBB11_55 - 0x4c, 0x89, 0xe7, //0x00003cbd movq %r12, %rdi - 0x48, 0x89, 0xde, //0x00003cc0 movq %rbx, %rsi - 0xe8, 0xc8, 0x1f, 0x00, 0x00, //0x00003cc3 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00003cc8 testq %rax, %rax - 0x0f, 0x88, 0xf4, 0x02, 0x00, 0x00, //0x00003ccb js LBB11_54 - 0x49, 0x01, 0xc4, //0x00003cd1 addq %rax, %r12 - 0x4c, 0x89, 0xe3, //0x00003cd4 movq %r12, %rbx - 0x4c, 0x29, 0xfb, //0x00003cd7 subq %r15, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00003cda movq %rbx, $-48(%rbp) - 0x4d, 0x85, 0xf6, //0x00003cde testq %r14, %r14 - 0x0f, 0x8e, 0xf5, 0x02, 0x00, 0x00, //0x00003ce1 jle LBB11_57 - 0x48, 0x8b, 0x45, 0xc8, //0x00003ce7 movq $-56(%rbp), %rax - 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00003ceb movq $8, (%rax) - 0x4c, 0x89, 0x68, 0x18, //0x00003cf2 movq %r13, $24(%rax) - 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00003cf6 jmp LBB11_58 - //0x00003cfb LBB11_9 - 0x49, 0xc7, 0x06, 0x01, 0x00, 0x00, 0x00, //0x00003cfb movq $1, (%r14) - 0x48, 0x8b, 0x5d, 0xd0, //0x00003d02 movq $-48(%rbp), %rbx - 0xe9, 0xd8, 0x02, 0x00, 0x00, //0x00003d06 jmp LBB11_58 - //0x00003d0b LBB11_10 - 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00003d0b movq $-2, (%r14) - 0x48, 0x8b, 0x5d, 0xd0, //0x00003d12 movq $-48(%rbp), %rbx - 0x48, 0xff, 0xcb, //0x00003d16 decq %rbx - 0xe9, 0xc5, 0x02, 0x00, 0x00, //0x00003d19 jmp LBB11_58 - //0x00003d1e LBB11_11 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d1e movq $-1, $-64(%rbp) - 0x4c, 0x8b, 0x7d, 0xd0, //0x00003d26 movq $-48(%rbp), %r15 - 0x48, 0x8d, 0x7d, 0xb0, //0x00003d2a leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc0, //0x00003d2e leaq $-64(%rbp), %rdx - 0x4c, 0x89, 0xfe, //0x00003d32 movq %r15, %rsi - 0x4c, 0x89, 0xe1, //0x00003d35 movq %r12, %rcx - 0xe8, 0xc3, 0x07, 0x00, 0x00, //0x00003d38 callq _advance_string - 0x48, 0x85, 0xc0, //0x00003d3d testq %rax, %rax - 0x0f, 0x88, 0x60, 0x02, 0x00, 0x00, //0x00003d40 js LBB11_47 - 0x48, 0x89, 0x45, 0xd0, //0x00003d46 movq %rax, $-48(%rbp) - 0x4d, 0x89, 0x7e, 0x10, //0x00003d4a movq %r15, $16(%r14) - 0x48, 0x8b, 0x4d, 0xc0, //0x00003d4e movq $-64(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x00003d52 cmpq %rax, %rcx - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00003d55 movq $-1, %rdx - 0x48, 0x0f, 0x4c, 0xd1, //0x00003d5c cmovlq %rcx, %rdx - 0x49, 0x89, 0x56, 0x18, //0x00003d60 movq %rdx, $24(%r14) - 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00003d64 movl $7, %ecx - 0x49, 0x89, 0x0e, //0x00003d69 movq %rcx, (%r14) - 0x48, 0x89, 0xc3, //0x00003d6c movq %rax, %rbx - 0xe9, 0x6f, 0x02, 0x00, 0x00, //0x00003d6f jmp LBB11_58 - //0x00003d74 LBB11_13 - 0x31, 0xc0, //0x00003d74 xorl %eax, %eax - 0x45, 0x85, 0xe4, //0x00003d76 testl %r12d, %r12d - 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x00003d79 movl $11, %ecx - 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003d7e jmp LBB11_26 - //0x00003d83 LBB11_14 - 0x31, 0xc0, //0x00003d83 xorl %eax, %eax - 0x45, 0x85, 0xe4, //0x00003d85 testl %r12d, %r12d - 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00003d88 movl $10, %ecx - 0xe9, 0xb5, 0x00, 0x00, 0x00, //0x00003d8d jmp LBB11_26 - //0x00003d92 LBB11_15 - 0x49, 0xc7, 0x06, 0x05, 0x00, 0x00, 0x00, //0x00003d92 movq $5, (%r14) - 0x48, 0x8b, 0x5d, 0xd0, //0x00003d99 movq $-48(%rbp), %rbx - 0xe9, 0x41, 0x02, 0x00, 0x00, //0x00003d9d jmp LBB11_58 - //0x00003da2 LBB11_16 - 0x31, 0xc0, //0x00003da2 xorl %eax, %eax - 0x45, 0x85, 0xe4, //0x00003da4 testl %r12d, %r12d - 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003da7 movl $12, %ecx - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00003dac jmp LBB11_26 - //0x00003db1 LBB11_17 - 0x48, 0x8b, 0x4d, 0xd0, //0x00003db1 movq $-48(%rbp), %rcx - 0x48, 0x8d, 0x43, 0xfc, //0x00003db5 leaq $-4(%rbx), %rax - 0x48, 0x39, 0xc1, //0x00003db9 cmpq %rax, %rcx - 0x0f, 0x86, 0xa2, 0x00, 0x00, 0x00, //0x00003dbc jbe LBB11_27 - 0x48, 0x89, 0x5d, 0xd0, //0x00003dc2 movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003dc6 movq $-1, %rax - 0x49, 0x89, 0x06, //0x00003dcd movq %rax, (%r14) - 0xe9, 0x0e, 0x02, 0x00, 0x00, //0x00003dd0 jmp LBB11_58 - //0x00003dd5 LBB11_19 - 0x48, 0x8b, 0x45, 0xd0, //0x00003dd5 movq $-48(%rbp), %rax - 0x48, 0x8d, 0x4b, 0xfd, //0x00003dd9 leaq $-3(%rbx), %rcx - 0x48, 0x39, 0xc8, //0x00003ddd cmpq %rcx, %rax - 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003de0 ja LBB11_20 - 0x41, 0x8b, 0x54, 0x07, 0xff, //0x00003de6 movl $-1(%r15,%rax), %edx - 0x81, 0xfa, 0x6e, 0x75, 0x6c, 0x6c, //0x00003deb cmpl $1819047278, %edx - 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00003df1 jne LBB11_35 - 0x48, 0x83, 0xc0, 0x03, //0x00003df7 addq $3, %rax - 0x48, 0x89, 0x45, 0xd0, //0x00003dfb movq %rax, $-48(%rbp) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00003dff movl $2, %ecx - 0xe9, 0x8b, 0x01, 0x00, 0x00, //0x00003e04 jmp LBB11_50 - //0x00003e09 LBB11_21 - 0x48, 0x8b, 0x45, 0xd0, //0x00003e09 movq $-48(%rbp), %rax - 0x48, 0x8d, 0x4b, 0xfd, //0x00003e0d leaq $-3(%rbx), %rcx - 0x48, 0x39, 0xc8, //0x00003e11 cmpq %rcx, %rax - 0x0f, 0x86, 0x72, 0x00, 0x00, 0x00, //0x00003e14 jbe LBB11_22 - //0x00003e1a LBB11_20 - 0x48, 0x89, 0x5d, 0xd0, //0x00003e1a movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e1e movq $-1, %rcx - 0x49, 0x89, 0x0e, //0x00003e25 movq %rcx, (%r14) - 0xe9, 0xb6, 0x01, 0x00, 0x00, //0x00003e28 jmp LBB11_58 - //0x00003e2d LBB11_24 - 0x49, 0xc7, 0x06, 0x06, 0x00, 0x00, 0x00, //0x00003e2d movq $6, (%r14) - 0x48, 0x8b, 0x5d, 0xd0, //0x00003e34 movq $-48(%rbp), %rbx - 0xe9, 0xa6, 0x01, 0x00, 0x00, //0x00003e38 jmp LBB11_58 - //0x00003e3d LBB11_25 - 0x31, 0xc0, //0x00003e3d xorl %eax, %eax - 0x45, 0x85, 0xe4, //0x00003e3f testl %r12d, %r12d - 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00003e42 movl $13, %ecx - //0x00003e47 LBB11_26 - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00003e47 movq $-2, %rdx - 0x48, 0x0f, 0x48, 0xd1, //0x00003e4e cmovsq %rcx, %rdx - 0x0f, 0x99, 0xc0, //0x00003e52 setns %al - 0x49, 0x89, 0x16, //0x00003e55 movq %rdx, (%r14) - 0x48, 0x8b, 0x5d, 0xd0, //0x00003e58 movq $-48(%rbp), %rbx - 0x48, 0x29, 0xc3, //0x00003e5c subq %rax, %rbx - 0xe9, 0x7f, 0x01, 0x00, 0x00, //0x00003e5f jmp LBB11_58 - //0x00003e64 LBB11_27 - 0x41, 0x8b, 0x14, 0x0f, //0x00003e64 movl (%r15,%rcx), %edx - 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x00003e68 cmpl $1702063201, %edx - 0x0f, 0x85, 0x81, 0x00, 0x00, 0x00, //0x00003e6e jne LBB11_31 - 0x48, 0x83, 0xc1, 0x04, //0x00003e74 addq $4, %rcx - 0x48, 0x89, 0x4d, 0xd0, //0x00003e78 movq %rcx, $-48(%rbp) - 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00003e7c movl $4, %eax - 0x48, 0x89, 0xcb, //0x00003e81 movq %rcx, %rbx - 0x49, 0x89, 0x06, //0x00003e84 movq %rax, (%r14) - 0xe9, 0x57, 0x01, 0x00, 0x00, //0x00003e87 jmp LBB11_58 - //0x00003e8c LBB11_22 - 0x41, 0x8b, 0x54, 0x07, 0xff, //0x00003e8c movl $-1(%r15,%rax), %edx - 0x81, 0xfa, 0x74, 0x72, 0x75, 0x65, //0x00003e91 cmpl $1702195828, %edx - 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00003e97 jne LBB11_39 - 0x48, 0x83, 0xc0, 0x03, //0x00003e9d addq $3, %rax - 0x48, 0x89, 0x45, 0xd0, //0x00003ea1 movq %rax, $-48(%rbp) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00003ea5 movl $3, %ecx - 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00003eaa jmp LBB11_50 - //0x00003eaf LBB11_35 - 0x48, 0x8d, 0x58, 0xff, //0x00003eaf leaq $-1(%rax), %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00003eb3 movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003eb7 movq $-2, %rcx - 0x80, 0xfa, 0x6e, //0x00003ebe cmpb $110, %dl - 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x00003ec1 jne LBB11_51 - 0x41, 0x80, 0x3c, 0x07, 0x75, //0x00003ec7 cmpb $117, (%r15,%rax) - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003ecc jne LBB11_49 - 0x41, 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00003ed2 cmpb $108, $1(%r15,%rax) - 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x00003ed8 jne LBB11_48 - 0x41, 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00003ede cmpb $108, $2(%r15,%rax) - 0x48, 0x8d, 0x50, 0x03, //0x00003ee4 leaq $3(%rax), %rdx - 0x48, 0x8d, 0x40, 0x02, //0x00003ee8 leaq $2(%rax), %rax - 0x48, 0x0f, 0x44, 0xc2, //0x00003eec cmoveq %rdx, %rax - 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x00003ef0 jmp LBB11_49 - //0x00003ef5 LBB11_31 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003ef5 movq $-2, %rax - 0x80, 0xfa, 0x61, //0x00003efc cmpb $97, %dl - 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00003eff jne LBB11_43 - 0x41, 0x80, 0x7c, 0x0f, 0x01, 0x6c, //0x00003f05 cmpb $108, $1(%r15,%rcx) - 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00003f0b jne LBB11_44 - 0x41, 0x80, 0x7c, 0x0f, 0x02, 0x73, //0x00003f11 cmpb $115, $2(%r15,%rcx) - 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00003f17 jne LBB11_45 - 0x41, 0x80, 0x7c, 0x0f, 0x03, 0x65, //0x00003f1d cmpb $101, $3(%r15,%rcx) - 0x48, 0x8d, 0x51, 0x04, //0x00003f23 leaq $4(%rcx), %rdx - 0x48, 0x8d, 0x59, 0x03, //0x00003f27 leaq $3(%rcx), %rbx - 0x48, 0x0f, 0x44, 0xda, //0x00003f2b cmoveq %rdx, %rbx - 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00003f2f jmp LBB11_47 - //0x00003f34 LBB11_39 - 0x48, 0x8d, 0x58, 0xff, //0x00003f34 leaq $-1(%rax), %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00003f38 movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003f3c movq $-2, %rcx - 0x80, 0xfa, 0x74, //0x00003f43 cmpb $116, %dl - 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00003f46 jne LBB11_51 - 0x41, 0x80, 0x3c, 0x07, 0x72, //0x00003f4c cmpb $114, (%r15,%rax) - 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00003f51 jne LBB11_49 - 0x41, 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00003f57 cmpb $117, $1(%r15,%rax) - 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003f5d jne LBB11_48 - 0x41, 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00003f63 cmpb $101, $2(%r15,%rax) - 0x48, 0x8d, 0x50, 0x03, //0x00003f69 leaq $3(%rax), %rdx - 0x48, 0x8d, 0x40, 0x02, //0x00003f6d leaq $2(%rax), %rax - 0x48, 0x0f, 0x44, 0xc2, //0x00003f71 cmoveq %rdx, %rax - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003f75 jmp LBB11_49 - //0x00003f7a LBB11_43 - 0x48, 0x89, 0xcb, //0x00003f7a movq %rcx, %rbx - 0x49, 0x89, 0x06, //0x00003f7d movq %rax, (%r14) - 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00003f80 jmp LBB11_58 - //0x00003f85 LBB11_44 - 0x48, 0xff, 0xc1, //0x00003f85 incq %rcx - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003f88 jmp LBB11_46 - //0x00003f8d LBB11_48 - 0x48, 0xff, 0xc0, //0x00003f8d incq %rax - //0x00003f90 LBB11_49 - 0x48, 0x89, 0x45, 0xd0, //0x00003f90 movq %rax, $-48(%rbp) - //0x00003f94 LBB11_50 - 0x48, 0x89, 0xc3, //0x00003f94 movq %rax, %rbx - //0x00003f97 LBB11_51 - 0x49, 0x89, 0x0e, //0x00003f97 movq %rcx, (%r14) - 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00003f9a jmp LBB11_58 - //0x00003f9f LBB11_45 - 0x48, 0x83, 0xc1, 0x02, //0x00003f9f addq $2, %rcx - //0x00003fa3 LBB11_46 - 0x48, 0x89, 0xcb, //0x00003fa3 movq %rcx, %rbx - //0x00003fa6 LBB11_47 - 0x48, 0x89, 0x5d, 0xd0, //0x00003fa6 movq %rbx, $-48(%rbp) - 0x49, 0x89, 0x06, //0x00003faa movq %rax, (%r14) - 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00003fad jmp LBB11_58 - //0x00003fb2 LBB11_53 - 0x4d, 0x29, 0xfc, //0x00003fb2 subq %r15, %r12 - 0x4c, 0x89, 0x65, 0xd0, //0x00003fb5 movq %r12, $-48(%rbp) - 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00003fb9 movq $-1, %r13 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00003fc0 jmp LBB11_56 - //0x00003fc5 LBB11_54 - 0x48, 0xf7, 0xd0, //0x00003fc5 notq %rax - 0x49, 0x01, 0xc4, //0x00003fc8 addq %rax, %r12 - //0x00003fcb LBB11_55 - 0x4d, 0x29, 0xfc, //0x00003fcb subq %r15, %r12 - 0x4c, 0x89, 0x65, 0xd0, //0x00003fce movq %r12, $-48(%rbp) - 0x49, 0xc7, 0xc5, 0xfe, 0xff, 0xff, 0xff, //0x00003fd2 movq $-2, %r13 - //0x00003fd9 LBB11_56 - 0x4c, 0x89, 0xe3, //0x00003fd9 movq %r12, %rbx - //0x00003fdc LBB11_57 - 0x48, 0x8b, 0x45, 0xc8, //0x00003fdc movq $-56(%rbp), %rax - 0x4c, 0x89, 0x28, //0x00003fe0 movq %r13, (%rax) - //0x00003fe3 LBB11_58 - 0x48, 0x89, 0xd8, //0x00003fe3 movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x28, //0x00003fe6 addq $40, %rsp - 0x5b, //0x00003fea popq %rbx - 0x41, 0x5c, //0x00003feb popq %r12 - 0x41, 0x5d, //0x00003fed popq %r13 - 0x41, 0x5e, //0x00003fef popq %r14 - 0x41, 0x5f, //0x00003ff1 popq %r15 - 0x5d, //0x00003ff3 popq %rbp - 0xc3, //0x00003ff4 retq - 0x90, 0x90, 0x90, //0x00003ff5 .p2align 2, 0x90 - // // .set L11_0_set_9, LBB11_9-LJTI11_0 - // // .set L11_0_set_10, LBB11_10-LJTI11_0 - // // .set L11_0_set_11, LBB11_11-LJTI11_0 - // // .set L11_0_set_13, LBB11_13-LJTI11_0 - // // .set L11_0_set_2, LBB11_2-LJTI11_0 - // // .set L11_0_set_14, LBB11_14-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_19, LBB11_19-LJTI11_0 - // // .set L11_0_set_21, LBB11_21-LJTI11_0 - // // .set L11_0_set_24, LBB11_24-LJTI11_0 - // // .set L11_0_set_25, LBB11_25-LJTI11_0 - //0x00003ff8 LJTI11_0 - 0x03, 0xfd, 0xff, 0xff, //0x00003ff8 .long L11_0_set_9 - 0x13, 0xfd, 0xff, 0xff, //0x00003ffc .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004000 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004004 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004008 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000400c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004010 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004014 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004018 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000401c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004020 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004024 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004028 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000402c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004030 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004034 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004038 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000403c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004040 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004044 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004048 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000404c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004050 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004054 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004058 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000405c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004060 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004064 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004068 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000406c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004070 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004074 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004078 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000407c .long L11_0_set_10 - 0x26, 0xfd, 0xff, 0xff, //0x00004080 .long L11_0_set_11 - 0x13, 0xfd, 0xff, 0xff, //0x00004084 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004088 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000408c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004090 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004094 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004098 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000409c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040a0 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040a4 .long L11_0_set_10 - 0x7c, 0xfd, 0xff, 0xff, //0x000040a8 .long L11_0_set_13 - 0x66, 0xfc, 0xff, 0xff, //0x000040ac .long L11_0_set_2 - 0x13, 0xfd, 0xff, 0xff, //0x000040b0 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040b4 .long L11_0_set_10 - 0x66, 0xfc, 0xff, 0xff, //0x000040b8 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040bc .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040c0 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040c4 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040c8 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040cc .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040d0 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040d4 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040d8 .long L11_0_set_2 - 0x66, 0xfc, 0xff, 0xff, //0x000040dc .long L11_0_set_2 - 0x8b, 0xfd, 0xff, 0xff, //0x000040e0 .long L11_0_set_14 - 0x13, 0xfd, 0xff, 0xff, //0x000040e4 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040e8 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040ec .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040f0 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040f4 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040f8 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000040fc .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004100 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004104 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004108 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000410c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004110 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004114 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004118 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000411c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004120 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004124 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004128 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000412c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004130 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004134 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004138 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000413c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004140 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004144 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004148 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000414c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004150 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004154 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004158 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000415c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004160 .long L11_0_set_10 - 0x9a, 0xfd, 0xff, 0xff, //0x00004164 .long L11_0_set_15 - 0x13, 0xfd, 0xff, 0xff, //0x00004168 .long L11_0_set_10 - 0xaa, 0xfd, 0xff, 0xff, //0x0000416c .long L11_0_set_16 - 0x13, 0xfd, 0xff, 0xff, //0x00004170 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004174 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004178 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000417c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004180 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004184 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004188 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000418c .long L11_0_set_10 - 0xb9, 0xfd, 0xff, 0xff, //0x00004190 .long L11_0_set_17 - 0x13, 0xfd, 0xff, 0xff, //0x00004194 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x00004198 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x0000419c .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041a0 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041a4 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041a8 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041ac .long L11_0_set_10 - 0xdd, 0xfd, 0xff, 0xff, //0x000041b0 .long L11_0_set_19 - 0x13, 0xfd, 0xff, 0xff, //0x000041b4 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041b8 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041bc .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041c0 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041c4 .long L11_0_set_10 - 0x11, 0xfe, 0xff, 0xff, //0x000041c8 .long L11_0_set_21 - 0x13, 0xfd, 0xff, 0xff, //0x000041cc .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041d0 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041d4 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041d8 .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041dc .long L11_0_set_10 - 0x13, 0xfd, 0xff, 0xff, //0x000041e0 .long L11_0_set_10 - 0x35, 0xfe, 0xff, 0xff, //0x000041e4 .long L11_0_set_24 - 0x13, 0xfd, 0xff, 0xff, //0x000041e8 .long L11_0_set_10 - 0x45, 0xfe, 0xff, 0xff, //0x000041ec .long L11_0_set_25 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000041f0 .p2align 5, 0x00 - //0x00004200 LCPI12_0 - 0x20, //0x00004200 .byte 32 - 0x00, //0x00004201 .byte 0 - 0x00, //0x00004202 .byte 0 - 0x00, //0x00004203 .byte 0 - 0x00, //0x00004204 .byte 0 - 0x00, //0x00004205 .byte 0 - 0x00, //0x00004206 .byte 0 - 0x00, //0x00004207 .byte 0 - 0x00, //0x00004208 .byte 0 - 0x09, //0x00004209 .byte 9 - 0x0a, //0x0000420a .byte 10 - 0x00, //0x0000420b .byte 0 - 0x00, //0x0000420c .byte 0 - 0x0d, //0x0000420d .byte 13 - 0x00, //0x0000420e .byte 0 - 0x00, //0x0000420f .byte 0 - 0x20, //0x00004210 .byte 32 - 0x00, //0x00004211 .byte 0 - 0x00, //0x00004212 .byte 0 - 0x00, //0x00004213 .byte 0 - 0x00, //0x00004214 .byte 0 - 0x00, //0x00004215 .byte 0 - 0x00, //0x00004216 .byte 0 - 0x00, //0x00004217 .byte 0 - 0x00, //0x00004218 .byte 0 - 0x09, //0x00004219 .byte 9 - 0x0a, //0x0000421a .byte 10 - 0x00, //0x0000421b .byte 0 - 0x00, //0x0000421c .byte 0 - 0x0d, //0x0000421d .byte 13 - 0x00, //0x0000421e .byte 0 - 0x00, //0x0000421f .byte 0 - //0x00004220 .p2align 4, 0x90 - //0x00004220 _advance_ns - 0x55, //0x00004220 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004221 movq %rsp, %rbp - 0x4c, 0x8b, 0x02, //0x00004224 movq (%rdx), %r8 - 0x49, 0x39, 0xf0, //0x00004227 cmpq %rsi, %r8 - 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x0000422a jae LBB12_6 - 0x42, 0x8a, 0x04, 0x07, //0x00004230 movb (%rdi,%r8), %al - 0x3c, 0x0d, //0x00004234 cmpb $13, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00004236 je LBB12_6 - 0x3c, 0x20, //0x0000423c cmpb $32, %al - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000423e je LBB12_6 - 0x04, 0xf7, //0x00004244 addb $-9, %al - 0x3c, 0x01, //0x00004246 cmpb $1, %al - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00004248 jbe LBB12_6 - 0x4d, 0x89, 0xc2, //0x0000424e movq %r8, %r10 - 0xe9, 0x81, 0x01, 0x00, 0x00, //0x00004251 jmp LBB12_5 - //0x00004256 LBB12_6 - 0x4d, 0x8d, 0x50, 0x01, //0x00004256 leaq $1(%r8), %r10 - 0x49, 0x39, 0xf2, //0x0000425a cmpq %rsi, %r10 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000425d jae LBB12_10 - 0x42, 0x8a, 0x0c, 0x17, //0x00004263 movb (%rdi,%r10), %cl - 0x80, 0xf9, 0x0d, //0x00004267 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x0000426a je LBB12_10 - 0x80, 0xf9, 0x20, //0x00004270 cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004273 je LBB12_10 - 0x80, 0xc1, 0xf7, //0x00004279 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x0000427c cmpb $1, %cl - 0x0f, 0x87, 0x52, 0x01, 0x00, 0x00, //0x0000427f ja LBB12_5 - //0x00004285 LBB12_10 - 0x4d, 0x8d, 0x50, 0x02, //0x00004285 leaq $2(%r8), %r10 - 0x49, 0x39, 0xf2, //0x00004289 cmpq %rsi, %r10 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000428c jae LBB12_14 - 0x42, 0x8a, 0x0c, 0x17, //0x00004292 movb (%rdi,%r10), %cl - 0x80, 0xf9, 0x0d, //0x00004296 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004299 je LBB12_14 - 0x80, 0xf9, 0x20, //0x0000429f cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000042a2 je LBB12_14 - 0x80, 0xc1, 0xf7, //0x000042a8 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x000042ab cmpb $1, %cl - 0x0f, 0x87, 0x23, 0x01, 0x00, 0x00, //0x000042ae ja LBB12_5 - //0x000042b4 LBB12_14 - 0x4d, 0x8d, 0x50, 0x03, //0x000042b4 leaq $3(%r8), %r10 - 0x49, 0x39, 0xf2, //0x000042b8 cmpq %rsi, %r10 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000042bb jae LBB12_18 - 0x42, 0x8a, 0x0c, 0x17, //0x000042c1 movb (%rdi,%r10), %cl - 0x80, 0xf9, 0x0d, //0x000042c5 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000042c8 je LBB12_18 - 0x80, 0xf9, 0x20, //0x000042ce cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000042d1 je LBB12_18 - 0x80, 0xc1, 0xf7, //0x000042d7 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x000042da cmpb $1, %cl - 0x0f, 0x87, 0xf4, 0x00, 0x00, 0x00, //0x000042dd ja LBB12_5 - //0x000042e3 LBB12_18 - 0x49, 0x8d, 0x40, 0x04, //0x000042e3 leaq $4(%r8), %rax - 0x48, 0x39, 0xf0, //0x000042e7 cmpq %rsi, %rax - 0x0f, 0x83, 0xc8, 0x00, 0x00, 0x00, //0x000042ea jae LBB12_19 - 0x4c, 0x8d, 0x14, 0x07, //0x000042f0 leaq (%rdi,%rax), %r10 - 0x48, 0x89, 0xf1, //0x000042f4 movq %rsi, %rcx - 0x48, 0x29, 0xc1, //0x000042f7 subq %rax, %rcx - 0x48, 0x83, 0xf9, 0x20, //0x000042fa cmpq $32, %rcx - 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x000042fe jb LBB12_24 - 0x49, 0x89, 0xf1, //0x00004304 movq %rsi, %r9 - 0x4d, 0x29, 0xc1, //0x00004307 subq %r8, %r9 - 0x49, 0x83, 0xc1, 0xdc, //0x0000430a addq $-36, %r9 - 0x4c, 0x89, 0xc8, //0x0000430e movq %r9, %rax - 0x48, 0x83, 0xe0, 0xe0, //0x00004311 andq $-32, %rax - 0x4c, 0x01, 0xc0, //0x00004315 addq %r8, %rax - 0x4c, 0x8d, 0x44, 0x07, 0x24, //0x00004318 leaq $36(%rdi,%rax), %r8 - 0x41, 0x83, 0xe1, 0x1f, //0x0000431d andl $31, %r9d - 0xc5, 0xfd, 0x6f, 0x05, 0xd7, 0xfe, 0xff, 0xff, //0x00004321 vmovdqa $-297(%rip), %ymm0 /* LCPI12_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004329 .p2align 4, 0x90 - //0x00004330 LBB12_22 - 0xc4, 0xc1, 0x7e, 0x6f, 0x0a, //0x00004330 vmovdqu (%r10), %ymm1 - 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00004335 vpshufb %ymm1, %ymm0, %ymm2 - 0xc5, 0xf5, 0x74, 0xca, //0x0000433a vpcmpeqb %ymm2, %ymm1, %ymm1 - 0xc5, 0xfd, 0xd7, 0xc1, //0x0000433e vpmovmskb %ymm1, %eax - 0x83, 0xf8, 0xff, //0x00004342 cmpl $-1, %eax - 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00004345 jne LBB12_23 - 0x49, 0x83, 0xc2, 0x20, //0x0000434b addq $32, %r10 - 0x48, 0x83, 0xc1, 0xe0, //0x0000434f addq $-32, %rcx - 0x48, 0x83, 0xf9, 0x1f, //0x00004353 cmpq $31, %rcx - 0x0f, 0x87, 0xd3, 0xff, 0xff, 0xff, //0x00004357 ja LBB12_22 - 0x4c, 0x89, 0xc9, //0x0000435d movq %r9, %rcx - 0x4d, 0x89, 0xc2, //0x00004360 movq %r8, %r10 - //0x00004363 LBB12_24 - 0x48, 0x85, 0xc9, //0x00004363 testq %rcx, %rcx - 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00004366 je LBB12_33 - 0x4d, 0x8d, 0x04, 0x0a, //0x0000436c leaq (%r10,%rcx), %r8 - 0x49, 0xff, 0xc2, //0x00004370 incq %r10 - 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004373 movabsq $4294977024, %r9 - //0x0000437d LBB12_26 - 0x41, 0x0f, 0xbe, 0x42, 0xff, //0x0000437d movsbl $-1(%r10), %eax - 0x83, 0xf8, 0x20, //0x00004382 cmpl $32, %eax - 0x0f, 0x87, 0x5f, 0x00, 0x00, 0x00, //0x00004385 ja LBB12_28 - 0x49, 0x0f, 0xa3, 0xc1, //0x0000438b btq %rax, %r9 - 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x0000438f jae LBB12_28 - 0x48, 0xff, 0xc9, //0x00004395 decq %rcx - 0x49, 0xff, 0xc2, //0x00004398 incq %r10 - 0x48, 0x85, 0xc9, //0x0000439b testq %rcx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000439e jne LBB12_26 - 0x4d, 0x89, 0xc2, //0x000043a4 movq %r8, %r10 - //0x000043a7 LBB12_33 - 0x49, 0x29, 0xfa, //0x000043a7 subq %rdi, %r10 - 0x49, 0x39, 0xf2, //0x000043aa cmpq %rsi, %r10 - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000043ad jb LBB12_5 - 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000043b3 jmp LBB12_35 - //0x000043b8 LBB12_19 - 0x48, 0x89, 0x02, //0x000043b8 movq %rax, (%rdx) - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000043bb jmp LBB12_35 - //0x000043c0 LBB12_23 - 0x49, 0x29, 0xfa, //0x000043c0 subq %rdi, %r10 - 0xf7, 0xd0, //0x000043c3 notl %eax - 0x48, 0x98, //0x000043c5 cltq - 0x48, 0x0f, 0xbc, 0xc0, //0x000043c7 bsfq %rax, %rax - 0x49, 0x01, 0xc2, //0x000043cb addq %rax, %r10 - 0x49, 0x39, 0xf2, //0x000043ce cmpq %rsi, %r10 - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000043d1 jae LBB12_35 - //0x000043d7 LBB12_5 - 0x49, 0x8d, 0x42, 0x01, //0x000043d7 leaq $1(%r10), %rax - 0x48, 0x89, 0x02, //0x000043db movq %rax, (%rdx) - 0x42, 0x8a, 0x04, 0x17, //0x000043de movb (%rdi,%r10), %al - 0x0f, 0xbe, 0xc0, //0x000043e2 movsbl %al, %eax - 0x5d, //0x000043e5 popq %rbp - 0xc5, 0xf8, 0x77, //0x000043e6 vzeroupper - 0xc3, //0x000043e9 retq - //0x000043ea LBB12_28 - 0x48, 0x89, 0xf8, //0x000043ea movq %rdi, %rax - 0x48, 0xf7, 0xd0, //0x000043ed notq %rax - 0x49, 0x01, 0xc2, //0x000043f0 addq %rax, %r10 - 0x49, 0x39, 0xf2, //0x000043f3 cmpq %rsi, %r10 - 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x000043f6 jb LBB12_5 - //0x000043fc LBB12_35 - 0x31, 0xc0, //0x000043fc xorl %eax, %eax - 0x0f, 0xbe, 0xc0, //0x000043fe movsbl %al, %eax - 0x5d, //0x00004401 popq %rbp - 0xc5, 0xf8, 0x77, //0x00004402 vzeroupper - 0xc3, //0x00004405 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004406 .p2align 4, 0x90 - //0x00004410 _vstring - 0x55, //0x00004410 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004411 movq %rsp, %rbp - 0x41, 0x57, //0x00004414 pushq %r15 - 0x41, 0x56, //0x00004416 pushq %r14 - 0x41, 0x54, //0x00004418 pushq %r12 - 0x53, //0x0000441a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000441b subq $16, %rsp - 0x49, 0x89, 0xd6, //0x0000441f movq %rdx, %r14 - 0x48, 0x89, 0xf3, //0x00004422 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00004425 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004428 movq $-1, $-40(%rbp) - 0x4c, 0x8b, 0x26, //0x00004430 movq (%rsi), %r12 - 0x48, 0x8d, 0x55, 0xd8, //0x00004433 leaq $-40(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00004437 movq %r12, %rsi - 0xe8, 0xc1, 0x00, 0x00, 0x00, //0x0000443a callq _advance_string - 0x48, 0x85, 0xc0, //0x0000443f testq %rax, %rax - 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00004442 js LBB13_1 - 0x48, 0x89, 0x03, //0x00004448 movq %rax, (%rbx) - 0x4d, 0x89, 0x66, 0x10, //0x0000444b movq %r12, $16(%r14) - 0x48, 0x8b, 0x4d, 0xd8, //0x0000444f movq $-40(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x00004453 cmpq %rax, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004456 movq $-1, %rax - 0x48, 0x0f, 0x4c, 0xc1, //0x0000445d cmovlq %rcx, %rax - 0x49, 0x89, 0x46, 0x18, //0x00004461 movq %rax, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004465 movl $7, %eax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000446a jmp LBB13_3 - //0x0000446f LBB13_1 - 0x49, 0x8b, 0x4f, 0x08, //0x0000446f movq $8(%r15), %rcx - 0x48, 0x89, 0x0b, //0x00004473 movq %rcx, (%rbx) - //0x00004476 LBB13_3 - 0x49, 0x89, 0x06, //0x00004476 movq %rax, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00004479 addq $16, %rsp - 0x5b, //0x0000447d popq %rbx - 0x41, 0x5c, //0x0000447e popq %r12 - 0x41, 0x5e, //0x00004480 popq %r14 - 0x41, 0x5f, //0x00004482 popq %r15 - 0x5d, //0x00004484 popq %rbp - 0xc3, //0x00004485 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004486 .p2align 5, 0x00 - //0x000044a0 LCPI14_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000044a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000044b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000044c0 LCPI14_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000044c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000044d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000044e0 LCPI14_2 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000044e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000044f0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00004500 .p2align 4, 0x90 - //0x00004500 _advance_string - 0xf6, 0xc1, 0x20, //0x00004500 testb $32, %cl - 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00004503 jne LBB14_2 - 0xe9, 0x72, 0x58, 0x00, 0x00, //0x00004509 jmp _advance_string_default - //0x0000450e LBB14_2 - 0x55, //0x0000450e pushq %rbp - 0x48, 0x89, 0xe5, //0x0000450f movq %rsp, %rbp - 0x41, 0x57, //0x00004512 pushq %r15 - 0x41, 0x56, //0x00004514 pushq %r14 - 0x41, 0x55, //0x00004516 pushq %r13 - 0x41, 0x54, //0x00004518 pushq %r12 - 0x53, //0x0000451a pushq %rbx - 0x50, //0x0000451b pushq %rax - 0x4c, 0x8b, 0x67, 0x08, //0x0000451c movq $8(%rdi), %r12 - 0x49, 0x29, 0xf4, //0x00004520 subq %rsi, %r12 - 0x0f, 0x84, 0xef, 0x03, 0x00, 0x00, //0x00004523 je LBB14_42 - 0x4c, 0x8b, 0x07, //0x00004529 movq (%rdi), %r8 - 0x4c, 0x01, 0xc6, //0x0000452c addq %r8, %rsi - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000452f movq $-1, (%rdx) - 0x49, 0x83, 0xfc, 0x40, //0x00004536 cmpq $64, %r12 - 0x0f, 0x82, 0x02, 0x03, 0x00, 0x00, //0x0000453a jb LBB14_43 - 0x45, 0x89, 0xe1, //0x00004540 movl %r12d, %r9d - 0x41, 0x83, 0xe1, 0x3f, //0x00004543 andl $63, %r9d - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004547 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x0000454e xorl %r15d, %r15d - 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xff, 0xff, 0xff, //0x00004551 vmovdqa $-185(%rip), %ymm0 /* LCPI14_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x5f, 0xff, 0xff, 0xff, //0x00004559 vmovdqa $-161(%rip), %ymm1 /* LCPI14_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x77, 0xff, 0xff, 0xff, //0x00004561 vmovdqa $-137(%rip), %ymm2 /* LCPI14_2+0(%rip) */ - 0xc5, 0xe5, 0x76, 0xdb, //0x00004569 vpcmpeqd %ymm3, %ymm3, %ymm3 - 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000456d movabsq $6148914691236517205, %r11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004577 .p2align 4, 0x90 - //0x00004580 LBB14_5 - 0xc5, 0xfe, 0x6f, 0x26, //0x00004580 vmovdqu (%rsi), %ymm4 - 0xc5, 0xfe, 0x6f, 0x6e, 0x20, //0x00004584 vmovdqu $32(%rsi), %ymm5 - 0xc5, 0xdd, 0x74, 0xf0, //0x00004589 vpcmpeqb %ymm0, %ymm4, %ymm6 - 0xc5, 0xfd, 0xd7, 0xc6, //0x0000458d vpmovmskb %ymm6, %eax - 0xc5, 0xd5, 0x74, 0xf0, //0x00004591 vpcmpeqb %ymm0, %ymm5, %ymm6 - 0xc5, 0xfd, 0xd7, 0xfe, //0x00004595 vpmovmskb %ymm6, %edi - 0xc5, 0xdd, 0x74, 0xf1, //0x00004599 vpcmpeqb %ymm1, %ymm4, %ymm6 - 0xc5, 0xfd, 0xd7, 0xce, //0x0000459d vpmovmskb %ymm6, %ecx - 0xc5, 0xd5, 0x74, 0xf1, //0x000045a1 vpcmpeqb %ymm1, %ymm5, %ymm6 - 0xc5, 0x7d, 0xd7, 0xd6, //0x000045a5 vpmovmskb %ymm6, %r10d - 0xc5, 0xed, 0x64, 0xf4, //0x000045a9 vpcmpgtb %ymm4, %ymm2, %ymm6 - 0xc5, 0xdd, 0x64, 0xe3, //0x000045ad vpcmpgtb %ymm3, %ymm4, %ymm4 - 0xc5, 0xdd, 0xdb, 0xe6, //0x000045b1 vpand %ymm6, %ymm4, %ymm4 - 0xc5, 0x7d, 0xd7, 0xec, //0x000045b5 vpmovmskb %ymm4, %r13d - 0xc5, 0xed, 0x64, 0xe5, //0x000045b9 vpcmpgtb %ymm5, %ymm2, %ymm4 - 0xc5, 0xd5, 0x64, 0xeb, //0x000045bd vpcmpgtb %ymm3, %ymm5, %ymm5 - 0xc5, 0xd5, 0xdb, 0xe4, //0x000045c1 vpand %ymm4, %ymm5, %ymm4 - 0xc5, 0xfd, 0xd7, 0xdc, //0x000045c5 vpmovmskb %ymm4, %ebx - 0x48, 0xc1, 0xe7, 0x20, //0x000045c9 shlq $32, %rdi - 0x49, 0xc1, 0xe2, 0x20, //0x000045cd shlq $32, %r10 - 0x4c, 0x09, 0xd1, //0x000045d1 orq %r10, %rcx - 0x49, 0x83, 0xfe, 0xff, //0x000045d4 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000045d8 jne LBB14_7 - 0x48, 0x85, 0xc9, //0x000045de testq %rcx, %rcx - 0x0f, 0x85, 0x93, 0x00, 0x00, 0x00, //0x000045e1 jne LBB14_12 - //0x000045e7 LBB14_7 - 0x48, 0xc1, 0xe3, 0x20, //0x000045e7 shlq $32, %rbx - 0x48, 0x09, 0xc7, //0x000045eb orq %rax, %rdi - 0x48, 0x89, 0xc8, //0x000045ee movq %rcx, %rax - 0x4c, 0x09, 0xf8, //0x000045f1 orq %r15, %rax - 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000045f4 jne LBB14_11 - 0x4c, 0x09, 0xeb, //0x000045fa orq %r13, %rbx - 0x48, 0x85, 0xff, //0x000045fd testq %rdi, %rdi - 0x0f, 0x85, 0x89, 0x00, 0x00, 0x00, //0x00004600 jne LBB14_13 - //0x00004606 LBB14_9 - 0x48, 0x85, 0xdb, //0x00004606 testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00004609 jne LBB14_19 - 0x48, 0x83, 0xc6, 0x40, //0x0000460f addq $64, %rsi - 0x49, 0x83, 0xc4, 0xc0, //0x00004613 addq $-64, %r12 - 0x49, 0x83, 0xfc, 0x3f, //0x00004617 cmpq $63, %r12 - 0x0f, 0x87, 0x5f, 0xff, 0xff, 0xff, //0x0000461b ja LBB14_5 - 0xe9, 0xe3, 0x00, 0x00, 0x00, //0x00004621 jmp LBB14_21 - //0x00004626 LBB14_11 - 0x4c, 0x89, 0xf8, //0x00004626 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x00004629 notq %rax - 0x48, 0x21, 0xc8, //0x0000462c andq %rcx, %rax - 0x48, 0x89, 0x45, 0xd0, //0x0000462f movq %rax, $-48(%rbp) - 0x48, 0x01, 0xc0, //0x00004633 addq %rax, %rax - 0x4c, 0x09, 0xf8, //0x00004636 orq %r15, %rax - 0x49, 0x89, 0xc2, //0x00004639 movq %rax, %r10 - 0x49, 0xf7, 0xd2, //0x0000463c notq %r10 - 0x49, 0x21, 0xca, //0x0000463f andq %rcx, %r10 - 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004642 movabsq $-6148914691236517206, %rcx - 0x49, 0x21, 0xca, //0x0000464c andq %rcx, %r10 - 0x45, 0x31, 0xff, //0x0000464f xorl %r15d, %r15d - 0x4c, 0x03, 0x55, 0xd0, //0x00004652 addq $-48(%rbp), %r10 - 0x41, 0x0f, 0x92, 0xc7, //0x00004656 setb %r15b - 0x4d, 0x01, 0xd2, //0x0000465a addq %r10, %r10 - 0x4d, 0x31, 0xda, //0x0000465d xorq %r11, %r10 - 0x49, 0x21, 0xc2, //0x00004660 andq %rax, %r10 - 0x49, 0xf7, 0xd2, //0x00004663 notq %r10 - 0x4c, 0x21, 0xd7, //0x00004666 andq %r10, %rdi - 0x4c, 0x09, 0xeb, //0x00004669 orq %r13, %rbx - 0x48, 0x85, 0xff, //0x0000466c testq %rdi, %rdi - 0x0f, 0x84, 0x91, 0xff, 0xff, 0xff, //0x0000466f je LBB14_9 - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00004675 jmp LBB14_13 - //0x0000467a LBB14_12 - 0x49, 0x89, 0xf2, //0x0000467a movq %rsi, %r10 - 0x4d, 0x29, 0xc2, //0x0000467d subq %r8, %r10 - 0x4c, 0x0f, 0xbc, 0xf1, //0x00004680 bsfq %rcx, %r14 - 0x4d, 0x01, 0xd6, //0x00004684 addq %r10, %r14 - 0x4c, 0x89, 0x32, //0x00004687 movq %r14, (%rdx) - 0xe9, 0x58, 0xff, 0xff, 0xff, //0x0000468a jmp LBB14_7 - //0x0000468f LBB14_13 - 0x48, 0x0f, 0xbc, 0xc7, //0x0000468f bsfq %rdi, %rax - 0x48, 0x85, 0xdb, //0x00004693 testq %rbx, %rbx - 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00004696 je LBB14_17 - 0x48, 0x0f, 0xbc, 0xcb, //0x0000469c bsfq %rbx, %rcx - 0x4c, 0x29, 0xc6, //0x000046a0 subq %r8, %rsi - 0x48, 0x39, 0xc1, //0x000046a3 cmpq %rax, %rcx - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x000046a6 jb LBB14_18 - //0x000046ac LBB14_15 - 0x48, 0x8d, 0x44, 0x06, 0x01, //0x000046ac leaq $1(%rsi,%rax), %rax - //0x000046b1 LBB14_16 - 0x48, 0x83, 0xc4, 0x08, //0x000046b1 addq $8, %rsp - 0x5b, //0x000046b5 popq %rbx - 0x41, 0x5c, //0x000046b6 popq %r12 - 0x41, 0x5d, //0x000046b8 popq %r13 - 0x41, 0x5e, //0x000046ba popq %r14 - 0x41, 0x5f, //0x000046bc popq %r15 - 0x5d, //0x000046be popq %rbp - 0xc5, 0xf8, 0x77, //0x000046bf vzeroupper - 0xc3, //0x000046c2 retq - //0x000046c3 LBB14_17 - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000046c3 movl $64, %ecx - 0x4c, 0x29, 0xc6, //0x000046c8 subq %r8, %rsi - 0x48, 0x39, 0xc1, //0x000046cb cmpq %rax, %rcx - 0x0f, 0x83, 0xd8, 0xff, 0xff, 0xff, //0x000046ce jae LBB14_15 - //0x000046d4 LBB14_18 - 0x48, 0x01, 0xf1, //0x000046d4 addq %rsi, %rcx - 0x48, 0x89, 0x0a, //0x000046d7 movq %rcx, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000046da movq $-2, %rax - 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x000046e1 jmp LBB14_16 - //0x000046e6 LBB14_19 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000046e6 movq $-2, %rax - 0x49, 0x83, 0xfe, 0xff, //0x000046ed cmpq $-1, %r14 - 0x0f, 0x85, 0xba, 0xff, 0xff, 0xff, //0x000046f1 jne LBB14_16 - 0x48, 0x0f, 0xbc, 0xcb, //0x000046f7 bsfq %rbx, %rcx - 0x4c, 0x29, 0xc6, //0x000046fb subq %r8, %rsi - 0x48, 0x01, 0xce, //0x000046fe addq %rcx, %rsi - 0x48, 0x89, 0x32, //0x00004701 movq %rsi, (%rdx) - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004704 jmp LBB14_16 - //0x00004709 LBB14_21 - 0x4d, 0x89, 0xcc, //0x00004709 movq %r9, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x0000470c cmpq $32, %r12 - 0x0f, 0x82, 0x9c, 0x00, 0x00, 0x00, //0x00004710 jb LBB14_31 - //0x00004716 LBB14_22 - 0xc5, 0xfe, 0x6f, 0x06, //0x00004716 vmovdqu (%rsi), %ymm0 - 0xc5, 0xfd, 0x74, 0x0d, 0x7e, 0xfd, 0xff, 0xff, //0x0000471a vpcmpeqb $-642(%rip), %ymm0, %ymm1 /* LCPI14_0+0(%rip) */ - 0xc5, 0x7d, 0xd7, 0xc9, //0x00004722 vpmovmskb %ymm1, %r9d - 0xc5, 0xfd, 0x74, 0x0d, 0x92, 0xfd, 0xff, 0xff, //0x00004726 vpcmpeqb $-622(%rip), %ymm0, %ymm1 /* LCPI14_1+0(%rip) */ - 0xc5, 0xfd, 0xd7, 0xc1, //0x0000472e vpmovmskb %ymm1, %eax - 0xc5, 0xfd, 0x6f, 0x0d, 0xa6, 0xfd, 0xff, 0xff, //0x00004732 vmovdqa $-602(%rip), %ymm1 /* LCPI14_2+0(%rip) */ - 0xc5, 0xf5, 0x64, 0xc8, //0x0000473a vpcmpgtb %ymm0, %ymm1, %ymm1 - 0xc5, 0xed, 0x76, 0xd2, //0x0000473e vpcmpeqd %ymm2, %ymm2, %ymm2 - 0xc5, 0xfd, 0x64, 0xc2, //0x00004742 vpcmpgtb %ymm2, %ymm0, %ymm0 - 0xc5, 0xfd, 0xdb, 0xc1, //0x00004746 vpand %ymm1, %ymm0, %ymm0 - 0xc5, 0xfd, 0xd7, 0xf8, //0x0000474a vpmovmskb %ymm0, %edi - 0x85, 0xc0, //0x0000474e testl %eax, %eax - 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00004750 jne LBB14_44 - 0x4d, 0x85, 0xff, //0x00004756 testq %r15, %r15 - 0x0f, 0x85, 0x16, 0x01, 0x00, 0x00, //0x00004759 jne LBB14_46 - 0x45, 0x31, 0xff, //0x0000475f xorl %r15d, %r15d - 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00004762 movl $64, %eax - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00004767 movl $64, %ecx - 0x4d, 0x85, 0xc9, //0x0000476c testq %r9, %r9 - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x0000476f je LBB14_26 - //0x00004775 LBB14_25 - 0x49, 0x0f, 0xbc, 0xc9, //0x00004775 bsfq %r9, %rcx - //0x00004779 LBB14_26 - 0x48, 0x0f, 0xbc, 0xdf, //0x00004779 bsfq %rdi, %rbx - 0x85, 0xff, //0x0000477d testl %edi, %edi - 0x48, 0x0f, 0x45, 0xc3, //0x0000477f cmovneq %rbx, %rax - 0x4d, 0x85, 0xc9, //0x00004783 testq %r9, %r9 - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004786 je LBB14_29 - 0x4c, 0x29, 0xc6, //0x0000478c subq %r8, %rsi - 0x48, 0x39, 0xc8, //0x0000478f cmpq %rcx, %rax - 0x0f, 0x82, 0x29, 0x01, 0x00, 0x00, //0x00004792 jb LBB14_47 - 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00004798 leaq $1(%rsi,%rcx), %rax - 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x0000479d jmp LBB14_16 - //0x000047a2 LBB14_29 - 0x85, 0xff, //0x000047a2 testl %edi, %edi - 0x0f, 0x85, 0x29, 0x01, 0x00, 0x00, //0x000047a4 jne LBB14_48 - 0x48, 0x83, 0xc6, 0x20, //0x000047aa addq $32, %rsi - 0x49, 0x83, 0xc4, 0xe0, //0x000047ae addq $-32, %r12 - //0x000047b2 LBB14_31 - 0x4d, 0x85, 0xff, //0x000047b2 testq %r15, %r15 - 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000047b5 jne LBB14_49 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000047bb movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x000047c2 testq %r12, %r12 - 0x0f, 0x84, 0xe6, 0xfe, 0xff, 0xff, //0x000047c5 je LBB14_16 - //0x000047cb LBB14_33 - 0x0f, 0xb6, 0x0e, //0x000047cb movzbl (%rsi), %ecx - 0x80, 0xf9, 0x22, //0x000047ce cmpb $34, %cl - 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x000047d1 je LBB14_41 - 0x80, 0xf9, 0x5c, //0x000047d7 cmpb $92, %cl - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000047da je LBB14_38 - 0x80, 0xf9, 0x1f, //0x000047e0 cmpb $31, %cl - 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x000047e3 jbe LBB14_53 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000047e9 movq $-1, %rcx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000047f0 movl $1, %edi - //0x000047f5 LBB14_37 - 0x48, 0x01, 0xfe, //0x000047f5 addq %rdi, %rsi - 0x49, 0x01, 0xcc, //0x000047f8 addq %rcx, %r12 - 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x000047fb jne LBB14_33 - 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004801 jmp LBB14_16 - //0x00004806 LBB14_38 - 0x49, 0x83, 0xfc, 0x01, //0x00004806 cmpq $1, %r12 - 0x0f, 0x84, 0xa1, 0xfe, 0xff, 0xff, //0x0000480a je LBB14_16 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004810 movq $-2, %rcx - 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00004817 movl $2, %edi - 0x49, 0x83, 0xfe, 0xff, //0x0000481c cmpq $-1, %r14 - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00004820 jne LBB14_37 - 0x49, 0x89, 0xf6, //0x00004826 movq %rsi, %r14 - 0x4d, 0x29, 0xc6, //0x00004829 subq %r8, %r14 - 0x4c, 0x89, 0x32, //0x0000482c movq %r14, (%rdx) - 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x0000482f jmp LBB14_37 - //0x00004834 LBB14_41 - 0x4c, 0x29, 0xc6, //0x00004834 subq %r8, %rsi - 0x48, 0xff, 0xc6, //0x00004837 incq %rsi - 0x48, 0x89, 0xf0, //0x0000483a movq %rsi, %rax - 0xe9, 0x6f, 0xfe, 0xff, 0xff, //0x0000483d jmp LBB14_16 - //0x00004842 LBB14_43 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004842 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00004849 xorl %r15d, %r15d - 0x49, 0x83, 0xfc, 0x20, //0x0000484c cmpq $32, %r12 - 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00004850 jae LBB14_22 - 0xe9, 0x57, 0xff, 0xff, 0xff, //0x00004856 jmp LBB14_31 - //0x0000485b LBB14_44 - 0x49, 0x83, 0xfe, 0xff, //0x0000485b cmpq $-1, %r14 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000485f jne LBB14_46 - 0x48, 0x89, 0xf1, //0x00004865 movq %rsi, %rcx - 0x4c, 0x29, 0xc1, //0x00004868 subq %r8, %rcx - 0x4c, 0x0f, 0xbc, 0xf0, //0x0000486b bsfq %rax, %r14 - 0x49, 0x01, 0xce, //0x0000486f addq %rcx, %r14 - 0x4c, 0x89, 0x32, //0x00004872 movq %r14, (%rdx) - //0x00004875 LBB14_46 - 0x44, 0x89, 0xf9, //0x00004875 movl %r15d, %ecx - 0xf7, 0xd1, //0x00004878 notl %ecx - 0x21, 0xc1, //0x0000487a andl %eax, %ecx - 0x44, 0x8d, 0x14, 0x09, //0x0000487c leal (%rcx,%rcx), %r10d - 0x45, 0x09, 0xfa, //0x00004880 orl %r15d, %r10d - 0x44, 0x89, 0xd3, //0x00004883 movl %r10d, %ebx - 0xf7, 0xd3, //0x00004886 notl %ebx - 0x21, 0xc3, //0x00004888 andl %eax, %ebx - 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000488a andl $-1431655766, %ebx - 0x45, 0x31, 0xff, //0x00004890 xorl %r15d, %r15d - 0x01, 0xcb, //0x00004893 addl %ecx, %ebx - 0x41, 0x0f, 0x92, 0xc7, //0x00004895 setb %r15b - 0x01, 0xdb, //0x00004899 addl %ebx, %ebx - 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000489b xorl $1431655765, %ebx - 0x44, 0x21, 0xd3, //0x000048a1 andl %r10d, %ebx - 0xf7, 0xd3, //0x000048a4 notl %ebx - 0x41, 0x21, 0xd9, //0x000048a6 andl %ebx, %r9d - 0xb8, 0x40, 0x00, 0x00, 0x00, //0x000048a9 movl $64, %eax - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000048ae movl $64, %ecx - 0x4d, 0x85, 0xc9, //0x000048b3 testq %r9, %r9 - 0x0f, 0x85, 0xb9, 0xfe, 0xff, 0xff, //0x000048b6 jne LBB14_25 - 0xe9, 0xb8, 0xfe, 0xff, 0xff, //0x000048bc jmp LBB14_26 - //0x000048c1 LBB14_47 - 0x48, 0x01, 0xf0, //0x000048c1 addq %rsi, %rax - 0x48, 0x89, 0x02, //0x000048c4 movq %rax, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000048c7 movq $-2, %rax - 0xe9, 0xde, 0xfd, 0xff, 0xff, //0x000048ce jmp LBB14_16 - //0x000048d3 LBB14_48 - 0x4c, 0x29, 0xc6, //0x000048d3 subq %r8, %rsi - 0x48, 0x01, 0xde, //0x000048d6 addq %rbx, %rsi - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000048d9 jmp LBB14_54 - //0x000048de LBB14_49 - 0x4d, 0x85, 0xe4, //0x000048de testq %r12, %r12 - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000048e1 je LBB14_42 - 0x49, 0x83, 0xfe, 0xff, //0x000048e7 cmpq $-1, %r14 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000048eb jne LBB14_52 - 0x4d, 0x89, 0xc6, //0x000048f1 movq %r8, %r14 - 0x49, 0xf7, 0xd6, //0x000048f4 notq %r14 - 0x49, 0x01, 0xf6, //0x000048f7 addq %rsi, %r14 - 0x4c, 0x89, 0x32, //0x000048fa movq %r14, (%rdx) - //0x000048fd LBB14_52 - 0x48, 0xff, 0xc6, //0x000048fd incq %rsi - 0x49, 0xff, 0xcc, //0x00004900 decq %r12 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004903 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x0000490a testq %r12, %r12 - 0x0f, 0x85, 0xb8, 0xfe, 0xff, 0xff, //0x0000490d jne LBB14_33 - 0xe9, 0x99, 0xfd, 0xff, 0xff, //0x00004913 jmp LBB14_16 - //0x00004918 LBB14_42 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004918 movq $-1, %rax - 0xe9, 0x8d, 0xfd, 0xff, 0xff, //0x0000491f jmp LBB14_16 - //0x00004924 LBB14_53 - 0x4c, 0x29, 0xc6, //0x00004924 subq %r8, %rsi - //0x00004927 LBB14_54 - 0x48, 0x89, 0x32, //0x00004927 movq %rsi, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000492a movq $-2, %rax - 0xe9, 0x7b, 0xfd, 0xff, 0xff, //0x00004931 jmp LBB14_16 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004936 .p2align 4, 0x00 - //0x00004940 LCPI15_0 - 0x00, 0x00, 0x30, 0x43, //0x00004940 .long 1127219200 - 0x00, 0x00, 0x30, 0x45, //0x00004944 .long 1160773632 - 0x00, 0x00, 0x00, 0x00, //0x00004948 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x0000494c .long 0 - //0x00004950 LCPI15_1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00004950 .quad 4841369599423283200 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00004958 .quad 4985484787499139072 - //0x00004960 .p2align 3, 0x00 - //0x00004960 LCPI15_2 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004960 .quad 4831355200913801216 - //0x00004968 LCPI15_3 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004968 .quad -4392016835940974592 - //0x00004970 .p2align 4, 0x90 - //0x00004970 _vnumber - 0x55, //0x00004970 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004971 movq %rsp, %rbp - 0x41, 0x57, //0x00004974 pushq %r15 - 0x41, 0x56, //0x00004976 pushq %r14 - 0x41, 0x55, //0x00004978 pushq %r13 - 0x41, 0x54, //0x0000497a pushq %r12 - 0x53, //0x0000497c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000497d subq $56, %rsp - 0x48, 0x89, 0xd3, //0x00004981 movq %rdx, %rbx - 0x49, 0x89, 0xf6, //0x00004984 movq %rsi, %r14 - 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00004987 movq $0, $-48(%rbp) - 0x48, 0x8b, 0x06, //0x0000498f movq (%rsi), %rax - 0x4c, 0x8b, 0x3f, //0x00004992 movq (%rdi), %r15 - 0x4c, 0x8b, 0x6f, 0x08, //0x00004995 movq $8(%rdi), %r13 - 0x4c, 0x8b, 0x52, 0x20, //0x00004999 movq $32(%rdx), %r10 - 0x4c, 0x8b, 0x5a, 0x28, //0x0000499d movq $40(%rdx), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000049a1 movq $9, (%rdx) - 0xc5, 0xf9, 0x57, 0xc0, //0x000049a8 vxorpd %xmm0, %xmm0, %xmm0 - 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x000049ac vmovupd %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x000049b1 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x000049b4 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xe8, //0x000049b8 cmpq %r13, %rax - 0x0f, 0x83, 0xc8, 0x02, 0x00, 0x00, //0x000049bb jae LBB15_52 - 0x41, 0x8a, 0x3c, 0x07, //0x000049c1 movb (%r15,%rax), %dil - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000049c5 movl $1, %r9d - 0x40, 0x80, 0xff, 0x2d, //0x000049cb cmpb $45, %dil - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000049cf jne LBB15_4 - 0x48, 0xff, 0xc0, //0x000049d5 incq %rax - 0x4c, 0x39, 0xe8, //0x000049d8 cmpq %r13, %rax - 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x000049db jae LBB15_52 - 0x41, 0x8a, 0x3c, 0x07, //0x000049e1 movb (%r15,%rax), %dil - 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000049e5 movl $-1, %r9d - //0x000049eb LBB15_4 - 0x8d, 0x4f, 0xd0, //0x000049eb leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x000049ee cmpb $10, %cl - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000049f1 jb LBB15_6 - //0x000049f7 LBB15_5 - 0x49, 0x89, 0x06, //0x000049f7 movq %rax, (%r14) - 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x000049fa movq $-2, (%rbx) - 0xe9, 0x8d, 0x02, 0x00, 0x00, //0x00004a01 jmp LBB15_53 - //0x00004a06 LBB15_6 - 0x40, 0x80, 0xff, 0x30, //0x00004a06 cmpb $48, %dil - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004a0a jne LBB15_10 - 0x48, 0x8d, 0x70, 0x01, //0x00004a10 leaq $1(%rax), %rsi - 0x4c, 0x39, 0xe8, //0x00004a14 cmpq %r13, %rax - 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00004a17 jae LBB15_19 - 0x41, 0x8a, 0x14, 0x37, //0x00004a1d movb (%r15,%rsi), %dl - 0x80, 0xc2, 0xd2, //0x00004a21 addb $-46, %dl - 0x80, 0xfa, 0x37, //0x00004a24 cmpb $55, %dl - 0x0f, 0x87, 0x94, 0x00, 0x00, 0x00, //0x00004a27 ja LBB15_19 - 0x44, 0x0f, 0xb6, 0xc2, //0x00004a2d movzbl %dl, %r8d - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004a31 movabsq $36028797027352577, %rdx - 0x4c, 0x0f, 0xa3, 0xc2, //0x00004a3b btq %r8, %rdx - 0x0f, 0x83, 0x7c, 0x00, 0x00, 0x00, //0x00004a3f jae LBB15_19 - //0x00004a45 LBB15_10 - 0x4c, 0x39, 0xe8, //0x00004a45 cmpq %r13, %rax - 0x0f, 0x83, 0x67, 0x00, 0x00, 0x00, //0x00004a48 jae LBB15_18 - 0x80, 0xf9, 0x09, //0x00004a4e cmpb $9, %cl - 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00004a51 ja LBB15_20 - 0x4d, 0x8d, 0x45, 0xff, //0x00004a57 leaq $-1(%r13), %r8 - 0x31, 0xc9, //0x00004a5b xorl %ecx, %ecx - 0x31, 0xf6, //0x00004a5d xorl %esi, %esi - 0x45, 0x31, 0xe4, //0x00004a5f xorl %r12d, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004a62 .p2align 4, 0x90 - //0x00004a70 LBB15_13 - 0x83, 0xfe, 0x12, //0x00004a70 cmpl $18, %esi - 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00004a73 jg LBB15_15 - 0x48, 0x0f, 0xbe, 0xff, //0x00004a79 movsbq %dil, %rdi - 0x4b, 0x8d, 0x14, 0xa4, //0x00004a7d leaq (%r12,%r12,4), %rdx - 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00004a81 leaq $-48(%rdi,%rdx,2), %r12 - 0xff, 0xc6, //0x00004a86 incl %esi - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00004a88 jmp LBB15_16 - 0x90, 0x90, 0x90, //0x00004a8d .p2align 4, 0x90 - //0x00004a90 LBB15_15 - 0xff, 0xc1, //0x00004a90 incl %ecx - //0x00004a92 LBB15_16 - 0x49, 0x39, 0xc0, //0x00004a92 cmpq %rax, %r8 - 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00004a95 je LBB15_24 - 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00004a9b movzbl $1(%r15,%rax), %edi - 0x48, 0xff, 0xc0, //0x00004aa1 incq %rax - 0x8d, 0x57, 0xd0, //0x00004aa4 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x0a, //0x00004aa7 cmpb $10, %dl - 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00004aaa jb LBB15_13 - 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00004ab0 jmp LBB15_21 - //0x00004ab5 LBB15_18 - 0x31, 0xc9, //0x00004ab5 xorl %ecx, %ecx - 0x31, 0xf6, //0x00004ab7 xorl %esi, %esi - 0x45, 0x31, 0xe4, //0x00004ab9 xorl %r12d, %r12d - 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00004abc jmp LBB15_25 - //0x00004ac1 LBB15_19 - 0x49, 0x89, 0x36, //0x00004ac1 movq %rsi, (%r14) - 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00004ac4 jmp LBB15_53 - //0x00004ac9 LBB15_20 - 0x45, 0x31, 0xe4, //0x00004ac9 xorl %r12d, %r12d - 0x31, 0xf6, //0x00004acc xorl %esi, %esi - 0x31, 0xc9, //0x00004ace xorl %ecx, %ecx - //0x00004ad0 LBB15_21 - 0x31, 0xd2, //0x00004ad0 xorl %edx, %edx - 0x85, 0xc9, //0x00004ad2 testl %ecx, %ecx - 0x0f, 0x9f, 0xc2, //0x00004ad4 setg %dl - 0x89, 0x55, 0xcc, //0x00004ad7 movl %edx, $-52(%rbp) - 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00004ada movl $9, %r8d - 0x40, 0x80, 0xff, 0x2e, //0x00004ae0 cmpb $46, %dil - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00004ae4 jne LBB15_26 - 0x48, 0xff, 0xc0, //0x00004aea incq %rax - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004aed movq $8, (%rbx) - 0x4c, 0x39, 0xe8, //0x00004af4 cmpq %r13, %rax - 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00004af7 jae LBB15_52 - 0x41, 0x8a, 0x14, 0x07, //0x00004afd movb (%r15,%rax), %dl - 0x80, 0xc2, 0xd0, //0x00004b01 addb $-48, %dl - 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00004b04 movl $8, %r8d - 0x80, 0xfa, 0x0a, //0x00004b0a cmpb $10, %dl - 0x0f, 0x83, 0xe4, 0xfe, 0xff, 0xff, //0x00004b0d jae LBB15_5 - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00004b13 jmp LBB15_26 - //0x00004b18 LBB15_24 - 0x4c, 0x89, 0xe8, //0x00004b18 movq %r13, %rax - //0x00004b1b LBB15_25 - 0x31, 0xd2, //0x00004b1b xorl %edx, %edx - 0x85, 0xc9, //0x00004b1d testl %ecx, %ecx - 0x0f, 0x9f, 0xc2, //0x00004b1f setg %dl - 0x89, 0x55, 0xcc, //0x00004b22 movl %edx, $-52(%rbp) - 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00004b25 movl $9, %r8d - //0x00004b2b LBB15_26 - 0x85, 0xc9, //0x00004b2b testl %ecx, %ecx - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00004b2d jne LBB15_35 - 0x4d, 0x85, 0xe4, //0x00004b33 testq %r12, %r12 - 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00004b36 jne LBB15_35 - 0x4c, 0x39, 0xe8, //0x00004b3c cmpq %r13, %rax - 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00004b3f jae LBB15_33 - 0x89, 0xc7, //0x00004b45 movl %eax, %edi - 0x44, 0x29, 0xef, //0x00004b47 subl %r13d, %edi - 0x31, 0xf6, //0x00004b4a xorl %esi, %esi - 0x31, 0xc9, //0x00004b4c xorl %ecx, %ecx - 0x90, 0x90, //0x00004b4e .p2align 4, 0x90 - //0x00004b50 LBB15_30 - 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004b50 cmpb $48, (%r15,%rax) - 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00004b55 jne LBB15_34 - 0x48, 0xff, 0xc0, //0x00004b5b incq %rax - 0xff, 0xc9, //0x00004b5e decl %ecx - 0x49, 0x39, 0xc5, //0x00004b60 cmpq %rax, %r13 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00004b63 jne LBB15_30 - 0x45, 0x31, 0xe4, //0x00004b69 xorl %r12d, %r12d - 0x41, 0x83, 0xf8, 0x09, //0x00004b6c cmpl $9, %r8d - 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00004b70 je LBB15_55 - 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00004b76 jmp LBB15_59 - //0x00004b7b LBB15_33 - 0x31, 0xc9, //0x00004b7b xorl %ecx, %ecx - 0x31, 0xf6, //0x00004b7d xorl %esi, %esi - //0x00004b7f LBB15_34 - 0x45, 0x31, 0xe4, //0x00004b7f xorl %r12d, %r12d - //0x00004b82 LBB15_35 - 0x4c, 0x39, 0xe8, //0x00004b82 cmpq %r13, %rax - 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00004b85 jae LBB15_40 - 0x83, 0xfe, 0x12, //0x00004b8b cmpl $18, %esi - 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00004b8e jg LBB15_40 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b94 .p2align 4, 0x90 - //0x00004ba0 LBB15_37 - 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004ba0 movzbl (%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00004ba5 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00004ba8 cmpb $9, %dl - 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00004bab ja LBB15_40 - 0x4b, 0x8d, 0x14, 0xa4, //0x00004bb1 leaq (%r12,%r12,4), %rdx - 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00004bb5 leaq $-48(%rdi,%rdx,2), %r12 - 0xff, 0xc9, //0x00004bba decl %ecx - 0x48, 0xff, 0xc0, //0x00004bbc incq %rax - 0x4c, 0x39, 0xe8, //0x00004bbf cmpq %r13, %rax - 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00004bc2 jae LBB15_40 - 0x8d, 0x56, 0x01, //0x00004bc8 leal $1(%rsi), %edx - 0x83, 0xfe, 0x12, //0x00004bcb cmpl $18, %esi - 0x89, 0xd6, //0x00004bce movl %edx, %esi - 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00004bd0 jl LBB15_37 - //0x00004bd6 LBB15_40 - 0x4c, 0x39, 0xe8, //0x00004bd6 cmpq %r13, %rax - 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00004bd9 jae LBB15_54 - 0x41, 0x8a, 0x34, 0x07, //0x00004bdf movb (%r15,%rax), %sil - 0x8d, 0x56, 0xd0, //0x00004be3 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x09, //0x00004be6 cmpb $9, %dl - 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00004be9 ja LBB15_46 - 0x49, 0x8d, 0x7d, 0xff, //0x00004bef leaq $-1(%r13), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004bf3 .p2align 4, 0x90 - //0x00004c00 LBB15_43 - 0x48, 0x39, 0xc7, //0x00004c00 cmpq %rax, %rdi - 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00004c03 je LBB15_76 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004c09 movzbl $1(%r15,%rax), %esi - 0x48, 0xff, 0xc0, //0x00004c0f incq %rax - 0x8d, 0x56, 0xd0, //0x00004c12 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x09, //0x00004c15 cmpb $9, %dl - 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00004c18 jbe LBB15_43 - 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00004c1e movl $1, $-52(%rbp) - //0x00004c25 LBB15_46 - 0x40, 0x80, 0xce, 0x20, //0x00004c25 orb $32, %sil - 0x40, 0x80, 0xfe, 0x65, //0x00004c29 cmpb $101, %sil - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004c2d jne LBB15_54 - 0x48, 0x8d, 0x78, 0x01, //0x00004c33 leaq $1(%rax), %rdi - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004c37 movq $8, (%rbx) - 0x4c, 0x39, 0xef, //0x00004c3e cmpq %r13, %rdi - 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00004c41 jae LBB15_52 - 0x41, 0x8a, 0x34, 0x3f, //0x00004c47 movb (%r15,%rdi), %sil - 0x40, 0x80, 0xfe, 0x2d, //0x00004c4b cmpb $45, %sil - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004c4f je LBB15_50 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004c55 movl $1, %r8d - 0x40, 0x80, 0xfe, 0x2b, //0x00004c5b cmpb $43, %sil - 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x00004c5f jne LBB15_85 - //0x00004c65 LBB15_50 - 0x48, 0x83, 0xc0, 0x02, //0x00004c65 addq $2, %rax - 0x4c, 0x39, 0xe8, //0x00004c69 cmpq %r13, %rax - 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x00004c6c jae LBB15_52 - 0x31, 0xd2, //0x00004c72 xorl %edx, %edx - 0x40, 0x80, 0xfe, 0x2b, //0x00004c74 cmpb $43, %sil - 0x0f, 0x94, 0xc2, //0x00004c78 sete %dl - 0x44, 0x8d, 0x44, 0x12, 0xff, //0x00004c7b leal $-1(%rdx,%rdx), %r8d - 0x41, 0x8a, 0x34, 0x07, //0x00004c80 movb (%r15,%rax), %sil - 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00004c84 jmp LBB15_86 - //0x00004c89 LBB15_52 - 0x4d, 0x89, 0x2e, //0x00004c89 movq %r13, (%r14) - 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x00004c8c movq $-1, (%rbx) - //0x00004c93 LBB15_53 - 0x48, 0x83, 0xc4, 0x38, //0x00004c93 addq $56, %rsp - 0x5b, //0x00004c97 popq %rbx - 0x41, 0x5c, //0x00004c98 popq %r12 - 0x41, 0x5d, //0x00004c9a popq %r13 - 0x41, 0x5e, //0x00004c9c popq %r14 - 0x41, 0x5f, //0x00004c9e popq %r15 - 0x5d, //0x00004ca0 popq %rbp - 0xc3, //0x00004ca1 retq - //0x00004ca2 LBB15_54 - 0x89, 0xcf, //0x00004ca2 movl %ecx, %edi - 0x49, 0x89, 0xc5, //0x00004ca4 movq %rax, %r13 - 0x41, 0x83, 0xf8, 0x09, //0x00004ca7 cmpl $9, %r8d - 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00004cab jne LBB15_59 - //0x00004cb1 LBB15_55 - 0x85, 0xff, //0x00004cb1 testl %edi, %edi - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004cb3 jne LBB15_58 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004cb9 movabsq $-9223372036854775808, %rax - 0x49, 0x63, 0xc9, //0x00004cc3 movslq %r9d, %rcx - 0x4d, 0x85, 0xe4, //0x00004cc6 testq %r12, %r12 - 0x0f, 0x89, 0xba, 0x01, 0x00, 0x00, //0x00004cc9 jns LBB15_80 - 0x4c, 0x89, 0xe2, //0x00004ccf movq %r12, %rdx - 0x48, 0x21, 0xca, //0x00004cd2 andq %rcx, %rdx - 0x48, 0x39, 0xc2, //0x00004cd5 cmpq %rax, %rdx - 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00004cd8 je LBB15_80 - //0x00004cde LBB15_58 - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004cde movq $8, (%rbx) - //0x00004ce5 LBB15_59 - 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00004ce5 movq $0, $-64(%rbp) - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004ced vmovq %r12, %xmm0 - 0xc5, 0xf9, 0x62, 0x05, 0x46, 0xfc, 0xff, 0xff, //0x00004cf2 vpunpckldq $-954(%rip), %xmm0, %xmm0 /* LCPI15_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0x4e, 0xfc, 0xff, 0xff, //0x00004cfa vsubpd $-946(%rip), %xmm0, %xmm0 /* LCPI15_1+0(%rip) */ - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004d02 vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x00004d08 vaddsd %xmm0, %xmm1, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004d0c vmovsd %xmm0, $-48(%rbp) - 0x4c, 0x89, 0xe0, //0x00004d11 movq %r12, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x00004d14 shrq $52, %rax - 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x00004d18 je LBB15_71 - //0x00004d1e LBB15_60 - 0x4c, 0x89, 0x5d, 0xb0, //0x00004d1e movq %r11, $-80(%rbp) - 0x4c, 0x89, 0x55, 0xa8, //0x00004d22 movq %r10, $-88(%rbp) - 0x48, 0x8d, 0x4d, 0xd0, //0x00004d26 leaq $-48(%rbp), %rcx - 0x48, 0x89, 0xfe, //0x00004d2a movq %rdi, %rsi - 0x4c, 0x89, 0xe7, //0x00004d2d movq %r12, %rdi - 0x48, 0x89, 0x75, 0xb8, //0x00004d30 movq %rsi, $-72(%rbp) - 0x44, 0x89, 0xca, //0x00004d34 movl %r9d, %edx - 0x44, 0x89, 0x4d, 0xc8, //0x00004d37 movl %r9d, $-56(%rbp) - 0xe8, 0x10, 0xe4, 0xff, 0xff, //0x00004d3b callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00004d40 testb %al, %al - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00004d42 je LBB15_64 - 0x48, 0x8b, 0x75, 0xb8, //0x00004d48 movq $-72(%rbp), %rsi - 0x8b, 0x55, 0xc8, //0x00004d4c movl $-56(%rbp), %edx - 0x83, 0x7d, 0xcc, 0x00, //0x00004d4f cmpl $0, $-52(%rbp) - 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004d53 je LBB15_79 - 0x49, 0xff, 0xc4, //0x00004d59 incq %r12 - 0x48, 0x8d, 0x4d, 0xc0, //0x00004d5c leaq $-64(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x00004d60 movq %r12, %rdi - 0xe8, 0xe8, 0xe3, 0xff, 0xff, //0x00004d63 callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00004d68 testb %al, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00004d6a je LBB15_64 - 0xc5, 0xfb, 0x10, 0x4d, 0xc0, //0x00004d70 vmovsd $-64(%rbp), %xmm1 - 0xc5, 0xfb, 0x10, 0x45, 0xd0, //0x00004d75 vmovsd $-48(%rbp), %xmm0 - 0xc5, 0xf9, 0x2e, 0xc8, //0x00004d7a vucomisd %xmm0, %xmm1 - 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x00004d7e jne LBB15_64 - 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004d84 jnp LBB15_66 - //0x00004d8a LBB15_64 - 0x49, 0x8b, 0x06, //0x00004d8a movq (%r14), %rax - 0x49, 0x01, 0xc7, //0x00004d8d addq %rax, %r15 - 0x4c, 0x89, 0xee, //0x00004d90 movq %r13, %rsi - 0x48, 0x29, 0xc6, //0x00004d93 subq %rax, %rsi - 0x4c, 0x89, 0xff, //0x00004d96 movq %r15, %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x00004d99 movq $-88(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x00004d9d movq $-80(%rbp), %rcx - 0xe8, 0x0a, 0xec, 0xff, 0xff, //0x00004da1 callq _atof_native - //0x00004da6 LBB15_65 - 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004da6 vmovsd %xmm0, $-48(%rbp) - //0x00004dab LBB15_66 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004dab vmovq %xmm0, %rax - //0x00004db0 LBB15_67 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004db0 movabsq $-9223372036854775808, %rcx - 0x48, 0xff, 0xc9, //0x00004dba decq %rcx - 0x48, 0x21, 0xc1, //0x00004dbd andq %rax, %rcx - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004dc0 movabsq $9218868437227405312, %rdx - 0x48, 0x39, 0xd1, //0x00004dca cmpq %rdx, %rcx - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004dcd jne LBB15_69 - 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x00004dd3 movq $-8, (%rbx) - //0x00004dda LBB15_69 - 0x48, 0x89, 0x43, 0x08, //0x00004dda movq %rax, $8(%rbx) - //0x00004dde LBB15_70 - 0x4d, 0x89, 0x2e, //0x00004dde movq %r13, (%r14) - 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004de1 jmp LBB15_53 - //0x00004de6 LBB15_71 - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004de6 vmovq %xmm0, %rcx - 0x44, 0x89, 0xc8, //0x00004deb movl %r9d, %eax - 0xc1, 0xe8, 0x1f, //0x00004dee shrl $31, %eax - 0x48, 0xc1, 0xe0, 0x3f, //0x00004df1 shlq $63, %rax - 0x48, 0x09, 0xc8, //0x00004df5 orq %rcx, %rax - 0x48, 0x89, 0x45, 0xd0, //0x00004df8 movq %rax, $-48(%rbp) - 0x4d, 0x85, 0xe4, //0x00004dfc testq %r12, %r12 - 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x00004dff je LBB15_67 - 0x85, 0xff, //0x00004e05 testl %edi, %edi - 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x00004e07 je LBB15_67 - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00004e0d vmovq %rax, %xmm0 - 0x8d, 0x47, 0xff, //0x00004e12 leal $-1(%rdi), %eax - 0x83, 0xf8, 0x24, //0x00004e15 cmpl $36, %eax - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00004e18 ja LBB15_77 - 0x83, 0xff, 0x17, //0x00004e1e cmpl $23, %edi - 0x0f, 0x8c, 0x9d, 0x00, 0x00, 0x00, //0x00004e21 jl LBB15_81 - 0x48, 0x63, 0xc7, //0x00004e27 movslq %edi, %rax - 0x48, 0x8d, 0x0d, 0xcf, 0xf0, 0x00, 0x00, //0x00004e2a leaq $61647(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00004e31 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 - 0xc5, 0xfb, 0x11, 0x45, 0xd0, //0x00004e3a vmovsd %xmm0, $-48(%rbp) - 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004e3f movl $22, %eax - 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x00004e44 jmp LBB15_82 - //0x00004e49 LBB15_76 - 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x00004e49 movl $1, $-52(%rbp) - 0x89, 0xcf, //0x00004e50 movl %ecx, %edi - 0x41, 0x83, 0xf8, 0x09, //0x00004e52 cmpl $9, %r8d - 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00004e56 je LBB15_55 - 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x00004e5c jmp LBB15_59 - //0x00004e61 LBB15_77 - 0x83, 0xff, 0xea, //0x00004e61 cmpl $-22, %edi - 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004e64 jb LBB15_60 - 0xf7, 0xdf, //0x00004e6a negl %edi - 0x48, 0x63, 0xc7, //0x00004e6c movslq %edi, %rax - 0x48, 0x8d, 0x0d, 0x8a, 0xf0, 0x00, 0x00, //0x00004e6f leaq $61578(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x00004e76 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 - 0xe9, 0x26, 0xff, 0xff, 0xff, //0x00004e7b jmp LBB15_65 - //0x00004e80 LBB15_79 - 0x48, 0x8b, 0x45, 0xd0, //0x00004e80 movq $-48(%rbp), %rax - 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004e84 jmp LBB15_67 - //0x00004e89 LBB15_80 - 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004e89 vmovq %r12, %xmm0 - 0x4c, 0x0f, 0xaf, 0xe1, //0x00004e8e imulq %rcx, %r12 - 0xc5, 0xf9, 0x62, 0x05, 0xa6, 0xfa, 0xff, 0xff, //0x00004e92 vpunpckldq $-1370(%rip), %xmm0, %xmm0 /* LCPI15_0+0(%rip) */ - 0xc5, 0xf9, 0x5c, 0x05, 0xae, 0xfa, 0xff, 0xff, //0x00004e9a vsubpd $-1362(%rip), %xmm0, %xmm0 /* LCPI15_1+0(%rip) */ - 0x4c, 0x89, 0x63, 0x10, //0x00004ea2 movq %r12, $16(%rbx) - 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004ea6 vpermilpd $1, %xmm0, %xmm1 - 0xc5, 0xf3, 0x58, 0xc0, //0x00004eac vaddsd %xmm0, %xmm1, %xmm0 - 0x48, 0x21, 0xc8, //0x00004eb0 andq %rcx, %rax - 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004eb3 vmovq %xmm0, %rcx - 0x48, 0x09, 0xc1, //0x00004eb8 orq %rax, %rcx - 0x48, 0x89, 0x4b, 0x08, //0x00004ebb movq %rcx, $8(%rbx) - 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00004ebf jmp LBB15_70 - //0x00004ec4 LBB15_81 - 0x89, 0xf8, //0x00004ec4 movl %edi, %eax - //0x00004ec6 LBB15_82 - 0xc5, 0xf9, 0x2e, 0x05, 0x92, 0xfa, 0xff, 0xff, //0x00004ec6 vucomisd $-1390(%rip), %xmm0 /* LCPI15_2+0(%rip) */ - 0x0f, 0x87, 0x4a, 0xfe, 0xff, 0xff, //0x00004ece ja LBB15_60 - 0xc5, 0xfb, 0x10, 0x0d, 0x8c, 0xfa, 0xff, 0xff, //0x00004ed4 vmovsd $-1396(%rip), %xmm1 /* LCPI15_3+0(%rip) */ - 0xc5, 0xf9, 0x2e, 0xc8, //0x00004edc vucomisd %xmm0, %xmm1 - 0x0f, 0x87, 0x38, 0xfe, 0xff, 0xff, //0x00004ee0 ja LBB15_60 - 0x89, 0xc0, //0x00004ee6 movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x11, 0xf0, 0x00, 0x00, //0x00004ee8 leaq $61457(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x00004eef vmulsd (%rcx,%rax,8), %xmm0, %xmm0 - 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x00004ef4 jmp LBB15_65 - //0x00004ef9 LBB15_85 - 0x48, 0x89, 0xf8, //0x00004ef9 movq %rdi, %rax - //0x00004efc LBB15_86 - 0x8d, 0x7e, 0xd0, //0x00004efc leal $-48(%rsi), %edi - 0x40, 0x80, 0xff, 0x09, //0x00004eff cmpb $9, %dil - 0x0f, 0x87, 0xee, 0xfa, 0xff, 0xff, //0x00004f03 ja LBB15_5 - 0x44, 0x89, 0x4d, 0xc8, //0x00004f09 movl %r9d, $-56(%rbp) - 0x4c, 0x39, 0xe8, //0x00004f0d cmpq %r13, %rax - 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00004f10 jae LBB15_93 - 0x40, 0x80, 0xff, 0x09, //0x00004f16 cmpb $9, %dil - 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x00004f1a ja LBB15_93 - 0x4d, 0x8d, 0x4d, 0xff, //0x00004f20 leaq $-1(%r13), %r9 - 0x31, 0xff, //0x00004f24 xorl %edi, %edi - //0x00004f26 LBB15_90 - 0x89, 0xfa, //0x00004f26 movl %edi, %edx - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004f28 cmpl $10000, %edi - 0x8d, 0x3c, 0x92, //0x00004f2e leal (%rdx,%rdx,4), %edi - 0x40, 0x0f, 0xb6, 0xf6, //0x00004f31 movzbl %sil, %esi - 0x8d, 0x7c, 0x7e, 0xd0, //0x00004f35 leal $-48(%rsi,%rdi,2), %edi - 0x0f, 0x4d, 0xfa, //0x00004f39 cmovgel %edx, %edi - 0x49, 0x39, 0xc1, //0x00004f3c cmpq %rax, %r9 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00004f3f je LBB15_94 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004f45 movzbl $1(%r15,%rax), %esi - 0x48, 0xff, 0xc0, //0x00004f4b incq %rax - 0x8d, 0x56, 0xd0, //0x00004f4e leal $-48(%rsi), %edx - 0x80, 0xfa, 0x0a, //0x00004f51 cmpb $10, %dl - 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004f54 jb LBB15_90 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004f5a jmp LBB15_95 - //0x00004f5f LBB15_93 - 0x31, 0xff, //0x00004f5f xorl %edi, %edi - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004f61 jmp LBB15_95 - //0x00004f66 LBB15_94 - 0x4c, 0x89, 0xe8, //0x00004f66 movq %r13, %rax - //0x00004f69 LBB15_95 - 0x41, 0x0f, 0xaf, 0xf8, //0x00004f69 imull %r8d, %edi - 0x01, 0xcf, //0x00004f6d addl %ecx, %edi - 0x49, 0x89, 0xc5, //0x00004f6f movq %rax, %r13 - 0x44, 0x8b, 0x4d, 0xc8, //0x00004f72 movl $-56(%rbp), %r9d - 0xe9, 0x6a, 0xfd, 0xff, 0xff, //0x00004f76 jmp LBB15_59 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f7b .p2align 4, 0x90 - //0x00004f80 _vsigned - 0x55, //0x00004f80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004f81 movq %rsp, %rbp - 0x53, //0x00004f84 pushq %rbx - 0x48, 0x8b, 0x1e, //0x00004f85 movq (%rsi), %rbx - 0x4c, 0x8b, 0x07, //0x00004f88 movq (%rdi), %r8 - 0x4c, 0x8b, 0x57, 0x08, //0x00004f8b movq $8(%rdi), %r10 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004f8f movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x00004f96 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x00004f9a vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x0e, //0x00004f9f movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00004fa2 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xd3, //0x00004fa6 cmpq %r10, %rbx - 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00004fa9 jae LBB16_1 - 0x41, 0x8a, 0x0c, 0x18, //0x00004faf movb (%r8,%rbx), %cl - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00004fb3 movl $1, %r9d - 0x80, 0xf9, 0x2d, //0x00004fb9 cmpb $45, %cl - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004fbc jne LBB16_5 - 0x48, 0xff, 0xc3, //0x00004fc2 incq %rbx - 0x4c, 0x39, 0xd3, //0x00004fc5 cmpq %r10, %rbx - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004fc8 jae LBB16_1 - 0x41, 0x8a, 0x0c, 0x18, //0x00004fce movb (%r8,%rbx), %cl - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004fd2 movq $-1, %r9 - //0x00004fd9 LBB16_5 - 0x8d, 0x79, 0xd0, //0x00004fd9 leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x00004fdc cmpb $10, %dil - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00004fe0 jb LBB16_7 - 0x48, 0x89, 0x1e, //0x00004fe6 movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004fe9 movq $-2, (%rdx) - 0x5b, //0x00004ff0 popq %rbx - 0x5d, //0x00004ff1 popq %rbp - 0xc3, //0x00004ff2 retq - //0x00004ff3 LBB16_1 - 0x4c, 0x89, 0x16, //0x00004ff3 movq %r10, (%rsi) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00004ff6 movq $-1, (%rdx) - 0x5b, //0x00004ffd popq %rbx - 0x5d, //0x00004ffe popq %rbp - 0xc3, //0x00004fff retq - //0x00005000 LBB16_7 - 0x80, 0xf9, 0x30, //0x00005000 cmpb $48, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005003 jne LBB16_8 - 0x48, 0x8d, 0x7b, 0x01, //0x00005009 leaq $1(%rbx), %rdi - 0x4c, 0x39, 0xd3, //0x0000500d cmpq %r10, %rbx - 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00005010 jae LBB16_17 - 0x41, 0x8a, 0x0c, 0x38, //0x00005016 movb (%r8,%rdi), %cl - 0x80, 0xc1, 0xd2, //0x0000501a addb $-46, %cl - 0x80, 0xf9, 0x37, //0x0000501d cmpb $55, %cl - 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x00005020 ja LBB16_17 - 0x44, 0x0f, 0xb6, 0xd9, //0x00005026 movzbl %cl, %r11d - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000502a movabsq $36028797027352577, %rcx - 0x4c, 0x0f, 0xa3, 0xd9, //0x00005034 btq %r11, %rcx - 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00005038 jae LBB16_17 - //0x0000503e LBB16_8 - 0x31, 0xff, //0x0000503e xorl %edi, %edi - //0x00005040 .p2align 4, 0x90 - //0x00005040 LBB16_9 - 0x4c, 0x39, 0xd3, //0x00005040 cmpq %r10, %rbx - 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x00005043 jae LBB16_22 - 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x00005049 movsbq (%r8,%rbx), %rcx - 0x8d, 0x41, 0xd0, //0x0000504e leal $-48(%rcx), %eax - 0x3c, 0x09, //0x00005051 cmpb $9, %al - 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00005053 ja LBB16_18 - 0x48, 0x6b, 0xff, 0x0a, //0x00005059 imulq $10, %rdi, %rdi - 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000505d jo LBB16_13 - 0x48, 0xff, 0xc3, //0x00005063 incq %rbx - 0x48, 0x83, 0xc1, 0xd0, //0x00005066 addq $-48, %rcx - 0x49, 0x0f, 0xaf, 0xc9, //0x0000506a imulq %r9, %rcx - 0x48, 0x01, 0xcf, //0x0000506e addq %rcx, %rdi - 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00005071 jno LBB16_9 - //0x00005077 LBB16_13 - 0x48, 0xff, 0xcb, //0x00005077 decq %rbx - 0x48, 0x89, 0x1e, //0x0000507a movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000507d movq $-5, (%rdx) - 0x5b, //0x00005084 popq %rbx - 0x5d, //0x00005085 popq %rbp - 0xc3, //0x00005086 retq - //0x00005087 LBB16_17 - 0x48, 0x89, 0x3e, //0x00005087 movq %rdi, (%rsi) - 0x5b, //0x0000508a popq %rbx - 0x5d, //0x0000508b popq %rbp - 0xc3, //0x0000508c retq - //0x0000508d LBB16_18 - 0x80, 0xf9, 0x65, //0x0000508d cmpb $101, %cl - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005090 je LBB16_21 - 0x80, 0xf9, 0x45, //0x00005096 cmpb $69, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00005099 je LBB16_21 - 0x80, 0xf9, 0x2e, //0x0000509f cmpb $46, %cl - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000050a2 jne LBB16_22 - //0x000050a8 LBB16_21 - 0x48, 0x89, 0x1e, //0x000050a8 movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000050ab movq $-6, (%rdx) - 0x5b, //0x000050b2 popq %rbx - 0x5d, //0x000050b3 popq %rbp - 0xc3, //0x000050b4 retq - //0x000050b5 LBB16_22 - 0x48, 0x89, 0x1e, //0x000050b5 movq %rbx, (%rsi) - 0x48, 0x89, 0x7a, 0x10, //0x000050b8 movq %rdi, $16(%rdx) - 0x5b, //0x000050bc popq %rbx - 0x5d, //0x000050bd popq %rbp - 0xc3, //0x000050be retq - 0x90, //0x000050bf .p2align 4, 0x90 - //0x000050c0 _vunsigned - 0x55, //0x000050c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000050c1 movq %rsp, %rbp - 0x49, 0x89, 0xd0, //0x000050c4 movq %rdx, %r8 - 0x48, 0x8b, 0x0e, //0x000050c7 movq (%rsi), %rcx - 0x4c, 0x8b, 0x0f, //0x000050ca movq (%rdi), %r9 - 0x4c, 0x8b, 0x5f, 0x08, //0x000050cd movq $8(%rdi), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000050d1 movq $9, (%rdx) - 0xc5, 0xf8, 0x57, 0xc0, //0x000050d8 vxorps %xmm0, %xmm0, %xmm0 - 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000050dc vmovups %xmm0, $8(%rdx) - 0x48, 0x8b, 0x06, //0x000050e1 movq (%rsi), %rax - 0x48, 0x89, 0x42, 0x18, //0x000050e4 movq %rax, $24(%rdx) - 0x4c, 0x39, 0xd9, //0x000050e8 cmpq %r11, %rcx - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000050eb jae LBB17_1 - 0x41, 0x8a, 0x04, 0x09, //0x000050f1 movb (%r9,%rcx), %al - 0x3c, 0x2d, //0x000050f5 cmpb $45, %al - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000050f7 jne LBB17_4 - //0x000050fd LBB17_3 - 0x48, 0x89, 0x0e, //0x000050fd movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00005100 movq $-6, (%r8) - 0x5d, //0x00005107 popq %rbp - 0xc3, //0x00005108 retq - //0x00005109 LBB17_1 - 0x4c, 0x89, 0x1e, //0x00005109 movq %r11, (%rsi) - 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000510c movq $-1, (%r8) - 0x5d, //0x00005113 popq %rbp - 0xc3, //0x00005114 retq - //0x00005115 LBB17_4 - 0x8d, 0x50, 0xd0, //0x00005115 leal $-48(%rax), %edx - 0x80, 0xfa, 0x0a, //0x00005118 cmpb $10, %dl - 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x0000511b jb LBB17_6 - 0x48, 0x89, 0x0e, //0x00005121 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00005124 movq $-2, (%r8) - 0x5d, //0x0000512b popq %rbp - 0xc3, //0x0000512c retq - //0x0000512d LBB17_6 - 0x3c, 0x30, //0x0000512d cmpb $48, %al - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000512f jne LBB17_7 - 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00005135 movb $1(%r9,%rcx), %al - 0x04, 0xd2, //0x0000513a addb $-46, %al - 0x3c, 0x37, //0x0000513c cmpb $55, %al - 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x0000513e ja LBB17_16 - 0x0f, 0xb6, 0xc0, //0x00005144 movzbl %al, %eax - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005147 movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xc2, //0x00005151 btq %rax, %rdx - 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00005155 jae LBB17_16 - //0x0000515b LBB17_7 - 0x31, 0xc0, //0x0000515b xorl %eax, %eax - 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000515d movl $10, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005163 .p2align 4, 0x90 - //0x00005170 LBB17_8 - 0x4c, 0x39, 0xd9, //0x00005170 cmpq %r11, %rcx - 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00005173 jae LBB17_20 - 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00005179 movsbl (%r9,%rcx), %edi - 0x8d, 0x57, 0xd0, //0x0000517e leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00005181 cmpb $9, %dl - 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x00005184 ja LBB17_17 - 0x49, 0xf7, 0xe2, //0x0000518a mulq %r10 - 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x0000518d jo LBB17_13 - 0x48, 0xff, 0xc1, //0x00005193 incq %rcx - 0x83, 0xc7, 0xd0, //0x00005196 addl $-48, %edi - 0x48, 0x63, 0xd7, //0x00005199 movslq %edi, %rdx - 0x48, 0x89, 0xd7, //0x0000519c movq %rdx, %rdi - 0x48, 0xc1, 0xff, 0x3f, //0x0000519f sarq $63, %rdi - 0x48, 0x01, 0xd0, //0x000051a3 addq %rdx, %rax - 0x48, 0x83, 0xd7, 0x00, //0x000051a6 adcq $0, %rdi - 0x89, 0xfa, //0x000051aa movl %edi, %edx - 0x83, 0xe2, 0x01, //0x000051ac andl $1, %edx - 0x48, 0xf7, 0xda, //0x000051af negq %rdx - 0x48, 0x31, 0xd7, //0x000051b2 xorq %rdx, %rdi - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000051b5 jne LBB17_13 - 0x48, 0x85, 0xd2, //0x000051bb testq %rdx, %rdx - 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000051be jns LBB17_8 - //0x000051c4 LBB17_13 - 0x48, 0xff, 0xc9, //0x000051c4 decq %rcx - 0x48, 0x89, 0x0e, //0x000051c7 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000051ca movq $-5, (%r8) - 0x5d, //0x000051d1 popq %rbp - 0xc3, //0x000051d2 retq - //0x000051d3 LBB17_17 - 0x40, 0x80, 0xff, 0x65, //0x000051d3 cmpb $101, %dil - 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x000051d7 je LBB17_3 - 0x40, 0x80, 0xff, 0x45, //0x000051dd cmpb $69, %dil - 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x000051e1 je LBB17_3 - 0x40, 0x80, 0xff, 0x2e, //0x000051e7 cmpb $46, %dil - 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000051eb je LBB17_3 - //0x000051f1 LBB17_20 - 0x48, 0x89, 0x0e, //0x000051f1 movq %rcx, (%rsi) - 0x49, 0x89, 0x40, 0x10, //0x000051f4 movq %rax, $16(%r8) - 0x5d, //0x000051f8 popq %rbp - 0xc3, //0x000051f9 retq - //0x000051fa LBB17_16 - 0x48, 0xff, 0xc1, //0x000051fa incq %rcx - 0x48, 0x89, 0x0e, //0x000051fd movq %rcx, (%rsi) - 0x5d, //0x00005200 popq %rbp - 0xc3, //0x00005201 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005202 .p2align 4, 0x00 - //0x00005210 LCPI18_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005210 .quad 1 - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005218 .quad 5 - //0x00005220 .p2align 4, 0x90 - //0x00005220 _skip_array - 0x55, //0x00005220 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005221 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005224 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005227 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000522a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000522d vmovaps $-37(%rip), %xmm0 /* LCPI18_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00005235 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005239 movq %rax, %rdi - 0x5d, //0x0000523c popq %rbp - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000523d jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005242 .p2align 4, 0x90 - //0x00005250 _fsm_exec - 0x55, //0x00005250 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005251 movq %rsp, %rbp - 0x41, 0x57, //0x00005254 pushq %r15 - 0x41, 0x56, //0x00005256 pushq %r14 - 0x41, 0x55, //0x00005258 pushq %r13 - 0x41, 0x54, //0x0000525a pushq %r12 - 0x53, //0x0000525c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000525d subq $40, %rsp - 0x48, 0x89, 0x4d, 0xb8, //0x00005261 movq %rcx, $-72(%rbp) - 0x48, 0x83, 0x3f, 0x00, //0x00005265 cmpq $0, (%rdi) - 0x0f, 0x84, 0x14, 0x04, 0x00, 0x00, //0x00005269 je LBB19_2 - 0x49, 0x89, 0xd0, //0x0000526f movq %rdx, %r8 - 0x49, 0x89, 0xfd, //0x00005272 movq %rdi, %r13 - 0x48, 0x89, 0x75, 0xc8, //0x00005275 movq %rsi, $-56(%rbp) - 0x48, 0x8d, 0x46, 0x08, //0x00005279 leaq $8(%rsi), %rax - 0x48, 0x89, 0x45, 0xc0, //0x0000527d movq %rax, $-64(%rbp) - 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00005281 movq $-1, %r12 - 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00005288 jmp LBB19_4 - //0x0000528d LBB19_3 - 0x48, 0x8d, 0x48, 0x03, //0x0000528d leaq $3(%rax), %rcx - 0x49, 0x89, 0x08, //0x00005291 movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x00005294 testq %rax, %rax - 0x0f, 0x8e, 0x56, 0x04, 0x00, 0x00, //0x00005297 jle LBB19_62 - 0x90, 0x90, 0x90, //0x0000529d .p2align 4, 0x90 - //0x000052a0 LBB19_39 - 0x49, 0x8b, 0x55, 0x00, //0x000052a0 movq (%r13), %rdx - 0x4d, 0x89, 0xe6, //0x000052a4 movq %r12, %r14 - 0x48, 0x85, 0xd2, //0x000052a7 testq %rdx, %rdx - 0x0f, 0x84, 0x22, 0x04, 0x00, 0x00, //0x000052aa je LBB19_65 - //0x000052b0 LBB19_4 - 0x48, 0x8b, 0x5d, 0xc8, //0x000052b0 movq $-56(%rbp), %rbx - 0x48, 0x8b, 0x3b, //0x000052b4 movq (%rbx), %rdi - 0x48, 0x8b, 0x73, 0x08, //0x000052b7 movq $8(%rbx), %rsi - 0x4d, 0x89, 0xc7, //0x000052bb movq %r8, %r15 - 0x4c, 0x89, 0xc2, //0x000052be movq %r8, %rdx - 0xe8, 0x5a, 0xef, 0xff, 0xff, //0x000052c1 callq _advance_ns - 0x84, 0xc0, //0x000052c6 testb %al, %al - 0x0f, 0x84, 0xb5, 0x03, 0x00, 0x00, //0x000052c8 je LBB19_2 - 0x49, 0x8b, 0x4d, 0x00, //0x000052ce movq (%r13), %rcx - 0x41, 0x8b, 0x7c, 0xcd, 0x00, //0x000052d2 movl (%r13,%rcx,8), %edi - 0x49, 0x83, 0xfc, 0xff, //0x000052d7 cmpq $-1, %r12 - 0x4d, 0x89, 0xf8, //0x000052db movq %r15, %r8 - 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x000052de jne LBB19_7 - 0x4d, 0x8b, 0x20, //0x000052e4 movq (%r8), %r12 - 0x49, 0xff, 0xcc, //0x000052e7 decq %r12 - //0x000052ea LBB19_7 - 0x44, 0x0f, 0xbe, 0xc8, //0x000052ea movsbl %al, %r9d - 0x48, 0x8d, 0x51, 0xff, //0x000052ee leaq $-1(%rcx), %rdx - 0xff, 0xcf, //0x000052f2 decl %edi - 0x83, 0xff, 0x05, //0x000052f4 cmpl $5, %edi - 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x000052f7 ja LBB19_12 - 0x48, 0x8d, 0x35, 0x08, 0x05, 0x00, 0x00, //0x000052fd leaq $1288(%rip), %rsi /* LJTI19_0+0(%rip) */ - 0x48, 0x63, 0x3c, 0xbe, //0x00005304 movslq (%rsi,%rdi,4), %rdi - 0x48, 0x01, 0xf7, //0x00005308 addq %rsi, %rdi - 0xff, 0xe7, //0x0000530b jmpq *%rdi - //0x0000530d LBB19_9 - 0x41, 0x83, 0xf9, 0x2c, //0x0000530d cmpl $44, %r9d - 0x0f, 0x84, 0x7b, 0x01, 0x00, 0x00, //0x00005311 je LBB19_31 - 0x41, 0x83, 0xf9, 0x5d, //0x00005317 cmpl $93, %r9d - 0x0f, 0x85, 0xaa, 0x03, 0x00, 0x00, //0x0000531b jne LBB19_64 - 0x49, 0x89, 0x55, 0x00, //0x00005321 movq %rdx, (%r13) - 0x4d, 0x89, 0xe6, //0x00005325 movq %r12, %r14 - 0x48, 0x85, 0xd2, //0x00005328 testq %rdx, %rdx - 0x0f, 0x85, 0x7f, 0xff, 0xff, 0xff, //0x0000532b jne LBB19_4 - 0xe9, 0x9c, 0x03, 0x00, 0x00, //0x00005331 jmp LBB19_65 - //0x00005336 LBB19_12 - 0x49, 0x89, 0x55, 0x00, //0x00005336 movq %rdx, (%r13) - 0x41, 0x83, 0xf9, 0x7b, //0x0000533a cmpl $123, %r9d - 0x0f, 0x86, 0xef, 0x00, 0x00, 0x00, //0x0000533e jbe LBB19_28 - 0xe9, 0x82, 0x03, 0x00, 0x00, //0x00005344 jmp LBB19_64 - //0x00005349 LBB19_13 - 0x41, 0x83, 0xf9, 0x2c, //0x00005349 cmpl $44, %r9d - 0x0f, 0x84, 0x62, 0x01, 0x00, 0x00, //0x0000534d je LBB19_33 - 0x41, 0x83, 0xf9, 0x7d, //0x00005353 cmpl $125, %r9d - 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00005357 jne LBB19_64 - 0x49, 0x89, 0x55, 0x00, //0x0000535d movq %rdx, (%r13) - 0x4d, 0x89, 0xe6, //0x00005361 movq %r12, %r14 - 0x48, 0x85, 0xd2, //0x00005364 testq %rdx, %rdx - 0x0f, 0x85, 0x43, 0xff, 0xff, 0xff, //0x00005367 jne LBB19_4 - 0xe9, 0x60, 0x03, 0x00, 0x00, //0x0000536d jmp LBB19_65 - //0x00005372 LBB19_16 - 0x3c, 0x22, //0x00005372 cmpb $34, %al - 0x0f, 0x85, 0x51, 0x03, 0x00, 0x00, //0x00005374 jne LBB19_64 - 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x04, 0x00, 0x00, 0x00, //0x0000537a movq $4, (%r13,%rcx,8) - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005383 movq $-1, $-48(%rbp) - 0x4d, 0x8b, 0x38, //0x0000538b movq (%r8), %r15 - 0x48, 0x89, 0xdf, //0x0000538e movq %rbx, %rdi - //0x00005391 LBB19_18 - 0x4c, 0x89, 0xfe, //0x00005391 movq %r15, %rsi - 0x48, 0x8d, 0x55, 0xd0, //0x00005394 leaq $-48(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb8, //0x00005398 movq $-72(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x0000539c movq %r8, %rbx - 0xe8, 0x5c, 0xf1, 0xff, 0xff, //0x0000539f callq _advance_string - 0x49, 0x89, 0xc6, //0x000053a4 movq %rax, %r14 - 0x48, 0x85, 0xc0, //0x000053a7 testq %rax, %rax - 0x0f, 0x88, 0xeb, 0x02, 0x00, 0x00, //0x000053aa js LBB19_55 - 0x4c, 0x89, 0x33, //0x000053b0 movq %r14, (%rbx) - 0x4d, 0x85, 0xff, //0x000053b3 testq %r15, %r15 - 0x49, 0x89, 0xd8, //0x000053b6 movq %rbx, %r8 - 0x0f, 0x8f, 0xe1, 0xfe, 0xff, 0xff, //0x000053b9 jg LBB19_39 - 0xe9, 0xef, 0x02, 0x00, 0x00, //0x000053bf jmp LBB19_56 - //0x000053c4 LBB19_20 - 0x3c, 0x3a, //0x000053c4 cmpb $58, %al - 0x0f, 0x85, 0xff, 0x02, 0x00, 0x00, //0x000053c6 jne LBB19_64 - 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053cc movq $0, (%r13,%rcx,8) - 0xe9, 0xc6, 0xfe, 0xff, 0xff, //0x000053d5 jmp LBB19_39 - //0x000053da LBB19_22 - 0x3c, 0x5d, //0x000053da cmpb $93, %al - 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x000053dc jne LBB19_27 - 0x49, 0x89, 0x55, 0x00, //0x000053e2 movq %rdx, (%r13) - 0x4d, 0x89, 0xe6, //0x000053e6 movq %r12, %r14 - 0x48, 0x85, 0xd2, //0x000053e9 testq %rdx, %rdx - 0x0f, 0x85, 0xbe, 0xfe, 0xff, 0xff, //0x000053ec jne LBB19_4 - 0xe9, 0xdb, 0x02, 0x00, 0x00, //0x000053f2 jmp LBB19_65 - //0x000053f7 LBB19_24 - 0x41, 0x83, 0xf9, 0x22, //0x000053f7 cmpl $34, %r9d - 0x0f, 0x84, 0xd7, 0x00, 0x00, 0x00, //0x000053fb je LBB19_35 - 0x41, 0x83, 0xf9, 0x7d, //0x00005401 cmpl $125, %r9d - 0x0f, 0x85, 0xc0, 0x02, 0x00, 0x00, //0x00005405 jne LBB19_64 - 0x49, 0x89, 0x55, 0x00, //0x0000540b movq %rdx, (%r13) - 0x4d, 0x89, 0xe6, //0x0000540f movq %r12, %r14 - 0x48, 0x85, 0xd2, //0x00005412 testq %rdx, %rdx - 0x0f, 0x85, 0x95, 0xfe, 0xff, 0xff, //0x00005415 jne LBB19_4 - 0xe9, 0xb2, 0x02, 0x00, 0x00, //0x0000541b jmp LBB19_65 - //0x00005420 LBB19_27 - 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005420 movq $1, (%r13,%rcx,8) - 0x41, 0x83, 0xf9, 0x7b, //0x00005429 cmpl $123, %r9d - 0x0f, 0x87, 0x98, 0x02, 0x00, 0x00, //0x0000542d ja LBB19_64 - //0x00005433 LBB19_28 - 0x44, 0x89, 0xc8, //0x00005433 movl %r9d, %eax - 0x48, 0x8d, 0x0d, 0xe7, 0x03, 0x00, 0x00, //0x00005436 leaq $999(%rip), %rcx /* LJTI19_1+0(%rip) */ - 0x48, 0x63, 0x04, 0x81, //0x0000543d movslq (%rcx,%rax,4), %rax - 0x48, 0x01, 0xc8, //0x00005441 addq %rcx, %rax - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005444 movq $-1, %r14 - 0xff, 0xe0, //0x0000544b jmpq *%rax - //0x0000544d LBB19_29 - 0x4c, 0x89, 0xc3, //0x0000544d movq %r8, %rbx - 0x4d, 0x8b, 0x38, //0x00005450 movq (%r8), %r15 - 0x4d, 0x8d, 0x77, 0xff, //0x00005453 leaq $-1(%r15), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00005457 movq $-56(%rbp), %rax - 0x48, 0x8b, 0x38, //0x0000545b movq (%rax), %rdi - 0x4c, 0x01, 0xf7, //0x0000545e addq %r14, %rdi - 0x48, 0x8b, 0x70, 0x08, //0x00005461 movq $8(%rax), %rsi - 0x4c, 0x29, 0xf6, //0x00005465 subq %r14, %rsi - 0xe8, 0x23, 0x08, 0x00, 0x00, //0x00005468 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x0000546d testq %rax, %rax - 0x0f, 0x88, 0x48, 0x02, 0x00, 0x00, //0x00005470 js LBB19_57 - 0x48, 0x8b, 0x0b, //0x00005476 movq (%rbx), %rcx - 0x48, 0x8d, 0x44, 0x08, 0xff, //0x00005479 leaq $-1(%rax,%rcx), %rax - 0x48, 0x89, 0x03, //0x0000547e movq %rax, (%rbx) - 0x4d, 0x85, 0xff, //0x00005481 testq %r15, %r15 - 0x49, 0x89, 0xd8, //0x00005484 movq %rbx, %r8 - 0x0f, 0x8f, 0x13, 0xfe, 0xff, 0xff, //0x00005487 jg LBB19_39 - 0xe9, 0x40, 0x02, 0x00, 0x00, //0x0000548d jmp LBB19_65 - //0x00005492 LBB19_31 - 0x48, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00005492 cmpq $4095, %rcx - 0x0f, 0x8f, 0xf0, 0x01, 0x00, 0x00, //0x00005499 jg LBB19_58 - 0x48, 0x8d, 0x41, 0x01, //0x0000549f leaq $1(%rcx), %rax - 0x49, 0x89, 0x45, 0x00, //0x000054a3 movq %rax, (%r13) - 0x49, 0xc7, 0x44, 0xcd, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000054a7 movq $0, $8(%r13,%rcx,8) - 0xe9, 0xeb, 0xfd, 0xff, 0xff, //0x000054b0 jmp LBB19_39 - //0x000054b5 LBB19_33 - 0x48, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x000054b5 cmpq $4095, %rcx - 0x0f, 0x8f, 0xcd, 0x01, 0x00, 0x00, //0x000054bc jg LBB19_58 - 0x48, 0x8d, 0x41, 0x01, //0x000054c2 leaq $1(%rcx), %rax - 0x49, 0x89, 0x45, 0x00, //0x000054c6 movq %rax, (%r13) - 0x49, 0xc7, 0x44, 0xcd, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000054ca movq $3, $8(%r13,%rcx,8) - 0xe9, 0xc8, 0xfd, 0xff, 0xff, //0x000054d3 jmp LBB19_39 - //0x000054d8 LBB19_35 - 0x49, 0xc7, 0x44, 0xcd, 0x00, 0x02, 0x00, 0x00, 0x00, //0x000054d8 movq $2, (%r13,%rcx,8) - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000054e1 movq $-1, $-48(%rbp) - 0x4d, 0x8b, 0x38, //0x000054e9 movq (%r8), %r15 - 0x48, 0x89, 0xdf, //0x000054ec movq %rbx, %rdi - 0x4c, 0x89, 0xfe, //0x000054ef movq %r15, %rsi - 0x48, 0x8d, 0x55, 0xd0, //0x000054f2 leaq $-48(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb8, //0x000054f6 movq $-72(%rbp), %rcx - 0x4c, 0x89, 0xc3, //0x000054fa movq %r8, %rbx - 0xe8, 0xfe, 0xef, 0xff, 0xff, //0x000054fd callq _advance_string - 0x49, 0x89, 0xc6, //0x00005502 movq %rax, %r14 - 0x48, 0x85, 0xc0, //0x00005505 testq %rax, %rax - 0x0f, 0x88, 0x8d, 0x01, 0x00, 0x00, //0x00005508 js LBB19_55 - 0x4c, 0x89, 0x33, //0x0000550e movq %r14, (%rbx) - 0x4d, 0x85, 0xff, //0x00005511 testq %r15, %r15 - 0x0f, 0x8e, 0x99, 0x01, 0x00, 0x00, //0x00005514 jle LBB19_56 - 0x49, 0x8b, 0x45, 0x00, //0x0000551a movq (%r13), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000551e cmpq $4095, %rax - 0x0f, 0x8f, 0x65, 0x01, 0x00, 0x00, //0x00005524 jg LBB19_58 - 0x49, 0x89, 0xd8, //0x0000552a movq %rbx, %r8 - 0x48, 0x8d, 0x48, 0x01, //0x0000552d leaq $1(%rax), %rcx - 0x49, 0x89, 0x4d, 0x00, //0x00005531 movq %rcx, (%r13) - 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00005535 movq $4, $8(%r13,%rax,8) - 0xe9, 0x5d, 0xfd, 0xff, 0xff, //0x0000553e jmp LBB19_39 - //0x00005543 LBB19_40 - 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005543 movq $-1, $-48(%rbp) - 0x4d, 0x8b, 0x38, //0x0000554b movq (%r8), %r15 - 0x48, 0x8b, 0x7d, 0xc8, //0x0000554e movq $-56(%rbp), %rdi - 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x00005552 jmp LBB19_18 - //0x00005557 LBB19_41 - 0x4d, 0x8b, 0x30, //0x00005557 movq (%r8), %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x0000555a movq $-56(%rbp), %rax - 0x48, 0x8b, 0x38, //0x0000555e movq (%rax), %rdi - 0x4c, 0x01, 0xf7, //0x00005561 addq %r14, %rdi - 0x48, 0x8b, 0x70, 0x08, //0x00005564 movq $8(%rax), %rsi - 0x4c, 0x29, 0xf6, //0x00005568 subq %r14, %rsi - 0xe8, 0x20, 0x07, 0x00, 0x00, //0x0000556b callq _do_skip_number - 0x4d, 0x89, 0xf8, //0x00005570 movq %r15, %r8 - 0x49, 0x8b, 0x0f, //0x00005573 movq (%r15), %rcx - 0x48, 0x85, 0xc0, //0x00005576 testq %rax, %rax - 0x0f, 0x88, 0x7f, 0x01, 0x00, 0x00, //0x00005579 js LBB19_63 - 0x48, 0x01, 0xc1, //0x0000557f addq %rax, %rcx - 0x49, 0x89, 0x08, //0x00005582 movq %rcx, (%r8) - 0x4d, 0x85, 0xf6, //0x00005585 testq %r14, %r14 - 0x0f, 0x8f, 0x12, 0xfd, 0xff, 0xff, //0x00005588 jg LBB19_39 - 0xe9, 0x79, 0x01, 0x00, 0x00, //0x0000558e jmp LBB19_68 - //0x00005593 LBB19_43 - 0x49, 0x8b, 0x45, 0x00, //0x00005593 movq (%r13), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005597 cmpq $4095, %rax - 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x0000559d jg LBB19_58 - 0x48, 0x8d, 0x48, 0x01, //0x000055a3 leaq $1(%rax), %rcx - 0x49, 0x89, 0x4d, 0x00, //0x000055a7 movq %rcx, (%r13) - 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000055ab movq $5, $8(%r13,%rax,8) - 0xe9, 0xe7, 0xfc, 0xff, 0xff, //0x000055b4 jmp LBB19_39 - //0x000055b9 LBB19_45 - 0x49, 0x8b, 0x00, //0x000055b9 movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x000055bc movq $-64(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x000055c0 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfc, //0x000055c3 leaq $-4(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x000055c7 cmpq %rdx, %rax - 0x0f, 0x87, 0x14, 0x01, 0x00, 0x00, //0x000055ca ja LBB19_61 - 0x48, 0x8b, 0x4d, 0xc8, //0x000055d0 movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x000055d4 movq (%rcx), %rcx - 0x8b, 0x14, 0x01, //0x000055d7 movl (%rcx,%rax), %edx - 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x000055da cmpl $1702063201, %edx - 0x0f, 0x85, 0xd3, 0x01, 0x00, 0x00, //0x000055e0 jne LBB19_78 - 0x48, 0x8d, 0x48, 0x04, //0x000055e6 leaq $4(%rax), %rcx - 0x49, 0x89, 0x08, //0x000055ea movq %rcx, (%r8) - 0x48, 0x85, 0xc0, //0x000055ed testq %rax, %rax - 0x0f, 0x8f, 0xaa, 0xfc, 0xff, 0xff, //0x000055f0 jg LBB19_39 - 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x000055f6 jmp LBB19_62 - //0x000055fb LBB19_48 - 0x49, 0x8b, 0x00, //0x000055fb movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x000055fe movq $-64(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005602 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00005605 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x00005609 cmpq %rdx, %rax - 0x0f, 0x87, 0xd2, 0x00, 0x00, 0x00, //0x0000560c ja LBB19_61 - 0x48, 0x8b, 0x4d, 0xc8, //0x00005612 movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005616 movq (%rcx), %rcx - 0x81, 0x7c, 0x01, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00005619 cmpl $1819047278, $-1(%rcx,%rax) - 0x0f, 0x84, 0x66, 0xfc, 0xff, 0xff, //0x00005621 je LBB19_3 - 0xe9, 0xe8, 0x00, 0x00, 0x00, //0x00005627 jmp LBB19_69 - //0x0000562c LBB19_50 - 0x49, 0x8b, 0x00, //0x0000562c movq (%r8), %rax - 0x48, 0x8b, 0x4d, 0xc0, //0x0000562f movq $-64(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005633 movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfd, //0x00005636 leaq $-3(%rcx), %rdx - 0x48, 0x39, 0xd0, //0x0000563a cmpq %rdx, %rax - 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x0000563d ja LBB19_61 - 0x48, 0x8b, 0x4d, 0xc8, //0x00005643 movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00005647 movq (%rcx), %rcx - 0x81, 0x7c, 0x01, 0xff, 0x74, 0x72, 0x75, 0x65, //0x0000564a cmpl $1702195828, $-1(%rcx,%rax) - 0x0f, 0x84, 0x35, 0xfc, 0xff, 0xff, //0x00005652 je LBB19_3 - 0xe9, 0x06, 0x01, 0x00, 0x00, //0x00005658 jmp LBB19_73 - //0x0000565d LBB19_52 - 0x49, 0x8b, 0x45, 0x00, //0x0000565d movq (%r13), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005661 cmpq $4095, %rax - 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x00005667 jg LBB19_58 - 0x48, 0x8d, 0x48, 0x01, //0x0000566d leaq $1(%rax), %rcx - 0x49, 0x89, 0x4d, 0x00, //0x00005671 movq %rcx, (%r13) - 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00005675 movq $6, $8(%r13,%rax,8) - 0xe9, 0x1d, 0xfc, 0xff, 0xff, //0x0000567e jmp LBB19_39 - //0x00005683 LBB19_2 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005683 movq $-1, %r14 - 0xe9, 0x43, 0x00, 0x00, 0x00, //0x0000568a jmp LBB19_65 - //0x0000568f LBB19_58 - 0x49, 0xc7, 0xc6, 0xf9, 0xff, 0xff, 0xff, //0x0000568f movq $-7, %r14 - 0xe9, 0x37, 0x00, 0x00, 0x00, //0x00005696 jmp LBB19_65 - //0x0000569b LBB19_55 - 0x49, 0x83, 0xfe, 0xff, //0x0000569b cmpq $-1, %r14 - 0x48, 0x8d, 0x45, 0xd0, //0x0000569f leaq $-48(%rbp), %rax - 0x48, 0x0f, 0x44, 0x45, 0xc0, //0x000056a3 cmoveq $-64(%rbp), %rax - 0x48, 0x8b, 0x00, //0x000056a8 movq (%rax), %rax - 0x48, 0x89, 0x03, //0x000056ab movq %rax, (%rbx) - 0xe9, 0x1f, 0x00, 0x00, 0x00, //0x000056ae jmp LBB19_65 - //0x000056b3 LBB19_56 - 0x49, 0xff, 0xcf, //0x000056b3 decq %r15 - 0x4d, 0x89, 0xfe, //0x000056b6 movq %r15, %r14 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000056b9 jmp LBB19_65 - //0x000056be LBB19_57 - 0x48, 0x8b, 0x0b, //0x000056be movq (%rbx), %rcx - 0x48, 0x29, 0xc1, //0x000056c1 subq %rax, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x000056c4 addq $-2, %rcx - 0x48, 0x89, 0x0b, //0x000056c8 movq %rcx, (%rbx) - //0x000056cb LBB19_64 - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000056cb movq $-2, %r14 - //0x000056d2 LBB19_65 - 0x4c, 0x89, 0xf0, //0x000056d2 movq %r14, %rax - 0x48, 0x83, 0xc4, 0x28, //0x000056d5 addq $40, %rsp - 0x5b, //0x000056d9 popq %rbx - 0x41, 0x5c, //0x000056da popq %r12 - 0x41, 0x5d, //0x000056dc popq %r13 - 0x41, 0x5e, //0x000056de popq %r14 - 0x41, 0x5f, //0x000056e0 popq %r15 - 0x5d, //0x000056e2 popq %rbp - 0xc3, //0x000056e3 retq - //0x000056e4 LBB19_61 - 0x49, 0x89, 0x08, //0x000056e4 movq %rcx, (%r8) - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000056e7 movq $-1, %r14 - 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000056ee jmp LBB19_65 - //0x000056f3 LBB19_62 - 0x48, 0xff, 0xc8, //0x000056f3 decq %rax - 0x49, 0x89, 0xc6, //0x000056f6 movq %rax, %r14 - 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000056f9 jmp LBB19_65 - //0x000056fe LBB19_63 - 0x48, 0xf7, 0xd0, //0x000056fe notq %rax - 0x48, 0x01, 0xc1, //0x00005701 addq %rax, %rcx - 0x49, 0x89, 0x08, //0x00005704 movq %rcx, (%r8) - 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00005707 jmp LBB19_64 - //0x0000570c LBB19_68 - 0x49, 0xff, 0xce, //0x0000570c decq %r14 - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x0000570f jmp LBB19_65 - //0x00005714 LBB19_69 - 0x48, 0x8d, 0x50, 0xff, //0x00005714 leaq $-1(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005718 movq %rdx, (%r8) - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x0000571b movq $-2, %r14 - 0x80, 0x7c, 0x01, 0xff, 0x6e, //0x00005722 cmpb $110, $-1(%rcx,%rax) - 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x00005727 jne LBB19_65 - 0x49, 0x89, 0x00, //0x0000572d movq %rax, (%r8) - 0x80, 0x3c, 0x01, 0x75, //0x00005730 cmpb $117, (%rcx,%rax) - 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00005734 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x01, //0x0000573a leaq $1(%rax), %rdx - 0x49, 0x89, 0x10, //0x0000573e movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005741 cmpb $108, $1(%rcx,%rax) - 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00005746 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x02, //0x0000574c leaq $2(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005750 movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x00005753 cmpb $108, $2(%rcx,%rax) - 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00005758 jne LBB19_65 - 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000575e jmp LBB19_77 - //0x00005763 LBB19_73 - 0x48, 0x8d, 0x50, 0xff, //0x00005763 leaq $-1(%rax), %rdx - 0x49, 0x89, 0x10, //0x00005767 movq %rdx, (%r8) - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x0000576a movq $-2, %r14 - 0x80, 0x7c, 0x01, 0xff, 0x74, //0x00005771 cmpb $116, $-1(%rcx,%rax) - 0x0f, 0x85, 0x56, 0xff, 0xff, 0xff, //0x00005776 jne LBB19_65 - 0x49, 0x89, 0x00, //0x0000577c movq %rax, (%r8) - 0x80, 0x3c, 0x01, 0x72, //0x0000577f cmpb $114, (%rcx,%rax) - 0x0f, 0x85, 0x49, 0xff, 0xff, 0xff, //0x00005783 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x01, //0x00005789 leaq $1(%rax), %rdx - 0x49, 0x89, 0x10, //0x0000578d movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x01, 0x75, //0x00005790 cmpb $117, $1(%rcx,%rax) - 0x0f, 0x85, 0x37, 0xff, 0xff, 0xff, //0x00005795 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x02, //0x0000579b leaq $2(%rax), %rdx - 0x49, 0x89, 0x10, //0x0000579f movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x02, 0x65, //0x000057a2 cmpb $101, $2(%rcx,%rax) - 0x0f, 0x85, 0x25, 0xff, 0xff, 0xff, //0x000057a7 jne LBB19_65 - //0x000057ad LBB19_77 - 0x48, 0x83, 0xc0, 0x03, //0x000057ad addq $3, %rax - 0x49, 0x89, 0x00, //0x000057b1 movq %rax, (%r8) - 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000057b4 jmp LBB19_65 - //0x000057b9 LBB19_78 - 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000057b9 movq $-2, %r14 - 0x80, 0xfa, 0x61, //0x000057c0 cmpb $97, %dl - 0x0f, 0x85, 0x09, 0xff, 0xff, 0xff, //0x000057c3 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x01, //0x000057c9 leaq $1(%rax), %rdx - 0x49, 0x89, 0x10, //0x000057cd movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x000057d0 cmpb $108, $1(%rcx,%rax) - 0x0f, 0x85, 0xf7, 0xfe, 0xff, 0xff, //0x000057d5 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x02, //0x000057db leaq $2(%rax), %rdx - 0x49, 0x89, 0x10, //0x000057df movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x02, 0x73, //0x000057e2 cmpb $115, $2(%rcx,%rax) - 0x0f, 0x85, 0xe5, 0xfe, 0xff, 0xff, //0x000057e7 jne LBB19_65 - 0x48, 0x8d, 0x50, 0x03, //0x000057ed leaq $3(%rax), %rdx - 0x49, 0x89, 0x10, //0x000057f1 movq %rdx, (%r8) - 0x80, 0x7c, 0x01, 0x03, 0x65, //0x000057f4 cmpb $101, $3(%rcx,%rax) - 0x0f, 0x85, 0xd3, 0xfe, 0xff, 0xff, //0x000057f9 jne LBB19_65 - 0x48, 0x83, 0xc0, 0x04, //0x000057ff addq $4, %rax - 0x49, 0x89, 0x00, //0x00005803 movq %rax, (%r8) - 0xe9, 0xc7, 0xfe, 0xff, 0xff, //0x00005806 jmp LBB19_65 - 0x90, //0x0000580b .p2align 2, 0x90 - // // .set L19_0_set_9, LBB19_9-LJTI19_0 - // // .set L19_0_set_13, LBB19_13-LJTI19_0 - // // .set L19_0_set_16, LBB19_16-LJTI19_0 - // // .set L19_0_set_20, LBB19_20-LJTI19_0 - // // .set L19_0_set_22, LBB19_22-LJTI19_0 - // // .set L19_0_set_24, LBB19_24-LJTI19_0 - //0x0000580c LJTI19_0 - 0x01, 0xfb, 0xff, 0xff, //0x0000580c .long L19_0_set_9 - 0x3d, 0xfb, 0xff, 0xff, //0x00005810 .long L19_0_set_13 - 0x66, 0xfb, 0xff, 0xff, //0x00005814 .long L19_0_set_16 - 0xb8, 0xfb, 0xff, 0xff, //0x00005818 .long L19_0_set_20 - 0xce, 0xfb, 0xff, 0xff, //0x0000581c .long L19_0_set_22 - 0xeb, 0xfb, 0xff, 0xff, //0x00005820 .long L19_0_set_24 - // // .set L19_1_set_65, LBB19_65-LJTI19_1 - // // .set L19_1_set_64, LBB19_64-LJTI19_1 - // // .set L19_1_set_40, LBB19_40-LJTI19_1 - // // .set L19_1_set_41, LBB19_41-LJTI19_1 - // // .set L19_1_set_29, LBB19_29-LJTI19_1 - // // .set L19_1_set_43, LBB19_43-LJTI19_1 - // // .set L19_1_set_45, LBB19_45-LJTI19_1 - // // .set L19_1_set_48, LBB19_48-LJTI19_1 - // // .set L19_1_set_50, LBB19_50-LJTI19_1 - // // .set L19_1_set_52, LBB19_52-LJTI19_1 - //0x00005824 LJTI19_1 - 0xae, 0xfe, 0xff, 0xff, //0x00005824 .long L19_1_set_65 - 0xa7, 0xfe, 0xff, 0xff, //0x00005828 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000582c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005830 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005834 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005838 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000583c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005840 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005844 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005848 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000584c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005850 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005854 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005858 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000585c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005860 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005864 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005868 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000586c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005870 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005874 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005878 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000587c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005880 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005884 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005888 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000588c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005890 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005894 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005898 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000589c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058a0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058a4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058a8 .long L19_1_set_64 - 0x1f, 0xfd, 0xff, 0xff, //0x000058ac .long L19_1_set_40 - 0xa7, 0xfe, 0xff, 0xff, //0x000058b0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058b4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058b8 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058bc .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058c0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058c4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058c8 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058cc .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058d0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058d4 .long L19_1_set_64 - 0x33, 0xfd, 0xff, 0xff, //0x000058d8 .long L19_1_set_41 - 0xa7, 0xfe, 0xff, 0xff, //0x000058dc .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000058e0 .long L19_1_set_64 - 0x29, 0xfc, 0xff, 0xff, //0x000058e4 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x000058e8 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x000058ec .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x000058f0 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x000058f4 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x000058f8 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x000058fc .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x00005900 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x00005904 .long L19_1_set_29 - 0x29, 0xfc, 0xff, 0xff, //0x00005908 .long L19_1_set_29 - 0xa7, 0xfe, 0xff, 0xff, //0x0000590c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005910 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005914 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005918 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000591c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005920 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005924 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005928 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000592c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005930 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005934 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005938 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000593c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005940 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005944 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005948 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000594c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005950 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005954 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005958 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000595c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005960 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005964 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005968 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000596c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005970 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005974 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005978 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000597c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005980 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005984 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005988 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000598c .long L19_1_set_64 - 0x6f, 0xfd, 0xff, 0xff, //0x00005990 .long L19_1_set_43 - 0xa7, 0xfe, 0xff, 0xff, //0x00005994 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005998 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x0000599c .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059a0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059a4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059a8 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059ac .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059b0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059b4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059b8 .long L19_1_set_64 - 0x95, 0xfd, 0xff, 0xff, //0x000059bc .long L19_1_set_45 - 0xa7, 0xfe, 0xff, 0xff, //0x000059c0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059c4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059c8 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059cc .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059d0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059d4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059d8 .long L19_1_set_64 - 0xd7, 0xfd, 0xff, 0xff, //0x000059dc .long L19_1_set_48 - 0xa7, 0xfe, 0xff, 0xff, //0x000059e0 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059e4 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059e8 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059ec .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059f0 .long L19_1_set_64 - 0x08, 0xfe, 0xff, 0xff, //0x000059f4 .long L19_1_set_50 - 0xa7, 0xfe, 0xff, 0xff, //0x000059f8 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x000059fc .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005a00 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005a04 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005a08 .long L19_1_set_64 - 0xa7, 0xfe, 0xff, 0xff, //0x00005a0c .long L19_1_set_64 - 0x39, 0xfe, 0xff, 0xff, //0x00005a10 .long L19_1_set_52 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a14 .p2align 4, 0x00 - //0x00005a20 LCPI20_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a20 .quad 1 - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a28 .quad 6 - //0x00005a30 .p2align 4, 0x90 - //0x00005a30 _skip_object - 0x55, //0x00005a30 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005a31 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005a34 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005a37 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x00005a3a movq %rdi, %rsi - 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00005a3d vmovaps $-37(%rip), %xmm0 /* LCPI20_0+0(%rip) */ - 0xc5, 0xf8, 0x11, 0x00, //0x00005a45 vmovups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00005a49 movq %rax, %rdi - 0x5d, //0x00005a4c popq %rbp - 0xe9, 0xfe, 0xf7, 0xff, 0xff, //0x00005a4d jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a52 .p2align 4, 0x90 - //0x00005a60 _skip_string - 0x55, //0x00005a60 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005a61 movq %rsp, %rbp - 0x41, 0x57, //0x00005a64 pushq %r15 - 0x41, 0x56, //0x00005a66 pushq %r14 - 0x41, 0x54, //0x00005a68 pushq %r12 - 0x53, //0x00005a6a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00005a6b subq $16, %rsp - 0x48, 0x89, 0xd1, //0x00005a6f movq %rdx, %rcx - 0x49, 0x89, 0xf6, //0x00005a72 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00005a75 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005a78 movq $-1, $-40(%rbp) - 0x48, 0x8b, 0x1e, //0x00005a80 movq (%rsi), %rbx - 0x4c, 0x8d, 0x65, 0xd8, //0x00005a83 leaq $-40(%rbp), %r12 - 0x48, 0x89, 0xde, //0x00005a87 movq %rbx, %rsi - 0x4c, 0x89, 0xe2, //0x00005a8a movq %r12, %rdx - 0xe8, 0x6e, 0xea, 0xff, 0xff, //0x00005a8d callq _advance_string - 0x48, 0x85, 0xc0, //0x00005a92 testq %rax, %rax - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005a95 js LBB21_1 - 0x48, 0xff, 0xcb, //0x00005a9b decq %rbx - 0x48, 0x89, 0xc1, //0x00005a9e movq %rax, %rcx - 0x48, 0x89, 0xd8, //0x00005aa1 movq %rbx, %rax - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005aa4 jmp LBB21_3 - //0x00005aa9 LBB21_1 - 0x49, 0x83, 0xc7, 0x08, //0x00005aa9 addq $8, %r15 - 0x48, 0x83, 0xf8, 0xff, //0x00005aad cmpq $-1, %rax - 0x4d, 0x0f, 0x44, 0xe7, //0x00005ab1 cmoveq %r15, %r12 - 0x49, 0x8b, 0x0c, 0x24, //0x00005ab5 movq (%r12), %rcx - //0x00005ab9 LBB21_3 - 0x49, 0x89, 0x0e, //0x00005ab9 movq %rcx, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00005abc addq $16, %rsp - 0x5b, //0x00005ac0 popq %rbx - 0x41, 0x5c, //0x00005ac1 popq %r12 - 0x41, 0x5e, //0x00005ac3 popq %r14 - 0x41, 0x5f, //0x00005ac5 popq %r15 - 0x5d, //0x00005ac7 popq %rbp - 0xc3, //0x00005ac8 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ac9 .p2align 4, 0x90 - //0x00005ad0 _skip_negative - 0x55, //0x00005ad0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005ad1 movq %rsp, %rbp - 0x41, 0x56, //0x00005ad4 pushq %r14 - 0x53, //0x00005ad6 pushq %rbx - 0x49, 0x89, 0xf6, //0x00005ad7 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x00005ada movq (%rsi), %rbx - 0x48, 0x8b, 0x07, //0x00005add movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00005ae0 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x00005ae3 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x00005ae7 subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x00005aea movq %rax, %rdi - 0xe8, 0x9e, 0x01, 0x00, 0x00, //0x00005aed callq _do_skip_number - 0x49, 0x8b, 0x0e, //0x00005af2 movq (%r14), %rcx - 0x48, 0x85, 0xc0, //0x00005af5 testq %rax, %rax - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00005af8 js LBB22_1 - 0x48, 0x01, 0xc1, //0x00005afe addq %rax, %rcx - 0x49, 0x89, 0x0e, //0x00005b01 movq %rcx, (%r14) - 0x48, 0xff, 0xcb, //0x00005b04 decq %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005b07 jmp LBB22_3 - //0x00005b0c LBB22_1 - 0x48, 0xf7, 0xd0, //0x00005b0c notq %rax - 0x48, 0x01, 0xc1, //0x00005b0f addq %rax, %rcx - 0x49, 0x89, 0x0e, //0x00005b12 movq %rcx, (%r14) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00005b15 movq $-2, %rbx - //0x00005b1c LBB22_3 - 0x48, 0x89, 0xd8, //0x00005b1c movq %rbx, %rax - 0x5b, //0x00005b1f popq %rbx - 0x41, 0x5e, //0x00005b20 popq %r14 - 0x5d, //0x00005b22 popq %rbp - 0xc3, //0x00005b23 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b24 .p2align 5, 0x00 - //0x00005b40 LCPI23_0 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005b40 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005b50 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005b60 LCPI23_1 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005b60 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005b70 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005b80 LCPI23_2 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005b80 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005b90 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005ba0 LCPI23_3 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005ba0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005bb0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005bc0 LCPI23_4 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005bc0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005bd0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00005be0 LCPI23_5 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005be0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005bf0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005c00 LCPI23_6 - 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c00 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' - 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c10 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' - //0x00005c20 .p2align 4, 0x00 - //0x00005c20 LCPI23_7 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005c20 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005c30 LCPI23_8 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005c30 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005c40 LCPI23_9 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005c40 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005c50 LCPI23_10 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005c50 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005c60 LCPI23_11 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005c60 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00005c70 LCPI23_12 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005c70 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005c80 LCPI23_13 - 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005c80 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' - //0x00005c90 .p2align 4, 0x90 - //0x00005c90 _do_skip_number - 0x55, //0x00005c90 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005c91 movq %rsp, %rbp - 0x41, 0x57, //0x00005c94 pushq %r15 - 0x41, 0x56, //0x00005c96 pushq %r14 - 0x41, 0x55, //0x00005c98 pushq %r13 - 0x41, 0x54, //0x00005c9a pushq %r12 - 0x53, //0x00005c9c pushq %rbx - 0x48, 0x85, 0xf6, //0x00005c9d testq %rsi, %rsi - 0x0f, 0x84, 0xe4, 0x03, 0x00, 0x00, //0x00005ca0 je LBB23_53 - 0x80, 0x3f, 0x30, //0x00005ca6 cmpb $48, (%rdi) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005ca9 jne LBB23_5 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00005caf movl $1, %edx - 0x48, 0x83, 0xfe, 0x01, //0x00005cb4 cmpq $1, %rsi - 0x0f, 0x84, 0xc9, 0x04, 0x00, 0x00, //0x00005cb8 je LBB23_73 - 0x8a, 0x47, 0x01, //0x00005cbe movb $1(%rdi), %al - 0x04, 0xd2, //0x00005cc1 addb $-46, %al - 0x3c, 0x37, //0x00005cc3 cmpb $55, %al - 0x0f, 0x87, 0xbc, 0x04, 0x00, 0x00, //0x00005cc5 ja LBB23_73 - 0x0f, 0xb6, 0xc0, //0x00005ccb movzbl %al, %eax - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005cce movabsq $36028797027352577, %rcx - 0x48, 0x0f, 0xa3, 0xc1, //0x00005cd8 btq %rax, %rcx - 0x0f, 0x83, 0xa5, 0x04, 0x00, 0x00, //0x00005cdc jae LBB23_73 - //0x00005ce2 LBB23_5 - 0x48, 0x83, 0xfe, 0x20, //0x00005ce2 cmpq $32, %rsi - 0x0f, 0x82, 0xcc, 0x04, 0x00, 0x00, //0x00005ce6 jb LBB23_76 - 0x4c, 0x8d, 0x5e, 0xe0, //0x00005cec leaq $-32(%rsi), %r11 - 0x4c, 0x89, 0xd8, //0x00005cf0 movq %r11, %rax - 0x48, 0x83, 0xe0, 0xe0, //0x00005cf3 andq $-32, %rax - 0x4c, 0x8d, 0x54, 0x38, 0x20, //0x00005cf7 leaq $32(%rax,%rdi), %r10 - 0x41, 0x83, 0xe3, 0x1f, //0x00005cfc andl $31, %r11d - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005d00 movq $-1, %r9 - 0xc5, 0xfd, 0x6f, 0x05, 0x31, 0xfe, 0xff, 0xff, //0x00005d07 vmovdqa $-463(%rip), %ymm0 /* LCPI23_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x49, 0xfe, 0xff, 0xff, //0x00005d0f vmovdqa $-439(%rip), %ymm1 /* LCPI23_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x61, 0xfe, 0xff, 0xff, //0x00005d17 vmovdqa $-415(%rip), %ymm2 /* LCPI23_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x1d, 0x79, 0xfe, 0xff, 0xff, //0x00005d1f vmovdqa $-391(%rip), %ymm3 /* LCPI23_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x91, 0xfe, 0xff, 0xff, //0x00005d27 vmovdqa $-367(%rip), %ymm4 /* LCPI23_4+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0xa9, 0xfe, 0xff, 0xff, //0x00005d2f vmovdqa $-343(%rip), %ymm5 /* LCPI23_5+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xc1, 0xfe, 0xff, 0xff, //0x00005d37 vmovdqa $-319(%rip), %ymm6 /* LCPI23_6+0(%rip) */ - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005d3f movq $-1, %rax - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005d46 movq $-1, %r8 - 0x49, 0x89, 0xfe, //0x00005d4d movq %rdi, %r14 - //0x00005d50 .p2align 4, 0x90 - //0x00005d50 LBB23_7 - 0xc4, 0xc1, 0x7e, 0x6f, 0x3e, //0x00005d50 vmovdqu (%r14), %ymm7 - 0xc5, 0x45, 0x64, 0xc0, //0x00005d55 vpcmpgtb %ymm0, %ymm7, %ymm8 - 0xc5, 0x75, 0x64, 0xcf, //0x00005d59 vpcmpgtb %ymm7, %ymm1, %ymm9 - 0xc4, 0x41, 0x3d, 0xdb, 0xc1, //0x00005d5d vpand %ymm9, %ymm8, %ymm8 - 0xc5, 0x45, 0x74, 0xca, //0x00005d62 vpcmpeqb %ymm2, %ymm7, %ymm9 - 0xc5, 0x45, 0x74, 0xd3, //0x00005d66 vpcmpeqb %ymm3, %ymm7, %ymm10 - 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x00005d6a vpor %ymm9, %ymm10, %ymm9 - 0xc5, 0x45, 0xeb, 0xd4, //0x00005d6f vpor %ymm4, %ymm7, %ymm10 - 0xc5, 0x2d, 0x74, 0xd6, //0x00005d73 vpcmpeqb %ymm6, %ymm10, %ymm10 - 0xc5, 0xc5, 0x74, 0xfd, //0x00005d77 vpcmpeqb %ymm5, %ymm7, %ymm7 - 0xc5, 0xfd, 0xd7, 0xd7, //0x00005d7b vpmovmskb %ymm7, %edx - 0xc4, 0x41, 0x7d, 0xd7, 0xe2, //0x00005d7f vpmovmskb %ymm10, %r12d - 0xc4, 0x41, 0x7d, 0xd7, 0xf9, //0x00005d84 vpmovmskb %ymm9, %r15d - 0xc5, 0xad, 0xeb, 0xff, //0x00005d89 vpor %ymm7, %ymm10, %ymm7 - 0xc4, 0x41, 0x35, 0xeb, 0xc0, //0x00005d8d vpor %ymm8, %ymm9, %ymm8 - 0xc5, 0xbd, 0xeb, 0xff, //0x00005d92 vpor %ymm7, %ymm8, %ymm7 - 0xc5, 0xfd, 0xd7, 0xcf, //0x00005d96 vpmovmskb %ymm7, %ecx - 0x48, 0xf7, 0xd1, //0x00005d9a notq %rcx - 0x48, 0x0f, 0xbc, 0xc9, //0x00005d9d bsfq %rcx, %rcx - 0x83, 0xf9, 0x20, //0x00005da1 cmpl $32, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005da4 je LBB23_9 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005daa movl $-1, %ebx - 0xd3, 0xe3, //0x00005daf shll %cl, %ebx - 0xf7, 0xd3, //0x00005db1 notl %ebx - 0x21, 0xda, //0x00005db3 andl %ebx, %edx - 0x41, 0x21, 0xdc, //0x00005db5 andl %ebx, %r12d - 0x44, 0x21, 0xfb, //0x00005db8 andl %r15d, %ebx - 0x41, 0x89, 0xdf, //0x00005dbb movl %ebx, %r15d - //0x00005dbe LBB23_9 - 0x8d, 0x5a, 0xff, //0x00005dbe leal $-1(%rdx), %ebx - 0x21, 0xd3, //0x00005dc1 andl %edx, %ebx - 0x0f, 0x85, 0xa4, 0x03, 0x00, 0x00, //0x00005dc3 jne LBB23_70 - 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005dc9 leal $-1(%r12), %ebx - 0x44, 0x21, 0xe3, //0x00005dce andl %r12d, %ebx - 0x0f, 0x85, 0x96, 0x03, 0x00, 0x00, //0x00005dd1 jne LBB23_70 - 0x41, 0x8d, 0x5f, 0xff, //0x00005dd7 leal $-1(%r15), %ebx - 0x44, 0x21, 0xfb, //0x00005ddb andl %r15d, %ebx - 0x0f, 0x85, 0x89, 0x03, 0x00, 0x00, //0x00005dde jne LBB23_70 - 0x85, 0xd2, //0x00005de4 testl %edx, %edx - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005de6 je LBB23_15 - 0x4c, 0x89, 0xf3, //0x00005dec movq %r14, %rbx - 0x48, 0x29, 0xfb, //0x00005def subq %rdi, %rbx - 0x0f, 0xbc, 0xd2, //0x00005df2 bsfl %edx, %edx - 0x48, 0x01, 0xda, //0x00005df5 addq %rbx, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x00005df8 cmpq $-1, %r8 - 0x0f, 0x85, 0x82, 0x03, 0x00, 0x00, //0x00005dfc jne LBB23_72 - 0x49, 0x89, 0xd0, //0x00005e02 movq %rdx, %r8 - //0x00005e05 LBB23_15 - 0x45, 0x85, 0xe4, //0x00005e05 testl %r12d, %r12d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005e08 je LBB23_18 - 0x4c, 0x89, 0xf3, //0x00005e0e movq %r14, %rbx - 0x48, 0x29, 0xfb, //0x00005e11 subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd4, //0x00005e14 bsfl %r12d, %edx - 0x48, 0x01, 0xda, //0x00005e18 addq %rbx, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x00005e1b cmpq $-1, %rax - 0x0f, 0x85, 0x5f, 0x03, 0x00, 0x00, //0x00005e1f jne LBB23_72 - 0x48, 0x89, 0xd0, //0x00005e25 movq %rdx, %rax - //0x00005e28 LBB23_18 - 0x45, 0x85, 0xff, //0x00005e28 testl %r15d, %r15d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005e2b je LBB23_21 - 0x4c, 0x89, 0xf3, //0x00005e31 movq %r14, %rbx - 0x48, 0x29, 0xfb, //0x00005e34 subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd7, //0x00005e37 bsfl %r15d, %edx - 0x48, 0x01, 0xda, //0x00005e3b addq %rbx, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x00005e3e cmpq $-1, %r9 - 0x0f, 0x85, 0x3c, 0x03, 0x00, 0x00, //0x00005e42 jne LBB23_72 - 0x49, 0x89, 0xd1, //0x00005e48 movq %rdx, %r9 - //0x00005e4b LBB23_21 - 0x83, 0xf9, 0x20, //0x00005e4b cmpl $32, %ecx - 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x00005e4e jne LBB23_54 - 0x49, 0x83, 0xc6, 0x20, //0x00005e54 addq $32, %r14 - 0x48, 0x83, 0xc6, 0xe0, //0x00005e58 addq $-32, %rsi - 0x48, 0x83, 0xfe, 0x1f, //0x00005e5c cmpq $31, %rsi - 0x0f, 0x87, 0xea, 0xfe, 0xff, 0xff, //0x00005e60 ja LBB23_7 - 0xc5, 0xf8, 0x77, //0x00005e66 vzeroupper - 0x4c, 0x89, 0xde, //0x00005e69 movq %r11, %rsi - 0x48, 0x83, 0xfe, 0x10, //0x00005e6c cmpq $16, %rsi - 0x0f, 0x82, 0x72, 0x01, 0x00, 0x00, //0x00005e70 jb LBB23_42 - //0x00005e76 LBB23_24 - 0x4c, 0x8d, 0x76, 0xf0, //0x00005e76 leaq $-16(%rsi), %r14 - 0x4c, 0x89, 0xf1, //0x00005e7a movq %r14, %rcx - 0x48, 0x83, 0xe1, 0xf0, //0x00005e7d andq $-16, %rcx - 0x4e, 0x8d, 0x5c, 0x11, 0x10, //0x00005e81 leaq $16(%rcx,%r10), %r11 - 0x41, 0x83, 0xe6, 0x0f, //0x00005e86 andl $15, %r14d - 0xc5, 0x79, 0x6f, 0x05, 0x8e, 0xfd, 0xff, 0xff, //0x00005e8a vmovdqa $-626(%rip), %xmm8 /* LCPI23_7+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x0d, 0x96, 0xfd, 0xff, 0xff, //0x00005e92 vmovdqa $-618(%rip), %xmm9 /* LCPI23_8+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x15, 0x9e, 0xfd, 0xff, 0xff, //0x00005e9a vmovdqa $-610(%rip), %xmm10 /* LCPI23_9+0(%rip) */ - 0xc5, 0x79, 0x6f, 0x1d, 0xa6, 0xfd, 0xff, 0xff, //0x00005ea2 vmovdqa $-602(%rip), %xmm11 /* LCPI23_10+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x25, 0xae, 0xfd, 0xff, 0xff, //0x00005eaa vmovdqa $-594(%rip), %xmm4 /* LCPI23_11+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x2d, 0xb6, 0xfd, 0xff, 0xff, //0x00005eb2 vmovdqa $-586(%rip), %xmm5 /* LCPI23_12+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x35, 0xbe, 0xfd, 0xff, 0xff, //0x00005eba vmovdqa $-578(%rip), %xmm6 /* LCPI23_13+0(%rip) */ - 0x41, 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00005ec2 movl $4294967295, %r15d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ec8 .p2align 4, 0x90 - //0x00005ed0 LBB23_25 - 0xc4, 0xc1, 0x7a, 0x6f, 0x3a, //0x00005ed0 vmovdqu (%r10), %xmm7 - 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005ed5 vpcmpgtb %xmm8, %xmm7, %xmm0 - 0xc5, 0xb1, 0x64, 0xcf, //0x00005eda vpcmpgtb %xmm7, %xmm9, %xmm1 - 0xc5, 0xf9, 0xdb, 0xc1, //0x00005ede vpand %xmm1, %xmm0, %xmm0 - 0xc5, 0xa9, 0x74, 0xcf, //0x00005ee2 vpcmpeqb %xmm7, %xmm10, %xmm1 - 0xc5, 0xa1, 0x74, 0xd7, //0x00005ee6 vpcmpeqb %xmm7, %xmm11, %xmm2 - 0xc5, 0xe9, 0xeb, 0xc9, //0x00005eea vpor %xmm1, %xmm2, %xmm1 - 0xc5, 0xc1, 0xeb, 0xd4, //0x00005eee vpor %xmm4, %xmm7, %xmm2 - 0xc5, 0xe9, 0x74, 0xd6, //0x00005ef2 vpcmpeqb %xmm6, %xmm2, %xmm2 - 0xc5, 0xc1, 0x74, 0xfd, //0x00005ef6 vpcmpeqb %xmm5, %xmm7, %xmm7 - 0xc5, 0xe9, 0xeb, 0xdf, //0x00005efa vpor %xmm7, %xmm2, %xmm3 - 0xc5, 0xf1, 0xeb, 0xc0, //0x00005efe vpor %xmm0, %xmm1, %xmm0 - 0xc5, 0xe1, 0xeb, 0xc0, //0x00005f02 vpor %xmm0, %xmm3, %xmm0 - 0xc5, 0xf9, 0xd7, 0xd7, //0x00005f06 vpmovmskb %xmm7, %edx - 0xc5, 0x79, 0xd7, 0xea, //0x00005f0a vpmovmskb %xmm2, %r13d - 0xc5, 0x79, 0xd7, 0xe1, //0x00005f0e vpmovmskb %xmm1, %r12d - 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f12 vpmovmskb %xmm0, %ecx - 0x4c, 0x31, 0xf9, //0x00005f16 xorq %r15, %rcx - 0x48, 0x0f, 0xbc, 0xc9, //0x00005f19 bsfq %rcx, %rcx - 0x83, 0xf9, 0x10, //0x00005f1d cmpl $16, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005f20 je LBB23_27 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005f26 movl $-1, %ebx - 0xd3, 0xe3, //0x00005f2b shll %cl, %ebx - 0xf7, 0xd3, //0x00005f2d notl %ebx - 0x21, 0xda, //0x00005f2f andl %ebx, %edx - 0x41, 0x21, 0xdd, //0x00005f31 andl %ebx, %r13d - 0x44, 0x21, 0xe3, //0x00005f34 andl %r12d, %ebx - 0x41, 0x89, 0xdc, //0x00005f37 movl %ebx, %r12d - //0x00005f3a LBB23_27 - 0x8d, 0x5a, 0xff, //0x00005f3a leal $-1(%rdx), %ebx - 0x21, 0xd3, //0x00005f3d andl %edx, %ebx - 0x0f, 0x85, 0x36, 0x02, 0x00, 0x00, //0x00005f3f jne LBB23_71 - 0x41, 0x8d, 0x5d, 0xff, //0x00005f45 leal $-1(%r13), %ebx - 0x44, 0x21, 0xeb, //0x00005f49 andl %r13d, %ebx - 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x00005f4c jne LBB23_71 - 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x00005f52 leal $-1(%r12), %ebx - 0x44, 0x21, 0xe3, //0x00005f57 andl %r12d, %ebx - 0x0f, 0x85, 0x1b, 0x02, 0x00, 0x00, //0x00005f5a jne LBB23_71 - 0x85, 0xd2, //0x00005f60 testl %edx, %edx - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00005f62 je LBB23_33 - 0x4c, 0x89, 0xd3, //0x00005f68 movq %r10, %rbx - 0x48, 0x29, 0xfb, //0x00005f6b subq %rdi, %rbx - 0x0f, 0xbc, 0xd2, //0x00005f6e bsfl %edx, %edx - 0x48, 0x01, 0xda, //0x00005f71 addq %rbx, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x00005f74 cmpq $-1, %r8 - 0x0f, 0x85, 0x06, 0x02, 0x00, 0x00, //0x00005f78 jne LBB23_72 - 0x49, 0x89, 0xd0, //0x00005f7e movq %rdx, %r8 - //0x00005f81 LBB23_33 - 0x45, 0x85, 0xed, //0x00005f81 testl %r13d, %r13d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005f84 je LBB23_36 - 0x4c, 0x89, 0xd3, //0x00005f8a movq %r10, %rbx - 0x48, 0x29, 0xfb, //0x00005f8d subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd5, //0x00005f90 bsfl %r13d, %edx - 0x48, 0x01, 0xda, //0x00005f94 addq %rbx, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x00005f97 cmpq $-1, %rax - 0x0f, 0x85, 0xe3, 0x01, 0x00, 0x00, //0x00005f9b jne LBB23_72 - 0x48, 0x89, 0xd0, //0x00005fa1 movq %rdx, %rax - //0x00005fa4 LBB23_36 - 0x45, 0x85, 0xe4, //0x00005fa4 testl %r12d, %r12d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00005fa7 je LBB23_39 - 0x4c, 0x89, 0xd3, //0x00005fad movq %r10, %rbx - 0x48, 0x29, 0xfb, //0x00005fb0 subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd4, //0x00005fb3 bsfl %r12d, %edx - 0x48, 0x01, 0xda, //0x00005fb7 addq %rbx, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x00005fba cmpq $-1, %r9 - 0x0f, 0x85, 0xc0, 0x01, 0x00, 0x00, //0x00005fbe jne LBB23_72 - 0x49, 0x89, 0xd1, //0x00005fc4 movq %rdx, %r9 - //0x00005fc7 LBB23_39 - 0x83, 0xf9, 0x10, //0x00005fc7 cmpl $16, %ecx - 0x0f, 0x85, 0xe4, 0x00, 0x00, 0x00, //0x00005fca jne LBB23_55 - 0x49, 0x83, 0xc2, 0x10, //0x00005fd0 addq $16, %r10 - 0x48, 0x83, 0xc6, 0xf0, //0x00005fd4 addq $-16, %rsi - 0x48, 0x83, 0xfe, 0x0f, //0x00005fd8 cmpq $15, %rsi - 0x0f, 0x87, 0xee, 0xfe, 0xff, 0xff, //0x00005fdc ja LBB23_25 - 0x4c, 0x89, 0xf6, //0x00005fe2 movq %r14, %rsi - 0x4d, 0x89, 0xda, //0x00005fe5 movq %r11, %r10 - //0x00005fe8 LBB23_42 - 0x48, 0x85, 0xf6, //0x00005fe8 testq %rsi, %rsi - 0x0f, 0x84, 0xc6, 0x00, 0x00, 0x00, //0x00005feb je LBB23_56 - 0x4d, 0x8d, 0x1c, 0x32, //0x00005ff1 leaq (%r10,%rsi), %r11 - 0x48, 0x8d, 0x1d, 0xe4, 0x01, 0x00, 0x00, //0x00005ff5 leaq $484(%rip), %rbx /* LJTI23_0+0(%rip) */ - 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00005ffc jmp LBB23_45 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006001 .p2align 4, 0x90 - //0x00006010 LBB23_44 - 0x49, 0x89, 0xca, //0x00006010 movq %rcx, %r10 - 0x48, 0xff, 0xce, //0x00006013 decq %rsi - 0x0f, 0x84, 0x7c, 0x01, 0x00, 0x00, //0x00006016 je LBB23_75 - //0x0000601c LBB23_45 - 0x41, 0x0f, 0xbe, 0x12, //0x0000601c movsbl (%r10), %edx - 0x83, 0xc2, 0xd5, //0x00006020 addl $-43, %edx - 0x83, 0xfa, 0x3a, //0x00006023 cmpl $58, %edx - 0x0f, 0x87, 0x8b, 0x00, 0x00, 0x00, //0x00006026 ja LBB23_56 - 0x49, 0x8d, 0x4a, 0x01, //0x0000602c leaq $1(%r10), %rcx - 0x48, 0x63, 0x14, 0x93, //0x00006030 movslq (%rbx,%rdx,4), %rdx - 0x48, 0x01, 0xda, //0x00006034 addq %rbx, %rdx - 0xff, 0xe2, //0x00006037 jmpq *%rdx - //0x00006039 LBB23_47 - 0x48, 0x89, 0xca, //0x00006039 movq %rcx, %rdx - 0x48, 0x29, 0xfa, //0x0000603c subq %rdi, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x0000603f cmpq $-1, %r9 - 0x0f, 0x85, 0x67, 0x01, 0x00, 0x00, //0x00006043 jne LBB23_79 - 0x48, 0xff, 0xca, //0x00006049 decq %rdx - 0x49, 0x89, 0xd1, //0x0000604c movq %rdx, %r9 - 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000604f jmp LBB23_44 - //0x00006054 LBB23_49 - 0x48, 0x89, 0xca, //0x00006054 movq %rcx, %rdx - 0x48, 0x29, 0xfa, //0x00006057 subq %rdi, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x0000605a cmpq $-1, %rax - 0x0f, 0x85, 0x4c, 0x01, 0x00, 0x00, //0x0000605e jne LBB23_79 - 0x48, 0xff, 0xca, //0x00006064 decq %rdx - 0x48, 0x89, 0xd0, //0x00006067 movq %rdx, %rax - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000606a jmp LBB23_44 - //0x0000606f LBB23_51 - 0x48, 0x89, 0xca, //0x0000606f movq %rcx, %rdx - 0x48, 0x29, 0xfa, //0x00006072 subq %rdi, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x00006075 cmpq $-1, %r8 - 0x0f, 0x85, 0x31, 0x01, 0x00, 0x00, //0x00006079 jne LBB23_79 - 0x48, 0xff, 0xca, //0x0000607f decq %rdx - 0x49, 0x89, 0xd0, //0x00006082 movq %rdx, %r8 - 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00006085 jmp LBB23_44 - //0x0000608a LBB23_53 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000608a movq $-1, %rax - 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x00006091 jmp LBB23_74 - //0x00006096 LBB23_54 - 0x49, 0x01, 0xce, //0x00006096 addq %rcx, %r14 - 0xc5, 0xf8, 0x77, //0x00006099 vzeroupper - 0x4d, 0x89, 0xf2, //0x0000609c movq %r14, %r10 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000609f movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x000060a6 testq %rax, %rax - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000060a9 jne LBB23_57 - 0xe9, 0xd3, 0x00, 0x00, 0x00, //0x000060af jmp LBB23_73 - //0x000060b4 LBB23_55 - 0x49, 0x01, 0xca, //0x000060b4 addq %rcx, %r10 - //0x000060b7 LBB23_56 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000060b7 movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x000060be testq %rax, %rax - 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, //0x000060c1 je LBB23_73 - //0x000060c7 LBB23_57 - 0x4d, 0x85, 0xc9, //0x000060c7 testq %r9, %r9 - 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000060ca je LBB23_73 - 0x4d, 0x85, 0xc0, //0x000060d0 testq %r8, %r8 - 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x000060d3 je LBB23_73 - 0x49, 0x29, 0xfa, //0x000060d9 subq %rdi, %r10 - 0x49, 0x8d, 0x4a, 0xff, //0x000060dc leaq $-1(%r10), %rcx - 0x48, 0x39, 0xc8, //0x000060e0 cmpq %rcx, %rax - 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000060e3 je LBB23_65 - 0x49, 0x39, 0xc8, //0x000060e9 cmpq %rcx, %r8 - 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000060ec je LBB23_65 - 0x49, 0x39, 0xc9, //0x000060f2 cmpq %rcx, %r9 - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000060f5 je LBB23_65 - 0x4d, 0x85, 0xc9, //0x000060fb testq %r9, %r9 - 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x000060fe jle LBB23_66 - 0x49, 0x8d, 0x49, 0xff, //0x00006104 leaq $-1(%r9), %rcx - 0x48, 0x39, 0xc8, //0x00006108 cmpq %rcx, %rax - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000610b je LBB23_66 - 0x49, 0xf7, 0xd1, //0x00006111 notq %r9 - 0x4c, 0x89, 0xca, //0x00006114 movq %r9, %rdx - 0x4c, 0x89, 0xc8, //0x00006117 movq %r9, %rax - 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x0000611a jmp LBB23_74 - //0x0000611f LBB23_65 - 0x49, 0xf7, 0xda, //0x0000611f negq %r10 - 0x4c, 0x89, 0xd2, //0x00006122 movq %r10, %rdx - 0x4c, 0x89, 0xd0, //0x00006125 movq %r10, %rax - 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x00006128 jmp LBB23_74 - //0x0000612d LBB23_66 - 0x4c, 0x89, 0xc1, //0x0000612d movq %r8, %rcx - 0x48, 0x09, 0xc1, //0x00006130 orq %rax, %rcx - 0x49, 0x39, 0xc0, //0x00006133 cmpq %rax, %r8 - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00006136 jl LBB23_69 - 0x48, 0x85, 0xc9, //0x0000613c testq %rcx, %rcx - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x0000613f js LBB23_69 - 0x49, 0xf7, 0xd0, //0x00006145 notq %r8 - 0x4c, 0x89, 0xc2, //0x00006148 movq %r8, %rdx - 0x4c, 0x89, 0xc0, //0x0000614b movq %r8, %rax - 0xe9, 0x37, 0x00, 0x00, 0x00, //0x0000614e jmp LBB23_74 - //0x00006153 LBB23_69 - 0x48, 0x85, 0xc9, //0x00006153 testq %rcx, %rcx - 0x48, 0x8d, 0x48, 0xff, //0x00006156 leaq $-1(%rax), %rcx - 0x48, 0xf7, 0xd0, //0x0000615a notq %rax - 0x49, 0x0f, 0x48, 0xc2, //0x0000615d cmovsq %r10, %rax - 0x49, 0x39, 0xc8, //0x00006161 cmpq %rcx, %r8 - 0x49, 0x0f, 0x45, 0xc2, //0x00006164 cmovneq %r10, %rax - 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00006168 jmp LBB23_74 - //0x0000616d LBB23_70 - 0x49, 0x29, 0xfe, //0x0000616d subq %rdi, %r14 - 0x0f, 0xbc, 0xd3, //0x00006170 bsfl %ebx, %edx - 0x4c, 0x01, 0xf2, //0x00006173 addq %r14, %rdx - 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00006176 jmp LBB23_72 - //0x0000617b LBB23_71 - 0x49, 0x29, 0xfa, //0x0000617b subq %rdi, %r10 - 0x0f, 0xbc, 0xd3, //0x0000617e bsfl %ebx, %edx - 0x4c, 0x01, 0xd2, //0x00006181 addq %r10, %rdx - //0x00006184 LBB23_72 - 0x48, 0xf7, 0xd2, //0x00006184 notq %rdx - //0x00006187 LBB23_73 - 0x48, 0x89, 0xd0, //0x00006187 movq %rdx, %rax - //0x0000618a LBB23_74 - 0x5b, //0x0000618a popq %rbx - 0x41, 0x5c, //0x0000618b popq %r12 - 0x41, 0x5d, //0x0000618d popq %r13 - 0x41, 0x5e, //0x0000618f popq %r14 - 0x41, 0x5f, //0x00006191 popq %r15 - 0x5d, //0x00006193 popq %rbp - 0xc5, 0xf8, 0x77, //0x00006194 vzeroupper - 0xc3, //0x00006197 retq - //0x00006198 LBB23_75 - 0x4d, 0x89, 0xda, //0x00006198 movq %r11, %r10 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000619b movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x000061a2 testq %rax, %rax - 0x0f, 0x85, 0x1c, 0xff, 0xff, 0xff, //0x000061a5 jne LBB23_57 - 0xe9, 0xd7, 0xff, 0xff, 0xff, //0x000061ab jmp LBB23_73 - //0x000061b0 LBB23_79 - 0x48, 0xf7, 0xda, //0x000061b0 negq %rdx - 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000061b3 jmp LBB23_73 - //0x000061b8 LBB23_76 - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000061b8 movq $-1, %r9 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061bf movq $-1, %rax - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000061c6 movq $-1, %r8 - 0x49, 0x89, 0xfa, //0x000061cd movq %rdi, %r10 - 0x48, 0x83, 0xfe, 0x10, //0x000061d0 cmpq $16, %rsi - 0x0f, 0x83, 0x9c, 0xfc, 0xff, 0xff, //0x000061d4 jae LBB23_24 - 0xe9, 0x09, 0xfe, 0xff, 0xff, //0x000061da jmp LBB23_42 - 0x90, //0x000061df .p2align 2, 0x90 - // // .set L23_0_set_47, LBB23_47-LJTI23_0 - // // .set L23_0_set_56, LBB23_56-LJTI23_0 - // // .set L23_0_set_51, LBB23_51-LJTI23_0 - // // .set L23_0_set_44, LBB23_44-LJTI23_0 - // // .set L23_0_set_49, LBB23_49-LJTI23_0 - //0x000061e0 LJTI23_0 - 0x59, 0xfe, 0xff, 0xff, //0x000061e0 .long L23_0_set_47 - 0xd7, 0xfe, 0xff, 0xff, //0x000061e4 .long L23_0_set_56 - 0x59, 0xfe, 0xff, 0xff, //0x000061e8 .long L23_0_set_47 - 0x8f, 0xfe, 0xff, 0xff, //0x000061ec .long L23_0_set_51 - 0xd7, 0xfe, 0xff, 0xff, //0x000061f0 .long L23_0_set_56 - 0x30, 0xfe, 0xff, 0xff, //0x000061f4 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x000061f8 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x000061fc .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x00006200 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x00006204 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x00006208 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x0000620c .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x00006210 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x00006214 .long L23_0_set_44 - 0x30, 0xfe, 0xff, 0xff, //0x00006218 .long L23_0_set_44 - 0xd7, 0xfe, 0xff, 0xff, //0x0000621c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006220 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006224 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006228 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000622c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006230 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006234 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006238 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000623c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006240 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006244 .long L23_0_set_56 - 0x74, 0xfe, 0xff, 0xff, //0x00006248 .long L23_0_set_49 - 0xd7, 0xfe, 0xff, 0xff, //0x0000624c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006250 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006254 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006258 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000625c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006260 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006264 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006268 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000626c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006270 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006274 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006278 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000627c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006280 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006284 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006288 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000628c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006290 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006294 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x00006298 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x0000629c .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062a0 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062a4 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062a8 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062ac .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062b0 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062b4 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062b8 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062bc .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062c0 .long L23_0_set_56 - 0xd7, 0xfe, 0xff, 0xff, //0x000062c4 .long L23_0_set_56 - 0x74, 0xfe, 0xff, 0xff, //0x000062c8 .long L23_0_set_49 - 0x90, 0x90, 0x90, 0x90, //0x000062cc .p2align 4, 0x90 - //0x000062d0 _skip_positive - 0x55, //0x000062d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000062d1 movq %rsp, %rbp - 0x41, 0x56, //0x000062d4 pushq %r14 - 0x53, //0x000062d6 pushq %rbx - 0x49, 0x89, 0xf6, //0x000062d7 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x000062da movq (%rsi), %rbx - 0x48, 0xff, 0xcb, //0x000062dd decq %rbx - 0x48, 0x8b, 0x07, //0x000062e0 movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x000062e3 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x000062e6 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x000062ea subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x000062ed movq %rax, %rdi - 0xe8, 0x9b, 0xf9, 0xff, 0xff, //0x000062f0 callq _do_skip_number - 0x48, 0x85, 0xc0, //0x000062f5 testq %rax, %rax - 0x0f, 0x88, 0x0d, 0x00, 0x00, 0x00, //0x000062f8 js LBB24_1 - 0x49, 0x8b, 0x0e, //0x000062fe movq (%r14), %rcx - 0x48, 0x8d, 0x4c, 0x08, 0xff, //0x00006301 leaq $-1(%rax,%rcx), %rcx - 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006306 jmp LBB24_3 - //0x0000630b LBB24_1 - 0x49, 0x8b, 0x0e, //0x0000630b movq (%r14), %rcx - 0x48, 0x29, 0xc1, //0x0000630e subq %rax, %rcx - 0x48, 0x83, 0xc1, 0xfe, //0x00006311 addq $-2, %rcx - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00006315 movq $-2, %rbx - //0x0000631c LBB24_3 - 0x49, 0x89, 0x0e, //0x0000631c movq %rcx, (%r14) - 0x48, 0x89, 0xd8, //0x0000631f movq %rbx, %rax - 0x5b, //0x00006322 popq %rbx - 0x41, 0x5e, //0x00006323 popq %r14 - 0x5d, //0x00006325 popq %rbp - 0xc3, //0x00006326 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006327 .p2align 4, 0x90 - //0x00006330 _skip_number - 0x55, //0x00006330 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006331 movq %rsp, %rbp - 0x41, 0x57, //0x00006334 pushq %r15 - 0x41, 0x56, //0x00006336 pushq %r14 - 0x41, 0x55, //0x00006338 pushq %r13 - 0x41, 0x54, //0x0000633a pushq %r12 - 0x53, //0x0000633c pushq %rbx - 0x50, //0x0000633d pushq %rax - 0x49, 0x89, 0xf6, //0x0000633e movq %rsi, %r14 - 0x4c, 0x8b, 0x27, //0x00006341 movq (%rdi), %r12 - 0x48, 0x8b, 0x77, 0x08, //0x00006344 movq $8(%rdi), %rsi - 0x4d, 0x8b, 0x2e, //0x00006348 movq (%r14), %r13 - 0x4c, 0x29, 0xee, //0x0000634b subq %r13, %rsi - 0x31, 0xc0, //0x0000634e xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00006350 cmpb $45, (%r12,%r13) - 0x4b, 0x8d, 0x1c, 0x2c, //0x00006355 leaq (%r12,%r13), %rbx - 0x0f, 0x94, 0xc0, //0x00006359 sete %al - 0x48, 0x01, 0xc3, //0x0000635c addq %rax, %rbx - 0x48, 0x29, 0xc6, //0x0000635f subq %rax, %rsi - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00006362 je LBB25_1 - 0x8a, 0x03, //0x00006368 movb (%rbx), %al - 0x04, 0xd0, //0x0000636a addb $-48, %al - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000636c movq $-2, %r15 - 0x3c, 0x09, //0x00006373 cmpb $9, %al - 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00006375 ja LBB25_6 - 0x48, 0x89, 0xdf, //0x0000637b movq %rbx, %rdi - 0xe8, 0x0d, 0xf9, 0xff, 0xff, //0x0000637e callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00006383 testq %rax, %rax - 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00006386 js LBB25_4 - 0x48, 0x01, 0xc3, //0x0000638c addq %rax, %rbx - 0x4d, 0x89, 0xef, //0x0000638f movq %r13, %r15 - //0x00006392 LBB25_6 - 0x4c, 0x29, 0xe3, //0x00006392 subq %r12, %rbx - 0x49, 0x89, 0x1e, //0x00006395 movq %rbx, (%r14) - 0x4c, 0x89, 0xf8, //0x00006398 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x08, //0x0000639b addq $8, %rsp - 0x5b, //0x0000639f popq %rbx - 0x41, 0x5c, //0x000063a0 popq %r12 - 0x41, 0x5d, //0x000063a2 popq %r13 - 0x41, 0x5e, //0x000063a4 popq %r14 - 0x41, 0x5f, //0x000063a6 popq %r15 - 0x5d, //0x000063a8 popq %rbp - 0xc3, //0x000063a9 retq - //0x000063aa LBB25_1 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000063aa movq $-1, %r15 - 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x000063b1 jmp LBB25_6 - //0x000063b6 LBB25_4 - 0x48, 0xf7, 0xd0, //0x000063b6 notq %rax - 0x48, 0x01, 0xc3, //0x000063b9 addq %rax, %rbx - 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x000063bc jmp LBB25_6 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000063c1 .p2align 4, 0x90 - //0x000063d0 _skip_one - 0x55, //0x000063d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000063d1 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x000063d4 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x000063d7 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x000063da movq %rdi, %rsi - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000063dd movl $1, %edi - 0xc4, 0xe1, 0xf9, 0x6e, 0xc7, //0x000063e2 vmovq %rdi, %xmm0 - 0xc5, 0xfa, 0x7f, 0x00, //0x000063e7 vmovdqu %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x000063eb movq %rax, %rdi - 0x5d, //0x000063ee popq %rbp - 0xe9, 0x5c, 0xee, 0xff, 0xff, //0x000063ef jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000063f4 .p2align 4, 0x90 - //0x00006400 _validate_one - 0x55, //0x00006400 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006401 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00006404 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00006407 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000640a movq %rdi, %rsi - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000640d movl $1, %ecx - 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00006412 vmovq %rcx, %xmm0 - 0xc5, 0xfa, 0x7f, 0x00, //0x00006417 vmovdqu %xmm0, (%rax) - 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000641b movl $32, %ecx - 0x48, 0x89, 0xc7, //0x00006420 movq %rax, %rdi - 0x5d, //0x00006423 popq %rbp - 0xe9, 0x27, 0xee, 0xff, 0xff, //0x00006424 jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006429 .p2align 5, 0x00 - //0x00006440 LCPI28_0 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006440 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006450 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x00006460 LCPI28_1 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006460 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006470 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00006480 LCPI28_2 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006480 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006490 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x000064a0 LCPI28_6 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000064a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000064b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000064c0 LCPI28_7 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000064c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000064d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000064e0 LCPI28_8 - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000064e0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000064f0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - //0x00006500 LCPI28_9 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006500 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006510 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00006520 LCPI28_10 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006520 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006530 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x00006540 .p2align 4, 0x00 - //0x00006540 LCPI28_3 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006540 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x00006550 LCPI28_4 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00006550 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00006560 LCPI28_5 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006560 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x00006570 .p2align 4, 0x90 - //0x00006570 _skip_one_fast - 0x55, //0x00006570 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006571 movq %rsp, %rbp - 0x41, 0x57, //0x00006574 pushq %r15 - 0x41, 0x56, //0x00006576 pushq %r14 - 0x41, 0x55, //0x00006578 pushq %r13 - 0x41, 0x54, //0x0000657a pushq %r12 - 0x53, //0x0000657c pushq %rbx - 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000657d subq $128, %rsp - 0x49, 0x89, 0xf6, //0x00006584 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00006587 movq %rdi, %r15 - 0x48, 0x8b, 0x3f, //0x0000658a movq (%rdi), %rdi - 0x49, 0x8b, 0x77, 0x08, //0x0000658d movq $8(%r15), %rsi - 0x4c, 0x89, 0xf2, //0x00006591 movq %r14, %rdx - 0xe8, 0x87, 0xdc, 0xff, 0xff, //0x00006594 callq _advance_ns - 0x4d, 0x8b, 0x0e, //0x00006599 movq (%r14), %r9 - 0x4d, 0x8d, 0x41, 0xff, //0x0000659c leaq $-1(%r9), %r8 - 0x0f, 0xbe, 0xc8, //0x000065a0 movsbl %al, %ecx - 0x83, 0xf9, 0x7b, //0x000065a3 cmpl $123, %ecx - 0x0f, 0x87, 0x87, 0x01, 0x00, 0x00, //0x000065a6 ja LBB28_26 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000065ac movq $-1, %rax - 0x48, 0x8d, 0x35, 0x32, 0x09, 0x00, 0x00, //0x000065b3 leaq $2354(%rip), %rsi /* LJTI28_0+0(%rip) */ - 0x48, 0x63, 0x0c, 0x8e, //0x000065ba movslq (%rsi,%rcx,4), %rcx - 0x48, 0x01, 0xf1, //0x000065be addq %rsi, %rcx - 0xff, 0xe1, //0x000065c1 jmpq *%rcx - //0x000065c3 LBB28_2 - 0x49, 0x8b, 0x07, //0x000065c3 movq (%r15), %rax - 0x49, 0x8b, 0x7f, 0x08, //0x000065c6 movq $8(%r15), %rdi - 0x48, 0x89, 0xfe, //0x000065ca movq %rdi, %rsi - 0x4c, 0x29, 0xce, //0x000065cd subq %r9, %rsi - 0x4a, 0x8d, 0x0c, 0x08, //0x000065d0 leaq (%rax,%r9), %rcx - 0x48, 0x83, 0xfe, 0x20, //0x000065d4 cmpq $32, %rsi - 0x0f, 0x82, 0x6a, 0x00, 0x00, 0x00, //0x000065d8 jb LBB28_7 - 0x4c, 0x29, 0xcf, //0x000065de subq %r9, %rdi - 0x48, 0x83, 0xc7, 0xe0, //0x000065e1 addq $-32, %rdi - 0x48, 0x89, 0xfa, //0x000065e5 movq %rdi, %rdx - 0x48, 0x83, 0xe2, 0xe0, //0x000065e8 andq $-32, %rdx - 0x4c, 0x01, 0xca, //0x000065ec addq %r9, %rdx - 0x48, 0x8d, 0x54, 0x10, 0x20, //0x000065ef leaq $32(%rax,%rdx), %rdx - 0x83, 0xe7, 0x1f, //0x000065f4 andl $31, %edi - 0xc5, 0xfd, 0x6f, 0x05, 0x41, 0xfe, 0xff, 0xff, //0x000065f7 vmovdqa $-447(%rip), %ymm0 /* LCPI28_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x59, 0xfe, 0xff, 0xff, //0x000065ff vmovdqa $-423(%rip), %ymm1 /* LCPI28_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x71, 0xfe, 0xff, 0xff, //0x00006607 vmovdqa $-399(%rip), %ymm2 /* LCPI28_2+0(%rip) */ - 0x90, //0x0000660f .p2align 4, 0x90 - //0x00006610 LBB28_4 - 0xc5, 0xfe, 0x6f, 0x19, //0x00006610 vmovdqu (%rcx), %ymm3 - 0xc5, 0xe5, 0x74, 0xe0, //0x00006614 vpcmpeqb %ymm0, %ymm3, %ymm4 - 0xc5, 0xe5, 0xeb, 0xd9, //0x00006618 vpor %ymm1, %ymm3, %ymm3 - 0xc5, 0xe5, 0x74, 0xda, //0x0000661c vpcmpeqb %ymm2, %ymm3, %ymm3 - 0xc5, 0xe5, 0xeb, 0xdc, //0x00006620 vpor %ymm4, %ymm3, %ymm3 - 0xc5, 0xfd, 0xd7, 0xdb, //0x00006624 vpmovmskb %ymm3, %ebx - 0x85, 0xdb, //0x00006628 testl %ebx, %ebx - 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000662a jne LBB28_20 - 0x48, 0x83, 0xc1, 0x20, //0x00006630 addq $32, %rcx - 0x48, 0x83, 0xc6, 0xe0, //0x00006634 addq $-32, %rsi - 0x48, 0x83, 0xfe, 0x1f, //0x00006638 cmpq $31, %rsi - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000663c ja LBB28_4 - 0x48, 0x89, 0xfe, //0x00006642 movq %rdi, %rsi - 0x48, 0x89, 0xd1, //0x00006645 movq %rdx, %rcx - //0x00006648 LBB28_7 - 0x48, 0x83, 0xfe, 0x10, //0x00006648 cmpq $16, %rsi - 0x0f, 0x82, 0x67, 0x00, 0x00, 0x00, //0x0000664c jb LBB28_12 - 0x48, 0x8d, 0x56, 0xf0, //0x00006652 leaq $-16(%rsi), %rdx - 0x48, 0x89, 0xd7, //0x00006656 movq %rdx, %rdi - 0x48, 0x83, 0xe7, 0xf0, //0x00006659 andq $-16, %rdi - 0x48, 0x8d, 0x7c, 0x0f, 0x10, //0x0000665d leaq $16(%rdi,%rcx), %rdi - 0x83, 0xe2, 0x0f, //0x00006662 andl $15, %edx - 0xc5, 0xf9, 0x6f, 0x05, 0xd3, 0xfe, 0xff, 0xff, //0x00006665 vmovdqa $-301(%rip), %xmm0 /* LCPI28_3+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xdb, 0xfe, 0xff, 0xff, //0x0000666d vmovdqa $-293(%rip), %xmm1 /* LCPI28_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xe3, 0xfe, 0xff, 0xff, //0x00006675 vmovdqa $-285(%rip), %xmm2 /* LCPI28_5+0(%rip) */ - 0x90, 0x90, 0x90, //0x0000667d .p2align 4, 0x90 - //0x00006680 LBB28_9 - 0xc5, 0xfa, 0x6f, 0x19, //0x00006680 vmovdqu (%rcx), %xmm3 - 0xc5, 0xe1, 0x74, 0xe0, //0x00006684 vpcmpeqb %xmm0, %xmm3, %xmm4 - 0xc5, 0xe1, 0xeb, 0xd9, //0x00006688 vpor %xmm1, %xmm3, %xmm3 - 0xc5, 0xe1, 0x74, 0xda, //0x0000668c vpcmpeqb %xmm2, %xmm3, %xmm3 - 0xc5, 0xe1, 0xeb, 0xdc, //0x00006690 vpor %xmm4, %xmm3, %xmm3 - 0xc5, 0xf9, 0xd7, 0xdb, //0x00006694 vpmovmskb %xmm3, %ebx - 0x66, 0x85, 0xdb, //0x00006698 testw %bx, %bx - 0x0f, 0x85, 0xa0, 0x07, 0x00, 0x00, //0x0000669b jne LBB28_92 - 0x48, 0x83, 0xc1, 0x10, //0x000066a1 addq $16, %rcx - 0x48, 0x83, 0xc6, 0xf0, //0x000066a5 addq $-16, %rsi - 0x48, 0x83, 0xfe, 0x0f, //0x000066a9 cmpq $15, %rsi - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000066ad ja LBB28_9 - 0x48, 0x89, 0xd6, //0x000066b3 movq %rdx, %rsi - 0x48, 0x89, 0xf9, //0x000066b6 movq %rdi, %rcx - //0x000066b9 LBB28_12 - 0x48, 0x85, 0xf6, //0x000066b9 testq %rsi, %rsi - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000066bc je LBB28_19 - 0x48, 0x8d, 0x14, 0x31, //0x000066c2 leaq (%rcx,%rsi), %rdx - //0x000066c6 LBB28_14 - 0x0f, 0xb6, 0x19, //0x000066c6 movzbl (%rcx), %ebx - 0x80, 0xfb, 0x2c, //0x000066c9 cmpb $44, %bl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000066cc je LBB28_19 - 0x80, 0xfb, 0x7d, //0x000066d2 cmpb $125, %bl - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000066d5 je LBB28_19 - 0x80, 0xfb, 0x5d, //0x000066db cmpb $93, %bl - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000066de je LBB28_19 - 0x48, 0xff, 0xc1, //0x000066e4 incq %rcx - 0x48, 0xff, 0xce, //0x000066e7 decq %rsi - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000066ea jne LBB28_14 - 0x48, 0x89, 0xd1, //0x000066f0 movq %rdx, %rcx - //0x000066f3 LBB28_19 - 0x48, 0x29, 0xc1, //0x000066f3 subq %rax, %rcx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000066f6 jmp LBB28_22 - //0x000066fb LBB28_20 - 0x48, 0x63, 0xd3, //0x000066fb movslq %ebx, %rdx - //0x000066fe LBB28_21 - 0x48, 0x0f, 0xbc, 0xd2, //0x000066fe bsfq %rdx, %rdx - 0x48, 0x29, 0xc1, //0x00006702 subq %rax, %rcx - 0x48, 0x01, 0xd1, //0x00006705 addq %rdx, %rcx - //0x00006708 LBB28_22 - 0x49, 0x89, 0x0e, //0x00006708 movq %rcx, (%r14) - //0x0000670b LBB28_23 - 0x4c, 0x89, 0xc0, //0x0000670b movq %r8, %rax - //0x0000670e LBB28_24 - 0x48, 0x8d, 0x65, 0xd8, //0x0000670e leaq $-40(%rbp), %rsp - 0x5b, //0x00006712 popq %rbx - 0x41, 0x5c, //0x00006713 popq %r12 - 0x41, 0x5d, //0x00006715 popq %r13 - 0x41, 0x5e, //0x00006717 popq %r14 - 0x41, 0x5f, //0x00006719 popq %r15 - 0x5d, //0x0000671b popq %rbp - 0xc5, 0xf8, 0x77, //0x0000671c vzeroupper - 0xc3, //0x0000671f retq - //0x00006720 LBB28_25 - 0x49, 0x83, 0xc1, 0x03, //0x00006720 addq $3, %r9 - 0x4d, 0x3b, 0x4f, 0x08, //0x00006724 cmpq $8(%r15), %r9 - 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00006728 ja LBB28_24 - 0xe9, 0xcf, 0x03, 0x00, 0x00, //0x0000672e jmp LBB28_62 - //0x00006733 LBB28_26 - 0x4d, 0x89, 0x06, //0x00006733 movq %r8, (%r14) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00006736 movq $-2, %rax - 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x0000673d jmp LBB28_24 - //0x00006742 LBB28_27 - 0x4d, 0x89, 0xc4, //0x00006742 movq %r8, %r12 - 0x49, 0x8b, 0x0f, //0x00006745 movq (%r15), %rcx - 0x4d, 0x8b, 0x5f, 0x08, //0x00006748 movq $8(%r15), %r11 - 0x48, 0x89, 0x4c, 0x24, 0x10, //0x0000674c movq %rcx, $16(%rsp) - 0x4e, 0x8d, 0x3c, 0x09, //0x00006751 leaq (%rcx,%r9), %r15 - 0x4d, 0x29, 0xcb, //0x00006755 subq %r9, %r11 - 0x49, 0x83, 0xfb, 0x20, //0x00006758 cmpq $32, %r11 - 0x0f, 0x8c, 0xf6, 0x06, 0x00, 0x00, //0x0000675c jl LBB28_36 - 0xbb, 0x20, 0x00, 0x00, 0x00, //0x00006762 movl $32, %ebx - 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00006767 movl $4294967295, %r9d - 0x31, 0xd2, //0x0000676d xorl %edx, %edx - 0xc5, 0xfd, 0x6f, 0x05, 0x29, 0xfd, 0xff, 0xff, //0x0000676f vmovdqa $-727(%rip), %ymm0 /* LCPI28_6+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x41, 0xfd, 0xff, 0xff, //0x00006777 vmovdqa $-703(%rip), %ymm1 /* LCPI28_7+0(%rip) */ - 0x45, 0x8d, 0x91, 0xab, 0xaa, 0xaa, 0xaa, //0x0000677f leal $-1431655765(%r9), %r10d - 0x31, 0xff, //0x00006786 xorl %edi, %edi - 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00006788 jmp LBB28_29 - 0x90, 0x90, 0x90, //0x0000678d .p2align 4, 0x90 - //0x00006790 LBB28_32 - 0x89, 0xfe, //0x00006790 movl %edi, %esi - 0x44, 0x31, 0xce, //0x00006792 xorl %r9d, %esi - 0x21, 0xce, //0x00006795 andl %ecx, %esi - 0x44, 0x8d, 0x04, 0x36, //0x00006797 leal (%rsi,%rsi), %r8d - 0x41, 0x09, 0xf8, //0x0000679b orl %edi, %r8d - 0x44, 0x89, 0xc1, //0x0000679e movl %r8d, %ecx - 0x44, 0x31, 0xd1, //0x000067a1 xorl %r10d, %ecx - 0x21, 0xf1, //0x000067a4 andl %esi, %ecx - 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x000067a6 andl $-1431655766, %ecx - 0x31, 0xff, //0x000067ac xorl %edi, %edi - 0x01, 0xf1, //0x000067ae addl %esi, %ecx - 0x40, 0x0f, 0x92, 0xc7, //0x000067b0 setb %dil - 0x01, 0xc9, //0x000067b4 addl %ecx, %ecx - 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x000067b6 xorl $1431655765, %ecx - 0x44, 0x21, 0xc1, //0x000067bc andl %r8d, %ecx - 0x44, 0x31, 0xc9, //0x000067bf xorl %r9d, %ecx - 0x41, 0x21, 0xcd, //0x000067c2 andl %ecx, %r13d - 0x45, 0x85, 0xed, //0x000067c5 testl %r13d, %r13d - 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x000067c8 jne LBB28_90 - //0x000067ce LBB28_33 - 0x48, 0x83, 0xc2, 0x20, //0x000067ce addq $32, %rdx - 0x49, 0x8d, 0x4c, 0x1b, 0xe0, //0x000067d2 leaq $-32(%r11,%rbx), %rcx - 0x48, 0x83, 0xc3, 0xe0, //0x000067d7 addq $-32, %rbx - 0x48, 0x83, 0xf9, 0x3f, //0x000067db cmpq $63, %rcx - 0x0f, 0x8e, 0x64, 0x06, 0x00, 0x00, //0x000067df jle LBB28_34 - //0x000067e5 LBB28_29 - 0xc4, 0xc1, 0x7e, 0x6f, 0x14, 0x17, //0x000067e5 vmovdqu (%r15,%rdx), %ymm2 - 0xc5, 0xed, 0x74, 0xd8, //0x000067eb vpcmpeqb %ymm0, %ymm2, %ymm3 - 0xc5, 0x7d, 0xd7, 0xeb, //0x000067ef vpmovmskb %ymm3, %r13d - 0xc5, 0xed, 0x74, 0xd1, //0x000067f3 vpcmpeqb %ymm1, %ymm2, %ymm2 - 0xc5, 0xfd, 0xd7, 0xca, //0x000067f7 vpmovmskb %ymm2, %ecx - 0x48, 0x85, 0xff, //0x000067fb testq %rdi, %rdi - 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x000067fe jne LBB28_32 - 0x85, 0xc9, //0x00006804 testl %ecx, %ecx - 0x0f, 0x85, 0x84, 0xff, 0xff, 0xff, //0x00006806 jne LBB28_32 - 0x31, 0xff, //0x0000680c xorl %edi, %edi - 0x45, 0x85, 0xed, //0x0000680e testl %r13d, %r13d - 0x0f, 0x84, 0xb7, 0xff, 0xff, 0xff, //0x00006811 je LBB28_33 - //0x00006817 LBB28_90 - 0x49, 0x0f, 0xbc, 0xc5, //0x00006817 bsfq %r13, %rax - 0x49, 0x01, 0xc7, //0x0000681b addq %rax, %r15 - 0x49, 0x01, 0xd7, //0x0000681e addq %rdx, %r15 - //0x00006821 LBB28_91 - 0x4c, 0x2b, 0x7c, 0x24, 0x10, //0x00006821 subq $16(%rsp), %r15 - 0x49, 0xff, 0xc7, //0x00006826 incq %r15 - 0x4d, 0x89, 0x3e, //0x00006829 movq %r15, (%r14) - 0x4c, 0x89, 0xe0, //0x0000682c movq %r12, %rax - 0xe9, 0xda, 0xfe, 0xff, 0xff, //0x0000682f jmp LBB28_24 - //0x00006834 LBB28_37 - 0x4d, 0x89, 0xc4, //0x00006834 movq %r8, %r12 - 0x49, 0x8b, 0x4f, 0x08, //0x00006837 movq $8(%r15), %rcx - 0x4c, 0x29, 0xc9, //0x0000683b subq %r9, %rcx - 0x4d, 0x03, 0x0f, //0x0000683e addq (%r15), %r9 - 0x31, 0xd2, //0x00006841 xorl %edx, %edx - 0xc5, 0xfd, 0x6f, 0x05, 0x55, 0xfc, 0xff, 0xff, //0x00006843 vmovdqa $-939(%rip), %ymm0 /* LCPI28_6+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x6d, 0xfc, 0xff, 0xff, //0x0000684b vmovdqa $-915(%rip), %ymm1 /* LCPI28_7+0(%rip) */ - 0xc5, 0xe9, 0x76, 0xd2, //0x00006853 vpcmpeqd %xmm2, %xmm2, %xmm2 - 0xc5, 0xfd, 0x6f, 0x1d, 0xa1, 0xfc, 0xff, 0xff, //0x00006857 vmovdqa $-863(%rip), %ymm3 /* LCPI28_9+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0xb9, 0xfc, 0xff, 0xff, //0x0000685f vmovdqa $-839(%rip), %ymm4 /* LCPI28_10+0(%rip) */ - 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006867 vxorps %xmm9, %xmm9, %xmm9 - 0x45, 0x31, 0xd2, //0x0000686c xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x0000686f xorl %r8d, %r8d - 0x31, 0xf6, //0x00006872 xorl %esi, %esi - 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006874 jmp LBB28_39 - //0x00006879 LBB28_38 - 0x49, 0xc1, 0xfd, 0x3f, //0x00006879 sarq $63, %r13 - 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x0000687d popcntq %rcx, %rcx - 0x49, 0x01, 0xc8, //0x00006882 addq %rcx, %r8 - 0x49, 0x83, 0xc1, 0x40, //0x00006885 addq $64, %r9 - 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006889 movq $16(%rsp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x0000688e addq $-64, %rcx - 0x4c, 0x89, 0xea, //0x00006892 movq %r13, %rdx - //0x00006895 LBB28_39 - 0x48, 0x83, 0xf9, 0x40, //0x00006895 cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006899 movq %rcx, $16(%rsp) - 0x0f, 0x8c, 0x28, 0x01, 0x00, 0x00, //0x0000689e jl LBB28_46 - //0x000068a4 LBB28_40 - 0xc4, 0xc1, 0x7e, 0x6f, 0x39, //0x000068a4 vmovdqu (%r9), %ymm7 - 0xc4, 0xc1, 0x7e, 0x6f, 0x71, 0x20, //0x000068a9 vmovdqu $32(%r9), %ymm6 - 0xc5, 0x45, 0x74, 0xc0, //0x000068af vpcmpeqb %ymm0, %ymm7, %ymm8 - 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x000068b3 vpmovmskb %ymm8, %r13d - 0xc5, 0x4d, 0x74, 0xc0, //0x000068b8 vpcmpeqb %ymm0, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x000068bc vpmovmskb %ymm8, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x000068c1 shlq $32, %rdi - 0x49, 0x09, 0xfd, //0x000068c5 orq %rdi, %r13 - 0xc5, 0x45, 0x74, 0xc1, //0x000068c8 vpcmpeqb %ymm1, %ymm7, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x000068cc vpmovmskb %ymm8, %edi - 0xc5, 0x4d, 0x74, 0xc1, //0x000068d1 vpcmpeqb %ymm1, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x000068d5 vpmovmskb %ymm8, %ebx - 0x48, 0xc1, 0xe3, 0x20, //0x000068da shlq $32, %rbx - 0x48, 0x09, 0xdf, //0x000068de orq %rbx, %rdi - 0x48, 0x89, 0xfb, //0x000068e1 movq %rdi, %rbx - 0x4c, 0x09, 0xd3, //0x000068e4 orq %r10, %rbx - 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x000068e7 je LBB28_42 - 0x4c, 0x89, 0xd3, //0x000068ed movq %r10, %rbx - 0x48, 0xf7, 0xd3, //0x000068f0 notq %rbx - 0x48, 0x21, 0xfb, //0x000068f3 andq %rdi, %rbx - 0x4c, 0x8d, 0x1c, 0x1b, //0x000068f6 leaq (%rbx,%rbx), %r11 - 0x4d, 0x09, 0xd3, //0x000068fa orq %r10, %r11 - 0x49, 0x89, 0xd2, //0x000068fd movq %rdx, %r10 - 0x4c, 0x89, 0xda, //0x00006900 movq %r11, %rdx - 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006903 movabsq $-6148914691236517206, %rcx - 0x48, 0x31, 0xca, //0x0000690d xorq %rcx, %rdx - 0x48, 0x21, 0xcf, //0x00006910 andq %rcx, %rdi - 0x48, 0x21, 0xd7, //0x00006913 andq %rdx, %rdi - 0x4c, 0x89, 0xd2, //0x00006916 movq %r10, %rdx - 0x45, 0x31, 0xd2, //0x00006919 xorl %r10d, %r10d - 0x48, 0x01, 0xdf, //0x0000691c addq %rbx, %rdi - 0x41, 0x0f, 0x92, 0xc2, //0x0000691f setb %r10b - 0x48, 0x01, 0xff, //0x00006923 addq %rdi, %rdi - 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006926 movabsq $6148914691236517205, %rcx - 0x48, 0x31, 0xcf, //0x00006930 xorq %rcx, %rdi - 0x4c, 0x21, 0xdf, //0x00006933 andq %r11, %rdi - 0x48, 0xf7, 0xd7, //0x00006936 notq %rdi - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006939 jmp LBB28_43 - //0x0000693e LBB28_42 - 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000693e movq $-1, %rdi - 0x45, 0x31, 0xd2, //0x00006945 xorl %r10d, %r10d - //0x00006948 LBB28_43 - 0x4c, 0x21, 0xef, //0x00006948 andq %r13, %rdi - 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x0000694b vmovq %rdi, %xmm5 - 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006950 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 - 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006956 vmovq %xmm5, %r13 - 0x49, 0x31, 0xd5, //0x0000695b xorq %rdx, %r13 - 0xc5, 0xc5, 0x74, 0xeb, //0x0000695e vpcmpeqb %ymm3, %ymm7, %ymm5 - 0xc5, 0xfd, 0xd7, 0xcd, //0x00006962 vpmovmskb %ymm5, %ecx - 0xc5, 0xcd, 0x74, 0xeb, //0x00006966 vpcmpeqb %ymm3, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xd5, //0x0000696a vpmovmskb %ymm5, %edx - 0x48, 0xc1, 0xe2, 0x20, //0x0000696e shlq $32, %rdx - 0x48, 0x09, 0xd1, //0x00006972 orq %rdx, %rcx - 0x4c, 0x89, 0xea, //0x00006975 movq %r13, %rdx - 0x48, 0xf7, 0xd2, //0x00006978 notq %rdx - 0x48, 0x21, 0xd1, //0x0000697b andq %rdx, %rcx - 0xc5, 0xc5, 0x74, 0xec, //0x0000697e vpcmpeqb %ymm4, %ymm7, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00006982 vpmovmskb %ymm5, %edi - 0xc5, 0xcd, 0x74, 0xec, //0x00006986 vpcmpeqb %ymm4, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xdd, //0x0000698a vpmovmskb %ymm5, %ebx - 0x48, 0xc1, 0xe3, 0x20, //0x0000698e shlq $32, %rbx - 0x48, 0x09, 0xdf, //0x00006992 orq %rbx, %rdi - 0x48, 0x21, 0xd7, //0x00006995 andq %rdx, %rdi - 0x0f, 0x84, 0xdb, 0xfe, 0xff, 0xff, //0x00006998 je LBB28_38 - 0x90, 0x90, //0x0000699e .p2align 4, 0x90 - //0x000069a0 LBB28_44 - 0x48, 0x8d, 0x5f, 0xff, //0x000069a0 leaq $-1(%rdi), %rbx - 0x48, 0x89, 0xda, //0x000069a4 movq %rbx, %rdx - 0x48, 0x21, 0xca, //0x000069a7 andq %rcx, %rdx - 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x000069aa popcntq %rdx, %rdx - 0x4c, 0x01, 0xc2, //0x000069af addq %r8, %rdx - 0x48, 0x39, 0xf2, //0x000069b2 cmpq %rsi, %rdx - 0x0f, 0x86, 0x19, 0x04, 0x00, 0x00, //0x000069b5 jbe LBB28_87 - 0x48, 0xff, 0xc6, //0x000069bb incq %rsi - 0x48, 0x21, 0xdf, //0x000069be andq %rbx, %rdi - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000069c1 jne LBB28_44 - 0xe9, 0xad, 0xfe, 0xff, 0xff, //0x000069c7 jmp LBB28_38 - //0x000069cc LBB28_46 - 0x48, 0x85, 0xc9, //0x000069cc testq %rcx, %rcx - 0x0f, 0x8e, 0x91, 0x04, 0x00, 0x00, //0x000069cf jle LBB28_93 - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x000069d5 vmovups %ymm9, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x000069db vmovups %ymm9, $32(%rsp) - 0x44, 0x89, 0xc9, //0x000069e1 movl %r9d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x000069e4 andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x000069ea cmpl $4033, %ecx - 0x0f, 0x82, 0xae, 0xfe, 0xff, 0xff, //0x000069f0 jb LBB28_40 - 0x48, 0x83, 0x7c, 0x24, 0x10, 0x20, //0x000069f6 cmpq $32, $16(%rsp) - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000069fc jb LBB28_50 - 0xc4, 0xc1, 0x7c, 0x10, 0x29, //0x00006a02 vmovups (%r9), %ymm5 - 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006a07 vmovups %ymm5, $32(%rsp) - 0x49, 0x83, 0xc1, 0x20, //0x00006a0d addq $32, %r9 - 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006a11 movq $16(%rsp), %rcx - 0x48, 0x8d, 0x59, 0xe0, //0x00006a16 leaq $-32(%rcx), %rbx - 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006a1a leaq $64(%rsp), %rdi - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006a1f jmp LBB28_51 - //0x00006a24 LBB28_50 - 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006a24 leaq $32(%rsp), %rdi - 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00006a29 movq $16(%rsp), %rbx - //0x00006a2e LBB28_51 - 0x48, 0x83, 0xfb, 0x10, //0x00006a2e cmpq $16, %rbx - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00006a32 jb LBB28_52 - 0xc4, 0xc1, 0x78, 0x10, 0x29, //0x00006a38 vmovups (%r9), %xmm5 - 0xc5, 0xf8, 0x11, 0x2f, //0x00006a3d vmovups %xmm5, (%rdi) - 0x49, 0x83, 0xc1, 0x10, //0x00006a41 addq $16, %r9 - 0x48, 0x83, 0xc7, 0x10, //0x00006a45 addq $16, %rdi - 0x48, 0x83, 0xc3, 0xf0, //0x00006a49 addq $-16, %rbx - 0x48, 0x83, 0xfb, 0x08, //0x00006a4d cmpq $8, %rbx - 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00006a51 jae LBB28_57 - //0x00006a57 LBB28_53 - 0x48, 0x83, 0xfb, 0x04, //0x00006a57 cmpq $4, %rbx - 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006a5b jl LBB28_54 - //0x00006a61 LBB28_58 - 0x41, 0x8b, 0x09, //0x00006a61 movl (%r9), %ecx - 0x89, 0x0f, //0x00006a64 movl %ecx, (%rdi) - 0x49, 0x83, 0xc1, 0x04, //0x00006a66 addq $4, %r9 - 0x48, 0x83, 0xc7, 0x04, //0x00006a6a addq $4, %rdi - 0x48, 0x83, 0xc3, 0xfc, //0x00006a6e addq $-4, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00006a72 cmpq $2, %rbx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006a76 jae LBB28_59 - //0x00006a7c LBB28_55 - 0x4c, 0x89, 0xc9, //0x00006a7c movq %r9, %rcx - 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006a7f leaq $32(%rsp), %r9 - 0x48, 0x85, 0xdb, //0x00006a84 testq %rbx, %rbx - 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006a87 jne LBB28_60 - 0xe9, 0x12, 0xfe, 0xff, 0xff, //0x00006a8d jmp LBB28_40 - //0x00006a92 LBB28_52 - 0x48, 0x83, 0xfb, 0x08, //0x00006a92 cmpq $8, %rbx - 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006a96 jb LBB28_53 - //0x00006a9c LBB28_57 - 0x49, 0x8b, 0x09, //0x00006a9c movq (%r9), %rcx - 0x48, 0x89, 0x0f, //0x00006a9f movq %rcx, (%rdi) - 0x49, 0x83, 0xc1, 0x08, //0x00006aa2 addq $8, %r9 - 0x48, 0x83, 0xc7, 0x08, //0x00006aa6 addq $8, %rdi - 0x48, 0x83, 0xc3, 0xf8, //0x00006aaa addq $-8, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00006aae cmpq $4, %rbx - 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00006ab2 jge LBB28_58 - //0x00006ab8 LBB28_54 - 0x48, 0x83, 0xfb, 0x02, //0x00006ab8 cmpq $2, %rbx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006abc jb LBB28_55 - //0x00006ac2 LBB28_59 - 0x41, 0x0f, 0xb7, 0x09, //0x00006ac2 movzwl (%r9), %ecx - 0x66, 0x89, 0x0f, //0x00006ac6 movw %cx, (%rdi) - 0x49, 0x83, 0xc1, 0x02, //0x00006ac9 addq $2, %r9 - 0x48, 0x83, 0xc7, 0x02, //0x00006acd addq $2, %rdi - 0x48, 0x83, 0xc3, 0xfe, //0x00006ad1 addq $-2, %rbx - 0x4c, 0x89, 0xc9, //0x00006ad5 movq %r9, %rcx - 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006ad8 leaq $32(%rsp), %r9 - 0x48, 0x85, 0xdb, //0x00006add testq %rbx, %rbx - 0x0f, 0x84, 0xbe, 0xfd, 0xff, 0xff, //0x00006ae0 je LBB28_40 - //0x00006ae6 LBB28_60 - 0x8a, 0x09, //0x00006ae6 movb (%rcx), %cl - 0x88, 0x0f, //0x00006ae8 movb %cl, (%rdi) - 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006aea leaq $32(%rsp), %r9 - 0xe9, 0xb0, 0xfd, 0xff, 0xff, //0x00006aef jmp LBB28_40 - //0x00006af4 LBB28_61 - 0x49, 0x83, 0xc1, 0x04, //0x00006af4 addq $4, %r9 - 0x4d, 0x3b, 0x4f, 0x08, //0x00006af8 cmpq $8(%r15), %r9 - 0x0f, 0x87, 0x0c, 0xfc, 0xff, 0xff, //0x00006afc ja LBB28_24 - //0x00006b02 LBB28_62 - 0x4d, 0x89, 0x0e, //0x00006b02 movq %r9, (%r14) - 0xe9, 0x01, 0xfc, 0xff, 0xff, //0x00006b05 jmp LBB28_23 - //0x00006b0a LBB28_63 - 0x4c, 0x89, 0x44, 0x24, 0x18, //0x00006b0a movq %r8, $24(%rsp) - 0x49, 0x8b, 0x4f, 0x08, //0x00006b0f movq $8(%r15), %rcx - 0x4c, 0x29, 0xc9, //0x00006b13 subq %r9, %rcx - 0x4d, 0x03, 0x0f, //0x00006b16 addq (%r15), %r9 - 0x45, 0x31, 0xe4, //0x00006b19 xorl %r12d, %r12d - 0xc5, 0xfd, 0x6f, 0x05, 0x7c, 0xf9, 0xff, 0xff, //0x00006b1c vmovdqa $-1668(%rip), %ymm0 /* LCPI28_6+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x94, 0xf9, 0xff, 0xff, //0x00006b24 vmovdqa $-1644(%rip), %ymm1 /* LCPI28_7+0(%rip) */ - 0xc5, 0xe9, 0x76, 0xd2, //0x00006b2c vpcmpeqd %xmm2, %xmm2, %xmm2 - 0xc5, 0xfd, 0x6f, 0x1d, 0xa8, 0xf9, 0xff, 0xff, //0x00006b30 vmovdqa $-1624(%rip), %ymm3 /* LCPI28_8+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x40, 0xf9, 0xff, 0xff, //0x00006b38 vmovdqa $-1728(%rip), %ymm4 /* LCPI28_2+0(%rip) */ - 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006b40 vxorps %xmm9, %xmm9, %xmm9 - 0x45, 0x31, 0xd2, //0x00006b45 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00006b48 xorl %r8d, %r8d - 0x31, 0xf6, //0x00006b4b xorl %esi, %esi - 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006b4d jmp LBB28_65 - //0x00006b52 LBB28_64 - 0x49, 0xc1, 0xfd, 0x3f, //0x00006b52 sarq $63, %r13 - 0xf3, 0x48, 0x0f, 0xb8, 0xc9, //0x00006b56 popcntq %rcx, %rcx - 0x49, 0x01, 0xc8, //0x00006b5b addq %rcx, %r8 - 0x49, 0x83, 0xc1, 0x40, //0x00006b5e addq $64, %r9 - 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006b62 movq $16(%rsp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00006b67 addq $-64, %rcx - 0x4d, 0x89, 0xec, //0x00006b6b movq %r13, %r12 - //0x00006b6e LBB28_65 - 0x48, 0x83, 0xf9, 0x40, //0x00006b6e cmpq $64, %rcx - 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006b72 movq %rcx, $16(%rsp) - 0x0f, 0x8c, 0x2f, 0x01, 0x00, 0x00, //0x00006b77 jl LBB28_72 - //0x00006b7d LBB28_66 - 0xc4, 0xc1, 0x7e, 0x6f, 0x39, //0x00006b7d vmovdqu (%r9), %ymm7 - 0xc4, 0xc1, 0x7e, 0x6f, 0x71, 0x20, //0x00006b82 vmovdqu $32(%r9), %ymm6 - 0xc5, 0x45, 0x74, 0xc0, //0x00006b88 vpcmpeqb %ymm0, %ymm7, %ymm8 - 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00006b8c vpmovmskb %ymm8, %r13d - 0xc5, 0x4d, 0x74, 0xc0, //0x00006b91 vpcmpeqb %ymm0, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006b95 vpmovmskb %ymm8, %edi - 0x48, 0xc1, 0xe7, 0x20, //0x00006b9a shlq $32, %rdi - 0x49, 0x09, 0xfd, //0x00006b9e orq %rdi, %r13 - 0xc5, 0x45, 0x74, 0xc1, //0x00006ba1 vpcmpeqb %ymm1, %ymm7, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006ba5 vpmovmskb %ymm8, %edi - 0xc5, 0x4d, 0x74, 0xc1, //0x00006baa vpcmpeqb %ymm1, %ymm6, %ymm8 - 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006bae vpmovmskb %ymm8, %ebx - 0x48, 0xc1, 0xe3, 0x20, //0x00006bb3 shlq $32, %rbx - 0x48, 0x09, 0xdf, //0x00006bb7 orq %rbx, %rdi - 0x48, 0x89, 0xfb, //0x00006bba movq %rdi, %rbx - 0x4c, 0x09, 0xd3, //0x00006bbd orq %r10, %rbx - 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00006bc0 je LBB28_68 - 0x4c, 0x89, 0xd3, //0x00006bc6 movq %r10, %rbx - 0x48, 0xf7, 0xd3, //0x00006bc9 notq %rbx - 0x48, 0x21, 0xfb, //0x00006bcc andq %rdi, %rbx - 0x4c, 0x8d, 0x1c, 0x1b, //0x00006bcf leaq (%rbx,%rbx), %r11 - 0x4d, 0x09, 0xd3, //0x00006bd3 orq %r10, %r11 - 0x4c, 0x89, 0xda, //0x00006bd6 movq %r11, %rdx - 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006bd9 movabsq $-6148914691236517206, %rcx - 0x48, 0x31, 0xca, //0x00006be3 xorq %rcx, %rdx - 0x48, 0x21, 0xcf, //0x00006be6 andq %rcx, %rdi - 0x48, 0x21, 0xd7, //0x00006be9 andq %rdx, %rdi - 0x45, 0x31, 0xd2, //0x00006bec xorl %r10d, %r10d - 0x48, 0x01, 0xdf, //0x00006bef addq %rbx, %rdi - 0x41, 0x0f, 0x92, 0xc2, //0x00006bf2 setb %r10b - 0x48, 0x01, 0xff, //0x00006bf6 addq %rdi, %rdi - 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006bf9 movabsq $6148914691236517205, %rcx - 0x48, 0x31, 0xcf, //0x00006c03 xorq %rcx, %rdi - 0x4c, 0x21, 0xdf, //0x00006c06 andq %r11, %rdi - 0x48, 0xf7, 0xd7, //0x00006c09 notq %rdi - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006c0c jmp LBB28_69 - //0x00006c11 LBB28_68 - 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00006c11 movq $-1, %rdi - 0x45, 0x31, 0xd2, //0x00006c18 xorl %r10d, %r10d - //0x00006c1b LBB28_69 - 0x4c, 0x21, 0xef, //0x00006c1b andq %r13, %rdi - 0xc4, 0xe1, 0xf9, 0x6e, 0xef, //0x00006c1e vmovq %rdi, %xmm5 - 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006c23 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 - 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006c29 vmovq %xmm5, %r13 - 0x4d, 0x31, 0xe5, //0x00006c2e xorq %r12, %r13 - 0xc5, 0xc5, 0x74, 0xeb, //0x00006c31 vpcmpeqb %ymm3, %ymm7, %ymm5 - 0xc5, 0xfd, 0xd7, 0xcd, //0x00006c35 vpmovmskb %ymm5, %ecx - 0xc5, 0xcd, 0x74, 0xeb, //0x00006c39 vpcmpeqb %ymm3, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xd5, //0x00006c3d vpmovmskb %ymm5, %edx - 0x48, 0xc1, 0xe2, 0x20, //0x00006c41 shlq $32, %rdx - 0x48, 0x09, 0xd1, //0x00006c45 orq %rdx, %rcx - 0x4c, 0x89, 0xea, //0x00006c48 movq %r13, %rdx - 0x48, 0xf7, 0xd2, //0x00006c4b notq %rdx - 0x48, 0x21, 0xd1, //0x00006c4e andq %rdx, %rcx - 0xc5, 0xc5, 0x74, 0xec, //0x00006c51 vpcmpeqb %ymm4, %ymm7, %ymm5 - 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c55 vpmovmskb %ymm5, %edi - 0xc5, 0xcd, 0x74, 0xec, //0x00006c59 vpcmpeqb %ymm4, %ymm6, %ymm5 - 0xc5, 0xfd, 0xd7, 0xdd, //0x00006c5d vpmovmskb %ymm5, %ebx - 0x48, 0xc1, 0xe3, 0x20, //0x00006c61 shlq $32, %rbx - 0x48, 0x09, 0xdf, //0x00006c65 orq %rbx, %rdi - 0x48, 0x21, 0xd7, //0x00006c68 andq %rdx, %rdi - 0x0f, 0x84, 0xe1, 0xfe, 0xff, 0xff, //0x00006c6b je LBB28_64 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c71 .p2align 4, 0x90 - //0x00006c80 LBB28_70 - 0x48, 0x8d, 0x5f, 0xff, //0x00006c80 leaq $-1(%rdi), %rbx - 0x48, 0x89, 0xda, //0x00006c84 movq %rbx, %rdx - 0x48, 0x21, 0xca, //0x00006c87 andq %rcx, %rdx - 0xf3, 0x48, 0x0f, 0xb8, 0xd2, //0x00006c8a popcntq %rdx, %rdx - 0x4c, 0x01, 0xc2, //0x00006c8f addq %r8, %rdx - 0x48, 0x39, 0xf2, //0x00006c92 cmpq %rsi, %rdx - 0x0f, 0x86, 0x6b, 0x01, 0x00, 0x00, //0x00006c95 jbe LBB28_88 - 0x48, 0xff, 0xc6, //0x00006c9b incq %rsi - 0x48, 0x21, 0xdf, //0x00006c9e andq %rbx, %rdi - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00006ca1 jne LBB28_70 - 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x00006ca7 jmp LBB28_64 - //0x00006cac LBB28_72 - 0x48, 0x85, 0xc9, //0x00006cac testq %rcx, %rcx - 0x0f, 0x8e, 0xb1, 0x01, 0x00, 0x00, //0x00006caf jle LBB28_93 - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006cb5 vmovups %ymm9, $64(%rsp) - 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006cbb vmovups %ymm9, $32(%rsp) - 0x44, 0x89, 0xc9, //0x00006cc1 movl %r9d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006cc4 andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006cca cmpl $4033, %ecx - 0x0f, 0x82, 0xa7, 0xfe, 0xff, 0xff, //0x00006cd0 jb LBB28_66 - 0x48, 0x83, 0x7c, 0x24, 0x10, 0x20, //0x00006cd6 cmpq $32, $16(%rsp) - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00006cdc jb LBB28_76 - 0xc4, 0xc1, 0x7c, 0x10, 0x29, //0x00006ce2 vmovups (%r9), %ymm5 - 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006ce7 vmovups %ymm5, $32(%rsp) - 0x49, 0x83, 0xc1, 0x20, //0x00006ced addq $32, %r9 - 0x48, 0x8b, 0x4c, 0x24, 0x10, //0x00006cf1 movq $16(%rsp), %rcx - 0x48, 0x8d, 0x59, 0xe0, //0x00006cf6 leaq $-32(%rcx), %rbx - 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006cfa leaq $64(%rsp), %rdi - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006cff jmp LBB28_77 - //0x00006d04 LBB28_76 - 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006d04 leaq $32(%rsp), %rdi - 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00006d09 movq $16(%rsp), %rbx - //0x00006d0e LBB28_77 - 0x48, 0x83, 0xfb, 0x10, //0x00006d0e cmpq $16, %rbx - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x00006d12 jb LBB28_78 - 0xc4, 0xc1, 0x78, 0x10, 0x29, //0x00006d18 vmovups (%r9), %xmm5 - 0xc5, 0xf8, 0x11, 0x2f, //0x00006d1d vmovups %xmm5, (%rdi) - 0x49, 0x83, 0xc1, 0x10, //0x00006d21 addq $16, %r9 - 0x48, 0x83, 0xc7, 0x10, //0x00006d25 addq $16, %rdi - 0x48, 0x83, 0xc3, 0xf0, //0x00006d29 addq $-16, %rbx - 0x48, 0x83, 0xfb, 0x08, //0x00006d2d cmpq $8, %rbx - 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00006d31 jae LBB28_83 - //0x00006d37 LBB28_79 - 0x48, 0x83, 0xfb, 0x04, //0x00006d37 cmpq $4, %rbx - 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006d3b jl LBB28_80 - //0x00006d41 LBB28_84 - 0x41, 0x8b, 0x09, //0x00006d41 movl (%r9), %ecx - 0x89, 0x0f, //0x00006d44 movl %ecx, (%rdi) - 0x49, 0x83, 0xc1, 0x04, //0x00006d46 addq $4, %r9 - 0x48, 0x83, 0xc7, 0x04, //0x00006d4a addq $4, %rdi - 0x48, 0x83, 0xc3, 0xfc, //0x00006d4e addq $-4, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00006d52 cmpq $2, %rbx - 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006d56 jae LBB28_85 - //0x00006d5c LBB28_81 - 0x4c, 0x89, 0xc9, //0x00006d5c movq %r9, %rcx - 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006d5f leaq $32(%rsp), %r9 - 0x48, 0x85, 0xdb, //0x00006d64 testq %rbx, %rbx - 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006d67 jne LBB28_86 - 0xe9, 0x0b, 0xfe, 0xff, 0xff, //0x00006d6d jmp LBB28_66 - //0x00006d72 LBB28_78 - 0x48, 0x83, 0xfb, 0x08, //0x00006d72 cmpq $8, %rbx - 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006d76 jb LBB28_79 - //0x00006d7c LBB28_83 - 0x49, 0x8b, 0x09, //0x00006d7c movq (%r9), %rcx - 0x48, 0x89, 0x0f, //0x00006d7f movq %rcx, (%rdi) - 0x49, 0x83, 0xc1, 0x08, //0x00006d82 addq $8, %r9 - 0x48, 0x83, 0xc7, 0x08, //0x00006d86 addq $8, %rdi - 0x48, 0x83, 0xc3, 0xf8, //0x00006d8a addq $-8, %rbx - 0x48, 0x83, 0xfb, 0x04, //0x00006d8e cmpq $4, %rbx - 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x00006d92 jge LBB28_84 - //0x00006d98 LBB28_80 - 0x48, 0x83, 0xfb, 0x02, //0x00006d98 cmpq $2, %rbx - 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006d9c jb LBB28_81 - //0x00006da2 LBB28_85 - 0x41, 0x0f, 0xb7, 0x09, //0x00006da2 movzwl (%r9), %ecx - 0x66, 0x89, 0x0f, //0x00006da6 movw %cx, (%rdi) - 0x49, 0x83, 0xc1, 0x02, //0x00006da9 addq $2, %r9 - 0x48, 0x83, 0xc7, 0x02, //0x00006dad addq $2, %rdi - 0x48, 0x83, 0xc3, 0xfe, //0x00006db1 addq $-2, %rbx - 0x4c, 0x89, 0xc9, //0x00006db5 movq %r9, %rcx - 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006db8 leaq $32(%rsp), %r9 - 0x48, 0x85, 0xdb, //0x00006dbd testq %rbx, %rbx - 0x0f, 0x84, 0xb7, 0xfd, 0xff, 0xff, //0x00006dc0 je LBB28_66 - //0x00006dc6 LBB28_86 - 0x8a, 0x09, //0x00006dc6 movb (%rcx), %cl - 0x88, 0x0f, //0x00006dc8 movb %cl, (%rdi) - 0x4c, 0x8d, 0x4c, 0x24, 0x20, //0x00006dca leaq $32(%rsp), %r9 - 0xe9, 0xa9, 0xfd, 0xff, 0xff, //0x00006dcf jmp LBB28_66 - //0x00006dd4 LBB28_87 - 0x49, 0x8b, 0x47, 0x08, //0x00006dd4 movq $8(%r15), %rax - 0x48, 0x0f, 0xbc, 0xcf, //0x00006dd8 bsfq %rdi, %rcx - 0x48, 0x2b, 0x4c, 0x24, 0x10, //0x00006ddc subq $16(%rsp), %rcx - 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006de1 leaq $1(%rcx,%rax), %rax - 0x49, 0x89, 0x06, //0x00006de6 movq %rax, (%r14) - 0x49, 0x8b, 0x4f, 0x08, //0x00006de9 movq $8(%r15), %rcx - 0x48, 0x39, 0xc8, //0x00006ded cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x00006df0 cmovaq %rcx, %rax - 0x49, 0x89, 0x06, //0x00006df4 movq %rax, (%r14) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006df7 movq $-1, %rax - 0x4c, 0x89, 0xe1, //0x00006dfe movq %r12, %rcx - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00006e01 jmp LBB28_89 - //0x00006e06 LBB28_88 - 0x49, 0x8b, 0x47, 0x08, //0x00006e06 movq $8(%r15), %rax - 0x48, 0x0f, 0xbc, 0xcf, //0x00006e0a bsfq %rdi, %rcx - 0x48, 0x2b, 0x4c, 0x24, 0x10, //0x00006e0e subq $16(%rsp), %rcx - 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00006e13 leaq $1(%rcx,%rax), %rax - 0x49, 0x89, 0x06, //0x00006e18 movq %rax, (%r14) - 0x49, 0x8b, 0x4f, 0x08, //0x00006e1b movq $8(%r15), %rcx - 0x48, 0x39, 0xc8, //0x00006e1f cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x00006e22 cmovaq %rcx, %rax - 0x49, 0x89, 0x06, //0x00006e26 movq %rax, (%r14) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006e29 movq $-1, %rax - 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006e30 movq $24(%rsp), %rcx - //0x00006e35 LBB28_89 - 0x48, 0x0f, 0x47, 0xc8, //0x00006e35 cmovaq %rax, %rcx - 0x48, 0x89, 0xc8, //0x00006e39 movq %rcx, %rax - 0xe9, 0xcd, 0xf8, 0xff, 0xff, //0x00006e3c jmp LBB28_24 - //0x00006e41 LBB28_92 - 0x0f, 0xb7, 0xd3, //0x00006e41 movzwl %bx, %edx - 0xe9, 0xb5, 0xf8, 0xff, 0xff, //0x00006e44 jmp LBB28_21 - //0x00006e49 LBB28_34 - 0x48, 0x85, 0xff, //0x00006e49 testq %rdi, %rdi - 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00006e4c jne LBB28_94 - 0x49, 0x01, 0xd7, //0x00006e52 addq %rdx, %r15 - 0x49, 0x29, 0xd3, //0x00006e55 subq %rdx, %r11 - //0x00006e58 LBB28_36 - 0x4d, 0x85, 0xdb, //0x00006e58 testq %r11, %r11 - 0x0f, 0x8f, 0x52, 0x00, 0x00, 0x00, //0x00006e5b jg LBB28_98 - 0xe9, 0xa8, 0xf8, 0xff, 0xff, //0x00006e61 jmp LBB28_24 - //0x00006e66 LBB28_93 - 0x49, 0x8b, 0x4f, 0x08, //0x00006e66 movq $8(%r15), %rcx - 0x49, 0x89, 0x0e, //0x00006e6a movq %rcx, (%r14) - 0xe9, 0x9c, 0xf8, 0xff, 0xff, //0x00006e6d jmp LBB28_24 - //0x00006e72 LBB28_94 - 0x49, 0x39, 0xd3, //0x00006e72 cmpq %rdx, %r11 - 0x0f, 0x84, 0x93, 0xf8, 0xff, 0xff, //0x00006e75 je LBB28_24 - 0x4d, 0x8d, 0x7c, 0x17, 0x01, //0x00006e7b leaq $1(%r15,%rdx), %r15 - 0x48, 0xf7, 0xd2, //0x00006e80 notq %rdx - 0x49, 0x01, 0xd3, //0x00006e83 addq %rdx, %r11 - 0x4d, 0x85, 0xdb, //0x00006e86 testq %r11, %r11 - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00006e89 jg LBB28_98 - 0xe9, 0x7a, 0xf8, 0xff, 0xff, //0x00006e8f jmp LBB28_24 - //0x00006e94 LBB28_96 - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00006e94 movq $-2, %rdx - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00006e9b movl $2, %eax - 0x49, 0x01, 0xc7, //0x00006ea0 addq %rax, %r15 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006ea3 movq $-1, %rax - 0x49, 0x01, 0xd3, //0x00006eaa addq %rdx, %r11 - 0x0f, 0x8e, 0x5b, 0xf8, 0xff, 0xff, //0x00006ead jle LBB28_24 - //0x00006eb3 LBB28_98 - 0x41, 0x0f, 0xb6, 0x07, //0x00006eb3 movzbl (%r15), %eax - 0x3c, 0x5c, //0x00006eb7 cmpb $92, %al - 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x00006eb9 je LBB28_96 - 0x3c, 0x22, //0x00006ebf cmpb $34, %al - 0x0f, 0x84, 0x5a, 0xf9, 0xff, 0xff, //0x00006ec1 je LBB28_91 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00006ec7 movq $-1, %rdx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006ece movl $1, %eax - 0x49, 0x01, 0xc7, //0x00006ed3 addq %rax, %r15 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006ed6 movq $-1, %rax - 0x49, 0x01, 0xd3, //0x00006edd addq %rdx, %r11 - 0x0f, 0x8f, 0xcd, 0xff, 0xff, 0xff, //0x00006ee0 jg LBB28_98 - 0xe9, 0x23, 0xf8, 0xff, 0xff, //0x00006ee6 jmp LBB28_24 - 0x90, //0x00006eeb .p2align 2, 0x90 - // // .set L28_0_set_24, LBB28_24-LJTI28_0 - // // .set L28_0_set_26, LBB28_26-LJTI28_0 - // // .set L28_0_set_27, LBB28_27-LJTI28_0 - // // .set L28_0_set_2, LBB28_2-LJTI28_0 - // // .set L28_0_set_37, LBB28_37-LJTI28_0 - // // .set L28_0_set_61, LBB28_61-LJTI28_0 - // // .set L28_0_set_25, LBB28_25-LJTI28_0 - // // .set L28_0_set_63, LBB28_63-LJTI28_0 - //0x00006eec LJTI28_0 - 0x22, 0xf8, 0xff, 0xff, //0x00006eec .long L28_0_set_24 - 0x47, 0xf8, 0xff, 0xff, //0x00006ef0 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006ef4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006ef8 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006efc .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f00 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f04 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f08 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f0c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f10 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f14 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f18 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f1c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f20 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f24 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f28 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f2c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f30 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f34 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f38 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f3c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f40 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f44 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f48 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f4c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f50 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f54 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f58 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f5c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f60 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f64 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f68 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f6c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f70 .long L28_0_set_26 - 0x56, 0xf8, 0xff, 0xff, //0x00006f74 .long L28_0_set_27 - 0x47, 0xf8, 0xff, 0xff, //0x00006f78 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f7c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f80 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f84 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f88 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f8c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f90 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f94 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f98 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006f9c .long L28_0_set_26 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fa0 .long L28_0_set_2 - 0x47, 0xf8, 0xff, 0xff, //0x00006fa4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fa8 .long L28_0_set_26 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fac .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fb0 .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fb4 .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fb8 .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fbc .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fc0 .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fc4 .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fc8 .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fcc .long L28_0_set_2 - 0xd7, 0xf6, 0xff, 0xff, //0x00006fd0 .long L28_0_set_2 - 0x47, 0xf8, 0xff, 0xff, //0x00006fd4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fd8 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fdc .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fe0 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fe4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fe8 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006fec .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006ff0 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006ff4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006ff8 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00006ffc .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007000 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007004 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007008 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000700c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007010 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007014 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007018 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000701c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007020 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007024 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007028 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000702c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007030 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007034 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007038 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000703c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007040 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007044 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007048 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000704c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007050 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007054 .long L28_0_set_26 - 0x48, 0xf9, 0xff, 0xff, //0x00007058 .long L28_0_set_37 - 0x47, 0xf8, 0xff, 0xff, //0x0000705c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007060 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007064 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007068 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000706c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007070 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007074 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007078 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000707c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007080 .long L28_0_set_26 - 0x08, 0xfc, 0xff, 0xff, //0x00007084 .long L28_0_set_61 - 0x47, 0xf8, 0xff, 0xff, //0x00007088 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000708c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007090 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007094 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x00007098 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x0000709c .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070a0 .long L28_0_set_26 - 0x34, 0xf8, 0xff, 0xff, //0x000070a4 .long L28_0_set_25 - 0x47, 0xf8, 0xff, 0xff, //0x000070a8 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070ac .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070b0 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070b4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070b8 .long L28_0_set_26 - 0x34, 0xf8, 0xff, 0xff, //0x000070bc .long L28_0_set_25 - 0x47, 0xf8, 0xff, 0xff, //0x000070c0 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070c4 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070c8 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070cc .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070d0 .long L28_0_set_26 - 0x47, 0xf8, 0xff, 0xff, //0x000070d4 .long L28_0_set_26 - 0x1e, 0xfc, 0xff, 0xff, //0x000070d8 .long L28_0_set_63 - 0x90, 0x90, 0x90, 0x90, //0x000070dc .p2align 4, 0x90 - //0x000070e0 _get_by_path - 0x55, //0x000070e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000070e1 movq %rsp, %rbp - 0x41, 0x57, //0x000070e4 pushq %r15 - 0x41, 0x56, //0x000070e6 pushq %r14 - 0x41, 0x55, //0x000070e8 pushq %r13 - 0x41, 0x54, //0x000070ea pushq %r12 - 0x53, //0x000070ec pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x000070ed subq $40, %rsp - 0x49, 0x89, 0xf7, //0x000070f1 movq %rsi, %r15 - 0x49, 0x89, 0xfd, //0x000070f4 movq %rdi, %r13 - 0x48, 0x8b, 0x42, 0x08, //0x000070f7 movq $8(%rdx), %rax - 0x48, 0x85, 0xc0, //0x000070fb testq %rax, %rax - 0x0f, 0x84, 0x91, 0x07, 0x00, 0x00, //0x000070fe je LBB29_98 - 0x4c, 0x8b, 0x32, //0x00007104 movq (%rdx), %r14 - 0x48, 0xc1, 0xe0, 0x04, //0x00007107 shlq $4, %rax - 0x4c, 0x01, 0xf0, //0x0000710b addq %r14, %rax - 0x48, 0x89, 0x4d, 0xb0, //0x0000710e movq %rcx, $-80(%rbp) - 0x48, 0x89, 0x45, 0xb8, //0x00007112 movq %rax, $-72(%rbp) - //0x00007116 LBB29_2 - 0x49, 0x8b, 0x7d, 0x00, //0x00007116 movq (%r13), %rdi - 0x49, 0x8b, 0x75, 0x08, //0x0000711a movq $8(%r13), %rsi - 0x4c, 0x89, 0xfa, //0x0000711e movq %r15, %rdx - 0xe8, 0xfa, 0xd0, 0xff, 0xff, //0x00007121 callq _advance_ns - 0x49, 0x8b, 0x0e, //0x00007126 movq (%r14), %rcx - 0x48, 0x85, 0xc9, //0x00007129 testq %rcx, %rcx - 0x0f, 0x84, 0xbe, 0x07, 0x00, 0x00, //0x0000712c je LBB29_104 - 0x8a, 0x49, 0x17, //0x00007132 movb $23(%rcx), %cl - 0x80, 0xe1, 0x1f, //0x00007135 andb $31, %cl - 0x80, 0xf9, 0x02, //0x00007138 cmpb $2, %cl - 0x0f, 0x84, 0xbf, 0x06, 0x00, 0x00, //0x0000713b je LBB29_91 - 0x80, 0xf9, 0x18, //0x00007141 cmpb $24, %cl - 0x0f, 0x85, 0xa6, 0x07, 0x00, 0x00, //0x00007144 jne LBB29_104 - 0x3c, 0x7b, //0x0000714a cmpb $123, %al - 0x4c, 0x89, 0x75, 0xc8, //0x0000714c movq %r14, $-56(%rbp) - 0x0f, 0x85, 0x81, 0x07, 0x00, 0x00, //0x00007150 jne LBB29_102 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007156 .p2align 4, 0x90 - //0x00007160 LBB29_6 - 0x49, 0x8b, 0x7d, 0x00, //0x00007160 movq (%r13), %rdi - 0x49, 0x8b, 0x75, 0x08, //0x00007164 movq $8(%r13), %rsi - 0x4c, 0x89, 0xfa, //0x00007168 movq %r15, %rdx - 0xe8, 0xb0, 0xd0, 0xff, 0xff, //0x0000716b callq _advance_ns - 0x3c, 0x22, //0x00007170 cmpb $34, %al - 0x0f, 0x85, 0x40, 0x07, 0x00, 0x00, //0x00007172 jne LBB29_99 - 0x49, 0x8b, 0x46, 0x08, //0x00007178 movq $8(%r14), %rax - 0x4c, 0x8b, 0x30, //0x0000717c movq (%rax), %r14 - 0x4c, 0x8b, 0x60, 0x08, //0x0000717f movq $8(%rax), %r12 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007183 movq $-1, $-64(%rbp) - 0x49, 0x8b, 0x1f, //0x0000718b movq (%r15), %rbx - 0x4c, 0x89, 0xef, //0x0000718e movq %r13, %rdi - 0x48, 0x89, 0xde, //0x00007191 movq %rbx, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x00007194 leaq $-64(%rbp), %rdx - 0xe8, 0xe3, 0x2b, 0x00, 0x00, //0x00007198 callq _advance_string_default - 0x48, 0x85, 0xc0, //0x0000719d testq %rax, %rax - 0x0f, 0x88, 0x59, 0x07, 0x00, 0x00, //0x000071a0 js LBB29_105 - 0x49, 0x89, 0x07, //0x000071a6 movq %rax, (%r15) - 0x48, 0x8b, 0x4d, 0xc0, //0x000071a9 movq $-64(%rbp), %rcx - 0x48, 0x83, 0xf9, 0xff, //0x000071ad cmpq $-1, %rcx - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000071b1 je LBB29_10 - 0x48, 0x39, 0xc1, //0x000071b7 cmpq %rax, %rcx - 0x0f, 0x8e, 0x70, 0x02, 0x00, 0x00, //0x000071ba jle LBB29_45 - //0x000071c0 LBB29_10 - 0x48, 0x89, 0xd9, //0x000071c0 movq %rbx, %rcx - 0x48, 0xf7, 0xd1, //0x000071c3 notq %rcx - 0x48, 0x01, 0xc8, //0x000071c6 addq %rcx, %rax - 0x48, 0x89, 0xc1, //0x000071c9 movq %rax, %rcx - 0x4c, 0x09, 0xe1, //0x000071cc orq %r12, %rcx - 0x0f, 0x84, 0xcb, 0x00, 0x00, 0x00, //0x000071cf je LBB29_21 - 0x4c, 0x39, 0xe0, //0x000071d5 cmpq %r12, %rax - 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x000071d8 jne LBB29_22 - 0x49, 0x03, 0x5d, 0x00, //0x000071de addq (%r13), %rbx - 0x49, 0x83, 0xfc, 0x20, //0x000071e2 cmpq $32, %r12 - 0x0f, 0x82, 0x57, 0x00, 0x00, 0x00, //0x000071e6 jb LBB29_17 - 0x49, 0x8d, 0x44, 0x24, 0xe0, //0x000071ec leaq $-32(%r12), %rax - 0x48, 0x89, 0xc2, //0x000071f1 movq %rax, %rdx - 0x48, 0x83, 0xe2, 0xe0, //0x000071f4 andq $-32, %rdx - 0x48, 0x8d, 0x4c, 0x13, 0x20, //0x000071f8 leaq $32(%rbx,%rdx), %rcx - 0x49, 0x8d, 0x54, 0x16, 0x20, //0x000071fd leaq $32(%r14,%rdx), %rdx - 0x83, 0xe0, 0x1f, //0x00007202 andl $31, %eax - 0x31, 0xf6, //0x00007205 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007207 .p2align 4, 0x90 - //0x00007210 LBB29_14 - 0xc5, 0xfe, 0x6f, 0x04, 0x33, //0x00007210 vmovdqu (%rbx,%rsi), %ymm0 - 0xc4, 0xc1, 0x7d, 0x74, 0x04, 0x36, //0x00007215 vpcmpeqb (%r14,%rsi), %ymm0, %ymm0 - 0xc5, 0xfd, 0xd7, 0xf8, //0x0000721b vpmovmskb %ymm0, %edi - 0x83, 0xff, 0xff, //0x0000721f cmpl $-1, %edi - 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00007222 jne LBB29_28 - 0x49, 0x83, 0xc4, 0xe0, //0x00007228 addq $-32, %r12 - 0x48, 0x83, 0xc6, 0x20, //0x0000722c addq $32, %rsi - 0x49, 0x83, 0xfc, 0x1f, //0x00007230 cmpq $31, %r12 - 0x0f, 0x87, 0xd6, 0xff, 0xff, 0xff, //0x00007234 ja LBB29_14 - 0x49, 0x89, 0xc4, //0x0000723a movq %rax, %r12 - 0x49, 0x89, 0xd6, //0x0000723d movq %rdx, %r14 - 0x48, 0x89, 0xcb, //0x00007240 movq %rcx, %rbx - //0x00007243 LBB29_17 - 0x89, 0xde, //0x00007243 movl %ebx, %esi - 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x00007245 andl $4095, %esi - 0x44, 0x89, 0xf7, //0x0000724b movl %r14d, %edi - 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x0000724e andl $4095, %edi - 0x48, 0x81, 0xff, 0xe0, 0x0f, 0x00, 0x00, //0x00007254 cmpq $4064, %rdi - 0x0f, 0x87, 0x5a, 0x00, 0x00, 0x00, //0x0000725b ja LBB29_23 - 0x81, 0xfe, 0xe1, 0x0f, 0x00, 0x00, //0x00007261 cmpl $4065, %esi - 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x00007267 jae LBB29_23 - 0xc5, 0xfe, 0x6f, 0x03, //0x0000726d vmovdqu (%rbx), %ymm0 - 0xc4, 0xc1, 0x7d, 0x74, 0x06, //0x00007271 vpcmpeqb (%r14), %ymm0, %ymm0 - 0xc5, 0xfd, 0xd7, 0xc0, //0x00007276 vpmovmskb %ymm0, %eax - 0x83, 0xf8, 0xff, //0x0000727a cmpl $-1, %eax - 0x0f, 0x84, 0x08, 0x01, 0x00, 0x00, //0x0000727d je LBB29_33 - 0xf7, 0xd0, //0x00007283 notl %eax - 0x48, 0x0f, 0xbc, 0xc0, //0x00007285 bsfq %rax, %rax - 0x4c, 0x39, 0xe0, //0x00007289 cmpq %r12, %rax - 0x40, 0x0f, 0x93, 0xc6, //0x0000728c setae %sil - 0x4c, 0x8b, 0x75, 0xc8, //0x00007290 movq $-56(%rbp), %r14 - 0xe9, 0x47, 0x01, 0x00, 0x00, //0x00007294 jmp LBB29_40 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007299 .p2align 4, 0x90 - //0x000072a0 LBB29_21 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000072a0 movl $1, %ebx - 0x4c, 0x8b, 0x75, 0xc8, //0x000072a5 movq $-56(%rbp), %r14 - 0xe9, 0x36, 0x01, 0x00, 0x00, //0x000072a9 jmp LBB29_41 - 0x90, 0x90, //0x000072ae .p2align 4, 0x90 - //0x000072b0 LBB29_22 - 0x31, 0xdb, //0x000072b0 xorl %ebx, %ebx - 0x4c, 0x8b, 0x75, 0xc8, //0x000072b2 movq $-56(%rbp), %r14 - 0xe9, 0x29, 0x01, 0x00, 0x00, //0x000072b6 jmp LBB29_41 - //0x000072bb LBB29_23 - 0x49, 0x83, 0xfc, 0x10, //0x000072bb cmpq $16, %r12 - 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x000072bf jb LBB29_29 - 0x49, 0x8d, 0x44, 0x24, 0xf0, //0x000072c5 leaq $-16(%r12), %rax - 0x48, 0x89, 0xc1, //0x000072ca movq %rax, %rcx - 0x48, 0x83, 0xe1, 0xf0, //0x000072cd andq $-16, %rcx - 0x48, 0x8d, 0x54, 0x0b, 0x10, //0x000072d1 leaq $16(%rbx,%rcx), %rdx - 0x49, 0x8d, 0x4c, 0x0e, 0x10, //0x000072d6 leaq $16(%r14,%rcx), %rcx - 0x83, 0xe0, 0x0f, //0x000072db andl $15, %eax - 0x31, 0xf6, //0x000072de xorl %esi, %esi - //0x000072e0 .p2align 4, 0x90 - //0x000072e0 LBB29_25 - 0xc5, 0xfa, 0x6f, 0x04, 0x33, //0x000072e0 vmovdqu (%rbx,%rsi), %xmm0 - 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x36, //0x000072e5 vpcmpeqb (%r14,%rsi), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xf8, //0x000072eb vpmovmskb %xmm0, %edi - 0x66, 0x83, 0xff, 0xff, //0x000072ef cmpw $-1, %di - 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x000072f3 jne LBB29_28 - 0x49, 0x83, 0xc4, 0xf0, //0x000072f9 addq $-16, %r12 - 0x48, 0x83, 0xc6, 0x10, //0x000072fd addq $16, %rsi - 0x49, 0x83, 0xfc, 0x0f, //0x00007301 cmpq $15, %r12 - 0x0f, 0x87, 0xd5, 0xff, 0xff, 0xff, //0x00007305 ja LBB29_25 - 0x89, 0xd6, //0x0000730b movl %edx, %esi - 0x81, 0xe6, 0xff, 0x0f, 0x00, 0x00, //0x0000730d andl $4095, %esi - 0x89, 0xcf, //0x00007313 movl %ecx, %edi - 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x00007315 andl $4095, %edi - 0x81, 0xff, 0xf0, 0x0f, 0x00, 0x00, //0x0000731b cmpl $4080, %edi - 0x4c, 0x8b, 0x75, 0xc8, //0x00007321 movq $-56(%rbp), %r14 - 0x0f, 0x86, 0x29, 0x00, 0x00, 0x00, //0x00007325 jbe LBB29_30 - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000732b jmp LBB29_34 - //0x00007330 LBB29_28 - 0x31, 0xf6, //0x00007330 xorl %esi, %esi - 0x4c, 0x8b, 0x75, 0xc8, //0x00007332 movq $-56(%rbp), %r14 - 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x00007336 jmp LBB29_40 - //0x0000733b LBB29_29 - 0x4c, 0x89, 0xe0, //0x0000733b movq %r12, %rax - 0x4c, 0x89, 0xf1, //0x0000733e movq %r14, %rcx - 0x48, 0x89, 0xda, //0x00007341 movq %rbx, %rdx - 0x81, 0xff, 0xf0, 0x0f, 0x00, 0x00, //0x00007344 cmpl $4080, %edi - 0x4c, 0x8b, 0x75, 0xc8, //0x0000734a movq $-56(%rbp), %r14 - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x0000734e ja LBB29_34 - //0x00007354 LBB29_30 - 0x81, 0xfe, 0xf1, 0x0f, 0x00, 0x00, //0x00007354 cmpl $4081, %esi - 0x0f, 0x83, 0x37, 0x00, 0x00, 0x00, //0x0000735a jae LBB29_34 - 0xc5, 0xfa, 0x6f, 0x02, //0x00007360 vmovdqu (%rdx), %xmm0 - 0xc5, 0xf9, 0x74, 0x01, //0x00007364 vpcmpeqb (%rcx), %xmm0, %xmm0 - 0xc5, 0xf9, 0xd7, 0xc8, //0x00007368 vpmovmskb %xmm0, %ecx - 0x66, 0x83, 0xf9, 0xff, //0x0000736c cmpw $-1, %cx - 0x0f, 0x84, 0x58, 0x00, 0x00, 0x00, //0x00007370 je LBB29_38 - 0xf7, 0xd1, //0x00007376 notl %ecx - 0x0f, 0xb7, 0xc9, //0x00007378 movzwl %cx, %ecx - 0x48, 0x0f, 0xbc, 0xc9, //0x0000737b bsfq %rcx, %rcx - 0x48, 0x39, 0xc1, //0x0000737f cmpq %rax, %rcx - 0x40, 0x0f, 0x93, 0xc6, //0x00007382 setae %sil - 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00007386 jmp LBB29_40 - //0x0000738b LBB29_33 - 0x40, 0xb6, 0x01, //0x0000738b movb $1, %sil - 0x4c, 0x8b, 0x75, 0xc8, //0x0000738e movq $-56(%rbp), %r14 - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00007392 jmp LBB29_40 - //0x00007397 LBB29_34 - 0x40, 0xb6, 0x01, //0x00007397 movb $1, %sil - 0x48, 0x85, 0xc0, //0x0000739a testq %rax, %rax - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000739d je LBB29_40 - 0x31, 0xff, //0x000073a3 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073a5 .p2align 4, 0x90 - //0x000073b0 LBB29_36 - 0x0f, 0xb6, 0x1c, 0x3a, //0x000073b0 movzbl (%rdx,%rdi), %ebx - 0x3a, 0x1c, 0x39, //0x000073b4 cmpb (%rcx,%rdi), %bl - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x000073b7 jne LBB29_39 - 0x48, 0xff, 0xc7, //0x000073bd incq %rdi - 0x48, 0x39, 0xf8, //0x000073c0 cmpq %rdi, %rax - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000073c3 jne LBB29_36 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000073c9 jmp LBB29_40 - //0x000073ce LBB29_38 - 0x40, 0xb6, 0x01, //0x000073ce movb $1, %sil - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000073d1 jmp LBB29_40 - //0x000073d6 LBB29_39 - 0x31, 0xf6, //0x000073d6 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073d8 .p2align 4, 0x90 - //0x000073e0 LBB29_40 - 0x40, 0x0f, 0xb6, 0xde, //0x000073e0 movzbl %sil, %ebx - //0x000073e4 LBB29_41 - 0x49, 0x8b, 0x7d, 0x00, //0x000073e4 movq (%r13), %rdi - //0x000073e8 LBB29_42 - 0x49, 0x8b, 0x75, 0x08, //0x000073e8 movq $8(%r13), %rsi - 0x4c, 0x89, 0xfa, //0x000073ec movq %r15, %rdx - 0xc5, 0xf8, 0x77, //0x000073ef vzeroupper - 0xe8, 0x29, 0xce, 0xff, 0xff, //0x000073f2 callq _advance_ns - 0x3c, 0x3a, //0x000073f7 cmpb $58, %al - 0x0f, 0x85, 0xd8, 0x04, 0x00, 0x00, //0x000073f9 jne LBB29_102 - 0x48, 0x85, 0xdb, //0x000073ff testq %rbx, %rbx - 0x0f, 0x85, 0x78, 0x04, 0x00, 0x00, //0x00007402 jne LBB29_97 - 0x4c, 0x89, 0xef, //0x00007408 movq %r13, %rdi - 0x4c, 0x89, 0xfe, //0x0000740b movq %r15, %rsi - 0xe8, 0x5d, 0xf1, 0xff, 0xff, //0x0000740e callq _skip_one_fast - 0x49, 0x8b, 0x7d, 0x00, //0x00007413 movq (%r13), %rdi - 0x49, 0x8b, 0x75, 0x08, //0x00007417 movq $8(%r13), %rsi - 0x4c, 0x89, 0xfa, //0x0000741b movq %r15, %rdx - 0xe8, 0xfd, 0xcd, 0xff, 0xff, //0x0000741e callq _advance_ns - 0x3c, 0x2c, //0x00007423 cmpb $44, %al - 0x0f, 0x84, 0x35, 0xfd, 0xff, 0xff, //0x00007425 je LBB29_6 - 0xe9, 0x88, 0x04, 0x00, 0x00, //0x0000742b jmp LBB29_99 - //0x00007430 LBB29_45 - 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00007430 movq $0, $-48(%rbp) - 0x49, 0x8b, 0x7d, 0x00, //0x00007438 movq (%r13), %rdi - 0x48, 0x01, 0xfb, //0x0000743c addq %rdi, %rbx - 0x4c, 0x8d, 0x44, 0x07, 0xff, //0x0000743f leaq $-1(%rdi,%rax), %r8 - 0x4f, 0x8d, 0x14, 0x26, //0x00007444 leaq (%r14,%r12), %r10 - 0x4d, 0x85, 0xe4, //0x00007448 testq %r12, %r12 - 0x0f, 0x8e, 0x85, 0x03, 0x00, 0x00, //0x0000744b jle LBB29_89 - 0x49, 0x39, 0xd8, //0x00007451 cmpq %rbx, %r8 - 0x0f, 0x86, 0x7c, 0x03, 0x00, 0x00, //0x00007454 jbe LBB29_89 - //0x0000745a LBB29_47 - 0x8a, 0x03, //0x0000745a movb (%rbx), %al - 0x3c, 0x5c, //0x0000745c cmpb $92, %al - 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x0000745e jne LBB29_52 - 0x4c, 0x89, 0xc1, //0x00007464 movq %r8, %rcx - 0x48, 0x29, 0xd9, //0x00007467 subq %rbx, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000746a movq $-1, %rax - 0x48, 0x85, 0xc9, //0x00007471 testq %rcx, %rcx - 0x0f, 0x8e, 0xba, 0x04, 0x00, 0x00, //0x00007474 jle LBB29_109 - 0x0f, 0xb6, 0x53, 0x01, //0x0000747a movzbl $1(%rbx), %edx - 0x48, 0x8d, 0x35, 0xab, 0xa0, 0x00, 0x00, //0x0000747e leaq $41131(%rip), %rsi /* __UnquoteTab+0(%rip) */ - 0x44, 0x8a, 0x1c, 0x32, //0x00007485 movb (%rdx,%rsi), %r11b - 0x41, 0x80, 0xfb, 0xff, //0x00007489 cmpb $-1, %r11b - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000748d je LBB29_54 - 0x45, 0x84, 0xdb, //0x00007493 testb %r11b, %r11b - 0x0f, 0x84, 0x86, 0x04, 0x00, 0x00, //0x00007496 je LBB29_107 - 0x44, 0x88, 0x5d, 0xd0, //0x0000749c movb %r11b, $-48(%rbp) - 0x48, 0x83, 0xc3, 0x02, //0x000074a0 addq $2, %rbx - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000074a4 movl $1, %ecx - 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000074a9 leaq $-48(%rbp,%rcx), %r9 - 0x4d, 0x39, 0xd6, //0x000074ae cmpq %r10, %r14 - 0x0f, 0x82, 0x2c, 0x01, 0x00, 0x00, //0x000074b1 jb LBB29_65 - 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x000074b7 jmp LBB29_73 - //0x000074bc LBB29_52 - 0x41, 0x3a, 0x06, //0x000074bc cmpb (%r14), %al - 0x0f, 0x85, 0x28, 0x03, 0x00, 0x00, //0x000074bf jne LBB29_90 - 0x48, 0xff, 0xc3, //0x000074c5 incq %rbx - 0x49, 0xff, 0xc6, //0x000074c8 incq %r14 - 0xe9, 0xf4, 0x02, 0x00, 0x00, //0x000074cb jmp LBB29_75 - //0x000074d0 LBB29_54 - 0x48, 0x83, 0xf9, 0x03, //0x000074d0 cmpq $3, %rcx - 0x0f, 0x8e, 0x57, 0x04, 0x00, 0x00, //0x000074d4 jle LBB29_108 - 0x8b, 0x43, 0x02, //0x000074da movl $2(%rbx), %eax - 0x89, 0xc2, //0x000074dd movl %eax, %edx - 0xf7, 0xd2, //0x000074df notl %edx - 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x000074e1 leal $-808464432(%rax), %esi - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000074e7 andl $-2139062144, %edx - 0x85, 0xf2, //0x000074ed testl %esi, %edx - 0x0f, 0x85, 0x1d, 0x04, 0x00, 0x00, //0x000074ef jne LBB29_106 - 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x000074f5 leal $421075225(%rax), %esi - 0x09, 0xc6, //0x000074fb orl %eax, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000074fd testl $-2139062144, %esi - 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x00007503 jne LBB29_106 - 0x89, 0xc6, //0x00007509 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000750b andl $2139062143, %esi - 0x41, 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00007511 movl $-1061109568, %r9d - 0x41, 0x29, 0xf1, //0x00007517 subl %esi, %r9d - 0x44, 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x0000751a leal $1179010630(%rsi), %r11d - 0x41, 0x21, 0xd1, //0x00007521 andl %edx, %r9d - 0x45, 0x85, 0xd9, //0x00007524 testl %r11d, %r9d - 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00007527 jne LBB29_106 - 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000752d movl $-522133280, %r9d - 0x41, 0x29, 0xf1, //0x00007533 subl %esi, %r9d - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00007536 addl $960051513, %esi - 0x44, 0x21, 0xca, //0x0000753c andl %r9d, %edx - 0x85, 0xf2, //0x0000753f testl %esi, %edx - 0x0f, 0x85, 0xcb, 0x03, 0x00, 0x00, //0x00007541 jne LBB29_106 - 0x0f, 0xc8, //0x00007547 bswapl %eax - 0x89, 0xc2, //0x00007549 movl %eax, %edx - 0xc1, 0xea, 0x04, //0x0000754b shrl $4, %edx - 0xf7, 0xd2, //0x0000754e notl %edx - 0x81, 0xe2, 0x01, 0x01, 0x01, 0x01, //0x00007550 andl $16843009, %edx - 0x8d, 0x14, 0xd2, //0x00007556 leal (%rdx,%rdx,8), %edx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007559 andl $252645135, %eax - 0x01, 0xd0, //0x0000755e addl %edx, %eax - 0x41, 0x89, 0xc3, //0x00007560 movl %eax, %r11d - 0x41, 0xc1, 0xeb, 0x04, //0x00007563 shrl $4, %r11d - 0x41, 0x09, 0xc3, //0x00007567 orl %eax, %r11d - 0x44, 0x89, 0xde, //0x0000756a movl %r11d, %esi - 0xc1, 0xee, 0x08, //0x0000756d shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00007570 andl $65280, %esi - 0x41, 0x0f, 0xb6, 0xc3, //0x00007576 movzbl %r11b, %eax - 0x09, 0xf0, //0x0000757a orl %esi, %eax - 0x4c, 0x8d, 0x4b, 0x06, //0x0000757c leaq $6(%rbx), %r9 - 0x83, 0xf8, 0x7f, //0x00007580 cmpl $127, %eax - 0x0f, 0x86, 0xab, 0x00, 0x00, 0x00, //0x00007583 jbe LBB29_77 - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x00007589 cmpl $2047, %eax - 0x0f, 0x86, 0xbf, 0x00, 0x00, 0x00, //0x0000758e jbe LBB29_78 - 0x44, 0x89, 0xda, //0x00007594 movl %r11d, %edx - 0x81, 0xe2, 0x00, 0x00, 0xf8, 0x00, //0x00007597 andl $16252928, %edx - 0x81, 0xfa, 0x00, 0x00, 0xd8, 0x00, //0x0000759d cmpl $14155776, %edx - 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x000075a3 je LBB29_79 - 0xc1, 0xee, 0x0c, //0x000075a9 shrl $12, %esi - 0x40, 0x80, 0xce, 0xe0, //0x000075ac orb $-32, %sil - 0x40, 0x88, 0x75, 0xd0, //0x000075b0 movb %sil, $-48(%rbp) - 0xc1, 0xe8, 0x06, //0x000075b4 shrl $6, %eax - 0x24, 0x3f, //0x000075b7 andb $63, %al - 0x0c, 0x80, //0x000075b9 orb $-128, %al - 0x88, 0x45, 0xd1, //0x000075bb movb %al, $-47(%rbp) - 0x41, 0x80, 0xe3, 0x3f, //0x000075be andb $63, %r11b - 0x41, 0x80, 0xcb, 0x80, //0x000075c2 orb $-128, %r11b - 0x44, 0x88, 0x5d, 0xd2, //0x000075c6 movb %r11b, $-46(%rbp) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000075ca movl $3, %ecx - 0x41, 0x89, 0xf3, //0x000075cf movl %esi, %r11d - 0x4c, 0x89, 0xcb, //0x000075d2 movq %r9, %rbx - 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000075d5 leaq $-48(%rbp,%rcx), %r9 - 0x4d, 0x39, 0xd6, //0x000075da cmpq %r10, %r14 - 0x0f, 0x83, 0xd4, 0x01, 0x00, 0x00, //0x000075dd jae LBB29_73 - //0x000075e3 LBB29_65 - 0x48, 0x8d, 0x45, 0xd0, //0x000075e3 leaq $-48(%rbp), %rax - 0x49, 0x39, 0xc1, //0x000075e7 cmpq %rax, %r9 - 0x0f, 0x86, 0xc7, 0x01, 0x00, 0x00, //0x000075ea jbe LBB29_73 - 0x45, 0x38, 0x1e, //0x000075f0 cmpb %r11b, (%r14) - 0x0f, 0x85, 0xbe, 0x01, 0x00, 0x00, //0x000075f3 jne LBB29_73 - 0x49, 0xff, 0xc6, //0x000075f9 incq %r14 - 0x48, 0x8d, 0x55, 0xd1, //0x000075fc leaq $-47(%rbp), %rdx - 0x4c, 0x89, 0xf6, //0x00007600 movq %r14, %rsi - //0x00007603 LBB29_68 - 0x49, 0x89, 0xf6, //0x00007603 movq %rsi, %r14 - 0x48, 0x89, 0xd1, //0x00007606 movq %rdx, %rcx - 0x4c, 0x39, 0xca, //0x00007609 cmpq %r9, %rdx - 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x0000760c jae LBB29_74 - 0x4d, 0x39, 0xd6, //0x00007612 cmpq %r10, %r14 - 0x0f, 0x83, 0xa0, 0x01, 0x00, 0x00, //0x00007615 jae LBB29_74 - 0x41, 0x0f, 0xb6, 0x06, //0x0000761b movzbl (%r14), %eax - 0x49, 0x8d, 0x76, 0x01, //0x0000761f leaq $1(%r14), %rsi - 0x48, 0x8d, 0x51, 0x01, //0x00007623 leaq $1(%rcx), %rdx - 0x3a, 0x01, //0x00007627 cmpb (%rcx), %al - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00007629 je LBB29_68 - 0xe9, 0x87, 0x01, 0x00, 0x00, //0x0000762f jmp LBB29_74 - //0x00007634 LBB29_77 - 0x44, 0x88, 0x5d, 0xd0, //0x00007634 movb %r11b, $-48(%rbp) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00007638 movl $1, %ecx - 0x4c, 0x89, 0xcb, //0x0000763d movq %r9, %rbx - 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007640 leaq $-48(%rbp,%rcx), %r9 - 0x4d, 0x39, 0xd6, //0x00007645 cmpq %r10, %r14 - 0x0f, 0x82, 0x95, 0xff, 0xff, 0xff, //0x00007648 jb LBB29_65 - 0xe9, 0x64, 0x01, 0x00, 0x00, //0x0000764e jmp LBB29_73 - //0x00007653 LBB29_78 - 0xc1, 0xe8, 0x06, //0x00007653 shrl $6, %eax - 0x0c, 0xc0, //0x00007656 orb $-64, %al - 0x88, 0x45, 0xd0, //0x00007658 movb %al, $-48(%rbp) - 0x41, 0x80, 0xe3, 0x3f, //0x0000765b andb $63, %r11b - 0x41, 0x80, 0xcb, 0x80, //0x0000765f orb $-128, %r11b - 0x44, 0x88, 0x5d, 0xd1, //0x00007663 movb %r11b, $-47(%rbp) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007667 movl $2, %ecx - 0x41, 0x89, 0xc3, //0x0000766c movl %eax, %r11d - 0x4c, 0x89, 0xcb, //0x0000766f movq %r9, %rbx - 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x00007672 leaq $-48(%rbp,%rcx), %r9 - 0x4d, 0x39, 0xd6, //0x00007677 cmpq %r10, %r14 - 0x0f, 0x82, 0x63, 0xff, 0xff, 0xff, //0x0000767a jb LBB29_65 - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00007680 jmp LBB29_73 - //0x00007685 LBB29_79 - 0x48, 0x83, 0xf9, 0x06, //0x00007685 cmpq $6, %rcx - 0x0f, 0x8c, 0xbc, 0x02, 0x00, 0x00, //0x00007689 jl LBB29_111 - 0x3d, 0xff, 0xdb, 0x00, 0x00, //0x0000768f cmpl $56319, %eax - 0x0f, 0x87, 0xb1, 0x02, 0x00, 0x00, //0x00007694 ja LBB29_111 - 0x41, 0x80, 0x39, 0x5c, //0x0000769a cmpb $92, (%r9) - 0x0f, 0x85, 0xa7, 0x02, 0x00, 0x00, //0x0000769e jne LBB29_111 - 0x80, 0x7b, 0x07, 0x75, //0x000076a4 cmpb $117, $7(%rbx) - 0x0f, 0x85, 0x9d, 0x02, 0x00, 0x00, //0x000076a8 jne LBB29_111 - 0x4c, 0x8d, 0x4b, 0x08, //0x000076ae leaq $8(%rbx), %r9 - 0x8b, 0x4b, 0x08, //0x000076b2 movl $8(%rbx), %ecx - 0x89, 0xca, //0x000076b5 movl %ecx, %edx - 0xf7, 0xd2, //0x000076b7 notl %edx - 0x8d, 0xb1, 0xd0, 0xcf, 0xcf, 0xcf, //0x000076b9 leal $-808464432(%rcx), %esi - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000076bf andl $-2139062144, %edx - 0x85, 0xf2, //0x000076c5 testl %esi, %edx - 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x000076c7 jne LBB29_110 - 0x8d, 0xb1, 0x19, 0x19, 0x19, 0x19, //0x000076cd leal $421075225(%rcx), %esi - 0x09, 0xce, //0x000076d3 orl %ecx, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000076d5 testl $-2139062144, %esi - 0x0f, 0x85, 0x5e, 0x02, 0x00, 0x00, //0x000076db jne LBB29_110 - 0x89, 0xce, //0x000076e1 movl %ecx, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000076e3 andl $2139062143, %esi - 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000076e9 movl $-1061109568, %r11d - 0x41, 0x29, 0xf3, //0x000076ef subl %esi, %r11d - 0x44, 0x8d, 0xa6, 0x46, 0x46, 0x46, 0x46, //0x000076f2 leal $1179010630(%rsi), %r12d - 0x41, 0x21, 0xd3, //0x000076f9 andl %edx, %r11d - 0x45, 0x85, 0xe3, //0x000076fc testl %r12d, %r11d - 0x0f, 0x85, 0x3a, 0x02, 0x00, 0x00, //0x000076ff jne LBB29_110 - 0x41, 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00007705 movl $-522133280, %r11d - 0x41, 0x29, 0xf3, //0x0000770b subl %esi, %r11d - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x0000770e addl $960051513, %esi - 0x44, 0x21, 0xda, //0x00007714 andl %r11d, %edx - 0x85, 0xf2, //0x00007717 testl %esi, %edx - 0x0f, 0x85, 0x20, 0x02, 0x00, 0x00, //0x00007719 jne LBB29_110 - 0x0f, 0xc9, //0x0000771f bswapl %ecx - 0x89, 0xca, //0x00007721 movl %ecx, %edx - 0xc1, 0xea, 0x04, //0x00007723 shrl $4, %edx - 0xf7, 0xd2, //0x00007726 notl %edx - 0x81, 0xe2, 0x01, 0x01, 0x01, 0x01, //0x00007728 andl $16843009, %edx - 0x8d, 0x14, 0xd2, //0x0000772e leal (%rdx,%rdx,8), %edx - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007731 andl $252645135, %ecx - 0x01, 0xd1, //0x00007737 addl %edx, %ecx - 0x89, 0xca, //0x00007739 movl %ecx, %edx - 0xc1, 0xea, 0x04, //0x0000773b shrl $4, %edx - 0x09, 0xca, //0x0000773e orl %ecx, %edx - 0x89, 0xd1, //0x00007740 movl %edx, %ecx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00007742 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00007748 cmpl $14417920, %ecx - 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000774e jne LBB29_111 - 0x89, 0xd1, //0x00007754 movl %edx, %ecx - 0xc1, 0xe9, 0x08, //0x00007756 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00007759 andl $65280, %ecx - 0x0f, 0xb6, 0xd2, //0x0000775f movzbl %dl, %edx - 0x09, 0xca, //0x00007762 orl %ecx, %edx - 0xc1, 0xe0, 0x0a, //0x00007764 shll $10, %eax - 0x8d, 0x84, 0x10, 0x00, 0x24, 0xa0, 0xfc, //0x00007767 leal $-56613888(%rax,%rdx), %eax - 0x41, 0x89, 0xc3, //0x0000776e movl %eax, %r11d - 0x41, 0xc1, 0xeb, 0x12, //0x00007771 shrl $18, %r11d - 0x41, 0x80, 0xcb, 0xf0, //0x00007775 orb $-16, %r11b - 0x44, 0x88, 0x5d, 0xd0, //0x00007779 movb %r11b, $-48(%rbp) - 0x89, 0xc1, //0x0000777d movl %eax, %ecx - 0xc1, 0xe9, 0x0c, //0x0000777f shrl $12, %ecx - 0x80, 0xe1, 0x3f, //0x00007782 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00007785 orb $-128, %cl - 0x88, 0x4d, 0xd1, //0x00007788 movb %cl, $-47(%rbp) - 0x89, 0xc1, //0x0000778b movl %eax, %ecx - 0xc1, 0xe9, 0x06, //0x0000778d shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x00007790 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00007793 orb $-128, %cl - 0x88, 0x4d, 0xd2, //0x00007796 movb %cl, $-46(%rbp) - 0x24, 0x3f, //0x00007799 andb $63, %al - 0x0c, 0x80, //0x0000779b orb $-128, %al - 0x88, 0x45, 0xd3, //0x0000779d movb %al, $-45(%rbp) - 0x48, 0x83, 0xc3, 0x0c, //0x000077a0 addq $12, %rbx - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000077a4 movl $4, %ecx - 0x4c, 0x8d, 0x4c, 0x0d, 0xd0, //0x000077a9 leaq $-48(%rbp,%rcx), %r9 - 0x4d, 0x39, 0xd6, //0x000077ae cmpq %r10, %r14 - 0x0f, 0x82, 0x2c, 0xfe, 0xff, 0xff, //0x000077b1 jb LBB29_65 - //0x000077b7 LBB29_73 - 0x48, 0x8d, 0x4d, 0xd0, //0x000077b7 leaq $-48(%rbp), %rcx - //0x000077bb LBB29_74 - 0x4c, 0x39, 0xc9, //0x000077bb cmpq %r9, %rcx - 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x000077be jne LBB29_90 - //0x000077c4 LBB29_75 - 0x49, 0x39, 0xd8, //0x000077c4 cmpq %rbx, %r8 - 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000077c7 jbe LBB29_89 - 0x4d, 0x39, 0xd6, //0x000077cd cmpq %r10, %r14 - 0x0f, 0x82, 0x84, 0xfc, 0xff, 0xff, //0x000077d0 jb LBB29_47 - //0x000077d6 LBB29_89 - 0x49, 0x31, 0xd8, //0x000077d6 xorq %rbx, %r8 - 0x4d, 0x31, 0xd6, //0x000077d9 xorq %r10, %r14 - 0x31, 0xdb, //0x000077dc xorl %ebx, %ebx - 0x4d, 0x09, 0xc6, //0x000077de orq %r8, %r14 - 0x0f, 0x94, 0xc3, //0x000077e1 sete %bl - 0x4c, 0x8b, 0x75, 0xc8, //0x000077e4 movq $-56(%rbp), %r14 - 0xe9, 0xfb, 0xfb, 0xff, 0xff, //0x000077e8 jmp LBB29_42 - //0x000077ed LBB29_90 - 0x31, 0xdb, //0x000077ed xorl %ebx, %ebx - 0x4c, 0x8b, 0x75, 0xc8, //0x000077ef movq $-56(%rbp), %r14 - 0xe9, 0xf0, 0xfb, 0xff, 0xff, //0x000077f3 jmp LBB29_42 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077f8 .p2align 4, 0x90 - //0x00007800 LBB29_91 - 0x3c, 0x5b, //0x00007800 cmpb $91, %al - 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x00007802 jne LBB29_102 - 0x49, 0x8b, 0x46, 0x08, //0x00007808 movq $8(%r14), %rax - 0x48, 0x8b, 0x18, //0x0000780c movq (%rax), %rbx - 0x48, 0x85, 0xdb, //0x0000780f testq %rbx, %rbx - 0x0f, 0x88, 0xd8, 0x00, 0x00, 0x00, //0x00007812 js LBB29_104 - 0x49, 0x8b, 0x7d, 0x00, //0x00007818 movq (%r13), %rdi - 0x49, 0x8b, 0x75, 0x08, //0x0000781c movq $8(%r13), %rsi - 0x4c, 0x89, 0xfa, //0x00007820 movq %r15, %rdx - 0xe8, 0xf8, 0xc9, 0xff, 0xff, //0x00007823 callq _advance_ns - 0x3c, 0x5d, //0x00007828 cmpb $93, %al - 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, //0x0000782a je LBB29_100 - 0x49, 0xff, 0x0f, //0x00007830 decq (%r15) - 0x48, 0xff, 0xc3, //0x00007833 incq %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007836 .p2align 4, 0x90 - //0x00007840 LBB29_95 - 0x48, 0xff, 0xcb, //0x00007840 decq %rbx - 0x48, 0x85, 0xdb, //0x00007843 testq %rbx, %rbx - 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00007846 jle LBB29_97 - 0x4c, 0x89, 0xef, //0x0000784c movq %r13, %rdi - 0x4c, 0x89, 0xfe, //0x0000784f movq %r15, %rsi - 0xe8, 0x19, 0xed, 0xff, 0xff, //0x00007852 callq _skip_one_fast - 0x49, 0x8b, 0x7d, 0x00, //0x00007857 movq (%r13), %rdi - 0x49, 0x8b, 0x75, 0x08, //0x0000785b movq $8(%r13), %rsi - 0x4c, 0x89, 0xfa, //0x0000785f movq %r15, %rdx - 0xe8, 0xb9, 0xc9, 0xff, 0xff, //0x00007862 callq _advance_ns - 0x3c, 0x2c, //0x00007867 cmpb $44, %al - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00007869 je LBB29_95 - 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x0000786f jmp LBB29_101 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007874 .p2align 4, 0x90 - //0x00007880 LBB29_97 - 0x49, 0x83, 0xc6, 0x10, //0x00007880 addq $16, %r14 - 0x48, 0x8b, 0x45, 0xb8, //0x00007884 movq $-72(%rbp), %rax - 0x49, 0x39, 0xc6, //0x00007888 cmpq %rax, %r14 - 0x48, 0x8b, 0x4d, 0xb0, //0x0000788b movq $-80(%rbp), %rcx - 0x0f, 0x85, 0x81, 0xf8, 0xff, 0xff, //0x0000788f jne LBB29_2 - //0x00007895 LBB29_98 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007895 movl $1, %eax - 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x0000789a vmovq %rax, %xmm0 - 0xc5, 0xfa, 0x7f, 0x01, //0x0000789f vmovdqu %xmm0, (%rcx) - 0x48, 0x89, 0xcf, //0x000078a3 movq %rcx, %rdi - 0x4c, 0x89, 0xee, //0x000078a6 movq %r13, %rsi - 0x4c, 0x89, 0xfa, //0x000078a9 movq %r15, %rdx - 0x31, 0xc9, //0x000078ac xorl %ecx, %ecx - 0xe8, 0x9d, 0xd9, 0xff, 0xff, //0x000078ae callq _fsm_exec - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000078b3 jmp LBB29_103 - //0x000078b8 LBB29_99 - 0x3c, 0x7d, //0x000078b8 cmpb $125, %al - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000078ba jne LBB29_102 - //0x000078c0 LBB29_100 - 0x49, 0xff, 0x0f, //0x000078c0 decq (%r15) - 0x48, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x000078c3 movq $-33, %rax - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000078ca jmp LBB29_103 - //0x000078cf LBB29_101 - 0x3c, 0x5d, //0x000078cf cmpb $93, %al - 0x0f, 0x84, 0xe9, 0xff, 0xff, 0xff, //0x000078d1 je LBB29_100 - //0x000078d7 LBB29_102 - 0x49, 0xff, 0x0f, //0x000078d7 decq (%r15) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000078da movq $-2, %rax - //0x000078e1 LBB29_103 - 0x48, 0x83, 0xc4, 0x28, //0x000078e1 addq $40, %rsp - 0x5b, //0x000078e5 popq %rbx - 0x41, 0x5c, //0x000078e6 popq %r12 - 0x41, 0x5d, //0x000078e8 popq %r13 - 0x41, 0x5e, //0x000078ea popq %r14 - 0x41, 0x5f, //0x000078ec popq %r15 - 0x5d, //0x000078ee popq %rbp - 0xc3, //0x000078ef retq - //0x000078f0 LBB29_104 - 0x49, 0xff, 0x0f, //0x000078f0 decq (%r15) - 0x48, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x000078f3 movq $-34, %rax - 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x000078fa jmp LBB29_103 - //0x000078ff LBB29_105 - 0x49, 0x8b, 0x45, 0x08, //0x000078ff movq $8(%r13), %rax - 0x49, 0x89, 0x07, //0x00007903 movq %rax, (%r15) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007906 movq $-1, %rax - 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x0000790d jmp LBB29_103 - //0x00007912 LBB29_106 - 0x48, 0x83, 0xc3, 0x02, //0x00007912 addq $2, %rbx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00007916 movq $-2, %rax - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x0000791d jmp LBB29_109 - //0x00007922 LBB29_107 - 0x48, 0xff, 0xc3, //0x00007922 incq %rbx - 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00007925 movq $-3, %rax - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000792c jmp LBB29_109 - //0x00007931 LBB29_108 - 0x48, 0xff, 0xc3, //0x00007931 incq %rbx - //0x00007934 LBB29_109 - 0x48, 0x29, 0xfb, //0x00007934 subq %rdi, %rbx - 0x49, 0x89, 0x1f, //0x00007937 movq %rbx, (%r15) - 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x0000793a jmp LBB29_103 - //0x0000793f LBB29_110 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000793f movq $-2, %rax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00007946 jmp LBB29_112 - //0x0000794b LBB29_111 - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000794b movq $-4, %rax - //0x00007952 LBB29_112 - 0x4c, 0x89, 0xcb, //0x00007952 movq %r9, %rbx - 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00007955 jmp LBB29_109 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000795a .p2align 4, 0x90 - //0x00007960 _validate_utf8 - 0x55, //0x00007960 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007961 movq %rsp, %rbp - 0x41, 0x57, //0x00007964 pushq %r15 - 0x41, 0x56, //0x00007966 pushq %r14 - 0x41, 0x54, //0x00007968 pushq %r12 - 0x53, //0x0000796a pushq %rbx - 0x50, //0x0000796b pushq %rax - 0x4c, 0x8b, 0x17, //0x0000796c movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x0000796f movq $8(%rdi), %r11 - 0x48, 0x8b, 0x0e, //0x00007973 movq (%rsi), %rcx - 0x4c, 0x01, 0xd1, //0x00007976 addq %r10, %rcx - 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x00007979 leaq $-3(%r10,%r11), %r8 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000797e jmp LBB30_1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007983 .p2align 4, 0x90 - //0x00007990 LBB30_19 - 0x48, 0x01, 0xd9, //0x00007990 addq %rbx, %rcx - //0x00007993 LBB30_1 - 0x4c, 0x39, 0xc1, //0x00007993 cmpq %r8, %rcx - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007996 jae LBB30_2 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000799c movl $1, %ebx - 0x80, 0x39, 0x00, //0x000079a1 cmpb $0, (%rcx) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000079a4 jns LBB30_19 - 0x8b, 0x01, //0x000079aa movl (%rcx), %eax - 0x89, 0xc7, //0x000079ac movl %eax, %edi - 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x000079ae andl $12632304, %edi - 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x000079b4 cmpl $8421600, %edi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000079ba jne LBB30_10 - 0x89, 0xc7, //0x000079c0 movl %eax, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000079c2 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000079c8 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000079ce je LBB30_10 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000079d4 movl $3, %ebx - 0x85, 0xff, //0x000079d9 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000079db jne LBB30_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000079e1 .p2align 4, 0x90 - //0x000079f0 LBB30_10 - 0x89, 0xc7, //0x000079f0 movl %eax, %edi - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000079f2 andl $49376, %edi - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000079f8 cmpl $32960, %edi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000079fe jne LBB30_12 - 0x89, 0xc7, //0x00007a04 movl %eax, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007a06 movl $2, %ebx - 0x83, 0xe7, 0x1e, //0x00007a0b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x00007a0e jne LBB30_19 - //0x00007a14 LBB30_12 - 0x89, 0xc7, //0x00007a14 movl %eax, %edi - 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007a16 andl $-1061109512, %edi - 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x00007a1c cmpl $-2139062032, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007a22 jne LBB30_16 - 0x89, 0xc7, //0x00007a28 movl %eax, %edi - 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x00007a2a andl $12295, %edi - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007a30 je LBB30_16 - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007a36 movl $4, %ebx - 0xa8, 0x04, //0x00007a3b testb $4, %al - 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x00007a3d je LBB30_19 - 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007a43 andl $12291, %eax - 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007a48 je LBB30_19 - //0x00007a4e LBB30_16 - 0x48, 0x89, 0xcf, //0x00007a4e movq %rcx, %rdi - 0x4c, 0x29, 0xd7, //0x00007a51 subq %r10, %rdi - 0x48, 0x8b, 0x1a, //0x00007a54 movq (%rdx), %rbx - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007a57 cmpq $4096, %rbx - 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x00007a5e jae LBB30_17 - 0x48, 0x63, 0xc7, //0x00007a64 movslq %edi, %rax - 0x48, 0x8d, 0x7b, 0x01, //0x00007a67 leaq $1(%rbx), %rdi - 0x48, 0x89, 0x3a, //0x00007a6b movq %rdi, (%rdx) - 0x48, 0x89, 0x44, 0xda, 0x08, //0x00007a6e movq %rax, $8(%rdx,%rbx,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007a73 movl $1, %ebx - 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007a78 jmp LBB30_19 - //0x00007a7d LBB30_2 - 0x4d, 0x01, 0xd3, //0x00007a7d addq %r10, %r11 - 0x4c, 0x39, 0xd9, //0x00007a80 cmpq %r11, %rcx - 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x00007a83 jae LBB30_36 - 0x4c, 0x8d, 0x45, 0xdc, //0x00007a89 leaq $-36(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xda, //0x00007a8d leaq $-38(%rbp), %r9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007a91 jmp LBB30_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a96 .p2align 4, 0x90 - //0x00007aa0 LBB30_5 - 0x48, 0xff, 0xc1, //0x00007aa0 incq %rcx - 0x4c, 0x39, 0xd9, //0x00007aa3 cmpq %r11, %rcx - 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007aa6 jae LBB30_36 - //0x00007aac LBB30_4 - 0x80, 0x39, 0x00, //0x00007aac cmpb $0, (%rcx) - 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x00007aaf jns LBB30_5 - 0xc6, 0x45, 0xdc, 0x00, //0x00007ab5 movb $0, $-36(%rbp) - 0xc6, 0x45, 0xda, 0x00, //0x00007ab9 movb $0, $-38(%rbp) - 0x4c, 0x89, 0xdb, //0x00007abd movq %r11, %rbx - 0x48, 0x29, 0xcb, //0x00007ac0 subq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00007ac3 cmpq $2, %rbx - 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007ac7 jb LBB30_21 - 0x44, 0x0f, 0xb6, 0x21, //0x00007acd movzbl (%rcx), %r12d - 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007ad1 movzbl $1(%rcx), %r14d - 0x44, 0x88, 0x65, 0xdc, //0x00007ad6 movb %r12b, $-36(%rbp) - 0x4c, 0x8d, 0x79, 0x02, //0x00007ada leaq $2(%rcx), %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x00007ade addq $-2, %rbx - 0x4c, 0x89, 0xcf, //0x00007ae2 movq %r9, %rdi - 0x48, 0x85, 0xdb, //0x00007ae5 testq %rbx, %rbx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007ae8 je LBB30_24 - //0x00007aee LBB30_25 - 0x41, 0x0f, 0xb6, 0x07, //0x00007aee movzbl (%r15), %eax - 0x88, 0x07, //0x00007af2 movb %al, (%rdi) - 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007af4 movzbl $-36(%rbp), %r12d - 0x0f, 0xb6, 0x7d, 0xda, //0x00007af9 movzbl $-38(%rbp), %edi - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007afd jmp LBB30_26 - //0x00007b02 LBB30_21 - 0x45, 0x31, 0xe4, //0x00007b02 xorl %r12d, %r12d - 0x45, 0x31, 0xf6, //0x00007b05 xorl %r14d, %r14d - 0x4c, 0x89, 0xc7, //0x00007b08 movq %r8, %rdi - 0x49, 0x89, 0xcf, //0x00007b0b movq %rcx, %r15 - 0x48, 0x85, 0xdb, //0x00007b0e testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007b11 jne LBB30_25 - //0x00007b17 LBB30_24 - 0x31, 0xff, //0x00007b17 xorl %edi, %edi - //0x00007b19 LBB30_26 - 0x40, 0x0f, 0xb6, 0xc7, //0x00007b19 movzbl %dil, %eax - 0xc1, 0xe0, 0x10, //0x00007b1d shll $16, %eax - 0x41, 0x0f, 0xb6, 0xde, //0x00007b20 movzbl %r14b, %ebx - 0xc1, 0xe3, 0x08, //0x00007b24 shll $8, %ebx - 0x41, 0x0f, 0xb6, 0xfc, //0x00007b27 movzbl %r12b, %edi - 0x09, 0xdf, //0x00007b2b orl %ebx, %edi - 0x09, 0xf8, //0x00007b2d orl %edi, %eax - 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007b2f andl $12632304, %eax - 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007b34 cmpl $8421600, %eax - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007b39 jne LBB30_29 - 0x89, 0xf8, //0x00007b3f movl %edi, %eax - 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007b41 andl $8207, %eax - 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007b46 cmpl $8205, %eax - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00007b4b je LBB30_29 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007b51 movl $3, %ebx - 0x85, 0xc0, //0x00007b56 testl %eax, %eax - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007b58 jne LBB30_34 - 0x90, 0x90, //0x00007b5e .p2align 4, 0x90 - //0x00007b60 LBB30_29 - 0x41, 0xf6, 0xc4, 0x1e, //0x00007b60 testb $30, %r12b - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007b64 je LBB30_31 - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007b6a andl $49376, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007b70 movl $2, %ebx - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007b75 cmpl $32960, %edi - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00007b7b jne LBB30_31 - //0x00007b81 LBB30_34 - 0x48, 0x01, 0xd9, //0x00007b81 addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x00007b84 cmpq %r11, %rcx - 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007b87 jb LBB30_4 - 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00007b8d jmp LBB30_36 - //0x00007b92 LBB30_31 - 0x48, 0x89, 0xc8, //0x00007b92 movq %rcx, %rax - 0x4c, 0x29, 0xd0, //0x00007b95 subq %r10, %rax - 0x48, 0x8b, 0x3a, //0x00007b98 movq (%rdx), %rdi - 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x00007b9b cmpq $4096, %rdi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007ba2 jae LBB30_32 - 0x48, 0x98, //0x00007ba8 cltq - 0x48, 0x8d, 0x5f, 0x01, //0x00007baa leaq $1(%rdi), %rbx - 0x48, 0x89, 0x1a, //0x00007bae movq %rbx, (%rdx) - 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007bb1 movq %rax, $8(%rdx,%rdi,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007bb6 movl $1, %ebx - 0x48, 0x01, 0xd9, //0x00007bbb addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x00007bbe cmpq %r11, %rcx - 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007bc1 jb LBB30_4 - //0x00007bc7 LBB30_36 - 0x4c, 0x29, 0xd1, //0x00007bc7 subq %r10, %rcx - 0x48, 0x89, 0x0e, //0x00007bca movq %rcx, (%rsi) - 0x31, 0xc0, //0x00007bcd xorl %eax, %eax - //0x00007bcf LBB30_37 - 0x48, 0x83, 0xc4, 0x08, //0x00007bcf addq $8, %rsp - 0x5b, //0x00007bd3 popq %rbx - 0x41, 0x5c, //0x00007bd4 popq %r12 - 0x41, 0x5e, //0x00007bd6 popq %r14 - 0x41, 0x5f, //0x00007bd8 popq %r15 - 0x5d, //0x00007bda popq %rbp - 0xc3, //0x00007bdb retq - //0x00007bdc LBB30_32 - 0x48, 0x89, 0x06, //0x00007bdc movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007bdf movq $-1, %rax - 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007be6 jmp LBB30_37 - //0x00007beb LBB30_17 - 0x48, 0x89, 0x3e, //0x00007beb movq %rdi, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007bee movq $-1, %rax - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007bf5 jmp LBB30_37 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bfa .p2align 5, 0x00 - //0x00007c00 LCPI31_0 - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007c00 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007c10 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - //0x00007c20 LCPI31_1 - 0x02, //0x00007c20 .byte 2 - 0x02, //0x00007c21 .byte 2 - 0x02, //0x00007c22 .byte 2 - 0x02, //0x00007c23 .byte 2 - 0x02, //0x00007c24 .byte 2 - 0x02, //0x00007c25 .byte 2 - 0x02, //0x00007c26 .byte 2 - 0x02, //0x00007c27 .byte 2 - 0x80, //0x00007c28 .byte 128 - 0x80, //0x00007c29 .byte 128 - 0x80, //0x00007c2a .byte 128 - 0x80, //0x00007c2b .byte 128 - 0x21, //0x00007c2c .byte 33 - 0x01, //0x00007c2d .byte 1 - 0x15, //0x00007c2e .byte 21 - 0x49, //0x00007c2f .byte 73 - 0x02, //0x00007c30 .byte 2 - 0x02, //0x00007c31 .byte 2 - 0x02, //0x00007c32 .byte 2 - 0x02, //0x00007c33 .byte 2 - 0x02, //0x00007c34 .byte 2 - 0x02, //0x00007c35 .byte 2 - 0x02, //0x00007c36 .byte 2 - 0x02, //0x00007c37 .byte 2 - 0x80, //0x00007c38 .byte 128 - 0x80, //0x00007c39 .byte 128 - 0x80, //0x00007c3a .byte 128 - 0x80, //0x00007c3b .byte 128 - 0x21, //0x00007c3c .byte 33 - 0x01, //0x00007c3d .byte 1 - 0x15, //0x00007c3e .byte 21 - 0x49, //0x00007c3f .byte 73 - //0x00007c40 LCPI31_2 - 0xe7, //0x00007c40 .byte 231 - 0xa3, //0x00007c41 .byte 163 - 0x83, //0x00007c42 .byte 131 - 0x83, //0x00007c43 .byte 131 - 0x8b, //0x00007c44 .byte 139 - 0xcb, //0x00007c45 .byte 203 - 0xcb, //0x00007c46 .byte 203 - 0xcb, //0x00007c47 .byte 203 - 0xcb, //0x00007c48 .byte 203 - 0xcb, //0x00007c49 .byte 203 - 0xcb, //0x00007c4a .byte 203 - 0xcb, //0x00007c4b .byte 203 - 0xcb, //0x00007c4c .byte 203 - 0xdb, //0x00007c4d .byte 219 - 0xcb, //0x00007c4e .byte 203 - 0xcb, //0x00007c4f .byte 203 - 0xe7, //0x00007c50 .byte 231 - 0xa3, //0x00007c51 .byte 163 - 0x83, //0x00007c52 .byte 131 - 0x83, //0x00007c53 .byte 131 - 0x8b, //0x00007c54 .byte 139 - 0xcb, //0x00007c55 .byte 203 - 0xcb, //0x00007c56 .byte 203 - 0xcb, //0x00007c57 .byte 203 - 0xcb, //0x00007c58 .byte 203 - 0xcb, //0x00007c59 .byte 203 - 0xcb, //0x00007c5a .byte 203 - 0xcb, //0x00007c5b .byte 203 - 0xcb, //0x00007c5c .byte 203 - 0xdb, //0x00007c5d .byte 219 - 0xcb, //0x00007c5e .byte 203 - 0xcb, //0x00007c5f .byte 203 - //0x00007c60 LCPI31_3 - 0x01, //0x00007c60 .byte 1 - 0x01, //0x00007c61 .byte 1 - 0x01, //0x00007c62 .byte 1 - 0x01, //0x00007c63 .byte 1 - 0x01, //0x00007c64 .byte 1 - 0x01, //0x00007c65 .byte 1 - 0x01, //0x00007c66 .byte 1 - 0x01, //0x00007c67 .byte 1 - 0xe6, //0x00007c68 .byte 230 - 0xae, //0x00007c69 .byte 174 - 0xba, //0x00007c6a .byte 186 - 0xba, //0x00007c6b .byte 186 - 0x01, //0x00007c6c .byte 1 - 0x01, //0x00007c6d .byte 1 - 0x01, //0x00007c6e .byte 1 - 0x01, //0x00007c6f .byte 1 - 0x01, //0x00007c70 .byte 1 - 0x01, //0x00007c71 .byte 1 - 0x01, //0x00007c72 .byte 1 - 0x01, //0x00007c73 .byte 1 - 0x01, //0x00007c74 .byte 1 - 0x01, //0x00007c75 .byte 1 - 0x01, //0x00007c76 .byte 1 - 0x01, //0x00007c77 .byte 1 - 0xe6, //0x00007c78 .byte 230 - 0xae, //0x00007c79 .byte 174 - 0xba, //0x00007c7a .byte 186 - 0xba, //0x00007c7b .byte 186 - 0x01, //0x00007c7c .byte 1 - 0x01, //0x00007c7d .byte 1 - 0x01, //0x00007c7e .byte 1 - 0x01, //0x00007c7f .byte 1 - //0x00007c80 LCPI31_4 - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c80 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c90 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' - //0x00007ca0 LCPI31_5 - 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007ca0 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' - 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007cb0 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' - //0x00007cc0 LCPI31_7 - 0xff, //0x00007cc0 .byte 255 - 0xff, //0x00007cc1 .byte 255 - 0xff, //0x00007cc2 .byte 255 - 0xff, //0x00007cc3 .byte 255 - 0xff, //0x00007cc4 .byte 255 - 0xff, //0x00007cc5 .byte 255 - 0xff, //0x00007cc6 .byte 255 - 0xff, //0x00007cc7 .byte 255 - 0xff, //0x00007cc8 .byte 255 - 0xff, //0x00007cc9 .byte 255 - 0xff, //0x00007cca .byte 255 - 0xff, //0x00007ccb .byte 255 - 0xff, //0x00007ccc .byte 255 - 0xff, //0x00007ccd .byte 255 - 0xff, //0x00007cce .byte 255 - 0xff, //0x00007ccf .byte 255 - 0xff, //0x00007cd0 .byte 255 - 0xff, //0x00007cd1 .byte 255 - 0xff, //0x00007cd2 .byte 255 - 0xff, //0x00007cd3 .byte 255 - 0xff, //0x00007cd4 .byte 255 - 0xff, //0x00007cd5 .byte 255 - 0xff, //0x00007cd6 .byte 255 - 0xff, //0x00007cd7 .byte 255 - 0xff, //0x00007cd8 .byte 255 - 0xff, //0x00007cd9 .byte 255 - 0xff, //0x00007cda .byte 255 - 0xff, //0x00007cdb .byte 255 - 0xff, //0x00007cdc .byte 255 - 0xef, //0x00007cdd .byte 239 - 0xdf, //0x00007cde .byte 223 - 0xbf, //0x00007cdf .byte 191 - //0x00007ce0 LCPI31_8 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00007d00 .p2align 3, 0x00 - //0x00007d00 LCPI31_6 - 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //0x00007d00 .quad -9187201950435737472 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d08 .p2align 4, 0x90 - //0x00007d10 _validate_utf8_fast - 0x55, //0x00007d10 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007d11 movq %rsp, %rbp - 0x53, //0x00007d14 pushq %rbx - 0x48, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, //0x00007d15 subq $160, %rsp - 0x48, 0x8b, 0x47, 0x08, //0x00007d1c movq $8(%rdi), %rax - 0x48, 0x85, 0xc0, //0x00007d20 testq %rax, %rax - 0x0f, 0x84, 0xc3, 0x07, 0x00, 0x00, //0x00007d23 je LBB31_12 - 0x4c, 0x8b, 0x07, //0x00007d29 movq (%rdi), %r8 - 0x4d, 0x8d, 0x0c, 0x00, //0x00007d2c leaq (%r8,%rax), %r9 - 0x49, 0x8d, 0x79, 0x80, //0x00007d30 leaq $-128(%r9), %rdi - 0xc5, 0xf1, 0xef, 0xc9, //0x00007d34 vpxor %xmm1, %xmm1, %xmm1 - 0xc5, 0xe9, 0xef, 0xd2, //0x00007d38 vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf9, 0xef, 0xc0, //0x00007d3c vpxor %xmm0, %xmm0, %xmm0 - 0x4c, 0x89, 0xc2, //0x00007d40 movq %r8, %rdx - 0x4c, 0x39, 0xc7, //0x00007d43 cmpq %r8, %rdi - 0x0f, 0x86, 0x70, 0x03, 0x00, 0x00, //0x00007d46 jbe LBB31_14 - 0x48, 0x8d, 0x50, 0xff, //0x00007d4c leaq $-1(%rax), %rdx - 0xc5, 0xfd, 0x6f, 0x25, 0xa8, 0xfe, 0xff, 0xff, //0x00007d50 vmovdqa $-344(%rip), %ymm4 /* LCPI31_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xe0, 0xfe, 0xff, 0xff, //0x00007d58 vmovdqa $-288(%rip), %ymm6 /* LCPI31_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x3d, 0xf8, 0xfe, 0xff, 0xff, //0x00007d60 vmovdqa $-264(%rip), %ymm7 /* LCPI31_3+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x00007d68 vmovdqa $-240(%rip), %ymm8 /* LCPI31_4+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x0d, 0x28, 0xff, 0xff, 0xff, //0x00007d70 vmovdqa $-216(%rip), %ymm9 /* LCPI31_5+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x15, 0x40, 0xff, 0xff, 0xff, //0x00007d78 vmovdqa $-192(%rip), %ymm10 /* LCPI31_7+0(%rip) */ - 0x4c, 0x89, 0xc1, //0x00007d80 movq %r8, %rcx - 0xc5, 0xf9, 0xef, 0xc0, //0x00007d83 vpxor %xmm0, %xmm0, %xmm0 - 0xc5, 0xe9, 0xef, 0xd2, //0x00007d87 vpxor %xmm2, %xmm2, %xmm2 - 0xc5, 0xf1, 0xef, 0xc9, //0x00007d8b vpxor %xmm1, %xmm1, %xmm1 - 0x90, //0x00007d8f .p2align 4, 0x90 - //0x00007d90 LBB31_3 - 0xc5, 0x7e, 0x6f, 0x39, //0x00007d90 vmovdqu (%rcx), %ymm15 - 0xc5, 0x7e, 0x6f, 0x69, 0x20, //0x00007d94 vmovdqu $32(%rcx), %ymm13 - 0xc5, 0x7e, 0x6f, 0x61, 0x40, //0x00007d99 vmovdqu $64(%rcx), %ymm12 - 0xc5, 0x7e, 0x6f, 0x59, 0x60, //0x00007d9e vmovdqu $96(%rcx), %ymm11 - 0xc4, 0xc1, 0x15, 0xeb, 0xdf, //0x00007da3 vpor %ymm15, %ymm13, %ymm3 - 0xc4, 0x41, 0x25, 0xeb, 0xf4, //0x00007da8 vpor %ymm12, %ymm11, %ymm14 - 0xc5, 0x8d, 0xeb, 0xeb, //0x00007dad vpor %ymm3, %ymm14, %ymm5 - 0xc5, 0xfd, 0xd7, 0xf5, //0x00007db1 vpmovmskb %ymm5, %esi - 0x85, 0xf6, //0x00007db5 testl %esi, %esi - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00007db7 jne LBB31_6 - 0xc5, 0xf5, 0xeb, 0xc0, //0x00007dbd vpor %ymm0, %ymm1, %ymm0 - //0x00007dc1 LBB31_5 - 0x48, 0x83, 0xe9, 0x80, //0x00007dc1 subq $-128, %rcx - 0x48, 0x39, 0xf9, //0x00007dc5 cmpq %rdi, %rcx - 0x0f, 0x82, 0xc2, 0xff, 0xff, 0xff, //0x00007dc8 jb LBB31_3 - 0xe9, 0xe2, 0x02, 0x00, 0x00, //0x00007dce jmp LBB31_13 - //0x00007dd3 LBB31_6 - 0xc5, 0xfd, 0xd7, 0xf3, //0x00007dd3 vpmovmskb %ymm3, %esi - 0x85, 0xf6, //0x00007dd7 testl %esi, %esi - 0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x00007dd9 jne LBB31_9 - 0xc5, 0xf5, 0xeb, 0xc0, //0x00007ddf vpor %ymm0, %ymm1, %ymm0 - 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00007de3 vperm2i128 $33, %ymm12, %ymm2, %ymm1 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00007de9 vpalignr $15, %ymm1, %ymm12, %ymm2 - 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007def vpsrlw $4, %ymm2, %ymm3 - 0xc5, 0xe5, 0xdb, 0xdc, //0x00007df4 vpand %ymm4, %ymm3, %ymm3 - 0xc5, 0x7d, 0x6f, 0x35, 0x20, 0xfe, 0xff, 0xff, //0x00007df8 vmovdqa $-480(%rip), %ymm14 /* LCPI31_1+0(%rip) */ - 0xc4, 0xe2, 0x0d, 0x00, 0xdb, //0x00007e00 vpshufb %ymm3, %ymm14, %ymm3 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007e05 vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e09 vpshufb %ymm2, %ymm6, %ymm2 - 0xc4, 0xc1, 0x55, 0x71, 0xd4, 0x04, //0x00007e0e vpsrlw $4, %ymm12, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007e14 vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007e18 vpshufb %ymm5, %ymm7, %ymm5 - 0xc5, 0xed, 0xdb, 0xd5, //0x00007e1d vpand %ymm5, %ymm2, %ymm2 - 0xc5, 0xe5, 0xdb, 0xd2, //0x00007e21 vpand %ymm2, %ymm3, %ymm2 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd9, 0x0e, //0x00007e25 vpalignr $14, %ymm1, %ymm12, %ymm3 - 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00007e2b vpalignr $13, %ymm1, %ymm12, %ymm1 - 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007e31 vpsubusb %ymm8, %ymm3, %ymm3 - 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007e36 vpsubusb %ymm9, %ymm1, %ymm1 - 0xc5, 0xf5, 0xeb, 0xcb, //0x00007e3b vpor %ymm3, %ymm1, %ymm1 - 0xc4, 0x41, 0x11, 0xef, 0xed, //0x00007e3f vpxor %xmm13, %xmm13, %xmm13 - 0xc5, 0x95, 0x74, 0xc9, //0x00007e44 vpcmpeqb %ymm1, %ymm13, %ymm1 - 0xc4, 0xe2, 0x7d, 0x59, 0x1d, 0xaf, 0xfe, 0xff, 0xff, //0x00007e48 vpbroadcastq $-337(%rip), %ymm3 /* LCPI31_6+0(%rip) */ - 0xc5, 0xf5, 0xdf, 0xcb, //0x00007e51 vpandn %ymm3, %ymm1, %ymm1 - 0xc5, 0xf5, 0xef, 0xca, //0x00007e55 vpxor %ymm2, %ymm1, %ymm1 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00007e59 vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xc3, 0x1d, 0x46, 0xcb, 0x21, //0x00007e5d vperm2i128 $33, %ymm11, %ymm12, %ymm1 - 0xc4, 0xe3, 0x25, 0x0f, 0xd1, 0x0f, //0x00007e63 vpalignr $15, %ymm1, %ymm11, %ymm2 - 0xc5, 0xd5, 0x71, 0xd2, 0x04, //0x00007e69 vpsrlw $4, %ymm2, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007e6e vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x0d, 0x00, 0xed, //0x00007e72 vpshufb %ymm5, %ymm14, %ymm5 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007e77 vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e7b vpshufb %ymm2, %ymm6, %ymm2 - 0xc4, 0xc1, 0x1d, 0x71, 0xd3, 0x04, //0x00007e80 vpsrlw $4, %ymm11, %ymm12 - 0xc5, 0x1d, 0xdb, 0xe4, //0x00007e86 vpand %ymm4, %ymm12, %ymm12 - 0xc4, 0x42, 0x45, 0x00, 0xe4, //0x00007e8a vpshufb %ymm12, %ymm7, %ymm12 - 0xc5, 0x9d, 0xdb, 0xd2, //0x00007e8f vpand %ymm2, %ymm12, %ymm2 - 0xc5, 0xd5, 0xdb, 0xd2, //0x00007e93 vpand %ymm2, %ymm5, %ymm2 - 0xc4, 0xe3, 0x25, 0x0f, 0xe9, 0x0e, //0x00007e97 vpalignr $14, %ymm1, %ymm11, %ymm5 - 0xc4, 0xe3, 0x25, 0x0f, 0xc9, 0x0d, //0x00007e9d vpalignr $13, %ymm1, %ymm11, %ymm1 - 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007ea3 vpsubusb %ymm8, %ymm5, %ymm5 - 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007ea8 vpsubusb %ymm9, %ymm1, %ymm1 - 0xc5, 0xf5, 0xeb, 0xcd, //0x00007ead vpor %ymm5, %ymm1, %ymm1 - 0xc5, 0x95, 0x74, 0xc9, //0x00007eb1 vpcmpeqb %ymm1, %ymm13, %ymm1 - 0xc5, 0xf5, 0xdf, 0xcb, //0x00007eb5 vpandn %ymm3, %ymm1, %ymm1 - 0xc5, 0xf5, 0xef, 0xca, //0x00007eb9 vpxor %ymm2, %ymm1, %ymm1 - //0x00007ebd LBB31_8 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00007ebd vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00007ec1 vpsubusb %ymm10, %ymm11, %ymm1 - 0xc5, 0x7d, 0x7f, 0xda, //0x00007ec6 vmovdqa %ymm11, %ymm2 - 0xe9, 0xf2, 0xfe, 0xff, 0xff, //0x00007eca jmp LBB31_5 - //0x00007ecf LBB31_9 - 0xc4, 0xc3, 0x6d, 0x46, 0xcf, 0x21, //0x00007ecf vperm2i128 $33, %ymm15, %ymm2, %ymm1 - 0xc4, 0xe3, 0x05, 0x0f, 0xd1, 0x0f, //0x00007ed5 vpalignr $15, %ymm1, %ymm15, %ymm2 - 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007edb vpsrlw $4, %ymm2, %ymm3 - 0xc5, 0xe5, 0xdb, 0xdc, //0x00007ee0 vpand %ymm4, %ymm3, %ymm3 - 0xc5, 0xfd, 0x6f, 0x2d, 0x34, 0xfd, 0xff, 0xff, //0x00007ee4 vmovdqa $-716(%rip), %ymm5 /* LCPI31_1+0(%rip) */ - 0xc4, 0xe2, 0x55, 0x00, 0xdb, //0x00007eec vpshufb %ymm3, %ymm5, %ymm3 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007ef1 vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007ef5 vpshufb %ymm2, %ymm6, %ymm2 - 0xc4, 0xc1, 0x55, 0x71, 0xd7, 0x04, //0x00007efa vpsrlw $4, %ymm15, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007f00 vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007f04 vpshufb %ymm5, %ymm7, %ymm5 - 0xc5, 0xed, 0xdb, 0xd5, //0x00007f09 vpand %ymm5, %ymm2, %ymm2 - 0xc5, 0xe5, 0xdb, 0xd2, //0x00007f0d vpand %ymm2, %ymm3, %ymm2 - 0xc4, 0xe3, 0x05, 0x0f, 0xd9, 0x0e, //0x00007f11 vpalignr $14, %ymm1, %ymm15, %ymm3 - 0xc4, 0xe3, 0x05, 0x0f, 0xc9, 0x0d, //0x00007f17 vpalignr $13, %ymm1, %ymm15, %ymm1 - 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007f1d vpsubusb %ymm8, %ymm3, %ymm3 - 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007f22 vpsubusb %ymm9, %ymm1, %ymm1 - 0xc5, 0xf5, 0xeb, 0xcb, //0x00007f27 vpor %ymm3, %ymm1, %ymm1 - 0xc5, 0xe1, 0xef, 0xdb, //0x00007f2b vpxor %xmm3, %xmm3, %xmm3 - 0xc5, 0xf5, 0x74, 0xdb, //0x00007f2f vpcmpeqb %ymm3, %ymm1, %ymm3 - 0xc4, 0xe2, 0x7d, 0x59, 0x0d, 0xc4, 0xfd, 0xff, 0xff, //0x00007f33 vpbroadcastq $-572(%rip), %ymm1 /* LCPI31_6+0(%rip) */ - 0xc5, 0xe5, 0xdf, 0xd9, //0x00007f3c vpandn %ymm1, %ymm3, %ymm3 - 0xc5, 0xe5, 0xef, 0xd2, //0x00007f40 vpxor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfe, 0x7f, 0x54, 0x24, 0x60, //0x00007f44 vmovdqu %ymm2, $96(%rsp) - 0xc4, 0xc3, 0x05, 0x46, 0xdd, 0x21, //0x00007f4a vperm2i128 $33, %ymm13, %ymm15, %ymm3 - 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0f, //0x00007f50 vpalignr $15, %ymm3, %ymm13, %ymm5 - 0xc5, 0x85, 0x71, 0xd5, 0x04, //0x00007f56 vpsrlw $4, %ymm5, %ymm15 - 0xc5, 0x05, 0xdb, 0xfc, //0x00007f5b vpand %ymm4, %ymm15, %ymm15 - 0xc5, 0xfd, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x00007f5f vmovdqa $-839(%rip), %ymm2 /* LCPI31_1+0(%rip) */ - 0xc4, 0x42, 0x6d, 0x00, 0xff, //0x00007f67 vpshufb %ymm15, %ymm2, %ymm15 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007f6c vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007f70 vpshufb %ymm5, %ymm6, %ymm5 - 0xc4, 0xc1, 0x6d, 0x71, 0xd5, 0x04, //0x00007f75 vpsrlw $4, %ymm13, %ymm2 - 0xc5, 0xed, 0xdb, 0xd4, //0x00007f7b vpand %ymm4, %ymm2, %ymm2 - 0xc4, 0xe2, 0x45, 0x00, 0xd2, //0x00007f7f vpshufb %ymm2, %ymm7, %ymm2 - 0xc5, 0xd5, 0xdb, 0xd2, //0x00007f84 vpand %ymm2, %ymm5, %ymm2 - 0xc5, 0x85, 0xdb, 0xd2, //0x00007f88 vpand %ymm2, %ymm15, %ymm2 - 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0e, //0x00007f8c vpalignr $14, %ymm3, %ymm13, %ymm5 - 0xc4, 0xe3, 0x15, 0x0f, 0xdb, 0x0d, //0x00007f92 vpalignr $13, %ymm3, %ymm13, %ymm3 - 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007f98 vpsubusb %ymm8, %ymm5, %ymm5 - 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00007f9d vpsubusb %ymm9, %ymm3, %ymm3 - 0xc5, 0xe5, 0xeb, 0xdd, //0x00007fa2 vpor %ymm5, %ymm3, %ymm3 - 0xc5, 0xe5, 0x74, 0x1d, 0x32, 0xfd, 0xff, 0xff, //0x00007fa6 vpcmpeqb $-718(%rip), %ymm3, %ymm3 /* LCPI31_8+0(%rip) */ - 0xc5, 0xe5, 0xdf, 0xd9, //0x00007fae vpandn %ymm1, %ymm3, %ymm3 - 0xc5, 0xe5, 0xef, 0xd2, //0x00007fb2 vpxor %ymm2, %ymm3, %ymm2 - 0xc5, 0xfd, 0xeb, 0x44, 0x24, 0x60, //0x00007fb6 vpor $96(%rsp), %ymm0, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc2, //0x00007fbc vpor %ymm2, %ymm0, %ymm0 - 0xc4, 0xc1, 0x7d, 0xd7, 0xf6, //0x00007fc0 vpmovmskb %ymm14, %esi - 0x85, 0xf6, //0x00007fc5 testl %esi, %esi - 0x0f, 0x84, 0xd6, 0x00, 0x00, 0x00, //0x00007fc7 je LBB31_11 - 0xc4, 0xc3, 0x15, 0x46, 0xd4, 0x21, //0x00007fcd vperm2i128 $33, %ymm12, %ymm13, %ymm2 - 0xc4, 0xe3, 0x1d, 0x0f, 0xda, 0x0f, //0x00007fd3 vpalignr $15, %ymm2, %ymm12, %ymm3 - 0xc5, 0xd5, 0x71, 0xd3, 0x04, //0x00007fd9 vpsrlw $4, %ymm3, %ymm5 - 0xc5, 0xd5, 0xdb, 0xec, //0x00007fde vpand %ymm4, %ymm5, %ymm5 - 0xc5, 0x7d, 0x6f, 0x3d, 0x36, 0xfc, 0xff, 0xff, //0x00007fe2 vmovdqa $-970(%rip), %ymm15 /* LCPI31_1+0(%rip) */ - 0xc4, 0xe2, 0x05, 0x00, 0xed, //0x00007fea vpshufb %ymm5, %ymm15, %ymm5 - 0xc5, 0xe5, 0xdb, 0xdc, //0x00007fef vpand %ymm4, %ymm3, %ymm3 - 0xc4, 0xe2, 0x4d, 0x00, 0xdb, //0x00007ff3 vpshufb %ymm3, %ymm6, %ymm3 - 0xc4, 0xc1, 0x15, 0x71, 0xd4, 0x04, //0x00007ff8 vpsrlw $4, %ymm12, %ymm13 - 0xc5, 0x15, 0xdb, 0xec, //0x00007ffe vpand %ymm4, %ymm13, %ymm13 - 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008002 vpshufb %ymm13, %ymm7, %ymm13 - 0xc5, 0x95, 0xdb, 0xdb, //0x00008007 vpand %ymm3, %ymm13, %ymm3 - 0xc5, 0xd5, 0xdb, 0xdb, //0x0000800b vpand %ymm3, %ymm5, %ymm3 - 0xc4, 0xe3, 0x1d, 0x0f, 0xea, 0x0e, //0x0000800f vpalignr $14, %ymm2, %ymm12, %ymm5 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd2, 0x0d, //0x00008015 vpalignr $13, %ymm2, %ymm12, %ymm2 - 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x0000801b vpsubusb %ymm8, %ymm5, %ymm5 - 0xc4, 0xc1, 0x6d, 0xd8, 0xd1, //0x00008020 vpsubusb %ymm9, %ymm2, %ymm2 - 0xc5, 0xed, 0xeb, 0xd5, //0x00008025 vpor %ymm5, %ymm2, %ymm2 - 0xc4, 0x41, 0x09, 0xef, 0xf6, //0x00008029 vpxor %xmm14, %xmm14, %xmm14 - 0xc5, 0x8d, 0x74, 0xd2, //0x0000802e vpcmpeqb %ymm2, %ymm14, %ymm2 - 0xc5, 0xed, 0xdf, 0xd1, //0x00008032 vpandn %ymm1, %ymm2, %ymm2 - 0xc5, 0xed, 0xef, 0xd3, //0x00008036 vpxor %ymm3, %ymm2, %ymm2 - 0xc4, 0xc3, 0x1d, 0x46, 0xdb, 0x21, //0x0000803a vperm2i128 $33, %ymm11, %ymm12, %ymm3 - 0xc4, 0xe3, 0x25, 0x0f, 0xeb, 0x0f, //0x00008040 vpalignr $15, %ymm3, %ymm11, %ymm5 - 0xc5, 0x9d, 0x71, 0xd5, 0x04, //0x00008046 vpsrlw $4, %ymm5, %ymm12 - 0xc5, 0x1d, 0xdb, 0xe4, //0x0000804b vpand %ymm4, %ymm12, %ymm12 - 0xc4, 0x42, 0x05, 0x00, 0xe4, //0x0000804f vpshufb %ymm12, %ymm15, %ymm12 - 0xc5, 0xd5, 0xdb, 0xec, //0x00008054 vpand %ymm4, %ymm5, %ymm5 - 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00008058 vpshufb %ymm5, %ymm6, %ymm5 - 0xc4, 0xc1, 0x15, 0x71, 0xd3, 0x04, //0x0000805d vpsrlw $4, %ymm11, %ymm13 - 0xc5, 0x15, 0xdb, 0xec, //0x00008063 vpand %ymm4, %ymm13, %ymm13 - 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008067 vpshufb %ymm13, %ymm7, %ymm13 - 0xc5, 0x95, 0xdb, 0xed, //0x0000806c vpand %ymm5, %ymm13, %ymm5 - 0xc5, 0x9d, 0xdb, 0xed, //0x00008070 vpand %ymm5, %ymm12, %ymm5 - 0xc4, 0x63, 0x25, 0x0f, 0xe3, 0x0e, //0x00008074 vpalignr $14, %ymm3, %ymm11, %ymm12 - 0xc4, 0xe3, 0x25, 0x0f, 0xdb, 0x0d, //0x0000807a vpalignr $13, %ymm3, %ymm11, %ymm3 - 0xc4, 0x41, 0x1d, 0xd8, 0xe0, //0x00008080 vpsubusb %ymm8, %ymm12, %ymm12 - 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00008085 vpsubusb %ymm9, %ymm3, %ymm3 - 0xc5, 0x9d, 0xeb, 0xdb, //0x0000808a vpor %ymm3, %ymm12, %ymm3 - 0xc5, 0x8d, 0x74, 0xdb, //0x0000808e vpcmpeqb %ymm3, %ymm14, %ymm3 - 0xc5, 0xe5, 0xdf, 0xc9, //0x00008092 vpandn %ymm1, %ymm3, %ymm1 - 0xc5, 0xf5, 0xef, 0xcd, //0x00008096 vpxor %ymm5, %ymm1, %ymm1 - 0xc5, 0xed, 0xeb, 0xc0, //0x0000809a vpor %ymm0, %ymm2, %ymm0 - 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x0000809e jmp LBB31_8 - //0x000080a3 LBB31_11 - 0xc4, 0xc1, 0x15, 0xd8, 0xca, //0x000080a3 vpsubusb %ymm10, %ymm13, %ymm1 - 0xc5, 0xfd, 0xeb, 0xc1, //0x000080a8 vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0x7d, 0x7f, 0xea, //0x000080ac vmovdqa %ymm13, %ymm2 - 0xe9, 0x0c, 0xfd, 0xff, 0xff, //0x000080b0 jmp LBB31_5 - //0x000080b5 LBB31_13 - 0x48, 0x83, 0xe2, 0x80, //0x000080b5 andq $-128, %rdx - 0x4c, 0x01, 0xc2, //0x000080b9 addq %r8, %rdx - //0x000080bc LBB31_14 - 0x49, 0x8d, 0x49, 0xc0, //0x000080bc leaq $-64(%r9), %rcx - 0x48, 0x39, 0xca, //0x000080c0 cmpq %rcx, %rdx - 0x0f, 0x83, 0x79, 0x01, 0x00, 0x00, //0x000080c3 jae LBB31_20 - 0x48, 0x89, 0xc6, //0x000080c9 movq %rax, %rsi - 0x48, 0x29, 0xd6, //0x000080cc subq %rdx, %rsi - 0x4a, 0x8d, 0x7c, 0x06, 0xff, //0x000080cf leaq $-1(%rsi,%r8), %rdi - 0xc5, 0xfd, 0x6f, 0x1d, 0x24, 0xfb, 0xff, 0xff, //0x000080d4 vmovdqa $-1244(%rip), %ymm3 /* LCPI31_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0x3c, 0xfb, 0xff, 0xff, //0x000080dc vmovdqa $-1220(%rip), %ymm4 /* LCPI31_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x54, 0xfb, 0xff, 0xff, //0x000080e4 vmovdqa $-1196(%rip), %ymm5 /* LCPI31_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x6c, 0xfb, 0xff, 0xff, //0x000080ec vmovdqa $-1172(%rip), %ymm6 /* LCPI31_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x3d, 0x84, 0xfb, 0xff, 0xff, //0x000080f4 vmovdqa $-1148(%rip), %ymm7 /* LCPI31_4+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x05, 0x9c, 0xfb, 0xff, 0xff, //0x000080fc vmovdqa $-1124(%rip), %ymm8 /* LCPI31_5+0(%rip) */ - 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x00008104 vpxor %xmm9, %xmm9, %xmm9 - 0xc5, 0x7d, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00008109 vmovdqa $-1105(%rip), %ymm10 /* LCPI31_7+0(%rip) */ - 0x48, 0x89, 0xd6, //0x00008111 movq %rdx, %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008114 .p2align 4, 0x90 - //0x00008120 LBB31_16 - 0xc5, 0x7e, 0x6f, 0x26, //0x00008120 vmovdqu (%rsi), %ymm12 - 0xc5, 0x7e, 0x6f, 0x5e, 0x20, //0x00008124 vmovdqu $32(%rsi), %ymm11 - 0xc4, 0x41, 0x25, 0xeb, 0xec, //0x00008129 vpor %ymm12, %ymm11, %ymm13 - 0xc4, 0xc1, 0x7d, 0xd7, 0xdd, //0x0000812e vpmovmskb %ymm13, %ebx - 0x85, 0xdb, //0x00008133 testl %ebx, %ebx - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00008135 jne LBB31_18 - 0xc5, 0xf5, 0xeb, 0xc0, //0x0000813b vpor %ymm0, %ymm1, %ymm0 - 0x48, 0x83, 0xc6, 0x40, //0x0000813f addq $64, %rsi - 0x48, 0x39, 0xce, //0x00008143 cmpq %rcx, %rsi - 0x0f, 0x82, 0xd4, 0xff, 0xff, 0xff, //0x00008146 jb LBB31_16 - 0xe9, 0xea, 0x00, 0x00, 0x00, //0x0000814c jmp LBB31_19 - //0x00008151 LBB31_18 - 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00008151 vperm2i128 $33, %ymm12, %ymm2, %ymm1 - 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00008157 vpalignr $15, %ymm1, %ymm12, %ymm2 - 0xc5, 0x95, 0x71, 0xd2, 0x04, //0x0000815d vpsrlw $4, %ymm2, %ymm13 - 0xc5, 0x15, 0xdb, 0xeb, //0x00008162 vpand %ymm3, %ymm13, %ymm13 - 0xc4, 0x42, 0x5d, 0x00, 0xed, //0x00008166 vpshufb %ymm13, %ymm4, %ymm13 - 0xc5, 0xed, 0xdb, 0xd3, //0x0000816b vpand %ymm3, %ymm2, %ymm2 - 0xc4, 0xe2, 0x55, 0x00, 0xd2, //0x0000816f vpshufb %ymm2, %ymm5, %ymm2 - 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x00008174 vpsrlw $4, %ymm12, %ymm14 - 0xc5, 0x0d, 0xdb, 0xf3, //0x0000817a vpand %ymm3, %ymm14, %ymm14 - 0xc4, 0x42, 0x4d, 0x00, 0xf6, //0x0000817e vpshufb %ymm14, %ymm6, %ymm14 - 0xc5, 0x8d, 0xdb, 0xd2, //0x00008183 vpand %ymm2, %ymm14, %ymm2 - 0xc5, 0x95, 0xdb, 0xd2, //0x00008187 vpand %ymm2, %ymm13, %ymm2 - 0xc4, 0x63, 0x1d, 0x0f, 0xe9, 0x0e, //0x0000818b vpalignr $14, %ymm1, %ymm12, %ymm13 - 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00008191 vpalignr $13, %ymm1, %ymm12, %ymm1 - 0xc5, 0x15, 0xd8, 0xef, //0x00008197 vpsubusb %ymm7, %ymm13, %ymm13 - 0xc4, 0xc1, 0x75, 0xd8, 0xc8, //0x0000819b vpsubusb %ymm8, %ymm1, %ymm1 - 0xc5, 0x95, 0xeb, 0xc9, //0x000081a0 vpor %ymm1, %ymm13, %ymm1 - 0xc5, 0xb5, 0x74, 0xc9, //0x000081a4 vpcmpeqb %ymm1, %ymm9, %ymm1 - 0xc4, 0x62, 0x7d, 0x59, 0x2d, 0x4f, 0xfb, 0xff, 0xff, //0x000081a8 vpbroadcastq $-1201(%rip), %ymm13 /* LCPI31_6+0(%rip) */ - 0xc4, 0xc1, 0x75, 0xdf, 0xcd, //0x000081b1 vpandn %ymm13, %ymm1, %ymm1 - 0xc5, 0xf5, 0xef, 0xca, //0x000081b6 vpxor %ymm2, %ymm1, %ymm1 - 0xc4, 0xc3, 0x1d, 0x46, 0xd3, 0x21, //0x000081ba vperm2i128 $33, %ymm11, %ymm12, %ymm2 - 0xc4, 0x63, 0x25, 0x0f, 0xe2, 0x0f, //0x000081c0 vpalignr $15, %ymm2, %ymm11, %ymm12 - 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x000081c6 vpsrlw $4, %ymm12, %ymm14 - 0xc5, 0x0d, 0xdb, 0xf3, //0x000081cc vpand %ymm3, %ymm14, %ymm14 - 0xc4, 0x42, 0x5d, 0x00, 0xf6, //0x000081d0 vpshufb %ymm14, %ymm4, %ymm14 - 0xc5, 0x1d, 0xdb, 0xe3, //0x000081d5 vpand %ymm3, %ymm12, %ymm12 - 0xc4, 0x42, 0x55, 0x00, 0xe4, //0x000081d9 vpshufb %ymm12, %ymm5, %ymm12 - 0xc4, 0xc1, 0x05, 0x71, 0xd3, 0x04, //0x000081de vpsrlw $4, %ymm11, %ymm15 - 0xc5, 0x05, 0xdb, 0xfb, //0x000081e4 vpand %ymm3, %ymm15, %ymm15 - 0xc4, 0x42, 0x4d, 0x00, 0xff, //0x000081e8 vpshufb %ymm15, %ymm6, %ymm15 - 0xc4, 0x41, 0x1d, 0xdb, 0xe7, //0x000081ed vpand %ymm15, %ymm12, %ymm12 - 0xc4, 0x41, 0x0d, 0xdb, 0xe4, //0x000081f2 vpand %ymm12, %ymm14, %ymm12 - 0xc4, 0x63, 0x25, 0x0f, 0xf2, 0x0e, //0x000081f7 vpalignr $14, %ymm2, %ymm11, %ymm14 - 0xc4, 0xe3, 0x25, 0x0f, 0xd2, 0x0d, //0x000081fd vpalignr $13, %ymm2, %ymm11, %ymm2 - 0xc5, 0x0d, 0xd8, 0xf7, //0x00008203 vpsubusb %ymm7, %ymm14, %ymm14 - 0xc4, 0xc1, 0x6d, 0xd8, 0xd0, //0x00008207 vpsubusb %ymm8, %ymm2, %ymm2 - 0xc5, 0x8d, 0xeb, 0xd2, //0x0000820c vpor %ymm2, %ymm14, %ymm2 - 0xc5, 0xb5, 0x74, 0xd2, //0x00008210 vpcmpeqb %ymm2, %ymm9, %ymm2 - 0xc4, 0xc1, 0x6d, 0xdf, 0xd5, //0x00008214 vpandn %ymm13, %ymm2, %ymm2 - 0xc5, 0x9d, 0xef, 0xd2, //0x00008219 vpxor %ymm2, %ymm12, %ymm2 - 0xc5, 0xf5, 0xeb, 0xc0, //0x0000821d vpor %ymm0, %ymm1, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc2, //0x00008221 vpor %ymm2, %ymm0, %ymm0 - 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00008225 vpsubusb %ymm10, %ymm11, %ymm1 - 0xc5, 0x7d, 0x7f, 0xda, //0x0000822a vmovdqa %ymm11, %ymm2 - 0x48, 0x83, 0xc6, 0x40, //0x0000822e addq $64, %rsi - 0x48, 0x39, 0xce, //0x00008232 cmpq %rcx, %rsi - 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00008235 jb LBB31_16 - //0x0000823b LBB31_19 - 0x48, 0x83, 0xe7, 0xc0, //0x0000823b andq $-64, %rdi - 0x48, 0x01, 0xfa, //0x0000823f addq %rdi, %rdx - //0x00008242 LBB31_20 - 0xc5, 0xe1, 0xef, 0xdb, //0x00008242 vpxor %xmm3, %xmm3, %xmm3 - 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x40, //0x00008246 vmovdqu %ymm3, $64(%rsp) - 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x20, //0x0000824c vmovdqu %ymm3, $32(%rsp) - 0xc5, 0xd9, 0xef, 0xe4, //0x00008252 vpxor %xmm4, %xmm4, %xmm4 - 0x4c, 0x39, 0xca, //0x00008256 cmpq %r9, %rdx - 0x0f, 0x83, 0x70, 0x00, 0x00, 0x00, //0x00008259 jae LBB31_36 - 0x48, 0x89, 0xc1, //0x0000825f movq %rax, %rcx - 0x48, 0x29, 0xd1, //0x00008262 subq %rdx, %rcx - 0x4d, 0x8d, 0x1c, 0x08, //0x00008265 leaq (%r8,%rcx), %r11 - 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00008269 cmpq $128, %r11 - 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008270 jb LBB31_22 - 0x48, 0x8d, 0x74, 0x24, 0x20, //0x00008276 leaq $32(%rsp), %rsi - 0x4c, 0x39, 0xce, //0x0000827b cmpq %r9, %rsi - 0x0f, 0x83, 0x74, 0x02, 0x00, 0x00, //0x0000827e jae LBB31_26 - 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00008284 leaq $32(%rsp,%rcx), %rcx - 0x4c, 0x01, 0xc1, //0x00008289 addq %r8, %rcx - 0x48, 0x39, 0xca, //0x0000828c cmpq %rcx, %rdx - 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x0000828f jae LBB31_26 - //0x00008295 LBB31_22 - 0x31, 0xc9, //0x00008295 xorl %ecx, %ecx - //0x00008297 LBB31_33 - 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00008297 leaq $32(%rsp,%rcx), %rcx - 0x48, 0x29, 0xd0, //0x0000829c subq %rdx, %rax - 0x4c, 0x01, 0xc0, //0x0000829f addq %r8, %rax - 0x31, 0xf6, //0x000082a2 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000082a4 .p2align 4, 0x90 - //0x000082b0 LBB31_34 - 0x0f, 0xb6, 0x1c, 0x32, //0x000082b0 movzbl (%rdx,%rsi), %ebx - 0x88, 0x1c, 0x31, //0x000082b4 movb %bl, (%rcx,%rsi) - 0x48, 0xff, 0xc6, //0x000082b7 incq %rsi - 0x48, 0x39, 0xf0, //0x000082ba cmpq %rsi, %rax - 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x000082bd jne LBB31_34 - //0x000082c3 LBB31_35 - 0xc5, 0xfe, 0x6f, 0x64, 0x24, 0x20, //0x000082c3 vmovdqu $32(%rsp), %ymm4 - 0xc5, 0xfe, 0x6f, 0x5c, 0x24, 0x40, //0x000082c9 vmovdqu $64(%rsp), %ymm3 - //0x000082cf LBB31_36 - 0xc5, 0xdd, 0xeb, 0xeb, //0x000082cf vpor %ymm3, %ymm4, %ymm5 - 0xc5, 0xfd, 0xd7, 0xc5, //0x000082d3 vpmovmskb %ymm5, %eax - 0x85, 0xc0, //0x000082d7 testl %eax, %eax - 0x0f, 0x85, 0x38, 0x03, 0x00, 0x00, //0x000082d9 jne LBB31_40 - 0xc5, 0xfd, 0xeb, 0xc1, //0x000082df vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc1, //0x000082e3 vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x000082e7 vptest %ymm0, %ymm0 - 0x0f, 0x84, 0xfa, 0x01, 0x00, 0x00, //0x000082ec je LBB31_12 - //0x000082f2 LBB31_41 - 0x49, 0x8d, 0x49, 0xfd, //0x000082f2 leaq $-3(%r9), %rcx - 0x4c, 0x89, 0xc0, //0x000082f6 movq %r8, %rax - 0x49, 0x39, 0xc8, //0x000082f9 cmpq %rcx, %r8 - 0x0f, 0x83, 0xde, 0x00, 0x00, 0x00, //0x000082fc jae LBB31_55 - 0x4c, 0x89, 0xc0, //0x00008302 movq %r8, %rax - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00008305 jmp LBB31_44 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000830a .p2align 4, 0x90 - //0x00008310 LBB31_43 - 0x48, 0x01, 0xf0, //0x00008310 addq %rsi, %rax - 0x48, 0x39, 0xc8, //0x00008313 cmpq %rcx, %rax - 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x00008316 jae LBB31_55 - //0x0000831c LBB31_44 - 0xbe, 0x01, 0x00, 0x00, 0x00, //0x0000831c movl $1, %esi - 0x80, 0x38, 0x00, //0x00008321 cmpb $0, (%rax) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00008324 jns LBB31_43 - 0x8b, 0x10, //0x0000832a movl (%rax), %edx - 0x89, 0xd6, //0x0000832c movl %edx, %esi - 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000832e andl $12632304, %esi - 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00008334 cmpl $8421600, %esi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000833a jne LBB31_48 - 0x89, 0xd7, //0x00008340 movl %edx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00008342 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00008348 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000834e je LBB31_48 - 0xbe, 0x03, 0x00, 0x00, 0x00, //0x00008354 movl $3, %esi - 0x85, 0xff, //0x00008359 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000835b jne LBB31_43 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008361 .p2align 4, 0x90 - //0x00008370 LBB31_48 - 0x89, 0xd6, //0x00008370 movl %edx, %esi - 0x81, 0xe6, 0xe0, 0xc0, 0x00, 0x00, //0x00008372 andl $49376, %esi - 0x81, 0xfe, 0xc0, 0x80, 0x00, 0x00, //0x00008378 cmpl $32960, %esi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000837e jne LBB31_50 - 0x89, 0xd7, //0x00008384 movl %edx, %edi - 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00008386 movl $2, %esi - 0x83, 0xe7, 0x1e, //0x0000838b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000838e jne LBB31_43 - //0x00008394 LBB31_50 - 0x89, 0xd6, //0x00008394 movl %edx, %esi - 0x81, 0xe6, 0xf8, 0xc0, 0xc0, 0xc0, //0x00008396 andl $-1061109512, %esi - 0x81, 0xfe, 0xf0, 0x80, 0x80, 0x80, //0x0000839c cmpl $-2139062032, %esi - 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000083a2 jne LBB31_54 - 0x89, 0xd6, //0x000083a8 movl %edx, %esi - 0x81, 0xe6, 0x07, 0x30, 0x00, 0x00, //0x000083aa andl $12295, %esi - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000083b0 je LBB31_54 - 0xbe, 0x04, 0x00, 0x00, 0x00, //0x000083b6 movl $4, %esi - 0xf6, 0xc2, 0x04, //0x000083bb testb $4, %dl - 0x0f, 0x84, 0x4c, 0xff, 0xff, 0xff, //0x000083be je LBB31_43 - 0x81, 0xe2, 0x03, 0x30, 0x00, 0x00, //0x000083c4 andl $12291, %edx - 0x0f, 0x84, 0x40, 0xff, 0xff, 0xff, //0x000083ca je LBB31_43 - //0x000083d0 LBB31_54 - 0x48, 0xf7, 0xd0, //0x000083d0 notq %rax - 0x4c, 0x01, 0xc0, //0x000083d3 addq %r8, %rax - 0x48, 0x8d, 0x65, 0xf8, //0x000083d6 leaq $-8(%rbp), %rsp - 0x5b, //0x000083da popq %rbx - 0x5d, //0x000083db popq %rbp - 0xc5, 0xf8, 0x77, //0x000083dc vzeroupper - 0xc3, //0x000083df retq - //0x000083e0 LBB31_55 - 0x4c, 0x39, 0xc8, //0x000083e0 cmpq %r9, %rax - 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x000083e3 jae LBB31_12 - 0x4c, 0x8d, 0x54, 0x24, 0x20, //0x000083e9 leaq $32(%rsp), %r10 - 0x4c, 0x8d, 0x5c, 0x24, 0x1e, //0x000083ee leaq $30(%rsp), %r11 - 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000083f3 jmp LBB31_58 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083f8 .p2align 4, 0x90 - //0x00008400 LBB31_57 - 0x48, 0xff, 0xc0, //0x00008400 incq %rax - 0x4c, 0x39, 0xc8, //0x00008403 cmpq %r9, %rax - 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00008406 jae LBB31_12 - //0x0000840c LBB31_58 - 0x80, 0x38, 0x00, //0x0000840c cmpb $0, (%rax) - 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000840f jns LBB31_57 - 0xc6, 0x44, 0x24, 0x20, 0x00, //0x00008415 movb $0, $32(%rsp) - 0xc6, 0x44, 0x24, 0x1e, 0x00, //0x0000841a movb $0, $30(%rsp) - 0x4c, 0x89, 0xc9, //0x0000841f movq %r9, %rcx - 0x48, 0x29, 0xc1, //0x00008422 subq %rax, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00008425 cmpq $2, %rcx - 0x0f, 0x82, 0x33, 0x00, 0x00, 0x00, //0x00008429 jb LBB31_62 - 0x0f, 0xb6, 0x10, //0x0000842f movzbl (%rax), %edx - 0x0f, 0xb6, 0x78, 0x01, //0x00008432 movzbl $1(%rax), %edi - 0x88, 0x54, 0x24, 0x20, //0x00008436 movb %dl, $32(%rsp) - 0x48, 0x8d, 0x70, 0x02, //0x0000843a leaq $2(%rax), %rsi - 0x48, 0x83, 0xc1, 0xfe, //0x0000843e addq $-2, %rcx - 0x4c, 0x89, 0xdb, //0x00008442 movq %r11, %rbx - 0x48, 0x85, 0xc9, //0x00008445 testq %rcx, %rcx - 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00008448 je LBB31_63 - //0x0000844e LBB31_61 - 0x0f, 0xb6, 0x0e, //0x0000844e movzbl (%rsi), %ecx - 0x88, 0x0b, //0x00008451 movb %cl, (%rbx) - 0x0f, 0xb6, 0x54, 0x24, 0x20, //0x00008453 movzbl $32(%rsp), %edx - 0x0f, 0xb6, 0x4c, 0x24, 0x1e, //0x00008458 movzbl $30(%rsp), %ecx - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000845d jmp LBB31_64 - //0x00008462 LBB31_62 - 0x31, 0xd2, //0x00008462 xorl %edx, %edx - 0x31, 0xff, //0x00008464 xorl %edi, %edi - 0x4c, 0x89, 0xd3, //0x00008466 movq %r10, %rbx - 0x48, 0x89, 0xc6, //0x00008469 movq %rax, %rsi - 0x48, 0x85, 0xc9, //0x0000846c testq %rcx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000846f jne LBB31_61 - //0x00008475 LBB31_63 - 0x31, 0xc9, //0x00008475 xorl %ecx, %ecx - //0x00008477 LBB31_64 - 0x0f, 0xb6, 0xf1, //0x00008477 movzbl %cl, %esi - 0xc1, 0xe6, 0x10, //0x0000847a shll $16, %esi - 0x40, 0x0f, 0xb6, 0xff, //0x0000847d movzbl %dil, %edi - 0xc1, 0xe7, 0x08, //0x00008481 shll $8, %edi - 0x0f, 0xb6, 0xca, //0x00008484 movzbl %dl, %ecx - 0x09, 0xf9, //0x00008487 orl %edi, %ecx - 0x09, 0xce, //0x00008489 orl %ecx, %esi - 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000848b andl $12632304, %esi - 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00008491 cmpl $8421600, %esi - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00008497 jne LBB31_67 - 0x89, 0xcf, //0x0000849d movl %ecx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000849f andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000084a5 cmpl $8205, %edi - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000084ab je LBB31_67 - 0xbe, 0x03, 0x00, 0x00, 0x00, //0x000084b1 movl $3, %esi - 0x85, 0xff, //0x000084b6 testl %edi, %edi - 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x000084b8 jne LBB31_69 - 0x90, 0x90, //0x000084be .p2align 4, 0x90 - //0x000084c0 LBB31_67 - 0xf6, 0xc2, 0x1e, //0x000084c0 testb $30, %dl - 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000084c3 je LBB31_54 - 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000084c9 andl $49376, %ecx - 0xbe, 0x02, 0x00, 0x00, 0x00, //0x000084cf movl $2, %esi - 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000084d4 cmpl $32960, %ecx - 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000084da jne LBB31_54 - //0x000084e0 LBB31_69 - 0x48, 0x01, 0xf0, //0x000084e0 addq %rsi, %rax - 0x4c, 0x39, 0xc8, //0x000084e3 cmpq %r9, %rax - 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x000084e6 jb LBB31_58 - //0x000084ec LBB31_12 - 0x31, 0xc0, //0x000084ec xorl %eax, %eax - 0x48, 0x8d, 0x65, 0xf8, //0x000084ee leaq $-8(%rbp), %rsp - 0x5b, //0x000084f2 popq %rbx - 0x5d, //0x000084f3 popq %rbp - 0xc5, 0xf8, 0x77, //0x000084f4 vzeroupper - 0xc3, //0x000084f7 retq - //0x000084f8 LBB31_26 - 0x4c, 0x89, 0xd9, //0x000084f8 movq %r11, %rcx - 0x48, 0x83, 0xe1, 0x80, //0x000084fb andq $-128, %rcx - 0x48, 0x8d, 0x79, 0x80, //0x000084ff leaq $-128(%rcx), %rdi - 0x48, 0x89, 0xfe, //0x00008503 movq %rdi, %rsi - 0x48, 0xc1, 0xee, 0x07, //0x00008506 shrq $7, %rsi - 0x48, 0xff, 0xc6, //0x0000850a incq %rsi - 0x41, 0x89, 0xf2, //0x0000850d movl %esi, %r10d - 0x41, 0x83, 0xe2, 0x01, //0x00008510 andl $1, %r10d - 0x48, 0x85, 0xff, //0x00008514 testq %rdi, %rdi - 0x0f, 0x84, 0xea, 0x00, 0x00, 0x00, //0x00008517 je LBB31_39 - 0x4c, 0x29, 0xd6, //0x0000851d subq %r10, %rsi - 0x31, 0xff, //0x00008520 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008522 .p2align 4, 0x90 - //0x00008530 LBB31_28 - 0xc5, 0xfc, 0x10, 0x1c, 0x3a, //0x00008530 vmovups (%rdx,%rdi), %ymm3 - 0xc5, 0xfc, 0x10, 0x64, 0x3a, 0x20, //0x00008535 vmovups $32(%rdx,%rdi), %ymm4 - 0xc5, 0xfc, 0x10, 0x6c, 0x3a, 0x40, //0x0000853b vmovups $64(%rdx,%rdi), %ymm5 - 0xc5, 0xfc, 0x10, 0x74, 0x3a, 0x60, //0x00008541 vmovups $96(%rdx,%rdi), %ymm6 - 0xc5, 0xfc, 0x11, 0x5c, 0x3c, 0x20, //0x00008547 vmovups %ymm3, $32(%rsp,%rdi) - 0xc5, 0xfc, 0x11, 0x64, 0x3c, 0x40, //0x0000854d vmovups %ymm4, $64(%rsp,%rdi) - 0xc5, 0xfc, 0x11, 0x6c, 0x3c, 0x60, //0x00008553 vmovups %ymm5, $96(%rsp,%rdi) - 0xc5, 0xfc, 0x11, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x00008559 vmovups %ymm6, $128(%rsp,%rdi) - 0xc5, 0xfe, 0x6f, 0x9c, 0x3a, 0x80, 0x00, 0x00, 0x00, //0x00008562 vmovdqu $128(%rdx,%rdi), %ymm3 - 0xc5, 0xfe, 0x6f, 0xa4, 0x3a, 0xa0, 0x00, 0x00, 0x00, //0x0000856b vmovdqu $160(%rdx,%rdi), %ymm4 - 0xc5, 0xfe, 0x6f, 0xac, 0x3a, 0xc0, 0x00, 0x00, 0x00, //0x00008574 vmovdqu $192(%rdx,%rdi), %ymm5 - 0xc5, 0xfe, 0x6f, 0xb4, 0x3a, 0xe0, 0x00, 0x00, 0x00, //0x0000857d vmovdqu $224(%rdx,%rdi), %ymm6 - 0xc5, 0xfe, 0x7f, 0x9c, 0x3c, 0xa0, 0x00, 0x00, 0x00, //0x00008586 vmovdqu %ymm3, $160(%rsp,%rdi) - 0xc5, 0xfe, 0x7f, 0xa4, 0x3c, 0xc0, 0x00, 0x00, 0x00, //0x0000858f vmovdqu %ymm4, $192(%rsp,%rdi) - 0xc5, 0xfe, 0x7f, 0xac, 0x3c, 0xe0, 0x00, 0x00, 0x00, //0x00008598 vmovdqu %ymm5, $224(%rsp,%rdi) - 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x00, 0x01, 0x00, 0x00, //0x000085a1 vmovdqu %ymm6, $256(%rsp,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x000085aa addq $256, %rdi - 0x48, 0x83, 0xc6, 0xfe, //0x000085b1 addq $-2, %rsi - 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000085b5 jne LBB31_28 - 0x4d, 0x85, 0xd2, //0x000085bb testq %r10, %r10 - 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x000085be je LBB31_31 - //0x000085c4 LBB31_30 - 0xc5, 0xfe, 0x6f, 0x1c, 0x3a, //0x000085c4 vmovdqu (%rdx,%rdi), %ymm3 - 0xc5, 0xfe, 0x6f, 0x64, 0x3a, 0x20, //0x000085c9 vmovdqu $32(%rdx,%rdi), %ymm4 - 0xc5, 0xfe, 0x6f, 0x6c, 0x3a, 0x40, //0x000085cf vmovdqu $64(%rdx,%rdi), %ymm5 - 0xc5, 0xfe, 0x6f, 0x74, 0x3a, 0x60, //0x000085d5 vmovdqu $96(%rdx,%rdi), %ymm6 - 0xc5, 0xfe, 0x7f, 0x5c, 0x3c, 0x20, //0x000085db vmovdqu %ymm3, $32(%rsp,%rdi) - 0xc5, 0xfe, 0x7f, 0x64, 0x3c, 0x40, //0x000085e1 vmovdqu %ymm4, $64(%rsp,%rdi) - 0xc5, 0xfe, 0x7f, 0x6c, 0x3c, 0x60, //0x000085e7 vmovdqu %ymm5, $96(%rsp,%rdi) - 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x000085ed vmovdqu %ymm6, $128(%rsp,%rdi) - //0x000085f6 LBB31_31 - 0x4c, 0x39, 0xd9, //0x000085f6 cmpq %r11, %rcx - 0x0f, 0x84, 0xc4, 0xfc, 0xff, 0xff, //0x000085f9 je LBB31_35 - 0x48, 0x01, 0xca, //0x000085ff addq %rcx, %rdx - 0xe9, 0x90, 0xfc, 0xff, 0xff, //0x00008602 jmp LBB31_33 - //0x00008607 LBB31_39 - 0x31, 0xff, //0x00008607 xorl %edi, %edi - 0x4d, 0x85, 0xd2, //0x00008609 testq %r10, %r10 - 0x0f, 0x85, 0xb2, 0xff, 0xff, 0xff, //0x0000860c jne LBB31_30 - 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x00008612 jmp LBB31_31 - //0x00008617 LBB31_40 - 0xc4, 0xe3, 0x6d, 0x46, 0xd4, 0x21, //0x00008617 vperm2i128 $33, %ymm4, %ymm2, %ymm2 - 0xc4, 0xe3, 0x5d, 0x0f, 0xea, 0x0f, //0x0000861d vpalignr $15, %ymm2, %ymm4, %ymm5 - 0xc5, 0xcd, 0x71, 0xd5, 0x04, //0x00008623 vpsrlw $4, %ymm5, %ymm6 - 0xc5, 0xfd, 0x6f, 0x0d, 0xd0, 0xf5, 0xff, 0xff, //0x00008628 vmovdqa $-2608(%rip), %ymm1 /* LCPI31_0+0(%rip) */ - 0xc5, 0xcd, 0xdb, 0xf1, //0x00008630 vpand %ymm1, %ymm6, %ymm6 - 0xc5, 0xfd, 0x6f, 0x3d, 0xe4, 0xf5, 0xff, 0xff, //0x00008634 vmovdqa $-2588(%rip), %ymm7 /* LCPI31_1+0(%rip) */ - 0xc4, 0xe2, 0x45, 0x00, 0xf6, //0x0000863c vpshufb %ymm6, %ymm7, %ymm6 - 0xc5, 0xd5, 0xdb, 0xe9, //0x00008641 vpand %ymm1, %ymm5, %ymm5 - 0xc5, 0x7d, 0x6f, 0x05, 0xf3, 0xf5, 0xff, 0xff, //0x00008645 vmovdqa $-2573(%rip), %ymm8 /* LCPI31_2+0(%rip) */ - 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x0000864d vpshufb %ymm5, %ymm8, %ymm5 - 0xc5, 0xb5, 0x71, 0xd4, 0x04, //0x00008652 vpsrlw $4, %ymm4, %ymm9 - 0xc5, 0x35, 0xdb, 0xc9, //0x00008657 vpand %ymm1, %ymm9, %ymm9 - 0xc5, 0x7d, 0x6f, 0x15, 0xfd, 0xf5, 0xff, 0xff, //0x0000865b vmovdqa $-2563(%rip), %ymm10 /* LCPI31_3+0(%rip) */ - 0xc4, 0x42, 0x2d, 0x00, 0xc9, //0x00008663 vpshufb %ymm9, %ymm10, %ymm9 - 0xc5, 0xb5, 0xdb, 0xed, //0x00008668 vpand %ymm5, %ymm9, %ymm5 - 0xc5, 0xcd, 0xdb, 0xed, //0x0000866c vpand %ymm5, %ymm6, %ymm5 - 0xc4, 0xe3, 0x5d, 0x0f, 0xf2, 0x0e, //0x00008670 vpalignr $14, %ymm2, %ymm4, %ymm6 - 0xc4, 0xe3, 0x5d, 0x0f, 0xd2, 0x0d, //0x00008676 vpalignr $13, %ymm2, %ymm4, %ymm2 - 0xc5, 0x7d, 0x6f, 0x0d, 0xfc, 0xf5, 0xff, 0xff, //0x0000867c vmovdqa $-2564(%rip), %ymm9 /* LCPI31_4+0(%rip) */ - 0xc4, 0xc1, 0x4d, 0xd8, 0xf1, //0x00008684 vpsubusb %ymm9, %ymm6, %ymm6 - 0xc5, 0x7d, 0x6f, 0x1d, 0x0f, 0xf6, 0xff, 0xff, //0x00008689 vmovdqa $-2545(%rip), %ymm11 /* LCPI31_5+0(%rip) */ - 0xc4, 0xc1, 0x6d, 0xd8, 0xd3, //0x00008691 vpsubusb %ymm11, %ymm2, %ymm2 - 0xc5, 0xed, 0xeb, 0xd6, //0x00008696 vpor %ymm6, %ymm2, %ymm2 - 0xc5, 0xc9, 0xef, 0xf6, //0x0000869a vpxor %xmm6, %xmm6, %xmm6 - 0xc5, 0xed, 0x74, 0xd6, //0x0000869e vpcmpeqb %ymm6, %ymm2, %ymm2 - 0xc4, 0x62, 0x7d, 0x59, 0x25, 0x55, 0xf6, 0xff, 0xff, //0x000086a2 vpbroadcastq $-2475(%rip), %ymm12 /* LCPI31_6+0(%rip) */ - 0xc4, 0xc1, 0x6d, 0xdf, 0xd4, //0x000086ab vpandn %ymm12, %ymm2, %ymm2 - 0xc5, 0xed, 0xef, 0xd5, //0x000086b0 vpxor %ymm5, %ymm2, %ymm2 - 0xc4, 0xe3, 0x5d, 0x46, 0xe3, 0x21, //0x000086b4 vperm2i128 $33, %ymm3, %ymm4, %ymm4 - 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0f, //0x000086ba vpalignr $15, %ymm4, %ymm3, %ymm5 - 0xc5, 0x95, 0x71, 0xd5, 0x04, //0x000086c0 vpsrlw $4, %ymm5, %ymm13 - 0xc5, 0x15, 0xdb, 0xe9, //0x000086c5 vpand %ymm1, %ymm13, %ymm13 - 0xc4, 0xc2, 0x45, 0x00, 0xfd, //0x000086c9 vpshufb %ymm13, %ymm7, %ymm7 - 0xc5, 0xd5, 0xdb, 0xe9, //0x000086ce vpand %ymm1, %ymm5, %ymm5 - 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x000086d2 vpshufb %ymm5, %ymm8, %ymm5 - 0xc5, 0xbd, 0x71, 0xd3, 0x04, //0x000086d7 vpsrlw $4, %ymm3, %ymm8 - 0xc5, 0xbd, 0xdb, 0xc9, //0x000086dc vpand %ymm1, %ymm8, %ymm1 - 0xc4, 0xe2, 0x2d, 0x00, 0xc9, //0x000086e0 vpshufb %ymm1, %ymm10, %ymm1 - 0xc5, 0xd5, 0xdb, 0xc9, //0x000086e5 vpand %ymm1, %ymm5, %ymm1 - 0xc5, 0xc5, 0xdb, 0xc9, //0x000086e9 vpand %ymm1, %ymm7, %ymm1 - 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0e, //0x000086ed vpalignr $14, %ymm4, %ymm3, %ymm5 - 0xc4, 0xe3, 0x65, 0x0f, 0xe4, 0x0d, //0x000086f3 vpalignr $13, %ymm4, %ymm3, %ymm4 - 0xc4, 0xc1, 0x55, 0xd8, 0xe9, //0x000086f9 vpsubusb %ymm9, %ymm5, %ymm5 - 0xc4, 0xc1, 0x5d, 0xd8, 0xe3, //0x000086fe vpsubusb %ymm11, %ymm4, %ymm4 - 0xc5, 0xdd, 0xeb, 0xe5, //0x00008703 vpor %ymm5, %ymm4, %ymm4 - 0xc5, 0xdd, 0x74, 0xe6, //0x00008707 vpcmpeqb %ymm6, %ymm4, %ymm4 - 0xc4, 0xc1, 0x5d, 0xdf, 0xe4, //0x0000870b vpandn %ymm12, %ymm4, %ymm4 - 0xc5, 0xdd, 0xef, 0xc9, //0x00008710 vpxor %ymm1, %ymm4, %ymm1 - 0xc5, 0xed, 0xeb, 0xc0, //0x00008714 vpor %ymm0, %ymm2, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00008718 vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0xe5, 0xd8, 0x0d, 0x9c, 0xf5, 0xff, 0xff, //0x0000871c vpsubusb $-2660(%rip), %ymm3, %ymm1 /* LCPI31_7+0(%rip) */ - 0xc5, 0xfd, 0xeb, 0xc1, //0x00008724 vpor %ymm1, %ymm0, %ymm0 - 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008728 vptest %ymm0, %ymm0 - 0x0f, 0x84, 0xb9, 0xfd, 0xff, 0xff, //0x0000872d je LBB31_12 - 0xe9, 0xba, 0xfb, 0xff, 0xff, //0x00008733 jmp LBB31_41 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008738 .p2align 5, 0x00 - //0x00008740 LCPI32_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008740 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008750 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00008760 .p2align 4, 0x90 - //0x00008760 _f32toa - 0x55, //0x00008760 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008761 movq %rsp, %rbp - 0x41, 0x57, //0x00008764 pushq %r15 - 0x41, 0x56, //0x00008766 pushq %r14 - 0x41, 0x55, //0x00008768 pushq %r13 - 0x41, 0x54, //0x0000876a pushq %r12 - 0x53, //0x0000876c pushq %rbx - 0xc5, 0xf9, 0x7e, 0xc0, //0x0000876d vmovd %xmm0, %eax - 0x89, 0xc1, //0x00008771 movl %eax, %ecx - 0xc1, 0xe9, 0x17, //0x00008773 shrl $23, %ecx - 0x0f, 0xb6, 0xd9, //0x00008776 movzbl %cl, %ebx - 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00008779 cmpl $255, %ebx - 0x0f, 0x84, 0xff, 0x0c, 0x00, 0x00, //0x0000877f je LBB32_139 - 0xc6, 0x07, 0x2d, //0x00008785 movb $45, (%rdi) - 0x41, 0x89, 0xc1, //0x00008788 movl %eax, %r9d - 0x41, 0xc1, 0xe9, 0x1f, //0x0000878b shrl $31, %r9d - 0x4e, 0x8d, 0x04, 0x0f, //0x0000878f leaq (%rdi,%r9), %r8 - 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00008793 testl $2147483647, %eax - 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00008798 je LBB32_14 - 0x25, 0xff, 0xff, 0x7f, 0x00, //0x0000879e andl $8388607, %eax - 0x85, 0xdb, //0x000087a3 testl %ebx, %ebx - 0x0f, 0x84, 0xe1, 0x0c, 0x00, 0x00, //0x000087a5 je LBB32_140 - 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x000087ab leal $8388608(%rax), %esi - 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x000087b1 leal $-150(%rbx), %r15d - 0x8d, 0x4b, 0x81, //0x000087b8 leal $-127(%rbx), %ecx - 0x83, 0xf9, 0x17, //0x000087bb cmpl $23, %ecx - 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x000087be ja LBB32_5 - 0xb9, 0x96, 0x00, 0x00, 0x00, //0x000087c4 movl $150, %ecx - 0x29, 0xd9, //0x000087c9 subl %ebx, %ecx - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000087cb movq $-1, %rdx - 0x48, 0xd3, 0xe2, //0x000087d2 shlq %cl, %rdx - 0xf7, 0xd2, //0x000087d5 notl %edx - 0x85, 0xf2, //0x000087d7 testl %esi, %edx - 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x000087d9 je LBB32_32 - //0x000087df LBB32_5 - 0x41, 0x89, 0xf6, //0x000087df movl %esi, %r14d - 0x41, 0x83, 0xe6, 0x01, //0x000087e2 andl $1, %r14d - 0x85, 0xc0, //0x000087e6 testl %eax, %eax - 0x0f, 0x94, 0xc0, //0x000087e8 sete %al - 0x83, 0xfb, 0x01, //0x000087eb cmpl $1, %ebx - 0x0f, 0x97, 0xc1, //0x000087ee seta %cl - 0x20, 0xc1, //0x000087f1 andb %al, %cl - 0x0f, 0xb6, 0xc9, //0x000087f3 movzbl %cl, %ecx - 0x41, 0x89, 0xf2, //0x000087f6 movl %esi, %r10d - 0x41, 0xc1, 0xe2, 0x02, //0x000087f9 shll $2, %r10d - 0x8d, 0x44, 0xb1, 0xfe, //0x000087fd leal $-2(%rcx,%rsi,4), %eax - 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00008801 imull $1262611, %r15d, %r11d - 0x31, 0xd2, //0x00008808 xorl %edx, %edx - 0x84, 0xc9, //0x0000880a testb %cl, %cl - 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x0000880c movl $524031, %ecx - 0x0f, 0x44, 0xca, //0x00008811 cmovel %edx, %ecx - 0x41, 0x29, 0xcb, //0x00008814 subl %ecx, %r11d - 0x41, 0xc1, 0xfb, 0x16, //0x00008817 sarl $22, %r11d - 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x0000881b imull $-1741647, %r11d, %ecx - 0xc1, 0xe9, 0x13, //0x00008822 shrl $19, %ecx - 0x44, 0x01, 0xf9, //0x00008825 addl %r15d, %ecx - 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00008828 movl $31, %edx - 0x44, 0x29, 0xda, //0x0000882d subl %r11d, %edx - 0x48, 0x63, 0xd2, //0x00008830 movslq %edx, %rdx - 0x48, 0x8d, 0x1d, 0x86, 0xb7, 0x00, 0x00, //0x00008833 leaq $46982(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ - 0xfe, 0xc1, //0x0000883a incb %cl - 0xd3, 0xe0, //0x0000883c shll %cl, %eax - 0x4c, 0x8b, 0x24, 0xd3, //0x0000883e movq (%rbx,%rdx,8), %r12 - 0x49, 0xf7, 0xe4, //0x00008842 mulq %r12 - 0x48, 0xc1, 0xe8, 0x20, //0x00008845 shrq $32, %rax - 0x31, 0xdb, //0x00008849 xorl %ebx, %ebx - 0x83, 0xf8, 0x01, //0x0000884b cmpl $1, %eax - 0x0f, 0x97, 0xc3, //0x0000884e seta %bl - 0x41, 0xd3, 0xe2, //0x00008851 shll %cl, %r10d - 0x09, 0xd3, //0x00008854 orl %edx, %ebx - 0x4c, 0x89, 0xd0, //0x00008856 movq %r10, %rax - 0x49, 0xf7, 0xe4, //0x00008859 mulq %r12 - 0x49, 0x89, 0xd2, //0x0000885c movq %rdx, %r10 - 0x48, 0xc1, 0xe8, 0x20, //0x0000885f shrq $32, %rax - 0x45, 0x31, 0xff, //0x00008863 xorl %r15d, %r15d - 0x83, 0xf8, 0x01, //0x00008866 cmpl $1, %eax - 0x41, 0x0f, 0x97, 0xc7, //0x00008869 seta %r15b - 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x0000886d leal $2(,%rsi,4), %eax - 0xd3, 0xe0, //0x00008874 shll %cl, %eax - 0x45, 0x09, 0xd7, //0x00008876 orl %r10d, %r15d - 0x49, 0xf7, 0xe4, //0x00008879 mulq %r12 - 0x48, 0xc1, 0xe8, 0x20, //0x0000887c shrq $32, %rax - 0x31, 0xc9, //0x00008880 xorl %ecx, %ecx - 0x83, 0xf8, 0x01, //0x00008882 cmpl $1, %eax - 0x0f, 0x97, 0xc1, //0x00008885 seta %cl - 0x09, 0xd1, //0x00008888 orl %edx, %ecx - 0x44, 0x01, 0xf3, //0x0000888a addl %r14d, %ebx - 0x44, 0x29, 0xf1, //0x0000888d subl %r14d, %ecx - 0x41, 0x83, 0xff, 0x28, //0x00008890 cmpl $40, %r15d - 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00008894 jb LBB32_12 - 0x44, 0x89, 0xd2, //0x0000889a movl %r10d, %edx - 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000889d movl $3435973837, %eax - 0x48, 0x0f, 0xaf, 0xc2, //0x000088a2 imulq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x000088a6 shrq $37, %rax - 0x41, 0x89, 0xde, //0x000088aa movl %ebx, %r14d - 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x000088ad leaq (,%rax,8), %rsi - 0x48, 0x8d, 0x14, 0xb6, //0x000088b5 leaq (%rsi,%rsi,4), %rdx - 0x4c, 0x39, 0xf2, //0x000088b9 cmpq %r14, %rdx - 0x41, 0x0f, 0x93, 0xc4, //0x000088bc setae %r12b - 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x000088c0 leaq $40(%rsi,%rsi,4), %r14 - 0x89, 0xce, //0x000088c5 movl %ecx, %esi - 0x49, 0x39, 0xf6, //0x000088c7 cmpq %rsi, %r14 - 0x0f, 0x96, 0xc2, //0x000088ca setbe %dl - 0x41, 0x38, 0xd4, //0x000088cd cmpb %dl, %r12b - 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x000088d0 je LBB32_12 - 0x45, 0x31, 0xed, //0x000088d6 xorl %r13d, %r13d - 0x49, 0x39, 0xf6, //0x000088d9 cmpq %rsi, %r14 - 0x41, 0x0f, 0x96, 0xc5, //0x000088dc setbe %r13b - 0x41, 0x01, 0xc5, //0x000088e0 addl %eax, %r13d - 0x41, 0xff, 0xc3, //0x000088e3 incl %r11d - 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x000088e6 cmpl $100000, %r13d - 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x000088ed jae LBB32_18 - //0x000088f3 LBB32_8 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000088f3 movl $1, %eax - 0x41, 0x83, 0xfd, 0x0a, //0x000088f8 cmpl $10, %r13d - 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x000088fc jb LBB32_22 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00008902 movl $2, %eax - 0x41, 0x83, 0xfd, 0x64, //0x00008907 cmpl $100, %r13d - 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x0000890b jb LBB32_22 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00008911 movl $3, %eax - 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00008916 cmpl $1000, %r13d - 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x0000891d jb LBB32_22 - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008923 cmpl $10000, %r13d - 0xb8, 0x05, 0x00, 0x00, 0x00, //0x0000892a movl $5, %eax - 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x0000892f jmp LBB32_21 - //0x00008934 LBB32_12 - 0x4d, 0x89, 0xd6, //0x00008934 movq %r10, %r14 - 0x49, 0xc1, 0xee, 0x02, //0x00008937 shrq $2, %r14 - 0x44, 0x89, 0xd6, //0x0000893b movl %r10d, %esi - 0x83, 0xe6, 0xfc, //0x0000893e andl $-4, %esi - 0x39, 0xf3, //0x00008941 cmpl %esi, %ebx - 0x0f, 0x96, 0xc2, //0x00008943 setbe %dl - 0x8d, 0x5e, 0x04, //0x00008946 leal $4(%rsi), %ebx - 0x39, 0xcb, //0x00008949 cmpl %ecx, %ebx - 0x0f, 0x96, 0xc0, //0x0000894b setbe %al - 0x38, 0xc2, //0x0000894e cmpb %al, %dl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00008950 je LBB32_15 - 0x45, 0x31, 0xed, //0x00008956 xorl %r13d, %r13d - 0x39, 0xcb, //0x00008959 cmpl %ecx, %ebx - 0x41, 0x0f, 0x96, 0xc5, //0x0000895b setbe %r13b - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000895f jmp LBB32_17 - //0x00008964 LBB32_14 - 0x41, 0xc6, 0x00, 0x30, //0x00008964 movb $48, (%r8) - 0x41, 0x29, 0xf8, //0x00008968 subl %edi, %r8d - 0x41, 0xff, 0xc0, //0x0000896b incl %r8d - 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x0000896e jmp LBB32_138 - //0x00008973 LBB32_15 - 0x83, 0xce, 0x02, //0x00008973 orl $2, %esi - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00008976 movl $1, %r13d - 0x41, 0x39, 0xf7, //0x0000897c cmpl %esi, %r15d - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000897f ja LBB32_17 - 0x0f, 0x94, 0xc0, //0x00008985 sete %al - 0x41, 0xc0, 0xea, 0x02, //0x00008988 shrb $2, %r10b - 0x41, 0x20, 0xc2, //0x0000898c andb %al, %r10b - 0x45, 0x0f, 0xb6, 0xea, //0x0000898f movzbl %r10b, %r13d - //0x00008993 LBB32_17 - 0x45, 0x01, 0xf5, //0x00008993 addl %r14d, %r13d - 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00008996 cmpl $100000, %r13d - 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x0000899d jb LBB32_8 - //0x000089a3 LBB32_18 - 0xb8, 0x06, 0x00, 0x00, 0x00, //0x000089a3 movl $6, %eax - 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x000089a8 cmpl $1000000, %r13d - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x000089af jb LBB32_22 - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000089b5 movl $7, %eax - 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x000089ba cmpl $10000000, %r13d - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000089c1 jb LBB32_22 - 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x000089c7 cmpl $100000000, %r13d - 0xb8, 0x09, 0x00, 0x00, 0x00, //0x000089ce movl $9, %eax - //0x000089d3 LBB32_21 - 0x83, 0xd8, 0x00, //0x000089d3 sbbl $0, %eax - //0x000089d6 LBB32_22 - 0x46, 0x8d, 0x3c, 0x18, //0x000089d6 leal (%rax,%r11), %r15d - 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x000089da leal $5(%rax,%r11), %ecx - 0x83, 0xf9, 0x1b, //0x000089df cmpl $27, %ecx - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000089e2 jb LBB32_26 - 0x89, 0xc0, //0x000089e8 movl %eax, %eax - 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x000089ea leaq $1(%r8,%rax), %rbx - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000089ef cmpl $10000, %r13d - 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x000089f6 jb LBB32_30 - 0x44, 0x89, 0xe8, //0x000089fc movl %r13d, %eax - 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000089ff movl $3518437209, %r11d - 0x4c, 0x0f, 0xaf, 0xd8, //0x00008a05 imulq %rax, %r11 - 0x49, 0xc1, 0xeb, 0x2d, //0x00008a09 shrq $45, %r11 - 0x41, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00008a0d imull $-10000, %r11d, %eax - 0x44, 0x01, 0xe8, //0x00008a14 addl %r13d, %eax - 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x00008a17 je LBB32_62 - 0x89, 0xc1, //0x00008a1d movl %eax, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008a1f imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x00008a26 shrq $37, %rcx - 0x6b, 0xd1, 0x64, //0x00008a2a imull $100, %ecx, %edx - 0x29, 0xd0, //0x00008a2d subl %edx, %eax - 0x48, 0x8d, 0x15, 0x0a, 0x42, 0x00, 0x00, //0x00008a2f leaq $16906(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x42, //0x00008a36 movzwl (%rdx,%rax,2), %eax - 0x66, 0x89, 0x43, 0xfe, //0x00008a3a movw %ax, $-2(%rbx) - 0x0f, 0xb7, 0x04, 0x4a, //0x00008a3e movzwl (%rdx,%rcx,2), %eax - 0x66, 0x89, 0x43, 0xfc, //0x00008a42 movw %ax, $-4(%rbx) - 0x45, 0x31, 0xc9, //0x00008a46 xorl %r9d, %r9d - 0x48, 0x8d, 0x4b, 0xfc, //0x00008a49 leaq $-4(%rbx), %rcx - 0x41, 0x83, 0xfb, 0x64, //0x00008a4d cmpl $100, %r11d - 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00008a51 jae LBB32_64 - //0x00008a57 LBB32_31 - 0x44, 0x89, 0xda, //0x00008a57 movl %r11d, %edx - 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00008a5a jmp LBB32_66 - //0x00008a5f LBB32_26 - 0x41, 0x89, 0xc4, //0x00008a5f movl %eax, %r12d - 0x45, 0x85, 0xdb, //0x00008a62 testl %r11d, %r11d - 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00008a65 js LBB32_38 - 0x4b, 0x8d, 0x34, 0x20, //0x00008a6b leaq (%r8,%r12), %rsi - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008a6f cmpl $10000, %r13d - 0x0f, 0x82, 0xa7, 0x02, 0x00, 0x00, //0x00008a76 jb LBB32_43 - 0x44, 0x89, 0xe8, //0x00008a7c movl %r13d, %eax - 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008a7f movl $3518437209, %ecx - 0x48, 0x0f, 0xaf, 0xc8, //0x00008a84 imulq %rax, %rcx - 0x48, 0xc1, 0xe9, 0x2d, //0x00008a88 shrq $45, %rcx - 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00008a8c imull $-10000, %ecx, %eax - 0x44, 0x01, 0xe8, //0x00008a92 addl %r13d, %eax - 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00008a95 imulq $1374389535, %rax, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00008a9c shrq $37, %rdx - 0x6b, 0xda, 0x64, //0x00008aa0 imull $100, %edx, %ebx - 0x29, 0xd8, //0x00008aa3 subl %ebx, %eax - 0x48, 0x8d, 0x1d, 0x94, 0x41, 0x00, 0x00, //0x00008aa5 leaq $16788(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x43, //0x00008aac movzwl (%rbx,%rax,2), %eax - 0x66, 0x89, 0x46, 0xfe, //0x00008ab0 movw %ax, $-2(%rsi) - 0x48, 0x8d, 0x46, 0xfc, //0x00008ab4 leaq $-4(%rsi), %rax - 0x0f, 0xb7, 0x14, 0x53, //0x00008ab8 movzwl (%rbx,%rdx,2), %edx - 0x66, 0x89, 0x56, 0xfc, //0x00008abc movw %dx, $-4(%rsi) - 0x41, 0x89, 0xcd, //0x00008ac0 movl %ecx, %r13d - 0x41, 0x83, 0xfd, 0x64, //0x00008ac3 cmpl $100, %r13d - 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x00008ac7 jae LBB32_44 - //0x00008acd LBB32_29 - 0x44, 0x89, 0xe9, //0x00008acd movl %r13d, %ecx - 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00008ad0 jmp LBB32_46 - //0x00008ad5 LBB32_30 - 0x45, 0x31, 0xc9, //0x00008ad5 xorl %r9d, %r9d - 0x48, 0x89, 0xd9, //0x00008ad8 movq %rbx, %rcx - 0x45, 0x89, 0xeb, //0x00008adb movl %r13d, %r11d - 0x41, 0x83, 0xfb, 0x64, //0x00008ade cmpl $100, %r11d - 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00008ae2 jb LBB32_31 - //0x00008ae8 LBB32_64 - 0x48, 0xff, 0xc9, //0x00008ae8 decq %rcx - 0x4c, 0x8d, 0x15, 0x4e, 0x41, 0x00, 0x00, //0x00008aeb leaq $16718(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008af2 .p2align 4, 0x90 - //0x00008b00 LBB32_65 - 0x44, 0x89, 0xda, //0x00008b00 movl %r11d, %edx - 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008b03 imulq $1374389535, %rdx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00008b0a shrq $37, %rdx - 0x6b, 0xc2, 0x64, //0x00008b0e imull $100, %edx, %eax - 0x44, 0x89, 0xde, //0x00008b11 movl %r11d, %esi - 0x29, 0xc6, //0x00008b14 subl %eax, %esi - 0x41, 0x0f, 0xb7, 0x04, 0x72, //0x00008b16 movzwl (%r10,%rsi,2), %eax - 0x66, 0x89, 0x41, 0xff, //0x00008b1b movw %ax, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00008b1f addq $-2, %rcx - 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008b23 cmpl $9999, %r11d - 0x41, 0x89, 0xd3, //0x00008b2a movl %edx, %r11d - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00008b2d ja LBB32_65 - //0x00008b33 LBB32_66 - 0x49, 0x8d, 0x70, 0x01, //0x00008b33 leaq $1(%r8), %rsi - 0x83, 0xfa, 0x0a, //0x00008b37 cmpl $10, %edx - 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00008b3a jb LBB32_68 - 0x89, 0xd0, //0x00008b40 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0xf7, 0x40, 0x00, 0x00, //0x00008b42 leaq $16631(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x00008b49 movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x00008b4c movb $1(%rcx,%rax,2), %al - 0x41, 0x88, 0x50, 0x01, //0x00008b50 movb %dl, $1(%r8) - 0x41, 0x88, 0x40, 0x02, //0x00008b54 movb %al, $2(%r8) - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00008b58 jmp LBB32_69 - //0x00008b5d LBB32_68 - 0x80, 0xc2, 0x30, //0x00008b5d addb $48, %dl - 0x88, 0x16, //0x00008b60 movb %dl, (%rsi) - //0x00008b62 LBB32_69 - 0x4c, 0x29, 0xcb, //0x00008b62 subq %r9, %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b65 .p2align 4, 0x90 - //0x00008b70 LBB32_70 - 0x80, 0x7b, 0xff, 0x30, //0x00008b70 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00008b74 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00008b78 je LBB32_70 - 0x41, 0x88, 0x10, //0x00008b7e movb %dl, (%r8) - 0x48, 0x8d, 0x43, 0x01, //0x00008b81 leaq $1(%rbx), %rax - 0x48, 0x89, 0xc1, //0x00008b85 movq %rax, %rcx - 0x48, 0x29, 0xf1, //0x00008b88 subq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00008b8b cmpq $2, %rcx - 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00008b8f jl LBB32_73 - 0xc6, 0x06, 0x2e, //0x00008b95 movb $46, (%rsi) - 0x48, 0x89, 0xc3, //0x00008b98 movq %rax, %rbx - //0x00008b9b LBB32_73 - 0xc6, 0x03, 0x65, //0x00008b9b movb $101, (%rbx) - 0x45, 0x85, 0xff, //0x00008b9e testl %r15d, %r15d - 0x0f, 0x8e, 0x41, 0x01, 0x00, 0x00, //0x00008ba1 jle LBB32_76 - 0x41, 0xff, 0xcf, //0x00008ba7 decl %r15d - 0xc6, 0x43, 0x01, 0x2b, //0x00008baa movb $43, $1(%rbx) - 0x44, 0x89, 0xf8, //0x00008bae movl %r15d, %eax - 0x83, 0xf8, 0x64, //0x00008bb1 cmpl $100, %eax - 0x0f, 0x8c, 0x43, 0x01, 0x00, 0x00, //0x00008bb4 jl LBB32_77 - //0x00008bba LBB32_75 - 0x89, 0xc1, //0x00008bba movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00008bbc movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00008bc1 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x00008bc5 shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x00008bc9 leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x00008bcc leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x00008bcf subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x68, 0x40, 0x00, 0x00, //0x00008bd1 leaq $16488(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x00008bd8 movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x00008bdc movw %cx, $2(%rbx) - 0x0c, 0x30, //0x00008be0 orb $48, %al - 0x88, 0x43, 0x04, //0x00008be2 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x00008be5 addq $5, %rbx - 0x49, 0x89, 0xd8, //0x00008be9 movq %rbx, %r8 - 0xe9, 0x7f, 0x08, 0x00, 0x00, //0x00008bec jmp LBB32_137 - //0x00008bf1 LBB32_32 - 0xd3, 0xee, //0x00008bf1 shrl %cl, %esi - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00008bf3 cmpl $100000, %esi - 0x0f, 0x82, 0x1a, 0x02, 0x00, 0x00, //0x00008bf9 jb LBB32_52 - 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00008bff movl $6, %eax - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00008c04 cmpl $1000000, %esi - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00008c0a jb LBB32_36 - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008c10 movl $7, %eax - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00008c15 cmpl $10000000, %esi - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00008c1b jb LBB32_36 - 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00008c21 cmpl $100000000, %esi - 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00008c27 movl $9, %eax - 0x48, 0x83, 0xd8, 0x00, //0x00008c2c sbbq $0, %rax - //0x00008c30 LBB32_36 - 0x4c, 0x01, 0xc0, //0x00008c30 addq %r8, %rax - //0x00008c33 LBB32_37 - 0x89, 0xf1, //0x00008c33 movl %esi, %ecx - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008c35 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00008c3a imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00008c3e shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008c42 imull $-10000, %edx, %ecx - 0x01, 0xf1, //0x00008c48 addl %esi, %ecx - 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00008c4a imulq $1374389535, %rcx, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00008c51 shrq $37, %rsi - 0x6b, 0xde, 0x64, //0x00008c55 imull $100, %esi, %ebx - 0x29, 0xd9, //0x00008c58 subl %ebx, %ecx - 0x48, 0x8d, 0x1d, 0xdf, 0x3f, 0x00, 0x00, //0x00008c5a leaq $16351(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4b, //0x00008c61 movzwl (%rbx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0xfe, //0x00008c65 movw %cx, $-2(%rax) - 0x0f, 0xb7, 0x0c, 0x73, //0x00008c69 movzwl (%rbx,%rsi,2), %ecx - 0x66, 0x89, 0x48, 0xfc, //0x00008c6d movw %cx, $-4(%rax) - 0x49, 0x89, 0xc1, //0x00008c71 movq %rax, %r9 - 0x48, 0x83, 0xc0, 0xfc, //0x00008c74 addq $-4, %rax - 0x89, 0xd6, //0x00008c78 movl %edx, %esi - 0x83, 0xfe, 0x64, //0x00008c7a cmpl $100, %esi - 0x0f, 0x83, 0xd5, 0x01, 0x00, 0x00, //0x00008c7d jae LBB32_56 - 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00008c83 jmp LBB32_58 - //0x00008c88 LBB32_38 - 0x45, 0x85, 0xff, //0x00008c88 testl %r15d, %r15d - 0x0f, 0x8f, 0x90, 0x04, 0x00, 0x00, //0x00008c8b jg LBB32_98 - 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00008c91 movw $11824, (%r8) - 0x49, 0x83, 0xc0, 0x02, //0x00008c97 addq $2, %r8 - 0x45, 0x85, 0xff, //0x00008c9b testl %r15d, %r15d - 0x0f, 0x89, 0x7d, 0x04, 0x00, 0x00, //0x00008c9e jns LBB32_98 - 0x31, 0xf6, //0x00008ca4 xorl %esi, %esi - 0x41, 0x83, 0xff, 0x80, //0x00008ca6 cmpl $-128, %r15d - 0x0f, 0x87, 0x5a, 0x04, 0x00, 0x00, //0x00008caa ja LBB32_96 - 0x45, 0x89, 0xfa, //0x00008cb0 movl %r15d, %r10d - 0x41, 0xf7, 0xd2, //0x00008cb3 notl %r10d - 0x49, 0xff, 0xc2, //0x00008cb6 incq %r10 - 0x4c, 0x89, 0xd6, //0x00008cb9 movq %r10, %rsi - 0x48, 0x83, 0xe6, 0x80, //0x00008cbc andq $-128, %rsi - 0x48, 0x8d, 0x46, 0x80, //0x00008cc0 leaq $-128(%rsi), %rax - 0x48, 0x89, 0xc1, //0x00008cc4 movq %rax, %rcx - 0x48, 0xc1, 0xe9, 0x07, //0x00008cc7 shrq $7, %rcx - 0x48, 0xff, 0xc1, //0x00008ccb incq %rcx - 0x41, 0x89, 0xcb, //0x00008cce movl %ecx, %r11d - 0x41, 0x83, 0xe3, 0x03, //0x00008cd1 andl $3, %r11d - 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00008cd5 cmpq $384, %rax - 0x0f, 0x83, 0x38, 0x03, 0x00, 0x00, //0x00008cdb jae LBB32_90 - 0x31, 0xdb, //0x00008ce1 xorl %ebx, %ebx - 0xe9, 0xda, 0x03, 0x00, 0x00, //0x00008ce3 jmp LBB32_92 - //0x00008ce8 LBB32_76 - 0xc6, 0x43, 0x01, 0x2d, //0x00008ce8 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008cec movl $1, %eax - 0x44, 0x29, 0xf8, //0x00008cf1 subl %r15d, %eax - 0x83, 0xf8, 0x64, //0x00008cf4 cmpl $100, %eax - 0x0f, 0x8d, 0xbd, 0xfe, 0xff, 0xff, //0x00008cf7 jge LBB32_75 - //0x00008cfd LBB32_77 - 0x83, 0xf8, 0x0a, //0x00008cfd cmpl $10, %eax - 0x0f, 0x8c, 0x02, 0x01, 0x00, 0x00, //0x00008d00 jl LBB32_79 - 0x48, 0x98, //0x00008d06 cltq - 0x48, 0x8d, 0x0d, 0x31, 0x3f, 0x00, 0x00, //0x00008d08 leaq $16177(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008d0f movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x00008d13 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00008d17 addq $4, %rbx - 0x49, 0x89, 0xd8, //0x00008d1b movq %rbx, %r8 - 0xe9, 0x4d, 0x07, 0x00, 0x00, //0x00008d1e jmp LBB32_137 - //0x00008d23 LBB32_43 - 0x48, 0x89, 0xf0, //0x00008d23 movq %rsi, %rax - 0x41, 0x83, 0xfd, 0x64, //0x00008d26 cmpl $100, %r13d - 0x0f, 0x82, 0x9d, 0xfd, 0xff, 0xff, //0x00008d2a jb LBB32_29 - //0x00008d30 LBB32_44 - 0x48, 0xff, 0xc8, //0x00008d30 decq %rax - 0x4c, 0x8d, 0x15, 0x06, 0x3f, 0x00, 0x00, //0x00008d33 leaq $16134(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d3a .p2align 4, 0x90 - //0x00008d40 LBB32_45 - 0x44, 0x89, 0xe9, //0x00008d40 movl %r13d, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008d43 imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x00008d4a shrq $37, %rcx - 0x6b, 0xd9, 0x64, //0x00008d4e imull $100, %ecx, %ebx - 0x44, 0x89, 0xea, //0x00008d51 movl %r13d, %edx - 0x29, 0xda, //0x00008d54 subl %ebx, %edx - 0x41, 0x0f, 0xb7, 0x14, 0x52, //0x00008d56 movzwl (%r10,%rdx,2), %edx - 0x66, 0x89, 0x50, 0xff, //0x00008d5b movw %dx, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x00008d5f addq $-2, %rax - 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00008d63 cmpl $9999, %r13d - 0x41, 0x89, 0xcd, //0x00008d6a movl %ecx, %r13d - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00008d6d ja LBB32_45 - //0x00008d73 LBB32_46 - 0x49, 0x63, 0xc7, //0x00008d73 movslq %r15d, %rax - 0x83, 0xf9, 0x0a, //0x00008d76 cmpl $10, %ecx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00008d79 jb LBB32_48 - 0x89, 0xc9, //0x00008d7f movl %ecx, %ecx - 0x48, 0x8d, 0x15, 0xb8, 0x3e, 0x00, 0x00, //0x00008d81 leaq $16056(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d88 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00008d8c movw %cx, (%r8) - 0x49, 0x01, 0xc0, //0x00008d90 addq %rax, %r8 - 0x49, 0x39, 0xc4, //0x00008d93 cmpq %rax, %r12 - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00008d96 jl LBB32_49 - 0xe9, 0xcf, 0x06, 0x00, 0x00, //0x00008d9c jmp LBB32_137 - //0x00008da1 LBB32_48 - 0x80, 0xc1, 0x30, //0x00008da1 addb $48, %cl - 0x41, 0x88, 0x08, //0x00008da4 movb %cl, (%r8) - 0x49, 0x01, 0xc0, //0x00008da7 addq %rax, %r8 - 0x49, 0x39, 0xc4, //0x00008daa cmpq %rax, %r12 - 0x0f, 0x8d, 0xbd, 0x06, 0x00, 0x00, //0x00008dad jge LBB32_137 - //0x00008db3 LBB32_49 - 0x4b, 0x8d, 0x04, 0x21, //0x00008db3 leaq (%r9,%r12), %rax - 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00008db7 leaq $1(%rdi,%rax), %r11 - 0x4d, 0x39, 0xc3, //0x00008dbc cmpq %r8, %r11 - 0x4d, 0x0f, 0x46, 0xd8, //0x00008dbf cmovbeq %r8, %r11 - 0x4a, 0x8d, 0x0c, 0x0f, //0x00008dc3 leaq (%rdi,%r9), %rcx - 0x4c, 0x01, 0xe1, //0x00008dc7 addq %r12, %rcx - 0x49, 0x29, 0xcb, //0x00008dca subq %rcx, %r11 - 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00008dcd cmpq $128, %r11 - 0x0f, 0x82, 0x06, 0x02, 0x00, 0x00, //0x00008dd4 jb LBB32_87 - 0x4d, 0x89, 0xda, //0x00008dda movq %r11, %r10 - 0x49, 0x83, 0xe2, 0x80, //0x00008ddd andq $-128, %r10 - 0x49, 0x8d, 0x4a, 0x80, //0x00008de1 leaq $-128(%r10), %rcx - 0x48, 0x89, 0xcb, //0x00008de5 movq %rcx, %rbx - 0x48, 0xc1, 0xeb, 0x07, //0x00008de8 shrq $7, %rbx - 0x48, 0xff, 0xc3, //0x00008dec incq %rbx - 0x89, 0xda, //0x00008def movl %ebx, %edx - 0x83, 0xe2, 0x03, //0x00008df1 andl $3, %edx - 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x00008df4 cmpq $384, %rcx - 0x0f, 0x83, 0xe8, 0x00, 0x00, 0x00, //0x00008dfb jae LBB32_80 - 0x31, 0xc0, //0x00008e01 xorl %eax, %eax - 0xe9, 0x88, 0x01, 0x00, 0x00, //0x00008e03 jmp LBB32_82 - //0x00008e08 LBB32_79 - 0x04, 0x30, //0x00008e08 addb $48, %al - 0x88, 0x43, 0x02, //0x00008e0a movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x00008e0d addq $3, %rbx - 0x49, 0x89, 0xd8, //0x00008e11 movq %rbx, %r8 - 0xe9, 0x57, 0x06, 0x00, 0x00, //0x00008e14 jmp LBB32_137 - //0x00008e19 LBB32_52 - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008e19 movl $1, %r9d - 0x83, 0xfe, 0x0a, //0x00008e1f cmpl $10, %esi - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008e22 jb LBB32_55 - 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008e28 movl $2, %r9d - 0x83, 0xfe, 0x64, //0x00008e2e cmpl $100, %esi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008e31 jb LBB32_55 - 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008e37 movl $3, %r9d - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00008e3d cmpl $1000, %esi - 0x0f, 0x83, 0xab, 0x01, 0x00, 0x00, //0x00008e43 jae LBB32_88 - //0x00008e49 LBB32_55 - 0x4d, 0x01, 0xc1, //0x00008e49 addq %r8, %r9 - 0x4c, 0x89, 0xc8, //0x00008e4c movq %r9, %rax - 0x83, 0xfe, 0x64, //0x00008e4f cmpl $100, %esi - 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00008e52 jb LBB32_58 - //0x00008e58 LBB32_56 - 0x48, 0xff, 0xc8, //0x00008e58 decq %rax - 0x4c, 0x8d, 0x15, 0xde, 0x3d, 0x00, 0x00, //0x00008e5b leaq $15838(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e62 .p2align 4, 0x90 - //0x00008e70 LBB32_57 - 0x89, 0xf3, //0x00008e70 movl %esi, %ebx - 0x89, 0xf6, //0x00008e72 movl %esi, %esi - 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00008e74 imulq $1374389535, %rsi, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00008e7b shrq $37, %rsi - 0x6b, 0xce, 0x64, //0x00008e7f imull $100, %esi, %ecx - 0x89, 0xda, //0x00008e82 movl %ebx, %edx - 0x29, 0xca, //0x00008e84 subl %ecx, %edx - 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00008e86 movzwl (%r10,%rdx,2), %ecx - 0x66, 0x89, 0x48, 0xff, //0x00008e8b movw %cx, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x00008e8f addq $-2, %rax - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008e93 cmpl $9999, %ebx - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00008e99 ja LBB32_57 - //0x00008e9f LBB32_58 - 0x83, 0xfe, 0x0a, //0x00008e9f cmpl $10, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00008ea2 jb LBB32_60 - 0x89, 0xf0, //0x00008ea8 movl %esi, %eax - 0x48, 0x8d, 0x0d, 0x8f, 0x3d, 0x00, 0x00, //0x00008eaa leaq $15759(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008eb1 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x00, //0x00008eb5 movw %ax, (%r8) - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00008eb9 jmp LBB32_61 - //0x00008ebe LBB32_60 - 0x40, 0x80, 0xc6, 0x30, //0x00008ebe addb $48, %sil - 0x41, 0x88, 0x30, //0x00008ec2 movb %sil, (%r8) - //0x00008ec5 LBB32_61 - 0x41, 0x29, 0xf9, //0x00008ec5 subl %edi, %r9d - 0x45, 0x89, 0xc8, //0x00008ec8 movl %r9d, %r8d - 0xe9, 0xa3, 0x05, 0x00, 0x00, //0x00008ecb jmp LBB32_138 - //0x00008ed0 LBB32_62 - 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00008ed0 movl $4, %r9d - 0x48, 0x8d, 0x4b, 0xfc, //0x00008ed6 leaq $-4(%rbx), %rcx - 0x41, 0x83, 0xfb, 0x64, //0x00008eda cmpl $100, %r11d - 0x0f, 0x82, 0x73, 0xfb, 0xff, 0xff, //0x00008ede jb LBB32_31 - 0xe9, 0xff, 0xfb, 0xff, 0xff, //0x00008ee4 jmp LBB32_64 - //0x00008ee9 LBB32_80 - 0x48, 0x29, 0xd3, //0x00008ee9 subq %rdx, %rbx - 0x48, 0x8d, 0x8c, 0x07, 0xe0, 0x01, 0x00, 0x00, //0x00008eec leaq $480(%rdi,%rax), %rcx - 0x31, 0xc0, //0x00008ef4 xorl %eax, %eax - 0xc5, 0xfd, 0x6f, 0x05, 0x42, 0xf8, 0xff, 0xff, //0x00008ef6 vmovdqa $-1982(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - 0x90, 0x90, //0x00008efe .p2align 4, 0x90 - //0x00008f00 LBB32_81 - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xfe, 0xff, 0xff, //0x00008f00 vmovdqu %ymm0, $-480(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xfe, 0xff, 0xff, //0x00008f09 vmovdqu %ymm0, $-448(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xfe, 0xff, 0xff, //0x00008f12 vmovdqu %ymm0, $-416(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x80, 0xfe, 0xff, 0xff, //0x00008f1b vmovdqu %ymm0, $-384(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xa0, 0xfe, 0xff, 0xff, //0x00008f24 vmovdqu %ymm0, $-352(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xc0, 0xfe, 0xff, 0xff, //0x00008f2d vmovdqu %ymm0, $-320(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0xe0, 0xfe, 0xff, 0xff, //0x00008f36 vmovdqu %ymm0, $-288(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x00, 0xff, 0xff, 0xff, //0x00008f3f vmovdqu %ymm0, $-256(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008f48 vmovdqu %ymm0, $-224(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x00008f51 vmovdqu %ymm0, $-192(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x00008f5a vmovdqu %ymm0, $-160(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0x80, //0x00008f63 vmovdqu %ymm0, $-128(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xa0, //0x00008f69 vmovdqu %ymm0, $-96(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xc0, //0x00008f6f vmovdqu %ymm0, $-64(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x01, 0xe0, //0x00008f75 vmovdqu %ymm0, $-32(%rcx,%rax) - 0xc5, 0xfe, 0x7f, 0x04, 0x01, //0x00008f7b vmovdqu %ymm0, (%rcx,%rax) - 0x48, 0x05, 0x00, 0x02, 0x00, 0x00, //0x00008f80 addq $512, %rax - 0x48, 0x83, 0xc3, 0xfc, //0x00008f86 addq $-4, %rbx - 0x0f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00008f8a jne LBB32_81 - //0x00008f90 LBB32_82 - 0x48, 0x85, 0xd2, //0x00008f90 testq %rdx, %rdx - 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00008f93 je LBB32_85 - 0x4c, 0x01, 0xc8, //0x00008f99 addq %r9, %rax - 0x4c, 0x01, 0xe0, //0x00008f9c addq %r12, %rax - 0x48, 0x8d, 0x44, 0x07, 0x60, //0x00008f9f leaq $96(%rdi,%rax), %rax - 0x48, 0xf7, 0xda, //0x00008fa4 negq %rdx - 0xc5, 0xfd, 0x6f, 0x05, 0x91, 0xf7, 0xff, 0xff, //0x00008fa7 vmovdqa $-2159(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - 0x90, //0x00008faf .p2align 4, 0x90 - //0x00008fb0 LBB32_84 - 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x00008fb0 vmovdqu %ymm0, $-96(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x00008fb5 vmovdqu %ymm0, $-64(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x00008fba vmovdqu %ymm0, $-32(%rax) - 0xc5, 0xfe, 0x7f, 0x00, //0x00008fbf vmovdqu %ymm0, (%rax) - 0x48, 0x83, 0xe8, 0x80, //0x00008fc3 subq $-128, %rax - 0x48, 0xff, 0xc2, //0x00008fc7 incq %rdx - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x00008fca jne LBB32_84 - //0x00008fd0 LBB32_85 - 0x4d, 0x39, 0xda, //0x00008fd0 cmpq %r11, %r10 - 0x0f, 0x84, 0x97, 0x04, 0x00, 0x00, //0x00008fd3 je LBB32_137 - 0x4c, 0x01, 0xd6, //0x00008fd9 addq %r10, %rsi - 0x90, 0x90, 0x90, 0x90, //0x00008fdc .p2align 4, 0x90 - //0x00008fe0 LBB32_87 - 0xc6, 0x06, 0x30, //0x00008fe0 movb $48, (%rsi) - 0x48, 0xff, 0xc6, //0x00008fe3 incq %rsi - 0x4c, 0x39, 0xc6, //0x00008fe6 cmpq %r8, %rsi - 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008fe9 jb LBB32_87 - 0xe9, 0x7c, 0x04, 0x00, 0x00, //0x00008fef jmp LBB32_137 - //0x00008ff4 LBB32_88 - 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008ff4 cmpl $10000, %esi - 0x4c, 0x89, 0xc0, //0x00008ffa movq %r8, %rax - 0x48, 0x83, 0xd8, 0x00, //0x00008ffd sbbq $0, %rax - 0x48, 0x83, 0xc0, 0x05, //0x00009001 addq $5, %rax - 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00009005 cmpl $10000, %esi - 0x0f, 0x83, 0x22, 0xfc, 0xff, 0xff, //0x0000900b jae LBB32_37 - 0x49, 0x89, 0xc1, //0x00009011 movq %rax, %r9 - 0xe9, 0x3f, 0xfe, 0xff, 0xff, //0x00009014 jmp LBB32_56 - //0x00009019 LBB32_90 - 0x49, 0x8d, 0x84, 0x39, 0xe2, 0x01, 0x00, 0x00, //0x00009019 leaq $482(%r9,%rdi), %rax - 0x4d, 0x89, 0xde, //0x00009021 movq %r11, %r14 - 0x49, 0x29, 0xce, //0x00009024 subq %rcx, %r14 - 0x31, 0xdb, //0x00009027 xorl %ebx, %ebx - 0xc5, 0xfd, 0x6f, 0x05, 0x0f, 0xf7, 0xff, 0xff, //0x00009029 vmovdqa $-2289(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - //0x00009031 LBB32_91 - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xfe, 0xff, 0xff, //0x00009031 vmovdqu %ymm0, $-480(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xfe, 0xff, 0xff, //0x0000903a vmovdqu %ymm0, $-448(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xfe, 0xff, 0xff, //0x00009043 vmovdqu %ymm0, $-416(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x80, 0xfe, 0xff, 0xff, //0x0000904c vmovdqu %ymm0, $-384(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xa0, 0xfe, 0xff, 0xff, //0x00009055 vmovdqu %ymm0, $-352(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xc0, 0xfe, 0xff, 0xff, //0x0000905e vmovdqu %ymm0, $-320(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0xe0, 0xfe, 0xff, 0xff, //0x00009067 vmovdqu %ymm0, $-288(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x00, 0xff, 0xff, 0xff, //0x00009070 vmovdqu %ymm0, $-256(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x20, 0xff, 0xff, 0xff, //0x00009079 vmovdqu %ymm0, $-224(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x40, 0xff, 0xff, 0xff, //0x00009082 vmovdqu %ymm0, $-192(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x84, 0x18, 0x60, 0xff, 0xff, 0xff, //0x0000908b vmovdqu %ymm0, $-160(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0x80, //0x00009094 vmovdqu %ymm0, $-128(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xa0, //0x0000909a vmovdqu %ymm0, $-96(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xc0, //0x000090a0 vmovdqu %ymm0, $-64(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x44, 0x18, 0xe0, //0x000090a6 vmovdqu %ymm0, $-32(%rax,%rbx) - 0xc5, 0xfe, 0x7f, 0x04, 0x18, //0x000090ac vmovdqu %ymm0, (%rax,%rbx) - 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x000090b1 addq $512, %rbx - 0x49, 0x83, 0xc6, 0x04, //0x000090b8 addq $4, %r14 - 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x000090bc jne LBB32_91 - //0x000090c2 LBB32_92 - 0x4d, 0x85, 0xdb, //0x000090c2 testq %r11, %r11 - 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000090c5 je LBB32_95 - 0x4c, 0x01, 0xcb, //0x000090cb addq %r9, %rbx - 0x48, 0x8d, 0x44, 0x1f, 0x62, //0x000090ce leaq $98(%rdi,%rbx), %rax - 0x49, 0xf7, 0xdb, //0x000090d3 negq %r11 - 0xc5, 0xfd, 0x6f, 0x05, 0x62, 0xf6, 0xff, 0xff, //0x000090d6 vmovdqa $-2462(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - //0x000090de LBB32_94 - 0xc5, 0xfe, 0x7f, 0x40, 0xa0, //0x000090de vmovdqu %ymm0, $-96(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xc0, //0x000090e3 vmovdqu %ymm0, $-64(%rax) - 0xc5, 0xfe, 0x7f, 0x40, 0xe0, //0x000090e8 vmovdqu %ymm0, $-32(%rax) - 0xc5, 0xfe, 0x7f, 0x00, //0x000090ed vmovdqu %ymm0, (%rax) - 0x48, 0x83, 0xe8, 0x80, //0x000090f1 subq $-128, %rax - 0x49, 0xff, 0xc3, //0x000090f5 incq %r11 - 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x000090f8 jne LBB32_94 - //0x000090fe LBB32_95 - 0x49, 0x01, 0xf0, //0x000090fe addq %rsi, %r8 - 0x49, 0x39, 0xf2, //0x00009101 cmpq %rsi, %r10 - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00009104 je LBB32_98 - //0x0000910a LBB32_96 - 0x44, 0x89, 0xf8, //0x0000910a movl %r15d, %eax - 0xf7, 0xd8, //0x0000910d negl %eax - 0x90, //0x0000910f .p2align 4, 0x90 - //0x00009110 LBB32_97 - 0x41, 0xc6, 0x00, 0x30, //0x00009110 movb $48, (%r8) - 0x49, 0xff, 0xc0, //0x00009114 incq %r8 - 0xff, 0xc6, //0x00009117 incl %esi - 0x39, 0xc6, //0x00009119 cmpl %eax, %esi - 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000911b jl LBB32_97 - //0x00009121 LBB32_98 - 0x4b, 0x8d, 0x04, 0x20, //0x00009121 leaq (%r8,%r12), %rax - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00009125 cmpl $10000, %r13d - 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000912c jb LBB32_101 - 0x44, 0x89, 0xe9, //0x00009132 movl %r13d, %ecx - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00009135 movl $3518437209, %r10d - 0x4c, 0x0f, 0xaf, 0xd1, //0x0000913b imulq %rcx, %r10 - 0x49, 0xc1, 0xea, 0x2d, //0x0000913f shrq $45, %r10 - 0x41, 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00009143 imull $-10000, %r10d, %ecx - 0x44, 0x01, 0xe9, //0x0000914a addl %r13d, %ecx - 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000914d je LBB32_103 - 0x89, 0xca, //0x00009153 movl %ecx, %edx - 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00009155 imulq $1374389535, %rdx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x0000915c shrq $37, %rdx - 0x6b, 0xda, 0x64, //0x00009160 imull $100, %edx, %ebx - 0x29, 0xd9, //0x00009163 subl %ebx, %ecx - 0x48, 0x8d, 0x1d, 0xd4, 0x3a, 0x00, 0x00, //0x00009165 leaq $15060(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4b, //0x0000916c movzwl (%rbx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0xfe, //0x00009170 movw %cx, $-2(%rax) - 0x0f, 0xb7, 0x0c, 0x53, //0x00009174 movzwl (%rbx,%rdx,2), %ecx - 0x66, 0x89, 0x48, 0xfc, //0x00009178 movw %cx, $-4(%rax) - 0x45, 0x31, 0xc9, //0x0000917c xorl %r9d, %r9d - 0x48, 0x83, 0xc0, 0xfc, //0x0000917f addq $-4, %rax - 0x41, 0x83, 0xfa, 0x64, //0x00009183 cmpl $100, %r10d - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00009187 jae LBB32_105 - //0x0000918d LBB32_102 - 0x44, 0x89, 0xd1, //0x0000918d movl %r10d, %ecx - 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00009190 jmp LBB32_107 - //0x00009195 LBB32_101 - 0x45, 0x31, 0xc9, //0x00009195 xorl %r9d, %r9d - 0x45, 0x89, 0xea, //0x00009198 movl %r13d, %r10d - 0x41, 0x83, 0xfa, 0x64, //0x0000919b cmpl $100, %r10d - 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x0000919f jb LBB32_102 - //0x000091a5 LBB32_105 - 0x48, 0xff, 0xc8, //0x000091a5 decq %rax - 0x48, 0x8d, 0x15, 0x91, 0x3a, 0x00, 0x00, //0x000091a8 leaq $14993(%rip), %rdx /* _Digits+0(%rip) */ - 0x90, //0x000091af .p2align 4, 0x90 - //0x000091b0 LBB32_106 - 0x44, 0x89, 0xd1, //0x000091b0 movl %r10d, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000091b3 imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x000091ba shrq $37, %rcx - 0x6b, 0xd9, 0x64, //0x000091be imull $100, %ecx, %ebx - 0x44, 0x89, 0xd6, //0x000091c1 movl %r10d, %esi - 0x29, 0xde, //0x000091c4 subl %ebx, %esi - 0x0f, 0xb7, 0x34, 0x72, //0x000091c6 movzwl (%rdx,%rsi,2), %esi - 0x66, 0x89, 0x70, 0xff, //0x000091ca movw %si, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x000091ce addq $-2, %rax - 0x41, 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000091d2 cmpl $9999, %r10d - 0x41, 0x89, 0xca, //0x000091d9 movl %ecx, %r10d - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000091dc ja LBB32_106 - //0x000091e2 LBB32_107 - 0x83, 0xf9, 0x0a, //0x000091e2 cmpl $10, %ecx - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000091e5 jb LBB32_109 - 0x89, 0xc8, //0x000091eb movl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x4c, 0x3a, 0x00, 0x00, //0x000091ed leaq $14924(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000091f4 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x00, //0x000091f8 movw %ax, (%r8) - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000091fc jmp LBB32_110 - //0x00009201 LBB32_109 - 0x80, 0xc1, 0x30, //0x00009201 addb $48, %cl - 0x41, 0x88, 0x08, //0x00009204 movb %cl, (%r8) - //0x00009207 LBB32_110 - 0x4d, 0x29, 0xcc, //0x00009207 subq %r9, %r12 - 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000920a leaq $1(%r12), %rsi - 0x49, 0x8d, 0x54, 0x24, 0x61, //0x0000920f leaq $97(%r12), %rdx - 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00009214 leaq $2(%r12), %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009219 .p2align 4, 0x90 - //0x00009220 LBB32_111 - 0x48, 0xff, 0xca, //0x00009220 decq %rdx - 0x48, 0xff, 0xce, //0x00009223 decq %rsi - 0x48, 0xff, 0xc8, //0x00009226 decq %rax - 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00009229 cmpb $48, $-1(%r8,%r12) - 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000922f leaq $-1(%r12), %r12 - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009234 je LBB32_111 - 0x4d, 0x8d, 0x0c, 0x30, //0x0000923a leaq (%r8,%rsi), %r9 - 0x45, 0x85, 0xff, //0x0000923e testl %r15d, %r15d - 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00009241 jle LBB32_116 - 0x44, 0x89, 0xc9, //0x00009247 movl %r9d, %ecx - 0x44, 0x29, 0xc1, //0x0000924a subl %r8d, %ecx - 0x41, 0x39, 0xcf, //0x0000924d cmpl %ecx, %r15d - 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00009250 jge LBB32_117 - 0x43, 0x8d, 0x0c, 0x07, //0x00009256 leal (%r15,%r8), %ecx - 0x41, 0x29, 0xc9, //0x0000925a subl %ecx, %r9d - 0x49, 0x8d, 0x49, 0xff, //0x0000925d leaq $-1(%r9), %rcx - 0x45, 0x89, 0xca, //0x00009261 movl %r9d, %r10d - 0x41, 0x83, 0xe2, 0x03, //0x00009264 andl $3, %r10d - 0x48, 0x83, 0xf9, 0x03, //0x00009268 cmpq $3, %rcx - 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000926c jae LBB32_121 - 0x31, 0xc9, //0x00009272 xorl %ecx, %ecx - 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00009274 jmp LBB32_124 - //0x00009279 LBB32_117 - 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00009279 jle LBB32_116 - 0x45, 0x01, 0xc7, //0x0000927f addl %r8d, %r15d - 0x45, 0x89, 0xce, //0x00009282 movl %r9d, %r14d - 0x41, 0xf7, 0xd6, //0x00009285 notl %r14d - 0x45, 0x01, 0xfe, //0x00009288 addl %r15d, %r14d - 0x45, 0x31, 0xd2, //0x0000928b xorl %r10d, %r10d - 0x4d, 0x89, 0xcb, //0x0000928e movq %r9, %r11 - 0x41, 0x83, 0xfe, 0x7e, //0x00009291 cmpl $126, %r14d - 0x0f, 0x86, 0xb4, 0x01, 0x00, 0x00, //0x00009295 jbe LBB32_135 - 0x49, 0xff, 0xc6, //0x0000929b incq %r14 - 0x4d, 0x89, 0xf2, //0x0000929e movq %r14, %r10 - 0x49, 0x83, 0xe2, 0x80, //0x000092a1 andq $-128, %r10 - 0x4f, 0x8d, 0x1c, 0x10, //0x000092a5 leaq (%r8,%r10), %r11 - 0x49, 0x8d, 0x5a, 0x80, //0x000092a9 leaq $-128(%r10), %rbx - 0x48, 0x89, 0xd9, //0x000092ad movq %rbx, %rcx - 0x48, 0xc1, 0xe9, 0x07, //0x000092b0 shrq $7, %rcx - 0x48, 0xff, 0xc1, //0x000092b4 incq %rcx - 0x41, 0x89, 0xcc, //0x000092b7 movl %ecx, %r12d - 0x41, 0x83, 0xe4, 0x03, //0x000092ba andl $3, %r12d - 0x48, 0x81, 0xfb, 0x80, 0x01, 0x00, 0x00, //0x000092be cmpq $384, %rbx - 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000092c5 jae LBB32_129 - 0x31, 0xc9, //0x000092cb xorl %ecx, %ecx - 0xe9, 0x30, 0x01, 0x00, 0x00, //0x000092cd jmp LBB32_131 - //0x000092d2 LBB32_116 - 0x4d, 0x89, 0xc8, //0x000092d2 movq %r9, %r8 - 0xe9, 0x96, 0x01, 0x00, 0x00, //0x000092d5 jmp LBB32_137 - //0x000092da LBB32_103 - 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000092da movl $4, %r9d - 0x48, 0x83, 0xc0, 0xfc, //0x000092e0 addq $-4, %rax - 0x41, 0x83, 0xfa, 0x64, //0x000092e4 cmpl $100, %r10d - 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x000092e8 jb LBB32_102 - 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x000092ee jmp LBB32_105 - //0x000092f3 LBB32_121 - 0x4d, 0x89, 0xd3, //0x000092f3 movq %r10, %r11 - 0x4d, 0x29, 0xcb, //0x000092f6 subq %r9, %r11 - 0x31, 0xc9, //0x000092f9 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000092fb .p2align 4, 0x90 - //0x00009300 LBB32_122 - 0x49, 0x8d, 0x1c, 0x08, //0x00009300 leaq (%r8,%rcx), %rbx - 0x8b, 0x54, 0x1e, 0xfc, //0x00009304 movl $-4(%rsi,%rbx), %edx - 0x89, 0x54, 0x1e, 0xfd, //0x00009308 movl %edx, $-3(%rsi,%rbx) - 0x48, 0x83, 0xc1, 0xfc, //0x0000930c addq $-4, %rcx - 0x49, 0x39, 0xcb, //0x00009310 cmpq %rcx, %r11 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00009313 jne LBB32_122 - 0x48, 0xf7, 0xd9, //0x00009319 negq %rcx - //0x0000931c LBB32_124 - 0x4d, 0x85, 0xd2, //0x0000931c testq %r10, %r10 - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000931f je LBB32_127 - 0x49, 0xf7, 0xda, //0x00009325 negq %r10 - 0x4c, 0x89, 0xc2, //0x00009328 movq %r8, %rdx - 0x48, 0x29, 0xca, //0x0000932b subq %rcx, %rdx - 0x31, 0xc9, //0x0000932e xorl %ecx, %ecx - //0x00009330 .p2align 4, 0x90 - //0x00009330 LBB32_126 - 0x48, 0x8d, 0x34, 0x0a, //0x00009330 leaq (%rdx,%rcx), %rsi - 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00009334 movzbl (%r12,%rsi), %ebx - 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00009339 movb %bl, $1(%r12,%rsi) - 0x48, 0xff, 0xc9, //0x0000933e decq %rcx - 0x49, 0x39, 0xca, //0x00009341 cmpq %rcx, %r10 - 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00009344 jne LBB32_126 - //0x0000934a LBB32_127 - 0x49, 0x63, 0xcf, //0x0000934a movslq %r15d, %rcx - 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000934d movb $46, (%r8,%rcx) - 0x49, 0x01, 0xc0, //0x00009352 addq %rax, %r8 - 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00009355 jmp LBB32_137 - //0x0000935a LBB32_129 - 0x4c, 0x89, 0xe3, //0x0000935a movq %r12, %rbx - 0x48, 0x29, 0xcb, //0x0000935d subq %rcx, %rbx - 0x31, 0xc9, //0x00009360 xorl %ecx, %ecx - 0xc5, 0xfd, 0x6f, 0x05, 0xd6, 0xf3, 0xff, 0xff, //0x00009362 vmovdqa $-3114(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - //0x0000936a LBB32_130 - 0x49, 0x8d, 0x04, 0x08, //0x0000936a leaq (%r8,%rcx), %rax - 0xc5, 0xfe, 0x7f, 0x04, 0x06, //0x0000936e vmovdqu %ymm0, (%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x20, //0x00009373 vmovdqu %ymm0, $32(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x40, //0x00009379 vmovdqu %ymm0, $64(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x44, 0x06, 0x60, //0x0000937f vmovdqu %ymm0, $96(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x00, 0x00, 0x00, //0x00009385 vmovdqu %ymm0, $128(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x00, 0x00, 0x00, //0x0000938e vmovdqu %ymm0, $160(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x00, 0x00, 0x00, //0x00009397 vmovdqu %ymm0, $192(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x00, 0x00, 0x00, //0x000093a0 vmovdqu %ymm0, $224(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x00, 0x01, 0x00, 0x00, //0x000093a9 vmovdqu %ymm0, $256(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x20, 0x01, 0x00, 0x00, //0x000093b2 vmovdqu %ymm0, $288(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x40, 0x01, 0x00, 0x00, //0x000093bb vmovdqu %ymm0, $320(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x60, 0x01, 0x00, 0x00, //0x000093c4 vmovdqu %ymm0, $352(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0x80, 0x01, 0x00, 0x00, //0x000093cd vmovdqu %ymm0, $384(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xa0, 0x01, 0x00, 0x00, //0x000093d6 vmovdqu %ymm0, $416(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xc0, 0x01, 0x00, 0x00, //0x000093df vmovdqu %ymm0, $448(%rsi,%rax) - 0xc5, 0xfe, 0x7f, 0x84, 0x06, 0xe0, 0x01, 0x00, 0x00, //0x000093e8 vmovdqu %ymm0, $480(%rsi,%rax) - 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x000093f1 addq $512, %rcx - 0x48, 0x83, 0xc3, 0x04, //0x000093f8 addq $4, %rbx - 0x0f, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000093fc jne LBB32_130 - //0x00009402 LBB32_131 - 0x49, 0x01, 0xf3, //0x00009402 addq %rsi, %r11 - 0x4d, 0x85, 0xe4, //0x00009405 testq %r12, %r12 - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00009408 je LBB32_134 - 0x49, 0x01, 0xc8, //0x0000940e addq %rcx, %r8 - 0x49, 0x01, 0xd0, //0x00009411 addq %rdx, %r8 - 0x49, 0xf7, 0xdc, //0x00009414 negq %r12 - 0xc5, 0xfd, 0x6f, 0x05, 0x21, 0xf3, 0xff, 0xff, //0x00009417 vmovdqa $-3295(%rip), %ymm0 /* LCPI32_0+0(%rip) */ - //0x0000941f LBB32_133 - 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xa0, //0x0000941f vmovdqu %ymm0, $-96(%r8) - 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xc0, //0x00009425 vmovdqu %ymm0, $-64(%r8) - 0xc4, 0xc1, 0x7e, 0x7f, 0x40, 0xe0, //0x0000942b vmovdqu %ymm0, $-32(%r8) - 0xc4, 0xc1, 0x7e, 0x7f, 0x00, //0x00009431 vmovdqu %ymm0, (%r8) - 0x49, 0x83, 0xe8, 0x80, //0x00009436 subq $-128, %r8 - 0x49, 0xff, 0xc4, //0x0000943a incq %r12 - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000943d jne LBB32_133 - //0x00009443 LBB32_134 - 0x4d, 0x89, 0xd8, //0x00009443 movq %r11, %r8 - 0x4d, 0x39, 0xd6, //0x00009446 cmpq %r10, %r14 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00009449 je LBB32_137 - //0x0000944f LBB32_135 - 0x45, 0x29, 0xd7, //0x0000944f subl %r10d, %r15d - 0x45, 0x29, 0xcf, //0x00009452 subl %r9d, %r15d - 0x4d, 0x89, 0xd8, //0x00009455 movq %r11, %r8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009458 .p2align 4, 0x90 - //0x00009460 LBB32_136 - 0x41, 0xc6, 0x00, 0x30, //0x00009460 movb $48, (%r8) - 0x49, 0xff, 0xc0, //0x00009464 incq %r8 - 0x41, 0xff, 0xcf, //0x00009467 decl %r15d - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000946a jne LBB32_136 - //0x00009470 LBB32_137 - 0x41, 0x29, 0xf8, //0x00009470 subl %edi, %r8d - //0x00009473 LBB32_138 - 0x44, 0x89, 0xc0, //0x00009473 movl %r8d, %eax - 0x5b, //0x00009476 popq %rbx - 0x41, 0x5c, //0x00009477 popq %r12 - 0x41, 0x5d, //0x00009479 popq %r13 - 0x41, 0x5e, //0x0000947b popq %r14 - 0x41, 0x5f, //0x0000947d popq %r15 - 0x5d, //0x0000947f popq %rbp - 0xc5, 0xf8, 0x77, //0x00009480 vzeroupper - 0xc3, //0x00009483 retq - //0x00009484 LBB32_139 - 0x45, 0x31, 0xc0, //0x00009484 xorl %r8d, %r8d - 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x00009487 jmp LBB32_138 - //0x0000948c LBB32_140 - 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x0000948c movl $-149, %r15d - 0x89, 0xc6, //0x00009492 movl %eax, %esi - 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x00009494 jmp LBB32_5 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009499 .p2align 4, 0x00 - //0x000094a0 LCPI33_0 - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x000094a0 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' - //0x000094b0 LCPI33_1 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000094b0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x000094c0 LCPI33_2 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000094c0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000094d0 .p2align 5, 0x00 - //0x000094e0 LCPI33_3 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000094e0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000094f0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x00009500 LCPI33_4 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00009500 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00009510 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x00009520 LCPI33_5 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009520 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009530 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00009540 .p2align 4, 0x90 - //0x00009540 _to_lower - 0x55, //0x00009540 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009541 movq %rsp, %rbp - 0x48, 0x83, 0xfa, 0x10, //0x00009544 cmpq $16, %rdx - 0x0f, 0x82, 0xdf, 0x00, 0x00, 0x00, //0x00009548 jb LBB33_8 - 0x48, 0x8d, 0x4a, 0xf0, //0x0000954e leaq $-16(%rdx), %rcx - 0xf6, 0xc1, 0x10, //0x00009552 testb $16, %cl - 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00009555 jne LBB33_2 - 0xc5, 0xfa, 0x6f, 0x06, //0x0000955b vmovdqu (%rsi), %xmm0 - 0xc5, 0xf9, 0x64, 0x0d, 0x39, 0xff, 0xff, 0xff, //0x0000955f vpcmpgtb $-199(%rip), %xmm0, %xmm1 /* LCPI33_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0x41, 0xff, 0xff, 0xff, //0x00009567 vmovdqa $-191(%rip), %xmm2 /* LCPI33_1+0(%rip) */ - 0xc5, 0xe9, 0x64, 0xd0, //0x0000956f vpcmpgtb %xmm0, %xmm2, %xmm2 - 0xc5, 0xe9, 0xdb, 0xc9, //0x00009573 vpand %xmm1, %xmm2, %xmm1 - 0xc5, 0xf1, 0xdb, 0x0d, 0x41, 0xff, 0xff, 0xff, //0x00009577 vpand $-191(%rip), %xmm1, %xmm1 /* LCPI33_2+0(%rip) */ - 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x0000957f vpsllw $5, %xmm1, %xmm1 - 0xc5, 0xf1, 0xfc, 0xc0, //0x00009584 vpaddb %xmm0, %xmm1, %xmm0 - 0xc5, 0xfa, 0x7f, 0x07, //0x00009588 vmovdqu %xmm0, (%rdi) - 0x48, 0x83, 0xc6, 0x10, //0x0000958c addq $16, %rsi - 0x48, 0x83, 0xc7, 0x10, //0x00009590 addq $16, %rdi - 0x48, 0x89, 0xc8, //0x00009594 movq %rcx, %rax - 0x48, 0x83, 0xf9, 0x10, //0x00009597 cmpq $16, %rcx - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x0000959b jae LBB33_5 - 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000095a1 jmp LBB33_7 - //0x000095a6 LBB33_2 - 0x48, 0x89, 0xd0, //0x000095a6 movq %rdx, %rax - 0x48, 0x83, 0xf9, 0x10, //0x000095a9 cmpq $16, %rcx - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000095ad jb LBB33_7 - //0x000095b3 LBB33_5 - 0xc5, 0xf9, 0x6f, 0x05, 0xe5, 0xfe, 0xff, 0xff, //0x000095b3 vmovdqa $-283(%rip), %xmm0 /* LCPI33_0+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x0d, 0xed, 0xfe, 0xff, 0xff, //0x000095bb vmovdqa $-275(%rip), %xmm1 /* LCPI33_1+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x15, 0xf5, 0xfe, 0xff, 0xff, //0x000095c3 vmovdqa $-267(%rip), %xmm2 /* LCPI33_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, //0x000095cb .p2align 4, 0x90 - //0x000095d0 LBB33_6 - 0xc5, 0xfa, 0x6f, 0x1e, //0x000095d0 vmovdqu (%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x000095d4 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x000095d8 vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x000095dc vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x000095e0 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x000095e4 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x000095e9 vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x1f, //0x000095ed vmovdqu %xmm3, (%rdi) - 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x000095f1 vmovdqu $16(%rsi), %xmm3 - 0xc5, 0xe1, 0x64, 0xe0, //0x000095f6 vpcmpgtb %xmm0, %xmm3, %xmm4 - 0xc5, 0xf1, 0x64, 0xeb, //0x000095fa vpcmpgtb %xmm3, %xmm1, %xmm5 - 0xc5, 0xd1, 0xdb, 0xe4, //0x000095fe vpand %xmm4, %xmm5, %xmm4 - 0xc5, 0xd9, 0xdb, 0xe2, //0x00009602 vpand %xmm2, %xmm4, %xmm4 - 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00009606 vpsllw $5, %xmm4, %xmm4 - 0xc5, 0xd9, 0xfc, 0xdb, //0x0000960b vpaddb %xmm3, %xmm4, %xmm3 - 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x0000960f vmovdqu %xmm3, $16(%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x00009614 addq $32, %rsi - 0x48, 0x83, 0xc7, 0x20, //0x00009618 addq $32, %rdi - 0x48, 0x83, 0xc0, 0xe0, //0x0000961c addq $-32, %rax - 0x48, 0x83, 0xf8, 0x0f, //0x00009620 cmpq $15, %rax - 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x00009624 ja LBB33_6 - //0x0000962a LBB33_7 - 0x83, 0xe2, 0x0f, //0x0000962a andl $15, %edx - //0x0000962d LBB33_8 - 0x48, 0x85, 0xd2, //0x0000962d testq %rdx, %rdx - 0x0f, 0x84, 0x99, 0x01, 0x00, 0x00, //0x00009630 je LBB33_22 - 0x48, 0x83, 0xfa, 0x7f, //0x00009636 cmpq $127, %rdx - 0x0f, 0x86, 0x1a, 0x00, 0x00, 0x00, //0x0000963a jbe LBB33_10 - 0x48, 0x8d, 0x04, 0x16, //0x00009640 leaq (%rsi,%rdx), %rax - 0x48, 0x39, 0xc7, //0x00009644 cmpq %rax, %rdi - 0x0f, 0x83, 0xa7, 0x00, 0x00, 0x00, //0x00009647 jae LBB33_19 - 0x48, 0x8d, 0x04, 0x17, //0x0000964d leaq (%rdi,%rdx), %rax - 0x48, 0x39, 0xc6, //0x00009651 cmpq %rax, %rsi - 0x0f, 0x83, 0x9a, 0x00, 0x00, 0x00, //0x00009654 jae LBB33_19 - //0x0000965a LBB33_10 - 0x49, 0x89, 0xf2, //0x0000965a movq %rsi, %r10 - 0x49, 0x89, 0xd0, //0x0000965d movq %rdx, %r8 - 0x48, 0x89, 0xf9, //0x00009660 movq %rdi, %rcx - //0x00009663 LBB33_11 - 0x41, 0xf6, 0xc0, 0x01, //0x00009663 testb $1, %r8b - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00009667 jne LBB33_13 - 0x4d, 0x89, 0xc1, //0x0000966d movq %r8, %r9 - 0x49, 0x83, 0xf8, 0x01, //0x00009670 cmpq $1, %r8 - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00009674 jne LBB33_15 - 0xe9, 0x50, 0x01, 0x00, 0x00, //0x0000967a jmp LBB33_22 - //0x0000967f LBB33_13 - 0x41, 0x0f, 0xb6, 0x02, //0x0000967f movzbl (%r10), %eax - 0x8d, 0x50, 0xbf, //0x00009683 leal $-65(%rax), %edx - 0x8d, 0x70, 0x20, //0x00009686 leal $32(%rax), %esi - 0x80, 0xfa, 0x1a, //0x00009689 cmpb $26, %dl - 0x40, 0x0f, 0xb6, 0xf6, //0x0000968c movzbl %sil, %esi - 0x0f, 0x43, 0xf0, //0x00009690 cmovael %eax, %esi - 0x4d, 0x8d, 0x48, 0xff, //0x00009693 leaq $-1(%r8), %r9 - 0x40, 0x88, 0x31, //0x00009697 movb %sil, (%rcx) - 0x49, 0xff, 0xc2, //0x0000969a incq %r10 - 0x48, 0xff, 0xc1, //0x0000969d incq %rcx - 0x49, 0x83, 0xf8, 0x01, //0x000096a0 cmpq $1, %r8 - 0x0f, 0x84, 0x25, 0x01, 0x00, 0x00, //0x000096a4 je LBB33_22 - //0x000096aa LBB33_15 - 0x31, 0xf6, //0x000096aa xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, //0x000096ac .p2align 4, 0x90 - //0x000096b0 LBB33_16 - 0x41, 0x0f, 0xb6, 0x04, 0x32, //0x000096b0 movzbl (%r10,%rsi), %eax - 0x8d, 0x78, 0xbf, //0x000096b5 leal $-65(%rax), %edi - 0x8d, 0x50, 0x20, //0x000096b8 leal $32(%rax), %edx - 0x40, 0x80, 0xff, 0x1a, //0x000096bb cmpb $26, %dil - 0x0f, 0xb6, 0xd2, //0x000096bf movzbl %dl, %edx - 0x0f, 0x43, 0xd0, //0x000096c2 cmovael %eax, %edx - 0x88, 0x14, 0x31, //0x000096c5 movb %dl, (%rcx,%rsi) - 0x41, 0x0f, 0xb6, 0x44, 0x32, 0x01, //0x000096c8 movzbl $1(%r10,%rsi), %eax - 0x8d, 0x50, 0xbf, //0x000096ce leal $-65(%rax), %edx - 0x8d, 0x78, 0x20, //0x000096d1 leal $32(%rax), %edi - 0x80, 0xfa, 0x1a, //0x000096d4 cmpb $26, %dl - 0x40, 0x0f, 0xb6, 0xd7, //0x000096d7 movzbl %dil, %edx - 0x0f, 0x43, 0xd0, //0x000096db cmovael %eax, %edx - 0x88, 0x54, 0x31, 0x01, //0x000096de movb %dl, $1(%rcx,%rsi) - 0x48, 0x83, 0xc6, 0x02, //0x000096e2 addq $2, %rsi - 0x49, 0x39, 0xf1, //0x000096e6 cmpq %rsi, %r9 - 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x000096e9 jne LBB33_16 - 0xe9, 0xdb, 0x00, 0x00, 0x00, //0x000096ef jmp LBB33_22 - //0x000096f4 LBB33_19 - 0x49, 0x89, 0xd1, //0x000096f4 movq %rdx, %r9 - 0x49, 0x83, 0xe1, 0x80, //0x000096f7 andq $-128, %r9 - 0x4e, 0x8d, 0x14, 0x0e, //0x000096fb leaq (%rsi,%r9), %r10 - 0x41, 0x89, 0xd0, //0x000096ff movl %edx, %r8d - 0x41, 0x83, 0xe0, 0x7f, //0x00009702 andl $127, %r8d - 0x4a, 0x8d, 0x0c, 0x0f, //0x00009706 leaq (%rdi,%r9), %rcx - 0x31, 0xc0, //0x0000970a xorl %eax, %eax - 0xc5, 0xfd, 0x6f, 0x05, 0xcc, 0xfd, 0xff, 0xff, //0x0000970c vmovdqa $-564(%rip), %ymm0 /* LCPI33_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0xe4, 0xfd, 0xff, 0xff, //0x00009714 vmovdqa $-540(%rip), %ymm1 /* LCPI33_4+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0xfc, 0xfd, 0xff, 0xff, //0x0000971c vmovdqa $-516(%rip), %ymm2 /* LCPI33_5+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009724 .p2align 4, 0x90 - //0x00009730 LBB33_20 - 0xc5, 0xfe, 0x6f, 0x1c, 0x06, //0x00009730 vmovdqu (%rsi,%rax), %ymm3 - 0xc5, 0xfe, 0x6f, 0x64, 0x06, 0x20, //0x00009735 vmovdqu $32(%rsi,%rax), %ymm4 - 0xc5, 0xfe, 0x6f, 0x6c, 0x06, 0x40, //0x0000973b vmovdqu $64(%rsi,%rax), %ymm5 - 0xc5, 0xfe, 0x6f, 0x74, 0x06, 0x60, //0x00009741 vmovdqu $96(%rsi,%rax), %ymm6 - 0xc5, 0xe5, 0xfc, 0xf8, //0x00009747 vpaddb %ymm0, %ymm3, %ymm7 - 0xc5, 0x5d, 0xfc, 0xc0, //0x0000974b vpaddb %ymm0, %ymm4, %ymm8 - 0xc5, 0x55, 0xfc, 0xc8, //0x0000974f vpaddb %ymm0, %ymm5, %ymm9 - 0xc5, 0x4d, 0xfc, 0xd0, //0x00009753 vpaddb %ymm0, %ymm6, %ymm10 - 0xc5, 0x45, 0xda, 0xd9, //0x00009757 vpminub %ymm1, %ymm7, %ymm11 - 0xc5, 0xa5, 0x74, 0xff, //0x0000975b vpcmpeqb %ymm7, %ymm11, %ymm7 - 0xc5, 0x3d, 0xda, 0xd9, //0x0000975f vpminub %ymm1, %ymm8, %ymm11 - 0xc4, 0x41, 0x3d, 0x74, 0xc3, //0x00009763 vpcmpeqb %ymm11, %ymm8, %ymm8 - 0xc5, 0x35, 0xda, 0xd9, //0x00009768 vpminub %ymm1, %ymm9, %ymm11 - 0xc4, 0x41, 0x35, 0x74, 0xcb, //0x0000976c vpcmpeqb %ymm11, %ymm9, %ymm9 - 0xc5, 0x2d, 0xda, 0xd9, //0x00009771 vpminub %ymm1, %ymm10, %ymm11 - 0xc4, 0x41, 0x2d, 0x74, 0xd3, //0x00009775 vpcmpeqb %ymm11, %ymm10, %ymm10 - 0xc5, 0x65, 0xfc, 0xda, //0x0000977a vpaddb %ymm2, %ymm3, %ymm11 - 0xc5, 0x5d, 0xfc, 0xe2, //0x0000977e vpaddb %ymm2, %ymm4, %ymm12 - 0xc5, 0x55, 0xfc, 0xea, //0x00009782 vpaddb %ymm2, %ymm5, %ymm13 - 0xc5, 0x4d, 0xfc, 0xf2, //0x00009786 vpaddb %ymm2, %ymm6, %ymm14 - 0xc4, 0xc3, 0x65, 0x4c, 0xdb, 0x70, //0x0000978a vpblendvb %ymm7, %ymm11, %ymm3, %ymm3 - 0xc4, 0xc3, 0x5d, 0x4c, 0xe4, 0x80, //0x00009790 vpblendvb %ymm8, %ymm12, %ymm4, %ymm4 - 0xc4, 0xc3, 0x55, 0x4c, 0xed, 0x90, //0x00009796 vpblendvb %ymm9, %ymm13, %ymm5, %ymm5 - 0xc4, 0xc3, 0x4d, 0x4c, 0xf6, 0xa0, //0x0000979c vpblendvb %ymm10, %ymm14, %ymm6, %ymm6 - 0xc5, 0xfe, 0x7f, 0x1c, 0x07, //0x000097a2 vmovdqu %ymm3, (%rdi,%rax) - 0xc5, 0xfe, 0x7f, 0x64, 0x07, 0x20, //0x000097a7 vmovdqu %ymm4, $32(%rdi,%rax) - 0xc5, 0xfe, 0x7f, 0x6c, 0x07, 0x40, //0x000097ad vmovdqu %ymm5, $64(%rdi,%rax) - 0xc5, 0xfe, 0x7f, 0x74, 0x07, 0x60, //0x000097b3 vmovdqu %ymm6, $96(%rdi,%rax) - 0x48, 0x83, 0xe8, 0x80, //0x000097b9 subq $-128, %rax - 0x49, 0x39, 0xc1, //0x000097bd cmpq %rax, %r9 - 0x0f, 0x85, 0x6a, 0xff, 0xff, 0xff, //0x000097c0 jne LBB33_20 - 0x4c, 0x39, 0xca, //0x000097c6 cmpq %r9, %rdx - 0x0f, 0x85, 0x94, 0xfe, 0xff, 0xff, //0x000097c9 jne LBB33_11 - //0x000097cf LBB33_22 - 0x5d, //0x000097cf popq %rbp - 0xc5, 0xf8, 0x77, //0x000097d0 vzeroupper - 0xc3, //0x000097d3 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000097d4 .p2align 4, 0x90 - //0x000097e0 _format_significand - 0x55, //0x000097e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000097e1 movq %rsp, %rbp - 0x41, 0x56, //0x000097e4 pushq %r14 - 0x53, //0x000097e6 pushq %rbx - 0x4c, 0x63, 0xc2, //0x000097e7 movslq %edx, %r8 - 0x49, 0x01, 0xf0, //0x000097ea addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x000097ed movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x000097f0 shrq $32, %rax - 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x000097f4 je LBB34_1 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000097fa movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00009804 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00009807 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x0000980a shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x0000980e imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00009814 addl %edi, %ecx - 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00009816 je LBB34_3 - 0x89, 0xc8, //0x0000981c movl %ecx, %eax - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x0000981e movl $3518437209, %r9d - 0x49, 0x0f, 0xaf, 0xc1, //0x00009824 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00009828 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x0000982c imull $10000, %eax, %edi - 0x29, 0xf9, //0x00009832 subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00009834 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00009837 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x0000983b shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x0000983f imull $10000, %edi, %edi - 0x29, 0xf8, //0x00009845 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00009847 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x0000984a shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x0000984d imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00009854 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00009858 imull $100, %r9d, %edi - 0x29, 0xf9, //0x0000985c subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x0000985e movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00009862 movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00009865 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00009868 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x0000986e shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00009871 imull $100, %edi, %ecx - 0x29, 0xc8, //0x00009874 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00009876 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0xbf, 0x33, 0x00, 0x00, //0x0000987a leaq $13247(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00009881 movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00009886 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x0000988b movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00009890 movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00009895 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x0000989a movw %ax, $-6(%r8) - 0x0f, 0xb7, 0x04, 0x79, //0x0000989f movzwl (%rcx,%rdi,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xf8, //0x000098a3 movw %ax, $-8(%r8) - 0x45, 0x31, 0xc9, //0x000098a8 xorl %r9d, %r9d - 0xe9, 0x22, 0x00, 0x00, 0x00, //0x000098ab jmp LBB34_5 - //0x000098b0 LBB34_1 - 0x45, 0x31, 0xc9, //0x000098b0 xorl %r9d, %r9d - 0x4d, 0x89, 0xc6, //0x000098b3 movq %r8, %r14 - 0x48, 0x89, 0xfa, //0x000098b6 movq %rdi, %rdx - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x000098b9 cmpl $10000, %edx - 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x000098bf jae LBB34_8 - //0x000098c5 LBB34_7 - 0x89, 0xd7, //0x000098c5 movl %edx, %edi - 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x000098c7 jmp LBB34_10 - //0x000098cc LBB34_3 - 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x000098cc movl $8, %r9d - //0x000098d2 LBB34_5 - 0x4d, 0x8d, 0x70, 0xf8, //0x000098d2 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x000098d6 cmpl $10000, %edx - 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x000098dc jb LBB34_7 - //0x000098e2 LBB34_8 - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000098e2 movl $3518437209, %r10d - 0x4c, 0x8d, 0x1d, 0x51, 0x33, 0x00, 0x00, //0x000098e8 leaq $13137(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, //0x000098ef .p2align 4, 0x90 - //0x000098f0 LBB34_9 - 0x89, 0xd7, //0x000098f0 movl %edx, %edi - 0x49, 0x0f, 0xaf, 0xfa, //0x000098f2 imulq %r10, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x000098f6 shrq $45, %rdi - 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x000098fa imull $-10000, %edi, %eax - 0x01, 0xd0, //0x00009900 addl %edx, %eax - 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00009902 imulq $1374389535, %rax, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00009909 shrq $37, %rbx - 0x6b, 0xcb, 0x64, //0x0000990d imull $100, %ebx, %ecx - 0x29, 0xc8, //0x00009910 subl %ecx, %eax - 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00009912 movzwl (%r11,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009917 movw %ax, $-2(%r14) - 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x0000991c movzwl (%r11,%rbx,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00009921 movw %ax, $-4(%r14) - 0x49, 0x83, 0xc6, 0xfc, //0x00009926 addq $-4, %r14 - 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x0000992a cmpl $99999999, %edx - 0x89, 0xfa, //0x00009930 movl %edi, %edx - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00009932 ja LBB34_9 - //0x00009938 LBB34_10 - 0x83, 0xff, 0x64, //0x00009938 cmpl $100, %edi - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000993b jae LBB34_11 - 0x83, 0xff, 0x0a, //0x00009941 cmpl $10, %edi - 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00009944 jb LBB34_14 - //0x0000994a LBB34_13 - 0x89, 0xf8, //0x0000994a movl %edi, %eax - 0x48, 0x8d, 0x0d, 0xed, 0x32, 0x00, 0x00, //0x0000994c leaq $13037(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00009953 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009957 movw %ax, $-2(%r14) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x0000995c jmp LBB34_15 - //0x00009961 LBB34_11 - 0x0f, 0xb7, 0xc7, //0x00009961 movzwl %di, %eax - 0xc1, 0xe8, 0x02, //0x00009964 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00009967 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x0000996d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00009970 imull $100, %eax, %ecx - 0x29, 0xcf, //0x00009973 subl %ecx, %edi - 0x0f, 0xb7, 0xcf, //0x00009975 movzwl %di, %ecx - 0x48, 0x8d, 0x15, 0xc1, 0x32, 0x00, 0x00, //0x00009978 leaq $12993(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x0000997f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00009983 movw %cx, $-2(%r14) - 0x49, 0x83, 0xc6, 0xfe, //0x00009988 addq $-2, %r14 - 0x89, 0xc7, //0x0000998c movl %eax, %edi - 0x83, 0xff, 0x0a, //0x0000998e cmpl $10, %edi - 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00009991 jae LBB34_13 - //0x00009997 LBB34_14 - 0x40, 0x80, 0xc7, 0x30, //0x00009997 addb $48, %dil - 0x40, 0x88, 0x3e, //0x0000999b movb %dil, (%rsi) - //0x0000999e LBB34_15 - 0x4d, 0x29, 0xc8, //0x0000999e subq %r9, %r8 - 0x4c, 0x89, 0xc0, //0x000099a1 movq %r8, %rax - 0x5b, //0x000099a4 popq %rbx - 0x41, 0x5e, //0x000099a5 popq %r14 - 0x5d, //0x000099a7 popq %rbp - 0xc3, //0x000099a8 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000099a9 .p2align 4, 0x90 - //0x000099b0 _left_shift - 0x55, //0x000099b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000099b1 movq %rsp, %rbp - 0x41, 0x56, //0x000099b4 pushq %r14 - 0x53, //0x000099b6 pushq %rbx - 0x89, 0xf1, //0x000099b7 movl %esi, %ecx - 0x48, 0x6b, 0xd1, 0x68, //0x000099b9 imulq $104, %rcx, %rdx - 0x48, 0x8d, 0x35, 0x6c, 0x8c, 0x00, 0x00, //0x000099bd leaq $35948(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ - 0x44, 0x8b, 0x04, 0x32, //0x000099c4 movl (%rdx,%rsi), %r8d - 0x4c, 0x8b, 0x17, //0x000099c8 movq (%rdi), %r10 - 0x4c, 0x63, 0x4f, 0x10, //0x000099cb movslq $16(%rdi), %r9 - 0x8a, 0x44, 0x32, 0x04, //0x000099cf movb $4(%rdx,%rsi), %al - 0x4d, 0x85, 0xc9, //0x000099d3 testq %r9, %r9 - 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x000099d6 je LBB35_6 - 0x48, 0x8d, 0x54, 0x32, 0x05, //0x000099dc leaq $5(%rdx,%rsi), %rdx - 0x31, 0xf6, //0x000099e1 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000099e3 .p2align 4, 0x90 - //0x000099f0 LBB35_3 - 0x84, 0xc0, //0x000099f0 testb %al, %al - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000099f2 je LBB35_8 - 0x41, 0x38, 0x04, 0x32, //0x000099f8 cmpb %al, (%r10,%rsi) - 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x000099fc jne LBB35_5 - 0x0f, 0xb6, 0x04, 0x32, //0x00009a02 movzbl (%rdx,%rsi), %eax - 0x48, 0xff, 0xc6, //0x00009a06 incq %rsi - 0x49, 0x39, 0xf1, //0x00009a09 cmpq %rsi, %r9 - 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00009a0c jne LBB35_3 - //0x00009a12 LBB35_6 - 0x84, 0xc0, //0x00009a12 testb %al, %al - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00009a14 je LBB35_8 - //0x00009a1a LBB35_7 - 0x41, 0xff, 0xc8, //0x00009a1a decl %r8d - //0x00009a1d LBB35_8 - 0x45, 0x85, 0xc9, //0x00009a1d testl %r9d, %r9d - 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00009a20 jle LBB35_23 - 0x43, 0x8d, 0x04, 0x08, //0x00009a26 leal (%r8,%r9), %eax - 0x4c, 0x63, 0xf0, //0x00009a2a movslq %eax, %r14 - 0x49, 0xff, 0xce, //0x00009a2d decq %r14 - 0x31, 0xd2, //0x00009a30 xorl %edx, %edx - 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00009a32 movabsq $-3689348814741910323, %r11 - 0x90, 0x90, 0x90, 0x90, //0x00009a3c .p2align 4, 0x90 - //0x00009a40 LBB35_10 - 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00009a40 movsbq $-1(%r10,%r9), %rsi - 0x48, 0x83, 0xc6, 0xd0, //0x00009a46 addq $-48, %rsi - 0x48, 0xd3, 0xe6, //0x00009a4a shlq %cl, %rsi - 0x48, 0x01, 0xd6, //0x00009a4d addq %rdx, %rsi - 0x48, 0x89, 0xf0, //0x00009a50 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00009a53 mulq %r11 - 0x48, 0xc1, 0xea, 0x03, //0x00009a56 shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00009a5a leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00009a5e leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xf0, //0x00009a62 movq %rsi, %rax - 0x48, 0x29, 0xd8, //0x00009a65 subq %rbx, %rax - 0x4c, 0x39, 0x77, 0x08, //0x00009a68 cmpq %r14, $8(%rdi) - 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00009a6c jbe LBB35_16 - 0x04, 0x30, //0x00009a72 addb $48, %al - 0x43, 0x88, 0x04, 0x32, //0x00009a74 movb %al, (%r10,%r14) - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00009a78 jmp LBB35_18 - 0x90, 0x90, 0x90, //0x00009a7d .p2align 4, 0x90 - //0x00009a80 LBB35_16 - 0x48, 0x85, 0xc0, //0x00009a80 testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00009a83 je LBB35_18 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009a89 movl $1, $28(%rdi) - //0x00009a90 LBB35_18 - 0x49, 0x83, 0xf9, 0x02, //0x00009a90 cmpq $2, %r9 - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00009a94 jl LBB35_12 - 0x49, 0xff, 0xc9, //0x00009a9a decq %r9 - 0x4c, 0x8b, 0x17, //0x00009a9d movq (%rdi), %r10 - 0x49, 0xff, 0xce, //0x00009aa0 decq %r14 - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00009aa3 jmp LBB35_10 - //0x00009aa8 LBB35_12 - 0x48, 0x83, 0xfe, 0x0a, //0x00009aa8 cmpq $10, %rsi - 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00009aac jae LBB35_13 - //0x00009ab2 LBB35_23 - 0x48, 0x63, 0x4f, 0x10, //0x00009ab2 movslq $16(%rdi), %rcx - 0x49, 0x63, 0xc0, //0x00009ab6 movslq %r8d, %rax - 0x48, 0x01, 0xc8, //0x00009ab9 addq %rcx, %rax - 0x89, 0x47, 0x10, //0x00009abc movl %eax, $16(%rdi) - 0x48, 0x8b, 0x4f, 0x08, //0x00009abf movq $8(%rdi), %rcx - 0x48, 0x39, 0xc1, //0x00009ac3 cmpq %rax, %rcx - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00009ac6 ja LBB35_25 - 0x89, 0x4f, 0x10, //0x00009acc movl %ecx, $16(%rdi) - 0x89, 0xc8, //0x00009acf movl %ecx, %eax - //0x00009ad1 LBB35_25 - 0x44, 0x01, 0x47, 0x14, //0x00009ad1 addl %r8d, $20(%rdi) - 0x85, 0xc0, //0x00009ad5 testl %eax, %eax - 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00009ad7 jle LBB35_29 - 0x48, 0x8b, 0x0f, //0x00009add movq (%rdi), %rcx - 0x89, 0xc0, //0x00009ae0 movl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ae2 .p2align 4, 0x90 - //0x00009af0 LBB35_27 - 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00009af0 cmpb $48, $-1(%rcx,%rax) - 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00009af5 jne LBB35_31 - 0x89, 0xc2, //0x00009afb movl %eax, %edx - 0x48, 0xff, 0xc8, //0x00009afd decq %rax - 0xff, 0xca, //0x00009b00 decl %edx - 0x89, 0x57, 0x10, //0x00009b02 movl %edx, $16(%rdi) - 0x48, 0x8d, 0x50, 0x01, //0x00009b05 leaq $1(%rax), %rdx - 0x48, 0x83, 0xfa, 0x01, //0x00009b09 cmpq $1, %rdx - 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00009b0d jg LBB35_27 - //0x00009b13 LBB35_29 - 0x85, 0xc0, //0x00009b13 testl %eax, %eax - 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00009b15 je LBB35_30 - //0x00009b1b LBB35_31 - 0x5b, //0x00009b1b popq %rbx - 0x41, 0x5e, //0x00009b1c popq %r14 - 0x5d, //0x00009b1e popq %rbp - 0xc3, //0x00009b1f retq - //0x00009b20 LBB35_13 - 0x49, 0x63, 0xf6, //0x00009b20 movslq %r14d, %rsi - 0x48, 0xff, 0xce, //0x00009b23 decq %rsi - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00009b26 jmp LBB35_14 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009b2b .p2align 4, 0x90 - //0x00009b30 LBB35_15 - 0x04, 0x30, //0x00009b30 addb $48, %al - 0x48, 0x8b, 0x1f, //0x00009b32 movq (%rdi), %rbx - 0x88, 0x04, 0x33, //0x00009b35 movb %al, (%rbx,%rsi) - //0x00009b38 LBB35_22 - 0x48, 0xff, 0xce, //0x00009b38 decq %rsi - 0x48, 0x83, 0xf9, 0x09, //0x00009b3b cmpq $9, %rcx - 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00009b3f jbe LBB35_23 - //0x00009b45 LBB35_14 - 0x48, 0x89, 0xd1, //0x00009b45 movq %rdx, %rcx - 0x48, 0x89, 0xd0, //0x00009b48 movq %rdx, %rax - 0x49, 0xf7, 0xe3, //0x00009b4b mulq %r11 - 0x48, 0xc1, 0xea, 0x03, //0x00009b4e shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00009b52 leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00009b56 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xc8, //0x00009b5a movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x00009b5d subq %rbx, %rax - 0x48, 0x39, 0x77, 0x08, //0x00009b60 cmpq %rsi, $8(%rdi) - 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00009b64 ja LBB35_15 - 0x48, 0x85, 0xc0, //0x00009b6a testq %rax, %rax - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00009b6d je LBB35_22 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009b73 movl $1, $28(%rdi) - 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x00009b7a jmp LBB35_22 - //0x00009b7f LBB35_30 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009b7f movl $0, $20(%rdi) - 0x5b, //0x00009b86 popq %rbx - 0x41, 0x5e, //0x00009b87 popq %r14 - 0x5d, //0x00009b89 popq %rbp - 0xc3, //0x00009b8a retq - //0x00009b8b LBB35_5 - 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x00009b8b jl LBB35_7 - 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00009b91 jmp LBB35_8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009b96 .p2align 4, 0x90 - //0x00009ba0 _right_shift - 0x55, //0x00009ba0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009ba1 movq %rsp, %rbp - 0x89, 0xf1, //0x00009ba4 movl %esi, %ecx - 0x4c, 0x63, 0x4f, 0x10, //0x00009ba6 movslq $16(%rdi), %r9 - 0x31, 0xf6, //0x00009baa xorl %esi, %esi - 0x31, 0xc0, //0x00009bac xorl %eax, %eax - 0x90, 0x90, //0x00009bae .p2align 4, 0x90 - //0x00009bb0 LBB36_1 - 0x4c, 0x39, 0xce, //0x00009bb0 cmpq %r9, %rsi - 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00009bb3 jge LBB36_2 - 0x48, 0x8d, 0x04, 0x80, //0x00009bb9 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x17, //0x00009bbd movq (%rdi), %rdx - 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00009bc0 movsbq (%rdx,%rsi), %rdx - 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009bc5 leaq $-48(%rdx,%rax,2), %rax - 0x48, 0xff, 0xc6, //0x00009bca incq %rsi - 0x48, 0x89, 0xc2, //0x00009bcd movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009bd0 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009bd3 testq %rdx, %rdx - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00009bd6 je LBB36_1 - //0x00009bdc LBB36_6 - 0x8b, 0x57, 0x14, //0x00009bdc movl $20(%rdi), %edx - 0x29, 0xf2, //0x00009bdf subl %esi, %edx - 0xff, 0xc2, //0x00009be1 incl %edx - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009be3 movq $-1, %r8 - 0x49, 0xd3, 0xe0, //0x00009bea shlq %cl, %r8 - 0x89, 0x57, 0x14, //0x00009bed movl %edx, $20(%rdi) - 0x49, 0xf7, 0xd0, //0x00009bf0 notq %r8 - 0x45, 0x31, 0xd2, //0x00009bf3 xorl %r10d, %r10d - 0x44, 0x39, 0xce, //0x00009bf6 cmpl %r9d, %esi - 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00009bf9 jge LBB36_9 - 0x4c, 0x63, 0xce, //0x00009bff movslq %esi, %r9 - 0x48, 0x8b, 0x37, //0x00009c02 movq (%rdi), %rsi - 0x45, 0x31, 0xd2, //0x00009c05 xorl %r10d, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009c08 .p2align 4, 0x90 - //0x00009c10 LBB36_8 - 0x48, 0x89, 0xc2, //0x00009c10 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009c13 shrq %cl, %rdx - 0x4c, 0x21, 0xc0, //0x00009c16 andq %r8, %rax - 0x80, 0xc2, 0x30, //0x00009c19 addb $48, %dl - 0x42, 0x88, 0x14, 0x16, //0x00009c1c movb %dl, (%rsi,%r10) - 0x48, 0x8d, 0x04, 0x80, //0x00009c20 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x37, //0x00009c24 movq (%rdi), %rsi - 0x4a, 0x8d, 0x14, 0x0e, //0x00009c27 leaq (%rsi,%r9), %rdx - 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x00009c2b movsbq (%r10,%rdx), %rdx - 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009c30 leaq $-48(%rdx,%rax,2), %rax - 0x4c, 0x63, 0x5f, 0x10, //0x00009c35 movslq $16(%rdi), %r11 - 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x00009c39 leaq $1(%r9,%r10), %rdx - 0x49, 0xff, 0xc2, //0x00009c3e incq %r10 - 0x4c, 0x39, 0xda, //0x00009c41 cmpq %r11, %rdx - 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x00009c44 jl LBB36_8 - 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00009c4a jmp LBB36_9 - 0x90, //0x00009c4f .p2align 4, 0x90 - //0x00009c50 LBB36_11 - 0x40, 0x80, 0xc6, 0x30, //0x00009c50 addb $48, %sil - 0x48, 0x8b, 0x17, //0x00009c54 movq (%rdi), %rdx - 0x42, 0x88, 0x34, 0x0a, //0x00009c57 movb %sil, (%rdx,%r9) - 0x41, 0xff, 0xc1, //0x00009c5b incl %r9d - 0x45, 0x89, 0xca, //0x00009c5e movl %r9d, %r10d - //0x00009c61 LBB36_14 - 0x48, 0x01, 0xc0, //0x00009c61 addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009c64 leaq (%rax,%rax,4), %rax - //0x00009c68 LBB36_9 - 0x48, 0x85, 0xc0, //0x00009c68 testq %rax, %rax - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00009c6b je LBB36_15 - 0x48, 0x89, 0xc6, //0x00009c71 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x00009c74 shrq %cl, %rsi - 0x4c, 0x21, 0xc0, //0x00009c77 andq %r8, %rax - 0x4d, 0x63, 0xca, //0x00009c7a movslq %r10d, %r9 - 0x4c, 0x39, 0x4f, 0x08, //0x00009c7d cmpq %r9, $8(%rdi) - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009c81 ja LBB36_11 - 0x48, 0x85, 0xf6, //0x00009c87 testq %rsi, %rsi - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00009c8a je LBB36_14 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009c90 movl $1, $28(%rdi) - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009c97 jmp LBB36_14 - //0x00009c9c LBB36_15 - 0x44, 0x89, 0x57, 0x10, //0x00009c9c movl %r10d, $16(%rdi) - 0x45, 0x85, 0xd2, //0x00009ca0 testl %r10d, %r10d - 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00009ca3 jle LBB36_19 - 0x48, 0x8b, 0x07, //0x00009ca9 movq (%rdi), %rax - 0x45, 0x89, 0xd2, //0x00009cac movl %r10d, %r10d - 0x90, //0x00009caf .p2align 4, 0x90 - //0x00009cb0 LBB36_17 - 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00009cb0 cmpb $48, $-1(%rax,%r10) - 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00009cb6 jne LBB36_21 - 0x44, 0x89, 0xd1, //0x00009cbc movl %r10d, %ecx - 0x49, 0xff, 0xca, //0x00009cbf decq %r10 - 0xff, 0xc9, //0x00009cc2 decl %ecx - 0x89, 0x4f, 0x10, //0x00009cc4 movl %ecx, $16(%rdi) - 0x49, 0x8d, 0x4a, 0x01, //0x00009cc7 leaq $1(%r10), %rcx - 0x48, 0x83, 0xf9, 0x01, //0x00009ccb cmpq $1, %rcx - 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x00009ccf jg LBB36_17 - //0x00009cd5 LBB36_19 - 0x45, 0x85, 0xd2, //0x00009cd5 testl %r10d, %r10d - 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00009cd8 je LBB36_20 - //0x00009cde LBB36_21 - 0x5d, //0x00009cde popq %rbp - 0xc3, //0x00009cdf retq - //0x00009ce0 LBB36_2 - 0x48, 0x85, 0xc0, //0x00009ce0 testq %rax, %rax - 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00009ce3 je LBB36_22 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ce9 .p2align 4, 0x90 - 0x48, 0x89, 0xc2, //0x00009cf0 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009cf3 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009cf6 testq %rdx, %rdx - 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00009cf9 jne LBB36_6 - //0x00009cff LBB36_4 - 0x48, 0x01, 0xc0, //0x00009cff addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009d02 leaq (%rax,%rax,4), %rax - 0xff, 0xc6, //0x00009d06 incl %esi - 0x48, 0x89, 0xc2, //0x00009d08 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009d0b shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009d0e testq %rdx, %rdx - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00009d11 je LBB36_4 - 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x00009d17 jmp LBB36_6 - //0x00009d1c LBB36_20 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009d1c movl $0, $20(%rdi) - 0x5d, //0x00009d23 popq %rbp - 0xc3, //0x00009d24 retq - //0x00009d25 LBB36_22 - 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009d25 movl $0, $16(%rdi) - 0x5d, //0x00009d2c popq %rbp - 0xc3, //0x00009d2d retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009d2e .p2align 5, 0x00 - //0x00009d40 LCPI37_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009d40 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009d50 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x00009d60 LCPI37_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009d60 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00009d70 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00009d80 .p2align 4, 0x90 - //0x00009d80 _advance_string_default - 0x55, //0x00009d80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009d81 movq %rsp, %rbp - 0x41, 0x57, //0x00009d84 pushq %r15 - 0x41, 0x56, //0x00009d86 pushq %r14 - 0x41, 0x55, //0x00009d88 pushq %r13 - 0x41, 0x54, //0x00009d8a pushq %r12 - 0x53, //0x00009d8c pushq %rbx - 0x4c, 0x8b, 0x67, 0x08, //0x00009d8d movq $8(%rdi), %r12 - 0x49, 0x29, 0xf4, //0x00009d91 subq %rsi, %r12 - 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00009d94 je LBB37_18 - 0x4c, 0x8b, 0x07, //0x00009d9a movq (%rdi), %r8 - 0x4c, 0x01, 0xc6, //0x00009d9d addq %r8, %rsi - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00009da0 movq $-1, (%rdx) - 0x49, 0x83, 0xfc, 0x40, //0x00009da7 cmpq $64, %r12 - 0x0f, 0x82, 0x78, 0x01, 0x00, 0x00, //0x00009dab jb LBB37_19 - 0x45, 0x89, 0xe1, //0x00009db1 movl %r12d, %r9d - 0x41, 0x83, 0xe1, 0x3f, //0x00009db4 andl $63, %r9d - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009db8 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00009dbf xorl %r15d, %r15d - 0xc5, 0xfd, 0x6f, 0x05, 0x76, 0xff, 0xff, 0xff, //0x00009dc2 vmovdqa $-138(%rip), %ymm0 /* LCPI37_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x0d, 0x8e, 0xff, 0xff, 0xff, //0x00009dca vmovdqa $-114(%rip), %ymm1 /* LCPI37_1+0(%rip) */ - 0x49, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009dd2 movabsq $-6148914691236517206, %r10 - 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009ddc movabsq $6148914691236517205, %r11 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009de6 .p2align 4, 0x90 - //0x00009df0 LBB37_3 - 0xc5, 0xfe, 0x6f, 0x16, //0x00009df0 vmovdqu (%rsi), %ymm2 - 0xc5, 0xfe, 0x6f, 0x5e, 0x20, //0x00009df4 vmovdqu $32(%rsi), %ymm3 - 0xc5, 0xed, 0x74, 0xe0, //0x00009df9 vpcmpeqb %ymm0, %ymm2, %ymm4 - 0xc5, 0xfd, 0xd7, 0xc4, //0x00009dfd vpmovmskb %ymm4, %eax - 0xc5, 0xe5, 0x74, 0xe0, //0x00009e01 vpcmpeqb %ymm0, %ymm3, %ymm4 - 0xc5, 0xfd, 0xd7, 0xdc, //0x00009e05 vpmovmskb %ymm4, %ebx - 0xc5, 0xed, 0x74, 0xd1, //0x00009e09 vpcmpeqb %ymm1, %ymm2, %ymm2 - 0xc5, 0xfd, 0xd7, 0xfa, //0x00009e0d vpmovmskb %ymm2, %edi - 0xc5, 0xe5, 0x74, 0xd1, //0x00009e11 vpcmpeqb %ymm1, %ymm3, %ymm2 - 0xc5, 0xfd, 0xd7, 0xca, //0x00009e15 vpmovmskb %ymm2, %ecx - 0x48, 0xc1, 0xe3, 0x20, //0x00009e19 shlq $32, %rbx - 0x48, 0xc1, 0xe1, 0x20, //0x00009e1d shlq $32, %rcx - 0x48, 0x09, 0xcf, //0x00009e21 orq %rcx, %rdi - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00009e24 je LBB37_5 - 0x49, 0x83, 0xfe, 0xff, //0x00009e2a cmpq $-1, %r14 - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00009e2e je LBB37_8 - //0x00009e34 LBB37_5 - 0x48, 0x09, 0xc3, //0x00009e34 orq %rax, %rbx - 0x48, 0x89, 0xf8, //0x00009e37 movq %rdi, %rax - 0x4c, 0x09, 0xf8, //0x00009e3a orq %r15, %rax - 0x0f, 0x85, 0x3f, 0x00, 0x00, 0x00, //0x00009e3d jne LBB37_9 - //0x00009e43 LBB37_6 - 0x48, 0x85, 0xdb, //0x00009e43 testq %rbx, %rbx - 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00009e46 jne LBB37_10 - //0x00009e4c LBB37_7 - 0x48, 0x83, 0xc6, 0x40, //0x00009e4c addq $64, %rsi - 0x49, 0x83, 0xc4, 0xc0, //0x00009e50 addq $-64, %r12 - 0x49, 0x83, 0xfc, 0x3f, //0x00009e54 cmpq $63, %r12 - 0x0f, 0x87, 0x92, 0xff, 0xff, 0xff, //0x00009e58 ja LBB37_3 - 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00009e5e jmp LBB37_13 - //0x00009e63 LBB37_8 - 0x48, 0x89, 0xf1, //0x00009e63 movq %rsi, %rcx - 0x4c, 0x29, 0xc1, //0x00009e66 subq %r8, %rcx - 0x4c, 0x0f, 0xbc, 0xf7, //0x00009e69 bsfq %rdi, %r14 - 0x49, 0x01, 0xce, //0x00009e6d addq %rcx, %r14 - 0x4c, 0x89, 0x32, //0x00009e70 movq %r14, (%rdx) - 0x48, 0x09, 0xc3, //0x00009e73 orq %rax, %rbx - 0x48, 0x89, 0xf8, //0x00009e76 movq %rdi, %rax - 0x4c, 0x09, 0xf8, //0x00009e79 orq %r15, %rax - 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00009e7c je LBB37_6 - //0x00009e82 LBB37_9 - 0x4c, 0x89, 0xf8, //0x00009e82 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x00009e85 notq %rax - 0x48, 0x21, 0xf8, //0x00009e88 andq %rdi, %rax - 0x4c, 0x8d, 0x2c, 0x00, //0x00009e8b leaq (%rax,%rax), %r13 - 0x4d, 0x09, 0xfd, //0x00009e8f orq %r15, %r13 - 0x4c, 0x89, 0xe9, //0x00009e92 movq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00009e95 notq %rcx - 0x48, 0x21, 0xf9, //0x00009e98 andq %rdi, %rcx - 0x4c, 0x21, 0xd1, //0x00009e9b andq %r10, %rcx - 0x45, 0x31, 0xff, //0x00009e9e xorl %r15d, %r15d - 0x48, 0x01, 0xc1, //0x00009ea1 addq %rax, %rcx - 0x41, 0x0f, 0x92, 0xc7, //0x00009ea4 setb %r15b - 0x48, 0x01, 0xc9, //0x00009ea8 addq %rcx, %rcx - 0x4c, 0x31, 0xd9, //0x00009eab xorq %r11, %rcx - 0x4c, 0x21, 0xe9, //0x00009eae andq %r13, %rcx - 0x48, 0xf7, 0xd1, //0x00009eb1 notq %rcx - 0x48, 0x21, 0xcb, //0x00009eb4 andq %rcx, %rbx - 0x48, 0x85, 0xdb, //0x00009eb7 testq %rbx, %rbx - 0x0f, 0x84, 0x8c, 0xff, 0xff, 0xff, //0x00009eba je LBB37_7 - //0x00009ec0 LBB37_10 - 0x48, 0x0f, 0xbc, 0xc3, //0x00009ec0 bsfq %rbx, %rax - //0x00009ec4 LBB37_11 - 0x4c, 0x29, 0xc6, //0x00009ec4 subq %r8, %rsi - 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00009ec7 leaq $1(%rsi,%rax), %rax - //0x00009ecc LBB37_12 - 0x5b, //0x00009ecc popq %rbx - 0x41, 0x5c, //0x00009ecd popq %r12 - 0x41, 0x5d, //0x00009ecf popq %r13 - 0x41, 0x5e, //0x00009ed1 popq %r14 - 0x41, 0x5f, //0x00009ed3 popq %r15 - 0x5d, //0x00009ed5 popq %rbp - 0xc5, 0xf8, 0x77, //0x00009ed6 vzeroupper - 0xc3, //0x00009ed9 retq - //0x00009eda LBB37_13 - 0x4d, 0x89, 0xcc, //0x00009eda movq %r9, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x00009edd cmpq $32, %r12 - 0x0f, 0x82, 0xb7, 0x00, 0x00, 0x00, //0x00009ee1 jb LBB37_24 - //0x00009ee7 LBB37_14 - 0xc5, 0xfe, 0x6f, 0x06, //0x00009ee7 vmovdqu (%rsi), %ymm0 - 0xc5, 0xfd, 0x74, 0x0d, 0x4d, 0xfe, 0xff, 0xff, //0x00009eeb vpcmpeqb $-435(%rip), %ymm0, %ymm1 /* LCPI37_0+0(%rip) */ - 0xc5, 0x7d, 0xd7, 0xc9, //0x00009ef3 vpmovmskb %ymm1, %r9d - 0xc5, 0xfd, 0x74, 0x05, 0x61, 0xfe, 0xff, 0xff, //0x00009ef7 vpcmpeqb $-415(%rip), %ymm0, %ymm0 /* LCPI37_1+0(%rip) */ - 0xc5, 0xfd, 0xd7, 0xf8, //0x00009eff vpmovmskb %ymm0, %edi - 0x85, 0xff, //0x00009f03 testl %edi, %edi - 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x00009f05 jne LBB37_20 - 0x4d, 0x85, 0xff, //0x00009f0b testq %r15, %r15 - 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x00009f0e jne LBB37_22 - 0x45, 0x31, 0xff, //0x00009f14 xorl %r15d, %r15d - 0x4d, 0x85, 0xc9, //0x00009f17 testq %r9, %r9 - 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00009f1a je LBB37_23 - //0x00009f20 LBB37_17 - 0x49, 0x0f, 0xbc, 0xc1, //0x00009f20 bsfq %r9, %rax - 0xe9, 0x9b, 0xff, 0xff, 0xff, //0x00009f24 jmp LBB37_11 - //0x00009f29 LBB37_19 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009f29 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00009f30 xorl %r15d, %r15d - 0x49, 0x83, 0xfc, 0x20, //0x00009f33 cmpq $32, %r12 - 0x0f, 0x83, 0xaa, 0xff, 0xff, 0xff, //0x00009f37 jae LBB37_14 - 0xe9, 0x5c, 0x00, 0x00, 0x00, //0x00009f3d jmp LBB37_24 - //0x00009f42 LBB37_20 - 0x49, 0x83, 0xfe, 0xff, //0x00009f42 cmpq $-1, %r14 - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009f46 jne LBB37_22 - 0x48, 0x89, 0xf0, //0x00009f4c movq %rsi, %rax - 0x4c, 0x29, 0xc0, //0x00009f4f subq %r8, %rax - 0x4c, 0x0f, 0xbc, 0xf7, //0x00009f52 bsfq %rdi, %r14 - 0x49, 0x01, 0xc6, //0x00009f56 addq %rax, %r14 - 0x4c, 0x89, 0x32, //0x00009f59 movq %r14, (%rdx) - //0x00009f5c LBB37_22 - 0x44, 0x89, 0xf8, //0x00009f5c movl %r15d, %eax - 0xf7, 0xd0, //0x00009f5f notl %eax - 0x21, 0xf8, //0x00009f61 andl %edi, %eax - 0x8d, 0x1c, 0x00, //0x00009f63 leal (%rax,%rax), %ebx - 0x44, 0x09, 0xfb, //0x00009f66 orl %r15d, %ebx - 0x89, 0xd9, //0x00009f69 movl %ebx, %ecx - 0xf7, 0xd1, //0x00009f6b notl %ecx - 0x21, 0xf9, //0x00009f6d andl %edi, %ecx - 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009f6f andl $-1431655766, %ecx - 0x45, 0x31, 0xff, //0x00009f75 xorl %r15d, %r15d - 0x01, 0xc1, //0x00009f78 addl %eax, %ecx - 0x41, 0x0f, 0x92, 0xc7, //0x00009f7a setb %r15b - 0x01, 0xc9, //0x00009f7e addl %ecx, %ecx - 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00009f80 xorl $1431655765, %ecx - 0x21, 0xd9, //0x00009f86 andl %ebx, %ecx - 0xf7, 0xd1, //0x00009f88 notl %ecx - 0x41, 0x21, 0xc9, //0x00009f8a andl %ecx, %r9d - 0x4d, 0x85, 0xc9, //0x00009f8d testq %r9, %r9 - 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00009f90 jne LBB37_17 - //0x00009f96 LBB37_23 - 0x48, 0x83, 0xc6, 0x20, //0x00009f96 addq $32, %rsi - 0x49, 0x83, 0xc4, 0xe0, //0x00009f9a addq $-32, %r12 - //0x00009f9e LBB37_24 - 0x4d, 0x85, 0xff, //0x00009f9e testq %r15, %r15 - 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x00009fa1 jne LBB37_35 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009fa7 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x00009fae testq %r12, %r12 - 0x0f, 0x84, 0x15, 0xff, 0xff, 0xff, //0x00009fb1 je LBB37_12 - //0x00009fb7 LBB37_26 - 0x4d, 0x89, 0xc1, //0x00009fb7 movq %r8, %r9 - 0x49, 0xf7, 0xd1, //0x00009fba notq %r9 - //0x00009fbd LBB37_27 - 0x48, 0x8d, 0x7e, 0x01, //0x00009fbd leaq $1(%rsi), %rdi - 0x0f, 0xb6, 0x1e, //0x00009fc1 movzbl (%rsi), %ebx - 0x80, 0xfb, 0x22, //0x00009fc4 cmpb $34, %bl - 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00009fc7 je LBB37_34 - 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x00009fcd leaq $-1(%r12), %r10 - 0x80, 0xfb, 0x5c, //0x00009fd2 cmpb $92, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00009fd5 je LBB37_30 - 0x4d, 0x89, 0xd4, //0x00009fdb movq %r10, %r12 - 0x48, 0x89, 0xfe, //0x00009fde movq %rdi, %rsi - 0x4d, 0x85, 0xd2, //0x00009fe1 testq %r10, %r10 - 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00009fe4 jne LBB37_27 - 0xe9, 0xdd, 0xfe, 0xff, 0xff, //0x00009fea jmp LBB37_12 - //0x00009fef LBB37_30 - 0x4d, 0x85, 0xd2, //0x00009fef testq %r10, %r10 - 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00009ff2 je LBB37_12 - 0x49, 0x83, 0xfe, 0xff, //0x00009ff8 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00009ffc jne LBB37_33 - 0x4c, 0x01, 0xcf, //0x0000a002 addq %r9, %rdi - 0x48, 0x89, 0x3a, //0x0000a005 movq %rdi, (%rdx) - 0x49, 0x89, 0xfe, //0x0000a008 movq %rdi, %r14 - //0x0000a00b LBB37_33 - 0x48, 0x83, 0xc6, 0x02, //0x0000a00b addq $2, %rsi - 0x49, 0x83, 0xc4, 0xfe, //0x0000a00f addq $-2, %r12 - 0x4d, 0x89, 0xe2, //0x0000a013 movq %r12, %r10 - 0x4d, 0x85, 0xd2, //0x0000a016 testq %r10, %r10 - 0x0f, 0x85, 0x9e, 0xff, 0xff, 0xff, //0x0000a019 jne LBB37_27 - 0xe9, 0xa8, 0xfe, 0xff, 0xff, //0x0000a01f jmp LBB37_12 - //0x0000a024 LBB37_34 - 0x4c, 0x29, 0xc7, //0x0000a024 subq %r8, %rdi - 0x48, 0x89, 0xf8, //0x0000a027 movq %rdi, %rax - 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x0000a02a jmp LBB37_12 - //0x0000a02f LBB37_35 - 0x4d, 0x85, 0xe4, //0x0000a02f testq %r12, %r12 - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x0000a032 je LBB37_18 - 0x49, 0x83, 0xfe, 0xff, //0x0000a038 cmpq $-1, %r14 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000a03c jne LBB37_38 - 0x4d, 0x89, 0xc6, //0x0000a042 movq %r8, %r14 - 0x49, 0xf7, 0xd6, //0x0000a045 notq %r14 - 0x49, 0x01, 0xf6, //0x0000a048 addq %rsi, %r14 - 0x4c, 0x89, 0x32, //0x0000a04b movq %r14, (%rdx) - //0x0000a04e LBB37_38 - 0x48, 0xff, 0xc6, //0x0000a04e incq %rsi - 0x49, 0xff, 0xcc, //0x0000a051 decq %r12 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a054 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x0000a05b testq %r12, %r12 - 0x0f, 0x85, 0x53, 0xff, 0xff, 0xff, //0x0000a05e jne LBB37_26 - 0xe9, 0x63, 0xfe, 0xff, 0xff, //0x0000a064 jmp LBB37_12 - //0x0000a069 LBB37_18 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a069 movq $-1, %rax - 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x0000a070 jmp LBB37_12 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a075 .p2align 4, 0x00 - //0x0000a080 _POW10_M128_TAB - 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x0000a080 .quad 1671618768450675795 - 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x0000a088 .quad -391859759250406776 - 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x0000a090 .quad 1044761730281672372 - 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x0000a098 .quad -7162441377172586091 - 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x0000a0a0 .quad 5917638181279478369 - 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x0000a0a8 .quad -4341365703038344710 - 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x0000a0b0 .quad -1826324310255427847 - 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x0000a0b8 .quad -815021110370542984 - 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x0000a0c0 .quad -8058981721550724260 - 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x0000a0c8 .quad -7426917221622671221 - 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x0000a0d0 .quad 8373016921771146291 - 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x0000a0d8 .quad -4671960508600951122 - 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x0000a0e0 .quad 1242899115359157055 - 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x0000a0e8 .quad -1228264617323800998 - 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x0000a0f0 .quad 5388497965526861063 - 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x0000a0f8 .quad -7685194413468457480 - 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x0000a100 .quad 6735622456908576329 - 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x0000a108 .quad -4994806998408183946 - 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x0000a110 .quad -803843965719055396 - 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x0000a118 .quad -1631822729582842029 - 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x0000a120 .quad 8720969558280366185 - 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x0000a128 .quad -7937418233630358124 - 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x0000a130 .quad -7545532125859093884 - 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x0000a138 .quad -5310086773610559751 - 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x0000a140 .quad -208543120469091547 - 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x0000a148 .quad -2025922448585811785 - 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x0000a150 .quad -130339450293182217 - 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x0000a158 .quad -8183730558007214222 - 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x0000a160 .quad -4774610331293865675 - 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x0000a168 .quad -5617977179081629873 - 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x0000a170 .quad -5968262914117332094 - 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x0000a178 .quad -2410785455424649437 - 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x0000a180 .quad 5493207715531443249 - 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x0000a188 .quad -8424269937281487754 - 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x0000a190 .quad -2356862392440471747 - 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x0000a198 .quad -5918651403174471789 - 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x0000a1a0 .quad -2946077990550589683 - 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x0000a1a8 .quad -2786628235540701832 - 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x0000a1b0 .quad -8758827771735200408 - 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x0000a1b8 .quad -8659171674854020501 - 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x0000a1c0 .quad 7498209359040551106 - 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x0000a1c8 .quad -6212278575140137722 - 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x0000a1d0 .quad 149389661945913074 - 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x0000a1d8 .quad -3153662200497784248 - 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x0000a1e0 .quad 93368538716195671 - 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x0000a1e8 .quad -8888567902952197011 - 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x0000a1f0 .quad 4728396691822632493 - 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x0000a1f8 .quad -6499023860262858360 - 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x0000a200 .quad 5910495864778290617 - 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x0000a208 .quad -3512093806901185046 - 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x0000a210 .quad 8305745933913819539 - 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x0000a218 .quad -9112587656954322510 - 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x0000a220 .quad 1158810380537498616 - 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x0000a228 .quad -6779048552765515233 - 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x0000a230 .quad -3163173042755514634 - 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x0000a238 .quad -3862124672529506138 - 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x0000a240 .quad -8565652321871781196 - 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x0000a248 .quad -215969822234494768 - 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x0000a250 .quad 6175682344898606512 - 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x0000a258 .quad -7052510166537641086 - 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x0000a260 .quad -1503769105731517667 - 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x0000a268 .quad -4203951689744663454 - 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x0000a270 .quad -6491397400591784988 - 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x0000a278 .quad -643253593753441413 - 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x0000a280 .quad 5166248661484910190 - 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x0000a288 .quad -7319562523736982739 - 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x0000a290 .quad -7377247228426025974 - 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x0000a298 .quad -4537767136243840520 - 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x0000a2a0 .quad -4609873017105144563 - 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x0000a2a8 .quad -1060522901877412746 - 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x0000a2b0 .quad 4036358391950366504 - 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x0000a2b8 .quad -7580355841314464822 - 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x0000a2c0 .quad -4177924046916817678 - 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x0000a2c8 .quad -4863758783215693124 - 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x0000a2d0 .quad -610719040218634194 - 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x0000a2d8 .quad -1468012460592228501 - 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x0000a2e0 .quad 8841672636718129437 - 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x0000a2e8 .quad -7835036815511224669 - 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x0000a2f0 .quad 6440404777470273892 - 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x0000a2f8 .quad -5182110000961642932 - 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x0000a300 .quad 8050505971837842365 - 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x0000a308 .quad -1865951482774665761 - 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x0000a310 .quad -6497648813669818282 - 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x0000a318 .quad -8083748704375247957 - 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x0000a320 .quad -8122061017087272852 - 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x0000a328 .quad -5492999862041672042 - 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x0000a330 .quad 3682481783923072647 - 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x0000a338 .quad -2254563809124702148 - 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x0000a340 .quad -6921820921902855404 - 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x0000a348 .quad -8326631408344020699 - 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x0000a350 .quad 571095884476206553 - 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x0000a358 .quad -5796603242002637969 - 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x0000a360 .quad -3897816162832129712 - 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x0000a368 .quad -2634068034075909558 - 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x0000a370 .quad -4741978110983775022 - 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x0000a378 .quad -8563821548938525330 - 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x0000a380 .quad 7907585416552444934 - 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x0000a388 .quad -6093090917745768758 - 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x0000a390 .quad 661109733835780360 - 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x0000a398 .quad -3004677628754823043 - 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x0000a3a0 .quad 2719036592861056677 - 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x0000a3a8 .quad -8795452545612846258 - 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x0000a3b0 .quad -5824576295778454962 - 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x0000a3b8 .quad -6382629663588669919 - 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x0000a3c0 .quad 1942651667131707105 - 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x0000a3c8 .quad -3366601061058449494 - 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x0000a3d0 .quad 5825843310384704845 - 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x0000a3d8 .quad -9021654690802612790 - 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x0000a3e0 .quad -1941067898873894752 - 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x0000a3e8 .quad -6665382345075878084 - 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x0000a3f0 .quad 2185351144835019464 - 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x0000a3f8 .quad -3720041912917459700 - 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000a400 .quad 2731688931043774330 - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000a408 .quad -38366372719436721 - 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000a410 .quad 8624834609543440812 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000a418 .quad -6941508010590729807 - 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000a420 .quad -3054014793352862697 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000a428 .quad -4065198994811024355 - 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000a430 .quad 5405853545163697437 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000a438 .quad -469812725086392539 - 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000a440 .quad 5684501474941004850 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000a448 .quad -7211161980820077193 - 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000a450 .quad 2493940825248868159 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000a458 .quad -4402266457597708587 - 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000a460 .quad 7729112049988473103 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000a468 .quad -891147053569747830 - 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000a470 .quad -9004363024039368023 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000a478 .quad -7474495936122174250 - 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000a480 .quad 2579604275232953683 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000a488 .quad -4731433901725329908 - 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000a490 .quad 3224505344041192104 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000a498 .quad -1302606358729274481 - 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000a4a0 .quad 8932844867666826921 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000a4a8 .quad -7731658001846878407 - 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000a4b0 .quad -2669001970698630061 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000a4b8 .quad -5052886483881210105 - 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000a4c0 .quad -3336252463373287576 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000a4c8 .quad -1704422086424124727 - 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000a4d0 .quad 2526528228819083169 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000a4d8 .quad -7982792831656159810 - 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000a4e0 .quad -6065211750830921846 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000a4e8 .quad -5366805021142811859 - 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000a4f0 .quad 1641857348316123500 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000a4f8 .quad -2096820258001126919 - 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000a500 .quad -5891368184943504669 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000a508 .quad -8228041688891786181 - 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000a510 .quad -7364210231179380836 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000a518 .quad -5673366092687344822 - 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000a520 .quad 4629795266307937667 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000a528 .quad -2480021597431793123 - 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000a530 .quad 5199465050656154994 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000a538 .quad -8467542526035952558 - 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000a540 .quad -2724040723534582065 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000a548 .quad -5972742139117552794 - 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000a550 .quad -8016736922845615486 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000a558 .quad -2854241655469553088 - 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000a560 .quad 6518754469289960081 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000a568 .quad -8701430062309552536 - 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000a570 .quad 8148443086612450102 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000a578 .quad -6265101559459552766 - 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000a580 .quad 962181821410786819 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000a588 .quad -3219690930897053053 - 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000a590 .quad -1704479370831952190 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000a598 .quad -8929835859451740015 - 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000a5a0 .quad 7092772823314835570 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000a5a8 .quad -6550608805887287114 - 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000a5b0 .quad -357406007711231345 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000a5b8 .quad -3576574988931720989 - 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000a5c0 .quad 8999993282035256217 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000a5c8 .quad -9152888395723407474 - 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000a5d0 .quad 2026619565689294464 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000a5d8 .quad -6829424476226871438 - 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000a5e0 .quad -6690097579743157728 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000a5e8 .quad -3925094576856201394 - 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000a5f0 .quad 5472436080603216552 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000a5f8 .quad -294682202642863838 - 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000a600 .quad 8031958568804398249 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000a608 .quad -7101705404292871755 - 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000a610 .quad -3795109844276665901 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000a618 .quad -4265445736938701790 - 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000a620 .quad 9091170749936331336 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000a628 .quad -720121152745989333 - 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000a630 .quad 3376138709496513133 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000a638 .quad -7367604748107325189 - 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000a640 .quad -391512631556746488 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000a648 .quad -4597819916706768583 - 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000a650 .quad 8733981247408842698 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000a658 .quad -1135588877456072824 - 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000a660 .quad 5458738279630526686 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000a668 .quad -7627272076051127371 - 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000a670 .quad -7011635205744005354 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000a678 .quad -4922404076636521310 - 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000a680 .quad 5070514048102157020 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000a688 .quad -1541319077368263733 - 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000a690 .quad 863228270850154185 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000a698 .quad -7880853450996246689 - 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000a6a0 .quad -3532650679864695173 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000a6a8 .quad -5239380795317920458 - 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000a6b0 .quad -9027499368258256870 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000a6b8 .quad -1937539975720012668 - 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000a6c0 .quad -3336344095947716592 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000a6c8 .quad -8128491512466089774 - 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000a6d0 .quad -8782116138362033643 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000a6d8 .quad -5548928372155224313 - 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000a6e0 .quad 7469098900757009562 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000a6e8 .quad -2324474446766642487 - 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000a6f0 .quad -2249342214667950880 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000a6f8 .quad -8370325556870233411 - 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000a700 .quad 6411694268519837208 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000a708 .quad -5851220927660403859 - 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000a710 .quad -5820440219632367202 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000a718 .quad -2702340141148116920 - 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000a720 .quad 7891439908798240259 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000a728 .quad -8606491615858654931 - 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000a730 .quad -3970758169284363389 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000a738 .quad -6146428501395930760 - 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000a740 .quad -351761693178066332 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000a748 .quad -3071349608317525546 - 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000a750 .quad 6697677969404790399 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000a758 .quad -8837122532839535322 - 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000a760 .quad -851274575098787810 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000a768 .quad -6434717147622031249 - 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000a770 .quad -1064093218873484762 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000a778 .quad -3431710416100151157 - 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000a780 .quad 8558313775058847832 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000a788 .quad -9062348037703676329 - 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000a790 .quad 6086206200396171886 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000a798 .quad -6716249028702207507 - 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000a7a0 .quad -6227300304786948855 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000a7a8 .quad -3783625267450371480 - 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000a7b0 .quad -3172439362556298164 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000a7b8 .quad -117845565885576446 - 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000a7c0 .quad -4288617610811380305 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000a7c8 .quad -6991182506319567135 - 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000a7d0 .quad 3862600023340550427 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000a7d8 .quad -4127292114472071014 - 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000a7e0 .quad -4395122007679087774 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000a7e8 .quad -547429124662700864 - 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000a7f0 .quad 8782263791269039901 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000a7f8 .quad -7259672230555269896 - 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000a800 .quad -7468914334623251740 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000a808 .quad -4462904269766699466 - 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000a810 .quad 4498915137003099037 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000a818 .quad -966944318780986428 - 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000a820 .quad -6411550076227838910 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000a828 .quad -7521869226879198374 - 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000a830 .quad 5820620459997365075 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000a838 .quad -4790650515171610063 - 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000a840 .quad -6559282480285457368 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000a848 .quad -1376627125537124675 - 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a850 .quad -8711237568605798759 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a858 .quad -7777920981101784778 - 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a860 .quad 2946011094524915263 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a868 .quad -5110715207949843068 - 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a870 .quad 3682513868156144079 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a878 .quad -1776707991509915931 - 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a880 .quad 4607414176811284001 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a888 .quad -8027971522334779313 - 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a890 .quad 1147581702586717097 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a898 .quad -5423278384491086237 - 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a8a0 .quad -3177208890193991532 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a8a8 .quad -2167411962186469893 - 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a8b0 .quad 7237616480483531100 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a8b8 .quad -8272161504007625539 - 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a8c0 .quad -4788037454677749837 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a8c8 .quad -5728515861582144020 - 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a8d0 .quad -1373360799919799392 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a8d8 .quad -2548958808550292121 - 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a8e0 .quad -858350499949874620 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a8e8 .quad -8510628282985014432 - 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a8f0 .quad 3538747893490044629 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a8f8 .quad -6026599335303880135 - 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a900 .quad 9035120885289943691 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a908 .quad -2921563150702462265 - 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a910 .quad -5882264492762254953 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a918 .quad -8743505996830120772 - 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a920 .quad -2741144597525430788 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a928 .quad -6317696477610263061 - 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a930 .quad -3426430746906788485 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a938 .quad -3285434578585440922 - 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a940 .quad 4776009810824339053 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a948 .quad -8970925639256982432 - 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a950 .quad 5970012263530423816 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a958 .quad -6601971030643840136 - 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a960 .quad 7462515329413029771 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a968 .quad -3640777769877412266 - 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a970 .quad 52386062455755702 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a978 .quad -9193015133814464522 - 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a980 .quad -9157889458785081180 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a988 .quad -6879582898840692749 - 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a990 .quad 6999382250228200141 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a998 .quad -3987792605123478032 - 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a9a0 .quad 8749227812785250177 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a9a8 .quad -373054737976959636 - 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a9b0 .quad -3755104653863994448 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a9b8 .quad -7150688238876681629 - 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a9c0 .quad -4693880817329993060 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a9c8 .quad -4326674280168464132 - 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a9d0 .quad -1255665003235103420 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a9d8 .quad -796656831783192261 - 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a9e0 .quad 8438581409832836170 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a9e8 .quad -7415439547505577019 - 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a9f0 .quad -3286831292991118499 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a9f8 .quad -4657613415954583370 - 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000aa00 .quad -8720225134666286028 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000aa08 .quad -1210330751515841308 - 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000aa10 .quad -3144297699952734816 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000aa18 .quad -7673985747338482674 - 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000aa20 .quad -8542058143368306423 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000aa28 .quad -4980796165745715438 - 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000aa30 .quad 3157485376071780683 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000aa38 .quad -1614309188754756393 - 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000aa40 .quad 8890957387685944783 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000aa48 .quad -7926472270612804602 - 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000aa50 .quad 1890324697752655170 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000aa58 .quad -5296404319838617848 - 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000aa60 .quad 2362905872190818963 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000aa68 .quad -2008819381370884406 - 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000aa70 .quad 6088502188546649756 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000aa78 .quad -8173041140997884610 - 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000aa80 .quad -1612744301171463613 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000aa88 .quad -5604615407819967859 - 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000aa90 .quad 7207441660390446292 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000aa98 .quad -2394083241347571919 - 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000aaa0 .quad -2412877989897052924 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000aaa8 .quad -8413831053483314306 - 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000aab0 .quad -7627783505798704059 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000aab8 .quad -5905602798426754978 - 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000aac0 .quad 4300328673033783639 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000aac8 .quad -2770317479606055818 - 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000aad0 .quad -1923980597781273130 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000aad8 .quad -8648977452394866743 - 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000aae0 .quad 6818396289628184396 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000aae8 .quad -6199535797066195524 - 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000aaf0 .quad 8522995362035230495 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000aaf8 .quad -3137733727905356501 - 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000ab00 .quad 3021029092058325107 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000ab08 .quad -8878612607581929669 - 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000ab10 .quad -835399653354481520 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000ab18 .quad -6486579741050024183 - 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000ab20 .quad 8179122470161673908 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000ab28 .quad -3496538657885142324 - 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000ab30 .quad -4111420493003729616 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000ab38 .quad -9102865688819295809 - 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000ab40 .quad -5139275616254662020 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000ab48 .quad -6766896092596731857 - 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000ab50 .quad -6424094520318327524 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000ab58 .quad -3846934097318526917 - 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000ab60 .quad -8030118150397909405 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000ab68 .quad -196981603220770742 - 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000ab70 .quad -7324666853212387330 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000ab78 .quad -7040642529654063570 - 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000ab80 .quad 4679224488766679549 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000ab88 .quad -4189117143640191558 - 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000ab90 .quad -3374341425896426372 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000ab98 .quad -624710411122851544 - 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000aba0 .quad -9026492418826348338 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000aba8 .quad -7307973034592864071 - 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000abb0 .quad -2059743486678159615 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000abb8 .quad -4523280274813692185 - 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000abc0 .quad -2574679358347699519 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000abc8 .quad -1042414325089727327 - 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000abd0 .quad 3002511419460075705 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000abd8 .quad -7569037980822161435 - 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000abe0 .quad 8364825292752482535 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000abe8 .quad -4849611457600313890 - 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000abf0 .quad 1232659579085827361 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000abf8 .quad -1450328303573004458 - 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ac00 .quad -3841273781498745804 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ac08 .quad -7823984217374209643 - 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ac10 .quad 4421779809981343554 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ac18 .quad -5168294253290374149 - 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ac20 .quad 915538744049291538 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ac28 .quad -1848681798185579782 - 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ac30 .quad 5183897733458195115 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ac38 .quad -8072955151507069220 - 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000ac40 .quad 6479872166822743894 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000ac48 .quad -5479507920956448621 - 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000ac50 .quad 3488154190101041964 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000ac58 .quad -2237698882768172872 - 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000ac60 .quad 2180096368813151227 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000ac68 .quad -8316090829371189901 - 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000ac70 .quad -1886565557410948870 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000ac78 .quad -5783427518286599473 - 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000ac80 .quad -2358206946763686087 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000ac88 .quad -2617598379430861437 - 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000ac90 .quad 7749492695127472003 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000ac98 .quad -8553528014785370254 - 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000aca0 .quad 463493832054564196 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000aca8 .quad -6080224000054324913 - 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000acb0 .quad -4032318728359182659 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000acb8 .quad -2988593981640518238 - 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000acc0 .quad -4826042214438183114 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000acc8 .quad -8785400266166405755 - 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000acd0 .quad 3190819268807046916 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000acd8 .quad -6370064314280619289 - 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000ace0 .quad -623161932418579259 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000ace8 .quad -3350894374423386208 - 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000acf0 .quad -7307005235402693893 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000acf8 .quad -9011838011655698236 - 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000ad00 .quad -4522070525825979462 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000ad08 .quad -6653111496142234891 - 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000ad10 .quad 3570783879572301480 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000ad18 .quad -3704703351750405709 - 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000ad20 .quad -148206168962011054 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000ad28 .quad -19193171260619233 - 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000ad30 .quad -92628855601256909 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000ad38 .quad -6929524759678968877 - 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000ad40 .quad -115786069501571136 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000ad48 .quad -4050219931171323192 - 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000ad50 .quad 4466953431550423984 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000ad58 .quad -451088895536766085 - 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000ad60 .quad 486002885505321038 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000ad68 .quad -7199459587351560659 - 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000ad70 .quad 5219189625309039202 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000ad78 .quad -4387638465762062920 - 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000ad80 .quad 6523987031636299002 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000ad88 .quad -872862063775190746 - 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000ad90 .quad -534194123654701028 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000ad98 .quad -7463067817500576073 - 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000ada0 .quad -667742654568376285 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000ada8 .quad -4717148753448332187 - 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000adb0 .quad 8388693718644305452 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000adb8 .quad -1284749923383027329 - 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000adc0 .quad -6286281471915778852 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000adc8 .quad -7720497729755473937 - 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000add0 .quad -7857851839894723565 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000add8 .quad -5038936143766954517 - 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000ade0 .quad 8624429273841147159 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000ade8 .quad -1686984161281305242 - 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000adf0 .quad 778582277723329070 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000adf8 .quad -7971894128441897632 - 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000ae00 .quad 973227847154161338 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000ae08 .quad -5353181642124984136 - 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000ae10 .quad 1216534808942701673 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000ae18 .quad -2079791034228842266 - 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000ae20 .quad -3851351762838199359 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000ae28 .quad -8217398424034108273 - 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000ae30 .quad -4814189703547749198 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000ae38 .quad -5660062011615247437 - 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000ae40 .quad -6017737129434686498 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000ae48 .quad -2463391496091671392 - 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000ae50 .quad 7768129340171790699 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000ae58 .quad -8457148712698376476 - 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000ae60 .quad -8736582398494813242 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000ae68 .quad -5959749872445582691 - 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000ae70 .quad -1697355961263740745 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000ae78 .quad -2838001322129590460 - 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ae80 .quad 1244995533423855986 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ae88 .quad -8691279853972075893 - 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000ae90 .quad -3055441601647567921 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000ae98 .quad -6252413799037706963 - 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000aea0 .quad 5404070034795315907 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000aea8 .quad -3203831230369745799 - 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000aeb0 .quad -3539985255894009414 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000aeb8 .quad -8919923546622172981 - 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000aec0 .quad -4424981569867511768 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000aec8 .quad -6538218414850328322 - 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000aed0 .quad 8303831092947774002 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000aed8 .quad -3561087000135522498 - 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000aee0 .quad 578208414664970847 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000aee8 .quad -9143208402725783417 - 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000aef0 .quad -3888925500096174345 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000aef8 .quad -6817324484979841368 - 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000af00 .quad -249470856692830027 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000af08 .quad -3909969587797413806 - 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000af10 .quad -4923524589293425438 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000af18 .quad -275775966319379353 - 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000af20 .quad -3077202868308390899 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000af28 .quad -7089889006590693952 - 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000af30 .quad 765182433041899281 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000af38 .quad -4250675239810979535 - 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000af40 .quad 5568164059729762005 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000af48 .quad -701658031336336515 - 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000af50 .quad 5785945546544795205 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000af58 .quad -7356065297226292178 - 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000af60 .quad -1990940103673781802 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000af68 .quad -4583395603105477319 - 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000af70 .quad 6734696907262548556 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000af78 .quad -1117558485454458744 - 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000af80 .quad 4209185567039092847 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000af88 .quad -7616003081050118571 - 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000af90 .quad -8573576096483297653 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000af98 .quad -4908317832885260310 - 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000afa0 .quad 3118087934678041646 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000afa8 .quad -1523711272679187483 - 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000afb0 .quad 4254647968387469981 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000afb8 .quad -7869848573065574033 - 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000afc0 .quad 706623942056949572 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000afc8 .quad -5225624697904579637 - 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000afd0 .quad -3728406090856200939 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000afd8 .quad -1920344853953336643 - 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000afe0 .quad -6941939825212513491 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000afe8 .quad -8117744561361917258 - 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000aff0 .quad 5157633273766521849 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000aff8 .quad -5535494683275008668 - 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000b000 .quad 6447041592208152311 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000b008 .quad -2307682335666372931 - 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000b010 .quad 6335244004343789146 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000b018 .quad -8359830487432564938 - 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000b020 .quad -1304317031425039375 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000b028 .quad -5838102090863318269 - 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000b030 .quad -1630396289281299219 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000b038 .quad -2685941595151759932 - 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000b040 .quad 1286845328412881940 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000b048 .quad -8596242524610931813 - 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000b050 .quad -3003129357911285479 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000b058 .quad -6133617137336276863 - 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000b060 .quad 5469460339465668959 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000b068 .quad -3055335403242958174 - 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000b070 .quad 8030098730593431003 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000b078 .quad -8827113654667930715 - 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000b080 .quad -3797434642040374958 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000b088 .quad -6422206049907525490 - 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000b090 .quad 9088264752731695015 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000b098 .quad -3416071543957018958 - 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000b0a0 .quad -8154892584824854328 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000b0a8 .quad -9052573742614218705 - 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000b0b0 .quad 8253128342678483706 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000b0b8 .quad -6704031159840385477 - 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000b0c0 .quad 5704724409920716729 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000b0c8 .quad -3768352931373093942 - 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000b0d0 .quad -2092466524453879896 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000b0d8 .quad -98755145788979524 - 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000b0e0 .quad 998051431430019017 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000b0e8 .quad -6979250993759194058 - 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000b0f0 .quad -7975807747567252037 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000b0f8 .quad -4112377723771604669 - 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000b100 .quad 8476984389250486570 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000b108 .quad -528786136287117932 - 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000b110 .quad -3925256793573221702 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000b118 .quad -7248020362820530564 - 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000b120 .quad -294884973539139224 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000b128 .quad -4448339435098275301 - 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000b130 .quad -368606216923924029 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000b138 .quad -948738275445456222 - 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000b140 .quad -2536221894791146470 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000b148 .quad -7510490449794491995 - 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000b150 .quad 6053094668365842720 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000b158 .quad -4776427043815727089 - 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000b160 .quad 2954682317029915496 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000b168 .quad -1358847786342270957 - 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000b170 .quad -459166561069996767 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000b178 .quad -7766808894105001205 - 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000b180 .quad -573958201337495959 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000b188 .quad -5096825099203863602 - 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000b190 .quad -5329133770099257852 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000b198 .quad -1759345355577441598 - 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000b1a0 .quad -5636551615525730110 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000b1a8 .quad -8017119874876982855 - 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000b1b0 .quad 2177682517447613171 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000b1b8 .quad -5409713825168840664 - 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000b1c0 .quad 2722103146809516464 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000b1c8 .quad -2150456263033662926 - 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000b1d0 .quad 6313000485183335694 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000b1d8 .quad -8261564192037121185 - 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000b1e0 .quad 3279564588051781713 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000b1e8 .quad -5715269221619013577 - 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000b1f0 .quad -512230283362660763 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000b1f8 .quad -2532400508596379068 - 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000b200 .quad 1985699082112030975 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000b208 .quad -8500279345513818773 - 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000b210 .quad -2129562165787349185 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000b218 .quad -6013663163464885563 - 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000b220 .quad 6561419329620589327 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000b228 .quad -2905392935903719049 - 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000b230 .quad -7428327965055601431 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000b238 .quad -8733399612580906262 - 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000b240 .quad 4549648098962661924 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000b248 .quad -6305063497298744923 - 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000b250 .quad -8147997931578836307 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000b258 .quad -3269643353196043250 - 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000b260 .quad 1825030320404309164 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000b268 .quad -8961056123388608887 - 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000b270 .quad 6892973918932774359 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000b278 .quad -6589634135808373205 - 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000b280 .quad 4004531380238580045 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000b288 .quad -3625356651333078602 - 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000b290 .quad -2108853905778275376 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000b298 .quad -9183376934724255983 - 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000b2a0 .quad 6587304654631931588 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000b2a8 .quad -6867535149977932074 - 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000b2b0 .quad -989241218564861323 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000b2b8 .quad -3972732919045027189 - 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000b2c0 .quad -1236551523206076654 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000b2c8 .quad -354230130378896082 - 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000b2d0 .quad 6144684325637283947 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000b2d8 .quad -7138922859127891907 - 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000b2e0 .quad -6154202648235558778 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000b2e8 .quad -4311967555482476980 - 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000b2f0 .quad -3081067291867060568 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000b2f8 .quad -778273425925708321 - 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000b300 .quad -1925667057416912855 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000b308 .quad -7403949918844649557 - 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000b310 .quad -2407083821771141069 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000b318 .quad -4643251380128424042 - 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000b320 .quad -7620540795641314240 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000b328 .quad -1192378206733142148 - 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000b330 .quad -2456994988062127448 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000b338 .quad -7662765406849295699 - 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000b340 .quad 6152128301777116498 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000b348 .quad -4966770740134231719 - 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000b350 .quad -6144897678060768090 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000b358 .quad -1596777406740401745 - 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000b360 .quad -3840561048787980056 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000b368 .quad -7915514906853832947 - 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000b370 .quad 4422670725869800738 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000b378 .quad -5282707615139903279 - 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000b380 .quad -8306719647944912790 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000b388 .quad -1991698500497491195 - 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000b390 .quad 8643358275316593218 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000b398 .quad -8162340590452013853 - 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000b3a0 .quad 6192511825718353619 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000b3a8 .quad -5591239719637629412 - 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000b3b0 .quad 7740639782147942024 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000b3b8 .quad -2377363631119648861 - 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000b3c0 .quad 2532056854628769813 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000b3c8 .quad -8403381297090862394 - 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000b3d0 .quad -6058300968568813542 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000b3d8 .quad -5892540602936190089 - 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000b3e0 .quad -7572876210711016927 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000b3e8 .quad -2753989735242849707 - 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000b3f0 .quad 9102010423587778132 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000b3f8 .quad -8638772612167862923 - 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000b400 .quad -2457545025797441047 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000b408 .quad -6186779746782440750 - 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000b410 .quad -7683617300674189212 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000b418 .quad -3121788665050663033 - 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000b420 .quad -4802260812921368258 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000b428 .quad -8868646943297746252 - 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000b430 .quad -1391139997724322418 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000b438 .quad -6474122660694794911 - 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000b440 .quad 7484447039699372786 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000b448 .quad -3480967307441105734 - 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000b450 .quad -9157278655470055721 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000b458 .quad -9093133594791772940 - 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000b460 .quad -6834912300910181747 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000b468 .quad -6754730975062328271 - 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000b470 .quad 679731660717048624 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000b478 .quad -3831727700400522434 - 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000b480 .quad -8373707460958465028 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000b488 .quad -177973607073265139 - 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000b490 .quad 8601490892183123069 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000b498 .quad -7028762532061872568 - 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000b4a0 .quad -7694880458480647779 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000b4a8 .quad -4174267146649952806 - 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000b4b0 .quad 4216457482181353988 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000b4b8 .quad -606147914885053103 - 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000b4c0 .quad -4282243101277735614 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000b4c8 .quad -7296371474444240046 - 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000b4d0 .quad 8482254178684994195 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000b4d8 .quad -4508778324627912153 - 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000b4e0 .quad 5991131704928854840 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000b4e8 .quad -1024286887357502287 - 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000b4f0 .quad -3173071712060547581 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000b4f8 .quad -7557708332239520786 - 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000b500 .quad -8578025658503072380 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000b508 .quad -4835449396872013078 - 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000b510 .quad 3112525982153323237 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000b518 .quad -1432625727662628443 - 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000b520 .quad 4251171748059520975 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000b528 .quad -7812920107430224633 - 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000b530 .quad 702278666647013314 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000b538 .quad -5154464115860392887 - 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000b540 .quad 5489534351736154547 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000b548 .quad -1831394126398103205 - 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000b550 .quad 1125115960621402640 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000b558 .quad -8062150356639896359 - 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000b560 .quad 6018080969204141204 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000b568 .quad -5466001927372482545 - 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000b570 .quad 2910915193077788601 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000b578 .quad -2220816390788215277 - 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000b580 .quad -486521013540076077 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000b588 .quad -8305539271883716405 - 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000b590 .quad -608151266925095096 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000b598 .quad -5770238071427257602 - 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000b5a0 .quad -5371875102083756773 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000b5a8 .quad -2601111570856684098 - 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000b5b0 .quad 3560107088838733872 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000b5b8 .quad -8543223759426509417 - 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000b5c0 .quad -161552157378970563 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000b5c8 .quad -6067343680855748868 - 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000b5d0 .quad 4409745821703674700 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000b5d8 .quad -2972493582642298180 - 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000b5e0 .quad -6467280898289979121 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000b5e8 .quad -8775337516792518219 - 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000b5f0 .quad 1139270913992301907 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000b5f8 .quad -6357485877563259869 - 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000b600 .quad -3187597375937010520 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000b608 .quad -3335171328526686933 - 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000b610 .quad 7231123676894144233 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000b618 .quad -9002011107970261189 - 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000b620 .quad 4427218577690292387 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000b628 .quad -6640827866535438582 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000b630 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b640 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000b648 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b650 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000b658 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b660 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000b668 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b670 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000b678 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b680 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000b688 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b690 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000b698 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6a0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000b6a8 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6b0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000b6b8 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6c0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000b6c8 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6d0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000b6d8 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6e0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000b6e8 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b6f0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000b6f8 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b700 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000b708 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b710 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000b718 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b720 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000b728 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b730 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000b738 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b740 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000b748 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b750 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000b758 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b760 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000b768 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b770 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000b778 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b780 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000b788 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b790 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000b798 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7a0 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000b7a8 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7b0 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000b7b8 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7c0 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000b7c8 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7d0 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000b7d8 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7e0 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000b7e8 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b7f0 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000b7f8 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000b800 .quad 4611686018427387904 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000b808 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000b810 .quad 5764607523034234880 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000b818 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000b820 .quad -6629298651489370112 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000b828 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000b830 .quad 5548434740920451072 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000b838 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000b840 .quad -1143914305352105984 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000b848 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b850 .quad 7793479155164643328 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b858 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b860 .quad -4093209111326359552 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b868 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b870 .quad 4359273333062107136 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b878 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b880 .quad 5449091666327633920 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b888 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b890 .quad 2199678564482154496 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b898 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b8a0 .quad 1374799102801346560 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b8a8 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b8b0 .quad 1718498878501683200 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b8b8 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b8c0 .quad 6759809616554491904 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b8c8 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b8d0 .quad 6530724019560251392 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b8d8 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b8e0 .quad -1059967012404461568 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b8e8 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b8f0 .quad 7898413271349198848 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b8f8 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b900 .quad -1981020733047832576 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b908 .quad -8106986416796705681 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b910 .quad -2476275916309790720 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b918 .quad -5522047002568494197 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b920 .quad -3095344895387238400 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b928 .quad -2290872734783229842 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b930 .quad 4982938468024057856 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b938 .quad -8349324486880600507 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b940 .quad -7606384970252091392 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b948 .quad -5824969590173362730 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b950 .quad 4327076842467049472 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b958 .quad -2669525969289315508 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b960 .quad -6518949010312869888 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b968 .quad -8585982758446904049 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b970 .quad -8148686262891087360 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b978 .quad -6120792429631242157 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b980 .quad 8260886245095692416 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b988 .quad -3039304518611664792 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b990 .quad 5163053903184807760 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b998 .quad -8817094351773372351 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b9a0 .quad -7381240676301154012 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b9a8 .quad -6409681921289327535 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b9b0 .quad -3178808521666707 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b9b8 .quad -3400416383184271515 - 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b9c0 .quad -4613672773753429596 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b9c8 .quad -9042789267131251553 - 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b9d0 .quad -5767090967191786995 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b9d8 .quad -6691800565486676537 - 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b9e0 .quad -7208863708989733744 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b9e8 .quad -3753064688430957767 - 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b9f0 .quad 212292400617608628 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b9f8 .quad -79644842111309304 - 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000ba00 .quad 132682750386005392 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000ba08 .quad -6967307053960650171 - 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000ba10 .quad 4777539456409894645 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000ba18 .quad -4097447799023424810 - 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000ba20 .quad -3251447716342407502 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000ba28 .quad -510123730351893109 - 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000ba30 .quad 7191217214140771119 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000ba38 .quad -7236356359111015049 - 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000ba40 .quad 4377335499248575995 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000ba48 .quad -4433759430461380907 - 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000ba50 .quad -8363388681221443718 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000ba58 .quad -930513269649338230 - 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000ba60 .quad -7532960934977096276 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000ba68 .quad -7499099821171918250 - 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000ba70 .quad 4418856886560793367 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000ba78 .quad -4762188758037509908 - 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000ba80 .quad 5523571108200991709 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000ba88 .quad -1341049929119499481 - 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000ba90 .quad -8076983103442849942 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000ba98 .quad -7755685233340769032 - 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000baa0 .quad -5484542860876174524 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000baa8 .quad -5082920523248573386 - 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000bab0 .quad 6979379479186945558 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000bab8 .quad -1741964635633328828 - 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000bac0 .quad -4861259862362934835 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000bac8 .quad -8006256924911912374 - 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000bad0 .quad 7758483227328495169 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000bad8 .quad -5396135137712502563 - 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000bae0 .quad -4136954021121544751 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000bae8 .quad -2133482903713240300 - 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000baf0 .quad -279753253987271518 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000baf8 .quad -8250955842461857044 - 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000bb00 .quad 4261994450943298507 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000bb08 .quad -5702008784649933400 - 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000bb10 .quad 5327493063679123134 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000bb18 .quad -2515824962385028846 - 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000bb20 .quad 7941369183226839863 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000bb28 .quad -8489919629131724885 - 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000bb30 .quad 5315025460606161924 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000bb38 .quad -6000713517987268202 - 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000bb40 .quad -2579590211097073402 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000bb48 .quad -2889205879056697349 - 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000bb50 .quad 7611128154919104931 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000bb58 .quad -8723282702051517699 - 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000bb60 .quad -4321147861633282548 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000bb68 .quad -6292417359137009220 - 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000bb70 .quad -789748808614215280 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000bb78 .quad -3253835680493873621 - 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000bb80 .quad 8729779031470891258 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000bb88 .quad -8951176327949752869 - 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000bb90 .quad 6300537770911226168 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000bb98 .quad -6577284391509803182 - 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000bba0 .quad -1347699823215743098 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000bba8 .quad -3609919470959866074 - 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000bbb0 .quad 6075216638131242420 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000bbb8 .quad -9173728696990998152 - 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000bbc0 .quad 7594020797664053025 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000bbc8 .quad -6855474852811359786 - 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000bbd0 .quad 269153960225290473 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000bbd8 .quad -3957657547586811828 - 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000bbe0 .quad 336442450281613091 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000bbe8 .quad -335385916056126881 - 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000bbf0 .quad 7127805559067090038 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000bbf8 .quad -7127145225176161157 - 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000bc00 .quad 4298070930406474644 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000bc08 .quad -4297245513042813542 - 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000bc10 .quad -3850783373846682503 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000bc18 .quad -759870872876129024 - 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000bc20 .quad 9122475437414293195 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000bc28 .quad -7392448323188662496 - 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000bc30 .quad -7043649776941685122 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000bc38 .quad -4628874385558440216 - 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000bc40 .quad -4192876202749718498 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000bc48 .quad -1174406963520662366 - 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000bc50 .quad -4926390635932268014 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000bc58 .quad -7651533379841495835 - 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000bc60 .quad 3065383741939440791 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000bc68 .quad -4952730706374481889 - 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000bc70 .quad -779956341003086915 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000bc78 .quad -1579227364540714458 - 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000bc80 .quad 6430056314514152534 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000bc88 .quad -7904546130479028392 - 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000bc90 .quad 8037570393142690668 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000bc98 .quad -5268996644671397586 - 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000bca0 .quad 823590954573587527 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000bca8 .quad -1974559787411859078 - 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000bcb0 .quad 5126430365035880108 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000bcb8 .quad -8151628894773493780 - 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000bcc0 .quad 6408037956294850135 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000bcc8 .quad -5577850100039479321 - 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000bcd0 .quad 3398361426941174765 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000bcd8 .quad -2360626606621961247 - 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000bce0 .quad -4793553135802847628 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000bce8 .quad -8392920656779807636 - 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000bcf0 .quad -1380255401326171631 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000bcf8 .quad -5879464802547371641 - 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000bd00 .quad -1725319251657714539 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000bd08 .quad -2737644984756826647 - 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000bd10 .quad 3533361486141316317 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000bd18 .quad -8628557143114098510 - 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000bd20 .quad -4806670179178130411 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000bd28 .quad -6174010410465235234 - 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000bd30 .quad 7826720331309500698 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000bd38 .quad -3105826994654156138 - 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000bd40 .quad 280014188641050032 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000bd48 .quad -8858670899299929442 - 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000bd50 .quad -8873354301053463268 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000bd58 .quad -6461652605697523899 - 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000bd60 .quad -1868320839462053277 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000bd68 .quad -3465379738694516970 - 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000bd70 .quad 5749828502977298558 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000bd78 .quad -9083391364325154962 - 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000bd80 .quad -2036086408133152611 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000bd88 .quad -6742553186979055799 - 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000bd90 .quad 6678264026688335045 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000bd98 .quad -3816505465296431844 - 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000bda0 .quad 8347830033360418806 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000bda8 .quad -158945813193151901 - 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000bdb0 .quad 2911550761636567802 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000bdb8 .quad -7016870160886801794 - 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000bdc0 .quad -5583933584809066056 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000bdc8 .quad -4159401682681114339 - 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000bdd0 .quad 2243455055843443238 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000bdd8 .quad -587566084924005019 - 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000bde0 .quad 3708002419115845976 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000bde8 .quad -7284757830718584993 - 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000bdf0 .quad 23317005467419566 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000bdf8 .quad -4494261269970843337 - 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000be00 .quad -4582539761593113446 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000be08 .quad -1006140569036166268 - 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000be10 .quad -558244341782001952 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000be18 .quad -7546366883288685774 - 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000be20 .quad -5309491445654890344 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000be28 .quad -4821272585683469313 - 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000be30 .quad -6636864307068612930 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000be38 .quad -1414904713676948737 - 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000be40 .quad -4148040191917883081 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000be48 .quad -7801844473689174817 - 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000be50 .quad -5185050239897353852 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000be58 .quad -5140619573684080617 - 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000be60 .quad -6481312799871692315 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000be68 .quad -1814088448677712867 - 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000be70 .quad -8662506518347195601 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000be78 .quad -8051334308064652398 - 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000be80 .quad 3006924907348169211 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000be88 .quad -5452481866653427593 - 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000be90 .quad -853029884242176390 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000be98 .quad -2203916314889396588 - 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000bea0 .quad 1772699331562333708 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000bea8 .quad -8294976724446954723 - 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000beb0 .quad 6827560182880305039 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000beb8 .quad -5757034887131305500 - 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000bec0 .quad 8534450228600381299 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000bec8 .quad -2584607590486743971 - 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000bed0 .quad 7639874402088932264 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000bed8 .quad -8532908771695296838 - 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000bee0 .quad 326470965756389522 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000bee8 .quad -6054449946191733143 - 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000bef0 .quad 5019774725622874806 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000bef8 .quad -2956376414312278525 - 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000bf00 .quad 831516194300602802 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000bf08 .quad -8765264286586255934 - 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000bf10 .quad -8183976793979022306 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000bf18 .quad -6344894339805432014 - 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000bf20 .quad 3605087062808385830 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000bf28 .quad -3319431906329402113 - 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000bf30 .quad 9170708441896323000 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000bf38 .quad -8992173969096958177 - 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000bf40 .quad 6851699533943015846 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000bf48 .quad -6628531442943809817 - 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000bf50 .quad 3952938399001381903 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000bf58 .quad -3673978285252374367 - 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000bf60 .quad -4446942528265218167 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000bf68 .quad -9213765455923815836 - 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000bf70 .quad -946992141904134804 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000bf78 .quad -6905520801477381891 - 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000bf80 .quad 8039631859474607303 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000bf88 .quad -4020214983419339459 - 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000bf90 .quad -3785518230938904583 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000bf98 .quad -413582710846786420 - 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000bfa0 .quad -60105885123121413 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000bfa8 .quad -7176018221920323369 - 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000bfb0 .quad -75132356403901766 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000bfb8 .quad -4358336758973016307 - 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000bfc0 .quad 9129456591349898601 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000bfc8 .quad -836234930288882479 - 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000bfd0 .quad -1211618658047395231 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000bfd8 .quad -7440175859071633406 - 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000bfe0 .quad -6126209340986631942 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000bfe8 .quad -4688533805412153853 - 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000bff0 .quad -7657761676233289928 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000bff8 .quad -1248981238337804412 - 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000c000 .quad -2480258038432112253 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000c008 .quad -7698142301602209614 - 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000c010 .quad -7712008566467528220 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000c018 .quad -5010991858575374113 - 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000c020 .quad 8806733365625141341 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000c028 .quad -1652053804791829737 - 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000c030 .quad -6025006692552756422 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000c038 .quad -7950062655635975442 - 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000c040 .quad 6303799689591218185 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000c048 .quad -5325892301117581398 - 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000c050 .quad -1343622424865753077 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000c058 .quad -2045679357969588844 - 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000c060 .quad 1466078993672598279 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000c068 .quad -8196078626372074883 - 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000c070 .quad 6444284760518135752 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000c078 .quad -5633412264537705700 - 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000c080 .quad 8055355950647669691 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000c088 .quad -2430079312244744221 - 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000c090 .quad 2728754459941099604 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000c098 .quad -8436328597794046994 - 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000c0a0 .quad -5812428961928401302 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000c0a8 .quad -5933724728815170839 - 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000c0b0 .quad 1957835834444274180 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000c0b8 .quad -2805469892591575644 - 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000c0c0 .quad -7999724640327104446 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000c0c8 .quad -8670947710510816634 - 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000c0d0 .quad 3835402254873283155 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000c0d8 .quad -6226998619711132888 - 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000c0e0 .quad 4794252818591603944 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000c0e8 .quad -3172062256211528206 - 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000c0f0 .quad 7608094030047140369 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000c0f8 .quad -8900067937773286985 - 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000c100 .quad 4898431519131537557 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000c108 .quad -6513398903789220827 - 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000c110 .quad -7712018656367741765 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000c118 .quad -3530062611309138130 - 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000c120 .quad 2097517367411243253 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000c128 .quad -9123818159709293187 - 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000c130 .quad 7233582727691441970 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000c138 .quad -6793086681209228580 - 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000c140 .quad 9041978409614302462 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000c148 .quad -3879672333084147821 - 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000c150 .quad 6690786993590490174 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000c158 .quad -237904397927796872 - 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000c160 .quad 4181741870994056359 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000c168 .quad -7066219276345954901 - 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000c170 .quad 615491320315182544 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000c178 .quad -4221088077005055722 - 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000c180 .quad -8454007886460797627 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000c188 .quad -664674077828931749 - 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000c190 .quad 3939617107816777291 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000c198 .quad -7332950326284164199 - 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000c1a0 .quad -8910536670511192099 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000c1a8 .quad -4554501889427817345 - 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000c1b0 .quad 7308573235570561493 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000c1b8 .quad -1081441343357383777 - 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000c1c0 .quad -6961356773836868827 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000c1c8 .quad -7593429867239446717 - 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000c1d0 .quad -8701695967296086034 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000c1d8 .quad -4880101315621920492 - 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000c1e0 .quad -6265433940692719638 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000c1e8 .quad -1488440626100012711 - 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000c1f0 .quad 695789805494438130 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000c1f8 .quad -7847804418953589800 - 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000c200 .quad 869737256868047663 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000c208 .quad -5198069505264599346 - 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000c210 .quad -8136200465769716230 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000c218 .quad -1885900863153361279 - 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000c220 .quad -473439272678684740 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000c228 .quad -8096217067111932656 - 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000c230 .quad 4019886927579031980 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000c238 .quad -5508585315462527915 - 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000c240 .quad -8810199395808373737 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000c248 .quad -2274045625900771990 - 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000c250 .quad -7812217631593927538 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000c258 .quad -8338807543829064350 - 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000c260 .quad 4069786015789754290 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000c268 .quad -5811823411358942533 - 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000c270 .quad 475546501309804958 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000c278 .quad -2653093245771290262 - 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000c280 .quad 4908902581746016003 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000c288 .quad -8575712306248138270 - 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000c290 .quad -3087243809672255805 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000c298 .quad -6107954364382784934 - 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000c2a0 .quad -8470740780517707660 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000c2a8 .quad -3023256937051093263 - 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000c2b0 .quad -682526969396179383 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000c2b8 .quad -8807064613298015146 - 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000c2c0 .quad -5464844730172612133 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000c2c8 .quad -6397144748195131028 - 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000c2d0 .quad -2219369894288377262 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000c2d8 .quad -3384744916816525881 - 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000c2e0 .quad -1387106183930235789 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000c2e8 .quad -9032994600651410532 - 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000c2f0 .quad 2877803288514593168 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000c2f8 .quad -6679557232386875260 - 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000c300 .quad 3597254110643241460 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000c308 .quad -3737760522056206171 - 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000c310 .quad 9108253656731439729 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000c318 .quad -60514634142869810 - 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000c320 .quad 1080972517029761926 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000c328 .quad -6955350673980375487 - 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000c330 .quad 5962901664714590312 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000c338 .quad -4082502324048081455 - 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000c340 .quad -6381430974388925822 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000c348 .quad -491441886632713915 - 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000c350 .quad -8600080377420466543 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000c358 .quad -7224680206786528053 - 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000c360 .quad 7696643601933968437 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000c368 .quad -4419164240055772162 - 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000c370 .quad 397432465562684739 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000c378 .quad -912269281642327298 - 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000c380 .quad -4363290727450709942 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000c388 .quad -7487697328667536418 - 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000c390 .quad 8380944645968776284 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000c398 .quad -4747935642407032618 - 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000c3a0 .quad 1252808770606194547 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000c3a8 .quad -1323233534581402868 - 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000c3b0 .quad -8440366555225904216 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000c3b8 .quad -7744549986754458649 - 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000c3c0 .quad 7896285879677171346 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000c3c8 .quad -5069001465015685407 - 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000c3d0 .quad -3964700705685699529 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000c3d8 .quad -1724565812842218855 - 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000c3e0 .quad 2133748077373825698 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000c3e8 .quad -7995382660667468640 - 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000c3f0 .quad 2667185096717282123 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000c3f8 .quad -5382542307406947896 - 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000c400 .quad 3333981370896602653 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000c408 .quad -2116491865831296966 - 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000c410 .quad 6695424375237764562 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000c418 .quad -8240336443785642460 - 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000c420 .quad 8369280469047205703 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000c428 .quad -5688734536304665171 - 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000c430 .quad -3373457468973156583 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000c438 .quad -2499232151953443560 - 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000c440 .quad -9025939945749304721 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000c448 .quad -8479549122611984081 - 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000c450 .quad 7164319141522920715 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000c458 .quad -5987750384837592197 - 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000c460 .quad 4343712908476262990 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000c468 .quad -2873001962619602342 - 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000c470 .quad 7326506586225052273 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000c478 .quad -8713155254278333320 - 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000c480 .quad 9158133232781315341 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000c488 .quad -6279758049420528746 - 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000c490 .quad 2224294504121868368 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000c498 .quad -3238011543348273028 - 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000c4a0 .quad -7833187971778608078 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000c4a8 .quad -8941286242233752499 - 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000c4b0 .quad -568112927868484289 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000c4b8 .quad -6564921784364802720 - 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000c4c0 .quad 3901544858591782542 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000c4c8 .quad -3594466212028615495 - 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000c4d0 .quad -4479063491021217767 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000c4d8 .quad -9164070410158966541 - 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000c4e0 .quad -5598829363776522209 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000c4e8 .quad -6843401994271320272 - 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000c4f0 .quad -2386850686293264857 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000c4f8 .quad -3942566474411762436 - 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000c500 .quad 1628122660560806833 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000c508 .quad -316522074587315140 - 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000c510 .quad -8205795374004271538 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000c518 .quad -7115355324258153819 - 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000c520 .quad -1033872180650563614 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000c528 .quad -4282508136895304370 - 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000c530 .quad -5904026244240592421 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000c538 .quad -741449152691742558 - 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000c540 .quad -5995859411864064215 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000c548 .quad -7380934748073420955 - 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000c550 .quad 1728547772024695539 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000c558 .quad -4614482416664388289 - 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000c560 .quad -2451001303396518480 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000c568 .quad -1156417002403097458 - 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000c570 .quad 5385653213018257806 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000c578 .quad -7640289654143017767 - 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000c580 .quad -7102991539009341455 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000c588 .quad -4938676049251384305 - 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000c590 .quad -8878739423761676819 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000c598 .quad -1561659043136842477 - 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000c5a0 .quad 3674159897003727796 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000c5a8 .quad -7893565929601608404 - 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000c5b0 .quad 4592699871254659745 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000c5b8 .quad -5255271393574622601 - 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000c5c0 .quad 1129188820640936778 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000c5c8 .quad -1957403223540890347 - 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000c5d0 .quad 3011586022114279438 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000c5d8 .quad -8140906042354138323 - 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000c5e0 .quad 8376168546070237202 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000c5e8 .quad -5564446534515285000 - 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000c5f0 .quad -7976533391121755114 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000c5f8 .quad -2343872149716718346 - 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000c600 .quad 1932195658189984910 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000c608 .quad -8382449121214030822 - 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000c610 .quad -6808127464117294671 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000c618 .quad -5866375383090150624 - 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000c620 .quad -3898473311719230434 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000c628 .quad -2721283210435300376 - 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000c630 .quad 9092669226243950738 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000c638 .quad -8618331034163144591 - 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000c640 .quad -2469221522477225289 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000c648 .quad -6161227774276542835 - 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000c650 .quad 6136845133758244197 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000c658 .quad -3089848699418290639 - 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000c660 .quad -3082000819042179233 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000c668 .quad -8848684464777513506 - 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000c670 .quad -8464187042230111945 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000c678 .quad -6449169562544503978 - 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000c680 .quad 3254824252494523781 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000c688 .quad -3449775934753242068 - 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000c690 .quad -7189106879045698445 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000c698 .quad -9073638986861858149 - 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000c6a0 .quad -8986383598807123057 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000c6a8 .quad -6730362715149934782 - 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000c6b0 .quad 2602078556773259891 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000c6b8 .quad -3801267375510030573 - 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000c6c0 .quad -1359087822460813040 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000c6c8 .quad -139898200960150313 - 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000c6d0 .quad -849429889038008150 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000c6d8 .quad -7004965403241175802 - 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000c6e0 .quad -5673473379724898091 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000c6e8 .quad -4144520735624081848 - 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000c6f0 .quad -2480155706228734710 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000c6f8 .quad -568964901102714406 - 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000c700 .quad -3855940325606653146 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000c708 .quad -7273132090830278360 - 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000c710 .quad -208239388580928528 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000c718 .quad -4479729095110460046 - 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000c720 .quad -4871985254153548564 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000c728 .quad -987975350460687153 - 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000c730 .quad -3044990783845967853 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000c738 .quad -7535013621679011327 - 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000c740 .quad 5417133557047315992 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000c748 .quad -4807081008671376254 - 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000c750 .quad -2451955090545630818 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000c758 .quad -1397165242411832414 - 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000c760 .quad -3838314940804713213 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000c768 .quad -7790757304148477115 - 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000c770 .quad 4425478360848884291 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000c778 .quad -5126760611758208489 - 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000c780 .quad 920161932633717460 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000c788 .quad -1796764746270372707 - 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000c790 .quad 2880944217109767365 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000c798 .quad -8040506994060064798 - 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000c7a0 .quad -5622191765467566602 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000c7a8 .quad -5438947724147693094 - 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000c7b0 .quad 6807318348447705459 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000c7b8 .quad -2186998636757228463 - 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000c7c0 .quad -2662955059861265944 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000c7c8 .quad -8284403175614349646 - 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000c7d0 .quad -7940379843253970334 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000c7d8 .quad -5743817951090549153 - 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000c7e0 .quad 8521269269642088699 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000c7e8 .quad -2568086420435798537 - 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000c7f0 .quad -6203421752542164323 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000c7f8 .quad -8522583040413455942 - 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000c800 .quad 6080780864604458308 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000c808 .quad -6041542782089432023 - 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000c810 .quad -6234081974526590827 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000c818 .quad -2940242459184402125 - 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000c820 .quad 5327070802775656541 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000c828 .quad -8755180564631333184 - 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000c830 .quad 6658838503469570676 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000c838 .quad -6332289687361778576 - 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000c840 .quad 8323548129336963345 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000c848 .quad -3303676090774835316 - 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c850 .quad -4021154456019173717 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c858 .quad -8982326584375353929 - 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c860 .quad -5026443070023967147 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c868 .quad -6616222212041804507 - 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c870 .quad 2940318199324816875 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c878 .quad -3658591746624867729 - 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c880 .quad 8755227902219092403 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c888 .quad -9204148869281624187 - 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c890 .quad -2891023177508298209 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c898 .quad -6893500068174642330 - 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c8a0 .quad -8225464990312760665 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c8a8 .quad -4005189066790915008 - 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c8b0 .quad -5670145219463562927 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c8b8 .quad -394800315061255856 - 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c8c0 .quad 7985374283903742931 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c8c8 .quad -7164279224554366766 - 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c8d0 .quad 758345818024902856 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c8d8 .quad -4343663012265570553 - 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c8e0 .quad -3663753745896259334 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c8e8 .quad -817892746904575288 - 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c8f0 .quad -9207375118826243940 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c8f8 .quad -7428711994456441411 - 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c900 .quad -2285846861678029117 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c908 .quad -4674203974643163860 - 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c910 .quad 1754377441329851508 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c918 .quad -1231068949876566920 - 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c920 .quad 1096485900831157192 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c928 .quad -7686947121313936181 - 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c930 .quad -3241078642388441414 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c938 .quad -4996997883215032323 - 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c940 .quad 5172023733869224041 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c948 .quad -1634561335591402499 - 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c950 .quad 5538357842881958977 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c958 .quad -7939129862385708418 - 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c960 .quad -2300424733252327086 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c968 .quad -5312226309554747619 - 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c970 .quad 6347841120289366950 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c978 .quad -2028596868516046619 - 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c980 .quad 6273243709394548296 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c988 .quad -8185402070463610993 - 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c990 .quad 3229868618315797466 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c998 .quad -5620066569652125837 - 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c9a0 .quad -574350245532641071 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c9a8 .quad -2413397193637769393 - 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c9b0 .quad -358968903457900670 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c9b8 .quad -8425902273664687727 - 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c9c0 .quad 8774660907532399971 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c9c8 .quad -5920691823653471754 - 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c9d0 .quad 1744954097560724156 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c9d8 .quad -2789178761139451788 - 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c9e0 .quad -8132775725879323211 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c9e8 .quad -8660765753353239224 - 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c9f0 .quad -5554283638921766110 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c9f8 .quad -6214271173264161126 - 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000ca00 .quad 6892203506629956075 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000ca08 .quad -3156152948152813503 - 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000ca10 .quad -2609901835997359309 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000ca18 .quad -8890124620236590296 - 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000ca20 .quad 1349308723430688768 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000ca28 .quad -6500969756868349965 - 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000ca30 .quad -2925050114139026944 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000ca38 .quad -3514526177658049553 - 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000ca40 .quad -1828156321336891840 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000ca48 .quad -9114107888677362827 - 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000ca50 .quad 6938176635183661008 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000ca58 .quad -6780948842419315629 - 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000ca60 .quad 4061034775552188356 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000ca68 .quad -3864500034596756632 - 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000ca70 .quad 5076293469440235445 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000ca78 .quad -218939024818557886 - 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000ca80 .quad 7784369436827535057 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000ca88 .quad -7054365918152680535 - 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000ca90 .quad -4104596259247744891 - 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000ca98 .quad -4206271379263462765 - 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000caa0 .quad -5130745324059681113 - 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000caa8 .quad -646153205651940552 - 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000cab0 .quad 8322499218531169064 - 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000cab8 .quad -7321374781173544701 - 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000cac0 .quad 5791438004736573426 - 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000cac8 .quad -4540032458039542972 - 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000cad0 .quad 7239297505920716783 - 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000cad8 .quad -1063354554122040811 - 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000cae0 .quad 6830403950414141941 - 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000cae8 .quad -7582125623967357363 - 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000caf0 .quad -5297053117264486286 - 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000caf8 .quad -4865971011531808800 - 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000cb00 .quad -2009630378153219953 - 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000cb08 .quad -1470777745987373096 - 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000cb10 .quad -8173548013986844327 - 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000cb18 .quad -7836765118883190041 - 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000cb20 .quad 8229809056225996208 - 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000cb28 .quad -5184270380176599647 - 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000cb30 .quad -3547796734999668452 - 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000cb38 .quad -1868651956793361655 - 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000cb40 .quad 2394313059052595121 - 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000cb48 .quad -8085436500636932890 - 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000cb50 .quad -6230480713039031907 - 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000cb58 .quad -5495109607368778209 - 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000cb60 .quad -7788100891298789883 - 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000cb68 .quad -2257200990783584857 - 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000cb70 .quad -4867563057061743677 - 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000cb78 .quad -8328279646880822392 - 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000cb80 .quad -1472767802899791692 - 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000cb88 .quad -5798663540173640086 - 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000cb90 .quad -6452645772052127519 - 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000cb98 .quad -2636643406789662203 - 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000cba0 .quad -8644589625959967604 - 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000cba8 .quad -8565431156884620733 - 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000cbb0 .quad 7641007041259592112 - 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000cbb8 .quad -6095102927678388012 - 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000cbc0 .quad -8895485272135061476 - 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000cbc8 .quad -3007192641170597111 - 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000cbd0 .quad -947992276657025519 - 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000cbd8 .quad -8797024428372705051 - 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000cbe0 .quad 8038381691033493909 - 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000cbe8 .quad -6384594517038493409 - 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000cbf0 .quad 5436291095364479483 - 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000cbf8 .quad -3369057127870728857 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000cc10 .p2align 4, 0x00 - //0x0000cc10 _POW_TAB - 0x01, 0x00, 0x00, 0x00, //0x0000cc10 .long 1 - 0x03, 0x00, 0x00, 0x00, //0x0000cc14 .long 3 - 0x06, 0x00, 0x00, 0x00, //0x0000cc18 .long 6 - 0x09, 0x00, 0x00, 0x00, //0x0000cc1c .long 9 - 0x0d, 0x00, 0x00, 0x00, //0x0000cc20 .long 13 - 0x10, 0x00, 0x00, 0x00, //0x0000cc24 .long 16 - 0x13, 0x00, 0x00, 0x00, //0x0000cc28 .long 19 - 0x17, 0x00, 0x00, 0x00, //0x0000cc2c .long 23 - 0x1a, 0x00, 0x00, 0x00, //0x0000cc30 .long 26 - //0x0000cc34 .p2align 2, 0x00 - //0x0000cc34 _MASK_USE_NUMBER - 0x02, 0x00, 0x00, 0x00, //0x0000cc34 .long 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cc38 .p2align 4, 0x00 - //0x0000cc40 _Digits - 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000cc40 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000cc50 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000cc60 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000cc70 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000cc80 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000cc90 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000cca0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000ccb0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000ccc0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000ccd0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000cce0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000ccf0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000cd00 QUAD $0x3939383937393639 // .ascii 8, '96979899' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000cd08 .p2align 4, 0x00 - //0x0000cd10 _pow10_ceil_sig.g - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000cd10 .quad -38366372719436721 - 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000cd18 .quad 2731688931043774331 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000cd20 .quad -6941508010590729807 - 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000cd28 .quad 8624834609543440813 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000cd30 .quad -4065198994811024355 - 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000cd38 .quad -3054014793352862696 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000cd40 .quad -469812725086392539 - 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000cd48 .quad 5405853545163697438 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000cd50 .quad -7211161980820077193 - 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000cd58 .quad 5684501474941004851 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000cd60 .quad -4402266457597708587 - 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000cd68 .quad 2493940825248868160 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000cd70 .quad -891147053569747830 - 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000cd78 .quad 7729112049988473104 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000cd80 .quad -7474495936122174250 - 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000cd88 .quad -9004363024039368022 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000cd90 .quad -4731433901725329908 - 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000cd98 .quad 2579604275232953684 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000cda0 .quad -1302606358729274481 - 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000cda8 .quad 3224505344041192105 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000cdb0 .quad -7731658001846878407 - 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000cdb8 .quad 8932844867666826922 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000cdc0 .quad -5052886483881210105 - 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000cdc8 .quad -2669001970698630060 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000cdd0 .quad -1704422086424124727 - 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000cdd8 .quad -3336252463373287575 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000cde0 .quad -7982792831656159810 - 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000cde8 .quad 2526528228819083170 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000cdf0 .quad -5366805021142811859 - 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000cdf8 .quad -6065211750830921845 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000ce00 .quad -2096820258001126919 - 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000ce08 .quad 1641857348316123501 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000ce10 .quad -8228041688891786181 - 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000ce18 .quad -5891368184943504668 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000ce20 .quad -5673366092687344822 - 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000ce28 .quad -7364210231179380835 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000ce30 .quad -2480021597431793123 - 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000ce38 .quad 4629795266307937668 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000ce40 .quad -8467542526035952558 - 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000ce48 .quad 5199465050656154995 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000ce50 .quad -5972742139117552794 - 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000ce58 .quad -2724040723534582064 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000ce60 .quad -2854241655469553088 - 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000ce68 .quad -8016736922845615485 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000ce70 .quad -8701430062309552536 - 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000ce78 .quad 6518754469289960082 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000ce80 .quad -6265101559459552766 - 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000ce88 .quad 8148443086612450103 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000ce90 .quad -3219690930897053053 - 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000ce98 .quad 962181821410786820 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000cea0 .quad -8929835859451740015 - 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000cea8 .quad -1704479370831952189 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000ceb0 .quad -6550608805887287114 - 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000ceb8 .quad 7092772823314835571 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000cec0 .quad -3576574988931720989 - 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000cec8 .quad -357406007711231344 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000ced0 .quad -9152888395723407474 - 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000ced8 .quad 8999993282035256218 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000cee0 .quad -6829424476226871438 - 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000cee8 .quad 2026619565689294465 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000cef0 .quad -3925094576856201394 - 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000cef8 .quad -6690097579743157727 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000cf00 .quad -294682202642863838 - 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000cf08 .quad 5472436080603216553 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000cf10 .quad -7101705404292871755 - 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000cf18 .quad 8031958568804398250 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000cf20 .quad -4265445736938701790 - 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000cf28 .quad -3795109844276665900 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000cf30 .quad -720121152745989333 - 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000cf38 .quad 9091170749936331337 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000cf40 .quad -7367604748107325189 - 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000cf48 .quad 3376138709496513134 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000cf50 .quad -4597819916706768583 - 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000cf58 .quad -391512631556746487 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000cf60 .quad -1135588877456072824 - 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000cf68 .quad 8733981247408842699 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000cf70 .quad -7627272076051127371 - 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000cf78 .quad 5458738279630526687 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000cf80 .quad -4922404076636521310 - 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000cf88 .quad -7011635205744005353 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000cf90 .quad -1541319077368263733 - 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000cf98 .quad 5070514048102157021 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000cfa0 .quad -7880853450996246689 - 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000cfa8 .quad 863228270850154186 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000cfb0 .quad -5239380795317920458 - 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000cfb8 .quad -3532650679864695172 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000cfc0 .quad -1937539975720012668 - 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000cfc8 .quad -9027499368258256869 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000cfd0 .quad -8128491512466089774 - 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000cfd8 .quad -3336344095947716591 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000cfe0 .quad -5548928372155224313 - 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000cfe8 .quad -8782116138362033642 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000cff0 .quad -2324474446766642487 - 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000cff8 .quad 7469098900757009563 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000d000 .quad -8370325556870233411 - 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000d008 .quad -2249342214667950879 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000d010 .quad -5851220927660403859 - 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000d018 .quad 6411694268519837209 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000d020 .quad -2702340141148116920 - 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000d028 .quad -5820440219632367201 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000d030 .quad -8606491615858654931 - 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000d038 .quad 7891439908798240260 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000d040 .quad -6146428501395930760 - 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000d048 .quad -3970758169284363388 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000d050 .quad -3071349608317525546 - 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000d058 .quad -351761693178066331 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000d060 .quad -8837122532839535322 - 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000d068 .quad 6697677969404790400 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000d070 .quad -6434717147622031249 - 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000d078 .quad -851274575098787809 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000d080 .quad -3431710416100151157 - 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000d088 .quad -1064093218873484761 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000d090 .quad -9062348037703676329 - 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000d098 .quad 8558313775058847833 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000d0a0 .quad -6716249028702207507 - 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000d0a8 .quad 6086206200396171887 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000d0b0 .quad -3783625267450371480 - 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000d0b8 .quad -6227300304786948854 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000d0c0 .quad -117845565885576446 - 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000d0c8 .quad -3172439362556298163 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000d0d0 .quad -6991182506319567135 - 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000d0d8 .quad -4288617610811380304 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000d0e0 .quad -4127292114472071014 - 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000d0e8 .quad 3862600023340550428 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000d0f0 .quad -547429124662700864 - 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000d0f8 .quad -4395122007679087773 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000d100 .quad -7259672230555269896 - 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000d108 .quad 8782263791269039902 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000d110 .quad -4462904269766699466 - 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000d118 .quad -7468914334623251739 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000d120 .quad -966944318780986428 - 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000d128 .quad 4498915137003099038 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000d130 .quad -7521869226879198374 - 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000d138 .quad -6411550076227838909 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000d140 .quad -4790650515171610063 - 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000d148 .quad 5820620459997365076 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000d150 .quad -1376627125537124675 - 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000d158 .quad -6559282480285457367 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000d160 .quad -7777920981101784778 - 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000d168 .quad -8711237568605798758 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000d170 .quad -5110715207949843068 - 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000d178 .quad 2946011094524915264 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000d180 .quad -1776707991509915931 - 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000d188 .quad 3682513868156144080 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000d190 .quad -8027971522334779313 - 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000d198 .quad 4607414176811284002 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000d1a0 .quad -5423278384491086237 - 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000d1a8 .quad 1147581702586717098 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000d1b0 .quad -2167411962186469893 - 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000d1b8 .quad -3177208890193991531 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000d1c0 .quad -8272161504007625539 - 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000d1c8 .quad 7237616480483531101 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000d1d0 .quad -5728515861582144020 - 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000d1d8 .quad -4788037454677749836 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000d1e0 .quad -2548958808550292121 - 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000d1e8 .quad -1373360799919799391 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000d1f0 .quad -8510628282985014432 - 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000d1f8 .quad -858350499949874619 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000d200 .quad -6026599335303880135 - 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000d208 .quad 3538747893490044630 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000d210 .quad -2921563150702462265 - 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000d218 .quad 9035120885289943692 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000d220 .quad -8743505996830120772 - 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000d228 .quad -5882264492762254952 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000d230 .quad -6317696477610263061 - 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000d238 .quad -2741144597525430787 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000d240 .quad -3285434578585440922 - 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000d248 .quad -3426430746906788484 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000d250 .quad -8970925639256982432 - 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000d258 .quad 4776009810824339054 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000d260 .quad -6601971030643840136 - 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000d268 .quad 5970012263530423817 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000d270 .quad -3640777769877412266 - 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000d278 .quad 7462515329413029772 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000d280 .quad -9193015133814464522 - 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000d288 .quad 52386062455755703 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000d290 .quad -6879582898840692749 - 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000d298 .quad -9157889458785081179 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000d2a0 .quad -3987792605123478032 - 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000d2a8 .quad 6999382250228200142 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000d2b0 .quad -373054737976959636 - 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000d2b8 .quad 8749227812785250178 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000d2c0 .quad -7150688238876681629 - 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000d2c8 .quad -3755104653863994447 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000d2d0 .quad -4326674280168464132 - 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000d2d8 .quad -4693880817329993059 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000d2e0 .quad -796656831783192261 - 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000d2e8 .quad -1255665003235103419 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000d2f0 .quad -7415439547505577019 - 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000d2f8 .quad 8438581409832836171 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000d300 .quad -4657613415954583370 - 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000d308 .quad -3286831292991118498 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000d310 .quad -1210330751515841308 - 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000d318 .quad -8720225134666286027 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000d320 .quad -7673985747338482674 - 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000d328 .quad -3144297699952734815 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000d330 .quad -4980796165745715438 - 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000d338 .quad -8542058143368306422 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000d340 .quad -1614309188754756393 - 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000d348 .quad 3157485376071780684 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000d350 .quad -7926472270612804602 - 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000d358 .quad 8890957387685944784 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000d360 .quad -5296404319838617848 - 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000d368 .quad 1890324697752655171 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000d370 .quad -2008819381370884406 - 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000d378 .quad 2362905872190818964 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000d380 .quad -8173041140997884610 - 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000d388 .quad 6088502188546649757 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000d390 .quad -5604615407819967859 - 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000d398 .quad -1612744301171463612 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000d3a0 .quad -2394083241347571919 - 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000d3a8 .quad 7207441660390446293 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000d3b0 .quad -8413831053483314306 - 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000d3b8 .quad -2412877989897052923 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000d3c0 .quad -5905602798426754978 - 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000d3c8 .quad -7627783505798704058 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000d3d0 .quad -2770317479606055818 - 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000d3d8 .quad 4300328673033783640 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000d3e0 .quad -8648977452394866743 - 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000d3e8 .quad -1923980597781273129 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000d3f0 .quad -6199535797066195524 - 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000d3f8 .quad 6818396289628184397 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000d400 .quad -3137733727905356501 - 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000d408 .quad 8522995362035230496 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000d410 .quad -8878612607581929669 - 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000d418 .quad 3021029092058325108 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000d420 .quad -6486579741050024183 - 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000d428 .quad -835399653354481519 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000d430 .quad -3496538657885142324 - 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000d438 .quad 8179122470161673909 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000d440 .quad -9102865688819295809 - 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000d448 .quad -4111420493003729615 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000d450 .quad -6766896092596731857 - 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000d458 .quad -5139275616254662019 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000d460 .quad -3846934097318526917 - 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000d468 .quad -6424094520318327523 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000d470 .quad -196981603220770742 - 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000d478 .quad -8030118150397909404 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000d480 .quad -7040642529654063570 - 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000d488 .quad -7324666853212387329 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000d490 .quad -4189117143640191558 - 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000d498 .quad 4679224488766679550 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000d4a0 .quad -624710411122851544 - 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000d4a8 .quad -3374341425896426371 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000d4b0 .quad -7307973034592864071 - 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000d4b8 .quad -9026492418826348337 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000d4c0 .quad -4523280274813692185 - 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000d4c8 .quad -2059743486678159614 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000d4d0 .quad -1042414325089727327 - 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000d4d8 .quad -2574679358347699518 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000d4e0 .quad -7569037980822161435 - 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000d4e8 .quad 3002511419460075706 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000d4f0 .quad -4849611457600313890 - 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000d4f8 .quad 8364825292752482536 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000d500 .quad -1450328303573004458 - 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000d508 .quad 1232659579085827362 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000d510 .quad -7823984217374209643 - 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000d518 .quad -3841273781498745803 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000d520 .quad -5168294253290374149 - 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000d528 .quad 4421779809981343555 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000d530 .quad -1848681798185579782 - 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000d538 .quad 915538744049291539 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000d540 .quad -8072955151507069220 - 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000d548 .quad 5183897733458195116 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000d550 .quad -5479507920956448621 - 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000d558 .quad 6479872166822743895 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000d560 .quad -2237698882768172872 - 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000d568 .quad 3488154190101041965 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000d570 .quad -8316090829371189901 - 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000d578 .quad 2180096368813151228 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000d580 .quad -5783427518286599473 - 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000d588 .quad -1886565557410948869 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000d590 .quad -2617598379430861437 - 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000d598 .quad -2358206946763686086 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000d5a0 .quad -8553528014785370254 - 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000d5a8 .quad 7749492695127472004 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000d5b0 .quad -6080224000054324913 - 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000d5b8 .quad 463493832054564197 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000d5c0 .quad -2988593981640518238 - 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000d5c8 .quad -4032318728359182658 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000d5d0 .quad -8785400266166405755 - 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000d5d8 .quad -4826042214438183113 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000d5e0 .quad -6370064314280619289 - 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000d5e8 .quad 3190819268807046917 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000d5f0 .quad -3350894374423386208 - 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000d5f8 .quad -623161932418579258 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000d600 .quad -9011838011655698236 - 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000d608 .quad -7307005235402693892 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000d610 .quad -6653111496142234891 - 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000d618 .quad -4522070525825979461 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000d620 .quad -3704703351750405709 - 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000d628 .quad 3570783879572301481 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000d630 .quad -19193171260619233 - 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000d638 .quad -148206168962011053 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000d640 .quad -6929524759678968877 - 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000d648 .quad -92628855601256908 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000d650 .quad -4050219931171323192 - 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000d658 .quad -115786069501571135 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000d660 .quad -451088895536766085 - 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000d668 .quad 4466953431550423985 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000d670 .quad -7199459587351560659 - 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000d678 .quad 486002885505321039 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000d680 .quad -4387638465762062920 - 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000d688 .quad 5219189625309039203 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000d690 .quad -872862063775190746 - 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000d698 .quad 6523987031636299003 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000d6a0 .quad -7463067817500576073 - 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000d6a8 .quad -534194123654701027 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000d6b0 .quad -4717148753448332187 - 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000d6b8 .quad -667742654568376284 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000d6c0 .quad -1284749923383027329 - 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000d6c8 .quad 8388693718644305453 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000d6d0 .quad -7720497729755473937 - 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000d6d8 .quad -6286281471915778851 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000d6e0 .quad -5038936143766954517 - 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000d6e8 .quad -7857851839894723564 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000d6f0 .quad -1686984161281305242 - 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000d6f8 .quad 8624429273841147160 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000d700 .quad -7971894128441897632 - 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000d708 .quad 778582277723329071 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000d710 .quad -5353181642124984136 - 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000d718 .quad 973227847154161339 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000d720 .quad -2079791034228842266 - 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000d728 .quad 1216534808942701674 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000d730 .quad -8217398424034108273 - 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000d738 .quad -3851351762838199358 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000d740 .quad -5660062011615247437 - 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000d748 .quad -4814189703547749197 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000d750 .quad -2463391496091671392 - 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000d758 .quad -6017737129434686497 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000d760 .quad -8457148712698376476 - 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000d768 .quad 7768129340171790700 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000d770 .quad -5959749872445582691 - 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000d778 .quad -8736582398494813241 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000d780 .quad -2838001322129590460 - 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000d788 .quad -1697355961263740744 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000d790 .quad -8691279853972075893 - 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000d798 .quad 1244995533423855987 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000d7a0 .quad -6252413799037706963 - 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000d7a8 .quad -3055441601647567920 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000d7b0 .quad -3203831230369745799 - 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000d7b8 .quad 5404070034795315908 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000d7c0 .quad -8919923546622172981 - 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000d7c8 .quad -3539985255894009413 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000d7d0 .quad -6538218414850328322 - 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000d7d8 .quad -4424981569867511767 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000d7e0 .quad -3561087000135522498 - 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000d7e8 .quad 8303831092947774003 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000d7f0 .quad -9143208402725783417 - 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000d7f8 .quad 578208414664970848 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000d800 .quad -6817324484979841368 - 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000d808 .quad -3888925500096174344 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000d810 .quad -3909969587797413806 - 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000d818 .quad -249470856692830026 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000d820 .quad -275775966319379353 - 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000d828 .quad -4923524589293425437 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000d830 .quad -7089889006590693952 - 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000d838 .quad -3077202868308390898 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000d840 .quad -4250675239810979535 - 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000d848 .quad 765182433041899282 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d850 .quad -701658031336336515 - 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d858 .quad 5568164059729762006 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d860 .quad -7356065297226292178 - 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d868 .quad 5785945546544795206 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d870 .quad -4583395603105477319 - 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d878 .quad -1990940103673781801 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d880 .quad -1117558485454458744 - 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d888 .quad 6734696907262548557 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d890 .quad -7616003081050118571 - 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d898 .quad 4209185567039092848 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d8a0 .quad -4908317832885260310 - 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d8a8 .quad -8573576096483297652 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d8b0 .quad -1523711272679187483 - 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d8b8 .quad 3118087934678041647 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d8c0 .quad -7869848573065574033 - 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d8c8 .quad 4254647968387469982 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d8d0 .quad -5225624697904579637 - 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d8d8 .quad 706623942056949573 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d8e0 .quad -1920344853953336643 - 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d8e8 .quad -3728406090856200938 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d8f0 .quad -8117744561361917258 - 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d8f8 .quad -6941939825212513490 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d900 .quad -5535494683275008668 - 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d908 .quad 5157633273766521850 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d910 .quad -2307682335666372931 - 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d918 .quad 6447041592208152312 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d920 .quad -8359830487432564938 - 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d928 .quad 6335244004343789147 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d930 .quad -5838102090863318269 - 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d938 .quad -1304317031425039374 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d940 .quad -2685941595151759932 - 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d948 .quad -1630396289281299218 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d950 .quad -8596242524610931813 - 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d958 .quad 1286845328412881941 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d960 .quad -6133617137336276863 - 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d968 .quad -3003129357911285478 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d970 .quad -3055335403242958174 - 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d978 .quad 5469460339465668960 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d980 .quad -8827113654667930715 - 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d988 .quad 8030098730593431004 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d990 .quad -6422206049907525490 - 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d998 .quad -3797434642040374957 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d9a0 .quad -3416071543957018958 - 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d9a8 .quad 9088264752731695016 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d9b0 .quad -9052573742614218705 - 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d9b8 .quad -8154892584824854327 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d9c0 .quad -6704031159840385477 - 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d9c8 .quad 8253128342678483707 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d9d0 .quad -3768352931373093942 - 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d9d8 .quad 5704724409920716730 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d9e0 .quad -98755145788979524 - 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d9e8 .quad -2092466524453879895 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d9f0 .quad -6979250993759194058 - 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d9f8 .quad 998051431430019018 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000da00 .quad -4112377723771604669 - 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000da08 .quad -7975807747567252036 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000da10 .quad -528786136287117932 - 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000da18 .quad 8476984389250486571 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000da20 .quad -7248020362820530564 - 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000da28 .quad -3925256793573221701 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000da30 .quad -4448339435098275301 - 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000da38 .quad -294884973539139223 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000da40 .quad -948738275445456222 - 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000da48 .quad -368606216923924028 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000da50 .quad -7510490449794491995 - 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000da58 .quad -2536221894791146469 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000da60 .quad -4776427043815727089 - 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000da68 .quad 6053094668365842721 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000da70 .quad -1358847786342270957 - 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000da78 .quad 2954682317029915497 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000da80 .quad -7766808894105001205 - 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000da88 .quad -459166561069996766 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000da90 .quad -5096825099203863602 - 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000da98 .quad -573958201337495958 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000daa0 .quad -1759345355577441598 - 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000daa8 .quad -5329133770099257851 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000dab0 .quad -8017119874876982855 - 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000dab8 .quad -5636551615525730109 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000dac0 .quad -5409713825168840664 - 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000dac8 .quad 2177682517447613172 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000dad0 .quad -2150456263033662926 - 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000dad8 .quad 2722103146809516465 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000dae0 .quad -8261564192037121185 - 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000dae8 .quad 6313000485183335695 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000daf0 .quad -5715269221619013577 - 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000daf8 .quad 3279564588051781714 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000db00 .quad -2532400508596379068 - 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000db08 .quad -512230283362660762 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000db10 .quad -8500279345513818773 - 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000db18 .quad 1985699082112030976 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000db20 .quad -6013663163464885563 - 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000db28 .quad -2129562165787349184 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000db30 .quad -2905392935903719049 - 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000db38 .quad 6561419329620589328 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000db40 .quad -8733399612580906262 - 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000db48 .quad -7428327965055601430 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000db50 .quad -6305063497298744923 - 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000db58 .quad 4549648098962661925 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000db60 .quad -3269643353196043250 - 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000db68 .quad -8147997931578836306 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000db70 .quad -8961056123388608887 - 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000db78 .quad 1825030320404309165 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000db80 .quad -6589634135808373205 - 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000db88 .quad 6892973918932774360 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000db90 .quad -3625356651333078602 - 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000db98 .quad 4004531380238580046 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000dba0 .quad -9183376934724255983 - 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000dba8 .quad -2108853905778275375 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000dbb0 .quad -6867535149977932074 - 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000dbb8 .quad 6587304654631931589 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000dbc0 .quad -3972732919045027189 - 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000dbc8 .quad -989241218564861322 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000dbd0 .quad -354230130378896082 - 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000dbd8 .quad -1236551523206076653 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000dbe0 .quad -7138922859127891907 - 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000dbe8 .quad 6144684325637283948 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000dbf0 .quad -4311967555482476980 - 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000dbf8 .quad -6154202648235558777 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000dc00 .quad -778273425925708321 - 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000dc08 .quad -3081067291867060567 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000dc10 .quad -7403949918844649557 - 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000dc18 .quad -1925667057416912854 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000dc20 .quad -4643251380128424042 - 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000dc28 .quad -2407083821771141068 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000dc30 .quad -1192378206733142148 - 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000dc38 .quad -7620540795641314239 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000dc40 .quad -7662765406849295699 - 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000dc48 .quad -2456994988062127447 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000dc50 .quad -4966770740134231719 - 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000dc58 .quad 6152128301777116499 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000dc60 .quad -1596777406740401745 - 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000dc68 .quad -6144897678060768089 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000dc70 .quad -7915514906853832947 - 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000dc78 .quad -3840561048787980055 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000dc80 .quad -5282707615139903279 - 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000dc88 .quad 4422670725869800739 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000dc90 .quad -1991698500497491195 - 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000dc98 .quad -8306719647944912789 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000dca0 .quad -8162340590452013853 - 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000dca8 .quad 8643358275316593219 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000dcb0 .quad -5591239719637629412 - 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000dcb8 .quad 6192511825718353620 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000dcc0 .quad -2377363631119648861 - 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000dcc8 .quad 7740639782147942025 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000dcd0 .quad -8403381297090862394 - 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000dcd8 .quad 2532056854628769814 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000dce0 .quad -5892540602936190089 - 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000dce8 .quad -6058300968568813541 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000dcf0 .quad -2753989735242849707 - 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000dcf8 .quad -7572876210711016926 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000dd00 .quad -8638772612167862923 - 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000dd08 .quad 9102010423587778133 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000dd10 .quad -6186779746782440750 - 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000dd18 .quad -2457545025797441046 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000dd20 .quad -3121788665050663033 - 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000dd28 .quad -7683617300674189211 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000dd30 .quad -8868646943297746252 - 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000dd38 .quad -4802260812921368257 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000dd40 .quad -6474122660694794911 - 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000dd48 .quad -1391139997724322417 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000dd50 .quad -3480967307441105734 - 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000dd58 .quad 7484447039699372787 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000dd60 .quad -9093133594791772940 - 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000dd68 .quad -9157278655470055720 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000dd70 .quad -6754730975062328271 - 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000dd78 .quad -6834912300910181746 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000dd80 .quad -3831727700400522434 - 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000dd88 .quad 679731660717048625 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000dd90 .quad -177973607073265139 - 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000dd98 .quad -8373707460958465027 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000dda0 .quad -7028762532061872568 - 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000dda8 .quad 8601490892183123070 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ddb0 .quad -4174267146649952806 - 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ddb8 .quad -7694880458480647778 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ddc0 .quad -606147914885053103 - 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ddc8 .quad 4216457482181353989 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ddd0 .quad -7296371474444240046 - 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ddd8 .quad -4282243101277735613 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000dde0 .quad -4508778324627912153 - 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000dde8 .quad 8482254178684994196 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ddf0 .quad -1024286887357502287 - 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ddf8 .quad 5991131704928854841 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000de00 .quad -7557708332239520786 - 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000de08 .quad -3173071712060547580 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000de10 .quad -4835449396872013078 - 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000de18 .quad -8578025658503072379 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000de20 .quad -1432625727662628443 - 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000de28 .quad 3112525982153323238 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000de30 .quad -7812920107430224633 - 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000de38 .quad 4251171748059520976 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000de40 .quad -5154464115860392887 - 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000de48 .quad 702278666647013315 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000de50 .quad -1831394126398103205 - 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000de58 .quad 5489534351736154548 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000de60 .quad -8062150356639896359 - 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000de68 .quad 1125115960621402641 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000de70 .quad -5466001927372482545 - 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000de78 .quad 6018080969204141205 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000de80 .quad -2220816390788215277 - 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000de88 .quad 2910915193077788602 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000de90 .quad -8305539271883716405 - 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000de98 .quad -486521013540076076 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000dea0 .quad -5770238071427257602 - 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000dea8 .quad -608151266925095095 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000deb0 .quad -2601111570856684098 - 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000deb8 .quad -5371875102083756772 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000dec0 .quad -8543223759426509417 - 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000dec8 .quad 3560107088838733873 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000ded0 .quad -6067343680855748868 - 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000ded8 .quad -161552157378970562 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000dee0 .quad -2972493582642298180 - 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000dee8 .quad 4409745821703674701 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000def0 .quad -8775337516792518219 - 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000def8 .quad -6467280898289979120 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000df00 .quad -6357485877563259869 - 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000df08 .quad 1139270913992301908 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000df10 .quad -3335171328526686933 - 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000df18 .quad -3187597375937010519 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000df20 .quad -9002011107970261189 - 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000df28 .quad 7231123676894144234 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000df30 .quad -6640827866535438582 - 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000df38 .quad 4427218577690292388 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000df40 .quad -3689348814741910324 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000df48 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000df50 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df58 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000df60 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df68 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000df70 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df78 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000df80 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df88 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000df90 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000df98 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000dfa0 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfa8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000dfb0 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfb8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000dfc0 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfc8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000dfd0 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfd8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000dfe0 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dfe8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000dff0 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000dff8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000e000 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e008 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000e010 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e018 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000e020 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e028 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000e030 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e038 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000e040 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e048 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000e050 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e058 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000e060 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e068 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000e070 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e078 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000e080 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e088 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000e090 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e098 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000e0a0 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0a8 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000e0b0 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0b8 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000e0c0 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0c8 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000e0d0 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0d8 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000e0e0 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0e8 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000e0f0 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e0f8 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000e100 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e108 .quad 0 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000e110 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000e118 .quad 4611686018427387904 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000e120 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000e128 .quad 5764607523034234880 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000e130 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000e138 .quad -6629298651489370112 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000e140 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000e148 .quad 5548434740920451072 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000e150 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000e158 .quad -1143914305352105984 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000e160 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000e168 .quad 7793479155164643328 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000e170 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000e178 .quad -4093209111326359552 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000e180 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000e188 .quad 4359273333062107136 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000e190 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000e198 .quad 5449091666327633920 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000e1a0 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000e1a8 .quad 2199678564482154496 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000e1b0 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000e1b8 .quad 1374799102801346560 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000e1c0 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000e1c8 .quad 1718498878501683200 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000e1d0 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000e1d8 .quad 6759809616554491904 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000e1e0 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000e1e8 .quad 6530724019560251392 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000e1f0 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000e1f8 .quad -1059967012404461568 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000e200 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000e208 .quad 7898413271349198848 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000e210 .quad -8106986416796705681 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000e218 .quad -1981020733047832576 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000e220 .quad -5522047002568494197 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000e228 .quad -2476275916309790720 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000e230 .quad -2290872734783229842 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000e238 .quad -3095344895387238400 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000e240 .quad -8349324486880600507 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000e248 .quad 4982938468024057856 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000e250 .quad -5824969590173362730 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000e258 .quad -7606384970252091392 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000e260 .quad -2669525969289315508 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000e268 .quad 4327076842467049472 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000e270 .quad -8585982758446904049 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000e278 .quad -6518949010312869888 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000e280 .quad -6120792429631242157 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000e288 .quad -8148686262891087360 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000e290 .quad -3039304518611664792 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000e298 .quad 8260886245095692416 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000e2a0 .quad -8817094351773372351 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000e2a8 .quad 5163053903184807760 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000e2b0 .quad -6409681921289327535 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000e2b8 .quad -7381240676301154012 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000e2c0 .quad -3400416383184271515 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000e2c8 .quad -3178808521666707 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000e2d0 .quad -9042789267131251553 - 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000e2d8 .quad -4613672773753429595 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000e2e0 .quad -6691800565486676537 - 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000e2e8 .quad -5767090967191786994 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000e2f0 .quad -3753064688430957767 - 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000e2f8 .quad -7208863708989733743 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000e300 .quad -79644842111309304 - 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000e308 .quad 212292400617608629 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000e310 .quad -6967307053960650171 - 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000e318 .quad 132682750386005393 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000e320 .quad -4097447799023424810 - 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000e328 .quad 4777539456409894646 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000e330 .quad -510123730351893109 - 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000e338 .quad -3251447716342407501 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000e340 .quad -7236356359111015049 - 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000e348 .quad 7191217214140771120 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000e350 .quad -4433759430461380907 - 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000e358 .quad 4377335499248575996 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000e360 .quad -930513269649338230 - 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000e368 .quad -8363388681221443717 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000e370 .quad -7499099821171918250 - 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000e378 .quad -7532960934977096275 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000e380 .quad -4762188758037509908 - 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000e388 .quad 4418856886560793368 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000e390 .quad -1341049929119499481 - 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000e398 .quad 5523571108200991710 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000e3a0 .quad -7755685233340769032 - 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000e3a8 .quad -8076983103442849941 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000e3b0 .quad -5082920523248573386 - 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000e3b8 .quad -5484542860876174523 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000e3c0 .quad -1741964635633328828 - 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000e3c8 .quad 6979379479186945559 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000e3d0 .quad -8006256924911912374 - 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000e3d8 .quad -4861259862362934834 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000e3e0 .quad -5396135137712502563 - 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000e3e8 .quad 7758483227328495170 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000e3f0 .quad -2133482903713240300 - 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000e3f8 .quad -4136954021121544750 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000e400 .quad -8250955842461857044 - 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000e408 .quad -279753253987271517 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000e410 .quad -5702008784649933400 - 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000e418 .quad 4261994450943298508 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000e420 .quad -2515824962385028846 - 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000e428 .quad 5327493063679123135 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000e430 .quad -8489919629131724885 - 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000e438 .quad 7941369183226839864 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000e440 .quad -6000713517987268202 - 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000e448 .quad 5315025460606161925 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000e450 .quad -2889205879056697349 - 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000e458 .quad -2579590211097073401 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000e460 .quad -8723282702051517699 - 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000e468 .quad 7611128154919104932 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000e470 .quad -6292417359137009220 - 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000e478 .quad -4321147861633282547 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000e480 .quad -3253835680493873621 - 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000e488 .quad -789748808614215279 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000e490 .quad -8951176327949752869 - 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000e498 .quad 8729779031470891259 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000e4a0 .quad -6577284391509803182 - 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000e4a8 .quad 6300537770911226169 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000e4b0 .quad -3609919470959866074 - 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000e4b8 .quad -1347699823215743097 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000e4c0 .quad -9173728696990998152 - 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000e4c8 .quad 6075216638131242421 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000e4d0 .quad -6855474852811359786 - 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000e4d8 .quad 7594020797664053026 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000e4e0 .quad -3957657547586811828 - 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000e4e8 .quad 269153960225290474 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000e4f0 .quad -335385916056126881 - 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000e4f8 .quad 336442450281613092 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000e500 .quad -7127145225176161157 - 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000e508 .quad 7127805559067090039 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000e510 .quad -4297245513042813542 - 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000e518 .quad 4298070930406474645 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000e520 .quad -759870872876129024 - 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000e528 .quad -3850783373846682502 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000e530 .quad -7392448323188662496 - 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000e538 .quad 9122475437414293196 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000e540 .quad -4628874385558440216 - 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000e548 .quad -7043649776941685121 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000e550 .quad -1174406963520662366 - 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000e558 .quad -4192876202749718497 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000e560 .quad -7651533379841495835 - 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000e568 .quad -4926390635932268013 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000e570 .quad -4952730706374481889 - 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000e578 .quad 3065383741939440792 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000e580 .quad -1579227364540714458 - 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000e588 .quad -779956341003086914 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000e590 .quad -7904546130479028392 - 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000e598 .quad 6430056314514152535 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000e5a0 .quad -5268996644671397586 - 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000e5a8 .quad 8037570393142690669 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000e5b0 .quad -1974559787411859078 - 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000e5b8 .quad 823590954573587528 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000e5c0 .quad -8151628894773493780 - 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000e5c8 .quad 5126430365035880109 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000e5d0 .quad -5577850100039479321 - 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000e5d8 .quad 6408037956294850136 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000e5e0 .quad -2360626606621961247 - 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000e5e8 .quad 3398361426941174766 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000e5f0 .quad -8392920656779807636 - 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000e5f8 .quad -4793553135802847627 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000e600 .quad -5879464802547371641 - 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000e608 .quad -1380255401326171630 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000e610 .quad -2737644984756826647 - 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000e618 .quad -1725319251657714538 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000e620 .quad -8628557143114098510 - 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000e628 .quad 3533361486141316318 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000e630 .quad -6174010410465235234 - 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000e638 .quad -4806670179178130410 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000e640 .quad -3105826994654156138 - 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000e648 .quad 7826720331309500699 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000e650 .quad -8858670899299929442 - 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000e658 .quad 280014188641050033 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000e660 .quad -6461652605697523899 - 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000e668 .quad -8873354301053463267 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000e670 .quad -3465379738694516970 - 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000e678 .quad -1868320839462053276 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000e680 .quad -9083391364325154962 - 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000e688 .quad 5749828502977298559 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000e690 .quad -6742553186979055799 - 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000e698 .quad -2036086408133152610 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000e6a0 .quad -3816505465296431844 - 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000e6a8 .quad 6678264026688335046 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000e6b0 .quad -158945813193151901 - 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000e6b8 .quad 8347830033360418807 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000e6c0 .quad -7016870160886801794 - 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000e6c8 .quad 2911550761636567803 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000e6d0 .quad -4159401682681114339 - 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000e6d8 .quad -5583933584809066055 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000e6e0 .quad -587566084924005019 - 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000e6e8 .quad 2243455055843443239 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000e6f0 .quad -7284757830718584993 - 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000e6f8 .quad 3708002419115845977 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000e700 .quad -4494261269970843337 - 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000e708 .quad 23317005467419567 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000e710 .quad -1006140569036166268 - 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000e718 .quad -4582539761593113445 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000e720 .quad -7546366883288685774 - 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000e728 .quad -558244341782001951 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000e730 .quad -4821272585683469313 - 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000e738 .quad -5309491445654890343 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000e740 .quad -1414904713676948737 - 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000e748 .quad -6636864307068612929 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000e750 .quad -7801844473689174817 - 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000e758 .quad -4148040191917883080 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000e760 .quad -5140619573684080617 - 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000e768 .quad -5185050239897353851 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000e770 .quad -1814088448677712867 - 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000e778 .quad -6481312799871692314 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000e780 .quad -8051334308064652398 - 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000e788 .quad -8662506518347195600 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000e790 .quad -5452481866653427593 - 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000e798 .quad 3006924907348169212 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000e7a0 .quad -2203916314889396588 - 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000e7a8 .quad -853029884242176389 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000e7b0 .quad -8294976724446954723 - 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000e7b8 .quad 1772699331562333709 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000e7c0 .quad -5757034887131305500 - 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000e7c8 .quad 6827560182880305040 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000e7d0 .quad -2584607590486743971 - 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000e7d8 .quad 8534450228600381300 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000e7e0 .quad -8532908771695296838 - 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000e7e8 .quad 7639874402088932265 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000e7f0 .quad -6054449946191733143 - 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000e7f8 .quad 326470965756389523 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000e800 .quad -2956376414312278525 - 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000e808 .quad 5019774725622874807 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000e810 .quad -8765264286586255934 - 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000e818 .quad 831516194300602803 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000e820 .quad -6344894339805432014 - 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000e828 .quad -8183976793979022305 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000e830 .quad -3319431906329402113 - 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000e838 .quad 3605087062808385831 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000e840 .quad -8992173969096958177 - 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000e848 .quad 9170708441896323001 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e850 .quad -6628531442943809817 - 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e858 .quad 6851699533943015847 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e860 .quad -3673978285252374367 - 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e868 .quad 3952938399001381904 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e870 .quad -9213765455923815836 - 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e878 .quad -4446942528265218166 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e880 .quad -6905520801477381891 - 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e888 .quad -946992141904134803 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e890 .quad -4020214983419339459 - 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e898 .quad 8039631859474607304 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e8a0 .quad -413582710846786420 - 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e8a8 .quad -3785518230938904582 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e8b0 .quad -7176018221920323369 - 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e8b8 .quad -60105885123121412 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e8c0 .quad -4358336758973016307 - 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e8c8 .quad -75132356403901765 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e8d0 .quad -836234930288882479 - 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e8d8 .quad 9129456591349898602 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e8e0 .quad -7440175859071633406 - 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e8e8 .quad -1211618658047395230 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e8f0 .quad -4688533805412153853 - 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e8f8 .quad -6126209340986631941 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e900 .quad -1248981238337804412 - 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e908 .quad -7657761676233289927 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e910 .quad -7698142301602209614 - 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e918 .quad -2480258038432112252 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e920 .quad -5010991858575374113 - 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e928 .quad -7712008566467528219 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e930 .quad -1652053804791829737 - 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e938 .quad 8806733365625141342 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e940 .quad -7950062655635975442 - 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e948 .quad -6025006692552756421 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e950 .quad -5325892301117581398 - 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e958 .quad 6303799689591218186 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e960 .quad -2045679357969588844 - 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e968 .quad -1343622424865753076 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e970 .quad -8196078626372074883 - 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e978 .quad 1466078993672598280 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e980 .quad -5633412264537705700 - 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e988 .quad 6444284760518135753 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e990 .quad -2430079312244744221 - 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e998 .quad 8055355950647669692 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e9a0 .quad -8436328597794046994 - 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e9a8 .quad 2728754459941099605 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e9b0 .quad -5933724728815170839 - 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e9b8 .quad -5812428961928401301 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e9c0 .quad -2805469892591575644 - 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e9c8 .quad 1957835834444274181 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e9d0 .quad -8670947710510816634 - 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e9d8 .quad -7999724640327104445 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e9e0 .quad -6226998619711132888 - 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e9e8 .quad 3835402254873283156 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e9f0 .quad -3172062256211528206 - 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e9f8 .quad 4794252818591603945 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000ea00 .quad -8900067937773286985 - 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000ea08 .quad 7608094030047140370 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000ea10 .quad -6513398903789220827 - 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000ea18 .quad 4898431519131537558 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000ea20 .quad -3530062611309138130 - 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000ea28 .quad -7712018656367741764 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000ea30 .quad -9123818159709293187 - 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000ea38 .quad 2097517367411243254 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000ea40 .quad -6793086681209228580 - 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000ea48 .quad 7233582727691441971 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000ea50 .quad -3879672333084147821 - 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000ea58 .quad 9041978409614302463 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000ea60 .quad -237904397927796872 - 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000ea68 .quad 6690786993590490175 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000ea70 .quad -7066219276345954901 - 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000ea78 .quad 4181741870994056360 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000ea80 .quad -4221088077005055722 - 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000ea88 .quad 615491320315182545 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000ea90 .quad -664674077828931749 - 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000ea98 .quad -8454007886460797626 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000eaa0 .quad -7332950326284164199 - 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000eaa8 .quad 3939617107816777292 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000eab0 .quad -4554501889427817345 - 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000eab8 .quad -8910536670511192098 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000eac0 .quad -1081441343357383777 - 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000eac8 .quad 7308573235570561494 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000ead0 .quad -7593429867239446717 - 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000ead8 .quad -6961356773836868826 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000eae0 .quad -4880101315621920492 - 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000eae8 .quad -8701695967296086033 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000eaf0 .quad -1488440626100012711 - 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000eaf8 .quad -6265433940692719637 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000eb00 .quad -7847804418953589800 - 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000eb08 .quad 695789805494438131 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000eb10 .quad -5198069505264599346 - 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000eb18 .quad 869737256868047664 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000eb20 .quad -1885900863153361279 - 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000eb28 .quad -8136200465769716229 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000eb30 .quad -8096217067111932656 - 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000eb38 .quad -473439272678684739 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000eb40 .quad -5508585315462527915 - 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000eb48 .quad 4019886927579031981 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000eb50 .quad -2274045625900771990 - 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000eb58 .quad -8810199395808373736 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000eb60 .quad -8338807543829064350 - 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000eb68 .quad -7812217631593927537 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000eb70 .quad -5811823411358942533 - 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000eb78 .quad 4069786015789754291 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000eb80 .quad -2653093245771290262 - 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000eb88 .quad 475546501309804959 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000eb90 .quad -8575712306248138270 - 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000eb98 .quad 4908902581746016004 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000eba0 .quad -6107954364382784934 - 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000eba8 .quad -3087243809672255804 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000ebb0 .quad -3023256937051093263 - 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000ebb8 .quad -8470740780517707659 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000ebc0 .quad -8807064613298015146 - 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000ebc8 .quad -682526969396179382 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000ebd0 .quad -6397144748195131028 - 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000ebd8 .quad -5464844730172612132 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000ebe0 .quad -3384744916816525881 - 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000ebe8 .quad -2219369894288377261 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000ebf0 .quad -9032994600651410532 - 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000ebf8 .quad -1387106183930235788 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000ec00 .quad -6679557232386875260 - 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000ec08 .quad 2877803288514593169 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000ec10 .quad -3737760522056206171 - 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000ec18 .quad 3597254110643241461 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000ec20 .quad -60514634142869810 - 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000ec28 .quad 9108253656731439730 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000ec30 .quad -6955350673980375487 - 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000ec38 .quad 1080972517029761927 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000ec40 .quad -4082502324048081455 - 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000ec48 .quad 5962901664714590313 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000ec50 .quad -491441886632713915 - 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000ec58 .quad -6381430974388925821 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000ec60 .quad -7224680206786528053 - 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000ec68 .quad -8600080377420466542 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000ec70 .quad -4419164240055772162 - 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000ec78 .quad 7696643601933968438 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000ec80 .quad -912269281642327298 - 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000ec88 .quad 397432465562684740 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000ec90 .quad -7487697328667536418 - 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000ec98 .quad -4363290727450709941 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000eca0 .quad -4747935642407032618 - 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000eca8 .quad 8380944645968776285 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000ecb0 .quad -1323233534581402868 - 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000ecb8 .quad 1252808770606194548 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000ecc0 .quad -7744549986754458649 - 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000ecc8 .quad -8440366555225904215 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000ecd0 .quad -5069001465015685407 - 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000ecd8 .quad 7896285879677171347 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000ece0 .quad -1724565812842218855 - 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000ece8 .quad -3964700705685699528 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000ecf0 .quad -7995382660667468640 - 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000ecf8 .quad 2133748077373825699 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000ed00 .quad -5382542307406947896 - 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000ed08 .quad 2667185096717282124 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000ed10 .quad -2116491865831296966 - 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000ed18 .quad 3333981370896602654 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000ed20 .quad -8240336443785642460 - 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000ed28 .quad 6695424375237764563 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000ed30 .quad -5688734536304665171 - 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000ed38 .quad 8369280469047205704 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000ed40 .quad -2499232151953443560 - 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000ed48 .quad -3373457468973156582 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000ed50 .quad -8479549122611984081 - 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000ed58 .quad -9025939945749304720 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000ed60 .quad -5987750384837592197 - 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000ed68 .quad 7164319141522920716 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000ed70 .quad -2873001962619602342 - 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000ed78 .quad 4343712908476262991 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000ed80 .quad -8713155254278333320 - 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000ed88 .quad 7326506586225052274 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000ed90 .quad -6279758049420528746 - 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000ed98 .quad 9158133232781315342 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000eda0 .quad -3238011543348273028 - 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000eda8 .quad 2224294504121868369 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000edb0 .quad -8941286242233752499 - 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000edb8 .quad -7833187971778608077 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000edc0 .quad -6564921784364802720 - 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000edc8 .quad -568112927868484288 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000edd0 .quad -3594466212028615495 - 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000edd8 .quad 3901544858591782543 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ede0 .quad -9164070410158966541 - 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ede8 .quad -4479063491021217766 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000edf0 .quad -6843401994271320272 - 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000edf8 .quad -5598829363776522208 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ee00 .quad -3942566474411762436 - 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ee08 .quad -2386850686293264856 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000ee10 .quad -316522074587315140 - 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000ee18 .quad 1628122660560806834 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000ee20 .quad -7115355324258153819 - 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000ee28 .quad -8205795374004271537 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000ee30 .quad -4282508136895304370 - 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000ee38 .quad -1033872180650563613 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000ee40 .quad -741449152691742558 - 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000ee48 .quad -5904026244240592420 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000ee50 .quad -7380934748073420955 - 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000ee58 .quad -5995859411864064214 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000ee60 .quad -4614482416664388289 - 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000ee68 .quad 1728547772024695540 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000ee70 .quad -1156417002403097458 - 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000ee78 .quad -2451001303396518479 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000ee80 .quad -7640289654143017767 - 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000ee88 .quad 5385653213018257807 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000ee90 .quad -4938676049251384305 - 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000ee98 .quad -7102991539009341454 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000eea0 .quad -1561659043136842477 - 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000eea8 .quad -8878739423761676818 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000eeb0 .quad -7893565929601608404 - 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000eeb8 .quad 3674159897003727797 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000eec0 .quad -5255271393574622601 - 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000eec8 .quad 4592699871254659746 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000eed0 .quad -1957403223540890347 - 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000eed8 .quad 1129188820640936779 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000eee0 .quad -8140906042354138323 - 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000eee8 .quad 3011586022114279439 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000eef0 .quad -5564446534515285000 - 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000eef8 .quad 8376168546070237203 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000ef00 .quad -2343872149716718346 - 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000ef08 .quad -7976533391121755113 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000ef10 .quad -8382449121214030822 - 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000ef18 .quad 1932195658189984911 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000ef20 .quad -5866375383090150624 - 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000ef28 .quad -6808127464117294670 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000ef30 .quad -2721283210435300376 - 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000ef38 .quad -3898473311719230433 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000ef40 .quad -8618331034163144591 - 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000ef48 .quad 9092669226243950739 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000ef50 .quad -6161227774276542835 - 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000ef58 .quad -2469221522477225288 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000ef60 .quad -3089848699418290639 - 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000ef68 .quad 6136845133758244198 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000ef70 .quad -8848684464777513506 - 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000ef78 .quad -3082000819042179232 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000ef80 .quad -6449169562544503978 - 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000ef88 .quad -8464187042230111944 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000ef90 .quad -3449775934753242068 - 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000ef98 .quad 3254824252494523782 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000efa0 .quad -9073638986861858149 - 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000efa8 .quad -7189106879045698444 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000efb0 .quad -6730362715149934782 - 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000efb8 .quad -8986383598807123056 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000efc0 .quad -3801267375510030573 - 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000efc8 .quad 2602078556773259892 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000efd0 .quad -139898200960150313 - 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000efd8 .quad -1359087822460813039 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000efe0 .quad -7004965403241175802 - 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000efe8 .quad -849429889038008149 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000eff0 .quad -4144520735624081848 - 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000eff8 .quad -5673473379724898090 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000f000 .quad -568964901102714406 - 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000f008 .quad -2480155706228734709 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000f010 .quad -7273132090830278360 - 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000f018 .quad -3855940325606653145 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000f020 .quad -4479729095110460046 - 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000f028 .quad -208239388580928527 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000f030 .quad -987975350460687153 - 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000f038 .quad -4871985254153548563 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000f040 .quad -7535013621679011327 - 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000f048 .quad -3044990783845967852 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000f050 .quad -4807081008671376254 - 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000f058 .quad 5417133557047315993 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000f060 .quad -1397165242411832414 - 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000f068 .quad -2451955090545630817 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000f070 .quad -7790757304148477115 - 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000f078 .quad -3838314940804713212 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000f080 .quad -5126760611758208489 - 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000f088 .quad 4425478360848884292 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000f090 .quad -1796764746270372707 - 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000f098 .quad 920161932633717461 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000f0a0 .quad -8040506994060064798 - 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000f0a8 .quad 2880944217109767366 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000f0b0 .quad -5438947724147693094 - 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000f0b8 .quad -5622191765467566601 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000f0c0 .quad -2186998636757228463 - 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000f0c8 .quad 6807318348447705460 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000f0d0 .quad -8284403175614349646 - 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000f0d8 .quad -2662955059861265943 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000f0e0 .quad -5743817951090549153 - 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000f0e8 .quad -7940379843253970333 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000f0f0 .quad -2568086420435798537 - 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000f0f8 .quad 8521269269642088700 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000f100 .quad -8522583040413455942 - 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000f108 .quad -6203421752542164322 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000f110 .quad -6041542782089432023 - 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000f118 .quad 6080780864604458309 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000f120 .quad -2940242459184402125 - 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000f128 .quad -6234081974526590826 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000f130 .quad -8755180564631333184 - 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000f138 .quad 5327070802775656542 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000f140 .quad -6332289687361778576 - 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000f148 .quad 6658838503469570677 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000f150 .quad -3303676090774835316 - 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000f158 .quad 8323548129336963346 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000f160 .quad -8982326584375353929 - 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000f168 .quad -4021154456019173716 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000f170 .quad -6616222212041804507 - 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000f178 .quad -5026443070023967146 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000f180 .quad -3658591746624867729 - 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000f188 .quad 2940318199324816876 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000f190 .quad -9204148869281624187 - 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000f198 .quad 8755227902219092404 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000f1a0 .quad -6893500068174642330 - 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000f1a8 .quad -2891023177508298208 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000f1b0 .quad -4005189066790915008 - 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000f1b8 .quad -8225464990312760664 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000f1c0 .quad -394800315061255856 - 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000f1c8 .quad -5670145219463562926 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000f1d0 .quad -7164279224554366766 - 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000f1d8 .quad 7985374283903742932 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000f1e0 .quad -4343663012265570553 - 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000f1e8 .quad 758345818024902857 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000f1f0 .quad -817892746904575288 - 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000f1f8 .quad -3663753745896259333 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000f200 .quad -7428711994456441411 - 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000f208 .quad -9207375118826243939 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000f210 .quad -4674203974643163860 - 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000f218 .quad -2285846861678029116 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000f220 .quad -1231068949876566920 - 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000f228 .quad 1754377441329851509 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000f230 .quad -7686947121313936181 - 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000f238 .quad 1096485900831157193 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000f240 .quad -4996997883215032323 - 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000f248 .quad -3241078642388441413 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000f250 .quad -1634561335591402499 - 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000f258 .quad 5172023733869224042 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000f260 .quad -7939129862385708418 - 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000f268 .quad 5538357842881958978 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000f270 .quad -5312226309554747619 - 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000f278 .quad -2300424733252327085 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000f280 .quad -2028596868516046619 - 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000f288 .quad 6347841120289366951 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000f290 .quad -8185402070463610993 - 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000f298 .quad 6273243709394548297 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000f2a0 .quad -5620066569652125837 - 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000f2a8 .quad 3229868618315797467 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000f2b0 .quad -2413397193637769393 - 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000f2b8 .quad -574350245532641070 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000f2c0 .quad -8425902273664687727 - 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000f2c8 .quad -358968903457900669 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000f2d0 .quad -5920691823653471754 - 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000f2d8 .quad 8774660907532399972 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000f2e0 .quad -2789178761139451788 - 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000f2e8 .quad 1744954097560724157 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000f2f0 .quad -8660765753353239224 - 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000f2f8 .quad -8132775725879323210 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000f300 .quad -6214271173264161126 - 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000f308 .quad -5554283638921766109 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000f310 .quad -3156152948152813503 - 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000f318 .quad 6892203506629956076 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000f320 .quad -8890124620236590296 - 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000f328 .quad -2609901835997359308 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000f330 .quad -6500969756868349965 - 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000f338 .quad 1349308723430688769 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000f340 .quad -3514526177658049553 - 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000f348 .quad -2925050114139026943 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000f350 .quad -9114107888677362827 - 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000f358 .quad -1828156321336891839 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000f360 .quad -6780948842419315629 - 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000f368 .quad 6938176635183661009 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000f370 .quad -3864500034596756632 - 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000f378 .quad 4061034775552188357 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000f380 .quad -218939024818557886 - 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000f388 .quad 5076293469440235446 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000f390 .quad -7054365918152680535 - 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000f398 .quad 7784369436827535058 - //0x0000f3a0 .p2align 4, 0x00 - //0x0000f3a0 _VecShiftShuffles - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000f3a0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000f3b0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000f3c0 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000f3d0 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000f3e0 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f3f0 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f400 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f410 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000f420 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - //0x0000f430 .p2align 4, 0x00 - //0x0000f430 __SingleQuoteTab - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000f438 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000f448 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000f458 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000f468 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000f478 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000f488 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000f498 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000f4a8 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000f4b8 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 .quad 2 - 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c8 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 .quad 2 - 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d8 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000f4e8 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000f4f8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 .quad 2 - 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f508 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000f518 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000f528 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000f538 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000f548 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000f558 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000f568 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000f578 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000f588 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000f598 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000f5a8 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000f5b8 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000f5c8 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000f5d8 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000f5e8 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000f5f8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000f608 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000f618 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000f628 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 .quad 2 - 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f658 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 2 - 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010430 .p2align 4, 0x00 - //0x00010430 __DoubleQuoteTab - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x00010438 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x00010448 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x00010458 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00010468 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00010478 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00010488 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00010498 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x000104a8 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x000104b8 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 .quad 3 - 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c8 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 .quad 3 - 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d8 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x000104e8 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x000104f8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 .quad 3 - 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010508 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x00010518 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x00010528 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x00010538 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x00010548 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x00010558 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00010568 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00010578 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00010588 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00010598 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x000105a8 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x000105b8 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x000105c8 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x000105d8 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x000105e8 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x000105f8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x00010608 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x00010618 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x00010628 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 .quad 4 - 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x00010658 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 .quad 4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x000109f8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00011430 .p2align 4, 0x00 - //0x00011430 __EscTab - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00011430 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00011440 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00011480 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001148d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001149d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001150d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001151d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, //0x0001152d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - //0x00011530 .p2align 4, 0x00 - //0x00011530 __UnquoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00011550 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00011590 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x000115a0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011606 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011616 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011626 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00011630 .p2align 4, 0x00 - //0x00011630 __HtmlQuoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011898 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x000119f8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00011a18 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120b0 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x000120b8 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120c0 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x000120c8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00012630 .p2align 4, 0x00 - //0x00012630 _LSHIFT_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012690 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012698 .long 1 - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000126fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012700 .long 1 - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012764 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00012768 .long 1 - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001277c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001278c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001279c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000127cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x000127d0 .long 2 - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012834 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00012838 .long 2 - 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001284c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001285c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001286c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001287c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001288c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001289c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x000128a0 .long 2 - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012904 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012908 .long 3 - 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001291c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001292c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001293c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001294c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001295c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001296c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00012970 .long 3 - 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000129d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x000129d8 .long 3 - 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012a3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012a40 .long 4 - 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012aa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012aa8 .long 4 - 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012b10 .long 4 - 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012b78 .long 4 - 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012bdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012be0 .long 5 - 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012c48 .long 5 - 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012cac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012cb0 .long 5 - 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012d18 .long 6 - 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012d80 .long 6 - 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012de4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012de8 .long 6 - 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x00012dec QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012e50 .long 7 - 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012e54 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012eb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012eb8 .long 7 - 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00012ebc QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012f20 .long 7 - 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012f24 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012f88 .long 7 - 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00012f8c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012fec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012ff0 .long 8 - 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012ff4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013054 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00013058 .long 8 - 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001305c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001307c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001308c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001309c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000130bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x000130c0 .long 8 - 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x000130c4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013124 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00013128 .long 9 - 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001312c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001314c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001315c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001316c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001317c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001318c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00013190 .long 9 - 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00013194 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000131f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000131f8 .long 9 - 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000131fc QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001321c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001322c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001323c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001324c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001325c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00013260 .long 10 - 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00013264 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000132c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x000132c8 .long 10 - 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x000132cc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001330c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001331c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001332c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00013330 .long 10 - 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00013334 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013394 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00013398 .long 10 - 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001339c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000133fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00013400 .long 11 - 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00013404 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013464 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00013468 .long 11 - 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001346c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001347c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001348c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001349c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000134cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x000134d0 .long 11 - 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x000134d4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013534 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00013538 .long 12 - 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0001353c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001354c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001355c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001356c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001357c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001358c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001359c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x000135a0 .long 12 - 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x000135a4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135b4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013604 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00013608 .long 12 - 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0001360c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0001361c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001362c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001363c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001364c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001365c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001366c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013670 .long 13 - 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00013674 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013684 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000136d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x000136d8 .long 13 - 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x000136dc QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000136ec QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001370c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001371c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001372c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001373c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00013740 .long 13 - 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00013744 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00013754 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000137a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x000137a8 .long 13 - 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x000137ac QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x000137bc QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001380c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013810 .long 14 - 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00013814 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00013824 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013874 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00013878 .long 14 - 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0001387c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0001388c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001389c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000138dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x000138e0 .long 14 - 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x000138e4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x000138f4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013904 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013944 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013948 .long 15 - 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0001394c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0001395c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001396c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001397c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001398c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001399c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000139ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x000139b0 .long 15 - 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x000139b4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x000139c4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139d4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013a14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00013a18 .long 15 - 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00013a1c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00013a2c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a3c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013a7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013a80 .long 16 - 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00013a84 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00013a94 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013aa4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013ae4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013ae8 .long 16 - 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00013aec QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00013afc QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b0c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013b4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013b50 .long 16 - 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013b54 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013b64 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b74 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013bb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013bb8 .long 16 - 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00013bbc QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00013bcc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bdc QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013c1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013c20 .long 17 - 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00013c24 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00013c34 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c44 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013c84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013c88 .long 17 - 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00013c8c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00013c9c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cac QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013cec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013cf0 .long 17 - 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013cf4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00013d04 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d14 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013d54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013d58 .long 18 - 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x00013d5c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x00013d6c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d7c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013dbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013dc0 .long 18 - 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013dc4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013dd4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013de4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013e24 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013e28 .long 18 - 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00013e2c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00013e3c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e4c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013e8c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x13, 0x00, 0x00, 0x00, //0x00013e90 .long 19 - 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013e94 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013ea4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013eb4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013ef4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ef8 .p2align 4, 0x00 - //0x00013f00 _P10_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00013f00 .quad 4607182418800017408 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00013f08 .quad 4621819117588971520 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00013f10 .quad 4636737291354636288 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00013f18 .quad 4652007308841189376 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013f20 .quad 4666723172467343360 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013f28 .quad 4681608360884174848 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013f30 .quad 4696837146684686336 - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013f38 .quad 4711630319722168320 - 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013f40 .quad 4726483295884279808 - 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013f48 .quad 4741671816366391296 - 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013f50 .quad 4756540486875873280 - 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013f58 .quad 4771362005757984768 - 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013f60 .quad 4786511204640096256 - 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013f68 .quad 4801453603149578240 - 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013f70 .quad 4816244402031689728 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013f78 .quad 4831355200913801216 - 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013f80 .quad 4846369599423283200 - 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013f88 .quad 4861130398305394688 - 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013f90 .quad 4876203697187506176 - 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013f98 .quad 4891288408196988160 - 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013fa0 .quad 4906019910204099648 - 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013fa8 .quad 4921056587992461136 - 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013fb0 .quad 4936209963552724370 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fb8 .p2align 4, 0x00 - //0x00013fc0 _pow10_ceil_sig_f32.g - 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013fc0 .quad -9093133594791772939 - 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013fc8 .quad -6754730975062328270 - 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013fd0 .quad -3831727700400522433 - 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013fd8 .quad -177973607073265138 - 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013fe0 .quad -7028762532061872567 - 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013fe8 .quad -4174267146649952805 - 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013ff0 .quad -606147914885053102 - 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013ff8 .quad -7296371474444240045 - 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00014000 .quad -4508778324627912152 - 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00014008 .quad -1024286887357502286 - 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00014010 .quad -7557708332239520785 - 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00014018 .quad -4835449396872013077 - 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00014020 .quad -1432625727662628442 - 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00014028 .quad -7812920107430224632 - 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00014030 .quad -5154464115860392886 - 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00014038 .quad -1831394126398103204 - 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00014040 .quad -8062150356639896358 - 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00014048 .quad -5466001927372482544 - 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00014050 .quad -2220816390788215276 - 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00014058 .quad -8305539271883716404 - 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00014060 .quad -5770238071427257601 - 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00014068 .quad -2601111570856684097 - 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00014070 .quad -8543223759426509416 - 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00014078 .quad -6067343680855748867 - 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00014080 .quad -2972493582642298179 - 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00014088 .quad -8775337516792518218 - 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00014090 .quad -6357485877563259868 - 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00014098 .quad -3335171328526686932 - 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x000140a0 .quad -9002011107970261188 - 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x000140a8 .quad -6640827866535438581 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000140b0 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000140b8 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000140c0 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000140c8 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x000140d0 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000140d8 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x000140e0 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x000140e8 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000140f0 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000140f8 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00014100 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00014108 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00014110 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00014118 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00014120 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00014128 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00014130 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00014138 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00014140 .quad -5646744073709551616 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00014148 .quad -2446744073709551616 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00014150 .quad -8446744073709551616 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00014158 .quad -5946744073709551616 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00014160 .quad -2821744073709551616 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00014168 .quad -8681119073709551616 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00014170 .quad -6239712823709551616 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00014178 .quad -3187955011209551616 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00014180 .quad -8910000909647051616 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00014188 .quad -6525815118631426616 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00014190 .quad -3545582879861895366 - 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00014198 .quad -9133518327554766459 - 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x000141a0 .quad -6805211891016070170 - 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x000141a8 .quad -3894828845342699809 - 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x000141b0 .quad -256850038250986857 - 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x000141b8 .quad -7078060301547948642 - 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000141c0 .quad -4235889358507547898 - 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000141c8 .quad -683175679707046969 - 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x000141d0 .quad -7344513827457986211 - 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x000141d8 .quad -4568956265895094860 - 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x000141e0 .quad -1099509313941480671 - 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x000141e8 .quad -7604722348854507275 - 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000141f0 .quad -4894216917640746190 - 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000141f8 .quad -1506085128623544834 - 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00014200 .quad -7858832233030797377 - 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00014208 .quad -5211854272861108818 - 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00014210 .quad -1903131822648998118 - 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00014218 .quad -8106986416796705680 - 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00014220 .quad -5522047002568494196 -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/quote.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/quote.go new file mode 100644 index 000000000..eba96c2e9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/quote.go @@ -0,0 +1,35 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) +var F_quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + +var S_quote uintptr + +//go:nosplit +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return F_quote(rt.NoEscape(sp), nb, rt.NoEscape(dp), rt.NoEscape(unsafe.Pointer(dn)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/quote_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/quote_subr.go new file mode 100644 index 000000000..f57232d4f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/quote_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__quote = 144 +) + +const ( + _stack__quote = 56 +) + +const ( + _size__quote = 2736 +) + +var ( + _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}, + } +) + +var _cfunc_quote = []loader.CFunc{ + {"_quote_entry", 0, _entry__quote, 0, nil}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/quote_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/quote_text_amd64.go new file mode 100644 index 000000000..9e5d1eb42 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/quote_text_amd64.go @@ -0,0 +1,1354 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_quote = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000010 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000020 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000020 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000050 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000060 .p2align 4, 0x00 + //0x00000060 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000060 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000070 LCPI0_4 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000070 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000080 LCPI0_5 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000080 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000090 .p2align 4, 0x90 + //0x00000090 _quote + 0x55, //0x00000090 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000091 movq %rsp, %rbp + 0x41, 0x57, //0x00000094 pushq %r15 + 0x41, 0x56, //0x00000096 pushq %r14 + 0x41, 0x55, //0x00000098 pushq %r13 + 0x41, 0x54, //0x0000009a pushq %r12 + 0x53, //0x0000009c pushq %rbx + 0x50, //0x0000009d pushq %rax + 0x49, 0x89, 0xcf, //0x0000009e movq %rcx, %r15 + 0x49, 0x89, 0xf6, //0x000000a1 movq %rsi, %r14 + 0x4c, 0x8b, 0x09, //0x000000a4 movq (%rcx), %r9 + 0x41, 0xf6, 0xc0, 0x01, //0x000000a7 testb $1, %r8b + 0x48, 0x8d, 0x05, 0x8e, 0x0a, 0x00, 0x00, //0x000000ab leaq $2702(%rip), %rax /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x87, 0x1a, 0x00, 0x00, //0x000000b2 leaq $6791(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc0, //0x000000b9 cmoveq %rax, %r8 + 0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x000000bd leaq (,%rsi,8), %rax + 0x49, 0x39, 0xc1, //0x000000c5 cmpq %rax, %r9 + 0x0f, 0x8d, 0xd8, 0x06, 0x00, 0x00, //0x000000c8 jge LBB0_86 + 0x49, 0x89, 0xd4, //0x000000ce movq %rdx, %r12 + 0x49, 0x89, 0xfb, //0x000000d1 movq %rdi, %r11 + 0x4d, 0x85, 0xf6, //0x000000d4 testq %r14, %r14 + 0x0f, 0x84, 0x12, 0x0a, 0x00, 0x00, //0x000000d7 je LBB0_118 + 0xc5, 0xfe, 0x6f, 0x25, 0x1b, 0xff, 0xff, 0xff, //0x000000dd vmovdqu $-229(%rip), %ymm4 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x33, 0xff, 0xff, 0xff, //0x000000e5 vmovdqu $-205(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x4b, 0xff, 0xff, 0xff, //0x000000ed vmovdqu $-181(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000000f5 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x49, 0x89, 0xfb, //0x000000fa movq %rdi, %r11 + 0x49, 0x89, 0xd4, //0x000000fd movq %rdx, %r12 + 0x48, 0x89, 0x55, 0xd0, //0x00000100 movq %rdx, $-48(%rbp) + //0x00000104 LBB0_3 + 0x49, 0x83, 0xfe, 0x1f, //0x00000104 cmpq $31, %r14 + 0x0f, 0x9f, 0xc1, //0x00000108 setg %cl + 0x4d, 0x89, 0xca, //0x0000010b movq %r9, %r10 + 0x4c, 0x89, 0xe6, //0x0000010e movq %r12, %rsi + 0x4c, 0x89, 0xf0, //0x00000111 movq %r14, %rax + 0x4d, 0x89, 0xdd, //0x00000114 movq %r11, %r13 + 0x49, 0x83, 0xf9, 0x20, //0x00000117 cmpq $32, %r9 + 0x0f, 0x8c, 0x8f, 0x00, 0x00, 0x00, //0x0000011b jl LBB0_9 + 0x49, 0x83, 0xfe, 0x20, //0x00000121 cmpq $32, %r14 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00000125 jl LBB0_9 + 0x4d, 0x89, 0xdd, //0x0000012b movq %r11, %r13 + 0x4c, 0x89, 0xf0, //0x0000012e movq %r14, %rax + 0x4c, 0x89, 0xe6, //0x00000131 movq %r12, %rsi + 0x4c, 0x89, 0xcb, //0x00000134 movq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000137 .p2align 4, 0x90 + //0x00000140 LBB0_6 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00000140 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x00000146 vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x0000014a vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x0000014e vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00000152 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x06, //0x00000156 vmovdqu %ymm0, (%rsi) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x0000015a vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x0000015f vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00000163 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00000167 vpmovmskb %ymm0, %ecx + 0x85, 0xc9, //0x0000016b testl %ecx, %ecx + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000016d jne LBB0_19 + 0x49, 0x83, 0xc5, 0x20, //0x00000173 addq $32, %r13 + 0x48, 0x83, 0xc6, 0x20, //0x00000177 addq $32, %rsi + 0x4c, 0x8d, 0x53, 0xe0, //0x0000017b leaq $-32(%rbx), %r10 + 0x48, 0x83, 0xf8, 0x3f, //0x0000017f cmpq $63, %rax + 0x0f, 0x9f, 0xc1, //0x00000183 setg %cl + 0x48, 0x83, 0xf8, 0x40, //0x00000186 cmpq $64, %rax + 0x48, 0x8d, 0x40, 0xe0, //0x0000018a leaq $-32(%rax), %rax + 0x0f, 0x8c, 0x1c, 0x00, 0x00, 0x00, //0x0000018e jl LBB0_9 + 0x48, 0x83, 0xfb, 0x3f, //0x00000194 cmpq $63, %rbx + 0x4c, 0x89, 0xd3, //0x00000198 movq %r10, %rbx + 0x0f, 0x8f, 0x9f, 0xff, 0xff, 0xff, //0x0000019b jg LBB0_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001a1 .p2align 4, 0x90 + //0x000001b0 LBB0_9 + 0x84, 0xc9, //0x000001b0 testb %cl, %cl + 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x000001b2 je LBB0_13 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000001b8 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x000001be vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x000001c2 vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x000001c6 vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000001ca vpor %ymm2, %ymm3, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x000001ce vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x000001d3 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x000001d7 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000001db vpmovmskb %ymm0, %eax + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000001df movabsq $4294967296, %rcx + 0x48, 0x09, 0xc8, //0x000001e9 orq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000001ec bsfq %rax, %rcx + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x000001f0 vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc0, 0x01, //0x000001f6 vpextrq $1, %xmm0, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x000001fc vmovq %xmm0, %rbx + 0x4c, 0x39, 0xd1, //0x00000201 cmpq %r10, %rcx + 0x0f, 0x8e, 0x6f, 0x01, 0x00, 0x00, //0x00000204 jle LBB0_20 + 0x49, 0x83, 0xfa, 0x10, //0x0000020a cmpq $16, %r10 + 0x0f, 0x82, 0xa5, 0x01, 0x00, 0x00, //0x0000020e jb LBB0_23 + 0x48, 0x89, 0x1e, //0x00000214 movq %rbx, (%rsi) + 0x48, 0x89, 0x46, 0x08, //0x00000217 movq %rax, $8(%rsi) + 0x49, 0x8d, 0x4d, 0x10, //0x0000021b leaq $16(%r13), %rcx + 0x48, 0x83, 0xc6, 0x10, //0x0000021f addq $16, %rsi + 0x49, 0x8d, 0x42, 0xf0, //0x00000223 leaq $-16(%r10), %rax + 0x48, 0x83, 0xf8, 0x08, //0x00000227 cmpq $8, %rax + 0x0f, 0x83, 0x98, 0x01, 0x00, 0x00, //0x0000022b jae LBB0_24 + 0xe9, 0xa5, 0x01, 0x00, 0x00, //0x00000231 jmp LBB0_25 + //0x00000236 LBB0_13 + 0x4c, 0x89, 0xfa, //0x00000236 movq %r15, %rdx + 0xc5, 0xf8, 0x77, //0x00000239 vzeroupper + 0x48, 0x83, 0xf8, 0x0f, //0x0000023c cmpq $15, %rax + 0x41, 0x0f, 0x9f, 0xc7, //0x00000240 setg %r15b + 0x49, 0x83, 0xfa, 0x10, //0x00000244 cmpq $16, %r10 + 0x0f, 0x8c, 0xf6, 0x01, 0x00, 0x00, //0x00000248 jl LBB0_30 + 0x48, 0x83, 0xf8, 0x10, //0x0000024e cmpq $16, %rax + 0xc5, 0xfa, 0x6f, 0x3d, 0x06, 0xfe, 0xff, 0xff, //0x00000252 vmovdqu $-506(%rip), %xmm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x0e, 0xfe, 0xff, 0xff, //0x0000025a vmovdqu $-498(%rip), %xmm9 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x16, 0xfe, 0xff, 0xff, //0x00000262 vmovdqu $-490(%rip), %xmm10 /* LCPI0_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x0000026a vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x0f, 0x8c, 0x1a, 0x02, 0x00, 0x00, //0x0000026f jl LBB0_35 + 0xc5, 0xfe, 0x6f, 0x25, 0x83, 0xfd, 0xff, 0xff, //0x00000275 vmovdqu $-637(%rip), %ymm4 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x9b, 0xfd, 0xff, 0xff, //0x0000027d vmovdqu $-613(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xb3, 0xfd, 0xff, 0xff, //0x00000285 vmovdqu $-589(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000028d vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000292 .p2align 4, 0x90 + //0x000002a0 LBB0_16 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x000002a0 vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x000002a6 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x000002aa vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x000002ae vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x000002b2 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x06, //0x000002b6 vmovdqu %xmm0, (%rsi) + 0xc4, 0xc1, 0x79, 0x64, 0xc3, //0x000002ba vpcmpgtb %xmm11, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc1, //0x000002bf vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x000002c3 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000002c7 vpmovmskb %xmm0, %ecx + 0x66, 0x85, 0xc9, //0x000002cb testw %cx, %cx + 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x000002ce jne LBB0_22 + 0x49, 0x83, 0xc5, 0x10, //0x000002d4 addq $16, %r13 + 0x48, 0x83, 0xc6, 0x10, //0x000002d8 addq $16, %rsi + 0x49, 0x8d, 0x4a, 0xf0, //0x000002dc leaq $-16(%r10), %rcx + 0x48, 0x83, 0xf8, 0x1f, //0x000002e0 cmpq $31, %rax + 0x41, 0x0f, 0x9f, 0xc7, //0x000002e4 setg %r15b + 0x48, 0x83, 0xf8, 0x20, //0x000002e8 cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x000002ec leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x0d, 0x00, 0x00, 0x00, //0x000002f0 jl LBB0_31 + 0x49, 0x83, 0xfa, 0x1f, //0x000002f6 cmpq $31, %r10 + 0x49, 0x89, 0xca, //0x000002fa movq %rcx, %r10 + 0x0f, 0x8f, 0x9d, 0xff, 0xff, 0xff, //0x000002fd jg LBB0_16 + //0x00000303 LBB0_31 + 0x45, 0x84, 0xff, //0x00000303 testb %r15b, %r15b + 0x0f, 0x84, 0xac, 0x01, 0x00, 0x00, //0x00000306 je LBB0_36 + //0x0000030c LBB0_32 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000030c vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00000312 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x00000316 vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000031a vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000031e vpor %xmm2, %xmm3, %xmm2 + 0xc4, 0xc1, 0x79, 0x64, 0xdb, //0x00000322 vpcmpgtb %xmm11, %xmm0, %xmm3 + 0xc5, 0xe1, 0xdb, 0xc9, //0x00000327 vpand %xmm1, %xmm3, %xmm1 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000032b vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x0000032f vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00000333 orl $65536, %eax + 0x0f, 0xbc, 0xd8, //0x00000338 bsfl %eax, %ebx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x0000033b vmovq %xmm0, %rax + 0x48, 0x39, 0xd9, //0x00000340 cmpq %rbx, %rcx + 0x49, 0x89, 0xd7, //0x00000343 movq %rdx, %r15 + 0x0f, 0x8d, 0x68, 0x02, 0x00, 0x00, //0x00000346 jge LBB0_53 + 0x48, 0x83, 0xf9, 0x08, //0x0000034c cmpq $8, %rcx + 0x0f, 0x82, 0x83, 0x02, 0x00, 0x00, //0x00000350 jb LBB0_56 + 0x48, 0x89, 0x06, //0x00000356 movq %rax, (%rsi) + 0x49, 0x8d, 0x45, 0x08, //0x00000359 leaq $8(%r13), %rax + 0x48, 0x83, 0xc6, 0x08, //0x0000035d addq $8, %rsi + 0x48, 0x8d, 0x59, 0xf8, //0x00000361 leaq $-8(%rcx), %rbx + 0xe9, 0x75, 0x02, 0x00, 0x00, //0x00000365 jmp LBB0_57 + //0x0000036a LBB0_19 + 0x4d, 0x29, 0xdd, //0x0000036a subq %r11, %r13 + 0x44, 0x0f, 0xbc, 0xd1, //0x0000036d bsfl %ecx, %r10d + 0x4d, 0x01, 0xea, //0x00000371 addq %r13, %r10 + 0xe9, 0x14, 0x03, 0x00, 0x00, //0x00000374 jmp LBB0_69 + //0x00000379 LBB0_20 + 0x83, 0xf9, 0x10, //0x00000379 cmpl $16, %ecx + 0x0f, 0x82, 0xaa, 0x01, 0x00, 0x00, //0x0000037c jb LBB0_42 + 0x48, 0x89, 0x1e, //0x00000382 movq %rbx, (%rsi) + 0x48, 0x89, 0x46, 0x08, //0x00000385 movq %rax, $8(%rsi) + 0x49, 0x8d, 0x5d, 0x10, //0x00000389 leaq $16(%r13), %rbx + 0x48, 0x83, 0xc6, 0x10, //0x0000038d addq $16, %rsi + 0x48, 0x8d, 0x41, 0xf0, //0x00000391 leaq $-16(%rcx), %rax + 0x48, 0x83, 0xf8, 0x08, //0x00000395 cmpq $8, %rax + 0x0f, 0x83, 0x9d, 0x01, 0x00, 0x00, //0x00000399 jae LBB0_43 + 0xe9, 0xaa, 0x01, 0x00, 0x00, //0x0000039f jmp LBB0_44 + //0x000003a4 LBB0_22 + 0x0f, 0xb7, 0xc1, //0x000003a4 movzwl %cx, %eax + 0x4d, 0x29, 0xdd, //0x000003a7 subq %r11, %r13 + 0x44, 0x0f, 0xbc, 0xd0, //0x000003aa bsfl %eax, %r10d + 0x4d, 0x01, 0xea, //0x000003ae addq %r13, %r10 + 0x49, 0x89, 0xd7, //0x000003b1 movq %rdx, %r15 + 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x000003b4 jmp LBB0_69 + //0x000003b9 LBB0_23 + 0x4c, 0x89, 0xe9, //0x000003b9 movq %r13, %rcx + 0x4c, 0x89, 0xd0, //0x000003bc movq %r10, %rax + 0x48, 0x83, 0xf8, 0x08, //0x000003bf cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000003c3 jb LBB0_25 + //0x000003c9 LBB0_24 + 0x48, 0x8b, 0x11, //0x000003c9 movq (%rcx), %rdx + 0x48, 0x89, 0x16, //0x000003cc movq %rdx, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x000003cf addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x000003d3 addq $8, %rsi + 0x48, 0x83, 0xc0, 0xf8, //0x000003d7 addq $-8, %rax + //0x000003db LBB0_25 + 0x48, 0x83, 0xf8, 0x04, //0x000003db cmpq $4, %rax + 0x0f, 0x8c, 0x35, 0x00, 0x00, 0x00, //0x000003df jl LBB0_26 + 0x8b, 0x11, //0x000003e5 movl (%rcx), %edx + 0x89, 0x16, //0x000003e7 movl %edx, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x000003e9 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x000003ed addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x000003f1 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x000003f5 cmpq $2, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000003f9 jae LBB0_50 + //0x000003ff LBB0_27 + 0x48, 0x85, 0xc0, //0x000003ff testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00000402 je LBB0_29 + //0x00000408 LBB0_28 + 0x8a, 0x01, //0x00000408 movb (%rcx), %al + 0x88, 0x06, //0x0000040a movb %al, (%rsi) + //0x0000040c LBB0_29 + 0x4d, 0x29, 0xda, //0x0000040c subq %r11, %r10 + 0x4d, 0x01, 0xea, //0x0000040f addq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00000412 notq %r10 + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00000415 jmp LBB0_69 + //0x0000041a LBB0_26 + 0x48, 0x83, 0xf8, 0x02, //0x0000041a cmpq $2, %rax + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x0000041e jb LBB0_27 + //0x00000424 LBB0_50 + 0x0f, 0xb7, 0x11, //0x00000424 movzwl (%rcx), %edx + 0x66, 0x89, 0x16, //0x00000427 movw %dx, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x0000042a addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000042e addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00000432 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00000436 testq %rax, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00000439 jne LBB0_28 + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x0000043f jmp LBB0_29 + //0x00000444 LBB0_30 + 0x4c, 0x89, 0xd1, //0x00000444 movq %r10, %rcx + 0xc5, 0xfe, 0x6f, 0x25, 0xb1, 0xfb, 0xff, 0xff, //0x00000447 vmovdqu $-1103(%rip), %ymm4 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0xc9, 0xfb, 0xff, 0xff, //0x0000044f vmovdqu $-1079(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xe1, 0xfb, 0xff, 0xff, //0x00000457 vmovdqu $-1055(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000045f vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0xfa, 0x6f, 0x3d, 0xf4, 0xfb, 0xff, 0xff, //0x00000464 vmovdqu $-1036(%rip), %xmm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0xfc, 0xfb, 0xff, 0xff, //0x0000046c vmovdqu $-1028(%rip), %xmm9 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x04, 0xfc, 0xff, 0xff, //0x00000474 vmovdqu $-1020(%rip), %xmm10 /* LCPI0_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x0000047c vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x45, 0x84, 0xff, //0x00000481 testb %r15b, %r15b + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00000484 je LBB0_36 + 0xe9, 0x7d, 0xfe, 0xff, 0xff, //0x0000048a jmp LBB0_32 + //0x0000048f LBB0_35 + 0x4c, 0x89, 0xd1, //0x0000048f movq %r10, %rcx + 0xc5, 0xfe, 0x6f, 0x25, 0x66, 0xfb, 0xff, 0xff, //0x00000492 vmovdqu $-1178(%rip), %ymm4 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x7e, 0xfb, 0xff, 0xff, //0x0000049a vmovdqu $-1154(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x96, 0xfb, 0xff, 0xff, //0x000004a2 vmovdqu $-1130(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000004aa vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x45, 0x84, 0xff, //0x000004af testb %r15b, %r15b + 0x0f, 0x85, 0x54, 0xfe, 0xff, 0xff, //0x000004b2 jne LBB0_32 + //0x000004b8 LBB0_36 + 0x48, 0x85, 0xc9, //0x000004b8 testq %rcx, %rcx + 0x49, 0x89, 0xd7, //0x000004bb movq %rdx, %r15 + 0x4c, 0x8d, 0x15, 0x7b, 0x06, 0x00, 0x00, //0x000004be leaq $1659(%rip), %r10 /* __SingleQuoteTab+0(%rip) */ + 0x0f, 0x8e, 0x50, 0x00, 0x00, 0x00, //0x000004c5 jle LBB0_41 + 0x48, 0x85, 0xc0, //0x000004cb testq %rax, %rax + 0x0f, 0x8e, 0x47, 0x00, 0x00, 0x00, //0x000004ce jle LBB0_41 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004d4 .p2align 4, 0x90 + //0x000004e0 LBB0_38 + 0x41, 0x0f, 0xb6, 0x5d, 0x00, //0x000004e0 movzbl (%r13), %ebx + 0x48, 0x89, 0xda, //0x000004e5 movq %rbx, %rdx + 0x48, 0xc1, 0xe2, 0x04, //0x000004e8 shlq $4, %rdx + 0x4a, 0x83, 0x3c, 0x12, 0x00, //0x000004ec cmpq $0, (%rdx,%r10) + 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, //0x000004f1 jne LBB0_55 + 0x49, 0xff, 0xc5, //0x000004f7 incq %r13 + 0x88, 0x1e, //0x000004fa movb %bl, (%rsi) + 0x48, 0x83, 0xf8, 0x02, //0x000004fc cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x00000500 leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00000504 jl LBB0_41 + 0x48, 0xff, 0xc6, //0x0000050a incq %rsi + 0x48, 0x83, 0xf9, 0x01, //0x0000050d cmpq $1, %rcx + 0x48, 0x8d, 0x49, 0xff, //0x00000511 leaq $-1(%rcx), %rcx + 0x0f, 0x8f, 0xc5, 0xff, 0xff, 0xff, //0x00000515 jg LBB0_38 + //0x0000051b LBB0_41 + 0x4d, 0x29, 0xdd, //0x0000051b subq %r11, %r13 + 0x48, 0xf7, 0xd8, //0x0000051e negq %rax + 0x4d, 0x19, 0xd2, //0x00000521 sbbq %r10, %r10 + 0x4d, 0x31, 0xea, //0x00000524 xorq %r13, %r10 + 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00000527 jmp LBB0_69 + //0x0000052c LBB0_42 + 0x4c, 0x89, 0xeb, //0x0000052c movq %r13, %rbx + 0x48, 0x89, 0xc8, //0x0000052f movq %rcx, %rax + 0x48, 0x83, 0xf8, 0x08, //0x00000532 cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000536 jb LBB0_44 + //0x0000053c LBB0_43 + 0x48, 0x8b, 0x13, //0x0000053c movq (%rbx), %rdx + 0x48, 0x89, 0x16, //0x0000053f movq %rdx, (%rsi) + 0x48, 0x83, 0xc3, 0x08, //0x00000542 addq $8, %rbx + 0x48, 0x83, 0xc6, 0x08, //0x00000546 addq $8, %rsi + 0x48, 0x83, 0xc0, 0xf8, //0x0000054a addq $-8, %rax + //0x0000054e LBB0_44 + 0x48, 0x83, 0xf8, 0x04, //0x0000054e cmpq $4, %rax + 0x0f, 0x8c, 0x32, 0x00, 0x00, 0x00, //0x00000552 jl LBB0_45 + 0x8b, 0x13, //0x00000558 movl (%rbx), %edx + 0x89, 0x16, //0x0000055a movl %edx, (%rsi) + 0x48, 0x83, 0xc3, 0x04, //0x0000055c addq $4, %rbx + 0x48, 0x83, 0xc6, 0x04, //0x00000560 addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x00000564 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x00000568 cmpq $2, %rax + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000056c jae LBB0_52 + //0x00000572 LBB0_46 + 0x48, 0x85, 0xc0, //0x00000572 testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00000575 je LBB0_48 + //0x0000057b LBB0_47 + 0x8a, 0x03, //0x0000057b movb (%rbx), %al + 0x88, 0x06, //0x0000057d movb %al, (%rsi) + //0x0000057f LBB0_48 + 0x4d, 0x29, 0xdd, //0x0000057f subq %r11, %r13 + 0x49, 0x01, 0xcd, //0x00000582 addq %rcx, %r13 + 0xe9, 0x00, 0x01, 0x00, 0x00, //0x00000585 jmp LBB0_68 + //0x0000058a LBB0_45 + 0x48, 0x83, 0xf8, 0x02, //0x0000058a cmpq $2, %rax + 0x0f, 0x82, 0xde, 0xff, 0xff, 0xff, //0x0000058e jb LBB0_46 + //0x00000594 LBB0_52 + 0x0f, 0xb7, 0x13, //0x00000594 movzwl (%rbx), %edx + 0x66, 0x89, 0x16, //0x00000597 movw %dx, (%rsi) + 0x48, 0x83, 0xc3, 0x02, //0x0000059a addq $2, %rbx + 0x48, 0x83, 0xc6, 0x02, //0x0000059e addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x000005a2 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x000005a6 testq %rax, %rax + 0x0f, 0x85, 0xcc, 0xff, 0xff, 0xff, //0x000005a9 jne LBB0_47 + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x000005af jmp LBB0_48 + //0x000005b4 LBB0_53 + 0x83, 0xfb, 0x08, //0x000005b4 cmpl $8, %ebx + 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x000005b7 jb LBB0_62 + 0x48, 0x89, 0x06, //0x000005bd movq %rax, (%rsi) + 0x4d, 0x8d, 0x55, 0x08, //0x000005c0 leaq $8(%r13), %r10 + 0x48, 0x83, 0xc6, 0x08, //0x000005c4 addq $8, %rsi + 0x48, 0x8d, 0x43, 0xf8, //0x000005c8 leaq $-8(%rbx), %rax + 0xe9, 0x80, 0x00, 0x00, 0x00, //0x000005cc jmp LBB0_63 + //0x000005d1 LBB0_55 + 0x4d, 0x29, 0xdd, //0x000005d1 subq %r11, %r13 + 0xe9, 0xb1, 0x00, 0x00, 0x00, //0x000005d4 jmp LBB0_68 + //0x000005d9 LBB0_56 + 0x4c, 0x89, 0xe8, //0x000005d9 movq %r13, %rax + 0x48, 0x89, 0xcb, //0x000005dc movq %rcx, %rbx + //0x000005df LBB0_57 + 0x48, 0x83, 0xfb, 0x04, //0x000005df cmpq $4, %rbx + 0x0f, 0x8c, 0x38, 0x00, 0x00, 0x00, //0x000005e3 jl LBB0_58 + 0x8b, 0x10, //0x000005e9 movl (%rax), %edx + 0x89, 0x16, //0x000005eb movl %edx, (%rsi) + 0x48, 0x83, 0xc0, 0x04, //0x000005ed addq $4, %rax + 0x48, 0x83, 0xc6, 0x04, //0x000005f1 addq $4, %rsi + 0x48, 0x83, 0xc3, 0xfc, //0x000005f5 addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000005f9 cmpq $2, %rbx + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x000005fd jae LBB0_83 + //0x00000603 LBB0_59 + 0x48, 0x85, 0xdb, //0x00000603 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00000606 je LBB0_61 + //0x0000060c LBB0_60 + 0x8a, 0x00, //0x0000060c movb (%rax), %al + 0x88, 0x06, //0x0000060e movb %al, (%rsi) + //0x00000610 LBB0_61 + 0x4c, 0x29, 0xd9, //0x00000610 subq %r11, %rcx + 0x4c, 0x01, 0xe9, //0x00000613 addq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00000616 notq %rcx + 0x49, 0x89, 0xca, //0x00000619 movq %rcx, %r10 + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x0000061c jmp LBB0_69 + //0x00000621 LBB0_58 + 0x48, 0x83, 0xfb, 0x02, //0x00000621 cmpq $2, %rbx + 0x0f, 0x82, 0xd8, 0xff, 0xff, 0xff, //0x00000625 jb LBB0_59 + //0x0000062b LBB0_83 + 0x0f, 0xb7, 0x10, //0x0000062b movzwl (%rax), %edx + 0x66, 0x89, 0x16, //0x0000062e movw %dx, (%rsi) + 0x48, 0x83, 0xc0, 0x02, //0x00000631 addq $2, %rax + 0x48, 0x83, 0xc6, 0x02, //0x00000635 addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x00000639 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x0000063d testq %rbx, %rbx + 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00000640 jne LBB0_60 + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00000646 jmp LBB0_61 + //0x0000064b LBB0_62 + 0x4d, 0x89, 0xea, //0x0000064b movq %r13, %r10 + 0x48, 0x89, 0xd8, //0x0000064e movq %rbx, %rax + //0x00000651 LBB0_63 + 0x48, 0x83, 0xf8, 0x04, //0x00000651 cmpq $4, %rax + 0x0f, 0x8c, 0x20, 0x01, 0x00, 0x00, //0x00000655 jl LBB0_64 + 0x41, 0x8b, 0x0a, //0x0000065b movl (%r10), %ecx + 0x89, 0x0e, //0x0000065e movl %ecx, (%rsi) + 0x49, 0x83, 0xc2, 0x04, //0x00000660 addq $4, %r10 + 0x48, 0x83, 0xc6, 0x04, //0x00000664 addq $4, %rsi + 0x48, 0x83, 0xc0, 0xfc, //0x00000668 addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x0000066c cmpq $2, %rax + 0x0f, 0x83, 0x0f, 0x01, 0x00, 0x00, //0x00000670 jae LBB0_85 + //0x00000676 LBB0_65 + 0x48, 0x85, 0xc0, //0x00000676 testq %rax, %rax + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000679 je LBB0_67 + //0x0000067f LBB0_66 + 0x41, 0x8a, 0x02, //0x0000067f movb (%r10), %al + 0x88, 0x06, //0x00000682 movb %al, (%rsi) + //0x00000684 LBB0_67 + 0x4d, 0x29, 0xdd, //0x00000684 subq %r11, %r13 + 0x49, 0x01, 0xdd, //0x00000687 addq %rbx, %r13 + //0x0000068a LBB0_68 + 0x4d, 0x89, 0xea, //0x0000068a movq %r13, %r10 + //0x0000068d LBB0_69 + 0x4d, 0x85, 0xd2, //0x0000068d testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x00000690 movq $-48(%rbp), %rdx + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00000694 movabsq $12884901889, %r13 + 0x0f, 0x88, 0x7d, 0x04, 0x00, 0x00, //0x0000069e js LBB0_122 + 0x4d, 0x01, 0xd3, //0x000006a4 addq %r10, %r11 + 0x4d, 0x01, 0xd4, //0x000006a7 addq %r10, %r12 + 0x4d, 0x39, 0xd6, //0x000006aa cmpq %r10, %r14 + 0x0f, 0x84, 0x3c, 0x04, 0x00, 0x00, //0x000006ad je LBB0_118 + 0x4d, 0x29, 0xd1, //0x000006b3 subq %r10, %r9 + 0x4d, 0x29, 0xf2, //0x000006b6 subq %r14, %r10 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x000006b9 jmp LBB0_73 + 0x90, 0x90, //0x000006be .p2align 4, 0x90 + //0x000006c0 LBB0_72 + 0x49, 0xff, 0xc3, //0x000006c0 incq %r11 + 0x49, 0x01, 0xc4, //0x000006c3 addq %rax, %r12 + 0x49, 0xff, 0xc2, //0x000006c6 incq %r10 + 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x000006c9 je LBB0_118 + //0x000006cf LBB0_73 + 0x41, 0x0f, 0xb6, 0x33, //0x000006cf movzbl (%r11), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x000006d3 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x000006d7 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x000006db testl %ebx, %ebx + 0x0f, 0x84, 0x84, 0x00, 0x00, 0x00, //0x000006dd je LBB0_81 + 0x48, 0x63, 0xc3, //0x000006e3 movslq %ebx, %rax + 0x49, 0x29, 0xc1, //0x000006e6 subq %rax, %r9 + 0x0f, 0x8c, 0x0e, 0x04, 0x00, 0x00, //0x000006e9 jl LBB0_119 + 0x48, 0xc1, 0xe3, 0x20, //0x000006ef shlq $32, %rbx + 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x000006f3 leaq $8(%r8,%rsi), %rcx + 0x4c, 0x39, 0xeb, //0x000006f8 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x000006fb jl LBB0_77 + 0x8b, 0x09, //0x00000701 movl (%rcx), %ecx + 0x41, 0x89, 0x0c, 0x24, //0x00000703 movl %ecx, (%r12) + 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00000707 leaq $12(%r8,%rsi), %rcx + 0x4d, 0x8d, 0x74, 0x24, 0x04, //0x0000070c leaq $4(%r12), %r14 + 0x48, 0x8d, 0x58, 0xfc, //0x00000711 leaq $-4(%rax), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000715 cmpq $2, %rbx + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x00000719 jae LBB0_78 + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000071f jmp LBB0_79 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000724 .p2align 4, 0x90 + //0x00000730 LBB0_77 + 0x4d, 0x89, 0xe6, //0x00000730 movq %r12, %r14 + 0x48, 0x89, 0xc3, //0x00000733 movq %rax, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000736 cmpq $2, %rbx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x0000073a jb LBB0_79 + //0x00000740 LBB0_78 + 0x0f, 0xb7, 0x31, //0x00000740 movzwl (%rcx), %esi + 0x66, 0x41, 0x89, 0x36, //0x00000743 movw %si, (%r14) + 0x48, 0x83, 0xc1, 0x02, //0x00000747 addq $2, %rcx + 0x49, 0x83, 0xc6, 0x02, //0x0000074b addq $2, %r14 + 0x48, 0x83, 0xc3, 0xfe, //0x0000074f addq $-2, %rbx + //0x00000753 LBB0_79 + 0x48, 0x85, 0xdb, //0x00000753 testq %rbx, %rbx + 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x00000756 je LBB0_72 + 0x0f, 0xb6, 0x09, //0x0000075c movzbl (%rcx), %ecx + 0x41, 0x88, 0x0e, //0x0000075f movb %cl, (%r14) + 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00000762 jmp LBB0_72 + //0x00000767 LBB0_81 + 0x4d, 0x89, 0xd6, //0x00000767 movq %r10, %r14 + 0x49, 0xf7, 0xde, //0x0000076a negq %r14 + 0x4d, 0x85, 0xd2, //0x0000076d testq %r10, %r10 + 0x0f, 0x85, 0x8e, 0xf9, 0xff, 0xff, //0x00000770 jne LBB0_3 + 0xe9, 0x74, 0x03, 0x00, 0x00, //0x00000776 jmp LBB0_118 + //0x0000077b LBB0_64 + 0x48, 0x83, 0xf8, 0x02, //0x0000077b cmpq $2, %rax + 0x0f, 0x82, 0xf1, 0xfe, 0xff, 0xff, //0x0000077f jb LBB0_65 + //0x00000785 LBB0_85 + 0x41, 0x0f, 0xb7, 0x0a, //0x00000785 movzwl (%r10), %ecx + 0x66, 0x89, 0x0e, //0x00000789 movw %cx, (%rsi) + 0x49, 0x83, 0xc2, 0x02, //0x0000078c addq $2, %r10 + 0x48, 0x83, 0xc6, 0x02, //0x00000790 addq $2, %rsi + 0x48, 0x83, 0xc0, 0xfe, //0x00000794 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00000798 testq %rax, %rax + 0x0f, 0x85, 0xde, 0xfe, 0xff, 0xff, //0x0000079b jne LBB0_66 + 0xe9, 0xde, 0xfe, 0xff, 0xff, //0x000007a1 jmp LBB0_67 + //0x000007a6 LBB0_86 + 0x4c, 0x8d, 0x0d, 0x93, 0x23, 0x00, 0x00, //0x000007a6 leaq $9107(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x4b, 0xf8, 0xff, 0xff, //0x000007ad vmovdqu $-1973(%rip), %ymm10 /* LCPI0_0+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x63, 0xf8, 0xff, 0xff, //0x000007b5 vmovdqu $-1949(%rip), %ymm9 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x7b, 0xf8, 0xff, 0xff, //0x000007bd vmovdqu $-1925(%rip), %ymm11 /* LCPI0_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000007c5 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x48, 0x89, 0xd3, //0x000007ca movq %rdx, %rbx + 0x4d, 0x89, 0xf2, //0x000007cd movq %r14, %r10 + //0x000007d0 LBB0_87 + 0x49, 0x83, 0xfa, 0x10, //0x000007d0 cmpq $16, %r10 + 0x0f, 0x8d, 0x26, 0x01, 0x00, 0x00, //0x000007d4 jge LBB0_88 + //0x000007da LBB0_93 + 0x49, 0x83, 0xfa, 0x08, //0x000007da cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000007de jl LBB0_97 + //0x000007e4 LBB0_94 + 0x0f, 0xb6, 0x07, //0x000007e4 movzbl (%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x000007e7 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x000007ec movzbl $1(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000007f0 movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x000007f5 addl %ecx, %ecx + 0x09, 0xc1, //0x000007f7 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x02, //0x000007f9 movzbl $2(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x000007fd movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00000802 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x03, //0x00000805 movzbl $3(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00000809 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x0000080e shll $3, %eax + 0x09, 0xf0, //0x00000811 orl %esi, %eax + 0x09, 0xc8, //0x00000813 orl %ecx, %eax + 0x48, 0x8b, 0x0f, //0x00000815 movq (%rdi), %rcx + 0x48, 0x89, 0x0b, //0x00000818 movq %rcx, (%rbx) + 0x84, 0xc0, //0x0000081b testb %al, %al + 0x0f, 0x85, 0x9a, 0x02, 0x00, 0x00, //0x0000081d jne LBB0_115 + 0x0f, 0xb6, 0x47, 0x04, //0x00000823 movzbl $4(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00000827 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x05, //0x0000082c movzbl $5(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x00000830 movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00000835 addl %ecx, %ecx + 0x09, 0xc1, //0x00000837 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x06, //0x00000839 movzbl $6(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x0000083d movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00000842 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x07, //0x00000845 movzbl $7(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00000849 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x0000084e shll $3, %eax + 0x09, 0xf0, //0x00000851 orl %esi, %eax + 0x09, 0xc8, //0x00000853 orl %ecx, %eax + 0x84, 0xc0, //0x00000855 testb %al, %al + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00000857 jne LBB0_116 + 0x48, 0x83, 0xc3, 0x08, //0x0000085d addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00000861 addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x00000865 addq $-8, %r10 + //0x00000869 LBB0_97 + 0x49, 0x83, 0xfa, 0x04, //0x00000869 cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x0000086d jl LBB0_100 + 0x0f, 0xb6, 0x07, //0x00000873 movzbl (%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00000876 movzbl (%rax,%r9), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x0000087b movzbl $1(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000087f movzbl (%rcx,%r9), %ecx + 0x01, 0xc9, //0x00000884 addl %ecx, %ecx + 0x09, 0xc1, //0x00000886 orl %eax, %ecx + 0x0f, 0xb6, 0x47, 0x02, //0x00000888 movzbl $2(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x34, 0x08, //0x0000088c movzbl (%rax,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00000891 shll $2, %esi + 0x0f, 0xb6, 0x47, 0x03, //0x00000894 movzbl $3(%rdi), %eax + 0x42, 0x0f, 0xb6, 0x04, 0x08, //0x00000898 movzbl (%rax,%r9), %eax + 0xc1, 0xe0, 0x03, //0x0000089d shll $3, %eax + 0x09, 0xf0, //0x000008a0 orl %esi, %eax + 0x09, 0xc8, //0x000008a2 orl %ecx, %eax + 0x8b, 0x0f, //0x000008a4 movl (%rdi), %ecx + 0x89, 0x0b, //0x000008a6 movl %ecx, (%rbx) + 0x84, 0xc0, //0x000008a8 testb %al, %al + 0x0f, 0x85, 0x0d, 0x02, 0x00, 0x00, //0x000008aa jne LBB0_115 + 0x48, 0x83, 0xc3, 0x04, //0x000008b0 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x000008b4 addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x000008b8 addq $-4, %r10 + //0x000008bc LBB0_100 + 0x4d, 0x85, 0xd2, //0x000008bc testq %r10, %r10 + 0x0f, 0x8e, 0x1f, 0x02, 0x00, 0x00, //0x000008bf jle LBB0_117 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008c5 .p2align 4, 0x90 + //0x000008d0 LBB0_101 + 0x0f, 0xb6, 0x07, //0x000008d0 movzbl (%rdi), %eax + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x000008d3 cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x000008d8 jne LBB0_112 + 0x48, 0xff, 0xc7, //0x000008de incq %rdi + 0x88, 0x03, //0x000008e1 movb %al, (%rbx) + 0x48, 0xff, 0xc3, //0x000008e3 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x000008e6 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x000008ea leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000008ee jg LBB0_101 + 0xe9, 0xeb, 0x01, 0x00, 0x00, //0x000008f4 jmp LBB0_117 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008f9 .p2align 4, 0x90 + //0x00000900 LBB0_88 + 0x49, 0x83, 0xfa, 0x20, //0x00000900 cmpq $32, %r10 + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00000904 jl LBB0_103 + 0x49, 0x8d, 0x4a, 0x20, //0x0000090a leaq $32(%r10), %rcx + 0x31, 0xc0, //0x0000090e xorl %eax, %eax + //0x00000910 .p2align 4, 0x90 + //0x00000910 LBB0_90 + 0xc5, 0xfe, 0x6f, 0x04, 0x07, //0x00000910 vmovdqu (%rdi,%rax), %ymm0 + 0xc5, 0xad, 0x64, 0xc8, //0x00000915 vpcmpgtb %ymm0, %ymm10, %ymm1 + 0xc5, 0xb5, 0x74, 0xd0, //0x00000919 vpcmpeqb %ymm0, %ymm9, %ymm2 + 0xc5, 0xa5, 0x74, 0xd8, //0x0000091d vpcmpeqb %ymm0, %ymm11, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00000921 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x04, 0x03, //0x00000925 vmovdqu %ymm0, (%rbx,%rax) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x0000092a vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x0000092f vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00000933 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000937 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x0000093b testl %esi, %esi + 0x0f, 0x85, 0x1a, 0x01, 0x00, 0x00, //0x0000093d jne LBB0_109 + 0x48, 0x83, 0xc0, 0x20, //0x00000943 addq $32, %rax + 0x48, 0x83, 0xc1, 0xe0, //0x00000947 addq $-32, %rcx + 0x48, 0x83, 0xf9, 0x3f, //0x0000094b cmpq $63, %rcx + 0x0f, 0x8f, 0xbb, 0xff, 0xff, 0xff, //0x0000094f jg LBB0_90 + 0xc5, 0xf8, 0x77, //0x00000955 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00000958 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7e, 0x6f, 0x1d, 0xdb, 0xf6, 0xff, 0xff, //0x0000095d vmovdqu $-2341(%rip), %ymm11 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0xb3, 0xf6, 0xff, 0xff, //0x00000965 vmovdqu $-2381(%rip), %ymm9 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x8b, 0xf6, 0xff, 0xff, //0x0000096d vmovdqu $-2421(%rip), %ymm10 /* LCPI0_0+0(%rip) */ + 0x48, 0x01, 0xc7, //0x00000975 addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00000978 subq %rax, %r10 + 0x48, 0x01, 0xc3, //0x0000097b addq %rax, %rbx + 0x48, 0x83, 0xf9, 0x30, //0x0000097e cmpq $48, %rcx + 0xc5, 0xfa, 0x6f, 0x3d, 0xd6, 0xf6, 0xff, 0xff, //0x00000982 vmovdqu $-2346(%rip), %xmm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x2d, 0xde, 0xf6, 0xff, 0xff, //0x0000098a vmovdqu $-2338(%rip), %xmm5 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0xe6, 0xf6, 0xff, 0xff, //0x00000992 vmovdqu $-2330(%rip), %xmm4 /* LCPI0_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x0000099a vpcmpeqd %xmm6, %xmm6, %xmm6 + 0x0f, 0x8d, 0x41, 0x00, 0x00, 0x00, //0x0000099e jge LBB0_104 + 0xe9, 0x31, 0xfe, 0xff, 0xff, //0x000009a4 jmp LBB0_93 + //0x000009a9 LBB0_103 + 0xc5, 0xf8, 0x77, //0x000009a9 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000009ac vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7e, 0x6f, 0x1d, 0x87, 0xf6, 0xff, 0xff, //0x000009b1 vmovdqu $-2425(%rip), %ymm11 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x5f, 0xf6, 0xff, 0xff, //0x000009b9 vmovdqu $-2465(%rip), %ymm9 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x37, 0xf6, 0xff, 0xff, //0x000009c1 vmovdqu $-2505(%rip), %ymm10 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x3d, 0x8f, 0xf6, 0xff, 0xff, //0x000009c9 vmovdqu $-2417(%rip), %xmm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x2d, 0x97, 0xf6, 0xff, 0xff, //0x000009d1 vmovdqu $-2409(%rip), %xmm5 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0x9f, 0xf6, 0xff, 0xff, //0x000009d9 vmovdqu $-2401(%rip), %xmm4 /* LCPI0_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x000009e1 vpcmpeqd %xmm6, %xmm6, %xmm6 + //0x000009e5 LBB0_104 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000009e5 movl $16, %ecx + 0x31, 0xc0, //0x000009ea xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, //0x000009ec .p2align 4, 0x90 + //0x000009f0 LBB0_105 + 0xc5, 0xfa, 0x6f, 0x04, 0x07, //0x000009f0 vmovdqu (%rdi,%rax), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x000009f5 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xf9, 0x74, 0xd5, //0x000009f9 vpcmpeqb %xmm5, %xmm0, %xmm2 + 0xc5, 0xf9, 0x74, 0xdc, //0x000009fd vpcmpeqb %xmm4, %xmm0, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00000a01 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x04, 0x03, //0x00000a05 vmovdqu %xmm0, (%rbx,%rax) + 0xc5, 0xf9, 0x64, 0xc6, //0x00000a0a vpcmpgtb %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00000a0e vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x00000a12 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00000a16 vpmovmskb %xmm0, %esi + 0x66, 0x85, 0xf6, //0x00000a1a testw %si, %si + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000a1d jne LBB0_108 + 0x48, 0x83, 0xc0, 0x10, //0x00000a23 addq $16, %rax + 0x49, 0x8d, 0x74, 0x0a, 0xf0, //0x00000a27 leaq $-16(%r10,%rcx), %rsi + 0x48, 0x83, 0xc1, 0xf0, //0x00000a2c addq $-16, %rcx + 0x48, 0x83, 0xfe, 0x1f, //0x00000a30 cmpq $31, %rsi + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00000a34 jg LBB0_105 + 0x48, 0x01, 0xc7, //0x00000a3a addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00000a3d subq %rax, %r10 + 0x48, 0x01, 0xc3, //0x00000a40 addq %rax, %rbx + 0x49, 0x83, 0xfa, 0x08, //0x00000a43 cmpq $8, %r10 + 0x0f, 0x8d, 0x97, 0xfd, 0xff, 0xff, //0x00000a47 jge LBB0_94 + 0xe9, 0x17, 0xfe, 0xff, 0xff, //0x00000a4d jmp LBB0_97 + //0x00000a52 LBB0_108 + 0x0f, 0xb7, 0xce, //0x00000a52 movzwl %si, %ecx + 0x0f, 0xbc, 0xc9, //0x00000a55 bsfl %ecx, %ecx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00000a58 jmp LBB0_110 + //0x00000a5d LBB0_109 + 0x0f, 0xbc, 0xce, //0x00000a5d bsfl %esi, %ecx + //0x00000a60 LBB0_110 + 0x48, 0x01, 0xcf, //0x00000a60 addq %rcx, %rdi + 0x48, 0x01, 0xc7, //0x00000a63 addq %rax, %rdi + 0x49, 0x29, 0xca, //0x00000a66 subq %rcx, %r10 + 0x49, 0x29, 0xc2, //0x00000a69 subq %rax, %r10 + 0x48, 0x01, 0xcb, //0x00000a6c addq %rcx, %rbx + //0x00000a6f LBB0_111 + 0x48, 0x01, 0xc3, //0x00000a6f addq %rax, %rbx + //0x00000a72 LBB0_112 + 0x8a, 0x07, //0x00000a72 movb (%rdi), %al + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a74 .p2align 4, 0x90 + //0x00000a80 LBB0_113 + 0x48, 0x89, 0xd9, //0x00000a80 movq %rbx, %rcx + 0x0f, 0xb6, 0xc0, //0x00000a83 movzbl %al, %eax + 0x48, 0xc1, 0xe0, 0x04, //0x00000a86 shlq $4, %rax + 0x49, 0x63, 0x1c, 0x00, //0x00000a8a movslq (%r8,%rax), %rbx + 0x49, 0x8b, 0x44, 0x00, 0x08, //0x00000a8e movq $8(%r8,%rax), %rax + 0x48, 0x89, 0x01, //0x00000a93 movq %rax, (%rcx) + 0x48, 0x01, 0xcb, //0x00000a96 addq %rcx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00000a99 cmpq $2, %r10 + 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00000a9d jl LBB0_117 + 0x49, 0xff, 0xca, //0x00000aa3 decq %r10 + 0x0f, 0xb6, 0x47, 0x01, //0x00000aa6 movzbl $1(%rdi), %eax + 0x48, 0xff, 0xc7, //0x00000aaa incq %rdi + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00000aad cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00000ab2 jne LBB0_113 + 0xe9, 0x13, 0xfd, 0xff, 0xff, //0x00000ab8 jmp LBB0_87 + //0x00000abd LBB0_115 + 0x0f, 0xbc, 0xc0, //0x00000abd bsfl %eax, %eax + 0x48, 0x01, 0xc7, //0x00000ac0 addq %rax, %rdi + 0x49, 0x29, 0xc2, //0x00000ac3 subq %rax, %r10 + 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x00000ac6 jmp LBB0_111 + //0x00000acb LBB0_116 + 0x0f, 0xbc, 0xc0, //0x00000acb bsfl %eax, %eax + 0x48, 0x8d, 0x48, 0x04, //0x00000ace leaq $4(%rax), %rcx + 0x48, 0x8d, 0x7c, 0x07, 0x04, //0x00000ad2 leaq $4(%rdi,%rax), %rdi + 0x49, 0x29, 0xca, //0x00000ad7 subq %rcx, %r10 + 0x48, 0x8d, 0x5c, 0x03, 0x04, //0x00000ada leaq $4(%rbx,%rax), %rbx + 0xe9, 0x8e, 0xff, 0xff, 0xff, //0x00000adf jmp LBB0_112 + //0x00000ae4 LBB0_117 + 0x48, 0x29, 0xd3, //0x00000ae4 subq %rdx, %rbx + 0x49, 0x89, 0x1f, //0x00000ae7 movq %rbx, (%r15) + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00000aea jmp LBB0_121 + //0x00000aef LBB0_118 + 0x49, 0x29, 0xd4, //0x00000aef subq %rdx, %r12 + 0x4d, 0x89, 0x27, //0x00000af2 movq %r12, (%r15) + 0x49, 0x29, 0xfb, //0x00000af5 subq %rdi, %r11 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00000af8 jmp LBB0_120 + //0x00000afd LBB0_119 + 0x49, 0x29, 0xd4, //0x00000afd subq %rdx, %r12 + 0x4d, 0x89, 0x27, //0x00000b00 movq %r12, (%r15) + 0x49, 0xf7, 0xd3, //0x00000b03 notq %r11 + 0x49, 0x01, 0xfb, //0x00000b06 addq %rdi, %r11 + //0x00000b09 LBB0_120 + 0x4d, 0x89, 0xde, //0x00000b09 movq %r11, %r14 + //0x00000b0c LBB0_121 + 0x4c, 0x89, 0xf0, //0x00000b0c movq %r14, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00000b0f addq $8, %rsp + 0x5b, //0x00000b13 popq %rbx + 0x41, 0x5c, //0x00000b14 popq %r12 + 0x41, 0x5d, //0x00000b16 popq %r13 + 0x41, 0x5e, //0x00000b18 popq %r14 + 0x41, 0x5f, //0x00000b1a popq %r15 + 0x5d, //0x00000b1c popq %rbp + 0xc5, 0xf8, 0x77, //0x00000b1d vzeroupper + 0xc3, //0x00000b20 retq + //0x00000b21 LBB0_122 + 0x49, 0x29, 0xd4, //0x00000b21 subq %rdx, %r12 + 0x49, 0xf7, 0xd2, //0x00000b24 notq %r10 + 0x4d, 0x01, 0xd4, //0x00000b27 addq %r10, %r12 + 0x4d, 0x89, 0x27, //0x00000b2a movq %r12, (%r15) + 0x49, 0x29, 0xfb, //0x00000b2d subq %rdi, %r11 + 0x4d, 0x01, 0xd3, //0x00000b30 addq %r10, %r11 + 0x49, 0xf7, 0xd3, //0x00000b33 notq %r11 + 0xe9, 0xce, 0xff, 0xff, 0xff, //0x00000b36 jmp LBB0_120 + 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b3b .p2align 4, 0x00 + //0x00000b40 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x00000b48 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x00000b58 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x00000b68 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x00000b78 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x00000b88 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x00000b98 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ba0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x00000ba8 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x00000bb8 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x00000bc8 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd0 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd8 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be0 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be8 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x00000bf8 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x00000c08 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c10 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c18 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x00000c28 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x00000c38 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x00000c48 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x00000c58 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x00000c68 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x00000c78 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x00000c88 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x00000c98 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ca0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x00000ca8 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x00000cb8 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x00000cc8 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cd0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x00000cd8 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ce0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x00000ce8 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x00000cf8 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x00000d08 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x00000d18 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x00000d28 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x00000d38 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d60 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d68 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001100 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001108 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00001b40 .p2align 4, 0x00 + //0x00001b40 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x00001b48 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x00001b58 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x00001b68 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00001b78 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00001b88 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00001b98 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ba0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00001ba8 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bb0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x00001bb8 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bc0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x00001bc8 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bd0 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bd8 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001be0 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001be8 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x00001bf8 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x00001c08 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c10 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c18 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x00001c28 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x00001c38 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x00001c48 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x00001c58 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x00001c68 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00001c78 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00001c88 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00001c98 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ca0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00001ca8 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cb0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x00001cb8 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cc0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x00001cc8 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cd0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x00001cd8 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ce0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x00001ce8 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x00001cf8 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x00001d08 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x00001d18 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x00001d28 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x00001d38 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d60 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x00001d68 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002100 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00002108 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000028a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000028b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000028c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000028d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000028e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000028f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000029a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000029b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000029c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000029d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000029e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000029f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00002b40 .p2align 4, 0x00 + //0x00002b40 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00002b40 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00002b50 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b60 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00002b90 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002b9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002bad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002bbd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002bcd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002bdd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002bed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002bfd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002c0d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002c1d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002c2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x00002c3d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array.go new file mode 100644 index 000000000..df96e21c2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_array uintptr + +//go:nosplit +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_subr.go new file mode 100644 index 000000000..4a1c40d2e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_array = 448 +) + +const ( + _stack__skip_array = 120 +) + +const ( + _size__skip_array = 10328 +) + +var ( + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9772, 120}, + {9776, 48}, + {9777, 40}, + {9779, 32}, + {9781, 24}, + {9783, 16}, + {9785, 8}, + {9789, 0}, + {10328, 120}, + } +) + +var _cfunc_skip_array = []loader.CFunc{ + {"_skip_array_entry", 0, _entry__skip_array, 0, nil}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_text_amd64.go new file mode 100644 index 000000000..6d070fedf --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_array_text_amd64.go @@ -0,0 +1,3082 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_skip_array = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 5 + //0x00000010 LCPI0_11 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000020 LCPI0_12 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000030 LCPI0_13 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000030 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000040 LCPI0_14 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000040 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000050 LCPI0_15 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000060 LCPI0_16 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000060 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000070 LCPI0_17 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000070 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000080 .p2align 5, 0x00 + //0x00000080 LCPI0_1 + 0x20, //0x00000080 .byte 32 + 0x00, //0x00000081 .byte 0 + 0x00, //0x00000082 .byte 0 + 0x00, //0x00000083 .byte 0 + 0x00, //0x00000084 .byte 0 + 0x00, //0x00000085 .byte 0 + 0x00, //0x00000086 .byte 0 + 0x00, //0x00000087 .byte 0 + 0x00, //0x00000088 .byte 0 + 0x09, //0x00000089 .byte 9 + 0x0a, //0x0000008a .byte 10 + 0x00, //0x0000008b .byte 0 + 0x00, //0x0000008c .byte 0 + 0x0d, //0x0000008d .byte 13 + 0x00, //0x0000008e .byte 0 + 0x00, //0x0000008f .byte 0 + 0x20, //0x00000090 .byte 32 + 0x00, //0x00000091 .byte 0 + 0x00, //0x00000092 .byte 0 + 0x00, //0x00000093 .byte 0 + 0x00, //0x00000094 .byte 0 + 0x00, //0x00000095 .byte 0 + 0x00, //0x00000096 .byte 0 + 0x00, //0x00000097 .byte 0 + 0x00, //0x00000098 .byte 0 + 0x09, //0x00000099 .byte 9 + 0x0a, //0x0000009a .byte 10 + 0x00, //0x0000009b .byte 0 + 0x00, //0x0000009c .byte 0 + 0x0d, //0x0000009d .byte 13 + 0x00, //0x0000009e .byte 0 + 0x00, //0x0000009f .byte 0 + //0x000000a0 LCPI0_2 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000000a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000000b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000000c0 LCPI0_3 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000000e0 LCPI0_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000000e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000000f0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000100 LCPI0_5 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000100 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000110 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000120 LCPI0_6 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000120 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000130 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000140 LCPI0_7 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000140 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000150 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000160 LCPI0_8 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000160 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000170 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000180 LCPI0_9 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000180 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000190 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000001a0 LCPI0_10 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001a0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001b0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000001c0 .p2align 4, 0x90 + //0x000001c0 _skip_array + 0x55, //0x000001c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000001c1 movq %rsp, %rbp + 0x41, 0x57, //0x000001c4 pushq %r15 + 0x41, 0x56, //0x000001c6 pushq %r14 + 0x41, 0x55, //0x000001c8 pushq %r13 + 0x41, 0x54, //0x000001ca pushq %r12 + 0x53, //0x000001cc pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x000001cd subq $72, %rsp + 0x48, 0x89, 0x4d, 0x98, //0x000001d1 movq %rcx, $-104(%rbp) + 0x49, 0x89, 0xd6, //0x000001d5 movq %rdx, %r14 + 0x49, 0x89, 0xf2, //0x000001d8 movq %rsi, %r10 + 0x48, 0x89, 0x7d, 0xb0, //0x000001db movq %rdi, $-80(%rbp) + 0xc5, 0xfa, 0x6f, 0x05, 0x19, 0xfe, 0xff, 0xff, //0x000001df vmovdqu $-487(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x7f, 0x02, //0x000001e7 vmovdqu %xmm0, (%rdx) + 0x4c, 0x8b, 0x26, //0x000001eb movq (%rsi), %r12 + 0x48, 0xc7, 0x45, 0x90, 0xff, 0xff, 0xff, 0xff, //0x000001ee movq $-1, $-112(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000001f6 movl $1, %r8d + 0xc5, 0xfe, 0x6f, 0x2d, 0x7c, 0xfe, 0xff, 0xff, //0x000001fc vmovdqu $-388(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x94, 0xfe, 0xff, 0xff, //0x00000204 vmovdqu $-364(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xac, 0xfe, 0xff, 0xff, //0x0000020c vmovdqu $-340(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xc4, 0xfe, 0xff, 0xff, //0x00000214 vmovdqu $-316(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000021c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xd7, 0xfe, 0xff, 0xff, //0x00000221 vmovdqu $-297(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xef, 0xfe, 0xff, 0xff, //0x00000229 vmovdqu $-273(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x07, 0xff, 0xff, 0xff, //0x00000231 vmovdqu $-249(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x1f, 0xff, 0xff, 0xff, //0x00000239 vmovdqu $-225(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x37, 0xff, 0xff, 0xff, //0x00000241 vmovdqu $-201(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x4f, 0xff, 0xff, 0xff, //0x00000249 vmovdqu $-177(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x48, 0x89, 0x75, 0xd0, //0x00000251 movq %rsi, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc8, //0x00000255 movq %rdx, $-56(%rbp) + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000259 jmp LBB0_5 + //0x0000025e LBB0_72 + 0x4c, 0x89, 0xe1, //0x0000025e movq %r12, %rcx + //0x00000261 LBB0_199 + 0x4c, 0x89, 0xe0, //0x00000261 movq %r12, %rax + 0x4e, 0x8d, 0x64, 0x31, 0xff, //0x00000264 leaq $-1(%rcx,%r14), %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000269 movq $-48(%rbp), %r10 + 0x4d, 0x89, 0x22, //0x0000026d movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00000270 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x00000273 testq %rax, %rax + 0x4c, 0x8b, 0x75, 0xc8, //0x00000276 movq $-56(%rbp), %r14 + 0x0f, 0x8e, 0x69, 0x25, 0x00, 0x00, //0x0000027a jle LBB0_501 + //0x00000280 .p2align 4, 0x90 + //0x00000280 LBB0_3 + 0x49, 0x8b, 0x16, //0x00000280 movq (%r14), %rdx + 0x49, 0x89, 0xd0, //0x00000283 movq %rdx, %r8 + 0x48, 0x8b, 0x4d, 0x90, //0x00000286 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x0000028a testq %rdx, %rdx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000028d jne LBB0_5 + 0xe9, 0x51, 0x25, 0x00, 0x00, //0x00000293 jmp LBB0_501 + //0x00000298 LBB0_1 + 0x4c, 0x89, 0xe0, //0x00000298 movq %r12, %rax + 0x4d, 0x8d, 0x65, 0x04, //0x0000029b leaq $4(%r13), %r12 + 0x4d, 0x89, 0x22, //0x0000029f movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x000002a2 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x000002a5 testq %rax, %rax + 0x0f, 0x8f, 0xd2, 0xff, 0xff, 0xff, //0x000002a8 jg LBB0_3 + 0xe9, 0x36, 0x25, 0x00, 0x00, //0x000002ae jmp LBB0_501 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002b3 .p2align 4, 0x90 + //0x000002c0 LBB0_5 + 0x48, 0x8b, 0x45, 0xb0, //0x000002c0 movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x000002c4 movq (%rax), %r9 + 0x48, 0x8b, 0x48, 0x08, //0x000002c7 movq $8(%rax), %rcx + 0x49, 0x39, 0xcc, //0x000002cb cmpq %rcx, %r12 + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x000002ce jae LBB0_10 + 0x43, 0x8a, 0x04, 0x21, //0x000002d4 movb (%r9,%r12), %al + 0x3c, 0x0d, //0x000002d8 cmpb $13, %al + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000002da je LBB0_10 + 0x3c, 0x20, //0x000002e0 cmpb $32, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000002e2 je LBB0_10 + 0x04, 0xf7, //0x000002e8 addb $-9, %al + 0x3c, 0x01, //0x000002ea cmpb $1, %al + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x000002ec jbe LBB0_10 + 0x4d, 0x89, 0xe5, //0x000002f2 movq %r12, %r13 + 0xe9, 0x8e, 0x01, 0x00, 0x00, //0x000002f5 jmp LBB0_36 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002fa .p2align 4, 0x90 + //0x00000300 LBB0_10 + 0x4d, 0x8d, 0x6c, 0x24, 0x01, //0x00000300 leaq $1(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000305 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000308 jae LBB0_14 + 0x43, 0x8a, 0x14, 0x29, //0x0000030e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000312 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000315 je LBB0_14 + 0x80, 0xfa, 0x20, //0x0000031b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000031e je LBB0_14 + 0x80, 0xc2, 0xf7, //0x00000324 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000327 cmpb $1, %dl + 0x0f, 0x87, 0x58, 0x01, 0x00, 0x00, //0x0000032a ja LBB0_36 + //0x00000330 .p2align 4, 0x90 + //0x00000330 LBB0_14 + 0x4d, 0x8d, 0x6c, 0x24, 0x02, //0x00000330 leaq $2(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000335 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000338 jae LBB0_18 + 0x43, 0x8a, 0x14, 0x29, //0x0000033e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000342 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000345 je LBB0_18 + 0x80, 0xfa, 0x20, //0x0000034b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000034e je LBB0_18 + 0x80, 0xc2, 0xf7, //0x00000354 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000357 cmpb $1, %dl + 0x0f, 0x87, 0x28, 0x01, 0x00, 0x00, //0x0000035a ja LBB0_36 + //0x00000360 .p2align 4, 0x90 + //0x00000360 LBB0_18 + 0x4d, 0x8d, 0x6c, 0x24, 0x03, //0x00000360 leaq $3(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000365 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000368 jae LBB0_22 + 0x43, 0x8a, 0x14, 0x29, //0x0000036e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000372 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000375 je LBB0_22 + 0x80, 0xfa, 0x20, //0x0000037b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000037e je LBB0_22 + 0x80, 0xc2, 0xf7, //0x00000384 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000387 cmpb $1, %dl + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x0000038a ja LBB0_36 + //0x00000390 .p2align 4, 0x90 + //0x00000390 LBB0_22 + 0x4d, 0x8d, 0x6c, 0x24, 0x04, //0x00000390 leaq $4(%r12), %r13 + 0x48, 0x89, 0xca, //0x00000395 movq %rcx, %rdx + 0x4c, 0x29, 0xea, //0x00000398 subq %r13, %rdx + 0x0f, 0x86, 0xd2, 0x23, 0x00, 0x00, //0x0000039b jbe LBB0_473 + 0x4d, 0x01, 0xcd, //0x000003a1 addq %r9, %r13 + 0x48, 0x83, 0xfa, 0x20, //0x000003a4 cmpq $32, %rdx + 0x0f, 0x82, 0x56, 0x00, 0x00, 0x00, //0x000003a8 jb LBB0_28 + 0x48, 0x89, 0xce, //0x000003ae movq %rcx, %rsi + 0x4c, 0x29, 0xe6, //0x000003b1 subq %r12, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x000003b4 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x000003b8 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x000003bb andq $-32, %rdi + 0x4c, 0x01, 0xe7, //0x000003bf addq %r12, %rdi + 0x49, 0x8d, 0x7c, 0x39, 0x24, //0x000003c2 leaq $36(%r9,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x000003c7 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003ca .p2align 4, 0x90 + //0x000003d0 LBB0_25 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000003d0 vmovdqu (%r13), %ymm0 + 0xc4, 0xe2, 0x55, 0x00, 0xc8, //0x000003d6 vpshufb %ymm0, %ymm5, %ymm1 + 0xc5, 0xfd, 0x74, 0xc1, //0x000003db vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x000003df vpmovmskb %ymm0, %ebx + 0x83, 0xfb, 0xff, //0x000003e3 cmpl $-1, %ebx + 0x0f, 0x85, 0x84, 0x00, 0x00, 0x00, //0x000003e6 jne LBB0_35 + 0x49, 0x83, 0xc5, 0x20, //0x000003ec addq $32, %r13 + 0x48, 0x83, 0xc2, 0xe0, //0x000003f0 addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x000003f4 cmpq $31, %rdx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000003f8 ja LBB0_25 + 0x48, 0x89, 0xf2, //0x000003fe movq %rsi, %rdx + 0x49, 0x89, 0xfd, //0x00000401 movq %rdi, %r13 + //0x00000404 LBB0_28 + 0x48, 0x85, 0xd2, //0x00000404 testq %rdx, %rdx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000407 je LBB0_34 + 0x49, 0x8d, 0x74, 0x15, 0x00, //0x0000040d leaq (%r13,%rdx), %rsi + 0x49, 0xff, 0xc5, //0x00000412 incq %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000415 .p2align 4, 0x90 + //0x00000420 LBB0_30 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00000420 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x00000425 cmpl $32, %edi + 0x0f, 0x87, 0x09, 0x11, 0x00, 0x00, //0x00000428 ja LBB0_268 + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000042e movabsq $4294977024, %rax + 0x48, 0x0f, 0xa3, 0xf8, //0x00000438 btq %rdi, %rax + 0x0f, 0x83, 0xf5, 0x10, 0x00, 0x00, //0x0000043c jae LBB0_268 + 0x48, 0xff, 0xca, //0x00000442 decq %rdx + 0x49, 0xff, 0xc5, //0x00000445 incq %r13 + 0x48, 0x85, 0xd2, //0x00000448 testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x0000044b jne LBB0_30 + 0x49, 0x89, 0xf5, //0x00000451 movq %rsi, %r13 + //0x00000454 LBB0_34 + 0x4d, 0x29, 0xcd, //0x00000454 subq %r9, %r13 + 0x49, 0x39, 0xcd, //0x00000457 cmpq %rcx, %r13 + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x0000045a jb LBB0_36 + 0xe9, 0x11, 0x23, 0x00, 0x00, //0x00000460 jmp LBB0_474 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000465 .p2align 4, 0x90 + //0x00000470 LBB0_35 + 0x4d, 0x29, 0xcd, //0x00000470 subq %r9, %r13 + 0xf7, 0xd3, //0x00000473 notl %ebx + 0x48, 0x63, 0xd3, //0x00000475 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00000478 bsfq %rdx, %rdx + 0x49, 0x01, 0xd5, //0x0000047c addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x0000047f cmpq %rcx, %r13 + 0x0f, 0x83, 0xee, 0x22, 0x00, 0x00, //0x00000482 jae LBB0_474 + //0x00000488 LBB0_36 + 0x4d, 0x8d, 0x65, 0x01, //0x00000488 leaq $1(%r13), %r12 + 0x4d, 0x89, 0x22, //0x0000048c movq %r12, (%r10) + 0x43, 0x0f, 0xbe, 0x3c, 0x29, //0x0000048f movsbl (%r9,%r13), %edi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000494 movq $-1, %rcx + 0x85, 0xff, //0x0000049b testl %edi, %edi + 0x0f, 0x84, 0x46, 0x23, 0x00, 0x00, //0x0000049d je LBB0_501 + 0x4c, 0x89, 0xee, //0x000004a3 movq %r13, %rsi + 0x48, 0xf7, 0xd6, //0x000004a6 notq %rsi + 0x49, 0x8d, 0x50, 0xff, //0x000004a9 leaq $-1(%r8), %rdx + 0x43, 0x8b, 0x1c, 0xc6, //0x000004ad movl (%r14,%r8,8), %ebx + 0x48, 0x8b, 0x45, 0x90, //0x000004b1 movq $-112(%rbp), %rax + 0x48, 0x83, 0xf8, 0xff, //0x000004b5 cmpq $-1, %rax + 0x49, 0x0f, 0x44, 0xc5, //0x000004b9 cmoveq %r13, %rax + 0x48, 0x89, 0x45, 0x90, //0x000004bd movq %rax, $-112(%rbp) + 0xff, 0xcb, //0x000004c1 decl %ebx + 0x83, 0xfb, 0x05, //0x000004c3 cmpl $5, %ebx + 0x0f, 0x87, 0x0d, 0x02, 0x00, 0x00, //0x000004c6 ja LBB0_67 + 0x48, 0x8d, 0x05, 0x45, 0x25, 0x00, 0x00, //0x000004cc leaq $9541(%rip), %rax /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x98, //0x000004d3 movslq (%rax,%rbx,4), %rbx + 0x48, 0x01, 0xc3, //0x000004d7 addq %rax, %rbx + 0xff, 0xe3, //0x000004da jmpq *%rbx + //0x000004dc LBB0_39 + 0x83, 0xff, 0x2c, //0x000004dc cmpl $44, %edi + 0x0f, 0x84, 0x01, 0x06, 0x00, 0x00, //0x000004df je LBB0_73 + 0x83, 0xff, 0x5d, //0x000004e5 cmpl $93, %edi + 0x0f, 0x84, 0xd3, 0x01, 0x00, 0x00, //0x000004e8 je LBB0_41 + 0xe9, 0xef, 0x22, 0x00, 0x00, //0x000004ee jmp LBB0_500 + //0x000004f3 LBB0_42 + 0x40, 0x80, 0xff, 0x5d, //0x000004f3 cmpb $93, %dil + 0x0f, 0x84, 0xc4, 0x01, 0x00, 0x00, //0x000004f7 je LBB0_41 + 0x4b, 0xc7, 0x04, 0xc6, 0x01, 0x00, 0x00, 0x00, //0x000004fd movq $1, (%r14,%r8,8) + 0x83, 0xff, 0x7b, //0x00000505 cmpl $123, %edi + 0x0f, 0x86, 0xd7, 0x01, 0x00, 0x00, //0x00000508 jbe LBB0_68 + 0xe9, 0xcf, 0x22, 0x00, 0x00, //0x0000050e jmp LBB0_500 + //0x00000513 LBB0_44 + 0x40, 0x80, 0xff, 0x22, //0x00000513 cmpb $34, %dil + 0x0f, 0x85, 0xc5, 0x22, 0x00, 0x00, //0x00000517 jne LBB0_500 + 0x4b, 0xc7, 0x04, 0xc6, 0x04, 0x00, 0x00, 0x00, //0x0000051d movq $4, (%r14,%r8,8) + 0x48, 0x8b, 0x45, 0xb0, //0x00000525 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000529 movq $8(%rax), %rdx + 0xf6, 0x45, 0x98, 0x20, //0x0000052d testb $32, $-104(%rbp) + 0x4c, 0x89, 0x65, 0xa8, //0x00000531 movq %r12, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb8, //0x00000535 movq %rdx, $-72(%rbp) + 0x0f, 0x85, 0xc9, 0x05, 0x00, 0x00, //0x00000539 jne LBB0_75 + 0x48, 0x89, 0xd1, //0x0000053f movq %rdx, %rcx + 0x4c, 0x29, 0xe1, //0x00000542 subq %r12, %rcx + 0x0f, 0x84, 0x34, 0x24, 0x00, 0x00, //0x00000545 je LBB0_507 + 0x4b, 0x8d, 0x1c, 0x21, //0x0000054b leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x0000054f cmpq $64, %rcx + 0x0f, 0x82, 0xea, 0x18, 0x00, 0x00, //0x00000553 jb LBB0_356 + 0x41, 0x89, 0xcf, //0x00000559 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x0000055c andl $63, %r15d + 0x48, 0x8d, 0x54, 0x32, 0xc0, //0x00000560 leaq $-64(%rdx,%rsi), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x00000565 andq $-64, %rdx + 0x4c, 0x01, 0xe2, //0x00000569 addq %r12, %rdx + 0x4d, 0x89, 0xcb, //0x0000056c movq %r9, %r11 + 0x4d, 0x8d, 0x4c, 0x11, 0x40, //0x0000056f leaq $64(%r9,%rdx), %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000574 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x0000057b xorl %r14d, %r14d + 0x90, 0x90, //0x0000057e .p2align 4, 0x90 + //0x00000580 LBB0_49 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000580 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000584 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000589 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x0000058d vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000591 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000595 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000599 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000059d vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x000005a1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000005a5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x000005a9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x000005ad shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000005b1 orq %rax, %rsi + 0x49, 0x83, 0xf8, 0xff, //0x000005b4 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000005b8 jne LBB0_51 + 0x48, 0x85, 0xf6, //0x000005be testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005c1 jne LBB0_58 + //0x000005c7 LBB0_51 + 0x48, 0x09, 0xfa, //0x000005c7 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000005ca movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000005cd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000005d0 jne LBB0_59 + //0x000005d6 LBB0_52 + 0x48, 0x85, 0xd2, //0x000005d6 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x000005d9 jne LBB0_60 + //0x000005df LBB0_53 + 0x48, 0x83, 0xc1, 0xc0, //0x000005df addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x000005e3 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000005e7 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x000005eb ja LBB0_49 + 0xe9, 0x83, 0x14, 0x00, 0x00, //0x000005f1 jmp LBB0_54 + //0x000005f6 LBB0_58 + 0x48, 0x89, 0xd8, //0x000005f6 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x000005f9 subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xc6, //0x000005fc bsfq %rsi, %r8 + 0x49, 0x01, 0xc0, //0x00000600 addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x00000603 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000606 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000609 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000060c je LBB0_52 + //0x00000612 LBB0_59 + 0x4c, 0x89, 0xf0, //0x00000612 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000615 notq %rax + 0x48, 0x21, 0xf0, //0x00000618 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x0000061b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x0000061f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00000622 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00000625 notq %rdi + 0x48, 0x21, 0xf7, //0x00000628 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000062b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000635 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00000638 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x0000063b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000063e setb %r14b + 0x48, 0x01, 0xff, //0x00000642 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000645 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000064f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00000652 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000655 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00000659 notq %rdi + 0x48, 0x21, 0xfa, //0x0000065c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x0000065f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000662 je LBB0_53 + 0xe9, 0x4d, 0x14, 0x00, 0x00, //0x00000668 jmp LBB0_60 + //0x0000066d LBB0_61 + 0x40, 0x80, 0xff, 0x3a, //0x0000066d cmpb $58, %dil + 0x0f, 0x85, 0x6b, 0x21, 0x00, 0x00, //0x00000671 jne LBB0_500 + 0x4b, 0xc7, 0x04, 0xc6, 0x00, 0x00, 0x00, 0x00, //0x00000677 movq $0, (%r14,%r8,8) + 0xe9, 0xfc, 0xfb, 0xff, 0xff, //0x0000067f jmp LBB0_3 + //0x00000684 LBB0_63 + 0x83, 0xff, 0x2c, //0x00000684 cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00000687 jne LBB0_64 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x0000068d cmpq $4095, %r8 + 0x0f, 0x8f, 0xe8, 0x20, 0x00, 0x00, //0x00000694 jg LBB0_489 + 0x49, 0x8d, 0x40, 0x01, //0x0000069a leaq $1(%r8), %rax + 0x49, 0x89, 0x06, //0x0000069e movq %rax, (%r14) + 0x4b, 0xc7, 0x44, 0xc6, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000006a1 movq $3, $8(%r14,%r8,8) + 0xe9, 0xd1, 0xfb, 0xff, 0xff, //0x000006aa jmp LBB0_3 + //0x000006af LBB0_65 + 0x83, 0xff, 0x22, //0x000006af cmpl $34, %edi + 0x0f, 0x84, 0xb7, 0x05, 0x00, 0x00, //0x000006b2 je LBB0_92 + //0x000006b8 LBB0_64 + 0x83, 0xff, 0x7d, //0x000006b8 cmpl $125, %edi + 0x0f, 0x85, 0x21, 0x21, 0x00, 0x00, //0x000006bb jne LBB0_500 + //0x000006c1 LBB0_41 + 0x49, 0x89, 0x16, //0x000006c1 movq %rdx, (%r14) + 0x49, 0x89, 0xd0, //0x000006c4 movq %rdx, %r8 + 0x48, 0x8b, 0x4d, 0x90, //0x000006c7 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x000006cb testq %rdx, %rdx + 0x0f, 0x85, 0xec, 0xfb, 0xff, 0xff, //0x000006ce jne LBB0_5 + 0xe9, 0x10, 0x21, 0x00, 0x00, //0x000006d4 jmp LBB0_501 + //0x000006d9 LBB0_67 + 0x49, 0x89, 0x16, //0x000006d9 movq %rdx, (%r14) + 0x83, 0xff, 0x7b, //0x000006dc cmpl $123, %edi + 0x0f, 0x87, 0xfd, 0x20, 0x00, 0x00, //0x000006df ja LBB0_500 + //0x000006e5 LBB0_68 + 0x4f, 0x8d, 0x3c, 0x29, //0x000006e5 leaq (%r9,%r13), %r15 + 0x89, 0xf8, //0x000006e9 movl %edi, %eax + 0x48, 0x8d, 0x15, 0x3e, 0x23, 0x00, 0x00, //0x000006eb leaq $9022(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000006f2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000006f6 addq %rdx, %rax + 0xff, 0xe0, //0x000006f9 jmpq *%rax + //0x000006fb LBB0_69 + 0x48, 0x8b, 0x45, 0xb0, //0x000006fb movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000006ff movq $8(%rax), %r10 + 0x4d, 0x29, 0xea, //0x00000703 subq %r13, %r10 + 0x0f, 0x84, 0x9c, 0x20, 0x00, 0x00, //0x00000706 je LBB0_477 + 0x41, 0x80, 0x3f, 0x30, //0x0000070c cmpb $48, (%r15) + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x00000710 jne LBB0_132 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00000716 movl $1, %r14d + 0x49, 0x83, 0xfa, 0x01, //0x0000071c cmpq $1, %r10 + 0x0f, 0x84, 0x38, 0xfb, 0xff, 0xff, //0x00000720 je LBB0_72 + 0x43, 0x8a, 0x0c, 0x21, //0x00000726 movb (%r9,%r12), %cl + 0x80, 0xc1, 0xd2, //0x0000072a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000072d cmpb $55, %cl + 0x0f, 0x87, 0x28, 0xfb, 0xff, 0xff, //0x00000730 ja LBB0_72 + 0x0f, 0xb6, 0xc1, //0x00000736 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000739 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000743 btq %rax, %rcx + 0x4c, 0x89, 0xe1, //0x00000747 movq %r12, %rcx + 0x0f, 0x83, 0x11, 0xfb, 0xff, 0xff, //0x0000074a jae LBB0_199 + //0x00000750 LBB0_132 + 0x4c, 0x89, 0x65, 0xa8, //0x00000750 movq %r12, $-88(%rbp) + 0x49, 0x83, 0xfa, 0x20, //0x00000754 cmpq $32, %r10 + 0x0f, 0x82, 0xbe, 0x16, 0x00, 0x00, //0x00000758 jb LBB0_355 + 0x49, 0x8d, 0x4a, 0xe0, //0x0000075e leaq $-32(%r10), %rcx + 0x48, 0x89, 0xc8, //0x00000762 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00000765 andq $-32, %rax + 0x4e, 0x8d, 0x74, 0x38, 0x20, //0x00000769 leaq $32(%rax,%r15), %r14 + 0x83, 0xe1, 0x1f, //0x0000076e andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00000771 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000775 movq $-1, %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000077c movq $-1, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000783 movq $-1, %rax + 0x4d, 0x89, 0xfb, //0x0000078a movq %r15, %r11 + 0x90, 0x90, 0x90, //0x0000078d .p2align 4, 0x90 + //0x00000790 LBB0_134 + 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x00000790 vmovdqu (%r11), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x00000795 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x0000079a vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x0000079e vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x000007a2 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x000007a6 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000007aa vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x000007ae vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000007b2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000007b6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000007ba vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000007be vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000007c2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000007c6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000007ca vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000007ce vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000007d2 vpmovmskb %ymm0, %ecx + 0x48, 0xf7, 0xd1, //0x000007d6 notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000007d9 bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x000007dd cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000007e0 je LBB0_136 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000007e6 movl $-1, %ebx + 0xd3, 0xe3, //0x000007eb shll %cl, %ebx + 0xf7, 0xd3, //0x000007ed notl %ebx + 0x21, 0xdf, //0x000007ef andl %ebx, %edi + 0x21, 0xda, //0x000007f1 andl %ebx, %edx + 0x21, 0xf3, //0x000007f3 andl %esi, %ebx + 0x89, 0xde, //0x000007f5 movl %ebx, %esi + //0x000007f7 LBB0_136 + 0x44, 0x8d, 0x4f, 0xff, //0x000007f7 leal $-1(%rdi), %r9d + 0x41, 0x21, 0xf9, //0x000007fb andl %edi, %r9d + 0x0f, 0x85, 0xab, 0x13, 0x00, 0x00, //0x000007fe jne LBB0_345 + 0x8d, 0x5a, 0xff, //0x00000804 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00000807 andl %edx, %ebx + 0x0f, 0x85, 0x5e, 0x12, 0x00, 0x00, //0x00000809 jne LBB0_339 + 0x8d, 0x5e, 0xff, //0x0000080f leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00000812 andl %esi, %ebx + 0x0f, 0x85, 0x53, 0x12, 0x00, 0x00, //0x00000814 jne LBB0_339 + 0x85, 0xff, //0x0000081a testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000081c je LBB0_142 + 0x4c, 0x89, 0xdb, //0x00000822 movq %r11, %rbx + 0x4c, 0x29, 0xfb, //0x00000825 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x00000828 bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x0000082b addq %rbx, %rdi + 0x48, 0x83, 0xf8, 0xff, //0x0000082e cmpq $-1, %rax + 0x0f, 0x85, 0x8d, 0x13, 0x00, 0x00, //0x00000832 jne LBB0_347 + 0x48, 0x89, 0xf8, //0x00000838 movq %rdi, %rax + //0x0000083b LBB0_142 + 0x85, 0xd2, //0x0000083b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000083d je LBB0_145 + 0x4c, 0x89, 0xdf, //0x00000843 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000846 subq %r15, %rdi + 0x0f, 0xbc, 0xd2, //0x00000849 bsfl %edx, %edx + 0x48, 0x01, 0xfa, //0x0000084c addq %rdi, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x0000084f cmpq $-1, %r12 + 0x0f, 0x85, 0xf1, 0x12, 0x00, 0x00, //0x00000853 jne LBB0_340 + 0x49, 0x89, 0xd4, //0x00000859 movq %rdx, %r12 + //0x0000085c LBB0_145 + 0x85, 0xf6, //0x0000085c testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000085e je LBB0_148 + 0x4c, 0x89, 0xdf, //0x00000864 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000867 subq %r15, %rdi + 0x0f, 0xbc, 0xd6, //0x0000086a bsfl %esi, %edx + 0x48, 0x01, 0xfa, //0x0000086d addq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000870 cmpq $-1, %r8 + 0x0f, 0x85, 0xd0, 0x12, 0x00, 0x00, //0x00000874 jne LBB0_340 + 0x49, 0x89, 0xd0, //0x0000087a movq %rdx, %r8 + //0x0000087d LBB0_148 + 0x83, 0xf9, 0x20, //0x0000087d cmpl $32, %ecx + 0x0f, 0x85, 0x51, 0x05, 0x00, 0x00, //0x00000880 jne LBB0_180 + 0x49, 0x83, 0xc3, 0x20, //0x00000886 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x0000088a addq $-32, %r10 + 0x49, 0x83, 0xfa, 0x1f, //0x0000088e cmpq $31, %r10 + 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00000892 ja LBB0_134 + 0xc5, 0xf8, 0x77, //0x00000898 vzeroupper + 0xc5, 0x7e, 0x6f, 0x3d, 0xfd, 0xf8, 0xff, 0xff, //0x0000089b vmovdqu $-1795(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xd5, 0xf8, 0xff, 0xff, //0x000008a3 vmovdqu $-1835(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xad, 0xf8, 0xff, 0xff, //0x000008ab vmovdqu $-1875(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x85, 0xf8, 0xff, 0xff, //0x000008b3 vmovdqu $-1915(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x5d, 0xf8, 0xff, 0xff, //0x000008bb vmovdqu $-1955(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x35, 0xf8, 0xff, 0xff, //0x000008c3 vmovdqu $-1995(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000008cb vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x05, 0x08, 0xf8, 0xff, 0xff, //0x000008d0 vmovdqu $-2040(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xe0, 0xf7, 0xff, 0xff, //0x000008d8 vmovdqu $-2080(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xb8, 0xf7, 0xff, 0xff, //0x000008e0 vmovdqu $-2120(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x90, 0xf7, 0xff, 0xff, //0x000008e8 vmovdqu $-2160(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xc0, //0x000008f0 movq $-64(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x10, //0x000008f4 cmpq $16, %r10 + 0x0f, 0x82, 0x52, 0x01, 0x00, 0x00, //0x000008f8 jb LBB0_169 + //0x000008fe LBB0_151 + 0x4d, 0x8d, 0x4a, 0xf0, //0x000008fe leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc9, //0x00000902 movq %r9, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00000905 andq $-16, %rcx + 0x4e, 0x8d, 0x5c, 0x31, 0x10, //0x00000909 leaq $16(%rcx,%r14), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x0000090e andl $15, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000912 .p2align 4, 0x90 + //0x00000920 LBB0_152 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00000920 vmovdqu (%r14), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0xe3, 0xf6, 0xff, 0xff, //0x00000925 vpcmpgtb $-2333(%rip), %xmm0, %xmm1 /* LCPI0_11+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xeb, 0xf6, 0xff, 0xff, //0x0000092d vmovdqu $-2325(%rip), %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00000935 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00000939 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0xeb, 0xf6, 0xff, 0xff, //0x0000093d vpcmpeqb $-2325(%rip), %xmm0, %xmm2 /* LCPI0_13+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0xf3, 0xf6, 0xff, 0xff, //0x00000945 vpcmpeqb $-2317(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000094d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0xf7, 0xf6, 0xff, 0xff, //0x00000951 vpor $-2313(%rip), %xmm0, %xmm3 /* LCPI0_15+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0xff, 0xf6, 0xff, 0xff, //0x00000959 vpcmpeqb $-2305(%rip), %xmm0, %xmm0 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x07, 0xf7, 0xff, 0xff, //0x00000961 vpcmpeqb $-2297(%rip), %xmm3, %xmm3 /* LCPI0_17+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00000969 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000096d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00000971 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00000975 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x00000979 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000097d vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc9, //0x00000981 vpmovmskb %xmm1, %ecx + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00000985 movl $4294967295, %ebx + 0x48, 0x31, 0xd9, //0x0000098a xorq %rbx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000098d bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00000991 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00000994 je LBB0_154 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x0000099a movl $-1, %ebx + 0xd3, 0xe3, //0x0000099f shll %cl, %ebx + 0xf7, 0xd3, //0x000009a1 notl %ebx + 0x21, 0xdf, //0x000009a3 andl %ebx, %edi + 0x21, 0xde, //0x000009a5 andl %ebx, %esi + 0x21, 0xd3, //0x000009a7 andl %edx, %ebx + 0x89, 0xda, //0x000009a9 movl %ebx, %edx + //0x000009ab LBB0_154 + 0x8d, 0x5f, 0xff, //0x000009ab leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x000009ae andl %edi, %ebx + 0x0f, 0x85, 0xe1, 0x11, 0x00, 0x00, //0x000009b0 jne LBB0_344 + 0x8d, 0x5e, 0xff, //0x000009b6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000009b9 andl %esi, %ebx + 0x0f, 0x85, 0xd6, 0x11, 0x00, 0x00, //0x000009bb jne LBB0_344 + 0x8d, 0x5a, 0xff, //0x000009c1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000009c4 andl %edx, %ebx + 0x0f, 0x85, 0xcb, 0x11, 0x00, 0x00, //0x000009c6 jne LBB0_344 + 0x85, 0xff, //0x000009cc testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009ce je LBB0_160 + 0x4c, 0x89, 0xf3, //0x000009d4 movq %r14, %rbx + 0x4c, 0x29, 0xfb, //0x000009d7 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x000009da bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x000009dd addq %rbx, %rdi + 0x48, 0x83, 0xf8, 0xff, //0x000009e0 cmpq $-1, %rax + 0x0f, 0x85, 0xdb, 0x11, 0x00, 0x00, //0x000009e4 jne LBB0_347 + 0x48, 0x89, 0xf8, //0x000009ea movq %rdi, %rax + //0x000009ed LBB0_160 + 0x85, 0xf6, //0x000009ed testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009ef je LBB0_163 + 0x4c, 0x89, 0xf7, //0x000009f5 movq %r14, %rdi + 0x4c, 0x29, 0xff, //0x000009f8 subq %r15, %rdi + 0x0f, 0xbc, 0xf6, //0x000009fb bsfl %esi, %esi + 0x48, 0x01, 0xfe, //0x000009fe addq %rdi, %rsi + 0x49, 0x83, 0xfc, 0xff, //0x00000a01 cmpq $-1, %r12 + 0x0f, 0x85, 0xed, 0x12, 0x00, 0x00, //0x00000a05 jne LBB0_350 + 0x49, 0x89, 0xf4, //0x00000a0b movq %rsi, %r12 + //0x00000a0e LBB0_163 + 0x85, 0xd2, //0x00000a0e testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000a10 je LBB0_166 + 0x4c, 0x89, 0xf6, //0x00000a16 movq %r14, %rsi + 0x4c, 0x29, 0xfe, //0x00000a19 subq %r15, %rsi + 0x0f, 0xbc, 0xd2, //0x00000a1c bsfl %edx, %edx + 0x48, 0x01, 0xf2, //0x00000a1f addq %rsi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000a22 cmpq $-1, %r8 + 0x0f, 0x85, 0x1e, 0x11, 0x00, 0x00, //0x00000a26 jne LBB0_340 + 0x49, 0x89, 0xd0, //0x00000a2c movq %rdx, %r8 + //0x00000a2f LBB0_166 + 0x83, 0xf9, 0x10, //0x00000a2f cmpl $16, %ecx + 0x0f, 0x85, 0x82, 0x05, 0x00, 0x00, //0x00000a32 jne LBB0_186 + 0x49, 0x83, 0xc6, 0x10, //0x00000a38 addq $16, %r14 + 0x49, 0x83, 0xc2, 0xf0, //0x00000a3c addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x00000a40 cmpq $15, %r10 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00000a44 ja LBB0_152 + 0x4d, 0x89, 0xca, //0x00000a4a movq %r9, %r10 + 0x4d, 0x89, 0xde, //0x00000a4d movq %r11, %r14 + //0x00000a50 LBB0_169 + 0x4d, 0x85, 0xd2, //0x00000a50 testq %r10, %r10 + 0x0f, 0x84, 0x64, 0x05, 0x00, 0x00, //0x00000a53 je LBB0_187 + 0x4b, 0x8d, 0x0c, 0x16, //0x00000a59 leaq (%r14,%r10), %rcx + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000a5d jmp LBB0_174 + //0x00000a62 LBB0_171 + 0x49, 0x89, 0xd6, //0x00000a62 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000a65 subq %r15, %r14 + 0x49, 0x83, 0xf8, 0xff, //0x00000a68 cmpq $-1, %r8 + 0x0f, 0x85, 0x15, 0x13, 0x00, 0x00, //0x00000a6c jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000a72 decq %r14 + 0x4d, 0x89, 0xf0, //0x00000a75 movq %r14, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a78 .p2align 4, 0x90 + //0x00000a80 LBB0_173 + 0x49, 0x89, 0xd6, //0x00000a80 movq %rdx, %r14 + 0x49, 0xff, 0xca, //0x00000a83 decq %r10 + 0x0f, 0x84, 0x3a, 0x12, 0x00, 0x00, //0x00000a86 je LBB0_348 + //0x00000a8c LBB0_174 + 0x41, 0x0f, 0xbe, 0x36, //0x00000a8c movsbl (%r14), %esi + 0x83, 0xc6, 0xd5, //0x00000a90 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x00000a93 cmpl $58, %esi + 0x0f, 0x87, 0x21, 0x05, 0x00, 0x00, //0x00000a96 ja LBB0_187 + 0x49, 0x8d, 0x56, 0x01, //0x00000a9c leaq $1(%r14), %rdx + 0x48, 0x8d, 0x3d, 0x65, 0x22, 0x00, 0x00, //0x00000aa0 leaq $8805(%rip), %rdi /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x34, 0xb7, //0x00000aa7 movslq (%rdi,%rsi,4), %rsi + 0x48, 0x01, 0xfe, //0x00000aab addq %rdi, %rsi + 0xff, 0xe6, //0x00000aae jmpq *%rsi + //0x00000ab0 LBB0_176 + 0x49, 0x89, 0xd6, //0x00000ab0 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000ab3 subq %r15, %r14 + 0x49, 0x83, 0xfc, 0xff, //0x00000ab6 cmpq $-1, %r12 + 0x0f, 0x85, 0xc7, 0x12, 0x00, 0x00, //0x00000aba jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000ac0 decq %r14 + 0x4d, 0x89, 0xf4, //0x00000ac3 movq %r14, %r12 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x00000ac6 jmp LBB0_173 + //0x00000acb LBB0_178 + 0x49, 0x89, 0xd6, //0x00000acb movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000ace subq %r15, %r14 + 0x48, 0x83, 0xf8, 0xff, //0x00000ad1 cmpq $-1, %rax + 0x0f, 0x85, 0xac, 0x12, 0x00, 0x00, //0x00000ad5 jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000adb decq %r14 + 0x4c, 0x89, 0xf0, //0x00000ade movq %r14, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00000ae1 jmp LBB0_173 + //0x00000ae6 LBB0_73 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x00000ae6 cmpq $4095, %r8 + 0x0f, 0x8f, 0x8f, 0x1c, 0x00, 0x00, //0x00000aed jg LBB0_489 + 0x49, 0x8d, 0x40, 0x01, //0x00000af3 leaq $1(%r8), %rax + 0x49, 0x89, 0x06, //0x00000af7 movq %rax, (%r14) + 0x4b, 0xc7, 0x44, 0xc6, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000afa movq $0, $8(%r14,%r8,8) + 0xe9, 0x78, 0xf7, 0xff, 0xff, //0x00000b03 jmp LBB0_3 + //0x00000b08 LBB0_75 + 0x49, 0x89, 0xd2, //0x00000b08 movq %rdx, %r10 + 0x4d, 0x29, 0xe2, //0x00000b0b subq %r12, %r10 + 0x0f, 0x84, 0x74, 0x1e, 0x00, 0x00, //0x00000b0e je LBB0_508 + 0x4c, 0x89, 0xe0, //0x00000b14 movq %r12, %rax + 0x4d, 0x01, 0xcc, //0x00000b17 addq %r9, %r12 + 0x49, 0x83, 0xfa, 0x40, //0x00000b1a cmpq $64, %r10 + 0x4c, 0x89, 0x4d, 0xc0, //0x00000b1e movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x37, 0x13, 0x00, 0x00, //0x00000b22 jb LBB0_357 + 0x45, 0x89, 0xd6, //0x00000b28 movl %r10d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000b2b andl $63, %r14d + 0x48, 0x8d, 0x4c, 0x32, 0xc0, //0x00000b2f leaq $-64(%rdx,%rsi), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000b34 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000b38 addq %rax, %rcx + 0x49, 0x8d, 0x44, 0x09, 0x40, //0x00000b3b leaq $64(%r9,%rcx), %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b40 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000b47 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b4a .p2align 4, 0x90 + //0x00000b50 LBB0_78 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000b50 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000b56 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000b5d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000b61 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000b65 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000b69 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000b6d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xda, //0x00000b71 vpmovmskb %ymm2, %r11d + 0xc5, 0xf5, 0x74, 0xd7, //0x00000b75 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x00000b79 vpmovmskb %ymm2, %ebx + 0xc5, 0xbd, 0x64, 0xd0, //0x00000b7d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000b81 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000b86 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000b8a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000b8e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000b92 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000b97 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000b9b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x00000b9f shlq $32, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00000ba3 shlq $32, %rbx + 0x49, 0x09, 0xdb, //0x00000ba7 orq %rbx, %r11 + 0x49, 0x83, 0xf8, 0xff, //0x00000baa cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000bae jne LBB0_80 + 0x4d, 0x85, 0xdb, //0x00000bb4 testq %r11, %r11 + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000bb7 jne LBB0_89 + //0x00000bbd LBB0_80 + 0x48, 0xc1, 0xe6, 0x20, //0x00000bbd shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00000bc1 orq %r9, %rdx + 0x4c, 0x89, 0xd9, //0x00000bc4 movq %r11, %rcx + 0x4c, 0x09, 0xf9, //0x00000bc7 orq %r15, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000bca jne LBB0_108 + 0x48, 0x09, 0xfe, //0x00000bd0 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000bd3 testq %rdx, %rdx + 0x0f, 0x85, 0xe1, 0x01, 0x00, 0x00, //0x00000bd6 jne LBB0_109 + //0x00000bdc LBB0_82 + 0x48, 0x85, 0xf6, //0x00000bdc testq %rsi, %rsi + 0x0f, 0x85, 0x21, 0x1c, 0x00, 0x00, //0x00000bdf jne LBB0_482 + 0x49, 0x83, 0xc2, 0xc0, //0x00000be5 addq $-64, %r10 + 0x49, 0x83, 0xc4, 0x40, //0x00000be9 addq $64, %r12 + 0x49, 0x83, 0xfa, 0x3f, //0x00000bed cmpq $63, %r10 + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000bf1 ja LBB0_78 + 0xe9, 0xed, 0x0e, 0x00, 0x00, //0x00000bf7 jmp LBB0_84 + //0x00000bfc LBB0_108 + 0x4c, 0x89, 0xf9, //0x00000bfc movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000bff notq %rcx + 0x4c, 0x21, 0xd9, //0x00000c02 andq %r11, %rcx + 0x4c, 0x8d, 0x0c, 0x09, //0x00000c05 leaq (%rcx,%rcx), %r9 + 0x4d, 0x09, 0xf9, //0x00000c09 orq %r15, %r9 + 0x4c, 0x89, 0xcb, //0x00000c0c movq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000c0f notq %rbx + 0x4c, 0x21, 0xdb, //0x00000c12 andq %r11, %rbx + 0x49, 0x89, 0xc3, //0x00000c15 movq %rax, %r11 + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000c18 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc3, //0x00000c22 andq %rax, %rbx + 0x45, 0x31, 0xff, //0x00000c25 xorl %r15d, %r15d + 0x48, 0x01, 0xcb, //0x00000c28 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00000c2b setb %r15b + 0x48, 0x01, 0xdb, //0x00000c2f addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c32 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x00000c3c xorq %rax, %rbx + 0x4c, 0x89, 0xd8, //0x00000c3f movq %r11, %rax + 0x4c, 0x21, 0xcb, //0x00000c42 andq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000c45 notq %rbx + 0x48, 0x21, 0xda, //0x00000c48 andq %rbx, %rdx + 0x48, 0x09, 0xfe, //0x00000c4b orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000c4e testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0xff, 0xff, 0xff, //0x00000c51 je LBB0_82 + 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00000c57 jmp LBB0_109 + //0x00000c5c LBB0_89 + 0x4c, 0x89, 0xe3, //0x00000c5c movq %r12, %rbx + 0x48, 0x2b, 0x5d, 0xc0, //0x00000c5f subq $-64(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xc3, //0x00000c63 bsfq %r11, %r8 + 0x49, 0x01, 0xd8, //0x00000c67 addq %rbx, %r8 + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00000c6a jmp LBB0_80 + //0x00000c6f LBB0_92 + 0x4b, 0xc7, 0x04, 0xc6, 0x02, 0x00, 0x00, 0x00, //0x00000c6f movq $2, (%r14,%r8,8) + 0x48, 0x8b, 0x45, 0xb0, //0x00000c77 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00000c7b movq $8(%rax), %rax + 0xf6, 0x45, 0x98, 0x20, //0x00000c7f testb $32, $-104(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x00000c83 movq %rax, $-72(%rbp) + 0x0f, 0x85, 0x6c, 0x01, 0x00, 0x00, //0x00000c87 jne LBB0_111 + 0x48, 0x89, 0xc1, //0x00000c8d movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x00000c90 subq %r12, %rcx + 0x0f, 0x84, 0xdd, 0x1c, 0x00, 0x00, //0x00000c93 je LBB0_510 + 0x4b, 0x8d, 0x1c, 0x21, //0x00000c99 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00000c9d cmpq $64, %rcx + 0x0f, 0x82, 0xf1, 0x11, 0x00, 0x00, //0x00000ca1 jb LBB0_360 + 0x4c, 0x89, 0xca, //0x00000ca7 movq %r9, %rdx + 0x41, 0x89, 0xcf, //0x00000caa movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00000cad andl $63, %r15d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00000cb1 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000cb6 andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00000cba addq %r12, %rax + 0x4d, 0x8d, 0x44, 0x01, 0x40, //0x00000cbd leaq $64(%r9,%rax), %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000cc2 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00000cc9 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, //0x00000ccc .p2align 4, 0x90 + //0x00000cd0 LBB0_96 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000cd0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000cd4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000cd9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00000cdd vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000ce1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000ce5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000ce9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000ced vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00000cf1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00000cf5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00000cf9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000cfd shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00000d01 orq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00000d04 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000d08 jne LBB0_98 + 0x48, 0x85, 0xf6, //0x00000d0e testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000d11 jne LBB0_105 + //0x00000d17 LBB0_98 + 0x48, 0x09, 0xfa, //0x00000d17 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000d1a movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000d1d orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000d20 jne LBB0_106 + //0x00000d26 LBB0_99 + 0x48, 0x85, 0xd2, //0x00000d26 testq %rdx, %rdx + 0x0f, 0x85, 0xe6, 0x0e, 0x00, 0x00, //0x00000d29 jne LBB0_107 + //0x00000d2f LBB0_100 + 0x48, 0x83, 0xc1, 0xc0, //0x00000d2f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00000d33 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00000d37 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x00000d3b ja LBB0_96 + 0xe9, 0x8e, 0x0e, 0x00, 0x00, //0x00000d41 jmp LBB0_101 + //0x00000d46 LBB0_105 + 0x48, 0x89, 0xd8, //0x00000d46 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00000d49 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00000d4c bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00000d50 addq %rax, %r11 + 0x48, 0x09, 0xfa, //0x00000d53 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000d56 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000d59 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00000d5c je LBB0_99 + //0x00000d62 LBB0_106 + 0x4c, 0x89, 0xf0, //0x00000d62 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000d65 notq %rax + 0x48, 0x21, 0xf0, //0x00000d68 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x00000d6b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x00000d6f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00000d72 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00000d75 notq %rdi + 0x48, 0x21, 0xf7, //0x00000d78 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000d7b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000d85 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00000d88 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00000d8b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x00000d8e setb %r14b + 0x48, 0x01, 0xff, //0x00000d92 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000d95 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00000d9f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00000da2 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000da5 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00000da9 notq %rdi + 0x48, 0x21, 0xfa, //0x00000dac andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x00000daf testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000db2 je LBB0_100 + 0xe9, 0x58, 0x0e, 0x00, 0x00, //0x00000db8 jmp LBB0_107 + //0x00000dbd LBB0_109 + 0x48, 0x0f, 0xbc, 0xca, //0x00000dbd bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00000dc1 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00000dc4 movq $-64(%rbp), %rax + 0x0f, 0x84, 0xc9, 0x01, 0x00, 0x00, //0x00000dc8 je LBB0_181 + 0x48, 0x0f, 0xbc, 0xd6, //0x00000dce bsfq %rsi, %rdx + 0xe9, 0xc5, 0x01, 0x00, 0x00, //0x00000dd2 jmp LBB0_182 + //0x00000dd7 LBB0_180 + 0x49, 0x01, 0xcb, //0x00000dd7 addq %rcx, %r11 + 0xc5, 0xf8, 0x77, //0x00000dda vzeroupper + 0x4d, 0x89, 0xde, //0x00000ddd movq %r11, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000de0 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000de7 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00000dea movq $-48(%rbp), %rdx + 0x0f, 0x85, 0xdd, 0x01, 0x00, 0x00, //0x00000dee jne LBB0_188 + 0xe9, 0xdc, 0x19, 0x00, 0x00, //0x00000df4 jmp LBB0_481 + //0x00000df9 LBB0_111 + 0x48, 0x89, 0xc3, //0x00000df9 movq %rax, %rbx + 0x4c, 0x29, 0xe3, //0x00000dfc subq %r12, %rbx + 0x0f, 0x84, 0x71, 0x1b, 0x00, 0x00, //0x00000dff je LBB0_510 + 0x4c, 0x89, 0xe1, //0x00000e05 movq %r12, %rcx + 0x4d, 0x01, 0xcc, //0x00000e08 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x00000e0b cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc0, //0x00000e0f movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x98, 0x10, 0x00, 0x00, //0x00000e13 jb LBB0_361 + 0x41, 0x89, 0xde, //0x00000e19 movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000e1c andl $63, %r14d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00000e20 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000e25 andq $-64, %rax + 0x49, 0x89, 0xc8, //0x00000e29 movq %rcx, %r8 + 0x48, 0x01, 0xc8, //0x00000e2c addq %rcx, %rax + 0x49, 0x8d, 0x44, 0x01, 0x40, //0x00000e2f leaq $64(%r9,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x00000e34 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000e38 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00000e3f xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e42 .p2align 4, 0x90 + //0x00000e50 LBB0_114 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000e50 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000e56 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000e5d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000e61 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000e65 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000e69 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000e6d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00000e71 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00000e75 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00000e79 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x00000e7d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000e81 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000e86 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000e8a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000e8e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000e92 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000e97 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000e9b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x00000e9f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000ea3 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00000ea7 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x00000eaa cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000eae jne LBB0_116 + 0x48, 0x85, 0xc9, //0x00000eb4 testq %rcx, %rcx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000eb7 jne LBB0_125 + //0x00000ebd LBB0_116 + 0x48, 0xc1, 0xe6, 0x20, //0x00000ebd shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00000ec1 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00000ec4 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00000ec7 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000eca jne LBB0_126 + 0x48, 0x09, 0xfe, //0x00000ed0 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000ed3 testq %rdx, %rdx + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00000ed6 jne LBB0_127 + //0x00000edc LBB0_118 + 0x48, 0x85, 0xf6, //0x00000edc testq %rsi, %rsi + 0x0f, 0x85, 0x4f, 0x19, 0x00, 0x00, //0x00000edf jne LBB0_502 + 0x48, 0x83, 0xc3, 0xc0, //0x00000ee5 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00000ee9 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x00000eed cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000ef1 ja LBB0_114 + 0xe9, 0x68, 0x0d, 0x00, 0x00, //0x00000ef7 jmp LBB0_120 + //0x00000efc LBB0_126 + 0x4d, 0x89, 0xfa, //0x00000efc movq %r15, %r10 + 0x49, 0xf7, 0xd2, //0x00000eff notq %r10 + 0x49, 0x21, 0xca, //0x00000f02 andq %rcx, %r10 + 0x4f, 0x8d, 0x0c, 0x12, //0x00000f05 leaq (%r10,%r10), %r9 + 0x4d, 0x09, 0xf9, //0x00000f09 orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x00000f0c movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000f0f notq %rax + 0x48, 0x21, 0xc8, //0x00000f12 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000f15 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x00000f1f andq %rcx, %rax + 0x45, 0x31, 0xff, //0x00000f22 xorl %r15d, %r15d + 0x4c, 0x01, 0xd0, //0x00000f25 addq %r10, %rax + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f28 movq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x00000f2c setb %r15b + 0x48, 0x01, 0xc0, //0x00000f30 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000f33 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00000f3d xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x00000f40 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000f43 notq %rax + 0x48, 0x21, 0xc2, //0x00000f46 andq %rax, %rdx + 0x48, 0x09, 0xfe, //0x00000f49 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000f4c testq %rdx, %rdx + 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x00000f4f je LBB0_118 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000f55 jmp LBB0_127 + //0x00000f5a LBB0_125 + 0x4c, 0x89, 0xe0, //0x00000f5a movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x00000f5d subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00000f61 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00000f65 addq %rax, %r11 + 0xe9, 0x50, 0xff, 0xff, 0xff, //0x00000f68 jmp LBB0_116 + //0x00000f6d LBB0_127 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f6d bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00000f71 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00000f74 movq $-64(%rbp), %rax + 0x0f, 0x84, 0x8d, 0x01, 0x00, 0x00, //0x00000f78 je LBB0_203 + 0x48, 0x0f, 0xbc, 0xd6, //0x00000f7e bsfq %rsi, %rdx + 0x4c, 0x8b, 0x75, 0xc8, //0x00000f82 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000f86 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000f89 cmpq %rcx, %rdx + 0x0f, 0x83, 0x8e, 0x01, 0x00, 0x00, //0x00000f8c jae LBB0_204 + 0xe9, 0x19, 0x1a, 0x00, 0x00, //0x00000f92 jmp LBB0_129 + //0x00000f97 LBB0_181 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00000f97 movl $64, %edx + //0x00000f9c LBB0_182 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f9c movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00000fa0 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000fa4 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000fa7 cmpq %rcx, %rdx + 0x0f, 0x82, 0xe5, 0x19, 0x00, 0x00, //0x00000faa jb LBB0_509 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00000fb0 leaq $1(%r12,%rcx), %r12 + 0xe9, 0x10, 0x0b, 0x00, 0x00, //0x00000fb5 jmp LBB0_184 + //0x00000fba LBB0_186 + 0x49, 0x01, 0xce, //0x00000fba addq %rcx, %r14 + //0x00000fbd LBB0_187 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fbd movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000fc4 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00000fc7 movq $-48(%rbp), %rdx + 0x0f, 0x84, 0x04, 0x18, 0x00, 0x00, //0x00000fcb je LBB0_481 + //0x00000fd1 LBB0_188 + 0x4d, 0x85, 0xc0, //0x00000fd1 testq %r8, %r8 + 0x0f, 0x84, 0xfb, 0x17, 0x00, 0x00, //0x00000fd4 je LBB0_481 + 0x48, 0x85, 0xc0, //0x00000fda testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x17, 0x00, 0x00, //0x00000fdd je LBB0_481 + 0x4d, 0x29, 0xfe, //0x00000fe3 subq %r15, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00000fe6 leaq $-1(%r14), %rcx + 0x49, 0x39, 0xcc, //0x00000fea cmpq %rcx, %r12 + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000fed je LBB0_196 + 0x48, 0x39, 0xc8, //0x00000ff3 cmpq %rcx, %rax + 0x0f, 0x84, 0x7f, 0x00, 0x00, 0x00, //0x00000ff6 je LBB0_196 + 0x49, 0x39, 0xc8, //0x00000ffc cmpq %rcx, %r8 + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00000fff je LBB0_196 + 0x4d, 0x85, 0xc0, //0x00001005 testq %r8, %r8 + 0xc5, 0xfe, 0x6f, 0x2d, 0x70, 0xf0, 0xff, 0xff, //0x00001008 vmovdqu $-3984(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x88, 0xf0, 0xff, 0xff, //0x00001010 vmovdqu $-3960(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xa0, 0xf0, 0xff, 0xff, //0x00001018 vmovdqu $-3936(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xb8, 0xf0, 0xff, 0xff, //0x00001020 vmovdqu $-3912(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001028 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xcb, 0xf0, 0xff, 0xff, //0x0000102d vmovdqu $-3893(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xe3, 0xf0, 0xff, 0xff, //0x00001035 vmovdqu $-3869(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xfb, 0xf0, 0xff, 0xff, //0x0000103d vmovdqu $-3845(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x13, 0xf1, 0xff, 0xff, //0x00001045 vmovdqu $-3821(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x2b, 0xf1, 0xff, 0xff, //0x0000104d vmovdqu $-3797(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x43, 0xf1, 0xff, 0xff, //0x00001055 vmovdqu $-3773(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x0000105d jle LBB0_200 + 0x49, 0x8d, 0x48, 0xff, //0x00001063 leaq $-1(%r8), %rcx + 0x49, 0x39, 0xcc, //0x00001067 cmpq %rcx, %r12 + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x0000106a je LBB0_200 + 0x49, 0xf7, 0xd0, //0x00001070 notq %r8 + 0x4d, 0x89, 0xc6, //0x00001073 movq %r8, %r14 + 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00001076 jmp LBB0_197 + //0x0000107b LBB0_196 + 0x49, 0xf7, 0xde, //0x0000107b negq %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0xfa, 0xef, 0xff, 0xff, //0x0000107e vmovdqu $-4102(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x12, 0xf0, 0xff, 0xff, //0x00001086 vmovdqu $-4078(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x2a, 0xf0, 0xff, 0xff, //0x0000108e vmovdqu $-4054(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x42, 0xf0, 0xff, 0xff, //0x00001096 vmovdqu $-4030(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000109e vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x55, 0xf0, 0xff, 0xff, //0x000010a3 vmovdqu $-4011(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x6d, 0xf0, 0xff, 0xff, //0x000010ab vmovdqu $-3987(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x85, 0xf0, 0xff, 0xff, //0x000010b3 vmovdqu $-3963(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x9d, 0xf0, 0xff, 0xff, //0x000010bb vmovdqu $-3939(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xb5, 0xf0, 0xff, 0xff, //0x000010c3 vmovdqu $-3915(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xcd, 0xf0, 0xff, 0xff, //0x000010cb vmovdqu $-3891(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + //0x000010d3 LBB0_197 + 0x4d, 0x85, 0xf6, //0x000010d3 testq %r14, %r14 + 0x4c, 0x8b, 0x65, 0xa8, //0x000010d6 movq $-88(%rbp), %r12 + 0x0f, 0x88, 0xf2, 0x16, 0x00, 0x00, //0x000010da js LBB0_480 + 0x48, 0x8b, 0x0a, //0x000010e0 movq (%rdx), %rcx + 0xe9, 0x79, 0xf1, 0xff, 0xff, //0x000010e3 jmp LBB0_199 + //0x000010e8 LBB0_200 + 0x48, 0x89, 0xc1, //0x000010e8 movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x000010eb orq %r12, %rcx + 0x4c, 0x39, 0xe0, //0x000010ee cmpq %r12, %rax + 0x0f, 0x8c, 0x98, 0x02, 0x00, 0x00, //0x000010f1 jl LBB0_249 + 0x48, 0x85, 0xc9, //0x000010f7 testq %rcx, %rcx + 0x0f, 0x88, 0x8f, 0x02, 0x00, 0x00, //0x000010fa js LBB0_249 + 0x48, 0xf7, 0xd0, //0x00001100 notq %rax + 0x49, 0x89, 0xc6, //0x00001103 movq %rax, %r14 + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x00001106 jmp LBB0_197 + //0x0000110b LBB0_203 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000110b movl $64, %edx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001110 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001114 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00001117 cmpq %rcx, %rdx + 0x0f, 0x82, 0x90, 0x18, 0x00, 0x00, //0x0000111a jb LBB0_129 + //0x00001120 LBB0_204 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001120 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xfe, 0x0a, 0x00, 0x00, //0x00001125 jmp LBB0_205 + //0x0000112a LBB0_209 + 0x49, 0x8b, 0x06, //0x0000112a movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000112d cmpq $4095, %rax + 0x0f, 0x8f, 0x49, 0x16, 0x00, 0x00, //0x00001133 jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001139 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x0000113d movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001140 movq $5, $8(%r14,%rax,8) + 0xe9, 0x32, 0xf1, 0xff, 0xff, //0x00001149 jmp LBB0_3 + //0x0000114e LBB0_211 + 0x48, 0x8b, 0x45, 0xb0, //0x0000114e movq $-80(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00001152 movq $8(%rax), %rax + 0xf6, 0x45, 0x98, 0x20, //0x00001156 testb $32, $-104(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x0000115a movq %rax, $-72(%rbp) + 0x0f, 0x85, 0x46, 0x02, 0x00, 0x00, //0x0000115e jne LBB0_250 + 0x48, 0x89, 0xc1, //0x00001164 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x00001167 subq %r12, %rcx + 0x0f, 0x84, 0x06, 0x18, 0x00, 0x00, //0x0000116a je LBB0_510 + 0x4b, 0x8d, 0x1c, 0x21, //0x00001170 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00001174 cmpq $64, %rcx + 0x4c, 0x89, 0xca, //0x00001178 movq %r9, %rdx + 0x0f, 0x82, 0x71, 0x0d, 0x00, 0x00, //0x0000117b jb LBB0_363 + 0x41, 0x89, 0xcf, //0x00001181 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00001184 andl $63, %r15d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00001188 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000118d andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00001191 addq %r12, %rax + 0x49, 0x89, 0xd1, //0x00001194 movq %rdx, %r9 + 0x4c, 0x8d, 0x44, 0x02, 0x40, //0x00001197 leaq $64(%rdx,%rax), %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000119c movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x000011a3 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011a6 .p2align 4, 0x90 + //0x000011b0 LBB0_215 + 0xc5, 0xfe, 0x6f, 0x03, //0x000011b0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x000011b4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x000011b9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x000011bd vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x000011c1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x000011c5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x000011c9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x000011cd vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x000011d1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000011d5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x000011d9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x000011dd shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000011e1 orq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x000011e4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000011e8 jne LBB0_217 + 0x48, 0x85, 0xf6, //0x000011ee testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000011f1 jne LBB0_224 + //0x000011f7 LBB0_217 + 0x48, 0x09, 0xfa, //0x000011f7 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000011fa movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000011fd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00001200 jne LBB0_225 + //0x00001206 LBB0_218 + 0x48, 0x85, 0xd2, //0x00001206 testq %rdx, %rdx + 0x0f, 0x85, 0x48, 0x0b, 0x00, 0x00, //0x00001209 jne LBB0_226 + //0x0000120f LBB0_219 + 0x48, 0x83, 0xc1, 0xc0, //0x0000120f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00001213 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00001217 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x0000121b ja LBB0_215 + 0xe9, 0xf0, 0x0a, 0x00, 0x00, //0x00001221 jmp LBB0_220 + //0x00001226 LBB0_224 + 0x48, 0x89, 0xd8, //0x00001226 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00001229 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x0000122c bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00001230 addq %rax, %r11 + 0x48, 0x09, 0xfa, //0x00001233 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00001236 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00001239 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000123c je LBB0_218 + //0x00001242 LBB0_225 + 0x4c, 0x89, 0xf0, //0x00001242 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001245 notq %rax + 0x48, 0x21, 0xf0, //0x00001248 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x0000124b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x0000124f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00001252 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00001255 notq %rdi + 0x48, 0x21, 0xf7, //0x00001258 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000125b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00001265 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00001268 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x0000126b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000126e setb %r14b + 0x48, 0x01, 0xff, //0x00001272 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001275 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000127f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00001282 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001285 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00001289 notq %rdi + 0x48, 0x21, 0xfa, //0x0000128c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x0000128f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00001292 je LBB0_219 + 0xe9, 0xba, 0x0a, 0x00, 0x00, //0x00001298 jmp LBB0_226 + //0x0000129d LBB0_227 + 0x48, 0x8b, 0x45, 0xb0, //0x0000129d movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x70, 0x08, //0x000012a1 movq $8(%rax), %r14 + 0x4d, 0x29, 0xe6, //0x000012a5 subq %r12, %r14 + 0x0f, 0x84, 0xb3, 0x16, 0x00, 0x00, //0x000012a8 je LBB0_498 + 0x4c, 0x89, 0x65, 0xa8, //0x000012ae movq %r12, $-88(%rbp) + 0x4c, 0x89, 0xc8, //0x000012b2 movq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000012b5 addq %r12, %rax + 0x49, 0x89, 0xc1, //0x000012b8 movq %rax, %r9 + 0x80, 0x38, 0x30, //0x000012bb cmpb $48, (%rax) + 0x0f, 0x85, 0xb5, 0x02, 0x00, 0x00, //0x000012be jne LBB0_271 + 0x41, 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000012c4 movl $1, %r15d + 0x49, 0x83, 0xfe, 0x01, //0x000012ca cmpq $1, %r14 + 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x000012ce jne LBB0_269 + 0x4c, 0x8b, 0x65, 0xa8, //0x000012d4 movq $-88(%rbp), %r12 + 0xe9, 0x9d, 0x08, 0x00, 0x00, //0x000012d8 jmp LBB0_343 + //0x000012dd LBB0_231 + 0x48, 0x8b, 0x45, 0xb0, //0x000012dd movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x000012e1 movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000012e5 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc5, //0x000012e9 cmpq %rax, %r13 + 0x0f, 0x83, 0x0c, 0x15, 0x00, 0x00, //0x000012ec jae LBB0_490 + 0x41, 0x81, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, //0x000012f2 cmpl $1819047278, (%r15) + 0x0f, 0x84, 0x99, 0xef, 0xff, 0xff, //0x000012f9 je LBB0_1 + 0xe9, 0x5a, 0x15, 0x00, 0x00, //0x000012ff jmp LBB0_233 + //0x00001304 LBB0_238 + 0x49, 0x8b, 0x06, //0x00001304 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001307 cmpq $4095, %rax + 0x0f, 0x8f, 0x6f, 0x14, 0x00, 0x00, //0x0000130d jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001313 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00001317 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x06, 0x00, 0x00, 0x00, //0x0000131a movq $6, $8(%r14,%rax,8) + 0xe9, 0x58, 0xef, 0xff, 0xff, //0x00001323 jmp LBB0_3 + //0x00001328 LBB0_240 + 0x48, 0x8b, 0x45, 0xb0, //0x00001328 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x0000132c movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfc, //0x00001330 leaq $-4(%rdx), %rax + 0x49, 0x39, 0xc5, //0x00001334 cmpq %rax, %r13 + 0x0f, 0x83, 0xc1, 0x14, 0x00, 0x00, //0x00001337 jae LBB0_490 + 0x43, 0x8b, 0x14, 0x21, //0x0000133d movl (%r9,%r12), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x00001341 cmpl $1702063201, %edx + 0x0f, 0x85, 0x63, 0x15, 0x00, 0x00, //0x00001347 jne LBB0_491 + 0x4c, 0x89, 0xe0, //0x0000134d movq %r12, %rax + 0x4d, 0x8d, 0x65, 0x05, //0x00001350 leaq $5(%r13), %r12 + 0x4d, 0x89, 0x22, //0x00001354 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001357 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x0000135a testq %rax, %rax + 0x0f, 0x8f, 0x1d, 0xef, 0xff, 0xff, //0x0000135d jg LBB0_3 + 0xe9, 0x81, 0x14, 0x00, 0x00, //0x00001363 jmp LBB0_501 + //0x00001368 LBB0_243 + 0x48, 0x8b, 0x45, 0xb0, //0x00001368 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x0000136c movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x00001370 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc5, //0x00001374 cmpq %rax, %r13 + 0x0f, 0x83, 0x81, 0x14, 0x00, 0x00, //0x00001377 jae LBB0_490 + 0x41, 0x81, 0x3f, 0x74, 0x72, 0x75, 0x65, //0x0000137d cmpl $1702195828, (%r15) + 0x0f, 0x84, 0x0e, 0xef, 0xff, 0xff, //0x00001384 je LBB0_1 + 0xe9, 0x76, 0x15, 0x00, 0x00, //0x0000138a jmp LBB0_245 + //0x0000138f LBB0_249 + 0x48, 0x85, 0xc9, //0x0000138f testq %rcx, %rcx + 0x49, 0x8d, 0x4c, 0x24, 0xff, //0x00001392 leaq $-1(%r12), %rcx + 0x49, 0xf7, 0xd4, //0x00001397 notq %r12 + 0x4d, 0x0f, 0x48, 0xe6, //0x0000139a cmovsq %r14, %r12 + 0x48, 0x39, 0xc8, //0x0000139e cmpq %rcx, %rax + 0x4d, 0x0f, 0x44, 0xf4, //0x000013a1 cmoveq %r12, %r14 + 0xe9, 0x29, 0xfd, 0xff, 0xff, //0x000013a5 jmp LBB0_197 + //0x000013aa LBB0_250 + 0x48, 0x89, 0xc3, //0x000013aa movq %rax, %rbx + 0x4c, 0x29, 0xe3, //0x000013ad subq %r12, %rbx + 0x0f, 0x84, 0xc0, 0x15, 0x00, 0x00, //0x000013b0 je LBB0_510 + 0x4c, 0x89, 0xe1, //0x000013b6 movq %r12, %rcx + 0x4d, 0x01, 0xcc, //0x000013b9 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x000013bc cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc0, //0x000013c0 movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x44, 0x0b, 0x00, 0x00, //0x000013c4 jb LBB0_364 + 0x41, 0x89, 0xde, //0x000013ca movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x000013cd andl $63, %r14d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x000013d1 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x000013d6 andq $-64, %rax + 0x49, 0x89, 0xc8, //0x000013da movq %rcx, %r8 + 0x48, 0x01, 0xc8, //0x000013dd addq %rcx, %rax + 0x49, 0x8d, 0x44, 0x01, 0x40, //0x000013e0 leaq $64(%r9,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x000013e5 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000013e9 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x000013f0 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000013f3 .p2align 4, 0x90 + //0x00001400 LBB0_253 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001400 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00001406 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x0000140d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00001411 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00001415 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00001419 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x0000141d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00001421 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00001425 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00001429 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x0000142d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001431 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00001436 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000143a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x0000143e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00001442 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00001447 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000144b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x0000144f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00001453 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00001457 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x0000145a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000145e jne LBB0_255 + 0x48, 0x85, 0xc9, //0x00001464 testq %rcx, %rcx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00001467 jne LBB0_264 + //0x0000146d LBB0_255 + 0x48, 0xc1, 0xe6, 0x20, //0x0000146d shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00001471 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00001474 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00001477 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000147a jne LBB0_265 + 0x48, 0x09, 0xfe, //0x00001480 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00001483 testq %rdx, %rdx + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00001486 jne LBB0_266 + //0x0000148c LBB0_257 + 0x48, 0x85, 0xf6, //0x0000148c testq %rsi, %rsi + 0x0f, 0x85, 0x9f, 0x13, 0x00, 0x00, //0x0000148f jne LBB0_502 + 0x48, 0x83, 0xc3, 0xc0, //0x00001495 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00001499 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x0000149d cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x000014a1 ja LBB0_253 + 0xe9, 0xe7, 0x08, 0x00, 0x00, //0x000014a7 jmp LBB0_259 + //0x000014ac LBB0_265 + 0x4d, 0x89, 0xfa, //0x000014ac movq %r15, %r10 + 0x49, 0xf7, 0xd2, //0x000014af notq %r10 + 0x49, 0x21, 0xca, //0x000014b2 andq %rcx, %r10 + 0x4f, 0x8d, 0x0c, 0x12, //0x000014b5 leaq (%r10,%r10), %r9 + 0x4d, 0x09, 0xf9, //0x000014b9 orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x000014bc movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014bf notq %rax + 0x48, 0x21, 0xc8, //0x000014c2 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000014c5 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x000014cf andq %rcx, %rax + 0x45, 0x31, 0xff, //0x000014d2 xorl %r15d, %r15d + 0x4c, 0x01, 0xd0, //0x000014d5 addq %r10, %rax + 0x4c, 0x8b, 0x55, 0xd0, //0x000014d8 movq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x000014dc setb %r15b + 0x48, 0x01, 0xc0, //0x000014e0 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000014e3 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x000014ed xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x000014f0 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014f3 notq %rax + 0x48, 0x21, 0xc2, //0x000014f6 andq %rax, %rdx + 0x48, 0x09, 0xfe, //0x000014f9 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x000014fc testq %rdx, %rdx + 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x000014ff je LBB0_257 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001505 jmp LBB0_266 + //0x0000150a LBB0_264 + 0x4c, 0x89, 0xe0, //0x0000150a movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x0000150d subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00001511 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00001515 addq %rax, %r11 + 0xe9, 0x50, 0xff, 0xff, 0xff, //0x00001518 jmp LBB0_255 + //0x0000151d LBB0_266 + 0x48, 0x0f, 0xbc, 0xca, //0x0000151d bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00001521 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00001524 movq $-64(%rbp), %rax + 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x00001528 je LBB0_320 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000152e bsfq %rsi, %rdx + 0xe9, 0x1c, 0x04, 0x00, 0x00, //0x00001532 jmp LBB0_321 + //0x00001537 LBB0_268 + 0x4c, 0x89, 0xca, //0x00001537 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x0000153a notq %rdx + 0x49, 0x01, 0xd5, //0x0000153d addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00001540 cmpq %rcx, %r13 + 0x0f, 0x82, 0x3f, 0xef, 0xff, 0xff, //0x00001543 jb LBB0_36 + 0xe9, 0x28, 0x12, 0x00, 0x00, //0x00001549 jmp LBB0_474 + //0x0000154e LBB0_269 + 0x41, 0x8a, 0x49, 0x01, //0x0000154e movb $1(%r9), %cl + 0x80, 0xc1, 0xd2, //0x00001552 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00001555 cmpb $55, %cl + 0x4c, 0x8b, 0x65, 0xa8, //0x00001558 movq $-88(%rbp), %r12 + 0x0f, 0x87, 0x18, 0x06, 0x00, 0x00, //0x0000155c ja LBB0_343 + 0x0f, 0xb6, 0xc1, //0x00001562 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001565 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000156f btq %rax, %rcx + 0x0f, 0x83, 0x01, 0x06, 0x00, 0x00, //0x00001573 jae LBB0_343 + //0x00001579 LBB0_271 + 0x49, 0x83, 0xfe, 0x20, //0x00001579 cmpq $32, %r14 + 0x0f, 0x82, 0x52, 0x09, 0x00, 0x00, //0x0000157d jb LBB0_362 + 0x49, 0x8d, 0x4e, 0xe0, //0x00001583 leaq $-32(%r14), %rcx + 0x48, 0x89, 0xc8, //0x00001587 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x0000158a andq $-32, %rax + 0x4d, 0x89, 0xca, //0x0000158e movq %r9, %r10 + 0x4e, 0x8d, 0x7c, 0x08, 0x20, //0x00001591 leaq $32(%rax,%r9), %r15 + 0x83, 0xe1, 0x1f, //0x00001596 andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00001599 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000159d movq $-1, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000015a4 movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000015ab movq $-1, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015b2 .p2align 4, 0x90 + //0x000015c0 LBB0_273 + 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x000015c0 vmovdqu (%r10), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x000015c5 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x000015ca vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x000015ce vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x000015d2 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x000015d6 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000015da vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x000015de vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000015e2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000015e6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000015ea vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000015ee vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000015f2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000015f6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000015fa vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000015fe vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00001602 vpmovmskb %ymm0, %eax + 0x48, 0xf7, 0xd0, //0x00001606 notq %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x00001609 bsfq %rax, %rcx + 0x83, 0xf9, 0x20, //0x0000160d cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00001610 je LBB0_275 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001616 movl $-1, %eax + 0xd3, 0xe0, //0x0000161b shll %cl, %eax + 0xf7, 0xd0, //0x0000161d notl %eax + 0x21, 0xc7, //0x0000161f andl %eax, %edi + 0x21, 0xc2, //0x00001621 andl %eax, %edx + 0x21, 0xf0, //0x00001623 andl %esi, %eax + 0x89, 0xc6, //0x00001625 movl %eax, %esi + //0x00001627 LBB0_275 + 0x8d, 0x5f, 0xff, //0x00001627 leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x0000162a andl %edi, %ebx + 0x0f, 0x85, 0xb0, 0x06, 0x00, 0x00, //0x0000162c jne LBB0_349 + 0x8d, 0x5a, 0xff, //0x00001632 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00001635 andl %edx, %ebx + 0x0f, 0x85, 0xa5, 0x06, 0x00, 0x00, //0x00001637 jne LBB0_349 + 0x8d, 0x5e, 0xff, //0x0000163d leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00001640 andl %esi, %ebx + 0x0f, 0x85, 0x9a, 0x06, 0x00, 0x00, //0x00001642 jne LBB0_349 + 0x85, 0xff, //0x00001648 testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000164a je LBB0_281 + 0x4c, 0x89, 0xd0, //0x00001650 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001653 subq %r9, %rax + 0x0f, 0xbc, 0xff, //0x00001656 bsfl %edi, %edi + 0x48, 0x01, 0xc7, //0x00001659 addq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000165c cmpq $-1, %r12 + 0x0f, 0x85, 0xa7, 0x07, 0x00, 0x00, //0x00001660 jne LBB0_354 + 0x49, 0x89, 0xfc, //0x00001666 movq %rdi, %r12 + //0x00001669 LBB0_281 + 0x85, 0xd2, //0x00001669 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000166b je LBB0_284 + 0x4c, 0x89, 0xd0, //0x00001671 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001674 subq %r9, %rax + 0x0f, 0xbc, 0xd2, //0x00001677 bsfl %edx, %edx + 0x48, 0x01, 0xc2, //0x0000167a addq %rax, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x0000167d cmpq $-1, %r11 + 0x0f, 0x85, 0x80, 0x06, 0x00, 0x00, //0x00001681 jne LBB0_351 + 0x49, 0x89, 0xd3, //0x00001687 movq %rdx, %r11 + //0x0000168a LBB0_284 + 0x85, 0xf6, //0x0000168a testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000168c je LBB0_287 + 0x4c, 0x89, 0xd0, //0x00001692 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001695 subq %r9, %rax + 0x0f, 0xbc, 0xd6, //0x00001698 bsfl %esi, %edx + 0x48, 0x01, 0xc2, //0x0000169b addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x0000169e cmpq $-1, %r8 + 0x0f, 0x85, 0x5f, 0x06, 0x00, 0x00, //0x000016a2 jne LBB0_351 + 0x49, 0x89, 0xd0, //0x000016a8 movq %rdx, %r8 + //0x000016ab LBB0_287 + 0x83, 0xf9, 0x20, //0x000016ab cmpl $32, %ecx + 0x0f, 0x85, 0x62, 0x02, 0x00, 0x00, //0x000016ae jne LBB0_496 + 0x49, 0x83, 0xc2, 0x20, //0x000016b4 addq $32, %r10 + 0x49, 0x83, 0xc6, 0xe0, //0x000016b8 addq $-32, %r14 + 0x49, 0x83, 0xfe, 0x1f, //0x000016bc cmpq $31, %r14 + 0x0f, 0x87, 0xfa, 0xfe, 0xff, 0xff, //0x000016c0 ja LBB0_273 + 0xc5, 0xf8, 0x77, //0x000016c6 vzeroupper + 0x4c, 0x8b, 0x75, 0xc0, //0x000016c9 movq $-64(%rbp), %r14 + //0x000016cd LBB0_290 + 0x49, 0x83, 0xfe, 0x10, //0x000016cd cmpq $16, %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0xa7, 0xe9, 0xff, 0xff, //0x000016d1 vmovdqu $-5721(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xbf, 0xe9, 0xff, 0xff, //0x000016d9 vmovdqu $-5697(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xd7, 0xe9, 0xff, 0xff, //0x000016e1 vmovdqu $-5673(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xef, 0xe9, 0xff, 0xff, //0x000016e9 vmovdqu $-5649(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000016f1 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x02, 0xea, 0xff, 0xff, //0x000016f6 vmovdqu $-5630(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x1a, 0xea, 0xff, 0xff, //0x000016fe vmovdqu $-5606(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x32, 0xea, 0xff, 0xff, //0x00001706 vmovdqu $-5582(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x4a, 0xea, 0xff, 0xff, //0x0000170e vmovdqu $-5558(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x62, 0xea, 0xff, 0xff, //0x00001716 vmovdqu $-5534(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x7a, 0xea, 0xff, 0xff, //0x0000171e vmovdqu $-5510(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x0f, 0x82, 0x55, 0x01, 0x00, 0x00, //0x00001726 jb LBB0_309 + 0x4d, 0x8d, 0x56, 0xf0, //0x0000172c leaq $-16(%r14), %r10 + 0x4c, 0x89, 0xd0, //0x00001730 movq %r10, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001733 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x38, 0x10, //0x00001737 leaq $16(%rax,%r15), %rax + 0x48, 0x89, 0x45, 0xc0, //0x0000173c movq %rax, $-64(%rbp) + 0x41, 0x83, 0xe2, 0x0f, //0x00001740 andl $15, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001744 .p2align 4, 0x90 + //0x00001750 LBB0_292 + 0xc4, 0xc1, 0x7a, 0x6f, 0x07, //0x00001750 vmovdqu (%r15), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0xb3, 0xe8, 0xff, 0xff, //0x00001755 vpcmpgtb $-5965(%rip), %xmm0, %xmm1 /* LCPI0_11+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xbb, 0xe8, 0xff, 0xff, //0x0000175d vmovdqu $-5957(%rip), %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00001765 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00001769 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0xbb, 0xe8, 0xff, 0xff, //0x0000176d vpcmpeqb $-5957(%rip), %xmm0, %xmm2 /* LCPI0_13+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0xc3, 0xe8, 0xff, 0xff, //0x00001775 vpcmpeqb $-5949(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000177d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0xc7, 0xe8, 0xff, 0xff, //0x00001781 vpor $-5945(%rip), %xmm0, %xmm3 /* LCPI0_15+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0xcf, 0xe8, 0xff, 0xff, //0x00001789 vpcmpeqb $-5937(%rip), %xmm0, %xmm0 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0xd7, 0xe8, 0xff, 0xff, //0x00001791 vpcmpeqb $-5929(%rip), %xmm3, %xmm3 /* LCPI0_17+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00001799 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000179d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x000017a1 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000017a5 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x000017a9 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x000017ad vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc1, //0x000017b1 vpmovmskb %xmm1, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000017b5 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x000017ba xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000017bd bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x000017c1 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000017c4 je LBB0_294 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000017ca movl $-1, %eax + 0xd3, 0xe0, //0x000017cf shll %cl, %eax + 0xf7, 0xd0, //0x000017d1 notl %eax + 0x21, 0xc7, //0x000017d3 andl %eax, %edi + 0x21, 0xc6, //0x000017d5 andl %eax, %esi + 0x21, 0xd0, //0x000017d7 andl %edx, %eax + 0x89, 0xc2, //0x000017d9 movl %eax, %edx + //0x000017db LBB0_294 + 0x8d, 0x5f, 0xff, //0x000017db leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x000017de andl %edi, %ebx + 0x0f, 0x85, 0x0f, 0x06, 0x00, 0x00, //0x000017e0 jne LBB0_353 + 0x8d, 0x5e, 0xff, //0x000017e6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000017e9 andl %esi, %ebx + 0x0f, 0x85, 0x04, 0x06, 0x00, 0x00, //0x000017eb jne LBB0_353 + 0x8d, 0x5a, 0xff, //0x000017f1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000017f4 andl %edx, %ebx + 0x0f, 0x85, 0xf9, 0x05, 0x00, 0x00, //0x000017f6 jne LBB0_353 + 0x85, 0xff, //0x000017fc testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000017fe je LBB0_300 + 0x4c, 0x89, 0xf8, //0x00001804 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001807 subq %r9, %rax + 0x0f, 0xbc, 0xff, //0x0000180a bsfl %edi, %edi + 0x48, 0x01, 0xc7, //0x0000180d addq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x00001810 cmpq $-1, %r12 + 0x0f, 0x85, 0xf3, 0x05, 0x00, 0x00, //0x00001814 jne LBB0_354 + 0x49, 0x89, 0xfc, //0x0000181a movq %rdi, %r12 + //0x0000181d LBB0_300 + 0x85, 0xf6, //0x0000181d testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000181f je LBB0_303 + 0x4c, 0x89, 0xf8, //0x00001825 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001828 subq %r9, %rax + 0x0f, 0xbc, 0xf6, //0x0000182b bsfl %esi, %esi + 0x48, 0x01, 0xc6, //0x0000182e addq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00001831 cmpq $-1, %r11 + 0x0f, 0x85, 0x4e, 0x06, 0x00, 0x00, //0x00001835 jne LBB0_359 + 0x49, 0x89, 0xf3, //0x0000183b movq %rsi, %r11 + //0x0000183e LBB0_303 + 0x85, 0xd2, //0x0000183e testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00001840 je LBB0_306 + 0x4c, 0x89, 0xf8, //0x00001846 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001849 subq %r9, %rax + 0x0f, 0xbc, 0xd2, //0x0000184c bsfl %edx, %edx + 0x48, 0x01, 0xc2, //0x0000184f addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001852 cmpq $-1, %r8 + 0x0f, 0x85, 0xab, 0x04, 0x00, 0x00, //0x00001856 jne LBB0_351 + 0x49, 0x89, 0xd0, //0x0000185c movq %rdx, %r8 + //0x0000185f LBB0_306 + 0x83, 0xf9, 0x10, //0x0000185f cmpl $16, %ecx + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00001862 jne LBB0_325 + 0x49, 0x83, 0xc7, 0x10, //0x00001868 addq $16, %r15 + 0x49, 0x83, 0xc6, 0xf0, //0x0000186c addq $-16, %r14 + 0x49, 0x83, 0xfe, 0x0f, //0x00001870 cmpq $15, %r14 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00001874 ja LBB0_292 + 0x4d, 0x89, 0xd6, //0x0000187a movq %r10, %r14 + 0x4c, 0x8b, 0x7d, 0xc0, //0x0000187d movq $-64(%rbp), %r15 + //0x00001881 LBB0_309 + 0x4d, 0x85, 0xf6, //0x00001881 testq %r14, %r14 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001884 movq $-48(%rbp), %r10 + 0x0f, 0x84, 0xe6, 0x00, 0x00, 0x00, //0x00001888 je LBB0_326 + 0x4b, 0x8d, 0x0c, 0x37, //0x0000188e leaq (%r15,%r14), %rcx + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00001892 jmp LBB0_314 + //0x00001897 LBB0_311 + 0x49, 0x89, 0xd7, //0x00001897 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x0000189a subq %r9, %r15 + 0x49, 0x83, 0xf8, 0xff, //0x0000189d cmpq $-1, %r8 + 0x0f, 0x85, 0x26, 0x06, 0x00, 0x00, //0x000018a1 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018a7 decq %r15 + 0x4d, 0x89, 0xf8, //0x000018aa movq %r15, %r8 + 0x90, 0x90, 0x90, //0x000018ad .p2align 4, 0x90 + //0x000018b0 LBB0_313 + 0x49, 0x89, 0xd7, //0x000018b0 movq %rdx, %r15 + 0x49, 0xff, 0xce, //0x000018b3 decq %r14 + 0x0f, 0x84, 0xbc, 0x05, 0x00, 0x00, //0x000018b6 je LBB0_358 + //0x000018bc LBB0_314 + 0x41, 0x0f, 0xbe, 0x37, //0x000018bc movsbl (%r15), %esi + 0x83, 0xc6, 0xd5, //0x000018c0 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x000018c3 cmpl $58, %esi + 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x000018c6 ja LBB0_326 + 0x49, 0x8d, 0x57, 0x01, //0x000018cc leaq $1(%r15), %rdx + 0x48, 0x8d, 0x3d, 0x49, 0x13, 0x00, 0x00, //0x000018d0 leaq $4937(%rip), %rdi /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x04, 0xb7, //0x000018d7 movslq (%rdi,%rsi,4), %rax + 0x48, 0x01, 0xf8, //0x000018db addq %rdi, %rax + 0xff, 0xe0, //0x000018de jmpq *%rax + //0x000018e0 LBB0_316 + 0x49, 0x89, 0xd7, //0x000018e0 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018e3 subq %r9, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x000018e6 cmpq $-1, %r11 + 0x0f, 0x85, 0xdd, 0x05, 0x00, 0x00, //0x000018ea jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018f0 decq %r15 + 0x4d, 0x89, 0xfb, //0x000018f3 movq %r15, %r11 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x000018f6 jmp LBB0_313 + //0x000018fb LBB0_318 + 0x49, 0x89, 0xd7, //0x000018fb movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018fe subq %r9, %r15 + 0x49, 0x83, 0xfc, 0xff, //0x00001901 cmpq $-1, %r12 + 0x0f, 0x85, 0xc2, 0x05, 0x00, 0x00, //0x00001905 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x0000190b decq %r15 + 0x4d, 0x89, 0xfc, //0x0000190e movq %r15, %r12 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00001911 jmp LBB0_313 + //0x00001916 LBB0_496 + 0x49, 0x01, 0xca, //0x00001916 addq %rcx, %r10 + 0xc5, 0xf8, 0x77, //0x00001919 vzeroupper + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000191c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0xfe, 0x6f, 0x3d, 0x97, 0xe7, 0xff, 0xff, //0x00001921 vmovdqu $-6249(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x6f, 0xe7, 0xff, 0xff, //0x00001929 vmovdqu $-6289(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x47, 0xe7, 0xff, 0xff, //0x00001931 vmovdqu $-6329(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0x4d, 0x89, 0xd7, //0x00001939 movq %r10, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x0000193c movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xdb, //0x00001940 testq %r11, %r11 + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00001943 jne LBB0_327 + 0xe9, 0x10, 0x10, 0x00, 0x00, //0x00001949 jmp LBB0_497 + //0x0000194e LBB0_320 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000194e movl $64, %edx + //0x00001953 LBB0_321 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001953 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001957 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x0000195a cmpq %rcx, %rdx + 0x0f, 0x82, 0x4d, 0x10, 0x00, 0x00, //0x0000195d jb LBB0_129 + //0x00001963 LBB0_322 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001963 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xfd, 0x03, 0x00, 0x00, //0x00001968 jmp LBB0_323 + //0x0000196d LBB0_325 + 0x49, 0x01, 0xcf, //0x0000196d addq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001970 movq $-48(%rbp), %r10 + //0x00001974 LBB0_326 + 0x4d, 0x85, 0xdb, //0x00001974 testq %r11, %r11 + 0x0f, 0x84, 0xe1, 0x0f, 0x00, 0x00, //0x00001977 je LBB0_497 + //0x0000197d LBB0_327 + 0x4d, 0x85, 0xc0, //0x0000197d testq %r8, %r8 + 0x0f, 0x84, 0xd8, 0x0f, 0x00, 0x00, //0x00001980 je LBB0_497 + 0x4d, 0x85, 0xe4, //0x00001986 testq %r12, %r12 + 0x0f, 0x84, 0xcf, 0x0f, 0x00, 0x00, //0x00001989 je LBB0_497 + 0x4d, 0x29, 0xcf, //0x0000198f subq %r9, %r15 + 0x49, 0x8d, 0x4f, 0xff, //0x00001992 leaq $-1(%r15), %rcx + 0x49, 0x39, 0xcb, //0x00001996 cmpq %rcx, %r11 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00001999 je LBB0_335 + 0x49, 0x39, 0xcc, //0x0000199f cmpq %rcx, %r12 + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x000019a2 je LBB0_335 + 0x49, 0x39, 0xc8, //0x000019a8 cmpq %rcx, %r8 + 0x0f, 0x84, 0x59, 0x00, 0x00, 0x00, //0x000019ab je LBB0_335 + 0x4d, 0x85, 0xc0, //0x000019b1 testq %r8, %r8 + 0xc5, 0x7e, 0x6f, 0x05, 0x24, 0xe7, 0xff, 0xff, //0x000019b4 vmovdqu $-6364(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x3c, 0xe7, 0xff, 0xff, //0x000019bc vmovdqu $-6340(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x54, 0xe7, 0xff, 0xff, //0x000019c4 vmovdqu $-6316(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x6c, 0xe7, 0xff, 0xff, //0x000019cc vmovdqu $-6292(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x84, 0xe7, 0xff, 0xff, //0x000019d4 vmovdqu $-6268(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x9c, 0xe7, 0xff, 0xff, //0x000019dc vmovdqu $-6244(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xb4, 0xe7, 0xff, 0xff, //0x000019e4 vmovdqu $-6220(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x0f, 0x8e, 0x58, 0x00, 0x00, 0x00, //0x000019ec jle LBB0_336 + 0x49, 0x8d, 0x40, 0xff, //0x000019f2 leaq $-1(%r8), %rax + 0x49, 0x39, 0xc3, //0x000019f6 cmpq %rax, %r11 + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000019f9 je LBB0_336 + 0x49, 0xf7, 0xd0, //0x000019ff notq %r8 + 0x4d, 0x89, 0xc7, //0x00001a02 movq %r8, %r15 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x00001a05 jmp LBB0_342 + //0x00001a0a LBB0_335 + 0x49, 0xf7, 0xdf, //0x00001a0a negq %r15 + 0xc5, 0x7e, 0x6f, 0x05, 0xcb, 0xe6, 0xff, 0xff, //0x00001a0d vmovdqu $-6453(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xe3, 0xe6, 0xff, 0xff, //0x00001a15 vmovdqu $-6429(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xfb, 0xe6, 0xff, 0xff, //0x00001a1d vmovdqu $-6405(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x13, 0xe7, 0xff, 0xff, //0x00001a25 vmovdqu $-6381(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x2b, 0xe7, 0xff, 0xff, //0x00001a2d vmovdqu $-6357(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x43, 0xe7, 0xff, 0xff, //0x00001a35 vmovdqu $-6333(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x5b, 0xe7, 0xff, 0xff, //0x00001a3d vmovdqu $-6309(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0xe9, 0x24, 0x01, 0x00, 0x00, //0x00001a45 jmp LBB0_342 + //0x00001a4a LBB0_336 + 0x4c, 0x89, 0xe1, //0x00001a4a movq %r12, %rcx + 0x4c, 0x09, 0xd9, //0x00001a4d orq %r11, %rcx + 0x4d, 0x39, 0xdc, //0x00001a50 cmpq %r11, %r12 + 0x0f, 0x8c, 0x00, 0x01, 0x00, 0x00, //0x00001a53 jl LBB0_341 + 0x48, 0x85, 0xc9, //0x00001a59 testq %rcx, %rcx + 0x0f, 0x88, 0xf7, 0x00, 0x00, 0x00, //0x00001a5c js LBB0_341 + 0x49, 0xf7, 0xd4, //0x00001a62 notq %r12 + 0x4d, 0x89, 0xe7, //0x00001a65 movq %r12, %r15 + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x00001a68 jmp LBB0_342 + //0x00001a6d LBB0_339 + 0x4d, 0x29, 0xfb, //0x00001a6d subq %r15, %r11 + 0x44, 0x0f, 0xbc, 0xf3, //0x00001a70 bsfl %ebx, %r14d + 0xe9, 0x3d, 0x01, 0x00, 0x00, //0x00001a74 jmp LBB0_346 + //0x00001a79 LBB0_54 + 0x4c, 0x89, 0xf9, //0x00001a79 movq %r15, %rcx + 0x4c, 0x89, 0xcb, //0x00001a7c movq %r9, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001a7f cmpq $32, %rcx + 0x0f, 0x82, 0x0e, 0x05, 0x00, 0x00, //0x00001a83 jb LBB0_370 + //0x00001a89 LBB0_55 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001a89 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001a8d vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001a91 vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001a95 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001a99 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001a9d testl %esi, %esi + 0x0f, 0x85, 0x89, 0x04, 0x00, 0x00, //0x00001a9f jne LBB0_366 + 0x4d, 0x85, 0xf6, //0x00001aa5 testq %r14, %r14 + 0x0f, 0x85, 0x97, 0x04, 0x00, 0x00, //0x00001aa8 jne LBB0_368 + 0x45, 0x31, 0xf6, //0x00001aae xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001ab1 testq %rdx, %rdx + 0x0f, 0x84, 0xd5, 0x04, 0x00, 0x00, //0x00001ab4 je LBB0_369 + //0x00001aba LBB0_60 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001aba bsfq %rdx, %rax + 0x4c, 0x29, 0xdb, //0x00001abe subq %r11, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001ac1 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001ac6 movq $-56(%rbp), %r14 + //0x00001aca LBB0_184 + 0x4d, 0x85, 0xe4, //0x00001aca testq %r12, %r12 + 0x0f, 0x88, 0xbb, 0x0c, 0x00, 0x00, //0x00001acd js LBB0_475 + 0x4d, 0x89, 0x22, //0x00001ad3 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001ad6 movq %r13, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001ad9 cmpq $0, $-88(%rbp) + 0x0f, 0x8f, 0x9c, 0xe7, 0xff, 0xff, //0x00001ade jg LBB0_3 + 0xe9, 0x00, 0x0d, 0x00, 0x00, //0x00001ae4 jmp LBB0_501 + //0x00001ae9 LBB0_84 + 0x4d, 0x89, 0xf2, //0x00001ae9 movq %r14, %r10 + 0x49, 0x89, 0xc4, //0x00001aec movq %rax, %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001aef movq $-56(%rbp), %r14 + 0x49, 0x83, 0xfa, 0x20, //0x00001af3 cmpq $32, %r10 + 0x0f, 0x82, 0xd2, 0x05, 0x00, 0x00, //0x00001af7 jb LBB0_388 + //0x00001afd LBB0_85 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001afd vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001b03 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001b07 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001b0b vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001b0f vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001b13 vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001b17 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001b1c vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001b20 vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001b24 testl %ecx, %ecx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b26 jne LBB0_379 + 0x4d, 0x85, 0xff, //0x00001b2c testq %r15, %r15 + 0x0f, 0x85, 0x09, 0x05, 0x00, 0x00, //0x00001b2f jne LBB0_381 + 0x45, 0x31, 0xff, //0x00001b35 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001b38 testq %rsi, %rsi + 0x0f, 0x84, 0x44, 0x05, 0x00, 0x00, //0x00001b3b je LBB0_382 + //0x00001b41 LBB0_88 + 0x48, 0x0f, 0xbc, 0xce, //0x00001b41 bsfq %rsi, %rcx + 0xe9, 0x40, 0x05, 0x00, 0x00, //0x00001b45 jmp LBB0_383 + //0x00001b4a LBB0_340 + 0x48, 0xf7, 0xd2, //0x00001b4a notq %rdx + 0x49, 0x89, 0xd6, //0x00001b4d movq %rdx, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001b50 movq $-48(%rbp), %rdx + 0xe9, 0x7a, 0xf5, 0xff, 0xff, //0x00001b54 jmp LBB0_197 + //0x00001b59 LBB0_341 + 0x48, 0x85, 0xc9, //0x00001b59 testq %rcx, %rcx + 0x49, 0x8d, 0x43, 0xff, //0x00001b5c leaq $-1(%r11), %rax + 0x49, 0xf7, 0xd3, //0x00001b60 notq %r11 + 0x4d, 0x0f, 0x48, 0xdf, //0x00001b63 cmovsq %r15, %r11 + 0x49, 0x39, 0xc4, //0x00001b67 cmpq %rax, %r12 + 0x4d, 0x0f, 0x44, 0xfb, //0x00001b6a cmoveq %r11, %r15 + //0x00001b6e LBB0_342 + 0x4d, 0x8b, 0x22, //0x00001b6e movq (%r10), %r12 + 0x4d, 0x85, 0xff, //0x00001b71 testq %r15, %r15 + 0x0f, 0x88, 0xee, 0x0d, 0x00, 0x00, //0x00001b74 js LBB0_499 + //0x00001b7a LBB0_343 + 0x4d, 0x01, 0xfc, //0x00001b7a addq %r15, %r12 + 0x4d, 0x89, 0x22, //0x00001b7d movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001b80 movq %r13, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001b83 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x75, 0xc8, //0x00001b88 movq $-56(%rbp), %r14 + 0x0f, 0x8f, 0xee, 0xe6, 0xff, 0xff, //0x00001b8c jg LBB0_3 + 0xe9, 0x52, 0x0c, 0x00, 0x00, //0x00001b92 jmp LBB0_501 + //0x00001b97 LBB0_344 + 0x4d, 0x29, 0xfe, //0x00001b97 subq %r15, %r14 + 0x0f, 0xbc, 0xc3, //0x00001b9a bsfl %ebx, %eax + 0x4c, 0x01, 0xf0, //0x00001b9d addq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001ba0 notq %rax + 0x49, 0x89, 0xc6, //0x00001ba3 movq %rax, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001ba6 movq $-48(%rbp), %rdx + 0xe9, 0x24, 0xf5, 0xff, 0xff, //0x00001baa jmp LBB0_197 + //0x00001baf LBB0_345 + 0x4d, 0x29, 0xfb, //0x00001baf subq %r15, %r11 + 0x45, 0x0f, 0xbc, 0xf1, //0x00001bb2 bsfl %r9d, %r14d + //0x00001bb6 LBB0_346 + 0x4d, 0x01, 0xde, //0x00001bb6 addq %r11, %r14 + 0x49, 0xf7, 0xd6, //0x00001bb9 notq %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001bbc movq $-48(%rbp), %rdx + 0xe9, 0x0e, 0xf5, 0xff, 0xff, //0x00001bc0 jmp LBB0_197 + //0x00001bc5 LBB0_347 + 0x48, 0xf7, 0xd7, //0x00001bc5 notq %rdi + 0x49, 0x89, 0xfe, //0x00001bc8 movq %rdi, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001bcb movq $-48(%rbp), %rdx + 0xe9, 0xff, 0xf4, 0xff, 0xff, //0x00001bcf jmp LBB0_197 + //0x00001bd4 LBB0_101 + 0x4c, 0x89, 0xf9, //0x00001bd4 movq %r15, %rcx + 0x4c, 0x89, 0xc3, //0x00001bd7 movq %r8, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001bda cmpq $32, %rcx + 0x0f, 0x82, 0x02, 0x06, 0x00, 0x00, //0x00001bde jb LBB0_402 + //0x00001be4 LBB0_102 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001be4 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001be8 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001bec vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001bf0 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001bf4 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001bf8 testl %esi, %esi + 0x0f, 0x85, 0x6f, 0x05, 0x00, 0x00, //0x00001bfa jne LBB0_397 + 0x4d, 0x85, 0xf6, //0x00001c00 testq %r14, %r14 + 0x0f, 0x85, 0x85, 0x05, 0x00, 0x00, //0x00001c03 jne LBB0_399 + 0x45, 0x31, 0xf6, //0x00001c09 xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001c0c testq %rdx, %rdx + 0x0f, 0x84, 0xc9, 0x05, 0x00, 0x00, //0x00001c0f je LBB0_401 + //0x00001c15 LBB0_107 + 0x4d, 0x89, 0xe0, //0x00001c15 movq %r12, %r8 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001c18 bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001c1c subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001c1f leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001c24 movq $-56(%rbp), %r14 + //0x00001c28 LBB0_205 + 0x4d, 0x85, 0xe4, //0x00001c28 testq %r12, %r12 + 0x0f, 0x88, 0x87, 0x0b, 0x00, 0x00, //0x00001c2b js LBB0_478 + 0x4d, 0x89, 0x22, //0x00001c31 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001c34 movq %r13, %rcx + 0x4d, 0x85, 0xc0, //0x00001c37 testq %r8, %r8 + 0x0f, 0x8e, 0xa9, 0x0b, 0x00, 0x00, //0x00001c3a jle LBB0_501 + 0x49, 0x8b, 0x06, //0x00001c40 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001c43 cmpq $4095, %rax + 0x0f, 0x8f, 0x33, 0x0b, 0x00, 0x00, //0x00001c49 jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001c4f leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00001c53 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001c56 movq $4, $8(%r14,%rax,8) + 0xe9, 0x1c, 0xe6, 0xff, 0xff, //0x00001c5f jmp LBB0_3 + //0x00001c64 LBB0_120 + 0x4c, 0x89, 0xf3, //0x00001c64 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001c67 movq $-96(%rbp), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001c6b movq $-56(%rbp), %r14 + 0x48, 0x83, 0xfb, 0x20, //0x00001c6f cmpq $32, %rbx + 0x0f, 0x82, 0xa3, 0x06, 0x00, 0x00, //0x00001c73 jb LBB0_420 + //0x00001c79 LBB0_121 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001c79 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001c7f vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001c83 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001c87 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001c8b vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001c8f vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001c93 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c98 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001c9c vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001ca0 testl %ecx, %ecx + 0x0f, 0x85, 0xd0, 0x05, 0x00, 0x00, //0x00001ca2 jne LBB0_411 + 0x4d, 0x85, 0xff, //0x00001ca8 testq %r15, %r15 + 0x0f, 0x85, 0xdf, 0x05, 0x00, 0x00, //0x00001cab jne LBB0_413 + 0x45, 0x31, 0xff, //0x00001cb1 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001cb4 testq %rsi, %rsi + 0x0f, 0x84, 0x1e, 0x06, 0x00, 0x00, //0x00001cb7 je LBB0_414 + //0x00001cbd LBB0_124 + 0x48, 0x0f, 0xbc, 0xce, //0x00001cbd bsfq %rsi, %rcx + 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x00001cc1 jmp LBB0_415 + //0x00001cc6 LBB0_348 + 0x49, 0x89, 0xce, //0x00001cc6 movq %rcx, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001cc9 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00001cd0 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00001cd3 movq $-48(%rbp), %rdx + 0x0f, 0x85, 0xf4, 0xf2, 0xff, 0xff, //0x00001cd7 jne LBB0_188 + 0xe9, 0xf3, 0x0a, 0x00, 0x00, //0x00001cdd jmp LBB0_481 + //0x00001ce2 LBB0_349 + 0x4d, 0x29, 0xca, //0x00001ce2 subq %r9, %r10 + 0x44, 0x0f, 0xbc, 0xfb, //0x00001ce5 bsfl %ebx, %r15d + 0x4d, 0x01, 0xd7, //0x00001ce9 addq %r10, %r15 + 0x49, 0xf7, 0xd7, //0x00001cec notq %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001cef movq $-48(%rbp), %r10 + 0xe9, 0x76, 0xfe, 0xff, 0xff, //0x00001cf3 jmp LBB0_342 + //0x00001cf8 LBB0_350 + 0x48, 0xf7, 0xd6, //0x00001cf8 notq %rsi + 0x49, 0x89, 0xf6, //0x00001cfb movq %rsi, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001cfe movq $-48(%rbp), %rdx + 0xe9, 0xcc, 0xf3, 0xff, 0xff, //0x00001d02 jmp LBB0_197 + //0x00001d07 LBB0_351 + 0x48, 0xf7, 0xd2, //0x00001d07 notq %rdx + 0x49, 0x89, 0xd7, //0x00001d0a movq %rdx, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001d0d movq $-48(%rbp), %r10 + 0xe9, 0x58, 0xfe, 0xff, 0xff, //0x00001d11 jmp LBB0_342 + //0x00001d16 LBB0_220 + 0x4c, 0x89, 0xf9, //0x00001d16 movq %r15, %rcx + 0x4c, 0x89, 0xc3, //0x00001d19 movq %r8, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001d1c cmpq $32, %rcx + 0x0f, 0x82, 0xfd, 0x07, 0x00, 0x00, //0x00001d20 jb LBB0_443 + //0x00001d26 LBB0_221 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001d26 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001d2a vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001d2e vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001d32 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001d36 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001d3a testl %esi, %esi + 0x0f, 0x85, 0x6a, 0x07, 0x00, 0x00, //0x00001d3c jne LBB0_438 + 0x4d, 0x85, 0xf6, //0x00001d42 testq %r14, %r14 + 0x0f, 0x85, 0x80, 0x07, 0x00, 0x00, //0x00001d45 jne LBB0_440 + 0x45, 0x31, 0xf6, //0x00001d4b xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001d4e testq %rdx, %rdx + 0x0f, 0x84, 0xc4, 0x07, 0x00, 0x00, //0x00001d51 je LBB0_442 + //0x00001d57 LBB0_226 + 0x4d, 0x89, 0xe0, //0x00001d57 movq %r12, %r8 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001d5a bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001d5e subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001d61 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001d66 movq $-56(%rbp), %r14 + //0x00001d6a LBB0_323 + 0x4d, 0x85, 0xe4, //0x00001d6a testq %r12, %r12 + 0x0f, 0x88, 0x45, 0x0a, 0x00, 0x00, //0x00001d6d js LBB0_478 + 0x4d, 0x89, 0x22, //0x00001d73 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001d76 movq %r13, %rcx + 0x4d, 0x85, 0xc0, //0x00001d79 testq %r8, %r8 + 0x0f, 0x8f, 0xfe, 0xe4, 0xff, 0xff, //0x00001d7c jg LBB0_3 + 0xe9, 0x62, 0x0a, 0x00, 0x00, //0x00001d82 jmp LBB0_501 + //0x00001d87 LBB0_352 + 0x49, 0xf7, 0xde, //0x00001d87 negq %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001d8a movq $-48(%rbp), %rdx + 0xe9, 0x40, 0xf3, 0xff, 0xff, //0x00001d8e jmp LBB0_197 + //0x00001d93 LBB0_259 + 0x4c, 0x89, 0xf3, //0x00001d93 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001d96 movq $-96(%rbp), %r12 + 0x48, 0x83, 0xfb, 0x20, //0x00001d9a cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001d9e movq $-56(%rbp), %r14 + 0x0f, 0x82, 0xb1, 0x08, 0x00, 0x00, //0x00001da2 jb LBB0_460 + //0x00001da8 LBB0_260 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001da8 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001dae vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001db2 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001db6 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001dba vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001dbe vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001dc2 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001dc7 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001dcb vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001dcf testl %ecx, %ecx + 0x0f, 0x85, 0xde, 0x07, 0x00, 0x00, //0x00001dd1 jne LBB0_452 + 0x4d, 0x85, 0xff, //0x00001dd7 testq %r15, %r15 + 0x0f, 0x85, 0xed, 0x07, 0x00, 0x00, //0x00001dda jne LBB0_454 + 0x45, 0x31, 0xff, //0x00001de0 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001de3 testq %rsi, %rsi + 0x0f, 0x84, 0x2c, 0x08, 0x00, 0x00, //0x00001de6 je LBB0_455 + //0x00001dec LBB0_263 + 0x48, 0x0f, 0xbc, 0xce, //0x00001dec bsfq %rsi, %rcx + 0xe9, 0x28, 0x08, 0x00, 0x00, //0x00001df0 jmp LBB0_456 + //0x00001df5 LBB0_353 + 0x4d, 0x29, 0xcf, //0x00001df5 subq %r9, %r15 + 0x0f, 0xbc, 0xc3, //0x00001df8 bsfl %ebx, %eax + 0x4c, 0x01, 0xf8, //0x00001dfb addq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00001dfe notq %rax + 0x49, 0x89, 0xc7, //0x00001e01 movq %rax, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e04 movq $-48(%rbp), %r10 + 0xe9, 0x61, 0xfd, 0xff, 0xff, //0x00001e08 jmp LBB0_342 + //0x00001e0d LBB0_354 + 0x48, 0xf7, 0xd7, //0x00001e0d notq %rdi + 0x49, 0x89, 0xff, //0x00001e10 movq %rdi, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e13 movq $-48(%rbp), %r10 + 0xe9, 0x52, 0xfd, 0xff, 0xff, //0x00001e17 jmp LBB0_342 + //0x00001e1c LBB0_355 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e1c movq $-1, %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e23 movq $-1, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e2a movq $-1, %rax + 0x4d, 0x89, 0xfe, //0x00001e31 movq %r15, %r14 + 0x49, 0x83, 0xfa, 0x10, //0x00001e34 cmpq $16, %r10 + 0x0f, 0x83, 0xc0, 0xea, 0xff, 0xff, //0x00001e38 jae LBB0_151 + 0xe9, 0x0d, 0xec, 0xff, 0xff, //0x00001e3e jmp LBB0_169 + //0x00001e43 LBB0_356 + 0x4d, 0x89, 0xcb, //0x00001e43 movq %r9, %r11 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e46 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x00001e4d xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001e50 cmpq $32, %rcx + 0x0f, 0x83, 0x2f, 0xfc, 0xff, 0xff, //0x00001e54 jae LBB0_55 + 0xe9, 0x38, 0x01, 0x00, 0x00, //0x00001e5a jmp LBB0_370 + //0x00001e5f LBB0_357 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e5f movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00001e66 xorl %r15d, %r15d + 0x49, 0x83, 0xfa, 0x20, //0x00001e69 cmpq $32, %r10 + 0x0f, 0x83, 0x8a, 0xfc, 0xff, 0xff, //0x00001e6d jae LBB0_85 + 0xe9, 0x57, 0x02, 0x00, 0x00, //0x00001e73 jmp LBB0_388 + //0x00001e78 LBB0_358 + 0x49, 0x89, 0xcf, //0x00001e78 movq %rcx, %r15 + 0x4d, 0x85, 0xdb, //0x00001e7b testq %r11, %r11 + 0x0f, 0x85, 0xf9, 0xfa, 0xff, 0xff, //0x00001e7e jne LBB0_327 + 0xe9, 0xd5, 0x0a, 0x00, 0x00, //0x00001e84 jmp LBB0_497 + //0x00001e89 LBB0_359 + 0x48, 0xf7, 0xd6, //0x00001e89 notq %rsi + 0x49, 0x89, 0xf7, //0x00001e8c movq %rsi, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e8f movq $-48(%rbp), %r10 + 0xe9, 0xd6, 0xfc, 0xff, 0xff, //0x00001e93 jmp LBB0_342 + //0x00001e98 LBB0_360 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e98 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001e9f xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001ea2 cmpq $32, %rcx + 0x0f, 0x83, 0x38, 0xfd, 0xff, 0xff, //0x00001ea6 jae LBB0_102 + 0xe9, 0x35, 0x03, 0x00, 0x00, //0x00001eac jmp LBB0_402 + //0x00001eb1 LBB0_361 + 0x49, 0x89, 0xc8, //0x00001eb1 movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001eb4 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001ebb xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001ebe cmpq $32, %rbx + 0x0f, 0x83, 0xb1, 0xfd, 0xff, 0xff, //0x00001ec2 jae LBB0_121 + 0xe9, 0x4f, 0x04, 0x00, 0x00, //0x00001ec8 jmp LBB0_420 + //0x00001ecd LBB0_365 + 0x49, 0xf7, 0xdf, //0x00001ecd negq %r15 + 0xe9, 0x99, 0xfc, 0xff, 0xff, //0x00001ed0 jmp LBB0_342 + //0x00001ed5 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001ed5 movq $-1, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001edc movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001ee3 movq $-1, %r12 + 0x4d, 0x89, 0xcf, //0x00001eea movq %r9, %r15 + 0xe9, 0xdb, 0xf7, 0xff, 0xff, //0x00001eed jmp LBB0_290 + //0x00001ef2 LBB0_363 + 0x49, 0x89, 0xd1, //0x00001ef2 movq %rdx, %r9 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ef5 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001efc xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001eff cmpq $32, %rcx + 0x0f, 0x83, 0x1d, 0xfe, 0xff, 0xff, //0x00001f03 jae LBB0_221 + 0xe9, 0x15, 0x06, 0x00, 0x00, //0x00001f09 jmp LBB0_443 + //0x00001f0e LBB0_364 + 0x49, 0x89, 0xc8, //0x00001f0e movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001f11 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001f18 xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001f1b cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001f1f movq $-56(%rbp), %r14 + 0x0f, 0x83, 0x7f, 0xfe, 0xff, 0xff, //0x00001f23 jae LBB0_260 + 0xe9, 0x2b, 0x07, 0x00, 0x00, //0x00001f29 jmp LBB0_460 + //0x00001f2e LBB0_366 + 0x49, 0x83, 0xf8, 0xff, //0x00001f2e cmpq $-1, %r8 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00001f32 jne LBB0_368 + 0x48, 0x89, 0xd8, //0x00001f38 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x00001f3b subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xc6, //0x00001f3e bsfq %rsi, %r8 + 0x49, 0x01, 0xc0, //0x00001f42 addq %rax, %r8 + //0x00001f45 LBB0_368 + 0x44, 0x89, 0xf0, //0x00001f45 movl %r14d, %eax + 0xf7, 0xd0, //0x00001f48 notl %eax + 0x21, 0xf0, //0x00001f4a andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00001f4c leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x00001f50 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x00001f53 movl %r9d, %edi + 0xf7, 0xd7, //0x00001f56 notl %edi + 0x21, 0xf7, //0x00001f58 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f5a andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x00001f60 xorl %r14d, %r14d + 0x01, 0xc7, //0x00001f63 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x00001f65 setb %r14b + 0x01, 0xff, //0x00001f69 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00001f6b xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x00001f71 andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001f74 movl $4294967295, %eax + 0x31, 0xf8, //0x00001f79 xorl %edi, %eax + 0x21, 0xc2, //0x00001f7b andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00001f7d movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001f81 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xd2, //0x00001f86 testq %rdx, %rdx + 0x0f, 0x85, 0x2b, 0xfb, 0xff, 0xff, //0x00001f89 jne LBB0_60 + //0x00001f8f LBB0_369 + 0x48, 0x83, 0xc3, 0x20, //0x00001f8f addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00001f93 addq $-32, %rcx + //0x00001f97 LBB0_370 + 0x4d, 0x85, 0xf6, //0x00001f97 testq %r14, %r14 + 0x0f, 0x85, 0x1c, 0x04, 0x00, 0x00, //0x00001f9a jne LBB0_429 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001fa0 movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00001fa4 testq %rcx, %rcx + 0x0f, 0x84, 0xeb, 0x07, 0x00, 0x00, //0x00001fa7 je LBB0_476 + //0x00001fad LBB0_372 + 0x4c, 0x89, 0xdf, //0x00001fad movq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00001fb0 notq %rdi + //0x00001fb3 LBB0_373 + 0x4c, 0x8d, 0x63, 0x01, //0x00001fb3 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00001fb7 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00001fba cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00001fbd je LBB0_378 + 0x48, 0x8d, 0x71, 0xff, //0x00001fc3 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00001fc7 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001fca je LBB0_376 + 0x48, 0x89, 0xf1, //0x00001fd0 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00001fd3 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00001fd6 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00001fd9 jne LBB0_373 + 0xe9, 0xb4, 0x07, 0x00, 0x00, //0x00001fdf jmp LBB0_476 + //0x00001fe4 LBB0_376 + 0x48, 0x85, 0xf6, //0x00001fe4 testq %rsi, %rsi + 0x0f, 0x84, 0xba, 0x09, 0x00, 0x00, //0x00001fe7 je LBB0_433 + 0x49, 0x01, 0xfc, //0x00001fed addq %rdi, %r12 + 0x49, 0x83, 0xf8, 0xff, //0x00001ff0 cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xc4, //0x00001ff4 cmoveq %r12, %r8 + 0x48, 0x83, 0xc3, 0x02, //0x00001ff8 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00001ffc addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00002000 movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002003 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002007 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000200b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002010 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002013 jne LBB0_373 + 0xe9, 0x7a, 0x07, 0x00, 0x00, //0x00002019 jmp LBB0_476 + //0x0000201e LBB0_378 + 0x4d, 0x29, 0xdc, //0x0000201e subq %r11, %r12 + 0xe9, 0xa4, 0xfa, 0xff, 0xff, //0x00002021 jmp LBB0_184 + //0x00002026 LBB0_379 + 0x49, 0x83, 0xf8, 0xff, //0x00002026 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000202a jne LBB0_381 + 0x4c, 0x89, 0xe2, //0x00002030 movq %r12, %rdx + 0x48, 0x2b, 0x55, 0xc0, //0x00002033 subq $-64(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xc1, //0x00002037 bsfq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x0000203b addq %rdx, %r8 + //0x0000203e LBB0_381 + 0x44, 0x89, 0xfa, //0x0000203e movl %r15d, %edx + 0xf7, 0xd2, //0x00002041 notl %edx + 0x21, 0xca, //0x00002043 andl %ecx, %edx + 0x8d, 0x1c, 0x12, //0x00002045 leal (%rdx,%rdx), %ebx + 0x44, 0x09, 0xfb, //0x00002048 orl %r15d, %ebx + 0x89, 0xdf, //0x0000204b movl %ebx, %edi + 0xf7, 0xd7, //0x0000204d notl %edi + 0x21, 0xcf, //0x0000204f andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002051 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00002057 xorl %r15d, %r15d + 0x01, 0xd7, //0x0000205a addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000205c setb %r15b + 0x01, 0xff, //0x00002060 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002062 xorl $1431655765, %edi + 0x21, 0xdf, //0x00002068 andl %ebx, %edi + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x0000206a movl $4294967295, %ecx + 0x31, 0xf9, //0x0000206f xorl %edi, %ecx + 0x21, 0xce, //0x00002071 andl %ecx, %esi + 0x4c, 0x8b, 0x75, 0xc8, //0x00002073 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002077 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000207c testq %rsi, %rsi + 0x0f, 0x85, 0xbc, 0xfa, 0xff, 0xff, //0x0000207f jne LBB0_88 + //0x00002085 LBB0_382 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002085 movl $64, %ecx + //0x0000208a LBB0_383 + 0x49, 0x0f, 0xbc, 0xd1, //0x0000208a bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x0000208e testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002091 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002096 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x0000209a testq %rsi, %rsi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000209d je LBB0_386 + 0x4c, 0x2b, 0x65, 0xc0, //0x000020a3 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x000020a7 cmpq %rcx, %rdi + 0x0f, 0x82, 0x12, 0x09, 0x00, 0x00, //0x000020aa jb LBB0_511 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x000020b0 leaq $1(%r12,%rcx), %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x000020b5 movq $-48(%rbp), %r10 + 0xe9, 0x0c, 0xfa, 0xff, 0xff, //0x000020b9 jmp LBB0_184 + //0x000020be LBB0_386 + 0x45, 0x85, 0xc9, //0x000020be testl %r9d, %r9d + 0x0f, 0x85, 0x0d, 0x09, 0x00, 0x00, //0x000020c1 jne LBB0_512 + 0x49, 0x83, 0xc4, 0x20, //0x000020c7 addq $32, %r12 + 0x49, 0x83, 0xc2, 0xe0, //0x000020cb addq $-32, %r10 + //0x000020cf LBB0_388 + 0x4d, 0x85, 0xff, //0x000020cf testq %r15, %r15 + 0x0f, 0x85, 0x1f, 0x03, 0x00, 0x00, //0x000020d2 jne LBB0_431 + 0x48, 0x8b, 0x45, 0xc0, //0x000020d8 movq $-64(%rbp), %rax + 0x4d, 0x85, 0xd2, //0x000020dc testq %r10, %r10 + 0x0f, 0x84, 0xc2, 0x08, 0x00, 0x00, //0x000020df je LBB0_433 + //0x000020e5 LBB0_390 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x000020e5 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x000020ea cmpb $34, %cl + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x000020ed je LBB0_396 + 0x80, 0xf9, 0x5c, //0x000020f3 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000020f6 je LBB0_394 + 0x80, 0xf9, 0x1f, //0x000020fc cmpb $31, %cl + 0x0f, 0x86, 0xed, 0x08, 0x00, 0x00, //0x000020ff jbe LBB0_513 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002105 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000210c movl $1, %edx + 0x49, 0x01, 0xd4, //0x00002111 addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002114 addq %rcx, %r10 + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002117 jne LBB0_390 + 0xe9, 0x85, 0x08, 0x00, 0x00, //0x0000211d jmp LBB0_433 + //0x00002122 LBB0_394 + 0x49, 0x83, 0xfa, 0x01, //0x00002122 cmpq $1, %r10 + 0x0f, 0x84, 0x7b, 0x08, 0x00, 0x00, //0x00002126 je LBB0_433 + 0x4c, 0x89, 0xe1, //0x0000212c movq %r12, %rcx + 0x48, 0x29, 0xc1, //0x0000212f subq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002132 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002136 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000213a movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00002141 movl $2, %edx + 0x4c, 0x8b, 0x75, 0xc8, //0x00002146 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000214a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x0000214f addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002152 addq %rcx, %r10 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00002155 jne LBB0_390 + 0xe9, 0x47, 0x08, 0x00, 0x00, //0x0000215b jmp LBB0_433 + //0x00002160 LBB0_396 + 0x49, 0x29, 0xc4, //0x00002160 subq %rax, %r12 + 0x49, 0xff, 0xc4, //0x00002163 incq %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002166 movq $-48(%rbp), %r10 + 0xe9, 0x5b, 0xf9, 0xff, 0xff, //0x0000216a jmp LBB0_184 + //0x0000216f LBB0_397 + 0x4d, 0x89, 0xc8, //0x0000216f movq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00002172 cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00002176 jne LBB0_400 + 0x48, 0x89, 0xd8, //0x0000217c movq %rbx, %rax + 0x4c, 0x29, 0xc0, //0x0000217f subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00002182 bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00002186 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002189 jmp LBB0_400 + //0x0000218e LBB0_399 + 0x4d, 0x89, 0xc8, //0x0000218e movq %r9, %r8 + //0x00002191 LBB0_400 + 0x44, 0x89, 0xf0, //0x00002191 movl %r14d, %eax + 0xf7, 0xd0, //0x00002194 notl %eax + 0x21, 0xf0, //0x00002196 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00002198 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x0000219c orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x0000219f movl %r9d, %edi + 0xf7, 0xd7, //0x000021a2 notl %edi + 0x21, 0xf7, //0x000021a4 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000021a6 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x000021ac xorl %r14d, %r14d + 0x01, 0xc7, //0x000021af addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000021b1 setb %r14b + 0x01, 0xff, //0x000021b5 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000021b7 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000021bd andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000021c0 movl $4294967295, %eax + 0x31, 0xf8, //0x000021c5 xorl %edi, %eax + 0x21, 0xc2, //0x000021c7 andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000021c9 movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000021cd vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xc1, //0x000021d2 movq %r8, %r9 + 0x48, 0x85, 0xd2, //0x000021d5 testq %rdx, %rdx + 0x0f, 0x85, 0x37, 0xfa, 0xff, 0xff, //0x000021d8 jne LBB0_107 + //0x000021de LBB0_401 + 0x48, 0x83, 0xc3, 0x20, //0x000021de addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x000021e2 addq $-32, %rcx + //0x000021e6 LBB0_402 + 0x4d, 0x85, 0xf6, //0x000021e6 testq %r14, %r14 + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x000021e9 jne LBB0_434 + 0x4c, 0x8b, 0x75, 0xc8, //0x000021ef movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x000021f3 testq %rcx, %rcx + 0x0f, 0x84, 0xc6, 0x05, 0x00, 0x00, //0x000021f6 je LBB0_479 + //0x000021fc LBB0_404 + 0x4d, 0x89, 0xe0, //0x000021fc movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x000021ff movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x00002202 notq %rdi + //0x00002205 LBB0_405 + 0x4c, 0x8d, 0x63, 0x01, //0x00002205 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00002209 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x0000220c cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x0000220f je LBB0_410 + 0x48, 0x8d, 0x71, 0xff, //0x00002215 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002219 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000221c je LBB0_408 + 0x48, 0x89, 0xf1, //0x00002222 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002225 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002228 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x0000222b jne LBB0_405 + 0xe9, 0x8c, 0x05, 0x00, 0x00, //0x00002231 jmp LBB0_479 + //0x00002236 LBB0_408 + 0x48, 0x85, 0xf6, //0x00002236 testq %rsi, %rsi + 0x0f, 0x84, 0xcf, 0x07, 0x00, 0x00, //0x00002239 je LBB0_516 + 0x49, 0x01, 0xfc, //0x0000223f addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x00002242 cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002246 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x0000224a addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000224e addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00002252 movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002255 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002259 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000225d vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002262 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002265 jne LBB0_405 + 0xe9, 0x52, 0x05, 0x00, 0x00, //0x0000226b jmp LBB0_479 + //0x00002270 LBB0_410 + 0x4d, 0x29, 0xcc, //0x00002270 subq %r9, %r12 + 0xe9, 0xb0, 0xf9, 0xff, 0xff, //0x00002273 jmp LBB0_205 + //0x00002278 LBB0_411 + 0x49, 0x83, 0xfb, 0xff, //0x00002278 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000227c jne LBB0_413 + 0x4c, 0x89, 0xe0, //0x00002282 movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x00002285 subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002289 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x0000228d addq %rax, %r11 + //0x00002290 LBB0_413 + 0x44, 0x89, 0xf8, //0x00002290 movl %r15d, %eax + 0xf7, 0xd0, //0x00002293 notl %eax + 0x21, 0xc8, //0x00002295 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00002297 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x0000229a orl %r15d, %edx + 0x89, 0xd7, //0x0000229d movl %edx, %edi + 0xf7, 0xd7, //0x0000229f notl %edi + 0x21, 0xcf, //0x000022a1 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022a3 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000022a9 xorl %r15d, %r15d + 0x01, 0xc7, //0x000022ac addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000022ae setb %r15b + 0x01, 0xff, //0x000022b2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000022b4 xorl $1431655765, %edi + 0x21, 0xd7, //0x000022ba andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000022bc movl $4294967295, %eax + 0x31, 0xf8, //0x000022c1 xorl %edi, %eax + 0x21, 0xc6, //0x000022c3 andl %eax, %esi + 0x4c, 0x8b, 0x55, 0xd0, //0x000022c5 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000022c9 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000022cd vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x000022d2 testq %rsi, %rsi + 0x0f, 0x85, 0xe2, 0xf9, 0xff, 0xff, //0x000022d5 jne LBB0_124 + //0x000022db LBB0_414 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000022db movl $64, %ecx + //0x000022e0 LBB0_415 + 0x49, 0x0f, 0xbc, 0xd1, //0x000022e0 bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x000022e4 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x000022e7 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x000022ec cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x000022f0 testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000022f3 je LBB0_418 + 0x4c, 0x2b, 0x65, 0xc0, //0x000022f9 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x000022fd cmpq %rcx, %rdi + 0x0f, 0x83, 0x1a, 0xee, 0xff, 0xff, //0x00002300 jae LBB0_204 + 0xe9, 0xd5, 0x06, 0x00, 0x00, //0x00002306 jmp LBB0_417 + //0x0000230b LBB0_418 + 0x45, 0x85, 0xc9, //0x0000230b testl %r9d, %r9d + 0x0f, 0x85, 0xe6, 0x06, 0x00, 0x00, //0x0000230e jne LBB0_514 + 0x49, 0x83, 0xc4, 0x20, //0x00002314 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002318 addq $-32, %rbx + //0x0000231c LBB0_420 + 0x4d, 0x85, 0xff, //0x0000231c testq %r15, %r15 + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x0000231f jne LBB0_436 + 0x48, 0x8b, 0x75, 0xc0, //0x00002325 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002329 testq %rbx, %rbx + 0x0f, 0x84, 0x90, 0x04, 0x00, 0x00, //0x0000232c je LBB0_479 + //0x00002332 LBB0_422 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002332 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002337 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x0000233a je LBB0_428 + 0x80, 0xf9, 0x5c, //0x00002340 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002343 je LBB0_426 + 0x80, 0xf9, 0x1f, //0x00002349 cmpb $31, %cl + 0x0f, 0x86, 0xb4, 0x06, 0x00, 0x00, //0x0000234c jbe LBB0_515 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002352 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002359 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000235e addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x00002361 addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002364 jne LBB0_422 + 0xe9, 0x53, 0x04, 0x00, 0x00, //0x0000236a jmp LBB0_479 + //0x0000236f LBB0_426 + 0x48, 0x83, 0xfb, 0x01, //0x0000236f cmpq $1, %rbx + 0x0f, 0x84, 0x95, 0x06, 0x00, 0x00, //0x00002373 je LBB0_516 + 0x4c, 0x89, 0xe0, //0x00002379 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x0000237c subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000237f cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002383 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002387 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000238e movl $2, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002393 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002397 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000239b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x000023a0 addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x000023a3 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x000023a6 jne LBB0_422 + 0xe9, 0x11, 0x04, 0x00, 0x00, //0x000023ac jmp LBB0_479 + //0x000023b1 LBB0_428 + 0x49, 0x29, 0xf4, //0x000023b1 subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000023b4 incq %r12 + 0xe9, 0x6c, 0xf8, 0xff, 0xff, //0x000023b7 jmp LBB0_205 + //0x000023bc LBB0_429 + 0x48, 0x85, 0xc9, //0x000023bc testq %rcx, %rcx + 0x0f, 0x84, 0xe2, 0x05, 0x00, 0x00, //0x000023bf je LBB0_433 + 0x4c, 0x89, 0xd8, //0x000023c5 movq %r11, %rax + 0x48, 0xf7, 0xd0, //0x000023c8 notq %rax + 0x48, 0x01, 0xd8, //0x000023cb addq %rbx, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023ce cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023d2 cmoveq %rax, %r8 + 0x48, 0xff, 0xc3, //0x000023d6 incq %rbx + 0x48, 0xff, 0xc9, //0x000023d9 decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x000023dc movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000023e0 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000023e4 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x000023e9 testq %rcx, %rcx + 0x0f, 0x85, 0xbb, 0xfb, 0xff, 0xff, //0x000023ec jne LBB0_372 + 0xe9, 0xa1, 0x03, 0x00, 0x00, //0x000023f2 jmp LBB0_476 + //0x000023f7 LBB0_431 + 0x4d, 0x85, 0xd2, //0x000023f7 testq %r10, %r10 + 0x0f, 0x84, 0xa7, 0x05, 0x00, 0x00, //0x000023fa je LBB0_433 + 0x48, 0x8b, 0x45, 0xc0, //0x00002400 movq $-64(%rbp), %rax + 0x48, 0x89, 0xc1, //0x00002404 movq %rax, %rcx + 0x48, 0xf7, 0xd1, //0x00002407 notq %rcx + 0x4c, 0x01, 0xe1, //0x0000240a addq %r12, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000240d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002411 cmoveq %rcx, %r8 + 0x49, 0xff, 0xc4, //0x00002415 incq %r12 + 0x49, 0xff, 0xca, //0x00002418 decq %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000241b movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000241f vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x85, 0xd2, //0x00002424 testq %r10, %r10 + 0x0f, 0x85, 0xb8, 0xfc, 0xff, 0xff, //0x00002427 jne LBB0_390 + 0xe9, 0x75, 0x05, 0x00, 0x00, //0x0000242d jmp LBB0_433 + //0x00002432 LBB0_434 + 0x48, 0x85, 0xc9, //0x00002432 testq %rcx, %rcx + 0x0f, 0x84, 0xd3, 0x05, 0x00, 0x00, //0x00002435 je LBB0_516 + 0x4c, 0x89, 0xc8, //0x0000243b movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x0000243e notq %rax + 0x48, 0x01, 0xd8, //0x00002441 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002444 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002448 cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x0000244c incq %rbx + 0x48, 0xff, 0xc9, //0x0000244f decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002452 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002456 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000245a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x0000245f testq %rcx, %rcx + 0x0f, 0x85, 0x94, 0xfd, 0xff, 0xff, //0x00002462 jne LBB0_404 + 0xe9, 0x55, 0x03, 0x00, 0x00, //0x00002468 jmp LBB0_479 + //0x0000246d LBB0_436 + 0x48, 0x85, 0xdb, //0x0000246d testq %rbx, %rbx + 0x0f, 0x84, 0x98, 0x05, 0x00, 0x00, //0x00002470 je LBB0_516 + 0x48, 0x8b, 0x75, 0xc0, //0x00002476 movq $-64(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x0000247a movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x0000247d notq %rax + 0x4c, 0x01, 0xe0, //0x00002480 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002483 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002487 cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x0000248b incq %r12 + 0x48, 0xff, 0xcb, //0x0000248e decq %rbx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002491 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002495 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002499 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x0000249e testq %rbx, %rbx + 0x0f, 0x85, 0x8b, 0xfe, 0xff, 0xff, //0x000024a1 jne LBB0_422 + 0xe9, 0x16, 0x03, 0x00, 0x00, //0x000024a7 jmp LBB0_479 + //0x000024ac LBB0_438 + 0x4d, 0x89, 0xc8, //0x000024ac movq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x000024af cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x000024b3 jne LBB0_441 + 0x48, 0x89, 0xd8, //0x000024b9 movq %rbx, %rax + 0x4c, 0x29, 0xc0, //0x000024bc subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x000024bf bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x000024c3 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000024c6 jmp LBB0_441 + //0x000024cb LBB0_440 + 0x4d, 0x89, 0xc8, //0x000024cb movq %r9, %r8 + //0x000024ce LBB0_441 + 0x44, 0x89, 0xf0, //0x000024ce movl %r14d, %eax + 0xf7, 0xd0, //0x000024d1 notl %eax + 0x21, 0xf0, //0x000024d3 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x000024d5 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x000024d9 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x000024dc movl %r9d, %edi + 0xf7, 0xd7, //0x000024df notl %edi + 0x21, 0xf7, //0x000024e1 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000024e3 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x000024e9 xorl %r14d, %r14d + 0x01, 0xc7, //0x000024ec addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000024ee setb %r14b + 0x01, 0xff, //0x000024f2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000024f4 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000024fa andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000024fd movl $4294967295, %eax + 0x31, 0xc7, //0x00002502 xorl %eax, %edi + 0x21, 0xfa, //0x00002504 andl %edi, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002506 movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000250a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xc1, //0x0000250f movq %r8, %r9 + 0x48, 0x85, 0xd2, //0x00002512 testq %rdx, %rdx + 0x0f, 0x85, 0x3c, 0xf8, 0xff, 0xff, //0x00002515 jne LBB0_226 + //0x0000251b LBB0_442 + 0x48, 0x83, 0xc3, 0x20, //0x0000251b addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x0000251f addq $-32, %rcx + //0x00002523 LBB0_443 + 0x4d, 0x85, 0xf6, //0x00002523 testq %r14, %r14 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00002526 jne LBB0_469 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000252c movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00002530 testq %rcx, %rcx + 0x0f, 0x84, 0x89, 0x02, 0x00, 0x00, //0x00002533 je LBB0_479 + //0x00002539 LBB0_445 + 0x4d, 0x89, 0xe0, //0x00002539 movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x0000253c movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x0000253f notq %rdi + //0x00002542 LBB0_446 + 0x4c, 0x8d, 0x63, 0x01, //0x00002542 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00002546 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00002549 cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x0000254c je LBB0_451 + 0x48, 0x8d, 0x71, 0xff, //0x00002552 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002556 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002559 je LBB0_449 + 0x48, 0x89, 0xf1, //0x0000255f movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002562 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002565 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00002568 jne LBB0_446 + 0xe9, 0x4f, 0x02, 0x00, 0x00, //0x0000256e jmp LBB0_479 + //0x00002573 LBB0_449 + 0x48, 0x85, 0xf6, //0x00002573 testq %rsi, %rsi + 0x0f, 0x84, 0x92, 0x04, 0x00, 0x00, //0x00002576 je LBB0_516 + 0x49, 0x01, 0xfc, //0x0000257c addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x0000257f cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002583 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x00002587 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000258b addq $-2, %rcx + 0x48, 0x89, 0xce, //0x0000258f movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002592 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002596 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000259a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000259f testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x000025a2 jne LBB0_446 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x000025a8 jmp LBB0_479 + //0x000025ad LBB0_451 + 0x4d, 0x29, 0xcc, //0x000025ad subq %r9, %r12 + 0xe9, 0xb5, 0xf7, 0xff, 0xff, //0x000025b0 jmp LBB0_323 + //0x000025b5 LBB0_452 + 0x49, 0x83, 0xfb, 0xff, //0x000025b5 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000025b9 jne LBB0_454 + 0x4c, 0x89, 0xe0, //0x000025bf movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x000025c2 subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x000025c6 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x000025ca addq %rax, %r11 + //0x000025cd LBB0_454 + 0x44, 0x89, 0xf8, //0x000025cd movl %r15d, %eax + 0xf7, 0xd0, //0x000025d0 notl %eax + 0x21, 0xc8, //0x000025d2 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x000025d4 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x000025d7 orl %r15d, %edx + 0x89, 0xd7, //0x000025da movl %edx, %edi + 0xf7, 0xd7, //0x000025dc notl %edi + 0x21, 0xcf, //0x000025de andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000025e0 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000025e6 xorl %r15d, %r15d + 0x01, 0xc7, //0x000025e9 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000025eb setb %r15b + 0x01, 0xff, //0x000025ef addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000025f1 xorl $1431655765, %edi + 0x21, 0xd7, //0x000025f7 andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000025f9 movl $4294967295, %eax + 0x31, 0xf8, //0x000025fe xorl %edi, %eax + 0x21, 0xc6, //0x00002600 andl %eax, %esi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002602 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002606 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000260a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000260f testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xf7, 0xff, 0xff, //0x00002612 jne LBB0_263 + //0x00002618 LBB0_455 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002618 movl $64, %ecx + //0x0000261d LBB0_456 + 0x49, 0x0f, 0xbc, 0xd1, //0x0000261d bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x00002621 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002624 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002629 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x0000262d testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002630 je LBB0_458 + 0x4c, 0x2b, 0x65, 0xc0, //0x00002636 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x0000263a cmpq %rcx, %rdi + 0x0f, 0x83, 0x20, 0xf3, 0xff, 0xff, //0x0000263d jae LBB0_322 + 0xe9, 0x98, 0x03, 0x00, 0x00, //0x00002643 jmp LBB0_417 + //0x00002648 LBB0_458 + 0x45, 0x85, 0xc9, //0x00002648 testl %r9d, %r9d + 0x0f, 0x85, 0xa9, 0x03, 0x00, 0x00, //0x0000264b jne LBB0_514 + 0x49, 0x83, 0xc4, 0x20, //0x00002651 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002655 addq $-32, %rbx + //0x00002659 LBB0_460 + 0x4d, 0x85, 0xff, //0x00002659 testq %r15, %r15 + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x0000265c jne LBB0_471 + 0x48, 0x8b, 0x75, 0xc0, //0x00002662 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002666 testq %rbx, %rbx + 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00002669 je LBB0_479 + //0x0000266f LBB0_462 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x0000266f movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002674 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00002677 je LBB0_468 + 0x80, 0xf9, 0x5c, //0x0000267d cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002680 je LBB0_466 + 0x80, 0xf9, 0x1f, //0x00002686 cmpb $31, %cl + 0x0f, 0x86, 0x77, 0x03, 0x00, 0x00, //0x00002689 jbe LBB0_515 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000268f movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002696 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000269b addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x0000269e addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000026a1 jne LBB0_462 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x000026a7 jmp LBB0_479 + //0x000026ac LBB0_466 + 0x48, 0x83, 0xfb, 0x01, //0x000026ac cmpq $1, %rbx + 0x0f, 0x84, 0x58, 0x03, 0x00, 0x00, //0x000026b0 je LBB0_516 + 0x4c, 0x89, 0xe0, //0x000026b6 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x000026b9 subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000026bc cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x000026c0 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000026c4 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000026cb movl $2, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000026d0 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000026d4 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000026d8 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x000026dd addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x000026e0 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x000026e3 jne LBB0_462 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x000026e9 jmp LBB0_479 + //0x000026ee LBB0_468 + 0x49, 0x29, 0xf4, //0x000026ee subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000026f1 incq %r12 + 0xe9, 0x71, 0xf6, 0xff, 0xff, //0x000026f4 jmp LBB0_323 + //0x000026f9 LBB0_469 + 0x48, 0x85, 0xc9, //0x000026f9 testq %rcx, %rcx + 0x0f, 0x84, 0x0c, 0x03, 0x00, 0x00, //0x000026fc je LBB0_516 + 0x4c, 0x89, 0xc8, //0x00002702 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00002705 notq %rax + 0x48, 0x01, 0xd8, //0x00002708 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000270b cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000270f cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x00002713 incq %rbx + 0x48, 0xff, 0xc9, //0x00002716 decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002719 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000271d movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002721 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x00002726 testq %rcx, %rcx + 0x0f, 0x85, 0x0a, 0xfe, 0xff, 0xff, //0x00002729 jne LBB0_445 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x0000272f jmp LBB0_479 + //0x00002734 LBB0_471 + 0x48, 0x85, 0xdb, //0x00002734 testq %rbx, %rbx + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x00002737 je LBB0_516 + 0x48, 0x8b, 0x75, 0xc0, //0x0000273d movq $-64(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x00002741 movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x00002744 notq %rax + 0x4c, 0x01, 0xe0, //0x00002747 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000274a cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000274e cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x00002752 incq %r12 + 0x48, 0xff, 0xcb, //0x00002755 decq %rbx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002758 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000275c movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002760 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x00002765 testq %rbx, %rbx + 0x0f, 0x85, 0x01, 0xff, 0xff, 0xff, //0x00002768 jne LBB0_462 + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000276e jmp LBB0_479 + //0x00002773 LBB0_473 + 0x4d, 0x89, 0x2a, //0x00002773 movq %r13, (%r10) + //0x00002776 LBB0_474 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002776 movq $-1, %rcx + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000277d jmp LBB0_501 + //0x00002782 LBB0_489 + 0x48, 0xc7, 0xc1, 0xf9, 0xff, 0xff, 0xff, //0x00002782 movq $-7, %rcx + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x00002789 jmp LBB0_501 + //0x0000278e LBB0_475 + 0x49, 0x83, 0xfc, 0xff, //0x0000278e cmpq $-1, %r12 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00002792 jne LBB0_487 + //0x00002798 LBB0_476 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002798 movq $-1, %r12 + 0x4c, 0x8b, 0x45, 0xb8, //0x0000279f movq $-72(%rbp), %r8 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000027a3 jmp LBB0_487 + //0x000027a8 LBB0_477 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000027a8 movq $-1, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x000027af movq $-48(%rbp), %rdx + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x000027b3 jmp LBB0_481 + //0x000027b8 LBB0_478 + 0x49, 0x83, 0xfc, 0xff, //0x000027b8 cmpq $-1, %r12 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x000027bc jne LBB0_506 + //0x000027c2 LBB0_479 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000027c2 movq $-1, %r12 + 0x4c, 0x8b, 0x5d, 0xb8, //0x000027c9 movq $-72(%rbp), %r11 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000027cd jmp LBB0_506 + //0x000027d2 LBB0_480 + 0x4c, 0x89, 0xf1, //0x000027d2 movq %r14, %rcx + //0x000027d5 LBB0_481 + 0x48, 0x8b, 0x02, //0x000027d5 movq (%rdx), %rax + 0x48, 0x29, 0xc8, //0x000027d8 subq %rcx, %rax + 0x48, 0x83, 0xc0, 0xfe, //0x000027db addq $-2, %rax + 0x48, 0x89, 0x02, //0x000027df movq %rax, (%rdx) + //0x000027e2 LBB0_500 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000027e2 movq $-2, %rcx + //0x000027e9 LBB0_501 + 0x48, 0x89, 0xc8, //0x000027e9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x48, //0x000027ec addq $72, %rsp + 0x5b, //0x000027f0 popq %rbx + 0x41, 0x5c, //0x000027f1 popq %r12 + 0x41, 0x5d, //0x000027f3 popq %r13 + 0x41, 0x5e, //0x000027f5 popq %r14 + 0x41, 0x5f, //0x000027f7 popq %r15 + 0x5d, //0x000027f9 popq %rbp + 0xc5, 0xf8, 0x77, //0x000027fa vzeroupper + 0xc3, //0x000027fd retq + //0x000027fe LBB0_490 + 0x49, 0x89, 0x12, //0x000027fe movq %rdx, (%r10) + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x00002801 jmp LBB0_501 + //0x00002806 LBB0_482 + 0x49, 0x83, 0xf8, 0xff, //0x00002806 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000280a jne LBB0_485 + 0x48, 0x0f, 0xbc, 0xc6, //0x00002810 bsfq %rsi, %rax + 0x4c, 0x2b, 0x65, 0xc0, //0x00002814 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002818 addq %rax, %r12 + //0x0000281b LBB0_484 + 0x4d, 0x89, 0xe0, //0x0000281b movq %r12, %r8 + //0x0000281e LBB0_485 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000281e movq $-2, %r12 + //0x00002825 LBB0_486 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002825 movq $-48(%rbp), %r10 + //0x00002829 LBB0_487 + 0x4d, 0x89, 0x02, //0x00002829 movq %r8, (%r10) + 0x4c, 0x89, 0xe1, //0x0000282c movq %r12, %rcx + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x0000282f jmp LBB0_501 + //0x00002834 LBB0_502 + 0x49, 0x83, 0xfb, 0xff, //0x00002834 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002838 jne LBB0_505 + 0x48, 0x0f, 0xbc, 0xc6, //0x0000283e bsfq %rsi, %rax + 0x4c, 0x2b, 0x65, 0xc0, //0x00002842 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002846 addq %rax, %r12 + //0x00002849 LBB0_504 + 0x4d, 0x89, 0xe3, //0x00002849 movq %r12, %r11 + //0x0000284c LBB0_505 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000284c movq $-2, %r12 + //0x00002853 LBB0_506 + 0x4d, 0x89, 0x1a, //0x00002853 movq %r11, (%r10) + 0x4c, 0x89, 0xe1, //0x00002856 movq %r12, %rcx + 0xe9, 0x8b, 0xff, 0xff, 0xff, //0x00002859 jmp LBB0_501 + //0x0000285e LBB0_233 + 0x4d, 0x89, 0x2a, //0x0000285e movq %r13, (%r10) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002861 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x6e, //0x00002868 cmpb $110, (%r15) + 0x0f, 0x85, 0x77, 0xff, 0xff, 0xff, //0x0000286c jne LBB0_501 + 0x49, 0x8d, 0x45, 0x01, //0x00002872 leaq $1(%r13), %rax + 0x49, 0x89, 0x02, //0x00002876 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x01, 0x75, //0x00002879 cmpb $117, $1(%r9,%r13) + 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x0000287f jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x00002885 leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x00002889 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x6c, //0x0000288c cmpb $108, $2(%r9,%r13) + 0x0f, 0x85, 0x51, 0xff, 0xff, 0xff, //0x00002892 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x00002898 leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x0000289c movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x6c, //0x0000289f cmpb $108, $3(%r9,%r13) + 0x0f, 0x85, 0x3e, 0xff, 0xff, 0xff, //0x000028a5 jne LBB0_501 + 0xe9, 0xa2, 0x00, 0x00, 0x00, //0x000028ab jmp LBB0_237 + //0x000028b0 LBB0_491 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000028b0 movq $-2, %rcx + 0x80, 0xfa, 0x61, //0x000028b7 cmpb $97, %dl + 0x0f, 0x85, 0x29, 0xff, 0xff, 0xff, //0x000028ba jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x000028c0 leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x000028c4 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x6c, //0x000028c7 cmpb $108, $2(%r9,%r13) + 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x000028cd jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x000028d3 leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x000028d7 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x73, //0x000028da cmpb $115, $3(%r9,%r13) + 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x000028e0 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x04, //0x000028e6 leaq $4(%r13), %rax + 0x49, 0x89, 0x02, //0x000028ea movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x04, 0x65, //0x000028ed cmpb $101, $4(%r9,%r13) + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000028f3 jne LBB0_501 + 0x49, 0x83, 0xc5, 0x05, //0x000028f9 addq $5, %r13 + 0x4d, 0x89, 0x2a, //0x000028fd movq %r13, (%r10) + 0xe9, 0xe4, 0xfe, 0xff, 0xff, //0x00002900 jmp LBB0_501 + //0x00002905 LBB0_245 + 0x4d, 0x89, 0x2a, //0x00002905 movq %r13, (%r10) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002908 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x74, //0x0000290f cmpb $116, (%r15) + 0x0f, 0x85, 0xd0, 0xfe, 0xff, 0xff, //0x00002913 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x01, //0x00002919 leaq $1(%r13), %rax + 0x49, 0x89, 0x02, //0x0000291d movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x01, 0x72, //0x00002920 cmpb $114, $1(%r9,%r13) + 0x0f, 0x85, 0xbd, 0xfe, 0xff, 0xff, //0x00002926 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x0000292c leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x00002930 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x75, //0x00002933 cmpb $117, $2(%r9,%r13) + 0x0f, 0x85, 0xaa, 0xfe, 0xff, 0xff, //0x00002939 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x0000293f leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x00002943 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x65, //0x00002946 cmpb $101, $3(%r9,%r13) + 0x0f, 0x85, 0x97, 0xfe, 0xff, 0xff, //0x0000294c jne LBB0_501 + //0x00002952 LBB0_237 + 0x49, 0x83, 0xc5, 0x04, //0x00002952 addq $4, %r13 + 0x4d, 0x89, 0x2a, //0x00002956 movq %r13, (%r10) + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00002959 jmp LBB0_501 + //0x0000295e LBB0_497 + 0x4d, 0x8b, 0x22, //0x0000295e movq (%r10), %r12 + //0x00002961 LBB0_498 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002961 movq $-1, %r15 + //0x00002968 LBB0_499 + 0x49, 0xf7, 0xd7, //0x00002968 notq %r15 + 0x4d, 0x01, 0xe7, //0x0000296b addq %r12, %r15 + 0x4d, 0x89, 0x3a, //0x0000296e movq %r15, (%r10) + 0xe9, 0x6c, 0xfe, 0xff, 0xff, //0x00002971 jmp LBB0_500 + //0x00002976 LBB0_510 + 0x4c, 0x89, 0x65, 0xb8, //0x00002976 movq %r12, $-72(%rbp) + 0xe9, 0x43, 0xfe, 0xff, 0xff, //0x0000297a jmp LBB0_479 + //0x0000297f LBB0_507 + 0x4c, 0x89, 0x65, 0xb8, //0x0000297f movq %r12, $-72(%rbp) + 0xe9, 0x10, 0xfe, 0xff, 0xff, //0x00002983 jmp LBB0_476 + //0x00002988 LBB0_508 + 0x4c, 0x89, 0x65, 0xb8, //0x00002988 movq %r12, $-72(%rbp) + 0x4c, 0x8b, 0x55, 0xd0, //0x0000298c movq $-48(%rbp), %r10 + 0xe9, 0x03, 0xfe, 0xff, 0xff, //0x00002990 jmp LBB0_476 + //0x00002995 LBB0_509 + 0x4c, 0x01, 0xe2, //0x00002995 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002998 movq $-2, %r12 + 0x49, 0x89, 0xd0, //0x0000299f movq %rdx, %r8 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x000029a2 jmp LBB0_487 + //0x000029a7 LBB0_433 + 0x4c, 0x8b, 0x55, 0xd0, //0x000029a7 movq $-48(%rbp), %r10 + 0xe9, 0xe8, 0xfd, 0xff, 0xff, //0x000029ab jmp LBB0_476 + //0x000029b0 LBB0_129 + 0x4c, 0x01, 0xe2, //0x000029b0 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029b3 movq $-2, %r12 + 0x49, 0x89, 0xd3, //0x000029ba movq %rdx, %r11 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x000029bd jmp LBB0_506 + //0x000029c2 LBB0_511 + 0x4c, 0x01, 0xe7, //0x000029c2 addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029c5 movq $-2, %r12 + 0x49, 0x89, 0xf8, //0x000029cc movq %rdi, %r8 + 0xe9, 0x51, 0xfe, 0xff, 0xff, //0x000029cf jmp LBB0_486 + //0x000029d4 LBB0_512 + 0x4c, 0x2b, 0x65, 0xc0, //0x000029d4 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029d8 addq %rdx, %r12 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x000029db jmp LBB0_484 + //0x000029e0 LBB0_417 + 0x4c, 0x01, 0xe7, //0x000029e0 addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029e3 movq $-2, %r12 + 0x49, 0x89, 0xfb, //0x000029ea movq %rdi, %r11 + 0xe9, 0x61, 0xfe, 0xff, 0xff, //0x000029ed jmp LBB0_506 + //0x000029f2 LBB0_513 + 0x49, 0x29, 0xc4, //0x000029f2 subq %rax, %r12 + 0xe9, 0x21, 0xfe, 0xff, 0xff, //0x000029f5 jmp LBB0_484 + //0x000029fa LBB0_514 + 0x4c, 0x2b, 0x65, 0xc0, //0x000029fa subq $-64(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029fe addq %rdx, %r12 + 0xe9, 0x43, 0xfe, 0xff, 0xff, //0x00002a01 jmp LBB0_504 + //0x00002a06 LBB0_515 + 0x49, 0x29, 0xf4, //0x00002a06 subq %rsi, %r12 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x00002a09 jmp LBB0_504 + //0x00002a0e LBB0_516 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002a0e movq $-48(%rbp), %r10 + 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00002a12 jmp LBB0_479 + 0x90, //0x00002a17 .p2align 2, 0x90 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_63, LBB0_63-LJTI0_0 + // // .set L0_0_set_44, LBB0_44-LJTI0_0 + // // .set L0_0_set_61, LBB0_61-LJTI0_0 + // // .set L0_0_set_42, LBB0_42-LJTI0_0 + // // .set L0_0_set_65, LBB0_65-LJTI0_0 + //0x00002a18 LJTI0_0 + 0xc4, 0xda, 0xff, 0xff, //0x00002a18 .long L0_0_set_39 + 0x6c, 0xdc, 0xff, 0xff, //0x00002a1c .long L0_0_set_63 + 0xfb, 0xda, 0xff, 0xff, //0x00002a20 .long L0_0_set_44 + 0x55, 0xdc, 0xff, 0xff, //0x00002a24 .long L0_0_set_61 + 0xdb, 0xda, 0xff, 0xff, //0x00002a28 .long L0_0_set_42 + 0x97, 0xdc, 0xff, 0xff, //0x00002a2c .long L0_0_set_65 + // // .set L0_1_set_501, LBB0_501-LJTI0_1 + // // .set L0_1_set_500, LBB0_500-LJTI0_1 + // // .set L0_1_set_211, LBB0_211-LJTI0_1 + // // .set L0_1_set_227, LBB0_227-LJTI0_1 + // // .set L0_1_set_69, LBB0_69-LJTI0_1 + // // .set L0_1_set_209, LBB0_209-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_231, LBB0_231-LJTI0_1 + // // .set L0_1_set_243, LBB0_243-LJTI0_1 + // // .set L0_1_set_238, LBB0_238-LJTI0_1 + //0x00002a30 LJTI0_1 + 0xb9, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_501 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a38 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a48 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a58 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a60 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a70 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a7c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a80 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a84 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a88 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a8c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a90 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a94 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a98 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a9c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aac .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab4 .long L0_1_set_500 + 0x1e, 0xe7, 0xff, 0xff, //0x00002ab8 .long L0_1_set_211 + 0xb2, 0xfd, 0xff, 0xff, //0x00002abc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002acc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002adc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ae0 .long L0_1_set_500 + 0x6d, 0xe8, 0xff, 0xff, //0x00002ae4 .long L0_1_set_227 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ae8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aec .long L0_1_set_500 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af0 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af4 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af8 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002afc .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b00 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b04 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b08 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b0c .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b10 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b14 .long L0_1_set_69 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b18 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b1c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b20 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b24 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b28 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b2c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b30 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b34 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b38 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b3c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b40 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b44 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b48 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b4c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b50 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b54 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b58 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b5c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b60 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b64 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b68 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b6c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b70 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b74 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b78 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b7c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b80 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b84 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b88 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b8c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b90 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b94 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b98 .long L0_1_set_500 + 0xfa, 0xe6, 0xff, 0xff, //0x00002b9c .long L0_1_set_209 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bac .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bbc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc4 .long L0_1_set_500 + 0xf8, 0xe8, 0xff, 0xff, //0x00002bc8 .long L0_1_set_240 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bcc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bdc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be4 .long L0_1_set_500 + 0xad, 0xe8, 0xff, 0xff, //0x00002be8 .long L0_1_set_231 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bec .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bfc .long L0_1_set_500 + 0x38, 0xe9, 0xff, 0xff, //0x00002c00 .long L0_1_set_243 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c04 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c08 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c0c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c10 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c14 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c18 .long L0_1_set_500 + 0xd4, 0xe8, 0xff, 0xff, //0x00002c1c .long L0_1_set_238 + // // .set L0_2_set_311, LBB0_311-LJTI0_2 + // // .set L0_2_set_326, LBB0_326-LJTI0_2 + // // .set L0_2_set_318, LBB0_318-LJTI0_2 + // // .set L0_2_set_313, LBB0_313-LJTI0_2 + // // .set L0_2_set_316, LBB0_316-LJTI0_2 + //0x00002c20 LJTI0_2 + 0x77, 0xec, 0xff, 0xff, //0x00002c20 .long L0_2_set_311 + 0x54, 0xed, 0xff, 0xff, //0x00002c24 .long L0_2_set_326 + 0x77, 0xec, 0xff, 0xff, //0x00002c28 .long L0_2_set_311 + 0xdb, 0xec, 0xff, 0xff, //0x00002c2c .long L0_2_set_318 + 0x54, 0xed, 0xff, 0xff, //0x00002c30 .long L0_2_set_326 + 0x90, 0xec, 0xff, 0xff, //0x00002c34 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c38 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c3c .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c40 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c44 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c48 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c4c .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c50 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c54 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c58 .long L0_2_set_313 + 0x54, 0xed, 0xff, 0xff, //0x00002c5c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c60 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c64 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c68 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c6c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c70 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c74 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c78 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c7c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c80 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c84 .long L0_2_set_326 + 0xc0, 0xec, 0xff, 0xff, //0x00002c88 .long L0_2_set_316 + 0x54, 0xed, 0xff, 0xff, //0x00002c8c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c90 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c94 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c98 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c9c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cac .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cbc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ccc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cdc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cec .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cfc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002d00 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002d04 .long L0_2_set_326 + 0xc0, 0xec, 0xff, 0xff, //0x00002d08 .long L0_2_set_316 + // // .set L0_3_set_171, LBB0_171-LJTI0_3 + // // .set L0_3_set_187, LBB0_187-LJTI0_3 + // // .set L0_3_set_178, LBB0_178-LJTI0_3 + // // .set L0_3_set_173, LBB0_173-LJTI0_3 + // // .set L0_3_set_176, LBB0_176-LJTI0_3 + //0x00002d0c LJTI0_3 + 0x56, 0xdd, 0xff, 0xff, //0x00002d0c .long L0_3_set_171 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d10 .long L0_3_set_187 + 0x56, 0xdd, 0xff, 0xff, //0x00002d14 .long L0_3_set_171 + 0xbf, 0xdd, 0xff, 0xff, //0x00002d18 .long L0_3_set_178 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d1c .long L0_3_set_187 + 0x74, 0xdd, 0xff, 0xff, //0x00002d20 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d24 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d28 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d2c .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d30 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d34 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d38 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d3c .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d40 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d44 .long L0_3_set_173 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d48 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d4c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d50 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d54 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d58 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d5c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d60 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d64 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d68 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d6c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d70 .long L0_3_set_187 + 0xa4, 0xdd, 0xff, 0xff, //0x00002d74 .long L0_3_set_176 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d78 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d7c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d80 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d84 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d88 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d8c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d90 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d94 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d98 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d9c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dac .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dbc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dcc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002ddc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dec .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002df0 .long L0_3_set_187 + 0xa4, 0xdd, 0xff, 0xff, //0x00002df4 .long L0_3_set_176 + //0x00002df8 .p2align 2, 0x00 + //0x00002df8 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002df8 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number.go new file mode 100644 index 000000000..f991daff1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_number uintptr + +//go:nosplit +func skip_number(s *string, p *int) (ret int) { + return F_skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_subr.go new file mode 100644 index 000000000..8e489d3fc --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_number = 336 +) + +const ( + _stack__skip_number = 72 +) + +const ( + _size__skip_number = 1528 +) + +var ( + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1441, 72}, + {1445, 48}, + {1446, 40}, + {1448, 32}, + {1450, 24}, + {1452, 16}, + {1454, 8}, + {1458, 0}, + {1528, 72}, + } +) + +var _cfunc_skip_number = []loader.CFunc{ + {"_skip_number_entry", 0, _entry__skip_number, 0, nil}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_text_amd64.go new file mode 100644 index 000000000..0d8976276 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_number_text_amd64.go @@ -0,0 +1,521 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_skip_number = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, // QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000020 LCPI0_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000030 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000040 LCPI0_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000040 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000070 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000080 LCPI0_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000080 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000090 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000000a0 LCPI0_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000000a0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000000b0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000000c0 LCPI0_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000000c0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000000d0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000e0 .p2align 4, 0x00 + //0x000000e0 LCPI0_7 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x000000e0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x000000f0 LCPI0_8 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000f0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000100 LCPI0_9 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000100 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000110 LCPI0_10 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000110 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000120 LCPI0_11 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000120 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000130 LCPI0_12 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000130 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000140 LCPI0_13 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000140 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000150 .p2align 4, 0x90 + //0x00000150 _skip_number + 0x55, //0x00000150 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000151 movq %rsp, %rbp + 0x41, 0x57, //0x00000154 pushq %r15 + 0x41, 0x56, //0x00000156 pushq %r14 + 0x41, 0x55, //0x00000158 pushq %r13 + 0x41, 0x54, //0x0000015a pushq %r12 + 0x53, //0x0000015c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000015d subq $24, %rsp + 0x48, 0x8b, 0x1f, //0x00000161 movq (%rdi), %rbx + 0x48, 0x8b, 0x57, 0x08, //0x00000164 movq $8(%rdi), %rdx + 0x48, 0x8b, 0x3e, //0x00000168 movq (%rsi), %rdi + 0x48, 0x29, 0xfa, //0x0000016b subq %rdi, %rdx + 0x31, 0xc0, //0x0000016e xorl %eax, %eax + 0x80, 0x3c, 0x3b, 0x2d, //0x00000170 cmpb $45, (%rbx,%rdi) + 0x4c, 0x8d, 0x0c, 0x3b, //0x00000174 leaq (%rbx,%rdi), %r9 + 0x0f, 0x94, 0xc0, //0x00000178 sete %al + 0x49, 0x01, 0xc1, //0x0000017b addq %rax, %r9 + 0x48, 0x29, 0xc2, //0x0000017e subq %rax, %rdx + 0x0f, 0x84, 0x8d, 0x05, 0x00, 0x00, //0x00000181 je LBB0_79 + 0x41, 0x8a, 0x09, //0x00000187 movb (%r9), %cl + 0x44, 0x8d, 0x41, 0xd0, //0x0000018a leal $-48(%rcx), %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000018e movq $-2, %rax + 0x41, 0x80, 0xf8, 0x09, //0x00000195 cmpb $9, %r8b + 0x0f, 0x87, 0x4c, 0x05, 0x00, 0x00, //0x00000199 ja LBB0_78 + 0x48, 0x89, 0x7d, 0xc0, //0x0000019f movq %rdi, $-64(%rbp) + 0x48, 0x89, 0x5d, 0xc8, //0x000001a3 movq %rbx, $-56(%rbp) + 0x80, 0xf9, 0x30, //0x000001a7 cmpb $48, %cl + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000001aa jne LBB0_6 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000001b0 movl $1, %ebx + 0x48, 0x83, 0xfa, 0x01, //0x000001b5 cmpq $1, %rdx + 0x0f, 0x84, 0xf8, 0x04, 0x00, 0x00, //0x000001b9 je LBB0_75 + 0x41, 0x8a, 0x41, 0x01, //0x000001bf movb $1(%r9), %al + 0x04, 0xd2, //0x000001c3 addb $-46, %al + 0x3c, 0x37, //0x000001c5 cmpb $55, %al + 0x0f, 0x87, 0xea, 0x04, 0x00, 0x00, //0x000001c7 ja LBB0_75 + 0x0f, 0xb6, 0xc0, //0x000001cd movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000001d0 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000001da btq %rax, %rcx + 0x0f, 0x83, 0xd3, 0x04, 0x00, 0x00, //0x000001de jae LBB0_75 + //0x000001e4 LBB0_6 + 0x48, 0x83, 0xfa, 0x20, //0x000001e4 cmpq $32, %rdx + 0x0f, 0x82, 0x32, 0x05, 0x00, 0x00, //0x000001e8 jb LBB0_80 + 0x48, 0x89, 0x75, 0xd0, //0x000001ee movq %rsi, $-48(%rbp) + 0x4c, 0x8d, 0x62, 0xe0, //0x000001f2 leaq $-32(%rdx), %r12 + 0x4c, 0x89, 0xe0, //0x000001f6 movq %r12, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x000001f9 andq $-32, %rax + 0x4e, 0x8d, 0x6c, 0x08, 0x20, //0x000001fd leaq $32(%rax,%r9), %r13 + 0x41, 0x83, 0xe4, 0x1f, //0x00000202 andl $31, %r12d + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000206 movq $-1, %r11 + 0xc5, 0xfe, 0x6f, 0x05, 0xeb, 0xfd, 0xff, 0xff, //0x0000020d vmovdqu $-533(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x03, 0xfe, 0xff, 0xff, //0x00000215 vmovdqu $-509(%rip), %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0x1b, 0xfe, 0xff, 0xff, //0x0000021d vmovdqu $-485(%rip), %ymm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x1d, 0x33, 0xfe, 0xff, 0xff, //0x00000225 vmovdqu $-461(%rip), %ymm3 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x4b, 0xfe, 0xff, 0xff, //0x0000022d vmovdqu $-437(%rip), %ymm4 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x63, 0xfe, 0xff, 0xff, //0x00000235 vmovdqu $-413(%rip), %ymm5 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x7b, 0xfe, 0xff, 0xff, //0x0000023d vmovdqu $-389(%rip), %ymm6 /* LCPI0_6+0(%rip) */ + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000245 movq $-1, %r14 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000024c movq $-1, %r10 + 0x4d, 0x89, 0xcf, //0x00000253 movq %r9, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000256 .p2align 4, 0x90 + //0x00000260 LBB0_8 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3f, //0x00000260 vmovdqu (%r15), %ymm7 + 0xc5, 0x45, 0x64, 0xc0, //0x00000265 vpcmpgtb %ymm0, %ymm7, %ymm8 + 0xc5, 0x75, 0x64, 0xcf, //0x00000269 vpcmpgtb %ymm7, %ymm1, %ymm9 + 0xc4, 0x41, 0x3d, 0xdb, 0xc1, //0x0000026d vpand %ymm9, %ymm8, %ymm8 + 0xc5, 0x45, 0x74, 0xca, //0x00000272 vpcmpeqb %ymm2, %ymm7, %ymm9 + 0xc5, 0x45, 0x74, 0xd3, //0x00000276 vpcmpeqb %ymm3, %ymm7, %ymm10 + 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x0000027a vpor %ymm9, %ymm10, %ymm9 + 0xc5, 0x45, 0xeb, 0xd4, //0x0000027f vpor %ymm4, %ymm7, %ymm10 + 0xc5, 0x2d, 0x74, 0xd6, //0x00000283 vpcmpeqb %ymm6, %ymm10, %ymm10 + 0xc5, 0xc5, 0x74, 0xfd, //0x00000287 vpcmpeqb %ymm5, %ymm7, %ymm7 + 0xc5, 0xfd, 0xd7, 0xf7, //0x0000028b vpmovmskb %ymm7, %esi + 0xc4, 0xc1, 0x7d, 0xd7, 0xc2, //0x0000028f vpmovmskb %ymm10, %eax + 0xc4, 0x41, 0x7d, 0xd7, 0xc1, //0x00000294 vpmovmskb %ymm9, %r8d + 0xc5, 0xad, 0xeb, 0xff, //0x00000299 vpor %ymm7, %ymm10, %ymm7 + 0xc4, 0x41, 0x35, 0xeb, 0xc0, //0x0000029d vpor %ymm8, %ymm9, %ymm8 + 0xc5, 0xbd, 0xeb, 0xff, //0x000002a2 vpor %ymm7, %ymm8, %ymm7 + 0xc5, 0xfd, 0xd7, 0xcf, //0x000002a6 vpmovmskb %ymm7, %ecx + 0x48, 0xf7, 0xd1, //0x000002aa notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000002ad bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x000002b1 cmpl $32, %ecx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000002b4 je LBB0_10 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000002ba movl $-1, %ebx + 0xd3, 0xe3, //0x000002bf shll %cl, %ebx + 0xf7, 0xd3, //0x000002c1 notl %ebx + 0x21, 0xde, //0x000002c3 andl %ebx, %esi + 0x21, 0xd8, //0x000002c5 andl %ebx, %eax + 0x44, 0x21, 0xc3, //0x000002c7 andl %r8d, %ebx + 0x41, 0x89, 0xd8, //0x000002ca movl %ebx, %r8d + //0x000002cd LBB0_10 + 0x8d, 0x5e, 0xff, //0x000002cd leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000002d0 andl %esi, %ebx + 0x0f, 0x85, 0xac, 0x03, 0x00, 0x00, //0x000002d2 jne LBB0_70 + 0x8d, 0x58, 0xff, //0x000002d8 leal $-1(%rax), %ebx + 0x21, 0xc3, //0x000002db andl %eax, %ebx + 0x0f, 0x85, 0xa1, 0x03, 0x00, 0x00, //0x000002dd jne LBB0_70 + 0x41, 0x8d, 0x58, 0xff, //0x000002e3 leal $-1(%r8), %ebx + 0x44, 0x21, 0xc3, //0x000002e7 andl %r8d, %ebx + 0x0f, 0x85, 0x94, 0x03, 0x00, 0x00, //0x000002ea jne LBB0_70 + 0x85, 0xf6, //0x000002f0 testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000002f2 je LBB0_16 + 0x4c, 0x89, 0xff, //0x000002f8 movq %r15, %rdi + 0x4c, 0x29, 0xcf, //0x000002fb subq %r9, %rdi + 0x0f, 0xbc, 0xde, //0x000002fe bsfl %esi, %ebx + 0x48, 0x01, 0xfb, //0x00000301 addq %rdi, %rbx + 0x49, 0x83, 0xfa, 0xff, //0x00000304 cmpq $-1, %r10 + 0x0f, 0x85, 0x7f, 0x03, 0x00, 0x00, //0x00000308 jne LBB0_71 + 0x49, 0x89, 0xda, //0x0000030e movq %rbx, %r10 + //0x00000311 LBB0_16 + 0x85, 0xc0, //0x00000311 testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000313 je LBB0_19 + 0x4c, 0x89, 0xfe, //0x00000319 movq %r15, %rsi + 0x4c, 0x29, 0xce, //0x0000031c subq %r9, %rsi + 0x0f, 0xbc, 0xd8, //0x0000031f bsfl %eax, %ebx + 0x48, 0x01, 0xf3, //0x00000322 addq %rsi, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x00000325 cmpq $-1, %r14 + 0x0f, 0x85, 0x5e, 0x03, 0x00, 0x00, //0x00000329 jne LBB0_71 + 0x49, 0x89, 0xde, //0x0000032f movq %rbx, %r14 + //0x00000332 LBB0_19 + 0x45, 0x85, 0xc0, //0x00000332 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000335 je LBB0_22 + 0x4c, 0x89, 0xf8, //0x0000033b movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x0000033e subq %r9, %rax + 0x41, 0x0f, 0xbc, 0xd8, //0x00000341 bsfl %r8d, %ebx + 0x48, 0x01, 0xc3, //0x00000345 addq %rax, %rbx + 0x49, 0x83, 0xfb, 0xff, //0x00000348 cmpq $-1, %r11 + 0x0f, 0x85, 0x3b, 0x03, 0x00, 0x00, //0x0000034c jne LBB0_71 + 0x49, 0x89, 0xdb, //0x00000352 movq %rbx, %r11 + //0x00000355 LBB0_22 + 0x83, 0xf9, 0x20, //0x00000355 cmpl $32, %ecx + 0x0f, 0x85, 0x2d, 0x02, 0x00, 0x00, //0x00000358 jne LBB0_54 + 0x49, 0x83, 0xc7, 0x20, //0x0000035e addq $32, %r15 + 0x48, 0x83, 0xc2, 0xe0, //0x00000362 addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x00000366 cmpq $31, %rdx + 0x0f, 0x87, 0xf0, 0xfe, 0xff, 0xff, //0x0000036a ja LBB0_8 + 0xc5, 0xf8, 0x77, //0x00000370 vzeroupper + 0x4c, 0x89, 0xe2, //0x00000373 movq %r12, %rdx + 0x48, 0x8b, 0x75, 0xd0, //0x00000376 movq $-48(%rbp), %rsi + 0x48, 0x83, 0xfa, 0x10, //0x0000037a cmpq $16, %rdx + 0x0f, 0x82, 0x70, 0x01, 0x00, 0x00, //0x0000037e jb LBB0_43 + //0x00000384 LBB0_25 + 0x4c, 0x8d, 0x42, 0xf0, //0x00000384 leaq $-16(%rdx), %r8 + 0x4c, 0x89, 0xc0, //0x00000388 movq %r8, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000038b andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x28, 0x10, //0x0000038f leaq $16(%rax,%r13), %rax + 0x48, 0x89, 0x45, 0xd0, //0x00000394 movq %rax, $-48(%rbp) + 0x41, 0x83, 0xe0, 0x0f, //0x00000398 andl $15, %r8d + 0xc5, 0x7a, 0x6f, 0x05, 0x3c, 0xfd, 0xff, 0xff, //0x0000039c vmovdqu $-708(%rip), %xmm8 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0x44, 0xfd, 0xff, 0xff, //0x000003a4 vmovdqu $-700(%rip), %xmm9 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0x4c, 0xfd, 0xff, 0xff, //0x000003ac vmovdqu $-692(%rip), %xmm10 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0x54, 0xfd, 0xff, 0xff, //0x000003b4 vmovdqu $-684(%rip), %xmm11 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0x5c, 0xfd, 0xff, 0xff, //0x000003bc vmovdqu $-676(%rip), %xmm4 /* LCPI0_11+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x2d, 0x64, 0xfd, 0xff, 0xff, //0x000003c4 vmovdqu $-668(%rip), %xmm5 /* LCPI0_12+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x35, 0x6c, 0xfd, 0xff, 0xff, //0x000003cc vmovdqu $-660(%rip), %xmm6 /* LCPI0_13+0(%rip) */ + 0x41, 0xbc, 0xff, 0xff, 0xff, 0xff, //0x000003d4 movl $4294967295, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003da .p2align 4, 0x90 + //0x000003e0 LBB0_26 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7d, 0x00, //0x000003e0 vmovdqu (%r13), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x000003e6 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x000003eb vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x000003ef vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x000003f3 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x000003f7 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x000003fb vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x000003ff vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00000403 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00000407 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000040b vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x0000040f vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00000413 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000417 vpmovmskb %xmm7, %ebx + 0xc5, 0xf9, 0xd7, 0xc2, //0x0000041b vpmovmskb %xmm2, %eax + 0xc5, 0x79, 0xd7, 0xf9, //0x0000041f vpmovmskb %xmm1, %r15d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00000423 vpmovmskb %xmm0, %ecx + 0x4c, 0x31, 0xe1, //0x00000427 xorq %r12, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000042a bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x0000042e cmpl $16, %ecx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x00000431 je LBB0_28 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x00000437 movl $-1, %edi + 0xd3, 0xe7, //0x0000043c shll %cl, %edi + 0xf7, 0xd7, //0x0000043e notl %edi + 0x21, 0xfb, //0x00000440 andl %edi, %ebx + 0x21, 0xf8, //0x00000442 andl %edi, %eax + 0x44, 0x21, 0xff, //0x00000444 andl %r15d, %edi + 0x41, 0x89, 0xff, //0x00000447 movl %edi, %r15d + //0x0000044a LBB0_28 + 0x8d, 0x7b, 0xff, //0x0000044a leal $-1(%rbx), %edi + 0x21, 0xdf, //0x0000044d andl %ebx, %edi + 0x0f, 0x85, 0x4d, 0x02, 0x00, 0x00, //0x0000044f jne LBB0_72 + 0x8d, 0x78, 0xff, //0x00000455 leal $-1(%rax), %edi + 0x21, 0xc7, //0x00000458 andl %eax, %edi + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x0000045a jne LBB0_72 + 0x41, 0x8d, 0x7f, 0xff, //0x00000460 leal $-1(%r15), %edi + 0x44, 0x21, 0xff, //0x00000464 andl %r15d, %edi + 0x0f, 0x85, 0x35, 0x02, 0x00, 0x00, //0x00000467 jne LBB0_72 + 0x85, 0xdb, //0x0000046d testl %ebx, %ebx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000046f je LBB0_34 + 0x4c, 0x89, 0xef, //0x00000475 movq %r13, %rdi + 0x4c, 0x29, 0xcf, //0x00000478 subq %r9, %rdi + 0x0f, 0xbc, 0xdb, //0x0000047b bsfl %ebx, %ebx + 0x48, 0x01, 0xfb, //0x0000047e addq %rdi, %rbx + 0x49, 0x83, 0xfa, 0xff, //0x00000481 cmpq $-1, %r10 + 0x0f, 0x85, 0x20, 0x02, 0x00, 0x00, //0x00000485 jne LBB0_73 + 0x49, 0x89, 0xda, //0x0000048b movq %rbx, %r10 + //0x0000048e LBB0_34 + 0x85, 0xc0, //0x0000048e testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000490 je LBB0_37 + 0x4c, 0x89, 0xef, //0x00000496 movq %r13, %rdi + 0x4c, 0x29, 0xcf, //0x00000499 subq %r9, %rdi + 0x0f, 0xbc, 0xd8, //0x0000049c bsfl %eax, %ebx + 0x48, 0x01, 0xfb, //0x0000049f addq %rdi, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x000004a2 cmpq $-1, %r14 + 0x0f, 0x85, 0xff, 0x01, 0x00, 0x00, //0x000004a6 jne LBB0_73 + 0x49, 0x89, 0xde, //0x000004ac movq %rbx, %r14 + //0x000004af LBB0_37 + 0x45, 0x85, 0xff, //0x000004af testl %r15d, %r15d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000004b2 je LBB0_40 + 0x4c, 0x89, 0xef, //0x000004b8 movq %r13, %rdi + 0x4c, 0x29, 0xcf, //0x000004bb subq %r9, %rdi + 0x41, 0x0f, 0xbc, 0xdf, //0x000004be bsfl %r15d, %ebx + 0x48, 0x01, 0xfb, //0x000004c2 addq %rdi, %rbx + 0x49, 0x83, 0xfb, 0xff, //0x000004c5 cmpq $-1, %r11 + 0x0f, 0x85, 0xdc, 0x01, 0x00, 0x00, //0x000004c9 jne LBB0_73 + 0x49, 0x89, 0xdb, //0x000004cf movq %rbx, %r11 + //0x000004d2 LBB0_40 + 0x83, 0xf9, 0x10, //0x000004d2 cmpl $16, %ecx + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x000004d5 jne LBB0_55 + 0x49, 0x83, 0xc5, 0x10, //0x000004db addq $16, %r13 + 0x48, 0x83, 0xc2, 0xf0, //0x000004df addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x0f, //0x000004e3 cmpq $15, %rdx + 0x0f, 0x87, 0xf3, 0xfe, 0xff, 0xff, //0x000004e7 ja LBB0_26 + 0x4c, 0x89, 0xc2, //0x000004ed movq %r8, %rdx + 0x4c, 0x8b, 0x6d, 0xd0, //0x000004f0 movq $-48(%rbp), %r13 + //0x000004f4 LBB0_43 + 0x48, 0x85, 0xd2, //0x000004f4 testq %rdx, %rdx + 0x0f, 0x84, 0xb3, 0x00, 0x00, 0x00, //0x000004f7 je LBB0_56 + 0x4d, 0x8d, 0x44, 0x15, 0x00, //0x000004fd leaq (%r13,%rdx), %r8 + 0x48, 0x8d, 0x0d, 0x3f, 0x02, 0x00, 0x00, //0x00000502 leaq $575(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000509 jmp LBB0_46 + 0x90, 0x90, //0x0000050e .p2align 4, 0x90 + //0x00000510 LBB0_45 + 0x49, 0x89, 0xc5, //0x00000510 movq %rax, %r13 + 0x48, 0xff, 0xca, //0x00000513 decq %rdx + 0x0f, 0x84, 0xab, 0x01, 0x00, 0x00, //0x00000516 je LBB0_76 + //0x0000051c LBB0_46 + 0x41, 0x0f, 0xbe, 0x7d, 0x00, //0x0000051c movsbl (%r13), %edi + 0x83, 0xc7, 0xd5, //0x00000521 addl $-43, %edi + 0x83, 0xff, 0x3a, //0x00000524 cmpl $58, %edi + 0x0f, 0x87, 0x83, 0x00, 0x00, 0x00, //0x00000527 ja LBB0_56 + 0x49, 0x8d, 0x45, 0x01, //0x0000052d leaq $1(%r13), %rax + 0x48, 0x63, 0x3c, 0xb9, //0x00000531 movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x00000535 addq %rcx, %rdi + 0xff, 0xe7, //0x00000538 jmpq *%rdi + //0x0000053a LBB0_48 + 0x48, 0x89, 0xc3, //0x0000053a movq %rax, %rbx + 0x4c, 0x29, 0xcb, //0x0000053d subq %r9, %rbx + 0x49, 0x83, 0xfb, 0xff, //0x00000540 cmpq $-1, %r11 + 0x0f, 0x85, 0xb9, 0x01, 0x00, 0x00, //0x00000544 jne LBB0_83 + 0x48, 0xff, 0xcb, //0x0000054a decq %rbx + 0x49, 0x89, 0xdb, //0x0000054d movq %rbx, %r11 + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00000550 jmp LBB0_45 + //0x00000555 LBB0_50 + 0x48, 0x89, 0xc3, //0x00000555 movq %rax, %rbx + 0x4c, 0x29, 0xcb, //0x00000558 subq %r9, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x0000055b cmpq $-1, %r14 + 0x0f, 0x85, 0x9e, 0x01, 0x00, 0x00, //0x0000055f jne LBB0_83 + 0x48, 0xff, 0xcb, //0x00000565 decq %rbx + 0x49, 0x89, 0xde, //0x00000568 movq %rbx, %r14 + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x0000056b jmp LBB0_45 + //0x00000570 LBB0_52 + 0x48, 0x89, 0xc3, //0x00000570 movq %rax, %rbx + 0x4c, 0x29, 0xcb, //0x00000573 subq %r9, %rbx + 0x49, 0x83, 0xfa, 0xff, //0x00000576 cmpq $-1, %r10 + 0x0f, 0x85, 0x83, 0x01, 0x00, 0x00, //0x0000057a jne LBB0_83 + 0x48, 0xff, 0xcb, //0x00000580 decq %rbx + 0x49, 0x89, 0xda, //0x00000583 movq %rbx, %r10 + 0xe9, 0x85, 0xff, 0xff, 0xff, //0x00000586 jmp LBB0_45 + //0x0000058b LBB0_54 + 0x49, 0x01, 0xcf, //0x0000058b addq %rcx, %r15 + 0xc5, 0xf8, 0x77, //0x0000058e vzeroupper + 0x4d, 0x89, 0xfd, //0x00000591 movq %r15, %r13 + 0x48, 0x8b, 0x75, 0xd0, //0x00000594 movq $-48(%rbp), %rsi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000598 movq $-1, %rbx + 0x4d, 0x85, 0xf6, //0x0000059f testq %r14, %r14 + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000005a2 jne LBB0_57 + 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x000005a8 jmp LBB0_77 + //0x000005ad LBB0_55 + 0x49, 0x01, 0xcd, //0x000005ad addq %rcx, %r13 + //0x000005b0 LBB0_56 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000005b0 movq $-1, %rbx + 0x4d, 0x85, 0xf6, //0x000005b7 testq %r14, %r14 + 0x0f, 0x84, 0x1a, 0x01, 0x00, 0x00, //0x000005ba je LBB0_77 + //0x000005c0 LBB0_57 + 0x4d, 0x85, 0xdb, //0x000005c0 testq %r11, %r11 + 0x0f, 0x84, 0x11, 0x01, 0x00, 0x00, //0x000005c3 je LBB0_77 + 0x4d, 0x85, 0xd2, //0x000005c9 testq %r10, %r10 + 0x0f, 0x84, 0x08, 0x01, 0x00, 0x00, //0x000005cc je LBB0_77 + 0x4d, 0x29, 0xcd, //0x000005d2 subq %r9, %r13 + 0x49, 0x8d, 0x45, 0xff, //0x000005d5 leaq $-1(%r13), %rax + 0x49, 0x39, 0xc6, //0x000005d9 cmpq %rax, %r14 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x000005dc je LBB0_65 + 0x49, 0x39, 0xc2, //0x000005e2 cmpq %rax, %r10 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000005e5 je LBB0_65 + 0x49, 0x39, 0xc3, //0x000005eb cmpq %rax, %r11 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000005ee je LBB0_65 + 0x4d, 0x85, 0xdb, //0x000005f4 testq %r11, %r11 + 0x0f, 0x8e, 0x35, 0x00, 0x00, 0x00, //0x000005f7 jle LBB0_66 + 0x49, 0x8d, 0x43, 0xff, //0x000005fd leaq $-1(%r11), %rax + 0x49, 0x39, 0xc6, //0x00000601 cmpq %rax, %r14 + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000604 je LBB0_66 + 0x49, 0xf7, 0xd3, //0x0000060a notq %r11 + 0x4c, 0x89, 0xdb, //0x0000060d movq %r11, %rbx + 0x48, 0x85, 0xdb, //0x00000610 testq %rbx, %rbx + 0x0f, 0x89, 0x9e, 0x00, 0x00, 0x00, //0x00000613 jns LBB0_75 + 0xe9, 0xbc, 0x00, 0x00, 0x00, //0x00000619 jmp LBB0_77 + //0x0000061e LBB0_65 + 0x49, 0xf7, 0xdd, //0x0000061e negq %r13 + 0x4c, 0x89, 0xeb, //0x00000621 movq %r13, %rbx + 0x48, 0x85, 0xdb, //0x00000624 testq %rbx, %rbx + 0x0f, 0x89, 0x8a, 0x00, 0x00, 0x00, //0x00000627 jns LBB0_75 + 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x0000062d jmp LBB0_77 + //0x00000632 LBB0_66 + 0x4c, 0x89, 0xd0, //0x00000632 movq %r10, %rax + 0x4c, 0x09, 0xf0, //0x00000635 orq %r14, %rax + 0x4d, 0x39, 0xf2, //0x00000638 cmpq %r14, %r10 + 0x0f, 0x8c, 0x1d, 0x00, 0x00, 0x00, //0x0000063b jl LBB0_69 + 0x48, 0x85, 0xc0, //0x00000641 testq %rax, %rax + 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00000644 js LBB0_69 + 0x49, 0xf7, 0xd2, //0x0000064a notq %r10 + 0x4c, 0x89, 0xd3, //0x0000064d movq %r10, %rbx + 0x48, 0x85, 0xdb, //0x00000650 testq %rbx, %rbx + 0x0f, 0x89, 0x5e, 0x00, 0x00, 0x00, //0x00000653 jns LBB0_75 + 0xe9, 0x7c, 0x00, 0x00, 0x00, //0x00000659 jmp LBB0_77 + //0x0000065e LBB0_69 + 0x48, 0x85, 0xc0, //0x0000065e testq %rax, %rax + 0x49, 0x8d, 0x46, 0xff, //0x00000661 leaq $-1(%r14), %rax + 0x49, 0xf7, 0xd6, //0x00000665 notq %r14 + 0x4d, 0x0f, 0x48, 0xf5, //0x00000668 cmovsq %r13, %r14 + 0x49, 0x39, 0xc2, //0x0000066c cmpq %rax, %r10 + 0x4d, 0x0f, 0x45, 0xf5, //0x0000066f cmovneq %r13, %r14 + 0x4c, 0x89, 0xf3, //0x00000673 movq %r14, %rbx + 0x48, 0x85, 0xdb, //0x00000676 testq %rbx, %rbx + 0x0f, 0x89, 0x38, 0x00, 0x00, 0x00, //0x00000679 jns LBB0_75 + 0xe9, 0x56, 0x00, 0x00, 0x00, //0x0000067f jmp LBB0_77 + //0x00000684 LBB0_70 + 0x4d, 0x29, 0xcf, //0x00000684 subq %r9, %r15 + 0x0f, 0xbc, 0xdb, //0x00000687 bsfl %ebx, %ebx + 0x4c, 0x01, 0xfb, //0x0000068a addq %r15, %rbx + //0x0000068d LBB0_71 + 0x48, 0xf7, 0xd3, //0x0000068d notq %rbx + 0x48, 0x8b, 0x75, 0xd0, //0x00000690 movq $-48(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00000694 testq %rbx, %rbx + 0x0f, 0x89, 0x1a, 0x00, 0x00, 0x00, //0x00000697 jns LBB0_75 + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x0000069d jmp LBB0_77 + //0x000006a2 LBB0_72 + 0x4d, 0x29, 0xcd, //0x000006a2 subq %r9, %r13 + 0x0f, 0xbc, 0xdf, //0x000006a5 bsfl %edi, %ebx + 0x4c, 0x01, 0xeb, //0x000006a8 addq %r13, %rbx + //0x000006ab LBB0_73 + 0x48, 0xf7, 0xd3, //0x000006ab notq %rbx + 0x48, 0x85, 0xdb, //0x000006ae testq %rbx, %rbx + 0x0f, 0x88, 0x23, 0x00, 0x00, 0x00, //0x000006b1 js LBB0_77 + //0x000006b7 LBB0_75 + 0x49, 0x01, 0xd9, //0x000006b7 addq %rbx, %r9 + 0x48, 0x8b, 0x45, 0xc0, //0x000006ba movq $-64(%rbp), %rax + 0x48, 0x8b, 0x5d, 0xc8, //0x000006be movq $-56(%rbp), %rbx + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000006c2 jmp LBB0_78 + //0x000006c7 LBB0_76 + 0x4d, 0x89, 0xc5, //0x000006c7 movq %r8, %r13 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000006ca movq $-1, %rbx + 0x4d, 0x85, 0xf6, //0x000006d1 testq %r14, %r14 + 0x0f, 0x85, 0xe6, 0xfe, 0xff, 0xff, //0x000006d4 jne LBB0_57 + //0x000006da LBB0_77 + 0x48, 0xf7, 0xd3, //0x000006da notq %rbx + 0x49, 0x01, 0xd9, //0x000006dd addq %rbx, %r9 + 0x48, 0x8b, 0x5d, 0xc8, //0x000006e0 movq $-56(%rbp), %rbx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000006e4 movq $-2, %rax + //0x000006eb LBB0_78 + 0x49, 0x29, 0xd9, //0x000006eb subq %rbx, %r9 + 0x4c, 0x89, 0x0e, //0x000006ee movq %r9, (%rsi) + 0x48, 0x83, 0xc4, 0x18, //0x000006f1 addq $24, %rsp + 0x5b, //0x000006f5 popq %rbx + 0x41, 0x5c, //0x000006f6 popq %r12 + 0x41, 0x5d, //0x000006f8 popq %r13 + 0x41, 0x5e, //0x000006fa popq %r14 + 0x41, 0x5f, //0x000006fc popq %r15 + 0x5d, //0x000006fe popq %rbp + 0xc5, 0xf8, 0x77, //0x000006ff vzeroupper + 0xc3, //0x00000702 retq + //0x00000703 LBB0_83 + 0x48, 0xf7, 0xdb, //0x00000703 negq %rbx + 0x48, 0x85, 0xdb, //0x00000706 testq %rbx, %rbx + 0x0f, 0x89, 0xa8, 0xff, 0xff, 0xff, //0x00000709 jns LBB0_75 + 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x0000070f jmp LBB0_77 + //0x00000714 LBB0_79 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000714 movq $-1, %rax + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x0000071b jmp LBB0_78 + //0x00000720 LBB0_80 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000720 movq $-1, %r11 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000727 movq $-1, %r14 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000072e movq $-1, %r10 + 0x4d, 0x89, 0xcd, //0x00000735 movq %r9, %r13 + 0x48, 0x83, 0xfa, 0x10, //0x00000738 cmpq $16, %rdx + 0x0f, 0x83, 0x42, 0xfc, 0xff, 0xff, //0x0000073c jae LBB0_25 + 0xe9, 0xad, 0xfd, 0xff, 0xff, //0x00000742 jmp LBB0_43 + 0x90, //0x00000747 .p2align 2, 0x90 + // // .set L0_0_set_48, LBB0_48-LJTI0_0 + // // .set L0_0_set_56, LBB0_56-LJTI0_0 + // // .set L0_0_set_52, LBB0_52-LJTI0_0 + // // .set L0_0_set_45, LBB0_45-LJTI0_0 + // // .set L0_0_set_50, LBB0_50-LJTI0_0 + //0x00000748 LJTI0_0 + 0xf2, 0xfd, 0xff, 0xff, //0x00000748 .long L0_0_set_48 + 0x68, 0xfe, 0xff, 0xff, //0x0000074c .long L0_0_set_56 + 0xf2, 0xfd, 0xff, 0xff, //0x00000750 .long L0_0_set_48 + 0x28, 0xfe, 0xff, 0xff, //0x00000754 .long L0_0_set_52 + 0x68, 0xfe, 0xff, 0xff, //0x00000758 .long L0_0_set_56 + 0xc8, 0xfd, 0xff, 0xff, //0x0000075c .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000760 .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000764 .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000768 .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x0000076c .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000770 .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000774 .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000778 .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x0000077c .long L0_0_set_45 + 0xc8, 0xfd, 0xff, 0xff, //0x00000780 .long L0_0_set_45 + 0x68, 0xfe, 0xff, 0xff, //0x00000784 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000788 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x0000078c .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000790 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000794 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000798 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x0000079c .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007a0 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007a4 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007a8 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007ac .long L0_0_set_56 + 0x0d, 0xfe, 0xff, 0xff, //0x000007b0 .long L0_0_set_50 + 0x68, 0xfe, 0xff, 0xff, //0x000007b4 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007b8 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007bc .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007c0 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007c4 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007c8 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007cc .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007d0 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007d4 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007d8 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007dc .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007e0 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007e4 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007e8 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007ec .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007f0 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007f4 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007f8 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x000007fc .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000800 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000804 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000808 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x0000080c .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000810 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000814 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000818 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x0000081c .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000820 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000824 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x00000828 .long L0_0_set_56 + 0x68, 0xfe, 0xff, 0xff, //0x0000082c .long L0_0_set_56 + 0x0d, 0xfe, 0xff, 0xff, //0x00000830 .long L0_0_set_50 + //0x00000834 .p2align 2, 0x00 + //0x00000834 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000834 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object.go new file mode 100644 index 000000000..207d69c06 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_object uintptr + +//go:nosplit +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_subr.go new file mode 100644 index 000000000..4a8058266 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_object = 448 +) + +const ( + _stack__skip_object = 120 +) + +const ( + _size__skip_object = 10328 +) + +var ( + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9772, 120}, + {9776, 48}, + {9777, 40}, + {9779, 32}, + {9781, 24}, + {9783, 16}, + {9785, 8}, + {9789, 0}, + {10328, 120}, + } +) + +var _cfunc_skip_object = []loader.CFunc{ + {"_skip_object_entry", 0, _entry__skip_object, 0, nil}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_text_amd64.go new file mode 100644 index 000000000..3fe7fe6bd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_object_text_amd64.go @@ -0,0 +1,3082 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_skip_object = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 6 + //0x00000010 LCPI0_11 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000020 LCPI0_12 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000030 LCPI0_13 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000030 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000040 LCPI0_14 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000040 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000050 LCPI0_15 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000060 LCPI0_16 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000060 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000070 LCPI0_17 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000070 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000080 .p2align 5, 0x00 + //0x00000080 LCPI0_1 + 0x20, //0x00000080 .byte 32 + 0x00, //0x00000081 .byte 0 + 0x00, //0x00000082 .byte 0 + 0x00, //0x00000083 .byte 0 + 0x00, //0x00000084 .byte 0 + 0x00, //0x00000085 .byte 0 + 0x00, //0x00000086 .byte 0 + 0x00, //0x00000087 .byte 0 + 0x00, //0x00000088 .byte 0 + 0x09, //0x00000089 .byte 9 + 0x0a, //0x0000008a .byte 10 + 0x00, //0x0000008b .byte 0 + 0x00, //0x0000008c .byte 0 + 0x0d, //0x0000008d .byte 13 + 0x00, //0x0000008e .byte 0 + 0x00, //0x0000008f .byte 0 + 0x20, //0x00000090 .byte 32 + 0x00, //0x00000091 .byte 0 + 0x00, //0x00000092 .byte 0 + 0x00, //0x00000093 .byte 0 + 0x00, //0x00000094 .byte 0 + 0x00, //0x00000095 .byte 0 + 0x00, //0x00000096 .byte 0 + 0x00, //0x00000097 .byte 0 + 0x00, //0x00000098 .byte 0 + 0x09, //0x00000099 .byte 9 + 0x0a, //0x0000009a .byte 10 + 0x00, //0x0000009b .byte 0 + 0x00, //0x0000009c .byte 0 + 0x0d, //0x0000009d .byte 13 + 0x00, //0x0000009e .byte 0 + 0x00, //0x0000009f .byte 0 + //0x000000a0 LCPI0_2 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000000a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000000b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000000c0 LCPI0_3 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000000e0 LCPI0_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000000e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000000f0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000100 LCPI0_5 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000100 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000110 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000120 LCPI0_6 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000120 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000130 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000140 LCPI0_7 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000140 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000150 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000160 LCPI0_8 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000160 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000170 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000180 LCPI0_9 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000180 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000190 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000001a0 LCPI0_10 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001a0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001b0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000001c0 .p2align 4, 0x90 + //0x000001c0 _skip_object + 0x55, //0x000001c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000001c1 movq %rsp, %rbp + 0x41, 0x57, //0x000001c4 pushq %r15 + 0x41, 0x56, //0x000001c6 pushq %r14 + 0x41, 0x55, //0x000001c8 pushq %r13 + 0x41, 0x54, //0x000001ca pushq %r12 + 0x53, //0x000001cc pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x000001cd subq $72, %rsp + 0x48, 0x89, 0x4d, 0x98, //0x000001d1 movq %rcx, $-104(%rbp) + 0x49, 0x89, 0xd6, //0x000001d5 movq %rdx, %r14 + 0x49, 0x89, 0xf2, //0x000001d8 movq %rsi, %r10 + 0x48, 0x89, 0x7d, 0xb0, //0x000001db movq %rdi, $-80(%rbp) + 0xc5, 0xfa, 0x6f, 0x05, 0x19, 0xfe, 0xff, 0xff, //0x000001df vmovdqu $-487(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x7f, 0x02, //0x000001e7 vmovdqu %xmm0, (%rdx) + 0x4c, 0x8b, 0x26, //0x000001eb movq (%rsi), %r12 + 0x48, 0xc7, 0x45, 0x90, 0xff, 0xff, 0xff, 0xff, //0x000001ee movq $-1, $-112(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000001f6 movl $1, %r8d + 0xc5, 0xfe, 0x6f, 0x2d, 0x7c, 0xfe, 0xff, 0xff, //0x000001fc vmovdqu $-388(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x94, 0xfe, 0xff, 0xff, //0x00000204 vmovdqu $-364(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xac, 0xfe, 0xff, 0xff, //0x0000020c vmovdqu $-340(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xc4, 0xfe, 0xff, 0xff, //0x00000214 vmovdqu $-316(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000021c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xd7, 0xfe, 0xff, 0xff, //0x00000221 vmovdqu $-297(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xef, 0xfe, 0xff, 0xff, //0x00000229 vmovdqu $-273(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x07, 0xff, 0xff, 0xff, //0x00000231 vmovdqu $-249(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x1f, 0xff, 0xff, 0xff, //0x00000239 vmovdqu $-225(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x37, 0xff, 0xff, 0xff, //0x00000241 vmovdqu $-201(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x4f, 0xff, 0xff, 0xff, //0x00000249 vmovdqu $-177(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x48, 0x89, 0x75, 0xd0, //0x00000251 movq %rsi, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc8, //0x00000255 movq %rdx, $-56(%rbp) + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00000259 jmp LBB0_5 + //0x0000025e LBB0_72 + 0x4c, 0x89, 0xe1, //0x0000025e movq %r12, %rcx + //0x00000261 LBB0_199 + 0x4c, 0x89, 0xe0, //0x00000261 movq %r12, %rax + 0x4e, 0x8d, 0x64, 0x31, 0xff, //0x00000264 leaq $-1(%rcx,%r14), %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000269 movq $-48(%rbp), %r10 + 0x4d, 0x89, 0x22, //0x0000026d movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00000270 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x00000273 testq %rax, %rax + 0x4c, 0x8b, 0x75, 0xc8, //0x00000276 movq $-56(%rbp), %r14 + 0x0f, 0x8e, 0x69, 0x25, 0x00, 0x00, //0x0000027a jle LBB0_501 + //0x00000280 .p2align 4, 0x90 + //0x00000280 LBB0_3 + 0x49, 0x8b, 0x16, //0x00000280 movq (%r14), %rdx + 0x49, 0x89, 0xd0, //0x00000283 movq %rdx, %r8 + 0x48, 0x8b, 0x4d, 0x90, //0x00000286 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x0000028a testq %rdx, %rdx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000028d jne LBB0_5 + 0xe9, 0x51, 0x25, 0x00, 0x00, //0x00000293 jmp LBB0_501 + //0x00000298 LBB0_1 + 0x4c, 0x89, 0xe0, //0x00000298 movq %r12, %rax + 0x4d, 0x8d, 0x65, 0x04, //0x0000029b leaq $4(%r13), %r12 + 0x4d, 0x89, 0x22, //0x0000029f movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x000002a2 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x000002a5 testq %rax, %rax + 0x0f, 0x8f, 0xd2, 0xff, 0xff, 0xff, //0x000002a8 jg LBB0_3 + 0xe9, 0x36, 0x25, 0x00, 0x00, //0x000002ae jmp LBB0_501 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002b3 .p2align 4, 0x90 + //0x000002c0 LBB0_5 + 0x48, 0x8b, 0x45, 0xb0, //0x000002c0 movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x000002c4 movq (%rax), %r9 + 0x48, 0x8b, 0x48, 0x08, //0x000002c7 movq $8(%rax), %rcx + 0x49, 0x39, 0xcc, //0x000002cb cmpq %rcx, %r12 + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x000002ce jae LBB0_10 + 0x43, 0x8a, 0x04, 0x21, //0x000002d4 movb (%r9,%r12), %al + 0x3c, 0x0d, //0x000002d8 cmpb $13, %al + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000002da je LBB0_10 + 0x3c, 0x20, //0x000002e0 cmpb $32, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000002e2 je LBB0_10 + 0x04, 0xf7, //0x000002e8 addb $-9, %al + 0x3c, 0x01, //0x000002ea cmpb $1, %al + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x000002ec jbe LBB0_10 + 0x4d, 0x89, 0xe5, //0x000002f2 movq %r12, %r13 + 0xe9, 0x8e, 0x01, 0x00, 0x00, //0x000002f5 jmp LBB0_36 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002fa .p2align 4, 0x90 + //0x00000300 LBB0_10 + 0x4d, 0x8d, 0x6c, 0x24, 0x01, //0x00000300 leaq $1(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000305 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000308 jae LBB0_14 + 0x43, 0x8a, 0x14, 0x29, //0x0000030e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000312 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000315 je LBB0_14 + 0x80, 0xfa, 0x20, //0x0000031b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000031e je LBB0_14 + 0x80, 0xc2, 0xf7, //0x00000324 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000327 cmpb $1, %dl + 0x0f, 0x87, 0x58, 0x01, 0x00, 0x00, //0x0000032a ja LBB0_36 + //0x00000330 .p2align 4, 0x90 + //0x00000330 LBB0_14 + 0x4d, 0x8d, 0x6c, 0x24, 0x02, //0x00000330 leaq $2(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000335 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000338 jae LBB0_18 + 0x43, 0x8a, 0x14, 0x29, //0x0000033e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000342 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000345 je LBB0_18 + 0x80, 0xfa, 0x20, //0x0000034b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000034e je LBB0_18 + 0x80, 0xc2, 0xf7, //0x00000354 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000357 cmpb $1, %dl + 0x0f, 0x87, 0x28, 0x01, 0x00, 0x00, //0x0000035a ja LBB0_36 + //0x00000360 .p2align 4, 0x90 + //0x00000360 LBB0_18 + 0x4d, 0x8d, 0x6c, 0x24, 0x03, //0x00000360 leaq $3(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000365 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000368 jae LBB0_22 + 0x43, 0x8a, 0x14, 0x29, //0x0000036e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000372 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000375 je LBB0_22 + 0x80, 0xfa, 0x20, //0x0000037b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000037e je LBB0_22 + 0x80, 0xc2, 0xf7, //0x00000384 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000387 cmpb $1, %dl + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x0000038a ja LBB0_36 + //0x00000390 .p2align 4, 0x90 + //0x00000390 LBB0_22 + 0x4d, 0x8d, 0x6c, 0x24, 0x04, //0x00000390 leaq $4(%r12), %r13 + 0x48, 0x89, 0xca, //0x00000395 movq %rcx, %rdx + 0x4c, 0x29, 0xea, //0x00000398 subq %r13, %rdx + 0x0f, 0x86, 0xd2, 0x23, 0x00, 0x00, //0x0000039b jbe LBB0_473 + 0x4d, 0x01, 0xcd, //0x000003a1 addq %r9, %r13 + 0x48, 0x83, 0xfa, 0x20, //0x000003a4 cmpq $32, %rdx + 0x0f, 0x82, 0x56, 0x00, 0x00, 0x00, //0x000003a8 jb LBB0_28 + 0x48, 0x89, 0xce, //0x000003ae movq %rcx, %rsi + 0x4c, 0x29, 0xe6, //0x000003b1 subq %r12, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x000003b4 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x000003b8 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x000003bb andq $-32, %rdi + 0x4c, 0x01, 0xe7, //0x000003bf addq %r12, %rdi + 0x49, 0x8d, 0x7c, 0x39, 0x24, //0x000003c2 leaq $36(%r9,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x000003c7 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003ca .p2align 4, 0x90 + //0x000003d0 LBB0_25 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000003d0 vmovdqu (%r13), %ymm0 + 0xc4, 0xe2, 0x55, 0x00, 0xc8, //0x000003d6 vpshufb %ymm0, %ymm5, %ymm1 + 0xc5, 0xfd, 0x74, 0xc1, //0x000003db vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x000003df vpmovmskb %ymm0, %ebx + 0x83, 0xfb, 0xff, //0x000003e3 cmpl $-1, %ebx + 0x0f, 0x85, 0x84, 0x00, 0x00, 0x00, //0x000003e6 jne LBB0_35 + 0x49, 0x83, 0xc5, 0x20, //0x000003ec addq $32, %r13 + 0x48, 0x83, 0xc2, 0xe0, //0x000003f0 addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x000003f4 cmpq $31, %rdx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000003f8 ja LBB0_25 + 0x48, 0x89, 0xf2, //0x000003fe movq %rsi, %rdx + 0x49, 0x89, 0xfd, //0x00000401 movq %rdi, %r13 + //0x00000404 LBB0_28 + 0x48, 0x85, 0xd2, //0x00000404 testq %rdx, %rdx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000407 je LBB0_34 + 0x49, 0x8d, 0x74, 0x15, 0x00, //0x0000040d leaq (%r13,%rdx), %rsi + 0x49, 0xff, 0xc5, //0x00000412 incq %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000415 .p2align 4, 0x90 + //0x00000420 LBB0_30 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00000420 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x00000425 cmpl $32, %edi + 0x0f, 0x87, 0x09, 0x11, 0x00, 0x00, //0x00000428 ja LBB0_268 + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000042e movabsq $4294977024, %rax + 0x48, 0x0f, 0xa3, 0xf8, //0x00000438 btq %rdi, %rax + 0x0f, 0x83, 0xf5, 0x10, 0x00, 0x00, //0x0000043c jae LBB0_268 + 0x48, 0xff, 0xca, //0x00000442 decq %rdx + 0x49, 0xff, 0xc5, //0x00000445 incq %r13 + 0x48, 0x85, 0xd2, //0x00000448 testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x0000044b jne LBB0_30 + 0x49, 0x89, 0xf5, //0x00000451 movq %rsi, %r13 + //0x00000454 LBB0_34 + 0x4d, 0x29, 0xcd, //0x00000454 subq %r9, %r13 + 0x49, 0x39, 0xcd, //0x00000457 cmpq %rcx, %r13 + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x0000045a jb LBB0_36 + 0xe9, 0x11, 0x23, 0x00, 0x00, //0x00000460 jmp LBB0_474 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000465 .p2align 4, 0x90 + //0x00000470 LBB0_35 + 0x4d, 0x29, 0xcd, //0x00000470 subq %r9, %r13 + 0xf7, 0xd3, //0x00000473 notl %ebx + 0x48, 0x63, 0xd3, //0x00000475 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00000478 bsfq %rdx, %rdx + 0x49, 0x01, 0xd5, //0x0000047c addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x0000047f cmpq %rcx, %r13 + 0x0f, 0x83, 0xee, 0x22, 0x00, 0x00, //0x00000482 jae LBB0_474 + //0x00000488 LBB0_36 + 0x4d, 0x8d, 0x65, 0x01, //0x00000488 leaq $1(%r13), %r12 + 0x4d, 0x89, 0x22, //0x0000048c movq %r12, (%r10) + 0x43, 0x0f, 0xbe, 0x3c, 0x29, //0x0000048f movsbl (%r9,%r13), %edi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000494 movq $-1, %rcx + 0x85, 0xff, //0x0000049b testl %edi, %edi + 0x0f, 0x84, 0x46, 0x23, 0x00, 0x00, //0x0000049d je LBB0_501 + 0x4c, 0x89, 0xee, //0x000004a3 movq %r13, %rsi + 0x48, 0xf7, 0xd6, //0x000004a6 notq %rsi + 0x49, 0x8d, 0x50, 0xff, //0x000004a9 leaq $-1(%r8), %rdx + 0x43, 0x8b, 0x1c, 0xc6, //0x000004ad movl (%r14,%r8,8), %ebx + 0x48, 0x8b, 0x45, 0x90, //0x000004b1 movq $-112(%rbp), %rax + 0x48, 0x83, 0xf8, 0xff, //0x000004b5 cmpq $-1, %rax + 0x49, 0x0f, 0x44, 0xc5, //0x000004b9 cmoveq %r13, %rax + 0x48, 0x89, 0x45, 0x90, //0x000004bd movq %rax, $-112(%rbp) + 0xff, 0xcb, //0x000004c1 decl %ebx + 0x83, 0xfb, 0x05, //0x000004c3 cmpl $5, %ebx + 0x0f, 0x87, 0x0d, 0x02, 0x00, 0x00, //0x000004c6 ja LBB0_67 + 0x48, 0x8d, 0x05, 0x45, 0x25, 0x00, 0x00, //0x000004cc leaq $9541(%rip), %rax /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x98, //0x000004d3 movslq (%rax,%rbx,4), %rbx + 0x48, 0x01, 0xc3, //0x000004d7 addq %rax, %rbx + 0xff, 0xe3, //0x000004da jmpq *%rbx + //0x000004dc LBB0_39 + 0x83, 0xff, 0x2c, //0x000004dc cmpl $44, %edi + 0x0f, 0x84, 0x01, 0x06, 0x00, 0x00, //0x000004df je LBB0_73 + 0x83, 0xff, 0x5d, //0x000004e5 cmpl $93, %edi + 0x0f, 0x84, 0xd3, 0x01, 0x00, 0x00, //0x000004e8 je LBB0_41 + 0xe9, 0xef, 0x22, 0x00, 0x00, //0x000004ee jmp LBB0_500 + //0x000004f3 LBB0_42 + 0x40, 0x80, 0xff, 0x5d, //0x000004f3 cmpb $93, %dil + 0x0f, 0x84, 0xc4, 0x01, 0x00, 0x00, //0x000004f7 je LBB0_41 + 0x4b, 0xc7, 0x04, 0xc6, 0x01, 0x00, 0x00, 0x00, //0x000004fd movq $1, (%r14,%r8,8) + 0x83, 0xff, 0x7b, //0x00000505 cmpl $123, %edi + 0x0f, 0x86, 0xd7, 0x01, 0x00, 0x00, //0x00000508 jbe LBB0_68 + 0xe9, 0xcf, 0x22, 0x00, 0x00, //0x0000050e jmp LBB0_500 + //0x00000513 LBB0_44 + 0x40, 0x80, 0xff, 0x22, //0x00000513 cmpb $34, %dil + 0x0f, 0x85, 0xc5, 0x22, 0x00, 0x00, //0x00000517 jne LBB0_500 + 0x4b, 0xc7, 0x04, 0xc6, 0x04, 0x00, 0x00, 0x00, //0x0000051d movq $4, (%r14,%r8,8) + 0x48, 0x8b, 0x45, 0xb0, //0x00000525 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000529 movq $8(%rax), %rdx + 0xf6, 0x45, 0x98, 0x20, //0x0000052d testb $32, $-104(%rbp) + 0x4c, 0x89, 0x65, 0xa8, //0x00000531 movq %r12, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb8, //0x00000535 movq %rdx, $-72(%rbp) + 0x0f, 0x85, 0xc9, 0x05, 0x00, 0x00, //0x00000539 jne LBB0_75 + 0x48, 0x89, 0xd1, //0x0000053f movq %rdx, %rcx + 0x4c, 0x29, 0xe1, //0x00000542 subq %r12, %rcx + 0x0f, 0x84, 0x34, 0x24, 0x00, 0x00, //0x00000545 je LBB0_507 + 0x4b, 0x8d, 0x1c, 0x21, //0x0000054b leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x0000054f cmpq $64, %rcx + 0x0f, 0x82, 0xea, 0x18, 0x00, 0x00, //0x00000553 jb LBB0_356 + 0x41, 0x89, 0xcf, //0x00000559 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x0000055c andl $63, %r15d + 0x48, 0x8d, 0x54, 0x32, 0xc0, //0x00000560 leaq $-64(%rdx,%rsi), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x00000565 andq $-64, %rdx + 0x4c, 0x01, 0xe2, //0x00000569 addq %r12, %rdx + 0x4d, 0x89, 0xcb, //0x0000056c movq %r9, %r11 + 0x4d, 0x8d, 0x4c, 0x11, 0x40, //0x0000056f leaq $64(%r9,%rdx), %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000574 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x0000057b xorl %r14d, %r14d + 0x90, 0x90, //0x0000057e .p2align 4, 0x90 + //0x00000580 LBB0_49 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000580 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000584 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000589 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x0000058d vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000591 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000595 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000599 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000059d vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x000005a1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000005a5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x000005a9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x000005ad shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000005b1 orq %rax, %rsi + 0x49, 0x83, 0xf8, 0xff, //0x000005b4 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000005b8 jne LBB0_51 + 0x48, 0x85, 0xf6, //0x000005be testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005c1 jne LBB0_58 + //0x000005c7 LBB0_51 + 0x48, 0x09, 0xfa, //0x000005c7 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000005ca movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000005cd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000005d0 jne LBB0_59 + //0x000005d6 LBB0_52 + 0x48, 0x85, 0xd2, //0x000005d6 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x000005d9 jne LBB0_60 + //0x000005df LBB0_53 + 0x48, 0x83, 0xc1, 0xc0, //0x000005df addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x000005e3 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000005e7 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x000005eb ja LBB0_49 + 0xe9, 0x83, 0x14, 0x00, 0x00, //0x000005f1 jmp LBB0_54 + //0x000005f6 LBB0_58 + 0x48, 0x89, 0xd8, //0x000005f6 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x000005f9 subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xc6, //0x000005fc bsfq %rsi, %r8 + 0x49, 0x01, 0xc0, //0x00000600 addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x00000603 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000606 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000609 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000060c je LBB0_52 + //0x00000612 LBB0_59 + 0x4c, 0x89, 0xf0, //0x00000612 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000615 notq %rax + 0x48, 0x21, 0xf0, //0x00000618 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x0000061b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x0000061f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00000622 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00000625 notq %rdi + 0x48, 0x21, 0xf7, //0x00000628 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000062b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000635 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00000638 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x0000063b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000063e setb %r14b + 0x48, 0x01, 0xff, //0x00000642 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000645 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000064f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00000652 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000655 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00000659 notq %rdi + 0x48, 0x21, 0xfa, //0x0000065c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x0000065f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000662 je LBB0_53 + 0xe9, 0x4d, 0x14, 0x00, 0x00, //0x00000668 jmp LBB0_60 + //0x0000066d LBB0_61 + 0x40, 0x80, 0xff, 0x3a, //0x0000066d cmpb $58, %dil + 0x0f, 0x85, 0x6b, 0x21, 0x00, 0x00, //0x00000671 jne LBB0_500 + 0x4b, 0xc7, 0x04, 0xc6, 0x00, 0x00, 0x00, 0x00, //0x00000677 movq $0, (%r14,%r8,8) + 0xe9, 0xfc, 0xfb, 0xff, 0xff, //0x0000067f jmp LBB0_3 + //0x00000684 LBB0_63 + 0x83, 0xff, 0x2c, //0x00000684 cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00000687 jne LBB0_64 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x0000068d cmpq $4095, %r8 + 0x0f, 0x8f, 0xe8, 0x20, 0x00, 0x00, //0x00000694 jg LBB0_489 + 0x49, 0x8d, 0x40, 0x01, //0x0000069a leaq $1(%r8), %rax + 0x49, 0x89, 0x06, //0x0000069e movq %rax, (%r14) + 0x4b, 0xc7, 0x44, 0xc6, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000006a1 movq $3, $8(%r14,%r8,8) + 0xe9, 0xd1, 0xfb, 0xff, 0xff, //0x000006aa jmp LBB0_3 + //0x000006af LBB0_65 + 0x83, 0xff, 0x22, //0x000006af cmpl $34, %edi + 0x0f, 0x84, 0xb7, 0x05, 0x00, 0x00, //0x000006b2 je LBB0_92 + //0x000006b8 LBB0_64 + 0x83, 0xff, 0x7d, //0x000006b8 cmpl $125, %edi + 0x0f, 0x85, 0x21, 0x21, 0x00, 0x00, //0x000006bb jne LBB0_500 + //0x000006c1 LBB0_41 + 0x49, 0x89, 0x16, //0x000006c1 movq %rdx, (%r14) + 0x49, 0x89, 0xd0, //0x000006c4 movq %rdx, %r8 + 0x48, 0x8b, 0x4d, 0x90, //0x000006c7 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x000006cb testq %rdx, %rdx + 0x0f, 0x85, 0xec, 0xfb, 0xff, 0xff, //0x000006ce jne LBB0_5 + 0xe9, 0x10, 0x21, 0x00, 0x00, //0x000006d4 jmp LBB0_501 + //0x000006d9 LBB0_67 + 0x49, 0x89, 0x16, //0x000006d9 movq %rdx, (%r14) + 0x83, 0xff, 0x7b, //0x000006dc cmpl $123, %edi + 0x0f, 0x87, 0xfd, 0x20, 0x00, 0x00, //0x000006df ja LBB0_500 + //0x000006e5 LBB0_68 + 0x4f, 0x8d, 0x3c, 0x29, //0x000006e5 leaq (%r9,%r13), %r15 + 0x89, 0xf8, //0x000006e9 movl %edi, %eax + 0x48, 0x8d, 0x15, 0x3e, 0x23, 0x00, 0x00, //0x000006eb leaq $9022(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000006f2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000006f6 addq %rdx, %rax + 0xff, 0xe0, //0x000006f9 jmpq *%rax + //0x000006fb LBB0_69 + 0x48, 0x8b, 0x45, 0xb0, //0x000006fb movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000006ff movq $8(%rax), %r10 + 0x4d, 0x29, 0xea, //0x00000703 subq %r13, %r10 + 0x0f, 0x84, 0x9c, 0x20, 0x00, 0x00, //0x00000706 je LBB0_477 + 0x41, 0x80, 0x3f, 0x30, //0x0000070c cmpb $48, (%r15) + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x00000710 jne LBB0_132 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00000716 movl $1, %r14d + 0x49, 0x83, 0xfa, 0x01, //0x0000071c cmpq $1, %r10 + 0x0f, 0x84, 0x38, 0xfb, 0xff, 0xff, //0x00000720 je LBB0_72 + 0x43, 0x8a, 0x0c, 0x21, //0x00000726 movb (%r9,%r12), %cl + 0x80, 0xc1, 0xd2, //0x0000072a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000072d cmpb $55, %cl + 0x0f, 0x87, 0x28, 0xfb, 0xff, 0xff, //0x00000730 ja LBB0_72 + 0x0f, 0xb6, 0xc1, //0x00000736 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000739 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000743 btq %rax, %rcx + 0x4c, 0x89, 0xe1, //0x00000747 movq %r12, %rcx + 0x0f, 0x83, 0x11, 0xfb, 0xff, 0xff, //0x0000074a jae LBB0_199 + //0x00000750 LBB0_132 + 0x4c, 0x89, 0x65, 0xa8, //0x00000750 movq %r12, $-88(%rbp) + 0x49, 0x83, 0xfa, 0x20, //0x00000754 cmpq $32, %r10 + 0x0f, 0x82, 0xbe, 0x16, 0x00, 0x00, //0x00000758 jb LBB0_355 + 0x49, 0x8d, 0x4a, 0xe0, //0x0000075e leaq $-32(%r10), %rcx + 0x48, 0x89, 0xc8, //0x00000762 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00000765 andq $-32, %rax + 0x4e, 0x8d, 0x74, 0x38, 0x20, //0x00000769 leaq $32(%rax,%r15), %r14 + 0x83, 0xe1, 0x1f, //0x0000076e andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00000771 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000775 movq $-1, %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000077c movq $-1, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000783 movq $-1, %rax + 0x4d, 0x89, 0xfb, //0x0000078a movq %r15, %r11 + 0x90, 0x90, 0x90, //0x0000078d .p2align 4, 0x90 + //0x00000790 LBB0_134 + 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x00000790 vmovdqu (%r11), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x00000795 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x0000079a vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x0000079e vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x000007a2 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x000007a6 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000007aa vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x000007ae vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000007b2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000007b6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000007ba vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000007be vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000007c2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000007c6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000007ca vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000007ce vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000007d2 vpmovmskb %ymm0, %ecx + 0x48, 0xf7, 0xd1, //0x000007d6 notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000007d9 bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x000007dd cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000007e0 je LBB0_136 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000007e6 movl $-1, %ebx + 0xd3, 0xe3, //0x000007eb shll %cl, %ebx + 0xf7, 0xd3, //0x000007ed notl %ebx + 0x21, 0xdf, //0x000007ef andl %ebx, %edi + 0x21, 0xda, //0x000007f1 andl %ebx, %edx + 0x21, 0xf3, //0x000007f3 andl %esi, %ebx + 0x89, 0xde, //0x000007f5 movl %ebx, %esi + //0x000007f7 LBB0_136 + 0x44, 0x8d, 0x4f, 0xff, //0x000007f7 leal $-1(%rdi), %r9d + 0x41, 0x21, 0xf9, //0x000007fb andl %edi, %r9d + 0x0f, 0x85, 0xab, 0x13, 0x00, 0x00, //0x000007fe jne LBB0_345 + 0x8d, 0x5a, 0xff, //0x00000804 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00000807 andl %edx, %ebx + 0x0f, 0x85, 0x5e, 0x12, 0x00, 0x00, //0x00000809 jne LBB0_339 + 0x8d, 0x5e, 0xff, //0x0000080f leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00000812 andl %esi, %ebx + 0x0f, 0x85, 0x53, 0x12, 0x00, 0x00, //0x00000814 jne LBB0_339 + 0x85, 0xff, //0x0000081a testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000081c je LBB0_142 + 0x4c, 0x89, 0xdb, //0x00000822 movq %r11, %rbx + 0x4c, 0x29, 0xfb, //0x00000825 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x00000828 bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x0000082b addq %rbx, %rdi + 0x48, 0x83, 0xf8, 0xff, //0x0000082e cmpq $-1, %rax + 0x0f, 0x85, 0x8d, 0x13, 0x00, 0x00, //0x00000832 jne LBB0_347 + 0x48, 0x89, 0xf8, //0x00000838 movq %rdi, %rax + //0x0000083b LBB0_142 + 0x85, 0xd2, //0x0000083b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000083d je LBB0_145 + 0x4c, 0x89, 0xdf, //0x00000843 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000846 subq %r15, %rdi + 0x0f, 0xbc, 0xd2, //0x00000849 bsfl %edx, %edx + 0x48, 0x01, 0xfa, //0x0000084c addq %rdi, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x0000084f cmpq $-1, %r12 + 0x0f, 0x85, 0xf1, 0x12, 0x00, 0x00, //0x00000853 jne LBB0_340 + 0x49, 0x89, 0xd4, //0x00000859 movq %rdx, %r12 + //0x0000085c LBB0_145 + 0x85, 0xf6, //0x0000085c testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000085e je LBB0_148 + 0x4c, 0x89, 0xdf, //0x00000864 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000867 subq %r15, %rdi + 0x0f, 0xbc, 0xd6, //0x0000086a bsfl %esi, %edx + 0x48, 0x01, 0xfa, //0x0000086d addq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000870 cmpq $-1, %r8 + 0x0f, 0x85, 0xd0, 0x12, 0x00, 0x00, //0x00000874 jne LBB0_340 + 0x49, 0x89, 0xd0, //0x0000087a movq %rdx, %r8 + //0x0000087d LBB0_148 + 0x83, 0xf9, 0x20, //0x0000087d cmpl $32, %ecx + 0x0f, 0x85, 0x51, 0x05, 0x00, 0x00, //0x00000880 jne LBB0_180 + 0x49, 0x83, 0xc3, 0x20, //0x00000886 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x0000088a addq $-32, %r10 + 0x49, 0x83, 0xfa, 0x1f, //0x0000088e cmpq $31, %r10 + 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00000892 ja LBB0_134 + 0xc5, 0xf8, 0x77, //0x00000898 vzeroupper + 0xc5, 0x7e, 0x6f, 0x3d, 0xfd, 0xf8, 0xff, 0xff, //0x0000089b vmovdqu $-1795(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xd5, 0xf8, 0xff, 0xff, //0x000008a3 vmovdqu $-1835(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xad, 0xf8, 0xff, 0xff, //0x000008ab vmovdqu $-1875(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x85, 0xf8, 0xff, 0xff, //0x000008b3 vmovdqu $-1915(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x5d, 0xf8, 0xff, 0xff, //0x000008bb vmovdqu $-1955(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x35, 0xf8, 0xff, 0xff, //0x000008c3 vmovdqu $-1995(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000008cb vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x05, 0x08, 0xf8, 0xff, 0xff, //0x000008d0 vmovdqu $-2040(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xe0, 0xf7, 0xff, 0xff, //0x000008d8 vmovdqu $-2080(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xb8, 0xf7, 0xff, 0xff, //0x000008e0 vmovdqu $-2120(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x90, 0xf7, 0xff, 0xff, //0x000008e8 vmovdqu $-2160(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xc0, //0x000008f0 movq $-64(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x10, //0x000008f4 cmpq $16, %r10 + 0x0f, 0x82, 0x52, 0x01, 0x00, 0x00, //0x000008f8 jb LBB0_169 + //0x000008fe LBB0_151 + 0x4d, 0x8d, 0x4a, 0xf0, //0x000008fe leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc9, //0x00000902 movq %r9, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00000905 andq $-16, %rcx + 0x4e, 0x8d, 0x5c, 0x31, 0x10, //0x00000909 leaq $16(%rcx,%r14), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x0000090e andl $15, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000912 .p2align 4, 0x90 + //0x00000920 LBB0_152 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00000920 vmovdqu (%r14), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0xe3, 0xf6, 0xff, 0xff, //0x00000925 vpcmpgtb $-2333(%rip), %xmm0, %xmm1 /* LCPI0_11+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xeb, 0xf6, 0xff, 0xff, //0x0000092d vmovdqu $-2325(%rip), %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00000935 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00000939 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0xeb, 0xf6, 0xff, 0xff, //0x0000093d vpcmpeqb $-2325(%rip), %xmm0, %xmm2 /* LCPI0_13+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0xf3, 0xf6, 0xff, 0xff, //0x00000945 vpcmpeqb $-2317(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000094d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0xf7, 0xf6, 0xff, 0xff, //0x00000951 vpor $-2313(%rip), %xmm0, %xmm3 /* LCPI0_15+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0xff, 0xf6, 0xff, 0xff, //0x00000959 vpcmpeqb $-2305(%rip), %xmm0, %xmm0 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x07, 0xf7, 0xff, 0xff, //0x00000961 vpcmpeqb $-2297(%rip), %xmm3, %xmm3 /* LCPI0_17+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00000969 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000096d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00000971 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00000975 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x00000979 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000097d vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc9, //0x00000981 vpmovmskb %xmm1, %ecx + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00000985 movl $4294967295, %ebx + 0x48, 0x31, 0xd9, //0x0000098a xorq %rbx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000098d bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00000991 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00000994 je LBB0_154 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x0000099a movl $-1, %ebx + 0xd3, 0xe3, //0x0000099f shll %cl, %ebx + 0xf7, 0xd3, //0x000009a1 notl %ebx + 0x21, 0xdf, //0x000009a3 andl %ebx, %edi + 0x21, 0xde, //0x000009a5 andl %ebx, %esi + 0x21, 0xd3, //0x000009a7 andl %edx, %ebx + 0x89, 0xda, //0x000009a9 movl %ebx, %edx + //0x000009ab LBB0_154 + 0x8d, 0x5f, 0xff, //0x000009ab leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x000009ae andl %edi, %ebx + 0x0f, 0x85, 0xe1, 0x11, 0x00, 0x00, //0x000009b0 jne LBB0_344 + 0x8d, 0x5e, 0xff, //0x000009b6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000009b9 andl %esi, %ebx + 0x0f, 0x85, 0xd6, 0x11, 0x00, 0x00, //0x000009bb jne LBB0_344 + 0x8d, 0x5a, 0xff, //0x000009c1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000009c4 andl %edx, %ebx + 0x0f, 0x85, 0xcb, 0x11, 0x00, 0x00, //0x000009c6 jne LBB0_344 + 0x85, 0xff, //0x000009cc testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009ce je LBB0_160 + 0x4c, 0x89, 0xf3, //0x000009d4 movq %r14, %rbx + 0x4c, 0x29, 0xfb, //0x000009d7 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x000009da bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x000009dd addq %rbx, %rdi + 0x48, 0x83, 0xf8, 0xff, //0x000009e0 cmpq $-1, %rax + 0x0f, 0x85, 0xdb, 0x11, 0x00, 0x00, //0x000009e4 jne LBB0_347 + 0x48, 0x89, 0xf8, //0x000009ea movq %rdi, %rax + //0x000009ed LBB0_160 + 0x85, 0xf6, //0x000009ed testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009ef je LBB0_163 + 0x4c, 0x89, 0xf7, //0x000009f5 movq %r14, %rdi + 0x4c, 0x29, 0xff, //0x000009f8 subq %r15, %rdi + 0x0f, 0xbc, 0xf6, //0x000009fb bsfl %esi, %esi + 0x48, 0x01, 0xfe, //0x000009fe addq %rdi, %rsi + 0x49, 0x83, 0xfc, 0xff, //0x00000a01 cmpq $-1, %r12 + 0x0f, 0x85, 0xed, 0x12, 0x00, 0x00, //0x00000a05 jne LBB0_350 + 0x49, 0x89, 0xf4, //0x00000a0b movq %rsi, %r12 + //0x00000a0e LBB0_163 + 0x85, 0xd2, //0x00000a0e testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000a10 je LBB0_166 + 0x4c, 0x89, 0xf6, //0x00000a16 movq %r14, %rsi + 0x4c, 0x29, 0xfe, //0x00000a19 subq %r15, %rsi + 0x0f, 0xbc, 0xd2, //0x00000a1c bsfl %edx, %edx + 0x48, 0x01, 0xf2, //0x00000a1f addq %rsi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000a22 cmpq $-1, %r8 + 0x0f, 0x85, 0x1e, 0x11, 0x00, 0x00, //0x00000a26 jne LBB0_340 + 0x49, 0x89, 0xd0, //0x00000a2c movq %rdx, %r8 + //0x00000a2f LBB0_166 + 0x83, 0xf9, 0x10, //0x00000a2f cmpl $16, %ecx + 0x0f, 0x85, 0x82, 0x05, 0x00, 0x00, //0x00000a32 jne LBB0_186 + 0x49, 0x83, 0xc6, 0x10, //0x00000a38 addq $16, %r14 + 0x49, 0x83, 0xc2, 0xf0, //0x00000a3c addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x00000a40 cmpq $15, %r10 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00000a44 ja LBB0_152 + 0x4d, 0x89, 0xca, //0x00000a4a movq %r9, %r10 + 0x4d, 0x89, 0xde, //0x00000a4d movq %r11, %r14 + //0x00000a50 LBB0_169 + 0x4d, 0x85, 0xd2, //0x00000a50 testq %r10, %r10 + 0x0f, 0x84, 0x64, 0x05, 0x00, 0x00, //0x00000a53 je LBB0_187 + 0x4b, 0x8d, 0x0c, 0x16, //0x00000a59 leaq (%r14,%r10), %rcx + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000a5d jmp LBB0_174 + //0x00000a62 LBB0_171 + 0x49, 0x89, 0xd6, //0x00000a62 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000a65 subq %r15, %r14 + 0x49, 0x83, 0xf8, 0xff, //0x00000a68 cmpq $-1, %r8 + 0x0f, 0x85, 0x15, 0x13, 0x00, 0x00, //0x00000a6c jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000a72 decq %r14 + 0x4d, 0x89, 0xf0, //0x00000a75 movq %r14, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a78 .p2align 4, 0x90 + //0x00000a80 LBB0_173 + 0x49, 0x89, 0xd6, //0x00000a80 movq %rdx, %r14 + 0x49, 0xff, 0xca, //0x00000a83 decq %r10 + 0x0f, 0x84, 0x3a, 0x12, 0x00, 0x00, //0x00000a86 je LBB0_348 + //0x00000a8c LBB0_174 + 0x41, 0x0f, 0xbe, 0x36, //0x00000a8c movsbl (%r14), %esi + 0x83, 0xc6, 0xd5, //0x00000a90 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x00000a93 cmpl $58, %esi + 0x0f, 0x87, 0x21, 0x05, 0x00, 0x00, //0x00000a96 ja LBB0_187 + 0x49, 0x8d, 0x56, 0x01, //0x00000a9c leaq $1(%r14), %rdx + 0x48, 0x8d, 0x3d, 0x65, 0x22, 0x00, 0x00, //0x00000aa0 leaq $8805(%rip), %rdi /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x34, 0xb7, //0x00000aa7 movslq (%rdi,%rsi,4), %rsi + 0x48, 0x01, 0xfe, //0x00000aab addq %rdi, %rsi + 0xff, 0xe6, //0x00000aae jmpq *%rsi + //0x00000ab0 LBB0_176 + 0x49, 0x89, 0xd6, //0x00000ab0 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000ab3 subq %r15, %r14 + 0x49, 0x83, 0xfc, 0xff, //0x00000ab6 cmpq $-1, %r12 + 0x0f, 0x85, 0xc7, 0x12, 0x00, 0x00, //0x00000aba jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000ac0 decq %r14 + 0x4d, 0x89, 0xf4, //0x00000ac3 movq %r14, %r12 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x00000ac6 jmp LBB0_173 + //0x00000acb LBB0_178 + 0x49, 0x89, 0xd6, //0x00000acb movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000ace subq %r15, %r14 + 0x48, 0x83, 0xf8, 0xff, //0x00000ad1 cmpq $-1, %rax + 0x0f, 0x85, 0xac, 0x12, 0x00, 0x00, //0x00000ad5 jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000adb decq %r14 + 0x4c, 0x89, 0xf0, //0x00000ade movq %r14, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00000ae1 jmp LBB0_173 + //0x00000ae6 LBB0_73 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x00000ae6 cmpq $4095, %r8 + 0x0f, 0x8f, 0x8f, 0x1c, 0x00, 0x00, //0x00000aed jg LBB0_489 + 0x49, 0x8d, 0x40, 0x01, //0x00000af3 leaq $1(%r8), %rax + 0x49, 0x89, 0x06, //0x00000af7 movq %rax, (%r14) + 0x4b, 0xc7, 0x44, 0xc6, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000afa movq $0, $8(%r14,%r8,8) + 0xe9, 0x78, 0xf7, 0xff, 0xff, //0x00000b03 jmp LBB0_3 + //0x00000b08 LBB0_75 + 0x49, 0x89, 0xd2, //0x00000b08 movq %rdx, %r10 + 0x4d, 0x29, 0xe2, //0x00000b0b subq %r12, %r10 + 0x0f, 0x84, 0x74, 0x1e, 0x00, 0x00, //0x00000b0e je LBB0_508 + 0x4c, 0x89, 0xe0, //0x00000b14 movq %r12, %rax + 0x4d, 0x01, 0xcc, //0x00000b17 addq %r9, %r12 + 0x49, 0x83, 0xfa, 0x40, //0x00000b1a cmpq $64, %r10 + 0x4c, 0x89, 0x4d, 0xc0, //0x00000b1e movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x37, 0x13, 0x00, 0x00, //0x00000b22 jb LBB0_357 + 0x45, 0x89, 0xd6, //0x00000b28 movl %r10d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000b2b andl $63, %r14d + 0x48, 0x8d, 0x4c, 0x32, 0xc0, //0x00000b2f leaq $-64(%rdx,%rsi), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000b34 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000b38 addq %rax, %rcx + 0x49, 0x8d, 0x44, 0x09, 0x40, //0x00000b3b leaq $64(%r9,%rcx), %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b40 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000b47 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b4a .p2align 4, 0x90 + //0x00000b50 LBB0_78 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000b50 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000b56 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000b5d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000b61 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000b65 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000b69 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000b6d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xda, //0x00000b71 vpmovmskb %ymm2, %r11d + 0xc5, 0xf5, 0x74, 0xd7, //0x00000b75 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x00000b79 vpmovmskb %ymm2, %ebx + 0xc5, 0xbd, 0x64, 0xd0, //0x00000b7d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000b81 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000b86 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000b8a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000b8e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000b92 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000b97 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000b9b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x00000b9f shlq $32, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00000ba3 shlq $32, %rbx + 0x49, 0x09, 0xdb, //0x00000ba7 orq %rbx, %r11 + 0x49, 0x83, 0xf8, 0xff, //0x00000baa cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000bae jne LBB0_80 + 0x4d, 0x85, 0xdb, //0x00000bb4 testq %r11, %r11 + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000bb7 jne LBB0_89 + //0x00000bbd LBB0_80 + 0x48, 0xc1, 0xe6, 0x20, //0x00000bbd shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00000bc1 orq %r9, %rdx + 0x4c, 0x89, 0xd9, //0x00000bc4 movq %r11, %rcx + 0x4c, 0x09, 0xf9, //0x00000bc7 orq %r15, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000bca jne LBB0_108 + 0x48, 0x09, 0xfe, //0x00000bd0 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000bd3 testq %rdx, %rdx + 0x0f, 0x85, 0xe1, 0x01, 0x00, 0x00, //0x00000bd6 jne LBB0_109 + //0x00000bdc LBB0_82 + 0x48, 0x85, 0xf6, //0x00000bdc testq %rsi, %rsi + 0x0f, 0x85, 0x21, 0x1c, 0x00, 0x00, //0x00000bdf jne LBB0_482 + 0x49, 0x83, 0xc2, 0xc0, //0x00000be5 addq $-64, %r10 + 0x49, 0x83, 0xc4, 0x40, //0x00000be9 addq $64, %r12 + 0x49, 0x83, 0xfa, 0x3f, //0x00000bed cmpq $63, %r10 + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000bf1 ja LBB0_78 + 0xe9, 0xed, 0x0e, 0x00, 0x00, //0x00000bf7 jmp LBB0_84 + //0x00000bfc LBB0_108 + 0x4c, 0x89, 0xf9, //0x00000bfc movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000bff notq %rcx + 0x4c, 0x21, 0xd9, //0x00000c02 andq %r11, %rcx + 0x4c, 0x8d, 0x0c, 0x09, //0x00000c05 leaq (%rcx,%rcx), %r9 + 0x4d, 0x09, 0xf9, //0x00000c09 orq %r15, %r9 + 0x4c, 0x89, 0xcb, //0x00000c0c movq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000c0f notq %rbx + 0x4c, 0x21, 0xdb, //0x00000c12 andq %r11, %rbx + 0x49, 0x89, 0xc3, //0x00000c15 movq %rax, %r11 + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000c18 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc3, //0x00000c22 andq %rax, %rbx + 0x45, 0x31, 0xff, //0x00000c25 xorl %r15d, %r15d + 0x48, 0x01, 0xcb, //0x00000c28 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00000c2b setb %r15b + 0x48, 0x01, 0xdb, //0x00000c2f addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c32 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x00000c3c xorq %rax, %rbx + 0x4c, 0x89, 0xd8, //0x00000c3f movq %r11, %rax + 0x4c, 0x21, 0xcb, //0x00000c42 andq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000c45 notq %rbx + 0x48, 0x21, 0xda, //0x00000c48 andq %rbx, %rdx + 0x48, 0x09, 0xfe, //0x00000c4b orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000c4e testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0xff, 0xff, 0xff, //0x00000c51 je LBB0_82 + 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00000c57 jmp LBB0_109 + //0x00000c5c LBB0_89 + 0x4c, 0x89, 0xe3, //0x00000c5c movq %r12, %rbx + 0x48, 0x2b, 0x5d, 0xc0, //0x00000c5f subq $-64(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xc3, //0x00000c63 bsfq %r11, %r8 + 0x49, 0x01, 0xd8, //0x00000c67 addq %rbx, %r8 + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00000c6a jmp LBB0_80 + //0x00000c6f LBB0_92 + 0x4b, 0xc7, 0x04, 0xc6, 0x02, 0x00, 0x00, 0x00, //0x00000c6f movq $2, (%r14,%r8,8) + 0x48, 0x8b, 0x45, 0xb0, //0x00000c77 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00000c7b movq $8(%rax), %rax + 0xf6, 0x45, 0x98, 0x20, //0x00000c7f testb $32, $-104(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x00000c83 movq %rax, $-72(%rbp) + 0x0f, 0x85, 0x6c, 0x01, 0x00, 0x00, //0x00000c87 jne LBB0_111 + 0x48, 0x89, 0xc1, //0x00000c8d movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x00000c90 subq %r12, %rcx + 0x0f, 0x84, 0xdd, 0x1c, 0x00, 0x00, //0x00000c93 je LBB0_510 + 0x4b, 0x8d, 0x1c, 0x21, //0x00000c99 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00000c9d cmpq $64, %rcx + 0x0f, 0x82, 0xf1, 0x11, 0x00, 0x00, //0x00000ca1 jb LBB0_360 + 0x4c, 0x89, 0xca, //0x00000ca7 movq %r9, %rdx + 0x41, 0x89, 0xcf, //0x00000caa movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00000cad andl $63, %r15d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00000cb1 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000cb6 andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00000cba addq %r12, %rax + 0x4d, 0x8d, 0x44, 0x01, 0x40, //0x00000cbd leaq $64(%r9,%rax), %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000cc2 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00000cc9 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, //0x00000ccc .p2align 4, 0x90 + //0x00000cd0 LBB0_96 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000cd0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000cd4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000cd9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00000cdd vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000ce1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000ce5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000ce9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000ced vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00000cf1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00000cf5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00000cf9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000cfd shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00000d01 orq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00000d04 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000d08 jne LBB0_98 + 0x48, 0x85, 0xf6, //0x00000d0e testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000d11 jne LBB0_105 + //0x00000d17 LBB0_98 + 0x48, 0x09, 0xfa, //0x00000d17 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000d1a movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000d1d orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000d20 jne LBB0_106 + //0x00000d26 LBB0_99 + 0x48, 0x85, 0xd2, //0x00000d26 testq %rdx, %rdx + 0x0f, 0x85, 0xe6, 0x0e, 0x00, 0x00, //0x00000d29 jne LBB0_107 + //0x00000d2f LBB0_100 + 0x48, 0x83, 0xc1, 0xc0, //0x00000d2f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00000d33 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00000d37 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x00000d3b ja LBB0_96 + 0xe9, 0x8e, 0x0e, 0x00, 0x00, //0x00000d41 jmp LBB0_101 + //0x00000d46 LBB0_105 + 0x48, 0x89, 0xd8, //0x00000d46 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00000d49 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00000d4c bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00000d50 addq %rax, %r11 + 0x48, 0x09, 0xfa, //0x00000d53 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000d56 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000d59 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00000d5c je LBB0_99 + //0x00000d62 LBB0_106 + 0x4c, 0x89, 0xf0, //0x00000d62 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000d65 notq %rax + 0x48, 0x21, 0xf0, //0x00000d68 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x00000d6b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x00000d6f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00000d72 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00000d75 notq %rdi + 0x48, 0x21, 0xf7, //0x00000d78 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000d7b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000d85 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00000d88 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00000d8b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x00000d8e setb %r14b + 0x48, 0x01, 0xff, //0x00000d92 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000d95 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00000d9f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00000da2 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000da5 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00000da9 notq %rdi + 0x48, 0x21, 0xfa, //0x00000dac andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x00000daf testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000db2 je LBB0_100 + 0xe9, 0x58, 0x0e, 0x00, 0x00, //0x00000db8 jmp LBB0_107 + //0x00000dbd LBB0_109 + 0x48, 0x0f, 0xbc, 0xca, //0x00000dbd bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00000dc1 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00000dc4 movq $-64(%rbp), %rax + 0x0f, 0x84, 0xc9, 0x01, 0x00, 0x00, //0x00000dc8 je LBB0_181 + 0x48, 0x0f, 0xbc, 0xd6, //0x00000dce bsfq %rsi, %rdx + 0xe9, 0xc5, 0x01, 0x00, 0x00, //0x00000dd2 jmp LBB0_182 + //0x00000dd7 LBB0_180 + 0x49, 0x01, 0xcb, //0x00000dd7 addq %rcx, %r11 + 0xc5, 0xf8, 0x77, //0x00000dda vzeroupper + 0x4d, 0x89, 0xde, //0x00000ddd movq %r11, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000de0 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000de7 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00000dea movq $-48(%rbp), %rdx + 0x0f, 0x85, 0xdd, 0x01, 0x00, 0x00, //0x00000dee jne LBB0_188 + 0xe9, 0xdc, 0x19, 0x00, 0x00, //0x00000df4 jmp LBB0_481 + //0x00000df9 LBB0_111 + 0x48, 0x89, 0xc3, //0x00000df9 movq %rax, %rbx + 0x4c, 0x29, 0xe3, //0x00000dfc subq %r12, %rbx + 0x0f, 0x84, 0x71, 0x1b, 0x00, 0x00, //0x00000dff je LBB0_510 + 0x4c, 0x89, 0xe1, //0x00000e05 movq %r12, %rcx + 0x4d, 0x01, 0xcc, //0x00000e08 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x00000e0b cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc0, //0x00000e0f movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x98, 0x10, 0x00, 0x00, //0x00000e13 jb LBB0_361 + 0x41, 0x89, 0xde, //0x00000e19 movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000e1c andl $63, %r14d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00000e20 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000e25 andq $-64, %rax + 0x49, 0x89, 0xc8, //0x00000e29 movq %rcx, %r8 + 0x48, 0x01, 0xc8, //0x00000e2c addq %rcx, %rax + 0x49, 0x8d, 0x44, 0x01, 0x40, //0x00000e2f leaq $64(%r9,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x00000e34 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000e38 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00000e3f xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e42 .p2align 4, 0x90 + //0x00000e50 LBB0_114 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000e50 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000e56 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000e5d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000e61 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000e65 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000e69 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000e6d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00000e71 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00000e75 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00000e79 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x00000e7d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000e81 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000e86 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000e8a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000e8e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000e92 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000e97 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000e9b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x00000e9f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000ea3 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00000ea7 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x00000eaa cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000eae jne LBB0_116 + 0x48, 0x85, 0xc9, //0x00000eb4 testq %rcx, %rcx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000eb7 jne LBB0_125 + //0x00000ebd LBB0_116 + 0x48, 0xc1, 0xe6, 0x20, //0x00000ebd shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00000ec1 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00000ec4 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00000ec7 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000eca jne LBB0_126 + 0x48, 0x09, 0xfe, //0x00000ed0 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000ed3 testq %rdx, %rdx + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00000ed6 jne LBB0_127 + //0x00000edc LBB0_118 + 0x48, 0x85, 0xf6, //0x00000edc testq %rsi, %rsi + 0x0f, 0x85, 0x4f, 0x19, 0x00, 0x00, //0x00000edf jne LBB0_502 + 0x48, 0x83, 0xc3, 0xc0, //0x00000ee5 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00000ee9 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x00000eed cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000ef1 ja LBB0_114 + 0xe9, 0x68, 0x0d, 0x00, 0x00, //0x00000ef7 jmp LBB0_120 + //0x00000efc LBB0_126 + 0x4d, 0x89, 0xfa, //0x00000efc movq %r15, %r10 + 0x49, 0xf7, 0xd2, //0x00000eff notq %r10 + 0x49, 0x21, 0xca, //0x00000f02 andq %rcx, %r10 + 0x4f, 0x8d, 0x0c, 0x12, //0x00000f05 leaq (%r10,%r10), %r9 + 0x4d, 0x09, 0xf9, //0x00000f09 orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x00000f0c movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000f0f notq %rax + 0x48, 0x21, 0xc8, //0x00000f12 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000f15 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x00000f1f andq %rcx, %rax + 0x45, 0x31, 0xff, //0x00000f22 xorl %r15d, %r15d + 0x4c, 0x01, 0xd0, //0x00000f25 addq %r10, %rax + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f28 movq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x00000f2c setb %r15b + 0x48, 0x01, 0xc0, //0x00000f30 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000f33 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00000f3d xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x00000f40 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000f43 notq %rax + 0x48, 0x21, 0xc2, //0x00000f46 andq %rax, %rdx + 0x48, 0x09, 0xfe, //0x00000f49 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000f4c testq %rdx, %rdx + 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x00000f4f je LBB0_118 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000f55 jmp LBB0_127 + //0x00000f5a LBB0_125 + 0x4c, 0x89, 0xe0, //0x00000f5a movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x00000f5d subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00000f61 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00000f65 addq %rax, %r11 + 0xe9, 0x50, 0xff, 0xff, 0xff, //0x00000f68 jmp LBB0_116 + //0x00000f6d LBB0_127 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f6d bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00000f71 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00000f74 movq $-64(%rbp), %rax + 0x0f, 0x84, 0x8d, 0x01, 0x00, 0x00, //0x00000f78 je LBB0_203 + 0x48, 0x0f, 0xbc, 0xd6, //0x00000f7e bsfq %rsi, %rdx + 0x4c, 0x8b, 0x75, 0xc8, //0x00000f82 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000f86 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000f89 cmpq %rcx, %rdx + 0x0f, 0x83, 0x8e, 0x01, 0x00, 0x00, //0x00000f8c jae LBB0_204 + 0xe9, 0x19, 0x1a, 0x00, 0x00, //0x00000f92 jmp LBB0_129 + //0x00000f97 LBB0_181 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00000f97 movl $64, %edx + //0x00000f9c LBB0_182 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f9c movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00000fa0 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000fa4 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000fa7 cmpq %rcx, %rdx + 0x0f, 0x82, 0xe5, 0x19, 0x00, 0x00, //0x00000faa jb LBB0_509 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00000fb0 leaq $1(%r12,%rcx), %r12 + 0xe9, 0x10, 0x0b, 0x00, 0x00, //0x00000fb5 jmp LBB0_184 + //0x00000fba LBB0_186 + 0x49, 0x01, 0xce, //0x00000fba addq %rcx, %r14 + //0x00000fbd LBB0_187 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fbd movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000fc4 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00000fc7 movq $-48(%rbp), %rdx + 0x0f, 0x84, 0x04, 0x18, 0x00, 0x00, //0x00000fcb je LBB0_481 + //0x00000fd1 LBB0_188 + 0x4d, 0x85, 0xc0, //0x00000fd1 testq %r8, %r8 + 0x0f, 0x84, 0xfb, 0x17, 0x00, 0x00, //0x00000fd4 je LBB0_481 + 0x48, 0x85, 0xc0, //0x00000fda testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x17, 0x00, 0x00, //0x00000fdd je LBB0_481 + 0x4d, 0x29, 0xfe, //0x00000fe3 subq %r15, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00000fe6 leaq $-1(%r14), %rcx + 0x49, 0x39, 0xcc, //0x00000fea cmpq %rcx, %r12 + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000fed je LBB0_196 + 0x48, 0x39, 0xc8, //0x00000ff3 cmpq %rcx, %rax + 0x0f, 0x84, 0x7f, 0x00, 0x00, 0x00, //0x00000ff6 je LBB0_196 + 0x49, 0x39, 0xc8, //0x00000ffc cmpq %rcx, %r8 + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00000fff je LBB0_196 + 0x4d, 0x85, 0xc0, //0x00001005 testq %r8, %r8 + 0xc5, 0xfe, 0x6f, 0x2d, 0x70, 0xf0, 0xff, 0xff, //0x00001008 vmovdqu $-3984(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x88, 0xf0, 0xff, 0xff, //0x00001010 vmovdqu $-3960(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xa0, 0xf0, 0xff, 0xff, //0x00001018 vmovdqu $-3936(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xb8, 0xf0, 0xff, 0xff, //0x00001020 vmovdqu $-3912(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001028 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xcb, 0xf0, 0xff, 0xff, //0x0000102d vmovdqu $-3893(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xe3, 0xf0, 0xff, 0xff, //0x00001035 vmovdqu $-3869(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xfb, 0xf0, 0xff, 0xff, //0x0000103d vmovdqu $-3845(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x13, 0xf1, 0xff, 0xff, //0x00001045 vmovdqu $-3821(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x2b, 0xf1, 0xff, 0xff, //0x0000104d vmovdqu $-3797(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x43, 0xf1, 0xff, 0xff, //0x00001055 vmovdqu $-3773(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x0000105d jle LBB0_200 + 0x49, 0x8d, 0x48, 0xff, //0x00001063 leaq $-1(%r8), %rcx + 0x49, 0x39, 0xcc, //0x00001067 cmpq %rcx, %r12 + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x0000106a je LBB0_200 + 0x49, 0xf7, 0xd0, //0x00001070 notq %r8 + 0x4d, 0x89, 0xc6, //0x00001073 movq %r8, %r14 + 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00001076 jmp LBB0_197 + //0x0000107b LBB0_196 + 0x49, 0xf7, 0xde, //0x0000107b negq %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0xfa, 0xef, 0xff, 0xff, //0x0000107e vmovdqu $-4102(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x12, 0xf0, 0xff, 0xff, //0x00001086 vmovdqu $-4078(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x2a, 0xf0, 0xff, 0xff, //0x0000108e vmovdqu $-4054(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x42, 0xf0, 0xff, 0xff, //0x00001096 vmovdqu $-4030(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000109e vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x55, 0xf0, 0xff, 0xff, //0x000010a3 vmovdqu $-4011(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x6d, 0xf0, 0xff, 0xff, //0x000010ab vmovdqu $-3987(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x85, 0xf0, 0xff, 0xff, //0x000010b3 vmovdqu $-3963(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x9d, 0xf0, 0xff, 0xff, //0x000010bb vmovdqu $-3939(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xb5, 0xf0, 0xff, 0xff, //0x000010c3 vmovdqu $-3915(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xcd, 0xf0, 0xff, 0xff, //0x000010cb vmovdqu $-3891(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + //0x000010d3 LBB0_197 + 0x4d, 0x85, 0xf6, //0x000010d3 testq %r14, %r14 + 0x4c, 0x8b, 0x65, 0xa8, //0x000010d6 movq $-88(%rbp), %r12 + 0x0f, 0x88, 0xf2, 0x16, 0x00, 0x00, //0x000010da js LBB0_480 + 0x48, 0x8b, 0x0a, //0x000010e0 movq (%rdx), %rcx + 0xe9, 0x79, 0xf1, 0xff, 0xff, //0x000010e3 jmp LBB0_199 + //0x000010e8 LBB0_200 + 0x48, 0x89, 0xc1, //0x000010e8 movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x000010eb orq %r12, %rcx + 0x4c, 0x39, 0xe0, //0x000010ee cmpq %r12, %rax + 0x0f, 0x8c, 0x98, 0x02, 0x00, 0x00, //0x000010f1 jl LBB0_249 + 0x48, 0x85, 0xc9, //0x000010f7 testq %rcx, %rcx + 0x0f, 0x88, 0x8f, 0x02, 0x00, 0x00, //0x000010fa js LBB0_249 + 0x48, 0xf7, 0xd0, //0x00001100 notq %rax + 0x49, 0x89, 0xc6, //0x00001103 movq %rax, %r14 + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x00001106 jmp LBB0_197 + //0x0000110b LBB0_203 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000110b movl $64, %edx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001110 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001114 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00001117 cmpq %rcx, %rdx + 0x0f, 0x82, 0x90, 0x18, 0x00, 0x00, //0x0000111a jb LBB0_129 + //0x00001120 LBB0_204 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001120 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xfe, 0x0a, 0x00, 0x00, //0x00001125 jmp LBB0_205 + //0x0000112a LBB0_209 + 0x49, 0x8b, 0x06, //0x0000112a movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000112d cmpq $4095, %rax + 0x0f, 0x8f, 0x49, 0x16, 0x00, 0x00, //0x00001133 jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001139 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x0000113d movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001140 movq $5, $8(%r14,%rax,8) + 0xe9, 0x32, 0xf1, 0xff, 0xff, //0x00001149 jmp LBB0_3 + //0x0000114e LBB0_211 + 0x48, 0x8b, 0x45, 0xb0, //0x0000114e movq $-80(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00001152 movq $8(%rax), %rax + 0xf6, 0x45, 0x98, 0x20, //0x00001156 testb $32, $-104(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x0000115a movq %rax, $-72(%rbp) + 0x0f, 0x85, 0x46, 0x02, 0x00, 0x00, //0x0000115e jne LBB0_250 + 0x48, 0x89, 0xc1, //0x00001164 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x00001167 subq %r12, %rcx + 0x0f, 0x84, 0x06, 0x18, 0x00, 0x00, //0x0000116a je LBB0_510 + 0x4b, 0x8d, 0x1c, 0x21, //0x00001170 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00001174 cmpq $64, %rcx + 0x4c, 0x89, 0xca, //0x00001178 movq %r9, %rdx + 0x0f, 0x82, 0x71, 0x0d, 0x00, 0x00, //0x0000117b jb LBB0_363 + 0x41, 0x89, 0xcf, //0x00001181 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00001184 andl $63, %r15d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00001188 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000118d andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00001191 addq %r12, %rax + 0x49, 0x89, 0xd1, //0x00001194 movq %rdx, %r9 + 0x4c, 0x8d, 0x44, 0x02, 0x40, //0x00001197 leaq $64(%rdx,%rax), %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000119c movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x000011a3 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011a6 .p2align 4, 0x90 + //0x000011b0 LBB0_215 + 0xc5, 0xfe, 0x6f, 0x03, //0x000011b0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x000011b4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x000011b9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x000011bd vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x000011c1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x000011c5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x000011c9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x000011cd vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x000011d1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000011d5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x000011d9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x000011dd shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000011e1 orq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x000011e4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000011e8 jne LBB0_217 + 0x48, 0x85, 0xf6, //0x000011ee testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000011f1 jne LBB0_224 + //0x000011f7 LBB0_217 + 0x48, 0x09, 0xfa, //0x000011f7 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000011fa movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000011fd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00001200 jne LBB0_225 + //0x00001206 LBB0_218 + 0x48, 0x85, 0xd2, //0x00001206 testq %rdx, %rdx + 0x0f, 0x85, 0x48, 0x0b, 0x00, 0x00, //0x00001209 jne LBB0_226 + //0x0000120f LBB0_219 + 0x48, 0x83, 0xc1, 0xc0, //0x0000120f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00001213 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00001217 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x0000121b ja LBB0_215 + 0xe9, 0xf0, 0x0a, 0x00, 0x00, //0x00001221 jmp LBB0_220 + //0x00001226 LBB0_224 + 0x48, 0x89, 0xd8, //0x00001226 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00001229 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x0000122c bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00001230 addq %rax, %r11 + 0x48, 0x09, 0xfa, //0x00001233 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00001236 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00001239 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000123c je LBB0_218 + //0x00001242 LBB0_225 + 0x4c, 0x89, 0xf0, //0x00001242 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001245 notq %rax + 0x48, 0x21, 0xf0, //0x00001248 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x0000124b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x0000124f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00001252 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00001255 notq %rdi + 0x48, 0x21, 0xf7, //0x00001258 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000125b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00001265 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00001268 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x0000126b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000126e setb %r14b + 0x48, 0x01, 0xff, //0x00001272 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001275 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000127f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00001282 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001285 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00001289 notq %rdi + 0x48, 0x21, 0xfa, //0x0000128c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x0000128f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00001292 je LBB0_219 + 0xe9, 0xba, 0x0a, 0x00, 0x00, //0x00001298 jmp LBB0_226 + //0x0000129d LBB0_227 + 0x48, 0x8b, 0x45, 0xb0, //0x0000129d movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x70, 0x08, //0x000012a1 movq $8(%rax), %r14 + 0x4d, 0x29, 0xe6, //0x000012a5 subq %r12, %r14 + 0x0f, 0x84, 0xb3, 0x16, 0x00, 0x00, //0x000012a8 je LBB0_498 + 0x4c, 0x89, 0x65, 0xa8, //0x000012ae movq %r12, $-88(%rbp) + 0x4c, 0x89, 0xc8, //0x000012b2 movq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000012b5 addq %r12, %rax + 0x49, 0x89, 0xc1, //0x000012b8 movq %rax, %r9 + 0x80, 0x38, 0x30, //0x000012bb cmpb $48, (%rax) + 0x0f, 0x85, 0xb5, 0x02, 0x00, 0x00, //0x000012be jne LBB0_271 + 0x41, 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000012c4 movl $1, %r15d + 0x49, 0x83, 0xfe, 0x01, //0x000012ca cmpq $1, %r14 + 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x000012ce jne LBB0_269 + 0x4c, 0x8b, 0x65, 0xa8, //0x000012d4 movq $-88(%rbp), %r12 + 0xe9, 0x9d, 0x08, 0x00, 0x00, //0x000012d8 jmp LBB0_343 + //0x000012dd LBB0_231 + 0x48, 0x8b, 0x45, 0xb0, //0x000012dd movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x000012e1 movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000012e5 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc5, //0x000012e9 cmpq %rax, %r13 + 0x0f, 0x83, 0x0c, 0x15, 0x00, 0x00, //0x000012ec jae LBB0_490 + 0x41, 0x81, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, //0x000012f2 cmpl $1819047278, (%r15) + 0x0f, 0x84, 0x99, 0xef, 0xff, 0xff, //0x000012f9 je LBB0_1 + 0xe9, 0x5a, 0x15, 0x00, 0x00, //0x000012ff jmp LBB0_233 + //0x00001304 LBB0_238 + 0x49, 0x8b, 0x06, //0x00001304 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001307 cmpq $4095, %rax + 0x0f, 0x8f, 0x6f, 0x14, 0x00, 0x00, //0x0000130d jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001313 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00001317 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x06, 0x00, 0x00, 0x00, //0x0000131a movq $6, $8(%r14,%rax,8) + 0xe9, 0x58, 0xef, 0xff, 0xff, //0x00001323 jmp LBB0_3 + //0x00001328 LBB0_240 + 0x48, 0x8b, 0x45, 0xb0, //0x00001328 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x0000132c movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfc, //0x00001330 leaq $-4(%rdx), %rax + 0x49, 0x39, 0xc5, //0x00001334 cmpq %rax, %r13 + 0x0f, 0x83, 0xc1, 0x14, 0x00, 0x00, //0x00001337 jae LBB0_490 + 0x43, 0x8b, 0x14, 0x21, //0x0000133d movl (%r9,%r12), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x00001341 cmpl $1702063201, %edx + 0x0f, 0x85, 0x63, 0x15, 0x00, 0x00, //0x00001347 jne LBB0_491 + 0x4c, 0x89, 0xe0, //0x0000134d movq %r12, %rax + 0x4d, 0x8d, 0x65, 0x05, //0x00001350 leaq $5(%r13), %r12 + 0x4d, 0x89, 0x22, //0x00001354 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001357 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x0000135a testq %rax, %rax + 0x0f, 0x8f, 0x1d, 0xef, 0xff, 0xff, //0x0000135d jg LBB0_3 + 0xe9, 0x81, 0x14, 0x00, 0x00, //0x00001363 jmp LBB0_501 + //0x00001368 LBB0_243 + 0x48, 0x8b, 0x45, 0xb0, //0x00001368 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x0000136c movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x00001370 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc5, //0x00001374 cmpq %rax, %r13 + 0x0f, 0x83, 0x81, 0x14, 0x00, 0x00, //0x00001377 jae LBB0_490 + 0x41, 0x81, 0x3f, 0x74, 0x72, 0x75, 0x65, //0x0000137d cmpl $1702195828, (%r15) + 0x0f, 0x84, 0x0e, 0xef, 0xff, 0xff, //0x00001384 je LBB0_1 + 0xe9, 0x76, 0x15, 0x00, 0x00, //0x0000138a jmp LBB0_245 + //0x0000138f LBB0_249 + 0x48, 0x85, 0xc9, //0x0000138f testq %rcx, %rcx + 0x49, 0x8d, 0x4c, 0x24, 0xff, //0x00001392 leaq $-1(%r12), %rcx + 0x49, 0xf7, 0xd4, //0x00001397 notq %r12 + 0x4d, 0x0f, 0x48, 0xe6, //0x0000139a cmovsq %r14, %r12 + 0x48, 0x39, 0xc8, //0x0000139e cmpq %rcx, %rax + 0x4d, 0x0f, 0x44, 0xf4, //0x000013a1 cmoveq %r12, %r14 + 0xe9, 0x29, 0xfd, 0xff, 0xff, //0x000013a5 jmp LBB0_197 + //0x000013aa LBB0_250 + 0x48, 0x89, 0xc3, //0x000013aa movq %rax, %rbx + 0x4c, 0x29, 0xe3, //0x000013ad subq %r12, %rbx + 0x0f, 0x84, 0xc0, 0x15, 0x00, 0x00, //0x000013b0 je LBB0_510 + 0x4c, 0x89, 0xe1, //0x000013b6 movq %r12, %rcx + 0x4d, 0x01, 0xcc, //0x000013b9 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x000013bc cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc0, //0x000013c0 movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x44, 0x0b, 0x00, 0x00, //0x000013c4 jb LBB0_364 + 0x41, 0x89, 0xde, //0x000013ca movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x000013cd andl $63, %r14d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x000013d1 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x000013d6 andq $-64, %rax + 0x49, 0x89, 0xc8, //0x000013da movq %rcx, %r8 + 0x48, 0x01, 0xc8, //0x000013dd addq %rcx, %rax + 0x49, 0x8d, 0x44, 0x01, 0x40, //0x000013e0 leaq $64(%r9,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x000013e5 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000013e9 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x000013f0 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000013f3 .p2align 4, 0x90 + //0x00001400 LBB0_253 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001400 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00001406 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x0000140d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00001411 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00001415 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00001419 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x0000141d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00001421 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00001425 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00001429 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x0000142d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001431 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00001436 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000143a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x0000143e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00001442 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00001447 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000144b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x0000144f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00001453 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00001457 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x0000145a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000145e jne LBB0_255 + 0x48, 0x85, 0xc9, //0x00001464 testq %rcx, %rcx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00001467 jne LBB0_264 + //0x0000146d LBB0_255 + 0x48, 0xc1, 0xe6, 0x20, //0x0000146d shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00001471 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00001474 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00001477 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000147a jne LBB0_265 + 0x48, 0x09, 0xfe, //0x00001480 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00001483 testq %rdx, %rdx + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00001486 jne LBB0_266 + //0x0000148c LBB0_257 + 0x48, 0x85, 0xf6, //0x0000148c testq %rsi, %rsi + 0x0f, 0x85, 0x9f, 0x13, 0x00, 0x00, //0x0000148f jne LBB0_502 + 0x48, 0x83, 0xc3, 0xc0, //0x00001495 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00001499 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x0000149d cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x000014a1 ja LBB0_253 + 0xe9, 0xe7, 0x08, 0x00, 0x00, //0x000014a7 jmp LBB0_259 + //0x000014ac LBB0_265 + 0x4d, 0x89, 0xfa, //0x000014ac movq %r15, %r10 + 0x49, 0xf7, 0xd2, //0x000014af notq %r10 + 0x49, 0x21, 0xca, //0x000014b2 andq %rcx, %r10 + 0x4f, 0x8d, 0x0c, 0x12, //0x000014b5 leaq (%r10,%r10), %r9 + 0x4d, 0x09, 0xf9, //0x000014b9 orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x000014bc movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014bf notq %rax + 0x48, 0x21, 0xc8, //0x000014c2 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000014c5 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x000014cf andq %rcx, %rax + 0x45, 0x31, 0xff, //0x000014d2 xorl %r15d, %r15d + 0x4c, 0x01, 0xd0, //0x000014d5 addq %r10, %rax + 0x4c, 0x8b, 0x55, 0xd0, //0x000014d8 movq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x000014dc setb %r15b + 0x48, 0x01, 0xc0, //0x000014e0 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000014e3 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x000014ed xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x000014f0 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014f3 notq %rax + 0x48, 0x21, 0xc2, //0x000014f6 andq %rax, %rdx + 0x48, 0x09, 0xfe, //0x000014f9 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x000014fc testq %rdx, %rdx + 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x000014ff je LBB0_257 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001505 jmp LBB0_266 + //0x0000150a LBB0_264 + 0x4c, 0x89, 0xe0, //0x0000150a movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x0000150d subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00001511 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00001515 addq %rax, %r11 + 0xe9, 0x50, 0xff, 0xff, 0xff, //0x00001518 jmp LBB0_255 + //0x0000151d LBB0_266 + 0x48, 0x0f, 0xbc, 0xca, //0x0000151d bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00001521 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00001524 movq $-64(%rbp), %rax + 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x00001528 je LBB0_320 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000152e bsfq %rsi, %rdx + 0xe9, 0x1c, 0x04, 0x00, 0x00, //0x00001532 jmp LBB0_321 + //0x00001537 LBB0_268 + 0x4c, 0x89, 0xca, //0x00001537 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x0000153a notq %rdx + 0x49, 0x01, 0xd5, //0x0000153d addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00001540 cmpq %rcx, %r13 + 0x0f, 0x82, 0x3f, 0xef, 0xff, 0xff, //0x00001543 jb LBB0_36 + 0xe9, 0x28, 0x12, 0x00, 0x00, //0x00001549 jmp LBB0_474 + //0x0000154e LBB0_269 + 0x41, 0x8a, 0x49, 0x01, //0x0000154e movb $1(%r9), %cl + 0x80, 0xc1, 0xd2, //0x00001552 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00001555 cmpb $55, %cl + 0x4c, 0x8b, 0x65, 0xa8, //0x00001558 movq $-88(%rbp), %r12 + 0x0f, 0x87, 0x18, 0x06, 0x00, 0x00, //0x0000155c ja LBB0_343 + 0x0f, 0xb6, 0xc1, //0x00001562 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001565 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000156f btq %rax, %rcx + 0x0f, 0x83, 0x01, 0x06, 0x00, 0x00, //0x00001573 jae LBB0_343 + //0x00001579 LBB0_271 + 0x49, 0x83, 0xfe, 0x20, //0x00001579 cmpq $32, %r14 + 0x0f, 0x82, 0x52, 0x09, 0x00, 0x00, //0x0000157d jb LBB0_362 + 0x49, 0x8d, 0x4e, 0xe0, //0x00001583 leaq $-32(%r14), %rcx + 0x48, 0x89, 0xc8, //0x00001587 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x0000158a andq $-32, %rax + 0x4d, 0x89, 0xca, //0x0000158e movq %r9, %r10 + 0x4e, 0x8d, 0x7c, 0x08, 0x20, //0x00001591 leaq $32(%rax,%r9), %r15 + 0x83, 0xe1, 0x1f, //0x00001596 andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00001599 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000159d movq $-1, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000015a4 movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000015ab movq $-1, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015b2 .p2align 4, 0x90 + //0x000015c0 LBB0_273 + 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x000015c0 vmovdqu (%r10), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x000015c5 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x000015ca vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x000015ce vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x000015d2 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x000015d6 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000015da vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x000015de vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000015e2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000015e6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000015ea vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000015ee vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000015f2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000015f6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000015fa vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000015fe vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00001602 vpmovmskb %ymm0, %eax + 0x48, 0xf7, 0xd0, //0x00001606 notq %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x00001609 bsfq %rax, %rcx + 0x83, 0xf9, 0x20, //0x0000160d cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00001610 je LBB0_275 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001616 movl $-1, %eax + 0xd3, 0xe0, //0x0000161b shll %cl, %eax + 0xf7, 0xd0, //0x0000161d notl %eax + 0x21, 0xc7, //0x0000161f andl %eax, %edi + 0x21, 0xc2, //0x00001621 andl %eax, %edx + 0x21, 0xf0, //0x00001623 andl %esi, %eax + 0x89, 0xc6, //0x00001625 movl %eax, %esi + //0x00001627 LBB0_275 + 0x8d, 0x5f, 0xff, //0x00001627 leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x0000162a andl %edi, %ebx + 0x0f, 0x85, 0xb0, 0x06, 0x00, 0x00, //0x0000162c jne LBB0_349 + 0x8d, 0x5a, 0xff, //0x00001632 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00001635 andl %edx, %ebx + 0x0f, 0x85, 0xa5, 0x06, 0x00, 0x00, //0x00001637 jne LBB0_349 + 0x8d, 0x5e, 0xff, //0x0000163d leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00001640 andl %esi, %ebx + 0x0f, 0x85, 0x9a, 0x06, 0x00, 0x00, //0x00001642 jne LBB0_349 + 0x85, 0xff, //0x00001648 testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000164a je LBB0_281 + 0x4c, 0x89, 0xd0, //0x00001650 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001653 subq %r9, %rax + 0x0f, 0xbc, 0xff, //0x00001656 bsfl %edi, %edi + 0x48, 0x01, 0xc7, //0x00001659 addq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000165c cmpq $-1, %r12 + 0x0f, 0x85, 0xa7, 0x07, 0x00, 0x00, //0x00001660 jne LBB0_354 + 0x49, 0x89, 0xfc, //0x00001666 movq %rdi, %r12 + //0x00001669 LBB0_281 + 0x85, 0xd2, //0x00001669 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000166b je LBB0_284 + 0x4c, 0x89, 0xd0, //0x00001671 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001674 subq %r9, %rax + 0x0f, 0xbc, 0xd2, //0x00001677 bsfl %edx, %edx + 0x48, 0x01, 0xc2, //0x0000167a addq %rax, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x0000167d cmpq $-1, %r11 + 0x0f, 0x85, 0x80, 0x06, 0x00, 0x00, //0x00001681 jne LBB0_351 + 0x49, 0x89, 0xd3, //0x00001687 movq %rdx, %r11 + //0x0000168a LBB0_284 + 0x85, 0xf6, //0x0000168a testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000168c je LBB0_287 + 0x4c, 0x89, 0xd0, //0x00001692 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001695 subq %r9, %rax + 0x0f, 0xbc, 0xd6, //0x00001698 bsfl %esi, %edx + 0x48, 0x01, 0xc2, //0x0000169b addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x0000169e cmpq $-1, %r8 + 0x0f, 0x85, 0x5f, 0x06, 0x00, 0x00, //0x000016a2 jne LBB0_351 + 0x49, 0x89, 0xd0, //0x000016a8 movq %rdx, %r8 + //0x000016ab LBB0_287 + 0x83, 0xf9, 0x20, //0x000016ab cmpl $32, %ecx + 0x0f, 0x85, 0x62, 0x02, 0x00, 0x00, //0x000016ae jne LBB0_496 + 0x49, 0x83, 0xc2, 0x20, //0x000016b4 addq $32, %r10 + 0x49, 0x83, 0xc6, 0xe0, //0x000016b8 addq $-32, %r14 + 0x49, 0x83, 0xfe, 0x1f, //0x000016bc cmpq $31, %r14 + 0x0f, 0x87, 0xfa, 0xfe, 0xff, 0xff, //0x000016c0 ja LBB0_273 + 0xc5, 0xf8, 0x77, //0x000016c6 vzeroupper + 0x4c, 0x8b, 0x75, 0xc0, //0x000016c9 movq $-64(%rbp), %r14 + //0x000016cd LBB0_290 + 0x49, 0x83, 0xfe, 0x10, //0x000016cd cmpq $16, %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0xa7, 0xe9, 0xff, 0xff, //0x000016d1 vmovdqu $-5721(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xbf, 0xe9, 0xff, 0xff, //0x000016d9 vmovdqu $-5697(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xd7, 0xe9, 0xff, 0xff, //0x000016e1 vmovdqu $-5673(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xef, 0xe9, 0xff, 0xff, //0x000016e9 vmovdqu $-5649(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000016f1 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x02, 0xea, 0xff, 0xff, //0x000016f6 vmovdqu $-5630(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x1a, 0xea, 0xff, 0xff, //0x000016fe vmovdqu $-5606(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x32, 0xea, 0xff, 0xff, //0x00001706 vmovdqu $-5582(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x4a, 0xea, 0xff, 0xff, //0x0000170e vmovdqu $-5558(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x62, 0xea, 0xff, 0xff, //0x00001716 vmovdqu $-5534(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x7a, 0xea, 0xff, 0xff, //0x0000171e vmovdqu $-5510(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x0f, 0x82, 0x55, 0x01, 0x00, 0x00, //0x00001726 jb LBB0_309 + 0x4d, 0x8d, 0x56, 0xf0, //0x0000172c leaq $-16(%r14), %r10 + 0x4c, 0x89, 0xd0, //0x00001730 movq %r10, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001733 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x38, 0x10, //0x00001737 leaq $16(%rax,%r15), %rax + 0x48, 0x89, 0x45, 0xc0, //0x0000173c movq %rax, $-64(%rbp) + 0x41, 0x83, 0xe2, 0x0f, //0x00001740 andl $15, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001744 .p2align 4, 0x90 + //0x00001750 LBB0_292 + 0xc4, 0xc1, 0x7a, 0x6f, 0x07, //0x00001750 vmovdqu (%r15), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0xb3, 0xe8, 0xff, 0xff, //0x00001755 vpcmpgtb $-5965(%rip), %xmm0, %xmm1 /* LCPI0_11+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xbb, 0xe8, 0xff, 0xff, //0x0000175d vmovdqu $-5957(%rip), %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00001765 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00001769 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0xbb, 0xe8, 0xff, 0xff, //0x0000176d vpcmpeqb $-5957(%rip), %xmm0, %xmm2 /* LCPI0_13+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0xc3, 0xe8, 0xff, 0xff, //0x00001775 vpcmpeqb $-5949(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000177d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0xc7, 0xe8, 0xff, 0xff, //0x00001781 vpor $-5945(%rip), %xmm0, %xmm3 /* LCPI0_15+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0xcf, 0xe8, 0xff, 0xff, //0x00001789 vpcmpeqb $-5937(%rip), %xmm0, %xmm0 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0xd7, 0xe8, 0xff, 0xff, //0x00001791 vpcmpeqb $-5929(%rip), %xmm3, %xmm3 /* LCPI0_17+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00001799 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000179d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x000017a1 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x000017a5 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x000017a9 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x000017ad vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc1, //0x000017b1 vpmovmskb %xmm1, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000017b5 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x000017ba xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000017bd bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x000017c1 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000017c4 je LBB0_294 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000017ca movl $-1, %eax + 0xd3, 0xe0, //0x000017cf shll %cl, %eax + 0xf7, 0xd0, //0x000017d1 notl %eax + 0x21, 0xc7, //0x000017d3 andl %eax, %edi + 0x21, 0xc6, //0x000017d5 andl %eax, %esi + 0x21, 0xd0, //0x000017d7 andl %edx, %eax + 0x89, 0xc2, //0x000017d9 movl %eax, %edx + //0x000017db LBB0_294 + 0x8d, 0x5f, 0xff, //0x000017db leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x000017de andl %edi, %ebx + 0x0f, 0x85, 0x0f, 0x06, 0x00, 0x00, //0x000017e0 jne LBB0_353 + 0x8d, 0x5e, 0xff, //0x000017e6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000017e9 andl %esi, %ebx + 0x0f, 0x85, 0x04, 0x06, 0x00, 0x00, //0x000017eb jne LBB0_353 + 0x8d, 0x5a, 0xff, //0x000017f1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000017f4 andl %edx, %ebx + 0x0f, 0x85, 0xf9, 0x05, 0x00, 0x00, //0x000017f6 jne LBB0_353 + 0x85, 0xff, //0x000017fc testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000017fe je LBB0_300 + 0x4c, 0x89, 0xf8, //0x00001804 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001807 subq %r9, %rax + 0x0f, 0xbc, 0xff, //0x0000180a bsfl %edi, %edi + 0x48, 0x01, 0xc7, //0x0000180d addq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x00001810 cmpq $-1, %r12 + 0x0f, 0x85, 0xf3, 0x05, 0x00, 0x00, //0x00001814 jne LBB0_354 + 0x49, 0x89, 0xfc, //0x0000181a movq %rdi, %r12 + //0x0000181d LBB0_300 + 0x85, 0xf6, //0x0000181d testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000181f je LBB0_303 + 0x4c, 0x89, 0xf8, //0x00001825 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001828 subq %r9, %rax + 0x0f, 0xbc, 0xf6, //0x0000182b bsfl %esi, %esi + 0x48, 0x01, 0xc6, //0x0000182e addq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00001831 cmpq $-1, %r11 + 0x0f, 0x85, 0x4e, 0x06, 0x00, 0x00, //0x00001835 jne LBB0_359 + 0x49, 0x89, 0xf3, //0x0000183b movq %rsi, %r11 + //0x0000183e LBB0_303 + 0x85, 0xd2, //0x0000183e testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00001840 je LBB0_306 + 0x4c, 0x89, 0xf8, //0x00001846 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001849 subq %r9, %rax + 0x0f, 0xbc, 0xd2, //0x0000184c bsfl %edx, %edx + 0x48, 0x01, 0xc2, //0x0000184f addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001852 cmpq $-1, %r8 + 0x0f, 0x85, 0xab, 0x04, 0x00, 0x00, //0x00001856 jne LBB0_351 + 0x49, 0x89, 0xd0, //0x0000185c movq %rdx, %r8 + //0x0000185f LBB0_306 + 0x83, 0xf9, 0x10, //0x0000185f cmpl $16, %ecx + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00001862 jne LBB0_325 + 0x49, 0x83, 0xc7, 0x10, //0x00001868 addq $16, %r15 + 0x49, 0x83, 0xc6, 0xf0, //0x0000186c addq $-16, %r14 + 0x49, 0x83, 0xfe, 0x0f, //0x00001870 cmpq $15, %r14 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00001874 ja LBB0_292 + 0x4d, 0x89, 0xd6, //0x0000187a movq %r10, %r14 + 0x4c, 0x8b, 0x7d, 0xc0, //0x0000187d movq $-64(%rbp), %r15 + //0x00001881 LBB0_309 + 0x4d, 0x85, 0xf6, //0x00001881 testq %r14, %r14 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001884 movq $-48(%rbp), %r10 + 0x0f, 0x84, 0xe6, 0x00, 0x00, 0x00, //0x00001888 je LBB0_326 + 0x4b, 0x8d, 0x0c, 0x37, //0x0000188e leaq (%r15,%r14), %rcx + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00001892 jmp LBB0_314 + //0x00001897 LBB0_311 + 0x49, 0x89, 0xd7, //0x00001897 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x0000189a subq %r9, %r15 + 0x49, 0x83, 0xf8, 0xff, //0x0000189d cmpq $-1, %r8 + 0x0f, 0x85, 0x26, 0x06, 0x00, 0x00, //0x000018a1 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018a7 decq %r15 + 0x4d, 0x89, 0xf8, //0x000018aa movq %r15, %r8 + 0x90, 0x90, 0x90, //0x000018ad .p2align 4, 0x90 + //0x000018b0 LBB0_313 + 0x49, 0x89, 0xd7, //0x000018b0 movq %rdx, %r15 + 0x49, 0xff, 0xce, //0x000018b3 decq %r14 + 0x0f, 0x84, 0xbc, 0x05, 0x00, 0x00, //0x000018b6 je LBB0_358 + //0x000018bc LBB0_314 + 0x41, 0x0f, 0xbe, 0x37, //0x000018bc movsbl (%r15), %esi + 0x83, 0xc6, 0xd5, //0x000018c0 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x000018c3 cmpl $58, %esi + 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x000018c6 ja LBB0_326 + 0x49, 0x8d, 0x57, 0x01, //0x000018cc leaq $1(%r15), %rdx + 0x48, 0x8d, 0x3d, 0x49, 0x13, 0x00, 0x00, //0x000018d0 leaq $4937(%rip), %rdi /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x04, 0xb7, //0x000018d7 movslq (%rdi,%rsi,4), %rax + 0x48, 0x01, 0xf8, //0x000018db addq %rdi, %rax + 0xff, 0xe0, //0x000018de jmpq *%rax + //0x000018e0 LBB0_316 + 0x49, 0x89, 0xd7, //0x000018e0 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018e3 subq %r9, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x000018e6 cmpq $-1, %r11 + 0x0f, 0x85, 0xdd, 0x05, 0x00, 0x00, //0x000018ea jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018f0 decq %r15 + 0x4d, 0x89, 0xfb, //0x000018f3 movq %r15, %r11 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x000018f6 jmp LBB0_313 + //0x000018fb LBB0_318 + 0x49, 0x89, 0xd7, //0x000018fb movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018fe subq %r9, %r15 + 0x49, 0x83, 0xfc, 0xff, //0x00001901 cmpq $-1, %r12 + 0x0f, 0x85, 0xc2, 0x05, 0x00, 0x00, //0x00001905 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x0000190b decq %r15 + 0x4d, 0x89, 0xfc, //0x0000190e movq %r15, %r12 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00001911 jmp LBB0_313 + //0x00001916 LBB0_496 + 0x49, 0x01, 0xca, //0x00001916 addq %rcx, %r10 + 0xc5, 0xf8, 0x77, //0x00001919 vzeroupper + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000191c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0xfe, 0x6f, 0x3d, 0x97, 0xe7, 0xff, 0xff, //0x00001921 vmovdqu $-6249(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x6f, 0xe7, 0xff, 0xff, //0x00001929 vmovdqu $-6289(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x47, 0xe7, 0xff, 0xff, //0x00001931 vmovdqu $-6329(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0x4d, 0x89, 0xd7, //0x00001939 movq %r10, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x0000193c movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xdb, //0x00001940 testq %r11, %r11 + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00001943 jne LBB0_327 + 0xe9, 0x10, 0x10, 0x00, 0x00, //0x00001949 jmp LBB0_497 + //0x0000194e LBB0_320 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000194e movl $64, %edx + //0x00001953 LBB0_321 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001953 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001957 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x0000195a cmpq %rcx, %rdx + 0x0f, 0x82, 0x4d, 0x10, 0x00, 0x00, //0x0000195d jb LBB0_129 + //0x00001963 LBB0_322 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001963 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xfd, 0x03, 0x00, 0x00, //0x00001968 jmp LBB0_323 + //0x0000196d LBB0_325 + 0x49, 0x01, 0xcf, //0x0000196d addq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001970 movq $-48(%rbp), %r10 + //0x00001974 LBB0_326 + 0x4d, 0x85, 0xdb, //0x00001974 testq %r11, %r11 + 0x0f, 0x84, 0xe1, 0x0f, 0x00, 0x00, //0x00001977 je LBB0_497 + //0x0000197d LBB0_327 + 0x4d, 0x85, 0xc0, //0x0000197d testq %r8, %r8 + 0x0f, 0x84, 0xd8, 0x0f, 0x00, 0x00, //0x00001980 je LBB0_497 + 0x4d, 0x85, 0xe4, //0x00001986 testq %r12, %r12 + 0x0f, 0x84, 0xcf, 0x0f, 0x00, 0x00, //0x00001989 je LBB0_497 + 0x4d, 0x29, 0xcf, //0x0000198f subq %r9, %r15 + 0x49, 0x8d, 0x4f, 0xff, //0x00001992 leaq $-1(%r15), %rcx + 0x49, 0x39, 0xcb, //0x00001996 cmpq %rcx, %r11 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00001999 je LBB0_335 + 0x49, 0x39, 0xcc, //0x0000199f cmpq %rcx, %r12 + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x000019a2 je LBB0_335 + 0x49, 0x39, 0xc8, //0x000019a8 cmpq %rcx, %r8 + 0x0f, 0x84, 0x59, 0x00, 0x00, 0x00, //0x000019ab je LBB0_335 + 0x4d, 0x85, 0xc0, //0x000019b1 testq %r8, %r8 + 0xc5, 0x7e, 0x6f, 0x05, 0x24, 0xe7, 0xff, 0xff, //0x000019b4 vmovdqu $-6364(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x3c, 0xe7, 0xff, 0xff, //0x000019bc vmovdqu $-6340(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x54, 0xe7, 0xff, 0xff, //0x000019c4 vmovdqu $-6316(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x6c, 0xe7, 0xff, 0xff, //0x000019cc vmovdqu $-6292(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x84, 0xe7, 0xff, 0xff, //0x000019d4 vmovdqu $-6268(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x9c, 0xe7, 0xff, 0xff, //0x000019dc vmovdqu $-6244(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xb4, 0xe7, 0xff, 0xff, //0x000019e4 vmovdqu $-6220(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0x0f, 0x8e, 0x58, 0x00, 0x00, 0x00, //0x000019ec jle LBB0_336 + 0x49, 0x8d, 0x40, 0xff, //0x000019f2 leaq $-1(%r8), %rax + 0x49, 0x39, 0xc3, //0x000019f6 cmpq %rax, %r11 + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000019f9 je LBB0_336 + 0x49, 0xf7, 0xd0, //0x000019ff notq %r8 + 0x4d, 0x89, 0xc7, //0x00001a02 movq %r8, %r15 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x00001a05 jmp LBB0_342 + //0x00001a0a LBB0_335 + 0x49, 0xf7, 0xdf, //0x00001a0a negq %r15 + 0xc5, 0x7e, 0x6f, 0x05, 0xcb, 0xe6, 0xff, 0xff, //0x00001a0d vmovdqu $-6453(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xe3, 0xe6, 0xff, 0xff, //0x00001a15 vmovdqu $-6429(%rip), %ymm10 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xfb, 0xe6, 0xff, 0xff, //0x00001a1d vmovdqu $-6405(%rip), %ymm11 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x13, 0xe7, 0xff, 0xff, //0x00001a25 vmovdqu $-6381(%rip), %ymm12 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x2b, 0xe7, 0xff, 0xff, //0x00001a2d vmovdqu $-6357(%rip), %ymm13 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x43, 0xe7, 0xff, 0xff, //0x00001a35 vmovdqu $-6333(%rip), %ymm14 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x5b, 0xe7, 0xff, 0xff, //0x00001a3d vmovdqu $-6309(%rip), %ymm15 /* LCPI0_10+0(%rip) */ + 0xe9, 0x24, 0x01, 0x00, 0x00, //0x00001a45 jmp LBB0_342 + //0x00001a4a LBB0_336 + 0x4c, 0x89, 0xe1, //0x00001a4a movq %r12, %rcx + 0x4c, 0x09, 0xd9, //0x00001a4d orq %r11, %rcx + 0x4d, 0x39, 0xdc, //0x00001a50 cmpq %r11, %r12 + 0x0f, 0x8c, 0x00, 0x01, 0x00, 0x00, //0x00001a53 jl LBB0_341 + 0x48, 0x85, 0xc9, //0x00001a59 testq %rcx, %rcx + 0x0f, 0x88, 0xf7, 0x00, 0x00, 0x00, //0x00001a5c js LBB0_341 + 0x49, 0xf7, 0xd4, //0x00001a62 notq %r12 + 0x4d, 0x89, 0xe7, //0x00001a65 movq %r12, %r15 + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x00001a68 jmp LBB0_342 + //0x00001a6d LBB0_339 + 0x4d, 0x29, 0xfb, //0x00001a6d subq %r15, %r11 + 0x44, 0x0f, 0xbc, 0xf3, //0x00001a70 bsfl %ebx, %r14d + 0xe9, 0x3d, 0x01, 0x00, 0x00, //0x00001a74 jmp LBB0_346 + //0x00001a79 LBB0_54 + 0x4c, 0x89, 0xf9, //0x00001a79 movq %r15, %rcx + 0x4c, 0x89, 0xcb, //0x00001a7c movq %r9, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001a7f cmpq $32, %rcx + 0x0f, 0x82, 0x0e, 0x05, 0x00, 0x00, //0x00001a83 jb LBB0_370 + //0x00001a89 LBB0_55 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001a89 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001a8d vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001a91 vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001a95 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001a99 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001a9d testl %esi, %esi + 0x0f, 0x85, 0x89, 0x04, 0x00, 0x00, //0x00001a9f jne LBB0_366 + 0x4d, 0x85, 0xf6, //0x00001aa5 testq %r14, %r14 + 0x0f, 0x85, 0x97, 0x04, 0x00, 0x00, //0x00001aa8 jne LBB0_368 + 0x45, 0x31, 0xf6, //0x00001aae xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001ab1 testq %rdx, %rdx + 0x0f, 0x84, 0xd5, 0x04, 0x00, 0x00, //0x00001ab4 je LBB0_369 + //0x00001aba LBB0_60 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001aba bsfq %rdx, %rax + 0x4c, 0x29, 0xdb, //0x00001abe subq %r11, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001ac1 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001ac6 movq $-56(%rbp), %r14 + //0x00001aca LBB0_184 + 0x4d, 0x85, 0xe4, //0x00001aca testq %r12, %r12 + 0x0f, 0x88, 0xbb, 0x0c, 0x00, 0x00, //0x00001acd js LBB0_475 + 0x4d, 0x89, 0x22, //0x00001ad3 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001ad6 movq %r13, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001ad9 cmpq $0, $-88(%rbp) + 0x0f, 0x8f, 0x9c, 0xe7, 0xff, 0xff, //0x00001ade jg LBB0_3 + 0xe9, 0x00, 0x0d, 0x00, 0x00, //0x00001ae4 jmp LBB0_501 + //0x00001ae9 LBB0_84 + 0x4d, 0x89, 0xf2, //0x00001ae9 movq %r14, %r10 + 0x49, 0x89, 0xc4, //0x00001aec movq %rax, %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001aef movq $-56(%rbp), %r14 + 0x49, 0x83, 0xfa, 0x20, //0x00001af3 cmpq $32, %r10 + 0x0f, 0x82, 0xd2, 0x05, 0x00, 0x00, //0x00001af7 jb LBB0_388 + //0x00001afd LBB0_85 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001afd vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001b03 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001b07 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001b0b vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001b0f vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001b13 vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001b17 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001b1c vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001b20 vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001b24 testl %ecx, %ecx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b26 jne LBB0_379 + 0x4d, 0x85, 0xff, //0x00001b2c testq %r15, %r15 + 0x0f, 0x85, 0x09, 0x05, 0x00, 0x00, //0x00001b2f jne LBB0_381 + 0x45, 0x31, 0xff, //0x00001b35 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001b38 testq %rsi, %rsi + 0x0f, 0x84, 0x44, 0x05, 0x00, 0x00, //0x00001b3b je LBB0_382 + //0x00001b41 LBB0_88 + 0x48, 0x0f, 0xbc, 0xce, //0x00001b41 bsfq %rsi, %rcx + 0xe9, 0x40, 0x05, 0x00, 0x00, //0x00001b45 jmp LBB0_383 + //0x00001b4a LBB0_340 + 0x48, 0xf7, 0xd2, //0x00001b4a notq %rdx + 0x49, 0x89, 0xd6, //0x00001b4d movq %rdx, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001b50 movq $-48(%rbp), %rdx + 0xe9, 0x7a, 0xf5, 0xff, 0xff, //0x00001b54 jmp LBB0_197 + //0x00001b59 LBB0_341 + 0x48, 0x85, 0xc9, //0x00001b59 testq %rcx, %rcx + 0x49, 0x8d, 0x43, 0xff, //0x00001b5c leaq $-1(%r11), %rax + 0x49, 0xf7, 0xd3, //0x00001b60 notq %r11 + 0x4d, 0x0f, 0x48, 0xdf, //0x00001b63 cmovsq %r15, %r11 + 0x49, 0x39, 0xc4, //0x00001b67 cmpq %rax, %r12 + 0x4d, 0x0f, 0x44, 0xfb, //0x00001b6a cmoveq %r11, %r15 + //0x00001b6e LBB0_342 + 0x4d, 0x8b, 0x22, //0x00001b6e movq (%r10), %r12 + 0x4d, 0x85, 0xff, //0x00001b71 testq %r15, %r15 + 0x0f, 0x88, 0xee, 0x0d, 0x00, 0x00, //0x00001b74 js LBB0_499 + //0x00001b7a LBB0_343 + 0x4d, 0x01, 0xfc, //0x00001b7a addq %r15, %r12 + 0x4d, 0x89, 0x22, //0x00001b7d movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001b80 movq %r13, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001b83 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x75, 0xc8, //0x00001b88 movq $-56(%rbp), %r14 + 0x0f, 0x8f, 0xee, 0xe6, 0xff, 0xff, //0x00001b8c jg LBB0_3 + 0xe9, 0x52, 0x0c, 0x00, 0x00, //0x00001b92 jmp LBB0_501 + //0x00001b97 LBB0_344 + 0x4d, 0x29, 0xfe, //0x00001b97 subq %r15, %r14 + 0x0f, 0xbc, 0xc3, //0x00001b9a bsfl %ebx, %eax + 0x4c, 0x01, 0xf0, //0x00001b9d addq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001ba0 notq %rax + 0x49, 0x89, 0xc6, //0x00001ba3 movq %rax, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001ba6 movq $-48(%rbp), %rdx + 0xe9, 0x24, 0xf5, 0xff, 0xff, //0x00001baa jmp LBB0_197 + //0x00001baf LBB0_345 + 0x4d, 0x29, 0xfb, //0x00001baf subq %r15, %r11 + 0x45, 0x0f, 0xbc, 0xf1, //0x00001bb2 bsfl %r9d, %r14d + //0x00001bb6 LBB0_346 + 0x4d, 0x01, 0xde, //0x00001bb6 addq %r11, %r14 + 0x49, 0xf7, 0xd6, //0x00001bb9 notq %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001bbc movq $-48(%rbp), %rdx + 0xe9, 0x0e, 0xf5, 0xff, 0xff, //0x00001bc0 jmp LBB0_197 + //0x00001bc5 LBB0_347 + 0x48, 0xf7, 0xd7, //0x00001bc5 notq %rdi + 0x49, 0x89, 0xfe, //0x00001bc8 movq %rdi, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001bcb movq $-48(%rbp), %rdx + 0xe9, 0xff, 0xf4, 0xff, 0xff, //0x00001bcf jmp LBB0_197 + //0x00001bd4 LBB0_101 + 0x4c, 0x89, 0xf9, //0x00001bd4 movq %r15, %rcx + 0x4c, 0x89, 0xc3, //0x00001bd7 movq %r8, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001bda cmpq $32, %rcx + 0x0f, 0x82, 0x02, 0x06, 0x00, 0x00, //0x00001bde jb LBB0_402 + //0x00001be4 LBB0_102 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001be4 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001be8 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001bec vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001bf0 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001bf4 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001bf8 testl %esi, %esi + 0x0f, 0x85, 0x6f, 0x05, 0x00, 0x00, //0x00001bfa jne LBB0_397 + 0x4d, 0x85, 0xf6, //0x00001c00 testq %r14, %r14 + 0x0f, 0x85, 0x85, 0x05, 0x00, 0x00, //0x00001c03 jne LBB0_399 + 0x45, 0x31, 0xf6, //0x00001c09 xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001c0c testq %rdx, %rdx + 0x0f, 0x84, 0xc9, 0x05, 0x00, 0x00, //0x00001c0f je LBB0_401 + //0x00001c15 LBB0_107 + 0x4d, 0x89, 0xe0, //0x00001c15 movq %r12, %r8 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001c18 bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001c1c subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001c1f leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001c24 movq $-56(%rbp), %r14 + //0x00001c28 LBB0_205 + 0x4d, 0x85, 0xe4, //0x00001c28 testq %r12, %r12 + 0x0f, 0x88, 0x87, 0x0b, 0x00, 0x00, //0x00001c2b js LBB0_478 + 0x4d, 0x89, 0x22, //0x00001c31 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001c34 movq %r13, %rcx + 0x4d, 0x85, 0xc0, //0x00001c37 testq %r8, %r8 + 0x0f, 0x8e, 0xa9, 0x0b, 0x00, 0x00, //0x00001c3a jle LBB0_501 + 0x49, 0x8b, 0x06, //0x00001c40 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001c43 cmpq $4095, %rax + 0x0f, 0x8f, 0x33, 0x0b, 0x00, 0x00, //0x00001c49 jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001c4f leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00001c53 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001c56 movq $4, $8(%r14,%rax,8) + 0xe9, 0x1c, 0xe6, 0xff, 0xff, //0x00001c5f jmp LBB0_3 + //0x00001c64 LBB0_120 + 0x4c, 0x89, 0xf3, //0x00001c64 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001c67 movq $-96(%rbp), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001c6b movq $-56(%rbp), %r14 + 0x48, 0x83, 0xfb, 0x20, //0x00001c6f cmpq $32, %rbx + 0x0f, 0x82, 0xa3, 0x06, 0x00, 0x00, //0x00001c73 jb LBB0_420 + //0x00001c79 LBB0_121 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001c79 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001c7f vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001c83 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001c87 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001c8b vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001c8f vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001c93 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c98 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001c9c vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001ca0 testl %ecx, %ecx + 0x0f, 0x85, 0xd0, 0x05, 0x00, 0x00, //0x00001ca2 jne LBB0_411 + 0x4d, 0x85, 0xff, //0x00001ca8 testq %r15, %r15 + 0x0f, 0x85, 0xdf, 0x05, 0x00, 0x00, //0x00001cab jne LBB0_413 + 0x45, 0x31, 0xff, //0x00001cb1 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001cb4 testq %rsi, %rsi + 0x0f, 0x84, 0x1e, 0x06, 0x00, 0x00, //0x00001cb7 je LBB0_414 + //0x00001cbd LBB0_124 + 0x48, 0x0f, 0xbc, 0xce, //0x00001cbd bsfq %rsi, %rcx + 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x00001cc1 jmp LBB0_415 + //0x00001cc6 LBB0_348 + 0x49, 0x89, 0xce, //0x00001cc6 movq %rcx, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001cc9 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00001cd0 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00001cd3 movq $-48(%rbp), %rdx + 0x0f, 0x85, 0xf4, 0xf2, 0xff, 0xff, //0x00001cd7 jne LBB0_188 + 0xe9, 0xf3, 0x0a, 0x00, 0x00, //0x00001cdd jmp LBB0_481 + //0x00001ce2 LBB0_349 + 0x4d, 0x29, 0xca, //0x00001ce2 subq %r9, %r10 + 0x44, 0x0f, 0xbc, 0xfb, //0x00001ce5 bsfl %ebx, %r15d + 0x4d, 0x01, 0xd7, //0x00001ce9 addq %r10, %r15 + 0x49, 0xf7, 0xd7, //0x00001cec notq %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001cef movq $-48(%rbp), %r10 + 0xe9, 0x76, 0xfe, 0xff, 0xff, //0x00001cf3 jmp LBB0_342 + //0x00001cf8 LBB0_350 + 0x48, 0xf7, 0xd6, //0x00001cf8 notq %rsi + 0x49, 0x89, 0xf6, //0x00001cfb movq %rsi, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001cfe movq $-48(%rbp), %rdx + 0xe9, 0xcc, 0xf3, 0xff, 0xff, //0x00001d02 jmp LBB0_197 + //0x00001d07 LBB0_351 + 0x48, 0xf7, 0xd2, //0x00001d07 notq %rdx + 0x49, 0x89, 0xd7, //0x00001d0a movq %rdx, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001d0d movq $-48(%rbp), %r10 + 0xe9, 0x58, 0xfe, 0xff, 0xff, //0x00001d11 jmp LBB0_342 + //0x00001d16 LBB0_220 + 0x4c, 0x89, 0xf9, //0x00001d16 movq %r15, %rcx + 0x4c, 0x89, 0xc3, //0x00001d19 movq %r8, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001d1c cmpq $32, %rcx + 0x0f, 0x82, 0xfd, 0x07, 0x00, 0x00, //0x00001d20 jb LBB0_443 + //0x00001d26 LBB0_221 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001d26 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001d2a vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001d2e vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001d32 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001d36 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001d3a testl %esi, %esi + 0x0f, 0x85, 0x6a, 0x07, 0x00, 0x00, //0x00001d3c jne LBB0_438 + 0x4d, 0x85, 0xf6, //0x00001d42 testq %r14, %r14 + 0x0f, 0x85, 0x80, 0x07, 0x00, 0x00, //0x00001d45 jne LBB0_440 + 0x45, 0x31, 0xf6, //0x00001d4b xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001d4e testq %rdx, %rdx + 0x0f, 0x84, 0xc4, 0x07, 0x00, 0x00, //0x00001d51 je LBB0_442 + //0x00001d57 LBB0_226 + 0x4d, 0x89, 0xe0, //0x00001d57 movq %r12, %r8 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001d5a bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001d5e subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001d61 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001d66 movq $-56(%rbp), %r14 + //0x00001d6a LBB0_323 + 0x4d, 0x85, 0xe4, //0x00001d6a testq %r12, %r12 + 0x0f, 0x88, 0x45, 0x0a, 0x00, 0x00, //0x00001d6d js LBB0_478 + 0x4d, 0x89, 0x22, //0x00001d73 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001d76 movq %r13, %rcx + 0x4d, 0x85, 0xc0, //0x00001d79 testq %r8, %r8 + 0x0f, 0x8f, 0xfe, 0xe4, 0xff, 0xff, //0x00001d7c jg LBB0_3 + 0xe9, 0x62, 0x0a, 0x00, 0x00, //0x00001d82 jmp LBB0_501 + //0x00001d87 LBB0_352 + 0x49, 0xf7, 0xde, //0x00001d87 negq %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001d8a movq $-48(%rbp), %rdx + 0xe9, 0x40, 0xf3, 0xff, 0xff, //0x00001d8e jmp LBB0_197 + //0x00001d93 LBB0_259 + 0x4c, 0x89, 0xf3, //0x00001d93 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001d96 movq $-96(%rbp), %r12 + 0x48, 0x83, 0xfb, 0x20, //0x00001d9a cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001d9e movq $-56(%rbp), %r14 + 0x0f, 0x82, 0xb1, 0x08, 0x00, 0x00, //0x00001da2 jb LBB0_460 + //0x00001da8 LBB0_260 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001da8 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001dae vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001db2 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001db6 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001dba vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001dbe vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001dc2 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001dc7 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001dcb vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001dcf testl %ecx, %ecx + 0x0f, 0x85, 0xde, 0x07, 0x00, 0x00, //0x00001dd1 jne LBB0_452 + 0x4d, 0x85, 0xff, //0x00001dd7 testq %r15, %r15 + 0x0f, 0x85, 0xed, 0x07, 0x00, 0x00, //0x00001dda jne LBB0_454 + 0x45, 0x31, 0xff, //0x00001de0 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001de3 testq %rsi, %rsi + 0x0f, 0x84, 0x2c, 0x08, 0x00, 0x00, //0x00001de6 je LBB0_455 + //0x00001dec LBB0_263 + 0x48, 0x0f, 0xbc, 0xce, //0x00001dec bsfq %rsi, %rcx + 0xe9, 0x28, 0x08, 0x00, 0x00, //0x00001df0 jmp LBB0_456 + //0x00001df5 LBB0_353 + 0x4d, 0x29, 0xcf, //0x00001df5 subq %r9, %r15 + 0x0f, 0xbc, 0xc3, //0x00001df8 bsfl %ebx, %eax + 0x4c, 0x01, 0xf8, //0x00001dfb addq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00001dfe notq %rax + 0x49, 0x89, 0xc7, //0x00001e01 movq %rax, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e04 movq $-48(%rbp), %r10 + 0xe9, 0x61, 0xfd, 0xff, 0xff, //0x00001e08 jmp LBB0_342 + //0x00001e0d LBB0_354 + 0x48, 0xf7, 0xd7, //0x00001e0d notq %rdi + 0x49, 0x89, 0xff, //0x00001e10 movq %rdi, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e13 movq $-48(%rbp), %r10 + 0xe9, 0x52, 0xfd, 0xff, 0xff, //0x00001e17 jmp LBB0_342 + //0x00001e1c LBB0_355 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e1c movq $-1, %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e23 movq $-1, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e2a movq $-1, %rax + 0x4d, 0x89, 0xfe, //0x00001e31 movq %r15, %r14 + 0x49, 0x83, 0xfa, 0x10, //0x00001e34 cmpq $16, %r10 + 0x0f, 0x83, 0xc0, 0xea, 0xff, 0xff, //0x00001e38 jae LBB0_151 + 0xe9, 0x0d, 0xec, 0xff, 0xff, //0x00001e3e jmp LBB0_169 + //0x00001e43 LBB0_356 + 0x4d, 0x89, 0xcb, //0x00001e43 movq %r9, %r11 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e46 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x00001e4d xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001e50 cmpq $32, %rcx + 0x0f, 0x83, 0x2f, 0xfc, 0xff, 0xff, //0x00001e54 jae LBB0_55 + 0xe9, 0x38, 0x01, 0x00, 0x00, //0x00001e5a jmp LBB0_370 + //0x00001e5f LBB0_357 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e5f movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00001e66 xorl %r15d, %r15d + 0x49, 0x83, 0xfa, 0x20, //0x00001e69 cmpq $32, %r10 + 0x0f, 0x83, 0x8a, 0xfc, 0xff, 0xff, //0x00001e6d jae LBB0_85 + 0xe9, 0x57, 0x02, 0x00, 0x00, //0x00001e73 jmp LBB0_388 + //0x00001e78 LBB0_358 + 0x49, 0x89, 0xcf, //0x00001e78 movq %rcx, %r15 + 0x4d, 0x85, 0xdb, //0x00001e7b testq %r11, %r11 + 0x0f, 0x85, 0xf9, 0xfa, 0xff, 0xff, //0x00001e7e jne LBB0_327 + 0xe9, 0xd5, 0x0a, 0x00, 0x00, //0x00001e84 jmp LBB0_497 + //0x00001e89 LBB0_359 + 0x48, 0xf7, 0xd6, //0x00001e89 notq %rsi + 0x49, 0x89, 0xf7, //0x00001e8c movq %rsi, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e8f movq $-48(%rbp), %r10 + 0xe9, 0xd6, 0xfc, 0xff, 0xff, //0x00001e93 jmp LBB0_342 + //0x00001e98 LBB0_360 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e98 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001e9f xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001ea2 cmpq $32, %rcx + 0x0f, 0x83, 0x38, 0xfd, 0xff, 0xff, //0x00001ea6 jae LBB0_102 + 0xe9, 0x35, 0x03, 0x00, 0x00, //0x00001eac jmp LBB0_402 + //0x00001eb1 LBB0_361 + 0x49, 0x89, 0xc8, //0x00001eb1 movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001eb4 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001ebb xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001ebe cmpq $32, %rbx + 0x0f, 0x83, 0xb1, 0xfd, 0xff, 0xff, //0x00001ec2 jae LBB0_121 + 0xe9, 0x4f, 0x04, 0x00, 0x00, //0x00001ec8 jmp LBB0_420 + //0x00001ecd LBB0_365 + 0x49, 0xf7, 0xdf, //0x00001ecd negq %r15 + 0xe9, 0x99, 0xfc, 0xff, 0xff, //0x00001ed0 jmp LBB0_342 + //0x00001ed5 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001ed5 movq $-1, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001edc movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001ee3 movq $-1, %r12 + 0x4d, 0x89, 0xcf, //0x00001eea movq %r9, %r15 + 0xe9, 0xdb, 0xf7, 0xff, 0xff, //0x00001eed jmp LBB0_290 + //0x00001ef2 LBB0_363 + 0x49, 0x89, 0xd1, //0x00001ef2 movq %rdx, %r9 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ef5 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001efc xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001eff cmpq $32, %rcx + 0x0f, 0x83, 0x1d, 0xfe, 0xff, 0xff, //0x00001f03 jae LBB0_221 + 0xe9, 0x15, 0x06, 0x00, 0x00, //0x00001f09 jmp LBB0_443 + //0x00001f0e LBB0_364 + 0x49, 0x89, 0xc8, //0x00001f0e movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001f11 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001f18 xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001f1b cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001f1f movq $-56(%rbp), %r14 + 0x0f, 0x83, 0x7f, 0xfe, 0xff, 0xff, //0x00001f23 jae LBB0_260 + 0xe9, 0x2b, 0x07, 0x00, 0x00, //0x00001f29 jmp LBB0_460 + //0x00001f2e LBB0_366 + 0x49, 0x83, 0xf8, 0xff, //0x00001f2e cmpq $-1, %r8 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00001f32 jne LBB0_368 + 0x48, 0x89, 0xd8, //0x00001f38 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x00001f3b subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xc6, //0x00001f3e bsfq %rsi, %r8 + 0x49, 0x01, 0xc0, //0x00001f42 addq %rax, %r8 + //0x00001f45 LBB0_368 + 0x44, 0x89, 0xf0, //0x00001f45 movl %r14d, %eax + 0xf7, 0xd0, //0x00001f48 notl %eax + 0x21, 0xf0, //0x00001f4a andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00001f4c leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x00001f50 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x00001f53 movl %r9d, %edi + 0xf7, 0xd7, //0x00001f56 notl %edi + 0x21, 0xf7, //0x00001f58 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f5a andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x00001f60 xorl %r14d, %r14d + 0x01, 0xc7, //0x00001f63 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x00001f65 setb %r14b + 0x01, 0xff, //0x00001f69 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00001f6b xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x00001f71 andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001f74 movl $4294967295, %eax + 0x31, 0xf8, //0x00001f79 xorl %edi, %eax + 0x21, 0xc2, //0x00001f7b andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00001f7d movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001f81 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xd2, //0x00001f86 testq %rdx, %rdx + 0x0f, 0x85, 0x2b, 0xfb, 0xff, 0xff, //0x00001f89 jne LBB0_60 + //0x00001f8f LBB0_369 + 0x48, 0x83, 0xc3, 0x20, //0x00001f8f addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00001f93 addq $-32, %rcx + //0x00001f97 LBB0_370 + 0x4d, 0x85, 0xf6, //0x00001f97 testq %r14, %r14 + 0x0f, 0x85, 0x1c, 0x04, 0x00, 0x00, //0x00001f9a jne LBB0_429 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001fa0 movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00001fa4 testq %rcx, %rcx + 0x0f, 0x84, 0xeb, 0x07, 0x00, 0x00, //0x00001fa7 je LBB0_476 + //0x00001fad LBB0_372 + 0x4c, 0x89, 0xdf, //0x00001fad movq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00001fb0 notq %rdi + //0x00001fb3 LBB0_373 + 0x4c, 0x8d, 0x63, 0x01, //0x00001fb3 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00001fb7 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00001fba cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00001fbd je LBB0_378 + 0x48, 0x8d, 0x71, 0xff, //0x00001fc3 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00001fc7 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001fca je LBB0_376 + 0x48, 0x89, 0xf1, //0x00001fd0 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00001fd3 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00001fd6 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00001fd9 jne LBB0_373 + 0xe9, 0xb4, 0x07, 0x00, 0x00, //0x00001fdf jmp LBB0_476 + //0x00001fe4 LBB0_376 + 0x48, 0x85, 0xf6, //0x00001fe4 testq %rsi, %rsi + 0x0f, 0x84, 0xba, 0x09, 0x00, 0x00, //0x00001fe7 je LBB0_433 + 0x49, 0x01, 0xfc, //0x00001fed addq %rdi, %r12 + 0x49, 0x83, 0xf8, 0xff, //0x00001ff0 cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xc4, //0x00001ff4 cmoveq %r12, %r8 + 0x48, 0x83, 0xc3, 0x02, //0x00001ff8 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00001ffc addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00002000 movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002003 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002007 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000200b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002010 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002013 jne LBB0_373 + 0xe9, 0x7a, 0x07, 0x00, 0x00, //0x00002019 jmp LBB0_476 + //0x0000201e LBB0_378 + 0x4d, 0x29, 0xdc, //0x0000201e subq %r11, %r12 + 0xe9, 0xa4, 0xfa, 0xff, 0xff, //0x00002021 jmp LBB0_184 + //0x00002026 LBB0_379 + 0x49, 0x83, 0xf8, 0xff, //0x00002026 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000202a jne LBB0_381 + 0x4c, 0x89, 0xe2, //0x00002030 movq %r12, %rdx + 0x48, 0x2b, 0x55, 0xc0, //0x00002033 subq $-64(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xc1, //0x00002037 bsfq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x0000203b addq %rdx, %r8 + //0x0000203e LBB0_381 + 0x44, 0x89, 0xfa, //0x0000203e movl %r15d, %edx + 0xf7, 0xd2, //0x00002041 notl %edx + 0x21, 0xca, //0x00002043 andl %ecx, %edx + 0x8d, 0x1c, 0x12, //0x00002045 leal (%rdx,%rdx), %ebx + 0x44, 0x09, 0xfb, //0x00002048 orl %r15d, %ebx + 0x89, 0xdf, //0x0000204b movl %ebx, %edi + 0xf7, 0xd7, //0x0000204d notl %edi + 0x21, 0xcf, //0x0000204f andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002051 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00002057 xorl %r15d, %r15d + 0x01, 0xd7, //0x0000205a addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000205c setb %r15b + 0x01, 0xff, //0x00002060 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002062 xorl $1431655765, %edi + 0x21, 0xdf, //0x00002068 andl %ebx, %edi + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x0000206a movl $4294967295, %ecx + 0x31, 0xf9, //0x0000206f xorl %edi, %ecx + 0x21, 0xce, //0x00002071 andl %ecx, %esi + 0x4c, 0x8b, 0x75, 0xc8, //0x00002073 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002077 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000207c testq %rsi, %rsi + 0x0f, 0x85, 0xbc, 0xfa, 0xff, 0xff, //0x0000207f jne LBB0_88 + //0x00002085 LBB0_382 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002085 movl $64, %ecx + //0x0000208a LBB0_383 + 0x49, 0x0f, 0xbc, 0xd1, //0x0000208a bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x0000208e testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002091 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002096 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x0000209a testq %rsi, %rsi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000209d je LBB0_386 + 0x4c, 0x2b, 0x65, 0xc0, //0x000020a3 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x000020a7 cmpq %rcx, %rdi + 0x0f, 0x82, 0x12, 0x09, 0x00, 0x00, //0x000020aa jb LBB0_511 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x000020b0 leaq $1(%r12,%rcx), %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x000020b5 movq $-48(%rbp), %r10 + 0xe9, 0x0c, 0xfa, 0xff, 0xff, //0x000020b9 jmp LBB0_184 + //0x000020be LBB0_386 + 0x45, 0x85, 0xc9, //0x000020be testl %r9d, %r9d + 0x0f, 0x85, 0x0d, 0x09, 0x00, 0x00, //0x000020c1 jne LBB0_512 + 0x49, 0x83, 0xc4, 0x20, //0x000020c7 addq $32, %r12 + 0x49, 0x83, 0xc2, 0xe0, //0x000020cb addq $-32, %r10 + //0x000020cf LBB0_388 + 0x4d, 0x85, 0xff, //0x000020cf testq %r15, %r15 + 0x0f, 0x85, 0x1f, 0x03, 0x00, 0x00, //0x000020d2 jne LBB0_431 + 0x48, 0x8b, 0x45, 0xc0, //0x000020d8 movq $-64(%rbp), %rax + 0x4d, 0x85, 0xd2, //0x000020dc testq %r10, %r10 + 0x0f, 0x84, 0xc2, 0x08, 0x00, 0x00, //0x000020df je LBB0_433 + //0x000020e5 LBB0_390 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x000020e5 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x000020ea cmpb $34, %cl + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x000020ed je LBB0_396 + 0x80, 0xf9, 0x5c, //0x000020f3 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000020f6 je LBB0_394 + 0x80, 0xf9, 0x1f, //0x000020fc cmpb $31, %cl + 0x0f, 0x86, 0xed, 0x08, 0x00, 0x00, //0x000020ff jbe LBB0_513 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002105 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000210c movl $1, %edx + 0x49, 0x01, 0xd4, //0x00002111 addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002114 addq %rcx, %r10 + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002117 jne LBB0_390 + 0xe9, 0x85, 0x08, 0x00, 0x00, //0x0000211d jmp LBB0_433 + //0x00002122 LBB0_394 + 0x49, 0x83, 0xfa, 0x01, //0x00002122 cmpq $1, %r10 + 0x0f, 0x84, 0x7b, 0x08, 0x00, 0x00, //0x00002126 je LBB0_433 + 0x4c, 0x89, 0xe1, //0x0000212c movq %r12, %rcx + 0x48, 0x29, 0xc1, //0x0000212f subq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002132 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002136 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000213a movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00002141 movl $2, %edx + 0x4c, 0x8b, 0x75, 0xc8, //0x00002146 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000214a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x0000214f addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002152 addq %rcx, %r10 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00002155 jne LBB0_390 + 0xe9, 0x47, 0x08, 0x00, 0x00, //0x0000215b jmp LBB0_433 + //0x00002160 LBB0_396 + 0x49, 0x29, 0xc4, //0x00002160 subq %rax, %r12 + 0x49, 0xff, 0xc4, //0x00002163 incq %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002166 movq $-48(%rbp), %r10 + 0xe9, 0x5b, 0xf9, 0xff, 0xff, //0x0000216a jmp LBB0_184 + //0x0000216f LBB0_397 + 0x4d, 0x89, 0xc8, //0x0000216f movq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00002172 cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00002176 jne LBB0_400 + 0x48, 0x89, 0xd8, //0x0000217c movq %rbx, %rax + 0x4c, 0x29, 0xc0, //0x0000217f subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00002182 bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00002186 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002189 jmp LBB0_400 + //0x0000218e LBB0_399 + 0x4d, 0x89, 0xc8, //0x0000218e movq %r9, %r8 + //0x00002191 LBB0_400 + 0x44, 0x89, 0xf0, //0x00002191 movl %r14d, %eax + 0xf7, 0xd0, //0x00002194 notl %eax + 0x21, 0xf0, //0x00002196 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00002198 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x0000219c orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x0000219f movl %r9d, %edi + 0xf7, 0xd7, //0x000021a2 notl %edi + 0x21, 0xf7, //0x000021a4 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000021a6 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x000021ac xorl %r14d, %r14d + 0x01, 0xc7, //0x000021af addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000021b1 setb %r14b + 0x01, 0xff, //0x000021b5 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000021b7 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000021bd andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000021c0 movl $4294967295, %eax + 0x31, 0xf8, //0x000021c5 xorl %edi, %eax + 0x21, 0xc2, //0x000021c7 andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000021c9 movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000021cd vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xc1, //0x000021d2 movq %r8, %r9 + 0x48, 0x85, 0xd2, //0x000021d5 testq %rdx, %rdx + 0x0f, 0x85, 0x37, 0xfa, 0xff, 0xff, //0x000021d8 jne LBB0_107 + //0x000021de LBB0_401 + 0x48, 0x83, 0xc3, 0x20, //0x000021de addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x000021e2 addq $-32, %rcx + //0x000021e6 LBB0_402 + 0x4d, 0x85, 0xf6, //0x000021e6 testq %r14, %r14 + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x000021e9 jne LBB0_434 + 0x4c, 0x8b, 0x75, 0xc8, //0x000021ef movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x000021f3 testq %rcx, %rcx + 0x0f, 0x84, 0xc6, 0x05, 0x00, 0x00, //0x000021f6 je LBB0_479 + //0x000021fc LBB0_404 + 0x4d, 0x89, 0xe0, //0x000021fc movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x000021ff movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x00002202 notq %rdi + //0x00002205 LBB0_405 + 0x4c, 0x8d, 0x63, 0x01, //0x00002205 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00002209 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x0000220c cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x0000220f je LBB0_410 + 0x48, 0x8d, 0x71, 0xff, //0x00002215 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002219 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000221c je LBB0_408 + 0x48, 0x89, 0xf1, //0x00002222 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002225 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002228 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x0000222b jne LBB0_405 + 0xe9, 0x8c, 0x05, 0x00, 0x00, //0x00002231 jmp LBB0_479 + //0x00002236 LBB0_408 + 0x48, 0x85, 0xf6, //0x00002236 testq %rsi, %rsi + 0x0f, 0x84, 0xcf, 0x07, 0x00, 0x00, //0x00002239 je LBB0_516 + 0x49, 0x01, 0xfc, //0x0000223f addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x00002242 cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002246 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x0000224a addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000224e addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00002252 movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002255 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002259 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000225d vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002262 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002265 jne LBB0_405 + 0xe9, 0x52, 0x05, 0x00, 0x00, //0x0000226b jmp LBB0_479 + //0x00002270 LBB0_410 + 0x4d, 0x29, 0xcc, //0x00002270 subq %r9, %r12 + 0xe9, 0xb0, 0xf9, 0xff, 0xff, //0x00002273 jmp LBB0_205 + //0x00002278 LBB0_411 + 0x49, 0x83, 0xfb, 0xff, //0x00002278 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000227c jne LBB0_413 + 0x4c, 0x89, 0xe0, //0x00002282 movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x00002285 subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002289 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x0000228d addq %rax, %r11 + //0x00002290 LBB0_413 + 0x44, 0x89, 0xf8, //0x00002290 movl %r15d, %eax + 0xf7, 0xd0, //0x00002293 notl %eax + 0x21, 0xc8, //0x00002295 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00002297 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x0000229a orl %r15d, %edx + 0x89, 0xd7, //0x0000229d movl %edx, %edi + 0xf7, 0xd7, //0x0000229f notl %edi + 0x21, 0xcf, //0x000022a1 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022a3 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000022a9 xorl %r15d, %r15d + 0x01, 0xc7, //0x000022ac addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000022ae setb %r15b + 0x01, 0xff, //0x000022b2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000022b4 xorl $1431655765, %edi + 0x21, 0xd7, //0x000022ba andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000022bc movl $4294967295, %eax + 0x31, 0xf8, //0x000022c1 xorl %edi, %eax + 0x21, 0xc6, //0x000022c3 andl %eax, %esi + 0x4c, 0x8b, 0x55, 0xd0, //0x000022c5 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000022c9 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000022cd vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x000022d2 testq %rsi, %rsi + 0x0f, 0x85, 0xe2, 0xf9, 0xff, 0xff, //0x000022d5 jne LBB0_124 + //0x000022db LBB0_414 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000022db movl $64, %ecx + //0x000022e0 LBB0_415 + 0x49, 0x0f, 0xbc, 0xd1, //0x000022e0 bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x000022e4 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x000022e7 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x000022ec cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x000022f0 testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000022f3 je LBB0_418 + 0x4c, 0x2b, 0x65, 0xc0, //0x000022f9 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x000022fd cmpq %rcx, %rdi + 0x0f, 0x83, 0x1a, 0xee, 0xff, 0xff, //0x00002300 jae LBB0_204 + 0xe9, 0xd5, 0x06, 0x00, 0x00, //0x00002306 jmp LBB0_417 + //0x0000230b LBB0_418 + 0x45, 0x85, 0xc9, //0x0000230b testl %r9d, %r9d + 0x0f, 0x85, 0xe6, 0x06, 0x00, 0x00, //0x0000230e jne LBB0_514 + 0x49, 0x83, 0xc4, 0x20, //0x00002314 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002318 addq $-32, %rbx + //0x0000231c LBB0_420 + 0x4d, 0x85, 0xff, //0x0000231c testq %r15, %r15 + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x0000231f jne LBB0_436 + 0x48, 0x8b, 0x75, 0xc0, //0x00002325 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002329 testq %rbx, %rbx + 0x0f, 0x84, 0x90, 0x04, 0x00, 0x00, //0x0000232c je LBB0_479 + //0x00002332 LBB0_422 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002332 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002337 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x0000233a je LBB0_428 + 0x80, 0xf9, 0x5c, //0x00002340 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002343 je LBB0_426 + 0x80, 0xf9, 0x1f, //0x00002349 cmpb $31, %cl + 0x0f, 0x86, 0xb4, 0x06, 0x00, 0x00, //0x0000234c jbe LBB0_515 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002352 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002359 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000235e addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x00002361 addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002364 jne LBB0_422 + 0xe9, 0x53, 0x04, 0x00, 0x00, //0x0000236a jmp LBB0_479 + //0x0000236f LBB0_426 + 0x48, 0x83, 0xfb, 0x01, //0x0000236f cmpq $1, %rbx + 0x0f, 0x84, 0x95, 0x06, 0x00, 0x00, //0x00002373 je LBB0_516 + 0x4c, 0x89, 0xe0, //0x00002379 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x0000237c subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000237f cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002383 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002387 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000238e movl $2, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002393 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002397 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000239b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x000023a0 addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x000023a3 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x000023a6 jne LBB0_422 + 0xe9, 0x11, 0x04, 0x00, 0x00, //0x000023ac jmp LBB0_479 + //0x000023b1 LBB0_428 + 0x49, 0x29, 0xf4, //0x000023b1 subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000023b4 incq %r12 + 0xe9, 0x6c, 0xf8, 0xff, 0xff, //0x000023b7 jmp LBB0_205 + //0x000023bc LBB0_429 + 0x48, 0x85, 0xc9, //0x000023bc testq %rcx, %rcx + 0x0f, 0x84, 0xe2, 0x05, 0x00, 0x00, //0x000023bf je LBB0_433 + 0x4c, 0x89, 0xd8, //0x000023c5 movq %r11, %rax + 0x48, 0xf7, 0xd0, //0x000023c8 notq %rax + 0x48, 0x01, 0xd8, //0x000023cb addq %rbx, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023ce cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023d2 cmoveq %rax, %r8 + 0x48, 0xff, 0xc3, //0x000023d6 incq %rbx + 0x48, 0xff, 0xc9, //0x000023d9 decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x000023dc movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000023e0 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000023e4 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x000023e9 testq %rcx, %rcx + 0x0f, 0x85, 0xbb, 0xfb, 0xff, 0xff, //0x000023ec jne LBB0_372 + 0xe9, 0xa1, 0x03, 0x00, 0x00, //0x000023f2 jmp LBB0_476 + //0x000023f7 LBB0_431 + 0x4d, 0x85, 0xd2, //0x000023f7 testq %r10, %r10 + 0x0f, 0x84, 0xa7, 0x05, 0x00, 0x00, //0x000023fa je LBB0_433 + 0x48, 0x8b, 0x45, 0xc0, //0x00002400 movq $-64(%rbp), %rax + 0x48, 0x89, 0xc1, //0x00002404 movq %rax, %rcx + 0x48, 0xf7, 0xd1, //0x00002407 notq %rcx + 0x4c, 0x01, 0xe1, //0x0000240a addq %r12, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000240d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002411 cmoveq %rcx, %r8 + 0x49, 0xff, 0xc4, //0x00002415 incq %r12 + 0x49, 0xff, 0xca, //0x00002418 decq %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000241b movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000241f vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x85, 0xd2, //0x00002424 testq %r10, %r10 + 0x0f, 0x85, 0xb8, 0xfc, 0xff, 0xff, //0x00002427 jne LBB0_390 + 0xe9, 0x75, 0x05, 0x00, 0x00, //0x0000242d jmp LBB0_433 + //0x00002432 LBB0_434 + 0x48, 0x85, 0xc9, //0x00002432 testq %rcx, %rcx + 0x0f, 0x84, 0xd3, 0x05, 0x00, 0x00, //0x00002435 je LBB0_516 + 0x4c, 0x89, 0xc8, //0x0000243b movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x0000243e notq %rax + 0x48, 0x01, 0xd8, //0x00002441 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002444 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002448 cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x0000244c incq %rbx + 0x48, 0xff, 0xc9, //0x0000244f decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002452 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002456 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000245a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x0000245f testq %rcx, %rcx + 0x0f, 0x85, 0x94, 0xfd, 0xff, 0xff, //0x00002462 jne LBB0_404 + 0xe9, 0x55, 0x03, 0x00, 0x00, //0x00002468 jmp LBB0_479 + //0x0000246d LBB0_436 + 0x48, 0x85, 0xdb, //0x0000246d testq %rbx, %rbx + 0x0f, 0x84, 0x98, 0x05, 0x00, 0x00, //0x00002470 je LBB0_516 + 0x48, 0x8b, 0x75, 0xc0, //0x00002476 movq $-64(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x0000247a movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x0000247d notq %rax + 0x4c, 0x01, 0xe0, //0x00002480 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002483 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002487 cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x0000248b incq %r12 + 0x48, 0xff, 0xcb, //0x0000248e decq %rbx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002491 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002495 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002499 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x0000249e testq %rbx, %rbx + 0x0f, 0x85, 0x8b, 0xfe, 0xff, 0xff, //0x000024a1 jne LBB0_422 + 0xe9, 0x16, 0x03, 0x00, 0x00, //0x000024a7 jmp LBB0_479 + //0x000024ac LBB0_438 + 0x4d, 0x89, 0xc8, //0x000024ac movq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x000024af cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x000024b3 jne LBB0_441 + 0x48, 0x89, 0xd8, //0x000024b9 movq %rbx, %rax + 0x4c, 0x29, 0xc0, //0x000024bc subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x000024bf bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x000024c3 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000024c6 jmp LBB0_441 + //0x000024cb LBB0_440 + 0x4d, 0x89, 0xc8, //0x000024cb movq %r9, %r8 + //0x000024ce LBB0_441 + 0x44, 0x89, 0xf0, //0x000024ce movl %r14d, %eax + 0xf7, 0xd0, //0x000024d1 notl %eax + 0x21, 0xf0, //0x000024d3 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x000024d5 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x000024d9 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x000024dc movl %r9d, %edi + 0xf7, 0xd7, //0x000024df notl %edi + 0x21, 0xf7, //0x000024e1 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000024e3 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x000024e9 xorl %r14d, %r14d + 0x01, 0xc7, //0x000024ec addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000024ee setb %r14b + 0x01, 0xff, //0x000024f2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000024f4 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000024fa andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000024fd movl $4294967295, %eax + 0x31, 0xc7, //0x00002502 xorl %eax, %edi + 0x21, 0xfa, //0x00002504 andl %edi, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002506 movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000250a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xc1, //0x0000250f movq %r8, %r9 + 0x48, 0x85, 0xd2, //0x00002512 testq %rdx, %rdx + 0x0f, 0x85, 0x3c, 0xf8, 0xff, 0xff, //0x00002515 jne LBB0_226 + //0x0000251b LBB0_442 + 0x48, 0x83, 0xc3, 0x20, //0x0000251b addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x0000251f addq $-32, %rcx + //0x00002523 LBB0_443 + 0x4d, 0x85, 0xf6, //0x00002523 testq %r14, %r14 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00002526 jne LBB0_469 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000252c movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00002530 testq %rcx, %rcx + 0x0f, 0x84, 0x89, 0x02, 0x00, 0x00, //0x00002533 je LBB0_479 + //0x00002539 LBB0_445 + 0x4d, 0x89, 0xe0, //0x00002539 movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x0000253c movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x0000253f notq %rdi + //0x00002542 LBB0_446 + 0x4c, 0x8d, 0x63, 0x01, //0x00002542 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00002546 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00002549 cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x0000254c je LBB0_451 + 0x48, 0x8d, 0x71, 0xff, //0x00002552 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002556 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002559 je LBB0_449 + 0x48, 0x89, 0xf1, //0x0000255f movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002562 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002565 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00002568 jne LBB0_446 + 0xe9, 0x4f, 0x02, 0x00, 0x00, //0x0000256e jmp LBB0_479 + //0x00002573 LBB0_449 + 0x48, 0x85, 0xf6, //0x00002573 testq %rsi, %rsi + 0x0f, 0x84, 0x92, 0x04, 0x00, 0x00, //0x00002576 je LBB0_516 + 0x49, 0x01, 0xfc, //0x0000257c addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x0000257f cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002583 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x00002587 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000258b addq $-2, %rcx + 0x48, 0x89, 0xce, //0x0000258f movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002592 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002596 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000259a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000259f testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x000025a2 jne LBB0_446 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x000025a8 jmp LBB0_479 + //0x000025ad LBB0_451 + 0x4d, 0x29, 0xcc, //0x000025ad subq %r9, %r12 + 0xe9, 0xb5, 0xf7, 0xff, 0xff, //0x000025b0 jmp LBB0_323 + //0x000025b5 LBB0_452 + 0x49, 0x83, 0xfb, 0xff, //0x000025b5 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000025b9 jne LBB0_454 + 0x4c, 0x89, 0xe0, //0x000025bf movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x000025c2 subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x000025c6 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x000025ca addq %rax, %r11 + //0x000025cd LBB0_454 + 0x44, 0x89, 0xf8, //0x000025cd movl %r15d, %eax + 0xf7, 0xd0, //0x000025d0 notl %eax + 0x21, 0xc8, //0x000025d2 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x000025d4 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x000025d7 orl %r15d, %edx + 0x89, 0xd7, //0x000025da movl %edx, %edi + 0xf7, 0xd7, //0x000025dc notl %edi + 0x21, 0xcf, //0x000025de andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000025e0 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000025e6 xorl %r15d, %r15d + 0x01, 0xc7, //0x000025e9 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000025eb setb %r15b + 0x01, 0xff, //0x000025ef addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000025f1 xorl $1431655765, %edi + 0x21, 0xd7, //0x000025f7 andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000025f9 movl $4294967295, %eax + 0x31, 0xf8, //0x000025fe xorl %edi, %eax + 0x21, 0xc6, //0x00002600 andl %eax, %esi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002602 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002606 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000260a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000260f testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xf7, 0xff, 0xff, //0x00002612 jne LBB0_263 + //0x00002618 LBB0_455 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002618 movl $64, %ecx + //0x0000261d LBB0_456 + 0x49, 0x0f, 0xbc, 0xd1, //0x0000261d bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x00002621 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002624 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002629 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x0000262d testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002630 je LBB0_458 + 0x4c, 0x2b, 0x65, 0xc0, //0x00002636 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x0000263a cmpq %rcx, %rdi + 0x0f, 0x83, 0x20, 0xf3, 0xff, 0xff, //0x0000263d jae LBB0_322 + 0xe9, 0x98, 0x03, 0x00, 0x00, //0x00002643 jmp LBB0_417 + //0x00002648 LBB0_458 + 0x45, 0x85, 0xc9, //0x00002648 testl %r9d, %r9d + 0x0f, 0x85, 0xa9, 0x03, 0x00, 0x00, //0x0000264b jne LBB0_514 + 0x49, 0x83, 0xc4, 0x20, //0x00002651 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002655 addq $-32, %rbx + //0x00002659 LBB0_460 + 0x4d, 0x85, 0xff, //0x00002659 testq %r15, %r15 + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x0000265c jne LBB0_471 + 0x48, 0x8b, 0x75, 0xc0, //0x00002662 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002666 testq %rbx, %rbx + 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00002669 je LBB0_479 + //0x0000266f LBB0_462 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x0000266f movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002674 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00002677 je LBB0_468 + 0x80, 0xf9, 0x5c, //0x0000267d cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002680 je LBB0_466 + 0x80, 0xf9, 0x1f, //0x00002686 cmpb $31, %cl + 0x0f, 0x86, 0x77, 0x03, 0x00, 0x00, //0x00002689 jbe LBB0_515 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000268f movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002696 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000269b addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x0000269e addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000026a1 jne LBB0_462 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x000026a7 jmp LBB0_479 + //0x000026ac LBB0_466 + 0x48, 0x83, 0xfb, 0x01, //0x000026ac cmpq $1, %rbx + 0x0f, 0x84, 0x58, 0x03, 0x00, 0x00, //0x000026b0 je LBB0_516 + 0x4c, 0x89, 0xe0, //0x000026b6 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x000026b9 subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000026bc cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x000026c0 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000026c4 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000026cb movl $2, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000026d0 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000026d4 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000026d8 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x000026dd addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x000026e0 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x000026e3 jne LBB0_462 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x000026e9 jmp LBB0_479 + //0x000026ee LBB0_468 + 0x49, 0x29, 0xf4, //0x000026ee subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000026f1 incq %r12 + 0xe9, 0x71, 0xf6, 0xff, 0xff, //0x000026f4 jmp LBB0_323 + //0x000026f9 LBB0_469 + 0x48, 0x85, 0xc9, //0x000026f9 testq %rcx, %rcx + 0x0f, 0x84, 0x0c, 0x03, 0x00, 0x00, //0x000026fc je LBB0_516 + 0x4c, 0x89, 0xc8, //0x00002702 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00002705 notq %rax + 0x48, 0x01, 0xd8, //0x00002708 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000270b cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000270f cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x00002713 incq %rbx + 0x48, 0xff, 0xc9, //0x00002716 decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002719 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000271d movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002721 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x00002726 testq %rcx, %rcx + 0x0f, 0x85, 0x0a, 0xfe, 0xff, 0xff, //0x00002729 jne LBB0_445 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x0000272f jmp LBB0_479 + //0x00002734 LBB0_471 + 0x48, 0x85, 0xdb, //0x00002734 testq %rbx, %rbx + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x00002737 je LBB0_516 + 0x48, 0x8b, 0x75, 0xc0, //0x0000273d movq $-64(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x00002741 movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x00002744 notq %rax + 0x4c, 0x01, 0xe0, //0x00002747 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000274a cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000274e cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x00002752 incq %r12 + 0x48, 0xff, 0xcb, //0x00002755 decq %rbx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002758 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000275c movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002760 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x00002765 testq %rbx, %rbx + 0x0f, 0x85, 0x01, 0xff, 0xff, 0xff, //0x00002768 jne LBB0_462 + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000276e jmp LBB0_479 + //0x00002773 LBB0_473 + 0x4d, 0x89, 0x2a, //0x00002773 movq %r13, (%r10) + //0x00002776 LBB0_474 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002776 movq $-1, %rcx + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000277d jmp LBB0_501 + //0x00002782 LBB0_489 + 0x48, 0xc7, 0xc1, 0xf9, 0xff, 0xff, 0xff, //0x00002782 movq $-7, %rcx + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x00002789 jmp LBB0_501 + //0x0000278e LBB0_475 + 0x49, 0x83, 0xfc, 0xff, //0x0000278e cmpq $-1, %r12 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00002792 jne LBB0_487 + //0x00002798 LBB0_476 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002798 movq $-1, %r12 + 0x4c, 0x8b, 0x45, 0xb8, //0x0000279f movq $-72(%rbp), %r8 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000027a3 jmp LBB0_487 + //0x000027a8 LBB0_477 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000027a8 movq $-1, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x000027af movq $-48(%rbp), %rdx + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x000027b3 jmp LBB0_481 + //0x000027b8 LBB0_478 + 0x49, 0x83, 0xfc, 0xff, //0x000027b8 cmpq $-1, %r12 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x000027bc jne LBB0_506 + //0x000027c2 LBB0_479 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000027c2 movq $-1, %r12 + 0x4c, 0x8b, 0x5d, 0xb8, //0x000027c9 movq $-72(%rbp), %r11 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000027cd jmp LBB0_506 + //0x000027d2 LBB0_480 + 0x4c, 0x89, 0xf1, //0x000027d2 movq %r14, %rcx + //0x000027d5 LBB0_481 + 0x48, 0x8b, 0x02, //0x000027d5 movq (%rdx), %rax + 0x48, 0x29, 0xc8, //0x000027d8 subq %rcx, %rax + 0x48, 0x83, 0xc0, 0xfe, //0x000027db addq $-2, %rax + 0x48, 0x89, 0x02, //0x000027df movq %rax, (%rdx) + //0x000027e2 LBB0_500 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000027e2 movq $-2, %rcx + //0x000027e9 LBB0_501 + 0x48, 0x89, 0xc8, //0x000027e9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x48, //0x000027ec addq $72, %rsp + 0x5b, //0x000027f0 popq %rbx + 0x41, 0x5c, //0x000027f1 popq %r12 + 0x41, 0x5d, //0x000027f3 popq %r13 + 0x41, 0x5e, //0x000027f5 popq %r14 + 0x41, 0x5f, //0x000027f7 popq %r15 + 0x5d, //0x000027f9 popq %rbp + 0xc5, 0xf8, 0x77, //0x000027fa vzeroupper + 0xc3, //0x000027fd retq + //0x000027fe LBB0_490 + 0x49, 0x89, 0x12, //0x000027fe movq %rdx, (%r10) + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x00002801 jmp LBB0_501 + //0x00002806 LBB0_482 + 0x49, 0x83, 0xf8, 0xff, //0x00002806 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000280a jne LBB0_485 + 0x48, 0x0f, 0xbc, 0xc6, //0x00002810 bsfq %rsi, %rax + 0x4c, 0x2b, 0x65, 0xc0, //0x00002814 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002818 addq %rax, %r12 + //0x0000281b LBB0_484 + 0x4d, 0x89, 0xe0, //0x0000281b movq %r12, %r8 + //0x0000281e LBB0_485 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000281e movq $-2, %r12 + //0x00002825 LBB0_486 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002825 movq $-48(%rbp), %r10 + //0x00002829 LBB0_487 + 0x4d, 0x89, 0x02, //0x00002829 movq %r8, (%r10) + 0x4c, 0x89, 0xe1, //0x0000282c movq %r12, %rcx + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x0000282f jmp LBB0_501 + //0x00002834 LBB0_502 + 0x49, 0x83, 0xfb, 0xff, //0x00002834 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002838 jne LBB0_505 + 0x48, 0x0f, 0xbc, 0xc6, //0x0000283e bsfq %rsi, %rax + 0x4c, 0x2b, 0x65, 0xc0, //0x00002842 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002846 addq %rax, %r12 + //0x00002849 LBB0_504 + 0x4d, 0x89, 0xe3, //0x00002849 movq %r12, %r11 + //0x0000284c LBB0_505 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000284c movq $-2, %r12 + //0x00002853 LBB0_506 + 0x4d, 0x89, 0x1a, //0x00002853 movq %r11, (%r10) + 0x4c, 0x89, 0xe1, //0x00002856 movq %r12, %rcx + 0xe9, 0x8b, 0xff, 0xff, 0xff, //0x00002859 jmp LBB0_501 + //0x0000285e LBB0_233 + 0x4d, 0x89, 0x2a, //0x0000285e movq %r13, (%r10) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002861 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x6e, //0x00002868 cmpb $110, (%r15) + 0x0f, 0x85, 0x77, 0xff, 0xff, 0xff, //0x0000286c jne LBB0_501 + 0x49, 0x8d, 0x45, 0x01, //0x00002872 leaq $1(%r13), %rax + 0x49, 0x89, 0x02, //0x00002876 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x01, 0x75, //0x00002879 cmpb $117, $1(%r9,%r13) + 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x0000287f jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x00002885 leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x00002889 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x6c, //0x0000288c cmpb $108, $2(%r9,%r13) + 0x0f, 0x85, 0x51, 0xff, 0xff, 0xff, //0x00002892 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x00002898 leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x0000289c movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x6c, //0x0000289f cmpb $108, $3(%r9,%r13) + 0x0f, 0x85, 0x3e, 0xff, 0xff, 0xff, //0x000028a5 jne LBB0_501 + 0xe9, 0xa2, 0x00, 0x00, 0x00, //0x000028ab jmp LBB0_237 + //0x000028b0 LBB0_491 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000028b0 movq $-2, %rcx + 0x80, 0xfa, 0x61, //0x000028b7 cmpb $97, %dl + 0x0f, 0x85, 0x29, 0xff, 0xff, 0xff, //0x000028ba jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x000028c0 leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x000028c4 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x6c, //0x000028c7 cmpb $108, $2(%r9,%r13) + 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x000028cd jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x000028d3 leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x000028d7 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x73, //0x000028da cmpb $115, $3(%r9,%r13) + 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x000028e0 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x04, //0x000028e6 leaq $4(%r13), %rax + 0x49, 0x89, 0x02, //0x000028ea movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x04, 0x65, //0x000028ed cmpb $101, $4(%r9,%r13) + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000028f3 jne LBB0_501 + 0x49, 0x83, 0xc5, 0x05, //0x000028f9 addq $5, %r13 + 0x4d, 0x89, 0x2a, //0x000028fd movq %r13, (%r10) + 0xe9, 0xe4, 0xfe, 0xff, 0xff, //0x00002900 jmp LBB0_501 + //0x00002905 LBB0_245 + 0x4d, 0x89, 0x2a, //0x00002905 movq %r13, (%r10) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002908 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x74, //0x0000290f cmpb $116, (%r15) + 0x0f, 0x85, 0xd0, 0xfe, 0xff, 0xff, //0x00002913 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x01, //0x00002919 leaq $1(%r13), %rax + 0x49, 0x89, 0x02, //0x0000291d movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x01, 0x72, //0x00002920 cmpb $114, $1(%r9,%r13) + 0x0f, 0x85, 0xbd, 0xfe, 0xff, 0xff, //0x00002926 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x0000292c leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x00002930 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x75, //0x00002933 cmpb $117, $2(%r9,%r13) + 0x0f, 0x85, 0xaa, 0xfe, 0xff, 0xff, //0x00002939 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x0000293f leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x00002943 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x65, //0x00002946 cmpb $101, $3(%r9,%r13) + 0x0f, 0x85, 0x97, 0xfe, 0xff, 0xff, //0x0000294c jne LBB0_501 + //0x00002952 LBB0_237 + 0x49, 0x83, 0xc5, 0x04, //0x00002952 addq $4, %r13 + 0x4d, 0x89, 0x2a, //0x00002956 movq %r13, (%r10) + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00002959 jmp LBB0_501 + //0x0000295e LBB0_497 + 0x4d, 0x8b, 0x22, //0x0000295e movq (%r10), %r12 + //0x00002961 LBB0_498 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002961 movq $-1, %r15 + //0x00002968 LBB0_499 + 0x49, 0xf7, 0xd7, //0x00002968 notq %r15 + 0x4d, 0x01, 0xe7, //0x0000296b addq %r12, %r15 + 0x4d, 0x89, 0x3a, //0x0000296e movq %r15, (%r10) + 0xe9, 0x6c, 0xfe, 0xff, 0xff, //0x00002971 jmp LBB0_500 + //0x00002976 LBB0_510 + 0x4c, 0x89, 0x65, 0xb8, //0x00002976 movq %r12, $-72(%rbp) + 0xe9, 0x43, 0xfe, 0xff, 0xff, //0x0000297a jmp LBB0_479 + //0x0000297f LBB0_507 + 0x4c, 0x89, 0x65, 0xb8, //0x0000297f movq %r12, $-72(%rbp) + 0xe9, 0x10, 0xfe, 0xff, 0xff, //0x00002983 jmp LBB0_476 + //0x00002988 LBB0_508 + 0x4c, 0x89, 0x65, 0xb8, //0x00002988 movq %r12, $-72(%rbp) + 0x4c, 0x8b, 0x55, 0xd0, //0x0000298c movq $-48(%rbp), %r10 + 0xe9, 0x03, 0xfe, 0xff, 0xff, //0x00002990 jmp LBB0_476 + //0x00002995 LBB0_509 + 0x4c, 0x01, 0xe2, //0x00002995 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002998 movq $-2, %r12 + 0x49, 0x89, 0xd0, //0x0000299f movq %rdx, %r8 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x000029a2 jmp LBB0_487 + //0x000029a7 LBB0_433 + 0x4c, 0x8b, 0x55, 0xd0, //0x000029a7 movq $-48(%rbp), %r10 + 0xe9, 0xe8, 0xfd, 0xff, 0xff, //0x000029ab jmp LBB0_476 + //0x000029b0 LBB0_129 + 0x4c, 0x01, 0xe2, //0x000029b0 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029b3 movq $-2, %r12 + 0x49, 0x89, 0xd3, //0x000029ba movq %rdx, %r11 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x000029bd jmp LBB0_506 + //0x000029c2 LBB0_511 + 0x4c, 0x01, 0xe7, //0x000029c2 addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029c5 movq $-2, %r12 + 0x49, 0x89, 0xf8, //0x000029cc movq %rdi, %r8 + 0xe9, 0x51, 0xfe, 0xff, 0xff, //0x000029cf jmp LBB0_486 + //0x000029d4 LBB0_512 + 0x4c, 0x2b, 0x65, 0xc0, //0x000029d4 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029d8 addq %rdx, %r12 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x000029db jmp LBB0_484 + //0x000029e0 LBB0_417 + 0x4c, 0x01, 0xe7, //0x000029e0 addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029e3 movq $-2, %r12 + 0x49, 0x89, 0xfb, //0x000029ea movq %rdi, %r11 + 0xe9, 0x61, 0xfe, 0xff, 0xff, //0x000029ed jmp LBB0_506 + //0x000029f2 LBB0_513 + 0x49, 0x29, 0xc4, //0x000029f2 subq %rax, %r12 + 0xe9, 0x21, 0xfe, 0xff, 0xff, //0x000029f5 jmp LBB0_484 + //0x000029fa LBB0_514 + 0x4c, 0x2b, 0x65, 0xc0, //0x000029fa subq $-64(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029fe addq %rdx, %r12 + 0xe9, 0x43, 0xfe, 0xff, 0xff, //0x00002a01 jmp LBB0_504 + //0x00002a06 LBB0_515 + 0x49, 0x29, 0xf4, //0x00002a06 subq %rsi, %r12 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x00002a09 jmp LBB0_504 + //0x00002a0e LBB0_516 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002a0e movq $-48(%rbp), %r10 + 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00002a12 jmp LBB0_479 + 0x90, //0x00002a17 .p2align 2, 0x90 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_63, LBB0_63-LJTI0_0 + // // .set L0_0_set_44, LBB0_44-LJTI0_0 + // // .set L0_0_set_61, LBB0_61-LJTI0_0 + // // .set L0_0_set_42, LBB0_42-LJTI0_0 + // // .set L0_0_set_65, LBB0_65-LJTI0_0 + //0x00002a18 LJTI0_0 + 0xc4, 0xda, 0xff, 0xff, //0x00002a18 .long L0_0_set_39 + 0x6c, 0xdc, 0xff, 0xff, //0x00002a1c .long L0_0_set_63 + 0xfb, 0xda, 0xff, 0xff, //0x00002a20 .long L0_0_set_44 + 0x55, 0xdc, 0xff, 0xff, //0x00002a24 .long L0_0_set_61 + 0xdb, 0xda, 0xff, 0xff, //0x00002a28 .long L0_0_set_42 + 0x97, 0xdc, 0xff, 0xff, //0x00002a2c .long L0_0_set_65 + // // .set L0_1_set_501, LBB0_501-LJTI0_1 + // // .set L0_1_set_500, LBB0_500-LJTI0_1 + // // .set L0_1_set_211, LBB0_211-LJTI0_1 + // // .set L0_1_set_227, LBB0_227-LJTI0_1 + // // .set L0_1_set_69, LBB0_69-LJTI0_1 + // // .set L0_1_set_209, LBB0_209-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_231, LBB0_231-LJTI0_1 + // // .set L0_1_set_243, LBB0_243-LJTI0_1 + // // .set L0_1_set_238, LBB0_238-LJTI0_1 + //0x00002a30 LJTI0_1 + 0xb9, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_501 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a38 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a48 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a58 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a60 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a70 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a7c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a80 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a84 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a88 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a8c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a90 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a94 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a98 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a9c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aac .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab4 .long L0_1_set_500 + 0x1e, 0xe7, 0xff, 0xff, //0x00002ab8 .long L0_1_set_211 + 0xb2, 0xfd, 0xff, 0xff, //0x00002abc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002acc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002adc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ae0 .long L0_1_set_500 + 0x6d, 0xe8, 0xff, 0xff, //0x00002ae4 .long L0_1_set_227 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ae8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aec .long L0_1_set_500 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af0 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af4 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af8 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002afc .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b00 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b04 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b08 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b0c .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b10 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b14 .long L0_1_set_69 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b18 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b1c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b20 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b24 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b28 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b2c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b30 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b34 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b38 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b3c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b40 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b44 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b48 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b4c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b50 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b54 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b58 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b5c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b60 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b64 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b68 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b6c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b70 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b74 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b78 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b7c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b80 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b84 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b88 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b8c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b90 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b94 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b98 .long L0_1_set_500 + 0xfa, 0xe6, 0xff, 0xff, //0x00002b9c .long L0_1_set_209 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bac .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bbc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc4 .long L0_1_set_500 + 0xf8, 0xe8, 0xff, 0xff, //0x00002bc8 .long L0_1_set_240 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bcc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bdc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be4 .long L0_1_set_500 + 0xad, 0xe8, 0xff, 0xff, //0x00002be8 .long L0_1_set_231 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bec .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bfc .long L0_1_set_500 + 0x38, 0xe9, 0xff, 0xff, //0x00002c00 .long L0_1_set_243 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c04 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c08 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c0c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c10 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c14 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c18 .long L0_1_set_500 + 0xd4, 0xe8, 0xff, 0xff, //0x00002c1c .long L0_1_set_238 + // // .set L0_2_set_311, LBB0_311-LJTI0_2 + // // .set L0_2_set_326, LBB0_326-LJTI0_2 + // // .set L0_2_set_318, LBB0_318-LJTI0_2 + // // .set L0_2_set_313, LBB0_313-LJTI0_2 + // // .set L0_2_set_316, LBB0_316-LJTI0_2 + //0x00002c20 LJTI0_2 + 0x77, 0xec, 0xff, 0xff, //0x00002c20 .long L0_2_set_311 + 0x54, 0xed, 0xff, 0xff, //0x00002c24 .long L0_2_set_326 + 0x77, 0xec, 0xff, 0xff, //0x00002c28 .long L0_2_set_311 + 0xdb, 0xec, 0xff, 0xff, //0x00002c2c .long L0_2_set_318 + 0x54, 0xed, 0xff, 0xff, //0x00002c30 .long L0_2_set_326 + 0x90, 0xec, 0xff, 0xff, //0x00002c34 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c38 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c3c .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c40 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c44 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c48 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c4c .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c50 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c54 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c58 .long L0_2_set_313 + 0x54, 0xed, 0xff, 0xff, //0x00002c5c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c60 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c64 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c68 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c6c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c70 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c74 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c78 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c7c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c80 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c84 .long L0_2_set_326 + 0xc0, 0xec, 0xff, 0xff, //0x00002c88 .long L0_2_set_316 + 0x54, 0xed, 0xff, 0xff, //0x00002c8c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c90 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c94 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c98 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c9c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cac .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cbc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ccc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cdc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cec .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cfc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002d00 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002d04 .long L0_2_set_326 + 0xc0, 0xec, 0xff, 0xff, //0x00002d08 .long L0_2_set_316 + // // .set L0_3_set_171, LBB0_171-LJTI0_3 + // // .set L0_3_set_187, LBB0_187-LJTI0_3 + // // .set L0_3_set_178, LBB0_178-LJTI0_3 + // // .set L0_3_set_173, LBB0_173-LJTI0_3 + // // .set L0_3_set_176, LBB0_176-LJTI0_3 + //0x00002d0c LJTI0_3 + 0x56, 0xdd, 0xff, 0xff, //0x00002d0c .long L0_3_set_171 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d10 .long L0_3_set_187 + 0x56, 0xdd, 0xff, 0xff, //0x00002d14 .long L0_3_set_171 + 0xbf, 0xdd, 0xff, 0xff, //0x00002d18 .long L0_3_set_178 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d1c .long L0_3_set_187 + 0x74, 0xdd, 0xff, 0xff, //0x00002d20 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d24 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d28 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d2c .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d30 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d34 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d38 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d3c .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d40 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d44 .long L0_3_set_173 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d48 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d4c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d50 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d54 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d58 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d5c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d60 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d64 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d68 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d6c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d70 .long L0_3_set_187 + 0xa4, 0xdd, 0xff, 0xff, //0x00002d74 .long L0_3_set_176 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d78 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d7c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d80 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d84 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d88 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d8c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d90 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d94 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d98 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d9c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dac .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dbc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dcc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002ddc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dec .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002df0 .long L0_3_set_187 + 0xa4, 0xdd, 0xff, 0xff, //0x00002df4 .long L0_3_set_176 + //0x00002df8 .p2align 2, 0x00 + //0x00002df8 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002df8 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one.go new file mode 100644 index 000000000..3d02752f5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_one uintptr + +//go:nosplit +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast.go new file mode 100644 index 000000000..3f814eab9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_one_fast uintptr + +//go:nosplit +func skip_one_fast(s *string, p *int) (ret int) { + return F_skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_subr.go new file mode 100644 index 000000000..5d52c292c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_one_fast = 336 +) + +const ( + _stack__skip_one_fast = 176 +) + +const ( + _size__skip_one_fast = 2804 +) + +var ( + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {847, 176}, + {848, 168}, + {850, 160}, + {852, 152}, + {854, 144}, + {856, 136}, + {860, 128}, + {2804, 176}, + } +) + +var _cfunc_skip_one_fast = []loader.CFunc{ + {"_skip_one_fast_entry", 0, _entry__skip_one_fast, 0, nil}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_text_amd64.go new file mode 100644 index 000000000..f74f8149a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_fast_text_amd64.go @@ -0,0 +1,952 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_skip_one_fast = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, // .byte 32 + 0x00, //0x00000001 .byte 0 + 0x00, //0x00000002 .byte 0 + 0x00, //0x00000003 .byte 0 + 0x00, //0x00000004 .byte 0 + 0x00, //0x00000005 .byte 0 + 0x00, //0x00000006 .byte 0 + 0x00, //0x00000007 .byte 0 + 0x00, //0x00000008 .byte 0 + 0x09, //0x00000009 .byte 9 + 0x0a, //0x0000000a .byte 10 + 0x00, //0x0000000b .byte 0 + 0x00, //0x0000000c .byte 0 + 0x0d, //0x0000000d .byte 13 + 0x00, //0x0000000e .byte 0 + 0x00, //0x0000000f .byte 0 + 0x20, //0x00000010 .byte 32 + 0x00, //0x00000011 .byte 0 + 0x00, //0x00000012 .byte 0 + 0x00, //0x00000013 .byte 0 + 0x00, //0x00000014 .byte 0 + 0x00, //0x00000015 .byte 0 + 0x00, //0x00000016 .byte 0 + 0x00, //0x00000017 .byte 0 + 0x00, //0x00000018 .byte 0 + 0x09, //0x00000019 .byte 9 + 0x0a, //0x0000001a .byte 10 + 0x00, //0x0000001b .byte 0 + 0x00, //0x0000001c .byte 0 + 0x0d, //0x0000001d .byte 13 + 0x00, //0x0000001e .byte 0 + 0x00, //0x0000001f .byte 0 + //0x00000020 LCPI0_1 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00000020 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00000030 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000040 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000060 LCPI0_3 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000060 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000070 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000080 LCPI0_7 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000080 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000090 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000000a0 LCPI0_8 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000000b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000000c0 LCPI0_9 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000000c0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000000d0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x000000e0 LCPI0_10 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000000e0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000000f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00000100 LCPI0_11 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000100 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000110 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00000120 .p2align 4, 0x00 + //0x00000120 LCPI0_4 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00000120 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000130 LCPI0_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000130 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000140 LCPI0_6 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000140 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000150 .p2align 4, 0x90 + //0x00000150 _skip_one_fast + 0x55, //0x00000150 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000151 movq %rsp, %rbp + 0x41, 0x57, //0x00000154 pushq %r15 + 0x41, 0x56, //0x00000156 pushq %r14 + 0x41, 0x55, //0x00000158 pushq %r13 + 0x41, 0x54, //0x0000015a pushq %r12 + 0x53, //0x0000015c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000015d subq $128, %rsp + 0x4c, 0x8b, 0x37, //0x00000164 movq (%rdi), %r14 + 0x4c, 0x8b, 0x47, 0x08, //0x00000167 movq $8(%rdi), %r8 + 0x48, 0x8b, 0x06, //0x0000016b movq (%rsi), %rax + 0x4c, 0x39, 0xc0, //0x0000016e cmpq %r8, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00000171 jae LBB0_5 + 0x41, 0x8a, 0x0c, 0x06, //0x00000177 movb (%r14,%rax), %cl + 0x80, 0xf9, 0x0d, //0x0000017b cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000017e je LBB0_5 + 0x80, 0xf9, 0x20, //0x00000184 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00000187 je LBB0_5 + 0x80, 0xc1, 0xf7, //0x0000018d addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000190 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00000193 jbe LBB0_5 + 0x48, 0x89, 0xc1, //0x00000199 movq %rax, %rcx + 0xe9, 0x89, 0x01, 0x00, 0x00, //0x0000019c jmp LBB0_32 + //0x000001a1 LBB0_5 + 0x48, 0x8d, 0x48, 0x01, //0x000001a1 leaq $1(%rax), %rcx + 0x4c, 0x39, 0xc1, //0x000001a5 cmpq %r8, %rcx + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000001a8 jae LBB0_9 + 0x41, 0x8a, 0x14, 0x0e, //0x000001ae movb (%r14,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000001b2 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000001b5 je LBB0_9 + 0x80, 0xfa, 0x20, //0x000001bb cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000001be je LBB0_9 + 0x80, 0xc2, 0xf7, //0x000001c4 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001c7 cmpb $1, %dl + 0x0f, 0x87, 0x5a, 0x01, 0x00, 0x00, //0x000001ca ja LBB0_32 + //0x000001d0 LBB0_9 + 0x48, 0x8d, 0x48, 0x02, //0x000001d0 leaq $2(%rax), %rcx + 0x4c, 0x39, 0xc1, //0x000001d4 cmpq %r8, %rcx + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000001d7 jae LBB0_13 + 0x41, 0x8a, 0x14, 0x0e, //0x000001dd movb (%r14,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000001e1 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000001e4 je LBB0_13 + 0x80, 0xfa, 0x20, //0x000001ea cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000001ed je LBB0_13 + 0x80, 0xc2, 0xf7, //0x000001f3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001f6 cmpb $1, %dl + 0x0f, 0x87, 0x2b, 0x01, 0x00, 0x00, //0x000001f9 ja LBB0_32 + //0x000001ff LBB0_13 + 0x48, 0x8d, 0x48, 0x03, //0x000001ff leaq $3(%rax), %rcx + 0x4c, 0x39, 0xc1, //0x00000203 cmpq %r8, %rcx + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000206 jae LBB0_17 + 0x41, 0x8a, 0x14, 0x0e, //0x0000020c movb (%r14,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x00000210 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000213 je LBB0_17 + 0x80, 0xfa, 0x20, //0x00000219 cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000021c je LBB0_17 + 0x80, 0xc2, 0xf7, //0x00000222 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000225 cmpb $1, %dl + 0x0f, 0x87, 0xfc, 0x00, 0x00, 0x00, //0x00000228 ja LBB0_32 + //0x0000022e LBB0_17 + 0x48, 0x8d, 0x48, 0x04, //0x0000022e leaq $4(%rax), %rcx + 0x4c, 0x89, 0xc2, //0x00000232 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x00000235 subq %rcx, %rdx + 0x0f, 0x86, 0xbf, 0x00, 0x00, 0x00, //0x00000238 jbe LBB0_30 + 0x4c, 0x01, 0xf1, //0x0000023e addq %r14, %rcx + 0x48, 0x83, 0xfa, 0x20, //0x00000241 cmpq $32, %rdx + 0x0f, 0x82, 0x57, 0x00, 0x00, 0x00, //0x00000245 jb LBB0_23 + 0x4d, 0x89, 0xc2, //0x0000024b movq %r8, %r10 + 0x49, 0x29, 0xc2, //0x0000024e subq %rax, %r10 + 0x49, 0x83, 0xc2, 0xdc, //0x00000251 addq $-36, %r10 + 0x4c, 0x89, 0xd3, //0x00000255 movq %r10, %rbx + 0x48, 0x83, 0xe3, 0xe0, //0x00000258 andq $-32, %rbx + 0x48, 0x01, 0xc3, //0x0000025c addq %rax, %rbx + 0x4d, 0x8d, 0x4c, 0x1e, 0x24, //0x0000025f leaq $36(%r14,%rbx), %r9 + 0x41, 0x83, 0xe2, 0x1f, //0x00000264 andl $31, %r10d + 0xc5, 0xfe, 0x6f, 0x05, 0x90, 0xfd, 0xff, 0xff, //0x00000268 vmovdqu $-624(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + //0x00000270 .p2align 4, 0x90 + //0x00000270 LBB0_20 + 0xc5, 0xfe, 0x6f, 0x09, //0x00000270 vmovdqu (%rcx), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000274 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x00000279 vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc1, //0x0000027d vpmovmskb %ymm1, %eax + 0x83, 0xf8, 0xff, //0x00000281 cmpl $-1, %eax + 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00000284 jne LBB0_31 + 0x48, 0x83, 0xc1, 0x20, //0x0000028a addq $32, %rcx + 0x48, 0x83, 0xc2, 0xe0, //0x0000028e addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x00000292 cmpq $31, %rdx + 0x0f, 0x87, 0xd4, 0xff, 0xff, 0xff, //0x00000296 ja LBB0_20 + 0x4c, 0x89, 0xd2, //0x0000029c movq %r10, %rdx + 0x4c, 0x89, 0xc9, //0x0000029f movq %r9, %rcx + //0x000002a2 LBB0_23 + 0x48, 0x85, 0xd2, //0x000002a2 testq %rdx, %rdx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000002a5 je LBB0_29 + 0x4c, 0x8d, 0x0c, 0x11, //0x000002ab leaq (%rcx,%rdx), %r9 + 0x48, 0xff, 0xc1, //0x000002af incq %rcx + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002b2 movabsq $4294977024, %rbx + //0x000002bc LBB0_25 + 0x0f, 0xbe, 0x41, 0xff, //0x000002bc movsbl $-1(%rcx), %eax + 0x83, 0xf8, 0x20, //0x000002c0 cmpl $32, %eax + 0x0f, 0x87, 0x1c, 0x09, 0x00, 0x00, //0x000002c3 ja LBB0_128 + 0x48, 0x0f, 0xa3, 0xc3, //0x000002c9 btq %rax, %rbx + 0x0f, 0x83, 0x12, 0x09, 0x00, 0x00, //0x000002cd jae LBB0_128 + 0x48, 0xff, 0xca, //0x000002d3 decq %rdx + 0x48, 0xff, 0xc1, //0x000002d6 incq %rcx + 0x48, 0x85, 0xd2, //0x000002d9 testq %rdx, %rdx + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000002dc jne LBB0_25 + 0x4c, 0x89, 0xc9, //0x000002e2 movq %r9, %rcx + //0x000002e5 LBB0_29 + 0x4c, 0x29, 0xf1, //0x000002e5 subq %r14, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000002e8 movq $-1, %rax + 0x4c, 0x39, 0xc1, //0x000002ef cmpq %r8, %rcx + 0x0f, 0x82, 0x32, 0x00, 0x00, 0x00, //0x000002f2 jb LBB0_32 + 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x000002f8 jmp LBB0_56 + //0x000002fd LBB0_30 + 0x48, 0x89, 0x0e, //0x000002fd movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000300 movq $-1, %rax + 0xe9, 0x8f, 0x01, 0x00, 0x00, //0x00000307 jmp LBB0_56 + //0x0000030c LBB0_31 + 0x4c, 0x29, 0xf1, //0x0000030c subq %r14, %rcx + 0xf7, 0xd0, //0x0000030f notl %eax + 0x48, 0x98, //0x00000311 cltq + 0x48, 0x0f, 0xbc, 0xc0, //0x00000313 bsfq %rax, %rax + 0x48, 0x01, 0xc1, //0x00000317 addq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000031a movq $-1, %rax + 0x4c, 0x39, 0xc1, //0x00000321 cmpq %r8, %rcx + 0x0f, 0x83, 0x71, 0x01, 0x00, 0x00, //0x00000324 jae LBB0_56 + //0x0000032a LBB0_32 + 0x48, 0x8d, 0x59, 0x01, //0x0000032a leaq $1(%rcx), %rbx + 0x48, 0x89, 0x1e, //0x0000032e movq %rbx, (%rsi) + 0x41, 0x0f, 0xbe, 0x14, 0x0e, //0x00000331 movsbl (%r14,%rcx), %edx + 0x83, 0xfa, 0x7b, //0x00000336 cmpl $123, %edx + 0x0f, 0x87, 0x81, 0x01, 0x00, 0x00, //0x00000339 ja LBB0_58 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000033f movq $-1, %rax + 0x4c, 0x8d, 0x05, 0xf7, 0x08, 0x00, 0x00, //0x00000346 leaq $2295(%rip), %r8 /* LJTI0_0+0(%rip) */ + 0x49, 0x63, 0x14, 0x90, //0x0000034d movslq (%r8,%rdx,4), %rdx + 0x4c, 0x01, 0xc2, //0x00000351 addq %r8, %rdx + 0xff, 0xe2, //0x00000354 jmpq *%rdx + //0x00000356 LBB0_34 + 0x48, 0x8b, 0x57, 0x08, //0x00000356 movq $8(%rdi), %rdx + 0x48, 0x89, 0xd0, //0x0000035a movq %rdx, %rax + 0x48, 0x29, 0xd8, //0x0000035d subq %rbx, %rax + 0x4c, 0x01, 0xf3, //0x00000360 addq %r14, %rbx + 0x48, 0x83, 0xf8, 0x20, //0x00000363 cmpq $32, %rax + 0x0f, 0x82, 0x6b, 0x00, 0x00, 0x00, //0x00000367 jb LBB0_39 + 0x48, 0x29, 0xca, //0x0000036d subq %rcx, %rdx + 0x48, 0x83, 0xc2, 0xdf, //0x00000370 addq $-33, %rdx + 0x48, 0x89, 0xd7, //0x00000374 movq %rdx, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x00000377 andq $-32, %rdi + 0x48, 0x01, 0xcf, //0x0000037b addq %rcx, %rdi + 0x4d, 0x8d, 0x44, 0x3e, 0x21, //0x0000037e leaq $33(%r14,%rdi), %r8 + 0x83, 0xe2, 0x1f, //0x00000383 andl $31, %edx + 0xc5, 0xfe, 0x6f, 0x05, 0x92, 0xfc, 0xff, 0xff, //0x00000386 vmovdqu $-878(%rip), %ymm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xaa, 0xfc, 0xff, 0xff, //0x0000038e vmovdqu $-854(%rip), %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0xc2, 0xfc, 0xff, 0xff, //0x00000396 vmovdqu $-830(%rip), %ymm2 /* LCPI0_3+0(%rip) */ + 0x90, 0x90, //0x0000039e .p2align 4, 0x90 + //0x000003a0 LBB0_36 + 0xc5, 0xfe, 0x6f, 0x1b, //0x000003a0 vmovdqu (%rbx), %ymm3 + 0xc5, 0xe5, 0x74, 0xe0, //0x000003a4 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xe5, 0xeb, 0xd9, //0x000003a8 vpor %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0xda, //0x000003ac vpcmpeqb %ymm2, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdc, //0x000003b0 vpor %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0xd7, 0xfb, //0x000003b4 vpmovmskb %ymm3, %edi + 0x85, 0xff, //0x000003b8 testl %edi, %edi + 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x000003ba jne LBB0_52 + 0x48, 0x83, 0xc3, 0x20, //0x000003c0 addq $32, %rbx + 0x48, 0x83, 0xc0, 0xe0, //0x000003c4 addq $-32, %rax + 0x48, 0x83, 0xf8, 0x1f, //0x000003c8 cmpq $31, %rax + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000003cc ja LBB0_36 + 0x48, 0x89, 0xd0, //0x000003d2 movq %rdx, %rax + 0x4c, 0x89, 0xc3, //0x000003d5 movq %r8, %rbx + //0x000003d8 LBB0_39 + 0x48, 0x83, 0xf8, 0x10, //0x000003d8 cmpq $16, %rax + 0x0f, 0x82, 0x64, 0x00, 0x00, 0x00, //0x000003dc jb LBB0_44 + 0x48, 0x8d, 0x50, 0xf0, //0x000003e2 leaq $-16(%rax), %rdx + 0x48, 0x89, 0xd7, //0x000003e6 movq %rdx, %rdi + 0x48, 0x83, 0xe7, 0xf0, //0x000003e9 andq $-16, %rdi + 0x4c, 0x8d, 0x44, 0x1f, 0x10, //0x000003ed leaq $16(%rdi,%rbx), %r8 + 0x83, 0xe2, 0x0f, //0x000003f2 andl $15, %edx + 0xc5, 0xfa, 0x6f, 0x05, 0x23, 0xfd, 0xff, 0xff, //0x000003f5 vmovdqu $-733(%rip), %xmm0 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x0d, 0x2b, 0xfd, 0xff, 0xff, //0x000003fd vmovdqu $-725(%rip), %xmm1 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x33, 0xfd, 0xff, 0xff, //0x00000405 vmovdqu $-717(%rip), %xmm2 /* LCPI0_6+0(%rip) */ + //0x0000040d LBB0_41 + 0xc5, 0xfa, 0x6f, 0x1b, //0x0000040d vmovdqu (%rbx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00000411 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xeb, 0xd9, //0x00000415 vpor %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x00000419 vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x0000041d vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00000421 vpmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x00000425 testw %di, %di + 0x0f, 0x85, 0xaf, 0x07, 0x00, 0x00, //0x00000428 jne LBB0_127 + 0x48, 0x83, 0xc3, 0x10, //0x0000042e addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x00000432 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00000436 cmpq $15, %rax + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000043a ja LBB0_41 + 0x48, 0x89, 0xd0, //0x00000440 movq %rdx, %rax + 0x4c, 0x89, 0xc3, //0x00000443 movq %r8, %rbx + //0x00000446 LBB0_44 + 0x48, 0x85, 0xc0, //0x00000446 testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00000449 je LBB0_51 + 0x48, 0x8d, 0x3c, 0x03, //0x0000044f leaq (%rbx,%rax), %rdi + //0x00000453 LBB0_46 + 0x0f, 0xb6, 0x13, //0x00000453 movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x00000456 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000459 je LBB0_51 + 0x80, 0xfa, 0x7d, //0x0000045f cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00000462 je LBB0_51 + 0x80, 0xfa, 0x5d, //0x00000468 cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000046b je LBB0_51 + 0x48, 0xff, 0xc3, //0x00000471 incq %rbx + 0x48, 0xff, 0xc8, //0x00000474 decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00000477 jne LBB0_46 + 0x48, 0x89, 0xfb, //0x0000047d movq %rdi, %rbx + //0x00000480 LBB0_51 + 0x4c, 0x29, 0xf3, //0x00000480 subq %r14, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00000483 jmp LBB0_54 + //0x00000488 LBB0_52 + 0x48, 0x63, 0xc7, //0x00000488 movslq %edi, %rax + //0x0000048b LBB0_53 + 0x48, 0x0f, 0xbc, 0xc0, //0x0000048b bsfq %rax, %rax + 0x4c, 0x29, 0xf3, //0x0000048f subq %r14, %rbx + 0x48, 0x01, 0xc3, //0x00000492 addq %rax, %rbx + //0x00000495 LBB0_54 + 0x48, 0x89, 0x1e, //0x00000495 movq %rbx, (%rsi) + //0x00000498 LBB0_55 + 0x48, 0x89, 0xc8, //0x00000498 movq %rcx, %rax + //0x0000049b LBB0_56 + 0x48, 0x8d, 0x65, 0xd8, //0x0000049b leaq $-40(%rbp), %rsp + 0x5b, //0x0000049f popq %rbx + 0x41, 0x5c, //0x000004a0 popq %r12 + 0x41, 0x5d, //0x000004a2 popq %r13 + 0x41, 0x5e, //0x000004a4 popq %r14 + 0x41, 0x5f, //0x000004a6 popq %r15 + 0x5d, //0x000004a8 popq %rbp + 0xc5, 0xf8, 0x77, //0x000004a9 vzeroupper + 0xc3, //0x000004ac retq + //0x000004ad LBB0_57 + 0x48, 0x8d, 0x51, 0x04, //0x000004ad leaq $4(%rcx), %rdx + 0x48, 0x3b, 0x57, 0x08, //0x000004b1 cmpq $8(%rdi), %rdx + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x000004b5 ja LBB0_56 + 0xe9, 0xbb, 0x03, 0x00, 0x00, //0x000004bb jmp LBB0_95 + //0x000004c0 LBB0_58 + 0x48, 0x89, 0x0e, //0x000004c0 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000004c3 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x000004ca jmp LBB0_56 + //0x000004cf LBB0_59 + 0x4c, 0x8b, 0x4f, 0x08, //0x000004cf movq $8(%rdi), %r9 + 0x4d, 0x89, 0xcf, //0x000004d3 movq %r9, %r15 + 0x49, 0x29, 0xdf, //0x000004d6 subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x000004d9 cmpq $32, %r15 + 0x0f, 0x8c, 0x2b, 0x07, 0x00, 0x00, //0x000004dd jl LBB0_130 + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000004e3 movl $4294967295, %r8d + 0x4d, 0x8d, 0x14, 0x0e, //0x000004e9 leaq (%r14,%rcx), %r10 + 0x49, 0x29, 0xc9, //0x000004ed subq %rcx, %r9 + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x000004f0 movl $31, %edx + 0x45, 0x31, 0xff, //0x000004f5 xorl %r15d, %r15d + 0xc5, 0xfe, 0x6f, 0x05, 0x80, 0xfb, 0xff, 0xff, //0x000004f8 vmovdqu $-1152(%rip), %ymm0 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x98, 0xfb, 0xff, 0xff, //0x00000500 vmovdqu $-1128(%rip), %ymm1 /* LCPI0_8+0(%rip) */ + 0x45, 0x31, 0xe4, //0x00000508 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000050b .p2align 4, 0x90 + //0x00000510 LBB0_61 + 0xc4, 0x81, 0x7e, 0x6f, 0x54, 0x3a, 0x01, //0x00000510 vmovdqu $1(%r10,%r15), %ymm2 + 0xc5, 0xed, 0x74, 0xd8, //0x00000517 vpcmpeqb %ymm0, %ymm2, %ymm3 + 0xc5, 0x7d, 0xd7, 0xdb, //0x0000051b vpmovmskb %ymm3, %r11d + 0xc5, 0xed, 0x74, 0xd1, //0x0000051f vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00000523 vpmovmskb %ymm2, %edi + 0x4d, 0x85, 0xe4, //0x00000527 testq %r12, %r12 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000052a jne LBB0_64 + 0x85, 0xff, //0x00000530 testl %edi, %edi + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00000532 jne LBB0_64 + 0x45, 0x31, 0xe4, //0x00000538 xorl %r12d, %r12d + 0xe9, 0x3b, 0x00, 0x00, 0x00, //0x0000053b jmp LBB0_65 + //0x00000540 .p2align 4, 0x90 + //0x00000540 LBB0_64 + 0x44, 0x89, 0xe3, //0x00000540 movl %r12d, %ebx + 0x44, 0x31, 0xc3, //0x00000543 xorl %r8d, %ebx + 0x21, 0xfb, //0x00000546 andl %edi, %ebx + 0x44, 0x8d, 0x2c, 0x1b, //0x00000548 leal (%rbx,%rbx), %r13d + 0x45, 0x09, 0xe5, //0x0000054c orl %r12d, %r13d + 0x41, 0x8d, 0xb8, 0xab, 0xaa, 0xaa, 0xaa, //0x0000054f leal $-1431655765(%r8), %edi + 0x44, 0x31, 0xef, //0x00000556 xorl %r13d, %edi + 0x21, 0xdf, //0x00000559 andl %ebx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000055b andl $-1431655766, %edi + 0x45, 0x31, 0xe4, //0x00000561 xorl %r12d, %r12d + 0x01, 0xdf, //0x00000564 addl %ebx, %edi + 0x41, 0x0f, 0x92, 0xc4, //0x00000566 setb %r12b + 0x01, 0xff, //0x0000056a addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000056c xorl $1431655765, %edi + 0x44, 0x21, 0xef, //0x00000572 andl %r13d, %edi + 0x44, 0x31, 0xc7, //0x00000575 xorl %r8d, %edi + 0x41, 0x21, 0xfb, //0x00000578 andl %edi, %r11d + //0x0000057b LBB0_65 + 0x45, 0x85, 0xdb, //0x0000057b testl %r11d, %r11d + 0x0f, 0x85, 0xea, 0x05, 0x00, 0x00, //0x0000057e jne LBB0_121 + 0x49, 0x83, 0xc7, 0x20, //0x00000584 addq $32, %r15 + 0x49, 0x8d, 0x7c, 0x11, 0xe0, //0x00000588 leaq $-32(%r9,%rdx), %rdi + 0x48, 0x83, 0xc2, 0xe0, //0x0000058d addq $-32, %rdx + 0x48, 0x83, 0xff, 0x3f, //0x00000591 cmpq $63, %rdi + 0x0f, 0x8f, 0x75, 0xff, 0xff, 0xff, //0x00000595 jg LBB0_61 + 0x4d, 0x85, 0xe4, //0x0000059b testq %r12, %r12 + 0x0f, 0x85, 0x7e, 0x06, 0x00, 0x00, //0x0000059e jne LBB0_132 + 0x4b, 0x8d, 0x5c, 0x17, 0x01, //0x000005a4 leaq $1(%r15,%r10), %rbx + 0x49, 0xf7, 0xd7, //0x000005a9 notq %r15 + 0x4d, 0x01, 0xcf, //0x000005ac addq %r9, %r15 + //0x000005af LBB0_69 + 0x4d, 0x85, 0xff, //0x000005af testq %r15, %r15 + 0x0f, 0x8f, 0xee, 0x05, 0x00, 0x00, //0x000005b2 jg LBB0_124 + 0xe9, 0xde, 0xfe, 0xff, 0xff, //0x000005b8 jmp LBB0_56 + //0x000005bd LBB0_70 + 0x4c, 0x8b, 0x47, 0x08, //0x000005bd movq $8(%rdi), %r8 + 0x49, 0x29, 0xd8, //0x000005c1 subq %rbx, %r8 + 0x49, 0x01, 0xde, //0x000005c4 addq %rbx, %r14 + 0x31, 0xd2, //0x000005c7 xorl %edx, %edx + 0x48, 0x89, 0x54, 0x24, 0x18, //0x000005c9 movq %rdx, $24(%rsp) + 0xc5, 0xfe, 0x6f, 0x05, 0xaa, 0xfa, 0xff, 0xff, //0x000005ce vmovdqu $-1366(%rip), %ymm0 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xc2, 0xfa, 0xff, 0xff, //0x000005d6 vmovdqu $-1342(%rip), %ymm1 /* LCPI0_8+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x000005de vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfe, 0x6f, 0x1d, 0xf6, 0xfa, 0xff, 0xff, //0x000005e2 vmovdqu $-1290(%rip), %ymm3 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x0e, 0xfb, 0xff, 0xff, //0x000005ea vmovdqu $-1266(%rip), %ymm4 /* LCPI0_11+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x000005f2 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xe4, //0x000005f7 xorl %r12d, %r12d + 0x45, 0x31, 0xff, //0x000005fa xorl %r15d, %r15d + 0x45, 0x31, 0xc9, //0x000005fd xorl %r9d, %r9d + 0x49, 0x83, 0xf8, 0x40, //0x00000600 cmpq $64, %r8 + 0x0f, 0x8c, 0x40, 0x01, 0x00, 0x00, //0x00000604 jl LBB0_79 + //0x0000060a LBB0_73 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3e, //0x0000060a vmovdqu (%r14), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x76, 0x20, //0x0000060f vmovdqu $32(%r14), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00000615 vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x00000619 vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x0000061e vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd0, //0x00000622 vpmovmskb %ymm8, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x00000627 shlq $32, %rdx + 0x49, 0x09, 0xd5, //0x0000062b orq %rdx, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x0000062e vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xd0, //0x00000632 vpmovmskb %ymm8, %r10d + 0xc5, 0x4d, 0x74, 0xc1, //0x00000637 vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x0000063b vpmovmskb %ymm8, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00000640 shlq $32, %rbx + 0x49, 0x09, 0xda, //0x00000644 orq %rbx, %r10 + 0x4c, 0x89, 0xd2, //0x00000647 movq %r10, %rdx + 0x4c, 0x09, 0xe2, //0x0000064a orq %r12, %rdx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x0000064d je LBB0_75 + 0x4c, 0x89, 0xe2, //0x00000653 movq %r12, %rdx + 0x48, 0xf7, 0xd2, //0x00000656 notq %rdx + 0x4c, 0x21, 0xd2, //0x00000659 andq %r10, %rdx + 0x48, 0x8d, 0x1c, 0x12, //0x0000065c leaq (%rdx,%rdx), %rbx + 0x4c, 0x09, 0xe3, //0x00000660 orq %r12, %rbx + 0x49, 0x89, 0xdc, //0x00000663 movq %rbx, %r12 + 0x49, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000666 movabsq $-6148914691236517206, %r11 + 0x4d, 0x31, 0xdc, //0x00000670 xorq %r11, %r12 + 0x4d, 0x21, 0xda, //0x00000673 andq %r11, %r10 + 0x4d, 0x21, 0xe2, //0x00000676 andq %r12, %r10 + 0x45, 0x31, 0xe4, //0x00000679 xorl %r12d, %r12d + 0x49, 0x01, 0xd2, //0x0000067c addq %rdx, %r10 + 0x41, 0x0f, 0x92, 0xc4, //0x0000067f setb %r12b + 0x4d, 0x01, 0xd2, //0x00000683 addq %r10, %r10 + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000686 movabsq $6148914691236517205, %rdx + 0x49, 0x31, 0xd2, //0x00000690 xorq %rdx, %r10 + 0x49, 0x21, 0xda, //0x00000693 andq %rbx, %r10 + 0x49, 0xf7, 0xd2, //0x00000696 notq %r10 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000699 jmp LBB0_76 + //0x0000069e LBB0_75 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000069e movq $-1, %r10 + 0x45, 0x31, 0xe4, //0x000006a5 xorl %r12d, %r12d + //0x000006a8 LBB0_76 + 0x4d, 0x21, 0xea, //0x000006a8 andq %r13, %r10 + 0xc4, 0xc1, 0xf9, 0x6e, 0xea, //0x000006ab vmovq %r10, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x000006b0 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x000006b6 vmovq %xmm5, %r13 + 0x4c, 0x33, 0x6c, 0x24, 0x18, //0x000006bb xorq $24(%rsp), %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x000006c0 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0x7d, 0xd7, 0xdd, //0x000006c4 vpmovmskb %ymm5, %r11d + 0xc5, 0xcd, 0x74, 0xeb, //0x000006c8 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x000006cc vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x000006d0 shlq $32, %rdx + 0x49, 0x09, 0xd3, //0x000006d4 orq %rdx, %r11 + 0x4d, 0x89, 0xea, //0x000006d7 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x000006da notq %r10 + 0x4d, 0x21, 0xd3, //0x000006dd andq %r10, %r11 + 0xc5, 0xc5, 0x74, 0xec, //0x000006e0 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x000006e4 vpmovmskb %ymm5, %edx + 0xc5, 0xcd, 0x74, 0xec, //0x000006e8 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x000006ec vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x000006f0 shlq $32, %rbx + 0x48, 0x09, 0xda, //0x000006f4 orq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x000006f7 andq %r10, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x000006fa je LBB0_71 + //0x00000700 .p2align 4, 0x90 + //0x00000700 LBB0_77 + 0x4c, 0x8d, 0x52, 0xff, //0x00000700 leaq $-1(%rdx), %r10 + 0x4c, 0x89, 0xd3, //0x00000704 movq %r10, %rbx + 0x4c, 0x21, 0xdb, //0x00000707 andq %r11, %rbx + 0xf3, 0x48, 0x0f, 0xb8, 0xdb, //0x0000070a popcntq %rbx, %rbx + 0x4c, 0x01, 0xfb, //0x0000070f addq %r15, %rbx + 0x4c, 0x39, 0xcb, //0x00000712 cmpq %r9, %rbx + 0x0f, 0x86, 0x22, 0x04, 0x00, 0x00, //0x00000715 jbe LBB0_120 + 0x49, 0xff, 0xc1, //0x0000071b incq %r9 + 0x4c, 0x21, 0xd2, //0x0000071e andq %r10, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00000721 jne LBB0_77 + //0x00000727 LBB0_71 + 0x49, 0xc1, 0xfd, 0x3f, //0x00000727 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xd3, //0x0000072b popcntq %r11, %rdx + 0x49, 0x01, 0xd7, //0x00000730 addq %rdx, %r15 + 0x49, 0x83, 0xc6, 0x40, //0x00000733 addq $64, %r14 + 0x49, 0x83, 0xc0, 0xc0, //0x00000737 addq $-64, %r8 + 0x4c, 0x89, 0x6c, 0x24, 0x18, //0x0000073b movq %r13, $24(%rsp) + 0x49, 0x83, 0xf8, 0x40, //0x00000740 cmpq $64, %r8 + 0x0f, 0x8d, 0xc0, 0xfe, 0xff, 0xff, //0x00000744 jge LBB0_73 + //0x0000074a LBB0_79 + 0x4d, 0x85, 0xc0, //0x0000074a testq %r8, %r8 + 0x0f, 0x8e, 0xc3, 0x04, 0x00, 0x00, //0x0000074d jle LBB0_131 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00000753 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00000759 vmovups %ymm9, $32(%rsp) + 0x44, 0x89, 0xf2, //0x0000075f movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x00000762 andl $4095, %edx + 0x81, 0xfa, 0xc1, 0x0f, 0x00, 0x00, //0x00000768 cmpl $4033, %edx + 0x0f, 0x82, 0x96, 0xfe, 0xff, 0xff, //0x0000076e jb LBB0_73 + 0x49, 0x83, 0xf8, 0x20, //0x00000774 cmpq $32, %r8 + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00000778 jb LBB0_83 + 0xc4, 0xc1, 0x7e, 0x6f, 0x2e, //0x0000077e vmovdqu (%r14), %ymm5 + 0xc5, 0xfe, 0x7f, 0x6c, 0x24, 0x20, //0x00000783 vmovdqu %ymm5, $32(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00000789 addq $32, %r14 + 0x49, 0x8d, 0x58, 0xe0, //0x0000078d leaq $-32(%r8), %rbx + 0x4c, 0x8d, 0x54, 0x24, 0x40, //0x00000791 leaq $64(%rsp), %r10 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00000796 jmp LBB0_84 + //0x0000079b LBB0_83 + 0x4c, 0x8d, 0x54, 0x24, 0x20, //0x0000079b leaq $32(%rsp), %r10 + 0x4c, 0x89, 0xc3, //0x000007a0 movq %r8, %rbx + //0x000007a3 LBB0_84 + 0x48, 0x83, 0xfb, 0x10, //0x000007a3 cmpq $16, %rbx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x000007a7 jb LBB0_85 + 0xc4, 0xc1, 0x7a, 0x6f, 0x2e, //0x000007ad vmovdqu (%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x2a, //0x000007b2 vmovdqu %xmm5, (%r10) + 0x49, 0x83, 0xc6, 0x10, //0x000007b7 addq $16, %r14 + 0x49, 0x83, 0xc2, 0x10, //0x000007bb addq $16, %r10 + 0x48, 0x83, 0xc3, 0xf0, //0x000007bf addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x000007c3 cmpq $8, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000007c7 jae LBB0_90 + //0x000007cd LBB0_86 + 0x48, 0x83, 0xfb, 0x04, //0x000007cd cmpq $4, %rbx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x000007d1 jl LBB0_87 + //0x000007d7 LBB0_91 + 0x41, 0x8b, 0x16, //0x000007d7 movl (%r14), %edx + 0x41, 0x89, 0x12, //0x000007da movl %edx, (%r10) + 0x49, 0x83, 0xc6, 0x04, //0x000007dd addq $4, %r14 + 0x49, 0x83, 0xc2, 0x04, //0x000007e1 addq $4, %r10 + 0x48, 0x83, 0xc3, 0xfc, //0x000007e5 addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000007e9 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x000007ed jae LBB0_92 + //0x000007f3 LBB0_88 + 0x4c, 0x89, 0xf2, //0x000007f3 movq %r14, %rdx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000007f6 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xdb, //0x000007fb testq %rbx, %rbx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x000007fe jne LBB0_93 + 0xe9, 0x01, 0xfe, 0xff, 0xff, //0x00000804 jmp LBB0_73 + //0x00000809 LBB0_85 + 0x48, 0x83, 0xfb, 0x08, //0x00000809 cmpq $8, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x0000080d jb LBB0_86 + //0x00000813 LBB0_90 + 0x49, 0x8b, 0x16, //0x00000813 movq (%r14), %rdx + 0x49, 0x89, 0x12, //0x00000816 movq %rdx, (%r10) + 0x49, 0x83, 0xc6, 0x08, //0x00000819 addq $8, %r14 + 0x49, 0x83, 0xc2, 0x08, //0x0000081d addq $8, %r10 + 0x48, 0x83, 0xc3, 0xf8, //0x00000821 addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00000825 cmpq $4, %rbx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00000829 jge LBB0_91 + //0x0000082f LBB0_87 + 0x48, 0x83, 0xfb, 0x02, //0x0000082f cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00000833 jb LBB0_88 + //0x00000839 LBB0_92 + 0x41, 0x0f, 0xb7, 0x16, //0x00000839 movzwl (%r14), %edx + 0x66, 0x41, 0x89, 0x12, //0x0000083d movw %dx, (%r10) + 0x49, 0x83, 0xc6, 0x02, //0x00000841 addq $2, %r14 + 0x49, 0x83, 0xc2, 0x02, //0x00000845 addq $2, %r10 + 0x48, 0x83, 0xc3, 0xfe, //0x00000849 addq $-2, %rbx + 0x4c, 0x89, 0xf2, //0x0000084d movq %r14, %rdx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000850 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xdb, //0x00000855 testq %rbx, %rbx + 0x0f, 0x84, 0xac, 0xfd, 0xff, 0xff, //0x00000858 je LBB0_73 + //0x0000085e LBB0_93 + 0x8a, 0x12, //0x0000085e movb (%rdx), %dl + 0x41, 0x88, 0x12, //0x00000860 movb %dl, (%r10) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000863 leaq $32(%rsp), %r14 + 0xe9, 0x9d, 0xfd, 0xff, 0xff, //0x00000868 jmp LBB0_73 + //0x0000086d LBB0_94 + 0x48, 0x8d, 0x51, 0x05, //0x0000086d leaq $5(%rcx), %rdx + 0x48, 0x3b, 0x57, 0x08, //0x00000871 cmpq $8(%rdi), %rdx + 0x0f, 0x87, 0x20, 0xfc, 0xff, 0xff, //0x00000875 ja LBB0_56 + //0x0000087b LBB0_95 + 0x48, 0x89, 0x16, //0x0000087b movq %rdx, (%rsi) + 0xe9, 0x15, 0xfc, 0xff, 0xff, //0x0000087e jmp LBB0_55 + //0x00000883 LBB0_96 + 0x4c, 0x8b, 0x47, 0x08, //0x00000883 movq $8(%rdi), %r8 + 0x49, 0x29, 0xd8, //0x00000887 subq %rbx, %r8 + 0x49, 0x01, 0xde, //0x0000088a addq %rbx, %r14 + 0x31, 0xd2, //0x0000088d xorl %edx, %edx + 0x48, 0x89, 0x54, 0x24, 0x18, //0x0000088f movq %rdx, $24(%rsp) + 0xc5, 0xfe, 0x6f, 0x05, 0xe4, 0xf7, 0xff, 0xff, //0x00000894 vmovdqu $-2076(%rip), %ymm0 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xfc, 0xf7, 0xff, 0xff, //0x0000089c vmovdqu $-2052(%rip), %ymm1 /* LCPI0_8+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x000008a4 vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfe, 0x6f, 0x1d, 0x10, 0xf8, 0xff, 0xff, //0x000008a8 vmovdqu $-2032(%rip), %ymm3 /* LCPI0_9+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0xa8, 0xf7, 0xff, 0xff, //0x000008b0 vmovdqu $-2136(%rip), %ymm4 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x000008b8 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xe4, //0x000008bd xorl %r12d, %r12d + 0x45, 0x31, 0xff, //0x000008c0 xorl %r15d, %r15d + 0x45, 0x31, 0xc9, //0x000008c3 xorl %r9d, %r9d + 0x49, 0x83, 0xf8, 0x40, //0x000008c6 cmpq $64, %r8 + 0x0f, 0x8c, 0x4a, 0x01, 0x00, 0x00, //0x000008ca jl LBB0_105 + //0x000008d0 LBB0_99 + 0xc4, 0xc1, 0x7e, 0x6f, 0x3e, //0x000008d0 vmovdqu (%r14), %ymm7 + 0xc4, 0xc1, 0x7e, 0x6f, 0x76, 0x20, //0x000008d5 vmovdqu $32(%r14), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x000008db vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xe8, //0x000008df vpmovmskb %ymm8, %r13d + 0xc5, 0x4d, 0x74, 0xc0, //0x000008e4 vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd0, //0x000008e8 vpmovmskb %ymm8, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x000008ed shlq $32, %rdx + 0x49, 0x09, 0xd5, //0x000008f1 orq %rdx, %r13 + 0xc5, 0x45, 0x74, 0xc1, //0x000008f4 vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0x41, 0x7d, 0xd7, 0xd0, //0x000008f8 vpmovmskb %ymm8, %r10d + 0xc5, 0x4d, 0x74, 0xc1, //0x000008fd vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00000901 vpmovmskb %ymm8, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00000906 shlq $32, %rbx + 0x49, 0x09, 0xda, //0x0000090a orq %rbx, %r10 + 0x4c, 0x89, 0xd2, //0x0000090d movq %r10, %rdx + 0x4c, 0x09, 0xe2, //0x00000910 orq %r12, %rdx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00000913 je LBB0_101 + 0x4c, 0x89, 0xe2, //0x00000919 movq %r12, %rdx + 0x48, 0xf7, 0xd2, //0x0000091c notq %rdx + 0x4c, 0x21, 0xd2, //0x0000091f andq %r10, %rdx + 0x48, 0x8d, 0x1c, 0x12, //0x00000922 leaq (%rdx,%rdx), %rbx + 0x4c, 0x09, 0xe3, //0x00000926 orq %r12, %rbx + 0x49, 0x89, 0xdc, //0x00000929 movq %rbx, %r12 + 0x49, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000092c movabsq $-6148914691236517206, %r11 + 0x4d, 0x31, 0xdc, //0x00000936 xorq %r11, %r12 + 0x4d, 0x21, 0xda, //0x00000939 andq %r11, %r10 + 0x4d, 0x21, 0xe2, //0x0000093c andq %r12, %r10 + 0x45, 0x31, 0xe4, //0x0000093f xorl %r12d, %r12d + 0x49, 0x01, 0xd2, //0x00000942 addq %rdx, %r10 + 0x41, 0x0f, 0x92, 0xc4, //0x00000945 setb %r12b + 0x4d, 0x01, 0xd2, //0x00000949 addq %r10, %r10 + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000094c movabsq $6148914691236517205, %rdx + 0x49, 0x31, 0xd2, //0x00000956 xorq %rdx, %r10 + 0x49, 0x21, 0xda, //0x00000959 andq %rbx, %r10 + 0x49, 0xf7, 0xd2, //0x0000095c notq %r10 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000095f jmp LBB0_102 + //0x00000964 LBB0_101 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00000964 movq $-1, %r10 + 0x45, 0x31, 0xe4, //0x0000096b xorl %r12d, %r12d + //0x0000096e LBB0_102 + 0x4d, 0x21, 0xea, //0x0000096e andq %r13, %r10 + 0xc4, 0xc1, 0xf9, 0x6e, 0xea, //0x00000971 vmovq %r10, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00000976 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x0000097c vmovq %xmm5, %r13 + 0x4c, 0x33, 0x6c, 0x24, 0x18, //0x00000981 xorq $24(%rsp), %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x00000986 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0x7d, 0xd7, 0xdd, //0x0000098a vpmovmskb %ymm5, %r11d + 0xc5, 0xcd, 0x74, 0xeb, //0x0000098e vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x00000992 vpmovmskb %ymm5, %edx + 0x48, 0xc1, 0xe2, 0x20, //0x00000996 shlq $32, %rdx + 0x49, 0x09, 0xd3, //0x0000099a orq %rdx, %r11 + 0x4d, 0x89, 0xea, //0x0000099d movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x000009a0 notq %r10 + 0x4d, 0x21, 0xd3, //0x000009a3 andq %r10, %r11 + 0xc5, 0xc5, 0x74, 0xec, //0x000009a6 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xd5, //0x000009aa vpmovmskb %ymm5, %edx + 0xc5, 0xcd, 0x74, 0xec, //0x000009ae vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x000009b2 vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x000009b6 shlq $32, %rbx + 0x48, 0x09, 0xda, //0x000009ba orq %rbx, %rdx + 0x4c, 0x21, 0xd2, //0x000009bd andq %r10, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000009c0 je LBB0_97 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009c6 .p2align 4, 0x90 + //0x000009d0 LBB0_103 + 0x4c, 0x8d, 0x52, 0xff, //0x000009d0 leaq $-1(%rdx), %r10 + 0x4c, 0x89, 0xd3, //0x000009d4 movq %r10, %rbx + 0x4c, 0x21, 0xdb, //0x000009d7 andq %r11, %rbx + 0xf3, 0x48, 0x0f, 0xb8, 0xdb, //0x000009da popcntq %rbx, %rbx + 0x4c, 0x01, 0xfb, //0x000009df addq %r15, %rbx + 0x4c, 0x39, 0xcb, //0x000009e2 cmpq %r9, %rbx + 0x0f, 0x86, 0x52, 0x01, 0x00, 0x00, //0x000009e5 jbe LBB0_120 + 0x49, 0xff, 0xc1, //0x000009eb incq %r9 + 0x4c, 0x21, 0xd2, //0x000009ee andq %r10, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000009f1 jne LBB0_103 + //0x000009f7 LBB0_97 + 0x49, 0xc1, 0xfd, 0x3f, //0x000009f7 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xd3, //0x000009fb popcntq %r11, %rdx + 0x49, 0x01, 0xd7, //0x00000a00 addq %rdx, %r15 + 0x49, 0x83, 0xc6, 0x40, //0x00000a03 addq $64, %r14 + 0x49, 0x83, 0xc0, 0xc0, //0x00000a07 addq $-64, %r8 + 0x4c, 0x89, 0x6c, 0x24, 0x18, //0x00000a0b movq %r13, $24(%rsp) + 0x49, 0x83, 0xf8, 0x40, //0x00000a10 cmpq $64, %r8 + 0x0f, 0x8d, 0xb6, 0xfe, 0xff, 0xff, //0x00000a14 jge LBB0_99 + //0x00000a1a LBB0_105 + 0x4d, 0x85, 0xc0, //0x00000a1a testq %r8, %r8 + 0x0f, 0x8e, 0xf3, 0x01, 0x00, 0x00, //0x00000a1d jle LBB0_131 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00000a23 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00000a29 vmovups %ymm9, $32(%rsp) + 0x44, 0x89, 0xf2, //0x00000a2f movl %r14d, %edx + 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x00000a32 andl $4095, %edx + 0x81, 0xfa, 0xc1, 0x0f, 0x00, 0x00, //0x00000a38 cmpl $4033, %edx + 0x0f, 0x82, 0x8c, 0xfe, 0xff, 0xff, //0x00000a3e jb LBB0_99 + 0x49, 0x83, 0xf8, 0x20, //0x00000a44 cmpq $32, %r8 + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00000a48 jb LBB0_109 + 0xc4, 0xc1, 0x7e, 0x6f, 0x2e, //0x00000a4e vmovdqu (%r14), %ymm5 + 0xc5, 0xfe, 0x7f, 0x6c, 0x24, 0x20, //0x00000a53 vmovdqu %ymm5, $32(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00000a59 addq $32, %r14 + 0x49, 0x8d, 0x58, 0xe0, //0x00000a5d leaq $-32(%r8), %rbx + 0x4c, 0x8d, 0x54, 0x24, 0x40, //0x00000a61 leaq $64(%rsp), %r10 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00000a66 jmp LBB0_110 + //0x00000a6b LBB0_109 + 0x4c, 0x8d, 0x54, 0x24, 0x20, //0x00000a6b leaq $32(%rsp), %r10 + 0x4c, 0x89, 0xc3, //0x00000a70 movq %r8, %rbx + //0x00000a73 LBB0_110 + 0x48, 0x83, 0xfb, 0x10, //0x00000a73 cmpq $16, %rbx + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00000a77 jb LBB0_111 + 0xc4, 0xc1, 0x7a, 0x6f, 0x2e, //0x00000a7d vmovdqu (%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x7f, 0x2a, //0x00000a82 vmovdqu %xmm5, (%r10) + 0x49, 0x83, 0xc6, 0x10, //0x00000a87 addq $16, %r14 + 0x49, 0x83, 0xc2, 0x10, //0x00000a8b addq $16, %r10 + 0x48, 0x83, 0xc3, 0xf0, //0x00000a8f addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00000a93 cmpq $8, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00000a97 jae LBB0_116 + //0x00000a9d LBB0_112 + 0x48, 0x83, 0xfb, 0x04, //0x00000a9d cmpq $4, %rbx + 0x0f, 0x8c, 0x58, 0x00, 0x00, 0x00, //0x00000aa1 jl LBB0_113 + //0x00000aa7 LBB0_117 + 0x41, 0x8b, 0x16, //0x00000aa7 movl (%r14), %edx + 0x41, 0x89, 0x12, //0x00000aaa movl %edx, (%r10) + 0x49, 0x83, 0xc6, 0x04, //0x00000aad addq $4, %r14 + 0x49, 0x83, 0xc2, 0x04, //0x00000ab1 addq $4, %r10 + 0x48, 0x83, 0xc3, 0xfc, //0x00000ab5 addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000ab9 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00000abd jae LBB0_118 + //0x00000ac3 LBB0_114 + 0x4c, 0x89, 0xf2, //0x00000ac3 movq %r14, %rdx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000ac6 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xdb, //0x00000acb testq %rbx, %rbx + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x00000ace jne LBB0_119 + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00000ad4 jmp LBB0_99 + //0x00000ad9 LBB0_111 + 0x48, 0x83, 0xfb, 0x08, //0x00000ad9 cmpq $8, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00000add jb LBB0_112 + //0x00000ae3 LBB0_116 + 0x49, 0x8b, 0x16, //0x00000ae3 movq (%r14), %rdx + 0x49, 0x89, 0x12, //0x00000ae6 movq %rdx, (%r10) + 0x49, 0x83, 0xc6, 0x08, //0x00000ae9 addq $8, %r14 + 0x49, 0x83, 0xc2, 0x08, //0x00000aed addq $8, %r10 + 0x48, 0x83, 0xc3, 0xf8, //0x00000af1 addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00000af5 cmpq $4, %rbx + 0x0f, 0x8d, 0xa8, 0xff, 0xff, 0xff, //0x00000af9 jge LBB0_117 + //0x00000aff LBB0_113 + 0x48, 0x83, 0xfb, 0x02, //0x00000aff cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00000b03 jb LBB0_114 + //0x00000b09 LBB0_118 + 0x41, 0x0f, 0xb7, 0x16, //0x00000b09 movzwl (%r14), %edx + 0x66, 0x41, 0x89, 0x12, //0x00000b0d movw %dx, (%r10) + 0x49, 0x83, 0xc6, 0x02, //0x00000b11 addq $2, %r14 + 0x49, 0x83, 0xc2, 0x02, //0x00000b15 addq $2, %r10 + 0x48, 0x83, 0xc3, 0xfe, //0x00000b19 addq $-2, %rbx + 0x4c, 0x89, 0xf2, //0x00000b1d movq %r14, %rdx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000b20 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xdb, //0x00000b25 testq %rbx, %rbx + 0x0f, 0x84, 0xa2, 0xfd, 0xff, 0xff, //0x00000b28 je LBB0_99 + //0x00000b2e LBB0_119 + 0x8a, 0x12, //0x00000b2e movb (%rdx), %dl + 0x41, 0x88, 0x12, //0x00000b30 movb %dl, (%r10) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00000b33 leaq $32(%rsp), %r14 + 0xe9, 0x93, 0xfd, 0xff, 0xff, //0x00000b38 jmp LBB0_99 + //0x00000b3d LBB0_120 + 0x48, 0x8b, 0x47, 0x08, //0x00000b3d movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xd2, //0x00000b41 bsfq %rdx, %rdx + 0x4c, 0x29, 0xc2, //0x00000b45 subq %r8, %rdx + 0x48, 0x8d, 0x44, 0x02, 0x01, //0x00000b48 leaq $1(%rdx,%rax), %rax + 0x48, 0x89, 0x06, //0x00000b4d movq %rax, (%rsi) + 0x48, 0x8b, 0x57, 0x08, //0x00000b50 movq $8(%rdi), %rdx + 0x48, 0x39, 0xd0, //0x00000b54 cmpq %rdx, %rax + 0x48, 0x0f, 0x47, 0xc2, //0x00000b57 cmovaq %rdx, %rax + 0x48, 0x89, 0x06, //0x00000b5b movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b5e movq $-1, %rax + 0x48, 0x0f, 0x47, 0xc8, //0x00000b65 cmovaq %rax, %rcx + 0xe9, 0x2a, 0xf9, 0xff, 0xff, //0x00000b69 jmp LBB0_55 + //0x00000b6e LBB0_121 + 0x49, 0x0f, 0xbc, 0xc3, //0x00000b6e bsfq %r11, %rax + 0x49, 0x01, 0xc2, //0x00000b72 addq %rax, %r10 + 0x4d, 0x01, 0xfa, //0x00000b75 addq %r15, %r10 + 0x4d, 0x29, 0xf2, //0x00000b78 subq %r14, %r10 + 0x49, 0x83, 0xc2, 0x02, //0x00000b7b addq $2, %r10 + 0x4c, 0x89, 0x16, //0x00000b7f movq %r10, (%rsi) + 0xe9, 0x11, 0xf9, 0xff, 0xff, //0x00000b82 jmp LBB0_55 + //0x00000b87 LBB0_122 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000b87 movq $-2, %rdx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000b8e movl $2, %eax + 0x48, 0x01, 0xc3, //0x00000b93 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b96 movq $-1, %rax + 0x49, 0x01, 0xd7, //0x00000b9d addq %rdx, %r15 + 0x0f, 0x8e, 0xf5, 0xf8, 0xff, 0xff, //0x00000ba0 jle LBB0_56 + //0x00000ba6 LBB0_124 + 0x0f, 0xb6, 0x03, //0x00000ba6 movzbl (%rbx), %eax + 0x3c, 0x5c, //0x00000ba9 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00000bab je LBB0_122 + 0x3c, 0x22, //0x00000bb1 cmpb $34, %al + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00000bb3 je LBB0_129 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00000bb9 movq $-1, %rdx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000bc0 movl $1, %eax + 0x48, 0x01, 0xc3, //0x00000bc5 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000bc8 movq $-1, %rax + 0x49, 0x01, 0xd7, //0x00000bcf addq %rdx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x00000bd2 jg LBB0_124 + 0xe9, 0xbe, 0xf8, 0xff, 0xff, //0x00000bd8 jmp LBB0_56 + //0x00000bdd LBB0_127 + 0x0f, 0xb7, 0xc7, //0x00000bdd movzwl %di, %eax + 0xe9, 0xa6, 0xf8, 0xff, 0xff, //0x00000be0 jmp LBB0_53 + //0x00000be5 LBB0_128 + 0x4c, 0x89, 0xf0, //0x00000be5 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000be8 notq %rax + 0x48, 0x01, 0xc1, //0x00000beb addq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000bee movq $-1, %rax + 0x4c, 0x39, 0xc1, //0x00000bf5 cmpq %r8, %rcx + 0x0f, 0x82, 0x2c, 0xf7, 0xff, 0xff, //0x00000bf8 jb LBB0_32 + 0xe9, 0x98, 0xf8, 0xff, 0xff, //0x00000bfe jmp LBB0_56 + //0x00000c03 LBB0_129 + 0x4c, 0x29, 0xf3, //0x00000c03 subq %r14, %rbx + 0x48, 0xff, 0xc3, //0x00000c06 incq %rbx + 0xe9, 0x87, 0xf8, 0xff, 0xff, //0x00000c09 jmp LBB0_54 + //0x00000c0e LBB0_130 + 0x4c, 0x01, 0xf3, //0x00000c0e addq %r14, %rbx + 0xe9, 0x99, 0xf9, 0xff, 0xff, //0x00000c11 jmp LBB0_69 + //0x00000c16 LBB0_131 + 0x48, 0x8b, 0x4f, 0x08, //0x00000c16 movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00000c1a movq %rcx, (%rsi) + 0xe9, 0x79, 0xf8, 0xff, 0xff, //0x00000c1d jmp LBB0_56 + //0x00000c22 LBB0_132 + 0x49, 0x8d, 0x51, 0xff, //0x00000c22 leaq $-1(%r9), %rdx + 0x4c, 0x39, 0xfa, //0x00000c26 cmpq %r15, %rdx + 0x0f, 0x84, 0x6c, 0xf8, 0xff, 0xff, //0x00000c29 je LBB0_56 + 0x4b, 0x8d, 0x5c, 0x17, 0x02, //0x00000c2f leaq $2(%r15,%r10), %rbx + 0x4d, 0x29, 0xf9, //0x00000c34 subq %r15, %r9 + 0x49, 0x83, 0xc1, 0xfe, //0x00000c37 addq $-2, %r9 + 0x4d, 0x89, 0xcf, //0x00000c3b movq %r9, %r15 + 0xe9, 0x6c, 0xf9, 0xff, 0xff, //0x00000c3e jmp LBB0_69 + 0x90, //0x00000c43 .p2align 2, 0x90 + // // .set L0_0_set_56, LBB0_56-LJTI0_0 + // // .set L0_0_set_58, LBB0_58-LJTI0_0 + // // .set L0_0_set_59, LBB0_59-LJTI0_0 + // // .set L0_0_set_34, LBB0_34-LJTI0_0 + // // .set L0_0_set_70, LBB0_70-LJTI0_0 + // // .set L0_0_set_94, LBB0_94-LJTI0_0 + // // .set L0_0_set_57, LBB0_57-LJTI0_0 + // // .set L0_0_set_96, LBB0_96-LJTI0_0 + //0x00000c44 LJTI0_0 + 0x57, 0xf8, 0xff, 0xff, //0x00000c44 .long L0_0_set_56 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c48 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c4c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c50 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c54 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c58 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c5c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c60 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c64 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c68 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c6c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c70 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c74 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c78 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c7c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c80 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c84 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c88 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c8c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c90 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c94 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c98 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000c9c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000ca0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000ca4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000ca8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cac .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cb0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cb4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cb8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cbc .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cc0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cc4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cc8 .long L0_0_set_58 + 0x8b, 0xf8, 0xff, 0xff, //0x00000ccc .long L0_0_set_59 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cd0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cd4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cd8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cdc .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000ce0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000ce4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000ce8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cec .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cf0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cf4 .long L0_0_set_58 + 0x12, 0xf7, 0xff, 0xff, //0x00000cf8 .long L0_0_set_34 + 0x7c, 0xf8, 0xff, 0xff, //0x00000cfc .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d00 .long L0_0_set_58 + 0x12, 0xf7, 0xff, 0xff, //0x00000d04 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d08 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d0c .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d10 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d14 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d18 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d1c .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d20 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d24 .long L0_0_set_34 + 0x12, 0xf7, 0xff, 0xff, //0x00000d28 .long L0_0_set_34 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d2c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d30 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d34 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d38 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d3c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d40 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d44 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d48 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d4c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d50 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d54 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d58 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d5c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d60 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d64 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d68 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d6c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d70 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d74 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d78 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d7c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d80 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d84 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d88 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d8c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d90 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d94 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d98 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000d9c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000da0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000da4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000da8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dac .long L0_0_set_58 + 0x79, 0xf9, 0xff, 0xff, //0x00000db0 .long L0_0_set_70 + 0x7c, 0xf8, 0xff, 0xff, //0x00000db4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000db8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dbc .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dc0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dc4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dc8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dcc .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dd0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dd4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dd8 .long L0_0_set_58 + 0x29, 0xfc, 0xff, 0xff, //0x00000ddc .long L0_0_set_94 + 0x7c, 0xf8, 0xff, 0xff, //0x00000de0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000de4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000de8 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000dec .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000df0 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000df4 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000df8 .long L0_0_set_58 + 0x69, 0xf8, 0xff, 0xff, //0x00000dfc .long L0_0_set_57 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e00 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e04 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e08 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e0c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e10 .long L0_0_set_58 + 0x69, 0xf8, 0xff, 0xff, //0x00000e14 .long L0_0_set_57 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e18 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e1c .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e20 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e24 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e28 .long L0_0_set_58 + 0x7c, 0xf8, 0xff, 0xff, //0x00000e2c .long L0_0_set_58 + 0x3f, 0xfc, 0xff, 0xff, //0x00000e30 .long L0_0_set_96 + //0x00000e34 .p2align 2, 0x00 + //0x00000e34 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000e34 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_subr.go new file mode 100644 index 000000000..8ccaef11a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_one = 432 +) + +const ( + _stack__skip_one = 120 +) + +const ( + _size__skip_one = 10292 +) + +var ( + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9740, 120}, + {9744, 48}, + {9745, 40}, + {9747, 32}, + {9749, 24}, + {9751, 16}, + {9753, 8}, + {9757, 0}, + {10292, 120}, + } +) + +var _cfunc_skip_one = []loader.CFunc{ + {"_skip_one_entry", 0, _entry__skip_one, 0, nil}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_text_amd64.go new file mode 100644 index 000000000..b480e6cf9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/skip_one_text_amd64.go @@ -0,0 +1,3068 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_skip_one = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, // .byte 32 + 0x00, //0x00000001 .byte 0 + 0x00, //0x00000002 .byte 0 + 0x00, //0x00000003 .byte 0 + 0x00, //0x00000004 .byte 0 + 0x00, //0x00000005 .byte 0 + 0x00, //0x00000006 .byte 0 + 0x00, //0x00000007 .byte 0 + 0x00, //0x00000008 .byte 0 + 0x09, //0x00000009 .byte 9 + 0x0a, //0x0000000a .byte 10 + 0x00, //0x0000000b .byte 0 + 0x00, //0x0000000c .byte 0 + 0x0d, //0x0000000d .byte 13 + 0x00, //0x0000000e .byte 0 + 0x00, //0x0000000f .byte 0 + 0x20, //0x00000010 .byte 32 + 0x00, //0x00000011 .byte 0 + 0x00, //0x00000012 .byte 0 + 0x00, //0x00000013 .byte 0 + 0x00, //0x00000014 .byte 0 + 0x00, //0x00000015 .byte 0 + 0x00, //0x00000016 .byte 0 + 0x00, //0x00000017 .byte 0 + 0x00, //0x00000018 .byte 0 + 0x09, //0x00000019 .byte 9 + 0x0a, //0x0000001a .byte 10 + 0x00, //0x0000001b .byte 0 + 0x00, //0x0000001c .byte 0 + 0x0d, //0x0000001d .byte 13 + 0x00, //0x0000001e .byte 0 + 0x00, //0x0000001f .byte 0 + //0x00000020 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000020 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000050 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000060 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000060 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000070 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000080 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000080 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000090 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x000000a0 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000a0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000b0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x000000c0 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000c0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000d0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x000000e0 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000e0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000f0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000100 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000100 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000110 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000120 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000120 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000130 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000140 .p2align 4, 0x00 + //0x00000140 LCPI0_10 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000140 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000150 LCPI0_11 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000150 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000160 LCPI0_12 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000160 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000170 LCPI0_13 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000170 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000180 LCPI0_14 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000180 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000190 LCPI0_15 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000190 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000001a0 LCPI0_16 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001a0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000001b0 .p2align 4, 0x90 + //0x000001b0 _skip_one + 0x55, //0x000001b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000001b1 movq %rsp, %rbp + 0x41, 0x57, //0x000001b4 pushq %r15 + 0x41, 0x56, //0x000001b6 pushq %r14 + 0x41, 0x55, //0x000001b8 pushq %r13 + 0x41, 0x54, //0x000001ba pushq %r12 + 0x53, //0x000001bc pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x000001bd subq $72, %rsp + 0x48, 0x89, 0x4d, 0x98, //0x000001c1 movq %rcx, $-104(%rbp) + 0x49, 0x89, 0xd2, //0x000001c5 movq %rdx, %r10 + 0x49, 0x89, 0xf5, //0x000001c8 movq %rsi, %r13 + 0x49, 0x89, 0xfe, //0x000001cb movq %rdi, %r14 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000001ce movl $1, %ebx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x000001d3 vmovq %rbx, %xmm0 + 0xc5, 0xfa, 0x7f, 0x02, //0x000001d8 vmovdqu %xmm0, (%rdx) + 0x4c, 0x8b, 0x26, //0x000001dc movq (%rsi), %r12 + 0x48, 0xc7, 0x45, 0x90, 0xff, 0xff, 0xff, 0xff, //0x000001df movq $-1, $-112(%rbp) + 0xc5, 0xfe, 0x6f, 0x2d, 0x11, 0xfe, 0xff, 0xff, //0x000001e7 vmovdqu $-495(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x29, 0xfe, 0xff, 0xff, //0x000001ef vmovdqu $-471(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x41, 0xfe, 0xff, 0xff, //0x000001f7 vmovdqu $-447(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x59, 0xfe, 0xff, 0xff, //0x000001ff vmovdqu $-423(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00000207 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x6c, 0xfe, 0xff, 0xff, //0x0000020c vmovdqu $-404(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x84, 0xfe, 0xff, 0xff, //0x00000214 vmovdqu $-380(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x9c, 0xfe, 0xff, 0xff, //0x0000021c vmovdqu $-356(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xb4, 0xfe, 0xff, 0xff, //0x00000224 vmovdqu $-332(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xcc, 0xfe, 0xff, 0xff, //0x0000022c vmovdqu $-308(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xe4, 0xfe, 0xff, 0xff, //0x00000234 vmovdqu $-284(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x48, 0x89, 0x75, 0xc0, //0x0000023c movq %rsi, $-64(%rbp) + 0x48, 0x89, 0x55, 0xb8, //0x00000240 movq %rdx, $-72(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x00000244 movq %rdi, $-48(%rbp) + 0xe9, 0x63, 0x00, 0x00, 0x00, //0x00000248 jmp LBB0_5 + //0x0000024d LBB0_72 + 0x4c, 0x89, 0xe1, //0x0000024d movq %r12, %rcx + //0x00000250 LBB0_199 + 0x4c, 0x89, 0xe0, //0x00000250 movq %r12, %rax + 0x4e, 0x8d, 0x64, 0x31, 0xff, //0x00000253 leaq $-1(%rcx,%r14), %r12 + 0x4d, 0x89, 0x65, 0x00, //0x00000258 movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x0000025c movq %r8, %rcx + 0x48, 0x85, 0xc0, //0x0000025f testq %rax, %rax + 0x4c, 0x8b, 0x55, 0xb8, //0x00000262 movq $-72(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xd0, //0x00000266 movq $-48(%rbp), %r14 + 0x0f, 0x8e, 0x49, 0x25, 0x00, 0x00, //0x0000026a jle LBB0_498 + //0x00000270 .p2align 4, 0x90 + //0x00000270 LBB0_3 + 0x49, 0x8b, 0x12, //0x00000270 movq (%r10), %rdx + 0x48, 0x89, 0xd3, //0x00000273 movq %rdx, %rbx + 0x48, 0x8b, 0x4d, 0x90, //0x00000276 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x0000027a testq %rdx, %rdx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000027d jne LBB0_5 + 0xe9, 0x31, 0x25, 0x00, 0x00, //0x00000283 jmp LBB0_498 + //0x00000288 LBB0_1 + 0x4c, 0x89, 0xe0, //0x00000288 movq %r12, %rax + 0x4d, 0x8d, 0x60, 0x04, //0x0000028b leaq $4(%r8), %r12 + 0x4d, 0x89, 0x65, 0x00, //0x0000028f movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x00000293 movq %r8, %rcx + 0x48, 0x85, 0xc0, //0x00000296 testq %rax, %rax + 0x0f, 0x8f, 0xd1, 0xff, 0xff, 0xff, //0x00000299 jg LBB0_3 + 0xe9, 0x15, 0x25, 0x00, 0x00, //0x0000029f jmp LBB0_498 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002a4 .p2align 4, 0x90 + //0x000002b0 LBB0_5 + 0x4d, 0x8b, 0x0e, //0x000002b0 movq (%r14), %r9 + 0x49, 0x8b, 0x4e, 0x08, //0x000002b3 movq $8(%r14), %rcx + 0x49, 0x39, 0xcc, //0x000002b7 cmpq %rcx, %r12 + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x000002ba jae LBB0_10 + 0x43, 0x8a, 0x04, 0x21, //0x000002c0 movb (%r9,%r12), %al + 0x3c, 0x0d, //0x000002c4 cmpb $13, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000002c6 je LBB0_10 + 0x3c, 0x20, //0x000002cc cmpb $32, %al + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000002ce je LBB0_10 + 0x04, 0xf7, //0x000002d4 addb $-9, %al + 0x3c, 0x01, //0x000002d6 cmpb $1, %al + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x000002d8 jbe LBB0_10 + 0x4d, 0x89, 0xe0, //0x000002de movq %r12, %r8 + 0xe9, 0x82, 0x01, 0x00, 0x00, //0x000002e1 jmp LBB0_36 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002e6 .p2align 4, 0x90 + //0x000002f0 LBB0_10 + 0x4d, 0x8d, 0x44, 0x24, 0x01, //0x000002f0 leaq $1(%r12), %r8 + 0x49, 0x39, 0xc8, //0x000002f5 cmpq %rcx, %r8 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000002f8 jae LBB0_14 + 0x43, 0x8a, 0x14, 0x01, //0x000002fe movb (%r9,%r8), %dl + 0x80, 0xfa, 0x0d, //0x00000302 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000305 je LBB0_14 + 0x80, 0xfa, 0x20, //0x0000030b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000030e je LBB0_14 + 0x80, 0xc2, 0xf7, //0x00000314 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000317 cmpb $1, %dl + 0x0f, 0x87, 0x48, 0x01, 0x00, 0x00, //0x0000031a ja LBB0_36 + //0x00000320 .p2align 4, 0x90 + //0x00000320 LBB0_14 + 0x4d, 0x8d, 0x44, 0x24, 0x02, //0x00000320 leaq $2(%r12), %r8 + 0x49, 0x39, 0xc8, //0x00000325 cmpq %rcx, %r8 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000328 jae LBB0_18 + 0x43, 0x8a, 0x14, 0x01, //0x0000032e movb (%r9,%r8), %dl + 0x80, 0xfa, 0x0d, //0x00000332 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000335 je LBB0_18 + 0x80, 0xfa, 0x20, //0x0000033b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000033e je LBB0_18 + 0x80, 0xc2, 0xf7, //0x00000344 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000347 cmpb $1, %dl + 0x0f, 0x87, 0x18, 0x01, 0x00, 0x00, //0x0000034a ja LBB0_36 + //0x00000350 .p2align 4, 0x90 + //0x00000350 LBB0_18 + 0x4d, 0x8d, 0x44, 0x24, 0x03, //0x00000350 leaq $3(%r12), %r8 + 0x49, 0x39, 0xc8, //0x00000355 cmpq %rcx, %r8 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000358 jae LBB0_22 + 0x43, 0x8a, 0x14, 0x01, //0x0000035e movb (%r9,%r8), %dl + 0x80, 0xfa, 0x0d, //0x00000362 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000365 je LBB0_22 + 0x80, 0xfa, 0x20, //0x0000036b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000036e je LBB0_22 + 0x80, 0xc2, 0xf7, //0x00000374 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000377 cmpb $1, %dl + 0x0f, 0x87, 0xe8, 0x00, 0x00, 0x00, //0x0000037a ja LBB0_36 + //0x00000380 .p2align 4, 0x90 + //0x00000380 LBB0_22 + 0x4d, 0x8d, 0x44, 0x24, 0x04, //0x00000380 leaq $4(%r12), %r8 + 0x48, 0x89, 0xca, //0x00000385 movq %rcx, %rdx + 0x4c, 0x29, 0xc2, //0x00000388 subq %r8, %rdx + 0x0f, 0x86, 0xb1, 0x23, 0x00, 0x00, //0x0000038b jbe LBB0_472 + 0x4d, 0x01, 0xc8, //0x00000391 addq %r9, %r8 + 0x48, 0x83, 0xfa, 0x20, //0x00000394 cmpq $32, %rdx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x00000398 jb LBB0_28 + 0x48, 0x89, 0xce, //0x0000039e movq %rcx, %rsi + 0x4c, 0x29, 0xe6, //0x000003a1 subq %r12, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x000003a4 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x000003a8 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x000003ab andq $-32, %rdi + 0x4c, 0x01, 0xe7, //0x000003af addq %r12, %rdi + 0x49, 0x8d, 0x44, 0x39, 0x24, //0x000003b2 leaq $36(%r9,%rdi), %rax + 0x83, 0xe6, 0x1f, //0x000003b7 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003ba .p2align 4, 0x90 + //0x000003c0 LBB0_25 + 0xc4, 0xc1, 0x7e, 0x6f, 0x00, //0x000003c0 vmovdqu (%r8), %ymm0 + 0xc4, 0xe2, 0x55, 0x00, 0xc8, //0x000003c5 vpshufb %ymm0, %ymm5, %ymm1 + 0xc5, 0xfd, 0x74, 0xc1, //0x000003ca vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000003ce vpmovmskb %ymm0, %edi + 0x83, 0xff, 0xff, //0x000003d2 cmpl $-1, %edi + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x000003d5 jne LBB0_35 + 0x49, 0x83, 0xc0, 0x20, //0x000003db addq $32, %r8 + 0x48, 0x83, 0xc2, 0xe0, //0x000003df addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x000003e3 cmpq $31, %rdx + 0x0f, 0x87, 0xd3, 0xff, 0xff, 0xff, //0x000003e7 ja LBB0_25 + 0x48, 0x89, 0xf2, //0x000003ed movq %rsi, %rdx + 0x49, 0x89, 0xc0, //0x000003f0 movq %rax, %r8 + //0x000003f3 LBB0_28 + 0x48, 0x85, 0xd2, //0x000003f3 testq %rdx, %rdx + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000003f6 movabsq $4294977024, %rax + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00000400 je LBB0_34 + 0x49, 0x8d, 0x34, 0x10, //0x00000406 leaq (%r8,%rdx), %rsi + 0x49, 0xff, 0xc0, //0x0000040a incq %r8 + 0x90, 0x90, 0x90, //0x0000040d .p2align 4, 0x90 + //0x00000410 LBB0_30 + 0x41, 0x0f, 0xbe, 0x78, 0xff, //0x00000410 movsbl $-1(%r8), %edi + 0x83, 0xff, 0x20, //0x00000415 cmpl $32, %edi + 0x0f, 0x87, 0xfa, 0x10, 0x00, 0x00, //0x00000418 ja LBB0_268 + 0x48, 0x0f, 0xa3, 0xf8, //0x0000041e btq %rdi, %rax + 0x0f, 0x83, 0xf0, 0x10, 0x00, 0x00, //0x00000422 jae LBB0_268 + 0x48, 0xff, 0xca, //0x00000428 decq %rdx + 0x49, 0xff, 0xc0, //0x0000042b incq %r8 + 0x48, 0x85, 0xd2, //0x0000042e testq %rdx, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00000431 jne LBB0_30 + 0x49, 0x89, 0xf0, //0x00000437 movq %rsi, %r8 + //0x0000043a LBB0_34 + 0x4d, 0x29, 0xc8, //0x0000043a subq %r9, %r8 + 0x49, 0x39, 0xc8, //0x0000043d cmpq %rcx, %r8 + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000440 jb LBB0_36 + 0xe9, 0xfb, 0x22, 0x00, 0x00, //0x00000446 jmp LBB0_473 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000044b .p2align 4, 0x90 + //0x00000450 LBB0_35 + 0x4d, 0x29, 0xc8, //0x00000450 subq %r9, %r8 + 0xf7, 0xd7, //0x00000453 notl %edi + 0x48, 0x63, 0xd7, //0x00000455 movslq %edi, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00000458 bsfq %rdx, %rdx + 0x49, 0x01, 0xd0, //0x0000045c addq %rdx, %r8 + 0x49, 0x39, 0xc8, //0x0000045f cmpq %rcx, %r8 + 0x0f, 0x83, 0xde, 0x22, 0x00, 0x00, //0x00000462 jae LBB0_473 + //0x00000468 LBB0_36 + 0x4d, 0x8d, 0x60, 0x01, //0x00000468 leaq $1(%r8), %r12 + 0x4d, 0x89, 0x65, 0x00, //0x0000046c movq %r12, (%r13) + 0x43, 0x0f, 0xbe, 0x34, 0x01, //0x00000470 movsbl (%r9,%r8), %esi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000475 movq $-1, %rcx + 0x85, 0xf6, //0x0000047c testl %esi, %esi + 0x0f, 0x84, 0x35, 0x23, 0x00, 0x00, //0x0000047e je LBB0_498 + 0x48, 0x8d, 0x53, 0xff, //0x00000484 leaq $-1(%rbx), %rdx + 0x41, 0x8b, 0x3c, 0xda, //0x00000488 movl (%r10,%rbx,8), %edi + 0x48, 0x8b, 0x45, 0x90, //0x0000048c movq $-112(%rbp), %rax + 0x48, 0x83, 0xf8, 0xff, //0x00000490 cmpq $-1, %rax + 0x49, 0x0f, 0x44, 0xc0, //0x00000494 cmoveq %r8, %rax + 0x48, 0x89, 0x45, 0x90, //0x00000498 movq %rax, $-112(%rbp) + 0xff, 0xcf, //0x0000049c decl %edi + 0x83, 0xff, 0x05, //0x0000049e cmpl $5, %edi + 0x0f, 0x87, 0xe8, 0x01, 0x00, 0x00, //0x000004a1 ja LBB0_66 + 0x48, 0x8d, 0x05, 0x36, 0x25, 0x00, 0x00, //0x000004a7 leaq $9526(%rip), %rax /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xb8, //0x000004ae movslq (%rax,%rdi,4), %rdi + 0x48, 0x01, 0xc7, //0x000004b2 addq %rax, %rdi + 0xff, 0xe7, //0x000004b5 jmpq *%rdi + //0x000004b7 LBB0_39 + 0x83, 0xfe, 0x2c, //0x000004b7 cmpl $44, %esi + 0x0f, 0x84, 0x6f, 0x07, 0x00, 0x00, //0x000004ba je LBB0_88 + 0x83, 0xfe, 0x5d, //0x000004c0 cmpl $93, %esi + 0x0f, 0x84, 0x5b, 0x05, 0x00, 0x00, //0x000004c3 je LBB0_41 + 0xe9, 0xe4, 0x22, 0x00, 0x00, //0x000004c9 jmp LBB0_497 + //0x000004ce LBB0_42 + 0x40, 0x80, 0xfe, 0x5d, //0x000004ce cmpb $93, %sil + 0x0f, 0x84, 0x4c, 0x05, 0x00, 0x00, //0x000004d2 je LBB0_41 + 0x49, 0xc7, 0x04, 0xda, 0x01, 0x00, 0x00, 0x00, //0x000004d8 movq $1, (%r10,%rbx,8) + 0x83, 0xfe, 0x7b, //0x000004e0 cmpl $123, %esi + 0x0f, 0x86, 0xb2, 0x01, 0x00, 0x00, //0x000004e3 jbe LBB0_44 + 0xe9, 0xc4, 0x22, 0x00, 0x00, //0x000004e9 jmp LBB0_497 + //0x000004ee LBB0_45 + 0x40, 0x80, 0xfe, 0x22, //0x000004ee cmpb $34, %sil + 0x0f, 0x85, 0xba, 0x22, 0x00, 0x00, //0x000004f2 jne LBB0_497 + 0x49, 0xc7, 0x04, 0xda, 0x04, 0x00, 0x00, 0x00, //0x000004f8 movq $4, (%r10,%rbx,8) + 0x49, 0x8b, 0x56, 0x08, //0x00000500 movq $8(%r14), %rdx + 0xf6, 0x45, 0x98, 0x20, //0x00000504 testb $32, $-104(%rbp) + 0x4c, 0x89, 0x65, 0xa8, //0x00000508 movq %r12, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x0000050c movq %rdx, $-80(%rbp) + 0x0f, 0x85, 0xb0, 0x05, 0x00, 0x00, //0x00000510 jne LBB0_73 + 0x48, 0x89, 0xd1, //0x00000516 movq %rdx, %rcx + 0x4c, 0x29, 0xe1, //0x00000519 subq %r12, %rcx + 0x0f, 0x84, 0x35, 0x24, 0x00, 0x00, //0x0000051c je LBB0_504 + 0x4b, 0x8d, 0x1c, 0x21, //0x00000522 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00000526 cmpq $64, %rcx + 0x0f, 0x82, 0xe2, 0x18, 0x00, 0x00, //0x0000052a jb LBB0_355 + 0x41, 0x89, 0xcf, //0x00000530 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00000533 andl $63, %r15d + 0x4c, 0x29, 0xc2, //0x00000537 subq %r8, %rdx + 0x48, 0x83, 0xc2, 0xbf, //0x0000053a addq $-65, %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x0000053e andq $-64, %rdx + 0x4c, 0x01, 0xe2, //0x00000542 addq %r12, %rdx + 0x4d, 0x89, 0xcb, //0x00000545 movq %r9, %r11 + 0x4d, 0x8d, 0x4c, 0x11, 0x40, //0x00000548 leaq $64(%r9,%rdx), %r9 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000054d movq $-1, %r13 + 0x45, 0x31, 0xf6, //0x00000554 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000557 .p2align 4, 0x90 + //0x00000560 LBB0_50 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000560 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000564 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000569 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xf2, //0x0000056d vpmovmskb %ymm2, %esi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000571 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000575 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000579 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000057d vpmovmskb %ymm0, %edi + 0xc5, 0xf5, 0x74, 0xc7, //0x00000581 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00000585 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00000589 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x0000058d shlq $32, %rax + 0x48, 0x09, 0xc7, //0x00000591 orq %rax, %rdi + 0x49, 0x83, 0xfd, 0xff, //0x00000594 cmpq $-1, %r13 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000598 jne LBB0_52 + 0x48, 0x85, 0xff, //0x0000059e testq %rdi, %rdi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005a1 jne LBB0_59 + //0x000005a7 LBB0_52 + 0x48, 0x09, 0xf2, //0x000005a7 orq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x000005aa movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x000005ad orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000005b0 jne LBB0_60 + //0x000005b6 LBB0_53 + 0x48, 0x85, 0xd2, //0x000005b6 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x000005b9 jne LBB0_61 + //0x000005bf LBB0_54 + 0x48, 0x83, 0xc1, 0xc0, //0x000005bf addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x000005c3 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000005c7 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x000005cb ja LBB0_50 + 0xe9, 0x83, 0x14, 0x00, 0x00, //0x000005d1 jmp LBB0_55 + //0x000005d6 LBB0_59 + 0x48, 0x89, 0xd8, //0x000005d6 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x000005d9 subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xef, //0x000005dc bsfq %rdi, %r13 + 0x49, 0x01, 0xc5, //0x000005e0 addq %rax, %r13 + 0x48, 0x09, 0xf2, //0x000005e3 orq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x000005e6 movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x000005e9 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x000005ec je LBB0_53 + //0x000005f2 LBB0_60 + 0x4c, 0x89, 0xf0, //0x000005f2 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x000005f5 notq %rax + 0x48, 0x21, 0xf8, //0x000005f8 andq %rdi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x000005fb leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x000005ff orq %r14, %r10 + 0x4c, 0x89, 0xd6, //0x00000602 movq %r10, %rsi + 0x48, 0xf7, 0xd6, //0x00000605 notq %rsi + 0x48, 0x21, 0xfe, //0x00000608 andq %rdi, %rsi + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000060b movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfe, //0x00000615 andq %rdi, %rsi + 0x45, 0x31, 0xf6, //0x00000618 xorl %r14d, %r14d + 0x48, 0x01, 0xc6, //0x0000061b addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc6, //0x0000061e setb %r14b + 0x48, 0x01, 0xf6, //0x00000622 addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000625 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000062f xorq %rax, %rsi + 0x4c, 0x21, 0xd6, //0x00000632 andq %r10, %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00000635 movq $-72(%rbp), %r10 + 0x48, 0xf7, 0xd6, //0x00000639 notq %rsi + 0x48, 0x21, 0xf2, //0x0000063c andq %rsi, %rdx + 0x48, 0x85, 0xd2, //0x0000063f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000642 je LBB0_54 + 0xe9, 0x4d, 0x14, 0x00, 0x00, //0x00000648 jmp LBB0_61 + //0x0000064d LBB0_62 + 0x83, 0xfe, 0x2c, //0x0000064d cmpl $44, %esi + 0x0f, 0x85, 0xc5, 0x03, 0x00, 0x00, //0x00000650 jne LBB0_63 + 0x48, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x00000656 cmpq $4095, %rbx + 0x0f, 0x8f, 0xef, 0x20, 0x00, 0x00, //0x0000065d jg LBB0_486 + 0x48, 0x8d, 0x43, 0x01, //0x00000663 leaq $1(%rbx), %rax + 0x49, 0x89, 0x02, //0x00000667 movq %rax, (%r10) + 0x49, 0xc7, 0x44, 0xda, 0x08, 0x03, 0x00, 0x00, 0x00, //0x0000066a movq $3, $8(%r10,%rbx,8) + 0xe9, 0xf8, 0xfb, 0xff, 0xff, //0x00000673 jmp LBB0_3 + //0x00000678 LBB0_64 + 0x40, 0x80, 0xfe, 0x3a, //0x00000678 cmpb $58, %sil + 0x0f, 0x85, 0x30, 0x21, 0x00, 0x00, //0x0000067c jne LBB0_497 + 0x49, 0xc7, 0x04, 0xda, 0x00, 0x00, 0x00, 0x00, //0x00000682 movq $0, (%r10,%rbx,8) + 0xe9, 0xe1, 0xfb, 0xff, 0xff, //0x0000068a jmp LBB0_3 + //0x0000068f LBB0_66 + 0x49, 0x89, 0x12, //0x0000068f movq %rdx, (%r10) + 0x83, 0xfe, 0x7b, //0x00000692 cmpl $123, %esi + 0x0f, 0x87, 0x17, 0x21, 0x00, 0x00, //0x00000695 ja LBB0_497 + //0x0000069b LBB0_44 + 0x4f, 0x8d, 0x3c, 0x01, //0x0000069b leaq (%r9,%r8), %r15 + 0x89, 0xf0, //0x0000069f movl %esi, %eax + 0x48, 0x8d, 0x15, 0x54, 0x23, 0x00, 0x00, //0x000006a1 leaq $9044(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000006a8 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000006ac addq %rdx, %rax + 0xff, 0xe0, //0x000006af jmpq *%rax + //0x000006b1 LBB0_69 + 0x4d, 0x8b, 0x56, 0x08, //0x000006b1 movq $8(%r14), %r10 + 0x4d, 0x29, 0xc2, //0x000006b5 subq %r8, %r10 + 0x0f, 0x84, 0xba, 0x20, 0x00, 0x00, //0x000006b8 je LBB0_476 + 0x41, 0x80, 0x3f, 0x30, //0x000006be cmpb $48, (%r15) + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x000006c2 jne LBB0_132 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x000006c8 movl $1, %r14d + 0x49, 0x83, 0xfa, 0x01, //0x000006ce cmpq $1, %r10 + 0x0f, 0x84, 0x75, 0xfb, 0xff, 0xff, //0x000006d2 je LBB0_72 + 0x43, 0x8a, 0x0c, 0x21, //0x000006d8 movb (%r9,%r12), %cl + 0x80, 0xc1, 0xd2, //0x000006dc addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000006df cmpb $55, %cl + 0x0f, 0x87, 0x65, 0xfb, 0xff, 0xff, //0x000006e2 ja LBB0_72 + 0x0f, 0xb6, 0xc1, //0x000006e8 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000006eb movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000006f5 btq %rax, %rcx + 0x4c, 0x89, 0xe1, //0x000006f9 movq %r12, %rcx + 0x0f, 0x83, 0x4e, 0xfb, 0xff, 0xff, //0x000006fc jae LBB0_199 + //0x00000702 LBB0_132 + 0x4c, 0x89, 0x65, 0xa8, //0x00000702 movq %r12, $-88(%rbp) + 0x49, 0x83, 0xfa, 0x20, //0x00000706 cmpq $32, %r10 + 0x0f, 0x82, 0xdb, 0x16, 0x00, 0x00, //0x0000070a jb LBB0_354 + 0x49, 0x8d, 0x4a, 0xe0, //0x00000710 leaq $-32(%r10), %rcx + 0x48, 0x89, 0xc8, //0x00000714 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00000717 andq $-32, %rax + 0x4e, 0x8d, 0x74, 0x38, 0x20, //0x0000071b leaq $32(%rax,%r15), %r14 + 0x83, 0xe1, 0x1f, //0x00000720 andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00000723 movq %rcx, $-56(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000727 movq $-1, %rax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000072e movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00000735 movq $-1, %r13 + 0x4d, 0x89, 0xfb, //0x0000073c movq %r15, %r11 + 0x90, //0x0000073f .p2align 4, 0x90 + //0x00000740 LBB0_134 + 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x00000740 vmovdqu (%r11), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x00000745 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x0000074a vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x0000074e vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x00000752 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x00000756 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x0000075a vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x0000075e vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x00000762 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000766 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x0000076a vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x0000076e vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x00000772 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x00000776 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x0000077a vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x0000077e vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00000782 vpmovmskb %ymm0, %ecx + 0x48, 0xf7, 0xd1, //0x00000786 notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00000789 bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x0000078d cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00000790 je LBB0_136 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00000796 movl $-1, %ebx + 0xd3, 0xe3, //0x0000079b shll %cl, %ebx + 0xf7, 0xd3, //0x0000079d notl %ebx + 0x21, 0xdf, //0x0000079f andl %ebx, %edi + 0x21, 0xda, //0x000007a1 andl %ebx, %edx + 0x21, 0xf3, //0x000007a3 andl %esi, %ebx + 0x89, 0xde, //0x000007a5 movl %ebx, %esi + //0x000007a7 LBB0_136 + 0x44, 0x8d, 0x4f, 0xff, //0x000007a7 leal $-1(%rdi), %r9d + 0x41, 0x21, 0xf9, //0x000007ab andl %edi, %r9d + 0x0f, 0x85, 0xd4, 0x13, 0x00, 0x00, //0x000007ae jne LBB0_345 + 0x8d, 0x5a, 0xff, //0x000007b4 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000007b7 andl %edx, %ebx + 0x0f, 0x85, 0x8e, 0x12, 0x00, 0x00, //0x000007b9 jne LBB0_339 + 0x8d, 0x5e, 0xff, //0x000007bf leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000007c2 andl %esi, %ebx + 0x0f, 0x85, 0x83, 0x12, 0x00, 0x00, //0x000007c4 jne LBB0_339 + 0x85, 0xff, //0x000007ca testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000007cc je LBB0_142 + 0x4c, 0x89, 0xdb, //0x000007d2 movq %r11, %rbx + 0x4c, 0x29, 0xfb, //0x000007d5 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x000007d8 bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x000007db addq %rbx, %rdi + 0x49, 0x83, 0xfd, 0xff, //0x000007de cmpq $-1, %r13 + 0x0f, 0x85, 0xb2, 0x13, 0x00, 0x00, //0x000007e2 jne LBB0_347 + 0x49, 0x89, 0xfd, //0x000007e8 movq %rdi, %r13 + //0x000007eb LBB0_142 + 0x85, 0xd2, //0x000007eb testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000007ed je LBB0_145 + 0x4c, 0x89, 0xdf, //0x000007f3 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x000007f6 subq %r15, %rdi + 0x0f, 0xbc, 0xd2, //0x000007f9 bsfl %edx, %edx + 0x48, 0x01, 0xfa, //0x000007fc addq %rdi, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x000007ff cmpq $-1, %r12 + 0x0f, 0x85, 0x26, 0x13, 0x00, 0x00, //0x00000803 jne LBB0_340 + 0x49, 0x89, 0xd4, //0x00000809 movq %rdx, %r12 + //0x0000080c LBB0_145 + 0x85, 0xf6, //0x0000080c testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000080e je LBB0_148 + 0x4c, 0x89, 0xdf, //0x00000814 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000817 subq %r15, %rdi + 0x0f, 0xbc, 0xd6, //0x0000081a bsfl %esi, %edx + 0x48, 0x01, 0xfa, //0x0000081d addq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x00000820 cmpq $-1, %rax + 0x0f, 0x85, 0x05, 0x13, 0x00, 0x00, //0x00000824 jne LBB0_340 + 0x48, 0x89, 0xd0, //0x0000082a movq %rdx, %rax + //0x0000082d LBB0_148 + 0x83, 0xf9, 0x20, //0x0000082d cmpl $32, %ecx + 0x0f, 0x85, 0x85, 0x05, 0x00, 0x00, //0x00000830 jne LBB0_180 + 0x49, 0x83, 0xc3, 0x20, //0x00000836 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x0000083a addq $-32, %r10 + 0x49, 0x83, 0xfa, 0x1f, //0x0000083e cmpq $31, %r10 + 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00000842 ja LBB0_134 + 0xc5, 0xf8, 0x77, //0x00000848 vzeroupper + 0xc5, 0x7e, 0x6f, 0x3d, 0xcd, 0xf8, 0xff, 0xff, //0x0000084b vmovdqu $-1843(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xa5, 0xf8, 0xff, 0xff, //0x00000853 vmovdqu $-1883(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x7d, 0xf8, 0xff, 0xff, //0x0000085b vmovdqu $-1923(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x55, 0xf8, 0xff, 0xff, //0x00000863 vmovdqu $-1963(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x2d, 0xf8, 0xff, 0xff, //0x0000086b vmovdqu $-2003(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x05, 0xf8, 0xff, 0xff, //0x00000873 vmovdqu $-2043(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000087b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x05, 0xd8, 0xf7, 0xff, 0xff, //0x00000880 vmovdqu $-2088(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xb0, 0xf7, 0xff, 0xff, //0x00000888 vmovdqu $-2128(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x88, 0xf7, 0xff, 0xff, //0x00000890 vmovdqu $-2168(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x60, 0xf7, 0xff, 0xff, //0x00000898 vmovdqu $-2208(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xc8, //0x000008a0 movq $-56(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x10, //0x000008a4 cmpq $16, %r10 + 0x0f, 0x82, 0x52, 0x01, 0x00, 0x00, //0x000008a8 jb LBB0_169 + //0x000008ae LBB0_151 + 0x4d, 0x8d, 0x4a, 0xf0, //0x000008ae leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc9, //0x000008b2 movq %r9, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x000008b5 andq $-16, %rcx + 0x4e, 0x8d, 0x5c, 0x31, 0x10, //0x000008b9 leaq $16(%rcx,%r14), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x000008be andl $15, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008c2 .p2align 4, 0x90 + //0x000008d0 LBB0_152 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x000008d0 vmovdqu (%r14), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x63, 0xf8, 0xff, 0xff, //0x000008d5 vpcmpgtb $-1949(%rip), %xmm0, %xmm1 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x6b, 0xf8, 0xff, 0xff, //0x000008dd vmovdqu $-1941(%rip), %xmm2 /* LCPI0_11+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x000008e5 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x000008e9 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0x6b, 0xf8, 0xff, 0xff, //0x000008ed vpcmpeqb $-1941(%rip), %xmm0, %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0x73, 0xf8, 0xff, 0xff, //0x000008f5 vpcmpeqb $-1933(%rip), %xmm0, %xmm3 /* LCPI0_13+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x000008fd vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0x77, 0xf8, 0xff, 0xff, //0x00000901 vpor $-1929(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0x7f, 0xf8, 0xff, 0xff, //0x00000909 vpcmpeqb $-1921(%rip), %xmm0, %xmm0 /* LCPI0_15+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x87, 0xf8, 0xff, 0xff, //0x00000911 vpcmpeqb $-1913(%rip), %xmm3, %xmm3 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00000919 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000091d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00000921 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00000925 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x00000929 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000092d vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc9, //0x00000931 vpmovmskb %xmm1, %ecx + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00000935 movl $4294967295, %ebx + 0x48, 0x31, 0xd9, //0x0000093a xorq %rbx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000093d bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00000941 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00000944 je LBB0_154 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x0000094a movl $-1, %ebx + 0xd3, 0xe3, //0x0000094f shll %cl, %ebx + 0xf7, 0xd3, //0x00000951 notl %ebx + 0x21, 0xdf, //0x00000953 andl %ebx, %edi + 0x21, 0xde, //0x00000955 andl %ebx, %esi + 0x21, 0xd3, //0x00000957 andl %edx, %ebx + 0x89, 0xda, //0x00000959 movl %ebx, %edx + //0x0000095b LBB0_154 + 0x8d, 0x5f, 0xff, //0x0000095b leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x0000095e andl %edi, %ebx + 0x0f, 0x85, 0x14, 0x12, 0x00, 0x00, //0x00000960 jne LBB0_344 + 0x8d, 0x5e, 0xff, //0x00000966 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00000969 andl %esi, %ebx + 0x0f, 0x85, 0x09, 0x12, 0x00, 0x00, //0x0000096b jne LBB0_344 + 0x8d, 0x5a, 0xff, //0x00000971 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00000974 andl %edx, %ebx + 0x0f, 0x85, 0xfe, 0x11, 0x00, 0x00, //0x00000976 jne LBB0_344 + 0x85, 0xff, //0x0000097c testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000097e je LBB0_160 + 0x4c, 0x89, 0xf3, //0x00000984 movq %r14, %rbx + 0x4c, 0x29, 0xfb, //0x00000987 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x0000098a bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x0000098d addq %rbx, %rdi + 0x49, 0x83, 0xfd, 0xff, //0x00000990 cmpq $-1, %r13 + 0x0f, 0x85, 0x00, 0x12, 0x00, 0x00, //0x00000994 jne LBB0_347 + 0x49, 0x89, 0xfd, //0x0000099a movq %rdi, %r13 + //0x0000099d LBB0_160 + 0x85, 0xf6, //0x0000099d testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000099f je LBB0_163 + 0x4c, 0x89, 0xf7, //0x000009a5 movq %r14, %rdi + 0x4c, 0x29, 0xff, //0x000009a8 subq %r15, %rdi + 0x0f, 0xbc, 0xf6, //0x000009ab bsfl %esi, %esi + 0x48, 0x01, 0xfe, //0x000009ae addq %rdi, %rsi + 0x49, 0x83, 0xfc, 0xff, //0x000009b1 cmpq $-1, %r12 + 0x0f, 0x85, 0x0f, 0x13, 0x00, 0x00, //0x000009b5 jne LBB0_350 + 0x49, 0x89, 0xf4, //0x000009bb movq %rsi, %r12 + //0x000009be LBB0_163 + 0x85, 0xd2, //0x000009be testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009c0 je LBB0_166 + 0x4c, 0x89, 0xf6, //0x000009c6 movq %r14, %rsi + 0x4c, 0x29, 0xfe, //0x000009c9 subq %r15, %rsi + 0x0f, 0xbc, 0xd2, //0x000009cc bsfl %edx, %edx + 0x48, 0x01, 0xf2, //0x000009cf addq %rsi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x000009d2 cmpq $-1, %rax + 0x0f, 0x85, 0x53, 0x11, 0x00, 0x00, //0x000009d6 jne LBB0_340 + 0x48, 0x89, 0xd0, //0x000009dc movq %rdx, %rax + //0x000009df LBB0_166 + 0x83, 0xf9, 0x10, //0x000009df cmpl $16, %ecx + 0x0f, 0x85, 0xb3, 0x05, 0x00, 0x00, //0x000009e2 jne LBB0_186 + 0x49, 0x83, 0xc6, 0x10, //0x000009e8 addq $16, %r14 + 0x49, 0x83, 0xc2, 0xf0, //0x000009ec addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000009f0 cmpq $15, %r10 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x000009f4 ja LBB0_152 + 0x4d, 0x89, 0xca, //0x000009fa movq %r9, %r10 + 0x4d, 0x89, 0xde, //0x000009fd movq %r11, %r14 + //0x00000a00 LBB0_169 + 0x4d, 0x85, 0xd2, //0x00000a00 testq %r10, %r10 + 0x0f, 0x84, 0x95, 0x05, 0x00, 0x00, //0x00000a03 je LBB0_187 + 0x4b, 0x8d, 0x0c, 0x16, //0x00000a09 leaq (%r14,%r10), %rcx + 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00000a0d jmp LBB0_174 + //0x00000a12 LBB0_67 + 0x83, 0xfe, 0x22, //0x00000a12 cmpl $34, %esi + 0x0f, 0x84, 0x36, 0x02, 0x00, 0x00, //0x00000a15 je LBB0_92 + //0x00000a1b LBB0_63 + 0x83, 0xfe, 0x7d, //0x00000a1b cmpl $125, %esi + 0x0f, 0x85, 0x8e, 0x1d, 0x00, 0x00, //0x00000a1e jne LBB0_497 + //0x00000a24 LBB0_41 + 0x49, 0x89, 0x12, //0x00000a24 movq %rdx, (%r10) + 0x48, 0x89, 0xd3, //0x00000a27 movq %rdx, %rbx + 0x48, 0x8b, 0x4d, 0x90, //0x00000a2a movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x00000a2e testq %rdx, %rdx + 0x0f, 0x85, 0x79, 0xf8, 0xff, 0xff, //0x00000a31 jne LBB0_5 + 0xe9, 0x7d, 0x1d, 0x00, 0x00, //0x00000a37 jmp LBB0_498 + //0x00000a3c LBB0_171 + 0x49, 0x89, 0xd6, //0x00000a3c movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000a3f subq %r15, %r14 + 0x49, 0x83, 0xfc, 0xff, //0x00000a42 cmpq $-1, %r12 + 0x0f, 0x85, 0x0e, 0x13, 0x00, 0x00, //0x00000a46 jne LBB0_359 + 0x49, 0xff, 0xce, //0x00000a4c decq %r14 + 0x4d, 0x89, 0xf4, //0x00000a4f movq %r14, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a52 .p2align 4, 0x90 + //0x00000a60 LBB0_173 + 0x49, 0x89, 0xd6, //0x00000a60 movq %rdx, %r14 + 0x49, 0xff, 0xca, //0x00000a63 decq %r10 + 0x0f, 0x84, 0x30, 0x12, 0x00, 0x00, //0x00000a66 je LBB0_348 + //0x00000a6c LBB0_174 + 0x41, 0x0f, 0xbe, 0x36, //0x00000a6c movsbl (%r14), %esi + 0x83, 0xc6, 0xd5, //0x00000a70 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x00000a73 cmpl $58, %esi + 0x0f, 0x87, 0x22, 0x05, 0x00, 0x00, //0x00000a76 ja LBB0_187 + 0x49, 0x8d, 0x56, 0x01, //0x00000a7c leaq $1(%r14), %rdx + 0x48, 0x8d, 0x3d, 0x51, 0x22, 0x00, 0x00, //0x00000a80 leaq $8785(%rip), %rdi /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x34, 0xb7, //0x00000a87 movslq (%rdi,%rsi,4), %rsi + 0x48, 0x01, 0xfe, //0x00000a8b addq %rdi, %rsi + 0xff, 0xe6, //0x00000a8e jmpq *%rsi + //0x00000a90 LBB0_176 + 0x49, 0x89, 0xd6, //0x00000a90 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000a93 subq %r15, %r14 + 0x48, 0x83, 0xf8, 0xff, //0x00000a96 cmpq $-1, %rax + 0x0f, 0x85, 0xba, 0x12, 0x00, 0x00, //0x00000a9a jne LBB0_359 + 0x49, 0xff, 0xce, //0x00000aa0 decq %r14 + 0x4c, 0x89, 0xf0, //0x00000aa3 movq %r14, %rax + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x00000aa6 jmp LBB0_173 + //0x00000aab LBB0_178 + 0x49, 0x89, 0xd6, //0x00000aab movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000aae subq %r15, %r14 + 0x49, 0x83, 0xfd, 0xff, //0x00000ab1 cmpq $-1, %r13 + 0x0f, 0x85, 0x9f, 0x12, 0x00, 0x00, //0x00000ab5 jne LBB0_359 + 0x49, 0xff, 0xce, //0x00000abb decq %r14 + 0x4d, 0x89, 0xf5, //0x00000abe movq %r14, %r13 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00000ac1 jmp LBB0_173 + //0x00000ac6 LBB0_73 + 0x49, 0x89, 0xd2, //0x00000ac6 movq %rdx, %r10 + 0x4d, 0x29, 0xe2, //0x00000ac9 subq %r12, %r10 + 0x0f, 0x84, 0x85, 0x1e, 0x00, 0x00, //0x00000acc je LBB0_504 + 0x4c, 0x89, 0xe0, //0x00000ad2 movq %r12, %rax + 0x4d, 0x01, 0xcc, //0x00000ad5 addq %r9, %r12 + 0x49, 0x83, 0xfa, 0x40, //0x00000ad8 cmpq $64, %r10 + 0x4c, 0x89, 0x4d, 0xc8, //0x00000adc movq %r9, $-56(%rbp) + 0x0f, 0x82, 0x48, 0x13, 0x00, 0x00, //0x00000ae0 jb LBB0_356 + 0x45, 0x89, 0xd6, //0x00000ae6 movl %r10d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000ae9 andl $63, %r14d + 0x48, 0x89, 0xd1, //0x00000aed movq %rdx, %rcx + 0x4c, 0x29, 0xc1, //0x00000af0 subq %r8, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00000af3 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000af7 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000afb addq %rax, %rcx + 0x49, 0x8d, 0x44, 0x09, 0x40, //0x00000afe leaq $64(%r9,%rcx), %rax + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00000b03 movq $-1, %r13 + 0x45, 0x31, 0xff, //0x00000b0a xorl %r15d, %r15d + 0x90, 0x90, 0x90, //0x00000b0d .p2align 4, 0x90 + //0x00000b10 LBB0_76 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000b10 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000b16 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000b1d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000b21 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000b25 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000b29 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000b2d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xda, //0x00000b31 vpmovmskb %ymm2, %r11d + 0xc5, 0xf5, 0x74, 0xd7, //0x00000b35 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x00000b39 vpmovmskb %ymm2, %ebx + 0xc5, 0xbd, 0x64, 0xd0, //0x00000b3d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000b41 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000b46 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000b4a vpmovmskb %ymm0, %esi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000b4e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000b52 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000b57 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000b5b vpmovmskb %ymm0, %edi + 0x48, 0xc1, 0xe2, 0x20, //0x00000b5f shlq $32, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00000b63 shlq $32, %rbx + 0x49, 0x09, 0xdb, //0x00000b67 orq %rbx, %r11 + 0x49, 0x83, 0xfd, 0xff, //0x00000b6a cmpq $-1, %r13 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b6e jne LBB0_78 + 0x4d, 0x85, 0xdb, //0x00000b74 testq %r11, %r11 + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000b77 jne LBB0_87 + //0x00000b7d LBB0_78 + 0x48, 0xc1, 0xe7, 0x20, //0x00000b7d shlq $32, %rdi + 0x4c, 0x09, 0xca, //0x00000b81 orq %r9, %rdx + 0x4c, 0x89, 0xd9, //0x00000b84 movq %r11, %rcx + 0x4c, 0x09, 0xf9, //0x00000b87 orq %r15, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000b8a jne LBB0_108 + 0x48, 0x09, 0xf7, //0x00000b90 orq %rsi, %rdi + 0x48, 0x85, 0xd2, //0x00000b93 testq %rdx, %rdx + 0x0f, 0x85, 0x05, 0x02, 0x00, 0x00, //0x00000b96 jne LBB0_109 + //0x00000b9c LBB0_80 + 0x48, 0x85, 0xff, //0x00000b9c testq %rdi, %rdi + 0x0f, 0x85, 0x32, 0x1c, 0x00, 0x00, //0x00000b9f jne LBB0_481 + 0x49, 0x83, 0xc2, 0xc0, //0x00000ba5 addq $-64, %r10 + 0x49, 0x83, 0xc4, 0x40, //0x00000ba9 addq $64, %r12 + 0x49, 0x83, 0xfa, 0x3f, //0x00000bad cmpq $63, %r10 + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000bb1 ja LBB0_76 + 0xe9, 0x12, 0x0f, 0x00, 0x00, //0x00000bb7 jmp LBB0_82 + //0x00000bbc LBB0_108 + 0x4c, 0x89, 0xf9, //0x00000bbc movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000bbf notq %rcx + 0x4c, 0x21, 0xd9, //0x00000bc2 andq %r11, %rcx + 0x4c, 0x8d, 0x0c, 0x09, //0x00000bc5 leaq (%rcx,%rcx), %r9 + 0x4d, 0x09, 0xf9, //0x00000bc9 orq %r15, %r9 + 0x4c, 0x89, 0xcb, //0x00000bcc movq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000bcf notq %rbx + 0x4c, 0x21, 0xdb, //0x00000bd2 andq %r11, %rbx + 0x49, 0x89, 0xc3, //0x00000bd5 movq %rax, %r11 + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000bd8 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc3, //0x00000be2 andq %rax, %rbx + 0x45, 0x31, 0xff, //0x00000be5 xorl %r15d, %r15d + 0x48, 0x01, 0xcb, //0x00000be8 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00000beb setb %r15b + 0x48, 0x01, 0xdb, //0x00000bef addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000bf2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x00000bfc xorq %rax, %rbx + 0x4c, 0x89, 0xd8, //0x00000bff movq %r11, %rax + 0x4c, 0x21, 0xcb, //0x00000c02 andq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000c05 notq %rbx + 0x48, 0x21, 0xda, //0x00000c08 andq %rbx, %rdx + 0x48, 0x09, 0xf7, //0x00000c0b orq %rsi, %rdi + 0x48, 0x85, 0xd2, //0x00000c0e testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0xff, 0xff, 0xff, //0x00000c11 je LBB0_80 + 0xe9, 0x85, 0x01, 0x00, 0x00, //0x00000c17 jmp LBB0_109 + //0x00000c1c LBB0_87 + 0x4c, 0x89, 0xe3, //0x00000c1c movq %r12, %rbx + 0x48, 0x2b, 0x5d, 0xc8, //0x00000c1f subq $-56(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xeb, //0x00000c23 bsfq %r11, %r13 + 0x49, 0x01, 0xdd, //0x00000c27 addq %rbx, %r13 + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00000c2a jmp LBB0_78 + //0x00000c2f LBB0_88 + 0x48, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x00000c2f cmpq $4095, %rbx + 0x0f, 0x8f, 0x16, 0x1b, 0x00, 0x00, //0x00000c36 jg LBB0_486 + 0x48, 0x8d, 0x43, 0x01, //0x00000c3c leaq $1(%rbx), %rax + 0x49, 0x89, 0x02, //0x00000c40 movq %rax, (%r10) + 0x49, 0xc7, 0x44, 0xda, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000c43 movq $0, $8(%r10,%rbx,8) + 0xe9, 0x1f, 0xf6, 0xff, 0xff, //0x00000c4c jmp LBB0_3 + //0x00000c51 LBB0_92 + 0x49, 0xc7, 0x04, 0xda, 0x02, 0x00, 0x00, 0x00, //0x00000c51 movq $2, (%r10,%rbx,8) + 0x49, 0x8b, 0x76, 0x08, //0x00000c59 movq $8(%r14), %rsi + 0xf6, 0x45, 0x98, 0x20, //0x00000c5d testb $32, $-104(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00000c61 movq %rsi, $-80(%rbp) + 0x0f, 0x85, 0x6e, 0x01, 0x00, 0x00, //0x00000c65 jne LBB0_111 + 0x48, 0x89, 0xf1, //0x00000c6b movq %rsi, %rcx + 0x4c, 0x29, 0xe1, //0x00000c6e subq %r12, %rcx + 0x0f, 0x84, 0xe9, 0x1c, 0x00, 0x00, //0x00000c71 je LBB0_507 + 0x4b, 0x8d, 0x1c, 0x21, //0x00000c77 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00000c7b cmpq $64, %rcx + 0x0f, 0x82, 0xe2, 0x11, 0x00, 0x00, //0x00000c7f jb LBB0_360 + 0x4c, 0x89, 0xca, //0x00000c85 movq %r9, %rdx + 0x41, 0x89, 0xcf, //0x00000c88 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00000c8b andl $63, %r15d + 0x48, 0x89, 0xf0, //0x00000c8f movq %rsi, %rax + 0x4c, 0x29, 0xc0, //0x00000c92 subq %r8, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x00000c95 addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000c99 andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00000c9d addq %r12, %rax + 0x4d, 0x8d, 0x54, 0x01, 0x40, //0x00000ca0 leaq $64(%r9,%rax), %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000ca5 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00000cac xorl %r14d, %r14d + 0x90, //0x00000caf .p2align 4, 0x90 + //0x00000cb0 LBB0_96 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000cb0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000cb4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000cb9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xf2, //0x00000cbd vpmovmskb %ymm2, %esi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000cc1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000cc5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000cc9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000ccd vpmovmskb %ymm0, %edi + 0xc5, 0xf5, 0x74, 0xc7, //0x00000cd1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00000cd5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00000cd9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000cdd shlq $32, %rax + 0x48, 0x09, 0xc7, //0x00000ce1 orq %rax, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x00000ce4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000ce8 jne LBB0_98 + 0x48, 0x85, 0xff, //0x00000cee testq %rdi, %rdi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000cf1 jne LBB0_105 + //0x00000cf7 LBB0_98 + 0x48, 0x09, 0xf2, //0x00000cf7 orq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x00000cfa movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x00000cfd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000d00 jne LBB0_106 + //0x00000d06 LBB0_99 + 0x48, 0x85, 0xd2, //0x00000d06 testq %rdx, %rdx + 0x0f, 0x85, 0xd7, 0x0e, 0x00, 0x00, //0x00000d09 jne LBB0_107 + //0x00000d0f LBB0_100 + 0x48, 0x83, 0xc1, 0xc0, //0x00000d0f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00000d13 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00000d17 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x00000d1b ja LBB0_96 + 0xe9, 0x7f, 0x0e, 0x00, 0x00, //0x00000d21 jmp LBB0_101 + //0x00000d26 LBB0_105 + 0x48, 0x89, 0xd8, //0x00000d26 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00000d29 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xdf, //0x00000d2c bsfq %rdi, %r11 + 0x49, 0x01, 0xc3, //0x00000d30 addq %rax, %r11 + 0x48, 0x09, 0xf2, //0x00000d33 orq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x00000d36 movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x00000d39 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00000d3c je LBB0_99 + //0x00000d42 LBB0_106 + 0x4c, 0x89, 0xf0, //0x00000d42 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000d45 notq %rax + 0x48, 0x21, 0xf8, //0x00000d48 andq %rdi, %rax + 0x4c, 0x89, 0x65, 0xa8, //0x00000d4b movq %r12, $-88(%rbp) + 0x4c, 0x8d, 0x24, 0x00, //0x00000d4f leaq (%rax,%rax), %r12 + 0x4d, 0x09, 0xf4, //0x00000d53 orq %r14, %r12 + 0x4c, 0x89, 0xe6, //0x00000d56 movq %r12, %rsi + 0x48, 0xf7, 0xd6, //0x00000d59 notq %rsi + 0x48, 0x21, 0xfe, //0x00000d5c andq %rdi, %rsi + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000d5f movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfe, //0x00000d69 andq %rdi, %rsi + 0x45, 0x31, 0xf6, //0x00000d6c xorl %r14d, %r14d + 0x48, 0x01, 0xc6, //0x00000d6f addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc6, //0x00000d72 setb %r14b + 0x48, 0x01, 0xf6, //0x00000d76 addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000d79 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000d83 xorq %rax, %rsi + 0x4c, 0x21, 0xe6, //0x00000d86 andq %r12, %rsi + 0x4c, 0x8b, 0x65, 0xa8, //0x00000d89 movq $-88(%rbp), %r12 + 0x48, 0xf7, 0xd6, //0x00000d8d notq %rsi + 0x48, 0x21, 0xf2, //0x00000d90 andq %rsi, %rdx + 0x48, 0x85, 0xd2, //0x00000d93 testq %rdx, %rdx + 0x0f, 0x84, 0x73, 0xff, 0xff, 0xff, //0x00000d96 je LBB0_100 + 0xe9, 0x45, 0x0e, 0x00, 0x00, //0x00000d9c jmp LBB0_107 + //0x00000da1 LBB0_109 + 0x48, 0x0f, 0xbc, 0xca, //0x00000da1 bsfq %rdx, %rcx + 0x48, 0x85, 0xff, //0x00000da5 testq %rdi, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00000da8 movq $-56(%rbp), %rax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00000dac je LBB0_181 + 0x48, 0x0f, 0xbc, 0xd7, //0x00000db2 bsfq %rdi, %rdx + 0xe9, 0xc2, 0x01, 0x00, 0x00, //0x00000db6 jmp LBB0_182 + //0x00000dbb LBB0_180 + 0x49, 0x01, 0xcb, //0x00000dbb addq %rcx, %r11 + 0xc5, 0xf8, 0x77, //0x00000dbe vzeroupper + 0x4d, 0x89, 0xde, //0x00000dc1 movq %r11, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000dc4 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000dcb testq %r12, %r12 + 0x0f, 0x85, 0xda, 0x01, 0x00, 0x00, //0x00000dce jne LBB0_188 + 0xe9, 0xc8, 0x19, 0x00, 0x00, //0x00000dd4 jmp LBB0_480 + //0x00000dd9 LBB0_111 + 0x48, 0x89, 0xf3, //0x00000dd9 movq %rsi, %rbx + 0x4c, 0x29, 0xe3, //0x00000ddc subq %r12, %rbx + 0x0f, 0x84, 0x7b, 0x1b, 0x00, 0x00, //0x00000ddf je LBB0_507 + 0x4c, 0x89, 0xe0, //0x00000de5 movq %r12, %rax + 0x4d, 0x01, 0xcc, //0x00000de8 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x00000deb cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc8, //0x00000def movq %r9, $-56(%rbp) + 0x0f, 0x82, 0x87, 0x10, 0x00, 0x00, //0x00000df3 jb LBB0_361 + 0x41, 0x89, 0xde, //0x00000df9 movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000dfc andl $63, %r14d + 0x48, 0x89, 0xf1, //0x00000e00 movq %rsi, %rcx + 0x4c, 0x29, 0xc1, //0x00000e03 subq %r8, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00000e06 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000e0a andq $-64, %rcx + 0x49, 0x89, 0xc2, //0x00000e0e movq %rax, %r10 + 0x48, 0x01, 0xc1, //0x00000e11 addq %rax, %rcx + 0x49, 0x8d, 0x44, 0x09, 0x40, //0x00000e14 leaq $64(%r9,%rcx), %rax + 0x48, 0x89, 0x45, 0xa0, //0x00000e19 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000e1d movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00000e24 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e27 .p2align 4, 0x90 + //0x00000e30 LBB0_114 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000e30 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000e36 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000e3d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000e41 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000e45 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000e49 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000e4d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00000e51 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00000e55 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00000e59 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x00000e5d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000e61 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000e66 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000e6a vpmovmskb %ymm0, %esi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000e6e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000e72 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000e77 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000e7b vpmovmskb %ymm0, %edi + 0x48, 0xc1, 0xe2, 0x20, //0x00000e7f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000e83 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00000e87 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x00000e8a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000e8e jne LBB0_116 + 0x48, 0x85, 0xc9, //0x00000e94 testq %rcx, %rcx + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00000e97 jne LBB0_125 + //0x00000e9d LBB0_116 + 0x48, 0xc1, 0xe7, 0x20, //0x00000e9d shlq $32, %rdi + 0x4c, 0x09, 0xca, //0x00000ea1 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00000ea4 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00000ea7 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000eaa jne LBB0_126 + 0x48, 0x09, 0xf7, //0x00000eb0 orq %rsi, %rdi + 0x48, 0x85, 0xd2, //0x00000eb3 testq %rdx, %rdx + 0x0f, 0x85, 0x92, 0x00, 0x00, 0x00, //0x00000eb6 jne LBB0_127 + //0x00000ebc LBB0_118 + 0x48, 0x85, 0xff, //0x00000ebc testq %rdi, %rdi + 0x0f, 0x85, 0x40, 0x19, 0x00, 0x00, //0x00000ebf jne LBB0_499 + 0x48, 0x83, 0xc3, 0xc0, //0x00000ec5 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00000ec9 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x00000ecd cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000ed1 ja LBB0_114 + 0xe9, 0x5e, 0x0d, 0x00, 0x00, //0x00000ed7 jmp LBB0_120 + //0x00000edc LBB0_126 + 0x4d, 0x89, 0xfd, //0x00000edc movq %r15, %r13 + 0x49, 0xf7, 0xd5, //0x00000edf notq %r13 + 0x49, 0x21, 0xcd, //0x00000ee2 andq %rcx, %r13 + 0x4f, 0x8d, 0x4c, 0x2d, 0x00, //0x00000ee5 leaq (%r13,%r13), %r9 + 0x4d, 0x09, 0xf9, //0x00000eea orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x00000eed movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000ef0 notq %rax + 0x48, 0x21, 0xc8, //0x00000ef3 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000ef6 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x00000f00 andq %rcx, %rax + 0x45, 0x31, 0xff, //0x00000f03 xorl %r15d, %r15d + 0x4c, 0x01, 0xe8, //0x00000f06 addq %r13, %rax + 0x4c, 0x8b, 0x6d, 0xc0, //0x00000f09 movq $-64(%rbp), %r13 + 0x41, 0x0f, 0x92, 0xc7, //0x00000f0d setb %r15b + 0x48, 0x01, 0xc0, //0x00000f11 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000f14 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00000f1e xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x00000f21 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000f24 notq %rax + 0x48, 0x21, 0xc2, //0x00000f27 andq %rax, %rdx + 0x48, 0x09, 0xf7, //0x00000f2a orq %rsi, %rdi + 0x48, 0x85, 0xd2, //0x00000f2d testq %rdx, %rdx + 0x0f, 0x84, 0x86, 0xff, 0xff, 0xff, //0x00000f30 je LBB0_118 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000f36 jmp LBB0_127 + //0x00000f3b LBB0_125 + 0x4c, 0x89, 0xe0, //0x00000f3b movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x00000f3e subq $-56(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00000f42 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00000f46 addq %rax, %r11 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00000f49 jmp LBB0_116 + //0x00000f4e LBB0_127 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f4e bsfq %rdx, %rcx + 0x48, 0x85, 0xff, //0x00000f52 testq %rdi, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00000f55 movq $-56(%rbp), %rax + 0x0f, 0x84, 0x8e, 0x01, 0x00, 0x00, //0x00000f59 je LBB0_203 + 0x48, 0x0f, 0xbc, 0xd7, //0x00000f5f bsfq %rdi, %rdx + 0x4c, 0x8b, 0x75, 0xd0, //0x00000f63 movq $-48(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000f67 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000f6a cmpq %rcx, %rdx + 0x0f, 0x83, 0x8f, 0x01, 0x00, 0x00, //0x00000f6d jae LBB0_204 + 0xe9, 0x03, 0x1a, 0x00, 0x00, //0x00000f73 jmp LBB0_129 + //0x00000f78 LBB0_181 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00000f78 movl $64, %edx + //0x00000f7d LBB0_182 + 0x4c, 0x8b, 0x55, 0xb8, //0x00000f7d movq $-72(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xd0, //0x00000f81 movq $-48(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000f85 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000f88 cmpq %rcx, %rdx + 0x0f, 0x82, 0xd8, 0x19, 0x00, 0x00, //0x00000f8b jb LBB0_505 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00000f91 leaq $1(%r12,%rcx), %r12 + 0xe9, 0x0f, 0x0b, 0x00, 0x00, //0x00000f96 jmp LBB0_184 + //0x00000f9b LBB0_186 + 0x49, 0x01, 0xce, //0x00000f9b addq %rcx, %r14 + //0x00000f9e LBB0_187 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000f9e movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000fa5 testq %r12, %r12 + 0x0f, 0x84, 0xf3, 0x17, 0x00, 0x00, //0x00000fa8 je LBB0_480 + //0x00000fae LBB0_188 + 0x48, 0x85, 0xc0, //0x00000fae testq %rax, %rax + 0x0f, 0x84, 0xea, 0x17, 0x00, 0x00, //0x00000fb1 je LBB0_480 + 0x4d, 0x85, 0xed, //0x00000fb7 testq %r13, %r13 + 0x0f, 0x84, 0xe1, 0x17, 0x00, 0x00, //0x00000fba je LBB0_480 + 0x4d, 0x29, 0xfe, //0x00000fc0 subq %r15, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00000fc3 leaq $-1(%r14), %rcx + 0x49, 0x39, 0xcc, //0x00000fc7 cmpq %rcx, %r12 + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000fca je LBB0_196 + 0x49, 0x39, 0xcd, //0x00000fd0 cmpq %rcx, %r13 + 0x0f, 0x84, 0x7f, 0x00, 0x00, 0x00, //0x00000fd3 je LBB0_196 + 0x48, 0x39, 0xc8, //0x00000fd9 cmpq %rcx, %rax + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00000fdc je LBB0_196 + 0x48, 0x85, 0xc0, //0x00000fe2 testq %rax, %rax + 0xc5, 0xfe, 0x6f, 0x2d, 0x13, 0xf0, 0xff, 0xff, //0x00000fe5 vmovdqu $-4077(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x2b, 0xf0, 0xff, 0xff, //0x00000fed vmovdqu $-4053(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x43, 0xf0, 0xff, 0xff, //0x00000ff5 vmovdqu $-4029(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x5b, 0xf0, 0xff, 0xff, //0x00000ffd vmovdqu $-4005(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001005 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x6e, 0xf0, 0xff, 0xff, //0x0000100a vmovdqu $-3986(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x86, 0xf0, 0xff, 0xff, //0x00001012 vmovdqu $-3962(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x9e, 0xf0, 0xff, 0xff, //0x0000101a vmovdqu $-3938(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xb6, 0xf0, 0xff, 0xff, //0x00001022 vmovdqu $-3914(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xce, 0xf0, 0xff, 0xff, //0x0000102a vmovdqu $-3890(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xe6, 0xf0, 0xff, 0xff, //0x00001032 vmovdqu $-3866(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x0f, 0x8e, 0x8a, 0x00, 0x00, 0x00, //0x0000103a jle LBB0_200 + 0x48, 0x8d, 0x48, 0xff, //0x00001040 leaq $-1(%rax), %rcx + 0x49, 0x39, 0xcc, //0x00001044 cmpq %rcx, %r12 + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00001047 je LBB0_200 + //0x0000104d LBB0_195 + 0x48, 0xf7, 0xd0, //0x0000104d notq %rax + 0x49, 0x89, 0xc6, //0x00001050 movq %rax, %r14 + 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00001053 jmp LBB0_197 + //0x00001058 LBB0_196 + 0x49, 0xf7, 0xde, //0x00001058 negq %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0x9d, 0xef, 0xff, 0xff, //0x0000105b vmovdqu $-4195(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xb5, 0xef, 0xff, 0xff, //0x00001063 vmovdqu $-4171(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xcd, 0xef, 0xff, 0xff, //0x0000106b vmovdqu $-4147(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xe5, 0xef, 0xff, 0xff, //0x00001073 vmovdqu $-4123(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000107b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xf8, 0xef, 0xff, 0xff, //0x00001080 vmovdqu $-4104(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x10, 0xf0, 0xff, 0xff, //0x00001088 vmovdqu $-4080(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x28, 0xf0, 0xff, 0xff, //0x00001090 vmovdqu $-4056(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x40, 0xf0, 0xff, 0xff, //0x00001098 vmovdqu $-4032(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x58, 0xf0, 0xff, 0xff, //0x000010a0 vmovdqu $-4008(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x70, 0xf0, 0xff, 0xff, //0x000010a8 vmovdqu $-3984(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + //0x000010b0 LBB0_197 + 0x4d, 0x85, 0xf6, //0x000010b0 testq %r14, %r14 + 0x4c, 0x8b, 0x6d, 0xc0, //0x000010b3 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x65, 0xa8, //0x000010b7 movq $-88(%rbp), %r12 + 0x0f, 0x88, 0xdd, 0x16, 0x00, 0x00, //0x000010bb js LBB0_479 + 0x49, 0x8b, 0x4d, 0x00, //0x000010c1 movq (%r13), %rcx + 0xe9, 0x86, 0xf1, 0xff, 0xff, //0x000010c5 jmp LBB0_199 + //0x000010ca LBB0_200 + 0x4c, 0x89, 0xe9, //0x000010ca movq %r13, %rcx + 0x4c, 0x09, 0xe1, //0x000010cd orq %r12, %rcx + 0x4d, 0x39, 0xe5, //0x000010d0 cmpq %r12, %r13 + 0x0f, 0x8c, 0x8f, 0x02, 0x00, 0x00, //0x000010d3 jl LBB0_249 + 0x48, 0x85, 0xc9, //0x000010d9 testq %rcx, %rcx + 0x0f, 0x88, 0x86, 0x02, 0x00, 0x00, //0x000010dc js LBB0_249 + 0x49, 0xf7, 0xd5, //0x000010e2 notq %r13 + 0x4d, 0x89, 0xee, //0x000010e5 movq %r13, %r14 + 0xe9, 0xc3, 0xff, 0xff, 0xff, //0x000010e8 jmp LBB0_197 + //0x000010ed LBB0_203 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000010ed movl $64, %edx + 0x4c, 0x8b, 0x75, 0xd0, //0x000010f2 movq $-48(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x000010f6 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x000010f9 cmpq %rcx, %rdx + 0x0f, 0x82, 0x79, 0x18, 0x00, 0x00, //0x000010fc jb LBB0_129 + //0x00001102 LBB0_204 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001102 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xed, 0x0a, 0x00, 0x00, //0x00001107 jmp LBB0_205 + //0x0000110c LBB0_209 + 0x49, 0x8b, 0x76, 0x08, //0x0000110c movq $8(%r14), %rsi + 0xf6, 0x45, 0x98, 0x20, //0x00001110 testb $32, $-104(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00001114 movq %rsi, $-80(%rbp) + 0x0f, 0x85, 0x65, 0x02, 0x00, 0x00, //0x00001118 jne LBB0_250 + 0x48, 0x89, 0xf1, //0x0000111e movq %rsi, %rcx + 0x4c, 0x29, 0xe1, //0x00001121 subq %r12, %rcx + 0x0f, 0x84, 0x36, 0x18, 0x00, 0x00, //0x00001124 je LBB0_507 + 0x4b, 0x8d, 0x1c, 0x21, //0x0000112a leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x0000112e cmpq $64, %rcx + 0x4c, 0x89, 0xca, //0x00001132 movq %r9, %rdx + 0x0f, 0x82, 0x86, 0x0d, 0x00, 0x00, //0x00001135 jb LBB0_363 + 0x41, 0x89, 0xcf, //0x0000113b movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x0000113e andl $63, %r15d + 0x48, 0x89, 0xf0, //0x00001142 movq %rsi, %rax + 0x4c, 0x29, 0xc0, //0x00001145 subq %r8, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x00001148 addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000114c andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00001150 addq %r12, %rax + 0x49, 0x89, 0xd1, //0x00001153 movq %rdx, %r9 + 0x4c, 0x8d, 0x54, 0x02, 0x40, //0x00001156 leaq $64(%rdx,%rax), %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000115b movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001162 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001165 .p2align 4, 0x90 + //0x00001170 LBB0_213 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001170 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00001174 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00001179 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xf2, //0x0000117d vpmovmskb %ymm2, %esi + 0xc5, 0xf5, 0x74, 0xd6, //0x00001181 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00001185 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001189 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000118d vpmovmskb %ymm0, %edi + 0xc5, 0xf5, 0x74, 0xc7, //0x00001191 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00001195 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00001199 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x0000119d shlq $32, %rax + 0x48, 0x09, 0xc7, //0x000011a1 orq %rax, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x000011a4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000011a8 jne LBB0_215 + 0x48, 0x85, 0xff, //0x000011ae testq %rdi, %rdi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000011b1 jne LBB0_222 + //0x000011b7 LBB0_215 + 0x48, 0x09, 0xf2, //0x000011b7 orq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x000011ba movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x000011bd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000011c0 jne LBB0_223 + //0x000011c6 LBB0_216 + 0x48, 0x85, 0xd2, //0x000011c6 testq %rdx, %rdx + 0x0f, 0x85, 0x56, 0x0b, 0x00, 0x00, //0x000011c9 jne LBB0_224 + //0x000011cf LBB0_217 + 0x48, 0x83, 0xc1, 0xc0, //0x000011cf addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x000011d3 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000011d7 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x000011db ja LBB0_213 + 0xe9, 0xfe, 0x0a, 0x00, 0x00, //0x000011e1 jmp LBB0_218 + //0x000011e6 LBB0_222 + 0x48, 0x89, 0xd8, //0x000011e6 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x000011e9 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xdf, //0x000011ec bsfq %rdi, %r11 + 0x49, 0x01, 0xc3, //0x000011f0 addq %rax, %r11 + 0x48, 0x09, 0xf2, //0x000011f3 orq %rsi, %rdx + 0x48, 0x89, 0xf8, //0x000011f6 movq %rdi, %rax + 0x4c, 0x09, 0xf0, //0x000011f9 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x000011fc je LBB0_216 + //0x00001202 LBB0_223 + 0x4c, 0x89, 0xf0, //0x00001202 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001205 notq %rax + 0x48, 0x21, 0xf8, //0x00001208 andq %rdi, %rax + 0x4c, 0x89, 0x65, 0xa8, //0x0000120b movq %r12, $-88(%rbp) + 0x4c, 0x8d, 0x24, 0x00, //0x0000120f leaq (%rax,%rax), %r12 + 0x4d, 0x09, 0xf4, //0x00001213 orq %r14, %r12 + 0x4c, 0x89, 0xe6, //0x00001216 movq %r12, %rsi + 0x48, 0xf7, 0xd6, //0x00001219 notq %rsi + 0x48, 0x21, 0xfe, //0x0000121c andq %rdi, %rsi + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000121f movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfe, //0x00001229 andq %rdi, %rsi + 0x45, 0x31, 0xf6, //0x0000122c xorl %r14d, %r14d + 0x48, 0x01, 0xc6, //0x0000122f addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc6, //0x00001232 setb %r14b + 0x48, 0x01, 0xf6, //0x00001236 addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001239 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00001243 xorq %rax, %rsi + 0x4c, 0x21, 0xe6, //0x00001246 andq %r12, %rsi + 0x4c, 0x8b, 0x65, 0xa8, //0x00001249 movq $-88(%rbp), %r12 + 0x48, 0xf7, 0xd6, //0x0000124d notq %rsi + 0x48, 0x21, 0xf2, //0x00001250 andq %rsi, %rdx + 0x48, 0x85, 0xd2, //0x00001253 testq %rdx, %rdx + 0x0f, 0x84, 0x73, 0xff, 0xff, 0xff, //0x00001256 je LBB0_217 + 0xe9, 0xc4, 0x0a, 0x00, 0x00, //0x0000125c jmp LBB0_224 + //0x00001261 LBB0_225 + 0x4d, 0x8b, 0x76, 0x08, //0x00001261 movq $8(%r14), %r14 + 0x4d, 0x29, 0xe6, //0x00001265 subq %r12, %r14 + 0x0f, 0x84, 0xd3, 0x16, 0x00, 0x00, //0x00001268 je LBB0_495 + 0x4c, 0x89, 0x65, 0xa8, //0x0000126e movq %r12, $-88(%rbp) + 0x4c, 0x89, 0xc8, //0x00001272 movq %r9, %rax + 0x4c, 0x01, 0xe0, //0x00001275 addq %r12, %rax + 0x49, 0x89, 0xc1, //0x00001278 movq %rax, %r9 + 0x80, 0x38, 0x30, //0x0000127b cmpb $48, (%rax) + 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x0000127e jne LBB0_271 + 0x41, 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00001284 movl $1, %r15d + 0x49, 0x83, 0xfe, 0x01, //0x0000128a cmpq $1, %r14 + 0x0f, 0x85, 0x9b, 0x02, 0x00, 0x00, //0x0000128e jne LBB0_269 + 0x4c, 0x8b, 0x65, 0xa8, //0x00001294 movq $-88(%rbp), %r12 + 0xe9, 0xbf, 0x08, 0x00, 0x00, //0x00001298 jmp LBB0_343 + //0x0000129d LBB0_229 + 0x49, 0x8b, 0x02, //0x0000129d movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000012a0 cmpq $4095, %rax + 0x0f, 0x8f, 0xa6, 0x14, 0x00, 0x00, //0x000012a6 jg LBB0_486 + 0x48, 0x8d, 0x48, 0x01, //0x000012ac leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x000012b0 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000012b3 movq $5, $8(%r10,%rax,8) + 0xe9, 0xaf, 0xef, 0xff, 0xff, //0x000012bc jmp LBB0_3 + //0x000012c1 LBB0_231 + 0x49, 0x8b, 0x56, 0x08, //0x000012c1 movq $8(%r14), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000012c5 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc0, //0x000012c9 cmpq %rax, %r8 + 0x0f, 0x83, 0xfc, 0x14, 0x00, 0x00, //0x000012cc jae LBB0_487 + 0x41, 0x81, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, //0x000012d2 cmpl $1819047278, (%r15) + 0x0f, 0x84, 0xa9, 0xef, 0xff, 0xff, //0x000012d9 je LBB0_1 + 0xe9, 0x4c, 0x15, 0x00, 0x00, //0x000012df jmp LBB0_233 + //0x000012e4 LBB0_238 + 0x49, 0x8b, 0x02, //0x000012e4 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000012e7 cmpq $4095, %rax + 0x0f, 0x8f, 0x5f, 0x14, 0x00, 0x00, //0x000012ed jg LBB0_486 + 0x48, 0x8d, 0x48, 0x01, //0x000012f3 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x000012f7 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000012fa movq $6, $8(%r10,%rax,8) + 0xe9, 0x68, 0xef, 0xff, 0xff, //0x00001303 jmp LBB0_3 + //0x00001308 LBB0_240 + 0x49, 0x8b, 0x56, 0x08, //0x00001308 movq $8(%r14), %rdx + 0x48, 0x8d, 0x42, 0xfc, //0x0000130c leaq $-4(%rdx), %rax + 0x49, 0x39, 0xc0, //0x00001310 cmpq %rax, %r8 + 0x0f, 0x83, 0xb5, 0x14, 0x00, 0x00, //0x00001313 jae LBB0_487 + 0x43, 0x8b, 0x14, 0x21, //0x00001319 movl (%r9,%r12), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x0000131d cmpl $1702063201, %edx + 0x0f, 0x85, 0x5d, 0x15, 0x00, 0x00, //0x00001323 jne LBB0_488 + 0x4c, 0x89, 0xe0, //0x00001329 movq %r12, %rax + 0x4d, 0x8d, 0x60, 0x05, //0x0000132c leaq $5(%r8), %r12 + 0x4d, 0x89, 0x65, 0x00, //0x00001330 movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x00001334 movq %r8, %rcx + 0x48, 0x85, 0xc0, //0x00001337 testq %rax, %rax + 0x0f, 0x8f, 0x30, 0xef, 0xff, 0xff, //0x0000133a jg LBB0_3 + 0xe9, 0x74, 0x14, 0x00, 0x00, //0x00001340 jmp LBB0_498 + //0x00001345 LBB0_243 + 0x49, 0x8b, 0x56, 0x08, //0x00001345 movq $8(%r14), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x00001349 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc0, //0x0000134d cmpq %rax, %r8 + 0x0f, 0x83, 0x78, 0x14, 0x00, 0x00, //0x00001350 jae LBB0_487 + 0x41, 0x81, 0x3f, 0x74, 0x72, 0x75, 0x65, //0x00001356 cmpl $1702195828, (%r15) + 0x0f, 0x84, 0x25, 0xef, 0xff, 0xff, //0x0000135d je LBB0_1 + 0xe9, 0x77, 0x15, 0x00, 0x00, //0x00001363 jmp LBB0_245 + //0x00001368 LBB0_249 + 0x48, 0x85, 0xc9, //0x00001368 testq %rcx, %rcx + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x0000136b leaq $-1(%r12), %rax + 0x49, 0xf7, 0xd4, //0x00001370 notq %r12 + 0x4d, 0x0f, 0x48, 0xe6, //0x00001373 cmovsq %r14, %r12 + 0x49, 0x39, 0xc5, //0x00001377 cmpq %rax, %r13 + 0x4d, 0x0f, 0x44, 0xf4, //0x0000137a cmoveq %r12, %r14 + 0xe9, 0x2d, 0xfd, 0xff, 0xff, //0x0000137e jmp LBB0_197 + //0x00001383 LBB0_250 + 0x48, 0x89, 0xf3, //0x00001383 movq %rsi, %rbx + 0x4c, 0x29, 0xe3, //0x00001386 subq %r12, %rbx + 0x0f, 0x84, 0xd1, 0x15, 0x00, 0x00, //0x00001389 je LBB0_507 + 0x4c, 0x89, 0xe0, //0x0000138f movq %r12, %rax + 0x4d, 0x01, 0xcc, //0x00001392 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x00001395 cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc8, //0x00001399 movq %r9, $-56(%rbp) + 0x0f, 0x82, 0x3a, 0x0b, 0x00, 0x00, //0x0000139d jb LBB0_364 + 0x41, 0x89, 0xde, //0x000013a3 movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x000013a6 andl $63, %r14d + 0x48, 0x89, 0xf1, //0x000013aa movq %rsi, %rcx + 0x4c, 0x29, 0xc1, //0x000013ad subq %r8, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x000013b0 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x000013b4 andq $-64, %rcx + 0x49, 0x89, 0xc2, //0x000013b8 movq %rax, %r10 + 0x48, 0x01, 0xc1, //0x000013bb addq %rax, %rcx + 0x49, 0x8d, 0x44, 0x09, 0x40, //0x000013be leaq $64(%r9,%rcx), %rax + 0x48, 0x89, 0x45, 0xa0, //0x000013c3 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000013c7 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x000013ce xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000013d1 .p2align 4, 0x90 + //0x000013e0 LBB0_253 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x000013e0 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x000013e6 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x000013ed vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x000013f1 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x000013f5 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x000013f9 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x000013fd vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00001401 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00001405 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00001409 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x0000140d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001411 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00001416 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000141a vpmovmskb %ymm0, %esi + 0xc5, 0xbd, 0x64, 0xc1, //0x0000141e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00001422 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00001427 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000142b vpmovmskb %ymm0, %edi + 0x48, 0xc1, 0xe2, 0x20, //0x0000142f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00001433 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00001437 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x0000143a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000143e jne LBB0_255 + 0x48, 0x85, 0xc9, //0x00001444 testq %rcx, %rcx + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x00001447 jne LBB0_264 + //0x0000144d LBB0_255 + 0x48, 0xc1, 0xe7, 0x20, //0x0000144d shlq $32, %rdi + 0x4c, 0x09, 0xca, //0x00001451 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00001454 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00001457 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000145a jne LBB0_265 + 0x48, 0x09, 0xf7, //0x00001460 orq %rsi, %rdi + 0x48, 0x85, 0xd2, //0x00001463 testq %rdx, %rdx + 0x0f, 0x85, 0x92, 0x00, 0x00, 0x00, //0x00001466 jne LBB0_266 + //0x0000146c LBB0_257 + 0x48, 0x85, 0xff, //0x0000146c testq %rdi, %rdi + 0x0f, 0x85, 0x90, 0x13, 0x00, 0x00, //0x0000146f jne LBB0_499 + 0x48, 0x83, 0xc3, 0xc0, //0x00001475 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00001479 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x0000147d cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00001481 ja LBB0_253 + 0xe9, 0xd6, 0x08, 0x00, 0x00, //0x00001487 jmp LBB0_259 + //0x0000148c LBB0_265 + 0x4d, 0x89, 0xfd, //0x0000148c movq %r15, %r13 + 0x49, 0xf7, 0xd5, //0x0000148f notq %r13 + 0x49, 0x21, 0xcd, //0x00001492 andq %rcx, %r13 + 0x4f, 0x8d, 0x4c, 0x2d, 0x00, //0x00001495 leaq (%r13,%r13), %r9 + 0x4d, 0x09, 0xf9, //0x0000149a orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x0000149d movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014a0 notq %rax + 0x48, 0x21, 0xc8, //0x000014a3 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000014a6 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x000014b0 andq %rcx, %rax + 0x45, 0x31, 0xff, //0x000014b3 xorl %r15d, %r15d + 0x4c, 0x01, 0xe8, //0x000014b6 addq %r13, %rax + 0x4c, 0x8b, 0x6d, 0xc0, //0x000014b9 movq $-64(%rbp), %r13 + 0x41, 0x0f, 0x92, 0xc7, //0x000014bd setb %r15b + 0x48, 0x01, 0xc0, //0x000014c1 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000014c4 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x000014ce xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x000014d1 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014d4 notq %rax + 0x48, 0x21, 0xc2, //0x000014d7 andq %rax, %rdx + 0x48, 0x09, 0xf7, //0x000014da orq %rsi, %rdi + 0x48, 0x85, 0xd2, //0x000014dd testq %rdx, %rdx + 0x0f, 0x84, 0x86, 0xff, 0xff, 0xff, //0x000014e0 je LBB0_257 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000014e6 jmp LBB0_266 + //0x000014eb LBB0_264 + 0x4c, 0x89, 0xe0, //0x000014eb movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x000014ee subq $-56(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x000014f2 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x000014f6 addq %rax, %r11 + 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x000014f9 jmp LBB0_255 + //0x000014fe LBB0_266 + 0x48, 0x0f, 0xbc, 0xca, //0x000014fe bsfq %rdx, %rcx + 0x48, 0x85, 0xff, //0x00001502 testq %rdi, %rdi + 0x48, 0x8b, 0x45, 0xc8, //0x00001505 movq $-56(%rbp), %rax + 0x0f, 0x84, 0x1f, 0x04, 0x00, 0x00, //0x00001509 je LBB0_320 + 0x48, 0x0f, 0xbc, 0xd7, //0x0000150f bsfq %rdi, %rdx + 0xe9, 0x1b, 0x04, 0x00, 0x00, //0x00001513 jmp LBB0_321 + //0x00001518 LBB0_268 + 0x4c, 0x89, 0xca, //0x00001518 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x0000151b notq %rdx + 0x49, 0x01, 0xd0, //0x0000151e addq %rdx, %r8 + 0x49, 0x39, 0xc8, //0x00001521 cmpq %rcx, %r8 + 0x0f, 0x82, 0x3e, 0xef, 0xff, 0xff, //0x00001524 jb LBB0_36 + 0xe9, 0x17, 0x12, 0x00, 0x00, //0x0000152a jmp LBB0_473 + //0x0000152f LBB0_269 + 0x41, 0x8a, 0x49, 0x01, //0x0000152f movb $1(%r9), %cl + 0x80, 0xc1, 0xd2, //0x00001533 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00001536 cmpb $55, %cl + 0x4c, 0x8b, 0x65, 0xa8, //0x00001539 movq $-88(%rbp), %r12 + 0x0f, 0x87, 0x19, 0x06, 0x00, 0x00, //0x0000153d ja LBB0_343 + 0x0f, 0xb6, 0xc1, //0x00001543 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001546 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00001550 btq %rax, %rcx + 0x0f, 0x83, 0x02, 0x06, 0x00, 0x00, //0x00001554 jae LBB0_343 + //0x0000155a LBB0_271 + 0x49, 0x83, 0xfe, 0x20, //0x0000155a cmpq $32, %r14 + 0x0f, 0x82, 0x40, 0x09, 0x00, 0x00, //0x0000155e jb LBB0_362 + 0x49, 0x8d, 0x4e, 0xe0, //0x00001564 leaq $-32(%r14), %rcx + 0x48, 0x89, 0xc8, //0x00001568 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x0000156b andq $-32, %rax + 0x4d, 0x89, 0xca, //0x0000156f movq %r9, %r10 + 0x4e, 0x8d, 0x7c, 0x08, 0x20, //0x00001572 leaq $32(%rax,%r9), %r15 + 0x83, 0xe1, 0x1f, //0x00001577 andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x0000157a movq %rcx, $-56(%rbp) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000157e movq $-1, %rax + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001585 movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000158c movq $-1, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001593 .p2align 4, 0x90 + //0x000015a0 LBB0_273 + 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x000015a0 vmovdqu (%r10), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x000015a5 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x000015aa vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x000015ae vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x000015b2 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x000015b6 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000015ba vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x000015be vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000015c2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000015c6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000015ca vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000015ce vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000015d2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000015d6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000015da vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000015de vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000015e2 vpmovmskb %ymm0, %ecx + 0x48, 0xf7, 0xd1, //0x000015e6 notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000015e9 bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x000015ed cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000015f0 je LBB0_275 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000015f6 movl $-1, %ebx + 0xd3, 0xe3, //0x000015fb shll %cl, %ebx + 0xf7, 0xd3, //0x000015fd notl %ebx + 0x21, 0xdf, //0x000015ff andl %ebx, %edi + 0x21, 0xda, //0x00001601 andl %ebx, %edx + 0x21, 0xf3, //0x00001603 andl %esi, %ebx + 0x89, 0xde, //0x00001605 movl %ebx, %esi + //0x00001607 LBB0_275 + 0x8d, 0x5f, 0xff, //0x00001607 leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x0000160a andl %edi, %ebx + 0x0f, 0x85, 0xa2, 0x06, 0x00, 0x00, //0x0000160c jne LBB0_349 + 0x8d, 0x5a, 0xff, //0x00001612 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00001615 andl %edx, %ebx + 0x0f, 0x85, 0x97, 0x06, 0x00, 0x00, //0x00001617 jne LBB0_349 + 0x8d, 0x5e, 0xff, //0x0000161d leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00001620 andl %esi, %ebx + 0x0f, 0x85, 0x8c, 0x06, 0x00, 0x00, //0x00001622 jne LBB0_349 + 0x85, 0xff, //0x00001628 testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000162a je LBB0_281 + 0x4c, 0x89, 0xd3, //0x00001630 movq %r10, %rbx + 0x4c, 0x29, 0xcb, //0x00001633 subq %r9, %rbx + 0x0f, 0xbc, 0xff, //0x00001636 bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x00001639 addq %rbx, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000163c cmpq $-1, %r12 + 0x0f, 0x85, 0x96, 0x07, 0x00, 0x00, //0x00001640 jne LBB0_353 + 0x49, 0x89, 0xfc, //0x00001646 movq %rdi, %r12 + //0x00001649 LBB0_281 + 0x85, 0xd2, //0x00001649 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000164b je LBB0_284 + 0x4c, 0x89, 0xd7, //0x00001651 movq %r10, %rdi + 0x4c, 0x29, 0xcf, //0x00001654 subq %r9, %rdi + 0x0f, 0xbc, 0xd2, //0x00001657 bsfl %edx, %edx + 0x48, 0x01, 0xfa, //0x0000165a addq %rdi, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x0000165d cmpq $-1, %r11 + 0x0f, 0x85, 0x6e, 0x06, 0x00, 0x00, //0x00001661 jne LBB0_351 + 0x49, 0x89, 0xd3, //0x00001667 movq %rdx, %r11 + //0x0000166a LBB0_284 + 0x85, 0xf6, //0x0000166a testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000166c je LBB0_287 + 0x4c, 0x89, 0xd7, //0x00001672 movq %r10, %rdi + 0x4c, 0x29, 0xcf, //0x00001675 subq %r9, %rdi + 0x0f, 0xbc, 0xd6, //0x00001678 bsfl %esi, %edx + 0x48, 0x01, 0xfa, //0x0000167b addq %rdi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x0000167e cmpq $-1, %rax + 0x0f, 0x85, 0x4d, 0x06, 0x00, 0x00, //0x00001682 jne LBB0_351 + 0x48, 0x89, 0xd0, //0x00001688 movq %rdx, %rax + //0x0000168b LBB0_287 + 0x83, 0xf9, 0x20, //0x0000168b cmpl $32, %ecx + 0x0f, 0x85, 0x62, 0x02, 0x00, 0x00, //0x0000168e jne LBB0_493 + 0x49, 0x83, 0xc2, 0x20, //0x00001694 addq $32, %r10 + 0x49, 0x83, 0xc6, 0xe0, //0x00001698 addq $-32, %r14 + 0x49, 0x83, 0xfe, 0x1f, //0x0000169c cmpq $31, %r14 + 0x0f, 0x87, 0xfa, 0xfe, 0xff, 0xff, //0x000016a0 ja LBB0_273 + 0xc5, 0xf8, 0x77, //0x000016a6 vzeroupper + 0x4c, 0x8b, 0x75, 0xc8, //0x000016a9 movq $-56(%rbp), %r14 + //0x000016ad LBB0_290 + 0x49, 0x83, 0xfe, 0x10, //0x000016ad cmpq $16, %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0x47, 0xe9, 0xff, 0xff, //0x000016b1 vmovdqu $-5817(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x5f, 0xe9, 0xff, 0xff, //0x000016b9 vmovdqu $-5793(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x77, 0xe9, 0xff, 0xff, //0x000016c1 vmovdqu $-5769(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x8f, 0xe9, 0xff, 0xff, //0x000016c9 vmovdqu $-5745(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000016d1 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xa2, 0xe9, 0xff, 0xff, //0x000016d6 vmovdqu $-5726(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xba, 0xe9, 0xff, 0xff, //0x000016de vmovdqu $-5702(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xd2, 0xe9, 0xff, 0xff, //0x000016e6 vmovdqu $-5678(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xea, 0xe9, 0xff, 0xff, //0x000016ee vmovdqu $-5654(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x02, 0xea, 0xff, 0xff, //0x000016f6 vmovdqu $-5630(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x1a, 0xea, 0xff, 0xff, //0x000016fe vmovdqu $-5606(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x0f, 0x82, 0x55, 0x01, 0x00, 0x00, //0x00001706 jb LBB0_309 + 0x4d, 0x8d, 0x56, 0xf0, //0x0000170c leaq $-16(%r14), %r10 + 0x4c, 0x89, 0xd1, //0x00001710 movq %r10, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00001713 andq $-16, %rcx + 0x4a, 0x8d, 0x4c, 0x39, 0x10, //0x00001717 leaq $16(%rcx,%r15), %rcx + 0x48, 0x89, 0x4d, 0xc8, //0x0000171c movq %rcx, $-56(%rbp) + 0x41, 0x83, 0xe2, 0x0f, //0x00001720 andl $15, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001724 .p2align 4, 0x90 + //0x00001730 LBB0_292 + 0xc4, 0xc1, 0x7a, 0x6f, 0x07, //0x00001730 vmovdqu (%r15), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x03, 0xea, 0xff, 0xff, //0x00001735 vpcmpgtb $-5629(%rip), %xmm0, %xmm1 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x0b, 0xea, 0xff, 0xff, //0x0000173d vmovdqu $-5621(%rip), %xmm2 /* LCPI0_11+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00001745 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00001749 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0x0b, 0xea, 0xff, 0xff, //0x0000174d vpcmpeqb $-5621(%rip), %xmm0, %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0x13, 0xea, 0xff, 0xff, //0x00001755 vpcmpeqb $-5613(%rip), %xmm0, %xmm3 /* LCPI0_13+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000175d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0x17, 0xea, 0xff, 0xff, //0x00001761 vpor $-5609(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0x1f, 0xea, 0xff, 0xff, //0x00001769 vpcmpeqb $-5601(%rip), %xmm0, %xmm0 /* LCPI0_15+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x27, 0xea, 0xff, 0xff, //0x00001771 vpcmpeqb $-5593(%rip), %xmm3, %xmm3 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00001779 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000177d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00001781 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00001785 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x00001789 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000178d vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc9, //0x00001791 vpmovmskb %xmm1, %ecx + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00001795 movl $4294967295, %ebx + 0x48, 0x31, 0xd9, //0x0000179a xorq %rbx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000179d bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x000017a1 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000017a4 je LBB0_294 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000017aa movl $-1, %ebx + 0xd3, 0xe3, //0x000017af shll %cl, %ebx + 0xf7, 0xd3, //0x000017b1 notl %ebx + 0x21, 0xdf, //0x000017b3 andl %ebx, %edi + 0x21, 0xde, //0x000017b5 andl %ebx, %esi + 0x21, 0xd3, //0x000017b7 andl %edx, %ebx + 0x89, 0xda, //0x000017b9 movl %ebx, %edx + //0x000017bb LBB0_294 + 0x8d, 0x5f, 0xff, //0x000017bb leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x000017be andl %edi, %ebx + 0x0f, 0x85, 0xfe, 0x05, 0x00, 0x00, //0x000017c0 jne LBB0_352 + 0x8d, 0x5e, 0xff, //0x000017c6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000017c9 andl %esi, %ebx + 0x0f, 0x85, 0xf3, 0x05, 0x00, 0x00, //0x000017cb jne LBB0_352 + 0x8d, 0x5a, 0xff, //0x000017d1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000017d4 andl %edx, %ebx + 0x0f, 0x85, 0xe8, 0x05, 0x00, 0x00, //0x000017d6 jne LBB0_352 + 0x85, 0xff, //0x000017dc testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000017de je LBB0_300 + 0x4c, 0x89, 0xfb, //0x000017e4 movq %r15, %rbx + 0x4c, 0x29, 0xcb, //0x000017e7 subq %r9, %rbx + 0x0f, 0xbc, 0xff, //0x000017ea bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x000017ed addq %rbx, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x000017f0 cmpq $-1, %r12 + 0x0f, 0x85, 0xe2, 0x05, 0x00, 0x00, //0x000017f4 jne LBB0_353 + 0x49, 0x89, 0xfc, //0x000017fa movq %rdi, %r12 + //0x000017fd LBB0_300 + 0x85, 0xf6, //0x000017fd testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000017ff je LBB0_303 + 0x4c, 0x89, 0xff, //0x00001805 movq %r15, %rdi + 0x4c, 0x29, 0xcf, //0x00001808 subq %r9, %rdi + 0x0f, 0xbc, 0xf6, //0x0000180b bsfl %esi, %esi + 0x48, 0x01, 0xfe, //0x0000180e addq %rdi, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00001811 cmpq $-1, %r11 + 0x0f, 0x85, 0x3d, 0x06, 0x00, 0x00, //0x00001815 jne LBB0_358 + 0x49, 0x89, 0xf3, //0x0000181b movq %rsi, %r11 + //0x0000181e LBB0_303 + 0x85, 0xd2, //0x0000181e testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00001820 je LBB0_306 + 0x4c, 0x89, 0xfe, //0x00001826 movq %r15, %rsi + 0x4c, 0x29, 0xce, //0x00001829 subq %r9, %rsi + 0x0f, 0xbc, 0xd2, //0x0000182c bsfl %edx, %edx + 0x48, 0x01, 0xf2, //0x0000182f addq %rsi, %rdx + 0x48, 0x83, 0xf8, 0xff, //0x00001832 cmpq $-1, %rax + 0x0f, 0x85, 0x99, 0x04, 0x00, 0x00, //0x00001836 jne LBB0_351 + 0x48, 0x89, 0xd0, //0x0000183c movq %rdx, %rax + //0x0000183f LBB0_306 + 0x83, 0xf9, 0x10, //0x0000183f cmpl $16, %ecx + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00001842 jne LBB0_325 + 0x49, 0x83, 0xc7, 0x10, //0x00001848 addq $16, %r15 + 0x49, 0x83, 0xc6, 0xf0, //0x0000184c addq $-16, %r14 + 0x49, 0x83, 0xfe, 0x0f, //0x00001850 cmpq $15, %r14 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00001854 ja LBB0_292 + 0x4d, 0x89, 0xd6, //0x0000185a movq %r10, %r14 + 0x4c, 0x8b, 0x7d, 0xc8, //0x0000185d movq $-56(%rbp), %r15 + //0x00001861 LBB0_309 + 0x4d, 0x85, 0xf6, //0x00001861 testq %r14, %r14 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001864 movq $-72(%rbp), %r10 + 0x0f, 0x84, 0xe6, 0x00, 0x00, 0x00, //0x00001868 je LBB0_326 + 0x4b, 0x8d, 0x0c, 0x37, //0x0000186e leaq (%r15,%r14), %rcx + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00001872 jmp LBB0_314 + //0x00001877 LBB0_311 + 0x49, 0x89, 0xd7, //0x00001877 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x0000187a subq %r9, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x0000187d cmpq $-1, %rax + 0x0f, 0x85, 0x15, 0x06, 0x00, 0x00, //0x00001881 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x00001887 decq %r15 + 0x4c, 0x89, 0xf8, //0x0000188a movq %r15, %rax + 0x90, 0x90, 0x90, //0x0000188d .p2align 4, 0x90 + //0x00001890 LBB0_313 + 0x49, 0x89, 0xd7, //0x00001890 movq %rdx, %r15 + 0x49, 0xff, 0xce, //0x00001893 decq %r14 + 0x0f, 0x84, 0xab, 0x05, 0x00, 0x00, //0x00001896 je LBB0_357 + //0x0000189c LBB0_314 + 0x41, 0x0f, 0xbe, 0x37, //0x0000189c movsbl (%r15), %esi + 0x83, 0xc6, 0xd5, //0x000018a0 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x000018a3 cmpl $58, %esi + 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x000018a6 ja LBB0_326 + 0x49, 0x8d, 0x57, 0x01, //0x000018ac leaq $1(%r15), %rdx + 0x48, 0x8d, 0x3d, 0x35, 0x13, 0x00, 0x00, //0x000018b0 leaq $4917(%rip), %rdi /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x34, 0xb7, //0x000018b7 movslq (%rdi,%rsi,4), %rsi + 0x48, 0x01, 0xfe, //0x000018bb addq %rdi, %rsi + 0xff, 0xe6, //0x000018be jmpq *%rsi + //0x000018c0 LBB0_316 + 0x49, 0x89, 0xd7, //0x000018c0 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018c3 subq %r9, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x000018c6 cmpq $-1, %r11 + 0x0f, 0x85, 0xcc, 0x05, 0x00, 0x00, //0x000018ca jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018d0 decq %r15 + 0x4d, 0x89, 0xfb, //0x000018d3 movq %r15, %r11 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x000018d6 jmp LBB0_313 + //0x000018db LBB0_318 + 0x49, 0x89, 0xd7, //0x000018db movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018de subq %r9, %r15 + 0x49, 0x83, 0xfc, 0xff, //0x000018e1 cmpq $-1, %r12 + 0x0f, 0x85, 0xb1, 0x05, 0x00, 0x00, //0x000018e5 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018eb decq %r15 + 0x4d, 0x89, 0xfc, //0x000018ee movq %r15, %r12 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x000018f1 jmp LBB0_313 + //0x000018f6 LBB0_493 + 0x49, 0x01, 0xca, //0x000018f6 addq %rcx, %r10 + 0xc5, 0xf8, 0x77, //0x000018f9 vzeroupper + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000018fc vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0xfe, 0x6f, 0x3d, 0x37, 0xe7, 0xff, 0xff, //0x00001901 vmovdqu $-6345(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x0f, 0xe7, 0xff, 0xff, //0x00001909 vmovdqu $-6385(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0xe7, 0xe6, 0xff, 0xff, //0x00001911 vmovdqu $-6425(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0x4d, 0x89, 0xd7, //0x00001919 movq %r10, %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x0000191c movq $-72(%rbp), %r10 + 0x4d, 0x85, 0xdb, //0x00001920 testq %r11, %r11 + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00001923 jne LBB0_327 + 0xe9, 0x0f, 0x10, 0x00, 0x00, //0x00001929 jmp LBB0_494 + //0x0000192e LBB0_320 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000192e movl $64, %edx + //0x00001933 LBB0_321 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001933 movq $-48(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001937 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x0000193a cmpq %rcx, %rdx + 0x0f, 0x82, 0x38, 0x10, 0x00, 0x00, //0x0000193d jb LBB0_129 + //0x00001943 LBB0_322 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001943 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x00001948 jmp LBB0_323 + //0x0000194d LBB0_325 + 0x49, 0x01, 0xcf, //0x0000194d addq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001950 movq $-72(%rbp), %r10 + //0x00001954 LBB0_326 + 0x4d, 0x85, 0xdb, //0x00001954 testq %r11, %r11 + 0x0f, 0x84, 0xe0, 0x0f, 0x00, 0x00, //0x00001957 je LBB0_494 + //0x0000195d LBB0_327 + 0x48, 0x85, 0xc0, //0x0000195d testq %rax, %rax + 0x0f, 0x84, 0xd7, 0x0f, 0x00, 0x00, //0x00001960 je LBB0_494 + 0x4d, 0x85, 0xe4, //0x00001966 testq %r12, %r12 + 0x0f, 0x84, 0xce, 0x0f, 0x00, 0x00, //0x00001969 je LBB0_494 + 0x4d, 0x29, 0xcf, //0x0000196f subq %r9, %r15 + 0x49, 0x8d, 0x4f, 0xff, //0x00001972 leaq $-1(%r15), %rcx + 0x49, 0x39, 0xcb, //0x00001976 cmpq %rcx, %r11 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00001979 je LBB0_335 + 0x49, 0x39, 0xcc, //0x0000197f cmpq %rcx, %r12 + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x00001982 je LBB0_335 + 0x48, 0x39, 0xc8, //0x00001988 cmpq %rcx, %rax + 0x0f, 0x84, 0x59, 0x00, 0x00, 0x00, //0x0000198b je LBB0_335 + 0x48, 0x85, 0xc0, //0x00001991 testq %rax, %rax + 0xc5, 0x7e, 0x6f, 0x05, 0xc4, 0xe6, 0xff, 0xff, //0x00001994 vmovdqu $-6460(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xdc, 0xe6, 0xff, 0xff, //0x0000199c vmovdqu $-6436(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xf4, 0xe6, 0xff, 0xff, //0x000019a4 vmovdqu $-6412(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x0c, 0xe7, 0xff, 0xff, //0x000019ac vmovdqu $-6388(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x24, 0xe7, 0xff, 0xff, //0x000019b4 vmovdqu $-6364(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x3c, 0xe7, 0xff, 0xff, //0x000019bc vmovdqu $-6340(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x54, 0xe7, 0xff, 0xff, //0x000019c4 vmovdqu $-6316(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x0f, 0x8e, 0x58, 0x00, 0x00, 0x00, //0x000019cc jle LBB0_336 + 0x48, 0x8d, 0x48, 0xff, //0x000019d2 leaq $-1(%rax), %rcx + 0x49, 0x39, 0xcb, //0x000019d6 cmpq %rcx, %r11 + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000019d9 je LBB0_336 + 0x48, 0xf7, 0xd0, //0x000019df notq %rax + 0x49, 0x89, 0xc7, //0x000019e2 movq %rax, %r15 + 0xe9, 0x65, 0x01, 0x00, 0x00, //0x000019e5 jmp LBB0_342 + //0x000019ea LBB0_335 + 0x49, 0xf7, 0xdf, //0x000019ea negq %r15 + 0xc5, 0x7e, 0x6f, 0x05, 0x6b, 0xe6, 0xff, 0xff, //0x000019ed vmovdqu $-6549(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x83, 0xe6, 0xff, 0xff, //0x000019f5 vmovdqu $-6525(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x9b, 0xe6, 0xff, 0xff, //0x000019fd vmovdqu $-6501(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xb3, 0xe6, 0xff, 0xff, //0x00001a05 vmovdqu $-6477(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xcb, 0xe6, 0xff, 0xff, //0x00001a0d vmovdqu $-6453(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xe3, 0xe6, 0xff, 0xff, //0x00001a15 vmovdqu $-6429(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xfb, 0xe6, 0xff, 0xff, //0x00001a1d vmovdqu $-6405(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0xe9, 0x25, 0x01, 0x00, 0x00, //0x00001a25 jmp LBB0_342 + //0x00001a2a LBB0_336 + 0x4c, 0x89, 0xe1, //0x00001a2a movq %r12, %rcx + 0x4c, 0x09, 0xd9, //0x00001a2d orq %r11, %rcx + 0x4d, 0x39, 0xdc, //0x00001a30 cmpq %r11, %r12 + 0x0f, 0x8c, 0x01, 0x01, 0x00, 0x00, //0x00001a33 jl LBB0_341 + 0x48, 0x85, 0xc9, //0x00001a39 testq %rcx, %rcx + 0x0f, 0x88, 0xf8, 0x00, 0x00, 0x00, //0x00001a3c js LBB0_341 + 0x49, 0xf7, 0xd4, //0x00001a42 notq %r12 + 0x4d, 0x89, 0xe7, //0x00001a45 movq %r12, %r15 + 0xe9, 0x02, 0x01, 0x00, 0x00, //0x00001a48 jmp LBB0_342 + //0x00001a4d LBB0_339 + 0x4d, 0x29, 0xfb, //0x00001a4d subq %r15, %r11 + 0x44, 0x0f, 0xbc, 0xf3, //0x00001a50 bsfl %ebx, %r14d + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00001a54 jmp LBB0_346 + //0x00001a59 LBB0_55 + 0x4c, 0x89, 0xf9, //0x00001a59 movq %r15, %rcx + 0x4c, 0x89, 0xcb, //0x00001a5c movq %r9, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001a5f cmpq $32, %rcx + 0x0f, 0x82, 0xfd, 0x04, 0x00, 0x00, //0x00001a63 jb LBB0_370 + //0x00001a69 LBB0_56 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001a69 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001a6d vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001a71 vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001a75 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001a79 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001a7d testl %esi, %esi + 0x0f, 0x85, 0x78, 0x04, 0x00, 0x00, //0x00001a7f jne LBB0_366 + 0x4d, 0x85, 0xf6, //0x00001a85 testq %r14, %r14 + 0x0f, 0x85, 0x86, 0x04, 0x00, 0x00, //0x00001a88 jne LBB0_368 + 0x45, 0x31, 0xf6, //0x00001a8e xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001a91 testq %rdx, %rdx + 0x0f, 0x84, 0xc4, 0x04, 0x00, 0x00, //0x00001a94 je LBB0_369 + //0x00001a9a LBB0_61 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001a9a bsfq %rdx, %rax + 0x4c, 0x29, 0xdb, //0x00001a9e subq %r11, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001aa1 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001aa6 movq $-48(%rbp), %r14 + //0x00001aaa LBB0_184 + 0x4d, 0x85, 0xe4, //0x00001aaa testq %r12, %r12 + 0x0f, 0x88, 0xab, 0x0c, 0x00, 0x00, //0x00001aad js LBB0_474 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00001ab3 movq $-64(%rbp), %r13 + 0x4d, 0x89, 0x65, 0x00, //0x00001ab7 movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x00001abb movq %r8, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001abe cmpq $0, $-88(%rbp) + 0x0f, 0x8f, 0xa7, 0xe7, 0xff, 0xff, //0x00001ac3 jg LBB0_3 + 0xe9, 0xeb, 0x0c, 0x00, 0x00, //0x00001ac9 jmp LBB0_498 + //0x00001ace LBB0_82 + 0x4d, 0x89, 0xf2, //0x00001ace movq %r14, %r10 + 0x49, 0x89, 0xc4, //0x00001ad1 movq %rax, %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001ad4 movq $-48(%rbp), %r14 + 0x49, 0x83, 0xfa, 0x20, //0x00001ad8 cmpq $32, %r10 + 0x0f, 0x82, 0xbc, 0x05, 0x00, 0x00, //0x00001adc jb LBB0_388 + //0x00001ae2 LBB0_83 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001ae2 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001ae8 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001aec vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001af0 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001af4 vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001af8 vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001afc vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001b01 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001b05 vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001b09 testl %ecx, %ecx + 0x0f, 0x85, 0xe4, 0x04, 0x00, 0x00, //0x00001b0b jne LBB0_379 + 0x4d, 0x85, 0xff, //0x00001b11 testq %r15, %r15 + 0x0f, 0x85, 0xf3, 0x04, 0x00, 0x00, //0x00001b14 jne LBB0_381 + 0x45, 0x31, 0xff, //0x00001b1a xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001b1d testq %rsi, %rsi + 0x0f, 0x84, 0x2e, 0x05, 0x00, 0x00, //0x00001b20 je LBB0_382 + //0x00001b26 LBB0_86 + 0x48, 0x0f, 0xbc, 0xce, //0x00001b26 bsfq %rsi, %rcx + 0xe9, 0x2a, 0x05, 0x00, 0x00, //0x00001b2a jmp LBB0_383 + //0x00001b2f LBB0_340 + 0x48, 0xf7, 0xd2, //0x00001b2f notq %rdx + 0x49, 0x89, 0xd6, //0x00001b32 movq %rdx, %r14 + 0xe9, 0x76, 0xf5, 0xff, 0xff, //0x00001b35 jmp LBB0_197 + //0x00001b3a LBB0_341 + 0x48, 0x85, 0xc9, //0x00001b3a testq %rcx, %rcx + 0x49, 0x8d, 0x43, 0xff, //0x00001b3d leaq $-1(%r11), %rax + 0x49, 0xf7, 0xd3, //0x00001b41 notq %r11 + 0x4d, 0x0f, 0x48, 0xdf, //0x00001b44 cmovsq %r15, %r11 + 0x49, 0x39, 0xc4, //0x00001b48 cmpq %rax, %r12 + 0x4d, 0x0f, 0x44, 0xfb, //0x00001b4b cmoveq %r11, %r15 + //0x00001b4f LBB0_342 + 0x4d, 0x8b, 0x65, 0x00, //0x00001b4f movq (%r13), %r12 + 0x4d, 0x85, 0xff, //0x00001b53 testq %r15, %r15 + 0x0f, 0x88, 0xec, 0x0d, 0x00, 0x00, //0x00001b56 js LBB0_496 + //0x00001b5c LBB0_343 + 0x4d, 0x01, 0xfc, //0x00001b5c addq %r15, %r12 + 0x4d, 0x89, 0x65, 0x00, //0x00001b5f movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x00001b63 movq %r8, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001b66 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x75, 0xd0, //0x00001b6b movq $-48(%rbp), %r14 + 0x0f, 0x8f, 0xfb, 0xe6, 0xff, 0xff, //0x00001b6f jg LBB0_3 + 0xe9, 0x3f, 0x0c, 0x00, 0x00, //0x00001b75 jmp LBB0_498 + //0x00001b7a LBB0_344 + 0x4d, 0x29, 0xfe, //0x00001b7a subq %r15, %r14 + 0x0f, 0xbc, 0xc3, //0x00001b7d bsfl %ebx, %eax + 0x4c, 0x01, 0xf0, //0x00001b80 addq %r14, %rax + 0xe9, 0xc5, 0xf4, 0xff, 0xff, //0x00001b83 jmp LBB0_195 + //0x00001b88 LBB0_345 + 0x4d, 0x29, 0xfb, //0x00001b88 subq %r15, %r11 + 0x45, 0x0f, 0xbc, 0xf1, //0x00001b8b bsfl %r9d, %r14d + //0x00001b8f LBB0_346 + 0x4d, 0x01, 0xde, //0x00001b8f addq %r11, %r14 + 0x49, 0xf7, 0xd6, //0x00001b92 notq %r14 + 0xe9, 0x16, 0xf5, 0xff, 0xff, //0x00001b95 jmp LBB0_197 + //0x00001b9a LBB0_347 + 0x48, 0xf7, 0xd7, //0x00001b9a notq %rdi + 0x49, 0x89, 0xfe, //0x00001b9d movq %rdi, %r14 + 0xe9, 0x0b, 0xf5, 0xff, 0xff, //0x00001ba0 jmp LBB0_197 + //0x00001ba5 LBB0_101 + 0x4c, 0x89, 0xf9, //0x00001ba5 movq %r15, %rcx + 0x4c, 0x89, 0xd3, //0x00001ba8 movq %r10, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001bab cmpq $32, %rcx + 0x0f, 0x82, 0x00, 0x06, 0x00, 0x00, //0x00001baf jb LBB0_402 + //0x00001bb5 LBB0_102 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001bb5 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001bb9 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001bbd vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001bc1 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001bc5 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001bc9 testl %esi, %esi + 0x0f, 0x85, 0x6d, 0x05, 0x00, 0x00, //0x00001bcb jne LBB0_397 + 0x4d, 0x85, 0xf6, //0x00001bd1 testq %r14, %r14 + 0x0f, 0x85, 0x83, 0x05, 0x00, 0x00, //0x00001bd4 jne LBB0_399 + 0x45, 0x31, 0xf6, //0x00001bda xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001bdd testq %rdx, %rdx + 0x0f, 0x84, 0xc7, 0x05, 0x00, 0x00, //0x00001be0 je LBB0_401 + //0x00001be6 LBB0_107 + 0x4d, 0x89, 0xe2, //0x00001be6 movq %r12, %r10 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001be9 bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001bed subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001bf0 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001bf5 movq $-48(%rbp), %r14 + //0x00001bf9 LBB0_205 + 0x4d, 0x85, 0xe4, //0x00001bf9 testq %r12, %r12 + 0x0f, 0x88, 0x82, 0x0b, 0x00, 0x00, //0x00001bfc js LBB0_477 + 0x4d, 0x89, 0x65, 0x00, //0x00001c02 movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x00001c06 movq %r8, %rcx + 0x4d, 0x85, 0xd2, //0x00001c09 testq %r10, %r10 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001c0c movq $-72(%rbp), %r10 + 0x0f, 0x8e, 0xa3, 0x0b, 0x00, 0x00, //0x00001c10 jle LBB0_498 + 0x49, 0x8b, 0x02, //0x00001c16 movq (%r10), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001c19 cmpq $4095, %rax + 0x0f, 0x8f, 0x2d, 0x0b, 0x00, 0x00, //0x00001c1f jg LBB0_486 + 0x48, 0x8d, 0x48, 0x01, //0x00001c25 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0a, //0x00001c29 movq %rcx, (%r10) + 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001c2c movq $4, $8(%r10,%rax,8) + 0xe9, 0x36, 0xe6, 0xff, 0xff, //0x00001c35 jmp LBB0_3 + //0x00001c3a LBB0_120 + 0x4c, 0x89, 0xf3, //0x00001c3a movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001c3d movq $-96(%rbp), %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001c41 movq $-48(%rbp), %r14 + 0x48, 0x83, 0xfb, 0x20, //0x00001c45 cmpq $32, %rbx + 0x0f, 0x82, 0x9c, 0x06, 0x00, 0x00, //0x00001c49 jb LBB0_420 + //0x00001c4f LBB0_121 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001c4f vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001c55 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001c59 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001c5d vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001c61 vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001c65 vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001c69 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c6e vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001c72 vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001c76 testl %ecx, %ecx + 0x0f, 0x85, 0xc9, 0x05, 0x00, 0x00, //0x00001c78 jne LBB0_411 + 0x4d, 0x85, 0xff, //0x00001c7e testq %r15, %r15 + 0x0f, 0x85, 0xd8, 0x05, 0x00, 0x00, //0x00001c81 jne LBB0_413 + 0x45, 0x31, 0xff, //0x00001c87 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001c8a testq %rsi, %rsi + 0x0f, 0x84, 0x17, 0x06, 0x00, 0x00, //0x00001c8d je LBB0_414 + //0x00001c93 LBB0_124 + 0x48, 0x0f, 0xbc, 0xce, //0x00001c93 bsfq %rsi, %rcx + 0xe9, 0x13, 0x06, 0x00, 0x00, //0x00001c97 jmp LBB0_415 + //0x00001c9c LBB0_348 + 0x49, 0x89, 0xce, //0x00001c9c movq %rcx, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001c9f movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00001ca6 testq %r12, %r12 + 0x0f, 0x85, 0xff, 0xf2, 0xff, 0xff, //0x00001ca9 jne LBB0_188 + 0xe9, 0xed, 0x0a, 0x00, 0x00, //0x00001caf jmp LBB0_480 + //0x00001cb4 LBB0_349 + 0x4d, 0x29, 0xca, //0x00001cb4 subq %r9, %r10 + 0x44, 0x0f, 0xbc, 0xfb, //0x00001cb7 bsfl %ebx, %r15d + 0x4d, 0x01, 0xd7, //0x00001cbb addq %r10, %r15 + 0x49, 0xf7, 0xd7, //0x00001cbe notq %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001cc1 movq $-72(%rbp), %r10 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00001cc5 jmp LBB0_342 + //0x00001cca LBB0_350 + 0x48, 0xf7, 0xd6, //0x00001cca notq %rsi + 0x49, 0x89, 0xf6, //0x00001ccd movq %rsi, %r14 + 0xe9, 0xdb, 0xf3, 0xff, 0xff, //0x00001cd0 jmp LBB0_197 + //0x00001cd5 LBB0_351 + 0x48, 0xf7, 0xd2, //0x00001cd5 notq %rdx + 0x49, 0x89, 0xd7, //0x00001cd8 movq %rdx, %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001cdb movq $-72(%rbp), %r10 + 0xe9, 0x6b, 0xfe, 0xff, 0xff, //0x00001cdf jmp LBB0_342 + //0x00001ce4 LBB0_218 + 0x4c, 0x89, 0xf9, //0x00001ce4 movq %r15, %rcx + 0x4c, 0x89, 0xd3, //0x00001ce7 movq %r10, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001cea cmpq $32, %rcx + 0x0f, 0x82, 0xfe, 0x07, 0x00, 0x00, //0x00001cee jb LBB0_442 + //0x00001cf4 LBB0_219 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001cf4 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001cf8 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001cfc vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001d00 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001d04 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001d08 testl %esi, %esi + 0x0f, 0x85, 0x6b, 0x07, 0x00, 0x00, //0x00001d0a jne LBB0_437 + 0x4d, 0x85, 0xf6, //0x00001d10 testq %r14, %r14 + 0x0f, 0x85, 0x81, 0x07, 0x00, 0x00, //0x00001d13 jne LBB0_439 + 0x45, 0x31, 0xf6, //0x00001d19 xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001d1c testq %rdx, %rdx + 0x0f, 0x84, 0xc5, 0x07, 0x00, 0x00, //0x00001d1f je LBB0_441 + //0x00001d25 LBB0_224 + 0x4d, 0x89, 0xe2, //0x00001d25 movq %r12, %r10 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001d28 bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001d2c subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001d2f leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001d34 movq $-48(%rbp), %r14 + //0x00001d38 LBB0_323 + 0x4d, 0x85, 0xe4, //0x00001d38 testq %r12, %r12 + 0x0f, 0x88, 0x43, 0x0a, 0x00, 0x00, //0x00001d3b js LBB0_477 + 0x4d, 0x89, 0x65, 0x00, //0x00001d41 movq %r12, (%r13) + 0x4c, 0x89, 0xc1, //0x00001d45 movq %r8, %rcx + 0x4d, 0x85, 0xd2, //0x00001d48 testq %r10, %r10 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001d4b movq $-72(%rbp), %r10 + 0x0f, 0x8f, 0x1b, 0xe5, 0xff, 0xff, //0x00001d4f jg LBB0_3 + 0xe9, 0x5f, 0x0a, 0x00, 0x00, //0x00001d55 jmp LBB0_498 + //0x00001d5a LBB0_359 + 0x49, 0xf7, 0xde, //0x00001d5a negq %r14 + 0xe9, 0x4e, 0xf3, 0xff, 0xff, //0x00001d5d jmp LBB0_197 + //0x00001d62 LBB0_259 + 0x4c, 0x89, 0xf3, //0x00001d62 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001d65 movq $-96(%rbp), %r12 + 0x48, 0x83, 0xfb, 0x20, //0x00001d69 cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xd0, //0x00001d6d movq $-48(%rbp), %r14 + 0x0f, 0x82, 0xb1, 0x08, 0x00, 0x00, //0x00001d71 jb LBB0_459 + //0x00001d77 LBB0_260 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001d77 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001d7d vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001d81 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001d85 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001d89 vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001d8d vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001d91 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001d96 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001d9a vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001d9e testl %ecx, %ecx + 0x0f, 0x85, 0xde, 0x07, 0x00, 0x00, //0x00001da0 jne LBB0_451 + 0x4d, 0x85, 0xff, //0x00001da6 testq %r15, %r15 + 0x0f, 0x85, 0xed, 0x07, 0x00, 0x00, //0x00001da9 jne LBB0_453 + 0x45, 0x31, 0xff, //0x00001daf xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001db2 testq %rsi, %rsi + 0x0f, 0x84, 0x2c, 0x08, 0x00, 0x00, //0x00001db5 je LBB0_454 + //0x00001dbb LBB0_263 + 0x48, 0x0f, 0xbc, 0xce, //0x00001dbb bsfq %rsi, %rcx + 0xe9, 0x28, 0x08, 0x00, 0x00, //0x00001dbf jmp LBB0_455 + //0x00001dc4 LBB0_352 + 0x4d, 0x29, 0xcf, //0x00001dc4 subq %r9, %r15 + 0x0f, 0xbc, 0xc3, //0x00001dc7 bsfl %ebx, %eax + 0x4c, 0x01, 0xf8, //0x00001dca addq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00001dcd notq %rax + 0x49, 0x89, 0xc7, //0x00001dd0 movq %rax, %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001dd3 movq $-72(%rbp), %r10 + 0xe9, 0x73, 0xfd, 0xff, 0xff, //0x00001dd7 jmp LBB0_342 + //0x00001ddc LBB0_353 + 0x48, 0xf7, 0xd7, //0x00001ddc notq %rdi + 0x49, 0x89, 0xff, //0x00001ddf movq %rdi, %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001de2 movq $-72(%rbp), %r10 + 0xe9, 0x64, 0xfd, 0xff, 0xff, //0x00001de6 jmp LBB0_342 + //0x00001deb LBB0_354 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001deb movq $-1, %rax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001df2 movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001df9 movq $-1, %r13 + 0x4d, 0x89, 0xfe, //0x00001e00 movq %r15, %r14 + 0x49, 0x83, 0xfa, 0x10, //0x00001e03 cmpq $16, %r10 + 0x0f, 0x83, 0xa1, 0xea, 0xff, 0xff, //0x00001e07 jae LBB0_151 + 0xe9, 0xee, 0xeb, 0xff, 0xff, //0x00001e0d jmp LBB0_169 + //0x00001e12 LBB0_355 + 0x4d, 0x89, 0xcb, //0x00001e12 movq %r9, %r11 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001e15 movq $-1, %r13 + 0x45, 0x31, 0xf6, //0x00001e1c xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001e1f cmpq $32, %rcx + 0x0f, 0x83, 0x40, 0xfc, 0xff, 0xff, //0x00001e23 jae LBB0_56 + 0xe9, 0x38, 0x01, 0x00, 0x00, //0x00001e29 jmp LBB0_370 + //0x00001e2e LBB0_356 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001e2e movq $-1, %r13 + 0x45, 0x31, 0xff, //0x00001e35 xorl %r15d, %r15d + 0x49, 0x83, 0xfa, 0x20, //0x00001e38 cmpq $32, %r10 + 0x0f, 0x83, 0xa0, 0xfc, 0xff, 0xff, //0x00001e3c jae LBB0_83 + 0xe9, 0x57, 0x02, 0x00, 0x00, //0x00001e42 jmp LBB0_388 + //0x00001e47 LBB0_357 + 0x49, 0x89, 0xcf, //0x00001e47 movq %rcx, %r15 + 0x4d, 0x85, 0xdb, //0x00001e4a testq %r11, %r11 + 0x0f, 0x85, 0x0a, 0xfb, 0xff, 0xff, //0x00001e4d jne LBB0_327 + 0xe9, 0xe5, 0x0a, 0x00, 0x00, //0x00001e53 jmp LBB0_494 + //0x00001e58 LBB0_358 + 0x48, 0xf7, 0xd6, //0x00001e58 notq %rsi + 0x49, 0x89, 0xf7, //0x00001e5b movq %rsi, %r15 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001e5e movq $-72(%rbp), %r10 + 0xe9, 0xe8, 0xfc, 0xff, 0xff, //0x00001e62 jmp LBB0_342 + //0x00001e67 LBB0_360 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e67 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001e6e xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001e71 cmpq $32, %rcx + 0x0f, 0x83, 0x3a, 0xfd, 0xff, 0xff, //0x00001e75 jae LBB0_102 + 0xe9, 0x35, 0x03, 0x00, 0x00, //0x00001e7b jmp LBB0_402 + //0x00001e80 LBB0_361 + 0x49, 0x89, 0xc2, //0x00001e80 movq %rax, %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e83 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001e8a xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001e8d cmpq $32, %rbx + 0x0f, 0x83, 0xb8, 0xfd, 0xff, 0xff, //0x00001e91 jae LBB0_121 + 0xe9, 0x4f, 0x04, 0x00, 0x00, //0x00001e97 jmp LBB0_420 + //0x00001e9c LBB0_365 + 0x49, 0xf7, 0xdf, //0x00001e9c negq %r15 + 0xe9, 0xab, 0xfc, 0xff, 0xff, //0x00001e9f jmp LBB0_342 + //0x00001ea4 LBB0_362 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001ea4 movq $-1, %rax + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001eab movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001eb2 movq $-1, %r12 + 0x4d, 0x89, 0xcf, //0x00001eb9 movq %r9, %r15 + 0xe9, 0xec, 0xf7, 0xff, 0xff, //0x00001ebc jmp LBB0_290 + //0x00001ec1 LBB0_363 + 0x49, 0x89, 0xd1, //0x00001ec1 movq %rdx, %r9 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ec4 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001ecb xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001ece cmpq $32, %rcx + 0x0f, 0x83, 0x1c, 0xfe, 0xff, 0xff, //0x00001ed2 jae LBB0_219 + 0xe9, 0x15, 0x06, 0x00, 0x00, //0x00001ed8 jmp LBB0_442 + //0x00001edd LBB0_364 + 0x49, 0x89, 0xc2, //0x00001edd movq %rax, %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ee0 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001ee7 xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001eea cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xd0, //0x00001eee movq $-48(%rbp), %r14 + 0x0f, 0x83, 0x7f, 0xfe, 0xff, 0xff, //0x00001ef2 jae LBB0_260 + 0xe9, 0x2b, 0x07, 0x00, 0x00, //0x00001ef8 jmp LBB0_459 + //0x00001efd LBB0_366 + 0x49, 0x83, 0xfd, 0xff, //0x00001efd cmpq $-1, %r13 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00001f01 jne LBB0_368 + 0x48, 0x89, 0xd8, //0x00001f07 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x00001f0a subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xee, //0x00001f0d bsfq %rsi, %r13 + 0x49, 0x01, 0xc5, //0x00001f11 addq %rax, %r13 + //0x00001f14 LBB0_368 + 0x44, 0x89, 0xf0, //0x00001f14 movl %r14d, %eax + 0xf7, 0xd0, //0x00001f17 notl %eax + 0x21, 0xf0, //0x00001f19 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00001f1b leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x00001f1f orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x00001f22 movl %r9d, %edi + 0xf7, 0xd7, //0x00001f25 notl %edi + 0x21, 0xf7, //0x00001f27 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f29 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x00001f2f xorl %r14d, %r14d + 0x01, 0xc7, //0x00001f32 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x00001f34 setb %r14b + 0x01, 0xff, //0x00001f38 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00001f3a xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x00001f40 andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001f43 movl $4294967295, %eax + 0x31, 0xf8, //0x00001f48 xorl %edi, %eax + 0x21, 0xc2, //0x00001f4a andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xb8, //0x00001f4c movq $-72(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001f50 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xd2, //0x00001f55 testq %rdx, %rdx + 0x0f, 0x85, 0x3c, 0xfb, 0xff, 0xff, //0x00001f58 jne LBB0_61 + //0x00001f5e LBB0_369 + 0x48, 0x83, 0xc3, 0x20, //0x00001f5e addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00001f62 addq $-32, %rcx + //0x00001f66 LBB0_370 + 0x4d, 0x85, 0xf6, //0x00001f66 testq %r14, %r14 + 0x0f, 0x85, 0x1c, 0x04, 0x00, 0x00, //0x00001f69 jne LBB0_429 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001f6f movq $-48(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00001f73 testq %rcx, %rcx + 0x0f, 0x84, 0xec, 0x07, 0x00, 0x00, //0x00001f76 je LBB0_475 + //0x00001f7c LBB0_372 + 0x4c, 0x89, 0xdf, //0x00001f7c movq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00001f7f notq %rdi + //0x00001f82 LBB0_373 + 0x4c, 0x8d, 0x63, 0x01, //0x00001f82 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00001f86 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00001f89 cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00001f8c je LBB0_378 + 0x48, 0x8d, 0x71, 0xff, //0x00001f92 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00001f96 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001f99 je LBB0_376 + 0x48, 0x89, 0xf1, //0x00001f9f movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00001fa2 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00001fa5 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00001fa8 jne LBB0_373 + 0xe9, 0xb5, 0x07, 0x00, 0x00, //0x00001fae jmp LBB0_475 + //0x00001fb3 LBB0_376 + 0x48, 0x85, 0xf6, //0x00001fb3 testq %rsi, %rsi + 0x0f, 0x84, 0xac, 0x07, 0x00, 0x00, //0x00001fb6 je LBB0_475 + 0x49, 0x01, 0xfc, //0x00001fbc addq %rdi, %r12 + 0x49, 0x83, 0xfd, 0xff, //0x00001fbf cmpq $-1, %r13 + 0x4d, 0x0f, 0x44, 0xec, //0x00001fc3 cmoveq %r12, %r13 + 0x48, 0x83, 0xc3, 0x02, //0x00001fc7 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00001fcb addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00001fcf movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00001fd2 movq $-72(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001fd6 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001fda vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00001fdf testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00001fe2 jne LBB0_373 + 0xe9, 0x7b, 0x07, 0x00, 0x00, //0x00001fe8 jmp LBB0_475 + //0x00001fed LBB0_378 + 0x4d, 0x29, 0xdc, //0x00001fed subq %r11, %r12 + 0xe9, 0xb5, 0xfa, 0xff, 0xff, //0x00001ff0 jmp LBB0_184 + //0x00001ff5 LBB0_379 + 0x49, 0x83, 0xfd, 0xff, //0x00001ff5 cmpq $-1, %r13 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001ff9 jne LBB0_381 + 0x4c, 0x89, 0xe2, //0x00001fff movq %r12, %rdx + 0x48, 0x2b, 0x55, 0xc8, //0x00002002 subq $-56(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xe9, //0x00002006 bsfq %rcx, %r13 + 0x49, 0x01, 0xd5, //0x0000200a addq %rdx, %r13 + //0x0000200d LBB0_381 + 0x44, 0x89, 0xfa, //0x0000200d movl %r15d, %edx + 0xf7, 0xd2, //0x00002010 notl %edx + 0x21, 0xca, //0x00002012 andl %ecx, %edx + 0x8d, 0x1c, 0x12, //0x00002014 leal (%rdx,%rdx), %ebx + 0x44, 0x09, 0xfb, //0x00002017 orl %r15d, %ebx + 0x89, 0xdf, //0x0000201a movl %ebx, %edi + 0xf7, 0xd7, //0x0000201c notl %edi + 0x21, 0xcf, //0x0000201e andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002020 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00002026 xorl %r15d, %r15d + 0x01, 0xd7, //0x00002029 addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000202b setb %r15b + 0x01, 0xff, //0x0000202f addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002031 xorl $1431655765, %edi + 0x21, 0xdf, //0x00002037 andl %ebx, %edi + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00002039 movl $4294967295, %ecx + 0x31, 0xf9, //0x0000203e xorl %edi, %ecx + 0x21, 0xce, //0x00002040 andl %ecx, %esi + 0x4c, 0x8b, 0x75, 0xd0, //0x00002042 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002046 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000204b testq %rsi, %rsi + 0x0f, 0x85, 0xd2, 0xfa, 0xff, 0xff, //0x0000204e jne LBB0_86 + //0x00002054 LBB0_382 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002054 movl $64, %ecx + //0x00002059 LBB0_383 + 0x49, 0x0f, 0xbc, 0xd1, //0x00002059 bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x0000205d testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002060 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002065 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x00002069 testq %rsi, %rsi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000206c je LBB0_386 + 0x4c, 0x2b, 0x65, 0xc8, //0x00002072 subq $-56(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x00002076 cmpq %rcx, %rdi + 0x0f, 0x82, 0x0e, 0x09, 0x00, 0x00, //0x00002079 jb LBB0_508 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x0000207f leaq $1(%r12,%rcx), %r12 + 0x4c, 0x8b, 0x55, 0xb8, //0x00002084 movq $-72(%rbp), %r10 + 0xe9, 0x1d, 0xfa, 0xff, 0xff, //0x00002088 jmp LBB0_184 + //0x0000208d LBB0_386 + 0x45, 0x85, 0xc9, //0x0000208d testl %r9d, %r9d + 0x0f, 0x85, 0x09, 0x09, 0x00, 0x00, //0x00002090 jne LBB0_509 + 0x49, 0x83, 0xc4, 0x20, //0x00002096 addq $32, %r12 + 0x49, 0x83, 0xc2, 0xe0, //0x0000209a addq $-32, %r10 + //0x0000209e LBB0_388 + 0x4d, 0x85, 0xff, //0x0000209e testq %r15, %r15 + 0x0f, 0x85, 0x1f, 0x03, 0x00, 0x00, //0x000020a1 jne LBB0_431 + 0x48, 0x8b, 0x45, 0xc8, //0x000020a7 movq $-56(%rbp), %rax + 0x4d, 0x85, 0xd2, //0x000020ab testq %r10, %r10 + 0x0f, 0x84, 0xb4, 0x06, 0x00, 0x00, //0x000020ae je LBB0_475 + //0x000020b4 LBB0_390 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x000020b4 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x000020b9 cmpb $34, %cl + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x000020bc je LBB0_396 + 0x80, 0xf9, 0x5c, //0x000020c2 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000020c5 je LBB0_394 + 0x80, 0xf9, 0x1f, //0x000020cb cmpb $31, %cl + 0x0f, 0x86, 0xe9, 0x08, 0x00, 0x00, //0x000020ce jbe LBB0_510 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000020d4 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000020db movl $1, %edx + 0x49, 0x01, 0xd4, //0x000020e0 addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x000020e3 addq %rcx, %r10 + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000020e6 jne LBB0_390 + 0xe9, 0x77, 0x06, 0x00, 0x00, //0x000020ec jmp LBB0_475 + //0x000020f1 LBB0_394 + 0x49, 0x83, 0xfa, 0x01, //0x000020f1 cmpq $1, %r10 + 0x0f, 0x84, 0x6d, 0x06, 0x00, 0x00, //0x000020f5 je LBB0_475 + 0x4c, 0x89, 0xe1, //0x000020fb movq %r12, %rcx + 0x48, 0x29, 0xc1, //0x000020fe subq %rax, %rcx + 0x49, 0x83, 0xfd, 0xff, //0x00002101 cmpq $-1, %r13 + 0x4c, 0x0f, 0x44, 0xe9, //0x00002105 cmoveq %rcx, %r13 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002109 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00002110 movl $2, %edx + 0x4c, 0x8b, 0x75, 0xd0, //0x00002115 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002119 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x0000211e addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002121 addq %rcx, %r10 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00002124 jne LBB0_390 + 0xe9, 0x39, 0x06, 0x00, 0x00, //0x0000212a jmp LBB0_475 + //0x0000212f LBB0_396 + 0x49, 0x29, 0xc4, //0x0000212f subq %rax, %r12 + 0x49, 0xff, 0xc4, //0x00002132 incq %r12 + 0x4c, 0x8b, 0x55, 0xb8, //0x00002135 movq $-72(%rbp), %r10 + 0xe9, 0x6c, 0xf9, 0xff, 0xff, //0x00002139 jmp LBB0_184 + //0x0000213e LBB0_397 + 0x4d, 0x89, 0xca, //0x0000213e movq %r9, %r10 + 0x49, 0x83, 0xfb, 0xff, //0x00002141 cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00002145 jne LBB0_400 + 0x48, 0x89, 0xd8, //0x0000214b movq %rbx, %rax + 0x4c, 0x29, 0xd0, //0x0000214e subq %r10, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00002151 bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00002155 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002158 jmp LBB0_400 + //0x0000215d LBB0_399 + 0x4d, 0x89, 0xca, //0x0000215d movq %r9, %r10 + //0x00002160 LBB0_400 + 0x44, 0x89, 0xf0, //0x00002160 movl %r14d, %eax + 0xf7, 0xd0, //0x00002163 notl %eax + 0x21, 0xf0, //0x00002165 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00002167 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x0000216b orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x0000216e movl %r9d, %edi + 0xf7, 0xd7, //0x00002171 notl %edi + 0x21, 0xf7, //0x00002173 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002175 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x0000217b xorl %r14d, %r14d + 0x01, 0xc7, //0x0000217e addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x00002180 setb %r14b + 0x01, 0xff, //0x00002184 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002186 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x0000218c andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000218f movl $4294967295, %eax + 0x31, 0xf8, //0x00002194 xorl %edi, %eax + 0x21, 0xc2, //0x00002196 andl %eax, %edx + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002198 movq $-64(%rbp), %r13 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000219c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xd1, //0x000021a1 movq %r10, %r9 + 0x48, 0x85, 0xd2, //0x000021a4 testq %rdx, %rdx + 0x0f, 0x85, 0x39, 0xfa, 0xff, 0xff, //0x000021a7 jne LBB0_107 + //0x000021ad LBB0_401 + 0x48, 0x83, 0xc3, 0x20, //0x000021ad addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x000021b1 addq $-32, %rcx + //0x000021b5 LBB0_402 + 0x4d, 0x85, 0xf6, //0x000021b5 testq %r14, %r14 + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x000021b8 jne LBB0_433 + 0x4c, 0x8b, 0x75, 0xd0, //0x000021be movq $-48(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x000021c2 testq %rcx, %rcx + 0x0f, 0x84, 0xc3, 0x05, 0x00, 0x00, //0x000021c5 je LBB0_478 + //0x000021cb LBB0_404 + 0x4d, 0x89, 0xe2, //0x000021cb movq %r12, %r10 + 0x4c, 0x89, 0xcf, //0x000021ce movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x000021d1 notq %rdi + //0x000021d4 LBB0_405 + 0x4c, 0x8d, 0x63, 0x01, //0x000021d4 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x000021d8 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x000021db cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x000021de je LBB0_410 + 0x48, 0x8d, 0x71, 0xff, //0x000021e4 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x000021e8 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000021eb je LBB0_408 + 0x48, 0x89, 0xf1, //0x000021f1 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x000021f4 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x000021f7 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x000021fa jne LBB0_405 + 0xe9, 0x89, 0x05, 0x00, 0x00, //0x00002200 jmp LBB0_478 + //0x00002205 LBB0_408 + 0x48, 0x85, 0xf6, //0x00002205 testq %rsi, %rsi + 0x0f, 0x84, 0xcb, 0x07, 0x00, 0x00, //0x00002208 je LBB0_513 + 0x49, 0x01, 0xfc, //0x0000220e addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x00002211 cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002215 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x00002219 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000221d addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00002221 movq %rcx, %rsi + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002224 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002228 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000222c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002231 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002234 jne LBB0_405 + 0xe9, 0x4f, 0x05, 0x00, 0x00, //0x0000223a jmp LBB0_478 + //0x0000223f LBB0_410 + 0x4d, 0x29, 0xcc, //0x0000223f subq %r9, %r12 + 0xe9, 0xb2, 0xf9, 0xff, 0xff, //0x00002242 jmp LBB0_205 + //0x00002247 LBB0_411 + 0x49, 0x83, 0xfb, 0xff, //0x00002247 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000224b jne LBB0_413 + 0x4c, 0x89, 0xe0, //0x00002251 movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x00002254 subq $-56(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002258 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x0000225c addq %rax, %r11 + //0x0000225f LBB0_413 + 0x44, 0x89, 0xf8, //0x0000225f movl %r15d, %eax + 0xf7, 0xd0, //0x00002262 notl %eax + 0x21, 0xc8, //0x00002264 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00002266 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x00002269 orl %r15d, %edx + 0x89, 0xd7, //0x0000226c movl %edx, %edi + 0xf7, 0xd7, //0x0000226e notl %edi + 0x21, 0xcf, //0x00002270 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002272 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00002278 xorl %r15d, %r15d + 0x01, 0xc7, //0x0000227b addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000227d setb %r15b + 0x01, 0xff, //0x00002281 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002283 xorl $1431655765, %edi + 0x21, 0xd7, //0x00002289 andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000228b movl $4294967295, %eax + 0x31, 0xf8, //0x00002290 xorl %edi, %eax + 0x21, 0xc6, //0x00002292 andl %eax, %esi + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002294 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002298 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000229c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x000022a1 testq %rsi, %rsi + 0x0f, 0x85, 0xe9, 0xf9, 0xff, 0xff, //0x000022a4 jne LBB0_124 + //0x000022aa LBB0_414 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000022aa movl $64, %ecx + //0x000022af LBB0_415 + 0x49, 0x0f, 0xbc, 0xd1, //0x000022af bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x000022b3 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x000022b6 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x000022bb cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x000022bf testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000022c2 je LBB0_418 + 0x4c, 0x2b, 0x65, 0xc8, //0x000022c8 subq $-56(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x000022cc cmpq %rcx, %rdi + 0x0f, 0x83, 0x2d, 0xee, 0xff, 0xff, //0x000022cf jae LBB0_204 + 0xe9, 0xd1, 0x06, 0x00, 0x00, //0x000022d5 jmp LBB0_417 + //0x000022da LBB0_418 + 0x45, 0x85, 0xc9, //0x000022da testl %r9d, %r9d + 0x0f, 0x85, 0xe2, 0x06, 0x00, 0x00, //0x000022dd jne LBB0_511 + 0x49, 0x83, 0xc4, 0x20, //0x000022e3 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x000022e7 addq $-32, %rbx + //0x000022eb LBB0_420 + 0x4d, 0x85, 0xff, //0x000022eb testq %r15, %r15 + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x000022ee jne LBB0_435 + 0x48, 0x8b, 0x75, 0xc8, //0x000022f4 movq $-56(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x000022f8 testq %rbx, %rbx + 0x0f, 0x84, 0x8d, 0x04, 0x00, 0x00, //0x000022fb je LBB0_478 + //0x00002301 LBB0_422 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002301 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002306 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00002309 je LBB0_428 + 0x80, 0xf9, 0x5c, //0x0000230f cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002312 je LBB0_426 + 0x80, 0xf9, 0x1f, //0x00002318 cmpb $31, %cl + 0x0f, 0x86, 0xb0, 0x06, 0x00, 0x00, //0x0000231b jbe LBB0_512 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002321 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002328 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000232d addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x00002330 addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002333 jne LBB0_422 + 0xe9, 0x50, 0x04, 0x00, 0x00, //0x00002339 jmp LBB0_478 + //0x0000233e LBB0_426 + 0x48, 0x83, 0xfb, 0x01, //0x0000233e cmpq $1, %rbx + 0x0f, 0x84, 0x91, 0x06, 0x00, 0x00, //0x00002342 je LBB0_513 + 0x4c, 0x89, 0xe0, //0x00002348 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x0000234b subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000234e cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002352 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002356 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000235d movl $2, %edx + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002362 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002366 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000236a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x0000236f addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x00002372 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00002375 jne LBB0_422 + 0xe9, 0x0e, 0x04, 0x00, 0x00, //0x0000237b jmp LBB0_478 + //0x00002380 LBB0_428 + 0x49, 0x29, 0xf4, //0x00002380 subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x00002383 incq %r12 + 0xe9, 0x6e, 0xf8, 0xff, 0xff, //0x00002386 jmp LBB0_205 + //0x0000238b LBB0_429 + 0x48, 0x85, 0xc9, //0x0000238b testq %rcx, %rcx + 0x0f, 0x84, 0xd4, 0x03, 0x00, 0x00, //0x0000238e je LBB0_475 + 0x4c, 0x89, 0xd8, //0x00002394 movq %r11, %rax + 0x48, 0xf7, 0xd0, //0x00002397 notq %rax + 0x48, 0x01, 0xd8, //0x0000239a addq %rbx, %rax + 0x49, 0x83, 0xfd, 0xff, //0x0000239d cmpq $-1, %r13 + 0x4c, 0x0f, 0x44, 0xe8, //0x000023a1 cmoveq %rax, %r13 + 0x48, 0xff, 0xc3, //0x000023a5 incq %rbx + 0x48, 0xff, 0xc9, //0x000023a8 decq %rcx + 0x4c, 0x8b, 0x55, 0xb8, //0x000023ab movq $-72(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xd0, //0x000023af movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000023b3 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x000023b8 testq %rcx, %rcx + 0x0f, 0x85, 0xbb, 0xfb, 0xff, 0xff, //0x000023bb jne LBB0_372 + 0xe9, 0xa2, 0x03, 0x00, 0x00, //0x000023c1 jmp LBB0_475 + //0x000023c6 LBB0_431 + 0x4d, 0x85, 0xd2, //0x000023c6 testq %r10, %r10 + 0x0f, 0x84, 0x99, 0x03, 0x00, 0x00, //0x000023c9 je LBB0_475 + 0x48, 0x8b, 0x45, 0xc8, //0x000023cf movq $-56(%rbp), %rax + 0x48, 0x89, 0xc1, //0x000023d3 movq %rax, %rcx + 0x48, 0xf7, 0xd1, //0x000023d6 notq %rcx + 0x4c, 0x01, 0xe1, //0x000023d9 addq %r12, %rcx + 0x49, 0x83, 0xfd, 0xff, //0x000023dc cmpq $-1, %r13 + 0x4c, 0x0f, 0x44, 0xe9, //0x000023e0 cmoveq %rcx, %r13 + 0x49, 0xff, 0xc4, //0x000023e4 incq %r12 + 0x49, 0xff, 0xca, //0x000023e7 decq %r10 + 0x4c, 0x8b, 0x75, 0xd0, //0x000023ea movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000023ee vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x85, 0xd2, //0x000023f3 testq %r10, %r10 + 0x0f, 0x85, 0xb8, 0xfc, 0xff, 0xff, //0x000023f6 jne LBB0_390 + 0xe9, 0x67, 0x03, 0x00, 0x00, //0x000023fc jmp LBB0_475 + //0x00002401 LBB0_433 + 0x48, 0x85, 0xc9, //0x00002401 testq %rcx, %rcx + 0x0f, 0x84, 0xcf, 0x05, 0x00, 0x00, //0x00002404 je LBB0_513 + 0x4c, 0x89, 0xc8, //0x0000240a movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x0000240d notq %rax + 0x48, 0x01, 0xd8, //0x00002410 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002413 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002417 cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x0000241b incq %rbx + 0x48, 0xff, 0xc9, //0x0000241e decq %rcx + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002421 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002425 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002429 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x0000242e testq %rcx, %rcx + 0x0f, 0x85, 0x94, 0xfd, 0xff, 0xff, //0x00002431 jne LBB0_404 + 0xe9, 0x52, 0x03, 0x00, 0x00, //0x00002437 jmp LBB0_478 + //0x0000243c LBB0_435 + 0x48, 0x85, 0xdb, //0x0000243c testq %rbx, %rbx + 0x0f, 0x84, 0x94, 0x05, 0x00, 0x00, //0x0000243f je LBB0_513 + 0x48, 0x8b, 0x75, 0xc8, //0x00002445 movq $-56(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x00002449 movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x0000244c notq %rax + 0x4c, 0x01, 0xe0, //0x0000244f addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002452 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002456 cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x0000245a incq %r12 + 0x48, 0xff, 0xcb, //0x0000245d decq %rbx + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002460 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002464 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002468 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x0000246d testq %rbx, %rbx + 0x0f, 0x85, 0x8b, 0xfe, 0xff, 0xff, //0x00002470 jne LBB0_422 + 0xe9, 0x13, 0x03, 0x00, 0x00, //0x00002476 jmp LBB0_478 + //0x0000247b LBB0_437 + 0x4d, 0x89, 0xca, //0x0000247b movq %r9, %r10 + 0x49, 0x83, 0xfb, 0xff, //0x0000247e cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00002482 jne LBB0_440 + 0x48, 0x89, 0xd8, //0x00002488 movq %rbx, %rax + 0x4c, 0x29, 0xd0, //0x0000248b subq %r10, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x0000248e bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00002492 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002495 jmp LBB0_440 + //0x0000249a LBB0_439 + 0x4d, 0x89, 0xca, //0x0000249a movq %r9, %r10 + //0x0000249d LBB0_440 + 0x44, 0x89, 0xf0, //0x0000249d movl %r14d, %eax + 0xf7, 0xd0, //0x000024a0 notl %eax + 0x21, 0xf0, //0x000024a2 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x000024a4 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x000024a8 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x000024ab movl %r9d, %edi + 0xf7, 0xd7, //0x000024ae notl %edi + 0x21, 0xf7, //0x000024b0 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000024b2 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x000024b8 xorl %r14d, %r14d + 0x01, 0xc7, //0x000024bb addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000024bd setb %r14b + 0x01, 0xff, //0x000024c1 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000024c3 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000024c9 andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000024cc movl $4294967295, %eax + 0x31, 0xc7, //0x000024d1 xorl %eax, %edi + 0x21, 0xfa, //0x000024d3 andl %edi, %edx + 0x4c, 0x8b, 0x6d, 0xc0, //0x000024d5 movq $-64(%rbp), %r13 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000024d9 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xd1, //0x000024de movq %r10, %r9 + 0x48, 0x85, 0xd2, //0x000024e1 testq %rdx, %rdx + 0x0f, 0x85, 0x3b, 0xf8, 0xff, 0xff, //0x000024e4 jne LBB0_224 + //0x000024ea LBB0_441 + 0x48, 0x83, 0xc3, 0x20, //0x000024ea addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x000024ee addq $-32, %rcx + //0x000024f2 LBB0_442 + 0x4d, 0x85, 0xf6, //0x000024f2 testq %r14, %r14 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x000024f5 jne LBB0_468 + 0x4c, 0x8b, 0x75, 0xd0, //0x000024fb movq $-48(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x000024ff testq %rcx, %rcx + 0x0f, 0x84, 0x86, 0x02, 0x00, 0x00, //0x00002502 je LBB0_478 + //0x00002508 LBB0_444 + 0x4d, 0x89, 0xe2, //0x00002508 movq %r12, %r10 + 0x4c, 0x89, 0xcf, //0x0000250b movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x0000250e notq %rdi + //0x00002511 LBB0_445 + 0x4c, 0x8d, 0x63, 0x01, //0x00002511 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00002515 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00002518 cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x0000251b je LBB0_450 + 0x48, 0x8d, 0x71, 0xff, //0x00002521 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002525 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002528 je LBB0_448 + 0x48, 0x89, 0xf1, //0x0000252e movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002531 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002534 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00002537 jne LBB0_445 + 0xe9, 0x4c, 0x02, 0x00, 0x00, //0x0000253d jmp LBB0_478 + //0x00002542 LBB0_448 + 0x48, 0x85, 0xf6, //0x00002542 testq %rsi, %rsi + 0x0f, 0x84, 0x8e, 0x04, 0x00, 0x00, //0x00002545 je LBB0_513 + 0x49, 0x01, 0xfc, //0x0000254b addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x0000254e cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002552 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x00002556 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000255a addq $-2, %rcx + 0x48, 0x89, 0xce, //0x0000255e movq %rcx, %rsi + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002561 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002565 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002569 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000256e testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002571 jne LBB0_445 + 0xe9, 0x12, 0x02, 0x00, 0x00, //0x00002577 jmp LBB0_478 + //0x0000257c LBB0_450 + 0x4d, 0x29, 0xcc, //0x0000257c subq %r9, %r12 + 0xe9, 0xb4, 0xf7, 0xff, 0xff, //0x0000257f jmp LBB0_323 + //0x00002584 LBB0_451 + 0x49, 0x83, 0xfb, 0xff, //0x00002584 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002588 jne LBB0_453 + 0x4c, 0x89, 0xe0, //0x0000258e movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x00002591 subq $-56(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002595 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00002599 addq %rax, %r11 + //0x0000259c LBB0_453 + 0x44, 0x89, 0xf8, //0x0000259c movl %r15d, %eax + 0xf7, 0xd0, //0x0000259f notl %eax + 0x21, 0xc8, //0x000025a1 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x000025a3 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x000025a6 orl %r15d, %edx + 0x89, 0xd7, //0x000025a9 movl %edx, %edi + 0xf7, 0xd7, //0x000025ab notl %edi + 0x21, 0xcf, //0x000025ad andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000025af andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000025b5 xorl %r15d, %r15d + 0x01, 0xc7, //0x000025b8 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000025ba setb %r15b + 0x01, 0xff, //0x000025be addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000025c0 xorl $1431655765, %edi + 0x21, 0xd7, //0x000025c6 andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000025c8 movl $4294967295, %eax + 0x31, 0xf8, //0x000025cd xorl %edi, %eax + 0x21, 0xc6, //0x000025cf andl %eax, %esi + 0x4c, 0x8b, 0x6d, 0xc0, //0x000025d1 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x000025d5 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000025d9 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x000025de testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xf7, 0xff, 0xff, //0x000025e1 jne LBB0_263 + //0x000025e7 LBB0_454 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000025e7 movl $64, %ecx + //0x000025ec LBB0_455 + 0x49, 0x0f, 0xbc, 0xd1, //0x000025ec bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x000025f0 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x000025f3 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x000025f8 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x000025fc testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000025ff je LBB0_457 + 0x4c, 0x2b, 0x65, 0xc8, //0x00002605 subq $-56(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x00002609 cmpq %rcx, %rdi + 0x0f, 0x83, 0x31, 0xf3, 0xff, 0xff, //0x0000260c jae LBB0_322 + 0xe9, 0x94, 0x03, 0x00, 0x00, //0x00002612 jmp LBB0_417 + //0x00002617 LBB0_457 + 0x45, 0x85, 0xc9, //0x00002617 testl %r9d, %r9d + 0x0f, 0x85, 0xa5, 0x03, 0x00, 0x00, //0x0000261a jne LBB0_511 + 0x49, 0x83, 0xc4, 0x20, //0x00002620 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002624 addq $-32, %rbx + //0x00002628 LBB0_459 + 0x4d, 0x85, 0xff, //0x00002628 testq %r15, %r15 + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x0000262b jne LBB0_470 + 0x48, 0x8b, 0x75, 0xc8, //0x00002631 movq $-56(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002635 testq %rbx, %rbx + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00002638 je LBB0_478 + //0x0000263e LBB0_461 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x0000263e movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002643 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00002646 je LBB0_467 + 0x80, 0xf9, 0x5c, //0x0000264c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x0000264f je LBB0_465 + 0x80, 0xf9, 0x1f, //0x00002655 cmpb $31, %cl + 0x0f, 0x86, 0x73, 0x03, 0x00, 0x00, //0x00002658 jbe LBB0_512 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000265e movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002665 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000266a addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x0000266d addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002670 jne LBB0_461 + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00002676 jmp LBB0_478 + //0x0000267b LBB0_465 + 0x48, 0x83, 0xfb, 0x01, //0x0000267b cmpq $1, %rbx + 0x0f, 0x84, 0x54, 0x03, 0x00, 0x00, //0x0000267f je LBB0_513 + 0x4c, 0x89, 0xe0, //0x00002685 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x00002688 subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000268b cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000268f cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002693 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000269a movl $2, %edx + 0x4c, 0x8b, 0x6d, 0xc0, //0x0000269f movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x000026a3 movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000026a7 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x000026ac addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x000026af addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x000026b2 jne LBB0_461 + 0xe9, 0xd1, 0x00, 0x00, 0x00, //0x000026b8 jmp LBB0_478 + //0x000026bd LBB0_467 + 0x49, 0x29, 0xf4, //0x000026bd subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000026c0 incq %r12 + 0xe9, 0x70, 0xf6, 0xff, 0xff, //0x000026c3 jmp LBB0_323 + //0x000026c8 LBB0_468 + 0x48, 0x85, 0xc9, //0x000026c8 testq %rcx, %rcx + 0x0f, 0x84, 0x08, 0x03, 0x00, 0x00, //0x000026cb je LBB0_513 + 0x4c, 0x89, 0xc8, //0x000026d1 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000026d4 notq %rax + 0x48, 0x01, 0xd8, //0x000026d7 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000026da cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x000026de cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x000026e2 incq %rbx + 0x48, 0xff, 0xc9, //0x000026e5 decq %rcx + 0x4c, 0x8b, 0x6d, 0xc0, //0x000026e8 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x000026ec movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000026f0 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x000026f5 testq %rcx, %rcx + 0x0f, 0x85, 0x0a, 0xfe, 0xff, 0xff, //0x000026f8 jne LBB0_444 + 0xe9, 0x8b, 0x00, 0x00, 0x00, //0x000026fe jmp LBB0_478 + //0x00002703 LBB0_470 + 0x48, 0x85, 0xdb, //0x00002703 testq %rbx, %rbx + 0x0f, 0x84, 0xcd, 0x02, 0x00, 0x00, //0x00002706 je LBB0_513 + 0x48, 0x8b, 0x75, 0xc8, //0x0000270c movq $-56(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x00002710 movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x00002713 notq %rax + 0x4c, 0x01, 0xe0, //0x00002716 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002719 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000271d cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x00002721 incq %r12 + 0x48, 0xff, 0xcb, //0x00002724 decq %rbx + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002727 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x0000272b movq $-48(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000272f vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x00002734 testq %rbx, %rbx + 0x0f, 0x85, 0x01, 0xff, 0xff, 0xff, //0x00002737 jne LBB0_461 + 0xe9, 0x4c, 0x00, 0x00, 0x00, //0x0000273d jmp LBB0_478 + //0x00002742 LBB0_472 + 0x4d, 0x89, 0x45, 0x00, //0x00002742 movq %r8, (%r13) + //0x00002746 LBB0_473 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002746 movq $-1, %rcx + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000274d jmp LBB0_498 + //0x00002752 LBB0_486 + 0x48, 0xc7, 0xc1, 0xf9, 0xff, 0xff, 0xff, //0x00002752 movq $-7, %rcx + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x00002759 jmp LBB0_498 + //0x0000275e LBB0_474 + 0x49, 0x83, 0xfc, 0xff, //0x0000275e cmpq $-1, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x00002762 jne LBB0_506 + //0x00002768 LBB0_475 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002768 movq $-1, %r12 + 0x4c, 0x8b, 0x6d, 0xb0, //0x0000276f movq $-80(%rbp), %r13 + 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00002773 jmp LBB0_506 + //0x00002778 LBB0_476 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002778 movq $-1, %rcx + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x0000277f jmp LBB0_480 + //0x00002784 LBB0_477 + 0x49, 0x83, 0xfc, 0xff, //0x00002784 cmpq $-1, %r12 + 0x0f, 0x85, 0x96, 0x00, 0x00, 0x00, //0x00002788 jne LBB0_503 + //0x0000278e LBB0_478 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000278e movq $-1, %r12 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002795 movq $-80(%rbp), %r11 + 0xe9, 0x86, 0x00, 0x00, 0x00, //0x00002799 jmp LBB0_503 + //0x0000279e LBB0_479 + 0x4c, 0x89, 0xf1, //0x0000279e movq %r14, %rcx + //0x000027a1 LBB0_480 + 0x48, 0x8b, 0x55, 0xc0, //0x000027a1 movq $-64(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x000027a5 movq (%rdx), %rax + 0x48, 0x29, 0xc8, //0x000027a8 subq %rcx, %rax + 0x48, 0x83, 0xc0, 0xfe, //0x000027ab addq $-2, %rax + 0x48, 0x89, 0x02, //0x000027af movq %rax, (%rdx) + //0x000027b2 LBB0_497 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000027b2 movq $-2, %rcx + //0x000027b9 LBB0_498 + 0x48, 0x89, 0xc8, //0x000027b9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x48, //0x000027bc addq $72, %rsp + 0x5b, //0x000027c0 popq %rbx + 0x41, 0x5c, //0x000027c1 popq %r12 + 0x41, 0x5d, //0x000027c3 popq %r13 + 0x41, 0x5e, //0x000027c5 popq %r14 + 0x41, 0x5f, //0x000027c7 popq %r15 + 0x5d, //0x000027c9 popq %rbp + 0xc5, 0xf8, 0x77, //0x000027ca vzeroupper + 0xc3, //0x000027cd retq + //0x000027ce LBB0_487 + 0x49, 0x89, 0x55, 0x00, //0x000027ce movq %rdx, (%r13) + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x000027d2 jmp LBB0_498 + //0x000027d7 LBB0_481 + 0x49, 0x83, 0xfd, 0xff, //0x000027d7 cmpq $-1, %r13 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000027db jne LBB0_484 + 0x48, 0x0f, 0xbc, 0xc7, //0x000027e1 bsfq %rdi, %rax + 0x4c, 0x2b, 0x65, 0xc8, //0x000027e5 subq $-56(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x000027e9 addq %rax, %r12 + //0x000027ec LBB0_483 + 0x4d, 0x89, 0xe5, //0x000027ec movq %r12, %r13 + //0x000027ef LBB0_484 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000027ef movq $-2, %r12 + //0x000027f6 LBB0_506 + 0x48, 0x8b, 0x45, 0xc0, //0x000027f6 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x28, //0x000027fa movq %r13, (%rax) + 0x4c, 0x89, 0xe1, //0x000027fd movq %r12, %rcx + 0xe9, 0xb4, 0xff, 0xff, 0xff, //0x00002800 jmp LBB0_498 + //0x00002805 LBB0_499 + 0x49, 0x83, 0xfb, 0xff, //0x00002805 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002809 jne LBB0_502 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000280f bsfq %rdi, %rax + 0x4c, 0x2b, 0x65, 0xc8, //0x00002813 subq $-56(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002817 addq %rax, %r12 + //0x0000281a LBB0_501 + 0x4d, 0x89, 0xe3, //0x0000281a movq %r12, %r11 + //0x0000281d LBB0_502 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000281d movq $-2, %r12 + //0x00002824 LBB0_503 + 0x4d, 0x89, 0x5d, 0x00, //0x00002824 movq %r11, (%r13) + 0x4c, 0x89, 0xe1, //0x00002828 movq %r12, %rcx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x0000282b jmp LBB0_498 + //0x00002830 LBB0_233 + 0x4d, 0x89, 0x45, 0x00, //0x00002830 movq %r8, (%r13) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002834 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x6e, //0x0000283b cmpb $110, (%r15) + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x0000283f jne LBB0_498 + 0x49, 0x8d, 0x40, 0x01, //0x00002845 leaq $1(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x00002849 movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x01, 0x75, //0x0000284d cmpb $117, $1(%r9,%r8) + 0x0f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00002853 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x02, //0x00002859 leaq $2(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x0000285d movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x00002861 cmpb $108, $2(%r9,%r8) + 0x0f, 0x85, 0x4c, 0xff, 0xff, 0xff, //0x00002867 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x03, //0x0000286d leaq $3(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x00002871 movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x03, 0x6c, //0x00002875 cmpb $108, $3(%r9,%r8) + 0x0f, 0x85, 0x38, 0xff, 0xff, 0xff, //0x0000287b jne LBB0_498 + 0xe9, 0xaa, 0x00, 0x00, 0x00, //0x00002881 jmp LBB0_237 + //0x00002886 LBB0_488 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002886 movq $-2, %rcx + 0x80, 0xfa, 0x61, //0x0000288d cmpb $97, %dl + 0x0f, 0x85, 0x23, 0xff, 0xff, 0xff, //0x00002890 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x02, //0x00002896 leaq $2(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x0000289a movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x0000289e cmpb $108, $2(%r9,%r8) + 0x0f, 0x85, 0x0f, 0xff, 0xff, 0xff, //0x000028a4 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x03, //0x000028aa leaq $3(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x000028ae movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x03, 0x73, //0x000028b2 cmpb $115, $3(%r9,%r8) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x000028b8 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x04, //0x000028be leaq $4(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x000028c2 movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x04, 0x65, //0x000028c6 cmpb $101, $4(%r9,%r8) + 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x000028cc jne LBB0_498 + 0x49, 0x83, 0xc0, 0x05, //0x000028d2 addq $5, %r8 + 0x4d, 0x89, 0x45, 0x00, //0x000028d6 movq %r8, (%r13) + 0xe9, 0xda, 0xfe, 0xff, 0xff, //0x000028da jmp LBB0_498 + //0x000028df LBB0_245 + 0x4d, 0x89, 0x45, 0x00, //0x000028df movq %r8, (%r13) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000028e3 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x74, //0x000028ea cmpb $116, (%r15) + 0x0f, 0x85, 0xc5, 0xfe, 0xff, 0xff, //0x000028ee jne LBB0_498 + 0x49, 0x8d, 0x40, 0x01, //0x000028f4 leaq $1(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x000028f8 movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x01, 0x72, //0x000028fc cmpb $114, $1(%r9,%r8) + 0x0f, 0x85, 0xb1, 0xfe, 0xff, 0xff, //0x00002902 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x02, //0x00002908 leaq $2(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x0000290c movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x02, 0x75, //0x00002910 cmpb $117, $2(%r9,%r8) + 0x0f, 0x85, 0x9d, 0xfe, 0xff, 0xff, //0x00002916 jne LBB0_498 + 0x49, 0x8d, 0x40, 0x03, //0x0000291c leaq $3(%r8), %rax + 0x49, 0x89, 0x45, 0x00, //0x00002920 movq %rax, (%r13) + 0x43, 0x80, 0x7c, 0x01, 0x03, 0x65, //0x00002924 cmpb $101, $3(%r9,%r8) + 0x0f, 0x85, 0x89, 0xfe, 0xff, 0xff, //0x0000292a jne LBB0_498 + //0x00002930 LBB0_237 + 0x49, 0x83, 0xc0, 0x04, //0x00002930 addq $4, %r8 + 0x4d, 0x89, 0x45, 0x00, //0x00002934 movq %r8, (%r13) + 0xe9, 0x7c, 0xfe, 0xff, 0xff, //0x00002938 jmp LBB0_498 + //0x0000293d LBB0_494 + 0x4d, 0x8b, 0x65, 0x00, //0x0000293d movq (%r13), %r12 + //0x00002941 LBB0_495 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002941 movq $-1, %r15 + //0x00002948 LBB0_496 + 0x49, 0xf7, 0xd7, //0x00002948 notq %r15 + 0x4d, 0x01, 0xe7, //0x0000294b addq %r12, %r15 + 0x4d, 0x89, 0x7d, 0x00, //0x0000294e movq %r15, (%r13) + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00002952 jmp LBB0_497 + //0x00002957 LBB0_504 + 0x4c, 0x89, 0x65, 0xb0, //0x00002957 movq %r12, $-80(%rbp) + 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x0000295b jmp LBB0_475 + //0x00002960 LBB0_507 + 0x4c, 0x89, 0x65, 0xb0, //0x00002960 movq %r12, $-80(%rbp) + 0xe9, 0x25, 0xfe, 0xff, 0xff, //0x00002964 jmp LBB0_478 + //0x00002969 LBB0_505 + 0x4c, 0x01, 0xe2, //0x00002969 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000296c movq $-2, %r12 + 0x49, 0x89, 0xd5, //0x00002973 movq %rdx, %r13 + 0xe9, 0x7b, 0xfe, 0xff, 0xff, //0x00002976 jmp LBB0_506 + //0x0000297b LBB0_129 + 0x4c, 0x01, 0xe2, //0x0000297b addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000297e movq $-2, %r12 + 0x49, 0x89, 0xd3, //0x00002985 movq %rdx, %r11 + 0xe9, 0x97, 0xfe, 0xff, 0xff, //0x00002988 jmp LBB0_503 + //0x0000298d LBB0_508 + 0x4c, 0x01, 0xe7, //0x0000298d addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002990 movq $-2, %r12 + 0x49, 0x89, 0xfd, //0x00002997 movq %rdi, %r13 + 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x0000299a jmp LBB0_506 + //0x0000299f LBB0_509 + 0x4c, 0x2b, 0x65, 0xc8, //0x0000299f subq $-56(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029a3 addq %rdx, %r12 + 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x000029a6 jmp LBB0_483 + //0x000029ab LBB0_417 + 0x4c, 0x01, 0xe7, //0x000029ab addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029ae movq $-2, %r12 + 0x49, 0x89, 0xfb, //0x000029b5 movq %rdi, %r11 + 0xe9, 0x67, 0xfe, 0xff, 0xff, //0x000029b8 jmp LBB0_503 + //0x000029bd LBB0_510 + 0x49, 0x29, 0xc4, //0x000029bd subq %rax, %r12 + 0xe9, 0x27, 0xfe, 0xff, 0xff, //0x000029c0 jmp LBB0_483 + //0x000029c5 LBB0_511 + 0x4c, 0x2b, 0x65, 0xc8, //0x000029c5 subq $-56(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029c9 addq %rdx, %r12 + 0xe9, 0x49, 0xfe, 0xff, 0xff, //0x000029cc jmp LBB0_501 + //0x000029d1 LBB0_512 + 0x49, 0x29, 0xf4, //0x000029d1 subq %rsi, %r12 + 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x000029d4 jmp LBB0_501 + //0x000029d9 LBB0_513 + 0x4c, 0x8b, 0x6d, 0xc0, //0x000029d9 movq $-64(%rbp), %r13 + 0xe9, 0xac, 0xfd, 0xff, 0xff, //0x000029dd jmp LBB0_478 + 0x90, 0x90, //0x000029e2 .p2align 2, 0x90 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_62, LBB0_62-LJTI0_0 + // // .set L0_0_set_45, LBB0_45-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + // // .set L0_0_set_42, LBB0_42-LJTI0_0 + // // .set L0_0_set_67, LBB0_67-LJTI0_0 + //0x000029e4 LJTI0_0 + 0xd3, 0xda, 0xff, 0xff, //0x000029e4 .long L0_0_set_39 + 0x69, 0xdc, 0xff, 0xff, //0x000029e8 .long L0_0_set_62 + 0x0a, 0xdb, 0xff, 0xff, //0x000029ec .long L0_0_set_45 + 0x94, 0xdc, 0xff, 0xff, //0x000029f0 .long L0_0_set_64 + 0xea, 0xda, 0xff, 0xff, //0x000029f4 .long L0_0_set_42 + 0x2e, 0xe0, 0xff, 0xff, //0x000029f8 .long L0_0_set_67 + // // .set L0_1_set_498, LBB0_498-LJTI0_1 + // // .set L0_1_set_497, LBB0_497-LJTI0_1 + // // .set L0_1_set_209, LBB0_209-LJTI0_1 + // // .set L0_1_set_225, LBB0_225-LJTI0_1 + // // .set L0_1_set_69, LBB0_69-LJTI0_1 + // // .set L0_1_set_229, LBB0_229-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_231, LBB0_231-LJTI0_1 + // // .set L0_1_set_243, LBB0_243-LJTI0_1 + // // .set L0_1_set_238, LBB0_238-LJTI0_1 + //0x000029fc LJTI0_1 + 0xbd, 0xfd, 0xff, 0xff, //0x000029fc .long L0_1_set_498 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a00 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a04 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a08 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a0c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a10 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a14 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a18 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a1c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a20 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a24 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a28 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a2c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a38 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a48 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a58 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a60 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a70 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a7c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a80 .long L0_1_set_497 + 0x10, 0xe7, 0xff, 0xff, //0x00002a84 .long L0_1_set_209 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a88 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a8c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a90 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a94 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a98 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002a9c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002aa0 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002aa4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002aa8 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002aac .long L0_1_set_497 + 0x65, 0xe8, 0xff, 0xff, //0x00002ab0 .long L0_1_set_225 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ab4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ab8 .long L0_1_set_497 + 0xb5, 0xdc, 0xff, 0xff, //0x00002abc .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ac0 .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ac4 .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ac8 .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002acc .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ad0 .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ad4 .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ad8 .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002adc .long L0_1_set_69 + 0xb5, 0xdc, 0xff, 0xff, //0x00002ae0 .long L0_1_set_69 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ae4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ae8 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002aec .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002af0 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002af4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002af8 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002afc .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b00 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b04 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b08 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b0c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b10 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b14 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b18 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b1c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b20 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b24 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b28 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b2c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b30 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b34 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b38 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b3c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b40 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b44 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b48 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b4c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b50 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b54 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b58 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b5c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b60 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b64 .long L0_1_set_497 + 0xa1, 0xe8, 0xff, 0xff, //0x00002b68 .long L0_1_set_229 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b6c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b70 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b74 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b78 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b7c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b80 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b84 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b88 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b8c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b90 .long L0_1_set_497 + 0x0c, 0xe9, 0xff, 0xff, //0x00002b94 .long L0_1_set_240 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b98 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002b9c .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ba0 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ba4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002ba8 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bac .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bb0 .long L0_1_set_497 + 0xc5, 0xe8, 0xff, 0xff, //0x00002bb4 .long L0_1_set_231 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bb8 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bbc .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bc0 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bc4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bc8 .long L0_1_set_497 + 0x49, 0xe9, 0xff, 0xff, //0x00002bcc .long L0_1_set_243 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bd0 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bd4 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bd8 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002bdc .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002be0 .long L0_1_set_497 + 0xb6, 0xfd, 0xff, 0xff, //0x00002be4 .long L0_1_set_497 + 0xe8, 0xe8, 0xff, 0xff, //0x00002be8 .long L0_1_set_238 + // // .set L0_2_set_311, LBB0_311-LJTI0_2 + // // .set L0_2_set_326, LBB0_326-LJTI0_2 + // // .set L0_2_set_318, LBB0_318-LJTI0_2 + // // .set L0_2_set_313, LBB0_313-LJTI0_2 + // // .set L0_2_set_316, LBB0_316-LJTI0_2 + //0x00002bec LJTI0_2 + 0x8b, 0xec, 0xff, 0xff, //0x00002bec .long L0_2_set_311 + 0x68, 0xed, 0xff, 0xff, //0x00002bf0 .long L0_2_set_326 + 0x8b, 0xec, 0xff, 0xff, //0x00002bf4 .long L0_2_set_311 + 0xef, 0xec, 0xff, 0xff, //0x00002bf8 .long L0_2_set_318 + 0x68, 0xed, 0xff, 0xff, //0x00002bfc .long L0_2_set_326 + 0xa4, 0xec, 0xff, 0xff, //0x00002c00 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c04 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c08 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c0c .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c10 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c14 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c18 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c1c .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c20 .long L0_2_set_313 + 0xa4, 0xec, 0xff, 0xff, //0x00002c24 .long L0_2_set_313 + 0x68, 0xed, 0xff, 0xff, //0x00002c28 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c2c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c30 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c34 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c38 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c3c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c40 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c44 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c48 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c4c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c50 .long L0_2_set_326 + 0xd4, 0xec, 0xff, 0xff, //0x00002c54 .long L0_2_set_316 + 0x68, 0xed, 0xff, 0xff, //0x00002c58 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c5c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c60 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c64 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c68 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c6c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c70 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c74 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c78 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c7c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c80 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c84 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c88 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c8c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c90 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c94 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c98 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002c9c .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002ca0 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002ca4 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002ca8 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cac .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cb0 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cb4 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cb8 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cbc .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cc0 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cc4 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cc8 .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002ccc .long L0_2_set_326 + 0x68, 0xed, 0xff, 0xff, //0x00002cd0 .long L0_2_set_326 + 0xd4, 0xec, 0xff, 0xff, //0x00002cd4 .long L0_2_set_316 + // // .set L0_3_set_176, LBB0_176-LJTI0_3 + // // .set L0_3_set_187, LBB0_187-LJTI0_3 + // // .set L0_3_set_178, LBB0_178-LJTI0_3 + // // .set L0_3_set_173, LBB0_173-LJTI0_3 + // // .set L0_3_set_171, LBB0_171-LJTI0_3 + //0x00002cd8 LJTI0_3 + 0xb8, 0xdd, 0xff, 0xff, //0x00002cd8 .long L0_3_set_176 + 0xc6, 0xe2, 0xff, 0xff, //0x00002cdc .long L0_3_set_187 + 0xb8, 0xdd, 0xff, 0xff, //0x00002ce0 .long L0_3_set_176 + 0xd3, 0xdd, 0xff, 0xff, //0x00002ce4 .long L0_3_set_178 + 0xc6, 0xe2, 0xff, 0xff, //0x00002ce8 .long L0_3_set_187 + 0x88, 0xdd, 0xff, 0xff, //0x00002cec .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002cf0 .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002cf4 .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002cf8 .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002cfc .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002d00 .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002d04 .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002d08 .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002d0c .long L0_3_set_173 + 0x88, 0xdd, 0xff, 0xff, //0x00002d10 .long L0_3_set_173 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d14 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d18 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d1c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d20 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d24 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d28 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d2c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d30 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d34 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d38 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d3c .long L0_3_set_187 + 0x64, 0xdd, 0xff, 0xff, //0x00002d40 .long L0_3_set_171 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d44 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d48 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d4c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d50 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d54 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d58 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d5c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d60 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d64 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d68 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d6c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d70 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d74 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d78 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d7c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d80 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d84 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d88 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d8c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d90 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d94 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d98 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002d9c .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002da0 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002da4 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002da8 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002dac .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002db0 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002db4 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002db8 .long L0_3_set_187 + 0xc6, 0xe2, 0xff, 0xff, //0x00002dbc .long L0_3_set_187 + 0x64, 0xdd, 0xff, 0xff, //0x00002dc0 .long L0_3_set_171 + //0x00002dc4 .p2align 2, 0x00 + //0x00002dc4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002dc4 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa.go new file mode 100644 index 000000000..fa9da82ef --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_u64toa func(out unsafe.Pointer, val uint64) (ret int) + +var S_u64toa uintptr + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return F_u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_subr.go new file mode 100644 index 000000000..f5349509e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_subr.go @@ -0,0 +1,39 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__u64toa = 64 +) + +const ( + _stack__u64toa = 8 +) + +const ( + _size__u64toa = 1232 +) + +var ( + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {758, 8}, + {759, 0}, + {1225, 8}, + {1227, 0}, + } +) + +var _cfunc_u64toa = []loader.CFunc{ + {"_u64toa_entry", 0, _entry__u64toa, 0, nil}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_text_amd64.go new file mode 100644 index 000000000..7eafdb020 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/u64toa_text_amd64.go @@ -0,0 +1,371 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_u64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209 + //0x00000010 LCPI0_3 + 0x0a, 0x00, //0x00000010 .word 10 + 0x0a, 0x00, //0x00000012 .word 10 + 0x0a, 0x00, //0x00000014 .word 10 + 0x0a, 0x00, //0x00000016 .word 10 + 0x0a, 0x00, //0x00000018 .word 10 + 0x0a, 0x00, //0x0000001a .word 10 + 0x0a, 0x00, //0x0000001c .word 10 + 0x0a, 0x00, //0x0000001e .word 10 + //0x00000020 LCPI0_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000020 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000030 .p2align 3, 0x00 + //0x00000030 LCPI0_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00000030 .quad -9223315738079846203 + //0x00000038 LCPI0_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00000038 .quad -9223336852348469120 + //0x00000040 .p2align 4, 0x90 + //0x00000040 _u64toa + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000044 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x0000004b ja LBB0_8 + 0x0f, 0xb7, 0xc6, //0x00000051 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000054 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000057 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000005d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000060 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000064 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000067 movl %esi, %ecx + 0x29, 0xc1, //0x00000069 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x0000006b movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x0000006e addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000071 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000077 jb LBB0_3 + 0x48, 0x8d, 0x0d, 0x8c, 0x04, 0x00, 0x00, //0x0000007d leaq $1164(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000084 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000087 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000089 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000008e jmp LBB0_4 + //0x00000093 LBB0_3 + 0x31, 0xc9, //0x00000093 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x00000095 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000098 jb LBB0_5 + //0x0000009e LBB0_4 + 0x0f, 0xb7, 0xd2, //0x0000009e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000000a1 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x64, 0x04, 0x00, 0x00, //0x000000a5 leaq $1124(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000000ac movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x000000af movl %ecx, %esi + 0xff, 0xc1, //0x000000b1 incl %ecx + 0x88, 0x14, 0x37, //0x000000b3 movb %dl, (%rdi,%rsi) + //0x000000b6 LBB0_6 + 0x48, 0x8d, 0x15, 0x53, 0x04, 0x00, 0x00, //0x000000b6 leaq $1107(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x000000bd movb (%rax,%rdx), %dl + 0x89, 0xce, //0x000000c0 movl %ecx, %esi + 0xff, 0xc1, //0x000000c2 incl %ecx + 0x88, 0x14, 0x37, //0x000000c4 movb %dl, (%rdi,%rsi) + //0x000000c7 LBB0_7 + 0x0f, 0xb7, 0xc0, //0x000000c7 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000000ca orq $1, %rax + 0x48, 0x8d, 0x15, 0x3b, 0x04, 0x00, 0x00, //0x000000ce leaq $1083(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x000000d5 movb (%rax,%rdx), %al + 0x89, 0xca, //0x000000d8 movl %ecx, %edx + 0xff, 0xc1, //0x000000da incl %ecx + 0x88, 0x04, 0x17, //0x000000dc movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x000000df movl %ecx, %eax + 0x5d, //0x000000e1 popq %rbp + 0xc3, //0x000000e2 retq + //0x000000e3 LBB0_5 + 0x31, 0xc9, //0x000000e3 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000000e5 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000e8 jae LBB0_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000ee jmp LBB0_7 + //0x000000f3 LBB0_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000000f3 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x000000fa ja LBB0_16 + 0x89, 0xf0, //0x00000100 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000102 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000107 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000010b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000010f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000116 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000118 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000011b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000122 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000126 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x0000012a movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000012d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000130 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000136 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000139 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000013c subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000013e movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000142 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000145 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000148 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000014b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000151 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000154 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000158 imull $100, %eax, %eax + 0x29, 0xc1, //0x0000015b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x0000015d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000161 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000164 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000016a jb LBB0_11 + 0x48, 0x8d, 0x05, 0x99, 0x03, 0x00, 0x00, //0x00000170 leaq $921(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000177 movb (%r10,%rax), %al + 0x88, 0x07, //0x0000017b movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000017d movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000182 jmp LBB0_12 + //0x00000187 LBB0_11 + 0x31, 0xc9, //0x00000187 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000189 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x0000018f jb LBB0_13 + //0x00000195 LBB0_12 + 0x44, 0x89, 0xd0, //0x00000195 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000198 orq $1, %rax + 0x48, 0x8d, 0x35, 0x6d, 0x03, 0x00, 0x00, //0x0000019c leaq $877(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000001a3 movb (%rax,%rsi), %al + 0x89, 0xce, //0x000001a6 movl %ecx, %esi + 0xff, 0xc1, //0x000001a8 incl %ecx + 0x88, 0x04, 0x37, //0x000001aa movb %al, (%rdi,%rsi) + //0x000001ad LBB0_14 + 0x48, 0x8d, 0x05, 0x5c, 0x03, 0x00, 0x00, //0x000001ad leaq $860(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x000001b4 movb (%r9,%rax), %al + 0x89, 0xce, //0x000001b8 movl %ecx, %esi + 0xff, 0xc1, //0x000001ba incl %ecx + 0x88, 0x04, 0x37, //0x000001bc movb %al, (%rdi,%rsi) + //0x000001bf LBB0_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x000001bf movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001c3 orq $1, %rax + 0x48, 0x8d, 0x35, 0x42, 0x03, 0x00, 0x00, //0x000001c7 leaq $834(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000001ce movb (%rax,%rsi), %al + 0x89, 0xca, //0x000001d1 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x000001d3 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x000001d6 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x000001da movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x000001de movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001e2 orq $1, %rax + 0x8a, 0x04, 0x30, //0x000001e6 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x000001e9 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x000001ed movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x000001f1 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x000001f5 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001f9 orq $1, %rax + 0x8a, 0x04, 0x30, //0x000001fd movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000200 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000203 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000207 movl %ecx, %eax + 0x5d, //0x00000209 popq %rbp + 0xc3, //0x0000020a retq + //0x0000020b LBB0_13 + 0x31, 0xc9, //0x0000020b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000020d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000213 jae LBB0_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000219 jmp LBB0_15 + //0x0000021e LBB0_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000021e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000228 cmpq %rax, %rsi + 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x0000022b ja LBB0_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000231 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000023b movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000023e mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000241 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000245 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000024b subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000024d vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0xa7, 0xfd, 0xff, 0xff, //0x00000251 vmovdqu $-601(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00000259 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000025d vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000262 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00000267 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000026c vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00000270 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00000274 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x00000278 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x0000027d vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000282 vpshufd $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xa0, 0xfd, 0xff, 0xff, //0x00000287 vpbroadcastq $-608(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x9f, 0xfd, 0xff, 0xff, //0x00000290 vpbroadcastq $-609(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x00000299 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc4, //0x0000029d vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x67, 0xfd, 0xff, 0xff, //0x000002a1 vmovdqu $-665(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000002a9 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000002ad vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000002b2 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000002b6 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000002ba vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000002be vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000002c3 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000002c7 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000002cb vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000002cf vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000002d4 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000002d9 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000002de vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000002e2 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000002e6 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000002ea vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000002ef vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000002f3 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x21, 0xfd, 0xff, 0xff, //0x000002f7 vpaddb $-735(%rip), %xmm0, %xmm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x000002ff vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00000303 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000307 vpmovmskb %xmm0, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000030b orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00000310 xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00000315 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000318 movl $16, %ecx + 0x29, 0xc1, //0x0000031d subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000031f shlq $4, %rax + 0x48, 0x8d, 0x15, 0xb6, 0x02, 0x00, 0x00, //0x00000323 leaq $694(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x10, //0x0000032a vpshufb (%rax,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00000330 vmovdqu %xmm0, (%rdi) + 0x89, 0xc8, //0x00000334 movl %ecx, %eax + 0x5d, //0x00000336 popq %rbp + 0xc3, //0x00000337 retq + //0x00000338 LBB0_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000338 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00000342 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000345 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00000348 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000034c movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00000356 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x0000035a subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000035d cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000360 ja LBB0_20 + 0x80, 0xc2, 0x30, //0x00000366 addb $48, %dl + 0x88, 0x17, //0x00000369 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000036b movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x00000370 jmp LBB0_25 + //0x00000375 LBB0_20 + 0x83, 0xfa, 0x63, //0x00000375 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00000378 ja LBB0_22 + 0x89, 0xd0, //0x0000037e movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x89, 0x01, 0x00, 0x00, //0x00000380 leaq $393(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00000387 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000038a movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x0000038e movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x00000390 movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00000393 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00000398 jmp LBB0_25 + //0x0000039d LBB0_22 + 0x89, 0xd0, //0x0000039d movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000039f shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000003a2 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000003a8 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000003ab cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000003b1 ja LBB0_24 + 0x83, 0xc0, 0x30, //0x000003b7 addl $48, %eax + 0x88, 0x07, //0x000003ba movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x000003bc movzwl %dx, %eax + 0x89, 0xc1, //0x000003bf movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x000003c1 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000003c4 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000003ca shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x000003cd imull $100, %ecx, %ecx + 0x29, 0xc8, //0x000003d0 subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x000003d2 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x34, 0x01, 0x00, 0x00, //0x000003d5 leaq $308(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000003dc movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000003df movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000003e3 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000003e6 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000003e9 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000003ee jmp LBB0_25 + //0x000003f3 LBB0_24 + 0x6b, 0xc8, 0x64, //0x000003f3 imull $100, %eax, %ecx + 0x29, 0xca, //0x000003f6 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x000003f8 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0x0e, 0x01, 0x00, 0x00, //0x000003fb leaq $270(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00000402 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00000406 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x0000040b movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000040d movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x00000410 movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x00000413 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x00000417 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x0000041a movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x0000041d orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x00000420 movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x00000423 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x00000427 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x0000042a movl $4, %ecx + //0x0000042f LBB0_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000042f movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00000439 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000043c mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x0000043f shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x00000443 vmovd %edx, %xmm0 + 0xc5, 0xfa, 0x6f, 0x0d, 0xb1, 0xfb, 0xff, 0xff, //0x00000447 vmovdqu $-1103(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000044f vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00000453 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000458 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000045d vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00000462 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00000466 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x0000046a vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000046e vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00000473 vpshuflw $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00000478 vpbroadcastq $-1105(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00000481 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc2, //0x00000486 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xa5, 0xfb, 0xff, 0xff, //0x0000048a vpbroadcastq $-1115(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x00000493 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xfa, 0x6f, 0x2d, 0x71, 0xfb, 0xff, 0xff, //0x00000497 vmovdqu $-1167(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x0000049f vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000004a3 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000004a8 vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000004ac imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000004b2 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000004b4 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000004b8 vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000004bc vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000004c1 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000004c5 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000004c9 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000004cd vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000004d2 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000004d7 vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000004dc vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000004e0 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000004e4 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000004e8 vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000004ed vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000004f1 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x23, 0xfb, 0xff, 0xff, //0x000004f5 vpaddb $-1245(%rip), %xmm0, %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x000004fd movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x000004ff vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00000504 orl $16, %ecx + 0x89, 0xc8, //0x00000507 movl %ecx, %eax + 0x5d, //0x00000509 popq %rbp + 0xc3, //0x0000050a retq + 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000050b .p2align 4, 0x00 + //0x00000510 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000510 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000520 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000530 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000540 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000550 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000560 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000570 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000580 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000590 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000005a0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000005b0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000005c0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x000005d0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005d8 .p2align 4, 0x00 + //0x000005e0 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x000005e0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x000005f0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000600 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000610 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000620 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000630 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000640 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000650 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000660 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote.go new file mode 100644 index 000000000..e4c9e410c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + +var S_unquote uintptr + +//go:nosplit +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return F_unquote(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(ep)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_subr.go new file mode 100644 index 000000000..5c3055d89 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__unquote = 48 +) + +const ( + _stack__unquote = 72 +) + +const ( + _size__unquote = 2464 +) + +var ( + _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}, + } +) + +var _cfunc_unquote = []loader.CFunc{ + {"_unquote_entry", 0, _entry__unquote, 0, nil}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_text_amd64.go new file mode 100644 index 000000000..5dc8396a3 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/unquote_text_amd64.go @@ -0,0 +1,676 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_unquote = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, // QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 .p2align 4, 0x00 + //0x00000020 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 .p2align 4, 0x90 + //0x00000030 _unquote + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000003d subq $24, %rsp + 0x48, 0x85, 0xf6, //0x00000041 testq %rsi, %rsi + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000044 je LBB0_2 + 0x48, 0x89, 0x4d, 0xd0, //0x0000004a movq %rcx, $-48(%rbp) + 0x45, 0x89, 0xc2, //0x0000004e movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00000051 andl $1, %r10d + 0xc5, 0xfe, 0x6f, 0x0d, 0xa3, 0xff, 0xff, 0xff, //0x00000055 vmovdqu $-93(%rip), %ymm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xbb, 0xff, 0xff, 0xff, //0x0000005d vmovdqu $-69(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x49, 0x89, 0xf9, //0x00000065 movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x00000068 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x0000006b movq %rdx, %rax + 0xe9, 0x59, 0x00, 0x00, 0x00, //0x0000006e jmp LBB0_8 + //0x00000073 LBB0_2 + 0x45, 0x31, 0xed, //0x00000073 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x00000076 movq %rdx, %rax + //0x00000079 LBB0_3 + 0x4c, 0x01, 0xe8, //0x00000079 addq %r13, %rax + 0x48, 0x29, 0xd0, //0x0000007c subq %rdx, %rax + //0x0000007f LBB0_4 + 0x48, 0x83, 0xc4, 0x18, //0x0000007f addq $24, %rsp + 0x5b, //0x00000083 popq %rbx + 0x41, 0x5c, //0x00000084 popq %r12 + 0x41, 0x5d, //0x00000086 popq %r13 + 0x41, 0x5e, //0x00000088 popq %r14 + 0x41, 0x5f, //0x0000008a popq %r15 + 0x5d, //0x0000008c popq %rbp + 0xc5, 0xf8, 0x77, //0x0000008d vzeroupper + 0xc3, //0x00000090 retq + //0x00000091 LBB0_5 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00000091 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00000096 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00000099 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x0000009c orb $-64, %cl + 0x88, 0x08, //0x0000009f movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x000000a1 andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x000000a5 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x000000a9 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x000000ad addq $2, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000b1 .p2align 4, 0x90 + //0x000000c0 LBB0_6 + 0x4d, 0x89, 0xf5, //0x000000c0 movq %r14, %r13 + //0x000000c3 LBB0_7 + 0x4d, 0x85, 0xed, //0x000000c3 testq %r13, %r13 + 0x0f, 0x84, 0x9d, 0x07, 0x00, 0x00, //0x000000c6 je LBB0_101 + //0x000000cc LBB0_8 + 0x41, 0x80, 0x39, 0x5c, //0x000000cc cmpb $92, (%r9) + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x000000d0 jne LBB0_10 + 0x31, 0xdb, //0x000000d6 xorl %ebx, %ebx + 0xe9, 0x43, 0x01, 0x00, 0x00, //0x000000d8 jmp LBB0_24 + 0x90, 0x90, 0x90, //0x000000dd .p2align 4, 0x90 + //0x000000e0 LBB0_10 + 0x4d, 0x89, 0xec, //0x000000e0 movq %r13, %r12 + 0x49, 0x89, 0xc7, //0x000000e3 movq %rax, %r15 + 0x4d, 0x89, 0xce, //0x000000e6 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x20, //0x000000e9 cmpq $32, %r13 + 0x0f, 0x8c, 0x3e, 0x00, 0x00, 0x00, //0x000000ed jl LBB0_14 + 0x4d, 0x89, 0xce, //0x000000f3 movq %r9, %r14 + 0x49, 0x89, 0xc7, //0x000000f6 movq %rax, %r15 + 0x4d, 0x89, 0xec, //0x000000f9 movq %r13, %r12 + 0x90, 0x90, 0x90, 0x90, //0x000000fc .p2align 4, 0x90 + //0x00000100 LBB0_12 + 0xc4, 0xc1, 0x7e, 0x6f, 0x06, //0x00000100 vmovdqu (%r14), %ymm0 + 0xc4, 0xc1, 0x7e, 0x7f, 0x07, //0x00000105 vmovdqu %ymm0, (%r15) + 0xc5, 0xfd, 0x74, 0xc1, //0x0000010a vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x0000010e vpmovmskb %ymm0, %ebx + 0x85, 0xdb, //0x00000112 testl %ebx, %ebx + 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00000114 jne LBB0_22 + 0x49, 0x83, 0xc6, 0x20, //0x0000011a addq $32, %r14 + 0x49, 0x83, 0xc7, 0x20, //0x0000011e addq $32, %r15 + 0x49, 0x83, 0xfc, 0x3f, //0x00000122 cmpq $63, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xe0, //0x00000126 leaq $-32(%r12), %r12 + 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x0000012b jg LBB0_12 + //0x00000131 LBB0_14 + 0xc5, 0xf8, 0x77, //0x00000131 vzeroupper + 0xc5, 0xfa, 0x6f, 0x15, 0xe4, 0xfe, 0xff, 0xff, //0x00000134 vmovdqu $-284(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x49, 0x83, 0xfc, 0x10, //0x0000013c cmpq $16, %r12 + 0x0f, 0x8c, 0x3c, 0x00, 0x00, 0x00, //0x00000140 jl LBB0_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000146 .p2align 4, 0x90 + //0x00000150 LBB0_15 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00000150 vmovdqu (%r14), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x07, //0x00000155 vmovdqu %xmm0, (%r15) + 0xc5, 0xf9, 0x74, 0xc2, //0x0000015a vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x0000015e vpmovmskb %xmm0, %ebx + 0x66, 0x85, 0xdb, //0x00000162 testw %bx, %bx + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00000165 jne LBB0_23 + 0x49, 0x83, 0xc6, 0x10, //0x0000016b addq $16, %r14 + 0x49, 0x83, 0xc7, 0x10, //0x0000016f addq $16, %r15 + 0x49, 0x83, 0xfc, 0x1f, //0x00000173 cmpq $31, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xf0, //0x00000177 leaq $-16(%r12), %r12 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000017c jg LBB0_15 + //0x00000182 LBB0_17 + 0x4d, 0x85, 0xe4, //0x00000182 testq %r12, %r12 + 0x0f, 0x84, 0xee, 0xfe, 0xff, 0xff, //0x00000185 je LBB0_3 + 0x31, 0xdb, //0x0000018b xorl %ebx, %ebx + 0xc5, 0xfe, 0x6f, 0x0d, 0x6b, 0xfe, 0xff, 0xff, //0x0000018d vmovdqu $-405(%rip), %ymm1 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000195 .p2align 4, 0x90 + //0x000001a0 LBB0_19 + 0x45, 0x0f, 0xb6, 0x1c, 0x1e, //0x000001a0 movzbl (%r14,%rbx), %r11d + 0x41, 0x80, 0xfb, 0x5c, //0x000001a5 cmpb $92, %r11b + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000001a9 je LBB0_21 + 0x45, 0x88, 0x1c, 0x1f, //0x000001af movb %r11b, (%r15,%rbx) + 0x48, 0xff, 0xc3, //0x000001b3 incq %rbx + 0x49, 0x39, 0xdc, //0x000001b6 cmpq %rbx, %r12 + 0x0f, 0x85, 0xe1, 0xff, 0xff, 0xff, //0x000001b9 jne LBB0_19 + 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x000001bf jmp LBB0_3 + //0x000001c4 LBB0_21 + 0x49, 0x01, 0xde, //0x000001c4 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x000001c7 subq %r9, %r14 + 0x4c, 0x89, 0xf3, //0x000001ca movq %r14, %rbx + 0x48, 0x83, 0xfb, 0xff, //0x000001cd cmpq $-1, %rbx + 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x000001d1 jne LBB0_24 + 0xe9, 0x9d, 0xfe, 0xff, 0xff, //0x000001d7 jmp LBB0_3 + //0x000001dc LBB0_22 + 0x48, 0x63, 0xdb, //0x000001dc movslq %ebx, %rbx + 0x4d, 0x29, 0xce, //0x000001df subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xdb, //0x000001e2 bsfq %rbx, %rbx + 0x4c, 0x01, 0xf3, //0x000001e6 addq %r14, %rbx + 0x48, 0x83, 0xfb, 0xff, //0x000001e9 cmpq $-1, %rbx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x000001ed jne LBB0_24 + 0xe9, 0x81, 0xfe, 0xff, 0xff, //0x000001f3 jmp LBB0_3 + //0x000001f8 LBB0_23 + 0x0f, 0xb7, 0xdb, //0x000001f8 movzwl %bx, %ebx + 0x4d, 0x29, 0xce, //0x000001fb subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xdb, //0x000001fe bsfq %rbx, %rbx + 0x4c, 0x01, 0xf3, //0x00000202 addq %r14, %rbx + 0xc5, 0xfe, 0x6f, 0x0d, 0xf3, 0xfd, 0xff, 0xff, //0x00000205 vmovdqu $-525(%rip), %ymm1 /* LCPI0_0+0(%rip) */ + 0x48, 0x83, 0xfb, 0xff, //0x0000020d cmpq $-1, %rbx + 0x0f, 0x84, 0x62, 0xfe, 0xff, 0xff, //0x00000211 je LBB0_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000217 .p2align 4, 0x90 + //0x00000220 LBB0_24 + 0x48, 0x8d, 0x4b, 0x02, //0x00000220 leaq $2(%rbx), %rcx + 0x49, 0x29, 0xcd, //0x00000224 subq %rcx, %r13 + 0x0f, 0x88, 0x10, 0x06, 0x00, 0x00, //0x00000227 js LBB0_99 + 0x4d, 0x8d, 0x4c, 0x19, 0x02, //0x0000022d leaq $2(%r9,%rbx), %r9 + 0x4d, 0x85, 0xd2, //0x00000232 testq %r10, %r10 + 0x0f, 0x85, 0x09, 0x04, 0x00, 0x00, //0x00000235 jne LBB0_67 + //0x0000023b LBB0_26 + 0x48, 0x01, 0xd8, //0x0000023b addq %rbx, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x0000023e movzbl $-1(%r9), %ecx + 0x48, 0x8d, 0x1d, 0x86, 0x07, 0x00, 0x00, //0x00000243 leaq $1926(%rip), %rbx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x1c, 0x19, //0x0000024a movb (%rcx,%rbx), %bl + 0x80, 0xfb, 0xff, //0x0000024d cmpb $-1, %bl + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000250 je LBB0_29 + 0x84, 0xdb, //0x00000256 testb %bl, %bl + 0x0f, 0x84, 0xf2, 0x05, 0x00, 0x00, //0x00000258 je LBB0_100 + 0x88, 0x18, //0x0000025e movb %bl, (%rax) + 0x48, 0xff, 0xc0, //0x00000260 incq %rax + 0xe9, 0x5b, 0xfe, 0xff, 0xff, //0x00000263 jmp LBB0_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000268 .p2align 4, 0x90 + //0x00000270 LBB0_29 + 0x49, 0x83, 0xfd, 0x03, //0x00000270 cmpq $3, %r13 + 0x0f, 0x8e, 0xc3, 0x05, 0x00, 0x00, //0x00000274 jle LBB0_99 + 0x45, 0x8b, 0x31, //0x0000027a movl (%r9), %r14d + 0x45, 0x89, 0xf7, //0x0000027d movl %r14d, %r15d + 0x41, 0xf7, 0xd7, //0x00000280 notl %r15d + 0x41, 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000283 leal $-808464432(%r14), %ecx + 0x41, 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000028a andl $-2139062144, %r15d + 0x41, 0x85, 0xcf, //0x00000291 testl %ecx, %r15d + 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00000294 jne LBB0_90 + 0x41, 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000029a leal $421075225(%r14), %ecx + 0x44, 0x09, 0xf1, //0x000002a1 orl %r14d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000002a4 testl $-2139062144, %ecx + 0x0f, 0x85, 0xd1, 0x04, 0x00, 0x00, //0x000002aa jne LBB0_90 + 0x44, 0x89, 0xf3, //0x000002b0 movl %r14d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000002b3 andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000002b9 movl $-1061109568, %ecx + 0x29, 0xd9, //0x000002be subl %ebx, %ecx + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x000002c0 leal $1179010630(%rbx), %r11d + 0x44, 0x21, 0xf9, //0x000002c7 andl %r15d, %ecx + 0x44, 0x85, 0xd9, //0x000002ca testl %r11d, %ecx + 0x0f, 0x85, 0xae, 0x04, 0x00, 0x00, //0x000002cd jne LBB0_90 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000002d3 movl $-522133280, %ecx + 0x29, 0xd9, //0x000002d8 subl %ebx, %ecx + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x000002da addl $960051513, %ebx + 0x41, 0x21, 0xcf, //0x000002e0 andl %ecx, %r15d + 0x41, 0x85, 0xdf, //0x000002e3 testl %ebx, %r15d + 0x0f, 0x85, 0x95, 0x04, 0x00, 0x00, //0x000002e6 jne LBB0_90 + 0x41, 0x0f, 0xce, //0x000002ec bswapl %r14d + 0x44, 0x89, 0xf1, //0x000002ef movl %r14d, %ecx + 0xc1, 0xe9, 0x04, //0x000002f2 shrl $4, %ecx + 0xf7, 0xd1, //0x000002f5 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000002f7 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000002fd leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000300 andl $252645135, %r14d + 0x41, 0x01, 0xce, //0x00000307 addl %ecx, %r14d + 0x44, 0x89, 0xf1, //0x0000030a movl %r14d, %ecx + 0xc1, 0xe9, 0x04, //0x0000030d shrl $4, %ecx + 0x44, 0x09, 0xf1, //0x00000310 orl %r14d, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00000313 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x00000317 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000031a andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00000320 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00000323 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00000327 cmpl $128, %r15d + 0x0f, 0x82, 0x61, 0x03, 0x00, 0x00, //0x0000032e jb LBB0_75 + 0x45, 0x31, 0xe4, //0x00000334 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x00000337 testq %r10, %r10 + 0x0f, 0x84, 0x70, 0x01, 0x00, 0x00, //0x0000033a je LBB0_51 + //0x00000340 LBB0_36 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00000340 cmpl $2048, %r15d + 0x0f, 0x82, 0x44, 0xfd, 0xff, 0xff, //0x00000347 jb LBB0_5 + 0x44, 0x89, 0xf9, //0x0000034d movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00000350 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00000356 cmpl $55296, %ecx + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x0000035c jne LBB0_65 + 0x4d, 0x85, 0xf6, //0x00000362 testq %r14, %r14 + 0x0f, 0x8e, 0x61, 0x03, 0x00, 0x00, //0x00000365 jle LBB0_80 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x0000036b cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x00000371 jne LBB0_81 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00000377 cmpl $56319, %r15d + 0x0f, 0x87, 0x2a, 0x03, 0x00, 0x00, //0x0000037e ja LBB0_78 + 0x49, 0x83, 0xfe, 0x07, //0x00000384 cmpq $7, %r14 + 0x0f, 0x8c, 0x20, 0x03, 0x00, 0x00, //0x00000388 jl LBB0_78 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x0000038e cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x14, 0x03, 0x00, 0x00, //0x00000394 jne LBB0_78 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x0000039a cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x08, 0x03, 0x00, 0x00, //0x000003a0 jne LBB0_78 + 0x47, 0x8b, 0x5c, 0x21, 0x07, //0x000003a6 movl $7(%r9,%r12), %r11d + 0x44, 0x89, 0xdb, //0x000003ab movl %r11d, %ebx + 0xf7, 0xd3, //0x000003ae notl %ebx + 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x000003b0 leal $-808464432(%r11), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000003b7 andl $-2139062144, %ebx + 0x89, 0x5d, 0xcc, //0x000003bd movl %ebx, $-52(%rbp) + 0x85, 0xcb, //0x000003c0 testl %ecx, %ebx + 0x0f, 0x85, 0xbe, 0x04, 0x00, 0x00, //0x000003c2 jne LBB0_104 + 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x000003c8 leal $421075225(%r11), %ecx + 0x44, 0x09, 0xd9, //0x000003cf orl %r11d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000003d2 testl $-2139062144, %ecx + 0x0f, 0x85, 0xa8, 0x04, 0x00, 0x00, //0x000003d8 jne LBB0_104 + 0x44, 0x89, 0xdb, //0x000003de movl %r11d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000003e1 andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000003e7 movl $-1061109568, %ecx + 0x29, 0xd9, //0x000003ec subl %ebx, %ecx + 0x4c, 0x89, 0x5d, 0xc0, //0x000003ee movq %r11, $-64(%rbp) + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x000003f2 leal $1179010630(%rbx), %r11d + 0x23, 0x4d, 0xcc, //0x000003f9 andl $-52(%rbp), %ecx + 0x44, 0x85, 0xd9, //0x000003fc testl %r11d, %ecx + 0x4c, 0x8b, 0x5d, 0xc0, //0x000003ff movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x7d, 0x04, 0x00, 0x00, //0x00000403 jne LBB0_104 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000409 movl $-522133280, %ecx + 0x29, 0xd9, //0x0000040e subl %ebx, %ecx + 0x89, 0x4d, 0xc8, //0x00000410 movl %ecx, $-56(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00000413 addl $960051513, %ebx + 0x8b, 0x4d, 0xcc, //0x00000419 movl $-52(%rbp), %ecx + 0x23, 0x4d, 0xc8, //0x0000041c andl $-56(%rbp), %ecx + 0x85, 0xd9, //0x0000041f testl %ebx, %ecx + 0x0f, 0x85, 0x5f, 0x04, 0x00, 0x00, //0x00000421 jne LBB0_104 + 0x41, 0x0f, 0xcb, //0x00000427 bswapl %r11d + 0x44, 0x89, 0xd9, //0x0000042a movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x0000042d shrl $4, %ecx + 0xf7, 0xd1, //0x00000430 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000432 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000438 leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000043b andl $252645135, %r11d + 0x41, 0x01, 0xcb, //0x00000442 addl %ecx, %r11d + 0x44, 0x89, 0xd9, //0x00000445 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x00000448 shrl $4, %ecx + 0x44, 0x09, 0xd9, //0x0000044b orl %r11d, %ecx + 0x89, 0xcb, //0x0000044e movl %ecx, %ebx + 0xc1, 0xeb, 0x08, //0x00000450 shrl $8, %ebx + 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x00000453 andl $65280, %ebx + 0x44, 0x0f, 0xb6, 0xd9, //0x00000459 movzbl %cl, %r11d + 0x41, 0x09, 0xdb, //0x0000045d orl %ebx, %r11d + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00000460 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00000466 cmpl $14417920, %ecx + 0x0f, 0x84, 0x97, 0x02, 0x00, 0x00, //0x0000046c je LBB0_85 + 0x41, 0xf6, 0xc0, 0x02, //0x00000472 testb $2, %r8b + 0x0f, 0x84, 0x1d, 0x05, 0x00, 0x00, //0x00000476 je LBB0_119 + 0x49, 0x83, 0xc6, 0xf9, //0x0000047c addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00000480 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x00000485 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00000489 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x0000048d addq $7, %r12 + 0x45, 0x89, 0xdf, //0x00000491 movl %r11d, %r15d + 0x41, 0x83, 0xfb, 0x7f, //0x00000494 cmpl $127, %r11d + 0x0f, 0x87, 0xa2, 0xfe, 0xff, 0xff, //0x00000498 ja LBB0_36 + 0xe9, 0x59, 0x01, 0x00, 0x00, //0x0000049e jmp LBB0_64 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004a3 .p2align 4, 0x90 + //0x000004b0 LBB0_51 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x000004b0 cmpl $2048, %r15d + 0x0f, 0x82, 0xd4, 0xfb, 0xff, 0xff, //0x000004b7 jb LBB0_5 + 0x44, 0x89, 0xf9, //0x000004bd movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x000004c0 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x000004c6 cmpl $55296, %ecx + 0x0f, 0x85, 0x3e, 0x01, 0x00, 0x00, //0x000004cc jne LBB0_65 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x000004d2 cmpl $56319, %r15d + 0x0f, 0x87, 0xc5, 0x01, 0x00, 0x00, //0x000004d9 ja LBB0_77 + 0x49, 0x83, 0xfe, 0x06, //0x000004df cmpq $6, %r14 + 0x0f, 0x8c, 0xbb, 0x01, 0x00, 0x00, //0x000004e3 jl LBB0_77 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x000004e9 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x000004ef jne LBB0_77 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x000004f5 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xa3, 0x01, 0x00, 0x00, //0x000004fb jne LBB0_77 + 0x47, 0x8b, 0x5c, 0x21, 0x06, //0x00000501 movl $6(%r9,%r12), %r11d + 0x44, 0x89, 0xdb, //0x00000506 movl %r11d, %ebx + 0xf7, 0xd3, //0x00000509 notl %ebx + 0x41, 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000050b leal $-808464432(%r11), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00000512 andl $-2139062144, %ebx + 0x89, 0x5d, 0xcc, //0x00000518 movl %ebx, $-52(%rbp) + 0x85, 0xcb, //0x0000051b testl %ecx, %ebx + 0x0f, 0x85, 0x59, 0x03, 0x00, 0x00, //0x0000051d jne LBB0_103 + 0x41, 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00000523 leal $421075225(%r11), %ecx + 0x44, 0x09, 0xd9, //0x0000052a orl %r11d, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000052d testl $-2139062144, %ecx + 0x0f, 0x85, 0x43, 0x03, 0x00, 0x00, //0x00000533 jne LBB0_103 + 0x44, 0x89, 0xdb, //0x00000539 movl %r11d, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000053c andl $2139062143, %ebx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000542 movl $-1061109568, %ecx + 0x29, 0xd9, //0x00000547 subl %ebx, %ecx + 0x4c, 0x89, 0x5d, 0xc0, //0x00000549 movq %r11, $-64(%rbp) + 0x44, 0x8d, 0x9b, 0x46, 0x46, 0x46, 0x46, //0x0000054d leal $1179010630(%rbx), %r11d + 0x23, 0x4d, 0xcc, //0x00000554 andl $-52(%rbp), %ecx + 0x44, 0x85, 0xd9, //0x00000557 testl %r11d, %ecx + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000055a movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x18, 0x03, 0x00, 0x00, //0x0000055e jne LBB0_103 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000564 movl $-522133280, %ecx + 0x29, 0xd9, //0x00000569 subl %ebx, %ecx + 0x89, 0x4d, 0xc8, //0x0000056b movl %ecx, $-56(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000056e addl $960051513, %ebx + 0x8b, 0x4d, 0xcc, //0x00000574 movl $-52(%rbp), %ecx + 0x23, 0x4d, 0xc8, //0x00000577 andl $-56(%rbp), %ecx + 0x85, 0xd9, //0x0000057a testl %ebx, %ecx + 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x0000057c jne LBB0_103 + 0x41, 0x0f, 0xcb, //0x00000582 bswapl %r11d + 0x44, 0x89, 0xd9, //0x00000585 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x00000588 shrl $4, %ecx + 0xf7, 0xd1, //0x0000058b notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000058d andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000593 leal (%rcx,%rcx,8), %ecx + 0x41, 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000596 andl $252645135, %r11d + 0x41, 0x01, 0xcb, //0x0000059d addl %ecx, %r11d + 0x44, 0x89, 0xd9, //0x000005a0 movl %r11d, %ecx + 0xc1, 0xe9, 0x04, //0x000005a3 shrl $4, %ecx + 0x44, 0x09, 0xd9, //0x000005a6 orl %r11d, %ecx + 0x89, 0xcb, //0x000005a9 movl %ecx, %ebx + 0xc1, 0xeb, 0x08, //0x000005ab shrl $8, %ebx + 0x81, 0xe3, 0x00, 0xff, 0x00, 0x00, //0x000005ae andl $65280, %ebx + 0x44, 0x0f, 0xb6, 0xd9, //0x000005b4 movzbl %cl, %r11d + 0x41, 0x09, 0xdb, //0x000005b8 orl %ebx, %r11d + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x000005bb andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000005c1 cmpl $14417920, %ecx + 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x000005c7 je LBB0_84 + 0x41, 0xf6, 0xc0, 0x02, //0x000005cd testb $2, %r8b + 0x0f, 0x84, 0xb8, 0x03, 0x00, 0x00, //0x000005d1 je LBB0_118 + 0x49, 0x83, 0xc6, 0xfa, //0x000005d7 addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000005db movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000005e0 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x000005e4 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x000005e8 addq $6, %r12 + 0x45, 0x89, 0xdf, //0x000005ec movl %r11d, %r15d + 0x41, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000005ef cmpl $128, %r11d + 0x0f, 0x83, 0xb4, 0xfe, 0xff, 0xff, //0x000005f6 jae LBB0_51 + //0x000005fc LBB0_64 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000005fc leaq $4(%r9,%r12), %r9 + 0x45, 0x89, 0xdf, //0x00000601 movl %r11d, %r15d + 0xe9, 0x90, 0x00, 0x00, 0x00, //0x00000604 jmp LBB0_76 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000609 .p2align 4, 0x90 + //0x00000610 LBB0_65 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00000610 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00000615 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x00000618 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x0000061b orb $-32, %cl + 0x88, 0x08, //0x0000061e movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00000620 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00000623 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00000626 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000629 orb $-128, %cl + 0x88, 0x48, 0x01, //0x0000062c movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x0000062f andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00000633 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00000637 movb %r15b, $2(%rax) + //0x0000063b LBB0_66 + 0x48, 0x83, 0xc0, 0x03, //0x0000063b addq $3, %rax + 0xe9, 0x7c, 0xfa, 0xff, 0xff, //0x0000063f jmp LBB0_6 + //0x00000644 LBB0_67 + 0x45, 0x85, 0xed, //0x00000644 testl %r13d, %r13d + 0x0f, 0x84, 0xf0, 0x01, 0x00, 0x00, //0x00000647 je LBB0_99 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x0000064d cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x00000652 jne LBB0_102 + 0x41, 0x80, 0x39, 0x5c, //0x00000658 cmpb $92, (%r9) + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x0000065c jne LBB0_74 + 0x41, 0x83, 0xfd, 0x01, //0x00000662 cmpl $1, %r13d + 0x0f, 0x8e, 0xd1, 0x01, 0x00, 0x00, //0x00000666 jle LBB0_99 + 0x45, 0x8a, 0x59, 0x01, //0x0000066c movb $1(%r9), %r11b + 0x41, 0x80, 0xfb, 0x22, //0x00000670 cmpb $34, %r11b + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00000674 je LBB0_73 + 0x41, 0x80, 0xfb, 0x5c, //0x0000067a cmpb $92, %r11b + 0x0f, 0x85, 0xd8, 0x02, 0x00, 0x00, //0x0000067e jne LBB0_114 + //0x00000684 LBB0_73 + 0x49, 0xff, 0xc1, //0x00000684 incq %r9 + 0x49, 0xff, 0xcd, //0x00000687 decq %r13 + //0x0000068a LBB0_74 + 0x49, 0xff, 0xc1, //0x0000068a incq %r9 + 0x49, 0xff, 0xcd, //0x0000068d decq %r13 + 0xe9, 0xa6, 0xfb, 0xff, 0xff, //0x00000690 jmp LBB0_26 + //0x00000695 LBB0_75 + 0x49, 0x83, 0xc1, 0x04, //0x00000695 addq $4, %r9 + //0x00000699 LBB0_76 + 0x44, 0x88, 0x38, //0x00000699 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x0000069c incq %rax + 0xe9, 0x1c, 0xfa, 0xff, 0xff, //0x0000069f jmp LBB0_6 + //0x000006a4 LBB0_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000006a4 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000006a9 jmp LBB0_79 + //0x000006ae LBB0_78 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x000006ae leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x000006b3 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x000006b6 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x000006ba movq %r13, %r14 + //0x000006bd LBB0_79 + 0x41, 0xf6, 0xc0, 0x02, //0x000006bd testb $2, %r8b + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000006c1 jne LBB0_83 + 0xe9, 0xec, 0x02, 0x00, 0x00, //0x000006c7 jmp LBB0_121 + //0x000006cc LBB0_80 + 0x41, 0xf6, 0xc0, 0x02, //0x000006cc testb $2, %r8b + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000006d0 jne LBB0_82 + 0xe9, 0x62, 0x01, 0x00, 0x00, //0x000006d6 jmp LBB0_99 + //0x000006db LBB0_81 + 0x41, 0xf6, 0xc0, 0x02, //0x000006db testb $2, %r8b + 0x0f, 0x84, 0xe0, 0x02, 0x00, 0x00, //0x000006df je LBB0_122 + //0x000006e5 LBB0_82 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000006e5 leaq $4(%r9,%r12), %r9 + //0x000006ea LBB0_83 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000006ea movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000006ef movb $-67, $2(%rax) + 0xe9, 0x43, 0xff, 0xff, 0xff, //0x000006f3 jmp LBB0_66 + //0x000006f8 LBB0_84 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x000006f8 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x000006fd subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x00000700 addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00000704 jmp LBB0_86 + //0x00000709 LBB0_85 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00000709 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000070e subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00000711 addq $-11, %r13 + //0x00000715 LBB0_86 + 0x41, 0xc1, 0xe7, 0x0a, //0x00000715 shll $10, %r15d + 0x43, 0x8d, 0x9c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00000719 leal $-56613888(%r15,%r11), %ebx + 0x81, 0xfb, 0x00, 0x00, 0x11, 0x00, //0x00000721 cmpl $1114112, %ebx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00000727 jb LBB0_89 + 0x41, 0xf6, 0xc0, 0x02, //0x0000072d testb $2, %r8b + 0x0f, 0x84, 0x3e, 0x02, 0x00, 0x00, //0x00000731 je LBB0_116 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00000737 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000073c movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00000740 addq $3, %rax + 0xe9, 0x7a, 0xf9, 0xff, 0xff, //0x00000744 jmp LBB0_7 + //0x00000749 LBB0_89 + 0x89, 0xd9, //0x00000749 movl %ebx, %ecx + 0xc1, 0xe9, 0x12, //0x0000074b shrl $18, %ecx + 0x80, 0xc9, 0xf0, //0x0000074e orb $-16, %cl + 0x88, 0x08, //0x00000751 movb %cl, (%rax) + 0x89, 0xd9, //0x00000753 movl %ebx, %ecx + 0xc1, 0xe9, 0x0c, //0x00000755 shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x00000758 andb $63, %cl + 0x80, 0xc9, 0x80, //0x0000075b orb $-128, %cl + 0x88, 0x48, 0x01, //0x0000075e movb %cl, $1(%rax) + 0x89, 0xd9, //0x00000761 movl %ebx, %ecx + 0xc1, 0xe9, 0x06, //0x00000763 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00000766 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000769 orb $-128, %cl + 0x88, 0x48, 0x02, //0x0000076c movb %cl, $2(%rax) + 0x80, 0xe3, 0x3f, //0x0000076f andb $63, %bl + 0x80, 0xcb, 0x80, //0x00000772 orb $-128, %bl + 0x88, 0x58, 0x03, //0x00000775 movb %bl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x00000778 addq $4, %rax + 0xe9, 0x42, 0xf9, 0xff, 0xff, //0x0000077c jmp LBB0_7 + //0x00000781 LBB0_90 + 0x4c, 0x89, 0xca, //0x00000781 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x00000784 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000787 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x17, //0x0000078b movq %rdx, (%rdi) + 0x41, 0x8a, 0x31, //0x0000078e movb (%r9), %sil + 0x8d, 0x4e, 0xd0, //0x00000791 leal $-48(%rsi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000794 movq $-2, %rax + 0x80, 0xf9, 0x0a, //0x0000079b cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000079e jb LBB0_92 + 0x40, 0x80, 0xe6, 0xdf, //0x000007a4 andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000007a8 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000007ac cmpb $5, %sil + 0x0f, 0x87, 0xc9, 0xf8, 0xff, 0xff, //0x000007b0 ja LBB0_4 + //0x000007b6 LBB0_92 + 0x48, 0x8d, 0x4a, 0x01, //0x000007b6 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000007ba movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x01, //0x000007bd movb $1(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x000007c1 leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x000007c4 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007c7 jb LBB0_94 + 0x40, 0x80, 0xe6, 0xdf, //0x000007cd andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000007d1 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000007d5 cmpb $5, %sil + 0x0f, 0x87, 0xa0, 0xf8, 0xff, 0xff, //0x000007d9 ja LBB0_4 + //0x000007df LBB0_94 + 0x48, 0x8d, 0x4a, 0x02, //0x000007df leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000007e3 movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x02, //0x000007e6 movb $2(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x000007ea leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x000007ed cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007f0 jb LBB0_96 + 0x40, 0x80, 0xe6, 0xdf, //0x000007f6 andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x000007fa addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x000007fe cmpb $5, %sil + 0x0f, 0x87, 0x77, 0xf8, 0xff, 0xff, //0x00000802 ja LBB0_4 + //0x00000808 LBB0_96 + 0x48, 0x8d, 0x4a, 0x03, //0x00000808 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000080c movq %rcx, (%rdi) + 0x41, 0x8a, 0x71, 0x03, //0x0000080f movb $3(%r9), %sil + 0x8d, 0x4e, 0xd0, //0x00000813 leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x00000816 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000819 jb LBB0_98 + 0x40, 0x80, 0xe6, 0xdf, //0x0000081f andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x00000823 addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x00000827 cmpb $5, %sil + 0x0f, 0x87, 0x4e, 0xf8, 0xff, 0xff, //0x0000082b ja LBB0_4 + //0x00000831 LBB0_98 + 0x48, 0x83, 0xc2, 0x04, //0x00000831 addq $4, %rdx + 0x48, 0x89, 0x17, //0x00000835 movq %rdx, (%rdi) + 0xe9, 0x42, 0xf8, 0xff, 0xff, //0x00000838 jmp LBB0_4 + //0x0000083d LBB0_99 + 0x48, 0x8b, 0x45, 0xd0, //0x0000083d movq $-48(%rbp), %rax + 0x48, 0x89, 0x30, //0x00000841 movq %rsi, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000844 movq $-1, %rax + 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x0000084b jmp LBB0_4 + //0x00000850 LBB0_100 + 0x48, 0xf7, 0xd7, //0x00000850 notq %rdi + 0x49, 0x01, 0xf9, //0x00000853 addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x00000856 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000085a movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x0000085d movq $-3, %rax + 0xe9, 0x16, 0xf8, 0xff, 0xff, //0x00000864 jmp LBB0_4 + //0x00000869 LBB0_101 + 0x45, 0x31, 0xed, //0x00000869 xorl %r13d, %r13d + 0xe9, 0x08, 0xf8, 0xff, 0xff, //0x0000086c jmp LBB0_3 + //0x00000871 LBB0_102 + 0x48, 0xf7, 0xd7, //0x00000871 notq %rdi + 0x49, 0x01, 0xf9, //0x00000874 addq %rdi, %r9 + 0xe9, 0xe6, 0x00, 0x00, 0x00, //0x00000877 jmp LBB0_115 + //0x0000087c LBB0_103 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x0000087c leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000881 jmp LBB0_105 + //0x00000886 LBB0_104 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00000886 leaq $5(%r9,%r12), %rsi + //0x0000088b LBB0_105 + 0x48, 0x89, 0xf2, //0x0000088b movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x0000088e subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x00000891 addq $2, %rdx + 0x48, 0x8b, 0x45, 0xd0, //0x00000895 movq $-48(%rbp), %rax + 0x48, 0x89, 0x10, //0x00000899 movq %rdx, (%rax) + 0x40, 0x8a, 0x7e, 0x02, //0x0000089c movb $2(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x000008a0 leal $-48(%rdi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000008a3 movq $-2, %rax + 0x80, 0xf9, 0x0a, //0x000008aa cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000008ad jb LBB0_107 + 0x40, 0x80, 0xe7, 0xdf, //0x000008b3 andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x000008b7 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x000008bb cmpb $5, %dil + 0x0f, 0x87, 0xba, 0xf7, 0xff, 0xff, //0x000008bf ja LBB0_4 + //0x000008c5 LBB0_107 + 0x48, 0x8d, 0x4a, 0x01, //0x000008c5 leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x000008c9 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000008cd movq %rcx, (%rdi) + 0x40, 0x8a, 0x7e, 0x03, //0x000008d0 movb $3(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x000008d4 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x000008d7 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000008da jb LBB0_109 + 0x40, 0x80, 0xe7, 0xdf, //0x000008e0 andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x000008e4 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x000008e8 cmpb $5, %dil + 0x0f, 0x87, 0x8d, 0xf7, 0xff, 0xff, //0x000008ec ja LBB0_4 + //0x000008f2 LBB0_109 + 0x48, 0x8d, 0x4a, 0x02, //0x000008f2 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x000008f6 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000008fa movq %rcx, (%rdi) + 0x40, 0x8a, 0x7e, 0x04, //0x000008fd movb $4(%rsi), %dil + 0x8d, 0x4f, 0xd0, //0x00000901 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00000904 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000907 jb LBB0_111 + 0x40, 0x80, 0xe7, 0xdf, //0x0000090d andb $-33, %dil + 0x40, 0x80, 0xc7, 0xbf, //0x00000911 addb $-65, %dil + 0x40, 0x80, 0xff, 0x05, //0x00000915 cmpb $5, %dil + 0x0f, 0x87, 0x60, 0xf7, 0xff, 0xff, //0x00000919 ja LBB0_4 + //0x0000091f LBB0_111 + 0x48, 0x8d, 0x4a, 0x03, //0x0000091f leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000923 movq $-48(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00000927 movq %rcx, (%rdi) + 0x40, 0x8a, 0x76, 0x05, //0x0000092a movb $5(%rsi), %sil + 0x8d, 0x4e, 0xd0, //0x0000092e leal $-48(%rsi), %ecx + 0x80, 0xf9, 0x0a, //0x00000931 cmpb $10, %cl + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000934 jb LBB0_113 + 0x40, 0x80, 0xe6, 0xdf, //0x0000093a andb $-33, %sil + 0x40, 0x80, 0xc6, 0xbf, //0x0000093e addb $-65, %sil + 0x40, 0x80, 0xfe, 0x05, //0x00000942 cmpb $5, %sil + 0x0f, 0x87, 0x33, 0xf7, 0xff, 0xff, //0x00000946 ja LBB0_4 + //0x0000094c LBB0_113 + 0x48, 0x83, 0xc2, 0x04, //0x0000094c addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xd0, //0x00000950 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00000954 movq %rdx, (%rcx) + 0xe9, 0x23, 0xf7, 0xff, 0xff, //0x00000957 jmp LBB0_4 + //0x0000095c LBB0_114 + 0x49, 0x29, 0xf9, //0x0000095c subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000095f incq %r9 + //0x00000962 LBB0_115 + 0x48, 0x8b, 0x45, 0xd0, //0x00000962 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00000966 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000969 movq $-2, %rax + 0xe9, 0x0a, 0xf7, 0xff, 0xff, //0x00000970 jmp LBB0_4 + //0x00000975 LBB0_116 + 0x49, 0x29, 0xf9, //0x00000975 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00000978 addq $-4, %r9 + //0x0000097c LBB0_117 + 0x48, 0x8b, 0x45, 0xd0, //0x0000097c movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00000980 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00000983 movq $-4, %rax + 0xe9, 0xf0, 0xf6, 0xff, 0xff, //0x0000098a jmp LBB0_4 + //0x0000098f LBB0_118 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000098f leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000994 jmp LBB0_120 + //0x00000999 LBB0_119 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00000999 leaq $11(%r9,%r12), %rax + //0x0000099e LBB0_120 + 0x48, 0x29, 0xf8, //0x0000099e subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000009a1 addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x000009a5 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000009a9 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x000009ac movq $-4, %rax + 0xe9, 0xc7, 0xf6, 0xff, 0xff, //0x000009b3 jmp LBB0_4 + //0x000009b8 LBB0_121 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x000009b8 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x000009bd subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x000009c0 jmp LBB0_117 + //0x000009c5 LBB0_122 + 0x4d, 0x01, 0xe1, //0x000009c5 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x000009c8 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x000009cb jmp LBB0_117 + //0x000009d0 .p2align 4, 0x00 + //0x000009d0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x000009f0 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00000a20 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00000a30 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00000a40 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000aa6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ab6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ac6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one.go new file mode 100644 index 000000000..2ca6d8331 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_validate_one uintptr + +//go:nosplit +func validate_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_subr.go new file mode 100644 index 000000000..bd1ffcdb0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_one = 432 +) + +const ( + _stack__validate_one = 120 +) + +const ( + _size__validate_one = 10328 +) + +var ( + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9772, 120}, + {9776, 48}, + {9777, 40}, + {9779, 32}, + {9781, 24}, + {9783, 16}, + {9785, 8}, + {9789, 0}, + {10328, 120}, + } +) + +var _cfunc_validate_one = []loader.CFunc{ + {"_validate_one_entry", 0, _entry__validate_one, 0, nil}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_text_amd64.go new file mode 100644 index 000000000..77adf90aa --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_one_text_amd64.go @@ -0,0 +1,3079 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_validate_one = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, // .byte 32 + 0x00, //0x00000001 .byte 0 + 0x00, //0x00000002 .byte 0 + 0x00, //0x00000003 .byte 0 + 0x00, //0x00000004 .byte 0 + 0x00, //0x00000005 .byte 0 + 0x00, //0x00000006 .byte 0 + 0x00, //0x00000007 .byte 0 + 0x00, //0x00000008 .byte 0 + 0x09, //0x00000009 .byte 9 + 0x0a, //0x0000000a .byte 10 + 0x00, //0x0000000b .byte 0 + 0x00, //0x0000000c .byte 0 + 0x0d, //0x0000000d .byte 13 + 0x00, //0x0000000e .byte 0 + 0x00, //0x0000000f .byte 0 + 0x20, //0x00000010 .byte 32 + 0x00, //0x00000011 .byte 0 + 0x00, //0x00000012 .byte 0 + 0x00, //0x00000013 .byte 0 + 0x00, //0x00000014 .byte 0 + 0x00, //0x00000015 .byte 0 + 0x00, //0x00000016 .byte 0 + 0x00, //0x00000017 .byte 0 + 0x00, //0x00000018 .byte 0 + 0x09, //0x00000019 .byte 9 + 0x0a, //0x0000001a .byte 10 + 0x00, //0x0000001b .byte 0 + 0x00, //0x0000001c .byte 0 + 0x0d, //0x0000001d .byte 13 + 0x00, //0x0000001e .byte 0 + 0x00, //0x0000001f .byte 0 + //0x00000020 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000020 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000050 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000060 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000060 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000070 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000080 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000080 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000090 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x000000a0 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000a0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000b0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x000000c0 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000c0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000d0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x000000e0 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000e0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000f0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000100 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000100 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000110 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000120 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000120 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000130 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000140 .p2align 4, 0x00 + //0x00000140 LCPI0_10 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000140 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000150 LCPI0_11 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000150 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000160 LCPI0_12 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000160 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000170 LCPI0_13 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000170 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000180 LCPI0_14 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000180 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000190 LCPI0_15 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000190 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000001a0 LCPI0_16 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001a0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000001b0 .p2align 4, 0x90 + //0x000001b0 _validate_one + 0x55, //0x000001b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000001b1 movq %rsp, %rbp + 0x41, 0x57, //0x000001b4 pushq %r15 + 0x41, 0x56, //0x000001b6 pushq %r14 + 0x41, 0x55, //0x000001b8 pushq %r13 + 0x41, 0x54, //0x000001ba pushq %r12 + 0x53, //0x000001bc pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x000001bd subq $72, %rsp + 0x48, 0x89, 0x4d, 0x98, //0x000001c1 movq %rcx, $-104(%rbp) + 0x49, 0x89, 0xd6, //0x000001c5 movq %rdx, %r14 + 0x49, 0x89, 0xf2, //0x000001c8 movq %rsi, %r10 + 0x48, 0x89, 0x7d, 0xb0, //0x000001cb movq %rdi, $-80(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000001cf movl $1, %r8d + 0xc4, 0xc1, 0xf9, 0x6e, 0xc0, //0x000001d5 vmovq %r8, %xmm0 + 0xc5, 0xfa, 0x7f, 0x02, //0x000001da vmovdqu %xmm0, (%rdx) + 0x4c, 0x8b, 0x26, //0x000001de movq (%rsi), %r12 + 0x48, 0xc7, 0x45, 0x90, 0xff, 0xff, 0xff, 0xff, //0x000001e1 movq $-1, $-112(%rbp) + 0xc5, 0xfe, 0x6f, 0x2d, 0x0f, 0xfe, 0xff, 0xff, //0x000001e9 vmovdqu $-497(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x27, 0xfe, 0xff, 0xff, //0x000001f1 vmovdqu $-473(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x3f, 0xfe, 0xff, 0xff, //0x000001f9 vmovdqu $-449(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x57, 0xfe, 0xff, 0xff, //0x00000201 vmovdqu $-425(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00000209 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x6a, 0xfe, 0xff, 0xff, //0x0000020e vmovdqu $-406(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x82, 0xfe, 0xff, 0xff, //0x00000216 vmovdqu $-382(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x9a, 0xfe, 0xff, 0xff, //0x0000021e vmovdqu $-358(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xb2, 0xfe, 0xff, 0xff, //0x00000226 vmovdqu $-334(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xca, 0xfe, 0xff, 0xff, //0x0000022e vmovdqu $-310(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xe2, 0xfe, 0xff, 0xff, //0x00000236 vmovdqu $-286(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x48, 0x89, 0x75, 0xd0, //0x0000023e movq %rsi, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc8, //0x00000242 movq %rdx, $-56(%rbp) + 0xe9, 0x65, 0x00, 0x00, 0x00, //0x00000246 jmp LBB0_5 + //0x0000024b LBB0_72 + 0x4c, 0x89, 0xe1, //0x0000024b movq %r12, %rcx + //0x0000024e LBB0_199 + 0x4c, 0x89, 0xe0, //0x0000024e movq %r12, %rax + 0x4e, 0x8d, 0x64, 0x31, 0xff, //0x00000251 leaq $-1(%rcx,%r14), %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000256 movq $-48(%rbp), %r10 + 0x4d, 0x89, 0x22, //0x0000025a movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x0000025d movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x00000260 testq %rax, %rax + 0x4c, 0x8b, 0x75, 0xc8, //0x00000263 movq $-56(%rbp), %r14 + 0x0f, 0x8e, 0x6c, 0x25, 0x00, 0x00, //0x00000267 jle LBB0_501 + 0x90, 0x90, 0x90, //0x0000026d .p2align 4, 0x90 + //0x00000270 LBB0_3 + 0x49, 0x8b, 0x16, //0x00000270 movq (%r14), %rdx + 0x49, 0x89, 0xd0, //0x00000273 movq %rdx, %r8 + 0x48, 0x8b, 0x4d, 0x90, //0x00000276 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x0000027a testq %rdx, %rdx + 0x0f, 0x85, 0x2d, 0x00, 0x00, 0x00, //0x0000027d jne LBB0_5 + 0xe9, 0x51, 0x25, 0x00, 0x00, //0x00000283 jmp LBB0_501 + //0x00000288 LBB0_1 + 0x4c, 0x89, 0xe0, //0x00000288 movq %r12, %rax + 0x4d, 0x8d, 0x65, 0x04, //0x0000028b leaq $4(%r13), %r12 + 0x4d, 0x89, 0x22, //0x0000028f movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00000292 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x00000295 testq %rax, %rax + 0x0f, 0x8f, 0xd2, 0xff, 0xff, 0xff, //0x00000298 jg LBB0_3 + 0xe9, 0x36, 0x25, 0x00, 0x00, //0x0000029e jmp LBB0_501 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002a3 .p2align 4, 0x90 + //0x000002b0 LBB0_5 + 0x48, 0x8b, 0x45, 0xb0, //0x000002b0 movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x000002b4 movq (%rax), %r9 + 0x48, 0x8b, 0x48, 0x08, //0x000002b7 movq $8(%rax), %rcx + 0x49, 0x39, 0xcc, //0x000002bb cmpq %rcx, %r12 + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x000002be jae LBB0_10 + 0x43, 0x8a, 0x04, 0x21, //0x000002c4 movb (%r9,%r12), %al + 0x3c, 0x0d, //0x000002c8 cmpb $13, %al + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000002ca je LBB0_10 + 0x3c, 0x20, //0x000002d0 cmpb $32, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000002d2 je LBB0_10 + 0x04, 0xf7, //0x000002d8 addb $-9, %al + 0x3c, 0x01, //0x000002da cmpb $1, %al + 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x000002dc jbe LBB0_10 + 0x4d, 0x89, 0xe5, //0x000002e2 movq %r12, %r13 + 0xe9, 0x8e, 0x01, 0x00, 0x00, //0x000002e5 jmp LBB0_36 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002ea .p2align 4, 0x90 + //0x000002f0 LBB0_10 + 0x4d, 0x8d, 0x6c, 0x24, 0x01, //0x000002f0 leaq $1(%r12), %r13 + 0x49, 0x39, 0xcd, //0x000002f5 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000002f8 jae LBB0_14 + 0x43, 0x8a, 0x14, 0x29, //0x000002fe movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000302 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000305 je LBB0_14 + 0x80, 0xfa, 0x20, //0x0000030b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000030e je LBB0_14 + 0x80, 0xc2, 0xf7, //0x00000314 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000317 cmpb $1, %dl + 0x0f, 0x87, 0x58, 0x01, 0x00, 0x00, //0x0000031a ja LBB0_36 + //0x00000320 .p2align 4, 0x90 + //0x00000320 LBB0_14 + 0x4d, 0x8d, 0x6c, 0x24, 0x02, //0x00000320 leaq $2(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000325 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000328 jae LBB0_18 + 0x43, 0x8a, 0x14, 0x29, //0x0000032e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000332 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000335 je LBB0_18 + 0x80, 0xfa, 0x20, //0x0000033b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000033e je LBB0_18 + 0x80, 0xc2, 0xf7, //0x00000344 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000347 cmpb $1, %dl + 0x0f, 0x87, 0x28, 0x01, 0x00, 0x00, //0x0000034a ja LBB0_36 + //0x00000350 .p2align 4, 0x90 + //0x00000350 LBB0_18 + 0x4d, 0x8d, 0x6c, 0x24, 0x03, //0x00000350 leaq $3(%r12), %r13 + 0x49, 0x39, 0xcd, //0x00000355 cmpq %rcx, %r13 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000358 jae LBB0_22 + 0x43, 0x8a, 0x14, 0x29, //0x0000035e movb (%r9,%r13), %dl + 0x80, 0xfa, 0x0d, //0x00000362 cmpb $13, %dl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000365 je LBB0_22 + 0x80, 0xfa, 0x20, //0x0000036b cmpb $32, %dl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000036e je LBB0_22 + 0x80, 0xc2, 0xf7, //0x00000374 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000377 cmpb $1, %dl + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x0000037a ja LBB0_36 + //0x00000380 .p2align 4, 0x90 + //0x00000380 LBB0_22 + 0x4d, 0x8d, 0x6c, 0x24, 0x04, //0x00000380 leaq $4(%r12), %r13 + 0x48, 0x89, 0xca, //0x00000385 movq %rcx, %rdx + 0x4c, 0x29, 0xea, //0x00000388 subq %r13, %rdx + 0x0f, 0x86, 0xd2, 0x23, 0x00, 0x00, //0x0000038b jbe LBB0_473 + 0x4d, 0x01, 0xcd, //0x00000391 addq %r9, %r13 + 0x48, 0x83, 0xfa, 0x20, //0x00000394 cmpq $32, %rdx + 0x0f, 0x82, 0x56, 0x00, 0x00, 0x00, //0x00000398 jb LBB0_28 + 0x48, 0x89, 0xce, //0x0000039e movq %rcx, %rsi + 0x4c, 0x29, 0xe6, //0x000003a1 subq %r12, %rsi + 0x48, 0x83, 0xc6, 0xdc, //0x000003a4 addq $-36, %rsi + 0x48, 0x89, 0xf7, //0x000003a8 movq %rsi, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x000003ab andq $-32, %rdi + 0x4c, 0x01, 0xe7, //0x000003af addq %r12, %rdi + 0x49, 0x8d, 0x7c, 0x39, 0x24, //0x000003b2 leaq $36(%r9,%rdi), %rdi + 0x83, 0xe6, 0x1f, //0x000003b7 andl $31, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003ba .p2align 4, 0x90 + //0x000003c0 LBB0_25 + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x000003c0 vmovdqu (%r13), %ymm0 + 0xc4, 0xe2, 0x55, 0x00, 0xc8, //0x000003c6 vpshufb %ymm0, %ymm5, %ymm1 + 0xc5, 0xfd, 0x74, 0xc1, //0x000003cb vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x000003cf vpmovmskb %ymm0, %ebx + 0x83, 0xfb, 0xff, //0x000003d3 cmpl $-1, %ebx + 0x0f, 0x85, 0x84, 0x00, 0x00, 0x00, //0x000003d6 jne LBB0_35 + 0x49, 0x83, 0xc5, 0x20, //0x000003dc addq $32, %r13 + 0x48, 0x83, 0xc2, 0xe0, //0x000003e0 addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x1f, //0x000003e4 cmpq $31, %rdx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000003e8 ja LBB0_25 + 0x48, 0x89, 0xf2, //0x000003ee movq %rsi, %rdx + 0x49, 0x89, 0xfd, //0x000003f1 movq %rdi, %r13 + //0x000003f4 LBB0_28 + 0x48, 0x85, 0xd2, //0x000003f4 testq %rdx, %rdx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x000003f7 je LBB0_34 + 0x49, 0x8d, 0x74, 0x15, 0x00, //0x000003fd leaq (%r13,%rdx), %rsi + 0x49, 0xff, 0xc5, //0x00000402 incq %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000405 .p2align 4, 0x90 + //0x00000410 LBB0_30 + 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00000410 movsbl $-1(%r13), %edi + 0x83, 0xff, 0x20, //0x00000415 cmpl $32, %edi + 0x0f, 0x87, 0x09, 0x11, 0x00, 0x00, //0x00000418 ja LBB0_268 + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000041e movabsq $4294977024, %rax + 0x48, 0x0f, 0xa3, 0xf8, //0x00000428 btq %rdi, %rax + 0x0f, 0x83, 0xf5, 0x10, 0x00, 0x00, //0x0000042c jae LBB0_268 + 0x48, 0xff, 0xca, //0x00000432 decq %rdx + 0x49, 0xff, 0xc5, //0x00000435 incq %r13 + 0x48, 0x85, 0xd2, //0x00000438 testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x0000043b jne LBB0_30 + 0x49, 0x89, 0xf5, //0x00000441 movq %rsi, %r13 + //0x00000444 LBB0_34 + 0x4d, 0x29, 0xcd, //0x00000444 subq %r9, %r13 + 0x49, 0x39, 0xcd, //0x00000447 cmpq %rcx, %r13 + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x0000044a jb LBB0_36 + 0xe9, 0x11, 0x23, 0x00, 0x00, //0x00000450 jmp LBB0_474 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000455 .p2align 4, 0x90 + //0x00000460 LBB0_35 + 0x4d, 0x29, 0xcd, //0x00000460 subq %r9, %r13 + 0xf7, 0xd3, //0x00000463 notl %ebx + 0x48, 0x63, 0xd3, //0x00000465 movslq %ebx, %rdx + 0x48, 0x0f, 0xbc, 0xd2, //0x00000468 bsfq %rdx, %rdx + 0x49, 0x01, 0xd5, //0x0000046c addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x0000046f cmpq %rcx, %r13 + 0x0f, 0x83, 0xee, 0x22, 0x00, 0x00, //0x00000472 jae LBB0_474 + //0x00000478 LBB0_36 + 0x4d, 0x8d, 0x65, 0x01, //0x00000478 leaq $1(%r13), %r12 + 0x4d, 0x89, 0x22, //0x0000047c movq %r12, (%r10) + 0x43, 0x0f, 0xbe, 0x3c, 0x29, //0x0000047f movsbl (%r9,%r13), %edi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000484 movq $-1, %rcx + 0x85, 0xff, //0x0000048b testl %edi, %edi + 0x0f, 0x84, 0x46, 0x23, 0x00, 0x00, //0x0000048d je LBB0_501 + 0x4c, 0x89, 0xee, //0x00000493 movq %r13, %rsi + 0x48, 0xf7, 0xd6, //0x00000496 notq %rsi + 0x49, 0x8d, 0x50, 0xff, //0x00000499 leaq $-1(%r8), %rdx + 0x43, 0x8b, 0x1c, 0xc6, //0x0000049d movl (%r14,%r8,8), %ebx + 0x48, 0x8b, 0x45, 0x90, //0x000004a1 movq $-112(%rbp), %rax + 0x48, 0x83, 0xf8, 0xff, //0x000004a5 cmpq $-1, %rax + 0x49, 0x0f, 0x44, 0xc5, //0x000004a9 cmoveq %r13, %rax + 0x48, 0x89, 0x45, 0x90, //0x000004ad movq %rax, $-112(%rbp) + 0xff, 0xcb, //0x000004b1 decl %ebx + 0x83, 0xfb, 0x05, //0x000004b3 cmpl $5, %ebx + 0x0f, 0x87, 0x0d, 0x02, 0x00, 0x00, //0x000004b6 ja LBB0_67 + 0x48, 0x8d, 0x05, 0x45, 0x25, 0x00, 0x00, //0x000004bc leaq $9541(%rip), %rax /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x98, //0x000004c3 movslq (%rax,%rbx,4), %rbx + 0x48, 0x01, 0xc3, //0x000004c7 addq %rax, %rbx + 0xff, 0xe3, //0x000004ca jmpq *%rbx + //0x000004cc LBB0_39 + 0x83, 0xff, 0x2c, //0x000004cc cmpl $44, %edi + 0x0f, 0x84, 0x01, 0x06, 0x00, 0x00, //0x000004cf je LBB0_73 + 0x83, 0xff, 0x5d, //0x000004d5 cmpl $93, %edi + 0x0f, 0x84, 0xd3, 0x01, 0x00, 0x00, //0x000004d8 je LBB0_41 + 0xe9, 0xef, 0x22, 0x00, 0x00, //0x000004de jmp LBB0_500 + //0x000004e3 LBB0_42 + 0x40, 0x80, 0xff, 0x5d, //0x000004e3 cmpb $93, %dil + 0x0f, 0x84, 0xc4, 0x01, 0x00, 0x00, //0x000004e7 je LBB0_41 + 0x4b, 0xc7, 0x04, 0xc6, 0x01, 0x00, 0x00, 0x00, //0x000004ed movq $1, (%r14,%r8,8) + 0x83, 0xff, 0x7b, //0x000004f5 cmpl $123, %edi + 0x0f, 0x86, 0xd7, 0x01, 0x00, 0x00, //0x000004f8 jbe LBB0_68 + 0xe9, 0xcf, 0x22, 0x00, 0x00, //0x000004fe jmp LBB0_500 + //0x00000503 LBB0_44 + 0x40, 0x80, 0xff, 0x22, //0x00000503 cmpb $34, %dil + 0x0f, 0x85, 0xc5, 0x22, 0x00, 0x00, //0x00000507 jne LBB0_500 + 0x4b, 0xc7, 0x04, 0xc6, 0x04, 0x00, 0x00, 0x00, //0x0000050d movq $4, (%r14,%r8,8) + 0x48, 0x8b, 0x45, 0xb0, //0x00000515 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x00000519 movq $8(%rax), %rdx + 0xf6, 0x45, 0x98, 0x20, //0x0000051d testb $32, $-104(%rbp) + 0x4c, 0x89, 0x65, 0xa8, //0x00000521 movq %r12, $-88(%rbp) + 0x48, 0x89, 0x55, 0xb8, //0x00000525 movq %rdx, $-72(%rbp) + 0x0f, 0x85, 0xc9, 0x05, 0x00, 0x00, //0x00000529 jne LBB0_75 + 0x48, 0x89, 0xd1, //0x0000052f movq %rdx, %rcx + 0x4c, 0x29, 0xe1, //0x00000532 subq %r12, %rcx + 0x0f, 0x84, 0x34, 0x24, 0x00, 0x00, //0x00000535 je LBB0_507 + 0x4b, 0x8d, 0x1c, 0x21, //0x0000053b leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x0000053f cmpq $64, %rcx + 0x0f, 0x82, 0xea, 0x18, 0x00, 0x00, //0x00000543 jb LBB0_356 + 0x41, 0x89, 0xcf, //0x00000549 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x0000054c andl $63, %r15d + 0x48, 0x8d, 0x54, 0x32, 0xc0, //0x00000550 leaq $-64(%rdx,%rsi), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x00000555 andq $-64, %rdx + 0x4c, 0x01, 0xe2, //0x00000559 addq %r12, %rdx + 0x4d, 0x89, 0xcb, //0x0000055c movq %r9, %r11 + 0x4d, 0x8d, 0x4c, 0x11, 0x40, //0x0000055f leaq $64(%r9,%rdx), %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000564 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x0000056b xorl %r14d, %r14d + 0x90, 0x90, //0x0000056e .p2align 4, 0x90 + //0x00000570 LBB0_49 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000570 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000574 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000579 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x0000057d vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000581 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000585 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000589 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000058d vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00000591 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00000595 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00000599 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x0000059d shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000005a1 orq %rax, %rsi + 0x49, 0x83, 0xf8, 0xff, //0x000005a4 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000005a8 jne LBB0_51 + 0x48, 0x85, 0xf6, //0x000005ae testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005b1 jne LBB0_58 + //0x000005b7 LBB0_51 + 0x48, 0x09, 0xfa, //0x000005b7 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000005ba movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000005bd orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000005c0 jne LBB0_59 + //0x000005c6 LBB0_52 + 0x48, 0x85, 0xd2, //0x000005c6 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x000005c9 jne LBB0_60 + //0x000005cf LBB0_53 + 0x48, 0x83, 0xc1, 0xc0, //0x000005cf addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x000005d3 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x000005d7 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x000005db ja LBB0_49 + 0xe9, 0x83, 0x14, 0x00, 0x00, //0x000005e1 jmp LBB0_54 + //0x000005e6 LBB0_58 + 0x48, 0x89, 0xd8, //0x000005e6 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x000005e9 subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xc6, //0x000005ec bsfq %rsi, %r8 + 0x49, 0x01, 0xc0, //0x000005f0 addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x000005f3 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000005f6 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000005f9 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x000005fc je LBB0_52 + //0x00000602 LBB0_59 + 0x4c, 0x89, 0xf0, //0x00000602 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000605 notq %rax + 0x48, 0x21, 0xf0, //0x00000608 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x0000060b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x0000060f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00000612 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00000615 notq %rdi + 0x48, 0x21, 0xf7, //0x00000618 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000061b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000625 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00000628 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x0000062b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000062e setb %r14b + 0x48, 0x01, 0xff, //0x00000632 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000635 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000063f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00000642 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000645 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00000649 notq %rdi + 0x48, 0x21, 0xfa, //0x0000064c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x0000064f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000652 je LBB0_53 + 0xe9, 0x4d, 0x14, 0x00, 0x00, //0x00000658 jmp LBB0_60 + //0x0000065d LBB0_61 + 0x40, 0x80, 0xff, 0x3a, //0x0000065d cmpb $58, %dil + 0x0f, 0x85, 0x6b, 0x21, 0x00, 0x00, //0x00000661 jne LBB0_500 + 0x4b, 0xc7, 0x04, 0xc6, 0x00, 0x00, 0x00, 0x00, //0x00000667 movq $0, (%r14,%r8,8) + 0xe9, 0xfc, 0xfb, 0xff, 0xff, //0x0000066f jmp LBB0_3 + //0x00000674 LBB0_63 + 0x83, 0xff, 0x2c, //0x00000674 cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00000677 jne LBB0_64 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x0000067d cmpq $4095, %r8 + 0x0f, 0x8f, 0xe8, 0x20, 0x00, 0x00, //0x00000684 jg LBB0_489 + 0x49, 0x8d, 0x40, 0x01, //0x0000068a leaq $1(%r8), %rax + 0x49, 0x89, 0x06, //0x0000068e movq %rax, (%r14) + 0x4b, 0xc7, 0x44, 0xc6, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00000691 movq $3, $8(%r14,%r8,8) + 0xe9, 0xd1, 0xfb, 0xff, 0xff, //0x0000069a jmp LBB0_3 + //0x0000069f LBB0_65 + 0x83, 0xff, 0x22, //0x0000069f cmpl $34, %edi + 0x0f, 0x84, 0xb7, 0x05, 0x00, 0x00, //0x000006a2 je LBB0_92 + //0x000006a8 LBB0_64 + 0x83, 0xff, 0x7d, //0x000006a8 cmpl $125, %edi + 0x0f, 0x85, 0x21, 0x21, 0x00, 0x00, //0x000006ab jne LBB0_500 + //0x000006b1 LBB0_41 + 0x49, 0x89, 0x16, //0x000006b1 movq %rdx, (%r14) + 0x49, 0x89, 0xd0, //0x000006b4 movq %rdx, %r8 + 0x48, 0x8b, 0x4d, 0x90, //0x000006b7 movq $-112(%rbp), %rcx + 0x48, 0x85, 0xd2, //0x000006bb testq %rdx, %rdx + 0x0f, 0x85, 0xec, 0xfb, 0xff, 0xff, //0x000006be jne LBB0_5 + 0xe9, 0x10, 0x21, 0x00, 0x00, //0x000006c4 jmp LBB0_501 + //0x000006c9 LBB0_67 + 0x49, 0x89, 0x16, //0x000006c9 movq %rdx, (%r14) + 0x83, 0xff, 0x7b, //0x000006cc cmpl $123, %edi + 0x0f, 0x87, 0xfd, 0x20, 0x00, 0x00, //0x000006cf ja LBB0_500 + //0x000006d5 LBB0_68 + 0x4f, 0x8d, 0x3c, 0x29, //0x000006d5 leaq (%r9,%r13), %r15 + 0x89, 0xf8, //0x000006d9 movl %edi, %eax + 0x48, 0x8d, 0x15, 0x3e, 0x23, 0x00, 0x00, //0x000006db leaq $9022(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000006e2 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000006e6 addq %rdx, %rax + 0xff, 0xe0, //0x000006e9 jmpq *%rax + //0x000006eb LBB0_69 + 0x48, 0x8b, 0x45, 0xb0, //0x000006eb movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000006ef movq $8(%rax), %r10 + 0x4d, 0x29, 0xea, //0x000006f3 subq %r13, %r10 + 0x0f, 0x84, 0x9c, 0x20, 0x00, 0x00, //0x000006f6 je LBB0_477 + 0x41, 0x80, 0x3f, 0x30, //0x000006fc cmpb $48, (%r15) + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x00000700 jne LBB0_132 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00000706 movl $1, %r14d + 0x49, 0x83, 0xfa, 0x01, //0x0000070c cmpq $1, %r10 + 0x0f, 0x84, 0x35, 0xfb, 0xff, 0xff, //0x00000710 je LBB0_72 + 0x43, 0x8a, 0x0c, 0x21, //0x00000716 movb (%r9,%r12), %cl + 0x80, 0xc1, 0xd2, //0x0000071a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000071d cmpb $55, %cl + 0x0f, 0x87, 0x25, 0xfb, 0xff, 0xff, //0x00000720 ja LBB0_72 + 0x0f, 0xb6, 0xc1, //0x00000726 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000729 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000733 btq %rax, %rcx + 0x4c, 0x89, 0xe1, //0x00000737 movq %r12, %rcx + 0x0f, 0x83, 0x0e, 0xfb, 0xff, 0xff, //0x0000073a jae LBB0_199 + //0x00000740 LBB0_132 + 0x4c, 0x89, 0x65, 0xa8, //0x00000740 movq %r12, $-88(%rbp) + 0x49, 0x83, 0xfa, 0x20, //0x00000744 cmpq $32, %r10 + 0x0f, 0x82, 0xbe, 0x16, 0x00, 0x00, //0x00000748 jb LBB0_355 + 0x49, 0x8d, 0x4a, 0xe0, //0x0000074e leaq $-32(%r10), %rcx + 0x48, 0x89, 0xc8, //0x00000752 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00000755 andq $-32, %rax + 0x4e, 0x8d, 0x74, 0x38, 0x20, //0x00000759 leaq $32(%rax,%r15), %r14 + 0x83, 0xe1, 0x1f, //0x0000075e andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00000761 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000765 movq $-1, %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000076c movq $-1, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000773 movq $-1, %rax + 0x4d, 0x89, 0xfb, //0x0000077a movq %r15, %r11 + 0x90, 0x90, 0x90, //0x0000077d .p2align 4, 0x90 + //0x00000780 LBB0_134 + 0xc4, 0xc1, 0x7e, 0x6f, 0x03, //0x00000780 vmovdqu (%r11), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x00000785 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x0000078a vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x0000078e vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x00000792 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x00000796 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x0000079a vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x0000079e vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000007a2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000007a6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000007aa vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000007ae vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000007b2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000007b6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000007ba vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000007be vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000007c2 vpmovmskb %ymm0, %ecx + 0x48, 0xf7, 0xd1, //0x000007c6 notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000007c9 bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x000007cd cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000007d0 je LBB0_136 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000007d6 movl $-1, %ebx + 0xd3, 0xe3, //0x000007db shll %cl, %ebx + 0xf7, 0xd3, //0x000007dd notl %ebx + 0x21, 0xdf, //0x000007df andl %ebx, %edi + 0x21, 0xda, //0x000007e1 andl %ebx, %edx + 0x21, 0xf3, //0x000007e3 andl %esi, %ebx + 0x89, 0xde, //0x000007e5 movl %ebx, %esi + //0x000007e7 LBB0_136 + 0x44, 0x8d, 0x4f, 0xff, //0x000007e7 leal $-1(%rdi), %r9d + 0x41, 0x21, 0xf9, //0x000007eb andl %edi, %r9d + 0x0f, 0x85, 0xab, 0x13, 0x00, 0x00, //0x000007ee jne LBB0_345 + 0x8d, 0x5a, 0xff, //0x000007f4 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000007f7 andl %edx, %ebx + 0x0f, 0x85, 0x5e, 0x12, 0x00, 0x00, //0x000007f9 jne LBB0_339 + 0x8d, 0x5e, 0xff, //0x000007ff leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00000802 andl %esi, %ebx + 0x0f, 0x85, 0x53, 0x12, 0x00, 0x00, //0x00000804 jne LBB0_339 + 0x85, 0xff, //0x0000080a testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000080c je LBB0_142 + 0x4c, 0x89, 0xdb, //0x00000812 movq %r11, %rbx + 0x4c, 0x29, 0xfb, //0x00000815 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x00000818 bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x0000081b addq %rbx, %rdi + 0x48, 0x83, 0xf8, 0xff, //0x0000081e cmpq $-1, %rax + 0x0f, 0x85, 0x8d, 0x13, 0x00, 0x00, //0x00000822 jne LBB0_347 + 0x48, 0x89, 0xf8, //0x00000828 movq %rdi, %rax + //0x0000082b LBB0_142 + 0x85, 0xd2, //0x0000082b testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000082d je LBB0_145 + 0x4c, 0x89, 0xdf, //0x00000833 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000836 subq %r15, %rdi + 0x0f, 0xbc, 0xd2, //0x00000839 bsfl %edx, %edx + 0x48, 0x01, 0xfa, //0x0000083c addq %rdi, %rdx + 0x49, 0x83, 0xfc, 0xff, //0x0000083f cmpq $-1, %r12 + 0x0f, 0x85, 0xf1, 0x12, 0x00, 0x00, //0x00000843 jne LBB0_340 + 0x49, 0x89, 0xd4, //0x00000849 movq %rdx, %r12 + //0x0000084c LBB0_145 + 0x85, 0xf6, //0x0000084c testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000084e je LBB0_148 + 0x4c, 0x89, 0xdf, //0x00000854 movq %r11, %rdi + 0x4c, 0x29, 0xff, //0x00000857 subq %r15, %rdi + 0x0f, 0xbc, 0xd6, //0x0000085a bsfl %esi, %edx + 0x48, 0x01, 0xfa, //0x0000085d addq %rdi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000860 cmpq $-1, %r8 + 0x0f, 0x85, 0xd0, 0x12, 0x00, 0x00, //0x00000864 jne LBB0_340 + 0x49, 0x89, 0xd0, //0x0000086a movq %rdx, %r8 + //0x0000086d LBB0_148 + 0x83, 0xf9, 0x20, //0x0000086d cmpl $32, %ecx + 0x0f, 0x85, 0x51, 0x05, 0x00, 0x00, //0x00000870 jne LBB0_180 + 0x49, 0x83, 0xc3, 0x20, //0x00000876 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x0000087a addq $-32, %r10 + 0x49, 0x83, 0xfa, 0x1f, //0x0000087e cmpq $31, %r10 + 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00000882 ja LBB0_134 + 0xc5, 0xf8, 0x77, //0x00000888 vzeroupper + 0xc5, 0x7e, 0x6f, 0x3d, 0x8d, 0xf8, 0xff, 0xff, //0x0000088b vmovdqu $-1907(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x65, 0xf8, 0xff, 0xff, //0x00000893 vmovdqu $-1947(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x3d, 0xf8, 0xff, 0xff, //0x0000089b vmovdqu $-1987(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x15, 0xf8, 0xff, 0xff, //0x000008a3 vmovdqu $-2027(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xed, 0xf7, 0xff, 0xff, //0x000008ab vmovdqu $-2067(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xc5, 0xf7, 0xff, 0xff, //0x000008b3 vmovdqu $-2107(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000008bb vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x05, 0x98, 0xf7, 0xff, 0xff, //0x000008c0 vmovdqu $-2152(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x70, 0xf7, 0xff, 0xff, //0x000008c8 vmovdqu $-2192(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x48, 0xf7, 0xff, 0xff, //0x000008d0 vmovdqu $-2232(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x20, 0xf7, 0xff, 0xff, //0x000008d8 vmovdqu $-2272(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0x4c, 0x8b, 0x55, 0xc0, //0x000008e0 movq $-64(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x10, //0x000008e4 cmpq $16, %r10 + 0x0f, 0x82, 0x52, 0x01, 0x00, 0x00, //0x000008e8 jb LBB0_169 + //0x000008ee LBB0_151 + 0x4d, 0x8d, 0x4a, 0xf0, //0x000008ee leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc9, //0x000008f2 movq %r9, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x000008f5 andq $-16, %rcx + 0x4e, 0x8d, 0x5c, 0x31, 0x10, //0x000008f9 leaq $16(%rcx,%r14), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x000008fe andl $15, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000902 .p2align 4, 0x90 + //0x00000910 LBB0_152 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00000910 vmovdqu (%r14), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x23, 0xf8, 0xff, 0xff, //0x00000915 vpcmpgtb $-2013(%rip), %xmm0, %xmm1 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0x2b, 0xf8, 0xff, 0xff, //0x0000091d vmovdqu $-2005(%rip), %xmm2 /* LCPI0_11+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00000925 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00000929 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0x2b, 0xf8, 0xff, 0xff, //0x0000092d vpcmpeqb $-2005(%rip), %xmm0, %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0x33, 0xf8, 0xff, 0xff, //0x00000935 vpcmpeqb $-1997(%rip), %xmm0, %xmm3 /* LCPI0_13+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000093d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0x37, 0xf8, 0xff, 0xff, //0x00000941 vpor $-1993(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0x3f, 0xf8, 0xff, 0xff, //0x00000949 vpcmpeqb $-1985(%rip), %xmm0, %xmm0 /* LCPI0_15+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x47, 0xf8, 0xff, 0xff, //0x00000951 vpcmpeqb $-1977(%rip), %xmm3, %xmm3 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00000959 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000095d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00000961 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00000965 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x00000969 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000096d vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc9, //0x00000971 vpmovmskb %xmm1, %ecx + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00000975 movl $4294967295, %ebx + 0x48, 0x31, 0xd9, //0x0000097a xorq %rbx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x0000097d bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00000981 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00000984 je LBB0_154 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x0000098a movl $-1, %ebx + 0xd3, 0xe3, //0x0000098f shll %cl, %ebx + 0xf7, 0xd3, //0x00000991 notl %ebx + 0x21, 0xdf, //0x00000993 andl %ebx, %edi + 0x21, 0xde, //0x00000995 andl %ebx, %esi + 0x21, 0xd3, //0x00000997 andl %edx, %ebx + 0x89, 0xda, //0x00000999 movl %ebx, %edx + //0x0000099b LBB0_154 + 0x8d, 0x5f, 0xff, //0x0000099b leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x0000099e andl %edi, %ebx + 0x0f, 0x85, 0xe1, 0x11, 0x00, 0x00, //0x000009a0 jne LBB0_344 + 0x8d, 0x5e, 0xff, //0x000009a6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000009a9 andl %esi, %ebx + 0x0f, 0x85, 0xd6, 0x11, 0x00, 0x00, //0x000009ab jne LBB0_344 + 0x8d, 0x5a, 0xff, //0x000009b1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000009b4 andl %edx, %ebx + 0x0f, 0x85, 0xcb, 0x11, 0x00, 0x00, //0x000009b6 jne LBB0_344 + 0x85, 0xff, //0x000009bc testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009be je LBB0_160 + 0x4c, 0x89, 0xf3, //0x000009c4 movq %r14, %rbx + 0x4c, 0x29, 0xfb, //0x000009c7 subq %r15, %rbx + 0x0f, 0xbc, 0xff, //0x000009ca bsfl %edi, %edi + 0x48, 0x01, 0xdf, //0x000009cd addq %rbx, %rdi + 0x48, 0x83, 0xf8, 0xff, //0x000009d0 cmpq $-1, %rax + 0x0f, 0x85, 0xdb, 0x11, 0x00, 0x00, //0x000009d4 jne LBB0_347 + 0x48, 0x89, 0xf8, //0x000009da movq %rdi, %rax + //0x000009dd LBB0_160 + 0x85, 0xf6, //0x000009dd testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000009df je LBB0_163 + 0x4c, 0x89, 0xf7, //0x000009e5 movq %r14, %rdi + 0x4c, 0x29, 0xff, //0x000009e8 subq %r15, %rdi + 0x0f, 0xbc, 0xf6, //0x000009eb bsfl %esi, %esi + 0x48, 0x01, 0xfe, //0x000009ee addq %rdi, %rsi + 0x49, 0x83, 0xfc, 0xff, //0x000009f1 cmpq $-1, %r12 + 0x0f, 0x85, 0xed, 0x12, 0x00, 0x00, //0x000009f5 jne LBB0_350 + 0x49, 0x89, 0xf4, //0x000009fb movq %rsi, %r12 + //0x000009fe LBB0_163 + 0x85, 0xd2, //0x000009fe testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000a00 je LBB0_166 + 0x4c, 0x89, 0xf6, //0x00000a06 movq %r14, %rsi + 0x4c, 0x29, 0xfe, //0x00000a09 subq %r15, %rsi + 0x0f, 0xbc, 0xd2, //0x00000a0c bsfl %edx, %edx + 0x48, 0x01, 0xf2, //0x00000a0f addq %rsi, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000a12 cmpq $-1, %r8 + 0x0f, 0x85, 0x1e, 0x11, 0x00, 0x00, //0x00000a16 jne LBB0_340 + 0x49, 0x89, 0xd0, //0x00000a1c movq %rdx, %r8 + //0x00000a1f LBB0_166 + 0x83, 0xf9, 0x10, //0x00000a1f cmpl $16, %ecx + 0x0f, 0x85, 0x82, 0x05, 0x00, 0x00, //0x00000a22 jne LBB0_186 + 0x49, 0x83, 0xc6, 0x10, //0x00000a28 addq $16, %r14 + 0x49, 0x83, 0xc2, 0xf0, //0x00000a2c addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x00000a30 cmpq $15, %r10 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00000a34 ja LBB0_152 + 0x4d, 0x89, 0xca, //0x00000a3a movq %r9, %r10 + 0x4d, 0x89, 0xde, //0x00000a3d movq %r11, %r14 + //0x00000a40 LBB0_169 + 0x4d, 0x85, 0xd2, //0x00000a40 testq %r10, %r10 + 0x0f, 0x84, 0x64, 0x05, 0x00, 0x00, //0x00000a43 je LBB0_187 + 0x4b, 0x8d, 0x0c, 0x16, //0x00000a49 leaq (%r14,%r10), %rcx + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000a4d jmp LBB0_174 + //0x00000a52 LBB0_171 + 0x49, 0x89, 0xd6, //0x00000a52 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000a55 subq %r15, %r14 + 0x49, 0x83, 0xf8, 0xff, //0x00000a58 cmpq $-1, %r8 + 0x0f, 0x85, 0x15, 0x13, 0x00, 0x00, //0x00000a5c jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000a62 decq %r14 + 0x4d, 0x89, 0xf0, //0x00000a65 movq %r14, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a68 .p2align 4, 0x90 + //0x00000a70 LBB0_173 + 0x49, 0x89, 0xd6, //0x00000a70 movq %rdx, %r14 + 0x49, 0xff, 0xca, //0x00000a73 decq %r10 + 0x0f, 0x84, 0x3a, 0x12, 0x00, 0x00, //0x00000a76 je LBB0_348 + //0x00000a7c LBB0_174 + 0x41, 0x0f, 0xbe, 0x36, //0x00000a7c movsbl (%r14), %esi + 0x83, 0xc6, 0xd5, //0x00000a80 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x00000a83 cmpl $58, %esi + 0x0f, 0x87, 0x21, 0x05, 0x00, 0x00, //0x00000a86 ja LBB0_187 + 0x49, 0x8d, 0x56, 0x01, //0x00000a8c leaq $1(%r14), %rdx + 0x48, 0x8d, 0x3d, 0x65, 0x22, 0x00, 0x00, //0x00000a90 leaq $8805(%rip), %rdi /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x34, 0xb7, //0x00000a97 movslq (%rdi,%rsi,4), %rsi + 0x48, 0x01, 0xfe, //0x00000a9b addq %rdi, %rsi + 0xff, 0xe6, //0x00000a9e jmpq *%rsi + //0x00000aa0 LBB0_176 + 0x49, 0x89, 0xd6, //0x00000aa0 movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000aa3 subq %r15, %r14 + 0x49, 0x83, 0xfc, 0xff, //0x00000aa6 cmpq $-1, %r12 + 0x0f, 0x85, 0xc7, 0x12, 0x00, 0x00, //0x00000aaa jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000ab0 decq %r14 + 0x4d, 0x89, 0xf4, //0x00000ab3 movq %r14, %r12 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x00000ab6 jmp LBB0_173 + //0x00000abb LBB0_178 + 0x49, 0x89, 0xd6, //0x00000abb movq %rdx, %r14 + 0x4d, 0x29, 0xfe, //0x00000abe subq %r15, %r14 + 0x48, 0x83, 0xf8, 0xff, //0x00000ac1 cmpq $-1, %rax + 0x0f, 0x85, 0xac, 0x12, 0x00, 0x00, //0x00000ac5 jne LBB0_352 + 0x49, 0xff, 0xce, //0x00000acb decq %r14 + 0x4c, 0x89, 0xf0, //0x00000ace movq %r14, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00000ad1 jmp LBB0_173 + //0x00000ad6 LBB0_73 + 0x49, 0x81, 0xf8, 0xff, 0x0f, 0x00, 0x00, //0x00000ad6 cmpq $4095, %r8 + 0x0f, 0x8f, 0x8f, 0x1c, 0x00, 0x00, //0x00000add jg LBB0_489 + 0x49, 0x8d, 0x40, 0x01, //0x00000ae3 leaq $1(%r8), %rax + 0x49, 0x89, 0x06, //0x00000ae7 movq %rax, (%r14) + 0x4b, 0xc7, 0x44, 0xc6, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000aea movq $0, $8(%r14,%r8,8) + 0xe9, 0x78, 0xf7, 0xff, 0xff, //0x00000af3 jmp LBB0_3 + //0x00000af8 LBB0_75 + 0x49, 0x89, 0xd2, //0x00000af8 movq %rdx, %r10 + 0x4d, 0x29, 0xe2, //0x00000afb subq %r12, %r10 + 0x0f, 0x84, 0x74, 0x1e, 0x00, 0x00, //0x00000afe je LBB0_508 + 0x4c, 0x89, 0xe0, //0x00000b04 movq %r12, %rax + 0x4d, 0x01, 0xcc, //0x00000b07 addq %r9, %r12 + 0x49, 0x83, 0xfa, 0x40, //0x00000b0a cmpq $64, %r10 + 0x4c, 0x89, 0x4d, 0xc0, //0x00000b0e movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x37, 0x13, 0x00, 0x00, //0x00000b12 jb LBB0_357 + 0x45, 0x89, 0xd6, //0x00000b18 movl %r10d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000b1b andl $63, %r14d + 0x48, 0x8d, 0x4c, 0x32, 0xc0, //0x00000b1f leaq $-64(%rdx,%rsi), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000b24 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000b28 addq %rax, %rcx + 0x49, 0x8d, 0x44, 0x09, 0x40, //0x00000b2b leaq $64(%r9,%rcx), %rax + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b30 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000b37 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b3a .p2align 4, 0x90 + //0x00000b40 LBB0_78 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000b40 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000b46 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000b4d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000b51 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000b55 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000b59 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000b5d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xda, //0x00000b61 vpmovmskb %ymm2, %r11d + 0xc5, 0xf5, 0x74, 0xd7, //0x00000b65 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x00000b69 vpmovmskb %ymm2, %ebx + 0xc5, 0xbd, 0x64, 0xd0, //0x00000b6d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000b71 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000b76 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000b7a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000b7e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000b82 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000b87 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000b8b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x00000b8f shlq $32, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x00000b93 shlq $32, %rbx + 0x49, 0x09, 0xdb, //0x00000b97 orq %rbx, %r11 + 0x49, 0x83, 0xf8, 0xff, //0x00000b9a cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b9e jne LBB0_80 + 0x4d, 0x85, 0xdb, //0x00000ba4 testq %r11, %r11 + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000ba7 jne LBB0_89 + //0x00000bad LBB0_80 + 0x48, 0xc1, 0xe6, 0x20, //0x00000bad shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00000bb1 orq %r9, %rdx + 0x4c, 0x89, 0xd9, //0x00000bb4 movq %r11, %rcx + 0x4c, 0x09, 0xf9, //0x00000bb7 orq %r15, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000bba jne LBB0_108 + 0x48, 0x09, 0xfe, //0x00000bc0 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000bc3 testq %rdx, %rdx + 0x0f, 0x85, 0xe1, 0x01, 0x00, 0x00, //0x00000bc6 jne LBB0_109 + //0x00000bcc LBB0_82 + 0x48, 0x85, 0xf6, //0x00000bcc testq %rsi, %rsi + 0x0f, 0x85, 0x21, 0x1c, 0x00, 0x00, //0x00000bcf jne LBB0_482 + 0x49, 0x83, 0xc2, 0xc0, //0x00000bd5 addq $-64, %r10 + 0x49, 0x83, 0xc4, 0x40, //0x00000bd9 addq $64, %r12 + 0x49, 0x83, 0xfa, 0x3f, //0x00000bdd cmpq $63, %r10 + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000be1 ja LBB0_78 + 0xe9, 0xed, 0x0e, 0x00, 0x00, //0x00000be7 jmp LBB0_84 + //0x00000bec LBB0_108 + 0x4c, 0x89, 0xf9, //0x00000bec movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000bef notq %rcx + 0x4c, 0x21, 0xd9, //0x00000bf2 andq %r11, %rcx + 0x4c, 0x8d, 0x0c, 0x09, //0x00000bf5 leaq (%rcx,%rcx), %r9 + 0x4d, 0x09, 0xf9, //0x00000bf9 orq %r15, %r9 + 0x4c, 0x89, 0xcb, //0x00000bfc movq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000bff notq %rbx + 0x4c, 0x21, 0xdb, //0x00000c02 andq %r11, %rbx + 0x49, 0x89, 0xc3, //0x00000c05 movq %rax, %r11 + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000c08 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc3, //0x00000c12 andq %rax, %rbx + 0x45, 0x31, 0xff, //0x00000c15 xorl %r15d, %r15d + 0x48, 0x01, 0xcb, //0x00000c18 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00000c1b setb %r15b + 0x48, 0x01, 0xdb, //0x00000c1f addq %rbx, %rbx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c22 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc3, //0x00000c2c xorq %rax, %rbx + 0x4c, 0x89, 0xd8, //0x00000c2f movq %r11, %rax + 0x4c, 0x21, 0xcb, //0x00000c32 andq %r9, %rbx + 0x48, 0xf7, 0xd3, //0x00000c35 notq %rbx + 0x48, 0x21, 0xda, //0x00000c38 andq %rbx, %rdx + 0x48, 0x09, 0xfe, //0x00000c3b orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000c3e testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0xff, 0xff, 0xff, //0x00000c41 je LBB0_82 + 0xe9, 0x61, 0x01, 0x00, 0x00, //0x00000c47 jmp LBB0_109 + //0x00000c4c LBB0_89 + 0x4c, 0x89, 0xe3, //0x00000c4c movq %r12, %rbx + 0x48, 0x2b, 0x5d, 0xc0, //0x00000c4f subq $-64(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xc3, //0x00000c53 bsfq %r11, %r8 + 0x49, 0x01, 0xd8, //0x00000c57 addq %rbx, %r8 + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00000c5a jmp LBB0_80 + //0x00000c5f LBB0_92 + 0x4b, 0xc7, 0x04, 0xc6, 0x02, 0x00, 0x00, 0x00, //0x00000c5f movq $2, (%r14,%r8,8) + 0x48, 0x8b, 0x45, 0xb0, //0x00000c67 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00000c6b movq $8(%rax), %rax + 0xf6, 0x45, 0x98, 0x20, //0x00000c6f testb $32, $-104(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x00000c73 movq %rax, $-72(%rbp) + 0x0f, 0x85, 0x6c, 0x01, 0x00, 0x00, //0x00000c77 jne LBB0_111 + 0x48, 0x89, 0xc1, //0x00000c7d movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x00000c80 subq %r12, %rcx + 0x0f, 0x84, 0xdd, 0x1c, 0x00, 0x00, //0x00000c83 je LBB0_510 + 0x4b, 0x8d, 0x1c, 0x21, //0x00000c89 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00000c8d cmpq $64, %rcx + 0x0f, 0x82, 0xf1, 0x11, 0x00, 0x00, //0x00000c91 jb LBB0_360 + 0x4c, 0x89, 0xca, //0x00000c97 movq %r9, %rdx + 0x41, 0x89, 0xcf, //0x00000c9a movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00000c9d andl $63, %r15d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00000ca1 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000ca6 andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00000caa addq %r12, %rax + 0x4d, 0x8d, 0x44, 0x01, 0x40, //0x00000cad leaq $64(%r9,%rax), %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000cb2 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00000cb9 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, //0x00000cbc .p2align 4, 0x90 + //0x00000cc0 LBB0_96 + 0xc5, 0xfe, 0x6f, 0x03, //0x00000cc0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x00000cc4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000cc9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00000ccd vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x00000cd1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000cd5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00000cd9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000cdd vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x00000ce1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00000ce5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x00000ce9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000ced shlq $32, %rax + 0x48, 0x09, 0xc6, //0x00000cf1 orq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00000cf4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000cf8 jne LBB0_98 + 0x48, 0x85, 0xf6, //0x00000cfe testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000d01 jne LBB0_105 + //0x00000d07 LBB0_98 + 0x48, 0x09, 0xfa, //0x00000d07 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000d0a movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000d0d orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000d10 jne LBB0_106 + //0x00000d16 LBB0_99 + 0x48, 0x85, 0xd2, //0x00000d16 testq %rdx, %rdx + 0x0f, 0x85, 0xe6, 0x0e, 0x00, 0x00, //0x00000d19 jne LBB0_107 + //0x00000d1f LBB0_100 + 0x48, 0x83, 0xc1, 0xc0, //0x00000d1f addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00000d23 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00000d27 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x00000d2b ja LBB0_96 + 0xe9, 0x8e, 0x0e, 0x00, 0x00, //0x00000d31 jmp LBB0_101 + //0x00000d36 LBB0_105 + 0x48, 0x89, 0xd8, //0x00000d36 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00000d39 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00000d3c bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00000d40 addq %rax, %r11 + 0x48, 0x09, 0xfa, //0x00000d43 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00000d46 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00000d49 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00000d4c je LBB0_99 + //0x00000d52 LBB0_106 + 0x4c, 0x89, 0xf0, //0x00000d52 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00000d55 notq %rax + 0x48, 0x21, 0xf0, //0x00000d58 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x00000d5b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x00000d5f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00000d62 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00000d65 notq %rdi + 0x48, 0x21, 0xf7, //0x00000d68 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000d6b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000d75 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00000d78 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x00000d7b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x00000d7e setb %r14b + 0x48, 0x01, 0xff, //0x00000d82 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000d85 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00000d8f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00000d92 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000d95 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00000d99 notq %rdi + 0x48, 0x21, 0xfa, //0x00000d9c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x00000d9f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00000da2 je LBB0_100 + 0xe9, 0x58, 0x0e, 0x00, 0x00, //0x00000da8 jmp LBB0_107 + //0x00000dad LBB0_109 + 0x48, 0x0f, 0xbc, 0xca, //0x00000dad bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00000db1 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00000db4 movq $-64(%rbp), %rax + 0x0f, 0x84, 0xc9, 0x01, 0x00, 0x00, //0x00000db8 je LBB0_181 + 0x48, 0x0f, 0xbc, 0xd6, //0x00000dbe bsfq %rsi, %rdx + 0xe9, 0xc5, 0x01, 0x00, 0x00, //0x00000dc2 jmp LBB0_182 + //0x00000dc7 LBB0_180 + 0x49, 0x01, 0xcb, //0x00000dc7 addq %rcx, %r11 + 0xc5, 0xf8, 0x77, //0x00000dca vzeroupper + 0x4d, 0x89, 0xde, //0x00000dcd movq %r11, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000dd0 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000dd7 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00000dda movq $-48(%rbp), %rdx + 0x0f, 0x85, 0xdd, 0x01, 0x00, 0x00, //0x00000dde jne LBB0_188 + 0xe9, 0xdc, 0x19, 0x00, 0x00, //0x00000de4 jmp LBB0_481 + //0x00000de9 LBB0_111 + 0x48, 0x89, 0xc3, //0x00000de9 movq %rax, %rbx + 0x4c, 0x29, 0xe3, //0x00000dec subq %r12, %rbx + 0x0f, 0x84, 0x71, 0x1b, 0x00, 0x00, //0x00000def je LBB0_510 + 0x4c, 0x89, 0xe1, //0x00000df5 movq %r12, %rcx + 0x4d, 0x01, 0xcc, //0x00000df8 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x00000dfb cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc0, //0x00000dff movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x98, 0x10, 0x00, 0x00, //0x00000e03 jb LBB0_361 + 0x41, 0x89, 0xde, //0x00000e09 movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000e0c andl $63, %r14d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00000e10 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000e15 andq $-64, %rax + 0x49, 0x89, 0xc8, //0x00000e19 movq %rcx, %r8 + 0x48, 0x01, 0xc8, //0x00000e1c addq %rcx, %rax + 0x49, 0x8d, 0x44, 0x01, 0x40, //0x00000e1f leaq $64(%r9,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x00000e24 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000e28 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00000e2f xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e32 .p2align 4, 0x90 + //0x00000e40 LBB0_114 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00000e40 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x00000e46 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x00000e4d vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00000e51 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00000e55 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000e59 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x00000e5d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00000e61 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00000e65 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00000e69 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x00000e6d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00000e71 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00000e76 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000e7a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x00000e7e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00000e82 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00000e87 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00000e8b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x00000e8f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00000e93 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00000e97 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x00000e9a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000e9e jne LBB0_116 + 0x48, 0x85, 0xc9, //0x00000ea4 testq %rcx, %rcx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000ea7 jne LBB0_125 + //0x00000ead LBB0_116 + 0x48, 0xc1, 0xe6, 0x20, //0x00000ead shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00000eb1 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00000eb4 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00000eb7 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000eba jne LBB0_126 + 0x48, 0x09, 0xfe, //0x00000ec0 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000ec3 testq %rdx, %rdx + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00000ec6 jne LBB0_127 + //0x00000ecc LBB0_118 + 0x48, 0x85, 0xf6, //0x00000ecc testq %rsi, %rsi + 0x0f, 0x85, 0x4f, 0x19, 0x00, 0x00, //0x00000ecf jne LBB0_502 + 0x48, 0x83, 0xc3, 0xc0, //0x00000ed5 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00000ed9 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x00000edd cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00000ee1 ja LBB0_114 + 0xe9, 0x68, 0x0d, 0x00, 0x00, //0x00000ee7 jmp LBB0_120 + //0x00000eec LBB0_126 + 0x4d, 0x89, 0xfa, //0x00000eec movq %r15, %r10 + 0x49, 0xf7, 0xd2, //0x00000eef notq %r10 + 0x49, 0x21, 0xca, //0x00000ef2 andq %rcx, %r10 + 0x4f, 0x8d, 0x0c, 0x12, //0x00000ef5 leaq (%r10,%r10), %r9 + 0x4d, 0x09, 0xf9, //0x00000ef9 orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x00000efc movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000eff notq %rax + 0x48, 0x21, 0xc8, //0x00000f02 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000f05 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x00000f0f andq %rcx, %rax + 0x45, 0x31, 0xff, //0x00000f12 xorl %r15d, %r15d + 0x4c, 0x01, 0xd0, //0x00000f15 addq %r10, %rax + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f18 movq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x00000f1c setb %r15b + 0x48, 0x01, 0xc0, //0x00000f20 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000f23 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00000f2d xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x00000f30 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000f33 notq %rax + 0x48, 0x21, 0xc2, //0x00000f36 andq %rax, %rdx + 0x48, 0x09, 0xfe, //0x00000f39 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00000f3c testq %rdx, %rdx + 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x00000f3f je LBB0_118 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000f45 jmp LBB0_127 + //0x00000f4a LBB0_125 + 0x4c, 0x89, 0xe0, //0x00000f4a movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x00000f4d subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00000f51 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00000f55 addq %rax, %r11 + 0xe9, 0x50, 0xff, 0xff, 0xff, //0x00000f58 jmp LBB0_116 + //0x00000f5d LBB0_127 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f5d bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00000f61 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00000f64 movq $-64(%rbp), %rax + 0x0f, 0x84, 0x8d, 0x01, 0x00, 0x00, //0x00000f68 je LBB0_203 + 0x48, 0x0f, 0xbc, 0xd6, //0x00000f6e bsfq %rsi, %rdx + 0x4c, 0x8b, 0x75, 0xc8, //0x00000f72 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000f76 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000f79 cmpq %rcx, %rdx + 0x0f, 0x83, 0x8e, 0x01, 0x00, 0x00, //0x00000f7c jae LBB0_204 + 0xe9, 0x19, 0x1a, 0x00, 0x00, //0x00000f82 jmp LBB0_129 + //0x00000f87 LBB0_181 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00000f87 movl $64, %edx + //0x00000f8c LBB0_182 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f8c movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00000f90 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00000f94 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00000f97 cmpq %rcx, %rdx + 0x0f, 0x82, 0xe5, 0x19, 0x00, 0x00, //0x00000f9a jb LBB0_509 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00000fa0 leaq $1(%r12,%rcx), %r12 + 0xe9, 0x10, 0x0b, 0x00, 0x00, //0x00000fa5 jmp LBB0_184 + //0x00000faa LBB0_186 + 0x49, 0x01, 0xce, //0x00000faa addq %rcx, %r14 + //0x00000fad LBB0_187 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000fad movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00000fb4 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00000fb7 movq $-48(%rbp), %rdx + 0x0f, 0x84, 0x04, 0x18, 0x00, 0x00, //0x00000fbb je LBB0_481 + //0x00000fc1 LBB0_188 + 0x4d, 0x85, 0xc0, //0x00000fc1 testq %r8, %r8 + 0x0f, 0x84, 0xfb, 0x17, 0x00, 0x00, //0x00000fc4 je LBB0_481 + 0x48, 0x85, 0xc0, //0x00000fca testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x17, 0x00, 0x00, //0x00000fcd je LBB0_481 + 0x4d, 0x29, 0xfe, //0x00000fd3 subq %r15, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00000fd6 leaq $-1(%r14), %rcx + 0x49, 0x39, 0xcc, //0x00000fda cmpq %rcx, %r12 + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000fdd je LBB0_196 + 0x48, 0x39, 0xc8, //0x00000fe3 cmpq %rcx, %rax + 0x0f, 0x84, 0x7f, 0x00, 0x00, 0x00, //0x00000fe6 je LBB0_196 + 0x49, 0x39, 0xc8, //0x00000fec cmpq %rcx, %r8 + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00000fef je LBB0_196 + 0x4d, 0x85, 0xc0, //0x00000ff5 testq %r8, %r8 + 0xc5, 0xfe, 0x6f, 0x2d, 0x00, 0xf0, 0xff, 0xff, //0x00000ff8 vmovdqu $-4096(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x18, 0xf0, 0xff, 0xff, //0x00001000 vmovdqu $-4072(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x30, 0xf0, 0xff, 0xff, //0x00001008 vmovdqu $-4048(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x48, 0xf0, 0xff, 0xff, //0x00001010 vmovdqu $-4024(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001018 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x5b, 0xf0, 0xff, 0xff, //0x0000101d vmovdqu $-4005(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x73, 0xf0, 0xff, 0xff, //0x00001025 vmovdqu $-3981(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x8b, 0xf0, 0xff, 0xff, //0x0000102d vmovdqu $-3957(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xa3, 0xf0, 0xff, 0xff, //0x00001035 vmovdqu $-3933(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xbb, 0xf0, 0xff, 0xff, //0x0000103d vmovdqu $-3909(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xd3, 0xf0, 0xff, 0xff, //0x00001045 vmovdqu $-3885(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x0000104d jle LBB0_200 + 0x49, 0x8d, 0x48, 0xff, //0x00001053 leaq $-1(%r8), %rcx + 0x49, 0x39, 0xcc, //0x00001057 cmpq %rcx, %r12 + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x0000105a je LBB0_200 + 0x49, 0xf7, 0xd0, //0x00001060 notq %r8 + 0x4d, 0x89, 0xc6, //0x00001063 movq %r8, %r14 + 0xe9, 0x58, 0x00, 0x00, 0x00, //0x00001066 jmp LBB0_197 + //0x0000106b LBB0_196 + 0x49, 0xf7, 0xde, //0x0000106b negq %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0x8a, 0xef, 0xff, 0xff, //0x0000106e vmovdqu $-4214(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xa2, 0xef, 0xff, 0xff, //0x00001076 vmovdqu $-4190(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xba, 0xef, 0xff, 0xff, //0x0000107e vmovdqu $-4166(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0xd2, 0xef, 0xff, 0xff, //0x00001086 vmovdqu $-4142(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000108e vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xe5, 0xef, 0xff, 0xff, //0x00001093 vmovdqu $-4123(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xfd, 0xef, 0xff, 0xff, //0x0000109b vmovdqu $-4099(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0x15, 0xf0, 0xff, 0xff, //0x000010a3 vmovdqu $-4075(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x2d, 0xf0, 0xff, 0xff, //0x000010ab vmovdqu $-4051(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x45, 0xf0, 0xff, 0xff, //0x000010b3 vmovdqu $-4027(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x5d, 0xf0, 0xff, 0xff, //0x000010bb vmovdqu $-4003(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + //0x000010c3 LBB0_197 + 0x4d, 0x85, 0xf6, //0x000010c3 testq %r14, %r14 + 0x4c, 0x8b, 0x65, 0xa8, //0x000010c6 movq $-88(%rbp), %r12 + 0x0f, 0x88, 0xf2, 0x16, 0x00, 0x00, //0x000010ca js LBB0_480 + 0x48, 0x8b, 0x0a, //0x000010d0 movq (%rdx), %rcx + 0xe9, 0x76, 0xf1, 0xff, 0xff, //0x000010d3 jmp LBB0_199 + //0x000010d8 LBB0_200 + 0x48, 0x89, 0xc1, //0x000010d8 movq %rax, %rcx + 0x4c, 0x09, 0xe1, //0x000010db orq %r12, %rcx + 0x4c, 0x39, 0xe0, //0x000010de cmpq %r12, %rax + 0x0f, 0x8c, 0x98, 0x02, 0x00, 0x00, //0x000010e1 jl LBB0_249 + 0x48, 0x85, 0xc9, //0x000010e7 testq %rcx, %rcx + 0x0f, 0x88, 0x8f, 0x02, 0x00, 0x00, //0x000010ea js LBB0_249 + 0x48, 0xf7, 0xd0, //0x000010f0 notq %rax + 0x49, 0x89, 0xc6, //0x000010f3 movq %rax, %r14 + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x000010f6 jmp LBB0_197 + //0x000010fb LBB0_203 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000010fb movl $64, %edx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001100 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001104 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x00001107 cmpq %rcx, %rdx + 0x0f, 0x82, 0x90, 0x18, 0x00, 0x00, //0x0000110a jb LBB0_129 + //0x00001110 LBB0_204 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001110 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xfe, 0x0a, 0x00, 0x00, //0x00001115 jmp LBB0_205 + //0x0000111a LBB0_209 + 0x49, 0x8b, 0x06, //0x0000111a movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000111d cmpq $4095, %rax + 0x0f, 0x8f, 0x49, 0x16, 0x00, 0x00, //0x00001123 jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001129 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x0000112d movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001130 movq $5, $8(%r14,%rax,8) + 0xe9, 0x32, 0xf1, 0xff, 0xff, //0x00001139 jmp LBB0_3 + //0x0000113e LBB0_211 + 0x48, 0x8b, 0x45, 0xb0, //0x0000113e movq $-80(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00001142 movq $8(%rax), %rax + 0xf6, 0x45, 0x98, 0x20, //0x00001146 testb $32, $-104(%rbp) + 0x48, 0x89, 0x45, 0xb8, //0x0000114a movq %rax, $-72(%rbp) + 0x0f, 0x85, 0x46, 0x02, 0x00, 0x00, //0x0000114e jne LBB0_250 + 0x48, 0x89, 0xc1, //0x00001154 movq %rax, %rcx + 0x4c, 0x29, 0xe1, //0x00001157 subq %r12, %rcx + 0x0f, 0x84, 0x06, 0x18, 0x00, 0x00, //0x0000115a je LBB0_510 + 0x4b, 0x8d, 0x1c, 0x21, //0x00001160 leaq (%r9,%r12), %rbx + 0x48, 0x83, 0xf9, 0x40, //0x00001164 cmpq $64, %rcx + 0x4c, 0x89, 0xca, //0x00001168 movq %r9, %rdx + 0x0f, 0x82, 0x71, 0x0d, 0x00, 0x00, //0x0000116b jb LBB0_363 + 0x41, 0x89, 0xcf, //0x00001171 movl %ecx, %r15d + 0x41, 0x83, 0xe7, 0x3f, //0x00001174 andl $63, %r15d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x00001178 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000117d andq $-64, %rax + 0x4c, 0x01, 0xe0, //0x00001181 addq %r12, %rax + 0x49, 0x89, 0xd1, //0x00001184 movq %rdx, %r9 + 0x4c, 0x8d, 0x44, 0x02, 0x40, //0x00001187 leaq $64(%rdx,%rax), %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000118c movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001193 xorl %r14d, %r14d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001196 .p2align 4, 0x90 + //0x000011a0 LBB0_215 + 0xc5, 0xfe, 0x6f, 0x03, //0x000011a0 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfe, 0x6f, 0x4b, 0x20, //0x000011a4 vmovdqu $32(%rbx), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x000011a9 vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x000011ad vpmovmskb %ymm2, %edi + 0xc5, 0xf5, 0x74, 0xd6, //0x000011b1 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x000011b5 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x000011b9 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x000011bd vpmovmskb %ymm0, %esi + 0xc5, 0xf5, 0x74, 0xc7, //0x000011c1 vpcmpeqb %ymm7, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000011c5 vpmovmskb %ymm0, %eax + 0x48, 0xc1, 0xe2, 0x20, //0x000011c9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x000011cd shlq $32, %rax + 0x48, 0x09, 0xc6, //0x000011d1 orq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x000011d4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000011d8 jne LBB0_217 + 0x48, 0x85, 0xf6, //0x000011de testq %rsi, %rsi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000011e1 jne LBB0_224 + //0x000011e7 LBB0_217 + 0x48, 0x09, 0xfa, //0x000011e7 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x000011ea movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x000011ed orq %r14, %rax + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000011f0 jne LBB0_225 + //0x000011f6 LBB0_218 + 0x48, 0x85, 0xd2, //0x000011f6 testq %rdx, %rdx + 0x0f, 0x85, 0x48, 0x0b, 0x00, 0x00, //0x000011f9 jne LBB0_226 + //0x000011ff LBB0_219 + 0x48, 0x83, 0xc1, 0xc0, //0x000011ff addq $-64, %rcx + 0x48, 0x83, 0xc3, 0x40, //0x00001203 addq $64, %rbx + 0x48, 0x83, 0xf9, 0x3f, //0x00001207 cmpq $63, %rcx + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x0000120b ja LBB0_215 + 0xe9, 0xf0, 0x0a, 0x00, 0x00, //0x00001211 jmp LBB0_220 + //0x00001216 LBB0_224 + 0x48, 0x89, 0xd8, //0x00001216 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00001219 subq %r9, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x0000121c bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00001220 addq %rax, %r11 + 0x48, 0x09, 0xfa, //0x00001223 orq %rdi, %rdx + 0x48, 0x89, 0xf0, //0x00001226 movq %rsi, %rax + 0x4c, 0x09, 0xf0, //0x00001229 orq %r14, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000122c je LBB0_218 + //0x00001232 LBB0_225 + 0x4c, 0x89, 0xf0, //0x00001232 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001235 notq %rax + 0x48, 0x21, 0xf0, //0x00001238 andq %rsi, %rax + 0x4c, 0x8d, 0x14, 0x00, //0x0000123b leaq (%rax,%rax), %r10 + 0x4d, 0x09, 0xf2, //0x0000123f orq %r14, %r10 + 0x4c, 0x89, 0xd7, //0x00001242 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00001245 notq %rdi + 0x48, 0x21, 0xf7, //0x00001248 andq %rsi, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000124b movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00001255 andq %rsi, %rdi + 0x45, 0x31, 0xf6, //0x00001258 xorl %r14d, %r14d + 0x48, 0x01, 0xc7, //0x0000125b addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc6, //0x0000125e setb %r14b + 0x48, 0x01, 0xff, //0x00001262 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001265 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x0000126f xorq %rax, %rdi + 0x4c, 0x21, 0xd7, //0x00001272 andq %r10, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001275 movq $-48(%rbp), %r10 + 0x48, 0xf7, 0xd7, //0x00001279 notq %rdi + 0x48, 0x21, 0xfa, //0x0000127c andq %rdi, %rdx + 0x48, 0x85, 0xd2, //0x0000127f testq %rdx, %rdx + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00001282 je LBB0_219 + 0xe9, 0xba, 0x0a, 0x00, 0x00, //0x00001288 jmp LBB0_226 + //0x0000128d LBB0_227 + 0x48, 0x8b, 0x45, 0xb0, //0x0000128d movq $-80(%rbp), %rax + 0x4c, 0x8b, 0x70, 0x08, //0x00001291 movq $8(%rax), %r14 + 0x4d, 0x29, 0xe6, //0x00001295 subq %r12, %r14 + 0x0f, 0x84, 0xb3, 0x16, 0x00, 0x00, //0x00001298 je LBB0_498 + 0x4c, 0x89, 0x65, 0xa8, //0x0000129e movq %r12, $-88(%rbp) + 0x4c, 0x89, 0xc8, //0x000012a2 movq %r9, %rax + 0x4c, 0x01, 0xe0, //0x000012a5 addq %r12, %rax + 0x49, 0x89, 0xc1, //0x000012a8 movq %rax, %r9 + 0x80, 0x38, 0x30, //0x000012ab cmpb $48, (%rax) + 0x0f, 0x85, 0xb5, 0x02, 0x00, 0x00, //0x000012ae jne LBB0_271 + 0x41, 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000012b4 movl $1, %r15d + 0x49, 0x83, 0xfe, 0x01, //0x000012ba cmpq $1, %r14 + 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x000012be jne LBB0_269 + 0x4c, 0x8b, 0x65, 0xa8, //0x000012c4 movq $-88(%rbp), %r12 + 0xe9, 0x9d, 0x08, 0x00, 0x00, //0x000012c8 jmp LBB0_343 + //0x000012cd LBB0_231 + 0x48, 0x8b, 0x45, 0xb0, //0x000012cd movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x000012d1 movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000012d5 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc5, //0x000012d9 cmpq %rax, %r13 + 0x0f, 0x83, 0x0c, 0x15, 0x00, 0x00, //0x000012dc jae LBB0_490 + 0x41, 0x81, 0x3f, 0x6e, 0x75, 0x6c, 0x6c, //0x000012e2 cmpl $1819047278, (%r15) + 0x0f, 0x84, 0x99, 0xef, 0xff, 0xff, //0x000012e9 je LBB0_1 + 0xe9, 0x5a, 0x15, 0x00, 0x00, //0x000012ef jmp LBB0_233 + //0x000012f4 LBB0_238 + 0x49, 0x8b, 0x06, //0x000012f4 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000012f7 cmpq $4095, %rax + 0x0f, 0x8f, 0x6f, 0x14, 0x00, 0x00, //0x000012fd jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001303 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00001307 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x06, 0x00, 0x00, 0x00, //0x0000130a movq $6, $8(%r14,%rax,8) + 0xe9, 0x58, 0xef, 0xff, 0xff, //0x00001313 jmp LBB0_3 + //0x00001318 LBB0_240 + 0x48, 0x8b, 0x45, 0xb0, //0x00001318 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x0000131c movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfc, //0x00001320 leaq $-4(%rdx), %rax + 0x49, 0x39, 0xc5, //0x00001324 cmpq %rax, %r13 + 0x0f, 0x83, 0xc1, 0x14, 0x00, 0x00, //0x00001327 jae LBB0_490 + 0x43, 0x8b, 0x14, 0x21, //0x0000132d movl (%r9,%r12), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x00001331 cmpl $1702063201, %edx + 0x0f, 0x85, 0x63, 0x15, 0x00, 0x00, //0x00001337 jne LBB0_491 + 0x4c, 0x89, 0xe0, //0x0000133d movq %r12, %rax + 0x4d, 0x8d, 0x65, 0x05, //0x00001340 leaq $5(%r13), %r12 + 0x4d, 0x89, 0x22, //0x00001344 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001347 movq %r13, %rcx + 0x48, 0x85, 0xc0, //0x0000134a testq %rax, %rax + 0x0f, 0x8f, 0x1d, 0xef, 0xff, 0xff, //0x0000134d jg LBB0_3 + 0xe9, 0x81, 0x14, 0x00, 0x00, //0x00001353 jmp LBB0_501 + //0x00001358 LBB0_243 + 0x48, 0x8b, 0x45, 0xb0, //0x00001358 movq $-80(%rbp), %rax + 0x48, 0x8b, 0x50, 0x08, //0x0000135c movq $8(%rax), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x00001360 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc5, //0x00001364 cmpq %rax, %r13 + 0x0f, 0x83, 0x81, 0x14, 0x00, 0x00, //0x00001367 jae LBB0_490 + 0x41, 0x81, 0x3f, 0x74, 0x72, 0x75, 0x65, //0x0000136d cmpl $1702195828, (%r15) + 0x0f, 0x84, 0x0e, 0xef, 0xff, 0xff, //0x00001374 je LBB0_1 + 0xe9, 0x76, 0x15, 0x00, 0x00, //0x0000137a jmp LBB0_245 + //0x0000137f LBB0_249 + 0x48, 0x85, 0xc9, //0x0000137f testq %rcx, %rcx + 0x49, 0x8d, 0x4c, 0x24, 0xff, //0x00001382 leaq $-1(%r12), %rcx + 0x49, 0xf7, 0xd4, //0x00001387 notq %r12 + 0x4d, 0x0f, 0x48, 0xe6, //0x0000138a cmovsq %r14, %r12 + 0x48, 0x39, 0xc8, //0x0000138e cmpq %rcx, %rax + 0x4d, 0x0f, 0x44, 0xf4, //0x00001391 cmoveq %r12, %r14 + 0xe9, 0x29, 0xfd, 0xff, 0xff, //0x00001395 jmp LBB0_197 + //0x0000139a LBB0_250 + 0x48, 0x89, 0xc3, //0x0000139a movq %rax, %rbx + 0x4c, 0x29, 0xe3, //0x0000139d subq %r12, %rbx + 0x0f, 0x84, 0xc0, 0x15, 0x00, 0x00, //0x000013a0 je LBB0_510 + 0x4c, 0x89, 0xe1, //0x000013a6 movq %r12, %rcx + 0x4d, 0x01, 0xcc, //0x000013a9 addq %r9, %r12 + 0x48, 0x83, 0xfb, 0x40, //0x000013ac cmpq $64, %rbx + 0x4c, 0x89, 0x4d, 0xc0, //0x000013b0 movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x44, 0x0b, 0x00, 0x00, //0x000013b4 jb LBB0_364 + 0x41, 0x89, 0xde, //0x000013ba movl %ebx, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x000013bd andl $63, %r14d + 0x48, 0x8d, 0x44, 0x30, 0xc0, //0x000013c1 leaq $-64(%rax,%rsi), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x000013c6 andq $-64, %rax + 0x49, 0x89, 0xc8, //0x000013ca movq %rcx, %r8 + 0x48, 0x01, 0xc8, //0x000013cd addq %rcx, %rax + 0x49, 0x8d, 0x44, 0x01, 0x40, //0x000013d0 leaq $64(%r9,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x000013d5 movq %rax, $-96(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000013d9 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x000013e0 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000013e3 .p2align 4, 0x90 + //0x000013f0 LBB0_253 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x000013f0 vmovdqu (%r12), %ymm0 + 0xc4, 0xc1, 0x7e, 0x6f, 0x4c, 0x24, 0x20, //0x000013f6 vmovdqu $32(%r12), %ymm1 + 0xc5, 0xfd, 0x74, 0xd6, //0x000013fd vpcmpeqb %ymm6, %ymm0, %ymm2 + 0xc5, 0x7d, 0xd7, 0xca, //0x00001401 vpmovmskb %ymm2, %r9d + 0xc5, 0xf5, 0x74, 0xd6, //0x00001405 vpcmpeqb %ymm6, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00001409 vpmovmskb %ymm2, %edx + 0xc5, 0xfd, 0x74, 0xd7, //0x0000140d vpcmpeqb %ymm7, %ymm0, %ymm2 + 0xc5, 0xfd, 0xd7, 0xca, //0x00001411 vpmovmskb %ymm2, %ecx + 0xc5, 0xf5, 0x74, 0xd7, //0x00001415 vpcmpeqb %ymm7, %ymm1, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x00001419 vpmovmskb %ymm2, %eax + 0xc5, 0xbd, 0x64, 0xd0, //0x0000141d vpcmpgtb %ymm0, %ymm8, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001421 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc2, //0x00001426 vpand %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000142a vpmovmskb %ymm0, %edi + 0xc5, 0xbd, 0x64, 0xc1, //0x0000142e vpcmpgtb %ymm1, %ymm8, %ymm0 + 0xc4, 0xc1, 0x75, 0x64, 0xc9, //0x00001432 vpcmpgtb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00001437 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x0000143b vpmovmskb %ymm0, %esi + 0x48, 0xc1, 0xe2, 0x20, //0x0000143f shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x20, //0x00001443 shlq $32, %rax + 0x48, 0x09, 0xc1, //0x00001447 orq %rax, %rcx + 0x49, 0x83, 0xfb, 0xff, //0x0000144a cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000144e jne LBB0_255 + 0x48, 0x85, 0xc9, //0x00001454 testq %rcx, %rcx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00001457 jne LBB0_264 + //0x0000145d LBB0_255 + 0x48, 0xc1, 0xe6, 0x20, //0x0000145d shlq $32, %rsi + 0x4c, 0x09, 0xca, //0x00001461 orq %r9, %rdx + 0x48, 0x89, 0xc8, //0x00001464 movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00001467 orq %r15, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x0000146a jne LBB0_265 + 0x48, 0x09, 0xfe, //0x00001470 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x00001473 testq %rdx, %rdx + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00001476 jne LBB0_266 + //0x0000147c LBB0_257 + 0x48, 0x85, 0xf6, //0x0000147c testq %rsi, %rsi + 0x0f, 0x85, 0x9f, 0x13, 0x00, 0x00, //0x0000147f jne LBB0_502 + 0x48, 0x83, 0xc3, 0xc0, //0x00001485 addq $-64, %rbx + 0x49, 0x83, 0xc4, 0x40, //0x00001489 addq $64, %r12 + 0x48, 0x83, 0xfb, 0x3f, //0x0000148d cmpq $63, %rbx + 0x0f, 0x87, 0x59, 0xff, 0xff, 0xff, //0x00001491 ja LBB0_253 + 0xe9, 0xe7, 0x08, 0x00, 0x00, //0x00001497 jmp LBB0_259 + //0x0000149c LBB0_265 + 0x4d, 0x89, 0xfa, //0x0000149c movq %r15, %r10 + 0x49, 0xf7, 0xd2, //0x0000149f notq %r10 + 0x49, 0x21, 0xca, //0x000014a2 andq %rcx, %r10 + 0x4f, 0x8d, 0x0c, 0x12, //0x000014a5 leaq (%r10,%r10), %r9 + 0x4d, 0x09, 0xf9, //0x000014a9 orq %r15, %r9 + 0x4c, 0x89, 0xc8, //0x000014ac movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014af notq %rax + 0x48, 0x21, 0xc8, //0x000014b2 andq %rcx, %rax + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000014b5 movabsq $-6148914691236517206, %rcx + 0x48, 0x21, 0xc8, //0x000014bf andq %rcx, %rax + 0x45, 0x31, 0xff, //0x000014c2 xorl %r15d, %r15d + 0x4c, 0x01, 0xd0, //0x000014c5 addq %r10, %rax + 0x4c, 0x8b, 0x55, 0xd0, //0x000014c8 movq $-48(%rbp), %r10 + 0x41, 0x0f, 0x92, 0xc7, //0x000014cc setb %r15b + 0x48, 0x01, 0xc0, //0x000014d0 addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000014d3 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x000014dd xorq %rcx, %rax + 0x4c, 0x21, 0xc8, //0x000014e0 andq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000014e3 notq %rax + 0x48, 0x21, 0xc2, //0x000014e6 andq %rax, %rdx + 0x48, 0x09, 0xfe, //0x000014e9 orq %rdi, %rsi + 0x48, 0x85, 0xd2, //0x000014ec testq %rdx, %rdx + 0x0f, 0x84, 0x87, 0xff, 0xff, 0xff, //0x000014ef je LBB0_257 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000014f5 jmp LBB0_266 + //0x000014fa LBB0_264 + 0x4c, 0x89, 0xe0, //0x000014fa movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x000014fd subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00001501 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x00001505 addq %rax, %r11 + 0xe9, 0x50, 0xff, 0xff, 0xff, //0x00001508 jmp LBB0_255 + //0x0000150d LBB0_266 + 0x48, 0x0f, 0xbc, 0xca, //0x0000150d bsfq %rdx, %rcx + 0x48, 0x85, 0xf6, //0x00001511 testq %rsi, %rsi + 0x48, 0x8b, 0x45, 0xc0, //0x00001514 movq $-64(%rbp), %rax + 0x0f, 0x84, 0x20, 0x04, 0x00, 0x00, //0x00001518 je LBB0_320 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000151e bsfq %rsi, %rdx + 0xe9, 0x1c, 0x04, 0x00, 0x00, //0x00001522 jmp LBB0_321 + //0x00001527 LBB0_268 + 0x4c, 0x89, 0xca, //0x00001527 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x0000152a notq %rdx + 0x49, 0x01, 0xd5, //0x0000152d addq %rdx, %r13 + 0x49, 0x39, 0xcd, //0x00001530 cmpq %rcx, %r13 + 0x0f, 0x82, 0x3f, 0xef, 0xff, 0xff, //0x00001533 jb LBB0_36 + 0xe9, 0x28, 0x12, 0x00, 0x00, //0x00001539 jmp LBB0_474 + //0x0000153e LBB0_269 + 0x41, 0x8a, 0x49, 0x01, //0x0000153e movb $1(%r9), %cl + 0x80, 0xc1, 0xd2, //0x00001542 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00001545 cmpb $55, %cl + 0x4c, 0x8b, 0x65, 0xa8, //0x00001548 movq $-88(%rbp), %r12 + 0x0f, 0x87, 0x18, 0x06, 0x00, 0x00, //0x0000154c ja LBB0_343 + 0x0f, 0xb6, 0xc1, //0x00001552 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001555 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000155f btq %rax, %rcx + 0x0f, 0x83, 0x01, 0x06, 0x00, 0x00, //0x00001563 jae LBB0_343 + //0x00001569 LBB0_271 + 0x49, 0x83, 0xfe, 0x20, //0x00001569 cmpq $32, %r14 + 0x0f, 0x82, 0x52, 0x09, 0x00, 0x00, //0x0000156d jb LBB0_362 + 0x49, 0x8d, 0x4e, 0xe0, //0x00001573 leaq $-32(%r14), %rcx + 0x48, 0x89, 0xc8, //0x00001577 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x0000157a andq $-32, %rax + 0x4d, 0x89, 0xca, //0x0000157e movq %r9, %r10 + 0x4e, 0x8d, 0x7c, 0x08, 0x20, //0x00001581 leaq $32(%rax,%r9), %r15 + 0x83, 0xe1, 0x1f, //0x00001586 andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00001589 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000158d movq $-1, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001594 movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000159b movq $-1, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015a2 .p2align 4, 0x90 + //0x000015b0 LBB0_273 + 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x000015b0 vmovdqu (%r10), %ymm0 + 0xc4, 0xc1, 0x7d, 0x64, 0xca, //0x000015b5 vpcmpgtb %ymm10, %ymm0, %ymm1 + 0xc5, 0xa5, 0x64, 0xd0, //0x000015ba vpcmpgtb %ymm0, %ymm11, %ymm2 + 0xc5, 0xf5, 0xdb, 0xca, //0x000015be vpand %ymm2, %ymm1, %ymm1 + 0xc5, 0x9d, 0x74, 0xd0, //0x000015c2 vpcmpeqb %ymm0, %ymm12, %ymm2 + 0xc5, 0x95, 0x74, 0xd8, //0x000015c6 vpcmpeqb %ymm0, %ymm13, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000015ca vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xbd, 0xeb, 0xd8, //0x000015ce vpor %ymm0, %ymm8, %ymm3 + 0xc5, 0x8d, 0x74, 0xc0, //0x000015d2 vpcmpeqb %ymm0, %ymm14, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf8, //0x000015d6 vpmovmskb %ymm0, %edi + 0xc5, 0x85, 0x74, 0xdb, //0x000015da vpcmpeqb %ymm3, %ymm15, %ymm3 + 0xc5, 0xfd, 0xd7, 0xd3, //0x000015de vpmovmskb %ymm3, %edx + 0xc5, 0xfd, 0xd7, 0xf2, //0x000015e2 vpmovmskb %ymm2, %esi + 0xc5, 0xe5, 0xeb, 0xc0, //0x000015e6 vpor %ymm0, %ymm3, %ymm0 + 0xc5, 0xed, 0xeb, 0xc9, //0x000015ea vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000015ee vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x000015f2 vpmovmskb %ymm0, %eax + 0x48, 0xf7, 0xd0, //0x000015f6 notq %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000015f9 bsfq %rax, %rcx + 0x83, 0xf9, 0x20, //0x000015fd cmpl $32, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00001600 je LBB0_275 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001606 movl $-1, %eax + 0xd3, 0xe0, //0x0000160b shll %cl, %eax + 0xf7, 0xd0, //0x0000160d notl %eax + 0x21, 0xc7, //0x0000160f andl %eax, %edi + 0x21, 0xc2, //0x00001611 andl %eax, %edx + 0x21, 0xf0, //0x00001613 andl %esi, %eax + 0x89, 0xc6, //0x00001615 movl %eax, %esi + //0x00001617 LBB0_275 + 0x8d, 0x5f, 0xff, //0x00001617 leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x0000161a andl %edi, %ebx + 0x0f, 0x85, 0xb0, 0x06, 0x00, 0x00, //0x0000161c jne LBB0_349 + 0x8d, 0x5a, 0xff, //0x00001622 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x00001625 andl %edx, %ebx + 0x0f, 0x85, 0xa5, 0x06, 0x00, 0x00, //0x00001627 jne LBB0_349 + 0x8d, 0x5e, 0xff, //0x0000162d leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x00001630 andl %esi, %ebx + 0x0f, 0x85, 0x9a, 0x06, 0x00, 0x00, //0x00001632 jne LBB0_349 + 0x85, 0xff, //0x00001638 testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000163a je LBB0_281 + 0x4c, 0x89, 0xd0, //0x00001640 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001643 subq %r9, %rax + 0x0f, 0xbc, 0xff, //0x00001646 bsfl %edi, %edi + 0x48, 0x01, 0xc7, //0x00001649 addq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x0000164c cmpq $-1, %r12 + 0x0f, 0x85, 0xa7, 0x07, 0x00, 0x00, //0x00001650 jne LBB0_354 + 0x49, 0x89, 0xfc, //0x00001656 movq %rdi, %r12 + //0x00001659 LBB0_281 + 0x85, 0xd2, //0x00001659 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000165b je LBB0_284 + 0x4c, 0x89, 0xd0, //0x00001661 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001664 subq %r9, %rax + 0x0f, 0xbc, 0xd2, //0x00001667 bsfl %edx, %edx + 0x48, 0x01, 0xc2, //0x0000166a addq %rax, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x0000166d cmpq $-1, %r11 + 0x0f, 0x85, 0x80, 0x06, 0x00, 0x00, //0x00001671 jne LBB0_351 + 0x49, 0x89, 0xd3, //0x00001677 movq %rdx, %r11 + //0x0000167a LBB0_284 + 0x85, 0xf6, //0x0000167a testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000167c je LBB0_287 + 0x4c, 0x89, 0xd0, //0x00001682 movq %r10, %rax + 0x4c, 0x29, 0xc8, //0x00001685 subq %r9, %rax + 0x0f, 0xbc, 0xd6, //0x00001688 bsfl %esi, %edx + 0x48, 0x01, 0xc2, //0x0000168b addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x0000168e cmpq $-1, %r8 + 0x0f, 0x85, 0x5f, 0x06, 0x00, 0x00, //0x00001692 jne LBB0_351 + 0x49, 0x89, 0xd0, //0x00001698 movq %rdx, %r8 + //0x0000169b LBB0_287 + 0x83, 0xf9, 0x20, //0x0000169b cmpl $32, %ecx + 0x0f, 0x85, 0x62, 0x02, 0x00, 0x00, //0x0000169e jne LBB0_496 + 0x49, 0x83, 0xc2, 0x20, //0x000016a4 addq $32, %r10 + 0x49, 0x83, 0xc6, 0xe0, //0x000016a8 addq $-32, %r14 + 0x49, 0x83, 0xfe, 0x1f, //0x000016ac cmpq $31, %r14 + 0x0f, 0x87, 0xfa, 0xfe, 0xff, 0xff, //0x000016b0 ja LBB0_273 + 0xc5, 0xf8, 0x77, //0x000016b6 vzeroupper + 0x4c, 0x8b, 0x75, 0xc0, //0x000016b9 movq $-64(%rbp), %r14 + //0x000016bd LBB0_290 + 0x49, 0x83, 0xfe, 0x10, //0x000016bd cmpq $16, %r14 + 0xc5, 0xfe, 0x6f, 0x2d, 0x37, 0xe9, 0xff, 0xff, //0x000016c1 vmovdqu $-5833(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x4f, 0xe9, 0xff, 0xff, //0x000016c9 vmovdqu $-5809(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x67, 0xe9, 0xff, 0xff, //0x000016d1 vmovdqu $-5785(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x7f, 0xe9, 0xff, 0xff, //0x000016d9 vmovdqu $-5761(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000016e1 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0x92, 0xe9, 0xff, 0xff, //0x000016e6 vmovdqu $-5742(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xaa, 0xe9, 0xff, 0xff, //0x000016ee vmovdqu $-5718(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xc2, 0xe9, 0xff, 0xff, //0x000016f6 vmovdqu $-5694(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xda, 0xe9, 0xff, 0xff, //0x000016fe vmovdqu $-5670(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xf2, 0xe9, 0xff, 0xff, //0x00001706 vmovdqu $-5646(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x0a, 0xea, 0xff, 0xff, //0x0000170e vmovdqu $-5622(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x0f, 0x82, 0x55, 0x01, 0x00, 0x00, //0x00001716 jb LBB0_309 + 0x4d, 0x8d, 0x56, 0xf0, //0x0000171c leaq $-16(%r14), %r10 + 0x4c, 0x89, 0xd0, //0x00001720 movq %r10, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001723 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x38, 0x10, //0x00001727 leaq $16(%rax,%r15), %rax + 0x48, 0x89, 0x45, 0xc0, //0x0000172c movq %rax, $-64(%rbp) + 0x41, 0x83, 0xe2, 0x0f, //0x00001730 andl $15, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001734 .p2align 4, 0x90 + //0x00001740 LBB0_292 + 0xc4, 0xc1, 0x7a, 0x6f, 0x07, //0x00001740 vmovdqu (%r15), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0xf3, 0xe9, 0xff, 0xff, //0x00001745 vpcmpgtb $-5645(%rip), %xmm0, %xmm1 /* LCPI0_10+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x15, 0xfb, 0xe9, 0xff, 0xff, //0x0000174d vmovdqu $-5637(%rip), %xmm2 /* LCPI0_11+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00001755 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xf1, 0xdb, 0xca, //0x00001759 vpand %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x74, 0x15, 0xfb, 0xe9, 0xff, 0xff, //0x0000175d vpcmpeqb $-5637(%rip), %xmm0, %xmm2 /* LCPI0_12+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x1d, 0x03, 0xea, 0xff, 0xff, //0x00001765 vpcmpeqb $-5629(%rip), %xmm0, %xmm3 /* LCPI0_13+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xd2, //0x0000176d vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xf9, 0xeb, 0x1d, 0x07, 0xea, 0xff, 0xff, //0x00001771 vpor $-5625(%rip), %xmm0, %xmm3 /* LCPI0_14+0(%rip) */ + 0xc5, 0xf9, 0x74, 0x05, 0x0f, 0xea, 0xff, 0xff, //0x00001779 vpcmpeqb $-5617(%rip), %xmm0, %xmm0 /* LCPI0_15+0(%rip) */ + 0xc5, 0xe1, 0x74, 0x1d, 0x17, 0xea, 0xff, 0xff, //0x00001781 vpcmpeqb $-5609(%rip), %xmm3, %xmm3 /* LCPI0_16+0(%rip) */ + 0xc5, 0xe1, 0xeb, 0xe0, //0x00001789 vpor %xmm0, %xmm3, %xmm4 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000178d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xd9, 0xeb, 0xc9, //0x00001791 vpor %xmm1, %xmm4, %xmm1 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00001795 vpmovmskb %xmm0, %edi + 0xc5, 0xf9, 0xd7, 0xf3, //0x00001799 vpmovmskb %xmm3, %esi + 0xc5, 0xf9, 0xd7, 0xd2, //0x0000179d vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0xd7, 0xc1, //0x000017a1 vpmovmskb %xmm1, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000017a5 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x000017aa xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000017ad bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x000017b1 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000017b4 je LBB0_294 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000017ba movl $-1, %eax + 0xd3, 0xe0, //0x000017bf shll %cl, %eax + 0xf7, 0xd0, //0x000017c1 notl %eax + 0x21, 0xc7, //0x000017c3 andl %eax, %edi + 0x21, 0xc6, //0x000017c5 andl %eax, %esi + 0x21, 0xd0, //0x000017c7 andl %edx, %eax + 0x89, 0xc2, //0x000017c9 movl %eax, %edx + //0x000017cb LBB0_294 + 0x8d, 0x5f, 0xff, //0x000017cb leal $-1(%rdi), %ebx + 0x21, 0xfb, //0x000017ce andl %edi, %ebx + 0x0f, 0x85, 0x0f, 0x06, 0x00, 0x00, //0x000017d0 jne LBB0_353 + 0x8d, 0x5e, 0xff, //0x000017d6 leal $-1(%rsi), %ebx + 0x21, 0xf3, //0x000017d9 andl %esi, %ebx + 0x0f, 0x85, 0x04, 0x06, 0x00, 0x00, //0x000017db jne LBB0_353 + 0x8d, 0x5a, 0xff, //0x000017e1 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000017e4 andl %edx, %ebx + 0x0f, 0x85, 0xf9, 0x05, 0x00, 0x00, //0x000017e6 jne LBB0_353 + 0x85, 0xff, //0x000017ec testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000017ee je LBB0_300 + 0x4c, 0x89, 0xf8, //0x000017f4 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x000017f7 subq %r9, %rax + 0x0f, 0xbc, 0xff, //0x000017fa bsfl %edi, %edi + 0x48, 0x01, 0xc7, //0x000017fd addq %rax, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x00001800 cmpq $-1, %r12 + 0x0f, 0x85, 0xf3, 0x05, 0x00, 0x00, //0x00001804 jne LBB0_354 + 0x49, 0x89, 0xfc, //0x0000180a movq %rdi, %r12 + //0x0000180d LBB0_300 + 0x85, 0xf6, //0x0000180d testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x0000180f je LBB0_303 + 0x4c, 0x89, 0xf8, //0x00001815 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001818 subq %r9, %rax + 0x0f, 0xbc, 0xf6, //0x0000181b bsfl %esi, %esi + 0x48, 0x01, 0xc6, //0x0000181e addq %rax, %rsi + 0x49, 0x83, 0xfb, 0xff, //0x00001821 cmpq $-1, %r11 + 0x0f, 0x85, 0x4e, 0x06, 0x00, 0x00, //0x00001825 jne LBB0_359 + 0x49, 0x89, 0xf3, //0x0000182b movq %rsi, %r11 + //0x0000182e LBB0_303 + 0x85, 0xd2, //0x0000182e testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00001830 je LBB0_306 + 0x4c, 0x89, 0xf8, //0x00001836 movq %r15, %rax + 0x4c, 0x29, 0xc8, //0x00001839 subq %r9, %rax + 0x0f, 0xbc, 0xd2, //0x0000183c bsfl %edx, %edx + 0x48, 0x01, 0xc2, //0x0000183f addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001842 cmpq $-1, %r8 + 0x0f, 0x85, 0xab, 0x04, 0x00, 0x00, //0x00001846 jne LBB0_351 + 0x49, 0x89, 0xd0, //0x0000184c movq %rdx, %r8 + //0x0000184f LBB0_306 + 0x83, 0xf9, 0x10, //0x0000184f cmpl $16, %ecx + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00001852 jne LBB0_325 + 0x49, 0x83, 0xc7, 0x10, //0x00001858 addq $16, %r15 + 0x49, 0x83, 0xc6, 0xf0, //0x0000185c addq $-16, %r14 + 0x49, 0x83, 0xfe, 0x0f, //0x00001860 cmpq $15, %r14 + 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00001864 ja LBB0_292 + 0x4d, 0x89, 0xd6, //0x0000186a movq %r10, %r14 + 0x4c, 0x8b, 0x7d, 0xc0, //0x0000186d movq $-64(%rbp), %r15 + //0x00001871 LBB0_309 + 0x4d, 0x85, 0xf6, //0x00001871 testq %r14, %r14 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001874 movq $-48(%rbp), %r10 + 0x0f, 0x84, 0xe6, 0x00, 0x00, 0x00, //0x00001878 je LBB0_326 + 0x4b, 0x8d, 0x0c, 0x37, //0x0000187e leaq (%r15,%r14), %rcx + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00001882 jmp LBB0_314 + //0x00001887 LBB0_311 + 0x49, 0x89, 0xd7, //0x00001887 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x0000188a subq %r9, %r15 + 0x49, 0x83, 0xf8, 0xff, //0x0000188d cmpq $-1, %r8 + 0x0f, 0x85, 0x26, 0x06, 0x00, 0x00, //0x00001891 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x00001897 decq %r15 + 0x4d, 0x89, 0xf8, //0x0000189a movq %r15, %r8 + 0x90, 0x90, 0x90, //0x0000189d .p2align 4, 0x90 + //0x000018a0 LBB0_313 + 0x49, 0x89, 0xd7, //0x000018a0 movq %rdx, %r15 + 0x49, 0xff, 0xce, //0x000018a3 decq %r14 + 0x0f, 0x84, 0xbc, 0x05, 0x00, 0x00, //0x000018a6 je LBB0_358 + //0x000018ac LBB0_314 + 0x41, 0x0f, 0xbe, 0x37, //0x000018ac movsbl (%r15), %esi + 0x83, 0xc6, 0xd5, //0x000018b0 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x000018b3 cmpl $58, %esi + 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x000018b6 ja LBB0_326 + 0x49, 0x8d, 0x57, 0x01, //0x000018bc leaq $1(%r15), %rdx + 0x48, 0x8d, 0x3d, 0x49, 0x13, 0x00, 0x00, //0x000018c0 leaq $4937(%rip), %rdi /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x04, 0xb7, //0x000018c7 movslq (%rdi,%rsi,4), %rax + 0x48, 0x01, 0xf8, //0x000018cb addq %rdi, %rax + 0xff, 0xe0, //0x000018ce jmpq *%rax + //0x000018d0 LBB0_316 + 0x49, 0x89, 0xd7, //0x000018d0 movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018d3 subq %r9, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x000018d6 cmpq $-1, %r11 + 0x0f, 0x85, 0xdd, 0x05, 0x00, 0x00, //0x000018da jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018e0 decq %r15 + 0x4d, 0x89, 0xfb, //0x000018e3 movq %r15, %r11 + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x000018e6 jmp LBB0_313 + //0x000018eb LBB0_318 + 0x49, 0x89, 0xd7, //0x000018eb movq %rdx, %r15 + 0x4d, 0x29, 0xcf, //0x000018ee subq %r9, %r15 + 0x49, 0x83, 0xfc, 0xff, //0x000018f1 cmpq $-1, %r12 + 0x0f, 0x85, 0xc2, 0x05, 0x00, 0x00, //0x000018f5 jne LBB0_365 + 0x49, 0xff, 0xcf, //0x000018fb decq %r15 + 0x4d, 0x89, 0xfc, //0x000018fe movq %r15, %r12 + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00001901 jmp LBB0_313 + //0x00001906 LBB0_496 + 0x49, 0x01, 0xca, //0x00001906 addq %rcx, %r10 + 0xc5, 0xf8, 0x77, //0x00001909 vzeroupper + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000190c vpcmpeqd %ymm9, %ymm9, %ymm9 + 0xc5, 0xfe, 0x6f, 0x3d, 0x27, 0xe7, 0xff, 0xff, //0x00001911 vmovdqu $-6361(%rip), %ymm7 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xff, 0xe6, 0xff, 0xff, //0x00001919 vmovdqu $-6401(%rip), %ymm6 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0xd7, 0xe6, 0xff, 0xff, //0x00001921 vmovdqu $-6441(%rip), %ymm5 /* LCPI0_0+0(%rip) */ + 0x4d, 0x89, 0xd7, //0x00001929 movq %r10, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x0000192c movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xdb, //0x00001930 testq %r11, %r11 + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00001933 jne LBB0_327 + 0xe9, 0x10, 0x10, 0x00, 0x00, //0x00001939 jmp LBB0_497 + //0x0000193e LBB0_320 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000193e movl $64, %edx + //0x00001943 LBB0_321 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001943 movq $-56(%rbp), %r14 + 0x49, 0x29, 0xc4, //0x00001947 subq %rax, %r12 + 0x48, 0x39, 0xca, //0x0000194a cmpq %rcx, %rdx + 0x0f, 0x82, 0x4d, 0x10, 0x00, 0x00, //0x0000194d jb LBB0_129 + //0x00001953 LBB0_322 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x00001953 leaq $1(%r12,%rcx), %r12 + 0xe9, 0xfd, 0x03, 0x00, 0x00, //0x00001958 jmp LBB0_323 + //0x0000195d LBB0_325 + 0x49, 0x01, 0xcf, //0x0000195d addq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001960 movq $-48(%rbp), %r10 + //0x00001964 LBB0_326 + 0x4d, 0x85, 0xdb, //0x00001964 testq %r11, %r11 + 0x0f, 0x84, 0xe1, 0x0f, 0x00, 0x00, //0x00001967 je LBB0_497 + //0x0000196d LBB0_327 + 0x4d, 0x85, 0xc0, //0x0000196d testq %r8, %r8 + 0x0f, 0x84, 0xd8, 0x0f, 0x00, 0x00, //0x00001970 je LBB0_497 + 0x4d, 0x85, 0xe4, //0x00001976 testq %r12, %r12 + 0x0f, 0x84, 0xcf, 0x0f, 0x00, 0x00, //0x00001979 je LBB0_497 + 0x4d, 0x29, 0xcf, //0x0000197f subq %r9, %r15 + 0x49, 0x8d, 0x4f, 0xff, //0x00001982 leaq $-1(%r15), %rcx + 0x49, 0x39, 0xcb, //0x00001986 cmpq %rcx, %r11 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00001989 je LBB0_335 + 0x49, 0x39, 0xcc, //0x0000198f cmpq %rcx, %r12 + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x00001992 je LBB0_335 + 0x49, 0x39, 0xc8, //0x00001998 cmpq %rcx, %r8 + 0x0f, 0x84, 0x59, 0x00, 0x00, 0x00, //0x0000199b je LBB0_335 + 0x4d, 0x85, 0xc0, //0x000019a1 testq %r8, %r8 + 0xc5, 0x7e, 0x6f, 0x05, 0xb4, 0xe6, 0xff, 0xff, //0x000019a4 vmovdqu $-6476(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0xcc, 0xe6, 0xff, 0xff, //0x000019ac vmovdqu $-6452(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0xe4, 0xe6, 0xff, 0xff, //0x000019b4 vmovdqu $-6428(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xfc, 0xe6, 0xff, 0xff, //0x000019bc vmovdqu $-6404(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0x14, 0xe7, 0xff, 0xff, //0x000019c4 vmovdqu $-6380(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0x2c, 0xe7, 0xff, 0xff, //0x000019cc vmovdqu $-6356(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0x44, 0xe7, 0xff, 0xff, //0x000019d4 vmovdqu $-6332(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0x0f, 0x8e, 0x58, 0x00, 0x00, 0x00, //0x000019dc jle LBB0_336 + 0x49, 0x8d, 0x40, 0xff, //0x000019e2 leaq $-1(%r8), %rax + 0x49, 0x39, 0xc3, //0x000019e6 cmpq %rax, %r11 + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000019e9 je LBB0_336 + 0x49, 0xf7, 0xd0, //0x000019ef notq %r8 + 0x4d, 0x89, 0xc7, //0x000019f2 movq %r8, %r15 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x000019f5 jmp LBB0_342 + //0x000019fa LBB0_335 + 0x49, 0xf7, 0xdf, //0x000019fa negq %r15 + 0xc5, 0x7e, 0x6f, 0x05, 0x5b, 0xe6, 0xff, 0xff, //0x000019fd vmovdqu $-6565(%rip), %ymm8 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x73, 0xe6, 0xff, 0xff, //0x00001a05 vmovdqu $-6541(%rip), %ymm10 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x1d, 0x8b, 0xe6, 0xff, 0xff, //0x00001a0d vmovdqu $-6517(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x25, 0xa3, 0xe6, 0xff, 0xff, //0x00001a15 vmovdqu $-6493(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x2d, 0xbb, 0xe6, 0xff, 0xff, //0x00001a1d vmovdqu $-6469(%rip), %ymm13 /* LCPI0_7+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x35, 0xd3, 0xe6, 0xff, 0xff, //0x00001a25 vmovdqu $-6445(%rip), %ymm14 /* LCPI0_8+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x3d, 0xeb, 0xe6, 0xff, 0xff, //0x00001a2d vmovdqu $-6421(%rip), %ymm15 /* LCPI0_9+0(%rip) */ + 0xe9, 0x24, 0x01, 0x00, 0x00, //0x00001a35 jmp LBB0_342 + //0x00001a3a LBB0_336 + 0x4c, 0x89, 0xe1, //0x00001a3a movq %r12, %rcx + 0x4c, 0x09, 0xd9, //0x00001a3d orq %r11, %rcx + 0x4d, 0x39, 0xdc, //0x00001a40 cmpq %r11, %r12 + 0x0f, 0x8c, 0x00, 0x01, 0x00, 0x00, //0x00001a43 jl LBB0_341 + 0x48, 0x85, 0xc9, //0x00001a49 testq %rcx, %rcx + 0x0f, 0x88, 0xf7, 0x00, 0x00, 0x00, //0x00001a4c js LBB0_341 + 0x49, 0xf7, 0xd4, //0x00001a52 notq %r12 + 0x4d, 0x89, 0xe7, //0x00001a55 movq %r12, %r15 + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x00001a58 jmp LBB0_342 + //0x00001a5d LBB0_339 + 0x4d, 0x29, 0xfb, //0x00001a5d subq %r15, %r11 + 0x44, 0x0f, 0xbc, 0xf3, //0x00001a60 bsfl %ebx, %r14d + 0xe9, 0x3d, 0x01, 0x00, 0x00, //0x00001a64 jmp LBB0_346 + //0x00001a69 LBB0_54 + 0x4c, 0x89, 0xf9, //0x00001a69 movq %r15, %rcx + 0x4c, 0x89, 0xcb, //0x00001a6c movq %r9, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001a6f cmpq $32, %rcx + 0x0f, 0x82, 0x0e, 0x05, 0x00, 0x00, //0x00001a73 jb LBB0_370 + //0x00001a79 LBB0_55 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001a79 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001a7d vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001a81 vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001a85 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001a89 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001a8d testl %esi, %esi + 0x0f, 0x85, 0x89, 0x04, 0x00, 0x00, //0x00001a8f jne LBB0_366 + 0x4d, 0x85, 0xf6, //0x00001a95 testq %r14, %r14 + 0x0f, 0x85, 0x97, 0x04, 0x00, 0x00, //0x00001a98 jne LBB0_368 + 0x45, 0x31, 0xf6, //0x00001a9e xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001aa1 testq %rdx, %rdx + 0x0f, 0x84, 0xd5, 0x04, 0x00, 0x00, //0x00001aa4 je LBB0_369 + //0x00001aaa LBB0_60 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001aaa bsfq %rdx, %rax + 0x4c, 0x29, 0xdb, //0x00001aae subq %r11, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001ab1 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001ab6 movq $-56(%rbp), %r14 + //0x00001aba LBB0_184 + 0x4d, 0x85, 0xe4, //0x00001aba testq %r12, %r12 + 0x0f, 0x88, 0xbb, 0x0c, 0x00, 0x00, //0x00001abd js LBB0_475 + 0x4d, 0x89, 0x22, //0x00001ac3 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001ac6 movq %r13, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001ac9 cmpq $0, $-88(%rbp) + 0x0f, 0x8f, 0x9c, 0xe7, 0xff, 0xff, //0x00001ace jg LBB0_3 + 0xe9, 0x00, 0x0d, 0x00, 0x00, //0x00001ad4 jmp LBB0_501 + //0x00001ad9 LBB0_84 + 0x4d, 0x89, 0xf2, //0x00001ad9 movq %r14, %r10 + 0x49, 0x89, 0xc4, //0x00001adc movq %rax, %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001adf movq $-56(%rbp), %r14 + 0x49, 0x83, 0xfa, 0x20, //0x00001ae3 cmpq $32, %r10 + 0x0f, 0x82, 0xd2, 0x05, 0x00, 0x00, //0x00001ae7 jb LBB0_388 + //0x00001aed LBB0_85 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001aed vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001af3 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001af7 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001afb vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001aff vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001b03 vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001b07 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001b0c vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001b10 vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001b14 testl %ecx, %ecx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b16 jne LBB0_379 + 0x4d, 0x85, 0xff, //0x00001b1c testq %r15, %r15 + 0x0f, 0x85, 0x09, 0x05, 0x00, 0x00, //0x00001b1f jne LBB0_381 + 0x45, 0x31, 0xff, //0x00001b25 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001b28 testq %rsi, %rsi + 0x0f, 0x84, 0x44, 0x05, 0x00, 0x00, //0x00001b2b je LBB0_382 + //0x00001b31 LBB0_88 + 0x48, 0x0f, 0xbc, 0xce, //0x00001b31 bsfq %rsi, %rcx + 0xe9, 0x40, 0x05, 0x00, 0x00, //0x00001b35 jmp LBB0_383 + //0x00001b3a LBB0_340 + 0x48, 0xf7, 0xd2, //0x00001b3a notq %rdx + 0x49, 0x89, 0xd6, //0x00001b3d movq %rdx, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001b40 movq $-48(%rbp), %rdx + 0xe9, 0x7a, 0xf5, 0xff, 0xff, //0x00001b44 jmp LBB0_197 + //0x00001b49 LBB0_341 + 0x48, 0x85, 0xc9, //0x00001b49 testq %rcx, %rcx + 0x49, 0x8d, 0x43, 0xff, //0x00001b4c leaq $-1(%r11), %rax + 0x49, 0xf7, 0xd3, //0x00001b50 notq %r11 + 0x4d, 0x0f, 0x48, 0xdf, //0x00001b53 cmovsq %r15, %r11 + 0x49, 0x39, 0xc4, //0x00001b57 cmpq %rax, %r12 + 0x4d, 0x0f, 0x44, 0xfb, //0x00001b5a cmoveq %r11, %r15 + //0x00001b5e LBB0_342 + 0x4d, 0x8b, 0x22, //0x00001b5e movq (%r10), %r12 + 0x4d, 0x85, 0xff, //0x00001b61 testq %r15, %r15 + 0x0f, 0x88, 0xee, 0x0d, 0x00, 0x00, //0x00001b64 js LBB0_499 + //0x00001b6a LBB0_343 + 0x4d, 0x01, 0xfc, //0x00001b6a addq %r15, %r12 + 0x4d, 0x89, 0x22, //0x00001b6d movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001b70 movq %r13, %rcx + 0x48, 0x83, 0x7d, 0xa8, 0x00, //0x00001b73 cmpq $0, $-88(%rbp) + 0x4c, 0x8b, 0x75, 0xc8, //0x00001b78 movq $-56(%rbp), %r14 + 0x0f, 0x8f, 0xee, 0xe6, 0xff, 0xff, //0x00001b7c jg LBB0_3 + 0xe9, 0x52, 0x0c, 0x00, 0x00, //0x00001b82 jmp LBB0_501 + //0x00001b87 LBB0_344 + 0x4d, 0x29, 0xfe, //0x00001b87 subq %r15, %r14 + 0x0f, 0xbc, 0xc3, //0x00001b8a bsfl %ebx, %eax + 0x4c, 0x01, 0xf0, //0x00001b8d addq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00001b90 notq %rax + 0x49, 0x89, 0xc6, //0x00001b93 movq %rax, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001b96 movq $-48(%rbp), %rdx + 0xe9, 0x24, 0xf5, 0xff, 0xff, //0x00001b9a jmp LBB0_197 + //0x00001b9f LBB0_345 + 0x4d, 0x29, 0xfb, //0x00001b9f subq %r15, %r11 + 0x45, 0x0f, 0xbc, 0xf1, //0x00001ba2 bsfl %r9d, %r14d + //0x00001ba6 LBB0_346 + 0x4d, 0x01, 0xde, //0x00001ba6 addq %r11, %r14 + 0x49, 0xf7, 0xd6, //0x00001ba9 notq %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001bac movq $-48(%rbp), %rdx + 0xe9, 0x0e, 0xf5, 0xff, 0xff, //0x00001bb0 jmp LBB0_197 + //0x00001bb5 LBB0_347 + 0x48, 0xf7, 0xd7, //0x00001bb5 notq %rdi + 0x49, 0x89, 0xfe, //0x00001bb8 movq %rdi, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001bbb movq $-48(%rbp), %rdx + 0xe9, 0xff, 0xf4, 0xff, 0xff, //0x00001bbf jmp LBB0_197 + //0x00001bc4 LBB0_101 + 0x4c, 0x89, 0xf9, //0x00001bc4 movq %r15, %rcx + 0x4c, 0x89, 0xc3, //0x00001bc7 movq %r8, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001bca cmpq $32, %rcx + 0x0f, 0x82, 0x02, 0x06, 0x00, 0x00, //0x00001bce jb LBB0_402 + //0x00001bd4 LBB0_102 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001bd4 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001bd8 vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001bdc vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001be0 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001be4 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001be8 testl %esi, %esi + 0x0f, 0x85, 0x6f, 0x05, 0x00, 0x00, //0x00001bea jne LBB0_397 + 0x4d, 0x85, 0xf6, //0x00001bf0 testq %r14, %r14 + 0x0f, 0x85, 0x85, 0x05, 0x00, 0x00, //0x00001bf3 jne LBB0_399 + 0x45, 0x31, 0xf6, //0x00001bf9 xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001bfc testq %rdx, %rdx + 0x0f, 0x84, 0xc9, 0x05, 0x00, 0x00, //0x00001bff je LBB0_401 + //0x00001c05 LBB0_107 + 0x4d, 0x89, 0xe0, //0x00001c05 movq %r12, %r8 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001c08 bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001c0c subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001c0f leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001c14 movq $-56(%rbp), %r14 + //0x00001c18 LBB0_205 + 0x4d, 0x85, 0xe4, //0x00001c18 testq %r12, %r12 + 0x0f, 0x88, 0x87, 0x0b, 0x00, 0x00, //0x00001c1b js LBB0_478 + 0x4d, 0x89, 0x22, //0x00001c21 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001c24 movq %r13, %rcx + 0x4d, 0x85, 0xc0, //0x00001c27 testq %r8, %r8 + 0x0f, 0x8e, 0xa9, 0x0b, 0x00, 0x00, //0x00001c2a jle LBB0_501 + 0x49, 0x8b, 0x06, //0x00001c30 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001c33 cmpq $4095, %rax + 0x0f, 0x8f, 0x33, 0x0b, 0x00, 0x00, //0x00001c39 jg LBB0_489 + 0x48, 0x8d, 0x48, 0x01, //0x00001c3f leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00001c43 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001c46 movq $4, $8(%r14,%rax,8) + 0xe9, 0x1c, 0xe6, 0xff, 0xff, //0x00001c4f jmp LBB0_3 + //0x00001c54 LBB0_120 + 0x4c, 0x89, 0xf3, //0x00001c54 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001c57 movq $-96(%rbp), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001c5b movq $-56(%rbp), %r14 + 0x48, 0x83, 0xfb, 0x20, //0x00001c5f cmpq $32, %rbx + 0x0f, 0x82, 0xa3, 0x06, 0x00, 0x00, //0x00001c63 jb LBB0_420 + //0x00001c69 LBB0_121 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001c69 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001c6f vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001c73 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001c77 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001c7b vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001c7f vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001c83 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001c88 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001c8c vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001c90 testl %ecx, %ecx + 0x0f, 0x85, 0xd0, 0x05, 0x00, 0x00, //0x00001c92 jne LBB0_411 + 0x4d, 0x85, 0xff, //0x00001c98 testq %r15, %r15 + 0x0f, 0x85, 0xdf, 0x05, 0x00, 0x00, //0x00001c9b jne LBB0_413 + 0x45, 0x31, 0xff, //0x00001ca1 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001ca4 testq %rsi, %rsi + 0x0f, 0x84, 0x1e, 0x06, 0x00, 0x00, //0x00001ca7 je LBB0_414 + //0x00001cad LBB0_124 + 0x48, 0x0f, 0xbc, 0xce, //0x00001cad bsfq %rsi, %rcx + 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x00001cb1 jmp LBB0_415 + //0x00001cb6 LBB0_348 + 0x49, 0x89, 0xce, //0x00001cb6 movq %rcx, %r14 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001cb9 movq $-1, %rcx + 0x4d, 0x85, 0xe4, //0x00001cc0 testq %r12, %r12 + 0x48, 0x8b, 0x55, 0xd0, //0x00001cc3 movq $-48(%rbp), %rdx + 0x0f, 0x85, 0xf4, 0xf2, 0xff, 0xff, //0x00001cc7 jne LBB0_188 + 0xe9, 0xf3, 0x0a, 0x00, 0x00, //0x00001ccd jmp LBB0_481 + //0x00001cd2 LBB0_349 + 0x4d, 0x29, 0xca, //0x00001cd2 subq %r9, %r10 + 0x44, 0x0f, 0xbc, 0xfb, //0x00001cd5 bsfl %ebx, %r15d + 0x4d, 0x01, 0xd7, //0x00001cd9 addq %r10, %r15 + 0x49, 0xf7, 0xd7, //0x00001cdc notq %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001cdf movq $-48(%rbp), %r10 + 0xe9, 0x76, 0xfe, 0xff, 0xff, //0x00001ce3 jmp LBB0_342 + //0x00001ce8 LBB0_350 + 0x48, 0xf7, 0xd6, //0x00001ce8 notq %rsi + 0x49, 0x89, 0xf6, //0x00001ceb movq %rsi, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001cee movq $-48(%rbp), %rdx + 0xe9, 0xcc, 0xf3, 0xff, 0xff, //0x00001cf2 jmp LBB0_197 + //0x00001cf7 LBB0_351 + 0x48, 0xf7, 0xd2, //0x00001cf7 notq %rdx + 0x49, 0x89, 0xd7, //0x00001cfa movq %rdx, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001cfd movq $-48(%rbp), %r10 + 0xe9, 0x58, 0xfe, 0xff, 0xff, //0x00001d01 jmp LBB0_342 + //0x00001d06 LBB0_220 + 0x4c, 0x89, 0xf9, //0x00001d06 movq %r15, %rcx + 0x4c, 0x89, 0xc3, //0x00001d09 movq %r8, %rbx + 0x48, 0x83, 0xf9, 0x20, //0x00001d0c cmpq $32, %rcx + 0x0f, 0x82, 0xfd, 0x07, 0x00, 0x00, //0x00001d10 jb LBB0_443 + //0x00001d16 LBB0_221 + 0xc5, 0xfe, 0x6f, 0x03, //0x00001d16 vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001d1a vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x00001d1e vpmovmskb %ymm1, %edx + 0xc5, 0xfd, 0x74, 0xc7, //0x00001d22 vpcmpeqb %ymm7, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xf0, //0x00001d26 vpmovmskb %ymm0, %esi + 0x85, 0xf6, //0x00001d2a testl %esi, %esi + 0x0f, 0x85, 0x6a, 0x07, 0x00, 0x00, //0x00001d2c jne LBB0_438 + 0x4d, 0x85, 0xf6, //0x00001d32 testq %r14, %r14 + 0x0f, 0x85, 0x80, 0x07, 0x00, 0x00, //0x00001d35 jne LBB0_440 + 0x45, 0x31, 0xf6, //0x00001d3b xorl %r14d, %r14d + 0x48, 0x85, 0xd2, //0x00001d3e testq %rdx, %rdx + 0x0f, 0x84, 0xc4, 0x07, 0x00, 0x00, //0x00001d41 je LBB0_442 + //0x00001d47 LBB0_226 + 0x4d, 0x89, 0xe0, //0x00001d47 movq %r12, %r8 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001d4a bsfq %rdx, %rax + 0x4c, 0x29, 0xcb, //0x00001d4e subq %r9, %rbx + 0x4c, 0x8d, 0x64, 0x03, 0x01, //0x00001d51 leaq $1(%rbx,%rax), %r12 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001d56 movq $-56(%rbp), %r14 + //0x00001d5a LBB0_323 + 0x4d, 0x85, 0xe4, //0x00001d5a testq %r12, %r12 + 0x0f, 0x88, 0x45, 0x0a, 0x00, 0x00, //0x00001d5d js LBB0_478 + 0x4d, 0x89, 0x22, //0x00001d63 movq %r12, (%r10) + 0x4c, 0x89, 0xe9, //0x00001d66 movq %r13, %rcx + 0x4d, 0x85, 0xc0, //0x00001d69 testq %r8, %r8 + 0x0f, 0x8f, 0xfe, 0xe4, 0xff, 0xff, //0x00001d6c jg LBB0_3 + 0xe9, 0x62, 0x0a, 0x00, 0x00, //0x00001d72 jmp LBB0_501 + //0x00001d77 LBB0_352 + 0x49, 0xf7, 0xde, //0x00001d77 negq %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00001d7a movq $-48(%rbp), %rdx + 0xe9, 0x40, 0xf3, 0xff, 0xff, //0x00001d7e jmp LBB0_197 + //0x00001d83 LBB0_259 + 0x4c, 0x89, 0xf3, //0x00001d83 movq %r14, %rbx + 0x4c, 0x8b, 0x65, 0xa0, //0x00001d86 movq $-96(%rbp), %r12 + 0x48, 0x83, 0xfb, 0x20, //0x00001d8a cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001d8e movq $-56(%rbp), %r14 + 0x0f, 0x82, 0xb1, 0x08, 0x00, 0x00, //0x00001d92 jb LBB0_460 + //0x00001d98 LBB0_260 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00001d98 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xce, //0x00001d9e vpcmpeqb %ymm6, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xf1, //0x00001da2 vpmovmskb %ymm1, %esi + 0xc5, 0xfd, 0x74, 0xcf, //0x00001da6 vpcmpeqb %ymm7, %ymm0, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc9, //0x00001daa vpmovmskb %ymm1, %ecx + 0xc5, 0xbd, 0x64, 0xc8, //0x00001dae vpcmpgtb %ymm0, %ymm8, %ymm1 + 0xc4, 0xc1, 0x7d, 0x64, 0xc1, //0x00001db2 vpcmpgtb %ymm9, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00001db7 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc8, //0x00001dbb vpmovmskb %ymm0, %r9d + 0x85, 0xc9, //0x00001dbf testl %ecx, %ecx + 0x0f, 0x85, 0xde, 0x07, 0x00, 0x00, //0x00001dc1 jne LBB0_452 + 0x4d, 0x85, 0xff, //0x00001dc7 testq %r15, %r15 + 0x0f, 0x85, 0xed, 0x07, 0x00, 0x00, //0x00001dca jne LBB0_454 + 0x45, 0x31, 0xff, //0x00001dd0 xorl %r15d, %r15d + 0x48, 0x85, 0xf6, //0x00001dd3 testq %rsi, %rsi + 0x0f, 0x84, 0x2c, 0x08, 0x00, 0x00, //0x00001dd6 je LBB0_455 + //0x00001ddc LBB0_263 + 0x48, 0x0f, 0xbc, 0xce, //0x00001ddc bsfq %rsi, %rcx + 0xe9, 0x28, 0x08, 0x00, 0x00, //0x00001de0 jmp LBB0_456 + //0x00001de5 LBB0_353 + 0x4d, 0x29, 0xcf, //0x00001de5 subq %r9, %r15 + 0x0f, 0xbc, 0xc3, //0x00001de8 bsfl %ebx, %eax + 0x4c, 0x01, 0xf8, //0x00001deb addq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00001dee notq %rax + 0x49, 0x89, 0xc7, //0x00001df1 movq %rax, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001df4 movq $-48(%rbp), %r10 + 0xe9, 0x61, 0xfd, 0xff, 0xff, //0x00001df8 jmp LBB0_342 + //0x00001dfd LBB0_354 + 0x48, 0xf7, 0xd7, //0x00001dfd notq %rdi + 0x49, 0x89, 0xff, //0x00001e00 movq %rdi, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e03 movq $-48(%rbp), %r10 + 0xe9, 0x52, 0xfd, 0xff, 0xff, //0x00001e07 jmp LBB0_342 + //0x00001e0c LBB0_355 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e0c movq $-1, %r8 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001e13 movq $-1, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e1a movq $-1, %rax + 0x4d, 0x89, 0xfe, //0x00001e21 movq %r15, %r14 + 0x49, 0x83, 0xfa, 0x10, //0x00001e24 cmpq $16, %r10 + 0x0f, 0x83, 0xc0, 0xea, 0xff, 0xff, //0x00001e28 jae LBB0_151 + 0xe9, 0x0d, 0xec, 0xff, 0xff, //0x00001e2e jmp LBB0_169 + //0x00001e33 LBB0_356 + 0x4d, 0x89, 0xcb, //0x00001e33 movq %r9, %r11 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e36 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x00001e3d xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001e40 cmpq $32, %rcx + 0x0f, 0x83, 0x2f, 0xfc, 0xff, 0xff, //0x00001e44 jae LBB0_55 + 0xe9, 0x38, 0x01, 0x00, 0x00, //0x00001e4a jmp LBB0_370 + //0x00001e4f LBB0_357 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001e4f movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00001e56 xorl %r15d, %r15d + 0x49, 0x83, 0xfa, 0x20, //0x00001e59 cmpq $32, %r10 + 0x0f, 0x83, 0x8a, 0xfc, 0xff, 0xff, //0x00001e5d jae LBB0_85 + 0xe9, 0x57, 0x02, 0x00, 0x00, //0x00001e63 jmp LBB0_388 + //0x00001e68 LBB0_358 + 0x49, 0x89, 0xcf, //0x00001e68 movq %rcx, %r15 + 0x4d, 0x85, 0xdb, //0x00001e6b testq %r11, %r11 + 0x0f, 0x85, 0xf9, 0xfa, 0xff, 0xff, //0x00001e6e jne LBB0_327 + 0xe9, 0xd5, 0x0a, 0x00, 0x00, //0x00001e74 jmp LBB0_497 + //0x00001e79 LBB0_359 + 0x48, 0xf7, 0xd6, //0x00001e79 notq %rsi + 0x49, 0x89, 0xf7, //0x00001e7c movq %rsi, %r15 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001e7f movq $-48(%rbp), %r10 + 0xe9, 0xd6, 0xfc, 0xff, 0xff, //0x00001e83 jmp LBB0_342 + //0x00001e88 LBB0_360 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001e88 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001e8f xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001e92 cmpq $32, %rcx + 0x0f, 0x83, 0x38, 0xfd, 0xff, 0xff, //0x00001e96 jae LBB0_102 + 0xe9, 0x35, 0x03, 0x00, 0x00, //0x00001e9c jmp LBB0_402 + //0x00001ea1 LBB0_361 + 0x49, 0x89, 0xc8, //0x00001ea1 movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ea4 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001eab xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001eae cmpq $32, %rbx + 0x0f, 0x83, 0xb1, 0xfd, 0xff, 0xff, //0x00001eb2 jae LBB0_121 + 0xe9, 0x4f, 0x04, 0x00, 0x00, //0x00001eb8 jmp LBB0_420 + //0x00001ebd LBB0_365 + 0x49, 0xf7, 0xdf, //0x00001ebd negq %r15 + 0xe9, 0x99, 0xfc, 0xff, 0xff, //0x00001ec0 jmp LBB0_342 + //0x00001ec5 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001ec5 movq $-1, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ecc movq $-1, %r11 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001ed3 movq $-1, %r12 + 0x4d, 0x89, 0xcf, //0x00001eda movq %r9, %r15 + 0xe9, 0xdb, 0xf7, 0xff, 0xff, //0x00001edd jmp LBB0_290 + //0x00001ee2 LBB0_363 + 0x49, 0x89, 0xd1, //0x00001ee2 movq %rdx, %r9 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ee5 movq $-1, %r11 + 0x45, 0x31, 0xf6, //0x00001eec xorl %r14d, %r14d + 0x48, 0x83, 0xf9, 0x20, //0x00001eef cmpq $32, %rcx + 0x0f, 0x83, 0x1d, 0xfe, 0xff, 0xff, //0x00001ef3 jae LBB0_221 + 0xe9, 0x15, 0x06, 0x00, 0x00, //0x00001ef9 jmp LBB0_443 + //0x00001efe LBB0_364 + 0x49, 0x89, 0xc8, //0x00001efe movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001f01 movq $-1, %r11 + 0x45, 0x31, 0xff, //0x00001f08 xorl %r15d, %r15d + 0x48, 0x83, 0xfb, 0x20, //0x00001f0b cmpq $32, %rbx + 0x4c, 0x8b, 0x75, 0xc8, //0x00001f0f movq $-56(%rbp), %r14 + 0x0f, 0x83, 0x7f, 0xfe, 0xff, 0xff, //0x00001f13 jae LBB0_260 + 0xe9, 0x2b, 0x07, 0x00, 0x00, //0x00001f19 jmp LBB0_460 + //0x00001f1e LBB0_366 + 0x49, 0x83, 0xf8, 0xff, //0x00001f1e cmpq $-1, %r8 + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00001f22 jne LBB0_368 + 0x48, 0x89, 0xd8, //0x00001f28 movq %rbx, %rax + 0x4c, 0x29, 0xd8, //0x00001f2b subq %r11, %rax + 0x4c, 0x0f, 0xbc, 0xc6, //0x00001f2e bsfq %rsi, %r8 + 0x49, 0x01, 0xc0, //0x00001f32 addq %rax, %r8 + //0x00001f35 LBB0_368 + 0x44, 0x89, 0xf0, //0x00001f35 movl %r14d, %eax + 0xf7, 0xd0, //0x00001f38 notl %eax + 0x21, 0xf0, //0x00001f3a andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00001f3c leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x00001f40 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x00001f43 movl %r9d, %edi + 0xf7, 0xd7, //0x00001f46 notl %edi + 0x21, 0xf7, //0x00001f48 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001f4a andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x00001f50 xorl %r14d, %r14d + 0x01, 0xc7, //0x00001f53 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x00001f55 setb %r14b + 0x01, 0xff, //0x00001f59 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00001f5b xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x00001f61 andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001f64 movl $4294967295, %eax + 0x31, 0xf8, //0x00001f69 xorl %edi, %eax + 0x21, 0xc2, //0x00001f6b andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00001f6d movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001f71 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xd2, //0x00001f76 testq %rdx, %rdx + 0x0f, 0x85, 0x2b, 0xfb, 0xff, 0xff, //0x00001f79 jne LBB0_60 + //0x00001f7f LBB0_369 + 0x48, 0x83, 0xc3, 0x20, //0x00001f7f addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x00001f83 addq $-32, %rcx + //0x00001f87 LBB0_370 + 0x4d, 0x85, 0xf6, //0x00001f87 testq %r14, %r14 + 0x0f, 0x85, 0x1c, 0x04, 0x00, 0x00, //0x00001f8a jne LBB0_429 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001f90 movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00001f94 testq %rcx, %rcx + 0x0f, 0x84, 0xeb, 0x07, 0x00, 0x00, //0x00001f97 je LBB0_476 + //0x00001f9d LBB0_372 + 0x4c, 0x89, 0xdf, //0x00001f9d movq %r11, %rdi + 0x48, 0xf7, 0xd7, //0x00001fa0 notq %rdi + //0x00001fa3 LBB0_373 + 0x4c, 0x8d, 0x63, 0x01, //0x00001fa3 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00001fa7 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00001faa cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00001fad je LBB0_378 + 0x48, 0x8d, 0x71, 0xff, //0x00001fb3 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00001fb7 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001fba je LBB0_376 + 0x48, 0x89, 0xf1, //0x00001fc0 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00001fc3 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00001fc6 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00001fc9 jne LBB0_373 + 0xe9, 0xb4, 0x07, 0x00, 0x00, //0x00001fcf jmp LBB0_476 + //0x00001fd4 LBB0_376 + 0x48, 0x85, 0xf6, //0x00001fd4 testq %rsi, %rsi + 0x0f, 0x84, 0xba, 0x09, 0x00, 0x00, //0x00001fd7 je LBB0_433 + 0x49, 0x01, 0xfc, //0x00001fdd addq %rdi, %r12 + 0x49, 0x83, 0xf8, 0xff, //0x00001fe0 cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xc4, //0x00001fe4 cmoveq %r12, %r8 + 0x48, 0x83, 0xc3, 0x02, //0x00001fe8 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x00001fec addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00001ff0 movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001ff3 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00001ff7 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00001ffb vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002000 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002003 jne LBB0_373 + 0xe9, 0x7a, 0x07, 0x00, 0x00, //0x00002009 jmp LBB0_476 + //0x0000200e LBB0_378 + 0x4d, 0x29, 0xdc, //0x0000200e subq %r11, %r12 + 0xe9, 0xa4, 0xfa, 0xff, 0xff, //0x00002011 jmp LBB0_184 + //0x00002016 LBB0_379 + 0x49, 0x83, 0xf8, 0xff, //0x00002016 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000201a jne LBB0_381 + 0x4c, 0x89, 0xe2, //0x00002020 movq %r12, %rdx + 0x48, 0x2b, 0x55, 0xc0, //0x00002023 subq $-64(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xc1, //0x00002027 bsfq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x0000202b addq %rdx, %r8 + //0x0000202e LBB0_381 + 0x44, 0x89, 0xfa, //0x0000202e movl %r15d, %edx + 0xf7, 0xd2, //0x00002031 notl %edx + 0x21, 0xca, //0x00002033 andl %ecx, %edx + 0x8d, 0x1c, 0x12, //0x00002035 leal (%rdx,%rdx), %ebx + 0x44, 0x09, 0xfb, //0x00002038 orl %r15d, %ebx + 0x89, 0xdf, //0x0000203b movl %ebx, %edi + 0xf7, 0xd7, //0x0000203d notl %edi + 0x21, 0xcf, //0x0000203f andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002041 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00002047 xorl %r15d, %r15d + 0x01, 0xd7, //0x0000204a addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000204c setb %r15b + 0x01, 0xff, //0x00002050 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002052 xorl $1431655765, %edi + 0x21, 0xdf, //0x00002058 andl %ebx, %edi + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x0000205a movl $4294967295, %ecx + 0x31, 0xf9, //0x0000205f xorl %edi, %ecx + 0x21, 0xce, //0x00002061 andl %ecx, %esi + 0x4c, 0x8b, 0x75, 0xc8, //0x00002063 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002067 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000206c testq %rsi, %rsi + 0x0f, 0x85, 0xbc, 0xfa, 0xff, 0xff, //0x0000206f jne LBB0_88 + //0x00002075 LBB0_382 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002075 movl $64, %ecx + //0x0000207a LBB0_383 + 0x49, 0x0f, 0xbc, 0xd1, //0x0000207a bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x0000207e testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002081 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002086 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x0000208a testq %rsi, %rsi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000208d je LBB0_386 + 0x4c, 0x2b, 0x65, 0xc0, //0x00002093 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x00002097 cmpq %rcx, %rdi + 0x0f, 0x82, 0x12, 0x09, 0x00, 0x00, //0x0000209a jb LBB0_511 + 0x4d, 0x8d, 0x64, 0x0c, 0x01, //0x000020a0 leaq $1(%r12,%rcx), %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x000020a5 movq $-48(%rbp), %r10 + 0xe9, 0x0c, 0xfa, 0xff, 0xff, //0x000020a9 jmp LBB0_184 + //0x000020ae LBB0_386 + 0x45, 0x85, 0xc9, //0x000020ae testl %r9d, %r9d + 0x0f, 0x85, 0x0d, 0x09, 0x00, 0x00, //0x000020b1 jne LBB0_512 + 0x49, 0x83, 0xc4, 0x20, //0x000020b7 addq $32, %r12 + 0x49, 0x83, 0xc2, 0xe0, //0x000020bb addq $-32, %r10 + //0x000020bf LBB0_388 + 0x4d, 0x85, 0xff, //0x000020bf testq %r15, %r15 + 0x0f, 0x85, 0x1f, 0x03, 0x00, 0x00, //0x000020c2 jne LBB0_431 + 0x48, 0x8b, 0x45, 0xc0, //0x000020c8 movq $-64(%rbp), %rax + 0x4d, 0x85, 0xd2, //0x000020cc testq %r10, %r10 + 0x0f, 0x84, 0xc2, 0x08, 0x00, 0x00, //0x000020cf je LBB0_433 + //0x000020d5 LBB0_390 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x000020d5 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x000020da cmpb $34, %cl + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x000020dd je LBB0_396 + 0x80, 0xf9, 0x5c, //0x000020e3 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000020e6 je LBB0_394 + 0x80, 0xf9, 0x1f, //0x000020ec cmpb $31, %cl + 0x0f, 0x86, 0xed, 0x08, 0x00, 0x00, //0x000020ef jbe LBB0_513 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000020f5 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000020fc movl $1, %edx + 0x49, 0x01, 0xd4, //0x00002101 addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002104 addq %rcx, %r10 + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002107 jne LBB0_390 + 0xe9, 0x85, 0x08, 0x00, 0x00, //0x0000210d jmp LBB0_433 + //0x00002112 LBB0_394 + 0x49, 0x83, 0xfa, 0x01, //0x00002112 cmpq $1, %r10 + 0x0f, 0x84, 0x7b, 0x08, 0x00, 0x00, //0x00002116 je LBB0_433 + 0x4c, 0x89, 0xe1, //0x0000211c movq %r12, %rcx + 0x48, 0x29, 0xc1, //0x0000211f subq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002122 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002126 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000212a movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00002131 movl $2, %edx + 0x4c, 0x8b, 0x75, 0xc8, //0x00002136 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000213a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x0000213f addq %rdx, %r12 + 0x49, 0x01, 0xca, //0x00002142 addq %rcx, %r10 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x00002145 jne LBB0_390 + 0xe9, 0x47, 0x08, 0x00, 0x00, //0x0000214b jmp LBB0_433 + //0x00002150 LBB0_396 + 0x49, 0x29, 0xc4, //0x00002150 subq %rax, %r12 + 0x49, 0xff, 0xc4, //0x00002153 incq %r12 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002156 movq $-48(%rbp), %r10 + 0xe9, 0x5b, 0xf9, 0xff, 0xff, //0x0000215a jmp LBB0_184 + //0x0000215f LBB0_397 + 0x4d, 0x89, 0xc8, //0x0000215f movq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00002162 cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00002166 jne LBB0_400 + 0x48, 0x89, 0xd8, //0x0000216c movq %rbx, %rax + 0x4c, 0x29, 0xc0, //0x0000216f subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x00002172 bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x00002176 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002179 jmp LBB0_400 + //0x0000217e LBB0_399 + 0x4d, 0x89, 0xc8, //0x0000217e movq %r9, %r8 + //0x00002181 LBB0_400 + 0x44, 0x89, 0xf0, //0x00002181 movl %r14d, %eax + 0xf7, 0xd0, //0x00002184 notl %eax + 0x21, 0xf0, //0x00002186 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x00002188 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x0000218c orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x0000218f movl %r9d, %edi + 0xf7, 0xd7, //0x00002192 notl %edi + 0x21, 0xf7, //0x00002194 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002196 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x0000219c xorl %r14d, %r14d + 0x01, 0xc7, //0x0000219f addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000021a1 setb %r14b + 0x01, 0xff, //0x000021a5 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000021a7 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000021ad andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000021b0 movl $4294967295, %eax + 0x31, 0xf8, //0x000021b5 xorl %edi, %eax + 0x21, 0xc2, //0x000021b7 andl %eax, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000021b9 movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000021bd vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xc1, //0x000021c2 movq %r8, %r9 + 0x48, 0x85, 0xd2, //0x000021c5 testq %rdx, %rdx + 0x0f, 0x85, 0x37, 0xfa, 0xff, 0xff, //0x000021c8 jne LBB0_107 + //0x000021ce LBB0_401 + 0x48, 0x83, 0xc3, 0x20, //0x000021ce addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x000021d2 addq $-32, %rcx + //0x000021d6 LBB0_402 + 0x4d, 0x85, 0xf6, //0x000021d6 testq %r14, %r14 + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x000021d9 jne LBB0_434 + 0x4c, 0x8b, 0x75, 0xc8, //0x000021df movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x000021e3 testq %rcx, %rcx + 0x0f, 0x84, 0xc6, 0x05, 0x00, 0x00, //0x000021e6 je LBB0_479 + //0x000021ec LBB0_404 + 0x4d, 0x89, 0xe0, //0x000021ec movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x000021ef movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x000021f2 notq %rdi + //0x000021f5 LBB0_405 + 0x4c, 0x8d, 0x63, 0x01, //0x000021f5 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x000021f9 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x000021fc cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x000021ff je LBB0_410 + 0x48, 0x8d, 0x71, 0xff, //0x00002205 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002209 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000220c je LBB0_408 + 0x48, 0x89, 0xf1, //0x00002212 movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002215 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002218 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x0000221b jne LBB0_405 + 0xe9, 0x8c, 0x05, 0x00, 0x00, //0x00002221 jmp LBB0_479 + //0x00002226 LBB0_408 + 0x48, 0x85, 0xf6, //0x00002226 testq %rsi, %rsi + 0x0f, 0x84, 0xcf, 0x07, 0x00, 0x00, //0x00002229 je LBB0_516 + 0x49, 0x01, 0xfc, //0x0000222f addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x00002232 cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002236 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x0000223a addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000223e addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00002242 movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002245 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002249 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000224d vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x00002252 testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002255 jne LBB0_405 + 0xe9, 0x52, 0x05, 0x00, 0x00, //0x0000225b jmp LBB0_479 + //0x00002260 LBB0_410 + 0x4d, 0x29, 0xcc, //0x00002260 subq %r9, %r12 + 0xe9, 0xb0, 0xf9, 0xff, 0xff, //0x00002263 jmp LBB0_205 + //0x00002268 LBB0_411 + 0x49, 0x83, 0xfb, 0xff, //0x00002268 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000226c jne LBB0_413 + 0x4c, 0x89, 0xe0, //0x00002272 movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x00002275 subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x00002279 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x0000227d addq %rax, %r11 + //0x00002280 LBB0_413 + 0x44, 0x89, 0xf8, //0x00002280 movl %r15d, %eax + 0xf7, 0xd0, //0x00002283 notl %eax + 0x21, 0xc8, //0x00002285 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00002287 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x0000228a orl %r15d, %edx + 0x89, 0xd7, //0x0000228d movl %edx, %edi + 0xf7, 0xd7, //0x0000228f notl %edi + 0x21, 0xcf, //0x00002291 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002293 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00002299 xorl %r15d, %r15d + 0x01, 0xc7, //0x0000229c addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x0000229e setb %r15b + 0x01, 0xff, //0x000022a2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000022a4 xorl $1431655765, %edi + 0x21, 0xd7, //0x000022aa andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000022ac movl $4294967295, %eax + 0x31, 0xf8, //0x000022b1 xorl %edi, %eax + 0x21, 0xc6, //0x000022b3 andl %eax, %esi + 0x4c, 0x8b, 0x55, 0xd0, //0x000022b5 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000022b9 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000022bd vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x000022c2 testq %rsi, %rsi + 0x0f, 0x85, 0xe2, 0xf9, 0xff, 0xff, //0x000022c5 jne LBB0_124 + //0x000022cb LBB0_414 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000022cb movl $64, %ecx + //0x000022d0 LBB0_415 + 0x49, 0x0f, 0xbc, 0xd1, //0x000022d0 bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x000022d4 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x000022d7 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x000022dc cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x000022e0 testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000022e3 je LBB0_418 + 0x4c, 0x2b, 0x65, 0xc0, //0x000022e9 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x000022ed cmpq %rcx, %rdi + 0x0f, 0x83, 0x1a, 0xee, 0xff, 0xff, //0x000022f0 jae LBB0_204 + 0xe9, 0xd5, 0x06, 0x00, 0x00, //0x000022f6 jmp LBB0_417 + //0x000022fb LBB0_418 + 0x45, 0x85, 0xc9, //0x000022fb testl %r9d, %r9d + 0x0f, 0x85, 0xe6, 0x06, 0x00, 0x00, //0x000022fe jne LBB0_514 + 0x49, 0x83, 0xc4, 0x20, //0x00002304 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002308 addq $-32, %rbx + //0x0000230c LBB0_420 + 0x4d, 0x85, 0xff, //0x0000230c testq %r15, %r15 + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x0000230f jne LBB0_436 + 0x48, 0x8b, 0x75, 0xc0, //0x00002315 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002319 testq %rbx, %rbx + 0x0f, 0x84, 0x90, 0x04, 0x00, 0x00, //0x0000231c je LBB0_479 + //0x00002322 LBB0_422 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002322 movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002327 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x0000232a je LBB0_428 + 0x80, 0xf9, 0x5c, //0x00002330 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002333 je LBB0_426 + 0x80, 0xf9, 0x1f, //0x00002339 cmpb $31, %cl + 0x0f, 0x86, 0xb4, 0x06, 0x00, 0x00, //0x0000233c jbe LBB0_515 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002342 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002349 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000234e addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x00002351 addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002354 jne LBB0_422 + 0xe9, 0x53, 0x04, 0x00, 0x00, //0x0000235a jmp LBB0_479 + //0x0000235f LBB0_426 + 0x48, 0x83, 0xfb, 0x01, //0x0000235f cmpq $1, %rbx + 0x0f, 0x84, 0x95, 0x06, 0x00, 0x00, //0x00002363 je LBB0_516 + 0x4c, 0x89, 0xe0, //0x00002369 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x0000236c subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000236f cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002373 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002377 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x0000237e movl $2, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002383 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002387 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000238b vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x00002390 addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x00002393 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00002396 jne LBB0_422 + 0xe9, 0x11, 0x04, 0x00, 0x00, //0x0000239c jmp LBB0_479 + //0x000023a1 LBB0_428 + 0x49, 0x29, 0xf4, //0x000023a1 subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000023a4 incq %r12 + 0xe9, 0x6c, 0xf8, 0xff, 0xff, //0x000023a7 jmp LBB0_205 + //0x000023ac LBB0_429 + 0x48, 0x85, 0xc9, //0x000023ac testq %rcx, %rcx + 0x0f, 0x84, 0xe2, 0x05, 0x00, 0x00, //0x000023af je LBB0_433 + 0x4c, 0x89, 0xd8, //0x000023b5 movq %r11, %rax + 0x48, 0xf7, 0xd0, //0x000023b8 notq %rax + 0x48, 0x01, 0xd8, //0x000023bb addq %rbx, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023be cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023c2 cmoveq %rax, %r8 + 0x48, 0xff, 0xc3, //0x000023c6 incq %rbx + 0x48, 0xff, 0xc9, //0x000023c9 decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x000023cc movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000023d0 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000023d4 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x000023d9 testq %rcx, %rcx + 0x0f, 0x85, 0xbb, 0xfb, 0xff, 0xff, //0x000023dc jne LBB0_372 + 0xe9, 0xa1, 0x03, 0x00, 0x00, //0x000023e2 jmp LBB0_476 + //0x000023e7 LBB0_431 + 0x4d, 0x85, 0xd2, //0x000023e7 testq %r10, %r10 + 0x0f, 0x84, 0xa7, 0x05, 0x00, 0x00, //0x000023ea je LBB0_433 + 0x48, 0x8b, 0x45, 0xc0, //0x000023f0 movq $-64(%rbp), %rax + 0x48, 0x89, 0xc1, //0x000023f4 movq %rax, %rcx + 0x48, 0xf7, 0xd1, //0x000023f7 notq %rcx + 0x4c, 0x01, 0xe1, //0x000023fa addq %r12, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000023fd cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002401 cmoveq %rcx, %r8 + 0x49, 0xff, 0xc4, //0x00002405 incq %r12 + 0x49, 0xff, 0xca, //0x00002408 decq %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000240b movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000240f vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x85, 0xd2, //0x00002414 testq %r10, %r10 + 0x0f, 0x85, 0xb8, 0xfc, 0xff, 0xff, //0x00002417 jne LBB0_390 + 0xe9, 0x75, 0x05, 0x00, 0x00, //0x0000241d jmp LBB0_433 + //0x00002422 LBB0_434 + 0x48, 0x85, 0xc9, //0x00002422 testq %rcx, %rcx + 0x0f, 0x84, 0xd3, 0x05, 0x00, 0x00, //0x00002425 je LBB0_516 + 0x4c, 0x89, 0xc8, //0x0000242b movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x0000242e notq %rax + 0x48, 0x01, 0xd8, //0x00002431 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002434 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002438 cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x0000243c incq %rbx + 0x48, 0xff, 0xc9, //0x0000243f decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002442 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002446 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000244a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x0000244f testq %rcx, %rcx + 0x0f, 0x85, 0x94, 0xfd, 0xff, 0xff, //0x00002452 jne LBB0_404 + 0xe9, 0x55, 0x03, 0x00, 0x00, //0x00002458 jmp LBB0_479 + //0x0000245d LBB0_436 + 0x48, 0x85, 0xdb, //0x0000245d testq %rbx, %rbx + 0x0f, 0x84, 0x98, 0x05, 0x00, 0x00, //0x00002460 je LBB0_516 + 0x48, 0x8b, 0x75, 0xc0, //0x00002466 movq $-64(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x0000246a movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x0000246d notq %rax + 0x4c, 0x01, 0xe0, //0x00002470 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00002473 cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x00002477 cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x0000247b incq %r12 + 0x48, 0xff, 0xcb, //0x0000247e decq %rbx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002481 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002485 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002489 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x0000248e testq %rbx, %rbx + 0x0f, 0x85, 0x8b, 0xfe, 0xff, 0xff, //0x00002491 jne LBB0_422 + 0xe9, 0x16, 0x03, 0x00, 0x00, //0x00002497 jmp LBB0_479 + //0x0000249c LBB0_438 + 0x4d, 0x89, 0xc8, //0x0000249c movq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x0000249f cmpq $-1, %r11 + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x000024a3 jne LBB0_441 + 0x48, 0x89, 0xd8, //0x000024a9 movq %rbx, %rax + 0x4c, 0x29, 0xc0, //0x000024ac subq %r8, %rax + 0x4c, 0x0f, 0xbc, 0xde, //0x000024af bsfq %rsi, %r11 + 0x49, 0x01, 0xc3, //0x000024b3 addq %rax, %r11 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000024b6 jmp LBB0_441 + //0x000024bb LBB0_440 + 0x4d, 0x89, 0xc8, //0x000024bb movq %r9, %r8 + //0x000024be LBB0_441 + 0x44, 0x89, 0xf0, //0x000024be movl %r14d, %eax + 0xf7, 0xd0, //0x000024c1 notl %eax + 0x21, 0xf0, //0x000024c3 andl %esi, %eax + 0x44, 0x8d, 0x0c, 0x00, //0x000024c5 leal (%rax,%rax), %r9d + 0x45, 0x09, 0xf1, //0x000024c9 orl %r14d, %r9d + 0x44, 0x89, 0xcf, //0x000024cc movl %r9d, %edi + 0xf7, 0xd7, //0x000024cf notl %edi + 0x21, 0xf7, //0x000024d1 andl %esi, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000024d3 andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x000024d9 xorl %r14d, %r14d + 0x01, 0xc7, //0x000024dc addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x000024de setb %r14b + 0x01, 0xff, //0x000024e2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000024e4 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x000024ea andl %r9d, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000024ed movl $4294967295, %eax + 0x31, 0xc7, //0x000024f2 xorl %eax, %edi + 0x21, 0xfa, //0x000024f4 andl %edi, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000024f6 movq $-48(%rbp), %r10 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000024fa vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x4d, 0x89, 0xc1, //0x000024ff movq %r8, %r9 + 0x48, 0x85, 0xd2, //0x00002502 testq %rdx, %rdx + 0x0f, 0x85, 0x3c, 0xf8, 0xff, 0xff, //0x00002505 jne LBB0_226 + //0x0000250b LBB0_442 + 0x48, 0x83, 0xc3, 0x20, //0x0000250b addq $32, %rbx + 0x48, 0x83, 0xc1, 0xe0, //0x0000250f addq $-32, %rcx + //0x00002513 LBB0_443 + 0x4d, 0x85, 0xf6, //0x00002513 testq %r14, %r14 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00002516 jne LBB0_469 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000251c movq $-56(%rbp), %r14 + 0x48, 0x85, 0xc9, //0x00002520 testq %rcx, %rcx + 0x0f, 0x84, 0x89, 0x02, 0x00, 0x00, //0x00002523 je LBB0_479 + //0x00002529 LBB0_445 + 0x4d, 0x89, 0xe0, //0x00002529 movq %r12, %r8 + 0x4c, 0x89, 0xcf, //0x0000252c movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x0000252f notq %rdi + //0x00002532 LBB0_446 + 0x4c, 0x8d, 0x63, 0x01, //0x00002532 leaq $1(%rbx), %r12 + 0x0f, 0xb6, 0x13, //0x00002536 movzbl (%rbx), %edx + 0x80, 0xfa, 0x22, //0x00002539 cmpb $34, %dl + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x0000253c je LBB0_451 + 0x48, 0x8d, 0x71, 0xff, //0x00002542 leaq $-1(%rcx), %rsi + 0x80, 0xfa, 0x5c, //0x00002546 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002549 je LBB0_449 + 0x48, 0x89, 0xf1, //0x0000254f movq %rsi, %rcx + 0x4c, 0x89, 0xe3, //0x00002552 movq %r12, %rbx + 0x48, 0x85, 0xf6, //0x00002555 testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00002558 jne LBB0_446 + 0xe9, 0x4f, 0x02, 0x00, 0x00, //0x0000255e jmp LBB0_479 + //0x00002563 LBB0_449 + 0x48, 0x85, 0xf6, //0x00002563 testq %rsi, %rsi + 0x0f, 0x84, 0x92, 0x04, 0x00, 0x00, //0x00002566 je LBB0_516 + 0x49, 0x01, 0xfc, //0x0000256c addq %rdi, %r12 + 0x49, 0x83, 0xfb, 0xff, //0x0000256f cmpq $-1, %r11 + 0x4d, 0x0f, 0x44, 0xdc, //0x00002573 cmoveq %r12, %r11 + 0x48, 0x83, 0xc3, 0x02, //0x00002577 addq $2, %rbx + 0x48, 0x83, 0xc1, 0xfe, //0x0000257b addq $-2, %rcx + 0x48, 0x89, 0xce, //0x0000257f movq %rcx, %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002582 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x00002586 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x0000258a vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x0000258f testq %rsi, %rsi + 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00002592 jne LBB0_446 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x00002598 jmp LBB0_479 + //0x0000259d LBB0_451 + 0x4d, 0x29, 0xcc, //0x0000259d subq %r9, %r12 + 0xe9, 0xb5, 0xf7, 0xff, 0xff, //0x000025a0 jmp LBB0_323 + //0x000025a5 LBB0_452 + 0x49, 0x83, 0xfb, 0xff, //0x000025a5 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000025a9 jne LBB0_454 + 0x4c, 0x89, 0xe0, //0x000025af movq %r12, %rax + 0x48, 0x2b, 0x45, 0xc0, //0x000025b2 subq $-64(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xd9, //0x000025b6 bsfq %rcx, %r11 + 0x49, 0x01, 0xc3, //0x000025ba addq %rax, %r11 + //0x000025bd LBB0_454 + 0x44, 0x89, 0xf8, //0x000025bd movl %r15d, %eax + 0xf7, 0xd0, //0x000025c0 notl %eax + 0x21, 0xc8, //0x000025c2 andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x000025c4 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x000025c7 orl %r15d, %edx + 0x89, 0xd7, //0x000025ca movl %edx, %edi + 0xf7, 0xd7, //0x000025cc notl %edi + 0x21, 0xcf, //0x000025ce andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000025d0 andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000025d6 xorl %r15d, %r15d + 0x01, 0xc7, //0x000025d9 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000025db setb %r15b + 0x01, 0xff, //0x000025df addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000025e1 xorl $1431655765, %edi + 0x21, 0xd7, //0x000025e7 andl %edx, %edi + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000025e9 movl $4294967295, %eax + 0x31, 0xf8, //0x000025ee xorl %edi, %eax + 0x21, 0xc6, //0x000025f0 andl %eax, %esi + 0x4c, 0x8b, 0x55, 0xd0, //0x000025f2 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000025f6 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000025fa vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xf6, //0x000025ff testq %rsi, %rsi + 0x0f, 0x85, 0xd4, 0xf7, 0xff, 0xff, //0x00002602 jne LBB0_263 + //0x00002608 LBB0_455 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00002608 movl $64, %ecx + //0x0000260d LBB0_456 + 0x49, 0x0f, 0xbc, 0xd1, //0x0000260d bsfq %r9, %rdx + 0x45, 0x85, 0xc9, //0x00002611 testl %r9d, %r9d + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00002614 movl $64, %edi + 0x48, 0x0f, 0x45, 0xfa, //0x00002619 cmovneq %rdx, %rdi + 0x48, 0x85, 0xf6, //0x0000261d testq %rsi, %rsi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00002620 je LBB0_458 + 0x4c, 0x2b, 0x65, 0xc0, //0x00002626 subq $-64(%rbp), %r12 + 0x48, 0x39, 0xcf, //0x0000262a cmpq %rcx, %rdi + 0x0f, 0x83, 0x20, 0xf3, 0xff, 0xff, //0x0000262d jae LBB0_322 + 0xe9, 0x98, 0x03, 0x00, 0x00, //0x00002633 jmp LBB0_417 + //0x00002638 LBB0_458 + 0x45, 0x85, 0xc9, //0x00002638 testl %r9d, %r9d + 0x0f, 0x85, 0xa9, 0x03, 0x00, 0x00, //0x0000263b jne LBB0_514 + 0x49, 0x83, 0xc4, 0x20, //0x00002641 addq $32, %r12 + 0x48, 0x83, 0xc3, 0xe0, //0x00002645 addq $-32, %rbx + //0x00002649 LBB0_460 + 0x4d, 0x85, 0xff, //0x00002649 testq %r15, %r15 + 0x0f, 0x85, 0xd2, 0x00, 0x00, 0x00, //0x0000264c jne LBB0_471 + 0x48, 0x8b, 0x75, 0xc0, //0x00002652 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00002656 testq %rbx, %rbx + 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00002659 je LBB0_479 + //0x0000265f LBB0_462 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x0000265f movzbl (%r12), %ecx + 0x80, 0xf9, 0x22, //0x00002664 cmpb $34, %cl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00002667 je LBB0_468 + 0x80, 0xf9, 0x5c, //0x0000266d cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00002670 je LBB0_466 + 0x80, 0xf9, 0x1f, //0x00002676 cmpb $31, %cl + 0x0f, 0x86, 0x77, 0x03, 0x00, 0x00, //0x00002679 jbe LBB0_515 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000267f movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002686 movl $1, %edx + 0x49, 0x01, 0xd4, //0x0000268b addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x0000268e addq %rcx, %rbx + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00002691 jne LBB0_462 + 0xe9, 0x16, 0x01, 0x00, 0x00, //0x00002697 jmp LBB0_479 + //0x0000269c LBB0_466 + 0x48, 0x83, 0xfb, 0x01, //0x0000269c cmpq $1, %rbx + 0x0f, 0x84, 0x58, 0x03, 0x00, 0x00, //0x000026a0 je LBB0_516 + 0x4c, 0x89, 0xe0, //0x000026a6 movq %r12, %rax + 0x48, 0x29, 0xf0, //0x000026a9 subq %rsi, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000026ac cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x000026b0 cmoveq %rax, %r11 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000026b4 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000026bb movl $2, %edx + 0x4c, 0x8b, 0x55, 0xd0, //0x000026c0 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x000026c4 movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x000026c8 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x49, 0x01, 0xd4, //0x000026cd addq %rdx, %r12 + 0x48, 0x01, 0xcb, //0x000026d0 addq %rcx, %rbx + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x000026d3 jne LBB0_462 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x000026d9 jmp LBB0_479 + //0x000026de LBB0_468 + 0x49, 0x29, 0xf4, //0x000026de subq %rsi, %r12 + 0x49, 0xff, 0xc4, //0x000026e1 incq %r12 + 0xe9, 0x71, 0xf6, 0xff, 0xff, //0x000026e4 jmp LBB0_323 + //0x000026e9 LBB0_469 + 0x48, 0x85, 0xc9, //0x000026e9 testq %rcx, %rcx + 0x0f, 0x84, 0x0c, 0x03, 0x00, 0x00, //0x000026ec je LBB0_516 + 0x4c, 0x89, 0xc8, //0x000026f2 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000026f5 notq %rax + 0x48, 0x01, 0xd8, //0x000026f8 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000026fb cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x000026ff cmoveq %rax, %r11 + 0x48, 0xff, 0xc3, //0x00002703 incq %rbx + 0x48, 0xff, 0xc9, //0x00002706 decq %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002709 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000270d movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002711 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xc9, //0x00002716 testq %rcx, %rcx + 0x0f, 0x85, 0x0a, 0xfe, 0xff, 0xff, //0x00002719 jne LBB0_445 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x0000271f jmp LBB0_479 + //0x00002724 LBB0_471 + 0x48, 0x85, 0xdb, //0x00002724 testq %rbx, %rbx + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x00002727 je LBB0_516 + 0x48, 0x8b, 0x75, 0xc0, //0x0000272d movq $-64(%rbp), %rsi + 0x48, 0x89, 0xf0, //0x00002731 movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x00002734 notq %rax + 0x4c, 0x01, 0xe0, //0x00002737 addq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000273a cmpq $-1, %r11 + 0x4c, 0x0f, 0x44, 0xd8, //0x0000273e cmoveq %rax, %r11 + 0x49, 0xff, 0xc4, //0x00002742 incq %r12 + 0x48, 0xff, 0xcb, //0x00002745 decq %rbx + 0x4c, 0x8b, 0x55, 0xd0, //0x00002748 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x75, 0xc8, //0x0000274c movq $-56(%rbp), %r14 + 0xc4, 0x41, 0x35, 0x76, 0xc9, //0x00002750 vpcmpeqd %ymm9, %ymm9, %ymm9 + 0x48, 0x85, 0xdb, //0x00002755 testq %rbx, %rbx + 0x0f, 0x85, 0x01, 0xff, 0xff, 0xff, //0x00002758 jne LBB0_462 + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000275e jmp LBB0_479 + //0x00002763 LBB0_473 + 0x4d, 0x89, 0x2a, //0x00002763 movq %r13, (%r10) + //0x00002766 LBB0_474 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002766 movq $-1, %rcx + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000276d jmp LBB0_501 + //0x00002772 LBB0_489 + 0x48, 0xc7, 0xc1, 0xf9, 0xff, 0xff, 0xff, //0x00002772 movq $-7, %rcx + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x00002779 jmp LBB0_501 + //0x0000277e LBB0_475 + 0x49, 0x83, 0xfc, 0xff, //0x0000277e cmpq $-1, %r12 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x00002782 jne LBB0_487 + //0x00002788 LBB0_476 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002788 movq $-1, %r12 + 0x4c, 0x8b, 0x45, 0xb8, //0x0000278f movq $-72(%rbp), %r8 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x00002793 jmp LBB0_487 + //0x00002798 LBB0_477 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00002798 movq $-1, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x0000279f movq $-48(%rbp), %rdx + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x000027a3 jmp LBB0_481 + //0x000027a8 LBB0_478 + 0x49, 0x83, 0xfc, 0xff, //0x000027a8 cmpq $-1, %r12 + 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x000027ac jne LBB0_506 + //0x000027b2 LBB0_479 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000027b2 movq $-1, %r12 + 0x4c, 0x8b, 0x5d, 0xb8, //0x000027b9 movq $-72(%rbp), %r11 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000027bd jmp LBB0_506 + //0x000027c2 LBB0_480 + 0x4c, 0x89, 0xf1, //0x000027c2 movq %r14, %rcx + //0x000027c5 LBB0_481 + 0x48, 0x8b, 0x02, //0x000027c5 movq (%rdx), %rax + 0x48, 0x29, 0xc8, //0x000027c8 subq %rcx, %rax + 0x48, 0x83, 0xc0, 0xfe, //0x000027cb addq $-2, %rax + 0x48, 0x89, 0x02, //0x000027cf movq %rax, (%rdx) + //0x000027d2 LBB0_500 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000027d2 movq $-2, %rcx + //0x000027d9 LBB0_501 + 0x48, 0x89, 0xc8, //0x000027d9 movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x48, //0x000027dc addq $72, %rsp + 0x5b, //0x000027e0 popq %rbx + 0x41, 0x5c, //0x000027e1 popq %r12 + 0x41, 0x5d, //0x000027e3 popq %r13 + 0x41, 0x5e, //0x000027e5 popq %r14 + 0x41, 0x5f, //0x000027e7 popq %r15 + 0x5d, //0x000027e9 popq %rbp + 0xc5, 0xf8, 0x77, //0x000027ea vzeroupper + 0xc3, //0x000027ed retq + //0x000027ee LBB0_490 + 0x49, 0x89, 0x12, //0x000027ee movq %rdx, (%r10) + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x000027f1 jmp LBB0_501 + //0x000027f6 LBB0_482 + 0x49, 0x83, 0xf8, 0xff, //0x000027f6 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000027fa jne LBB0_485 + 0x48, 0x0f, 0xbc, 0xc6, //0x00002800 bsfq %rsi, %rax + 0x4c, 0x2b, 0x65, 0xc0, //0x00002804 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002808 addq %rax, %r12 + //0x0000280b LBB0_484 + 0x4d, 0x89, 0xe0, //0x0000280b movq %r12, %r8 + //0x0000280e LBB0_485 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000280e movq $-2, %r12 + //0x00002815 LBB0_486 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002815 movq $-48(%rbp), %r10 + //0x00002819 LBB0_487 + 0x4d, 0x89, 0x02, //0x00002819 movq %r8, (%r10) + 0x4c, 0x89, 0xe1, //0x0000281c movq %r12, %rcx + 0xe9, 0xb5, 0xff, 0xff, 0xff, //0x0000281f jmp LBB0_501 + //0x00002824 LBB0_502 + 0x49, 0x83, 0xfb, 0xff, //0x00002824 cmpq $-1, %r11 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002828 jne LBB0_505 + 0x48, 0x0f, 0xbc, 0xc6, //0x0000282e bsfq %rsi, %rax + 0x4c, 0x2b, 0x65, 0xc0, //0x00002832 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xc4, //0x00002836 addq %rax, %r12 + //0x00002839 LBB0_504 + 0x4d, 0x89, 0xe3, //0x00002839 movq %r12, %r11 + //0x0000283c LBB0_505 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000283c movq $-2, %r12 + //0x00002843 LBB0_506 + 0x4d, 0x89, 0x1a, //0x00002843 movq %r11, (%r10) + 0x4c, 0x89, 0xe1, //0x00002846 movq %r12, %rcx + 0xe9, 0x8b, 0xff, 0xff, 0xff, //0x00002849 jmp LBB0_501 + //0x0000284e LBB0_233 + 0x4d, 0x89, 0x2a, //0x0000284e movq %r13, (%r10) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00002851 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x6e, //0x00002858 cmpb $110, (%r15) + 0x0f, 0x85, 0x77, 0xff, 0xff, 0xff, //0x0000285c jne LBB0_501 + 0x49, 0x8d, 0x45, 0x01, //0x00002862 leaq $1(%r13), %rax + 0x49, 0x89, 0x02, //0x00002866 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x01, 0x75, //0x00002869 cmpb $117, $1(%r9,%r13) + 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x0000286f jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x00002875 leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x00002879 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x6c, //0x0000287c cmpb $108, $2(%r9,%r13) + 0x0f, 0x85, 0x51, 0xff, 0xff, 0xff, //0x00002882 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x00002888 leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x0000288c movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x6c, //0x0000288f cmpb $108, $3(%r9,%r13) + 0x0f, 0x85, 0x3e, 0xff, 0xff, 0xff, //0x00002895 jne LBB0_501 + 0xe9, 0xa2, 0x00, 0x00, 0x00, //0x0000289b jmp LBB0_237 + //0x000028a0 LBB0_491 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000028a0 movq $-2, %rcx + 0x80, 0xfa, 0x61, //0x000028a7 cmpb $97, %dl + 0x0f, 0x85, 0x29, 0xff, 0xff, 0xff, //0x000028aa jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x000028b0 leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x000028b4 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x6c, //0x000028b7 cmpb $108, $2(%r9,%r13) + 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x000028bd jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x000028c3 leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x000028c7 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x73, //0x000028ca cmpb $115, $3(%r9,%r13) + 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x000028d0 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x04, //0x000028d6 leaq $4(%r13), %rax + 0x49, 0x89, 0x02, //0x000028da movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x04, 0x65, //0x000028dd cmpb $101, $4(%r9,%r13) + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000028e3 jne LBB0_501 + 0x49, 0x83, 0xc5, 0x05, //0x000028e9 addq $5, %r13 + 0x4d, 0x89, 0x2a, //0x000028ed movq %r13, (%r10) + 0xe9, 0xe4, 0xfe, 0xff, 0xff, //0x000028f0 jmp LBB0_501 + //0x000028f5 LBB0_245 + 0x4d, 0x89, 0x2a, //0x000028f5 movq %r13, (%r10) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000028f8 movq $-2, %rcx + 0x41, 0x80, 0x3f, 0x74, //0x000028ff cmpb $116, (%r15) + 0x0f, 0x85, 0xd0, 0xfe, 0xff, 0xff, //0x00002903 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x01, //0x00002909 leaq $1(%r13), %rax + 0x49, 0x89, 0x02, //0x0000290d movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x01, 0x72, //0x00002910 cmpb $114, $1(%r9,%r13) + 0x0f, 0x85, 0xbd, 0xfe, 0xff, 0xff, //0x00002916 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x02, //0x0000291c leaq $2(%r13), %rax + 0x49, 0x89, 0x02, //0x00002920 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x02, 0x75, //0x00002923 cmpb $117, $2(%r9,%r13) + 0x0f, 0x85, 0xaa, 0xfe, 0xff, 0xff, //0x00002929 jne LBB0_501 + 0x49, 0x8d, 0x45, 0x03, //0x0000292f leaq $3(%r13), %rax + 0x49, 0x89, 0x02, //0x00002933 movq %rax, (%r10) + 0x43, 0x80, 0x7c, 0x29, 0x03, 0x65, //0x00002936 cmpb $101, $3(%r9,%r13) + 0x0f, 0x85, 0x97, 0xfe, 0xff, 0xff, //0x0000293c jne LBB0_501 + //0x00002942 LBB0_237 + 0x49, 0x83, 0xc5, 0x04, //0x00002942 addq $4, %r13 + 0x4d, 0x89, 0x2a, //0x00002946 movq %r13, (%r10) + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00002949 jmp LBB0_501 + //0x0000294e LBB0_497 + 0x4d, 0x8b, 0x22, //0x0000294e movq (%r10), %r12 + //0x00002951 LBB0_498 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002951 movq $-1, %r15 + //0x00002958 LBB0_499 + 0x49, 0xf7, 0xd7, //0x00002958 notq %r15 + 0x4d, 0x01, 0xe7, //0x0000295b addq %r12, %r15 + 0x4d, 0x89, 0x3a, //0x0000295e movq %r15, (%r10) + 0xe9, 0x6c, 0xfe, 0xff, 0xff, //0x00002961 jmp LBB0_500 + //0x00002966 LBB0_510 + 0x4c, 0x89, 0x65, 0xb8, //0x00002966 movq %r12, $-72(%rbp) + 0xe9, 0x43, 0xfe, 0xff, 0xff, //0x0000296a jmp LBB0_479 + //0x0000296f LBB0_507 + 0x4c, 0x89, 0x65, 0xb8, //0x0000296f movq %r12, $-72(%rbp) + 0xe9, 0x10, 0xfe, 0xff, 0xff, //0x00002973 jmp LBB0_476 + //0x00002978 LBB0_508 + 0x4c, 0x89, 0x65, 0xb8, //0x00002978 movq %r12, $-72(%rbp) + 0x4c, 0x8b, 0x55, 0xd0, //0x0000297c movq $-48(%rbp), %r10 + 0xe9, 0x03, 0xfe, 0xff, 0xff, //0x00002980 jmp LBB0_476 + //0x00002985 LBB0_509 + 0x4c, 0x01, 0xe2, //0x00002985 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002988 movq $-2, %r12 + 0x49, 0x89, 0xd0, //0x0000298f movq %rdx, %r8 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x00002992 jmp LBB0_487 + //0x00002997 LBB0_433 + 0x4c, 0x8b, 0x55, 0xd0, //0x00002997 movq $-48(%rbp), %r10 + 0xe9, 0xe8, 0xfd, 0xff, 0xff, //0x0000299b jmp LBB0_476 + //0x000029a0 LBB0_129 + 0x4c, 0x01, 0xe2, //0x000029a0 addq %r12, %rdx + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029a3 movq $-2, %r12 + 0x49, 0x89, 0xd3, //0x000029aa movq %rdx, %r11 + 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x000029ad jmp LBB0_506 + //0x000029b2 LBB0_511 + 0x4c, 0x01, 0xe7, //0x000029b2 addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029b5 movq $-2, %r12 + 0x49, 0x89, 0xf8, //0x000029bc movq %rdi, %r8 + 0xe9, 0x51, 0xfe, 0xff, 0xff, //0x000029bf jmp LBB0_486 + //0x000029c4 LBB0_512 + 0x4c, 0x2b, 0x65, 0xc0, //0x000029c4 subq $-64(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029c8 addq %rdx, %r12 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x000029cb jmp LBB0_484 + //0x000029d0 LBB0_417 + 0x4c, 0x01, 0xe7, //0x000029d0 addq %r12, %rdi + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029d3 movq $-2, %r12 + 0x49, 0x89, 0xfb, //0x000029da movq %rdi, %r11 + 0xe9, 0x61, 0xfe, 0xff, 0xff, //0x000029dd jmp LBB0_506 + //0x000029e2 LBB0_513 + 0x49, 0x29, 0xc4, //0x000029e2 subq %rax, %r12 + 0xe9, 0x21, 0xfe, 0xff, 0xff, //0x000029e5 jmp LBB0_484 + //0x000029ea LBB0_514 + 0x4c, 0x2b, 0x65, 0xc0, //0x000029ea subq $-64(%rbp), %r12 + 0x49, 0x01, 0xd4, //0x000029ee addq %rdx, %r12 + 0xe9, 0x43, 0xfe, 0xff, 0xff, //0x000029f1 jmp LBB0_504 + //0x000029f6 LBB0_515 + 0x49, 0x29, 0xf4, //0x000029f6 subq %rsi, %r12 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x000029f9 jmp LBB0_504 + //0x000029fe LBB0_516 + 0x4c, 0x8b, 0x55, 0xd0, //0x000029fe movq $-48(%rbp), %r10 + 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00002a02 jmp LBB0_479 + 0x90, //0x00002a07 .p2align 2, 0x90 + // // .set L0_0_set_39, LBB0_39-LJTI0_0 + // // .set L0_0_set_63, LBB0_63-LJTI0_0 + // // .set L0_0_set_44, LBB0_44-LJTI0_0 + // // .set L0_0_set_61, LBB0_61-LJTI0_0 + // // .set L0_0_set_42, LBB0_42-LJTI0_0 + // // .set L0_0_set_65, LBB0_65-LJTI0_0 + //0x00002a08 LJTI0_0 + 0xc4, 0xda, 0xff, 0xff, //0x00002a08 .long L0_0_set_39 + 0x6c, 0xdc, 0xff, 0xff, //0x00002a0c .long L0_0_set_63 + 0xfb, 0xda, 0xff, 0xff, //0x00002a10 .long L0_0_set_44 + 0x55, 0xdc, 0xff, 0xff, //0x00002a14 .long L0_0_set_61 + 0xdb, 0xda, 0xff, 0xff, //0x00002a18 .long L0_0_set_42 + 0x97, 0xdc, 0xff, 0xff, //0x00002a1c .long L0_0_set_65 + // // .set L0_1_set_501, LBB0_501-LJTI0_1 + // // .set L0_1_set_500, LBB0_500-LJTI0_1 + // // .set L0_1_set_211, LBB0_211-LJTI0_1 + // // .set L0_1_set_227, LBB0_227-LJTI0_1 + // // .set L0_1_set_69, LBB0_69-LJTI0_1 + // // .set L0_1_set_209, LBB0_209-LJTI0_1 + // // .set L0_1_set_240, LBB0_240-LJTI0_1 + // // .set L0_1_set_231, LBB0_231-LJTI0_1 + // // .set L0_1_set_243, LBB0_243-LJTI0_1 + // // .set L0_1_set_238, LBB0_238-LJTI0_1 + //0x00002a20 LJTI0_1 + 0xb9, 0xfd, 0xff, 0xff, //0x00002a20 .long L0_1_set_501 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a24 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a28 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a2c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a38 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a48 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a58 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a60 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a70 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a7c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a80 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a84 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a88 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a8c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a90 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a94 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a98 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002a9c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aa4 .long L0_1_set_500 + 0x1e, 0xe7, 0xff, 0xff, //0x00002aa8 .long L0_1_set_211 + 0xb2, 0xfd, 0xff, 0xff, //0x00002aac .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ab8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002abc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ac8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002acc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad0 .long L0_1_set_500 + 0x6d, 0xe8, 0xff, 0xff, //0x00002ad4 .long L0_1_set_227 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ad8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002adc .long L0_1_set_500 + 0xcb, 0xdc, 0xff, 0xff, //0x00002ae0 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002ae4 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002ae8 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002aec .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af0 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af4 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002af8 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002afc .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b00 .long L0_1_set_69 + 0xcb, 0xdc, 0xff, 0xff, //0x00002b04 .long L0_1_set_69 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b08 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b0c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b10 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b14 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b18 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b1c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b20 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b24 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b28 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b2c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b30 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b34 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b38 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b3c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b40 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b44 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b48 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b4c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b50 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b54 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b58 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b5c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b60 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b64 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b68 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b6c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b70 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b74 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b78 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b7c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b80 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b84 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b88 .long L0_1_set_500 + 0xfa, 0xe6, 0xff, 0xff, //0x00002b8c .long L0_1_set_209 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b90 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b94 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b98 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002b9c .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002ba8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bac .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bb4 .long L0_1_set_500 + 0xf8, 0xe8, 0xff, 0xff, //0x00002bb8 .long L0_1_set_240 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bbc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bc8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bcc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bd4 .long L0_1_set_500 + 0xad, 0xe8, 0xff, 0xff, //0x00002bd8 .long L0_1_set_231 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bdc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be0 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002be8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bec .long L0_1_set_500 + 0x38, 0xe9, 0xff, 0xff, //0x00002bf0 .long L0_1_set_243 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf4 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bf8 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002bfc .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c00 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c04 .long L0_1_set_500 + 0xb2, 0xfd, 0xff, 0xff, //0x00002c08 .long L0_1_set_500 + 0xd4, 0xe8, 0xff, 0xff, //0x00002c0c .long L0_1_set_238 + // // .set L0_2_set_311, LBB0_311-LJTI0_2 + // // .set L0_2_set_326, LBB0_326-LJTI0_2 + // // .set L0_2_set_318, LBB0_318-LJTI0_2 + // // .set L0_2_set_313, LBB0_313-LJTI0_2 + // // .set L0_2_set_316, LBB0_316-LJTI0_2 + //0x00002c10 LJTI0_2 + 0x77, 0xec, 0xff, 0xff, //0x00002c10 .long L0_2_set_311 + 0x54, 0xed, 0xff, 0xff, //0x00002c14 .long L0_2_set_326 + 0x77, 0xec, 0xff, 0xff, //0x00002c18 .long L0_2_set_311 + 0xdb, 0xec, 0xff, 0xff, //0x00002c1c .long L0_2_set_318 + 0x54, 0xed, 0xff, 0xff, //0x00002c20 .long L0_2_set_326 + 0x90, 0xec, 0xff, 0xff, //0x00002c24 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c28 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c2c .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c30 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c34 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c38 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c3c .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c40 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c44 .long L0_2_set_313 + 0x90, 0xec, 0xff, 0xff, //0x00002c48 .long L0_2_set_313 + 0x54, 0xed, 0xff, 0xff, //0x00002c4c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c50 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c54 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c58 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c5c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c60 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c64 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c68 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c6c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c70 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c74 .long L0_2_set_326 + 0xc0, 0xec, 0xff, 0xff, //0x00002c78 .long L0_2_set_316 + 0x54, 0xed, 0xff, 0xff, //0x00002c7c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c80 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c84 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c88 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c8c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c90 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c94 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c98 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002c9c .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ca8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cac .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cb8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cbc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cc8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ccc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cd8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cdc .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce4 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002ce8 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cec .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf0 .long L0_2_set_326 + 0x54, 0xed, 0xff, 0xff, //0x00002cf4 .long L0_2_set_326 + 0xc0, 0xec, 0xff, 0xff, //0x00002cf8 .long L0_2_set_316 + // // .set L0_3_set_171, LBB0_171-LJTI0_3 + // // .set L0_3_set_187, LBB0_187-LJTI0_3 + // // .set L0_3_set_178, LBB0_178-LJTI0_3 + // // .set L0_3_set_173, LBB0_173-LJTI0_3 + // // .set L0_3_set_176, LBB0_176-LJTI0_3 + //0x00002cfc LJTI0_3 + 0x56, 0xdd, 0xff, 0xff, //0x00002cfc .long L0_3_set_171 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d00 .long L0_3_set_187 + 0x56, 0xdd, 0xff, 0xff, //0x00002d04 .long L0_3_set_171 + 0xbf, 0xdd, 0xff, 0xff, //0x00002d08 .long L0_3_set_178 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d0c .long L0_3_set_187 + 0x74, 0xdd, 0xff, 0xff, //0x00002d10 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d14 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d18 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d1c .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d20 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d24 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d28 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d2c .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d30 .long L0_3_set_173 + 0x74, 0xdd, 0xff, 0xff, //0x00002d34 .long L0_3_set_173 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d38 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d3c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d40 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d44 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d48 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d4c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d50 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d54 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d58 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d5c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d60 .long L0_3_set_187 + 0xa4, 0xdd, 0xff, 0xff, //0x00002d64 .long L0_3_set_176 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d68 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d6c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d70 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d74 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d78 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d7c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d80 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d84 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d88 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d8c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d90 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d94 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d98 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002d9c .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002da8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dac .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002db8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dbc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dc8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dcc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd0 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd4 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002dd8 .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002ddc .long L0_3_set_187 + 0xb1, 0xe2, 0xff, 0xff, //0x00002de0 .long L0_3_set_187 + 0xa4, 0xdd, 0xff, 0xff, //0x00002de4 .long L0_3_set_176 + //0x00002de8 .p2align 2, 0x00 + //0x00002de8 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002de8 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8.go new file mode 100644 index 000000000..e006f6614 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8.go @@ -0,0 +1,39 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_validate_utf8 uintptr + +//go:nosplit +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return F_validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} + + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast.go new file mode 100644 index 000000000..efa79e41b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8_fast func(s unsafe.Pointer) (ret int) + +var S_validate_utf8_fast uintptr + +//go:nosplit +func validate_utf8_fast(s *string) (ret int) { + return F_validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_subr.go new file mode 100644 index 000000000..93070e4a5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_subr.go @@ -0,0 +1,40 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_utf8_fast = 272 +) + +const ( + _stack__validate_utf8_fast = 176 +) + +const ( + _size__validate_utf8_fast = 2600 +) + +var ( + _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}, + } +) + +var _cfunc_validate_utf8_fast = []loader.CFunc{ + {"_validate_utf8_fast_entry", 0, _entry__validate_utf8_fast, 0, nil}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_text_amd64.go new file mode 100644 index 000000000..8aefd78ea --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_fast_text_amd64.go @@ -0,0 +1,739 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_validate_utf8_fast = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, // QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000010 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + //0x00000020 LCPI0_1 + 0x02, //0x00000020 .byte 2 + 0x02, //0x00000021 .byte 2 + 0x02, //0x00000022 .byte 2 + 0x02, //0x00000023 .byte 2 + 0x02, //0x00000024 .byte 2 + 0x02, //0x00000025 .byte 2 + 0x02, //0x00000026 .byte 2 + 0x02, //0x00000027 .byte 2 + 0x80, //0x00000028 .byte 128 + 0x80, //0x00000029 .byte 128 + 0x80, //0x0000002a .byte 128 + 0x80, //0x0000002b .byte 128 + 0x21, //0x0000002c .byte 33 + 0x01, //0x0000002d .byte 1 + 0x15, //0x0000002e .byte 21 + 0x49, //0x0000002f .byte 73 + 0x02, //0x00000030 .byte 2 + 0x02, //0x00000031 .byte 2 + 0x02, //0x00000032 .byte 2 + 0x02, //0x00000033 .byte 2 + 0x02, //0x00000034 .byte 2 + 0x02, //0x00000035 .byte 2 + 0x02, //0x00000036 .byte 2 + 0x02, //0x00000037 .byte 2 + 0x80, //0x00000038 .byte 128 + 0x80, //0x00000039 .byte 128 + 0x80, //0x0000003a .byte 128 + 0x80, //0x0000003b .byte 128 + 0x21, //0x0000003c .byte 33 + 0x01, //0x0000003d .byte 1 + 0x15, //0x0000003e .byte 21 + 0x49, //0x0000003f .byte 73 + //0x00000040 LCPI0_2 + 0xe7, //0x00000040 .byte 231 + 0xa3, //0x00000041 .byte 163 + 0x83, //0x00000042 .byte 131 + 0x83, //0x00000043 .byte 131 + 0x8b, //0x00000044 .byte 139 + 0xcb, //0x00000045 .byte 203 + 0xcb, //0x00000046 .byte 203 + 0xcb, //0x00000047 .byte 203 + 0xcb, //0x00000048 .byte 203 + 0xcb, //0x00000049 .byte 203 + 0xcb, //0x0000004a .byte 203 + 0xcb, //0x0000004b .byte 203 + 0xcb, //0x0000004c .byte 203 + 0xdb, //0x0000004d .byte 219 + 0xcb, //0x0000004e .byte 203 + 0xcb, //0x0000004f .byte 203 + 0xe7, //0x00000050 .byte 231 + 0xa3, //0x00000051 .byte 163 + 0x83, //0x00000052 .byte 131 + 0x83, //0x00000053 .byte 131 + 0x8b, //0x00000054 .byte 139 + 0xcb, //0x00000055 .byte 203 + 0xcb, //0x00000056 .byte 203 + 0xcb, //0x00000057 .byte 203 + 0xcb, //0x00000058 .byte 203 + 0xcb, //0x00000059 .byte 203 + 0xcb, //0x0000005a .byte 203 + 0xcb, //0x0000005b .byte 203 + 0xcb, //0x0000005c .byte 203 + 0xdb, //0x0000005d .byte 219 + 0xcb, //0x0000005e .byte 203 + 0xcb, //0x0000005f .byte 203 + //0x00000060 LCPI0_3 + 0x01, //0x00000060 .byte 1 + 0x01, //0x00000061 .byte 1 + 0x01, //0x00000062 .byte 1 + 0x01, //0x00000063 .byte 1 + 0x01, //0x00000064 .byte 1 + 0x01, //0x00000065 .byte 1 + 0x01, //0x00000066 .byte 1 + 0x01, //0x00000067 .byte 1 + 0xe6, //0x00000068 .byte 230 + 0xae, //0x00000069 .byte 174 + 0xba, //0x0000006a .byte 186 + 0xba, //0x0000006b .byte 186 + 0x01, //0x0000006c .byte 1 + 0x01, //0x0000006d .byte 1 + 0x01, //0x0000006e .byte 1 + 0x01, //0x0000006f .byte 1 + 0x01, //0x00000070 .byte 1 + 0x01, //0x00000071 .byte 1 + 0x01, //0x00000072 .byte 1 + 0x01, //0x00000073 .byte 1 + 0x01, //0x00000074 .byte 1 + 0x01, //0x00000075 .byte 1 + 0x01, //0x00000076 .byte 1 + 0x01, //0x00000077 .byte 1 + 0xe6, //0x00000078 .byte 230 + 0xae, //0x00000079 .byte 174 + 0xba, //0x0000007a .byte 186 + 0xba, //0x0000007b .byte 186 + 0x01, //0x0000007c .byte 1 + 0x01, //0x0000007d .byte 1 + 0x01, //0x0000007e .byte 1 + 0x01, //0x0000007f .byte 1 + //0x00000080 LCPI0_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000080 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00000090 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x000000a0 LCPI0_5 + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x000000a0 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x000000b0 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + //0x000000c0 LCPI0_7 + 0xff, //0x000000c0 .byte 255 + 0xff, //0x000000c1 .byte 255 + 0xff, //0x000000c2 .byte 255 + 0xff, //0x000000c3 .byte 255 + 0xff, //0x000000c4 .byte 255 + 0xff, //0x000000c5 .byte 255 + 0xff, //0x000000c6 .byte 255 + 0xff, //0x000000c7 .byte 255 + 0xff, //0x000000c8 .byte 255 + 0xff, //0x000000c9 .byte 255 + 0xff, //0x000000ca .byte 255 + 0xff, //0x000000cb .byte 255 + 0xff, //0x000000cc .byte 255 + 0xff, //0x000000cd .byte 255 + 0xff, //0x000000ce .byte 255 + 0xff, //0x000000cf .byte 255 + 0xff, //0x000000d0 .byte 255 + 0xff, //0x000000d1 .byte 255 + 0xff, //0x000000d2 .byte 255 + 0xff, //0x000000d3 .byte 255 + 0xff, //0x000000d4 .byte 255 + 0xff, //0x000000d5 .byte 255 + 0xff, //0x000000d6 .byte 255 + 0xff, //0x000000d7 .byte 255 + 0xff, //0x000000d8 .byte 255 + 0xff, //0x000000d9 .byte 255 + 0xff, //0x000000da .byte 255 + 0xff, //0x000000db .byte 255 + 0xff, //0x000000dc .byte 255 + 0xef, //0x000000dd .byte 239 + 0xdf, //0x000000de .byte 223 + 0xbf, //0x000000df .byte 191 + //0x000000e0 LCPI0_8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000000e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000000f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00000100 .p2align 3, 0x00 + //0x00000100 LCPI0_6 + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //0x00000100 .quad -9187201950435737472 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000108 .p2align 4, 0x90 + //0x00000110 _validate_utf8_fast + 0x55, //0x00000110 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000111 movq %rsp, %rbp + 0x53, //0x00000114 pushq %rbx + 0x48, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, //0x00000115 subq $160, %rsp + 0x48, 0x8b, 0x47, 0x08, //0x0000011c movq $8(%rdi), %rax + 0x48, 0x85, 0xc0, //0x00000120 testq %rax, %rax + 0x0f, 0x84, 0xc3, 0x07, 0x00, 0x00, //0x00000123 je LBB0_12 + 0x4c, 0x8b, 0x07, //0x00000129 movq (%rdi), %r8 + 0x4d, 0x8d, 0x0c, 0x00, //0x0000012c leaq (%r8,%rax), %r9 + 0x49, 0x8d, 0x79, 0x80, //0x00000130 leaq $-128(%r9), %rdi + 0xc5, 0xf1, 0xef, 0xc9, //0x00000134 vpxor %xmm1, %xmm1, %xmm1 + 0xc5, 0xe9, 0xef, 0xd2, //0x00000138 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0xef, 0xc0, //0x0000013c vpxor %xmm0, %xmm0, %xmm0 + 0x4c, 0x89, 0xc2, //0x00000140 movq %r8, %rdx + 0x4c, 0x39, 0xc7, //0x00000143 cmpq %r8, %rdi + 0x0f, 0x86, 0x70, 0x03, 0x00, 0x00, //0x00000146 jbe LBB0_14 + 0x48, 0x8d, 0x50, 0xff, //0x0000014c leaq $-1(%rax), %rdx + 0xc5, 0xfe, 0x6f, 0x25, 0xa8, 0xfe, 0xff, 0xff, //0x00000150 vmovdqu $-344(%rip), %ymm4 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xe0, 0xfe, 0xff, 0xff, //0x00000158 vmovdqu $-288(%rip), %ymm6 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0xf8, 0xfe, 0xff, 0xff, //0x00000160 vmovdqu $-264(%rip), %ymm7 /* LCPI0_3+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x00000168 vmovdqu $-240(%rip), %ymm8 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x0d, 0x28, 0xff, 0xff, 0xff, //0x00000170 vmovdqu $-216(%rip), %ymm9 /* LCPI0_5+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x15, 0x40, 0xff, 0xff, 0xff, //0x00000178 vmovdqu $-192(%rip), %ymm10 /* LCPI0_7+0(%rip) */ + 0x4c, 0x89, 0xc1, //0x00000180 movq %r8, %rcx + 0xc5, 0xf9, 0xef, 0xc0, //0x00000183 vpxor %xmm0, %xmm0, %xmm0 + 0xc5, 0xe9, 0xef, 0xd2, //0x00000187 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf1, 0xef, 0xc9, //0x0000018b vpxor %xmm1, %xmm1, %xmm1 + 0x90, //0x0000018f .p2align 4, 0x90 + //0x00000190 LBB0_3 + 0xc5, 0x7e, 0x6f, 0x39, //0x00000190 vmovdqu (%rcx), %ymm15 + 0xc5, 0x7e, 0x6f, 0x69, 0x20, //0x00000194 vmovdqu $32(%rcx), %ymm13 + 0xc5, 0x7e, 0x6f, 0x61, 0x40, //0x00000199 vmovdqu $64(%rcx), %ymm12 + 0xc5, 0x7e, 0x6f, 0x59, 0x60, //0x0000019e vmovdqu $96(%rcx), %ymm11 + 0xc4, 0xc1, 0x15, 0xeb, 0xdf, //0x000001a3 vpor %ymm15, %ymm13, %ymm3 + 0xc4, 0x41, 0x25, 0xeb, 0xf4, //0x000001a8 vpor %ymm12, %ymm11, %ymm14 + 0xc5, 0x8d, 0xeb, 0xeb, //0x000001ad vpor %ymm3, %ymm14, %ymm5 + 0xc5, 0xfd, 0xd7, 0xf5, //0x000001b1 vpmovmskb %ymm5, %esi + 0x85, 0xf6, //0x000001b5 testl %esi, %esi + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000001b7 jne LBB0_6 + 0xc5, 0xf5, 0xeb, 0xc0, //0x000001bd vpor %ymm0, %ymm1, %ymm0 + //0x000001c1 LBB0_5 + 0x48, 0x83, 0xe9, 0x80, //0x000001c1 subq $-128, %rcx + 0x48, 0x39, 0xf9, //0x000001c5 cmpq %rdi, %rcx + 0x0f, 0x82, 0xc2, 0xff, 0xff, 0xff, //0x000001c8 jb LBB0_3 + 0xe9, 0xe2, 0x02, 0x00, 0x00, //0x000001ce jmp LBB0_13 + //0x000001d3 LBB0_6 + 0xc5, 0xfd, 0xd7, 0xf3, //0x000001d3 vpmovmskb %ymm3, %esi + 0x85, 0xf6, //0x000001d7 testl %esi, %esi + 0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x000001d9 jne LBB0_9 + 0xc5, 0xf5, 0xeb, 0xc0, //0x000001df vpor %ymm0, %ymm1, %ymm0 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x000001e3 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x000001e9 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x000001ef vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x000001f4 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0x7e, 0x6f, 0x35, 0x20, 0xfe, 0xff, 0xff, //0x000001f8 vmovdqu $-480(%rip), %ymm14 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x0d, 0x00, 0xdb, //0x00000200 vpshufb %ymm3, %ymm14, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00000205 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00000209 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd4, 0x04, //0x0000020e vpsrlw $4, %ymm12, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00000214 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00000218 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x0000021d vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00000221 vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd9, 0x0e, //0x00000225 vpalignr $14, %ymm1, %ymm12, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x0000022b vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00000231 vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00000236 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x0000023b vpor %ymm3, %ymm1, %ymm1 + 0xc4, 0x41, 0x11, 0xef, 0xed, //0x0000023f vpxor %xmm13, %xmm13, %xmm13 + 0xc5, 0x95, 0x74, 0xc9, //0x00000244 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc4, 0xe2, 0x7d, 0x59, 0x1d, 0xaf, 0xfe, 0xff, 0xff, //0x00000248 vpbroadcastq $-337(%rip), %ymm3 /* LCPI0_6+0(%rip) */ + 0xc5, 0xf5, 0xdf, 0xcb, //0x00000251 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00000255 vpxor %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00000259 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc3, 0x1d, 0x46, 0xcb, 0x21, //0x0000025d vperm2i128 $33, %ymm11, %ymm12, %ymm1 + 0xc4, 0xe3, 0x25, 0x0f, 0xd1, 0x0f, //0x00000263 vpalignr $15, %ymm1, %ymm11, %ymm2 + 0xc5, 0xd5, 0x71, 0xd2, 0x04, //0x00000269 vpsrlw $4, %ymm2, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x0000026e vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x0d, 0x00, 0xed, //0x00000272 vpshufb %ymm5, %ymm14, %ymm5 + 0xc5, 0xed, 0xdb, 0xd4, //0x00000277 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x0000027b vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x1d, 0x71, 0xd3, 0x04, //0x00000280 vpsrlw $4, %ymm11, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x00000286 vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x45, 0x00, 0xe4, //0x0000028a vpshufb %ymm12, %ymm7, %ymm12 + 0xc5, 0x9d, 0xdb, 0xd2, //0x0000028f vpand %ymm2, %ymm12, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00000293 vpand %ymm2, %ymm5, %ymm2 + 0xc4, 0xe3, 0x25, 0x0f, 0xe9, 0x0e, //0x00000297 vpalignr $14, %ymm1, %ymm11, %ymm5 + 0xc4, 0xe3, 0x25, 0x0f, 0xc9, 0x0d, //0x0000029d vpalignr $13, %ymm1, %ymm11, %ymm1 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x000002a3 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x000002a8 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcd, //0x000002ad vpor %ymm5, %ymm1, %ymm1 + 0xc5, 0x95, 0x74, 0xc9, //0x000002b1 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc5, 0xf5, 0xdf, 0xcb, //0x000002b5 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x000002b9 vpxor %ymm2, %ymm1, %ymm1 + //0x000002bd LBB0_8 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000002bd vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x000002c1 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x000002c6 vmovdqa %ymm11, %ymm2 + 0xe9, 0xf2, 0xfe, 0xff, 0xff, //0x000002ca jmp LBB0_5 + //0x000002cf LBB0_9 + 0xc4, 0xc3, 0x6d, 0x46, 0xcf, 0x21, //0x000002cf vperm2i128 $33, %ymm15, %ymm2, %ymm1 + 0xc4, 0xe3, 0x05, 0x0f, 0xd1, 0x0f, //0x000002d5 vpalignr $15, %ymm1, %ymm15, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x000002db vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x000002e0 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0xfe, 0x6f, 0x2d, 0x34, 0xfd, 0xff, 0xff, //0x000002e4 vmovdqu $-716(%rip), %ymm5 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x55, 0x00, 0xdb, //0x000002ec vpshufb %ymm3, %ymm5, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x000002f1 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x000002f5 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd7, 0x04, //0x000002fa vpsrlw $4, %ymm15, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00000300 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00000304 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00000309 vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x0000030d vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x05, 0x0f, 0xd9, 0x0e, //0x00000311 vpalignr $14, %ymm1, %ymm15, %ymm3 + 0xc4, 0xe3, 0x05, 0x0f, 0xc9, 0x0d, //0x00000317 vpalignr $13, %ymm1, %ymm15, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x0000031d vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00000322 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00000327 vpor %ymm3, %ymm1, %ymm1 + 0xc5, 0xe1, 0xef, 0xdb, //0x0000032b vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xf5, 0x74, 0xdb, //0x0000032f vpcmpeqb %ymm3, %ymm1, %ymm3 + 0xc4, 0xe2, 0x7d, 0x59, 0x0d, 0xc4, 0xfd, 0xff, 0xff, //0x00000333 vpbroadcastq $-572(%rip), %ymm1 /* LCPI0_6+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x0000033c vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00000340 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x54, 0x24, 0x60, //0x00000344 vmovdqu %ymm2, $96(%rsp) + 0xc4, 0xc3, 0x05, 0x46, 0xdd, 0x21, //0x0000034a vperm2i128 $33, %ymm13, %ymm15, %ymm3 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0f, //0x00000350 vpalignr $15, %ymm3, %ymm13, %ymm5 + 0xc5, 0x85, 0x71, 0xd5, 0x04, //0x00000356 vpsrlw $4, %ymm5, %ymm15 + 0xc5, 0x05, 0xdb, 0xfc, //0x0000035b vpand %ymm4, %ymm15, %ymm15 + 0xc5, 0xfe, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x0000035f vmovdqu $-839(%rip), %ymm2 /* LCPI0_1+0(%rip) */ + 0xc4, 0x42, 0x6d, 0x00, 0xff, //0x00000367 vpshufb %ymm15, %ymm2, %ymm15 + 0xc5, 0xd5, 0xdb, 0xec, //0x0000036c vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00000370 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x6d, 0x71, 0xd5, 0x04, //0x00000375 vpsrlw $4, %ymm13, %ymm2 + 0xc5, 0xed, 0xdb, 0xd4, //0x0000037b vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x45, 0x00, 0xd2, //0x0000037f vpshufb %ymm2, %ymm7, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00000384 vpand %ymm2, %ymm5, %ymm2 + 0xc5, 0x85, 0xdb, 0xd2, //0x00000388 vpand %ymm2, %ymm15, %ymm2 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0e, //0x0000038c vpalignr $14, %ymm3, %ymm13, %ymm5 + 0xc4, 0xe3, 0x15, 0x0f, 0xdb, 0x0d, //0x00000392 vpalignr $13, %ymm3, %ymm13, %ymm3 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00000398 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x0000039d vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdd, //0x000003a2 vpor %ymm5, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0x1d, 0x32, 0xfd, 0xff, 0xff, //0x000003a6 vpcmpeqb $-718(%rip), %ymm3, %ymm3 /* LCPI0_8+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x000003ae vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x000003b2 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfd, 0xeb, 0x44, 0x24, 0x60, //0x000003b6 vpor $96(%rsp), %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x000003bc vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf6, //0x000003c0 vpmovmskb %ymm14, %esi + 0x85, 0xf6, //0x000003c5 testl %esi, %esi + 0x0f, 0x84, 0xd6, 0x00, 0x00, 0x00, //0x000003c7 je LBB0_11 + 0xc4, 0xc3, 0x15, 0x46, 0xd4, 0x21, //0x000003cd vperm2i128 $33, %ymm12, %ymm13, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xda, 0x0f, //0x000003d3 vpalignr $15, %ymm2, %ymm12, %ymm3 + 0xc5, 0xd5, 0x71, 0xd3, 0x04, //0x000003d9 vpsrlw $4, %ymm3, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x000003de vpand %ymm4, %ymm5, %ymm5 + 0xc5, 0x7e, 0x6f, 0x3d, 0x36, 0xfc, 0xff, 0xff, //0x000003e2 vmovdqu $-970(%rip), %ymm15 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x05, 0x00, 0xed, //0x000003ea vpshufb %ymm5, %ymm15, %ymm5 + 0xc5, 0xe5, 0xdb, 0xdc, //0x000003ef vpand %ymm4, %ymm3, %ymm3 + 0xc4, 0xe2, 0x4d, 0x00, 0xdb, //0x000003f3 vpshufb %ymm3, %ymm6, %ymm3 + 0xc4, 0xc1, 0x15, 0x71, 0xd4, 0x04, //0x000003f8 vpsrlw $4, %ymm12, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x000003fe vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00000402 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xdb, //0x00000407 vpand %ymm3, %ymm13, %ymm3 + 0xc5, 0xd5, 0xdb, 0xdb, //0x0000040b vpand %ymm3, %ymm5, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xea, 0x0e, //0x0000040f vpalignr $14, %ymm2, %ymm12, %ymm5 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd2, 0x0d, //0x00000415 vpalignr $13, %ymm2, %ymm12, %ymm2 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x0000041b vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd1, //0x00000420 vpsubusb %ymm9, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd5, //0x00000425 vpor %ymm5, %ymm2, %ymm2 + 0xc4, 0x41, 0x09, 0xef, 0xf6, //0x00000429 vpxor %xmm14, %xmm14, %xmm14 + 0xc5, 0x8d, 0x74, 0xd2, //0x0000042e vpcmpeqb %ymm2, %ymm14, %ymm2 + 0xc5, 0xed, 0xdf, 0xd1, //0x00000432 vpandn %ymm1, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd3, //0x00000436 vpxor %ymm3, %ymm2, %ymm2 + 0xc4, 0xc3, 0x1d, 0x46, 0xdb, 0x21, //0x0000043a vperm2i128 $33, %ymm11, %ymm12, %ymm3 + 0xc4, 0xe3, 0x25, 0x0f, 0xeb, 0x0f, //0x00000440 vpalignr $15, %ymm3, %ymm11, %ymm5 + 0xc5, 0x9d, 0x71, 0xd5, 0x04, //0x00000446 vpsrlw $4, %ymm5, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x0000044b vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x05, 0x00, 0xe4, //0x0000044f vpshufb %ymm12, %ymm15, %ymm12 + 0xc5, 0xd5, 0xdb, 0xec, //0x00000454 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00000458 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x15, 0x71, 0xd3, 0x04, //0x0000045d vpsrlw $4, %ymm11, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00000463 vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00000467 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xed, //0x0000046c vpand %ymm5, %ymm13, %ymm5 + 0xc5, 0x9d, 0xdb, 0xed, //0x00000470 vpand %ymm5, %ymm12, %ymm5 + 0xc4, 0x63, 0x25, 0x0f, 0xe3, 0x0e, //0x00000474 vpalignr $14, %ymm3, %ymm11, %ymm12 + 0xc4, 0xe3, 0x25, 0x0f, 0xdb, 0x0d, //0x0000047a vpalignr $13, %ymm3, %ymm11, %ymm3 + 0xc4, 0x41, 0x1d, 0xd8, 0xe0, //0x00000480 vpsubusb %ymm8, %ymm12, %ymm12 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00000485 vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0x9d, 0xeb, 0xdb, //0x0000048a vpor %ymm3, %ymm12, %ymm3 + 0xc5, 0x8d, 0x74, 0xdb, //0x0000048e vpcmpeqb %ymm3, %ymm14, %ymm3 + 0xc5, 0xe5, 0xdf, 0xc9, //0x00000492 vpandn %ymm1, %ymm3, %ymm1 + 0xc5, 0xf5, 0xef, 0xcd, //0x00000496 vpxor %ymm5, %ymm1, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x0000049a vpor %ymm0, %ymm2, %ymm0 + 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x0000049e jmp LBB0_8 + //0x000004a3 LBB0_11 + 0xc4, 0xc1, 0x15, 0xd8, 0xca, //0x000004a3 vpsubusb %ymm10, %ymm13, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000004a8 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0x7f, 0xea, //0x000004ac vmovdqa %ymm13, %ymm2 + 0xe9, 0x0c, 0xfd, 0xff, 0xff, //0x000004b0 jmp LBB0_5 + //0x000004b5 LBB0_13 + 0x48, 0x83, 0xe2, 0x80, //0x000004b5 andq $-128, %rdx + 0x4c, 0x01, 0xc2, //0x000004b9 addq %r8, %rdx + //0x000004bc LBB0_14 + 0x49, 0x8d, 0x49, 0xc0, //0x000004bc leaq $-64(%r9), %rcx + 0x48, 0x39, 0xca, //0x000004c0 cmpq %rcx, %rdx + 0x0f, 0x83, 0x79, 0x01, 0x00, 0x00, //0x000004c3 jae LBB0_20 + 0x48, 0x89, 0xc6, //0x000004c9 movq %rax, %rsi + 0x48, 0x29, 0xd6, //0x000004cc subq %rdx, %rsi + 0x4a, 0x8d, 0x7c, 0x06, 0xff, //0x000004cf leaq $-1(%rsi,%r8), %rdi + 0xc5, 0xfe, 0x6f, 0x1d, 0x24, 0xfb, 0xff, 0xff, //0x000004d4 vmovdqu $-1244(%rip), %ymm3 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x3c, 0xfb, 0xff, 0xff, //0x000004dc vmovdqu $-1220(%rip), %ymm4 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0x54, 0xfb, 0xff, 0xff, //0x000004e4 vmovdqu $-1196(%rip), %ymm5 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0x6c, 0xfb, 0xff, 0xff, //0x000004ec vmovdqu $-1172(%rip), %ymm6 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x3d, 0x84, 0xfb, 0xff, 0xff, //0x000004f4 vmovdqu $-1148(%rip), %ymm7 /* LCPI0_4+0(%rip) */ + 0xc5, 0x7e, 0x6f, 0x05, 0x9c, 0xfb, 0xff, 0xff, //0x000004fc vmovdqu $-1124(%rip), %ymm8 /* LCPI0_5+0(%rip) */ + 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x00000504 vpxor %xmm9, %xmm9, %xmm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xaf, 0xfb, 0xff, 0xff, //0x00000509 vmovdqu $-1105(%rip), %ymm10 /* LCPI0_7+0(%rip) */ + 0x48, 0x89, 0xd6, //0x00000511 movq %rdx, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000514 .p2align 4, 0x90 + //0x00000520 LBB0_16 + 0xc5, 0x7e, 0x6f, 0x26, //0x00000520 vmovdqu (%rsi), %ymm12 + 0xc5, 0x7e, 0x6f, 0x5e, 0x20, //0x00000524 vmovdqu $32(%rsi), %ymm11 + 0xc4, 0x41, 0x25, 0xeb, 0xec, //0x00000529 vpor %ymm12, %ymm11, %ymm13 + 0xc4, 0xc1, 0x7d, 0xd7, 0xdd, //0x0000052e vpmovmskb %ymm13, %ebx + 0x85, 0xdb, //0x00000533 testl %ebx, %ebx + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000535 jne LBB0_18 + 0xc5, 0xf5, 0xeb, 0xc0, //0x0000053b vpor %ymm0, %ymm1, %ymm0 + 0x48, 0x83, 0xc6, 0x40, //0x0000053f addq $64, %rsi + 0x48, 0x39, 0xce, //0x00000543 cmpq %rcx, %rsi + 0x0f, 0x82, 0xd4, 0xff, 0xff, 0xff, //0x00000546 jb LBB0_16 + 0xe9, 0xea, 0x00, 0x00, 0x00, //0x0000054c jmp LBB0_19 + //0x00000551 LBB0_18 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00000551 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00000557 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0x95, 0x71, 0xd2, 0x04, //0x0000055d vpsrlw $4, %ymm2, %ymm13 + 0xc5, 0x15, 0xdb, 0xeb, //0x00000562 vpand %ymm3, %ymm13, %ymm13 + 0xc4, 0x42, 0x5d, 0x00, 0xed, //0x00000566 vpshufb %ymm13, %ymm4, %ymm13 + 0xc5, 0xed, 0xdb, 0xd3, //0x0000056b vpand %ymm3, %ymm2, %ymm2 + 0xc4, 0xe2, 0x55, 0x00, 0xd2, //0x0000056f vpshufb %ymm2, %ymm5, %ymm2 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x00000574 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x0000057a vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x4d, 0x00, 0xf6, //0x0000057e vpshufb %ymm14, %ymm6, %ymm14 + 0xc5, 0x8d, 0xdb, 0xd2, //0x00000583 vpand %ymm2, %ymm14, %ymm2 + 0xc5, 0x95, 0xdb, 0xd2, //0x00000587 vpand %ymm2, %ymm13, %ymm2 + 0xc4, 0x63, 0x1d, 0x0f, 0xe9, 0x0e, //0x0000058b vpalignr $14, %ymm1, %ymm12, %ymm13 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00000591 vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc5, 0x15, 0xd8, 0xef, //0x00000597 vpsubusb %ymm7, %ymm13, %ymm13 + 0xc4, 0xc1, 0x75, 0xd8, 0xc8, //0x0000059b vpsubusb %ymm8, %ymm1, %ymm1 + 0xc5, 0x95, 0xeb, 0xc9, //0x000005a0 vpor %ymm1, %ymm13, %ymm1 + 0xc5, 0xb5, 0x74, 0xc9, //0x000005a4 vpcmpeqb %ymm1, %ymm9, %ymm1 + 0xc4, 0x62, 0x7d, 0x59, 0x2d, 0x4f, 0xfb, 0xff, 0xff, //0x000005a8 vpbroadcastq $-1201(%rip), %ymm13 /* LCPI0_6+0(%rip) */ + 0xc4, 0xc1, 0x75, 0xdf, 0xcd, //0x000005b1 vpandn %ymm13, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x000005b6 vpxor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc3, 0x1d, 0x46, 0xd3, 0x21, //0x000005ba vperm2i128 $33, %ymm11, %ymm12, %ymm2 + 0xc4, 0x63, 0x25, 0x0f, 0xe2, 0x0f, //0x000005c0 vpalignr $15, %ymm2, %ymm11, %ymm12 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x000005c6 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x000005cc vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x5d, 0x00, 0xf6, //0x000005d0 vpshufb %ymm14, %ymm4, %ymm14 + 0xc5, 0x1d, 0xdb, 0xe3, //0x000005d5 vpand %ymm3, %ymm12, %ymm12 + 0xc4, 0x42, 0x55, 0x00, 0xe4, //0x000005d9 vpshufb %ymm12, %ymm5, %ymm12 + 0xc4, 0xc1, 0x05, 0x71, 0xd3, 0x04, //0x000005de vpsrlw $4, %ymm11, %ymm15 + 0xc5, 0x05, 0xdb, 0xfb, //0x000005e4 vpand %ymm3, %ymm15, %ymm15 + 0xc4, 0x42, 0x4d, 0x00, 0xff, //0x000005e8 vpshufb %ymm15, %ymm6, %ymm15 + 0xc4, 0x41, 0x1d, 0xdb, 0xe7, //0x000005ed vpand %ymm15, %ymm12, %ymm12 + 0xc4, 0x41, 0x0d, 0xdb, 0xe4, //0x000005f2 vpand %ymm12, %ymm14, %ymm12 + 0xc4, 0x63, 0x25, 0x0f, 0xf2, 0x0e, //0x000005f7 vpalignr $14, %ymm2, %ymm11, %ymm14 + 0xc4, 0xe3, 0x25, 0x0f, 0xd2, 0x0d, //0x000005fd vpalignr $13, %ymm2, %ymm11, %ymm2 + 0xc5, 0x0d, 0xd8, 0xf7, //0x00000603 vpsubusb %ymm7, %ymm14, %ymm14 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd0, //0x00000607 vpsubusb %ymm8, %ymm2, %ymm2 + 0xc5, 0x8d, 0xeb, 0xd2, //0x0000060c vpor %ymm2, %ymm14, %ymm2 + 0xc5, 0xb5, 0x74, 0xd2, //0x00000610 vpcmpeqb %ymm2, %ymm9, %ymm2 + 0xc4, 0xc1, 0x6d, 0xdf, 0xd5, //0x00000614 vpandn %ymm13, %ymm2, %ymm2 + 0xc5, 0x9d, 0xef, 0xd2, //0x00000619 vpxor %ymm2, %ymm12, %ymm2 + 0xc5, 0xf5, 0xeb, 0xc0, //0x0000061d vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x00000621 vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00000625 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x0000062a vmovdqa %ymm11, %ymm2 + 0x48, 0x83, 0xc6, 0x40, //0x0000062e addq $64, %rsi + 0x48, 0x39, 0xce, //0x00000632 cmpq %rcx, %rsi + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00000635 jb LBB0_16 + //0x0000063b LBB0_19 + 0x48, 0x83, 0xe7, 0xc0, //0x0000063b andq $-64, %rdi + 0x48, 0x01, 0xfa, //0x0000063f addq %rdi, %rdx + //0x00000642 LBB0_20 + 0xc5, 0xe1, 0xef, 0xdb, //0x00000642 vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x40, //0x00000646 vmovdqu %ymm3, $64(%rsp) + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x20, //0x0000064c vmovdqu %ymm3, $32(%rsp) + 0xc5, 0xd9, 0xef, 0xe4, //0x00000652 vpxor %xmm4, %xmm4, %xmm4 + 0x4c, 0x39, 0xca, //0x00000656 cmpq %r9, %rdx + 0x0f, 0x83, 0x70, 0x00, 0x00, 0x00, //0x00000659 jae LBB0_36 + 0x48, 0x89, 0xc1, //0x0000065f movq %rax, %rcx + 0x48, 0x29, 0xd1, //0x00000662 subq %rdx, %rcx + 0x4d, 0x8d, 0x1c, 0x08, //0x00000665 leaq (%r8,%rcx), %r11 + 0x49, 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00000669 cmpq $128, %r11 + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00000670 jb LBB0_22 + 0x48, 0x8d, 0x74, 0x24, 0x20, //0x00000676 leaq $32(%rsp), %rsi + 0x4c, 0x39, 0xce, //0x0000067b cmpq %r9, %rsi + 0x0f, 0x83, 0x74, 0x02, 0x00, 0x00, //0x0000067e jae LBB0_26 + 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00000684 leaq $32(%rsp,%rcx), %rcx + 0x4c, 0x01, 0xc1, //0x00000689 addq %r8, %rcx + 0x48, 0x39, 0xca, //0x0000068c cmpq %rcx, %rdx + 0x0f, 0x83, 0x63, 0x02, 0x00, 0x00, //0x0000068f jae LBB0_26 + //0x00000695 LBB0_22 + 0x31, 0xc9, //0x00000695 xorl %ecx, %ecx + //0x00000697 LBB0_33 + 0x48, 0x8d, 0x4c, 0x0c, 0x20, //0x00000697 leaq $32(%rsp,%rcx), %rcx + 0x48, 0x29, 0xd0, //0x0000069c subq %rdx, %rax + 0x4c, 0x01, 0xc0, //0x0000069f addq %r8, %rax + 0x31, 0xf6, //0x000006a2 xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000006a4 .p2align 4, 0x90 + //0x000006b0 LBB0_34 + 0x0f, 0xb6, 0x1c, 0x32, //0x000006b0 movzbl (%rdx,%rsi), %ebx + 0x88, 0x1c, 0x31, //0x000006b4 movb %bl, (%rcx,%rsi) + 0x48, 0xff, 0xc6, //0x000006b7 incq %rsi + 0x48, 0x39, 0xf0, //0x000006ba cmpq %rsi, %rax + 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x000006bd jne LBB0_34 + //0x000006c3 LBB0_35 + 0xc5, 0xfe, 0x6f, 0x64, 0x24, 0x20, //0x000006c3 vmovdqu $32(%rsp), %ymm4 + 0xc5, 0xfe, 0x6f, 0x5c, 0x24, 0x40, //0x000006c9 vmovdqu $64(%rsp), %ymm3 + //0x000006cf LBB0_36 + 0xc5, 0xdd, 0xeb, 0xeb, //0x000006cf vpor %ymm3, %ymm4, %ymm5 + 0xc5, 0xfd, 0xd7, 0xc5, //0x000006d3 vpmovmskb %ymm5, %eax + 0x85, 0xc0, //0x000006d7 testl %eax, %eax + 0x0f, 0x85, 0x38, 0x03, 0x00, 0x00, //0x000006d9 jne LBB0_40 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000006df vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000006e3 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x000006e7 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0xfa, 0x01, 0x00, 0x00, //0x000006ec je LBB0_12 + //0x000006f2 LBB0_41 + 0x49, 0x8d, 0x49, 0xfd, //0x000006f2 leaq $-3(%r9), %rcx + 0x4c, 0x89, 0xc0, //0x000006f6 movq %r8, %rax + 0x49, 0x39, 0xc8, //0x000006f9 cmpq %rcx, %r8 + 0x0f, 0x83, 0xde, 0x00, 0x00, 0x00, //0x000006fc jae LBB0_55 + 0x4c, 0x89, 0xc0, //0x00000702 movq %r8, %rax + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00000705 jmp LBB0_44 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000070a .p2align 4, 0x90 + //0x00000710 LBB0_43 + 0x48, 0x01, 0xf0, //0x00000710 addq %rsi, %rax + 0x48, 0x39, 0xc8, //0x00000713 cmpq %rcx, %rax + 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x00000716 jae LBB0_55 + //0x0000071c LBB0_44 + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x0000071c movl $1, %esi + 0x80, 0x38, 0x00, //0x00000721 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00000724 jns LBB0_43 + 0x8b, 0x10, //0x0000072a movl (%rax), %edx + 0x89, 0xd6, //0x0000072c movl %edx, %esi + 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000072e andl $12632304, %esi + 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00000734 cmpl $8421600, %esi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000073a jne LBB0_48 + 0x89, 0xd7, //0x00000740 movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00000742 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00000748 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000074e je LBB0_48 + 0xbe, 0x03, 0x00, 0x00, 0x00, //0x00000754 movl $3, %esi + 0x85, 0xff, //0x00000759 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000075b jne LBB0_43 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000761 .p2align 4, 0x90 + //0x00000770 LBB0_48 + 0x89, 0xd6, //0x00000770 movl %edx, %esi + 0x81, 0xe6, 0xe0, 0xc0, 0x00, 0x00, //0x00000772 andl $49376, %esi + 0x81, 0xfe, 0xc0, 0x80, 0x00, 0x00, //0x00000778 cmpl $32960, %esi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000077e jne LBB0_50 + 0x89, 0xd7, //0x00000784 movl %edx, %edi + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00000786 movl $2, %esi + 0x83, 0xe7, 0x1e, //0x0000078b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000078e jne LBB0_43 + //0x00000794 LBB0_50 + 0x89, 0xd6, //0x00000794 movl %edx, %esi + 0x81, 0xe6, 0xf8, 0xc0, 0xc0, 0xc0, //0x00000796 andl $-1061109512, %esi + 0x81, 0xfe, 0xf0, 0x80, 0x80, 0x80, //0x0000079c cmpl $-2139062032, %esi + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x000007a2 jne LBB0_54 + 0x89, 0xd6, //0x000007a8 movl %edx, %esi + 0x81, 0xe6, 0x07, 0x30, 0x00, 0x00, //0x000007aa andl $12295, %esi + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000007b0 je LBB0_54 + 0xbe, 0x04, 0x00, 0x00, 0x00, //0x000007b6 movl $4, %esi + 0xf6, 0xc2, 0x04, //0x000007bb testb $4, %dl + 0x0f, 0x84, 0x4c, 0xff, 0xff, 0xff, //0x000007be je LBB0_43 + 0x81, 0xe2, 0x03, 0x30, 0x00, 0x00, //0x000007c4 andl $12291, %edx + 0x0f, 0x84, 0x40, 0xff, 0xff, 0xff, //0x000007ca je LBB0_43 + //0x000007d0 LBB0_54 + 0x48, 0xf7, 0xd0, //0x000007d0 notq %rax + 0x4c, 0x01, 0xc0, //0x000007d3 addq %r8, %rax + 0x48, 0x8d, 0x65, 0xf8, //0x000007d6 leaq $-8(%rbp), %rsp + 0x5b, //0x000007da popq %rbx + 0x5d, //0x000007db popq %rbp + 0xc5, 0xf8, 0x77, //0x000007dc vzeroupper + 0xc3, //0x000007df retq + //0x000007e0 LBB0_55 + 0x4c, 0x39, 0xc8, //0x000007e0 cmpq %r9, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x000007e3 jae LBB0_12 + 0x4c, 0x8d, 0x54, 0x24, 0x20, //0x000007e9 leaq $32(%rsp), %r10 + 0x4c, 0x8d, 0x5c, 0x24, 0x1e, //0x000007ee leaq $30(%rsp), %r11 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000007f3 jmp LBB0_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007f8 .p2align 4, 0x90 + //0x00000800 LBB0_57 + 0x48, 0xff, 0xc0, //0x00000800 incq %rax + 0x4c, 0x39, 0xc8, //0x00000803 cmpq %r9, %rax + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00000806 jae LBB0_12 + //0x0000080c LBB0_58 + 0x80, 0x38, 0x00, //0x0000080c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000080f jns LBB0_57 + 0xc6, 0x44, 0x24, 0x20, 0x00, //0x00000815 movb $0, $32(%rsp) + 0xc6, 0x44, 0x24, 0x1e, 0x00, //0x0000081a movb $0, $30(%rsp) + 0x4c, 0x89, 0xc9, //0x0000081f movq %r9, %rcx + 0x48, 0x29, 0xc1, //0x00000822 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00000825 cmpq $2, %rcx + 0x0f, 0x82, 0x33, 0x00, 0x00, 0x00, //0x00000829 jb LBB0_62 + 0x0f, 0xb6, 0x10, //0x0000082f movzbl (%rax), %edx + 0x0f, 0xb6, 0x78, 0x01, //0x00000832 movzbl $1(%rax), %edi + 0x88, 0x54, 0x24, 0x20, //0x00000836 movb %dl, $32(%rsp) + 0x48, 0x8d, 0x70, 0x02, //0x0000083a leaq $2(%rax), %rsi + 0x48, 0x83, 0xc1, 0xfe, //0x0000083e addq $-2, %rcx + 0x4c, 0x89, 0xdb, //0x00000842 movq %r11, %rbx + 0x48, 0x85, 0xc9, //0x00000845 testq %rcx, %rcx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000848 je LBB0_63 + //0x0000084e LBB0_61 + 0x0f, 0xb6, 0x0e, //0x0000084e movzbl (%rsi), %ecx + 0x88, 0x0b, //0x00000851 movb %cl, (%rbx) + 0x0f, 0xb6, 0x54, 0x24, 0x20, //0x00000853 movzbl $32(%rsp), %edx + 0x0f, 0xb6, 0x4c, 0x24, 0x1e, //0x00000858 movzbl $30(%rsp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000085d jmp LBB0_64 + //0x00000862 LBB0_62 + 0x31, 0xd2, //0x00000862 xorl %edx, %edx + 0x31, 0xff, //0x00000864 xorl %edi, %edi + 0x4c, 0x89, 0xd3, //0x00000866 movq %r10, %rbx + 0x48, 0x89, 0xc6, //0x00000869 movq %rax, %rsi + 0x48, 0x85, 0xc9, //0x0000086c testq %rcx, %rcx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x0000086f jne LBB0_61 + //0x00000875 LBB0_63 + 0x31, 0xc9, //0x00000875 xorl %ecx, %ecx + //0x00000877 LBB0_64 + 0x0f, 0xb6, 0xf1, //0x00000877 movzbl %cl, %esi + 0xc1, 0xe6, 0x10, //0x0000087a shll $16, %esi + 0x40, 0x0f, 0xb6, 0xff, //0x0000087d movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x00000881 shll $8, %edi + 0x0f, 0xb6, 0xca, //0x00000884 movzbl %dl, %ecx + 0x09, 0xf9, //0x00000887 orl %edi, %ecx + 0x09, 0xce, //0x00000889 orl %ecx, %esi + 0x81, 0xe6, 0xf0, 0xc0, 0xc0, 0x00, //0x0000088b andl $12632304, %esi + 0x81, 0xfe, 0xe0, 0x80, 0x80, 0x00, //0x00000891 cmpl $8421600, %esi + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00000897 jne LBB0_67 + 0x89, 0xcf, //0x0000089d movl %ecx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000089f andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000008a5 cmpl $8205, %edi + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000008ab je LBB0_67 + 0xbe, 0x03, 0x00, 0x00, 0x00, //0x000008b1 movl $3, %esi + 0x85, 0xff, //0x000008b6 testl %edi, %edi + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x000008b8 jne LBB0_69 + 0x90, 0x90, //0x000008be .p2align 4, 0x90 + //0x000008c0 LBB0_67 + 0xf6, 0xc2, 0x1e, //0x000008c0 testb $30, %dl + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000008c3 je LBB0_54 + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000008c9 andl $49376, %ecx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x000008cf movl $2, %esi + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000008d4 cmpl $32960, %ecx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000008da jne LBB0_54 + //0x000008e0 LBB0_69 + 0x48, 0x01, 0xf0, //0x000008e0 addq %rsi, %rax + 0x4c, 0x39, 0xc8, //0x000008e3 cmpq %r9, %rax + 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x000008e6 jb LBB0_58 + //0x000008ec LBB0_12 + 0x31, 0xc0, //0x000008ec xorl %eax, %eax + 0x48, 0x8d, 0x65, 0xf8, //0x000008ee leaq $-8(%rbp), %rsp + 0x5b, //0x000008f2 popq %rbx + 0x5d, //0x000008f3 popq %rbp + 0xc5, 0xf8, 0x77, //0x000008f4 vzeroupper + 0xc3, //0x000008f7 retq + //0x000008f8 LBB0_26 + 0x4c, 0x89, 0xd9, //0x000008f8 movq %r11, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x000008fb andq $-128, %rcx + 0x48, 0x8d, 0x79, 0x80, //0x000008ff leaq $-128(%rcx), %rdi + 0x48, 0x89, 0xfe, //0x00000903 movq %rdi, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x00000906 shrq $7, %rsi + 0x48, 0xff, 0xc6, //0x0000090a incq %rsi + 0x41, 0x89, 0xf2, //0x0000090d movl %esi, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00000910 andl $1, %r10d + 0x48, 0x85, 0xff, //0x00000914 testq %rdi, %rdi + 0x0f, 0x84, 0xea, 0x00, 0x00, 0x00, //0x00000917 je LBB0_39 + 0x4c, 0x29, 0xd6, //0x0000091d subq %r10, %rsi + 0x31, 0xff, //0x00000920 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000922 .p2align 4, 0x90 + //0x00000930 LBB0_28 + 0xc5, 0xfc, 0x10, 0x1c, 0x3a, //0x00000930 vmovups (%rdx,%rdi), %ymm3 + 0xc5, 0xfc, 0x10, 0x64, 0x3a, 0x20, //0x00000935 vmovups $32(%rdx,%rdi), %ymm4 + 0xc5, 0xfc, 0x10, 0x6c, 0x3a, 0x40, //0x0000093b vmovups $64(%rdx,%rdi), %ymm5 + 0xc5, 0xfc, 0x10, 0x74, 0x3a, 0x60, //0x00000941 vmovups $96(%rdx,%rdi), %ymm6 + 0xc5, 0xfc, 0x11, 0x5c, 0x3c, 0x20, //0x00000947 vmovups %ymm3, $32(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0x64, 0x3c, 0x40, //0x0000094d vmovups %ymm4, $64(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0x6c, 0x3c, 0x60, //0x00000953 vmovups %ymm5, $96(%rsp,%rdi) + 0xc5, 0xfc, 0x11, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x00000959 vmovups %ymm6, $128(%rsp,%rdi) + 0xc5, 0xfe, 0x6f, 0x9c, 0x3a, 0x80, 0x00, 0x00, 0x00, //0x00000962 vmovdqu $128(%rdx,%rdi), %ymm3 + 0xc5, 0xfe, 0x6f, 0xa4, 0x3a, 0xa0, 0x00, 0x00, 0x00, //0x0000096b vmovdqu $160(%rdx,%rdi), %ymm4 + 0xc5, 0xfe, 0x6f, 0xac, 0x3a, 0xc0, 0x00, 0x00, 0x00, //0x00000974 vmovdqu $192(%rdx,%rdi), %ymm5 + 0xc5, 0xfe, 0x6f, 0xb4, 0x3a, 0xe0, 0x00, 0x00, 0x00, //0x0000097d vmovdqu $224(%rdx,%rdi), %ymm6 + 0xc5, 0xfe, 0x7f, 0x9c, 0x3c, 0xa0, 0x00, 0x00, 0x00, //0x00000986 vmovdqu %ymm3, $160(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xa4, 0x3c, 0xc0, 0x00, 0x00, 0x00, //0x0000098f vmovdqu %ymm4, $192(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xac, 0x3c, 0xe0, 0x00, 0x00, 0x00, //0x00000998 vmovdqu %ymm5, $224(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x00, 0x01, 0x00, 0x00, //0x000009a1 vmovdqu %ymm6, $256(%rsp,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x000009aa addq $256, %rdi + 0x48, 0x83, 0xc6, 0xfe, //0x000009b1 addq $-2, %rsi + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000009b5 jne LBB0_28 + 0x4d, 0x85, 0xd2, //0x000009bb testq %r10, %r10 + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x000009be je LBB0_31 + //0x000009c4 LBB0_30 + 0xc5, 0xfe, 0x6f, 0x1c, 0x3a, //0x000009c4 vmovdqu (%rdx,%rdi), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x3a, 0x20, //0x000009c9 vmovdqu $32(%rdx,%rdi), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x3a, 0x40, //0x000009cf vmovdqu $64(%rdx,%rdi), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x3a, 0x60, //0x000009d5 vmovdqu $96(%rdx,%rdi), %ymm6 + 0xc5, 0xfe, 0x7f, 0x5c, 0x3c, 0x20, //0x000009db vmovdqu %ymm3, $32(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0x64, 0x3c, 0x40, //0x000009e1 vmovdqu %ymm4, $64(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0x6c, 0x3c, 0x60, //0x000009e7 vmovdqu %ymm5, $96(%rsp,%rdi) + 0xc5, 0xfe, 0x7f, 0xb4, 0x3c, 0x80, 0x00, 0x00, 0x00, //0x000009ed vmovdqu %ymm6, $128(%rsp,%rdi) + //0x000009f6 LBB0_31 + 0x4c, 0x39, 0xd9, //0x000009f6 cmpq %r11, %rcx + 0x0f, 0x84, 0xc4, 0xfc, 0xff, 0xff, //0x000009f9 je LBB0_35 + 0x48, 0x01, 0xca, //0x000009ff addq %rcx, %rdx + 0xe9, 0x90, 0xfc, 0xff, 0xff, //0x00000a02 jmp LBB0_33 + //0x00000a07 LBB0_39 + 0x31, 0xff, //0x00000a07 xorl %edi, %edi + 0x4d, 0x85, 0xd2, //0x00000a09 testq %r10, %r10 + 0x0f, 0x85, 0xb2, 0xff, 0xff, 0xff, //0x00000a0c jne LBB0_30 + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x00000a12 jmp LBB0_31 + //0x00000a17 LBB0_40 + 0xc4, 0xe3, 0x6d, 0x46, 0xd4, 0x21, //0x00000a17 vperm2i128 $33, %ymm4, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x0f, 0xea, 0x0f, //0x00000a1d vpalignr $15, %ymm2, %ymm4, %ymm5 + 0xc5, 0xcd, 0x71, 0xd5, 0x04, //0x00000a23 vpsrlw $4, %ymm5, %ymm6 + 0xc5, 0xfe, 0x6f, 0x0d, 0xd0, 0xf5, 0xff, 0xff, //0x00000a28 vmovdqu $-2608(%rip), %ymm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xcd, 0xdb, 0xf1, //0x00000a30 vpand %ymm1, %ymm6, %ymm6 + 0xc5, 0xfe, 0x6f, 0x3d, 0xe4, 0xf5, 0xff, 0xff, //0x00000a34 vmovdqu $-2588(%rip), %ymm7 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe2, 0x45, 0x00, 0xf6, //0x00000a3c vpshufb %ymm6, %ymm7, %ymm6 + 0xc5, 0xd5, 0xdb, 0xe9, //0x00000a41 vpand %ymm1, %ymm5, %ymm5 + 0xc5, 0x7e, 0x6f, 0x05, 0xf3, 0xf5, 0xff, 0xff, //0x00000a45 vmovdqu $-2573(%rip), %ymm8 /* LCPI0_2+0(%rip) */ + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x00000a4d vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xb5, 0x71, 0xd4, 0x04, //0x00000a52 vpsrlw $4, %ymm4, %ymm9 + 0xc5, 0x35, 0xdb, 0xc9, //0x00000a57 vpand %ymm1, %ymm9, %ymm9 + 0xc5, 0x7e, 0x6f, 0x15, 0xfd, 0xf5, 0xff, 0xff, //0x00000a5b vmovdqu $-2563(%rip), %ymm10 /* LCPI0_3+0(%rip) */ + 0xc4, 0x42, 0x2d, 0x00, 0xc9, //0x00000a63 vpshufb %ymm9, %ymm10, %ymm9 + 0xc5, 0xb5, 0xdb, 0xed, //0x00000a68 vpand %ymm5, %ymm9, %ymm5 + 0xc5, 0xcd, 0xdb, 0xed, //0x00000a6c vpand %ymm5, %ymm6, %ymm5 + 0xc4, 0xe3, 0x5d, 0x0f, 0xf2, 0x0e, //0x00000a70 vpalignr $14, %ymm2, %ymm4, %ymm6 + 0xc4, 0xe3, 0x5d, 0x0f, 0xd2, 0x0d, //0x00000a76 vpalignr $13, %ymm2, %ymm4, %ymm2 + 0xc5, 0x7e, 0x6f, 0x0d, 0xfc, 0xf5, 0xff, 0xff, //0x00000a7c vmovdqu $-2564(%rip), %ymm9 /* LCPI0_4+0(%rip) */ + 0xc4, 0xc1, 0x4d, 0xd8, 0xf1, //0x00000a84 vpsubusb %ymm9, %ymm6, %ymm6 + 0xc5, 0x7e, 0x6f, 0x1d, 0x0f, 0xf6, 0xff, 0xff, //0x00000a89 vmovdqu $-2545(%rip), %ymm11 /* LCPI0_5+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xd8, 0xd3, //0x00000a91 vpsubusb %ymm11, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd6, //0x00000a96 vpor %ymm6, %ymm2, %ymm2 + 0xc5, 0xc9, 0xef, 0xf6, //0x00000a9a vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xed, 0x74, 0xd6, //0x00000a9e vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc4, 0x62, 0x7d, 0x59, 0x25, 0x55, 0xf6, 0xff, 0xff, //0x00000aa2 vpbroadcastq $-2475(%rip), %ymm12 /* LCPI0_6+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xdf, 0xd4, //0x00000aab vpandn %ymm12, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd5, //0x00000ab0 vpxor %ymm5, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x46, 0xe3, 0x21, //0x00000ab4 vperm2i128 $33, %ymm3, %ymm4, %ymm4 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0f, //0x00000aba vpalignr $15, %ymm4, %ymm3, %ymm5 + 0xc5, 0x95, 0x71, 0xd5, 0x04, //0x00000ac0 vpsrlw $4, %ymm5, %ymm13 + 0xc5, 0x15, 0xdb, 0xe9, //0x00000ac5 vpand %ymm1, %ymm13, %ymm13 + 0xc4, 0xc2, 0x45, 0x00, 0xfd, //0x00000ac9 vpshufb %ymm13, %ymm7, %ymm7 + 0xc5, 0xd5, 0xdb, 0xe9, //0x00000ace vpand %ymm1, %ymm5, %ymm5 + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x00000ad2 vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xbd, 0x71, 0xd3, 0x04, //0x00000ad7 vpsrlw $4, %ymm3, %ymm8 + 0xc5, 0xbd, 0xdb, 0xc9, //0x00000adc vpand %ymm1, %ymm8, %ymm1 + 0xc4, 0xe2, 0x2d, 0x00, 0xc9, //0x00000ae0 vpshufb %ymm1, %ymm10, %ymm1 + 0xc5, 0xd5, 0xdb, 0xc9, //0x00000ae5 vpand %ymm1, %ymm5, %ymm1 + 0xc5, 0xc5, 0xdb, 0xc9, //0x00000ae9 vpand %ymm1, %ymm7, %ymm1 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0e, //0x00000aed vpalignr $14, %ymm4, %ymm3, %ymm5 + 0xc4, 0xe3, 0x65, 0x0f, 0xe4, 0x0d, //0x00000af3 vpalignr $13, %ymm4, %ymm3, %ymm4 + 0xc4, 0xc1, 0x55, 0xd8, 0xe9, //0x00000af9 vpsubusb %ymm9, %ymm5, %ymm5 + 0xc4, 0xc1, 0x5d, 0xd8, 0xe3, //0x00000afe vpsubusb %ymm11, %ymm4, %ymm4 + 0xc5, 0xdd, 0xeb, 0xe5, //0x00000b03 vpor %ymm5, %ymm4, %ymm4 + 0xc5, 0xdd, 0x74, 0xe6, //0x00000b07 vpcmpeqb %ymm6, %ymm4, %ymm4 + 0xc4, 0xc1, 0x5d, 0xdf, 0xe4, //0x00000b0b vpandn %ymm12, %ymm4, %ymm4 + 0xc5, 0xdd, 0xef, 0xc9, //0x00000b10 vpxor %ymm1, %ymm4, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x00000b14 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00000b18 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xe5, 0xd8, 0x0d, 0x9c, 0xf5, 0xff, 0xff, //0x00000b1c vpsubusb $-2660(%rip), %ymm3, %ymm1 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfd, 0xeb, 0xc1, //0x00000b24 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00000b28 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0xb9, 0xfd, 0xff, 0xff, //0x00000b2d je LBB0_12 + 0xe9, 0xba, 0xfb, 0xff, 0xff, //0x00000b33 jmp LBB0_41 + //0x00000b38 .p2align 2, 0x00 + //0x00000b38 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000b38 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_subr.go new file mode 100644 index 000000000..906966912 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_subr.go @@ -0,0 +1,44 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_utf8 = 0 +) + +const ( + _stack__validate_utf8 = 48 +) + +const ( + _size__validate_utf8 = 668 +) + +var ( + _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}, + } +) + +var _cfunc_validate_utf8 = []loader.CFunc{ + {"_validate_utf8_entry", 0, _entry__validate_utf8, 0, nil}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_text_amd64.go new file mode 100644 index 000000000..598837893 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/validate_utf8_text_amd64.go @@ -0,0 +1,191 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_validate_utf8 = []byte{ + // .p2align 4, 0x90 + // _validate_utf8 + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x41, 0x57, //0x00000004 pushq %r15 + 0x41, 0x56, //0x00000006 pushq %r14 + 0x41, 0x54, //0x00000008 pushq %r12 + 0x53, //0x0000000a pushq %rbx + 0x50, //0x0000000b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000000c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000000f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00000013 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00000016 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x00000019 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000001e jmp LBB0_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000023 .p2align 4, 0x90 + //0x00000030 LBB0_19 + 0x48, 0x01, 0xd9, //0x00000030 addq %rbx, %rcx + //0x00000033 LBB0_1 + 0x4c, 0x39, 0xc1, //0x00000033 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00000036 jae LBB0_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000003c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00000041 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00000044 jns LBB0_19 + 0x8b, 0x01, //0x0000004a movl (%rcx), %eax + 0x89, 0xc7, //0x0000004c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000004e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00000054 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000005a jne LBB0_10 + 0x89, 0xc7, //0x00000060 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00000062 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00000068 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000006e je LBB0_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000074 movl $3, %ebx + 0x85, 0xff, //0x00000079 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000007b jne LBB0_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000081 .p2align 4, 0x90 + //0x00000090 LBB0_10 + 0x89, 0xc7, //0x00000090 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00000092 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00000098 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000009e jne LBB0_12 + 0x89, 0xc7, //0x000000a4 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000000a6 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x000000ab andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000000ae jne LBB0_19 + //0x000000b4 LBB0_12 + 0x89, 0xc7, //0x000000b4 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000000b6 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000000bc cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000000c2 jne LBB0_16 + 0x89, 0xc7, //0x000000c8 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000000ca andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000000d0 je LBB0_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000000d6 movl $4, %ebx + 0xa8, 0x04, //0x000000db testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000000dd je LBB0_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000000e3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000000e8 je LBB0_19 + //0x000000ee LBB0_16 + 0x48, 0x89, 0xcf, //0x000000ee movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000000f1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000000f4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000000f7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000000fe jae LBB0_17 + 0x48, 0x63, 0xc7, //0x00000104 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00000107 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x0000010b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000010e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000113 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00000118 jmp LBB0_19 + //0x0000011d LBB0_2 + 0x4d, 0x01, 0xd3, //0x0000011d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00000120 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x00000123 jae LBB0_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00000129 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x0000012d leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00000131 jmp LBB0_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000136 .p2align 4, 0x90 + //0x00000140 LBB0_5 + 0x48, 0xff, 0xc1, //0x00000140 incq %rcx + 0x4c, 0x39, 0xd9, //0x00000143 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00000146 jae LBB0_36 + //0x0000014c LBB0_4 + 0x80, 0x39, 0x00, //0x0000014c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000014f jns LBB0_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00000155 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00000159 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000015d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00000160 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000163 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00000167 jb LBB0_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000016d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00000171 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00000176 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000017a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000017e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00000182 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00000185 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000188 je LBB0_24 + //0x0000018e LBB0_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000018e movzbl (%r15), %eax + 0x88, 0x07, //0x00000192 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00000194 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00000199 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000019d jmp LBB0_26 + //0x000001a2 LBB0_21 + 0x45, 0x31, 0xe4, //0x000001a2 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x000001a5 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x000001a8 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x000001ab movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x000001ae testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x000001b1 jne LBB0_25 + //0x000001b7 LBB0_24 + 0x31, 0xff, //0x000001b7 xorl %edi, %edi + //0x000001b9 LBB0_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x000001b9 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x000001bd shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x000001c0 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x000001c4 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x000001c7 movzbl %r12b, %edi + 0x09, 0xdf, //0x000001cb orl %ebx, %edi + 0x09, 0xf8, //0x000001cd orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x000001cf andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000001d4 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000001d9 jne LBB0_29 + 0x89, 0xf8, //0x000001df movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000001e1 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000001e6 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000001eb je LBB0_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000001f1 movl $3, %ebx + 0x85, 0xc0, //0x000001f6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000001f8 jne LBB0_34 + 0x90, 0x90, //0x000001fe .p2align 4, 0x90 + //0x00000200 LBB0_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00000200 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000204 je LBB0_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x0000020a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000210 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00000215 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x0000021b jne LBB0_31 + //0x00000221 LBB0_34 + 0x48, 0x01, 0xd9, //0x00000221 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00000224 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00000227 jb LBB0_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x0000022d jmp LBB0_36 + //0x00000232 LBB0_31 + 0x48, 0x89, 0xc8, //0x00000232 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000235 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00000238 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000023b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00000242 jae LBB0_32 + 0x48, 0x98, //0x00000248 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000024a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000024e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00000251 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000256 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000025b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000025e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00000261 jb LBB0_4 + //0x00000267 LBB0_36 + 0x4c, 0x29, 0xd1, //0x00000267 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000026a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000026d xorl %eax, %eax + //0x0000026f LBB0_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000026f addq $8, %rsp + 0x5b, //0x00000273 popq %rbx + 0x41, 0x5c, //0x00000274 popq %r12 + 0x41, 0x5e, //0x00000276 popq %r14 + 0x41, 0x5f, //0x00000278 popq %r15 + 0x5d, //0x0000027a popq %rbp + 0xc3, //0x0000027b retq + //0x0000027c LBB0_32 + 0x48, 0x89, 0x06, //0x0000027c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000027f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00000286 jmp LBB0_37 + //0x0000028b LBB0_17 + 0x48, 0x89, 0x3e, //0x0000028b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000028e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000295 jmp LBB0_37 + 0x00, 0x00, //0x0000029a .p2align 2, 0x00 + //0x0000029c _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000029c .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/value.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/value.go new file mode 100644 index 000000000..808a863c4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/value.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + +var S_value uintptr + +//go:nosplit +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return F_value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/value_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/value_subr.go new file mode 100644 index 000000000..62cdd75fa --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/value_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__value = 544 +) + +const ( + _stack__value = 104 +) + +const ( + _size__value = 13456 +) + +var ( + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3601, 104}, + {3605, 48}, + {3606, 40}, + {3608, 32}, + {3610, 24}, + {3612, 16}, + {3614, 8}, + {3618, 0}, + {13456, 104}, + } +) + +var _cfunc_value = []loader.CFunc{ + {"_value_entry", 0, _entry__value, 0, nil}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/value_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/value_text_amd64.go new file mode 100644 index 000000000..7b18230da --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/value_text_amd64.go @@ -0,0 +1,5874 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_value = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x20, // .byte 32 + 0x00, //0x00000001 .byte 0 + 0x00, //0x00000002 .byte 0 + 0x00, //0x00000003 .byte 0 + 0x00, //0x00000004 .byte 0 + 0x00, //0x00000005 .byte 0 + 0x00, //0x00000006 .byte 0 + 0x00, //0x00000007 .byte 0 + 0x00, //0x00000008 .byte 0 + 0x09, //0x00000009 .byte 9 + 0x0a, //0x0000000a .byte 10 + 0x00, //0x0000000b .byte 0 + 0x00, //0x0000000c .byte 0 + 0x0d, //0x0000000d .byte 13 + 0x00, //0x0000000e .byte 0 + 0x00, //0x0000000f .byte 0 + 0x20, //0x00000010 .byte 32 + 0x00, //0x00000011 .byte 0 + 0x00, //0x00000012 .byte 0 + 0x00, //0x00000013 .byte 0 + 0x00, //0x00000014 .byte 0 + 0x00, //0x00000015 .byte 0 + 0x00, //0x00000016 .byte 0 + 0x00, //0x00000017 .byte 0 + 0x00, //0x00000018 .byte 0 + 0x09, //0x00000019 .byte 9 + 0x0a, //0x0000001a .byte 10 + 0x00, //0x0000001b .byte 0 + 0x00, //0x0000001c .byte 0 + 0x0d, //0x0000001d .byte 13 + 0x00, //0x0000001e .byte 0 + 0x00, //0x0000001f .byte 0 + //0x00000020 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000020 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000050 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000060 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000060 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000070 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000080 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000080 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000090 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x000000a0 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000a0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x000000b0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x000000c0 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000c0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000d0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x000000e0 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000e0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000f0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000100 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000100 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000110 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000120 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000120 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000130 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000140 LCPI0_21 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000140 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000148 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000150 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000158 .quad 1 + //0x00000160 .p2align 4, 0x00 + //0x00000160 LCPI0_10 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000160 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000170 LCPI0_11 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000170 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000180 LCPI0_12 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000180 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000190 LCPI0_13 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000190 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x000001a0 LCPI0_14 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000001a0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000001b0 LCPI0_15 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000001b0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000001c0 LCPI0_16 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000001c0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000001d0 LCPI0_17 + 0x00, 0x00, 0x30, 0x43, //0x000001d0 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x000001d4 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x000001d8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000001dc .long 0 + //0x000001e0 LCPI0_18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x000001e0 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x000001e8 .quad 4985484787499139072 + //0x000001f0 .p2align 3, 0x00 + //0x000001f0 LCPI0_19 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000001f0 .quad 4831355200913801216 + //0x000001f8 LCPI0_20 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x000001f8 .quad -4392016835940974592 + //0x00000200 LCPI0_22 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000200 .quad 1 + //0x00000208 LCPI0_23 + 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000208 .quad 10000 + //0x00000210 LCPI0_24 + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000210 .quad 10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000218 .p2align 4, 0x90 + //0x00000220 _value + 0x55, //0x00000220 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000221 movq %rsp, %rbp + 0x41, 0x57, //0x00000224 pushq %r15 + 0x41, 0x56, //0x00000226 pushq %r14 + 0x41, 0x55, //0x00000228 pushq %r13 + 0x41, 0x54, //0x0000022a pushq %r12 + 0x53, //0x0000022c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000022d subq $56, %rsp + 0x49, 0x89, 0xce, //0x00000231 movq %rcx, %r14 + 0x49, 0x89, 0xf3, //0x00000234 movq %rsi, %r11 + 0x48, 0x39, 0xf2, //0x00000237 cmpq %rsi, %rdx + 0x0f, 0x83, 0x27, 0x00, 0x00, 0x00, //0x0000023a jae LBB0_5 + 0x8a, 0x04, 0x17, //0x00000240 movb (%rdi,%rdx), %al + 0x3c, 0x0d, //0x00000243 cmpb $13, %al + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00000245 je LBB0_5 + 0x3c, 0x20, //0x0000024b cmpb $32, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000024d je LBB0_5 + 0x8d, 0x48, 0xf7, //0x00000253 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x00000256 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00000259 jbe LBB0_5 + 0x49, 0x89, 0xd7, //0x0000025f movq %rdx, %r15 + 0xe9, 0x85, 0x01, 0x00, 0x00, //0x00000262 jmp LBB0_33 + //0x00000267 LBB0_5 + 0x4c, 0x8d, 0x7a, 0x01, //0x00000267 leaq $1(%rdx), %r15 + 0x4d, 0x39, 0xdf, //0x0000026b cmpq %r11, %r15 + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000026e jae LBB0_9 + 0x42, 0x8a, 0x04, 0x3f, //0x00000274 movb (%rdi,%r15), %al + 0x3c, 0x0d, //0x00000278 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000027a je LBB0_9 + 0x3c, 0x20, //0x00000280 cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000282 je LBB0_9 + 0x8d, 0x48, 0xf7, //0x00000288 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x0000028b cmpb $1, %cl + 0x0f, 0x87, 0x58, 0x01, 0x00, 0x00, //0x0000028e ja LBB0_33 + //0x00000294 LBB0_9 + 0x4c, 0x8d, 0x7a, 0x02, //0x00000294 leaq $2(%rdx), %r15 + 0x4d, 0x39, 0xdf, //0x00000298 cmpq %r11, %r15 + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000029b jae LBB0_13 + 0x42, 0x8a, 0x04, 0x3f, //0x000002a1 movb (%rdi,%r15), %al + 0x3c, 0x0d, //0x000002a5 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000002a7 je LBB0_13 + 0x3c, 0x20, //0x000002ad cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000002af je LBB0_13 + 0x8d, 0x48, 0xf7, //0x000002b5 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x000002b8 cmpb $1, %cl + 0x0f, 0x87, 0x2b, 0x01, 0x00, 0x00, //0x000002bb ja LBB0_33 + //0x000002c1 LBB0_13 + 0x4c, 0x8d, 0x7a, 0x03, //0x000002c1 leaq $3(%rdx), %r15 + 0x4d, 0x39, 0xdf, //0x000002c5 cmpq %r11, %r15 + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000002c8 jae LBB0_17 + 0x42, 0x8a, 0x04, 0x3f, //0x000002ce movb (%rdi,%r15), %al + 0x3c, 0x0d, //0x000002d2 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000002d4 je LBB0_17 + 0x3c, 0x20, //0x000002da cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000002dc je LBB0_17 + 0x8d, 0x48, 0xf7, //0x000002e2 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x000002e5 cmpb $1, %cl + 0x0f, 0x87, 0xfe, 0x00, 0x00, 0x00, //0x000002e8 ja LBB0_33 + //0x000002ee LBB0_17 + 0x48, 0x8d, 0x4a, 0x04, //0x000002ee leaq $4(%rdx), %rcx + 0x4c, 0x39, 0xd9, //0x000002f2 cmpq %r11, %rcx + 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x000002f5 jae LBB0_30 + 0x4c, 0x8d, 0x3c, 0x0f, //0x000002fb leaq (%rdi,%rcx), %r15 + 0x4c, 0x89, 0xd8, //0x000002ff movq %r11, %rax + 0x48, 0x29, 0xc8, //0x00000302 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00000305 cmpq $32, %rax + 0x0f, 0x82, 0x64, 0x00, 0x00, 0x00, //0x00000309 jb LBB0_23 + 0x4c, 0x89, 0xd9, //0x0000030f movq %r11, %rcx + 0x48, 0x29, 0xd1, //0x00000312 subq %rdx, %rcx + 0x48, 0x83, 0xc1, 0xdc, //0x00000315 addq $-36, %rcx + 0x48, 0x89, 0xce, //0x00000319 movq %rcx, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x0000031c andq $-32, %rsi + 0x48, 0x01, 0xd6, //0x00000320 addq %rdx, %rsi + 0x48, 0x8d, 0x74, 0x37, 0x24, //0x00000323 leaq $36(%rdi,%rsi), %rsi + 0x83, 0xe1, 0x1f, //0x00000328 andl $31, %ecx + 0xc5, 0xfe, 0x6f, 0x05, 0xcd, 0xfc, 0xff, 0xff, //0x0000032b vmovdqu $-819(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000333 .p2align 4, 0x90 + //0x00000340 LBB0_20 + 0xc4, 0xc1, 0x7e, 0x6f, 0x0f, //0x00000340 vmovdqu (%r15), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000345 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x0000034a vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd9, //0x0000034e vpmovmskb %ymm1, %ebx + 0x83, 0xfb, 0xff, //0x00000352 cmpl $-1, %ebx + 0x0f, 0x85, 0x75, 0x00, 0x00, 0x00, //0x00000355 jne LBB0_31 + 0x49, 0x83, 0xc7, 0x20, //0x0000035b addq $32, %r15 + 0x48, 0x83, 0xc0, 0xe0, //0x0000035f addq $-32, %rax + 0x48, 0x83, 0xf8, 0x1f, //0x00000363 cmpq $31, %rax + 0x0f, 0x87, 0xd3, 0xff, 0xff, 0xff, //0x00000367 ja LBB0_20 + 0x48, 0x89, 0xc8, //0x0000036d movq %rcx, %rax + 0x49, 0x89, 0xf7, //0x00000370 movq %rsi, %r15 + //0x00000373 LBB0_23 + 0x48, 0x85, 0xc0, //0x00000373 testq %rax, %rax + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00000376 je LBB0_29 + 0x49, 0x8d, 0x0c, 0x07, //0x0000037c leaq (%r15,%rax), %rcx + 0x49, 0xff, 0xc7, //0x00000380 incq %r15 + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000383 movabsq $4294977024, %rsi + //0x0000038d LBB0_25 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x0000038d movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x00000392 cmpl $32, %ebx + 0x0f, 0x87, 0x77, 0x0c, 0x00, 0x00, //0x00000395 ja LBB0_199 + 0x48, 0x0f, 0xa3, 0xde, //0x0000039b btq %rbx, %rsi + 0x0f, 0x83, 0x6d, 0x0c, 0x00, 0x00, //0x0000039f jae LBB0_199 + 0x48, 0xff, 0xc8, //0x000003a5 decq %rax + 0x49, 0xff, 0xc7, //0x000003a8 incq %r15 + 0x48, 0x85, 0xc0, //0x000003ab testq %rax, %rax + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000003ae jne LBB0_25 + 0x49, 0x89, 0xcf, //0x000003b4 movq %rcx, %r15 + //0x000003b7 LBB0_29 + 0x49, 0x29, 0xff, //0x000003b7 subq %rdi, %r15 + 0x4d, 0x39, 0xdf, //0x000003ba cmpq %r11, %r15 + 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x000003bd jb LBB0_32 + 0xe9, 0x5c, 0x0c, 0x00, 0x00, //0x000003c3 jmp LBB0_200 + //0x000003c8 LBB0_30 + 0x48, 0x89, 0xca, //0x000003c8 movq %rcx, %rdx + 0xe9, 0x54, 0x0c, 0x00, 0x00, //0x000003cb jmp LBB0_200 + //0x000003d0 LBB0_31 + 0x49, 0x29, 0xff, //0x000003d0 subq %rdi, %r15 + 0xf7, 0xd3, //0x000003d3 notl %ebx + 0x48, 0x63, 0xc3, //0x000003d5 movslq %ebx, %rax + 0x48, 0x0f, 0xbc, 0xc0, //0x000003d8 bsfq %rax, %rax + 0x49, 0x01, 0xc7, //0x000003dc addq %rax, %r15 + 0x4d, 0x39, 0xdf, //0x000003df cmpq %r11, %r15 + 0x0f, 0x83, 0x3c, 0x0c, 0x00, 0x00, //0x000003e2 jae LBB0_200 + //0x000003e8 LBB0_32 + 0x42, 0x8a, 0x04, 0x3f, //0x000003e8 movb (%rdi,%r15), %al + //0x000003ec LBB0_33 + 0x0f, 0xbe, 0xc8, //0x000003ec movsbl %al, %ecx + 0x83, 0xf9, 0x7d, //0x000003ef cmpl $125, %ecx + 0x0f, 0x87, 0x48, 0x07, 0x00, 0x00, //0x000003f2 ja LBB0_129 + 0x49, 0x8d, 0x57, 0x01, //0x000003f8 leaq $1(%r15), %rdx + 0x4e, 0x8d, 0x0c, 0x3f, //0x000003fc leaq (%rdi,%r15), %r9 + 0x48, 0x8d, 0x35, 0xa9, 0x32, 0x00, 0x00, //0x00000400 leaq $12969(%rip), %rsi /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8e, //0x00000407 movslq (%rsi,%rcx,4), %rcx + 0x48, 0x01, 0xf1, //0x0000040b addq %rsi, %rcx + 0xff, 0xe1, //0x0000040e jmpq *%rcx + //0x00000410 LBB0_35 + 0x41, 0xf6, 0xc0, 0x02, //0x00000410 testb $2, %r8b + 0x48, 0x89, 0x7d, 0xc8, //0x00000414 movq %rdi, $-56(%rbp) + 0x0f, 0x85, 0x70, 0x00, 0x00, 0x00, //0x00000418 jne LBB0_42 + 0x4d, 0x8b, 0x66, 0x20, //0x0000041e movq $32(%r14), %r12 + 0x4d, 0x8b, 0x6e, 0x28, //0x00000422 movq $40(%r14), %r13 + 0x49, 0xc7, 0x06, 0x09, 0x00, 0x00, 0x00, //0x00000426 movq $9, (%r14) + 0xc5, 0xf9, 0xef, 0xc0, //0x0000042d vpxor %xmm0, %xmm0, %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x46, 0x08, //0x00000431 vmovdqu %xmm0, $8(%r14) + 0x4d, 0x89, 0x7e, 0x18, //0x00000437 movq %r15, $24(%r14) + 0x4d, 0x39, 0xdf, //0x0000043b cmpq %r11, %r15 + 0x0f, 0x83, 0x00, 0x0d, 0x00, 0x00, //0x0000043e jae LBB0_221 + 0x41, 0x8a, 0x31, //0x00000444 movb (%r9), %sil + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000447 movl $1, %r8d + 0x4c, 0x89, 0xff, //0x0000044d movq %r15, %rdi + 0x40, 0x80, 0xfe, 0x2d, //0x00000450 cmpb $45, %sil + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00000454 jne LBB0_40 + 0x4c, 0x39, 0xda, //0x0000045a cmpq %r11, %rdx + 0x0f, 0x83, 0xe1, 0x0c, 0x00, 0x00, //0x0000045d jae LBB0_221 + 0x48, 0x8b, 0x45, 0xc8, //0x00000463 movq $-56(%rbp), %rax + 0x40, 0x8a, 0x34, 0x10, //0x00000467 movb (%rax,%rdx), %sil + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000046b movl $-1, %r8d + 0x48, 0x89, 0xd7, //0x00000471 movq %rdx, %rdi + //0x00000474 LBB0_40 + 0x8d, 0x46, 0xd0, //0x00000474 leal $-48(%rsi), %eax + 0x3c, 0x0a, //0x00000477 cmpb $10, %al + 0x0f, 0x82, 0x31, 0x04, 0x00, 0x00, //0x00000479 jb LBB0_98 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x0000047f movq $-2, (%r14) + 0x48, 0x89, 0xfb, //0x00000486 movq %rdi, %rbx + 0xe9, 0xa0, 0x0b, 0x00, 0x00, //0x00000489 jmp LBB0_202 + //0x0000048e LBB0_42 + 0x4d, 0x29, 0xfb, //0x0000048e subq %r15, %r11 + 0x31, 0xc9, //0x00000491 xorl %ecx, %ecx + 0x3c, 0x2d, //0x00000493 cmpb $45, %al + 0x0f, 0x94, 0xc1, //0x00000495 sete %cl + 0x49, 0x01, 0xc9, //0x00000498 addq %rcx, %r9 + 0x49, 0x29, 0xcb, //0x0000049b subq %rcx, %r11 + 0x0f, 0x84, 0x7f, 0x29, 0x00, 0x00, //0x0000049e je LBB0_655 + 0x4c, 0x89, 0x75, 0xb8, //0x000004a4 movq %r14, $-72(%rbp) + 0x41, 0x8a, 0x01, //0x000004a8 movb (%r9), %al + 0x8d, 0x48, 0xd0, //0x000004ab leal $-48(%rax), %ecx + 0x80, 0xf9, 0x09, //0x000004ae cmpb $9, %cl + 0x0f, 0x87, 0xc0, 0x27, 0x00, 0x00, //0x000004b1 ja LBB0_249 + 0x3c, 0x30, //0x000004b7 cmpb $48, %al + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000004b9 jne LBB0_48 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000004bf movl $1, %ebx + 0x49, 0x83, 0xfb, 0x01, //0x000004c4 cmpq $1, %r11 + 0x0f, 0x84, 0x6d, 0x0d, 0x00, 0x00, //0x000004c8 je LBB0_246 + 0x41, 0x8a, 0x41, 0x01, //0x000004ce movb $1(%r9), %al + 0x04, 0xd2, //0x000004d2 addb $-46, %al + 0x3c, 0x37, //0x000004d4 cmpb $55, %al + 0x0f, 0x87, 0x5f, 0x0d, 0x00, 0x00, //0x000004d6 ja LBB0_246 + 0x0f, 0xb6, 0xc0, //0x000004dc movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000004df movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000004e9 btq %rax, %rcx + 0x0f, 0x83, 0x48, 0x0d, 0x00, 0x00, //0x000004ed jae LBB0_246 + //0x000004f3 LBB0_48 + 0x49, 0x83, 0xfb, 0x20, //0x000004f3 cmpq $32, %r11 + 0x0f, 0x82, 0x32, 0x29, 0x00, 0x00, //0x000004f7 jb LBB0_656 + 0x49, 0x8d, 0x4b, 0xe0, //0x000004fd leaq $-32(%r11), %rcx + 0x48, 0x89, 0xc8, //0x00000501 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x00000504 andq $-32, %rax + 0x4e, 0x8d, 0x6c, 0x08, 0x20, //0x00000508 leaq $32(%rax,%r9), %r13 + 0x83, 0xe1, 0x1f, //0x0000050d andl $31, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00000510 movq %rcx, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000514 movq $-1, %r8 + 0xc5, 0xfe, 0x6f, 0x05, 0x5d, 0xfb, 0xff, 0xff, //0x0000051b vmovdqu $-1187(%rip), %ymm0 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x75, 0xfb, 0xff, 0xff, //0x00000523 vmovdqu $-1163(%rip), %ymm1 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0x8d, 0xfb, 0xff, 0xff, //0x0000052b vmovdqu $-1139(%rip), %ymm2 /* LCPI0_6+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x1d, 0xa5, 0xfb, 0xff, 0xff, //0x00000533 vmovdqu $-1115(%rip), %ymm3 /* LCPI0_7+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x25, 0x1d, 0xfb, 0xff, 0xff, //0x0000053b vmovdqu $-1251(%rip), %ymm4 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x2d, 0xb5, 0xfb, 0xff, 0xff, //0x00000543 vmovdqu $-1099(%rip), %ymm5 /* LCPI0_8+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x35, 0xcd, 0xfb, 0xff, 0xff, //0x0000054b vmovdqu $-1075(%rip), %ymm6 /* LCPI0_9+0(%rip) */ + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000553 movq $-1, %r14 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000055a movq $-1, %r10 + 0x4c, 0x89, 0xc8, //0x00000561 movq %r9, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000564 .p2align 4, 0x90 + //0x00000570 LBB0_50 + 0xc5, 0xfe, 0x6f, 0x38, //0x00000570 vmovdqu (%rax), %ymm7 + 0xc5, 0x45, 0x64, 0xc0, //0x00000574 vpcmpgtb %ymm0, %ymm7, %ymm8 + 0xc5, 0x75, 0x64, 0xcf, //0x00000578 vpcmpgtb %ymm7, %ymm1, %ymm9 + 0xc4, 0x41, 0x3d, 0xdb, 0xc1, //0x0000057c vpand %ymm9, %ymm8, %ymm8 + 0xc5, 0x45, 0x74, 0xca, //0x00000581 vpcmpeqb %ymm2, %ymm7, %ymm9 + 0xc5, 0x45, 0x74, 0xd3, //0x00000585 vpcmpeqb %ymm3, %ymm7, %ymm10 + 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x00000589 vpor %ymm9, %ymm10, %ymm9 + 0xc5, 0x45, 0xeb, 0xd4, //0x0000058e vpor %ymm4, %ymm7, %ymm10 + 0xc5, 0x2d, 0x74, 0xd6, //0x00000592 vpcmpeqb %ymm6, %ymm10, %ymm10 + 0xc5, 0xc5, 0x74, 0xfd, //0x00000596 vpcmpeqb %ymm5, %ymm7, %ymm7 + 0xc5, 0xfd, 0xd7, 0xdf, //0x0000059a vpmovmskb %ymm7, %ebx + 0xc4, 0x41, 0x7d, 0xd7, 0xe2, //0x0000059e vpmovmskb %ymm10, %r12d + 0xc4, 0xc1, 0x7d, 0xd7, 0xf1, //0x000005a3 vpmovmskb %ymm9, %esi + 0xc5, 0xad, 0xeb, 0xff, //0x000005a8 vpor %ymm7, %ymm10, %ymm7 + 0xc4, 0x41, 0x35, 0xeb, 0xc0, //0x000005ac vpor %ymm8, %ymm9, %ymm8 + 0xc5, 0xbd, 0xeb, 0xff, //0x000005b1 vpor %ymm7, %ymm8, %ymm7 + 0xc5, 0xfd, 0xd7, 0xcf, //0x000005b5 vpmovmskb %ymm7, %ecx + 0x48, 0xf7, 0xd1, //0x000005b9 notq %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000005bc bsfq %rcx, %rcx + 0x83, 0xf9, 0x20, //0x000005c0 cmpl $32, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000005c3 je LBB0_52 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x000005c9 movl $-1, %edi + 0xd3, 0xe7, //0x000005ce shll %cl, %edi + 0xf7, 0xd7, //0x000005d0 notl %edi + 0x21, 0xfb, //0x000005d2 andl %edi, %ebx + 0x41, 0x21, 0xfc, //0x000005d4 andl %edi, %r12d + 0x21, 0xf7, //0x000005d7 andl %esi, %edi + 0x89, 0xfe, //0x000005d9 movl %edi, %esi + //0x000005db LBB0_52 + 0x8d, 0x7b, 0xff, //0x000005db leal $-1(%rbx), %edi + 0x21, 0xdf, //0x000005de andl %ebx, %edi + 0x0f, 0x85, 0x02, 0x0a, 0x00, 0x00, //0x000005e0 jne LBB0_197 + 0x41, 0x8d, 0x7c, 0x24, 0xff, //0x000005e6 leal $-1(%r12), %edi + 0x44, 0x21, 0xe7, //0x000005eb andl %r12d, %edi + 0x0f, 0x85, 0xf4, 0x09, 0x00, 0x00, //0x000005ee jne LBB0_197 + 0x8d, 0x7e, 0xff, //0x000005f4 leal $-1(%rsi), %edi + 0x21, 0xf7, //0x000005f7 andl %esi, %edi + 0x0f, 0x85, 0xe9, 0x09, 0x00, 0x00, //0x000005f9 jne LBB0_197 + 0x85, 0xdb, //0x000005ff testl %ebx, %ebx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000601 je LBB0_58 + 0x48, 0x89, 0xc7, //0x00000607 movq %rax, %rdi + 0x4c, 0x29, 0xcf, //0x0000060a subq %r9, %rdi + 0x0f, 0xbc, 0xdb, //0x0000060d bsfl %ebx, %ebx + 0x48, 0x01, 0xfb, //0x00000610 addq %rdi, %rbx + 0x49, 0x83, 0xfa, 0xff, //0x00000613 cmpq $-1, %r10 + 0x0f, 0x85, 0x12, 0x0c, 0x00, 0x00, //0x00000617 jne LBB0_244 + 0x49, 0x89, 0xda, //0x0000061d movq %rbx, %r10 + //0x00000620 LBB0_58 + 0x45, 0x85, 0xe4, //0x00000620 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000623 je LBB0_61 + 0x48, 0x89, 0xc7, //0x00000629 movq %rax, %rdi + 0x4c, 0x29, 0xcf, //0x0000062c subq %r9, %rdi + 0x41, 0x0f, 0xbc, 0xdc, //0x0000062f bsfl %r12d, %ebx + 0x48, 0x01, 0xfb, //0x00000633 addq %rdi, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x00000636 cmpq $-1, %r14 + 0x0f, 0x85, 0xef, 0x0b, 0x00, 0x00, //0x0000063a jne LBB0_244 + 0x49, 0x89, 0xde, //0x00000640 movq %rbx, %r14 + //0x00000643 LBB0_61 + 0x85, 0xf6, //0x00000643 testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000645 je LBB0_64 + 0x48, 0x89, 0xc7, //0x0000064b movq %rax, %rdi + 0x4c, 0x29, 0xcf, //0x0000064e subq %r9, %rdi + 0x0f, 0xbc, 0xde, //0x00000651 bsfl %esi, %ebx + 0x48, 0x01, 0xfb, //0x00000654 addq %rdi, %rbx + 0x49, 0x83, 0xf8, 0xff, //0x00000657 cmpq $-1, %r8 + 0x0f, 0x85, 0xce, 0x0b, 0x00, 0x00, //0x0000065b jne LBB0_244 + 0x49, 0x89, 0xd8, //0x00000661 movq %rbx, %r8 + //0x00000664 LBB0_64 + 0x83, 0xf9, 0x20, //0x00000664 cmpl $32, %ecx + 0x0f, 0x85, 0xb3, 0x01, 0x00, 0x00, //0x00000667 jne LBB0_87 + 0x48, 0x83, 0xc0, 0x20, //0x0000066d addq $32, %rax + 0x49, 0x83, 0xc3, 0xe0, //0x00000671 addq $-32, %r11 + 0x49, 0x83, 0xfb, 0x1f, //0x00000675 cmpq $31, %r11 + 0x0f, 0x87, 0xf1, 0xfe, 0xff, 0xff, //0x00000679 ja LBB0_50 + 0xc5, 0xf8, 0x77, //0x0000067f vzeroupper + 0x4c, 0x8b, 0x5d, 0xc0, //0x00000682 movq $-64(%rbp), %r11 + 0x49, 0x83, 0xfb, 0x10, //0x00000686 cmpq $16, %r11 + 0x0f, 0x82, 0x76, 0x01, 0x00, 0x00, //0x0000068a jb LBB0_85 + //0x00000690 LBB0_67 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00000690 movl $4294967295, %esi + 0x49, 0x8d, 0x4b, 0xf0, //0x00000695 leaq $-16(%r11), %rcx + 0x48, 0x89, 0xc8, //0x00000699 movq %rcx, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000069c andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x28, 0x10, //0x000006a0 leaq $16(%rax,%r13), %rax + 0x48, 0x89, 0x45, 0xb0, //0x000006a5 movq %rax, $-80(%rbp) + 0x83, 0xe1, 0x0f, //0x000006a9 andl $15, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x000006ac movq %rcx, $-64(%rbp) + 0xc5, 0x7a, 0x6f, 0x05, 0xa8, 0xfa, 0xff, 0xff, //0x000006b0 vmovdqu $-1368(%rip), %xmm8 /* LCPI0_10+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x0d, 0xb0, 0xfa, 0xff, 0xff, //0x000006b8 vmovdqu $-1360(%rip), %xmm9 /* LCPI0_11+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x15, 0xb8, 0xfa, 0xff, 0xff, //0x000006c0 vmovdqu $-1352(%rip), %xmm10 /* LCPI0_12+0(%rip) */ + 0xc5, 0x7a, 0x6f, 0x1d, 0xc0, 0xfa, 0xff, 0xff, //0x000006c8 vmovdqu $-1344(%rip), %xmm11 /* LCPI0_13+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x25, 0xc8, 0xfa, 0xff, 0xff, //0x000006d0 vmovdqu $-1336(%rip), %xmm4 /* LCPI0_14+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x2d, 0xd0, 0xfa, 0xff, 0xff, //0x000006d8 vmovdqu $-1328(%rip), %xmm5 /* LCPI0_15+0(%rip) */ + 0xc5, 0xfa, 0x6f, 0x35, 0xd8, 0xfa, 0xff, 0xff, //0x000006e0 vmovdqu $-1320(%rip), %xmm6 /* LCPI0_16+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000006e8 .p2align 4, 0x90 + //0x000006f0 LBB0_68 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7d, 0x00, //0x000006f0 vmovdqu (%r13), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x000006f6 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x000006fb vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x000006ff vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00000703 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00000707 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000070b vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xeb, 0xd4, //0x0000070f vpor %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00000713 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00000717 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000071b vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x0000071f vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00000723 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xdf, //0x00000727 vpmovmskb %xmm7, %ebx + 0xc5, 0xf9, 0xd7, 0xfa, //0x0000072b vpmovmskb %xmm2, %edi + 0xc5, 0x79, 0xd7, 0xe1, //0x0000072f vpmovmskb %xmm1, %r12d + 0xc5, 0xf9, 0xd7, 0xc0, //0x00000733 vpmovmskb %xmm0, %eax + 0x48, 0x31, 0xf0, //0x00000737 xorq %rsi, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x0000073a bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x0000073e cmpl $16, %ecx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x00000741 je LBB0_70 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00000747 movl $-1, %eax + 0xd3, 0xe0, //0x0000074c shll %cl, %eax + 0xf7, 0xd0, //0x0000074e notl %eax + 0x21, 0xc3, //0x00000750 andl %eax, %ebx + 0x21, 0xc7, //0x00000752 andl %eax, %edi + 0x44, 0x21, 0xe0, //0x00000754 andl %r12d, %eax + 0x41, 0x89, 0xc4, //0x00000757 movl %eax, %r12d + //0x0000075a LBB0_70 + 0x8d, 0x43, 0xff, //0x0000075a leal $-1(%rbx), %eax + 0x21, 0xd8, //0x0000075d andl %ebx, %eax + 0x0f, 0x85, 0xc1, 0x0a, 0x00, 0x00, //0x0000075f jne LBB0_238 + 0x8d, 0x47, 0xff, //0x00000765 leal $-1(%rdi), %eax + 0x21, 0xf8, //0x00000768 andl %edi, %eax + 0x0f, 0x85, 0xb6, 0x0a, 0x00, 0x00, //0x0000076a jne LBB0_238 + 0x41, 0x8d, 0x44, 0x24, 0xff, //0x00000770 leal $-1(%r12), %eax + 0x44, 0x21, 0xe0, //0x00000775 andl %r12d, %eax + 0x0f, 0x85, 0xa8, 0x0a, 0x00, 0x00, //0x00000778 jne LBB0_238 + 0x85, 0xdb, //0x0000077e testl %ebx, %ebx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000780 je LBB0_76 + 0x4c, 0x89, 0xe8, //0x00000786 movq %r13, %rax + 0x4c, 0x29, 0xc8, //0x00000789 subq %r9, %rax + 0x0f, 0xbc, 0xdb, //0x0000078c bsfl %ebx, %ebx + 0x48, 0x01, 0xc3, //0x0000078f addq %rax, %rbx + 0x49, 0x83, 0xfa, 0xff, //0x00000792 cmpq $-1, %r10 + 0x0f, 0x85, 0x93, 0x0a, 0x00, 0x00, //0x00000796 jne LBB0_244 + 0x49, 0x89, 0xda, //0x0000079c movq %rbx, %r10 + //0x0000079f LBB0_76 + 0x85, 0xff, //0x0000079f testl %edi, %edi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000007a1 je LBB0_79 + 0x4c, 0x89, 0xe8, //0x000007a7 movq %r13, %rax + 0x4c, 0x29, 0xc8, //0x000007aa subq %r9, %rax + 0x0f, 0xbc, 0xdf, //0x000007ad bsfl %edi, %ebx + 0x48, 0x01, 0xc3, //0x000007b0 addq %rax, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x000007b3 cmpq $-1, %r14 + 0x0f, 0x85, 0x72, 0x0a, 0x00, 0x00, //0x000007b7 jne LBB0_244 + 0x49, 0x89, 0xde, //0x000007bd movq %rbx, %r14 + //0x000007c0 LBB0_79 + 0x45, 0x85, 0xe4, //0x000007c0 testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000007c3 je LBB0_82 + 0x4c, 0x89, 0xe8, //0x000007c9 movq %r13, %rax + 0x4c, 0x29, 0xc8, //0x000007cc subq %r9, %rax + 0x41, 0x0f, 0xbc, 0xdc, //0x000007cf bsfl %r12d, %ebx + 0x48, 0x01, 0xc3, //0x000007d3 addq %rax, %rbx + 0x49, 0x83, 0xf8, 0xff, //0x000007d6 cmpq $-1, %r8 + 0x0f, 0x85, 0x4f, 0x0a, 0x00, 0x00, //0x000007da jne LBB0_244 + 0x49, 0x89, 0xd8, //0x000007e0 movq %rbx, %r8 + //0x000007e3 LBB0_82 + 0x83, 0xf9, 0x10, //0x000007e3 cmpl $16, %ecx + 0x0f, 0x85, 0x12, 0x04, 0x00, 0x00, //0x000007e6 jne LBB0_141 + 0x49, 0x83, 0xc5, 0x10, //0x000007ec addq $16, %r13 + 0x49, 0x83, 0xc3, 0xf0, //0x000007f0 addq $-16, %r11 + 0x49, 0x83, 0xfb, 0x0f, //0x000007f4 cmpq $15, %r11 + 0x0f, 0x87, 0xf2, 0xfe, 0xff, 0xff, //0x000007f8 ja LBB0_68 + 0x4c, 0x8b, 0x5d, 0xc0, //0x000007fe movq $-64(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb0, //0x00000802 movq $-80(%rbp), %r13 + //0x00000806 LBB0_85 + 0x4d, 0x85, 0xdb, //0x00000806 testq %r11, %r11 + 0x0f, 0x84, 0xf2, 0x03, 0x00, 0x00, //0x00000809 je LBB0_142 + 0x4b, 0x8d, 0x44, 0x1d, 0x00, //0x0000080f leaq (%r13,%r11), %rax + 0x48, 0x8d, 0x0d, 0x8d, 0x30, 0x00, 0x00, //0x00000814 leaq $12429(%rip), %rcx /* LJTI0_1+0(%rip) */ + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000081b jmp LBB0_92 + //0x00000820 LBB0_87 + 0x48, 0x01, 0xc8, //0x00000820 addq %rcx, %rax + 0xc5, 0xf8, 0x77, //0x00000823 vzeroupper + //0x00000826 LBB0_88 + 0x49, 0x89, 0xc5, //0x00000826 movq %rax, %r13 + 0xe9, 0xd3, 0x03, 0x00, 0x00, //0x00000829 jmp LBB0_142 + //0x0000082e LBB0_89 + 0x48, 0x89, 0xf3, //0x0000082e movq %rsi, %rbx + 0x4c, 0x29, 0xcb, //0x00000831 subq %r9, %rbx + 0x49, 0x83, 0xfa, 0xff, //0x00000834 cmpq $-1, %r10 + 0x0f, 0x85, 0x27, 0x24, 0x00, 0x00, //0x00000838 jne LBB0_660 + 0x48, 0xff, 0xcb, //0x0000083e decq %rbx + 0x49, 0x89, 0xda, //0x00000841 movq %rbx, %r10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000844 .p2align 4, 0x90 + //0x00000850 LBB0_91 + 0x49, 0x89, 0xf5, //0x00000850 movq %rsi, %r13 + 0x49, 0xff, 0xcb, //0x00000853 decq %r11 + 0x0f, 0x84, 0xca, 0xff, 0xff, 0xff, //0x00000856 je LBB0_88 + //0x0000085c LBB0_92 + 0x41, 0x0f, 0xbe, 0x7d, 0x00, //0x0000085c movsbl (%r13), %edi + 0x83, 0xc7, 0xd5, //0x00000861 addl $-43, %edi + 0x83, 0xff, 0x3a, //0x00000864 cmpl $58, %edi + 0x0f, 0x87, 0x94, 0x03, 0x00, 0x00, //0x00000867 ja LBB0_142 + 0x49, 0x8d, 0x75, 0x01, //0x0000086d leaq $1(%r13), %rsi + 0x48, 0x63, 0x3c, 0xb9, //0x00000871 movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x00000875 addq %rcx, %rdi + 0xff, 0xe7, //0x00000878 jmpq *%rdi + //0x0000087a LBB0_94 + 0x48, 0x89, 0xf3, //0x0000087a movq %rsi, %rbx + 0x4c, 0x29, 0xcb, //0x0000087d subq %r9, %rbx + 0x49, 0x83, 0xf8, 0xff, //0x00000880 cmpq $-1, %r8 + 0x0f, 0x85, 0xdb, 0x23, 0x00, 0x00, //0x00000884 jne LBB0_660 + 0x48, 0xff, 0xcb, //0x0000088a decq %rbx + 0x49, 0x89, 0xd8, //0x0000088d movq %rbx, %r8 + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00000890 jmp LBB0_91 + //0x00000895 LBB0_96 + 0x48, 0x89, 0xf3, //0x00000895 movq %rsi, %rbx + 0x4c, 0x29, 0xcb, //0x00000898 subq %r9, %rbx + 0x49, 0x83, 0xfe, 0xff, //0x0000089b cmpq $-1, %r14 + 0x0f, 0x85, 0xc0, 0x23, 0x00, 0x00, //0x0000089f jne LBB0_660 + 0x48, 0xff, 0xcb, //0x000008a5 decq %rbx + 0x49, 0x89, 0xde, //0x000008a8 movq %rbx, %r14 + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x000008ab jmp LBB0_91 + //0x000008b0 LBB0_98 + 0x40, 0x80, 0xfe, 0x30, //0x000008b0 cmpb $48, %sil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000008b4 jne LBB0_102 + 0x48, 0x8d, 0x5f, 0x01, //0x000008ba leaq $1(%rdi), %rbx + 0x4c, 0x39, 0xdf, //0x000008be cmpq %r11, %rdi + 0x0f, 0x83, 0x67, 0x07, 0x00, 0x00, //0x000008c1 jae LBB0_202 + 0x48, 0x8b, 0x45, 0xc8, //0x000008c7 movq $-56(%rbp), %rax + 0x8a, 0x04, 0x18, //0x000008cb movb (%rax,%rbx), %al + 0x04, 0xd2, //0x000008ce addb $-46, %al + 0x3c, 0x37, //0x000008d0 cmpb $55, %al + 0x0f, 0x87, 0x56, 0x07, 0x00, 0x00, //0x000008d2 ja LBB0_202 + 0x0f, 0xb6, 0xc0, //0x000008d8 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000008db movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000008e5 btq %rax, %rcx + 0x0f, 0x83, 0x3f, 0x07, 0x00, 0x00, //0x000008e9 jae LBB0_202 + //0x000008ef LBB0_102 + 0x4c, 0x39, 0xdf, //0x000008ef cmpq %r11, %rdi + 0x0f, 0x83, 0x4f, 0x05, 0x00, 0x00, //0x000008f2 jae LBB0_168 + 0x48, 0xff, 0xc7, //0x000008f8 incq %rdi + 0x31, 0xc9, //0x000008fb xorl %ecx, %ecx + 0x48, 0x89, 0xfb, //0x000008fd movq %rdi, %rbx + 0x31, 0xc0, //0x00000900 xorl %eax, %eax + 0x45, 0x31, 0xd2, //0x00000902 xorl %r10d, %r10d + //0x00000905 LBB0_104 + 0x83, 0xf8, 0x12, //0x00000905 cmpl $18, %eax + 0x0f, 0x8f, 0x14, 0x00, 0x00, 0x00, //0x00000908 jg LBB0_106 + 0x40, 0x0f, 0xb6, 0xd6, //0x0000090e movzbl %sil, %edx + 0x4b, 0x8d, 0x34, 0x92, //0x00000912 leaq (%r10,%r10,4), %rsi + 0x4c, 0x8d, 0x54, 0x72, 0xd0, //0x00000916 leaq $-48(%rdx,%rsi,2), %r10 + 0xff, 0xc0, //0x0000091b incl %eax + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000091d jmp LBB0_107 + //0x00000922 LBB0_106 + 0xff, 0xc1, //0x00000922 incl %ecx + //0x00000924 LBB0_107 + 0x49, 0x39, 0xdb, //0x00000924 cmpq %rbx, %r11 + 0x0f, 0x84, 0x2c, 0x06, 0x00, 0x00, //0x00000927 je LBB0_185 + 0x48, 0x8b, 0x55, 0xc8, //0x0000092d movq $-56(%rbp), %rdx + 0x0f, 0xb6, 0x34, 0x1a, //0x00000931 movzbl (%rdx,%rbx), %esi + 0x8d, 0x56, 0xd0, //0x00000935 leal $-48(%rsi), %edx + 0x48, 0xff, 0xc3, //0x00000938 incq %rbx + 0x80, 0xfa, 0x0a, //0x0000093b cmpb $10, %dl + 0x0f, 0x82, 0xc1, 0xff, 0xff, 0xff, //0x0000093e jb LBB0_104 + 0x31, 0xd2, //0x00000944 xorl %edx, %edx + 0x85, 0xc9, //0x00000946 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00000948 setg %dl + 0x40, 0x80, 0xfe, 0x2e, //0x0000094b cmpb $46, %sil + 0x0f, 0x85, 0xad, 0x06, 0x00, 0x00, //0x0000094f jne LBB0_198 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00000955 movq $8, (%r14) + 0x4c, 0x39, 0xdb, //0x0000095c cmpq %r11, %rbx + 0x0f, 0x83, 0xdf, 0x07, 0x00, 0x00, //0x0000095f jae LBB0_221 + 0x89, 0x55, 0xc0, //0x00000965 movl %edx, $-64(%rbp) + 0x48, 0x89, 0xde, //0x00000968 movq %rbx, %rsi + 0x48, 0x8b, 0x55, 0xc8, //0x0000096b movq $-56(%rbp), %rdx + 0x8a, 0x1c, 0x1a, //0x0000096f movb (%rdx,%rbx), %bl + 0x80, 0xc3, 0xd0, //0x00000972 addb $-48, %bl + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000975 movl $8, %edx + 0x80, 0xfb, 0x0a, //0x0000097a cmpb $10, %bl + 0x0f, 0x82, 0x69, 0x09, 0x00, 0x00, //0x0000097d jb LBB0_259 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00000983 movq $-2, (%r14) + 0x48, 0x89, 0xf3, //0x0000098a movq %rsi, %rbx + 0xe9, 0x9c, 0x06, 0x00, 0x00, //0x0000098d jmp LBB0_202 + //0x00000992 LBB0_113 + 0x4c, 0x89, 0xf8, //0x00000992 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00000995 notq %rax + 0x41, 0xf6, 0xc0, 0x20, //0x00000998 testb $32, %r8b + 0x0f, 0x85, 0xe1, 0x02, 0x00, 0x00, //0x0000099c jne LBB0_152 + 0x4c, 0x39, 0xda, //0x000009a2 cmpq %r11, %rdx + 0x0f, 0x84, 0xad, 0x2c, 0x00, 0x00, //0x000009a5 je LBB0_722 + 0x49, 0x89, 0xfa, //0x000009ab movq %rdi, %r10 + 0x4d, 0x89, 0xdd, //0x000009ae movq %r11, %r13 + 0x49, 0x29, 0xd5, //0x000009b1 subq %rdx, %r13 + 0x49, 0x8d, 0x0c, 0x12, //0x000009b4 leaq (%r10,%rdx), %rcx + 0x49, 0x83, 0xfd, 0x40, //0x000009b8 cmpq $64, %r13 + 0x0f, 0x82, 0xd9, 0x29, 0x00, 0x00, //0x000009bc jb LBB0_723 + 0x4c, 0x89, 0xd6, //0x000009c2 movq %r10, %rsi + 0x45, 0x89, 0xec, //0x000009c5 movl %r13d, %r12d + 0x41, 0x83, 0xe4, 0x3f, //0x000009c8 andl $63, %r12d + 0x49, 0x8d, 0x44, 0x03, 0xc0, //0x000009cc leaq $-64(%r11,%rax), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x000009d1 andq $-64, %rax + 0x49, 0x01, 0xc7, //0x000009d5 addq %rax, %r15 + 0x4f, 0x8d, 0x4c, 0x3a, 0x41, //0x000009d8 leaq $65(%r10,%r15), %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000009dd movq $-1, %r8 + 0x45, 0x31, 0xff, //0x000009e4 xorl %r15d, %r15d + 0xc5, 0xfe, 0x6f, 0x05, 0x31, 0xf6, 0xff, 0xff, //0x000009e7 vmovdqu $-2511(%rip), %ymm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x49, 0xf6, 0xff, 0xff, //0x000009ef vmovdqu $-2487(%rip), %ymm1 /* LCPI0_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009f7 .p2align 4, 0x90 + //0x00000a00 LBB0_117 + 0xc5, 0xfe, 0x6f, 0x11, //0x00000a00 vmovdqu (%rcx), %ymm2 + 0xc5, 0xfe, 0x6f, 0x59, 0x20, //0x00000a04 vmovdqu $32(%rcx), %ymm3 + 0xc5, 0xed, 0x74, 0xe0, //0x00000a09 vpcmpeqb %ymm0, %ymm2, %ymm4 + 0xc5, 0xfd, 0xd7, 0xf4, //0x00000a0d vpmovmskb %ymm4, %esi + 0xc5, 0xe5, 0x74, 0xe0, //0x00000a11 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xfd, 0xd7, 0xc4, //0x00000a15 vpmovmskb %ymm4, %eax + 0xc5, 0xed, 0x74, 0xd1, //0x00000a19 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00000a1d vpmovmskb %ymm2, %edi + 0xc5, 0xe5, 0x74, 0xd1, //0x00000a21 vpcmpeqb %ymm1, %ymm3, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x00000a25 vpmovmskb %ymm2, %ebx + 0x48, 0xc1, 0xe0, 0x20, //0x00000a29 shlq $32, %rax + 0x48, 0xc1, 0xe3, 0x20, //0x00000a2d shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00000a31 orq %rbx, %rdi + 0x49, 0x83, 0xf8, 0xff, //0x00000a34 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000a38 jne LBB0_119 + 0x48, 0x85, 0xff, //0x00000a3e testq %rdi, %rdi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000a41 jne LBB0_122 + //0x00000a47 LBB0_119 + 0x48, 0x09, 0xf0, //0x00000a47 orq %rsi, %rax + 0x48, 0x89, 0xfe, //0x00000a4a movq %rdi, %rsi + 0x4c, 0x09, 0xfe, //0x00000a4d orq %r15, %rsi + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000a50 jne LBB0_123 + //0x00000a56 LBB0_120 + 0x48, 0x85, 0xc0, //0x00000a56 testq %rax, %rax + 0x0f, 0x85, 0xe1, 0x08, 0x00, 0x00, //0x00000a59 jne LBB0_264 + //0x00000a5f LBB0_121 + 0x49, 0x83, 0xc5, 0xc0, //0x00000a5f addq $-64, %r13 + 0x48, 0x83, 0xc1, 0x40, //0x00000a63 addq $64, %rcx + 0x49, 0x83, 0xfd, 0x3f, //0x00000a67 cmpq $63, %r13 + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x00000a6b ja LBB0_117 + 0xe9, 0x7e, 0x08, 0x00, 0x00, //0x00000a71 jmp LBB0_260 + //0x00000a76 LBB0_122 + 0x48, 0x89, 0xcb, //0x00000a76 movq %rcx, %rbx + 0x4c, 0x29, 0xd3, //0x00000a79 subq %r10, %rbx + 0x4c, 0x0f, 0xbc, 0xc7, //0x00000a7c bsfq %rdi, %r8 + 0x49, 0x01, 0xd8, //0x00000a80 addq %rbx, %r8 + 0x48, 0x09, 0xf0, //0x00000a83 orq %rsi, %rax + 0x48, 0x89, 0xfe, //0x00000a86 movq %rdi, %rsi + 0x4c, 0x09, 0xfe, //0x00000a89 orq %r15, %rsi + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00000a8c je LBB0_120 + //0x00000a92 LBB0_123 + 0x4c, 0x89, 0xfe, //0x00000a92 movq %r15, %rsi + 0x48, 0xf7, 0xd6, //0x00000a95 notq %rsi + 0x48, 0x21, 0xfe, //0x00000a98 andq %rdi, %rsi + 0x48, 0x8d, 0x1c, 0x36, //0x00000a9b leaq (%rsi,%rsi), %rbx + 0x4c, 0x09, 0xfb, //0x00000a9f orq %r15, %rbx + 0x48, 0x89, 0x5d, 0xc0, //0x00000aa2 movq %rbx, $-64(%rbp) + 0x48, 0xf7, 0xd3, //0x00000aa6 notq %rbx + 0x48, 0x21, 0xfb, //0x00000aa9 andq %rdi, %rbx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000aac movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfb, //0x00000ab6 andq %rdi, %rbx + 0x45, 0x31, 0xff, //0x00000ab9 xorl %r15d, %r15d + 0x48, 0x01, 0xf3, //0x00000abc addq %rsi, %rbx + 0x41, 0x0f, 0x92, 0xc7, //0x00000abf setb %r15b + 0x48, 0x01, 0xdb, //0x00000ac3 addq %rbx, %rbx + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000ac6 movabsq $6148914691236517205, %rsi + 0x48, 0x31, 0xf3, //0x00000ad0 xorq %rsi, %rbx + 0x48, 0x23, 0x5d, 0xc0, //0x00000ad3 andq $-64(%rbp), %rbx + 0x48, 0xf7, 0xd3, //0x00000ad7 notq %rbx + 0x48, 0x21, 0xd8, //0x00000ada andq %rbx, %rax + 0x48, 0x85, 0xc0, //0x00000add testq %rax, %rax + 0x0f, 0x84, 0x79, 0xff, 0xff, 0xff, //0x00000ae0 je LBB0_121 + 0xe9, 0x55, 0x08, 0x00, 0x00, //0x00000ae6 jmp LBB0_264 + //0x00000aeb LBB0_124 + 0x31, 0xc0, //0x00000aeb xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00000aed testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00000af0 setns %al + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x00000af3 movl $11, %ecx + 0xe9, 0xdf, 0x00, 0x00, 0x00, //0x00000af8 jmp LBB0_139 + //0x00000afd LBB0_125 + 0x49, 0x8d, 0x4b, 0xfd, //0x00000afd leaq $-3(%r11), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b01 movq $-1, %rax + 0x49, 0x39, 0xcf, //0x00000b08 cmpq %rcx, %r15 + 0x0f, 0x83, 0xcc, 0x04, 0x00, 0x00, //0x00000b0b jae LBB0_243 + 0x41, 0x8b, 0x09, //0x00000b11 movl (%r9), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00000b14 cmpl $1819047278, %ecx + 0x0f, 0x85, 0x33, 0x03, 0x00, 0x00, //0x00000b1a jne LBB0_169 + 0x49, 0x83, 0xc7, 0x04, //0x00000b20 addq $4, %r15 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000b24 movl $2, %eax + 0xe9, 0xac, 0x04, 0x00, 0x00, //0x00000b29 jmp LBB0_242 + //0x00000b2e LBB0_128 + 0x31, 0xc0, //0x00000b2e xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00000b30 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00000b33 setns %al + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00000b36 movl $13, %ecx + 0xe9, 0x9c, 0x00, 0x00, 0x00, //0x00000b3b jmp LBB0_139 + //0x00000b40 LBB0_129 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00000b40 movq $-2, (%r14) + 0x4c, 0x89, 0xfb, //0x00000b47 movq %r15, %rbx + 0xe9, 0xdf, 0x04, 0x00, 0x00, //0x00000b4a jmp LBB0_202 + //0x00000b4f LBB0_130 + 0x31, 0xc0, //0x00000b4f xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00000b51 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00000b54 setns %al + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00000b57 movl $10, %ecx + 0xe9, 0x7b, 0x00, 0x00, 0x00, //0x00000b5c jmp LBB0_139 + //0x00000b61 LBB0_131 + 0x49, 0xc7, 0x06, 0x05, 0x00, 0x00, 0x00, //0x00000b61 movq $5, (%r14) + 0xe9, 0xbe, 0x04, 0x00, 0x00, //0x00000b68 jmp LBB0_201 + //0x00000b6d LBB0_132 + 0x49, 0x8d, 0x4b, 0xfc, //0x00000b6d leaq $-4(%r11), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b71 movq $-1, %rax + 0x49, 0x39, 0xcf, //0x00000b78 cmpq %rcx, %r15 + 0x0f, 0x83, 0x5c, 0x04, 0x00, 0x00, //0x00000b7b jae LBB0_243 + 0x8b, 0x0c, 0x17, //0x00000b81 movl (%rdi,%rdx), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00000b84 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x02, 0x03, 0x00, 0x00, //0x00000b8a jne LBB0_173 + 0x49, 0x83, 0xc7, 0x05, //0x00000b90 addq $5, %r15 + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00000b94 movl $4, %eax + 0xe9, 0x3c, 0x04, 0x00, 0x00, //0x00000b99 jmp LBB0_242 + //0x00000b9e LBB0_135 + 0x49, 0x8d, 0x4b, 0xfd, //0x00000b9e leaq $-3(%r11), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000ba2 movq $-1, %rax + 0x49, 0x39, 0xcf, //0x00000ba9 cmpq %rcx, %r15 + 0x0f, 0x83, 0x2b, 0x04, 0x00, 0x00, //0x00000bac jae LBB0_243 + 0x41, 0x8b, 0x09, //0x00000bb2 movl (%r9), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x00000bb5 cmpl $1702195828, %ecx + 0x0f, 0x85, 0x10, 0x03, 0x00, 0x00, //0x00000bbb jne LBB0_177 + 0x49, 0x83, 0xc7, 0x04, //0x00000bc1 addq $4, %r15 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00000bc5 movl $3, %eax + 0xe9, 0x0b, 0x04, 0x00, 0x00, //0x00000bca jmp LBB0_242 + //0x00000bcf LBB0_138 + 0x31, 0xc0, //0x00000bcf xorl %eax, %eax + 0x45, 0x85, 0xc0, //0x00000bd1 testl %r8d, %r8d + 0x0f, 0x99, 0xc0, //0x00000bd4 setns %al + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00000bd7 movl $12, %ecx + //0x00000bdc LBB0_139 + 0x48, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00000bdc movq $-2, %rsi + 0x48, 0x0f, 0x48, 0xf1, //0x00000be3 cmovsq %rcx, %rsi + 0x49, 0x89, 0x36, //0x00000be7 movq %rsi, (%r14) + 0x48, 0x29, 0xc2, //0x00000bea subq %rax, %rdx + 0xe9, 0x39, 0x04, 0x00, 0x00, //0x00000bed jmp LBB0_201 + //0x00000bf2 LBB0_140 + 0x49, 0xc7, 0x06, 0x06, 0x00, 0x00, 0x00, //0x00000bf2 movq $6, (%r14) + 0xe9, 0x2d, 0x04, 0x00, 0x00, //0x00000bf9 jmp LBB0_201 + //0x00000bfe LBB0_141 + 0x49, 0x01, 0xcd, //0x00000bfe addq %rcx, %r13 + //0x00000c01 LBB0_142 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000c01 movq $-1, %rbx + 0x4d, 0x85, 0xf6, //0x00000c08 testq %r14, %r14 + 0x0f, 0x84, 0x60, 0x20, 0x00, 0x00, //0x00000c0b je LBB0_248 + 0x4d, 0x85, 0xc0, //0x00000c11 testq %r8, %r8 + 0x0f, 0x84, 0x57, 0x20, 0x00, 0x00, //0x00000c14 je LBB0_248 + 0x4d, 0x85, 0xd2, //0x00000c1a testq %r10, %r10 + 0x0f, 0x84, 0x4e, 0x20, 0x00, 0x00, //0x00000c1d je LBB0_248 + 0x4d, 0x29, 0xcd, //0x00000c23 subq %r9, %r13 + 0x49, 0x8d, 0x45, 0xff, //0x00000c26 leaq $-1(%r13), %rax + 0x49, 0x39, 0xc6, //0x00000c2a cmpq %rax, %r14 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00000c2d je LBB0_151 + 0x49, 0x39, 0xc2, //0x00000c33 cmpq %rax, %r10 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000c36 je LBB0_151 + 0x49, 0x39, 0xc0, //0x00000c3c cmpq %rax, %r8 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00000c3f je LBB0_151 + 0x4d, 0x85, 0xc0, //0x00000c45 testq %r8, %r8 + 0x0f, 0x8e, 0xcd, 0x01, 0x00, 0x00, //0x00000c48 jle LBB0_165 + 0x49, 0x8d, 0x40, 0xff, //0x00000c4e leaq $-1(%r8), %rax + 0x49, 0x39, 0xc6, //0x00000c52 cmpq %rax, %r14 + 0x0f, 0x84, 0xc0, 0x01, 0x00, 0x00, //0x00000c55 je LBB0_165 + 0x49, 0xf7, 0xd0, //0x00000c5b notq %r8 + 0x4c, 0x89, 0xc3, //0x00000c5e movq %r8, %rbx + 0x48, 0x85, 0xdb, //0x00000c61 testq %rbx, %rbx + 0x0f, 0x89, 0xd1, 0x05, 0x00, 0x00, //0x00000c64 jns LBB0_246 + 0xe9, 0x02, 0x20, 0x00, 0x00, //0x00000c6a jmp LBB0_248 + //0x00000c6f LBB0_151 + 0x49, 0xf7, 0xdd, //0x00000c6f negq %r13 + 0x4c, 0x89, 0xeb, //0x00000c72 movq %r13, %rbx + 0x48, 0x85, 0xdb, //0x00000c75 testq %rbx, %rbx + 0x0f, 0x89, 0xbd, 0x05, 0x00, 0x00, //0x00000c78 jns LBB0_246 + 0xe9, 0xee, 0x1f, 0x00, 0x00, //0x00000c7e jmp LBB0_248 + //0x00000c83 LBB0_152 + 0x48, 0x89, 0x7d, 0xc8, //0x00000c83 movq %rdi, $-56(%rbp) + 0x4c, 0x39, 0xda, //0x00000c87 cmpq %r11, %rdx + 0x0f, 0x84, 0xc8, 0x29, 0x00, 0x00, //0x00000c8a je LBB0_722 + 0x4c, 0x89, 0x75, 0xb8, //0x00000c90 movq %r14, $-72(%rbp) + 0x4d, 0x89, 0xdd, //0x00000c94 movq %r11, %r13 + 0x49, 0x29, 0xd5, //0x00000c97 subq %rdx, %r13 + 0x48, 0x8b, 0x4d, 0xc8, //0x00000c9a movq $-56(%rbp), %rcx + 0x48, 0x8d, 0x1c, 0x11, //0x00000c9e leaq (%rcx,%rdx), %rbx + 0x49, 0x83, 0xfd, 0x40, //0x00000ca2 cmpq $64, %r13 + 0x0f, 0x82, 0x0f, 0x27, 0x00, 0x00, //0x00000ca6 jb LBB0_724 + 0x45, 0x89, 0xee, //0x00000cac movl %r13d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000caf andl $63, %r14d + 0x49, 0x8d, 0x44, 0x03, 0xc0, //0x00000cb3 leaq $-64(%r11,%rax), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000cb8 andq $-64, %rax + 0x49, 0x01, 0xc7, //0x00000cbc addq %rax, %r15 + 0x4a, 0x8d, 0x44, 0x39, 0x41, //0x00000cbf leaq $65(%rcx,%r15), %rax + 0x48, 0x89, 0x45, 0xc0, //0x00000cc4 movq %rax, $-64(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000cc8 movq $-1, %r8 + 0x45, 0x31, 0xe4, //0x00000ccf xorl %r12d, %r12d + 0xc5, 0xfe, 0x6f, 0x05, 0x46, 0xf3, 0xff, 0xff, //0x00000cd2 vmovdqu $-3258(%rip), %ymm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x5e, 0xf3, 0xff, 0xff, //0x00000cda vmovdqu $-3234(%rip), %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0x76, 0xf3, 0xff, 0xff, //0x00000ce2 vmovdqu $-3210(%rip), %ymm2 /* LCPI0_3+0(%rip) */ + 0xc5, 0xe5, 0x76, 0xdb, //0x00000cea vpcmpeqd %ymm3, %ymm3, %ymm3 + 0x90, 0x90, //0x00000cee .p2align 4, 0x90 + //0x00000cf0 LBB0_155 + 0xc5, 0xfe, 0x6f, 0x23, //0x00000cf0 vmovdqu (%rbx), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6b, 0x20, //0x00000cf4 vmovdqu $32(%rbx), %ymm5 + 0xc5, 0xdd, 0x74, 0xf0, //0x00000cf9 vpcmpeqb %ymm0, %ymm4, %ymm6 + 0xc5, 0x7d, 0xd7, 0xce, //0x00000cfd vpmovmskb %ymm6, %r9d + 0xc5, 0xd5, 0x74, 0xf0, //0x00000d01 vpcmpeqb %ymm0, %ymm5, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00000d05 vpmovmskb %ymm6, %eax + 0xc5, 0xdd, 0x74, 0xf1, //0x00000d09 vpcmpeqb %ymm1, %ymm4, %ymm6 + 0xc5, 0x7d, 0xd7, 0xd6, //0x00000d0d vpmovmskb %ymm6, %r10d + 0xc5, 0xd5, 0x74, 0xf1, //0x00000d11 vpcmpeqb %ymm1, %ymm5, %ymm6 + 0xc5, 0x7d, 0xd7, 0xfe, //0x00000d15 vpmovmskb %ymm6, %r15d + 0xc5, 0xed, 0x64, 0xf4, //0x00000d19 vpcmpgtb %ymm4, %ymm2, %ymm6 + 0xc5, 0xdd, 0x64, 0xe3, //0x00000d1d vpcmpgtb %ymm3, %ymm4, %ymm4 + 0xc5, 0xdd, 0xdb, 0xe6, //0x00000d21 vpand %ymm6, %ymm4, %ymm4 + 0xc5, 0xfd, 0xd7, 0xcc, //0x00000d25 vpmovmskb %ymm4, %ecx + 0xc5, 0xed, 0x64, 0xe5, //0x00000d29 vpcmpgtb %ymm5, %ymm2, %ymm4 + 0xc5, 0xd5, 0x64, 0xeb, //0x00000d2d vpcmpgtb %ymm3, %ymm5, %ymm5 + 0xc5, 0xd5, 0xdb, 0xe4, //0x00000d31 vpand %ymm4, %ymm5, %ymm4 + 0xc5, 0xfd, 0xd7, 0xf4, //0x00000d35 vpmovmskb %ymm4, %esi + 0x48, 0xc1, 0xe0, 0x20, //0x00000d39 shlq $32, %rax + 0x49, 0xc1, 0xe7, 0x20, //0x00000d3d shlq $32, %r15 + 0x4d, 0x09, 0xfa, //0x00000d41 orq %r15, %r10 + 0x49, 0x83, 0xf8, 0xff, //0x00000d44 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000d48 jne LBB0_157 + 0x4d, 0x85, 0xd2, //0x00000d4e testq %r10, %r10 + 0x0f, 0x85, 0x9b, 0x00, 0x00, 0x00, //0x00000d51 jne LBB0_162 + //0x00000d57 LBB0_157 + 0x48, 0xc1, 0xe6, 0x20, //0x00000d57 shlq $32, %rsi + 0x4c, 0x09, 0xc8, //0x00000d5b orq %r9, %rax + 0x4c, 0x89, 0xd7, //0x00000d5e movq %r10, %rdi + 0x4c, 0x09, 0xe7, //0x00000d61 orq %r12, %rdi + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000d64 jne LBB0_161 + 0x48, 0x09, 0xce, //0x00000d6a orq %rcx, %rsi + 0x48, 0x85, 0xc0, //0x00000d6d testq %rax, %rax + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00000d70 jne LBB0_163 + //0x00000d76 LBB0_159 + 0x48, 0x85, 0xf6, //0x00000d76 testq %rsi, %rsi + 0x0f, 0x85, 0x86, 0x28, 0x00, 0x00, //0x00000d79 jne LBB0_760 + 0x49, 0x83, 0xc5, 0xc0, //0x00000d7f addq $-64, %r13 + 0x48, 0x83, 0xc3, 0x40, //0x00000d83 addq $64, %rbx + 0x49, 0x83, 0xfd, 0x3f, //0x00000d87 cmpq $63, %r13 + 0x0f, 0x87, 0x5f, 0xff, 0xff, 0xff, //0x00000d8b ja LBB0_155 + 0xe9, 0xe1, 0x05, 0x00, 0x00, //0x00000d91 jmp LBB0_267 + //0x00000d96 LBB0_161 + 0x4d, 0x89, 0xe7, //0x00000d96 movq %r12, %r15 + 0x49, 0xf7, 0xd7, //0x00000d99 notq %r15 + 0x4d, 0x21, 0xd7, //0x00000d9c andq %r10, %r15 + 0x4f, 0x8d, 0x0c, 0x3f, //0x00000d9f leaq (%r15,%r15), %r9 + 0x4d, 0x09, 0xe1, //0x00000da3 orq %r12, %r9 + 0x4c, 0x89, 0x4d, 0xb0, //0x00000da6 movq %r9, $-80(%rbp) + 0x49, 0xf7, 0xd1, //0x00000daa notq %r9 + 0x4d, 0x21, 0xd1, //0x00000dad andq %r10, %r9 + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000db0 movabsq $-6148914691236517206, %rdi + 0x49, 0x21, 0xf9, //0x00000dba andq %rdi, %r9 + 0x45, 0x31, 0xe4, //0x00000dbd xorl %r12d, %r12d + 0x4d, 0x01, 0xf9, //0x00000dc0 addq %r15, %r9 + 0x41, 0x0f, 0x92, 0xc4, //0x00000dc3 setb %r12b + 0x4d, 0x01, 0xc9, //0x00000dc7 addq %r9, %r9 + 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000dca movabsq $6148914691236517205, %rdi + 0x49, 0x31, 0xf9, //0x00000dd4 xorq %rdi, %r9 + 0x4c, 0x23, 0x4d, 0xb0, //0x00000dd7 andq $-80(%rbp), %r9 + 0x49, 0xf7, 0xd1, //0x00000ddb notq %r9 + 0x4c, 0x21, 0xc8, //0x00000dde andq %r9, %rax + 0x48, 0x09, 0xce, //0x00000de1 orq %rcx, %rsi + 0x48, 0x85, 0xc0, //0x00000de4 testq %rax, %rax + 0x0f, 0x84, 0x89, 0xff, 0xff, 0xff, //0x00000de7 je LBB0_159 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000ded jmp LBB0_163 + //0x00000df2 LBB0_162 + 0x49, 0x89, 0xdf, //0x00000df2 movq %rbx, %r15 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00000df5 subq $-56(%rbp), %r15 + 0x4d, 0x0f, 0xbc, 0xc2, //0x00000df9 bsfq %r10, %r8 + 0x4d, 0x01, 0xf8, //0x00000dfd addq %r15, %r8 + 0xe9, 0x52, 0xff, 0xff, 0xff, //0x00000e00 jmp LBB0_157 + //0x00000e05 LBB0_163 + 0x48, 0x0f, 0xbc, 0xc0, //0x00000e05 bsfq %rax, %rax + 0x48, 0x85, 0xf6, //0x00000e09 testq %rsi, %rsi + 0x0f, 0x84, 0x24, 0x01, 0x00, 0x00, //0x00000e0c je LBB0_182 + 0x48, 0x0f, 0xbc, 0xce, //0x00000e12 bsfq %rsi, %rcx + 0xe9, 0x20, 0x01, 0x00, 0x00, //0x00000e16 jmp LBB0_183 + //0x00000e1b LBB0_165 + 0x4c, 0x89, 0xd0, //0x00000e1b movq %r10, %rax + 0x4c, 0x09, 0xf0, //0x00000e1e orq %r14, %rax + 0x4d, 0x39, 0xf2, //0x00000e21 cmpq %r14, %r10 + 0x0f, 0x8c, 0xe6, 0x00, 0x00, 0x00, //0x00000e24 jl LBB0_181 + 0x48, 0x85, 0xc0, //0x00000e2a testq %rax, %rax + 0x0f, 0x88, 0xdd, 0x00, 0x00, 0x00, //0x00000e2d js LBB0_181 + 0x49, 0xf7, 0xd2, //0x00000e33 notq %r10 + 0x4c, 0x89, 0xd3, //0x00000e36 movq %r10, %rbx + 0x48, 0x85, 0xdb, //0x00000e39 testq %rbx, %rbx + 0x0f, 0x89, 0xf9, 0x03, 0x00, 0x00, //0x00000e3c jns LBB0_246 + 0xe9, 0x2a, 0x1e, 0x00, 0x00, //0x00000e42 jmp LBB0_248 + //0x00000e47 LBB0_168 + 0x31, 0xc9, //0x00000e47 xorl %ecx, %ecx + 0x31, 0xc0, //0x00000e49 xorl %eax, %eax + 0x45, 0x31, 0xd2, //0x00000e4b xorl %r10d, %r10d + 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00000e4e jmp LBB0_186 + //0x00000e53 LBB0_169 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000e53 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x00000e5a cmpb $110, %cl + 0x0f, 0x85, 0x77, 0x01, 0x00, 0x00, //0x00000e5d jne LBB0_242 + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00000e63 cmpb $117, $1(%rdi,%r15) + 0x0f, 0x85, 0x5f, 0x01, 0x00, 0x00, //0x00000e69 jne LBB0_196 + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00000e6f cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x00000e75 jne LBB0_241 + 0x4d, 0x8d, 0x5f, 0x03, //0x00000e7b leaq $3(%r15), %r11 + 0x49, 0x8d, 0x4f, 0x04, //0x00000e7f leaq $4(%r15), %rcx + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00000e83 cmpb $108, $3(%rdi,%r15) + 0x4c, 0x0f, 0x44, 0xd9, //0x00000e89 cmoveq %rcx, %r11 + 0xe9, 0x4b, 0x01, 0x00, 0x00, //0x00000e8d jmp LBB0_243 + //0x00000e92 LBB0_173 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000e92 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00000e99 cmpb $97, %cl + 0x0f, 0x85, 0x24, 0x01, 0x00, 0x00, //0x00000e9c jne LBB0_195 + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00000ea2 cmpb $108, $2(%rdi,%r15) + 0x0f, 0x85, 0x28, 0x01, 0x00, 0x00, //0x00000ea8 jne LBB0_241 + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00000eae cmpb $115, $3(%rdi,%r15) + 0x0f, 0x85, 0xb4, 0x03, 0x00, 0x00, //0x00000eb4 jne LBB0_240 + 0x4d, 0x8d, 0x5f, 0x04, //0x00000eba leaq $4(%r15), %r11 + 0x49, 0x8d, 0x4f, 0x05, //0x00000ebe leaq $5(%r15), %rcx + 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00000ec2 cmpb $101, $4(%rdi,%r15) + 0x4c, 0x0f, 0x44, 0xd9, //0x00000ec8 cmoveq %rcx, %r11 + 0xe9, 0x0c, 0x01, 0x00, 0x00, //0x00000ecc jmp LBB0_243 + //0x00000ed1 LBB0_177 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000ed1 movq $-2, %rax + 0x80, 0xf9, 0x74, //0x00000ed8 cmpb $116, %cl + 0x0f, 0x85, 0xf9, 0x00, 0x00, 0x00, //0x00000edb jne LBB0_242 + 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00000ee1 cmpb $114, $1(%rdi,%r15) + 0x0f, 0x85, 0xe1, 0x00, 0x00, 0x00, //0x00000ee7 jne LBB0_196 + 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00000eed cmpb $117, $2(%rdi,%r15) + 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x00000ef3 jne LBB0_241 + 0x4d, 0x8d, 0x5f, 0x03, //0x00000ef9 leaq $3(%r15), %r11 + 0x49, 0x8d, 0x4f, 0x04, //0x00000efd leaq $4(%r15), %rcx + 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00000f01 cmpb $101, $3(%rdi,%r15) + 0x4c, 0x0f, 0x44, 0xd9, //0x00000f07 cmoveq %rcx, %r11 + 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x00000f0b jmp LBB0_243 + //0x00000f10 LBB0_181 + 0x48, 0x85, 0xc0, //0x00000f10 testq %rax, %rax + 0x49, 0x8d, 0x46, 0xff, //0x00000f13 leaq $-1(%r14), %rax + 0x49, 0xf7, 0xd6, //0x00000f17 notq %r14 + 0x4d, 0x0f, 0x48, 0xf5, //0x00000f1a cmovsq %r13, %r14 + 0x49, 0x39, 0xc2, //0x00000f1e cmpq %rax, %r10 + 0x4d, 0x0f, 0x45, 0xf5, //0x00000f21 cmovneq %r13, %r14 + 0x4c, 0x89, 0xf3, //0x00000f25 movq %r14, %rbx + 0x48, 0x85, 0xdb, //0x00000f28 testq %rbx, %rbx + 0x0f, 0x89, 0x0a, 0x03, 0x00, 0x00, //0x00000f2b jns LBB0_246 + 0xe9, 0x3b, 0x1d, 0x00, 0x00, //0x00000f31 jmp LBB0_248 + //0x00000f36 LBB0_182 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f36 movl $64, %ecx + //0x00000f3b LBB0_183 + 0x4c, 0x8b, 0x75, 0xb8, //0x00000f3b movq $-72(%rbp), %r14 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f3f movq $-56(%rbp), %rsi + 0x48, 0x39, 0xc1, //0x00000f43 cmpq %rax, %rcx + 0x0f, 0x82, 0x8f, 0x24, 0x00, 0x00, //0x00000f46 jb LBB0_725 + 0x48, 0x29, 0xf3, //0x00000f4c subq %rsi, %rbx + 0x48, 0x8d, 0x5c, 0x03, 0x01, //0x00000f4f leaq $1(%rbx,%rax), %rbx + 0xe9, 0xf3, 0x03, 0x00, 0x00, //0x00000f54 jmp LBB0_265 + //0x00000f59 LBB0_185 + 0x4c, 0x89, 0xdf, //0x00000f59 movq %r11, %rdi + //0x00000f5c LBB0_186 + 0x31, 0xd2, //0x00000f5c xorl %edx, %edx + 0x85, 0xc9, //0x00000f5e testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x00000f60 setg %dl + 0x89, 0x55, 0xc0, //0x00000f63 movl %edx, $-64(%rbp) + 0xba, 0x09, 0x00, 0x00, 0x00, //0x00000f66 movl $9, %edx + 0x48, 0x89, 0xfb, //0x00000f6b movq %rdi, %rbx + //0x00000f6e LBB0_187 + 0x85, 0xc9, //0x00000f6e testl %ecx, %ecx + 0x4c, 0x89, 0x75, 0xb8, //0x00000f70 movq %r14, $-72(%rbp) + 0x0f, 0x85, 0xd0, 0x00, 0x00, 0x00, //0x00000f74 jne LBB0_204 + 0x4d, 0x85, 0xd2, //0x00000f7a testq %r10, %r10 + 0x0f, 0x85, 0xc7, 0x00, 0x00, 0x00, //0x00000f7d jne LBB0_204 + 0x4c, 0x39, 0xdb, //0x00000f83 cmpq %r11, %rbx + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x00000f86 jae LBB0_194 + 0x41, 0x89, 0xde, //0x00000f8c movl %ebx, %r14d + 0x45, 0x29, 0xde, //0x00000f8f subl %r11d, %r14d + 0x31, 0xc0, //0x00000f92 xorl %eax, %eax + 0x31, 0xc9, //0x00000f94 xorl %ecx, %ecx + 0x48, 0x8b, 0x75, 0xc8, //0x00000f96 movq $-56(%rbp), %rsi + //0x00000f9a LBB0_191 + 0x80, 0x3c, 0x1e, 0x30, //0x00000f9a cmpb $48, (%rsi,%rbx) + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000f9e jne LBB0_203 + 0x48, 0xff, 0xc3, //0x00000fa4 incq %rbx + 0xff, 0xc9, //0x00000fa7 decl %ecx + 0x49, 0x39, 0xdb, //0x00000fa9 cmpq %rbx, %r11 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000fac jne LBB0_191 + 0x45, 0x31, 0xd2, //0x00000fb2 xorl %r10d, %r10d + 0xe9, 0xab, 0x01, 0x00, 0x00, //0x00000fb5 jmp LBB0_224 + //0x00000fba LBB0_194 + 0x31, 0xc9, //0x00000fba xorl %ecx, %ecx + 0x31, 0xc0, //0x00000fbc xorl %eax, %eax + 0x45, 0x31, 0xd2, //0x00000fbe xorl %r10d, %r10d + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x00000fc1 jmp LBB0_204 + //0x00000fc6 LBB0_195 + 0x49, 0x89, 0xd3, //0x00000fc6 movq %rdx, %r11 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00000fc9 jmp LBB0_243 + //0x00000fce LBB0_196 + 0x49, 0xff, 0xc7, //0x00000fce incq %r15 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00000fd1 jmp LBB0_242 + //0x00000fd6 LBB0_241 + 0x49, 0x83, 0xc7, 0x02, //0x00000fd6 addq $2, %r15 + //0x00000fda LBB0_242 + 0x4d, 0x89, 0xfb, //0x00000fda movq %r15, %r11 + //0x00000fdd LBB0_243 + 0x49, 0x89, 0x06, //0x00000fdd movq %rax, (%r14) + 0x4c, 0x89, 0xdb, //0x00000fe0 movq %r11, %rbx + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00000fe3 jmp LBB0_202 + //0x00000fe8 LBB0_197 + 0x4c, 0x29, 0xc8, //0x00000fe8 subq %r9, %rax + 0x0f, 0xbc, 0xdf, //0x00000feb bsfl %edi, %ebx + 0x48, 0x01, 0xc3, //0x00000fee addq %rax, %rbx + 0x48, 0xf7, 0xd3, //0x00000ff1 notq %rbx + 0x48, 0x85, 0xdb, //0x00000ff4 testq %rbx, %rbx + 0x0f, 0x89, 0x3e, 0x02, 0x00, 0x00, //0x00000ff7 jns LBB0_246 + 0xe9, 0x6f, 0x1c, 0x00, 0x00, //0x00000ffd jmp LBB0_248 + //0x00001002 LBB0_198 + 0x89, 0x55, 0xc0, //0x00001002 movl %edx, $-64(%rbp) + 0x48, 0xff, 0xcb, //0x00001005 decq %rbx + 0xba, 0x09, 0x00, 0x00, 0x00, //0x00001008 movl $9, %edx + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x0000100d jmp LBB0_187 + //0x00001012 LBB0_199 + 0x48, 0x89, 0xf8, //0x00001012 movq %rdi, %rax + 0x48, 0xf7, 0xd0, //0x00001015 notq %rax + 0x49, 0x01, 0xc7, //0x00001018 addq %rax, %r15 + 0x4d, 0x39, 0xdf, //0x0000101b cmpq %r11, %r15 + 0x0f, 0x82, 0xc4, 0xf3, 0xff, 0xff, //0x0000101e jb LBB0_32 + //0x00001024 LBB0_200 + 0x49, 0xc7, 0x06, 0x01, 0x00, 0x00, 0x00, //0x00001024 movq $1, (%r14) + //0x0000102b LBB0_201 + 0x48, 0x89, 0xd3, //0x0000102b movq %rdx, %rbx + //0x0000102e LBB0_202 + 0x48, 0x89, 0xd8, //0x0000102e movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x38, //0x00001031 addq $56, %rsp + 0x5b, //0x00001035 popq %rbx + 0x41, 0x5c, //0x00001036 popq %r12 + 0x41, 0x5d, //0x00001038 popq %r13 + 0x41, 0x5e, //0x0000103a popq %r14 + 0x41, 0x5f, //0x0000103c popq %r15 + 0x5d, //0x0000103e popq %rbp + 0xc5, 0xf8, 0x77, //0x0000103f vzeroupper + 0xc3, //0x00001042 retq + //0x00001043 LBB0_203 + 0x45, 0x31, 0xd2, //0x00001043 xorl %r10d, %r10d + 0x4c, 0x8b, 0x75, 0xb8, //0x00001046 movq $-72(%rbp), %r14 + //0x0000104a LBB0_204 + 0x4c, 0x39, 0xdb, //0x0000104a cmpq %r11, %rbx + 0x0f, 0x83, 0x40, 0x00, 0x00, 0x00, //0x0000104d jae LBB0_209 + 0x83, 0xf8, 0x12, //0x00001053 cmpl $18, %eax + 0x0f, 0x8f, 0x37, 0x00, 0x00, 0x00, //0x00001056 jg LBB0_209 + //0x0000105c LBB0_206 + 0x48, 0x8b, 0x75, 0xc8, //0x0000105c movq $-56(%rbp), %rsi + 0x0f, 0xb6, 0x34, 0x1e, //0x00001060 movzbl (%rsi,%rbx), %esi + 0x8d, 0x7e, 0xd0, //0x00001064 leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x00001067 cmpb $9, %dil + 0x0f, 0x87, 0x22, 0x00, 0x00, 0x00, //0x0000106b ja LBB0_209 + 0x4b, 0x8d, 0x3c, 0x92, //0x00001071 leaq (%r10,%r10,4), %rdi + 0x4c, 0x8d, 0x54, 0x7e, 0xd0, //0x00001075 leaq $-48(%rsi,%rdi,2), %r10 + 0xff, 0xc9, //0x0000107a decl %ecx + 0x48, 0xff, 0xc3, //0x0000107c incq %rbx + 0x83, 0xf8, 0x11, //0x0000107f cmpl $17, %eax + 0x0f, 0x8f, 0x0b, 0x00, 0x00, 0x00, //0x00001082 jg LBB0_209 + 0xff, 0xc0, //0x00001088 incl %eax + 0x4c, 0x39, 0xdb, //0x0000108a cmpq %r11, %rbx + 0x0f, 0x82, 0xc9, 0xff, 0xff, 0xff, //0x0000108d jb LBB0_206 + //0x00001093 LBB0_209 + 0x4c, 0x39, 0xdb, //0x00001093 cmpq %r11, %rbx + 0x0f, 0x83, 0xb7, 0x00, 0x00, 0x00, //0x00001096 jae LBB0_225 + 0x48, 0x8b, 0x45, 0xc8, //0x0000109c movq $-56(%rbp), %rax + 0x8a, 0x04, 0x18, //0x000010a0 movb (%rax,%rbx), %al + 0x8d, 0x70, 0xd0, //0x000010a3 leal $-48(%rax), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000010a6 cmpb $9, %sil + 0x0f, 0x87, 0x2d, 0x00, 0x00, 0x00, //0x000010aa ja LBB0_215 + 0x49, 0x8d, 0x73, 0xff, //0x000010b0 leaq $-1(%r11), %rsi + //0x000010b4 LBB0_212 + 0x48, 0x39, 0xde, //0x000010b4 cmpq %rbx, %rsi + 0x0f, 0x84, 0x9e, 0x00, 0x00, 0x00, //0x000010b7 je LBB0_223 + 0x48, 0x8b, 0x45, 0xc8, //0x000010bd movq $-56(%rbp), %rax + 0x0f, 0xb6, 0x44, 0x18, 0x01, //0x000010c1 movzbl $1(%rax,%rbx), %eax + 0x48, 0xff, 0xc3, //0x000010c6 incq %rbx + 0x8d, 0x78, 0xd0, //0x000010c9 leal $-48(%rax), %edi + 0x40, 0x80, 0xff, 0x09, //0x000010cc cmpb $9, %dil + 0x0f, 0x86, 0xde, 0xff, 0xff, 0xff, //0x000010d0 jbe LBB0_212 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x000010d6 movl $1, $-64(%rbp) + //0x000010dd LBB0_215 + 0x0c, 0x20, //0x000010dd orb $32, %al + 0x3c, 0x65, //0x000010df cmpb $101, %al + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x000010e1 jne LBB0_225 + 0x48, 0x8d, 0x73, 0x01, //0x000010e7 leaq $1(%rbx), %rsi + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000010eb movq $8, (%r14) + 0x4c, 0x39, 0xde, //0x000010f2 cmpq %r11, %rsi + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000010f5 jae LBB0_221 + 0x44, 0x89, 0x45, 0xb0, //0x000010fb movl %r8d, $-80(%rbp) + 0x48, 0x8b, 0x45, 0xc8, //0x000010ff movq $-56(%rbp), %rax + 0x8a, 0x14, 0x30, //0x00001103 movb (%rax,%rsi), %dl + 0x80, 0xfa, 0x2d, //0x00001106 cmpb $45, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00001109 je LBB0_219 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000110f movl $1, %r8d + 0x80, 0xfa, 0x2b, //0x00001115 cmpb $43, %dl + 0x0f, 0x85, 0x59, 0x01, 0x00, 0x00, //0x00001118 jne LBB0_252 + //0x0000111e LBB0_219 + 0x48, 0x83, 0xc3, 0x02, //0x0000111e addq $2, %rbx + 0x4c, 0x39, 0xdb, //0x00001122 cmpq %r11, %rbx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00001125 jae LBB0_221 + 0x31, 0xc0, //0x0000112b xorl %eax, %eax + 0x80, 0xfa, 0x2b, //0x0000112d cmpb $43, %dl + 0x0f, 0x94, 0xc0, //0x00001130 sete %al + 0x44, 0x8d, 0x44, 0x00, 0xff, //0x00001133 leal $-1(%rax,%rax), %r8d + 0x48, 0x8b, 0x45, 0xc8, //0x00001138 movq $-56(%rbp), %rax + 0x8a, 0x14, 0x18, //0x0000113c movb (%rax,%rbx), %dl + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x0000113f jmp LBB0_253 + //0x00001144 LBB0_221 + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x00001144 movq $-1, (%r14) + 0x4c, 0x89, 0xdb, //0x0000114b movq %r11, %rbx + 0xe9, 0xdb, 0xfe, 0xff, 0xff, //0x0000114e jmp LBB0_202 + //0x00001153 LBB0_225 + 0x41, 0x89, 0xce, //0x00001153 movl %ecx, %r14d + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00001156 jmp LBB0_226 + //0x0000115b LBB0_223 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x0000115b movl $1, $-64(%rbp) + 0x41, 0x89, 0xce, //0x00001162 movl %ecx, %r14d + //0x00001165 LBB0_224 + 0x4c, 0x89, 0xdb, //0x00001165 movq %r11, %rbx + //0x00001168 LBB0_226 + 0x83, 0xfa, 0x09, //0x00001168 cmpl $9, %edx + 0x48, 0x89, 0x5d, 0xa0, //0x0000116b movq %rbx, $-96(%rbp) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x0000116f jne LBB0_231 + 0x45, 0x85, 0xf6, //0x00001175 testl %r14d, %r14d + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00001178 jne LBB0_230 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000117e movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xc8, //0x00001188 movslq %r8d, %rcx + 0x4d, 0x85, 0xd2, //0x0000118b testq %r10, %r10 + 0x0f, 0x89, 0x53, 0x00, 0x00, 0x00, //0x0000118e jns LBB0_237 + 0x4c, 0x89, 0xd2, //0x00001194 movq %r10, %rdx + 0x48, 0x21, 0xca, //0x00001197 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x0000119a cmpq %rax, %rdx + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x0000119d je LBB0_237 + //0x000011a3 LBB0_230 + 0x48, 0x8b, 0x45, 0xb8, //0x000011a3 movq $-72(%rbp), %rax + 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x000011a7 movq $8, (%rax) + //0x000011ae LBB0_231 + 0x4c, 0x89, 0xd0, //0x000011ae movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000011b1 shrq $52, %rax + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x000011b5 je LBB0_274 + //0x000011bb LBB0_232 + 0x44, 0x89, 0x45, 0xb0, //0x000011bb movl %r8d, $-80(%rbp) + 0x41, 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000011bf leal $348(%r14), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000011c6 cmpl $695, %eax + 0x0f, 0x87, 0x28, 0x04, 0x00, 0x00, //0x000011cb ja LBB0_295 + 0x4d, 0x85, 0xd2, //0x000011d1 testq %r10, %r10 + 0x0f, 0x84, 0x1f, 0x03, 0x00, 0x00, //0x000011d4 je LBB0_286 + //0x000011da LBB0_234 + 0x49, 0x0f, 0xbd, 0xca, //0x000011da bsrq %r10, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x000011de xorq $63, %rcx + 0xe9, 0x17, 0x03, 0x00, 0x00, //0x000011e2 jmp LBB0_287 + //0x000011e7 LBB0_237 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc2, //0x000011e7 vmovq %r10, %xmm0 + 0x4c, 0x0f, 0xaf, 0xd1, //0x000011ec imulq %rcx, %r10 + 0x48, 0x8b, 0x55, 0xb8, //0x000011f0 movq $-72(%rbp), %rdx + 0x4c, 0x89, 0x52, 0x10, //0x000011f4 movq %r10, $16(%rdx) + 0xc5, 0xf9, 0x62, 0x05, 0xd0, 0xef, 0xff, 0xff, //0x000011f8 vpunpckldq $-4144(%rip), %xmm0, %xmm0 /* LCPI0_17+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xd8, 0xef, 0xff, 0xff, //0x00001200 vsubpd $-4136(%rip), %xmm0, %xmm0 /* LCPI0_18+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00001208 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x0000120e vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00001212 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00001215 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x0000121a orq %rax, %rcx + 0x48, 0x89, 0x4a, 0x08, //0x0000121d movq %rcx, $8(%rdx) + 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x00001221 jmp LBB0_202 + //0x00001226 LBB0_238 + 0x4d, 0x29, 0xcd, //0x00001226 subq %r9, %r13 + 0x0f, 0xbc, 0xd8, //0x00001229 bsfl %eax, %ebx + 0x4c, 0x01, 0xeb, //0x0000122c addq %r13, %rbx + //0x0000122f LBB0_244 + 0x48, 0xf7, 0xd3, //0x0000122f notq %rbx + 0x48, 0x85, 0xdb, //0x00001232 testq %rbx, %rbx + 0x0f, 0x88, 0x36, 0x1a, 0x00, 0x00, //0x00001235 js LBB0_248 + //0x0000123b LBB0_246 + 0x49, 0x01, 0xd9, //0x0000123b addq %rbx, %r9 + 0x4c, 0x89, 0xcb, //0x0000123e movq %r9, %rbx + 0x48, 0x2b, 0x5d, 0xc8, //0x00001241 subq $-56(%rbp), %rbx + 0x48, 0x85, 0xd2, //0x00001245 testq %rdx, %rdx + 0x0f, 0x8e, 0x14, 0x00, 0x00, 0x00, //0x00001248 jle LBB0_251 + 0x48, 0x8b, 0x45, 0xb8, //0x0000124e movq $-72(%rbp), %rax + 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00001252 movq $8, (%rax) + 0x4c, 0x89, 0x78, 0x18, //0x00001259 movq %r15, $24(%rax) + 0xe9, 0xcc, 0xfd, 0xff, 0xff, //0x0000125d jmp LBB0_202 + //0x00001262 LBB0_251 + 0x4c, 0x8b, 0x75, 0xb8, //0x00001262 movq $-72(%rbp), %r14 + 0x4d, 0x89, 0x3e, //0x00001266 movq %r15, (%r14) + 0xe9, 0xc0, 0xfd, 0xff, 0xff, //0x00001269 jmp LBB0_202 + //0x0000126e LBB0_240 + 0x49, 0x83, 0xc7, 0x03, //0x0000126e addq $3, %r15 + 0xe9, 0x63, 0xfd, 0xff, 0xff, //0x00001272 jmp LBB0_242 + //0x00001277 LBB0_252 + 0x48, 0x89, 0xf3, //0x00001277 movq %rsi, %rbx + //0x0000127a LBB0_253 + 0x8d, 0x72, 0xd0, //0x0000127a leal $-48(%rdx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x0000127d cmpb $9, %sil + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x00001281 jbe LBB0_255 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00001287 movq $-2, (%r14) + 0xe9, 0x9b, 0xfd, 0xff, 0xff, //0x0000128e jmp LBB0_202 + //0x00001293 LBB0_255 + 0x45, 0x31, 0xf6, //0x00001293 xorl %r14d, %r14d + 0x4c, 0x39, 0xdb, //0x00001296 cmpq %r11, %rbx + 0x0f, 0x83, 0x4d, 0x01, 0x00, 0x00, //0x00001299 jae LBB0_273 + 0x49, 0x8d, 0x73, 0xff, //0x0000129f leaq $-1(%r11), %rsi + 0x45, 0x31, 0xf6, //0x000012a3 xorl %r14d, %r14d + //0x000012a6 LBB0_257 + 0x44, 0x89, 0xf7, //0x000012a6 movl %r14d, %edi + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000012a9 cmpl $10000, %r14d + 0x48, 0x89, 0xd8, //0x000012b0 movq %rbx, %rax + 0x8d, 0x1c, 0xbf, //0x000012b3 leal (%rdi,%rdi,4), %ebx + 0x0f, 0xb6, 0xd2, //0x000012b6 movzbl %dl, %edx + 0x44, 0x8d, 0x74, 0x5a, 0xd0, //0x000012b9 leal $-48(%rdx,%rbx,2), %r14d + 0x44, 0x0f, 0x4d, 0xf7, //0x000012be cmovgel %edi, %r14d + 0x48, 0x39, 0xc6, //0x000012c2 cmpq %rax, %rsi + 0x0f, 0x84, 0x1e, 0x01, 0x00, 0x00, //0x000012c5 je LBB0_272 + 0x48, 0x89, 0xc3, //0x000012cb movq %rax, %rbx + 0x48, 0x8b, 0x45, 0xc8, //0x000012ce movq $-56(%rbp), %rax + 0x0f, 0xb6, 0x54, 0x18, 0x01, //0x000012d2 movzbl $1(%rax,%rbx), %edx + 0x48, 0xff, 0xc3, //0x000012d7 incq %rbx + 0x8d, 0x7a, 0xd0, //0x000012da leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000012dd cmpb $10, %dil + 0x0f, 0x82, 0xbf, 0xff, 0xff, 0xff, //0x000012e1 jb LBB0_257 + 0xe9, 0x00, 0x01, 0x00, 0x00, //0x000012e7 jmp LBB0_273 + //0x000012ec LBB0_259 + 0x48, 0x89, 0xf3, //0x000012ec movq %rsi, %rbx + 0xe9, 0x7a, 0xfc, 0xff, 0xff, //0x000012ef jmp LBB0_187 + //0x000012f4 LBB0_260 + 0x4c, 0x89, 0xc3, //0x000012f4 movq %r8, %rbx + 0x4d, 0x89, 0xe5, //0x000012f7 movq %r12, %r13 + 0x4c, 0x89, 0xc9, //0x000012fa movq %r9, %rcx + 0x49, 0x83, 0xfd, 0x20, //0x000012fd cmpq $32, %r13 + 0x0f, 0x82, 0x4a, 0x21, 0x00, 0x00, //0x00001301 jb LBB0_730 + //0x00001307 LBB0_261 + 0xc5, 0xfe, 0x6f, 0x01, //0x00001307 vmovdqu (%rcx), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x0d, 0xed, 0xff, 0xff, //0x0000130b vpcmpeqb $-4851(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xc1, //0x00001313 vpmovmskb %ymm1, %eax + 0xc5, 0xfd, 0x74, 0x05, 0x21, 0xed, 0xff, 0xff, //0x00001317 vpcmpeqb $-4831(%rip), %ymm0, %ymm0 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xf8, //0x0000131f vpmovmskb %ymm0, %edi + 0x85, 0xff, //0x00001323 testl %edi, %edi + 0x0f, 0x85, 0xbc, 0x20, 0x00, 0x00, //0x00001325 jne LBB0_726 + 0x4d, 0x85, 0xff, //0x0000132b testq %r15, %r15 + 0x0f, 0x85, 0xcd, 0x20, 0x00, 0x00, //0x0000132e jne LBB0_728 + 0x45, 0x31, 0xff, //0x00001334 xorl %r15d, %r15d + 0x48, 0x85, 0xc0, //0x00001337 testq %rax, %rax + 0x0f, 0x84, 0x09, 0x21, 0x00, 0x00, //0x0000133a je LBB0_729 + //0x00001340 LBB0_264 + 0x48, 0x0f, 0xbc, 0xc0, //0x00001340 bsfq %rax, %rax + 0x4c, 0x29, 0xd1, //0x00001344 subq %r10, %rcx + 0x48, 0x8d, 0x5c, 0x01, 0x01, //0x00001347 leaq $1(%rcx,%rax), %rbx + //0x0000134c LBB0_265 + 0x48, 0x85, 0xdb, //0x0000134c testq %rbx, %rbx + 0x0f, 0x88, 0xbb, 0x22, 0x00, 0x00, //0x0000134f js LBB0_762 + 0x49, 0x89, 0x56, 0x10, //0x00001355 movq %rdx, $16(%r14) + 0x49, 0xc7, 0x06, 0x07, 0x00, 0x00, 0x00, //0x00001359 movq $7, (%r14) + 0x49, 0x39, 0xd8, //0x00001360 cmpq %rbx, %r8 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001363 movq $-1, %rax + 0x49, 0x0f, 0x4c, 0xc0, //0x0000136a cmovlq %r8, %rax + 0x49, 0x89, 0x46, 0x18, //0x0000136e movq %rax, $24(%r14) + 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x00001372 jmp LBB0_202 + //0x00001377 LBB0_267 + 0x4d, 0x89, 0xc1, //0x00001377 movq %r8, %r9 + 0x4d, 0x89, 0xf5, //0x0000137a movq %r14, %r13 + 0x48, 0x8b, 0x5d, 0xc0, //0x0000137d movq $-64(%rbp), %rbx + 0x49, 0x83, 0xfd, 0x20, //0x00001381 cmpq $32, %r13 + 0x0f, 0x82, 0xd6, 0x21, 0x00, 0x00, //0x00001385 jb LBB0_749 + //0x0000138b LBB0_268 + 0xc5, 0xfe, 0x6f, 0x03, //0x0000138b vmovdqu (%rbx), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x89, 0xec, 0xff, 0xff, //0x0000138f vpcmpeqb $-4983(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xc1, //0x00001397 vpmovmskb %ymm1, %eax + 0xc5, 0xfd, 0x74, 0x0d, 0x9d, 0xec, 0xff, 0xff, //0x0000139b vpcmpeqb $-4963(%rip), %ymm0, %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xc9, //0x000013a3 vpmovmskb %ymm1, %ecx + 0xc5, 0xfe, 0x6f, 0x0d, 0xb1, 0xec, 0xff, 0xff, //0x000013a7 vmovdqu $-4943(%rip), %ymm1 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x000013af vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc5, 0xed, 0x76, 0xd2, //0x000013b3 vpcmpeqd %ymm2, %ymm2, %ymm2 + 0xc5, 0xfd, 0x64, 0xc2, //0x000013b7 vpcmpgtb %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x000013bb vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xd0, //0x000013bf vpmovmskb %ymm0, %r10d + 0x85, 0xc9, //0x000013c3 testl %ecx, %ecx + 0x0f, 0x85, 0x09, 0x21, 0x00, 0x00, //0x000013c5 jne LBB0_740 + 0x4d, 0x85, 0xe4, //0x000013cb testq %r12, %r12 + 0x0f, 0x85, 0x1b, 0x21, 0x00, 0x00, //0x000013ce jne LBB0_742 + 0x45, 0x31, 0xe4, //0x000013d4 xorl %r12d, %r12d + 0x48, 0x85, 0xc0, //0x000013d7 testq %rax, %rax + 0x0f, 0x84, 0x50, 0x21, 0x00, 0x00, //0x000013da je LBB0_743 + //0x000013e0 LBB0_271 + 0x48, 0x0f, 0xbc, 0xc8, //0x000013e0 bsfq %rax, %rcx + 0xe9, 0x4c, 0x21, 0x00, 0x00, //0x000013e4 jmp LBB0_744 + //0x000013e9 LBB0_272 + 0x4c, 0x89, 0xdb, //0x000013e9 movq %r11, %rbx + //0x000013ec LBB0_273 + 0x48, 0x89, 0x5d, 0xa0, //0x000013ec movq %rbx, $-96(%rbp) + 0x45, 0x0f, 0xaf, 0xf0, //0x000013f0 imull %r8d, %r14d + 0x41, 0x01, 0xce, //0x000013f4 addl %ecx, %r14d + 0x44, 0x8b, 0x45, 0xb0, //0x000013f7 movl $-80(%rbp), %r8d + 0x4c, 0x89, 0xd0, //0x000013fb movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000013fe shrq $52, %rax + 0x0f, 0x85, 0xb3, 0xfd, 0xff, 0xff, //0x00001402 jne LBB0_232 + //0x00001408 LBB0_274 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc2, //0x00001408 vmovq %r10, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0xbb, 0xed, 0xff, 0xff, //0x0000140d vpunpckldq $-4677(%rip), %xmm0, %xmm0 /* LCPI0_17+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xc3, 0xed, 0xff, 0xff, //0x00001415 vsubpd $-4669(%rip), %xmm0, %xmm0 /* LCPI0_18+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x0000141d vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00001423 vaddsd %xmm0, %xmm1, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00001427 vmovq %xmm0, %rax + 0x44, 0x89, 0xc3, //0x0000142c movl %r8d, %ebx + 0xc1, 0xeb, 0x1f, //0x0000142f shrl $31, %ebx + 0x48, 0xc1, 0xe3, 0x3f, //0x00001432 shlq $63, %rbx + 0x48, 0x09, 0xc3, //0x00001436 orq %rax, %rbx + 0x4d, 0x85, 0xd2, //0x00001439 testq %r10, %r10 + 0x0f, 0x84, 0x9a, 0x06, 0x00, 0x00, //0x0000143c je LBB0_359 + 0x45, 0x85, 0xf6, //0x00001442 testl %r14d, %r14d + 0x0f, 0x84, 0x91, 0x06, 0x00, 0x00, //0x00001445 je LBB0_359 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x0000144b vmovq %rbx, %xmm0 + 0x41, 0x8d, 0x46, 0xff, //0x00001450 leal $-1(%r14), %eax + 0x83, 0xf8, 0x24, //0x00001454 cmpl $36, %eax + 0x0f, 0x87, 0x2b, 0x00, 0x00, 0x00, //0x00001457 ja LBB0_279 + 0x41, 0x83, 0xfe, 0x17, //0x0000145d cmpl $23, %r14d + 0x44, 0x89, 0x45, 0xb0, //0x00001461 movl %r8d, $-80(%rbp) + 0x0f, 0x8c, 0x43, 0x00, 0x00, 0x00, //0x00001465 jl LBB0_281 + 0x49, 0x63, 0xc6, //0x0000146b movslq %r14d, %rax + 0x48, 0x8d, 0x0d, 0x2b, 0x25, 0x00, 0x00, //0x0000146e leaq $9515(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00001475 vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x0000147e movl $22, %eax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00001483 jmp LBB0_282 + //0x00001488 LBB0_279 + 0x41, 0x83, 0xfe, 0xea, //0x00001488 cmpl $-22, %r14d + 0x0f, 0x82, 0x29, 0xfd, 0xff, 0xff, //0x0000148c jb LBB0_232 + 0x41, 0xf7, 0xde, //0x00001492 negl %r14d + 0x49, 0x63, 0xc6, //0x00001495 movslq %r14d, %rax + 0x48, 0x8d, 0x0d, 0x01, 0x25, 0x00, 0x00, //0x00001498 leaq $9473(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x0000149f vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x000014a4 vmovq %xmm0, %rbx + 0xe9, 0x2e, 0x06, 0x00, 0x00, //0x000014a9 jmp LBB0_359 + //0x000014ae LBB0_281 + 0x44, 0x89, 0xf0, //0x000014ae movl %r14d, %eax + //0x000014b1 LBB0_282 + 0xc5, 0xf9, 0x2e, 0x05, 0x37, 0xed, 0xff, 0xff, //0x000014b1 vucomisd $-4809(%rip), %xmm0 /* LCPI0_19+0(%rip) */ + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000014b9 ja LBB0_285 + 0xc5, 0xfb, 0x10, 0x0d, 0x31, 0xed, 0xff, 0xff, //0x000014bf vmovsd $-4815(%rip), %xmm1 /* LCPI0_20+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x000014c7 vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x18, 0x00, 0x00, 0x00, //0x000014cb ja LBB0_285 + 0x89, 0xc0, //0x000014d1 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xc6, 0x24, 0x00, 0x00, //0x000014d3 leaq $9414(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000014da vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x000014df vmovq %xmm0, %rbx + 0xe9, 0xf3, 0x05, 0x00, 0x00, //0x000014e4 jmp LBB0_359 + //0x000014e9 LBB0_285 + 0x41, 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000014e9 leal $348(%r14), %eax + 0x4d, 0x85, 0xd2, //0x000014f0 testq %r10, %r10 + 0x0f, 0x85, 0xe1, 0xfc, 0xff, 0xff, //0x000014f3 jne LBB0_234 + //0x000014f9 LBB0_286 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000014f9 movl $64, %ecx + //0x000014fe LBB0_287 + 0x4d, 0x89, 0xd0, //0x000014fe movq %r10, %r8 + 0x48, 0x89, 0xcf, //0x00001501 movq %rcx, %rdi + 0x49, 0xd3, 0xe0, //0x00001504 shlq %cl, %r8 + 0x41, 0x89, 0xc3, //0x00001507 movl %eax, %r11d + 0x49, 0xc1, 0xe3, 0x04, //0x0000150a shlq $4, %r11 + 0x48, 0x8d, 0x05, 0x4b, 0x25, 0x00, 0x00, //0x0000150e leaq $9547(%rip), %rax /* _POW10_M128_TAB+0(%rip) */ + 0x49, 0x8b, 0x44, 0x03, 0x08, //0x00001515 movq $8(%r11,%rax), %rax + 0x48, 0x89, 0x45, 0xa8, //0x0000151a movq %rax, $-88(%rbp) + 0x49, 0xf7, 0xe0, //0x0000151e mulq %r8 + 0x48, 0x89, 0xc6, //0x00001521 movq %rax, %rsi + 0x48, 0x89, 0xd3, //0x00001524 movq %rdx, %rbx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00001527 andl $511, %edx + 0x4c, 0x89, 0xc1, //0x0000152d movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00001530 notq %rcx + 0x48, 0x39, 0xc8, //0x00001533 cmpq %rcx, %rax + 0x0f, 0x86, 0x48, 0x00, 0x00, 0x00, //0x00001536 jbe LBB0_292 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x0000153c cmpl $511, %edx + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00001542 jne LBB0_292 + 0x4c, 0x89, 0xc0, //0x00001548 movq %r8, %rax + 0x48, 0x8d, 0x15, 0x0e, 0x25, 0x00, 0x00, //0x0000154b leaq $9486(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x49, 0xf7, 0x24, 0x13, //0x00001552 mulq (%r11,%rdx) + 0x48, 0x01, 0xd6, //0x00001556 addq %rdx, %rsi + 0x48, 0x83, 0xd3, 0x00, //0x00001559 adcq $0, %rbx + 0x89, 0xda, //0x0000155d movl %ebx, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000155f andl $511, %edx + 0x48, 0x39, 0xc8, //0x00001565 cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00001568 jbe LBB0_292 + 0x48, 0x83, 0xfe, 0xff, //0x0000156e cmpq $-1, %rsi + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00001572 jne LBB0_292 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00001578 cmpl $511, %edx + 0x0f, 0x84, 0x75, 0x00, 0x00, 0x00, //0x0000157e je LBB0_295 + //0x00001584 LBB0_292 + 0x48, 0x89, 0xd8, //0x00001584 movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00001587 shrq $63, %rax + 0x8d, 0x48, 0x09, //0x0000158b leal $9(%rax), %ecx + 0x48, 0xd3, 0xeb, //0x0000158e shrq %cl, %rbx + 0x48, 0x09, 0xf2, //0x00001591 orq %rsi, %rdx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001594 jne LBB0_294 + 0x89, 0xd9, //0x0000159a movl %ebx, %ecx + 0x83, 0xe1, 0x03, //0x0000159c andl $3, %ecx + 0x83, 0xf9, 0x01, //0x0000159f cmpl $1, %ecx + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x000015a2 je LBB0_295 + //0x000015a8 LBB0_294 + 0x41, 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x000015a8 imull $217706, %r14d, %ecx + 0xc1, 0xf9, 0x10, //0x000015af sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x000015b2 addl $1087, %ecx + 0x4c, 0x63, 0xf1, //0x000015b8 movslq %ecx, %r14 + 0x4c, 0x89, 0xf2, //0x000015bb movq %r14, %rdx + 0x48, 0x29, 0xfa, //0x000015be subq %rdi, %rdx + 0x48, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000015c1 movabsq $126100789566373888, %rsi + 0x48, 0x83, 0xf0, 0x01, //0x000015cb xorq $1, %rax + 0x48, 0x29, 0xc2, //0x000015cf subq %rax, %rdx + 0x89, 0xd8, //0x000015d2 movl %ebx, %eax + 0x83, 0xe0, 0x01, //0x000015d4 andl $1, %eax + 0x48, 0x01, 0xd8, //0x000015d7 addq %rbx, %rax + 0x48, 0x89, 0xc1, //0x000015da movq %rax, %rcx + 0x48, 0x21, 0xf1, //0x000015dd andq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x000015e0 cmpq $1, %rcx + 0x48, 0x83, 0xda, 0xff, //0x000015e4 sbbq $-1, %rdx + 0x48, 0x8d, 0x72, 0xff, //0x000015e8 leaq $-1(%rdx), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000015ec cmpq $2045, %rsi + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x000015f3 jbe LBB0_300 + //0x000015f9 LBB0_295 + 0x48, 0x8b, 0x45, 0xa0, //0x000015f9 movq $-96(%rbp), %rax + 0x4c, 0x29, 0xf8, //0x000015fd subq %r15, %rax + 0x4d, 0x85, 0xed, //0x00001600 testq %r13, %r13 + 0x0f, 0x84, 0xe4, 0x02, 0x00, 0x00, //0x00001603 je LBB0_320 + 0x41, 0xc6, 0x04, 0x24, 0x00, //0x00001609 movb $0, (%r12) + 0x49, 0x83, 0xfd, 0x01, //0x0000160e cmpq $1, %r13 + 0x0f, 0x84, 0xd5, 0x02, 0x00, 0x00, //0x00001612 je LBB0_320 + 0x49, 0x8d, 0x55, 0xff, //0x00001618 leaq $-1(%r13), %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000161c movl $1, %ecx + 0x48, 0x81, 0xfa, 0x80, 0x00, 0x00, 0x00, //0x00001621 cmpq $128, %rdx + 0x0f, 0x82, 0xae, 0x02, 0x00, 0x00, //0x00001628 jb LBB0_319 + 0x48, 0x89, 0xd1, //0x0000162e movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x00001631 andq $-128, %rcx + 0x48, 0x8d, 0x71, 0x80, //0x00001635 leaq $-128(%rcx), %rsi + 0x48, 0x89, 0xf7, //0x00001639 movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x0000163c shrq $7, %rdi + 0x48, 0xff, 0xc7, //0x00001640 incq %rdi + 0x89, 0xfb, //0x00001643 movl %edi, %ebx + 0x83, 0xe3, 0x03, //0x00001645 andl $3, %ebx + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00001648 cmpq $384, %rsi + 0x0f, 0x83, 0x8a, 0x01, 0x00, 0x00, //0x0000164f jae LBB0_312 + 0x31, 0xff, //0x00001655 xorl %edi, %edi + 0xe9, 0x34, 0x02, 0x00, 0x00, //0x00001657 jmp LBB0_314 + //0x0000165c LBB0_300 + 0x48, 0x83, 0xf9, 0x01, //0x0000165c cmpq $1, %rcx + 0xb1, 0x02, //0x00001660 movb $2, %cl + 0x80, 0xd9, 0x00, //0x00001662 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x00001665 shrq %cl, %rax + 0x48, 0xc1, 0xe2, 0x34, //0x00001668 shlq $52, %rdx + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000166c movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x00001676 andq %rcx, %rax + 0x48, 0x09, 0xd0, //0x00001679 orq %rdx, %rax + 0x48, 0x89, 0xc3, //0x0000167c movq %rax, %rbx + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000167f movabsq $-9223372036854775808, %rcx + 0x48, 0x09, 0xcb, //0x00001689 orq %rcx, %rbx + 0x8b, 0x7d, 0xb0, //0x0000168c movl $-80(%rbp), %edi + 0x83, 0xff, 0xff, //0x0000168f cmpl $-1, %edi + 0x48, 0x0f, 0x45, 0xd8, //0x00001692 cmovneq %rax, %rbx + 0x83, 0x7d, 0xc0, 0x00, //0x00001696 cmpl $0, $-64(%rbp) + 0x0f, 0x84, 0x3c, 0x04, 0x00, 0x00, //0x0000169a je LBB0_359 + 0x89, 0x7d, 0xb0, //0x000016a0 movl %edi, $-80(%rbp) + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000016a3 movl $64, %ecx + 0x49, 0xff, 0xc2, //0x000016a8 incq %r10 + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000016ab je LBB0_303 + 0x49, 0x0f, 0xbd, 0xca, //0x000016b1 bsrq %r10, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x000016b5 xorq $63, %rcx + //0x000016b9 LBB0_303 + 0x48, 0x89, 0xcf, //0x000016b9 movq %rcx, %rdi + 0x49, 0xd3, 0xe2, //0x000016bc shlq %cl, %r10 + 0x48, 0x8b, 0x45, 0xa8, //0x000016bf movq $-88(%rbp), %rax + 0x49, 0xf7, 0xe2, //0x000016c3 mulq %r10 + 0x49, 0x89, 0xc0, //0x000016c6 movq %rax, %r8 + 0x48, 0x89, 0xd6, //0x000016c9 movq %rdx, %rsi + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000016cc andl $511, %edx + 0x4c, 0x89, 0xd1, //0x000016d2 movq %r10, %rcx + 0x48, 0xf7, 0xd1, //0x000016d5 notq %rcx + 0x48, 0x39, 0xc8, //0x000016d8 cmpq %rcx, %rax + 0x0f, 0x86, 0x48, 0x00, 0x00, 0x00, //0x000016db jbe LBB0_308 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000016e1 cmpl $511, %edx + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x000016e7 jne LBB0_308 + 0x4c, 0x89, 0xd0, //0x000016ed movq %r10, %rax + 0x48, 0x8d, 0x15, 0x69, 0x23, 0x00, 0x00, //0x000016f0 leaq $9065(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x49, 0xf7, 0x24, 0x13, //0x000016f7 mulq (%r11,%rdx) + 0x49, 0x01, 0xd0, //0x000016fb addq %rdx, %r8 + 0x48, 0x83, 0xd6, 0x00, //0x000016fe adcq $0, %rsi + 0x89, 0xf2, //0x00001702 movl %esi, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00001704 andl $511, %edx + 0x48, 0x39, 0xc8, //0x0000170a cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x0000170d jbe LBB0_308 + 0x49, 0x83, 0xf8, 0xff, //0x00001713 cmpq $-1, %r8 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00001717 jne LBB0_308 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x0000171d cmpl $511, %edx + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x00001723 je LBB0_295 + //0x00001729 LBB0_308 + 0x48, 0x89, 0xf0, //0x00001729 movq %rsi, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x0000172c shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00001730 leal $9(%rax), %ecx + 0x48, 0xd3, 0xee, //0x00001733 shrq %cl, %rsi + 0x4c, 0x09, 0xc2, //0x00001736 orq %r8, %rdx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001739 jne LBB0_310 + 0x89, 0xf1, //0x0000173f movl %esi, %ecx + 0x83, 0xe1, 0x03, //0x00001741 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00001744 cmpl $1, %ecx + 0x0f, 0x84, 0xac, 0xfe, 0xff, 0xff, //0x00001747 je LBB0_295 + //0x0000174d LBB0_310 + 0x49, 0x29, 0xfe, //0x0000174d subq %rdi, %r14 + 0x48, 0x83, 0xf0, 0x01, //0x00001750 xorq $1, %rax + 0x49, 0x29, 0xc6, //0x00001754 subq %rax, %r14 + 0x89, 0xf0, //0x00001757 movl %esi, %eax + 0x83, 0xe0, 0x01, //0x00001759 andl $1, %eax + 0x48, 0x01, 0xf0, //0x0000175c addq %rsi, %rax + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x0000175f movabsq $126100789566373888, %rcx + 0x48, 0x21, 0xc1, //0x00001769 andq %rax, %rcx + 0x48, 0x89, 0xca, //0x0000176c movq %rcx, %rdx + 0x48, 0x83, 0xf9, 0x01, //0x0000176f cmpq $1, %rcx + 0x49, 0x83, 0xde, 0xff, //0x00001773 sbbq $-1, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00001777 leaq $-1(%r14), %rcx + 0x48, 0x81, 0xf9, 0xfd, 0x07, 0x00, 0x00, //0x0000177b cmpq $2045, %rcx + 0x0f, 0x87, 0x71, 0xfe, 0xff, 0xff, //0x00001782 ja LBB0_295 + 0x48, 0x83, 0xfa, 0x01, //0x00001788 cmpq $1, %rdx + 0xb1, 0x02, //0x0000178c movb $2, %cl + 0x80, 0xd9, 0x00, //0x0000178e sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x00001791 shrq %cl, %rax + 0x49, 0xc1, 0xe6, 0x34, //0x00001794 shlq $52, %r14 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001798 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x000017a2 andq %rcx, %rax + 0x4c, 0x09, 0xf0, //0x000017a5 orq %r14, %rax + 0x48, 0x89, 0xc1, //0x000017a8 movq %rax, %rcx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000017ab movabsq $-9223372036854775808, %rdx + 0x48, 0x09, 0xd1, //0x000017b5 orq %rdx, %rcx + 0x83, 0x7d, 0xb0, 0xff, //0x000017b8 cmpl $-1, $-80(%rbp) + 0x48, 0x0f, 0x45, 0xc8, //0x000017bc cmovneq %rax, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x000017c0 vmovq %rbx, %xmm0 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc9, //0x000017c5 vmovq %rcx, %xmm1 + 0xc5, 0xf9, 0x2e, 0xc1, //0x000017ca vucomisd %xmm1, %xmm0 + 0x0f, 0x85, 0x25, 0xfe, 0xff, 0xff, //0x000017ce jne LBB0_295 + 0x0f, 0x8b, 0x02, 0x03, 0x00, 0x00, //0x000017d4 jnp LBB0_359 + 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x000017da jmp LBB0_295 + //0x000017df LBB0_312 + 0x48, 0x89, 0xde, //0x000017df movq %rbx, %rsi + 0x48, 0x29, 0xfe, //0x000017e2 subq %rdi, %rsi + 0x31, 0xff, //0x000017e5 xorl %edi, %edi + 0xc5, 0xf9, 0xef, 0xc0, //0x000017e7 vpxor %xmm0, %xmm0, %xmm0 + //0x000017eb LBB0_313 + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x3c, 0x01, //0x000017eb vmovdqu %ymm0, $1(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x3c, 0x21, //0x000017f2 vmovdqu %ymm0, $33(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x3c, 0x41, //0x000017f9 vmovdqu %ymm0, $65(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x3c, 0x61, //0x00001800 vmovdqu %ymm0, $97(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0x81, 0x00, 0x00, 0x00, //0x00001807 vmovdqu %ymm0, $129(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0xa1, 0x00, 0x00, 0x00, //0x00001811 vmovdqu %ymm0, $161(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0xc1, 0x00, 0x00, 0x00, //0x0000181b vmovdqu %ymm0, $193(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0xe1, 0x00, 0x00, 0x00, //0x00001825 vmovdqu %ymm0, $225(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0x01, 0x01, 0x00, 0x00, //0x0000182f vmovdqu %ymm0, $257(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0x21, 0x01, 0x00, 0x00, //0x00001839 vmovdqu %ymm0, $289(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0x41, 0x01, 0x00, 0x00, //0x00001843 vmovdqu %ymm0, $321(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0x61, 0x01, 0x00, 0x00, //0x0000184d vmovdqu %ymm0, $353(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0x81, 0x01, 0x00, 0x00, //0x00001857 vmovdqu %ymm0, $385(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0xa1, 0x01, 0x00, 0x00, //0x00001861 vmovdqu %ymm0, $417(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0xc1, 0x01, 0x00, 0x00, //0x0000186b vmovdqu %ymm0, $449(%r12,%rdi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x84, 0x3c, 0xe1, 0x01, 0x00, 0x00, //0x00001875 vmovdqu %ymm0, $481(%r12,%rdi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x0000187f addq $512, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00001886 addq $4, %rsi + 0x0f, 0x85, 0x5b, 0xff, 0xff, 0xff, //0x0000188a jne LBB0_313 + //0x00001890 LBB0_314 + 0x48, 0x85, 0xdb, //0x00001890 testq %rbx, %rbx + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00001893 je LBB0_317 + 0x48, 0xf7, 0xdb, //0x00001899 negq %rbx + 0xc5, 0xf9, 0xef, 0xc0, //0x0000189c vpxor %xmm0, %xmm0, %xmm0 + //0x000018a0 LBB0_316 + 0x48, 0x89, 0xfe, //0x000018a0 movq %rdi, %rsi + 0x48, 0x83, 0xce, 0x01, //0x000018a3 orq $1, %rsi + 0xc4, 0xc1, 0x7e, 0x7f, 0x04, 0x34, //0x000018a7 vmovdqu %ymm0, (%r12,%rsi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x34, 0x20, //0x000018ad vmovdqu %ymm0, $32(%r12,%rsi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x34, 0x40, //0x000018b4 vmovdqu %ymm0, $64(%r12,%rsi) + 0xc4, 0xc1, 0x7e, 0x7f, 0x44, 0x34, 0x60, //0x000018bb vmovdqu %ymm0, $96(%r12,%rsi) + 0x48, 0x83, 0xef, 0x80, //0x000018c2 subq $-128, %rdi + 0x48, 0xff, 0xc3, //0x000018c6 incq %rbx + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x000018c9 jne LBB0_316 + //0x000018cf LBB0_317 + 0x48, 0x39, 0xca, //0x000018cf cmpq %rcx, %rdx + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000018d2 je LBB0_320 + 0x48, 0x83, 0xc9, 0x01, //0x000018d8 orq $1, %rcx + //0x000018dc LBB0_319 + 0x41, 0xc6, 0x04, 0x0c, 0x00, //0x000018dc movb $0, (%r12,%rcx) + 0x48, 0xff, 0xc1, //0x000018e1 incq %rcx + 0x49, 0x39, 0xcd, //0x000018e4 cmpq %rcx, %r13 + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x000018e7 jne LBB0_319 + //0x000018ed LBB0_320 + 0x41, 0x8a, 0x11, //0x000018ed movb (%r9), %dl + 0x31, 0xc9, //0x000018f0 xorl %ecx, %ecx + 0x80, 0xfa, 0x2d, //0x000018f2 cmpb $45, %dl + 0x0f, 0x94, 0xc1, //0x000018f5 sete %cl + 0x45, 0x31, 0xd2, //0x000018f8 xorl %r10d, %r10d + 0x48, 0x39, 0xc8, //0x000018fb cmpq %rcx, %rax + 0x0f, 0x8e, 0x92, 0x00, 0x00, 0x00, //0x000018fe jle LBB0_333 + 0x88, 0x55, 0xd7, //0x00001904 movb %dl, $-41(%rbp) + 0xb3, 0x01, //0x00001907 movb $1, %bl + 0x45, 0x31, 0xc0, //0x00001909 xorl %r8d, %r8d + 0x45, 0x31, 0xf6, //0x0000190c xorl %r14d, %r14d + 0x31, 0xff, //0x0000190f xorl %edi, %edi + 0x45, 0x31, 0xdb, //0x00001911 xorl %r11d, %r11d + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x00001914 jmp LBB0_325 + //0x00001919 LBB0_322 + 0x80, 0xfa, 0x30, //0x00001919 cmpb $48, %dl + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000191c movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x00001921 cmovnel %edx, %r14d + //0x00001925 LBB0_323 + 0x44, 0x89, 0xc7, //0x00001925 movl %r8d, %edi + //0x00001928 LBB0_324 + 0x48, 0xff, 0xc1, //0x00001928 incq %rcx + 0x48, 0x39, 0xc1, //0x0000192b cmpq %rax, %rcx + 0x0f, 0x9c, 0xc3, //0x0000192e setl %bl + 0x48, 0x39, 0xc8, //0x00001931 cmpq %rcx, %rax + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x00001934 je LBB0_334 + //0x0000193a LBB0_325 + 0x41, 0x0f, 0xb6, 0x14, 0x09, //0x0000193a movzbl (%r9,%rcx), %edx + 0x8d, 0x72, 0xd0, //0x0000193f leal $-48(%rdx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00001942 cmpb $9, %sil + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x00001946 ja LBB0_329 + 0x85, 0xff, //0x0000194c testl %edi, %edi + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x0000194e jne LBB0_331 + 0x80, 0xfa, 0x30, //0x00001954 cmpb $48, %dl + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00001957 jne LBB0_331 + 0x41, 0xff, 0xca, //0x0000195d decl %r10d + 0x31, 0xff, //0x00001960 xorl %edi, %edi + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x00001962 jmp LBB0_324 + //0x00001967 LBB0_329 + 0x80, 0xfa, 0x2e, //0x00001967 cmpb $46, %dl + 0x0f, 0x85, 0x49, 0x00, 0x00, 0x00, //0x0000196a jne LBB0_335 + 0x41, 0x89, 0xfa, //0x00001970 movl %edi, %r10d + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001973 movl $1, %r11d + 0xe9, 0xaa, 0xff, 0xff, 0xff, //0x00001979 jmp LBB0_324 + //0x0000197e LBB0_331 + 0x49, 0x63, 0xf8, //0x0000197e movslq %r8d, %rdi + 0x49, 0x39, 0xfd, //0x00001981 cmpq %rdi, %r13 + 0x0f, 0x86, 0x8f, 0xff, 0xff, 0xff, //0x00001984 jbe LBB0_322 + 0x41, 0x88, 0x14, 0x3c, //0x0000198a movb %dl, (%r12,%rdi) + 0x41, 0xff, 0xc0, //0x0000198e incl %r8d + 0xe9, 0x8f, 0xff, 0xff, 0xff, //0x00001991 jmp LBB0_323 + //0x00001996 LBB0_333 + 0x45, 0x31, 0xff, //0x00001996 xorl %r15d, %r15d + 0x31, 0xf6, //0x00001999 xorl %esi, %esi + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000199b movabsq $4503599627370495, %rcx + 0xe9, 0x15, 0x01, 0x00, 0x00, //0x000019a5 jmp LBB0_358 + //0x000019aa LBB0_334 + 0x45, 0x85, 0xdb, //0x000019aa testl %r11d, %r11d + 0x4d, 0x89, 0xd7, //0x000019ad movq %r10, %r15 + 0x45, 0x0f, 0x44, 0xf8, //0x000019b0 cmovel %r8d, %r15d + 0xe9, 0xb6, 0x00, 0x00, 0x00, //0x000019b4 jmp LBB0_351 + //0x000019b9 LBB0_335 + 0x45, 0x85, 0xdb, //0x000019b9 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xd0, //0x000019bc cmovel %r8d, %r10d + 0xf6, 0xc3, 0x01, //0x000019c0 testb $1, %bl + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x000019c3 je LBB0_341 + 0x80, 0xca, 0x20, //0x000019c9 orb $32, %dl + 0x80, 0xfa, 0x65, //0x000019cc cmpb $101, %dl + 0x48, 0x8b, 0x7d, 0xa0, //0x000019cf movq $-96(%rbp), %rdi + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x000019d3 jne LBB0_341 + 0x48, 0x8d, 0x71, 0x01, //0x000019d9 leaq $1(%rcx), %rsi + 0x89, 0xf2, //0x000019dd movl %esi, %edx + 0x41, 0x8a, 0x14, 0x11, //0x000019df movb (%r9,%rdx), %dl + 0x80, 0xfa, 0x2b, //0x000019e3 cmpb $43, %dl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000019e6 je LBB0_342 + 0x80, 0xfa, 0x2d, //0x000019ec cmpb $45, %dl + 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x000019ef jne LBB0_344 + 0x83, 0xc1, 0x02, //0x000019f5 addl $2, %ecx + 0xba, 0xff, 0xff, 0xff, 0xff, //0x000019f8 movl $-1, %edx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000019fd jmp LBB0_343 + //0x00001a02 LBB0_341 + 0x4d, 0x89, 0xd7, //0x00001a02 movq %r10, %r15 + 0xe9, 0x65, 0x00, 0x00, 0x00, //0x00001a05 jmp LBB0_351 + //0x00001a0a LBB0_342 + 0x83, 0xc1, 0x02, //0x00001a0a addl $2, %ecx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001a0d movl $1, %edx + //0x00001a12 LBB0_343 + 0x89, 0xce, //0x00001a12 movl %ecx, %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00001a14 jmp LBB0_345 + //0x00001a19 LBB0_344 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001a19 movl $1, %edx + //0x00001a1e LBB0_345 + 0x48, 0x63, 0xf6, //0x00001a1e movslq %esi, %rsi + 0x31, 0xc9, //0x00001a21 xorl %ecx, %ecx + 0x48, 0x39, 0xf0, //0x00001a23 cmpq %rsi, %rax + 0x0f, 0x8e, 0x3a, 0x00, 0x00, 0x00, //0x00001a26 jle LBB0_350 + 0x49, 0x01, 0xf7, //0x00001a2c addq %rsi, %r15 + 0x31, 0xc9, //0x00001a2f xorl %ecx, %ecx + //0x00001a31 LBB0_347 + 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00001a31 cmpl $9999, %ecx + 0x0f, 0x8f, 0x29, 0x00, 0x00, 0x00, //0x00001a37 jg LBB0_350 + 0x48, 0x8b, 0x45, 0xc8, //0x00001a3d movq $-56(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x38, //0x00001a41 movzbl (%rax,%r15), %eax + 0x8d, 0x70, 0xd0, //0x00001a46 leal $-48(%rax), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00001a49 cmpb $9, %sil + 0x0f, 0x87, 0x13, 0x00, 0x00, 0x00, //0x00001a4d ja LBB0_350 + 0x8d, 0x0c, 0x89, //0x00001a53 leal (%rcx,%rcx,4), %ecx + 0x8d, 0x4c, 0x48, 0xd0, //0x00001a56 leal $-48(%rax,%rcx,2), %ecx + 0x49, 0xff, 0xc7, //0x00001a5a incq %r15 + 0x4c, 0x39, 0xff, //0x00001a5d cmpq %r15, %rdi + 0x0f, 0x85, 0xcb, 0xff, 0xff, 0xff, //0x00001a60 jne LBB0_347 + //0x00001a66 LBB0_350 + 0x0f, 0xaf, 0xca, //0x00001a66 imull %edx, %ecx + 0x44, 0x01, 0xd1, //0x00001a69 addl %r10d, %ecx + 0x41, 0x89, 0xcf, //0x00001a6c movl %ecx, %r15d + //0x00001a6f LBB0_351 + 0x45, 0x85, 0xc0, //0x00001a6f testl %r8d, %r8d + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x00001a72 je LBB0_354 + 0x41, 0x81, 0xff, 0x36, 0x01, 0x00, 0x00, //0x00001a78 cmpl $310, %r15d + 0x0f, 0x8e, 0x1b, 0x00, 0x00, 0x00, //0x00001a7f jle LBB0_355 + //0x00001a85 LBB0_353 + 0x31, 0xf6, //0x00001a85 xorl %esi, %esi + 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001a87 movabsq $9218868437227405312, %r15 + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00001a91 jmp LBB0_357 + //0x00001a96 LBB0_354 + 0x45, 0x31, 0xff, //0x00001a96 xorl %r15d, %r15d + 0x31, 0xf6, //0x00001a99 xorl %esi, %esi + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00001a9b jmp LBB0_357 + //0x00001aa0 LBB0_355 + 0x31, 0xf6, //0x00001aa0 xorl %esi, %esi + 0x41, 0x81, 0xff, 0xb6, 0xfe, 0xff, 0xff, //0x00001aa2 cmpl $-330, %r15d + 0x0f, 0x8d, 0x68, 0x00, 0x00, 0x00, //0x00001aa9 jge LBB0_362 + 0x45, 0x31, 0xff, //0x00001aaf xorl %r15d, %r15d + //0x00001ab2 LBB0_357 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001ab2 movabsq $4503599627370495, %rcx + 0x8a, 0x55, 0xd7, //0x00001abc movb $-41(%rbp), %dl + //0x00001abf LBB0_358 + 0x48, 0x21, 0xce, //0x00001abf andq %rcx, %rsi + 0x4c, 0x09, 0xfe, //0x00001ac2 orq %r15, %rsi + 0x48, 0x89, 0xf3, //0x00001ac5 movq %rsi, %rbx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001ac8 movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc3, //0x00001ad2 orq %rax, %rbx + 0x80, 0xfa, 0x2d, //0x00001ad5 cmpb $45, %dl + 0x48, 0x0f, 0x45, 0xde, //0x00001ad8 cmovneq %rsi, %rbx + //0x00001adc LBB0_359 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001adc movabsq $-9223372036854775808, %rax + 0x48, 0xff, 0xc8, //0x00001ae6 decq %rax + 0x48, 0x21, 0xd8, //0x00001ae9 andq %rbx, %rax + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001aec movabsq $9218868437227405312, %rcx + 0x48, 0x39, 0xc8, //0x00001af6 cmpq %rcx, %rax + 0x48, 0x8b, 0x45, 0xb8, //0x00001af9 movq $-72(%rbp), %rax + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00001afd jne LBB0_361 + 0x48, 0xc7, 0x00, 0xf8, 0xff, 0xff, 0xff, //0x00001b03 movq $-8, (%rax) + //0x00001b0a LBB0_361 + 0x48, 0x89, 0x58, 0x08, //0x00001b0a movq %rbx, $8(%rax) + 0x48, 0x8b, 0x5d, 0xa0, //0x00001b0e movq $-96(%rbp), %rbx + 0xe9, 0x17, 0xf5, 0xff, 0xff, //0x00001b12 jmp LBB0_202 + //0x00001b17 LBB0_362 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, //0x00001b17 movabsq $1152921504606846975, %r10 + 0x45, 0x85, 0xff, //0x00001b21 testl %r15d, %r15d + 0x0f, 0x8e, 0x82, 0x07, 0x00, 0x00, //0x00001b24 jle LBB0_479 + 0x31, 0xf6, //0x00001b2a xorl %esi, %esi + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001b2c movl $1, %r11d + 0x44, 0x89, 0xc0, //0x00001b32 movl %r8d, %eax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00001b35 jmp LBB0_366 + //0x00001b3a LBB0_364 + 0x89, 0xc3, //0x00001b3a movl %eax, %ebx + //0x00001b3c LBB0_365 + 0x48, 0x8b, 0x75, 0xb0, //0x00001b3c movq $-80(%rbp), %rsi + 0x03, 0x75, 0xa8, //0x00001b40 addl $-88(%rbp), %esi + 0x89, 0xd8, //0x00001b43 movl %ebx, %eax + 0x45, 0x85, 0xff, //0x00001b45 testl %r15d, %r15d + 0x0f, 0x8e, 0x61, 0x07, 0x00, 0x00, //0x00001b48 jle LBB0_480 + //0x00001b4e LBB0_366 + 0xb9, 0x1b, 0x00, 0x00, 0x00, //0x00001b4e movl $27, %ecx + 0x41, 0x83, 0xff, 0x08, //0x00001b53 cmpl $8, %r15d + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x00001b57 jg LBB0_368 + 0x44, 0x89, 0xf9, //0x00001b5d movl %r15d, %ecx + 0x48, 0x8d, 0x15, 0x89, 0x4a, 0x00, 0x00, //0x00001b60 leaq $19081(%rip), %rdx /* _POW_TAB+0(%rip) */ + 0x8b, 0x0c, 0x8a, //0x00001b67 movl (%rdx,%rcx,4), %ecx + //0x00001b6a LBB0_368 + 0x48, 0x89, 0x75, 0xb0, //0x00001b6a movq %rsi, $-80(%rbp) + 0x85, 0xc0, //0x00001b6e testl %eax, %eax + 0x89, 0x4d, 0xa8, //0x00001b70 movl %ecx, $-88(%rbp) + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00001b73 je LBB0_364 + 0x41, 0x89, 0xc9, //0x00001b79 movl %ecx, %r9d + 0x41, 0xf7, 0xd9, //0x00001b7c negl %r9d + 0x85, 0xc9, //0x00001b7f testl %ecx, %ecx + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x00001b81 je LBB0_364 + 0x0f, 0x88, 0x90, 0x01, 0x00, 0x00, //0x00001b87 js LBB0_395 + //0x00001b8d LBB0_371 + 0x41, 0x83, 0xf9, 0xc3, //0x00001b8d cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x00001b91 jle LBB0_375 + 0xe9, 0x9f, 0x03, 0x00, 0x00, //0x00001b97 jmp LBB0_426 + //0x00001b9c LBB0_372 + 0xff, 0xc8, //0x00001b9c decl %eax + 0x41, 0x89, 0xc0, //0x00001b9e movl %eax, %r8d + //0x00001ba1 LBB0_373 + 0x45, 0x85, 0xc0, //0x00001ba1 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x00001ba4 cmovel %r8d, %r15d + //0x00001ba8 LBB0_374 + 0x44, 0x8d, 0x49, 0x3c, //0x00001ba8 leal $60(%rcx), %r9d + 0x44, 0x89, 0xc0, //0x00001bac movl %r8d, %eax + 0x83, 0xf9, 0x88, //0x00001baf cmpl $-120, %ecx + 0x0f, 0x8d, 0x74, 0x03, 0x00, 0x00, //0x00001bb2 jge LBB0_425 + //0x00001bb8 LBB0_375 + 0x44, 0x89, 0xc9, //0x00001bb8 movl %r9d, %ecx + 0x48, 0x63, 0xf8, //0x00001bbb movslq %eax, %rdi + 0x31, 0xf6, //0x00001bbe xorl %esi, %esi + 0x31, 0xd2, //0x00001bc0 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001bc2 .p2align 4, 0x90 + //0x00001bd0 LBB0_376 + 0x48, 0x39, 0xfe, //0x00001bd0 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00001bd3 jge LBB0_378 + 0x48, 0x8d, 0x14, 0x92, //0x00001bd9 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x00001bdd movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00001be2 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00001be7 incq %rsi + 0x49, 0x8d, 0x5a, 0x01, //0x00001bea leaq $1(%r10), %rbx + 0x48, 0x39, 0xda, //0x00001bee cmpq %rbx, %rdx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001bf1 jb LBB0_376 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001bf7 jmp LBB0_380 + //0x00001bfc LBB0_378 + 0x48, 0x85, 0xd2, //0x00001bfc testq %rdx, %rdx + 0x0f, 0x84, 0x10, 0x01, 0x00, 0x00, //0x00001bff je LBB0_393 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c05 .p2align 4, 0x90 + //0x00001c10 LBB0_379 + 0x48, 0x01, 0xd2, //0x00001c10 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001c13 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00001c17 incl %esi + 0x49, 0x8d, 0x7a, 0x01, //0x00001c19 leaq $1(%r10), %rdi + 0x48, 0x39, 0xfa, //0x00001c1d cmpq %rdi, %rdx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00001c20 jb LBB0_379 + //0x00001c26 LBB0_380 + 0x41, 0x29, 0xf7, //0x00001c26 subl %esi, %r15d + 0x31, 0xff, //0x00001c29 xorl %edi, %edi + 0x39, 0xc6, //0x00001c2b cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00001c2d jge LBB0_385 + 0x48, 0x63, 0xc6, //0x00001c33 movslq %esi, %rax + 0x49, 0x63, 0xf0, //0x00001c36 movslq %r8d, %rsi + 0x49, 0x8d, 0x3c, 0x04, //0x00001c39 leaq (%r12,%rax), %rdi + 0x45, 0x31, 0xc0, //0x00001c3d xorl %r8d, %r8d + //0x00001c40 .p2align 4, 0x90 + //0x00001c40 LBB0_382 + 0x48, 0x89, 0xd3, //0x00001c40 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00001c43 shrq $60, %rbx + 0x4c, 0x21, 0xd2, //0x00001c47 andq %r10, %rdx + 0x80, 0xcb, 0x30, //0x00001c4a orb $48, %bl + 0x43, 0x88, 0x1c, 0x04, //0x00001c4d movb %bl, (%r12,%r8) + 0x48, 0x8d, 0x14, 0x92, //0x00001c51 leaq (%rdx,%rdx,4), %rdx + 0x4a, 0x0f, 0xbe, 0x1c, 0x07, //0x00001c55 movsbq (%rdi,%r8), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00001c5a leaq $-48(%rbx,%rdx,2), %rdx + 0x4a, 0x8d, 0x5c, 0x00, 0x01, //0x00001c5f leaq $1(%rax,%r8), %rbx + 0x49, 0xff, 0xc0, //0x00001c64 incq %r8 + 0x48, 0x39, 0xf3, //0x00001c67 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001c6a jl LBB0_382 + 0x48, 0x85, 0xd2, //0x00001c70 testq %rdx, %rdx + 0x0f, 0x84, 0x5f, 0x00, 0x00, 0x00, //0x00001c73 je LBB0_389 + 0x44, 0x89, 0xc7, //0x00001c79 movl %r8d, %edi + //0x00001c7c LBB0_385 + 0x41, 0x89, 0xf8, //0x00001c7c movl %edi, %r8d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00001c7f jmp LBB0_387 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c84 .p2align 4, 0x90 + //0x00001c90 LBB0_386 + 0x48, 0x85, 0xc0, //0x00001c90 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x00001c93 cmovnel %r11d, %r14d + 0x48, 0x01, 0xd2, //0x00001c97 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001c9a leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001c9e testq %rdx, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00001ca1 je LBB0_389 + //0x00001ca7 LBB0_387 + 0x48, 0x89, 0xd0, //0x00001ca7 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x3c, //0x00001caa shrq $60, %rax + 0x4c, 0x21, 0xd2, //0x00001cae andq %r10, %rdx + 0x49, 0x63, 0xf0, //0x00001cb1 movslq %r8d, %rsi + 0x49, 0x39, 0xf5, //0x00001cb4 cmpq %rsi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00001cb7 jbe LBB0_386 + 0x0c, 0x30, //0x00001cbd orb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001cbf movb %al, (%r12,%rsi) + 0xff, 0xc6, //0x00001cc3 incl %esi + 0x41, 0x89, 0xf0, //0x00001cc5 movl %esi, %r8d + 0x48, 0x01, 0xd2, //0x00001cc8 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001ccb leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001ccf testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00001cd2 jne LBB0_387 + //0x00001cd8 LBB0_389 + 0x41, 0xff, 0xc7, //0x00001cd8 incl %r15d + 0x45, 0x85, 0xc0, //0x00001cdb testl %r8d, %r8d + 0x0f, 0x8e, 0xbd, 0xfe, 0xff, 0xff, //0x00001cde jle LBB0_373 + 0x44, 0x89, 0xc0, //0x00001ce4 movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001ce7 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0xb5, 0xfe, 0xff, 0xff, //0x00001ced jne LBB0_374 + //0x00001cf3 LBB0_391 + 0x48, 0x83, 0xf8, 0x01, //0x00001cf3 cmpq $1, %rax + 0x0f, 0x8e, 0x9f, 0xfe, 0xff, 0xff, //0x00001cf7 jle LBB0_372 + 0x4c, 0x8d, 0x40, 0xff, //0x00001cfd leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001d01 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x00001d07 movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001d0a je LBB0_391 + 0xe9, 0x93, 0xfe, 0xff, 0xff, //0x00001d10 jmp LBB0_374 + //0x00001d15 LBB0_393 + 0x45, 0x31, 0xc0, //0x00001d15 xorl %r8d, %r8d + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00001d18 jmp LBB0_374 + //0x00001d1d LBB0_395 + 0x83, 0xf9, 0xc3, //0x00001d1d cmpl $-61, %ecx + 0x0f, 0x8f, 0x6f, 0x03, 0x00, 0x00, //0x00001d20 jg LBB0_447 + 0x48, 0x8d, 0x1d, 0xf3, 0x48, 0x00, 0x00, //0x00001d26 leaq $18675(%rip), %rbx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00001d2d jmp LBB0_400 + //0x00001d32 LBB0_397 + 0xff, 0xc8, //0x00001d32 decl %eax + 0x41, 0x89, 0xc0, //0x00001d34 movl %eax, %r8d + //0x00001d37 LBB0_398 + 0x45, 0x85, 0xc0, //0x00001d37 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x00001d3a cmovel %r8d, %r15d + //0x00001d3e LBB0_399 + 0x48, 0x8b, 0x4d, 0xc0, //0x00001d3e movq $-64(%rbp), %rcx + 0x44, 0x8d, 0x49, 0xc4, //0x00001d42 leal $-60(%rcx), %r9d + 0x44, 0x89, 0xc0, //0x00001d46 movl %r8d, %eax + 0x83, 0xf9, 0x78, //0x00001d49 cmpl $120, %ecx + 0x0f, 0x8e, 0x34, 0x03, 0x00, 0x00, //0x00001d4c jle LBB0_446 + //0x00001d52 LBB0_400 + 0x4c, 0x89, 0x7d, 0xc8, //0x00001d52 movq %r15, $-56(%rbp) + 0x4c, 0x89, 0x4d, 0xc0, //0x00001d56 movq %r9, $-64(%rbp) + 0x48, 0x63, 0xf8, //0x00001d5a movslq %eax, %rdi + 0x85, 0xff, //0x00001d5d testl %edi, %edi + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00001d5f je LBB0_406 + 0xb2, 0x38, //0x00001d65 movb $56, %dl + 0x31, 0xc9, //0x00001d67 xorl %ecx, %ecx + //0x00001d69 LBB0_402 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00001d69 movl $19, %r9d + 0x48, 0x83, 0xf9, 0x2a, //0x00001d6f cmpq $42, %rcx + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00001d73 je LBB0_407 + 0x41, 0x38, 0x14, 0x0c, //0x00001d79 cmpb %dl, (%r12,%rcx) + 0x0f, 0x85, 0x9e, 0x01, 0x00, 0x00, //0x00001d7d jne LBB0_424 + 0x0f, 0xb6, 0x94, 0x19, 0x65, 0x18, 0x00, 0x00, //0x00001d83 movzbl $6245(%rcx,%rbx), %edx + 0x48, 0xff, 0xc1, //0x00001d8b incq %rcx + 0x48, 0x39, 0xcf, //0x00001d8e cmpq %rcx, %rdi + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00001d91 jne LBB0_402 + 0x84, 0xd2, //0x00001d97 testb %dl, %dl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001d99 je LBB0_407 + //0x00001d9f LBB0_406 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x00001d9f movl $18, %r9d + //0x00001da5 LBB0_407 + 0x85, 0xc0, //0x00001da5 testl %eax, %eax + 0x0f, 0x8e, 0xb1, 0x00, 0x00, 0x00, //0x00001da7 jle LBB0_415 + 0x41, 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00001dad movl $1, %r15d + 0x44, 0x01, 0xc8, //0x00001db3 addl %r9d, %eax + 0x48, 0x98, //0x00001db6 cltq + 0x48, 0x89, 0xc3, //0x00001db8 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x00001dbb shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x00001dbf decq %rax + 0x48, 0xff, 0xc7, //0x00001dc2 incq %rdi + 0x31, 0xc9, //0x00001dc5 xorl %ecx, %ecx + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00001dc7 jmp LBB0_411 + 0x90, 0x90, 0x90, 0x90, //0x00001dcc .p2align 4, 0x90 + //0x00001dd0 LBB0_409 + 0x48, 0x85, 0xc0, //0x00001dd0 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf7, //0x00001dd3 cmovnel %r15d, %r14d + //0x00001dd7 LBB0_410 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001dd7 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x00001de1 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x00001de4 leaq $-1(%r11), %rax + 0x48, 0xff, 0xcf, //0x00001de8 decq %rdi + 0x48, 0x83, 0xff, 0x01, //0x00001deb cmpq $1, %rdi + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00001def jle LBB0_413 + //0x00001df5 LBB0_411 + 0x49, 0x89, 0xc3, //0x00001df5 movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x74, 0x3c, 0xfe, //0x00001df8 movzbl $-2(%r12,%rdi), %esi + 0x48, 0xc1, 0xe6, 0x3c, //0x00001dfe shlq $60, %rsi + 0x48, 0x01, 0xce, //0x00001e02 addq %rcx, %rsi + 0x48, 0x89, 0xf0, //0x00001e05 movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001e08 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00001e12 mulq %rcx + 0x48, 0x89, 0xd1, //0x00001e15 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00001e18 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00001e1c leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001e20 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00001e24 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x00001e27 subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x00001e2a cmpq %r13, %r11 + 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x00001e2d jae LBB0_409 + 0x04, 0x30, //0x00001e33 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x00001e35 movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00001e39 jmp LBB0_410 + //0x00001e3e LBB0_413 + 0x48, 0x83, 0xfe, 0x0a, //0x00001e3e cmpq $10, %rsi + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001e42 movq $-56(%rbp), %r15 + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00001e46 jae LBB0_416 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001e4c movl $1, %r11d + 0x48, 0x8d, 0x1d, 0xc7, 0x47, 0x00, 0x00, //0x00001e52 leaq $18375(%rip), %rbx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x79, 0x00, 0x00, 0x00, //0x00001e59 jmp LBB0_420 + //0x00001e5e LBB0_415 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001e5e movq $-56(%rbp), %r15 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x00001e62 jmp LBB0_420 + //0x00001e67 LBB0_416 + 0x49, 0x63, 0xf3, //0x00001e67 movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x00001e6a decq %rsi + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001e6d movl $1, %r11d + 0x48, 0x8d, 0x1d, 0xa6, 0x47, 0x00, 0x00, //0x00001e73 leaq $18342(%rip), %rbx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001e7a jmp LBB0_418 + //0x00001e7f LBB0_417 + 0x48, 0x85, 0xc0, //0x00001e7f testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x00001e82 cmovnel %r11d, %r14d + 0x48, 0xff, 0xce, //0x00001e86 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001e89 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001e8d movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001e90 jbe LBB0_420 + //0x00001e96 LBB0_418 + 0x48, 0x89, 0xc8, //0x00001e96 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001e99 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001ea3 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00001ea6 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001eaa leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001eae leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00001eb2 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x00001eb5 subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x00001eb8 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00001ebb jae LBB0_417 + 0x04, 0x30, //0x00001ec1 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001ec3 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00001ec7 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001eca cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001ece movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001ed1 ja LBB0_418 + //0x00001ed7 LBB0_420 + 0x45, 0x01, 0xc8, //0x00001ed7 addl %r9d, %r8d + 0x4d, 0x63, 0xc0, //0x00001eda movslq %r8d, %r8 + 0x4d, 0x39, 0xc5, //0x00001edd cmpq %r8, %r13 + 0x45, 0x0f, 0x46, 0xc5, //0x00001ee0 cmovbel %r13d, %r8d + 0x45, 0x01, 0xcf, //0x00001ee4 addl %r9d, %r15d + 0x45, 0x85, 0xc0, //0x00001ee7 testl %r8d, %r8d + 0x0f, 0x8e, 0x47, 0xfe, 0xff, 0xff, //0x00001eea jle LBB0_398 + 0x44, 0x89, 0xc0, //0x00001ef0 movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001ef3 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x3f, 0xfe, 0xff, 0xff, //0x00001ef9 jne LBB0_399 + //0x00001eff LBB0_422 + 0x48, 0x83, 0xf8, 0x01, //0x00001eff cmpq $1, %rax + 0x0f, 0x8e, 0x29, 0xfe, 0xff, 0xff, //0x00001f03 jle LBB0_397 + 0x4c, 0x8d, 0x40, 0xff, //0x00001f09 leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001f0d cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x00001f13 movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001f16 je LBB0_422 + 0xe9, 0x1d, 0xfe, 0xff, 0xff, //0x00001f1c jmp LBB0_399 + //0x00001f21 LBB0_424 + 0x0f, 0x8c, 0x78, 0xfe, 0xff, 0xff, //0x00001f21 jl LBB0_406 + 0xe9, 0x79, 0xfe, 0xff, 0xff, //0x00001f27 jmp LBB0_407 + //0x00001f2c LBB0_425 + 0x44, 0x89, 0xc0, //0x00001f2c movl %r8d, %eax + 0x44, 0x89, 0xc3, //0x00001f2f movl %r8d, %ebx + 0x45, 0x85, 0xc9, //0x00001f32 testl %r9d, %r9d + 0x0f, 0x84, 0x01, 0xfc, 0xff, 0xff, //0x00001f35 je LBB0_365 + //0x00001f3b LBB0_426 + 0x41, 0xf7, 0xd9, //0x00001f3b negl %r9d + 0x48, 0x63, 0xf8, //0x00001f3e movslq %eax, %rdi + 0x31, 0xf6, //0x00001f41 xorl %esi, %esi + 0x31, 0xd2, //0x00001f43 xorl %edx, %edx + //0x00001f45 LBB0_427 + 0x48, 0x39, 0xfe, //0x00001f45 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x0f, 0x01, 0x00, 0x00, //0x00001f48 jge LBB0_443 + 0x48, 0x8d, 0x0c, 0x92, //0x00001f4e leaq (%rdx,%rdx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x34, //0x00001f52 movsbq (%r12,%rsi), %rdx + 0x48, 0x8d, 0x54, 0x4a, 0xd0, //0x00001f57 leaq $-48(%rdx,%rcx,2), %rdx + 0x48, 0xff, 0xc6, //0x00001f5c incq %rsi + 0x48, 0x89, 0xd3, //0x00001f5f movq %rdx, %rbx + 0x44, 0x89, 0xc9, //0x00001f62 movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00001f65 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001f68 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001f6b je LBB0_427 + //0x00001f71 LBB0_429 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001f71 movq $-1, %rdi + 0x44, 0x89, 0xc9, //0x00001f78 movl %r9d, %ecx + 0x48, 0xd3, 0xe7, //0x00001f7b shlq %cl, %rdi + 0x48, 0xf7, 0xd7, //0x00001f7e notq %rdi + 0x31, 0xdb, //0x00001f81 xorl %ebx, %ebx + 0x39, 0xc6, //0x00001f83 cmpl %eax, %esi + 0x0f, 0x8d, 0x4b, 0x00, 0x00, 0x00, //0x00001f85 jge LBB0_433 + 0x4c, 0x89, 0x7d, 0xc8, //0x00001f8b movq %r15, $-56(%rbp) + 0x4c, 0x63, 0xde, //0x00001f8f movslq %esi, %r11 + 0x4d, 0x63, 0xc0, //0x00001f92 movslq %r8d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00001f95 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x00001f99 xorl %ebx, %ebx + //0x00001f9b LBB0_431 + 0x48, 0x89, 0xd0, //0x00001f9b movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x00001f9e movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x00001fa1 shrq %cl, %rax + 0x48, 0x21, 0xfa, //0x00001fa4 andq %rdi, %rdx + 0x04, 0x30, //0x00001fa7 addb $48, %al + 0x41, 0x88, 0x04, 0x1c, //0x00001fa9 movb %al, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x92, //0x00001fad leaq (%rdx,%rdx,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x00001fb1 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x54, 0x41, 0xd0, //0x00001fb6 leaq $-48(%rcx,%rax,2), %rdx + 0x49, 0x8d, 0x44, 0x1b, 0x01, //0x00001fbb leaq $1(%r11,%rbx), %rax + 0x48, 0xff, 0xc3, //0x00001fc0 incq %rbx + 0x4c, 0x39, 0xc0, //0x00001fc3 cmpq %r8, %rax + 0x0f, 0x8c, 0xcf, 0xff, 0xff, 0xff, //0x00001fc6 jl LBB0_431 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001fcc movq $-56(%rbp), %r15 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001fd0 movl $1, %r11d + //0x00001fd6 LBB0_433 + 0x41, 0x29, 0xf7, //0x00001fd6 subl %esi, %r15d + 0x41, 0x89, 0xd8, //0x00001fd9 movl %ebx, %r8d + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00001fdc jmp LBB0_436 + //0x00001fe1 LBB0_434 + 0x48, 0x85, 0xc0, //0x00001fe1 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x00001fe4 cmovnel %r11d, %r14d + //0x00001fe8 LBB0_435 + 0x48, 0x01, 0xd2, //0x00001fe8 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001feb leaq (%rdx,%rdx,4), %rdx + //0x00001fef LBB0_436 + 0x48, 0x85, 0xd2, //0x00001fef testq %rdx, %rdx + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00001ff2 je LBB0_439 + 0x48, 0x89, 0xd0, //0x00001ff8 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x00001ffb movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x00001ffe shrq %cl, %rax + 0x48, 0x21, 0xfa, //0x00002001 andq %rdi, %rdx + 0x49, 0x63, 0xc8, //0x00002004 movslq %r8d, %rcx + 0x49, 0x39, 0xcd, //0x00002007 cmpq %rcx, %r13 + 0x0f, 0x86, 0xd1, 0xff, 0xff, 0xff, //0x0000200a jbe LBB0_434 + 0x04, 0x30, //0x00002010 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00002012 movb %al, (%r12,%rcx) + 0xff, 0xc1, //0x00002016 incl %ecx + 0x41, 0x89, 0xc8, //0x00002018 movl %ecx, %r8d + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x0000201b jmp LBB0_435 + //0x00002020 LBB0_439 + 0x41, 0xff, 0xc7, //0x00002020 incl %r15d + 0x45, 0x85, 0xc0, //0x00002023 testl %r8d, %r8d + 0x0f, 0x8e, 0x44, 0x02, 0x00, 0x00, //0x00002026 jle LBB0_473 + 0x44, 0x89, 0xc0, //0x0000202c movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000202f cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x3e, 0x02, 0x00, 0x00, //0x00002035 jne LBB0_474 + //0x0000203b LBB0_441 + 0x48, 0x83, 0xf8, 0x01, //0x0000203b cmpq $1, %rax + 0x0f, 0x8e, 0x26, 0x02, 0x00, 0x00, //0x0000203f jle LBB0_472 + 0x4c, 0x8d, 0x40, 0xff, //0x00002045 leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002049 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x0000204f movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002052 je LBB0_441 + 0xe9, 0x1c, 0x02, 0x00, 0x00, //0x00002058 jmp LBB0_474 + //0x0000205d LBB0_443 + 0x48, 0x85, 0xd2, //0x0000205d testq %rdx, %rdx + 0x0f, 0x84, 0x3c, 0x01, 0x00, 0x00, //0x00002060 je LBB0_462 + //0x00002066 LBB0_444 + 0x48, 0x89, 0xd7, //0x00002066 movq %rdx, %rdi + 0x44, 0x89, 0xc9, //0x00002069 movl %r9d, %ecx + 0x48, 0xd3, 0xef, //0x0000206c shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x0000206f testq %rdi, %rdi + 0x0f, 0x85, 0xf9, 0xfe, 0xff, 0xff, //0x00002072 jne LBB0_429 + 0x48, 0x01, 0xd2, //0x00002078 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x0000207b leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x0000207f incl %esi + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00002081 jmp LBB0_444 + //0x00002086 LBB0_446 + 0x44, 0x89, 0xc0, //0x00002086 movl %r8d, %eax + 0x44, 0x89, 0xc3, //0x00002089 movl %r8d, %ebx + 0x45, 0x85, 0xc9, //0x0000208c testl %r9d, %r9d + 0x0f, 0x84, 0xa7, 0xfa, 0xff, 0xff, //0x0000208f je LBB0_365 + //0x00002095 LBB0_447 + 0x44, 0x89, 0xc9, //0x00002095 movl %r9d, %ecx + 0x48, 0x6b, 0xf1, 0x68, //0x00002098 imulq $104, %rcx, %rsi + 0x48, 0x8d, 0x3d, 0x7d, 0x45, 0x00, 0x00, //0x0000209c leaq $17789(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3e, //0x000020a3 movl (%rsi,%rdi), %ebx + 0x4c, 0x63, 0xd8, //0x000020a6 movslq %eax, %r11 + 0x8a, 0x54, 0x3e, 0x04, //0x000020a9 movb $4(%rsi,%rdi), %dl + 0x45, 0x85, 0xdb, //0x000020ad testl %r11d, %r11d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000020b0 je LBB0_452 + 0x48, 0x8d, 0x74, 0x3e, 0x05, //0x000020b6 leaq $5(%rsi,%rdi), %rsi + 0x31, 0xff, //0x000020bb xorl %edi, %edi + //0x000020bd LBB0_449 + 0x84, 0xd2, //0x000020bd testb %dl, %dl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000020bf je LBB0_454 + 0x41, 0x38, 0x14, 0x3c, //0x000020c5 cmpb %dl, (%r12,%rdi) + 0x0f, 0x85, 0xb2, 0x01, 0x00, 0x00, //0x000020c9 jne LBB0_475 + 0x0f, 0xb6, 0x14, 0x3e, //0x000020cf movzbl (%rsi,%rdi), %edx + 0x48, 0xff, 0xc7, //0x000020d3 incq %rdi + 0x49, 0x39, 0xfb, //0x000020d6 cmpq %rdi, %r11 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x000020d9 jne LBB0_449 + //0x000020df LBB0_452 + 0x84, 0xd2, //0x000020df testb %dl, %dl + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x000020e1 je LBB0_454 + //0x000020e7 LBB0_453 + 0xff, 0xcb, //0x000020e7 decl %ebx + //0x000020e9 LBB0_454 + 0x85, 0xc0, //0x000020e9 testl %eax, %eax + 0x0f, 0x8e, 0xbb, 0x00, 0x00, 0x00, //0x000020eb jle LBB0_463 + 0x4c, 0x89, 0x7d, 0xc8, //0x000020f1 movq %r15, $-56(%rbp) + 0x89, 0x5d, 0xc0, //0x000020f5 movl %ebx, $-64(%rbp) + 0x01, 0xd8, //0x000020f8 addl %ebx, %eax + 0x48, 0x98, //0x000020fa cltq + 0x48, 0x89, 0xc6, //0x000020fc movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x000020ff shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x00002103 decq %rax + 0x49, 0xff, 0xc3, //0x00002106 incq %r11 + 0x31, 0xff, //0x00002109 xorl %edi, %edi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000210b jmp LBB0_458 + //0x00002110 LBB0_456 + 0x48, 0x85, 0xc0, //0x00002110 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002113 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002118 cmovnel %eax, %r14d + //0x0000211c LBB0_457 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000211c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x00002126 addq %rax, %rsi + 0x49, 0x8d, 0x47, 0xff, //0x00002129 leaq $-1(%r15), %rax + 0x49, 0xff, 0xcb, //0x0000212d decq %r11 + 0x49, 0x83, 0xfb, 0x01, //0x00002130 cmpq $1, %r11 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00002134 jle LBB0_460 + //0x0000213a LBB0_458 + 0x49, 0x89, 0xc7, //0x0000213a movq %rax, %r15 + 0x4b, 0x0f, 0xbe, 0x5c, 0x1c, 0xfe, //0x0000213d movsbq $-2(%r12,%r11), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00002143 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00002147 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x0000214a addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x0000214d movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002150 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000215a mulq %rdx + 0x48, 0x89, 0xd7, //0x0000215d movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x00002160 shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x00002164 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002168 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x0000216c movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x0000216f subq %rdx, %rax + 0x4d, 0x39, 0xef, //0x00002172 cmpq %r13, %r15 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00002175 jae LBB0_456 + 0x04, 0x30, //0x0000217b addb $48, %al + 0x43, 0x88, 0x04, 0x3c, //0x0000217d movb %al, (%r12,%r15) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00002181 jmp LBB0_457 + //0x00002186 LBB0_460 + 0x48, 0x83, 0xfb, 0x0a, //0x00002186 cmpq $10, %rbx + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000218a movl $1, %r11d + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x00002190 jae LBB0_464 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00002196 movq $-56(%rbp), %r15 + 0x8b, 0x5d, 0xc0, //0x0000219a movl $-64(%rbp), %ebx + 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x0000219d jmp LBB0_468 + //0x000021a2 LBB0_462 + 0x45, 0x31, 0xc0, //0x000021a2 xorl %r8d, %r8d + 0x31, 0xdb, //0x000021a5 xorl %ebx, %ebx + 0xe9, 0x90, 0xf9, 0xff, 0xff, //0x000021a7 jmp LBB0_365 + //0x000021ac LBB0_463 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000021ac movl $1, %r11d + 0xe9, 0x6a, 0x00, 0x00, 0x00, //0x000021b2 jmp LBB0_468 + //0x000021b7 LBB0_464 + 0x49, 0x63, 0xcf, //0x000021b7 movslq %r15d, %rcx + 0x48, 0xff, 0xc9, //0x000021ba decq %rcx + 0x4c, 0x8b, 0x7d, 0xc8, //0x000021bd movq $-56(%rbp), %r15 + 0x8b, 0x5d, 0xc0, //0x000021c1 movl $-64(%rbp), %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000021c4 jmp LBB0_466 + //0x000021c9 LBB0_465 + 0x48, 0x85, 0xc0, //0x000021c9 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x000021cc cmovnel %r11d, %r14d + 0x48, 0xff, 0xc9, //0x000021d0 decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000021d3 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000021d7 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000021da jbe LBB0_468 + //0x000021e0 LBB0_466 + 0x48, 0x89, 0xf8, //0x000021e0 movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000021e3 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000021ed mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000021f0 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000021f4 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x000021f8 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x000021fc movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x000021ff subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x00002202 cmpq %r13, %rcx + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00002205 jae LBB0_465 + 0x04, 0x30, //0x0000220b addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x0000220d movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x00002211 decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00002214 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00002218 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x0000221b ja LBB0_466 + //0x00002221 LBB0_468 + 0x41, 0x01, 0xd8, //0x00002221 addl %ebx, %r8d + 0x4d, 0x63, 0xc0, //0x00002224 movslq %r8d, %r8 + 0x4d, 0x39, 0xc5, //0x00002227 cmpq %r8, %r13 + 0x45, 0x0f, 0x46, 0xc5, //0x0000222a cmovbel %r13d, %r8d + 0x41, 0x01, 0xdf, //0x0000222e addl %ebx, %r15d + 0x45, 0x85, 0xc0, //0x00002231 testl %r8d, %r8d + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002234 jle LBB0_477 + 0x44, 0x89, 0xc0, //0x0000223a movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000223d cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00002243 jne LBB0_478 + //0x00002249 LBB0_470 + 0x48, 0x83, 0xf8, 0x01, //0x00002249 cmpq $1, %rax + 0x0f, 0x8e, 0x39, 0x00, 0x00, 0x00, //0x0000224d jle LBB0_476 + 0x4c, 0x8d, 0x40, 0xff, //0x00002253 leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002257 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x0000225d movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002260 je LBB0_470 + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002266 jmp LBB0_478 + //0x0000226b LBB0_472 + 0xff, 0xc8, //0x0000226b decl %eax + 0x41, 0x89, 0xc0, //0x0000226d movl %eax, %r8d + //0x00002270 LBB0_473 + 0x45, 0x85, 0xc0, //0x00002270 testl %r8d, %r8d + 0x0f, 0x84, 0xdd, 0x0b, 0x00, 0x00, //0x00002273 je LBB0_659 + //0x00002279 LBB0_474 + 0x44, 0x89, 0xc3, //0x00002279 movl %r8d, %ebx + 0xe9, 0xbb, 0xf8, 0xff, 0xff, //0x0000227c jmp LBB0_365 + //0x00002281 LBB0_475 + 0x0f, 0x8c, 0x60, 0xfe, 0xff, 0xff, //0x00002281 jl LBB0_453 + 0xe9, 0x5d, 0xfe, 0xff, 0xff, //0x00002287 jmp LBB0_454 + //0x0000228c LBB0_476 + 0xff, 0xc8, //0x0000228c decl %eax + 0x41, 0x89, 0xc0, //0x0000228e movl %eax, %r8d + //0x00002291 LBB0_477 + 0x45, 0x85, 0xc0, //0x00002291 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x00002294 cmovel %r8d, %r15d + //0x00002298 LBB0_478 + 0x44, 0x89, 0xc0, //0x00002298 movl %r8d, %eax + 0x44, 0x89, 0xc3, //0x0000229b movl %r8d, %ebx + 0x45, 0x85, 0xc9, //0x0000229e testl %r9d, %r9d + 0x0f, 0x89, 0x95, 0xf8, 0xff, 0xff, //0x000022a1 jns LBB0_365 + 0xe9, 0xe1, 0xf8, 0xff, 0xff, //0x000022a7 jmp LBB0_371 + //0x000022ac LBB0_479 + 0x44, 0x89, 0xc3, //0x000022ac movl %r8d, %ebx + //0x000022af LBB0_480 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000022af movl $1, %r11d + 0x48, 0x8d, 0x15, 0x64, 0x43, 0x00, 0x00, //0x000022b5 leaq $17252(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000022bc jmp LBB0_483 + //0x000022c1 LBB0_481 + 0x89, 0xd8, //0x000022c1 movl %ebx, %eax + //0x000022c3 LBB0_482 + 0x48, 0x8b, 0x75, 0xb0, //0x000022c3 movq $-80(%rbp), %rsi + 0x2b, 0x75, 0xa8, //0x000022c7 subl $-88(%rbp), %esi + 0x89, 0xc3, //0x000022ca movl %eax, %ebx + //0x000022cc LBB0_483 + 0x45, 0x85, 0xff, //0x000022cc testl %r15d, %r15d + 0x0f, 0x88, 0x16, 0x00, 0x00, 0x00, //0x000022cf js LBB0_486 + 0x0f, 0x85, 0xc8, 0x07, 0x00, 0x00, //0x000022d5 jne LBB0_603 + 0x41, 0x80, 0x3c, 0x24, 0x35, //0x000022db cmpb $53, (%r12) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x000022e0 jl LBB0_487 + 0xe9, 0xb8, 0x07, 0x00, 0x00, //0x000022e6 jmp LBB0_603 + //0x000022eb LBB0_486 + 0xb8, 0x1b, 0x00, 0x00, 0x00, //0x000022eb movl $27, %eax + 0x41, 0x83, 0xff, 0xf8, //0x000022f0 cmpl $-8, %r15d + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000022f4 jl LBB0_488 + //0x000022fa LBB0_487 + 0x44, 0x89, 0xf8, //0x000022fa movl %r15d, %eax + 0xf7, 0xd8, //0x000022fd negl %eax + 0x48, 0x98, //0x000022ff cltq + 0x48, 0x8d, 0x0d, 0xe8, 0x42, 0x00, 0x00, //0x00002301 leaq $17128(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x8b, 0x04, 0x81, //0x00002308 movl (%rcx,%rax,4), %eax + //0x0000230b LBB0_488 + 0x85, 0xdb, //0x0000230b testl %ebx, %ebx + 0x48, 0x89, 0x75, 0xb0, //0x0000230d movq %rsi, $-80(%rbp) + 0x89, 0x45, 0xa8, //0x00002311 movl %eax, $-88(%rbp) + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x00002314 je LBB0_481 + 0x85, 0xc0, //0x0000231a testl %eax, %eax + 0x0f, 0x84, 0x9f, 0xff, 0xff, 0xff, //0x0000231c je LBB0_481 + 0x0f, 0x8e, 0x2f, 0x02, 0x00, 0x00, //0x00002322 jle LBB0_522 + 0x41, 0x89, 0xc1, //0x00002328 movl %eax, %r9d + 0x83, 0xf8, 0x3d, //0x0000232b cmpl $61, %eax + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x0000232e jge LBB0_495 + 0xe9, 0x35, 0x02, 0x00, 0x00, //0x00002334 jmp LBB0_524 + //0x00002339 LBB0_492 + 0x48, 0x8d, 0x15, 0xe0, 0x42, 0x00, 0x00, //0x00002339 leaq $17120(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + //0x00002340 LBB0_493 + 0x45, 0x85, 0xc0, //0x00002340 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x00002343 cmovel %r8d, %r15d + //0x00002347 LBB0_494 + 0x48, 0x8b, 0x45, 0xc0, //0x00002347 movq $-64(%rbp), %rax + 0x44, 0x8d, 0x48, 0xc4, //0x0000234b leal $-60(%rax), %r9d + 0x44, 0x89, 0xc3, //0x0000234f movl %r8d, %ebx + 0x83, 0xf8, 0x78, //0x00002352 cmpl $120, %eax + 0x0f, 0x8e, 0x04, 0x02, 0x00, 0x00, //0x00002355 jle LBB0_523 + //0x0000235b LBB0_495 + 0x4c, 0x89, 0x7d, 0xc8, //0x0000235b movq %r15, $-56(%rbp) + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000235f movl $1, %r11d + 0x4c, 0x89, 0x4d, 0xc0, //0x00002365 movq %r9, $-64(%rbp) + 0x4c, 0x63, 0xfb, //0x00002369 movslq %ebx, %r15 + 0x45, 0x85, 0xff, //0x0000236c testl %r15d, %r15d + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x0000236f je LBB0_501 + 0xb1, 0x38, //0x00002375 movb $56, %cl + 0x31, 0xc0, //0x00002377 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002379 .p2align 4, 0x90 + //0x00002380 LBB0_497 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00002380 movl $19, %r9d + 0x48, 0x83, 0xf8, 0x2a, //0x00002386 cmpq $42, %rax + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x0000238a je LBB0_502 + 0x41, 0x38, 0x0c, 0x04, //0x00002390 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xa8, 0x01, 0x00, 0x00, //0x00002394 jne LBB0_519 + 0x0f, 0xb6, 0x8c, 0x10, 0x65, 0x18, 0x00, 0x00, //0x0000239a movzbl $6245(%rax,%rdx), %ecx + 0x48, 0xff, 0xc0, //0x000023a2 incq %rax + 0x49, 0x39, 0xc7, //0x000023a5 cmpq %rax, %r15 + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x000023a8 jne LBB0_497 + 0x84, 0xc9, //0x000023ae testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000023b0 je LBB0_502 + //0x000023b6 LBB0_501 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x000023b6 movl $18, %r9d + //0x000023bc LBB0_502 + 0x85, 0xdb, //0x000023bc testl %ebx, %ebx + 0x0f, 0x8e, 0xa3, 0x00, 0x00, 0x00, //0x000023be jle LBB0_510 + 0x44, 0x01, 0xcb, //0x000023c4 addl %r9d, %ebx + 0x48, 0x63, 0xc3, //0x000023c7 movslq %ebx, %rax + 0x48, 0x89, 0xc3, //0x000023ca movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x000023cd shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x000023d1 decq %rax + 0x49, 0xff, 0xc7, //0x000023d4 incq %r15 + 0x31, 0xc9, //0x000023d7 xorl %ecx, %ecx + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x000023d9 jmp LBB0_506 + 0x90, 0x90, //0x000023de .p2align 4, 0x90 + //0x000023e0 LBB0_504 + 0x48, 0x85, 0xc0, //0x000023e0 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x000023e3 cmovnel %r11d, %r14d + //0x000023e7 LBB0_505 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000023e7 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x000023f1 addq %rax, %rbx + 0x48, 0x8d, 0x47, 0xff, //0x000023f4 leaq $-1(%rdi), %rax + 0x49, 0xff, 0xcf, //0x000023f8 decq %r15 + 0x49, 0x83, 0xff, 0x01, //0x000023fb cmpq $1, %r15 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x000023ff jle LBB0_508 + //0x00002405 LBB0_506 + 0x48, 0x89, 0xc7, //0x00002405 movq %rax, %rdi + 0x43, 0x0f, 0xb6, 0x74, 0x3c, 0xfe, //0x00002408 movzbl $-2(%r12,%r15), %esi + 0x48, 0xc1, 0xe6, 0x3c, //0x0000240e shlq $60, %rsi + 0x48, 0x01, 0xce, //0x00002412 addq %rcx, %rsi + 0x48, 0x89, 0xf0, //0x00002415 movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002418 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00002422 mulq %rcx + 0x48, 0x89, 0xd1, //0x00002425 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00002428 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x0000242c leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002430 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00002434 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x00002437 subq %rdx, %rax + 0x4c, 0x39, 0xef, //0x0000243a cmpq %r13, %rdi + 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x0000243d jae LBB0_504 + 0x04, 0x30, //0x00002443 addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00002445 movb %al, (%r12,%rdi) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00002449 jmp LBB0_505 + //0x0000244e LBB0_508 + 0x48, 0x83, 0xfe, 0x0a, //0x0000244e cmpq $10, %rsi + 0x4c, 0x8b, 0x7d, 0xc8, //0x00002452 movq $-56(%rbp), %r15 + 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x00002456 jae LBB0_511 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000245c movl $1, %r11d + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x00002462 jmp LBB0_515 + //0x00002467 LBB0_510 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00002467 movq $-56(%rbp), %r15 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000246b movl $1, %r11d + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00002471 jmp LBB0_515 + //0x00002476 LBB0_511 + 0x48, 0x63, 0xf7, //0x00002476 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x00002479 decq %rsi + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000247c movl $1, %r11d + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00002482 jmp LBB0_513 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002487 .p2align 4, 0x90 + //0x00002490 LBB0_512 + 0x48, 0x85, 0xc0, //0x00002490 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x00002493 cmovnel %r11d, %r14d + 0x48, 0xff, 0xce, //0x00002497 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x0000249a cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x0000249e movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000024a1 jbe LBB0_515 + //0x000024a7 LBB0_513 + 0x48, 0x89, 0xc8, //0x000024a7 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000024aa movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000024b4 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000024b7 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000024bb leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x000024bf leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x000024c3 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x000024c6 subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x000024c9 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x000024cc jae LBB0_512 + 0x04, 0x30, //0x000024d2 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x000024d4 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x000024d8 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000024db cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000024df movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000024e2 ja LBB0_513 + //0x000024e8 LBB0_515 + 0x45, 0x01, 0xc8, //0x000024e8 addl %r9d, %r8d + 0x4d, 0x63, 0xc0, //0x000024eb movslq %r8d, %r8 + 0x4d, 0x39, 0xc5, //0x000024ee cmpq %r8, %r13 + 0x45, 0x0f, 0x46, 0xc5, //0x000024f1 cmovbel %r13d, %r8d + 0x45, 0x01, 0xcf, //0x000024f5 addl %r9d, %r15d + 0x45, 0x85, 0xc0, //0x000024f8 testl %r8d, %r8d + 0x0f, 0x8e, 0x38, 0xfe, 0xff, 0xff, //0x000024fb jle LBB0_492 + 0x44, 0x89, 0xc0, //0x00002501 movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002504 cmpb $48, $-1(%rax,%r12) + 0x48, 0x8d, 0x15, 0x0f, 0x41, 0x00, 0x00, //0x0000250a leaq $16655(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0x30, 0xfe, 0xff, 0xff, //0x00002511 jne LBB0_494 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002517 .p2align 4, 0x90 + //0x00002520 LBB0_517 + 0x48, 0x83, 0xf8, 0x01, //0x00002520 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00002524 jle LBB0_520 + 0x4c, 0x8d, 0x40, 0xff, //0x0000252a leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x0000252e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x00002534 movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002537 je LBB0_517 + 0xe9, 0x05, 0xfe, 0xff, 0xff, //0x0000253d jmp LBB0_494 + //0x00002542 LBB0_519 + 0x0f, 0x8c, 0x6e, 0xfe, 0xff, 0xff, //0x00002542 jl LBB0_501 + 0xe9, 0x6f, 0xfe, 0xff, 0xff, //0x00002548 jmp LBB0_502 + //0x0000254d LBB0_520 + 0xff, 0xc8, //0x0000254d decl %eax + 0x41, 0x89, 0xc0, //0x0000254f movl %eax, %r8d + 0xe9, 0xe9, 0xfd, 0xff, 0xff, //0x00002552 jmp LBB0_493 + //0x00002557 LBB0_522 + 0x41, 0x89, 0xc1, //0x00002557 movl %eax, %r9d + 0xe9, 0x0e, 0x02, 0x00, 0x00, //0x0000255a jmp LBB0_553 + //0x0000255f LBB0_523 + 0x44, 0x89, 0xc3, //0x0000255f movl %r8d, %ebx + 0x44, 0x89, 0xc0, //0x00002562 movl %r8d, %eax + 0x45, 0x85, 0xc9, //0x00002565 testl %r9d, %r9d + 0x0f, 0x84, 0x55, 0xfd, 0xff, 0xff, //0x00002568 je LBB0_482 + //0x0000256e LBB0_524 + 0x44, 0x89, 0xc9, //0x0000256e movl %r9d, %ecx + 0x48, 0x89, 0xd6, //0x00002571 movq %rdx, %rsi + 0x48, 0x6b, 0xd1, 0x68, //0x00002574 imulq $104, %rcx, %rdx + 0x8b, 0x3c, 0x32, //0x00002578 movl (%rdx,%rsi), %edi + 0x4c, 0x63, 0xdb, //0x0000257b movslq %ebx, %r11 + 0x8a, 0x44, 0x32, 0x04, //0x0000257e movb $4(%rdx,%rsi), %al + 0x45, 0x85, 0xdb, //0x00002582 testl %r11d, %r11d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00002585 je LBB0_529 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x0000258b leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00002590 xorl %esi, %esi + //0x00002592 LBB0_526 + 0x84, 0xc0, //0x00002592 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00002594 je LBB0_531 + 0x41, 0x38, 0x04, 0x34, //0x0000259a cmpb %al, (%r12,%rsi) + 0x0f, 0x85, 0xa3, 0x01, 0x00, 0x00, //0x0000259e jne LBB0_549 + 0x0f, 0xb6, 0x04, 0x32, //0x000025a4 movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x000025a8 incq %rsi + 0x49, 0x39, 0xf3, //0x000025ab cmpq %rsi, %r11 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x000025ae jne LBB0_526 + //0x000025b4 LBB0_529 + 0x84, 0xc0, //0x000025b4 testb %al, %al + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x000025b6 je LBB0_531 + //0x000025bc LBB0_530 + 0xff, 0xcf, //0x000025bc decl %edi + //0x000025be LBB0_531 + 0x85, 0xdb, //0x000025be testl %ebx, %ebx + 0x89, 0x7d, 0xc0, //0x000025c0 movl %edi, $-64(%rbp) + 0x0f, 0x8e, 0xac, 0x00, 0x00, 0x00, //0x000025c3 jle LBB0_539 + 0x4c, 0x89, 0x7d, 0xc8, //0x000025c9 movq %r15, $-56(%rbp) + 0x01, 0xfb, //0x000025cd addl %edi, %ebx + 0x48, 0x63, 0xc3, //0x000025cf movslq %ebx, %rax + 0x48, 0x89, 0xc6, //0x000025d2 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x000025d5 shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x000025d9 decq %rax + 0x49, 0xff, 0xc3, //0x000025dc incq %r11 + 0x31, 0xff, //0x000025df xorl %edi, %edi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000025e1 jmp LBB0_535 + //0x000025e6 LBB0_533 + 0x48, 0x85, 0xc0, //0x000025e6 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000025e9 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000025ee cmovnel %eax, %r14d + //0x000025f2 LBB0_534 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000025f2 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x000025fc addq %rax, %rsi + 0x49, 0x8d, 0x47, 0xff, //0x000025ff leaq $-1(%r15), %rax + 0x49, 0xff, 0xcb, //0x00002603 decq %r11 + 0x49, 0x83, 0xfb, 0x01, //0x00002606 cmpq $1, %r11 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x0000260a jle LBB0_537 + //0x00002610 LBB0_535 + 0x49, 0x89, 0xc7, //0x00002610 movq %rax, %r15 + 0x4b, 0x0f, 0xbe, 0x5c, 0x1c, 0xfe, //0x00002613 movsbq $-2(%r12,%r11), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00002619 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x0000261d shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x00002620 addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x00002623 movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002626 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002630 mulq %rdx + 0x48, 0x89, 0xd7, //0x00002633 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x00002636 shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x0000263a leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000263e leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00002642 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002645 subq %rdx, %rax + 0x4d, 0x39, 0xef, //0x00002648 cmpq %r13, %r15 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x0000264b jae LBB0_533 + 0x04, 0x30, //0x00002651 addb $48, %al + 0x43, 0x88, 0x04, 0x3c, //0x00002653 movb %al, (%r12,%r15) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00002657 jmp LBB0_534 + //0x0000265c LBB0_537 + 0x48, 0x83, 0xfb, 0x0a, //0x0000265c cmpq $10, %rbx + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002660 movl $1, %r11d + 0x0f, 0x83, 0x14, 0x00, 0x00, 0x00, //0x00002666 jae LBB0_540 + 0x4c, 0x8b, 0x7d, 0xc8, //0x0000266c movq $-56(%rbp), %r15 + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00002670 jmp LBB0_544 + //0x00002675 LBB0_539 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002675 movl $1, %r11d + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000267b jmp LBB0_544 + //0x00002680 LBB0_540 + 0x49, 0x63, 0xcf, //0x00002680 movslq %r15d, %rcx + 0x48, 0xff, 0xc9, //0x00002683 decq %rcx + 0x4c, 0x8b, 0x7d, 0xc8, //0x00002686 movq $-56(%rbp), %r15 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000268a jmp LBB0_542 + //0x0000268f LBB0_541 + 0x48, 0x85, 0xc0, //0x0000268f testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf3, //0x00002692 cmovnel %r11d, %r14d + 0x48, 0xff, 0xc9, //0x00002696 decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00002699 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x0000269d movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000026a0 jbe LBB0_544 + //0x000026a6 LBB0_542 + 0x48, 0x89, 0xf8, //0x000026a6 movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000026a9 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000026b3 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x000026b6 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x000026ba leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x000026be leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x000026c2 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x000026c5 subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x000026c8 cmpq %r13, %rcx + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x000026cb jae LBB0_541 + 0x04, 0x30, //0x000026d1 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x000026d3 movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x000026d7 decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000026da cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000026de movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000026e1 ja LBB0_542 + //0x000026e7 LBB0_544 + 0x8b, 0x45, 0xc0, //0x000026e7 movl $-64(%rbp), %eax + 0x41, 0x01, 0xc0, //0x000026ea addl %eax, %r8d + 0x4d, 0x63, 0xc0, //0x000026ed movslq %r8d, %r8 + 0x4d, 0x39, 0xc5, //0x000026f0 cmpq %r8, %r13 + 0x45, 0x0f, 0x46, 0xc5, //0x000026f3 cmovbel %r13d, %r8d + 0x41, 0x01, 0xc7, //0x000026f7 addl %eax, %r15d + 0x45, 0x85, 0xc0, //0x000026fa testl %r8d, %r8d + 0x0f, 0x8e, 0x38, 0x00, 0x00, 0x00, //0x000026fd jle LBB0_548 + 0x44, 0x89, 0xc0, //0x00002703 movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002706 cmpb $48, $-1(%rax,%r12) + 0x48, 0x8d, 0x15, 0x0d, 0x3f, 0x00, 0x00, //0x0000270c leaq $16141(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x00002713 jne LBB0_552 + //0x00002719 LBB0_546 + 0x48, 0x83, 0xf8, 0x01, //0x00002719 cmpq $1, %rax + 0x0f, 0x8e, 0x2f, 0x00, 0x00, 0x00, //0x0000271d jle LBB0_550 + 0x4c, 0x8d, 0x40, 0xff, //0x00002723 leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002727 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x0000272d movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002730 je LBB0_546 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00002736 jmp LBB0_552 + //0x0000273b LBB0_548 + 0x48, 0x8d, 0x15, 0xde, 0x3e, 0x00, 0x00, //0x0000273b leaq $16094(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00002742 jmp LBB0_551 + //0x00002747 LBB0_549 + 0x0f, 0x8c, 0x6f, 0xfe, 0xff, 0xff, //0x00002747 jl LBB0_530 + 0xe9, 0x6c, 0xfe, 0xff, 0xff, //0x0000274d jmp LBB0_531 + //0x00002752 LBB0_550 + 0xff, 0xc8, //0x00002752 decl %eax + 0x41, 0x89, 0xc0, //0x00002754 movl %eax, %r8d + //0x00002757 LBB0_551 + 0x45, 0x85, 0xc0, //0x00002757 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x0000275a cmovel %r8d, %r15d + //0x0000275e LBB0_552 + 0x44, 0x89, 0xc3, //0x0000275e movl %r8d, %ebx + 0x44, 0x89, 0xc0, //0x00002761 movl %r8d, %eax + 0x45, 0x85, 0xc9, //0x00002764 testl %r9d, %r9d + 0x0f, 0x89, 0x56, 0xfb, 0xff, 0xff, //0x00002767 jns LBB0_482 + //0x0000276d LBB0_553 + 0x41, 0x83, 0xf9, 0xc3, //0x0000276d cmpl $-61, %r9d + 0x0f, 0x8e, 0x1f, 0x00, 0x00, 0x00, //0x00002771 jle LBB0_556 + 0xe9, 0xa2, 0x01, 0x00, 0x00, //0x00002777 jmp LBB0_578 + //0x0000277c LBB0_554 + 0x45, 0x31, 0xc0, //0x0000277c xorl %r8d, %r8d + 0x48, 0x8d, 0x15, 0x9a, 0x3e, 0x00, 0x00, //0x0000277f leaq $16026(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + //0x00002786 LBB0_555 + 0x44, 0x8d, 0x48, 0x3c, //0x00002786 leal $60(%rax), %r9d + 0x44, 0x89, 0xc3, //0x0000278a movl %r8d, %ebx + 0x83, 0xf8, 0x88, //0x0000278d cmpl $-120, %eax + 0x0f, 0x8d, 0x79, 0x01, 0x00, 0x00, //0x00002790 jge LBB0_577 + //0x00002796 LBB0_556 + 0x44, 0x89, 0xc8, //0x00002796 movl %r9d, %eax + 0x48, 0x63, 0xf3, //0x00002799 movslq %ebx, %rsi + 0x31, 0xd2, //0x0000279c xorl %edx, %edx + 0x31, 0xc9, //0x0000279e xorl %ecx, %ecx + //0x000027a0 .p2align 4, 0x90 + //0x000027a0 LBB0_557 + 0x48, 0x39, 0xf2, //0x000027a0 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x000027a3 jge LBB0_559 + 0x48, 0x8d, 0x0c, 0x89, //0x000027a9 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x3c, 0x14, //0x000027ad movsbq (%r12,%rdx), %rdi + 0x48, 0x8d, 0x4c, 0x4f, 0xd0, //0x000027b2 leaq $-48(%rdi,%rcx,2), %rcx + 0x48, 0xff, 0xc2, //0x000027b7 incq %rdx + 0x49, 0x8d, 0x7a, 0x01, //0x000027ba leaq $1(%r10), %rdi + 0x48, 0x39, 0xf9, //0x000027be cmpq %rdi, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x000027c1 jb LBB0_557 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000027c7 jmp LBB0_561 + //0x000027cc LBB0_559 + 0x48, 0x85, 0xc9, //0x000027cc testq %rcx, %rcx + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x000027cf je LBB0_554 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027d5 .p2align 4, 0x90 + //0x000027e0 LBB0_560 + 0x48, 0x01, 0xc9, //0x000027e0 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000027e3 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc2, //0x000027e7 incl %edx + 0x49, 0x8d, 0x72, 0x01, //0x000027e9 leaq $1(%r10), %rsi + 0x48, 0x39, 0xf1, //0x000027ed cmpq %rsi, %rcx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x000027f0 jb LBB0_560 + //0x000027f6 LBB0_561 + 0x41, 0x29, 0xd7, //0x000027f6 subl %edx, %r15d + 0x31, 0xf6, //0x000027f9 xorl %esi, %esi + 0x39, 0xda, //0x000027fb cmpl %ebx, %edx + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x000027fd jge LBB0_566 + 0x48, 0x63, 0xd2, //0x00002803 movslq %edx, %rdx + 0x49, 0x63, 0xf0, //0x00002806 movslq %r8d, %rsi + 0x49, 0x8d, 0x3c, 0x14, //0x00002809 leaq (%r12,%rdx), %rdi + 0x45, 0x31, 0xc0, //0x0000280d xorl %r8d, %r8d + //0x00002810 .p2align 4, 0x90 + //0x00002810 LBB0_563 + 0x48, 0x89, 0xcb, //0x00002810 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00002813 shrq $60, %rbx + 0x4c, 0x21, 0xd1, //0x00002817 andq %r10, %rcx + 0x80, 0xcb, 0x30, //0x0000281a orb $48, %bl + 0x43, 0x88, 0x1c, 0x04, //0x0000281d movb %bl, (%r12,%r8) + 0x48, 0x8d, 0x0c, 0x89, //0x00002821 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x1c, 0x07, //0x00002825 movsbq (%rdi,%r8), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x0000282a leaq $-48(%rbx,%rcx,2), %rcx + 0x4a, 0x8d, 0x5c, 0x02, 0x01, //0x0000282f leaq $1(%rdx,%r8), %rbx + 0x49, 0xff, 0xc0, //0x00002834 incq %r8 + 0x48, 0x39, 0xf3, //0x00002837 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x0000283a jl LBB0_563 + 0x48, 0x85, 0xc9, //0x00002840 testq %rcx, %rcx + 0x0f, 0x84, 0x60, 0x00, 0x00, 0x00, //0x00002843 je LBB0_570 + 0x44, 0x89, 0xc6, //0x00002849 movl %r8d, %esi + //0x0000284c LBB0_566 + 0x41, 0x89, 0xf0, //0x0000284c movl %esi, %r8d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x0000284f jmp LBB0_568 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002854 .p2align 4, 0x90 + //0x00002860 LBB0_567 + 0x48, 0x85, 0xd2, //0x00002860 testq %rdx, %rdx + 0x45, 0x0f, 0x45, 0xf3, //0x00002863 cmovnel %r11d, %r14d + 0x48, 0x01, 0xc9, //0x00002867 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x0000286a leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x0000286e testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00002871 je LBB0_570 + //0x00002877 LBB0_568 + 0x48, 0x89, 0xca, //0x00002877 movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x0000287a shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x0000287e andq %r10, %rcx + 0x49, 0x63, 0xf0, //0x00002881 movslq %r8d, %rsi + 0x49, 0x39, 0xf5, //0x00002884 cmpq %rsi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00002887 jbe LBB0_567 + 0x80, 0xca, 0x30, //0x0000288d orb $48, %dl + 0x41, 0x88, 0x14, 0x34, //0x00002890 movb %dl, (%r12,%rsi) + 0xff, 0xc6, //0x00002894 incl %esi + 0x41, 0x89, 0xf0, //0x00002896 movl %esi, %r8d + 0x48, 0x01, 0xc9, //0x00002899 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x0000289c leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000028a0 testq %rcx, %rcx + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x000028a3 jne LBB0_568 + //0x000028a9 LBB0_570 + 0x41, 0xff, 0xc7, //0x000028a9 incl %r15d + 0x45, 0x85, 0xc0, //0x000028ac testl %r8d, %r8d + 0x0f, 0x8e, 0x3d, 0x00, 0x00, 0x00, //0x000028af jle LBB0_574 + 0x44, 0x89, 0xc1, //0x000028b5 movl %r8d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x000028b8 cmpb $48, $-1(%rcx,%r12) + 0x48, 0x8d, 0x15, 0x5b, 0x3d, 0x00, 0x00, //0x000028be leaq $15707(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0xbb, 0xfe, 0xff, 0xff, //0x000028c5 jne LBB0_555 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000028cb .p2align 4, 0x90 + //0x000028d0 LBB0_572 + 0x48, 0x83, 0xf9, 0x01, //0x000028d0 cmpq $1, %rcx + 0x0f, 0x8e, 0x24, 0x00, 0x00, 0x00, //0x000028d4 jle LBB0_575 + 0x4c, 0x8d, 0x41, 0xff, //0x000028da leaq $-1(%rcx), %r8 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x000028de cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xc1, //0x000028e4 movq %r8, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000028e7 je LBB0_572 + 0xe9, 0x94, 0xfe, 0xff, 0xff, //0x000028ed jmp LBB0_555 + //0x000028f2 LBB0_574 + 0x48, 0x8d, 0x15, 0x27, 0x3d, 0x00, 0x00, //0x000028f2 leaq $15655(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x000028f9 jmp LBB0_576 + //0x000028fe LBB0_575 + 0xff, 0xc9, //0x000028fe decl %ecx + 0x41, 0x89, 0xc8, //0x00002900 movl %ecx, %r8d + //0x00002903 LBB0_576 + 0x45, 0x85, 0xc0, //0x00002903 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x00002906 cmovel %r8d, %r15d + 0xe9, 0x77, 0xfe, 0xff, 0xff, //0x0000290a jmp LBB0_555 + //0x0000290f LBB0_577 + 0x44, 0x89, 0xc3, //0x0000290f movl %r8d, %ebx + 0x44, 0x89, 0xc0, //0x00002912 movl %r8d, %eax + 0x45, 0x85, 0xc9, //0x00002915 testl %r9d, %r9d + 0x0f, 0x84, 0xa5, 0xf9, 0xff, 0xff, //0x00002918 je LBB0_482 + //0x0000291e LBB0_578 + 0x41, 0xf7, 0xd9, //0x0000291e negl %r9d + 0x48, 0x63, 0xf3, //0x00002921 movslq %ebx, %rsi + 0x31, 0xd2, //0x00002924 xorl %edx, %edx + 0x31, 0xc0, //0x00002926 xorl %eax, %eax + //0x00002928 LBB0_579 + 0x48, 0x39, 0xf2, //0x00002928 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x18, 0x01, 0x00, 0x00, //0x0000292b jge LBB0_595 + 0x48, 0x8d, 0x04, 0x80, //0x00002931 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x14, //0x00002935 movsbq (%r12,%rdx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x0000293a leaq $-48(%rcx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x0000293f incq %rdx + 0x48, 0x89, 0xc7, //0x00002942 movq %rax, %rdi + 0x44, 0x89, 0xc9, //0x00002945 movl %r9d, %ecx + 0x48, 0xd3, 0xef, //0x00002948 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x0000294b testq %rdi, %rdi + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x0000294e je LBB0_579 + //0x00002954 LBB0_581 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00002954 movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x0000295b movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x0000295e shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00002961 notq %rsi + 0x31, 0xff, //0x00002964 xorl %edi, %edi + 0x39, 0xda, //0x00002966 cmpl %ebx, %edx + 0x0f, 0x8d, 0x4c, 0x00, 0x00, 0x00, //0x00002968 jge LBB0_585 + 0x4c, 0x89, 0x7d, 0xc8, //0x0000296e movq %r15, $-56(%rbp) + 0x4c, 0x63, 0xda, //0x00002972 movslq %edx, %r11 + 0x4d, 0x63, 0xc0, //0x00002975 movslq %r8d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00002978 leaq (%r12,%r11), %r15 + 0x31, 0xff, //0x0000297c xorl %edi, %edi + //0x0000297e LBB0_583 + 0x48, 0x89, 0xc3, //0x0000297e movq %rax, %rbx + 0x44, 0x89, 0xc9, //0x00002981 movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00002984 shrq %cl, %rbx + 0x48, 0x21, 0xf0, //0x00002987 andq %rsi, %rax + 0x80, 0xc3, 0x30, //0x0000298a addb $48, %bl + 0x41, 0x88, 0x1c, 0x3c, //0x0000298d movb %bl, (%r12,%rdi) + 0x48, 0x8d, 0x04, 0x80, //0x00002991 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x3f, //0x00002995 movsbq (%r15,%rdi), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x0000299a leaq $-48(%rcx,%rax,2), %rax + 0x49, 0x8d, 0x4c, 0x3b, 0x01, //0x0000299f leaq $1(%r11,%rdi), %rcx + 0x48, 0xff, 0xc7, //0x000029a4 incq %rdi + 0x4c, 0x39, 0xc1, //0x000029a7 cmpq %r8, %rcx + 0x0f, 0x8c, 0xce, 0xff, 0xff, 0xff, //0x000029aa jl LBB0_583 + 0x4c, 0x8b, 0x7d, 0xc8, //0x000029b0 movq $-56(%rbp), %r15 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000029b4 movl $1, %r11d + //0x000029ba LBB0_585 + 0x41, 0x29, 0xd7, //0x000029ba subl %edx, %r15d + 0x41, 0x89, 0xf8, //0x000029bd movl %edi, %r8d + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000029c0 jmp LBB0_588 + //0x000029c5 LBB0_586 + 0x48, 0x85, 0xd2, //0x000029c5 testq %rdx, %rdx + 0x45, 0x0f, 0x45, 0xf3, //0x000029c8 cmovnel %r11d, %r14d + //0x000029cc LBB0_587 + 0x48, 0x01, 0xc0, //0x000029cc addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000029cf leaq (%rax,%rax,4), %rax + //0x000029d3 LBB0_588 + 0x48, 0x85, 0xc0, //0x000029d3 testq %rax, %rax + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000029d6 je LBB0_591 + 0x48, 0x89, 0xc2, //0x000029dc movq %rax, %rdx + 0x44, 0x89, 0xc9, //0x000029df movl %r9d, %ecx + 0x48, 0xd3, 0xea, //0x000029e2 shrq %cl, %rdx + 0x48, 0x21, 0xf0, //0x000029e5 andq %rsi, %rax + 0x49, 0x63, 0xc8, //0x000029e8 movslq %r8d, %rcx + 0x49, 0x39, 0xcd, //0x000029eb cmpq %rcx, %r13 + 0x0f, 0x86, 0xd1, 0xff, 0xff, 0xff, //0x000029ee jbe LBB0_586 + 0x80, 0xc2, 0x30, //0x000029f4 addb $48, %dl + 0x41, 0x88, 0x14, 0x0c, //0x000029f7 movb %dl, (%r12,%rcx) + 0xff, 0xc1, //0x000029fb incl %ecx + 0x41, 0x89, 0xc8, //0x000029fd movl %ecx, %r8d + 0xe9, 0xc7, 0xff, 0xff, 0xff, //0x00002a00 jmp LBB0_587 + //0x00002a05 LBB0_591 + 0x41, 0xff, 0xc7, //0x00002a05 incl %r15d + 0x45, 0x85, 0xc0, //0x00002a08 testl %r8d, %r8d + 0x0f, 0x8e, 0x61, 0x00, 0x00, 0x00, //0x00002a0b jle LBB0_598 + 0x44, 0x89, 0xc0, //0x00002a11 movl %r8d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002a14 cmpb $48, $-1(%rax,%r12) + 0x48, 0x8d, 0x15, 0xff, 0x3b, 0x00, 0x00, //0x00002a1a leaq $15359(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00002a21 jne LBB0_602 + //0x00002a27 LBB0_593 + 0x48, 0x83, 0xf8, 0x01, //0x00002a27 cmpq $1, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x00002a2b jle LBB0_600 + 0x4c, 0x8d, 0x40, 0xff, //0x00002a31 leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002a35 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x00002a3b movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002a3e je LBB0_593 + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00002a44 jmp LBB0_602 + //0x00002a49 LBB0_595 + 0x48, 0x85, 0xc0, //0x00002a49 testq %rax, %rax + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00002a4c je LBB0_599 + //0x00002a52 LBB0_596 + 0x48, 0x89, 0xc6, //0x00002a52 movq %rax, %rsi + 0x44, 0x89, 0xc9, //0x00002a55 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x00002a58 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00002a5b testq %rsi, %rsi + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x00002a5e jne LBB0_581 + 0x48, 0x01, 0xc0, //0x00002a64 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002a67 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00002a6b incl %edx + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00002a6d jmp LBB0_596 + //0x00002a72 LBB0_598 + 0x48, 0x8d, 0x15, 0xa7, 0x3b, 0x00, 0x00, //0x00002a72 leaq $15271(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00002a79 jmp LBB0_601 + //0x00002a7e LBB0_599 + 0x45, 0x31, 0xc0, //0x00002a7e xorl %r8d, %r8d + 0x31, 0xc0, //0x00002a81 xorl %eax, %eax + 0x48, 0x8d, 0x15, 0x96, 0x3b, 0x00, 0x00, //0x00002a83 leaq $15254(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x34, 0xf8, 0xff, 0xff, //0x00002a8a jmp LBB0_482 + //0x00002a8f LBB0_600 + 0xff, 0xc8, //0x00002a8f decl %eax + 0x41, 0x89, 0xc0, //0x00002a91 movl %eax, %r8d + //0x00002a94 LBB0_601 + 0x45, 0x85, 0xc0, //0x00002a94 testl %r8d, %r8d + 0x45, 0x0f, 0x44, 0xf8, //0x00002a97 cmovel %r8d, %r15d + //0x00002a9b LBB0_602 + 0x44, 0x89, 0xc0, //0x00002a9b movl %r8d, %eax + 0xe9, 0x20, 0xf8, 0xff, 0xff, //0x00002a9e jmp LBB0_482 + //0x00002aa3 LBB0_603 + 0x81, 0xfe, 0x02, 0xfc, 0xff, 0xff, //0x00002aa3 cmpl $-1022, %esi + 0x4c, 0x89, 0x7d, 0xc8, //0x00002aa9 movq %r15, $-56(%rbp) + 0x0f, 0x8f, 0x9c, 0x01, 0x00, 0x00, //0x00002aad jg LBB0_629 + 0x41, 0xbf, 0x02, 0xfc, 0xff, 0xff, //0x00002ab3 movl $-1022, %r15d + 0x85, 0xdb, //0x00002ab9 testl %ebx, %ebx + 0x0f, 0x84, 0x5b, 0x03, 0x00, 0x00, //0x00002abb je LBB0_654 + 0x8d, 0x8e, 0xfd, 0x03, 0x00, 0x00, //0x00002ac1 leal $1021(%rsi), %ecx + 0x81, 0xfe, 0xc6, 0xfb, 0xff, 0xff, //0x00002ac7 cmpl $-1082, %esi + 0x0f, 0x8f, 0xc9, 0x01, 0x00, 0x00, //0x00002acd jg LBB0_633 + 0x49, 0x8d, 0x42, 0x01, //0x00002ad3 leaq $1(%r10), %rax + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002ad7 movl $1, %r11d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002add jmp LBB0_610 + //0x00002ae2 LBB0_607 + 0xff, 0xc9, //0x00002ae2 decl %ecx + 0x41, 0x89, 0xc8, //0x00002ae4 movl %ecx, %r8d + //0x00002ae7 LBB0_608 + 0x45, 0x85, 0xc0, //0x00002ae7 testl %r8d, %r8d + 0x48, 0x8b, 0x4d, 0xc8, //0x00002aea movq $-56(%rbp), %rcx + 0x41, 0x0f, 0x44, 0xc8, //0x00002aee cmovel %r8d, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002af2 movq %rcx, $-56(%rbp) + //0x00002af6 LBB0_609 + 0x41, 0x8d, 0x49, 0x3c, //0x00002af6 leal $60(%r9), %ecx + 0x44, 0x89, 0xc3, //0x00002afa movl %r8d, %ebx + 0x41, 0x83, 0xf9, 0x88, //0x00002afd cmpl $-120, %r9d + 0x0f, 0x8d, 0x8a, 0x01, 0x00, 0x00, //0x00002b01 jge LBB0_631 + //0x00002b07 LBB0_610 + 0x41, 0x89, 0xc9, //0x00002b07 movl %ecx, %r9d + 0x48, 0x63, 0xf3, //0x00002b0a movslq %ebx, %rsi + 0x31, 0xff, //0x00002b0d xorl %edi, %edi + 0x31, 0xc9, //0x00002b0f xorl %ecx, %ecx + //0x00002b11 LBB0_611 + 0x48, 0x39, 0xf7, //0x00002b11 cmpq %rsi, %rdi + 0x0f, 0x8d, 0x1f, 0x00, 0x00, 0x00, //0x00002b14 jge LBB0_613 + 0x48, 0x8d, 0x0c, 0x89, //0x00002b1a leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x3c, //0x00002b1e movsbq (%r12,%rdi), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00002b23 leaq $-48(%rdx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x00002b28 incq %rdi + 0x48, 0x39, 0xc1, //0x00002b2b cmpq %rax, %rcx + 0x0f, 0x82, 0xdd, 0xff, 0xff, 0xff, //0x00002b2e jb LBB0_611 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00002b34 jmp LBB0_615 + //0x00002b39 LBB0_613 + 0x48, 0x85, 0xc9, //0x00002b39 testq %rcx, %rcx + 0x0f, 0x84, 0x05, 0x01, 0x00, 0x00, //0x00002b3c je LBB0_628 + //0x00002b42 LBB0_614 + 0x48, 0x01, 0xc9, //0x00002b42 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002b45 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc7, //0x00002b49 incl %edi + 0x48, 0x39, 0xc1, //0x00002b4b cmpq %rax, %rcx + 0x0f, 0x82, 0xee, 0xff, 0xff, 0xff, //0x00002b4e jb LBB0_614 + //0x00002b54 LBB0_615 + 0x48, 0x8b, 0x55, 0xc8, //0x00002b54 movq $-56(%rbp), %rdx + 0x29, 0xfa, //0x00002b58 subl %edi, %edx + 0x48, 0x89, 0x55, 0xc8, //0x00002b5a movq %rdx, $-56(%rbp) + 0x31, 0xf6, //0x00002b5e xorl %esi, %esi + 0x39, 0xdf, //0x00002b60 cmpl %ebx, %edi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00002b62 jge LBB0_620 + 0x48, 0x63, 0xff, //0x00002b68 movslq %edi, %rdi + 0x49, 0x63, 0xd8, //0x00002b6b movslq %r8d, %rbx + 0x49, 0x8d, 0x34, 0x3c, //0x00002b6e leaq (%r12,%rdi), %rsi + 0x45, 0x31, 0xc0, //0x00002b72 xorl %r8d, %r8d + //0x00002b75 LBB0_617 + 0x48, 0x89, 0xca, //0x00002b75 movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x00002b78 shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x00002b7c andq %r10, %rcx + 0x80, 0xca, 0x30, //0x00002b7f orb $48, %dl + 0x43, 0x88, 0x14, 0x04, //0x00002b82 movb %dl, (%r12,%r8) + 0x48, 0x8d, 0x0c, 0x89, //0x00002b86 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x14, 0x06, //0x00002b8a movsbq (%rsi,%r8), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00002b8f leaq $-48(%rdx,%rcx,2), %rcx + 0x4a, 0x8d, 0x54, 0x07, 0x01, //0x00002b94 leaq $1(%rdi,%r8), %rdx + 0x49, 0xff, 0xc0, //0x00002b99 incq %r8 + 0x48, 0x39, 0xda, //0x00002b9c cmpq %rbx, %rdx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00002b9f jl LBB0_617 + 0x48, 0x85, 0xc9, //0x00002ba5 testq %rcx, %rcx + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x00002ba8 je LBB0_624 + 0x44, 0x89, 0xc6, //0x00002bae movl %r8d, %esi + //0x00002bb1 LBB0_620 + 0x41, 0x89, 0xf0, //0x00002bb1 movl %esi, %r8d + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002bb4 jmp LBB0_622 + //0x00002bb9 LBB0_621 + 0x48, 0x85, 0xf6, //0x00002bb9 testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf3, //0x00002bbc cmovnel %r11d, %r14d + 0x48, 0x01, 0xc9, //0x00002bc0 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002bc3 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00002bc7 testq %rcx, %rcx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00002bca je LBB0_624 + //0x00002bd0 LBB0_622 + 0x48, 0x89, 0xce, //0x00002bd0 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x3c, //0x00002bd3 shrq $60, %rsi + 0x4c, 0x21, 0xd1, //0x00002bd7 andq %r10, %rcx + 0x49, 0x63, 0xf8, //0x00002bda movslq %r8d, %rdi + 0x49, 0x39, 0xfd, //0x00002bdd cmpq %rdi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00002be0 jbe LBB0_621 + 0x40, 0x80, 0xce, 0x30, //0x00002be6 orb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00002bea movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00002bee incl %edi + 0x41, 0x89, 0xf8, //0x00002bf0 movl %edi, %r8d + 0x48, 0x01, 0xc9, //0x00002bf3 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002bf6 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00002bfa testq %rcx, %rcx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00002bfd jne LBB0_622 + //0x00002c03 LBB0_624 + 0x48, 0x8b, 0x4d, 0xc8, //0x00002c03 movq $-56(%rbp), %rcx + 0xff, 0xc1, //0x00002c07 incl %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002c09 movq %rcx, $-56(%rbp) + 0x45, 0x85, 0xc0, //0x00002c0d testl %r8d, %r8d + 0x0f, 0x8e, 0xd1, 0xfe, 0xff, 0xff, //0x00002c10 jle LBB0_608 + 0x44, 0x89, 0xc1, //0x00002c16 movl %r8d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00002c19 cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xd1, 0xfe, 0xff, 0xff, //0x00002c1f jne LBB0_609 + //0x00002c25 LBB0_626 + 0x48, 0x83, 0xf9, 0x01, //0x00002c25 cmpq $1, %rcx + 0x0f, 0x8e, 0xb3, 0xfe, 0xff, 0xff, //0x00002c29 jle LBB0_607 + 0x4c, 0x8d, 0x41, 0xff, //0x00002c2f leaq $-1(%rcx), %r8 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00002c33 cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xc1, //0x00002c39 movq %r8, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002c3c je LBB0_626 + 0xe9, 0xaf, 0xfe, 0xff, 0xff, //0x00002c42 jmp LBB0_609 + //0x00002c47 LBB0_628 + 0x45, 0x31, 0xc0, //0x00002c47 xorl %r8d, %r8d + 0xe9, 0xa7, 0xfe, 0xff, 0xff, //0x00002c4a jmp LBB0_609 + //0x00002c4f LBB0_629 + 0x81, 0xfe, 0x00, 0x04, 0x00, 0x00, //0x00002c4f cmpl $1024, %esi + 0x0f, 0x8f, 0x2a, 0xee, 0xff, 0xff, //0x00002c55 jg LBB0_353 + 0xff, 0xce, //0x00002c5b decl %esi + 0x41, 0x89, 0xf7, //0x00002c5d movl %esi, %r15d + 0xe9, 0xa7, 0x01, 0x00, 0x00, //0x00002c60 jmp LBB0_649 + //0x00002c65 LBB0_660 + 0x48, 0xf7, 0xdb, //0x00002c65 negq %rbx + 0x48, 0x85, 0xdb, //0x00002c68 testq %rbx, %rbx + 0x0f, 0x89, 0xca, 0xe5, 0xff, 0xff, //0x00002c6b jns LBB0_246 + //0x00002c71 LBB0_248 + 0x48, 0xf7, 0xd3, //0x00002c71 notq %rbx + 0x49, 0x01, 0xd9, //0x00002c74 addq %rbx, %r9 + //0x00002c77 LBB0_249 + 0x4c, 0x8b, 0x75, 0xb8, //0x00002c77 movq $-72(%rbp), %r14 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00002c7b movq $-2, %r15 + //0x00002c82 LBB0_250 + 0x4c, 0x2b, 0x4d, 0xc8, //0x00002c82 subq $-56(%rbp), %r9 + 0x4c, 0x89, 0xcb, //0x00002c86 movq %r9, %rbx + 0x4d, 0x89, 0x3e, //0x00002c89 movq %r15, (%r14) + 0xe9, 0x9d, 0xe3, 0xff, 0xff, //0x00002c8c jmp LBB0_202 + //0x00002c91 LBB0_631 + 0x85, 0xc9, //0x00002c91 testl %ecx, %ecx + 0x0f, 0x84, 0x6a, 0x01, 0x00, 0x00, //0x00002c93 je LBB0_648 + 0x44, 0x89, 0xc3, //0x00002c99 movl %r8d, %ebx + //0x00002c9c LBB0_633 + 0xf7, 0xd9, //0x00002c9c negl %ecx + 0x48, 0x63, 0xf3, //0x00002c9e movslq %ebx, %rsi + 0x31, 0xd2, //0x00002ca1 xorl %edx, %edx + 0x31, 0xc0, //0x00002ca3 xorl %eax, %eax + //0x00002ca5 LBB0_634 + 0x48, 0x39, 0xf2, //0x00002ca5 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x25, 0x00, 0x00, 0x00, //0x00002ca8 jge LBB0_651 + 0x48, 0x8d, 0x04, 0x80, //0x00002cae leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x3c, 0x14, //0x00002cb2 movsbq (%r12,%rdx), %rdi + 0x48, 0x8d, 0x44, 0x47, 0xd0, //0x00002cb7 leaq $-48(%rdi,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00002cbc incq %rdx + 0x48, 0x89, 0xc7, //0x00002cbf movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002cc2 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00002cc5 testq %rdi, %rdi + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00002cc8 je LBB0_634 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00002cce jmp LBB0_636 + //0x00002cd3 LBB0_651 + 0x48, 0x85, 0xc0, //0x00002cd3 testq %rax, %rax + 0x0f, 0x84, 0x40, 0x01, 0x00, 0x00, //0x00002cd6 je LBB0_654 + 0x48, 0x89, 0xc6, //0x00002cdc movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00002cdf shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00002ce2 testq %rsi, %rsi + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002ce5 jne LBB0_636 + //0x00002ceb LBB0_653 + 0x48, 0x01, 0xc0, //0x00002ceb addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002cee leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00002cf2 incl %edx + 0x48, 0x89, 0xc6, //0x00002cf4 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00002cf7 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00002cfa testq %rsi, %rsi + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00002cfd je LBB0_653 + //0x00002d03 LBB0_636 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00002d03 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x00002d0a shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00002d0d notq %rsi + 0x45, 0x31, 0xc9, //0x00002d10 xorl %r9d, %r9d + 0x39, 0xda, //0x00002d13 cmpl %ebx, %edx + 0x0f, 0x8d, 0x3d, 0x00, 0x00, 0x00, //0x00002d15 jge LBB0_639 + 0x4c, 0x63, 0xd2, //0x00002d1b movslq %edx, %r10 + 0x4d, 0x63, 0xc0, //0x00002d1e movslq %r8d, %r8 + 0x4b, 0x8d, 0x1c, 0x14, //0x00002d21 leaq (%r12,%r10), %rbx + 0x45, 0x31, 0xc9, //0x00002d25 xorl %r9d, %r9d + //0x00002d28 LBB0_638 + 0x48, 0x89, 0xc7, //0x00002d28 movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002d2b shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00002d2e andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00002d31 addb $48, %dil + 0x43, 0x88, 0x3c, 0x0c, //0x00002d35 movb %dil, (%r12,%r9) + 0x48, 0x8d, 0x04, 0x80, //0x00002d39 leaq (%rax,%rax,4), %rax + 0x4a, 0x0f, 0xbe, 0x3c, 0x0b, //0x00002d3d movsbq (%rbx,%r9), %rdi + 0x48, 0x8d, 0x44, 0x47, 0xd0, //0x00002d42 leaq $-48(%rdi,%rax,2), %rax + 0x4b, 0x8d, 0x7c, 0x0a, 0x01, //0x00002d47 leaq $1(%r10,%r9), %rdi + 0x49, 0xff, 0xc1, //0x00002d4c incq %r9 + 0x4c, 0x39, 0xc7, //0x00002d4f cmpq %r8, %rdi + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00002d52 jl LBB0_638 + //0x00002d58 LBB0_639 + 0x48, 0x8b, 0x7d, 0xc8, //0x00002d58 movq $-56(%rbp), %rdi + 0x29, 0xd7, //0x00002d5c subl %edx, %edi + 0x48, 0x89, 0x7d, 0xc8, //0x00002d5e movq %rdi, $-56(%rbp) + 0x48, 0x85, 0xc0, //0x00002d62 testq %rax, %rax + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x00002d65 je LBB0_644 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00002d6b movl $1, %edx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002d70 jmp LBB0_642 + //0x00002d75 LBB0_641 + 0x48, 0x85, 0xff, //0x00002d75 testq %rdi, %rdi + 0x44, 0x0f, 0x45, 0xf2, //0x00002d78 cmovnel %edx, %r14d + 0x48, 0x01, 0xc0, //0x00002d7c addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002d7f leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00002d83 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00002d86 je LBB0_644 + //0x00002d8c LBB0_642 + 0x48, 0x89, 0xc7, //0x00002d8c movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002d8f shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00002d92 andq %rsi, %rax + 0x49, 0x63, 0xd9, //0x00002d95 movslq %r9d, %rbx + 0x49, 0x39, 0xdd, //0x00002d98 cmpq %rbx, %r13 + 0x0f, 0x86, 0xd4, 0xff, 0xff, 0xff, //0x00002d9b jbe LBB0_641 + 0x40, 0x80, 0xc7, 0x30, //0x00002da1 addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00002da5 movb %dil, (%r12,%rbx) + 0xff, 0xc3, //0x00002da9 incl %ebx + 0x41, 0x89, 0xd9, //0x00002dab movl %ebx, %r9d + 0x48, 0x01, 0xc0, //0x00002dae addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002db1 leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00002db5 testq %rax, %rax + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002db8 jne LBB0_642 + //0x00002dbe LBB0_644 + 0x48, 0x8b, 0x45, 0xc8, //0x00002dbe movq $-56(%rbp), %rax + 0xff, 0xc0, //0x00002dc2 incl %eax + 0x48, 0x89, 0x45, 0xc8, //0x00002dc4 movq %rax, $-56(%rbp) + 0x45, 0x85, 0xc9, //0x00002dc8 testl %r9d, %r9d + 0x0f, 0x8e, 0x9f, 0x00, 0x00, 0x00, //0x00002dcb jle LBB0_662 + 0x44, 0x89, 0xc8, //0x00002dd1 movl %r9d, %eax + 0x41, 0xbf, 0x02, 0xfc, 0xff, 0xff, //0x00002dd4 movl $-1022, %r15d + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002dda cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x99, 0x00, 0x00, 0x00, //0x00002de0 jne LBB0_663 + //0x00002de6 LBB0_646 + 0x48, 0x83, 0xf8, 0x01, //0x00002de6 cmpq $1, %rax + 0x0f, 0x8e, 0x7b, 0x00, 0x00, 0x00, //0x00002dea jle LBB0_661 + 0x4c, 0x8d, 0x40, 0xff, //0x00002df0 leaq $-1(%rax), %r8 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002df4 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xc0, //0x00002dfa movq %r8, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002dfd je LBB0_646 + //0x00002e03 LBB0_648 + 0x41, 0xbf, 0x02, 0xfc, 0xff, 0xff, //0x00002e03 movl $-1022, %r15d + 0x44, 0x89, 0xc3, //0x00002e09 movl %r8d, %ebx + //0x00002e0c LBB0_649 + 0x85, 0xdb, //0x00002e0c testl %ebx, %ebx + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x00002e0e je LBB0_654 + 0x45, 0x89, 0xc1, //0x00002e14 movl %r8d, %r9d + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x00002e17 jmp LBB0_664 + //0x00002e1c LBB0_654 + 0x31, 0xc0, //0x00002e1c xorl %eax, %eax + 0xe9, 0x0e, 0x02, 0x00, 0x00, //0x00002e1e jmp LBB0_688 + //0x00002e23 LBB0_655 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002e23 movq $-1, %r15 + 0xe9, 0x53, 0xfe, 0xff, 0xff, //0x00002e2a jmp LBB0_250 + //0x00002e2f LBB0_656 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002e2f movq $-1, %r8 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00002e36 movq $-1, %r14 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00002e3d movq $-1, %r10 + 0x4d, 0x89, 0xcd, //0x00002e44 movq %r9, %r13 + 0x49, 0x83, 0xfb, 0x10, //0x00002e47 cmpq $16, %r11 + 0x0f, 0x83, 0x3f, 0xd8, 0xff, 0xff, //0x00002e4b jae LBB0_67 + 0xe9, 0xb0, 0xd9, 0xff, 0xff, //0x00002e51 jmp LBB0_85 + //0x00002e56 LBB0_659 + 0x8b, 0x45, 0xa8, //0x00002e56 movl $-88(%rbp), %eax + 0x03, 0x45, 0xb0, //0x00002e59 addl $-80(%rbp), %eax + 0x45, 0x31, 0xff, //0x00002e5c xorl %r15d, %r15d + 0x45, 0x31, 0xc0, //0x00002e5f xorl %r8d, %r8d + 0x31, 0xdb, //0x00002e62 xorl %ebx, %ebx + 0x89, 0xc6, //0x00002e64 movl %eax, %esi + 0xe9, 0x44, 0xf4, 0xff, 0xff, //0x00002e66 jmp LBB0_480 + //0x00002e6b LBB0_661 + 0xff, 0xc8, //0x00002e6b decl %eax + 0x41, 0x89, 0xc1, //0x00002e6d movl %eax, %r9d + //0x00002e70 LBB0_662 + 0x41, 0xbf, 0x02, 0xfc, 0xff, 0xff, //0x00002e70 movl $-1022, %r15d + 0x45, 0x85, 0xc9, //0x00002e76 testl %r9d, %r9d + 0x0f, 0x84, 0x7b, 0x02, 0x00, 0x00, //0x00002e79 je LBB0_699 + //0x00002e7f LBB0_663 + 0x44, 0x89, 0xcb, //0x00002e7f movl %r9d, %ebx + //0x00002e82 LBB0_664 + 0x48, 0x8d, 0x15, 0x97, 0x37, 0x00, 0x00, //0x00002e82 leaq $14231(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x4c, 0x63, 0xd3, //0x00002e89 movslq %ebx, %r10 + 0xb1, 0x31, //0x00002e8c movb $49, %cl + 0x31, 0xc0, //0x00002e8e xorl %eax, %eax + 0x41, 0xb8, 0x10, 0x00, 0x00, 0x00, //0x00002e90 movl $16, %r8d + //0x00002e96 LBB0_665 + 0x48, 0x83, 0xf8, 0x26, //0x00002e96 cmpq $38, %rax + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00002e9a je LBB0_670 + 0x41, 0x38, 0x0c, 0x04, //0x00002ea0 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0x70, 0x01, 0x00, 0x00, //0x00002ea4 jne LBB0_685 + 0x0f, 0xb6, 0x8c, 0x10, 0x8d, 0x15, 0x00, 0x00, //0x00002eaa movzbl $5517(%rax,%rdx), %ecx + 0x48, 0xff, 0xc0, //0x00002eb2 incq %rax + 0x49, 0x39, 0xc2, //0x00002eb5 cmpq %rax, %r10 + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00002eb8 jne LBB0_665 + 0x84, 0xc9, //0x00002ebe testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002ec0 je LBB0_670 + //0x00002ec6 LBB0_669 + 0x41, 0xb8, 0x0f, 0x00, 0x00, 0x00, //0x00002ec6 movl $15, %r8d + //0x00002ecc LBB0_670 + 0x85, 0xdb, //0x00002ecc testl %ebx, %ebx + 0x0f, 0x8e, 0xf6, 0x00, 0x00, 0x00, //0x00002ece jle LBB0_681 + 0x44, 0x01, 0xc3, //0x00002ed4 addl %r8d, %ebx + 0x48, 0x63, 0xfb, //0x00002ed7 movslq %ebx, %rdi + 0x48, 0xff, 0xcf, //0x00002eda decq %rdi + 0x49, 0xff, 0xc2, //0x00002edd incq %r10 + 0x31, 0xc9, //0x00002ee0 xorl %ecx, %ecx + 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00002ee2 movabsq $-432345564227567616, %r11 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00002eec jmp LBB0_674 + //0x00002ef1 LBB0_672 + 0x48, 0x85, 0xc0, //0x00002ef1 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002ef4 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002ef9 cmovnel %eax, %r14d + //0x00002efd LBB0_673 + 0xff, 0xcb, //0x00002efd decl %ebx + 0x48, 0xff, 0xcf, //0x00002eff decq %rdi + 0x49, 0xff, 0xca, //0x00002f02 decq %r10 + 0x49, 0x83, 0xfa, 0x01, //0x00002f05 cmpq $1, %r10 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002f09 jle LBB0_676 + //0x00002f0f LBB0_674 + 0x4b, 0x0f, 0xbe, 0x74, 0x14, 0xfe, //0x00002f0f movsbq $-2(%r12,%r10), %rsi + 0x48, 0xc1, 0xe6, 0x35, //0x00002f15 shlq $53, %rsi + 0x48, 0x01, 0xce, //0x00002f19 addq %rcx, %rsi + 0x4c, 0x01, 0xde, //0x00002f1c addq %r11, %rsi + 0x48, 0x89, 0xf0, //0x00002f1f movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002f22 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00002f2c mulq %rcx + 0x48, 0x89, 0xd1, //0x00002f2f movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00002f32 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00002f36 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002f3a leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00002f3e movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x00002f41 subq %rdx, %rax + 0x4c, 0x39, 0xef, //0x00002f44 cmpq %r13, %rdi + 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x00002f47 jae LBB0_672 + 0x04, 0x30, //0x00002f4d addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00002f4f movb %al, (%r12,%rdi) + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00002f53 jmp LBB0_673 + //0x00002f58 LBB0_676 + 0x48, 0x83, 0xfe, 0x0a, //0x00002f58 cmpq $10, %rsi + 0x0f, 0x82, 0x68, 0x00, 0x00, 0x00, //0x00002f5c jb LBB0_681 + 0x48, 0x63, 0xf3, //0x00002f62 movslq %ebx, %rsi + 0x48, 0xff, 0xce, //0x00002f65 decq %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00002f68 movl $1, %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002f6d jmp LBB0_679 + //0x00002f72 LBB0_678 + 0x48, 0x85, 0xc0, //0x00002f72 testq %rax, %rax + 0x44, 0x0f, 0x45, 0xf7, //0x00002f75 cmovnel %edi, %r14d + 0x48, 0xff, 0xce, //0x00002f79 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002f7c cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002f80 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00002f83 jbe LBB0_681 + //0x00002f89 LBB0_679 + 0x48, 0x89, 0xc8, //0x00002f89 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002f8c movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002f96 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00002f99 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00002f9d leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00002fa1 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00002fa5 movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00002fa8 subq %rbx, %rax + 0x4c, 0x39, 0xee, //0x00002fab cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00002fae jae LBB0_678 + 0x04, 0x30, //0x00002fb4 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002fb6 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00002fba decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002fbd cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002fc1 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002fc4 ja LBB0_679 + //0x00002fca LBB0_681 + 0x45, 0x01, 0xc1, //0x00002fca addl %r8d, %r9d + 0x49, 0x63, 0xc1, //0x00002fcd movslq %r9d, %rax + 0x49, 0x39, 0xc5, //0x00002fd0 cmpq %rax, %r13 + 0x41, 0x0f, 0x46, 0xc5, //0x00002fd3 cmovbel %r13d, %eax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002fd7 movq $-56(%rbp), %rcx + 0x44, 0x01, 0xc1, //0x00002fdb addl %r8d, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002fde movq %rcx, $-56(%rbp) + 0x85, 0xc0, //0x00002fe2 testl %eax, %eax + 0x0f, 0x8e, 0x3f, 0x00, 0x00, 0x00, //0x00002fe4 jle LBB0_687 + 0x89, 0xc1, //0x00002fea movl %eax, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00002fec cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00002ff2 jne LBB0_688 + //0x00002ff8 LBB0_683 + 0x48, 0x83, 0xf9, 0x01, //0x00002ff8 cmpq $1, %rcx + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00002ffc jle LBB0_686 + 0x48, 0x8d, 0x41, 0xff, //0x00003002 leaq $-1(%rcx), %rax + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00003006 cmpb $48, $-2(%r12,%rcx) + 0x48, 0x89, 0xc1, //0x0000300c movq %rax, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000300f je LBB0_683 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00003015 jmp LBB0_688 + //0x0000301a LBB0_685 + 0x0f, 0x8c, 0xa6, 0xfe, 0xff, 0xff, //0x0000301a jl LBB0_669 + 0xe9, 0xa7, 0xfe, 0xff, 0xff, //0x00003020 jmp LBB0_670 + //0x00003025 LBB0_686 + 0xff, 0xc9, //0x00003025 decl %ecx + 0x89, 0xc8, //0x00003027 movl %ecx, %eax + //0x00003029 LBB0_687 + 0x85, 0xc0, //0x00003029 testl %eax, %eax + 0x0f, 0x84, 0xc9, 0x00, 0x00, 0x00, //0x0000302b je LBB0_699 + //0x00003031 LBB0_688 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00003031 movabsq $4503599627370495, %rcx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000303b movq $-1, %rsi + 0x48, 0x8b, 0x55, 0xc8, //0x00003042 movq $-56(%rbp), %rdx + 0x83, 0xfa, 0x14, //0x00003046 cmpl $20, %edx + 0x0f, 0x8f, 0x24, 0x03, 0x00, 0x00, //0x00003049 jg LBB0_720 + 0x89, 0xd1, //0x0000304f movl %edx, %ecx + 0x85, 0xd2, //0x00003051 testl %edx, %edx + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00003053 jle LBB0_694 + 0x48, 0x63, 0xf8, //0x00003059 movslq %eax, %rdi + 0x31, 0xf6, //0x0000305c xorl %esi, %esi + 0x31, 0xd2, //0x0000305e xorl %edx, %edx + //0x00003060 LBB0_691 + 0x48, 0x39, 0xfe, //0x00003060 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x1a, 0x00, 0x00, 0x00, //0x00003063 jge LBB0_693 + 0x48, 0x8d, 0x14, 0x92, //0x00003069 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x0000306d movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00003072 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00003077 incq %rsi + 0x48, 0x39, 0xf1, //0x0000307a cmpq %rsi, %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000307d jne LBB0_691 + //0x00003083 LBB0_693 + 0x45, 0x31, 0xc0, //0x00003083 xorl %r8d, %r8d + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00003086 jmp LBB0_695 + //0x0000308b LBB0_694 + 0x31, 0xf6, //0x0000308b xorl %esi, %esi + 0x41, 0xb0, 0x01, //0x0000308d movb $1, %r8b + 0x31, 0xd2, //0x00003090 xorl %edx, %edx + //0x00003092 LBB0_695 + 0x48, 0x8b, 0x7d, 0xc8, //0x00003092 movq $-56(%rbp), %rdi + 0x41, 0x89, 0xfa, //0x00003096 movl %edi, %r10d + 0x41, 0x29, 0xf2, //0x00003099 subl %esi, %r10d + 0x0f, 0x8e, 0x33, 0x02, 0x00, 0x00, //0x0000309c jle LBB0_709 + 0x41, 0x83, 0xfa, 0x10, //0x000030a2 cmpl $16, %r10d + 0x0f, 0x82, 0x14, 0x02, 0x00, 0x00, //0x000030a6 jb LBB0_707 + 0x45, 0x89, 0xd1, //0x000030ac movl %r10d, %r9d + 0xc5, 0xfa, 0x6f, 0x05, 0x89, 0xd0, 0xff, 0xff, //0x000030af vmovdqu $-12151(%rip), %xmm0 /* LCPI0_21+0(%rip) */ + 0xc4, 0xe3, 0xf9, 0x22, 0xc2, 0x00, //0x000030b7 vpinsrq $0, %rdx, %xmm0, %xmm0 + 0x41, 0x83, 0xe1, 0xf0, //0x000030bd andl $-16, %r9d + 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0x75, 0xd0, 0xff, 0xff, 0xf0, //0x000030c1 vpblendd $240, $-12171(%rip), %ymm0, %ymm0 /* LCPI0_21+0(%rip) */ + 0x41, 0x8d, 0x51, 0xf0, //0x000030cb leal $-16(%r9), %edx + 0x89, 0xd7, //0x000030cf movl %edx, %edi + 0xc1, 0xef, 0x04, //0x000030d1 shrl $4, %edi + 0xff, 0xc7, //0x000030d4 incl %edi + 0x89, 0xfb, //0x000030d6 movl %edi, %ebx + 0x83, 0xe3, 0x03, //0x000030d8 andl $3, %ebx + 0x83, 0xfa, 0x30, //0x000030db cmpl $48, %edx + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000030de jae LBB0_700 + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x13, 0xd1, 0xff, 0xff, //0x000030e4 vpbroadcastq $-12013(%rip), %ymm2 /* LCPI0_22+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000030ed vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x000030f1 vmovdqa %ymm2, %ymm1 + 0xe9, 0x88, 0x00, 0x00, 0x00, //0x000030f5 jmp LBB0_702 + //0x000030fa LBB0_699 + 0x31, 0xd2, //0x000030fa xorl %edx, %edx + 0x31, 0xf6, //0x000030fc xorl %esi, %esi + 0xe9, 0x29, 0x02, 0x00, 0x00, //0x000030fe jmp LBB0_716 + //0x00003103 LBB0_700 + 0x89, 0xda, //0x00003103 movl %ebx, %edx + 0x29, 0xfa, //0x00003105 subl %edi, %edx + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0xf0, 0xd0, 0xff, 0xff, //0x00003107 vpbroadcastq $-12048(%rip), %ymm2 /* LCPI0_22+0(%rip) */ + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0xef, 0xd0, 0xff, 0xff, //0x00003110 vpbroadcastq $-12049(%rip), %ymm4 /* LCPI0_23+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x00003119 vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x0000311d vmovdqa %ymm2, %ymm1 + //0x00003121 LBB0_701 + 0xc5, 0xfd, 0xf4, 0xec, //0x00003121 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003125 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x0000312a vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x0000312e vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003133 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003137 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x0000313b vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x00003140 vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003144 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003149 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x0000314d vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003151 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x00003156 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x0000315a vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x0000315f vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x00003163 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003167 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x0000316c vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x00003170 vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x00003175 vpaddq %ymm1, %ymm5, %ymm1 + 0x83, 0xc2, 0x04, //0x00003179 addl $4, %edx + 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x0000317c jne LBB0_701 + //0x00003182 LBB0_702 + 0x85, 0xdb, //0x00003182 testl %ebx, %ebx + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00003184 je LBB0_705 + 0xf7, 0xdb, //0x0000318a negl %ebx + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x7b, 0xd0, 0xff, 0xff, //0x0000318c vpbroadcastq $-12165(%rip), %ymm4 /* LCPI0_24+0(%rip) */ + //0x00003195 LBB0_704 + 0xc5, 0xfd, 0xf4, 0xec, //0x00003195 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003199 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x0000319e vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x000031a2 vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x000031a7 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x000031ab vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x000031af vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x000031b4 vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x000031b8 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x000031bd vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x000031c1 vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x000031c5 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x000031ca vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x000031ce vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x000031d3 vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x000031d7 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x000031db vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x000031e0 vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x000031e4 vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x000031e9 vpaddq %ymm1, %ymm5, %ymm1 + 0xff, 0xc3, //0x000031ed incl %ebx + 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x000031ef jne LBB0_704 + //0x000031f5 LBB0_705 + 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x000031f5 vpsrlq $32, %ymm2, %ymm4 + 0xc5, 0xdd, 0xf4, 0xe0, //0x000031fa vpmuludq %ymm0, %ymm4, %ymm4 + 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x000031fe vpsrlq $32, %ymm0, %ymm5 + 0xc5, 0xed, 0xf4, 0xed, //0x00003203 vpmuludq %ymm5, %ymm2, %ymm5 + 0xc5, 0xd5, 0xd4, 0xe4, //0x00003207 vpaddq %ymm4, %ymm5, %ymm4 + 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x0000320b vpsllq $32, %ymm4, %ymm4 + 0xc5, 0xed, 0xf4, 0xc0, //0x00003210 vpmuludq %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc4, //0x00003214 vpaddq %ymm4, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x00003218 vpsrlq $32, %ymm3, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x0000321d vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x00003221 vpsrlq $32, %ymm0, %ymm4 + 0xc5, 0xe5, 0xf4, 0xe4, //0x00003226 vpmuludq %ymm4, %ymm3, %ymm4 + 0xc5, 0xdd, 0xd4, 0xd2, //0x0000322a vpaddq %ymm2, %ymm4, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x0000322e vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xe5, 0xf4, 0xc0, //0x00003233 vpmuludq %ymm0, %ymm3, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003237 vpaddq %ymm2, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x0000323b vpsrlq $32, %ymm1, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x00003240 vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x00003244 vpsrlq $32, %ymm0, %ymm3 + 0xc5, 0xf5, 0xf4, 0xdb, //0x00003249 vpmuludq %ymm3, %ymm1, %ymm3 + 0xc5, 0xe5, 0xd4, 0xd2, //0x0000324d vpaddq %ymm2, %ymm3, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003251 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xf5, 0xf4, 0xc0, //0x00003256 vpmuludq %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x0000325a vpaddq %ymm2, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x0000325e vextracti128 $1, %ymm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003264 vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00003269 vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x0000326d vpsrlq $32, %xmm1, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00003272 vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003276 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x0000327a vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x0000327f vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00003283 vpaddq %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc8, 0x4e, //0x00003287 vpshufd $78, %xmm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x0000328c vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00003291 vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd8, 0x0c, //0x00003295 vpsrldq $12, %xmm0, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x0000329a vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x0000329e vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x000032a2 vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x000032a7 vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x000032ab vpaddq %xmm2, %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x000032af vmovq %xmm0, %rdx + 0x45, 0x39, 0xca, //0x000032b4 cmpl %r9d, %r10d + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000032b7 je LBB0_709 + 0x44, 0x01, 0xce, //0x000032bd addl %r9d, %esi + //0x000032c0 LBB0_707 + 0x48, 0x8b, 0x7d, 0xc8, //0x000032c0 movq $-56(%rbp), %rdi + 0x29, 0xf7, //0x000032c4 subl %esi, %edi + //0x000032c6 LBB0_708 + 0x48, 0x01, 0xd2, //0x000032c6 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x000032c9 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xcf, //0x000032cd decl %edi + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000032cf jne LBB0_708 + //0x000032d5 LBB0_709 + 0x31, 0xf6, //0x000032d5 xorl %esi, %esi + 0x48, 0x8b, 0x7d, 0xc8, //0x000032d7 movq $-56(%rbp), %rdi + 0x85, 0xff, //0x000032db testl %edi, %edi + 0x0f, 0x88, 0x49, 0x00, 0x00, 0x00, //0x000032dd js LBB0_716 + 0x39, 0xf8, //0x000032e3 cmpl %edi, %eax + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x000032e5 jle LBB0_716 + 0x41, 0x8a, 0x0c, 0x0c, //0x000032eb movb (%r12,%rcx), %cl + 0x8d, 0x77, 0x01, //0x000032ef leal $1(%rdi), %esi + 0x39, 0xc6, //0x000032f2 cmpl %eax, %esi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000032f4 jne LBB0_715 + 0x80, 0xf9, 0x35, //0x000032fa cmpb $53, %cl + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x000032fd jne LBB0_715 + 0x45, 0x85, 0xf6, //0x00003303 testl %r14d, %r14d + 0x40, 0x0f, 0x95, 0xc6, //0x00003306 setne %sil + 0x41, 0x08, 0xf0, //0x0000330a orb %sil, %r8b + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x0000330d jne LBB0_716 + 0x48, 0x63, 0x45, 0xc8, //0x00003313 movslq $-56(%rbp), %rax + 0x42, 0x8a, 0x74, 0x20, 0xff, //0x00003317 movb $-1(%rax,%r12), %sil + 0x40, 0x80, 0xe6, 0x01, //0x0000331c andb $1, %sil + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00003320 jmp LBB0_716 + //0x00003325 LBB0_715 + 0x80, 0xf9, 0x34, //0x00003325 cmpb $52, %cl + 0x40, 0x0f, 0x9f, 0xc6, //0x00003328 setg %sil + //0x0000332c LBB0_716 + 0x40, 0x0f, 0xb6, 0xf6, //0x0000332c movzbl %sil, %esi + 0x48, 0x01, 0xd6, //0x00003330 addq %rdx, %rsi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00003333 movabsq $9007199254740992, %rax + 0x48, 0x39, 0xc6, //0x0000333d cmpq %rax, %rsi + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00003340 jne LBB0_719 + 0x41, 0x81, 0xff, 0xfe, 0x03, 0x00, 0x00, //0x00003346 cmpl $1022, %r15d + 0x0f, 0x8f, 0x32, 0xe7, 0xff, 0xff, //0x0000334d jg LBB0_353 + 0x41, 0xff, 0xc7, //0x00003353 incl %r15d + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00003356 movabsq $4503599627370495, %rcx + 0x48, 0x8d, 0x71, 0x01, //0x00003360 leaq $1(%rcx), %rsi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00003364 jmp LBB0_720 + //0x00003369 LBB0_719 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00003369 movabsq $4503599627370495, %rcx + //0x00003373 LBB0_720 + 0x8a, 0x55, 0xd7, //0x00003373 movb $-41(%rbp), %dl + 0x48, 0x8d, 0x41, 0x01, //0x00003376 leaq $1(%rcx), %rax + 0x48, 0x21, 0xf0, //0x0000337a andq %rsi, %rax + 0x41, 0x81, 0xc7, 0xff, 0x03, 0x00, 0x00, //0x0000337d addl $1023, %r15d + 0x41, 0x81, 0xe7, 0xff, 0x07, 0x00, 0x00, //0x00003384 andl $2047, %r15d + 0x49, 0xc1, 0xe7, 0x34, //0x0000338b shlq $52, %r15 + 0x48, 0x85, 0xc0, //0x0000338f testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf8, //0x00003392 cmoveq %rax, %r15 + 0xe9, 0x24, 0xe7, 0xff, 0xff, //0x00003396 jmp LBB0_358 + //0x0000339b LBB0_723 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000339b movq $-1, %r8 + 0x45, 0x31, 0xff, //0x000033a2 xorl %r15d, %r15d + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000033a5 movq $-1, %rbx + 0x49, 0x83, 0xfd, 0x20, //0x000033ac cmpq $32, %r13 + 0x0f, 0x83, 0x51, 0xdf, 0xff, 0xff, //0x000033b0 jae LBB0_261 + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000033b6 jmp LBB0_730 + //0x000033bb LBB0_724 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033bb movq $-1, %r8 + 0x45, 0x31, 0xe4, //0x000033c2 xorl %r12d, %r12d + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000033c5 movq $-1, %r9 + 0x49, 0x83, 0xfd, 0x20, //0x000033cc cmpq $32, %r13 + 0x0f, 0x83, 0xb5, 0xdf, 0xff, 0xff, //0x000033d0 jae LBB0_268 + 0xe9, 0x86, 0x01, 0x00, 0x00, //0x000033d6 jmp LBB0_749 + //0x000033db LBB0_725 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000033db movq $-2, %rbx + 0xe9, 0x29, 0x02, 0x00, 0x00, //0x000033e2 jmp LBB0_762 + //0x000033e7 LBB0_726 + 0x48, 0x83, 0xfb, 0xff, //0x000033e7 cmpq $-1, %rbx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000033eb jne LBB0_728 + 0x48, 0x89, 0xce, //0x000033f1 movq %rcx, %rsi + 0x4c, 0x29, 0xd6, //0x000033f4 subq %r10, %rsi + 0x4c, 0x0f, 0xbc, 0xc7, //0x000033f7 bsfq %rdi, %r8 + 0x49, 0x01, 0xf0, //0x000033fb addq %rsi, %r8 + 0x4c, 0x89, 0xc3, //0x000033fe movq %r8, %rbx + //0x00003401 LBB0_728 + 0x44, 0x89, 0xfe, //0x00003401 movl %r15d, %esi + 0xf7, 0xd6, //0x00003404 notl %esi + 0x21, 0xfe, //0x00003406 andl %edi, %esi + 0x44, 0x8d, 0x0c, 0x36, //0x00003408 leal (%rsi,%rsi), %r9d + 0x45, 0x09, 0xf9, //0x0000340c orl %r15d, %r9d + 0x45, 0x89, 0xcc, //0x0000340f movl %r9d, %r12d + 0x41, 0xf7, 0xd4, //0x00003412 notl %r12d + 0x41, 0x21, 0xfc, //0x00003415 andl %edi, %r12d + 0x41, 0x81, 0xe4, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003418 andl $-1431655766, %r12d + 0x45, 0x31, 0xff, //0x0000341f xorl %r15d, %r15d + 0x41, 0x01, 0xf4, //0x00003422 addl %esi, %r12d + 0x41, 0x0f, 0x92, 0xc7, //0x00003425 setb %r15b + 0x45, 0x01, 0xe4, //0x00003429 addl %r12d, %r12d + 0x41, 0x81, 0xf4, 0x55, 0x55, 0x55, 0x55, //0x0000342c xorl $1431655765, %r12d + 0x45, 0x21, 0xcc, //0x00003433 andl %r9d, %r12d + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00003436 movl $4294967295, %esi + 0x44, 0x31, 0xe6, //0x0000343b xorl %r12d, %esi + 0x21, 0xf0, //0x0000343e andl %esi, %eax + 0x48, 0x85, 0xc0, //0x00003440 testq %rax, %rax + 0x0f, 0x85, 0xf7, 0xde, 0xff, 0xff, //0x00003443 jne LBB0_264 + //0x00003449 LBB0_729 + 0x48, 0x83, 0xc1, 0x20, //0x00003449 addq $32, %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x0000344d addq $-32, %r13 + //0x00003451 LBB0_730 + 0x4d, 0x85, 0xff, //0x00003451 testq %r15, %r15 + 0x0f, 0x85, 0xd1, 0x01, 0x00, 0x00, //0x00003454 jne LBB0_764 + 0x4d, 0x85, 0xed, //0x0000345a testq %r13, %r13 + 0x0f, 0x84, 0xf5, 0x01, 0x00, 0x00, //0x0000345d je LBB0_722 + //0x00003463 LBB0_732 + 0x4d, 0x89, 0xd1, //0x00003463 movq %r10, %r9 + 0x49, 0xf7, 0xd1, //0x00003466 notq %r9 + //0x00003469 LBB0_733 + 0x48, 0x8d, 0x71, 0x01, //0x00003469 leaq $1(%rcx), %rsi + 0x0f, 0xb6, 0x01, //0x0000346d movzbl (%rcx), %eax + 0x3c, 0x22, //0x00003470 cmpb $34, %al + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00003472 je LBB0_739 + 0x49, 0x8d, 0x7d, 0xff, //0x00003478 leaq $-1(%r13), %rdi + 0x3c, 0x5c, //0x0000347c cmpb $92, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000347e je LBB0_736 + 0x49, 0x89, 0xfd, //0x00003484 movq %rdi, %r13 + 0x48, 0x89, 0xf1, //0x00003487 movq %rsi, %rcx + 0x48, 0x85, 0xff, //0x0000348a testq %rdi, %rdi + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000348d jne LBB0_733 + 0xe9, 0xc0, 0x01, 0x00, 0x00, //0x00003493 jmp LBB0_722 + //0x00003498 LBB0_736 + 0x48, 0x85, 0xff, //0x00003498 testq %rdi, %rdi + 0x0f, 0x84, 0xb7, 0x01, 0x00, 0x00, //0x0000349b je LBB0_722 + 0x4c, 0x01, 0xce, //0x000034a1 addq %r9, %rsi + 0x48, 0x83, 0xfb, 0xff, //0x000034a4 cmpq $-1, %rbx + 0x4c, 0x0f, 0x44, 0xc6, //0x000034a8 cmoveq %rsi, %r8 + 0x48, 0x0f, 0x44, 0xde, //0x000034ac cmoveq %rsi, %rbx + 0x48, 0x83, 0xc1, 0x02, //0x000034b0 addq $2, %rcx + 0x49, 0x83, 0xc5, 0xfe, //0x000034b4 addq $-2, %r13 + 0x4c, 0x89, 0xef, //0x000034b8 movq %r13, %rdi + 0x48, 0x85, 0xff, //0x000034bb testq %rdi, %rdi + 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x000034be jne LBB0_733 + 0xe9, 0x8f, 0x01, 0x00, 0x00, //0x000034c4 jmp LBB0_722 + //0x000034c9 LBB0_739 + 0x4c, 0x29, 0xd6, //0x000034c9 subq %r10, %rsi + 0x48, 0x89, 0xf3, //0x000034cc movq %rsi, %rbx + 0xe9, 0x78, 0xde, 0xff, 0xff, //0x000034cf jmp LBB0_265 + //0x000034d4 LBB0_740 + 0x49, 0x83, 0xf9, 0xff, //0x000034d4 cmpq $-1, %r9 + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000034d8 jne LBB0_742 + 0x48, 0x89, 0xde, //0x000034de movq %rbx, %rsi + 0x48, 0x2b, 0x75, 0xc8, //0x000034e1 subq $-56(%rbp), %rsi + 0x4c, 0x0f, 0xbc, 0xc1, //0x000034e5 bsfq %rcx, %r8 + 0x49, 0x01, 0xf0, //0x000034e9 addq %rsi, %r8 + 0x4d, 0x89, 0xc1, //0x000034ec movq %r8, %r9 + //0x000034ef LBB0_742 + 0x44, 0x89, 0xe6, //0x000034ef movl %r12d, %esi + 0xf7, 0xd6, //0x000034f2 notl %esi + 0x21, 0xce, //0x000034f4 andl %ecx, %esi + 0x44, 0x8d, 0x34, 0x36, //0x000034f6 leal (%rsi,%rsi), %r14d + 0x45, 0x09, 0xe6, //0x000034fa orl %r12d, %r14d + 0x44, 0x89, 0xf7, //0x000034fd movl %r14d, %edi + 0xf7, 0xd7, //0x00003500 notl %edi + 0x21, 0xcf, //0x00003502 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003504 andl $-1431655766, %edi + 0x45, 0x31, 0xe4, //0x0000350a xorl %r12d, %r12d + 0x01, 0xf7, //0x0000350d addl %esi, %edi + 0x41, 0x0f, 0x92, 0xc4, //0x0000350f setb %r12b + 0x01, 0xff, //0x00003513 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00003515 xorl $1431655765, %edi + 0x44, 0x21, 0xf7, //0x0000351b andl %r14d, %edi + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x0000351e movl $4294967295, %ecx + 0x31, 0xf9, //0x00003523 xorl %edi, %ecx + 0x21, 0xc8, //0x00003525 andl %ecx, %eax + 0x48, 0x85, 0xc0, //0x00003527 testq %rax, %rax + 0x0f, 0x85, 0xb0, 0xde, 0xff, 0xff, //0x0000352a jne LBB0_271 + //0x00003530 LBB0_743 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003530 movl $64, %ecx + //0x00003535 LBB0_744 + 0x48, 0x85, 0xc0, //0x00003535 testq %rax, %rax + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00003538 je LBB0_747 + 0x45, 0x85, 0xd2, //0x0000353e testl %r10d, %r10d + 0x0f, 0x84, 0x9e, 0x00, 0x00, 0x00, //0x00003541 je LBB0_757 + 0x49, 0x0f, 0xbc, 0xc2, //0x00003547 bsfq %r10, %rax + 0xe9, 0x9a, 0x00, 0x00, 0x00, //0x0000354b jmp LBB0_758 + //0x00003550 LBB0_747 + 0x45, 0x85, 0xd2, //0x00003550 testl %r10d, %r10d + 0x0f, 0x85, 0xac, 0x00, 0x00, 0x00, //0x00003553 jne LBB0_760 + 0x48, 0x83, 0xc3, 0x20, //0x00003559 addq $32, %rbx + 0x49, 0x83, 0xc5, 0xe0, //0x0000355d addq $-32, %r13 + //0x00003561 LBB0_749 + 0x4d, 0x85, 0xe4, //0x00003561 testq %r12, %r12 + 0x0f, 0x85, 0xfa, 0x00, 0x00, 0x00, //0x00003564 jne LBB0_767 + 0x4d, 0x85, 0xed, //0x0000356a testq %r13, %r13 + 0x0f, 0x84, 0x1f, 0x01, 0x00, 0x00, //0x0000356d je LBB0_769 + //0x00003573 LBB0_751 + 0x0f, 0xb6, 0x03, //0x00003573 movzbl (%rbx), %eax + 0x3c, 0x22, //0x00003576 cmpb $34, %al + 0x0f, 0x84, 0x9d, 0x00, 0x00, 0x00, //0x00003578 je LBB0_763 + 0x3c, 0x5c, //0x0000357e cmpb $92, %al + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003580 je LBB0_755 + 0x3c, 0x20, //0x00003586 cmpb $32, %al + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00003588 jb LBB0_760 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000358e movq $-1, %rax + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003595 movl $1, %ecx + 0x48, 0x01, 0xcb, //0x0000359a addq %rcx, %rbx + 0x49, 0x01, 0xc5, //0x0000359d addq %rax, %r13 + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x000035a0 jne LBB0_751 + 0xe9, 0xe7, 0x00, 0x00, 0x00, //0x000035a6 jmp LBB0_769 + //0x000035ab LBB0_755 + 0x49, 0x83, 0xfd, 0x01, //0x000035ab cmpq $1, %r13 + 0x0f, 0x84, 0xdd, 0x00, 0x00, 0x00, //0x000035af je LBB0_769 + 0x48, 0x89, 0xd8, //0x000035b5 movq %rbx, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x000035b8 subq $-56(%rbp), %rax + 0x49, 0x83, 0xf9, 0xff, //0x000035bc cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc0, //0x000035c0 cmoveq %rax, %r8 + 0x4c, 0x0f, 0x44, 0xc8, //0x000035c4 cmoveq %rax, %r9 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035c8 movq $-2, %rax + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000035cf movl $2, %ecx + 0x48, 0x01, 0xcb, //0x000035d4 addq %rcx, %rbx + 0x49, 0x01, 0xc5, //0x000035d7 addq %rax, %r13 + 0x0f, 0x85, 0x93, 0xff, 0xff, 0xff, //0x000035da jne LBB0_751 + 0xe9, 0xad, 0x00, 0x00, 0x00, //0x000035e0 jmp LBB0_769 + //0x000035e5 LBB0_757 + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x000035e5 movl $64, %eax + //0x000035ea LBB0_758 + 0x48, 0x39, 0xc8, //0x000035ea cmpq %rcx, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000035ed jb LBB0_760 + 0x48, 0x2b, 0x5d, 0xc8, //0x000035f3 subq $-56(%rbp), %rbx + 0x48, 0x8d, 0x5c, 0x0b, 0x01, //0x000035f7 leaq $1(%rbx,%rcx), %rbx + 0x4c, 0x8b, 0x75, 0xb8, //0x000035fc movq $-72(%rbp), %r14 + 0xe9, 0x47, 0xdd, 0xff, 0xff, //0x00003600 jmp LBB0_265 + //0x00003605 LBB0_760 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003605 movq $-2, %rbx + //0x0000360c LBB0_761 + 0x4c, 0x8b, 0x75, 0xb8, //0x0000360c movq $-72(%rbp), %r14 + //0x00003610 LBB0_762 + 0x49, 0x89, 0x1e, //0x00003610 movq %rbx, (%r14) + 0x4c, 0x89, 0xdb, //0x00003613 movq %r11, %rbx + 0xe9, 0x13, 0xda, 0xff, 0xff, //0x00003616 jmp LBB0_202 + //0x0000361b LBB0_763 + 0x48, 0x2b, 0x5d, 0xc8, //0x0000361b subq $-56(%rbp), %rbx + 0x48, 0xff, 0xc3, //0x0000361f incq %rbx + 0x4c, 0x8b, 0x75, 0xb8, //0x00003622 movq $-72(%rbp), %r14 + 0xe9, 0x21, 0xdd, 0xff, 0xff, //0x00003626 jmp LBB0_265 + //0x0000362b LBB0_764 + 0x4d, 0x85, 0xed, //0x0000362b testq %r13, %r13 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000362e je LBB0_722 + 0x4c, 0x89, 0xd0, //0x00003634 movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x00003637 notq %rax + 0x48, 0x01, 0xc8, //0x0000363a addq %rcx, %rax + 0x48, 0x83, 0xfb, 0xff, //0x0000363d cmpq $-1, %rbx + 0x4c, 0x0f, 0x44, 0xc0, //0x00003641 cmoveq %rax, %r8 + 0x48, 0x0f, 0x44, 0xd8, //0x00003645 cmoveq %rax, %rbx + 0x48, 0xff, 0xc1, //0x00003649 incq %rcx + 0x49, 0xff, 0xcd, //0x0000364c decq %r13 + 0x4d, 0x85, 0xed, //0x0000364f testq %r13, %r13 + 0x0f, 0x85, 0x0b, 0xfe, 0xff, 0xff, //0x00003652 jne LBB0_732 + //0x00003658 LBB0_722 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00003658 movq $-1, %rbx + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x0000365f jmp LBB0_762 + //0x00003664 LBB0_767 + 0x4d, 0x85, 0xed, //0x00003664 testq %r13, %r13 + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00003667 je LBB0_771 + 0x48, 0x8b, 0x45, 0xc8, //0x0000366d movq $-56(%rbp), %rax + 0x48, 0xf7, 0xd0, //0x00003671 notq %rax + 0x48, 0x01, 0xd8, //0x00003674 addq %rbx, %rax + 0x49, 0x83, 0xf9, 0xff, //0x00003677 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc0, //0x0000367b cmoveq %rax, %r8 + 0x4c, 0x0f, 0x44, 0xc8, //0x0000367f cmoveq %rax, %r9 + 0x48, 0xff, 0xc3, //0x00003683 incq %rbx + 0x49, 0xff, 0xcd, //0x00003686 decq %r13 + 0x4d, 0x85, 0xed, //0x00003689 testq %r13, %r13 + 0x0f, 0x85, 0xe1, 0xfe, 0xff, 0xff, //0x0000368c jne LBB0_751 + //0x00003692 LBB0_769 + 0x4c, 0x8b, 0x75, 0xb8, //0x00003692 movq $-72(%rbp), %r14 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00003696 movq $-1, %rbx + 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x0000369d jmp LBB0_762 + //0x000036a2 LBB0_771 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000036a2 movq $-1, %rbx + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x000036a9 jmp LBB0_761 + 0x90, 0x90, //0x000036ae .p2align 2, 0x90 + // // .set L0_0_set_200, LBB0_200-LJTI0_0 + // // .set L0_0_set_129, LBB0_129-LJTI0_0 + // // .set L0_0_set_113, LBB0_113-LJTI0_0 + // // .set L0_0_set_124, LBB0_124-LJTI0_0 + // // .set L0_0_set_35, LBB0_35-LJTI0_0 + // // .set L0_0_set_130, LBB0_130-LJTI0_0 + // // .set L0_0_set_131, LBB0_131-LJTI0_0 + // // .set L0_0_set_138, LBB0_138-LJTI0_0 + // // .set L0_0_set_132, LBB0_132-LJTI0_0 + // // .set L0_0_set_125, LBB0_125-LJTI0_0 + // // .set L0_0_set_135, LBB0_135-LJTI0_0 + // // .set L0_0_set_140, LBB0_140-LJTI0_0 + // // .set L0_0_set_128, LBB0_128-LJTI0_0 + //0x000036b0 LJTI0_0 + 0x74, 0xd9, 0xff, 0xff, //0x000036b0 .long L0_0_set_200 + 0x90, 0xd4, 0xff, 0xff, //0x000036b4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036b8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036bc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036c0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036c4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036c8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036cc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036d0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036d4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036d8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036dc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036e0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036e4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036e8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036ec .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036f0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036f4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036f8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000036fc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003700 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003704 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003708 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000370c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003710 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003714 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003718 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000371c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003720 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003724 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003728 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000372c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003730 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003734 .long L0_0_set_129 + 0xe2, 0xd2, 0xff, 0xff, //0x00003738 .long L0_0_set_113 + 0x90, 0xd4, 0xff, 0xff, //0x0000373c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003740 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003744 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003748 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000374c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003750 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003754 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003758 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000375c .long L0_0_set_129 + 0x3b, 0xd4, 0xff, 0xff, //0x00003760 .long L0_0_set_124 + 0x60, 0xcd, 0xff, 0xff, //0x00003764 .long L0_0_set_35 + 0x90, 0xd4, 0xff, 0xff, //0x00003768 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000376c .long L0_0_set_129 + 0x60, 0xcd, 0xff, 0xff, //0x00003770 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003774 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003778 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x0000377c .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003780 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003784 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003788 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x0000378c .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003790 .long L0_0_set_35 + 0x60, 0xcd, 0xff, 0xff, //0x00003794 .long L0_0_set_35 + 0x9f, 0xd4, 0xff, 0xff, //0x00003798 .long L0_0_set_130 + 0x90, 0xd4, 0xff, 0xff, //0x0000379c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037a0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037a4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037a8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037ac .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037b0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037b4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037b8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037bc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037c0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037c4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037c8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037cc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037d0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037d4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037d8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037dc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037e0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037e4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037e8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037ec .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037f0 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037f4 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037f8 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x000037fc .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003800 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003804 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003808 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000380c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003810 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003814 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003818 .long L0_0_set_129 + 0xb1, 0xd4, 0xff, 0xff, //0x0000381c .long L0_0_set_131 + 0x90, 0xd4, 0xff, 0xff, //0x00003820 .long L0_0_set_129 + 0x1f, 0xd5, 0xff, 0xff, //0x00003824 .long L0_0_set_138 + 0x90, 0xd4, 0xff, 0xff, //0x00003828 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000382c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003830 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003834 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003838 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000383c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003840 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003844 .long L0_0_set_129 + 0xbd, 0xd4, 0xff, 0xff, //0x00003848 .long L0_0_set_132 + 0x90, 0xd4, 0xff, 0xff, //0x0000384c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003850 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003854 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003858 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000385c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003860 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003864 .long L0_0_set_129 + 0x4d, 0xd4, 0xff, 0xff, //0x00003868 .long L0_0_set_125 + 0x90, 0xd4, 0xff, 0xff, //0x0000386c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003870 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003874 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003878 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000387c .long L0_0_set_129 + 0xee, 0xd4, 0xff, 0xff, //0x00003880 .long L0_0_set_135 + 0x90, 0xd4, 0xff, 0xff, //0x00003884 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003888 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x0000388c .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003890 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003894 .long L0_0_set_129 + 0x90, 0xd4, 0xff, 0xff, //0x00003898 .long L0_0_set_129 + 0x42, 0xd5, 0xff, 0xff, //0x0000389c .long L0_0_set_140 + 0x90, 0xd4, 0xff, 0xff, //0x000038a0 .long L0_0_set_129 + 0x7e, 0xd4, 0xff, 0xff, //0x000038a4 .long L0_0_set_128 + // // .set L0_1_set_94, LBB0_94-LJTI0_1 + // // .set L0_1_set_142, LBB0_142-LJTI0_1 + // // .set L0_1_set_89, LBB0_89-LJTI0_1 + // // .set L0_1_set_91, LBB0_91-LJTI0_1 + // // .set L0_1_set_96, LBB0_96-LJTI0_1 + //0x000038a8 LJTI0_1 + 0xd2, 0xcf, 0xff, 0xff, //0x000038a8 .long L0_1_set_94 + 0x59, 0xd3, 0xff, 0xff, //0x000038ac .long L0_1_set_142 + 0xd2, 0xcf, 0xff, 0xff, //0x000038b0 .long L0_1_set_94 + 0x86, 0xcf, 0xff, 0xff, //0x000038b4 .long L0_1_set_89 + 0x59, 0xd3, 0xff, 0xff, //0x000038b8 .long L0_1_set_142 + 0xa8, 0xcf, 0xff, 0xff, //0x000038bc .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038c0 .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038c4 .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038c8 .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038cc .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038d0 .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038d4 .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038d8 .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038dc .long L0_1_set_91 + 0xa8, 0xcf, 0xff, 0xff, //0x000038e0 .long L0_1_set_91 + 0x59, 0xd3, 0xff, 0xff, //0x000038e4 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x000038e8 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x000038ec .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x000038f0 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x000038f4 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x000038f8 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x000038fc .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003900 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003904 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003908 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000390c .long L0_1_set_142 + 0xed, 0xcf, 0xff, 0xff, //0x00003910 .long L0_1_set_96 + 0x59, 0xd3, 0xff, 0xff, //0x00003914 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003918 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000391c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003920 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003924 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003928 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000392c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003930 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003934 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003938 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000393c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003940 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003944 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003948 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000394c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003950 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003954 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003958 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000395c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003960 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003964 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003968 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000396c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003970 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003974 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003978 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000397c .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003980 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003984 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x00003988 .long L0_1_set_142 + 0x59, 0xd3, 0xff, 0xff, //0x0000398c .long L0_1_set_142 + 0xed, 0xcf, 0xff, 0xff, //0x00003990 .long L0_1_set_96 + //0x00003994 .p2align 2, 0x00 + //0x00003994 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00003994 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003998 .p2align 4, 0x00 + //0x000039a0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000039a0 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000039a8 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000039b0 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000039b8 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000039c0 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000039c8 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000039d0 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000039d8 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000039e0 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000039e8 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000039f0 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000039f8 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00003a00 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00003a08 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00003a10 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003a18 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00003a20 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00003a28 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00003a30 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00003a38 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00003a40 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00003a48 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00003a50 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a58 .p2align 4, 0x00 + //0x00003a60 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00003a60 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00003a68 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00003a70 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00003a78 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00003a80 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00003a88 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00003a90 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00003a98 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00003aa0 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00003aa8 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00003ab0 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00003ab8 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00003ac0 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00003ac8 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00003ad0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00003ad8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00003ae0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00003ae8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00003af0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00003af8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00003b00 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00003b08 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00003b10 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00003b18 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00003b20 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00003b28 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00003b30 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00003b38 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00003b40 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00003b48 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00003b50 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00003b58 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00003b60 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00003b68 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00003b70 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00003b78 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00003b80 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00003b88 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00003b90 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00003b98 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00003ba0 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00003ba8 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00003bb0 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00003bb8 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00003bc0 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00003bc8 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00003bd0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00003bd8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00003be0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00003be8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00003bf0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00003bf8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00003c00 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00003c08 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00003c10 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00003c18 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00003c20 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00003c28 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00003c30 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00003c38 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00003c40 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00003c48 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00003c50 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00003c58 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00003c60 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00003c68 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00003c70 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00003c78 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00003c80 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00003c88 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00003c90 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00003c98 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00003ca0 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00003ca8 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00003cb0 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00003cb8 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00003cc0 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00003cc8 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00003cd0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00003cd8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00003ce0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00003ce8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00003cf0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00003cf8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00003d00 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00003d08 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00003d10 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00003d18 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00003d20 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00003d28 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00003d30 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00003d38 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00003d40 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00003d48 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00003d50 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00003d58 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00003d60 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00003d68 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00003d70 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00003d78 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00003d80 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00003d88 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00003d90 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00003d98 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00003da0 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00003da8 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00003db0 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00003db8 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00003dc0 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00003dc8 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00003dd0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00003dd8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00003de0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00003de8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00003df0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00003df8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00003e00 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00003e08 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00003e10 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00003e18 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00003e20 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00003e28 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00003e30 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00003e38 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00003e40 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00003e48 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00003e50 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00003e58 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00003e60 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00003e68 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00003e70 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00003e78 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00003e80 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00003e88 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00003e90 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00003e98 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00003ea0 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00003ea8 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00003eb0 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00003eb8 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00003ec0 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00003ec8 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00003ed0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00003ed8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00003ee0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00003ee8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00003ef0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00003ef8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00003f00 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00003f08 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00003f10 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00003f18 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00003f20 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00003f28 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00003f30 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00003f38 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00003f40 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00003f48 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00003f50 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00003f58 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00003f60 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00003f68 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00003f70 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00003f78 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00003f80 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00003f88 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00003f90 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00003f98 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00003fa0 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00003fa8 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00003fb0 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00003fb8 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00003fc0 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00003fc8 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00003fd0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00003fd8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00003fe0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00003fe8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00003ff0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00003ff8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00004000 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00004008 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00004010 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00004018 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00004020 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00004028 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00004030 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00004038 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00004040 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00004048 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00004050 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00004058 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00004060 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00004068 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00004070 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00004078 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00004080 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00004088 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00004090 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00004098 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x000040a0 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x000040a8 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x000040b0 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x000040b8 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x000040c0 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x000040c8 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x000040d0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x000040d8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x000040e0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x000040e8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x000040f0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x000040f8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00004100 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00004108 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00004110 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00004118 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00004120 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00004128 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00004130 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00004138 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00004140 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00004148 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00004150 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00004158 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00004160 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00004168 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00004170 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00004178 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00004180 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00004188 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00004190 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00004198 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x000041a0 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x000041a8 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x000041b0 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x000041b8 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x000041c0 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x000041c8 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x000041d0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x000041d8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x000041e0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x000041e8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x000041f0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x000041f8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00004200 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00004208 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00004210 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00004218 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00004220 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00004228 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00004230 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00004238 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00004240 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00004248 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00004250 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00004258 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00004260 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00004268 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00004270 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00004278 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00004280 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00004288 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00004290 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00004298 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x000042a0 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x000042a8 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x000042b0 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x000042b8 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x000042c0 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x000042c8 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x000042d0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x000042d8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x000042e0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x000042e8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x000042f0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x000042f8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00004300 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00004308 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00004310 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00004318 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00004320 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00004328 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00004330 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00004338 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00004340 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00004348 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00004350 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00004358 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00004360 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00004368 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00004370 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00004378 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00004380 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00004388 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00004390 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00004398 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x000043a0 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x000043a8 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x000043b0 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x000043b8 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x000043c0 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x000043c8 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x000043d0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x000043d8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x000043e0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x000043e8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x000043f0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x000043f8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00004400 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00004408 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00004410 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00004418 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00004420 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00004428 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00004430 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00004438 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00004440 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00004448 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00004450 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00004458 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00004460 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00004468 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00004470 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00004478 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00004480 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00004488 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00004490 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00004498 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x000044a0 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x000044a8 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x000044b0 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x000044b8 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x000044c0 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x000044c8 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x000044d0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x000044d8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x000044e0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x000044e8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x000044f0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x000044f8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00004500 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00004508 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00004510 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00004518 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00004520 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00004528 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00004530 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00004538 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00004540 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00004548 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00004550 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00004558 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00004560 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00004568 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00004570 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00004578 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00004580 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00004588 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00004590 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00004598 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x000045a0 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x000045a8 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x000045b0 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x000045b8 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x000045c0 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x000045c8 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x000045d0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x000045d8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x000045e0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x000045e8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x000045f0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x000045f8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00004600 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00004608 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00004610 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00004618 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00004620 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00004628 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00004630 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00004638 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00004640 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00004648 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00004650 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00004658 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00004660 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00004668 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00004670 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00004678 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00004680 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00004688 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00004690 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00004698 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x000046a0 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x000046a8 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x000046b0 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x000046b8 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x000046c0 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x000046c8 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x000046d0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x000046d8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x000046e0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x000046e8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x000046f0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x000046f8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00004700 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00004708 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00004710 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00004718 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00004720 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00004728 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00004730 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00004738 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00004740 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00004748 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00004750 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00004758 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00004760 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00004768 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00004770 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00004778 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00004780 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00004788 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x00004790 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x00004798 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x000047a0 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x000047a8 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x000047b0 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x000047b8 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x000047c0 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x000047c8 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x000047d0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x000047d8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x000047e0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x000047e8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x000047f0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x000047f8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00004800 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00004808 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00004810 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00004818 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00004820 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00004828 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00004830 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00004838 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00004840 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00004848 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00004850 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00004858 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00004860 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00004868 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00004870 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00004878 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x00004880 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x00004888 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x00004890 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x00004898 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x000048a0 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x000048a8 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x000048b0 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x000048b8 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x000048c0 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x000048c8 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x000048d0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x000048d8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x000048e0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x000048e8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x000048f0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x000048f8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00004900 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00004908 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00004910 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00004918 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00004920 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00004928 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00004930 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00004938 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00004940 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00004948 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00004950 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00004958 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00004960 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00004968 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00004970 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00004978 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x00004980 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x00004988 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x00004990 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x00004998 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x000049a0 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x000049a8 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x000049b0 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x000049b8 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x000049c0 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x000049c8 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x000049d0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x000049d8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x000049e0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x000049e8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x000049f0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x000049f8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00004a00 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00004a08 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00004a10 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00004a18 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00004a20 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00004a28 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00004a30 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00004a38 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00004a40 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00004a48 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00004a50 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00004a58 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00004a60 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00004a68 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00004a70 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00004a78 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x00004a80 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x00004a88 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x00004a90 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x00004a98 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00004aa0 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00004aa8 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x00004ab0 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x00004ab8 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x00004ac0 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x00004ac8 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x00004ad0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x00004ad8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00004ae0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00004ae8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00004af0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00004af8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00004b00 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00004b08 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00004b10 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00004b18 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00004b20 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00004b28 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x00004b30 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x00004b38 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x00004b40 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x00004b48 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x00004b50 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x00004b58 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x00004b60 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x00004b68 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x00004b70 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x00004b78 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x00004b80 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x00004b88 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x00004b90 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x00004b98 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x00004ba0 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x00004ba8 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x00004bb0 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x00004bb8 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x00004bc0 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x00004bc8 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x00004bd0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x00004bd8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00004be0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00004be8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00004bf0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00004bf8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00004c00 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00004c08 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00004c10 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00004c18 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00004c20 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00004c28 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x00004c30 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x00004c38 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x00004c40 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x00004c48 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x00004c50 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x00004c58 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x00004c60 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x00004c68 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x00004c70 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x00004c78 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x00004c80 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x00004c88 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x00004c90 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x00004c98 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x00004ca0 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x00004ca8 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x00004cb0 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x00004cb8 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x00004cc0 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x00004cc8 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x00004cd0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x00004cd8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00004ce0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00004ce8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00004cf0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00004cf8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00004d00 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00004d08 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00004d10 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00004d18 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00004d20 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00004d28 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x00004d30 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x00004d38 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x00004d40 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x00004d48 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x00004d50 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x00004d58 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x00004d60 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x00004d68 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x00004d70 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x00004d78 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x00004d80 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x00004d88 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x00004d90 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x00004d98 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x00004da0 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x00004da8 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x00004db0 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x00004db8 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x00004dc0 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x00004dc8 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x00004dd0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x00004dd8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00004de0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00004de8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00004df0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00004df8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00004e00 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00004e08 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00004e10 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00004e18 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00004e20 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00004e28 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x00004e30 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00004e38 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x00004e40 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00004e48 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x00004e50 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00004e58 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x00004e60 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00004e68 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x00004e70 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00004e78 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x00004e80 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00004e88 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00004e90 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00004e98 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00004ea0 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00004ea8 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00004eb0 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00004eb8 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00004ec0 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00004ec8 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00004ed0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00004ed8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00004ee0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00004ee8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00004ef0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00004ef8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00004f00 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00004f08 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00004f10 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00004f18 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00004f20 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00004f28 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x00004f30 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00004f38 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x00004f40 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00004f48 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x00004f50 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00004f58 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x00004f60 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00004f68 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x00004f70 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00004f78 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x00004f80 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00004f88 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00004f90 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00004f98 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00004fa0 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00004fa8 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00004fb0 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00004fb8 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00004fc0 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00004fc8 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00004fd0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00004fd8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00004fe0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00004fe8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00004ff0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00004ff8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00005000 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00005008 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00005010 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005020 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00005028 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005030 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00005038 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005040 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00005048 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005050 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00005058 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005060 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00005068 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005070 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00005078 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005080 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00005088 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005090 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00005098 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050a0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000050a8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000050b8 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050c0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000050c8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050d0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000050d8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050e0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000050e8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050f0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000050f8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005100 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00005108 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005110 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00005118 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005120 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00005128 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005130 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00005138 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005140 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00005148 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005150 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00005158 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005160 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00005168 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005170 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00005178 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005180 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00005188 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005190 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00005198 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051a0 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x000051a8 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051b0 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x000051b8 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051c0 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x000051c8 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051d0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x000051d8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x000051e0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x000051e8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x000051f0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x000051f8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00005200 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00005208 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00005210 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00005218 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00005220 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00005228 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00005230 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00005238 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00005240 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00005248 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00005250 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00005258 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x00005260 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00005268 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x00005270 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00005278 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x00005280 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00005288 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00005290 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00005298 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x000052a0 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000052a8 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x000052b0 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000052b8 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x000052c0 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000052c8 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x000052d0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000052d8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x000052e0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000052e8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x000052f0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000052f8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00005300 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00005308 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00005310 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00005318 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00005320 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00005328 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00005330 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00005338 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00005340 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00005348 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00005350 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00005358 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x00005360 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x00005368 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x00005370 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x00005378 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x00005380 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x00005388 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00005390 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00005398 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x000053a0 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x000053a8 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x000053b0 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x000053b8 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x000053c0 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x000053c8 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x000053d0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x000053d8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x000053e0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x000053e8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x000053f0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x000053f8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00005400 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00005408 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00005410 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00005418 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00005420 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00005428 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00005430 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00005438 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x00005440 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x00005448 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x00005450 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x00005458 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x00005460 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x00005468 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x00005470 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x00005478 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x00005480 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x00005488 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x00005490 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x00005498 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x000054a0 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x000054a8 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x000054b0 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x000054b8 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x000054c0 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x000054c8 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x000054d0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x000054d8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x000054e0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x000054e8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x000054f0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x000054f8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00005500 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00005508 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00005510 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00005518 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00005520 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00005528 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00005530 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00005538 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00005540 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00005548 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00005550 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00005558 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00005560 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00005568 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00005570 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00005578 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x00005580 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x00005588 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x00005590 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x00005598 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x000055a0 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x000055a8 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x000055b0 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x000055b8 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x000055c0 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x000055c8 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x000055d0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x000055d8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x000055e0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x000055e8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x000055f0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x000055f8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00005600 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00005608 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00005610 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00005618 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00005620 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00005628 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00005630 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00005638 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00005640 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00005648 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00005650 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00005658 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00005660 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00005668 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00005670 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00005678 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x00005680 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x00005688 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x00005690 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x00005698 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x000056a0 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x000056a8 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x000056b0 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x000056b8 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x000056c0 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x000056c8 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x000056d0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x000056d8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x000056e0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x000056e8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x000056f0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x000056f8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00005700 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00005708 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00005710 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00005718 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00005720 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00005728 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00005730 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00005738 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00005740 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00005748 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00005750 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00005758 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00005760 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00005768 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00005770 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00005778 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x00005780 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x00005788 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x00005790 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x00005798 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x000057a0 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x000057a8 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x000057b0 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x000057b8 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x000057c0 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x000057c8 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x000057d0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x000057d8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x000057e0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x000057e8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x000057f0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x000057f8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00005800 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00005808 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00005810 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00005818 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00005820 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00005828 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00005830 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00005838 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00005840 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00005848 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00005850 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00005858 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00005860 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00005868 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00005870 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00005878 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x00005880 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x00005888 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x00005890 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x00005898 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x000058a0 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x000058a8 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x000058b0 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x000058b8 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x000058c0 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x000058c8 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x000058d0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x000058d8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x000058e0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x000058e8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x000058f0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x000058f8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00005900 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00005908 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00005910 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00005918 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00005920 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00005928 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00005930 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00005938 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00005940 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00005948 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00005950 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00005958 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00005960 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00005968 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00005970 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00005978 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x00005980 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x00005988 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x00005990 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x00005998 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x000059a0 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x000059a8 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x000059b0 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x000059b8 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x000059c0 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x000059c8 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x000059d0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x000059d8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x000059e0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x000059e8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x000059f0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x000059f8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00005a00 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00005a08 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00005a10 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00005a18 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00005a20 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00005a28 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00005a30 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00005a38 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00005a40 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00005a48 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00005a50 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00005a58 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00005a60 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00005a68 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00005a70 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00005a78 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x00005a80 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x00005a88 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x00005a90 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x00005a98 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00005aa0 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00005aa8 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x00005ab0 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x00005ab8 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x00005ac0 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x00005ac8 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x00005ad0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x00005ad8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00005ae0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00005ae8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00005af0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00005af8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00005b00 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00005b08 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00005b10 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00005b18 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00005b20 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00005b28 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x00005b30 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x00005b38 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x00005b40 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x00005b48 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x00005b50 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x00005b58 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x00005b60 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x00005b68 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x00005b70 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x00005b78 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x00005b80 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x00005b88 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x00005b90 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x00005b98 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x00005ba0 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x00005ba8 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x00005bb0 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x00005bb8 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x00005bc0 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x00005bc8 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x00005bd0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x00005bd8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00005be0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00005be8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00005bf0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00005bf8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00005c00 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00005c08 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00005c10 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00005c18 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00005c20 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00005c28 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x00005c30 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x00005c38 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x00005c40 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x00005c48 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x00005c50 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x00005c58 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x00005c60 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x00005c68 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x00005c70 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x00005c78 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x00005c80 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x00005c88 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x00005c90 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x00005c98 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x00005ca0 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x00005ca8 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x00005cb0 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x00005cb8 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x00005cc0 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x00005cc8 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x00005cd0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x00005cd8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00005ce0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00005ce8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00005cf0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00005cf8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00005d00 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00005d08 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00005d10 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00005d18 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00005d20 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00005d28 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x00005d30 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x00005d38 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x00005d40 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x00005d48 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x00005d50 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x00005d58 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x00005d60 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x00005d68 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x00005d70 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x00005d78 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x00005d80 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x00005d88 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x00005d90 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x00005d98 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x00005da0 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x00005da8 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x00005db0 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x00005db8 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x00005dc0 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x00005dc8 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x00005dd0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x00005dd8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00005de0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00005de8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00005df0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00005df8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00005e00 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00005e08 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00005e10 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00005e18 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00005e20 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00005e28 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x00005e30 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x00005e38 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x00005e40 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x00005e48 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x00005e50 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x00005e58 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x00005e60 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x00005e68 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x00005e70 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x00005e78 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x00005e80 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x00005e88 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00005e90 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00005e98 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00005ea0 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00005ea8 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00005eb0 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00005eb8 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00005ec0 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00005ec8 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00005ed0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00005ed8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00005ee0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00005ee8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00005ef0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00005ef8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00005f00 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00005f08 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00005f10 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00005f18 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00005f20 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00005f28 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x00005f30 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x00005f38 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x00005f40 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x00005f48 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x00005f50 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x00005f58 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x00005f60 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x00005f68 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x00005f70 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x00005f78 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x00005f80 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x00005f88 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00005f90 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00005f98 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00005fa0 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00005fa8 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00005fb0 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00005fb8 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00005fc0 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00005fc8 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00005fd0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00005fd8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00005fe0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00005fe8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00005ff0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00005ff8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00006000 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00006008 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00006010 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00006018 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00006020 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00006028 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x00006030 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x00006038 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x00006040 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x00006048 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x00006050 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x00006058 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x00006060 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x00006068 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x00006070 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x00006078 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x00006080 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x00006088 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00006090 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00006098 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x000060a0 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x000060a8 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x000060b0 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x000060b8 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x000060c0 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x000060c8 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x000060d0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x000060d8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x000060e0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x000060e8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x000060f0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x000060f8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00006100 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00006108 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00006110 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00006118 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00006120 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00006128 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00006130 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00006138 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00006140 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00006148 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00006150 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00006158 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x00006160 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x00006168 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x00006170 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x00006178 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x00006180 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x00006188 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00006190 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00006198 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x000061a0 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x000061a8 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x000061b0 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x000061b8 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x000061c0 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x000061c8 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x000061d0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x000061d8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x000061e0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x000061e8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x000061f0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x000061f8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00006200 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00006208 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00006210 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00006218 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00006220 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00006228 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00006230 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00006238 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00006240 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00006248 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00006250 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00006258 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x00006260 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x00006268 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x00006270 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x00006278 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x00006280 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x00006288 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00006290 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00006298 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x000062a0 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x000062a8 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x000062b0 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x000062b8 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x000062c0 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x000062c8 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x000062d0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x000062d8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x000062e0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x000062e8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x000062f0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x000062f8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00006300 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00006308 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00006310 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00006318 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00006320 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00006328 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00006330 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00006338 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00006340 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00006348 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00006350 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00006358 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x00006360 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x00006368 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x00006370 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x00006378 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x00006380 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x00006388 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00006390 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00006398 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x000063a0 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x000063a8 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x000063b0 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x000063b8 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x000063c0 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x000063c8 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x000063d0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x000063d8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x000063e0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x000063e8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x000063f0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x000063f8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00006400 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00006408 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00006410 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00006418 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00006420 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00006428 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00006430 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00006438 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x00006440 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x00006448 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x00006450 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x00006458 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x00006460 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x00006468 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x00006470 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x00006478 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x00006480 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x00006488 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x00006490 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x00006498 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x000064a0 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x000064a8 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x000064b0 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x000064b8 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x000064c0 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x000064c8 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x000064d0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x000064d8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x000064e0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x000064e8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x000064f0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x000064f8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x00006500 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x00006508 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x00006510 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x00006518 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x00006520 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x00006528 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x00006530 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x00006538 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x00006540 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x00006548 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x00006550 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x00006558 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x00006560 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x00006568 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x00006570 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x00006578 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x00006580 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x00006588 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x00006590 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x00006598 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x000065a0 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x000065a8 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x000065b0 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x000065b8 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x000065c0 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x000065c8 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x000065d0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x000065d8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000065f0 .p2align 4, 0x00 + //0x000065f0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x000065f0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x000065f4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x000065f8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x000065fc .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x00006600 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x00006604 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x00006608 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000660c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x00006610 .long 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006614 .p2align 4, 0x00 + //0x00006620 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006680 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00006688 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000668c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000669c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000066ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000066f0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066f4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006754 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00006758 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000675c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000676c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000677c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000678c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000679c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000067bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000067c0 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067c4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006824 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00006828 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000682c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000683c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000684c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000685c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000686c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000687c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000688c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00006890 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006894 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000068f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000068f8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068fc QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000690c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000691c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000692c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000693c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000694c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000695c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00006960 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006964 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000069c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000069c8 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069cc QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006a2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006a30 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a34 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006a94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006a98 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a9c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006afc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006b00 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b04 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006b64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006b68 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b6c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006bcc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00006bd0 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bd4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006c34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00006c38 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c3c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006c9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00006ca0 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00006ca4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006d04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006d08 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00006d0c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006d6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006d70 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00006d74 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006dd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006dd8 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x00006ddc QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006e3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006e40 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00006e44 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ea4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006ea8 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00006eac QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006f0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006f10 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00006f14 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006f74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006f78 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00006f7c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f8c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006fdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006fe0 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00006fe4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ff4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007044 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00007048 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0000704c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000705c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000706c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000707c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000708c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000709c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000070ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000070b0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x000070b4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070c4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007114 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00007118 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0000711c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000712c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000713c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000714c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000715c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000716c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000717c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00007180 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00007184 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007194 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000071e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000071e8 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000071ec QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071fc QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000720c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000721c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000722c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000723c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000724c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00007250 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00007254 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007264 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000072b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000072b8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x000072bc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072cc QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000730c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000731c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00007320 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00007324 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007334 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007384 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00007388 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0000738c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000739c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000073ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000073f0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x000073f4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007404 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007454 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00007458 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0000745c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000746c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000747c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000748c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000749c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000074bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000074c0 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x000074c4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074d4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007524 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00007528 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0000752c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000753c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000754c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000755c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000756c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000757c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000758c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00007590 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00007594 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075a4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000075f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000075f8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x000075fc QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000760c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000761c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000762c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000763c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000764c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000765c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007660 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00007664 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00007674 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000076c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000076c8 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x000076cc QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000076dc QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000770c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000771c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000772c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007730 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00007734 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00007744 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007794 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007798 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x0000779c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x000077ac QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000077fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00007800 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00007804 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00007814 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007864 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00007868 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0000786c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0000787c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000788c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000789c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000078cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000078d0 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x000078d4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x000078e4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078f4 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007934 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00007938 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0000793c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0000794c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000795c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000796c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000797c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000798c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000799c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000079a0 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x000079a4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x000079b4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079c4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007a04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00007a08 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00007a0c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00007a1c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a2c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007a6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007a70 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00007a74 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00007a84 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a94 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007ad4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007ad8 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x00007adc QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x00007aec QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007afc QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007b3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007b40 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00007b44 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00007b54 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b64 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007ba4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007ba8 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x00007bac QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x00007bbc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bcc QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007c0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007c10 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00007c14 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00007c24 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c34 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007c74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007c78 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x00007c7c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x00007c8c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c9c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007cdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007ce0 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00007ce4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00007cf4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d04 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007d44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007d48 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x00007d4c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x00007d5c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d6c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007dac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007db0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00007db4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00007dc4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007dd4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007e14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007e18 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00007e1c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00007e2c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007e3c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007e7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00007e80 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00007e84 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00007e94 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ea4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007ee4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber.go new file mode 100644 index 000000000..de5b990e7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vnumber uintptr + +//go:nosplit +func vnumber(s *string, p *int, v *types.JsonState) { + F_vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_subr.go new file mode 100644 index 000000000..59dbae413 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vnumber = 128 +) + +const ( + _stack__vnumber = 112 +) + +const ( + _size__vnumber = 9588 +) + +var ( + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {751, 112}, + {755, 48}, + {756, 40}, + {758, 32}, + {760, 24}, + {762, 16}, + {764, 8}, + {768, 0}, + {9585, 112}, + } +) + +var _cfunc_vnumber = []loader.CFunc{ + {"_vnumber_entry", 0, _entry__vnumber, 0, nil}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_text_amd64.go new file mode 100644 index 000000000..4e7d7787a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vnumber_text_amd64.go @@ -0,0 +1,4521 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_vnumber = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x00, 0x00, 0x30, 0x43, // .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00000004 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00000008 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000000c .long 0 + //0x00000010 LCPI0_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00000010 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00000018 .quad 4985484787499139072 + //0x00000020 .p2align 3, 0x00 + //0x00000020 LCPI0_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00000020 .quad 4831355200913801216 + //0x00000028 LCPI0_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00000028 .quad -4392016835940974592 + //0x00000030 LCPI0_5 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000030 .quad 1 + //0x00000038 LCPI0_6 + 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000038 .quad 10000 + //0x00000040 LCPI0_7 + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000040 .quad 10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000048 .p2align 5, 0x00 + //0x00000060 LCPI0_4 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000060 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000068 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000070 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000078 .quad 1 + //0x00000080 .p2align 4, 0x90 + //0x00000080 _vnumber + 0x55, //0x00000080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000081 movq %rsp, %rbp + 0x41, 0x57, //0x00000084 pushq %r15 + 0x41, 0x56, //0x00000086 pushq %r14 + 0x41, 0x55, //0x00000088 pushq %r13 + 0x41, 0x54, //0x0000008a pushq %r12 + 0x53, //0x0000008c pushq %rbx + 0x48, 0x83, 0xec, 0x40, //0x0000008d subq $64, %rsp + 0x49, 0x89, 0xd6, //0x00000091 movq %rdx, %r14 + 0x4c, 0x8b, 0x07, //0x00000094 movq (%rdi), %r8 + 0x4c, 0x8b, 0x5f, 0x08, //0x00000097 movq $8(%rdi), %r11 + 0x48, 0x8b, 0x06, //0x0000009b movq (%rsi), %rax + 0x4c, 0x8b, 0x62, 0x20, //0x0000009e movq $32(%rdx), %r12 + 0x4c, 0x8b, 0x6a, 0x28, //0x000000a2 movq $40(%rdx), %r13 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000000a6 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x000000ad vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x000000b1 vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x000000b6 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x000000b9 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd8, //0x000000bd cmpq %r11, %rax + 0x0f, 0x83, 0x9f, 0x02, 0x00, 0x00, //0x000000c0 jae LBB0_50 + 0x41, 0x8a, 0x14, 0x00, //0x000000c6 movb (%r8,%rax), %dl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000000ca movl $1, %r9d + 0x80, 0xfa, 0x2d, //0x000000d0 cmpb $45, %dl + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000000d3 jne LBB0_4 + 0x48, 0xff, 0xc0, //0x000000d9 incq %rax + 0x4c, 0x39, 0xd8, //0x000000dc cmpq %r11, %rax + 0x0f, 0x83, 0x80, 0x02, 0x00, 0x00, //0x000000df jae LBB0_50 + 0x41, 0x8a, 0x14, 0x00, //0x000000e5 movb (%r8,%rax), %dl + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000000e9 movl $-1, %r9d + //0x000000ef LBB0_4 + 0x8d, 0x4a, 0xd0, //0x000000ef leal $-48(%rdx), %ecx + 0x80, 0xf9, 0x0a, //0x000000f2 cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000000f5 jb LBB0_6 + //0x000000fb LBB0_5 + 0x48, 0x89, 0x06, //0x000000fb movq %rax, (%rsi) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000000fe movq $-2, (%r14) + 0xe9, 0x65, 0x02, 0x00, 0x00, //0x00000105 jmp LBB0_51 + //0x0000010a LBB0_6 + 0x80, 0xfa, 0x30, //0x0000010a cmpb $48, %dl + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x0000010d jne LBB0_10 + 0x48, 0x8d, 0x48, 0x01, //0x00000113 leaq $1(%rax), %rcx + 0x4c, 0x39, 0xd8, //0x00000117 cmpq %r11, %rax + 0x0f, 0x83, 0xcb, 0x00, 0x00, 0x00, //0x0000011a jae LBB0_21 + 0x41, 0x8a, 0x1c, 0x08, //0x00000120 movb (%r8,%rcx), %bl + 0x80, 0xc3, 0xd2, //0x00000124 addb $-46, %bl + 0x80, 0xfb, 0x37, //0x00000127 cmpb $55, %bl + 0x0f, 0x87, 0xbb, 0x00, 0x00, 0x00, //0x0000012a ja LBB0_21 + 0x0f, 0xb6, 0xfb, //0x00000130 movzbl %bl, %edi + 0x48, 0xbb, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000133 movabsq $36028797027352577, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x0000013d btq %rdi, %rbx + 0x0f, 0x83, 0xa4, 0x00, 0x00, 0x00, //0x00000141 jae LBB0_21 + //0x00000147 LBB0_10 + 0x4c, 0x39, 0xd8, //0x00000147 cmpq %r11, %rax + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x0000014a jae LBB0_20 + 0x48, 0xff, 0xc0, //0x00000150 incq %rax + 0x31, 0xc9, //0x00000153 xorl %ecx, %ecx + 0x31, 0xdb, //0x00000155 xorl %ebx, %ebx + 0x45, 0x31, 0xff, //0x00000157 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000015a .p2align 4, 0x90 + //0x00000160 LBB0_12 + 0x83, 0xfb, 0x12, //0x00000160 cmpl $18, %ebx + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00000163 jg LBB0_14 + 0x0f, 0xb6, 0xd2, //0x00000169 movzbl %dl, %edx + 0x4b, 0x8d, 0x3c, 0xbf, //0x0000016c leaq (%r15,%r15,4), %rdi + 0x4c, 0x8d, 0x7c, 0x7a, 0xd0, //0x00000170 leaq $-48(%rdx,%rdi,2), %r15 + 0xff, 0xc3, //0x00000175 incl %ebx + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000177 jmp LBB0_15 + 0x90, 0x90, 0x90, 0x90, //0x0000017c .p2align 4, 0x90 + //0x00000180 LBB0_14 + 0xff, 0xc1, //0x00000180 incl %ecx + //0x00000182 LBB0_15 + 0x49, 0x39, 0xc3, //0x00000182 cmpq %rax, %r11 + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00000185 je LBB0_22 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x0000018b movzbl (%r8,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00000190 leal $-48(%rdx), %edi + 0x48, 0xff, 0xc0, //0x00000193 incq %rax + 0x40, 0x80, 0xff, 0x0a, //0x00000196 cmpb $10, %dil + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x0000019a jb LBB0_12 + 0x31, 0xff, //0x000001a0 xorl %edi, %edi + 0x85, 0xc9, //0x000001a2 testl %ecx, %ecx + 0x40, 0x0f, 0x9f, 0xc7, //0x000001a4 setg %dil + 0x80, 0xfa, 0x2e, //0x000001a8 cmpb $46, %dl + 0x0f, 0x85, 0xdf, 0x02, 0x00, 0x00, //0x000001ab jne LBB0_66 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000001b1 movq $8, (%r14) + 0x4c, 0x39, 0xd8, //0x000001b8 cmpq %r11, %rax + 0x0f, 0x83, 0xa4, 0x01, 0x00, 0x00, //0x000001bb jae LBB0_50 + 0x89, 0x7d, 0xc0, //0x000001c1 movl %edi, $-64(%rbp) + 0x41, 0x8a, 0x14, 0x00, //0x000001c4 movb (%r8,%rax), %dl + 0x80, 0xc2, 0xd0, //0x000001c8 addb $-48, %dl + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x000001cb movl $8, %r10d + 0x80, 0xfa, 0x0a, //0x000001d1 cmpb $10, %dl + 0x0f, 0x83, 0x21, 0xff, 0xff, 0xff, //0x000001d4 jae LBB0_5 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x000001da jmp LBB0_24 + //0x000001df LBB0_20 + 0x31, 0xc9, //0x000001df xorl %ecx, %ecx + 0x31, 0xdb, //0x000001e1 xorl %ebx, %ebx + 0x45, 0x31, 0xff, //0x000001e3 xorl %r15d, %r15d + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000001e6 jmp LBB0_23 + //0x000001eb LBB0_21 + 0x48, 0x89, 0x0e, //0x000001eb movq %rcx, (%rsi) + 0xe9, 0x7c, 0x01, 0x00, 0x00, //0x000001ee jmp LBB0_51 + //0x000001f3 LBB0_22 + 0x4c, 0x89, 0xd8, //0x000001f3 movq %r11, %rax + //0x000001f6 LBB0_23 + 0x31, 0xd2, //0x000001f6 xorl %edx, %edx + 0x85, 0xc9, //0x000001f8 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x000001fa setg %dl + 0x89, 0x55, 0xc0, //0x000001fd movl %edx, $-64(%rbp) + 0x41, 0xba, 0x09, 0x00, 0x00, 0x00, //0x00000200 movl $9, %r10d + //0x00000206 LBB0_24 + 0x85, 0xc9, //0x00000206 testl %ecx, %ecx + 0x44, 0x89, 0x4d, 0xc8, //0x00000208 movl %r9d, $-56(%rbp) + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x0000020c jne LBB0_33 + //0x00000212 LBB0_25 + 0x4d, 0x85, 0xff, //0x00000212 testq %r15, %r15 + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00000215 jne LBB0_33 + 0x4c, 0x39, 0xd8, //0x0000021b cmpq %r11, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x0000021e jae LBB0_31 + 0x41, 0x89, 0xc1, //0x00000224 movl %eax, %r9d + 0x45, 0x29, 0xd9, //0x00000227 subl %r11d, %r9d + 0x31, 0xdb, //0x0000022a xorl %ebx, %ebx + 0x31, 0xc9, //0x0000022c xorl %ecx, %ecx + 0x90, 0x90, //0x0000022e .p2align 4, 0x90 + //0x00000230 LBB0_28 + 0x41, 0x80, 0x3c, 0x00, 0x30, //0x00000230 cmpb $48, (%r8,%rax) + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000235 jne LBB0_32 + 0x48, 0xff, 0xc0, //0x0000023b incq %rax + 0xff, 0xc9, //0x0000023e decl %ecx + 0x49, 0x39, 0xc3, //0x00000240 cmpq %rax, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000243 jne LBB0_28 + 0x45, 0x31, 0xff, //0x00000249 xorl %r15d, %r15d + 0x41, 0x83, 0xfa, 0x09, //0x0000024c cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x00000250 movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000254 movq %r11, $-88(%rbp) + 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00000258 je LBB0_53 + 0xe9, 0x6c, 0x01, 0x00, 0x00, //0x0000025e jmp LBB0_57 + //0x00000263 LBB0_31 + 0x31, 0xc9, //0x00000263 xorl %ecx, %ecx + 0x31, 0xdb, //0x00000265 xorl %ebx, %ebx + //0x00000267 LBB0_32 + 0x45, 0x31, 0xff, //0x00000267 xorl %r15d, %r15d + //0x0000026a LBB0_33 + 0x4c, 0x39, 0xd8, //0x0000026a cmpq %r11, %rax + 0x0f, 0x83, 0x41, 0x00, 0x00, 0x00, //0x0000026d jae LBB0_38 + 0x83, 0xfb, 0x12, //0x00000273 cmpl $18, %ebx + 0x0f, 0x8f, 0x38, 0x00, 0x00, 0x00, //0x00000276 jg LBB0_38 + 0x90, 0x90, 0x90, 0x90, //0x0000027c .p2align 4, 0x90 + //0x00000280 LBB0_35 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x00000280 movzbl (%r8,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00000285 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x00000288 cmpb $9, %dil + 0x0f, 0x87, 0x22, 0x00, 0x00, 0x00, //0x0000028c ja LBB0_38 + 0x4b, 0x8d, 0x3c, 0xbf, //0x00000292 leaq (%r15,%r15,4), %rdi + 0x4c, 0x8d, 0x7c, 0x7a, 0xd0, //0x00000296 leaq $-48(%rdx,%rdi,2), %r15 + 0xff, 0xc9, //0x0000029b decl %ecx + 0x48, 0xff, 0xc0, //0x0000029d incq %rax + 0x83, 0xfb, 0x11, //0x000002a0 cmpl $17, %ebx + 0x0f, 0x8f, 0x0b, 0x00, 0x00, 0x00, //0x000002a3 jg LBB0_38 + 0xff, 0xc3, //0x000002a9 incl %ebx + 0x4c, 0x39, 0xd8, //0x000002ab cmpq %r11, %rax + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x000002ae jb LBB0_35 + //0x000002b4 LBB0_38 + 0x4c, 0x39, 0xd8, //0x000002b4 cmpq %r11, %rax + 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x000002b7 jae LBB0_52 + 0x41, 0x8a, 0x1c, 0x00, //0x000002bd movb (%r8,%rax), %bl + 0x8d, 0x53, 0xd0, //0x000002c1 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x000002c4 cmpb $9, %dl + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x000002c7 ja LBB0_44 + 0x49, 0x8d, 0x53, 0xff, //0x000002cd leaq $-1(%r11), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d1 .p2align 4, 0x90 + //0x000002e0 LBB0_41 + 0x48, 0x39, 0xc2, //0x000002e0 cmpq %rax, %rdx + 0x0f, 0x84, 0xc4, 0x01, 0x00, 0x00, //0x000002e3 je LBB0_67 + 0x41, 0x0f, 0xb6, 0x5c, 0x00, 0x01, //0x000002e9 movzbl $1(%r8,%rax), %ebx + 0x48, 0xff, 0xc0, //0x000002ef incq %rax + 0x8d, 0x7b, 0xd0, //0x000002f2 leal $-48(%rbx), %edi + 0x40, 0x80, 0xff, 0x09, //0x000002f5 cmpb $9, %dil + 0x0f, 0x86, 0xe1, 0xff, 0xff, 0xff, //0x000002f9 jbe LBB0_41 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x000002ff movl $1, $-64(%rbp) + //0x00000306 LBB0_44 + 0x80, 0xcb, 0x20, //0x00000306 orb $32, %bl + 0x80, 0xfb, 0x65, //0x00000309 cmpb $101, %bl + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x0000030c jne LBB0_52 + 0x48, 0x8d, 0x50, 0x01, //0x00000312 leaq $1(%rax), %rdx + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00000316 movq $8, (%r14) + 0x4c, 0x39, 0xda, //0x0000031d cmpq %r11, %rdx + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x00000320 jae LBB0_50 + 0x41, 0x8a, 0x1c, 0x10, //0x00000326 movb (%r8,%rdx), %bl + 0x80, 0xfb, 0x2d, //0x0000032a cmpb $45, %bl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000032d je LBB0_48 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000333 movl $1, %r10d + 0x80, 0xfb, 0x2b, //0x00000339 cmpb $43, %bl + 0x0f, 0x85, 0x10, 0x05, 0x00, 0x00, //0x0000033c jne LBB0_102 + //0x00000342 LBB0_48 + 0x48, 0x83, 0xc0, 0x02, //0x00000342 addq $2, %rax + 0x4c, 0x39, 0xd8, //0x00000346 cmpq %r11, %rax + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000349 jae LBB0_50 + 0x31, 0xd2, //0x0000034f xorl %edx, %edx + 0x80, 0xfb, 0x2b, //0x00000351 cmpb $43, %bl + 0x0f, 0x94, 0xc2, //0x00000354 sete %dl + 0x44, 0x8d, 0x54, 0x12, 0xff, //0x00000357 leal $-1(%rdx,%rdx), %r10d + 0x41, 0x8a, 0x1c, 0x00, //0x0000035c movb (%r8,%rax), %bl + 0xe9, 0xf0, 0x04, 0x00, 0x00, //0x00000360 jmp LBB0_103 + //0x00000365 LBB0_50 + 0x4c, 0x89, 0x1e, //0x00000365 movq %r11, (%rsi) + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x00000368 movq $-1, (%r14) + //0x0000036f LBB0_51 + 0x48, 0x83, 0xc4, 0x40, //0x0000036f addq $64, %rsp + 0x5b, //0x00000373 popq %rbx + 0x41, 0x5c, //0x00000374 popq %r12 + 0x41, 0x5d, //0x00000376 popq %r13 + 0x41, 0x5e, //0x00000378 popq %r14 + 0x41, 0x5f, //0x0000037a popq %r15 + 0x5d, //0x0000037c popq %rbp + 0xc5, 0xf8, 0x77, //0x0000037d vzeroupper + 0xc3, //0x00000380 retq + //0x00000381 LBB0_52 + 0x41, 0x89, 0xc9, //0x00000381 movl %ecx, %r9d + 0x49, 0x89, 0xc3, //0x00000384 movq %rax, %r11 + 0x41, 0x83, 0xfa, 0x09, //0x00000387 cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x0000038b movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x0000038f movq %r11, $-88(%rbp) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00000393 jne LBB0_57 + //0x00000399 LBB0_53 + 0x45, 0x85, 0xc9, //0x00000399 testl %r9d, %r9d + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000039c jne LBB0_56 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000003a2 movabsq $-9223372036854775808, %rax + 0x48, 0x63, 0x4d, 0xc8, //0x000003ac movslq $-56(%rbp), %rcx + 0x4d, 0x85, 0xff, //0x000003b0 testq %r15, %r15 + 0x0f, 0x89, 0x3b, 0x01, 0x00, 0x00, //0x000003b3 jns LBB0_70 + 0x4c, 0x89, 0xfa, //0x000003b9 movq %r15, %rdx + 0x48, 0x21, 0xca, //0x000003bc andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x000003bf cmpq %rax, %rdx + 0x0f, 0x84, 0x2c, 0x01, 0x00, 0x00, //0x000003c2 je LBB0_70 + //0x000003c8 LBB0_56 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000003c8 movq $8, (%r14) + //0x000003cf LBB0_57 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000003cf movabsq $-9223372036854775808, %rdi + 0x4c, 0x89, 0xf8, //0x000003d9 movq %r15, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000003dc shrq $52, %rax + 0x4c, 0x89, 0x75, 0x98, //0x000003e0 movq %r14, $-104(%rbp) + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000003e4 je LBB0_61 + //0x000003ea LBB0_58 + 0x41, 0x8d, 0x81, 0x5c, 0x01, 0x00, 0x00, //0x000003ea leal $348(%r9), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000003f1 cmpl $695, %eax + 0x0f, 0x87, 0x84, 0x02, 0x00, 0x00, //0x000003f6 ja LBB0_85 + 0x4d, 0x85, 0xff, //0x000003fc testq %r15, %r15 + 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x000003ff je LBB0_76 + //0x00000405 LBB0_60 + 0x4d, 0x0f, 0xbd, 0xd7, //0x00000405 bsrq %r15, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x00000409 xorq $63, %r10 + 0xe9, 0x71, 0x01, 0x00, 0x00, //0x0000040d jmp LBB0_77 + //0x00000412 LBB0_61 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc7, //0x00000412 vmovq %r15, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0xe1, 0xfb, 0xff, 0xff, //0x00000417 vpunpckldq $-1055(%rip), %xmm0, %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0xe9, 0xfb, 0xff, 0xff, //0x0000041f vsubpd $-1047(%rip), %xmm0, %xmm0 /* LCPI0_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00000427 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x0000042d vaddsd %xmm0, %xmm1, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00000431 vmovq %xmm0, %rax + 0x8b, 0x4d, 0xc8, //0x00000436 movl $-56(%rbp), %ecx + 0x89, 0xcb, //0x00000439 movl %ecx, %ebx + 0xc1, 0xeb, 0x1f, //0x0000043b shrl $31, %ebx + 0x48, 0xc1, 0xe3, 0x3f, //0x0000043e shlq $63, %rbx + 0x48, 0x09, 0xc3, //0x00000442 orq %rax, %rbx + 0x4d, 0x85, 0xff, //0x00000445 testq %r15, %r15 + 0x0f, 0x84, 0x6b, 0x21, 0x00, 0x00, //0x00000448 je LBB0_515 + 0x45, 0x85, 0xc9, //0x0000044e testl %r9d, %r9d + 0x0f, 0x84, 0x62, 0x21, 0x00, 0x00, //0x00000451 je LBB0_515 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x00000457 vmovq %rbx, %xmm0 + 0x41, 0x8d, 0x41, 0xff, //0x0000045c leal $-1(%r9), %eax + 0x83, 0xf8, 0x24, //0x00000460 cmpl $36, %eax + 0x0f, 0x87, 0x65, 0x00, 0x00, 0x00, //0x00000463 ja LBB0_68 + 0x41, 0x83, 0xf9, 0x17, //0x00000469 cmpl $23, %r9d + 0x0f, 0x8c, 0xbf, 0x00, 0x00, 0x00, //0x0000046d jl LBB0_71 + 0x49, 0x63, 0xc1, //0x00000473 movslq %r9d, %rax + 0x48, 0x8d, 0x0d, 0x83, 0x21, 0x00, 0x00, //0x00000476 leaq $8579(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x0000047d vmulsd $-176(%rcx,%rax,8), %xmm0, %xmm0 + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00000486 movl $22, %eax + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x0000048b jmp LBB0_72 + //0x00000490 LBB0_66 + 0x89, 0x7d, 0xc0, //0x00000490 movl %edi, $-64(%rbp) + 0x48, 0xff, 0xc8, //0x00000493 decq %rax + 0x41, 0xba, 0x09, 0x00, 0x00, 0x00, //0x00000496 movl $9, %r10d + 0x85, 0xc9, //0x0000049c testl %ecx, %ecx + 0x44, 0x89, 0x4d, 0xc8, //0x0000049e movl %r9d, $-56(%rbp) + 0x0f, 0x84, 0x6a, 0xfd, 0xff, 0xff, //0x000004a2 je LBB0_25 + 0xe9, 0xbd, 0xfd, 0xff, 0xff, //0x000004a8 jmp LBB0_33 + //0x000004ad LBB0_67 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x000004ad movl $1, $-64(%rbp) + 0x41, 0x89, 0xc9, //0x000004b4 movl %ecx, %r9d + 0x41, 0x83, 0xfa, 0x09, //0x000004b7 cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x000004bb movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x000004bf movq %r11, $-88(%rbp) + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x000004c3 je LBB0_53 + 0xe9, 0x01, 0xff, 0xff, 0xff, //0x000004c9 jmp LBB0_57 + //0x000004ce LBB0_68 + 0x41, 0x83, 0xf9, 0xea, //0x000004ce cmpl $-22, %r9d + 0x0f, 0x82, 0x12, 0xff, 0xff, 0xff, //0x000004d2 jb LBB0_58 + 0x41, 0xf7, 0xd9, //0x000004d8 negl %r9d + 0x49, 0x63, 0xc1, //0x000004db movslq %r9d, %rax + 0x48, 0x8d, 0x0d, 0x1b, 0x21, 0x00, 0x00, //0x000004de leaq $8475(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xc1, //0x000004e5 vdivsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x000004ea vmovq %xmm0, %rbx + 0xe9, 0xc5, 0x20, 0x00, 0x00, //0x000004ef jmp LBB0_515 + //0x000004f4 LBB0_70 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc7, //0x000004f4 vmovq %r15, %xmm0 + 0x4c, 0x0f, 0xaf, 0xf9, //0x000004f9 imulq %rcx, %r15 + 0xc5, 0xf9, 0x62, 0x05, 0xfb, 0xfa, 0xff, 0xff, //0x000004fd vpunpckldq $-1285(%rip), %xmm0, %xmm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x03, 0xfb, 0xff, 0xff, //0x00000505 vsubpd $-1277(%rip), %xmm0, %xmm0 /* LCPI0_1+0(%rip) */ + 0x4d, 0x89, 0x7e, 0x10, //0x0000050d movq %r15, $16(%r14) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00000511 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00000517 vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x0000051b andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x0000051e vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00000523 orq %rax, %rcx + 0x49, 0x89, 0x4e, 0x08, //0x00000526 movq %rcx, $8(%r14) + 0x4c, 0x89, 0x1e, //0x0000052a movq %r11, (%rsi) + 0xe9, 0x3d, 0xfe, 0xff, 0xff, //0x0000052d jmp LBB0_51 + //0x00000532 LBB0_71 + 0x44, 0x89, 0xc8, //0x00000532 movl %r9d, %eax + //0x00000535 LBB0_72 + 0xc5, 0xf9, 0x2e, 0x05, 0xe3, 0xfa, 0xff, 0xff, //0x00000535 vucomisd $-1309(%rip), %xmm0 /* LCPI0_2+0(%rip) */ + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x0000053d ja LBB0_75 + 0xc5, 0xfb, 0x10, 0x0d, 0xdd, 0xfa, 0xff, 0xff, //0x00000543 vmovsd $-1315(%rip), %xmm1 /* LCPI0_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x0000054b vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x18, 0x00, 0x00, 0x00, //0x0000054f ja LBB0_75 + 0x89, 0xc0, //0x00000555 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xa2, 0x20, 0x00, 0x00, //0x00000557 leaq $8354(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x0000055e vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x00000563 vmovq %xmm0, %rbx + 0xe9, 0x4c, 0x20, 0x00, 0x00, //0x00000568 jmp LBB0_515 + //0x0000056d LBB0_75 + 0x41, 0x8d, 0x81, 0x5c, 0x01, 0x00, 0x00, //0x0000056d leal $348(%r9), %eax + 0x4d, 0x85, 0xff, //0x00000574 testq %r15, %r15 + 0x0f, 0x85, 0x88, 0xfe, 0xff, 0xff, //0x00000577 jne LBB0_60 + //0x0000057d LBB0_76 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000057d movl $64, %r10d + //0x00000583 LBB0_77 + 0x4c, 0x89, 0xfb, //0x00000583 movq %r15, %rbx + 0x44, 0x89, 0xd1, //0x00000586 movl %r10d, %ecx + 0x48, 0xd3, 0xe3, //0x00000589 shlq %cl, %rbx + 0x89, 0xc6, //0x0000058c movl %eax, %esi + 0x48, 0xc1, 0xe6, 0x04, //0x0000058e shlq $4, %rsi + 0x48, 0x8d, 0x05, 0x27, 0x21, 0x00, 0x00, //0x00000592 leaq $8487(%rip), %rax /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x8b, 0x44, 0x06, 0x08, //0x00000599 movq $8(%rsi,%rax), %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000059e movq %rax, $-80(%rbp) + 0x48, 0xf7, 0xe3, //0x000005a2 mulq %rbx + 0x49, 0x89, 0xc6, //0x000005a5 movq %rax, %r14 + 0x49, 0x89, 0xd3, //0x000005a8 movq %rdx, %r11 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000005ab andl $511, %edx + 0x48, 0x89, 0xd9, //0x000005b1 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x000005b4 notq %rcx + 0x48, 0x39, 0xc8, //0x000005b7 cmpq %rcx, %rax + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x000005ba jbe LBB0_82 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000005c0 cmpl $511, %edx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000005c6 jne LBB0_82 + 0x48, 0x89, 0xd8, //0x000005cc movq %rbx, %rax + 0x48, 0x8d, 0x15, 0xea, 0x20, 0x00, 0x00, //0x000005cf leaq $8426(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x16, //0x000005d6 mulq (%rsi,%rdx) + 0x49, 0x01, 0xd6, //0x000005da addq %rdx, %r14 + 0x49, 0x83, 0xd3, 0x00, //0x000005dd adcq $0, %r11 + 0x44, 0x89, 0xda, //0x000005e1 movl %r11d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000005e4 andl $511, %edx + 0x48, 0x39, 0xc8, //0x000005ea cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000005ed jbe LBB0_82 + 0x49, 0x83, 0xfe, 0xff, //0x000005f3 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000005f7 jne LBB0_82 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000005fd cmpl $511, %edx + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00000603 je LBB0_85 + //0x00000609 LBB0_82 + 0x4c, 0x89, 0xd8, //0x00000609 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x0000060c shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00000610 leal $9(%rax), %ecx + 0x49, 0xd3, 0xeb, //0x00000613 shrq %cl, %r11 + 0x4c, 0x09, 0xf2, //0x00000616 orq %r14, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00000619 jne LBB0_84 + 0x44, 0x89, 0xd9, //0x0000061f movl %r11d, %ecx + 0x83, 0xe1, 0x03, //0x00000622 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00000625 cmpl $1, %ecx + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x00000628 je LBB0_85 + //0x0000062e LBB0_84 + 0x41, 0x69, 0xc9, 0x6a, 0x52, 0x03, 0x00, //0x0000062e imull $217706, %r9d, %ecx + 0xc1, 0xf9, 0x10, //0x00000635 sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x00000638 addl $1087, %ecx + 0x4c, 0x63, 0xf1, //0x0000063e movslq %ecx, %r14 + 0x4c, 0x89, 0xf2, //0x00000641 movq %r14, %rdx + 0x4c, 0x29, 0xd2, //0x00000644 subq %r10, %rdx + 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x00000647 movabsq $126100789566373888, %r10 + 0x48, 0x83, 0xf0, 0x01, //0x00000651 xorq $1, %rax + 0x48, 0x29, 0xc2, //0x00000655 subq %rax, %rdx + 0x44, 0x89, 0xd8, //0x00000658 movl %r11d, %eax + 0x83, 0xe0, 0x01, //0x0000065b andl $1, %eax + 0x4c, 0x01, 0xd8, //0x0000065e addq %r11, %rax + 0x48, 0x89, 0xc1, //0x00000661 movq %rax, %rcx + 0x4c, 0x21, 0xd1, //0x00000664 andq %r10, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00000667 cmpq $1, %rcx + 0x48, 0x83, 0xda, 0xff, //0x0000066b sbbq $-1, %rdx + 0x48, 0x8d, 0x5a, 0xff, //0x0000066f leaq $-1(%rdx), %rbx + 0x48, 0x81, 0xfb, 0xfd, 0x07, 0x00, 0x00, //0x00000673 cmpq $2045, %rbx + 0x0f, 0x86, 0x6e, 0x00, 0x00, 0x00, //0x0000067a jbe LBB0_90 + //0x00000680 LBB0_85 + 0x48, 0x8b, 0x45, 0xa0, //0x00000680 movq $-96(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00000684 movq (%rax), %rsi + 0x4d, 0x8d, 0x14, 0x30, //0x00000687 leaq (%r8,%rsi), %r10 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000068b movq $-88(%rbp), %rcx + 0x48, 0x29, 0xf1, //0x0000068f subq %rsi, %rcx + 0x4d, 0x85, 0xed, //0x00000692 testq %r13, %r13 + 0x0f, 0x84, 0x36, 0x03, 0x00, 0x00, //0x00000695 je LBB0_116 + 0x41, 0xc6, 0x04, 0x24, 0x00, //0x0000069b movb $0, (%r12) + 0x49, 0x83, 0xfd, 0x01, //0x000006a0 cmpq $1, %r13 + 0x0f, 0x84, 0x27, 0x03, 0x00, 0x00, //0x000006a4 je LBB0_116 + 0x4d, 0x8d, 0x4d, 0xff, //0x000006aa leaq $-1(%r13), %r9 + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000006ae movl $1, %edi + 0x49, 0x81, 0xf9, 0x80, 0x00, 0x00, 0x00, //0x000006b3 cmpq $128, %r9 + 0x0f, 0x82, 0x00, 0x03, 0x00, 0x00, //0x000006ba jb LBB0_115 + 0x4c, 0x89, 0xcf, //0x000006c0 movq %r9, %rdi + 0x48, 0x83, 0xe7, 0x80, //0x000006c3 andq $-128, %rdi + 0x48, 0x8d, 0x57, 0x80, //0x000006c7 leaq $-128(%rdi), %rdx + 0x48, 0x89, 0xd3, //0x000006cb movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x000006ce shrq $7, %rbx + 0x48, 0xff, 0xc3, //0x000006d2 incq %rbx + 0x89, 0xd8, //0x000006d5 movl %ebx, %eax + 0x83, 0xe0, 0x03, //0x000006d7 andl $3, %eax + 0x48, 0x81, 0xfa, 0x80, 0x01, 0x00, 0x00, //0x000006da cmpq $384, %rdx + 0x0f, 0x83, 0xcf, 0x01, 0x00, 0x00, //0x000006e1 jae LBB0_108 + 0x31, 0xdb, //0x000006e7 xorl %ebx, %ebx + 0xe9, 0x79, 0x02, 0x00, 0x00, //0x000006e9 jmp LBB0_110 + //0x000006ee LBB0_90 + 0x48, 0x83, 0xf9, 0x01, //0x000006ee cmpq $1, %rcx + 0xb1, 0x02, //0x000006f2 movb $2, %cl + 0x80, 0xd9, 0x00, //0x000006f4 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x000006f7 shrq %cl, %rax + 0x48, 0xc1, 0xe2, 0x34, //0x000006fa shlq $52, %rdx + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000006fe movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x00000708 andq %rcx, %rax + 0x48, 0x09, 0xd0, //0x0000070b orq %rdx, %rax + 0x48, 0x89, 0xc3, //0x0000070e movq %rax, %rbx + 0x48, 0x09, 0xfb, //0x00000711 orq %rdi, %rbx + 0x8b, 0x4d, 0xc8, //0x00000714 movl $-56(%rbp), %ecx + 0x83, 0xf9, 0xff, //0x00000717 cmpl $-1, %ecx + 0x48, 0x0f, 0x45, 0xd8, //0x0000071a cmovneq %rax, %rbx + 0x83, 0x7d, 0xc0, 0x00, //0x0000071e cmpl $0, $-64(%rbp) + 0x0f, 0x84, 0x91, 0x1e, 0x00, 0x00, //0x00000722 je LBB0_515 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000728 movl $64, %ecx + 0x49, 0xff, 0xc7, //0x0000072d incq %r15 + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x00000730 je LBB0_93 + 0x49, 0x0f, 0xbd, 0xcf, //0x00000736 bsrq %r15, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x0000073a xorq $63, %rcx + //0x0000073e LBB0_93 + 0x48, 0x89, 0x4d, 0xc0, //0x0000073e movq %rcx, $-64(%rbp) + 0x49, 0xd3, 0xe7, //0x00000742 shlq %cl, %r15 + 0x48, 0x8b, 0x45, 0xb0, //0x00000745 movq $-80(%rbp), %rax + 0x49, 0xf7, 0xe7, //0x00000749 mulq %r15 + 0x49, 0x89, 0xc3, //0x0000074c movq %rax, %r11 + 0x49, 0x89, 0xd1, //0x0000074f movq %rdx, %r9 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00000752 andl $511, %edx + 0x4c, 0x89, 0xf9, //0x00000758 movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x0000075b notq %rcx + 0x48, 0x39, 0xc8, //0x0000075e cmpq %rcx, %rax + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x00000761 jbe LBB0_98 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00000767 cmpl $511, %edx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000076d jne LBB0_98 + 0x4c, 0x89, 0xf8, //0x00000773 movq %r15, %rax + 0x48, 0x8d, 0x15, 0x43, 0x1f, 0x00, 0x00, //0x00000776 leaq $8003(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x16, //0x0000077d mulq (%rsi,%rdx) + 0x49, 0x01, 0xd3, //0x00000781 addq %rdx, %r11 + 0x49, 0x83, 0xd1, 0x00, //0x00000784 adcq $0, %r9 + 0x44, 0x89, 0xca, //0x00000788 movl %r9d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000078b andl $511, %edx + 0x48, 0x39, 0xc8, //0x00000791 cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00000794 jbe LBB0_98 + 0x49, 0x83, 0xfb, 0xff, //0x0000079a cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000079e jne LBB0_98 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000007a4 cmpl $511, %edx + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x000007aa je LBB0_85 + //0x000007b0 LBB0_98 + 0x4c, 0x89, 0xc8, //0x000007b0 movq %r9, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x000007b3 shrq $63, %rax + 0x8d, 0x48, 0x09, //0x000007b7 leal $9(%rax), %ecx + 0x49, 0xd3, 0xe9, //0x000007ba shrq %cl, %r9 + 0x4c, 0x09, 0xda, //0x000007bd orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000007c0 jne LBB0_100 + 0x44, 0x89, 0xc9, //0x000007c6 movl %r9d, %ecx + 0x83, 0xe1, 0x03, //0x000007c9 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x000007cc cmpl $1, %ecx + 0x0f, 0x84, 0xab, 0xfe, 0xff, 0xff, //0x000007cf je LBB0_85 + //0x000007d5 LBB0_100 + 0x4c, 0x2b, 0x75, 0xc0, //0x000007d5 subq $-64(%rbp), %r14 + 0x48, 0x83, 0xf0, 0x01, //0x000007d9 xorq $1, %rax + 0x49, 0x29, 0xc6, //0x000007dd subq %rax, %r14 + 0x44, 0x89, 0xc8, //0x000007e0 movl %r9d, %eax + 0x83, 0xe0, 0x01, //0x000007e3 andl $1, %eax + 0x4c, 0x01, 0xc8, //0x000007e6 addq %r9, %rax + 0x49, 0x21, 0xc2, //0x000007e9 andq %rax, %r10 + 0x49, 0x83, 0xfa, 0x01, //0x000007ec cmpq $1, %r10 + 0x49, 0x83, 0xde, 0xff, //0x000007f0 sbbq $-1, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x000007f4 leaq $-1(%r14), %rcx + 0x48, 0x81, 0xf9, 0xfd, 0x07, 0x00, 0x00, //0x000007f8 cmpq $2045, %rcx + 0x0f, 0x87, 0x7b, 0xfe, 0xff, 0xff, //0x000007ff ja LBB0_85 + 0x49, 0x83, 0xfa, 0x01, //0x00000805 cmpq $1, %r10 + 0xb1, 0x02, //0x00000809 movb $2, %cl + 0x80, 0xd9, 0x00, //0x0000080b sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x0000080e shrq %cl, %rax + 0x49, 0xc1, 0xe6, 0x34, //0x00000811 shlq $52, %r14 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000815 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x0000081f andq %rcx, %rax + 0x4c, 0x09, 0xf0, //0x00000822 orq %r14, %rax + 0x48, 0x89, 0xc1, //0x00000825 movq %rax, %rcx + 0x48, 0x09, 0xf9, //0x00000828 orq %rdi, %rcx + 0x83, 0x7d, 0xc8, 0xff, //0x0000082b cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xc8, //0x0000082f cmovneq %rax, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc3, //0x00000833 vmovq %rbx, %xmm0 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc9, //0x00000838 vmovq %rcx, %xmm1 + 0xc5, 0xf9, 0x2e, 0xc1, //0x0000083d vucomisd %xmm1, %xmm0 + 0x0f, 0x85, 0x39, 0xfe, 0xff, 0xff, //0x00000841 jne LBB0_85 + 0x0f, 0x8b, 0x6c, 0x1d, 0x00, 0x00, //0x00000847 jnp LBB0_515 + 0xe9, 0x2e, 0xfe, 0xff, 0xff, //0x0000084d jmp LBB0_85 + //0x00000852 LBB0_102 + 0x48, 0x89, 0xd0, //0x00000852 movq %rdx, %rax + //0x00000855 LBB0_103 + 0x8d, 0x53, 0xd0, //0x00000855 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x00000858 cmpb $9, %dl + 0x0f, 0x87, 0x9a, 0xf8, 0xff, 0xff, //0x0000085b ja LBB0_5 + 0x45, 0x31, 0xc9, //0x00000861 xorl %r9d, %r9d + 0x4c, 0x39, 0xd8, //0x00000864 cmpq %r11, %rax + 0x48, 0x89, 0x75, 0xa0, //0x00000867 movq %rsi, $-96(%rbp) + 0x0f, 0x83, 0xae, 0x02, 0x00, 0x00, //0x0000086b jae LBB0_138 + 0x4c, 0x89, 0xdf, //0x00000871 movq %r11, %rdi + 0x49, 0xff, 0xcb, //0x00000874 decq %r11 + 0x45, 0x31, 0xc9, //0x00000877 xorl %r9d, %r9d + //0x0000087a LBB0_106 + 0x44, 0x89, 0xce, //0x0000087a movl %r9d, %esi + 0x41, 0x81, 0xf9, 0x10, 0x27, 0x00, 0x00, //0x0000087d cmpl $10000, %r9d + 0x8d, 0x14, 0xb6, //0x00000884 leal (%rsi,%rsi,4), %edx + 0x0f, 0xb6, 0xdb, //0x00000887 movzbl %bl, %ebx + 0x44, 0x8d, 0x4c, 0x53, 0xd0, //0x0000088a leal $-48(%rbx,%rdx,2), %r9d + 0x44, 0x0f, 0x4d, 0xce, //0x0000088f cmovgel %esi, %r9d + 0x49, 0x39, 0xc3, //0x00000893 cmpq %rax, %r11 + 0x0f, 0x84, 0x80, 0x02, 0x00, 0x00, //0x00000896 je LBB0_137 + 0x41, 0x0f, 0xb6, 0x5c, 0x00, 0x01, //0x0000089c movzbl $1(%r8,%rax), %ebx + 0x48, 0xff, 0xc0, //0x000008a2 incq %rax + 0x8d, 0x53, 0xd0, //0x000008a5 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x0a, //0x000008a8 cmpb $10, %dl + 0x0f, 0x82, 0xc9, 0xff, 0xff, 0xff, //0x000008ab jb LBB0_106 + 0xe9, 0x69, 0x02, 0x00, 0x00, //0x000008b1 jmp LBB0_138 + //0x000008b6 LBB0_108 + 0x48, 0x89, 0xc2, //0x000008b6 movq %rax, %rdx + 0x48, 0x29, 0xda, //0x000008b9 subq %rbx, %rdx + 0x31, 0xdb, //0x000008bc xorl %ebx, %ebx + 0xc5, 0xf9, 0x57, 0xc0, //0x000008be vxorpd %xmm0, %xmm0, %xmm0 + //0x000008c2 LBB0_109 + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x01, //0x000008c2 vmovupd %ymm0, $1(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x21, //0x000008c9 vmovupd %ymm0, $33(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x41, //0x000008d0 vmovupd %ymm0, $65(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x1c, 0x61, //0x000008d7 vmovupd %ymm0, $97(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x81, 0x00, 0x00, 0x00, //0x000008de vmovupd %ymm0, $129(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xa1, 0x00, 0x00, 0x00, //0x000008e8 vmovupd %ymm0, $161(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xc1, 0x00, 0x00, 0x00, //0x000008f2 vmovupd %ymm0, $193(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xe1, 0x00, 0x00, 0x00, //0x000008fc vmovupd %ymm0, $225(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x01, 0x01, 0x00, 0x00, //0x00000906 vmovupd %ymm0, $257(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x21, 0x01, 0x00, 0x00, //0x00000910 vmovupd %ymm0, $289(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x41, 0x01, 0x00, 0x00, //0x0000091a vmovupd %ymm0, $321(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x61, 0x01, 0x00, 0x00, //0x00000924 vmovupd %ymm0, $353(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0x81, 0x01, 0x00, 0x00, //0x0000092e vmovupd %ymm0, $385(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xa1, 0x01, 0x00, 0x00, //0x00000938 vmovupd %ymm0, $417(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xc1, 0x01, 0x00, 0x00, //0x00000942 vmovupd %ymm0, $449(%r12,%rbx) + 0xc4, 0xc1, 0x7d, 0x11, 0x84, 0x1c, 0xe1, 0x01, 0x00, 0x00, //0x0000094c vmovupd %ymm0, $481(%r12,%rbx) + 0x48, 0x81, 0xc3, 0x00, 0x02, 0x00, 0x00, //0x00000956 addq $512, %rbx + 0x48, 0x83, 0xc2, 0x04, //0x0000095d addq $4, %rdx + 0x0f, 0x85, 0x5b, 0xff, 0xff, 0xff, //0x00000961 jne LBB0_109 + //0x00000967 LBB0_110 + 0x48, 0x85, 0xc0, //0x00000967 testq %rax, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x0000096a je LBB0_113 + 0x48, 0xf7, 0xd8, //0x00000970 negq %rax + 0xc5, 0xf9, 0x57, 0xc0, //0x00000973 vxorpd %xmm0, %xmm0, %xmm0 + //0x00000977 LBB0_112 + 0x48, 0x89, 0xda, //0x00000977 movq %rbx, %rdx + 0x48, 0x83, 0xca, 0x01, //0x0000097a orq $1, %rdx + 0xc4, 0xc1, 0x7d, 0x11, 0x04, 0x14, //0x0000097e vmovupd %ymm0, (%r12,%rdx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x14, 0x20, //0x00000984 vmovupd %ymm0, $32(%r12,%rdx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x14, 0x40, //0x0000098b vmovupd %ymm0, $64(%r12,%rdx) + 0xc4, 0xc1, 0x7d, 0x11, 0x44, 0x14, 0x60, //0x00000992 vmovupd %ymm0, $96(%r12,%rdx) + 0x48, 0x83, 0xeb, 0x80, //0x00000999 subq $-128, %rbx + 0x48, 0xff, 0xc0, //0x0000099d incq %rax + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x000009a0 jne LBB0_112 + //0x000009a6 LBB0_113 + 0x49, 0x39, 0xf9, //0x000009a6 cmpq %rdi, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x000009a9 je LBB0_116 + 0x48, 0x83, 0xcf, 0x01, //0x000009af orq $1, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009b3 .p2align 4, 0x90 + //0x000009c0 LBB0_115 + 0x41, 0xc6, 0x04, 0x3c, 0x00, //0x000009c0 movb $0, (%r12,%rdi) + 0x48, 0xff, 0xc7, //0x000009c5 incq %rdi + 0x49, 0x39, 0xfd, //0x000009c8 cmpq %rdi, %r13 + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x000009cb jne LBB0_115 + //0x000009d1 LBB0_116 + 0x41, 0x8a, 0x12, //0x000009d1 movb (%r10), %dl + 0x31, 0xff, //0x000009d4 xorl %edi, %edi + 0x80, 0xfa, 0x2d, //0x000009d6 cmpb $45, %dl + 0x40, 0x0f, 0x94, 0xc7, //0x000009d9 sete %dil + 0x48, 0x39, 0xf9, //0x000009dd cmpq %rdi, %rcx + 0x0f, 0x8e, 0xa5, 0x00, 0x00, 0x00, //0x000009e0 jle LBB0_128 + 0x48, 0x89, 0x75, 0xc8, //0x000009e6 movq %rsi, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x000009ea xorl %r11d, %r11d + 0x88, 0x55, 0xd7, //0x000009ed movb %dl, $-41(%rbp) + 0xb2, 0x01, //0x000009f0 movb $1, %dl + 0x45, 0x31, 0xff, //0x000009f2 xorl %r15d, %r15d + 0x45, 0x31, 0xf6, //0x000009f5 xorl %r14d, %r14d + 0x31, 0xc0, //0x000009f8 xorl %eax, %eax + 0x45, 0x31, 0xc9, //0x000009fa xorl %r9d, %r9d + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000009fd jmp LBB0_120 + //0x00000a02 LBB0_118 + 0x41, 0xff, 0xcb, //0x00000a02 decl %r11d + 0x31, 0xc0, //0x00000a05 xorl %eax, %eax + //0x00000a07 LBB0_119 + 0x48, 0xff, 0xc7, //0x00000a07 incq %rdi + 0x48, 0x39, 0xcf, //0x00000a0a cmpq %rcx, %rdi + 0x0f, 0x9c, 0xc2, //0x00000a0d setl %dl + 0x48, 0x39, 0xf9, //0x00000a10 cmpq %rdi, %rcx + 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, //0x00000a13 je LBB0_129 + //0x00000a19 LBB0_120 + 0x41, 0x0f, 0xb6, 0x1c, 0x3a, //0x00000a19 movzbl (%r10,%rdi), %ebx + 0x8d, 0x73, 0xd0, //0x00000a1e leal $-48(%rbx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00000a21 cmpb $9, %sil + 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00000a25 ja LBB0_125 + 0x85, 0xc0, //0x00000a2b testl %eax, %eax + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000a2d jne LBB0_123 + 0x80, 0xfb, 0x30, //0x00000a33 cmpb $48, %bl + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00000a36 je LBB0_118 + //0x00000a3c LBB0_123 + 0x49, 0x63, 0xc7, //0x00000a3c movslq %r15d, %rax + 0x49, 0x39, 0xc5, //0x00000a3f cmpq %rax, %r13 + 0x0f, 0x86, 0x2f, 0x00, 0x00, 0x00, //0x00000a42 jbe LBB0_127 + 0x41, 0x88, 0x1c, 0x04, //0x00000a48 movb %bl, (%r12,%rax) + 0x41, 0xff, 0xc7, //0x00000a4c incl %r15d + 0x44, 0x89, 0xf8, //0x00000a4f movl %r15d, %eax + 0xe9, 0xb0, 0xff, 0xff, 0xff, //0x00000a52 jmp LBB0_119 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a57 .p2align 4, 0x90 + //0x00000a60 LBB0_125 + 0x80, 0xfb, 0x2e, //0x00000a60 cmpb $46, %bl + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x00000a63 jne LBB0_130 + 0x41, 0x89, 0xc3, //0x00000a69 movl %eax, %r11d + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000a6c movl $1, %r9d + 0xe9, 0x90, 0xff, 0xff, 0xff, //0x00000a72 jmp LBB0_119 + //0x00000a77 LBB0_127 + 0x80, 0xfb, 0x30, //0x00000a77 cmpb $48, %bl + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000a7a movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00000a7f cmovnel %eax, %r14d + 0x44, 0x89, 0xf8, //0x00000a83 movl %r15d, %eax + 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x00000a86 jmp LBB0_119 + //0x00000a8b LBB0_128 + 0x45, 0x31, 0xc9, //0x00000a8b xorl %r9d, %r9d + 0x31, 0xf6, //0x00000a8e xorl %esi, %esi + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000a90 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000a9a movabsq $4503599627370495, %r10 + 0xe9, 0xfd, 0x1a, 0x00, 0x00, //0x00000aa4 jmp LBB0_514 + //0x00000aa9 LBB0_129 + 0x45, 0x85, 0xc9, //0x00000aa9 testl %r9d, %r9d + 0x45, 0x0f, 0x44, 0xdf, //0x00000aac cmovel %r15d, %r11d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000ab0 movabsq $4503599627370495, %r10 + 0xe9, 0xec, 0x00, 0x00, 0x00, //0x00000aba jmp LBB0_148 + //0x00000abf LBB0_130 + 0x45, 0x85, 0xc9, //0x00000abf testl %r9d, %r9d + 0x45, 0x0f, 0x44, 0xdf, //0x00000ac2 cmovel %r15d, %r11d + 0xf6, 0xc2, 0x01, //0x00000ac6 testb $1, %dl + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000ac9 je LBB0_136 + 0x80, 0xcb, 0x20, //0x00000acf orb $32, %bl + 0x80, 0xfb, 0x65, //0x00000ad2 cmpb $101, %bl + 0x48, 0x8b, 0x5d, 0xa8, //0x00000ad5 movq $-88(%rbp), %rbx + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00000ad9 jne LBB0_136 + 0x48, 0x8d, 0x57, 0x01, //0x00000adf leaq $1(%rdi), %rdx + 0x89, 0xd0, //0x00000ae3 movl %edx, %eax + 0x41, 0x8a, 0x04, 0x02, //0x00000ae5 movb (%r10,%rax), %al + 0x3c, 0x2b, //0x00000ae9 cmpb $43, %al + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000aeb je LBB0_139 + 0x3c, 0x2d, //0x00000af1 cmpb $45, %al + 0x48, 0x8b, 0x45, 0xc8, //0x00000af3 movq $-56(%rbp), %rax + 0x0f, 0x85, 0x50, 0x00, 0x00, 0x00, //0x00000af7 jne LBB0_140 + 0x83, 0xc7, 0x02, //0x00000afd addl $2, %edi + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00000b00 movl $-1, %r9d + 0x89, 0xfa, //0x00000b06 movl %edi, %edx + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00000b08 jmp LBB0_141 + //0x00000b0d LBB0_136 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000b0d movabsq $4503599627370495, %r10 + 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x00000b17 jmp LBB0_148 + //0x00000b1c LBB0_137 + 0x48, 0x89, 0xf8, //0x00000b1c movq %rdi, %rax + //0x00000b1f LBB0_138 + 0x45, 0x0f, 0xaf, 0xca, //0x00000b1f imull %r10d, %r9d + 0x41, 0x01, 0xc9, //0x00000b23 addl %ecx, %r9d + 0x48, 0x89, 0x45, 0xa8, //0x00000b26 movq %rax, $-88(%rbp) + 0xe9, 0xa0, 0xf8, 0xff, 0xff, //0x00000b2a jmp LBB0_57 + //0x00000b2f LBB0_139 + 0x83, 0xc7, 0x02, //0x00000b2f addl $2, %edi + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000b32 movl $1, %r9d + 0x89, 0xfa, //0x00000b38 movl %edi, %edx + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000b3a movabsq $4503599627370495, %r10 + 0x48, 0x8b, 0x45, 0xc8, //0x00000b44 movq $-56(%rbp), %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00000b48 jmp LBB0_142 + //0x00000b4d LBB0_140 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000b4d movl $1, %r9d + //0x00000b53 LBB0_141 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000b53 movabsq $4503599627370495, %r10 + //0x00000b5d LBB0_142 + 0x48, 0x63, 0xfa, //0x00000b5d movslq %edx, %rdi + 0x31, 0xd2, //0x00000b60 xorl %edx, %edx + 0x48, 0x39, 0xf9, //0x00000b62 cmpq %rdi, %rcx + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00000b65 jle LBB0_147 + 0x48, 0x01, 0xf8, //0x00000b6b addq %rdi, %rax + 0x31, 0xd2, //0x00000b6e xorl %edx, %edx + //0x00000b70 LBB0_144 + 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00000b70 cmpl $9999, %edx + 0x0f, 0x8f, 0x25, 0x00, 0x00, 0x00, //0x00000b76 jg LBB0_147 + 0x41, 0x0f, 0xb6, 0x0c, 0x00, //0x00000b7c movzbl (%r8,%rax), %ecx + 0x8d, 0x71, 0xd0, //0x00000b81 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00000b84 cmpb $9, %sil + 0x0f, 0x87, 0x13, 0x00, 0x00, 0x00, //0x00000b88 ja LBB0_147 + 0x8d, 0x14, 0x92, //0x00000b8e leal (%rdx,%rdx,4), %edx + 0x8d, 0x54, 0x51, 0xd0, //0x00000b91 leal $-48(%rcx,%rdx,2), %edx + 0x48, 0xff, 0xc0, //0x00000b95 incq %rax + 0x48, 0x39, 0xc3, //0x00000b98 cmpq %rax, %rbx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000b9b jne LBB0_144 + //0x00000ba1 LBB0_147 + 0x41, 0x0f, 0xaf, 0xd1, //0x00000ba1 imull %r9d, %edx + 0x44, 0x01, 0xda, //0x00000ba5 addl %r11d, %edx + 0x41, 0x89, 0xd3, //0x00000ba8 movl %edx, %r11d + //0x00000bab LBB0_148 + 0x45, 0x85, 0xff, //0x00000bab testl %r15d, %r15d + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000bae movabsq $-9223372036854775808, %rdi + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000bb8 je LBB0_151 + 0x31, 0xf6, //0x00000bbe xorl %esi, %esi + 0x41, 0x81, 0xfb, 0x36, 0x01, 0x00, 0x00, //0x00000bc0 cmpl $310, %r11d + 0x0f, 0x8e, 0x1f, 0x00, 0x00, 0x00, //0x00000bc7 jle LBB0_152 + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00000bcd movabsq $9218868437227405312, %r9 + 0x8a, 0x55, 0xd7, //0x00000bd7 movb $-41(%rbp), %dl + 0xe9, 0xc7, 0x19, 0x00, 0x00, //0x00000bda jmp LBB0_514 + //0x00000bdf LBB0_151 + 0x45, 0x31, 0xc9, //0x00000bdf xorl %r9d, %r9d + 0x31, 0xf6, //0x00000be2 xorl %esi, %esi + 0x8a, 0x55, 0xd7, //0x00000be4 movb $-41(%rbp), %dl + 0xe9, 0xba, 0x19, 0x00, 0x00, //0x00000be7 jmp LBB0_514 + //0x00000bec LBB0_152 + 0x41, 0x81, 0xfb, 0xb6, 0xfe, 0xff, 0xff, //0x00000bec cmpl $-330, %r11d + 0x0f, 0x8d, 0x0b, 0x00, 0x00, 0x00, //0x00000bf3 jge LBB0_154 + 0x45, 0x31, 0xc9, //0x00000bf9 xorl %r9d, %r9d + 0x8a, 0x55, 0xd7, //0x00000bfc movb $-41(%rbp), %dl + 0xe9, 0xa2, 0x19, 0x00, 0x00, //0x00000bff jmp LBB0_514 + //0x00000c04 LBB0_154 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, //0x00000c04 movabsq $1152921504606846975, %r10 + 0x45, 0x85, 0xdb, //0x00000c0e testl %r11d, %r11d + 0x0f, 0x8e, 0xd5, 0x07, 0x00, 0x00, //0x00000c11 jle LBB0_270 + 0x31, 0xf6, //0x00000c17 xorl %esi, %esi + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000c19 movl $1, %r8d + 0x44, 0x89, 0xf8, //0x00000c1f movl %r15d, %eax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00000c22 jmp LBB0_158 + //0x00000c27 LBB0_156 + 0x89, 0xc7, //0x00000c27 movl %eax, %edi + //0x00000c29 LBB0_157 + 0x48, 0x8b, 0x75, 0xc0, //0x00000c29 movq $-64(%rbp), %rsi + 0x03, 0x75, 0xbc, //0x00000c2d addl $-68(%rbp), %esi + 0x89, 0xf8, //0x00000c30 movl %edi, %eax + 0x45, 0x85, 0xdb, //0x00000c32 testl %r11d, %r11d + 0x0f, 0x8e, 0xb4, 0x07, 0x00, 0x00, //0x00000c35 jle LBB0_271 + //0x00000c3b LBB0_158 + 0x48, 0x89, 0x75, 0xc0, //0x00000c3b movq %rsi, $-64(%rbp) + 0xb9, 0x1b, 0x00, 0x00, 0x00, //0x00000c3f movl $27, %ecx + 0x41, 0x83, 0xfb, 0x08, //0x00000c44 cmpl $8, %r11d + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x00000c48 jg LBB0_160 + 0x44, 0x89, 0xd9, //0x00000c4e movl %r11d, %ecx + 0x48, 0x8d, 0x15, 0xf8, 0x45, 0x00, 0x00, //0x00000c51 leaq $17912(%rip), %rdx /* _POW_TAB+0(%rip) */ + 0x8b, 0x0c, 0x8a, //0x00000c58 movl (%rdx,%rcx,4), %ecx + //0x00000c5b LBB0_160 + 0x85, 0xc0, //0x00000c5b testl %eax, %eax + 0x89, 0x4d, 0xbc, //0x00000c5d movl %ecx, $-68(%rbp) + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00000c60 je LBB0_156 + 0x41, 0x89, 0xc9, //0x00000c66 movl %ecx, %r9d + 0x41, 0xf7, 0xd9, //0x00000c69 negl %r9d + 0x85, 0xc9, //0x00000c6c testl %ecx, %ecx + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x00000c6e je LBB0_156 + 0x0f, 0x88, 0x90, 0x01, 0x00, 0x00, //0x00000c74 js LBB0_187 + //0x00000c7a LBB0_163 + 0x41, 0x83, 0xf9, 0xc3, //0x00000c7a cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x00000c7e jle LBB0_167 + 0xe9, 0xcd, 0x03, 0x00, 0x00, //0x00000c84 jmp LBB0_219 + //0x00000c89 LBB0_164 + 0xff, 0xc8, //0x00000c89 decl %eax + 0x41, 0x89, 0xc7, //0x00000c8b movl %eax, %r15d + //0x00000c8e LBB0_165 + 0x45, 0x85, 0xff, //0x00000c8e testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00000c91 cmovel %r15d, %r11d + //0x00000c95 LBB0_166 + 0x44, 0x8d, 0x49, 0x3c, //0x00000c95 leal $60(%rcx), %r9d + 0x44, 0x89, 0xf8, //0x00000c99 movl %r15d, %eax + 0x83, 0xf9, 0x88, //0x00000c9c cmpl $-120, %ecx + 0x0f, 0x8d, 0xa2, 0x03, 0x00, 0x00, //0x00000c9f jge LBB0_218 + //0x00000ca5 LBB0_167 + 0x44, 0x89, 0xc9, //0x00000ca5 movl %r9d, %ecx + 0x48, 0x63, 0xf8, //0x00000ca8 movslq %eax, %rdi + 0x31, 0xf6, //0x00000cab xorl %esi, %esi + 0x31, 0xd2, //0x00000cad xorl %edx, %edx + 0x90, //0x00000caf .p2align 4, 0x90 + //0x00000cb0 LBB0_168 + 0x48, 0x39, 0xfe, //0x00000cb0 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000cb3 jge LBB0_170 + 0x48, 0x8d, 0x14, 0x92, //0x00000cb9 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x00000cbd movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00000cc2 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00000cc7 incq %rsi + 0x49, 0x8d, 0x5a, 0x01, //0x00000cca leaq $1(%r10), %rbx + 0x48, 0x39, 0xda, //0x00000cce cmpq %rbx, %rdx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00000cd1 jb LBB0_168 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000cd7 jmp LBB0_172 + 0x90, 0x90, 0x90, 0x90, //0x00000cdc .p2align 4, 0x90 + //0x00000ce0 LBB0_170 + 0x48, 0x85, 0xd2, //0x00000ce0 testq %rdx, %rdx + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00000ce3 je LBB0_185 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ce9 .p2align 4, 0x90 + //0x00000cf0 LBB0_171 + 0x48, 0x01, 0xd2, //0x00000cf0 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000cf3 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00000cf7 incl %esi + 0x49, 0x8d, 0x7a, 0x01, //0x00000cf9 leaq $1(%r10), %rdi + 0x48, 0x39, 0xfa, //0x00000cfd cmpq %rdi, %rdx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000d00 jb LBB0_171 + //0x00000d06 LBB0_172 + 0x41, 0x29, 0xf3, //0x00000d06 subl %esi, %r11d + 0x31, 0xff, //0x00000d09 xorl %edi, %edi + 0x39, 0xc6, //0x00000d0b cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00000d0d jge LBB0_177 + 0x48, 0x63, 0xc6, //0x00000d13 movslq %esi, %rax + 0x49, 0x63, 0xf7, //0x00000d16 movslq %r15d, %rsi + 0x49, 0x8d, 0x3c, 0x04, //0x00000d19 leaq (%r12,%rax), %rdi + 0x45, 0x31, 0xff, //0x00000d1d xorl %r15d, %r15d + //0x00000d20 .p2align 4, 0x90 + //0x00000d20 LBB0_174 + 0x48, 0x89, 0xd3, //0x00000d20 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00000d23 shrq $60, %rbx + 0x4c, 0x21, 0xd2, //0x00000d27 andq %r10, %rdx + 0x80, 0xcb, 0x30, //0x00000d2a orb $48, %bl + 0x43, 0x88, 0x1c, 0x3c, //0x00000d2d movb %bl, (%r12,%r15) + 0x48, 0x8d, 0x14, 0x92, //0x00000d31 leaq (%rdx,%rdx,4), %rdx + 0x4a, 0x0f, 0xbe, 0x1c, 0x3f, //0x00000d35 movsbq (%rdi,%r15), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00000d3a leaq $-48(%rbx,%rdx,2), %rdx + 0x4a, 0x8d, 0x5c, 0x38, 0x01, //0x00000d3f leaq $1(%rax,%r15), %rbx + 0x49, 0xff, 0xc7, //0x00000d44 incq %r15 + 0x48, 0x39, 0xf3, //0x00000d47 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00000d4a jl LBB0_174 + 0x48, 0x85, 0xd2, //0x00000d50 testq %rdx, %rdx + 0x0f, 0x84, 0x5f, 0x00, 0x00, 0x00, //0x00000d53 je LBB0_181 + 0x44, 0x89, 0xff, //0x00000d59 movl %r15d, %edi + //0x00000d5c LBB0_177 + 0x41, 0x89, 0xff, //0x00000d5c movl %edi, %r15d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000d5f jmp LBB0_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d64 .p2align 4, 0x90 + //0x00000d70 LBB0_178 + 0x48, 0x85, 0xc0, //0x00000d70 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000d73 cmovnel %r8d, %r14d + 0x48, 0x01, 0xd2, //0x00000d77 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000d7a leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00000d7e testq %rdx, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00000d81 je LBB0_181 + //0x00000d87 LBB0_179 + 0x48, 0x89, 0xd0, //0x00000d87 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x3c, //0x00000d8a shrq $60, %rax + 0x4c, 0x21, 0xd2, //0x00000d8e andq %r10, %rdx + 0x49, 0x63, 0xf7, //0x00000d91 movslq %r15d, %rsi + 0x49, 0x39, 0xf5, //0x00000d94 cmpq %rsi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00000d97 jbe LBB0_178 + 0x0c, 0x30, //0x00000d9d orb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00000d9f movb %al, (%r12,%rsi) + 0xff, 0xc6, //0x00000da3 incl %esi + 0x41, 0x89, 0xf7, //0x00000da5 movl %esi, %r15d + 0x48, 0x01, 0xd2, //0x00000da8 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000dab leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00000daf testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000db2 jne LBB0_179 + //0x00000db8 LBB0_181 + 0x41, 0xff, 0xc3, //0x00000db8 incl %r11d + 0x45, 0x85, 0xff, //0x00000dbb testl %r15d, %r15d + 0x0f, 0x8e, 0xca, 0xfe, 0xff, 0xff, //0x00000dbe jle LBB0_165 + 0x44, 0x89, 0xf8, //0x00000dc4 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000dc7 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x00000dcd jne LBB0_166 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000dd3 .p2align 4, 0x90 + //0x00000de0 LBB0_183 + 0x48, 0x83, 0xf8, 0x01, //0x00000de0 cmpq $1, %rax + 0x0f, 0x8e, 0x9f, 0xfe, 0xff, 0xff, //0x00000de4 jle LBB0_164 + 0x4c, 0x8d, 0x78, 0xff, //0x00000dea leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00000dee cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00000df4 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00000df7 je LBB0_183 + 0xe9, 0x93, 0xfe, 0xff, 0xff, //0x00000dfd jmp LBB0_166 + //0x00000e02 LBB0_185 + 0x45, 0x31, 0xff, //0x00000e02 xorl %r15d, %r15d + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00000e05 jmp LBB0_166 + //0x00000e0a LBB0_187 + 0x83, 0xf9, 0xc3, //0x00000e0a cmpl $-61, %ecx + 0x0f, 0x8f, 0xbe, 0x03, 0x00, 0x00, //0x00000e0d jg LBB0_238 + 0x48, 0x8d, 0x3d, 0x66, 0x44, 0x00, 0x00, //0x00000e13 leaq $17510(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00000e1a jmp LBB0_192 + //0x00000e1f LBB0_189 + 0x48, 0x8d, 0x3d, 0x5a, 0x44, 0x00, 0x00, //0x00000e1f leaq $17498(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + //0x00000e26 LBB0_190 + 0x45, 0x85, 0xff, //0x00000e26 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00000e29 cmovel %r15d, %r11d + //0x00000e2d LBB0_191 + 0x44, 0x8d, 0x4b, 0xc4, //0x00000e2d leal $-60(%rbx), %r9d + 0x44, 0x89, 0xf8, //0x00000e31 movl %r15d, %eax + 0x83, 0xfb, 0x78, //0x00000e34 cmpl $120, %ebx + 0x0f, 0x8e, 0x85, 0x03, 0x00, 0x00, //0x00000e37 jle LBB0_237 + //0x00000e3d LBB0_192 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000e3d movl $1, %r8d + 0x44, 0x89, 0xcb, //0x00000e43 movl %r9d, %ebx + 0x48, 0x63, 0xf0, //0x00000e46 movslq %eax, %rsi + 0x85, 0xf6, //0x00000e49 testl %esi, %esi + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000e4b je LBB0_198 + 0xb2, 0x38, //0x00000e51 movb $56, %dl + 0x31, 0xc9, //0x00000e53 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e55 .p2align 4, 0x90 + //0x00000e60 LBB0_194 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00000e60 movl $19, %r9d + 0x48, 0x83, 0xf9, 0x2a, //0x00000e66 cmpq $42, %rcx + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00000e6a je LBB0_199 + 0x41, 0x38, 0x14, 0x0c, //0x00000e70 cmpb %dl, (%r12,%rcx) + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x00000e74 jne LBB0_216 + 0x0f, 0xb6, 0x94, 0x39, 0x65, 0x18, 0x00, 0x00, //0x00000e7a movzbl $6245(%rcx,%rdi), %edx + 0x48, 0xff, 0xc1, //0x00000e82 incq %rcx + 0x48, 0x39, 0xce, //0x00000e85 cmpq %rcx, %rsi + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00000e88 jne LBB0_194 + 0x84, 0xd2, //0x00000e8e testb %dl, %dl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00000e90 je LBB0_199 + //0x00000e96 LBB0_198 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x00000e96 movl $18, %r9d + //0x00000e9c LBB0_199 + 0x85, 0xc0, //0x00000e9c testl %eax, %eax + 0x0f, 0x8e, 0xb7, 0x00, 0x00, 0x00, //0x00000e9e jle LBB0_207 + 0x48, 0x89, 0x5d, 0xb0, //0x00000ea4 movq %rbx, $-80(%rbp) + 0x4c, 0x89, 0x5d, 0xc8, //0x00000ea8 movq %r11, $-56(%rbp) + 0x44, 0x01, 0xc8, //0x00000eac addl %r9d, %eax + 0x48, 0x98, //0x00000eaf cltq + 0x48, 0x89, 0xc3, //0x00000eb1 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x00000eb4 shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x00000eb8 decq %rax + 0x48, 0xff, 0xc6, //0x00000ebb incq %rsi + 0x31, 0xc9, //0x00000ebe xorl %ecx, %ecx + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00000ec0 jmp LBB0_203 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ec5 .p2align 4, 0x90 + //0x00000ed0 LBB0_201 + 0x48, 0x85, 0xc0, //0x00000ed0 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000ed3 cmovnel %r8d, %r14d + //0x00000ed7 LBB0_202 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00000ed7 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x00000ee1 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x00000ee4 leaq $-1(%r11), %rax + 0x48, 0xff, 0xce, //0x00000ee8 decq %rsi + 0x48, 0x83, 0xfe, 0x01, //0x00000eeb cmpq $1, %rsi + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00000eef jle LBB0_205 + //0x00000ef5 LBB0_203 + 0x49, 0x89, 0xc3, //0x00000ef5 movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x7c, 0x34, 0xfe, //0x00000ef8 movzbl $-2(%r12,%rsi), %edi + 0x48, 0xc1, 0xe7, 0x3c, //0x00000efe shlq $60, %rdi + 0x48, 0x01, 0xcf, //0x00000f02 addq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x00000f05 movq %rdi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000f08 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00000f12 mulq %rcx + 0x48, 0x89, 0xd1, //0x00000f15 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00000f18 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00000f1c leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00000f20 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf8, //0x00000f24 movq %rdi, %rax + 0x48, 0x29, 0xd0, //0x00000f27 subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x00000f2a cmpq %r13, %r11 + 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x00000f2d jae LBB0_201 + 0x04, 0x30, //0x00000f33 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x00000f35 movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00000f39 jmp LBB0_202 + //0x00000f3e LBB0_205 + 0x48, 0x83, 0xff, 0x0a, //0x00000f3e cmpq $10, %rdi + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000f42 jae LBB0_208 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00000f48 movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f4c movl $1, %r8d + 0x48, 0x8b, 0x5d, 0xb0, //0x00000f52 movq $-80(%rbp), %rbx + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00000f56 jmp LBB0_212 + //0x00000f5b LBB0_207 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f5b movl $1, %r8d + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00000f61 jmp LBB0_212 + //0x00000f66 LBB0_208 + 0x49, 0x63, 0xf3, //0x00000f66 movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x00000f69 decq %rsi + 0x4c, 0x8b, 0x5d, 0xc8, //0x00000f6c movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f70 movl $1, %r8d + 0x48, 0x8b, 0x5d, 0xb0, //0x00000f76 movq $-80(%rbp), %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00000f7a jmp LBB0_210 + 0x90, //0x00000f7f .p2align 4, 0x90 + //0x00000f80 LBB0_209 + 0x48, 0x85, 0xc0, //0x00000f80 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000f83 cmovnel %r8d, %r14d + 0x48, 0xff, 0xce, //0x00000f87 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00000f8a cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00000f8e movq %rdx, %rcx + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x00000f91 jbe LBB0_212 + //0x00000f97 LBB0_210 + 0x48, 0x89, 0xc8, //0x00000f97 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000f9a movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00000fa4 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00000fa7 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00000fab leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00000faf leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00000fb3 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x00000fb6 subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x00000fb9 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00000fbc jae LBB0_209 + 0x04, 0x30, //0x00000fc2 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00000fc4 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00000fc8 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00000fcb cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00000fcf movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00000fd2 ja LBB0_210 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fd8 .p2align 4, 0x90 + //0x00000fe0 LBB0_212 + 0x45, 0x01, 0xcf, //0x00000fe0 addl %r9d, %r15d + 0x4d, 0x63, 0xff, //0x00000fe3 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00000fe6 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00000fe9 cmovbel %r13d, %r15d + 0x45, 0x01, 0xcb, //0x00000fed addl %r9d, %r11d + 0x45, 0x85, 0xff, //0x00000ff0 testl %r15d, %r15d + 0x0f, 0x8e, 0x26, 0xfe, 0xff, 0xff, //0x00000ff3 jle LBB0_189 + 0x44, 0x89, 0xf8, //0x00000ff9 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000ffc cmpb $48, $-1(%rax,%r12) + 0x48, 0x8d, 0x3d, 0x77, 0x42, 0x00, 0x00, //0x00001002 leaq $17015(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0x1e, 0xfe, 0xff, 0xff, //0x00001009 jne LBB0_191 + 0x90, //0x0000100f .p2align 4, 0x90 + //0x00001010 LBB0_214 + 0x48, 0x83, 0xf8, 0x01, //0x00001010 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00001014 jle LBB0_217 + 0x4c, 0x8d, 0x78, 0xff, //0x0000101a leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x0000101e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001024 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001027 je LBB0_214 + 0xe9, 0xfb, 0xfd, 0xff, 0xff, //0x0000102d jmp LBB0_191 + //0x00001032 LBB0_216 + 0x0f, 0x8c, 0x5e, 0xfe, 0xff, 0xff, //0x00001032 jl LBB0_198 + 0xe9, 0x5f, 0xfe, 0xff, 0xff, //0x00001038 jmp LBB0_199 + //0x0000103d LBB0_217 + 0xff, 0xc8, //0x0000103d decl %eax + 0x41, 0x89, 0xc7, //0x0000103f movl %eax, %r15d + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00001042 jmp LBB0_190 + //0x00001047 LBB0_218 + 0x44, 0x89, 0xf8, //0x00001047 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x0000104a movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x0000104d testl %r9d, %r9d + 0x0f, 0x84, 0xd3, 0xfb, 0xff, 0xff, //0x00001050 je LBB0_157 + //0x00001056 LBB0_219 + 0x41, 0xf7, 0xd9, //0x00001056 negl %r9d + 0x48, 0x63, 0xf0, //0x00001059 movslq %eax, %rsi + 0x31, 0xff, //0x0000105c xorl %edi, %edi + 0x31, 0xd2, //0x0000105e xorl %edx, %edx + //0x00001060 .p2align 4, 0x90 + //0x00001060 LBB0_220 + 0x48, 0x39, 0xf7, //0x00001060 cmpq %rsi, %rdi + 0x0f, 0x8d, 0x30, 0x01, 0x00, 0x00, //0x00001063 jge LBB0_234 + 0x48, 0x8d, 0x0c, 0x92, //0x00001069 leaq (%rdx,%rdx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x3c, //0x0000106d movsbq (%r12,%rdi), %rdx + 0x48, 0x8d, 0x54, 0x4a, 0xd0, //0x00001072 leaq $-48(%rdx,%rcx,2), %rdx + 0x48, 0xff, 0xc7, //0x00001077 incq %rdi + 0x48, 0x89, 0xd3, //0x0000107a movq %rdx, %rbx + 0x44, 0x89, 0xc9, //0x0000107d movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00001080 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001083 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001086 je LBB0_220 + //0x0000108c LBB0_222 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000108c movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x00001093 movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x00001096 shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001099 notq %rsi + 0x31, 0xdb, //0x0000109c xorl %ebx, %ebx + 0x39, 0xc7, //0x0000109e cmpl %eax, %edi + 0x0f, 0x8d, 0x55, 0x00, 0x00, 0x00, //0x000010a0 jge LBB0_226 + 0x4c, 0x89, 0x5d, 0xc8, //0x000010a6 movq %r11, $-56(%rbp) + 0x4c, 0x63, 0xdf, //0x000010aa movslq %edi, %r11 + 0x4d, 0x63, 0xc7, //0x000010ad movslq %r15d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x000010b0 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x000010b4 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000010b6 .p2align 4, 0x90 + //0x000010c0 LBB0_224 + 0x48, 0x89, 0xd0, //0x000010c0 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x000010c3 movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x000010c6 shrq %cl, %rax + 0x48, 0x21, 0xf2, //0x000010c9 andq %rsi, %rdx + 0x04, 0x30, //0x000010cc addb $48, %al + 0x41, 0x88, 0x04, 0x1c, //0x000010ce movb %al, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x92, //0x000010d2 leaq (%rdx,%rdx,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x000010d6 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x54, 0x41, 0xd0, //0x000010db leaq $-48(%rcx,%rax,2), %rdx + 0x49, 0x8d, 0x44, 0x1b, 0x01, //0x000010e0 leaq $1(%r11,%rbx), %rax + 0x48, 0xff, 0xc3, //0x000010e5 incq %rbx + 0x4c, 0x39, 0xc0, //0x000010e8 cmpq %r8, %rax + 0x0f, 0x8c, 0xcf, 0xff, 0xff, 0xff, //0x000010eb jl LBB0_224 + 0x4c, 0x8b, 0x5d, 0xc8, //0x000010f1 movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000010f5 movl $1, %r8d + //0x000010fb LBB0_226 + 0x41, 0x29, 0xfb, //0x000010fb subl %edi, %r11d + 0x41, 0x89, 0xdf, //0x000010fe movl %ebx, %r15d + 0x48, 0x85, 0xd2, //0x00001101 testq %rdx, %rdx + 0x8b, 0x7d, 0xbc, //0x00001104 movl $-68(%rbp), %edi + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00001107 jne LBB0_228 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000110d jmp LBB0_230 + //0x00001112 LBB0_227 + 0x48, 0x85, 0xc0, //0x00001112 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00001115 cmovnel %r8d, %r14d + 0x48, 0x01, 0xd2, //0x00001119 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x0000111c leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001120 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001123 je LBB0_230 + //0x00001129 LBB0_228 + 0x48, 0x89, 0xd0, //0x00001129 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x0000112c movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x0000112f shrq %cl, %rax + 0x48, 0x21, 0xf2, //0x00001132 andq %rsi, %rdx + 0x49, 0x63, 0xcf, //0x00001135 movslq %r15d, %rcx + 0x49, 0x39, 0xcd, //0x00001138 cmpq %rcx, %r13 + 0x0f, 0x86, 0xd1, 0xff, 0xff, 0xff, //0x0000113b jbe LBB0_227 + 0x04, 0x30, //0x00001141 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001143 movb %al, (%r12,%rcx) + 0xff, 0xc1, //0x00001147 incl %ecx + 0x41, 0x89, 0xcf, //0x00001149 movl %ecx, %r15d + 0x48, 0x01, 0xd2, //0x0000114c addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x0000114f leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001153 testq %rdx, %rdx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00001156 jne LBB0_228 + //0x0000115c LBB0_230 + 0x41, 0xff, 0xc3, //0x0000115c incl %r11d + 0x45, 0x85, 0xff, //0x0000115f testl %r15d, %r15d + 0x0f, 0x8e, 0x44, 0x02, 0x00, 0x00, //0x00001162 jle LBB0_264 + 0x44, 0x89, 0xf8, //0x00001168 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000116b cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x00001171 jne LBB0_265 + //0x00001177 LBB0_232 + 0x48, 0x83, 0xf8, 0x01, //0x00001177 cmpq $1, %rax + 0x0f, 0x8e, 0x26, 0x02, 0x00, 0x00, //0x0000117b jle LBB0_263 + 0x4c, 0x8d, 0x78, 0xff, //0x00001181 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001185 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x0000118b movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000118e je LBB0_232 + 0xe9, 0x20, 0x02, 0x00, 0x00, //0x00001194 jmp LBB0_265 + //0x00001199 LBB0_234 + 0x48, 0x85, 0xd2, //0x00001199 testq %rdx, %rdx + 0x0f, 0x84, 0x3c, 0x01, 0x00, 0x00, //0x0000119c je LBB0_253 + //0x000011a2 LBB0_235 + 0x48, 0x89, 0xd6, //0x000011a2 movq %rdx, %rsi + 0x44, 0x89, 0xc9, //0x000011a5 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x000011a8 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x000011ab testq %rsi, %rsi + 0x0f, 0x85, 0xd8, 0xfe, 0xff, 0xff, //0x000011ae jne LBB0_222 + 0x48, 0x01, 0xd2, //0x000011b4 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x000011b7 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc7, //0x000011bb incl %edi + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x000011bd jmp LBB0_235 + //0x000011c2 LBB0_237 + 0x44, 0x89, 0xf8, //0x000011c2 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x000011c5 movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x000011c8 testl %r9d, %r9d + 0x0f, 0x84, 0x58, 0xfa, 0xff, 0xff, //0x000011cb je LBB0_157 + //0x000011d1 LBB0_238 + 0x44, 0x89, 0xc9, //0x000011d1 movl %r9d, %ecx + 0x48, 0x6b, 0xf1, 0x68, //0x000011d4 imulq $104, %rcx, %rsi + 0x48, 0x8d, 0x3d, 0xa1, 0x40, 0x00, 0x00, //0x000011d8 leaq $16545(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3e, //0x000011df movl (%rsi,%rdi), %ebx + 0x4c, 0x63, 0xc0, //0x000011e2 movslq %eax, %r8 + 0x8a, 0x54, 0x3e, 0x04, //0x000011e5 movb $4(%rsi,%rdi), %dl + 0x45, 0x85, 0xc0, //0x000011e9 testl %r8d, %r8d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000011ec je LBB0_243 + 0x48, 0x8d, 0x74, 0x3e, 0x05, //0x000011f2 leaq $5(%rsi,%rdi), %rsi + 0x31, 0xff, //0x000011f7 xorl %edi, %edi + //0x000011f9 LBB0_240 + 0x84, 0xd2, //0x000011f9 testb %dl, %dl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000011fb je LBB0_245 + 0x41, 0x38, 0x14, 0x3c, //0x00001201 cmpb %dl, (%r12,%rdi) + 0x0f, 0x85, 0xb6, 0x01, 0x00, 0x00, //0x00001205 jne LBB0_266 + 0x0f, 0xb6, 0x14, 0x3e, //0x0000120b movzbl (%rsi,%rdi), %edx + 0x48, 0xff, 0xc7, //0x0000120f incq %rdi + 0x49, 0x39, 0xf8, //0x00001212 cmpq %rdi, %r8 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00001215 jne LBB0_240 + //0x0000121b LBB0_243 + 0x84, 0xd2, //0x0000121b testb %dl, %dl + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x0000121d je LBB0_245 + //0x00001223 LBB0_244 + 0xff, 0xcb, //0x00001223 decl %ebx + //0x00001225 LBB0_245 + 0x85, 0xc0, //0x00001225 testl %eax, %eax + 0x0f, 0x8e, 0xbb, 0x00, 0x00, 0x00, //0x00001227 jle LBB0_254 + 0x4c, 0x89, 0x5d, 0xc8, //0x0000122d movq %r11, $-56(%rbp) + 0x89, 0x5d, 0xb0, //0x00001231 movl %ebx, $-80(%rbp) + 0x01, 0xd8, //0x00001234 addl %ebx, %eax + 0x48, 0x98, //0x00001236 cltq + 0x48, 0x89, 0xc6, //0x00001238 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x0000123b shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x0000123f decq %rax + 0x49, 0xff, 0xc0, //0x00001242 incq %r8 + 0x31, 0xff, //0x00001245 xorl %edi, %edi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001247 jmp LBB0_249 + //0x0000124c LBB0_247 + 0x48, 0x85, 0xc0, //0x0000124c testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000124f movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001254 cmovnel %eax, %r14d + //0x00001258 LBB0_248 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001258 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x00001262 addq %rax, %rsi + 0x49, 0x8d, 0x43, 0xff, //0x00001265 leaq $-1(%r11), %rax + 0x49, 0xff, 0xc8, //0x00001269 decq %r8 + 0x49, 0x83, 0xf8, 0x01, //0x0000126c cmpq $1, %r8 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00001270 jle LBB0_251 + //0x00001276 LBB0_249 + 0x49, 0x89, 0xc3, //0x00001276 movq %rax, %r11 + 0x4b, 0x0f, 0xbe, 0x5c, 0x04, 0xfe, //0x00001279 movsbq $-2(%r12,%r8), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x0000127f addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00001283 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x00001286 addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x00001289 movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000128c movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001296 mulq %rdx + 0x48, 0x89, 0xd7, //0x00001299 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x0000129c shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x000012a0 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000012a4 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x000012a8 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x000012ab subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x000012ae cmpq %r13, %r11 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x000012b1 jae LBB0_247 + 0x04, 0x30, //0x000012b7 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x000012b9 movb %al, (%r12,%r11) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x000012bd jmp LBB0_248 + //0x000012c2 LBB0_251 + 0x48, 0x83, 0xfb, 0x0a, //0x000012c2 cmpq $10, %rbx + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000012c6 movl $1, %r8d + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x000012cc jae LBB0_255 + 0x4c, 0x8b, 0x5d, 0xc8, //0x000012d2 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xb0, //0x000012d6 movl $-80(%rbp), %ebx + 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x000012d9 jmp LBB0_259 + //0x000012de LBB0_253 + 0x45, 0x31, 0xff, //0x000012de xorl %r15d, %r15d + 0x31, 0xff, //0x000012e1 xorl %edi, %edi + 0xe9, 0x41, 0xf9, 0xff, 0xff, //0x000012e3 jmp LBB0_157 + //0x000012e8 LBB0_254 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000012e8 movl $1, %r8d + 0xe9, 0x6a, 0x00, 0x00, 0x00, //0x000012ee jmp LBB0_259 + //0x000012f3 LBB0_255 + 0x49, 0x63, 0xcb, //0x000012f3 movslq %r11d, %rcx + 0x48, 0xff, 0xc9, //0x000012f6 decq %rcx + 0x4c, 0x8b, 0x5d, 0xc8, //0x000012f9 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xb0, //0x000012fd movl $-80(%rbp), %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001300 jmp LBB0_257 + //0x00001305 LBB0_256 + 0x48, 0x85, 0xc0, //0x00001305 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00001308 cmovnel %r8d, %r14d + 0x48, 0xff, 0xc9, //0x0000130c decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x0000130f cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001313 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001316 jbe LBB0_259 + //0x0000131c LBB0_257 + 0x48, 0x89, 0xf8, //0x0000131c movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000131f movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001329 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000132c shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001330 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x00001334 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x00001338 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x0000133b subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x0000133e cmpq %r13, %rcx + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00001341 jae LBB0_256 + 0x04, 0x30, //0x00001347 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001349 movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x0000134d decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00001350 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001354 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001357 ja LBB0_257 + //0x0000135d LBB0_259 + 0x41, 0x01, 0xdf, //0x0000135d addl %ebx, %r15d + 0x4d, 0x63, 0xff, //0x00001360 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00001363 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00001366 cmovbel %r13d, %r15d + 0x41, 0x01, 0xdb, //0x0000136a addl %ebx, %r11d + 0x45, 0x85, 0xff, //0x0000136d testl %r15d, %r15d + 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x00001370 jle LBB0_268 + 0x44, 0x89, 0xf8, //0x00001376 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001379 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x53, 0x00, 0x00, 0x00, //0x0000137f jne LBB0_269 + //0x00001385 LBB0_261 + 0x48, 0x83, 0xf8, 0x01, //0x00001385 cmpq $1, %rax + 0x0f, 0x8e, 0x3d, 0x00, 0x00, 0x00, //0x00001389 jle LBB0_267 + 0x4c, 0x8d, 0x78, 0xff, //0x0000138f leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001393 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001399 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000139c je LBB0_261 + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x000013a2 jmp LBB0_269 + //0x000013a7 LBB0_263 + 0xff, 0xc8, //0x000013a7 decl %eax + 0x41, 0x89, 0xc7, //0x000013a9 movl %eax, %r15d + //0x000013ac LBB0_264 + 0x48, 0x8b, 0x45, 0xc0, //0x000013ac movq $-64(%rbp), %rax + 0x45, 0x85, 0xff, //0x000013b0 testl %r15d, %r15d + 0x0f, 0x84, 0x04, 0x0c, 0x00, 0x00, //0x000013b3 je LBB0_445 + //0x000013b9 LBB0_265 + 0x44, 0x89, 0xff, //0x000013b9 movl %r15d, %edi + 0xe9, 0x68, 0xf8, 0xff, 0xff, //0x000013bc jmp LBB0_157 + //0x000013c1 LBB0_266 + 0x0f, 0x8c, 0x5c, 0xfe, 0xff, 0xff, //0x000013c1 jl LBB0_244 + 0xe9, 0x59, 0xfe, 0xff, 0xff, //0x000013c7 jmp LBB0_245 + //0x000013cc LBB0_267 + 0xff, 0xc8, //0x000013cc decl %eax + 0x41, 0x89, 0xc7, //0x000013ce movl %eax, %r15d + //0x000013d1 LBB0_268 + 0x45, 0x85, 0xff, //0x000013d1 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x000013d4 cmovel %r15d, %r11d + //0x000013d8 LBB0_269 + 0x44, 0x89, 0xf8, //0x000013d8 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x000013db movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x000013de testl %r9d, %r9d + 0x0f, 0x89, 0x42, 0xf8, 0xff, 0xff, //0x000013e1 jns LBB0_157 + 0xe9, 0x8e, 0xf8, 0xff, 0xff, //0x000013e7 jmp LBB0_163 + //0x000013ec LBB0_270 + 0x44, 0x89, 0xff, //0x000013ec movl %r15d, %edi + //0x000013ef LBB0_271 + 0x4c, 0x8d, 0x05, 0x8a, 0x3e, 0x00, 0x00, //0x000013ef leaq $16010(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000013f6 jmp LBB0_274 + //0x000013fb LBB0_272 + 0x89, 0xf8, //0x000013fb movl %edi, %eax + //0x000013fd LBB0_273 + 0x48, 0x8b, 0x75, 0xc0, //0x000013fd movq $-64(%rbp), %rsi + 0x2b, 0x75, 0xb0, //0x00001401 subl $-80(%rbp), %esi + 0x89, 0xc7, //0x00001404 movl %eax, %edi + //0x00001406 LBB0_274 + 0x45, 0x85, 0xdb, //0x00001406 testl %r11d, %r11d + 0x0f, 0x88, 0x16, 0x00, 0x00, 0x00, //0x00001409 js LBB0_277 + 0x0f, 0x85, 0xcd, 0x07, 0x00, 0x00, //0x0000140f jne LBB0_389 + 0x41, 0x80, 0x3c, 0x24, 0x35, //0x00001415 cmpb $53, (%r12) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000141a jl LBB0_278 + 0xe9, 0xbd, 0x07, 0x00, 0x00, //0x00001420 jmp LBB0_389 + //0x00001425 LBB0_277 + 0xb8, 0x1b, 0x00, 0x00, 0x00, //0x00001425 movl $27, %eax + 0x41, 0x83, 0xfb, 0xf8, //0x0000142a cmpl $-8, %r11d + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x0000142e jl LBB0_279 + //0x00001434 LBB0_278 + 0x44, 0x89, 0xd8, //0x00001434 movl %r11d, %eax + 0xf7, 0xd8, //0x00001437 negl %eax + 0x48, 0x98, //0x00001439 cltq + 0x48, 0x8d, 0x0d, 0x0e, 0x3e, 0x00, 0x00, //0x0000143b leaq $15886(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x8b, 0x04, 0x81, //0x00001442 movl (%rcx,%rax,4), %eax + //0x00001445 LBB0_279 + 0x85, 0xff, //0x00001445 testl %edi, %edi + 0x48, 0x89, 0x75, 0xc0, //0x00001447 movq %rsi, $-64(%rbp) + 0x89, 0x45, 0xb0, //0x0000144b movl %eax, $-80(%rbp) + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x0000144e je LBB0_272 + 0x85, 0xc0, //0x00001454 testl %eax, %eax + 0x0f, 0x84, 0x9f, 0xff, 0xff, 0xff, //0x00001456 je LBB0_272 + 0x0f, 0x8e, 0x3b, 0x02, 0x00, 0x00, //0x0000145c jle LBB0_311 + 0x41, 0x89, 0xc1, //0x00001462 movl %eax, %r9d + 0x83, 0xf8, 0x3d, //0x00001465 cmpl $61, %eax + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00001468 jge LBB0_286 + 0xe9, 0x41, 0x02, 0x00, 0x00, //0x0000146e jmp LBB0_313 + //0x00001473 LBB0_283 + 0xff, 0xc8, //0x00001473 decl %eax + 0x41, 0x89, 0xc7, //0x00001475 movl %eax, %r15d + //0x00001478 LBB0_284 + 0x45, 0x85, 0xff, //0x00001478 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x0000147b cmovel %r15d, %r11d + //0x0000147f LBB0_285 + 0x44, 0x8d, 0x4b, 0xc4, //0x0000147f leal $-60(%rbx), %r9d + 0x44, 0x89, 0xff, //0x00001483 movl %r15d, %edi + 0x83, 0xfb, 0x78, //0x00001486 cmpl $120, %ebx + 0x0f, 0x8e, 0x16, 0x02, 0x00, 0x00, //0x00001489 jle LBB0_312 + //0x0000148f LBB0_286 + 0x44, 0x89, 0xcb, //0x0000148f movl %r9d, %ebx + 0x48, 0x63, 0xf7, //0x00001492 movslq %edi, %rsi + 0x85, 0xf6, //0x00001495 testl %esi, %esi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00001497 je LBB0_292 + 0xb1, 0x38, //0x0000149d movb $56, %cl + 0x31, 0xc0, //0x0000149f xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014a1 .p2align 4, 0x90 + //0x000014b0 LBB0_288 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x000014b0 movl $19, %r9d + 0x48, 0x83, 0xf8, 0x2a, //0x000014b6 cmpq $42, %rax + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000014ba je LBB0_293 + 0x41, 0x38, 0x0c, 0x04, //0x000014c0 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xc8, 0x01, 0x00, 0x00, //0x000014c4 jne LBB0_309 + 0x42, 0x0f, 0xb6, 0x8c, 0x00, 0x65, 0x18, 0x00, 0x00, //0x000014ca movzbl $6245(%rax,%r8), %ecx + 0x48, 0xff, 0xc0, //0x000014d3 incq %rax + 0x48, 0x39, 0xc6, //0x000014d6 cmpq %rax, %rsi + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x000014d9 jne LBB0_288 + 0x84, 0xc9, //0x000014df testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000014e1 je LBB0_293 + //0x000014e7 LBB0_292 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x000014e7 movl $18, %r9d + //0x000014ed LBB0_293 + 0x85, 0xff, //0x000014ed testl %edi, %edi + 0x0f, 0x8e, 0x4b, 0x01, 0x00, 0x00, //0x000014ef jle LBB0_305 + 0x48, 0x89, 0x5d, 0xc8, //0x000014f5 movq %rbx, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x000014f9 movq %r11, %r8 + 0x44, 0x01, 0xcf, //0x000014fc addl %r9d, %edi + 0x48, 0x63, 0xc7, //0x000014ff movslq %edi, %rax + 0x48, 0x89, 0xc3, //0x00001502 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x00001505 shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x00001509 decq %rax + 0x48, 0xff, 0xc6, //0x0000150c incq %rsi + 0x31, 0xc9, //0x0000150f xorl %ecx, %ecx + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00001511 jmp LBB0_297 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001516 .p2align 4, 0x90 + //0x00001520 LBB0_295 + 0x48, 0x85, 0xc0, //0x00001520 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001523 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001528 cmovnel %eax, %r14d + //0x0000152c LBB0_296 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000152c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x00001536 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x00001539 leaq $-1(%r11), %rax + 0x48, 0xff, 0xce, //0x0000153d decq %rsi + 0x48, 0x83, 0xfe, 0x01, //0x00001540 cmpq $1, %rsi + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00001544 jle LBB0_299 + //0x0000154a LBB0_297 + 0x49, 0x89, 0xc3, //0x0000154a movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x7c, 0x34, 0xfe, //0x0000154d movzbl $-2(%r12,%rsi), %edi + 0x48, 0xc1, 0xe7, 0x3c, //0x00001553 shlq $60, %rdi + 0x48, 0x01, 0xcf, //0x00001557 addq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x0000155a movq %rdi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000155d movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00001567 mulq %rcx + 0x48, 0x89, 0xd1, //0x0000156a movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x0000156d shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00001571 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001575 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf8, //0x00001579 movq %rdi, %rax + 0x48, 0x29, 0xd0, //0x0000157c subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x0000157f cmpq %r13, %r11 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x00001582 jae LBB0_295 + 0x04, 0x30, //0x00001588 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x0000158a movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x0000158e jmp LBB0_296 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001593 .p2align 4, 0x90 + //0x000015a0 LBB0_299 + 0x48, 0x83, 0xff, 0x0a, //0x000015a0 cmpq $10, %rdi + 0x0f, 0x83, 0x13, 0x00, 0x00, 0x00, //0x000015a4 jae LBB0_301 + 0x4d, 0x89, 0xc3, //0x000015aa movq %r8, %r11 + 0x4c, 0x8d, 0x05, 0xcc, 0x3c, 0x00, 0x00, //0x000015ad leaq $15564(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xc8, //0x000015b4 movq $-56(%rbp), %rbx + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x000015b8 jmp LBB0_305 + //0x000015bd LBB0_301 + 0x49, 0x63, 0xf3, //0x000015bd movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x000015c0 decq %rsi + 0x4d, 0x89, 0xc3, //0x000015c3 movq %r8, %r11 + 0x4c, 0x8d, 0x05, 0xb3, 0x3c, 0x00, 0x00, //0x000015c6 leaq $15539(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xc8, //0x000015cd movq $-56(%rbp), %rbx + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000015d1 jmp LBB0_303 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015d6 .p2align 4, 0x90 + //0x000015e0 LBB0_302 + 0x48, 0x85, 0xc0, //0x000015e0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000015e3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000015e8 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x000015ec decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000015ef cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000015f3 movq %rdx, %rcx + 0x0f, 0x86, 0x44, 0x00, 0x00, 0x00, //0x000015f6 jbe LBB0_305 + //0x000015fc LBB0_303 + 0x48, 0x89, 0xc8, //0x000015fc movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000015ff movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001609 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000160c shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001610 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001614 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00001618 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x0000161b subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x0000161e cmpq %r13, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001621 jae LBB0_302 + 0x04, 0x30, //0x00001627 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001629 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x0000162d decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001630 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001634 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001637 ja LBB0_303 + 0x90, 0x90, 0x90, //0x0000163d .p2align 4, 0x90 + //0x00001640 LBB0_305 + 0x45, 0x01, 0xcf, //0x00001640 addl %r9d, %r15d + 0x4d, 0x63, 0xff, //0x00001643 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00001646 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00001649 cmovbel %r13d, %r15d + 0x45, 0x01, 0xcb, //0x0000164d addl %r9d, %r11d + 0x45, 0x85, 0xff, //0x00001650 testl %r15d, %r15d + 0x0f, 0x8e, 0x1f, 0xfe, 0xff, 0xff, //0x00001653 jle LBB0_284 + 0x44, 0x89, 0xf8, //0x00001659 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000165c cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x17, 0xfe, 0xff, 0xff, //0x00001662 jne LBB0_285 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001668 .p2align 4, 0x90 + //0x00001670 LBB0_307 + 0x48, 0x83, 0xf8, 0x01, //0x00001670 cmpq $1, %rax + 0x0f, 0x8e, 0xf9, 0xfd, 0xff, 0xff, //0x00001674 jle LBB0_283 + 0x4c, 0x8d, 0x78, 0xff, //0x0000167a leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x0000167e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001684 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001687 je LBB0_307 + 0xe9, 0xed, 0xfd, 0xff, 0xff, //0x0000168d jmp LBB0_285 + //0x00001692 LBB0_309 + 0x0f, 0x8c, 0x4f, 0xfe, 0xff, 0xff, //0x00001692 jl LBB0_292 + 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00001698 jmp LBB0_293 + //0x0000169d LBB0_311 + 0x41, 0x89, 0xc1, //0x0000169d movl %eax, %r9d + 0xe9, 0x09, 0x02, 0x00, 0x00, //0x000016a0 jmp LBB0_341 + //0x000016a5 LBB0_312 + 0x44, 0x89, 0xff, //0x000016a5 movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x000016a8 movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x000016ab testl %r9d, %r9d + 0x0f, 0x84, 0x49, 0xfd, 0xff, 0xff, //0x000016ae je LBB0_273 + //0x000016b4 LBB0_313 + 0x44, 0x89, 0xc9, //0x000016b4 movl %r9d, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x000016b7 imulq $104, %rcx, %rdx + 0x42, 0x8b, 0x1c, 0x02, //0x000016bb movl (%rdx,%r8), %ebx + 0x4c, 0x89, 0xc6, //0x000016bf movq %r8, %rsi + 0x4c, 0x63, 0xc7, //0x000016c2 movslq %edi, %r8 + 0x8a, 0x44, 0x32, 0x04, //0x000016c5 movb $4(%rdx,%rsi), %al + 0x45, 0x85, 0xc0, //0x000016c9 testl %r8d, %r8d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000016cc je LBB0_318 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x000016d2 leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x000016d7 xorl %esi, %esi + //0x000016d9 LBB0_315 + 0x84, 0xc0, //0x000016d9 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000016db je LBB0_320 + 0x41, 0x38, 0x04, 0x34, //0x000016e1 cmpb %al, (%r12,%rsi) + 0x0f, 0x85, 0x9d, 0x01, 0x00, 0x00, //0x000016e5 jne LBB0_337 + 0x0f, 0xb6, 0x04, 0x32, //0x000016eb movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x000016ef incq %rsi + 0x49, 0x39, 0xf0, //0x000016f2 cmpq %rsi, %r8 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x000016f5 jne LBB0_315 + //0x000016fb LBB0_318 + 0x84, 0xc0, //0x000016fb testb %al, %al + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x000016fd je LBB0_320 + //0x00001703 LBB0_319 + 0xff, 0xcb, //0x00001703 decl %ebx + //0x00001705 LBB0_320 + 0x85, 0xff, //0x00001705 testl %edi, %edi + 0x0f, 0x8e, 0xb6, 0x00, 0x00, 0x00, //0x00001707 jle LBB0_328 + 0x4c, 0x89, 0x5d, 0xc8, //0x0000170d movq %r11, $-56(%rbp) + 0x89, 0x5d, 0xbc, //0x00001711 movl %ebx, $-68(%rbp) + 0x01, 0xdf, //0x00001714 addl %ebx, %edi + 0x48, 0x63, 0xc7, //0x00001716 movslq %edi, %rax + 0x48, 0x89, 0xc6, //0x00001719 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x0000171c shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x00001720 decq %rax + 0x49, 0xff, 0xc0, //0x00001723 incq %r8 + 0x31, 0xff, //0x00001726 xorl %edi, %edi + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00001728 jmp LBB0_324 + 0x90, 0x90, 0x90, //0x0000172d .p2align 4, 0x90 + //0x00001730 LBB0_322 + 0x48, 0x85, 0xc0, //0x00001730 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001733 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001738 cmovnel %eax, %r14d + //0x0000173c LBB0_323 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000173c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x00001746 addq %rax, %rsi + 0x49, 0x8d, 0x43, 0xff, //0x00001749 leaq $-1(%r11), %rax + 0x49, 0xff, 0xc8, //0x0000174d decq %r8 + 0x49, 0x83, 0xf8, 0x01, //0x00001750 cmpq $1, %r8 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00001754 jle LBB0_326 + //0x0000175a LBB0_324 + 0x49, 0x89, 0xc3, //0x0000175a movq %rax, %r11 + 0x4b, 0x0f, 0xbe, 0x5c, 0x04, 0xfe, //0x0000175d movsbq $-2(%r12,%r8), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00001763 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00001767 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x0000176a addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x0000176d movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001770 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000177a mulq %rdx + 0x48, 0x89, 0xd7, //0x0000177d movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x00001780 shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x00001784 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001788 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x0000178c movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x0000178f subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x00001792 cmpq %r13, %r11 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00001795 jae LBB0_322 + 0x04, 0x30, //0x0000179b addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x0000179d movb %al, (%r12,%r11) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x000017a1 jmp LBB0_323 + //0x000017a6 LBB0_326 + 0x48, 0x83, 0xfb, 0x0a, //0x000017a6 cmpq $10, %rbx + 0x4c, 0x8d, 0x05, 0xcf, 0x3a, 0x00, 0x00, //0x000017aa leaq $15055(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x000017b1 jae LBB0_329 + 0x4c, 0x8b, 0x5d, 0xc8, //0x000017b7 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xbc, //0x000017bb movl $-68(%rbp), %ebx + 0xe9, 0x7b, 0x00, 0x00, 0x00, //0x000017be jmp LBB0_333 + //0x000017c3 LBB0_328 + 0x4c, 0x8d, 0x05, 0xb6, 0x3a, 0x00, 0x00, //0x000017c3 leaq $15030(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x000017ca jmp LBB0_333 + //0x000017cf LBB0_329 + 0x49, 0x63, 0xcb, //0x000017cf movslq %r11d, %rcx + 0x48, 0xff, 0xc9, //0x000017d2 decq %rcx + 0x4c, 0x8b, 0x5d, 0xc8, //0x000017d5 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xbc, //0x000017d9 movl $-68(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x000017dc jmp LBB0_331 + //0x000017e1 LBB0_330 + 0x48, 0x85, 0xc0, //0x000017e1 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000017e4 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000017e9 cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x000017ed decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000017f0 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000017f4 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000017f7 jbe LBB0_333 + //0x000017fd LBB0_331 + 0x48, 0x89, 0xf8, //0x000017fd movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001800 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000180a mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000180d shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001811 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x00001815 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x00001819 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x0000181c subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x0000181f cmpq %r13, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001822 jae LBB0_330 + 0x04, 0x30, //0x00001828 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x0000182a movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x0000182e decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00001831 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001835 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001838 ja LBB0_331 + //0x0000183e LBB0_333 + 0x41, 0x01, 0xdf, //0x0000183e addl %ebx, %r15d + 0x4d, 0x63, 0xff, //0x00001841 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00001844 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00001847 cmovbel %r13d, %r15d + 0x41, 0x01, 0xdb, //0x0000184b addl %ebx, %r11d + 0x45, 0x85, 0xff, //0x0000184e testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x00001851 jle LBB0_339 + 0x44, 0x89, 0xf8, //0x00001857 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x0000185a cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00001860 jne LBB0_340 + //0x00001866 LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x00001866 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x0000186a jle LBB0_338 + 0x4c, 0x8d, 0x78, 0xff, //0x00001870 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001874 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x0000187a movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000187d je LBB0_335 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001883 jmp LBB0_340 + //0x00001888 LBB0_337 + 0x0f, 0x8c, 0x75, 0xfe, 0xff, 0xff, //0x00001888 jl LBB0_319 + 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x0000188e jmp LBB0_320 + //0x00001893 LBB0_338 + 0xff, 0xc8, //0x00001893 decl %eax + 0x41, 0x89, 0xc7, //0x00001895 movl %eax, %r15d + //0x00001898 LBB0_339 + 0x45, 0x85, 0xff, //0x00001898 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x0000189b cmovel %r15d, %r11d + //0x0000189f LBB0_340 + 0x44, 0x89, 0xff, //0x0000189f movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x000018a2 movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x000018a5 testl %r9d, %r9d + 0x0f, 0x89, 0x4f, 0xfb, 0xff, 0xff, //0x000018a8 jns LBB0_273 + //0x000018ae LBB0_341 + 0x41, 0x83, 0xf9, 0xc3, //0x000018ae cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x000018b2 jle LBB0_345 + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x000018b8 jmp LBB0_365 + //0x000018bd LBB0_342 + 0xff, 0xc9, //0x000018bd decl %ecx + 0x41, 0x89, 0xcf, //0x000018bf movl %ecx, %r15d + //0x000018c2 LBB0_343 + 0x45, 0x85, 0xff, //0x000018c2 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x000018c5 cmovel %r15d, %r11d + //0x000018c9 LBB0_344 + 0x44, 0x8d, 0x48, 0x3c, //0x000018c9 leal $60(%rax), %r9d + 0x44, 0x89, 0xff, //0x000018cd movl %r15d, %edi + 0x83, 0xf8, 0x88, //0x000018d0 cmpl $-120, %eax + 0x0f, 0x8d, 0x71, 0x01, 0x00, 0x00, //0x000018d3 jge LBB0_364 + //0x000018d9 LBB0_345 + 0x44, 0x89, 0xc8, //0x000018d9 movl %r9d, %eax + 0x48, 0x63, 0xf7, //0x000018dc movslq %edi, %rsi + 0x31, 0xd2, //0x000018df xorl %edx, %edx + 0x31, 0xc9, //0x000018e1 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 + //0x000018f0 LBB0_346 + 0x48, 0x39, 0xf2, //0x000018f0 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x000018f3 jge LBB0_348 + 0x48, 0x8d, 0x0c, 0x89, //0x000018f9 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x000018fd movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00001902 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc2, //0x00001907 incq %rdx + 0x49, 0x8d, 0x5a, 0x01, //0x0000190a leaq $1(%r10), %rbx + 0x48, 0x39, 0xd9, //0x0000190e cmpq %rbx, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001911 jb LBB0_346 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001917 jmp LBB0_350 + 0x90, 0x90, 0x90, 0x90, //0x0000191c .p2align 4, 0x90 + //0x00001920 LBB0_348 + 0x48, 0x85, 0xc9, //0x00001920 testq %rcx, %rcx + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00001923 je LBB0_363 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001929 .p2align 4, 0x90 + //0x00001930 LBB0_349 + 0x48, 0x01, 0xc9, //0x00001930 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001933 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc2, //0x00001937 incl %edx + 0x49, 0x8d, 0x72, 0x01, //0x00001939 leaq $1(%r10), %rsi + 0x48, 0x39, 0xf1, //0x0000193d cmpq %rsi, %rcx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00001940 jb LBB0_349 + //0x00001946 LBB0_350 + 0x41, 0x29, 0xd3, //0x00001946 subl %edx, %r11d + 0x31, 0xf6, //0x00001949 xorl %esi, %esi + 0x39, 0xfa, //0x0000194b cmpl %edi, %edx + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x0000194d jge LBB0_355 + 0x48, 0x63, 0xd2, //0x00001953 movslq %edx, %rdx + 0x49, 0x63, 0xf7, //0x00001956 movslq %r15d, %rsi + 0x49, 0x8d, 0x3c, 0x14, //0x00001959 leaq (%r12,%rdx), %rdi + 0x45, 0x31, 0xff, //0x0000195d xorl %r15d, %r15d + //0x00001960 .p2align 4, 0x90 + //0x00001960 LBB0_352 + 0x48, 0x89, 0xcb, //0x00001960 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00001963 shrq $60, %rbx + 0x4c, 0x21, 0xd1, //0x00001967 andq %r10, %rcx + 0x80, 0xcb, 0x30, //0x0000196a orb $48, %bl + 0x43, 0x88, 0x1c, 0x3c, //0x0000196d movb %bl, (%r12,%r15) + 0x48, 0x8d, 0x0c, 0x89, //0x00001971 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x1c, 0x3f, //0x00001975 movsbq (%rdi,%r15), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x0000197a leaq $-48(%rbx,%rcx,2), %rcx + 0x4a, 0x8d, 0x5c, 0x3a, 0x01, //0x0000197f leaq $1(%rdx,%r15), %rbx + 0x49, 0xff, 0xc7, //0x00001984 incq %r15 + 0x48, 0x39, 0xf3, //0x00001987 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x0000198a jl LBB0_352 + 0x48, 0x85, 0xc9, //0x00001990 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00001993 je LBB0_359 + 0x44, 0x89, 0xfe, //0x00001999 movl %r15d, %esi + //0x0000199c LBB0_355 + 0x41, 0x89, 0xf7, //0x0000199c movl %esi, %r15d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x0000199f jmp LBB0_357 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019a4 .p2align 4, 0x90 + //0x000019b0 LBB0_356 + 0x48, 0x85, 0xd2, //0x000019b0 testq %rdx, %rdx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000019b3 movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x000019b8 cmovnel %edx, %r14d + 0x48, 0x01, 0xc9, //0x000019bc addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000019bf leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000019c3 testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x000019c6 je LBB0_359 + //0x000019cc LBB0_357 + 0x48, 0x89, 0xca, //0x000019cc movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x000019cf shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x000019d3 andq %r10, %rcx + 0x49, 0x63, 0xf7, //0x000019d6 movslq %r15d, %rsi + 0x49, 0x39, 0xf5, //0x000019d9 cmpq %rsi, %r13 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x000019dc jbe LBB0_356 + 0x80, 0xca, 0x30, //0x000019e2 orb $48, %dl + 0x41, 0x88, 0x14, 0x34, //0x000019e5 movb %dl, (%r12,%rsi) + 0xff, 0xc6, //0x000019e9 incl %esi + 0x41, 0x89, 0xf7, //0x000019eb movl %esi, %r15d + 0x48, 0x01, 0xc9, //0x000019ee addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000019f1 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000019f5 testq %rcx, %rcx + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x000019f8 jne LBB0_357 + //0x000019fe LBB0_359 + 0x41, 0xff, 0xc3, //0x000019fe incl %r11d + 0x45, 0x85, 0xff, //0x00001a01 testl %r15d, %r15d + 0x0f, 0x8e, 0xb8, 0xfe, 0xff, 0xff, //0x00001a04 jle LBB0_343 + 0x44, 0x89, 0xf9, //0x00001a0a movl %r15d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00001a0d cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xb0, 0xfe, 0xff, 0xff, //0x00001a13 jne LBB0_344 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a19 .p2align 4, 0x90 + //0x00001a20 LBB0_361 + 0x48, 0x83, 0xf9, 0x01, //0x00001a20 cmpq $1, %rcx + 0x0f, 0x8e, 0x93, 0xfe, 0xff, 0xff, //0x00001a24 jle LBB0_342 + 0x4c, 0x8d, 0x79, 0xff, //0x00001a2a leaq $-1(%rcx), %r15 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00001a2e cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xf9, //0x00001a34 movq %r15, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001a37 je LBB0_361 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00001a3d jmp LBB0_344 + //0x00001a42 LBB0_363 + 0x45, 0x31, 0xff, //0x00001a42 xorl %r15d, %r15d + 0xe9, 0x7f, 0xfe, 0xff, 0xff, //0x00001a45 jmp LBB0_344 + //0x00001a4a LBB0_364 + 0x44, 0x89, 0xff, //0x00001a4a movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x00001a4d movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x00001a50 testl %r9d, %r9d + 0x0f, 0x84, 0xa4, 0xf9, 0xff, 0xff, //0x00001a53 je LBB0_273 + //0x00001a59 LBB0_365 + 0x41, 0xf7, 0xd9, //0x00001a59 negl %r9d + 0x48, 0x63, 0xf7, //0x00001a5c movslq %edi, %rsi + 0x31, 0xd2, //0x00001a5f xorl %edx, %edx + 0x31, 0xc0, //0x00001a61 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a63 .p2align 4, 0x90 + //0x00001a70 LBB0_366 + 0x48, 0x39, 0xf2, //0x00001a70 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x22, 0x01, 0x00, 0x00, //0x00001a73 jge LBB0_382 + 0x48, 0x8d, 0x04, 0x80, //0x00001a79 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x14, //0x00001a7d movsbq (%r12,%rdx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00001a82 leaq $-48(%rcx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00001a87 incq %rdx + 0x48, 0x89, 0xc3, //0x00001a8a movq %rax, %rbx + 0x44, 0x89, 0xc9, //0x00001a8d movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00001a90 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001a93 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001a96 je LBB0_366 + //0x00001a9c LBB0_368 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001a9c movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x00001aa3 movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x00001aa6 shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001aa9 notq %rsi + 0x31, 0xdb, //0x00001aac xorl %ebx, %ebx + 0x39, 0xfa, //0x00001aae cmpl %edi, %edx + 0x0f, 0x8d, 0x58, 0x00, 0x00, 0x00, //0x00001ab0 jge LBB0_372 + 0x4c, 0x89, 0x5d, 0xc8, //0x00001ab6 movq %r11, $-56(%rbp) + 0x4c, 0x63, 0xda, //0x00001aba movslq %edx, %r11 + 0x4d, 0x63, 0xc7, //0x00001abd movslq %r15d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00001ac0 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x00001ac4 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac6 .p2align 4, 0x90 + //0x00001ad0 LBB0_370 + 0x48, 0x89, 0xc7, //0x00001ad0 movq %rax, %rdi + 0x44, 0x89, 0xc9, //0x00001ad3 movl %r9d, %ecx + 0x48, 0xd3, 0xef, //0x00001ad6 shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001ad9 andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00001adc addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00001ae0 movb %dil, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x80, //0x00001ae4 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x00001ae8 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00001aed leaq $-48(%rcx,%rax,2), %rax + 0x49, 0x8d, 0x4c, 0x1b, 0x01, //0x00001af2 leaq $1(%r11,%rbx), %rcx + 0x48, 0xff, 0xc3, //0x00001af7 incq %rbx + 0x4c, 0x39, 0xc1, //0x00001afa cmpq %r8, %rcx + 0x0f, 0x8c, 0xcd, 0xff, 0xff, 0xff, //0x00001afd jl LBB0_370 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001b03 movq $-56(%rbp), %r11 + 0x4c, 0x8d, 0x05, 0x72, 0x37, 0x00, 0x00, //0x00001b07 leaq $14194(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + //0x00001b0e LBB0_372 + 0x41, 0x29, 0xd3, //0x00001b0e subl %edx, %r11d + 0x41, 0x89, 0xdf, //0x00001b11 movl %ebx, %r15d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001b14 jmp LBB0_375 + //0x00001b19 LBB0_373 + 0x48, 0x85, 0xd2, //0x00001b19 testq %rdx, %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001b1c movl $1, %ecx + 0x44, 0x0f, 0x45, 0xf1, //0x00001b21 cmovnel %ecx, %r14d + //0x00001b25 LBB0_374 + 0x48, 0x01, 0xc0, //0x00001b25 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001b28 leaq (%rax,%rax,4), %rax + //0x00001b2c LBB0_375 + 0x48, 0x85, 0xc0, //0x00001b2c testq %rax, %rax + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001b2f je LBB0_378 + 0x48, 0x89, 0xc2, //0x00001b35 movq %rax, %rdx + 0x44, 0x89, 0xc9, //0x00001b38 movl %r9d, %ecx + 0x48, 0xd3, 0xea, //0x00001b3b shrq %cl, %rdx + 0x48, 0x21, 0xf0, //0x00001b3e andq %rsi, %rax + 0x49, 0x63, 0xcf, //0x00001b41 movslq %r15d, %rcx + 0x49, 0x39, 0xcd, //0x00001b44 cmpq %rcx, %r13 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00001b47 jbe LBB0_373 + 0x80, 0xc2, 0x30, //0x00001b4d addb $48, %dl + 0x41, 0x88, 0x14, 0x0c, //0x00001b50 movb %dl, (%r12,%rcx) + 0xff, 0xc1, //0x00001b54 incl %ecx + 0x41, 0x89, 0xcf, //0x00001b56 movl %ecx, %r15d + 0xe9, 0xc7, 0xff, 0xff, 0xff, //0x00001b59 jmp LBB0_374 + //0x00001b5e LBB0_378 + 0x41, 0xff, 0xc3, //0x00001b5e incl %r11d + 0x45, 0x85, 0xff, //0x00001b61 testl %r15d, %r15d + 0x0f, 0x8e, 0x69, 0x00, 0x00, 0x00, //0x00001b64 jle LBB0_387 + 0x44, 0x89, 0xf8, //0x00001b6a movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001b6d cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x61, 0x00, 0x00, 0x00, //0x00001b73 jne LBB0_388 + //0x00001b79 LBB0_380 + 0x48, 0x83, 0xf8, 0x01, //0x00001b79 cmpq $1, %rax + 0x0f, 0x8e, 0x4b, 0x00, 0x00, 0x00, //0x00001b7d jle LBB0_386 + 0x4c, 0x8d, 0x78, 0xff, //0x00001b83 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001b87 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001b8d movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001b90 je LBB0_380 + 0xe9, 0x3f, 0x00, 0x00, 0x00, //0x00001b96 jmp LBB0_388 + //0x00001b9b LBB0_382 + 0x48, 0x85, 0xc0, //0x00001b9b testq %rax, %rax + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001b9e je LBB0_385 + //0x00001ba4 LBB0_383 + 0x48, 0x89, 0xc6, //0x00001ba4 movq %rax, %rsi + 0x44, 0x89, 0xc9, //0x00001ba7 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x00001baa shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001bad testq %rsi, %rsi + 0x0f, 0x85, 0xe6, 0xfe, 0xff, 0xff, //0x00001bb0 jne LBB0_368 + 0x48, 0x01, 0xc0, //0x00001bb6 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001bb9 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00001bbd incl %edx + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00001bbf jmp LBB0_383 + //0x00001bc4 LBB0_385 + 0x45, 0x31, 0xff, //0x00001bc4 xorl %r15d, %r15d + 0x31, 0xc0, //0x00001bc7 xorl %eax, %eax + 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x00001bc9 jmp LBB0_273 + //0x00001bce LBB0_386 + 0xff, 0xc8, //0x00001bce decl %eax + 0x41, 0x89, 0xc7, //0x00001bd0 movl %eax, %r15d + //0x00001bd3 LBB0_387 + 0x45, 0x85, 0xff, //0x00001bd3 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001bd6 cmovel %r15d, %r11d + //0x00001bda LBB0_388 + 0x44, 0x89, 0xf8, //0x00001bda movl %r15d, %eax + 0xe9, 0x1b, 0xf8, 0xff, 0xff, //0x00001bdd jmp LBB0_273 + //0x00001be2 LBB0_389 + 0x81, 0xfe, 0x02, 0xfc, 0xff, 0xff, //0x00001be2 cmpl $-1022, %esi + 0x0f, 0x8f, 0xb1, 0x01, 0x00, 0x00, //0x00001be8 jg LBB0_415 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00001bee movl $-1022, %r9d + 0x85, 0xff, //0x00001bf4 testl %edi, %edi + 0x0f, 0x84, 0xfd, 0x01, 0x00, 0x00, //0x00001bf6 je LBB0_420 + 0x8d, 0x8e, 0xfd, 0x03, 0x00, 0x00, //0x00001bfc leal $1021(%rsi), %ecx + 0x81, 0xfe, 0xc6, 0xfb, 0xff, 0xff, //0x00001c02 cmpl $-1082, %esi + 0x0f, 0x8f, 0x06, 0x02, 0x00, 0x00, //0x00001c08 jg LBB0_421 + 0x4d, 0x89, 0xd8, //0x00001c0e movq %r11, %r8 + 0x49, 0x8d, 0x42, 0x01, //0x00001c11 leaq $1(%r10), %rax + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001c15 movl $1, %r11d + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00001c1b jmp LBB0_396 + //0x00001c20 LBB0_393 + 0xff, 0xc9, //0x00001c20 decl %ecx + 0x41, 0x89, 0xcf, //0x00001c22 movl %ecx, %r15d + //0x00001c25 LBB0_394 + 0x45, 0x85, 0xff, //0x00001c25 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xc7, //0x00001c28 cmovel %r15d, %r8d + //0x00001c2c LBB0_395 + 0x41, 0x8d, 0x49, 0x3c, //0x00001c2c leal $60(%r9), %ecx + 0x44, 0x89, 0xff, //0x00001c30 movl %r15d, %edi + 0x41, 0x83, 0xf9, 0x88, //0x00001c33 cmpl $-120, %r9d + 0x0f, 0x8d, 0xe6, 0x01, 0x00, 0x00, //0x00001c37 jge LBB0_422 + //0x00001c3d LBB0_396 + 0x41, 0x89, 0xc9, //0x00001c3d movl %ecx, %r9d + 0x48, 0x63, 0xdf, //0x00001c40 movslq %edi, %rbx + 0x31, 0xf6, //0x00001c43 xorl %esi, %esi + 0x31, 0xc9, //0x00001c45 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c47 .p2align 4, 0x90 + //0x00001c50 LBB0_397 + 0x48, 0x39, 0xde, //0x00001c50 cmpq %rbx, %rsi + 0x0f, 0x8d, 0x1f, 0x00, 0x00, 0x00, //0x00001c53 jge LBB0_399 + 0x48, 0x8d, 0x0c, 0x89, //0x00001c59 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x34, //0x00001c5d movsbq (%r12,%rsi), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00001c62 leaq $-48(%rdx,%rcx,2), %rcx + 0x48, 0xff, 0xc6, //0x00001c67 incq %rsi + 0x48, 0x39, 0xc1, //0x00001c6a cmpq %rax, %rcx + 0x0f, 0x82, 0xdd, 0xff, 0xff, 0xff, //0x00001c6d jb LBB0_397 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001c73 jmp LBB0_401 + //0x00001c78 LBB0_399 + 0x48, 0x85, 0xc9, //0x00001c78 testq %rcx, %rcx + 0x0f, 0x84, 0x16, 0x01, 0x00, 0x00, //0x00001c7b je LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c81 .p2align 4, 0x90 + //0x00001c90 LBB0_400 + 0x48, 0x01, 0xc9, //0x00001c90 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001c93 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc6, //0x00001c97 incl %esi + 0x48, 0x39, 0xc1, //0x00001c99 cmpq %rax, %rcx + 0x0f, 0x82, 0xee, 0xff, 0xff, 0xff, //0x00001c9c jb LBB0_400 + //0x00001ca2 LBB0_401 + 0x41, 0x29, 0xf0, //0x00001ca2 subl %esi, %r8d + 0x31, 0xdb, //0x00001ca5 xorl %ebx, %ebx + 0x39, 0xfe, //0x00001ca7 cmpl %edi, %esi + 0x0f, 0x8d, 0x4d, 0x00, 0x00, 0x00, //0x00001ca9 jge LBB0_406 + 0x48, 0x63, 0xf6, //0x00001caf movslq %esi, %rsi + 0x49, 0x63, 0xff, //0x00001cb2 movslq %r15d, %rdi + 0x49, 0x8d, 0x1c, 0x34, //0x00001cb5 leaq (%r12,%rsi), %rbx + 0x45, 0x31, 0xff, //0x00001cb9 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, //0x00001cbc .p2align 4, 0x90 + //0x00001cc0 LBB0_403 + 0x48, 0x89, 0xca, //0x00001cc0 movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x00001cc3 shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x00001cc7 andq %r10, %rcx + 0x80, 0xca, 0x30, //0x00001cca orb $48, %dl + 0x43, 0x88, 0x14, 0x3c, //0x00001ccd movb %dl, (%r12,%r15) + 0x48, 0x8d, 0x0c, 0x89, //0x00001cd1 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x14, 0x3b, //0x00001cd5 movsbq (%rbx,%r15), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00001cda leaq $-48(%rdx,%rcx,2), %rcx + 0x4a, 0x8d, 0x54, 0x3e, 0x01, //0x00001cdf leaq $1(%rsi,%r15), %rdx + 0x49, 0xff, 0xc7, //0x00001ce4 incq %r15 + 0x48, 0x39, 0xfa, //0x00001ce7 cmpq %rdi, %rdx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001cea jl LBB0_403 + 0x48, 0x85, 0xc9, //0x00001cf0 testq %rcx, %rcx + 0x0f, 0x84, 0x61, 0x00, 0x00, 0x00, //0x00001cf3 je LBB0_410 + 0x44, 0x89, 0xfb, //0x00001cf9 movl %r15d, %ebx + //0x00001cfc LBB0_406 + 0x41, 0x89, 0xdf, //0x00001cfc movl %ebx, %r15d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00001cff jmp LBB0_408 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d04 .p2align 4, 0x90 + //0x00001d10 LBB0_407 + 0x48, 0x85, 0xf6, //0x00001d10 testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf3, //0x00001d13 cmovnel %r11d, %r14d + 0x48, 0x01, 0xc9, //0x00001d17 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001d1a leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001d1e testq %rcx, %rcx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001d21 je LBB0_410 + //0x00001d27 LBB0_408 + 0x48, 0x89, 0xce, //0x00001d27 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x3c, //0x00001d2a shrq $60, %rsi + 0x4c, 0x21, 0xd1, //0x00001d2e andq %r10, %rcx + 0x49, 0x63, 0xff, //0x00001d31 movslq %r15d, %rdi + 0x49, 0x39, 0xfd, //0x00001d34 cmpq %rdi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00001d37 jbe LBB0_407 + 0x40, 0x80, 0xce, 0x30, //0x00001d3d orb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00001d41 movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00001d45 incl %edi + 0x41, 0x89, 0xff, //0x00001d47 movl %edi, %r15d + 0x48, 0x01, 0xc9, //0x00001d4a addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001d4d leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001d51 testq %rcx, %rcx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00001d54 jne LBB0_408 + //0x00001d5a LBB0_410 + 0x41, 0xff, 0xc0, //0x00001d5a incl %r8d + 0x45, 0x85, 0xff, //0x00001d5d testl %r15d, %r15d + 0x0f, 0x8e, 0xbf, 0xfe, 0xff, 0xff, //0x00001d60 jle LBB0_394 + 0x44, 0x89, 0xf9, //0x00001d66 movl %r15d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00001d69 cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xb7, 0xfe, 0xff, 0xff, //0x00001d6f jne LBB0_395 + //0x00001d75 LBB0_412 + 0x48, 0x83, 0xf9, 0x01, //0x00001d75 cmpq $1, %rcx + 0x0f, 0x8e, 0xa1, 0xfe, 0xff, 0xff, //0x00001d79 jle LBB0_393 + 0x4c, 0x8d, 0x79, 0xff, //0x00001d7f leaq $-1(%rcx), %r15 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00001d83 cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xf9, //0x00001d89 movq %r15, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001d8c je LBB0_412 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00001d92 jmp LBB0_395 + //0x00001d97 LBB0_414 + 0x45, 0x31, 0xff, //0x00001d97 xorl %r15d, %r15d + 0xe9, 0x8d, 0xfe, 0xff, 0xff, //0x00001d9a jmp LBB0_395 + //0x00001d9f LBB0_415 + 0x81, 0xfe, 0x00, 0x04, 0x00, 0x00, //0x00001d9f cmpl $1024, %esi + 0x0f, 0x8e, 0x28, 0x00, 0x00, 0x00, //0x00001da5 jle LBB0_417 + 0x31, 0xf6, //0x00001dab xorl %esi, %esi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001dad movabsq $9218868437227405312, %r9 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001db7 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001dc1 movabsq $4503599627370495, %r10 + 0x8a, 0x55, 0xd7, //0x00001dcb movb $-41(%rbp), %dl + 0xe9, 0xd3, 0x07, 0x00, 0x00, //0x00001dce jmp LBB0_514 + //0x00001dd3 LBB0_417 + 0xff, 0xce, //0x00001dd3 decl %esi + 0x41, 0x89, 0xf1, //0x00001dd5 movl %esi, %r9d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001dd8 movabsq $4503599627370495, %r10 + //0x00001de2 LBB0_418 + 0x85, 0xff, //0x00001de2 testl %edi, %edi + 0x0f, 0x84, 0xc2, 0x01, 0x00, 0x00, //0x00001de4 je LBB0_444 + 0x4c, 0x89, 0x4d, 0xc8, //0x00001dea movq %r9, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00001dee movq %r11, %r8 + 0x45, 0x89, 0xfa, //0x00001df1 movl %r15d, %r10d + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x00001df4 jmp LBB0_450 + //0x00001df9 LBB0_420 + 0x31, 0xc0, //0x00001df9 xorl %eax, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001dfb movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001e05 movabsq $4503599627370495, %r10 + 0xe9, 0xe1, 0x03, 0x00, 0x00, //0x00001e0f jmp LBB0_476 + //0x00001e14 LBB0_421 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001e14 movabsq $4503599627370495, %r10 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00001e1e jmp LBB0_424 + //0x00001e23 LBB0_422 + 0x85, 0xc9, //0x00001e23 testl %ecx, %ecx + 0x0f, 0x84, 0xa5, 0x01, 0x00, 0x00, //0x00001e25 je LBB0_446 + 0x44, 0x89, 0xff, //0x00001e2b movl %r15d, %edi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001e2e movabsq $4503599627370495, %r10 + 0x4d, 0x89, 0xc3, //0x00001e38 movq %r8, %r11 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00001e3b movl $-1022, %r9d + //0x00001e41 LBB0_424 + 0xf7, 0xd9, //0x00001e41 negl %ecx + 0x48, 0x63, 0xf7, //0x00001e43 movslq %edi, %rsi + 0x31, 0xd2, //0x00001e46 xorl %edx, %edx + 0x31, 0xc0, //0x00001e48 xorl %eax, %eax + //0x00001e4a LBB0_425 + 0x48, 0x39, 0xf2, //0x00001e4a cmpq %rsi, %rdx + 0x0f, 0x8d, 0x25, 0x00, 0x00, 0x00, //0x00001e4d jge LBB0_441 + 0x48, 0x8d, 0x04, 0x80, //0x00001e53 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x00001e57 movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x44, 0x43, 0xd0, //0x00001e5c leaq $-48(%rbx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00001e61 incq %rdx + 0x48, 0x89, 0xc3, //0x00001e64 movq %rax, %rbx + 0x48, 0xd3, 0xeb, //0x00001e67 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001e6a testq %rbx, %rbx + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00001e6d je LBB0_425 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00001e73 jmp LBB0_427 + //0x00001e78 LBB0_441 + 0x48, 0x85, 0xc0, //0x00001e78 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x00001e7b je LBB0_444 + 0x48, 0x89, 0xc6, //0x00001e81 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00001e84 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001e87 testq %rsi, %rsi + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00001e8a jne LBB0_427 + //0x00001e90 LBB0_443 + 0x48, 0x01, 0xc0, //0x00001e90 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001e93 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00001e97 incl %edx + 0x48, 0x89, 0xc6, //0x00001e99 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00001e9c shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001e9f testq %rsi, %rsi + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00001ea2 je LBB0_443 + //0x00001ea8 LBB0_427 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001ea8 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x00001eaf shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001eb2 notq %rsi + 0x45, 0x31, 0xd2, //0x00001eb5 xorl %r10d, %r10d + 0x39, 0xfa, //0x00001eb8 cmpl %edi, %edx + 0x0f, 0x8d, 0x3d, 0x00, 0x00, 0x00, //0x00001eba jge LBB0_430 + 0x4c, 0x63, 0xca, //0x00001ec0 movslq %edx, %r9 + 0x4d, 0x63, 0xc7, //0x00001ec3 movslq %r15d, %r8 + 0x4b, 0x8d, 0x1c, 0x0c, //0x00001ec6 leaq (%r12,%r9), %rbx + 0x45, 0x31, 0xd2, //0x00001eca xorl %r10d, %r10d + //0x00001ecd LBB0_429 + 0x48, 0x89, 0xc7, //0x00001ecd movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00001ed0 shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001ed3 andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00001ed6 addb $48, %dil + 0x43, 0x88, 0x3c, 0x14, //0x00001eda movb %dil, (%r12,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00001ede leaq (%rax,%rax,4), %rax + 0x4a, 0x0f, 0xbe, 0x3c, 0x13, //0x00001ee2 movsbq (%rbx,%r10), %rdi + 0x48, 0x8d, 0x44, 0x47, 0xd0, //0x00001ee7 leaq $-48(%rdi,%rax,2), %rax + 0x4b, 0x8d, 0x7c, 0x11, 0x01, //0x00001eec leaq $1(%r9,%r10), %rdi + 0x49, 0xff, 0xc2, //0x00001ef1 incq %r10 + 0x4c, 0x39, 0xc7, //0x00001ef4 cmpq %r8, %rdi + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001ef7 jl LBB0_429 + //0x00001efd LBB0_430 + 0x41, 0x29, 0xd3, //0x00001efd subl %edx, %r11d + 0x48, 0x85, 0xc0, //0x00001f00 testq %rax, %rax + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x00001f03 je LBB0_435 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001f09 movl $1, %edx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001f0e jmp LBB0_433 + //0x00001f13 LBB0_432 + 0x48, 0x85, 0xff, //0x00001f13 testq %rdi, %rdi + 0x44, 0x0f, 0x45, 0xf2, //0x00001f16 cmovnel %edx, %r14d + 0x48, 0x01, 0xc0, //0x00001f1a addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001f1d leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00001f21 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00001f24 je LBB0_435 + //0x00001f2a LBB0_433 + 0x48, 0x89, 0xc7, //0x00001f2a movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00001f2d shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001f30 andq %rsi, %rax + 0x49, 0x63, 0xda, //0x00001f33 movslq %r10d, %rbx + 0x49, 0x39, 0xdd, //0x00001f36 cmpq %rbx, %r13 + 0x0f, 0x86, 0xd4, 0xff, 0xff, 0xff, //0x00001f39 jbe LBB0_432 + 0x40, 0x80, 0xc7, 0x30, //0x00001f3f addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00001f43 movb %dil, (%r12,%rbx) + 0xff, 0xc3, //0x00001f47 incl %ebx + 0x41, 0x89, 0xda, //0x00001f49 movl %ebx, %r10d + 0x48, 0x01, 0xc0, //0x00001f4c addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001f4f leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00001f53 testq %rax, %rax + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00001f56 jne LBB0_433 + //0x00001f5c LBB0_435 + 0x41, 0xff, 0xc3, //0x00001f5c incl %r11d + 0x45, 0x85, 0xd2, //0x00001f5f testl %r10d, %r10d + 0x0f, 0x8e, 0x88, 0x00, 0x00, 0x00, //0x00001f62 jle LBB0_448 + 0x44, 0x89, 0xd0, //0x00001f68 movl %r10d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001f6b cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x00001f71 jne LBB0_449 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001f77 movabsq $4503599627370495, %r10 + //0x00001f81 LBB0_438 + 0x48, 0x83, 0xf8, 0x01, //0x00001f81 cmpq $1, %rax + 0x0f, 0x8e, 0x60, 0x00, 0x00, 0x00, //0x00001f85 jle LBB0_447 + 0x4c, 0x8d, 0x78, 0xff, //0x00001f8b leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001f8f cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001f95 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001f98 je LBB0_438 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00001f9e movl $-1022, %r9d + 0x44, 0x89, 0xff, //0x00001fa4 movl %r15d, %edi + 0xe9, 0x36, 0xfe, 0xff, 0xff, //0x00001fa7 jmp LBB0_418 + //0x00001fac LBB0_444 + 0x31, 0xc0, //0x00001fac xorl %eax, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001fae movabsq $-9223372036854775808, %rdi + 0xe9, 0x38, 0x02, 0x00, 0x00, //0x00001fb8 jmp LBB0_476 + //0x00001fbd LBB0_445 + 0x01, 0xc7, //0x00001fbd addl %eax, %edi + 0x45, 0x31, 0xdb, //0x00001fbf xorl %r11d, %r11d + 0x45, 0x31, 0xff, //0x00001fc2 xorl %r15d, %r15d + 0x89, 0xf8, //0x00001fc5 movl %edi, %eax + 0x31, 0xff, //0x00001fc7 xorl %edi, %edi + 0x89, 0xc6, //0x00001fc9 movl %eax, %esi + 0xe9, 0x1f, 0xf4, 0xff, 0xff, //0x00001fcb jmp LBB0_271 + //0x00001fd0 LBB0_446 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00001fd0 movl $-1022, %r9d + 0x44, 0x89, 0xff, //0x00001fd6 movl %r15d, %edi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001fd9 movabsq $4503599627370495, %r10 + 0x4d, 0x89, 0xc3, //0x00001fe3 movq %r8, %r11 + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00001fe6 jmp LBB0_418 + //0x00001feb LBB0_447 + 0xff, 0xc8, //0x00001feb decl %eax + 0x41, 0x89, 0xc2, //0x00001fed movl %eax, %r10d + //0x00001ff0 LBB0_448 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00001ff0 movl $-1022, %r9d + 0x45, 0x85, 0xd2, //0x00001ff6 testl %r10d, %r10d + 0x0f, 0x84, 0xca, 0x02, 0x00, 0x00, //0x00001ff9 je LBB0_489 + //0x00001fff LBB0_449 + 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001fff movl $-1022, %eax + 0x48, 0x89, 0x45, 0xc8, //0x00002004 movq %rax, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00002008 movq %r11, %r8 + 0x44, 0x89, 0xd7, //0x0000200b movl %r10d, %edi + //0x0000200e LBB0_450 + 0x4c, 0x63, 0xdf, //0x0000200e movslq %edi, %r11 + 0xb1, 0x31, //0x00002011 movb $49, %cl + 0x31, 0xc0, //0x00002013 xorl %eax, %eax + 0x41, 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00002015 movl $16, %r9d + //0x0000201b LBB0_451 + 0x48, 0x83, 0xf8, 0x26, //0x0000201b cmpq $38, %rax + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000201f je LBB0_456 + 0x41, 0x38, 0x0c, 0x04, //0x00002025 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x00002029 jne LBB0_473 + 0x48, 0x8d, 0x0d, 0x4a, 0x32, 0x00, 0x00, //0x0000202f leaq $12874(%rip), %rcx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0xb6, 0x8c, 0x08, 0x8d, 0x15, 0x00, 0x00, //0x00002036 movzbl $5517(%rax,%rcx), %ecx + 0x48, 0xff, 0xc0, //0x0000203e incq %rax + 0x49, 0x39, 0xc3, //0x00002041 cmpq %rax, %r11 + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00002044 jne LBB0_451 + 0x84, 0xc9, //0x0000204a testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000204c je LBB0_456 + //0x00002052 LBB0_455 + 0x41, 0xb9, 0x0f, 0x00, 0x00, 0x00, //0x00002052 movl $15, %r9d + //0x00002058 LBB0_456 + 0x85, 0xff, //0x00002058 testl %edi, %edi + 0x0f, 0x8e, 0xfe, 0x00, 0x00, 0x00, //0x0000205a jle LBB0_467 + 0x44, 0x01, 0xcf, //0x00002060 addl %r9d, %edi + 0x48, 0x63, 0xf7, //0x00002063 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x00002066 decq %rsi + 0x49, 0xff, 0xc3, //0x00002069 incq %r11 + 0x31, 0xc9, //0x0000206c xorl %ecx, %ecx + 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000206e movabsq $-432345564227567616, %r15 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00002078 jmp LBB0_460 + //0x0000207d LBB0_458 + 0x48, 0x85, 0xc0, //0x0000207d testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002080 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002085 cmovnel %eax, %r14d + //0x00002089 LBB0_459 + 0xff, 0xcf, //0x00002089 decl %edi + 0x48, 0xff, 0xce, //0x0000208b decq %rsi + 0x49, 0xff, 0xcb, //0x0000208e decq %r11 + 0x49, 0x83, 0xfb, 0x01, //0x00002091 cmpq $1, %r11 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002095 jle LBB0_462 + //0x0000209b LBB0_460 + 0x4b, 0x0f, 0xbe, 0x5c, 0x1c, 0xfe, //0x0000209b movsbq $-2(%r12,%r11), %rbx + 0x48, 0xc1, 0xe3, 0x35, //0x000020a1 shlq $53, %rbx + 0x48, 0x01, 0xcb, //0x000020a5 addq %rcx, %rbx + 0x4c, 0x01, 0xfb, //0x000020a8 addq %r15, %rbx + 0x48, 0x89, 0xd8, //0x000020ab movq %rbx, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000020ae movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x000020b8 mulq %rcx + 0x48, 0x89, 0xd1, //0x000020bb movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x000020be shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x000020c2 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000020c6 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x000020ca movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x000020cd subq %rdx, %rax + 0x4c, 0x39, 0xee, //0x000020d0 cmpq %r13, %rsi + 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x000020d3 jae LBB0_458 + 0x04, 0x30, //0x000020d9 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x000020db movb %al, (%r12,%rsi) + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x000020df jmp LBB0_459 + //0x000020e4 LBB0_462 + 0x48, 0x83, 0xfb, 0x0a, //0x000020e4 cmpq $10, %rbx + 0x4d, 0x89, 0xc3, //0x000020e8 movq %r8, %r11 + 0x0f, 0x82, 0x70, 0x00, 0x00, 0x00, //0x000020eb jb LBB0_468 + 0x48, 0x63, 0xf7, //0x000020f1 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x000020f4 decq %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000020f7 movl $1, %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000020fc jmp LBB0_465 + //0x00002101 LBB0_464 + 0x48, 0x85, 0xc0, //0x00002101 testq %rax, %rax + 0x44, 0x0f, 0x45, 0xf7, //0x00002104 cmovnel %edi, %r14d + 0x48, 0xff, 0xce, //0x00002108 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x0000210b cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x0000210f movq %rdx, %rcx + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x00002112 jbe LBB0_468 + //0x00002118 LBB0_465 + 0x48, 0x89, 0xc8, //0x00002118 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000211b movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002125 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00002128 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x0000212c leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00002130 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00002134 movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00002137 subq %rbx, %rax + 0x4c, 0x39, 0xee, //0x0000213a cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x0000213d jae LBB0_464 + 0x04, 0x30, //0x00002143 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002145 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00002149 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x0000214c cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002150 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002153 ja LBB0_465 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002159 jmp LBB0_468 + //0x0000215e LBB0_467 + 0x4d, 0x89, 0xc3, //0x0000215e movq %r8, %r11 + //0x00002161 LBB0_468 + 0x45, 0x01, 0xca, //0x00002161 addl %r9d, %r10d + 0x49, 0x63, 0xc2, //0x00002164 movslq %r10d, %rax + 0x49, 0x39, 0xc5, //0x00002167 cmpq %rax, %r13 + 0x41, 0x0f, 0x46, 0xc5, //0x0000216a cmovbel %r13d, %eax + 0x45, 0x01, 0xcb, //0x0000216e addl %r9d, %r11d + 0x85, 0xc0, //0x00002171 testl %eax, %eax + 0x0f, 0x8e, 0x48, 0x00, 0x00, 0x00, //0x00002173 jle LBB0_472 + 0x89, 0xc1, //0x00002179 movl %eax, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x0000217b cmpb $48, $-1(%rcx,%r12) + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002181 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000218b movabsq $4503599627370495, %r10 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00002195 movq $-56(%rbp), %r9 + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x00002199 jne LBB0_476 + //0x0000219f LBB0_470 + 0x48, 0x83, 0xf9, 0x01, //0x0000219f cmpq $1, %rcx + 0x0f, 0x8e, 0x40, 0x00, 0x00, 0x00, //0x000021a3 jle LBB0_474 + 0x48, 0x8d, 0x41, 0xff, //0x000021a9 leaq $-1(%rcx), %rax + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x000021ad cmpb $48, $-2(%r12,%rcx) + 0x48, 0x89, 0xc1, //0x000021b3 movq %rax, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000021b6 je LBB0_470 + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000021bc jmp LBB0_476 + //0x000021c1 LBB0_472 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000021c1 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000021cb movabsq $4503599627370495, %r10 + 0x4c, 0x8b, 0x4d, 0xc8, //0x000021d5 movq $-56(%rbp), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000021d9 jmp LBB0_475 + //0x000021de LBB0_473 + 0x0f, 0x8c, 0x6e, 0xfe, 0xff, 0xff, //0x000021de jl LBB0_455 + 0xe9, 0x6f, 0xfe, 0xff, 0xff, //0x000021e4 jmp LBB0_456 + //0x000021e9 LBB0_474 + 0xff, 0xc9, //0x000021e9 decl %ecx + 0x89, 0xc8, //0x000021eb movl %ecx, %eax + //0x000021ed LBB0_475 + 0x85, 0xc0, //0x000021ed testl %eax, %eax + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x000021ef je LBB0_488 + //0x000021f5 LBB0_476 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000021f5 movq $-1, %rsi + 0x41, 0x83, 0xfb, 0x14, //0x000021fc cmpl $20, %r11d + 0x0f, 0x8e, 0x08, 0x00, 0x00, 0x00, //0x00002200 jle LBB0_478 + 0x8a, 0x55, 0xd7, //0x00002206 movb $-41(%rbp), %dl + 0xe9, 0x78, 0x03, 0x00, 0x00, //0x00002209 jmp LBB0_513 + //0x0000220e LBB0_478 + 0x44, 0x89, 0xd9, //0x0000220e movl %r11d, %ecx + 0x45, 0x85, 0xdb, //0x00002211 testl %r11d, %r11d + 0x0f, 0x8e, 0x35, 0x00, 0x00, 0x00, //0x00002214 jle LBB0_483 + 0x48, 0x63, 0xf8, //0x0000221a movslq %eax, %rdi + 0x31, 0xf6, //0x0000221d xorl %esi, %esi + 0x31, 0xdb, //0x0000221f xorl %ebx, %ebx + //0x00002221 LBB0_480 + 0x48, 0x39, 0xfe, //0x00002221 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x1a, 0x00, 0x00, 0x00, //0x00002224 jge LBB0_482 + 0x48, 0x8d, 0x14, 0x9b, //0x0000222a leaq (%rbx,%rbx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x0000222e movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x5c, 0x53, 0xd0, //0x00002233 leaq $-48(%rbx,%rdx,2), %rbx + 0x48, 0xff, 0xc6, //0x00002238 incq %rsi + 0x48, 0x39, 0xf1, //0x0000223b cmpq %rsi, %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000223e jne LBB0_480 + //0x00002244 LBB0_482 + 0x4d, 0x89, 0xcf, //0x00002244 movq %r9, %r15 + 0x45, 0x31, 0xc9, //0x00002247 xorl %r9d, %r9d + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000224a jmp LBB0_484 + //0x0000224f LBB0_483 + 0x4d, 0x89, 0xcf, //0x0000224f movq %r9, %r15 + 0x31, 0xf6, //0x00002252 xorl %esi, %esi + 0x41, 0xb1, 0x01, //0x00002254 movb $1, %r9b + 0x31, 0xdb, //0x00002257 xorl %ebx, %ebx + //0x00002259 LBB0_484 + 0x4d, 0x89, 0xd8, //0x00002259 movq %r11, %r8 + 0x41, 0x29, 0xf3, //0x0000225c subl %esi, %r11d + 0x0f, 0x8e, 0x6e, 0x02, 0x00, 0x00, //0x0000225f jle LBB0_500 + 0x41, 0x83, 0xfb, 0x10, //0x00002265 cmpl $16, %r11d + 0x0f, 0x82, 0x50, 0x02, 0x00, 0x00, //0x00002269 jb LBB0_498 + 0x45, 0x89, 0xda, //0x0000226f movl %r11d, %r10d + 0xc5, 0xfa, 0x6f, 0x05, 0xe6, 0xdd, 0xff, 0xff, //0x00002272 vmovdqu $-8730(%rip), %xmm0 /* LCPI0_4+0(%rip) */ + 0xc4, 0xe3, 0xf9, 0x22, 0xc3, 0x00, //0x0000227a vpinsrq $0, %rbx, %xmm0, %xmm0 + 0x41, 0x83, 0xe2, 0xf0, //0x00002280 andl $-16, %r10d + 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0xd2, 0xdd, 0xff, 0xff, 0xf0, //0x00002284 vpblendd $240, $-8750(%rip), %ymm0, %ymm0 /* LCPI0_4+0(%rip) */ + 0x41, 0x8d, 0x52, 0xf0, //0x0000228e leal $-16(%r10), %edx + 0x89, 0xd7, //0x00002292 movl %edx, %edi + 0xc1, 0xef, 0x04, //0x00002294 shrl $4, %edi + 0xff, 0xc7, //0x00002297 incl %edi + 0x89, 0xfb, //0x00002299 movl %edi, %ebx + 0x83, 0xe3, 0x03, //0x0000229b andl $3, %ebx + 0x83, 0xfa, 0x30, //0x0000229e cmpl $48, %edx + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x000022a1 jae LBB0_490 + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x80, 0xdd, 0xff, 0xff, //0x000022a7 vpbroadcastq $-8832(%rip), %ymm2 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000022b0 vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x000022b4 vmovdqa %ymm2, %ymm1 + 0xe9, 0xab, 0x00, 0x00, 0x00, //0x000022b8 jmp LBB0_492 + //0x000022bd LBB0_488 + 0x31, 0xdb, //0x000022bd xorl %ebx, %ebx + 0x31, 0xf6, //0x000022bf xorl %esi, %esi + 0x8a, 0x55, 0xd7, //0x000022c1 movb $-41(%rbp), %dl + 0xe9, 0x7e, 0x02, 0x00, 0x00, //0x000022c4 jmp LBB0_509 + //0x000022c9 LBB0_489 + 0x31, 0xdb, //0x000022c9 xorl %ebx, %ebx + 0x31, 0xf6, //0x000022cb xorl %esi, %esi + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000022cd movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000022d7 movabsq $4503599627370495, %r10 + 0x8a, 0x55, 0xd7, //0x000022e1 movb $-41(%rbp), %dl + 0xe9, 0x5e, 0x02, 0x00, 0x00, //0x000022e4 jmp LBB0_509 + //0x000022e9 LBB0_490 + 0x89, 0xda, //0x000022e9 movl %ebx, %edx + 0x29, 0xfa, //0x000022eb subl %edi, %edx + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x3a, 0xdd, 0xff, 0xff, //0x000022ed vpbroadcastq $-8902(%rip), %ymm2 /* LCPI0_5+0(%rip) */ + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x39, 0xdd, 0xff, 0xff, //0x000022f6 vpbroadcastq $-8903(%rip), %ymm4 /* LCPI0_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x000022ff vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x00002303 vmovdqa %ymm2, %ymm1 + //0x00002307 LBB0_491 + 0xc5, 0xfd, 0xf4, 0xec, //0x00002307 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x0000230b vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x00002310 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x00002314 vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00002319 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x0000231d vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x00002321 vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x00002326 vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x0000232a vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x0000232f vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x00002333 vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00002337 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x0000233c vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00002340 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x00002345 vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x00002349 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x0000234d vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x00002352 vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x00002356 vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x0000235b vpaddq %ymm1, %ymm5, %ymm1 + 0x83, 0xc2, 0x04, //0x0000235f addl $4, %edx + 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x00002362 jne LBB0_491 + //0x00002368 LBB0_492 + 0x85, 0xdb, //0x00002368 testl %ebx, %ebx + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x0000236a je LBB0_495 + 0xf7, 0xdb, //0x00002370 negl %ebx + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0xc5, 0xdc, 0xff, 0xff, //0x00002372 vpbroadcastq $-9019(%rip), %ymm4 /* LCPI0_7+0(%rip) */ + //0x0000237b LBB0_494 + 0xc5, 0xfd, 0xf4, 0xec, //0x0000237b vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x0000237f vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x00002384 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x00002388 vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x0000238d vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00002391 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x00002395 vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x0000239a vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x0000239e vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x000023a3 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x000023a7 vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x000023ab vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x000023b0 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x000023b4 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x000023b9 vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x000023bd vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x000023c1 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x000023c6 vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x000023ca vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x000023cf vpaddq %ymm1, %ymm5, %ymm1 + 0xff, 0xc3, //0x000023d3 incl %ebx + 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x000023d5 jne LBB0_494 + //0x000023db LBB0_495 + 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x000023db vpsrlq $32, %ymm2, %ymm4 + 0xc5, 0xdd, 0xf4, 0xe0, //0x000023e0 vpmuludq %ymm0, %ymm4, %ymm4 + 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x000023e4 vpsrlq $32, %ymm0, %ymm5 + 0xc5, 0xed, 0xf4, 0xed, //0x000023e9 vpmuludq %ymm5, %ymm2, %ymm5 + 0xc5, 0xd5, 0xd4, 0xe4, //0x000023ed vpaddq %ymm4, %ymm5, %ymm4 + 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x000023f1 vpsllq $32, %ymm4, %ymm4 + 0xc5, 0xed, 0xf4, 0xc0, //0x000023f6 vpmuludq %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc4, //0x000023fa vpaddq %ymm4, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x000023fe vpsrlq $32, %ymm3, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x00002403 vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x00002407 vpsrlq $32, %ymm0, %ymm4 + 0xc5, 0xe5, 0xf4, 0xe4, //0x0000240c vpmuludq %ymm4, %ymm3, %ymm4 + 0xc5, 0xdd, 0xd4, 0xd2, //0x00002410 vpaddq %ymm2, %ymm4, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00002414 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xe5, 0xf4, 0xc0, //0x00002419 vpmuludq %ymm0, %ymm3, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x0000241d vpaddq %ymm2, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x00002421 vpsrlq $32, %ymm1, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x00002426 vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x0000242a vpsrlq $32, %ymm0, %ymm3 + 0xc5, 0xf5, 0xf4, 0xdb, //0x0000242f vpmuludq %ymm3, %ymm1, %ymm3 + 0xc5, 0xe5, 0xd4, 0xd2, //0x00002433 vpaddq %ymm2, %ymm3, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00002437 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xf5, 0xf4, 0xc0, //0x0000243c vpmuludq %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00002440 vpaddq %ymm2, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x00002444 vextracti128 $1, %ymm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x0000244a vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x0000244f vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x00002453 vpsrlq $32, %xmm1, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00002458 vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x0000245c vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00002460 vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x00002465 vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00002469 vpaddq %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc8, 0x4e, //0x0000246d vpshufd $78, %xmm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00002472 vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00002477 vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd8, 0x0c, //0x0000247b vpsrldq $12, %xmm0, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00002480 vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00002484 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00002488 vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x0000248d vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00002491 vpaddq %xmm2, %xmm0, %xmm0 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc3, //0x00002495 vmovq %xmm0, %rbx + 0x45, 0x39, 0xd3, //0x0000249a cmpl %r10d, %r11d + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x0000249d jne LBB0_497 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000024a3 movabsq $4503599627370495, %r10 + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000024ad jmp LBB0_500 + //0x000024b2 LBB0_497 + 0x44, 0x01, 0xd6, //0x000024b2 addl %r10d, %esi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000024b5 movabsq $4503599627370495, %r10 + //0x000024bf LBB0_498 + 0x44, 0x89, 0xc7, //0x000024bf movl %r8d, %edi + 0x29, 0xf7, //0x000024c2 subl %esi, %edi + //0x000024c4 LBB0_499 + 0x48, 0x01, 0xdb, //0x000024c4 addq %rbx, %rbx + 0x48, 0x8d, 0x1c, 0x9b, //0x000024c7 leaq (%rbx,%rbx,4), %rbx + 0xff, 0xcf, //0x000024cb decl %edi + 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x000024cd jne LBB0_499 + //0x000024d3 LBB0_500 + 0x31, 0xf6, //0x000024d3 xorl %esi, %esi + 0x45, 0x85, 0xc0, //0x000024d5 testl %r8d, %r8d + 0x0f, 0x88, 0x4d, 0x00, 0x00, 0x00, //0x000024d8 js LBB0_506 + 0x44, 0x39, 0xc0, //0x000024de cmpl %r8d, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000024e1 movabsq $-9223372036854775808, %rdi + 0x0f, 0x8e, 0x50, 0x00, 0x00, 0x00, //0x000024eb jle LBB0_508 + 0x41, 0x8a, 0x0c, 0x0c, //0x000024f1 movb (%r12,%rcx), %cl + 0x41, 0x8d, 0x70, 0x01, //0x000024f5 leal $1(%r8), %esi + 0x39, 0xc6, //0x000024f9 cmpl %eax, %esi + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x000024fb jne LBB0_507 + 0x80, 0xf9, 0x35, //0x00002501 cmpb $53, %cl + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00002504 jne LBB0_507 + 0x45, 0x85, 0xf6, //0x0000250a testl %r14d, %r14d + 0x40, 0x0f, 0x95, 0xc6, //0x0000250d setne %sil + 0x41, 0x08, 0xf1, //0x00002511 orb %sil, %r9b + 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00002514 jne LBB0_508 + 0x49, 0x63, 0xc0, //0x0000251a movslq %r8d, %rax + 0x42, 0x8a, 0x74, 0x20, 0xff, //0x0000251d movb $-1(%rax,%r12), %sil + 0x40, 0x80, 0xe6, 0x01, //0x00002522 andb $1, %sil + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00002526 jmp LBB0_508 + //0x0000252b LBB0_506 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000252b movabsq $-9223372036854775808, %rdi + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00002535 jmp LBB0_508 + //0x0000253a LBB0_507 + 0x80, 0xf9, 0x34, //0x0000253a cmpb $52, %cl + 0x40, 0x0f, 0x9f, 0xc6, //0x0000253d setg %sil + //0x00002541 LBB0_508 + 0x8a, 0x55, 0xd7, //0x00002541 movb $-41(%rbp), %dl + 0x4d, 0x89, 0xf9, //0x00002544 movq %r15, %r9 + //0x00002547 LBB0_509 + 0x40, 0x0f, 0xb6, 0xf6, //0x00002547 movzbl %sil, %esi + 0x48, 0x01, 0xde, //0x0000254b addq %rbx, %rsi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000254e movabsq $9007199254740992, %rax + 0x48, 0x39, 0xc6, //0x00002558 cmpq %rax, %rsi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x0000255b jne LBB0_513 + 0x41, 0x81, 0xf9, 0xfe, 0x03, 0x00, 0x00, //0x00002561 cmpl $1022, %r9d + 0x0f, 0x8e, 0x11, 0x00, 0x00, 0x00, //0x00002568 jle LBB0_512 + 0x31, 0xf6, //0x0000256e xorl %esi, %esi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002570 movabsq $9218868437227405312, %r9 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000257a jmp LBB0_514 + //0x0000257f LBB0_512 + 0x41, 0xff, 0xc1, //0x0000257f incl %r9d + 0x49, 0x8d, 0x72, 0x01, //0x00002582 leaq $1(%r10), %rsi + //0x00002586 LBB0_513 + 0x49, 0x8d, 0x42, 0x01, //0x00002586 leaq $1(%r10), %rax + 0x48, 0x21, 0xf0, //0x0000258a andq %rsi, %rax + 0x41, 0x81, 0xc1, 0xff, 0x03, 0x00, 0x00, //0x0000258d addl $1023, %r9d + 0x41, 0x81, 0xe1, 0xff, 0x07, 0x00, 0x00, //0x00002594 andl $2047, %r9d + 0x49, 0xc1, 0xe1, 0x34, //0x0000259b shlq $52, %r9 + 0x48, 0x85, 0xc0, //0x0000259f testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xc8, //0x000025a2 cmoveq %rax, %r9 + //0x000025a6 LBB0_514 + 0x4c, 0x21, 0xd6, //0x000025a6 andq %r10, %rsi + 0x4c, 0x09, 0xce, //0x000025a9 orq %r9, %rsi + 0x48, 0x89, 0xf3, //0x000025ac movq %rsi, %rbx + 0x48, 0x09, 0xfb, //0x000025af orq %rdi, %rbx + 0x80, 0xfa, 0x2d, //0x000025b2 cmpb $45, %dl + 0x48, 0x0f, 0x45, 0xde, //0x000025b5 cmovneq %rsi, %rbx + //0x000025b9 LBB0_515 + 0x48, 0xff, 0xcf, //0x000025b9 decq %rdi + 0x48, 0x21, 0xdf, //0x000025bc andq %rbx, %rdi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000025bf movabsq $9218868437227405312, %rax + 0x48, 0x39, 0xc7, //0x000025c9 cmpq %rax, %rdi + 0x48, 0x8b, 0x45, 0x98, //0x000025cc movq $-104(%rbp), %rax + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000025d0 jne LBB0_517 + 0x48, 0xc7, 0x00, 0xf8, 0xff, 0xff, 0xff, //0x000025d6 movq $-8, (%rax) + //0x000025dd LBB0_517 + 0x48, 0x89, 0x58, 0x08, //0x000025dd movq %rbx, $8(%rax) + 0x48, 0x8b, 0x45, 0xa0, //0x000025e1 movq $-96(%rbp), %rax + 0x48, 0x8b, 0x4d, 0xa8, //0x000025e5 movq $-88(%rbp), %rcx + 0x48, 0x89, 0x08, //0x000025e9 movq %rcx, (%rax) + 0xe9, 0x7e, 0xdd, 0xff, 0xff, //0x000025ec jmp LBB0_51 + 0x00, 0x00, 0x00, //0x000025f1 .p2align 2, 0x00 + //0x000025f4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000025f4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f8 .p2align 4, 0x00 + //0x00002600 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00002600 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00002608 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00002610 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00002618 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00002620 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00002628 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00002630 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00002638 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00002640 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00002648 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00002650 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00002658 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00002660 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00002668 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00002670 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00002678 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00002680 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00002688 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00002690 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00002698 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x000026a0 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x000026a8 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x000026b0 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b8 .p2align 4, 0x00 + //0x000026c0 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x000026c0 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x000026c8 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x000026d0 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x000026d8 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x000026e0 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x000026e8 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x000026f0 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x000026f8 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00002700 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00002708 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00002710 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00002718 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00002720 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00002728 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00002730 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00002738 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00002740 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00002748 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00002750 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00002758 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00002760 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00002768 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00002770 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00002778 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00002780 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00002788 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00002790 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00002798 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x000027a0 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x000027a8 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x000027b0 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x000027b8 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x000027c0 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x000027c8 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x000027d0 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x000027d8 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x000027e0 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x000027e8 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x000027f0 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x000027f8 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00002800 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00002808 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00002810 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00002818 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00002820 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00002828 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00002830 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00002838 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00002840 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00002848 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00002850 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00002858 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00002860 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00002868 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00002870 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00002878 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00002880 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00002888 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00002890 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00002898 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x000028a0 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x000028a8 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x000028b0 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x000028b8 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x000028c0 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x000028c8 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x000028d0 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x000028d8 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x000028e0 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x000028e8 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x000028f0 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x000028f8 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00002900 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00002908 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00002910 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00002918 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00002920 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00002928 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00002930 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00002938 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00002940 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00002948 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00002950 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00002958 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00002960 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00002968 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00002970 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00002978 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00002980 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00002988 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00002990 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00002998 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x000029a0 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x000029a8 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x000029b0 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x000029b8 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x000029c0 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x000029c8 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x000029d0 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x000029d8 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x000029e0 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x000029e8 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x000029f0 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x000029f8 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00002a00 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00002a08 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00002a10 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00002a18 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00002a20 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00002a28 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00002a30 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00002a38 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00002a40 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00002a48 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00002a50 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00002a58 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00002a60 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00002a68 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00002a70 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00002a78 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00002a80 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00002a88 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00002a90 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00002a98 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00002aa0 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00002aa8 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00002ab0 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00002ab8 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00002ac0 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00002ac8 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00002ad0 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00002ad8 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00002ae0 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00002ae8 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00002af0 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00002af8 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00002b00 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00002b08 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00002b10 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00002b18 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00002b20 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00002b28 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00002b30 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00002b38 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00002b40 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00002b48 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00002b50 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00002b58 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00002b60 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00002b68 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00002b70 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00002b78 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00002b80 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00002b88 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00002b90 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00002b98 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00002ba0 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00002ba8 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00002bb0 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00002bb8 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00002bc0 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00002bc8 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00002bd0 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00002bd8 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00002be0 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00002be8 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00002bf0 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00002bf8 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00002c00 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00002c08 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00002c10 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00002c18 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00002c20 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00002c28 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00002c30 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00002c38 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00002c40 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00002c48 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00002c50 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00002c58 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00002c60 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00002c68 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00002c70 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00002c78 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00002c80 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00002c88 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00002c90 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00002c98 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00002ca0 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00002ca8 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00002cb0 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00002cb8 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00002cc0 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00002cc8 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00002cd0 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00002cd8 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00002ce0 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00002ce8 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00002cf0 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00002cf8 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00002d00 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00002d08 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00002d10 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00002d18 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00002d20 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00002d28 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00002d30 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00002d38 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00002d40 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00002d48 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00002d50 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00002d58 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00002d60 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00002d68 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00002d70 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00002d78 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00002d80 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00002d88 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00002d90 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00002d98 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00002da0 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00002da8 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00002db0 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00002db8 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00002dc0 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00002dc8 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00002dd0 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00002dd8 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00002de0 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00002de8 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00002df0 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00002df8 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00002e00 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00002e08 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00002e10 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00002e18 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00002e20 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00002e28 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00002e30 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00002e38 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00002e40 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00002e48 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00002e50 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00002e58 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00002e60 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00002e68 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00002e70 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00002e78 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00002e80 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00002e88 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00002e90 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00002e98 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00002ea0 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00002ea8 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00002eb0 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00002eb8 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00002ec0 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00002ec8 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00002ed0 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00002ed8 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00002ee0 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00002ee8 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00002ef0 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00002ef8 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00002f00 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00002f08 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00002f10 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00002f18 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00002f20 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00002f28 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00002f30 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00002f38 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00002f40 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00002f48 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00002f50 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00002f58 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00002f60 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00002f68 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00002f70 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00002f78 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00002f80 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00002f88 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00002f90 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00002f98 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00002fa0 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00002fa8 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00002fb0 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00002fb8 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00002fc0 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00002fc8 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00002fd0 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00002fd8 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00002fe0 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00002fe8 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00002ff0 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00002ff8 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00003000 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00003008 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00003010 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00003018 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00003020 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00003028 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00003030 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00003038 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00003040 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00003048 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00003050 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00003058 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00003060 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00003068 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00003070 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00003078 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00003080 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00003088 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00003090 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00003098 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x000030a0 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x000030a8 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x000030b0 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x000030b8 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x000030c0 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x000030c8 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x000030d0 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x000030d8 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x000030e0 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x000030e8 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x000030f0 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x000030f8 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00003100 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00003108 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00003110 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00003118 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00003120 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00003128 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00003130 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00003138 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00003140 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00003148 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00003150 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00003158 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00003160 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00003168 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00003170 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00003178 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00003180 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00003188 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00003190 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00003198 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x000031a0 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x000031a8 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x000031b0 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x000031b8 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x000031c0 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x000031c8 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x000031d0 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x000031d8 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x000031e0 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x000031e8 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x000031f0 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x000031f8 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00003200 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00003208 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00003210 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00003218 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00003220 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00003228 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00003230 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00003238 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00003240 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00003248 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00003250 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00003258 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00003260 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00003268 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00003270 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00003278 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00003280 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00003288 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00003290 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00003298 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x000032a0 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x000032a8 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x000032b0 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x000032b8 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x000032c0 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x000032c8 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x000032d0 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x000032d8 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x000032e0 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x000032e8 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x000032f0 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x000032f8 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00003300 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00003308 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00003310 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00003318 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00003320 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00003328 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00003330 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00003338 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00003340 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00003348 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00003350 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00003358 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00003360 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00003368 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00003370 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00003378 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00003380 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00003388 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00003390 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00003398 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x000033a0 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x000033a8 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x000033b0 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x000033b8 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x000033c0 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x000033c8 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x000033d0 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x000033d8 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x000033e0 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x000033e8 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x000033f0 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x000033f8 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x00003400 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x00003408 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x00003410 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x00003418 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x00003420 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x00003428 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x00003430 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x00003438 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00003440 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00003448 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00003450 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00003458 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00003460 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00003468 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00003470 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00003478 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00003480 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00003488 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00003490 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00003498 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x000034a0 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x000034a8 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x000034b0 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x000034b8 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x000034c0 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x000034c8 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x000034d0 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x000034d8 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x000034e0 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x000034e8 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x000034f0 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x000034f8 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x00003500 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x00003508 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x00003510 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x00003518 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x00003520 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x00003528 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x00003530 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x00003538 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00003540 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00003548 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00003550 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00003558 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00003560 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00003568 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00003570 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00003578 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00003580 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00003588 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00003590 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00003598 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x000035a0 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x000035a8 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x000035b0 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x000035b8 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x000035c0 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x000035c8 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x000035d0 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x000035d8 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x000035e0 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x000035e8 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x000035f0 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x000035f8 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x00003600 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x00003608 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x00003610 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x00003618 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x00003620 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x00003628 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x00003630 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x00003638 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00003640 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00003648 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00003650 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00003658 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00003660 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00003668 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00003670 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00003678 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00003680 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00003688 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00003690 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00003698 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x000036a0 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x000036a8 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x000036b0 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x000036b8 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x000036c0 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x000036c8 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x000036d0 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x000036d8 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x000036e0 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x000036e8 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x000036f0 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x000036f8 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00003700 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00003708 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x00003710 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x00003718 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x00003720 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x00003728 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x00003730 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x00003738 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00003740 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00003748 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00003750 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00003758 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00003760 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00003768 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00003770 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00003778 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00003780 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00003788 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x00003790 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x00003798 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x000037a0 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x000037a8 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x000037b0 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x000037b8 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x000037c0 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x000037c8 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x000037d0 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x000037d8 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x000037e0 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x000037e8 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x000037f0 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x000037f8 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x00003800 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x00003808 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x00003810 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x00003818 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x00003820 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x00003828 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x00003830 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x00003838 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00003840 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00003848 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00003850 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00003858 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00003860 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00003868 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00003870 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00003878 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00003880 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00003888 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x00003890 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x00003898 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x000038a0 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x000038a8 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x000038b0 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x000038b8 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x000038c0 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x000038c8 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x000038d0 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x000038d8 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x000038e0 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x000038e8 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x000038f0 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x000038f8 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x00003900 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x00003908 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x00003910 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x00003918 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x00003920 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x00003928 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x00003930 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x00003938 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00003940 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00003948 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00003950 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00003958 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00003960 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00003968 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00003970 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00003978 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00003980 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00003988 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x00003990 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x00003998 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x000039a0 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x000039a8 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x000039b0 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x000039b8 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x000039c0 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x000039c8 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x000039d0 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x000039d8 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x000039e0 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x000039e8 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x000039f0 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x000039f8 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x00003a00 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x00003a08 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x00003a10 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x00003a18 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x00003a20 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x00003a28 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x00003a30 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x00003a38 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00003a40 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00003a48 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00003a50 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00003a58 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00003a60 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00003a68 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00003a70 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00003a78 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00003a80 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00003a88 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x00003a90 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00003a98 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x00003aa0 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00003aa8 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x00003ab0 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00003ab8 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x00003ac0 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00003ac8 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x00003ad0 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00003ad8 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x00003ae0 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00003ae8 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00003af0 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00003af8 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00003b00 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00003b08 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00003b10 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00003b18 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00003b20 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00003b28 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00003b30 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00003b38 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00003b40 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00003b48 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00003b50 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00003b58 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00003b60 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00003b68 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00003b70 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00003b78 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00003b80 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00003b88 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x00003b90 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00003b98 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x00003ba0 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00003ba8 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x00003bb0 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00003bb8 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x00003bc0 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00003bc8 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x00003bd0 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00003bd8 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x00003be0 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00003be8 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00003bf0 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00003bf8 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00003c00 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00003c08 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00003c10 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00003c18 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00003c20 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00003c28 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00003c30 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00003c38 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00003c40 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00003c48 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00003c50 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00003c58 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00003c60 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00003c68 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00003c70 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003c80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00003c88 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003c90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00003c98 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ca0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00003ca8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003cb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00003cb8 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003cc0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00003cc8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003cd0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00003cd8 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ce0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00003ce8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003cf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00003cf8 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00003d08 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00003d18 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00003d28 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00003d38 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00003d48 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00003d58 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d60 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00003d68 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d70 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00003d78 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d80 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00003d88 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d90 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00003d98 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003da0 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00003da8 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003db0 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00003db8 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003dc0 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00003dc8 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003dd0 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00003dd8 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003de0 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00003de8 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003df0 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00003df8 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003e00 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00003e08 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003e10 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00003e18 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003e20 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00003e28 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003e30 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00003e38 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00003e40 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00003e48 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00003e50 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00003e58 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00003e60 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00003e68 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00003e70 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00003e78 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00003e80 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00003e88 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00003e90 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00003e98 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00003ea0 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00003ea8 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00003eb0 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00003eb8 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x00003ec0 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00003ec8 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x00003ed0 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00003ed8 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x00003ee0 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00003ee8 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00003ef0 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00003ef8 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00003f00 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00003f08 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00003f10 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00003f18 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00003f20 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00003f28 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00003f30 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00003f38 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00003f40 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00003f48 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00003f50 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00003f58 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00003f60 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00003f68 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00003f70 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00003f78 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00003f80 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00003f88 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00003f90 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00003f98 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00003fa0 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00003fa8 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00003fb0 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00003fb8 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x00003fc0 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x00003fc8 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x00003fd0 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x00003fd8 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x00003fe0 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x00003fe8 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00003ff0 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00003ff8 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00004000 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00004008 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00004010 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00004018 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00004020 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00004028 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00004030 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00004038 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00004040 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00004048 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00004050 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00004058 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00004060 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00004068 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00004070 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00004078 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00004080 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00004088 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00004090 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00004098 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x000040a0 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x000040a8 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x000040b0 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x000040b8 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x000040c0 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x000040c8 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x000040d0 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x000040d8 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x000040e0 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x000040e8 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x000040f0 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x000040f8 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x00004100 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x00004108 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x00004110 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x00004118 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x00004120 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x00004128 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x00004130 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x00004138 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00004140 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00004148 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00004150 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00004158 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00004160 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00004168 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00004170 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00004178 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00004180 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00004188 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00004190 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00004198 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x000041a0 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x000041a8 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x000041b0 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x000041b8 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x000041c0 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x000041c8 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x000041d0 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x000041d8 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x000041e0 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x000041e8 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x000041f0 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x000041f8 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x00004200 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x00004208 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x00004210 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x00004218 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x00004220 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x00004228 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x00004230 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x00004238 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00004240 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00004248 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00004250 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00004258 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00004260 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00004268 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00004270 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00004278 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00004280 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00004288 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00004290 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00004298 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x000042a0 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x000042a8 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x000042b0 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x000042b8 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x000042c0 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x000042c8 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x000042d0 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x000042d8 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x000042e0 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x000042e8 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x000042f0 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x000042f8 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x00004300 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x00004308 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x00004310 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x00004318 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x00004320 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x00004328 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x00004330 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x00004338 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00004340 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00004348 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00004350 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00004358 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00004360 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00004368 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00004370 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00004378 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00004380 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00004388 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00004390 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00004398 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x000043a0 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x000043a8 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x000043b0 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x000043b8 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x000043c0 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x000043c8 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x000043d0 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x000043d8 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x000043e0 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x000043e8 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x000043f0 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x000043f8 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x00004400 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x00004408 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x00004410 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x00004418 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x00004420 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x00004428 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x00004430 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x00004438 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00004440 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00004448 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00004450 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00004458 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00004460 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00004468 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00004470 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00004478 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00004480 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00004488 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00004490 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00004498 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x000044a0 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x000044a8 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x000044b0 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x000044b8 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x000044c0 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x000044c8 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x000044d0 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x000044d8 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x000044e0 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x000044e8 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x000044f0 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x000044f8 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x00004500 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x00004508 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x00004510 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x00004518 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x00004520 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x00004528 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x00004530 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x00004538 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00004540 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00004548 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00004550 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00004558 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00004560 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00004568 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00004570 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00004578 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00004580 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00004588 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00004590 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00004598 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x000045a0 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x000045a8 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x000045b0 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x000045b8 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x000045c0 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x000045c8 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x000045d0 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x000045d8 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x000045e0 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x000045e8 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x000045f0 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x000045f8 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x00004600 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x00004608 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x00004610 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x00004618 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x00004620 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x00004628 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x00004630 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x00004638 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00004640 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00004648 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00004650 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00004658 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00004660 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00004668 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00004670 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00004678 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00004680 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00004688 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00004690 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00004698 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x000046a0 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x000046a8 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x000046b0 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x000046b8 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x000046c0 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x000046c8 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x000046d0 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x000046d8 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x000046e0 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x000046e8 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x000046f0 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x000046f8 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00004700 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00004708 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x00004710 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x00004718 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x00004720 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x00004728 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x00004730 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x00004738 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00004740 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00004748 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00004750 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00004758 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00004760 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00004768 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00004770 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00004778 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00004780 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00004788 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x00004790 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x00004798 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x000047a0 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x000047a8 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x000047b0 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x000047b8 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x000047c0 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x000047c8 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x000047d0 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x000047d8 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x000047e0 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x000047e8 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x000047f0 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x000047f8 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x00004800 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x00004808 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x00004810 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x00004818 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x00004820 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x00004828 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x00004830 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x00004838 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00004840 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00004848 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00004850 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00004858 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00004860 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00004868 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00004870 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00004878 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00004880 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00004888 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x00004890 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x00004898 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x000048a0 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x000048a8 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x000048b0 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x000048b8 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x000048c0 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x000048c8 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x000048d0 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x000048d8 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x000048e0 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x000048e8 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x000048f0 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x000048f8 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x00004900 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x00004908 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x00004910 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x00004918 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x00004920 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x00004928 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x00004930 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x00004938 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00004940 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00004948 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00004950 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00004958 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00004960 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00004968 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00004970 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00004978 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00004980 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00004988 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x00004990 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x00004998 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x000049a0 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x000049a8 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x000049b0 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x000049b8 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x000049c0 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x000049c8 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x000049d0 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x000049d8 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x000049e0 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x000049e8 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x000049f0 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x000049f8 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x00004a00 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x00004a08 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x00004a10 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x00004a18 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x00004a20 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x00004a28 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x00004a30 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x00004a38 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00004a40 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00004a48 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00004a50 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00004a58 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00004a60 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00004a68 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00004a70 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00004a78 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00004a80 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00004a88 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x00004a90 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x00004a98 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x00004aa0 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x00004aa8 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x00004ab0 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x00004ab8 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x00004ac0 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x00004ac8 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x00004ad0 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x00004ad8 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x00004ae0 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x00004ae8 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00004af0 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00004af8 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00004b00 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00004b08 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00004b10 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00004b18 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00004b20 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00004b28 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00004b30 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00004b38 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00004b40 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00004b48 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00004b50 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00004b58 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00004b60 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00004b68 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00004b70 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00004b78 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00004b80 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00004b88 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x00004b90 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x00004b98 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x00004ba0 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x00004ba8 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x00004bb0 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x00004bb8 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x00004bc0 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x00004bc8 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x00004bd0 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x00004bd8 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x00004be0 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x00004be8 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00004bf0 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00004bf8 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00004c00 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00004c08 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00004c10 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00004c18 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00004c20 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00004c28 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00004c30 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00004c38 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00004c40 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00004c48 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00004c50 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00004c58 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00004c60 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00004c68 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00004c70 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00004c78 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00004c80 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00004c88 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x00004c90 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x00004c98 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x00004ca0 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x00004ca8 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x00004cb0 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x00004cb8 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x00004cc0 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x00004cc8 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x00004cd0 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x00004cd8 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x00004ce0 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x00004ce8 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00004cf0 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00004cf8 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00004d00 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00004d08 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00004d10 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00004d18 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00004d20 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00004d28 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00004d30 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00004d38 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00004d40 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00004d48 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00004d50 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00004d58 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00004d60 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00004d68 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00004d70 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00004d78 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00004d80 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00004d88 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00004d90 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00004d98 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00004da0 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00004da8 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00004db0 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00004db8 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x00004dc0 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x00004dc8 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x00004dd0 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x00004dd8 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x00004de0 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x00004de8 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00004df0 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00004df8 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00004e00 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00004e08 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00004e10 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00004e18 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00004e20 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00004e28 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00004e30 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00004e38 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00004e40 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00004e48 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00004e50 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00004e58 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00004e60 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00004e68 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00004e70 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00004e78 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00004e80 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00004e88 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00004e90 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00004e98 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00004ea0 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00004ea8 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00004eb0 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00004eb8 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x00004ec0 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x00004ec8 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x00004ed0 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x00004ed8 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x00004ee0 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x00004ee8 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00004ef0 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00004ef8 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00004f00 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00004f08 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00004f10 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00004f18 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00004f20 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00004f28 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00004f30 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00004f38 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00004f40 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00004f48 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00004f50 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00004f58 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00004f60 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00004f68 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00004f70 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00004f78 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00004f80 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00004f88 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00004f90 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00004f98 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00004fa0 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00004fa8 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00004fb0 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00004fb8 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x00004fc0 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x00004fc8 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x00004fd0 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x00004fd8 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x00004fe0 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x00004fe8 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00004ff0 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00004ff8 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00005000 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00005008 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00005010 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00005018 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00005020 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00005028 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00005030 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00005038 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00005040 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00005048 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00005050 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00005058 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00005060 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00005068 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00005070 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00005078 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00005080 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00005088 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00005090 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00005098 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x000050a0 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x000050a8 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x000050b0 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x000050b8 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x000050c0 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x000050c8 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x000050d0 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x000050d8 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x000050e0 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x000050e8 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x000050f0 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x000050f8 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x00005100 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x00005108 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x00005110 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x00005118 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x00005120 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x00005128 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x00005130 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x00005138 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x00005140 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x00005148 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x00005150 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x00005158 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x00005160 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x00005168 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x00005170 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x00005178 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x00005180 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x00005188 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x00005190 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x00005198 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x000051a0 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x000051a8 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x000051b0 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x000051b8 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x000051c0 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x000051c8 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x000051d0 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x000051d8 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x000051e0 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x000051e8 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x000051f0 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x000051f8 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x00005200 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x00005208 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x00005210 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x00005218 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x00005220 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x00005228 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x00005230 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x00005238 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00005250 .p2align 4, 0x00 + //0x00005250 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x00005250 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x00005254 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x00005258 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000525c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x00005260 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x00005264 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x00005268 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000526c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x00005270 .long 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005274 .p2align 4, 0x00 + //0x00005280 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052e0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000052e8 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052ec QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000530c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000531c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000532c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000533c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000534c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00005350 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005354 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000053b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000053b8 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053bc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000540c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000541c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00005420 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005424 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005484 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00005488 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000548c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000549c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000054ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000054f0 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054f4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005554 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00005558 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000555c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000556c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000557c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000558c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000559c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000055bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000055c0 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055c4 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005624 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00005628 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000562c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000563c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000564c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000565c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000566c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000567c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000568c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005690 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005694 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000056f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000056f8 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056fc QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000570c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000571c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000572c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000573c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000574c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000575c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005760 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005764 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000057c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000057c8 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057cc QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000580c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000581c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000582c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005830 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005834 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005894 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005898 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000589c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000058fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005900 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00005904 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005964 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00005968 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000596c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000597c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000598c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000599c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000059cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000059d0 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000059d4 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005a34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00005a38 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x00005a3c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005a9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005aa0 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00005aa4 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005b04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005b08 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00005b0c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005b6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005b70 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00005b74 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ba4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005bd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005bd8 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00005bdc QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bec QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005c3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005c40 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00005c44 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c54 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005ca4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005ca8 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x00005cac QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cbc QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005d0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005d10 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00005d14 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d24 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005d74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005d78 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00005d7c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d8c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005ddc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005de0 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00005de4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005df4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005e44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005e48 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00005e4c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e5c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005eac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005eb0 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00005eb4 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ec4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ef4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005f14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005f18 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00005f1c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f2c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005f7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005f80 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00005f84 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f94 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005fe4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005fe8 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00005fec QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ffc QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000600c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000601c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000602c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000603c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000604c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00006050 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00006054 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006064 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000060b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000060b8 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x000060bc QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060cc QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000610c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000611c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00006120 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00006124 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006134 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006184 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00006188 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0000618c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000619c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000061ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000061f0 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x000061f4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006204 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006244 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006254 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00006258 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0000625c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000626c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000627c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000628c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000629c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000062bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000062c0 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x000062c4 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000062d4 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006314 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006324 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006328 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0000632c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0000633c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000634c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000635c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000636c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000637c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000638c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006390 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00006394 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000063a4 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000063f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000063f8 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x000063fc QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x0000640c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000641c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000642c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000643c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000644c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000645c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00006460 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00006464 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00006474 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000064c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000064c8 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x000064cc QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x000064dc QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000650c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000651c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000652c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00006530 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00006534 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00006544 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006554 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006584 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006594 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006598 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0000659c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x000065ac QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065bc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000065fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006600 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00006604 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00006614 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006624 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006654 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006664 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006668 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x0000666c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x0000667c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000668c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000669c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000066cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000066d0 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x000066d4 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x000066e4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066f4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006734 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006738 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0000673c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0000674c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000675c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000676c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000677c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000678c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000679c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000067a0 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x000067a4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x000067b4 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067c4 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006804 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006808 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0000680c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0000681c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000682c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000683c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000684c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000685c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000686c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00006870 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00006874 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00006884 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006894 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000068d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000068d8 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x000068dc QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x000068ec QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068fc QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000690c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000691c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000692c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000693c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00006940 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00006944 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00006954 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006964 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000069a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000069a8 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x000069ac QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x000069bc QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069cc QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006a0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00006a10 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00006a14 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00006a24 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a34 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006a74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00006a78 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00006a7c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00006a8c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a9c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006adc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00006ae0 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00006ae4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00006af4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b04 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006b44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned.go new file mode 100644 index 000000000..46da9fcae --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vsigned uintptr + +//go:nosplit +func vsigned(s *string, p *int, v *types.JsonState) { + F_vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_subr.go new file mode 100644 index 000000000..650d79459 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_subr.go @@ -0,0 +1,50 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vsigned = 0 +) + +const ( + _stack__vsigned = 16 +) + +const ( + _size__vsigned = 320 +) + +var ( + _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}, + } +) + +var _cfunc_vsigned = []loader.CFunc{ + {"_vsigned_entry", 0, _entry__vsigned, 0, nil}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_text_amd64.go new file mode 100644 index 000000000..be9bf1183 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vsigned_text_amd64.go @@ -0,0 +1,112 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_vsigned = []byte{ + // .p2align 4, 0x90 + // _vsigned + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x53, //0x00000004 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00000005 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00000008 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000000b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000000f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00000016 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000001a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000001f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00000022 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x00000026 cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00000029 jae LBB0_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000002f movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000033 movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00000039 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000003c jne LBB0_5 + 0x48, 0xff, 0xc3, //0x00000042 incq %rbx + 0x4c, 0x39, 0xd3, //0x00000045 cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00000048 jae LBB0_1 + 0x41, 0x8a, 0x0c, 0x18, //0x0000004e movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000052 movq $-1, %r9 + //0x00000059 LBB0_5 + 0x8d, 0x79, 0xd0, //0x00000059 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x0000005c cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00000060 jb LBB0_7 + 0x48, 0x89, 0x1e, //0x00000066 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00000069 movq $-2, (%rdx) + 0x5b, //0x00000070 popq %rbx + 0x5d, //0x00000071 popq %rbp + 0xc3, //0x00000072 retq + //0x00000073 LBB0_1 + 0x4c, 0x89, 0x16, //0x00000073 movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00000076 movq $-1, (%rdx) + 0x5b, //0x0000007d popq %rbx + 0x5d, //0x0000007e popq %rbp + 0xc3, //0x0000007f retq + //0x00000080 LBB0_7 + 0x80, 0xf9, 0x30, //0x00000080 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00000083 jne LBB0_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00000089 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x0000008d cmpq %r10, %rbx + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00000090 jae LBB0_17 + 0x41, 0x8a, 0x0c, 0x38, //0x00000096 movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x0000009a addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000009d cmpb $55, %cl + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000000a0 ja LBB0_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x000000a6 movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000aa movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x000000b4 btq %r11, %rcx + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000000b8 jae LBB0_17 + //0x000000be LBB0_8 + 0x31, 0xff, //0x000000be xorl %edi, %edi + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 LBB0_9 + 0x4c, 0x39, 0xd3, //0x000000c0 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x000000c3 jae LBB0_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x000000c9 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x000000ce leal $-48(%rcx), %eax + 0x3c, 0x09, //0x000000d1 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x000000d3 ja LBB0_18 + 0x48, 0x6b, 0xff, 0x0a, //0x000000d9 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x000000dd jo LBB0_13 + 0x48, 0xff, 0xc3, //0x000000e3 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x000000e6 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x000000ea imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x000000ee addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x000000f1 jno LBB0_9 + //0x000000f7 LBB0_13 + 0x48, 0xff, 0xcb, //0x000000f7 decq %rbx + 0x48, 0x89, 0x1e, //0x000000fa movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x000000fd movq $-5, (%rdx) + 0x5b, //0x00000104 popq %rbx + 0x5d, //0x00000105 popq %rbp + 0xc3, //0x00000106 retq + //0x00000107 LBB0_17 + 0x48, 0x89, 0x3e, //0x00000107 movq %rdi, (%rsi) + 0x5b, //0x0000010a popq %rbx + 0x5d, //0x0000010b popq %rbp + 0xc3, //0x0000010c retq + //0x0000010d LBB0_18 + 0x80, 0xf9, 0x65, //0x0000010d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000110 je LBB0_21 + 0x80, 0xf9, 0x45, //0x00000116 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00000119 je LBB0_21 + 0x80, 0xf9, 0x2e, //0x0000011f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00000122 jne LBB0_22 + //0x00000128 LBB0_21 + 0x48, 0x89, 0x1e, //0x00000128 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000012b movq $-6, (%rdx) + 0x5b, //0x00000132 popq %rbx + 0x5d, //0x00000133 popq %rbp + 0xc3, //0x00000134 retq + //0x00000135 LBB0_22 + 0x48, 0x89, 0x1e, //0x00000135 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x00000138 movq %rdi, $16(%rdx) + 0x5b, //0x0000013c popq %rbx + 0x5d, //0x0000013d popq %rbp + 0xc3, //0x0000013e retq + 0x00, //0x0000013f .p2align 2, 0x00 + //0x00000140 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000140 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring.go new file mode 100644 index 000000000..f2278ee5e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + +var S_vstring uintptr + +//go:nosplit +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + F_vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_subr.go new file mode 100644 index 000000000..a92835c8a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vstring = 96 +) + +const ( + _stack__vstring = 88 +) + +const ( + _size__vstring = 2056 +) + +var ( + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1899, 88}, + {1903, 48}, + {1904, 40}, + {1906, 32}, + {1908, 24}, + {1910, 16}, + {1912, 8}, + {1916, 0}, + {2055, 88}, + } +) + +var _cfunc_vstring = []loader.CFunc{ + {"_vstring_entry", 0, _entry__vstring, 0, nil}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_text_amd64.go new file mode 100644 index 000000000..383c0f015 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vstring_text_amd64.go @@ -0,0 +1,585 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_vstring = []byte{ + // .p2align 5, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000030 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000040 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000060 .p2align 4, 0x90 + //0x00000060 _vstring + 0x55, //0x00000060 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000061 movq %rsp, %rbp + 0x41, 0x57, //0x00000064 pushq %r15 + 0x41, 0x56, //0x00000066 pushq %r14 + 0x41, 0x55, //0x00000068 pushq %r13 + 0x41, 0x54, //0x0000006a pushq %r12 + 0x53, //0x0000006c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000006d subq $40, %rsp + 0x4c, 0x8b, 0x16, //0x00000071 movq (%rsi), %r10 + 0xf6, 0xc1, 0x20, //0x00000074 testb $32, %cl + 0x48, 0x89, 0x75, 0xc0, //0x00000077 movq %rsi, $-64(%rbp) + 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x0000007b jne LBB0_12 + 0x48, 0x8b, 0x4f, 0x08, //0x00000081 movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x00000085 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000088 subq %r10, %rax + 0x0f, 0x84, 0x33, 0x04, 0x00, 0x00, //0x0000008b je LBB0_42 + 0x48, 0x89, 0x4d, 0xd0, //0x00000091 movq %rcx, $-48(%rbp) + 0x4c, 0x8b, 0x0f, //0x00000095 movq (%rdi), %r9 + 0x4b, 0x8d, 0x0c, 0x11, //0x00000098 leaq (%r9,%r10), %rcx + 0x48, 0x83, 0xf8, 0x40, //0x0000009c cmpq $64, %rax + 0x0f, 0x82, 0x2a, 0x04, 0x00, 0x00, //0x000000a0 jb LBB0_43 + 0x49, 0x89, 0xd4, //0x000000a6 movq %rdx, %r12 + 0x41, 0x89, 0xc5, //0x000000a9 movl %eax, %r13d + 0x41, 0x83, 0xe5, 0x3f, //0x000000ac andl $63, %r13d + 0x48, 0x8d, 0x50, 0xc0, //0x000000b0 leaq $-64(%rax), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x000000b4 andq $-64, %rdx + 0x4c, 0x01, 0xd2, //0x000000b8 addq %r10, %rdx + 0x4d, 0x8d, 0x7c, 0x11, 0x40, //0x000000bb leaq $64(%r9,%rdx), %r15 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000000c0 movq $-1, %r11 + 0x45, 0x31, 0xc0, //0x000000c7 xorl %r8d, %r8d + 0xc5, 0xfe, 0x6f, 0x05, 0x2e, 0xff, 0xff, 0xff, //0x000000ca vmovdqu $-210(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0x46, 0xff, 0xff, 0xff, //0x000000d2 vmovdqu $-186(%rip), %ymm1 /* LCPI0_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000da .p2align 4, 0x90 + //0x000000e0 LBB0_4 + 0xc5, 0xfe, 0x6f, 0x11, //0x000000e0 vmovdqu (%rcx), %ymm2 + 0xc5, 0xfe, 0x6f, 0x59, 0x20, //0x000000e4 vmovdqu $32(%rcx), %ymm3 + 0xc5, 0xed, 0x74, 0xe0, //0x000000e9 vpcmpeqb %ymm0, %ymm2, %ymm4 + 0xc5, 0x7d, 0xd7, 0xf4, //0x000000ed vpmovmskb %ymm4, %r14d + 0xc5, 0xe5, 0x74, 0xe0, //0x000000f1 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xfd, 0xd7, 0xdc, //0x000000f5 vpmovmskb %ymm4, %ebx + 0xc5, 0xed, 0x74, 0xd1, //0x000000f9 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x000000fd vpmovmskb %ymm2, %edi + 0xc5, 0xe5, 0x74, 0xd1, //0x00000101 vpcmpeqb %ymm1, %ymm3, %ymm2 + 0xc5, 0xfd, 0xd7, 0xd2, //0x00000105 vpmovmskb %ymm2, %edx + 0x48, 0xc1, 0xe3, 0x20, //0x00000109 shlq $32, %rbx + 0x48, 0xc1, 0xe2, 0x20, //0x0000010d shlq $32, %rdx + 0x48, 0x09, 0xd7, //0x00000111 orq %rdx, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x00000114 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000118 jne LBB0_6 + 0x48, 0x85, 0xff, //0x0000011e testq %rdi, %rdi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000121 jne LBB0_9 + //0x00000127 LBB0_6 + 0x4c, 0x09, 0xf3, //0x00000127 orq %r14, %rbx + 0x48, 0x89, 0xfa, //0x0000012a movq %rdi, %rdx + 0x4c, 0x09, 0xc2, //0x0000012d orq %r8, %rdx + 0x0f, 0x85, 0x3c, 0x00, 0x00, 0x00, //0x00000130 jne LBB0_10 + //0x00000136 LBB0_7 + 0x48, 0x85, 0xdb, //0x00000136 testq %rbx, %rbx + 0x0f, 0x85, 0x85, 0x00, 0x00, 0x00, //0x00000139 jne LBB0_11 + //0x0000013f LBB0_8 + 0x48, 0x83, 0xc0, 0xc0, //0x0000013f addq $-64, %rax + 0x48, 0x83, 0xc1, 0x40, //0x00000143 addq $64, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x00000147 cmpq $63, %rax + 0x0f, 0x87, 0x8f, 0xff, 0xff, 0xff, //0x0000014b ja LBB0_4 + 0xe9, 0x7c, 0x02, 0x00, 0x00, //0x00000151 jmp LBB0_30 + //0x00000156 LBB0_9 + 0x48, 0x89, 0xca, //0x00000156 movq %rcx, %rdx + 0x4c, 0x29, 0xca, //0x00000159 subq %r9, %rdx + 0x4c, 0x0f, 0xbc, 0xdf, //0x0000015c bsfq %rdi, %r11 + 0x49, 0x01, 0xd3, //0x00000160 addq %rdx, %r11 + 0x4c, 0x09, 0xf3, //0x00000163 orq %r14, %rbx + 0x48, 0x89, 0xfa, //0x00000166 movq %rdi, %rdx + 0x4c, 0x09, 0xc2, //0x00000169 orq %r8, %rdx + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000016c je LBB0_7 + //0x00000172 LBB0_10 + 0x4c, 0x89, 0xc2, //0x00000172 movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00000175 notq %rdx + 0x48, 0x21, 0xfa, //0x00000178 andq %rdi, %rdx + 0x4c, 0x8d, 0x34, 0x12, //0x0000017b leaq (%rdx,%rdx), %r14 + 0x4d, 0x09, 0xc6, //0x0000017f orq %r8, %r14 + 0x4c, 0x89, 0xf6, //0x00000182 movq %r14, %rsi + 0x48, 0xf7, 0xd6, //0x00000185 notq %rsi + 0x48, 0x21, 0xfe, //0x00000188 andq %rdi, %rsi + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000018b movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfe, //0x00000195 andq %rdi, %rsi + 0x45, 0x31, 0xc0, //0x00000198 xorl %r8d, %r8d + 0x48, 0x01, 0xd6, //0x0000019b addq %rdx, %rsi + 0x41, 0x0f, 0x92, 0xc0, //0x0000019e setb %r8b + 0x48, 0x01, 0xf6, //0x000001a2 addq %rsi, %rsi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000001a5 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd6, //0x000001af xorq %rdx, %rsi + 0x4c, 0x21, 0xf6, //0x000001b2 andq %r14, %rsi + 0x48, 0xf7, 0xd6, //0x000001b5 notq %rsi + 0x48, 0x21, 0xf3, //0x000001b8 andq %rsi, %rbx + 0x48, 0x85, 0xdb, //0x000001bb testq %rbx, %rbx + 0x0f, 0x84, 0x7b, 0xff, 0xff, 0xff, //0x000001be je LBB0_8 + //0x000001c4 LBB0_11 + 0x48, 0x0f, 0xbc, 0xc3, //0x000001c4 bsfq %rbx, %rax + 0x4c, 0x29, 0xc9, //0x000001c8 subq %r9, %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x000001cb leaq $1(%rcx,%rax), %rdi + 0x4c, 0x89, 0xe2, //0x000001d0 movq %r12, %rdx + 0x48, 0x8b, 0x75, 0xc0, //0x000001d3 movq $-64(%rbp), %rsi + 0xe9, 0xc8, 0x01, 0x00, 0x00, //0x000001d7 jmp LBB0_28 + //0x000001dc LBB0_12 + 0x48, 0x8b, 0x4f, 0x08, //0x000001dc movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x000001e0 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x000001e3 subq %r10, %rax + 0x0f, 0x84, 0xd8, 0x02, 0x00, 0x00, //0x000001e6 je LBB0_42 + 0x48, 0x89, 0x4d, 0xd0, //0x000001ec movq %rcx, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc8, //0x000001f0 movq %rdx, $-56(%rbp) + 0x48, 0x8b, 0x17, //0x000001f4 movq (%rdi), %rdx + 0x4a, 0x8d, 0x0c, 0x12, //0x000001f7 leaq (%rdx,%r10), %rcx + 0x48, 0x83, 0xf8, 0x40, //0x000001fb cmpq $64, %rax + 0x0f, 0x82, 0xef, 0x02, 0x00, 0x00, //0x000001ff jb LBB0_45 + 0x41, 0x89, 0xc5, //0x00000205 movl %eax, %r13d + 0x41, 0x83, 0xe5, 0x3f, //0x00000208 andl $63, %r13d + 0x48, 0x8d, 0x78, 0xc0, //0x0000020c leaq $-64(%rax), %rdi + 0x48, 0x83, 0xe7, 0xc0, //0x00000210 andq $-64, %rdi + 0x4c, 0x01, 0xd7, //0x00000214 addq %r10, %rdi + 0x48, 0x8d, 0x74, 0x3a, 0x40, //0x00000217 leaq $64(%rdx,%rdi), %rsi + 0x48, 0x89, 0x75, 0xb0, //0x0000021c movq %rsi, $-80(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000220 movq $-1, %r11 + 0x31, 0xff, //0x00000227 xorl %edi, %edi + 0xc5, 0xfe, 0x6f, 0x05, 0xcf, 0xfd, 0xff, 0xff, //0x00000229 vmovdqu $-561(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x0d, 0xe7, 0xfd, 0xff, 0xff, //0x00000231 vmovdqu $-537(%rip), %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfe, 0x6f, 0x15, 0xff, 0xfd, 0xff, 0xff, //0x00000239 vmovdqu $-513(%rip), %ymm2 /* LCPI0_2+0(%rip) */ + 0xc5, 0xe5, 0x76, 0xdb, //0x00000241 vpcmpeqd %ymm3, %ymm3, %ymm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000245 .p2align 4, 0x90 + //0x00000250 LBB0_15 + 0xc5, 0xfe, 0x6f, 0x21, //0x00000250 vmovdqu (%rcx), %ymm4 + 0xc5, 0xfe, 0x6f, 0x69, 0x20, //0x00000254 vmovdqu $32(%rcx), %ymm5 + 0xc5, 0xdd, 0x74, 0xf0, //0x00000259 vpcmpeqb %ymm0, %ymm4, %ymm6 + 0xc5, 0x7d, 0xd7, 0xfe, //0x0000025d vpmovmskb %ymm6, %r15d + 0xc5, 0xd5, 0x74, 0xf0, //0x00000261 vpcmpeqb %ymm0, %ymm5, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x00000265 vpmovmskb %ymm6, %ebx + 0xc5, 0xdd, 0x74, 0xf1, //0x00000269 vpcmpeqb %ymm1, %ymm4, %ymm6 + 0xc5, 0x7d, 0xd7, 0xc6, //0x0000026d vpmovmskb %ymm6, %r8d + 0xc5, 0xd5, 0x74, 0xf1, //0x00000271 vpcmpeqb %ymm1, %ymm5, %ymm6 + 0xc5, 0x7d, 0xd7, 0xce, //0x00000275 vpmovmskb %ymm6, %r9d + 0xc5, 0xed, 0x64, 0xf4, //0x00000279 vpcmpgtb %ymm4, %ymm2, %ymm6 + 0xc5, 0xdd, 0x64, 0xe3, //0x0000027d vpcmpgtb %ymm3, %ymm4, %ymm4 + 0xc5, 0xdd, 0xdb, 0xe6, //0x00000281 vpand %ymm6, %ymm4, %ymm4 + 0xc5, 0x7d, 0xd7, 0xe4, //0x00000285 vpmovmskb %ymm4, %r12d + 0xc5, 0xed, 0x64, 0xe5, //0x00000289 vpcmpgtb %ymm5, %ymm2, %ymm4 + 0xc5, 0xd5, 0x64, 0xeb, //0x0000028d vpcmpgtb %ymm3, %ymm5, %ymm5 + 0xc5, 0xd5, 0xdb, 0xe4, //0x00000291 vpand %ymm4, %ymm5, %ymm4 + 0xc5, 0x7d, 0xd7, 0xf4, //0x00000295 vpmovmskb %ymm4, %r14d + 0x48, 0xc1, 0xe3, 0x20, //0x00000299 shlq $32, %rbx + 0x49, 0xc1, 0xe1, 0x20, //0x0000029d shlq $32, %r9 + 0x4d, 0x09, 0xc8, //0x000002a1 orq %r9, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x000002a4 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000002a8 jne LBB0_17 + 0x4d, 0x85, 0xc0, //0x000002ae testq %r8, %r8 + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000002b1 jne LBB0_22 + //0x000002b7 LBB0_17 + 0x49, 0xc1, 0xe6, 0x20, //0x000002b7 shlq $32, %r14 + 0x4c, 0x09, 0xfb, //0x000002bb orq %r15, %rbx + 0x4c, 0x89, 0xc6, //0x000002be movq %r8, %rsi + 0x48, 0x09, 0xfe, //0x000002c1 orq %rdi, %rsi + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000002c4 jne LBB0_21 + 0x4d, 0x09, 0xe6, //0x000002ca orq %r12, %r14 + 0x48, 0x85, 0xdb, //0x000002cd testq %rbx, %rbx + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x000002d0 jne LBB0_23 + //0x000002d6 LBB0_19 + 0x4d, 0x85, 0xf6, //0x000002d6 testq %r14, %r14 + 0x0f, 0x85, 0x57, 0x01, 0x00, 0x00, //0x000002d9 jne LBB0_35 + 0x48, 0x83, 0xc0, 0xc0, //0x000002df addq $-64, %rax + 0x48, 0x83, 0xc1, 0x40, //0x000002e3 addq $64, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x000002e7 cmpq $63, %rax + 0x0f, 0x87, 0x5f, 0xff, 0xff, 0xff, //0x000002eb ja LBB0_15 + 0xe9, 0x58, 0x01, 0x00, 0x00, //0x000002f1 jmp LBB0_36 + //0x000002f6 LBB0_21 + 0x49, 0x89, 0xff, //0x000002f6 movq %rdi, %r15 + 0x49, 0xf7, 0xd7, //0x000002f9 notq %r15 + 0x4d, 0x21, 0xc7, //0x000002fc andq %r8, %r15 + 0x4f, 0x8d, 0x0c, 0x3f, //0x000002ff leaq (%r15,%r15), %r9 + 0x49, 0x09, 0xf9, //0x00000303 orq %rdi, %r9 + 0x4c, 0x89, 0x4d, 0xb8, //0x00000306 movq %r9, $-72(%rbp) + 0x49, 0xf7, 0xd1, //0x0000030a notq %r9 + 0x4d, 0x21, 0xc1, //0x0000030d andq %r8, %r9 + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000310 movabsq $-6148914691236517206, %rdi + 0x49, 0x21, 0xf9, //0x0000031a andq %rdi, %r9 + 0x31, 0xff, //0x0000031d xorl %edi, %edi + 0x4d, 0x01, 0xf9, //0x0000031f addq %r15, %r9 + 0x40, 0x0f, 0x92, 0xc7, //0x00000322 setb %dil + 0x4d, 0x01, 0xc9, //0x00000326 addq %r9, %r9 + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000329 movabsq $6148914691236517205, %rsi + 0x49, 0x31, 0xf1, //0x00000333 xorq %rsi, %r9 + 0x4c, 0x23, 0x4d, 0xb8, //0x00000336 andq $-72(%rbp), %r9 + 0x49, 0xf7, 0xd1, //0x0000033a notq %r9 + 0x4c, 0x21, 0xcb, //0x0000033d andq %r9, %rbx + 0x4d, 0x09, 0xe6, //0x00000340 orq %r12, %r14 + 0x48, 0x85, 0xdb, //0x00000343 testq %rbx, %rbx + 0x0f, 0x84, 0x8a, 0xff, 0xff, 0xff, //0x00000346 je LBB0_19 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x0000034c jmp LBB0_23 + //0x00000351 LBB0_22 + 0x49, 0x89, 0xc9, //0x00000351 movq %rcx, %r9 + 0x49, 0x29, 0xd1, //0x00000354 subq %rdx, %r9 + 0x4d, 0x0f, 0xbc, 0xd8, //0x00000357 bsfq %r8, %r11 + 0x4d, 0x01, 0xcb, //0x0000035b addq %r9, %r11 + 0xe9, 0x54, 0xff, 0xff, 0xff, //0x0000035e jmp LBB0_17 + //0x00000363 LBB0_23 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000363 bsfq %rbx, %rax + 0x4d, 0x85, 0xf6, //0x00000367 testq %r14, %r14 + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000036a je LBB0_25 + 0x49, 0x0f, 0xbc, 0xfe, //0x00000370 bsfq %r14, %rdi + 0x48, 0x8b, 0x75, 0xc0, //0x00000374 movq $-64(%rbp), %rsi + 0x48, 0x39, 0xc7, //0x00000378 cmpq %rax, %rdi + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000037b jae LBB0_26 + 0xe9, 0xe9, 0x03, 0x00, 0x00, //0x00000381 jmp LBB0_82 + //0x00000386 LBB0_25 + 0xbf, 0x40, 0x00, 0x00, 0x00, //0x00000386 movl $64, %edi + 0x48, 0x8b, 0x75, 0xc0, //0x0000038b movq $-64(%rbp), %rsi + 0x48, 0x39, 0xc7, //0x0000038f cmpq %rax, %rdi + 0x0f, 0x82, 0xd7, 0x03, 0x00, 0x00, //0x00000392 jb LBB0_82 + //0x00000398 LBB0_26 + 0x48, 0x29, 0xd1, //0x00000398 subq %rdx, %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x0000039b leaq $1(%rcx,%rax), %rdi + //0x000003a0 LBB0_27 + 0x48, 0x8b, 0x55, 0xc8, //0x000003a0 movq $-56(%rbp), %rdx + //0x000003a4 LBB0_28 + 0x48, 0x85, 0xff, //0x000003a4 testq %rdi, %rdi + 0x0f, 0x88, 0x14, 0x04, 0x00, 0x00, //0x000003a7 js LBB0_86 + 0x48, 0x89, 0x3e, //0x000003ad movq %rdi, (%rsi) + 0x4c, 0x89, 0x52, 0x10, //0x000003b0 movq %r10, $16(%rdx) + 0x48, 0xc7, 0x02, 0x07, 0x00, 0x00, 0x00, //0x000003b4 movq $7, (%rdx) + 0x49, 0x39, 0xfb, //0x000003bb cmpq %rdi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000003be movq $-1, %rax + 0x49, 0x0f, 0x4c, 0xc3, //0x000003c5 cmovlq %r11, %rax + 0x48, 0x89, 0x42, 0x18, //0x000003c9 movq %rax, $24(%rdx) + 0xe9, 0xf9, 0x03, 0x00, 0x00, //0x000003cd jmp LBB0_88 + //0x000003d2 LBB0_30 + 0x4d, 0x89, 0xde, //0x000003d2 movq %r11, %r14 + 0x4c, 0x89, 0xe8, //0x000003d5 movq %r13, %rax + 0x4c, 0x89, 0xf9, //0x000003d8 movq %r15, %rcx + 0x4c, 0x89, 0xe2, //0x000003db movq %r12, %rdx + 0x48, 0x83, 0xf8, 0x20, //0x000003de cmpq $32, %rax + 0x0f, 0x82, 0x03, 0x01, 0x00, 0x00, //0x000003e2 jb LBB0_44 + //0x000003e8 LBB0_31 + 0xc5, 0xfe, 0x6f, 0x01, //0x000003e8 vmovdqu (%rcx), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x0c, 0xfc, 0xff, 0xff, //0x000003ec vpcmpeqb $-1012(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xd9, //0x000003f4 vpmovmskb %ymm1, %ebx + 0xc5, 0xfd, 0x74, 0x05, 0x20, 0xfc, 0xff, 0xff, //0x000003f8 vpcmpeqb $-992(%rip), %ymm0, %ymm0 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xf8, //0x00000400 vpmovmskb %ymm0, %edi + 0x85, 0xff, //0x00000404 testl %edi, %edi + 0x0f, 0x85, 0x07, 0x01, 0x00, 0x00, //0x00000406 jne LBB0_46 + 0x4d, 0x85, 0xc0, //0x0000040c testq %r8, %r8 + 0x48, 0x8b, 0x75, 0xc0, //0x0000040f movq $-64(%rbp), %rsi + 0x0f, 0x85, 0x1c, 0x01, 0x00, 0x00, //0x00000413 jne LBB0_48 + 0x45, 0x31, 0xc0, //0x00000419 xorl %r8d, %r8d + 0x48, 0x85, 0xdb, //0x0000041c testq %rbx, %rbx + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x0000041f je LBB0_50 + //0x00000425 LBB0_34 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000425 bsfq %rbx, %rax + 0x4c, 0x29, 0xc9, //0x00000429 subq %r9, %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x0000042c leaq $1(%rcx,%rax), %rdi + 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x00000431 jmp LBB0_28 + //0x00000436 LBB0_35 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00000436 movq $-2, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x0000043d movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x55, 0xc8, //0x00000441 movq $-56(%rbp), %rdx + 0x48, 0x8b, 0x75, 0xc0, //0x00000445 movq $-64(%rbp), %rsi + 0xe9, 0x77, 0x03, 0x00, 0x00, //0x00000449 jmp LBB0_87 + //0x0000044e LBB0_36 + 0x4d, 0x89, 0xde, //0x0000044e movq %r11, %r14 + 0x4c, 0x89, 0xe8, //0x00000451 movq %r13, %rax + 0x48, 0x8b, 0x4d, 0xb0, //0x00000454 movq $-80(%rbp), %rcx + 0x48, 0x8b, 0x75, 0xc0, //0x00000458 movq $-64(%rbp), %rsi + 0x48, 0x83, 0xf8, 0x20, //0x0000045c cmpq $32, %rax + 0x0f, 0x82, 0x4d, 0x02, 0x00, 0x00, //0x00000460 jb LBB0_70 + //0x00000466 LBB0_37 + 0xc5, 0xfe, 0x6f, 0x01, //0x00000466 vmovdqu (%rcx), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x8e, 0xfb, 0xff, 0xff, //0x0000046a vpcmpeqb $-1138(%rip), %ymm0, %ymm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xe1, //0x00000472 vpmovmskb %ymm1, %r12d + 0xc5, 0xfd, 0x74, 0x0d, 0xa2, 0xfb, 0xff, 0xff, //0x00000476 vpcmpeqb $-1118(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xc1, //0x0000047e vpmovmskb %ymm1, %r8d + 0xc5, 0xfe, 0x6f, 0x0d, 0xb6, 0xfb, 0xff, 0xff, //0x00000482 vmovdqu $-1098(%rip), %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x0000048a vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc5, 0xed, 0x76, 0xd2, //0x0000048e vpcmpeqd %ymm2, %ymm2, %ymm2 + 0xc5, 0xfd, 0x64, 0xc2, //0x00000492 vpcmpgtb %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xdb, 0xc1, //0x00000496 vpand %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xf8, //0x0000049a vpmovmskb %ymm0, %r15d + 0x45, 0x85, 0xc0, //0x0000049e testl %r8d, %r8d + 0x0f, 0x85, 0x71, 0x01, 0x00, 0x00, //0x000004a1 jne LBB0_60 + 0x48, 0x85, 0xff, //0x000004a7 testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0x01, 0x00, 0x00, //0x000004aa jne LBB0_62 + 0x31, 0xff, //0x000004b0 xorl %edi, %edi + 0x4d, 0x85, 0xe4, //0x000004b2 testq %r12, %r12 + 0x0f, 0x84, 0xc7, 0x01, 0x00, 0x00, //0x000004b5 je LBB0_64 + //0x000004bb LBB0_40 + 0x49, 0x0f, 0xbc, 0xdc, //0x000004bb bsfq %r12, %rbx + 0xe9, 0xc3, 0x01, 0x00, 0x00, //0x000004bf jmp LBB0_65 + //0x000004c4 LBB0_42 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000004c4 movq $-1, %rdi + 0xe9, 0xf5, 0x02, 0x00, 0x00, //0x000004cb jmp LBB0_87 + //0x000004d0 LBB0_43 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000004d0 movq $-1, %r11 + 0x45, 0x31, 0xc0, //0x000004d7 xorl %r8d, %r8d + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000004da movq $-1, %r14 + 0x48, 0x83, 0xf8, 0x20, //0x000004e1 cmpq $32, %rax + 0x0f, 0x83, 0xfd, 0xfe, 0xff, 0xff, //0x000004e5 jae LBB0_31 + //0x000004eb LBB0_44 + 0x48, 0x8b, 0x75, 0xc0, //0x000004eb movq $-64(%rbp), %rsi + 0xe9, 0x94, 0x00, 0x00, 0x00, //0x000004ef jmp LBB0_51 + //0x000004f4 LBB0_45 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000004f4 movq $-1, %r11 + 0x31, 0xff, //0x000004fb xorl %edi, %edi + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000004fd movq $-1, %r14 + 0x48, 0x83, 0xf8, 0x20, //0x00000504 cmpq $32, %rax + 0x0f, 0x83, 0x58, 0xff, 0xff, 0xff, //0x00000508 jae LBB0_37 + 0xe9, 0xa0, 0x01, 0x00, 0x00, //0x0000050e jmp LBB0_70 + //0x00000513 LBB0_46 + 0x49, 0x89, 0xd4, //0x00000513 movq %rdx, %r12 + 0x49, 0x83, 0xfe, 0xff, //0x00000516 cmpq $-1, %r14 + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000051a jne LBB0_49 + 0x48, 0x89, 0xca, //0x00000520 movq %rcx, %rdx + 0x4c, 0x29, 0xca, //0x00000523 subq %r9, %rdx + 0x4c, 0x0f, 0xbc, 0xdf, //0x00000526 bsfq %rdi, %r11 + 0x49, 0x01, 0xd3, //0x0000052a addq %rdx, %r11 + 0x4d, 0x89, 0xde, //0x0000052d movq %r11, %r14 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00000530 jmp LBB0_49 + //0x00000535 LBB0_48 + 0x49, 0x89, 0xd4, //0x00000535 movq %rdx, %r12 + //0x00000538 LBB0_49 + 0x44, 0x89, 0xc2, //0x00000538 movl %r8d, %edx + 0xf7, 0xd2, //0x0000053b notl %edx + 0x21, 0xfa, //0x0000053d andl %edi, %edx + 0x44, 0x8d, 0x3c, 0x12, //0x0000053f leal (%rdx,%rdx), %r15d + 0x45, 0x09, 0xc7, //0x00000543 orl %r8d, %r15d + 0x44, 0x89, 0xfe, //0x00000546 movl %r15d, %esi + 0xf7, 0xd6, //0x00000549 notl %esi + 0x21, 0xfe, //0x0000054b andl %edi, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000054d andl $-1431655766, %esi + 0x45, 0x31, 0xc0, //0x00000553 xorl %r8d, %r8d + 0x01, 0xd6, //0x00000556 addl %edx, %esi + 0x41, 0x0f, 0x92, 0xc0, //0x00000558 setb %r8b + 0x01, 0xf6, //0x0000055c addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000055e xorl $1431655765, %esi + 0x44, 0x21, 0xfe, //0x00000564 andl %r15d, %esi + 0xba, 0xff, 0xff, 0xff, 0xff, //0x00000567 movl $4294967295, %edx + 0x31, 0xf2, //0x0000056c xorl %esi, %edx + 0x21, 0xd3, //0x0000056e andl %edx, %ebx + 0x4c, 0x89, 0xe2, //0x00000570 movq %r12, %rdx + 0x48, 0x8b, 0x75, 0xc0, //0x00000573 movq $-64(%rbp), %rsi + 0x48, 0x85, 0xdb, //0x00000577 testq %rbx, %rbx + 0x0f, 0x85, 0xa5, 0xfe, 0xff, 0xff, //0x0000057a jne LBB0_34 + //0x00000580 LBB0_50 + 0x48, 0x83, 0xc1, 0x20, //0x00000580 addq $32, %rcx + 0x48, 0x83, 0xc0, 0xe0, //0x00000584 addq $-32, %rax + //0x00000588 LBB0_51 + 0x4d, 0x85, 0xc0, //0x00000588 testq %r8, %r8 + 0x0f, 0x85, 0xf2, 0x01, 0x00, 0x00, //0x0000058b jne LBB0_84 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000591 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x00000598 testq %rax, %rax + 0x0f, 0x84, 0x20, 0x02, 0x00, 0x00, //0x0000059b je LBB0_86 + //0x000005a1 LBB0_53 + 0x4d, 0x89, 0xc8, //0x000005a1 movq %r9, %r8 + 0x49, 0xf7, 0xd0, //0x000005a4 notq %r8 + //0x000005a7 LBB0_54 + 0x4c, 0x8d, 0x61, 0x01, //0x000005a7 leaq $1(%rcx), %r12 + 0x0f, 0xb6, 0x19, //0x000005ab movzbl (%rcx), %ebx + 0x80, 0xfb, 0x22, //0x000005ae cmpb $34, %bl + 0x0f, 0x84, 0x56, 0x00, 0x00, 0x00, //0x000005b1 je LBB0_59 + 0x4c, 0x8d, 0x78, 0xff, //0x000005b7 leaq $-1(%rax), %r15 + 0x80, 0xfb, 0x5c, //0x000005bb cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000005be je LBB0_57 + 0x4c, 0x89, 0xf8, //0x000005c4 movq %r15, %rax + 0x4c, 0x89, 0xe1, //0x000005c7 movq %r12, %rcx + 0x4d, 0x85, 0xff, //0x000005ca testq %r15, %r15 + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x000005cd jne LBB0_54 + 0xe9, 0xe9, 0x01, 0x00, 0x00, //0x000005d3 jmp LBB0_86 + //0x000005d8 LBB0_57 + 0x4d, 0x85, 0xff, //0x000005d8 testq %r15, %r15 + 0x0f, 0x84, 0x69, 0x02, 0x00, 0x00, //0x000005db je LBB0_93 + 0x4d, 0x01, 0xc4, //0x000005e1 addq %r8, %r12 + 0x49, 0x83, 0xfe, 0xff, //0x000005e4 cmpq $-1, %r14 + 0x4d, 0x0f, 0x44, 0xdc, //0x000005e8 cmoveq %r12, %r11 + 0x4d, 0x0f, 0x44, 0xf4, //0x000005ec cmoveq %r12, %r14 + 0x48, 0x83, 0xc1, 0x02, //0x000005f0 addq $2, %rcx + 0x48, 0x83, 0xc0, 0xfe, //0x000005f4 addq $-2, %rax + 0x49, 0x89, 0xc7, //0x000005f8 movq %rax, %r15 + 0x48, 0x8b, 0x75, 0xc0, //0x000005fb movq $-64(%rbp), %rsi + 0x4d, 0x85, 0xff, //0x000005ff testq %r15, %r15 + 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x00000602 jne LBB0_54 + 0xe9, 0xb4, 0x01, 0x00, 0x00, //0x00000608 jmp LBB0_86 + //0x0000060d LBB0_59 + 0x4d, 0x29, 0xcc, //0x0000060d subq %r9, %r12 + 0x4c, 0x89, 0xe7, //0x00000610 movq %r12, %rdi + 0xe9, 0x8c, 0xfd, 0xff, 0xff, //0x00000613 jmp LBB0_28 + //0x00000618 LBB0_60 + 0x49, 0x89, 0xf5, //0x00000618 movq %rsi, %r13 + 0x49, 0x83, 0xfe, 0xff, //0x0000061b cmpq $-1, %r14 + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000061f jne LBB0_63 + 0x48, 0x89, 0xce, //0x00000625 movq %rcx, %rsi + 0x48, 0x29, 0xd6, //0x00000628 subq %rdx, %rsi + 0x4d, 0x0f, 0xbc, 0xd8, //0x0000062b bsfq %r8, %r11 + 0x49, 0x01, 0xf3, //0x0000062f addq %rsi, %r11 + 0x4d, 0x89, 0xde, //0x00000632 movq %r11, %r14 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00000635 jmp LBB0_63 + //0x0000063a LBB0_62 + 0x49, 0x89, 0xf5, //0x0000063a movq %rsi, %r13 + //0x0000063d LBB0_63 + 0x89, 0xfe, //0x0000063d movl %edi, %esi + 0xf7, 0xd6, //0x0000063f notl %esi + 0x44, 0x21, 0xc6, //0x00000641 andl %r8d, %esi + 0x44, 0x8d, 0x0c, 0x36, //0x00000644 leal (%rsi,%rsi), %r9d + 0x41, 0x09, 0xf9, //0x00000648 orl %edi, %r9d + 0x44, 0x89, 0xcb, //0x0000064b movl %r9d, %ebx + 0xf7, 0xd3, //0x0000064e notl %ebx + 0x44, 0x21, 0xc3, //0x00000650 andl %r8d, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000653 andl $-1431655766, %ebx + 0x31, 0xff, //0x00000659 xorl %edi, %edi + 0x01, 0xf3, //0x0000065b addl %esi, %ebx + 0x40, 0x0f, 0x92, 0xc7, //0x0000065d setb %dil + 0x01, 0xdb, //0x00000661 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00000663 xorl $1431655765, %ebx + 0x44, 0x21, 0xcb, //0x00000669 andl %r9d, %ebx + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x0000066c movl $4294967295, %esi + 0x31, 0xde, //0x00000671 xorl %ebx, %esi + 0x41, 0x21, 0xf4, //0x00000673 andl %esi, %r12d + 0x4c, 0x89, 0xee, //0x00000676 movq %r13, %rsi + 0x4d, 0x85, 0xe4, //0x00000679 testq %r12, %r12 + 0x0f, 0x85, 0x39, 0xfe, 0xff, 0xff, //0x0000067c jne LBB0_40 + //0x00000682 LBB0_64 + 0xbb, 0x40, 0x00, 0x00, 0x00, //0x00000682 movl $64, %ebx + //0x00000687 LBB0_65 + 0x4d, 0x85, 0xe4, //0x00000687 testq %r12, %r12 + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000068a je LBB0_68 + 0x45, 0x85, 0xff, //0x00000690 testl %r15d, %r15d + 0x0f, 0x84, 0xad, 0x00, 0x00, 0x00, //0x00000693 je LBB0_78 + 0x49, 0x0f, 0xbc, 0xc7, //0x00000699 bsfq %r15, %rax + 0xe9, 0xa9, 0x00, 0x00, 0x00, //0x0000069d jmp LBB0_79 + //0x000006a2 LBB0_68 + 0x45, 0x85, 0xff, //0x000006a2 testl %r15d, %r15d + 0x0f, 0x85, 0xc4, 0x00, 0x00, 0x00, //0x000006a5 jne LBB0_82 + 0x48, 0x83, 0xc1, 0x20, //0x000006ab addq $32, %rcx + 0x48, 0x83, 0xc0, 0xe0, //0x000006af addq $-32, %rax + //0x000006b3 LBB0_70 + 0x48, 0x85, 0xff, //0x000006b3 testq %rdi, %rdi + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x000006b6 jne LBB0_89 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000006bc movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x000006c3 testq %rax, %rax + 0x0f, 0x84, 0xaa, 0x00, 0x00, 0x00, //0x000006c6 je LBB0_83 + //0x000006cc LBB0_72 + 0x0f, 0xb6, 0x19, //0x000006cc movzbl (%rcx), %ebx + 0x80, 0xfb, 0x22, //0x000006cf cmpb $34, %bl + 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x000006d2 je LBB0_81 + 0x80, 0xfb, 0x5c, //0x000006d8 cmpb $92, %bl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000006db je LBB0_76 + 0x80, 0xfb, 0x20, //0x000006e1 cmpb $32, %bl + 0x0f, 0x82, 0x85, 0x00, 0x00, 0x00, //0x000006e4 jb LBB0_82 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000006ea movq $-1, %r8 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000006f1 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x000006f6 addq %rbx, %rcx + 0x4c, 0x01, 0xc0, //0x000006f9 addq %r8, %rax + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x000006fc jne LBB0_72 + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x00000702 jmp LBB0_83 + //0x00000707 LBB0_76 + 0x49, 0x89, 0xf1, //0x00000707 movq %rsi, %r9 + 0x48, 0x83, 0xf8, 0x01, //0x0000070a cmpq $1, %rax + 0x0f, 0x84, 0x43, 0x01, 0x00, 0x00, //0x0000070e je LBB0_94 + 0x48, 0x89, 0xce, //0x00000714 movq %rcx, %rsi + 0x48, 0x29, 0xd6, //0x00000717 subq %rdx, %rsi + 0x49, 0x83, 0xfe, 0xff, //0x0000071a cmpq $-1, %r14 + 0x4c, 0x0f, 0x44, 0xde, //0x0000071e cmoveq %rsi, %r11 + 0x4c, 0x0f, 0x44, 0xf6, //0x00000722 cmoveq %rsi, %r14 + 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000726 movq $-2, %r8 + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000072d movl $2, %ebx + 0x4c, 0x89, 0xce, //0x00000732 movq %r9, %rsi + 0x48, 0x01, 0xd9, //0x00000735 addq %rbx, %rcx + 0x4c, 0x01, 0xc0, //0x00000738 addq %r8, %rax + 0x0f, 0x85, 0x8b, 0xff, 0xff, 0xff, //0x0000073b jne LBB0_72 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00000741 jmp LBB0_83 + //0x00000746 LBB0_78 + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00000746 movl $64, %eax + //0x0000074b LBB0_79 + 0x48, 0x39, 0xd8, //0x0000074b cmpq %rbx, %rax + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000074e jb LBB0_82 + 0x48, 0x29, 0xd1, //0x00000754 subq %rdx, %rcx + 0x48, 0x8d, 0x7c, 0x19, 0x01, //0x00000757 leaq $1(%rcx,%rbx), %rdi + 0xe9, 0x3f, 0xfc, 0xff, 0xff, //0x0000075c jmp LBB0_27 + //0x00000761 LBB0_81 + 0x48, 0x29, 0xd1, //0x00000761 subq %rdx, %rcx + 0x48, 0xff, 0xc1, //0x00000764 incq %rcx + 0x48, 0x89, 0xcf, //0x00000767 movq %rcx, %rdi + 0xe9, 0x31, 0xfc, 0xff, 0xff, //0x0000076a jmp LBB0_27 + //0x0000076f LBB0_82 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000076f movq $-2, %rdi + //0x00000776 LBB0_83 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000776 movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x55, 0xc8, //0x0000077a movq $-56(%rbp), %rdx + 0xe9, 0x42, 0x00, 0x00, 0x00, //0x0000077e jmp LBB0_87 + //0x00000783 LBB0_84 + 0x48, 0x89, 0xd6, //0x00000783 movq %rdx, %rsi + 0x48, 0x85, 0xc0, //0x00000786 testq %rax, %rax + 0x0f, 0x84, 0x8d, 0x00, 0x00, 0x00, //0x00000789 je LBB0_91 + 0x4c, 0x89, 0xca, //0x0000078f movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x00000792 notq %rdx + 0x48, 0x01, 0xca, //0x00000795 addq %rcx, %rdx + 0x49, 0x83, 0xfe, 0xff, //0x00000798 cmpq $-1, %r14 + 0x4c, 0x0f, 0x44, 0xda, //0x0000079c cmoveq %rdx, %r11 + 0x4c, 0x0f, 0x44, 0xf2, //0x000007a0 cmoveq %rdx, %r14 + 0x48, 0xff, 0xc1, //0x000007a4 incq %rcx + 0x48, 0xff, 0xc8, //0x000007a7 decq %rax + 0x48, 0x89, 0xf2, //0x000007aa movq %rsi, %rdx + 0x48, 0x8b, 0x75, 0xc0, //0x000007ad movq $-64(%rbp), %rsi + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000007b1 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x000007b8 testq %rax, %rax + 0x0f, 0x85, 0xe0, 0xfd, 0xff, 0xff, //0x000007bb jne LBB0_53 + //0x000007c1 LBB0_86 + 0x4c, 0x8b, 0x55, 0xd0, //0x000007c1 movq $-48(%rbp), %r10 + //0x000007c5 LBB0_87 + 0x4c, 0x89, 0x16, //0x000007c5 movq %r10, (%rsi) + 0x48, 0x89, 0x3a, //0x000007c8 movq %rdi, (%rdx) + //0x000007cb LBB0_88 + 0x48, 0x83, 0xc4, 0x28, //0x000007cb addq $40, %rsp + 0x5b, //0x000007cf popq %rbx + 0x41, 0x5c, //0x000007d0 popq %r12 + 0x41, 0x5d, //0x000007d2 popq %r13 + 0x41, 0x5e, //0x000007d4 popq %r14 + 0x41, 0x5f, //0x000007d6 popq %r15 + 0x5d, //0x000007d8 popq %rbp + 0xc5, 0xf8, 0x77, //0x000007d9 vzeroupper + 0xc3, //0x000007dc retq + //0x000007dd LBB0_89 + 0x48, 0x89, 0xf3, //0x000007dd movq %rsi, %rbx + 0x48, 0x85, 0xc0, //0x000007e0 testq %rax, %rax + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000007e3 je LBB0_92 + 0x48, 0x89, 0xd6, //0x000007e9 movq %rdx, %rsi + 0x48, 0xf7, 0xd6, //0x000007ec notq %rsi + 0x48, 0x01, 0xce, //0x000007ef addq %rcx, %rsi + 0x49, 0x83, 0xfe, 0xff, //0x000007f2 cmpq $-1, %r14 + 0x4c, 0x0f, 0x44, 0xde, //0x000007f6 cmoveq %rsi, %r11 + 0x4c, 0x0f, 0x44, 0xf6, //0x000007fa cmoveq %rsi, %r14 + 0x48, 0xff, 0xc1, //0x000007fe incq %rcx + 0x48, 0xff, 0xc8, //0x00000801 decq %rax + 0x48, 0x89, 0xde, //0x00000804 movq %rbx, %rsi + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000807 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x0000080e testq %rax, %rax + 0x0f, 0x85, 0xb5, 0xfe, 0xff, 0xff, //0x00000811 jne LBB0_72 + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00000817 jmp LBB0_83 + //0x0000081c LBB0_91 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000081c movq $-1, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000823 movq $-48(%rbp), %r10 + 0x48, 0x89, 0xf2, //0x00000827 movq %rsi, %rdx + 0x48, 0x8b, 0x75, 0xc0, //0x0000082a movq $-64(%rbp), %rsi + 0xe9, 0x92, 0xff, 0xff, 0xff, //0x0000082e jmp LBB0_87 + //0x00000833 LBB0_92 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000833 movq $-1, %rdi + 0x4c, 0x8b, 0x55, 0xd0, //0x0000083a movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x55, 0xc8, //0x0000083e movq $-56(%rbp), %rdx + 0x48, 0x89, 0xde, //0x00000842 movq %rbx, %rsi + 0xe9, 0x7b, 0xff, 0xff, 0xff, //0x00000845 jmp LBB0_87 + //0x0000084a LBB0_93 + 0x4c, 0x8b, 0x55, 0xd0, //0x0000084a movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xc0, //0x0000084e movq $-64(%rbp), %rsi + 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x00000852 jmp LBB0_87 + //0x00000857 LBB0_94 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000857 movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x55, 0xc8, //0x0000085b movq $-56(%rbp), %rdx + 0x4c, 0x89, 0xce, //0x0000085f movq %r9, %rsi + 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00000862 jmp LBB0_87 + 0x00, //0x00000867 .p2align 2, 0x00 + //0x00000868 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000868 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned.go new file mode 100644 index 000000000..612503987 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vunsigned uintptr + +//go:nosplit +func vunsigned(s *string, p *int, v *types.JsonState) { + F_vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_subr.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_subr.go new file mode 100644 index 000000000..7c870d97b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_subr.go @@ -0,0 +1,43 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vunsigned = 0 +) + +const ( + _stack__vunsigned = 8 +) + +const ( + _size__vunsigned = 324 +) + +var ( + _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 _cfunc_vunsigned = []loader.CFunc{ + {"_vunsigned_entry", 0, _entry__vunsigned, 0, nil}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_text_amd64.go new file mode 100644 index 000000000..abf7d2e0e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/vunsigned_text_amd64.go @@ -0,0 +1,108 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package avx2 + +var _text_vunsigned = []byte{ + // .p2align 4, 0x90 + // _vunsigned + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x00000004 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x00000007 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x0000000a movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000000d movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00000011 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00000018 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000001c vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x00000021 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x00000024 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x00000028 cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x0000002b jae LBB0_1 + 0x41, 0x8a, 0x04, 0x09, //0x00000031 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x00000035 cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00000037 jne LBB0_4 + //0x0000003d LBB0_3 + 0x48, 0x89, 0x0e, //0x0000003d movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00000040 movq $-6, (%r8) + 0x5d, //0x00000047 popq %rbp + 0xc3, //0x00000048 retq + //0x00000049 LBB0_1 + 0x4c, 0x89, 0x1e, //0x00000049 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000004c movq $-1, (%r8) + 0x5d, //0x00000053 popq %rbp + 0xc3, //0x00000054 retq + //0x00000055 LBB0_4 + 0x8d, 0x50, 0xd0, //0x00000055 leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x00000058 cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x0000005b jb LBB0_6 + 0x48, 0x89, 0x0e, //0x00000061 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00000064 movq $-2, (%r8) + 0x5d, //0x0000006b popq %rbp + 0xc3, //0x0000006c retq + //0x0000006d LBB0_6 + 0x3c, 0x30, //0x0000006d cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000006f jne LBB0_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00000075 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x0000007a addb $-46, %al + 0x3c, 0x37, //0x0000007c cmpb $55, %al + 0x0f, 0x87, 0xb6, 0x00, 0x00, 0x00, //0x0000007e ja LBB0_16 + 0x0f, 0xb6, 0xc0, //0x00000084 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000087 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00000091 btq %rax, %rdx + 0x0f, 0x83, 0x9f, 0x00, 0x00, 0x00, //0x00000095 jae LBB0_16 + //0x0000009b LBB0_7 + 0x31, 0xc0, //0x0000009b xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x0000009d movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000a3 .p2align 4, 0x90 + //0x000000b0 LBB0_8 + 0x4c, 0x39, 0xd9, //0x000000b0 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x000000b3 jae LBB0_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x000000b9 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x000000be leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x000000c1 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x000000c4 ja LBB0_17 + 0x49, 0xf7, 0xe2, //0x000000ca mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x000000cd jo LBB0_13 + 0x48, 0xff, 0xc1, //0x000000d3 incq %rcx + 0x83, 0xc7, 0xd0, //0x000000d6 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x000000d9 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x000000dc movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x000000df sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000000e3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000000e6 adcq $0, %rdi + 0x89, 0xfa, //0x000000ea movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000000ec andl $1, %edx + 0x48, 0xf7, 0xda, //0x000000ef negq %rdx + 0x48, 0x31, 0xd7, //0x000000f2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000000f5 jne LBB0_13 + 0x48, 0x85, 0xd2, //0x000000fb testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000000fe jns LBB0_8 + //0x00000104 LBB0_13 + 0x48, 0xff, 0xc9, //0x00000104 decq %rcx + 0x48, 0x89, 0x0e, //0x00000107 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x0000010a movq $-5, (%r8) + 0x5d, //0x00000111 popq %rbp + 0xc3, //0x00000112 retq + //0x00000113 LBB0_17 + 0x40, 0x80, 0xff, 0x65, //0x00000113 cmpb $101, %dil + 0x0f, 0x84, 0x20, 0xff, 0xff, 0xff, //0x00000117 je LBB0_3 + 0x40, 0x80, 0xff, 0x45, //0x0000011d cmpb $69, %dil + 0x0f, 0x84, 0x16, 0xff, 0xff, 0xff, //0x00000121 je LBB0_3 + 0x40, 0x80, 0xff, 0x2e, //0x00000127 cmpb $46, %dil + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x0000012b je LBB0_3 + //0x00000131 LBB0_20 + 0x48, 0x89, 0x0e, //0x00000131 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x00000134 movq %rax, $16(%r8) + 0x5d, //0x00000138 popq %rbp + 0xc3, //0x00000139 retq + //0x0000013a LBB0_16 + 0x48, 0xff, 0xc1, //0x0000013a incq %rcx + 0x48, 0x89, 0x0e, //0x0000013d movq %rcx, (%rsi) + 0x5d, //0x00000140 popq %rbp + 0xc3, //0x00000141 retq + 0x00, 0x00, //0x00000142 .p2align 2, 0x00 + //0x00000144 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000144 .long 2 +} + 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 ab828efad..4904b8174 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go @@ -25,13 +25,9 @@ import ( `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 ( - MaxFrameSize uintptr = 400 - BufPaddingSize int = 64 -) +const MaxFrameSize uintptr = 400 var ( S_f64toa uintptr @@ -42,9 +38,8 @@ var ( ) var ( - S_quote uintptr - S_unquote uintptr - S_html_escape uintptr + S_quote uintptr + S_unquote uintptr ) var ( @@ -56,18 +51,12 @@ 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 -) - -var ( - S_validate_one uintptr - S_validate_utf8 uintptr - S_validate_utf8_fast 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 ( @@ -85,7 +74,7 @@ var ( __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 + __ValidateOne func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) int __I64toa func(out unsafe.Pointer, val int64) (ret int) @@ -136,8 +125,8 @@ func GetByPath(s *string, p *int, path *[]interface{}, m *types.StateMachine) in } //go:nosplit -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))) +func ValidateOne(s *string, p *int, m *types.StateMachine, flags uint64) int { + return __ValidateOne(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) } //go:nosplit @@ -170,51 +159,121 @@ func ValidateUTF8Fast(s *string) (ret int) { return __ValidateUTF8Fast(rt.NoEscape(unsafe.Pointer(s))) } -var stubs = []loader.GoC{ - {"_f64toa", &S_f64toa, &__F64toa}, - {"_f32toa", &S_f32toa, &__F32toa}, - {"_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 useSSE() { + sse.Use() + S_f64toa = sse.S_f64toa + __F64toa = sse.F_f64toa + S_f32toa = sse.S_f32toa + __F64toa = sse.F_f64toa + S_i64toa = sse.S_i64toa + __I64toa = sse.F_i64toa + S_u64toa = sse.S_u64toa + __U64toa = sse.F_u64toa + S_lspace = sse.S_lspace + S_quote = sse.S_quote + __Quote = sse.F_quote + S_unquote = sse.S_unquote + __Unquote = sse.F_unquote + S_value = sse.S_value + __Value = sse.F_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 + __SkipOne = sse.F_skip_one + __SkipOneFast = sse.F_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 + __GetByPath = sse.F_get_by_path + __HTMLEscape = sse.F_html_escape + __ValidateOne = sse.F_validate_one + __ValidateUTF8= sse.F_validate_utf8 + __ValidateUTF8Fast = sse.F_validate_utf8_fast } + func useAVX() { - loader.WrapGoC(avx.Text__native_entry__, avx.Funcs, stubs, "avx", "avx/native.c") + avx.Use() + S_f64toa = avx.S_f64toa + __F64toa = avx.F_f64toa + S_f32toa = avx.S_f32toa + __F64toa = avx.F_f64toa + S_i64toa = avx.S_i64toa + __I64toa = avx.F_i64toa + S_u64toa = avx.S_u64toa + __U64toa = avx.F_u64toa + S_lspace = avx.S_lspace + S_quote = avx.S_quote + __Quote = avx.F_quote + S_unquote = avx.S_unquote + __Unquote = avx.F_unquote + S_value = avx.S_value + __Value = avx.F_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 + __SkipOne = avx.F_skip_one + __SkipOneFast = avx.F_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 + __GetByPath = avx.F_get_by_path + __HTMLEscape = avx.F_html_escape + __ValidateOne = avx.F_validate_one + __ValidateUTF8= avx.F_validate_utf8 + __ValidateUTF8Fast = avx.F_validate_utf8_fast } func useAVX2() { - loader.WrapGoC(avx2.Text__native_entry__, avx2.Funcs, stubs, "avx2", "avx2/native.c") + avx2.Use() + S_f64toa = avx2.S_f64toa + __F64toa = avx2.F_f64toa + S_f32toa = avx2.S_f32toa + __F64toa = avx2.F_f64toa + S_i64toa = avx2.S_i64toa + __I64toa = avx2.F_i64toa + S_u64toa = avx2.S_u64toa + __U64toa = avx2.F_u64toa + S_lspace = avx2.S_lspace + S_quote = avx2.S_quote + __Quote = avx2.F_quote + S_unquote = avx2.S_unquote + __Unquote = avx2.F_unquote + S_value = avx2.S_value + __Value = avx2.F_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 + __SkipOne = avx2.F_skip_one + __SkipOneFast = avx2.F_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 + __GetByPath = avx2.F_get_by_path + __HTMLEscape = avx2.F_html_escape + __ValidateOne = avx2.F_validate_one + __ValidateUTF8= avx2.F_validate_utf8 + __ValidateUTF8Fast = avx2.F_validate_utf8_fast } -func useSSE() { - loader.WrapGoC(sse.Text__native_entry__, sse.Funcs, stubs, "sse", "sse/native.c") -} func init() { - if cpu.HasAVX2 { - useAVX2() - } else if cpu.HasAVX { - useAVX() - } else if cpu.HasSSE { - useSSE() - } else { - panic("Unsupported CPU, maybe it's too old to run Sonic.") - } + if cpu.HasAVX2 { + useAVX2() + } else if cpu.HasAVX { + useAVX() + } else if cpu.HasSSE { + useSSE() + } else { + panic("Unsupported CPU, maybe it's too old to run Sonic.") + } } diff --git a/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go b/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go index 26df0074f..1a3407c39 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/dispatch_arm64.go @@ -96,7 +96,7 @@ func GetByPath(s *string, p *int, path *[]interface{}, m *types.StateMachine) in //go:nosplit //go:noescape //go:linkname ValidateOne github.com/bytedance/sonic/internal/native/neon.__validate_one -func ValidateOne(s *string, p *int, m *types.StateMachine) int +func ValidateOne(s *string, p *int, m *types.StateMachine, flags uint64) int //go:nosplit //go:noescape diff --git a/vendor/github.com/bytedance/sonic/internal/native/f32toa.tmpl b/vendor/github.com/bytedance/sonic/internal/native/f32toa.tmpl new file mode 100644 index 000000000..7016dae4a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/f32toa.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f32toa func(out *byte, val float32) (ret int) + +var S_f32toa uintptr + +//go:nosplit +func f32toa(out *byte, val float32) (ret int) { + return F_f32toa((*byte)(rt.NoEscape(unsafe.Pointer(out))), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/f64toa.tmpl b/vendor/github.com/bytedance/sonic/internal/native/f64toa.tmpl new file mode 100644 index 000000000..21fbdda41 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/f64toa.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f64toa func(out unsafe.Pointer, val float64) (ret int) + +var S_f64toa uintptr + +//go:nosplit +func f64toa(out *byte, val float64) (ret int) { + return F_f64toa((rt.NoEscape(unsafe.Pointer(out))), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/fastfloat_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/fastfloat_test.tmpl index c619d8afa..deda744c8 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/fastfloat_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/fastfloat_test.tmpl @@ -1,3 +1,8 @@ +// +build amd64 + + +// Code generated by Makefile, DO NOT EDIT. + // Code generated by Makefile, DO NOT EDIT. /* diff --git a/vendor/github.com/bytedance/sonic/internal/native/fastint_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/fastint_test.tmpl index c4acc7524..9fb3f4bb9 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/fastint_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/fastint_test.tmpl @@ -1,3 +1,8 @@ +// +build amd64 + + +// Code generated by Makefile, DO NOT EDIT. + // Code generated by Makefile, DO NOT EDIT. /* diff --git a/vendor/github.com/bytedance/sonic/internal/native/get_by_path.tmpl b/vendor/github.com/bytedance/sonic/internal/native/get_by_path.tmpl new file mode 100644 index 000000000..79fa6bffd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/get_by_path.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_get_by_path uintptr + +//go:nosplit +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return F_get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/html_escape.tmpl b/vendor/github.com/bytedance/sonic/internal/native/html_escape.tmpl new file mode 100644 index 000000000..7b1ddf5b1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/html_escape.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + +var S_html_escape uintptr + +//go:nosplit +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return F_html_escape(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(dn))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/i64toa.tmpl b/vendor/github.com/bytedance/sonic/internal/native/i64toa.tmpl new file mode 100644 index 000000000..77ec8bdb2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/i64toa.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_i64toa func(out unsafe.Pointer, val int64) (ret int) + +var S_i64toa uintptr + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return F_i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/lspace.tmpl b/vendor/github.com/bytedance/sonic/internal/native/lspace.tmpl new file mode 100644 index 000000000..90cd77653 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/lspace.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + +var S_lspace uintptr + +//go:nosplit +func lspace(sp *byte, nb int, off int) (ret int) { + return F_lspace(rt.NoEscape(unsafe.Pointer(sp)), nb, off) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl deleted file mode 100644 index 9ac9002e3..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/native_amd64.tmpl +++ /dev/null @@ -1,183 +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 {{PACKAGE}} - -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) -) - -//go:nosplit -func i64toa(out *byte, val int64) (ret int) { - return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func u64toa(out *byte, val uint64) (ret int) { - return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f64toa(out *byte, val float64) (ret int) { - return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f32toa(out *byte, val float32) (ret int) { - return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { - return __lspace(rt.NoEscape(sp), nb, off) -} - -//go:nosplit -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -func skip_number(s *string, p *int) (ret int) { - return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) -} - -//go:nosplit -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 -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 -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 -func validate_utf8_fast(s *string) (ret int) { - return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) -} - diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl deleted file mode 100644 index b4120c28e..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/native_arm64.tmpl +++ /dev/null @@ -1,246 +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 {{PACKAGE}} - -import ( - `unsafe` - - `github.com/bytedance/sonic/internal/native/types` -) - - -//go:nosplit -func i64toa(out *byte, val int64) (ret int) { - return __i64toa(out, val) -} - -//go:nosplit -func u64toa(out *byte, val uint64) (ret int) { - return __u64toa(out, val) -} - -//go:nosplit -func f64toa(out *byte, val float64) (ret int) { - return __f64toa(out, val) -} - -//go:nosplit -func f32toa(out *byte, val float32) (ret int) { - return __f32toa(out, val) -} - -//go:nosplit -func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { - return __lspace(sp, nb, off) -} - -//go:nosplit -func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { - return __quote(sp, nb, dp, dn, flags) -} - -//go:nosplit -func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { - return __html_escape(sp, nb, dp, dn) -} - -//go:nosplit -func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { - return __unquote(sp, nb, dp, ep, flags) -} - -//go:nosplit -func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { - return __value(s, n, p, v, flags) -} - -//go:nosplit -func vstring(s *string, p *int, v *types.JsonState, flags uint64) { - __vstring(s, p, v, flags) -} - -//go:nosplit -func vnumber(s *string, p *int, v *types.JsonState) { - __vnumber(s, p, v) -} - -//go:nosplit -func vsigned(s *string, p *int, v *types.JsonState) { - __vsigned(s, p, v) -} - -//go:nosplit -func vunsigned(s *string, p *int, v *types.JsonState) { - __vunsigned(s, p, v) -} - -//go:nosplit -func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { - return __skip_one(s, p, m, flags) -} - -//go:nosplit -func skip_one_fast(s *string, p *int) (ret int) { - return __skip_one_fast(s, p) -} - -//go:nosplit -func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { - return __skip_array(s, p, m, flags) -} - -//go:nosplit -func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { - return __skip_object(s, p, m, flags) -} - -//go:nosplit -func skip_number(s *string, p *int) (ret int) { - return __skip_number(s, p) -} - -//go:nosplit -func validate_one(s *string, p *int, m *types.StateMachine) (ret int) { - return __validate_one(s, p, m) -} - -//go:nosplit -func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { - return __get_by_path(s, p, path, m) -} - -//go:nosplit -func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { - return __validate_utf8(s, p, m) -} - -//go:nosplit -func validate_utf8_fast(s *string) (ret int) { - return __validate_utf8_fast(s) -} - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __i64toa(out *byte, val int64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __u64toa(out *byte, val uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f64toa(out *byte, val float64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __f32toa(out *byte, val float32) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __lspace(sp unsafe.Pointer, nb int, off int) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vstring(s *string, p *int, v *types.JsonState, flags uint64) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vnumber(s *string, p *int, v *types.JsonState) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vsigned(s *string, p *int, v *types.JsonState) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __vunsigned(s *string, p *int, v *types.JsonState) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_one_fast(s *string, p *int) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __skip_number(s *string, p *int) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_one(s *string, p *int, m *types.StateMachine) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) - -//go:nosplit -//go:noescape -//goland:noinspection GoUnusedParameter -func __validate_utf8_fast(s *string) (ret int) diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_export.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_export.tmpl new file mode 100644 index 000000000..a6930c839 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/native_export.tmpl @@ -0,0 +1,47 @@ +/* + * 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 {{PACKAGE}} + +import ( + `github.com/bytedance/sonic/loader` +) + + +func Use() { + loader.WrapGoC(_text_f64toa, _cfunc_f64toa, []loader.GoC{{"_f64toa", &S_f64toa, &F_f64toa}}, "{{PACKAGE}}", "{{PACKAGE}}/f64toa.c") + loader.WrapGoC(_text_f32toa, _cfunc_f32toa, []loader.GoC{{"_f32toa", &S_f32toa, &F_f32toa}}, "{{PACKAGE}}", "{{PACKAGE}}/f32toa.c") + loader.WrapGoC(_text_get_by_path, _cfunc_get_by_path, []loader.GoC{{"_get_by_path", &S_get_by_path, &F_get_by_path}}, "{{PACKAGE}}", "{{PACKAGE}}/get_by_path.c") + loader.WrapGoC(_text_html_escape, _cfunc_html_escape, []loader.GoC{{"_html_escape", &S_html_escape, &F_html_escape}}, "{{PACKAGE}}", "{{PACKAGE}}/html_escape.c") + loader.WrapGoC(_text_i64toa, _cfunc_i64toa, []loader.GoC{{"_i64toa", &S_i64toa, &F_i64toa}}, "{{PACKAGE}}", "{{PACKAGE}}/i64toa.c") + loader.WrapGoC(_text_lspace, _cfunc_lspace, []loader.GoC{{"_lspace", &S_lspace, &F_lspace}}, "{{PACKAGE}}", "{{PACKAGE}}/lspace.c") + loader.WrapGoC(_text_quote, _cfunc_quote, []loader.GoC{{"_quote", &S_quote, &F_quote}}, "{{PACKAGE}}", "{{PACKAGE}}/quote.c") + loader.WrapGoC(_text_skip_array, _cfunc_skip_array, []loader.GoC{{"_skip_array", &S_skip_array, &F_skip_array}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_array.c") + loader.WrapGoC(_text_skip_number, _cfunc_skip_number, []loader.GoC{{"_skip_number", &S_skip_number, &F_skip_number}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_number.c") + loader.WrapGoC(_text_skip_one, _cfunc_skip_one, []loader.GoC{{"_skip_one", &S_skip_one, &F_skip_one}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_one.c") + loader.WrapGoC(_text_skip_object, _cfunc_skip_object, []loader.GoC{{"_skip_object", &S_skip_object, &F_skip_object}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_object.c") + loader.WrapGoC(_text_skip_one_fast, _cfunc_skip_one_fast, []loader.GoC{{"_skip_one_fast", &S_skip_one_fast, &F_skip_one_fast}}, "{{PACKAGE}}", "{{PACKAGE}}/skip_one_fast.c") + loader.WrapGoC(_text_u64toa, _cfunc_u64toa, []loader.GoC{{"_u64toa", &S_u64toa, &F_u64toa}}, "{{PACKAGE}}", "{{PACKAGE}}/u64toa.c") + loader.WrapGoC(_text_unquote, _cfunc_unquote, []loader.GoC{{"_unquote", &S_unquote, &F_unquote}}, "{{PACKAGE}}", "{{PACKAGE}}/unquote.c") + loader.WrapGoC(_text_validate_one, _cfunc_validate_one, []loader.GoC{{"_validate_one", &S_validate_one, &F_validate_one}}, "{{PACKAGE}}", "{{PACKAGE}}/validate_one.c") + loader.WrapGoC(_text_validate_utf8, _cfunc_validate_utf8, []loader.GoC{{"_validate_utf8", &S_validate_utf8, &F_validate_utf8}}, "{{PACKAGE}}", "{{PACKAGE}}/validate_utf8.c") + loader.WrapGoC(_text_validate_utf8_fast, _cfunc_validate_utf8_fast, []loader.GoC{{"_validate_utf8_fast", &S_validate_utf8_fast, &F_validate_utf8_fast}}, "{{PACKAGE}}", "{{PACKAGE}}/validate_utf8_fast.c") + loader.WrapGoC(_text_vnumber, _cfunc_vnumber, []loader.GoC{{"_vnumber", &S_vnumber, &F_vnumber}}, "{{PACKAGE}}", "{{PACKAGE}}/vnumber.c") + loader.WrapGoC(_text_vsigned, _cfunc_vsigned, []loader.GoC{{"_vsigned", &S_vsigned, &F_vsigned}}, "{{PACKAGE}}", "{{PACKAGE}}/vsigned.c") + loader.WrapGoC(_text_vunsigned, _cfunc_vunsigned, []loader.GoC{{"_vunsigned", &S_vunsigned, &F_vunsigned}}, "{{PACKAGE}}", "{{PACKAGE}}/vunsigned.c") + loader.WrapGoC(_text_vstring, _cfunc_vstring, []loader.GoC{{"_vstring", &S_vstring, &F_vstring}}, "{{PACKAGE}}", "{{PACKAGE}}/vstring.c") + loader.WrapGoC(_text_value, _cfunc_value, []loader.GoC{{"_value", &S_value, &F_value}}, "{{PACKAGE}}", "{{PACKAGE}}/value.c") +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl deleted file mode 100644 index c7a10de94..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/native_export_arm64.tmpl +++ /dev/null @@ -1,47 +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 {{PACKAGE}} - -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/native_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_test.tmpl index 48e47cf61..f57337b86 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/native_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/native_test.tmpl @@ -1,3 +1,8 @@ +// +build amd64 + + +// Code generated by Makefile, DO NOT EDIT. + // Code generated by Makefile, DO NOT EDIT. /* diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s index 3c8402003..1412bc652 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f32toa_arm64.s @@ -916,7 +916,7 @@ _Digits: WORD $0x37393639 // .ascii 4, '96979899' WORD $0x39393839 // .ascii 4, '9899' WORD $0x00000000 // .p2align 3, 0x00 -_LB_d2997d73: // _pow10_ceil_sig_f32.g +_LB_feba5e89: // _pow10_ceil_sig_f32.g WORD $0x4b43fcf5; WORD $0x81ceb32c // .quad -9093133594791772939 WORD $0x5e14fc32; WORD $0xa2425ff7 // .quad -6754730975062328270 WORD $0x359a3b3f; WORD $0xcad2f7f5 // .quad -3831727700400522433 diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s index 93e9be0fd..2d9f174cb 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/f64toa_arm64.s @@ -1232,7 +1232,7 @@ _Digits: WORD $0x37393639 // .ascii 4, '96979899' WORD $0x39393839 // .ascii 4, '9899' // .p2align 3, 0x00 -_LB_5768c23e: // _pow10_ceil_sig.g +_LB_eee1aae2: // _pow10_ceil_sig.g WORD $0xbebcdc4f; WORD $0xff77b1fc // .quad -38366372719436721 WORD $0x13bb0f7b; WORD $0x25e8e89c // .quad 2731688931043774331 WORD $0xf73609b1; WORD $0x9faacf3d // .quad -6941508010590729807 diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s index 93c226cd7..558a7877d 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/get_by_path_arm64.s @@ -70,227 +70,228 @@ _get_by_path: WORD $0xa93ffbfd // stp fp, lr, [sp, #-8] WORD $0xd10023fd // sub fp, sp, #8 WORD $0xf9400448 // ldr x8, [x2, #8] - WORD $0xf9400033 // ldr x19, [x1] - WORD $0x10fffd29 // adr x9, lCPI0_0 $-92(%rip) - WORD $0x10fffd87 // adr x7, lCPI0_1 $-80(%rip) - WORD $0xb4013b48 // cbz x8, LBB0_489 $10088(%rip) - WORD $0xf940004b // ldr x11, [x2] - WORD $0x8b081171 // add x17, x11, x8, lsl #4 + WORD $0xb40144a8 // cbz x8, LBB0_492 $10388(%rip) + WORD $0xf9400049 // ldr x9, [x2] + WORD $0x8b08112a // add x10, x9, x8, lsl #4 WORD $0x910083e8 // add x8, sp, #32 - WORD $0x91008102 // add x2, x8, #32 - WORD $0x5280002e // mov w14, #1 - WORD $0xd284c00f // mov x15, #9728 - WORD $0xf2c0002f // movk x15, #1, lsl #32 - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x3201f3fe // mov w30, #-1431655766 + WORD $0x9100810b // add x11, x8, #32 + WORD $0xf9400036 // ldr x22, [x1] + WORD $0x5280002c // mov w12, #1 + WORD $0xd284c00d // mov x13, #9728 + WORD $0xf2c0002d // movk x13, #1, lsl #32 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 WORD $0x4f01e440 // movi.16b v0, #34 - WORD $0x3dc00121 // ldr q1, [x9, lCPI0_0@PAGEOFF] $0(%rip) - WORD $0x3dc000e2 // ldr q2, [x7, lCPI0_1@PAGEOFF] $0(%rip) +Lloh0: + WORD $0x10fffbc8 // adr x8, lCPI0_0 $-136(%rip) +Lloh1: + WORD $0x3dc00101 // ldr q1, [x8, lCPI0_0@PAGEOFF] $0(%rip) +Lloh2: + WORD $0x10fffc08 // adr x8, lCPI0_1 $-128(%rip) +Lloh3: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 WORD $0x4f01e584 // movi.16b v4, #44 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 WORD $0x4f06e7e5 // movi.16b v5, #223 WORD $0x4f02e7a6 // movi.16b v6, #93 - WORD $0x529ffff4 // mov w20, #65535 + WORD $0x529fffe8 // mov w8, #65535 WORD $0x4f02e767 // movi.16b v7, #91 WORD $0x6f00e410 // movi.2d v16, #0000000000000000 WORD $0x4f03e771 // movi.16b v17, #123 WORD $0x4f03e7b2 // movi.16b v18, #125 -Lloh0: - WORD $0x1001edaa // adr x10, __UnquoteTab $15796(%rip) -Lloh1: - WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) +Lloh4: + WORD $0x100262b0 // adr x16, __UnquoteTab $19540(%rip) +Lloh5: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) LBB0_2: - WORD $0xa9402016 // ldp x22, x8, [x0] - WORD $0xeb08027f // cmp x19, x8 + WORD $0xa9405013 // ldp x19, x20, [x0] + WORD $0xeb1402df // cmp x22, x20 WORD $0x54000162 // b.hs LBB0_7 $44(%rip) - WORD $0x38736ad0 // ldrb w16, [x22, x19] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38766a62 // ldrb w2, [x19, x22] + WORD $0x7100345f // cmp w2, #13 WORD $0x54000100 // b.eq LBB0_7 $32(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x540000c0 // b.eq LBB0_7 $24(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x54000062 // b.hs LBB0_7 $12(%rip) - WORD $0xaa1303f9 // mov x25, x19 + WORD $0xaa1603f7 // mov x23, x22 WORD $0x1400003a // b LBB0_25 $232(%rip) LBB0_7: - WORD $0x91000679 // add x25, x19, #1 - WORD $0xeb08033f // cmp x25, x8 + WORD $0x910006d7 // add x23, x22, #1 + WORD $0xeb1402ff // cmp x23, x20 WORD $0x54000122 // b.hs LBB0_11 $36(%rip) - WORD $0x38796ad0 // ldrb w16, [x22, x25] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100345f // cmp w2, #13 WORD $0x540000c0 // b.eq LBB0_11 $24(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x54000080 // b.eq LBB0_11 $16(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x540005e3 // b.lo LBB0_25 $188(%rip) LBB0_11: - WORD $0x91000a79 // add x25, x19, #2 - WORD $0xeb08033f // cmp x25, x8 + WORD $0x91000ad7 // add x23, x22, #2 + WORD $0xeb1402ff // cmp x23, x20 WORD $0x54000122 // b.hs LBB0_15 $36(%rip) - WORD $0x38796ad0 // ldrb w16, [x22, x25] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100345f // cmp w2, #13 WORD $0x540000c0 // b.eq LBB0_15 $24(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x54000080 // b.eq LBB0_15 $16(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x54000483 // b.lo LBB0_25 $144(%rip) LBB0_15: - WORD $0x91000e79 // add x25, x19, #3 - WORD $0xeb08033f // cmp x25, x8 + WORD $0x91000ed7 // add x23, x22, #3 + WORD $0xeb1402ff // cmp x23, x20 WORD $0x54000122 // b.hs LBB0_19 $36(%rip) - WORD $0x38796ad0 // ldrb w16, [x22, x25] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100345f // cmp w2, #13 WORD $0x540000c0 // b.eq LBB0_19 $24(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x54000080 // b.eq LBB0_19 $16(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x54000323 // b.lo LBB0_25 $100(%rip) LBB0_19: - WORD $0x91001279 // add x25, x19, #4 - WORD $0xeb08033f // cmp x25, x8 + WORD $0x910012d7 // add x23, x22, #4 + WORD $0xeb1402ff // cmp x23, x20 WORD $0x540001e2 // b.hs LBB0_23 $60(%rip) LBB0_20: - WORD $0x38796ad0 // ldrb w16, [x22, x25] - WORD $0x7100821f // cmp w16, #32 - WORD $0x9ad021d0 // lsl x16, x14, x16 - WORD $0x8a0f0210 // and x16, x16, x15 - WORD $0xfa409a04 // ccmp x16, #0, #4, ls + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100805f // cmp w2, #32 + WORD $0x9ac22182 // lsl x2, x12, x2 + WORD $0x8a0d0042 // and x2, x2, x13 + WORD $0xfa409844 // ccmp x2, #0, #4, ls WORD $0x540001c0 // b.eq LBB0_24 $56(%rip) - WORD $0x91000739 // add x25, x25, #1 - WORD $0xeb19011f // cmp x8, x25 + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xeb17029f // cmp x20, x23 WORD $0x54ffff01 // b.ne LBB0_20 $-32(%rip) LBB0_22: - WORD $0x52800008 // mov w8, #0 - WORD $0xaa1303f9 // mov x25, x19 - WORD $0xf9400170 // ldr x16, [x11] - WORD $0xb50001f0 // cbnz x16, LBB0_26 $60(%rip) - WORD $0x14000e9f // b LBB0_768 $14972(%rip) + WORD $0x52800014 // mov w20, #0 + WORD $0xaa1603f7 // mov x23, x22 + WORD $0xf9400122 // ldr x2, [x9] + WORD $0xb50001e2 // cbnz x2, LBB0_26 $60(%rip) + WORD $0x14000f5d // b LBB0_801 $15732(%rip) LBB0_23: - WORD $0x52800008 // mov w8, #0 - WORD $0xf9000039 // str x25, [x1] - WORD $0xf9400170 // ldr x16, [x11] - WORD $0xb5000150 // cbnz x16, LBB0_26 $40(%rip) - WORD $0x14000e9a // b LBB0_768 $14952(%rip) + WORD $0x52800014 // mov w20, #0 + WORD $0xf9000037 // str x23, [x1] + WORD $0xf9400122 // ldr x2, [x9] + WORD $0xb5000142 // cbnz x2, LBB0_26 $40(%rip) + WORD $0x14000f58 // b LBB0_801 $15712(%rip) LBB0_24: - WORD $0xeb08033f // cmp x25, x8 + WORD $0xeb1402ff // cmp x23, x20 WORD $0x54fffea2 // b.hs LBB0_22 $-44(%rip) LBB0_25: - WORD $0x91000730 // add x16, x25, #1 - WORD $0xf9000030 // str x16, [x1] - WORD $0x38796ac8 // ldrb w8, [x22, x25] - WORD $0xaa1003f9 // mov x25, x16 - WORD $0xf9400170 // ldr x16, [x11] - WORD $0xb401d250 // cbz x16, LBB0_768 $14920(%rip) + WORD $0x910006e2 // add x2, x23, #1 + WORD $0xf9000022 // str x2, [x1] + WORD $0x38776a74 // ldrb w20, [x19, x23] + WORD $0xaa0203f7 // mov x23, x2 + WORD $0xf9400122 // ldr x2, [x9] + WORD $0xb401ea02 // cbz x2, LBB0_801 $15680(%rip) LBB0_26: - WORD $0x39405e10 // ldrb w16, [x16, #23] - WORD $0x12001210 // and w16, w16, #0x1f - WORD $0x71000a1f // cmp w16, #2 - WORD $0x5400bae0 // b.eq LBB0_315 $5980(%rip) - WORD $0x7100621f // cmp w16, #24 - WORD $0x5401d181 // b.ne LBB0_768 $14896(%rip) - WORD $0x7101ed1f // cmp w8, #123 - WORD $0x5401d361 // b.ne LBB0_775 $14956(%rip) + WORD $0x39405c42 // ldrb w2, [x2, #23] + WORD $0x12001042 // and w2, w2, #0x1f + WORD $0x7100085f // cmp w2, #2 + WORD $0x5400bbc0 // b.eq LBB0_316 $6008(%rip) + WORD $0x7100605f // cmp w2, #24 + WORD $0x5401e941 // b.ne LBB0_801 $15656(%rip) + WORD $0x7101ee9f // cmp w20, #123 + WORD $0x5401f701 // b.ne LBB0_829 $16096(%rip) LBB0_29: - WORD $0xf9400405 // ldr x5, [x0, #8] - WORD $0xeb05033f // cmp x25, x5 + WORD $0xf9400414 // ldr x20, [x0, #8] + WORD $0xeb1402ff // cmp x23, x20 WORD $0x54000162 // b.hs LBB0_34 $44(%rip) - WORD $0x38796ac8 // ldrb w8, [x22, x25] - WORD $0x7100351f // cmp w8, #13 + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100345f // cmp w2, #13 WORD $0x54000100 // b.eq LBB0_34 $32(%rip) - WORD $0x7100811f // cmp w8, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x540000c0 // b.eq LBB0_34 $24(%rip) - WORD $0x51002d08 // sub w8, w8, #11 - WORD $0x3100091f // cmn w8, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x54000062 // b.hs LBB0_34 $12(%rip) - WORD $0xaa1903e8 // mov x8, x25 + WORD $0xaa1703f5 // mov x21, x23 WORD $0x14000031 // b LBB0_50 $196(%rip) LBB0_34: - WORD $0x91000728 // add x8, x25, #1 - WORD $0xeb05011f // cmp x8, x5 + WORD $0x910006f5 // add x21, x23, #1 + WORD $0xeb1402bf // cmp x21, x20 WORD $0x54000122 // b.hs LBB0_38 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 WORD $0x540000c0 // b.eq LBB0_38 $24(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x54000080 // b.eq LBB0_38 $16(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x540004c3 // b.lo LBB0_50 $152(%rip) LBB0_38: - WORD $0x91000b28 // add x8, x25, #2 - WORD $0xeb05011f // cmp x8, x5 + WORD $0x91000af5 // add x21, x23, #2 + WORD $0xeb1402bf // cmp x21, x20 WORD $0x54000122 // b.hs LBB0_42 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 WORD $0x540000c0 // b.eq LBB0_42 $24(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x54000080 // b.eq LBB0_42 $16(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x54000363 // b.lo LBB0_50 $108(%rip) LBB0_42: - WORD $0x91000f28 // add x8, x25, #3 - WORD $0xeb05011f // cmp x8, x5 + WORD $0x91000ef5 // add x21, x23, #3 + WORD $0xeb1402bf // cmp x21, x20 WORD $0x54000122 // b.hs LBB0_46 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 WORD $0x540000c0 // b.eq LBB0_46 $24(%rip) - WORD $0x7100821f // cmp w16, #32 + WORD $0x7100805f // cmp w2, #32 WORD $0x54000080 // b.eq LBB0_46 $16(%rip) - WORD $0x51002e10 // sub w16, w16, #11 - WORD $0x31000a1f // cmn w16, #2 + WORD $0x51002c42 // sub w2, w2, #11 + WORD $0x3100085f // cmn w2, #2 WORD $0x54000203 // b.lo LBB0_50 $64(%rip) LBB0_46: - WORD $0x91001328 // add x8, x25, #4 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x5401cbc2 // b.hs LBB0_769 $14712(%rip) + WORD $0x910012f5 // add x21, x23, #4 + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x5401e382 // b.hs LBB0_802 $15472(%rip) LBB0_47: - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100821f // cmp w16, #32 - WORD $0x9ad021d0 // lsl x16, x14, x16 - WORD $0x8a0f0210 // and x16, x16, x15 - WORD $0xfa409a04 // ccmp x16, #0, #4, ls + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100805f // cmp w2, #32 + WORD $0x9ac22182 // lsl x2, x12, x2 + WORD $0x8a0d0042 // and x2, x2, x13 + WORD $0xfa409844 // ccmp x2, #0, #4, ls WORD $0x540000a0 // b.eq LBB0_49 $20(%rip) - WORD $0x91000508 // add x8, x8, #1 - WORD $0xeb0800bf // cmp x5, x8 + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xeb15029f // cmp x20, x21 WORD $0x54ffff01 // b.ne LBB0_47 $-32(%rip) - WORD $0x14000e60 // b LBB0_775 $14720(%rip) + WORD $0x14000f7d // b LBB0_829 $15860(%rip) LBB0_49: - WORD $0xeb05011f // cmp x8, x5 - WORD $0x5401cbc2 // b.hs LBB0_775 $14712(%rip) + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x5401ef62 // b.hs LBB0_829 $15852(%rip) LBB0_50: - WORD $0x9100051b // add x27, x8, #1 - WORD $0xf900003b // str x27, [x1] - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x71008a1f // cmp w16, #34 - WORD $0x5401cae1 // b.ne LBB0_774 $14684(%rip) - WORD $0x3200cff5 // mov w21, #252645135 - WORD $0x5287272a // mov w10, #14649 - WORD $0x72a7272a // movk w10, #14649, lsl #16 - WORD $0xa900c7e3 // stp x3, x17, [sp, #8] - WORD $0x3202c7e3 // mov w3, #-1061109568 - WORD $0x5299fa18 // mov w24, #53200 - WORD $0x72b9f9f8 // movk w24, #53199, lsl #16 - WORD $0x3200f3e9 // mov w9, #1431655765 - WORD $0xf9000fe2 // str x2, [sp, #24] - WORD $0xf9400405 // ldr x5, [x0, #8] - WORD $0xeb1b00be // subs lr, x5, x27 - WORD $0x5401d560 // b.eq LBB0_804 $15020(%rip) - WORD $0xf9400570 // ldr x16, [x11, #8] - WORD $0xa9406a17 // ldp x23, x26, [x16] - WORD $0x8b1b02d3 // add x19, x22, x27 - WORD $0xf10103df // cmp lr, #64 - WORD $0x54001863 // b.lo LBB0_85 $780(%rip) - WORD $0xd2800019 // mov x25, #0 - WORD $0x9280001c // mov x28, #-1 + WORD $0x910006b9 // add x25, x21, #1 + WORD $0xf9000039 // str x25, [x1] + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100885f // cmp w2, #34 + WORD $0x5401ee81 // b.ne LBB0_828 $15824(%rip) + WORD $0xf940041c // ldr x28, [x0, #8] + WORD $0xeb19039b // subs x27, x28, x25 + WORD $0x54023e20 // b.eq LBB0_910 $18372(%rip) + WORD $0x3200f3e5 // mov w5, #1431655765 + WORD $0xf9400522 // ldr x2, [x9, #8] + WORD $0xa9406056 // ldp x22, x24, [x2] + WORD $0x8b190274 // add x20, x19, x25 + WORD $0xf101037f // cmp x27, #64 + WORD $0x54005883 // b.lo LBB0_203 $2832(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0x9280001a // mov x26, #-1 LBB0_54: - WORD $0x8b1b02d0 // add x16, x22, x27 - WORD $0xad405213 // ldp q19, q20, [x16] - WORD $0xad415a15 // ldp q21, q22, [x16, #32] + WORD $0x8b190262 // add x2, x19, x25 + WORD $0xad405053 // ldp q19, q20, [x2] + WORD $0xad415855 // ldp q21, q22, [x2, #32] WORD $0x6e208e77 // cmeq.16b v23, v19, v0 WORD $0x6e208e98 // cmeq.16b v24, v20, v0 WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 @@ -302,625 +303,347 @@ LBB0_54: WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602f0 // fmov w16, s23 + WORD $0x1e2602e2 // fmov w2, s23 WORD $0x4e211f17 // and.16b v23, v24, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x1e2602fe // fmov w30, s23 WORD $0x4e211f37 // and.16b v23, v25, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x1e2602e7 // fmov w7, s23 WORD $0x4e211f57 // and.16b v23, v26, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e2 // fmov w2, s23 + WORD $0x1e2602f1 // fmov w17, s23 WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260267 // fmov w7, s19 + WORD $0x1e260266 // fmov w6, s19 WORD $0x4e211e93 // and.16b v19, v20, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260266 // fmov w6, s19 + WORD $0x1e26026e // fmov w14, s19 WORD $0x4e211eb3 // and.16b v19, v21, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26026d // fmov w13, s19 + WORD $0x1e26026f // fmov w15, s19 WORD $0x4e211ed3 // and.16b v19, v22, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0xd3607e31 // lsl x17, x17, #32 - WORD $0xaa02c231 // orr x17, x17, x2, lsl #48 - WORD $0x53103c82 // lsl w2, w4, #16 - WORD $0xaa020231 // orr x17, x17, x2 - WORD $0xaa100224 // orr x4, x17, x16 - WORD $0xd3607dad // lsl x13, x13, #32 - WORD $0xaa0cc1ac // orr x12, x13, x12, lsl #48 - WORD $0x53103ccd // lsl w13, w6, #16 - WORD $0xaa0d018c // orr x12, x12, x13 - WORD $0xaa070190 // orr x16, x12, x7 - WORD $0xb5000110 // cbnz x16, LBB0_58 $32(%rip) - WORD $0xb5000199 // cbnz x25, LBB0_59 $48(%rip) - WORD $0xb50002c4 // cbnz x4, LBB0_60 $88(%rip) + WORD $0x1e260270 // fmov w16, s19 + WORD $0xd3607ce7 // lsl x7, x7, #32 + WORD $0xaa11c0f1 // orr x17, x7, x17, lsl #48 + WORD $0x53103fc7 // lsl w7, w30, #16 + WORD $0xaa070231 // orr x17, x17, x7 + WORD $0xaa02023e // orr lr, x17, x2 + WORD $0xd3607def // lsl x15, x15, #32 + WORD $0xaa10c1ef // orr x15, x15, x16, lsl #48 + WORD $0x53103dce // lsl w14, w14, #16 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xaa0601c2 // orr x2, x14, x6 + WORD $0xb5000102 // cbnz x2, LBB0_58 $32(%rip) + WORD $0xb5000197 // cbnz x23, LBB0_59 $48(%rip) + WORD $0xb50002de // cbnz lr, LBB0_60 $88(%rip) LBB0_57: - WORD $0xd10103de // sub lr, lr, #64 - WORD $0x9101037b // add x27, x27, #64 - WORD $0xf100ffdf // cmp lr, #63 + WORD $0xd101037b // sub x27, x27, #64 + WORD $0x91010339 // add x25, x25, #64 + WORD $0xf100ff7f // cmp x27, #63 WORD $0x54fff8a8 // b.hi LBB0_54 $-236(%rip) - WORD $0x14000082 // b LBB0_84 $520(%rip) + WORD $0x1400027a // b LBB0_199 $2536(%rip) LBB0_58: - WORD $0xb100079f // cmn x28, #1 - WORD $0xdac0020c // rbit x12, x16 - WORD $0xdac0118c // clz x12, x12 - WORD $0x8b1b018c // add x12, x12, x27 - WORD $0x9a8c139c // csel x28, x28, x12, ne + WORD $0xb100075f // cmn x26, #1 + WORD $0xdac0004e // rbit x14, x2 + WORD $0xdac011ce // clz x14, x14 + WORD $0x8b1901ce // add x14, x14, x25 + WORD $0x9a8e135a // csel x26, x26, x14, ne LBB0_59: - WORD $0x8a39020c // bic x12, x16, x25 - WORD $0xaa0c072d // orr x13, x25, x12, lsl #1 - WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x8a37004e // bic x14, x2, x23 + WORD $0xaa0e06ef // orr x15, x23, x14, lsl #1 + WORD $0x8a2f0050 // bic x16, x2, x15 WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa - WORD $0xab0c020c // adds x12, x16, x12 - WORD $0x1a9f37f9 // cset w25, hs - WORD $0xd37ff98c // lsl x12, x12, #1 - WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 - WORD $0x8a0d018c // and x12, x12, x13 - WORD $0x8a2c0084 // bic x4, x4, x12 - WORD $0xb4fffd84 // cbz x4, LBB0_57 $-80(%rip) + WORD $0xab0e020e // adds x14, x16, x14 + WORD $0x1a9f37f7 // cset w23, hs + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0xd200f1ce // eor x14, x14, #0x5555555555555555 + WORD $0x8a0f01ce // and x14, x14, x15 + WORD $0x8a2e03de // bic lr, lr, x14 + WORD $0xb4fffd9e // cbz lr, LBB0_57 $-80(%rip) LBB0_60: - WORD $0xdac0008c // rbit x12, x4 - WORD $0xdac0118c // clz x12, x12 - WORD $0x8b1b018c // add x12, x12, x27 - WORD $0x91000599 // add x25, x12, #1 - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x10ffda89 // adr x9, lCPI0_0 $-1200(%rip) - WORD $0x3201f3fe // mov w30, #-1431655766 - WORD $0xb7f9ca19 // tbnz x25, #63, LBB0_805 $14656(%rip) + WORD $0xdac003ce // rbit x14, lr + WORD $0xdac011ce // clz x14, x14 + WORD $0x8b1901ce // add x14, x14, x25 + WORD $0x910005d7 // add x23, x14, #1 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 LBB0_61: - WORD $0xf9000039 // str x25, [x1] - WORD $0xb100079f // cmn x28, #1 - WORD $0x54000060 // b.eq LBB0_63 $12(%rip) - WORD $0xeb19039f // cmp x28, x25 - WORD $0x5400120d // b.le LBB0_91 $576(%rip) -LBB0_63: - WORD $0xcb08032c // sub x12, x25, x8 - WORD $0xd1000990 // sub x16, x12, #2 - WORD $0xaa1a020c // orr x12, x16, x26 - WORD $0xb400030c // cbz x12, LBB0_69 $96(%rip) - WORD $0xeb1a021f // cmp x16, x26 - WORD $0xf94007e3 // ldr x3, [sp, #8] -Lloh2: - WORD $0x1001cc4a // adr x10, __UnquoteTab $14728(%rip) -Lloh3: - WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) - WORD $0xb202e3f5 // mov x21, #4919131752989213764 - WORD $0x540003a1 // b.ne LBB0_70 $116(%rip) - WORD $0xd2800004 // mov x4, #0 - WORD $0xaa1a03e5 // mov x5, x26 -LBB0_66: - WORD $0xf10040b0 // subs x16, x5, #16 - WORD $0x54000403 // b.lo LBB0_71 $128(%rip) - WORD $0x3ce46a73 // ldr q19, [x19, x4] - WORD $0x3ce46af4 // ldr q20, [x23, x4] + WORD $0xb7fa3297 // tbnz x23, #63, LBB0_911 $18000(%rip) + WORD $0xf9000037 // str x23, [x1] + WORD $0xb100075f // cmn x26, #1 + WORD $0x54000060 // b.eq LBB0_64 $12(%rip) + WORD $0xeb17035f // cmp x26, x23 + WORD $0x54007c0d // b.le LBB0_247 $3968(%rip) +LBB0_64: + WORD $0xcb1502ee // sub x14, x23, x21 + WORD $0xd10009c2 // sub x2, x14, #2 + WORD $0xaa18004e // orr x14, x2, x24 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb40002ee // cbz x14, LBB0_70 $92(%rip) + WORD $0xeb18005f // cmp x2, x24 + WORD $0x540002e1 // b.ne LBB0_71 $92(%rip) + WORD $0xd280001a // mov x26, #0 + WORD $0xaa1803f9 // mov x25, x24 +LBB0_67: + WORD $0xf1004322 // subs x2, x25, #16 + WORD $0x54001283 // b.lo LBB0_116 $592(%rip) + WORD $0x3cfa6a93 // ldr q19, [x20, x26] + WORD $0x3cfa6ad4 // ldr q20, [x22, x26] WORD $0x6e338e93 // cmeq.16b v19, v20, v19 WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x0a2c028c // bic w12, w20, w12 - WORD $0x91004084 // add x4, x4, #16 - WORD $0xaa1003e5 // mov x5, x16 - WORD $0x34fffe8c // cbz w12, LBB0_66 $-48(%rip) - WORD $0x52800004 // mov w4, #0 - WORD $0x1400002f // b LBB0_76 $188(%rip) -LBB0_69: - WORD $0x52800025 // mov w5, #1 - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x10ffd667 // adr x7, lCPI0_1 $-1332(%rip) - WORD $0xf94007e3 // ldr x3, [sp, #8] -Lloh4: - WORD $0x1001c92a // adr x10, __UnquoteTab $14628(%rip) -Lloh5: - WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) - WORD $0xb202e3f5 // mov x21, #4919131752989213764 - WORD $0xf9400413 // ldr x19, [x0, #8] - WORD $0xeb13033f // cmp x25, x19 - WORD $0x54002802 // b.hs LBB0_131 $1280(%rip) - WORD $0x1400002a // b LBB0_78 $168(%rip) + WORD $0x1e26026e // fmov w14, s19 + WORD $0x0a2e010e // bic w14, w8, w14 + WORD $0x9100435a // add x26, x26, #16 + WORD $0xaa0203f9 // mov x25, x2 + WORD $0x34fffe8e // cbz w14, LBB0_67 $-48(%rip) + WORD $0x52800016 // mov w22, #0 +Lloh6: + WORD $0x10023ff0 // adr x16, __UnquoteTab $18428(%rip) +Lloh7: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x2a1f03f4 // mov w20, wzr + WORD $0x14000006 // b LBB0_73 $24(%rip) LBB0_70: - WORD $0xd2800005 // mov x5, #0 - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x10ffd507 // adr x7, lCPI0_1 $-1376(%rip) - WORD $0xf9400413 // ldr x19, [x0, #8] - WORD $0xeb13033f // cmp x25, x19 - WORD $0x54002722 // b.hs LBB0_131 $1252(%rip) - WORD $0x14000023 // b LBB0_78 $140(%rip) + WORD $0x52800034 // mov w20, #1 + WORD $0x14000002 // b LBB0_72 $8(%rip) LBB0_71: - WORD $0x0b160108 // add w8, w8, w22 - WORD $0x0b040108 // add w8, w8, w4 - WORD $0x11000508 // add w8, w8, #1 - WORD $0x92402d0c // and x12, x8, #0xfff - WORD $0x8b0402e8 // add x8, x23, x4 - WORD $0x8b040273 // add x19, x19, x4 - WORD $0xf13fc19f // cmp x12, #4080 - WORD $0x54000248 // b.hi LBB0_74 $72(%rip) - WORD $0x92402d0c // and x12, x8, #0xfff - WORD $0xf13fc59f // cmp x12, #4081 - WORD $0x540001e2 // b.hs LBB0_74 $60(%rip) - WORD $0x3dc00273 // ldr q19, [x19] - WORD $0x3dc00114 // ldr q20, [x8] - WORD $0x6e338e93 // cmeq.16b v19, v20, v19 - WORD $0x4e211e73 // and.16b v19, v19, v1 - WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 - WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260268 // fmov w8, s19 - WORD $0x6a280288 // bics w8, w20, w8 - WORD $0x1a9f17ec // cset w12, eq - WORD $0xdac00108 // rbit x8, x8 - WORD $0xdac01108 // clz x8, x8 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x1a9f3584 // csinc w4, w12, wzr, lo - WORD $0x14000004 // b LBB0_76 $16(%rip) -LBB0_74: - WORD $0xeb04035f // cmp x26, x4 - WORD $0x54000241 // b.ne LBB0_82 $72(%rip) - WORD $0x52800024 // mov w4, #1 -LBB0_76: - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x10ffd0c7 // adr x7, lCPI0_1 $-1512(%rip) -LBB0_77: - WORD $0x2a0403e5 // mov w5, w4 - WORD $0xf9400413 // ldr x19, [x0, #8] - WORD $0xeb13033f // cmp x25, x19 - WORD $0x540022c2 // b.hs LBB0_131 $1112(%rip) + WORD $0xd2800014 // mov x20, #0 +LBB0_72: +Lloh8: + WORD $0x10023f10 // adr x16, __UnquoteTab $18400(%rip) +Lloh9: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) +LBB0_73: + WORD $0xf9400416 // ldr x22, [x0, #8] + WORD $0xeb1602ff // cmp x23, x22 + WORD $0x54000162 // b.hs LBB0_78 $44(%rip) + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100345f // cmp w2, #13 + WORD $0x54000100 // b.eq LBB0_78 $32(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x540000c0 // b.eq LBB0_78 $24(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000062 // b.hs LBB0_78 $12(%rip) + WORD $0xaa1703f5 // mov x21, x23 + WORD $0x14000031 // b LBB0_94 $196(%rip) LBB0_78: - WORD $0x38796ac8 // ldrb w8, [x22, x25] - WORD $0x7100351f // cmp w8, #13 - WORD $0x54002260 // b.eq LBB0_131 $1100(%rip) - WORD $0x7100811f // cmp w8, #32 - WORD $0x54002220 // b.eq LBB0_131 $1092(%rip) - WORD $0x51002d08 // sub w8, w8, #11 - WORD $0x3100091f // cmn w8, #2 - WORD $0x540021c2 // b.hs LBB0_131 $1080(%rip) - WORD $0xaa1903e8 // mov x8, x25 - WORD $0x1400013c // b LBB0_147 $1264(%rip) + WORD $0x910006f5 // add x21, x23, #1 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000122 // b.hs LBB0_82 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_82 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_82 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x540004c3 // b.lo LBB0_94 $152(%rip) LBB0_82: - WORD $0x52800037 // mov w23, #1 - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x10ffcea7 // adr x7, lCPI0_1 $-1580(%rip) -LBB0_83: - WORD $0x3840166c // ldrb w12, [x19], #1 - WORD $0x3840150d // ldrb w13, [x8], #1 - WORD $0x6b0d019f // cmp w12, w13 - WORD $0x1a9f17e4 // cset w4, eq - WORD $0xfa5700a4 // ccmp x5, x23, #4, eq - WORD $0x910006f7 // add x23, x23, #1 - WORD $0x54ffff41 // b.ne LBB0_83 $-24(%rip) - WORD $0x17ffffe8 // b LBB0_77 $-96(%rip) -LBB0_84: - WORD $0x8b1b02d0 // add x16, x22, x27 - WORD $0x14000004 // b LBB0_86 $16(%rip) -LBB0_85: - WORD $0xd2800019 // mov x25, #0 - WORD $0x9280001c // mov x28, #-1 - WORD $0xaa1303f0 // mov x16, x19 + WORD $0x91000af5 // add x21, x23, #2 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000122 // b.hs LBB0_86 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_86 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_86 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000363 // b.lo LBB0_94 $108(%rip) LBB0_86: - WORD $0xf10083db // subs x27, lr, #32 - WORD $0x54008a63 // b.lo LBB0_288 $4428(%rip) - WORD $0xad405213 // ldp q19, q20, [x16] - WORD $0x6e208e75 // cmeq.16b v21, v19, v0 - WORD $0x6e208e96 // cmeq.16b v22, v20, v0 - WORD $0x6e238e73 // cmeq.16b v19, v19, v3 - WORD $0x6e238e94 // cmeq.16b v20, v20, v3 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 - WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602be // fmov w30, s21 - WORD $0x4e211ed5 // and.16b v21, v22, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 - WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ac // fmov w12, s21 - WORD $0x4e211e73 // and.16b v19, v19, v1 - WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 - WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260264 // fmov w4, s19 - WORD $0x4e211e93 // and.16b v19, v20, v1 - WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 - WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26026d // fmov w13, s19 - WORD $0x33103d9e // bfi w30, w12, #16, #16 - WORD $0x33103da4 // bfi w4, w13, #16, #16 - WORD $0x350087a4 // cbnz w4, LBB0_289 $4340(%rip) - WORD $0xb5008859 // cbnz x25, LBB0_290 $4360(%rip) - WORD $0x10ffc909 // adr x9, lCPI0_0 $-1760(%rip) - WORD $0xb40089de // cbz lr, LBB0_291 $4408(%rip) + WORD $0x91000ef5 // add x21, x23, #3 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000122 // b.hs LBB0_90 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_90 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_90 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000203 // b.lo LBB0_94 $64(%rip) LBB0_90: - WORD $0xdac003cc // rbit x12, lr - WORD $0xdac0118c // clz x12, x12 - WORD $0xcb16020d // sub x13, x16, x22 - WORD $0x8b0c01ac // add x12, x13, x12 - WORD $0x91000599 // add x25, x12, #1 - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x3201f3fe // mov w30, #-1431655766 - WORD $0xb6ffedd9 // tbz x25, #63, LBB0_61 $-584(%rip) - WORD $0x14000dbc // b LBB0_805 $14064(%rip) + WORD $0x910012f5 // add x21, x23, #4 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x5401ca62 // b.hs LBB0_802 $14668(%rip) LBB0_91: - WORD $0x52848011 // mov w17, #9216 - WORD $0x72bf9411 // movk w17, #64672, lsl #16 - WORD $0xf90013ff // str xzr, [sp, #32] - WORD $0x8b1902c8 // add x8, x22, x25 - WORD $0xd1000514 // sub x20, x8, #1 - WORD $0x8b1a02e2 // add x2, x23, x26 - WORD $0xeb14027f // cmp x19, x20 - WORD $0x540017c2 // b.hs LBB0_129 $760(%rip) - WORD $0xf100075f // cmp x26, #1 - WORD $0x5400178b // b.lt LBB0_129 $752(%rip) + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x710081df // cmp w14, #32 + WORD $0x9ace218e // lsl x14, x12, x14 + WORD $0x8a0d01ce // and x14, x14, x13 + WORD $0xfa4099c4 // ccmp x14, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_93 $20(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xeb1502df // cmp x22, x21 + WORD $0x54ffff01 // b.ne LBB0_91 $-32(%rip) + WORD $0x14000eb4 // b LBB0_829 $15056(%rip) LBB0_93: - WORD $0x39400268 // ldrb w8, [x19] - WORD $0x7101711f // cmp w8, #92 - WORD $0x540001e1 // b.ne LBB0_98 $60(%rip) - WORD $0xcb13029a // sub x26, x20, x19 - WORD $0xf100075f // cmp x26, #1 - WORD $0x5401b76b // b.lt LBB0_813 $14060(%rip) - WORD $0x39400668 // ldrb w8, [x19, #1] -Lloh6: - WORD $0x1001b909 // adr x9, __UnquoteTab $14112(%rip) -Lloh7: - WORD $0x91000129 // add x9, x9, __UnquoteTab@PAGEOFF $0(%rip) - WORD $0x38686928 // ldrb w8, [x9, x8] - WORD $0x7103fd1f // cmp w8, #255 - WORD $0x54000180 // b.eq LBB0_100 $48(%rip) - WORD $0x3401b608 // cbz w8, LBB0_811 $14016(%rip) - WORD $0x390083e8 // strb w8, [sp, #32] - WORD $0x91000a73 // add x19, x19, #2 - WORD $0x52800028 // mov w8, #1 - WORD $0x14000043 // b LBB0_109 $268(%rip) -LBB0_98: - WORD $0x394002ec // ldrb w12, [x23] - WORD $0x6b0c011f // cmp w8, w12 - WORD $0x54008161 // b.ne LBB0_286 $4140(%rip) - WORD $0x91000673 // add x19, x19, #1 - WORD $0x910006f7 // add x23, x23, #1 - WORD $0x1400004e // b LBB0_115 $312(%rip) -LBB0_100: - WORD $0xf100135f // cmp x26, #4 - WORD $0x5401b4e3 // b.lo LBB0_812 $13980(%rip) - WORD $0xb8402268 // ldur w8, [x19, #2] - WORD $0x0b18010c // add w12, w8, w24 - WORD $0x3201c3ed // mov w13, #-2139062144 - WORD $0x0a2801a4 // bic w4, w13, w8 - WORD $0x6a0c009f // tst w4, w12 - WORD $0x5401b361 // b.ne LBB0_809 $13932(%rip) - WORD $0x52832329 // mov w9, #6425 - WORD $0x72a32329 // movk w9, #6425, lsl #16 - WORD $0x0b09010c // add w12, w8, w9 - WORD $0x2a08018c // orr w12, w12, w8 - WORD $0x3201c3e9 // mov w9, #-2139062144 - WORD $0x6a0d019f // tst w12, w13 - WORD $0x5401b281 // b.ne LBB0_809 $13904(%rip) - WORD $0x3200dbec // mov w12, #2139062143 - WORD $0x0a0c0110 // and w16, w8, w12 - WORD $0x4b10006c // sub w12, w3, w16 - WORD $0x5288c8cd // mov w13, #17990 - WORD $0x72a8c8cd // movk w13, #17990, lsl #16 - WORD $0x0b0d020d // add w13, w16, w13 - WORD $0x0a0c01ac // and w12, w13, w12 - WORD $0x6a04019f // tst w12, w4 - WORD $0x5401b161 // b.ne LBB0_809 $13868(%rip) - WORD $0x3203cbec // mov w12, #-522133280 - WORD $0x4b10018c // sub w12, w12, w16 - WORD $0x0b0a020d // add w13, w16, w10 - WORD $0x0a0c01ac // and w12, w13, w12 - WORD $0x6a04019f // tst w12, w4 - WORD $0x5401b0a1 // b.ne LBB0_809 $13844(%rip) - WORD $0x5ac00908 // rev w8, w8 - WORD $0x3200c3ec // mov w12, #16843009 - WORD $0x0a68118c // bic w12, w12, w8, lsr #4 - WORD $0x0b0c0d8c // add w12, w12, w12, lsl #3 - WORD $0x0a150108 // and w8, w8, w21 - WORD $0x0b080188 // add w8, w12, w8 - WORD $0x2a481108 // orr w8, w8, w8, lsr #4 - WORD $0x53087d0c // lsr w12, w8, #8 - WORD $0x12181d90 // and w16, w12, #0xff00 - WORD $0xaa1003e5 // mov x5, x16 - WORD $0x33001d05 // bfxil w5, w8, #0, #8 - WORD $0x91001a7b // add x27, x19, #6 - WORD $0x7101fcbf // cmp w5, #127 - WORD $0x540004e9 // b.ls LBB0_117 $156(%rip) - WORD $0x711ffcbf // cmp w5, #2047 - WORD $0x54000529 // b.ls LBB0_118 $164(%rip) - WORD $0x51403a0c // sub w12, w16, #14, lsl #12 - WORD $0x3120059f // cmn w12, #2049 - WORD $0x540005e8 // b.hi LBB0_119 $188(%rip) - WORD $0x530c7e0c // lsr w12, w16, #12 - WORD $0x321b098c // orr w12, w12, #0xe0 - WORD $0x390083ec // strb w12, [sp, #32] - WORD $0x5280100c // mov w12, #128 - WORD $0x33062cac // bfxil w12, w5, #6, #6 - WORD $0x390087ec // strb w12, [sp, #33] - WORD $0x5280100c // mov w12, #128 - WORD $0x3300150c // bfxil w12, w8, #0, #6 - WORD $0x39008bec // strb w12, [sp, #34] - WORD $0xaa1b03f3 // mov x19, x27 - WORD $0x52800068 // mov w8, #3 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x5401d642 // b.hs LBB0_829 $15048(%rip) +LBB0_94: + WORD $0x910006b6 // add x22, x21, #1 + WORD $0xf9000036 // str x22, [x1] + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x7100e9df // cmp w14, #58 + WORD $0x5401d5a1 // b.ne LBB0_829 $15028(%rip) + WORD $0xb5011474 // cbnz x20, LBB0_491 $8844(%rip) + WORD $0xf9400417 // ldr x23, [x0, #8] + WORD $0xeb1702df // cmp x22, x23 + WORD $0x54000162 // b.hs LBB0_101 $44(%rip) + WORD $0x38766a62 // ldrb w2, [x19, x22] + WORD $0x7100345f // cmp w2, #13 + WORD $0x54000100 // b.eq LBB0_101 $32(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x540000c0 // b.eq LBB0_101 $24(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000062 // b.hs LBB0_101 $12(%rip) + WORD $0xaa1603f4 // mov x20, x22 + WORD $0x14000060 // b LBB0_125 $384(%rip) +LBB0_101: + WORD $0x91000ab4 // add x20, x21, #2 + WORD $0xeb17029f // cmp x20, x23 + WORD $0x54000122 // b.hs LBB0_105 $36(%rip) + WORD $0x38746a62 // ldrb w2, [x19, x20] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_105 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_105 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000aa3 // b.lo LBB0_125 $340(%rip) +LBB0_105: + WORD $0x91000eb4 // add x20, x21, #3 + WORD $0xeb17029f // cmp x20, x23 + WORD $0x54000122 // b.hs LBB0_109 $36(%rip) + WORD $0x38746a62 // ldrb w2, [x19, x20] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_109 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_109 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000943 // b.lo LBB0_125 $296(%rip) LBB0_109: - WORD $0x910083e4 // add x4, sp, #32 - WORD $0xaa080088 // orr x8, x4, x8 - WORD $0xeb0202ff // cmp x23, x2 - WORD $0x54000182 // b.hs LBB0_114 $48(%rip) - WORD $0x910083e4 // add x4, sp, #32 -LBB0_111: - WORD $0x394002ec // ldrb w12, [x23] - WORD $0x3940008d // ldrb w13, [x4] - WORD $0x6b0d019f // cmp w12, w13 - WORD $0x540000e1 // b.ne LBB0_114 $28(%rip) - WORD $0x910006f7 // add x23, x23, #1 - WORD $0x91000484 // add x4, x4, #1 - WORD $0xeb0202ff // cmp x23, x2 - WORD $0x54000062 // b.hs LBB0_114 $12(%rip) - WORD $0xeb08009f // cmp x4, x8 - WORD $0x54fffee3 // b.lo LBB0_111 $-36(%rip) + WORD $0x910012b4 // add x20, x21, #4 + WORD $0xeb17029f // cmp x20, x23 + WORD $0x54000122 // b.hs LBB0_113 $36(%rip) + WORD $0x38746a62 // ldrb w2, [x19, x20] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_113 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_113 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x540007e3 // b.lo LBB0_125 $252(%rip) +LBB0_113: + WORD $0x910016b4 // add x20, x21, #5 + WORD $0xeb17029f // cmp x20, x23 + WORD $0x54001162 // b.hs LBB0_151 $556(%rip) LBB0_114: - WORD $0xeb08009f // cmp x4, x8 - WORD $0x54007761 // b.ne LBB0_286 $3820(%rip) -LBB0_115: - WORD $0xeb14027f // cmp x19, x20 - WORD $0x54000ac2 // b.hs LBB0_129 $344(%rip) - WORD $0xeb0202ff // cmp x23, x2 - WORD $0x54fff323 // b.lo LBB0_93 $-412(%rip) - WORD $0x14000053 // b LBB0_129 $332(%rip) -LBB0_117: - WORD $0x390083e8 // strb w8, [sp, #32] - WORD $0xaa1b03f3 // mov x19, x27 - WORD $0x52800028 // mov w8, #1 - WORD $0x17ffffe7 // b LBB0_109 $-100(%rip) -LBB0_118: - WORD $0x53067cac // lsr w12, w5, #6 - WORD $0x321a058c // orr w12, w12, #0xc0 - WORD $0x390083ec // strb w12, [sp, #32] - WORD $0x5280100c // mov w12, #128 - WORD $0x3300150c // bfxil w12, w8, #0, #6 - WORD $0x390087ec // strb w12, [sp, #33] - WORD $0xaa1b03f3 // mov x19, x27 - WORD $0x52800048 // mov w8, #2 - WORD $0x17ffffde // b LBB0_109 $-136(%rip) + WORD $0x38746a6e // ldrb w14, [x19, x20] + WORD $0x710081df // cmp w14, #32 + WORD $0x9ace218e // lsl x14, x12, x14 + WORD $0x8a0d01ce // and x14, x14, x13 + WORD $0xfa4099c4 // ccmp x14, #0, #4, ls + WORD $0x54000680 // b.eq LBB0_124 $208(%rip) + WORD $0x91000694 // add x20, x20, #1 + WORD $0xeb1402ff // cmp x23, x20 + WORD $0x54ffff01 // b.ne LBB0_114 $-32(%rip) + WORD $0x14000083 // b LBB0_152 $524(%rip) +LBB0_116: + WORD $0x0b1302ae // add w14, w21, w19 + WORD $0x0b1a01ce // add w14, w14, w26 + WORD $0x110005ce // add w14, w14, #1 + WORD $0x92402dce // and x14, x14, #0xfff + WORD $0x8b1a02d5 // add x21, x22, x26 + WORD $0x8b1a0294 // add x20, x20, x26 + WORD $0xf13fc1df // cmp x14, #4080 + WORD $0x540002a8 // b.hi LBB0_119 $84(%rip) + WORD $0x92402eae // and x14, x21, #0xfff + WORD $0xf13fc5df // cmp x14, #4081 + WORD $0x54000242 // b.hs LBB0_119 $72(%rip) + WORD $0x3dc00293 // ldr q19, [x20] + WORD $0x3dc002b4 // ldr q20, [x21] + WORD $0x6e338e93 // cmeq.16b v19, v20, v19 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x6a2e010e // bics w14, w8, w14 + WORD $0x1a9f17ef // cset w15, eq + WORD $0xdac001ce // rbit x14, x14 + WORD $0xdac011ce // clz x14, x14 + WORD $0xeb1901df // cmp x14, x25 + WORD $0x1a9f35f6 // csinc w22, w15, wzr, lo +Lloh10: + WORD $0x10022c10 // adr x16, __UnquoteTab $17792(%rip) +Lloh11: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x2a1603f4 // mov w20, w22 + WORD $0x17ffff67 // b LBB0_73 $-612(%rip) LBB0_119: - WORD $0x92800068 // mov x8, #-4 - WORD $0xf1001b5f // cmp x26, #6 - WORD $0x5401aa83 // b.lo LBB0_818 $13648(%rip) - WORD $0x530a7cac // lsr w12, w5, #10 - WORD $0x7100d99f // cmp w12, #54 - WORD $0x5401aa28 // b.hi LBB0_818 $13636(%rip) - WORD $0x39400368 // ldrb w8, [x27] - WORD $0x7101711f // cmp w8, #92 - WORD $0x5401a901 // b.ne LBB0_816 $13600(%rip) - WORD $0x39401e68 // ldrb w8, [x19, #7] - WORD $0x7101d51f // cmp w8, #117 - WORD $0x5401a8a1 // b.ne LBB0_816 $13588(%rip) - WORD $0xb9400a68 // ldr w8, [x19, #8] - WORD $0x0b18010c // add w12, w8, w24 - WORD $0x0a280124 // bic w4, w9, w8 - WORD $0x6a0c009f // tst w4, w12 - WORD $0x5401a7c1 // b.ne LBB0_815 $13560(%rip) - WORD $0x5283232c // mov w12, #6425 - WORD $0x72a3232c // movk w12, #6425, lsl #16 - WORD $0x0b0c010c // add w12, w8, w12 - WORD $0x2a08018c // orr w12, w12, w8 - WORD $0x6a09019f // tst w12, w9 - WORD $0x5401a701 // b.ne LBB0_815 $13536(%rip) - WORD $0x3200dbe9 // mov w9, #2139062143 - WORD $0x0a090110 // and w16, w8, w9 - WORD $0x4b10006c // sub w12, w3, w16 - WORD $0x5288c8c9 // mov w9, #17990 - WORD $0x72a8c8c9 // movk w9, #17990, lsl #16 - WORD $0x0b09020d // add w13, w16, w9 - WORD $0x0a0c01ac // and w12, w13, w12 - WORD $0x6a04019f // tst w12, w4 - WORD $0x5401a5e1 // b.ne LBB0_815 $13500(%rip) - WORD $0x3203cbe9 // mov w9, #-522133280 - WORD $0x4b10012c // sub w12, w9, w16 - WORD $0x0b0a020d // add w13, w16, w10 - WORD $0x0a0c01ac // and w12, w13, w12 - WORD $0x6a04019f // tst w12, w4 - WORD $0x5401a521 // b.ne LBB0_815 $13476(%rip) - WORD $0x5ac00908 // rev w8, w8 - WORD $0x3200c3e9 // mov w9, #16843009 - WORD $0x0a68112c // bic w12, w9, w8, lsr #4 - WORD $0x0b0c0d8c // add w12, w12, w12, lsl #3 - WORD $0x0a150108 // and w8, w8, w21 - WORD $0x0b080188 // add w8, w12, w8 - WORD $0x2a481108 // orr w8, w8, w8, lsr #4 - WORD $0x53087d0c // lsr w12, w8, #8 - WORD $0x12181d90 // and w16, w12, #0xff00 - WORD $0x51403a0c // sub w12, w16, #14, lsl #12 - WORD $0x3110019f // cmn w12, #1024 - WORD $0x5401a443 // b.lo LBB0_817 $13448(%rip) - WORD $0x12001d0c // and w12, w8, #0xff - WORD $0x2a05298c // orr w12, w12, w5, lsl #10 - WORD $0x0b11020d // add w13, w16, w17 - WORD $0x0b0d018c // add w12, w12, w13 - WORD $0x53127d8d // lsr w13, w12, #18 - WORD $0x321c0dad // orr w13, w13, #0xf0 - WORD $0x390083ed // strb w13, [sp, #32] - WORD $0x5280100d // mov w13, #128 - WORD $0x330c458d // bfxil w13, w12, #12, #6 - WORD $0x390087ed // strb w13, [sp, #33] - WORD $0x5280100d // mov w13, #128 - WORD $0x33062d8d // bfxil w13, w12, #6, #6 - WORD $0x39008bed // strb w13, [sp, #34] - WORD $0x5280100c // mov w12, #128 - WORD $0x3300150c // bfxil w12, w8, #0, #6 - WORD $0x39008fec // strb w12, [sp, #35] - WORD $0x91003273 // add x19, x19, #12 - WORD $0x52800088 // mov w8, #4 - WORD $0x17ffff99 // b LBB0_109 $-412(%rip) + WORD $0xeb1a031f // cmp x24, x26 + WORD $0x540000c1 // b.ne LBB0_121 $24(%rip) + WORD $0x52800036 // mov w22, #1 +Lloh12: + WORD $0x10022b30 // adr x16, __UnquoteTab $17764(%rip) +Lloh13: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x2a1603f4 // mov w20, w22 + WORD $0x17ffff60 // b LBB0_73 $-640(%rip) +LBB0_121: + WORD $0x52800038 // mov w24, #1 +Lloh14: + WORD $0x10022a90 // adr x16, __UnquoteTab $17744(%rip) +Lloh15: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) +LBB0_122: + WORD $0x3840168e // ldrb w14, [x20], #1 + WORD $0x384016af // ldrb w15, [x21], #1 + WORD $0x6b0f01df // cmp w14, w15 + WORD $0x1a9f17f6 // cset w22, eq + WORD $0xfa580324 // ccmp x25, x24, #4, eq + WORD $0x91000718 // add x24, x24, #1 + WORD $0x54ffff41 // b.ne LBB0_122 $-24(%rip) + WORD $0x2a1603f4 // mov w20, w22 + WORD $0x17ffff54 // b LBB0_73 $-688(%rip) +LBB0_124: + WORD $0xeb17029f // cmp x20, x23 + WORD $0x54000a42 // b.hs LBB0_152 $328(%rip) +LBB0_125: + WORD $0x91000696 // add x22, x20, #1 + WORD $0xf9000036 // str x22, [x1] + WORD $0x38746a75 // ldrb w21, [x19, x20] + WORD $0x71016abf // cmp w21, #90 + WORD $0x540005ec // b.gt LBB0_140 $188(%rip) + WORD $0x7100bebf // cmp w21, #47 + WORD $0x540007ad // b.le LBB0_145 $244(%rip) + WORD $0x5100c2ae // sub w14, w21, #48 + WORD $0x710029df // cmp w14, #10 + WORD $0x540008c2 // b.hs LBB0_151 $280(%rip) +LBB0_128: + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xcb1601d4 // sub x20, x14, x22 + WORD $0xf100429f // cmp x20, #16 + WORD $0x540001e3 // b.lo LBB0_131 $60(%rip) LBB0_129: - WORD $0xeb14027f // cmp x19, x20 - WORD $0xfa4202e0 // ccmp x23, x2, #0, eq - WORD $0x1a9f17e5 // cset w5, eq -LBB0_130: - WORD $0xb202e3f5 // mov x21, #4919131752989213764 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x10ffae29 // adr x9, lCPI0_0 $-2620(%rip) - WORD $0x10ffae87 // adr x7, lCPI0_1 $-2608(%rip) - WORD $0x3201f3fe // mov w30, #-1431655766 - WORD $0xf94007e3 // ldr x3, [sp, #8] -Lloh8: - WORD $0x1001a12a // adr x10, __UnquoteTab $13348(%rip) -Lloh9: - WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) - WORD $0xf9400413 // ldr x19, [x0, #8] - WORD $0xeb13033f // cmp x25, x19 - WORD $0x54ffdd83 // b.lo LBB0_78 $-1104(%rip) -LBB0_131: - WORD $0x91000728 // add x8, x25, #1 - WORD $0xeb13011f // cmp x8, x19 - WORD $0x54000122 // b.hs LBB0_135 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_135 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_135 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x540004c3 // b.lo LBB0_147 $152(%rip) -LBB0_135: - WORD $0x91000b28 // add x8, x25, #2 - WORD $0xeb13011f // cmp x8, x19 - WORD $0x54000122 // b.hs LBB0_139 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_139 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_139 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000363 // b.lo LBB0_147 $108(%rip) -LBB0_139: - WORD $0x91000f28 // add x8, x25, #3 - WORD $0xeb13011f // cmp x8, x19 - WORD $0x54000122 // b.hs LBB0_143 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_143 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_143 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000203 // b.lo LBB0_147 $64(%rip) -LBB0_143: - WORD $0x91001328 // add x8, x25, #4 - WORD $0xeb13011f // cmp x8, x19 - WORD $0x54018b02 // b.hs LBB0_769 $12640(%rip) -LBB0_144: - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7100819f // cmp w12, #32 - WORD $0x9acc21cc // lsl x12, x14, x12 - WORD $0x8a0f018c // and x12, x12, x15 - WORD $0xfa409984 // ccmp x12, #0, #4, ls - WORD $0x540000a0 // b.eq LBB0_146 $20(%rip) - WORD $0x91000508 // add x8, x8, #1 - WORD $0xeb08027f // cmp x19, x8 - WORD $0x54ffff01 // b.ne LBB0_144 $-32(%rip) - WORD $0x14000c5a // b LBB0_775 $12648(%rip) -LBB0_146: - WORD $0xeb13011f // cmp x8, x19 - WORD $0x54018b02 // b.hs LBB0_775 $12640(%rip) -LBB0_147: - WORD $0x91000513 // add x19, x8, #1 - WORD $0xf9000033 // str x19, [x1] - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7100e99f // cmp w12, #58 - WORD $0x54018a61 // b.ne LBB0_775 $12620(%rip) - WORD $0xb500e465 // cbnz x5, LBB0_488 $7308(%rip) - WORD $0xf9400405 // ldr x5, [x0, #8] - WORD $0xeb05027f // cmp x19, x5 - WORD $0x54000162 // b.hs LBB0_154 $44(%rip) - WORD $0x38736ad0 // ldrb w16, [x22, x19] - WORD $0x7100361f // cmp w16, #13 - WORD $0x54000100 // b.eq LBB0_154 $32(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x540000c0 // b.eq LBB0_154 $24(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000062 // b.hs LBB0_154 $12(%rip) - WORD $0xaa1303f7 // mov x23, x19 - WORD $0x14000031 // b LBB0_170 $196(%rip) -LBB0_154: - WORD $0x91000917 // add x23, x8, #2 - WORD $0xeb0502ff // cmp x23, x5 - WORD $0x54000122 // b.hs LBB0_158 $36(%rip) - WORD $0x38776ad0 // ldrb w16, [x22, x23] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_158 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_158 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x540004c3 // b.lo LBB0_170 $152(%rip) -LBB0_158: - WORD $0x91000d17 // add x23, x8, #3 - WORD $0xeb0502ff // cmp x23, x5 - WORD $0x54000122 // b.hs LBB0_162 $36(%rip) - WORD $0x38776ad0 // ldrb w16, [x22, x23] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_162 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_162 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000363 // b.lo LBB0_170 $108(%rip) -LBB0_162: - WORD $0x91001117 // add x23, x8, #4 - WORD $0xeb0502ff // cmp x23, x5 - WORD $0x54000122 // b.hs LBB0_166 $36(%rip) - WORD $0x38776ad0 // ldrb w16, [x22, x23] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_166 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_166 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000203 // b.lo LBB0_170 $64(%rip) -LBB0_166: - WORD $0x91001517 // add x23, x8, #5 - WORD $0xeb0502ff // cmp x23, x5 - WORD $0x54000ba2 // b.hs LBB0_196 $372(%rip) -LBB0_167: - WORD $0x38776ac8 // ldrb w8, [x22, x23] - WORD $0x7100811f // cmp w8, #32 - WORD $0x9ac821c8 // lsl x8, x14, x8 - WORD $0x8a0f0108 // and x8, x8, x15 - WORD $0xfa409904 // ccmp x8, #0, #4, ls - WORD $0x540000a0 // b.eq LBB0_169 $20(%rip) - WORD $0x910006f7 // add x23, x23, #1 - WORD $0xeb1700bf // cmp x5, x23 - WORD $0x54ffff01 // b.ne LBB0_167 $-32(%rip) - WORD $0x14000055 // b LBB0_197 $340(%rip) -LBB0_169: - WORD $0xeb0502ff // cmp x23, x5 - WORD $0x54000a62 // b.hs LBB0_197 $332(%rip) -LBB0_170: - WORD $0x910006f3 // add x19, x23, #1 - WORD $0xf9000033 // str x19, [x1] - WORD $0x38776ac8 // ldrb w8, [x22, x23] - WORD $0x7101691f // cmp w8, #90 - WORD $0x540005ec // b.gt LBB0_185 $188(%rip) - WORD $0x7100bd1f // cmp w8, #47 - WORD $0x540007cd // b.le LBB0_190 $248(%rip) - WORD $0x5100c108 // sub w8, w8, #48 - WORD $0x7100291f // cmp w8, #10 - WORD $0x540008e2 // b.hs LBB0_196 $284(%rip) -LBB0_173: - WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xcb130108 // sub x8, x8, x19 - WORD $0xf100411f // cmp x8, #16 - WORD $0x540001e3 // b.lo LBB0_176 $60(%rip) -LBB0_174: - WORD $0x3cf36ad3 // ldr q19, [x22, x19] + WORD $0x3cf66a73 // ldr q19, [x19, x22] WORD $0x6e248e74 // cmeq.16b v20, v19, v4 WORD $0x4e251e73 // and.16b v19, v19, v5 WORD $0x6e268e73 // cmeq.16b v19, v19, v6 @@ -928,174 +651,177 @@ LBB0_174: WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260270 // fmov w16, s19 - WORD $0x350002f0 // cbnz w16, LBB0_184 $92(%rip) - WORD $0xd1004108 // sub x8, x8, #16 - WORD $0x91004273 // add x19, x19, #16 - WORD $0xf1003d1f // cmp x8, #15 - WORD $0x54fffe68 // b.hi LBB0_174 $-52(%rip) -LBB0_176: - WORD $0x8b1302c4 // add x4, x22, x19 - WORD $0xb40001e8 // cbz x8, LBB0_183 $60(%rip) - WORD $0x8b080085 // add x5, x4, x8 - WORD $0xcb160093 // sub x19, x4, x22 -LBB0_178: - WORD $0x39400090 // ldrb w16, [x4] - WORD $0x7100b21f // cmp w16, #44 - WORD $0x54005780 // b.eq LBB0_285 $2800(%rip) - WORD $0x7101f61f // cmp w16, #125 - WORD $0x54005740 // b.eq LBB0_285 $2792(%rip) - WORD $0x7101761f // cmp w16, #93 - WORD $0x54005700 // b.eq LBB0_285 $2784(%rip) - WORD $0x91000484 // add x4, x4, #1 - WORD $0x91000673 // add x19, x19, #1 - WORD $0xf1000508 // subs x8, x8, #1 - WORD $0x54fffec1 // b.ne LBB0_178 $-40(%rip) - WORD $0xaa0503e4 // mov x4, x5 -LBB0_183: - WORD $0xcb160093 // sub x19, x4, x22 - WORD $0x1400031a // b LBB0_313 $3176(%rip) -LBB0_184: - WORD $0x5ac00208 // rbit w8, w16 - WORD $0x5ac01108 // clz w8, w8 - WORD $0x8b130113 // add x19, x8, x19 - WORD $0xf9000033 // str x19, [x1] - WORD $0x14000020 // b LBB0_197 $128(%rip) -LBB0_185: - WORD $0x7101b51f // cmp w8, #109 - WORD $0x540002cd // b.le LBB0_193 $88(%rip) - WORD $0x7101b91f // cmp w8, #110 - WORD $0x54002a40 // b.eq LBB0_244 $1352(%rip) - WORD $0x7101d11f // cmp w8, #116 - WORD $0x54002a00 // b.eq LBB0_244 $1344(%rip) - WORD $0x7101ed1f // cmp w8, #123 - WORD $0x540002c1 // b.ne LBB0_196 $88(%rip) - WORD $0xb201e3e9 // mov x9, #-8608480567731124088 - WORD $0xd280001b // mov x27, #0 + WORD $0x1e260262 // fmov w2, s19 + WORD $0x350002e2 // cbnz w2, LBB0_139 $92(%rip) + WORD $0xd1004294 // sub x20, x20, #16 + WORD $0x910042d6 // add x22, x22, #16 + WORD $0xf1003e9f // cmp x20, #15 + WORD $0x54fffe68 // b.hi LBB0_129 $-52(%rip) +LBB0_131: + WORD $0x8b160275 // add x21, x19, x22 + WORD $0xb40001f4 // cbz x20, LBB0_138 $60(%rip) + WORD $0x8b1402b7 // add x23, x21, x20 + WORD $0xcb1302b6 // sub x22, x21, x19 +LBB0_133: + WORD $0x394002a2 // ldrb w2, [x21] + WORD $0x7100b05f // cmp w2, #44 + WORD $0x54005d60 // b.eq LBB0_246 $2988(%rip) + WORD $0x7101f45f // cmp w2, #125 + WORD $0x54005d20 // b.eq LBB0_246 $2980(%rip) + WORD $0x7101745f // cmp w2, #93 + WORD $0x54005ce0 // b.eq LBB0_246 $2972(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0x910006d6 // add x22, x22, #1 + WORD $0xf1000694 // subs x20, x20, #1 + WORD $0x54fffec1 // b.ne LBB0_133 $-40(%rip) + WORD $0xaa1703f5 // mov x21, x23 +LBB0_138: + WORD $0xcb1302b6 // sub x22, x21, x19 + WORD $0x1400042e // b LBB0_314 $4280(%rip) +LBB0_139: + WORD $0x5ac0004e // rbit w14, w2 + WORD $0x5ac011ce // clz w14, w14 + WORD $0x8b1601d6 // add x22, x14, x22 + WORD $0xf9000036 // str x22, [x1] + WORD $0x1400001f // b LBB0_152 $124(%rip) +LBB0_140: + WORD $0x7101b6bf // cmp w21, #109 + WORD $0x540002ad // b.le LBB0_148 $84(%rip) + WORD $0x7101babf // cmp w21, #110 + WORD $0x54002b20 // b.eq LBB0_200 $1380(%rip) + WORD $0x7101d2bf // cmp w21, #116 + WORD $0x54002ae0 // b.eq LBB0_200 $1372(%rip) + WORD $0x7101eebf // cmp w21, #123 + WORD $0x540002a1 // b.ne LBB0_151 $84(%rip) WORD $0xd2800019 // mov x25, #0 - WORD $0xd2800008 // mov x8, #0 WORD $0xd2800017 // mov x23, #0 - WORD $0xf940040c // ldr x12, [x0, #8] - WORD $0xcb13019a // sub x26, x12, x19 - WORD $0x8b1302d3 // add x19, x22, x19 - WORD $0x1400005a // b LBB0_220 $360(%rip) -LBB0_190: - WORD $0x340001c8 // cbz w8, LBB0_197 $56(%rip) - WORD $0x7100891f // cmp w8, #34 - WORD $0x54002920 // b.eq LBB0_247 $1316(%rip) - WORD $0x7100b51f // cmp w8, #45 - WORD $0x54fff840 // b.eq LBB0_173 $-248(%rip) - WORD $0x14000007 // b LBB0_196 $28(%rip) -LBB0_193: - WORD $0x71016d1f // cmp w8, #91 - WORD $0x54003080 // b.eq LBB0_256 $1552(%rip) - WORD $0x7101991f // cmp w8, #102 - WORD $0x54000061 // b.ne LBB0_196 $12(%rip) - WORD $0x910016e8 // add x8, x23, #5 - WORD $0x1400013a // b LBB0_245 $1256(%rip) -LBB0_196: + WORD $0xd2800014 // mov x20, #0 + WORD $0xd2800015 // mov x21, #0 + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xcb1601d8 // sub x24, x14, x22 + WORD $0x8b160273 // add x19, x19, x22 + WORD $0x1400005a // b LBB0_175 $360(%rip) +LBB0_145: + WORD $0x340001d5 // cbz w21, LBB0_152 $56(%rip) + WORD $0x71008abf // cmp w21, #34 + WORD $0x54002f00 // b.eq LBB0_209 $1504(%rip) + WORD $0x7100b6bf // cmp w21, #45 + WORD $0x54fff860 // b.eq LBB0_128 $-244(%rip) + WORD $0x14000007 // b LBB0_151 $28(%rip) +LBB0_148: + WORD $0x71016ebf // cmp w21, #91 + WORD $0x54003660 // b.eq LBB0_218 $1740(%rip) + WORD $0x71019abf // cmp w21, #102 + WORD $0x54000061 // b.ne LBB0_151 $12(%rip) + WORD $0x91001682 // add x2, x20, #5 + WORD $0x14000142 // b LBB0_201 $1288(%rip) +LBB0_151: + WORD $0xf9000034 // str x20, [x1] + WORD $0xaa1403f6 // mov x22, x20 +LBB0_152: + WORD $0xa9405013 // ldp x19, x20, [x0] + WORD $0xeb1402df // cmp x22, x20 + WORD $0x54000162 // b.hs LBB0_157 $44(%rip) + WORD $0x38766a62 // ldrb w2, [x19, x22] + WORD $0x7100345f // cmp w2, #13 + WORD $0x54000100 // b.eq LBB0_157 $32(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x540000c0 // b.eq LBB0_157 $24(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000062 // b.hs LBB0_157 $12(%rip) + WORD $0xaa1603f5 // mov x21, x22 + WORD $0x14000031 // b LBB0_173 $196(%rip) +LBB0_157: + WORD $0x910006d5 // add x21, x22, #1 + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x54000122 // b.hs LBB0_161 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_161 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_161 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x540004c3 // b.lo LBB0_173 $152(%rip) +LBB0_161: + WORD $0x91000ad5 // add x21, x22, #2 + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x54000122 // b.hs LBB0_165 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_165 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_165 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000363 // b.lo LBB0_173 $108(%rip) +LBB0_165: + WORD $0x91000ed5 // add x21, x22, #3 + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x54000122 // b.hs LBB0_169 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_169 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_169 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000203 // b.lo LBB0_173 $64(%rip) +LBB0_169: + WORD $0x910012d5 // add x21, x22, #4 + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x5401aa62 // b.hs LBB0_802 $13644(%rip) +LBB0_170: + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x710081df // cmp w14, #32 + WORD $0x9ace218e // lsl x14, x12, x14 + WORD $0x8a0d01ce // and x14, x14, x13 + WORD $0xfa4099c4 // ccmp x14, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_172 $20(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xeb15029f // cmp x20, x21 + WORD $0x54ffff01 // b.ne LBB0_170 $-32(%rip) + WORD $0x14000db4 // b LBB0_829 $14032(%rip) +LBB0_172: + WORD $0xeb1402bf // cmp x21, x20 + WORD $0x5401b642 // b.hs LBB0_829 $14024(%rip) +LBB0_173: + WORD $0x910006b7 // add x23, x21, #1 WORD $0xf9000037 // str x23, [x1] - WORD $0xaa1703f3 // mov x19, x23 -LBB0_197: - WORD $0xa9401416 // ldp x22, x5, [x0] - WORD $0xeb05027f // cmp x19, x5 - WORD $0x54000162 // b.hs LBB0_202 $44(%rip) - WORD $0x38736ac8 // ldrb w8, [x22, x19] - WORD $0x7100351f // cmp w8, #13 - WORD $0x54000100 // b.eq LBB0_202 $32(%rip) - WORD $0x7100811f // cmp w8, #32 - WORD $0x540000c0 // b.eq LBB0_202 $24(%rip) - WORD $0x51002d08 // sub w8, w8, #11 - WORD $0x3100091f // cmn w8, #2 - WORD $0x54000062 // b.hs LBB0_202 $12(%rip) - WORD $0xaa1303e8 // mov x8, x19 - WORD $0x14000031 // b LBB0_218 $196(%rip) -LBB0_202: - WORD $0x91000668 // add x8, x19, #1 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_206 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_206 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_206 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x540004c3 // b.lo LBB0_218 $152(%rip) -LBB0_206: - WORD $0x91000a68 // add x8, x19, #2 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_210 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_210 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_210 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000363 // b.lo LBB0_218 $108(%rip) -LBB0_210: - WORD $0x91000e68 // add x8, x19, #3 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_214 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_214 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_214 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000203 // b.lo LBB0_218 $64(%rip) -LBB0_214: - WORD $0x91001268 // add x8, x19, #4 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x540170c2 // b.hs LBB0_769 $11800(%rip) -LBB0_215: - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7100819f // cmp w12, #32 - WORD $0x9acc21cc // lsl x12, x14, x12 - WORD $0x8a0f018c // and x12, x12, x15 - WORD $0xfa409984 // ccmp x12, #0, #4, ls - WORD $0x540000a0 // b.eq LBB0_217 $20(%rip) - WORD $0x91000508 // add x8, x8, #1 - WORD $0xeb0800bf // cmp x5, x8 - WORD $0x54ffff01 // b.ne LBB0_215 $-32(%rip) - WORD $0x14000b88 // b LBB0_775 $11808(%rip) -LBB0_217: - WORD $0xeb05011f // cmp x8, x5 - WORD $0x540170c2 // b.hs LBB0_775 $11800(%rip) -LBB0_218: - WORD $0x91000519 // add x25, x8, #1 - WORD $0xf9000039 // str x25, [x1] - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100b21f // cmp w16, #44 - WORD $0x54ff9ce0 // b.eq LBB0_29 $-3172(%rip) - WORD $0x14000b7e // b LBB0_774 $11768(%rip) -LBB0_219: - WORD $0x937ffcbb // asr x27, x5, #63 - WORD $0x9e670393 // fmov d19, x28 + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100b05f // cmp w2, #44 + WORD $0x54ffbec0 // b.eq LBB0_29 $-2088(%rip) + WORD $0x14000daa // b LBB0_828 $13992(%rip) +LBB0_174: + WORD $0x937fff39 // asr x25, x25, #63 + WORD $0x9e670353 // fmov d19, x26 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b080188 // add x8, x12, x8 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1401d4 // add x20, x14, x20 WORD $0x91010273 // add x19, x19, #64 - WORD $0xaa1603fa // mov x26, x22 -LBB0_220: - WORD $0xf1010356 // subs x22, x26, #64 - WORD $0x540016cb // b.lt LBB0_227 $728(%rip) -LBB0_221: + WORD $0xf9400ff8 // ldr x24, [sp, #24] +LBB0_175: + WORD $0xf101030e // subs x14, x24, #64 + WORD $0xf9000fee // str x14, [sp, #24] + WORD $0x540016eb // b.lt LBB0_182 $732(%rip) +LBB0_176: + WORD $0xb201e3f6 // mov x22, #-8608480567731124088 + WORD $0xb203e3fb // mov x27, #2459565876494606882 + WORD $0xf2e0445b // movk x27, #546, lsl #48 WORD $0xad405676 // ldp q22, q21, [x19] WORD $0xad414e74 // ldp q20, q19, [x19, #32] WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e238e97 // cmeq.16b v23, v20, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -1108,35 +834,35 @@ LBB0_221: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01b0 // orr x16, x13, x12 - WORD $0xaa19020c // orr x12, x16, x25 - WORD $0xb500008c // cbnz x12, LBB0_223 $16(%rip) - WORD $0xd2800019 // mov x25, #0 - WORD $0xd2800004 // mov x4, #0 - WORD $0x1400000a // b LBB0_224 $40(%rip) -LBB0_223: - WORD $0x8a39020c // bic x12, x16, x25 - WORD $0xaa0c072d // orr x13, x25, x12, lsl #1 - WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01e2 // orr x2, x15, x14 + WORD $0xaa17004e // orr x14, x2, x23 + WORD $0xb500008e // cbnz x14, LBB0_178 $16(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0xd280001a // mov x26, #0 + WORD $0x1400000a // b LBB0_179 $40(%rip) +LBB0_178: + WORD $0x8a37004e // bic x14, x2, x23 + WORD $0xaa0e06ef // orr x15, x23, x14, lsl #1 + WORD $0x8a2f0050 // bic x16, x2, x15 WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa - WORD $0xab0c020c // adds x12, x16, x12 - WORD $0x1a9f37f9 // cset w25, hs - WORD $0xd37ff98c // lsl x12, x12, #1 - WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 - WORD $0x8a0d0184 // and x4, x12, x13 -LBB0_224: + WORD $0xab0e020e // adds x14, x16, x14 + WORD $0x1a9f37f7 // cset w23, hs + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0xd200f1ce // eor x14, x14, #0x5555555555555555 + WORD $0x8a0f01da // and x26, x14, x15 +LBB0_179: WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e208e97 // cmeq.16b v23, v20, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -1149,68 +875,64 @@ LBB0_224: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a24018c // bic x12, x12, x4 - WORD $0x9200e18d // and x13, x12, #0x1111111111111111 - WORD $0x9203e190 // and x16, x12, #0x2222222222222222 - WORD $0x9202e191 // and x17, x12, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xb200e3fc // mov x28, #1229782938247303441 - WORD $0x9b1c7da2 // mul x2, x13, x28 - WORD $0xb201e3e7 // mov x7, #-8608480567731124088 - WORD $0xf2e11107 // movk x7, #2184, lsl #48 - WORD $0x9b077e04 // mul x4, x16, x7 - WORD $0xca040042 // eor x2, x2, x4 - WORD $0xb202e3e6 // mov x6, #4919131752989213764 - WORD $0xf2e08886 // movk x6, #1092, lsl #48 - WORD $0x9b067e24 // mul x4, x17, x6 - WORD $0xb203e3e5 // mov x5, #2459565876494606882 - WORD $0xf2e04445 // movk x5, #546, lsl #48 - WORD $0x9b057d85 // mul x5, x12, x5 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0xca040042 // eor x2, x2, x4 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3a01ce // bic x14, x14, x26 + WORD $0x9200e1cf // and x15, x14, #0x1111111111111111 + WORD $0x9203e1d0 // and x16, x14, #0x2222222222222222 + WORD $0x9202e1d1 // and x17, x14, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0x9b047de2 // mul x2, x15, x4 + WORD $0x9b1c7e06 // mul x6, x16, x28 + WORD $0xca060042 // eor x2, x2, x6 + WORD $0x9b077e26 // mul x6, x17, x7 + WORD $0xb202e3e5 // mov x5, #4919131752989213764 + WORD $0xf2e08885 // movk x5, #1092, lsl #48 + WORD $0x9b1b7dc7 // mul x7, x14, x27 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca060042 // eor x2, x2, x6 WORD $0xb203e3fe // mov lr, #2459565876494606882 - WORD $0x9b1e7da4 // mul x4, x13, lr - WORD $0x9b1c7e05 // mul x5, x16, x28 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0x9b077e25 // mul x5, x17, x7 - WORD $0x9b067d86 // mul x6, x12, x6 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0x9b157da5 // mul x5, x13, x21 - WORD $0x9b1e7e06 // mul x6, x16, lr - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b1c7e26 // mul x6, x17, x28 - WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0x9b1e7de6 // mul x6, x15, lr + WORD $0x9b047e07 // mul x7, x16, x4 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0x9b1c7e27 // mul x7, x17, x28 + WORD $0x9b057dda // mul x26, x14, x5 + WORD $0xca1a00e7 // eor x7, x7, x26 WORD $0xca0700c6 // eor x6, x6, x7 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b097dad // mul x13, x13, x9 - WORD $0x9b157e10 // mul x16, x16, x21 - WORD $0xca1001ad // eor x13, x13, x16 + WORD $0xb202e3e5 // mov x5, #4919131752989213764 + WORD $0x9b057de7 // mul x7, x15, x5 + WORD $0x9b1e7e1a // mul x26, x16, lr + WORD $0xca1a00e7 // eor x7, x7, x26 + WORD $0x9b047e3a // mul x26, x17, x4 + WORD $0x9b1c7ddb // mul x27, x14, x28 + WORD $0xca1b035a // eor x26, x26, x27 + WORD $0xca1a00e7 // eor x7, x7, x26 + WORD $0x9b167def // mul x15, x15, x22 + WORD $0x9b057e10 // mul x16, x16, x5 + WORD $0xca1001ef // eor x15, x15, x16 WORD $0x9b1e7e30 // mul x16, x17, lr - WORD $0x9b1c7d8c // mul x12, x12, x28 - WORD $0xca0c020c // eor x12, x16, x12 - WORD $0xca0c01ac // eor x12, x13, x12 - WORD $0x9200e04d // and x13, x2, #0x1111111111111111 - WORD $0x9203e090 // and x16, x4, #0x2222222222222222 - WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xaa1001ad // orr x13, x13, x16 - WORD $0xaa0c022c // orr x12, x17, x12 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xca1b0185 // eor x5, x12, x27 + WORD $0x9b047dce // mul x14, x14, x4 + WORD $0xca0e020e // eor x14, x16, x14 + WORD $0xca0e01ee // eor x14, x15, x14 + WORD $0x9200e04f // and x15, x2, #0x1111111111111111 + WORD $0x9203e0d0 // and x16, x6, #0x2222222222222222 + WORD $0x9202e0f1 // and x17, x7, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0xaa1001ef // orr x15, x15, x16 + WORD $0xaa0e022e // orr x14, x17, x14 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xca1901d9 // eor x25, x14, x25 WORD $0x6e318ed7 // cmeq.16b v23, v22, v17 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e318eb7 // cmeq.16b v23, v21, v17 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e318e97 // cmeq.16b v23, v20, v17 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -1223,20 +945,20 @@ LBB0_224: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a25019c // bic x28, x12, x5 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3901da // bic x26, x14, x25 WORD $0x6e328ed6 // cmeq.16b v22, v22, v18 WORD $0x4e211ed6 // and.16b v22, v22, v1 WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602cc // fmov w12, s22 + WORD $0x1e2602ce // fmov w14, s22 WORD $0x6e328eb5 // cmeq.16b v21, v21, v18 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ad // fmov w13, s21 + WORD $0x1e2602af // fmov w15, s21 WORD $0x6e328e94 // cmeq.16b v20, v20, v18 WORD $0x4e211e94 // and.16b v20, v20, v1 WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 @@ -1249,202 +971,256 @@ LBB0_224: WORD $0x1e260271 // fmov w17, s19 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xea250184 // bics x4, x12, x5 - WORD $0x54ffe9e0 // b.eq LBB0_219 $-708(%rip) -LBB0_225: - WORD $0xd1000490 // sub x16, x4, #1 - WORD $0x8a1c020c // and x12, x16, x28 - WORD $0x9e670193 // fmov d19, x12 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xea3901db // bics x27, x14, x25 + WORD $0x54ffe9a0 // b.eq LBB0_174 $-716(%rip) +LBB0_180: + WORD $0xd1000762 // sub x2, x27, #1 + WORD $0x8a1a004e // and x14, x2, x26 + WORD $0x9e6701d3 // fmov d19, x14 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b08018c // add x12, x12, x8 - WORD $0xeb17019f // cmp x12, x23 - WORD $0x54002f89 // b.ls LBB0_282 $1520(%rip) - WORD $0x910006f7 // add x23, x23, #1 - WORD $0xea040204 // ands x4, x16, x4 - WORD $0x54fffea1 // b.ne LBB0_225 $-44(%rip) - WORD $0x17ffff42 // b LBB0_219 $-760(%rip) -LBB0_227: - WORD $0xf100035f // cmp x26, #0 - WORD $0x54003a6d // b.le LBB0_305 $1868(%rip) + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1401ce // add x14, x14, x20 + WORD $0xeb1501df // cmp x14, x21 + WORD $0x54003589 // b.ls LBB0_244 $1712(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xea1b005b // ands x27, x2, x27 + WORD $0x54fffea1 // b.ne LBB0_180 $-44(%rip) + WORD $0x17ffff40 // b LBB0_174 $-768(%rip) +LBB0_182: + WORD $0xf100031f // cmp x24, #0 + WORD $0x54005ccd // b.le LBB0_306 $2968(%rip) WORD $0xad0243f0 // stp q16, q16, [sp, #64] WORD $0xad0143f0 // stp q16, q16, [sp, #32] - WORD $0x92402e6c // and x12, x19, #0xfff - WORD $0xf13f059f // cmp x12, #4033 - WORD $0x54000363 // b.lo LBB0_239 $108(%rip) - WORD $0xf1008354 // subs x20, x26, #32 - WORD $0x540000a3 // b.lo LBB0_231 $20(%rip) + WORD $0x92402e68 // and x8, x19, #0xfff + WORD $0xf13f051f // cmp x8, #4033 + WORD $0x54000363 // b.lo LBB0_194 $108(%rip) + WORD $0xf100831a // subs x26, x24, #32 + WORD $0x540000a3 // b.lo LBB0_186 $20(%rip) WORD $0xacc15273 // ldp q19, q20, [x19], #32 WORD $0xad0153f3 // stp q19, q20, [sp, #32] - WORD $0xf9400fe5 // ldr x5, [sp, #24] - WORD $0x14000003 // b LBB0_232 $12(%rip) -LBB0_231: - WORD $0x910083e5 // add x5, sp, #32 - WORD $0xaa1a03f4 // mov x20, x26 -LBB0_232: - WORD $0xf1004290 // subs x16, x20, #16 - WORD $0x540002c3 // b.lo LBB0_240 $88(%rip) + WORD $0xaa0b03e8 // mov x8, x11 + WORD $0x14000003 // b LBB0_187 $12(%rip) +LBB0_186: + WORD $0x910083e8 // add x8, sp, #32 + WORD $0xaa1803fa // mov x26, x24 +LBB0_187: + WORD $0xf1004342 // subs x2, x26, #16 + WORD $0x54000303 // b.lo LBB0_195 $96(%rip) WORD $0x3cc10673 // ldr q19, [x19], #16 - WORD $0x3c8104b3 // str q19, [x5], #16 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1002210 // subs x16, x16, #8 - WORD $0x54000262 // b.hs LBB0_241 $76(%rip) -LBB0_234: - WORD $0xf1001290 // subs x16, x20, #4 - WORD $0x540002c3 // b.lo LBB0_242 $88(%rip) -LBB0_235: - WORD $0xb840466c // ldr w12, [x19], #4 - WORD $0xb80044ac // str w12, [x5], #4 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1000a10 // subs x16, x16, #2 - WORD $0x54000262 // b.hs LBB0_243 $76(%rip) -LBB0_236: - WORD $0xb4000074 // cbz x20, LBB0_238 $12(%rip) -LBB0_237: - WORD $0x3940026c // ldrb w12, [x19] - WORD $0x390000ac // strb w12, [x5] -LBB0_238: + WORD $0x3c810513 // str q19, [x8], #16 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xf1002042 // subs x2, x2, #8 + WORD $0x540002a2 // b.hs LBB0_196 $84(%rip) +LBB0_189: + WORD $0xf1001342 // subs x2, x26, #4 + WORD $0x54000303 // b.lo LBB0_197 $96(%rip) +LBB0_190: + WORD $0xb840466e // ldr w14, [x19], #4 + WORD $0xb800450e // str w14, [x8], #4 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xf1000842 // subs x2, x2, #2 + WORD $0x540002a2 // b.hs LBB0_198 $84(%rip) +LBB0_191: + WORD $0xb400007a // cbz x26, LBB0_193 $12(%rip) +LBB0_192: + WORD $0x3940026e // ldrb w14, [x19] + WORD $0x3900010e // strb w14, [x8] +LBB0_193: WORD $0x910083f3 // add x19, sp, #32 -LBB0_239: - WORD $0xb202e3f5 // mov x21, #4919131752989213764 - WORD $0xb201e3e9 // mov x9, #-8608480567731124088 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0xf94007e3 // ldr x3, [sp, #8] - WORD $0x17ffff26 // b LBB0_221 $-872(%rip) -LBB0_240: - WORD $0xf1002290 // subs x16, x20, #8 - WORD $0x54fffde3 // b.lo LBB0_234 $-68(%rip) -LBB0_241: - WORD $0xf840866c // ldr x12, [x19], #8 - WORD $0xf80084ac // str x12, [x5], #8 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1001210 // subs x16, x16, #4 - WORD $0x54fffd82 // b.hs LBB0_235 $-80(%rip) -LBB0_242: - WORD $0xf1000a90 // subs x16, x20, #2 - WORD $0x54fffde3 // b.lo LBB0_236 $-68(%rip) -LBB0_243: - WORD $0x7840266c // ldrh w12, [x19], #2 - WORD $0x780024ac // strh w12, [x5], #2 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xb5fffd90 // cbnz x16, LBB0_237 $-80(%rip) - WORD $0x17ffffed // b LBB0_238 $-76(%rip) -LBB0_244: - WORD $0x910012e8 // add x8, x23, #4 -LBB0_245: - WORD $0xf940040c // ldr x12, [x0, #8] - WORD $0xeb0c011f // cmp x8, x12 - WORD $0x54ffd8e8 // b.hi LBB0_197 $-1252(%rip) - WORD $0xf9000028 // str x8, [x1] - WORD $0xaa0803f3 // mov x19, x8 - WORD $0x17fffec4 // b LBB0_197 $-1264(%rip) -LBB0_247: - WORD $0xf9400410 // ldr x16, [x0, #8] - WORD $0xcb130208 // sub x8, x16, x19 - WORD $0xf100811f // cmp x8, #32 - WORD $0x54002a0b // b.lt LBB0_287 $1344(%rip) - WORD $0xd2800008 // mov x8, #0 - WORD $0xd280001a // mov x26, #0 - WORD $0x8b1702d9 // add x25, x22, x23 - WORD $0xcb170205 // sub x5, x16, x23 - WORD $0x528003fb // mov w27, #31 -LBB0_249: - WORD $0x8b08032c // add x12, x25, x8 - WORD $0x3cc01193 // ldur q19, [x12, #1] - WORD $0x3cc11194 // ldur q20, [x12, #17] +LBB0_194: + WORD $0x529fffe8 // mov w8, #65535 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17ffff23 // b LBB0_176 $-884(%rip) +LBB0_195: + WORD $0xf1002342 // subs x2, x26, #8 + WORD $0x54fffda3 // b.lo LBB0_189 $-76(%rip) +LBB0_196: + WORD $0xf840866e // ldr x14, [x19], #8 + WORD $0xf800850e // str x14, [x8], #8 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xf1001042 // subs x2, x2, #4 + WORD $0x54fffd42 // b.hs LBB0_190 $-88(%rip) +LBB0_197: + WORD $0xf1000b42 // subs x2, x26, #2 + WORD $0x54fffda3 // b.lo LBB0_191 $-76(%rip) +LBB0_198: + WORD $0x7840266e // ldrh w14, [x19], #2 + WORD $0x7800250e // strh w14, [x8], #2 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xb5fffd42 // cbnz x2, LBB0_192 $-88(%rip) + WORD $0x17ffffeb // b LBB0_193 $-84(%rip) +LBB0_199: + WORD $0x8b190270 // add x16, x19, x25 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0x1400000b // b LBB0_204 $44(%rip) +LBB0_200: + WORD $0x91001282 // add x2, x20, #4 +LBB0_201: + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xeb0e005f // cmp x2, x14 + WORD $0x54ffd7e8 // b.hi LBB0_152 $-1284(%rip) + WORD $0xf9000022 // str x2, [x1] + WORD $0xaa0203f6 // mov x22, x2 + WORD $0x17fffebc // b LBB0_152 $-1296(%rip) +LBB0_203: + WORD $0xd2800017 // mov x23, #0 + WORD $0x9280001a // mov x26, #-1 + WORD $0xaa1403f0 // mov x16, x20 +LBB0_204: + WORD $0xf1008379 // subs x25, x27, #32 + WORD $0x54004b03 // b.lo LBB0_289 $2400(%rip) + WORD $0xad405213 // ldp q19, q20, [x16] + WORD $0x6e208e75 // cmeq.16b v21, v19, v0 + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e238e73 // cmeq.16b v19, v19, v3 + WORD $0x6e238e94 // cmeq.16b v20, v20, v3 + WORD $0x4e211eb5 // and.16b v21, v21, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602bb // fmov w27, s21 + WORD $0x4e211ed5 // and.16b v21, v22, v1 + WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602ae // fmov w14, s21 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26027e // fmov w30, s19 + WORD $0x4e211e93 // and.16b v19, v20, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e26026f // fmov w15, s19 + WORD $0x33103ddb // bfi w27, w14, #16, #16 + WORD $0x33103dfe // bfi w30, w15, #16, #16 + WORD $0x3500485e // cbnz w30, LBB0_290 $2312(%rip) + WORD $0xb50048f7 // cbnz x23, LBB0_291 $2332(%rip) + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb4004adb // cbz x27, LBB0_292 $2392(%rip) +LBB0_208: + WORD $0xdac0036e // rbit x14, x27 + WORD $0xdac011ce // clz x14, x14 + WORD $0xcb13020f // sub x15, x16, x19 + WORD $0x8b0e01ee // add x14, x15, x14 + WORD $0x910005d7 // add x23, x14, #1 + WORD $0x17fffd6e // b LBB0_61 $-2632(%rip) +LBB0_209: + WORD $0xf9400402 // ldr x2, [x0, #8] + WORD $0xcb160055 // sub x21, x2, x22 + WORD $0xf10082bf // cmp x21, #32 + WORD $0x540045cb // b.lt LBB0_288 $2232(%rip) + WORD $0xd2800015 // mov x21, #0 + WORD $0xd2800019 // mov x25, #0 + WORD $0x8b140278 // add x24, x19, x20 + WORD $0xcb140057 // sub x23, x2, x20 + WORD $0x528003fa // mov w26, #31 +LBB0_211: + WORD $0x8b15030e // add x14, x24, x21 + WORD $0x3cc011d3 // ldur q19, [x14, #1] + WORD $0x3cc111d4 // ldur q20, [x14, #17] WORD $0x6e208e75 // cmeq.16b v21, v19, v0 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x1e2602bb // fmov w27, s21 WORD $0x6e208e95 // cmeq.16b v21, v20, v0 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ac // fmov w12, s21 - WORD $0x33103d84 // bfi w4, w12, #16, #16 + WORD $0x1e2602ae // fmov w14, s21 + WORD $0x33103ddb // bfi w27, w14, #16, #16 WORD $0x6e238e73 // cmeq.16b v19, v19, v3 WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260270 // fmov w16, s19 + WORD $0x1e260262 // fmov w2, s19 WORD $0x6e238e93 // cmeq.16b v19, v20, v3 WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x33103d90 // bfi w16, w12, #16, #16 - WORD $0x7100021f // cmp w16, #0 - WORD $0xfa400b40 // ccmp x26, #0, #0, eq - WORD $0x54000180 // b.eq LBB0_251 $48(%rip) - WORD $0x0a3a020c // bic w12, w16, w26 - WORD $0x2a0c074d // orr w13, w26, w12, lsl #1 - WORD $0x0a1e0210 // and w16, w16, w30 - WORD $0x0a2d0210 // bic w16, w16, w13 - WORD $0x2b0c020c // adds w12, w16, w12 - WORD $0x1a9f37fa // cset w26, hs - WORD $0x4a0c04cc // eor w12, w6, w12, lsl #1 - WORD $0x0a0d018c // and w12, w12, w13 - WORD $0x2a2c03ec // mvn w12, w12 - WORD $0x8a040184 // and x4, x12, x4 - WORD $0x14000002 // b LBB0_252 $8(%rip) -LBB0_251: - WORD $0xd280001a // mov x26, #0 -LBB0_252: - WORD $0xb50022c4 // cbnz x4, LBB0_283 $1112(%rip) - WORD $0x91008108 // add x8, x8, #32 - WORD $0xd100837b // sub x27, x27, #32 - WORD $0x8b1b00ac // add x12, x5, x27 - WORD $0xf100fd9f // cmp x12, #63 - WORD $0x54fffa6c // b.gt LBB0_249 $-180(%rip) - WORD $0xb5002c9a // cbnz x26, LBB0_306 $1424(%rip) - WORD $0x8b1702cc // add x12, x22, x23 - WORD $0x8b08018c // add x12, x12, x8 - WORD $0x91000594 // add x20, x12, #1 - WORD $0xaa2803e8 // mvn x8, x8 - WORD $0x8b050108 // add x8, x8, x5 - WORD $0xf100051f // cmp x8, #1 - WORD $0x54002daa // b.ge LBB0_309 $1460(%rip) - WORD $0x1400017a // b LBB0_314 $1512(%rip) -LBB0_256: - WORD $0xb201e3e9 // mov x9, #-8608480567731124088 - WORD $0xd280001b // mov x27, #0 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x33103dc2 // bfi w2, w14, #16, #16 + WORD $0x7100005f // cmp w2, #0 + WORD $0xfa400b20 // ccmp x25, #0, #0, eq + WORD $0x54000180 // b.eq LBB0_213 $48(%rip) + WORD $0x0a39004e // bic w14, w2, w25 + WORD $0x2a0e072f // orr w15, w25, w14, lsl #1 + WORD $0x0a050050 // and w16, w2, w5 + WORD $0x0a2f0210 // bic w16, w16, w15 + WORD $0x2b0e020e // adds w14, w16, w14 + WORD $0x1a9f37f9 // cset w25, hs + WORD $0x4a0e07ce // eor w14, w30, w14, lsl #1 + WORD $0x0a0f01ce // and w14, w14, w15 + WORD $0x2a2e03ee // mvn w14, w14 + WORD $0x8a1b01db // and x27, x14, x27 + WORD $0x14000002 // b LBB0_214 $8(%rip) +LBB0_213: + WORD $0xd2800019 // mov x25, #0 +LBB0_214: + WORD $0xb500235b // cbnz x27, LBB0_245 $1128(%rip) + WORD $0x910082b5 // add x21, x21, #32 + WORD $0xd100835a // sub x26, x26, #32 + WORD $0x8b1a02ee // add x14, x23, x26 + WORD $0xf100fddf // cmp x14, #63 + WORD $0x54fffa6c // b.gt LBB0_211 $-180(%rip) + WORD $0xb5004959 // cbnz x25, LBB0_307 $2344(%rip) + WORD $0x8b140268 // add x8, x19, x20 + WORD $0x8b150108 // add x8, x8, x21 + WORD $0x91000508 // add x8, x8, #1 + WORD $0xaa3503ee // mvn x14, x21 + WORD $0x8b1701d5 // add x21, x14, x23 + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54004a6a // b.ge LBB0_310 $2380(%rip) + WORD $0x14000260 // b LBB0_315 $2432(%rip) +LBB0_218: WORD $0xd2800019 // mov x25, #0 - WORD $0xd2800008 // mov x8, #0 WORD $0xd2800017 // mov x23, #0 - WORD $0xf940040c // ldr x12, [x0, #8] - WORD $0xcb13019a // sub x26, x12, x19 - WORD $0x8b1302d3 // add x19, x22, x19 - WORD $0x14000009 // b LBB0_258 $36(%rip) -LBB0_257: - WORD $0x937ffcbb // asr x27, x5, #63 - WORD $0x9e670393 // fmov d19, x28 + WORD $0xd2800014 // mov x20, #0 + WORD $0xd2800015 // mov x21, #0 + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xcb1601d8 // sub x24, x14, x22 + WORD $0x8b160273 // add x19, x19, x22 + WORD $0x14000009 // b LBB0_220 $36(%rip) +LBB0_219: + WORD $0x937fff39 // asr x25, x25, #63 + WORD $0x9e670353 // fmov d19, x26 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b080188 // add x8, x12, x8 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1401d4 // add x20, x14, x20 WORD $0x91010273 // add x19, x19, #64 - WORD $0xaa1603fa // mov x26, x22 -LBB0_258: - WORD $0xf1010356 // subs x22, x26, #64 - WORD $0x540016cb // b.lt LBB0_265 $728(%rip) -LBB0_259: + WORD $0xf9400ff8 // ldr x24, [sp, #24] +LBB0_220: + WORD $0xf101030e // subs x14, x24, #64 + WORD $0xf9000fee // str x14, [sp, #24] + WORD $0x540016eb // b.lt LBB0_227 $732(%rip) +LBB0_221: + WORD $0xb201e3f6 // mov x22, #-8608480567731124088 + WORD $0xb203e3fb // mov x27, #2459565876494606882 + WORD $0xf2e0445b // movk x27, #546, lsl #48 WORD $0xad405676 // ldp q22, q21, [x19] WORD $0xad414e74 // ldp q20, q19, [x19, #32] WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e238e97 // cmeq.16b v23, v20, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -1457,35 +1233,35 @@ LBB0_259: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01b0 // orr x16, x13, x12 - WORD $0xaa19020c // orr x12, x16, x25 - WORD $0xb500008c // cbnz x12, LBB0_261 $16(%rip) - WORD $0xd2800019 // mov x25, #0 - WORD $0xd2800004 // mov x4, #0 - WORD $0x1400000a // b LBB0_262 $40(%rip) -LBB0_261: - WORD $0x8a39020c // bic x12, x16, x25 - WORD $0xaa0c072d // orr x13, x25, x12, lsl #1 - WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01e2 // orr x2, x15, x14 + WORD $0xaa17004e // orr x14, x2, x23 + WORD $0xb500008e // cbnz x14, LBB0_223 $16(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0xd280001a // mov x26, #0 + WORD $0x1400000a // b LBB0_224 $40(%rip) +LBB0_223: + WORD $0x8a37004e // bic x14, x2, x23 + WORD $0xaa0e06ef // orr x15, x23, x14, lsl #1 + WORD $0x8a2f0050 // bic x16, x2, x15 WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa - WORD $0xab0c020c // adds x12, x16, x12 - WORD $0x1a9f37f9 // cset w25, hs - WORD $0xd37ff98c // lsl x12, x12, #1 - WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 - WORD $0x8a0d0184 // and x4, x12, x13 -LBB0_262: + WORD $0xab0e020e // adds x14, x16, x14 + WORD $0x1a9f37f7 // cset w23, hs + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0xd200f1ce // eor x14, x14, #0x5555555555555555 + WORD $0x8a0f01da // and x26, x14, x15 +LBB0_224: WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e208e97 // cmeq.16b v23, v20, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -1498,68 +1274,64 @@ LBB0_262: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a24018c // bic x12, x12, x4 - WORD $0x9200e18d // and x13, x12, #0x1111111111111111 - WORD $0x9203e190 // and x16, x12, #0x2222222222222222 - WORD $0x9202e191 // and x17, x12, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xb200e3fc // mov x28, #1229782938247303441 - WORD $0x9b1c7da2 // mul x2, x13, x28 - WORD $0xb201e3e7 // mov x7, #-8608480567731124088 - WORD $0xf2e11107 // movk x7, #2184, lsl #48 - WORD $0x9b077e04 // mul x4, x16, x7 - WORD $0xca040042 // eor x2, x2, x4 - WORD $0xb202e3e6 // mov x6, #4919131752989213764 - WORD $0xf2e08886 // movk x6, #1092, lsl #48 - WORD $0x9b067e24 // mul x4, x17, x6 - WORD $0xb203e3e5 // mov x5, #2459565876494606882 - WORD $0xf2e04445 // movk x5, #546, lsl #48 - WORD $0x9b057d85 // mul x5, x12, x5 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0xca040042 // eor x2, x2, x4 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3a01ce // bic x14, x14, x26 + WORD $0x9200e1cf // and x15, x14, #0x1111111111111111 + WORD $0x9203e1d0 // and x16, x14, #0x2222222222222222 + WORD $0x9202e1d1 // and x17, x14, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0x9b047de2 // mul x2, x15, x4 + WORD $0x9b1c7e06 // mul x6, x16, x28 + WORD $0xca060042 // eor x2, x2, x6 + WORD $0x9b077e26 // mul x6, x17, x7 + WORD $0xb202e3e5 // mov x5, #4919131752989213764 + WORD $0xf2e08885 // movk x5, #1092, lsl #48 + WORD $0x9b1b7dc7 // mul x7, x14, x27 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca060042 // eor x2, x2, x6 WORD $0xb203e3fe // mov lr, #2459565876494606882 - WORD $0x9b1e7da4 // mul x4, x13, lr - WORD $0x9b1c7e05 // mul x5, x16, x28 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0x9b077e25 // mul x5, x17, x7 - WORD $0x9b067d86 // mul x6, x12, x6 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0x9b157da5 // mul x5, x13, x21 - WORD $0x9b1e7e06 // mul x6, x16, lr - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b1c7e26 // mul x6, x17, x28 - WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0x9b1e7de6 // mul x6, x15, lr + WORD $0x9b047e07 // mul x7, x16, x4 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0x9b1c7e27 // mul x7, x17, x28 + WORD $0x9b057dda // mul x26, x14, x5 + WORD $0xca1a00e7 // eor x7, x7, x26 WORD $0xca0700c6 // eor x6, x6, x7 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b097dad // mul x13, x13, x9 - WORD $0x9b157e10 // mul x16, x16, x21 - WORD $0xca1001ad // eor x13, x13, x16 + WORD $0xb202e3e5 // mov x5, #4919131752989213764 + WORD $0x9b057de7 // mul x7, x15, x5 + WORD $0x9b1e7e1a // mul x26, x16, lr + WORD $0xca1a00e7 // eor x7, x7, x26 + WORD $0x9b047e3a // mul x26, x17, x4 + WORD $0x9b1c7ddb // mul x27, x14, x28 + WORD $0xca1b035a // eor x26, x26, x27 + WORD $0xca1a00e7 // eor x7, x7, x26 + WORD $0x9b167def // mul x15, x15, x22 + WORD $0x9b057e10 // mul x16, x16, x5 + WORD $0xca1001ef // eor x15, x15, x16 WORD $0x9b1e7e30 // mul x16, x17, lr - WORD $0x9b1c7d8c // mul x12, x12, x28 - WORD $0xca0c020c // eor x12, x16, x12 - WORD $0xca0c01ac // eor x12, x13, x12 - WORD $0x9200e04d // and x13, x2, #0x1111111111111111 - WORD $0x9203e090 // and x16, x4, #0x2222222222222222 - WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xaa1001ad // orr x13, x13, x16 - WORD $0xaa0c022c // orr x12, x17, x12 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xca1b0185 // eor x5, x12, x27 + WORD $0x9b047dce // mul x14, x14, x4 + WORD $0xca0e020e // eor x14, x16, x14 + WORD $0xca0e01ee // eor x14, x15, x14 + WORD $0x9200e04f // and x15, x2, #0x1111111111111111 + WORD $0x9203e0d0 // and x16, x6, #0x2222222222222222 + WORD $0x9202e0f1 // and x17, x7, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0xaa1001ef // orr x15, x15, x16 + WORD $0xaa0e022e // orr x14, x17, x14 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xca1901d9 // eor x25, x14, x25 WORD $0x6e278ed7 // cmeq.16b v23, v22, v7 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e278eb7 // cmeq.16b v23, v21, v7 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e278e97 // cmeq.16b v23, v20, v7 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -1572,20 +1344,20 @@ LBB0_262: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a25019c // bic x28, x12, x5 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3901da // bic x26, x14, x25 WORD $0x6e268ed6 // cmeq.16b v22, v22, v6 WORD $0x4e211ed6 // and.16b v22, v22, v1 WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602cc // fmov w12, s22 + WORD $0x1e2602ce // fmov w14, s22 WORD $0x6e268eb5 // cmeq.16b v21, v21, v6 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ad // fmov w13, s21 + WORD $0x1e2602af // fmov w15, s21 WORD $0x6e268e94 // cmeq.16b v20, v20, v6 WORD $0x4e211e94 // and.16b v20, v20, v1 WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 @@ -1598,417 +1370,663 @@ LBB0_262: WORD $0x1e260271 // fmov w17, s19 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xea250184 // bics x4, x12, x5 - WORD $0x54ffe9e0 // b.eq LBB0_257 $-708(%rip) -LBB0_263: - WORD $0xd1000490 // sub x16, x4, #1 - WORD $0x8a1c020c // and x12, x16, x28 - WORD $0x9e670193 // fmov d19, x12 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xea3901db // bics x27, x14, x25 + WORD $0x54ffe9a0 // b.eq LBB0_219 $-716(%rip) +LBB0_225: + WORD $0xd1000762 // sub x2, x27, #1 + WORD $0x8a1a004e // and x14, x2, x26 + WORD $0x9e6701d3 // fmov d19, x14 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b08018c // add x12, x12, x8 - WORD $0xeb17019f // cmp x12, x23 - WORD $0x54000729 // b.ls LBB0_282 $228(%rip) - WORD $0x910006f7 // add x23, x23, #1 - WORD $0xea040204 // ands x4, x16, x4 - WORD $0x54fffea1 // b.ne LBB0_263 $-44(%rip) - WORD $0x17ffff42 // b LBB0_257 $-760(%rip) -LBB0_265: - WORD $0xf100035f // cmp x26, #0 - WORD $0x5400120d // b.le LBB0_305 $576(%rip) + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1401ce // add x14, x14, x20 + WORD $0xeb1501df // cmp x14, x21 + WORD $0x54000769 // b.ls LBB0_244 $236(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xea1b005b // ands x27, x2, x27 + WORD $0x54fffea1 // b.ne LBB0_225 $-44(%rip) + WORD $0x17ffff40 // b LBB0_219 $-768(%rip) +LBB0_227: + WORD $0xf100031f // cmp x24, #0 + WORD $0x54002ead // b.le LBB0_306 $1492(%rip) WORD $0xad0243f0 // stp q16, q16, [sp, #64] WORD $0xad0143f0 // stp q16, q16, [sp, #32] - WORD $0x92402e6c // and x12, x19, #0xfff - WORD $0xf13f059f // cmp x12, #4033 - WORD $0x54000363 // b.lo LBB0_277 $108(%rip) - WORD $0xf1008354 // subs x20, x26, #32 - WORD $0x540000a3 // b.lo LBB0_269 $20(%rip) + WORD $0x92402e68 // and x8, x19, #0xfff + WORD $0xf13f051f // cmp x8, #4033 + WORD $0x54000363 // b.lo LBB0_239 $108(%rip) + WORD $0xf100831a // subs x26, x24, #32 + WORD $0x540000a3 // b.lo LBB0_231 $20(%rip) WORD $0xacc15273 // ldp q19, q20, [x19], #32 WORD $0xad0153f3 // stp q19, q20, [sp, #32] - WORD $0xf9400fe5 // ldr x5, [sp, #24] - WORD $0x14000003 // b LBB0_270 $12(%rip) -LBB0_269: - WORD $0x910083e5 // add x5, sp, #32 - WORD $0xaa1a03f4 // mov x20, x26 -LBB0_270: - WORD $0xf1004290 // subs x16, x20, #16 - WORD $0x540002c3 // b.lo LBB0_278 $88(%rip) + WORD $0xaa0b03e8 // mov x8, x11 + WORD $0x14000003 // b LBB0_232 $12(%rip) +LBB0_231: + WORD $0x910083e8 // add x8, sp, #32 + WORD $0xaa1803fa // mov x26, x24 +LBB0_232: + WORD $0xf1004342 // subs x2, x26, #16 + WORD $0x54000303 // b.lo LBB0_240 $96(%rip) WORD $0x3cc10673 // ldr q19, [x19], #16 - WORD $0x3c8104b3 // str q19, [x5], #16 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1002210 // subs x16, x16, #8 - WORD $0x54000262 // b.hs LBB0_279 $76(%rip) -LBB0_272: - WORD $0xf1001290 // subs x16, x20, #4 - WORD $0x540002c3 // b.lo LBB0_280 $88(%rip) + WORD $0x3c810513 // str q19, [x8], #16 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xf1002042 // subs x2, x2, #8 + WORD $0x540002a2 // b.hs LBB0_241 $84(%rip) +LBB0_234: + WORD $0xf1001342 // subs x2, x26, #4 + WORD $0x54000303 // b.lo LBB0_242 $96(%rip) +LBB0_235: + WORD $0xb840466e // ldr w14, [x19], #4 + WORD $0xb800450e // str w14, [x8], #4 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xf1000842 // subs x2, x2, #2 + WORD $0x540002a2 // b.hs LBB0_243 $84(%rip) +LBB0_236: + WORD $0xb400007a // cbz x26, LBB0_238 $12(%rip) +LBB0_237: + WORD $0x3940026e // ldrb w14, [x19] + WORD $0x3900010e // strb w14, [x8] +LBB0_238: + WORD $0x910083f3 // add x19, sp, #32 +LBB0_239: + WORD $0x529fffe8 // mov w8, #65535 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17ffff23 // b LBB0_221 $-884(%rip) +LBB0_240: + WORD $0xf1002342 // subs x2, x26, #8 + WORD $0x54fffda3 // b.lo LBB0_234 $-76(%rip) +LBB0_241: + WORD $0xf840866e // ldr x14, [x19], #8 + WORD $0xf800850e // str x14, [x8], #8 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xf1001042 // subs x2, x2, #4 + WORD $0x54fffd42 // b.hs LBB0_235 $-88(%rip) +LBB0_242: + WORD $0xf1000b42 // subs x2, x26, #2 + WORD $0x54fffda3 // b.lo LBB0_236 $-76(%rip) +LBB0_243: + WORD $0x7840266e // ldrh w14, [x19], #2 + WORD $0x7800250e // strh w14, [x8], #2 + WORD $0xaa0203fa // mov x26, x2 + WORD $0xb5fffd42 // cbnz x2, LBB0_237 $-88(%rip) + WORD $0x17ffffeb // b LBB0_238 $-84(%rip) +LBB0_244: + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xdac0036f // rbit x15, x27 + WORD $0xdac011ef // clz x15, x15 + WORD $0xcb1801ef // sub x15, x15, x24 + WORD $0x8b0e01ee // add x14, x15, x14 + WORD $0x910005cf // add x15, x14, #1 + WORD $0xf900002f // str x15, [x1] + WORD $0xf9400410 // ldr x16, [x0, #8] + WORD $0xeb1001ff // cmp x15, x16 + WORD $0x9a8e2616 // csinc x22, x16, x14, hs + WORD $0xf9000036 // str x22, [x1] + WORD $0x17fffd4a // b LBB0_152 $-2776(%rip) +LBB0_245: + WORD $0xdac0036e // rbit x14, x27 + WORD $0xdac011ce // clz x14, x14 + WORD $0x8b15028f // add x15, x20, x21 + WORD $0x8b0f01ce // add x14, x14, x15 + WORD $0x910009d6 // add x22, x14, #2 +LBB0_246: + WORD $0xf9000036 // str x22, [x1] + WORD $0x17fffd43 // b LBB0_152 $-2804(%rip) +LBB0_247: + WORD $0x5284801a // mov w26, #9216 + WORD $0x72bf941a // movk w26, #64672, lsl #16 + WORD $0xf90013ff // str xzr, [sp, #32] + WORD $0x8b170268 // add x8, x19, x23 + WORD $0xd1000515 // sub x21, x8, #1 + WORD $0x8b1802d9 // add x25, x22, x24 + WORD $0xeb15029f // cmp x20, x21 + WORD $0x54001942 // b.hs LBB0_285 $808(%rip) + WORD $0xf100071f // cmp x24, #1 + WORD $0x5400190b // b.lt LBB0_285 $800(%rip) +LBB0_249: + WORD $0x39400288 // ldrb w8, [x20] + WORD $0x7101711f // cmp w8, #92 + WORD $0x540001e1 // b.ne LBB0_254 $60(%rip) + WORD $0xcb1402bb // sub x27, x21, x20 + WORD $0xf100077f // cmp x27, #1 + WORD $0x5401becb // b.lt LBB0_937 $14296(%rip) + WORD $0x39400688 // ldrb w8, [x20, #1] +Lloh16: + WORD $0x1001c4ee // adr x14, __UnquoteTab $14492(%rip) +Lloh17: + WORD $0x910001ce // add x14, x14, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x386869c8 // ldrb w8, [x14, x8] + WORD $0x7103fd1f // cmp w8, #255 + WORD $0x54000180 // b.eq LBB0_256 $48(%rip) + WORD $0x3401bd68 // cbz w8, LBB0_935 $14252(%rip) + WORD $0x390083e8 // strb w8, [sp, #32] + WORD $0x91000a94 // add x20, x20, #2 + WORD $0x52800028 // mov w8, #1 + WORD $0x14000049 // b LBB0_265 $292(%rip) +LBB0_254: + WORD $0x394002ce // ldrb w14, [x22] + WORD $0x6b0e011f // cmp w8, w14 + WORD $0x54001801 // b.ne LBB0_287 $768(%rip) + WORD $0x91000694 // add x20, x20, #1 + WORD $0x910006d6 // add x22, x22, #1 + WORD $0x14000054 // b LBB0_271 $336(%rip) +LBB0_256: + WORD $0xf100137f // cmp x27, #4 + WORD $0x5401bc43 // b.lo LBB0_936 $14216(%rip) + WORD $0xb8402288 // ldur w8, [x20, #2] + WORD $0x5299fa0e // mov w14, #53200 + WORD $0x72b9f9ee // movk w14, #53199, lsl #16 + WORD $0x0b0e010e // add w14, w8, w14 + WORD $0x3201c3ef // mov w15, #-2139062144 + WORD $0x0a2801f8 // bic w24, w15, w8 + WORD $0x6a0e031f // tst w24, w14 + WORD $0x5401ba81 // b.ne LBB0_933 $14160(%rip) + WORD $0x5283232e // mov w14, #6425 + WORD $0x72a3232e // movk w14, #6425, lsl #16 + WORD $0x0b0e010e // add w14, w8, w14 + WORD $0x2a0801ce // orr w14, w14, w8 + WORD $0x3201c3f0 // mov w16, #-2139062144 + WORD $0x6a0f01df // tst w14, w15 + WORD $0x5401b9a1 // b.ne LBB0_933 $14132(%rip) + WORD $0x3200dbee // mov w14, #2139062143 + WORD $0x0a0e0102 // and w2, w8, w14 + WORD $0x3202c7ee // mov w14, #-1061109568 + WORD $0x4b0201ce // sub w14, w14, w2 + WORD $0x5288c8cf // mov w15, #17990 + WORD $0x72a8c8cf // movk w15, #17990, lsl #16 + WORD $0x0b0f004f // add w15, w2, w15 + WORD $0x0a0e01ee // and w14, w15, w14 + WORD $0x6a1801df // tst w14, w24 + WORD $0x5401b861 // b.ne LBB0_933 $14092(%rip) + WORD $0x3203cbee // mov w14, #-522133280 + WORD $0x4b0201ce // sub w14, w14, w2 + WORD $0x5287272f // mov w15, #14649 + WORD $0x72a7272f // movk w15, #14649, lsl #16 + WORD $0x0b0f004f // add w15, w2, w15 + WORD $0x0a0e01ee // and w14, w15, w14 + WORD $0x6a1801df // tst w14, w24 + WORD $0x5401b761 // b.ne LBB0_933 $14060(%rip) + WORD $0x5ac00908 // rev w8, w8 + WORD $0x3200c3ee // mov w14, #16843009 + WORD $0x0a6811ce // bic w14, w14, w8, lsr #4 + WORD $0x0b0e0dce // add w14, w14, w14, lsl #3 + WORD $0x3200cfef // mov w15, #252645135 + WORD $0x0a0f0108 // and w8, w8, w15 + WORD $0x0b0801c8 // add w8, w14, w8 + WORD $0x2a481108 // orr w8, w8, w8, lsr #4 + WORD $0x53087d0e // lsr w14, w8, #8 + WORD $0x12181dc2 // and w2, w14, #0xff00 + WORD $0xaa0203f8 // mov x24, x2 + WORD $0x33001d18 // bfxil w24, w8, #0, #8 + WORD $0x91001a9c // add x28, x20, #6 + WORD $0x7101ff1f // cmp w24, #127 + WORD $0x540004e9 // b.ls LBB0_273 $156(%rip) + WORD $0x711fff1f // cmp w24, #2047 + WORD $0x54000529 // b.ls LBB0_274 $164(%rip) + WORD $0x5140384e // sub w14, w2, #14, lsl #12 + WORD $0x312005df // cmn w14, #2049 + WORD $0x540005e8 // b.hi LBB0_275 $188(%rip) + WORD $0x530c7c4e // lsr w14, w2, #12 + WORD $0x321b09ce // orr w14, w14, #0xe0 + WORD $0x390083ee // strb w14, [sp, #32] + WORD $0x5280100e // mov w14, #128 + WORD $0x33062f0e // bfxil w14, w24, #6, #6 + WORD $0x390087ee // strb w14, [sp, #33] + WORD $0x5280100e // mov w14, #128 + WORD $0x3300150e // bfxil w14, w8, #0, #6 + WORD $0x39008bee // strb w14, [sp, #34] + WORD $0xaa1c03f4 // mov x20, x28 + WORD $0x52800068 // mov w8, #3 +LBB0_265: + WORD $0x910083f8 // add x24, sp, #32 + WORD $0xaa080308 // orr x8, x24, x8 + WORD $0xeb1902df // cmp x22, x25 + WORD $0x54000182 // b.hs LBB0_270 $48(%rip) + WORD $0x910083f8 // add x24, sp, #32 +LBB0_267: + WORD $0x394002ce // ldrb w14, [x22] + WORD $0x3940030f // ldrb w15, [x24] + WORD $0x6b0f01df // cmp w14, w15 + WORD $0x540000e1 // b.ne LBB0_270 $28(%rip) + WORD $0x910006d6 // add x22, x22, #1 + WORD $0x91000718 // add x24, x24, #1 + WORD $0xeb1902df // cmp x22, x25 + WORD $0x54000062 // b.hs LBB0_270 $12(%rip) + WORD $0xeb08031f // cmp x24, x8 + WORD $0x54fffee3 // b.lo LBB0_267 $-36(%rip) +LBB0_270: + WORD $0xeb08031f // cmp x24, x8 + WORD $0x54000d41 // b.ne LBB0_287 $424(%rip) +LBB0_271: + WORD $0xeb15029f // cmp x20, x21 + WORD $0x54000b82 // b.hs LBB0_285 $368(%rip) + WORD $0xeb1902df // cmp x22, x25 + WORD $0x54fff263 // b.lo LBB0_249 $-436(%rip) + WORD $0x14000059 // b LBB0_285 $356(%rip) LBB0_273: - WORD $0xb840466c // ldr w12, [x19], #4 - WORD $0xb80044ac // str w12, [x5], #4 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1000a10 // subs x16, x16, #2 - WORD $0x54000262 // b.hs LBB0_281 $76(%rip) + WORD $0x390083e8 // strb w8, [sp, #32] + WORD $0xaa1c03f4 // mov x20, x28 + WORD $0x52800028 // mov w8, #1 + WORD $0x17ffffe7 // b LBB0_265 $-100(%rip) LBB0_274: - WORD $0xb4000074 // cbz x20, LBB0_276 $12(%rip) + WORD $0x53067f0e // lsr w14, w24, #6 + WORD $0x321a05ce // orr w14, w14, #0xc0 + WORD $0x390083ee // strb w14, [sp, #32] + WORD $0x5280100e // mov w14, #128 + WORD $0x3300150e // bfxil w14, w8, #0, #6 + WORD $0x390087ee // strb w14, [sp, #33] + WORD $0xaa1c03f4 // mov x20, x28 + WORD $0x52800048 // mov w8, #2 + WORD $0x17ffffde // b LBB0_265 $-136(%rip) LBB0_275: - WORD $0x3940026c // ldrb w12, [x19] - WORD $0x390000ac // strb w12, [x5] -LBB0_276: - WORD $0x910083f3 // add x19, sp, #32 -LBB0_277: - WORD $0xb202e3f5 // mov x21, #4919131752989213764 - WORD $0xb201e3e9 // mov x9, #-8608480567731124088 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0xf94007e3 // ldr x3, [sp, #8] - WORD $0x17ffff26 // b LBB0_259 $-872(%rip) -LBB0_278: - WORD $0xf1002290 // subs x16, x20, #8 - WORD $0x54fffde3 // b.lo LBB0_272 $-68(%rip) -LBB0_279: - WORD $0xf840866c // ldr x12, [x19], #8 - WORD $0xf80084ac // str x12, [x5], #8 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1001210 // subs x16, x16, #4 - WORD $0x54fffd82 // b.hs LBB0_273 $-80(%rip) -LBB0_280: - WORD $0xf1000a90 // subs x16, x20, #2 - WORD $0x54fffde3 // b.lo LBB0_274 $-68(%rip) -LBB0_281: - WORD $0x7840266c // ldrh w12, [x19], #2 - WORD $0x780024ac // strh w12, [x5], #2 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xb5fffd90 // cbnz x16, LBB0_275 $-80(%rip) - WORD $0x17ffffed // b LBB0_276 $-76(%rip) -LBB0_282: - WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xdac0008c // rbit x12, x4 - WORD $0xdac0118c // clz x12, x12 - WORD $0xcb1a018c // sub x12, x12, x26 - WORD $0x8b080188 // add x8, x12, x8 - WORD $0x9100050c // add x12, x8, #1 - WORD $0xf900002c // str x12, [x1] - WORD $0xf940040d // ldr x13, [x0, #8] - WORD $0xeb0d019f // cmp x12, x13 - WORD $0x9a8825b3 // csinc x19, x13, x8, hs - WORD $0x14000006 // b LBB0_284 $24(%rip) -LBB0_283: - WORD $0xdac0008c // rbit x12, x4 - WORD $0xdac0118c // clz x12, x12 - WORD $0x8b0802e8 // add x8, x23, x8 - WORD $0x8b080188 // add x8, x12, x8 - WORD $0x91000913 // add x19, x8, #2 -LBB0_284: - WORD $0xf9000033 // str x19, [x1] - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x17fffd75 // b LBB0_197 $-2604(%rip) + WORD $0x92800068 // mov x8, #-4 + WORD $0xf1001b7f // cmp x27, #6 + WORD $0x5401b543 // b.lo LBB0_950 $13992(%rip) + WORD $0x530a7f0e // lsr w14, w24, #10 + WORD $0x7100d9df // cmp w14, #54 + WORD $0x5401b4e8 // b.hi LBB0_950 $13980(%rip) + WORD $0x39400388 // ldrb w8, [x28] + WORD $0x7101711f // cmp w8, #92 + WORD $0x5401b421 // b.ne LBB0_949 $13956(%rip) + WORD $0x39401e88 // ldrb w8, [x20, #7] + WORD $0x7101d51f // cmp w8, #117 + WORD $0x5401b3c1 // b.ne LBB0_949 $13944(%rip) + WORD $0xb9400a88 // ldr w8, [x20, #8] + WORD $0x5299fa0e // mov w14, #53200 + WORD $0x72b9f9ee // movk w14, #53199, lsl #16 + WORD $0x0b0e010e // add w14, w8, w14 + WORD $0x0a28021b // bic w27, w16, w8 + WORD $0x6a0e037f // tst w27, w14 + WORD $0x5401b2a1 // b.ne LBB0_948 $13908(%rip) + WORD $0x5283232e // mov w14, #6425 + WORD $0x72a3232e // movk w14, #6425, lsl #16 + WORD $0x0b0e010e // add w14, w8, w14 + WORD $0x2a0801ce // orr w14, w14, w8 + WORD $0x6a1001df // tst w14, w16 + WORD $0x5401b1e1 // b.ne LBB0_948 $13884(%rip) + WORD $0x3200dbee // mov w14, #2139062143 + WORD $0x0a0e0102 // and w2, w8, w14 + WORD $0x3202c7ee // mov w14, #-1061109568 + WORD $0x4b0201ce // sub w14, w14, w2 + WORD $0x5288c8cf // mov w15, #17990 + WORD $0x72a8c8cf // movk w15, #17990, lsl #16 + WORD $0x0b0f004f // add w15, w2, w15 + WORD $0x0a0e01ee // and w14, w15, w14 + WORD $0x6a1b01df // tst w14, w27 + WORD $0x5401b0a1 // b.ne LBB0_948 $13844(%rip) + WORD $0x3203cbee // mov w14, #-522133280 + WORD $0x4b0201ce // sub w14, w14, w2 + WORD $0x5287272f // mov w15, #14649 + WORD $0x72a7272f // movk w15, #14649, lsl #16 + WORD $0x0b0f004f // add w15, w2, w15 + WORD $0x0a0e01ee // and w14, w15, w14 + WORD $0x6a1b01df // tst w14, w27 + WORD $0x5401afa1 // b.ne LBB0_948 $13812(%rip) + WORD $0x5ac00908 // rev w8, w8 + WORD $0x3200c3ee // mov w14, #16843009 + WORD $0x0a6811ce // bic w14, w14, w8, lsr #4 + WORD $0x0b0e0dce // add w14, w14, w14, lsl #3 + WORD $0x3200cfef // mov w15, #252645135 + WORD $0x0a0f0108 // and w8, w8, w15 + WORD $0x0b0801c8 // add w8, w14, w8 + WORD $0x2a481108 // orr w8, w8, w8, lsr #4 + WORD $0x53087d0e // lsr w14, w8, #8 + WORD $0x12181dc2 // and w2, w14, #0xff00 + WORD $0x5140384e // sub w14, w2, #14, lsl #12 + WORD $0x311001df // cmn w14, #1024 + WORD $0x5401aee3 // b.lo LBB0_951 $13788(%rip) + WORD $0x12001d0e // and w14, w8, #0xff + WORD $0x2a1829ce // orr w14, w14, w24, lsl #10 + WORD $0x0b1a004f // add w15, w2, w26 + WORD $0x0b0f01ce // add w14, w14, w15 + WORD $0x53127dcf // lsr w15, w14, #18 + WORD $0x321c0def // orr w15, w15, #0xf0 + WORD $0x390083ef // strb w15, [sp, #32] + WORD $0x5280100f // mov w15, #128 + WORD $0x330c45cf // bfxil w15, w14, #12, #6 + WORD $0x390087ef // strb w15, [sp, #33] + WORD $0x5280100f // mov w15, #128 + WORD $0x33062dcf // bfxil w15, w14, #6, #6 + WORD $0x39008bef // strb w15, [sp, #34] + WORD $0x5280100e // mov w14, #128 + WORD $0x3300150e // bfxil w14, w8, #0, #6 + WORD $0x39008fee // strb w14, [sp, #35] + WORD $0x91003294 // add x20, x20, #12 + WORD $0x52800088 // mov w8, #4 + WORD $0x17ffff93 // b LBB0_265 $-436(%rip) LBB0_285: - WORD $0xf9000033 // str x19, [x1] - WORD $0x17fffd73 // b LBB0_197 $-2612(%rip) + WORD $0xeb15029f // cmp x20, x21 + WORD $0xfa5902c0 // ccmp x22, x25, #0, eq + WORD $0x1a9f17f4 // cset w20, eq LBB0_286: - WORD $0xd2800005 // mov x5, #0 - WORD $0x17fffc9f // b LBB0_130 $-3460(%rip) + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17fffb64 // b LBB0_72 $-4720(%rip) LBB0_287: - WORD $0x8b1302d4 // add x20, x22, x19 - WORD $0xf100051f // cmp x8, #1 - WORD $0x54000aca // b.ge LBB0_309 $344(%rip) - WORD $0x14000063 // b LBB0_314 $396(%rip) + WORD $0xd2800014 // mov x20, #0 + WORD $0x17fffff6 // b LBB0_286 $-40(%rip) LBB0_288: - WORD $0x10ff41e9 // adr x9, lCPI0_0 $-6084(%rip) - WORD $0x14000017 // b LBB0_292 $92(%rip) + WORD $0x8b160268 // add x8, x19, x22 + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54000bca // b.ge LBB0_310 $376(%rip) + WORD $0x1400006b // b LBB0_315 $428(%rip) LBB0_289: - WORD $0xdac0008c // rbit x12, x4 - WORD $0xdac0118c // clz x12, x12 - WORD $0xcb16020d // sub x13, x16, x22 - WORD $0x8b0c01ac // add x12, x13, x12 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a8c139c // csel x28, x28, x12, ne + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0x1400001b // b LBB0_293 $108(%rip) LBB0_290: - WORD $0x0a39008c // bic w12, w4, w25 - WORD $0x531f798d // lsl w13, w12, #1 - WORD $0x331f7999 // bfi w25, w12, #1, #31 - WORD $0x0a2d008d // bic w13, w4, w13 - WORD $0x1201f1ad // and w13, w13, #0xaaaaaaaa - WORD $0x2b0c01ac // adds w12, w13, w12 - WORD $0x4a0c052c // eor w12, w9, w12, lsl #1 - WORD $0x0a19018c // and w12, w12, w25 - WORD $0x1a9f37f9 // cset w25, hs - WORD $0x2a2c03ec // mvn w12, w12 - WORD $0x8a1e019e // and lr, x12, lr - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x10ff3f69 // adr x9, lCPI0_0 $-6164(%rip) - WORD $0xb5ff769e // cbnz lr, LBB0_90 $-4400(%rip) + WORD $0xdac003c8 // rbit x8, lr + WORD $0xdac01108 // clz x8, x8 + WORD $0xcb13020e // sub x14, x16, x19 + WORD $0x8b0801c8 // add x8, x14, x8 + WORD $0xb100075f // cmn x26, #1 + WORD $0x9a88135a // csel x26, x26, x8, ne LBB0_291: - WORD $0x91008210 // add x16, x16, #32 - WORD $0xaa1b03fe // mov lr, x27 + WORD $0x0a3703c8 // bic w8, w30, w23 + WORD $0x531f790e // lsl w14, w8, #1 + WORD $0x331f7917 // bfi w23, w8, #1, #31 + WORD $0x0a2e03ce // bic w14, w30, w14 + WORD $0x1201f1ce // and w14, w14, #0xaaaaaaaa + WORD $0x2b0801c8 // adds w8, w14, w8 + WORD $0x4a0804a8 // eor w8, w5, w8, lsl #1 + WORD $0x0a170108 // and w8, w8, w23 + WORD $0x1a9f37f7 // cset w23, hs + WORD $0x2a2803e8 // mvn w8, w8 + WORD $0x8a1b011b // and x27, x8, x27 + WORD $0x529fffe8 // mov w8, #65535 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb5ffb59b // cbnz x27, LBB0_208 $-2384(%rip) LBB0_292: - WORD $0xb5000419 // cbnz x25, LBB0_303 $128(%rip) - WORD $0xb400033e // cbz lr, LBB0_301 $100(%rip) -LBB0_294: - WORD $0xaa3603ed // mvn x13, x22 + WORD $0x91008210 // add x16, x16, #32 + WORD $0xaa1903fb // mov x27, x25 +LBB0_293: + WORD $0xb5000437 // cbnz x23, LBB0_304 $132(%rip) + WORD $0xb400039b // cbz x27, LBB0_302 $112(%rip) LBB0_295: - WORD $0xaa1003fb // mov x27, x16 - WORD $0x38401779 // ldrb w25, [x27], #1 + WORD $0xaa3303ee // mvn x14, x19 +LBB0_296: + WORD $0xaa1003fe // mov lr, x16 + WORD $0x384017d9 // ldrb w25, [lr], #1 WORD $0x71008b3f // cmp w25, #34 - WORD $0x540002a0 // b.eq LBB0_302 $84(%rip) - WORD $0xd10007c4 // sub x4, lr, #1 + WORD $0x54000300 // b.eq LBB0_303 $96(%rip) + WORD $0xd1000777 // sub x23, x27, #1 WORD $0x7101733f // cmp w25, #92 - WORD $0x540000a0 // b.eq LBB0_298 $20(%rip) - WORD $0xaa1b03f0 // mov x16, x27 - WORD $0xaa0403fe // mov lr, x4 - WORD $0xb5fffee4 // cbnz x4, LBB0_295 $-36(%rip) - WORD $0x1400000b // b LBB0_300 $44(%rip) -LBB0_298: - WORD $0xb4012ce4 // cbz x4, LBB0_805 $9628(%rip) - WORD $0x8b0d036c // add x12, x27, x13 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c019c // csel x28, x12, x28, eq + WORD $0x540000a0 // b.eq LBB0_299 $20(%rip) + WORD $0xaa1e03f0 // mov x16, lr + WORD $0xaa1703fb // mov x27, x23 + WORD $0xb5fffef7 // cbnz x23, LBB0_296 $-36(%rip) + WORD $0x1400000e // b LBB0_301 $56(%rip) +LBB0_299: + WORD $0xb4019457 // cbz x23, LBB0_911 $12936(%rip) + WORD $0x8b0e03c8 // add x8, lr, x14 + WORD $0xb100075f // cmn x26, #1 + WORD $0x9a9a011a // csel x26, x8, x26, eq WORD $0x91000a10 // add x16, x16, #2 - WORD $0xd1000bc4 // sub x4, lr, #2 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x10ff3c49 // adr x9, lCPI0_0 $-6264(%rip) - WORD $0xaa0403fe // mov lr, x4 - WORD $0xb5fffd84 // cbnz x4, LBB0_295 $-80(%rip) -LBB0_300: - WORD $0x71008b3f // cmp w25, #34 - WORD $0x54012b81 // b.ne LBB0_805 $9584(%rip) + WORD $0xd1000b77 // sub x23, x27, #2 + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0xaa1703fb // mov x27, x23 + WORD $0xb5fffd37 // cbnz x23, LBB0_296 $-92(%rip) LBB0_301: - WORD $0xaa1003fb // mov x27, x16 + WORD $0x71008b3f // cmp w25, #34 + WORD $0x54019281 // b.ne LBB0_911 $12880(%rip) LBB0_302: - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x3201f3fe // mov w30, #-1431655766 - WORD $0xcb160379 // sub x25, x27, x22 - WORD $0xb6ff6119 // tbz x25, #63, LBB0_61 $-5088(%rip) - WORD $0x14000956 // b LBB0_805 $9560(%rip) + WORD $0xaa1003fe // mov lr, x16 LBB0_303: - WORD $0xb4012abe // cbz lr, LBB0_805 $9556(%rip) - WORD $0xaa3603ec // mvn x12, x22 - WORD $0x8b0c020c // add x12, x16, x12 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c019c // csel x28, x12, x28, eq + WORD $0xcb1303d7 // sub x23, lr, x19 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x17fffafc // b LBB0_61 $-5136(%rip) +LBB0_304: + WORD $0xb40191fb // cbz x27, LBB0_911 $12860(%rip) + WORD $0xaa3303e8 // mvn x8, x19 + WORD $0x8b080208 // add x8, x16, x8 + WORD $0xb100075f // cmn x26, #1 + WORD $0x9a9a011a // csel x26, x8, x26, eq WORD $0x91000610 // add x16, x16, #1 - WORD $0xd10007de // sub lr, lr, #1 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0xb5fffb5e // cbnz lr, LBB0_294 $-152(%rip) - WORD $0x17fffff1 // b LBB0_301 $-60(%rip) -LBB0_305: - WORD $0xf9400413 // ldr x19, [x0, #8] - WORD $0x1400001e // b LBB0_313 $120(%rip) + WORD $0xd100077b // sub x27, x27, #1 + WORD $0x529fffe8 // mov w8, #65535 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0xb5fffadb // cbnz x27, LBB0_295 $-168(%rip) + WORD $0x17fffff0 // b LBB0_302 $-64(%rip) LBB0_306: - WORD $0xd10004ac // sub x12, x5, #1 - WORD $0xeb08019f // cmp x12, x8 - WORD $0x54000380 // b.eq LBB0_314 $112(%rip) - WORD $0x8b1702cc // add x12, x22, x23 - WORD $0x8b08018c // add x12, x12, x8 - WORD $0x91000994 // add x20, x12, #2 - WORD $0xcb0800a8 // sub x8, x5, x8 - WORD $0xd1000908 // sub x8, x8, #2 - WORD $0xf100051f // cmp x8, #1 - WORD $0x540000ea // b.ge LBB0_309 $28(%rip) - WORD $0x14000014 // b LBB0_314 $80(%rip) -LBB0_308: - WORD $0x92800030 // mov x16, #-2 - WORD $0x52800044 // mov w4, #2 - WORD $0x8b040294 // add x20, x20, x4 - WORD $0xab100108 // adds x8, x8, x16 - WORD $0x540001ed // b.le LBB0_314 $60(%rip) + WORD $0xf9400416 // ldr x22, [x0, #8] + WORD $0x1400001e // b LBB0_314 $120(%rip) +LBB0_307: + WORD $0xd10006e8 // sub x8, x23, #1 + WORD $0xeb15011f // cmp x8, x21 + WORD $0x54000380 // b.eq LBB0_315 $112(%rip) + WORD $0x8b140268 // add x8, x19, x20 + WORD $0x8b150108 // add x8, x8, x21 + WORD $0x91000908 // add x8, x8, #2 + WORD $0xcb1502ee // sub x14, x23, x21 + WORD $0xd10009d5 // sub x21, x14, #2 + WORD $0xf10006bf // cmp x21, #1 + WORD $0x540000ea // b.ge LBB0_310 $28(%rip) + WORD $0x14000014 // b LBB0_315 $80(%rip) LBB0_309: - WORD $0x39400290 // ldrb w16, [x20] - WORD $0x7101721f // cmp w16, #92 - WORD $0x54ffff20 // b.eq LBB0_308 $-28(%rip) - WORD $0x71008a1f // cmp w16, #34 - WORD $0x540000e0 // b.eq LBB0_312 $28(%rip) - WORD $0x92800010 // mov x16, #-1 - WORD $0x52800024 // mov w4, #1 - WORD $0x8b040294 // add x20, x20, x4 - WORD $0xab100108 // adds x8, x8, x16 - WORD $0x54fffeec // b.gt LBB0_309 $-36(%rip) - WORD $0x14000004 // b LBB0_314 $16(%rip) -LBB0_312: - WORD $0xcb160288 // sub x8, x20, x22 - WORD $0x91000513 // add x19, x8, #1 + WORD $0x92800022 // mov x2, #-2 + WORD $0x52800054 // mov w20, #2 + WORD $0x8b140108 // add x8, x8, x20 + WORD $0xab0202b5 // adds x21, x21, x2 + WORD $0x540001ed // b.le LBB0_315 $60(%rip) +LBB0_310: + WORD $0x39400102 // ldrb w2, [x8] + WORD $0x7101705f // cmp w2, #92 + WORD $0x54ffff20 // b.eq LBB0_309 $-28(%rip) + WORD $0x7100885f // cmp w2, #34 + WORD $0x540000e0 // b.eq LBB0_313 $28(%rip) + WORD $0x92800002 // mov x2, #-1 + WORD $0x52800034 // mov w20, #1 + WORD $0x8b140108 // add x8, x8, x20 + WORD $0xab0202b5 // adds x21, x21, x2 + WORD $0x54fffeec // b.gt LBB0_310 $-36(%rip) + WORD $0x14000004 // b LBB0_315 $16(%rip) LBB0_313: - WORD $0xf9000033 // str x19, [x1] + WORD $0xcb130108 // sub x8, x8, x19 + WORD $0x91000516 // add x22, x8, #1 LBB0_314: - WORD $0x529ffff4 // mov w20, #65535 - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0xf94007e3 // ldr x3, [sp, #8] - WORD $0x17fffd07 // b LBB0_197 $-3044(%rip) + WORD $0xf9000036 // str x22, [x1] LBB0_315: - WORD $0x71016d1f // cmp w8, #91 - WORD $0x540118e1 // b.ne LBB0_775 $8988(%rip) - WORD $0xf9400568 // ldr x8, [x11, #8] - WORD $0xf9400117 // ldr x23, [x8] - WORD $0xb7f91677 // tbnz x23, #63, LBB0_768 $8908(%rip) - WORD $0xf9400405 // ldr x5, [x0, #8] - WORD $0xeb05033f // cmp x25, x5 - WORD $0x54000162 // b.hs LBB0_322 $44(%rip) - WORD $0x38796ac8 // ldrb w8, [x22, x25] - WORD $0x7100351f // cmp w8, #13 - WORD $0x54000100 // b.eq LBB0_322 $32(%rip) - WORD $0x7100811f // cmp w8, #32 - WORD $0x540000c0 // b.eq LBB0_322 $24(%rip) - WORD $0x51002d08 // sub w8, w8, #11 - WORD $0x3100091f // cmn w8, #2 - WORD $0x54000062 // b.hs LBB0_322 $12(%rip) - WORD $0xaa1903e8 // mov x8, x25 - WORD $0x14000033 // b LBB0_339 $204(%rip) -LBB0_322: - WORD $0x91000728 // add x8, x25, #1 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_326 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_326 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_326 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000503 // b.lo LBB0_339 $160(%rip) -LBB0_326: - WORD $0x91000b28 // add x8, x25, #2 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_330 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_330 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_330 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x540003a3 // b.lo LBB0_339 $116(%rip) -LBB0_330: - WORD $0x91000f28 // add x8, x25, #3 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_334 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_334 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_334 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000243 // b.lo LBB0_339 $72(%rip) -LBB0_334: - WORD $0x91001328 // add x8, x25, #4 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000162 // b.hs LBB0_337 $44(%rip) + WORD $0x529fffe8 // mov w8, #65535 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17fffbf1 // b LBB0_152 $-4156(%rip) +LBB0_316: + WORD $0x71016e9f // cmp w20, #91 + WORD $0x54013ba1 // b.ne LBB0_829 $10100(%rip) + WORD $0xf9400522 // ldr x2, [x9, #8] + WORD $0xf9400054 // ldr x20, [x2] + WORD $0xb7f92d54 // tbnz x20, #63, LBB0_801 $9640(%rip) + WORD $0xf9400416 // ldr x22, [x0, #8] + WORD $0xeb1602ff // cmp x23, x22 + WORD $0x54000162 // b.hs LBB0_323 $44(%rip) + WORD $0x38776a62 // ldrb w2, [x19, x23] + WORD $0x7100345f // cmp w2, #13 + WORD $0x54000100 // b.eq LBB0_323 $32(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x540000c0 // b.eq LBB0_323 $24(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000062 // b.hs LBB0_323 $12(%rip) + WORD $0xaa1703f5 // mov x21, x23 + WORD $0x14000033 // b LBB0_340 $204(%rip) +LBB0_323: + WORD $0x910006f5 // add x21, x23, #1 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000122 // b.hs LBB0_327 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_327 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_327 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000503 // b.lo LBB0_340 $160(%rip) +LBB0_327: + WORD $0x91000af5 // add x21, x23, #2 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000122 // b.hs LBB0_331 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_331 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_331 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x540003a3 // b.lo LBB0_340 $116(%rip) +LBB0_331: + WORD $0x91000ef5 // add x21, x23, #3 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000122 // b.hs LBB0_335 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_335 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_335 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000243 // b.lo LBB0_340 $72(%rip) LBB0_335: - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7100819f // cmp w12, #32 - WORD $0x9acc21cc // lsl x12, x14, x12 - WORD $0x8a0f018c // and x12, x12, x15 - WORD $0xfa409984 // ccmp x12, #0, #4, ls - WORD $0x540000e0 // b.eq LBB0_338 $28(%rip) - WORD $0x91000508 // add x8, x8, #1 - WORD $0xeb0800bf // cmp x5, x8 - WORD $0x54ffff01 // b.ne LBB0_335 $-32(%rip) - WORD $0x1400000a // b LBB0_340 $40(%rip) -LBB0_337: - WORD $0xaa0803f9 // mov x25, x8 - WORD $0x14000008 // b LBB0_340 $32(%rip) + WORD $0x910012f5 // add x21, x23, #4 + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x54000162 // b.hs LBB0_338 $44(%rip) +LBB0_336: + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x710081df // cmp w14, #32 + WORD $0x9ace218e // lsl x14, x12, x14 + WORD $0x8a0d01ce // and x14, x14, x13 + WORD $0xfa4099c4 // ccmp x14, #0, #4, ls + WORD $0x540000e0 // b.eq LBB0_339 $28(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xeb1502df // cmp x22, x21 + WORD $0x54ffff01 // b.ne LBB0_336 $-32(%rip) + WORD $0x1400000a // b LBB0_341 $40(%rip) LBB0_338: - WORD $0xeb05011f // cmp x8, x5 - WORD $0x540000c2 // b.hs LBB0_340 $24(%rip) + WORD $0xaa1503f7 // mov x23, x21 + WORD $0x14000008 // b LBB0_341 $32(%rip) LBB0_339: - WORD $0x91000519 // add x25, x8, #1 - WORD $0xf9000039 // str x25, [x1] - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7101759f // cmp w12, #93 - WORD $0x54010f60 // b.eq LBB0_773 $8684(%rip) + WORD $0xeb1602bf // cmp x21, x22 + WORD $0x540000c2 // b.hs LBB0_341 $24(%rip) LBB0_340: - WORD $0xd1000733 // sub x19, x25, #1 - WORD $0xf9000033 // str x19, [x1] + WORD $0x910006b7 // add x23, x21, #1 + WORD $0xf9000037 // str x23, [x1] + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x710175df // cmp w14, #93 + WORD $0x540125e0 // b.eq LBB0_804 $9404(%rip) LBB0_341: - WORD $0xf10006f7 // subs x23, x23, #1 - WORD $0x540069ab // b.lt LBB0_488 $3380(%rip) - WORD $0xf9400405 // ldr x5, [x0, #8] - WORD $0xeb05027f // cmp x19, x5 - WORD $0x54000162 // b.hs LBB0_347 $44(%rip) - WORD $0x38736ac8 // ldrb w8, [x22, x19] - WORD $0x7100351f // cmp w8, #13 - WORD $0x54000100 // b.eq LBB0_347 $32(%rip) - WORD $0x7100811f // cmp w8, #32 - WORD $0x540000c0 // b.eq LBB0_347 $24(%rip) - WORD $0x51002d08 // sub w8, w8, #11 - WORD $0x3100091f // cmn w8, #2 - WORD $0x54000062 // b.hs LBB0_347 $12(%rip) - WORD $0xaa1303e8 // mov x8, x19 - WORD $0x14000031 // b LBB0_363 $196(%rip) -LBB0_347: - WORD $0x91000668 // add x8, x19, #1 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_351 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_351 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_351 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x540004c3 // b.lo LBB0_363 $152(%rip) -LBB0_351: - WORD $0x91000a68 // add x8, x19, #2 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_355 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_355 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_355 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000363 // b.lo LBB0_363 $108(%rip) -LBB0_355: - WORD $0x91000e68 // add x8, x19, #3 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_359 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_359 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_359 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000203 // b.lo LBB0_363 $64(%rip) -LBB0_359: - WORD $0x91001268 // add x8, x19, #4 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54002b02 // b.hs LBB0_417 $1376(%rip) + WORD $0xd10006f6 // sub x22, x23, #1 + WORD $0xf9000036 // str x22, [x1] +LBB0_342: + WORD $0xf1000694 // subs x20, x20, #1 + WORD $0x5400712b // b.lt LBB0_491 $3620(%rip) + WORD $0xf9400417 // ldr x23, [x0, #8] + WORD $0xeb1702df // cmp x22, x23 + WORD $0x54000162 // b.hs LBB0_348 $44(%rip) + WORD $0x38766a62 // ldrb w2, [x19, x22] + WORD $0x7100345f // cmp w2, #13 + WORD $0x54000100 // b.eq LBB0_348 $32(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x540000c0 // b.eq LBB0_348 $24(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000062 // b.hs LBB0_348 $12(%rip) + WORD $0xaa1603f5 // mov x21, x22 + WORD $0x14000031 // b LBB0_364 $196(%rip) +LBB0_348: + WORD $0x910006d5 // add x21, x22, #1 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000122 // b.hs LBB0_352 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_352 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_352 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x540004c3 // b.lo LBB0_364 $152(%rip) +LBB0_352: + WORD $0x91000ad5 // add x21, x22, #2 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000122 // b.hs LBB0_356 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_356 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_356 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000363 // b.lo LBB0_364 $108(%rip) +LBB0_356: + WORD $0x91000ed5 // add x21, x22, #3 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000122 // b.hs LBB0_360 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_360 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_360 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000203 // b.lo LBB0_364 $64(%rip) LBB0_360: - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7100819f // cmp w12, #32 - WORD $0x9acc21cc // lsl x12, x14, x12 - WORD $0x8a0f018c // and x12, x12, x15 - WORD $0xfa409984 // ccmp x12, #0, #4, ls - WORD $0x540000a0 // b.eq LBB0_362 $20(%rip) - WORD $0x91000508 // add x8, x8, #1 - WORD $0xeb0800bf // cmp x5, x8 - WORD $0x54ffff01 // b.ne LBB0_360 $-32(%rip) - WORD $0x14000150 // b LBB0_418 $1344(%rip) -LBB0_362: - WORD $0xeb05011f // cmp x8, x5 - WORD $0x540029c2 // b.hs LBB0_418 $1336(%rip) + WORD $0x910012d5 // add x21, x22, #4 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000ca2 // b.hs LBB0_390 $404(%rip) +LBB0_361: + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x710081df // cmp w14, #32 + WORD $0x9ace218e // lsl x14, x12, x14 + WORD $0x8a0d01ce // and x14, x14, x13 + WORD $0xfa4099c4 // ccmp x14, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_363 $20(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xeb1502ff // cmp x23, x21 + WORD $0x54ffff01 // b.ne LBB0_361 $-32(%rip) + WORD $0x1400005d // b LBB0_391 $372(%rip) LBB0_363: - WORD $0x91000513 // add x19, x8, #1 - WORD $0xf9000033 // str x19, [x1] - WORD $0x38686ac4 // ldrb w4, [x22, x8] - WORD $0x7101689f // cmp w4, #90 - WORD $0x5400066c // b.gt LBB0_379 $204(%rip) - WORD $0x7100bc9f // cmp w4, #47 - WORD $0x5400086d // b.le LBB0_384 $268(%rip) - WORD $0x5100c08c // sub w12, w4, #48 - WORD $0x7100299f // cmp w12, #10 - WORD $0x54002842 // b.hs LBB0_417 $1288(%rip) -LBB0_366: - WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xcb130108 // sub x8, x8, x19 - WORD $0xf100411f // cmp x8, #16 - WORD $0x540001e3 // b.lo LBB0_369 $60(%rip) + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000b62 // b.hs LBB0_391 $364(%rip) +LBB0_364: + WORD $0x910006b6 // add x22, x21, #1 + WORD $0xf9000036 // str x22, [x1] + WORD $0x38756a77 // ldrb w23, [x19, x21] + WORD $0x71016aff // cmp w23, #90 + WORD $0x5400070c // b.gt LBB0_379 $224(%rip) + WORD $0x7100beff // cmp w23, #47 + WORD $0x540008cd // b.le LBB0_384 $280(%rip) + WORD $0x5100c2ee // sub w14, w23, #48 + WORD $0x710029df // cmp w14, #10 + WORD $0x540009e2 // b.hs LBB0_390 $316(%rip) LBB0_367: - WORD $0x3cf36ad3 // ldr q19, [x22, x19] + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xcb1601d5 // sub x21, x14, x22 + WORD $0xf10042bf // cmp x21, #16 + WORD $0x540001e3 // b.lo LBB0_370 $60(%rip) +LBB0_368: + WORD $0x3cf66a73 // ldr q19, [x19, x22] WORD $0x6e248e74 // cmeq.16b v20, v19, v4 WORD $0x4e251e73 // and.16b v19, v19, v5 WORD $0x6e268e73 // cmeq.16b v19, v19, v6 @@ -2016,102 +2034,185 @@ LBB0_367: WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260270 // fmov w16, s19 - WORD $0x35000370 // cbnz w16, LBB0_378 $108(%rip) - WORD $0xd1004108 // sub x8, x8, #16 - WORD $0x91004273 // add x19, x19, #16 - WORD $0xf1003d1f // cmp x8, #15 - WORD $0x54fffe68 // b.hi LBB0_367 $-52(%rip) -LBB0_369: - WORD $0x8b1302c4 // add x4, x22, x19 - WORD $0xb40001e8 // cbz x8, LBB0_376 $60(%rip) - WORD $0x8b080085 // add x5, x4, x8 - WORD $0xcb160093 // sub x19, x4, x22 -LBB0_371: - WORD $0x39400090 // ldrb w16, [x4] - WORD $0x7100b21f // cmp w16, #44 - WORD $0x54005820 // b.eq LBB0_478 $2820(%rip) - WORD $0x7101f61f // cmp w16, #125 - WORD $0x540057e0 // b.eq LBB0_478 $2812(%rip) - WORD $0x7101761f // cmp w16, #93 - WORD $0x540057a0 // b.eq LBB0_478 $2804(%rip) - WORD $0x91000484 // add x4, x4, #1 - WORD $0x91000673 // add x19, x19, #1 - WORD $0xf1000508 // subs x8, x8, #1 - WORD $0x54fffec1 // b.ne LBB0_371 $-40(%rip) - WORD $0xaa0503e4 // mov x4, x5 -LBB0_376: - WORD $0xcb160093 // sub x19, x4, x22 - WORD $0xf9000033 // str x19, [x1] + WORD $0x1e260262 // fmov w2, s19 + WORD $0x35000402 // cbnz w2, LBB0_378 $128(%rip) + WORD $0xd10042b5 // sub x21, x21, #16 + WORD $0x910042d6 // add x22, x22, #16 + WORD $0xf1003ebf // cmp x21, #15 + WORD $0x54fffe68 // b.hi LBB0_368 $-52(%rip) +LBB0_370: + WORD $0x8b160277 // add x23, x19, x22 + WORD $0xb40001f5 // cbz x21, LBB0_377 $60(%rip) + WORD $0x8b1502f8 // add x24, x23, x21 + WORD $0xcb1302f6 // sub x22, x23, x19 +LBB0_372: + WORD $0x394002e2 // ldrb w2, [x23] + WORD $0x7100b05f // cmp w2, #44 + WORD $0x54005ce0 // b.eq LBB0_479 $2972(%rip) + WORD $0x7101f45f // cmp w2, #125 + WORD $0x54005ca0 // b.eq LBB0_479 $2964(%rip) + WORD $0x7101745f // cmp w2, #93 + WORD $0x54005c60 // b.eq LBB0_479 $2956(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0x910006d6 // add x22, x22, #1 + WORD $0xf10006b5 // subs x21, x21, #1 + WORD $0x54fffec1 // b.ne LBB0_372 $-40(%rip) + WORD $0xaa1803f7 // mov x23, x24 LBB0_377: - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x3201f3fe // mov w30, #-1431655766 - WORD $0x1400011c // b LBB0_418 $1136(%rip) + WORD $0xcb1302f6 // sub x22, x23, x19 + WORD $0xf9000036 // str x22, [x1] + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x14000024 // b LBB0_391 $144(%rip) LBB0_378: - WORD $0x5ac00208 // rbit w8, w16 - WORD $0x5ac01108 // clz w8, w8 - WORD $0x8b130113 // add x19, x8, x19 - WORD $0xf9000033 // str x19, [x1] - WORD $0x14000117 // b LBB0_418 $1116(%rip) + WORD $0x5ac0004e // rbit w14, w2 + WORD $0x5ac011ce // clz w14, w14 + WORD $0x8b1601d6 // add x22, x14, x22 + WORD $0xf9000036 // str x22, [x1] + WORD $0x1400001f // b LBB0_391 $124(%rip) LBB0_379: - WORD $0x7101b49f // cmp w4, #109 - WORD $0x540002ed // b.le LBB0_387 $92(%rip) - WORD $0x7101b89f // cmp w4, #110 - WORD $0x540021a0 // b.eq LBB0_415 $1076(%rip) - WORD $0x7101d09f // cmp w4, #116 - WORD $0x54002160 // b.eq LBB0_415 $1068(%rip) - WORD $0x7101ec9f // cmp w4, #123 - WORD $0x540021a1 // b.ne LBB0_417 $1076(%rip) - WORD $0xb201e3ea // mov x10, #-8608480567731124088 - WORD $0xa9010bf1 // stp x17, x2, [sp, #16] - WORD $0xd280001c // mov x28, #0 + WORD $0x7101b6ff // cmp w23, #109 + WORD $0x540002ad // b.le LBB0_387 $84(%rip) + WORD $0x7101baff // cmp w23, #110 + WORD $0x54002bc0 // b.eq LBB0_438 $1400(%rip) + WORD $0x7101d2ff // cmp w23, #116 + WORD $0x54002b80 // b.eq LBB0_438 $1392(%rip) + WORD $0x7101eeff // cmp w23, #123 + WORD $0x540002a1 // b.ne LBB0_390 $84(%rip) WORD $0xd280001a // mov x26, #0 - WORD $0xd2800008 // mov x8, #0 - WORD $0xd2800019 // mov x25, #0 - WORD $0xf940040c // ldr x12, [x0, #8] - WORD $0xcb13019b // sub x27, x12, x19 - WORD $0x8b1302d3 // add x19, x22, x19 - WORD $0x14000015 // b LBB0_391 $84(%rip) + WORD $0xd2800018 // mov x24, #0 + WORD $0xd2800015 // mov x21, #0 + WORD $0xd2800017 // mov x23, #0 + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xcb1601cf // sub x15, x14, x22 + WORD $0x8b160273 // add x19, x19, x22 + WORD $0x1400005c // b LBB0_414 $368(%rip) LBB0_384: - WORD $0x34002084 // cbz w4, LBB0_418 $1040(%rip) - WORD $0x7100889f // cmp w4, #34 - WORD $0x540028a0 // b.eq LBB0_440 $1300(%rip) - WORD $0x7100b49f // cmp w4, #45 - WORD $0x54fff7a0 // b.eq LBB0_366 $-268(%rip) - WORD $0x140000fd // b LBB0_417 $1012(%rip) + WORD $0x340001d7 // cbz w23, LBB0_391 $56(%rip) + WORD $0x71008aff // cmp w23, #34 + WORD $0x54002ac0 // b.eq LBB0_441 $1368(%rip) + WORD $0x7100b6ff // cmp w23, #45 + WORD $0x54fff740 // b.eq LBB0_367 $-280(%rip) + WORD $0x14000007 // b LBB0_390 $28(%rip) LBB0_387: - WORD $0x71016c9f // cmp w4, #91 - WORD $0x54003000 // b.eq LBB0_449 $1536(%rip) - WORD $0x7101989f // cmp w4, #102 - WORD $0x54001f21 // b.ne LBB0_417 $996(%rip) - WORD $0x91001508 // add x8, x8, #5 - WORD $0x140000f4 // b LBB0_416 $976(%rip) + WORD $0x71016eff // cmp w23, #91 + WORD $0x54003260 // b.eq LBB0_451 $1612(%rip) + WORD $0x71019aff // cmp w23, #102 + WORD $0x54000061 // b.ne LBB0_390 $12(%rip) + WORD $0x910016a2 // add x2, x21, #5 + WORD $0x14000147 // b LBB0_439 $1308(%rip) LBB0_390: - WORD $0x937ffcbc // asr x28, x5, #63 - WORD $0x9e6703d3 // fmov d19, lr + WORD $0xf9000035 // str x21, [x1] + WORD $0xaa1503f6 // mov x22, x21 +LBB0_391: + WORD $0xa9405c13 // ldp x19, x23, [x0] + WORD $0xeb1702df // cmp x22, x23 + WORD $0x54000162 // b.hs LBB0_396 $44(%rip) + WORD $0x38766a62 // ldrb w2, [x19, x22] + WORD $0x7100345f // cmp w2, #13 + WORD $0x54000100 // b.eq LBB0_396 $32(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x540000c0 // b.eq LBB0_396 $24(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000062 // b.hs LBB0_396 $12(%rip) + WORD $0xaa1603f5 // mov x21, x22 + WORD $0x14000031 // b LBB0_412 $196(%rip) +LBB0_396: + WORD $0x910006d5 // add x21, x22, #1 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000122 // b.hs LBB0_400 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_400 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_400 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x540004c3 // b.lo LBB0_412 $152(%rip) +LBB0_400: + WORD $0x91000ad5 // add x21, x22, #2 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000122 // b.hs LBB0_404 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_404 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_404 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000363 // b.lo LBB0_412 $108(%rip) +LBB0_404: + WORD $0x91000ed5 // add x21, x22, #3 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54000122 // b.hs LBB0_408 $36(%rip) + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100345f // cmp w2, #13 + WORD $0x540000c0 // b.eq LBB0_408 $24(%rip) + WORD $0x7100805f // cmp w2, #32 + WORD $0x54000080 // b.eq LBB0_408 $16(%rip) + WORD $0x51002c4e // sub w14, w2, #11 + WORD $0x310009df // cmn w14, #2 + WORD $0x54000203 // b.lo LBB0_412 $64(%rip) +LBB0_408: + WORD $0x910012d5 // add x21, x22, #4 + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x54010be2 // b.hs LBB0_802 $8572(%rip) +LBB0_409: + WORD $0x38756a6e // ldrb w14, [x19, x21] + WORD $0x710081df // cmp w14, #32 + WORD $0x9ace218e // lsl x14, x12, x14 + WORD $0x8a0d01ce // and x14, x14, x13 + WORD $0xfa4099c4 // ccmp x14, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_411 $20(%rip) + WORD $0x910006b5 // add x21, x21, #1 + WORD $0xeb1502ff // cmp x23, x21 + WORD $0x54ffff01 // b.ne LBB0_409 $-32(%rip) + WORD $0x140008c0 // b LBB0_829 $8960(%rip) +LBB0_411: + WORD $0xeb1702bf // cmp x21, x23 + WORD $0x540117c2 // b.hs LBB0_829 $8952(%rip) +LBB0_412: + WORD $0x910006b6 // add x22, x21, #1 + WORD $0xf9000036 // str x22, [x1] + WORD $0x38756a62 // ldrb w2, [x19, x21] + WORD $0x7100b05f // cmp w2, #44 + WORD $0x54ffe4c0 // b.eq LBB0_342 $-872(%rip) + WORD $0x1400084f // b LBB0_803 $8508(%rip) +LBB0_413: + WORD $0x937fff5a // asr x26, x26, #63 + WORD $0x9e670373 // fmov d19, x27 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b080188 // add x8, x12, x8 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1501d5 // add x21, x14, x21 WORD $0x91010273 // add x19, x19, #64 - WORD $0xaa1603fb // mov x27, x22 -LBB0_391: - WORD $0xf1010376 // subs x22, x27, #64 - WORD $0x540016eb // b.lt LBB0_398 $732(%rip) -LBB0_392: + WORD $0xf9400fef // ldr x15, [sp, #24] + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 +LBB0_414: + WORD $0xf10101ee // subs x14, x15, #64 + WORD $0xa9013bef // stp x15, x14, [sp, #16] + WORD $0x5400176b // b.lt LBB0_421 $748(%rip) +LBB0_415: WORD $0xad405676 // ldp q22, q21, [x19] WORD $0xad414e74 // ldp q20, q19, [x19, #32] WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e238e97 // cmeq.16b v23, v20, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -2124,35 +2225,35 @@ LBB0_392: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01b0 // orr x16, x13, x12 - WORD $0xaa1a020c // orr x12, x16, x26 - WORD $0xb500008c // cbnz x12, LBB0_394 $16(%rip) - WORD $0xd280001a // mov x26, #0 - WORD $0xd2800004 // mov x4, #0 - WORD $0x1400000a // b LBB0_395 $40(%rip) -LBB0_394: - WORD $0x8a3a020c // bic x12, x16, x26 - WORD $0xaa0c074d // orr x13, x26, x12, lsl #1 - WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01e2 // orr x2, x15, x14 + WORD $0xaa18004e // orr x14, x2, x24 + WORD $0xb500008e // cbnz x14, LBB0_417 $16(%rip) + WORD $0xd2800018 // mov x24, #0 + WORD $0xd280001b // mov x27, #0 + WORD $0x1400000a // b LBB0_418 $40(%rip) +LBB0_417: + WORD $0x8a38004e // bic x14, x2, x24 + WORD $0xaa0e070f // orr x15, x24, x14, lsl #1 + WORD $0x8a2f0050 // bic x16, x2, x15 WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa - WORD $0xab0c020c // adds x12, x16, x12 - WORD $0x1a9f37fa // cset w26, hs - WORD $0xd37ff98c // lsl x12, x12, #1 - WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 - WORD $0x8a0d0184 // and x4, x12, x13 -LBB0_395: + WORD $0xab0e020e // adds x14, x16, x14 + WORD $0x1a9f37f8 // cset w24, hs + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0xd200f1ce // eor x14, x14, #0x5555555555555555 + WORD $0x8a0f01db // and x27, x14, x15 +LBB0_418: WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e208e97 // cmeq.16b v23, v20, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -2165,69 +2266,71 @@ LBB0_395: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a24018c // bic x12, x12, x4 - WORD $0x9200e18d // and x13, x12, #0x1111111111111111 - WORD $0x9203e190 // and x16, x12, #0x2222222222222222 - WORD $0x9202e191 // and x17, x12, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xb200e3fe // mov lr, #1229782938247303441 - WORD $0x9b1e7da2 // mul x2, x13, lr - WORD $0xb201e3e7 // mov x7, #-8608480567731124088 - WORD $0xf2e11107 // movk x7, #2184, lsl #48 - WORD $0x9b077e04 // mul x4, x16, x7 - WORD $0xca040042 // eor x2, x2, x4 - WORD $0xb202e3e6 // mov x6, #4919131752989213764 - WORD $0xf2e08886 // movk x6, #1092, lsl #48 - WORD $0x9b067e24 // mul x4, x17, x6 - WORD $0xb203e3e5 // mov x5, #2459565876494606882 - WORD $0xf2e04445 // movk x5, #546, lsl #48 - WORD $0x9b057d85 // mul x5, x12, x5 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0xca040042 // eor x2, x2, x4 - WORD $0xb203e3f5 // mov x21, #2459565876494606882 - WORD $0x9b157da4 // mul x4, x13, x21 - WORD $0x9b1e7e05 // mul x5, x16, lr - WORD $0xca050084 // eor x4, x4, x5 - WORD $0x9b077e25 // mul x5, x17, x7 - WORD $0x9b067d86 // mul x6, x12, x6 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0xb202e3f8 // mov x24, #4919131752989213764 - WORD $0x9b187da5 // mul x5, x13, x24 - WORD $0x9b157e06 // mul x6, x16, x21 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b1e7e26 // mul x6, x17, lr - WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3b01ce // bic x14, x14, x27 + WORD $0x9200e1cf // and x15, x14, #0x1111111111111111 + WORD $0x9203e1d0 // and x16, x14, #0x2222222222222222 + WORD $0x9202e1d1 // and x17, x14, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0x9b047de2 // mul x2, x15, x4 + WORD $0x9b1c7e06 // mul x6, x16, x28 + WORD $0xca060042 // eor x2, x2, x6 + WORD $0x9b077e26 // mul x6, x17, x7 + WORD $0xb202e3fb // mov x27, #4919131752989213764 + WORD $0xf2e0889b // movk x27, #1092, lsl #48 + WORD $0xb203e3e7 // mov x7, #2459565876494606882 + WORD $0xf2e04447 // movk x7, #546, lsl #48 + WORD $0x9b077dc7 // mul x7, x14, x7 WORD $0xca0700c6 // eor x6, x6, x7 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b0a7dad // mul x13, x13, x10 - WORD $0x9b187e10 // mul x16, x16, x24 - WORD $0xca1001ad // eor x13, x13, x16 - WORD $0x9b157e30 // mul x16, x17, x21 - WORD $0x9b1e7d8c // mul x12, x12, lr - WORD $0xca0c020c // eor x12, x16, x12 - WORD $0xca0c01ac // eor x12, x13, x12 - WORD $0x9200e04d // and x13, x2, #0x1111111111111111 - WORD $0x9203e090 // and x16, x4, #0x2222222222222222 - WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xaa1001ad // orr x13, x13, x16 - WORD $0xaa0c022c // orr x12, x17, x12 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xca1c0185 // eor x5, x12, x28 + WORD $0xca060042 // eor x2, x2, x6 + WORD $0xb200e3f6 // mov x22, #1229782938247303441 + WORD $0xb203e3e4 // mov x4, #2459565876494606882 + WORD $0x9b047de6 // mul x6, x15, x4 + WORD $0x9b167e07 // mul x7, x16, x22 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0x9b1c7e27 // mul x7, x17, x28 + WORD $0x9b1b7ddb // mul x27, x14, x27 + WORD $0xca1b00e7 // eor x7, x7, x27 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xb202e3f9 // mov x25, #4919131752989213764 + WORD $0x9b197de7 // mul x7, x15, x25 + WORD $0x9b047e1b // mul x27, x16, x4 + WORD $0xca1b00e7 // eor x7, x7, x27 + WORD $0x9b167e3b // mul x27, x17, x22 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0x9b1c7ddc // mul x28, x14, x28 + WORD $0xca1c037b // eor x27, x27, x28 + WORD $0xca1b00e7 // eor x7, x7, x27 + WORD $0xb201e3f6 // mov x22, #-8608480567731124088 + WORD $0x9b167def // mul x15, x15, x22 + WORD $0x9b197e10 // mul x16, x16, x25 + WORD $0xca1001ef // eor x15, x15, x16 + WORD $0x9b047e30 // mul x16, x17, x4 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x9b047dce // mul x14, x14, x4 + WORD $0xca0e020e // eor x14, x16, x14 + WORD $0xca0e01ee // eor x14, x15, x14 + WORD $0x9200e04f // and x15, x2, #0x1111111111111111 + WORD $0x9203e0d0 // and x16, x6, #0x2222222222222222 + WORD $0x9202e0f1 // and x17, x7, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0xaa1001ef // orr x15, x15, x16 + WORD $0xaa0e022e // orr x14, x17, x14 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xca1a01da // eor x26, x14, x26 WORD $0x6e318ed7 // cmeq.16b v23, v22, v17 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e318eb7 // cmeq.16b v23, v21, v17 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e318e97 // cmeq.16b v23, v20, v17 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -2240,20 +2343,20 @@ LBB0_395: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a25019e // bic lr, x12, x5 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3a01db // bic x27, x14, x26 WORD $0x6e328ed6 // cmeq.16b v22, v22, v18 WORD $0x4e211ed6 // and.16b v22, v22, v1 WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602cc // fmov w12, s22 + WORD $0x1e2602ce // fmov w14, s22 WORD $0x6e328eb5 // cmeq.16b v21, v21, v18 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ad // fmov w13, s21 + WORD $0x1e2602af // fmov w15, s21 WORD $0x6e328e94 // cmeq.16b v20, v20, v18 WORD $0x4e211e94 // and.16b v20, v20, v1 WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 @@ -2266,276 +2369,214 @@ LBB0_395: WORD $0x1e260271 // fmov w17, s19 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xea250184 // bics x4, x12, x5 - WORD $0x54ffe9c0 // b.eq LBB0_390 $-712(%rip) -LBB0_396: - WORD $0xd1000490 // sub x16, x4, #1 - WORD $0x8a1e020c // and x12, x16, lr - WORD $0x9e670193 // fmov d19, x12 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xea3a01dc // bics x28, x14, x26 + WORD $0x54ffe8e0 // b.eq LBB0_413 $-740(%rip) +LBB0_419: + WORD $0xd1000782 // sub x2, x28, #1 + WORD $0x8a1b004e // and x14, x2, x27 + WORD $0x9e6701d3 // fmov d19, x14 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b08018c // add x12, x12, x8 - WORD $0xeb19019f // cmp x12, x25 - WORD $0x54003789 // b.ls LBB0_475 $1776(%rip) - WORD $0x91000739 // add x25, x25, #1 - WORD $0xea040204 // ands x4, x16, x4 - WORD $0x54fffea1 // b.ne LBB0_396 $-44(%rip) - WORD $0x17ffff41 // b LBB0_390 $-764(%rip) -LBB0_398: - WORD $0xf100037f // cmp x27, #0 - WORD $0x54003a6d // b.le LBB0_480 $1868(%rip) + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1501ce // add x14, x14, x21 + WORD $0xeb1701df // cmp x14, x23 + WORD $0x540031e9 // b.ls LBB0_477 $1596(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xea1c005c // ands x28, x2, x28 + WORD $0x54fffea1 // b.ne LBB0_419 $-44(%rip) + WORD $0x17ffff3a // b LBB0_413 $-792(%rip) +LBB0_421: + WORD $0xf10001ff // cmp x15, #0 + WORD $0x540037cd // b.le LBB0_487 $1784(%rip) WORD $0xad0243f0 // stp q16, q16, [sp, #64] WORD $0xad0143f0 // stp q16, q16, [sp, #32] - WORD $0x92402e6c // and x12, x19, #0xfff - WORD $0xf13f059f // cmp x12, #4033 - WORD $0x54000363 // b.lo LBB0_410 $108(%rip) - WORD $0xf1008374 // subs x20, x27, #32 - WORD $0x540000a3 // b.lo LBB0_402 $20(%rip) + WORD $0x92402e68 // and x8, x19, #0xfff + WORD $0xf13f051f // cmp x8, #4033 + WORD $0x54000383 // b.lo LBB0_433 $112(%rip) + WORD $0xf9400be8 // ldr x8, [sp, #16] + WORD $0xf100811b // subs x27, x8, #32 + WORD $0x540000a3 // b.lo LBB0_425 $20(%rip) WORD $0xacc15273 // ldp q19, q20, [x19], #32 WORD $0xad0153f3 // stp q19, q20, [sp, #32] - WORD $0xf9400fe5 // ldr x5, [sp, #24] - WORD $0x14000003 // b LBB0_403 $12(%rip) -LBB0_402: - WORD $0x910083e5 // add x5, sp, #32 - WORD $0xaa1b03f4 // mov x20, x27 -LBB0_403: - WORD $0xf1004290 // subs x16, x20, #16 - WORD $0x54000283 // b.lo LBB0_411 $80(%rip) + WORD $0xaa0b03e8 // mov x8, x11 + WORD $0x14000003 // b LBB0_426 $12(%rip) +LBB0_425: + WORD $0x910083e8 // add x8, sp, #32 + WORD $0xf9400bfb // ldr x27, [sp, #16] +LBB0_426: + WORD $0xf1004362 // subs x2, x27, #16 + WORD $0x54000343 // b.lo LBB0_434 $104(%rip) WORD $0x3cc10673 // ldr q19, [x19], #16 - WORD $0x3c8104b3 // str q19, [x5], #16 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1002210 // subs x16, x16, #8 - WORD $0x54000222 // b.hs LBB0_412 $68(%rip) -LBB0_405: - WORD $0xf1001290 // subs x16, x20, #4 - WORD $0x54000283 // b.lo LBB0_413 $80(%rip) -LBB0_406: - WORD $0xb840466c // ldr w12, [x19], #4 - WORD $0xb80044ac // str w12, [x5], #4 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1000a10 // subs x16, x16, #2 - WORD $0x54000222 // b.hs LBB0_414 $68(%rip) -LBB0_407: - WORD $0xb4000074 // cbz x20, LBB0_409 $12(%rip) -LBB0_408: - WORD $0x3940026c // ldrb w12, [x19] - WORD $0x390000ac // strb w12, [x5] -LBB0_409: - WORD $0x910083f3 // add x19, sp, #32 -LBB0_410: - WORD $0xb201e3ea // mov x10, #-8608480567731124088 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x17ffff27 // b LBB0_392 $-868(%rip) -LBB0_411: - WORD $0xf1002290 // subs x16, x20, #8 - WORD $0x54fffe23 // b.lo LBB0_405 $-60(%rip) -LBB0_412: - WORD $0xf840866c // ldr x12, [x19], #8 - WORD $0xf80084ac // str x12, [x5], #8 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1001210 // subs x16, x16, #4 - WORD $0x54fffdc2 // b.hs LBB0_406 $-72(%rip) -LBB0_413: - WORD $0xf1000a90 // subs x16, x20, #2 - WORD $0x54fffe23 // b.lo LBB0_407 $-60(%rip) -LBB0_414: - WORD $0x7840266c // ldrh w12, [x19], #2 - WORD $0x780024ac // strh w12, [x5], #2 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xb5fffdd0 // cbnz x16, LBB0_408 $-72(%rip) - WORD $0x17ffffef // b LBB0_409 $-68(%rip) -LBB0_415: - WORD $0x91001108 // add x8, x8, #4 -LBB0_416: - WORD $0xf940040c // ldr x12, [x0, #8] - WORD $0xeb0c011f // cmp x8, x12 - WORD $0x54000068 // b.hi LBB0_418 $12(%rip) -LBB0_417: - WORD $0xf9000028 // str x8, [x1] - WORD $0xaa0803f3 // mov x19, x8 -LBB0_418: - WORD $0xa9401416 // ldp x22, x5, [x0] - WORD $0xeb05027f // cmp x19, x5 - WORD $0x54000162 // b.hs LBB0_423 $44(%rip) - WORD $0x38736ac8 // ldrb w8, [x22, x19] - WORD $0x7100351f // cmp w8, #13 - WORD $0x54000100 // b.eq LBB0_423 $32(%rip) - WORD $0x7100811f // cmp w8, #32 - WORD $0x540000c0 // b.eq LBB0_423 $24(%rip) - WORD $0x51002d08 // sub w8, w8, #11 - WORD $0x3100091f // cmn w8, #2 - WORD $0x54000062 // b.hs LBB0_423 $12(%rip) - WORD $0xaa1303e8 // mov x8, x19 - WORD $0x14000031 // b LBB0_439 $196(%rip) -LBB0_423: - WORD $0x91000668 // add x8, x19, #1 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_427 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_427 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_427 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x540004c3 // b.lo LBB0_439 $152(%rip) -LBB0_427: - WORD $0x91000a68 // add x8, x19, #2 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_431 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_431 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_431 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000363 // b.lo LBB0_439 $108(%rip) + WORD $0x3c810513 // str q19, [x8], #16 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xf1002042 // subs x2, x2, #8 + WORD $0x540002e2 // b.hs LBB0_435 $92(%rip) +LBB0_428: + WORD $0xf1001362 // subs x2, x27, #4 + WORD $0x54000343 // b.lo LBB0_436 $104(%rip) +LBB0_429: + WORD $0xb840466e // ldr w14, [x19], #4 + WORD $0xb800450e // str w14, [x8], #4 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xf1000842 // subs x2, x2, #2 + WORD $0x540002e2 // b.hs LBB0_437 $92(%rip) +LBB0_430: + WORD $0xb400007b // cbz x27, LBB0_432 $12(%rip) LBB0_431: - WORD $0x91000e68 // add x8, x19, #3 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x54000122 // b.hs LBB0_435 $36(%rip) - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100361f // cmp w16, #13 - WORD $0x540000c0 // b.eq LBB0_435 $24(%rip) - WORD $0x7100821f // cmp w16, #32 - WORD $0x54000080 // b.eq LBB0_435 $16(%rip) - WORD $0x51002e0c // sub w12, w16, #11 - WORD $0x3100099f // cmn w12, #2 - WORD $0x54000203 // b.lo LBB0_439 $64(%rip) + WORD $0x3940026e // ldrb w14, [x19] + WORD $0x3900010e // strb w14, [x8] +LBB0_432: + WORD $0x910083f3 // add x19, sp, #32 +LBB0_433: + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17ffff1c // b LBB0_415 $-912(%rip) +LBB0_434: + WORD $0xf1002362 // subs x2, x27, #8 + WORD $0x54fffd63 // b.lo LBB0_428 $-84(%rip) LBB0_435: - WORD $0x91001268 // add x8, x19, #4 - WORD $0xeb05011f // cmp x8, x5 - WORD $0x5400d6a2 // b.hs LBB0_769 $6868(%rip) + WORD $0xf840866e // ldr x14, [x19], #8 + WORD $0xf800850e // str x14, [x8], #8 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xf1001042 // subs x2, x2, #4 + WORD $0x54fffd02 // b.hs LBB0_429 $-96(%rip) LBB0_436: - WORD $0x38686acc // ldrb w12, [x22, x8] - WORD $0x7100819f // cmp w12, #32 - WORD $0x9acc21cc // lsl x12, x14, x12 - WORD $0x8a0f018c // and x12, x12, x15 - WORD $0xfa409984 // ccmp x12, #0, #4, ls - WORD $0x540000a0 // b.eq LBB0_438 $20(%rip) - WORD $0x91000508 // add x8, x8, #1 - WORD $0xeb0800bf // cmp x5, x8 - WORD $0x54ffff01 // b.ne LBB0_436 $-32(%rip) - WORD $0x140006b7 // b LBB0_775 $6876(%rip) + WORD $0xf1000b62 // subs x2, x27, #2 + WORD $0x54fffd63 // b.lo LBB0_430 $-84(%rip) +LBB0_437: + WORD $0x7840266e // ldrh w14, [x19], #2 + WORD $0x7800250e // strh w14, [x8], #2 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xb5fffd02 // cbnz x2, LBB0_431 $-96(%rip) + WORD $0x17ffffe9 // b LBB0_432 $-92(%rip) LBB0_438: - WORD $0xeb05011f // cmp x8, x5 - WORD $0x5400d6a2 // b.hs LBB0_775 $6868(%rip) + WORD $0x910012a2 // add x2, x21, #4 LBB0_439: - WORD $0x91000513 // add x19, x8, #1 - WORD $0xf9000033 // str x19, [x1] - WORD $0x38686ad0 // ldrb w16, [x22, x8] - WORD $0x7100b21f // cmp w16, #44 - WORD $0x54ffc660 // b.eq LBB0_341 $-1844(%rip) - WORD $0x140006a8 // b LBB0_772 $6816(%rip) -LBB0_440: - WORD $0xf9400410 // ldr x16, [x0, #8] - WORD $0xcb130205 // sub x5, x16, x19 - WORD $0xf10080bf // cmp x5, #32 - WORD $0x54002a4b // b.lt LBB0_479 $1352(%rip) - WORD $0xd2800005 // mov x5, #0 - WORD $0xd280001c // mov x28, #0 - WORD $0x8b0802da // add x26, x22, x8 - WORD $0xcb080219 // sub x25, x16, x8 - WORD $0x528003fb // mov w27, #31 -LBB0_442: - WORD $0x8b05034c // add x12, x26, x5 - WORD $0x3cc01193 // ldur q19, [x12, #1] - WORD $0x3cc11194 // ldur q20, [x12, #17] + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xeb0e005f // cmp x2, x14 + WORD $0x54ffd748 // b.hi LBB0_391 $-1304(%rip) + WORD $0xf9000022 // str x2, [x1] + WORD $0xaa0203f6 // mov x22, x2 + WORD $0x17fffeb7 // b LBB0_391 $-1316(%rip) +LBB0_441: + WORD $0xf9400402 // ldr x2, [x0, #8] + WORD $0xcb160057 // sub x23, x2, x22 + WORD $0xf10082ff // cmp x23, #32 + WORD $0x54002c8b // b.lt LBB0_480 $1424(%rip) + WORD $0xaa1003f1 // mov x17, x16 + WORD $0xd2800017 // mov x23, #0 + WORD $0xd280001b // mov x27, #0 + WORD $0x8b150279 // add x25, x19, x21 + WORD $0xcb150058 // sub x24, x2, x21 + WORD $0x528003fa // mov w26, #31 +LBB0_443: + WORD $0x8b17032e // add x14, x25, x23 + WORD $0x3cc011d3 // ldur q19, [x14, #1] + WORD $0x3cc111d4 // ldur q20, [x14, #17] WORD $0x6e208e75 // cmeq.16b v21, v19, v0 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x1e2602bc // fmov w28, s21 WORD $0x6e208e95 // cmeq.16b v21, v20, v0 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ac // fmov w12, s21 - WORD $0x33103d84 // bfi w4, w12, #16, #16 + WORD $0x1e2602ae // fmov w14, s21 + WORD $0x33103ddc // bfi w28, w14, #16, #16 WORD $0x6e238e73 // cmeq.16b v19, v19, v3 WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260270 // fmov w16, s19 + WORD $0x1e260262 // fmov w2, s19 WORD $0x6e238e93 // cmeq.16b v19, v20, v3 WORD $0x4e211e73 // and.16b v19, v19, v1 WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x33103d90 // bfi w16, w12, #16, #16 - WORD $0x7100021f // cmp w16, #0 - WORD $0xfa400b80 // ccmp x28, #0, #0, eq - WORD $0x54000180 // b.eq LBB0_444 $48(%rip) - WORD $0x0a3c020c // bic w12, w16, w28 - WORD $0x2a0c078d // orr w13, w28, w12, lsl #1 - WORD $0x0a1e0210 // and w16, w16, w30 - WORD $0x0a2d0210 // bic w16, w16, w13 - WORD $0x2b0c020c // adds w12, w16, w12 - WORD $0x1a9f37fc // cset w28, hs - WORD $0x4a0c04cc // eor w12, w6, w12, lsl #1 - WORD $0x0a0d018c // and w12, w12, w13 - WORD $0x2a2c03ec // mvn w12, w12 - WORD $0x8a040184 // and x4, x12, x4 - WORD $0x14000002 // b LBB0_445 $8(%rip) -LBB0_444: - WORD $0xd280001c // mov x28, #0 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x33103dc2 // bfi w2, w14, #16, #16 + WORD $0x7100005f // cmp w2, #0 + WORD $0xfa400b60 // ccmp x27, #0, #0, eq + WORD $0x54000180 // b.eq LBB0_445 $48(%rip) + WORD $0x0a3b004e // bic w14, w2, w27 + WORD $0x2a0e076f // orr w15, w27, w14, lsl #1 + WORD $0x0a050050 // and w16, w2, w5 + WORD $0x0a2f0210 // bic w16, w16, w15 + WORD $0x2b0e020e // adds w14, w16, w14 + WORD $0x1a9f37fb // cset w27, hs + WORD $0x4a0e07ce // eor w14, w30, w14, lsl #1 + WORD $0x0a0f01ce // and w14, w14, w15 + WORD $0x2a2e03ee // mvn w14, w14 + WORD $0x8a1c01dc // and x28, x14, x28 + WORD $0x14000002 // b LBB0_446 $8(%rip) LBB0_445: - WORD $0xb50023a4 // cbnz x4, LBB0_477 $1140(%rip) - WORD $0x910080a5 // add x5, x5, #32 - WORD $0xd100837b // sub x27, x27, #32 - WORD $0x8b1b032c // add x12, x25, x27 - WORD $0xf100fd9f // cmp x12, #63 - WORD $0x54fffa6c // b.gt LBB0_442 $-180(%rip) - WORD $0xb50024dc // cbnz x28, LBB0_481 $1176(%rip) - WORD $0x8b0802c8 // add x8, x22, x8 - WORD $0x8b050108 // add x8, x8, x5 - WORD $0x91000508 // add x8, x8, #1 - WORD $0xaa2503ec // mvn x12, x5 - WORD $0x8b190185 // add x5, x12, x25 - WORD $0xf10004bf // cmp x5, #1 - WORD $0x5400264a // b.ge LBB0_484 $1224(%rip) - WORD $0x17ffff7e // b LBB0_418 $-520(%rip) -LBB0_449: - WORD $0xb201e3ea // mov x10, #-8608480567731124088 - WORD $0xa9010bf1 // stp x17, x2, [sp, #16] - WORD $0xd280001c // mov x28, #0 - WORD $0xd280001a // mov x26, #0 - WORD $0xd2800008 // mov x8, #0 - WORD $0xd2800019 // mov x25, #0 - WORD $0xf940040c // ldr x12, [x0, #8] - WORD $0xcb13019b // sub x27, x12, x19 - WORD $0x8b1302d3 // add x19, x22, x19 - WORD $0x14000009 // b LBB0_451 $36(%rip) + WORD $0xd280001b // mov x27, #0 +LBB0_446: + WORD $0xb500253c // cbnz x28, LBB0_478 $1188(%rip) + WORD $0x910082f7 // add x23, x23, #32 + WORD $0xd100835a // sub x26, x26, #32 + WORD $0x8b1a030e // add x14, x24, x26 + WORD $0xf100fddf // cmp x14, #63 + WORD $0x54fffa6c // b.gt LBB0_443 $-180(%rip) + WORD $0xb5002a9b // cbnz x27, LBB0_488 $1360(%rip) + WORD $0x8b15026e // add x14, x19, x21 + WORD $0x8b1701ce // add x14, x14, x23 + WORD $0x910005d5 // add x21, x14, #1 + WORD $0xaa3703ee // mvn x14, x23 + WORD $0x8b1801d7 // add x23, x14, x24 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 LBB0_450: - WORD $0x937ffcbc // asr x28, x5, #63 - WORD $0x9e6703d3 // fmov d19, lr + WORD $0xaa1103f0 // mov x16, x17 + WORD $0x14000127 // b LBB0_481 $1180(%rip) +LBB0_451: + WORD $0xd280001a // mov x26, #0 + WORD $0xd2800018 // mov x24, #0 + WORD $0xd2800015 // mov x21, #0 + WORD $0xd2800017 // mov x23, #0 + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xcb1601cf // sub x15, x14, x22 + WORD $0x8b160273 // add x19, x19, x22 + WORD $0x1400000b // b LBB0_453 $44(%rip) +LBB0_452: + WORD $0x937fff5a // asr x26, x26, #63 + WORD $0x9e670373 // fmov d19, x27 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b080188 // add x8, x12, x8 + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1501d5 // add x21, x14, x21 WORD $0x91010273 // add x19, x19, #64 - WORD $0xaa1603fb // mov x27, x22 -LBB0_451: - WORD $0xf1010376 // subs x22, x27, #64 - WORD $0x540016eb // b.lt LBB0_458 $732(%rip) -LBB0_452: + WORD $0xf9400fef // ldr x15, [sp, #24] + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 +LBB0_453: + WORD $0xf10101ee // subs x14, x15, #64 + WORD $0xa9013bef // stp x15, x14, [sp, #16] + WORD $0x5400176b // b.lt LBB0_460 $748(%rip) +LBB0_454: WORD $0xad405676 // ldp q22, q21, [x19] WORD $0xad414e74 // ldp q20, q19, [x19, #32] WORD $0x6e238ed7 // cmeq.16b v23, v22, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e238eb7 // cmeq.16b v23, v21, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e238e97 // cmeq.16b v23, v20, v3 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -2548,35 +2589,35 @@ LBB0_452: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01b0 // orr x16, x13, x12 - WORD $0xaa1a020c // orr x12, x16, x26 - WORD $0xb500008c // cbnz x12, LBB0_454 $16(%rip) - WORD $0xd280001a // mov x26, #0 - WORD $0xd2800004 // mov x4, #0 - WORD $0x1400000a // b LBB0_455 $40(%rip) -LBB0_454: - WORD $0x8a3a020c // bic x12, x16, x26 - WORD $0xaa0c074d // orr x13, x26, x12, lsl #1 - WORD $0x8a2d0210 // bic x16, x16, x13 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01e2 // orr x2, x15, x14 + WORD $0xaa18004e // orr x14, x2, x24 + WORD $0xb500008e // cbnz x14, LBB0_456 $16(%rip) + WORD $0xd2800018 // mov x24, #0 + WORD $0xd280001b // mov x27, #0 + WORD $0x1400000a // b LBB0_457 $40(%rip) +LBB0_456: + WORD $0x8a38004e // bic x14, x2, x24 + WORD $0xaa0e070f // orr x15, x24, x14, lsl #1 + WORD $0x8a2f0050 // bic x16, x2, x15 WORD $0x9201f210 // and x16, x16, #0xaaaaaaaaaaaaaaaa - WORD $0xab0c020c // adds x12, x16, x12 - WORD $0x1a9f37fa // cset w26, hs - WORD $0xd37ff98c // lsl x12, x12, #1 - WORD $0xd200f18c // eor x12, x12, #0x5555555555555555 - WORD $0x8a0d0184 // and x4, x12, x13 -LBB0_455: + WORD $0xab0e020e // adds x14, x16, x14 + WORD $0x1a9f37f8 // cset w24, hs + WORD $0xd37ff9ce // lsl x14, x14, #1 + WORD $0xd200f1ce // eor x14, x14, #0x5555555555555555 + WORD $0x8a0f01db // and x27, x14, x15 +LBB0_457: WORD $0x6e208ed7 // cmeq.16b v23, v22, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e208e97 // cmeq.16b v23, v20, v0 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -2589,69 +2630,71 @@ LBB0_455: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a24018c // bic x12, x12, x4 - WORD $0x9200e18d // and x13, x12, #0x1111111111111111 - WORD $0x9203e190 // and x16, x12, #0x2222222222222222 - WORD $0x9202e191 // and x17, x12, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xb200e3fe // mov lr, #1229782938247303441 - WORD $0x9b1e7da2 // mul x2, x13, lr - WORD $0xb201e3e7 // mov x7, #-8608480567731124088 - WORD $0xf2e11107 // movk x7, #2184, lsl #48 - WORD $0x9b077e04 // mul x4, x16, x7 - WORD $0xca040042 // eor x2, x2, x4 - WORD $0xb202e3e6 // mov x6, #4919131752989213764 - WORD $0xf2e08886 // movk x6, #1092, lsl #48 - WORD $0x9b067e24 // mul x4, x17, x6 - WORD $0xb203e3e5 // mov x5, #2459565876494606882 - WORD $0xf2e04445 // movk x5, #546, lsl #48 - WORD $0x9b057d85 // mul x5, x12, x5 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0xca040042 // eor x2, x2, x4 - WORD $0xb203e3f5 // mov x21, #2459565876494606882 - WORD $0x9b157da4 // mul x4, x13, x21 - WORD $0x9b1e7e05 // mul x5, x16, lr - WORD $0xca050084 // eor x4, x4, x5 - WORD $0x9b077e25 // mul x5, x17, x7 - WORD $0x9b067d86 // mul x6, x12, x6 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0xca050084 // eor x4, x4, x5 - WORD $0xb202e3f8 // mov x24, #4919131752989213764 - WORD $0x9b187da5 // mul x5, x13, x24 - WORD $0x9b157e06 // mul x6, x16, x21 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b1e7e26 // mul x6, x17, lr - WORD $0x9b077d87 // mul x7, x12, x7 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3b01ce // bic x14, x14, x27 + WORD $0x9200e1cf // and x15, x14, #0x1111111111111111 + WORD $0x9203e1d0 // and x16, x14, #0x2222222222222222 + WORD $0x9202e1d1 // and x17, x14, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0x9b047de2 // mul x2, x15, x4 + WORD $0x9b1c7e06 // mul x6, x16, x28 + WORD $0xca060042 // eor x2, x2, x6 + WORD $0x9b077e26 // mul x6, x17, x7 + WORD $0xb202e3fb // mov x27, #4919131752989213764 + WORD $0xf2e0889b // movk x27, #1092, lsl #48 + WORD $0xb203e3e7 // mov x7, #2459565876494606882 + WORD $0xf2e04447 // movk x7, #546, lsl #48 + WORD $0x9b077dc7 // mul x7, x14, x7 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xca060042 // eor x2, x2, x6 + WORD $0xb200e3f6 // mov x22, #1229782938247303441 + WORD $0xb203e3e4 // mov x4, #2459565876494606882 + WORD $0x9b047de6 // mul x6, x15, x4 + WORD $0x9b167e07 // mul x7, x16, x22 WORD $0xca0700c6 // eor x6, x6, x7 - WORD $0xca0600a5 // eor x5, x5, x6 - WORD $0x9b0a7dad // mul x13, x13, x10 - WORD $0x9b187e10 // mul x16, x16, x24 - WORD $0xca1001ad // eor x13, x13, x16 - WORD $0x9b157e30 // mul x16, x17, x21 - WORD $0x9b1e7d8c // mul x12, x12, lr - WORD $0xca0c020c // eor x12, x16, x12 - WORD $0xca0c01ac // eor x12, x13, x12 - WORD $0x9200e04d // and x13, x2, #0x1111111111111111 - WORD $0x9203e090 // and x16, x4, #0x2222222222222222 - WORD $0x9202e0b1 // and x17, x5, #0x4444444444444444 - WORD $0x9201e18c // and x12, x12, #0x8888888888888888 - WORD $0xaa1001ad // orr x13, x13, x16 - WORD $0xaa0c022c // orr x12, x17, x12 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xca1c0185 // eor x5, x12, x28 + WORD $0x9b1c7e27 // mul x7, x17, x28 + WORD $0x9b1b7ddb // mul x27, x14, x27 + WORD $0xca1b00e7 // eor x7, x7, x27 + WORD $0xca0700c6 // eor x6, x6, x7 + WORD $0xb202e3f9 // mov x25, #4919131752989213764 + WORD $0x9b197de7 // mul x7, x15, x25 + WORD $0x9b047e1b // mul x27, x16, x4 + WORD $0xca1b00e7 // eor x7, x7, x27 + WORD $0x9b167e3b // mul x27, x17, x22 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0x9b1c7ddc // mul x28, x14, x28 + WORD $0xca1c037b // eor x27, x27, x28 + WORD $0xca1b00e7 // eor x7, x7, x27 + WORD $0xb201e3f6 // mov x22, #-8608480567731124088 + WORD $0x9b167def // mul x15, x15, x22 + WORD $0x9b197e10 // mul x16, x16, x25 + WORD $0xca1001ef // eor x15, x15, x16 + WORD $0x9b047e30 // mul x16, x17, x4 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x9b047dce // mul x14, x14, x4 + WORD $0xca0e020e // eor x14, x16, x14 + WORD $0xca0e01ee // eor x14, x15, x14 + WORD $0x9200e04f // and x15, x2, #0x1111111111111111 + WORD $0x9203e0d0 // and x16, x6, #0x2222222222222222 + WORD $0x9202e0f1 // and x17, x7, #0x4444444444444444 + WORD $0x9201e1ce // and x14, x14, #0x8888888888888888 + WORD $0xaa1001ef // orr x15, x15, x16 + WORD $0xaa0e022e // orr x14, x17, x14 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xca1a01da // eor x26, x14, x26 WORD $0x6e278ed7 // cmeq.16b v23, v22, v7 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ec // fmov w12, s23 + WORD $0x1e2602ee // fmov w14, s23 WORD $0x6e278eb7 // cmeq.16b v23, v21, v7 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ed // fmov w13, s23 + WORD $0x1e2602ef // fmov w15, s23 WORD $0x6e278e97 // cmeq.16b v23, v20, v7 WORD $0x4e211ef7 // and.16b v23, v23, v1 WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 @@ -2664,20 +2707,20 @@ LBB0_455: WORD $0x1e2602f1 // fmov w17, s23 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0x8a25019e // bic lr, x12, x5 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0x8a3a01db // bic x27, x14, x26 WORD $0x6e268ed6 // cmeq.16b v22, v22, v6 WORD $0x4e211ed6 // and.16b v22, v22, v1 WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602cc // fmov w12, s22 + WORD $0x1e2602ce // fmov w14, s22 WORD $0x6e268eb5 // cmeq.16b v21, v21, v6 WORD $0x4e211eb5 // and.16b v21, v21, v1 WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602ad // fmov w13, s21 + WORD $0x1e2602af // fmov w15, s21 WORD $0x6e268e94 // cmeq.16b v20, v20, v6 WORD $0x4e211e94 // and.16b v20, v20, v1 WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 @@ -2690,195 +2733,241 @@ LBB0_455: WORD $0x1e260271 // fmov w17, s19 WORD $0xd3607e10 // lsl x16, x16, #32 WORD $0xaa11c210 // orr x16, x16, x17, lsl #48 - WORD $0x53103dad // lsl w13, w13, #16 - WORD $0xaa0d020d // orr x13, x16, x13 - WORD $0xaa0c01ac // orr x12, x13, x12 - WORD $0xea250184 // bics x4, x12, x5 - WORD $0x54ffe9c0 // b.eq LBB0_450 $-712(%rip) -LBB0_456: - WORD $0xd1000490 // sub x16, x4, #1 - WORD $0x8a1e020c // and x12, x16, lr - WORD $0x9e670193 // fmov d19, x12 + WORD $0x53103def // lsl w15, w15, #16 + WORD $0xaa0f020f // orr x15, x16, x15 + WORD $0xaa0e01ee // orr x14, x15, x14 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xea3a01dc // bics x28, x14, x26 + WORD $0x54ffe8e0 // b.eq LBB0_452 $-740(%rip) +LBB0_458: + WORD $0xd1000782 // sub x2, x28, #1 + WORD $0x8a1b004e // and x14, x2, x27 + WORD $0x9e6701d3 // fmov d19, x14 WORD $0x0e205a73 // cnt.8b v19, v19 WORD $0x2e303a73 // uaddlv.8b h19, v19 - WORD $0x1e26026c // fmov w12, s19 - WORD $0x8b08018c // add x12, x12, x8 - WORD $0xeb19019f // cmp x12, x25 - WORD $0x540006e9 // b.ls LBB0_475 $220(%rip) - WORD $0x91000739 // add x25, x25, #1 - WORD $0xea040204 // ands x4, x16, x4 - WORD $0x54fffea1 // b.ne LBB0_456 $-44(%rip) - WORD $0x17ffff41 // b LBB0_450 $-764(%rip) -LBB0_458: - WORD $0xf100037f // cmp x27, #0 - WORD $0x540009cd // b.le LBB0_480 $312(%rip) + WORD $0x1e26026e // fmov w14, s19 + WORD $0x8b1501ce // add x14, x14, x21 + WORD $0xeb1701df // cmp x14, x23 + WORD $0x540007c9 // b.ls LBB0_477 $248(%rip) + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xea1c005c // ands x28, x2, x28 + WORD $0x54fffea1 // b.ne LBB0_458 $-44(%rip) + WORD $0x17ffff3a // b LBB0_452 $-792(%rip) +LBB0_460: + WORD $0xf10001ff // cmp x15, #0 + WORD $0x54000dad // b.le LBB0_487 $436(%rip) WORD $0xad0243f0 // stp q16, q16, [sp, #64] WORD $0xad0143f0 // stp q16, q16, [sp, #32] - WORD $0x92402e6c // and x12, x19, #0xfff - WORD $0xf13f059f // cmp x12, #4033 - WORD $0x54000363 // b.lo LBB0_470 $108(%rip) - WORD $0xf1008374 // subs x20, x27, #32 - WORD $0x540000a3 // b.lo LBB0_462 $20(%rip) + WORD $0x92402e68 // and x8, x19, #0xfff + WORD $0xf13f051f // cmp x8, #4033 + WORD $0x54000383 // b.lo LBB0_472 $112(%rip) + WORD $0xf9400be8 // ldr x8, [sp, #16] + WORD $0xf100811b // subs x27, x8, #32 + WORD $0x540000a3 // b.lo LBB0_464 $20(%rip) WORD $0xacc15273 // ldp q19, q20, [x19], #32 WORD $0xad0153f3 // stp q19, q20, [sp, #32] - WORD $0xf9400fe5 // ldr x5, [sp, #24] - WORD $0x14000003 // b LBB0_463 $12(%rip) -LBB0_462: - WORD $0x910083e5 // add x5, sp, #32 - WORD $0xaa1b03f4 // mov x20, x27 -LBB0_463: - WORD $0xf1004290 // subs x16, x20, #16 - WORD $0x54000283 // b.lo LBB0_471 $80(%rip) - WORD $0x3cc10673 // ldr q19, [x19], #16 - WORD $0x3c8104b3 // str q19, [x5], #16 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1002210 // subs x16, x16, #8 - WORD $0x54000222 // b.hs LBB0_472 $68(%rip) + WORD $0xaa0b03e8 // mov x8, x11 + WORD $0x14000003 // b LBB0_465 $12(%rip) +LBB0_464: + WORD $0x910083e8 // add x8, sp, #32 + WORD $0xf9400bfb // ldr x27, [sp, #16] LBB0_465: - WORD $0xf1001290 // subs x16, x20, #4 - WORD $0x54000283 // b.lo LBB0_473 $80(%rip) -LBB0_466: - WORD $0xb840466c // ldr w12, [x19], #4 - WORD $0xb80044ac // str w12, [x5], #4 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1000a10 // subs x16, x16, #2 - WORD $0x54000222 // b.hs LBB0_474 $68(%rip) + WORD $0xf1004362 // subs x2, x27, #16 + WORD $0x54000343 // b.lo LBB0_473 $104(%rip) + WORD $0x3cc10673 // ldr q19, [x19], #16 + WORD $0x3c810513 // str q19, [x8], #16 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xf1002042 // subs x2, x2, #8 + WORD $0x540002e2 // b.hs LBB0_474 $92(%rip) LBB0_467: - WORD $0xb4000074 // cbz x20, LBB0_469 $12(%rip) + WORD $0xf1001362 // subs x2, x27, #4 + WORD $0x54000343 // b.lo LBB0_475 $104(%rip) LBB0_468: - WORD $0x3940026c // ldrb w12, [x19] - WORD $0x390000ac // strb w12, [x5] + WORD $0xb840466e // ldr w14, [x19], #4 + WORD $0xb800450e // str w14, [x8], #4 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xf1000842 // subs x2, x2, #2 + WORD $0x540002e2 // b.hs LBB0_476 $92(%rip) LBB0_469: - WORD $0x910083f3 // add x19, sp, #32 + WORD $0xb400007b // cbz x27, LBB0_471 $12(%rip) LBB0_470: - WORD $0xb201e3ea // mov x10, #-8608480567731124088 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x17ffff27 // b LBB0_452 $-868(%rip) + WORD $0x3940026e // ldrb w14, [x19] + WORD $0x3900010e // strb w14, [x8] LBB0_471: - WORD $0xf1002290 // subs x16, x20, #8 - WORD $0x54fffe23 // b.lo LBB0_465 $-60(%rip) + WORD $0x910083f3 // add x19, sp, #32 LBB0_472: - WORD $0xf840866c // ldr x12, [x19], #8 - WORD $0xf80084ac // str x12, [x5], #8 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xf1001210 // subs x16, x16, #4 - WORD $0x54fffdc2 // b.hs LBB0_466 $-72(%rip) + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17ffff1c // b LBB0_454 $-912(%rip) LBB0_473: - WORD $0xf1000a90 // subs x16, x20, #2 - WORD $0x54fffe23 // b.lo LBB0_467 $-60(%rip) + WORD $0xf1002362 // subs x2, x27, #8 + WORD $0x54fffd63 // b.lo LBB0_467 $-84(%rip) LBB0_474: - WORD $0x7840266c // ldrh w12, [x19], #2 - WORD $0x780024ac // strh w12, [x5], #2 - WORD $0xaa1003f4 // mov x20, x16 - WORD $0xb5fffdd0 // cbnz x16, LBB0_468 $-72(%rip) - WORD $0x17ffffef // b LBB0_469 $-68(%rip) + WORD $0xf840866e // ldr x14, [x19], #8 + WORD $0xf800850e // str x14, [x8], #8 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xf1001042 // subs x2, x2, #4 + WORD $0x54fffd02 // b.hs LBB0_468 $-96(%rip) LBB0_475: - WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xdac0008c // rbit x12, x4 - WORD $0xdac0118c // clz x12, x12 - WORD $0xcb1b018c // sub x12, x12, x27 - WORD $0x8b080188 // add x8, x12, x8 - WORD $0x9100050c // add x12, x8, #1 - WORD $0xf900002c // str x12, [x1] - WORD $0xf940040d // ldr x13, [x0, #8] - WORD $0xeb0d019f // cmp x12, x13 - WORD $0x9a8825b3 // csinc x19, x13, x8, hs - WORD $0xf9000033 // str x19, [x1] + WORD $0xf1000b62 // subs x2, x27, #2 + WORD $0x54fffd63 // b.lo LBB0_469 $-84(%rip) LBB0_476: - WORD $0xa9410bf1 // ldp x17, x2, [sp, #16] - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x10fec947 // adr x7, lCPI0_1 $-9944(%rip) - WORD $0x3201f3fe // mov w30, #-1431655766 -Lloh10: - WORD $0x1000bc0a // adr x10, __UnquoteTab $6016(%rip) -Lloh11: - WORD $0x9100014a // add x10, x10, __UnquoteTab@PAGEOFF $0(%rip) - WORD $0x17fffe70 // b LBB0_418 $-1600(%rip) + WORD $0x7840266e // ldrh w14, [x19], #2 + WORD $0x7800250e // strh w14, [x8], #2 + WORD $0xaa0203fb // mov x27, x2 + WORD $0xb5fffd02 // cbnz x2, LBB0_470 $-96(%rip) + WORD $0x17ffffe9 // b LBB0_471 $-92(%rip) LBB0_477: - WORD $0xdac0008c // rbit x12, x4 - WORD $0xdac0118c // clz x12, x12 - WORD $0x8b050108 // add x8, x8, x5 - WORD $0x8b080188 // add x8, x12, x8 - WORD $0x91000913 // add x19, x8, #2 + WORD $0xf940040e // ldr x14, [x0, #8] + WORD $0xdac0038f // rbit x15, x28 + WORD $0xdac011ef // clz x15, x15 + WORD $0xf9400bf0 // ldr x16, [sp, #16] + WORD $0xcb1001ef // sub x15, x15, x16 + WORD $0x8b0e01ee // add x14, x15, x14 + WORD $0x910005cf // add x15, x14, #1 + WORD $0xf900002f // str x15, [x1] + WORD $0xf9400410 // ldr x16, [x0, #8] + WORD $0xeb1001ff // cmp x15, x16 + WORD $0x9a8e2616 // csinc x22, x16, x14, hs + WORD $0xf9000036 // str x22, [x1] + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 +Lloh18: + WORD $0x10012c10 // adr x16, __UnquoteTab $9600(%rip) +Lloh19: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x17fffd5c // b LBB0_391 $-2704(%rip) LBB0_478: - WORD $0xf9000033 // str x19, [x1] - WORD $0x17fffe69 // b LBB0_418 $-1628(%rip) + WORD $0xdac0038e // rbit x14, x28 + WORD $0xdac011ce // clz x14, x14 + WORD $0x8b1702af // add x15, x21, x23 + WORD $0x8b0f01ce // add x14, x14, x15 + WORD $0x910009d6 // add x22, x14, #2 + WORD $0xf9000036 // str x22, [x1] + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xaa1103f0 // mov x16, x17 + WORD $0x17fffd52 // b LBB0_391 $-2744(%rip) LBB0_479: - WORD $0x8b1302c8 // add x8, x22, x19 - WORD $0xf10004bf // cmp x5, #1 - WORD $0x5400032a // b.ge LBB0_484 $100(%rip) - WORD $0x17fffe65 // b LBB0_418 $-1644(%rip) + WORD $0xf9000036 // str x22, [x1] + WORD $0x17fffd50 // b LBB0_391 $-2752(%rip) LBB0_480: - WORD $0xf9400413 // ldr x19, [x0, #8] - WORD $0xf9000033 // str x19, [x1] - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x17ffffeb // b LBB0_476 $-84(%rip) + WORD $0x8b160275 // add x21, x19, x22 LBB0_481: - WORD $0xd100072c // sub x12, x25, #1 - WORD $0xeb05019f // cmp x12, x5 - WORD $0x54ffa7e0 // b.eq LBB0_377 $-2820(%rip) - WORD $0x8b0802c8 // add x8, x22, x8 - WORD $0x8b050108 // add x8, x8, x5 - WORD $0x91000908 // add x8, x8, #2 - WORD $0xcb05032c // sub x12, x25, x5 - WORD $0xd1000985 // sub x5, x12, #2 - WORD $0x529ffff4 // mov w20, #65535 - WORD $0x3200f3e6 // mov w6, #1431655765 - WORD $0x3201f3fe // mov w30, #-1431655766 - WORD $0xf10004bf // cmp x5, #1 - WORD $0x540000ea // b.ge LBB0_484 $28(%rip) - WORD $0x17fffe53 // b LBB0_418 $-1716(%rip) + WORD $0xf10006ff // cmp x23, #1 + WORD $0x540000ea // b.ge LBB0_483 $28(%rip) + WORD $0x17fffd4c // b LBB0_391 $-2768(%rip) +LBB0_482: + WORD $0x92800022 // mov x2, #-2 + WORD $0x52800058 // mov w24, #2 + WORD $0x8b1802b5 // add x21, x21, x24 + WORD $0xab0202f7 // adds x23, x23, x2 + WORD $0x54ffa8ed // b.le LBB0_391 $-2788(%rip) LBB0_483: - WORD $0x92800030 // mov x16, #-2 - WORD $0x52800044 // mov w4, #2 - WORD $0x8b040108 // add x8, x8, x4 - WORD $0xab1000a5 // adds x5, x5, x16 - WORD $0x54ffc9cd // b.le LBB0_418 $-1736(%rip) -LBB0_484: - WORD $0x39400110 // ldrb w16, [x8] - WORD $0x7101721f // cmp w16, #92 - WORD $0x54ffff20 // b.eq LBB0_483 $-28(%rip) - WORD $0x71008a1f // cmp w16, #34 - WORD $0x540000e0 // b.eq LBB0_487 $28(%rip) - WORD $0x92800010 // mov x16, #-1 - WORD $0x52800024 // mov w4, #1 - WORD $0x8b040108 // add x8, x8, x4 - WORD $0xab1000a5 // adds x5, x5, x16 - WORD $0x54fffeec // b.gt LBB0_484 $-36(%rip) - WORD $0x17fffe43 // b LBB0_418 $-1780(%rip) + WORD $0x394002a2 // ldrb w2, [x21] + WORD $0x7101705f // cmp w2, #92 + WORD $0x54ffff20 // b.eq LBB0_482 $-28(%rip) + WORD $0x7100885f // cmp w2, #34 + WORD $0x540000e0 // b.eq LBB0_486 $28(%rip) + WORD $0x92800002 // mov x2, #-1 + WORD $0x52800038 // mov w24, #1 + WORD $0x8b1802b5 // add x21, x21, x24 + WORD $0xab0202f7 // adds x23, x23, x2 + WORD $0x54fffeec // b.gt LBB0_483 $-36(%rip) + WORD $0x17fffd3c // b LBB0_391 $-2832(%rip) +LBB0_486: + WORD $0xcb1302ae // sub x14, x21, x19 + WORD $0x910005d6 // add x22, x14, #1 + WORD $0xf9000036 // str x22, [x1] + WORD $0x17fffd38 // b LBB0_391 $-2848(%rip) LBB0_487: - WORD $0xcb160108 // sub x8, x8, x22 - WORD $0x91000513 // add x19, x8, #1 - WORD $0xf9000033 // str x19, [x1] - WORD $0x17fffe3f // b LBB0_418 $-1796(%rip) + WORD $0xf9400416 // ldr x22, [x0, #8] + WORD $0xf9000036 // str x22, [x1] + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 +Lloh20: + WORD $0x100125f0 // adr x16, __UnquoteTab $9404(%rip) +Lloh21: + WORD $0x91000210 // add x16, x16, __UnquoteTab@PAGEOFF $0(%rip) + WORD $0x17fffd2b // b LBB0_391 $-2900(%rip) LBB0_488: - WORD $0x9100416b // add x11, x11, #16 - WORD $0xeb11017f // cmp x11, x17 - WORD $0x54fec7e1 // b.ne LBB0_2 $-9988(%rip) -LBB0_489: -Lloh12: - WORD $0x10fec2a8 // adr x8, lCPI0_2 $-10156(%rip) -Lloh13: + WORD $0xd1000708 // sub x8, x24, #1 + WORD $0xeb17011f // cmp x8, x23 + WORD $0x54000161 // b.ne LBB0_490 $44(%rip) + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0xaa1103f0 // mov x16, x17 + WORD $0x17fffd1e // b LBB0_391 $-2952(%rip) +LBB0_490: + WORD $0x8b150268 // add x8, x19, x21 + WORD $0x8b170108 // add x8, x8, x23 + WORD $0x91000915 // add x21, x8, #2 + WORD $0xcb170308 // sub x8, x24, x23 + WORD $0xd1000917 // sub x23, x8, #2 + WORD $0x529fffe8 // mov w8, #65535 + WORD $0x3200f3fe // mov w30, #1431655765 + WORD $0x3201f3e5 // mov w5, #-1431655766 + WORD $0xb201e3fc // mov x28, #-8608480567731124088 + WORD $0xf2e1111c // movk x28, #2184, lsl #48 + WORD $0xb202e3e7 // mov x7, #4919131752989213764 + WORD $0xf2e08887 // movk x7, #1092, lsl #48 + WORD $0xb200e3e4 // mov x4, #1229782938247303441 + WORD $0x17fffe9a // b LBB0_450 $-1432(%rip) +LBB0_491: + WORD $0x91004129 // add x9, x9, #16 + WORD $0xeb0a013f // cmp x9, x10 + WORD $0x54febf81 // b.ne LBB0_2 $-10256(%rip) +LBB0_492: + WORD $0xb400aa83 // cbz x3, LBB0_779 $5456(%rip) +Lloh22: + WORD $0x10feb988 // adr x8, lCPI0_2 $-10448(%rip) +Lloh23: WORD $0x3dc00100 // ldr q0, [x8, lCPI0_2@PAGEOFF] $0(%rip) - WORD $0xaa0303ec // mov x12, x3 - WORD $0x3c808580 // str q0, [x12], #8 - WORD $0xf940000b // ldr x11, [x0] - WORD $0xaa2b03ed // mvn x13, x11 - WORD $0xcb0b03ee // neg x14, x11 - WORD $0xd100056f // sub x15, x11, #1 - WORD $0x92800010 // mov x16, #-1 - WORD $0x52800031 // mov w17, #1 - WORD $0xd284c002 // mov x2, #9728 - WORD $0xf2c00022 // movk x2, #1, lsl #32 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 + WORD $0xaa0303ea // mov x10, x3 + WORD $0x3c808540 // str q0, [x10], #8 + WORD $0xf9400009 // ldr x9, [x0] + WORD $0xaa2903eb // mvn x11, x9 + WORD $0xf940003b // ldr x27, [x1] + WORD $0xcb0903ec // neg x12, x9 + WORD $0xd100052d // sub x13, x9, #1 + WORD $0x9280000e // mov x14, #-1 + WORD $0x5280002f // mov w15, #1 + WORD $0xd284c010 // mov x16, #9728 + WORD $0xf2c00030 // movk x16, #1, lsl #32 + WORD $0x52800078 // mov w24, #3 + WORD $0x52800085 // mov w5, #4 WORD $0x4f01e440 // movi.16b v0, #34 WORD $0x4f02e781 // movi.16b v1, #92 - WORD $0x3dc00122 // ldr q2, [x9, lCPI0_0@PAGEOFF] $0(%rip) - WORD $0x3dc000e3 // ldr q3, [x7, lCPI0_1@PAGEOFF] $0(%rip) - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 +Lloh24: + WORD $0x10feb668 // adr x8, lCPI0_0 $-10548(%rip) +Lloh25: + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_0@PAGEOFF] $0(%rip) +Lloh26: + WORD $0x10feb6a8 // adr x8, lCPI0_1 $-10540(%rip) +Lloh27: + WORD $0x3dc00103 // ldr q3, [x8, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 WORD $0x4f01e5c4 // movi.16b v4, #46 WORD $0x4f01e565 // movi.16b v5, #43 WORD $0x4f01e5a6 // movi.16b v6, #45 @@ -2886,113 +2975,115 @@ Lloh13: WORD $0x4f06e607 // movi.16b v7, #208 WORD $0x4f00e550 // movi.16b v16, #10 WORD $0x4f06e7f1 // movi.16b v17, #223 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 WORD $0x4f02e4b2 // movi.16b v18, #69 - WORD $0x52800029 // mov w9, #1 -LBB0_490: + WORD $0x52800024 // mov w4, #1 +LBB0_494: WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb08027f // cmp x19, x8 - WORD $0x54000162 // b.hs LBB0_495 $44(%rip) - WORD $0x38736964 // ldrb w4, [x11, x19] - WORD $0x7100349f // cmp w4, #13 - WORD $0x54000100 // b.eq LBB0_495 $32(%rip) - WORD $0x7100809f // cmp w4, #32 - WORD $0x540000c0 // b.eq LBB0_495 $24(%rip) - WORD $0x51002c84 // sub w4, w4, #11 - WORD $0x3100089f // cmn w4, #2 - WORD $0x54000062 // b.hs LBB0_495 $12(%rip) - WORD $0xaa1303fb // mov x27, x19 - WORD $0x14000031 // b LBB0_511 $196(%rip) -LBB0_495: - WORD $0x9100067b // add x27, x19, #1 WORD $0xeb08037f // cmp x27, x8 - WORD $0x54000122 // b.hs LBB0_499 $36(%rip) - WORD $0x387b6964 // ldrb w4, [x11, x27] - WORD $0x7100349f // cmp w4, #13 + WORD $0x54000162 // b.hs LBB0_499 $44(%rip) + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 + WORD $0x54000100 // b.eq LBB0_499 $32(%rip) + WORD $0x7100823f // cmp w17, #32 WORD $0x540000c0 // b.eq LBB0_499 $24(%rip) - WORD $0x7100809f // cmp w4, #32 - WORD $0x54000080 // b.eq LBB0_499 $16(%rip) - WORD $0x51002c84 // sub w4, w4, #11 - WORD $0x3100089f // cmn w4, #2 - WORD $0x540004c3 // b.lo LBB0_511 $152(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000062 // b.hs LBB0_499 $12(%rip) + WORD $0xaa1b03fa // mov x26, x27 + WORD $0x14000031 // b LBB0_515 $196(%rip) LBB0_499: - WORD $0x91000a7b // add x27, x19, #2 - WORD $0xeb08037f // cmp x27, x8 + WORD $0x9100077a // add x26, x27, #1 + WORD $0xeb08035f // cmp x26, x8 WORD $0x54000122 // b.hs LBB0_503 $36(%rip) - WORD $0x387b6964 // ldrb w4, [x11, x27] - WORD $0x7100349f // cmp w4, #13 + WORD $0x387a6931 // ldrb w17, [x9, x26] + WORD $0x7100363f // cmp w17, #13 WORD $0x540000c0 // b.eq LBB0_503 $24(%rip) - WORD $0x7100809f // cmp w4, #32 + WORD $0x7100823f // cmp w17, #32 WORD $0x54000080 // b.eq LBB0_503 $16(%rip) - WORD $0x51002c84 // sub w4, w4, #11 - WORD $0x3100089f // cmn w4, #2 - WORD $0x54000363 // b.lo LBB0_511 $108(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x540004c3 // b.lo LBB0_515 $152(%rip) LBB0_503: - WORD $0x91000e7b // add x27, x19, #3 - WORD $0xeb08037f // cmp x27, x8 + WORD $0x91000b7a // add x26, x27, #2 + WORD $0xeb08035f // cmp x26, x8 WORD $0x54000122 // b.hs LBB0_507 $36(%rip) - WORD $0x387b6964 // ldrb w4, [x11, x27] - WORD $0x7100349f // cmp w4, #13 + WORD $0x387a6931 // ldrb w17, [x9, x26] + WORD $0x7100363f // cmp w17, #13 WORD $0x540000c0 // b.eq LBB0_507 $24(%rip) - WORD $0x7100809f // cmp w4, #32 + WORD $0x7100823f // cmp w17, #32 WORD $0x54000080 // b.eq LBB0_507 $16(%rip) - WORD $0x51002c84 // sub w4, w4, #11 - WORD $0x3100089f // cmn w4, #2 - WORD $0x54000203 // b.lo LBB0_511 $64(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000363 // b.lo LBB0_515 $108(%rip) LBB0_507: - WORD $0x9100127b // add x27, x19, #4 - WORD $0xeb08037f // cmp x27, x8 - WORD $0x540099e2 // b.hs LBB0_770 $4924(%rip) -LBB0_508: - WORD $0x387b6964 // ldrb w4, [x11, x27] - WORD $0x7100809f // cmp w4, #32 - WORD $0x9ac42224 // lsl x4, x17, x4 - WORD $0x8a020084 // and x4, x4, x2 - WORD $0xfa409884 // ccmp x4, #0, #4, ls - WORD $0x540000a0 // b.eq LBB0_510 $20(%rip) - WORD $0x9100077b // add x27, x27, #1 - WORD $0xeb1b011f // cmp x8, x27 - WORD $0x54ffff01 // b.ne LBB0_508 $-32(%rip) - WORD $0x140004c6 // b LBB0_771 $4888(%rip) -LBB0_510: - WORD $0xeb08037f // cmp x27, x8 - WORD $0x54009882 // b.hs LBB0_771 $4880(%rip) + WORD $0x91000f7a // add x26, x27, #3 + WORD $0xeb08035f // cmp x26, x8 + WORD $0x54000122 // b.hs LBB0_511 $36(%rip) + WORD $0x387a6931 // ldrb w17, [x9, x26] + WORD $0x7100363f // cmp w17, #13 + WORD $0x540000c0 // b.eq LBB0_511 $24(%rip) + WORD $0x7100823f // cmp w17, #32 + WORD $0x54000080 // b.eq LBB0_511 $16(%rip) + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 + WORD $0x54000203 // b.lo LBB0_515 $64(%rip) LBB0_511: - WORD $0x91000773 // add x19, x27, #1 - WORD $0xf9000033 // str x19, [x1] - WORD $0x8b1b017c // add x28, x11, x27 - WORD $0x39400395 // ldrb w21, [x28] - WORD $0x340097f5 // cbz w21, LBB0_771 $4860(%rip) - WORD $0xd1000534 // sub x20, x9, #1 - WORD $0xf8747988 // ldr x8, [x12, x20, lsl #3] - WORD $0xb100061f // cmn x16, #1 - WORD $0x9a900370 // csel x16, x27, x16, eq + WORD $0x9100137a // add x26, x27, #4 + WORD $0xeb08035f // cmp x26, x8 + WORD $0x5400b742 // b.hs LBB0_833 $5864(%rip) +LBB0_512: + WORD $0x387a6931 // ldrb w17, [x9, x26] + WORD $0x7100823f // cmp w17, #32 + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x8a100231 // and x17, x17, x16 + WORD $0xfa409a24 // ccmp x17, #0, #4, ls + WORD $0x540000a0 // b.eq LBB0_514 $20(%rip) + WORD $0x9100075a // add x26, x26, #1 + WORD $0xeb1a011f // cmp x8, x26 + WORD $0x54ffff01 // b.ne LBB0_512 $-32(%rip) + WORD $0x1400052e // b LBB0_799 $5304(%rip) +LBB0_514: + WORD $0xeb08035f // cmp x26, x8 + WORD $0x5400a582 // b.hs LBB0_799 $5296(%rip) +LBB0_515: + WORD $0x9100075b // add x27, x26, #1 + WORD $0xf900003b // str x27, [x1] + WORD $0x8b1a013c // add x28, x9, x26 + WORD $0x39400394 // ldrb w20, [x28] + WORD $0x3400a4f4 // cbz w20, LBB0_799 $5276(%rip) + WORD $0xd1000493 // sub x19, x4, #1 + WORD $0xf8737948 // ldr x8, [x10, x19, lsl #3] + WORD $0xb10005df // cmn x14, #1 + WORD $0x9a8e034e // csel x14, x26, x14, eq WORD $0x71000d1f // cmp w8, #3 - WORD $0x54000dcc // b.gt LBB0_529 $440(%rip) + WORD $0x54000dac // b.gt LBB0_532 $436(%rip) WORD $0x7100051f // cmp w8, #1 - WORD $0x54001d20 // b.eq LBB0_546 $932(%rip) + WORD $0x54001cc0 // b.eq LBB0_550 $920(%rip) WORD $0x7100091f // cmp w8, #2 - WORD $0x54003060 // b.eq LBB0_586 $1548(%rip) + WORD $0x54001de0 // b.eq LBB0_555 $956(%rip) WORD $0x71000d1f // cmp w8, #3 - WORD $0x54001e21 // b.ne LBB0_550 $964(%rip) - WORD $0x71008abf // cmp w21, #34 - WORD $0x540097a1 // b.ne LBB0_777 $4852(%rip) - WORD $0xf8347986 // str x6, [x12, x20, lsl #3] + WORD $0x54001d61 // b.ne LBB0_554 $940(%rip) + WORD $0x71008a9f // cmp w20, #34 + WORD $0x5400b221 // b.ne LBB0_831 $5700(%rip) + WORD $0xf8337945 // str x5, [x10, x19, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb13011e // subs lr, x8, x19 - WORD $0x5400a340 // b.eq LBB0_807 $5224(%rip) + WORD $0xeb1b011e // subs lr, x8, x27 + WORD $0x54010aa0 // b.eq LBB0_931 $8532(%rip) WORD $0xf10103df // cmp lr, #64 - WORD $0x54006763 // b.lo LBB0_699 $3308(%rip) - WORD $0xd2800009 // mov x9, #0 + WORD $0x54006a03 // b.lo LBB0_706 $3392(%rip) + WORD $0xd2800004 // mov x4, #0 WORD $0x9280001c // mov x28, #-1 -LBB0_520: - WORD $0x8b130164 // add x4, x11, x19 - WORD $0xad405093 // ldp q19, q20, [x4] - WORD $0xad415895 // ldp q21, q22, [x4, #32] +LBB0_524: + WORD $0x8b1b0131 // add x17, x9, x27 + WORD $0xad405233 // ldp q19, q20, [x17] + WORD $0xad415a35 // ldp q21, q22, [x17, #32] WORD $0x6e208e77 // cmeq.16b v23, v19, v0 WORD $0x6e208e98 // cmeq.16b v24, v20, v0 WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 @@ -3004,7 +3095,7 @@ LBB0_520: WORD $0x4e221ef7 // and.16b v23, v23, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x1e2602f1 // fmov w17, s23 WORD $0x4e221f17 // and.16b v23, v24, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 @@ -3012,106 +3103,104 @@ LBB0_520: WORD $0x4e221f37 // and.16b v23, v25, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602f4 // fmov w20, s23 + WORD $0x1e2602f3 // fmov w19, s23 WORD $0x4e221f57 // and.16b v23, v26, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602f5 // fmov w21, s23 + WORD $0x1e2602f4 // fmov w20, s23 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260276 // fmov w22, s19 + WORD $0x1e260275 // fmov w21, s19 WORD $0x4e221e93 // and.16b v19, v20, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260277 // fmov w23, s19 + WORD $0x1e260276 // fmov w22, s19 WORD $0x4e221eb3 // and.16b v19, v21, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260278 // fmov w24, s19 + WORD $0x1e260277 // fmov w23, s19 WORD $0x4e221ed3 // and.16b v19, v22, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26027a // fmov w26, s19 - WORD $0xd3607e94 // lsl x20, x20, #32 - WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 + WORD $0x1e260279 // fmov w25, s19 + WORD $0xd3607e73 // lsl x19, x19, #32 + WORD $0xaa14c273 // orr x19, x19, x20, lsl #48 WORD $0x53103cc6 // lsl w6, w6, #16 - WORD $0xaa060286 // orr x6, x20, x6 - WORD $0xaa0400d4 // orr x20, x6, x4 - WORD $0xd3607f04 // lsl x4, x24, #32 - WORD $0xaa1ac084 // orr x4, x4, x26, lsl #48 - WORD $0x53103ee6 // lsl w6, w23, #16 - WORD $0xaa060084 // orr x4, x4, x6 - WORD $0xaa160084 // orr x4, x4, x22 - WORD $0xb5000104 // cbnz x4, LBB0_524 $32(%rip) - WORD $0xb5000189 // cbnz x9, LBB0_525 $48(%rip) - WORD $0xb50002d4 // cbnz x20, LBB0_526 $88(%rip) -LBB0_523: + WORD $0xaa060266 // orr x6, x19, x6 + WORD $0xaa1100d3 // orr x19, x6, x17 + WORD $0xd3607ef1 // lsl x17, x23, #32 + WORD $0xaa19c231 // orr x17, x17, x25, lsl #48 + WORD $0x53103ec6 // lsl w6, w22, #16 + WORD $0xaa060231 // orr x17, x17, x6 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xb5000111 // cbnz x17, LBB0_528 $32(%rip) + WORD $0xb5000184 // cbnz x4, LBB0_529 $48(%rip) + WORD $0xb50002d3 // cbnz x19, LBB0_530 $88(%rip) +LBB0_527: WORD $0xd10103de // sub lr, lr, #64 - WORD $0x91010273 // add x19, x19, #64 + WORD $0x9101037b // add x27, x27, #64 WORD $0xf100ffdf // cmp lr, #63 - WORD $0x54fff8a8 // b.hi LBB0_520 $-236(%rip) - WORD $0x140002f2 // b LBB0_696 $3016(%rip) -LBB0_524: + WORD $0x54fff8a8 // b.hi LBB0_524 $-236(%rip) + WORD $0x140002fa // b LBB0_702 $3048(%rip) +LBB0_528: WORD $0xb100079f // cmn x28, #1 - WORD $0xdac00086 // rbit x6, x4 + WORD $0xdac00226 // rbit x6, x17 WORD $0xdac010c6 // clz x6, x6 - WORD $0x8b1300c6 // add x6, x6, x19 + WORD $0x8b1b00c6 // add x6, x6, x27 WORD $0x9a86139c // csel x28, x28, x6, ne -LBB0_525: - WORD $0x8a290086 // bic x6, x4, x9 - WORD $0xaa060535 // orr x21, x9, x6, lsl #1 - WORD $0x8a350089 // bic x9, x4, x21 - WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa - WORD $0xab060124 // adds x4, x9, x6 - WORD $0x1a9f37e9 // cset w9, hs - WORD $0xd37ff884 // lsl x4, x4, #1 - WORD $0xd200f084 // eor x4, x4, #0x5555555555555555 - WORD $0x8a150084 // and x4, x4, x21 - WORD $0x8a240294 // bic x20, x20, x4 - WORD $0xb4fffd94 // cbz x20, LBB0_523 $-80(%rip) -LBB0_526: - WORD $0xdac00289 // rbit x9, x20 - WORD $0xdac01129 // clz x9, x9 - WORD $0x8b130129 // add x9, x9, x19 -LBB0_527: - WORD $0x91000533 // add x19, x9, #1 -LBB0_528: - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 +LBB0_529: + WORD $0x8a240226 // bic x6, x17, x4 + WORD $0xaa060494 // orr x20, x4, x6, lsl #1 + WORD $0x8a340231 // bic x17, x17, x20 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab060231 // adds x17, x17, x6 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a140231 // and x17, x17, x20 + WORD $0x8a310273 // bic x19, x19, x17 + WORD $0xb4fffd93 // cbz x19, LBB0_527 $-80(%rip) +LBB0_530: + WORD $0xdac00271 // rbit x17, x19 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1b0231 // add x17, x17, x27 + WORD $0x9100063b // add x27, x17, #1 + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0xb6f836d3 // tbz x19, #63, LBB0_633 $1752(%rip) - WORD $0x14000464 // b LBB0_780 $4496(%rip) -LBB0_529: +LBB0_531: + WORD $0xb6f8439b // tbz x27, #63, LBB0_650 $2160(%rip) + WORD $0x1400079a // b LBB0_903 $7784(%rip) +LBB0_532: WORD $0x7100111f // cmp w8, #4 - WORD $0x54001020 // b.eq LBB0_548 $516(%rip) + WORD $0x54000fe0 // b.eq LBB0_552 $508(%rip) WORD $0x7100151f // cmp w8, #5 - WORD $0x54002360 // b.eq LBB0_588 $1132(%rip) + WORD $0x54001100 // b.eq LBB0_557 $544(%rip) WORD $0x7100191f // cmp w8, #6 - WORD $0x54001081 // b.ne LBB0_550 $528(%rip) - WORD $0x71008abf // cmp w21, #34 - WORD $0x54002281 // b.ne LBB0_587 $1104(%rip) - WORD $0x3200f3ea // mov w10, #1431655765 + WORD $0x54000fe1 // b.ne LBB0_554 $508(%rip) + WORD $0x71008a9f // cmp w20, #34 + WORD $0x54001021 // b.ne LBB0_556 $516(%rip) + WORD $0x3200f3e2 // mov w2, #1431655765 WORD $0x52800048 // mov w8, #2 - WORD $0xf8347988 // str x8, [x12, x20, lsl #3] + WORD $0xf8337948 // str x8, [x10, x19, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb13011e // subs lr, x8, x19 - WORD $0x54009560 // b.eq LBB0_807 $4780(%rip) + WORD $0xeb1b011e // subs lr, x8, x27 + WORD $0x5400fce0 // b.eq LBB0_931 $8092(%rip) WORD $0xf10103df // cmp lr, #64 - WORD $0x54006043 // b.lo LBB0_707 $3080(%rip) - WORD $0xd2800009 // mov x9, #0 + WORD $0x540062c3 // b.lo LBB0_714 $3160(%rip) + WORD $0xd2800004 // mov x4, #0 WORD $0x9280001c // mov x28, #-1 -LBB0_536: - WORD $0x8b130164 // add x4, x11, x19 - WORD $0xad405093 // ldp q19, q20, [x4] - WORD $0xad415895 // ldp q21, q22, [x4, #32] +LBB0_539: + WORD $0x8b1b0131 // add x17, x9, x27 + WORD $0xad405233 // ldp q19, q20, [x17] + WORD $0xad415a35 // ldp q21, q22, [x17, #32] WORD $0x6e208e77 // cmeq.16b v23, v19, v0 WORD $0x6e208e98 // cmeq.16b v24, v20, v0 WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 @@ -3123,7 +3212,7 @@ LBB0_536: WORD $0x4e221ef7 // and.16b v23, v23, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x1e2602f1 // fmov w17, s23 WORD $0x4e221f17 // and.16b v23, v24, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 @@ -3131,143 +3220,158 @@ LBB0_536: WORD $0x4e221f37 // and.16b v23, v25, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602f4 // fmov w20, s23 + WORD $0x1e2602f3 // fmov w19, s23 WORD $0x4e221f57 // and.16b v23, v26, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602f5 // fmov w21, s23 + WORD $0x1e2602f4 // fmov w20, s23 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260276 // fmov w22, s19 + WORD $0x1e260275 // fmov w21, s19 WORD $0x4e221e93 // and.16b v19, v20, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260277 // fmov w23, s19 + WORD $0x1e260276 // fmov w22, s19 WORD $0x4e221eb3 // and.16b v19, v21, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260278 // fmov w24, s19 + WORD $0x1e260277 // fmov w23, s19 WORD $0x4e221ed3 // and.16b v19, v22, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26027a // fmov w26, s19 - WORD $0xd3607e94 // lsl x20, x20, #32 - WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 + WORD $0x1e260279 // fmov w25, s19 + WORD $0xd3607e73 // lsl x19, x19, #32 + WORD $0xaa14c273 // orr x19, x19, x20, lsl #48 WORD $0x53103cc6 // lsl w6, w6, #16 - WORD $0xaa060286 // orr x6, x20, x6 - WORD $0xaa0400d4 // orr x20, x6, x4 - WORD $0xd3607f04 // lsl x4, x24, #32 - WORD $0xaa1ac084 // orr x4, x4, x26, lsl #48 - WORD $0x53103ee6 // lsl w6, w23, #16 - WORD $0xaa060084 // orr x4, x4, x6 - WORD $0xaa160084 // orr x4, x4, x22 - WORD $0xb5000104 // cbnz x4, LBB0_540 $32(%rip) - WORD $0xb5000189 // cbnz x9, LBB0_541 $48(%rip) - WORD $0xb50002d4 // cbnz x20, LBB0_542 $88(%rip) -LBB0_539: + WORD $0xaa060266 // orr x6, x19, x6 + WORD $0xaa1100d3 // orr x19, x6, x17 + WORD $0xd3607ef1 // lsl x17, x23, #32 + WORD $0xaa19c231 // orr x17, x17, x25, lsl #48 + WORD $0x53103ec6 // lsl w6, w22, #16 + WORD $0xaa060231 // orr x17, x17, x6 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xb5000111 // cbnz x17, LBB0_543 $32(%rip) + WORD $0xb5000184 // cbnz x4, LBB0_544 $48(%rip) + WORD $0xb50002d3 // cbnz x19, LBB0_545 $88(%rip) +LBB0_542: WORD $0xd10103de // sub lr, lr, #64 - WORD $0x91010273 // add x19, x19, #64 + WORD $0x9101037b // add x27, x27, #64 WORD $0xf100ffdf // cmp lr, #63 - WORD $0x54fff8a8 // b.hi LBB0_536 $-236(%rip) - WORD $0x140002bd // b LBB0_705 $2804(%rip) -LBB0_540: + WORD $0x54fff8a8 // b.hi LBB0_539 $-236(%rip) + WORD $0x140002d1 // b LBB0_712 $2884(%rip) +LBB0_543: WORD $0xb100079f // cmn x28, #1 - WORD $0xdac00086 // rbit x6, x4 + WORD $0xdac00226 // rbit x6, x17 WORD $0xdac010c6 // clz x6, x6 - WORD $0x8b1300c6 // add x6, x6, x19 + WORD $0x8b1b00c6 // add x6, x6, x27 WORD $0x9a86139c // csel x28, x28, x6, ne -LBB0_541: - WORD $0x8a290086 // bic x6, x4, x9 - WORD $0xaa060535 // orr x21, x9, x6, lsl #1 - WORD $0x8a350089 // bic x9, x4, x21 - WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa - WORD $0xab060124 // adds x4, x9, x6 - WORD $0x1a9f37e9 // cset w9, hs - WORD $0xd37ff884 // lsl x4, x4, #1 - WORD $0xd200f084 // eor x4, x4, #0x5555555555555555 - WORD $0x8a150084 // and x4, x4, x21 - WORD $0x8a240294 // bic x20, x20, x4 - WORD $0xb4fffd94 // cbz x20, LBB0_539 $-80(%rip) -LBB0_542: - WORD $0xdac00289 // rbit x9, x20 - WORD $0xdac01129 // clz x9, x9 - WORD $0x8b130129 // add x9, x9, x19 - WORD $0x91000533 // add x19, x9, #1 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 - WORD $0x528eadde // mov w30, #30062 +LBB0_544: + WORD $0x8a240226 // bic x6, x17, x4 + WORD $0xaa060494 // orr x20, x4, x6, lsl #1 + WORD $0x8a340231 // bic x17, x17, x20 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab060231 // adds x17, x17, x6 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a140231 // and x17, x17, x20 + WORD $0x8a310273 // bic x19, x19, x17 + WORD $0xb4fffd93 // cbz x19, LBB0_542 $-80(%rip) +LBB0_545: + WORD $0xdac00271 // rbit x17, x19 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1b0231 // add x17, x17, x27 + WORD $0x9100063b // add x27, x17, #1 +LBB0_546: + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0xb7f87ed3 // tbnz x19, #63, LBB0_780 $4056(%rip) -LBB0_543: - WORD $0xf9000033 // str x19, [x1] - WORD $0xaa1b03e8 // mov x8, x27 - WORD $0xb27ff7e9 // mov x9, #9223372036854775806 - WORD $0xeb09037f // cmp x27, x9 - WORD $0x54007cc8 // b.hi LBB0_778 $3992(%rip) + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb7f8e57b // tbnz x27, #63, LBB0_903 $7340(%rip) +LBB0_547: + WORD $0xf900003b // str x27, [x1] + WORD $0xaa1a03e8 // mov x8, x26 + WORD $0xb27ff7f1 // mov x17, #9223372036854775806 + WORD $0xeb11035f // cmp x26, x17 + WORD $0x54009748 // b.hi LBB0_832 $4840(%rip) WORD $0xf9400068 // ldr x8, [x3] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54007d8c // b.gt LBB0_779 $4016(%rip) - WORD $0x91000509 // add x9, x8, #1 - WORD $0xf9000069 // str x9, [x3] - WORD $0xf8287986 // str x6, [x12, x8, lsl #3] - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffda09 // cbnz x9, LBB0_490 $-1216(%rip) - WORD $0x140003dc // b LBB0_778 $3952(%rip) -LBB0_546: - WORD $0x7100b2bf // cmp w21, #44 - WORD $0x540017c0 // b.eq LBB0_597 $760(%rip) - WORD $0x710176bf // cmp w21, #93 - WORD $0x54001400 // b.eq LBB0_589 $640(%rip) - WORD $0x140003d6 // b LBB0_777 $3928(%rip) -LBB0_548: - WORD $0x7100eabf // cmp w21, #58 - WORD $0x54007a81 // b.ne LBB0_777 $3920(%rip) - WORD $0xf834799f // str xzr, [x12, x20, lsl #3] - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffd889 // cbnz x9, LBB0_490 $-1264(%rip) - WORD $0x140003d0 // b LBB0_778 $3904(%rip) + WORD $0x5400e42c // b.gt LBB0_902 $7300(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000071 // str x17, [x3] + WORD $0xf8287945 // str x5, [x10, x8, lsl #3] + WORD $0x140001a4 // b LBB0_651 $1680(%rip) LBB0_550: - WORD $0xf9000074 // str x20, [x3] + WORD $0x7100b29f // cmp w20, #44 + WORD $0x54001660 // b.eq LBB0_597 $716(%rip) + WORD $0x7101769f // cmp w20, #93 + WORD $0x540001e0 // b.eq LBB0_558 $60(%rip) + WORD $0x140004ad // b LBB0_831 $4788(%rip) +LBB0_552: + WORD $0x7100ea9f // cmp w20, #58 + WORD $0x54009561 // b.ne LBB0_831 $4780(%rip) + WORD $0xf833795f // str xzr, [x10, x19, lsl #3] + WORD $0x1400019b // b LBB0_651 $1644(%rip) +LBB0_554: + WORD $0xf9000073 // str x19, [x3] + WORD $0x1400000e // b LBB0_560 $56(%rip) +LBB0_555: + WORD $0x7100b29f // cmp w20, #44 + WORD $0x540015c0 // b.eq LBB0_599 $696(%rip) +LBB0_556: + WORD $0x7101f69f // cmp w20, #125 + WORD $0x54000080 // b.eq LBB0_558 $16(%rip) + WORD $0x140004a2 // b LBB0_831 $4744(%rip) +LBB0_557: + WORD $0x7101769f // cmp w20, #93 + WORD $0x540000c1 // b.ne LBB0_559 $24(%rip) +LBB0_558: + WORD $0xf9000073 // str x19, [x3] + WORD $0xaa1303e4 // mov x4, x19 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffd793 // cbnz x19, LBB0_494 $-1296(%rip) + WORD $0x1400049c // b LBB0_832 $4720(%rip) +LBB0_559: + WORD $0xf833794f // str x15, [x10, x19, lsl #3] +LBB0_560: WORD $0x92800028 // mov x8, #-2 - WORD $0x71016abf // cmp w21, #90 - WORD $0x540013ac // b.gt LBB0_591 $628(%rip) -LBB0_551: - WORD $0x5100c2a9 // sub w9, w21, #48 - WORD $0x7100293f // cmp w9, #10 - WORD $0x54001ea2 // b.hs LBB0_617 $980(%rip) + WORD $0x71016a9f // cmp w20, #90 + WORD $0x540014cc // b.gt LBB0_601 $664(%rip) + WORD $0x5100c291 // sub w17, w20, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54001c82 // b.hs LBB0_621 $912(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb1b0114 // subs x20, x8, x27 - WORD $0x54007ac0 // b.eq LBB0_782 $3928(%rip) + WORD $0xeb1a0113 // subs x19, x8, x26 + WORD $0x5400e060 // b.eq LBB0_905 $7180(%rip) WORD $0x39400388 // ldrb w8, [x28] WORD $0x7100c11f // cmp w8, #48 - WORD $0x54000141 // b.ne LBB0_557 $40(%rip) - WORD $0xf100069f // cmp x20, #1 - WORD $0x540023a0 // b.eq LBB0_633 $1140(%rip) - WORD $0x38736968 // ldrb w8, [x11, x19] + WORD $0x54000141 // b.ne LBB0_567 $40(%rip) + WORD $0xf100067f // cmp x19, #1 + WORD $0x54002f40 // b.eq LBB0_650 $1512(%rip) + WORD $0x387b6928 // ldrb w8, [x9, x27] WORD $0x5100b908 // sub w8, w8, #46 WORD $0x7100dd1f // cmp w8, #55 - WORD $0x54002328 // b.hi LBB0_633 $1124(%rip) - WORD $0x9ac82228 // lsl x8, x17, x8 - WORD $0xea18011f // tst x8, x24 - WORD $0x540022c0 // b.eq LBB0_633 $1112(%rip) -LBB0_557: - WORD $0xf100429f // cmp x20, #16 - WORD $0x54005a23 // b.lo LBB0_723 $2884(%rip) - WORD $0xd2800015 // mov x21, #0 + WORD $0x54002ec8 // b.hi LBB0_650 $1496(%rip) + WORD $0x9ac821e8 // lsl x8, x15, x8 + WORD $0xea16011f // tst x8, x22 + WORD $0x54002e60 // b.eq LBB0_650 $1484(%rip) +LBB0_567: + WORD $0xf100427f // cmp x19, #16 + WORD $0x54005c03 // b.lo LBB0_730 $2944(%rip) + WORD $0xd2800014 // mov x20, #0 WORD $0xd280001e // mov lr, #0 - WORD $0x92800013 // mov x19, #-1 - WORD $0x92800009 // mov x9, #-1 + WORD $0x9280001b // mov x27, #-1 + WORD $0x92800004 // mov x4, #-1 WORD $0x92800008 // mov x8, #-1 -LBB0_559: +LBB0_569: WORD $0x3cfe6b93 // ldr q19, [x28, lr] WORD $0x6e248e74 // cmeq.16b v20, v19, v4 WORD $0x6e258e75 // cmeq.16b v21, v19, v5 @@ -3283,15 +3387,15 @@ LBB0_559: WORD $0x4e221e94 // and.16b v20, v20, v2 WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260284 // fmov w4, s20 + WORD $0x1e260291 // fmov w17, s20 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260277 // fmov w23, s19 + WORD $0x1e260276 // fmov w22, s19 WORD $0x4e221eb3 // and.16b v19, v21, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e26027a // fmov w26, s19 + WORD $0x1e260279 // fmov w25, s19 WORD $0x4e221ed3 // and.16b v19, v22, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 @@ -3299,310 +3403,274 @@ LBB0_559: WORD $0x2a2603e6 // mvn w6, w6 WORD $0x32103cc6 // orr w6, w6, #0xffff0000 WORD $0x5ac000c6 // rbit w6, w6 - WORD $0x5ac010d6 // clz w22, w6 - WORD $0x1ad620e6 // lsl w6, w7, w22 - WORD $0x0a260098 // bic w24, w4, w6 - WORD $0x0a2602f9 // bic w25, w23, w6 - WORD $0x0a260345 // bic w5, w26, w6 - WORD $0x710042df // cmp w22, #16 - WORD $0x1a980086 // csel w6, w4, w24, eq - WORD $0x1a9902f8 // csel w24, w23, w25, eq - WORD $0x1a850357 // csel w23, w26, w5, eq - WORD $0x510004c4 // sub w4, w6, #1 - WORD $0x6a060084 // ands w4, w4, w6 - WORD $0x54004061 // b.ne LBB0_697 $2060(%rip) - WORD $0x51000704 // sub w4, w24, #1 - WORD $0x6a180084 // ands w4, w4, w24 - WORD $0x54004001 // b.ne LBB0_697 $2048(%rip) - WORD $0x510006e4 // sub w4, w23, #1 - WORD $0x6a170084 // ands w4, w4, w23 - WORD $0x54003fa1 // b.ne LBB0_697 $2036(%rip) - WORD $0x340000c6 // cbz w6, LBB0_565 $24(%rip) - WORD $0x5ac000c4 // rbit w4, w6 - WORD $0x5ac01084 // clz w4, w4 + WORD $0x5ac010d5 // clz w21, w6 + WORD $0x1ad520e6 // lsl w6, w7, w21 + WORD $0x0a260237 // bic w23, w17, w6 + WORD $0x0a2602d8 // bic w24, w22, w6 + WORD $0x0a260322 // bic w2, w25, w6 + WORD $0x710042bf // cmp w21, #16 + WORD $0x1a970226 // csel w6, w17, w23, eq + WORD $0x1a9802d7 // csel w23, w22, w24, eq + WORD $0x1a820336 // csel w22, w25, w2, eq + WORD $0x510004d1 // sub w17, w6, #1 + WORD $0x6a060231 // ands w17, w17, w6 + WORD $0x54004061 // b.ne LBB0_703 $2060(%rip) + WORD $0x510006f1 // sub w17, w23, #1 + WORD $0x6a170231 // ands w17, w17, w23 + WORD $0x54004001 // b.ne LBB0_703 $2048(%rip) + WORD $0x510006d1 // sub w17, w22, #1 + WORD $0x6a160231 // ands w17, w17, w22 + WORD $0x54003fa1 // b.ne LBB0_703 $2036(%rip) + WORD $0x340000c6 // cbz w6, LBB0_575 $24(%rip) + WORD $0x5ac000d1 // rbit w17, w6 + WORD $0x5ac01231 // clz w17, w17 WORD $0xb100051f // cmn x8, #1 - WORD $0x54003fa1 // b.ne LBB0_698 $2036(%rip) - WORD $0x8b0403c8 // add x8, lr, x4 -LBB0_565: - WORD $0x340000d8 // cbz w24, LBB0_568 $24(%rip) - WORD $0x5ac00304 // rbit w4, w24 - WORD $0x5ac01084 // clz w4, w4 - WORD $0xb100053f // cmn x9, #1 - WORD $0x54003ee1 // b.ne LBB0_698 $2012(%rip) - WORD $0x8b0403c9 // add x9, lr, x4 -LBB0_568: - WORD $0x340000d7 // cbz w23, LBB0_571 $24(%rip) - WORD $0x5ac002e4 // rbit w4, w23 - WORD $0x5ac01084 // clz w4, w4 - WORD $0xb100067f // cmn x19, #1 - WORD $0x54003e21 // b.ne LBB0_698 $1988(%rip) - WORD $0x8b0403d3 // add x19, lr, x4 -LBB0_571: - WORD $0x710042df // cmp w22, #16 - WORD $0x54000c81 // b.ne LBB0_601 $400(%rip) + WORD $0x54003fa1 // b.ne LBB0_704 $2036(%rip) + WORD $0x8b1103c8 // add x8, lr, x17 +LBB0_575: + WORD $0x340000d7 // cbz w23, LBB0_578 $24(%rip) + WORD $0x5ac002f1 // rbit w17, w23 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100049f // cmn x4, #1 + WORD $0x54003ee1 // b.ne LBB0_704 $2012(%rip) + WORD $0x8b1103c4 // add x4, lr, x17 +LBB0_578: + WORD $0x340000d6 // cbz w22, LBB0_581 $24(%rip) + WORD $0x5ac002d1 // rbit w17, w22 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100077f // cmn x27, #1 + WORD $0x54003e21 // b.ne LBB0_704 $1988(%rip) + WORD $0x8b1103db // add x27, lr, x17 +LBB0_581: + WORD $0x710042bf // cmp w21, #16 + WORD $0x54000b01 // b.ne LBB0_607 $352(%rip) WORD $0x910043de // add lr, lr, #16 - WORD $0xd10042b5 // sub x21, x21, #16 + WORD $0xd1004294 // sub x20, x20, #16 + WORD $0x8b140275 // add x21, x19, x20 + WORD $0xf1003ebf // cmp x21, #15 + WORD $0x54fff6e8 // b.hi LBB0_569 $-292(%rip) + WORD $0x8b1e0394 // add x20, x28, lr + WORD $0xeb1e027f // cmp x19, lr + WORD $0x54000a40 // b.eq LBB0_608 $328(%rip) +LBB0_584: WORD $0x8b150296 // add x22, x20, x21 - WORD $0xf1003edf // cmp x22, #15 - WORD $0x54fff6e8 // b.hi LBB0_559 $-292(%rip) - WORD $0x8b1e0395 // add x21, x28, lr - WORD $0xeb1e029f // cmp x20, lr - WORD $0x54000bc0 // b.eq LBB0_602 $376(%rip) -LBB0_574: - WORD $0x8b1602b7 // add x23, x21, x22 - WORD $0x8b1b01e4 // add x4, x15, x27 - WORD $0xcb150094 // sub x20, x4, x21 - WORD $0xcb1c02b8 // sub x24, x21, x28 - WORD $0xaa1503fe // mov lr, x21 - WORD $0x14000009 // b LBB0_577 $36(%rip) -LBB0_575: - WORD $0xb100053f // cmn x9, #1 - WORD $0xaa1803e9 // mov x9, x24 - WORD $0x54000f81 // b.ne LBB0_614 $496(%rip) -LBB0_576: - WORD $0xd1000694 // sub x20, x20, #1 - WORD $0x91000718 // add x24, x24, #1 - WORD $0xaa1e03f5 // mov x21, lr - WORD $0xd10006d6 // sub x22, x22, #1 - WORD $0xb4002396 // cbz x22, LBB0_646 $1136(%rip) -LBB0_577: + WORD $0x8b1a01b1 // add x17, x13, x26 + WORD $0xcb140233 // sub x19, x17, x20 + WORD $0xcb1c0297 // sub x23, x20, x28 + WORD $0xaa1403fe // mov lr, x20 + WORD $0x52800078 // mov w24, #3 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0x14000009 // b LBB0_587 $36(%rip) +LBB0_585: + WORD $0xb100049f // cmn x4, #1 + WORD $0xaa1703e4 // mov x4, x23 + WORD $0x540003a1 // b.ne LBB0_596 $116(%rip) +LBB0_586: + WORD $0xd1000673 // sub x19, x19, #1 + WORD $0x910006f7 // add x23, x23, #1 + WORD $0xaa1e03f4 // mov x20, lr + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xb40022d5 // cbz x21, LBB0_652 $1112(%rip) +LBB0_587: WORD $0x384017c6 // ldrb w6, [lr], #1 - WORD $0x5100c0c4 // sub w4, w6, #48 - WORD $0x7100289f // cmp w4, #10 - WORD $0x54ffff03 // b.lo LBB0_576 $-32(%rip) + WORD $0x5100c0d1 // sub w17, w6, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54ffff03 // b.lo LBB0_586 $-32(%rip) WORD $0x7100b4df // cmp w6, #45 - WORD $0x5400016d // b.le LBB0_583 $44(%rip) + WORD $0x5400016d // b.le LBB0_593 $44(%rip) WORD $0x710194df // cmp w6, #101 - WORD $0x54fffe20 // b.eq LBB0_575 $-60(%rip) + WORD $0x54fffe20 // b.eq LBB0_585 $-60(%rip) WORD $0x710114df // cmp w6, #69 - WORD $0x54fffde0 // b.eq LBB0_575 $-68(%rip) + WORD $0x54fffde0 // b.eq LBB0_585 $-68(%rip) WORD $0x7100b8df // cmp w6, #46 - WORD $0x54000881 // b.ne LBB0_602 $272(%rip) + WORD $0x540006a1 // b.ne LBB0_608 $212(%rip) WORD $0xb100051f // cmn x8, #1 - WORD $0xaa1803e8 // mov x8, x24 - WORD $0x54fffda0 // b.eq LBB0_576 $-76(%rip) - WORD $0x14000067 // b LBB0_614 $412(%rip) -LBB0_583: + WORD $0xaa1703e8 // mov x8, x23 + WORD $0x54fffda0 // b.eq LBB0_586 $-76(%rip) + WORD $0x14000008 // b LBB0_596 $32(%rip) +LBB0_593: WORD $0x7100acdf // cmp w6, #43 - WORD $0x54000060 // b.eq LBB0_585 $12(%rip) + WORD $0x54000060 // b.eq LBB0_595 $12(%rip) WORD $0x7100b4df // cmp w6, #45 - WORD $0x54000781 // b.ne LBB0_602 $240(%rip) -LBB0_585: - WORD $0xb100067f // cmn x19, #1 - WORD $0xaa1803f3 // mov x19, x24 - WORD $0x54fffca0 // b.eq LBB0_576 $-108(%rip) - WORD $0x1400005f // b LBB0_614 $380(%rip) -LBB0_586: - WORD $0x7100b2bf // cmp w21, #44 - WORD $0x54000560 // b.eq LBB0_599 $172(%rip) -LBB0_587: - WORD $0x7101f6bf // cmp w21, #125 - WORD $0x54000080 // b.eq LBB0_589 $16(%rip) - WORD $0x1400033a // b LBB0_777 $3304(%rip) -LBB0_588: - WORD $0x710176bf // cmp w21, #93 - WORD $0x540000c1 // b.ne LBB0_590 $24(%rip) -LBB0_589: - WORD $0xf9000074 // str x20, [x3] - WORD $0xaa1403e9 // mov x9, x20 - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffc514 // cbnz x20, LBB0_490 $-1888(%rip) - WORD $0x14000334 // b LBB0_778 $3280(%rip) -LBB0_590: - WORD $0xf8347991 // str x17, [x12, x20, lsl #3] - WORD $0x92800028 // mov x8, #-2 - WORD $0x71016abf // cmp w21, #90 - WORD $0x54ffecad // b.le LBB0_551 $-620(%rip) -LBB0_591: - WORD $0x7101b6bf // cmp w21, #109 - WORD $0x54000d6d // b.le LBB0_623 $428(%rip) - WORD $0x7101babf // cmp w21, #110 - WORD $0x54001000 // b.eq LBB0_630 $512(%rip) - WORD $0x7101d2bf // cmp w21, #116 - WORD $0x54000e80 // b.eq LBB0_628 $464(%rip) - WORD $0x7101eebf // cmp w21, #123 - WORD $0x54006501 // b.ne LBB0_778 $3232(%rip) - WORD $0xf9400068 // ldr x8, [x3] - WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x540065cc // b.gt LBB0_779 $3256(%rip) - WORD $0x91000509 // add x9, x8, #1 - WORD $0xf9000069 // str x9, [x3] - WORD $0x528000c9 // mov w9, #6 - WORD $0xf8287989 // str x9, [x12, x8, lsl #3] - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffc229 // cbnz x9, LBB0_490 $-1980(%rip) - WORD $0x1400031d // b LBB0_778 $3188(%rip) + WORD $0x540005a1 // b.ne LBB0_608 $180(%rip) +LBB0_595: + WORD $0xb100077f // cmn x27, #1 + WORD $0xaa1703fb // mov x27, x23 + WORD $0x54fffca0 // b.eq LBB0_586 $-108(%rip) +LBB0_596: + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb6f809b3 // tbz x19, #63, LBB0_620 $308(%rip) + WORD $0x14000671 // b LBB0_906 $6596(%rip) LBB0_597: - WORD $0xf13ffd3f // cmp x9, #4095 - WORD $0x5400648c // b.gt LBB0_779 $3216(%rip) - WORD $0x91000528 // add x8, x9, #1 + WORD $0xf13ffc9f // cmp x4, #4095 + WORD $0x5400ccec // b.gt LBB0_902 $6556(%rip) + WORD $0x91000488 // add x8, x4, #1 WORD $0xf9000068 // str x8, [x3] - WORD $0xf829799f // str xzr, [x12, x9, lsl #3] - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffc109 // cbnz x9, LBB0_490 $-2016(%rip) - WORD $0x14000314 // b LBB0_778 $3152(%rip) + WORD $0xf824795f // str xzr, [x10, x4, lsl #3] + WORD $0x140000ea // b LBB0_651 $936(%rip) LBB0_599: - WORD $0xf13ffd3f // cmp x9, #4095 - WORD $0x5400636c // b.gt LBB0_779 $3180(%rip) - WORD $0x91000528 // add x8, x9, #1 + WORD $0xf13ffc9f // cmp x4, #4095 + WORD $0x5400cc2c // b.gt LBB0_902 $6532(%rip) + WORD $0x91000488 // add x8, x4, #1 WORD $0xf9000068 // str x8, [x3] - WORD $0xf829798a // str x10, [x12, x9, lsl #3] - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffbfe9 // cbnz x9, LBB0_490 $-2052(%rip) - WORD $0x1400030b // b LBB0_778 $3116(%rip) + WORD $0xf8247958 // str x24, [x10, x4, lsl #3] + WORD $0x140000e4 // b LBB0_651 $912(%rip) LBB0_601: - WORD $0x8b364384 // add x4, x28, w22, uxtw - WORD $0x8b1e0095 // add x21, x4, lr -LBB0_602: - WORD $0x92800014 // mov x20, #-1 - WORD $0xb4006308 // cbz x8, LBB0_783 $3168(%rip) -LBB0_603: - WORD $0xb40062f3 // cbz x19, LBB0_783 $3164(%rip) - WORD $0xb40062c9 // cbz x9, LBB0_783 $3160(%rip) - WORD $0xcb1c02b4 // sub x20, x21, x28 - WORD $0xd1000684 // sub x4, x20, #1 - WORD $0xeb04011f // cmp x8, x4 - WORD $0x540003e0 // b.eq LBB0_613 $124(%rip) - WORD $0xeb04027f // cmp x19, x4 - WORD $0x540003a0 // b.eq LBB0_613 $116(%rip) - WORD $0xeb04013f // cmp x9, x4 - WORD $0x54000360 // b.eq LBB0_613 $108(%rip) - WORD $0xf1000664 // subs x4, x19, #1 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x7101b69f // cmp w20, #109 + WORD $0x54000a2d // b.le LBB0_627 $324(%rip) + WORD $0x7101ba9f // cmp w20, #110 + WORD $0x54000c80 // b.eq LBB0_634 $400(%rip) + WORD $0x7101d29f // cmp w20, #116 + WORD $0x54000b40 // b.eq LBB0_632 $360(%rip) + WORD $0x7101ee9f // cmp w20, #123 + WORD $0x54007d61 // b.ne LBB0_832 $4012(%rip) + WORD $0xf9400068 // ldr x8, [x3] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x5400ca4c // b.gt LBB0_902 $6472(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000071 // str x17, [x3] + WORD $0x528000d1 // mov w17, #6 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] + WORD $0x140000d4 // b LBB0_651 $848(%rip) +LBB0_607: + WORD $0x8b354391 // add x17, x28, w21, uxtw + WORD $0x8b1e0234 // add x20, x17, lr +LBB0_608: + WORD $0x92800013 // mov x19, #-1 + WORD $0xb400ca28 // cbz x8, LBB0_906 $6468(%rip) +LBB0_609: + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0x5400006b // b.lt LBB0_610 $12(%rip) - WORD $0xeb04013f // cmp x9, x4 - WORD $0x54006021 // b.ne LBB0_784 $3076(%rip) -LBB0_610: - WORD $0xaa090104 // orr x4, x8, x9 - WORD $0xb7f80064 // tbnz x4, #63, LBB0_612 $12(%rip) - WORD $0xeb09011f // cmp x8, x9 - WORD $0x5400602a // b.ge LBB0_786 $3076(%rip) -LBB0_612: - WORD $0xd37ffc84 // lsr x4, x4, #63 - WORD $0x52000084 // eor w4, w4, #0x1 - WORD $0xd1000525 // sub x5, x9, #1 - WORD $0xeb05011f // cmp x8, x5 + WORD $0xb400c8fb // cbz x27, LBB0_906 $6428(%rip) + WORD $0x52800078 // mov w24, #3 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb400c864 // cbz x4, LBB0_906 $6412(%rip) + WORD $0xcb1c0293 // sub x19, x20, x28 + WORD $0xd1000671 // sub x17, x19, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x54000300 // b.eq LBB0_619 $96(%rip) + WORD $0xeb11037f // cmp x27, x17 + WORD $0x540002c0 // b.eq LBB0_619 $88(%rip) + WORD $0xeb11009f // cmp x4, x17 + WORD $0x54000280 // b.eq LBB0_619 $80(%rip) + WORD $0xf1000771 // subs x17, x27, #1 + WORD $0x5400006b // b.lt LBB0_616 $12(%rip) + WORD $0xeb11009f // cmp x4, x17 + WORD $0x5400c701 // b.ne LBB0_907 $6368(%rip) +LBB0_616: + WORD $0xaa040111 // orr x17, x8, x4 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_618 $12(%rip) + WORD $0xeb04011f // cmp x8, x4 + WORD $0x5400c72a // b.ge LBB0_909 $6372(%rip) +LBB0_618: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd1000482 // sub x2, x4, #1 + WORD $0xeb02011f // cmp x8, x2 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 WORD $0x1a9f17e8 // cset w8, eq - WORD $0x6a08009f // tst w4, w8 - WORD $0xda890294 // csinv x20, x20, x9, eq - WORD $0x1400000c // b LBB0_615 $48(%rip) -LBB0_613: - WORD $0xcb1403f4 // neg x20, x20 -LBB0_614: - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 - WORD $0x528eadde // mov w30, #30062 - WORD $0x72ad8d9e // movk w30, #27756, lsl #16 -LBB0_615: - WORD $0xb7f85d14 // tbnz x20, #63, LBB0_783 $2976(%rip) - WORD $0x8b140373 // add x19, x27, x20 - WORD $0x14000031 // b LBB0_633 $196(%rip) -LBB0_617: - WORD $0x71008abf // cmp w21, #34 - WORD $0x54000820 // b.eq LBB0_637 $260(%rip) - WORD $0x7100b6bf // cmp w21, #45 - WORD $0x54005a21 // b.ne LBB0_778 $2884(%rip) - WORD $0xb20903ea // mov x10, #36028797027352576 - WORD $0xf280002a // movk x10, #1 + WORD $0x6a08023f // tst w17, w8 + WORD $0xda840273 // csinv x19, x19, x4, eq + WORD $0xb6f80093 // tbz x19, #63, LBB0_620 $16(%rip) + WORD $0x14000628 // b LBB0_906 $6304(%rip) +LBB0_619: + WORD $0xcb1303f3 // neg x19, x19 + WORD $0xb7f8c4d3 // tbnz x19, #63, LBB0_906 $6296(%rip) +LBB0_620: + WORD $0x8b13035b // add x27, x26, x19 + WORD $0x1400009f // b LBB0_650 $636(%rip) +LBB0_621: + WORD $0x71008a9f // cmp w20, #34 + WORD $0x540006a0 // b.eq LBB0_639 $212(%rip) + WORD $0x7100b69f // cmp w20, #45 + WORD $0x540075c1 // b.ne LBB0_832 $3768(%rip) + WORD $0xb20903e2 // mov x2, #36028797027352576 + WORD $0xf2800022 // movk x2, #1 WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb130117 // subs x23, x8, x19 - WORD $0x54005c80 // b.eq LBB0_787 $2960(%rip) - WORD $0x8b130168 // add x8, x11, x19 - WORD $0x39400109 // ldrb w9, [x8] - WORD $0x7100c13f // cmp w9, #48 - WORD $0x54001301 // b.ne LBB0_649 $608(%rip) - WORD $0xf10006ff // cmp x23, #1 - WORD $0x540011c1 // b.ne LBB0_647 $568(%rip) -LBB0_622: - WORD $0x52800034 // mov w20, #1 - WORD $0x1400012d // b LBB0_695 $1204(%rip) -LBB0_623: - WORD $0x71016ebf // cmp w21, #91 - WORD $0x540004c0 // b.eq LBB0_635 $152(%rip) - WORD $0x71019abf // cmp w21, #102 - WORD $0x54005801 // b.ne LBB0_778 $2816(%rip) + WORD $0xeb1b0116 // subs x22, x8, x27 + WORD $0x5400c4e0 // b.eq LBB0_912 $6300(%rip) + WORD $0x8b1b0128 // add x8, x9, x27 + WORD $0x39400111 // ldrb w17, [x8] + WORD $0x7100c23f // cmp w17, #48 + WORD $0x540014c1 // b.ne LBB0_655 $664(%rip) + WORD $0xf10006df // cmp x22, #1 + WORD $0x54001381 // b.ne LBB0_653 $624(%rip) +LBB0_626: + WORD $0x52800033 // mov w19, #1 + WORD $0x1400013d // b LBB0_701 $1268(%rip) +LBB0_627: + WORD $0x71016e9f // cmp w20, #91 + WORD $0x540003a0 // b.eq LBB0_637 $116(%rip) + WORD $0x71019a9f // cmp w20, #102 + WORD $0x540073a1 // b.ne LBB0_832 $3700(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xd1001109 // sub x9, x8, #4 - WORD $0xeb09037f // cmp x27, x9 - WORD $0x54005a02 // b.hs LBB0_785 $2880(%rip) - WORD $0xb8736968 // ldr w8, [x11, x19] - WORD $0x6b1a011f // cmp w8, w26 - WORD $0x54005aa1 // b.ne LBB0_790 $2900(%rip) - WORD $0x91001773 // add x19, x27, #5 - WORD $0x14000013 // b LBB0_633 $76(%rip) -LBB0_628: + WORD $0xd1001111 // sub x17, x8, #4 + WORD $0xeb11035f // cmp x26, x17 + WORD $0x5400cde2 // b.hs LBB0_940 $6588(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x6b19011f // cmp w8, w25 + WORD $0x5400c301 // b.ne LBB0_915 $6240(%rip) + WORD $0x9100175b // add x27, x26, #5 + WORD $0x14000081 // b LBB0_650 $516(%rip) +LBB0_632: WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xd1000d09 // sub x9, x8, #3 - WORD $0xeb09037f // cmp x27, x9 - WORD $0x540058e2 // b.hs LBB0_785 $2844(%rip) - WORD $0xb87b6968 // ldr w8, [x11, x27] - WORD $0x528e4e89 // mov w9, #29300 - WORD $0x72acaea9 // movk w9, #25973, lsl #16 - WORD $0x6b09011f // cmp w8, w9 - WORD $0x54000120 // b.eq LBB0_632 $36(%rip) - WORD $0x140002f2 // b LBB0_799 $3016(%rip) -LBB0_630: + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11035f // cmp x26, x17 + WORD $0x5400ccc2 // b.hs LBB0_940 $6552(%rip) + WORD $0xb87a6928 // ldr w8, [x9, x26] + WORD $0x6b02011f // cmp w8, w2 + WORD $0x54000120 // b.eq LBB0_636 $36(%rip) + WORD $0x14000637 // b LBB0_924 $6364(%rip) +LBB0_634: WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xd1000d09 // sub x9, x8, #3 - WORD $0xeb09037f // cmp x27, x9 - WORD $0x540057a2 // b.hs LBB0_785 $2804(%rip) - WORD $0xb87b6968 // ldr w8, [x11, x27] + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11035f // cmp x26, x17 + WORD $0x5400cbc2 // b.hs LBB0_940 $6520(%rip) + WORD $0xb87a6928 // ldr w8, [x9, x26] WORD $0x6b1e011f // cmp w8, w30 - WORD $0x54005ae1 // b.ne LBB0_795 $2908(%rip) -LBB0_632: - WORD $0x91001373 // add x19, x27, #4 -LBB0_633: - WORD $0xf9000033 // str x19, [x1] - WORD $0xaa1b03e8 // mov x8, x27 - WORD $0xeb17037f // cmp x27, x23 - WORD $0x54005422 // b.hs LBB0_778 $2692(%rip) -LBB0_634: - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffb229 // cbnz x9, LBB0_490 $-2492(%rip) - WORD $0x1400029d // b LBB0_778 $2676(%rip) -LBB0_635: + WORD $0x5400c381 // b.ne LBB0_920 $6256(%rip) +LBB0_636: + WORD $0x9100135b // add x27, x26, #4 + WORD $0x14000070 // b LBB0_650 $448(%rip) +LBB0_637: WORD $0xf9400068 // ldr x8, [x3] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x5400546c // b.gt LBB0_779 $2700(%rip) - WORD $0x91000509 // add x9, x8, #1 - WORD $0xf9000069 // str x9, [x3] - WORD $0xf8287999 // str x25, [x12, x8, lsl #3] - WORD $0xf9400069 // ldr x9, [x3] - WORD $0xaa1003e8 // mov x8, x16 - WORD $0xb5ffb0e9 // cbnz x9, LBB0_490 $-2532(%rip) - WORD $0x14000293 // b LBB0_778 $2636(%rip) -LBB0_637: + WORD $0x5400bd4c // b.gt LBB0_902 $6056(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000071 // str x17, [x3] + WORD $0xf8287957 // str x23, [x10, x8, lsl #3] + WORD $0x1400006d // b LBB0_651 $436(%rip) +LBB0_639: WORD $0x3200f3f9 // mov w25, #1431655765 WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb13011e // subs lr, x8, x19 - WORD $0x54005de0 // b.eq LBB0_807 $3004(%rip) + WORD $0xeb1b011e // subs lr, x8, x27 + WORD $0x5400c7e0 // b.eq LBB0_931 $6396(%rip) WORD $0xf10103df // cmp lr, #64 - WORD $0x54003043 // b.lo LBB0_717 $1544(%rip) - WORD $0xd2800009 // mov x9, #0 + WORD $0x540035a3 // b.lo LBB0_724 $1716(%rip) + WORD $0xd2800004 // mov x4, #0 WORD $0x9280001c // mov x28, #-1 -LBB0_640: - WORD $0x8b13016a // add x10, x11, x19 - WORD $0xad405153 // ldp q19, q20, [x10] - WORD $0xad415955 // ldp q21, q22, [x10, #32] +LBB0_642: + WORD $0x8b1b0131 // add x17, x9, x27 + WORD $0xad405233 // ldp q19, q20, [x17] + WORD $0xad415a35 // ldp q21, q22, [x17, #32] WORD $0x6e208e77 // cmeq.16b v23, v19, v0 WORD $0x6e208e98 // cmeq.16b v24, v20, v0 WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 @@ -3614,11 +3682,11 @@ LBB0_640: WORD $0x4e221ef7 // and.16b v23, v23, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602ea // fmov w10, s23 + WORD $0x1e2602f1 // fmov w17, s23 WORD $0x4e221f17 // and.16b v23, v24, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e4 // fmov w4, s23 + WORD $0x1e2602e2 // fmov w2, s23 WORD $0x4e221f37 // and.16b v23, v25, v2 WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 @@ -3630,81 +3698,111 @@ LBB0_640: WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260275 // fmov w21, s19 + WORD $0x1e260274 // fmov w20, s19 WORD $0x4e221e93 // and.16b v19, v20, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260276 // fmov w22, s19 + WORD $0x1e260275 // fmov w21, s19 WORD $0x4e221eb3 // and.16b v19, v21, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260277 // fmov w23, s19 + WORD $0x1e260276 // fmov w22, s19 WORD $0x4e221ed3 // and.16b v19, v22, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260278 // fmov w24, s19 + WORD $0x1e260277 // fmov w23, s19 WORD $0xd3607ca5 // lsl x5, x5, #32 WORD $0xaa06c0a5 // orr x5, x5, x6, lsl #48 - WORD $0x53103c84 // lsl w4, w4, #16 - WORD $0xaa0400a4 // orr x4, x5, x4 - WORD $0xaa0a0094 // orr x20, x4, x10 - WORD $0xd3607eea // lsl x10, x23, #32 - WORD $0xaa18c14a // orr x10, x10, x24, lsl #48 - WORD $0x53103ec4 // lsl w4, w22, #16 - WORD $0xaa04014a // orr x10, x10, x4 - WORD $0xaa150144 // orr x4, x10, x21 - WORD $0xb5000104 // cbnz x4, LBB0_644 $32(%rip) - WORD $0xb5000189 // cbnz x9, LBB0_645 $48(%rip) - WORD $0xb5ffbd74 // cbnz x20, LBB0_526 $-2132(%rip) -LBB0_643: + WORD $0x53103c42 // lsl w2, w2, #16 + WORD $0xaa0200a2 // orr x2, x5, x2 + WORD $0xaa110053 // orr x19, x2, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea2 // lsl w2, w21, #16 + WORD $0xaa020231 // orr x17, x17, x2 + WORD $0xaa140231 // orr x17, x17, x20 + WORD $0xb5000151 // cbnz x17, LBB0_646 $40(%rip) + WORD $0xb50001c4 // cbnz x4, LBB0_647 $56(%rip) + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb5000333 // cbnz x19, LBB0_648 $100(%rip) +LBB0_645: WORD $0xd10103de // sub lr, lr, #64 - WORD $0x91010273 // add x19, x19, #64 + WORD $0x9101037b // add x27, x27, #64 WORD $0xf100ffdf // cmp lr, #63 - WORD $0x54fff8a8 // b.hi LBB0_640 $-236(%rip) - WORD $0x1400013e // b LBB0_715 $1272(%rip) -LBB0_644: - WORD $0xb100079f // cmn x28, #1 - WORD $0xdac0008a // rbit x10, x4 - WORD $0xdac0114a // clz x10, x10 - WORD $0x8b13014a // add x10, x10, x19 - WORD $0x9a8a139c // csel x28, x28, x10, ne -LBB0_645: - WORD $0x8a29008a // bic x10, x4, x9 - WORD $0xaa0a0525 // orr x5, x9, x10, lsl #1 - WORD $0x8a250089 // bic x9, x4, x5 - WORD $0x9201f129 // and x9, x9, #0xaaaaaaaaaaaaaaaa - WORD $0xab0a012a // adds x10, x9, x10 - WORD $0x1a9f37e9 // cset w9, hs - WORD $0xd37ff94a // lsl x10, x10, #1 - WORD $0xd200f14a // eor x10, x10, #0x5555555555555555 - WORD $0x8a05014a // and x10, x10, x5 - WORD $0x8a2a0294 // bic x20, x20, x10 - WORD $0xb4fffd94 // cbz x20, LBB0_643 $-80(%rip) - WORD $0x17fffdd5 // b LBB0_526 $-2220(%rip) + WORD $0x54fff868 // b.hi LBB0_642 $-244(%rip) + WORD $0x14000166 // b LBB0_722 $1432(%rip) LBB0_646: - WORD $0xaa1703f5 // mov x21, x23 - WORD $0x92800014 // mov x20, #-1 - WORD $0xb5ffe688 // cbnz x8, LBB0_603 $-816(%rip) - WORD $0x1400024a // b LBB0_783 $2344(%rip) + WORD $0xb100079f // cmn x28, #1 + WORD $0xdac00222 // rbit x2, x17 + WORD $0xdac01042 // clz x2, x2 + WORD $0x8b1b0042 // add x2, x2, x27 + WORD $0x9a82139c // csel x28, x28, x2, ne LBB0_647: - WORD $0x39400509 // ldrb w9, [x8, #1] - WORD $0x5100b929 // sub w9, w9, #46 - WORD $0x7100dd3f // cmp w9, #55 - WORD $0x54ffee08 // b.hi LBB0_622 $-576(%rip) - WORD $0x9ac92229 // lsl x9, x17, x9 - WORD $0x52800034 // mov w20, #1 - WORD $0xea0a013f // tst x9, x10 - WORD $0x54001340 // b.eq LBB0_695 $616(%rip) + WORD $0x8a240222 // bic x2, x17, x4 + WORD $0xaa020485 // orr x5, x4, x2, lsl #1 + WORD $0x8a250231 // bic x17, x17, x5 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab020231 // adds x17, x17, x2 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a050231 // and x17, x17, x5 + WORD $0x8a310273 // bic x19, x19, x17 + WORD $0x52800078 // mov w24, #3 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb4fffd33 // cbz x19, LBB0_645 $-92(%rip) +LBB0_648: + WORD $0xdac00271 // rbit x17, x19 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1b0231 // add x17, x17, x27 + WORD $0x9100063b // add x27, x17, #1 LBB0_649: - WORD $0xf10042ff // cmp x23, #16 - WORD $0x540029c3 // b.lo LBB0_724 $1336(%rip) - WORD $0xd2800016 // mov x22, #0 - WORD $0xd2800018 // mov x24, #0 + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0xb7f8b01b // tbnz x27, #63, LBB0_903 $5632(%rip) +LBB0_650: + WORD $0xf900003b // str x27, [x1] + WORD $0xaa1a03e8 // mov x8, x26 + WORD $0xeb06035f // cmp x26, x6 + WORD $0x54006202 // b.hs LBB0_832 $3136(%rip) +LBB0_651: + WORD $0xf9400064 // ldr x4, [x3] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffa584 // cbnz x4, LBB0_494 $-2896(%rip) + WORD $0x1400030c // b LBB0_832 $3120(%rip) +LBB0_652: + WORD $0xaa1603f4 // mov x20, x22 + WORD $0x92800013 // mov x19, #-1 + WORD $0xb5ffe568 // cbnz x8, LBB0_609 $-852(%rip) + WORD $0x1400057a // b LBB0_906 $5608(%rip) +LBB0_653: + WORD $0x39400511 // ldrb w17, [x8, #1] + WORD $0x5100ba31 // sub w17, w17, #46 + WORD $0x7100de3f // cmp w17, #55 + WORD $0x54ffec48 // b.hi LBB0_626 $-632(%rip) + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x52800033 // mov w19, #1 + WORD $0xea02023f // tst x17, x2 + WORD $0x54001380 // b.eq LBB0_701 $624(%rip) +LBB0_655: + WORD $0xf10042df // cmp x22, #16 + WORD $0x54002c03 // b.lo LBB0_731 $1408(%rip) + WORD $0xd2800015 // mov x21, #0 + WORD $0xd2800017 // mov x23, #0 WORD $0x9280001c // mov x28, #-1 WORD $0x9280001e // mov lr, #-1 - WORD $0x92800009 // mov x9, #-1 -LBB0_651: - WORD $0x3cf86913 // ldr q19, [x8, x24] + WORD $0x92800004 // mov x4, #-1 +LBB0_657: + WORD $0x3cf76913 // ldr q19, [x8, x23] WORD $0x6e248e74 // cmeq.16b v20, v19, v4 WORD $0x6e258e75 // cmeq.16b v21, v19, v5 WORD $0x6e268e76 // cmeq.16b v22, v19, v6 @@ -3719,15 +3817,15 @@ LBB0_651: WORD $0x4e221e94 // and.16b v20, v20, v2 WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260284 // fmov w4, s20 + WORD $0x1e260291 // fmov w17, s20 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260265 // fmov w5, s19 + WORD $0x1e260262 // fmov w2, s19 WORD $0x4e221eb3 // and.16b v19, v21, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260275 // fmov w21, s19 + WORD $0x1e260274 // fmov w20, s19 WORD $0x4e221ed3 // and.16b v19, v22, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 @@ -3735,175 +3833,192 @@ LBB0_651: WORD $0x2a2603e6 // mvn w6, w6 WORD $0x32103cc6 // orr w6, w6, #0xffff0000 WORD $0x5ac000c6 // rbit w6, w6 - WORD $0x5ac010d4 // clz w20, w6 - WORD $0x1ad420e6 // lsl w6, w7, w20 - WORD $0x0a260099 // bic w25, w4, w6 - WORD $0x0a2600ba // bic w26, w5, w6 - WORD $0x0a2602aa // bic w10, w21, w6 - WORD $0x7100429f // cmp w20, #16 - WORD $0x1a990084 // csel w4, w4, w25, eq - WORD $0x1a9a00a6 // csel w6, w5, w26, eq - WORD $0x1a8a02b5 // csel w21, w21, w10, eq - WORD $0x5100048a // sub w10, w4, #1 - WORD $0x6a04015a // ands w26, w10, w4 - WORD $0x54001d41 // b.ne LBB0_714 $936(%rip) - WORD $0x510004ca // sub w10, w6, #1 - WORD $0x6a06015a // ands w26, w10, w6 - WORD $0x54001ce1 // b.ne LBB0_714 $924(%rip) - WORD $0x510006aa // sub w10, w21, #1 - WORD $0x6a15015a // ands w26, w10, w21 - WORD $0x54001c81 // b.ne LBB0_714 $912(%rip) - WORD $0x340000c4 // cbz w4, LBB0_657 $24(%rip) - WORD $0x5ac0008a // rbit w10, w4 - WORD $0x5ac01144 // clz w4, w10 - WORD $0xb100053f // cmn x9, #1 - WORD $0x54001cc1 // b.ne LBB0_716 $920(%rip) - WORD $0x8b040309 // add x9, x24, x4 -LBB0_657: - WORD $0x340000c6 // cbz w6, LBB0_660 $24(%rip) - WORD $0x5ac000ca // rbit w10, w6 - WORD $0x5ac01144 // clz w4, w10 - WORD $0xb10007df // cmn lr, #1 - WORD $0x54001c01 // b.ne LBB0_716 $896(%rip) - WORD $0x8b04031e // add lr, x24, x4 -LBB0_660: - WORD $0x340000d5 // cbz w21, LBB0_663 $24(%rip) - WORD $0x5ac002aa // rbit w10, w21 - WORD $0x5ac01144 // clz w4, w10 - WORD $0xb100079f // cmn x28, #1 - WORD $0x54001b41 // b.ne LBB0_716 $872(%rip) - WORD $0x8b04031c // add x28, x24, x4 + WORD $0x5ac010d3 // clz w19, w6 + WORD $0x1ad320e6 // lsl w6, w7, w19 + WORD $0x0a260238 // bic w24, w17, w6 + WORD $0x0a260059 // bic w25, w2, w6 + WORD $0x0a260285 // bic w5, w20, w6 + WORD $0x7100427f // cmp w19, #16 + WORD $0x1a980231 // csel w17, w17, w24, eq + WORD $0x1a990046 // csel w6, w2, w25, eq + WORD $0x1a850294 // csel w20, w20, w5, eq + WORD $0x51000622 // sub w2, w17, #1 + WORD $0x6a110059 // ands w25, w2, w17 + WORD $0x54001f21 // b.ne LBB0_721 $996(%rip) + WORD $0x510004c2 // sub w2, w6, #1 + WORD $0x6a060059 // ands w25, w2, w6 + WORD $0x54001ec1 // b.ne LBB0_721 $984(%rip) + WORD $0x51000682 // sub w2, w20, #1 + WORD $0x6a140059 // ands w25, w2, w20 + WORD $0x54001e61 // b.ne LBB0_721 $972(%rip) + WORD $0x340000d1 // cbz w17, LBB0_663 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100049f // cmn x4, #1 + WORD $0x54001ec1 // b.ne LBB0_723 $984(%rip) + WORD $0x8b1102e4 // add x4, x23, x17 LBB0_663: - WORD $0x7100429f // cmp w20, #16 - WORD $0x540005c1 // b.ne LBB0_681 $184(%rip) - WORD $0x91004318 // add x24, x24, #16 - WORD $0xd10042d6 // sub x22, x22, #16 - WORD $0x8b1602f4 // add x20, x23, x22 - WORD $0xf1003e9f // cmp x20, #15 - WORD $0x54fff6e8 // b.hi LBB0_651 $-292(%rip) - WORD $0x8b180115 // add x21, x8, x24 - WORD $0xeb1802ff // cmp x23, x24 - WORD $0x54000500 // b.eq LBB0_682 $160(%rip) + WORD $0x340000c6 // cbz w6, LBB0_666 $24(%rip) + WORD $0x5ac000d1 // rbit w17, w6 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54001e01 // b.ne LBB0_723 $960(%rip) + WORD $0x8b1102fe // add lr, x23, x17 LBB0_666: - WORD $0x8b1402a4 // add x4, x21, x20 - WORD $0x8b1501ca // add x10, x14, x21 - WORD $0xcb1b0157 // sub x23, x10, x27 - WORD $0xaa1503f6 // mov x22, x21 - WORD $0x14000008 // b LBB0_670 $32(%rip) -LBB0_667: + WORD $0x340000d4 // cbz w20, LBB0_669 $24(%rip) + WORD $0x5ac00291 // rbit w17, w20 + WORD $0x5ac01231 // clz w17, w17 WORD $0xb100079f // cmn x28, #1 - WORD $0x540017e1 // b.ne LBB0_713 $764(%rip) - WORD $0xd10006fc // sub x28, x23, #1 + WORD $0x54001d41 // b.ne LBB0_723 $936(%rip) + WORD $0x8b1102fc // add x28, x23, x17 LBB0_669: - WORD $0x910006f7 // add x23, x23, #1 - WORD $0xaa1603f5 // mov x21, x22 - WORD $0xd1000694 // sub x20, x20, #1 - WORD $0xb40010d4 // cbz x20, LBB0_706 $536(%rip) -LBB0_670: - WORD $0x384016c6 // ldrb w6, [x22], #1 - WORD $0x5100c0ca // sub w10, w6, #48 - WORD $0x7100295f // cmp w10, #10 - WORD $0x54ffff23 // b.lo LBB0_669 $-28(%rip) + WORD $0x7100427f // cmp w19, #16 + WORD $0x540005e1 // b.ne LBB0_687 $188(%rip) + WORD $0x910042f7 // add x23, x23, #16 + WORD $0xd10042b5 // sub x21, x21, #16 + WORD $0x8b1502d3 // add x19, x22, x21 + WORD $0xf1003e7f // cmp x19, #15 + WORD $0x54fff6e8 // b.hi LBB0_657 $-292(%rip) + WORD $0x8b170114 // add x20, x8, x23 + WORD $0xeb1702df // cmp x22, x23 + WORD $0x52800078 // mov w24, #3 + WORD $0x54000520 // b.eq LBB0_688 $164(%rip) +LBB0_672: + WORD $0x8b130282 // add x2, x20, x19 + WORD $0x8b140191 // add x17, x12, x20 + WORD $0xcb1a0236 // sub x22, x17, x26 + WORD $0xaa1403f5 // mov x21, x20 + WORD $0x14000008 // b LBB0_676 $32(%rip) +LBB0_673: + WORD $0xb100079f // cmn x28, #1 + WORD $0x540019a1 // b.ne LBB0_720 $820(%rip) + WORD $0xd10006dc // sub x28, x22, #1 +LBB0_675: + WORD $0x910006d6 // add x22, x22, #1 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xd1000673 // sub x19, x19, #1 + WORD $0xb4001273 // cbz x19, LBB0_713 $588(%rip) +LBB0_676: + WORD $0x384016a6 // ldrb w6, [x21], #1 + WORD $0x5100c0d1 // sub w17, w6, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54ffff23 // b.lo LBB0_675 $-28(%rip) WORD $0x7100b4df // cmp w6, #45 - WORD $0x5400016d // b.le LBB0_677 $44(%rip) + WORD $0x5400016d // b.le LBB0_683 $44(%rip) WORD $0x710194df // cmp w6, #101 - WORD $0x540001c0 // b.eq LBB0_679 $56(%rip) + WORD $0x540001c0 // b.eq LBB0_685 $56(%rip) WORD $0x710114df // cmp w6, #69 - WORD $0x54000180 // b.eq LBB0_679 $48(%rip) + WORD $0x54000180 // b.eq LBB0_685 $48(%rip) WORD $0x7100b8df // cmp w6, #46 - WORD $0x54000201 // b.ne LBB0_682 $64(%rip) - WORD $0xb100053f // cmn x9, #1 - WORD $0x54001581 // b.ne LBB0_713 $688(%rip) - WORD $0xd10006e9 // sub x9, x23, #1 - WORD $0x17ffffed // b LBB0_669 $-76(%rip) -LBB0_677: + WORD $0x54000221 // b.ne LBB0_688 $68(%rip) + WORD $0xb100049f // cmn x4, #1 + WORD $0x54001741 // b.ne LBB0_720 $744(%rip) + WORD $0xd10006c4 // sub x4, x22, #1 + WORD $0x17ffffed // b LBB0_675 $-76(%rip) +LBB0_683: WORD $0x7100acdf // cmp w6, #43 - WORD $0x54fffd00 // b.eq LBB0_667 $-96(%rip) + WORD $0x54fffd00 // b.eq LBB0_673 $-96(%rip) WORD $0x7100b4df // cmp w6, #45 - WORD $0x54fffcc0 // b.eq LBB0_667 $-104(%rip) - WORD $0x14000007 // b LBB0_682 $28(%rip) -LBB0_679: + WORD $0x54fffcc0 // b.eq LBB0_673 $-104(%rip) + WORD $0x14000008 // b LBB0_688 $32(%rip) +LBB0_685: WORD $0xb10007df // cmn lr, #1 - WORD $0x54001461 // b.ne LBB0_713 $652(%rip) - WORD $0xd10006fe // sub lr, x23, #1 - WORD $0x17ffffe4 // b LBB0_669 $-112(%rip) -LBB0_681: - WORD $0x8b34410a // add x10, x8, w20, uxtw - WORD $0x8b180155 // add x21, x10, x24 -LBB0_682: - WORD $0x92800014 // mov x20, #-1 - WORD $0xb40039a9 // cbz x9, LBB0_788 $1844(%rip) -LBB0_683: - WORD $0xb400399c // cbz x28, LBB0_788 $1840(%rip) - WORD $0xb400397e // cbz lr, LBB0_788 $1836(%rip) - WORD $0xcb0802a8 // sub x8, x21, x8 - WORD $0xd1000504 // sub x4, x8, #1 - WORD $0xeb04013f // cmp x9, x4 - WORD $0x540002a0 // b.eq LBB0_693 $84(%rip) - WORD $0xeb04039f // cmp x28, x4 - WORD $0x54000260 // b.eq LBB0_693 $76(%rip) - WORD $0xeb0403df // cmp lr, x4 - WORD $0x54000220 // b.eq LBB0_693 $68(%rip) - WORD $0xf1000784 // subs x4, x28, #1 - WORD $0x5400006b // b.lt LBB0_690 $12(%rip) - WORD $0xeb0403df // cmp lr, x4 - WORD $0x54003801 // b.ne LBB0_789 $1792(%rip) -LBB0_690: - WORD $0xaa1e0124 // orr x4, x9, lr - WORD $0xb7f80064 // tbnz x4, #63, LBB0_692 $12(%rip) - WORD $0xeb1e013f // cmp x9, lr - WORD $0x54003fea // b.ge LBB0_806 $2044(%rip) -LBB0_692: - WORD $0xd37ffc8a // lsr x10, x4, #63 - WORD $0x5200014a // eor w10, w10, #0x1 - WORD $0xd10007c4 // sub x4, lr, #1 - WORD $0xeb04013f // cmp x9, x4 - WORD $0x1a9f17e9 // cset w9, eq - WORD $0x6a09015f // tst w10, w9 - WORD $0xda9e0114 // csinv x20, x8, lr, eq - WORD $0x14000002 // b LBB0_694 $8(%rip) -LBB0_693: - WORD $0xcb0803f4 // neg x20, x8 -LBB0_694: - WORD $0xb7f83634 // tbnz x20, #63, LBB0_788 $1732(%rip) -LBB0_695: - WORD $0x8b130293 // add x19, x20, x19 - WORD $0xf9000033 // str x19, [x1] - WORD $0xaa1b03e8 // mov x8, x27 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xeb17037f // cmp x27, x23 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x54001621 // b.ne LBB0_720 $708(%rip) + WORD $0xd10006de // sub lr, x22, #1 + WORD $0x17ffffe4 // b LBB0_675 $-112(%rip) +LBB0_687: + WORD $0x8b334111 // add x17, x8, w19, uxtw + WORD $0x8b170234 // add x20, x17, x23 + WORD $0x52800078 // mov w24, #3 +LBB0_688: + WORD $0x92800013 // mov x19, #-1 + WORD $0xb400a004 // cbz x4, LBB0_913 $5120(%rip) +LBB0_689: + WORD $0xb4009ffc // cbz x28, LBB0_913 $5116(%rip) + WORD $0xb4009fde // cbz lr, LBB0_913 $5112(%rip) + WORD $0xcb080288 // sub x8, x20, x8 + WORD $0xd1000511 // sub x17, x8, #1 + WORD $0xeb11009f // cmp x4, x17 + WORD $0x540002a0 // b.eq LBB0_699 $84(%rip) + WORD $0xeb11039f // cmp x28, x17 + WORD $0x54000260 // b.eq LBB0_699 $76(%rip) + WORD $0xeb1103df // cmp lr, x17 + WORD $0x54000220 // b.eq LBB0_699 $68(%rip) + WORD $0xf1000791 // subs x17, x28, #1 + WORD $0x5400006b // b.lt LBB0_696 $12(%rip) + WORD $0xeb1103df // cmp lr, x17 + WORD $0x54009e61 // b.ne LBB0_914 $5068(%rip) +LBB0_696: + WORD $0xaa1e0091 // orr x17, x4, lr + WORD $0xb7f80071 // tbnz x17, #63, LBB0_698 $12(%rip) + WORD $0xeb1e009f // cmp x4, lr + WORD $0x5400a66a // b.ge LBB0_930 $5324(%rip) +LBB0_698: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10007c2 // sub x2, lr, #1 + WORD $0xeb02009f // cmp x4, x2 + WORD $0x1a9f17e2 // cset w2, eq + WORD $0x6a02023f // tst w17, w2 + WORD $0xda9e0113 // csinv x19, x8, lr, eq + WORD $0x14000002 // b LBB0_700 $8(%rip) +LBB0_699: + WORD $0xcb0803f3 // neg x19, x8 +LBB0_700: + WORD $0xb7f89c93 // tbnz x19, #63, LBB0_913 $5008(%rip) +LBB0_701: + WORD $0x8b1b027b // add x27, x19, x27 + WORD $0xf900003b // str x27, [x1] + WORD $0xaa1a03e8 // mov x8, x26 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xeb06035f // cmp x26, x6 + WORD $0x52800085 // mov w5, #4 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0x54ffdd23 // b.lo LBB0_634 $-1116(%rip) - WORD $0x14000188 // b LBB0_778 $1568(%rip) -LBB0_696: - WORD $0x8b130173 // add x19, x11, x19 - WORD $0x1400000c // b LBB0_700 $48(%rip) -LBB0_697: - WORD $0x5ac00088 // rbit w8, w4 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0x54ffe8c3 // b.lo LBB0_651 $-744(%rip) + WORD $0x14000254 // b LBB0_832 $2384(%rip) +LBB0_702: + WORD $0x8b1b013b // add x27, x9, x27 + WORD $0x14000019 // b LBB0_707 $100(%rip) +LBB0_703: + WORD $0x5ac00228 // rbit w8, w17 WORD $0x5ac01108 // clz w8, w8 - WORD $0xaa3e03e9 // mvn x9, lr - WORD $0xcb080134 // sub x20, x9, x8 - WORD $0x17fffea0 // b LBB0_614 $-1408(%rip) -LBB0_698: + WORD $0xaa3e03f1 // mvn x17, lr + WORD $0xcb080233 // sub x19, x17, x8 + WORD $0x14000003 // b LBB0_705 $12(%rip) +LBB0_704: WORD $0xaa3e03e8 // mvn x8, lr - WORD $0xcb244114 // sub x20, x8, w4, uxtw - WORD $0x17fffe9d // b LBB0_614 $-1420(%rip) -LBB0_699: - WORD $0xd2800009 // mov x9, #0 - WORD $0x8b130173 // add x19, x11, x19 + WORD $0xcb314113 // sub x19, x8, w17, uxtw +LBB0_705: + WORD $0x52800078 // mov w24, #3 + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb6ffd173 // tbz x19, #63, LBB0_620 $-1492(%rip) + WORD $0x140004af // b LBB0_906 $4796(%rip) +LBB0_706: + WORD $0xd2800004 // mov x4, #0 + WORD $0x8b1b013b // add x27, x9, x27 WORD $0x9280001c // mov x28, #-1 -LBB0_700: - WORD $0xf10083d4 // subs x20, lr, #32 - WORD $0x540017c3 // b.lo LBB0_728 $760(%rip) - WORD $0xad405273 // ldp q19, q20, [x19] +LBB0_707: + WORD $0xf10083d3 // subs x19, lr, #32 + WORD $0x54001843 // b.lo LBB0_735 $776(%rip) + WORD $0xad405373 // ldp q19, q20, [x27] WORD $0x6e208e75 // cmeq.16b v21, v19, v0 WORD $0x6e208e96 // cmeq.16b v22, v20, v0 WORD $0x6e218e73 // cmeq.16b v19, v19, v1 @@ -3911,58 +4026,56 @@ LBB0_700: WORD $0x4e221eb5 // and.16b v21, v21, v2 WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x1e2602b4 // fmov w20, s21 WORD $0x4e221ed5 // and.16b v21, v22, v2 WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x1e2602b1 // fmov w17, s21 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260276 // fmov w22, s19 + WORD $0x1e260275 // fmov w21, s19 WORD $0x4e221e93 // and.16b v19, v20, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 WORD $0x1e260266 // fmov w6, s19 - WORD $0x33103c95 // bfi w21, w4, #16, #16 - WORD $0x33103cd6 // bfi w22, w6, #16, #16 - WORD $0x350010d6 // cbnz w22, LBB0_725 $536(%rip) - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103cd5 // bfi w21, w6, #16, #16 + WORD $0x35001135 // cbnz w21, LBB0_732 $548(%rip) + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0xb5001029 // cbnz x9, LBB0_726 $516(%rip) - WORD $0xb4001315 // cbz x21, LBB0_727 $608(%rip) -LBB0_704: - WORD $0xdac002a9 // rbit x9, x21 - WORD $0xdac01129 // clz x9, x9 - WORD $0xcb0b0264 // sub x4, x19, x11 - WORD $0x8b090089 // add x9, x4, x9 - WORD $0x91000533 // add x19, x9, #1 - WORD $0xb6ffd573 // tbz x19, #63, LBB0_633 $-1364(%rip) - WORD $0x14000159 // b LBB0_780 $1380(%rip) -LBB0_705: - WORD $0x8b130173 // add x19, x11, x19 - WORD $0x14000008 // b LBB0_708 $32(%rip) -LBB0_706: - WORD $0xaa0403f5 // mov x21, x4 - WORD $0x92800014 // mov x20, #-1 - WORD $0xb5fff2c9 // cbnz x9, LBB0_683 $-424(%rip) - WORD $0x14000161 // b LBB0_788 $1412(%rip) -LBB0_707: - WORD $0xd2800009 // mov x9, #0 - WORD $0x8b130173 // add x19, x11, x19 + WORD $0xb50010a4 // cbnz x4, LBB0_733 $532(%rip) + WORD $0xb40013b4 // cbz x20, LBB0_734 $628(%rip) +LBB0_711: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090364 // sub x4, x27, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0x9100063b // add x27, x17, #1 + WORD $0x17fffce0 // b LBB0_531 $-3200(%rip) +LBB0_712: + WORD $0x8b1b013b // add x27, x9, x27 + WORD $0x14000008 // b LBB0_715 $32(%rip) +LBB0_713: + WORD $0xaa0203f4 // mov x20, x2 + WORD $0x92800013 // mov x19, #-1 + WORD $0xb5fff144 // cbnz x4, LBB0_689 $-472(%rip) + WORD $0x14000488 // b LBB0_913 $4640(%rip) +LBB0_714: + WORD $0xd2800004 // mov x4, #0 + WORD $0x8b1b013b // add x27, x9, x27 WORD $0x9280001c // mov x28, #-1 -LBB0_708: - WORD $0xf10083d4 // subs x20, lr, #32 - WORD $0x54001703 // b.lo LBB0_739 $736(%rip) - WORD $0xad405273 // ldp q19, q20, [x19] +LBB0_715: + WORD $0xf10083d3 // subs x19, lr, #32 + WORD $0x54001b63 // b.lo LBB0_747 $876(%rip) + WORD $0xad405373 // ldp q19, q20, [x27] WORD $0x6e208e75 // cmeq.16b v21, v19, v0 WORD $0x6e208e96 // cmeq.16b v22, v20, v0 WORD $0x6e218e73 // cmeq.16b v19, v19, v1 @@ -3970,66 +4083,69 @@ LBB0_708: WORD $0x4e221eb5 // and.16b v21, v21, v2 WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x1e2602b4 // fmov w20, s21 WORD $0x4e221ed5 // and.16b v21, v22, v2 WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602a4 // fmov w4, s21 + WORD $0x1e2602b1 // fmov w17, s21 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260276 // fmov w22, s19 + WORD $0x1e260275 // fmov w21, s19 WORD $0x4e221e93 // and.16b v19, v20, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 WORD $0x1e260266 // fmov w6, s19 - WORD $0x33103c95 // bfi w21, w4, #16, #16 - WORD $0x33103cd6 // bfi w22, w6, #16, #16 - WORD $0x35001116 // cbnz w22, LBB0_736 $544(%rip) - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0xb5001149 // cbnz x9, LBB0_737 $552(%rip) - WORD $0xb4001335 // cbz x21, LBB0_738 $612(%rip) -LBB0_712: - WORD $0xdac002a9 // rbit x9, x21 - WORD $0xdac01129 // clz x9, x9 - WORD $0xcb0b0264 // sub x4, x19, x11 - WORD $0x8b090089 // add x9, x4, x9 - WORD $0x91000533 // add x19, x9, #1 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103cd5 // bfi w21, w6, #16, #16 + WORD $0x35001535 // cbnz w21, LBB0_744 $676(%rip) + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0xb5001564 // cbnz x4, LBB0_745 $684(%rip) + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb4001754 // cbz x20, LBB0_746 $744(%rip) +LBB0_719: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090364 // sub x4, x27, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0x9100063b // add x27, x17, #1 + WORD $0x52800085 // mov w5, #4 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0xb6ffa5f3 // tbz x19, #63, LBB0_543 $-2884(%rip) - WORD $0x14000123 // b LBB0_780 $1164(%rip) -LBB0_713: - WORD $0xcb1703f4 // neg x20, x23 - WORD $0x17ffff7e // b LBB0_694 $-520(%rip) -LBB0_714: - WORD $0x5ac00348 // rbit w8, w26 + WORD $0xb6ffa37b // tbz x27, #63, LBB0_547 $-2964(%rip) + WORD $0x14000444 // b LBB0_903 $4368(%rip) +LBB0_720: + WORD $0xcb1603f3 // neg x19, x22 + WORD $0x17ffff71 // b LBB0_700 $-572(%rip) +LBB0_721: + WORD $0x5ac00328 // rbit w8, w25 WORD $0x5ac01108 // clz w8, w8 - WORD $0xaa3803e9 // mvn x9, x24 - WORD $0xcb080134 // sub x20, x9, x8 - WORD $0x17ffff79 // b LBB0_694 $-540(%rip) -LBB0_715: - WORD $0x8b130173 // add x19, x11, x19 - WORD $0x14000007 // b LBB0_718 $28(%rip) -LBB0_716: - WORD $0xaa3803e8 // mvn x8, x24 - WORD $0xcb244114 // sub x20, x8, w4, uxtw - WORD $0x17ffff74 // b LBB0_694 $-560(%rip) -LBB0_717: - WORD $0xd2800009 // mov x9, #0 - WORD $0x8b130173 // add x19, x11, x19 + WORD $0xaa3703f1 // mvn x17, x23 + WORD $0xcb080233 // sub x19, x17, x8 + WORD $0x52800078 // mov w24, #3 + WORD $0x17ffff6b // b LBB0_700 $-596(%rip) +LBB0_722: + WORD $0x8b1b013b // add x27, x9, x27 + WORD $0x14000008 // b LBB0_725 $32(%rip) +LBB0_723: + WORD $0xaa3703e8 // mvn x8, x23 + WORD $0xcb314113 // sub x19, x8, w17, uxtw + WORD $0x52800078 // mov w24, #3 + WORD $0x17ffff65 // b LBB0_700 $-620(%rip) +LBB0_724: + WORD $0xd2800004 // mov x4, #0 + WORD $0x8b1b013b // add x27, x9, x27 WORD $0x9280001c // mov x28, #-1 -LBB0_718: - WORD $0xf10083d4 // subs x20, lr, #32 - WORD $0x54001a23 // b.lo LBB0_757 $836(%rip) - WORD $0xad405273 // ldp q19, q20, [x19] +LBB0_725: + WORD $0xf10083d3 // subs x19, lr, #32 + WORD $0x54001d23 // b.lo LBB0_766 $932(%rip) + WORD $0xad405373 // ldp q19, q20, [x27] WORD $0x6e208e75 // cmeq.16b v21, v19, v0 WORD $0x6e208e96 // cmeq.16b v22, v20, v0 WORD $0x6e218e73 // cmeq.16b v19, v19, v1 @@ -4037,302 +4153,520 @@ LBB0_718: WORD $0x4e221eb5 // and.16b v21, v21, v2 WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602b5 // fmov w21, s21 + WORD $0x1e2602b4 // fmov w20, s21 WORD $0x4e221ed5 // and.16b v21, v22, v2 WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602aa // fmov w10, s21 + WORD $0x1e2602b1 // fmov w17, s21 WORD $0x4e221e73 // and.16b v19, v19, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260276 // fmov w22, s19 + WORD $0x1e260275 // fmov w21, s19 WORD $0x4e221e93 // and.16b v19, v20, v2 WORD $0x4e030273 // tbl.16b v19, { v19 }, v3 WORD $0x4e71ba73 // addv.8h h19, v19 - WORD $0x1e260264 // fmov w4, s19 - WORD $0x33103d55 // bfi w21, w10, #16, #16 - WORD $0x33103c96 // bfi w22, w4, #16, #16 - WORD $0x35001496 // cbnz w22, LBB0_754 $656(%rip) - WORD $0xb5001529 // cbnz x9, LBB0_755 $676(%rip) - WORD $0xb40016b5 // cbz x21, LBB0_756 $724(%rip) -LBB0_722: - WORD $0xdac002a9 // rbit x9, x21 - WORD $0xdac01129 // clz x9, x9 - WORD $0xcb0b026a // sub x10, x19, x11 - WORD $0x8b090149 // add x9, x10, x9 - WORD $0x17fffc83 // b LBB0_527 $-3572(%rip) -LBB0_723: + WORD $0x1e260262 // fmov w2, s19 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c55 // bfi w21, w2, #16, #16 + WORD $0x350017b5 // cbnz w21, LBB0_763 $756(%rip) + WORD $0xb5001844 // cbnz x4, LBB0_764 $776(%rip) + WORD $0xb40019b4 // cbz x20, LBB0_765 $820(%rip) +LBB0_729: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090362 // sub x2, x27, x9 + WORD $0x8b110051 // add x17, x2, x17 + WORD $0x9100063b // add x27, x17, #1 + WORD $0x140000e3 // b LBB0_776 $908(%rip) +LBB0_730: WORD $0x92800008 // mov x8, #-1 - WORD $0xaa1c03f5 // mov x21, x28 - WORD $0xaa1403f6 // mov x22, x20 - WORD $0x92800009 // mov x9, #-1 - WORD $0x92800013 // mov x19, #-1 - WORD $0x17fffd7d // b LBB0_574 $-2572(%rip) -LBB0_724: - WORD $0x92800009 // mov x9, #-1 - WORD $0xaa0803f5 // mov x21, x8 - WORD $0xaa1703f4 // mov x20, x23 + WORD $0xaa1c03f4 // mov x20, x28 + WORD $0xaa1303f5 // mov x21, x19 + WORD $0x92800004 // mov x4, #-1 + WORD $0x9280001b // mov x27, #-1 + WORD $0x17fffd6e // b LBB0_584 $-2632(%rip) +LBB0_731: + WORD $0x92800004 // mov x4, #-1 + WORD $0xaa0803f4 // mov x20, x8 + WORD $0xaa1603f3 // mov x19, x22 WORD $0x9280001e // mov lr, #-1 WORD $0x9280001c // mov x28, #-1 - WORD $0x17ffff00 // b LBB0_666 $-1024(%rip) -LBB0_725: - WORD $0xdac002c4 // rbit x4, x22 - WORD $0xdac01084 // clz x4, x4 - WORD $0xcb0b0266 // sub x6, x19, x11 - WORD $0x8b0400c4 // add x4, x6, x4 + WORD $0x52800078 // mov w24, #3 + WORD $0x17fffeee // b LBB0_672 $-1096(%rip) +LBB0_732: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090366 // sub x6, x27, x9 + WORD $0x8b1100d1 // add x17, x6, x17 WORD $0xb100079f // cmn x28, #1 - WORD $0x9a84139c // csel x28, x28, x4, ne -LBB0_726: - WORD $0x0a2902c4 // bic w4, w22, w9 - WORD $0x531f7886 // lsl w6, w4, #1 - WORD $0x331f7889 // bfi w9, w4, #1, #31 - WORD $0x0a2602c6 // bic w6, w22, w6 + WORD $0x9a91139c // csel x28, x28, x17, ne +LBB0_733: + WORD $0x0a2402b1 // bic w17, w21, w4 + WORD $0x531f7a26 // lsl w6, w17, #1 + WORD $0x331f7a24 // bfi w4, w17, #1, #31 + WORD $0x0a2602a6 // bic w6, w21, w6 WORD $0x1201f0c6 // and w6, w6, #0xaaaaaaaa - WORD $0x2b0400c4 // adds w4, w6, w4 - WORD $0x3200f3ea // mov w10, #1431655765 - WORD $0x4a040544 // eor w4, w10, w4, lsl #1 - WORD $0x0a090089 // and w9, w4, w9 + WORD $0x2b1100d1 // adds w17, w6, w17 + WORD $0x3200f3e2 // mov w2, #1431655765 + WORD $0x4a110451 // eor w17, w2, w17, lsl #1 + WORD $0x0a040231 // and w17, w17, w4 WORD $0x1a9f37e4 // cset w4, hs - WORD $0x2a2903e9 // mvn w9, w9 - WORD $0x8a150135 // and x21, x9, x21 - WORD $0xaa0403e9 // mov x9, x4 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800078 // mov w24, #3 + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0xb5ffed55 // cbnz x21, LBB0_704 $-600(%rip) -LBB0_727: - WORD $0x91008273 // add x19, x19, #32 - WORD $0xaa1403fe // mov lr, x20 -LBB0_728: - WORD $0xb5000c09 // cbnz x9, LBB0_750 $384(%rip) - WORD $0xb400137e // cbz lr, LBB0_765 $620(%rip) -LBB0_730: - WORD $0xaa1303e4 // mov x4, x19 - WORD $0x38401489 // ldrb w9, [x4], #1 - WORD $0x7100893f // cmp w9, #34 - WORD $0x540012c0 // b.eq LBB0_764 $600(%rip) - WORD $0xd10007c6 // sub x6, lr, #1 - WORD $0x7101713f // cmp w9, #92 - WORD $0x540000a0 // b.eq LBB0_733 $20(%rip) - WORD $0xaa0403f3 // mov x19, x4 - WORD $0xaa0603fe // mov lr, x6 - WORD $0xb5fffee6 // cbnz x6, LBB0_730 $-36(%rip) - WORD $0x14000009 // b LBB0_735 $36(%rip) -LBB0_733: - WORD $0xb40021e6 // cbz x6, LBB0_808 $1084(%rip) - WORD $0x8b0d0084 // add x4, x4, x13 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c009c // csel x28, x4, x28, eq - WORD $0x91000a73 // add x19, x19, #2 - WORD $0xd1000bc6 // sub x6, lr, #2 - WORD $0xaa0603fe // mov lr, x6 - WORD $0xb5fffdc6 // cbnz x6, LBB0_730 $-72(%rip) + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb5ffecb4 // cbnz x20, LBB0_711 $-620(%rip) +LBB0_734: + WORD $0x9100837b // add x27, x27, #32 + WORD $0xaa1303fe // mov lr, x19 LBB0_735: - WORD $0x7100893f // cmp w9, #34 - WORD $0x540010c0 // b.eq LBB0_765 $536(%rip) - WORD $0x14000105 // b LBB0_808 $1044(%rip) -LBB0_736: - WORD $0xdac002c4 // rbit x4, x22 - WORD $0xdac01084 // clz x4, x4 - WORD $0xcb0b0266 // sub x6, x19, x11 - WORD $0x8b0400c4 // add x4, x6, x4 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a84139c // csel x28, x28, x4, ne + WORD $0xb5000d24 // cbnz x4, LBB0_757 $420(%rip) + WORD $0xb4000e5e // cbz lr, LBB0_759 $456(%rip) LBB0_737: - WORD $0x0a2902c4 // bic w4, w22, w9 - WORD $0x531f7886 // lsl w6, w4, #1 - WORD $0x331f7889 // bfi w9, w4, #1, #31 - WORD $0x0a2602c6 // bic w6, w22, w6 - WORD $0x1201f0c6 // and w6, w6, #0xaaaaaaaa - WORD $0x2b0400c4 // adds w4, w6, w4 - WORD $0x4a040544 // eor w4, w10, w4, lsl #1 - WORD $0x0a090089 // and w9, w4, w9 - WORD $0x1a9f37e4 // cset w4, hs - WORD $0x2a2903e9 // mvn w9, w9 - WORD $0x8a150135 // and x21, x9, x21 - WORD $0xaa0403e9 // mov x9, x4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0xb5ffed35 // cbnz x21, LBB0_712 $-604(%rip) -LBB0_738: - WORD $0x91008273 // add x19, x19, #32 - WORD $0xaa1403fe // mov lr, x20 -LBB0_739: - WORD $0xb5000709 // cbnz x9, LBB0_752 $224(%rip) - WORD $0xb400045e // cbz lr, LBB0_748 $136(%rip) -LBB0_741: - WORD $0xaa1303e4 // mov x4, x19 - WORD $0x38401489 // ldrb w9, [x4], #1 - WORD $0x7100893f // cmp w9, #34 - WORD $0x540003a0 // b.eq LBB0_747 $116(%rip) + WORD $0xaa1b03f1 // mov x17, x27 + WORD $0x38401624 // ldrb w4, [x17], #1 + WORD $0x7100889f // cmp w4, #34 + WORD $0x540003e0 // b.eq LBB0_743 $124(%rip) WORD $0xd10007c6 // sub x6, lr, #1 - WORD $0x7101713f // cmp w9, #92 - WORD $0x540000a0 // b.eq LBB0_744 $20(%rip) - WORD $0xaa0403f3 // mov x19, x4 + WORD $0x7101709f // cmp w4, #92 + WORD $0x540000a0 // b.eq LBB0_740 $20(%rip) + WORD $0xaa1103fb // mov x27, x17 WORD $0xaa0603fe // mov lr, x6 - WORD $0xb5fffee6 // cbnz x6, LBB0_741 $-36(%rip) - WORD $0x14000009 // b LBB0_746 $36(%rip) -LBB0_744: - WORD $0xb4001be6 // cbz x6, LBB0_808 $892(%rip) - WORD $0x8b0d0084 // add x4, x4, x13 + WORD $0xb5fffee6 // cbnz x6, LBB0_737 $-36(%rip) + WORD $0x14000009 // b LBB0_742 $36(%rip) +LBB0_740: + WORD $0xb4008626 // cbz x6, LBB0_932 $4292(%rip) + WORD $0x8b0b0231 // add x17, x17, x11 WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c009c // csel x28, x4, x28, eq - WORD $0x91000a73 // add x19, x19, #2 + WORD $0x9a9c023c // csel x28, x17, x28, eq + WORD $0x91000b7b // add x27, x27, #2 WORD $0xd1000bc6 // sub x6, lr, #2 WORD $0xaa0603fe // mov lr, x6 - WORD $0xb5fffdc6 // cbnz x6, LBB0_741 $-72(%rip) -LBB0_746: - WORD $0x7100893f // cmp w9, #34 - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0xb5fffdc6 // cbnz x6, LBB0_737 $-72(%rip) +LBB0_742: + WORD $0x7100889f // cmp w4, #34 + WORD $0x52800078 // mov w24, #3 + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 - WORD $0x540001a0 // b.eq LBB0_749 $52(%rip) - WORD $0x140000cb // b LBB0_808 $812(%rip) -LBB0_747: - WORD $0xaa0403f3 // mov x19, x4 -LBB0_748: - WORD $0x5280006a // mov w10, #3 - WORD $0x52800086 // mov w6, #4 - WORD $0x92f00017 // mov x23, #9223372036854775807 - WORD $0xb20903f8 // mov x24, #36028797027352576 - WORD $0xf2800038 // movk x24, #1 - WORD $0x528000b9 // mov w25, #5 - WORD $0x528d8c3a // mov w26, #27745 - WORD $0x72acae7a // movk w26, #25971, lsl #16 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0x54000b40 // b.eq LBB0_760 $360(%rip) + WORD $0x1400041b // b LBB0_932 $4204(%rip) +LBB0_743: + WORD $0xaa1103fb // mov x27, x17 + WORD $0x52800078 // mov w24, #3 + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 WORD $0x528eadde // mov w30, #30062 WORD $0x72ad8d9e // movk w30, #27756, lsl #16 -LBB0_749: - WORD $0xcb0b0273 // sub x19, x19, x11 - WORD $0xb6ff8e73 // tbz x19, #63, LBB0_543 $-3636(%rip) - WORD $0x14000067 // b LBB0_780 $412(%rip) -LBB0_750: - WORD $0xb400179e // cbz lr, LBB0_808 $752(%rip) - WORD $0x8b0d0269 // add x9, x19, x13 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xcb09023b // sub x27, x17, x9 + WORD $0x17fffc15 // b LBB0_531 $-4012(%rip) +LBB0_744: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090366 // sub x6, x27, x9 + WORD $0x8b1100d1 // add x17, x6, x17 WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c013c // csel x28, x9, x28, eq - WORD $0x91000673 // add x19, x19, #1 - WORD $0xd10007de // sub lr, lr, #1 - WORD $0xb5fff39e // cbnz lr, LBB0_730 $-400(%rip) - WORD $0x14000035 // b LBB0_765 $212(%rip) + WORD $0x9a91139c // csel x28, x28, x17, ne +LBB0_745: + WORD $0x0a2402b1 // bic w17, w21, w4 + WORD $0x531f7a26 // lsl w6, w17, #1 + WORD $0x331f7a24 // bfi w4, w17, #1, #31 + WORD $0x0a2602a6 // bic w6, w21, w6 + WORD $0x1201f0c6 // and w6, w6, #0xaaaaaaaa + WORD $0x2b1100d1 // adds w17, w6, w17 + WORD $0x4a110451 // eor w17, w2, w17, lsl #1 + WORD $0x0a040231 // and w17, w17, w4 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800078 // mov w24, #3 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb5ffe914 // cbnz x20, LBB0_719 $-736(%rip) +LBB0_746: + WORD $0x9100837b // add x27, x27, #32 + WORD $0xaa1303fe // mov lr, x19 +LBB0_747: + WORD $0xb5000624 // cbnz x4, LBB0_761 $196(%rip) + WORD $0xb400031e // cbz lr, LBB0_756 $96(%rip) +LBB0_749: + WORD $0xaa1b03f1 // mov x17, x27 + WORD $0x38401624 // ldrb w4, [x17], #1 + WORD $0x7100889f // cmp w4, #34 + WORD $0x54000260 // b.eq LBB0_755 $76(%rip) + WORD $0xd10007c6 // sub x6, lr, #1 + WORD $0x7101709f // cmp w4, #92 + WORD $0x540000a0 // b.eq LBB0_752 $20(%rip) + WORD $0xaa1103fb // mov x27, x17 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffee6 // cbnz x6, LBB0_749 $-36(%rip) + WORD $0x14000009 // b LBB0_754 $36(%rip) LBB0_752: - WORD $0xb400169e // cbz lr, LBB0_808 $720(%rip) - WORD $0x8b0d0269 // add x9, x19, x13 + WORD $0xb4007c86 // cbz x6, LBB0_932 $3984(%rip) + WORD $0x8b0b0231 // add x17, x17, x11 WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c013c // csel x28, x9, x28, eq - WORD $0x91000673 // add x19, x19, #1 - WORD $0xd10007de // sub lr, lr, #1 - WORD $0xb5fff89e // cbnz lr, LBB0_741 $-240(%rip) - WORD $0x17ffffe4 // b LBB0_748 $-112(%rip) + WORD $0x9a9c023c // csel x28, x17, x28, eq + WORD $0x91000b7b // add x27, x27, #2 + WORD $0xd1000bc6 // sub x6, lr, #2 + WORD $0xaa0603fe // mov lr, x6 + WORD $0xb5fffdc6 // cbnz x6, LBB0_749 $-72(%rip) LBB0_754: - WORD $0xdac002ca // rbit x10, x22 - WORD $0xdac0114a // clz x10, x10 - WORD $0xcb0b0264 // sub x4, x19, x11 - WORD $0x8b0a008a // add x10, x4, x10 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a8a139c // csel x28, x28, x10, ne + WORD $0x7100889f // cmp w4, #34 + WORD $0x54000060 // b.eq LBB0_756 $12(%rip) + WORD $0x140003da // b LBB0_932 $3944(%rip) LBB0_755: - WORD $0x0a2902ca // bic w10, w22, w9 - WORD $0x531f7944 // lsl w4, w10, #1 - WORD $0x331f7949 // bfi w9, w10, #1, #31 - WORD $0x0a2402c4 // bic w4, w22, w4 - WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa - WORD $0x2b0a008a // adds w10, w4, w10 - WORD $0x4a0a072a // eor w10, w25, w10, lsl #1 - WORD $0x0a090149 // and w9, w10, w9 - WORD $0x1a9f37ea // cset w10, hs - WORD $0x2a2903e9 // mvn w9, w9 - WORD $0x8a150135 // and x21, x9, x21 - WORD $0xaa0a03e9 // mov x9, x10 - WORD $0xb5ffe9b5 // cbnz x21, LBB0_722 $-716(%rip) + WORD $0xaa1103fb // mov x27, x17 LBB0_756: - WORD $0x91008273 // add x19, x19, #32 - WORD $0xaa1403fe // mov lr, x20 + WORD $0xcb09037b // sub x27, x27, x9 + WORD $0x52800078 // mov w24, #3 + WORD $0x17fffc44 // b LBB0_546 $-3824(%rip) LBB0_757: - WORD $0xb5000329 // cbnz x9, LBB0_766 $100(%rip) - WORD $0xb40002de // cbz lr, LBB0_765 $88(%rip) + WORD $0xb4007abe // cbz lr, LBB0_932 $3924(%rip) + WORD $0x8b0b0371 // add x17, x27, x11 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c023c // csel x28, x17, x28, eq + WORD $0x9100077b // add x27, x27, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0x52800078 // mov w24, #3 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0xb5fff21e // cbnz lr, LBB0_737 $-448(%rip) LBB0_759: - WORD $0xaa1303e4 // mov x4, x19 - WORD $0x38401489 // ldrb w9, [x4], #1 - WORD $0x7100893f // cmp w9, #34 - WORD $0x54000220 // b.eq LBB0_764 $68(%rip) + WORD $0x52800085 // mov w5, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903f6 // mov x22, #36028797027352576 + WORD $0xf2800036 // movk x22, #1 + WORD $0x528000b7 // mov w23, #5 + WORD $0x528d8c39 // mov w25, #27745 + WORD $0x72acae79 // movk w25, #25971, lsl #16 + WORD $0x528eadde // mov w30, #30062 + WORD $0x72ad8d9e // movk w30, #27756, lsl #16 +LBB0_760: + WORD $0xcb09037b // sub x27, x27, x9 + WORD $0x17fffbca // b LBB0_531 $-4312(%rip) +LBB0_761: + WORD $0xb400781e // cbz lr, LBB0_932 $3840(%rip) + WORD $0x8b0b0371 // add x17, x27, x11 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a9c023c // csel x28, x17, x28, eq + WORD $0x9100077b // add x27, x27, #1 + WORD $0xd10007de // sub lr, lr, #1 + WORD $0xb5fff97e // cbnz lr, LBB0_749 $-212(%rip) + WORD $0x17ffffe1 // b LBB0_756 $-124(%rip) +LBB0_763: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090362 // sub x2, x27, x9 + WORD $0x8b110051 // add x17, x2, x17 + WORD $0xb100079f // cmn x28, #1 + WORD $0x9a91139c // csel x28, x28, x17, ne +LBB0_764: + WORD $0x0a2402b1 // bic w17, w21, w4 + WORD $0x531f7a22 // lsl w2, w17, #1 + WORD $0x331f7a24 // bfi w4, w17, #1, #31 + WORD $0x0a2202a2 // bic w2, w21, w2 + WORD $0x1201f042 // and w2, w2, #0xaaaaaaaa + WORD $0x2b110051 // adds w17, w2, w17 + WORD $0x4a110731 // eor w17, w25, w17, lsl #1 + WORD $0x0a040231 // and w17, w17, w4 + WORD $0x1a9f37e4 // cset w4, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0xb5ffe6b4 // cbnz x20, LBB0_729 $-812(%rip) +LBB0_765: + WORD $0x9100837b // add x27, x27, #32 + WORD $0xaa1303fe // mov lr, x19 +LBB0_766: + WORD $0xb50003c4 // cbnz x4, LBB0_777 $120(%rip) + WORD $0xb400031e // cbz lr, LBB0_775 $96(%rip) +LBB0_768: + WORD $0xaa1b03f1 // mov x17, x27 + WORD $0x38401624 // ldrb w4, [x17], #1 + WORD $0x7100889f // cmp w4, #34 + WORD $0x54000260 // b.eq LBB0_774 $76(%rip) WORD $0xd10007c6 // sub x6, lr, #1 - WORD $0x7101713f // cmp w9, #92 - WORD $0x540000a0 // b.eq LBB0_762 $20(%rip) - WORD $0xaa0403f3 // mov x19, x4 + WORD $0x7101709f // cmp w4, #92 + WORD $0x540000a0 // b.eq LBB0_771 $20(%rip) + WORD $0xaa1103fb // mov x27, x17 WORD $0xaa0603fe // mov lr, x6 - WORD $0xb5fffee6 // cbnz x6, LBB0_759 $-36(%rip) - WORD $0x17ffff84 // b LBB0_735 $-496(%rip) -LBB0_762: - WORD $0xb4001146 // cbz x6, LBB0_808 $552(%rip) - WORD $0x8b0d008a // add x10, x4, x13 + WORD $0xb5fffee6 // cbnz x6, LBB0_768 $-36(%rip) + WORD $0x14000009 // b LBB0_773 $36(%rip) +LBB0_771: + WORD $0xb40072e6 // cbz x6, LBB0_932 $3676(%rip) + WORD $0x8b0b0231 // add x17, x17, x11 WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c015c // csel x28, x10, x28, eq - WORD $0x91000a73 // add x19, x19, #2 + WORD $0x9a9c023c // csel x28, x17, x28, eq + WORD $0x91000b7b // add x27, x27, #2 WORD $0xd1000bc6 // sub x6, lr, #2 WORD $0xaa0603fe // mov lr, x6 - WORD $0xb5fffdc6 // cbnz x6, LBB0_759 $-72(%rip) - WORD $0x17ffff7b // b LBB0_735 $-532(%rip) -LBB0_764: - WORD $0xaa0403f3 // mov x19, x4 -LBB0_765: - WORD $0xcb0b0273 // sub x19, x19, x11 - WORD $0x17fffbba // b LBB0_528 $-4376(%rip) -LBB0_766: - WORD $0xb4000fde // cbz lr, LBB0_808 $504(%rip) - WORD $0x8b0d0269 // add x9, x19, x13 + WORD $0xb5fffdc6 // cbnz x6, LBB0_768 $-72(%rip) +LBB0_773: + WORD $0x7100889f // cmp w4, #34 + WORD $0x54000060 // b.eq LBB0_775 $12(%rip) + WORD $0x1400038d // b LBB0_932 $3636(%rip) +LBB0_774: + WORD $0xaa1103fb // mov x27, x17 +LBB0_775: + WORD $0xcb09037b // sub x27, x27, x9 +LBB0_776: + WORD $0x52800078 // mov w24, #3 + WORD $0x528e4e82 // mov w2, #29300 + WORD $0x72acaea2 // movk w2, #25973, lsl #16 + WORD $0x17fffda2 // b LBB0_649 $-2424(%rip) +LBB0_777: + WORD $0xb40070de // cbz lr, LBB0_932 $3608(%rip) + WORD $0x8b0b0371 // add x17, x27, x11 WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c013c // csel x28, x9, x28, eq - WORD $0x91000673 // add x19, x19, #1 + WORD $0x9a9c023c // csel x28, x17, x28, eq + WORD $0x9100077b // add x27, x27, #1 WORD $0xd10007de // sub lr, lr, #1 - WORD $0xb5fffc7e // cbnz lr, LBB0_759 $-116(%rip) - WORD $0x17fffff7 // b LBB0_765 $-36(%rip) -LBB0_768: + WORD $0xb5fffbde // cbnz lr, LBB0_768 $-136(%rip) + WORD $0x17fffff4 // b LBB0_775 $-48(%rip) +LBB0_779: + WORD $0xf940002b // ldr x11, [x1] + WORD $0xa940200a // ldp x10, x8, [x0] + WORD $0xeb08017f // cmp x11, x8 + WORD $0x54000142 // b.hs LBB0_783 $40(%rip) + WORD $0x386b6949 // ldrb w9, [x10, x11] + WORD $0x7100353f // cmp w9, #13 + WORD $0x540000e0 // b.eq LBB0_783 $28(%rip) + WORD $0x7100813f // cmp w9, #32 + WORD $0x540000a0 // b.eq LBB0_783 $20(%rip) + WORD $0x51002d2c // sub w12, w9, #11 + WORD $0xaa0b03e9 // mov x9, x11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000883 // b.lo LBB0_806 $272(%rip) +LBB0_783: + WORD $0x91000569 // add x9, x11, #1 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54000122 // b.hs LBB0_787 $36(%rip) + WORD $0x3869694c // ldrb w12, [x10, x9] + WORD $0x7100359f // cmp w12, #13 + WORD $0x540000c0 // b.eq LBB0_787 $24(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x54000080 // b.eq LBB0_787 $16(%rip) + WORD $0x51002d8c // sub w12, w12, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000723 // b.lo LBB0_806 $228(%rip) +LBB0_787: + WORD $0x91000969 // add x9, x11, #2 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54000122 // b.hs LBB0_791 $36(%rip) + WORD $0x3869694c // ldrb w12, [x10, x9] + WORD $0x7100359f // cmp w12, #13 + WORD $0x540000c0 // b.eq LBB0_791 $24(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x54000080 // b.eq LBB0_791 $16(%rip) + WORD $0x51002d8c // sub w12, w12, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x540005c3 // b.lo LBB0_806 $184(%rip) +LBB0_791: + WORD $0x91000d69 // add x9, x11, #3 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54000122 // b.hs LBB0_795 $36(%rip) + WORD $0x3869694c // ldrb w12, [x10, x9] + WORD $0x7100359f // cmp w12, #13 + WORD $0x540000c0 // b.eq LBB0_795 $24(%rip) + WORD $0x7100819f // cmp w12, #32 + WORD $0x54000080 // b.eq LBB0_795 $16(%rip) + WORD $0x51002d8c // sub w12, w12, #11 + WORD $0x3100099f // cmn w12, #2 + WORD $0x54000463 // b.lo LBB0_806 $140(%rip) +LBB0_795: + WORD $0x91001169 // add x9, x11, #4 + WORD $0xeb08013f // cmp x9, x8 + WORD $0x540001e2 // b.hs LBB0_800 $60(%rip) + WORD $0x5280002b // mov w11, #1 + WORD $0xd284c00c // mov x12, #9728 + WORD $0xf2c0002c // movk x12, #1, lsl #32 +LBB0_797: + WORD $0x3869694d // ldrb w13, [x10, x9] + WORD $0x710081bf // cmp w13, #32 + WORD $0x9acd216d // lsl x13, x11, x13 + WORD $0x8a0c01ad // and x13, x13, x12 + WORD $0xfa4099a4 // ccmp x13, #0, #4, ls + WORD $0x540002a0 // b.eq LBB0_805 $84(%rip) + WORD $0x91000529 // add x9, x9, #1 + WORD $0xeb09011f // cmp x8, x9 + WORD $0x54ffff01 // b.ne LBB0_797 $-32(%rip) +LBB0_799: + WORD $0x92800008 // mov x8, #-1 + WORD $0x14000078 // b LBB0_832 $480(%rip) +LBB0_800: + WORD $0xf9000029 // str x9, [x1] + WORD $0x92800008 // mov x8, #-1 + WORD $0x14000075 // b LBB0_832 $468(%rip) +LBB0_801: WORD $0xf9400028 // ldr x8, [x1] WORD $0xd1000508 // sub x8, x8, #1 WORD $0xf9000028 // str x8, [x1] WORD $0x92800428 // mov x8, #-34 - WORD $0x14000011 // b LBB0_778 $68(%rip) -LBB0_769: - WORD $0xf9000028 // str x8, [x1] - WORD $0x1400000b // b LBB0_775 $44(%rip) -LBB0_770: - WORD $0xf900003b // str x27, [x1] -LBB0_771: - WORD $0x92800008 // mov x8, #-1 - WORD $0x1400000c // b LBB0_778 $48(%rip) -LBB0_772: - WORD $0x7101761f // cmp w16, #93 - WORD $0x540000c1 // b.ne LBB0_775 $24(%rip) -LBB0_773: - WORD $0xf9000028 // str x8, [x1] + WORD $0x14000070 // b LBB0_832 $448(%rip) +LBB0_802: + WORD $0xf9000035 // str x21, [x1] + WORD $0x1400006a // b LBB0_829 $424(%rip) +LBB0_803: + WORD $0x7101745f // cmp w2, #93 + WORD $0x54000d01 // b.ne LBB0_829 $416(%rip) +LBB0_804: + WORD $0xf9000035 // str x21, [x1] WORD $0x92800408 // mov x8, #-33 - WORD $0x14000007 // b LBB0_778 $28(%rip) -LBB0_774: - WORD $0x7101f61f // cmp w16, #125 - WORD $0x54ffff80 // b.eq LBB0_773 $-16(%rip) -LBB0_775: + WORD $0x14000069 // b LBB0_832 $420(%rip) +LBB0_805: + WORD $0xeb08013f // cmp x9, x8 + WORD $0x54fffdc2 // b.hs LBB0_799 $-72(%rip) +LBB0_806: + WORD $0x91000530 // add x16, x9, #1 + WORD $0xf9000030 // str x16, [x1] + WORD $0x38696948 // ldrb w8, [x10, x9] + WORD $0x7101691f // cmp w8, #90 + WORD $0x540006ec // b.gt LBB0_823 $220(%rip) + WORD $0x7100bd1f // cmp w8, #47 + WORD $0x54000d8d // b.le LBB0_834 $432(%rip) + WORD $0x5100c108 // sub w8, w8, #48 + WORD $0x7100291f // cmp w8, #10 + WORD $0x540057e2 // b.hs LBB0_900 $2812(%rip) +LBB0_809: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xcb100108 // sub x8, x8, x16 + WORD $0xf100411f // cmp x8, #16 + WORD $0x540002c3 // b.lo LBB0_813 $88(%rip) + WORD $0x4f01e580 // movi.16b v0, #44 + WORD $0x4f06e7e1 // movi.16b v1, #223 + WORD $0x4f02e7a2 // movi.16b v2, #93 +Lloh28: + WORD $0x10fe020b // adr x11, lCPI0_0 $-16320(%rip) +Lloh29: + WORD $0x3dc00163 // ldr q3, [x11, lCPI0_0@PAGEOFF] $0(%rip) +Lloh30: + WORD $0x10fe024b // adr x11, lCPI0_1 $-16312(%rip) +Lloh31: + WORD $0x3dc00164 // ldr q4, [x11, lCPI0_1@PAGEOFF] $0(%rip) +LBB0_811: + WORD $0x3cf06945 // ldr q5, [x10, x16] + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x4e211ca5 // and.16b v5, v5, v1 + WORD $0x6e228ca5 // cmeq.16b v5, v5, v2 + WORD $0x4ea61ca5 // orr.16b v5, v5, v6 + WORD $0x4e231ca5 // and.16b v5, v5, v3 + WORD $0x4e0400a5 // tbl.16b v5, { v5 }, v4 + WORD $0x4e71b8a5 // addv.8h h5, v5 + WORD $0x1e2600ab // fmov w11, s5 + WORD $0x350002eb // cbnz w11, LBB0_821 $92(%rip) + WORD $0xd1004108 // sub x8, x8, #16 + WORD $0x91004210 // add x16, x16, #16 + WORD $0xf1003d1f // cmp x8, #15 + WORD $0x54fffe68 // b.hi LBB0_811 $-52(%rip) +LBB0_813: + WORD $0x8b10014b // add x11, x10, x16 + WORD $0xb40001e8 // cbz x8, LBB0_820 $60(%rip) + WORD $0x8b08016c // add x12, x11, x8 + WORD $0xcb0a016d // sub x13, x11, x10 +LBB0_815: + WORD $0x3940016e // ldrb w14, [x11] + WORD $0x7100b1df // cmp w14, #44 + WORD $0x54005640 // b.eq LBB0_908 $2760(%rip) + WORD $0x7101f5df // cmp w14, #125 + WORD $0x54005600 // b.eq LBB0_908 $2752(%rip) + WORD $0x710175df // cmp w14, #93 + WORD $0x540055c0 // b.eq LBB0_908 $2744(%rip) + WORD $0x9100056b // add x11, x11, #1 + WORD $0x910005ad // add x13, x13, #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x54fffec1 // b.ne LBB0_815 $-40(%rip) + WORD $0xaa0c03eb // mov x11, x12 +LBB0_820: + WORD $0xcb0a0168 // sub x8, x11, x10 + WORD $0x14000004 // b LBB0_822 $16(%rip) +LBB0_821: + WORD $0x5ac00168 // rbit w8, w11 + WORD $0x5ac01108 // clz w8, w8 + WORD $0x8b100108 // add x8, x8, x16 +LBB0_822: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa0903e8 // mov x8, x9 + WORD $0x1400002c // b LBB0_832 $176(%rip) +LBB0_823: + WORD $0x7101b51f // cmp w8, #109 + WORD $0x5400078d // b.le LBB0_837 $240(%rip) + WORD $0x7101b91f // cmp w8, #110 + WORD $0x54002560 // b.eq LBB0_864 $1196(%rip) + WORD $0x7101d11f // cmp w8, #116 + WORD $0x54002520 // b.eq LBB0_864 $1188(%rip) + WORD $0x7101ed1f // cmp w8, #123 + WORD $0x540050c1 // b.ne LBB0_900 $2584(%rip) + WORD $0xd2800007 // mov x7, #0 + WORD $0xd280000f // mov x15, #0 + WORD $0xd2800008 // mov x8, #0 + WORD $0xd280000b // mov x11, #0 + WORD $0xb201e3ec // mov x12, #-8608480567731124088 + WORD $0xf2e1110c // movk x12, #2184, lsl #48 + WORD $0xb202e3ed // mov x13, #4919131752989213764 + WORD $0xf2e0888d // movk x13, #1092, lsl #48 + WORD $0xb203e3ee // mov x14, #2459565876494606882 + WORD $0xf2e0444e // movk x14, #546, lsl #48 + WORD $0xf9400411 // ldr x17, [x0, #8] + WORD $0xcb100225 // sub x5, x17, x16 + WORD $0x8b100150 // add x16, x10, x16 + WORD $0x910083ea // add x10, sp, #32 + WORD $0x9100814a // add x10, x10, #32 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh32: + WORD $0x10fdf9d1 // adr x17, lCPI0_0 $-16584(%rip) +Lloh33: + WORD $0x3dc00221 // ldr q1, [x17, lCPI0_0@PAGEOFF] $0(%rip) +Lloh34: + WORD $0x10fdfa11 // adr x17, lCPI0_1 $-16576(%rip) +Lloh35: + WORD $0x3dc00222 // ldr q2, [x17, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0xb200e3f1 // mov x17, #1229782938247303441 + WORD $0xb203e3e2 // mov x2, #2459565876494606882 + WORD $0xb202e3e3 // mov x3, #4919131752989213764 + WORD $0xb201e3e4 // mov x4, #-8608480567731124088 + WORD $0x4f03e764 // movi.16b v4, #123 + WORD $0x4f03e7a5 // movi.16b v5, #125 + WORD $0x6f00e406 // movi.2d v6, #0000000000000000 + WORD $0x1400002a // b LBB0_841 $168(%rip) +LBB0_828: + WORD $0x7101f45f // cmp w2, #125 + WORD $0x54fff340 // b.eq LBB0_804 $-408(%rip) +LBB0_829: WORD $0xf9400028 // ldr x8, [x1] WORD $0xd1000508 // sub x8, x8, #1 -LBB0_776: +LBB0_830: WORD $0xf9000028 // str x8, [x1] -LBB0_777: +LBB0_831: WORD $0x92800028 // mov x8, #-2 -LBB0_778: +LBB0_832: WORD $0xaa0803e0 // mov x0, x8 WORD $0xa94bfbfd // ldp fp, lr, [sp, #184] WORD $0xa94acff4 // ldp x20, x19, [sp, #168] @@ -4342,147 +4676,861 @@ LBB0_778: WORD $0xa946effc // ldp x28, x27, [sp, #104] WORD $0x910343ff // add sp, sp, #208 WORD $0xd65f03c0 // ret -LBB0_779: +LBB0_833: + WORD $0xf900003a // str x26, [x1] + WORD $0x92800008 // mov x8, #-1 + WORD $0x17fffff5 // b LBB0_832 $-44(%rip) +LBB0_834: + WORD $0x34ffef68 // cbz w8, LBB0_799 $-532(%rip) + WORD $0x7100891f // cmp w8, #34 + WORD $0x54001f40 // b.eq LBB0_865 $1000(%rip) + WORD $0x7100b51f // cmp w8, #45 + WORD $0x54fff280 // b.eq LBB0_809 $-432(%rip) + WORD $0x14000251 // b LBB0_900 $2372(%rip) +LBB0_837: + WORD $0x71016d1f // cmp w8, #91 + WORD $0x540027a0 // b.eq LBB0_874 $1268(%rip) + WORD $0x7101991f // cmp w8, #102 + WORD $0x540049a1 // b.ne LBB0_900 $2356(%rip) + WORD $0x91001528 // add x8, x9, #5 + WORD $0xf940040a // ldr x10, [x0, #8] + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54ffedc8 // b.hi LBB0_799 $-584(%rip) + WORD $0x17ffffb8 // b LBB0_822 $-288(%rip) +LBB0_840: + WORD $0x937ffce7 // asr x7, x7, #63 + WORD $0x9e670267 // fmov d7, x19 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600e5 // fmov w5, s7 + WORD $0x8b0800a8 // add x8, x5, x8 + WORD $0x91010210 // add x16, x16, #64 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_841: + WORD $0xf10100a6 // subs x6, x5, #64 + WORD $0x540015cb // b.lt LBB0_848 $696(%rip) +LBB0_842: + WORD $0xad404612 // ldp q18, q17, [x16] + WORD $0xad411e10 // ldp q16, q7, [x16, #32] + WORD $0x6e238e53 // cmeq.16b v19, v18, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e238e33 // cmeq.16b v19, v17, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e238e13 // cmeq.16b v19, v16, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e238cf3 // cmeq.16b v19, v7, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xaa0f0274 // orr x20, x19, x15 + WORD $0xb5000094 // cbnz x20, LBB0_844 $16(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0xd2800013 // mov x19, #0 + WORD $0x1400000a // b LBB0_845 $40(%rip) +LBB0_844: + WORD $0x8a2f0274 // bic x20, x19, x15 + WORD $0xaa1405f5 // orr x21, x15, x20, lsl #1 + WORD $0x8a35026f // bic x15, x19, x21 + WORD $0x9201f1ef // and x15, x15, #0xaaaaaaaaaaaaaaaa + WORD $0xab1401f3 // adds x19, x15, x20 + WORD $0x1a9f37ef // cset w15, hs + WORD $0xd37ffa73 // lsl x19, x19, #1 + WORD $0xd200f273 // eor x19, x19, #0x5555555555555555 + WORD $0x8a150273 // and x19, x19, x21 +LBB0_845: + WORD $0x6e208e53 // cmeq.16b v19, v18, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e208e33 // cmeq.16b v19, v17, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e208e13 // cmeq.16b v19, v16, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x6e208cf3 // cmeq.16b v19, v7, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0x8a330293 // bic x19, x20, x19 + WORD $0x9200e274 // and x20, x19, #0x1111111111111111 + WORD $0x9203e275 // and x21, x19, #0x2222222222222222 + WORD $0x9202e276 // and x22, x19, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0x9b117e97 // mul x23, x20, x17 + WORD $0x9b0c7eb8 // mul x24, x21, x12 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b0d7ed8 // mul x24, x22, x13 + WORD $0x9b0e7e79 // mul x25, x19, x14 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b027e98 // mul x24, x20, x2 + WORD $0x9b117eb9 // mul x25, x21, x17 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b0c7ed9 // mul x25, x22, x12 + WORD $0x9b0d7e7a // mul x26, x19, x13 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b037e99 // mul x25, x20, x3 + WORD $0x9b027eba // mul x26, x21, x2 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b117eda // mul x26, x22, x17 + WORD $0x9b0c7e7b // mul x27, x19, x12 + WORD $0xca1b035a // eor x26, x26, x27 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b047e94 // mul x20, x20, x4 + WORD $0x9b037eb5 // mul x21, x21, x3 + WORD $0xca150294 // eor x20, x20, x21 + WORD $0x9b027ed5 // mul x21, x22, x2 + WORD $0x9b117e73 // mul x19, x19, x17 + WORD $0xca1302b3 // eor x19, x21, x19 + WORD $0xca130293 // eor x19, x20, x19 + WORD $0x9200e2f4 // and x20, x23, #0x1111111111111111 + WORD $0x9203e315 // and x21, x24, #0x2222222222222222 + WORD $0x9202e336 // and x22, x25, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0xaa150294 // orr x20, x20, x21 + WORD $0xaa1302d3 // orr x19, x22, x19 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xca070267 // eor x7, x19, x7 + WORD $0x6e248e53 // cmeq.16b v19, v18, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e248e33 // cmeq.16b v19, v17, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e248e13 // cmeq.16b v19, v16, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e248cf3 // cmeq.16b v19, v7, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0x8a270273 // bic x19, x19, x7 + WORD $0x6e258e52 // cmeq.16b v18, v18, v5 + WORD $0x4e211e52 // and.16b v18, v18, v1 + WORD $0x4e020252 // tbl.16b v18, { v18 }, v2 + WORD $0x4e71ba52 // addv.8h h18, v18 + WORD $0x1e260254 // fmov w20, s18 + WORD $0x6e258e31 // cmeq.16b v17, v17, v5 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260235 // fmov w21, s17 + WORD $0x6e258e10 // cmeq.16b v16, v16, v5 + WORD $0x4e211e10 // and.16b v16, v16, v1 + WORD $0x4e020210 // tbl.16b v16, { v16 }, v2 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260216 // fmov w22, s16 + WORD $0x6e258ce7 // cmeq.16b v7, v7, v5 + WORD $0x4e211ce7 // and.16b v7, v7, v1 + WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600f7 // fmov w23, s7 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xea270294 // bics x20, x20, x7 + WORD $0x54ffeae0 // b.eq LBB0_840 $-676(%rip) +LBB0_846: + WORD $0xd1000695 // sub x21, x20, #1 + WORD $0x8a1302b6 // and x22, x21, x19 + WORD $0x9e6702c7 // fmov d7, x22 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600f6 // fmov w22, s7 + WORD $0x8b0802d6 // add x22, x22, x8 + WORD $0xeb0b02df // cmp x22, x11 + WORD $0x54003109 // b.ls LBB0_899 $1568(%rip) + WORD $0x9100056b // add x11, x11, #1 + WORD $0xea1402b4 // ands x20, x21, x20 + WORD $0x54fffea1 // b.ne LBB0_846 $-44(%rip) + WORD $0x17ffff4a // b LBB0_840 $-728(%rip) +LBB0_848: + WORD $0xf10000bf // cmp x5, #0 + WORD $0x5400404d // b.le LBB0_939 $2056(%rip) + WORD $0xad021be6 // stp q6, q6, [sp, #64] + WORD $0xad011be6 // stp q6, q6, [sp, #32] + WORD $0x92402e13 // and x19, x16, #0xfff + WORD $0xf13f067f // cmp x19, #4033 + WORD $0x54ffe9a3 // b.lo LBB0_842 $-716(%rip) + WORD $0xf10080b4 // subs x20, x5, #32 + WORD $0x540000a3 // b.lo LBB0_852 $20(%rip) + WORD $0xacc14207 // ldp q7, q16, [x16], #32 + WORD $0xad0143e7 // stp q7, q16, [sp, #32] + WORD $0xaa0a03f3 // mov x19, x10 + WORD $0x14000003 // b LBB0_853 $12(%rip) +LBB0_852: + WORD $0x910083f3 // add x19, sp, #32 + WORD $0xaa0503f4 // mov x20, x5 +LBB0_853: + WORD $0xf1004295 // subs x21, x20, #16 + WORD $0x54000243 // b.lo LBB0_859 $72(%rip) + WORD $0x3cc10607 // ldr q7, [x16], #16 + WORD $0x3c810667 // str q7, [x19], #16 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10022b5 // subs x21, x21, #8 + WORD $0x540001e2 // b.hs LBB0_860 $60(%rip) +LBB0_855: + WORD $0xf1001295 // subs x21, x20, #4 + WORD $0x54000243 // b.lo LBB0_861 $72(%rip) +LBB0_856: + WORD $0xb8404614 // ldr w20, [x16], #4 + WORD $0xb8004674 // str w20, [x19], #4 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf1000ab5 // subs x21, x21, #2 + WORD $0x540001e2 // b.hs LBB0_862 $60(%rip) +LBB0_857: + WORD $0xb4000254 // cbz x20, LBB0_863 $72(%rip) +LBB0_858: + WORD $0x39400210 // ldrb w16, [x16] + WORD $0x39000270 // strb w16, [x19] + WORD $0x910083f0 // add x16, sp, #32 + WORD $0x17ffff32 // b LBB0_842 $-824(%rip) +LBB0_859: + WORD $0xf1002295 // subs x21, x20, #8 + WORD $0x54fffe63 // b.lo LBB0_855 $-52(%rip) +LBB0_860: + WORD $0xf8408614 // ldr x20, [x16], #8 + WORD $0xf8008674 // str x20, [x19], #8 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10012b5 // subs x21, x21, #4 + WORD $0x54fffe02 // b.hs LBB0_856 $-64(%rip) +LBB0_861: + WORD $0xf1000a95 // subs x21, x20, #2 + WORD $0x54fffe63 // b.lo LBB0_857 $-52(%rip) +LBB0_862: + WORD $0x78402614 // ldrh w20, [x16], #2 + WORD $0x78002674 // strh w20, [x19], #2 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xb5fffe15 // cbnz x21, LBB0_858 $-64(%rip) +LBB0_863: + WORD $0x910083f0 // add x16, sp, #32 + WORD $0x17ffff23 // b LBB0_842 $-884(%rip) +LBB0_864: + WORD $0x91001128 // add x8, x9, #4 + WORD $0xf940040a // ldr x10, [x0, #8] + WORD $0xeb0a011f // cmp x8, x10 + WORD $0x54ffd028 // b.hi LBB0_799 $-1532(%rip) + WORD $0x17fffecb // b LBB0_822 $-1236(%rip) +LBB0_865: + WORD $0xf9400411 // ldr x17, [x0, #8] + WORD $0xcb10022b // sub x11, x17, x16 + WORD $0xf100817f // cmp x11, #32 + WORD $0x540036ab // b.lt LBB0_929 $1748(%rip) + WORD $0xd2800008 // mov x8, #0 + WORD $0xd280000e // mov x14, #0 + WORD $0x3200f3ec // mov w12, #1431655765 + WORD $0x3201f3ed // mov w13, #-1431655766 + WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x8b09014f // add x15, x10, x9 +Lloh36: + WORD $0x10fdd52b // adr x11, lCPI0_0 $-17756(%rip) +Lloh37: + WORD $0x3dc00161 // ldr q1, [x11, lCPI0_0@PAGEOFF] $0(%rip) +Lloh38: + WORD $0x10fdd56b // adr x11, lCPI0_1 $-17748(%rip) +Lloh39: + WORD $0x3dc00162 // ldr q2, [x11, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0xcb09022b // sub x11, x17, x9 + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0x528003f0 // mov w16, #31 +LBB0_867: + WORD $0x8b0801f1 // add x17, x15, x8 + WORD $0x3cc01224 // ldur q4, [x17, #1] + WORD $0x3cc11225 // ldur q5, [x17, #17] + WORD $0x6e208c86 // cmeq.16b v6, v4, v0 + WORD $0x4e211cc6 // and.16b v6, v6, v1 + WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600d1 // fmov w17, s6 + WORD $0x6e208ca6 // cmeq.16b v6, v5, v0 + WORD $0x4e211cc6 // and.16b v6, v6, v1 + WORD $0x4e0200c6 // tbl.16b v6, { v6 }, v2 + WORD $0x4e71b8c6 // addv.8h h6, v6 + WORD $0x1e2600c0 // fmov w0, s6 + WORD $0x33103c11 // bfi w17, w0, #16, #16 + WORD $0x6e238c84 // cmeq.16b v4, v4, v3 + WORD $0x4e211c84 // and.16b v4, v4, v1 + WORD $0x4e020084 // tbl.16b v4, { v4 }, v2 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260080 // fmov w0, s4 + WORD $0x6e238ca4 // cmeq.16b v4, v5, v3 + WORD $0x4e211c84 // and.16b v4, v4, v1 + WORD $0x4e020084 // tbl.16b v4, { v4 }, v2 + WORD $0x4e71b884 // addv.8h h4, v4 + WORD $0x1e260082 // fmov w2, s4 + WORD $0x33103c40 // bfi w0, w2, #16, #16 + WORD $0x7100001f // cmp w0, #0 + WORD $0xfa4009c0 // ccmp x14, #0, #0, eq + WORD $0x54000180 // b.eq LBB0_869 $48(%rip) + WORD $0x0a2e0002 // bic w2, w0, w14 + WORD $0x2a0205c3 // orr w3, w14, w2, lsl #1 + WORD $0x0a0d000e // and w14, w0, w13 + WORD $0x0a2301ce // bic w14, w14, w3 + WORD $0x2b0201c0 // adds w0, w14, w2 + WORD $0x1a9f37ee // cset w14, hs + WORD $0x4a000580 // eor w0, w12, w0, lsl #1 + WORD $0x0a030000 // and w0, w0, w3 + WORD $0x2a2003e0 // mvn w0, w0 + WORD $0x8a110011 // and x17, x0, x17 + WORD $0x14000002 // b LBB0_870 $8(%rip) +LBB0_869: + WORD $0xd280000e // mov x14, #0 +LBB0_870: + WORD $0xb5002471 // cbnz x17, LBB0_901 $1164(%rip) + WORD $0x91008108 // add x8, x8, #32 + WORD $0xd1008210 // sub x16, x16, #32 + WORD $0x8b100171 // add x17, x11, x16 + WORD $0xf100fe3f // cmp x17, #63 + WORD $0x54fffa6c // b.gt LBB0_867 $-180(%rip) + WORD $0xb500324e // cbnz x14, LBB0_941 $1608(%rip) + WORD $0x8b09014c // add x12, x10, x9 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0x9100058c // add x12, x12, #1 + WORD $0xaa2803e8 // mvn x8, x8 + WORD $0x8b0b010b // add x11, x8, x11 + WORD $0xf100057f // cmp x11, #1 + WORD $0x5400338a // b.ge LBB0_944 $1648(%rip) + WORD $0x17fffe38 // b LBB0_799 $-1824(%rip) +LBB0_874: + WORD $0xd2800007 // mov x7, #0 + WORD $0xd280000f // mov x15, #0 + WORD $0xd2800008 // mov x8, #0 + WORD $0xd280000b // mov x11, #0 + WORD $0xb201e3ec // mov x12, #-8608480567731124088 + WORD $0xf2e1110c // movk x12, #2184, lsl #48 + WORD $0xb202e3ed // mov x13, #4919131752989213764 + WORD $0xf2e0888d // movk x13, #1092, lsl #48 + WORD $0xb203e3ee // mov x14, #2459565876494606882 + WORD $0xf2e0444e // movk x14, #546, lsl #48 + WORD $0xf9400411 // ldr x17, [x0, #8] + WORD $0xcb100225 // sub x5, x17, x16 + WORD $0x8b100150 // add x16, x10, x16 + WORD $0x910083ea // add x10, sp, #32 + WORD $0x9100814a // add x10, x10, #32 + WORD $0x4f01e440 // movi.16b v0, #34 +Lloh40: + WORD $0x10fdcb71 // adr x17, lCPI0_0 $-18068(%rip) +Lloh41: + WORD $0x3dc00221 // ldr q1, [x17, lCPI0_0@PAGEOFF] $0(%rip) +Lloh42: + WORD $0x10fdcbb1 // adr x17, lCPI0_1 $-18060(%rip) +Lloh43: + WORD $0x3dc00222 // ldr q2, [x17, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0xb200e3f1 // mov x17, #1229782938247303441 + WORD $0xb203e3e2 // mov x2, #2459565876494606882 + WORD $0xb202e3e3 // mov x3, #4919131752989213764 + WORD $0xb201e3e4 // mov x4, #-8608480567731124088 + WORD $0x4f02e764 // movi.16b v4, #91 + WORD $0x4f02e7a5 // movi.16b v5, #93 + WORD $0x6f00e406 // movi.2d v6, #0000000000000000 + WORD $0x14000009 // b LBB0_876 $36(%rip) +LBB0_875: + WORD $0x937ffce7 // asr x7, x7, #63 + WORD $0x9e670267 // fmov d7, x19 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600e5 // fmov w5, s7 + WORD $0x8b0800a8 // add x8, x5, x8 + WORD $0x91010210 // add x16, x16, #64 + WORD $0xaa0603e5 // mov x5, x6 +LBB0_876: + WORD $0xf10100a6 // subs x6, x5, #64 + WORD $0x540015cb // b.lt LBB0_883 $696(%rip) +LBB0_877: + WORD $0xad404612 // ldp q18, q17, [x16] + WORD $0xad411e10 // ldp q16, q7, [x16, #32] + WORD $0x6e238e53 // cmeq.16b v19, v18, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e238e33 // cmeq.16b v19, v17, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e238e13 // cmeq.16b v19, v16, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e238cf3 // cmeq.16b v19, v7, v3 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xaa0f0274 // orr x20, x19, x15 + WORD $0xb5000094 // cbnz x20, LBB0_879 $16(%rip) + WORD $0xd280000f // mov x15, #0 + WORD $0xd2800013 // mov x19, #0 + WORD $0x1400000a // b LBB0_880 $40(%rip) +LBB0_879: + WORD $0x8a2f0274 // bic x20, x19, x15 + WORD $0xaa1405f5 // orr x21, x15, x20, lsl #1 + WORD $0x8a35026f // bic x15, x19, x21 + WORD $0x9201f1ef // and x15, x15, #0xaaaaaaaaaaaaaaaa + WORD $0xab1401f3 // adds x19, x15, x20 + WORD $0x1a9f37ef // cset w15, hs + WORD $0xd37ffa73 // lsl x19, x19, #1 + WORD $0xd200f273 // eor x19, x19, #0x5555555555555555 + WORD $0x8a150273 // and x19, x19, x21 +LBB0_880: + WORD $0x6e208e53 // cmeq.16b v19, v18, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e208e33 // cmeq.16b v19, v17, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e208e13 // cmeq.16b v19, v16, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0x6e208cf3 // cmeq.16b v19, v7, v0 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260277 // fmov w23, s19 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0x8a330293 // bic x19, x20, x19 + WORD $0x9200e274 // and x20, x19, #0x1111111111111111 + WORD $0x9203e275 // and x21, x19, #0x2222222222222222 + WORD $0x9202e276 // and x22, x19, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0x9b117e97 // mul x23, x20, x17 + WORD $0x9b0c7eb8 // mul x24, x21, x12 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b0d7ed8 // mul x24, x22, x13 + WORD $0x9b0e7e79 // mul x25, x19, x14 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0xca1802f7 // eor x23, x23, x24 + WORD $0x9b027e98 // mul x24, x20, x2 + WORD $0x9b117eb9 // mul x25, x21, x17 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b0c7ed9 // mul x25, x22, x12 + WORD $0x9b0d7e7a // mul x26, x19, x13 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0xca190318 // eor x24, x24, x25 + WORD $0x9b037e99 // mul x25, x20, x3 + WORD $0x9b027eba // mul x26, x21, x2 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b117eda // mul x26, x22, x17 + WORD $0x9b0c7e7b // mul x27, x19, x12 + WORD $0xca1b035a // eor x26, x26, x27 + WORD $0xca1a0339 // eor x25, x25, x26 + WORD $0x9b047e94 // mul x20, x20, x4 + WORD $0x9b037eb5 // mul x21, x21, x3 + WORD $0xca150294 // eor x20, x20, x21 + WORD $0x9b027ed5 // mul x21, x22, x2 + WORD $0x9b117e73 // mul x19, x19, x17 + WORD $0xca1302b3 // eor x19, x21, x19 + WORD $0xca130293 // eor x19, x20, x19 + WORD $0x9200e2f4 // and x20, x23, #0x1111111111111111 + WORD $0x9203e315 // and x21, x24, #0x2222222222222222 + WORD $0x9202e336 // and x22, x25, #0x4444444444444444 + WORD $0x9201e273 // and x19, x19, #0x8888888888888888 + WORD $0xaa150294 // orr x20, x20, x21 + WORD $0xaa1302d3 // orr x19, x22, x19 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0xca070267 // eor x7, x19, x7 + WORD $0x6e248e53 // cmeq.16b v19, v18, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260273 // fmov w19, s19 + WORD $0x6e248e33 // cmeq.16b v19, v17, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260274 // fmov w20, s19 + WORD $0x6e248e13 // cmeq.16b v19, v16, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260275 // fmov w21, s19 + WORD $0x6e248cf3 // cmeq.16b v19, v7, v4 + WORD $0x4e211e73 // and.16b v19, v19, v1 + WORD $0x4e020273 // tbl.16b v19, { v19 }, v2 + WORD $0x4e71ba73 // addv.8h h19, v19 + WORD $0x1e260276 // fmov w22, s19 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103e94 // lsl w20, w20, #16 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xaa130293 // orr x19, x20, x19 + WORD $0x8a270273 // bic x19, x19, x7 + WORD $0x6e258e52 // cmeq.16b v18, v18, v5 + WORD $0x4e211e52 // and.16b v18, v18, v1 + WORD $0x4e020252 // tbl.16b v18, { v18 }, v2 + WORD $0x4e71ba52 // addv.8h h18, v18 + WORD $0x1e260254 // fmov w20, s18 + WORD $0x6e258e31 // cmeq.16b v17, v17, v5 + WORD $0x4e211e31 // and.16b v17, v17, v1 + WORD $0x4e020231 // tbl.16b v17, { v17 }, v2 + WORD $0x4e71ba31 // addv.8h h17, v17 + WORD $0x1e260235 // fmov w21, s17 + WORD $0x6e258e10 // cmeq.16b v16, v16, v5 + WORD $0x4e211e10 // and.16b v16, v16, v1 + WORD $0x4e020210 // tbl.16b v16, { v16 }, v2 + WORD $0x4e71ba10 // addv.8h h16, v16 + WORD $0x1e260216 // fmov w22, s16 + WORD $0x6e258ce7 // cmeq.16b v7, v7, v5 + WORD $0x4e211ce7 // and.16b v7, v7, v1 + WORD $0x4e0200e7 // tbl.16b v7, { v7 }, v2 + WORD $0x4e71b8e7 // addv.8h h7, v7 + WORD $0x1e2600f7 // fmov w23, s7 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1402b4 // orr x20, x21, x20 + WORD $0xea270294 // bics x20, x20, x7 + WORD $0x54ffeae0 // b.eq LBB0_875 $-676(%rip) +LBB0_881: + WORD $0xd1000695 // sub x21, x20, #1 + WORD $0x8a1302b6 // and x22, x21, x19 + WORD $0x9e6702c7 // fmov d7, x22 + WORD $0x0e2058e7 // cnt.8b v7, v7 + WORD $0x2e3038e7 // uaddlv.8b h7, v7 + WORD $0x1e2600f6 // fmov w22, s7 + WORD $0x8b0802d6 // add x22, x22, x8 + WORD $0xeb0b02df // cmp x22, x11 + WORD $0x540006c9 // b.ls LBB0_899 $216(%rip) + WORD $0x9100056b // add x11, x11, #1 + WORD $0xea1402b4 // ands x20, x21, x20 + WORD $0x54fffea1 // b.ne LBB0_881 $-44(%rip) + WORD $0x17ffff4a // b LBB0_875 $-728(%rip) +LBB0_883: + WORD $0xf10000bf // cmp x5, #0 + WORD $0x5400160d // b.le LBB0_939 $704(%rip) + WORD $0xad021be6 // stp q6, q6, [sp, #64] + WORD $0xad011be6 // stp q6, q6, [sp, #32] + WORD $0x92402e13 // and x19, x16, #0xfff + WORD $0xf13f067f // cmp x19, #4033 + WORD $0x54ffe9a3 // b.lo LBB0_877 $-716(%rip) + WORD $0xf10080b4 // subs x20, x5, #32 + WORD $0x540000a3 // b.lo LBB0_887 $20(%rip) + WORD $0xacc14207 // ldp q7, q16, [x16], #32 + WORD $0xad0143e7 // stp q7, q16, [sp, #32] + WORD $0xaa0a03f3 // mov x19, x10 + WORD $0x14000003 // b LBB0_888 $12(%rip) +LBB0_887: + WORD $0x910083f3 // add x19, sp, #32 + WORD $0xaa0503f4 // mov x20, x5 +LBB0_888: + WORD $0xf1004295 // subs x21, x20, #16 + WORD $0x54000243 // b.lo LBB0_894 $72(%rip) + WORD $0x3cc10607 // ldr q7, [x16], #16 + WORD $0x3c810667 // str q7, [x19], #16 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10022b5 // subs x21, x21, #8 + WORD $0x540001e2 // b.hs LBB0_895 $60(%rip) +LBB0_890: + WORD $0xf1001295 // subs x21, x20, #4 + WORD $0x54000243 // b.lo LBB0_896 $72(%rip) +LBB0_891: + WORD $0xb8404614 // ldr w20, [x16], #4 + WORD $0xb8004674 // str w20, [x19], #4 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf1000ab5 // subs x21, x21, #2 + WORD $0x540001e2 // b.hs LBB0_897 $60(%rip) +LBB0_892: + WORD $0xb4000254 // cbz x20, LBB0_898 $72(%rip) +LBB0_893: + WORD $0x39400210 // ldrb w16, [x16] + WORD $0x39000270 // strb w16, [x19] + WORD $0x910083f0 // add x16, sp, #32 + WORD $0x17ffff32 // b LBB0_877 $-824(%rip) +LBB0_894: + WORD $0xf1002295 // subs x21, x20, #8 + WORD $0x54fffe63 // b.lo LBB0_890 $-52(%rip) +LBB0_895: + WORD $0xf8408614 // ldr x20, [x16], #8 + WORD $0xf8008674 // str x20, [x19], #8 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xf10012b5 // subs x21, x21, #4 + WORD $0x54fffe02 // b.hs LBB0_891 $-64(%rip) +LBB0_896: + WORD $0xf1000a95 // subs x21, x20, #2 + WORD $0x54fffe63 // b.lo LBB0_892 $-52(%rip) +LBB0_897: + WORD $0x78402614 // ldrh w20, [x16], #2 + WORD $0x78002674 // strh w20, [x19], #2 + WORD $0xaa1503f4 // mov x20, x21 + WORD $0xb5fffe15 // cbnz x21, LBB0_893 $-64(%rip) +LBB0_898: + WORD $0x910083f0 // add x16, sp, #32 + WORD $0x17ffff23 // b LBB0_877 $-884(%rip) +LBB0_899: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0xdac0028a // rbit x10, x20 + WORD $0xdac0114a // clz x10, x10 + WORD $0xcb05014a // sub x10, x10, x5 + WORD $0x8b080148 // add x8, x10, x8 + WORD $0x9100050a // add x10, x8, #1 + WORD $0xf900002a // str x10, [x1] + WORD $0xf940040b // ldr x11, [x0, #8] + WORD $0xeb0b015f // cmp x10, x11 + WORD $0x9a882568 // csinc x8, x11, x8, hs + WORD $0xf9000028 // str x8, [x1] + WORD $0xda9f9128 // csinv x8, x9, xzr, ls + WORD $0x17fffd9f // b LBB0_832 $-2436(%rip) +LBB0_900: + WORD $0xf9000029 // str x9, [x1] + WORD $0x17fffd9c // b LBB0_831 $-2448(%rip) +LBB0_901: + WORD $0xdac0022a // rbit x10, x17 + WORD $0xdac0114a // clz x10, x10 + WORD $0x8b080128 // add x8, x9, x8 + WORD $0x8b080148 // add x8, x10, x8 + WORD $0x91000908 // add x8, x8, #2 + WORD $0x17fffd69 // b LBB0_822 $-2652(%rip) +LBB0_902: WORD $0x928000c8 // mov x8, #-7 - WORD $0x17fffff6 // b LBB0_778 $-40(%rip) -LBB0_780: - WORD $0xb100067f // cmn x19, #1 + WORD $0x17fffd95 // b LBB0_832 $-2476(%rip) +LBB0_903: + WORD $0xb100077f // cmn x27, #1 WORD $0x9a9c0108 // csel x8, x8, x28, eq -LBB0_781: - WORD $0xf9000028 // str x8, [x1] - WORD $0xaa1303e8 // mov x8, x19 - WORD $0x17fffff1 // b LBB0_778 $-60(%rip) -LBB0_782: - WORD $0x92800014 // mov x20, #-1 -LBB0_783: - WORD $0xaa3403f3 // mvn x19, x20 -LBB0_784: - WORD $0x8b1b0268 // add x8, x19, x27 - WORD $0x17ffffeb // b LBB0_776 $-84(%rip) -LBB0_785: +LBB0_904: WORD $0xf9000028 // str x8, [x1] - WORD $0x17ffffde // b LBB0_771 $-136(%rip) -LBB0_786: - WORD $0xaa0803f3 // mov x19, x8 - WORD $0x17fffffb // b LBB0_784 $-20(%rip) -LBB0_787: - WORD $0x92800014 // mov x20, #-1 -LBB0_788: - WORD $0xaa3403fc // mvn x28, x20 -LBB0_789: - WORD $0x8b1c0268 // add x8, x19, x28 - WORD $0x17ffffe3 // b LBB0_776 $-116(%rip) -LBB0_790: - WORD $0xf9000033 // str x19, [x1] - WORD $0x38736968 // ldrb w8, [x11, x19] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x17fffd90 // b LBB0_832 $-2496(%rip) +LBB0_905: + WORD $0x92800013 // mov x19, #-1 +LBB0_906: + WORD $0xaa3303fb // mvn x27, x19 +LBB0_907: + WORD $0x8b1a0368 // add x8, x27, x26 + WORD $0x17fffd8a // b LBB0_830 $-2520(%rip) +LBB0_908: + WORD $0xf900002d // str x13, [x1] + WORD $0xaa0903e8 // mov x8, x9 + WORD $0x17fffd89 // b LBB0_832 $-2524(%rip) +LBB0_909: + WORD $0xaa0803fb // mov x27, x8 + WORD $0x17fffffa // b LBB0_907 $-24(%rip) +LBB0_910: + WORD $0xaa1903fc // mov x28, x25 +LBB0_911: + WORD $0xf900003c // str x28, [x1] + WORD $0x92800008 // mov x8, #-1 + WORD $0x17fffd83 // b LBB0_832 $-2548(%rip) +LBB0_912: + WORD $0x92800013 // mov x19, #-1 +LBB0_913: + WORD $0xaa3303fc // mvn x28, x19 +LBB0_914: + WORD $0x8b1c0368 // add x8, x27, x28 + WORD $0x17fffd7d // b LBB0_830 $-2572(%rip) +LBB0_915: + WORD $0xf900003b // str x27, [x1] + WORD $0x387b6928 // ldrb w8, [x9, x27] WORD $0x7101851f // cmp w8, #97 - WORD $0x54fffc01 // b.ne LBB0_777 $-128(%rip) - WORD $0x91000b68 // add x8, x27, #2 + WORD $0x54ffaf41 // b.ne LBB0_831 $-2584(%rip) + WORD $0x91000b48 // add x8, x26, #2 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101b11f // cmp w8, #108 - WORD $0x54fffb61 // b.ne LBB0_777 $-148(%rip) - WORD $0x91000f68 // add x8, x27, #3 + WORD $0x54ffaea1 // b.ne LBB0_831 $-2604(%rip) + WORD $0x91000f48 // add x8, x26, #3 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101cd1f // cmp w8, #115 - WORD $0x54fffac1 // b.ne LBB0_777 $-168(%rip) - WORD $0x91001368 // add x8, x27, #4 + WORD $0x54ffae01 // b.ne LBB0_831 $-2624(%rip) + WORD $0x91001348 // add x8, x26, #4 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101951f // cmp w8, #101 - WORD $0x54fffa21 // b.ne LBB0_777 $-188(%rip) - WORD $0x91001768 // add x8, x27, #5 - WORD $0x17ffffce // b LBB0_776 $-200(%rip) -LBB0_795: - WORD $0xf900003b // str x27, [x1] + WORD $0x54ffad61 // b.ne LBB0_831 $-2644(%rip) + WORD $0x91001748 // add x8, x26, #5 + WORD $0x17fffd68 // b LBB0_830 $-2656(%rip) +LBB0_920: + WORD $0xf900003a // str x26, [x1] WORD $0x39400388 // ldrb w8, [x28] WORD $0x7101b91f // cmp w8, #110 - WORD $0x54fff961 // b.ne LBB0_777 $-212(%rip) - WORD $0x91000768 // add x8, x27, #1 + WORD $0x54ffaca1 // b.ne LBB0_831 $-2668(%rip) + WORD $0x91000748 // add x8, x26, #1 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101d51f // cmp w8, #117 - WORD $0x54fff8c1 // b.ne LBB0_777 $-232(%rip) - WORD $0x91000b68 // add x8, x27, #2 + WORD $0x54ffac01 // b.ne LBB0_831 $-2688(%rip) + WORD $0x91000b48 // add x8, x26, #2 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101b11f // cmp w8, #108 - WORD $0x54fff821 // b.ne LBB0_777 $-252(%rip) - WORD $0x91000f68 // add x8, x27, #3 + WORD $0x54ffab61 // b.ne LBB0_831 $-2708(%rip) + WORD $0x91000f48 // add x8, x26, #3 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101b11f // cmp w8, #108 - WORD $0x54fff781 // b.ne LBB0_777 $-272(%rip) - WORD $0x14000014 // b LBB0_803 $80(%rip) -LBB0_799: - WORD $0xf900003b // str x27, [x1] + WORD $0x54ffaac1 // b.ne LBB0_831 $-2728(%rip) + WORD $0x14000014 // b LBB0_928 $80(%rip) +LBB0_924: + WORD $0xf900003a // str x26, [x1] WORD $0x39400388 // ldrb w8, [x28] WORD $0x7101d11f // cmp w8, #116 - WORD $0x54fff6e1 // b.ne LBB0_777 $-292(%rip) - WORD $0x91000768 // add x8, x27, #1 + WORD $0x54ffaa21 // b.ne LBB0_831 $-2748(%rip) + WORD $0x91000748 // add x8, x26, #1 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101c91f // cmp w8, #114 - WORD $0x54fff641 // b.ne LBB0_777 $-312(%rip) - WORD $0x91000b68 // add x8, x27, #2 + WORD $0x54ffa981 // b.ne LBB0_831 $-2768(%rip) + WORD $0x91000b48 // add x8, x26, #2 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101d51f // cmp w8, #117 - WORD $0x54fff5a1 // b.ne LBB0_777 $-332(%rip) - WORD $0x91000f68 // add x8, x27, #3 + WORD $0x54ffa8e1 // b.ne LBB0_831 $-2788(%rip) + WORD $0x91000f48 // add x8, x26, #3 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686968 // ldrb w8, [x11, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101951f // cmp w8, #101 - WORD $0x54fff501 // b.ne LBB0_777 $-352(%rip) -LBB0_803: - WORD $0x91001368 // add x8, x27, #4 - WORD $0x17ffffa5 // b LBB0_776 $-364(%rip) -LBB0_804: - WORD $0xaa1b03e5 // mov x5, x27 -LBB0_805: - WORD $0xf9000025 // str x5, [x1] - WORD $0x17ffff97 // b LBB0_771 $-420(%rip) -LBB0_806: - WORD $0xaa0903fc // mov x28, x9 - WORD $0x8b090268 // add x8, x19, x9 - WORD $0x17ffff9f // b LBB0_776 $-388(%rip) -LBB0_807: - WORD $0xaa1303e8 // mov x8, x19 -LBB0_808: - WORD $0x92800013 // mov x19, #-1 - WORD $0x17ffffab // b LBB0_781 $-340(%rip) -LBB0_809: - WORD $0x91000a73 // add x19, x19, #2 -LBB0_810: + WORD $0x54ffa841 // b.ne LBB0_831 $-2808(%rip) +LBB0_928: + WORD $0x91001348 // add x8, x26, #4 + WORD $0x17fffd3f // b LBB0_830 $-2820(%rip) +LBB0_929: + WORD $0x8b10014c // add x12, x10, x16 + WORD $0xf100057f // cmp x11, #1 + WORD $0x5400050a // b.ge LBB0_944 $160(%rip) + WORD $0x17fffcc4 // b LBB0_799 $-3312(%rip) +LBB0_930: + WORD $0xaa0403fc // mov x28, x4 + WORD $0x8b040368 // add x8, x27, x4 + WORD $0x17fffd38 // b LBB0_830 $-2848(%rip) +LBB0_931: + WORD $0xaa1b03e8 // mov x8, x27 +LBB0_932: + WORD $0x9280001b // mov x27, #-1 + WORD $0x17ffffa5 // b LBB0_904 $-364(%rip) +LBB0_933: + WORD $0x91000a94 // add x20, x20, #2 +LBB0_934: WORD $0x92800028 // mov x8, #-2 - WORD $0x14000006 // b LBB0_814 $24(%rip) -LBB0_811: - WORD $0x91000673 // add x19, x19, #1 + WORD $0x14000006 // b LBB0_938 $24(%rip) +LBB0_935: + WORD $0x91000694 // add x20, x20, #1 WORD $0x92800048 // mov x8, #-3 - WORD $0x14000003 // b LBB0_814 $12(%rip) -LBB0_812: - WORD $0x91000673 // add x19, x19, #1 -LBB0_813: + WORD $0x14000003 // b LBB0_938 $12(%rip) +LBB0_936: + WORD $0x91000694 // add x20, x20, #1 +LBB0_937: WORD $0x92800008 // mov x8, #-1 -LBB0_814: - WORD $0xcb160269 // sub x9, x19, x22 +LBB0_938: + WORD $0xcb130289 // sub x9, x20, x19 WORD $0xf9000029 // str x9, [x1] - WORD $0x17ffff93 // b LBB0_778 $-436(%rip) -LBB0_815: - WORD $0x91002273 // add x19, x19, #8 - WORD $0x17fffff5 // b LBB0_810 $-44(%rip) -LBB0_816: + WORD $0x17fffd2c // b LBB0_832 $-2896(%rip) +LBB0_939: + WORD $0xf9400408 // ldr x8, [x0, #8] +LBB0_940: + WORD $0xf9000028 // str x8, [x1] + WORD $0x92800008 // mov x8, #-1 + WORD $0x17fffd28 // b LBB0_832 $-2912(%rip) +LBB0_941: + WORD $0xd100056c // sub x12, x11, #1 + WORD $0xeb08019f // cmp x12, x8 + WORD $0x54ff9580 // b.eq LBB0_799 $-3408(%rip) + WORD $0x8b09014c // add x12, x10, x9 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0x9100098c // add x12, x12, #2 + WORD $0xcb080168 // sub x8, x11, x8 + WORD $0xd100090b // sub x11, x8, #2 + WORD $0xf100057f // cmp x11, #1 + WORD $0x5400010a // b.ge LBB0_944 $32(%rip) + WORD $0x17fffca4 // b LBB0_799 $-3440(%rip) +LBB0_943: + WORD $0x9280002d // mov x13, #-2 + WORD $0x52800048 // mov w8, #2 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0x92800008 // mov x8, #-1 + WORD $0xab0d016b // adds x11, x11, x13 + WORD $0x54ffa2ed // b.le LBB0_832 $-2980(%rip) +LBB0_944: + WORD $0x39400188 // ldrb w8, [x12] + WORD $0x7101711f // cmp w8, #92 + WORD $0x54ffff00 // b.eq LBB0_943 $-32(%rip) + WORD $0x7100891f // cmp w8, #34 + WORD $0x54000100 // b.eq LBB0_947 $32(%rip) + WORD $0x9280000d // mov x13, #-1 + WORD $0x52800028 // mov w8, #1 + WORD $0x8b08018c // add x12, x12, x8 + WORD $0x92800008 // mov x8, #-1 + WORD $0xab0d016b // adds x11, x11, x13 + WORD $0x54fffecc // b.gt LBB0_944 $-40(%rip) + WORD $0x17fffd0b // b LBB0_832 $-3028(%rip) +LBB0_947: + WORD $0xcb0a0188 // sub x8, x12, x10 + WORD $0x91000508 // add x8, x8, #1 + WORD $0x17fffcda // b LBB0_822 $-3224(%rip) +LBB0_948: + WORD $0x91002294 // add x20, x20, #8 + WORD $0x17ffffd1 // b LBB0_934 $-188(%rip) +LBB0_949: WORD $0x92800068 // mov x8, #-4 - WORD $0xaa1b03f3 // mov x19, x27 - WORD $0x17fffff9 // b LBB0_814 $-28(%rip) -LBB0_817: - WORD $0x91002273 // add x19, x19, #8 + WORD $0xaa1c03f4 // mov x20, x28 + WORD $0x17ffffd5 // b LBB0_938 $-172(%rip) +LBB0_950: + WORD $0xaa1c03f4 // mov x20, x28 + WORD $0x17ffffd3 // b LBB0_938 $-180(%rip) +LBB0_951: + WORD $0x91002294 // add x20, x20, #8 WORD $0x92800068 // mov x8, #-4 - WORD $0x17fffff6 // b LBB0_814 $-40(%rip) -LBB0_818: - WORD $0xaa1b03f3 // mov x19, x27 - WORD $0x17fffff4 // b LBB0_814 $-48(%rip) + WORD $0x17ffffd0 // b LBB0_938 $-192(%rip) // .p2align 2, 0x00 _MASK_USE_NUMBER: WORD $0x00000002 // .long 2 diff --git a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s index 156e7d692..fff483d98 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s +++ b/vendor/github.com/bytedance/sonic/internal/native/neon/validate_one_arm64.s @@ -72,421 +72,379 @@ Lloh0: WORD $0x10fffd68 // adr x8, lCPI0_0 $-84(%rip) Lloh1: WORD $0x3dc00100 // ldr q0, [x8, lCPI0_0@PAGEOFF] $0(%rip) - WORD $0xaa0203eb // mov x11, x2 - WORD $0x3c808560 // str q0, [x11], #8 - WORD $0xf940000a // ldr x10, [x0] - WORD $0xaa2a03ec // mvn x12, x10 - WORD $0xf940003b // ldr x27, [x1] - WORD $0xcb0a03ed // neg x13, x10 - WORD $0xd100054e // sub x14, x10, #1 - WORD $0x9280000f // mov x15, #-1 - WORD $0x52800030 // mov w16, #1 - WORD $0xd284c011 // mov x17, #9728 - WORD $0xf2c00031 // movk x17, #1, lsl #32 - WORD $0x52800066 // mov w6, #3 - WORD $0x52800097 // mov w23, #4 + WORD $0xaa0203ea // mov x10, x2 + WORD $0x3c808540 // str q0, [x10], #8 + WORD $0xf9400009 // ldr x9, [x0] + WORD $0xaa2903eb // mvn x11, x9 + WORD $0xf940003c // ldr x28, [x1] + WORD $0xcb0903ec // neg x12, x9 + WORD $0xd100052d // sub x13, x9, #1 + WORD $0x9280000e // mov x14, #-1 + WORD $0x5280002f // mov w15, #1 + WORD $0xd284c010 // mov x16, #9728 + WORD $0xf2c00030 // movk x16, #1, lsl #32 + WORD $0x52800073 // mov w19, #3 + WORD $0x52800084 // mov w4, #4 WORD $0x4f01e440 // movi.16b v0, #34 + WORD $0x4f02e781 // movi.16b v1, #92 Lloh2: - WORD $0x10fffbe8 // adr x8, lCPI0_1 $-132(%rip) + WORD $0x10fffbc8 // adr x8, lCPI0_1 $-136(%rip) Lloh3: - WORD $0x3dc00101 // ldr q1, [x8, lCPI0_1@PAGEOFF] $0(%rip) + WORD $0x3dc00102 // ldr q2, [x8, lCPI0_1@PAGEOFF] $0(%rip) Lloh4: - WORD $0x10fffc28 // adr x8, lCPI0_2 $-124(%rip) + WORD $0x10fffc08 // adr x8, lCPI0_2 $-128(%rip) Lloh5: - WORD $0x3dc00102 // ldr q2, [x8, lCPI0_2@PAGEOFF] $0(%rip) - WORD $0x4f02e783 // movi.16b v3, #92 + WORD $0x3dc00103 // ldr q3, [x8, lCPI0_2@PAGEOFF] $0(%rip) + WORD $0x92f00006 // mov x6, #9223372036854775807 WORD $0x4f01e404 // movi.16b v4, #32 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 WORD $0x4f01e5c5 // movi.16b v5, #46 WORD $0x4f01e566 // movi.16b v6, #43 WORD $0x4f01e5a7 // movi.16b v7, #45 - WORD $0x12800013 // mov w19, #-1 WORD $0x4f06e610 // movi.16b v16, #208 WORD $0x4f00e551 // movi.16b v17, #10 WORD $0x4f06e7f2 // movi.16b v18, #223 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 WORD $0x4f02e4b3 // movi.16b v19, #69 WORD $0x52800025 // mov w5, #1 LBB0_1: WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb08037f // cmp x27, x8 + WORD $0xeb08039f // cmp x28, x8 WORD $0x54000162 // b.hs LBB0_6 $44(%rip) - WORD $0x387b6949 // ldrb w9, [x10, x27] - WORD $0x7100353f // cmp w9, #13 + WORD $0x387c6931 // ldrb w17, [x9, x28] + WORD $0x7100363f // cmp w17, #13 WORD $0x54000100 // b.eq LBB0_6 $32(%rip) - WORD $0x7100813f // cmp w9, #32 + WORD $0x7100823f // cmp w17, #32 WORD $0x540000c0 // b.eq LBB0_6 $24(%rip) - WORD $0x51002d29 // sub w9, w9, #11 - WORD $0x3100093f // cmn w9, #2 + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 WORD $0x54000062 // b.hs LBB0_6 $12(%rip) - WORD $0xaa1b03e9 // mov x9, x27 + WORD $0xaa1c03fb // mov x27, x28 WORD $0x14000031 // b LBB0_22 $196(%rip) LBB0_6: - WORD $0x91000769 // add x9, x27, #1 - WORD $0xeb08013f // cmp x9, x8 + WORD $0x9100079b // add x27, x28, #1 + WORD $0xeb08037f // cmp x27, x8 WORD $0x54000122 // b.hs LBB0_10 $36(%rip) - WORD $0x38696943 // ldrb w3, [x10, x9] - WORD $0x7100347f // cmp w3, #13 + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 WORD $0x540000c0 // b.eq LBB0_10 $24(%rip) - WORD $0x7100807f // cmp w3, #32 + WORD $0x7100823f // cmp w17, #32 WORD $0x54000080 // b.eq LBB0_10 $16(%rip) - WORD $0x51002c63 // sub w3, w3, #11 - WORD $0x3100087f // cmn w3, #2 + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 WORD $0x540004c3 // b.lo LBB0_22 $152(%rip) LBB0_10: - WORD $0x91000b69 // add x9, x27, #2 - WORD $0xeb08013f // cmp x9, x8 + WORD $0x91000b9b // add x27, x28, #2 + WORD $0xeb08037f // cmp x27, x8 WORD $0x54000122 // b.hs LBB0_14 $36(%rip) - WORD $0x38696943 // ldrb w3, [x10, x9] - WORD $0x7100347f // cmp w3, #13 + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 WORD $0x540000c0 // b.eq LBB0_14 $24(%rip) - WORD $0x7100807f // cmp w3, #32 + WORD $0x7100823f // cmp w17, #32 WORD $0x54000080 // b.eq LBB0_14 $16(%rip) - WORD $0x51002c63 // sub w3, w3, #11 - WORD $0x3100087f // cmn w3, #2 + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 WORD $0x54000363 // b.lo LBB0_22 $108(%rip) LBB0_14: - WORD $0x91000f69 // add x9, x27, #3 - WORD $0xeb08013f // cmp x9, x8 + WORD $0x91000f9b // add x27, x28, #3 + WORD $0xeb08037f // cmp x27, x8 WORD $0x54000122 // b.hs LBB0_18 $36(%rip) - WORD $0x38696943 // ldrb w3, [x10, x9] - WORD $0x7100347f // cmp w3, #13 + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100363f // cmp w17, #13 WORD $0x540000c0 // b.eq LBB0_18 $24(%rip) - WORD $0x7100807f // cmp w3, #32 + WORD $0x7100823f // cmp w17, #32 WORD $0x54000080 // b.eq LBB0_18 $16(%rip) - WORD $0x51002c63 // sub w3, w3, #11 - WORD $0x3100087f // cmn w3, #2 + WORD $0x51002e31 // sub w17, w17, #11 + WORD $0x31000a3f // cmn w17, #2 WORD $0x54000203 // b.lo LBB0_22 $64(%rip) LBB0_18: - WORD $0x91001369 // add x9, x27, #4 - WORD $0xeb08013f // cmp x9, x8 - WORD $0x5400acc2 // b.hs LBB0_298 $5528(%rip) + WORD $0x9100139b // add x27, x28, #4 + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e922 // b.hs LBB0_395 $7460(%rip) LBB0_19: - WORD $0x38696943 // ldrb w3, [x10, x9] - WORD $0x7100807f // cmp w3, #32 - WORD $0x9ac32203 // lsl x3, x16, x3 - WORD $0x8a110063 // and x3, x3, x17 - WORD $0xfa409864 // ccmp x3, #0, #4, ls + WORD $0x387b6931 // ldrb w17, [x9, x27] + WORD $0x7100823f // cmp w17, #32 + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x8a100231 // and x17, x17, x16 + WORD $0xfa409a24 // ccmp x17, #0, #4, ls WORD $0x540000a0 // b.eq LBB0_21 $20(%rip) - WORD $0x91000529 // add x9, x9, #1 - WORD $0xeb09011f // cmp x8, x9 + WORD $0x9100077b // add x27, x27, #1 + WORD $0xeb1b011f // cmp x8, x27 WORD $0x54ffff01 // b.ne LBB0_19 $-32(%rip) - WORD $0x14000552 // b LBB0_296 $5448(%rip) + WORD $0x14000735 // b LBB0_393 $7380(%rip) LBB0_21: - WORD $0xeb08013f // cmp x9, x8 - WORD $0x5400aa02 // b.hs LBB0_296 $5440(%rip) + WORD $0xeb08037f // cmp x27, x8 + WORD $0x5400e662 // b.hs LBB0_393 $7372(%rip) LBB0_22: - WORD $0x9100053b // add x27, x9, #1 - WORD $0xf900003b // str x27, [x1] - WORD $0x8b09015c // add x28, x10, x9 - WORD $0x39400395 // ldrb w21, [x28] - WORD $0x3400a975 // cbz w21, LBB0_296 $5420(%rip) + WORD $0x9100077c // add x28, x27, #1 + WORD $0xf900003c // str x28, [x1] + WORD $0x8b1b013e // add lr, x9, x27 + WORD $0x394003d5 // ldrb w21, [lr] + WORD $0x3400e5d5 // cbz w21, LBB0_393 $7352(%rip) WORD $0xd10004b4 // sub x20, x5, #1 - WORD $0xf8747968 // ldr x8, [x11, x20, lsl #3] - WORD $0xb10005ff // cmn x15, #1 - WORD $0x9a8f012f // csel x15, x9, x15, eq + WORD $0xf8747948 // ldr x8, [x10, x20, lsl #3] + WORD $0xb10005df // cmn x14, #1 + WORD $0x9a8e036e // csel x14, x27, x14, eq WORD $0x71000d1f // cmp w8, #3 - WORD $0x54000f0c // b.gt LBB0_38 $480(%rip) + WORD $0x54000c8c // b.gt LBB0_39 $400(%rip) WORD $0x7100051f // cmp w8, #1 - WORD $0x54001dc0 // b.eq LBB0_52 $952(%rip) + WORD $0x540018c0 // b.eq LBB0_54 $792(%rip) WORD $0x7100091f // cmp w8, #2 - WORD $0x54003100 // b.eq LBB0_92 $1568(%rip) + WORD $0x54002c20 // b.eq LBB0_94 $1412(%rip) WORD $0x71000d1f // cmp w8, #3 - WORD $0x54001ec1 // b.ne LBB0_56 $984(%rip) + WORD $0x540019c1 // b.ne LBB0_58 $824(%rip) WORD $0x71008abf // cmp w21, #34 - WORD $0x5400b4c1 // b.ne LBB0_328 $5784(%rip) - WORD $0xf8347977 // str x23, [x11, x20, lsl #3] + WORD $0x5400f101 // b.ne LBB0_425 $7712(%rip) + WORD $0x3200f3e6 // mov w6, #1431655765 + WORD $0xf8347944 // str x4, [x10, x20, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb1b011e // subs lr, x8, x27 - WORD $0x5400b4e0 // b.eq LBB0_330 $5788(%rip) - WORD $0xf10103df // cmp lr, #64 - WORD $0x540071e3 // b.lo LBB0_217 $3644(%rip) + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x372831a3 // tbnz w3, #5, LBB0_109 $1588(%rip) + WORD $0x5400e560 // b.eq LBB0_398 $7340(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009103 // b.lo LBB0_250 $4640(%rip) WORD $0xd2800005 // mov x5, #0 - WORD $0x9280001c // mov x28, #-1 -LBB0_31: - WORD $0x8b1b0143 // add x3, x10, x27 - WORD $0xad405877 // ldp q23, q22, [x3] - WORD $0xad415075 // ldp q21, q20, [x3, #32] - WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x92800008 // mov x8, #-1 +LBB0_32: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260303 // fmov w3, s24 - WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260307 // fmov w7, s24 - WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260314 // fmov w20, s24 - WORD $0x6e208e98 // cmeq.16b v24, v20, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260315 // fmov w21, s24 - WORD $0x6e238ef8 // cmeq.16b v24, v23, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260316 // fmov w22, s24 - WORD $0x6e238ed8 // cmeq.16b v24, v22, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260317 // fmov w23, s24 - WORD $0x6e238eb8 // cmeq.16b v24, v21, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260318 // fmov w24, s24 - WORD $0x6e238e98 // cmeq.16b v24, v20, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e26031a // fmov w26, s24 - WORD $0xd3607e94 // lsl x20, x20, #32 - WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 - WORD $0x53103ce7 // lsl w7, w7, #16 - WORD $0xaa070287 // orr x7, x20, x7 - WORD $0xaa0300f4 // orr x20, x7, x3 - WORD $0xd3607f03 // lsl x3, x24, #32 - WORD $0xaa1ac063 // orr x3, x3, x26, lsl #48 - WORD $0x53103ee7 // lsl w7, w23, #16 - WORD $0xaa070063 // orr x3, x3, x7 - WORD $0xaa160063 // orr x3, x3, x22 - WORD $0xb5000443 // cbnz x3, LBB0_36 $136(%rip) - WORD $0xb50004c5 // cbnz x5, LBB0_37 $152(%rip) -LBB0_33: - WORD $0x6e373497 // cmhi.16b v23, v4, v23 - WORD $0x4e211ef7 // and.16b v23, v23, v1 - WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 - WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e3 // fmov w3, s23 - WORD $0x6e363496 // cmhi.16b v22, v4, v22 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 - WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602c7 // fmov w7, s22 - WORD $0x6e353495 // cmhi.16b v21, v4, v21 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 - WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602b5 // fmov w21, s21 - WORD $0x6e343494 // cmhi.16b v20, v4, v20 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260296 // fmov w22, s20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 WORD $0xd3607eb5 // lsl x21, x21, #32 WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 WORD $0x53103ce7 // lsl w7, w7, #16 WORD $0xaa0702a7 // orr x7, x21, x7 - WORD $0xaa0300e3 // orr x3, x7, x3 - WORD $0xb50026f4 // cbnz x20, LBB0_96 $1244(%rip) - WORD $0xb5009f63 // cbnz x3, LBB0_306 $5100(%rip) - WORD $0xd10103de // sub lr, lr, #64 - WORD $0x9101037b // add x27, x27, #64 - WORD $0xf100ffdf // cmp lr, #63 - WORD $0x54fff568 // b.hi LBB0_31 $-340(%rip) - WORD $0x1400032c // b LBB0_214 $3248(%rip) + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_36 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_37 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_38 $88(%rip) +LBB0_35: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_32 $-236(%rip) + WORD $0x14000441 // b LBB0_247 $4356(%rip) LBB0_36: - WORD $0xb100079f // cmn x28, #1 - WORD $0xdac00067 // rbit x7, x3 - WORD $0xdac010e7 // clz x7, x7 - WORD $0x8b1b00e7 // add x7, x7, x27 - WORD $0x9a87139c // csel x28, x28, x7, ne + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne LBB0_37: - WORD $0x8a250067 // bic x7, x3, x5 - WORD $0xaa0704b5 // orr x21, x5, x7, lsl #1 - WORD $0x8a350063 // bic x3, x3, x21 - WORD $0x9201f063 // and x3, x3, #0xaaaaaaaaaaaaaaaa - WORD $0xab070063 // adds x3, x3, x7 + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 WORD $0x1a9f37e5 // cset w5, hs - WORD $0xd37ff863 // lsl x3, x3, #1 - WORD $0xd200f063 // eor x3, x3, #0x5555555555555555 - WORD $0x8a150063 // and x3, x3, x21 - WORD $0x8a230294 // bic x20, x20, x3 - WORD $0x17ffffd1 // b LBB0_33 $-188(%rip) + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_35 $-80(%rip) LBB0_38: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001aa // b LBB0_121 $1704(%rip) +LBB0_39: WORD $0x7100111f // cmp w8, #4 - WORD $0x54000f80 // b.eq LBB0_54 $496(%rip) + WORD $0x54000d00 // b.eq LBB0_56 $416(%rip) WORD $0x7100151f // cmp w8, #5 - WORD $0x540022c0 // b.eq LBB0_94 $1112(%rip) + WORD $0x54002060 // b.eq LBB0_96 $1036(%rip) WORD $0x7100191f // cmp w8, #6 - WORD $0x54000fe1 // b.ne LBB0_56 $508(%rip) + WORD $0x54000d61 // b.ne LBB0_58 $428(%rip) WORD $0x71008abf // cmp w21, #34 - WORD $0x540021e1 // b.ne LBB0_93 $1084(%rip) + WORD $0x54001f81 // b.ne LBB0_95 $1008(%rip) + WORD $0x3200f3e4 // mov w4, #1431655765 WORD $0x52800048 // mov w8, #2 - WORD $0xf8347968 // str x8, [x11, x20, lsl #3] + WORD $0xf8347948 // str x8, [x10, x20, lsl #3] WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb1b011e // subs lr, x8, x27 - WORD $0x5400a5e0 // b.eq LBB0_330 $5308(%rip) - WORD $0xf10103df // cmp lr, #64 - WORD $0x54006fe3 // b.lo LBB0_238 $3580(%rip) + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37283923 // tbnz w3, #5, LBB0_138 $1828(%rip) + WORD $0x5400d8e0 // b.eq LBB0_398 $6940(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54009423 // b.lo LBB0_277 $4740(%rip) WORD $0xd2800005 // mov x5, #0 - WORD $0x9280001c // mov x28, #-1 -LBB0_45: - WORD $0x8b1b0143 // add x3, x10, x27 - WORD $0xad405877 // ldp q23, q22, [x3] - WORD $0xad415075 // ldp q21, q20, [x3, #32] - WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x92800008 // mov x8, #-1 +LBB0_47: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260303 // fmov w3, s24 - WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260307 // fmov w7, s24 - WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260314 // fmov w20, s24 - WORD $0x6e208e98 // cmeq.16b v24, v20, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260315 // fmov w21, s24 - WORD $0x6e238ef8 // cmeq.16b v24, v23, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260316 // fmov w22, s24 - WORD $0x6e238ed8 // cmeq.16b v24, v22, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260317 // fmov w23, s24 - WORD $0x6e238eb8 // cmeq.16b v24, v21, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260318 // fmov w24, s24 - WORD $0x6e238e98 // cmeq.16b v24, v20, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e26031a // fmov w26, s24 - WORD $0xd3607e94 // lsl x20, x20, #32 - WORD $0xaa15c294 // orr x20, x20, x21, lsl #48 - WORD $0x53103ce7 // lsl w7, w7, #16 - WORD $0xaa070287 // orr x7, x20, x7 - WORD $0xaa0300f4 // orr x20, x7, x3 - WORD $0xd3607f03 // lsl x3, x24, #32 - WORD $0xaa1ac063 // orr x3, x3, x26, lsl #48 - WORD $0x53103ee7 // lsl w7, w23, #16 - WORD $0xaa070063 // orr x3, x3, x7 - WORD $0xaa160063 // orr x3, x3, x22 - WORD $0xb5000443 // cbnz x3, LBB0_50 $136(%rip) - WORD $0xb50004c5 // cbnz x5, LBB0_51 $152(%rip) -LBB0_47: - WORD $0x6e373497 // cmhi.16b v23, v4, v23 - WORD $0x4e211ef7 // and.16b v23, v23, v1 - WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 - WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e3 // fmov w3, s23 - WORD $0x6e363496 // cmhi.16b v22, v4, v22 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 - WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602c7 // fmov w7, s22 - WORD $0x6e353495 // cmhi.16b v21, v4, v21 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 - WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602b5 // fmov w21, s21 - WORD $0x6e343494 // cmhi.16b v20, v4, v20 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260296 // fmov w22, s20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260298 // fmov w24, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e26029a // fmov w26, s20 WORD $0xd3607eb5 // lsl x21, x21, #32 WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 WORD $0x53103ce7 // lsl w7, w7, #16 WORD $0xaa0702a7 // orr x7, x21, x7 - WORD $0xaa0300e3 // orr x3, x7, x3 - WORD $0xb5001f54 // cbnz x20, LBB0_110 $1000(%rip) - WORD $0xb5009063 // cbnz x3, LBB0_306 $4620(%rip) - WORD $0xd10103de // sub lr, lr, #64 - WORD $0x9101037b // add x27, x27, #64 - WORD $0xf100ffdf // cmp lr, #63 - WORD $0x54fff568 // b.hi LBB0_45 $-340(%rip) - WORD $0x14000320 // b LBB0_236 $3200(%rip) + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000111 // cbnz x17, LBB0_51 $32(%rip) + WORD $0xb5000185 // cbnz x5, LBB0_52 $48(%rip) + WORD $0xb50002c7 // cbnz x7, LBB0_53 $88(%rip) LBB0_50: - WORD $0xb100079f // cmn x28, #1 - WORD $0xdac00067 // rbit x7, x3 - WORD $0xdac010e7 // clz x7, x7 - WORD $0x8b1b00e7 // add x7, x7, x27 - WORD $0x9a87139c // csel x28, x28, x7, ne + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff8a8 // b.hi LBB0_47 $-236(%rip) + WORD $0x1400045e // b LBB0_275 $4472(%rip) LBB0_51: - WORD $0x8a250067 // bic x7, x3, x5 - WORD $0xaa0704b5 // orr x21, x5, x7, lsl #1 - WORD $0x8a350063 // bic x3, x3, x21 - WORD $0x9201f063 // and x3, x3, #0xaaaaaaaaaaaaaaaa - WORD $0xab070063 // adds x3, x3, x7 - WORD $0x1a9f37e5 // cset w5, hs - WORD $0xd37ff863 // lsl x3, x3, #1 - WORD $0xd200f063 // eor x3, x3, #0x5555555555555555 - WORD $0x8a150063 // and x3, x3, x21 - WORD $0x8a230294 // bic x20, x20, x3 - WORD $0x17ffffd1 // b LBB0_47 $-188(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne LBB0_52: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0xb4fffd87 // cbz x7, LBB0_50 $-80(%rip) +LBB0_53: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0x8b1c0231 // add x17, x17, x28 + WORD $0x140001e6 // b LBB0_150 $1944(%rip) +LBB0_54: WORD $0x7100b2bf // cmp w21, #44 - WORD $0x54001a00 // b.eq LBB0_106 $832(%rip) + WORD $0x540017e0 // b.eq LBB0_105 $764(%rip) WORD $0x710176bf // cmp w21, #93 - WORD $0x54001400 // b.eq LBB0_95 $640(%rip) - WORD $0x140004ba // b LBB0_328 $4840(%rip) -LBB0_54: + WORD $0x54001420 // b.eq LBB0_97 $644(%rip) + WORD $0x140006c4 // b LBB0_425 $6928(%rip) +LBB0_56: WORD $0x7100eabf // cmp w21, #58 - WORD $0x54009701 // b.ne LBB0_328 $4832(%rip) - WORD $0xf834797f // str xzr, [x11, x20, lsl #3] + WORD $0x5400d841 // b.ne LBB0_425 $6920(%rip) + WORD $0xf834795f // str xzr, [x10, x20, lsl #3] WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffd7e5 // cbnz x5, LBB0_1 $-1284(%rip) - WORD $0x1400044b // b LBB0_297 $4396(%rip) -LBB0_56: + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffdce5 // cbnz x5, LBB0_1 $-1124(%rip) + WORD $0x14000656 // b LBB0_394 $6488(%rip) +LBB0_58: WORD $0xf9000054 // str x20, [x2] WORD $0x92800028 // mov x8, #-2 WORD $0x71016abf // cmp w21, #90 - WORD $0x540015ec // b.gt LBB0_100 $700(%rip) -LBB0_57: - WORD $0x5100c2a3 // sub w3, w21, #48 - WORD $0x7100287f // cmp w3, #10 - WORD $0x54002422 // b.hs LBB0_132 $1156(%rip) + WORD $0x540013cc // b.gt LBB0_99 $632(%rip) +LBB0_59: + WORD $0x5100c2b1 // sub w17, w21, #48 + WORD $0x71002a3f // cmp w17, #10 + WORD $0x54003d02 // b.hs LBB0_154 $1952(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb090114 // subs x20, x8, x9 - WORD $0x54008a20 // b.eq LBB0_301 $4420(%rip) - WORD $0x39400388 // ldrb w8, [x28] + WORD $0xeb1b0115 // subs x21, x8, x27 + WORD $0x5400cbe0 // b.eq LBB0_399 $6524(%rip) + WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7100c11f // cmp w8, #48 - WORD $0x54000141 // b.ne LBB0_63 $40(%rip) - WORD $0xf100069f // cmp x20, #1 - WORD $0x54002960 // b.eq LBB0_148 $1324(%rip) - WORD $0x387b6948 // ldrb w8, [x10, x27] + WORD $0x54000141 // b.ne LBB0_65 $40(%rip) + WORD $0xf10006bf // cmp x21, #1 + WORD $0x54004280 // b.eq LBB0_170 $2128(%rip) + WORD $0x387c6928 // ldrb w8, [x9, x28] WORD $0x5100b908 // sub w8, w8, #46 WORD $0x7100dd1f // cmp w8, #55 - WORD $0x540028e8 // b.hi LBB0_148 $1308(%rip) - WORD $0x9ac82208 // lsl x8, x16, x8 - WORD $0xea19011f // tst x8, x25 - WORD $0x54002880 // b.eq LBB0_148 $1296(%rip) -LBB0_63: - WORD $0xf100429f // cmp x20, #16 - WORD $0x54007763 // b.lo LBB0_280 $3820(%rip) - WORD $0xd2800015 // mov x21, #0 - WORD $0xd280001e // mov lr, #0 - WORD $0x9280001b // mov x27, #-1 + WORD $0x54004208 // b.hi LBB0_170 $2112(%rip) + WORD $0x9ac821e8 // lsl x8, x15, x8 + WORD $0xea07011f // tst x8, x7 + WORD $0x540041a0 // b.eq LBB0_170 $2100(%rip) +LBB0_65: + WORD $0xf10042bf // cmp x21, #16 + WORD $0x5400a5c3 // b.lo LBB0_333 $5304(%rip) + WORD $0xd2800016 // mov x22, #0 + WORD $0xd280001c // mov x28, #0 + WORD $0x92800014 // mov x20, #-1 WORD $0x92800005 // mov x5, #-1 WORD $0x92800008 // mov x8, #-1 -LBB0_65: - WORD $0x3cfe6b94 // ldr q20, [x28, lr] +LBB0_67: + WORD $0x3cfc6bd4 // ldr q20, [lr, x28] WORD $0x6e258e95 // cmeq.16b v21, v20, v5 WORD $0x6e268e96 // cmeq.16b v22, v20, v6 WORD $0x6e278e97 // cmeq.16b v23, v20, v7 @@ -498,517 +456,820 @@ LBB0_65: WORD $0x4eb51f17 // orr.16b v23, v24, v21 WORD $0x4eb61e98 // orr.16b v24, v20, v22 WORD $0x4eb81ef7 // orr.16b v23, v23, v24 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602a3 // fmov w3, s21 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 WORD $0x1e260297 // fmov w23, s20 - WORD $0x4e211ed4 // and.16b v20, v22, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e26029a // fmov w26, s20 - WORD $0x4e211ef4 // and.16b v20, v23, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x1e260299 // fmov w25, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 WORD $0x1e260287 // fmov w7, s20 WORD $0x2a2703e7 // mvn w7, w7 WORD $0x32103ce7 // orr w7, w7, #0xffff0000 WORD $0x5ac000e7 // rbit w7, w7 - WORD $0x5ac010f6 // clz w22, w7 - WORD $0x1ad62267 // lsl w7, w19, w22 - WORD $0x0a270078 // bic w24, w3, w7 - WORD $0x0a2702f9 // bic w25, w23, w7 - WORD $0x0a270344 // bic w4, w26, w7 - WORD $0x710042df // cmp w22, #16 - WORD $0x1a980067 // csel w7, w3, w24, eq - WORD $0x1a9902f8 // csel w24, w23, w25, eq - WORD $0x1a840357 // csel w23, w26, w4, eq - WORD $0x510004e3 // sub w3, w7, #1 - WORD $0x6a070063 // ands w3, w3, w7 - WORD $0x54004a41 // b.ne LBB0_215 $2376(%rip) - WORD $0x51000703 // sub w3, w24, #1 - WORD $0x6a180063 // ands w3, w3, w24 - WORD $0x540049e1 // b.ne LBB0_215 $2364(%rip) - WORD $0x510006e3 // sub w3, w23, #1 - WORD $0x6a170063 // ands w3, w3, w23 - WORD $0x54004981 // b.ne LBB0_215 $2352(%rip) - WORD $0x340000c7 // cbz w7, LBB0_71 $24(%rip) - WORD $0x5ac000e3 // rbit w3, w7 - WORD $0x5ac01063 // clz w3, w3 + WORD $0x5ac010e7 // clz w7, w7 + WORD $0x12800004 // mov w4, #-1 + WORD $0x1ac72098 // lsl w24, w4, w7 + WORD $0x0a38023a // bic w26, w17, w24 + WORD $0x0a3802e4 // bic w4, w23, w24 + WORD $0x0a380326 // bic w6, w25, w24 + WORD $0x710040ff // cmp w7, #16 + WORD $0x1a9a0231 // csel w17, w17, w26, eq + WORD $0x1a8402f8 // csel w24, w23, w4, eq + WORD $0x1a860337 // csel w23, w25, w6, eq + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54006d81 // b.ne LBB0_245 $3504(%rip) + WORD $0x51000704 // sub w4, w24, #1 + WORD $0x6a180099 // ands w25, w4, w24 + WORD $0x54006d21 // b.ne LBB0_245 $3492(%rip) + WORD $0x510006e4 // sub w4, w23, #1 + WORD $0x6a170099 // ands w25, w4, w23 + WORD $0x54006cc1 // b.ne LBB0_245 $3480(%rip) + WORD $0x340000d1 // cbz w17, LBB0_73 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 WORD $0xb100051f // cmn x8, #1 - WORD $0x54004981 // b.ne LBB0_216 $2352(%rip) - WORD $0x8b0303c8 // add x8, lr, x3 -LBB0_71: - WORD $0x340000d8 // cbz w24, LBB0_74 $24(%rip) - WORD $0x5ac00303 // rbit w3, w24 - WORD $0x5ac01063 // clz w3, w3 + WORD $0x54006cc1 // b.ne LBB0_246 $3480(%rip) + WORD $0x8b110388 // add x8, x28, x17 +LBB0_73: + WORD $0x340000d8 // cbz w24, LBB0_76 $24(%rip) + WORD $0x5ac00311 // rbit w17, w24 + WORD $0x5ac01231 // clz w17, w17 WORD $0xb10004bf // cmn x5, #1 - WORD $0x540048c1 // b.ne LBB0_216 $2328(%rip) - WORD $0x8b0303c5 // add x5, lr, x3 -LBB0_74: - WORD $0x340000d7 // cbz w23, LBB0_77 $24(%rip) - WORD $0x5ac002e3 // rbit w3, w23 - WORD $0x5ac01063 // clz w3, w3 - WORD $0xb100077f // cmn x27, #1 - WORD $0x54004801 // b.ne LBB0_216 $2304(%rip) - WORD $0x8b0303db // add x27, lr, x3 -LBB0_77: - WORD $0x710042df // cmp w22, #16 - WORD $0x540012c1 // b.ne LBB0_116 $600(%rip) - WORD $0x910043de // add lr, lr, #16 - WORD $0xd10042b5 // sub x21, x21, #16 - WORD $0x8b150296 // add x22, x20, x21 - WORD $0xf1003edf // cmp x22, #15 - WORD $0x54fff6e8 // b.hi LBB0_65 $-292(%rip) - WORD $0x8b1e0395 // add x21, x28, lr - WORD $0xeb1e029f // cmp x20, lr - WORD $0x54001200 // b.eq LBB0_117 $576(%rip) -LBB0_80: + WORD $0x54006c01 // b.ne LBB0_246 $3456(%rip) + WORD $0x8b110385 // add x5, x28, x17 +LBB0_76: + WORD $0x340000d7 // cbz w23, LBB0_79 $24(%rip) + WORD $0x5ac002f1 // rbit w17, w23 + WORD $0x5ac01231 // clz w17, w17 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54006b41 // b.ne LBB0_246 $3432(%rip) + WORD $0x8b110394 // add x20, x28, x17 +LBB0_79: + WORD $0x710040ff // cmp w7, #16 + WORD $0x54001bc1 // b.ne LBB0_123 $888(%rip) + WORD $0x9100439c // add x28, x28, #16 + WORD $0xd10042d6 // sub x22, x22, #16 WORD $0x8b1602b7 // add x23, x21, x22 - WORD $0x8b0901c3 // add x3, x14, x9 - WORD $0xcb150074 // sub x20, x3, x21 - WORD $0xcb1c02b8 // sub x24, x21, x28 - WORD $0xaa1503fe // mov lr, x21 - WORD $0x14000009 // b LBB0_83 $36(%rip) -LBB0_81: - WORD $0xb10004bf // cmn x5, #1 - WORD $0xaa1803e5 // mov x5, x24 - WORD $0x54001561 // b.ne LBB0_129 $684(%rip) + WORD $0xf1003eff // cmp x23, #15 + WORD $0x54fff6c8 // b.hi LBB0_67 $-296(%rip) + WORD $0x8b1c03d6 // add x22, lr, x28 + WORD $0xeb1c02bf // cmp x21, x28 + WORD $0x54001b00 // b.eq LBB0_124 $864(%rip) LBB0_82: - WORD $0xd1000694 // sub x20, x20, #1 - WORD $0x91000718 // add x24, x24, #1 - WORD $0xaa1e03f5 // mov x21, lr - WORD $0xd10006d6 // sub x22, x22, #1 - WORD $0xb4002d96 // cbz x22, LBB0_164 $1456(%rip) + WORD $0x8b1702d8 // add x24, x22, x23 + WORD $0x8b1b01b1 // add x17, x13, x27 + WORD $0xcb160235 // sub x21, x17, x22 + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xaa1603fc // mov x28, x22 + WORD $0x14000009 // b LBB0_85 $36(%rip) LBB0_83: - WORD $0x384017c7 // ldrb w7, [lr], #1 - WORD $0x5100c0e3 // sub w3, w7, #48 - WORD $0x7100287f // cmp w3, #10 - WORD $0x54ffff03 // b.lo LBB0_82 $-32(%rip) - WORD $0x7100b4ff // cmp w7, #45 - WORD $0x5400016d // b.le LBB0_89 $44(%rip) - WORD $0x710194ff // cmp w7, #101 - WORD $0x54fffe20 // b.eq LBB0_81 $-60(%rip) - WORD $0x710114ff // cmp w7, #69 - WORD $0x54fffde0 // b.eq LBB0_81 $-68(%rip) - WORD $0x7100b8ff // cmp w7, #46 - WORD $0x54000ec1 // b.ne LBB0_117 $472(%rip) + WORD $0xb10004bf // cmn x5, #1 + WORD $0xaa0703e5 // mov x5, x7 + WORD $0x54001d81 // b.ne LBB0_136 $944(%rip) +LBB0_84: + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0x910004e7 // add x7, x7, #1 + WORD $0xaa1c03f6 // mov x22, x28 + WORD $0xd10006f7 // sub x23, x23, #1 + WORD $0xb40042d7 // cbz x23, LBB0_184 $2136(%rip) +LBB0_85: + WORD $0x38401791 // ldrb w17, [x28], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff03 // b.lo LBB0_84 $-32(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_91 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x54fffe20 // b.eq LBB0_83 $-60(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54fffde0 // b.eq LBB0_83 $-68(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x540017c1 // b.ne LBB0_124 $760(%rip) WORD $0xb100051f // cmn x8, #1 - WORD $0xaa1803e8 // mov x8, x24 - WORD $0x54fffda0 // b.eq LBB0_82 $-76(%rip) - WORD $0x14000096 // b LBB0_129 $600(%rip) -LBB0_89: - WORD $0x7100acff // cmp w7, #43 - WORD $0x54000060 // b.eq LBB0_91 $12(%rip) - WORD $0x7100b4ff // cmp w7, #45 - WORD $0x54000dc1 // b.ne LBB0_117 $440(%rip) + WORD $0xaa0703e8 // mov x8, x7 + WORD $0x54fffda0 // b.eq LBB0_84 $-76(%rip) + WORD $0x140000d7 // b LBB0_136 $860(%rip) LBB0_91: - WORD $0xb100077f // cmn x27, #1 - WORD $0xaa1803fb // mov x27, x24 - WORD $0x54fffca0 // b.eq LBB0_82 $-108(%rip) - WORD $0x1400008e // b LBB0_129 $568(%rip) -LBB0_92: - WORD $0x7100b2bf // cmp w21, #44 - WORD $0x540007a0 // b.eq LBB0_108 $244(%rip) + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54000060 // b.eq LBB0_93 $12(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x540016c1 // b.ne LBB0_124 $728(%rip) LBB0_93: - WORD $0x7101f6bf // cmp w21, #125 - WORD $0x54000080 // b.eq LBB0_95 $16(%rip) - WORD $0x1400041e // b LBB0_328 $4216(%rip) + WORD $0xb100069f // cmn x20, #1 + WORD $0xaa0703f4 // mov x20, x7 + WORD $0x54fffca0 // b.eq LBB0_84 $-108(%rip) + WORD $0x140000cf // b LBB0_136 $828(%rip) LBB0_94: - WORD $0x710176bf // cmp w21, #93 - WORD $0x54000301 // b.ne LBB0_99 $96(%rip) + WORD $0x7100b2bf // cmp w21, #44 + WORD $0x54000560 // b.eq LBB0_107 $172(%rip) LBB0_95: + WORD $0x7101f6bf // cmp w21, #125 + WORD $0x54000080 // b.eq LBB0_97 $16(%rip) + WORD $0x14000627 // b LBB0_425 $6300(%rip) +LBB0_96: + WORD $0x710176bf // cmp w21, #93 + WORD $0x540000c1 // b.ne LBB0_98 $24(%rip) +LBB0_97: WORD $0xf9000054 // str x20, [x2] WORD $0xaa1403e5 // mov x5, x20 - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffc474 // cbnz x20, LBB0_1 $-1908(%rip) - WORD $0x140003af // b LBB0_297 $3772(%rip) -LBB0_96: - WORD $0xdac00285 // rbit x5, x20 - WORD $0xdac010a5 // clz x5, x5 - WORD $0xdac00063 // rbit x3, x3 - WORD $0xdac01063 // clz x3, x3 - WORD $0xeb05007f // cmp x3, x5 - WORD $0x54008323 // b.lo LBB0_331 $4196(%rip) - WORD $0x8b1b00a3 // add x3, x5, x27 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc954 // cbnz x20, LBB0_1 $-1752(%rip) + WORD $0x140005b9 // b LBB0_394 $5860(%rip) LBB0_98: - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0x9100047b // add x27, x3, #1 - WORD $0xb100087f // cmn x3, #2 - WORD $0x540015ac // b.gt LBB0_148 $692(%rip) - WORD $0x140003aa // b LBB0_300 $3752(%rip) -LBB0_99: - WORD $0xf8347970 // str x16, [x11, x20, lsl #3] + WORD $0xf834794f // str x15, [x10, x20, lsl #3] WORD $0x92800028 // mov x8, #-2 WORD $0x71016abf // cmp w21, #90 - WORD $0x54ffea6d // b.le LBB0_57 $-692(%rip) -LBB0_100: + WORD $0x54ffec8d // b.le LBB0_59 $-624(%rip) +LBB0_99: WORD $0x7101b6bf // cmp w21, #109 - WORD $0x540010ad // b.le LBB0_138 $532(%rip) + WORD $0x54002bad // b.le LBB0_160 $1396(%rip) WORD $0x7101babf // cmp w21, #110 - WORD $0x54001340 // b.eq LBB0_145 $616(%rip) + WORD $0x54002e80 // b.eq LBB0_167 $1488(%rip) WORD $0x7101d2bf // cmp w21, #116 - WORD $0x540011c0 // b.eq LBB0_143 $568(%rip) + WORD $0x54002d00 // b.eq LBB0_165 $1440(%rip) WORD $0x7101eebf // cmp w21, #123 - WORD $0x54007221 // b.ne LBB0_297 $3652(%rip) + WORD $0x5400b5a1 // b.ne LBB0_394 $5812(%rip) WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x5400732c // b.gt LBB0_299 $3684(%rip) - WORD $0x91000509 // add x9, x8, #1 - WORD $0xf9000049 // str x9, [x2] - WORD $0x528000c9 // mov w9, #6 - WORD $0xf8287969 // str x9, [x11, x8, lsl #3] + WORD $0x5400b6cc // b.gt LBB0_396 $5848(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000d1 // mov w17, #6 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffbf45 // cbnz x5, LBB0_1 $-2072(%rip) - WORD $0x14000386 // b LBB0_297 $3608(%rip) -LBB0_106: + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc665 // cbnz x5, LBB0_1 $-1844(%rip) + WORD $0x140005a2 // b LBB0_394 $5768(%rip) +LBB0_105: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x540071ec // b.gt LBB0_299 $3644(%rip) + WORD $0x5400b58c // b.gt LBB0_396 $5808(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] - WORD $0xf825797f // str xzr, [x11, x5, lsl #3] + WORD $0xf825795f // str xzr, [x10, x5, lsl #3] WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffbe25 // cbnz x5, LBB0_1 $-2108(%rip) - WORD $0x1400037d // b LBB0_297 $3572(%rip) -LBB0_108: + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc545 // cbnz x5, LBB0_1 $-1880(%rip) + WORD $0x14000599 // b LBB0_394 $5732(%rip) +LBB0_107: WORD $0xf13ffcbf // cmp x5, #4095 - WORD $0x540070cc // b.gt LBB0_299 $3608(%rip) + WORD $0x5400b46c // b.gt LBB0_396 $5772(%rip) WORD $0x910004a8 // add x8, x5, #1 WORD $0xf9000048 // str x8, [x2] - WORD $0xf8257966 // str x6, [x11, x5, lsl #3] + WORD $0xf8257953 // str x19, [x10, x5, lsl #3] WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffbd05 // cbnz x5, LBB0_1 $-2144(%rip) - WORD $0x14000374 // b LBB0_297 $3536(%rip) -LBB0_110: - WORD $0xdac00285 // rbit x5, x20 - WORD $0xdac010a5 // clz x5, x5 - WORD $0xdac00063 // rbit x3, x3 - WORD $0xdac01063 // clz x3, x3 - WORD $0xeb05007f // cmp x3, x5 - WORD $0x54007bc3 // b.lo LBB0_331 $3960(%rip) - WORD $0x8b1b00a3 // add x3, x5, x27 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ffc425 // cbnz x5, LBB0_1 $-1916(%rip) + WORD $0x14000590 // b LBB0_394 $5696(%rip) +LBB0_109: + WORD $0x5400b3e0 // b.eq LBB0_398 $5756(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54006403 // b.lo LBB0_256 $3200(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 LBB0_112: - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0x9100047b // add x27, x3, #1 - WORD $0xb100087f // cmn x3, #2 - WORD $0x54006e0d // b.le LBB0_300 $3520(%rip) -LBB0_113: - WORD $0xf900003b // str x27, [x1] - WORD $0xaa0903e8 // mov x8, x9 - WORD $0xb27ff7e3 // mov x3, #9223372036854775806 - WORD $0xeb03013f // cmp x9, x3 - WORD $0x54006bc8 // b.hi LBB0_297 $3448(%rip) - WORD $0xf9400048 // ldr x8, [x2] - WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54006ccc // b.gt LBB0_299 $3480(%rip) - WORD $0x91000509 // add x9, x8, #1 - WORD $0xf9000049 // str x9, [x2] - WORD $0xf8287977 // str x23, [x11, x8, lsl #3] - WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffb905 // cbnz x5, LBB0_1 $-2272(%rip) - WORD $0x14000354 // b LBB0_297 $3408(%rip) -LBB0_116: - WORD $0x8b364383 // add x3, x28, w22, uxtw - WORD $0x8b1e0075 // add x21, x3, lr + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_117 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_118 $152(%rip) +LBB0_114: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_119 $92(%rip) + WORD $0xb500aa71 // cbnz x17, LBB0_404 $5452(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_112 $-340(%rip) + WORD $0x1400029d // b LBB0_248 $2676(%rip) LBB0_117: - WORD $0x92800014 // mov x20, #-1 - WORD $0xb4006c28 // cbz x8, LBB0_302 $3460(%rip) + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne LBB0_118: - WORD $0xb4006c1b // cbz x27, LBB0_302 $3456(%rip) - WORD $0xb4006be5 // cbz x5, LBB0_302 $3452(%rip) - WORD $0xcb1c02b4 // sub x20, x21, x28 - WORD $0xd1000683 // sub x3, x20, #1 - WORD $0xeb03011f // cmp x8, x3 - WORD $0x54000380 // b.eq LBB0_128 $112(%rip) - WORD $0xeb03037f // cmp x27, x3 - WORD $0x54000340 // b.eq LBB0_128 $104(%rip) - WORD $0xeb0300bf // cmp x5, x3 - WORD $0x54000300 // b.eq LBB0_128 $96(%rip) - WORD $0xf1000763 // subs x3, x27, #1 - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0x5400006b // b.lt LBB0_125 $12(%rip) - WORD $0xeb0300bf // cmp x5, x3 - WORD $0x540069a1 // b.ne LBB0_303 $3380(%rip) + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_114 $-188(%rip) +LBB0_119: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x5400b143 // b.lo LBB0_427 $5672(%rip) +LBB0_120: + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_121: + WORD $0x9100063c // add x28, x17, #1 +LBB0_122: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6f81c9c // tbz x28, #63, LBB0_170 $912(%rip) + WORD $0x14000524 // b LBB0_397 $5264(%rip) +LBB0_123: + WORD $0x8b2743d1 // add x17, lr, w7, uxtw + WORD $0x8b1c0236 // add x22, x17, x28 +LBB0_124: + WORD $0x92800015 // mov x21, #-1 + WORD $0xb400a4c8 // cbz x8, LBB0_400 $5272(%rip) LBB0_125: - WORD $0xaa050103 // orr x3, x8, x5 - WORD $0xb7f80063 // tbnz x3, #63, LBB0_127 $12(%rip) + WORD $0xb400a4b4 // cbz x20, LBB0_400 $5268(%rip) + WORD $0xb400a485 // cbz x5, LBB0_400 $5264(%rip) + WORD $0xcb1e02c7 // sub x7, x22, lr + WORD $0xd10004f1 // sub x17, x7, #1 + WORD $0xeb11011f // cmp x8, x17 + WORD $0x540002a0 // b.eq LBB0_135 $84(%rip) + WORD $0xeb11029f // cmp x20, x17 + WORD $0x54000260 // b.eq LBB0_135 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_135 $68(%rip) + WORD $0xf1000691 // subs x17, x20, #1 + WORD $0x5400006b // b.lt LBB0_132 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x5400a321 // b.ne LBB0_401 $5220(%rip) +LBB0_132: + WORD $0xaa050111 // orr x17, x8, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_134 $12(%rip) WORD $0xeb05011f // cmp x8, x5 - WORD $0x54006b4a // b.ge LBB0_310 $3432(%rip) -LBB0_127: - WORD $0xd37ffc63 // lsr x3, x3, #63 - WORD $0x52000063 // eor w3, w3, #0x1 + WORD $0x5400a44a // b.ge LBB0_407 $5256(%rip) +LBB0_134: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 WORD $0xd10004a4 // sub x4, x5, #1 WORD $0xeb04011f // cmp x8, x4 WORD $0x1a9f17e8 // cset w8, eq - WORD $0x6a08007f // tst w3, w8 - WORD $0xda850294 // csinv x20, x20, x5, eq - WORD $0x14000009 // b LBB0_130 $36(%rip) -LBB0_128: - WORD $0xcb1403f4 // neg x20, x20 -LBB0_129: - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 -LBB0_130: - WORD $0xb7f866f4 // tbnz x20, #63, LBB0_302 $3292(%rip) - WORD $0x8b14013b // add x27, x9, x20 - WORD $0x14000033 // b LBB0_148 $204(%rip) -LBB0_132: + WORD $0x6a08023f // tst w17, w8 + WORD $0xda8500f5 // csinv x21, x7, x5, eq + WORD $0x14000002 // b LBB0_136 $8(%rip) +LBB0_135: + WORD $0xcb0703f5 // neg x21, x7 +LBB0_136: + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f8a0d5 // tbnz x21, #63, LBB0_400 $5144(%rip) + WORD $0x8b15037c // add x28, x27, x21 + WORD $0x140000bd // b LBB0_170 $756(%rip) +LBB0_138: + WORD $0x54009fe0 // b.eq LBB0_398 $5116(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54005fa3 // b.lo LBB0_283 $3060(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_141: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] + WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260315 // fmov w21, s24 + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260316 // fmov w22, s24 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260317 // fmov w23, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260318 // fmov w24, s24 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260319 // fmov w25, s24 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e26031a // fmov w26, s24 + WORD $0xd3607eb5 // lsl x21, x21, #32 + WORD $0xaa16c2b5 // orr x21, x21, x22, lsl #48 + WORD $0x53103ce7 // lsl w7, w7, #16 + WORD $0xaa0702a7 // orr x7, x21, x7 + WORD $0xaa1100e7 // orr x7, x7, x17 + WORD $0xd3607f31 // lsl x17, x25, #32 + WORD $0xaa1ac231 // orr x17, x17, x26, lsl #48 + WORD $0x53103f15 // lsl w21, w24, #16 + WORD $0xaa150231 // orr x17, x17, x21 + WORD $0xaa170231 // orr x17, x17, x23 + WORD $0xb5000451 // cbnz x17, LBB0_146 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_147 $152(%rip) +LBB0_143: + WORD $0x6e373497 // cmhi.16b v23, v4, v23 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 + WORD $0x4e71baf7 // addv.8h h23, v23 + WORD $0x1e2602f1 // fmov w17, s23 + WORD $0x6e363496 // cmhi.16b v22, v4, v22 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x6e353495 // cmhi.16b v21, v4, v21 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 + WORD $0x4e71bab5 // addv.8h h21, v21 + WORD $0x1e2602b6 // fmov w22, s21 + WORD $0x6e343494 // cmhi.16b v20, v4, v20 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607ed6 // lsl x22, x22, #32 + WORD $0xaa17c2d6 // orr x22, x22, x23, lsl #48 + WORD $0x53103eb5 // lsl w21, w21, #16 + WORD $0xaa1502d5 // orr x21, x22, x21 + WORD $0xaa1102b1 // orr x17, x21, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_148 $92(%rip) + WORD $0xb5009671 // cbnz x17, LBB0_404 $4812(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_141 $-340(%rip) + WORD $0x1400027e // b LBB0_276 $2552(%rip) +LBB0_146: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00235 // rbit x21, x17 + WORD $0xdac012b5 // clz x21, x21 + WORD $0x8b1c02b5 // add x21, x21, x28 + WORD $0x9a951108 // csel x8, x8, x21, ne +LBB0_147: + WORD $0x8a250235 // bic x21, x17, x5 + WORD $0xaa1504b6 // orr x22, x5, x21, lsl #1 + WORD $0x8a360231 // bic x17, x17, x22 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab150231 // adds x17, x17, x21 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a160231 // and x17, x17, x22 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_143 $-188(%rip) +LBB0_148: + WORD $0xdac000e5 // rbit x5, x7 + WORD $0xdac010a5 // clz x5, x5 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54009d43 // b.lo LBB0_427 $5032(%rip) + WORD $0x8b1c00b1 // add x17, x5, x28 +LBB0_150: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb7f890bc // tbnz x28, #63, LBB0_397 $4628(%rip) +LBB0_151: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xb27ff7f1 // mov x17, #9223372036854775806 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008e48 // b.hi LBB0_394 $4552(%rip) + WORD $0xf9400048 // ldr x8, [x2] + WORD $0xf13ffd1f // cmp x8, #4095 + WORD $0x54008f6c // b.gt LBB0_396 $4588(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0xf8287944 // str x4, [x10, x8, lsl #3] + WORD $0xf9400045 // ldr x5, [x2] + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9f25 // cbnz x5, LBB0_1 $-3100(%rip) + WORD $0x14000468 // b LBB0_394 $4512(%rip) +LBB0_154: WORD $0x71008abf // cmp w21, #34 - WORD $0x54000860 // b.eq LBB0_152 $268(%rip) + WORD $0x540008c0 // b.eq LBB0_174 $280(%rip) WORD $0x7100b6bf // cmp w21, #45 - WORD $0x54006401 // b.ne LBB0_297 $3200(%rip) + WORD $0x54008c81 // b.ne LBB0_394 $4496(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb1b0117 // subs x23, x8, x27 - WORD $0x54006860 // b.eq LBB0_311 $3340(%rip) + WORD $0xeb1c0118 // subs x24, x8, x28 + WORD $0x540090c0 // b.eq LBB0_408 $4632(%rip) WORD $0xb20903e4 // mov x4, #36028797027352576 WORD $0xf2800024 // movk x4, #1 - WORD $0x8b1b0148 // add x8, x10, x27 - WORD $0x39400103 // ldrb w3, [x8] - WORD $0x7100c07f // cmp w3, #48 - WORD $0x54001781 // b.ne LBB0_167 $752(%rip) - WORD $0xf10006ff // cmp x23, #1 - WORD $0x54001641 // b.ne LBB0_165 $712(%rip) -LBB0_137: - WORD $0x52800034 // mov w20, #1 - WORD $0x14000153 // b LBB0_213 $1356(%rip) -LBB0_138: + WORD $0x8b1c0128 // add x8, x9, x28 + WORD $0x39400111 // ldrb w17, [x8] + WORD $0x7100c23f // cmp w17, #48 + WORD $0x54002281 // b.ne LBB0_198 $1104(%rip) + WORD $0xf100071f // cmp x24, #1 + WORD $0x54002141 // b.ne LBB0_196 $1064(%rip) +LBB0_159: + WORD $0x52800027 // mov w7, #1 + WORD $0x140001ac // b LBB0_244 $1712(%rip) +LBB0_160: WORD $0x71016ebf // cmp w21, #91 - WORD $0x54000500 // b.eq LBB0_150 $160(%rip) + WORD $0x54000540 // b.eq LBB0_172 $168(%rip) WORD $0x71019abf // cmp w21, #102 - WORD $0x540061e1 // b.ne LBB0_297 $3132(%rip) + WORD $0x54008a61 // b.ne LBB0_394 $4428(%rip) WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xd1001103 // sub x3, x8, #4 - WORD $0xeb03013f // cmp x9, x3 - WORD $0x540064e2 // b.hs LBB0_308 $3228(%rip) - WORD $0xb87b6948 // ldr w8, [x10, x27] - WORD $0x6b1e011f // cmp w8, w30 - WORD $0x54006641 // b.ne LBB0_314 $3272(%rip) - WORD $0x9100153b // add x27, x9, #5 - WORD $0x14000015 // b LBB0_148 $84(%rip) -LBB0_143: + WORD $0xd1001111 // sub x17, x8, #4 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008de2 // b.hs LBB0_406 $4540(%rip) + WORD $0xb87c6928 // ldr w8, [x9, x28] + WORD $0x528d8c31 // mov w17, #27745 + WORD $0x72acae71 // movk w17, #25971, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54009381 // b.ne LBB0_420 $4720(%rip) + WORD $0x9100177c // add x28, x27, #5 + WORD $0x14000015 // b LBB0_170 $84(%rip) +LBB0_165: WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xd1000d03 // sub x3, x8, #3 - WORD $0xeb03013f // cmp x9, x3 - WORD $0x540063c2 // b.hs LBB0_308 $3192(%rip) - WORD $0xb8696948 // ldr w8, [x10, x9] - WORD $0x528e4e83 // mov w3, #29300 - WORD $0x72acaea3 // movk w3, #25973, lsl #16 - WORD $0x6b03011f // cmp w8, w3 - WORD $0x54000160 // b.eq LBB0_147 $44(%rip) - WORD $0x1400034f // b LBB0_323 $3388(%rip) -LBB0_145: + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008c82 // b.hs LBB0_406 $4496(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528e4e91 // mov w17, #29300 + WORD $0x72acaeb1 // movk w17, #25973, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54000160 // b.eq LBB0_169 $44(%rip) + WORD $0x1400047b // b LBB0_415 $4588(%rip) +LBB0_167: WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xd1000d03 // sub x3, x8, #3 - WORD $0xeb03013f // cmp x9, x3 - WORD $0x54006282 // b.hs LBB0_308 $3152(%rip) - WORD $0xb8696948 // ldr w8, [x10, x9] - WORD $0x528eadc3 // mov w3, #30062 - WORD $0x72ad8d83 // movk w3, #27756, lsl #16 - WORD $0x6b03011f // cmp w8, w3 - WORD $0x54006641 // b.ne LBB0_319 $3272(%rip) -LBB0_147: - WORD $0x9100113b // add x27, x9, #4 -LBB0_148: - WORD $0xf900003b // str x27, [x1] - WORD $0xaa0903e8 // mov x8, x9 - WORD $0xeb18013f // cmp x9, x24 - WORD $0x54005dc2 // b.hs LBB0_297 $3000(%rip) -LBB0_149: + WORD $0xd1000d11 // sub x17, x8, #3 + WORD $0xeb11037f // cmp x27, x17 + WORD $0x54008b42 // b.hs LBB0_406 $4456(%rip) + WORD $0xb87b6928 // ldr w8, [x9, x27] + WORD $0x528eadd1 // mov w17, #30062 + WORD $0x72ad8d91 // movk w17, #27756, lsl #16 + WORD $0x6b11011f // cmp w8, w17 + WORD $0x54008bc1 // b.ne LBB0_411 $4472(%rip) +LBB0_169: + WORD $0x9100137c // add x28, x27, #4 +LBB0_170: + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x54008602 // b.hs LBB0_394 $4288(%rip) +LBB0_171: WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffabc5 // cbnz x5, LBB0_1 $-2696(%rip) - WORD $0x140002ea // b LBB0_297 $2984(%rip) -LBB0_150: + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff97a5 // cbnz x5, LBB0_1 $-3340(%rip) + WORD $0x1400042c // b LBB0_394 $4272(%rip) +LBB0_172: WORD $0xf9400048 // ldr x8, [x2] WORD $0xf13ffd1f // cmp x8, #4095 - WORD $0x54005e4c // b.gt LBB0_299 $3016(%rip) - WORD $0x91000509 // add x9, x8, #1 - WORD $0xf9000049 // str x9, [x2] - WORD $0xf828797a // str x26, [x11, x8, lsl #3] + WORD $0x540086ac // b.gt LBB0_396 $4308(%rip) + WORD $0x91000511 // add x17, x8, #1 + WORD $0xf9000051 // str x17, [x2] + WORD $0x528000b1 // mov w17, #5 + WORD $0xf8287951 // str x17, [x10, x8, lsl #3] WORD $0xf9400045 // ldr x5, [x2] - WORD $0xaa0f03e8 // mov x8, x15 - WORD $0xb5ffaa85 // cbnz x5, LBB0_1 $-2736(%rip) - WORD $0x140002e0 // b LBB0_297 $2944(%rip) -LBB0_152: - WORD $0x3200f3f9 // mov w25, #1431655765 + WORD $0xaa0e03e8 // mov x8, x14 + WORD $0xb5ff9645 // cbnz x5, LBB0_1 $-3384(%rip) + WORD $0x14000421 // b LBB0_394 $4228(%rip) +LBB0_174: + WORD $0x3200f3f8 // mov w24, #1431655765 WORD $0xf9400408 // ldr x8, [x0, #8] - WORD $0xeb1b011e // subs lr, x8, x27 - WORD $0x54006920 // b.eq LBB0_330 $3364(%rip) - WORD $0xf10103df // cmp lr, #64 - WORD $0x54004123 // b.lo LBB0_261 $2084(%rip) + WORD $0xeb1c0114 // subs x20, x8, x28 + WORD $0x37280b43 // tbnz w3, #5, LBB0_185 $360(%rip) + WORD $0x54008580 // b.eq LBB0_398 $4272(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x540051e3 // b.lo LBB0_307 $2620(%rip) WORD $0xd2800005 // mov x5, #0 - WORD $0x9280001c // mov x28, #-1 -LBB0_155: - WORD $0x8b1b0143 // add x3, x10, x27 - WORD $0xad405877 // ldp q23, q22, [x3] - WORD $0xad415075 // ldp q21, q20, [x3, #32] + WORD $0x92800008 // mov x8, #-1 +LBB0_178: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405634 // ldp q20, q21, [x17] + WORD $0xad415e36 // ldp q22, q23, [x17, #32] + WORD $0x6e208e98 // cmeq.16b v24, v20, v0 + WORD $0x6e208eb9 // cmeq.16b v25, v21, v0 + WORD $0x6e208eda // cmeq.16b v26, v22, v0 + WORD $0x6e208efb // cmeq.16b v27, v23, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x6e218ed6 // cmeq.16b v22, v22, v1 + WORD $0x6e218ef7 // cmeq.16b v23, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260311 // fmov w17, s24 + WORD $0x4e221f38 // and.16b v24, v25, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260304 // fmov w4, s24 + WORD $0x4e221f58 // and.16b v24, v26, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260306 // fmov w6, s24 + WORD $0x4e221f78 // and.16b v24, v27, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260307 // fmov w7, s24 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260293 // fmov w19, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260297 // fmov w23, s20 + WORD $0xd3607cc6 // lsl x6, x6, #32 + WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0x53103c84 // lsl w4, w4, #16 + WORD $0xaa0400c4 // orr x4, x6, x4 + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000131 // cbnz x17, LBB0_182 $36(%rip) + WORD $0xb50001a5 // cbnz x5, LBB0_183 $52(%rip) + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffa2c7 // cbnz x7, LBB0_38 $-2984(%rip) +LBB0_181: + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff888 // b.hi LBB0_178 $-240(%rip) + WORD $0x14000247 // b LBB0_304 $2332(%rip) +LBB0_182: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 + WORD $0xdac01084 // clz x4, x4 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_183: + WORD $0x8a250224 // bic x4, x17, x5 + WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x52800073 // mov w19, #3 + WORD $0xb4fffd67 // cbz x7, LBB0_181 $-84(%rip) + WORD $0x17fffcff // b LBB0_38 $-3076(%rip) +LBB0_184: + WORD $0xaa1803f6 // mov x22, x24 + WORD $0x92800015 // mov x21, #-1 + WORD $0xb5ffd688 // cbnz x8, LBB0_125 $-1328(%rip) + WORD $0x140003d8 // b LBB0_400 $3936(%rip) +LBB0_185: + WORD $0x54007a60 // b.eq LBB0_398 $3916(%rip) + WORD $0xf101029f // cmp x20, #64 + WORD $0x54004b43 // b.lo LBB0_313 $2408(%rip) + WORD $0xd2800005 // mov x5, #0 + WORD $0x92800008 // mov x8, #-1 +LBB0_188: + WORD $0x8b1c0131 // add x17, x9, x28 + WORD $0xad405a37 // ldp q23, q22, [x17] + WORD $0xad415235 // ldp q21, q20, [x17, #32] WORD $0x6e208ef8 // cmeq.16b v24, v23, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260303 // fmov w3, s24 + WORD $0x1e260311 // fmov w17, s24 WORD $0x6e208ed8 // cmeq.16b v24, v22, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260304 // fmov w4, s24 WORD $0x6e208eb8 // cmeq.16b v24, v21, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260306 // fmov w6, s24 WORD $0x6e208e98 // cmeq.16b v24, v20, v0 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260307 // fmov w7, s24 - WORD $0x6e238ef8 // cmeq.16b v24, v23, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x6e218ef8 // cmeq.16b v24, v23, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 + WORD $0x4e71bb18 // addv.8h h24, v24 + WORD $0x1e260313 // fmov w19, s24 + WORD $0x6e218ed8 // cmeq.16b v24, v22, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260315 // fmov w21, s24 - WORD $0x6e238ed8 // cmeq.16b v24, v22, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x6e218eb8 // cmeq.16b v24, v21, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260316 // fmov w22, s24 - WORD $0x6e238eb8 // cmeq.16b v24, v21, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 + WORD $0x6e218e98 // cmeq.16b v24, v20, v1 + WORD $0x4e221f18 // and.16b v24, v24, v2 + WORD $0x4e030318 // tbl.16b v24, { v24 }, v3 WORD $0x4e71bb18 // addv.8h h24, v24 WORD $0x1e260317 // fmov w23, s24 - WORD $0x6e238e98 // cmeq.16b v24, v20, v3 - WORD $0x4e211f18 // and.16b v24, v24, v1 - WORD $0x4e020318 // tbl.16b v24, { v24 }, v2 - WORD $0x4e71bb18 // addv.8h h24, v24 - WORD $0x1e260318 // fmov w24, s24 WORD $0xd3607cc6 // lsl x6, x6, #32 WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 WORD $0x53103c84 // lsl w4, w4, #16 WORD $0xaa0400c4 // orr x4, x6, x4 - WORD $0xaa030094 // orr x20, x4, x3 - WORD $0xd3607ee3 // lsl x3, x23, #32 - WORD $0xaa18c063 // orr x3, x3, x24, lsl #48 - WORD $0x53103ec4 // lsl w4, w22, #16 - WORD $0xaa040063 // orr x3, x3, x4 - WORD $0xaa150063 // orr x3, x3, x21 - WORD $0xb5000443 // cbnz x3, LBB0_160 $136(%rip) - WORD $0xb50004c5 // cbnz x5, LBB0_161 $152(%rip) -LBB0_157: + WORD $0xaa110087 // orr x7, x4, x17 + WORD $0xd3607ed1 // lsl x17, x22, #32 + WORD $0xaa17c231 // orr x17, x17, x23, lsl #48 + WORD $0x53103ea4 // lsl w4, w21, #16 + WORD $0xaa040231 // orr x17, x17, x4 + WORD $0xaa130231 // orr x17, x17, x19 + WORD $0xb5000451 // cbnz x17, LBB0_193 $136(%rip) + WORD $0xb50004c5 // cbnz x5, LBB0_194 $152(%rip) +LBB0_190: WORD $0x6e373497 // cmhi.16b v23, v4, v23 - WORD $0x4e211ef7 // and.16b v23, v23, v1 - WORD $0x4e0202f7 // tbl.16b v23, { v23 }, v2 + WORD $0x4e221ef7 // and.16b v23, v23, v2 + WORD $0x4e0302f7 // tbl.16b v23, { v23 }, v3 WORD $0x4e71baf7 // addv.8h h23, v23 - WORD $0x1e2602e3 // fmov w3, s23 + WORD $0x1e2602f1 // fmov w17, s23 WORD $0x6e363496 // cmhi.16b v22, v4, v22 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 WORD $0x1e2602c4 // fmov w4, s22 WORD $0x6e353495 // cmhi.16b v21, v4, v21 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 WORD $0x1e2602a6 // fmov w6, s21 WORD $0x6e343494 // cmhi.16b v20, v4, v20 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260287 // fmov w7, s20 + WORD $0x1e260293 // fmov w19, s20 WORD $0xd3607cc6 // lsl x6, x6, #32 - WORD $0xaa07c0c6 // orr x6, x6, x7, lsl #48 + WORD $0xaa13c0c6 // orr x6, x6, x19, lsl #48 WORD $0x53103c84 // lsl w4, w4, #16 WORD $0xaa0400c4 // orr x4, x6, x4 - WORD $0xaa030083 // orr x3, x4, x3 - WORD $0xb50002f4 // cbnz x20, LBB0_162 $92(%rip) - WORD $0xb50053a3 // cbnz x3, LBB0_306 $2676(%rip) - WORD $0xd10103de // sub lr, lr, #64 - WORD $0x9101037b // add x27, x27, #64 - WORD $0xf100ffdf // cmp lr, #63 - WORD $0x54fff568 // b.hi LBB0_155 $-340(%rip) - WORD $0x140001aa // b LBB0_259 $1704(%rip) -LBB0_160: - WORD $0xb100079f // cmn x28, #1 - WORD $0xdac00064 // rbit x4, x3 + WORD $0xaa110091 // orr x17, x4, x17 + WORD $0xb50002e7 // cbnz x7, LBB0_195 $92(%rip) + WORD $0xb50070f1 // cbnz x17, LBB0_404 $3612(%rip) + WORD $0xd1010294 // sub x20, x20, #64 + WORD $0x9101039c // add x28, x28, #64 + WORD $0xf100fe9f // cmp x20, #63 + WORD $0x54fff568 // b.hi LBB0_188 $-340(%rip) + WORD $0x140001d7 // b LBB0_305 $1884(%rip) +LBB0_193: + WORD $0xb100051f // cmn x8, #1 + WORD $0xdac00224 // rbit x4, x17 WORD $0xdac01084 // clz x4, x4 - WORD $0x8b1b0084 // add x4, x4, x27 - WORD $0x9a84139c // csel x28, x28, x4, ne -LBB0_161: - WORD $0x8a250064 // bic x4, x3, x5 + WORD $0x8b1c0084 // add x4, x4, x28 + WORD $0x9a841108 // csel x8, x8, x4, ne +LBB0_194: + WORD $0x8a250224 // bic x4, x17, x5 WORD $0xaa0404a6 // orr x6, x5, x4, lsl #1 - WORD $0x8a260063 // bic x3, x3, x6 - WORD $0x9201f063 // and x3, x3, #0xaaaaaaaaaaaaaaaa - WORD $0xab040063 // adds x3, x3, x4 + WORD $0x8a260231 // bic x17, x17, x6 + WORD $0x9201f231 // and x17, x17, #0xaaaaaaaaaaaaaaaa + WORD $0xab040231 // adds x17, x17, x4 WORD $0x1a9f37e5 // cset w5, hs - WORD $0xd37ff863 // lsl x3, x3, #1 - WORD $0xd200f063 // eor x3, x3, #0x5555555555555555 - WORD $0x8a060063 // and x3, x3, x6 - WORD $0x8a230294 // bic x20, x20, x3 - WORD $0x17ffffd1 // b LBB0_157 $-188(%rip) -LBB0_162: - WORD $0xdac00284 // rbit x4, x20 + WORD $0xd37ffa31 // lsl x17, x17, #1 + WORD $0xd200f231 // eor x17, x17, #0x5555555555555555 + WORD $0x8a060231 // and x17, x17, x6 + WORD $0x8a3100e7 // bic x7, x7, x17 + WORD $0x17ffffd1 // b LBB0_190 $-188(%rip) +LBB0_195: + WORD $0xdac000e4 // rbit x4, x7 WORD $0xdac01085 // clz x5, x4 - WORD $0xdac00063 // rbit x3, x3 - WORD $0xdac01063 // clz x3, x3 - WORD $0xeb05007f // cmp x3, x5 - WORD $0x54005b63 // b.lo LBB0_331 $2924(%rip) - WORD $0x8b1b00a3 // add x3, x5, x27 - WORD $0x52800066 // mov w6, #3 - WORD $0x17fffec1 // b LBB0_98 $-1276(%rip) -LBB0_164: - WORD $0xaa1703f5 // mov x21, x23 - WORD $0x92800014 // mov x20, #-1 - WORD $0xb5ffe2c8 // cbnz x8, LBB0_118 $-936(%rip) - WORD $0x14000275 // b LBB0_302 $2516(%rip) -LBB0_165: - WORD $0x39400503 // ldrb w3, [x8, #1] - WORD $0x5100b863 // sub w3, w3, #46 - WORD $0x7100dc7f // cmp w3, #55 - WORD $0x54ffe988 // b.hi LBB0_137 $-720(%rip) - WORD $0x9ac32203 // lsl x3, x16, x3 - WORD $0x52800034 // mov w20, #1 - WORD $0xea04007f // tst x3, x4 - WORD $0x54001380 // b.eq LBB0_213 $624(%rip) -LBB0_167: - WORD $0xf10042ff // cmp x23, #16 - WORD $0x54003d03 // b.lo LBB0_281 $1952(%rip) - WORD $0xd2800016 // mov x22, #0 - WORD $0xd2800018 // mov x24, #0 - WORD $0x9280001c // mov x28, #-1 + WORD $0xdac00231 // rbit x17, x17 + WORD $0xdac01231 // clz x17, x17 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffc682 // b.hs LBB0_120 $-1840(%rip) + WORD $0x140003bc // b LBB0_427 $3824(%rip) +LBB0_196: + WORD $0x39400511 // ldrb w17, [x8, #1] + WORD $0x5100ba31 // sub w17, w17, #46 + WORD $0x7100de3f // cmp w17, #55 + WORD $0x54ffde88 // b.hi LBB0_159 $-1072(%rip) + WORD $0x9ad121f1 // lsl x17, x15, x17 + WORD $0x52800027 // mov w7, #1 + WORD $0xea04023f // tst x17, x4 + WORD $0x540013a0 // b.eq LBB0_244 $628(%rip) +LBB0_198: + WORD $0xf100431f // cmp x24, #16 + WORD $0x54004803 // b.lo LBB0_335 $2304(%rip) + WORD $0xd2800017 // mov x23, #0 + WORD $0xd2800007 // mov x7, #0 WORD $0x9280001e // mov lr, #-1 WORD $0x92800005 // mov x5, #-1 -LBB0_169: - WORD $0x3cf86914 // ldr q20, [x8, x24] + WORD $0x92800014 // mov x20, #-1 +LBB0_200: + WORD $0x3ce76914 // ldr q20, [x8, x7] WORD $0x6e258e95 // cmeq.16b v21, v20, v5 WORD $0x6e268e96 // cmeq.16b v22, v20, v6 WORD $0x6e278e97 // cmeq.16b v23, v20, v7 @@ -1020,658 +1281,936 @@ LBB0_169: WORD $0x4eb51f17 // orr.16b v23, v24, v21 WORD $0x4eb61e98 // orr.16b v24, v20, v22 WORD $0x4eb81ef7 // orr.16b v23, v23, v24 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 - WORD $0x1e2602a3 // fmov w3, s21 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x1e2602b1 // fmov w17, s21 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 WORD $0x1e260284 // fmov w4, s20 - WORD $0x4e211ed4 // and.16b v20, v22, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221ed4 // and.16b v20, v22, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260295 // fmov w21, s20 - WORD $0x4e211ef4 // and.16b v20, v23, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x1e260286 // fmov w6, s20 + WORD $0x4e221ef4 // and.16b v20, v23, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260287 // fmov w7, s20 - WORD $0x2a2703e7 // mvn w7, w7 - WORD $0x32103ce7 // orr w7, w7, #0xffff0000 - WORD $0x5ac000e7 // rbit w7, w7 - WORD $0x5ac010f4 // clz w20, w7 - WORD $0x1ad42267 // lsl w7, w19, w20 - WORD $0x0a270079 // bic w25, w3, w7 - WORD $0x0a27009a // bic w26, w4, w7 - WORD $0x0a2702a6 // bic w6, w21, w7 - WORD $0x7100429f // cmp w20, #16 - WORD $0x1a990063 // csel w3, w3, w25, eq - WORD $0x1a9a0087 // csel w7, w4, w26, eq - WORD $0x1a8602b5 // csel w21, w21, w6, eq - WORD $0x51000464 // sub w4, w3, #1 - WORD $0x6a03009a // ands w26, w4, w3 - WORD $0x540029a1 // b.ne LBB0_258 $1332(%rip) - WORD $0x510004e4 // sub w4, w7, #1 - WORD $0x6a07009a // ands w26, w4, w7 - WORD $0x54002941 // b.ne LBB0_258 $1320(%rip) - WORD $0x510006a4 // sub w4, w21, #1 - WORD $0x6a15009a // ands w26, w4, w21 - WORD $0x540028e1 // b.ne LBB0_258 $1308(%rip) - WORD $0x340000c3 // cbz w3, LBB0_175 $24(%rip) - WORD $0x5ac00063 // rbit w3, w3 - WORD $0x5ac01063 // clz w3, w3 - WORD $0xb10004bf // cmn x5, #1 - WORD $0x54002941 // b.ne LBB0_260 $1320(%rip) - WORD $0x8b030305 // add x5, x24, x3 -LBB0_175: - WORD $0x340000c7 // cbz w7, LBB0_178 $24(%rip) - WORD $0x5ac000e3 // rbit w3, w7 - WORD $0x5ac01063 // clz w3, w3 - WORD $0xb10007df // cmn lr, #1 - WORD $0x54002881 // b.ne LBB0_260 $1296(%rip) - WORD $0x8b03031e // add lr, x24, x3 -LBB0_178: - WORD $0x340000d5 // cbz w21, LBB0_181 $24(%rip) - WORD $0x5ac002a3 // rbit w3, w21 - WORD $0x5ac01063 // clz w3, w3 - WORD $0xb100079f // cmn x28, #1 - WORD $0x540027c1 // b.ne LBB0_260 $1272(%rip) - WORD $0x8b03031c // add x28, x24, x3 -LBB0_181: - WORD $0x7100429f // cmp w20, #16 - WORD $0x540005e1 // b.ne LBB0_199 $188(%rip) - WORD $0x91004318 // add x24, x24, #16 - WORD $0xd10042d6 // sub x22, x22, #16 - WORD $0x8b1602f4 // add x20, x23, x22 - WORD $0xf1003e9f // cmp x20, #15 - WORD $0x54fff6e8 // b.hi LBB0_169 $-292(%rip) - WORD $0x8b180115 // add x21, x8, x24 - WORD $0xeb1802ff // cmp x23, x24 - WORD $0x52800066 // mov w6, #3 - WORD $0x54000520 // b.eq LBB0_200 $164(%rip) -LBB0_184: - WORD $0x8b1402a4 // add x4, x21, x20 - WORD $0x8b1501a3 // add x3, x13, x21 - WORD $0xcb090077 // sub x23, x3, x9 - WORD $0xaa1503f6 // mov x22, x21 - WORD $0x14000008 // b LBB0_188 $32(%rip) -LBB0_185: - WORD $0xb100079f // cmn x28, #1 - WORD $0x54002421 // b.ne LBB0_257 $1156(%rip) - WORD $0xd10006fc // sub x28, x23, #1 -LBB0_187: - WORD $0x910006f7 // add x23, x23, #1 - WORD $0xaa1603f5 // mov x21, x22 - WORD $0xd1000694 // sub x20, x20, #1 - WORD $0xb40016d4 // cbz x20, LBB0_237 $728(%rip) -LBB0_188: - WORD $0x384016c7 // ldrb w7, [x22], #1 - WORD $0x5100c0e3 // sub w3, w7, #48 - WORD $0x7100287f // cmp w3, #10 - WORD $0x54ffff23 // b.lo LBB0_187 $-28(%rip) - WORD $0x7100b4ff // cmp w7, #45 - WORD $0x5400016d // b.le LBB0_195 $44(%rip) - WORD $0x710194ff // cmp w7, #101 - WORD $0x540001c0 // b.eq LBB0_197 $56(%rip) - WORD $0x710114ff // cmp w7, #69 - WORD $0x54000180 // b.eq LBB0_197 $48(%rip) - WORD $0x7100b8ff // cmp w7, #46 - WORD $0x54000221 // b.ne LBB0_200 $68(%rip) + WORD $0x1e260295 // fmov w21, s20 + WORD $0x2a3503f5 // mvn w21, w21 + WORD $0x32103eb5 // orr w21, w21, #0xffff0000 + WORD $0x5ac002b5 // rbit w21, w21 + WORD $0x5ac012b5 // clz w21, w21 + WORD $0x12800013 // mov w19, #-1 + WORD $0x1ad52276 // lsl w22, w19, w21 + WORD $0x0a360239 // bic w25, w17, w22 + WORD $0x0a360093 // bic w19, w4, w22 + WORD $0x0a3600d6 // bic w22, w6, w22 + WORD $0x710042bf // cmp w21, #16 + WORD $0x1a99023a // csel w26, w17, w25, eq + WORD $0x1a930091 // csel w17, w4, w19, eq + WORD $0x1a9600d6 // csel w22, w6, w22, eq + WORD $0x51000744 // sub w4, w26, #1 + WORD $0x6a1a0099 // ands w25, w4, w26 + WORD $0x54002f81 // b.ne LBB0_303 $1520(%rip) + WORD $0x51000624 // sub w4, w17, #1 + WORD $0x6a110099 // ands w25, w4, w17 + WORD $0x54002f21 // b.ne LBB0_303 $1508(%rip) + WORD $0x510006c4 // sub w4, w22, #1 + WORD $0x6a160099 // ands w25, w4, w22 + WORD $0x54002ec1 // b.ne LBB0_303 $1496(%rip) + WORD $0x340000da // cbz w26, LBB0_206 $24(%rip) + WORD $0x5ac00344 // rbit w4, w26 + WORD $0x5ac0109a // clz w26, w4 + WORD $0xb100069f // cmn x20, #1 + WORD $0x54004001 // b.ne LBB0_334 $2048(%rip) + WORD $0x8b1a00f4 // add x20, x7, x26 +LBB0_206: + WORD $0x340000d1 // cbz w17, LBB0_209 $24(%rip) + WORD $0x5ac00231 // rbit w17, w17 + WORD $0x5ac01231 // clz w17, w17 WORD $0xb10004bf // cmn x5, #1 - WORD $0x540021c1 // b.ne LBB0_257 $1080(%rip) - WORD $0xd10006e5 // sub x5, x23, #1 - WORD $0x17ffffed // b LBB0_187 $-76(%rip) -LBB0_195: - WORD $0x7100acff // cmp w7, #43 - WORD $0x54fffd00 // b.eq LBB0_185 $-96(%rip) - WORD $0x7100b4ff // cmp w7, #45 - WORD $0x54fffcc0 // b.eq LBB0_185 $-104(%rip) - WORD $0x14000008 // b LBB0_200 $32(%rip) -LBB0_197: + WORD $0x54002ea1 // b.ne LBB0_306 $1492(%rip) + WORD $0x8b1100e5 // add x5, x7, x17 +LBB0_209: + WORD $0x340000d6 // cbz w22, LBB0_212 $24(%rip) + WORD $0x5ac002d1 // rbit w17, w22 + WORD $0x5ac01231 // clz w17, w17 WORD $0xb10007df // cmn lr, #1 - WORD $0x540020a1 // b.ne LBB0_257 $1044(%rip) - WORD $0xd10006fe // sub lr, x23, #1 - WORD $0x17ffffe4 // b LBB0_187 $-112(%rip) -LBB0_199: - WORD $0x8b344103 // add x3, x8, w20, uxtw - WORD $0x8b180075 // add x21, x3, x24 - WORD $0x52800066 // mov w6, #3 -LBB0_200: - WORD $0x92800014 // mov x20, #-1 - WORD $0xb4004085 // cbz x5, LBB0_312 $2064(%rip) -LBB0_201: - WORD $0xb400407c // cbz x28, LBB0_312 $2060(%rip) - WORD $0xb400405e // cbz lr, LBB0_312 $2056(%rip) - WORD $0xcb0802a8 // sub x8, x21, x8 - WORD $0xd1000503 // sub x3, x8, #1 - WORD $0xeb0300bf // cmp x5, x3 - WORD $0x540002a0 // b.eq LBB0_211 $84(%rip) - WORD $0xeb03039f // cmp x28, x3 - WORD $0x54000260 // b.eq LBB0_211 $76(%rip) - WORD $0xeb0303df // cmp lr, x3 - WORD $0x54000220 // b.eq LBB0_211 $68(%rip) - WORD $0xf1000783 // subs x3, x28, #1 - WORD $0x5400006b // b.lt LBB0_208 $12(%rip) - WORD $0xeb0303df // cmp lr, x3 - WORD $0x54003ee1 // b.ne LBB0_313 $2012(%rip) -LBB0_208: - WORD $0xaa1e00a3 // orr x3, x5, lr - WORD $0xb7f80063 // tbnz x3, #63, LBB0_210 $12(%rip) - WORD $0xeb1e00bf // cmp x5, lr - WORD $0x540046aa // b.ge LBB0_329 $2260(%rip) -LBB0_210: - WORD $0xd37ffc63 // lsr x3, x3, #63 - WORD $0x52000063 // eor w3, w3, #0x1 - WORD $0xd10007c4 // sub x4, lr, #1 - WORD $0xeb0400bf // cmp x5, x4 - WORD $0x1a9f17e4 // cset w4, eq - WORD $0x6a04007f // tst w3, w4 - WORD $0xda9e0114 // csinv x20, x8, lr, eq - WORD $0x14000002 // b LBB0_212 $8(%rip) -LBB0_211: - WORD $0xcb0803f4 // neg x20, x8 + WORD $0x54002de1 // b.ne LBB0_306 $1468(%rip) + WORD $0x8b1100fe // add lr, x7, x17 LBB0_212: - WORD $0xb7f83d14 // tbnz x20, #63, LBB0_312 $1952(%rip) -LBB0_213: - WORD $0x8b1b029b // add x27, x20, x27 - WORD $0xf900003b // str x27, [x1] - WORD $0xaa0903e8 // mov x8, x9 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xeb18013f // cmp x9, x24 - WORD $0x52800097 // mov w23, #4 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0x54ffd903 // b.lo LBB0_149 $-1248(%rip) - WORD $0x140001b4 // b LBB0_297 $1744(%rip) -LBB0_214: - WORD $0x8b1b0144 // add x4, x10, x27 - WORD $0x1400000c // b LBB0_218 $48(%rip) + WORD $0x710042bf // cmp w21, #16 + WORD $0x540005e1 // b.ne LBB0_230 $188(%rip) + WORD $0x910040e7 // add x7, x7, #16 + WORD $0xd10042f7 // sub x23, x23, #16 + WORD $0x8b170315 // add x21, x24, x23 + WORD $0xf1003ebf // cmp x21, #15 + WORD $0x54fff6c8 // b.hi LBB0_200 $-296(%rip) + WORD $0x8b070116 // add x22, x8, x7 + WORD $0xeb07031f // cmp x24, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x54000520 // b.eq LBB0_231 $164(%rip) LBB0_215: - WORD $0x5ac00068 // rbit w8, w3 - WORD $0x5ac01108 // clz w8, w8 - WORD $0xaa3e03e3 // mvn x3, lr - WORD $0xcb080074 // sub x20, x3, x8 - WORD $0x17fffe80 // b LBB0_129 $-1536(%rip) + WORD $0x8b1502c6 // add x6, x22, x21 + WORD $0x8b160191 // add x17, x12, x22 + WORD $0xcb1b0238 // sub x24, x17, x27 + WORD $0xaa1603f7 // mov x23, x22 + WORD $0x14000008 // b LBB0_219 $32(%rip) LBB0_216: - WORD $0xaa3e03e8 // mvn x8, lr - WORD $0xcb234114 // sub x20, x8, w3, uxtw - WORD $0x17fffe7d // b LBB0_129 $-1548(%rip) -LBB0_217: - WORD $0xd2800005 // mov x5, #0 - WORD $0x8b1b0144 // add x4, x10, x27 - WORD $0x9280001c // mov x28, #-1 + WORD $0xb10007df // cmn lr, #1 + WORD $0x54002a01 // b.ne LBB0_302 $1344(%rip) + WORD $0xd100071e // sub lr, x24, #1 LBB0_218: - WORD $0xf10083d4 // subs x20, lr, #32 - WORD $0x54000783 // b.lo LBB0_226 $240(%rip) - WORD $0xad405095 // ldp q21, q20, [x4] + WORD $0x91000718 // add x24, x24, #1 + WORD $0xaa1703f6 // mov x22, x23 + WORD $0xd10006b5 // sub x21, x21, #1 + WORD $0xb4000a35 // cbz x21, LBB0_249 $324(%rip) +LBB0_219: + WORD $0x384016f1 // ldrb w17, [x23], #1 + WORD $0x5100c224 // sub w4, w17, #48 + WORD $0x7100289f // cmp w4, #10 + WORD $0x54ffff23 // b.lo LBB0_218 $-28(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x5400016d // b.le LBB0_226 $44(%rip) + WORD $0x7101963f // cmp w17, #101 + WORD $0x540001c0 // b.eq LBB0_228 $56(%rip) + WORD $0x7101163f // cmp w17, #69 + WORD $0x54000180 // b.eq LBB0_228 $48(%rip) + WORD $0x7100ba3f // cmp w17, #46 + WORD $0x54000221 // b.ne LBB0_231 $68(%rip) + WORD $0xb100069f // cmn x20, #1 + WORD $0x540027a1 // b.ne LBB0_302 $1268(%rip) + WORD $0xd1000714 // sub x20, x24, #1 + WORD $0x17ffffed // b LBB0_218 $-76(%rip) +LBB0_226: + WORD $0x7100ae3f // cmp w17, #43 + WORD $0x54fffd00 // b.eq LBB0_216 $-96(%rip) + WORD $0x7100b63f // cmp w17, #45 + WORD $0x54fffcc0 // b.eq LBB0_216 $-104(%rip) + WORD $0x14000008 // b LBB0_231 $32(%rip) +LBB0_228: + WORD $0xb10004bf // cmn x5, #1 + WORD $0x54002681 // b.ne LBB0_302 $1232(%rip) + WORD $0xd1000705 // sub x5, x24, #1 + WORD $0x17ffffe4 // b LBB0_218 $-112(%rip) +LBB0_230: + WORD $0x8b354111 // add x17, x8, w21, uxtw + WORD $0x8b070236 // add x22, x17, x7 + WORD $0x52800073 // mov w19, #3 +LBB0_231: + WORD $0x92800007 // mov x7, #-1 + WORD $0xb4005dd4 // cbz x20, LBB0_409 $3000(%rip) +LBB0_232: + WORD $0xb4005dbe // cbz lr, LBB0_409 $2996(%rip) + WORD $0xb4005d85 // cbz x5, LBB0_409 $2992(%rip) + WORD $0xcb0802c8 // sub x8, x22, x8 + WORD $0xd1000511 // sub x17, x8, #1 + WORD $0xeb11029f // cmp x20, x17 + WORD $0x540002a0 // b.eq LBB0_242 $84(%rip) + WORD $0xeb1103df // cmp lr, x17 + WORD $0x54000260 // b.eq LBB0_242 $76(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54000220 // b.eq LBB0_242 $68(%rip) + WORD $0xf10007d1 // subs x17, lr, #1 + WORD $0x5400006b // b.lt LBB0_239 $12(%rip) + WORD $0xeb1100bf // cmp x5, x17 + WORD $0x54005c21 // b.ne LBB0_410 $2948(%rip) +LBB0_239: + WORD $0xaa050291 // orr x17, x20, x5 + WORD $0xb7f80071 // tbnz x17, #63, LBB0_241 $12(%rip) + WORD $0xeb05029f // cmp x20, x5 + WORD $0x540063ea // b.ge LBB0_426 $3196(%rip) +LBB0_241: + WORD $0xd37ffe31 // lsr x17, x17, #63 + WORD $0x52000231 // eor w17, w17, #0x1 + WORD $0xd10004a4 // sub x4, x5, #1 + WORD $0xeb04029f // cmp x20, x4 + WORD $0x1a9f17e4 // cset w4, eq + WORD $0x6a04023f // tst w17, w4 + WORD $0xda850107 // csinv x7, x8, x5, eq + WORD $0x14000002 // b LBB0_243 $8(%rip) +LBB0_242: + WORD $0xcb0803e7 // neg x7, x8 +LBB0_243: + WORD $0xb7f85a47 // tbnz x7, #63, LBB0_409 $2888(%rip) +LBB0_244: + WORD $0x8b1c00fc // add x28, x7, x28 + WORD $0xf900003c // str x28, [x1] + WORD $0xaa1b03e8 // mov x8, x27 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xeb06037f // cmp x27, x6 + WORD $0x52800084 // mov w4, #4 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0x54ffce83 // b.lo LBB0_171 $-1584(%rip) + WORD $0x140002a2 // b LBB0_394 $2696(%rip) +LBB0_245: + WORD $0x5ac00328 // rbit w8, w25 + WORD $0x5ac01108 // clz w8, w8 + WORD $0xaa3c03f1 // mvn x17, x28 + WORD $0xcb080235 // sub x21, x17, x8 + WORD $0x17fffda7 // b LBB0_136 $-2404(%rip) +LBB0_246: + WORD $0xaa3c03e8 // mvn x8, x28 + WORD $0xcb314115 // sub x21, x8, w17, uxtw + WORD $0x17fffda4 // b LBB0_136 $-2416(%rip) +LBB0_247: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_251 $40(%rip) +LBB0_248: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_257 $176(%rip) +LBB0_249: + WORD $0xaa0603f6 // mov x22, x6 + WORD $0x92800007 // mov x7, #-1 + WORD $0xb5fff994 // cbnz x20, LBB0_232 $-208(%rip) + WORD $0x140002b8 // b LBB0_409 $2784(%rip) +LBB0_250: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_251: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54003463 // b.lo LBB0_339 $1676(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002ed5 // cbnz w21, LBB0_336 $1496(%rip) + WORD $0xb5002f65 // cbnz x5, LBB0_337 $1516(%rip) + WORD $0xb40030f4 // cbz x20, LBB0_338 $1564(%rip) +LBB0_255: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd52 // b LBB0_121 $-2744(%rip) +LBB0_256: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_257: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_265 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x1e2602d4 // fmov w20, s22 WORD $0x6e208e96 // cmeq.16b v22, v20, v0 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602c3 // fmov w3, s22 - WORD $0x6e238eb6 // cmeq.16b v22, v21, v3 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 - WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602d6 // fmov w22, s22 - WORD $0x6e238e96 // cmeq.16b v22, v20, v3 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 WORD $0x1e2602c7 // fmov w7, s22 - WORD $0x33103c75 // bfi w21, w3, #16, #16 - WORD $0x33103cf6 // bfi w22, w7, #16, #16 - WORD $0x35002456 // cbnz w22, LBB0_282 $1160(%rip) - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0xb5003005 // cbnz x5, LBB0_294 $1536(%rip) -LBB0_221: + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x35003047 // cbnz w7, LBB0_349 $1544(%rip) + WORD $0xb50030e5 // cbnz x5, LBB0_350 $1564(%rip) +LBB0_260: WORD $0x6e353495 // cmhi.16b v21, v4, v21 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 WORD $0x1e2602a7 // fmov w7, s21 WORD $0x6e343494 // cmhi.16b v20, v4, v20 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260283 // fmov w3, s20 - WORD $0x33103c67 // bfi w7, w3, #16, #16 - WORD $0xdac000e3 // rbit x3, x7 - WORD $0xdac01063 // clz x3, x3 - WORD $0xb4000175 // cbz x21, LBB0_224 $44(%rip) - WORD $0xdac002a5 // rbit x5, x21 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_263 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 WORD $0xdac010a7 // clz x7, x5 - WORD $0xcb0a0085 // sub x5, x4, x10 - WORD $0xeb07007f // cmp x3, x7 - WORD $0x54003cc3 // b.lo LBB0_333 $1944(%rip) - WORD $0x8b0700a3 // add x3, x5, x7 - WORD $0x9100047b // add x27, x3, #1 - WORD $0xb100087f // cmn x3, #2 - WORD $0x54ffcfac // b.gt LBB0_148 $-1548(%rip) - WORD $0x1400017a // b LBB0_300 $1512(%rip) -LBB0_224: - WORD $0x35003c47 // cbnz w7, LBB0_334 $1928(%rip) - WORD $0x91008084 // add x4, x4, #32 - WORD $0xaa1403fe // mov lr, x20 -LBB0_226: - WORD $0xb5002705 // cbnz x5, LBB0_286 $1248(%rip) - WORD $0xb400309e // cbz lr, LBB0_308 $1552(%rip) -LBB0_228: + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x54005563 // b.lo LBB0_428 $2732(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd1f // b LBB0_121 $-2948(%rip) +LBB0_263: + WORD $0x35005547 // cbnz w7, LBB0_429 $2728(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_265: + WORD $0xb5003965 // cbnz x5, LBB0_368 $1836(%rip) + WORD $0xb40048d4 // cbz x20, LBB0_398 $2328(%rip) +LBB0_267: WORD $0xd2800005 // mov x5, #0 -LBB0_229: - WORD $0x38656883 // ldrb w3, [x4, x5] - WORD $0x7100887f // cmp w3, #34 - WORD $0x54000340 // b.eq LBB0_235 $104(%rip) - WORD $0x7101707f // cmp w3, #92 - WORD $0x54000100 // b.eq LBB0_233 $32(%rip) - WORD $0x71007c7f // cmp w3, #31 - WORD $0x54003b29 // b.ls LBB0_335 $1892(%rip) +LBB0_268: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_274 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_272 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54005429 // b.ls LBB0_430 $2692(%rip) WORD $0x910004a5 // add x5, x5, #1 - WORD $0x9280001b // mov x27, #-1 - WORD $0xeb0503df // cmp lr, x5 - WORD $0x54fffec1 // b.ne LBB0_229 $-40(%rip) - WORD $0x140001cd // b LBB0_332 $1844(%rip) -LBB0_233: - WORD $0xd10007c3 // sub x3, lr, #1 - WORD $0xeb05007f // cmp x3, x5 - WORD $0x54002e80 // b.eq LBB0_308 $1488(%rip) - WORD $0x8b050083 // add x3, x4, x5 - WORD $0x8b0d0067 // add x7, x3, x13 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c00fc // csel x28, x7, x28, eq - WORD $0x91000864 // add x4, x3, #2 - WORD $0xcb0503c3 // sub x3, lr, x5 - WORD $0xd1000bc7 // sub x7, lr, #2 - WORD $0xd100087e // sub lr, x3, #2 - WORD $0x9280001b // mov x27, #-1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_268 $-36(%rip) + WORD $0x1400023a // b LBB0_398 $2280(%rip) +LBB0_272: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x540046e0 // b.eq LBB0_398 $2268(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 - WORD $0x52800066 // mov w6, #3 - WORD $0x54fffca1 // b.ne LBB0_228 $-108(%rip) - WORD $0x140001bd // b LBB0_332 $1780(%rip) -LBB0_235: - WORD $0x8b0401a3 // add x3, x13, x4 - WORD $0x8b050063 // add x3, x3, x5 - WORD $0x17fffda1 // b LBB0_98 $-2428(%rip) -LBB0_236: - WORD $0x8b1b0144 // add x4, x10, x27 - WORD $0x14000008 // b LBB0_239 $32(%rip) -LBB0_237: - WORD $0xaa0403f5 // mov x21, x4 - WORD $0x92800014 // mov x20, #-1 - WORD $0xb5ffece5 // cbnz x5, LBB0_201 $-612(%rip) - WORD $0x14000169 // b LBB0_312 $1444(%rip) -LBB0_238: + WORD $0x54fffd01 // b.ne LBB0_267 $-96(%rip) + WORD $0x1400022c // b LBB0_398 $2224(%rip) +LBB0_274: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffcfd // b LBB0_121 $-3084(%rip) +LBB0_275: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000006 // b LBB0_278 $24(%rip) +LBB0_276: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x14000028 // b LBB0_284 $160(%rip) +LBB0_277: WORD $0xd2800005 // mov x5, #0 - WORD $0x8b1b0144 // add x4, x10, x27 - WORD $0x9280001c // mov x28, #-1 -LBB0_239: - WORD $0xf10083d4 // subs x20, lr, #32 - WORD $0x54000783 // b.lo LBB0_247 $240(%rip) - WORD $0xad405095 // ldp q21, q20, [x4] + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_278: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x54002d23 // b.lo LBB0_354 $1444(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260296 // fmov w22, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ed5 // bfi w21, w22, #16, #16 + WORD $0x35002795 // cbnz w21, LBB0_351 $1264(%rip) + WORD $0xb5002825 // cbnz x5, LBB0_352 $1284(%rip) + WORD $0xb40029b4 // cbz x20, LBB0_353 $1332(%rip) +LBB0_282: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0x8b1100b1 // add x17, x5, x17 + WORD $0x17fffd75 // b LBB0_150 $-2604(%rip) +LBB0_283: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_284: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_292 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x1e2602d4 // fmov w20, s22 WORD $0x6e208e96 // cmeq.16b v22, v20, v0 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 - WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602c3 // fmov w3, s22 - WORD $0x6e238eb6 // cmeq.16b v22, v21, v3 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602d6 // fmov w22, s22 - WORD $0x6e238e96 // cmeq.16b v22, v20, v3 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 WORD $0x1e2602c7 // fmov w7, s22 - WORD $0x33103c75 // bfi w21, w3, #16, #16 - WORD $0x33103cf6 // bfi w22, w7, #16, #16 - WORD $0x35001af6 // cbnz w22, LBB0_284 $860(%rip) - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0xb5002345 // cbnz x5, LBB0_295 $1128(%rip) -LBB0_242: + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d6 // fmov w22, s22 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103ec7 // bfi w7, w22, #16, #16 + WORD $0x350029a7 // cbnz w7, LBB0_364 $1332(%rip) + WORD $0xb5002a45 // cbnz x5, LBB0_365 $1352(%rip) +LBB0_287: WORD $0x6e353495 // cmhi.16b v21, v4, v21 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 WORD $0x1e2602a7 // fmov w7, s21 WORD $0x6e343494 // cmhi.16b v20, v4, v20 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260283 // fmov w3, s20 - WORD $0x33103c67 // bfi w7, w3, #16, #16 - WORD $0xdac000e3 // rbit x3, x7 - WORD $0xdac01063 // clz x3, x3 - WORD $0xb4000175 // cbz x21, LBB0_245 $44(%rip) - WORD $0xdac002a5 // rbit x5, x21 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_290 $32(%rip) + WORD $0xdac00285 // rbit x5, x20 WORD $0xdac010a7 // clz x7, x5 - WORD $0xcb0a0085 // sub x5, x4, x10 - WORD $0xeb07007f // cmp x3, x7 - WORD $0x54002fc3 // b.lo LBB0_333 $1528(%rip) - WORD $0x8b0700a3 // add x3, x5, x7 - WORD $0x9100047b // add x27, x3, #1 - WORD $0xb100087f // cmn x3, #2 - WORD $0x54ffb48c // b.gt LBB0_113 $-2416(%rip) - WORD $0x14000112 // b LBB0_300 $1096(%rip) -LBB0_245: - WORD $0x35002f47 // cbnz w7, LBB0_334 $1512(%rip) - WORD $0x91008084 // add x4, x4, #32 - WORD $0xaa1403fe // mov lr, x20 -LBB0_247: - WORD $0xb5001b25 // cbnz x5, LBB0_288 $868(%rip) - WORD $0xb400239e // cbz lr, LBB0_308 $1136(%rip) -LBB0_249: + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540045c3 // b.lo LBB0_428 $2232(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x17fffd42 // b LBB0_150 $-2808(%rip) +LBB0_290: + WORD $0x350045a7 // cbnz w7, LBB0_429 $2228(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_292: + WORD $0xb5002bc5 // cbnz x5, LBB0_372 $1400(%rip) + WORD $0xb4003934 // cbz x20, LBB0_398 $1828(%rip) +LBB0_294: WORD $0xd2800005 // mov x5, #0 -LBB0_250: - WORD $0x38656883 // ldrb w3, [x4, x5] - WORD $0x7100887f // cmp w3, #34 - WORD $0x54000340 // b.eq LBB0_256 $104(%rip) - WORD $0x7101707f // cmp w3, #92 - WORD $0x54000100 // b.eq LBB0_254 $32(%rip) - WORD $0x71007c7f // cmp w3, #31 - WORD $0x54002e29 // b.ls LBB0_335 $1476(%rip) +LBB0_295: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_301 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_299 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54004489 // b.ls LBB0_430 $2192(%rip) WORD $0x910004a5 // add x5, x5, #1 - WORD $0x9280001b // mov x27, #-1 - WORD $0xeb0503df // cmp lr, x5 - WORD $0x54fffec1 // b.ne LBB0_250 $-40(%rip) - WORD $0x14000165 // b LBB0_332 $1428(%rip) -LBB0_254: - WORD $0xd10007c3 // sub x3, lr, #1 - WORD $0xeb05007f // cmp x3, x5 - WORD $0x54002180 // b.eq LBB0_308 $1072(%rip) - WORD $0x8b050083 // add x3, x4, x5 - WORD $0x8b0d0067 // add x7, x3, x13 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c00fc // csel x28, x7, x28, eq - WORD $0x91000864 // add x4, x3, #2 - WORD $0xcb0503c3 // sub x3, lr, x5 - WORD $0xd1000bc7 // sub x7, lr, #2 - WORD $0xd100087e // sub lr, x3, #2 - WORD $0x9280001b // mov x27, #-1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_295 $-36(%rip) + WORD $0x140001bd // b LBB0_398 $1780(%rip) +LBB0_299: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54003740 // b.eq LBB0_398 $1768(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0227 // add x7, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a8800e8 // csel x8, x7, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a87 // sub x7, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb0500ff // cmp x7, x5 - WORD $0x52800066 // mov w6, #3 - WORD $0x54fffca1 // b.ne LBB0_249 $-108(%rip) - WORD $0x14000155 // b LBB0_332 $1364(%rip) -LBB0_256: - WORD $0x8b0401a3 // add x3, x13, x4 - WORD $0x8b050063 // add x3, x3, x5 - WORD $0x17fffd74 // b LBB0_112 $-2608(%rip) -LBB0_257: - WORD $0xcb1703f4 // neg x20, x23 - WORD $0x17ffff1d // b LBB0_212 $-908(%rip) -LBB0_258: - WORD $0x5ac00348 // rbit w8, w26 + WORD $0x54fffd01 // b.ne LBB0_294 $-96(%rip) + WORD $0x140001af // b LBB0_398 $1724(%rip) +LBB0_301: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 + WORD $0x17fffd20 // b LBB0_150 $-2944(%rip) +LBB0_302: + WORD $0xcb1803e7 // neg x7, x24 + WORD $0x17fffeee // b LBB0_243 $-1096(%rip) +LBB0_303: + WORD $0x5ac00328 // rbit w8, w25 WORD $0x5ac01108 // clz w8, w8 - WORD $0xaa3803e3 // mvn x3, x24 - WORD $0xcb080074 // sub x20, x3, x8 - WORD $0x52800066 // mov w6, #3 - WORD $0x17ffff17 // b LBB0_212 $-932(%rip) -LBB0_259: - WORD $0x8b1b0146 // add x6, x10, x27 - WORD $0x14000008 // b LBB0_262 $32(%rip) -LBB0_260: - WORD $0xaa3803e8 // mvn x8, x24 - WORD $0xcb234114 // sub x20, x8, w3, uxtw - WORD $0x52800066 // mov w6, #3 - WORD $0x17ffff11 // b LBB0_212 $-956(%rip) -LBB0_261: + WORD $0xaa2703f1 // mvn x17, x7 + WORD $0xcb080227 // sub x7, x17, x8 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee8 // b LBB0_243 $-1120(%rip) +LBB0_304: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400000a // b LBB0_308 $40(%rip) +LBB0_305: + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x1400002c // b LBB0_314 $176(%rip) +LBB0_306: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb314107 // sub x7, x8, w17, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffee0 // b LBB0_243 $-1152(%rip) +LBB0_307: WORD $0xd2800005 // mov x5, #0 - WORD $0x8b1b0146 // add x6, x10, x27 - WORD $0x9280001c // mov x28, #-1 -LBB0_262: - WORD $0xf10083d4 // subs x20, lr, #32 - WORD $0x54000663 // b.lo LBB0_270 $204(%rip) - WORD $0xad4050d5 // ldp q21, q20, [x6] + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_308: + WORD $0xf1008287 // subs x7, x20, #32 + WORD $0x540028e3 // b.lo LBB0_377 $1308(%rip) + WORD $0xad405794 // ldp q20, q21, [x28] + WORD $0x6e208e96 // cmeq.16b v22, v20, v0 + WORD $0x6e208eb7 // cmeq.16b v23, v21, v0 + WORD $0x6e218e94 // cmeq.16b v20, v20, v1 + WORD $0x6e218eb5 // cmeq.16b v21, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d4 // fmov w20, s22 + WORD $0x4e221ef6 // and.16b v22, v23, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 + WORD $0x4e71bad6 // addv.8h h22, v22 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260295 // fmov w21, s20 + WORD $0x4e221eb4 // and.16b v20, v21, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 + WORD $0x4e71ba94 // addv.8h h20, v20 + WORD $0x1e260284 // fmov w4, s20 + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c95 // bfi w21, w4, #16, #16 + WORD $0x35002375 // cbnz w21, LBB0_374 $1132(%rip) + WORD $0xb5002405 // cbnz x5, LBB0_375 $1152(%rip) + WORD $0xb4002574 // cbz x20, LBB0_376 $1196(%rip) +LBB0_312: + WORD $0xdac00291 // rbit x17, x20 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0x14000055 // b LBB0_332 $340(%rip) +LBB0_313: + WORD $0xd2800005 // mov x5, #0 + WORD $0x8b1c013c // add x28, x9, x28 + WORD $0x92800008 // mov x8, #-1 +LBB0_314: + WORD $0xf1008295 // subs x21, x20, #32 + WORD $0x54000643 // b.lo LBB0_322 $200(%rip) + WORD $0xad405395 // ldp q21, q20, [x28] WORD $0x6e208eb6 // cmeq.16b v22, v21, v0 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602d5 // fmov w21, s22 + WORD $0x1e2602d4 // fmov w20, s22 WORD $0x6e208e96 // cmeq.16b v22, v20, v0 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602c3 // fmov w3, s22 - WORD $0x6e238eb6 // cmeq.16b v22, v21, v3 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x1e2602d1 // fmov w17, s22 + WORD $0x6e218eb6 // cmeq.16b v22, v21, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 - WORD $0x1e2602d6 // fmov w22, s22 - WORD $0x6e238e96 // cmeq.16b v22, v20, v3 - WORD $0x4e211ed6 // and.16b v22, v22, v1 - WORD $0x4e0202d6 // tbl.16b v22, { v22 }, v2 + WORD $0x1e2602c7 // fmov w7, s22 + WORD $0x6e218e96 // cmeq.16b v22, v20, v1 + WORD $0x4e221ed6 // and.16b v22, v22, v2 + WORD $0x4e0302d6 // tbl.16b v22, { v22 }, v3 WORD $0x4e71bad6 // addv.8h h22, v22 WORD $0x1e2602c4 // fmov w4, s22 - WORD $0x33103c75 // bfi w21, w3, #16, #16 - WORD $0x33103c96 // bfi w22, w4, #16, #16 - WORD $0x350012d6 // cbnz w22, LBB0_290 $600(%rip) - WORD $0xb5001365 // cbnz x5, LBB0_291 $620(%rip) -LBB0_265: + WORD $0x33103e34 // bfi w20, w17, #16, #16 + WORD $0x33103c87 // bfi w7, w4, #16, #16 + WORD $0x350024e7 // cbnz w7, LBB0_386 $1180(%rip) + WORD $0xb5002585 // cbnz x5, LBB0_387 $1200(%rip) +LBB0_317: WORD $0x6e353495 // cmhi.16b v21, v4, v21 - WORD $0x4e211eb5 // and.16b v21, v21, v1 - WORD $0x4e0202b5 // tbl.16b v21, { v21 }, v2 + WORD $0x4e221eb5 // and.16b v21, v21, v2 + WORD $0x4e0302b5 // tbl.16b v21, { v21 }, v3 WORD $0x4e71bab5 // addv.8h h21, v21 WORD $0x1e2602a7 // fmov w7, s21 WORD $0x6e343494 // cmhi.16b v20, v4, v20 - WORD $0x4e211e94 // and.16b v20, v20, v1 - WORD $0x4e020294 // tbl.16b v20, { v20 }, v2 + WORD $0x4e221e94 // and.16b v20, v20, v2 + WORD $0x4e030294 // tbl.16b v20, { v20 }, v3 WORD $0x4e71ba94 // addv.8h h20, v20 - WORD $0x1e260283 // fmov w3, s20 - WORD $0x33103c67 // bfi w7, w3, #16, #16 - WORD $0xdac000e3 // rbit x3, x7 - WORD $0xdac01063 // clz x3, x3 - WORD $0xb4000135 // cbz x21, LBB0_268 $36(%rip) - WORD $0xdac002a4 // rbit x4, x21 + WORD $0x1e260291 // fmov w17, s20 + WORD $0x33103e27 // bfi w7, w17, #16, #16 + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xb4000114 // cbz x20, LBB0_320 $32(%rip) + WORD $0xdac00284 // rbit x4, x20 WORD $0xdac01087 // clz x7, x4 - WORD $0xcb0a00c5 // sub x5, x6, x10 - WORD $0xeb07007f // cmp x3, x7 - WORD $0x540022a3 // b.lo LBB0_333 $1108(%rip) - WORD $0x8b0700a3 // add x3, x5, x7 - WORD $0x52800066 // mov w6, #3 - WORD $0x17fffcf7 // b LBB0_98 $-3108(%rip) -LBB0_268: - WORD $0x35002327 // cbnz w7, LBB0_336 $1124(%rip) - WORD $0x910080c6 // add x6, x6, #32 - WORD $0xaa1403fe // mov lr, x20 -LBB0_270: - WORD $0xb50011a5 // cbnz x5, LBB0_292 $564(%rip) - WORD $0xb40016be // cbz lr, LBB0_308 $724(%rip) -LBB0_272: + WORD $0xcb090385 // sub x5, x28, x9 + WORD $0xeb07023f // cmp x17, x7 + WORD $0x540034a3 // b.lo LBB0_428 $1684(%rip) + WORD $0x8b0700b1 // add x17, x5, x7 + WORD $0x14000022 // b LBB0_332 $136(%rip) +LBB0_320: + WORD $0x35003487 // cbnz w7, LBB0_429 $1680(%rip) + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa1503f4 // mov x20, x21 +LBB0_322: + WORD $0xb5002505 // cbnz x5, LBB0_391 $1184(%rip) + WORD $0xb4002814 // cbz x20, LBB0_398 $1280(%rip) +LBB0_324: WORD $0xd2800005 // mov x5, #0 -LBB0_273: - WORD $0x386568c3 // ldrb w3, [x6, x5] - WORD $0x7100887f // cmp w3, #34 - WORD $0x54000320 // b.eq LBB0_279 $100(%rip) - WORD $0x7101707f // cmp w3, #92 - WORD $0x54000100 // b.eq LBB0_277 $32(%rip) - WORD $0x71007c7f // cmp w3, #31 - WORD $0x54002209 // b.ls LBB0_337 $1088(%rip) +LBB0_325: + WORD $0x38656b91 // ldrb w17, [x28, x5] + WORD $0x71008a3f // cmp w17, #34 + WORD $0x540002e0 // b.eq LBB0_331 $92(%rip) + WORD $0x7101723f // cmp w17, #92 + WORD $0x540000e0 // b.eq LBB0_329 $28(%rip) + WORD $0x71007e3f // cmp w17, #31 + WORD $0x54003369 // b.ls LBB0_430 $1644(%rip) WORD $0x910004a5 // add x5, x5, #1 - WORD $0x9280001b // mov x27, #-1 - WORD $0xeb0503df // cmp lr, x5 - WORD $0x54fffec1 // b.ne LBB0_273 $-40(%rip) - WORD $0x140000fe // b LBB0_332 $1016(%rip) -LBB0_277: - WORD $0xd10007c3 // sub x3, lr, #1 - WORD $0xeb05007f // cmp x3, x5 - WORD $0x540014a0 // b.eq LBB0_308 $660(%rip) - WORD $0x8b0500c3 // add x3, x6, x5 - WORD $0x8b0d0064 // add x4, x3, x13 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c009c // csel x28, x4, x28, eq - WORD $0x91000866 // add x6, x3, #2 - WORD $0xcb0503c3 // sub x3, lr, x5 - WORD $0xd1000bc4 // sub x4, lr, #2 - WORD $0xd100087e // sub lr, x3, #2 - WORD $0x9280001b // mov x27, #-1 + WORD $0xeb05029f // cmp x20, x5 + WORD $0x54fffee1 // b.ne LBB0_325 $-36(%rip) + WORD $0x14000134 // b LBB0_398 $1232(%rip) +LBB0_329: + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0xeb05023f // cmp x17, x5 + WORD $0x54002620 // b.eq LBB0_398 $1220(%rip) + WORD $0x8b050391 // add x17, x28, x5 + WORD $0x8b0c0224 // add x4, x17, x12 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880088 // csel x8, x4, x8, eq + WORD $0x91000a3c // add x28, x17, #2 + WORD $0xcb050291 // sub x17, x20, x5 + WORD $0xd1000a84 // sub x4, x20, #2 + WORD $0xd1000a34 // sub x20, x17, #2 WORD $0xeb05009f // cmp x4, x5 - WORD $0x54fffcc1 // b.ne LBB0_272 $-104(%rip) - WORD $0x140000ef // b LBB0_332 $956(%rip) -LBB0_279: - WORD $0x8b0601a3 // add x3, x13, x6 - WORD $0x8b050063 // add x3, x3, x5 - WORD $0x52800066 // mov w6, #3 - WORD $0x17fffcd2 // b LBB0_98 $-3256(%rip) -LBB0_280: + WORD $0x54fffd01 // b.ne LBB0_324 $-96(%rip) + WORD $0x14000126 // b LBB0_398 $1176(%rip) +LBB0_331: + WORD $0x8b1c0191 // add x17, x12, x28 + WORD $0x8b050231 // add x17, x17, x5 +LBB0_332: + WORD $0x9100063c // add x28, x17, #1 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffbf6 // b LBB0_122 $-4136(%rip) +LBB0_333: WORD $0x92800008 // mov x8, #-1 - WORD $0xaa1c03f5 // mov x21, x28 - WORD $0xaa1403f6 // mov x22, x20 + WORD $0xaa1e03f6 // mov x22, lr + WORD $0xaa1503f7 // mov x23, x21 WORD $0x92800005 // mov x5, #-1 - WORD $0x9280001b // mov x27, #-1 - WORD $0x17fffc93 // b LBB0_80 $-3508(%rip) -LBB0_281: + WORD $0x92800014 // mov x20, #-1 + WORD $0x17fffb21 // b LBB0_82 $-4988(%rip) +LBB0_334: + WORD $0xaa2703e8 // mvn x8, x7 + WORD $0xcb3a4107 // sub x7, x8, w26, uxtw + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe5b // b LBB0_243 $-1684(%rip) +LBB0_335: + WORD $0x92800014 // mov x20, #-1 + WORD $0xaa0803f6 // mov x22, x8 + WORD $0xaa1803f5 // mov x21, x24 WORD $0x92800005 // mov x5, #-1 - WORD $0xaa0803f5 // mov x21, x8 - WORD $0xaa1703f4 // mov x20, x23 WORD $0x9280001e // mov lr, #-1 - WORD $0x9280001c // mov x28, #-1 - WORD $0x52800066 // mov w6, #3 - WORD $0x17fffe66 // b LBB0_184 $-1640(%rip) -LBB0_282: - WORD $0xdac002c3 // rbit x3, x22 - WORD $0xdac01063 // clz x3, x3 - WORD $0xaa0403fb // mov x27, x4 - WORD $0xcb0a0087 // sub x7, x4, x10 - WORD $0x8b0300e3 // add x3, x7, x3 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a83139c // csel x28, x28, x3, ne -LBB0_283: - WORD $0x0a2502c3 // bic w3, w22, w5 - WORD $0x531f7867 // lsl w7, w3, #1 - WORD $0x331f7865 // bfi w5, w3, #1, #31 - WORD $0x0a2702c7 // bic w7, w22, w7 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe0f // b LBB0_215 $-1988(%rip) +LBB0_336: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_337: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffcf74 // cbnz x20, LBB0_255 $-1556(%rip) +LBB0_338: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_339: + WORD $0xb5000ec5 // cbnz x5, LBB0_366 $472(%rip) + WORD $0xb4000314 // cbz x20, LBB0_348 $96(%rip) +LBB0_341: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_347 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_344 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_341 $-36(%rip) + WORD $0x14000009 // b LBB0_346 $36(%rip) +LBB0_344: + WORD $0xb4001db1 // cbz x17, LBB0_398 $948(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_341 $-72(%rip) +LBB0_346: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_348 $12(%rip) + WORD $0x140000e3 // b LBB0_398 $908(%rip) +LBB0_347: + WORD $0xaa0703fc // mov x28, x7 +LBB0_348: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x17fffbb5 // b LBB0_122 $-4396(%rip) +LBB0_349: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_350: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa - WORD $0x2b0300e3 // adds w3, w7, w3 - WORD $0x3200f3e4 // mov w4, #1431655765 - WORD $0x4a030483 // eor w3, w4, w3, lsl #1 - WORD $0x0a050063 // and w3, w3, w5 + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a1104d1 // eor w17, w6, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 WORD $0x1a9f37e5 // cset w5, hs - WORD $0x2a2303e3 // mvn w3, w3 - WORD $0x8a150075 // and x21, x3, x21 - WORD $0x52800066 // mov w6, #3 - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0xaa1b03e4 // mov x4, x27 - WORD $0x17fffecb // b LBB0_221 $-1236(%rip) -LBB0_284: - WORD $0xdac002c3 // rbit x3, x22 - WORD $0xdac01063 // clz x3, x3 - WORD $0xaa0403fb // mov x27, x4 - WORD $0xcb0a0087 // sub x7, x4, x10 - WORD $0x8b0300e3 // add x3, x7, x3 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a83139c // csel x28, x28, x3, ne -LBB0_285: - WORD $0x0a2502c3 // bic w3, w22, w5 - WORD $0x531f7867 // lsl w7, w3, #1 - WORD $0x331f7865 // bfi w5, w3, #1, #31 - WORD $0x0a2702c7 // bic w7, w22, w7 + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffe6e // b LBB0_260 $-1608(%rip) +LBB0_351: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_352: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3602b5 // bic w21, w21, w22 + WORD $0x1201f2b5 // and w21, w21, #0xaaaaaaaa + WORD $0x2b1102b1 // adds w17, w21, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0xb5ffd6b4 // cbnz x20, LBB0_282 $-1324(%rip) +LBB0_353: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_354: + WORD $0xb5000865 // cbnz x5, LBB0_370 $268(%rip) + WORD $0xb4000314 // cbz x20, LBB0_363 $96(%rip) +LBB0_356: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000260 // b.eq LBB0_362 $76(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_359 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_356 $-36(%rip) + WORD $0x14000009 // b LBB0_361 $36(%rip) +LBB0_359: + WORD $0xb4001551 // cbz x17, LBB0_398 $680(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_356 $-72(%rip) +LBB0_361: + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000060 // b.eq LBB0_363 $12(%rip) + WORD $0x140000a0 // b LBB0_398 $640(%rip) +LBB0_362: + WORD $0xaa0703fc // mov x28, x7 +LBB0_363: + WORD $0xcb09039c // sub x28, x28, x9 + WORD $0x52800084 // mov w4, #4 + WORD $0x92f00006 // mov x6, #9223372036854775807 + WORD $0xb20903e7 // mov x7, #36028797027352576 + WORD $0xf2800027 // movk x7, #1 + WORD $0xb6ff827c // tbz x28, #63, LBB0_151 $-4020(%rip) + WORD $0x14000096 // b LBB0_397 $600(%rip) +LBB0_364: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090396 // sub x22, x28, x9 + WORD $0x8b1102d1 // add x17, x22, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_365: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a36 // lsl w22, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a3600e7 // bic w7, w7, w22 WORD $0x1201f0e7 // and w7, w7, #0xaaaaaaaa - WORD $0x2b0300e3 // adds w3, w7, w3 - WORD $0x3200f3e4 // mov w4, #1431655765 - WORD $0x4a030483 // eor w3, w4, w3, lsl #1 - WORD $0x0a050063 // and w3, w3, w5 + WORD $0x2b1100f1 // adds w17, w7, w17 + WORD $0x4a110491 // eor w17, w4, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 WORD $0x1a9f37e5 // cset w5, hs - WORD $0x2a2303e3 // mvn w3, w3 - WORD $0x8a150075 // and x21, x3, x21 - WORD $0x52800066 // mov w6, #3 - WORD $0x52800097 // mov w23, #4 - WORD $0x92f00018 // mov x24, #9223372036854775807 - WORD $0xb20903f9 // mov x25, #36028797027352576 - WORD $0xf2800039 // movk x25, #1 - WORD $0x528000ba // mov w26, #5 - WORD $0x528d8c3e // mov w30, #27745 - WORD $0x72acae7e // movk w30, #25971, lsl #16 - WORD $0xaa1b03e4 // mov x4, x27 - WORD $0x17ffff16 // b LBB0_242 $-936(%rip) -LBB0_286: - WORD $0xb40009be // cbz lr, LBB0_308 $308(%rip) - WORD $0x8b0c0083 // add x3, x4, x12 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c007c // csel x28, x3, x28, eq - WORD $0x91000484 // add x4, x4, #1 - WORD $0xd10007de // sub lr, lr, #1 - WORD $0x52800066 // mov w6, #3 - WORD $0xb5ffd87e // cbnz lr, LBB0_228 $-1268(%rip) - WORD $0x14000045 // b LBB0_308 $276(%rip) -LBB0_288: - WORD $0xb400089e // cbz lr, LBB0_308 $272(%rip) - WORD $0x8b0c0083 // add x3, x4, x12 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c007c // csel x28, x3, x28, eq - WORD $0x91000484 // add x4, x4, #1 - WORD $0xd10007de // sub lr, lr, #1 - WORD $0x52800066 // mov w6, #3 - WORD $0xb5ffe45e // cbnz lr, LBB0_249 $-888(%rip) - WORD $0x1400003c // b LBB0_308 $240(%rip) -LBB0_290: - WORD $0xdac002c3 // rbit x3, x22 - WORD $0xdac01063 // clz x3, x3 - WORD $0xcb0a00c4 // sub x4, x6, x10 - WORD $0x8b030083 // add x3, x4, x3 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a83139c // csel x28, x28, x3, ne -LBB0_291: - WORD $0x0a2502c3 // bic w3, w22, w5 - WORD $0x531f7864 // lsl w4, w3, #1 - WORD $0x331f7865 // bfi w5, w3, #1, #31 - WORD $0x0a2402c4 // bic w4, w22, w4 + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x52800073 // mov w19, #3 + WORD $0x17fffea3 // b LBB0_287 $-1396(%rip) +LBB0_366: + WORD $0xb4001094 // cbz x20, LBB0_398 $528(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff0d4 // cbnz x20, LBB0_341 $-488(%rip) + WORD $0x17ffff9c // b LBB0_348 $-400(%rip) +LBB0_368: + WORD $0xb4000f94 // cbz x20, LBB0_398 $496(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffc634 // cbnz x20, LBB0_267 $-1852(%rip) + WORD $0x14000075 // b LBB0_398 $468(%rip) +LBB0_370: + WORD $0xb4000e94 // cbz x20, LBB0_398 $464(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff734 // cbnz x20, LBB0_356 $-284(%rip) + WORD $0x17ffffcf // b LBB0_363 $-196(%rip) +LBB0_372: + WORD $0xb4000d94 // cbz x20, LBB0_398 $432(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffd3d4 // cbnz x20, LBB0_294 $-1416(%rip) + WORD $0x14000065 // b LBB0_398 $404(%rip) +LBB0_374: + WORD $0xdac002b1 // rbit x17, x21 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_375: + WORD $0x0a2502b1 // bic w17, w21, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2402a4 // bic w4, w21, w4 WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa - WORD $0x2b030083 // adds w3, w4, w3 - WORD $0x4a030723 // eor w3, w25, w3, lsl #1 - WORD $0x0a050063 // and w3, w3, w5 + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 WORD $0x1a9f37e5 // cset w5, hs - WORD $0x2a2303e3 // mvn w3, w3 - WORD $0x8a150075 // and x21, x3, x21 - WORD $0x17ffff5b // b LBB0_265 $-660(%rip) -LBB0_292: - WORD $0xb400053e // cbz lr, LBB0_308 $164(%rip) - WORD $0x8b0c00c3 // add x3, x6, x12 - WORD $0xb100079f // cmn x28, #1 - WORD $0x9a9c007c // csel x28, x3, x28, eq - WORD $0x910004c6 // add x6, x6, #1 - WORD $0xd10007de // sub lr, lr, #1 - WORD $0xb5ffedfe // cbnz lr, LBB0_272 $-580(%rip) - WORD $0x14000022 // b LBB0_308 $136(%rip) -LBB0_294: - WORD $0xaa0403fb // mov x27, x4 - WORD $0x17ffffa0 // b LBB0_283 $-384(%rip) -LBB0_295: - WORD $0xaa0403fb // mov x27, x4 - WORD $0x17ffffbb // b LBB0_285 $-276(%rip) -LBB0_296: + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0xb5ffdaf4 // cbnz x20, LBB0_312 $-1188(%rip) +LBB0_376: + WORD $0x9100839c // add x28, x28, #32 + WORD $0xaa0703f4 // mov x20, x7 +LBB0_377: + WORD $0xb50005c5 // cbnz x5, LBB0_388 $184(%rip) + WORD $0xb4000694 // cbz x20, LBB0_390 $208(%rip) +LBB0_379: + WORD $0xaa1c03e7 // mov x7, x28 + WORD $0x384014e5 // ldrb w5, [x7], #1 + WORD $0x710088bf // cmp w5, #34 + WORD $0x54000280 // b.eq LBB0_385 $80(%rip) + WORD $0xd1000691 // sub x17, x20, #1 + WORD $0x710170bf // cmp w5, #92 + WORD $0x540000a0 // b.eq LBB0_382 $20(%rip) + WORD $0xaa0703fc // mov x28, x7 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffef1 // cbnz x17, LBB0_379 $-36(%rip) + WORD $0x14000009 // b LBB0_384 $36(%rip) +LBB0_382: + WORD $0xb4000871 // cbz x17, LBB0_398 $268(%rip) + WORD $0x8b0b00f1 // add x17, x7, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x91000b9c // add x28, x28, #2 + WORD $0xd1000a91 // sub x17, x20, #2 + WORD $0xaa1103f4 // mov x20, x17 + WORD $0xb5fffdd1 // cbnz x17, LBB0_379 $-72(%rip) +LBB0_384: + WORD $0x710088bf // cmp w5, #34 + WORD $0x52800073 // mov w19, #3 + WORD $0x54ffeb00 // b.eq LBB0_348 $-672(%rip) + WORD $0x14000038 // b LBB0_398 $224(%rip) +LBB0_385: + WORD $0xaa0703fc // mov x28, x7 + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff54 // b LBB0_348 $-688(%rip) +LBB0_386: + WORD $0xdac000f1 // rbit x17, x7 + WORD $0xdac01231 // clz x17, x17 + WORD $0xcb090384 // sub x4, x28, x9 + WORD $0x8b110091 // add x17, x4, x17 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a911108 // csel x8, x8, x17, ne +LBB0_387: + WORD $0x0a2500f1 // bic w17, w7, w5 + WORD $0x531f7a24 // lsl w4, w17, #1 + WORD $0x331f7a25 // bfi w5, w17, #1, #31 + WORD $0x0a2400e4 // bic w4, w7, w4 + WORD $0x1201f084 // and w4, w4, #0xaaaaaaaa + WORD $0x2b110091 // adds w17, w4, w17 + WORD $0x4a110711 // eor w17, w24, w17, lsl #1 + WORD $0x0a050231 // and w17, w17, w5 + WORD $0x1a9f37e5 // cset w5, hs + WORD $0x2a3103f1 // mvn w17, w17 + WORD $0x8a140234 // and x20, x17, x20 + WORD $0x17fffeca // b LBB0_317 $-1240(%rip) +LBB0_388: + WORD $0xb4000454 // cbz x20, LBB0_398 $136(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5fff9d4 // cbnz x20, LBB0_379 $-200(%rip) +LBB0_390: + WORD $0x52800073 // mov w19, #3 + WORD $0x17ffff39 // b LBB0_348 $-796(%rip) +LBB0_391: + WORD $0xb4000334 // cbz x20, LBB0_398 $100(%rip) + WORD $0x8b0b0391 // add x17, x28, x11 + WORD $0xb100051f // cmn x8, #1 + WORD $0x9a880228 // csel x8, x17, x8, eq + WORD $0x9100079c // add x28, x28, #1 + WORD $0xd1000694 // sub x20, x20, #1 + WORD $0xb5ffda94 // cbnz x20, LBB0_324 $-1200(%rip) + WORD $0x14000012 // b LBB0_398 $72(%rip) +LBB0_393: WORD $0x92800008 // mov x8, #-1 -LBB0_297: +LBB0_394: WORD $0xaa0803e0 // mov x0, x8 WORD $0xa945fbfd // ldp fp, lr, [sp, #88] WORD $0xa944cff4 // ldp x20, x19, [sp, #72] @@ -1681,156 +2220,140 @@ LBB0_297: WORD $0xa940effc // ldp x28, x27, [sp, #8] WORD $0x9101c3ff // add sp, sp, #112 WORD $0xd65f03c0 // ret -LBB0_298: - WORD $0x9280001b // mov x27, #-1 - WORD $0x1400000a // b LBB0_305 $40(%rip) -LBB0_299: - WORD $0x928000c8 // mov x8, #-7 - WORD $0x17fffff4 // b LBB0_297 $-48(%rip) -LBB0_300: - WORD $0xb100077f // cmn x27, #1 - WORD $0x9a9c0109 // csel x9, x8, x28, eq - WORD $0x14000005 // b LBB0_305 $20(%rip) -LBB0_301: - WORD $0x92800014 // mov x20, #-1 -LBB0_302: - WORD $0xaa3403fb // mvn x27, x20 -LBB0_303: - WORD $0x8b090369 // add x9, x27, x9 -LBB0_304: - WORD $0x9280003b // mov x27, #-2 -LBB0_305: - WORD $0xf9000029 // str x9, [x1] +LBB0_395: + WORD $0x9280001c // mov x28, #-1 WORD $0xaa1b03e8 // mov x8, x27 - WORD $0x17ffffea // b LBB0_297 $-88(%rip) -LBB0_306: + WORD $0x1400000c // b LBB0_403 $48(%rip) +LBB0_396: + WORD $0x928000c8 // mov x8, #-7 + WORD $0x17fffff3 // b LBB0_394 $-52(%rip) +LBB0_397: WORD $0xb100079f // cmn x28, #1 - WORD $0x540000e0 // b.eq LBB0_309 $28(%rip) - WORD $0x9280003b // mov x27, #-2 - WORD $0xaa1c03e9 // mov x9, x28 - WORD $0x17fffff9 // b LBB0_305 $-28(%rip) -LBB0_308: - WORD $0x9280001b // mov x27, #-1 - WORD $0xaa0803e9 // mov x9, x8 - WORD $0x17fffff6 // b LBB0_305 $-40(%rip) -LBB0_309: - WORD $0xdac00068 // rbit x8, x3 + WORD $0x54000101 // b.ne LBB0_403 $32(%rip) +LBB0_398: + WORD $0xf9400408 // ldr x8, [x0, #8] + WORD $0x9280001c // mov x28, #-1 + WORD $0x14000005 // b LBB0_403 $20(%rip) +LBB0_399: + WORD $0x92800015 // mov x21, #-1 +LBB0_400: + WORD $0xaa3503f4 // mvn x20, x21 +LBB0_401: + WORD $0x8b1b0288 // add x8, x20, x27 +LBB0_402: + WORD $0x9280003c // mov x28, #-2 +LBB0_403: + WORD $0xf9000028 // str x8, [x1] + WORD $0xaa1c03e8 // mov x8, x28 + WORD $0x17ffffe7 // b LBB0_394 $-100(%rip) +LBB0_404: + WORD $0xb100051f // cmn x8, #1 + WORD $0x54ffff61 // b.ne LBB0_402 $-20(%rip) + WORD $0xdac00228 // rbit x8, x17 WORD $0xdac01108 // clz x8, x8 - WORD $0x8b1b0109 // add x9, x8, x27 - WORD $0x17fffff1 // b LBB0_304 $-60(%rip) -LBB0_310: - WORD $0xaa0803fb // mov x27, x8 - WORD $0x8b090109 // add x9, x8, x9 - WORD $0x17ffffee // b LBB0_304 $-72(%rip) -LBB0_311: - WORD $0x92800014 // mov x20, #-1 -LBB0_312: - WORD $0xaa3403fc // mvn x28, x20 -LBB0_313: - WORD $0x8b1c0369 // add x9, x27, x28 - WORD $0x17ffffea // b LBB0_304 $-88(%rip) -LBB0_314: + WORD $0x8b1c0108 // add x8, x8, x28 + WORD $0x17fffff7 // b LBB0_402 $-36(%rip) +LBB0_406: + WORD $0x9280001c // mov x28, #-1 + WORD $0x17fffff6 // b LBB0_403 $-40(%rip) +LBB0_407: + WORD $0xaa0803f4 // mov x20, x8 + WORD $0x8b1b0108 // add x8, x8, x27 + WORD $0x17fffff2 // b LBB0_402 $-56(%rip) +LBB0_408: + WORD $0x92800007 // mov x7, #-1 +LBB0_409: + WORD $0xaa2703fe // mvn lr, x7 +LBB0_410: + WORD $0x8b1e0388 // add x8, x28, lr + WORD $0x17ffffee // b LBB0_402 $-72(%rip) +LBB0_411: WORD $0xf900003b // str x27, [x1] - WORD $0x387b6948 // ldrb w8, [x10, x27] - WORD $0x7101851f // cmp w8, #97 - WORD $0x54000761 // b.ne LBB0_328 $236(%rip) - WORD $0x91000928 // add x8, x9, #2 - WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] - WORD $0x7101b11f // cmp w8, #108 - WORD $0x540006c1 // b.ne LBB0_328 $216(%rip) - WORD $0x91000d28 // add x8, x9, #3 - WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] - WORD $0x7101cd1f // cmp w8, #115 - WORD $0x54000621 // b.ne LBB0_328 $196(%rip) - WORD $0x91001128 // add x8, x9, #4 - WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] - WORD $0x7101951f // cmp w8, #101 - WORD $0x54000581 // b.ne LBB0_328 $176(%rip) - WORD $0x91001529 // add x9, x9, #5 - WORD $0x17ffffd5 // b LBB0_304 $-172(%rip) -LBB0_319: - WORD $0xf9000029 // str x9, [x1] - WORD $0x39400388 // ldrb w8, [x28] + WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7101b91f // cmp w8, #110 - WORD $0x540004c1 // b.ne LBB0_328 $152(%rip) - WORD $0x91000528 // add x8, x9, #1 + WORD $0x54000761 // b.ne LBB0_425 $236(%rip) + WORD $0x91000768 // add x8, x27, #1 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101d51f // cmp w8, #117 - WORD $0x54000421 // b.ne LBB0_328 $132(%rip) - WORD $0x91000928 // add x8, x9, #2 + WORD $0x540006c1 // b.ne LBB0_425 $216(%rip) + WORD $0x91000b68 // add x8, x27, #2 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101b11f // cmp w8, #108 - WORD $0x54000381 // b.ne LBB0_328 $112(%rip) - WORD $0x91000d28 // add x8, x9, #3 + WORD $0x54000621 // b.ne LBB0_425 $196(%rip) + WORD $0x91000f68 // add x8, x27, #3 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101b11f // cmp w8, #108 - WORD $0x540002e1 // b.ne LBB0_328 $92(%rip) - WORD $0x14000014 // b LBB0_327 $80(%rip) -LBB0_323: - WORD $0xf9000029 // str x9, [x1] - WORD $0x39400388 // ldrb w8, [x28] + WORD $0x54000581 // b.ne LBB0_425 $176(%rip) + WORD $0x14000014 // b LBB0_419 $80(%rip) +LBB0_415: + WORD $0xf900003b // str x27, [x1] + WORD $0x394003c8 // ldrb w8, [lr] WORD $0x7101d11f // cmp w8, #116 - WORD $0x54000241 // b.ne LBB0_328 $72(%rip) - WORD $0x91000528 // add x8, x9, #1 + WORD $0x540004e1 // b.ne LBB0_425 $156(%rip) + WORD $0x91000768 // add x8, x27, #1 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101c91f // cmp w8, #114 - WORD $0x540001a1 // b.ne LBB0_328 $52(%rip) - WORD $0x91000928 // add x8, x9, #2 + WORD $0x54000441 // b.ne LBB0_425 $136(%rip) + WORD $0x91000b68 // add x8, x27, #2 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101d51f // cmp w8, #117 - WORD $0x54000101 // b.ne LBB0_328 $32(%rip) - WORD $0x91000d28 // add x8, x9, #3 + WORD $0x540003a1 // b.ne LBB0_425 $116(%rip) + WORD $0x91000f68 // add x8, x27, #3 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101951f // cmp w8, #101 + WORD $0x54000301 // b.ne LBB0_425 $96(%rip) +LBB0_419: + WORD $0x91001368 // add x8, x27, #4 + WORD $0x17ffffc5 // b LBB0_402 $-236(%rip) +LBB0_420: + WORD $0xf900003c // str x28, [x1] + WORD $0x387c6928 // ldrb w8, [x9, x28] + WORD $0x7101851f // cmp w8, #97 + WORD $0x54000241 // b.ne LBB0_425 $72(%rip) + WORD $0x91000b68 // add x8, x27, #2 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101b11f // cmp w8, #108 + WORD $0x540001a1 // b.ne LBB0_425 $52(%rip) + WORD $0x91000f68 // add x8, x27, #3 WORD $0xf9000028 // str x8, [x1] - WORD $0x38686948 // ldrb w8, [x10, x8] + WORD $0x38686928 // ldrb w8, [x9, x8] + WORD $0x7101cd1f // cmp w8, #115 + WORD $0x54000101 // b.ne LBB0_425 $32(%rip) + WORD $0x91001368 // add x8, x27, #4 + WORD $0xf9000028 // str x8, [x1] + WORD $0x38686928 // ldrb w8, [x9, x8] WORD $0x7101951f // cmp w8, #101 - WORD $0x54000061 // b.ne LBB0_328 $12(%rip) -LBB0_327: - WORD $0x91001129 // add x9, x9, #4 - WORD $0x17ffffac // b LBB0_304 $-336(%rip) -LBB0_328: + WORD $0x54000061 // b.ne LBB0_425 $12(%rip) + WORD $0x91001768 // add x8, x27, #5 + WORD $0x17ffffb0 // b LBB0_402 $-320(%rip) +LBB0_425: WORD $0x92800028 // mov x8, #-2 - WORD $0x17ffff97 // b LBB0_297 $-420(%rip) -LBB0_329: - WORD $0xaa0503fc // mov x28, x5 - WORD $0x8b050369 // add x9, x27, x5 - WORD $0x17ffffa7 // b LBB0_304 $-356(%rip) -LBB0_330: - WORD $0xaa1b03e9 // mov x9, x27 - WORD $0x9280001b // mov x27, #-1 - WORD $0x17ffffa5 // b LBB0_305 $-364(%rip) -LBB0_331: - WORD $0x8b1b0069 // add x9, x3, x27 - WORD $0x17ffffa2 // b LBB0_304 $-376(%rip) -LBB0_332: - WORD $0xaa0803e9 // mov x9, x8 - WORD $0x17ffffa1 // b LBB0_305 $-380(%rip) -LBB0_333: - WORD $0x8b0300a9 // add x9, x5, x3 - WORD $0x17ffff9e // b LBB0_304 $-392(%rip) -LBB0_334: - WORD $0xcb0a0088 // sub x8, x4, x10 - WORD $0x8b030109 // add x9, x8, x3 - WORD $0x17ffff9b // b LBB0_304 $-404(%rip) -LBB0_335: - WORD $0xcb0a0088 // sub x8, x4, x10 - WORD $0x8b050109 // add x9, x8, x5 - WORD $0x17ffff98 // b LBB0_304 $-416(%rip) -LBB0_336: - WORD $0xcb0a00c8 // sub x8, x6, x10 - WORD $0x8b030109 // add x9, x8, x3 - WORD $0x17ffff95 // b LBB0_304 $-428(%rip) -LBB0_337: - WORD $0xcb0a00c8 // sub x8, x6, x10 - WORD $0x8b050109 // add x9, x8, x5 - WORD $0x17ffff92 // b LBB0_304 $-440(%rip) + WORD $0x17ffff98 // b LBB0_394 $-416(%rip) +LBB0_426: + WORD $0xaa1403fe // mov lr, x20 + WORD $0x8b140388 // add x8, x28, x20 + WORD $0x17ffffab // b LBB0_402 $-340(%rip) +LBB0_427: + WORD $0x8b1c0228 // add x8, x17, x28 + WORD $0x17ffffa9 // b LBB0_402 $-348(%rip) +LBB0_428: + WORD $0x8b1100a8 // add x8, x5, x17 + WORD $0x17ffffa7 // b LBB0_402 $-356(%rip) +LBB0_429: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b110108 // add x8, x8, x17 + WORD $0x17ffffa4 // b LBB0_402 $-368(%rip) +LBB0_430: + WORD $0xcb090388 // sub x8, x28, x9 + WORD $0x8b050108 // add x8, x8, x5 + WORD $0x17ffffa1 // b LBB0_402 $-380(%rip) // .p2align 2, 0x00 _MASK_USE_NUMBER: WORD $0x00000002 // .long 2 diff --git a/vendor/github.com/bytedance/sonic/internal/native/quote.tmpl b/vendor/github.com/bytedance/sonic/internal/native/quote.tmpl new file mode 100644 index 000000000..62af46169 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/quote.tmpl @@ -0,0 +1,35 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) +var F_quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + +var S_quote uintptr + +//go:nosplit +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return F_quote(rt.NoEscape(sp), nb, rt.NoEscape(dp), rt.NoEscape(unsafe.Pointer(dn)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl index b8aeb38cf..ae1040133 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/recover_test.tmpl @@ -1,12 +1,17 @@ +//go:build amd64 +// +build amd64 + +// Code generated by Makefile, DO NOT EDIT. + /** * Copyright 2023 ByteDance Inc. - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,189 +22,163 @@ package {{PACKAGE}} import ( - `os` - `runtime` - `runtime/debug` - `testing` - `time` - `unsafe` + `os` + `runtime` + `runtime/debug` + `testing` + `time` + `unsafe` - `github.com/bytedance/sonic/internal/native/types` - `github.com/bytedance/sonic/loader` + `github.com/bytedance/sonic/internal/native/types` ) var ( - debugAsyncGC = os.Getenv("SONIC_NO_ASYNC_GC") == "" + debugAsyncGC = os.Getenv("SONIC_NO_ASYNC_GC") == "" ) -var stubs = []loader.GoC{ - {"_f32toa", nil, &__f32toa}, - {"_f64toa", nil, &__f64toa}, - {"_get_by_path", nil, &__get_by_path}, - {"_html_escape", nil, &__html_escape}, - {"_i64toa", nil, &__i64toa}, - {"_lspace", nil, &__lspace}, - {"_quote", nil, &__quote}, - {"_skip_array", nil, &__skip_array}, - {"_skip_number", nil, &__skip_number}, - {"_skip_object", nil, &__skip_object}, - {"_skip_one", nil, &__skip_one}, - {"_skip_one_fast", nil, &__skip_one_fast}, - {"_u64toa", nil, &__u64toa}, - {"_unquote", nil, &__unquote}, - {"_validate_one", nil, &__validate_one}, - {"_validate_utf8", nil, &__validate_utf8}, - {"_validate_utf8_fast", nil, &__validate_utf8_fast}, - {"_value", nil, &__value}, - {"_vnumber", nil, &__vnumber}, - {"_vsigned", nil, &__vsigned}, - {"_vstring", nil, &__vstring}, - {"_vunsigned", nil, &__vunsigned}, -} - func TestMain(m *testing.M) { - loader.WrapGoC(Text__native_entry__, Funcs, stubs, "{{PACKAGE}}", "{{PACKAGE}}/native.c") - - go func () { - if !debugAsyncGC { - return - } - println("Begin GC looping...") - for { - runtime.GC() - debug.FreeOSMemory() - } - println("stop GC looping!") - }() - time.Sleep(time.Millisecond*100) - m.Run() + Use() + + go func () { + if !debugAsyncGC { + return + } + println("Begin GC looping...") + for { + runtime.GC() + debug.FreeOSMemory() + } + println("stop GC looping!") + }() + time.Sleep(time.Millisecond*100) + m.Run() } func TestRecover_f64toa(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = f64toa(nil, 123) + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = f64toa(nil, 123) } func TestRecover_f32toa(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = f32toa(nil, 123) + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = f32toa(nil, 123) } func TestRecover_i64toa(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = i64toa(nil, 123) + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = i64toa(nil, 123) } func TestRecover_u64toa(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = u64toa(nil, 123) + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = u64toa(nil, 123) } func TestRecover_lspace(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = lspace(nil, 2, 0) + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = lspace(nil, 2, 0) } func TestRecover_quote(t *testing.T) { - var dn = 10 - var dp = make([]byte, dn) - var sp = []byte("123") - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = quote(nil, 3, unsafe.Pointer(&dp[0]), &dn, 0) - }) - t.Run("dp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = quote(unsafe.Pointer(&sp[0]), 3, nil, &dn, 0) - }) - t.Run("dn", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = quote(unsafe.Pointer(&sp[0]), 3, unsafe.Pointer(&dp[0]), nil, 0) - }) + var dn = 10 + var dp = make([]byte, dn) + var sp = []byte("123") + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = quote(nil, 3, unsafe.Pointer(&dp[0]), &dn, 0) + }) + t.Run("dp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = quote(unsafe.Pointer(&sp[0]), 3, nil, &dn, 0) + }) + t.Run("dn", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = quote(unsafe.Pointer(&sp[0]), 3, unsafe.Pointer(&dp[0]), nil, 0) + }) } func TestRecover_html_escape(t *testing.T) { - var dn = 10 - var dp = make([]byte, dn) - var sp = []byte("123") - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = html_escape(nil, 3, unsafe.Pointer(&dp[0]), &dn) - }) - t.Run("dp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = html_escape(unsafe.Pointer(&sp[0]), 3, nil, &dn) - }) - t.Run("dn", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = html_escape(unsafe.Pointer(&sp[0]), 3, unsafe.Pointer(&dp[0]), nil) - }) + var dn = 10 + var dp = make([]byte, dn) + var sp = []byte("123") + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = html_escape(nil, 3, unsafe.Pointer(&dp[0]), &dn) + }) + t.Run("dp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = html_escape(unsafe.Pointer(&sp[0]), 3, nil, &dn) + }) + t.Run("dn", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = html_escape(unsafe.Pointer(&sp[0]), 3, unsafe.Pointer(&dp[0]), nil) + }) } func TestRecover_unquote(t *testing.T) { @@ -239,458 +218,448 @@ func TestRecover_unquote(t *testing.T) { } func TestRecover_value(t *testing.T) { - var v = new(types.JsonState) - var sp = []byte("123") - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = value(nil, 3, 0, v, 0) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = value(unsafe.Pointer(&sp[0]), 3, 0, nil, 0) - }) + var v = new(types.JsonState) + var sp = []byte("123") + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = value(nil, 3, 0, v, 0) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = value(unsafe.Pointer(&sp[0]), 3, 0, nil, 0) + }) } func TestRecover_vstring(t *testing.T) { - var v = new(types.JsonState) - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vstring(nil, &p, v, 0) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vstring(&sp, nil, v, 0) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vstring(&sp, &p, nil, 0) - }) + var v = new(types.JsonState) + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vstring(nil, &p, v, 0) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vstring(&sp, nil, v, 0) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vstring(&sp, &p, nil, 0) + }) } func TestRecover_vnumber(t *testing.T) { - var v = new(types.JsonState) - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vnumber(nil, &p, v) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vnumber(&sp, nil, v) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vnumber(&sp, &p, nil) - }) + var v = new(types.JsonState) + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vnumber(nil, &p, v) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vnumber(&sp, nil, v) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vnumber(&sp, &p, nil) + }) } func TestRecover_vsigned(t *testing.T) { - var v = new(types.JsonState) - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vsigned(nil, &p, v) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vsigned(&sp, nil, v) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vsigned(&sp, &p, nil) - }) + var v = new(types.JsonState) + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vsigned(nil, &p, v) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vsigned(&sp, nil, v) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vsigned(&sp, &p, nil) + }) } func TestRecover_vunsigned(t *testing.T) { - var v = new(types.JsonState) - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vunsigned(nil, &p, v) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vunsigned(&sp, nil, v) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - vunsigned(&sp, &p, nil) - }) + var v = new(types.JsonState) + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vunsigned(nil, &p, v) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vunsigned(&sp, nil, v) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + vunsigned(&sp, &p, nil) + }) } func TestRecover_skip_one(t *testing.T) { - var v = types.NewStateMachine() - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_one(nil, &p, v, 0) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_one(&sp, nil, v, 0) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_one(&sp, &p, nil, 0) - }) + var v = types.NewStateMachine() + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_one(nil, &p, v, 0) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_one(&sp, nil, v, 0) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_one(&sp, &p, nil, 0) + }) } func TestRecover_skip_one_fast(t *testing.T) { - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_one_fast(nil, &p) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_one_fast(&sp, nil) - }) + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_one_fast(nil, &p) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_one_fast(&sp, nil) + }) } func TestRecover_skip_array(t *testing.T) { - var v = types.NewStateMachine() - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_array(nil, &p, v, 0) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_array(&sp, nil, v, 0) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_array(&sp, &p, nil, 0) - }) + var v = types.NewStateMachine() + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_array(nil, &p, v, 0) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_array(&sp, nil, v, 0) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_array(&sp, &p, nil, 0) + }) } func TestRecover_skip_object(t *testing.T) { - var v = types.NewStateMachine() - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_object(nil, &p, v, 0) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_object(&sp, nil, v, 0) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_object(&sp, &p, nil, 0) - }) + var v = types.NewStateMachine() + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_object(nil, &p, v, 0) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_object(&sp, nil, v, 0) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_object(&sp, &p, nil, 0) + }) } func TestRecover_skip_number(t *testing.T) { - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_number(nil, &p) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = skip_number(&sp, nil) - }) + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_number(nil, &p) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = skip_number(&sp, nil) + }) } func TestRecover_get_by_path(t *testing.T) { - var v = []interface{}{} - var sp = "123" - var p = 0 - var m = types.NewStateMachine() - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = get_by_path(nil, &p, &v, m) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = get_by_path(&sp, nil, &v, m) - }) - t.Run("path", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = get_by_path(&sp, &p, nil, m) - }) - t.Run("m", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = get_by_path(&sp, &p, &v, nil) - }) + var v = []interface{}{} + var sp = "123" + var p = 0 + var m = types.NewStateMachine() + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = get_by_path(nil, &p, &v, m) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = get_by_path(&sp, nil, &v, m) + }) + t.Run("path", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = get_by_path(&sp, &p, nil, m) + }) } func TestRecover_validate_one(t *testing.T) { - var v = types.NewStateMachine() - var sp = "123" - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_one(nil, &p, v) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_one(&sp, nil, v) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_one(&sp, &p, nil) - }) + var v = types.NewStateMachine() + var sp = "123" + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_one(nil, &p, v, 0) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_one(&sp, nil, v, 0) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_one(&sp, &p, nil, 0) + }) } func TestRecover_validate_utf8(t *testing.T) { - var v = types.NewStateMachine() - var sp = string([]byte{0xff, 0xff, 0xff}) - var p = 0 - t.Run("sp", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_utf8(nil, &p, v) - }) - t.Run("p", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_utf8(&sp, nil, v) - }) - t.Run("v", func(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_utf8(&sp, &p, nil) - }) + var v = types.NewStateMachine() + var sp = string([]byte{0xff, 0xff, 0xff}) + var p = 0 + t.Run("sp", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_utf8(nil, &p, v) + }) + t.Run("p", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_utf8(&sp, nil, v) + }) + t.Run("v", func(t *testing.T) { + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_utf8(&sp, &p, nil) + }) } func TestRecover_validate_utf8_fast(t *testing.T) { - defer func() { - if r := recover(); r!= nil { - t.Log("recover: ", r) - } else { - t.Fatal("no panic") - } - }() - _ = validate_utf8_fast(nil) + defer func() { + if r := recover(); r!= nil { + t.Log("recover: ", r) + } else { + t.Fatal("no panic") + } + }() + _ = validate_utf8_fast(nil) } diff --git a/vendor/github.com/bytedance/sonic/internal/native/skip_array.tmpl b/vendor/github.com/bytedance/sonic/internal/native/skip_array.tmpl new file mode 100644 index 000000000..6b12a0865 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/skip_array.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_array uintptr + +//go:nosplit +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/skip_number.tmpl b/vendor/github.com/bytedance/sonic/internal/native/skip_number.tmpl new file mode 100644 index 000000000..9a575339f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/skip_number.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_number uintptr + +//go:nosplit +func skip_number(s *string, p *int) (ret int) { + return F_skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/skip_object.tmpl b/vendor/github.com/bytedance/sonic/internal/native/skip_object.tmpl new file mode 100644 index 000000000..dd776e47b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/skip_object.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_object uintptr + +//go:nosplit +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/skip_one.tmpl b/vendor/github.com/bytedance/sonic/internal/native/skip_one.tmpl new file mode 100644 index 000000000..fbeec3be7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/skip_one.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_one uintptr + +//go:nosplit +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/skip_one_fast.tmpl b/vendor/github.com/bytedance/sonic/internal/native/skip_one_fast.tmpl new file mode 100644 index 000000000..2f94b9eaf --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/skip_one_fast.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_one_fast uintptr + +//go:nosplit +func skip_one_fast(s *string, p *int) (ret int) { + return F_skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa.go b/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa.go new file mode 100644 index 000000000..40d31978e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f32toa func(out *byte, val float32) (ret int) + +var S_f32toa uintptr + +//go:nosplit +func f32toa(out *byte, val float32) (ret int) { + return F_f32toa((*byte)(rt.NoEscape(unsafe.Pointer(out))), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_subr.go new file mode 100644 index 000000000..ab181b41e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_subr.go @@ -0,0 +1,44 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__f32toa = 16 +) + +const ( + _stack__f32toa = 48 +) + +const ( + _size__f32toa = 3328 +) + +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}, + } +) + +var _cfunc_f32toa = []loader.CFunc{ + {"_f32toa_entry", 0, _entry__f32toa, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_text_amd64.go new file mode 100644 index 000000000..dac13a656 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/f32toa_text_amd64.go @@ -0,0 +1,956 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_f32toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000010 .p2align 4, 0x90 + //0x00000010 _f32toa + 0x55, //0x00000010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp + 0x41, 0x57, //0x00000014 pushq %r15 + 0x41, 0x56, //0x00000016 pushq %r14 + 0x41, 0x55, //0x00000018 pushq %r13 + 0x41, 0x54, //0x0000001a pushq %r12 + 0x53, //0x0000001c pushq %rbx + 0x66, 0x0f, 0x7e, 0xc0, //0x0000001d movd %xmm0, %eax + 0x89, 0xc1, //0x00000021 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00000023 shrl $23, %ecx + 0x0f, 0xb6, 0xd9, //0x00000026 movzbl %cl, %ebx + 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00000029 cmpl $255, %ebx + 0x0f, 0x84, 0xbc, 0x0c, 0x00, 0x00, //0x0000002f je LBB0_139 + 0xc6, 0x07, 0x2d, //0x00000035 movb $45, (%rdi) + 0x41, 0x89, 0xc1, //0x00000038 movl %eax, %r9d + 0x41, 0xc1, 0xe9, 0x1f, //0x0000003b shrl $31, %r9d + 0x4e, 0x8d, 0x04, 0x0f, //0x0000003f leaq (%rdi,%r9), %r8 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00000043 testl $2147483647, %eax + 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00000048 je LBB0_14 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x0000004e andl $8388607, %eax + 0x85, 0xdb, //0x00000053 testl %ebx, %ebx + 0x0f, 0x84, 0x9e, 0x0c, 0x00, 0x00, //0x00000055 je LBB0_140 + 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x0000005b leal $8388608(%rax), %esi + 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00000061 leal $-150(%rbx), %r15d + 0x8d, 0x4b, 0x81, //0x00000068 leal $-127(%rbx), %ecx + 0x83, 0xf9, 0x17, //0x0000006b cmpl $23, %ecx + 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x0000006e ja LBB0_5 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00000074 movl $150, %ecx + 0x29, 0xd9, //0x00000079 subl %ebx, %ecx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000007b movq $-1, %rdx + 0x48, 0xd3, 0xe2, //0x00000082 shlq %cl, %rdx + 0xf7, 0xd2, //0x00000085 notl %edx + 0x85, 0xf2, //0x00000087 testl %esi, %edx + 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00000089 je LBB0_32 + //0x0000008f LBB0_5 + 0x41, 0x89, 0xf6, //0x0000008f movl %esi, %r14d + 0x41, 0x83, 0xe6, 0x01, //0x00000092 andl $1, %r14d + 0x85, 0xc0, //0x00000096 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x00000098 sete %al + 0x83, 0xfb, 0x01, //0x0000009b cmpl $1, %ebx + 0x0f, 0x97, 0xc1, //0x0000009e seta %cl + 0x20, 0xc1, //0x000000a1 andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000000a3 movzbl %cl, %ecx + 0x41, 0x89, 0xf2, //0x000000a6 movl %esi, %r10d + 0x41, 0xc1, 0xe2, 0x02, //0x000000a9 shll $2, %r10d + 0x8d, 0x44, 0xb1, 0xfe, //0x000000ad leal $-2(%rcx,%rsi,4), %eax + 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x000000b1 imull $1262611, %r15d, %r11d + 0x31, 0xd2, //0x000000b8 xorl %edx, %edx + 0x84, 0xc9, //0x000000ba testb %cl, %cl + 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x000000bc movl $524031, %ecx + 0x0f, 0x44, 0xca, //0x000000c1 cmovel %edx, %ecx + 0x41, 0x29, 0xcb, //0x000000c4 subl %ecx, %r11d + 0x41, 0xc1, 0xfb, 0x16, //0x000000c7 sarl $22, %r11d + 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x000000cb imull $-1741647, %r11d, %ecx + 0xc1, 0xe9, 0x13, //0x000000d2 shrl $19, %ecx + 0x44, 0x01, 0xf9, //0x000000d5 addl %r15d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x000000d8 movl $31, %edx + 0x44, 0x29, 0xda, //0x000000dd subl %r11d, %edx + 0x48, 0x63, 0xd2, //0x000000e0 movslq %edx, %rdx + 0x48, 0x8d, 0x1d, 0xf6, 0x0c, 0x00, 0x00, //0x000000e3 leaq $3318(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0xfe, 0xc1, //0x000000ea incb %cl + 0xd3, 0xe0, //0x000000ec shll %cl, %eax + 0x4c, 0x8b, 0x24, 0xd3, //0x000000ee movq (%rbx,%rdx,8), %r12 + 0x49, 0xf7, 0xe4, //0x000000f2 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x000000f5 shrq $32, %rax + 0x31, 0xdb, //0x000000f9 xorl %ebx, %ebx + 0x83, 0xf8, 0x01, //0x000000fb cmpl $1, %eax + 0x0f, 0x97, 0xc3, //0x000000fe seta %bl + 0x41, 0xd3, 0xe2, //0x00000101 shll %cl, %r10d + 0x09, 0xd3, //0x00000104 orl %edx, %ebx + 0x4c, 0x89, 0xd0, //0x00000106 movq %r10, %rax + 0x49, 0xf7, 0xe4, //0x00000109 mulq %r12 + 0x49, 0x89, 0xd2, //0x0000010c movq %rdx, %r10 + 0x48, 0xc1, 0xe8, 0x20, //0x0000010f shrq $32, %rax + 0x45, 0x31, 0xff, //0x00000113 xorl %r15d, %r15d + 0x83, 0xf8, 0x01, //0x00000116 cmpl $1, %eax + 0x41, 0x0f, 0x97, 0xc7, //0x00000119 seta %r15b + 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x0000011d leal $2(,%rsi,4), %eax + 0xd3, 0xe0, //0x00000124 shll %cl, %eax + 0x45, 0x09, 0xd7, //0x00000126 orl %r10d, %r15d + 0x49, 0xf7, 0xe4, //0x00000129 mulq %r12 + 0x48, 0xc1, 0xe8, 0x20, //0x0000012c shrq $32, %rax + 0x31, 0xc9, //0x00000130 xorl %ecx, %ecx + 0x83, 0xf8, 0x01, //0x00000132 cmpl $1, %eax + 0x0f, 0x97, 0xc1, //0x00000135 seta %cl + 0x09, 0xd1, //0x00000138 orl %edx, %ecx + 0x44, 0x01, 0xf3, //0x0000013a addl %r14d, %ebx + 0x44, 0x29, 0xf1, //0x0000013d subl %r14d, %ecx + 0x41, 0x83, 0xff, 0x28, //0x00000140 cmpl $40, %r15d + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00000144 jb LBB0_12 + 0x44, 0x89, 0xd2, //0x0000014a movl %r10d, %edx + 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000014d movl $3435973837, %eax + 0x48, 0x0f, 0xaf, 0xc2, //0x00000152 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000156 shrq $37, %rax + 0x41, 0x89, 0xde, //0x0000015a movl %ebx, %r14d + 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x0000015d leaq (,%rax,8), %rsi + 0x48, 0x8d, 0x14, 0xb6, //0x00000165 leaq (%rsi,%rsi,4), %rdx + 0x4c, 0x39, 0xf2, //0x00000169 cmpq %r14, %rdx + 0x41, 0x0f, 0x93, 0xc4, //0x0000016c setae %r12b + 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00000170 leaq $40(%rsi,%rsi,4), %r14 + 0x89, 0xce, //0x00000175 movl %ecx, %esi + 0x49, 0x39, 0xf6, //0x00000177 cmpq %rsi, %r14 + 0x0f, 0x96, 0xc2, //0x0000017a setbe %dl + 0x41, 0x38, 0xd4, //0x0000017d cmpb %dl, %r12b + 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00000180 je LBB0_12 + 0x45, 0x31, 0xed, //0x00000186 xorl %r13d, %r13d + 0x49, 0x39, 0xf6, //0x00000189 cmpq %rsi, %r14 + 0x41, 0x0f, 0x96, 0xc5, //0x0000018c setbe %r13b + 0x41, 0x01, 0xc5, //0x00000190 addl %eax, %r13d + 0x41, 0xff, 0xc3, //0x00000193 incl %r11d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00000196 cmpl $100000, %r13d + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x0000019d jae LBB0_18 + //0x000001a3 LBB0_8 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000001a3 movl $1, %eax + 0x41, 0x83, 0xfd, 0x0a, //0x000001a8 cmpl $10, %r13d + 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x000001ac jb LBB0_22 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000001b2 movl $2, %eax + 0x41, 0x83, 0xfd, 0x64, //0x000001b7 cmpl $100, %r13d + 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x000001bb jb LBB0_22 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000001c1 movl $3, %eax + 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x000001c6 cmpl $1000, %r13d + 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x000001cd jb LBB0_22 + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000001d3 cmpl $10000, %r13d + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x000001da movl $5, %eax + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x000001df jmp LBB0_21 + //0x000001e4 LBB0_12 + 0x4d, 0x89, 0xd6, //0x000001e4 movq %r10, %r14 + 0x49, 0xc1, 0xee, 0x02, //0x000001e7 shrq $2, %r14 + 0x44, 0x89, 0xd6, //0x000001eb movl %r10d, %esi + 0x83, 0xe6, 0xfc, //0x000001ee andl $-4, %esi + 0x39, 0xf3, //0x000001f1 cmpl %esi, %ebx + 0x0f, 0x96, 0xc2, //0x000001f3 setbe %dl + 0x8d, 0x5e, 0x04, //0x000001f6 leal $4(%rsi), %ebx + 0x39, 0xcb, //0x000001f9 cmpl %ecx, %ebx + 0x0f, 0x96, 0xc0, //0x000001fb setbe %al + 0x38, 0xc2, //0x000001fe cmpb %al, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00000200 je LBB0_15 + 0x45, 0x31, 0xed, //0x00000206 xorl %r13d, %r13d + 0x39, 0xcb, //0x00000209 cmpl %ecx, %ebx + 0x41, 0x0f, 0x96, 0xc5, //0x0000020b setbe %r13b + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000020f jmp LBB0_17 + //0x00000214 LBB0_14 + 0x41, 0xc6, 0x00, 0x30, //0x00000214 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x00000218 subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x0000021b incl %r8d + 0xe9, 0xc0, 0x0a, 0x00, 0x00, //0x0000021e jmp LBB0_138 + //0x00000223 LBB0_15 + 0x83, 0xce, 0x02, //0x00000223 orl $2, %esi + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00000226 movl $1, %r13d + 0x41, 0x39, 0xf7, //0x0000022c cmpl %esi, %r15d + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000022f ja LBB0_17 + 0x0f, 0x94, 0xc0, //0x00000235 sete %al + 0x41, 0xc0, 0xea, 0x02, //0x00000238 shrb $2, %r10b + 0x41, 0x20, 0xc2, //0x0000023c andb %al, %r10b + 0x45, 0x0f, 0xb6, 0xea, //0x0000023f movzbl %r10b, %r13d + //0x00000243 LBB0_17 + 0x45, 0x01, 0xf5, //0x00000243 addl %r14d, %r13d + 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00000246 cmpl $100000, %r13d + 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x0000024d jb LBB0_8 + //0x00000253 LBB0_18 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00000253 movl $6, %eax + 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00000258 cmpl $1000000, %r13d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000025f jb LBB0_22 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00000265 movl $7, %eax + 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x0000026a cmpl $10000000, %r13d + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000271 jb LBB0_22 + 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00000277 cmpl $100000000, %r13d + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x0000027e movl $9, %eax + //0x00000283 LBB0_21 + 0x83, 0xd8, 0x00, //0x00000283 sbbl $0, %eax + //0x00000286 LBB0_22 + 0x46, 0x8d, 0x14, 0x18, //0x00000286 leal (%rax,%r11), %r10d + 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x0000028a leal $5(%rax,%r11), %ecx + 0x83, 0xf9, 0x1b, //0x0000028f cmpl $27, %ecx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00000292 jb LBB0_26 + 0x89, 0xc0, //0x00000298 movl %eax, %eax + 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x0000029a leaq $1(%r8,%rax), %rbx + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x0000029f cmpl $10000, %r13d + 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x000002a6 jb LBB0_30 + 0x44, 0x89, 0xe8, //0x000002ac movl %r13d, %eax + 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x000002af movl $3518437209, %r14d + 0x4c, 0x0f, 0xaf, 0xf0, //0x000002b5 imulq %rax, %r14 + 0x49, 0xc1, 0xee, 0x2d, //0x000002b9 shrq $45, %r14 + 0x41, 0x69, 0xc6, 0xf0, 0xd8, 0xff, 0xff, //0x000002bd imull $-10000, %r14d, %eax + 0x44, 0x01, 0xe8, //0x000002c4 addl %r13d, %eax + 0x0f, 0x84, 0xa3, 0x04, 0x00, 0x00, //0x000002c7 je LBB0_62 + 0x89, 0xc1, //0x000002cd movl %eax, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000002cf imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000002d6 shrq $37, %rcx + 0x6b, 0xd1, 0x64, //0x000002da imull $100, %ecx, %edx + 0x29, 0xd0, //0x000002dd subl %edx, %eax + 0x48, 0x8d, 0x15, 0x2a, 0x0a, 0x00, 0x00, //0x000002df leaq $2602(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x42, //0x000002e6 movzwl (%rdx,%rax,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x000002ea movw %ax, $-2(%rbx) + 0x0f, 0xb7, 0x04, 0x4a, //0x000002ee movzwl (%rdx,%rcx,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x000002f2 movw %ax, $-4(%rbx) + 0x45, 0x31, 0xc9, //0x000002f6 xorl %r9d, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x000002f9 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfe, 0x64, //0x000002fd cmpl $100, %r14d + 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00000301 jae LBB0_64 + //0x00000307 LBB0_31 + 0x44, 0x89, 0xf2, //0x00000307 movl %r14d, %edx + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x0000030a jmp LBB0_66 + //0x0000030f LBB0_26 + 0x41, 0x89, 0xc4, //0x0000030f movl %eax, %r12d + 0x45, 0x85, 0xdb, //0x00000312 testl %r11d, %r11d + 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00000315 js LBB0_38 + 0x4b, 0x8d, 0x34, 0x20, //0x0000031b leaq (%r8,%r12), %rsi + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x0000031f cmpl $10000, %r13d + 0x0f, 0x82, 0xa8, 0x02, 0x00, 0x00, //0x00000326 jb LBB0_43 + 0x44, 0x89, 0xe8, //0x0000032c movl %r13d, %eax + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x0000032f movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xc8, //0x00000334 imulq %rax, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000338 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x0000033c imull $-10000, %ecx, %eax + 0x44, 0x01, 0xe8, //0x00000342 addl %r13d, %eax + 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00000345 imulq $1374389535, %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x0000034c shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x00000350 imull $100, %edx, %ebx + 0x29, 0xd8, //0x00000353 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0xb4, 0x09, 0x00, 0x00, //0x00000355 leaq $2484(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x0000035c movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x46, 0xfe, //0x00000360 movw %ax, $-2(%rsi) + 0x48, 0x8d, 0x46, 0xfc, //0x00000364 leaq $-4(%rsi), %rax + 0x0f, 0xb7, 0x14, 0x53, //0x00000368 movzwl (%rbx,%rdx,2), %edx + 0x66, 0x89, 0x56, 0xfc, //0x0000036c movw %dx, $-4(%rsi) + 0x41, 0x89, 0xcd, //0x00000370 movl %ecx, %r13d + 0x41, 0x83, 0xfd, 0x64, //0x00000373 cmpl $100, %r13d + 0x0f, 0x83, 0x64, 0x02, 0x00, 0x00, //0x00000377 jae LBB0_44 + //0x0000037d LBB0_29 + 0x44, 0x89, 0xe9, //0x0000037d movl %r13d, %ecx + 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00000380 jmp LBB0_46 + //0x00000385 LBB0_30 + 0x45, 0x31, 0xc9, //0x00000385 xorl %r9d, %r9d + 0x48, 0x89, 0xd9, //0x00000388 movq %rbx, %rcx + 0x45, 0x89, 0xee, //0x0000038b movl %r13d, %r14d + 0x41, 0x83, 0xfe, 0x64, //0x0000038e cmpl $100, %r14d + 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00000392 jb LBB0_31 + //0x00000398 LBB0_64 + 0x48, 0xff, 0xc9, //0x00000398 decq %rcx + 0x4c, 0x8d, 0x1d, 0x6e, 0x09, 0x00, 0x00, //0x0000039b leaq $2414(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003a2 .p2align 4, 0x90 + //0x000003b0 LBB0_65 + 0x44, 0x89, 0xf2, //0x000003b0 movl %r14d, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x000003b3 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000003ba shrq $37, %rdx + 0x6b, 0xc2, 0x64, //0x000003be imull $100, %edx, %eax + 0x44, 0x89, 0xf6, //0x000003c1 movl %r14d, %esi + 0x29, 0xc6, //0x000003c4 subl %eax, %esi + 0x41, 0x0f, 0xb7, 0x04, 0x73, //0x000003c6 movzwl (%r11,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xff, //0x000003cb movw %ax, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x000003cf addq $-2, %rcx + 0x41, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x000003d3 cmpl $9999, %r14d + 0x41, 0x89, 0xd6, //0x000003da movl %edx, %r14d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x000003dd ja LBB0_65 + //0x000003e3 LBB0_66 + 0x49, 0x8d, 0x70, 0x01, //0x000003e3 leaq $1(%r8), %rsi + 0x83, 0xfa, 0x0a, //0x000003e7 cmpl $10, %edx + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x000003ea jb LBB0_68 + 0x89, 0xd0, //0x000003f0 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x17, 0x09, 0x00, 0x00, //0x000003f2 leaq $2327(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000003f9 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000003fc movb $1(%rcx,%rax,2), %al + 0x41, 0x88, 0x50, 0x01, //0x00000400 movb %dl, $1(%r8) + 0x41, 0x88, 0x40, 0x02, //0x00000404 movb %al, $2(%r8) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000408 jmp LBB0_69 + //0x0000040d LBB0_68 + 0x80, 0xc2, 0x30, //0x0000040d addb $48, %dl + 0x88, 0x16, //0x00000410 movb %dl, (%rsi) + //0x00000412 LBB0_69 + 0x4c, 0x29, 0xcb, //0x00000412 subq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000415 .p2align 4, 0x90 + //0x00000420 LBB0_70 + 0x80, 0x7b, 0xff, 0x30, //0x00000420 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000424 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000428 je LBB0_70 + 0x41, 0x88, 0x10, //0x0000042e movb %dl, (%r8) + 0x48, 0x8d, 0x43, 0x01, //0x00000431 leaq $1(%rbx), %rax + 0x48, 0x89, 0xc1, //0x00000435 movq %rax, %rcx + 0x48, 0x29, 0xf1, //0x00000438 subq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000043b cmpq $2, %rcx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x0000043f jl LBB0_73 + 0xc6, 0x06, 0x2e, //0x00000445 movb $46, (%rsi) + 0x48, 0x89, 0xc3, //0x00000448 movq %rax, %rbx + //0x0000044b LBB0_73 + 0xc6, 0x03, 0x65, //0x0000044b movb $101, (%rbx) + 0x45, 0x85, 0xd2, //0x0000044e testl %r10d, %r10d + 0x0f, 0x8e, 0x42, 0x01, 0x00, 0x00, //0x00000451 jle LBB0_76 + 0x41, 0xff, 0xca, //0x00000457 decl %r10d + 0xc6, 0x43, 0x01, 0x2b, //0x0000045a movb $43, $1(%rbx) + 0x44, 0x89, 0xd0, //0x0000045e movl %r10d, %eax + 0x83, 0xf8, 0x64, //0x00000461 cmpl $100, %eax + 0x0f, 0x8c, 0x44, 0x01, 0x00, 0x00, //0x00000464 jl LBB0_77 + //0x0000046a LBB0_75 + 0x89, 0xc1, //0x0000046a movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000046c movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000471 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00000475 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x00000479 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x0000047c leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x0000047f subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x88, 0x08, 0x00, 0x00, //0x00000481 leaq $2184(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x00000488 movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x0000048c movw %cx, $2(%rbx) + 0x0c, 0x30, //0x00000490 orb $48, %al + 0x88, 0x43, 0x04, //0x00000492 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x00000495 addq $5, %rbx + 0x49, 0x89, 0xd8, //0x00000499 movq %rbx, %r8 + 0xe9, 0x3f, 0x08, 0x00, 0x00, //0x0000049c jmp LBB0_137 + //0x000004a1 LBB0_32 + 0xd3, 0xee, //0x000004a1 shrl %cl, %esi + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000004a3 cmpl $100000, %esi + 0x0f, 0x82, 0x17, 0x02, 0x00, 0x00, //0x000004a9 jb LBB0_52 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x000004af movl $6, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x000004b4 cmpl $1000000, %esi + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000004ba jb LBB0_36 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000004c0 movl $7, %eax + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000004c5 cmpl $10000000, %esi + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000004cb jb LBB0_36 + 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x000004d1 cmpl $100000000, %esi + 0xb8, 0x09, 0x00, 0x00, 0x00, //0x000004d7 movl $9, %eax + 0x48, 0x83, 0xd8, 0x00, //0x000004dc sbbq $0, %rax + //0x000004e0 LBB0_36 + 0x4c, 0x01, 0xc0, //0x000004e0 addq %r8, %rax + //0x000004e3 LBB0_37 + 0x89, 0xf1, //0x000004e3 movl %esi, %ecx + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000004e5 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004ea imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000004ee shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x000004f2 imull $-10000, %edx, %ecx + 0x01, 0xf1, //0x000004f8 addl %esi, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x000004fa imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00000501 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00000505 imull $100, %esi, %ebx + 0x29, 0xd9, //0x00000508 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0xff, 0x07, 0x00, 0x00, //0x0000050a leaq $2047(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x00000511 movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000515 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x73, //0x00000519 movzwl (%rbx,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x0000051d movw %cx, $-4(%rax) + 0x49, 0x89, 0xc1, //0x00000521 movq %rax, %r9 + 0x48, 0x83, 0xc0, 0xfc, //0x00000524 addq $-4, %rax + 0x89, 0xd6, //0x00000528 movl %edx, %esi + 0x83, 0xfe, 0x64, //0x0000052a cmpl $100, %esi + 0x0f, 0x83, 0xd2, 0x01, 0x00, 0x00, //0x0000052d jae LBB0_56 + 0xe9, 0x07, 0x02, 0x00, 0x00, //0x00000533 jmp LBB0_58 + //0x00000538 LBB0_38 + 0x45, 0x85, 0xd2, //0x00000538 testl %r10d, %r10d + 0x0f, 0x8f, 0x70, 0x04, 0x00, 0x00, //0x0000053b jg LBB0_98 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00000541 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x00000547 addq $2, %r8 + 0x45, 0x85, 0xd2, //0x0000054b testl %r10d, %r10d + 0x0f, 0x89, 0x5d, 0x04, 0x00, 0x00, //0x0000054e jns LBB0_98 + 0x31, 0xf6, //0x00000554 xorl %esi, %esi + 0x41, 0x83, 0xfa, 0xe0, //0x00000556 cmpl $-32, %r10d + 0x0f, 0x87, 0x33, 0x04, 0x00, 0x00, //0x0000055a ja LBB0_96 + 0x45, 0x89, 0xd3, //0x00000560 movl %r10d, %r11d + 0x41, 0xf7, 0xd3, //0x00000563 notl %r11d + 0x49, 0xff, 0xc3, //0x00000566 incq %r11 + 0x4c, 0x89, 0xde, //0x00000569 movq %r11, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x0000056c andq $-32, %rsi + 0x48, 0x8d, 0x4e, 0xe0, //0x00000570 leaq $-32(%rsi), %rcx + 0x48, 0x89, 0xc8, //0x00000574 movq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x00000577 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x0000057b incq %rax + 0x41, 0x89, 0xc6, //0x0000057e movl %eax, %r14d + 0x41, 0x83, 0xe6, 0x07, //0x00000581 andl $7, %r14d + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x00000585 cmpq $224, %rcx + 0x0f, 0x83, 0x27, 0x03, 0x00, 0x00, //0x0000058c jae LBB0_90 + 0x31, 0xc0, //0x00000592 xorl %eax, %eax + 0xe9, 0xbc, 0x03, 0x00, 0x00, //0x00000594 jmp LBB0_92 + //0x00000599 LBB0_76 + 0xc6, 0x43, 0x01, 0x2d, //0x00000599 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000059d movl $1, %eax + 0x44, 0x29, 0xd0, //0x000005a2 subl %r10d, %eax + 0x83, 0xf8, 0x64, //0x000005a5 cmpl $100, %eax + 0x0f, 0x8d, 0xbc, 0xfe, 0xff, 0xff, //0x000005a8 jge LBB0_75 + //0x000005ae LBB0_77 + 0x83, 0xf8, 0x0a, //0x000005ae cmpl $10, %eax + 0x0f, 0x8c, 0xfe, 0x00, 0x00, 0x00, //0x000005b1 jl LBB0_79 + 0x48, 0x98, //0x000005b7 cltq + 0x48, 0x8d, 0x0d, 0x50, 0x07, 0x00, 0x00, //0x000005b9 leaq $1872(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000005c0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x000005c4 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x000005c8 addq $4, %rbx + 0x49, 0x89, 0xd8, //0x000005cc movq %rbx, %r8 + 0xe9, 0x0c, 0x07, 0x00, 0x00, //0x000005cf jmp LBB0_137 + //0x000005d4 LBB0_43 + 0x48, 0x89, 0xf0, //0x000005d4 movq %rsi, %rax + 0x41, 0x83, 0xfd, 0x64, //0x000005d7 cmpl $100, %r13d + 0x0f, 0x82, 0x9c, 0xfd, 0xff, 0xff, //0x000005db jb LBB0_29 + //0x000005e1 LBB0_44 + 0x48, 0xff, 0xc8, //0x000005e1 decq %rax + 0x4c, 0x8d, 0x1d, 0x25, 0x07, 0x00, 0x00, //0x000005e4 leaq $1829(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005eb .p2align 4, 0x90 + //0x000005f0 LBB0_45 + 0x44, 0x89, 0xe9, //0x000005f0 movl %r13d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000005f3 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000005fa shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x000005fe imull $100, %ecx, %ebx + 0x44, 0x89, 0xea, //0x00000601 movl %r13d, %edx + 0x29, 0xda, //0x00000604 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x53, //0x00000606 movzwl (%r11,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xff, //0x0000060b movw %dx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000060f addq $-2, %rax + 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00000613 cmpl $9999, %r13d + 0x41, 0x89, 0xcd, //0x0000061a movl %ecx, %r13d + 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000061d ja LBB0_45 + //0x00000623 LBB0_46 + 0x49, 0x63, 0xc2, //0x00000623 movslq %r10d, %rax + 0x83, 0xf9, 0x0a, //0x00000626 cmpl $10, %ecx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000629 jb LBB0_48 + 0x89, 0xc9, //0x0000062f movl %ecx, %ecx + 0x48, 0x8d, 0x15, 0xd8, 0x06, 0x00, 0x00, //0x00000631 leaq $1752(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000638 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x08, //0x0000063c movw %cx, (%r8) + 0x49, 0x01, 0xc0, //0x00000640 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x00000643 cmpq %rax, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000646 jl LBB0_49 + 0xe9, 0x8f, 0x06, 0x00, 0x00, //0x0000064c jmp LBB0_137 + //0x00000651 LBB0_48 + 0x80, 0xc1, 0x30, //0x00000651 addb $48, %cl + 0x41, 0x88, 0x08, //0x00000654 movb %cl, (%r8) + 0x49, 0x01, 0xc0, //0x00000657 addq %rax, %r8 + 0x49, 0x39, 0xc4, //0x0000065a cmpq %rax, %r12 + 0x0f, 0x8d, 0x7d, 0x06, 0x00, 0x00, //0x0000065d jge LBB0_137 + //0x00000663 LBB0_49 + 0x4b, 0x8d, 0x04, 0x21, //0x00000663 leaq (%r9,%r12), %rax + 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x00000667 leaq $1(%rdi,%rax), %r11 + 0x4d, 0x39, 0xc3, //0x0000066c cmpq %r8, %r11 + 0x4d, 0x0f, 0x46, 0xd8, //0x0000066f cmovbeq %r8, %r11 + 0x4a, 0x8d, 0x0c, 0x0f, //0x00000673 leaq (%rdi,%r9), %rcx + 0x4c, 0x01, 0xe1, //0x00000677 addq %r12, %rcx + 0x49, 0x29, 0xcb, //0x0000067a subq %rcx, %r11 + 0x49, 0x83, 0xfb, 0x20, //0x0000067d cmpq $32, %r11 + 0x0f, 0x82, 0xf9, 0x01, 0x00, 0x00, //0x00000681 jb LBB0_87 + 0x4d, 0x89, 0xda, //0x00000687 movq %r11, %r10 + 0x49, 0x83, 0xe2, 0xe0, //0x0000068a andq $-32, %r10 + 0x49, 0x8d, 0x4a, 0xe0, //0x0000068e leaq $-32(%r10), %rcx + 0x48, 0x89, 0xcb, //0x00000692 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x00000695 shrq $5, %rbx + 0x48, 0xff, 0xc3, //0x00000699 incq %rbx + 0x89, 0xda, //0x0000069c movl %ebx, %edx + 0x83, 0xe2, 0x07, //0x0000069e andl $7, %edx + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x000006a1 cmpq $224, %rcx + 0x0f, 0x83, 0xdb, 0x00, 0x00, 0x00, //0x000006a8 jae LBB0_80 + 0x31, 0xc0, //0x000006ae xorl %eax, %eax + 0xe9, 0x6f, 0x01, 0x00, 0x00, //0x000006b0 jmp LBB0_82 + //0x000006b5 LBB0_79 + 0x04, 0x30, //0x000006b5 addb $48, %al + 0x88, 0x43, 0x02, //0x000006b7 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x000006ba addq $3, %rbx + 0x49, 0x89, 0xd8, //0x000006be movq %rbx, %r8 + 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x000006c1 jmp LBB0_137 + //0x000006c6 LBB0_52 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000006c6 movl $1, %r9d + 0x83, 0xfe, 0x0a, //0x000006cc cmpl $10, %esi + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x000006cf jb LBB0_55 + 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000006d5 movl $2, %r9d + 0x83, 0xfe, 0x64, //0x000006db cmpl $100, %esi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000006de jb LBB0_55 + 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000006e4 movl $3, %r9d + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x000006ea cmpl $1000, %esi + 0x0f, 0x83, 0x9e, 0x01, 0x00, 0x00, //0x000006f0 jae LBB0_88 + //0x000006f6 LBB0_55 + 0x4d, 0x01, 0xc1, //0x000006f6 addq %r8, %r9 + 0x4c, 0x89, 0xc8, //0x000006f9 movq %r9, %rax + 0x83, 0xfe, 0x64, //0x000006fc cmpl $100, %esi + 0x0f, 0x82, 0x3a, 0x00, 0x00, 0x00, //0x000006ff jb LBB0_58 + //0x00000705 LBB0_56 + 0x48, 0xff, 0xc8, //0x00000705 decq %rax + 0x4c, 0x8d, 0x15, 0x01, 0x06, 0x00, 0x00, //0x00000708 leaq $1537(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, //0x0000070f .p2align 4, 0x90 + //0x00000710 LBB0_57 + 0x89, 0xf3, //0x00000710 movl %esi, %ebx + 0x89, 0xf6, //0x00000712 movl %esi, %esi + 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00000714 imulq $1374389535, %rsi, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000071b shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x0000071f imull $100, %esi, %ecx + 0x89, 0xda, //0x00000722 movl %ebx, %edx + 0x29, 0xca, //0x00000724 subl %ecx, %edx + 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x00000726 movzwl (%r10,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xff, //0x0000072b movw %cx, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x0000072f addq $-2, %rax + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00000733 cmpl $9999, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00000739 ja LBB0_57 + //0x0000073f LBB0_58 + 0x83, 0xfe, 0x0a, //0x0000073f cmpl $10, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000742 jb LBB0_60 + 0x89, 0xf0, //0x00000748 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0xbf, 0x05, 0x00, 0x00, //0x0000074a leaq $1471(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000751 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00000755 movw %ax, (%r8) + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00000759 jmp LBB0_61 + //0x0000075e LBB0_60 + 0x40, 0x80, 0xc6, 0x30, //0x0000075e addb $48, %sil + 0x41, 0x88, 0x30, //0x00000762 movb %sil, (%r8) + //0x00000765 LBB0_61 + 0x41, 0x29, 0xf9, //0x00000765 subl %edi, %r9d + 0x45, 0x89, 0xc8, //0x00000768 movl %r9d, %r8d + 0xe9, 0x73, 0x05, 0x00, 0x00, //0x0000076b jmp LBB0_138 + //0x00000770 LBB0_62 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000770 movl $4, %r9d + 0x48, 0x8d, 0x4b, 0xfc, //0x00000776 leaq $-4(%rbx), %rcx + 0x41, 0x83, 0xfe, 0x64, //0x0000077a cmpl $100, %r14d + 0x0f, 0x82, 0x83, 0xfb, 0xff, 0xff, //0x0000077e jb LBB0_31 + 0xe9, 0x0f, 0xfc, 0xff, 0xff, //0x00000784 jmp LBB0_64 + //0x00000789 LBB0_80 + 0x48, 0x29, 0xd3, //0x00000789 subq %rdx, %rbx + 0x48, 0x8d, 0x8c, 0x07, 0xf0, 0x00, 0x00, 0x00, //0x0000078c leaq $240(%rdi,%rax), %rcx + 0x31, 0xc0, //0x00000794 xorl %eax, %eax + 0xf3, 0x0f, 0x6f, 0x05, 0x62, 0xf8, 0xff, 0xff, //0x00000796 movdqu $-1950(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, //0x0000079e .p2align 4, 0x90 + //0x000007a0 LBB0_81 + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x10, 0xff, 0xff, 0xff, //0x000007a0 movdqu %xmm0, $-240(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x000007a9 movdqu %xmm0, $-224(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x30, 0xff, 0xff, 0xff, //0x000007b2 movdqu %xmm0, $-208(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x000007bb movdqu %xmm0, $-192(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x50, 0xff, 0xff, 0xff, //0x000007c4 movdqu %xmm0, $-176(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x000007cd movdqu %xmm0, $-160(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x70, 0xff, 0xff, 0xff, //0x000007d6 movdqu %xmm0, $-144(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x80, //0x000007df movdqu %xmm0, $-128(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x90, //0x000007e5 movdqu %xmm0, $-112(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xa0, //0x000007eb movdqu %xmm0, $-96(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xb0, //0x000007f1 movdqu %xmm0, $-80(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xc0, //0x000007f7 movdqu %xmm0, $-64(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xd0, //0x000007fd movdqu %xmm0, $-48(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xe0, //0x00000803 movdqu %xmm0, $-32(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xf0, //0x00000809 movdqu %xmm0, $-16(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x01, //0x0000080f movdqu %xmm0, (%rcx,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00000814 addq $256, %rax + 0x48, 0x83, 0xc3, 0xf8, //0x0000081a addq $-8, %rbx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000081e jne LBB0_81 + //0x00000824 LBB0_82 + 0x48, 0x85, 0xd2, //0x00000824 testq %rdx, %rdx + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x00000827 je LBB0_85 + 0x4c, 0x01, 0xc8, //0x0000082d addq %r9, %rax + 0x4c, 0x01, 0xe0, //0x00000830 addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x10, //0x00000833 leaq $16(%rdi,%rax), %rax + 0x48, 0xf7, 0xda, //0x00000838 negq %rdx + 0xf3, 0x0f, 0x6f, 0x05, 0xbd, 0xf7, 0xff, 0xff, //0x0000083b movdqu $-2115(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000843 .p2align 4, 0x90 + //0x00000850 LBB0_84 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x00000850 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x00000855 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x00000859 addq $32, %rax + 0x48, 0xff, 0xc2, //0x0000085d incq %rdx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000860 jne LBB0_84 + //0x00000866 LBB0_85 + 0x4d, 0x39, 0xda, //0x00000866 cmpq %r11, %r10 + 0x0f, 0x84, 0x71, 0x04, 0x00, 0x00, //0x00000869 je LBB0_137 + 0x4c, 0x01, 0xd6, //0x0000086f addq %r10, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000872 .p2align 4, 0x90 + //0x00000880 LBB0_87 + 0xc6, 0x06, 0x30, //0x00000880 movb $48, (%rsi) + 0x48, 0xff, 0xc6, //0x00000883 incq %rsi + 0x4c, 0x39, 0xc6, //0x00000886 cmpq %r8, %rsi + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00000889 jb LBB0_87 + 0xe9, 0x4c, 0x04, 0x00, 0x00, //0x0000088f jmp LBB0_137 + //0x00000894 LBB0_88 + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00000894 cmpl $10000, %esi + 0x4c, 0x89, 0xc0, //0x0000089a movq %r8, %rax + 0x48, 0x83, 0xd8, 0x00, //0x0000089d sbbq $0, %rax + 0x48, 0x83, 0xc0, 0x05, //0x000008a1 addq $5, %rax + 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000008a5 cmpl $10000, %esi + 0x0f, 0x83, 0x32, 0xfc, 0xff, 0xff, //0x000008ab jae LBB0_37 + 0x49, 0x89, 0xc1, //0x000008b1 movq %rax, %r9 + 0xe9, 0x4c, 0xfe, 0xff, 0xff, //0x000008b4 jmp LBB0_56 + //0x000008b9 LBB0_90 + 0x49, 0x8d, 0x9c, 0x39, 0xf2, 0x00, 0x00, 0x00, //0x000008b9 leaq $242(%r9,%rdi), %rbx + 0x4d, 0x89, 0xf7, //0x000008c1 movq %r14, %r15 + 0x49, 0x29, 0xc7, //0x000008c4 subq %rax, %r15 + 0x31, 0xc0, //0x000008c7 xorl %eax, %eax + 0xf3, 0x0f, 0x6f, 0x05, 0x2f, 0xf7, 0xff, 0xff, //0x000008c9 movdqu $-2257(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x000008d1 LBB0_91 + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x10, 0xff, 0xff, 0xff, //0x000008d1 movdqu %xmm0, $-240(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x20, 0xff, 0xff, 0xff, //0x000008da movdqu %xmm0, $-224(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x30, 0xff, 0xff, 0xff, //0x000008e3 movdqu %xmm0, $-208(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x40, 0xff, 0xff, 0xff, //0x000008ec movdqu %xmm0, $-192(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x50, 0xff, 0xff, 0xff, //0x000008f5 movdqu %xmm0, $-176(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x60, 0xff, 0xff, 0xff, //0x000008fe movdqu %xmm0, $-160(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x70, 0xff, 0xff, 0xff, //0x00000907 movdqu %xmm0, $-144(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x80, //0x00000910 movdqu %xmm0, $-128(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x90, //0x00000916 movdqu %xmm0, $-112(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xa0, //0x0000091c movdqu %xmm0, $-96(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xb0, //0x00000922 movdqu %xmm0, $-80(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xc0, //0x00000928 movdqu %xmm0, $-64(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xd0, //0x0000092e movdqu %xmm0, $-48(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xe0, //0x00000934 movdqu %xmm0, $-32(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xf0, //0x0000093a movdqu %xmm0, $-16(%rbx,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x03, //0x00000940 movdqu %xmm0, (%rbx,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00000945 addq $256, %rax + 0x49, 0x83, 0xc7, 0x08, //0x0000094b addq $8, %r15 + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000094f jne LBB0_91 + //0x00000955 LBB0_92 + 0x4d, 0x85, 0xf6, //0x00000955 testq %r14, %r14 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000958 je LBB0_95 + 0x4c, 0x01, 0xc8, //0x0000095e addq %r9, %rax + 0x48, 0x8d, 0x44, 0x07, 0x12, //0x00000961 leaq $18(%rdi,%rax), %rax + 0x49, 0xf7, 0xde, //0x00000966 negq %r14 + 0xf3, 0x0f, 0x6f, 0x05, 0x8f, 0xf6, 0xff, 0xff, //0x00000969 movdqu $-2417(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x00000971 LBB0_94 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x00000971 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x00000976 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x0000097a addq $32, %rax + 0x49, 0xff, 0xc6, //0x0000097e incq %r14 + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000981 jne LBB0_94 + //0x00000987 LBB0_95 + 0x49, 0x01, 0xf0, //0x00000987 addq %rsi, %r8 + 0x49, 0x39, 0xf3, //0x0000098a cmpq %rsi, %r11 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000098d je LBB0_98 + //0x00000993 LBB0_96 + 0x44, 0x89, 0xd0, //0x00000993 movl %r10d, %eax + 0xf7, 0xd8, //0x00000996 negl %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000998 .p2align 4, 0x90 + //0x000009a0 LBB0_97 + 0x41, 0xc6, 0x00, 0x30, //0x000009a0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000009a4 incq %r8 + 0xff, 0xc6, //0x000009a7 incl %esi + 0x39, 0xc6, //0x000009a9 cmpl %eax, %esi + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x000009ab jl LBB0_97 + //0x000009b1 LBB0_98 + 0x4b, 0x8d, 0x04, 0x20, //0x000009b1 leaq (%r8,%r12), %rax + 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x000009b5 cmpl $10000, %r13d + 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x000009bc jb LBB0_101 + 0x44, 0x89, 0xe9, //0x000009c2 movl %r13d, %ecx + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000009c5 movl $3518437209, %r11d + 0x4c, 0x0f, 0xaf, 0xd9, //0x000009cb imulq %rcx, %r11 + 0x49, 0xc1, 0xeb, 0x2d, //0x000009cf shrq $45, %r11 + 0x41, 0x69, 0xcb, 0xf0, 0xd8, 0xff, 0xff, //0x000009d3 imull $-10000, %r11d, %ecx + 0x44, 0x01, 0xe9, //0x000009da addl %r13d, %ecx + 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x000009dd je LBB0_103 + 0x89, 0xca, //0x000009e3 movl %ecx, %edx + 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x000009e5 imulq $1374389535, %rdx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000009ec shrq $37, %rdx + 0x6b, 0xda, 0x64, //0x000009f0 imull $100, %edx, %ebx + 0x29, 0xd9, //0x000009f3 subl %ebx, %ecx + 0x48, 0x8d, 0x1d, 0x14, 0x03, 0x00, 0x00, //0x000009f5 leaq $788(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4b, //0x000009fc movzwl (%rbx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000a00 movw %cx, $-2(%rax) + 0x0f, 0xb7, 0x0c, 0x53, //0x00000a04 movzwl (%rbx,%rdx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00000a08 movw %cx, $-4(%rax) + 0x45, 0x31, 0xc9, //0x00000a0c xorl %r9d, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00000a0f addq $-4, %rax + 0x41, 0x83, 0xfb, 0x64, //0x00000a13 cmpl $100, %r11d + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00000a17 jae LBB0_105 + //0x00000a1d LBB0_102 + 0x44, 0x89, 0xd9, //0x00000a1d movl %r11d, %ecx + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00000a20 jmp LBB0_107 + //0x00000a25 LBB0_101 + 0x45, 0x31, 0xc9, //0x00000a25 xorl %r9d, %r9d + 0x45, 0x89, 0xeb, //0x00000a28 movl %r13d, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00000a2b cmpl $100, %r11d + 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x00000a2f jb LBB0_102 + //0x00000a35 LBB0_105 + 0x48, 0xff, 0xc8, //0x00000a35 decq %rax + 0x48, 0x8d, 0x15, 0xd1, 0x02, 0x00, 0x00, //0x00000a38 leaq $721(%rip), %rdx /* _Digits+0(%rip) */ + 0x90, //0x00000a3f .p2align 4, 0x90 + //0x00000a40 LBB0_106 + 0x44, 0x89, 0xd9, //0x00000a40 movl %r11d, %ecx + 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00000a43 imulq $1374389535, %rcx, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x00000a4a shrq $37, %rcx + 0x6b, 0xd9, 0x64, //0x00000a4e imull $100, %ecx, %ebx + 0x44, 0x89, 0xde, //0x00000a51 movl %r11d, %esi + 0x29, 0xde, //0x00000a54 subl %ebx, %esi + 0x0f, 0xb7, 0x34, 0x72, //0x00000a56 movzwl (%rdx,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xff, //0x00000a5a movw %si, $-1(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00000a5e addq $-2, %rax + 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00000a62 cmpl $9999, %r11d + 0x41, 0x89, 0xcb, //0x00000a69 movl %ecx, %r11d + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00000a6c ja LBB0_106 + //0x00000a72 LBB0_107 + 0x83, 0xf9, 0x0a, //0x00000a72 cmpl $10, %ecx + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000a75 jb LBB0_109 + 0x89, 0xc8, //0x00000a7b movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x8c, 0x02, 0x00, 0x00, //0x00000a7d leaq $652(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000a84 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x00, //0x00000a88 movw %ax, (%r8) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000a8c jmp LBB0_110 + //0x00000a91 LBB0_109 + 0x80, 0xc1, 0x30, //0x00000a91 addb $48, %cl + 0x41, 0x88, 0x08, //0x00000a94 movb %cl, (%r8) + //0x00000a97 LBB0_110 + 0x4d, 0x29, 0xcc, //0x00000a97 subq %r9, %r12 + 0x49, 0x8d, 0x74, 0x24, 0x01, //0x00000a9a leaq $1(%r12), %rsi + 0x49, 0x8d, 0x54, 0x24, 0x11, //0x00000a9f leaq $17(%r12), %rdx + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00000aa4 leaq $2(%r12), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000aa9 .p2align 4, 0x90 + //0x00000ab0 LBB0_111 + 0x48, 0xff, 0xca, //0x00000ab0 decq %rdx + 0x48, 0xff, 0xce, //0x00000ab3 decq %rsi + 0x48, 0xff, 0xc8, //0x00000ab6 decq %rax + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000ab9 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x00000abf leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000ac4 je LBB0_111 + 0x4d, 0x8d, 0x0c, 0x30, //0x00000aca leaq (%r8,%rsi), %r9 + 0x45, 0x85, 0xd2, //0x00000ace testl %r10d, %r10d + 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00000ad1 jle LBB0_116 + 0x44, 0x89, 0xc9, //0x00000ad7 movl %r9d, %ecx + 0x44, 0x29, 0xc1, //0x00000ada subl %r8d, %ecx + 0x41, 0x39, 0xca, //0x00000add cmpl %ecx, %r10d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00000ae0 jge LBB0_117 + 0x43, 0x8d, 0x0c, 0x02, //0x00000ae6 leal (%r10,%r8), %ecx + 0x41, 0x29, 0xc9, //0x00000aea subl %ecx, %r9d + 0x49, 0x8d, 0x49, 0xff, //0x00000aed leaq $-1(%r9), %rcx + 0x45, 0x89, 0xcb, //0x00000af1 movl %r9d, %r11d + 0x41, 0x83, 0xe3, 0x03, //0x00000af4 andl $3, %r11d + 0x48, 0x83, 0xf9, 0x03, //0x00000af8 cmpq $3, %rcx + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x00000afc jae LBB0_121 + 0x31, 0xc9, //0x00000b02 xorl %ecx, %ecx + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00000b04 jmp LBB0_124 + //0x00000b09 LBB0_117 + 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00000b09 jle LBB0_116 + 0x45, 0x01, 0xc2, //0x00000b0f addl %r8d, %r10d + 0x45, 0x89, 0xcf, //0x00000b12 movl %r9d, %r15d + 0x41, 0xf7, 0xd7, //0x00000b15 notl %r15d + 0x45, 0x01, 0xd7, //0x00000b18 addl %r10d, %r15d + 0x45, 0x31, 0xf6, //0x00000b1b xorl %r14d, %r14d + 0x4d, 0x89, 0xcb, //0x00000b1e movq %r9, %r11 + 0x41, 0x83, 0xff, 0x1e, //0x00000b21 cmpl $30, %r15d + 0x0f, 0x86, 0x9b, 0x01, 0x00, 0x00, //0x00000b25 jbe LBB0_135 + 0x49, 0xff, 0xc7, //0x00000b2b incq %r15 + 0x4d, 0x89, 0xfe, //0x00000b2e movq %r15, %r14 + 0x49, 0x83, 0xe6, 0xe0, //0x00000b31 andq $-32, %r14 + 0x4f, 0x8d, 0x1c, 0x30, //0x00000b35 leaq (%r8,%r14), %r11 + 0x49, 0x8d, 0x5e, 0xe0, //0x00000b39 leaq $-32(%r14), %rbx + 0x48, 0x89, 0xd8, //0x00000b3d movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x05, //0x00000b40 shrq $5, %rax + 0x48, 0xff, 0xc0, //0x00000b44 incq %rax + 0x41, 0x89, 0xc4, //0x00000b47 movl %eax, %r12d + 0x41, 0x83, 0xe4, 0x07, //0x00000b4a andl $7, %r12d + 0x48, 0x81, 0xfb, 0xe0, 0x00, 0x00, 0x00, //0x00000b4e cmpq $224, %rbx + 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x00000b55 jae LBB0_129 + 0x31, 0xc0, //0x00000b5b xorl %eax, %eax + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x00000b5d jmp LBB0_131 + //0x00000b62 LBB0_116 + 0x4d, 0x89, 0xc8, //0x00000b62 movq %r9, %r8 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x00000b65 jmp LBB0_137 + //0x00000b6a LBB0_103 + 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000b6a movl $4, %r9d + 0x48, 0x83, 0xc0, 0xfc, //0x00000b70 addq $-4, %rax + 0x41, 0x83, 0xfb, 0x64, //0x00000b74 cmpl $100, %r11d + 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x00000b78 jb LBB0_102 + 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x00000b7e jmp LBB0_105 + //0x00000b83 LBB0_121 + 0x4d, 0x89, 0xde, //0x00000b83 movq %r11, %r14 + 0x4d, 0x29, 0xce, //0x00000b86 subq %r9, %r14 + 0x31, 0xc9, //0x00000b89 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b8b .p2align 4, 0x90 + //0x00000b90 LBB0_122 + 0x49, 0x8d, 0x1c, 0x08, //0x00000b90 leaq (%r8,%rcx), %rbx + 0x8b, 0x54, 0x1e, 0xfc, //0x00000b94 movl $-4(%rsi,%rbx), %edx + 0x89, 0x54, 0x1e, 0xfd, //0x00000b98 movl %edx, $-3(%rsi,%rbx) + 0x48, 0x83, 0xc1, 0xfc, //0x00000b9c addq $-4, %rcx + 0x49, 0x39, 0xce, //0x00000ba0 cmpq %rcx, %r14 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000ba3 jne LBB0_122 + 0x48, 0xf7, 0xd9, //0x00000ba9 negq %rcx + //0x00000bac LBB0_124 + 0x4d, 0x85, 0xdb, //0x00000bac testq %r11, %r11 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00000baf je LBB0_127 + 0x49, 0xf7, 0xdb, //0x00000bb5 negq %r11 + 0x4c, 0x89, 0xc2, //0x00000bb8 movq %r8, %rdx + 0x48, 0x29, 0xca, //0x00000bbb subq %rcx, %rdx + 0x31, 0xc9, //0x00000bbe xorl %ecx, %ecx + //0x00000bc0 .p2align 4, 0x90 + //0x00000bc0 LBB0_126 + 0x48, 0x8d, 0x34, 0x0a, //0x00000bc0 leaq (%rdx,%rcx), %rsi + 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00000bc4 movzbl (%r12,%rsi), %ebx + 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00000bc9 movb %bl, $1(%r12,%rsi) + 0x48, 0xff, 0xc9, //0x00000bce decq %rcx + 0x49, 0x39, 0xcb, //0x00000bd1 cmpq %rcx, %r11 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00000bd4 jne LBB0_126 + //0x00000bda LBB0_127 + 0x49, 0x63, 0xca, //0x00000bda movslq %r10d, %rcx + 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x00000bdd movb $46, (%r8,%rcx) + 0x49, 0x01, 0xc0, //0x00000be2 addq %rax, %r8 + 0xe9, 0xf6, 0x00, 0x00, 0x00, //0x00000be5 jmp LBB0_137 + //0x00000bea LBB0_129 + 0x4c, 0x89, 0xe3, //0x00000bea movq %r12, %rbx + 0x48, 0x29, 0xc3, //0x00000bed subq %rax, %rbx + 0x31, 0xc0, //0x00000bf0 xorl %eax, %eax + 0xf3, 0x0f, 0x6f, 0x05, 0x06, 0xf4, 0xff, 0xff, //0x00000bf2 movdqu $-3066(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x00000bfa LBB0_130 + 0x49, 0x8d, 0x0c, 0x00, //0x00000bfa leaq (%r8,%rax), %rcx + 0xf3, 0x0f, 0x7f, 0x04, 0x0e, //0x00000bfe movdqu %xmm0, (%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x10, //0x00000c03 movdqu %xmm0, $16(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x20, //0x00000c09 movdqu %xmm0, $32(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x30, //0x00000c0f movdqu %xmm0, $48(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x40, //0x00000c15 movdqu %xmm0, $64(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x50, //0x00000c1b movdqu %xmm0, $80(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x60, //0x00000c21 movdqu %xmm0, $96(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x70, //0x00000c27 movdqu %xmm0, $112(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x80, 0x00, 0x00, 0x00, //0x00000c2d movdqu %xmm0, $128(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x90, 0x00, 0x00, 0x00, //0x00000c36 movdqu %xmm0, $144(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xa0, 0x00, 0x00, 0x00, //0x00000c3f movdqu %xmm0, $160(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xb0, 0x00, 0x00, 0x00, //0x00000c48 movdqu %xmm0, $176(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xc0, 0x00, 0x00, 0x00, //0x00000c51 movdqu %xmm0, $192(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xd0, 0x00, 0x00, 0x00, //0x00000c5a movdqu %xmm0, $208(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xe0, 0x00, 0x00, 0x00, //0x00000c63 movdqu %xmm0, $224(%rsi,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xf0, 0x00, 0x00, 0x00, //0x00000c6c movdqu %xmm0, $240(%rsi,%rcx) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00000c75 addq $256, %rax + 0x48, 0x83, 0xc3, 0x08, //0x00000c7b addq $8, %rbx + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x00000c7f jne LBB0_130 + //0x00000c85 LBB0_131 + 0x49, 0x01, 0xf3, //0x00000c85 addq %rsi, %r11 + 0x4d, 0x85, 0xe4, //0x00000c88 testq %r12, %r12 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000c8b je LBB0_134 + 0x49, 0x01, 0xc0, //0x00000c91 addq %rax, %r8 + 0x49, 0x01, 0xd0, //0x00000c94 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00000c97 negq %r12 + 0xf3, 0x0f, 0x6f, 0x05, 0x5e, 0xf3, 0xff, 0xff, //0x00000c9a movdqu $-3234(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x00000ca2 LBB0_133 + 0xf3, 0x41, 0x0f, 0x7f, 0x40, 0xf0, //0x00000ca2 movdqu %xmm0, $-16(%r8) + 0xf3, 0x41, 0x0f, 0x7f, 0x00, //0x00000ca8 movdqu %xmm0, (%r8) + 0x49, 0x83, 0xc0, 0x20, //0x00000cad addq $32, %r8 + 0x49, 0xff, 0xc4, //0x00000cb1 incq %r12 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000cb4 jne LBB0_133 + //0x00000cba LBB0_134 + 0x4d, 0x89, 0xd8, //0x00000cba movq %r11, %r8 + 0x4d, 0x39, 0xf7, //0x00000cbd cmpq %r14, %r15 + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000cc0 je LBB0_137 + //0x00000cc6 LBB0_135 + 0x45, 0x29, 0xf2, //0x00000cc6 subl %r14d, %r10d + 0x45, 0x29, 0xca, //0x00000cc9 subl %r9d, %r10d + 0x4d, 0x89, 0xd8, //0x00000ccc movq %r11, %r8 + 0x90, //0x00000ccf .p2align 4, 0x90 + //0x00000cd0 LBB0_136 + 0x41, 0xc6, 0x00, 0x30, //0x00000cd0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00000cd4 incq %r8 + 0x41, 0xff, 0xca, //0x00000cd7 decl %r10d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00000cda jne LBB0_136 + //0x00000ce0 LBB0_137 + 0x41, 0x29, 0xf8, //0x00000ce0 subl %edi, %r8d + //0x00000ce3 LBB0_138 + 0x44, 0x89, 0xc0, //0x00000ce3 movl %r8d, %eax + 0x5b, //0x00000ce6 popq %rbx + 0x41, 0x5c, //0x00000ce7 popq %r12 + 0x41, 0x5d, //0x00000ce9 popq %r13 + 0x41, 0x5e, //0x00000ceb popq %r14 + 0x41, 0x5f, //0x00000ced popq %r15 + 0x5d, //0x00000cef popq %rbp + 0xc3, //0x00000cf0 retq + //0x00000cf1 LBB0_139 + 0x45, 0x31, 0xc0, //0x00000cf1 xorl %r8d, %r8d + 0xe9, 0xea, 0xff, 0xff, 0xff, //0x00000cf4 jmp LBB0_138 + //0x00000cf9 LBB0_140 + 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x00000cf9 movl $-149, %r15d + 0x89, 0xc6, //0x00000cff movl %eax, %esi + 0xe9, 0x89, 0xf3, 0xff, 0xff, //0x00000d01 jmp LBB0_5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d06 .p2align 4, 0x00 + //0x00000d10 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000d10 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000d20 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000d30 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000d40 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000d50 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000d60 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x00000d70 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x00000d80 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x00000d90 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00000da0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x00000db0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00000dc0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00000dd0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd8 .p2align 4, 0x00 + //0x00000de0 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00000de0 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00000de8 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00000df0 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00000df8 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00000e00 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00000e08 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00000e10 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00000e18 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00000e20 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00000e28 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00000e30 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00000e38 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00000e40 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00000e48 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00000e50 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00000e58 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00000e60 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00000e68 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00000e70 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00000e78 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00000e80 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00000e88 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00000e90 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000e98 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00000ea0 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00000ea8 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00000eb0 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00000eb8 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00000ec0 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00000ec8 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000ed0 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000ed8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00000ee0 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00000ee8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00000ef0 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00000ef8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00000f00 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00000f08 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00000f10 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00000f18 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00000f20 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00000f28 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00000f30 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00000f38 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00000f40 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00000f48 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00000f50 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00000f58 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00000f60 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00000f68 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00000f70 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00000f78 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00000f80 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00000f88 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00000f90 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00000f98 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00000fa0 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00000fa8 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00000fb0 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00000fb8 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00000fc0 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00000fc8 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00000fd0 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00000fd8 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00000fe0 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00000fe8 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00000ff0 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00000ff8 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00001000 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00001008 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00001010 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00001018 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00001020 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00001028 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00001030 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00001038 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00001040 .quad -5522047002568494196 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa.go b/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa.go new file mode 100644 index 000000000..9cca71008 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_f64toa func(out unsafe.Pointer, val float64) (ret int) + +var S_f64toa uintptr + +//go:nosplit +func f64toa(out *byte, val float64) (ret int) { + return F_f64toa((rt.NoEscape(unsafe.Pointer(out))), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_subr.go new file mode 100644 index 000000000..e04b0b0f7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__f64toa = 16 +) + +const ( + _stack__f64toa = 56 +) + +const ( + _size__f64toa = 4672 +) + +var ( + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4582, 56}, + {4586, 48}, + {4587, 40}, + {4589, 32}, + {4591, 24}, + {4593, 16}, + {4595, 8}, + {4596, 0}, + {4659, 56}, + } +) + +var _cfunc_f64toa = []loader.CFunc{ + {"_f64toa_entry", 0, _entry__f64toa, 0, nil}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_text_amd64.go new file mode 100644 index 000000000..36bceb55b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/f64toa_text_amd64.go @@ -0,0 +1,2394 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_f64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, // QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000010 .p2align 4, 0x90 + //0x00000010 _f64toa + 0x55, //0x00000010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp + 0x41, 0x57, //0x00000014 pushq %r15 + 0x41, 0x56, //0x00000016 pushq %r14 + 0x41, 0x55, //0x00000018 pushq %r13 + 0x41, 0x54, //0x0000001a pushq %r12 + 0x53, //0x0000001c pushq %rbx + 0x50, //0x0000001d pushq %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc2, //0x0000001e movq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000023 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000026 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000002a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000002f cmpl $2047, %eax + 0x0f, 0x84, 0xcb, 0x11, 0x00, 0x00, //0x00000034 je LBB0_165 + 0xc6, 0x07, 0x2d, //0x0000003a movb $45, (%rdi) + 0x48, 0x89, 0xd6, //0x0000003d movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x3f, //0x00000040 shrq $63, %rsi + 0x4c, 0x8d, 0x04, 0x37, //0x00000044 leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x00000048 leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x00000050 testq %rcx, %rcx + 0x0f, 0x84, 0x7e, 0x02, 0x00, 0x00, //0x00000053 je LBB0_6 + 0x49, 0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000059 movabsq $4503599627370495, %r11 + 0x4c, 0x21, 0xda, //0x00000063 andq %r11, %rdx + 0x85, 0xc0, //0x00000066 testl %eax, %eax + 0x0f, 0x84, 0x9f, 0x11, 0x00, 0x00, //0x00000068 je LBB0_166 + 0x49, 0xff, 0xc3, //0x0000006e incq %r11 + 0x49, 0x09, 0xd3, //0x00000071 orq %rdx, %r11 + 0x44, 0x8d, 0x90, 0xcd, 0xfb, 0xff, 0xff, //0x00000074 leal $-1075(%rax), %r10d + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000007b leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000081 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000084 ja LBB0_7 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000008a movl $1075, %ecx + 0x29, 0xc1, //0x0000008f subl %eax, %ecx + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000091 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x00000098 shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x0000009b notq %rbx + 0x49, 0x85, 0xdb, //0x0000009e testq %rbx, %r11 + 0x0f, 0x84, 0x43, 0x06, 0x00, 0x00, //0x000000a1 je LBB0_42 + //0x000000a7 LBB0_7 + 0x48, 0x89, 0x75, 0xd0, //0x000000a7 movq %rsi, $-48(%rbp) + //0x000000ab LBB0_8 + 0x48, 0x85, 0xd2, //0x000000ab testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x000000ae sete %cl + 0x83, 0xf8, 0x01, //0x000000b1 cmpl $1, %eax + 0x0f, 0x97, 0xc0, //0x000000b4 seta %al + 0x20, 0xc8, //0x000000b7 andb %cl, %al + 0x0f, 0xb6, 0xc0, //0x000000b9 movzbl %al, %eax + 0x4e, 0x8d, 0x4c, 0x98, 0xfe, //0x000000bc leaq $-2(%rax,%r11,4), %r9 + 0x45, 0x69, 0xfa, 0x13, 0x44, 0x13, 0x00, //0x000000c1 imull $1262611, %r10d, %r15d + 0x31, 0xc9, //0x000000c8 xorl %ecx, %ecx + 0x84, 0xc0, //0x000000ca testb %al, %al + 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x000000cc movl $524031, %eax + 0x0f, 0x44, 0xc1, //0x000000d1 cmovel %ecx, %eax + 0x41, 0x29, 0xc7, //0x000000d4 subl %eax, %r15d + 0x41, 0xc1, 0xff, 0x16, //0x000000d7 sarl $22, %r15d + 0x41, 0x69, 0xcf, 0xb1, 0x6c, 0xe5, 0xff, //0x000000db imull $-1741647, %r15d, %ecx + 0xc1, 0xe9, 0x13, //0x000000e2 shrl $19, %ecx + 0x44, 0x01, 0xd1, //0x000000e5 addl %r10d, %ecx + 0xb8, 0x24, 0x01, 0x00, 0x00, //0x000000e8 movl $292, %eax + 0x44, 0x29, 0xf8, //0x000000ed subl %r15d, %eax + 0x48, 0x98, //0x000000f0 cltq + 0x48, 0xc1, 0xe0, 0x04, //0x000000f2 shlq $4, %rax + 0x48, 0x8d, 0x15, 0x23, 0x12, 0x00, 0x00, //0x000000f6 leaq $4643(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ + 0x4c, 0x8b, 0x24, 0x10, //0x000000fd movq (%rax,%rdx), %r12 + 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x00000101 movq $8(%rax,%rdx), %r13 + 0xfe, 0xc1, //0x00000106 incb %cl + 0x49, 0xd3, 0xe1, //0x00000108 shlq %cl, %r9 + 0x4c, 0x89, 0xc8, //0x0000010b movq %r9, %rax + 0x49, 0xf7, 0xe5, //0x0000010e mulq %r13 + 0x49, 0x89, 0xd2, //0x00000111 movq %rdx, %r10 + 0x4c, 0x89, 0xc8, //0x00000114 movq %r9, %rax + 0x49, 0xf7, 0xe4, //0x00000117 mulq %r12 + 0x4a, 0x8d, 0x34, 0x9d, 0x00, 0x00, 0x00, 0x00, //0x0000011a leaq (,%r11,4), %rsi + 0x4c, 0x01, 0xd0, //0x00000122 addq %r10, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000125 adcq $0, %rdx + 0x31, 0xdb, //0x00000129 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x01, //0x0000012b cmpq $1, %rax + 0x0f, 0x97, 0xc3, //0x0000012f seta %bl + 0x48, 0x09, 0xd3, //0x00000132 orq %rdx, %rbx + 0x48, 0xd3, 0xe6, //0x00000135 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x00000138 movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000013b mulq %r13 + 0x49, 0x89, 0xd2, //0x0000013e movq %rdx, %r10 + 0x48, 0x89, 0xf0, //0x00000141 movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000144 mulq %r12 + 0x49, 0x89, 0xd1, //0x00000147 movq %rdx, %r9 + 0x4a, 0x8d, 0x34, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x0000014a leaq $2(,%r11,4), %rsi + 0x4c, 0x01, 0xd0, //0x00000152 addq %r10, %rax + 0x49, 0x83, 0xd1, 0x00, //0x00000155 adcq $0, %r9 + 0x45, 0x31, 0xd2, //0x00000159 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x01, //0x0000015c cmpq $1, %rax + 0x41, 0x0f, 0x97, 0xc2, //0x00000160 seta %r10b + 0x4d, 0x09, 0xca, //0x00000164 orq %r9, %r10 + 0x48, 0xd3, 0xe6, //0x00000167 shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x0000016a movq %rsi, %rax + 0x49, 0xf7, 0xe5, //0x0000016d mulq %r13 + 0x48, 0x89, 0xd1, //0x00000170 movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000173 movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000176 mulq %r12 + 0x48, 0x01, 0xc8, //0x00000179 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x0000017c adcq $0, %rdx + 0x31, 0xf6, //0x00000180 xorl %esi, %esi + 0x48, 0x83, 0xf8, 0x01, //0x00000182 cmpq $1, %rax + 0x40, 0x0f, 0x97, 0xc6, //0x00000186 seta %sil + 0x48, 0x09, 0xd6, //0x0000018a orq %rdx, %rsi + 0x41, 0x83, 0xe3, 0x01, //0x0000018d andl $1, %r11d + 0x4c, 0x01, 0xdb, //0x00000191 addq %r11, %rbx + 0x4c, 0x29, 0xde, //0x00000194 subq %r11, %rsi + 0x49, 0x83, 0xfa, 0x28, //0x00000197 cmpq $40, %r10 + 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x0000019b jb LBB0_20 + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000001a1 movabsq $-3689348814741910323, %rcx + 0x4c, 0x89, 0xc8, //0x000001ab movq %r9, %rax + 0x48, 0xf7, 0xe1, //0x000001ae mulq %rcx + 0x49, 0x89, 0xd6, //0x000001b1 movq %rdx, %r14 + 0x49, 0xc1, 0xee, 0x05, //0x000001b4 shrq $5, %r14 + 0x4a, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x000001b8 leaq (,%r14,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000001c0 leaq (%rax,%rax,4), %rdx + 0x48, 0x39, 0xd3, //0x000001c4 cmpq %rdx, %rbx + 0x41, 0x0f, 0x96, 0xc3, //0x000001c7 setbe %r11b + 0x48, 0x8d, 0x44, 0x80, 0x28, //0x000001cb leaq $40(%rax,%rax,4), %rax + 0x48, 0x39, 0xf0, //0x000001d0 cmpq %rsi, %rax + 0x0f, 0x96, 0xc2, //0x000001d3 setbe %dl + 0x41, 0x38, 0xd3, //0x000001d6 cmpb %dl, %r11b + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000001d9 je LBB0_20 + 0x31, 0xd2, //0x000001df xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x000001e1 cmpq %rsi, %rax + 0x0f, 0x96, 0xc2, //0x000001e4 setbe %dl + 0x49, 0x01, 0xd6, //0x000001e7 addq %rdx, %r14 + 0x41, 0xff, 0xc7, //0x000001ea incl %r15d + 0x49, 0xba, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000001ed movabsq $8589934560, %r10 + 0x49, 0x8d, 0x82, 0x1f, 0xe4, 0x0b, 0x54, //0x000001f7 leaq $1410065439(%r10), %rax + 0x49, 0x39, 0xc6, //0x000001fe cmpq %rax, %r14 + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00000201 ja LBB0_25 + //0x00000207 LBB0_11 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000207 movl $1, %eax + 0x49, 0x83, 0xfe, 0x0a, //0x0000020c cmpq $10, %r14 + 0x0f, 0x82, 0x9e, 0x01, 0x00, 0x00, //0x00000210 jb LBB0_32 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000216 movl $2, %eax + 0x49, 0x83, 0xfe, 0x64, //0x0000021b cmpq $100, %r14 + 0x0f, 0x82, 0x8f, 0x01, 0x00, 0x00, //0x0000021f jb LBB0_32 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00000225 movl $3, %eax + 0x49, 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000022a cmpq $1000, %r14 + 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x00000231 jb LBB0_32 + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00000237 movl $4, %eax + 0x49, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000023c cmpq $10000, %r14 + 0x0f, 0x82, 0x6b, 0x01, 0x00, 0x00, //0x00000243 jb LBB0_32 + 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00000249 movl $5, %eax + 0x49, 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000024e cmpq $100000, %r14 + 0x0f, 0x82, 0x59, 0x01, 0x00, 0x00, //0x00000255 jb LBB0_32 + 0xb8, 0x06, 0x00, 0x00, 0x00, //0x0000025b movl $6, %eax + 0x49, 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000260 cmpq $1000000, %r14 + 0x0f, 0x82, 0x47, 0x01, 0x00, 0x00, //0x00000267 jb LBB0_32 + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x0000026d movl $7, %eax + 0x49, 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000272 cmpq $10000000, %r14 + 0x0f, 0x82, 0x35, 0x01, 0x00, 0x00, //0x00000279 jb LBB0_32 + 0xb8, 0x08, 0x00, 0x00, 0x00, //0x0000027f movl $8, %eax + 0x49, 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00000284 cmpq $100000000, %r14 + 0x0f, 0x82, 0x23, 0x01, 0x00, 0x00, //0x0000028b jb LBB0_32 + 0x49, 0x81, 0xfe, 0x00, 0xca, 0x9a, 0x3b, //0x00000291 cmpq $1000000000, %r14 + 0xb8, 0x0a, 0x00, 0x00, 0x00, //0x00000298 movl $10, %eax + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x0000029d jmp LBB0_31 + //0x000002a2 LBB0_20 + 0x4d, 0x89, 0xcb, //0x000002a2 movq %r9, %r11 + 0x49, 0xc1, 0xeb, 0x02, //0x000002a5 shrq $2, %r11 + 0x4c, 0x89, 0xca, //0x000002a9 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x000002ac andq $-4, %rdx + 0x48, 0x39, 0xd3, //0x000002b0 cmpq %rdx, %rbx + 0x0f, 0x96, 0xc1, //0x000002b3 setbe %cl + 0x48, 0x8d, 0x5a, 0x04, //0x000002b6 leaq $4(%rdx), %rbx + 0x48, 0x39, 0xf3, //0x000002ba cmpq %rsi, %rbx + 0x0f, 0x96, 0xc0, //0x000002bd setbe %al + 0x38, 0xc1, //0x000002c0 cmpb %al, %cl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000002c2 je LBB0_22 + 0x45, 0x31, 0xf6, //0x000002c8 xorl %r14d, %r14d + 0x48, 0x39, 0xf3, //0x000002cb cmpq %rsi, %rbx + 0x41, 0x0f, 0x96, 0xc6, //0x000002ce setbe %r14b + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000002d2 jmp LBB0_24 + //0x000002d7 LBB0_6 + 0x41, 0xc6, 0x00, 0x30, //0x000002d7 movb $48, (%r8) + 0x41, 0x29, 0xf8, //0x000002db subl %edi, %r8d + 0x41, 0xff, 0xc0, //0x000002de incl %r8d + 0xe9, 0x0d, 0x0f, 0x00, 0x00, //0x000002e1 jmp LBB0_164 + //0x000002e6 LBB0_22 + 0x48, 0x83, 0xca, 0x02, //0x000002e6 orq $2, %rdx + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x000002ea movl $1, %r14d + 0x49, 0x39, 0xd2, //0x000002f0 cmpq %rdx, %r10 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x000002f3 ja LBB0_24 + 0x0f, 0x94, 0xc0, //0x000002f9 sete %al + 0x41, 0xc0, 0xe9, 0x02, //0x000002fc shrb $2, %r9b + 0x41, 0x20, 0xc1, //0x00000300 andb %al, %r9b + 0x45, 0x0f, 0xb6, 0xf1, //0x00000303 movzbl %r9b, %r14d + //0x00000307 LBB0_24 + 0x4d, 0x01, 0xde, //0x00000307 addq %r11, %r14 + 0x49, 0xba, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000030a movabsq $8589934560, %r10 + 0x49, 0x8d, 0x82, 0x1f, 0xe4, 0x0b, 0x54, //0x00000314 leaq $1410065439(%r10), %rax + 0x49, 0x39, 0xc6, //0x0000031b cmpq %rax, %r14 + 0x0f, 0x86, 0xe3, 0xfe, 0xff, 0xff, //0x0000031e jbe LBB0_11 + //0x00000324 LBB0_25 + 0x4c, 0x89, 0xf2, //0x00000324 movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0b, //0x00000327 shrq $11, %rdx + 0xb8, 0x0b, 0x00, 0x00, 0x00, //0x0000032b movl $11, %eax + 0x48, 0x81, 0xfa, 0xdd, 0x0e, 0xe9, 0x02, //0x00000330 cmpq $48828125, %rdx + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00000337 jb LBB0_32 + 0x4c, 0x89, 0xf2, //0x0000033d movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0c, //0x00000340 shrq $12, %rdx + 0xb8, 0x0c, 0x00, 0x00, 0x00, //0x00000344 movl $12, %eax + 0x48, 0x81, 0xfa, 0x51, 0x4a, 0x8d, 0x0e, //0x00000349 cmpq $244140625, %rdx + 0x0f, 0x82, 0x5e, 0x00, 0x00, 0x00, //0x00000350 jb LBB0_32 + 0x4c, 0x89, 0xf2, //0x00000356 movq %r14, %rdx + 0x48, 0xc1, 0xea, 0x0d, //0x00000359 shrq $13, %rdx + 0xb8, 0x0d, 0x00, 0x00, 0x00, //0x0000035d movl $13, %eax + 0x48, 0x81, 0xfa, 0x95, 0x73, 0xc2, 0x48, //0x00000362 cmpq $1220703125, %rdx + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000369 jb LBB0_32 + 0xb8, 0x0e, 0x00, 0x00, 0x00, //0x0000036f movl $14, %eax + 0x48, 0xba, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000374 movabsq $100000000000000, %rdx + 0x49, 0x39, 0xd6, //0x0000037e cmpq %rdx, %r14 + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000381 jb LBB0_32 + 0xb8, 0x0f, 0x00, 0x00, 0x00, //0x00000387 movl $15, %eax + 0x48, 0xba, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x0000038c movabsq $1000000000000000, %rdx + 0x49, 0x39, 0xd6, //0x00000396 cmpq %rdx, %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000399 jb LBB0_32 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000039f movabsq $10000000000000000, %rax + 0x49, 0x39, 0xc6, //0x000003a9 cmpq %rax, %r14 + 0xb8, 0x11, 0x00, 0x00, 0x00, //0x000003ac movl $17, %eax + //0x000003b1 LBB0_31 + 0x83, 0xd8, 0x00, //0x000003b1 sbbl $0, %eax + //0x000003b4 LBB0_32 + 0x46, 0x8d, 0x0c, 0x38, //0x000003b4 leal (%rax,%r15), %r9d + 0x42, 0x8d, 0x54, 0x38, 0x05, //0x000003b8 leal $5(%rax,%r15), %edx + 0x41, 0x89, 0xc4, //0x000003bd movl %eax, %r12d + 0x83, 0xfa, 0x1b, //0x000003c0 cmpl $27, %edx + 0x0f, 0x82, 0xdb, 0x00, 0x00, 0x00, //0x000003c3 jb LBB0_36 + 0x4f, 0x8d, 0x7c, 0x20, 0x01, //0x000003c9 leaq $1(%r8,%r12), %r15 + 0x4c, 0x89, 0xf0, //0x000003ce movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000003d1 shrq $32, %rax + 0x0f, 0x84, 0xa8, 0x01, 0x00, 0x00, //0x000003d5 je LBB0_40 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000003db movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x000003e5 movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x000003e8 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000003eb shrq $26, %rdx + 0x69, 0xda, 0x00, 0x1f, 0x0a, 0xfa, //0x000003ef imull $-100000000, %edx, %ebx + 0x44, 0x01, 0xf3, //0x000003f5 addl %r14d, %ebx + 0x0f, 0x84, 0xc3, 0x07, 0x00, 0x00, //0x000003f8 je LBB0_86 + 0x89, 0xd8, //0x000003fe movl %ebx, %eax + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000400 movl $3518437209, %r10d + 0x49, 0x0f, 0xaf, 0xc2, //0x00000406 imulq %r10, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x0000040a shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x0000040e imull $10000, %eax, %ecx + 0x29, 0xcb, //0x00000414 subl %ecx, %ebx + 0x48, 0x89, 0xc1, //0x00000416 movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xca, //0x00000419 imulq %r10, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000041d shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x00000421 imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000427 subl %ecx, %eax + 0x0f, 0xb7, 0xcb, //0x00000429 movzwl %bx, %ecx + 0xc1, 0xe9, 0x02, //0x0000042c shrl $2, %ecx + 0x44, 0x69, 0xd1, 0x7b, 0x14, 0x00, 0x00, //0x0000042f imull $5243, %ecx, %r10d + 0x41, 0xc1, 0xea, 0x11, //0x00000436 shrl $17, %r10d + 0x41, 0x6b, 0xca, 0x64, //0x0000043a imull $100, %r10d, %ecx + 0x29, 0xcb, //0x0000043e subl %ecx, %ebx + 0x44, 0x0f, 0xb7, 0xdb, //0x00000440 movzwl %bx, %r11d + 0x0f, 0xb7, 0xd8, //0x00000444 movzwl %ax, %ebx + 0xc1, 0xeb, 0x02, //0x00000447 shrl $2, %ebx + 0x69, 0xdb, 0x7b, 0x14, 0x00, 0x00, //0x0000044a imull $5243, %ebx, %ebx + 0xc1, 0xeb, 0x11, //0x00000450 shrl $17, %ebx + 0x6b, 0xcb, 0x64, //0x00000453 imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00000456 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf0, //0x00000458 movzwl %ax, %r14d + 0x48, 0x8d, 0x0d, 0xed, 0x0d, 0x00, 0x00, //0x0000045c leaq $3565(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000463 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfe, //0x00000468 movw %ax, $-2(%r15) + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x0000046d movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00000472 movw %ax, $-4(%r15) + 0x42, 0x0f, 0xb7, 0x04, 0x71, //0x00000477 movzwl (%rcx,%r14,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfa, //0x0000047c movw %ax, $-6(%r15) + 0x0f, 0xb7, 0x04, 0x59, //0x00000481 movzwl (%rcx,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xf8, //0x00000485 movw %ax, $-8(%r15) + 0x45, 0x31, 0xd2, //0x0000048a xorl %r10d, %r10d + 0x4d, 0x8d, 0x67, 0xf8, //0x0000048d leaq $-8(%r15), %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000491 cmpl $10000, %edx + 0x0f, 0x83, 0xfb, 0x00, 0x00, 0x00, //0x00000497 jae LBB0_88 + //0x0000049d LBB0_41 + 0x89, 0xd3, //0x0000049d movl %edx, %ebx + 0xe9, 0x56, 0x01, 0x00, 0x00, //0x0000049f jmp LBB0_90 + //0x000004a4 LBB0_36 + 0x45, 0x85, 0xff, //0x000004a4 testl %r15d, %r15d + 0x0f, 0x88, 0x61, 0x04, 0x00, 0x00, //0x000004a7 js LBB0_57 + 0x4b, 0x8d, 0x1c, 0x20, //0x000004ad leaq (%r8,%r12), %rbx + 0x4c, 0x89, 0xf0, //0x000004b1 movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x000004b4 shrq $32, %rax + 0x0f, 0x84, 0xed, 0x04, 0x00, 0x00, //0x000004b8 je LBB0_62 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000004be movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x000004c8 movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x000004cb mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000004ce shrq $26, %rdx + 0x69, 0xf2, 0x00, 0x1f, 0x0a, 0xfa, //0x000004d2 imull $-100000000, %edx, %esi + 0x44, 0x01, 0xf6, //0x000004d8 addl %r14d, %esi + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000004db movl $3518437209, %r10d + 0x48, 0x89, 0xf0, //0x000004e1 movq %rsi, %rax + 0x49, 0x0f, 0xaf, 0xc2, //0x000004e4 imulq %r10, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000004e8 shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x000004ec imull $10000, %eax, %ecx + 0x29, 0xce, //0x000004f2 subl %ecx, %esi + 0x48, 0x89, 0xc1, //0x000004f4 movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xca, //0x000004f7 imulq %r10, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x000004fb shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x000004ff imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000505 subl %ecx, %eax + 0x0f, 0xb7, 0xce, //0x00000507 movzwl %si, %ecx + 0xc1, 0xe9, 0x02, //0x0000050a shrl $2, %ecx + 0x44, 0x69, 0xd1, 0x7b, 0x14, 0x00, 0x00, //0x0000050d imull $5243, %ecx, %r10d + 0x41, 0xc1, 0xea, 0x11, //0x00000514 shrl $17, %r10d + 0x41, 0x6b, 0xca, 0x64, //0x00000518 imull $100, %r10d, %ecx + 0x29, 0xce, //0x0000051c subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xde, //0x0000051e movzwl %si, %r11d + 0x0f, 0xb7, 0xf0, //0x00000522 movzwl %ax, %esi + 0xc1, 0xee, 0x02, //0x00000525 shrl $2, %esi + 0x69, 0xf6, 0x7b, 0x14, 0x00, 0x00, //0x00000528 imull $5243, %esi, %esi + 0xc1, 0xee, 0x11, //0x0000052e shrl $17, %esi + 0x6b, 0xce, 0x64, //0x00000531 imull $100, %esi, %ecx + 0x29, 0xc8, //0x00000534 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf8, //0x00000536 movzwl %ax, %r15d + 0x48, 0x8d, 0x0d, 0x0f, 0x0d, 0x00, 0x00, //0x0000053a leaq $3343(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000541 movzwl (%rcx,%r11,2), %eax + 0x66, 0x89, 0x43, 0xfe, //0x00000546 movw %ax, $-2(%rbx) + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x0000054a movzwl (%rcx,%r10,2), %eax + 0x66, 0x89, 0x43, 0xfc, //0x0000054f movw %ax, $-4(%rbx) + 0x42, 0x0f, 0xb7, 0x04, 0x79, //0x00000553 movzwl (%rcx,%r15,2), %eax + 0x66, 0x89, 0x43, 0xfa, //0x00000558 movw %ax, $-6(%rbx) + 0x48, 0x8d, 0x43, 0xf8, //0x0000055c leaq $-8(%rbx), %rax + 0x0f, 0xb7, 0x0c, 0x71, //0x00000560 movzwl (%rcx,%rsi,2), %ecx + 0x66, 0x89, 0x4b, 0xf8, //0x00000564 movw %cx, $-8(%rbx) + 0x41, 0x89, 0xd6, //0x00000568 movl %edx, %r14d + 0x49, 0x89, 0xff, //0x0000056b movq %rdi, %r15 + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000056e cmpl $10000, %r14d + 0x0f, 0x83, 0x43, 0x04, 0x00, 0x00, //0x00000575 jae LBB0_63 + //0x0000057b LBB0_39 + 0x44, 0x89, 0xf2, //0x0000057b movl %r14d, %edx + 0xe9, 0x97, 0x04, 0x00, 0x00, //0x0000057e jmp LBB0_65 + //0x00000583 LBB0_40 + 0x45, 0x31, 0xd2, //0x00000583 xorl %r10d, %r10d + 0x44, 0x89, 0xf2, //0x00000586 movl %r14d, %edx + 0x4d, 0x89, 0xfc, //0x00000589 movq %r15, %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x0000058c cmpl $10000, %edx + 0x0f, 0x82, 0x05, 0xff, 0xff, 0xff, //0x00000592 jb LBB0_41 + //0x00000598 LBB0_88 + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00000598 movl $3518437209, %r11d + 0x4c, 0x8d, 0x35, 0xab, 0x0c, 0x00, 0x00, //0x0000059e leaq $3243(%rip), %r14 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005a5 .p2align 4, 0x90 + //0x000005b0 LBB0_89 + 0x89, 0xd3, //0x000005b0 movl %edx, %ebx + 0x49, 0x0f, 0xaf, 0xdb, //0x000005b2 imulq %r11, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x000005b6 shrq $45, %rbx + 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x000005ba imull $-10000, %ebx, %eax + 0x01, 0xd0, //0x000005c0 addl %edx, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x000005c2 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x000005c9 shrq $37, %rsi + 0x6b, 0xce, 0x64, //0x000005cd imull $100, %esi, %ecx + 0x29, 0xc8, //0x000005d0 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x46, //0x000005d2 movzwl (%r14,%rax,2), %eax + 0x66, 0x41, 0x89, 0x44, 0x24, 0xfe, //0x000005d7 movw %ax, $-2(%r12) + 0x41, 0x0f, 0xb7, 0x04, 0x76, //0x000005dd movzwl (%r14,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x44, 0x24, 0xfc, //0x000005e2 movw %ax, $-4(%r12) + 0x49, 0x83, 0xc4, 0xfc, //0x000005e8 addq $-4, %r12 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x000005ec cmpl $99999999, %edx + 0x89, 0xda, //0x000005f2 movl %ebx, %edx + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x000005f4 ja LBB0_89 + //0x000005fa LBB0_90 + 0x83, 0xfb, 0x64, //0x000005fa cmpl $100, %ebx + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x000005fd jb LBB0_92 + 0x0f, 0xb7, 0xc3, //0x00000603 movzwl %bx, %eax + 0xc1, 0xe8, 0x02, //0x00000606 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000609 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000060f shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000612 imull $100, %eax, %ecx + 0x29, 0xcb, //0x00000615 subl %ecx, %ebx + 0x0f, 0xb7, 0xcb, //0x00000617 movzwl %bx, %ecx + 0x48, 0x8d, 0x15, 0x2f, 0x0c, 0x00, 0x00, //0x0000061a leaq $3119(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000621 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4c, 0x24, 0xfe, //0x00000625 movw %cx, $-2(%r12) + 0x49, 0x83, 0xc4, 0xfe, //0x0000062b addq $-2, %r12 + 0x89, 0xc3, //0x0000062f movl %eax, %ebx + //0x00000631 LBB0_92 + 0x49, 0x8d, 0x40, 0x01, //0x00000631 leaq $1(%r8), %rax + 0x83, 0xfb, 0x0a, //0x00000635 cmpl $10, %ebx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000638 jb LBB0_94 + 0x89, 0xd9, //0x0000063e movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x09, 0x0c, 0x00, 0x00, //0x00000640 leaq $3081(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000647 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4c, 0x24, 0xfe, //0x0000064b movw %cx, $-2(%r12) + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00000651 jmp LBB0_95 + //0x00000656 LBB0_94 + 0x80, 0xc3, 0x30, //0x00000656 addb $48, %bl + 0x88, 0x18, //0x00000659 movb %bl, (%rax) + //0x0000065b LBB0_95 + 0x4d, 0x29, 0xd7, //0x0000065b subq %r10, %r15 + 0x90, 0x90, //0x0000065e .p2align 4, 0x90 + //0x00000660 LBB0_96 + 0x41, 0x80, 0x7f, 0xff, 0x30, //0x00000660 cmpb $48, $-1(%r15) + 0x4d, 0x8d, 0x7f, 0xff, //0x00000665 leaq $-1(%r15), %r15 + 0x0f, 0x84, 0xf1, 0xff, 0xff, 0xff, //0x00000669 je LBB0_96 + 0x41, 0x8a, 0x48, 0x01, //0x0000066f movb $1(%r8), %cl + 0x41, 0x88, 0x08, //0x00000673 movb %cl, (%r8) + 0x49, 0x8d, 0x4f, 0x01, //0x00000676 leaq $1(%r15), %rcx + 0x48, 0x89, 0xca, //0x0000067a movq %rcx, %rdx + 0x48, 0x29, 0xc2, //0x0000067d subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000680 cmpq $2, %rdx + 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00000684 jl LBB0_99 + 0xc6, 0x00, 0x2e, //0x0000068a movb $46, (%rax) + 0x49, 0x89, 0xcf, //0x0000068d movq %rcx, %r15 + //0x00000690 LBB0_99 + 0x41, 0xc6, 0x07, 0x65, //0x00000690 movb $101, (%r15) + 0x45, 0x85, 0xc9, //0x00000694 testl %r9d, %r9d + 0x0f, 0x8e, 0xd1, 0x02, 0x00, 0x00, //0x00000697 jle LBB0_102 + 0x41, 0xff, 0xc9, //0x0000069d decl %r9d + 0x41, 0xc6, 0x47, 0x01, 0x2b, //0x000006a0 movb $43, $1(%r15) + 0x44, 0x89, 0xc8, //0x000006a5 movl %r9d, %eax + 0x83, 0xf8, 0x64, //0x000006a8 cmpl $100, %eax + 0x0f, 0x8c, 0xd3, 0x02, 0x00, 0x00, //0x000006ab jl LBB0_103 + //0x000006b1 LBB0_101 + 0x89, 0xc1, //0x000006b1 movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000006b3 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000006b8 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000006bc shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000006c0 leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000006c3 leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000006c6 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x81, 0x0b, 0x00, 0x00, //0x000006c8 leaq $2945(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000006cf movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x41, 0x89, 0x4f, 0x02, //0x000006d3 movw %cx, $2(%r15) + 0x0c, 0x30, //0x000006d8 orb $48, %al + 0x41, 0x88, 0x47, 0x04, //0x000006da movb %al, $4(%r15) + 0x49, 0x83, 0xc7, 0x05, //0x000006de addq $5, %r15 + 0x4d, 0x89, 0xf8, //0x000006e2 movq %r15, %r8 + 0xe9, 0x06, 0x0b, 0x00, 0x00, //0x000006e5 jmp LBB0_163 + //0x000006ea LBB0_42 + 0x49, 0xd3, 0xeb, //0x000006ea shrq %cl, %r11 + 0x48, 0xb8, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000006ed movabsq $8589934560, %rax + 0x48, 0x05, 0x1f, 0xe4, 0x0b, 0x54, //0x000006f7 addq $1410065439, %rax + 0x49, 0x39, 0xc3, //0x000006fd cmpq %rax, %r11 + 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00000700 jbe LBB0_73 + 0x4c, 0x89, 0xd8, //0x00000706 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000709 shrq $11, %rax + 0x41, 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000070d movl $11, %r10d + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000713 cmpq $48828125, %rax + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000719 jb LBB0_49 + 0x4c, 0x89, 0xd8, //0x0000071f movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x00000722 shrq $12, %rax + 0x41, 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000726 movl $12, %r10d + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x0000072c cmpq $244140625, %rax + 0x0f, 0x82, 0x62, 0x00, 0x00, 0x00, //0x00000732 jb LBB0_49 + 0x4c, 0x89, 0xd8, //0x00000738 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x0000073b shrq $13, %rax + 0x41, 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000073f movl $13, %r10d + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000745 cmpq $1220703125, %rax + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x0000074b jb LBB0_49 + 0x41, 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000751 movl $14, %r10d + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000757 movabsq $100000000000000, %rax + 0x49, 0x39, 0xc3, //0x00000761 cmpq %rax, %r11 + 0x0f, 0x82, 0x30, 0x00, 0x00, 0x00, //0x00000764 jb LBB0_49 + 0x41, 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000076a movl $15, %r10d + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000770 movabsq $1000000000000000, %rax + 0x49, 0x39, 0xc3, //0x0000077a cmpq %rax, %r11 + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000077d jb LBB0_49 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000783 movabsq $10000000000000000, %rax + 0x49, 0x39, 0xc3, //0x0000078d cmpq %rax, %r11 + 0x41, 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000790 movl $17, %r10d + 0x49, 0x83, 0xda, 0x00, //0x00000796 sbbq $0, %r10 + //0x0000079a LBB0_49 + 0x4d, 0x01, 0xc2, //0x0000079a addq %r8, %r10 + //0x0000079d LBB0_50 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000079d movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xd8, //0x000007a7 movq %r11, %rax + 0x48, 0xf7, 0xe2, //0x000007aa mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000007ad shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x000007b1 imull $-100000000, %edx, %ecx + 0x44, 0x01, 0xd9, //0x000007b7 addl %r11d, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x000007ba movl $3518437209, %r9d + 0x48, 0x89, 0xce, //0x000007c0 movq %rcx, %rsi + 0x49, 0x0f, 0xaf, 0xf1, //0x000007c3 imulq %r9, %rsi + 0x48, 0xc1, 0xee, 0x2d, //0x000007c7 shrq $45, %rsi + 0x69, 0xde, 0x10, 0x27, 0x00, 0x00, //0x000007cb imull $10000, %esi, %ebx + 0x29, 0xd9, //0x000007d1 subl %ebx, %ecx + 0x48, 0x89, 0xf0, //0x000007d3 movq %rsi, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x000007d6 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x000007da shrq $45, %rax + 0x69, 0xc0, 0x10, 0x27, 0x00, 0x00, //0x000007de imull $10000, %eax, %eax + 0x29, 0xc6, //0x000007e4 subl %eax, %esi + 0x0f, 0xb7, 0xc1, //0x000007e6 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x000007e9 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000007ec imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000007f2 shrl $17, %eax + 0x6b, 0xd8, 0x64, //0x000007f5 imull $100, %eax, %ebx + 0x29, 0xd9, //0x000007f8 subl %ebx, %ecx + 0x44, 0x0f, 0xb7, 0xc9, //0x000007fa movzwl %cx, %r9d + 0x0f, 0xb7, 0xde, //0x000007fe movzwl %si, %ebx + 0xc1, 0xeb, 0x02, //0x00000801 shrl $2, %ebx + 0x69, 0xdb, 0x7b, 0x14, 0x00, 0x00, //0x00000804 imull $5243, %ebx, %ebx + 0xc1, 0xeb, 0x11, //0x0000080a shrl $17, %ebx + 0x6b, 0xcb, 0x64, //0x0000080d imull $100, %ebx, %ecx + 0x29, 0xce, //0x00000810 subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xde, //0x00000812 movzwl %si, %r11d + 0x48, 0x8d, 0x35, 0x33, 0x0a, 0x00, 0x00, //0x00000816 leaq $2611(%rip), %rsi /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x0c, 0x4e, //0x0000081d movzwl (%rsi,%r9,2), %ecx + 0x66, 0x41, 0x89, 0x4a, 0xfe, //0x00000822 movw %cx, $-2(%r10) + 0x0f, 0xb7, 0x04, 0x46, //0x00000827 movzwl (%rsi,%rax,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xfc, //0x0000082b movw %ax, $-4(%r10) + 0x42, 0x0f, 0xb7, 0x04, 0x5e, //0x00000830 movzwl (%rsi,%r11,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xfa, //0x00000835 movw %ax, $-6(%r10) + 0x0f, 0xb7, 0x04, 0x5e, //0x0000083a movzwl (%rsi,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x42, 0xf8, //0x0000083e movw %ax, $-8(%r10) + 0x49, 0x8d, 0x42, 0xf8, //0x00000843 leaq $-8(%r10), %rax + 0x49, 0x89, 0xd3, //0x00000847 movq %rdx, %r11 + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000084a cmpl $10000, %r11d + 0x0f, 0x82, 0x48, 0x03, 0x00, 0x00, //0x00000851 jb LBB0_83 + //0x00000857 LBB0_51 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000857 movl $3518437209, %r9d + 0x4c, 0x8d, 0x35, 0xec, 0x09, 0x00, 0x00, //0x0000085d leaq $2540(%rip), %r14 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000864 .p2align 4, 0x90 + //0x00000870 LBB0_52 + 0x44, 0x89, 0xda, //0x00000870 movl %r11d, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000873 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000877 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x0000087b imull $-10000, %edx, %ecx + 0x44, 0x01, 0xd9, //0x00000881 addl %r11d, %ecx + 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x00000884 imulq $1374389535, %rcx, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x0000088b shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x0000088f imull $100, %esi, %ebx + 0x29, 0xd9, //0x00000892 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4e, //0x00000894 movzwl (%r14,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000899 movw %cx, $-2(%rax) + 0x41, 0x0f, 0xb7, 0x0c, 0x76, //0x0000089d movzwl (%r14,%rsi,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x000008a2 movw %cx, $-4(%rax) + 0x48, 0x83, 0xc0, 0xfc, //0x000008a6 addq $-4, %rax + 0x41, 0x81, 0xfb, 0xff, 0xe0, 0xf5, 0x05, //0x000008aa cmpl $99999999, %r11d + 0x41, 0x89, 0xd3, //0x000008b1 movl %edx, %r11d + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x000008b4 ja LBB0_52 + 0x83, 0xfa, 0x64, //0x000008ba cmpl $100, %edx + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x000008bd jb LBB0_55 + //0x000008c3 LBB0_54 + 0x0f, 0xb7, 0xca, //0x000008c3 movzwl %dx, %ecx + 0xc1, 0xe9, 0x02, //0x000008c6 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000008c9 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000008cf shrl $17, %ecx + 0x6b, 0xf1, 0x64, //0x000008d2 imull $100, %ecx, %esi + 0x29, 0xf2, //0x000008d5 subl %esi, %edx + 0x0f, 0xb7, 0xd2, //0x000008d7 movzwl %dx, %edx + 0x48, 0x8d, 0x35, 0x6f, 0x09, 0x00, 0x00, //0x000008da leaq $2415(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x000008e1 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x000008e5 movw %dx, $-2(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x000008e9 addq $-2, %rax + 0x89, 0xca, //0x000008ed movl %ecx, %edx + //0x000008ef LBB0_55 + 0x83, 0xfa, 0x0a, //0x000008ef cmpl $10, %edx + 0x0f, 0x82, 0xb8, 0x02, 0x00, 0x00, //0x000008f2 jb LBB0_84 + 0x89, 0xd1, //0x000008f8 movl %edx, %ecx + 0x48, 0x8d, 0x15, 0x4f, 0x09, 0x00, 0x00, //0x000008fa leaq $2383(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000901 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfe, //0x00000905 movw %cx, $-2(%rax) + 0xe9, 0xa8, 0x02, 0x00, 0x00, //0x00000909 jmp LBB0_85 + //0x0000090e LBB0_57 + 0x45, 0x85, 0xc9, //0x0000090e testl %r9d, %r9d + 0x0f, 0x8f, 0xda, 0x04, 0x00, 0x00, //0x00000911 jg LBB0_122 + 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x00000917 movw $11824, (%r8) + 0x49, 0x83, 0xc0, 0x02, //0x0000091d addq $2, %r8 + 0x45, 0x85, 0xc9, //0x00000921 testl %r9d, %r9d + 0x0f, 0x89, 0xc7, 0x04, 0x00, 0x00, //0x00000924 jns LBB0_122 + 0x31, 0xc0, //0x0000092a xorl %eax, %eax + 0x41, 0x83, 0xf9, 0xe0, //0x0000092c cmpl $-32, %r9d + 0x0f, 0x87, 0x9e, 0x04, 0x00, 0x00, //0x00000930 ja LBB0_120 + 0x45, 0x89, 0xcb, //0x00000936 movl %r9d, %r11d + 0x41, 0xf7, 0xd3, //0x00000939 notl %r11d + 0x49, 0xff, 0xc3, //0x0000093c incq %r11 + 0x4c, 0x89, 0xd8, //0x0000093f movq %r11, %rax + 0x4c, 0x21, 0xd0, //0x00000942 andq %r10, %rax + 0x48, 0x8d, 0x70, 0xe0, //0x00000945 leaq $-32(%rax), %rsi + 0x48, 0x89, 0xf2, //0x00000949 movq %rsi, %rdx + 0x48, 0xc1, 0xea, 0x05, //0x0000094c shrq $5, %rdx + 0x48, 0xff, 0xc2, //0x00000950 incq %rdx + 0x41, 0x89, 0xd7, //0x00000953 movl %edx, %r15d + 0x41, 0x83, 0xe7, 0x07, //0x00000956 andl $7, %r15d + 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x0000095a cmpq $224, %rsi + 0x0f, 0x83, 0x8d, 0x03, 0x00, 0x00, //0x00000961 jae LBB0_114 + 0x31, 0xd2, //0x00000967 xorl %edx, %edx + 0xe9, 0x27, 0x04, 0x00, 0x00, //0x00000969 jmp LBB0_116 + //0x0000096e LBB0_102 + 0x41, 0xc6, 0x47, 0x01, 0x2d, //0x0000096e movb $45, $1(%r15) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000973 movl $1, %eax + 0x44, 0x29, 0xc8, //0x00000978 subl %r9d, %eax + 0x83, 0xf8, 0x64, //0x0000097b cmpl $100, %eax + 0x0f, 0x8d, 0x2d, 0xfd, 0xff, 0xff, //0x0000097e jge LBB0_101 + //0x00000984 LBB0_103 + 0x83, 0xf8, 0x0a, //0x00000984 cmpl $10, %eax + 0x0f, 0x8c, 0x5b, 0x01, 0x00, 0x00, //0x00000987 jl LBB0_105 + 0x48, 0x98, //0x0000098d cltq + 0x48, 0x8d, 0x0d, 0xba, 0x08, 0x00, 0x00, //0x0000098f leaq $2234(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000996 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x47, 0x02, //0x0000099a movw %ax, $2(%r15) + 0x49, 0x83, 0xc7, 0x04, //0x0000099f addq $4, %r15 + 0x4d, 0x89, 0xf8, //0x000009a3 movq %r15, %r8 + 0xe9, 0x45, 0x08, 0x00, 0x00, //0x000009a6 jmp LBB0_163 + //0x000009ab LBB0_62 + 0x48, 0x89, 0xd8, //0x000009ab movq %rbx, %rax + 0x49, 0x89, 0xff, //0x000009ae movq %rdi, %r15 + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x000009b1 cmpl $10000, %r14d + 0x0f, 0x82, 0xbd, 0xfb, 0xff, 0xff, //0x000009b8 jb LBB0_39 + //0x000009be LBB0_63 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x000009be movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0x85, 0x08, 0x00, 0x00, //0x000009c4 leaq $2181(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009cb .p2align 4, 0x90 + //0x000009d0 LBB0_64 + 0x44, 0x89, 0xf2, //0x000009d0 movl %r14d, %edx + 0x49, 0x0f, 0xaf, 0xd2, //0x000009d3 imulq %r10, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x000009d7 shrq $45, %rdx + 0x69, 0xf2, 0xf0, 0xd8, 0xff, 0xff, //0x000009db imull $-10000, %edx, %esi + 0x44, 0x01, 0xf6, //0x000009e1 addl %r14d, %esi + 0x48, 0x69, 0xce, 0x1f, 0x85, 0xeb, 0x51, //0x000009e4 imulq $1374389535, %rsi, %rcx + 0x48, 0xc1, 0xe9, 0x25, //0x000009eb shrq $37, %rcx + 0x6b, 0xf9, 0x64, //0x000009ef imull $100, %ecx, %edi + 0x29, 0xfe, //0x000009f2 subl %edi, %esi + 0x41, 0x0f, 0xb7, 0x34, 0x73, //0x000009f4 movzwl (%r11,%rsi,2), %esi + 0x66, 0x89, 0x70, 0xfe, //0x000009f9 movw %si, $-2(%rax) + 0x41, 0x0f, 0xb7, 0x0c, 0x4b, //0x000009fd movzwl (%r11,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0xfc, //0x00000a02 movw %cx, $-4(%rax) + 0x48, 0x83, 0xc0, 0xfc, //0x00000a06 addq $-4, %rax + 0x41, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000a0a cmpl $99999999, %r14d + 0x41, 0x89, 0xd6, //0x00000a11 movl %edx, %r14d + 0x0f, 0x87, 0xb6, 0xff, 0xff, 0xff, //0x00000a14 ja LBB0_64 + //0x00000a1a LBB0_65 + 0x83, 0xfa, 0x64, //0x00000a1a cmpl $100, %edx + 0x0f, 0x82, 0x2c, 0x00, 0x00, 0x00, //0x00000a1d jb LBB0_67 + 0x0f, 0xb7, 0xca, //0x00000a23 movzwl %dx, %ecx + 0xc1, 0xe9, 0x02, //0x00000a26 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00000a29 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00000a2f shrl $17, %ecx + 0x6b, 0xf1, 0x64, //0x00000a32 imull $100, %ecx, %esi + 0x29, 0xf2, //0x00000a35 subl %esi, %edx + 0x0f, 0xb7, 0xd2, //0x00000a37 movzwl %dx, %edx + 0x48, 0x8d, 0x35, 0x0f, 0x08, 0x00, 0x00, //0x00000a3a leaq $2063(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00000a41 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x00000a45 movw %dx, $-2(%rax) + 0x48, 0x83, 0xc0, 0xfe, //0x00000a49 addq $-2, %rax + 0x89, 0xca, //0x00000a4d movl %ecx, %edx + //0x00000a4f LBB0_67 + 0x4c, 0x89, 0xff, //0x00000a4f movq %r15, %rdi + 0x4c, 0x8b, 0x5d, 0xd0, //0x00000a52 movq $-48(%rbp), %r11 + 0x49, 0x63, 0xc9, //0x00000a56 movslq %r9d, %rcx + 0x83, 0xfa, 0x0a, //0x00000a59 cmpl $10, %edx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000a5c jb LBB0_69 + 0x89, 0xd2, //0x00000a62 movl %edx, %edx + 0x48, 0x8d, 0x35, 0xe5, 0x07, 0x00, 0x00, //0x00000a64 leaq $2021(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00000a6b movzwl (%rsi,%rdx,2), %edx + 0x66, 0x89, 0x50, 0xfe, //0x00000a6f movw %dx, $-2(%rax) + 0x49, 0x01, 0xc8, //0x00000a73 addq %rcx, %r8 + 0x49, 0x39, 0xcc, //0x00000a76 cmpq %rcx, %r12 + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000a79 jl LBB0_70 + 0xe9, 0x6c, 0x07, 0x00, 0x00, //0x00000a7f jmp LBB0_163 + //0x00000a84 LBB0_69 + 0x80, 0xc2, 0x30, //0x00000a84 addb $48, %dl + 0x41, 0x88, 0x10, //0x00000a87 movb %dl, (%r8) + 0x49, 0x01, 0xc8, //0x00000a8a addq %rcx, %r8 + 0x49, 0x39, 0xcc, //0x00000a8d cmpq %rcx, %r12 + 0x0f, 0x8d, 0x5a, 0x07, 0x00, 0x00, //0x00000a90 jge LBB0_163 + //0x00000a96 LBB0_70 + 0x4b, 0x8d, 0x04, 0x23, //0x00000a96 leaq (%r11,%r12), %rax + 0x4c, 0x8d, 0x54, 0x07, 0x01, //0x00000a9a leaq $1(%rdi,%rax), %r10 + 0x4d, 0x39, 0xc2, //0x00000a9f cmpq %r8, %r10 + 0x4d, 0x0f, 0x46, 0xd0, //0x00000aa2 cmovbeq %r8, %r10 + 0x4a, 0x8d, 0x0c, 0x1f, //0x00000aa6 leaq (%rdi,%r11), %rcx + 0x4c, 0x01, 0xe1, //0x00000aaa addq %r12, %rcx + 0x49, 0x29, 0xca, //0x00000aad subq %rcx, %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00000ab0 cmpq $32, %r10 + 0x0f, 0x82, 0x26, 0x02, 0x00, 0x00, //0x00000ab4 jb LBB0_113 + 0x4d, 0x89, 0xd1, //0x00000aba movq %r10, %r9 + 0x49, 0x83, 0xe1, 0xe0, //0x00000abd andq $-32, %r9 + 0x49, 0x8d, 0x71, 0xe0, //0x00000ac1 leaq $-32(%r9), %rsi + 0x48, 0x89, 0xf2, //0x00000ac5 movq %rsi, %rdx + 0x48, 0xc1, 0xea, 0x05, //0x00000ac8 shrq $5, %rdx + 0x48, 0xff, 0xc2, //0x00000acc incq %rdx + 0x89, 0xd1, //0x00000acf movl %edx, %ecx + 0x83, 0xe1, 0x07, //0x00000ad1 andl $7, %ecx + 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x00000ad4 cmpq $224, %rsi + 0x0f, 0x83, 0xfb, 0x00, 0x00, 0x00, //0x00000adb jae LBB0_106 + 0x31, 0xc0, //0x00000ae1 xorl %eax, %eax + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x00000ae3 jmp LBB0_108 + //0x00000ae8 LBB0_105 + 0x04, 0x30, //0x00000ae8 addb $48, %al + 0x41, 0x88, 0x47, 0x02, //0x00000aea movb %al, $2(%r15) + 0x49, 0x83, 0xc7, 0x03, //0x00000aee addq $3, %r15 + 0x4d, 0x89, 0xf8, //0x00000af2 movq %r15, %r8 + 0xe9, 0xf6, 0x06, 0x00, 0x00, //0x00000af5 jmp LBB0_163 + //0x00000afa LBB0_73 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000afa movl $1, %r10d + 0x49, 0x83, 0xfb, 0x0a, //0x00000b00 cmpq $10, %r11 + 0x0f, 0x82, 0x82, 0x00, 0x00, 0x00, //0x00000b04 jb LBB0_81 + 0x41, 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000b0a movl $2, %r10d + 0x49, 0x83, 0xfb, 0x64, //0x00000b10 cmpq $100, %r11 + 0x0f, 0x82, 0x72, 0x00, 0x00, 0x00, //0x00000b14 jb LBB0_81 + 0x41, 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000b1a movl $3, %r10d + 0x49, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00000b20 cmpq $1000, %r11 + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x00000b27 jb LBB0_81 + 0x41, 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000b2d movl $4, %r10d + 0x49, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00000b33 cmpq $10000, %r11 + 0x0f, 0x82, 0x4c, 0x00, 0x00, 0x00, //0x00000b3a jb LBB0_81 + 0x41, 0xba, 0x05, 0x00, 0x00, 0x00, //0x00000b40 movl $5, %r10d + 0x49, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00000b46 cmpq $100000, %r11 + 0x0f, 0x82, 0x39, 0x00, 0x00, 0x00, //0x00000b4d jb LBB0_81 + 0x41, 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000b53 movl $6, %r10d + 0x49, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00000b59 cmpq $1000000, %r11 + 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00000b60 jb LBB0_81 + 0x41, 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000b66 movl $7, %r10d + 0x49, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00000b6c cmpq $10000000, %r11 + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00000b73 jb LBB0_81 + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000b79 movl $8, %r10d + 0x49, 0x81, 0xfb, 0xff, 0xe0, 0xf5, 0x05, //0x00000b7f cmpq $99999999, %r11 + 0x0f, 0x87, 0x93, 0x06, 0x00, 0x00, //0x00000b86 ja LBB0_167 + //0x00000b8c LBB0_81 + 0x4d, 0x01, 0xc2, //0x00000b8c addq %r8, %r10 + //0x00000b8f LBB0_82 + 0x4c, 0x89, 0xd0, //0x00000b8f movq %r10, %rax + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00000b92 cmpl $10000, %r11d + 0x0f, 0x83, 0xb8, 0xfc, 0xff, 0xff, //0x00000b99 jae LBB0_51 + //0x00000b9f LBB0_83 + 0x44, 0x89, 0xda, //0x00000b9f movl %r11d, %edx + 0x83, 0xfa, 0x64, //0x00000ba2 cmpl $100, %edx + 0x0f, 0x83, 0x18, 0xfd, 0xff, 0xff, //0x00000ba5 jae LBB0_54 + 0xe9, 0x3f, 0xfd, 0xff, 0xff, //0x00000bab jmp LBB0_55 + //0x00000bb0 LBB0_84 + 0x80, 0xc2, 0x30, //0x00000bb0 addb $48, %dl + 0x41, 0x88, 0x10, //0x00000bb3 movb %dl, (%r8) + //0x00000bb6 LBB0_85 + 0x41, 0x29, 0xfa, //0x00000bb6 subl %edi, %r10d + 0x45, 0x89, 0xd0, //0x00000bb9 movl %r10d, %r8d + 0xe9, 0x32, 0x06, 0x00, 0x00, //0x00000bbc jmp LBB0_164 + //0x00000bc1 LBB0_86 + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000bc1 movl $8, %r10d + 0x4d, 0x8d, 0x67, 0xf8, //0x00000bc7 leaq $-8(%r15), %r12 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000bcb cmpl $10000, %edx + 0x0f, 0x82, 0xc6, 0xf8, 0xff, 0xff, //0x00000bd1 jb LBB0_41 + 0xe9, 0xbc, 0xf9, 0xff, 0xff, //0x00000bd7 jmp LBB0_88 + //0x00000bdc LBB0_106 + 0x48, 0x29, 0xca, //0x00000bdc subq %rcx, %rdx + 0x48, 0x8d, 0xb4, 0x07, 0xf0, 0x00, 0x00, 0x00, //0x00000bdf leaq $240(%rdi,%rax), %rsi + 0x31, 0xc0, //0x00000be7 xorl %eax, %eax + 0xf3, 0x0f, 0x6f, 0x05, 0x0f, 0xf4, 0xff, 0xff, //0x00000be9 movdqu $-3057(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bf1 .p2align 4, 0x90 + //0x00000c00 LBB0_107 + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x10, 0xff, 0xff, 0xff, //0x00000c00 movdqu %xmm0, $-240(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x20, 0xff, 0xff, 0xff, //0x00000c09 movdqu %xmm0, $-224(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x30, 0xff, 0xff, 0xff, //0x00000c12 movdqu %xmm0, $-208(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x40, 0xff, 0xff, 0xff, //0x00000c1b movdqu %xmm0, $-192(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x50, 0xff, 0xff, 0xff, //0x00000c24 movdqu %xmm0, $-176(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x60, 0xff, 0xff, 0xff, //0x00000c2d movdqu %xmm0, $-160(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x06, 0x70, 0xff, 0xff, 0xff, //0x00000c36 movdqu %xmm0, $-144(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0x80, //0x00000c3f movdqu %xmm0, $-128(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0x90, //0x00000c45 movdqu %xmm0, $-112(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0xa0, //0x00000c4b movdqu %xmm0, $-96(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0xb0, //0x00000c51 movdqu %xmm0, $-80(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0xc0, //0x00000c57 movdqu %xmm0, $-64(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0xd0, //0x00000c5d movdqu %xmm0, $-48(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0xe0, //0x00000c63 movdqu %xmm0, $-32(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x06, 0xf0, //0x00000c69 movdqu %xmm0, $-16(%rsi,%rax) + 0xf3, 0x0f, 0x7f, 0x04, 0x06, //0x00000c6f movdqu %xmm0, (%rsi,%rax) + 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00000c74 addq $256, %rax + 0x48, 0x83, 0xc2, 0xf8, //0x00000c7a addq $-8, %rdx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x00000c7e jne LBB0_107 + //0x00000c84 LBB0_108 + 0x48, 0x85, 0xc9, //0x00000c84 testq %rcx, %rcx + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x00000c87 je LBB0_111 + 0x4c, 0x01, 0xd8, //0x00000c8d addq %r11, %rax + 0x4c, 0x01, 0xe0, //0x00000c90 addq %r12, %rax + 0x48, 0x8d, 0x44, 0x07, 0x10, //0x00000c93 leaq $16(%rdi,%rax), %rax + 0x48, 0xf7, 0xd9, //0x00000c98 negq %rcx + 0xf3, 0x0f, 0x6f, 0x05, 0x5d, 0xf3, 0xff, 0xff, //0x00000c9b movdqu $-3235(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ca3 .p2align 4, 0x90 + //0x00000cb0 LBB0_110 + 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x00000cb0 movdqu %xmm0, $-16(%rax) + 0xf3, 0x0f, 0x7f, 0x00, //0x00000cb5 movdqu %xmm0, (%rax) + 0x48, 0x83, 0xc0, 0x20, //0x00000cb9 addq $32, %rax + 0x48, 0xff, 0xc1, //0x00000cbd incq %rcx + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000cc0 jne LBB0_110 + //0x00000cc6 LBB0_111 + 0x4d, 0x39, 0xd1, //0x00000cc6 cmpq %r10, %r9 + 0x0f, 0x84, 0x21, 0x05, 0x00, 0x00, //0x00000cc9 je LBB0_163 + 0x4c, 0x01, 0xcb, //0x00000ccf addq %r9, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cd2 .p2align 4, 0x90 + //0x00000ce0 LBB0_113 + 0xc6, 0x03, 0x30, //0x00000ce0 movb $48, (%rbx) + 0x48, 0xff, 0xc3, //0x00000ce3 incq %rbx + 0x4c, 0x39, 0xc3, //0x00000ce6 cmpq %r8, %rbx + 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00000ce9 jb LBB0_113 + 0xe9, 0xfc, 0x04, 0x00, 0x00, //0x00000cef jmp LBB0_163 + //0x00000cf4 LBB0_114 + 0x48, 0x8b, 0x4d, 0xd0, //0x00000cf4 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0xb4, 0x39, 0xf2, 0x00, 0x00, 0x00, //0x00000cf8 leaq $242(%rcx,%rdi), %rsi + 0x4c, 0x89, 0xfb, //0x00000d00 movq %r15, %rbx + 0x48, 0x29, 0xd3, //0x00000d03 subq %rdx, %rbx + 0x31, 0xd2, //0x00000d06 xorl %edx, %edx + 0xf3, 0x0f, 0x6f, 0x05, 0xf0, 0xf2, 0xff, 0xff, //0x00000d08 movdqu $-3344(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x00000d10 LBB0_115 + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x10, 0xff, 0xff, 0xff, //0x00000d10 movdqu %xmm0, $-240(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x20, 0xff, 0xff, 0xff, //0x00000d19 movdqu %xmm0, $-224(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x30, 0xff, 0xff, 0xff, //0x00000d22 movdqu %xmm0, $-208(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x40, 0xff, 0xff, 0xff, //0x00000d2b movdqu %xmm0, $-192(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x50, 0xff, 0xff, 0xff, //0x00000d34 movdqu %xmm0, $-176(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x60, 0xff, 0xff, 0xff, //0x00000d3d movdqu %xmm0, $-160(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x16, 0x70, 0xff, 0xff, 0xff, //0x00000d46 movdqu %xmm0, $-144(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0x80, //0x00000d4f movdqu %xmm0, $-128(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0x90, //0x00000d55 movdqu %xmm0, $-112(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0xa0, //0x00000d5b movdqu %xmm0, $-96(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0xb0, //0x00000d61 movdqu %xmm0, $-80(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0xc0, //0x00000d67 movdqu %xmm0, $-64(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0xd0, //0x00000d6d movdqu %xmm0, $-48(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0xe0, //0x00000d73 movdqu %xmm0, $-32(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x16, 0xf0, //0x00000d79 movdqu %xmm0, $-16(%rsi,%rdx) + 0xf3, 0x0f, 0x7f, 0x04, 0x16, //0x00000d7f movdqu %xmm0, (%rsi,%rdx) + 0x48, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, //0x00000d84 addq $256, %rdx + 0x48, 0x83, 0xc3, 0x08, //0x00000d8b addq $8, %rbx + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x00000d8f jne LBB0_115 + //0x00000d95 LBB0_116 + 0x4d, 0x85, 0xff, //0x00000d95 testq %r15, %r15 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00000d98 je LBB0_119 + 0x48, 0x03, 0x55, 0xd0, //0x00000d9e addq $-48(%rbp), %rdx + 0x48, 0x8d, 0x54, 0x17, 0x12, //0x00000da2 leaq $18(%rdi,%rdx), %rdx + 0x49, 0xf7, 0xdf, //0x00000da7 negq %r15 + 0xf3, 0x0f, 0x6f, 0x05, 0x4e, 0xf2, 0xff, 0xff, //0x00000daa movdqu $-3506(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x00000db2 LBB0_118 + 0xf3, 0x0f, 0x7f, 0x42, 0xf0, //0x00000db2 movdqu %xmm0, $-16(%rdx) + 0xf3, 0x0f, 0x7f, 0x02, //0x00000db7 movdqu %xmm0, (%rdx) + 0x48, 0x83, 0xc2, 0x20, //0x00000dbb addq $32, %rdx + 0x49, 0xff, 0xc7, //0x00000dbf incq %r15 + 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000dc2 jne LBB0_118 + //0x00000dc8 LBB0_119 + 0x49, 0x01, 0xc0, //0x00000dc8 addq %rax, %r8 + 0x49, 0x39, 0xc3, //0x00000dcb cmpq %rax, %r11 + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00000dce je LBB0_122 + //0x00000dd4 LBB0_120 + 0x44, 0x89, 0xca, //0x00000dd4 movl %r9d, %edx + 0xf7, 0xda, //0x00000dd7 negl %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000dd9 .p2align 4, 0x90 + //0x00000de0 LBB0_121 + 0x41, 0xc6, 0x00, 0x30, //0x00000de0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x00000de4 incq %r8 + 0xff, 0xc0, //0x00000de7 incl %eax + 0x39, 0xd0, //0x00000de9 cmpl %edx, %eax + 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x00000deb jl LBB0_121 + //0x00000df1 LBB0_122 + 0x4f, 0x8d, 0x2c, 0x20, //0x00000df1 leaq (%r8,%r12), %r13 + 0x4c, 0x89, 0xf0, //0x00000df5 movq %r14, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000df8 shrq $32, %rax + 0x0f, 0x84, 0xc9, 0x00, 0x00, 0x00, //0x00000dfc je LBB0_125 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000e02 movabsq $-6067343680855748867, %rdx + 0x4c, 0x89, 0xf0, //0x00000e0c movq %r14, %rax + 0x48, 0xf7, 0xe2, //0x00000e0f mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00000e12 shrq $26, %rdx + 0x69, 0xf2, 0x00, 0x1f, 0x0a, 0xfa, //0x00000e16 imull $-100000000, %edx, %esi + 0x44, 0x01, 0xf6, //0x00000e1c addl %r14d, %esi + 0x0f, 0x84, 0x40, 0x02, 0x00, 0x00, //0x00000e1f je LBB0_127 + 0x89, 0xf0, //0x00000e25 movl %esi, %eax + 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00000e27 movl $3518437209, %r11d + 0x49, 0x0f, 0xaf, 0xc3, //0x00000e2d imulq %r11, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000e31 shrq $45, %rax + 0x69, 0xc8, 0x10, 0x27, 0x00, 0x00, //0x00000e35 imull $10000, %eax, %ecx + 0x29, 0xce, //0x00000e3b subl %ecx, %esi + 0x48, 0x89, 0xc1, //0x00000e3d movq %rax, %rcx + 0x49, 0x0f, 0xaf, 0xcb, //0x00000e40 imulq %r11, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000e44 shrq $45, %rcx + 0x69, 0xc9, 0x10, 0x27, 0x00, 0x00, //0x00000e48 imull $10000, %ecx, %ecx + 0x29, 0xc8, //0x00000e4e subl %ecx, %eax + 0x0f, 0xb7, 0xce, //0x00000e50 movzwl %si, %ecx + 0xc1, 0xe9, 0x02, //0x00000e53 shrl $2, %ecx + 0x44, 0x69, 0xd9, 0x7b, 0x14, 0x00, 0x00, //0x00000e56 imull $5243, %ecx, %r11d + 0x41, 0xc1, 0xeb, 0x11, //0x00000e5d shrl $17, %r11d + 0x41, 0x6b, 0xcb, 0x64, //0x00000e61 imull $100, %r11d, %ecx + 0x29, 0xce, //0x00000e65 subl %ecx, %esi + 0x44, 0x0f, 0xb7, 0xf6, //0x00000e67 movzwl %si, %r14d + 0x0f, 0xb7, 0xf0, //0x00000e6b movzwl %ax, %esi + 0xc1, 0xee, 0x02, //0x00000e6e shrl $2, %esi + 0x69, 0xf6, 0x7b, 0x14, 0x00, 0x00, //0x00000e71 imull $5243, %esi, %esi + 0xc1, 0xee, 0x11, //0x00000e77 shrl $17, %esi + 0x6b, 0xce, 0x64, //0x00000e7a imull $100, %esi, %ecx + 0x29, 0xc8, //0x00000e7d subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xf8, //0x00000e7f movzwl %ax, %r15d + 0x48, 0x8d, 0x0d, 0xc6, 0x03, 0x00, 0x00, //0x00000e83 leaq $966(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x71, //0x00000e8a movzwl (%rcx,%r14,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000e8f movw %ax, $-2(%r13) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000e94 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfc, //0x00000e99 movw %ax, $-4(%r13) + 0x42, 0x0f, 0xb7, 0x04, 0x79, //0x00000e9e movzwl (%rcx,%r15,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfa, //0x00000ea3 movw %ax, $-6(%r13) + 0x0f, 0xb7, 0x04, 0x71, //0x00000ea8 movzwl (%rcx,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xf8, //0x00000eac movw %ax, $-8(%r13) + 0x45, 0x31, 0xdb, //0x00000eb1 xorl %r11d, %r11d + 0x49, 0x83, 0xc5, 0xf8, //0x00000eb4 addq $-8, %r13 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000eb8 cmpl $10000, %edx + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x00000ebe jae LBB0_129 + //0x00000ec4 LBB0_126 + 0x89, 0xd1, //0x00000ec4 movl %edx, %ecx + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000ec6 jmp LBB0_131 + //0x00000ecb LBB0_125 + 0x45, 0x31, 0xdb, //0x00000ecb xorl %r11d, %r11d + 0x44, 0x89, 0xf2, //0x00000ece movl %r14d, %edx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00000ed1 cmpl $10000, %edx + 0x0f, 0x82, 0xe7, 0xff, 0xff, 0xff, //0x00000ed7 jb LBB0_126 + //0x00000edd LBB0_129 + 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00000edd movl $3518437209, %r14d + 0x4c, 0x8d, 0x3d, 0x66, 0x03, 0x00, 0x00, //0x00000ee3 leaq $870(%rip), %r15 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000eea .p2align 4, 0x90 + //0x00000ef0 LBB0_130 + 0x89, 0xd1, //0x00000ef0 movl %edx, %ecx + 0x49, 0x0f, 0xaf, 0xce, //0x00000ef2 imulq %r14, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x00000ef6 shrq $45, %rcx + 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00000efa imull $-10000, %ecx, %eax + 0x01, 0xd0, //0x00000f00 addl %edx, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00000f02 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00000f09 shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00000f0d imull $100, %esi, %ebx + 0x29, 0xd8, //0x00000f10 subl %ebx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x47, //0x00000f12 movzwl (%r15,%rax,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000f17 movw %ax, $-2(%r13) + 0x41, 0x0f, 0xb7, 0x04, 0x77, //0x00000f1c movzwl (%r15,%rsi,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfc, //0x00000f21 movw %ax, $-4(%r13) + 0x49, 0x83, 0xc5, 0xfc, //0x00000f26 addq $-4, %r13 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00000f2a cmpl $99999999, %edx + 0x89, 0xca, //0x00000f30 movl %ecx, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000f32 ja LBB0_130 + //0x00000f38 LBB0_131 + 0x83, 0xf9, 0x64, //0x00000f38 cmpl $100, %ecx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000f3b jb LBB0_133 + 0x0f, 0xb7, 0xc1, //0x00000f41 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000f44 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f47 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f4d shrl $17, %eax + 0x6b, 0xd0, 0x64, //0x00000f50 imull $100, %eax, %edx + 0x29, 0xd1, //0x00000f53 subl %edx, %ecx + 0x0f, 0xb7, 0xc9, //0x00000f55 movzwl %cx, %ecx + 0x48, 0x8d, 0x15, 0xf1, 0x02, 0x00, 0x00, //0x00000f58 leaq $753(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f5f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4d, 0xfe, //0x00000f63 movw %cx, $-2(%r13) + 0x49, 0x83, 0xc5, 0xfe, //0x00000f68 addq $-2, %r13 + 0x89, 0xc1, //0x00000f6c movl %eax, %ecx + //0x00000f6e LBB0_133 + 0x83, 0xf9, 0x0a, //0x00000f6e cmpl $10, %ecx + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000f71 jb LBB0_135 + 0x89, 0xc8, //0x00000f77 movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xd0, 0x02, 0x00, 0x00, //0x00000f79 leaq $720(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000f80 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x45, 0xfe, //0x00000f84 movw %ax, $-2(%r13) + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000f89 jmp LBB0_136 + //0x00000f8e LBB0_135 + 0x80, 0xc1, 0x30, //0x00000f8e addb $48, %cl + 0x41, 0x88, 0x08, //0x00000f91 movb %cl, (%r8) + //0x00000f94 LBB0_136 + 0x4d, 0x29, 0xdc, //0x00000f94 subq %r11, %r12 + 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00000f97 leaq $1(%r12), %rcx + 0x49, 0x8d, 0x54, 0x24, 0x11, //0x00000f9c leaq $17(%r12), %rdx + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x00000fa1 leaq $2(%r12), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fa6 .p2align 4, 0x90 + //0x00000fb0 LBB0_137 + 0x48, 0xff, 0xca, //0x00000fb0 decq %rdx + 0x48, 0xff, 0xc9, //0x00000fb3 decq %rcx + 0x48, 0xff, 0xcb, //0x00000fb6 decq %rbx + 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000fb9 cmpb $48, $-1(%r8,%r12) + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x00000fbf leaq $-1(%r12), %r12 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000fc4 je LBB0_137 + 0x4d, 0x8d, 0x3c, 0x08, //0x00000fca leaq (%r8,%rcx), %r15 + 0x45, 0x85, 0xc9, //0x00000fce testl %r9d, %r9d + 0x0f, 0x8e, 0x86, 0x00, 0x00, 0x00, //0x00000fd1 jle LBB0_142 + 0x44, 0x89, 0xf8, //0x00000fd7 movl %r15d, %eax + 0x44, 0x29, 0xc0, //0x00000fda subl %r8d, %eax + 0x41, 0x39, 0xc1, //0x00000fdd cmpl %eax, %r9d + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00000fe0 jge LBB0_143 + 0x43, 0x8d, 0x04, 0x01, //0x00000fe6 leal (%r9,%r8), %eax + 0x41, 0x29, 0xc7, //0x00000fea subl %eax, %r15d + 0x49, 0x8d, 0x47, 0xff, //0x00000fed leaq $-1(%r15), %rax + 0x45, 0x89, 0xfa, //0x00000ff1 movl %r15d, %r10d + 0x41, 0x83, 0xe2, 0x03, //0x00000ff4 andl $3, %r10d + 0x48, 0x83, 0xf8, 0x03, //0x00000ff8 cmpq $3, %rax + 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x00000ffc jae LBB0_147 + 0x31, 0xc0, //0x00001002 xorl %eax, %eax + 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00001004 jmp LBB0_150 + //0x00001009 LBB0_143 + 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x00001009 jle LBB0_142 + 0x45, 0x01, 0xc1, //0x0000100f addl %r8d, %r9d + 0x45, 0x89, 0xfe, //0x00001012 movl %r15d, %r14d + 0x41, 0xf7, 0xd6, //0x00001015 notl %r14d + 0x45, 0x01, 0xce, //0x00001018 addl %r9d, %r14d + 0x31, 0xc0, //0x0000101b xorl %eax, %eax + 0x4d, 0x89, 0xfb, //0x0000101d movq %r15, %r11 + 0x41, 0x83, 0xfe, 0x1e, //0x00001020 cmpl $30, %r14d + 0x0f, 0x86, 0xa0, 0x01, 0x00, 0x00, //0x00001024 jbe LBB0_161 + 0x49, 0xff, 0xc6, //0x0000102a incq %r14 + 0x4d, 0x21, 0xf2, //0x0000102d andq %r14, %r10 + 0x4f, 0x8d, 0x1c, 0x10, //0x00001030 leaq (%r8,%r10), %r11 + 0x49, 0x8d, 0x5a, 0xe0, //0x00001034 leaq $-32(%r10), %rbx + 0x48, 0x89, 0xde, //0x00001038 movq %rbx, %rsi + 0x48, 0xc1, 0xee, 0x05, //0x0000103b shrq $5, %rsi + 0x48, 0xff, 0xc6, //0x0000103f incq %rsi + 0x41, 0x89, 0xf4, //0x00001042 movl %esi, %r12d + 0x41, 0x83, 0xe4, 0x07, //0x00001045 andl $7, %r12d + 0x48, 0x81, 0xfb, 0xe0, 0x00, 0x00, 0x00, //0x00001049 cmpq $224, %rbx + 0x0f, 0x83, 0x94, 0x00, 0x00, 0x00, //0x00001050 jae LBB0_155 + 0x31, 0xf6, //0x00001056 xorl %esi, %esi + 0xe9, 0x29, 0x01, 0x00, 0x00, //0x00001058 jmp LBB0_157 + //0x0000105d LBB0_142 + 0x4d, 0x89, 0xf8, //0x0000105d movq %r15, %r8 + 0xe9, 0x8b, 0x01, 0x00, 0x00, //0x00001060 jmp LBB0_163 + //0x00001065 LBB0_127 + 0x41, 0xbb, 0x08, 0x00, 0x00, 0x00, //0x00001065 movl $8, %r11d + 0x49, 0x83, 0xc5, 0xf8, //0x0000106b addq $-8, %r13 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x0000106f cmpl $10000, %edx + 0x0f, 0x82, 0x49, 0xfe, 0xff, 0xff, //0x00001075 jb LBB0_126 + 0xe9, 0x5d, 0xfe, 0xff, 0xff, //0x0000107b jmp LBB0_129 + //0x00001080 LBB0_147 + 0x4d, 0x89, 0xd3, //0x00001080 movq %r10, %r11 + 0x4d, 0x29, 0xfb, //0x00001083 subq %r15, %r11 + 0x31, 0xc0, //0x00001086 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001088 .p2align 4, 0x90 + //0x00001090 LBB0_148 + 0x49, 0x8d, 0x14, 0x00, //0x00001090 leaq (%r8,%rax), %rdx + 0x8b, 0x74, 0x11, 0xfc, //0x00001094 movl $-4(%rcx,%rdx), %esi + 0x89, 0x74, 0x11, 0xfd, //0x00001098 movl %esi, $-3(%rcx,%rdx) + 0x48, 0x83, 0xc0, 0xfc, //0x0000109c addq $-4, %rax + 0x49, 0x39, 0xc3, //0x000010a0 cmpq %rax, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x000010a3 jne LBB0_148 + 0x48, 0xf7, 0xd8, //0x000010a9 negq %rax + //0x000010ac LBB0_150 + 0x4d, 0x85, 0xd2, //0x000010ac testq %r10, %r10 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000010af je LBB0_153 + 0x49, 0xf7, 0xda, //0x000010b5 negq %r10 + 0x4c, 0x89, 0xc1, //0x000010b8 movq %r8, %rcx + 0x48, 0x29, 0xc1, //0x000010bb subq %rax, %rcx + 0x31, 0xc0, //0x000010be xorl %eax, %eax + //0x000010c0 .p2align 4, 0x90 + //0x000010c0 LBB0_152 + 0x48, 0x8d, 0x34, 0x01, //0x000010c0 leaq (%rcx,%rax), %rsi + 0x41, 0x0f, 0xb6, 0x14, 0x34, //0x000010c4 movzbl (%r12,%rsi), %edx + 0x41, 0x88, 0x54, 0x34, 0x01, //0x000010c9 movb %dl, $1(%r12,%rsi) + 0x48, 0xff, 0xc8, //0x000010ce decq %rax + 0x49, 0x39, 0xc2, //0x000010d1 cmpq %rax, %r10 + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x000010d4 jne LBB0_152 + //0x000010da LBB0_153 + 0x49, 0x63, 0xc1, //0x000010da movslq %r9d, %rax + 0x41, 0xc6, 0x04, 0x00, 0x2e, //0x000010dd movb $46, (%r8,%rax) + 0x49, 0x01, 0xd8, //0x000010e2 addq %rbx, %r8 + 0xe9, 0x06, 0x01, 0x00, 0x00, //0x000010e5 jmp LBB0_163 + //0x000010ea LBB0_155 + 0x4c, 0x89, 0xe3, //0x000010ea movq %r12, %rbx + 0x48, 0x29, 0xf3, //0x000010ed subq %rsi, %rbx + 0x31, 0xf6, //0x000010f0 xorl %esi, %esi + 0xf3, 0x0f, 0x6f, 0x05, 0x06, 0xef, 0xff, 0xff, //0x000010f2 movdqu $-4346(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x000010fa LBB0_156 + 0x49, 0x8d, 0x04, 0x30, //0x000010fa leaq (%r8,%rsi), %rax + 0xf3, 0x0f, 0x7f, 0x04, 0x01, //0x000010fe movdqu %xmm0, (%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x10, //0x00001103 movdqu %xmm0, $16(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x20, //0x00001109 movdqu %xmm0, $32(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x30, //0x0000110f movdqu %xmm0, $48(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x40, //0x00001115 movdqu %xmm0, $64(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x50, //0x0000111b movdqu %xmm0, $80(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x60, //0x00001121 movdqu %xmm0, $96(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x70, //0x00001127 movdqu %xmm0, $112(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x80, 0x00, 0x00, 0x00, //0x0000112d movdqu %xmm0, $128(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x90, 0x00, 0x00, 0x00, //0x00001136 movdqu %xmm0, $144(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0xa0, 0x00, 0x00, 0x00, //0x0000113f movdqu %xmm0, $160(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0xb0, 0x00, 0x00, 0x00, //0x00001148 movdqu %xmm0, $176(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0xc0, 0x00, 0x00, 0x00, //0x00001151 movdqu %xmm0, $192(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0xd0, 0x00, 0x00, 0x00, //0x0000115a movdqu %xmm0, $208(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0xe0, 0x00, 0x00, 0x00, //0x00001163 movdqu %xmm0, $224(%rcx,%rax) + 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0xf0, 0x00, 0x00, 0x00, //0x0000116c movdqu %xmm0, $240(%rcx,%rax) + 0x48, 0x81, 0xc6, 0x00, 0x01, 0x00, 0x00, //0x00001175 addq $256, %rsi + 0x48, 0x83, 0xc3, 0x08, //0x0000117c addq $8, %rbx + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00001180 jne LBB0_156 + //0x00001186 LBB0_157 + 0x49, 0x01, 0xcb, //0x00001186 addq %rcx, %r11 + 0x4d, 0x85, 0xe4, //0x00001189 testq %r12, %r12 + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000118c je LBB0_160 + 0x49, 0x01, 0xf0, //0x00001192 addq %rsi, %r8 + 0x49, 0x01, 0xd0, //0x00001195 addq %rdx, %r8 + 0x49, 0xf7, 0xdc, //0x00001198 negq %r12 + 0xf3, 0x0f, 0x6f, 0x05, 0x5d, 0xee, 0xff, 0xff, //0x0000119b movdqu $-4515(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + //0x000011a3 LBB0_159 + 0xf3, 0x41, 0x0f, 0x7f, 0x40, 0xf0, //0x000011a3 movdqu %xmm0, $-16(%r8) + 0xf3, 0x41, 0x0f, 0x7f, 0x00, //0x000011a9 movdqu %xmm0, (%r8) + 0x49, 0x83, 0xc0, 0x20, //0x000011ae addq $32, %r8 + 0x49, 0xff, 0xc4, //0x000011b2 incq %r12 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x000011b5 jne LBB0_159 + //0x000011bb LBB0_160 + 0x44, 0x89, 0xd0, //0x000011bb movl %r10d, %eax + 0x4d, 0x89, 0xd8, //0x000011be movq %r11, %r8 + 0x4d, 0x39, 0xd6, //0x000011c1 cmpq %r10, %r14 + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000011c4 je LBB0_163 + //0x000011ca LBB0_161 + 0x41, 0x29, 0xc1, //0x000011ca subl %eax, %r9d + 0x45, 0x29, 0xf9, //0x000011cd subl %r15d, %r9d + 0x4d, 0x89, 0xd8, //0x000011d0 movq %r11, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011d3 .p2align 4, 0x90 + //0x000011e0 LBB0_162 + 0x41, 0xc6, 0x00, 0x30, //0x000011e0 movb $48, (%r8) + 0x49, 0xff, 0xc0, //0x000011e4 incq %r8 + 0x41, 0xff, 0xc9, //0x000011e7 decl %r9d + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000011ea jne LBB0_162 + //0x000011f0 LBB0_163 + 0x41, 0x29, 0xf8, //0x000011f0 subl %edi, %r8d + //0x000011f3 LBB0_164 + 0x44, 0x89, 0xc0, //0x000011f3 movl %r8d, %eax + 0x48, 0x83, 0xc4, 0x08, //0x000011f6 addq $8, %rsp + 0x5b, //0x000011fa popq %rbx + 0x41, 0x5c, //0x000011fb popq %r12 + 0x41, 0x5d, //0x000011fd popq %r13 + 0x41, 0x5e, //0x000011ff popq %r14 + 0x41, 0x5f, //0x00001201 popq %r15 + 0x5d, //0x00001203 popq %rbp + 0xc3, //0x00001204 retq + //0x00001205 LBB0_165 + 0x45, 0x31, 0xc0, //0x00001205 xorl %r8d, %r8d + 0xe9, 0xe6, 0xff, 0xff, 0xff, //0x00001208 jmp LBB0_164 + //0x0000120d LBB0_166 + 0x48, 0x89, 0x75, 0xd0, //0x0000120d movq %rsi, $-48(%rbp) + 0x41, 0xba, 0xce, 0xfb, 0xff, 0xff, //0x00001211 movl $-1074, %r10d + 0x49, 0x89, 0xd3, //0x00001217 movq %rdx, %r11 + 0xe9, 0x8c, 0xee, 0xff, 0xff, //0x0000121a jmp LBB0_8 + //0x0000121f LBB0_167 + 0x49, 0x81, 0xfb, 0x00, 0xca, 0x9a, 0x3b, //0x0000121f cmpq $1000000000, %r11 + 0x4d, 0x89, 0xc2, //0x00001226 movq %r8, %r10 + 0x49, 0x83, 0xda, 0x00, //0x00001229 sbbq $0, %r10 + 0x49, 0x83, 0xc2, 0x0a, //0x0000122d addq $10, %r10 + 0x4c, 0x89, 0xd8, //0x00001231 movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00001234 shrq $32, %rax + 0x0f, 0x85, 0x5f, 0xf5, 0xff, 0xff, //0x00001238 jne LBB0_50 + 0xe9, 0x4c, 0xf9, 0xff, 0xff, //0x0000123e jmp LBB0_82 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001243 .p2align 4, 0x00 + //0x00001250 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00001250 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00001260 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00001270 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00001280 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00001290 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x000012a0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x000012b0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000012c0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x000012d0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000012e0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000012f0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00001300 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00001310 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001318 .p2align 4, 0x00 + //0x00001320 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00001320 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00001328 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00001330 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00001338 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00001340 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00001348 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00001350 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00001358 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00001360 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00001368 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00001370 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00001378 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00001380 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00001388 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00001390 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00001398 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000013a0 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000013a8 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x000013b0 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x000013b8 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x000013c0 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x000013c8 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x000013d0 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x000013d8 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x000013e0 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x000013e8 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x000013f0 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x000013f8 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00001400 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00001408 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00001410 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00001418 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00001420 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00001428 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00001430 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00001438 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00001440 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00001448 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00001450 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00001458 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00001460 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00001468 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00001470 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00001478 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00001480 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00001488 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00001490 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00001498 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x000014a0 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x000014a8 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x000014b0 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x000014b8 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x000014c0 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x000014c8 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x000014d0 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x000014d8 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x000014e0 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x000014e8 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x000014f0 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x000014f8 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00001500 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00001508 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00001510 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00001518 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00001520 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00001528 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00001530 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00001538 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00001540 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00001548 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00001550 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00001558 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00001560 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00001568 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00001570 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00001578 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00001580 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00001588 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00001590 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00001598 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x000015a0 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x000015a8 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x000015b0 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x000015b8 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x000015c0 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x000015c8 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x000015d0 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x000015d8 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x000015e0 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x000015e8 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x000015f0 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x000015f8 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00001600 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00001608 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00001610 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00001618 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00001620 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00001628 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00001630 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00001638 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00001640 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00001648 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00001650 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00001658 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00001660 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00001668 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00001670 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00001678 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00001680 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00001688 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00001690 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00001698 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x000016a0 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x000016a8 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x000016b0 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x000016b8 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x000016c0 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x000016c8 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x000016d0 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x000016d8 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x000016e0 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x000016e8 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x000016f0 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x000016f8 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00001700 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00001708 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00001710 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00001718 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00001720 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00001728 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00001730 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00001738 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00001740 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00001748 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00001750 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00001758 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00001760 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00001768 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00001770 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00001778 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00001780 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00001788 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00001790 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00001798 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x000017a0 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x000017a8 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x000017b0 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x000017b8 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x000017c0 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x000017c8 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x000017d0 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x000017d8 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x000017e0 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x000017e8 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x000017f0 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x000017f8 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00001800 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00001808 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00001810 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00001818 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00001820 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00001828 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00001830 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00001838 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00001840 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00001848 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00001850 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00001858 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00001860 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00001868 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00001870 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00001878 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00001880 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00001888 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00001890 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00001898 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x000018a0 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x000018a8 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x000018b0 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x000018b8 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x000018c0 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x000018c8 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x000018d0 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x000018d8 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x000018e0 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x000018e8 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x000018f0 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x000018f8 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00001900 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00001908 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00001910 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00001918 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00001920 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00001928 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00001930 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00001938 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00001940 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00001948 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00001950 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00001958 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00001960 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00001968 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00001970 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00001978 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00001980 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00001988 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00001990 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00001998 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x000019a0 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x000019a8 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x000019b0 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x000019b8 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x000019c0 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x000019c8 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x000019d0 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x000019d8 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x000019e0 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x000019e8 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x000019f0 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x000019f8 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00001a00 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00001a08 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00001a10 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00001a18 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00001a20 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00001a28 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00001a30 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00001a38 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00001a40 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00001a48 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00001a50 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00001a58 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00001a60 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00001a68 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00001a70 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00001a78 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00001a80 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00001a88 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00001a90 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00001a98 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00001aa0 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00001aa8 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00001ab0 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00001ab8 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00001ac0 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00001ac8 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00001ad0 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00001ad8 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00001ae0 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00001ae8 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00001af0 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00001af8 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00001b00 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00001b08 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00001b10 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00001b18 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00001b20 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00001b28 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00001b30 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00001b38 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00001b40 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00001b48 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00001b50 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00001b58 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00001b60 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00001b68 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00001b70 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00001b78 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00001b80 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00001b88 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00001b90 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00001b98 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00001ba0 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00001ba8 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00001bb0 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00001bb8 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00001bc0 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00001bc8 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00001bd0 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00001bd8 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00001be0 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00001be8 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00001bf0 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00001bf8 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00001c00 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00001c08 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00001c10 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00001c18 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00001c20 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00001c28 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00001c30 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00001c38 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00001c40 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00001c48 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00001c50 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00001c58 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00001c60 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00001c68 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00001c70 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00001c78 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00001c80 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00001c88 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00001c90 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00001c98 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00001ca0 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00001ca8 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00001cb0 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00001cb8 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00001cc0 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00001cc8 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x00001cd0 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x00001cd8 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x00001ce0 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x00001ce8 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x00001cf0 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x00001cf8 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x00001d00 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x00001d08 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x00001d10 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x00001d18 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00001d20 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00001d28 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00001d30 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00001d38 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00001d40 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00001d48 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00001d50 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00001d58 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00001d60 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00001d68 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00001d70 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00001d78 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00001d80 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00001d88 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00001d90 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00001d98 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00001da0 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00001da8 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00001db0 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00001db8 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x00001dc0 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x00001dc8 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x00001dd0 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x00001dd8 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x00001de0 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x00001de8 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x00001df0 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x00001df8 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x00001e00 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x00001e08 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x00001e10 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x00001e18 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00001e20 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00001e28 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00001e30 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00001e38 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00001e40 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00001e48 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00001e50 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00001e58 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00001e60 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00001e68 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00001e70 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00001e78 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00001e80 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00001e88 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00001e90 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00001e98 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00001ea0 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00001ea8 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00001eb0 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00001eb8 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x00001ec0 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x00001ec8 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x00001ed0 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x00001ed8 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x00001ee0 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x00001ee8 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x00001ef0 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x00001ef8 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x00001f00 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x00001f08 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x00001f10 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x00001f18 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00001f20 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00001f28 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00001f30 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00001f38 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00001f40 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00001f48 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00001f50 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00001f58 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00001f60 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00001f68 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00001f70 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00001f78 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00001f80 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00001f88 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00001f90 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00001f98 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00001fa0 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00001fa8 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00001fb0 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00001fb8 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x00001fc0 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x00001fc8 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x00001fd0 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x00001fd8 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00001fe0 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00001fe8 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x00001ff0 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x00001ff8 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x00002000 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x00002008 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x00002010 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x00002018 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00002020 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00002028 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00002030 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00002038 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00002040 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00002048 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00002050 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00002058 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00002060 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00002068 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x00002070 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x00002078 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x00002080 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x00002088 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x00002090 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x00002098 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x000020a0 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x000020a8 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x000020b0 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x000020b8 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x000020c0 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x000020c8 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x000020d0 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x000020d8 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x000020e0 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x000020e8 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x000020f0 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x000020f8 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x00002100 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x00002108 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x00002110 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x00002118 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00002120 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00002128 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00002130 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00002138 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00002140 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00002148 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00002150 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00002158 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00002160 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00002168 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x00002170 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x00002178 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x00002180 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x00002188 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x00002190 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x00002198 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x000021a0 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x000021a8 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x000021b0 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x000021b8 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x000021c0 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x000021c8 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x000021d0 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x000021d8 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x000021e0 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x000021e8 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x000021f0 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x000021f8 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x00002200 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x00002208 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x00002210 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x00002218 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00002220 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00002228 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00002230 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00002238 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00002240 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00002248 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00002250 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00002258 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00002260 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00002268 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x00002270 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x00002278 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x00002280 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x00002288 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x00002290 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x00002298 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x000022a0 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x000022a8 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x000022b0 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x000022b8 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x000022c0 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x000022c8 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x000022d0 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x000022d8 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x000022e0 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x000022e8 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x000022f0 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x000022f8 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x00002300 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x00002308 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x00002310 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x00002318 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00002320 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00002328 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00002330 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00002338 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00002340 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00002348 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00002350 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00002358 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00002360 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00002368 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00002370 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x00002378 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00002380 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x00002388 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00002390 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x00002398 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x000023a0 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x000023a8 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x000023b0 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x000023b8 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x000023c0 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x000023c8 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x000023d0 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x000023d8 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x000023e0 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x000023e8 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000023f0 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x000023f8 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00002400 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00002408 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00002410 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00002418 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00002420 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00002428 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00002430 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00002438 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00002440 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00002448 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00002450 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00002458 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00002460 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00002468 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00002470 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x00002478 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00002480 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x00002488 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00002490 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x00002498 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000024a0 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x000024a8 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x000024b0 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x000024b8 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x000024c0 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x000024c8 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x000024d0 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x000024d8 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000024e0 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x000024e8 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x000024f0 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x000024f8 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00002500 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00002508 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00002510 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00002518 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00002520 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00002528 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00002530 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00002538 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00002540 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00002548 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002550 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002558 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002560 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002568 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00002570 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002578 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00002580 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002588 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00002590 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002598 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000025a0 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x000025b0 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x000025c0 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000025d0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025d8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000025e0 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025e8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000025f0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00002600 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002608 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00002610 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002618 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00002620 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002628 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00002630 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002638 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00002640 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002648 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00002650 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002658 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00002660 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002668 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00002670 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002678 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00002680 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002688 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00002690 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002698 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000026a0 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026a8 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x000026b0 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b8 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x000026c0 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026c8 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x000026d0 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026d8 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x000026e0 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026e8 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x000026f0 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026f8 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00002700 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002708 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00002710 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002718 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00002720 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00002728 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00002730 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00002738 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00002740 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00002748 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00002750 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00002758 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00002760 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00002768 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00002770 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00002778 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00002780 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00002788 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00002790 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00002798 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x000027a0 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x000027a8 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x000027b0 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x000027b8 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x000027c0 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x000027c8 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000027d0 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x000027d8 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000027e0 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x000027e8 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000027f0 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x000027f8 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00002800 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00002808 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00002810 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00002818 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00002820 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00002828 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00002830 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00002838 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00002840 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00002848 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00002850 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00002858 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00002860 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00002868 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00002870 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00002878 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00002880 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00002888 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00002890 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00002898 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x000028a0 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x000028a8 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x000028b0 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x000028b8 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x000028c0 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x000028c8 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x000028d0 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x000028d8 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x000028e0 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x000028e8 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x000028f0 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x000028f8 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00002900 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00002908 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00002910 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00002918 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00002920 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00002928 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00002930 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00002938 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00002940 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00002948 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00002950 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00002958 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00002960 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00002968 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00002970 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00002978 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x00002980 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x00002988 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x00002990 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x00002998 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x000029a0 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x000029a8 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x000029b0 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x000029b8 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x000029c0 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x000029c8 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x000029d0 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x000029d8 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x000029e0 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x000029e8 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x000029f0 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x000029f8 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x00002a00 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x00002a08 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x00002a10 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x00002a18 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00002a20 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00002a28 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00002a30 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00002a38 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00002a40 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00002a48 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00002a50 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00002a58 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00002a60 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00002a68 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00002a70 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00002a78 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00002a80 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00002a88 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00002a90 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00002a98 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00002aa0 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00002aa8 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00002ab0 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00002ab8 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x00002ac0 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x00002ac8 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x00002ad0 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x00002ad8 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x00002ae0 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x00002ae8 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x00002af0 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x00002af8 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x00002b00 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x00002b08 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x00002b10 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x00002b18 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00002b20 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00002b28 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00002b30 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00002b38 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00002b40 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00002b48 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00002b50 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00002b58 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00002b60 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00002b68 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00002b70 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00002b78 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00002b80 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00002b88 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00002b90 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00002b98 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00002ba0 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00002ba8 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00002bb0 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00002bb8 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x00002bc0 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x00002bc8 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x00002bd0 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x00002bd8 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x00002be0 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x00002be8 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x00002bf0 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x00002bf8 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x00002c00 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x00002c08 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x00002c10 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x00002c18 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00002c20 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00002c28 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00002c30 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00002c38 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00002c40 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00002c48 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00002c50 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00002c58 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00002c60 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00002c68 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00002c70 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00002c78 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00002c80 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00002c88 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00002c90 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00002c98 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00002ca0 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00002ca8 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00002cb0 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00002cb8 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x00002cc0 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x00002cc8 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x00002cd0 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x00002cd8 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x00002ce0 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x00002ce8 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x00002cf0 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x00002cf8 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x00002d00 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x00002d08 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x00002d10 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x00002d18 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00002d20 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00002d28 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00002d30 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00002d38 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00002d40 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00002d48 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00002d50 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00002d58 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00002d60 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00002d68 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00002d70 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00002d78 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00002d80 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00002d88 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00002d90 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00002d98 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00002da0 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00002da8 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00002db0 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00002db8 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x00002dc0 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x00002dc8 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x00002dd0 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x00002dd8 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x00002de0 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x00002de8 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x00002df0 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x00002df8 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x00002e00 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x00002e08 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x00002e10 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x00002e18 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00002e20 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00002e28 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00002e30 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00002e38 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00002e40 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00002e48 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00002e50 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00002e58 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00002e60 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00002e68 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00002e70 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00002e78 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00002e80 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00002e88 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00002e90 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00002e98 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00002ea0 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00002ea8 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00002eb0 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00002eb8 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x00002ec0 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x00002ec8 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x00002ed0 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x00002ed8 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x00002ee0 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x00002ee8 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x00002ef0 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x00002ef8 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x00002f00 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x00002f08 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x00002f10 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x00002f18 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00002f20 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00002f28 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00002f30 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00002f38 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00002f40 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00002f48 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00002f50 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00002f58 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00002f60 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00002f68 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00002f70 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00002f78 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00002f80 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00002f88 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00002f90 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00002f98 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00002fa0 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00002fa8 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00002fb0 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00002fb8 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x00002fc0 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x00002fc8 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x00002fd0 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x00002fd8 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00002fe0 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00002fe8 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x00002ff0 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x00002ff8 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x00003000 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x00003008 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x00003010 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x00003018 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00003020 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00003028 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00003030 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00003038 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00003040 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00003048 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00003050 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00003058 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00003060 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00003068 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x00003070 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x00003078 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x00003080 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x00003088 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x00003090 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x00003098 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x000030a0 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x000030a8 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x000030b0 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x000030b8 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x000030c0 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x000030c8 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x000030d0 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x000030d8 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x000030e0 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x000030e8 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x000030f0 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x000030f8 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x00003100 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x00003108 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x00003110 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x00003118 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00003120 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00003128 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00003130 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00003138 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00003140 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00003148 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00003150 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00003158 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00003160 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00003168 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x00003170 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x00003178 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x00003180 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x00003188 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x00003190 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x00003198 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x000031a0 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x000031a8 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x000031b0 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x000031b8 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x000031c0 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x000031c8 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x000031d0 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x000031d8 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x000031e0 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x000031e8 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x000031f0 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x000031f8 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x00003200 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x00003208 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x00003210 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x00003218 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00003220 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00003228 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00003230 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00003238 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00003240 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00003248 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00003250 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00003258 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00003260 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00003268 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x00003270 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x00003278 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x00003280 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x00003288 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x00003290 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x00003298 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x000032a0 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x000032a8 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x000032b0 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x000032b8 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x000032c0 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x000032c8 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x000032d0 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x000032d8 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x000032e0 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x000032e8 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x000032f0 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x000032f8 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x00003300 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x00003308 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x00003310 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x00003318 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00003320 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00003328 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00003330 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00003338 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00003340 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00003348 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00003350 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00003358 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00003360 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00003368 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x00003370 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x00003378 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x00003380 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x00003388 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x00003390 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x00003398 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x000033a0 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x000033a8 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x000033b0 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x000033b8 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x000033c0 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x000033c8 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x000033d0 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x000033d8 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x000033e0 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x000033e8 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x000033f0 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x000033f8 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00003400 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00003408 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00003410 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00003418 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00003420 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00003428 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00003430 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00003438 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00003440 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00003448 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00003450 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00003458 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00003460 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00003468 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x00003470 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x00003478 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x00003480 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x00003488 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x00003490 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x00003498 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x000034a0 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x000034a8 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x000034b0 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x000034b8 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x000034c0 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x000034c8 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x000034d0 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x000034d8 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x000034e0 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x000034e8 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x000034f0 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x000034f8 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00003500 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00003508 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00003510 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00003518 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00003520 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00003528 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00003530 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00003538 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00003540 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00003548 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00003550 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00003558 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00003560 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00003568 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x00003570 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x00003578 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x00003580 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x00003588 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x00003590 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x00003598 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x000035a0 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x000035a8 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x000035b0 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x000035b8 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x000035c0 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x000035c8 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x000035d0 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x000035d8 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x000035e0 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x000035e8 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x000035f0 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x000035f8 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00003600 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00003608 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00003610 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00003618 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00003620 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00003628 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00003630 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00003638 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00003640 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00003648 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00003650 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00003658 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00003660 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00003668 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00003670 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00003678 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00003680 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00003688 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00003690 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00003698 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x000036a0 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x000036a8 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x000036b0 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x000036b8 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x000036c0 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x000036c8 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x000036d0 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x000036d8 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x000036e0 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x000036e8 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x000036f0 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x000036f8 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00003700 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00003708 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00003710 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00003718 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00003720 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00003728 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00003730 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00003738 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00003740 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00003748 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00003750 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00003758 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00003760 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00003768 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00003770 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00003778 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00003780 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00003788 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00003790 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00003798 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x000037a0 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x000037a8 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x000037b0 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x000037b8 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x000037c0 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x000037c8 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x000037d0 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x000037d8 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x000037e0 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x000037e8 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x000037f0 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x000037f8 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00003800 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00003808 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00003810 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00003818 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00003820 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00003828 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00003830 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00003838 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00003840 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00003848 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00003850 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00003858 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00003860 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00003868 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00003870 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00003878 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00003880 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00003888 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00003890 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00003898 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x000038a0 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x000038a8 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x000038b0 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x000038b8 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x000038c0 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x000038c8 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x000038d0 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x000038d8 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x000038e0 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x000038e8 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x000038f0 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x000038f8 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00003900 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00003908 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00003910 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00003918 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00003920 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00003928 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00003930 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00003938 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00003940 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00003948 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00003950 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00003958 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00003960 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00003968 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00003970 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00003978 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x00003980 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x00003988 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x00003990 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x00003998 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x000039a0 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x000039a8 .quad 7784369436827535058 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path.go b/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path.go new file mode 100644 index 000000000..0ec33b1fc --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_get_by_path func(s unsafe.Pointer, p unsafe.Pointer, path unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_get_by_path uintptr + +//go:nosplit +func get_by_path(s *string, p *int, path *[]interface{}, m *types.StateMachine) (ret int) { + return F_get_by_path(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(path)), rt.NoEscape(unsafe.Pointer(m))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_subr.go new file mode 100644 index 000000000..60e3b8aff --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__get_by_path = 224 +) + +const ( + _stack__get_by_path = 216 +) + +const ( + _size__get_by_path = 22168 +) + +var ( + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {12658, 216}, + {12665, 48}, + {12666, 40}, + {12668, 32}, + {12670, 24}, + {12672, 16}, + {12674, 8}, + {12675, 0}, + {22168, 216}, + } +) + +var _cfunc_get_by_path = []loader.CFunc{ + {"_get_by_path_entry", 0, _entry__get_by_path, 0, nil}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_text_amd64.go new file mode 100644 index 000000000..46149f7bd --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/get_by_path_text_amd64.go @@ -0,0 +1,6541 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_get_by_path = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, // QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000010 LCPI0_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000010 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000020 LCPI0_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000020 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000030 LCPI0_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000050 LCPI0_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00000050 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00000060 LCPI0_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00000060 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00000070 LCPI0_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000070 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00000080 LCPI0_8 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000080 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000090 LCPI0_9 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000090 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x000000a0 LCPI0_10 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x000000a0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x000000b0 LCPI0_11 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x000000b0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x000000c0 LCPI0_12 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x000000c0 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x000000d0 LCPI0_13 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x000000d0 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000e0 .p2align 4, 0x90 + //0x000000e0 _get_by_path + 0x55, //0x000000e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000e1 movq %rsp, %rbp + 0x41, 0x57, //0x000000e4 pushq %r15 + 0x41, 0x56, //0x000000e6 pushq %r14 + 0x41, 0x55, //0x000000e8 pushq %r13 + 0x41, 0x54, //0x000000ea pushq %r12 + 0x53, //0x000000ec pushq %rbx + 0x48, 0x81, 0xec, 0xa8, 0x00, 0x00, 0x00, //0x000000ed subq $168, %rsp + 0x49, 0x89, 0xce, //0x000000f4 movq %rcx, %r14 + 0x49, 0x89, 0xf3, //0x000000f7 movq %rsi, %r11 + 0x49, 0x89, 0xfd, //0x000000fa movq %rdi, %r13 + 0x48, 0x8b, 0x42, 0x08, //0x000000fd movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x00000101 testq %rax, %rax + 0x48, 0x89, 0x75, 0xd0, //0x00000104 movq %rsi, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xc0, //0x00000108 movq %rdi, $-64(%rbp) + 0x48, 0x89, 0x4d, 0xa8, //0x0000010c movq %rcx, $-88(%rbp) + 0x0f, 0x84, 0x22, 0x2f, 0x00, 0x00, //0x00000110 je LBB0_448 + 0x4c, 0x8b, 0x0a, //0x00000116 movq (%rdx), %r9 + 0x48, 0xc1, 0xe0, 0x04, //0x00000119 shlq $4, %rax + 0x4c, 0x01, 0xc8, //0x0000011d addq %r9, %rax + 0x48, 0x89, 0x85, 0x30, 0xff, 0xff, 0xff, //0x00000120 movq %rax, $-208(%rbp) + 0x4d, 0x8d, 0x45, 0x08, //0x00000127 leaq $8(%r13), %r8 + 0x49, 0x8b, 0x7d, 0x00, //0x0000012b movq (%r13), %rdi + 0x49, 0x8b, 0x03, //0x0000012f movq (%r11), %rax + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000132 movabsq $4294977024, %r10 + 0xf3, 0x0f, 0x6f, 0x05, 0xec, 0xfe, 0xff, 0xff, //0x0000013c movdqu $-276(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xf4, 0xfe, 0xff, 0xff, //0x00000144 movdqu $-268(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x2d, 0xab, 0xfe, 0xff, 0xff, //0x0000014c movdqu $-341(%rip), %xmm13 /* LCPI0_0+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x35, 0xb2, 0xfe, 0xff, 0xff, //0x00000155 movdqu $-334(%rip), %xmm14 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0xba, 0xfe, 0xff, 0xff, //0x0000015e movdqu $-326(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00000166 pcmpeqd %xmm9, %xmm9 + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0xec, 0xfe, 0xff, 0xff, //0x0000016b movdqu $-276(%rip), %xmm10 /* LCPI0_6+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x1d, 0xf3, 0xfe, 0xff, 0xff, //0x00000174 movdqu $-269(%rip), %xmm11 /* LCPI0_7+0(%rip) */ + 0x66, 0x45, 0x0f, 0xef, 0xc0, //0x0000017d pxor %xmm8, %xmm8 + 0xf3, 0x44, 0x0f, 0x6f, 0x25, 0xc5, 0xfe, 0xff, 0xff, //0x00000182 movdqu $-315(%rip), %xmm12 /* LCPI0_5+0(%rip) */ + 0x4c, 0x89, 0x45, 0xb0, //0x0000018b movq %r8, $-80(%rbp) + //0x0000018f LBB0_2 + 0x49, 0x8b, 0x08, //0x0000018f movq (%r8), %rcx + 0x48, 0x89, 0xc2, //0x00000192 movq %rax, %rdx + 0x48, 0x29, 0xca, //0x00000195 subq %rcx, %rdx + 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x00000198 jae LBB0_7 + 0x8a, 0x1c, 0x07, //0x0000019e movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000001a1 cmpb $13, %bl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000001a4 je LBB0_7 + 0x80, 0xfb, 0x20, //0x000001aa cmpb $32, %bl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000001ad je LBB0_7 + 0x80, 0xc3, 0xf7, //0x000001b3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000001b6 cmpb $1, %bl + 0x0f, 0x86, 0x11, 0x00, 0x00, 0x00, //0x000001b9 jbe LBB0_7 + 0x48, 0x89, 0xc6, //0x000001bf movq %rax, %rsi + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x000001c2 jmp LBB0_27 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001c7 .p2align 4, 0x90 + //0x000001d0 LBB0_7 + 0x48, 0x8d, 0x70, 0x01, //0x000001d0 leaq $1(%rax), %rsi + 0x48, 0x39, 0xce, //0x000001d4 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000001d7 jae LBB0_11 + 0x8a, 0x1c, 0x37, //0x000001dd movb (%rdi,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x000001e0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000001e3 je LBB0_11 + 0x80, 0xfb, 0x20, //0x000001e9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000001ec je LBB0_11 + 0x80, 0xc3, 0xf7, //0x000001f2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000001f5 cmpb $1, %bl + 0x0f, 0x87, 0x02, 0x01, 0x00, 0x00, //0x000001f8 ja LBB0_27 + 0x90, 0x90, //0x000001fe .p2align 4, 0x90 + //0x00000200 LBB0_11 + 0x48, 0x8d, 0x70, 0x02, //0x00000200 leaq $2(%rax), %rsi + 0x48, 0x39, 0xce, //0x00000204 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000207 jae LBB0_15 + 0x8a, 0x1c, 0x37, //0x0000020d movb (%rdi,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00000210 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000213 je LBB0_15 + 0x80, 0xfb, 0x20, //0x00000219 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000021c je LBB0_15 + 0x80, 0xc3, 0xf7, //0x00000222 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000225 cmpb $1, %bl + 0x0f, 0x87, 0xd2, 0x00, 0x00, 0x00, //0x00000228 ja LBB0_27 + 0x90, 0x90, //0x0000022e .p2align 4, 0x90 + //0x00000230 LBB0_15 + 0x48, 0x8d, 0x70, 0x03, //0x00000230 leaq $3(%rax), %rsi + 0x48, 0x39, 0xce, //0x00000234 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000237 jae LBB0_19 + 0x8a, 0x1c, 0x37, //0x0000023d movb (%rdi,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00000240 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000243 je LBB0_19 + 0x80, 0xfb, 0x20, //0x00000249 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000024c je LBB0_19 + 0x80, 0xc3, 0xf7, //0x00000252 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000255 cmpb $1, %bl + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000258 ja LBB0_27 + 0x90, 0x90, //0x0000025e .p2align 4, 0x90 + //0x00000260 LBB0_19 + 0x4c, 0x8d, 0x70, 0x04, //0x00000260 leaq $4(%rax), %r14 + 0x4c, 0x39, 0xf1, //0x00000264 cmpq %r14, %rcx + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x00000267 jbe LBB0_551 + 0x4c, 0x39, 0xf1, //0x0000026d cmpq %r14, %rcx + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x00000270 je LBB0_26 + 0x4c, 0x8d, 0x34, 0x0f, //0x00000276 leaq (%rdi,%rcx), %r14 + 0x48, 0x83, 0xc2, 0x04, //0x0000027a addq $4, %rdx + 0x48, 0x89, 0xfb, //0x0000027e movq %rdi, %rbx + 0x48, 0x8d, 0x74, 0x07, 0x05, //0x00000281 leaq $5(%rdi,%rax), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000286 .p2align 4, 0x90 + //0x00000290 LBB0_22 + 0x0f, 0xbe, 0x7e, 0xff, //0x00000290 movsbl $-1(%rsi), %edi + 0x83, 0xff, 0x20, //0x00000294 cmpl $32, %edi + 0x0f, 0x87, 0x7e, 0x00, 0x00, 0x00, //0x00000297 ja LBB0_28 + 0x49, 0x0f, 0xa3, 0xfa, //0x0000029d btq %rdi, %r10 + 0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x000002a1 jae LBB0_28 + 0x48, 0xff, 0xc6, //0x000002a7 incq %rsi + 0x48, 0xff, 0xc2, //0x000002aa incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000002ad jne LBB0_22 + 0x48, 0x89, 0xdf, //0x000002b3 movq %rbx, %rdi + 0x49, 0x29, 0xfe, //0x000002b6 subq %rdi, %r14 + 0x4c, 0x89, 0xf6, //0x000002b9 movq %r14, %rsi + 0x48, 0x39, 0xce, //0x000002bc cmpq %rcx, %rsi + 0x0f, 0x82, 0x3b, 0x00, 0x00, 0x00, //0x000002bf jb LBB0_27 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000002c5 jmp LBB0_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002ca .p2align 4, 0x90 + //0x000002d0 LBB0_551 + 0x4d, 0x89, 0x33, //0x000002d0 movq %r14, (%r11) + 0x31, 0xc9, //0x000002d3 xorl %ecx, %ecx + 0x49, 0x8b, 0x01, //0x000002d5 movq (%r9), %rax + 0x48, 0x85, 0xc0, //0x000002d8 testq %rax, %rax + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x000002db jne LBB0_30 + 0xe9, 0x1c, 0x2f, 0x00, 0x00, //0x000002e1 jmp LBB0_552 + //0x000002e6 LBB0_26 + 0x49, 0x01, 0xfe, //0x000002e6 addq %rdi, %r14 + 0x49, 0x29, 0xfe, //0x000002e9 subq %rdi, %r14 + 0x4c, 0x89, 0xf6, //0x000002ec movq %r14, %rsi + 0x48, 0x39, 0xce, //0x000002ef cmpq %rcx, %rsi + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002f2 jae LBB0_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002f8 .p2align 4, 0x90 + //0x00000300 LBB0_27 + 0x4c, 0x8d, 0x76, 0x01, //0x00000300 leaq $1(%rsi), %r14 + 0x4d, 0x89, 0x33, //0x00000304 movq %r14, (%r11) + 0x8a, 0x0c, 0x37, //0x00000307 movb (%rdi,%rsi), %cl + 0x49, 0x8b, 0x01, //0x0000030a movq (%r9), %rax + 0x48, 0x85, 0xc0, //0x0000030d testq %rax, %rax + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x00000310 jne LBB0_30 + 0xe9, 0xe7, 0x2e, 0x00, 0x00, //0x00000316 jmp LBB0_552 + //0x0000031b LBB0_28 + 0x48, 0x89, 0xdf, //0x0000031b movq %rbx, %rdi + 0x48, 0x89, 0xda, //0x0000031e movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00000321 notq %rdx + 0x48, 0x01, 0xd6, //0x00000324 addq %rdx, %rsi + 0x48, 0x39, 0xce, //0x00000327 cmpq %rcx, %rsi + 0x0f, 0x82, 0xd0, 0xff, 0xff, 0xff, //0x0000032a jb LBB0_27 + //0x00000330 LBB0_29 + 0x31, 0xc9, //0x00000330 xorl %ecx, %ecx + 0x49, 0x89, 0xc6, //0x00000332 movq %rax, %r14 + 0x49, 0x8b, 0x01, //0x00000335 movq (%r9), %rax + 0x48, 0x85, 0xc0, //0x00000338 testq %rax, %rax + 0x0f, 0x84, 0xc1, 0x2e, 0x00, 0x00, //0x0000033b je LBB0_552 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000341 .p2align 4, 0x90 + //0x00000350 LBB0_30 + 0x8a, 0x40, 0x17, //0x00000350 movb $23(%rax), %al + 0x24, 0x1f, //0x00000353 andb $31, %al + 0x3c, 0x02, //0x00000355 cmpb $2, %al + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00000357 je LBB0_344 + 0x3c, 0x18, //0x0000035d cmpb $24, %al + 0x0f, 0x85, 0x9d, 0x2e, 0x00, 0x00, //0x0000035f jne LBB0_552 + 0x80, 0xf9, 0x7b, //0x00000365 cmpb $123, %cl + 0x4c, 0x89, 0x4d, 0xa0, //0x00000368 movq %r9, $-96(%rbp) + 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, //0x0000036c je LBB0_33 + 0xe9, 0xcb, 0x2e, 0x00, 0x00, //0x00000372 jmp LBB0_556 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000377 .p2align 4, 0x90 + //0x00000380 LBB0_344 + 0x80, 0xf9, 0x5b, //0x00000380 cmpb $91, %cl + 0x0f, 0x85, 0xb9, 0x2e, 0x00, 0x00, //0x00000383 jne LBB0_556 + 0x49, 0x8b, 0x41, 0x08, //0x00000389 movq $8(%r9), %rax + 0x4c, 0x8b, 0x20, //0x0000038d movq (%rax), %r12 + 0x4d, 0x85, 0xe4, //0x00000390 testq %r12, %r12 + 0x0f, 0x88, 0x69, 0x2e, 0x00, 0x00, //0x00000393 js LBB0_552 + 0x49, 0x8b, 0x00, //0x00000399 movq (%r8), %rax + 0x4c, 0x89, 0xf1, //0x0000039c movq %r14, %rcx + 0x48, 0x29, 0xc1, //0x0000039f subq %rax, %rcx + 0x0f, 0x83, 0x08, 0x1c, 0x00, 0x00, //0x000003a2 jae LBB0_351 + 0x42, 0x8a, 0x14, 0x37, //0x000003a8 movb (%rdi,%r14), %dl + 0x80, 0xfa, 0x0d, //0x000003ac cmpb $13, %dl + 0x0f, 0x84, 0xfb, 0x1b, 0x00, 0x00, //0x000003af je LBB0_351 + 0x80, 0xfa, 0x20, //0x000003b5 cmpb $32, %dl + 0x0f, 0x84, 0xf2, 0x1b, 0x00, 0x00, //0x000003b8 je LBB0_351 + 0x80, 0xc2, 0xf7, //0x000003be addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000003c1 cmpb $1, %dl + 0x0f, 0x86, 0xe6, 0x1b, 0x00, 0x00, //0x000003c4 jbe LBB0_351 + 0x4c, 0x89, 0xf2, //0x000003ca movq %r14, %rdx + 0xe9, 0x0f, 0x1d, 0x00, 0x00, //0x000003cd jmp LBB0_373 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003d2 .p2align 4, 0x90 + //0x000003e0 LBB0_248 + 0x48, 0x01, 0xfe, //0x000003e0 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x000003e3 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x000003e6 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x000003e9 cmpq %rax, %rdx + 0x0f, 0x83, 0x50, 0x2e, 0x00, 0x00, //0x000003ec jae LBB0_556 + //0x000003f2 LBB0_250 + 0x4c, 0x8d, 0x72, 0x01, //0x000003f2 leaq $1(%rdx), %r14 + 0x4d, 0x89, 0x33, //0x000003f6 movq %r14, (%r11) + 0x8a, 0x04, 0x17, //0x000003f9 movb (%rdi,%rdx), %al + 0x3c, 0x2c, //0x000003fc cmpb $44, %al + 0x0f, 0x85, 0x1e, 0x2e, 0x00, 0x00, //0x000003fe jne LBB0_251 + //0x00000404 LBB0_33 + 0x49, 0x8b, 0x08, //0x00000404 movq (%r8), %rcx + 0x4c, 0x89, 0xf2, //0x00000407 movq %r14, %rdx + 0x48, 0x29, 0xca, //0x0000040a subq %rcx, %rdx + 0x48, 0x89, 0x7d, 0xc8, //0x0000040d movq %rdi, $-56(%rbp) + 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00000411 jae LBB0_38 + 0x42, 0x8a, 0x04, 0x37, //0x00000417 movb (%rdi,%r14), %al + 0x3c, 0x0d, //0x0000041b cmpb $13, %al + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000041d je LBB0_38 + 0x3c, 0x20, //0x00000423 cmpb $32, %al + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000425 je LBB0_38 + 0x04, 0xf7, //0x0000042b addb $-9, %al + 0x3c, 0x01, //0x0000042d cmpb $1, %al + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x0000042f jbe LBB0_38 + 0x4c, 0x89, 0xf0, //0x00000435 movq %r14, %rax + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x00000438 jmp LBB0_59 + 0x90, 0x90, 0x90, //0x0000043d .p2align 4, 0x90 + //0x00000440 LBB0_38 + 0x49, 0x8d, 0x46, 0x01, //0x00000440 leaq $1(%r14), %rax + 0x48, 0x39, 0xc8, //0x00000444 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000447 jae LBB0_42 + 0x8a, 0x1c, 0x07, //0x0000044d movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00000450 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000453 je LBB0_42 + 0x80, 0xfb, 0x20, //0x00000459 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000045c je LBB0_42 + 0x80, 0xc3, 0xf7, //0x00000462 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000465 cmpb $1, %bl + 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x00000468 ja LBB0_59 + 0x90, 0x90, //0x0000046e .p2align 4, 0x90 + //0x00000470 LBB0_42 + 0x49, 0x8d, 0x46, 0x02, //0x00000470 leaq $2(%r14), %rax + 0x48, 0x39, 0xc8, //0x00000474 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000477 jae LBB0_46 + 0x8a, 0x1c, 0x07, //0x0000047d movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00000480 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000483 je LBB0_46 + 0x80, 0xfb, 0x20, //0x00000489 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000048c je LBB0_46 + 0x80, 0xc3, 0xf7, //0x00000492 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000495 cmpb $1, %bl + 0x0f, 0x87, 0xd8, 0x00, 0x00, 0x00, //0x00000498 ja LBB0_59 + 0x90, 0x90, //0x0000049e .p2align 4, 0x90 + //0x000004a0 LBB0_46 + 0x49, 0x8d, 0x46, 0x03, //0x000004a0 leaq $3(%r14), %rax + 0x48, 0x39, 0xc8, //0x000004a4 cmpq %rcx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000004a7 jae LBB0_50 + 0x8a, 0x1c, 0x07, //0x000004ad movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000004b0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000004b3 je LBB0_50 + 0x80, 0xfb, 0x20, //0x000004b9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000004bc je LBB0_50 + 0x80, 0xc3, 0xf7, //0x000004c2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000004c5 cmpb $1, %bl + 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x000004c8 ja LBB0_59 + 0x90, 0x90, //0x000004ce .p2align 4, 0x90 + //0x000004d0 LBB0_50 + 0x49, 0x8d, 0x76, 0x04, //0x000004d0 leaq $4(%r14), %rsi + 0x48, 0x39, 0xf1, //0x000004d4 cmpq %rsi, %rcx + 0x0f, 0x86, 0x0d, 0x2d, 0x00, 0x00, //0x000004d7 jbe LBB0_549 + 0x48, 0x39, 0xf1, //0x000004dd cmpq %rsi, %rcx + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000004e0 je LBB0_57 + 0x48, 0x8d, 0x34, 0x0f, //0x000004e6 leaq (%rdi,%rcx), %rsi + 0x48, 0x83, 0xc2, 0x04, //0x000004ea addq $4, %rdx + 0x4a, 0x8d, 0x44, 0x37, 0x05, //0x000004ee leaq $5(%rdi,%r14), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000004f3 .p2align 4, 0x90 + //0x00000500 LBB0_53 + 0x0f, 0xbe, 0x78, 0xff, //0x00000500 movsbl $-1(%rax), %edi + 0x83, 0xff, 0x20, //0x00000504 cmpl $32, %edi + 0x0f, 0x87, 0x53, 0x00, 0x00, 0x00, //0x00000507 ja LBB0_58 + 0x49, 0x0f, 0xa3, 0xfa, //0x0000050d btq %rdi, %r10 + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00000511 jae LBB0_58 + 0x48, 0xff, 0xc0, //0x00000517 incq %rax + 0x48, 0xff, 0xc2, //0x0000051a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000051d jne LBB0_53 + 0x48, 0x8b, 0x7d, 0xc8, //0x00000523 movq $-56(%rbp), %rdi + 0x48, 0x29, 0xfe, //0x00000527 subq %rdi, %rsi + 0x48, 0x89, 0xf0, //0x0000052a movq %rsi, %rax + 0x48, 0x39, 0xc8, //0x0000052d cmpq %rcx, %rax + 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x00000530 jb LBB0_59 + 0xe9, 0x07, 0x2d, 0x00, 0x00, //0x00000536 jmp LBB0_556 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000053b .p2align 4, 0x90 + //0x00000540 LBB0_57 + 0x48, 0x01, 0xfe, //0x00000540 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x00000543 subq %rdi, %rsi + 0x48, 0x89, 0xf0, //0x00000546 movq %rsi, %rax + 0x48, 0x39, 0xc8, //0x00000549 cmpq %rcx, %rax + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x0000054c jb LBB0_59 + 0xe9, 0xeb, 0x2c, 0x00, 0x00, //0x00000552 jmp LBB0_556 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000557 .p2align 4, 0x90 + //0x00000560 LBB0_58 + 0x48, 0x8b, 0x7d, 0xc8, //0x00000560 movq $-56(%rbp), %rdi + 0x48, 0x89, 0xfa, //0x00000564 movq %rdi, %rdx + 0x48, 0xf7, 0xd2, //0x00000567 notq %rdx + 0x48, 0x01, 0xd0, //0x0000056a addq %rdx, %rax + 0x48, 0x39, 0xc8, //0x0000056d cmpq %rcx, %rax + 0x0f, 0x83, 0xcc, 0x2c, 0x00, 0x00, //0x00000570 jae LBB0_556 + //0x00000576 LBB0_59 + 0x4c, 0x8d, 0x70, 0x01, //0x00000576 leaq $1(%rax), %r14 + 0x4d, 0x89, 0x33, //0x0000057a movq %r14, (%r11) + 0x8a, 0x0c, 0x07, //0x0000057d movb (%rdi,%rax), %cl + 0x80, 0xf9, 0x22, //0x00000580 cmpb $34, %cl + 0x0f, 0x85, 0x8b, 0x2c, 0x00, 0x00, //0x00000583 jne LBB0_553 + 0x49, 0x8b, 0x18, //0x00000589 movq (%r8), %rbx + 0x48, 0x89, 0xd9, //0x0000058c movq %rbx, %rcx + 0x4c, 0x29, 0xf1, //0x0000058f subq %r14, %rcx + 0x0f, 0x84, 0x55, 0x4f, 0x00, 0x00, //0x00000592 je LBB0_950 + 0x49, 0x8b, 0x51, 0x08, //0x00000598 movq $8(%r9), %rdx + 0x48, 0x8b, 0x32, //0x0000059c movq (%rdx), %rsi + 0x48, 0x89, 0x75, 0x90, //0x0000059f movq %rsi, $-112(%rbp) + 0x48, 0x8b, 0x52, 0x08, //0x000005a3 movq $8(%rdx), %rdx + 0x48, 0x89, 0x55, 0x98, //0x000005a7 movq %rdx, $-104(%rbp) + 0x49, 0x01, 0xfe, //0x000005ab addq %rdi, %r14 + 0x48, 0x83, 0xf9, 0x40, //0x000005ae cmpq $64, %rcx + 0x4c, 0x89, 0x75, 0xb8, //0x000005b2 movq %r14, $-72(%rbp) + 0x48, 0x89, 0x9d, 0x38, 0xff, 0xff, 0xff, //0x000005b6 movq %rbx, $-200(%rbp) + 0x0f, 0x82, 0x35, 0x13, 0x00, 0x00, //0x000005bd jb LBB0_105 + 0x89, 0xca, //0x000005c3 movl %ecx, %edx + 0x83, 0xe2, 0x3f, //0x000005c5 andl $63, %edx + 0x48, 0x89, 0x55, 0x88, //0x000005c8 movq %rdx, $-120(%rbp) + 0x48, 0x89, 0xde, //0x000005cc movq %rbx, %rsi + 0x48, 0x29, 0xc6, //0x000005cf subq %rax, %rsi + 0x48, 0x83, 0xc6, 0xbf, //0x000005d2 addq $-65, %rsi + 0x48, 0x83, 0xe6, 0xc0, //0x000005d6 andq $-64, %rsi + 0x48, 0x01, 0xc6, //0x000005da addq %rax, %rsi + 0x48, 0x8d, 0x54, 0x37, 0x41, //0x000005dd leaq $65(%rdi,%rsi), %rdx + 0x48, 0x89, 0x55, 0x80, //0x000005e2 movq %rdx, $-128(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000005e6 movq $-1, %r11 + 0x4c, 0x89, 0xf6, //0x000005ed movq %r14, %rsi + 0x31, 0xdb, //0x000005f0 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005f2 .p2align 4, 0x90 + //0x00000600 LBB0_63 + 0xf3, 0x0f, 0x6f, 0x1e, //0x00000600 movdqu (%rsi), %xmm3 + 0xf3, 0x0f, 0x6f, 0x6e, 0x10, //0x00000604 movdqu $16(%rsi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x76, 0x20, //0x00000609 movdqu $32(%rsi), %xmm6 + 0xf3, 0x0f, 0x6f, 0x7e, 0x30, //0x0000060e movdqu $48(%rsi), %xmm7 + 0x66, 0x0f, 0x6f, 0xd3, //0x00000613 movdqa %xmm3, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x00000617 pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x0000061b pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd5, //0x0000061f movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x00000623 pcmpeqb %xmm0, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00000627 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd6, //0x0000062c movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x00000630 pcmpeqb %xmm0, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00000634 pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd7, //0x00000639 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x0000063d pcmpeqb %xmm0, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xc2, //0x00000641 pmovmskb %xmm2, %r8d + 0x66, 0x0f, 0x74, 0xd9, //0x00000646 pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xcb, //0x0000064a pmovmskb %xmm3, %r9d + 0x66, 0x0f, 0x74, 0xe9, //0x0000064f pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xed, //0x00000653 pmovmskb %xmm5, %r13d + 0x66, 0x0f, 0x74, 0xf1, //0x00000658 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xd6, //0x0000065c pmovmskb %xmm6, %r10d + 0x66, 0x0f, 0x74, 0xf9, //0x00000661 pcmpeqb %xmm1, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x00000665 pmovmskb %xmm7, %r14d + 0x49, 0xc1, 0xe0, 0x30, //0x0000066a shlq $48, %r8 + 0x49, 0xc1, 0xe7, 0x20, //0x0000066e shlq $32, %r15 + 0x49, 0xc1, 0xe4, 0x10, //0x00000672 shlq $16, %r12 + 0x4c, 0x09, 0xe7, //0x00000676 orq %r12, %rdi + 0x4c, 0x09, 0xff, //0x00000679 orq %r15, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x0000067c shlq $48, %r14 + 0x49, 0xc1, 0xe2, 0x20, //0x00000680 shlq $32, %r10 + 0x49, 0xc1, 0xe5, 0x10, //0x00000684 shlq $16, %r13 + 0x4d, 0x09, 0xe9, //0x00000688 orq %r13, %r9 + 0x4d, 0x09, 0xd1, //0x0000068b orq %r10, %r9 + 0x4d, 0x09, 0xf1, //0x0000068e orq %r14, %r9 + 0x49, 0x83, 0xfb, 0xff, //0x00000691 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000695 jne LBB0_65 + 0x4d, 0x85, 0xc9, //0x0000069b testq %r9, %r9 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000069e jne LBB0_74 + //0x000006a4 LBB0_65 + 0x4c, 0x09, 0xc7, //0x000006a4 orq %r8, %rdi + 0x4c, 0x89, 0xca, //0x000006a7 movq %r9, %rdx + 0x48, 0x09, 0xda, //0x000006aa orq %rbx, %rdx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000006ad jne LBB0_75 + //0x000006b3 LBB0_66 + 0x48, 0x85, 0xff, //0x000006b3 testq %rdi, %rdi + 0x0f, 0x85, 0x84, 0x00, 0x00, 0x00, //0x000006b6 jne LBB0_76 + //0x000006bc LBB0_67 + 0x48, 0x83, 0xc1, 0xc0, //0x000006bc addq $-64, %rcx + 0x48, 0x83, 0xc6, 0x40, //0x000006c0 addq $64, %rsi + 0x48, 0x83, 0xf9, 0x3f, //0x000006c4 cmpq $63, %rcx + 0x0f, 0x87, 0x32, 0xff, 0xff, 0xff, //0x000006c8 ja LBB0_63 + 0xe9, 0x6d, 0x11, 0x00, 0x00, //0x000006ce jmp LBB0_68 + //0x000006d3 LBB0_74 + 0x49, 0x89, 0xf2, //0x000006d3 movq %rsi, %r10 + 0x4c, 0x2b, 0x55, 0xc8, //0x000006d6 subq $-56(%rbp), %r10 + 0x4d, 0x0f, 0xbc, 0xd9, //0x000006da bsfq %r9, %r11 + 0x4d, 0x01, 0xd3, //0x000006de addq %r10, %r11 + 0x4c, 0x09, 0xc7, //0x000006e1 orq %r8, %rdi + 0x4c, 0x89, 0xca, //0x000006e4 movq %r9, %rdx + 0x48, 0x09, 0xda, //0x000006e7 orq %rbx, %rdx + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000006ea je LBB0_66 + //0x000006f0 LBB0_75 + 0x49, 0x89, 0xda, //0x000006f0 movq %rbx, %r10 + 0x49, 0xf7, 0xd2, //0x000006f3 notq %r10 + 0x4d, 0x21, 0xca, //0x000006f6 andq %r9, %r10 + 0x4f, 0x8d, 0x04, 0x12, //0x000006f9 leaq (%r10,%r10), %r8 + 0x49, 0x09, 0xd8, //0x000006fd orq %rbx, %r8 + 0x4d, 0x89, 0xc6, //0x00000700 movq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x00000703 notq %r14 + 0x4d, 0x21, 0xce, //0x00000706 andq %r9, %r14 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000709 movabsq $-6148914691236517206, %rbx + 0x49, 0x21, 0xde, //0x00000713 andq %rbx, %r14 + 0x31, 0xdb, //0x00000716 xorl %ebx, %ebx + 0x4d, 0x01, 0xd6, //0x00000718 addq %r10, %r14 + 0x0f, 0x92, 0xc3, //0x0000071b setb %bl + 0x4d, 0x01, 0xf6, //0x0000071e addq %r14, %r14 + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000721 movabsq $6148914691236517205, %rdx + 0x49, 0x31, 0xd6, //0x0000072b xorq %rdx, %r14 + 0x4d, 0x21, 0xc6, //0x0000072e andq %r8, %r14 + 0x49, 0xf7, 0xd6, //0x00000731 notq %r14 + 0x4c, 0x21, 0xf7, //0x00000734 andq %r14, %rdi + 0x48, 0x85, 0xff, //0x00000737 testq %rdi, %rdi + 0x0f, 0x84, 0x7c, 0xff, 0xff, 0xff, //0x0000073a je LBB0_67 + //0x00000740 .p2align 4, 0x90 + //0x00000740 LBB0_76 + 0x48, 0x0f, 0xbc, 0xcf, //0x00000740 bsfq %rdi, %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00000744 movq $-56(%rbp), %rdi + 0x48, 0x29, 0xfe, //0x00000748 subq %rdi, %rsi + 0x4c, 0x8d, 0x74, 0x0e, 0x01, //0x0000074b leaq $1(%rsi,%rcx), %r14 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00000750 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00000754 movq $-96(%rbp), %r9 + 0x4c, 0x8b, 0x45, 0xb0, //0x00000758 movq $-80(%rbp), %r8 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000075c movabsq $4294977024, %r10 + 0x4c, 0x8b, 0x7d, 0x90, //0x00000766 movq $-112(%rbp), %r15 + 0x4d, 0x85, 0xf6, //0x0000076a testq %r14, %r14 + 0x48, 0x8b, 0x5d, 0xb8, //0x0000076d movq $-72(%rbp), %rbx + 0x0f, 0x88, 0x7d, 0x4d, 0x00, 0x00, //0x00000771 js LBB0_951 + //0x00000777 LBB0_79 + 0x48, 0x8b, 0x4d, 0xd0, //0x00000777 movq $-48(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x0000077b movq %r14, (%rcx) + 0x49, 0x83, 0xfb, 0xff, //0x0000077e cmpq $-1, %r11 + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00000782 je LBB0_81 + 0x4d, 0x39, 0xf3, //0x00000788 cmpq %r14, %r11 + 0x0f, 0x8e, 0x83, 0x11, 0x00, 0x00, //0x0000078b jle LBB0_107 + //0x00000791 LBB0_81 + 0x4c, 0x89, 0xf6, //0x00000791 movq %r14, %rsi + 0x48, 0x29, 0xc6, //0x00000794 subq %rax, %rsi + 0x48, 0x83, 0xc6, 0xfe, //0x00000797 addq $-2, %rsi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000079b movl $1, %ecx + 0x48, 0x89, 0xf0, //0x000007a0 movq %rsi, %rax + 0x48, 0x8b, 0x55, 0x98, //0x000007a3 movq $-104(%rbp), %rdx + 0x48, 0x09, 0xd0, //0x000007a7 orq %rdx, %rax + 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x000007aa je LBB0_92 + 0x48, 0x39, 0xd6, //0x000007b0 cmpq %rdx, %rsi + 0x4c, 0x8b, 0x5d, 0xd0, //0x000007b3 movq $-48(%rbp), %r11 + 0x0f, 0x85, 0x13, 0x01, 0x00, 0x00, //0x000007b7 jne LBB0_93 + 0x48, 0x89, 0xd0, //0x000007bd movq %rdx, %rax + 0x48, 0x83, 0xfa, 0x10, //0x000007c0 cmpq $16, %rdx + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x000007c4 jb LBB0_88 + 0x48, 0x83, 0xc0, 0xf0, //0x000007ca addq $-16, %rax + 0x48, 0x89, 0xc2, //0x000007ce movq %rax, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x000007d1 andq $-16, %rdx + 0x48, 0x8d, 0x74, 0x13, 0x10, //0x000007d5 leaq $16(%rbx,%rdx), %rsi + 0x48, 0x8b, 0x7d, 0x90, //0x000007da movq $-112(%rbp), %rdi + 0x48, 0x8d, 0x7c, 0x17, 0x10, //0x000007de leaq $16(%rdi,%rdx), %rdi + 0x83, 0xe0, 0x0f, //0x000007e3 andl $15, %eax + 0x31, 0xdb, //0x000007e6 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007e8 .p2align 4, 0x90 + //0x000007f0 LBB0_85 + 0x48, 0x8b, 0x55, 0xb8, //0x000007f0 movq $-72(%rbp), %rdx + 0xf3, 0x0f, 0x6f, 0x14, 0x1a, //0x000007f4 movdqu (%rdx,%rbx), %xmm2 + 0x48, 0x8b, 0x55, 0x90, //0x000007f9 movq $-112(%rbp), %rdx + 0xf3, 0x0f, 0x6f, 0x1c, 0x1a, //0x000007fd movdqu (%rdx,%rbx), %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00000802 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000806 pmovmskb %xmm3, %edx + 0x66, 0x83, 0xfa, 0xff, //0x0000080a cmpw $-1, %dx + 0x0f, 0x85, 0x41, 0x01, 0x00, 0x00, //0x0000080e jne LBB0_98 + 0x48, 0x8b, 0x55, 0x98, //0x00000814 movq $-104(%rbp), %rdx + 0x48, 0x83, 0xc2, 0xf0, //0x00000818 addq $-16, %rdx + 0x48, 0x83, 0xc3, 0x10, //0x0000081c addq $16, %rbx + 0x48, 0x89, 0x55, 0x98, //0x00000820 movq %rdx, $-104(%rbp) + 0x48, 0x83, 0xfa, 0x0f, //0x00000824 cmpq $15, %rdx + 0x0f, 0x87, 0xc2, 0xff, 0xff, 0xff, //0x00000828 ja LBB0_85 + 0x48, 0x89, 0x45, 0x98, //0x0000082e movq %rax, $-104(%rbp) + 0x48, 0x89, 0x7d, 0x90, //0x00000832 movq %rdi, $-112(%rbp) + 0x48, 0x89, 0xf3, //0x00000836 movq %rsi, %rbx + 0x48, 0x8b, 0x7d, 0xc8, //0x00000839 movq $-56(%rbp), %rdi + //0x0000083d LBB0_88 + 0x48, 0x8b, 0x75, 0x90, //0x0000083d movq $-112(%rbp), %rsi + 0x89, 0xf0, //0x00000841 movl %esi, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00000843 andl $4095, %eax + 0x3d, 0xf0, 0x0f, 0x00, 0x00, //0x00000848 cmpl $4080, %eax + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x0000084d ja LBB0_94 + 0x89, 0xd8, //0x00000853 movl %ebx, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00000855 andl $4095, %eax + 0x3d, 0xf1, 0x0f, 0x00, 0x00, //0x0000085a cmpl $4081, %eax + 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000085f jae LBB0_94 + 0xf3, 0x0f, 0x6f, 0x13, //0x00000865 movdqu (%rbx), %xmm2 + 0xf3, 0x0f, 0x6f, 0x1e, //0x00000869 movdqu (%rsi), %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x0000086d pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00000871 pmovmskb %xmm3, %eax + 0x66, 0x83, 0xf8, 0xff, //0x00000875 cmpw $-1, %ax + 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00000879 je LBB0_100 + 0xf7, 0xd0, //0x0000087f notl %eax + 0x0f, 0xb7, 0xc0, //0x00000881 movzwl %ax, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00000884 bsfq %rax, %rax + 0x31, 0xc9, //0x00000888 xorl %ecx, %ecx + 0x48, 0x3b, 0x45, 0x98, //0x0000088a cmpq $-104(%rbp), %rax + 0x0f, 0x93, 0xc1, //0x0000088e setae %cl + 0x49, 0x8b, 0x10, //0x00000891 movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x00000894 movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x00000897 subq %rdx, %rsi + 0x0f, 0x82, 0x8f, 0x00, 0x00, 0x00, //0x0000089a jb LBB0_101 + 0xe9, 0xdb, 0x00, 0x00, 0x00, //0x000008a0 jmp LBB0_156 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008a5 .p2align 4, 0x90 + //0x000008b0 LBB0_92 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000008b0 movq $-48(%rbp), %r11 + 0x49, 0x8b, 0x10, //0x000008b4 movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x000008b7 movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x000008ba subq %rdx, %rsi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000008bd jb LBB0_101 + 0xe9, 0xb8, 0x00, 0x00, 0x00, //0x000008c3 jmp LBB0_156 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008c8 .p2align 4, 0x90 + //0x000008d0 LBB0_93 + 0x31, 0xc9, //0x000008d0 xorl %ecx, %ecx + 0x49, 0x8b, 0x10, //0x000008d2 movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x000008d5 movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x000008d8 subq %rdx, %rsi + 0x0f, 0x82, 0x4e, 0x00, 0x00, 0x00, //0x000008db jb LBB0_101 + 0xe9, 0x9a, 0x00, 0x00, 0x00, //0x000008e1 jmp LBB0_156 + //0x000008e6 LBB0_94 + 0x48, 0x83, 0x7d, 0x98, 0x00, //0x000008e6 cmpq $0, $-104(%rbp) + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000008eb je LBB0_100 + 0x31, 0xc0, //0x000008f1 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008f3 .p2align 4, 0x90 + //0x00000900 LBB0_96 + 0x0f, 0xb6, 0x14, 0x03, //0x00000900 movzbl (%rbx,%rax), %edx + 0x3a, 0x14, 0x06, //0x00000904 cmpb (%rsi,%rax), %dl + 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x00000907 jne LBB0_99 + 0x48, 0xff, 0xc0, //0x0000090d incq %rax + 0x48, 0x39, 0x45, 0x98, //0x00000910 cmpq %rax, $-104(%rbp) + 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00000914 jne LBB0_96 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000091a .p2align 4, 0x90 + //0x00000920 LBB0_100 + 0x49, 0x8b, 0x10, //0x00000920 movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x00000923 movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x00000926 subq %rdx, %rsi + 0x0f, 0x83, 0x51, 0x00, 0x00, 0x00, //0x00000929 jae LBB0_156 + //0x0000092f LBB0_101 + 0x42, 0x8a, 0x04, 0x37, //0x0000092f movb (%rdi,%r14), %al + 0x3c, 0x0d, //0x00000933 cmpb $13, %al + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000935 je LBB0_156 + 0x3c, 0x20, //0x0000093b cmpb $32, %al + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x0000093d je LBB0_156 + 0x04, 0xf7, //0x00000943 addb $-9, %al + 0x3c, 0x01, //0x00000945 cmpb $1, %al + 0x0f, 0x86, 0x33, 0x00, 0x00, 0x00, //0x00000947 jbe LBB0_156 + 0x4c, 0x89, 0xf0, //0x0000094d movq %r14, %rax + 0xe9, 0x51, 0x01, 0x00, 0x00, //0x00000950 jmp LBB0_178 + //0x00000955 LBB0_98 + 0x31, 0xc9, //0x00000955 xorl %ecx, %ecx + 0x48, 0x8b, 0x7d, 0xc8, //0x00000957 movq $-56(%rbp), %rdi + 0x49, 0x8b, 0x10, //0x0000095b movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x0000095e movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x00000961 subq %rdx, %rsi + 0x0f, 0x82, 0xc5, 0xff, 0xff, 0xff, //0x00000964 jb LBB0_101 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000096a jmp LBB0_156 + //0x0000096f LBB0_99 + 0x31, 0xc9, //0x0000096f xorl %ecx, %ecx + 0x49, 0x8b, 0x10, //0x00000971 movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x00000974 movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x00000977 subq %rdx, %rsi + 0x0f, 0x82, 0xaf, 0xff, 0xff, 0xff, //0x0000097a jb LBB0_101 + //0x00000980 .p2align 4, 0x90 + //0x00000980 LBB0_156 + 0x49, 0x8d, 0x46, 0x01, //0x00000980 leaq $1(%r14), %rax + 0x48, 0x39, 0xd0, //0x00000984 cmpq %rdx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000987 jae LBB0_160 + 0x8a, 0x1c, 0x07, //0x0000098d movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00000990 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000993 je LBB0_160 + 0x80, 0xfb, 0x20, //0x00000999 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000099c je LBB0_160 + 0x80, 0xc3, 0xf7, //0x000009a2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000009a5 cmpb $1, %bl + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x000009a8 ja LBB0_178 + 0x90, 0x90, //0x000009ae .p2align 4, 0x90 + //0x000009b0 LBB0_160 + 0x49, 0x8d, 0x46, 0x02, //0x000009b0 leaq $2(%r14), %rax + 0x48, 0x39, 0xd0, //0x000009b4 cmpq %rdx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000009b7 jae LBB0_164 + 0x8a, 0x1c, 0x07, //0x000009bd movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000009c0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000009c3 je LBB0_164 + 0x80, 0xfb, 0x20, //0x000009c9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000009cc je LBB0_164 + 0x80, 0xc3, 0xf7, //0x000009d2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000009d5 cmpb $1, %bl + 0x0f, 0x87, 0xc8, 0x00, 0x00, 0x00, //0x000009d8 ja LBB0_178 + 0x90, 0x90, //0x000009de .p2align 4, 0x90 + //0x000009e0 LBB0_164 + 0x49, 0x8d, 0x46, 0x03, //0x000009e0 leaq $3(%r14), %rax + 0x48, 0x39, 0xd0, //0x000009e4 cmpq %rdx, %rax + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000009e7 jae LBB0_168 + 0x8a, 0x1c, 0x07, //0x000009ed movb (%rdi,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000009f0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000009f3 je LBB0_168 + 0x80, 0xfb, 0x20, //0x000009f9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000009fc je LBB0_168 + 0x80, 0xc3, 0xf7, //0x00000a02 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000a05 cmpb $1, %bl + 0x0f, 0x87, 0x98, 0x00, 0x00, 0x00, //0x00000a08 ja LBB0_178 + 0x90, 0x90, //0x00000a0e .p2align 4, 0x90 + //0x00000a10 LBB0_168 + 0x49, 0x8d, 0x7e, 0x04, //0x00000a10 leaq $4(%r14), %rdi + 0x48, 0x39, 0xfa, //0x00000a14 cmpq %rdi, %rdx + 0x0f, 0x86, 0x1f, 0x28, 0x00, 0x00, //0x00000a17 jbe LBB0_555 + 0x48, 0x39, 0xfa, //0x00000a1d cmpq %rdi, %rdx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00000a20 je LBB0_175 + 0x48, 0x8b, 0x45, 0xc8, //0x00000a26 movq $-56(%rbp), %rax + 0x48, 0x8d, 0x3c, 0x10, //0x00000a2a leaq (%rax,%rdx), %rdi + 0x48, 0x83, 0xc6, 0x04, //0x00000a2e addq $4, %rsi + 0x4a, 0x8d, 0x44, 0x30, 0x05, //0x00000a32 leaq $5(%rax,%r14), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a37 .p2align 4, 0x90 + //0x00000a40 LBB0_171 + 0x0f, 0xbe, 0x58, 0xff, //0x00000a40 movsbl $-1(%rax), %ebx + 0x83, 0xfb, 0x20, //0x00000a44 cmpl $32, %ebx + 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00000a47 ja LBB0_177 + 0x49, 0x0f, 0xa3, 0xda, //0x00000a4d btq %rbx, %r10 + 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00000a51 jae LBB0_177 + 0x48, 0xff, 0xc0, //0x00000a57 incq %rax + 0x48, 0xff, 0xc6, //0x00000a5a incq %rsi + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00000a5d jne LBB0_171 + 0x48, 0x8b, 0x75, 0xc8, //0x00000a63 movq $-56(%rbp), %rsi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000a67 jmp LBB0_176 + 0x90, 0x90, 0x90, 0x90, //0x00000a6c .p2align 4, 0x90 + //0x00000a70 LBB0_175 + 0x48, 0x8b, 0x75, 0xc8, //0x00000a70 movq $-56(%rbp), %rsi + 0x48, 0x01, 0xf7, //0x00000a74 addq %rsi, %rdi + //0x00000a77 LBB0_176 + 0x48, 0x29, 0xf7, //0x00000a77 subq %rsi, %rdi + 0x48, 0x89, 0xf8, //0x00000a7a movq %rdi, %rax + 0x48, 0x89, 0xf7, //0x00000a7d movq %rsi, %rdi + 0x48, 0x39, 0xd0, //0x00000a80 cmpq %rdx, %rax + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00000a83 jb LBB0_178 + 0xe9, 0xb4, 0x27, 0x00, 0x00, //0x00000a89 jmp LBB0_556 + 0x90, 0x90, //0x00000a8e .p2align 4, 0x90 + //0x00000a90 LBB0_177 + 0x48, 0x8b, 0x7d, 0xc8, //0x00000a90 movq $-56(%rbp), %rdi + 0x48, 0x89, 0xfe, //0x00000a94 movq %rdi, %rsi + 0x48, 0xf7, 0xd6, //0x00000a97 notq %rsi + 0x48, 0x01, 0xf0, //0x00000a9a addq %rsi, %rax + 0x48, 0x39, 0xd0, //0x00000a9d cmpq %rdx, %rax + 0x0f, 0x83, 0x9c, 0x27, 0x00, 0x00, //0x00000aa0 jae LBB0_556 + //0x00000aa6 LBB0_178 + 0x4c, 0x8d, 0x70, 0x01, //0x00000aa6 leaq $1(%rax), %r14 + 0x4d, 0x89, 0x33, //0x00000aaa movq %r14, (%r11) + 0x80, 0x3c, 0x07, 0x3a, //0x00000aad cmpb $58, (%rdi,%rax) + 0x0f, 0x85, 0x8b, 0x27, 0x00, 0x00, //0x00000ab1 jne LBB0_556 + 0x48, 0x85, 0xc9, //0x00000ab7 testq %rcx, %rcx + 0x0f, 0x85, 0x60, 0x25, 0x00, 0x00, //0x00000aba jne LBB0_447 + 0x49, 0x8b, 0x10, //0x00000ac0 movq (%r8), %rdx + 0x49, 0x39, 0xd6, //0x00000ac3 cmpq %rdx, %r14 + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00000ac6 jae LBB0_185 + 0x42, 0x8a, 0x0c, 0x37, //0x00000acc movb (%rdi,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00000ad0 cmpb $13, %cl + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000ad3 je LBB0_185 + 0x80, 0xf9, 0x20, //0x00000ad9 cmpb $32, %cl + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x00000adc je LBB0_185 + 0x80, 0xc1, 0xf7, //0x00000ae2 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000ae5 cmpb $1, %cl + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x00000ae8 jbe LBB0_185 + 0x4c, 0x89, 0xf1, //0x00000aee movq %r14, %rcx + 0xe9, 0x4a, 0x01, 0x00, 0x00, //0x00000af1 jmp LBB0_207 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000af6 .p2align 4, 0x90 + //0x00000b00 LBB0_185 + 0x48, 0x8d, 0x48, 0x02, //0x00000b00 leaq $2(%rax), %rcx + 0x48, 0x39, 0xd1, //0x00000b04 cmpq %rdx, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000b07 jae LBB0_189 + 0x8a, 0x1c, 0x0f, //0x00000b0d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00000b10 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000b13 je LBB0_189 + 0x80, 0xfb, 0x20, //0x00000b19 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000b1c je LBB0_189 + 0x80, 0xc3, 0xf7, //0x00000b22 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000b25 cmpb $1, %bl + 0x0f, 0x87, 0x12, 0x01, 0x00, 0x00, //0x00000b28 ja LBB0_207 + 0x90, 0x90, //0x00000b2e .p2align 4, 0x90 + //0x00000b30 LBB0_189 + 0x48, 0x8d, 0x48, 0x03, //0x00000b30 leaq $3(%rax), %rcx + 0x48, 0x39, 0xd1, //0x00000b34 cmpq %rdx, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000b37 jae LBB0_193 + 0x8a, 0x1c, 0x0f, //0x00000b3d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00000b40 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000b43 je LBB0_193 + 0x80, 0xfb, 0x20, //0x00000b49 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000b4c je LBB0_193 + 0x80, 0xc3, 0xf7, //0x00000b52 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000b55 cmpb $1, %bl + 0x0f, 0x87, 0xe2, 0x00, 0x00, 0x00, //0x00000b58 ja LBB0_207 + 0x90, 0x90, //0x00000b5e .p2align 4, 0x90 + //0x00000b60 LBB0_193 + 0x48, 0x8d, 0x48, 0x04, //0x00000b60 leaq $4(%rax), %rcx + 0x48, 0x39, 0xd1, //0x00000b64 cmpq %rdx, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000b67 jae LBB0_197 + 0x8a, 0x1c, 0x0f, //0x00000b6d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00000b70 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000b73 je LBB0_197 + 0x80, 0xfb, 0x20, //0x00000b79 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000b7c je LBB0_197 + 0x80, 0xc3, 0xf7, //0x00000b82 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000b85 cmpb $1, %bl + 0x0f, 0x87, 0xb2, 0x00, 0x00, 0x00, //0x00000b88 ja LBB0_207 + 0x90, 0x90, //0x00000b8e .p2align 4, 0x90 + //0x00000b90 LBB0_197 + 0x48, 0x8d, 0x70, 0x05, //0x00000b90 leaq $5(%rax), %rsi + 0x48, 0x39, 0xf2, //0x00000b94 cmpq %rsi, %rdx + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x00000b97 jbe LBB0_204 + 0x48, 0x39, 0xf2, //0x00000b9d cmpq %rsi, %rdx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00000ba0 je LBB0_205 + 0x48, 0x8d, 0x34, 0x17, //0x00000ba6 leaq (%rdi,%rdx), %rsi + 0x48, 0x8d, 0x4c, 0x07, 0x06, //0x00000baa leaq $6(%rdi,%rax), %rcx + 0x48, 0x29, 0xd0, //0x00000baf subq %rdx, %rax + 0x48, 0x83, 0xc0, 0x05, //0x00000bb2 addq $5, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bb6 .p2align 4, 0x90 + //0x00000bc0 LBB0_200 + 0x0f, 0xbe, 0x79, 0xff, //0x00000bc0 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x00000bc4 cmpl $32, %edi + 0x0f, 0x87, 0x55, 0x00, 0x00, 0x00, //0x00000bc7 ja LBB0_206 + 0x49, 0x0f, 0xa3, 0xfa, //0x00000bcd btq %rdi, %r10 + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00000bd1 jae LBB0_206 + 0x48, 0xff, 0xc1, //0x00000bd7 incq %rcx + 0x48, 0xff, 0xc0, //0x00000bda incq %rax + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00000bdd jne LBB0_200 + 0x48, 0x8b, 0x7d, 0xc8, //0x00000be3 movq $-56(%rbp), %rdi + 0x48, 0x29, 0xfe, //0x00000be7 subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00000bea movq %rsi, %rcx + 0x48, 0x39, 0xd1, //0x00000bed cmpq %rdx, %rcx + 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00000bf0 jb LBB0_207 + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x00000bf6 jmp LBB0_224 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000bfb .p2align 4, 0x90 + //0x00000c00 LBB0_204 + 0x49, 0x89, 0x33, //0x00000c00 movq %rsi, (%r11) + 0x49, 0x89, 0xf6, //0x00000c03 movq %rsi, %r14 + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00000c06 jmp LBB0_224 + //0x00000c0b LBB0_205 + 0x48, 0x01, 0xfe, //0x00000c0b addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x00000c0e subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00000c11 movq %rsi, %rcx + 0x48, 0x39, 0xd1, //0x00000c14 cmpq %rdx, %rcx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00000c17 jb LBB0_207 + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x00000c1d jmp LBB0_224 + //0x00000c22 LBB0_206 + 0x48, 0x8b, 0x7d, 0xc8, //0x00000c22 movq $-56(%rbp), %rdi + 0x48, 0x89, 0xf8, //0x00000c26 movq %rdi, %rax + 0x48, 0xf7, 0xd0, //0x00000c29 notq %rax + 0x48, 0x01, 0xc1, //0x00000c2c addq %rax, %rcx + 0x48, 0x39, 0xd1, //0x00000c2f cmpq %rdx, %rcx + 0x0f, 0x83, 0x08, 0x01, 0x00, 0x00, //0x00000c32 jae LBB0_224 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c38 .p2align 4, 0x90 + //0x00000c40 LBB0_207 + 0x4c, 0x8d, 0x71, 0x01, //0x00000c40 leaq $1(%rcx), %r14 + 0x4d, 0x89, 0x33, //0x00000c44 movq %r14, (%r11) + 0x0f, 0xbe, 0x04, 0x0f, //0x00000c47 movsbl (%rdi,%rcx), %eax + 0x83, 0xf8, 0x7b, //0x00000c4b cmpl $123, %eax + 0x0f, 0x87, 0x82, 0x03, 0x00, 0x00, //0x00000c4e ja LBB0_265 + 0x48, 0x8d, 0x15, 0x0d, 0x4d, 0x00, 0x00, //0x00000c54 leaq $19725(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x00000c5b movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x00000c5f addq %rdx, %rax + 0xff, 0xe0, //0x00000c62 jmpq *%rax + //0x00000c64 LBB0_209 + 0x49, 0x8b, 0x10, //0x00000c64 movq (%r8), %rdx + 0x48, 0x89, 0xd0, //0x00000c67 movq %rdx, %rax + 0x4c, 0x29, 0xf0, //0x00000c6a subq %r14, %rax + 0x49, 0x01, 0xfe, //0x00000c6d addq %rdi, %r14 + 0x48, 0x83, 0xf8, 0x10, //0x00000c70 cmpq $16, %rax + 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00000c74 jb LBB0_214 + 0x48, 0x29, 0xca, //0x00000c7a subq %rcx, %rdx + 0x48, 0x83, 0xc2, 0xef, //0x00000c7d addq $-17, %rdx + 0x48, 0x89, 0xd6, //0x00000c81 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x00000c84 andq $-16, %rsi + 0x48, 0x01, 0xce, //0x00000c88 addq %rcx, %rsi + 0x48, 0x8d, 0x4c, 0x37, 0x11, //0x00000c8b leaq $17(%rdi,%rsi), %rcx + 0x83, 0xe2, 0x0f, //0x00000c90 andl $15, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c93 .p2align 4, 0x90 + //0x00000ca0 LBB0_211 + 0xf3, 0x41, 0x0f, 0x6f, 0x16, //0x00000ca0 movdqu (%r14), %xmm2 + 0x66, 0x0f, 0x6f, 0xda, //0x00000ca5 movdqa %xmm2, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdd, //0x00000ca9 pcmpeqb %xmm13, %xmm3 + 0x66, 0x41, 0x0f, 0xeb, 0xd6, //0x00000cae por %xmm14, %xmm2 + 0x66, 0x0f, 0x74, 0xd4, //0x00000cb3 pcmpeqb %xmm4, %xmm2 + 0x66, 0x0f, 0xeb, 0xd3, //0x00000cb7 por %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xf2, //0x00000cbb pmovmskb %xmm2, %esi + 0x66, 0x85, 0xf6, //0x00000cbf testw %si, %si + 0x0f, 0x85, 0x68, 0x00, 0x00, 0x00, //0x00000cc2 jne LBB0_222 + 0x49, 0x83, 0xc6, 0x10, //0x00000cc8 addq $16, %r14 + 0x48, 0x83, 0xc0, 0xf0, //0x00000ccc addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00000cd0 cmpq $15, %rax + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00000cd4 ja LBB0_211 + 0x48, 0x89, 0xd0, //0x00000cda movq %rdx, %rax + 0x49, 0x89, 0xce, //0x00000cdd movq %rcx, %r14 + //0x00000ce0 LBB0_214 + 0x48, 0x85, 0xc0, //0x00000ce0 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00000ce3 je LBB0_221 + 0x49, 0x8d, 0x0c, 0x06, //0x00000ce9 leaq (%r14,%rax), %rcx + //0x00000ced LBB0_216 + 0x41, 0x0f, 0xb6, 0x16, //0x00000ced movzbl (%r14), %edx + 0x80, 0xfa, 0x2c, //0x00000cf1 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000cf4 je LBB0_221 + 0x80, 0xfa, 0x7d, //0x00000cfa cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00000cfd je LBB0_221 + 0x80, 0xfa, 0x5d, //0x00000d03 cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00000d06 je LBB0_221 + 0x49, 0xff, 0xc6, //0x00000d0c incq %r14 + 0x48, 0xff, 0xc8, //0x00000d0f decq %rax + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00000d12 jne LBB0_216 + 0x49, 0x89, 0xce, //0x00000d18 movq %rcx, %r14 + //0x00000d1b LBB0_221 + 0x49, 0x29, 0xfe, //0x00000d1b subq %rdi, %r14 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00000d1e jmp LBB0_223 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d23 .p2align 4, 0x90 + //0x00000d30 LBB0_222 + 0x0f, 0xb7, 0xc6, //0x00000d30 movzwl %si, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00000d33 bsfq %rax, %rax + 0x49, 0x29, 0xfe, //0x00000d37 subq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x00000d3a addq %rax, %r14 + //0x00000d3d LBB0_223 + 0x4d, 0x89, 0x33, //0x00000d3d movq %r14, (%r11) + //0x00000d40 LBB0_224 + 0x49, 0x8b, 0x7d, 0x00, //0x00000d40 movq (%r13), %rdi + 0x49, 0x8b, 0x45, 0x08, //0x00000d44 movq $8(%r13), %rax + 0x4c, 0x89, 0xf1, //0x00000d48 movq %r14, %rcx + 0x48, 0x29, 0xc1, //0x00000d4b subq %rax, %rcx + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x00000d4e jae LBB0_229 + 0x42, 0x8a, 0x14, 0x37, //0x00000d54 movb (%rdi,%r14), %dl + 0x80, 0xfa, 0x0d, //0x00000d58 cmpb $13, %dl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00000d5b je LBB0_229 + 0x80, 0xfa, 0x20, //0x00000d61 cmpb $32, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000d64 je LBB0_229 + 0x80, 0xc2, 0xf7, //0x00000d6a addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000d6d cmpb $1, %dl + 0x0f, 0x86, 0x0a, 0x00, 0x00, 0x00, //0x00000d70 jbe LBB0_229 + 0x4c, 0x89, 0xf2, //0x00000d76 movq %r14, %rdx + 0xe9, 0x74, 0xf6, 0xff, 0xff, //0x00000d79 jmp LBB0_250 + 0x90, 0x90, //0x00000d7e .p2align 4, 0x90 + //0x00000d80 LBB0_229 + 0x49, 0x8d, 0x56, 0x01, //0x00000d80 leaq $1(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00000d84 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000d87 jae LBB0_233 + 0x8a, 0x1c, 0x17, //0x00000d8d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000d90 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000d93 je LBB0_233 + 0x80, 0xfb, 0x20, //0x00000d99 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000d9c je LBB0_233 + 0x80, 0xc3, 0xf7, //0x00000da2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000da5 cmpb $1, %bl + 0x0f, 0x87, 0x44, 0xf6, 0xff, 0xff, //0x00000da8 ja LBB0_250 + 0x90, 0x90, //0x00000dae .p2align 4, 0x90 + //0x00000db0 LBB0_233 + 0x49, 0x8d, 0x56, 0x02, //0x00000db0 leaq $2(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00000db4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000db7 jae LBB0_237 + 0x8a, 0x1c, 0x17, //0x00000dbd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000dc0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000dc3 je LBB0_237 + 0x80, 0xfb, 0x20, //0x00000dc9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000dcc je LBB0_237 + 0x80, 0xc3, 0xf7, //0x00000dd2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000dd5 cmpb $1, %bl + 0x0f, 0x87, 0x14, 0xf6, 0xff, 0xff, //0x00000dd8 ja LBB0_250 + 0x90, 0x90, //0x00000dde .p2align 4, 0x90 + //0x00000de0 LBB0_237 + 0x49, 0x8d, 0x56, 0x03, //0x00000de0 leaq $3(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00000de4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000de7 jae LBB0_241 + 0x8a, 0x1c, 0x17, //0x00000ded movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00000df0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00000df3 je LBB0_241 + 0x80, 0xfb, 0x20, //0x00000df9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00000dfc je LBB0_241 + 0x80, 0xc3, 0xf7, //0x00000e02 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00000e05 cmpb $1, %bl + 0x0f, 0x87, 0xe4, 0xf5, 0xff, 0xff, //0x00000e08 ja LBB0_250 + 0x90, 0x90, //0x00000e0e .p2align 4, 0x90 + //0x00000e10 LBB0_241 + 0x49, 0x8d, 0x76, 0x04, //0x00000e10 leaq $4(%r14), %rsi + 0x48, 0x39, 0xf0, //0x00000e14 cmpq %rsi, %rax + 0x0f, 0x86, 0xcd, 0x23, 0x00, 0x00, //0x00000e17 jbe LBB0_549 + 0x48, 0x39, 0xf0, //0x00000e1d cmpq %rsi, %rax + 0x0f, 0x84, 0xba, 0xf5, 0xff, 0xff, //0x00000e20 je LBB0_248 + 0x48, 0x8d, 0x34, 0x07, //0x00000e26 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x00000e2a addq $4, %rcx + 0x48, 0x89, 0xfb, //0x00000e2e movq %rdi, %rbx + 0x4a, 0x8d, 0x54, 0x37, 0x05, //0x00000e31 leaq $5(%rdi,%r14), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e36 .p2align 4, 0x90 + //0x00000e40 LBB0_244 + 0x0f, 0xbe, 0x7a, 0xff, //0x00000e40 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00000e44 cmpl $32, %edi + 0x0f, 0x87, 0x2d, 0x00, 0x00, 0x00, //0x00000e47 ja LBB0_249 + 0x49, 0x0f, 0xa3, 0xfa, //0x00000e4d btq %rdi, %r10 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000e51 jae LBB0_249 + 0x48, 0xff, 0xc2, //0x00000e57 incq %rdx + 0x48, 0xff, 0xc1, //0x00000e5a incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00000e5d jne LBB0_244 + 0x48, 0x89, 0xdf, //0x00000e63 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00000e66 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00000e69 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x00000e6c cmpq %rax, %rdx + 0x0f, 0x82, 0x7d, 0xf5, 0xff, 0xff, //0x00000e6f jb LBB0_250 + 0xe9, 0xc8, 0x23, 0x00, 0x00, //0x00000e75 jmp LBB0_556 + //0x00000e7a LBB0_249 + 0x48, 0x89, 0xdf, //0x00000e7a movq %rbx, %rdi + 0x48, 0x89, 0xd9, //0x00000e7d movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000e80 notq %rcx + 0x48, 0x01, 0xca, //0x00000e83 addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00000e86 cmpq %rax, %rdx + 0x0f, 0x82, 0x63, 0xf5, 0xff, 0xff, //0x00000e89 jb LBB0_250 + 0xe9, 0xae, 0x23, 0x00, 0x00, //0x00000e8f jmp LBB0_556 + //0x00000e94 LBB0_252 + 0x48, 0x83, 0xc1, 0x04, //0x00000e94 addq $4, %rcx + 0x49, 0x3b, 0x08, //0x00000e98 cmpq (%r8), %rcx + 0x0f, 0x87, 0x9f, 0xfe, 0xff, 0xff, //0x00000e9b ja LBB0_224 + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x00000ea1 jmp LBB0_265 + //0x00000ea6 LBB0_253 + 0x4d, 0x89, 0xcf, //0x00000ea6 movq %r9, %r15 + 0x4d, 0x8b, 0x00, //0x00000ea9 movq (%r8), %r8 + 0x4c, 0x89, 0xc0, //0x00000eac movq %r8, %rax + 0x4c, 0x29, 0xf0, //0x00000eaf subq %r14, %rax + 0x48, 0x83, 0xf8, 0x20, //0x00000eb2 cmpq $32, %rax + 0x0f, 0x8c, 0xd4, 0x0e, 0x00, 0x00, //0x00000eb6 jl LBB0_325 + 0x4c, 0x8d, 0x0c, 0x0f, //0x00000ebc leaq (%rdi,%rcx), %r9 + 0x49, 0x29, 0xc8, //0x00000ec0 subq %rcx, %r8 + 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x00000ec3 movl $31, %ecx + 0x31, 0xc0, //0x00000ec8 xorl %eax, %eax + 0x45, 0x31, 0xd2, //0x00000eca xorl %r10d, %r10d + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00000ecd jmp LBB0_255 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ed2 .p2align 4, 0x90 + //0x00000ee0 LBB0_258 + 0x45, 0x31, 0xd2, //0x00000ee0 xorl %r10d, %r10d + 0x85, 0xdb, //0x00000ee3 testl %ebx, %ebx + 0x0f, 0x85, 0xb1, 0x00, 0x00, 0x00, //0x00000ee5 jne LBB0_257 + //0x00000eeb LBB0_259 + 0x48, 0x83, 0xc0, 0x20, //0x00000eeb addq $32, %rax + 0x49, 0x8d, 0x54, 0x08, 0xe0, //0x00000eef leaq $-32(%r8,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xe0, //0x00000ef4 addq $-32, %rcx + 0x48, 0x83, 0xfa, 0x3f, //0x00000ef8 cmpq $63, %rdx + 0x0f, 0x8e, 0xcb, 0x0d, 0x00, 0x00, //0x00000efc jle LBB0_260 + //0x00000f02 LBB0_255 + 0xf3, 0x41, 0x0f, 0x6f, 0x54, 0x01, 0x01, //0x00000f02 movdqu $1(%r9,%rax), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x5c, 0x01, 0x11, //0x00000f09 movdqu $17(%r9,%rax), %xmm3 + 0x66, 0x0f, 0x6f, 0xea, //0x00000f10 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00000f14 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00000f18 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xeb, //0x00000f1c movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00000f20 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00000f24 pmovmskb %xmm5, %ebx + 0x48, 0xc1, 0xe3, 0x10, //0x00000f28 shlq $16, %rbx + 0x48, 0x09, 0xd3, //0x00000f2c orq %rdx, %rbx + 0x66, 0x0f, 0x74, 0xd1, //0x00000f2f pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xf2, //0x00000f33 pmovmskb %xmm2, %esi + 0x66, 0x0f, 0x74, 0xd9, //0x00000f37 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000f3b pmovmskb %xmm3, %edx + 0x48, 0xc1, 0xe2, 0x10, //0x00000f3f shlq $16, %rdx + 0x48, 0x09, 0xf2, //0x00000f43 orq %rsi, %rdx + 0x48, 0x89, 0xd6, //0x00000f46 movq %rdx, %rsi + 0x4c, 0x09, 0xd6, //0x00000f49 orq %r10, %rsi + 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x00000f4c je LBB0_258 + 0x44, 0x89, 0xd6, //0x00000f52 movl %r10d, %esi + 0x41, 0xbc, 0xff, 0xff, 0xff, 0xff, //0x00000f55 movl $4294967295, %r12d + 0x44, 0x31, 0xe6, //0x00000f5b xorl %r12d, %esi + 0x21, 0xf2, //0x00000f5e andl %esi, %edx + 0x8d, 0x34, 0x12, //0x00000f60 leal (%rdx,%rdx), %esi + 0x44, 0x09, 0xd6, //0x00000f63 orl %r10d, %esi + 0x41, 0x8d, 0xbc, 0x24, 0xab, 0xaa, 0xaa, 0xaa, //0x00000f66 leal $-1431655765(%r12), %edi + 0x31, 0xf7, //0x00000f6e xorl %esi, %edi + 0x21, 0xd7, //0x00000f70 andl %edx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000f72 andl $-1431655766, %edi + 0x45, 0x31, 0xd2, //0x00000f78 xorl %r10d, %r10d + 0x01, 0xd7, //0x00000f7b addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc2, //0x00000f7d setb %r10b + 0x01, 0xff, //0x00000f81 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00000f83 xorl $1431655765, %edi + 0x21, 0xf7, //0x00000f89 andl %esi, %edi + 0x44, 0x31, 0xe7, //0x00000f8b xorl %r12d, %edi + 0x21, 0xfb, //0x00000f8e andl %edi, %ebx + 0x48, 0x8b, 0x7d, 0xc8, //0x00000f90 movq $-56(%rbp), %rdi + 0x85, 0xdb, //0x00000f94 testl %ebx, %ebx + 0x0f, 0x84, 0x4f, 0xff, 0xff, 0xff, //0x00000f96 je LBB0_259 + //0x00000f9c LBB0_257 + 0x48, 0x0f, 0xbc, 0xcb, //0x00000f9c bsfq %rbx, %rcx + 0x49, 0x01, 0xc9, //0x00000fa0 addq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00000fa3 addq %rax, %r9 + 0x49, 0x29, 0xf9, //0x00000fa6 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0x02, //0x00000fa9 addq $2, %r9 + 0x4d, 0x89, 0x0b, //0x00000fad movq %r9, (%r11) + 0x4d, 0x89, 0xce, //0x00000fb0 movq %r9, %r14 + 0x4c, 0x8b, 0x45, 0xb0, //0x00000fb3 movq $-80(%rbp), %r8 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000fb7 movabsq $4294977024, %r10 + 0x4d, 0x89, 0xf9, //0x00000fc1 movq %r15, %r9 + 0xe9, 0x77, 0xfd, 0xff, 0xff, //0x00000fc4 jmp LBB0_224 + //0x00000fc9 LBB0_264 + 0x48, 0x83, 0xc1, 0x05, //0x00000fc9 addq $5, %rcx + 0x49, 0x3b, 0x08, //0x00000fcd cmpq (%r8), %rcx + 0x0f, 0x87, 0x6a, 0xfd, 0xff, 0xff, //0x00000fd0 ja LBB0_224 + //0x00000fd6 LBB0_265 + 0x49, 0x89, 0x0b, //0x00000fd6 movq %rcx, (%r11) + 0x49, 0x89, 0xce, //0x00000fd9 movq %rcx, %r14 + 0xe9, 0x5f, 0xfd, 0xff, 0xff, //0x00000fdc jmp LBB0_224 + //0x00000fe1 LBB0_266 + 0x4d, 0x8b, 0x10, //0x00000fe1 movq (%r8), %r10 + 0x4d, 0x29, 0xf2, //0x00000fe4 subq %r14, %r10 + 0x4c, 0x01, 0xf7, //0x00000fe7 addq %r14, %rdi + 0x45, 0x31, 0xc9, //0x00000fea xorl %r9d, %r9d + 0x45, 0x31, 0xc0, //0x00000fed xorl %r8d, %r8d + 0x45, 0x31, 0xdb, //0x00000ff0 xorl %r11d, %r11d + 0x45, 0x31, 0xe4, //0x00000ff3 xorl %r12d, %r12d + 0x49, 0x83, 0xfa, 0x40, //0x00000ff6 cmpq $64, %r10 + 0x0f, 0x8d, 0x49, 0x01, 0x00, 0x00, //0x00000ffa jge LBB0_267 + //0x00001000 LBB0_276 + 0x48, 0x8b, 0x55, 0xa0, //0x00001000 movq $-96(%rbp), %rdx + 0x4d, 0x85, 0xd2, //0x00001004 testq %r10, %r10 + 0x0f, 0x8e, 0x12, 0x0f, 0x00, 0x00, //0x00001007 jle LBB0_340 + 0x48, 0x89, 0xf9, //0x0000100d movq %rdi, %rcx + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00001010 movdqu %xmm8, $-144(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00001019 movdqu %xmm8, $-160(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x00001022 movdqu %xmm8, $-176(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x40, 0xff, 0xff, 0xff, //0x0000102b movdqu %xmm8, $-192(%rbp) + 0x89, 0xc8, //0x00001034 movl %ecx, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00001036 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x0000103b cmpl $4033, %eax + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00001040 jb LBB0_280 + 0x49, 0x83, 0xfa, 0x20, //0x00001046 cmpq $32, %r10 + 0x0f, 0x82, 0x37, 0x00, 0x00, 0x00, //0x0000104a jb LBB0_281 + 0x0f, 0x10, 0x11, //0x00001050 movups (%rcx), %xmm2 + 0x0f, 0x11, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00001053 movups %xmm2, $-192(%rbp) + 0xf3, 0x0f, 0x6f, 0x51, 0x10, //0x0000105a movdqu $16(%rcx), %xmm2 + 0xf3, 0x0f, 0x7f, 0x95, 0x50, 0xff, 0xff, 0xff, //0x0000105f movdqu %xmm2, $-176(%rbp) + 0x48, 0x83, 0xc1, 0x20, //0x00001067 addq $32, %rcx + 0x49, 0x8d, 0x7a, 0xe0, //0x0000106b leaq $-32(%r10), %rdi + 0x48, 0x8d, 0xb5, 0x60, 0xff, 0xff, 0xff, //0x0000106f leaq $-160(%rbp), %rsi + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00001076 jmp LBB0_282 + //0x0000107b LBB0_280 + 0x4c, 0x8b, 0x6d, 0xc0, //0x0000107b movq $-64(%rbp), %r13 + 0x48, 0x89, 0xcf, //0x0000107f movq %rcx, %rdi + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x00001082 jmp LBB0_267 + //0x00001087 LBB0_281 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00001087 leaq $-192(%rbp), %rsi + 0x4c, 0x89, 0xd7, //0x0000108e movq %r10, %rdi + //0x00001091 LBB0_282 + 0x48, 0x83, 0xff, 0x10, //0x00001091 cmpq $16, %rdi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x00001095 jb LBB0_283 + 0xf3, 0x0f, 0x6f, 0x11, //0x0000109b movdqu (%rcx), %xmm2 + 0xf3, 0x0f, 0x7f, 0x16, //0x0000109f movdqu %xmm2, (%rsi) + 0x48, 0x83, 0xc1, 0x10, //0x000010a3 addq $16, %rcx + 0x48, 0x83, 0xc6, 0x10, //0x000010a7 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x000010ab addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x000010af cmpq $8, %rdi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000010b3 jae LBB0_290 + //0x000010b9 LBB0_284 + 0x48, 0x83, 0xff, 0x04, //0x000010b9 cmpq $4, %rdi + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x000010bd jl LBB0_285 + //0x000010c3 LBB0_291 + 0x8b, 0x01, //0x000010c3 movl (%rcx), %eax + 0x89, 0x06, //0x000010c5 movl %eax, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x000010c7 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x000010cb addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x000010cf addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000010d3 cmpq $2, %rdi + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000010d7 jae LBB0_286 + 0xe9, 0x42, 0x00, 0x00, 0x00, //0x000010dd jmp LBB0_287 + //0x000010e2 LBB0_283 + 0x48, 0x83, 0xff, 0x08, //0x000010e2 cmpq $8, %rdi + 0x0f, 0x82, 0xcd, 0xff, 0xff, 0xff, //0x000010e6 jb LBB0_284 + //0x000010ec LBB0_290 + 0x48, 0x8b, 0x01, //0x000010ec movq (%rcx), %rax + 0x48, 0x89, 0x06, //0x000010ef movq %rax, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x000010f2 addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x000010f6 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x000010fa addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x000010fe cmpq $4, %rdi + 0x0f, 0x8d, 0xbb, 0xff, 0xff, 0xff, //0x00001102 jge LBB0_291 + //0x00001108 LBB0_285 + 0x48, 0x83, 0xff, 0x02, //0x00001108 cmpq $2, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000110c jb LBB0_287 + //0x00001112 LBB0_286 + 0x0f, 0xb7, 0x01, //0x00001112 movzwl (%rcx), %eax + 0x66, 0x89, 0x06, //0x00001115 movw %ax, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x00001118 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000111c addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00001120 addq $-2, %rdi + //0x00001124 LBB0_287 + 0x48, 0x89, 0xc8, //0x00001124 movq %rcx, %rax + 0x48, 0x8d, 0x8d, 0x40, 0xff, 0xff, 0xff, //0x00001127 leaq $-192(%rbp), %rcx + 0x48, 0x85, 0xff, //0x0000112e testq %rdi, %rdi + 0x48, 0x89, 0xcf, //0x00001131 movq %rcx, %rdi + 0x4c, 0x8b, 0x6d, 0xc0, //0x00001134 movq $-64(%rbp), %r13 + 0x0f, 0x84, 0x0b, 0x00, 0x00, 0x00, //0x00001138 je LBB0_267 + 0x8a, 0x00, //0x0000113e movb (%rax), %al + 0x88, 0x06, //0x00001140 movb %al, (%rsi) + 0x48, 0x8d, 0xbd, 0x40, 0xff, 0xff, 0xff, //0x00001142 leaq $-192(%rbp), %rdi + //0x00001149 LBB0_267 + 0xf3, 0x0f, 0x6f, 0x17, //0x00001149 movdqu (%rdi), %xmm2 + 0xf3, 0x0f, 0x6f, 0x6f, 0x10, //0x0000114d movdqu $16(%rdi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x7f, 0x20, //0x00001152 movdqu $32(%rdi), %xmm7 + 0x48, 0x89, 0x7d, 0xc8, //0x00001157 movq %rdi, $-56(%rbp) + 0xf3, 0x0f, 0x6f, 0x77, 0x30, //0x0000115b movdqu $48(%rdi), %xmm6 + 0x66, 0x0f, 0x6f, 0xda, //0x00001160 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00001164 pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001168 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x0000116d movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00001171 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00001175 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00001179 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000117d pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00001181 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xde, //0x00001185 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00001189 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x0000118d pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00001191 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x00001195 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x00001199 shlq $16, %rax + 0x49, 0x09, 0xc6, //0x0000119d orq %rax, %r14 + 0x49, 0x09, 0xfe, //0x000011a0 orq %rdi, %r14 + 0x49, 0x09, 0xde, //0x000011a3 orq %rbx, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x000011a6 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000011aa pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x000011ae pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdd, //0x000011b2 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000011b6 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000011ba pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x000011be movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000011c2 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000011c6 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x000011ca movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000011ce pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000011d2 pmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000011d6 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x000011da shlq $32, %rbx + 0x48, 0xc1, 0xe7, 0x10, //0x000011de shlq $16, %rdi + 0x48, 0x09, 0xf8, //0x000011e2 orq %rdi, %rax + 0x48, 0x09, 0xd8, //0x000011e5 orq %rbx, %rax + 0x48, 0x09, 0xc8, //0x000011e8 orq %rcx, %rax + 0x48, 0x89, 0xc1, //0x000011eb movq %rax, %rcx + 0x4d, 0x89, 0xef, //0x000011ee movq %r13, %r15 + 0x4c, 0x09, 0xc1, //0x000011f1 orq %r8, %rcx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000011f4 je LBB0_269 + 0x4c, 0x89, 0xc1, //0x000011fa movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000011fd notq %rcx + 0x48, 0x21, 0xc1, //0x00001200 andq %rax, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00001203 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xc3, //0x00001207 orq %r8, %rbx + 0x48, 0x89, 0xdf, //0x0000120a movq %rbx, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000120d movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf7, //0x00001217 xorq %rsi, %rdi + 0x48, 0x21, 0xf0, //0x0000121a andq %rsi, %rax + 0x48, 0x21, 0xf8, //0x0000121d andq %rdi, %rax + 0x45, 0x31, 0xc0, //0x00001220 xorl %r8d, %r8d + 0x48, 0x01, 0xc8, //0x00001223 addq %rcx, %rax + 0x41, 0x0f, 0x92, 0xc0, //0x00001226 setb %r8b + 0x48, 0x01, 0xc0, //0x0000122a addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000122d movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00001237 xorq %rcx, %rax + 0x48, 0x21, 0xd8, //0x0000123a andq %rbx, %rax + 0x48, 0xf7, 0xd0, //0x0000123d notq %rax + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00001240 jmp LBB0_270 + //0x00001245 LBB0_269 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001245 movq $-1, %rax + 0x45, 0x31, 0xc0, //0x0000124c xorl %r8d, %r8d + //0x0000124f LBB0_270 + 0x4c, 0x21, 0xf0, //0x0000124f andq %r14, %rax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00001252 movq %rax, %xmm3 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd9, 0x00, //0x00001257 pclmulqdq $0, %xmm9, %xmm3 + 0x66, 0x49, 0x0f, 0x7e, 0xde, //0x0000125e movq %xmm3, %r14 + 0x4d, 0x31, 0xce, //0x00001263 xorq %r9, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x00001266 movdqa %xmm2, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x0000126a pcmpeqb %xmm10, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x0000126f pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xdd, //0x00001274 movdqa %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00001278 pcmpeqb %xmm10, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x0000127d pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00001281 movdqa %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00001285 pcmpeqb %xmm10, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000128a pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xde, //0x0000128e movdqa %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00001292 pcmpeqb %xmm10, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00001297 pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x0000129b shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x0000129f shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x000012a3 shlq $16, %rax + 0x49, 0x09, 0xc5, //0x000012a7 orq %rax, %r13 + 0x49, 0x09, 0xcd, //0x000012aa orq %rcx, %r13 + 0x49, 0x09, 0xdd, //0x000012ad orq %rbx, %r13 + 0x4d, 0x89, 0xf1, //0x000012b0 movq %r14, %r9 + 0x49, 0xf7, 0xd1, //0x000012b3 notq %r9 + 0x4d, 0x21, 0xcd, //0x000012b6 andq %r9, %r13 + 0x66, 0x41, 0x0f, 0x74, 0xd3, //0x000012b9 pcmpeqb %xmm11, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x000012be pmovmskb %xmm2, %eax + 0x66, 0x41, 0x0f, 0x74, 0xeb, //0x000012c2 pcmpeqb %xmm11, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000012c7 pmovmskb %xmm5, %ebx + 0x66, 0x41, 0x0f, 0x74, 0xfb, //0x000012cb pcmpeqb %xmm11, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x000012d0 pmovmskb %xmm7, %esi + 0x66, 0x41, 0x0f, 0x74, 0xf3, //0x000012d4 pcmpeqb %xmm11, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x000012d9 pmovmskb %xmm6, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000012dd shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x000012e1 shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x000012e5 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x000012e9 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x000012ec orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x000012ef orq %rcx, %rax + 0x48, 0xbf, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000012f2 movabsq $3689348814741910323, %rdi + 0x4c, 0x21, 0xc8, //0x000012fc andq %r9, %rax + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x000012ff je LBB0_274 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001305 movabsq $1085102592571150095, %r9 + 0x90, //0x0000130f .p2align 4, 0x90 + //0x00001310 LBB0_272 + 0x48, 0x8d, 0x58, 0xff, //0x00001310 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00001314 movq %rbx, %rcx + 0x4c, 0x21, 0xe9, //0x00001317 andq %r13, %rcx + 0x48, 0x89, 0xce, //0x0000131a movq %rcx, %rsi + 0x48, 0xd1, 0xee, //0x0000131d shrq %rsi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001320 movabsq $6148914691236517205, %rdx + 0x48, 0x21, 0xd6, //0x0000132a andq %rdx, %rsi + 0x48, 0x29, 0xf1, //0x0000132d subq %rsi, %rcx + 0x48, 0x89, 0xce, //0x00001330 movq %rcx, %rsi + 0x48, 0x21, 0xfe, //0x00001333 andq %rdi, %rsi + 0x48, 0xc1, 0xe9, 0x02, //0x00001336 shrq $2, %rcx + 0x48, 0x21, 0xf9, //0x0000133a andq %rdi, %rcx + 0x48, 0x01, 0xf1, //0x0000133d addq %rsi, %rcx + 0x48, 0x89, 0xce, //0x00001340 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x04, //0x00001343 shrq $4, %rsi + 0x48, 0x01, 0xce, //0x00001347 addq %rcx, %rsi + 0x4c, 0x21, 0xce, //0x0000134a andq %r9, %rsi + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0000134d movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xf1, //0x00001357 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x38, //0x0000135b shrq $56, %rsi + 0x4c, 0x01, 0xde, //0x0000135f addq %r11, %rsi + 0x4c, 0x39, 0xe6, //0x00001362 cmpq %r12, %rsi + 0x0f, 0x86, 0x98, 0x04, 0x00, 0x00, //0x00001365 jbe LBB0_318 + 0x49, 0xff, 0xc4, //0x0000136b incq %r12 + 0x48, 0x21, 0xd8, //0x0000136e andq %rbx, %rax + 0x0f, 0x85, 0x99, 0xff, 0xff, 0xff, //0x00001371 jne LBB0_272 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00001377 jmp LBB0_275 + //0x0000137c LBB0_274 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000137c movabsq $1085102592571150095, %r9 + //0x00001386 LBB0_275 + 0x49, 0xc1, 0xfe, 0x3f, //0x00001386 sarq $63, %r14 + 0x4c, 0x89, 0xe8, //0x0000138a movq %r13, %rax + 0x48, 0xd1, 0xe8, //0x0000138d shrq %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001390 movabsq $6148914691236517205, %rcx + 0x48, 0x21, 0xc8, //0x0000139a andq %rcx, %rax + 0x49, 0x29, 0xc5, //0x0000139d subq %rax, %r13 + 0x4c, 0x89, 0xe8, //0x000013a0 movq %r13, %rax + 0x48, 0x21, 0xf8, //0x000013a3 andq %rdi, %rax + 0x49, 0xc1, 0xed, 0x02, //0x000013a6 shrq $2, %r13 + 0x49, 0x21, 0xfd, //0x000013aa andq %rdi, %r13 + 0x49, 0x01, 0xc5, //0x000013ad addq %rax, %r13 + 0x4c, 0x89, 0xe8, //0x000013b0 movq %r13, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x000013b3 shrq $4, %rax + 0x4c, 0x01, 0xe8, //0x000013b7 addq %r13, %rax + 0x4c, 0x21, 0xc8, //0x000013ba andq %r9, %rax + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000013bd movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xc1, //0x000013c7 imulq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x000013cb shrq $56, %rax + 0x49, 0x01, 0xc3, //0x000013cf addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc8, //0x000013d2 movq $-56(%rbp), %rdi + 0x48, 0x83, 0xc7, 0x40, //0x000013d6 addq $64, %rdi + 0x49, 0x83, 0xc2, 0xc0, //0x000013da addq $-64, %r10 + 0x4d, 0x89, 0xf1, //0x000013de movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x000013e1 movq %r15, %r13 + 0x49, 0x83, 0xfa, 0x40, //0x000013e4 cmpq $64, %r10 + 0x0f, 0x8d, 0x5b, 0xfd, 0xff, 0xff, //0x000013e8 jge LBB0_267 + 0xe9, 0x0d, 0xfc, 0xff, 0xff, //0x000013ee jmp LBB0_276 + //0x000013f3 LBB0_292 + 0x4d, 0x8b, 0x10, //0x000013f3 movq (%r8), %r10 + 0x4d, 0x29, 0xf2, //0x000013f6 subq %r14, %r10 + 0x4c, 0x01, 0xf7, //0x000013f9 addq %r14, %rdi + 0x45, 0x31, 0xc9, //0x000013fc xorl %r9d, %r9d + 0x45, 0x31, 0xc0, //0x000013ff xorl %r8d, %r8d + 0x45, 0x31, 0xdb, //0x00001402 xorl %r11d, %r11d + 0x45, 0x31, 0xe4, //0x00001405 xorl %r12d, %r12d + 0x49, 0x83, 0xfa, 0x40, //0x00001408 cmpq $64, %r10 + 0x0f, 0x8d, 0x49, 0x01, 0x00, 0x00, //0x0000140c jge LBB0_293 + //0x00001412 LBB0_302 + 0x48, 0x8b, 0x55, 0xa0, //0x00001412 movq $-96(%rbp), %rdx + 0x4d, 0x85, 0xd2, //0x00001416 testq %r10, %r10 + 0x0f, 0x8e, 0x00, 0x0b, 0x00, 0x00, //0x00001419 jle LBB0_340 + 0x48, 0x89, 0xf9, //0x0000141f movq %rdi, %rcx + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00001422 movdqu %xmm8, $-144(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x0000142b movdqu %xmm8, $-160(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x00001434 movdqu %xmm8, $-176(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x40, 0xff, 0xff, 0xff, //0x0000143d movdqu %xmm8, $-192(%rbp) + 0x89, 0xc8, //0x00001446 movl %ecx, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00001448 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x0000144d cmpl $4033, %eax + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00001452 jb LBB0_306 + 0x49, 0x83, 0xfa, 0x20, //0x00001458 cmpq $32, %r10 + 0x0f, 0x82, 0x37, 0x00, 0x00, 0x00, //0x0000145c jb LBB0_307 + 0x0f, 0x10, 0x11, //0x00001462 movups (%rcx), %xmm2 + 0x0f, 0x11, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00001465 movups %xmm2, $-192(%rbp) + 0xf3, 0x0f, 0x6f, 0x51, 0x10, //0x0000146c movdqu $16(%rcx), %xmm2 + 0xf3, 0x0f, 0x7f, 0x95, 0x50, 0xff, 0xff, 0xff, //0x00001471 movdqu %xmm2, $-176(%rbp) + 0x48, 0x83, 0xc1, 0x20, //0x00001479 addq $32, %rcx + 0x49, 0x8d, 0x7a, 0xe0, //0x0000147d leaq $-32(%r10), %rdi + 0x48, 0x8d, 0xb5, 0x60, 0xff, 0xff, 0xff, //0x00001481 leaq $-160(%rbp), %rsi + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00001488 jmp LBB0_308 + //0x0000148d LBB0_306 + 0x4c, 0x8b, 0x6d, 0xc0, //0x0000148d movq $-64(%rbp), %r13 + 0x48, 0x89, 0xcf, //0x00001491 movq %rcx, %rdi + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x00001494 jmp LBB0_293 + //0x00001499 LBB0_307 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00001499 leaq $-192(%rbp), %rsi + 0x4c, 0x89, 0xd7, //0x000014a0 movq %r10, %rdi + //0x000014a3 LBB0_308 + 0x48, 0x83, 0xff, 0x10, //0x000014a3 cmpq $16, %rdi + 0x0f, 0x82, 0x47, 0x00, 0x00, 0x00, //0x000014a7 jb LBB0_309 + 0xf3, 0x0f, 0x6f, 0x11, //0x000014ad movdqu (%rcx), %xmm2 + 0xf3, 0x0f, 0x7f, 0x16, //0x000014b1 movdqu %xmm2, (%rsi) + 0x48, 0x83, 0xc1, 0x10, //0x000014b5 addq $16, %rcx + 0x48, 0x83, 0xc6, 0x10, //0x000014b9 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x000014bd addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x000014c1 cmpq $8, %rdi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000014c5 jae LBB0_316 + //0x000014cb LBB0_310 + 0x48, 0x83, 0xff, 0x04, //0x000014cb cmpq $4, %rdi + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x000014cf jl LBB0_311 + //0x000014d5 LBB0_317 + 0x8b, 0x01, //0x000014d5 movl (%rcx), %eax + 0x89, 0x06, //0x000014d7 movl %eax, (%rsi) + 0x48, 0x83, 0xc1, 0x04, //0x000014d9 addq $4, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x000014dd addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x000014e1 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000014e5 cmpq $2, %rdi + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000014e9 jae LBB0_312 + 0xe9, 0x42, 0x00, 0x00, 0x00, //0x000014ef jmp LBB0_313 + //0x000014f4 LBB0_309 + 0x48, 0x83, 0xff, 0x08, //0x000014f4 cmpq $8, %rdi + 0x0f, 0x82, 0xcd, 0xff, 0xff, 0xff, //0x000014f8 jb LBB0_310 + //0x000014fe LBB0_316 + 0x48, 0x8b, 0x01, //0x000014fe movq (%rcx), %rax + 0x48, 0x89, 0x06, //0x00001501 movq %rax, (%rsi) + 0x48, 0x83, 0xc1, 0x08, //0x00001504 addq $8, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00001508 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x0000150c addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00001510 cmpq $4, %rdi + 0x0f, 0x8d, 0xbb, 0xff, 0xff, 0xff, //0x00001514 jge LBB0_317 + //0x0000151a LBB0_311 + 0x48, 0x83, 0xff, 0x02, //0x0000151a cmpq $2, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000151e jb LBB0_313 + //0x00001524 LBB0_312 + 0x0f, 0xb7, 0x01, //0x00001524 movzwl (%rcx), %eax + 0x66, 0x89, 0x06, //0x00001527 movw %ax, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x0000152a addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000152e addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00001532 addq $-2, %rdi + //0x00001536 LBB0_313 + 0x48, 0x89, 0xc8, //0x00001536 movq %rcx, %rax + 0x48, 0x8d, 0x8d, 0x40, 0xff, 0xff, 0xff, //0x00001539 leaq $-192(%rbp), %rcx + 0x48, 0x85, 0xff, //0x00001540 testq %rdi, %rdi + 0x48, 0x89, 0xcf, //0x00001543 movq %rcx, %rdi + 0x4c, 0x8b, 0x6d, 0xc0, //0x00001546 movq $-64(%rbp), %r13 + 0x0f, 0x84, 0x0b, 0x00, 0x00, 0x00, //0x0000154a je LBB0_293 + 0x8a, 0x00, //0x00001550 movb (%rax), %al + 0x88, 0x06, //0x00001552 movb %al, (%rsi) + 0x48, 0x8d, 0xbd, 0x40, 0xff, 0xff, 0xff, //0x00001554 leaq $-192(%rbp), %rdi + //0x0000155b LBB0_293 + 0xf3, 0x0f, 0x6f, 0x17, //0x0000155b movdqu (%rdi), %xmm2 + 0xf3, 0x0f, 0x6f, 0x6f, 0x10, //0x0000155f movdqu $16(%rdi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x7f, 0x20, //0x00001564 movdqu $32(%rdi), %xmm7 + 0x48, 0x89, 0x7d, 0xc8, //0x00001569 movq %rdi, $-56(%rbp) + 0xf3, 0x0f, 0x6f, 0x77, 0x30, //0x0000156d movdqu $48(%rdi), %xmm6 + 0x66, 0x0f, 0x6f, 0xda, //0x00001572 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00001576 pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x0000157a pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x0000157f movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00001583 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00001587 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x0000158b movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000158f pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00001593 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xde, //0x00001597 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000159b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x0000159f pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x000015a3 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x000015a7 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x000015ab shlq $16, %rax + 0x49, 0x09, 0xc6, //0x000015af orq %rax, %r14 + 0x49, 0x09, 0xfe, //0x000015b2 orq %rdi, %r14 + 0x49, 0x09, 0xde, //0x000015b5 orq %rbx, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x000015b8 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015bc pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x000015c0 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdd, //0x000015c4 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015c8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000015cc pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x000015d0 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015d4 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000015d8 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x000015dc movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015e0 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000015e4 pmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000015e8 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x000015ec shlq $32, %rbx + 0x48, 0xc1, 0xe7, 0x10, //0x000015f0 shlq $16, %rdi + 0x48, 0x09, 0xf8, //0x000015f4 orq %rdi, %rax + 0x48, 0x09, 0xd8, //0x000015f7 orq %rbx, %rax + 0x48, 0x09, 0xc8, //0x000015fa orq %rcx, %rax + 0x48, 0x89, 0xc1, //0x000015fd movq %rax, %rcx + 0x4d, 0x89, 0xef, //0x00001600 movq %r13, %r15 + 0x4c, 0x09, 0xc1, //0x00001603 orq %r8, %rcx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00001606 je LBB0_295 + 0x4c, 0x89, 0xc1, //0x0000160c movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x0000160f notq %rcx + 0x48, 0x21, 0xc1, //0x00001612 andq %rax, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00001615 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xc3, //0x00001619 orq %r8, %rbx + 0x48, 0x89, 0xdf, //0x0000161c movq %rbx, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000161f movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf7, //0x00001629 xorq %rsi, %rdi + 0x48, 0x21, 0xf0, //0x0000162c andq %rsi, %rax + 0x48, 0x21, 0xf8, //0x0000162f andq %rdi, %rax + 0x45, 0x31, 0xc0, //0x00001632 xorl %r8d, %r8d + 0x48, 0x01, 0xc8, //0x00001635 addq %rcx, %rax + 0x41, 0x0f, 0x92, 0xc0, //0x00001638 setb %r8b + 0x48, 0x01, 0xc0, //0x0000163c addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000163f movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00001649 xorq %rcx, %rax + 0x48, 0x21, 0xd8, //0x0000164c andq %rbx, %rax + 0x48, 0xf7, 0xd0, //0x0000164f notq %rax + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00001652 jmp LBB0_296 + //0x00001657 LBB0_295 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001657 movq $-1, %rax + 0x45, 0x31, 0xc0, //0x0000165e xorl %r8d, %r8d + //0x00001661 LBB0_296 + 0x4c, 0x21, 0xf0, //0x00001661 andq %r14, %rax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00001664 movq %rax, %xmm3 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd9, 0x00, //0x00001669 pclmulqdq $0, %xmm9, %xmm3 + 0x66, 0x49, 0x0f, 0x7e, 0xde, //0x00001670 movq %xmm3, %r14 + 0x4d, 0x31, 0xce, //0x00001675 xorq %r9, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x00001678 movdqa %xmm2, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x0000167c pcmpeqb %xmm12, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00001681 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xdd, //0x00001686 movdqa %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x0000168a pcmpeqb %xmm12, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x0000168f pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00001693 movdqa %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x00001697 pcmpeqb %xmm12, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000169c pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xde, //0x000016a0 movdqa %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x000016a4 pcmpeqb %xmm12, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000016a9 pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x000016ad shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x000016b1 shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x000016b5 shlq $16, %rax + 0x49, 0x09, 0xc5, //0x000016b9 orq %rax, %r13 + 0x49, 0x09, 0xcd, //0x000016bc orq %rcx, %r13 + 0x49, 0x09, 0xdd, //0x000016bf orq %rbx, %r13 + 0x4d, 0x89, 0xf1, //0x000016c2 movq %r14, %r9 + 0x49, 0xf7, 0xd1, //0x000016c5 notq %r9 + 0x4d, 0x21, 0xcd, //0x000016c8 andq %r9, %r13 + 0x66, 0x0f, 0x74, 0xd4, //0x000016cb pcmpeqb %xmm4, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x000016cf pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x74, 0xec, //0x000016d3 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000016d7 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x000016db pcmpeqb %xmm4, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x000016df pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x74, 0xf4, //0x000016e3 pcmpeqb %xmm4, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x000016e7 pmovmskb %xmm6, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x000016eb shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x000016ef shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x000016f3 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x000016f7 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x000016fa orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x000016fd orq %rcx, %rax + 0x48, 0xbf, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00001700 movabsq $3689348814741910323, %rdi + 0x4c, 0x21, 0xc8, //0x0000170a andq %r9, %rax + 0x0f, 0x84, 0x79, 0x00, 0x00, 0x00, //0x0000170d je LBB0_300 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001713 movabsq $1085102592571150095, %r9 + 0x90, 0x90, 0x90, //0x0000171d .p2align 4, 0x90 + //0x00001720 LBB0_298 + 0x48, 0x8d, 0x58, 0xff, //0x00001720 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00001724 movq %rbx, %rcx + 0x4c, 0x21, 0xe9, //0x00001727 andq %r13, %rcx + 0x48, 0x89, 0xce, //0x0000172a movq %rcx, %rsi + 0x48, 0xd1, 0xee, //0x0000172d shrq %rsi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001730 movabsq $6148914691236517205, %rdx + 0x48, 0x21, 0xd6, //0x0000173a andq %rdx, %rsi + 0x48, 0x29, 0xf1, //0x0000173d subq %rsi, %rcx + 0x48, 0x89, 0xce, //0x00001740 movq %rcx, %rsi + 0x48, 0x21, 0xfe, //0x00001743 andq %rdi, %rsi + 0x48, 0xc1, 0xe9, 0x02, //0x00001746 shrq $2, %rcx + 0x48, 0x21, 0xf9, //0x0000174a andq %rdi, %rcx + 0x48, 0x01, 0xf1, //0x0000174d addq %rsi, %rcx + 0x48, 0x89, 0xce, //0x00001750 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x04, //0x00001753 shrq $4, %rsi + 0x48, 0x01, 0xce, //0x00001757 addq %rcx, %rsi + 0x4c, 0x21, 0xce, //0x0000175a andq %r9, %rsi + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0000175d movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xf1, //0x00001767 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x38, //0x0000176b shrq $56, %rsi + 0x4c, 0x01, 0xde, //0x0000176f addq %r11, %rsi + 0x4c, 0x39, 0xe6, //0x00001772 cmpq %r12, %rsi + 0x0f, 0x86, 0x88, 0x00, 0x00, 0x00, //0x00001775 jbe LBB0_318 + 0x49, 0xff, 0xc4, //0x0000177b incq %r12 + 0x48, 0x21, 0xd8, //0x0000177e andq %rbx, %rax + 0x0f, 0x85, 0x99, 0xff, 0xff, 0xff, //0x00001781 jne LBB0_298 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00001787 jmp LBB0_301 + //0x0000178c LBB0_300 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000178c movabsq $1085102592571150095, %r9 + //0x00001796 LBB0_301 + 0x49, 0xc1, 0xfe, 0x3f, //0x00001796 sarq $63, %r14 + 0x4c, 0x89, 0xe8, //0x0000179a movq %r13, %rax + 0x48, 0xd1, 0xe8, //0x0000179d shrq %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000017a0 movabsq $6148914691236517205, %rcx + 0x48, 0x21, 0xc8, //0x000017aa andq %rcx, %rax + 0x49, 0x29, 0xc5, //0x000017ad subq %rax, %r13 + 0x4c, 0x89, 0xe8, //0x000017b0 movq %r13, %rax + 0x48, 0x21, 0xf8, //0x000017b3 andq %rdi, %rax + 0x49, 0xc1, 0xed, 0x02, //0x000017b6 shrq $2, %r13 + 0x49, 0x21, 0xfd, //0x000017ba andq %rdi, %r13 + 0x49, 0x01, 0xc5, //0x000017bd addq %rax, %r13 + 0x4c, 0x89, 0xe8, //0x000017c0 movq %r13, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x000017c3 shrq $4, %rax + 0x4c, 0x01, 0xe8, //0x000017c7 addq %r13, %rax + 0x4c, 0x21, 0xc8, //0x000017ca andq %r9, %rax + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000017cd movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xc1, //0x000017d7 imulq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x000017db shrq $56, %rax + 0x49, 0x01, 0xc3, //0x000017df addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc8, //0x000017e2 movq $-56(%rbp), %rdi + 0x48, 0x83, 0xc7, 0x40, //0x000017e6 addq $64, %rdi + 0x49, 0x83, 0xc2, 0xc0, //0x000017ea addq $-64, %r10 + 0x4d, 0x89, 0xf1, //0x000017ee movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x000017f1 movq %r15, %r13 + 0x49, 0x83, 0xfa, 0x40, //0x000017f4 cmpq $64, %r10 + 0x0f, 0x8d, 0x5d, 0xfd, 0xff, 0xff, //0x000017f8 jge LBB0_293 + 0xe9, 0x0f, 0xfc, 0xff, 0xff, //0x000017fe jmp LBB0_302 + //0x00001803 LBB0_318 + 0x4c, 0x8b, 0x45, 0xb0, //0x00001803 movq $-80(%rbp), %r8 + 0x49, 0x8b, 0x08, //0x00001807 movq (%r8), %rcx + 0x48, 0x0f, 0xbc, 0xc0, //0x0000180a bsfq %rax, %rax + 0x4c, 0x29, 0xd0, //0x0000180e subq %r10, %rax + 0x4c, 0x8d, 0x74, 0x08, 0x01, //0x00001811 leaq $1(%rax,%rcx), %r14 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001816 movq $-48(%rbp), %r11 + 0x4d, 0x89, 0x33, //0x0000181a movq %r14, (%r11) + 0x49, 0x8b, 0x00, //0x0000181d movq (%r8), %rax + 0x49, 0x39, 0xc6, //0x00001820 cmpq %rax, %r14 + 0x4c, 0x0f, 0x47, 0xf0, //0x00001823 cmovaq %rax, %r14 + 0x4d, 0x89, 0x33, //0x00001827 movq %r14, (%r11) + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000182a movabsq $4294977024, %r10 + 0x4d, 0x89, 0xfd, //0x00001834 movq %r15, %r13 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00001837 movq $-96(%rbp), %r9 + 0xe9, 0x00, 0xf5, 0xff, 0xff, //0x0000183b jmp LBB0_224 + //0x00001840 LBB0_68 + 0x48, 0x8b, 0x4d, 0x88, //0x00001840 movq $-120(%rbp), %rcx + 0x4c, 0x8b, 0x6d, 0xc0, //0x00001844 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00001848 movq $-96(%rbp), %r9 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000184c movabsq $4294977024, %r10 + 0x4c, 0x8b, 0x75, 0x80, //0x00001856 movq $-128(%rbp), %r14 + 0x48, 0x83, 0xf9, 0x20, //0x0000185a cmpq $32, %rcx + 0x0f, 0x82, 0xa7, 0x00, 0x00, 0x00, //0x0000185e jb LBB0_106 + //0x00001864 LBB0_69 + 0xf3, 0x41, 0x0f, 0x6f, 0x16, //0x00001864 movdqu (%r14), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x5e, 0x10, //0x00001869 movdqu $16(%r14), %xmm3 + 0x66, 0x0f, 0x6f, 0xea, //0x0000186f movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001873 pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x00001877 pmovmskb %xmm5, %r8d + 0x66, 0x0f, 0x6f, 0xeb, //0x0000187c movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001880 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001884 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x74, 0xd1, //0x00001888 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x0000188c pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xd9, //0x00001890 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00001894 pmovmskb %xmm3, %edx + 0x48, 0xc1, 0xe6, 0x10, //0x00001898 shlq $16, %rsi + 0x48, 0xc1, 0xe2, 0x10, //0x0000189c shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x000018a0 orq %rdx, %rdi + 0x49, 0x83, 0xfb, 0xff, //0x000018a3 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000018a7 jne LBB0_71 + 0x48, 0x85, 0xff, //0x000018ad testq %rdi, %rdi + 0x0f, 0x85, 0xe3, 0x04, 0x00, 0x00, //0x000018b0 jne LBB0_326 + //0x000018b6 LBB0_71 + 0x4c, 0x09, 0xc6, //0x000018b6 orq %r8, %rsi + 0x48, 0x89, 0xfa, //0x000018b9 movq %rdi, %rdx + 0x48, 0x09, 0xda, //0x000018bc orq %rbx, %rdx + 0x0f, 0x85, 0xf1, 0x04, 0x00, 0x00, //0x000018bf jne LBB0_327 + //0x000018c5 LBB0_72 + 0x4c, 0x8b, 0x45, 0xb0, //0x000018c5 movq $-80(%rbp), %r8 + 0x48, 0x8b, 0x7d, 0xc8, //0x000018c9 movq $-56(%rbp), %rdi + 0x48, 0x85, 0xf6, //0x000018cd testq %rsi, %rsi + 0x0f, 0x84, 0x31, 0x05, 0x00, 0x00, //0x000018d0 je LBB0_328 + //0x000018d6 LBB0_73 + 0x48, 0x0f, 0xbc, 0xce, //0x000018d6 bsfq %rsi, %rcx + 0x49, 0x29, 0xfe, //0x000018da subq %rdi, %r14 + 0x4d, 0x8d, 0x74, 0x0e, 0x01, //0x000018dd leaq $1(%r14,%rcx), %r14 + 0x4c, 0x8b, 0x7d, 0x90, //0x000018e2 movq $-112(%rbp), %r15 + 0x4d, 0x85, 0xf6, //0x000018e6 testq %r14, %r14 + 0x48, 0x8b, 0x5d, 0xb8, //0x000018e9 movq $-72(%rbp), %rbx + 0x0f, 0x89, 0x84, 0xee, 0xff, 0xff, //0x000018ed jns LBB0_79 + 0xe9, 0xfc, 0x3b, 0x00, 0x00, //0x000018f3 jmp LBB0_951 + //0x000018f8 LBB0_105 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000018f8 movq $-1, %r11 + 0x31, 0xdb, //0x000018ff xorl %ebx, %ebx + 0x48, 0x83, 0xf9, 0x20, //0x00001901 cmpq $32, %rcx + 0x0f, 0x83, 0x59, 0xff, 0xff, 0xff, //0x00001905 jae LBB0_69 + //0x0000190b LBB0_106 + 0x48, 0x8b, 0x7d, 0xc8, //0x0000190b movq $-56(%rbp), %rdi + 0xe9, 0xfb, 0x04, 0x00, 0x00, //0x0000190f jmp LBB0_329 + //0x00001914 LBB0_107 + 0x48, 0xc7, 0x85, 0x40, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, //0x00001914 movq $0, $-192(%rbp) + 0x4a, 0x8d, 0x54, 0x37, 0xff, //0x0000191f leaq $-1(%rdi,%r14), %rdx + 0x48, 0x8b, 0x45, 0x98, //0x00001924 movq $-104(%rbp), %rax + 0x4d, 0x8d, 0x14, 0x07, //0x00001928 leaq (%r15,%rax), %r10 + 0x48, 0x85, 0xc0, //0x0000192c testq %rax, %rax + 0x0f, 0x8e, 0x20, 0x04, 0x00, 0x00, //0x0000192f jle LBB0_153 + 0x48, 0x39, 0xda, //0x00001935 cmpq %rbx, %rdx + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001938 movq $-48(%rbp), %r11 + 0x0f, 0x86, 0x17, 0x04, 0x00, 0x00, //0x0000193c jbe LBB0_154 + //0x00001942 LBB0_109 + 0x8a, 0x03, //0x00001942 movb (%rbx), %al + 0x3c, 0x5c, //0x00001944 cmpb $92, %al + 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x00001946 jne LBB0_114 + 0x48, 0x89, 0xd7, //0x0000194c movq %rdx, %rdi + 0x48, 0x29, 0xdf, //0x0000194f subq %rbx, %rdi + 0x48, 0x85, 0xff, //0x00001952 testq %rdi, %rdi + 0x0f, 0x8e, 0x96, 0x3d, 0x00, 0x00, //0x00001955 jle LBB0_972 + 0x49, 0x89, 0xdc, //0x0000195b movq %rbx, %r12 + 0x0f, 0xb6, 0x43, 0x01, //0x0000195e movzbl $1(%rbx), %eax + 0x48, 0x8d, 0x0d, 0xc7, 0x47, 0x00, 0x00, //0x00001962 leaq $18375(%rip), %rcx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x1c, 0x08, //0x00001969 movb (%rax,%rcx), %bl + 0x80, 0xfb, 0xff, //0x0000196c cmpb $-1, %bl + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x0000196f je LBB0_116 + 0x84, 0xdb, //0x00001975 testb %bl, %bl + 0x0f, 0x84, 0x5c, 0x3d, 0x00, 0x00, //0x00001977 je LBB0_970 + 0x88, 0x9d, 0x40, 0xff, 0xff, 0xff, //0x0000197d movb %bl, $-192(%rbp) + 0x49, 0x83, 0xc4, 0x02, //0x00001983 addq $2, %r12 + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00001987 movl $1, %edi + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x0000198c jmp LBB0_127 + //0x00001991 LBB0_114 + 0x41, 0x3a, 0x07, //0x00001991 cmpb (%r15), %al + 0x0f, 0x85, 0xef, 0x03, 0x00, 0x00, //0x00001994 jne LBB0_324 + 0x48, 0xff, 0xc3, //0x0000199a incq %rbx + 0x49, 0xff, 0xc7, //0x0000199d incq %r15 + 0xe9, 0xa7, 0x01, 0x00, 0x00, //0x000019a0 jmp LBB0_139 + //0x000019a5 LBB0_116 + 0x48, 0x83, 0xff, 0x03, //0x000019a5 cmpq $3, %rdi + 0x0f, 0x8e, 0x3c, 0x3d, 0x00, 0x00, //0x000019a9 jle LBB0_971 + 0x49, 0x89, 0xd1, //0x000019af movq %rdx, %r9 + 0x41, 0x8b, 0x44, 0x24, 0x02, //0x000019b2 movl $2(%r12), %eax + 0x89, 0xc6, //0x000019b7 movl %eax, %esi + 0xf7, 0xd6, //0x000019b9 notl %esi + 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x000019bb leal $-808464432(%rax), %edx + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000019c1 andl $-2139062144, %esi + 0x85, 0xd6, //0x000019c7 testl %edx, %esi + 0x0f, 0x85, 0x61, 0x3c, 0x00, 0x00, //0x000019c9 jne LBB0_968 + 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x000019cf leal $421075225(%rax), %edx + 0x09, 0xc2, //0x000019d5 orl %eax, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x000019d7 testl $-2139062144, %edx + 0x0f, 0x85, 0x4d, 0x3c, 0x00, 0x00, //0x000019dd jne LBB0_968 + 0x89, 0xc2, //0x000019e3 movl %eax, %edx + 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x000019e5 andl $2139062143, %edx + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000019eb movl $-1061109568, %ebx + 0x29, 0xd3, //0x000019f0 subl %edx, %ebx + 0x8d, 0x8a, 0x46, 0x46, 0x46, 0x46, //0x000019f2 leal $1179010630(%rdx), %ecx + 0x21, 0xf3, //0x000019f8 andl %esi, %ebx + 0x85, 0xcb, //0x000019fa testl %ecx, %ebx + 0x0f, 0x85, 0x2e, 0x3c, 0x00, 0x00, //0x000019fc jne LBB0_968 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001a02 movl $-522133280, %ecx + 0x29, 0xd1, //0x00001a07 subl %edx, %ecx + 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00001a09 addl $960051513, %edx + 0x21, 0xce, //0x00001a0f andl %ecx, %esi + 0x85, 0xd6, //0x00001a11 testl %edx, %esi + 0x0f, 0x85, 0x17, 0x3c, 0x00, 0x00, //0x00001a13 jne LBB0_968 + 0x0f, 0xc8, //0x00001a19 bswapl %eax + 0x89, 0xc1, //0x00001a1b movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001a1d shrl $4, %ecx + 0xf7, 0xd1, //0x00001a20 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001a22 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001a28 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001a2b andl $252645135, %eax + 0x01, 0xc8, //0x00001a30 addl %ecx, %eax + 0x89, 0xc3, //0x00001a32 movl %eax, %ebx + 0xc1, 0xeb, 0x04, //0x00001a34 shrl $4, %ebx + 0x09, 0xc3, //0x00001a37 orl %eax, %ebx + 0x89, 0xde, //0x00001a39 movl %ebx, %esi + 0xc1, 0xee, 0x08, //0x00001a3b shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001a3e andl $65280, %esi + 0x0f, 0xb6, 0xd3, //0x00001a44 movzbl %bl, %edx + 0x09, 0xf2, //0x00001a47 orl %esi, %edx + 0x4d, 0x8d, 0x44, 0x24, 0x06, //0x00001a49 leaq $6(%r12), %r8 + 0x83, 0xfa, 0x7f, //0x00001a4e cmpl $127, %edx + 0x0f, 0x86, 0x0c, 0x01, 0x00, 0x00, //0x00001a51 jbe LBB0_141 + 0x81, 0xfa, 0xff, 0x07, 0x00, 0x00, //0x00001a57 cmpl $2047, %edx + 0x0f, 0x86, 0x10, 0x01, 0x00, 0x00, //0x00001a5d jbe LBB0_142 + 0x89, 0xd8, //0x00001a63 movl %ebx, %eax + 0x25, 0x00, 0x00, 0xf8, 0x00, //0x00001a65 andl $16252928, %eax + 0x3d, 0x00, 0x00, 0xd8, 0x00, //0x00001a6a cmpl $14155776, %eax + 0x0f, 0x84, 0x22, 0x01, 0x00, 0x00, //0x00001a6f je LBB0_143 + 0xc1, 0xee, 0x0c, //0x00001a75 shrl $12, %esi + 0x40, 0x80, 0xce, 0xe0, //0x00001a78 orb $-32, %sil + 0x40, 0x88, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00001a7c movb %sil, $-192(%rbp) + 0xc1, 0xea, 0x06, //0x00001a83 shrl $6, %edx + 0x80, 0xe2, 0x3f, //0x00001a86 andb $63, %dl + 0x80, 0xca, 0x80, //0x00001a89 orb $-128, %dl + 0x88, 0x95, 0x41, 0xff, 0xff, 0xff, //0x00001a8c movb %dl, $-191(%rbp) + 0x80, 0xe3, 0x3f, //0x00001a92 andb $63, %bl + 0x80, 0xcb, 0x80, //0x00001a95 orb $-128, %bl + 0x88, 0x9d, 0x42, 0xff, 0xff, 0xff, //0x00001a98 movb %bl, $-190(%rbp) + 0xbf, 0x03, 0x00, 0x00, 0x00, //0x00001a9e movl $3, %edi + 0x89, 0xf3, //0x00001aa3 movl %esi, %ebx + //0x00001aa5 LBB0_125 + 0x4d, 0x89, 0xc4, //0x00001aa5 movq %r8, %r12 + //0x00001aa8 LBB0_126 + 0x4c, 0x8b, 0x45, 0xb0, //0x00001aa8 movq $-80(%rbp), %r8 + 0x4c, 0x89, 0xca, //0x00001aac movq %r9, %rdx + //0x00001aaf LBB0_127 + 0x4c, 0x8d, 0x8c, 0x3d, 0x40, 0xff, 0xff, 0xff, //0x00001aaf leaq $-192(%rbp,%rdi), %r9 + 0x4d, 0x39, 0xd7, //0x00001ab7 cmpq %r10, %r15 + 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00001aba jae LBB0_136 + 0x48, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00001ac0 leaq $-192(%rbp), %rax + 0x49, 0x39, 0xc1, //0x00001ac7 cmpq %rax, %r9 + 0x48, 0x8b, 0x7d, 0xc8, //0x00001aca movq $-56(%rbp), %rdi + 0x0f, 0x86, 0x55, 0x00, 0x00, 0x00, //0x00001ace jbe LBB0_135 + 0x41, 0x38, 0x1f, //0x00001ad4 cmpb %bl, (%r15) + 0x0f, 0x85, 0x4c, 0x00, 0x00, 0x00, //0x00001ad7 jne LBB0_135 + 0x48, 0x89, 0x55, 0x98, //0x00001add movq %rdx, $-104(%rbp) + 0x49, 0xff, 0xc7, //0x00001ae1 incq %r15 + 0x48, 0x8d, 0x85, 0x41, 0xff, 0xff, 0xff, //0x00001ae4 leaq $-191(%rbp), %rax + 0x4c, 0x89, 0xe3, //0x00001aeb movq %r12, %rbx + //0x00001aee LBB0_131 + 0x4c, 0x89, 0xff, //0x00001aee movq %r15, %rdi + 0x48, 0x89, 0xc6, //0x00001af1 movq %rax, %rsi + 0x4c, 0x39, 0xc8, //0x00001af4 cmpq %r9, %rax + 0x0f, 0x83, 0x1c, 0x00, 0x00, 0x00, //0x00001af7 jae LBB0_134 + 0x4c, 0x39, 0xd7, //0x00001afd cmpq %r10, %rdi + 0x0f, 0x83, 0x13, 0x00, 0x00, 0x00, //0x00001b00 jae LBB0_134 + 0x0f, 0xb6, 0x0f, //0x00001b06 movzbl (%rdi), %ecx + 0x4c, 0x8d, 0x7f, 0x01, //0x00001b09 leaq $1(%rdi), %r15 + 0x48, 0x8d, 0x46, 0x01, //0x00001b0d leaq $1(%rsi), %rax + 0x3a, 0x0e, //0x00001b11 cmpb (%rsi), %cl + 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x00001b13 je LBB0_131 + //0x00001b19 LBB0_134 + 0x49, 0x89, 0xff, //0x00001b19 movq %rdi, %r15 + 0x48, 0x8b, 0x7d, 0xc8, //0x00001b1c movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0x98, //0x00001b20 movq $-104(%rbp), %rdx + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00001b24 jmp LBB0_138 + //0x00001b29 LBB0_135 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00001b29 leaq $-192(%rbp), %rsi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00001b30 jmp LBB0_137 + //0x00001b35 LBB0_136 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00001b35 leaq $-192(%rbp), %rsi + 0x48, 0x8b, 0x7d, 0xc8, //0x00001b3c movq $-56(%rbp), %rdi + //0x00001b40 LBB0_137 + 0x4c, 0x89, 0xe3, //0x00001b40 movq %r12, %rbx + //0x00001b43 LBB0_138 + 0x4c, 0x39, 0xce, //0x00001b43 cmpq %r9, %rsi + 0x0f, 0x85, 0x3d, 0x02, 0x00, 0x00, //0x00001b46 jne LBB0_324 + //0x00001b4c LBB0_139 + 0x48, 0x39, 0xda, //0x00001b4c cmpq %rbx, %rdx + 0x0f, 0x86, 0x04, 0x02, 0x00, 0x00, //0x00001b4f jbe LBB0_154 + 0x4d, 0x39, 0xd7, //0x00001b55 cmpq %r10, %r15 + 0x0f, 0x82, 0xe4, 0xfd, 0xff, 0xff, //0x00001b58 jb LBB0_109 + 0xe9, 0xf6, 0x01, 0x00, 0x00, //0x00001b5e jmp LBB0_154 + //0x00001b63 LBB0_141 + 0x88, 0x9d, 0x40, 0xff, 0xff, 0xff, //0x00001b63 movb %bl, $-192(%rbp) + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00001b69 movl $1, %edi + 0xe9, 0x32, 0xff, 0xff, 0xff, //0x00001b6e jmp LBB0_125 + //0x00001b73 LBB0_142 + 0xc1, 0xea, 0x06, //0x00001b73 shrl $6, %edx + 0x80, 0xca, 0xc0, //0x00001b76 orb $-64, %dl + 0x88, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00001b79 movb %dl, $-192(%rbp) + 0x80, 0xe3, 0x3f, //0x00001b7f andb $63, %bl + 0x80, 0xcb, 0x80, //0x00001b82 orb $-128, %bl + 0x88, 0x9d, 0x41, 0xff, 0xff, 0xff, //0x00001b85 movb %bl, $-191(%rbp) + 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00001b8b movl $2, %edi + 0x89, 0xd3, //0x00001b90 movl %edx, %ebx + 0xe9, 0x0e, 0xff, 0xff, 0xff, //0x00001b92 jmp LBB0_125 + //0x00001b97 LBB0_143 + 0x48, 0x83, 0xff, 0x06, //0x00001b97 cmpq $6, %rdi + 0x0f, 0x8c, 0x82, 0x3b, 0x00, 0x00, //0x00001b9b jl LBB0_977 + 0x81, 0xfa, 0xff, 0xdb, 0x00, 0x00, //0x00001ba1 cmpl $56319, %edx + 0x0f, 0x87, 0x76, 0x3b, 0x00, 0x00, //0x00001ba7 ja LBB0_977 + 0x41, 0x80, 0x38, 0x5c, //0x00001bad cmpb $92, (%r8) + 0x0f, 0x85, 0x6c, 0x3b, 0x00, 0x00, //0x00001bb1 jne LBB0_977 + 0x41, 0x80, 0x7c, 0x24, 0x07, 0x75, //0x00001bb7 cmpb $117, $7(%r12) + 0x0f, 0x85, 0x60, 0x3b, 0x00, 0x00, //0x00001bbd jne LBB0_977 + 0x4c, 0x89, 0xe0, //0x00001bc3 movq %r12, %rax + 0x4d, 0x8d, 0x44, 0x24, 0x08, //0x00001bc6 leaq $8(%r12), %r8 + 0x41, 0x8b, 0x7c, 0x24, 0x08, //0x00001bcb movl $8(%r12), %edi + 0x89, 0xfb, //0x00001bd0 movl %edi, %ebx + 0xf7, 0xd3, //0x00001bd2 notl %ebx + 0x8d, 0x87, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001bd4 leal $-808464432(%rdi), %eax + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00001bda andl $-2139062144, %ebx + 0x85, 0xc3, //0x00001be0 testl %eax, %ebx + 0x0f, 0x85, 0x47, 0x3b, 0x00, 0x00, //0x00001be2 jne LBB0_978 + 0x8d, 0x87, 0x19, 0x19, 0x19, 0x19, //0x00001be8 leal $421075225(%rdi), %eax + 0x09, 0xf8, //0x00001bee orl %edi, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001bf0 testl $-2139062144, %eax + 0x0f, 0x85, 0x34, 0x3b, 0x00, 0x00, //0x00001bf5 jne LBB0_978 + 0x89, 0xf8, //0x00001bfb movl %edi, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001bfd andl $2139062143, %eax + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c02 movl $-1061109568, %ecx + 0x29, 0xc1, //0x00001c07 subl %eax, %ecx + 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x00001c09 leal $1179010630(%rax), %esi + 0x21, 0xd9, //0x00001c0f andl %ebx, %ecx + 0x85, 0xf1, //0x00001c11 testl %esi, %ecx + 0x0f, 0x85, 0x16, 0x3b, 0x00, 0x00, //0x00001c13 jne LBB0_978 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001c19 movl $-522133280, %ecx + 0x29, 0xc1, //0x00001c1e subl %eax, %ecx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001c20 addl $960051513, %eax + 0x21, 0xcb, //0x00001c25 andl %ecx, %ebx + 0x85, 0xc3, //0x00001c27 testl %eax, %ebx + 0x0f, 0x85, 0x00, 0x3b, 0x00, 0x00, //0x00001c29 jne LBB0_978 + 0x0f, 0xcf, //0x00001c2f bswapl %edi + 0x89, 0xf8, //0x00001c31 movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x00001c33 shrl $4, %eax + 0xf7, 0xd0, //0x00001c36 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00001c38 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00001c3d leal (%rax,%rax,8), %eax + 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001c40 andl $252645135, %edi + 0x01, 0xc7, //0x00001c46 addl %eax, %edi + 0x89, 0xf8, //0x00001c48 movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x00001c4a shrl $4, %eax + 0x09, 0xf8, //0x00001c4d orl %edi, %eax + 0x89, 0xc1, //0x00001c4f movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001c51 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001c57 cmpl $14417920, %ecx + 0x0f, 0x85, 0xc0, 0x3a, 0x00, 0x00, //0x00001c5d jne LBB0_977 + 0x89, 0xc1, //0x00001c63 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00001c65 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001c68 andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x00001c6e movzbl %al, %eax + 0x09, 0xc8, //0x00001c71 orl %ecx, %eax + 0xc1, 0xe2, 0x0a, //0x00001c73 shll $10, %edx + 0x8d, 0x84, 0x02, 0x00, 0x24, 0xa0, 0xfc, //0x00001c76 leal $-56613888(%rdx,%rax), %eax + 0x89, 0xc3, //0x00001c7d movl %eax, %ebx + 0xc1, 0xeb, 0x12, //0x00001c7f shrl $18, %ebx + 0x80, 0xcb, 0xf0, //0x00001c82 orb $-16, %bl + 0x88, 0x9d, 0x40, 0xff, 0xff, 0xff, //0x00001c85 movb %bl, $-192(%rbp) + 0x89, 0xc1, //0x00001c8b movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x00001c8d shrl $12, %ecx + 0x80, 0xe1, 0x3f, //0x00001c90 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001c93 orb $-128, %cl + 0x88, 0x8d, 0x41, 0xff, 0xff, 0xff, //0x00001c96 movb %cl, $-191(%rbp) + 0x89, 0xc1, //0x00001c9c movl %eax, %ecx + 0xc1, 0xe9, 0x06, //0x00001c9e shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00001ca1 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00001ca4 orb $-128, %cl + 0x88, 0x8d, 0x42, 0xff, 0xff, 0xff, //0x00001ca7 movb %cl, $-190(%rbp) + 0x24, 0x3f, //0x00001cad andb $63, %al + 0x0c, 0x80, //0x00001caf orb $-128, %al + 0x88, 0x85, 0x43, 0xff, 0xff, 0xff, //0x00001cb1 movb %al, $-189(%rbp) + 0x49, 0x83, 0xc4, 0x0c, //0x00001cb7 addq $12, %r12 + 0xbf, 0x04, 0x00, 0x00, 0x00, //0x00001cbb movl $4, %edi + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001cc0 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00001cc4 movq $-64(%rbp), %r13 + 0xe9, 0xdb, 0xfd, 0xff, 0xff, //0x00001cc8 jmp LBB0_126 + //0x00001ccd LBB0_260 + 0x4d, 0x85, 0xd2, //0x00001ccd testq %r10, %r10 + 0x0f, 0x85, 0x6d, 0x02, 0x00, 0x00, //0x00001cd0 jne LBB0_341 + 0x4a, 0x8d, 0x4c, 0x08, 0x01, //0x00001cd6 leaq $1(%rax,%r9), %rcx + 0x48, 0xf7, 0xd0, //0x00001cdb notq %rax + 0x4c, 0x01, 0xc0, //0x00001cde addq %r8, %rax + //0x00001ce1 LBB0_262 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001ce1 movabsq $4294977024, %r10 + //0x00001ceb LBB0_263 + 0x48, 0x85, 0xc0, //0x00001ceb testq %rax, %rax + 0x4c, 0x8b, 0x45, 0xb0, //0x00001cee movq $-80(%rbp), %r8 + 0x4d, 0x89, 0xf9, //0x00001cf2 movq %r15, %r9 + 0x0f, 0x8f, 0x1d, 0x00, 0x00, 0x00, //0x00001cf5 jg LBB0_320 + 0xe9, 0x40, 0xf0, 0xff, 0xff, //0x00001cfb jmp LBB0_224 + //0x00001d00 LBB0_319 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00001d00 movq $-2, %rdx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00001d07 movl $2, %esi + 0x48, 0x01, 0xf1, //0x00001d0c addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00001d0f addq %rdx, %rax + 0x0f, 0x8e, 0x28, 0xf0, 0xff, 0xff, //0x00001d12 jle LBB0_224 + //0x00001d18 LBB0_320 + 0x0f, 0xb6, 0x11, //0x00001d18 movzbl (%rcx), %edx + 0x80, 0xfa, 0x5c, //0x00001d1b cmpb $92, %dl + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00001d1e je LBB0_319 + 0x80, 0xfa, 0x22, //0x00001d24 cmpb $34, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00001d27 je LBB0_323 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00001d2d movq $-1, %rdx + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00001d34 movl $1, %esi + 0x48, 0x01, 0xf1, //0x00001d39 addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00001d3c addq %rdx, %rax + 0x0f, 0x8f, 0xd3, 0xff, 0xff, 0xff, //0x00001d3f jg LBB0_320 + 0xe9, 0xf6, 0xef, 0xff, 0xff, //0x00001d45 jmp LBB0_224 + //0x00001d4a LBB0_323 + 0x48, 0x29, 0xf9, //0x00001d4a subq %rdi, %rcx + 0x48, 0xff, 0xc1, //0x00001d4d incq %rcx + 0xe9, 0x81, 0xf2, 0xff, 0xff, //0x00001d50 jmp LBB0_265 + //0x00001d55 LBB0_153 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001d55 movq $-48(%rbp), %r11 + //0x00001d59 LBB0_154 + 0x48, 0x31, 0xda, //0x00001d59 xorq %rbx, %rdx + 0x4d, 0x31, 0xd7, //0x00001d5c xorq %r10, %r15 + 0x31, 0xc9, //0x00001d5f xorl %ecx, %ecx + 0x49, 0x09, 0xd7, //0x00001d61 orq %rdx, %r15 + 0x0f, 0x94, 0xc1, //0x00001d64 sete %cl + //0x00001d67 LBB0_155 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001d67 movabsq $4294977024, %r10 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00001d71 movq $-96(%rbp), %r9 + 0x49, 0x8b, 0x10, //0x00001d75 movq (%r8), %rdx + 0x4c, 0x89, 0xf6, //0x00001d78 movq %r14, %rsi + 0x48, 0x29, 0xd6, //0x00001d7b subq %rdx, %rsi + 0x0f, 0x82, 0xab, 0xeb, 0xff, 0xff, //0x00001d7e jb LBB0_101 + 0xe9, 0xf7, 0xeb, 0xff, 0xff, //0x00001d84 jmp LBB0_156 + //0x00001d89 LBB0_324 + 0x31, 0xc9, //0x00001d89 xorl %ecx, %ecx + 0xe9, 0xd7, 0xff, 0xff, 0xff, //0x00001d8b jmp LBB0_155 + //0x00001d90 LBB0_325 + 0x4a, 0x8d, 0x0c, 0x37, //0x00001d90 leaq (%rdi,%r14), %rcx + 0xe9, 0x48, 0xff, 0xff, 0xff, //0x00001d94 jmp LBB0_262 + //0x00001d99 LBB0_326 + 0x4c, 0x89, 0xf2, //0x00001d99 movq %r14, %rdx + 0x48, 0x2b, 0x55, 0xc8, //0x00001d9c subq $-56(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xdf, //0x00001da0 bsfq %rdi, %r11 + 0x49, 0x01, 0xd3, //0x00001da4 addq %rdx, %r11 + 0x4c, 0x09, 0xc6, //0x00001da7 orq %r8, %rsi + 0x48, 0x89, 0xfa, //0x00001daa movq %rdi, %rdx + 0x48, 0x09, 0xda, //0x00001dad orq %rbx, %rdx + 0x0f, 0x84, 0x0f, 0xfb, 0xff, 0xff, //0x00001db0 je LBB0_72 + //0x00001db6 LBB0_327 + 0x4d, 0x89, 0xf7, //0x00001db6 movq %r14, %r15 + 0x4d, 0x89, 0xce, //0x00001db9 movq %r9, %r14 + 0x41, 0x89, 0xd9, //0x00001dbc movl %ebx, %r9d + 0x41, 0xf7, 0xd1, //0x00001dbf notl %r9d + 0x41, 0x21, 0xf9, //0x00001dc2 andl %edi, %r9d + 0x47, 0x8d, 0x04, 0x09, //0x00001dc5 leal (%r9,%r9), %r8d + 0x41, 0x09, 0xd8, //0x00001dc9 orl %ebx, %r8d + 0x44, 0x89, 0xc2, //0x00001dcc movl %r8d, %edx + 0xf7, 0xd2, //0x00001dcf notl %edx + 0x21, 0xfa, //0x00001dd1 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001dd3 andl $-1431655766, %edx + 0x31, 0xdb, //0x00001dd9 xorl %ebx, %ebx + 0x44, 0x01, 0xca, //0x00001ddb addl %r9d, %edx + 0x4d, 0x89, 0xf1, //0x00001dde movq %r14, %r9 + 0x4d, 0x89, 0xfe, //0x00001de1 movq %r15, %r14 + 0x0f, 0x92, 0xc3, //0x00001de4 setb %bl + 0x01, 0xd2, //0x00001de7 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00001de9 xorl $1431655765, %edx + 0x44, 0x21, 0xc2, //0x00001def andl %r8d, %edx + 0xf7, 0xd2, //0x00001df2 notl %edx + 0x21, 0xd6, //0x00001df4 andl %edx, %esi + 0x4c, 0x8b, 0x45, 0xb0, //0x00001df6 movq $-80(%rbp), %r8 + 0x48, 0x8b, 0x7d, 0xc8, //0x00001dfa movq $-56(%rbp), %rdi + 0x48, 0x85, 0xf6, //0x00001dfe testq %rsi, %rsi + 0x0f, 0x85, 0xcf, 0xfa, 0xff, 0xff, //0x00001e01 jne LBB0_73 + //0x00001e07 LBB0_328 + 0x49, 0x83, 0xc6, 0x20, //0x00001e07 addq $32, %r14 + 0x48, 0x83, 0xc1, 0xe0, //0x00001e0b addq $-32, %rcx + //0x00001e0f LBB0_329 + 0x48, 0x85, 0xdb, //0x00001e0f testq %rbx, %rbx + 0x4c, 0x8b, 0x7d, 0x90, //0x00001e12 movq $-112(%rbp), %r15 + 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x00001e16 jne LBB0_338 + 0x4d, 0x89, 0xd8, //0x00001e1c movq %r11, %r8 + 0x48, 0x85, 0xc9, //0x00001e1f testq %rcx, %rcx + 0x0f, 0x84, 0xcc, 0x36, 0x00, 0x00, //0x00001e22 je LBB0_951 + //0x00001e28 LBB0_331 + 0x48, 0xf7, 0xd7, //0x00001e28 notq %rdi + //0x00001e2b LBB0_332 + 0x4c, 0x89, 0xf6, //0x00001e2b movq %r14, %rsi + 0x49, 0xff, 0xc6, //0x00001e2e incq %r14 + 0x0f, 0xb6, 0x1e, //0x00001e31 movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x00001e34 cmpb $34, %bl + 0x0f, 0x84, 0x71, 0x00, 0x00, 0x00, //0x00001e37 je LBB0_337 + 0x48, 0x89, 0xf2, //0x00001e3d movq %rsi, %rdx + 0x48, 0x8d, 0x71, 0xff, //0x00001e40 leaq $-1(%rcx), %rsi + 0x80, 0xfb, 0x5c, //0x00001e44 cmpb $92, %bl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00001e47 je LBB0_335 + 0x48, 0x89, 0xf1, //0x00001e4d movq %rsi, %rcx + 0x48, 0x85, 0xf6, //0x00001e50 testq %rsi, %rsi + 0x4c, 0x8b, 0x7d, 0x90, //0x00001e53 movq $-112(%rbp), %r15 + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00001e57 jne LBB0_332 + 0xe9, 0x92, 0x36, 0x00, 0x00, //0x00001e5d jmp LBB0_951 + //0x00001e62 LBB0_335 + 0x48, 0x85, 0xf6, //0x00001e62 testq %rsi, %rsi + 0x0f, 0x84, 0x89, 0x36, 0x00, 0x00, //0x00001e65 je LBB0_951 + 0x4d, 0x89, 0xcd, //0x00001e6b movq %r9, %r13 + 0x49, 0x01, 0xfe, //0x00001e6e addq %rdi, %r14 + 0x49, 0x83, 0xf8, 0xff, //0x00001e71 cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xde, //0x00001e75 cmoveq %r14, %r11 + 0x4d, 0x0f, 0x44, 0xc6, //0x00001e79 cmoveq %r14, %r8 + 0x49, 0x89, 0xd6, //0x00001e7d movq %rdx, %r14 + 0x49, 0x83, 0xc6, 0x02, //0x00001e80 addq $2, %r14 + 0x48, 0x83, 0xc1, 0xfe, //0x00001e84 addq $-2, %rcx + 0x48, 0x89, 0xce, //0x00001e88 movq %rcx, %rsi + 0x48, 0x8b, 0x55, 0xc0, //0x00001e8b movq $-64(%rbp), %rdx + 0x49, 0x89, 0xd5, //0x00001e8f movq %rdx, %r13 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001e92 movabsq $4294977024, %r10 + 0x48, 0x85, 0xf6, //0x00001e9c testq %rsi, %rsi + 0x4c, 0x8b, 0x7d, 0x90, //0x00001e9f movq $-112(%rbp), %r15 + 0x0f, 0x85, 0x82, 0xff, 0xff, 0xff, //0x00001ea3 jne LBB0_332 + 0xe9, 0x46, 0x36, 0x00, 0x00, //0x00001ea9 jmp LBB0_951 + //0x00001eae LBB0_337 + 0x48, 0x8b, 0x7d, 0xc8, //0x00001eae movq $-56(%rbp), %rdi + 0x49, 0x29, 0xfe, //0x00001eb2 subq %rdi, %r14 + 0x4c, 0x8b, 0x45, 0xb0, //0x00001eb5 movq $-80(%rbp), %r8 + 0x4d, 0x85, 0xf6, //0x00001eb9 testq %r14, %r14 + 0x48, 0x8b, 0x5d, 0xb8, //0x00001ebc movq $-72(%rbp), %rbx + 0x0f, 0x89, 0xb1, 0xe8, 0xff, 0xff, //0x00001ec0 jns LBB0_79 + 0xe9, 0x29, 0x36, 0x00, 0x00, //0x00001ec6 jmp LBB0_951 + //0x00001ecb LBB0_338 + 0x48, 0x85, 0xc9, //0x00001ecb testq %rcx, %rcx + 0x0f, 0x84, 0x20, 0x36, 0x00, 0x00, //0x00001ece je LBB0_951 + 0x4d, 0x89, 0xcd, //0x00001ed4 movq %r9, %r13 + 0x48, 0x8b, 0x7d, 0xc8, //0x00001ed7 movq $-56(%rbp), %rdi + 0x49, 0x89, 0xf8, //0x00001edb movq %rdi, %r8 + 0x49, 0xf7, 0xd0, //0x00001ede notq %r8 + 0x4d, 0x01, 0xf0, //0x00001ee1 addq %r14, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00001ee4 cmpq $-1, %r11 + 0x4c, 0x89, 0xda, //0x00001ee8 movq %r11, %rdx + 0x49, 0x0f, 0x44, 0xd0, //0x00001eeb cmoveq %r8, %rdx + 0x4d, 0x0f, 0x45, 0xc3, //0x00001eef cmovneq %r11, %r8 + 0x49, 0xff, 0xc6, //0x00001ef3 incq %r14 + 0x48, 0xff, 0xc9, //0x00001ef6 decq %rcx + 0x49, 0x89, 0xd3, //0x00001ef9 movq %rdx, %r11 + 0x48, 0x8b, 0x55, 0xc0, //0x00001efc movq $-64(%rbp), %rdx + 0x49, 0x89, 0xd5, //0x00001f00 movq %rdx, %r13 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001f03 movabsq $4294977024, %r10 + 0x4c, 0x8b, 0x7d, 0x90, //0x00001f0d movq $-112(%rbp), %r15 + 0x48, 0x85, 0xc9, //0x00001f11 testq %rcx, %rcx + 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x00001f14 jne LBB0_331 + 0xe9, 0xd5, 0x35, 0x00, 0x00, //0x00001f1a jmp LBB0_951 + //0x00001f1f LBB0_340 + 0x4c, 0x8b, 0x45, 0xb0, //0x00001f1f movq $-80(%rbp), %r8 + 0x4d, 0x8b, 0x30, //0x00001f23 movq (%r8), %r14 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001f26 movq $-48(%rbp), %r11 + 0x4d, 0x89, 0x33, //0x00001f2a movq %r14, (%r11) + 0x4c, 0x8b, 0x6d, 0xc0, //0x00001f2d movq $-64(%rbp), %r13 + 0x49, 0x89, 0xd1, //0x00001f31 movq %rdx, %r9 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001f34 movabsq $4294977024, %r10 + 0xe9, 0xfd, 0xed, 0xff, 0xff, //0x00001f3e jmp LBB0_224 + //0x00001f43 LBB0_341 + 0x4d, 0x89, 0xfd, //0x00001f43 movq %r15, %r13 + 0x49, 0x8d, 0x48, 0xff, //0x00001f46 leaq $-1(%r8), %rcx + 0x48, 0x39, 0xc1, //0x00001f4a cmpq %rax, %rcx + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00001f4d jne LBB0_343 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001f53 movq $-48(%rbp), %r11 + 0x48, 0x8b, 0x45, 0xc0, //0x00001f57 movq $-64(%rbp), %rax + 0x4d, 0x89, 0xe9, //0x00001f5b movq %r13, %r9 + 0x49, 0x89, 0xc5, //0x00001f5e movq %rax, %r13 + 0x4c, 0x8b, 0x45, 0xb0, //0x00001f61 movq $-80(%rbp), %r8 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001f65 movabsq $4294977024, %r10 + 0xe9, 0xcc, 0xed, 0xff, 0xff, //0x00001f6f jmp LBB0_224 + //0x00001f74 LBB0_343 + 0x4a, 0x8d, 0x4c, 0x08, 0x02, //0x00001f74 leaq $2(%rax,%r9), %rcx + 0x49, 0x29, 0xc0, //0x00001f79 subq %rax, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00001f7c addq $-2, %r8 + 0x4c, 0x89, 0xc0, //0x00001f80 movq %r8, %rax + 0x4c, 0x8b, 0x5d, 0xd0, //0x00001f83 movq $-48(%rbp), %r11 + 0x48, 0x8b, 0x55, 0xc0, //0x00001f87 movq $-64(%rbp), %rdx + 0x4d, 0x89, 0xef, //0x00001f8b movq %r13, %r15 + 0x49, 0x89, 0xd5, //0x00001f8e movq %rdx, %r13 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001f91 movabsq $4294977024, %r10 + 0x48, 0x8b, 0x7d, 0xc8, //0x00001f9b movq $-56(%rbp), %rdi + 0xe9, 0x47, 0xfd, 0xff, 0xff, //0x00001f9f jmp LBB0_263 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001fa4 .p2align 4, 0x90 + //0x00001fb0 LBB0_351 + 0x49, 0x8d, 0x56, 0x01, //0x00001fb0 leaq $1(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00001fb4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001fb7 jae LBB0_355 + 0x8a, 0x1c, 0x17, //0x00001fbd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00001fc0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001fc3 je LBB0_355 + 0x80, 0xfb, 0x20, //0x00001fc9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001fcc je LBB0_355 + 0x80, 0xc3, 0xf7, //0x00001fd2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00001fd5 cmpb $1, %bl + 0x0f, 0x87, 0x03, 0x01, 0x00, 0x00, //0x00001fd8 ja LBB0_373 + 0x90, 0x90, //0x00001fde .p2align 4, 0x90 + //0x00001fe0 LBB0_355 + 0x49, 0x8d, 0x56, 0x02, //0x00001fe0 leaq $2(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00001fe4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00001fe7 jae LBB0_359 + 0x8a, 0x1c, 0x17, //0x00001fed movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00001ff0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00001ff3 je LBB0_359 + 0x80, 0xfb, 0x20, //0x00001ff9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00001ffc je LBB0_359 + 0x80, 0xc3, 0xf7, //0x00002002 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002005 cmpb $1, %bl + 0x0f, 0x87, 0xd3, 0x00, 0x00, 0x00, //0x00002008 ja LBB0_373 + 0x90, 0x90, //0x0000200e .p2align 4, 0x90 + //0x00002010 LBB0_359 + 0x49, 0x8d, 0x56, 0x03, //0x00002010 leaq $3(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00002014 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002017 jae LBB0_363 + 0x8a, 0x1c, 0x17, //0x0000201d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00002020 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002023 je LBB0_363 + 0x80, 0xfb, 0x20, //0x00002029 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000202c je LBB0_363 + 0x80, 0xc3, 0xf7, //0x00002032 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002035 cmpb $1, %bl + 0x0f, 0x87, 0xa3, 0x00, 0x00, 0x00, //0x00002038 ja LBB0_373 + 0x90, 0x90, //0x0000203e .p2align 4, 0x90 + //0x00002040 LBB0_363 + 0x49, 0x8d, 0x76, 0x04, //0x00002040 leaq $4(%r14), %rsi + 0x48, 0x39, 0xf0, //0x00002044 cmpq %rsi, %rax + 0x0f, 0x86, 0x5d, 0x00, 0x00, 0x00, //0x00002047 jbe LBB0_370 + 0x48, 0x39, 0xf0, //0x0000204d cmpq %rsi, %rax + 0x0f, 0x84, 0x5f, 0x00, 0x00, 0x00, //0x00002050 je LBB0_371 + 0x48, 0x8d, 0x34, 0x07, //0x00002056 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x0000205a addq $4, %rcx + 0x48, 0x89, 0xfb, //0x0000205e movq %rdi, %rbx + 0x4a, 0x8d, 0x54, 0x37, 0x05, //0x00002061 leaq $5(%rdi,%r14), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002066 .p2align 4, 0x90 + //0x00002070 LBB0_366 + 0x0f, 0xbe, 0x7a, 0xff, //0x00002070 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00002074 cmpl $32, %edi + 0x0f, 0x87, 0x4f, 0x00, 0x00, 0x00, //0x00002077 ja LBB0_372 + 0x49, 0x0f, 0xa3, 0xfa, //0x0000207d btq %rdi, %r10 + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00002081 jae LBB0_372 + 0x48, 0xff, 0xc2, //0x00002087 incq %rdx + 0x48, 0xff, 0xc1, //0x0000208a incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000208d jne LBB0_366 + 0x48, 0x89, 0xdf, //0x00002093 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00002096 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x00002099 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x0000209c cmpq %rax, %rdx + 0x0f, 0x82, 0x3c, 0x00, 0x00, 0x00, //0x0000209f jb LBB0_373 + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x000020a5 jmp LBB0_374 + //0x000020aa LBB0_370 + 0x49, 0x89, 0x33, //0x000020aa movq %rsi, (%r11) + 0x49, 0x89, 0xf6, //0x000020ad movq %rsi, %r14 + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x000020b0 jmp LBB0_374 + //0x000020b5 LBB0_371 + 0x48, 0x01, 0xfe, //0x000020b5 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x000020b8 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x000020bb movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x000020be cmpq %rax, %rdx + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000020c1 jb LBB0_373 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000020c7 jmp LBB0_374 + //0x000020cc LBB0_372 + 0x48, 0x89, 0xdf, //0x000020cc movq %rbx, %rdi + 0x48, 0x89, 0xd9, //0x000020cf movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x000020d2 notq %rcx + 0x48, 0x01, 0xca, //0x000020d5 addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x000020d8 cmpq %rax, %rdx + 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x000020db jae LBB0_374 + //0x000020e1 LBB0_373 + 0x4c, 0x8d, 0x72, 0x01, //0x000020e1 leaq $1(%rdx), %r14 + 0x4d, 0x89, 0x33, //0x000020e5 movq %r14, (%r11) + 0x80, 0x3c, 0x17, 0x5d, //0x000020e8 cmpb $93, (%rdi,%rdx) + 0x0f, 0x84, 0x38, 0x11, 0x00, 0x00, //0x000020ec je LBB0_554 + //0x000020f2 LBB0_374 + 0x49, 0xff, 0xce, //0x000020f2 decq %r14 + 0x4d, 0x89, 0x33, //0x000020f5 movq %r14, (%r11) + 0x4d, 0x85, 0xe4, //0x000020f8 testq %r12, %r12 + 0x0f, 0x8e, 0x1f, 0x0f, 0x00, 0x00, //0x000020fb jle LBB0_447 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002101 .p2align 4, 0x90 + //0x00002110 LBB0_375 + 0x49, 0x8b, 0x00, //0x00002110 movq (%r8), %rax + 0x4c, 0x89, 0xf2, //0x00002113 movq %r14, %rdx + 0x48, 0x29, 0xc2, //0x00002116 subq %rax, %rdx + 0x0f, 0x83, 0x31, 0x00, 0x00, 0x00, //0x00002119 jae LBB0_380 + 0x42, 0x8a, 0x0c, 0x37, //0x0000211f movb (%rdi,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00002123 cmpb $13, %cl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00002126 je LBB0_380 + 0x80, 0xf9, 0x20, //0x0000212c cmpb $32, %cl + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000212f je LBB0_380 + 0x80, 0xc1, 0xf7, //0x00002135 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00002138 cmpb $1, %cl + 0x0f, 0x86, 0x0f, 0x00, 0x00, 0x00, //0x0000213b jbe LBB0_380 + 0x4c, 0x89, 0xf1, //0x00002141 movq %r14, %rcx + 0xe9, 0x47, 0x01, 0x00, 0x00, //0x00002144 jmp LBB0_402 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002149 .p2align 4, 0x90 + //0x00002150 LBB0_380 + 0x49, 0x8d, 0x4e, 0x01, //0x00002150 leaq $1(%r14), %rcx + 0x48, 0x39, 0xc1, //0x00002154 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002157 jae LBB0_384 + 0x8a, 0x1c, 0x0f, //0x0000215d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00002160 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002163 je LBB0_384 + 0x80, 0xfb, 0x20, //0x00002169 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000216c je LBB0_384 + 0x80, 0xc3, 0xf7, //0x00002172 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002175 cmpb $1, %bl + 0x0f, 0x87, 0x12, 0x01, 0x00, 0x00, //0x00002178 ja LBB0_402 + 0x90, 0x90, //0x0000217e .p2align 4, 0x90 + //0x00002180 LBB0_384 + 0x49, 0x8d, 0x4e, 0x02, //0x00002180 leaq $2(%r14), %rcx + 0x48, 0x39, 0xc1, //0x00002184 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002187 jae LBB0_388 + 0x8a, 0x1c, 0x0f, //0x0000218d movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x00002190 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002193 je LBB0_388 + 0x80, 0xfb, 0x20, //0x00002199 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000219c je LBB0_388 + 0x80, 0xc3, 0xf7, //0x000021a2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000021a5 cmpb $1, %bl + 0x0f, 0x87, 0xe2, 0x00, 0x00, 0x00, //0x000021a8 ja LBB0_402 + 0x90, 0x90, //0x000021ae .p2align 4, 0x90 + //0x000021b0 LBB0_388 + 0x49, 0x8d, 0x4e, 0x03, //0x000021b0 leaq $3(%r14), %rcx + 0x48, 0x39, 0xc1, //0x000021b4 cmpq %rax, %rcx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000021b7 jae LBB0_392 + 0x8a, 0x1c, 0x0f, //0x000021bd movb (%rdi,%rcx), %bl + 0x80, 0xfb, 0x0d, //0x000021c0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000021c3 je LBB0_392 + 0x80, 0xfb, 0x20, //0x000021c9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000021cc je LBB0_392 + 0x80, 0xc3, 0xf7, //0x000021d2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000021d5 cmpb $1, %bl + 0x0f, 0x87, 0xb2, 0x00, 0x00, 0x00, //0x000021d8 ja LBB0_402 + 0x90, 0x90, //0x000021de .p2align 4, 0x90 + //0x000021e0 LBB0_392 + 0x49, 0x8d, 0x76, 0x04, //0x000021e0 leaq $4(%r14), %rsi + 0x48, 0x39, 0xf0, //0x000021e4 cmpq %rsi, %rax + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x000021e7 jbe LBB0_399 + 0x48, 0x39, 0xf0, //0x000021ed cmpq %rsi, %rax + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x000021f0 je LBB0_400 + 0x48, 0x8d, 0x34, 0x07, //0x000021f6 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc2, 0x04, //0x000021fa addq $4, %rdx + 0x48, 0x89, 0xfb, //0x000021fe movq %rdi, %rbx + 0x4a, 0x8d, 0x4c, 0x37, 0x05, //0x00002201 leaq $5(%rdi,%r14), %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002206 .p2align 4, 0x90 + //0x00002210 LBB0_395 + 0x0f, 0xbe, 0x79, 0xff, //0x00002210 movsbl $-1(%rcx), %edi + 0x83, 0xff, 0x20, //0x00002214 cmpl $32, %edi + 0x0f, 0x87, 0x55, 0x00, 0x00, 0x00, //0x00002217 ja LBB0_401 + 0x49, 0x0f, 0xa3, 0xfa, //0x0000221d btq %rdi, %r10 + 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00002221 jae LBB0_401 + 0x48, 0xff, 0xc1, //0x00002227 incq %rcx + 0x48, 0xff, 0xc2, //0x0000222a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000222d jne LBB0_395 + 0x48, 0x89, 0xdf, //0x00002233 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x00002236 subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00002239 movq %rsi, %rcx + 0x48, 0x39, 0xc1, //0x0000223c cmpq %rax, %rcx + 0x0f, 0x82, 0x4b, 0x00, 0x00, 0x00, //0x0000223f jb LBB0_402 + 0xe9, 0x46, 0x01, 0x00, 0x00, //0x00002245 jmp LBB0_419 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000224a .p2align 4, 0x90 + //0x00002250 LBB0_399 + 0x49, 0x89, 0x33, //0x00002250 movq %rsi, (%r11) + 0x49, 0x89, 0xf6, //0x00002253 movq %rsi, %r14 + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00002256 jmp LBB0_419 + //0x0000225b LBB0_400 + 0x48, 0x01, 0xfe, //0x0000225b addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x0000225e subq %rdi, %rsi + 0x48, 0x89, 0xf1, //0x00002261 movq %rsi, %rcx + 0x48, 0x39, 0xc1, //0x00002264 cmpq %rax, %rcx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00002267 jb LBB0_402 + 0xe9, 0x1e, 0x01, 0x00, 0x00, //0x0000226d jmp LBB0_419 + //0x00002272 LBB0_401 + 0x48, 0x89, 0xdf, //0x00002272 movq %rbx, %rdi + 0x48, 0x89, 0xda, //0x00002275 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00002278 notq %rdx + 0x48, 0x01, 0xd1, //0x0000227b addq %rdx, %rcx + 0x48, 0x39, 0xc1, //0x0000227e cmpq %rax, %rcx + 0x0f, 0x83, 0x09, 0x01, 0x00, 0x00, //0x00002281 jae LBB0_419 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002287 .p2align 4, 0x90 + //0x00002290 LBB0_402 + 0x4c, 0x8d, 0x71, 0x01, //0x00002290 leaq $1(%rcx), %r14 + 0x4d, 0x89, 0x33, //0x00002294 movq %r14, (%r11) + 0x0f, 0xbe, 0x04, 0x0f, //0x00002297 movsbl (%rdi,%rcx), %eax + 0x83, 0xf8, 0x7b, //0x0000229b cmpl $123, %eax + 0x0f, 0x87, 0xc8, 0x03, 0x00, 0x00, //0x0000229e ja LBB0_462 + 0x48, 0x8d, 0x15, 0xcd, 0x34, 0x00, 0x00, //0x000022a4 leaq $13517(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000022ab movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000022af addq %rdx, %rax + 0xff, 0xe0, //0x000022b2 jmpq *%rax + //0x000022b4 LBB0_404 + 0x49, 0x8b, 0x10, //0x000022b4 movq (%r8), %rdx + 0x48, 0x89, 0xd0, //0x000022b7 movq %rdx, %rax + 0x4c, 0x29, 0xf0, //0x000022ba subq %r14, %rax + 0x49, 0x01, 0xfe, //0x000022bd addq %rdi, %r14 + 0x48, 0x83, 0xf8, 0x10, //0x000022c0 cmpq $16, %rax + 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x000022c4 jb LBB0_409 + 0x48, 0x29, 0xca, //0x000022ca subq %rcx, %rdx + 0x48, 0x83, 0xc2, 0xef, //0x000022cd addq $-17, %rdx + 0x48, 0x89, 0xd6, //0x000022d1 movq %rdx, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x000022d4 andq $-16, %rsi + 0x48, 0x01, 0xce, //0x000022d8 addq %rcx, %rsi + 0x48, 0x8d, 0x4c, 0x37, 0x11, //0x000022db leaq $17(%rdi,%rsi), %rcx + 0x83, 0xe2, 0x0f, //0x000022e0 andl $15, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000022e3 .p2align 4, 0x90 + //0x000022f0 LBB0_406 + 0xf3, 0x41, 0x0f, 0x6f, 0x16, //0x000022f0 movdqu (%r14), %xmm2 + 0x66, 0x0f, 0x6f, 0xda, //0x000022f5 movdqa %xmm2, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdd, //0x000022f9 pcmpeqb %xmm13, %xmm3 + 0x66, 0x41, 0x0f, 0xeb, 0xd6, //0x000022fe por %xmm14, %xmm2 + 0x66, 0x0f, 0x74, 0xd4, //0x00002303 pcmpeqb %xmm4, %xmm2 + 0x66, 0x0f, 0xeb, 0xd3, //0x00002307 por %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xf2, //0x0000230b pmovmskb %xmm2, %esi + 0x66, 0x85, 0xf6, //0x0000230f testw %si, %si + 0x0f, 0x85, 0x68, 0x00, 0x00, 0x00, //0x00002312 jne LBB0_417 + 0x49, 0x83, 0xc6, 0x10, //0x00002318 addq $16, %r14 + 0x48, 0x83, 0xc0, 0xf0, //0x0000231c addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x00002320 cmpq $15, %rax + 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00002324 ja LBB0_406 + 0x48, 0x89, 0xd0, //0x0000232a movq %rdx, %rax + 0x49, 0x89, 0xce, //0x0000232d movq %rcx, %r14 + //0x00002330 LBB0_409 + 0x48, 0x85, 0xc0, //0x00002330 testq %rax, %rax + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00002333 je LBB0_416 + 0x49, 0x8d, 0x0c, 0x06, //0x00002339 leaq (%r14,%rax), %rcx + 0x90, 0x90, 0x90, //0x0000233d .p2align 4, 0x90 + //0x00002340 LBB0_411 + 0x41, 0x0f, 0xb6, 0x16, //0x00002340 movzbl (%r14), %edx + 0x80, 0xfa, 0x2c, //0x00002344 cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00002347 je LBB0_416 + 0x80, 0xfa, 0x7d, //0x0000234d cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00002350 je LBB0_416 + 0x80, 0xfa, 0x5d, //0x00002356 cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00002359 je LBB0_416 + 0x49, 0xff, 0xc6, //0x0000235f incq %r14 + 0x48, 0xff, 0xc8, //0x00002362 decq %rax + 0x0f, 0x85, 0xd5, 0xff, 0xff, 0xff, //0x00002365 jne LBB0_411 + 0x49, 0x89, 0xce, //0x0000236b movq %rcx, %r14 + //0x0000236e LBB0_416 + 0x49, 0x29, 0xfe, //0x0000236e subq %rdi, %r14 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002371 jmp LBB0_418 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002376 .p2align 4, 0x90 + //0x00002380 LBB0_417 + 0x0f, 0xb7, 0xc6, //0x00002380 movzwl %si, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00002383 bsfq %rax, %rax + 0x49, 0x29, 0xfe, //0x00002387 subq %rdi, %r14 + 0x49, 0x01, 0xc6, //0x0000238a addq %rax, %r14 + //0x0000238d LBB0_418 + 0x4d, 0x89, 0x33, //0x0000238d movq %r14, (%r11) + //0x00002390 LBB0_419 + 0x49, 0x8b, 0x7d, 0x00, //0x00002390 movq (%r13), %rdi + 0x49, 0x8b, 0x45, 0x08, //0x00002394 movq $8(%r13), %rax + 0x4c, 0x89, 0xf1, //0x00002398 movq %r14, %rcx + 0x48, 0x29, 0xc1, //0x0000239b subq %rax, %rcx + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x0000239e jae LBB0_424 + 0x42, 0x8a, 0x14, 0x37, //0x000023a4 movb (%rdi,%r14), %dl + 0x80, 0xfa, 0x0d, //0x000023a8 cmpb $13, %dl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000023ab je LBB0_424 + 0x80, 0xfa, 0x20, //0x000023b1 cmpb $32, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000023b4 je LBB0_424 + 0x80, 0xc2, 0xf7, //0x000023ba addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000023bd cmpb $1, %dl + 0x0f, 0x86, 0x0a, 0x00, 0x00, 0x00, //0x000023c0 jbe LBB0_424 + 0x4c, 0x89, 0xf2, //0x000023c6 movq %r14, %rdx + 0xe9, 0x37, 0x01, 0x00, 0x00, //0x000023c9 jmp LBB0_445 + 0x90, 0x90, //0x000023ce .p2align 4, 0x90 + //0x000023d0 LBB0_424 + 0x49, 0x8d, 0x56, 0x01, //0x000023d0 leaq $1(%r14), %rdx + 0x48, 0x39, 0xc2, //0x000023d4 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000023d7 jae LBB0_428 + 0x8a, 0x1c, 0x17, //0x000023dd movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x000023e0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000023e3 je LBB0_428 + 0x80, 0xfb, 0x20, //0x000023e9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000023ec je LBB0_428 + 0x80, 0xc3, 0xf7, //0x000023f2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000023f5 cmpb $1, %bl + 0x0f, 0x87, 0x07, 0x01, 0x00, 0x00, //0x000023f8 ja LBB0_445 + 0x90, 0x90, //0x000023fe .p2align 4, 0x90 + //0x00002400 LBB0_428 + 0x49, 0x8d, 0x56, 0x02, //0x00002400 leaq $2(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00002404 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002407 jae LBB0_432 + 0x8a, 0x1c, 0x17, //0x0000240d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00002410 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002413 je LBB0_432 + 0x80, 0xfb, 0x20, //0x00002419 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000241c je LBB0_432 + 0x80, 0xc3, 0xf7, //0x00002422 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002425 cmpb $1, %bl + 0x0f, 0x87, 0xd7, 0x00, 0x00, 0x00, //0x00002428 ja LBB0_445 + 0x90, 0x90, //0x0000242e .p2align 4, 0x90 + //0x00002430 LBB0_432 + 0x49, 0x8d, 0x56, 0x03, //0x00002430 leaq $3(%r14), %rdx + 0x48, 0x39, 0xc2, //0x00002434 cmpq %rax, %rdx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00002437 jae LBB0_436 + 0x8a, 0x1c, 0x17, //0x0000243d movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00002440 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002443 je LBB0_436 + 0x80, 0xfb, 0x20, //0x00002449 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000244c je LBB0_436 + 0x80, 0xc3, 0xf7, //0x00002452 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00002455 cmpb $1, %bl + 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x00002458 ja LBB0_445 + 0x90, 0x90, //0x0000245e .p2align 4, 0x90 + //0x00002460 LBB0_436 + 0x49, 0x8d, 0x76, 0x04, //0x00002460 leaq $4(%r14), %rsi + 0x48, 0x39, 0xf0, //0x00002464 cmpq %rsi, %rax + 0x0f, 0x86, 0x7d, 0x0d, 0x00, 0x00, //0x00002467 jbe LBB0_549 + 0x48, 0x39, 0xf0, //0x0000246d cmpq %rsi, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00002470 je LBB0_443 + 0x48, 0x8d, 0x34, 0x07, //0x00002476 leaq (%rdi,%rax), %rsi + 0x48, 0x83, 0xc1, 0x04, //0x0000247a addq $4, %rcx + 0x48, 0x89, 0xfb, //0x0000247e movq %rdi, %rbx + 0x4a, 0x8d, 0x54, 0x37, 0x05, //0x00002481 leaq $5(%rdi,%r14), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002486 .p2align 4, 0x90 + //0x00002490 LBB0_439 + 0x0f, 0xbe, 0x7a, 0xff, //0x00002490 movsbl $-1(%rdx), %edi + 0x83, 0xff, 0x20, //0x00002494 cmpl $32, %edi + 0x0f, 0x87, 0x53, 0x00, 0x00, 0x00, //0x00002497 ja LBB0_444 + 0x49, 0x0f, 0xa3, 0xfa, //0x0000249d btq %rdi, %r10 + 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x000024a1 jae LBB0_444 + 0x48, 0xff, 0xc2, //0x000024a7 incq %rdx + 0x48, 0xff, 0xc1, //0x000024aa incq %rcx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000024ad jne LBB0_439 + 0x48, 0x89, 0xdf, //0x000024b3 movq %rbx, %rdi + 0x48, 0x29, 0xfe, //0x000024b6 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x000024b9 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x000024bc cmpq %rax, %rdx + 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x000024bf jb LBB0_445 + 0xe9, 0x78, 0x0d, 0x00, 0x00, //0x000024c5 jmp LBB0_556 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024ca .p2align 4, 0x90 + //0x000024d0 LBB0_443 + 0x48, 0x01, 0xfe, //0x000024d0 addq %rdi, %rsi + 0x48, 0x29, 0xfe, //0x000024d3 subq %rdi, %rsi + 0x48, 0x89, 0xf2, //0x000024d6 movq %rsi, %rdx + 0x48, 0x39, 0xc2, //0x000024d9 cmpq %rax, %rdx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000024dc jb LBB0_445 + 0xe9, 0x5b, 0x0d, 0x00, 0x00, //0x000024e2 jmp LBB0_556 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024e7 .p2align 4, 0x90 + //0x000024f0 LBB0_444 + 0x48, 0x89, 0xdf, //0x000024f0 movq %rbx, %rdi + 0x48, 0x89, 0xd9, //0x000024f3 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x000024f6 notq %rcx + 0x48, 0x01, 0xca, //0x000024f9 addq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x000024fc cmpq %rax, %rdx + 0x0f, 0x83, 0x3d, 0x0d, 0x00, 0x00, //0x000024ff jae LBB0_556 + //0x00002505 LBB0_445 + 0x4c, 0x8d, 0x72, 0x01, //0x00002505 leaq $1(%rdx), %r14 + 0x4d, 0x89, 0x33, //0x00002509 movq %r14, (%r11) + 0x8a, 0x04, 0x17, //0x0000250c movb (%rdi,%rdx), %al + 0x3c, 0x2c, //0x0000250f cmpb $44, %al + 0x0f, 0x85, 0xde, 0x0c, 0x00, 0x00, //0x00002511 jne LBB0_550 + 0x49, 0x83, 0xfc, 0x02, //0x00002517 cmpq $2, %r12 + 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000251b leaq $-1(%r12), %r12 + 0x0f, 0x8d, 0xea, 0xfb, 0xff, 0xff, //0x00002520 jge LBB0_375 + 0xe9, 0xf5, 0x0a, 0x00, 0x00, //0x00002526 jmp LBB0_447 + //0x0000252b LBB0_450 + 0x48, 0x83, 0xc1, 0x04, //0x0000252b addq $4, %rcx + 0x49, 0x3b, 0x08, //0x0000252f cmpq (%r8), %rcx + 0x0f, 0x87, 0x58, 0xfe, 0xff, 0xff, //0x00002532 ja LBB0_419 + 0xe9, 0x2f, 0x01, 0x00, 0x00, //0x00002538 jmp LBB0_462 + //0x0000253d LBB0_451 + 0x4c, 0x89, 0x4d, 0xa0, //0x0000253d movq %r9, $-96(%rbp) + 0x4d, 0x8b, 0x00, //0x00002541 movq (%r8), %r8 + 0x4c, 0x89, 0xc0, //0x00002544 movq %r8, %rax + 0x4c, 0x29, 0xf0, //0x00002547 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x20, //0x0000254a cmpq $32, %rax + 0x0f, 0x8c, 0x46, 0x0a, 0x00, 0x00, //0x0000254e jl LBB0_521 + 0x4c, 0x8d, 0x0c, 0x0f, //0x00002554 leaq (%rdi,%rcx), %r9 + 0x49, 0x29, 0xc8, //0x00002558 subq %rcx, %r8 + 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x0000255b movl $31, %ecx + 0x31, 0xc0, //0x00002560 xorl %eax, %eax + 0x45, 0x31, 0xd2, //0x00002562 xorl %r10d, %r10d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x00002565 jmp LBB0_453 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000256a .p2align 4, 0x90 + //0x00002570 LBB0_456 + 0x45, 0x31, 0xd2, //0x00002570 xorl %r10d, %r10d + 0x85, 0xdb, //0x00002573 testl %ebx, %ebx + 0x0f, 0x85, 0xb6, 0x00, 0x00, 0x00, //0x00002575 jne LBB0_455 + //0x0000257b LBB0_457 + 0x48, 0x83, 0xc0, 0x20, //0x0000257b addq $32, %rax + 0x49, 0x8d, 0x54, 0x08, 0xe0, //0x0000257f leaq $-32(%r8,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xe0, //0x00002584 addq $-32, %rcx + 0x48, 0x83, 0xfa, 0x3f, //0x00002588 cmpq $63, %rdx + 0x0f, 0x8e, 0x7f, 0x09, 0x00, 0x00, //0x0000258c jle LBB0_458 + //0x00002592 LBB0_453 + 0xf3, 0x41, 0x0f, 0x6f, 0x54, 0x01, 0x01, //0x00002592 movdqu $1(%r9,%rax), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x5c, 0x01, 0x11, //0x00002599 movdqu $17(%r9,%rax), %xmm3 + 0x66, 0x0f, 0x6f, 0xea, //0x000025a0 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000025a4 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x000025a8 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xeb, //0x000025ac movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000025b0 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000025b4 pmovmskb %xmm5, %ebx + 0x48, 0xc1, 0xe3, 0x10, //0x000025b8 shlq $16, %rbx + 0x48, 0x09, 0xd3, //0x000025bc orq %rdx, %rbx + 0x66, 0x0f, 0x74, 0xd1, //0x000025bf pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xf2, //0x000025c3 pmovmskb %xmm2, %esi + 0x66, 0x0f, 0x74, 0xd9, //0x000025c7 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000025cb pmovmskb %xmm3, %edx + 0x48, 0xc1, 0xe2, 0x10, //0x000025cf shlq $16, %rdx + 0x48, 0x09, 0xf2, //0x000025d3 orq %rsi, %rdx + 0x48, 0x89, 0xd6, //0x000025d6 movq %rdx, %rsi + 0x4c, 0x09, 0xd6, //0x000025d9 orq %r10, %rsi + 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x000025dc je LBB0_456 + 0x44, 0x89, 0xd6, //0x000025e2 movl %r10d, %esi + 0x41, 0xbd, 0xff, 0xff, 0xff, 0xff, //0x000025e5 movl $4294967295, %r13d + 0x44, 0x31, 0xee, //0x000025eb xorl %r13d, %esi + 0x21, 0xf2, //0x000025ee andl %esi, %edx + 0x8d, 0x34, 0x12, //0x000025f0 leal (%rdx,%rdx), %esi + 0x44, 0x09, 0xd6, //0x000025f3 orl %r10d, %esi + 0x49, 0x89, 0xff, //0x000025f6 movq %rdi, %r15 + 0x41, 0x8d, 0xbd, 0xab, 0xaa, 0xaa, 0xaa, //0x000025f9 leal $-1431655765(%r13), %edi + 0x31, 0xf7, //0x00002600 xorl %esi, %edi + 0x21, 0xd7, //0x00002602 andl %edx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002604 andl $-1431655766, %edi + 0x45, 0x31, 0xd2, //0x0000260a xorl %r10d, %r10d + 0x01, 0xd7, //0x0000260d addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc2, //0x0000260f setb %r10b + 0x01, 0xff, //0x00002613 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002615 xorl $1431655765, %edi + 0x21, 0xf7, //0x0000261b andl %esi, %edi + 0x44, 0x31, 0xef, //0x0000261d xorl %r13d, %edi + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002620 movq $-64(%rbp), %r13 + 0x21, 0xfb, //0x00002624 andl %edi, %ebx + 0x4c, 0x89, 0xff, //0x00002626 movq %r15, %rdi + 0x85, 0xdb, //0x00002629 testl %ebx, %ebx + 0x0f, 0x84, 0x4a, 0xff, 0xff, 0xff, //0x0000262b je LBB0_457 + //0x00002631 LBB0_455 + 0x48, 0x0f, 0xbc, 0xcb, //0x00002631 bsfq %rbx, %rcx + 0x49, 0x01, 0xc9, //0x00002635 addq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00002638 addq %rax, %r9 + 0x49, 0x29, 0xf9, //0x0000263b subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0x02, //0x0000263e addq $2, %r9 + 0x4d, 0x89, 0x0b, //0x00002642 movq %r9, (%r11) + 0x4d, 0x89, 0xce, //0x00002645 movq %r9, %r14 + 0x4c, 0x8b, 0x45, 0xb0, //0x00002648 movq $-80(%rbp), %r8 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000264c movabsq $4294977024, %r10 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00002656 movq $-96(%rbp), %r9 + 0xe9, 0x31, 0xfd, 0xff, 0xff, //0x0000265a jmp LBB0_419 + //0x0000265f LBB0_461 + 0x48, 0x83, 0xc1, 0x05, //0x0000265f addq $5, %rcx + 0x49, 0x3b, 0x08, //0x00002663 cmpq (%r8), %rcx + 0x0f, 0x87, 0x24, 0xfd, 0xff, 0xff, //0x00002666 ja LBB0_419 + //0x0000266c LBB0_462 + 0x49, 0x89, 0x0b, //0x0000266c movq %rcx, (%r11) + 0x49, 0x89, 0xce, //0x0000266f movq %rcx, %r14 + 0xe9, 0x19, 0xfd, 0xff, 0xff, //0x00002672 jmp LBB0_419 + //0x00002677 LBB0_463 + 0x4c, 0x89, 0x4d, 0xa0, //0x00002677 movq %r9, $-96(%rbp) + 0x49, 0x8b, 0x08, //0x0000267b movq (%r8), %rcx + 0x4c, 0x29, 0xf1, //0x0000267e subq %r14, %rcx + 0x4c, 0x01, 0xf7, //0x00002681 addq %r14, %rdi + 0x45, 0x31, 0xc9, //0x00002684 xorl %r9d, %r9d + 0x45, 0x31, 0xc0, //0x00002687 xorl %r8d, %r8d + 0x45, 0x31, 0xdb, //0x0000268a xorl %r11d, %r11d + 0x45, 0x31, 0xed, //0x0000268d xorl %r13d, %r13d + 0x48, 0x83, 0xf9, 0x40, //0x00002690 cmpq $64, %rcx + 0x0f, 0x8d, 0x63, 0x01, 0x00, 0x00, //0x00002694 jge LBB0_464 + //0x0000269a LBB0_474 + 0x48, 0x8b, 0x45, 0xa0, //0x0000269a movq $-96(%rbp), %rax + 0x48, 0x85, 0xc9, //0x0000269e testq %rcx, %rcx + 0x0f, 0x8e, 0xfc, 0x08, 0x00, 0x00, //0x000026a1 jle LBB0_522 + 0x49, 0x89, 0xcf, //0x000026a7 movq %rcx, %r15 + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000026aa movdqu %xmm8, $-144(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x000026b3 movdqu %xmm8, $-160(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x000026bc movdqu %xmm8, $-176(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x40, 0xff, 0xff, 0xff, //0x000026c5 movdqu %xmm8, $-192(%rbp) + 0x89, 0xf8, //0x000026ce movl %edi, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x000026d0 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x000026d5 cmpl $4033, %eax + 0x0f, 0x82, 0x20, 0x01, 0x00, 0x00, //0x000026da jb LBB0_465 + 0x48, 0x89, 0xf8, //0x000026e0 movq %rdi, %rax + 0x49, 0x83, 0xff, 0x20, //0x000026e3 cmpq $32, %r15 + 0x0f, 0x82, 0x2b, 0x00, 0x00, 0x00, //0x000026e7 jb LBB0_478 + 0x0f, 0x10, 0x10, //0x000026ed movups (%rax), %xmm2 + 0x0f, 0x11, 0x95, 0x40, 0xff, 0xff, 0xff, //0x000026f0 movups %xmm2, $-192(%rbp) + 0xf3, 0x0f, 0x6f, 0x50, 0x10, //0x000026f7 movdqu $16(%rax), %xmm2 + 0xf3, 0x0f, 0x7f, 0x95, 0x50, 0xff, 0xff, 0xff, //0x000026fc movdqu %xmm2, $-176(%rbp) + 0x48, 0x83, 0xc0, 0x20, //0x00002704 addq $32, %rax + 0x49, 0x8d, 0x7f, 0xe0, //0x00002708 leaq $-32(%r15), %rdi + 0x48, 0x8d, 0xb5, 0x60, 0xff, 0xff, 0xff, //0x0000270c leaq $-160(%rbp), %rsi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002713 jmp LBB0_479 + //0x00002718 LBB0_478 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00002718 leaq $-192(%rbp), %rsi + 0x4c, 0x89, 0xff, //0x0000271f movq %r15, %rdi + //0x00002722 LBB0_479 + 0x48, 0x83, 0xff, 0x10, //0x00002722 cmpq $16, %rdi + 0x0f, 0x82, 0x60, 0x00, 0x00, 0x00, //0x00002726 jb LBB0_480 + 0xf3, 0x0f, 0x6f, 0x10, //0x0000272c movdqu (%rax), %xmm2 + 0xf3, 0x0f, 0x7f, 0x16, //0x00002730 movdqu %xmm2, (%rsi) + 0x48, 0x83, 0xc0, 0x10, //0x00002734 addq $16, %rax + 0x48, 0x83, 0xc6, 0x10, //0x00002738 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x0000273c addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00002740 cmpq $8, %rdi + 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00002744 jae LBB0_485 + //0x0000274a LBB0_481 + 0x48, 0x83, 0xff, 0x04, //0x0000274a cmpq $4, %rdi + 0x0f, 0x8c, 0x64, 0x00, 0x00, 0x00, //0x0000274e jl LBB0_482 + //0x00002754 LBB0_486 + 0x48, 0x89, 0xc2, //0x00002754 movq %rax, %rdx + 0x8b, 0x00, //0x00002757 movl (%rax), %eax + 0x89, 0x06, //0x00002759 movl %eax, (%rsi) + 0x48, 0x83, 0xc2, 0x04, //0x0000275b addq $4, %rdx + 0x48, 0x89, 0xd0, //0x0000275f movq %rdx, %rax + 0x48, 0x83, 0xc6, 0x04, //0x00002762 addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00002766 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x0000276a cmpq $2, %rdi + 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x0000276e jae LBB0_487 + //0x00002774 LBB0_483 + 0x48, 0x8d, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00002774 leaq $-192(%rbp), %rdx + 0x48, 0x85, 0xff, //0x0000277b testq %rdi, %rdi + 0x48, 0x89, 0xd7, //0x0000277e movq %rdx, %rdi + 0x0f, 0x85, 0x66, 0x00, 0x00, 0x00, //0x00002781 jne LBB0_488 + 0xe9, 0x74, 0x00, 0x00, 0x00, //0x00002787 jmp LBB0_465 + //0x0000278c LBB0_480 + 0x48, 0x83, 0xff, 0x08, //0x0000278c cmpq $8, %rdi + 0x0f, 0x82, 0xb4, 0xff, 0xff, 0xff, //0x00002790 jb LBB0_481 + //0x00002796 LBB0_485 + 0x48, 0x89, 0xc2, //0x00002796 movq %rax, %rdx + 0x48, 0x8b, 0x00, //0x00002799 movq (%rax), %rax + 0x48, 0x89, 0x06, //0x0000279c movq %rax, (%rsi) + 0x48, 0x83, 0xc2, 0x08, //0x0000279f addq $8, %rdx + 0x48, 0x89, 0xd0, //0x000027a3 movq %rdx, %rax + 0x48, 0x83, 0xc6, 0x08, //0x000027a6 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x000027aa addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x000027ae cmpq $4, %rdi + 0x0f, 0x8d, 0x9c, 0xff, 0xff, 0xff, //0x000027b2 jge LBB0_486 + //0x000027b8 LBB0_482 + 0x48, 0x83, 0xff, 0x02, //0x000027b8 cmpq $2, %rdi + 0x0f, 0x82, 0xb2, 0xff, 0xff, 0xff, //0x000027bc jb LBB0_483 + //0x000027c2 LBB0_487 + 0x48, 0x89, 0xc2, //0x000027c2 movq %rax, %rdx + 0x0f, 0xb7, 0x00, //0x000027c5 movzwl (%rax), %eax + 0x66, 0x89, 0x06, //0x000027c8 movw %ax, (%rsi) + 0x48, 0x83, 0xc2, 0x02, //0x000027cb addq $2, %rdx + 0x48, 0x83, 0xc6, 0x02, //0x000027cf addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x000027d3 addq $-2, %rdi + 0x48, 0x89, 0xd0, //0x000027d7 movq %rdx, %rax + 0x48, 0x8d, 0x95, 0x40, 0xff, 0xff, 0xff, //0x000027da leaq $-192(%rbp), %rdx + 0x48, 0x85, 0xff, //0x000027e1 testq %rdi, %rdi + 0x48, 0x89, 0xd7, //0x000027e4 movq %rdx, %rdi + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000027e7 je LBB0_465 + //0x000027ed LBB0_488 + 0x8a, 0x00, //0x000027ed movb (%rax), %al + 0x88, 0x06, //0x000027ef movb %al, (%rsi) + 0x48, 0x8d, 0xbd, 0x40, 0xff, 0xff, 0xff, //0x000027f1 leaq $-192(%rbp), %rdi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000027f8 jmp LBB0_465 + //0x000027fd LBB0_464 + 0x49, 0x89, 0xcf, //0x000027fd movq %rcx, %r15 + //0x00002800 LBB0_465 + 0xf3, 0x0f, 0x6f, 0x17, //0x00002800 movdqu (%rdi), %xmm2 + 0xf3, 0x0f, 0x6f, 0x6f, 0x10, //0x00002804 movdqu $16(%rdi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x7f, 0x20, //0x00002809 movdqu $32(%rdi), %xmm7 + 0x48, 0x89, 0x7d, 0xc8, //0x0000280e movq %rdi, $-56(%rbp) + 0xf3, 0x0f, 0x6f, 0x77, 0x30, //0x00002812 movdqu $48(%rdi), %xmm6 + 0x66, 0x0f, 0x6f, 0xda, //0x00002817 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000281b pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x0000281f pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x00002824 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002828 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x0000282c pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00002830 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002834 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00002838 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xde, //0x0000283c movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002840 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00002844 pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00002848 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x0000284c shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x00002850 shlq $16, %rax + 0x49, 0x09, 0xc6, //0x00002854 orq %rax, %r14 + 0x49, 0x09, 0xfe, //0x00002857 orq %rdi, %r14 + 0x49, 0x09, 0xde, //0x0000285a orq %rbx, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x0000285d movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002861 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00002865 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdd, //0x00002869 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x0000286d pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00002871 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00002875 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002879 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x0000287d pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x00002881 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002885 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00002889 pmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x0000288d shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00002891 shlq $32, %rbx + 0x48, 0xc1, 0xe7, 0x10, //0x00002895 shlq $16, %rdi + 0x48, 0x09, 0xf8, //0x00002899 orq %rdi, %rax + 0x48, 0x09, 0xd8, //0x0000289c orq %rbx, %rax + 0x48, 0x09, 0xc8, //0x0000289f orq %rcx, %rax + 0x48, 0x89, 0xc1, //0x000028a2 movq %rax, %rcx + 0x4c, 0x09, 0xc1, //0x000028a5 orq %r8, %rcx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x000028a8 je LBB0_467 + 0x4c, 0x89, 0xc1, //0x000028ae movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000028b1 notq %rcx + 0x48, 0x21, 0xc1, //0x000028b4 andq %rax, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x000028b7 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xc3, //0x000028bb orq %r8, %rbx + 0x48, 0x89, 0xdf, //0x000028be movq %rbx, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000028c1 movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf7, //0x000028cb xorq %rsi, %rdi + 0x48, 0x21, 0xf0, //0x000028ce andq %rsi, %rax + 0x48, 0x21, 0xf8, //0x000028d1 andq %rdi, %rax + 0x45, 0x31, 0xc0, //0x000028d4 xorl %r8d, %r8d + 0x48, 0x01, 0xc8, //0x000028d7 addq %rcx, %rax + 0x41, 0x0f, 0x92, 0xc0, //0x000028da setb %r8b + 0x48, 0x01, 0xc0, //0x000028de addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000028e1 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x000028eb xorq %rcx, %rax + 0x48, 0x21, 0xd8, //0x000028ee andq %rbx, %rax + 0x48, 0xf7, 0xd0, //0x000028f1 notq %rax + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000028f4 jmp LBB0_468 + //0x000028f9 LBB0_467 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000028f9 movq $-1, %rax + 0x45, 0x31, 0xc0, //0x00002900 xorl %r8d, %r8d + //0x00002903 LBB0_468 + 0x4c, 0x21, 0xf0, //0x00002903 andq %r14, %rax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00002906 movq %rax, %xmm3 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd9, 0x00, //0x0000290b pclmulqdq $0, %xmm9, %xmm3 + 0x66, 0x49, 0x0f, 0x7e, 0xde, //0x00002912 movq %xmm3, %r14 + 0x4d, 0x31, 0xce, //0x00002917 xorq %r9, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x0000291a movdqa %xmm2, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x0000291e pcmpeqb %xmm12, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x00002923 pmovmskb %xmm3, %r10d + 0x66, 0x0f, 0x6f, 0xdd, //0x00002928 movdqa %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x0000292c pcmpeqb %xmm12, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00002931 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00002935 movdqa %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x00002939 pcmpeqb %xmm12, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000293e pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xde, //0x00002942 movdqa %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xdc, //0x00002946 pcmpeqb %xmm12, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x0000294b pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x0000294f shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00002953 shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00002957 shlq $16, %rax + 0x49, 0x09, 0xc2, //0x0000295b orq %rax, %r10 + 0x49, 0x09, 0xca, //0x0000295e orq %rcx, %r10 + 0x49, 0x09, 0xda, //0x00002961 orq %rbx, %r10 + 0x4d, 0x89, 0xf1, //0x00002964 movq %r14, %r9 + 0x49, 0xf7, 0xd1, //0x00002967 notq %r9 + 0x4d, 0x21, 0xca, //0x0000296a andq %r9, %r10 + 0x66, 0x0f, 0x74, 0xd4, //0x0000296d pcmpeqb %xmm4, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00002971 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x74, 0xec, //0x00002975 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00002979 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x0000297d pcmpeqb %xmm4, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00002981 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x74, 0xf4, //0x00002985 pcmpeqb %xmm4, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x00002989 pmovmskb %xmm6, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x0000298d shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x00002991 shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00002995 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x00002999 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x0000299c orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x0000299f orq %rcx, %rax + 0x48, 0xbf, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000029a2 movabsq $3689348814741910323, %rdi + 0x4c, 0x21, 0xc8, //0x000029ac andq %r9, %rax + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x000029af je LBB0_472 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000029b5 movabsq $1085102592571150095, %r9 + 0x90, //0x000029bf .p2align 4, 0x90 + //0x000029c0 LBB0_470 + 0x48, 0x8d, 0x58, 0xff, //0x000029c0 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x000029c4 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000029c7 andq %r10, %rcx + 0x48, 0x89, 0xce, //0x000029ca movq %rcx, %rsi + 0x48, 0xd1, 0xee, //0x000029cd shrq %rsi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000029d0 movabsq $6148914691236517205, %rdx + 0x48, 0x21, 0xd6, //0x000029da andq %rdx, %rsi + 0x48, 0x29, 0xf1, //0x000029dd subq %rsi, %rcx + 0x48, 0x89, 0xce, //0x000029e0 movq %rcx, %rsi + 0x48, 0x21, 0xfe, //0x000029e3 andq %rdi, %rsi + 0x48, 0xc1, 0xe9, 0x02, //0x000029e6 shrq $2, %rcx + 0x48, 0x21, 0xf9, //0x000029ea andq %rdi, %rcx + 0x48, 0x01, 0xf1, //0x000029ed addq %rsi, %rcx + 0x48, 0x89, 0xce, //0x000029f0 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x04, //0x000029f3 shrq $4, %rsi + 0x48, 0x01, 0xce, //0x000029f7 addq %rcx, %rsi + 0x4c, 0x21, 0xce, //0x000029fa andq %r9, %rsi + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000029fd movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xf1, //0x00002a07 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x38, //0x00002a0b shrq $56, %rsi + 0x4c, 0x01, 0xde, //0x00002a0f addq %r11, %rsi + 0x4c, 0x39, 0xee, //0x00002a12 cmpq %r13, %rsi + 0x0f, 0x86, 0xb8, 0x04, 0x00, 0x00, //0x00002a15 jbe LBB0_515 + 0x49, 0xff, 0xc5, //0x00002a1b incq %r13 + 0x48, 0x21, 0xd8, //0x00002a1e andq %rbx, %rax + 0x0f, 0x85, 0x99, 0xff, 0xff, 0xff, //0x00002a21 jne LBB0_470 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002a27 jmp LBB0_473 + //0x00002a2c LBB0_472 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002a2c movabsq $1085102592571150095, %r9 + //0x00002a36 LBB0_473 + 0x49, 0xc1, 0xfe, 0x3f, //0x00002a36 sarq $63, %r14 + 0x4c, 0x89, 0xd0, //0x00002a3a movq %r10, %rax + 0x48, 0xd1, 0xe8, //0x00002a3d shrq %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002a40 movabsq $6148914691236517205, %rcx + 0x48, 0x21, 0xc8, //0x00002a4a andq %rcx, %rax + 0x49, 0x29, 0xc2, //0x00002a4d subq %rax, %r10 + 0x4c, 0x89, 0xd0, //0x00002a50 movq %r10, %rax + 0x48, 0x21, 0xf8, //0x00002a53 andq %rdi, %rax + 0x49, 0xc1, 0xea, 0x02, //0x00002a56 shrq $2, %r10 + 0x49, 0x21, 0xfa, //0x00002a5a andq %rdi, %r10 + 0x49, 0x01, 0xc2, //0x00002a5d addq %rax, %r10 + 0x4c, 0x89, 0xd0, //0x00002a60 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x00002a63 shrq $4, %rax + 0x4c, 0x01, 0xd0, //0x00002a67 addq %r10, %rax + 0x4c, 0x21, 0xc8, //0x00002a6a andq %r9, %rax + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00002a6d movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xc1, //0x00002a77 imulq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x00002a7b shrq $56, %rax + 0x49, 0x01, 0xc3, //0x00002a7f addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc8, //0x00002a82 movq $-56(%rbp), %rdi + 0x48, 0x83, 0xc7, 0x40, //0x00002a86 addq $64, %rdi + 0x4c, 0x89, 0xf9, //0x00002a8a movq %r15, %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00002a8d addq $-64, %rcx + 0x4d, 0x89, 0xf1, //0x00002a91 movq %r14, %r9 + 0x48, 0x83, 0xf9, 0x40, //0x00002a94 cmpq $64, %rcx + 0x0f, 0x8d, 0x5f, 0xfd, 0xff, 0xff, //0x00002a98 jge LBB0_464 + 0xe9, 0xf7, 0xfb, 0xff, 0xff, //0x00002a9e jmp LBB0_474 + //0x00002aa3 LBB0_489 + 0x4c, 0x89, 0x4d, 0xa0, //0x00002aa3 movq %r9, $-96(%rbp) + 0x49, 0x8b, 0x08, //0x00002aa7 movq (%r8), %rcx + 0x4c, 0x29, 0xf1, //0x00002aaa subq %r14, %rcx + 0x4c, 0x01, 0xf7, //0x00002aad addq %r14, %rdi + 0x45, 0x31, 0xc9, //0x00002ab0 xorl %r9d, %r9d + 0x45, 0x31, 0xc0, //0x00002ab3 xorl %r8d, %r8d + 0x45, 0x31, 0xdb, //0x00002ab6 xorl %r11d, %r11d + 0x45, 0x31, 0xed, //0x00002ab9 xorl %r13d, %r13d + 0x48, 0x83, 0xf9, 0x40, //0x00002abc cmpq $64, %rcx + 0x0f, 0x8d, 0x63, 0x01, 0x00, 0x00, //0x00002ac0 jge LBB0_490 + //0x00002ac6 LBB0_500 + 0x48, 0x8b, 0x45, 0xa0, //0x00002ac6 movq $-96(%rbp), %rax + 0x48, 0x85, 0xc9, //0x00002aca testq %rcx, %rcx + 0x0f, 0x8e, 0xd0, 0x04, 0x00, 0x00, //0x00002acd jle LBB0_522 + 0x49, 0x89, 0xcf, //0x00002ad3 movq %rcx, %r15 + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00002ad6 movdqu %xmm8, $-144(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00002adf movdqu %xmm8, $-160(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x00002ae8 movdqu %xmm8, $-176(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00002af1 movdqu %xmm8, $-192(%rbp) + 0x89, 0xf8, //0x00002afa movl %edi, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00002afc andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00002b01 cmpl $4033, %eax + 0x0f, 0x82, 0x20, 0x01, 0x00, 0x00, //0x00002b06 jb LBB0_491 + 0x48, 0x89, 0xf8, //0x00002b0c movq %rdi, %rax + 0x49, 0x83, 0xff, 0x20, //0x00002b0f cmpq $32, %r15 + 0x0f, 0x82, 0x2b, 0x00, 0x00, 0x00, //0x00002b13 jb LBB0_504 + 0x0f, 0x10, 0x10, //0x00002b19 movups (%rax), %xmm2 + 0x0f, 0x11, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00002b1c movups %xmm2, $-192(%rbp) + 0xf3, 0x0f, 0x6f, 0x50, 0x10, //0x00002b23 movdqu $16(%rax), %xmm2 + 0xf3, 0x0f, 0x7f, 0x95, 0x50, 0xff, 0xff, 0xff, //0x00002b28 movdqu %xmm2, $-176(%rbp) + 0x48, 0x83, 0xc0, 0x20, //0x00002b30 addq $32, %rax + 0x49, 0x8d, 0x7f, 0xe0, //0x00002b34 leaq $-32(%r15), %rdi + 0x48, 0x8d, 0xb5, 0x60, 0xff, 0xff, 0xff, //0x00002b38 leaq $-160(%rbp), %rsi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002b3f jmp LBB0_505 + //0x00002b44 LBB0_504 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00002b44 leaq $-192(%rbp), %rsi + 0x4c, 0x89, 0xff, //0x00002b4b movq %r15, %rdi + //0x00002b4e LBB0_505 + 0x48, 0x83, 0xff, 0x10, //0x00002b4e cmpq $16, %rdi + 0x0f, 0x82, 0x60, 0x00, 0x00, 0x00, //0x00002b52 jb LBB0_506 + 0xf3, 0x0f, 0x6f, 0x10, //0x00002b58 movdqu (%rax), %xmm2 + 0xf3, 0x0f, 0x7f, 0x16, //0x00002b5c movdqu %xmm2, (%rsi) + 0x48, 0x83, 0xc0, 0x10, //0x00002b60 addq $16, %rax + 0x48, 0x83, 0xc6, 0x10, //0x00002b64 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x00002b68 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00002b6c cmpq $8, %rdi + 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00002b70 jae LBB0_511 + //0x00002b76 LBB0_507 + 0x48, 0x83, 0xff, 0x04, //0x00002b76 cmpq $4, %rdi + 0x0f, 0x8c, 0x64, 0x00, 0x00, 0x00, //0x00002b7a jl LBB0_508 + //0x00002b80 LBB0_512 + 0x48, 0x89, 0xc2, //0x00002b80 movq %rax, %rdx + 0x8b, 0x00, //0x00002b83 movl (%rax), %eax + 0x89, 0x06, //0x00002b85 movl %eax, (%rsi) + 0x48, 0x83, 0xc2, 0x04, //0x00002b87 addq $4, %rdx + 0x48, 0x89, 0xd0, //0x00002b8b movq %rdx, %rax + 0x48, 0x83, 0xc6, 0x04, //0x00002b8e addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00002b92 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00002b96 cmpq $2, %rdi + 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x00002b9a jae LBB0_513 + //0x00002ba0 LBB0_509 + 0x48, 0x8d, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00002ba0 leaq $-192(%rbp), %rdx + 0x48, 0x85, 0xff, //0x00002ba7 testq %rdi, %rdi + 0x48, 0x89, 0xd7, //0x00002baa movq %rdx, %rdi + 0x0f, 0x85, 0x66, 0x00, 0x00, 0x00, //0x00002bad jne LBB0_514 + 0xe9, 0x74, 0x00, 0x00, 0x00, //0x00002bb3 jmp LBB0_491 + //0x00002bb8 LBB0_506 + 0x48, 0x83, 0xff, 0x08, //0x00002bb8 cmpq $8, %rdi + 0x0f, 0x82, 0xb4, 0xff, 0xff, 0xff, //0x00002bbc jb LBB0_507 + //0x00002bc2 LBB0_511 + 0x48, 0x89, 0xc2, //0x00002bc2 movq %rax, %rdx + 0x48, 0x8b, 0x00, //0x00002bc5 movq (%rax), %rax + 0x48, 0x89, 0x06, //0x00002bc8 movq %rax, (%rsi) + 0x48, 0x83, 0xc2, 0x08, //0x00002bcb addq $8, %rdx + 0x48, 0x89, 0xd0, //0x00002bcf movq %rdx, %rax + 0x48, 0x83, 0xc6, 0x08, //0x00002bd2 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x00002bd6 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00002bda cmpq $4, %rdi + 0x0f, 0x8d, 0x9c, 0xff, 0xff, 0xff, //0x00002bde jge LBB0_512 + //0x00002be4 LBB0_508 + 0x48, 0x83, 0xff, 0x02, //0x00002be4 cmpq $2, %rdi + 0x0f, 0x82, 0xb2, 0xff, 0xff, 0xff, //0x00002be8 jb LBB0_509 + //0x00002bee LBB0_513 + 0x48, 0x89, 0xc2, //0x00002bee movq %rax, %rdx + 0x0f, 0xb7, 0x00, //0x00002bf1 movzwl (%rax), %eax + 0x66, 0x89, 0x06, //0x00002bf4 movw %ax, (%rsi) + 0x48, 0x83, 0xc2, 0x02, //0x00002bf7 addq $2, %rdx + 0x48, 0x83, 0xc6, 0x02, //0x00002bfb addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00002bff addq $-2, %rdi + 0x48, 0x89, 0xd0, //0x00002c03 movq %rdx, %rax + 0x48, 0x8d, 0x95, 0x40, 0xff, 0xff, 0xff, //0x00002c06 leaq $-192(%rbp), %rdx + 0x48, 0x85, 0xff, //0x00002c0d testq %rdi, %rdi + 0x48, 0x89, 0xd7, //0x00002c10 movq %rdx, %rdi + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x00002c13 je LBB0_491 + //0x00002c19 LBB0_514 + 0x8a, 0x00, //0x00002c19 movb (%rax), %al + 0x88, 0x06, //0x00002c1b movb %al, (%rsi) + 0x48, 0x8d, 0xbd, 0x40, 0xff, 0xff, 0xff, //0x00002c1d leaq $-192(%rbp), %rdi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002c24 jmp LBB0_491 + //0x00002c29 LBB0_490 + 0x49, 0x89, 0xcf, //0x00002c29 movq %rcx, %r15 + //0x00002c2c LBB0_491 + 0xf3, 0x0f, 0x6f, 0x17, //0x00002c2c movdqu (%rdi), %xmm2 + 0xf3, 0x0f, 0x6f, 0x6f, 0x10, //0x00002c30 movdqu $16(%rdi), %xmm5 + 0xf3, 0x0f, 0x6f, 0x7f, 0x20, //0x00002c35 movdqu $32(%rdi), %xmm7 + 0x48, 0x89, 0x7d, 0xc8, //0x00002c3a movq %rdi, $-56(%rbp) + 0xf3, 0x0f, 0x6f, 0x77, 0x30, //0x00002c3e movdqu $48(%rdi), %xmm6 + 0x66, 0x0f, 0x6f, 0xda, //0x00002c43 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002c47 pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00002c4b pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x00002c50 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002c54 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00002c58 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00002c5c movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002c60 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00002c64 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xde, //0x00002c68 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00002c6c pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00002c70 pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00002c74 shlq $48, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x00002c78 shlq $32, %rdi + 0x48, 0xc1, 0xe0, 0x10, //0x00002c7c shlq $16, %rax + 0x49, 0x09, 0xc6, //0x00002c80 orq %rax, %r14 + 0x49, 0x09, 0xfe, //0x00002c83 orq %rdi, %r14 + 0x49, 0x09, 0xde, //0x00002c86 orq %rbx, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x00002c89 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002c8d pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00002c91 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdd, //0x00002c95 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002c99 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00002c9d pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00002ca1 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002ca5 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00002ca9 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x00002cad movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00002cb1 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00002cb5 pmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00002cb9 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00002cbd shlq $32, %rbx + 0x48, 0xc1, 0xe7, 0x10, //0x00002cc1 shlq $16, %rdi + 0x48, 0x09, 0xf8, //0x00002cc5 orq %rdi, %rax + 0x48, 0x09, 0xd8, //0x00002cc8 orq %rbx, %rax + 0x48, 0x09, 0xc8, //0x00002ccb orq %rcx, %rax + 0x48, 0x89, 0xc1, //0x00002cce movq %rax, %rcx + 0x4c, 0x09, 0xc1, //0x00002cd1 orq %r8, %rcx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00002cd4 je LBB0_493 + 0x4c, 0x89, 0xc1, //0x00002cda movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00002cdd notq %rcx + 0x48, 0x21, 0xc1, //0x00002ce0 andq %rax, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x00002ce3 leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xc3, //0x00002ce7 orq %r8, %rbx + 0x48, 0x89, 0xdf, //0x00002cea movq %rbx, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002ced movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf7, //0x00002cf7 xorq %rsi, %rdi + 0x48, 0x21, 0xf0, //0x00002cfa andq %rsi, %rax + 0x48, 0x21, 0xf8, //0x00002cfd andq %rdi, %rax + 0x45, 0x31, 0xc0, //0x00002d00 xorl %r8d, %r8d + 0x48, 0x01, 0xc8, //0x00002d03 addq %rcx, %rax + 0x41, 0x0f, 0x92, 0xc0, //0x00002d06 setb %r8b + 0x48, 0x01, 0xc0, //0x00002d0a addq %rax, %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002d0d movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xc8, //0x00002d17 xorq %rcx, %rax + 0x48, 0x21, 0xd8, //0x00002d1a andq %rbx, %rax + 0x48, 0xf7, 0xd0, //0x00002d1d notq %rax + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002d20 jmp LBB0_494 + //0x00002d25 LBB0_493 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002d25 movq $-1, %rax + 0x45, 0x31, 0xc0, //0x00002d2c xorl %r8d, %r8d + //0x00002d2f LBB0_494 + 0x4c, 0x21, 0xf0, //0x00002d2f andq %r14, %rax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00002d32 movq %rax, %xmm3 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd9, 0x00, //0x00002d37 pclmulqdq $0, %xmm9, %xmm3 + 0x66, 0x49, 0x0f, 0x7e, 0xde, //0x00002d3e movq %xmm3, %r14 + 0x4d, 0x31, 0xce, //0x00002d43 xorq %r9, %r14 + 0x66, 0x0f, 0x6f, 0xda, //0x00002d46 movdqa %xmm2, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00002d4a pcmpeqb %xmm10, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x00002d4f pmovmskb %xmm3, %r10d + 0x66, 0x0f, 0x6f, 0xdd, //0x00002d54 movdqa %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00002d58 pcmpeqb %xmm10, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00002d5d pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xdf, //0x00002d61 movdqa %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00002d65 pcmpeqb %xmm10, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00002d6a pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xde, //0x00002d6e movdqa %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xda, //0x00002d72 pcmpeqb %xmm10, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00002d77 pmovmskb %xmm3, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00002d7b shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00002d7f shlq $32, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00002d83 shlq $16, %rax + 0x49, 0x09, 0xc2, //0x00002d87 orq %rax, %r10 + 0x49, 0x09, 0xca, //0x00002d8a orq %rcx, %r10 + 0x49, 0x09, 0xda, //0x00002d8d orq %rbx, %r10 + 0x4d, 0x89, 0xf1, //0x00002d90 movq %r14, %r9 + 0x49, 0xf7, 0xd1, //0x00002d93 notq %r9 + 0x4d, 0x21, 0xca, //0x00002d96 andq %r9, %r10 + 0x66, 0x41, 0x0f, 0x74, 0xd3, //0x00002d99 pcmpeqb %xmm11, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00002d9e pmovmskb %xmm2, %eax + 0x66, 0x41, 0x0f, 0x74, 0xeb, //0x00002da2 pcmpeqb %xmm11, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00002da7 pmovmskb %xmm5, %ebx + 0x66, 0x41, 0x0f, 0x74, 0xfb, //0x00002dab pcmpeqb %xmm11, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00002db0 pmovmskb %xmm7, %esi + 0x66, 0x41, 0x0f, 0x74, 0xf3, //0x00002db4 pcmpeqb %xmm11, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x00002db9 pmovmskb %xmm6, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00002dbd shlq $48, %rcx + 0x48, 0xc1, 0xe6, 0x20, //0x00002dc1 shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00002dc5 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x00002dc9 orq %rbx, %rax + 0x48, 0x09, 0xf0, //0x00002dcc orq %rsi, %rax + 0x48, 0x09, 0xc8, //0x00002dcf orq %rcx, %rax + 0x48, 0xbf, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00002dd2 movabsq $3689348814741910323, %rdi + 0x4c, 0x21, 0xc8, //0x00002ddc andq %r9, %rax + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00002ddf je LBB0_498 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002de5 movabsq $1085102592571150095, %r9 + 0x90, //0x00002def .p2align 4, 0x90 + //0x00002df0 LBB0_496 + 0x48, 0x8d, 0x58, 0xff, //0x00002df0 leaq $-1(%rax), %rbx + 0x48, 0x89, 0xd9, //0x00002df4 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00002df7 andq %r10, %rcx + 0x48, 0x89, 0xce, //0x00002dfa movq %rcx, %rsi + 0x48, 0xd1, 0xee, //0x00002dfd shrq %rsi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002e00 movabsq $6148914691236517205, %rdx + 0x48, 0x21, 0xd6, //0x00002e0a andq %rdx, %rsi + 0x48, 0x29, 0xf1, //0x00002e0d subq %rsi, %rcx + 0x48, 0x89, 0xce, //0x00002e10 movq %rcx, %rsi + 0x48, 0x21, 0xfe, //0x00002e13 andq %rdi, %rsi + 0x48, 0xc1, 0xe9, 0x02, //0x00002e16 shrq $2, %rcx + 0x48, 0x21, 0xf9, //0x00002e1a andq %rdi, %rcx + 0x48, 0x01, 0xf1, //0x00002e1d addq %rsi, %rcx + 0x48, 0x89, 0xce, //0x00002e20 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x04, //0x00002e23 shrq $4, %rsi + 0x48, 0x01, 0xce, //0x00002e27 addq %rcx, %rsi + 0x4c, 0x21, 0xce, //0x00002e2a andq %r9, %rsi + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00002e2d movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xf1, //0x00002e37 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x38, //0x00002e3b shrq $56, %rsi + 0x4c, 0x01, 0xde, //0x00002e3f addq %r11, %rsi + 0x4c, 0x39, 0xee, //0x00002e42 cmpq %r13, %rsi + 0x0f, 0x86, 0x88, 0x00, 0x00, 0x00, //0x00002e45 jbe LBB0_515 + 0x49, 0xff, 0xc5, //0x00002e4b incq %r13 + 0x48, 0x21, 0xd8, //0x00002e4e andq %rbx, %rax + 0x0f, 0x85, 0x99, 0xff, 0xff, 0xff, //0x00002e51 jne LBB0_496 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002e57 jmp LBB0_499 + //0x00002e5c LBB0_498 + 0x49, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002e5c movabsq $1085102592571150095, %r9 + //0x00002e66 LBB0_499 + 0x49, 0xc1, 0xfe, 0x3f, //0x00002e66 sarq $63, %r14 + 0x4c, 0x89, 0xd0, //0x00002e6a movq %r10, %rax + 0x48, 0xd1, 0xe8, //0x00002e6d shrq %rax + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00002e70 movabsq $6148914691236517205, %rcx + 0x48, 0x21, 0xc8, //0x00002e7a andq %rcx, %rax + 0x49, 0x29, 0xc2, //0x00002e7d subq %rax, %r10 + 0x4c, 0x89, 0xd0, //0x00002e80 movq %r10, %rax + 0x48, 0x21, 0xf8, //0x00002e83 andq %rdi, %rax + 0x49, 0xc1, 0xea, 0x02, //0x00002e86 shrq $2, %r10 + 0x49, 0x21, 0xfa, //0x00002e8a andq %rdi, %r10 + 0x49, 0x01, 0xc2, //0x00002e8d addq %rax, %r10 + 0x4c, 0x89, 0xd0, //0x00002e90 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x00002e93 shrq $4, %rax + 0x4c, 0x01, 0xd0, //0x00002e97 addq %r10, %rax + 0x4c, 0x21, 0xc8, //0x00002e9a andq %r9, %rax + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00002e9d movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xc1, //0x00002ea7 imulq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x00002eab shrq $56, %rax + 0x49, 0x01, 0xc3, //0x00002eaf addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc8, //0x00002eb2 movq $-56(%rbp), %rdi + 0x48, 0x83, 0xc7, 0x40, //0x00002eb6 addq $64, %rdi + 0x4c, 0x89, 0xf9, //0x00002eba movq %r15, %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00002ebd addq $-64, %rcx + 0x4d, 0x89, 0xf1, //0x00002ec1 movq %r14, %r9 + 0x48, 0x83, 0xf9, 0x40, //0x00002ec4 cmpq $64, %rcx + 0x0f, 0x8d, 0x5b, 0xfd, 0xff, 0xff, //0x00002ec8 jge LBB0_490 + 0xe9, 0xf3, 0xfb, 0xff, 0xff, //0x00002ece jmp LBB0_500 + //0x00002ed3 LBB0_515 + 0x4c, 0x8b, 0x45, 0xb0, //0x00002ed3 movq $-80(%rbp), %r8 + 0x49, 0x8b, 0x08, //0x00002ed7 movq (%r8), %rcx + 0x48, 0x0f, 0xbc, 0xc0, //0x00002eda bsfq %rax, %rax + 0x4c, 0x29, 0xf8, //0x00002ede subq %r15, %rax + 0x4c, 0x8d, 0x74, 0x08, 0x01, //0x00002ee1 leaq $1(%rax,%rcx), %r14 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00002ee6 movq $-48(%rbp), %r11 + 0x4d, 0x89, 0x33, //0x00002eea movq %r14, (%r11) + 0x49, 0x8b, 0x00, //0x00002eed movq (%r8), %rax + 0x49, 0x39, 0xc6, //0x00002ef0 cmpq %rax, %r14 + 0x4c, 0x0f, 0x47, 0xf0, //0x00002ef3 cmovaq %rax, %r14 + 0x4d, 0x89, 0x33, //0x00002ef7 movq %r14, (%r11) + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002efa movabsq $4294977024, %r10 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002f04 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00002f08 movq $-96(%rbp), %r9 + 0xe9, 0x7f, 0xf4, 0xff, 0xff, //0x00002f0c jmp LBB0_419 + //0x00002f11 LBB0_458 + 0x4d, 0x85, 0xd2, //0x00002f11 testq %r10, %r10 + 0x0f, 0x85, 0xad, 0x00, 0x00, 0x00, //0x00002f14 jne LBB0_523 + 0x4a, 0x8d, 0x4c, 0x08, 0x01, //0x00002f1a leaq $1(%rax,%r9), %rcx + 0x48, 0xf7, 0xd0, //0x00002f1f notq %rax + 0x4c, 0x01, 0xc0, //0x00002f22 addq %r8, %rax + //0x00002f25 LBB0_460 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002f25 movabsq $4294977024, %r10 + 0x48, 0x85, 0xc0, //0x00002f2f testq %rax, %rax + 0x4c, 0x8b, 0x45, 0xb0, //0x00002f32 movq $-80(%rbp), %r8 + 0x4c, 0x8b, 0x4d, 0xa0, //0x00002f36 movq $-96(%rbp), %r9 + 0x0f, 0x8f, 0x1d, 0x00, 0x00, 0x00, //0x00002f3a jg LBB0_517 + 0xe9, 0x4b, 0xf4, 0xff, 0xff, //0x00002f40 jmp LBB0_419 + //0x00002f45 LBB0_516 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00002f45 movq $-2, %rdx + 0xbe, 0x02, 0x00, 0x00, 0x00, //0x00002f4c movl $2, %esi + 0x48, 0x01, 0xf1, //0x00002f51 addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00002f54 addq %rdx, %rax + 0x0f, 0x8e, 0x33, 0xf4, 0xff, 0xff, //0x00002f57 jle LBB0_419 + //0x00002f5d LBB0_517 + 0x0f, 0xb6, 0x11, //0x00002f5d movzbl (%rcx), %edx + 0x80, 0xfa, 0x5c, //0x00002f60 cmpb $92, %dl + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00002f63 je LBB0_516 + 0x80, 0xfa, 0x22, //0x00002f69 cmpb $34, %dl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00002f6c je LBB0_520 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00002f72 movq $-1, %rdx + 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00002f79 movl $1, %esi + 0x48, 0x01, 0xf1, //0x00002f7e addq %rsi, %rcx + 0x48, 0x01, 0xd0, //0x00002f81 addq %rdx, %rax + 0x0f, 0x8f, 0xd3, 0xff, 0xff, 0xff, //0x00002f84 jg LBB0_517 + 0xe9, 0x01, 0xf4, 0xff, 0xff, //0x00002f8a jmp LBB0_419 + //0x00002f8f LBB0_520 + 0x48, 0x29, 0xf9, //0x00002f8f subq %rdi, %rcx + 0x48, 0xff, 0xc1, //0x00002f92 incq %rcx + 0xe9, 0xd2, 0xf6, 0xff, 0xff, //0x00002f95 jmp LBB0_462 + //0x00002f9a LBB0_521 + 0x4a, 0x8d, 0x0c, 0x37, //0x00002f9a leaq (%rdi,%r14), %rcx + 0xe9, 0x82, 0xff, 0xff, 0xff, //0x00002f9e jmp LBB0_460 + //0x00002fa3 LBB0_522 + 0x4c, 0x8b, 0x45, 0xb0, //0x00002fa3 movq $-80(%rbp), %r8 + 0x4d, 0x8b, 0x30, //0x00002fa7 movq (%r8), %r14 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00002faa movq $-48(%rbp), %r11 + 0x4d, 0x89, 0x33, //0x00002fae movq %r14, (%r11) + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002fb1 movq $-64(%rbp), %r13 + 0x49, 0x89, 0xc1, //0x00002fb5 movq %rax, %r9 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002fb8 movabsq $4294977024, %r10 + 0xe9, 0xc9, 0xf3, 0xff, 0xff, //0x00002fc2 jmp LBB0_419 + //0x00002fc7 LBB0_523 + 0x48, 0x8b, 0x55, 0xa0, //0x00002fc7 movq $-96(%rbp), %rdx + 0x49, 0x8d, 0x48, 0xff, //0x00002fcb leaq $-1(%r8), %rcx + 0x48, 0x39, 0xc1, //0x00002fcf cmpq %rax, %rcx + 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x00002fd2 jne LBB0_525 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00002fd8 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00002fdc movq $-64(%rbp), %r13 + 0x49, 0x89, 0xd1, //0x00002fe0 movq %rdx, %r9 + 0x4c, 0x8b, 0x45, 0xb0, //0x00002fe3 movq $-80(%rbp), %r8 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002fe7 movabsq $4294977024, %r10 + 0xe9, 0x9a, 0xf3, 0xff, 0xff, //0x00002ff1 jmp LBB0_419 + //0x00002ff6 LBB0_525 + 0x4a, 0x8d, 0x4c, 0x08, 0x02, //0x00002ff6 leaq $2(%rax,%r9), %rcx + 0x49, 0x29, 0xc0, //0x00002ffb subq %rax, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00002ffe addq $-2, %r8 + 0x4c, 0x89, 0xc0, //0x00003002 movq %r8, %rax + 0x4c, 0x8b, 0x5d, 0xd0, //0x00003005 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00003009 movq $-64(%rbp), %r13 + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x0000300d jmp LBB0_460 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003012 .p2align 4, 0x90 + //0x00003020 LBB0_447 + 0x49, 0x83, 0xc1, 0x10, //0x00003020 addq $16, %r9 + 0x4c, 0x89, 0xf0, //0x00003024 movq %r14, %rax + 0x4c, 0x3b, 0x8d, 0x30, 0xff, 0xff, 0xff, //0x00003027 cmpq $-208(%rbp), %r9 + 0x4c, 0x8b, 0x75, 0xa8, //0x0000302e movq $-88(%rbp), %r14 + 0x0f, 0x85, 0x57, 0xd1, 0xff, 0xff, //0x00003032 jne LBB0_2 + //0x00003038 LBB0_448 + 0x4d, 0x85, 0xf6, //0x00003038 testq %r14, %r14 + 0x0f, 0x84, 0x93, 0x00, 0x00, 0x00, //0x0000303b je LBB0_526 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003041 movl $1, %edx + 0x66, 0x48, 0x0f, 0x6e, 0xc2, //0x00003046 movq %rdx, %xmm0 + 0xf3, 0x41, 0x0f, 0x7f, 0x06, //0x0000304b movdqu %xmm0, (%r14) + 0x4d, 0x8b, 0x7d, 0x00, //0x00003050 movq (%r13), %r15 + 0x4c, 0x89, 0xf8, //0x00003054 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00003057 notq %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000305a movq %rax, $-80(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000305e movl $1, %eax + 0x4c, 0x29, 0xf8, //0x00003063 subq %r15, %rax + 0x48, 0x89, 0x45, 0xa0, //0x00003066 movq %rax, $-96(%rbp) + 0x4d, 0x8b, 0x13, //0x0000306a movq (%r11), %r10 + 0x49, 0x8d, 0x47, 0x05, //0x0000306d leaq $5(%r15), %rax + 0x48, 0x89, 0x45, 0x90, //0x00003071 movq %rax, $-112(%rbp) + 0x48, 0xc7, 0x45, 0x98, 0xff, 0xff, 0xff, 0xff, //0x00003075 movq $-1, $-104(%rbp) + 0xf3, 0x0f, 0x6f, 0x05, 0xab, 0xcf, 0xff, 0xff, //0x0000307d movdqu $-12373(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xb3, 0xcf, 0xff, 0xff, //0x00003085 movdqu $-12365(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0xea, 0xcf, 0xff, 0xff, //0x0000308d movdqu $-12310(%rip), %xmm8 /* LCPI0_8+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x1d, 0xf2, 0xcf, 0xff, 0xff, //0x00003096 movdqu $-12302(%rip), %xmm3 /* LCPI0_9+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0xf9, 0xcf, 0xff, 0xff, //0x0000309e movdqu $-12295(%rip), %xmm9 /* LCPI0_10+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x00, 0xd0, 0xff, 0xff, //0x000030a7 movdqu $-12288(%rip), %xmm10 /* LCPI0_11+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x1d, 0x57, 0xcf, 0xff, 0xff, //0x000030b0 movdqu $-12457(%rip), %xmm11 /* LCPI0_1+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x25, 0xfe, 0xcf, 0xff, 0xff, //0x000030b9 movdqu $-12290(%rip), %xmm12 /* LCPI0_12+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x2d, 0x05, 0xd0, 0xff, 0xff, //0x000030c2 movdqu $-12283(%rip), %xmm13 /* LCPI0_13+0(%rip) */ + 0x4c, 0x89, 0x7d, 0xb8, //0x000030cb movq %r15, $-72(%rbp) + 0xe9, 0x2f, 0x03, 0x00, 0x00, //0x000030cf jmp LBB0_586 + //0x000030d4 LBB0_526 + 0x4d, 0x8b, 0x45, 0x00, //0x000030d4 movq (%r13), %r8 + 0x49, 0x8b, 0x75, 0x08, //0x000030d8 movq $8(%r13), %rsi + 0x49, 0x8b, 0x13, //0x000030dc movq (%r11), %rdx + 0x48, 0x89, 0xd1, //0x000030df movq %rdx, %rcx + 0x48, 0x29, 0xf1, //0x000030e2 subq %rsi, %rcx + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x000030e5 jae LBB0_531 + 0x41, 0x8a, 0x04, 0x10, //0x000030eb movb (%r8,%rdx), %al + 0x3c, 0x0d, //0x000030ef cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000030f1 je LBB0_531 + 0x3c, 0x20, //0x000030f7 cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000030f9 je LBB0_531 + 0x04, 0xf7, //0x000030ff addb $-9, %al + 0x3c, 0x01, //0x00003101 cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003103 jbe LBB0_531 + 0x49, 0x89, 0xd4, //0x00003109 movq %rdx, %r12 + 0xe9, 0x8a, 0x01, 0x00, 0x00, //0x0000310c jmp LBB0_562 + //0x00003111 LBB0_531 + 0x4c, 0x8d, 0x62, 0x01, //0x00003111 leaq $1(%rdx), %r12 + 0x49, 0x39, 0xf4, //0x00003115 cmpq %rsi, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00003118 jae LBB0_535 + 0x43, 0x8a, 0x04, 0x20, //0x0000311e movb (%r8,%r12), %al + 0x3c, 0x0d, //0x00003122 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00003124 je LBB0_535 + 0x3c, 0x20, //0x0000312a cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000312c je LBB0_535 + 0x04, 0xf7, //0x00003132 addb $-9, %al + 0x3c, 0x01, //0x00003134 cmpb $1, %al + 0x0f, 0x87, 0x5f, 0x01, 0x00, 0x00, //0x00003136 ja LBB0_562 + //0x0000313c LBB0_535 + 0x4c, 0x8d, 0x62, 0x02, //0x0000313c leaq $2(%rdx), %r12 + 0x49, 0x39, 0xf4, //0x00003140 cmpq %rsi, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00003143 jae LBB0_539 + 0x43, 0x8a, 0x04, 0x20, //0x00003149 movb (%r8,%r12), %al + 0x3c, 0x0d, //0x0000314d cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000314f je LBB0_539 + 0x3c, 0x20, //0x00003155 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00003157 je LBB0_539 + 0x04, 0xf7, //0x0000315d addb $-9, %al + 0x3c, 0x01, //0x0000315f cmpb $1, %al + 0x0f, 0x87, 0x34, 0x01, 0x00, 0x00, //0x00003161 ja LBB0_562 + //0x00003167 LBB0_539 + 0x4c, 0x8d, 0x62, 0x03, //0x00003167 leaq $3(%rdx), %r12 + 0x49, 0x39, 0xf4, //0x0000316b cmpq %rsi, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x0000316e jae LBB0_543 + 0x43, 0x8a, 0x04, 0x20, //0x00003174 movb (%r8,%r12), %al + 0x3c, 0x0d, //0x00003178 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000317a je LBB0_543 + 0x3c, 0x20, //0x00003180 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00003182 je LBB0_543 + 0x04, 0xf7, //0x00003188 addb $-9, %al + 0x3c, 0x01, //0x0000318a cmpb $1, %al + 0x0f, 0x87, 0x09, 0x01, 0x00, 0x00, //0x0000318c ja LBB0_562 + //0x00003192 LBB0_543 + 0x48, 0x8d, 0x7a, 0x04, //0x00003192 leaq $4(%rdx), %rdi + 0x48, 0x39, 0xfe, //0x00003196 cmpq %rdi, %rsi + 0x0f, 0x86, 0xf0, 0x18, 0x00, 0x00, //0x00003199 jbe LBB0_869 + 0x48, 0x39, 0xfe, //0x0000319f cmpq %rdi, %rsi + 0x0f, 0x84, 0xbc, 0x00, 0x00, 0x00, //0x000031a2 je LBB0_559 + 0x49, 0x8d, 0x3c, 0x30, //0x000031a8 leaq (%r8,%rsi), %rdi + 0x48, 0x83, 0xc1, 0x04, //0x000031ac addq $4, %rcx + 0x4e, 0x8d, 0x64, 0x02, 0x05, //0x000031b0 leaq $5(%rdx,%r8), %r12 + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000031b5 movabsq $4294977024, %rax + 0x90, //0x000031bf .p2align 4, 0x90 + //0x000031c0 LBB0_546 + 0x41, 0x0f, 0xbe, 0x54, 0x24, 0xff, //0x000031c0 movsbl $-1(%r12), %edx + 0x83, 0xfa, 0x20, //0x000031c6 cmpl $32, %edx + 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x000031c9 ja LBB0_561 + 0x48, 0x0f, 0xa3, 0xd0, //0x000031cf btq %rdx, %rax + 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x000031d3 jae LBB0_561 + 0x49, 0xff, 0xc4, //0x000031d9 incq %r12 + 0x48, 0xff, 0xc1, //0x000031dc incq %rcx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x000031df jne LBB0_546 + 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000031e5 jmp LBB0_560 + //0x000031ea LBB0_549 + 0x49, 0x89, 0x33, //0x000031ea movq %rsi, (%r11) + 0x49, 0x89, 0xf6, //0x000031ed movq %rsi, %r14 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000031f0 jmp LBB0_556 + //0x000031f5 LBB0_550 + 0x3c, 0x5d, //0x000031f5 cmpb $93, %al + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000031f7 je LBB0_554 + 0xe9, 0x40, 0x00, 0x00, 0x00, //0x000031fd jmp LBB0_556 + //0x00003202 LBB0_552 + 0x49, 0xff, 0xce, //0x00003202 decq %r14 + 0x4d, 0x89, 0x33, //0x00003205 movq %r14, (%r11) + 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00003208 movq $-34, %rcx + 0xe9, 0x3b, 0x00, 0x00, 0x00, //0x0000320f jmp LBB0_558 + //0x00003214 LBB0_553 + 0x80, 0xf9, 0x7d, //0x00003214 cmpb $125, %cl + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00003217 jne LBB0_556 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x0000321d jmp LBB0_554 + //0x00003222 LBB0_251 + 0x3c, 0x7d, //0x00003222 cmpb $125, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00003224 jne LBB0_556 + //0x0000322a LBB0_554 + 0x49, 0xff, 0xce, //0x0000322a decq %r14 + 0x4d, 0x89, 0x33, //0x0000322d movq %r14, (%r11) + 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x00003230 movq $-33, %rcx + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003237 jmp LBB0_558 + //0x0000323c LBB0_555 + 0x49, 0x89, 0x3b, //0x0000323c movq %rdi, (%r11) + 0x49, 0x89, 0xfe, //0x0000323f movq %rdi, %r14 + //0x00003242 LBB0_556 + 0x49, 0xff, 0xce, //0x00003242 decq %r14 + 0x4d, 0x89, 0x33, //0x00003245 movq %r14, (%r11) + //0x00003248 LBB0_557 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003248 movq $-2, %rcx + //0x0000324f LBB0_558 + 0x48, 0x89, 0xc8, //0x0000324f movq %rcx, %rax + 0x48, 0x81, 0xc4, 0xa8, 0x00, 0x00, 0x00, //0x00003252 addq $168, %rsp + 0x5b, //0x00003259 popq %rbx + 0x41, 0x5c, //0x0000325a popq %r12 + 0x41, 0x5d, //0x0000325c popq %r13 + 0x41, 0x5e, //0x0000325e popq %r14 + 0x41, 0x5f, //0x00003260 popq %r15 + 0x5d, //0x00003262 popq %rbp + 0xc3, //0x00003263 retq + //0x00003264 LBB0_559 + 0x4c, 0x01, 0xc7, //0x00003264 addq %r8, %rdi + //0x00003267 LBB0_560 + 0x4c, 0x29, 0xc7, //0x00003267 subq %r8, %rdi + 0x49, 0x89, 0xfc, //0x0000326a movq %rdi, %r12 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000326d movq $-1, %rcx + 0x49, 0x39, 0xf4, //0x00003274 cmpq %rsi, %r12 + 0x0f, 0x83, 0xd2, 0xff, 0xff, 0xff, //0x00003277 jae LBB0_558 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x0000327d jmp LBB0_562 + //0x00003282 LBB0_561 + 0x4c, 0x89, 0xc0, //0x00003282 movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x00003285 notq %rax + 0x49, 0x01, 0xc4, //0x00003288 addq %rax, %r12 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000328b movq $-1, %rcx + 0x49, 0x39, 0xf4, //0x00003292 cmpq %rsi, %r12 + 0x0f, 0x83, 0xb4, 0xff, 0xff, 0xff, //0x00003295 jae LBB0_558 + //0x0000329b LBB0_562 + 0x49, 0x8d, 0x7c, 0x24, 0x01, //0x0000329b leaq $1(%r12), %rdi + 0x49, 0x89, 0x3b, //0x000032a0 movq %rdi, (%r11) + 0x43, 0x0f, 0xbe, 0x04, 0x20, //0x000032a3 movsbl (%r8,%r12), %eax + 0x83, 0xf8, 0x7b, //0x000032a8 cmpl $123, %eax + 0x0f, 0x87, 0x2e, 0x18, 0x00, 0x00, //0x000032ab ja LBB0_876 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032b1 movq $-1, %rcx + 0x48, 0x8d, 0x15, 0x79, 0x2c, 0x00, 0x00, //0x000032b8 leaq $11385(%rip), %rdx /* LJTI0_6+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000032bf movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000032c3 addq %rdx, %rax + 0xff, 0xe0, //0x000032c6 jmpq *%rax + //0x000032c8 LBB0_564 + 0x49, 0x8b, 0x55, 0x08, //0x000032c8 movq $8(%r13), %rdx + 0x48, 0x89, 0xd1, //0x000032cc movq %rdx, %rcx + 0x48, 0x29, 0xf9, //0x000032cf subq %rdi, %rcx + 0x4c, 0x01, 0xc7, //0x000032d2 addq %r8, %rdi + 0x48, 0x83, 0xf9, 0x10, //0x000032d5 cmpq $16, %rcx + 0x0f, 0x82, 0x6e, 0x00, 0x00, 0x00, //0x000032d9 jb LBB0_569 + 0x4c, 0x29, 0xe2, //0x000032df subq %r12, %rdx + 0x48, 0x83, 0xc2, 0xef, //0x000032e2 addq $-17, %rdx + 0x48, 0x89, 0xd0, //0x000032e6 movq %rdx, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x000032e9 andq $-16, %rax + 0x4c, 0x01, 0xe0, //0x000032ed addq %r12, %rax + 0x49, 0x8d, 0x74, 0x00, 0x11, //0x000032f0 leaq $17(%r8,%rax), %rsi + 0x83, 0xe2, 0x0f, //0x000032f5 andl $15, %edx + 0xf3, 0x0f, 0x6f, 0x05, 0x00, 0xcd, 0xff, 0xff, //0x000032f8 movdqu $-13056(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x08, 0xcd, 0xff, 0xff, //0x00003300 movdqu $-13048(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x10, 0xcd, 0xff, 0xff, //0x00003308 movdqu $-13040(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + //0x00003310 .p2align 4, 0x90 + //0x00003310 LBB0_566 + 0xf3, 0x0f, 0x6f, 0x1f, //0x00003310 movdqu (%rdi), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00003314 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00003318 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xeb, 0xd9, //0x0000331c por %xmm1, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003320 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xeb, 0xdc, //0x00003324 por %xmm4, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00003328 pmovmskb %xmm3, %eax + 0x66, 0x85, 0xc0, //0x0000332c testw %ax, %ax + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x0000332f jne LBB0_577 + 0x48, 0x83, 0xc7, 0x10, //0x00003335 addq $16, %rdi + 0x48, 0x83, 0xc1, 0xf0, //0x00003339 addq $-16, %rcx + 0x48, 0x83, 0xf9, 0x0f, //0x0000333d cmpq $15, %rcx + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00003341 ja LBB0_566 + 0x48, 0x89, 0xd1, //0x00003347 movq %rdx, %rcx + 0x48, 0x89, 0xf7, //0x0000334a movq %rsi, %rdi + //0x0000334d LBB0_569 + 0x48, 0x85, 0xc9, //0x0000334d testq %rcx, %rcx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00003350 je LBB0_576 + 0x48, 0x8d, 0x04, 0x0f, //0x00003356 leaq (%rdi,%rcx), %rax + //0x0000335a LBB0_571 + 0x0f, 0xb6, 0x17, //0x0000335a movzbl (%rdi), %edx + 0x80, 0xfa, 0x2c, //0x0000335d cmpb $44, %dl + 0x0f, 0x84, 0xa8, 0x21, 0x00, 0x00, //0x00003360 je LBB0_952 + 0x80, 0xfa, 0x7d, //0x00003366 cmpb $125, %dl + 0x0f, 0x84, 0x9f, 0x21, 0x00, 0x00, //0x00003369 je LBB0_952 + 0x80, 0xfa, 0x5d, //0x0000336f cmpb $93, %dl + 0x0f, 0x84, 0x96, 0x21, 0x00, 0x00, //0x00003372 je LBB0_952 + 0x48, 0xff, 0xc7, //0x00003378 incq %rdi + 0x48, 0xff, 0xc9, //0x0000337b decq %rcx + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000337e jne LBB0_571 + 0x48, 0x89, 0xc7, //0x00003384 movq %rax, %rdi + //0x00003387 LBB0_576 + 0x4c, 0x29, 0xc7, //0x00003387 subq %r8, %rdi + 0x48, 0x8b, 0x45, 0xd0, //0x0000338a movq $-48(%rbp), %rax + 0x48, 0x89, 0x38, //0x0000338e movq %rdi, (%rax) + 0x4c, 0x89, 0xe1, //0x00003391 movq %r12, %rcx + 0xe9, 0xb6, 0xfe, 0xff, 0xff, //0x00003394 jmp LBB0_558 + //0x00003399 LBB0_577 + 0x0f, 0xb7, 0xc0, //0x00003399 movzwl %ax, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x0000339c bsfq %rax, %rax + 0x4c, 0x29, 0xc7, //0x000033a0 subq %r8, %rdi + 0x48, 0x01, 0xc7, //0x000033a3 addq %rax, %rdi + //0x000033a6 LBB0_578 + 0x49, 0x89, 0x3b, //0x000033a6 movq %rdi, (%r11) + 0x4c, 0x89, 0xe1, //0x000033a9 movq %r12, %rcx + 0xe9, 0x9e, 0xfe, 0xff, 0xff, //0x000033ac jmp LBB0_558 + //0x000033b1 LBB0_579 + 0x48, 0x85, 0xc9, //0x000033b1 testq %rcx, %rcx + 0x49, 0x8d, 0x42, 0xff, //0x000033b4 leaq $-1(%r10), %rax + 0x49, 0xf7, 0xd2, //0x000033b8 notq %r10 + 0x4c, 0x0f, 0x48, 0xd2, //0x000033bb cmovsq %rdx, %r10 + 0x49, 0x39, 0xc0, //0x000033bf cmpq %rax, %r8 + 0x49, 0x0f, 0x44, 0xd2, //0x000033c2 cmoveq %r10, %rdx + 0x49, 0x89, 0xd2, //0x000033c6 movq %rdx, %r10 + //0x000033c9 LBB0_580 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000033c9 movq $-48(%rbp), %r11 + //0x000033cd LBB0_581 + 0x4d, 0x85, 0xd2, //0x000033cd testq %r10, %r10 + 0x0f, 0x88, 0xfa, 0x20, 0x00, 0x00, //0x000033d0 js LBB0_942 + 0x4d, 0x01, 0xca, //0x000033d6 addq %r9, %r10 + //0x000033d9 LBB0_583 + 0x4d, 0x89, 0x13, //0x000033d9 movq %r10, (%r11) + 0x4c, 0x89, 0xc9, //0x000033dc movq %r9, %rcx + 0x4d, 0x85, 0xc9, //0x000033df testq %r9, %r9 + 0x0f, 0x88, 0x67, 0xfe, 0xff, 0xff, //0x000033e2 js LBB0_558 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000033e8 .p2align 4, 0x90 + //0x000033f0 LBB0_584 + 0x49, 0x8b, 0x36, //0x000033f0 movq (%r14), %rsi + 0x48, 0x89, 0xf2, //0x000033f3 movq %rsi, %rdx + 0x48, 0x8b, 0x4d, 0x98, //0x000033f6 movq $-104(%rbp), %rcx + 0x48, 0x85, 0xf6, //0x000033fa testq %rsi, %rsi + 0x0f, 0x84, 0x4c, 0xfe, 0xff, 0xff, //0x000033fd je LBB0_558 + //0x00003403 LBB0_586 + 0x49, 0x8b, 0x4d, 0x08, //0x00003403 movq $8(%r13), %rcx + 0x4c, 0x89, 0xd6, //0x00003407 movq %r10, %rsi + 0x48, 0x29, 0xce, //0x0000340a subq %rcx, %rsi + 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x0000340d jae LBB0_591 + 0x43, 0x8a, 0x04, 0x17, //0x00003413 movb (%r15,%r10), %al + 0x3c, 0x0d, //0x00003417 cmpb $13, %al + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00003419 je LBB0_591 + 0x3c, 0x20, //0x0000341f cmpb $32, %al + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003421 je LBB0_591 + 0x04, 0xf7, //0x00003427 addb $-9, %al + 0x3c, 0x01, //0x00003429 cmpb $1, %al + 0x0f, 0x86, 0x0f, 0x00, 0x00, 0x00, //0x0000342b jbe LBB0_591 + 0x4d, 0x89, 0xd1, //0x00003431 movq %r10, %r9 + 0xe9, 0x24, 0x01, 0x00, 0x00, //0x00003434 jmp LBB0_612 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003439 .p2align 4, 0x90 + //0x00003440 LBB0_591 + 0x4d, 0x8d, 0x4a, 0x01, //0x00003440 leaq $1(%r10), %r9 + 0x49, 0x39, 0xc9, //0x00003444 cmpq %rcx, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00003447 jae LBB0_595 + 0x43, 0x8a, 0x1c, 0x0f, //0x0000344d movb (%r15,%r9), %bl + 0x80, 0xfb, 0x0d, //0x00003451 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00003454 je LBB0_595 + 0x80, 0xfb, 0x20, //0x0000345a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000345d je LBB0_595 + 0x80, 0xc3, 0xf7, //0x00003463 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00003466 cmpb $1, %bl + 0x0f, 0x87, 0xee, 0x00, 0x00, 0x00, //0x00003469 ja LBB0_612 + 0x90, //0x0000346f .p2align 4, 0x90 + //0x00003470 LBB0_595 + 0x4d, 0x8d, 0x4a, 0x02, //0x00003470 leaq $2(%r10), %r9 + 0x49, 0x39, 0xc9, //0x00003474 cmpq %rcx, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00003477 jae LBB0_599 + 0x43, 0x8a, 0x1c, 0x0f, //0x0000347d movb (%r15,%r9), %bl + 0x80, 0xfb, 0x0d, //0x00003481 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00003484 je LBB0_599 + 0x80, 0xfb, 0x20, //0x0000348a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000348d je LBB0_599 + 0x80, 0xc3, 0xf7, //0x00003493 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00003496 cmpb $1, %bl + 0x0f, 0x87, 0xbe, 0x00, 0x00, 0x00, //0x00003499 ja LBB0_612 + 0x90, //0x0000349f .p2align 4, 0x90 + //0x000034a0 LBB0_599 + 0x4d, 0x8d, 0x4a, 0x03, //0x000034a0 leaq $3(%r10), %r9 + 0x49, 0x39, 0xc9, //0x000034a4 cmpq %rcx, %r9 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000034a7 jae LBB0_603 + 0x43, 0x8a, 0x1c, 0x0f, //0x000034ad movb (%r15,%r9), %bl + 0x80, 0xfb, 0x0d, //0x000034b1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000034b4 je LBB0_603 + 0x80, 0xfb, 0x20, //0x000034ba cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000034bd je LBB0_603 + 0x80, 0xc3, 0xf7, //0x000034c3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000034c6 cmpb $1, %bl + 0x0f, 0x87, 0x8e, 0x00, 0x00, 0x00, //0x000034c9 ja LBB0_612 + 0x90, //0x000034cf .p2align 4, 0x90 + //0x000034d0 LBB0_603 + 0x49, 0x8d, 0x7a, 0x04, //0x000034d0 leaq $4(%r10), %rdi + 0x48, 0x39, 0xf9, //0x000034d4 cmpq %rdi, %rcx + 0x0f, 0x86, 0xb2, 0x15, 0x00, 0x00, //0x000034d7 jbe LBB0_869 + 0x48, 0x39, 0xf9, //0x000034dd cmpq %rdi, %rcx + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000034e0 je LBB0_609 + 0x49, 0x8d, 0x3c, 0x0f, //0x000034e6 leaq (%r15,%rcx), %rdi + 0x48, 0x83, 0xc6, 0x04, //0x000034ea addq $4, %rsi + 0x4c, 0x03, 0x55, 0x90, //0x000034ee addq $-112(%rbp), %r10 + 0x4d, 0x89, 0xd1, //0x000034f2 movq %r10, %r9 + 0x48, 0xb8, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000034f5 movabsq $4294977024, %rax + 0x90, //0x000034ff .p2align 4, 0x90 + //0x00003500 LBB0_606 + 0x41, 0x0f, 0xbe, 0x59, 0xff, //0x00003500 movsbl $-1(%r9), %ebx + 0x83, 0xfb, 0x20, //0x00003505 cmpl $32, %ebx + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00003508 ja LBB0_611 + 0x48, 0x0f, 0xa3, 0xd8, //0x0000350e btq %rbx, %rax + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00003512 jae LBB0_611 + 0x49, 0xff, 0xc1, //0x00003518 incq %r9 + 0x48, 0xff, 0xc6, //0x0000351b incq %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000351e jne LBB0_606 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00003524 jmp LBB0_610 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003529 .p2align 4, 0x90 + //0x00003530 LBB0_609 + 0x4c, 0x01, 0xff, //0x00003530 addq %r15, %rdi + //0x00003533 LBB0_610 + 0x4c, 0x29, 0xff, //0x00003533 subq %r15, %rdi + 0x49, 0x89, 0xf9, //0x00003536 movq %rdi, %r9 + 0x49, 0x39, 0xc9, //0x00003539 cmpq %rcx, %r9 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000353c jb LBB0_612 + 0xe9, 0x4b, 0x15, 0x00, 0x00, //0x00003542 jmp LBB0_870 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003547 .p2align 4, 0x90 + //0x00003550 LBB0_611 + 0x4c, 0x03, 0x4d, 0xb0, //0x00003550 addq $-80(%rbp), %r9 + 0x49, 0x39, 0xc9, //0x00003554 cmpq %rcx, %r9 + 0x0f, 0x83, 0x35, 0x15, 0x00, 0x00, //0x00003557 jae LBB0_870 + //0x0000355d LBB0_612 + 0x4d, 0x8d, 0x51, 0x01, //0x0000355d leaq $1(%r9), %r10 + 0x4d, 0x89, 0x13, //0x00003561 movq %r10, (%r11) + 0x43, 0x0f, 0xbe, 0x3c, 0x0f, //0x00003564 movsbl (%r15,%r9), %edi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003569 movq $-1, %rcx + 0x85, 0xff, //0x00003570 testl %edi, %edi + 0x0f, 0x84, 0xd7, 0xfc, 0xff, 0xff, //0x00003572 je LBB0_558 + 0x48, 0x8d, 0x72, 0xff, //0x00003578 leaq $-1(%rdx), %rsi + 0x41, 0x8b, 0x1c, 0xd6, //0x0000357c movl (%r14,%rdx,8), %ebx + 0x48, 0x8b, 0x45, 0x98, //0x00003580 movq $-104(%rbp), %rax + 0x48, 0x83, 0xf8, 0xff, //0x00003584 cmpq $-1, %rax + 0x49, 0x0f, 0x44, 0xc1, //0x00003588 cmoveq %r9, %rax + 0x48, 0x89, 0x45, 0x98, //0x0000358c movq %rax, $-104(%rbp) + 0xff, 0xcb, //0x00003590 decl %ebx + 0x83, 0xfb, 0x05, //0x00003592 cmpl $5, %ebx + 0x0f, 0x87, 0x33, 0x02, 0x00, 0x00, //0x00003595 ja LBB0_641 + 0x48, 0x8d, 0x05, 0xb6, 0x25, 0x00, 0x00, //0x0000359b leaq $9654(%rip), %rax /* LJTI0_2+0(%rip) */ + 0x48, 0x63, 0x1c, 0x98, //0x000035a2 movslq (%rax,%rbx,4), %rbx + 0x48, 0x01, 0xc3, //0x000035a6 addq %rax, %rbx + 0xff, 0xe3, //0x000035a9 jmpq *%rbx + //0x000035ab LBB0_615 + 0x83, 0xff, 0x2c, //0x000035ab cmpl $44, %edi + 0x0f, 0x84, 0xfa, 0x04, 0x00, 0x00, //0x000035ae je LBB0_682 + 0x83, 0xff, 0x5d, //0x000035b4 cmpl $93, %edi + 0x0f, 0x84, 0xa3, 0x04, 0x00, 0x00, //0x000035b7 je LBB0_617 + 0xe9, 0x86, 0xfc, 0xff, 0xff, //0x000035bd jmp LBB0_557 + //0x000035c2 LBB0_618 + 0x40, 0x80, 0xff, 0x5d, //0x000035c2 cmpb $93, %dil + 0x0f, 0x84, 0x94, 0x04, 0x00, 0x00, //0x000035c6 je LBB0_617 + 0x49, 0xc7, 0x04, 0xd6, 0x01, 0x00, 0x00, 0x00, //0x000035cc movq $1, (%r14,%rdx,8) + 0x83, 0xff, 0x7b, //0x000035d4 cmpl $123, %edi + 0x0f, 0x86, 0xfd, 0x01, 0x00, 0x00, //0x000035d7 jbe LBB0_620 + 0xe9, 0x66, 0xfc, 0xff, 0xff, //0x000035dd jmp LBB0_557 + //0x000035e2 LBB0_621 + 0x83, 0xff, 0x2c, //0x000035e2 cmpl $44, %edi + 0x0f, 0x85, 0x6c, 0x04, 0x00, 0x00, //0x000035e5 jne LBB0_622 + 0x48, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x000035eb cmpq $4095, %rdx + 0x0f, 0x8f, 0xa6, 0x14, 0x00, 0x00, //0x000035f2 jg LBB0_955 + 0x48, 0x8d, 0x42, 0x01, //0x000035f8 leaq $1(%rdx), %rax + 0x49, 0x89, 0x06, //0x000035fc movq %rax, (%r14) + 0x49, 0xc7, 0x44, 0xd6, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000035ff movq $3, $8(%r14,%rdx,8) + 0xe9, 0xe3, 0xfd, 0xff, 0xff, //0x00003608 jmp LBB0_584 + //0x0000360d LBB0_623 + 0x40, 0x80, 0xff, 0x22, //0x0000360d cmpb $34, %dil + 0x0f, 0x85, 0x31, 0xfc, 0xff, 0xff, //0x00003611 jne LBB0_557 + 0x49, 0xc7, 0x04, 0xd6, 0x04, 0x00, 0x00, 0x00, //0x00003617 movq $4, (%r14,%rdx,8) + 0x49, 0x8b, 0x45, 0x08, //0x0000361f movq $8(%r13), %rax + 0x49, 0x89, 0xc0, //0x00003623 movq %rax, %r8 + 0x4d, 0x29, 0xd0, //0x00003626 subq %r10, %r8 + 0x0f, 0x84, 0xf9, 0x1f, 0x00, 0x00, //0x00003629 je LBB0_967 + 0x4c, 0x89, 0x55, 0xc8, //0x0000362f movq %r10, $-56(%rbp) + 0x4d, 0x01, 0xfa, //0x00003633 addq %r15, %r10 + 0x49, 0x83, 0xf8, 0x40, //0x00003636 cmpq $64, %r8 + 0x0f, 0x82, 0x75, 0x11, 0x00, 0x00, //0x0000363a jb LBB0_840 + 0x44, 0x89, 0xc1, //0x00003640 movl %r8d, %ecx + 0x83, 0xe1, 0x3f, //0x00003643 andl $63, %ecx + 0x48, 0x89, 0x4d, 0x80, //0x00003646 movq %rcx, $-128(%rbp) + 0x48, 0x89, 0xc1, //0x0000364a movq %rax, %rcx + 0x4c, 0x29, 0xc9, //0x0000364d subq %r9, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00003650 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00003654 andq $-64, %rcx + 0x4c, 0x01, 0xc9, //0x00003658 addq %r9, %rcx + 0x49, 0x8d, 0x4c, 0x0f, 0x41, //0x0000365b leaq $65(%r15,%rcx), %rcx + 0x48, 0x89, 0x4d, 0x88, //0x00003660 movq %rcx, $-120(%rbp) + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00003664 movq $-1, %r15 + 0x45, 0x31, 0xed, //0x0000366b xorl %r13d, %r13d + 0x90, 0x90, //0x0000366e .p2align 4, 0x90 + //0x00003670 LBB0_627 + 0xf3, 0x41, 0x0f, 0x6f, 0x12, //0x00003670 movdqu (%r10), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x6a, 0x10, //0x00003675 movdqu $16(%r10), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x72, 0x20, //0x0000367b movdqu $32(%r10), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x7a, 0x30, //0x00003681 movdqu $48(%r10), %xmm7 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003687 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x0000368b pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x0000368f pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0x6f, 0xe5, //0x00003693 movdqa %xmm5, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00003697 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x0000369b pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xe6, //0x0000369f movdqa %xmm6, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x000036a3 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x000036a7 pmovmskb %xmm4, %edx + 0x66, 0x0f, 0x6f, 0xe7, //0x000036ab movdqa %xmm7, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x000036af pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x000036b3 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x74, 0xd1, //0x000036b7 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xf2, //0x000036bb pmovmskb %xmm2, %esi + 0x66, 0x0f, 0x74, 0xe9, //0x000036bf pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x000036c3 pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x000036c8 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xde, //0x000036cc pmovmskb %xmm6, %r11d + 0x66, 0x0f, 0x74, 0xf9, //0x000036d1 pcmpeqb %xmm1, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xe7, //0x000036d5 pmovmskb %xmm7, %r12d + 0x48, 0xc1, 0xe7, 0x30, //0x000036da shlq $48, %rdi + 0x48, 0xc1, 0xe2, 0x20, //0x000036de shlq $32, %rdx + 0x48, 0xc1, 0xe1, 0x10, //0x000036e2 shlq $16, %rcx + 0x48, 0x09, 0xcb, //0x000036e6 orq %rcx, %rbx + 0x48, 0x09, 0xd3, //0x000036e9 orq %rdx, %rbx + 0x49, 0xc1, 0xe4, 0x30, //0x000036ec shlq $48, %r12 + 0x49, 0xc1, 0xe3, 0x20, //0x000036f0 shlq $32, %r11 + 0x49, 0xc1, 0xe6, 0x10, //0x000036f4 shlq $16, %r14 + 0x4c, 0x09, 0xf6, //0x000036f8 orq %r14, %rsi + 0x4c, 0x09, 0xde, //0x000036fb orq %r11, %rsi + 0x4c, 0x09, 0xe6, //0x000036fe orq %r12, %rsi + 0x49, 0x83, 0xff, 0xff, //0x00003701 cmpq $-1, %r15 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003705 jne LBB0_629 + 0x48, 0x85, 0xf6, //0x0000370b testq %rsi, %rsi + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000370e jne LBB0_638 + //0x00003714 LBB0_629 + 0x48, 0x09, 0xfb, //0x00003714 orq %rdi, %rbx + 0x48, 0x89, 0xf1, //0x00003717 movq %rsi, %rcx + 0x4c, 0x09, 0xe9, //0x0000371a orq %r13, %rcx + 0x4c, 0x8b, 0x5d, 0xd0, //0x0000371d movq $-48(%rbp), %r11 + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00003721 jne LBB0_644 + 0x48, 0x85, 0xdb, //0x00003727 testq %rbx, %rbx + 0x0f, 0x85, 0x48, 0x03, 0x00, 0x00, //0x0000372a jne LBB0_645 + //0x00003730 LBB0_631 + 0x49, 0x83, 0xc0, 0xc0, //0x00003730 addq $-64, %r8 + 0x49, 0x83, 0xc2, 0x40, //0x00003734 addq $64, %r10 + 0x49, 0x83, 0xf8, 0x3f, //0x00003738 cmpq $63, %r8 + 0x0f, 0x87, 0x2e, 0xff, 0xff, 0xff, //0x0000373c ja LBB0_627 + 0xe9, 0xbd, 0x0b, 0x00, 0x00, //0x00003742 jmp LBB0_632 + //0x00003747 LBB0_644 + 0x4c, 0x89, 0xe9, //0x00003747 movq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x0000374a notq %rcx + 0x48, 0x21, 0xf1, //0x0000374d andq %rsi, %rcx + 0x48, 0x8d, 0x14, 0x09, //0x00003750 leaq (%rcx,%rcx), %rdx + 0x4c, 0x09, 0xea, //0x00003754 orq %r13, %rdx + 0x48, 0x89, 0xd7, //0x00003757 movq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x0000375a notq %rdi + 0x48, 0x21, 0xf7, //0x0000375d andq %rsi, %rdi + 0x48, 0x89, 0xc6, //0x00003760 movq %rax, %rsi + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003763 movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc7, //0x0000376d andq %rax, %rdi + 0x45, 0x31, 0xed, //0x00003770 xorl %r13d, %r13d + 0x48, 0x01, 0xcf, //0x00003773 addq %rcx, %rdi + 0x41, 0x0f, 0x92, 0xc5, //0x00003776 setb %r13b + 0x48, 0x01, 0xff, //0x0000377a addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000377d movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00003787 xorq %rax, %rdi + 0x48, 0x89, 0xf0, //0x0000378a movq %rsi, %rax + 0x48, 0x21, 0xd7, //0x0000378d andq %rdx, %rdi + 0x48, 0xf7, 0xd7, //0x00003790 notq %rdi + 0x48, 0x21, 0xfb, //0x00003793 andq %rdi, %rbx + 0x48, 0x85, 0xdb, //0x00003796 testq %rbx, %rbx + 0x0f, 0x84, 0x91, 0xff, 0xff, 0xff, //0x00003799 je LBB0_631 + 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x0000379f jmp LBB0_645 + //0x000037a4 LBB0_638 + 0x4c, 0x89, 0xd1, //0x000037a4 movq %r10, %rcx + 0x48, 0x2b, 0x4d, 0xb8, //0x000037a7 subq $-72(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xfe, //0x000037ab bsfq %rsi, %r15 + 0x49, 0x01, 0xcf, //0x000037af addq %rcx, %r15 + 0xe9, 0x5d, 0xff, 0xff, 0xff, //0x000037b2 jmp LBB0_629 + //0x000037b7 LBB0_639 + 0x40, 0x80, 0xff, 0x3a, //0x000037b7 cmpb $58, %dil + 0x0f, 0x85, 0x87, 0xfa, 0xff, 0xff, //0x000037bb jne LBB0_557 + 0x49, 0xc7, 0x04, 0xd6, 0x00, 0x00, 0x00, 0x00, //0x000037c1 movq $0, (%r14,%rdx,8) + 0xe9, 0x22, 0xfc, 0xff, 0xff, //0x000037c9 jmp LBB0_584 + //0x000037ce LBB0_641 + 0x49, 0x89, 0x36, //0x000037ce movq %rsi, (%r14) + 0x83, 0xff, 0x7b, //0x000037d1 cmpl $123, %edi + 0x0f, 0x87, 0x6e, 0xfa, 0xff, 0xff, //0x000037d4 ja LBB0_557 + //0x000037da LBB0_620 + 0x4f, 0x8d, 0x24, 0x0f, //0x000037da leaq (%r15,%r9), %r12 + 0x89, 0xf8, //0x000037de movl %edi, %eax + 0x48, 0x8d, 0x15, 0x89, 0x23, 0x00, 0x00, //0x000037e0 leaq $9097(%rip), %rdx /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x04, 0x82, //0x000037e7 movslq (%rdx,%rax,4), %rax + 0x48, 0x01, 0xd0, //0x000037eb addq %rdx, %rax + 0xff, 0xe0, //0x000037ee jmpq *%rax + //0x000037f0 LBB0_648 + 0x49, 0x8b, 0x7d, 0x08, //0x000037f0 movq $8(%r13), %rdi + 0x4c, 0x29, 0xcf, //0x000037f4 subq %r9, %rdi + 0x0f, 0x84, 0xd6, 0x12, 0x00, 0x00, //0x000037f7 je LBB0_875 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x000037fd cmpb $48, (%r12) + 0x0f, 0x85, 0x31, 0x00, 0x00, 0x00, //0x00003802 jne LBB0_653 + 0x48, 0x83, 0xff, 0x01, //0x00003808 cmpq $1, %rdi + 0x0f, 0x84, 0xc7, 0xfb, 0xff, 0xff, //0x0000380c je LBB0_583 + 0x43, 0x8a, 0x0c, 0x17, //0x00003812 movb (%r15,%r10), %cl + 0x80, 0xc1, 0xd2, //0x00003816 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00003819 cmpb $55, %cl + 0x0f, 0x87, 0xb7, 0xfb, 0xff, 0xff, //0x0000381c ja LBB0_583 + 0x0f, 0xb6, 0xc1, //0x00003822 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003825 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000382f btq %rax, %rcx + 0x0f, 0x83, 0xa0, 0xfb, 0xff, 0xff, //0x00003833 jae LBB0_583 + //0x00003839 LBB0_653 + 0x48, 0x83, 0xff, 0x10, //0x00003839 cmpq $16, %rdi + 0x0f, 0x82, 0xf1, 0x0f, 0x00, 0x00, //0x0000383d jb LBB0_845 + 0x4c, 0x8d, 0x7f, 0xf0, //0x00003843 leaq $-16(%rdi), %r15 + 0x4c, 0x89, 0xf8, //0x00003847 movq %r15, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x0000384a andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x20, 0x10, //0x0000384e leaq $16(%rax,%r12), %rax + 0x48, 0x89, 0x45, 0xc8, //0x00003853 movq %rax, $-56(%rbp) + 0x41, 0x83, 0xe7, 0x0f, //0x00003857 andl $15, %r15d + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000385b movq $-1, %r11 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00003862 movq $-1, %r10 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003869 movq $-1, %r8 + 0x4c, 0x89, 0xe3, //0x00003870 movq %r12, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003873 .p2align 4, 0x90 + //0x00003880 LBB0_655 + 0xf3, 0x0f, 0x6f, 0x13, //0x00003880 movdqu (%rbx), %xmm2 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003884 movdqa %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x00003888 pcmpgtb %xmm8, %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x0000388d movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x64, 0xea, //0x00003891 pcmpgtb %xmm2, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00003895 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003899 movdqa %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x0000389d pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf2, //0x000038a2 movdqa %xmm2, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000038a6 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000038ab por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe2, //0x000038af movdqa %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0xeb, 0xe3, //0x000038b3 por %xmm11, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xd4, //0x000038b8 pcmpeqb %xmm12, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xe5, //0x000038bd pcmpeqb %xmm13, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xf4, //0x000038c2 pmovmskb %xmm4, %r14d + 0x66, 0x0f, 0xeb, 0xe2, //0x000038c7 por %xmm2, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000038cb por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000038cf por %xmm4, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xea, //0x000038d3 pmovmskb %xmm2, %r13d + 0x66, 0x0f, 0xd7, 0xf6, //0x000038d8 pmovmskb %xmm6, %esi + 0x66, 0x0f, 0xd7, 0xc5, //0x000038dc pmovmskb %xmm5, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000038e0 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x000038e5 xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x000038e8 bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x000038ec cmpl $16, %ecx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000038ef je LBB0_657 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000038f5 movl $-1, %eax + 0xd3, 0xe0, //0x000038fa shll %cl, %eax + 0xf7, 0xd0, //0x000038fc notl %eax + 0x41, 0x21, 0xc5, //0x000038fe andl %eax, %r13d + 0x41, 0x21, 0xc6, //0x00003901 andl %eax, %r14d + 0x21, 0xf0, //0x00003904 andl %esi, %eax + 0x89, 0xc6, //0x00003906 movl %eax, %esi + //0x00003908 LBB0_657 + 0x41, 0x8d, 0x55, 0xff, //0x00003908 leal $-1(%r13), %edx + 0x44, 0x21, 0xea, //0x0000390c andl %r13d, %edx + 0x0f, 0x85, 0x82, 0x0a, 0x00, 0x00, //0x0000390f jne LBB0_807 + 0x41, 0x8d, 0x56, 0xff, //0x00003915 leal $-1(%r14), %edx + 0x44, 0x21, 0xf2, //0x00003919 andl %r14d, %edx + 0x0f, 0x85, 0x75, 0x0a, 0x00, 0x00, //0x0000391c jne LBB0_807 + 0x8d, 0x56, 0xff, //0x00003922 leal $-1(%rsi), %edx + 0x21, 0xf2, //0x00003925 andl %esi, %edx + 0x0f, 0x85, 0x6a, 0x0a, 0x00, 0x00, //0x00003927 jne LBB0_807 + 0x45, 0x85, 0xed, //0x0000392d testl %r13d, %r13d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003930 je LBB0_663 + 0x48, 0x89, 0xd8, //0x00003936 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x00003939 subq %r12, %rax + 0x41, 0x0f, 0xbc, 0xd5, //0x0000393c bsfl %r13d, %edx + 0x48, 0x01, 0xc2, //0x00003940 addq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00003943 cmpq $-1, %r8 + 0x0f, 0x85, 0x2a, 0x0c, 0x00, 0x00, //0x00003947 jne LBB0_823 + 0x49, 0x89, 0xd0, //0x0000394d movq %rdx, %r8 + //0x00003950 LBB0_663 + 0x45, 0x85, 0xf6, //0x00003950 testl %r14d, %r14d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003953 je LBB0_666 + 0x48, 0x89, 0xd8, //0x00003959 movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x0000395c subq %r12, %rax + 0x41, 0x0f, 0xbc, 0xd6, //0x0000395f bsfl %r14d, %edx + 0x48, 0x01, 0xc2, //0x00003963 addq %rax, %rdx + 0x49, 0x83, 0xfa, 0xff, //0x00003966 cmpq $-1, %r10 + 0x0f, 0x85, 0x07, 0x0c, 0x00, 0x00, //0x0000396a jne LBB0_823 + 0x49, 0x89, 0xd2, //0x00003970 movq %rdx, %r10 + //0x00003973 LBB0_666 + 0x4c, 0x8b, 0x75, 0xa8, //0x00003973 movq $-88(%rbp), %r14 + 0x85, 0xf6, //0x00003977 testl %esi, %esi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00003979 je LBB0_669 + 0x48, 0x89, 0xd8, //0x0000397f movq %rbx, %rax + 0x4c, 0x29, 0xe0, //0x00003982 subq %r12, %rax + 0x0f, 0xbc, 0xd6, //0x00003985 bsfl %esi, %edx + 0x48, 0x01, 0xc2, //0x00003988 addq %rax, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x0000398b cmpq $-1, %r11 + 0x0f, 0x85, 0xf7, 0x0c, 0x00, 0x00, //0x0000398f jne LBB0_835 + 0x49, 0x89, 0xd3, //0x00003995 movq %rdx, %r11 + //0x00003998 LBB0_669 + 0x83, 0xf9, 0x10, //0x00003998 cmpl $16, %ecx + 0x0f, 0x85, 0x24, 0x03, 0x00, 0x00, //0x0000399b jne LBB0_708 + 0x48, 0x83, 0xc3, 0x10, //0x000039a1 addq $16, %rbx + 0x48, 0x83, 0xc7, 0xf0, //0x000039a5 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x000039a9 cmpq $15, %rdi + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000039ad ja LBB0_655 + 0x4d, 0x85, 0xff, //0x000039b3 testq %r15, %r15 + 0x48, 0x8d, 0x3d, 0x8f, 0x24, 0x00, 0x00, //0x000039b6 leaq $9359(%rip), %rdi /* LJTI0_5+0(%rip) */ + 0x0f, 0x84, 0x09, 0x03, 0x00, 0x00, //0x000039bd je LBB0_710 + //0x000039c3 LBB0_672 + 0x48, 0x8b, 0x5d, 0xc8, //0x000039c3 movq $-56(%rbp), %rbx + 0x4a, 0x8d, 0x0c, 0x3b, //0x000039c7 leaq (%rbx,%r15), %rcx + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x000039cb jmp LBB0_676 + //0x000039d0 LBB0_673 + 0x48, 0x89, 0xf0, //0x000039d0 movq %rsi, %rax + 0x4c, 0x29, 0xe0, //0x000039d3 subq %r12, %rax + 0x49, 0x83, 0xfb, 0xff, //0x000039d6 cmpq $-1, %r11 + 0x0f, 0x85, 0xda, 0x0c, 0x00, 0x00, //0x000039da jne LBB0_837 + 0x48, 0xff, 0xc8, //0x000039e0 decq %rax + 0x49, 0x89, 0xc3, //0x000039e3 movq %rax, %r11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039e6 .p2align 4, 0x90 + //0x000039f0 LBB0_675 + 0x48, 0x89, 0xf3, //0x000039f0 movq %rsi, %rbx + 0x49, 0xff, 0xcf, //0x000039f3 decq %r15 + 0x0f, 0x84, 0x92, 0x0b, 0x00, 0x00, //0x000039f6 je LBB0_825 + //0x000039fc LBB0_676 + 0x0f, 0xbe, 0x13, //0x000039fc movsbl (%rbx), %edx + 0x83, 0xc2, 0xd5, //0x000039ff addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00003a02 cmpl $58, %edx + 0x0f, 0x87, 0xbd, 0x02, 0x00, 0x00, //0x00003a05 ja LBB0_709 + 0x48, 0x8d, 0x73, 0x01, //0x00003a0b leaq $1(%rbx), %rsi + 0x48, 0x63, 0x04, 0x97, //0x00003a0f movslq (%rdi,%rdx,4), %rax + 0x48, 0x01, 0xf8, //0x00003a13 addq %rdi, %rax + 0xff, 0xe0, //0x00003a16 jmpq *%rax + //0x00003a18 LBB0_678 + 0x48, 0x89, 0xf0, //0x00003a18 movq %rsi, %rax + 0x4c, 0x29, 0xe0, //0x00003a1b subq %r12, %rax + 0x49, 0x83, 0xfa, 0xff, //0x00003a1e cmpq $-1, %r10 + 0x0f, 0x85, 0x92, 0x0c, 0x00, 0x00, //0x00003a22 jne LBB0_837 + 0x48, 0xff, 0xc8, //0x00003a28 decq %rax + 0x49, 0x89, 0xc2, //0x00003a2b movq %rax, %r10 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00003a2e jmp LBB0_675 + //0x00003a33 LBB0_680 + 0x48, 0x89, 0xf0, //0x00003a33 movq %rsi, %rax + 0x4c, 0x29, 0xe0, //0x00003a36 subq %r12, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00003a39 cmpq $-1, %r8 + 0x0f, 0x85, 0x77, 0x0c, 0x00, 0x00, //0x00003a3d jne LBB0_837 + 0x48, 0xff, 0xc8, //0x00003a43 decq %rax + 0x49, 0x89, 0xc0, //0x00003a46 movq %rax, %r8 + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x00003a49 jmp LBB0_675 + //0x00003a4e LBB0_642 + 0x83, 0xff, 0x22, //0x00003a4e cmpl $34, %edi + 0x0f, 0x84, 0x79, 0x00, 0x00, 0x00, //0x00003a51 je LBB0_686 + //0x00003a57 LBB0_622 + 0x83, 0xff, 0x7d, //0x00003a57 cmpl $125, %edi + 0x0f, 0x85, 0xe8, 0xf7, 0xff, 0xff, //0x00003a5a jne LBB0_557 + //0x00003a60 LBB0_617 + 0x49, 0x89, 0x36, //0x00003a60 movq %rsi, (%r14) + 0x48, 0x89, 0xf2, //0x00003a63 movq %rsi, %rdx + 0x48, 0x8b, 0x4d, 0x98, //0x00003a66 movq $-104(%rbp), %rcx + 0x48, 0x85, 0xf6, //0x00003a6a testq %rsi, %rsi + 0x0f, 0x85, 0x90, 0xf9, 0xff, 0xff, //0x00003a6d jne LBB0_586 + 0xe9, 0xd7, 0xf7, 0xff, 0xff, //0x00003a73 jmp LBB0_558 + //0x00003a78 LBB0_645 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003a78 bsfq %rbx, %rcx + 0x4c, 0x03, 0x55, 0xa0, //0x00003a7c addq $-96(%rbp), %r10 + 0x49, 0x01, 0xca, //0x00003a80 addq %rcx, %r10 + 0x4c, 0x8b, 0x75, 0xa8, //0x00003a83 movq $-88(%rbp), %r14 + //0x00003a87 LBB0_646 + 0x4d, 0x85, 0xd2, //0x00003a87 testq %r10, %r10 + 0x0f, 0x88, 0x24, 0x10, 0x00, 0x00, //0x00003a8a js LBB0_872 + 0x4d, 0x89, 0x13, //0x00003a90 movq %r10, (%r11) + 0x4c, 0x89, 0xc9, //0x00003a93 movq %r9, %rcx + 0x48, 0x83, 0x7d, 0xc8, 0x00, //0x00003a96 cmpq $0, $-56(%rbp) + 0x4c, 0x8b, 0x6d, 0xc0, //0x00003a9b movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x7d, 0xb8, //0x00003a9f movq $-72(%rbp), %r15 + 0x0f, 0x8f, 0x47, 0xf9, 0xff, 0xff, //0x00003aa3 jg LBB0_584 + 0xe9, 0xa1, 0xf7, 0xff, 0xff, //0x00003aa9 jmp LBB0_558 + //0x00003aae LBB0_682 + 0x48, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x00003aae cmpq $4095, %rdx + 0x0f, 0x8f, 0xe3, 0x0f, 0x00, 0x00, //0x00003ab5 jg LBB0_955 + 0x48, 0x8d, 0x42, 0x01, //0x00003abb leaq $1(%rdx), %rax + 0x49, 0x89, 0x06, //0x00003abf movq %rax, (%r14) + 0x49, 0xc7, 0x44, 0xd6, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00003ac2 movq $0, $8(%r14,%rdx,8) + 0xe9, 0x20, 0xf9, 0xff, 0xff, //0x00003acb jmp LBB0_584 + //0x00003ad0 LBB0_686 + 0x49, 0xc7, 0x04, 0xd6, 0x02, 0x00, 0x00, 0x00, //0x00003ad0 movq $2, (%r14,%rdx,8) + 0x49, 0x8b, 0x4d, 0x08, //0x00003ad8 movq $8(%r13), %rcx + 0x49, 0x89, 0xcd, //0x00003adc movq %rcx, %r13 + 0x4d, 0x29, 0xd5, //0x00003adf subq %r10, %r13 + 0x0f, 0x84, 0x5b, 0x1b, 0x00, 0x00, //0x00003ae2 je LBB0_974 + 0x4c, 0x89, 0x55, 0xc8, //0x00003ae8 movq %r10, $-56(%rbp) + 0x4d, 0x01, 0xfa, //0x00003aec addq %r15, %r10 + 0x49, 0x83, 0xfd, 0x40, //0x00003aef cmpq $64, %r13 + 0x48, 0x89, 0x4d, 0x88, //0x00003af3 movq %rcx, $-120(%rbp) + 0x0f, 0x82, 0x5f, 0x0d, 0x00, 0x00, //0x00003af7 jb LBB0_846 + 0x45, 0x89, 0xee, //0x00003afd movl %r13d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00003b00 andl $63, %r14d + 0x4c, 0x29, 0xc9, //0x00003b04 subq %r9, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00003b07 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00003b0b andq $-64, %rcx + 0x4c, 0x01, 0xc9, //0x00003b0f addq %r9, %rcx + 0x49, 0x8d, 0x44, 0x0f, 0x41, //0x00003b12 leaq $65(%r15,%rcx), %rax + 0x48, 0x89, 0x45, 0x80, //0x00003b17 movq %rax, $-128(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00003b1b movq $-1, %r12 + 0x45, 0x31, 0xff, //0x00003b22 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b25 .p2align 4, 0x90 + //0x00003b30 LBB0_689 + 0xf3, 0x41, 0x0f, 0x6f, 0x12, //0x00003b30 movdqu (%r10), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x62, 0x10, //0x00003b35 movdqu $16(%r10), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6a, 0x20, //0x00003b3b movdqu $32(%r10), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x72, 0x30, //0x00003b41 movdqu $48(%r10), %xmm6 + 0x66, 0x0f, 0x6f, 0xfa, //0x00003b47 movdqa %xmm2, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003b4b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00003b4f pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfc, //0x00003b53 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003b57 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xd7, //0x00003b5b pmovmskb %xmm7, %edx + 0x66, 0x0f, 0x6f, 0xfd, //0x00003b5f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003b63 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xc7, //0x00003b67 pmovmskb %xmm7, %eax + 0x66, 0x0f, 0x6f, 0xfe, //0x00003b6b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003b6f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x00003b73 pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x74, 0xd1, //0x00003b77 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00003b7b pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xe1, //0x00003b7f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x00003b83 pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0x74, 0xe9, //0x00003b87 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xdd, //0x00003b8b pmovmskb %xmm5, %r11d + 0x66, 0x0f, 0x74, 0xf1, //0x00003b90 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xc6, //0x00003b94 pmovmskb %xmm6, %r8d + 0x48, 0xc1, 0xe1, 0x30, //0x00003b99 shlq $48, %rcx + 0x48, 0xc1, 0xe0, 0x20, //0x00003b9d shlq $32, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00003ba1 shlq $16, %rdx + 0x48, 0x09, 0xd6, //0x00003ba5 orq %rdx, %rsi + 0x48, 0x09, 0xc6, //0x00003ba8 orq %rax, %rsi + 0x49, 0xc1, 0xe0, 0x30, //0x00003bab shlq $48, %r8 + 0x49, 0xc1, 0xe3, 0x20, //0x00003baf shlq $32, %r11 + 0x48, 0xc1, 0xe3, 0x10, //0x00003bb3 shlq $16, %rbx + 0x48, 0x09, 0xdf, //0x00003bb7 orq %rbx, %rdi + 0x4c, 0x09, 0xdf, //0x00003bba orq %r11, %rdi + 0x4c, 0x09, 0xc7, //0x00003bbd orq %r8, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x00003bc0 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003bc4 jne LBB0_691 + 0x48, 0x85, 0xff, //0x00003bca testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x00003bcd jne LBB0_700 + //0x00003bd3 LBB0_691 + 0x48, 0x09, 0xce, //0x00003bd3 orq %rcx, %rsi + 0x48, 0x89, 0xf8, //0x00003bd6 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00003bd9 orq %r15, %rax + 0x4c, 0x8b, 0x5d, 0xd0, //0x00003bdc movq $-48(%rbp), %r11 + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00003be0 jne LBB0_701 + 0x48, 0x85, 0xf6, //0x00003be6 testq %rsi, %rsi + 0x0f, 0x85, 0x81, 0x00, 0x00, 0x00, //0x00003be9 jne LBB0_702 + //0x00003bef LBB0_693 + 0x49, 0x83, 0xc5, 0xc0, //0x00003bef addq $-64, %r13 + 0x49, 0x83, 0xc2, 0x40, //0x00003bf3 addq $64, %r10 + 0x49, 0x83, 0xfd, 0x3f, //0x00003bf7 cmpq $63, %r13 + 0x0f, 0x87, 0x2f, 0xff, 0xff, 0xff, //0x00003bfb ja LBB0_689 + 0xe9, 0xa8, 0x08, 0x00, 0x00, //0x00003c01 jmp LBB0_694 + //0x00003c06 LBB0_701 + 0x4c, 0x89, 0xf8, //0x00003c06 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00003c09 notq %rax + 0x48, 0x21, 0xf8, //0x00003c0c andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00003c0f leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf9, //0x00003c13 orq %r15, %rcx + 0x48, 0x89, 0xca, //0x00003c16 movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003c19 notq %rdx + 0x48, 0x21, 0xfa, //0x00003c1c andq %rdi, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c1f movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x00003c29 andq %rdi, %rdx + 0x45, 0x31, 0xff, //0x00003c2c xorl %r15d, %r15d + 0x48, 0x01, 0xc2, //0x00003c2f addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc7, //0x00003c32 setb %r15b + 0x48, 0x01, 0xd2, //0x00003c36 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003c39 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00003c43 xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x00003c46 andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003c49 notq %rdx + 0x48, 0x21, 0xd6, //0x00003c4c andq %rdx, %rsi + 0x48, 0x85, 0xf6, //0x00003c4f testq %rsi, %rsi + 0x0f, 0x84, 0x97, 0xff, 0xff, 0xff, //0x00003c52 je LBB0_693 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003c58 jmp LBB0_702 + //0x00003c5d LBB0_700 + 0x4c, 0x89, 0xd0, //0x00003c5d movq %r10, %rax + 0x48, 0x2b, 0x45, 0xb8, //0x00003c60 subq $-72(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x00003c64 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x00003c68 addq %rax, %r12 + 0xe9, 0x63, 0xff, 0xff, 0xff, //0x00003c6b jmp LBB0_691 + //0x00003c70 LBB0_702 + 0x48, 0x0f, 0xbc, 0xc6, //0x00003c70 bsfq %rsi, %rax + 0x4c, 0x03, 0x55, 0xa0, //0x00003c74 addq $-96(%rbp), %r10 + 0x49, 0x01, 0xc2, //0x00003c78 addq %rax, %r10 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00003c7b movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x00003c7f movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x00003c83 movq $-72(%rbp), %r15 + 0x4d, 0x85, 0xd2, //0x00003c87 testq %r10, %r10 + 0x0f, 0x88, 0x20, 0x18, 0x00, 0x00, //0x00003c8a js LBB0_939 + //0x00003c90 LBB0_705 + 0x4d, 0x89, 0x13, //0x00003c90 movq %r10, (%r11) + 0x4c, 0x89, 0xc9, //0x00003c93 movq %r9, %rcx + 0x48, 0x83, 0x7d, 0xc8, 0x00, //0x00003c96 cmpq $0, $-56(%rbp) + 0x0f, 0x8e, 0xae, 0xf5, 0xff, 0xff, //0x00003c9b jle LBB0_558 + 0x49, 0x8b, 0x06, //0x00003ca1 movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00003ca4 cmpq $4095, %rax + 0x0f, 0x8f, 0xee, 0x0d, 0x00, 0x00, //0x00003caa jg LBB0_955 + 0x48, 0x8d, 0x48, 0x01, //0x00003cb0 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x00003cb4 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00003cb7 movq $4, $8(%r14,%rax,8) + 0xe9, 0x2b, 0xf7, 0xff, 0xff, //0x00003cc0 jmp LBB0_584 + //0x00003cc5 LBB0_708 + 0x48, 0x01, 0xcb, //0x00003cc5 addq %rcx, %rbx + //0x00003cc8 LBB0_709 + 0x48, 0x89, 0x5d, 0xc8, //0x00003cc8 movq %rbx, $-56(%rbp) + //0x00003ccc LBB0_710 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003ccc movq $-1, %rcx + 0x4d, 0x85, 0xd2, //0x00003cd3 testq %r10, %r10 + 0x0f, 0x84, 0xf7, 0x17, 0x00, 0x00, //0x00003cd6 je LBB0_943 + //0x00003cdc LBB0_711 + 0x4d, 0x85, 0xdb, //0x00003cdc testq %r11, %r11 + 0x0f, 0x84, 0xee, 0x17, 0x00, 0x00, //0x00003cdf je LBB0_943 + 0x4d, 0x85, 0xc0, //0x00003ce5 testq %r8, %r8 + 0x0f, 0x84, 0xe5, 0x17, 0x00, 0x00, //0x00003ce8 je LBB0_943 + 0x48, 0x8b, 0x45, 0xc8, //0x00003cee movq $-56(%rbp), %rax + 0x4c, 0x29, 0xe0, //0x00003cf2 subq %r12, %rax + 0x48, 0x89, 0xc2, //0x00003cf5 movq %rax, %rdx + 0x48, 0x8d, 0x48, 0xff, //0x00003cf8 leaq $-1(%rax), %rcx + 0x49, 0x39, 0xca, //0x00003cfc cmpq %rcx, %r10 + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00003cff je LBB0_719 + 0x49, 0x39, 0xc8, //0x00003d05 cmpq %rcx, %r8 + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00003d08 je LBB0_719 + 0x49, 0x39, 0xcb, //0x00003d0e cmpq %rcx, %r11 + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x00003d11 je LBB0_719 + 0x4d, 0x85, 0xdb, //0x00003d17 testq %r11, %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00003d1a movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x00003d1e movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x00003d22 movq $-72(%rbp), %r15 + 0x0f, 0x8e, 0x33, 0x00, 0x00, 0x00, //0x00003d26 jle LBB0_721 + 0x49, 0x8d, 0x43, 0xff, //0x00003d2c leaq $-1(%r11), %rax + 0x49, 0x39, 0xc2, //0x00003d30 cmpq %rax, %r10 + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003d33 je LBB0_721 + 0x49, 0xf7, 0xd3, //0x00003d39 notq %r11 + 0x4d, 0x89, 0xda, //0x00003d3c movq %r11, %r10 + 0xe9, 0x85, 0xf6, 0xff, 0xff, //0x00003d3f jmp LBB0_580 + //0x00003d44 LBB0_719 + 0x49, 0x89, 0xd2, //0x00003d44 movq %rdx, %r10 + 0x49, 0xf7, 0xda, //0x00003d47 negq %r10 + //0x00003d4a LBB0_720 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00003d4a movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00003d4e movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x00003d52 movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x00003d56 movq $-72(%rbp), %r15 + 0xe9, 0x6e, 0xf6, 0xff, 0xff, //0x00003d5a jmp LBB0_581 + //0x00003d5f LBB0_721 + 0x4c, 0x89, 0xc1, //0x00003d5f movq %r8, %rcx + 0x4c, 0x09, 0xd1, //0x00003d62 orq %r10, %rcx + 0x4d, 0x39, 0xd0, //0x00003d65 cmpq %r10, %r8 + 0x0f, 0x8c, 0x43, 0xf6, 0xff, 0xff, //0x00003d68 jl LBB0_579 + 0x48, 0x85, 0xc9, //0x00003d6e testq %rcx, %rcx + 0x0f, 0x88, 0x3a, 0xf6, 0xff, 0xff, //0x00003d71 js LBB0_579 + 0x49, 0xf7, 0xd0, //0x00003d77 notq %r8 + 0x4d, 0x89, 0xc2, //0x00003d7a movq %r8, %r10 + 0xe9, 0x47, 0xf6, 0xff, 0xff, //0x00003d7d jmp LBB0_580 + //0x00003d82 LBB0_724 + 0x49, 0x8b, 0x45, 0x08, //0x00003d82 movq $8(%r13), %rax + 0x49, 0x89, 0xc5, //0x00003d86 movq %rax, %r13 + 0x4d, 0x29, 0xd5, //0x00003d89 subq %r10, %r13 + 0x0f, 0x84, 0xb1, 0x18, 0x00, 0x00, //0x00003d8c je LBB0_974 + 0x4c, 0x89, 0x55, 0xc8, //0x00003d92 movq %r10, $-56(%rbp) + 0x4d, 0x01, 0xfa, //0x00003d96 addq %r15, %r10 + 0x49, 0x83, 0xfd, 0x40, //0x00003d99 cmpq $64, %r13 + 0x48, 0x89, 0x45, 0x88, //0x00003d9d movq %rax, $-120(%rbp) + 0x0f, 0x82, 0x2e, 0x0b, 0x00, 0x00, //0x00003da1 jb LBB0_850 + 0x45, 0x89, 0xee, //0x00003da7 movl %r13d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00003daa andl $63, %r14d + 0x4c, 0x29, 0xc8, //0x00003dae subq %r9, %rax + 0x48, 0x83, 0xc0, 0xbf, //0x00003db1 addq $-65, %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00003db5 andq $-64, %rax + 0x4c, 0x01, 0xc8, //0x00003db9 addq %r9, %rax + 0x49, 0x8d, 0x44, 0x07, 0x41, //0x00003dbc leaq $65(%r15,%rax), %rax + 0x48, 0x89, 0x45, 0x80, //0x00003dc1 movq %rax, $-128(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00003dc5 movq $-1, %r12 + 0x45, 0x31, 0xff, //0x00003dcc xorl %r15d, %r15d + 0x90, //0x00003dcf .p2align 4, 0x90 + //0x00003dd0 LBB0_727 + 0xf3, 0x41, 0x0f, 0x6f, 0x12, //0x00003dd0 movdqu (%r10), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x62, 0x10, //0x00003dd5 movdqu $16(%r10), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6a, 0x20, //0x00003ddb movdqu $32(%r10), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x72, 0x30, //0x00003de1 movdqu $48(%r10), %xmm6 + 0x66, 0x0f, 0x6f, 0xfa, //0x00003de7 movdqa %xmm2, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003deb pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00003def pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfc, //0x00003df3 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003df7 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xc7, //0x00003dfb pmovmskb %xmm7, %eax + 0x66, 0x0f, 0x6f, 0xfd, //0x00003dff movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003e03 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xd7, //0x00003e07 pmovmskb %xmm7, %edx + 0x66, 0x0f, 0x6f, 0xfe, //0x00003e0b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00003e0f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x00003e13 pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x74, 0xd1, //0x00003e17 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00003e1b pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xe1, //0x00003e1f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x00003e23 pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0x74, 0xe9, //0x00003e27 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xdd, //0x00003e2b pmovmskb %xmm5, %r11d + 0x66, 0x0f, 0x74, 0xf1, //0x00003e30 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xc6, //0x00003e34 pmovmskb %xmm6, %r8d + 0x48, 0xc1, 0xe1, 0x30, //0x00003e39 shlq $48, %rcx + 0x48, 0xc1, 0xe2, 0x20, //0x00003e3d shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00003e41 shlq $16, %rax + 0x48, 0x09, 0xc6, //0x00003e45 orq %rax, %rsi + 0x48, 0x09, 0xd6, //0x00003e48 orq %rdx, %rsi + 0x49, 0xc1, 0xe0, 0x30, //0x00003e4b shlq $48, %r8 + 0x49, 0xc1, 0xe3, 0x20, //0x00003e4f shlq $32, %r11 + 0x48, 0xc1, 0xe3, 0x10, //0x00003e53 shlq $16, %rbx + 0x48, 0x09, 0xdf, //0x00003e57 orq %rbx, %rdi + 0x4c, 0x09, 0xdf, //0x00003e5a orq %r11, %rdi + 0x4c, 0x09, 0xc7, //0x00003e5d orq %r8, %rdi + 0x49, 0x83, 0xfc, 0xff, //0x00003e60 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003e64 jne LBB0_729 + 0x48, 0x85, 0xff, //0x00003e6a testq %rdi, %rdi + 0x0f, 0x85, 0x8a, 0x00, 0x00, 0x00, //0x00003e6d jne LBB0_738 + //0x00003e73 LBB0_729 + 0x48, 0x09, 0xce, //0x00003e73 orq %rcx, %rsi + 0x48, 0x89, 0xf8, //0x00003e76 movq %rdi, %rax + 0x4c, 0x09, 0xf8, //0x00003e79 orq %r15, %rax + 0x4c, 0x8b, 0x5d, 0xd0, //0x00003e7c movq $-48(%rbp), %r11 + 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00003e80 jne LBB0_791 + 0x48, 0x85, 0xf6, //0x00003e86 testq %rsi, %rsi + 0x0f, 0x85, 0xaf, 0x03, 0x00, 0x00, //0x00003e89 jne LBB0_792 + //0x00003e8f LBB0_731 + 0x49, 0x83, 0xc5, 0xc0, //0x00003e8f addq $-64, %r13 + 0x49, 0x83, 0xc2, 0x40, //0x00003e93 addq $64, %r10 + 0x49, 0x83, 0xfd, 0x3f, //0x00003e97 cmpq $63, %r13 + 0x0f, 0x87, 0x2f, 0xff, 0xff, 0xff, //0x00003e9b ja LBB0_727 + 0xe9, 0x70, 0x08, 0x00, 0x00, //0x00003ea1 jmp LBB0_732 + //0x00003ea6 LBB0_791 + 0x4c, 0x89, 0xf8, //0x00003ea6 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00003ea9 notq %rax + 0x48, 0x21, 0xf8, //0x00003eac andq %rdi, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00003eaf leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf9, //0x00003eb3 orq %r15, %rcx + 0x48, 0x89, 0xca, //0x00003eb6 movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003eb9 notq %rdx + 0x48, 0x21, 0xfa, //0x00003ebc andq %rdi, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003ebf movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x00003ec9 andq %rdi, %rdx + 0x45, 0x31, 0xff, //0x00003ecc xorl %r15d, %r15d + 0x48, 0x01, 0xc2, //0x00003ecf addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc7, //0x00003ed2 setb %r15b + 0x48, 0x01, 0xd2, //0x00003ed6 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003ed9 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00003ee3 xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x00003ee6 andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003ee9 notq %rdx + 0x48, 0x21, 0xd6, //0x00003eec andq %rdx, %rsi + 0x48, 0x85, 0xf6, //0x00003eef testq %rsi, %rsi + 0x0f, 0x84, 0x97, 0xff, 0xff, 0xff, //0x00003ef2 je LBB0_731 + 0xe9, 0x41, 0x03, 0x00, 0x00, //0x00003ef8 jmp LBB0_792 + //0x00003efd LBB0_738 + 0x4c, 0x89, 0xd0, //0x00003efd movq %r10, %rax + 0x48, 0x2b, 0x45, 0xb8, //0x00003f00 subq $-72(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe7, //0x00003f04 bsfq %rdi, %r12 + 0x49, 0x01, 0xc4, //0x00003f08 addq %rax, %r12 + 0xe9, 0x63, 0xff, 0xff, 0xff, //0x00003f0b jmp LBB0_729 + //0x00003f10 LBB0_739 + 0x4d, 0x8b, 0x7d, 0x08, //0x00003f10 movq $8(%r13), %r15 + 0x4d, 0x29, 0xd7, //0x00003f14 subq %r10, %r15 + 0x0f, 0x84, 0xf9, 0x15, 0x00, 0x00, //0x00003f17 je LBB0_953 + 0x48, 0x8b, 0x45, 0xb8, //0x00003f1d movq $-72(%rbp), %rax + 0x4c, 0x89, 0x55, 0xc8, //0x00003f21 movq %r10, $-56(%rbp) + 0x4e, 0x8d, 0x1c, 0x10, //0x00003f25 leaq (%rax,%r10), %r11 + 0x41, 0x80, 0x3b, 0x30, //0x00003f29 cmpb $48, (%r11) + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x00003f2d jne LBB0_744 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003f33 movl $1, %r10d + 0x49, 0x83, 0xff, 0x01, //0x00003f39 cmpq $1, %r15 + 0x0f, 0x84, 0xa8, 0x07, 0x00, 0x00, //0x00003f3d je LBB0_822 + 0x41, 0x8a, 0x4b, 0x01, //0x00003f43 movb $1(%r11), %cl + 0x80, 0xc1, 0xd2, //0x00003f47 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00003f4a cmpb $55, %cl + 0x0f, 0x87, 0x98, 0x07, 0x00, 0x00, //0x00003f4d ja LBB0_822 + 0x0f, 0xb6, 0xc1, //0x00003f53 movzbl %cl, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003f56 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00003f60 btq %rax, %rcx + 0x0f, 0x83, 0x81, 0x07, 0x00, 0x00, //0x00003f64 jae LBB0_822 + //0x00003f6a LBB0_744 + 0x49, 0x83, 0xff, 0x10, //0x00003f6a cmpq $16, %r15 + 0x0f, 0x82, 0x7e, 0x09, 0x00, 0x00, //0x00003f6e jb LBB0_851 + 0x4d, 0x8d, 0x47, 0xf0, //0x00003f74 leaq $-16(%r15), %r8 + 0x4c, 0x89, 0xc0, //0x00003f78 movq %r8, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00003f7b andq $-16, %rax + 0x4e, 0x8d, 0x6c, 0x18, 0x10, //0x00003f7f leaq $16(%rax,%r11), %r13 + 0x41, 0x83, 0xe0, 0x0f, //0x00003f84 andl $15, %r8d + 0x48, 0xc7, 0x45, 0x88, 0xff, 0xff, 0xff, 0xff, //0x00003f88 movq $-1, $-120(%rbp) + 0x48, 0xc7, 0x45, 0x80, 0xff, 0xff, 0xff, 0xff, //0x00003f90 movq $-1, $-128(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003f98 movq $-1, %r14 + 0x4d, 0x89, 0xdc, //0x00003f9f movq %r11, %r12 + //0x00003fa2 LBB0_746 + 0xf3, 0x41, 0x0f, 0x6f, 0x14, 0x24, //0x00003fa2 movdqu (%r12), %xmm2 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003fa8 movdqa %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x00003fac pcmpgtb %xmm8, %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00003fb1 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x64, 0xea, //0x00003fb5 pcmpgtb %xmm2, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00003fb9 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003fbd movdqa %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x00003fc1 pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf2, //0x00003fc6 movdqa %xmm2, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x00003fca pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x00003fcf por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003fd3 movdqa %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0xeb, 0xe3, //0x00003fd7 por %xmm11, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xd4, //0x00003fdc pcmpeqb %xmm12, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xe5, //0x00003fe1 pcmpeqb %xmm13, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x00003fe6 pmovmskb %xmm4, %edx + 0x66, 0x0f, 0xeb, 0xe2, //0x00003fea por %xmm2, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x00003fee por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x00003ff2 por %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xda, //0x00003ff6 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0xd7, 0xf6, //0x00003ffa pmovmskb %xmm6, %esi + 0x66, 0x0f, 0xd7, 0xc5, //0x00003ffe pmovmskb %xmm5, %eax + 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00004002 movl $4294967295, %ecx + 0x48, 0x31, 0xc8, //0x00004007 xorq %rcx, %rax + 0x48, 0x0f, 0xbc, 0xc8, //0x0000400a bsfq %rax, %rcx + 0x83, 0xf9, 0x10, //0x0000400e cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00004011 je LBB0_748 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00004017 movl $-1, %eax + 0xd3, 0xe0, //0x0000401c shll %cl, %eax + 0xf7, 0xd0, //0x0000401e notl %eax + 0x21, 0xc3, //0x00004020 andl %eax, %ebx + 0x21, 0xc2, //0x00004022 andl %eax, %edx + 0x21, 0xf0, //0x00004024 andl %esi, %eax + 0x89, 0xc6, //0x00004026 movl %eax, %esi + //0x00004028 LBB0_748 + 0x8d, 0x7b, 0xff, //0x00004028 leal $-1(%rbx), %edi + 0x21, 0xdf, //0x0000402b andl %ebx, %edi + 0x0f, 0x85, 0xa2, 0x06, 0x00, 0x00, //0x0000402d jne LBB0_838 + 0x8d, 0x7a, 0xff, //0x00004033 leal $-1(%rdx), %edi + 0x21, 0xd7, //0x00004036 andl %edx, %edi + 0x0f, 0x85, 0x97, 0x06, 0x00, 0x00, //0x00004038 jne LBB0_838 + 0x8d, 0x7e, 0xff, //0x0000403e leal $-1(%rsi), %edi + 0x21, 0xf7, //0x00004041 andl %esi, %edi + 0x0f, 0x85, 0x8c, 0x06, 0x00, 0x00, //0x00004043 jne LBB0_838 + 0x85, 0xdb, //0x00004049 testl %ebx, %ebx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000404b je LBB0_754 + 0x4c, 0x89, 0xe0, //0x00004051 movq %r12, %rax + 0x4c, 0x29, 0xd8, //0x00004054 subq %r11, %rax + 0x44, 0x0f, 0xbc, 0xd3, //0x00004057 bsfl %ebx, %r10d + 0x49, 0x01, 0xc2, //0x0000405b addq %rax, %r10 + 0x49, 0x83, 0xfe, 0xff, //0x0000405e cmpq $-1, %r14 + 0x0f, 0x85, 0x77, 0x06, 0x00, 0x00, //0x00004062 jne LBB0_839 + 0x4d, 0x89, 0xd6, //0x00004068 movq %r10, %r14 + //0x0000406b LBB0_754 + 0x85, 0xd2, //0x0000406b testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000406d je LBB0_757 + 0x4c, 0x89, 0xe0, //0x00004073 movq %r12, %rax + 0x4c, 0x29, 0xd8, //0x00004076 subq %r11, %rax + 0x44, 0x0f, 0xbc, 0xd2, //0x00004079 bsfl %edx, %r10d + 0x49, 0x01, 0xc2, //0x0000407d addq %rax, %r10 + 0x48, 0x83, 0x7d, 0x80, 0xff, //0x00004080 cmpq $-1, $-128(%rbp) + 0x0f, 0x85, 0x54, 0x06, 0x00, 0x00, //0x00004085 jne LBB0_839 + 0x4c, 0x89, 0x55, 0x80, //0x0000408b movq %r10, $-128(%rbp) + //0x0000408f LBB0_757 + 0x85, 0xf6, //0x0000408f testl %esi, %esi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00004091 je LBB0_760 + 0x4c, 0x89, 0xe0, //0x00004097 movq %r12, %rax + 0x4c, 0x29, 0xd8, //0x0000409a subq %r11, %rax + 0x44, 0x0f, 0xbc, 0xd6, //0x0000409d bsfl %esi, %r10d + 0x49, 0x01, 0xc2, //0x000040a1 addq %rax, %r10 + 0x48, 0x83, 0x7d, 0x88, 0xff, //0x000040a4 cmpq $-1, $-120(%rbp) + 0x0f, 0x85, 0x30, 0x06, 0x00, 0x00, //0x000040a9 jne LBB0_839 + 0x4c, 0x89, 0x55, 0x88, //0x000040af movq %r10, $-120(%rbp) + //0x000040b3 LBB0_760 + 0x83, 0xf9, 0x10, //0x000040b3 cmpl $16, %ecx + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x000040b6 jne LBB0_796 + 0x49, 0x83, 0xc4, 0x10, //0x000040bc addq $16, %r12 + 0x49, 0x83, 0xc7, 0xf0, //0x000040c0 addq $-16, %r15 + 0x49, 0x83, 0xff, 0x0f, //0x000040c4 cmpq $15, %r15 + 0x0f, 0x87, 0xd4, 0xfe, 0xff, 0xff, //0x000040c8 ja LBB0_746 + 0x4d, 0x85, 0xc0, //0x000040ce testq %r8, %r8 + 0x48, 0x8d, 0x3d, 0x88, 0x1c, 0x00, 0x00, //0x000040d1 leaq $7304(%rip), %rdi /* LJTI0_4+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0x80, //0x000040d8 movq $-128(%rbp), %r15 + 0x48, 0x8b, 0x5d, 0x88, //0x000040dc movq $-120(%rbp), %rbx + 0x0f, 0x84, 0x9c, 0x01, 0x00, 0x00, //0x000040e0 je LBB0_797 + //0x000040e6 LBB0_763 + 0x4b, 0x8d, 0x4c, 0x05, 0x00, //0x000040e6 leaq (%r13,%r8), %rcx + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000040eb jmp LBB0_765 + //0x000040f0 LBB0_764 + 0x49, 0x89, 0xd5, //0x000040f0 movq %rdx, %r13 + 0x49, 0xff, 0xc8, //0x000040f3 decq %r8 + 0x0f, 0x84, 0x20, 0x07, 0x00, 0x00, //0x000040f6 je LBB0_844 + //0x000040fc LBB0_765 + 0x41, 0x0f, 0xbe, 0x75, 0x00, //0x000040fc movsbl (%r13), %esi + 0x83, 0xc6, 0xd5, //0x00004101 addl $-43, %esi + 0x83, 0xfe, 0x3a, //0x00004104 cmpl $58, %esi + 0x0f, 0x87, 0x75, 0x01, 0x00, 0x00, //0x00004107 ja LBB0_797 + 0x49, 0x8d, 0x55, 0x01, //0x0000410d leaq $1(%r13), %rdx + 0x48, 0x63, 0x04, 0xb7, //0x00004111 movslq (%rdi,%rsi,4), %rax + 0x48, 0x01, 0xf8, //0x00004115 addq %rdi, %rax + 0xff, 0xe0, //0x00004118 jmpq *%rax + //0x0000411a LBB0_767 + 0x49, 0x89, 0xd2, //0x0000411a movq %rdx, %r10 + 0x4d, 0x29, 0xda, //0x0000411d subq %r11, %r10 + 0x48, 0x83, 0xfb, 0xff, //0x00004120 cmpq $-1, %rbx + 0x0f, 0x85, 0x9a, 0x07, 0x00, 0x00, //0x00004124 jne LBB0_852 + 0x49, 0xff, 0xca, //0x0000412a decq %r10 + 0x4c, 0x89, 0xd3, //0x0000412d movq %r10, %rbx + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00004130 jmp LBB0_764 + //0x00004135 LBB0_769 + 0x49, 0x89, 0xd2, //0x00004135 movq %rdx, %r10 + 0x4d, 0x29, 0xda, //0x00004138 subq %r11, %r10 + 0x49, 0x83, 0xff, 0xff, //0x0000413b cmpq $-1, %r15 + 0x0f, 0x85, 0x7f, 0x07, 0x00, 0x00, //0x0000413f jne LBB0_852 + 0x49, 0xff, 0xca, //0x00004145 decq %r10 + 0x4d, 0x89, 0xd7, //0x00004148 movq %r10, %r15 + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x0000414b jmp LBB0_764 + //0x00004150 LBB0_771 + 0x49, 0x89, 0xd2, //0x00004150 movq %rdx, %r10 + 0x4d, 0x29, 0xda, //0x00004153 subq %r11, %r10 + 0x49, 0x83, 0xfe, 0xff, //0x00004156 cmpq $-1, %r14 + 0x0f, 0x85, 0x64, 0x07, 0x00, 0x00, //0x0000415a jne LBB0_852 + 0x49, 0xff, 0xca, //0x00004160 decq %r10 + 0x4d, 0x89, 0xd6, //0x00004163 movq %r10, %r14 + 0xe9, 0x85, 0xff, 0xff, 0xff, //0x00004166 jmp LBB0_764 + //0x0000416b LBB0_773 + 0x49, 0x8b, 0x06, //0x0000416b movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000416e cmpq $4095, %rax + 0x0f, 0x8f, 0x24, 0x09, 0x00, 0x00, //0x00004174 jg LBB0_955 + 0x48, 0x8d, 0x48, 0x01, //0x0000417a leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x0000417e movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004181 movq $5, $8(%r14,%rax,8) + 0xe9, 0x61, 0xf2, 0xff, 0xff, //0x0000418a jmp LBB0_584 + //0x0000418f LBB0_775 + 0x49, 0x8b, 0x06, //0x0000418f movq (%r14), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004192 cmpq $4095, %rax + 0x0f, 0x8f, 0x00, 0x09, 0x00, 0x00, //0x00004198 jg LBB0_955 + 0x48, 0x8d, 0x48, 0x01, //0x0000419e leaq $1(%rax), %rcx + 0x49, 0x89, 0x0e, //0x000041a2 movq %rcx, (%r14) + 0x49, 0xc7, 0x44, 0xc6, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000041a5 movq $6, $8(%r14,%rax,8) + 0xe9, 0x3d, 0xf2, 0xff, 0xff, //0x000041ae jmp LBB0_584 + //0x000041b3 LBB0_777 + 0x49, 0x8b, 0x55, 0x08, //0x000041b3 movq $8(%r13), %rdx + 0x48, 0x8d, 0x42, 0xfc, //0x000041b7 leaq $-4(%rdx), %rax + 0x49, 0x39, 0xc1, //0x000041bb cmpq %rax, %r9 + 0x0f, 0x83, 0x21, 0x13, 0x00, 0x00, //0x000041be jae LBB0_956 + 0x43, 0x8b, 0x14, 0x17, //0x000041c4 movl (%r15,%r10), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x000041c8 cmpl $1702063201, %edx + 0x0f, 0x85, 0xa4, 0x13, 0x00, 0x00, //0x000041ce jne LBB0_961 + 0x4c, 0x89, 0xd0, //0x000041d4 movq %r10, %rax + 0x4d, 0x8d, 0x51, 0x05, //0x000041d7 leaq $5(%r9), %r10 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x000041db jmp LBB0_790 + //0x000041e0 LBB0_780 + 0x49, 0x8b, 0x55, 0x08, //0x000041e0 movq $8(%r13), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x000041e4 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc1, //0x000041e8 cmpq %rax, %r9 + 0x0f, 0x83, 0xf4, 0x12, 0x00, 0x00, //0x000041eb jae LBB0_956 + 0x41, 0x81, 0x3c, 0x24, 0x6e, 0x75, 0x6c, 0x6c, //0x000041f1 cmpl $1819047278, (%r12) + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000041f9 je LBB0_789 + 0xe9, 0xc6, 0x13, 0x00, 0x00, //0x000041ff jmp LBB0_782 + //0x00004204 LBB0_787 + 0x49, 0x8b, 0x55, 0x08, //0x00004204 movq $8(%r13), %rdx + 0x48, 0x8d, 0x42, 0xfd, //0x00004208 leaq $-3(%rdx), %rax + 0x49, 0x39, 0xc1, //0x0000420c cmpq %rax, %r9 + 0x0f, 0x83, 0xd0, 0x12, 0x00, 0x00, //0x0000420f jae LBB0_956 + 0x41, 0x81, 0x3c, 0x24, 0x74, 0x72, 0x75, 0x65, //0x00004215 cmpl $1702195828, (%r12) + 0x0f, 0x85, 0x02, 0x13, 0x00, 0x00, //0x0000421d jne LBB0_957 + //0x00004223 LBB0_789 + 0x4c, 0x89, 0xd0, //0x00004223 movq %r10, %rax + 0x4d, 0x8d, 0x51, 0x04, //0x00004226 leaq $4(%r9), %r10 + //0x0000422a LBB0_790 + 0x4d, 0x89, 0x13, //0x0000422a movq %r10, (%r11) + 0x4c, 0x89, 0xc9, //0x0000422d movq %r9, %rcx + 0x48, 0x85, 0xc0, //0x00004230 testq %rax, %rax + 0x0f, 0x8f, 0xb7, 0xf1, 0xff, 0xff, //0x00004233 jg LBB0_584 + 0xe9, 0x11, 0xf0, 0xff, 0xff, //0x00004239 jmp LBB0_558 + //0x0000423e LBB0_792 + 0x48, 0x0f, 0xbc, 0xc6, //0x0000423e bsfq %rsi, %rax + 0x4c, 0x03, 0x55, 0xa0, //0x00004242 addq $-96(%rbp), %r10 + 0x49, 0x01, 0xc2, //0x00004246 addq %rax, %r10 + 0x4c, 0x8b, 0x75, 0xa8, //0x00004249 movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x0000424d movq $-72(%rbp), %r15 + 0x4d, 0x85, 0xd2, //0x00004251 testq %r10, %r10 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00004254 movq $-64(%rbp), %r13 + 0x0f, 0x88, 0x52, 0x12, 0x00, 0x00, //0x00004258 js LBB0_939 + //0x0000425e LBB0_795 + 0x4d, 0x89, 0x13, //0x0000425e movq %r10, (%r11) + 0x4c, 0x89, 0xc9, //0x00004261 movq %r9, %rcx + 0x48, 0x83, 0x7d, 0xc8, 0x00, //0x00004264 cmpq $0, $-56(%rbp) + 0x0f, 0x8f, 0x81, 0xf1, 0xff, 0xff, //0x00004269 jg LBB0_584 + 0xe9, 0xdb, 0xef, 0xff, 0xff, //0x0000426f jmp LBB0_558 + //0x00004274 LBB0_796 + 0x49, 0x01, 0xcc, //0x00004274 addq %rcx, %r12 + 0x4d, 0x89, 0xe5, //0x00004277 movq %r12, %r13 + 0x4c, 0x8b, 0x7d, 0x80, //0x0000427a movq $-128(%rbp), %r15 + 0x48, 0x8b, 0x5d, 0x88, //0x0000427e movq $-120(%rbp), %rbx + //0x00004282 LBB0_797 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00004282 movq $-1, %r10 + 0x4d, 0x85, 0xff, //0x00004289 testq %r15, %r15 + 0x0f, 0x84, 0x8b, 0x12, 0x00, 0x00, //0x0000428c je LBB0_954 + //0x00004292 LBB0_798 + 0x48, 0x85, 0xdb, //0x00004292 testq %rbx, %rbx + 0x0f, 0x84, 0x82, 0x12, 0x00, 0x00, //0x00004295 je LBB0_954 + 0x4d, 0x85, 0xf6, //0x0000429b testq %r14, %r14 + 0x0f, 0x84, 0x79, 0x12, 0x00, 0x00, //0x0000429e je LBB0_954 + 0x4d, 0x29, 0xdd, //0x000042a4 subq %r11, %r13 + 0x49, 0x8d, 0x4d, 0xff, //0x000042a7 leaq $-1(%r13), %rcx + 0x49, 0x39, 0xcf, //0x000042ab cmpq %rcx, %r15 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x000042ae je LBB0_806 + 0x49, 0x39, 0xce, //0x000042b4 cmpq %rcx, %r14 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000042b7 je LBB0_806 + 0x48, 0x39, 0xcb, //0x000042bd cmpq %rcx, %rbx + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000042c0 je LBB0_806 + 0x48, 0x85, 0xdb, //0x000042c6 testq %rbx, %rbx + 0x0f, 0x8e, 0xda, 0x00, 0x00, 0x00, //0x000042c9 jle LBB0_808 + 0x48, 0x8d, 0x43, 0xff, //0x000042cf leaq $-1(%rbx), %rax + 0x49, 0x39, 0xc7, //0x000042d3 cmpq %rax, %r15 + 0x0f, 0x84, 0xcd, 0x00, 0x00, 0x00, //0x000042d6 je LBB0_808 + 0x48, 0xf7, 0xd3, //0x000042dc notq %rbx + 0x49, 0x89, 0xda, //0x000042df movq %rbx, %r10 + 0x4d, 0x85, 0xd2, //0x000042e2 testq %r10, %r10 + 0x0f, 0x89, 0x00, 0x04, 0x00, 0x00, //0x000042e5 jns LBB0_822 + 0xe9, 0x2d, 0x12, 0x00, 0x00, //0x000042eb jmp LBB0_954 + //0x000042f0 LBB0_806 + 0x49, 0xf7, 0xdd, //0x000042f0 negq %r13 + 0x4d, 0x89, 0xea, //0x000042f3 movq %r13, %r10 + 0x4d, 0x85, 0xd2, //0x000042f6 testq %r10, %r10 + 0x0f, 0x89, 0xec, 0x03, 0x00, 0x00, //0x000042f9 jns LBB0_822 + 0xe9, 0x19, 0x12, 0x00, 0x00, //0x000042ff jmp LBB0_954 + //0x00004304 LBB0_632 + 0x4c, 0x8b, 0x55, 0x88, //0x00004304 movq $-120(%rbp), %r10 + 0x4c, 0x8b, 0x45, 0x80, //0x00004308 movq $-128(%rbp), %r8 + 0x49, 0x83, 0xf8, 0x20, //0x0000430c cmpq $32, %r8 + 0x0f, 0x82, 0xb3, 0x04, 0x00, 0x00, //0x00004310 jb LBB0_841 + //0x00004316 LBB0_633 + 0xf3, 0x41, 0x0f, 0x6f, 0x12, //0x00004316 movdqu (%r10), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x62, 0x10, //0x0000431b movdqu $16(%r10), %xmm4 + 0x66, 0x0f, 0x6f, 0xea, //0x00004321 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00004325 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00004329 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xec, //0x0000432d movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00004331 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00004335 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x74, 0xd1, //0x00004339 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x0000433d pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xe1, //0x00004341 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00004345 pmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe6, 0x10, //0x00004349 shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x0000434d shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00004351 orq %rcx, %rdi + 0x49, 0x83, 0xff, 0xff, //0x00004354 cmpq $-1, %r15 + 0x0f, 0x85, 0x77, 0x00, 0x00, 0x00, //0x00004358 jne LBB0_811 + 0x48, 0x85, 0xff, //0x0000435e testq %rdi, %rdi + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004361 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x75, 0xa8, //0x00004365 movq $-88(%rbp), %r14 + 0x0f, 0x85, 0xaa, 0x05, 0x00, 0x00, //0x00004369 jne LBB0_853 + 0x48, 0x09, 0xde, //0x0000436f orq %rbx, %rsi + 0x48, 0x89, 0xf9, //0x00004372 movq %rdi, %rcx + 0x4c, 0x09, 0xe9, //0x00004375 orq %r13, %rcx + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x00004378 jne LBB0_812 + //0x0000437e LBB0_636 + 0x48, 0x85, 0xf6, //0x0000437e testq %rsi, %rsi + 0x0f, 0x84, 0x9e, 0x00, 0x00, 0x00, //0x00004381 je LBB0_813 + //0x00004387 LBB0_637 + 0x48, 0x0f, 0xbc, 0xce, //0x00004387 bsfq %rsi, %rcx + 0x4c, 0x03, 0x55, 0xa0, //0x0000438b addq $-96(%rbp), %r10 + 0x49, 0x01, 0xca, //0x0000438f addq %rcx, %r10 + 0xe9, 0xf0, 0xf6, 0xff, 0xff, //0x00004392 jmp LBB0_646 + //0x00004397 LBB0_807 + 0x4c, 0x29, 0xe3, //0x00004397 subq %r12, %rbx + 0x44, 0x0f, 0xbc, 0xd2, //0x0000439a bsfl %edx, %r10d + 0x49, 0x01, 0xda, //0x0000439e addq %rbx, %r10 + 0x49, 0xf7, 0xd2, //0x000043a1 notq %r10 + 0xe9, 0xa1, 0xf9, 0xff, 0xff, //0x000043a4 jmp LBB0_720 + //0x000043a9 LBB0_808 + 0x4c, 0x89, 0xf1, //0x000043a9 movq %r14, %rcx + 0x4c, 0x09, 0xf9, //0x000043ac orq %r15, %rcx + 0x4d, 0x39, 0xfe, //0x000043af cmpq %r15, %r14 + 0x0f, 0x8c, 0x99, 0x01, 0x00, 0x00, //0x000043b2 jl LBB0_820 + 0x48, 0x85, 0xc9, //0x000043b8 testq %rcx, %rcx + 0x0f, 0x88, 0x90, 0x01, 0x00, 0x00, //0x000043bb js LBB0_820 + 0x49, 0xf7, 0xd6, //0x000043c1 notq %r14 + 0x4d, 0x89, 0xf2, //0x000043c4 movq %r14, %r10 + 0x4d, 0x85, 0xd2, //0x000043c7 testq %r10, %r10 + 0x0f, 0x89, 0x1b, 0x03, 0x00, 0x00, //0x000043ca jns LBB0_822 + 0xe9, 0x48, 0x11, 0x00, 0x00, //0x000043d0 jmp LBB0_954 + //0x000043d5 LBB0_811 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000043d5 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x75, 0xa8, //0x000043d9 movq $-88(%rbp), %r14 + 0x48, 0x09, 0xde, //0x000043dd orq %rbx, %rsi + 0x48, 0x89, 0xf9, //0x000043e0 movq %rdi, %rcx + 0x4c, 0x09, 0xe9, //0x000043e3 orq %r13, %rcx + 0x0f, 0x84, 0x92, 0xff, 0xff, 0xff, //0x000043e6 je LBB0_636 + //0x000043ec LBB0_812 + 0x44, 0x89, 0xe9, //0x000043ec movl %r13d, %ecx + 0xf7, 0xd1, //0x000043ef notl %ecx + 0x21, 0xf9, //0x000043f1 andl %edi, %ecx + 0x8d, 0x1c, 0x09, //0x000043f3 leal (%rcx,%rcx), %ebx + 0x44, 0x09, 0xeb, //0x000043f6 orl %r13d, %ebx + 0x89, 0xda, //0x000043f9 movl %ebx, %edx + 0xf7, 0xd2, //0x000043fb notl %edx + 0x21, 0xfa, //0x000043fd andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x000043ff andl $-1431655766, %edx + 0x45, 0x31, 0xed, //0x00004405 xorl %r13d, %r13d + 0x01, 0xca, //0x00004408 addl %ecx, %edx + 0x41, 0x0f, 0x92, 0xc5, //0x0000440a setb %r13b + 0x01, 0xd2, //0x0000440e addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00004410 xorl $1431655765, %edx + 0x21, 0xda, //0x00004416 andl %ebx, %edx + 0xf7, 0xd2, //0x00004418 notl %edx + 0x21, 0xd6, //0x0000441a andl %edx, %esi + 0x48, 0x85, 0xf6, //0x0000441c testq %rsi, %rsi + 0x0f, 0x85, 0x62, 0xff, 0xff, 0xff, //0x0000441f jne LBB0_637 + //0x00004425 LBB0_813 + 0x49, 0x83, 0xc2, 0x20, //0x00004425 addq $32, %r10 + 0x49, 0x83, 0xc0, 0xe0, //0x00004429 addq $-32, %r8 + 0x4d, 0x85, 0xed, //0x0000442d testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x03, 0x00, 0x00, //0x00004430 jne LBB0_842 + //0x00004436 LBB0_814 + 0x4c, 0x89, 0xfa, //0x00004436 movq %r15, %rdx + 0x4d, 0x85, 0xc0, //0x00004439 testq %r8, %r8 + 0x0f, 0x84, 0x7c, 0x06, 0x00, 0x00, //0x0000443c je LBB0_873 + //0x00004442 LBB0_815 + 0x49, 0x8d, 0x72, 0x01, //0x00004442 leaq $1(%r10), %rsi + 0x41, 0x0f, 0xb6, 0x1a, //0x00004446 movzbl (%r10), %ebx + 0x80, 0xfb, 0x22, //0x0000444a cmpb $34, %bl + 0x0f, 0x84, 0x2f, 0x01, 0x00, 0x00, //0x0000444d je LBB0_824 + 0x49, 0x8d, 0x78, 0xff, //0x00004453 leaq $-1(%r8), %rdi + 0x80, 0xfb, 0x5c, //0x00004457 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000445a je LBB0_818 + 0x49, 0x89, 0xf8, //0x00004460 movq %rdi, %r8 + 0x49, 0x89, 0xf2, //0x00004463 movq %rsi, %r10 + 0x48, 0x85, 0xff, //0x00004466 testq %rdi, %rdi + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00004469 jne LBB0_815 + 0xe9, 0x4a, 0x06, 0x00, 0x00, //0x0000446f jmp LBB0_873 + //0x00004474 LBB0_818 + 0x48, 0x85, 0xff, //0x00004474 testq %rdi, %rdi + 0x0f, 0x84, 0xf2, 0x12, 0x00, 0x00, //0x00004477 je LBB0_983 + 0x48, 0x03, 0x75, 0xb0, //0x0000447d addq $-80(%rbp), %rsi + 0x48, 0x83, 0xfa, 0xff, //0x00004481 cmpq $-1, %rdx + 0x4c, 0x0f, 0x44, 0xfe, //0x00004485 cmoveq %rsi, %r15 + 0x48, 0x0f, 0x44, 0xd6, //0x00004489 cmoveq %rsi, %rdx + 0x49, 0x83, 0xc2, 0x02, //0x0000448d addq $2, %r10 + 0x49, 0x83, 0xc0, 0xfe, //0x00004491 addq $-2, %r8 + 0x4c, 0x89, 0xc7, //0x00004495 movq %r8, %rdi + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004498 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x75, 0xa8, //0x0000449c movq $-88(%rbp), %r14 + 0x48, 0x85, 0xff, //0x000044a0 testq %rdi, %rdi + 0x0f, 0x85, 0x99, 0xff, 0xff, 0xff, //0x000044a3 jne LBB0_815 + 0xe9, 0x10, 0x06, 0x00, 0x00, //0x000044a9 jmp LBB0_873 + //0x000044ae LBB0_694 + 0x4c, 0x8b, 0x55, 0x80, //0x000044ae movq $-128(%rbp), %r10 + 0x4d, 0x89, 0xf5, //0x000044b2 movq %r14, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x000044b5 cmpq $32, %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x000044b9 movq $-88(%rbp), %r14 + 0x0f, 0x82, 0xb1, 0x03, 0x00, 0x00, //0x000044bd jb LBB0_847 + //0x000044c3 LBB0_695 + 0xf3, 0x41, 0x0f, 0x6f, 0x12, //0x000044c3 movdqu (%r10), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x62, 0x10, //0x000044c8 movdqu $16(%r10), %xmm4 + 0x66, 0x0f, 0x6f, 0xea, //0x000044ce movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000044d2 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x000044d6 pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x000044da movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000044de pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x000044e2 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x74, 0xd1, //0x000044e6 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x000044ea pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x000044ee pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000044f2 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe6, 0x10, //0x000044f6 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x000044fa shlq $16, %rax + 0x48, 0x09, 0xc1, //0x000044fe orq %rax, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00004501 cmpq $-1, %r12 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00004505 jne LBB0_826 + 0x48, 0x85, 0xc9, //0x0000450b testq %rcx, %rcx + 0x4c, 0x8b, 0x5d, 0xd0, //0x0000450e movq $-48(%rbp), %r11 + 0x0f, 0x85, 0x23, 0x04, 0x00, 0x00, //0x00004512 jne LBB0_854 + 0x48, 0x09, 0xfe, //0x00004518 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x0000451b movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x0000451e orq %r15, %rax + 0x0f, 0x85, 0x93, 0x00, 0x00, 0x00, //0x00004521 jne LBB0_827 + //0x00004527 LBB0_698 + 0x48, 0x85, 0xf6, //0x00004527 testq %rsi, %rsi + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x0000452a je LBB0_828 + //0x00004530 LBB0_699 + 0x48, 0x0f, 0xbc, 0xc6, //0x00004530 bsfq %rsi, %rax + 0x4c, 0x03, 0x55, 0xa0, //0x00004534 addq $-96(%rbp), %r10 + 0x49, 0x01, 0xc2, //0x00004538 addq %rax, %r10 + 0x4c, 0x8b, 0x6d, 0xc0, //0x0000453b movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x7d, 0xb8, //0x0000453f movq $-72(%rbp), %r15 + 0x4d, 0x85, 0xd2, //0x00004543 testq %r10, %r10 + 0x0f, 0x89, 0x44, 0xf7, 0xff, 0xff, //0x00004546 jns LBB0_705 + 0xe9, 0x5f, 0x0f, 0x00, 0x00, //0x0000454c jmp LBB0_939 + //0x00004551 LBB0_820 + 0x48, 0x85, 0xc9, //0x00004551 testq %rcx, %rcx + 0x49, 0x8d, 0x47, 0xff, //0x00004554 leaq $-1(%r15), %rax + 0x49, 0xf7, 0xd7, //0x00004558 notq %r15 + 0x4d, 0x0f, 0x48, 0xfd, //0x0000455b cmovsq %r13, %r15 + 0x49, 0x39, 0xc6, //0x0000455f cmpq %rax, %r14 + 0x4d, 0x0f, 0x45, 0xfd, //0x00004562 cmovneq %r13, %r15 + 0x4d, 0x89, 0xfa, //0x00004566 movq %r15, %r10 + 0x4d, 0x85, 0xd2, //0x00004569 testq %r10, %r10 + 0x0f, 0x89, 0x79, 0x01, 0x00, 0x00, //0x0000456c jns LBB0_822 + 0xe9, 0xa6, 0x0f, 0x00, 0x00, //0x00004572 jmp LBB0_954 + //0x00004577 LBB0_823 + 0x48, 0xf7, 0xd2, //0x00004577 notq %rdx + 0x49, 0x89, 0xd2, //0x0000457a movq %rdx, %r10 + 0xe9, 0xc8, 0xf7, 0xff, 0xff, //0x0000457d jmp LBB0_720 + //0x00004582 LBB0_824 + 0x48, 0x2b, 0x75, 0xb8, //0x00004582 subq $-72(%rbp), %rsi + 0x49, 0x89, 0xf2, //0x00004586 movq %rsi, %r10 + 0xe9, 0xf9, 0xf4, 0xff, 0xff, //0x00004589 jmp LBB0_646 + //0x0000458e LBB0_825 + 0x48, 0x89, 0x4d, 0xc8, //0x0000458e movq %rcx, $-56(%rbp) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004592 movq $-1, %rcx + 0x4d, 0x85, 0xd2, //0x00004599 testq %r10, %r10 + 0x0f, 0x85, 0x3a, 0xf7, 0xff, 0xff, //0x0000459c jne LBB0_711 + 0xe9, 0x2c, 0x0f, 0x00, 0x00, //0x000045a2 jmp LBB0_943 + //0x000045a7 LBB0_826 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000045a7 movq $-48(%rbp), %r11 + 0x48, 0x09, 0xfe, //0x000045ab orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x000045ae movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x000045b1 orq %r15, %rax + 0x0f, 0x84, 0x6d, 0xff, 0xff, 0xff, //0x000045b4 je LBB0_698 + //0x000045ba LBB0_827 + 0x44, 0x89, 0xf8, //0x000045ba movl %r15d, %eax + 0xf7, 0xd0, //0x000045bd notl %eax + 0x21, 0xc8, //0x000045bf andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x000045c1 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x000045c4 orl %r15d, %edx + 0x89, 0xd7, //0x000045c7 movl %edx, %edi + 0xf7, 0xd7, //0x000045c9 notl %edi + 0x21, 0xcf, //0x000045cb andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000045cd andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x000045d3 xorl %r15d, %r15d + 0x01, 0xc7, //0x000045d6 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x000045d8 setb %r15b + 0x01, 0xff, //0x000045dc addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000045de xorl $1431655765, %edi + 0x21, 0xd7, //0x000045e4 andl %edx, %edi + 0xf7, 0xd7, //0x000045e6 notl %edi + 0x21, 0xfe, //0x000045e8 andl %edi, %esi + 0x48, 0x85, 0xf6, //0x000045ea testq %rsi, %rsi + 0x0f, 0x85, 0x3d, 0xff, 0xff, 0xff, //0x000045ed jne LBB0_699 + //0x000045f3 LBB0_828 + 0x49, 0x83, 0xc2, 0x20, //0x000045f3 addq $32, %r10 + 0x49, 0x83, 0xc5, 0xe0, //0x000045f7 addq $-32, %r13 + 0x4d, 0x85, 0xff, //0x000045fb testq %r15, %r15 + 0x0f, 0x85, 0x7d, 0x02, 0x00, 0x00, //0x000045fe jne LBB0_848 + //0x00004604 LBB0_829 + 0x4c, 0x89, 0xe7, //0x00004604 movq %r12, %rdi + 0x48, 0x8b, 0x45, 0xc0, //0x00004607 movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x7d, 0xb8, //0x0000460b movq $-72(%rbp), %r15 + 0x4d, 0x85, 0xed, //0x0000460f testq %r13, %r13 + 0x0f, 0x84, 0xa2, 0x0e, 0x00, 0x00, //0x00004612 je LBB0_940 + //0x00004618 LBB0_830 + 0x49, 0x8d, 0x4a, 0x01, //0x00004618 leaq $1(%r10), %rcx + 0x41, 0x0f, 0xb6, 0x12, //0x0000461c movzbl (%r10), %edx + 0x80, 0xfa, 0x22, //0x00004620 cmpb $34, %dl + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004623 je LBB0_836 + 0x49, 0x8d, 0x75, 0xff, //0x00004629 leaq $-1(%r13), %rsi + 0x80, 0xfa, 0x5c, //0x0000462d cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00004630 je LBB0_833 + 0x49, 0x89, 0xf5, //0x00004636 movq %rsi, %r13 + 0x49, 0x89, 0xca, //0x00004639 movq %rcx, %r10 + 0x48, 0x85, 0xf6, //0x0000463c testq %rsi, %rsi + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000463f jne LBB0_830 + 0xe9, 0x70, 0x0e, 0x00, 0x00, //0x00004645 jmp LBB0_940 + //0x0000464a LBB0_833 + 0x48, 0x85, 0xf6, //0x0000464a testq %rsi, %rsi + 0x0f, 0x84, 0x33, 0x04, 0x00, 0x00, //0x0000464d je LBB0_868 + 0x48, 0x03, 0x4d, 0xb0, //0x00004653 addq $-80(%rbp), %rcx + 0x48, 0x83, 0xff, 0xff, //0x00004657 cmpq $-1, %rdi + 0x4c, 0x0f, 0x44, 0xe1, //0x0000465b cmoveq %rcx, %r12 + 0x48, 0x0f, 0x44, 0xf9, //0x0000465f cmoveq %rcx, %rdi + 0x49, 0x83, 0xc2, 0x02, //0x00004663 addq $2, %r10 + 0x49, 0x83, 0xc5, 0xfe, //0x00004667 addq $-2, %r13 + 0x4c, 0x89, 0xee, //0x0000466b movq %r13, %rsi + 0x4c, 0x8b, 0x5d, 0xd0, //0x0000466e movq $-48(%rbp), %r11 + 0x48, 0x8b, 0x45, 0xc0, //0x00004672 movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x75, 0xa8, //0x00004676 movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x0000467a movq $-72(%rbp), %r15 + 0x48, 0x85, 0xf6, //0x0000467e testq %rsi, %rsi + 0x0f, 0x85, 0x91, 0xff, 0xff, 0xff, //0x00004681 jne LBB0_830 + 0xe9, 0x2e, 0x0e, 0x00, 0x00, //0x00004687 jmp LBB0_940 + //0x0000468c LBB0_835 + 0x48, 0xf7, 0xd2, //0x0000468c notq %rdx + 0x49, 0x89, 0xd2, //0x0000468f movq %rdx, %r10 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004692 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00004696 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x7d, 0xb8, //0x0000469a movq $-72(%rbp), %r15 + 0xe9, 0x2a, 0xed, 0xff, 0xff, //0x0000469e jmp LBB0_581 + //0x000046a3 LBB0_836 + 0x4c, 0x29, 0xf9, //0x000046a3 subq %r15, %rcx + 0x49, 0x89, 0xca, //0x000046a6 movq %rcx, %r10 + 0x49, 0x89, 0xc5, //0x000046a9 movq %rax, %r13 + 0x4d, 0x85, 0xd2, //0x000046ac testq %r10, %r10 + 0x0f, 0x89, 0xdb, 0xf5, 0xff, 0xff, //0x000046af jns LBB0_705 + 0xe9, 0xf6, 0x0d, 0x00, 0x00, //0x000046b5 jmp LBB0_939 + //0x000046ba LBB0_837 + 0x48, 0xf7, 0xd8, //0x000046ba negq %rax + 0x4c, 0x8b, 0x5d, 0xd0, //0x000046bd movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xc0, //0x000046c1 movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x000046c5 movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x000046c9 movq $-72(%rbp), %r15 + 0x49, 0x89, 0xc2, //0x000046cd movq %rax, %r10 + 0xe9, 0xf8, 0xec, 0xff, 0xff, //0x000046d0 jmp LBB0_581 + //0x000046d5 LBB0_838 + 0x4d, 0x29, 0xdc, //0x000046d5 subq %r11, %r12 + 0x44, 0x0f, 0xbc, 0xd7, //0x000046d8 bsfl %edi, %r10d + 0x4d, 0x01, 0xe2, //0x000046dc addq %r12, %r10 + //0x000046df LBB0_839 + 0x49, 0xf7, 0xd2, //0x000046df notq %r10 + 0x4d, 0x85, 0xd2, //0x000046e2 testq %r10, %r10 + 0x0f, 0x88, 0x32, 0x0e, 0x00, 0x00, //0x000046e5 js LBB0_954 + //0x000046eb LBB0_822 + 0x48, 0x8b, 0x45, 0xc8, //0x000046eb movq $-56(%rbp), %rax + 0x49, 0x01, 0xc2, //0x000046ef addq %rax, %r10 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000046f2 movq $-48(%rbp), %r11 + 0x4d, 0x89, 0x13, //0x000046f6 movq %r10, (%r11) + 0x4c, 0x89, 0xc9, //0x000046f9 movq %r9, %rcx + 0x48, 0x85, 0xc0, //0x000046fc testq %rax, %rax + 0x4c, 0x8b, 0x6d, 0xc0, //0x000046ff movq $-64(%rbp), %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x00004703 movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x00004707 movq $-72(%rbp), %r15 + 0x0f, 0x8f, 0xdf, 0xec, 0xff, 0xff, //0x0000470b jg LBB0_584 + 0xe9, 0x39, 0xeb, 0xff, 0xff, //0x00004711 jmp LBB0_558 + //0x00004716 LBB0_732 + 0x4c, 0x8b, 0x55, 0x80, //0x00004716 movq $-128(%rbp), %r10 + 0x4d, 0x89, 0xf5, //0x0000471a movq %r14, %r13 + 0x49, 0x83, 0xfd, 0x20, //0x0000471d cmpq $32, %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x00004721 movq $-88(%rbp), %r14 + 0x0f, 0x82, 0x90, 0x02, 0x00, 0x00, //0x00004725 jb LBB0_858 + //0x0000472b LBB0_733 + 0xf3, 0x41, 0x0f, 0x6f, 0x12, //0x0000472b movdqu (%r10), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x62, 0x10, //0x00004730 movdqu $16(%r10), %xmm4 + 0x66, 0x0f, 0x6f, 0xea, //0x00004736 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x0000473a pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x0000473e pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x00004742 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00004746 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x0000474a pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x74, 0xd1, //0x0000474e pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00004752 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00004756 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x0000475a pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe6, 0x10, //0x0000475e shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00004762 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00004766 orq %rax, %rcx + 0x49, 0x83, 0xfc, 0xff, //0x00004769 cmpq $-1, %r12 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000476d jne LBB0_735 + 0x48, 0x85, 0xc9, //0x00004773 testq %rcx, %rcx + 0x0f, 0x85, 0xe1, 0x01, 0x00, 0x00, //0x00004776 jne LBB0_855 + //0x0000477c LBB0_735 + 0x48, 0x09, 0xfe, //0x0000477c orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x0000477f movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00004782 orq %r15, %rax + 0x0f, 0x85, 0xef, 0x01, 0x00, 0x00, //0x00004785 jne LBB0_856 + //0x0000478b LBB0_736 + 0x48, 0x85, 0xf6, //0x0000478b testq %rsi, %rsi + 0x0f, 0x84, 0x1f, 0x02, 0x00, 0x00, //0x0000478e je LBB0_857 + //0x00004794 LBB0_737 + 0x48, 0x0f, 0xbc, 0xc6, //0x00004794 bsfq %rsi, %rax + 0x4c, 0x03, 0x55, 0xa0, //0x00004798 addq $-96(%rbp), %r10 + 0x49, 0x01, 0xc2, //0x0000479c addq %rax, %r10 + 0x4c, 0x8b, 0x7d, 0xb8, //0x0000479f movq $-72(%rbp), %r15 + 0x4d, 0x85, 0xd2, //0x000047a3 testq %r10, %r10 + 0x4c, 0x8b, 0x6d, 0xc0, //0x000047a6 movq $-64(%rbp), %r13 + 0x0f, 0x89, 0xae, 0xfa, 0xff, 0xff, //0x000047aa jns LBB0_795 + 0xe9, 0xfb, 0x0c, 0x00, 0x00, //0x000047b0 jmp LBB0_939 + //0x000047b5 LBB0_840 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000047b5 movq $-1, %r15 + 0x45, 0x31, 0xed, //0x000047bc xorl %r13d, %r13d + 0x49, 0x83, 0xf8, 0x20, //0x000047bf cmpq $32, %r8 + 0x0f, 0x83, 0x4d, 0xfb, 0xff, 0xff, //0x000047c3 jae LBB0_633 + //0x000047c9 LBB0_841 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000047c9 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x75, 0xa8, //0x000047cd movq $-88(%rbp), %r14 + 0x4d, 0x85, 0xed, //0x000047d1 testq %r13, %r13 + 0x0f, 0x84, 0x5c, 0xfc, 0xff, 0xff, //0x000047d4 je LBB0_814 + //0x000047da LBB0_842 + 0x48, 0x89, 0xc6, //0x000047da movq %rax, %rsi + 0x4d, 0x85, 0xc0, //0x000047dd testq %r8, %r8 + 0x0f, 0x84, 0x7d, 0x0f, 0x00, 0x00, //0x000047e0 je LBB0_982 + 0x48, 0x8b, 0x45, 0xb0, //0x000047e6 movq $-80(%rbp), %rax + 0x49, 0x8d, 0x0c, 0x02, //0x000047ea leaq (%r10,%rax), %rcx + 0x49, 0x83, 0xff, 0xff, //0x000047ee cmpq $-1, %r15 + 0x4c, 0x89, 0xfa, //0x000047f2 movq %r15, %rdx + 0x4c, 0x0f, 0x44, 0xf9, //0x000047f5 cmoveq %rcx, %r15 + 0x48, 0x0f, 0x44, 0xd1, //0x000047f9 cmoveq %rcx, %rdx + 0x49, 0xff, 0xc2, //0x000047fd incq %r10 + 0x49, 0xff, 0xc8, //0x00004800 decq %r8 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004803 movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x75, 0xa8, //0x00004807 movq $-88(%rbp), %r14 + 0x48, 0x89, 0xf0, //0x0000480b movq %rsi, %rax + 0x4d, 0x85, 0xc0, //0x0000480e testq %r8, %r8 + 0x0f, 0x85, 0x2b, 0xfc, 0xff, 0xff, //0x00004811 jne LBB0_815 + 0xe9, 0xa2, 0x02, 0x00, 0x00, //0x00004817 jmp LBB0_873 + //0x0000481c LBB0_844 + 0x49, 0x89, 0xcd, //0x0000481c movq %rcx, %r13 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000481f movq $-1, %r10 + 0x4d, 0x85, 0xff, //0x00004826 testq %r15, %r15 + 0x0f, 0x85, 0x63, 0xfa, 0xff, 0xff, //0x00004829 jne LBB0_798 + 0xe9, 0xe9, 0x0c, 0x00, 0x00, //0x0000482f jmp LBB0_954 + //0x00004834 LBB0_845 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004834 movq $-1, %r8 + 0x4c, 0x89, 0x65, 0xc8, //0x0000483b movq %r12, $-56(%rbp) + 0x49, 0x89, 0xff, //0x0000483f movq %rdi, %r15 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00004842 movq $-1, %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00004849 movq $-1, %r11 + 0x48, 0x8d, 0x3d, 0xf5, 0x15, 0x00, 0x00, //0x00004850 leaq $5621(%rip), %rdi /* LJTI0_5+0(%rip) */ + 0xe9, 0x67, 0xf1, 0xff, 0xff, //0x00004857 jmp LBB0_672 + //0x0000485c LBB0_846 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000485c movq $-1, %r12 + 0x45, 0x31, 0xff, //0x00004863 xorl %r15d, %r15d + 0x49, 0x83, 0xfd, 0x20, //0x00004866 cmpq $32, %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x0000486a movq $-88(%rbp), %r14 + 0x0f, 0x83, 0x4f, 0xfc, 0xff, 0xff, //0x0000486e jae LBB0_695 + //0x00004874 LBB0_847 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004874 movq $-48(%rbp), %r11 + 0x4d, 0x85, 0xff, //0x00004878 testq %r15, %r15 + 0x0f, 0x84, 0x83, 0xfd, 0xff, 0xff, //0x0000487b je LBB0_829 + //0x00004881 LBB0_848 + 0x4d, 0x85, 0xed, //0x00004881 testq %r13, %r13 + 0x0f, 0x84, 0xfc, 0x01, 0x00, 0x00, //0x00004884 je LBB0_868 + 0x48, 0x8b, 0x45, 0xb0, //0x0000488a movq $-80(%rbp), %rax + 0x4c, 0x01, 0xd0, //0x0000488e addq %r10, %rax + 0x49, 0x83, 0xfc, 0xff, //0x00004891 cmpq $-1, %r12 + 0x4c, 0x89, 0xe7, //0x00004895 movq %r12, %rdi + 0x4c, 0x0f, 0x44, 0xe0, //0x00004898 cmoveq %rax, %r12 + 0x48, 0x0f, 0x44, 0xf8, //0x0000489c cmoveq %rax, %rdi + 0x49, 0xff, 0xc2, //0x000048a0 incq %r10 + 0x49, 0xff, 0xcd, //0x000048a3 decq %r13 + 0x4c, 0x8b, 0x5d, 0xd0, //0x000048a6 movq $-48(%rbp), %r11 + 0x48, 0x8b, 0x45, 0xc0, //0x000048aa movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x75, 0xa8, //0x000048ae movq $-88(%rbp), %r14 + 0x4c, 0x8b, 0x7d, 0xb8, //0x000048b2 movq $-72(%rbp), %r15 + 0x4d, 0x85, 0xed, //0x000048b6 testq %r13, %r13 + 0x0f, 0x85, 0x59, 0xfd, 0xff, 0xff, //0x000048b9 jne LBB0_830 + 0xe9, 0xf6, 0x0b, 0x00, 0x00, //0x000048bf jmp LBB0_940 + //0x000048c4 LBB0_852 + 0x49, 0xf7, 0xda, //0x000048c4 negq %r10 + 0x4d, 0x85, 0xd2, //0x000048c7 testq %r10, %r10 + 0x0f, 0x89, 0x1b, 0xfe, 0xff, 0xff, //0x000048ca jns LBB0_822 + 0xe9, 0x48, 0x0c, 0x00, 0x00, //0x000048d0 jmp LBB0_954 + //0x000048d5 LBB0_850 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000048d5 movq $-1, %r12 + 0x45, 0x31, 0xff, //0x000048dc xorl %r15d, %r15d + 0x49, 0x83, 0xfd, 0x20, //0x000048df cmpq $32, %r13 + 0x4c, 0x8b, 0x75, 0xa8, //0x000048e3 movq $-88(%rbp), %r14 + 0x0f, 0x83, 0x3e, 0xfe, 0xff, 0xff, //0x000048e7 jae LBB0_733 + 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x000048ed jmp LBB0_858 + //0x000048f2 LBB0_851 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000048f2 movq $-1, %r14 + 0x4d, 0x89, 0xdd, //0x000048f9 movq %r11, %r13 + 0x4d, 0x89, 0xf8, //0x000048fc movq %r15, %r8 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000048ff movq $-1, %r15 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00004906 movq $-1, %rbx + 0x48, 0x8d, 0x3d, 0x4c, 0x14, 0x00, 0x00, //0x0000490d leaq $5196(%rip), %rdi /* LJTI0_4+0(%rip) */ + 0xe9, 0xcd, 0xf7, 0xff, 0xff, //0x00004914 jmp LBB0_763 + //0x00004919 LBB0_853 + 0x4c, 0x89, 0xd1, //0x00004919 movq %r10, %rcx + 0x48, 0x2b, 0x4d, 0xb8, //0x0000491c subq $-72(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xff, //0x00004920 bsfq %rdi, %r15 + 0x49, 0x01, 0xcf, //0x00004924 addq %rcx, %r15 + 0x48, 0x09, 0xde, //0x00004927 orq %rbx, %rsi + 0x48, 0x89, 0xf9, //0x0000492a movq %rdi, %rcx + 0x4c, 0x09, 0xe9, //0x0000492d orq %r13, %rcx + 0x0f, 0x84, 0x48, 0xfa, 0xff, 0xff, //0x00004930 je LBB0_636 + 0xe9, 0xb1, 0xfa, 0xff, 0xff, //0x00004936 jmp LBB0_812 + //0x0000493b LBB0_854 + 0x4c, 0x89, 0xd0, //0x0000493b movq %r10, %rax + 0x48, 0x2b, 0x45, 0xb8, //0x0000493e subq $-72(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe1, //0x00004942 bsfq %rcx, %r12 + 0x49, 0x01, 0xc4, //0x00004946 addq %rax, %r12 + 0x48, 0x09, 0xfe, //0x00004949 orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x0000494c movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x0000494f orq %r15, %rax + 0x0f, 0x84, 0xcf, 0xfb, 0xff, 0xff, //0x00004952 je LBB0_698 + 0xe9, 0x5d, 0xfc, 0xff, 0xff, //0x00004958 jmp LBB0_827 + //0x0000495d LBB0_855 + 0x4c, 0x89, 0xd0, //0x0000495d movq %r10, %rax + 0x48, 0x2b, 0x45, 0xb8, //0x00004960 subq $-72(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xe1, //0x00004964 bsfq %rcx, %r12 + 0x49, 0x01, 0xc4, //0x00004968 addq %rax, %r12 + 0x48, 0x09, 0xfe, //0x0000496b orq %rdi, %rsi + 0x48, 0x89, 0xc8, //0x0000496e movq %rcx, %rax + 0x4c, 0x09, 0xf8, //0x00004971 orq %r15, %rax + 0x0f, 0x84, 0x11, 0xfe, 0xff, 0xff, //0x00004974 je LBB0_736 + //0x0000497a LBB0_856 + 0x44, 0x89, 0xf8, //0x0000497a movl %r15d, %eax + 0xf7, 0xd0, //0x0000497d notl %eax + 0x21, 0xc8, //0x0000497f andl %ecx, %eax + 0x8d, 0x14, 0x00, //0x00004981 leal (%rax,%rax), %edx + 0x44, 0x09, 0xfa, //0x00004984 orl %r15d, %edx + 0x89, 0xd7, //0x00004987 movl %edx, %edi + 0xf7, 0xd7, //0x00004989 notl %edi + 0x21, 0xcf, //0x0000498b andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000498d andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00004993 xorl %r15d, %r15d + 0x01, 0xc7, //0x00004996 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x00004998 setb %r15b + 0x01, 0xff, //0x0000499c addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000499e xorl $1431655765, %edi + 0x21, 0xd7, //0x000049a4 andl %edx, %edi + 0xf7, 0xd7, //0x000049a6 notl %edi + 0x21, 0xfe, //0x000049a8 andl %edi, %esi + 0x48, 0x85, 0xf6, //0x000049aa testq %rsi, %rsi + 0x0f, 0x85, 0xe1, 0xfd, 0xff, 0xff, //0x000049ad jne LBB0_737 + //0x000049b3 LBB0_857 + 0x49, 0x83, 0xc2, 0x20, //0x000049b3 addq $32, %r10 + 0x49, 0x83, 0xc5, 0xe0, //0x000049b7 addq $-32, %r13 + //0x000049bb LBB0_858 + 0x4d, 0x85, 0xff, //0x000049bb testq %r15, %r15 + 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x000049be jne LBB0_866 + 0x4c, 0x89, 0xe7, //0x000049c4 movq %r12, %rdi + 0x4d, 0x85, 0xed, //0x000049c7 testq %r13, %r13 + 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x000049ca je LBB0_868 + //0x000049d0 LBB0_860 + 0x49, 0x8d, 0x4a, 0x01, //0x000049d0 leaq $1(%r10), %rcx + 0x41, 0x0f, 0xb6, 0x12, //0x000049d4 movzbl (%r10), %edx + 0x80, 0xfa, 0x22, //0x000049d8 cmpb $34, %dl + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x000049db je LBB0_865 + 0x49, 0x8d, 0x75, 0xff, //0x000049e1 leaq $-1(%r13), %rsi + 0x80, 0xfa, 0x5c, //0x000049e5 cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000049e8 je LBB0_863 + 0x49, 0x89, 0xf5, //0x000049ee movq %rsi, %r13 + 0x49, 0x89, 0xca, //0x000049f1 movq %rcx, %r10 + 0x48, 0x85, 0xf6, //0x000049f4 testq %rsi, %rsi + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000049f7 jne LBB0_860 + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000049fd jmp LBB0_868 + //0x00004a02 LBB0_863 + 0x48, 0x85, 0xf6, //0x00004a02 testq %rsi, %rsi + 0x0f, 0x84, 0x7b, 0x00, 0x00, 0x00, //0x00004a05 je LBB0_868 + 0x48, 0x03, 0x4d, 0xb0, //0x00004a0b addq $-80(%rbp), %rcx + 0x48, 0x83, 0xff, 0xff, //0x00004a0f cmpq $-1, %rdi + 0x4c, 0x0f, 0x44, 0xe1, //0x00004a13 cmoveq %rcx, %r12 + 0x48, 0x0f, 0x44, 0xf9, //0x00004a17 cmoveq %rcx, %rdi + 0x49, 0x83, 0xc2, 0x02, //0x00004a1b addq $2, %r10 + 0x49, 0x83, 0xc5, 0xfe, //0x00004a1f addq $-2, %r13 + 0x4c, 0x89, 0xee, //0x00004a23 movq %r13, %rsi + 0x48, 0x85, 0xf6, //0x00004a26 testq %rsi, %rsi + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x00004a29 jne LBB0_860 + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00004a2f jmp LBB0_868 + //0x00004a34 LBB0_865 + 0x4c, 0x8b, 0x7d, 0xb8, //0x00004a34 movq $-72(%rbp), %r15 + 0x4c, 0x29, 0xf9, //0x00004a38 subq %r15, %rcx + 0x49, 0x89, 0xca, //0x00004a3b movq %rcx, %r10 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004a3e movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x75, 0xa8, //0x00004a42 movq $-88(%rbp), %r14 + 0x4d, 0x85, 0xd2, //0x00004a46 testq %r10, %r10 + 0x4c, 0x8b, 0x6d, 0xc0, //0x00004a49 movq $-64(%rbp), %r13 + 0x0f, 0x89, 0x0b, 0xf8, 0xff, 0xff, //0x00004a4d jns LBB0_795 + 0xe9, 0x58, 0x0a, 0x00, 0x00, //0x00004a53 jmp LBB0_939 + //0x00004a58 LBB0_866 + 0x4d, 0x85, 0xed, //0x00004a58 testq %r13, %r13 + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004a5b je LBB0_868 + 0x48, 0x8b, 0x45, 0xb0, //0x00004a61 movq $-80(%rbp), %rax + 0x4c, 0x01, 0xd0, //0x00004a65 addq %r10, %rax + 0x49, 0x83, 0xfc, 0xff, //0x00004a68 cmpq $-1, %r12 + 0x4c, 0x89, 0xe7, //0x00004a6c movq %r12, %rdi + 0x4c, 0x0f, 0x44, 0xe0, //0x00004a6f cmoveq %rax, %r12 + 0x48, 0x0f, 0x44, 0xf8, //0x00004a73 cmoveq %rax, %rdi + 0x49, 0xff, 0xc2, //0x00004a77 incq %r10 + 0x49, 0xff, 0xcd, //0x00004a7a decq %r13 + 0x4d, 0x85, 0xed, //0x00004a7d testq %r13, %r13 + 0x0f, 0x85, 0x4a, 0xff, 0xff, 0xff, //0x00004a80 jne LBB0_860 + //0x00004a86 LBB0_868 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00004a86 movq $-48(%rbp), %r11 + 0xe9, 0x2b, 0x0a, 0x00, 0x00, //0x00004a8a jmp LBB0_940 + //0x00004a8f LBB0_869 + 0x49, 0x89, 0x3b, //0x00004a8f movq %rdi, (%r11) + //0x00004a92 LBB0_870 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004a92 movq $-1, %rcx + 0xe9, 0xb1, 0xe7, 0xff, 0xff, //0x00004a99 jmp LBB0_558 + //0x00004a9e LBB0_955 + 0x48, 0xc7, 0xc1, 0xf9, 0xff, 0xff, 0xff, //0x00004a9e movq $-7, %rcx + 0xe9, 0xa5, 0xe7, 0xff, 0xff, //0x00004aa5 jmp LBB0_558 + //0x00004aaa LBB0_871 + 0x49, 0x8d, 0x44, 0x24, 0x04, //0x00004aaa leaq $4(%r12), %rax + 0xe9, 0x7c, 0x05, 0x00, 0x00, //0x00004aaf jmp LBB0_912 + //0x00004ab4 LBB0_872 + 0x49, 0x83, 0xfa, 0xff, //0x00004ab4 cmpq $-1, %r10 + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x00004ab8 jne LBB0_874 + //0x00004abe LBB0_873 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00004abe movq $-1, %r10 + 0x49, 0x89, 0xc7, //0x00004ac5 movq %rax, %r15 + //0x00004ac8 LBB0_874 + 0x4d, 0x89, 0x3b, //0x00004ac8 movq %r15, (%r11) + 0x4c, 0x89, 0xd1, //0x00004acb movq %r10, %rcx + 0xe9, 0x7c, 0xe7, 0xff, 0xff, //0x00004ace jmp LBB0_558 + //0x00004ad3 LBB0_875 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004ad3 movq $-1, %rcx + 0xe9, 0xf4, 0x09, 0x00, 0x00, //0x00004ada jmp LBB0_943 + //0x00004adf LBB0_876 + 0x4d, 0x89, 0x23, //0x00004adf movq %r12, (%r11) + 0xe9, 0x61, 0xe7, 0xff, 0xff, //0x00004ae2 jmp LBB0_557 + //0x00004ae7 LBB0_877 + 0x4d, 0x8b, 0x4d, 0x08, //0x00004ae7 movq $8(%r13), %r9 + 0x4d, 0x89, 0xce, //0x00004aeb movq %r9, %r14 + 0x49, 0x29, 0xfe, //0x00004aee subq %rdi, %r14 + 0x49, 0x83, 0xfe, 0x20, //0x00004af1 cmpq $32, %r14 + 0x0f, 0x8c, 0x0c, 0x0c, 0x00, 0x00, //0x00004af5 jl LBB0_975 + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x00004afb movl $4294967295, %r10d + 0x4f, 0x8d, 0x1c, 0x20, //0x00004b01 leaq (%r8,%r12), %r11 + 0x4d, 0x29, 0xe1, //0x00004b05 subq %r12, %r9 + 0xbe, 0x1f, 0x00, 0x00, 0x00, //0x00004b08 movl $31, %esi + 0x45, 0x31, 0xf6, //0x00004b0d xorl %r14d, %r14d + 0xf3, 0x0f, 0x6f, 0x05, 0x18, 0xb5, 0xff, 0xff, //0x00004b10 movdqu $-19176(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x20, 0xb5, 0xff, 0xff, //0x00004b18 movdqu $-19168(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x45, 0x31, 0xff, //0x00004b20 xorl %r15d, %r15d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00004b23 jmp LBB0_879 + //0x00004b28 LBB0_882 + 0x45, 0x31, 0xff, //0x00004b28 xorl %r15d, %r15d + 0x85, 0xff, //0x00004b2b testl %edi, %edi + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00004b2d jne LBB0_881 + //0x00004b33 LBB0_883 + 0x49, 0x83, 0xc6, 0x20, //0x00004b33 addq $32, %r14 + 0x49, 0x8d, 0x44, 0x31, 0xe0, //0x00004b37 leaq $-32(%r9,%rsi), %rax + 0x48, 0x83, 0xc6, 0xe0, //0x00004b3c addq $-32, %rsi + 0x48, 0x83, 0xf8, 0x3f, //0x00004b40 cmpq $63, %rax + 0x0f, 0x8e, 0x02, 0x0b, 0x00, 0x00, //0x00004b44 jle LBB0_884 + //0x00004b4a LBB0_879 + 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x33, 0x01, //0x00004b4a movdqu $1(%r11,%r14), %xmm2 + 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x33, 0x11, //0x00004b51 movdqu $17(%r11,%r14), %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00004b58 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00004b5c pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00004b60 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x6f, 0xe3, //0x00004b64 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00004b68 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00004b6c pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x00004b70 shlq $16, %rdi + 0x48, 0x09, 0xc7, //0x00004b74 orq %rax, %rdi + 0x66, 0x0f, 0x74, 0xd1, //0x00004b77 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00004b7b pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00004b7f pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00004b83 pmovmskb %xmm3, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x00004b87 shlq $16, %rax + 0x48, 0x09, 0xd8, //0x00004b8b orq %rbx, %rax + 0x48, 0x89, 0xc3, //0x00004b8e movq %rax, %rbx + 0x4c, 0x09, 0xfb, //0x00004b91 orq %r15, %rbx + 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x00004b94 je LBB0_882 + 0x44, 0x89, 0xfb, //0x00004b9a movl %r15d, %ebx + 0x44, 0x31, 0xd3, //0x00004b9d xorl %r10d, %ebx + 0x21, 0xd8, //0x00004ba0 andl %ebx, %eax + 0x8d, 0x1c, 0x00, //0x00004ba2 leal (%rax,%rax), %ebx + 0x44, 0x09, 0xfb, //0x00004ba5 orl %r15d, %ebx + 0x41, 0x8d, 0x92, 0xab, 0xaa, 0xaa, 0xaa, //0x00004ba8 leal $-1431655765(%r10), %edx + 0x31, 0xda, //0x00004baf xorl %ebx, %edx + 0x21, 0xc2, //0x00004bb1 andl %eax, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004bb3 andl $-1431655766, %edx + 0x45, 0x31, 0xff, //0x00004bb9 xorl %r15d, %r15d + 0x01, 0xc2, //0x00004bbc addl %eax, %edx + 0x41, 0x0f, 0x92, 0xc7, //0x00004bbe setb %r15b + 0x01, 0xd2, //0x00004bc2 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00004bc4 xorl $1431655765, %edx + 0x21, 0xda, //0x00004bca andl %ebx, %edx + 0x44, 0x31, 0xd2, //0x00004bcc xorl %r10d, %edx + 0x21, 0xd7, //0x00004bcf andl %edx, %edi + 0x85, 0xff, //0x00004bd1 testl %edi, %edi + 0x0f, 0x84, 0x5a, 0xff, 0xff, 0xff, //0x00004bd3 je LBB0_883 + //0x00004bd9 LBB0_881 + 0x48, 0x0f, 0xbc, 0xc7, //0x00004bd9 bsfq %rdi, %rax + 0x49, 0x01, 0xc3, //0x00004bdd addq %rax, %r11 + 0x4d, 0x01, 0xf3, //0x00004be0 addq %r14, %r11 + 0x4d, 0x29, 0xc3, //0x00004be3 subq %r8, %r11 + 0x49, 0x83, 0xc3, 0x02, //0x00004be6 addq $2, %r11 + 0x48, 0x8b, 0x45, 0xd0, //0x00004bea movq $-48(%rbp), %rax + 0x4c, 0x89, 0x18, //0x00004bee movq %r11, (%rax) + 0x4c, 0x89, 0xe1, //0x00004bf1 movq %r12, %rcx + 0xe9, 0x56, 0xe6, 0xff, 0xff, //0x00004bf4 jmp LBB0_558 + //0x00004bf9 LBB0_887 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00004bf9 movabsq $6148914691236517205, %r11 + 0x49, 0x8b, 0x45, 0x08, //0x00004c03 movq $8(%r13), %rax + 0x48, 0x29, 0xf8, //0x00004c07 subq %rdi, %rax + 0x49, 0x01, 0xf8, //0x00004c0a addq %rdi, %r8 + 0x45, 0x31, 0xff, //0x00004c0d xorl %r15d, %r15d + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x17, 0xb4, 0xff, 0xff, //0x00004c10 movdqu $-19433(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x1f, 0xb4, 0xff, 0xff, //0x00004c19 movdqu $-19425(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00004c21 pcmpeqd %xmm9, %xmm9 + 0xf3, 0x0f, 0x6f, 0x1d, 0x32, 0xb4, 0xff, 0xff, //0x00004c26 movdqu $-19406(%rip), %xmm3 /* LCPI0_6+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0x3a, 0xb4, 0xff, 0xff, //0x00004c2e movdqu $-19398(%rip), %xmm4 /* LCPI0_7+0(%rip) */ + 0x49, 0xbd, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00004c36 movabsq $3689348814741910323, %r13 + 0x66, 0x45, 0x0f, 0xef, 0xc0, //0x00004c40 pxor %xmm8, %xmm8 + 0x31, 0xd2, //0x00004c45 xorl %edx, %edx + 0x48, 0x89, 0x55, 0x98, //0x00004c47 movq %rdx, $-104(%rbp) + 0x45, 0x31, 0xf6, //0x00004c4b xorl %r14d, %r14d + 0x45, 0x31, 0xd2, //0x00004c4e xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x40, //0x00004c51 cmpq $64, %rax + 0x48, 0x89, 0x45, 0xc8, //0x00004c55 movq %rax, $-56(%rbp) + 0x4c, 0x89, 0x7d, 0x90, //0x00004c59 movq %r15, $-112(%rbp) + 0x0f, 0x8c, 0x75, 0x02, 0x00, 0x00, //0x00004c5d jl LBB0_896 + //0x00004c63 LBB0_890 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00004c63 movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00004c68 movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00004c6e movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00004c74 movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00004c7a movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00004c7e pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00004c83 pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x00004c88 movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00004c8c pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00004c91 pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd7, //0x00004c95 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00004c99 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00004c9e pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd6, //0x00004ca2 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00004ca6 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00004cab pmovmskb %xmm2, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x00004cb0 shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x00004cb4 shlq $32, %rdx + 0x48, 0xc1, 0xe7, 0x10, //0x00004cb8 shlq $16, %rdi + 0x49, 0x09, 0xff, //0x00004cbc orq %rdi, %r15 + 0x49, 0x09, 0xd7, //0x00004cbf orq %rdx, %r15 + 0x4d, 0x09, 0xcf, //0x00004cc2 orq %r9, %r15 + 0x66, 0x0f, 0x6f, 0xd0, //0x00004cc5 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00004cc9 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00004ccd pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd5, //0x00004cd1 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00004cd5 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00004cd9 pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd7, //0x00004cdd movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00004ce1 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00004ce5 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd6, //0x00004ce9 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00004ced pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00004cf1 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00004cf5 shlq $48, %rbx + 0x48, 0xc1, 0xe0, 0x20, //0x00004cf9 shlq $32, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00004cfd shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x00004d01 orq %rdx, %rdi + 0x48, 0x09, 0xc7, //0x00004d04 orq %rax, %rdi + 0x48, 0x09, 0xdf, //0x00004d07 orq %rbx, %rdi + 0x48, 0x89, 0xf8, //0x00004d0a movq %rdi, %rax + 0x48, 0x8b, 0x55, 0x98, //0x00004d0d movq $-104(%rbp), %rdx + 0x48, 0x09, 0xd0, //0x00004d11 orq %rdx, %rax + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00004d14 je LBB0_892 + 0x48, 0x89, 0xd0, //0x00004d1a movq %rdx, %rax + 0x48, 0xf7, 0xd0, //0x00004d1d notq %rax + 0x48, 0x21, 0xf8, //0x00004d20 andq %rdi, %rax + 0x48, 0x8d, 0x1c, 0x00, //0x00004d23 leaq (%rax,%rax), %rbx + 0x48, 0x09, 0xd3, //0x00004d27 orq %rdx, %rbx + 0x48, 0x89, 0xda, //0x00004d2a movq %rbx, %rdx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004d2d movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf2, //0x00004d37 xorq %rsi, %rdx + 0x48, 0x21, 0xf7, //0x00004d3a andq %rsi, %rdi + 0x48, 0x21, 0xd7, //0x00004d3d andq %rdx, %rdi + 0x31, 0xd2, //0x00004d40 xorl %edx, %edx + 0x48, 0x01, 0xc7, //0x00004d42 addq %rax, %rdi + 0x0f, 0x92, 0xc2, //0x00004d45 setb %dl + 0x48, 0x89, 0x55, 0x98, //0x00004d48 movq %rdx, $-104(%rbp) + 0x48, 0x01, 0xff, //0x00004d4c addq %rdi, %rdi + 0x4c, 0x31, 0xdf, //0x00004d4f xorq %r11, %rdi + 0x48, 0x21, 0xdf, //0x00004d52 andq %rbx, %rdi + 0x48, 0xf7, 0xd7, //0x00004d55 notq %rdi + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004d58 jmp LBB0_893 + //0x00004d5d LBB0_892 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004d5d movq $-1, %rdi + 0x31, 0xc0, //0x00004d64 xorl %eax, %eax + 0x48, 0x89, 0x45, 0x98, //0x00004d66 movq %rax, $-104(%rbp) + //0x00004d6a LBB0_893 + 0x48, 0x8b, 0x45, 0x90, //0x00004d6a movq $-112(%rbp), %rax + 0x4c, 0x21, 0xff, //0x00004d6e andq %r15, %rdi + 0x66, 0x48, 0x0f, 0x6e, 0xd7, //0x00004d71 movq %rdi, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00004d76 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd7, //0x00004d7d movq %xmm2, %r15 + 0x49, 0x31, 0xc7, //0x00004d82 xorq %rax, %r15 + 0x66, 0x0f, 0x6f, 0xd0, //0x00004d85 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00004d89 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00004d8d pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd5, //0x00004d91 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00004d95 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00004d99 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd7, //0x00004d9d movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00004da1 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00004da5 pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd6, //0x00004da9 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00004dad pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00004db1 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00004db5 shlq $48, %rbx + 0x48, 0xc1, 0xe2, 0x20, //0x00004db9 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00004dbd shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00004dc1 orq %rax, %rdi + 0x48, 0x09, 0xd7, //0x00004dc4 orq %rdx, %rdi + 0x48, 0x09, 0xdf, //0x00004dc7 orq %rbx, %rdi + 0x4d, 0x89, 0xf9, //0x00004dca movq %r15, %r9 + 0x49, 0xf7, 0xd1, //0x00004dcd notq %r9 + 0x4c, 0x21, 0xcf, //0x00004dd0 andq %r9, %rdi + 0x66, 0x0f, 0x74, 0xc4, //0x00004dd3 pcmpeqb %xmm4, %xmm0 + 0x66, 0x0f, 0xd7, 0xd0, //0x00004dd7 pmovmskb %xmm0, %edx + 0x66, 0x0f, 0x74, 0xec, //0x00004ddb pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00004ddf pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00004de3 pcmpeqb %xmm4, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00004de7 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x74, 0xf4, //0x00004deb pcmpeqb %xmm4, %xmm6 + 0x66, 0x0f, 0xd7, 0xc6, //0x00004def pmovmskb %xmm6, %eax + 0x48, 0xc1, 0xe0, 0x30, //0x00004df3 shlq $48, %rax + 0x48, 0xc1, 0xe6, 0x20, //0x00004df7 shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00004dfb shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00004dff orq %rbx, %rdx + 0x48, 0x09, 0xf2, //0x00004e02 orq %rsi, %rdx + 0x48, 0x09, 0xc2, //0x00004e05 orq %rax, %rdx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004e08 movabsq $1085102592571150095, %rbx + 0x4c, 0x21, 0xca, //0x00004e12 andq %r9, %rdx + 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x00004e15 je LBB0_888 + //0x00004e1b LBB0_894 + 0x4c, 0x8d, 0x4a, 0xff, //0x00004e1b leaq $-1(%rdx), %r9 + 0x4c, 0x89, 0xc8, //0x00004e1f movq %r9, %rax + 0x48, 0x21, 0xf8, //0x00004e22 andq %rdi, %rax + 0x48, 0x89, 0xc6, //0x00004e25 movq %rax, %rsi + 0x48, 0xd1, 0xee, //0x00004e28 shrq %rsi + 0x4c, 0x21, 0xde, //0x00004e2b andq %r11, %rsi + 0x48, 0x29, 0xf0, //0x00004e2e subq %rsi, %rax + 0x48, 0x89, 0xc6, //0x00004e31 movq %rax, %rsi + 0x4c, 0x21, 0xee, //0x00004e34 andq %r13, %rsi + 0x48, 0xc1, 0xe8, 0x02, //0x00004e37 shrq $2, %rax + 0x4c, 0x21, 0xe8, //0x00004e3b andq %r13, %rax + 0x48, 0x01, 0xf0, //0x00004e3e addq %rsi, %rax + 0x48, 0x89, 0xc6, //0x00004e41 movq %rax, %rsi + 0x48, 0xc1, 0xee, 0x04, //0x00004e44 shrq $4, %rsi + 0x48, 0x01, 0xc6, //0x00004e48 addq %rax, %rsi + 0x48, 0x21, 0xde, //0x00004e4b andq %rbx, %rsi + 0x48, 0xb8, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00004e4e movabsq $72340172838076673, %rax + 0x48, 0x0f, 0xaf, 0xf0, //0x00004e58 imulq %rax, %rsi + 0x48, 0xc1, 0xee, 0x38, //0x00004e5c shrq $56, %rsi + 0x4c, 0x01, 0xf6, //0x00004e60 addq %r14, %rsi + 0x4c, 0x39, 0xd6, //0x00004e63 cmpq %r10, %rsi + 0x0f, 0x86, 0x07, 0x06, 0x00, 0x00, //0x00004e66 jbe LBB0_938 + 0x49, 0xff, 0xc2, //0x00004e6c incq %r10 + 0x4c, 0x21, 0xca, //0x00004e6f andq %r9, %rdx + 0x0f, 0x85, 0xa3, 0xff, 0xff, 0xff, //0x00004e72 jne LBB0_894 + //0x00004e78 LBB0_888 + 0x49, 0xc1, 0xff, 0x3f, //0x00004e78 sarq $63, %r15 + 0x48, 0x89, 0xf8, //0x00004e7c movq %rdi, %rax + 0x48, 0xd1, 0xe8, //0x00004e7f shrq %rax + 0x4c, 0x21, 0xd8, //0x00004e82 andq %r11, %rax + 0x48, 0x29, 0xc7, //0x00004e85 subq %rax, %rdi + 0x48, 0x89, 0xf8, //0x00004e88 movq %rdi, %rax + 0x4c, 0x21, 0xe8, //0x00004e8b andq %r13, %rax + 0x48, 0xc1, 0xef, 0x02, //0x00004e8e shrq $2, %rdi + 0x4c, 0x21, 0xef, //0x00004e92 andq %r13, %rdi + 0x48, 0x01, 0xc7, //0x00004e95 addq %rax, %rdi + 0x48, 0x89, 0xf8, //0x00004e98 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x00004e9b shrq $4, %rax + 0x48, 0x01, 0xf8, //0x00004e9f addq %rdi, %rax + 0x48, 0x21, 0xd8, //0x00004ea2 andq %rbx, %rax + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00004ea5 movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xc2, //0x00004eaf imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x00004eb3 shrq $56, %rax + 0x49, 0x01, 0xc6, //0x00004eb7 addq %rax, %r14 + 0x49, 0x83, 0xc0, 0x40, //0x00004eba addq $64, %r8 + 0x48, 0x8b, 0x45, 0xc8, //0x00004ebe movq $-56(%rbp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x00004ec2 addq $-64, %rax + 0x48, 0x83, 0xf8, 0x40, //0x00004ec6 cmpq $64, %rax + 0x48, 0x89, 0x45, 0xc8, //0x00004eca movq %rax, $-56(%rbp) + 0x4c, 0x89, 0x7d, 0x90, //0x00004ece movq %r15, $-112(%rbp) + 0x0f, 0x8d, 0x8b, 0xfd, 0xff, 0xff, //0x00004ed2 jge LBB0_890 + //0x00004ed8 LBB0_896 + 0x48, 0x85, 0xc0, //0x00004ed8 testq %rax, %rax + 0x0f, 0x8e, 0x2e, 0x08, 0x00, 0x00, //0x00004edb jle LBB0_976 + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00004ee1 movdqu %xmm8, $-144(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00004eea movdqu %xmm8, $-160(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x00004ef3 movdqu %xmm8, $-176(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00004efc movdqu %xmm8, $-192(%rbp) + 0x44, 0x89, 0xc0, //0x00004f05 movl %r8d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00004f08 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00004f0d cmpl $4033, %eax + 0x0f, 0x82, 0x4b, 0xfd, 0xff, 0xff, //0x00004f12 jb LBB0_890 + 0x48, 0x83, 0x7d, 0xc8, 0x20, //0x00004f18 cmpq $32, $-56(%rbp) + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00004f1d jb LBB0_900 + 0x41, 0x0f, 0x10, 0x00, //0x00004f23 movups (%r8), %xmm0 + 0x0f, 0x11, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00004f27 movups %xmm0, $-192(%rbp) + 0xf3, 0x41, 0x0f, 0x6f, 0x40, 0x10, //0x00004f2e movdqu $16(%r8), %xmm0 + 0xf3, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x00004f34 movdqu %xmm0, $-176(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x00004f3c addq $32, %r8 + 0x48, 0x8b, 0x45, 0xc8, //0x00004f40 movq $-56(%rbp), %rax + 0x48, 0x8d, 0x78, 0xe0, //0x00004f44 leaq $-32(%rax), %rdi + 0x48, 0x8d, 0xb5, 0x60, 0xff, 0xff, 0xff, //0x00004f48 leaq $-160(%rbp), %rsi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00004f4f jmp LBB0_901 + //0x00004f54 LBB0_900 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x00004f54 leaq $-192(%rbp), %rsi + 0x48, 0x8b, 0x7d, 0xc8, //0x00004f5b movq $-56(%rbp), %rdi + //0x00004f5f LBB0_901 + 0x48, 0x83, 0xff, 0x10, //0x00004f5f cmpq $16, %rdi + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x00004f63 jb LBB0_902 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00004f69 movdqu (%r8), %xmm0 + 0xf3, 0x0f, 0x7f, 0x06, //0x00004f6e movdqu %xmm0, (%rsi) + 0x49, 0x83, 0xc0, 0x10, //0x00004f72 addq $16, %r8 + 0x48, 0x83, 0xc6, 0x10, //0x00004f76 addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x00004f7a addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x00004f7e cmpq $8, %rdi + 0x0f, 0x83, 0x47, 0x00, 0x00, 0x00, //0x00004f82 jae LBB0_907 + //0x00004f88 LBB0_903 + 0x48, 0x83, 0xff, 0x04, //0x00004f88 cmpq $4, %rdi + 0x0f, 0x8c, 0x59, 0x00, 0x00, 0x00, //0x00004f8c jl LBB0_904 + //0x00004f92 LBB0_908 + 0x41, 0x8b, 0x00, //0x00004f92 movl (%r8), %eax + 0x89, 0x06, //0x00004f95 movl %eax, (%rsi) + 0x49, 0x83, 0xc0, 0x04, //0x00004f97 addq $4, %r8 + 0x48, 0x83, 0xc6, 0x04, //0x00004f9b addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x00004f9f addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00004fa3 cmpq $2, %rdi + 0x0f, 0x83, 0x48, 0x00, 0x00, 0x00, //0x00004fa7 jae LBB0_909 + //0x00004fad LBB0_905 + 0x4c, 0x89, 0xc2, //0x00004fad movq %r8, %rdx + 0x4c, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00004fb0 leaq $-192(%rbp), %r8 + 0x48, 0x85, 0xff, //0x00004fb7 testq %rdi, %rdi + 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x00004fba jne LBB0_910 + 0xe9, 0x9e, 0xfc, 0xff, 0xff, //0x00004fc0 jmp LBB0_890 + //0x00004fc5 LBB0_902 + 0x48, 0x83, 0xff, 0x08, //0x00004fc5 cmpq $8, %rdi + 0x0f, 0x82, 0xb9, 0xff, 0xff, 0xff, //0x00004fc9 jb LBB0_903 + //0x00004fcf LBB0_907 + 0x49, 0x8b, 0x00, //0x00004fcf movq (%r8), %rax + 0x48, 0x89, 0x06, //0x00004fd2 movq %rax, (%rsi) + 0x49, 0x83, 0xc0, 0x08, //0x00004fd5 addq $8, %r8 + 0x48, 0x83, 0xc6, 0x08, //0x00004fd9 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x00004fdd addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00004fe1 cmpq $4, %rdi + 0x0f, 0x8d, 0xa7, 0xff, 0xff, 0xff, //0x00004fe5 jge LBB0_908 + //0x00004feb LBB0_904 + 0x48, 0x83, 0xff, 0x02, //0x00004feb cmpq $2, %rdi + 0x0f, 0x82, 0xb8, 0xff, 0xff, 0xff, //0x00004fef jb LBB0_905 + //0x00004ff5 LBB0_909 + 0x41, 0x0f, 0xb7, 0x00, //0x00004ff5 movzwl (%r8), %eax + 0x66, 0x89, 0x06, //0x00004ff9 movw %ax, (%rsi) + 0x49, 0x83, 0xc0, 0x02, //0x00004ffc addq $2, %r8 + 0x48, 0x83, 0xc6, 0x02, //0x00005000 addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x00005004 addq $-2, %rdi + 0x4c, 0x89, 0xc2, //0x00005008 movq %r8, %rdx + 0x4c, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x0000500b leaq $-192(%rbp), %r8 + 0x48, 0x85, 0xff, //0x00005012 testq %rdi, %rdi + 0x0f, 0x84, 0x48, 0xfc, 0xff, 0xff, //0x00005015 je LBB0_890 + //0x0000501b LBB0_910 + 0x8a, 0x02, //0x0000501b movb (%rdx), %al + 0x88, 0x06, //0x0000501d movb %al, (%rsi) + 0x4c, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x0000501f leaq $-192(%rbp), %r8 + 0xe9, 0x38, 0xfc, 0xff, 0xff, //0x00005026 jmp LBB0_890 + //0x0000502b LBB0_911 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x0000502b leaq $5(%r12), %rax + //0x00005030 LBB0_912 + 0x49, 0x3b, 0x45, 0x08, //0x00005030 cmpq $8(%r13), %rax + 0x0f, 0x87, 0x15, 0xe2, 0xff, 0xff, //0x00005034 ja LBB0_558 + 0x49, 0x89, 0x03, //0x0000503a movq %rax, (%r11) + 0x4c, 0x89, 0xe1, //0x0000503d movq %r12, %rcx + 0xe9, 0x0a, 0xe2, 0xff, 0xff, //0x00005040 jmp LBB0_558 + //0x00005045 LBB0_914 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005045 movabsq $6148914691236517205, %r11 + 0x49, 0x8b, 0x45, 0x08, //0x0000504f movq $8(%r13), %rax + 0x48, 0x29, 0xf8, //0x00005053 subq %rdi, %rax + 0x49, 0x01, 0xf8, //0x00005056 addq %rdi, %r8 + 0x31, 0xd2, //0x00005059 xorl %edx, %edx + 0x48, 0x89, 0x55, 0x90, //0x0000505b movq %rdx, $-112(%rbp) + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0xc8, 0xaf, 0xff, 0xff, //0x0000505f movdqu $-20536(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xd0, 0xaf, 0xff, 0xff, //0x00005068 movdqu $-20528(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005070 pcmpeqd %xmm9, %xmm9 + 0xf3, 0x0f, 0x6f, 0x1d, 0xd3, 0xaf, 0xff, 0xff, //0x00005075 movdqu $-20525(%rip), %xmm3 /* LCPI0_5+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0x9b, 0xaf, 0xff, 0xff, //0x0000507d movdqu $-20581(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0x49, 0xbd, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00005085 movabsq $3689348814741910323, %r13 + 0x66, 0x45, 0x0f, 0xef, 0xc0, //0x0000508f pxor %xmm8, %xmm8 + 0x31, 0xd2, //0x00005094 xorl %edx, %edx + 0x48, 0x89, 0x55, 0x98, //0x00005096 movq %rdx, $-104(%rbp) + 0x45, 0x31, 0xf6, //0x0000509a xorl %r14d, %r14d + 0x45, 0x31, 0xd2, //0x0000509d xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x40, //0x000050a0 cmpq $64, %rax + 0x48, 0x89, 0x45, 0xc8, //0x000050a4 movq %rax, $-56(%rbp) + 0x0f, 0x8c, 0x72, 0x02, 0x00, 0x00, //0x000050a8 jl LBB0_923 + //0x000050ae LBB0_917 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x000050ae movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x000050b3 movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x000050b9 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x000050bf movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x000050c5 movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x000050c9 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x000050ce pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x000050d3 movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x000050d7 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x000050dc pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd7, //0x000050e0 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x000050e4 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000050e9 pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd6, //0x000050ed movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x000050f1 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x000050f6 pmovmskb %xmm2, %r9d + 0x49, 0xc1, 0xe1, 0x30, //0x000050fb shlq $48, %r9 + 0x48, 0xc1, 0xe2, 0x20, //0x000050ff shlq $32, %rdx + 0x48, 0xc1, 0xe7, 0x10, //0x00005103 shlq $16, %rdi + 0x49, 0x09, 0xff, //0x00005107 orq %rdi, %r15 + 0x49, 0x09, 0xd7, //0x0000510a orq %rdx, %r15 + 0x4d, 0x09, 0xcf, //0x0000510d orq %r9, %r15 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005110 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005114 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x00005118 pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd5, //0x0000511c movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005120 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00005124 pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd7, //0x00005128 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x0000512c pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00005130 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd6, //0x00005134 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005138 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x0000513c pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00005140 shlq $48, %rbx + 0x48, 0xc1, 0xe0, 0x20, //0x00005144 shlq $32, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00005148 shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x0000514c orq %rdx, %rdi + 0x48, 0x09, 0xc7, //0x0000514f orq %rax, %rdi + 0x48, 0x09, 0xdf, //0x00005152 orq %rbx, %rdi + 0x48, 0x89, 0xf8, //0x00005155 movq %rdi, %rax + 0x48, 0x8b, 0x55, 0x98, //0x00005158 movq $-104(%rbp), %rdx + 0x48, 0x09, 0xd0, //0x0000515c orq %rdx, %rax + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x0000515f je LBB0_919 + 0x48, 0x89, 0xd0, //0x00005165 movq %rdx, %rax + 0x48, 0xf7, 0xd0, //0x00005168 notq %rax + 0x48, 0x21, 0xf8, //0x0000516b andq %rdi, %rax + 0x48, 0x8d, 0x1c, 0x00, //0x0000516e leaq (%rax,%rax), %rbx + 0x48, 0x09, 0xd3, //0x00005172 orq %rdx, %rbx + 0x48, 0x89, 0xda, //0x00005175 movq %rbx, %rdx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005178 movabsq $-6148914691236517206, %rsi + 0x48, 0x31, 0xf2, //0x00005182 xorq %rsi, %rdx + 0x48, 0x21, 0xf7, //0x00005185 andq %rsi, %rdi + 0x48, 0x21, 0xd7, //0x00005188 andq %rdx, %rdi + 0x31, 0xd2, //0x0000518b xorl %edx, %edx + 0x48, 0x01, 0xc7, //0x0000518d addq %rax, %rdi + 0x0f, 0x92, 0xc2, //0x00005190 setb %dl + 0x48, 0x89, 0x55, 0x98, //0x00005193 movq %rdx, $-104(%rbp) + 0x48, 0x01, 0xff, //0x00005197 addq %rdi, %rdi + 0x4c, 0x31, 0xdf, //0x0000519a xorq %r11, %rdi + 0x48, 0x21, 0xdf, //0x0000519d andq %rbx, %rdi + 0x48, 0xf7, 0xd7, //0x000051a0 notq %rdi + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000051a3 jmp LBB0_920 + //0x000051a8 LBB0_919 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000051a8 movq $-1, %rdi + 0x31, 0xc0, //0x000051af xorl %eax, %eax + 0x48, 0x89, 0x45, 0x98, //0x000051b1 movq %rax, $-104(%rbp) + //0x000051b5 LBB0_920 + 0x4c, 0x21, 0xff, //0x000051b5 andq %r15, %rdi + 0x66, 0x48, 0x0f, 0x6e, 0xd7, //0x000051b8 movq %rdi, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x000051bd pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd7, //0x000051c4 movq %xmm2, %r15 + 0x4c, 0x33, 0x7d, 0x90, //0x000051c9 xorq $-112(%rbp), %r15 + 0x66, 0x0f, 0x6f, 0xd0, //0x000051cd movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x000051d1 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x000051d5 pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x6f, 0xd5, //0x000051d9 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x000051dd pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x000051e1 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd7, //0x000051e5 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x000051e9 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000051ed pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd6, //0x000051f1 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x000051f5 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x000051f9 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x000051fd shlq $48, %rbx + 0x48, 0xc1, 0xe2, 0x20, //0x00005201 shlq $32, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00005205 shlq $16, %rax + 0x48, 0x09, 0xc7, //0x00005209 orq %rax, %rdi + 0x48, 0x09, 0xd7, //0x0000520c orq %rdx, %rdi + 0x48, 0x09, 0xdf, //0x0000520f orq %rbx, %rdi + 0x4d, 0x89, 0xf9, //0x00005212 movq %r15, %r9 + 0x49, 0xf7, 0xd1, //0x00005215 notq %r9 + 0x4c, 0x21, 0xcf, //0x00005218 andq %r9, %rdi + 0x66, 0x0f, 0x74, 0xc4, //0x0000521b pcmpeqb %xmm4, %xmm0 + 0x66, 0x0f, 0xd7, 0xd0, //0x0000521f pmovmskb %xmm0, %edx + 0x66, 0x0f, 0x74, 0xec, //0x00005223 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00005227 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x0000522b pcmpeqb %xmm4, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x0000522f pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x74, 0xf4, //0x00005233 pcmpeqb %xmm4, %xmm6 + 0x66, 0x0f, 0xd7, 0xc6, //0x00005237 pmovmskb %xmm6, %eax + 0x48, 0xc1, 0xe0, 0x30, //0x0000523b shlq $48, %rax + 0x48, 0xc1, 0xe6, 0x20, //0x0000523f shlq $32, %rsi + 0x48, 0xc1, 0xe3, 0x10, //0x00005243 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00005247 orq %rbx, %rdx + 0x48, 0x09, 0xf2, //0x0000524a orq %rsi, %rdx + 0x48, 0x09, 0xc2, //0x0000524d orq %rax, %rdx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005250 movabsq $1085102592571150095, %rbx + 0x4c, 0x21, 0xca, //0x0000525a andq %r9, %rdx + 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x0000525d je LBB0_915 + //0x00005263 LBB0_921 + 0x4c, 0x8d, 0x4a, 0xff, //0x00005263 leaq $-1(%rdx), %r9 + 0x4c, 0x89, 0xc8, //0x00005267 movq %r9, %rax + 0x48, 0x21, 0xf8, //0x0000526a andq %rdi, %rax + 0x48, 0x89, 0xc6, //0x0000526d movq %rax, %rsi + 0x48, 0xd1, 0xee, //0x00005270 shrq %rsi + 0x4c, 0x21, 0xde, //0x00005273 andq %r11, %rsi + 0x48, 0x29, 0xf0, //0x00005276 subq %rsi, %rax + 0x48, 0x89, 0xc6, //0x00005279 movq %rax, %rsi + 0x4c, 0x21, 0xee, //0x0000527c andq %r13, %rsi + 0x48, 0xc1, 0xe8, 0x02, //0x0000527f shrq $2, %rax + 0x4c, 0x21, 0xe8, //0x00005283 andq %r13, %rax + 0x48, 0x01, 0xf0, //0x00005286 addq %rsi, %rax + 0x48, 0x89, 0xc6, //0x00005289 movq %rax, %rsi + 0x48, 0xc1, 0xee, 0x04, //0x0000528c shrq $4, %rsi + 0x48, 0x01, 0xc6, //0x00005290 addq %rax, %rsi + 0x48, 0x21, 0xde, //0x00005293 andq %rbx, %rsi + 0x48, 0xb8, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005296 movabsq $72340172838076673, %rax + 0x48, 0x0f, 0xaf, 0xf0, //0x000052a0 imulq %rax, %rsi + 0x48, 0xc1, 0xee, 0x38, //0x000052a4 shrq $56, %rsi + 0x4c, 0x01, 0xf6, //0x000052a8 addq %r14, %rsi + 0x4c, 0x39, 0xd6, //0x000052ab cmpq %r10, %rsi + 0x0f, 0x86, 0xbf, 0x01, 0x00, 0x00, //0x000052ae jbe LBB0_938 + 0x49, 0xff, 0xc2, //0x000052b4 incq %r10 + 0x4c, 0x21, 0xca, //0x000052b7 andq %r9, %rdx + 0x0f, 0x85, 0xa3, 0xff, 0xff, 0xff, //0x000052ba jne LBB0_921 + //0x000052c0 LBB0_915 + 0x49, 0xc1, 0xff, 0x3f, //0x000052c0 sarq $63, %r15 + 0x48, 0x89, 0xf8, //0x000052c4 movq %rdi, %rax + 0x48, 0xd1, 0xe8, //0x000052c7 shrq %rax + 0x4c, 0x21, 0xd8, //0x000052ca andq %r11, %rax + 0x48, 0x29, 0xc7, //0x000052cd subq %rax, %rdi + 0x48, 0x89, 0xf8, //0x000052d0 movq %rdi, %rax + 0x4c, 0x21, 0xe8, //0x000052d3 andq %r13, %rax + 0x48, 0xc1, 0xef, 0x02, //0x000052d6 shrq $2, %rdi + 0x4c, 0x21, 0xef, //0x000052da andq %r13, %rdi + 0x48, 0x01, 0xc7, //0x000052dd addq %rax, %rdi + 0x48, 0x89, 0xf8, //0x000052e0 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x000052e3 shrq $4, %rax + 0x48, 0x01, 0xf8, //0x000052e7 addq %rdi, %rax + 0x48, 0x21, 0xd8, //0x000052ea andq %rbx, %rax + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000052ed movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xc2, //0x000052f7 imulq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x000052fb shrq $56, %rax + 0x49, 0x01, 0xc6, //0x000052ff addq %rax, %r14 + 0x49, 0x83, 0xc0, 0x40, //0x00005302 addq $64, %r8 + 0x48, 0x8b, 0x45, 0xc8, //0x00005306 movq $-56(%rbp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x0000530a addq $-64, %rax + 0x4c, 0x89, 0x7d, 0x90, //0x0000530e movq %r15, $-112(%rbp) + 0x48, 0x83, 0xf8, 0x40, //0x00005312 cmpq $64, %rax + 0x48, 0x89, 0x45, 0xc8, //0x00005316 movq %rax, $-56(%rbp) + 0x0f, 0x8d, 0x8e, 0xfd, 0xff, 0xff, //0x0000531a jge LBB0_917 + //0x00005320 LBB0_923 + 0x48, 0x85, 0xc0, //0x00005320 testq %rax, %rax + 0x0f, 0x8e, 0xe6, 0x03, 0x00, 0x00, //0x00005323 jle LBB0_976 + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00005329 movdqu %xmm8, $-144(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00005332 movdqu %xmm8, $-160(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x0000533b movdqu %xmm8, $-176(%rbp) + 0xf3, 0x44, 0x0f, 0x7f, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00005344 movdqu %xmm8, $-192(%rbp) + 0x44, 0x89, 0xc0, //0x0000534d movl %r8d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00005350 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00005355 cmpl $4033, %eax + 0x0f, 0x82, 0x4e, 0xfd, 0xff, 0xff, //0x0000535a jb LBB0_917 + 0x48, 0x83, 0x7d, 0xc8, 0x20, //0x00005360 cmpq $32, $-56(%rbp) + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00005365 jb LBB0_927 + 0x41, 0x0f, 0x10, 0x00, //0x0000536b movups (%r8), %xmm0 + 0x0f, 0x11, 0x85, 0x40, 0xff, 0xff, 0xff, //0x0000536f movups %xmm0, $-192(%rbp) + 0xf3, 0x41, 0x0f, 0x6f, 0x40, 0x10, //0x00005376 movdqu $16(%r8), %xmm0 + 0xf3, 0x0f, 0x7f, 0x85, 0x50, 0xff, 0xff, 0xff, //0x0000537c movdqu %xmm0, $-176(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x00005384 addq $32, %r8 + 0x48, 0x8b, 0x45, 0xc8, //0x00005388 movq $-56(%rbp), %rax + 0x48, 0x8d, 0x78, 0xe0, //0x0000538c leaq $-32(%rax), %rdi + 0x48, 0x8d, 0xb5, 0x60, 0xff, 0xff, 0xff, //0x00005390 leaq $-160(%rbp), %rsi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00005397 jmp LBB0_928 + //0x0000539c LBB0_927 + 0x48, 0x8d, 0xb5, 0x40, 0xff, 0xff, 0xff, //0x0000539c leaq $-192(%rbp), %rsi + 0x48, 0x8b, 0x7d, 0xc8, //0x000053a3 movq $-56(%rbp), %rdi + //0x000053a7 LBB0_928 + 0x48, 0x83, 0xff, 0x10, //0x000053a7 cmpq $16, %rdi + 0x0f, 0x82, 0x5c, 0x00, 0x00, 0x00, //0x000053ab jb LBB0_929 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x000053b1 movdqu (%r8), %xmm0 + 0xf3, 0x0f, 0x7f, 0x06, //0x000053b6 movdqu %xmm0, (%rsi) + 0x49, 0x83, 0xc0, 0x10, //0x000053ba addq $16, %r8 + 0x48, 0x83, 0xc6, 0x10, //0x000053be addq $16, %rsi + 0x48, 0x83, 0xc7, 0xf0, //0x000053c2 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x08, //0x000053c6 cmpq $8, %rdi + 0x0f, 0x83, 0x47, 0x00, 0x00, 0x00, //0x000053ca jae LBB0_934 + //0x000053d0 LBB0_930 + 0x48, 0x83, 0xff, 0x04, //0x000053d0 cmpq $4, %rdi + 0x0f, 0x8c, 0x59, 0x00, 0x00, 0x00, //0x000053d4 jl LBB0_931 + //0x000053da LBB0_935 + 0x41, 0x8b, 0x00, //0x000053da movl (%r8), %eax + 0x89, 0x06, //0x000053dd movl %eax, (%rsi) + 0x49, 0x83, 0xc0, 0x04, //0x000053df addq $4, %r8 + 0x48, 0x83, 0xc6, 0x04, //0x000053e3 addq $4, %rsi + 0x48, 0x83, 0xc7, 0xfc, //0x000053e7 addq $-4, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000053eb cmpq $2, %rdi + 0x0f, 0x83, 0x48, 0x00, 0x00, 0x00, //0x000053ef jae LBB0_936 + //0x000053f5 LBB0_932 + 0x4c, 0x89, 0xc2, //0x000053f5 movq %r8, %rdx + 0x4c, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x000053f8 leaq $-192(%rbp), %r8 + 0x48, 0x85, 0xff, //0x000053ff testq %rdi, %rdi + 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x00005402 jne LBB0_937 + 0xe9, 0xa1, 0xfc, 0xff, 0xff, //0x00005408 jmp LBB0_917 + //0x0000540d LBB0_929 + 0x48, 0x83, 0xff, 0x08, //0x0000540d cmpq $8, %rdi + 0x0f, 0x82, 0xb9, 0xff, 0xff, 0xff, //0x00005411 jb LBB0_930 + //0x00005417 LBB0_934 + 0x49, 0x8b, 0x00, //0x00005417 movq (%r8), %rax + 0x48, 0x89, 0x06, //0x0000541a movq %rax, (%rsi) + 0x49, 0x83, 0xc0, 0x08, //0x0000541d addq $8, %r8 + 0x48, 0x83, 0xc6, 0x08, //0x00005421 addq $8, %rsi + 0x48, 0x83, 0xc7, 0xf8, //0x00005425 addq $-8, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00005429 cmpq $4, %rdi + 0x0f, 0x8d, 0xa7, 0xff, 0xff, 0xff, //0x0000542d jge LBB0_935 + //0x00005433 LBB0_931 + 0x48, 0x83, 0xff, 0x02, //0x00005433 cmpq $2, %rdi + 0x0f, 0x82, 0xb8, 0xff, 0xff, 0xff, //0x00005437 jb LBB0_932 + //0x0000543d LBB0_936 + 0x41, 0x0f, 0xb7, 0x00, //0x0000543d movzwl (%r8), %eax + 0x66, 0x89, 0x06, //0x00005441 movw %ax, (%rsi) + 0x49, 0x83, 0xc0, 0x02, //0x00005444 addq $2, %r8 + 0x48, 0x83, 0xc6, 0x02, //0x00005448 addq $2, %rsi + 0x48, 0x83, 0xc7, 0xfe, //0x0000544c addq $-2, %rdi + 0x4c, 0x89, 0xc2, //0x00005450 movq %r8, %rdx + 0x4c, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00005453 leaq $-192(%rbp), %r8 + 0x48, 0x85, 0xff, //0x0000545a testq %rdi, %rdi + 0x0f, 0x84, 0x4b, 0xfc, 0xff, 0xff, //0x0000545d je LBB0_917 + //0x00005463 LBB0_937 + 0x8a, 0x02, //0x00005463 movb (%rdx), %al + 0x88, 0x06, //0x00005465 movb %al, (%rsi) + 0x4c, 0x8d, 0x85, 0x40, 0xff, 0xff, 0xff, //0x00005467 leaq $-192(%rbp), %r8 + 0xe9, 0x3b, 0xfc, 0xff, 0xff, //0x0000546e jmp LBB0_917 + //0x00005473 LBB0_938 + 0x48, 0x8b, 0x75, 0xc0, //0x00005473 movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x46, 0x08, //0x00005477 movq $8(%rsi), %rax + 0x48, 0x0f, 0xbc, 0xca, //0x0000547b bsfq %rdx, %rcx + 0x48, 0x2b, 0x4d, 0xc8, //0x0000547f subq $-56(%rbp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00005483 leaq $1(%rcx,%rax), %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00005488 movq $-48(%rbp), %rdx + 0x48, 0x89, 0x02, //0x0000548c movq %rax, (%rdx) + 0x48, 0x8b, 0x4e, 0x08, //0x0000548f movq $8(%rsi), %rcx + 0x48, 0x39, 0xc8, //0x00005493 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00005496 cmovaq %rcx, %rax + 0x48, 0x89, 0x02, //0x0000549a movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000549d movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xe0, //0x000054a4 cmovaq %rax, %r12 + 0x4c, 0x89, 0xe1, //0x000054a8 movq %r12, %rcx + 0xe9, 0x9f, 0xdd, 0xff, 0xff, //0x000054ab jmp LBB0_558 + //0x000054b0 LBB0_939 + 0x49, 0x83, 0xfa, 0xff, //0x000054b0 cmpq $-1, %r10 + 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x000054b4 jne LBB0_941 + //0x000054ba LBB0_940 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000054ba movq $-1, %r10 + 0x4c, 0x8b, 0x65, 0x88, //0x000054c1 movq $-120(%rbp), %r12 + //0x000054c5 LBB0_941 + 0x4d, 0x89, 0x23, //0x000054c5 movq %r12, (%r11) + 0x4c, 0x89, 0xd1, //0x000054c8 movq %r10, %rcx + 0xe9, 0x7f, 0xdd, 0xff, 0xff, //0x000054cb jmp LBB0_558 + //0x000054d0 LBB0_942 + 0x4c, 0x89, 0xd1, //0x000054d0 movq %r10, %rcx + //0x000054d3 LBB0_943 + 0x48, 0xf7, 0xd1, //0x000054d3 notq %rcx + 0x49, 0x01, 0xc9, //0x000054d6 addq %rcx, %r9 + //0x000054d9 LBB0_944 + 0x48, 0x8b, 0x45, 0xd0, //0x000054d9 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x000054dd movq %r9, (%rax) + 0xe9, 0x63, 0xdd, 0xff, 0xff, //0x000054e0 jmp LBB0_557 + //0x000054e5 LBB0_956 + 0x49, 0x89, 0x13, //0x000054e5 movq %rdx, (%r11) + 0xe9, 0x62, 0xdd, 0xff, 0xff, //0x000054e8 jmp LBB0_558 + //0x000054ed LBB0_950 + 0x4c, 0x89, 0xb5, 0x38, 0xff, 0xff, 0xff, //0x000054ed movq %r14, $-200(%rbp) + //0x000054f4 LBB0_951 + 0x48, 0x8b, 0x45, 0xd0, //0x000054f4 movq $-48(%rbp), %rax + 0x48, 0x8b, 0x8d, 0x38, 0xff, 0xff, 0xff, //0x000054f8 movq $-200(%rbp), %rcx + 0x48, 0x89, 0x08, //0x000054ff movq %rcx, (%rax) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005502 movq $-1, %rcx + 0xe9, 0x41, 0xdd, 0xff, 0xff, //0x00005509 jmp LBB0_558 + //0x0000550e LBB0_952 + 0x4c, 0x29, 0xc7, //0x0000550e subq %r8, %rdi + 0xe9, 0x90, 0xde, 0xff, 0xff, //0x00005511 jmp LBB0_578 + //0x00005516 LBB0_953 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00005516 movq $-1, %r10 + //0x0000551d LBB0_954 + 0x4d, 0x29, 0xd1, //0x0000551d subq %r10, %r9 + 0xe9, 0xb4, 0xff, 0xff, 0xff, //0x00005520 jmp LBB0_944 + //0x00005525 LBB0_957 + 0x4d, 0x89, 0x0b, //0x00005525 movq %r9, (%r11) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005528 movq $-2, %rcx + 0x41, 0x80, 0x3c, 0x24, 0x74, //0x0000552f cmpb $116, (%r12) + 0x0f, 0x85, 0x15, 0xdd, 0xff, 0xff, //0x00005534 jne LBB0_558 + 0x49, 0x8d, 0x41, 0x01, //0x0000553a leaq $1(%r9), %rax + 0x49, 0x89, 0x03, //0x0000553e movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x01, 0x72, //0x00005541 cmpb $114, $1(%r15,%r9) + 0x0f, 0x85, 0x02, 0xdd, 0xff, 0xff, //0x00005547 jne LBB0_558 + 0x49, 0x8d, 0x41, 0x02, //0x0000554d leaq $2(%r9), %rax + 0x49, 0x89, 0x03, //0x00005551 movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x02, 0x75, //0x00005554 cmpb $117, $2(%r15,%r9) + 0x0f, 0x85, 0xef, 0xdc, 0xff, 0xff, //0x0000555a jne LBB0_558 + 0x49, 0x8d, 0x41, 0x03, //0x00005560 leaq $3(%r9), %rax + 0x49, 0x89, 0x03, //0x00005564 movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x03, 0x65, //0x00005567 cmpb $101, $3(%r15,%r9) + 0x0f, 0x85, 0xdc, 0xdc, 0xff, 0xff, //0x0000556d jne LBB0_558 + 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00005573 jmp LBB0_786 + //0x00005578 LBB0_961 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005578 movq $-2, %rcx + 0x80, 0xfa, 0x61, //0x0000557f cmpb $97, %dl + 0x0f, 0x85, 0xc7, 0xdc, 0xff, 0xff, //0x00005582 jne LBB0_558 + 0x49, 0x8d, 0x41, 0x02, //0x00005588 leaq $2(%r9), %rax + 0x49, 0x89, 0x03, //0x0000558c movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x02, 0x6c, //0x0000558f cmpb $108, $2(%r15,%r9) + 0x0f, 0x85, 0xb4, 0xdc, 0xff, 0xff, //0x00005595 jne LBB0_558 + 0x49, 0x8d, 0x41, 0x03, //0x0000559b leaq $3(%r9), %rax + 0x49, 0x89, 0x03, //0x0000559f movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x03, 0x73, //0x000055a2 cmpb $115, $3(%r15,%r9) + 0x0f, 0x85, 0xa1, 0xdc, 0xff, 0xff, //0x000055a8 jne LBB0_558 + 0x49, 0x8d, 0x41, 0x04, //0x000055ae leaq $4(%r9), %rax + 0x49, 0x89, 0x03, //0x000055b2 movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x04, 0x65, //0x000055b5 cmpb $101, $4(%r15,%r9) + 0x0f, 0x85, 0x8e, 0xdc, 0xff, 0xff, //0x000055bb jne LBB0_558 + 0x49, 0x83, 0xc1, 0x05, //0x000055c1 addq $5, %r9 + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x000055c5 jmp LBB0_966 + //0x000055ca LBB0_782 + 0x4d, 0x89, 0x0b, //0x000055ca movq %r9, (%r11) + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000055cd movq $-2, %rcx + 0x41, 0x80, 0x3c, 0x24, 0x6e, //0x000055d4 cmpb $110, (%r12) + 0x0f, 0x85, 0x70, 0xdc, 0xff, 0xff, //0x000055d9 jne LBB0_558 + 0x49, 0x8d, 0x41, 0x01, //0x000055df leaq $1(%r9), %rax + 0x49, 0x89, 0x03, //0x000055e3 movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x01, 0x75, //0x000055e6 cmpb $117, $1(%r15,%r9) + 0x0f, 0x85, 0x5d, 0xdc, 0xff, 0xff, //0x000055ec jne LBB0_558 + 0x49, 0x8d, 0x41, 0x02, //0x000055f2 leaq $2(%r9), %rax + 0x49, 0x89, 0x03, //0x000055f6 movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x02, 0x6c, //0x000055f9 cmpb $108, $2(%r15,%r9) + 0x0f, 0x85, 0x4a, 0xdc, 0xff, 0xff, //0x000055ff jne LBB0_558 + 0x49, 0x8d, 0x41, 0x03, //0x00005605 leaq $3(%r9), %rax + 0x49, 0x89, 0x03, //0x00005609 movq %rax, (%r11) + 0x43, 0x80, 0x7c, 0x0f, 0x03, 0x6c, //0x0000560c cmpb $108, $3(%r15,%r9) + 0x0f, 0x85, 0x37, 0xdc, 0xff, 0xff, //0x00005612 jne LBB0_558 + //0x00005618 LBB0_786 + 0x49, 0x83, 0xc1, 0x04, //0x00005618 addq $4, %r9 + //0x0000561c LBB0_966 + 0x48, 0x8b, 0x45, 0xd0, //0x0000561c movq $-48(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00005620 movq %r9, (%rax) + 0xe9, 0x27, 0xdc, 0xff, 0xff, //0x00005623 jmp LBB0_558 + //0x00005628 LBB0_967 + 0x4c, 0x89, 0xd0, //0x00005628 movq %r10, %rax + 0xe9, 0x8e, 0xf4, 0xff, 0xff, //0x0000562b jmp LBB0_873 + //0x00005630 LBB0_968 + 0x4c, 0x89, 0xe3, //0x00005630 movq %r12, %rbx + 0x48, 0x83, 0xc3, 0x02, //0x00005633 addq $2, %rbx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005637 movq $-2, %rcx + 0xe9, 0xb5, 0x00, 0x00, 0x00, //0x0000563e jmp LBB0_973 + //0x00005643 LBB0_974 + 0x4c, 0x89, 0x55, 0x88, //0x00005643 movq %r10, $-120(%rbp) + 0xe9, 0x6e, 0xfe, 0xff, 0xff, //0x00005647 jmp LBB0_940 + //0x0000564c LBB0_884 + 0x4d, 0x85, 0xff, //0x0000564c testq %r15, %r15 + 0x0f, 0x85, 0xed, 0x00, 0x00, 0x00, //0x0000564f jne LBB0_980 + 0x4b, 0x8d, 0x7c, 0x1e, 0x01, //0x00005655 leaq $1(%r14,%r11), %rdi + 0x49, 0xf7, 0xd6, //0x0000565a notq %r14 + 0x4d, 0x01, 0xce, //0x0000565d addq %r9, %r14 + //0x00005660 LBB0_886 + 0x4d, 0x85, 0xf6, //0x00005660 testq %r14, %r14 + 0x48, 0x8b, 0x55, 0xd0, //0x00005663 movq $-48(%rbp), %rdx + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00005667 jg LBB0_947 + 0xe9, 0xdd, 0xdb, 0xff, 0xff, //0x0000566d jmp LBB0_558 + //0x00005672 LBB0_945 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00005672 movq $-2, %rax + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00005679 movl $2, %ecx + 0x48, 0x01, 0xcf, //0x0000567e addq %rcx, %rdi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005681 movq $-1, %rcx + 0x49, 0x01, 0xc6, //0x00005688 addq %rax, %r14 + 0x0f, 0x8e, 0xbe, 0xdb, 0xff, 0xff, //0x0000568b jle LBB0_558 + //0x00005691 LBB0_947 + 0x0f, 0xb6, 0x07, //0x00005691 movzbl (%rdi), %eax + 0x3c, 0x5c, //0x00005694 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00005696 je LBB0_945 + 0x3c, 0x22, //0x0000569c cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000569e je LBB0_969 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000056a4 movq $-1, %rax + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000056ab movl $1, %ecx + 0x48, 0x01, 0xcf, //0x000056b0 addq %rcx, %rdi + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056b3 movq $-1, %rcx + 0x49, 0x01, 0xc6, //0x000056ba addq %rax, %r14 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x000056bd jg LBB0_947 + 0xe9, 0x87, 0xdb, 0xff, 0xff, //0x000056c3 jmp LBB0_558 + //0x000056c8 LBB0_969 + 0x4c, 0x29, 0xc7, //0x000056c8 subq %r8, %rdi + 0x48, 0xff, 0xc7, //0x000056cb incq %rdi + 0x48, 0x89, 0x3a, //0x000056ce movq %rdi, (%rdx) + 0x4c, 0x89, 0xe1, //0x000056d1 movq %r12, %rcx + 0xe9, 0x76, 0xdb, 0xff, 0xff, //0x000056d4 jmp LBB0_558 + //0x000056d9 LBB0_970 + 0x4c, 0x89, 0xe3, //0x000056d9 movq %r12, %rbx + 0x48, 0xff, 0xc3, //0x000056dc incq %rbx + 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x000056df movq $-3, %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000056e6 jmp LBB0_973 + //0x000056eb LBB0_971 + 0x4c, 0x89, 0xe3, //0x000056eb movq %r12, %rbx + 0x48, 0xff, 0xc3, //0x000056ee incq %rbx + //0x000056f1 LBB0_972 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056f1 movq $-1, %rcx + //0x000056f8 LBB0_973 + 0x48, 0x8b, 0x45, 0xc8, //0x000056f8 movq $-56(%rbp), %rax + 0x48, 0x29, 0xc3, //0x000056fc subq %rax, %rbx + 0x49, 0x89, 0x1b, //0x000056ff movq %rbx, (%r11) + 0xe9, 0x48, 0xdb, 0xff, 0xff, //0x00005702 jmp LBB0_558 + //0x00005707 LBB0_975 + 0x4c, 0x01, 0xc7, //0x00005707 addq %r8, %rdi + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x0000570a jmp LBB0_886 + //0x0000570f LBB0_976 + 0x48, 0x8b, 0x45, 0xc0, //0x0000570f movq $-64(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00005713 movq $8(%rax), %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00005717 movq $-48(%rbp), %rdx + 0x48, 0x89, 0x02, //0x0000571b movq %rax, (%rdx) + 0xe9, 0x2c, 0xdb, 0xff, 0xff, //0x0000571e jmp LBB0_558 + //0x00005723 LBB0_977 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x00005723 movq $-4, %rcx + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000572a jmp LBB0_979 + //0x0000572f LBB0_978 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000572f movq $-2, %rcx + //0x00005736 LBB0_979 + 0x4c, 0x89, 0xc3, //0x00005736 movq %r8, %rbx + 0x4c, 0x8b, 0x5d, 0xd0, //0x00005739 movq $-48(%rbp), %r11 + 0xe9, 0xb6, 0xff, 0xff, 0xff, //0x0000573d jmp LBB0_973 + //0x00005742 LBB0_980 + 0x49, 0x8d, 0x41, 0xff, //0x00005742 leaq $-1(%r9), %rax + 0x4c, 0x39, 0xf0, //0x00005746 cmpq %r14, %rax + 0x0f, 0x84, 0x00, 0xdb, 0xff, 0xff, //0x00005749 je LBB0_558 + 0x4b, 0x8d, 0x7c, 0x1e, 0x02, //0x0000574f leaq $2(%r14,%r11), %rdi + 0x4d, 0x29, 0xf1, //0x00005754 subq %r14, %r9 + 0x49, 0x83, 0xc1, 0xfe, //0x00005757 addq $-2, %r9 + 0x4d, 0x89, 0xce, //0x0000575b movq %r9, %r14 + 0xe9, 0xfd, 0xfe, 0xff, 0xff, //0x0000575e jmp LBB0_886 + //0x00005763 LBB0_982 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00005763 movq $-48(%rbp), %r11 + 0x48, 0x89, 0xf0, //0x00005767 movq %rsi, %rax + 0xe9, 0x4f, 0xf3, 0xff, 0xff, //0x0000576a jmp LBB0_873 + //0x0000576f LBB0_983 + 0x4c, 0x8b, 0x5d, 0xd0, //0x0000576f movq $-48(%rbp), %r11 + 0xe9, 0x46, 0xf3, 0xff, 0xff, //0x00005773 jmp LBB0_873 + //0x00005778 .p2align 2, 0x90 + // // .set L0_0_set_419, LBB0_419-LJTI0_0 + // // .set L0_0_set_462, LBB0_462-LJTI0_0 + // // .set L0_0_set_451, LBB0_451-LJTI0_0 + // // .set L0_0_set_404, LBB0_404-LJTI0_0 + // // .set L0_0_set_489, LBB0_489-LJTI0_0 + // // .set L0_0_set_461, LBB0_461-LJTI0_0 + // // .set L0_0_set_450, LBB0_450-LJTI0_0 + // // .set L0_0_set_463, LBB0_463-LJTI0_0 + //0x00005778 LJTI0_0 + 0x18, 0xcc, 0xff, 0xff, //0x00005778 .long L0_0_set_419 + 0xf4, 0xce, 0xff, 0xff, //0x0000577c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005780 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005784 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005788 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000578c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005790 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005794 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005798 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000579c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057a0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057a4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057a8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057ac .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057b0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057b4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057b8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057bc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057c0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057c4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057c8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057cc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057d0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057d4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057d8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057dc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057e0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057e4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057e8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057ec .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057f0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057f4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057f8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000057fc .long L0_0_set_462 + 0xc5, 0xcd, 0xff, 0xff, //0x00005800 .long L0_0_set_451 + 0xf4, 0xce, 0xff, 0xff, //0x00005804 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005808 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000580c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005810 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005814 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005818 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000581c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005820 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005824 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005828 .long L0_0_set_462 + 0x3c, 0xcb, 0xff, 0xff, //0x0000582c .long L0_0_set_404 + 0xf4, 0xce, 0xff, 0xff, //0x00005830 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005834 .long L0_0_set_462 + 0x3c, 0xcb, 0xff, 0xff, //0x00005838 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x0000583c .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x00005840 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x00005844 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x00005848 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x0000584c .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x00005850 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x00005854 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x00005858 .long L0_0_set_404 + 0x3c, 0xcb, 0xff, 0xff, //0x0000585c .long L0_0_set_404 + 0xf4, 0xce, 0xff, 0xff, //0x00005860 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005864 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005868 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000586c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005870 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005874 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005878 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000587c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005880 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005884 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005888 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000588c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005890 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005894 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005898 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000589c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058a0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058a4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058a8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058ac .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058b0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058b4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058b8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058bc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058c0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058c4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058c8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058cc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058d0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058d4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058d8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058dc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058e0 .long L0_0_set_462 + 0x2b, 0xd3, 0xff, 0xff, //0x000058e4 .long L0_0_set_489 + 0xf4, 0xce, 0xff, 0xff, //0x000058e8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058ec .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058f0 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058f4 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058f8 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x000058fc .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005900 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005904 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005908 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000590c .long L0_0_set_462 + 0xe7, 0xce, 0xff, 0xff, //0x00005910 .long L0_0_set_461 + 0xf4, 0xce, 0xff, 0xff, //0x00005914 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005918 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000591c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005920 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005924 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005928 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000592c .long L0_0_set_462 + 0xb3, 0xcd, 0xff, 0xff, //0x00005930 .long L0_0_set_450 + 0xf4, 0xce, 0xff, 0xff, //0x00005934 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005938 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000593c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005940 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005944 .long L0_0_set_462 + 0xb3, 0xcd, 0xff, 0xff, //0x00005948 .long L0_0_set_450 + 0xf4, 0xce, 0xff, 0xff, //0x0000594c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005950 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005954 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005958 .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x0000595c .long L0_0_set_462 + 0xf4, 0xce, 0xff, 0xff, //0x00005960 .long L0_0_set_462 + 0xff, 0xce, 0xff, 0xff, //0x00005964 .long L0_0_set_463 + // // .set L0_1_set_224, LBB0_224-LJTI0_1 + // // .set L0_1_set_265, LBB0_265-LJTI0_1 + // // .set L0_1_set_253, LBB0_253-LJTI0_1 + // // .set L0_1_set_209, LBB0_209-LJTI0_1 + // // .set L0_1_set_266, LBB0_266-LJTI0_1 + // // .set L0_1_set_264, LBB0_264-LJTI0_1 + // // .set L0_1_set_252, LBB0_252-LJTI0_1 + // // .set L0_1_set_292, LBB0_292-LJTI0_1 + //0x00005968 LJTI0_1 + 0xd8, 0xb3, 0xff, 0xff, //0x00005968 .long L0_1_set_224 + 0x6e, 0xb6, 0xff, 0xff, //0x0000596c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005970 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005974 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005978 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x0000597c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005980 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005984 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005988 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x0000598c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005990 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005994 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005998 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x0000599c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059a0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059a4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059a8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059ac .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059b0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059b4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059b8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059bc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059c0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059c4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059c8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059cc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059d0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059d4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059d8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059dc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059e0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059e4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059e8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059ec .long L0_1_set_265 + 0x3e, 0xb5, 0xff, 0xff, //0x000059f0 .long L0_1_set_253 + 0x6e, 0xb6, 0xff, 0xff, //0x000059f4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059f8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x000059fc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a00 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a04 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a08 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a0c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a10 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a14 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a18 .long L0_1_set_265 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a1c .long L0_1_set_209 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a20 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a24 .long L0_1_set_265 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a28 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a2c .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a30 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a34 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a38 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a3c .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a40 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a44 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a48 .long L0_1_set_209 + 0xfc, 0xb2, 0xff, 0xff, //0x00005a4c .long L0_1_set_209 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a50 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a54 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a58 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a5c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a60 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a64 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a68 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a6c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a70 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a74 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a78 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a7c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a80 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a84 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a88 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a8c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a90 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a94 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a98 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005a9c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005aa0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005aa4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005aa8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005aac .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ab0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ab4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ab8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005abc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ac0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ac4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ac8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005acc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ad0 .long L0_1_set_265 + 0x79, 0xb6, 0xff, 0xff, //0x00005ad4 .long L0_1_set_266 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ad8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005adc .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ae0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ae4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005ae8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005aec .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005af0 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005af4 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005af8 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005afc .long L0_1_set_265 + 0x61, 0xb6, 0xff, 0xff, //0x00005b00 .long L0_1_set_264 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b04 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b08 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b0c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b10 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b14 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b18 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b1c .long L0_1_set_265 + 0x2c, 0xb5, 0xff, 0xff, //0x00005b20 .long L0_1_set_252 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b24 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b28 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b2c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b30 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b34 .long L0_1_set_265 + 0x2c, 0xb5, 0xff, 0xff, //0x00005b38 .long L0_1_set_252 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b3c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b40 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b44 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b48 .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b4c .long L0_1_set_265 + 0x6e, 0xb6, 0xff, 0xff, //0x00005b50 .long L0_1_set_265 + 0x8b, 0xba, 0xff, 0xff, //0x00005b54 .long L0_1_set_292 + // // .set L0_2_set_615, LBB0_615-LJTI0_2 + // // .set L0_2_set_621, LBB0_621-LJTI0_2 + // // .set L0_2_set_623, LBB0_623-LJTI0_2 + // // .set L0_2_set_639, LBB0_639-LJTI0_2 + // // .set L0_2_set_618, LBB0_618-LJTI0_2 + // // .set L0_2_set_642, LBB0_642-LJTI0_2 + //0x00005b58 LJTI0_2 + 0x53, 0xda, 0xff, 0xff, //0x00005b58 .long L0_2_set_615 + 0x8a, 0xda, 0xff, 0xff, //0x00005b5c .long L0_2_set_621 + 0xb5, 0xda, 0xff, 0xff, //0x00005b60 .long L0_2_set_623 + 0x5f, 0xdc, 0xff, 0xff, //0x00005b64 .long L0_2_set_639 + 0x6a, 0xda, 0xff, 0xff, //0x00005b68 .long L0_2_set_618 + 0xf6, 0xde, 0xff, 0xff, //0x00005b6c .long L0_2_set_642 + // // .set L0_3_set_558, LBB0_558-LJTI0_3 + // // .set L0_3_set_557, LBB0_557-LJTI0_3 + // // .set L0_3_set_724, LBB0_724-LJTI0_3 + // // .set L0_3_set_739, LBB0_739-LJTI0_3 + // // .set L0_3_set_648, LBB0_648-LJTI0_3 + // // .set L0_3_set_773, LBB0_773-LJTI0_3 + // // .set L0_3_set_777, LBB0_777-LJTI0_3 + // // .set L0_3_set_780, LBB0_780-LJTI0_3 + // // .set L0_3_set_787, LBB0_787-LJTI0_3 + // // .set L0_3_set_775, LBB0_775-LJTI0_3 + //0x00005b70 LJTI0_3 + 0xdf, 0xd6, 0xff, 0xff, //0x00005b70 .long L0_3_set_558 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b74 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b78 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b7c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b80 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b84 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b88 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b8c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b90 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b94 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b98 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005b9c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ba0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ba4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ba8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bac .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bb0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bb4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bb8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bbc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bc0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bc4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bc8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bcc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bd0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bd4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bd8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bdc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005be0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005be4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005be8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bec .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bf0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bf4 .long L0_3_set_557 + 0x12, 0xe2, 0xff, 0xff, //0x00005bf8 .long L0_3_set_724 + 0xd8, 0xd6, 0xff, 0xff, //0x00005bfc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c00 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c04 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c08 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c0c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c10 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c14 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c18 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c1c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c20 .long L0_3_set_557 + 0xa0, 0xe3, 0xff, 0xff, //0x00005c24 .long L0_3_set_739 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c28 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c2c .long L0_3_set_557 + 0x80, 0xdc, 0xff, 0xff, //0x00005c30 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c34 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c38 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c3c .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c40 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c44 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c48 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c4c .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c50 .long L0_3_set_648 + 0x80, 0xdc, 0xff, 0xff, //0x00005c54 .long L0_3_set_648 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c58 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c5c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c60 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c64 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c68 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c6c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c70 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c74 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c78 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c7c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c80 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c84 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c88 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c8c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c90 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c94 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c98 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005c9c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ca0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ca4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ca8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cac .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cb0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cb4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cb8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cbc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cc0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cc4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cc8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ccc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cd0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cd4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cd8 .long L0_3_set_557 + 0xfb, 0xe5, 0xff, 0xff, //0x00005cdc .long L0_3_set_773 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ce0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ce4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005ce8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cec .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cf0 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cf4 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cf8 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005cfc .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d00 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d04 .long L0_3_set_557 + 0x43, 0xe6, 0xff, 0xff, //0x00005d08 .long L0_3_set_777 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d0c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d10 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d14 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d18 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d1c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d20 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d24 .long L0_3_set_557 + 0x70, 0xe6, 0xff, 0xff, //0x00005d28 .long L0_3_set_780 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d2c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d30 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d34 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d38 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d3c .long L0_3_set_557 + 0x94, 0xe6, 0xff, 0xff, //0x00005d40 .long L0_3_set_787 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d44 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d48 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d4c .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d50 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d54 .long L0_3_set_557 + 0xd8, 0xd6, 0xff, 0xff, //0x00005d58 .long L0_3_set_557 + 0x1f, 0xe6, 0xff, 0xff, //0x00005d5c .long L0_3_set_775 + // // .set L0_4_set_767, LBB0_767-LJTI0_4 + // // .set L0_4_set_797, LBB0_797-LJTI0_4 + // // .set L0_4_set_771, LBB0_771-LJTI0_4 + // // .set L0_4_set_764, LBB0_764-LJTI0_4 + // // .set L0_4_set_769, LBB0_769-LJTI0_4 + //0x00005d60 LJTI0_4 + 0xba, 0xe3, 0xff, 0xff, //0x00005d60 .long L0_4_set_767 + 0x22, 0xe5, 0xff, 0xff, //0x00005d64 .long L0_4_set_797 + 0xba, 0xe3, 0xff, 0xff, //0x00005d68 .long L0_4_set_767 + 0xf0, 0xe3, 0xff, 0xff, //0x00005d6c .long L0_4_set_771 + 0x22, 0xe5, 0xff, 0xff, //0x00005d70 .long L0_4_set_797 + 0x90, 0xe3, 0xff, 0xff, //0x00005d74 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d78 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d7c .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d80 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d84 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d88 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d8c .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d90 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d94 .long L0_4_set_764 + 0x90, 0xe3, 0xff, 0xff, //0x00005d98 .long L0_4_set_764 + 0x22, 0xe5, 0xff, 0xff, //0x00005d9c .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005da0 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005da4 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005da8 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dac .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005db0 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005db4 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005db8 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dbc .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dc0 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dc4 .long L0_4_set_797 + 0xd5, 0xe3, 0xff, 0xff, //0x00005dc8 .long L0_4_set_769 + 0x22, 0xe5, 0xff, 0xff, //0x00005dcc .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dd0 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dd4 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dd8 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005ddc .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005de0 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005de4 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005de8 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dec .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005df0 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005df4 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005df8 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005dfc .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e00 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e04 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e08 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e0c .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e10 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e14 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e18 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e1c .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e20 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e24 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e28 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e2c .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e30 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e34 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e38 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e3c .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e40 .long L0_4_set_797 + 0x22, 0xe5, 0xff, 0xff, //0x00005e44 .long L0_4_set_797 + 0xd5, 0xe3, 0xff, 0xff, //0x00005e48 .long L0_4_set_769 + // // .set L0_5_set_673, LBB0_673-LJTI0_5 + // // .set L0_5_set_709, LBB0_709-LJTI0_5 + // // .set L0_5_set_680, LBB0_680-LJTI0_5 + // // .set L0_5_set_675, LBB0_675-LJTI0_5 + // // .set L0_5_set_678, LBB0_678-LJTI0_5 + //0x00005e4c LJTI0_5 + 0x84, 0xdb, 0xff, 0xff, //0x00005e4c .long L0_5_set_673 + 0x7c, 0xde, 0xff, 0xff, //0x00005e50 .long L0_5_set_709 + 0x84, 0xdb, 0xff, 0xff, //0x00005e54 .long L0_5_set_673 + 0xe7, 0xdb, 0xff, 0xff, //0x00005e58 .long L0_5_set_680 + 0x7c, 0xde, 0xff, 0xff, //0x00005e5c .long L0_5_set_709 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e60 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e64 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e68 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e6c .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e70 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e74 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e78 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e7c .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e80 .long L0_5_set_675 + 0xa4, 0xdb, 0xff, 0xff, //0x00005e84 .long L0_5_set_675 + 0x7c, 0xde, 0xff, 0xff, //0x00005e88 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005e8c .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005e90 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005e94 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005e98 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005e9c .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ea0 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ea4 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ea8 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005eac .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005eb0 .long L0_5_set_709 + 0xcc, 0xdb, 0xff, 0xff, //0x00005eb4 .long L0_5_set_678 + 0x7c, 0xde, 0xff, 0xff, //0x00005eb8 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ebc .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ec0 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ec4 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ec8 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ecc .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ed0 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ed4 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ed8 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005edc .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ee0 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ee4 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ee8 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005eec .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ef0 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ef4 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005ef8 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005efc .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f00 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f04 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f08 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f0c .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f10 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f14 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f18 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f1c .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f20 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f24 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f28 .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f2c .long L0_5_set_709 + 0x7c, 0xde, 0xff, 0xff, //0x00005f30 .long L0_5_set_709 + 0xcc, 0xdb, 0xff, 0xff, //0x00005f34 .long L0_5_set_678 + // // .set L0_6_set_558, LBB0_558-LJTI0_6 + // // .set L0_6_set_876, LBB0_876-LJTI0_6 + // // .set L0_6_set_877, LBB0_877-LJTI0_6 + // // .set L0_6_set_564, LBB0_564-LJTI0_6 + // // .set L0_6_set_887, LBB0_887-LJTI0_6 + // // .set L0_6_set_911, LBB0_911-LJTI0_6 + // // .set L0_6_set_871, LBB0_871-LJTI0_6 + // // .set L0_6_set_914, LBB0_914-LJTI0_6 + //0x00005f38 LJTI0_6 + 0x17, 0xd3, 0xff, 0xff, //0x00005f38 .long L0_6_set_558 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f3c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f40 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f44 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f48 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f4c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f50 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f54 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f58 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f5c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f60 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f64 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f68 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f6c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f70 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f74 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f78 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f7c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f80 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f84 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f88 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f8c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f90 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f94 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f98 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005f9c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fa0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fa4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fa8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fac .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fb0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fb4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fb8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fbc .long L0_6_set_876 + 0xaf, 0xeb, 0xff, 0xff, //0x00005fc0 .long L0_6_set_877 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fc4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fc8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fcc .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fd0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fd4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fd8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fdc .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fe0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fe4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005fe8 .long L0_6_set_876 + 0x90, 0xd3, 0xff, 0xff, //0x00005fec .long L0_6_set_564 + 0xa7, 0xeb, 0xff, 0xff, //0x00005ff0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00005ff4 .long L0_6_set_876 + 0x90, 0xd3, 0xff, 0xff, //0x00005ff8 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00005ffc .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00006000 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00006004 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00006008 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x0000600c .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00006010 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00006014 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x00006018 .long L0_6_set_564 + 0x90, 0xd3, 0xff, 0xff, //0x0000601c .long L0_6_set_564 + 0xa7, 0xeb, 0xff, 0xff, //0x00006020 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006024 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006028 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000602c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006030 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006034 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006038 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000603c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006040 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006044 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006048 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000604c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006050 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006054 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006058 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000605c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006060 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006064 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006068 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000606c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006070 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006074 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006078 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000607c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006080 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006084 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006088 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000608c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006090 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006094 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006098 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000609c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060a0 .long L0_6_set_876 + 0xc1, 0xec, 0xff, 0xff, //0x000060a4 .long L0_6_set_887 + 0xa7, 0xeb, 0xff, 0xff, //0x000060a8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060ac .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060b0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060b4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060b8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060bc .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060c0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060c4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060c8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060cc .long L0_6_set_876 + 0xf3, 0xf0, 0xff, 0xff, //0x000060d0 .long L0_6_set_911 + 0xa7, 0xeb, 0xff, 0xff, //0x000060d4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060d8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060dc .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060e0 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060e4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060e8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060ec .long L0_6_set_876 + 0x72, 0xeb, 0xff, 0xff, //0x000060f0 .long L0_6_set_871 + 0xa7, 0xeb, 0xff, 0xff, //0x000060f4 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060f8 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x000060fc .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006100 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006104 .long L0_6_set_876 + 0x72, 0xeb, 0xff, 0xff, //0x00006108 .long L0_6_set_871 + 0xa7, 0xeb, 0xff, 0xff, //0x0000610c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006110 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006114 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006118 .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x0000611c .long L0_6_set_876 + 0xa7, 0xeb, 0xff, 0xff, //0x00006120 .long L0_6_set_876 + 0x0d, 0xf1, 0xff, 0xff, //0x00006124 .long L0_6_set_914 + //0x00006128 .p2align 2, 0x00 + //0x00006128 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00006128 .long 2 + 0x00, 0x00, 0x00, 0x00, //0x0000612c .p2align 4, 0x00 + //0x00006130 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00006150 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00006180 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00006190 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x000061a0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061e6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061f6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006206 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006216 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006226 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape.go b/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape.go new file mode 100644 index 000000000..9fe109c83 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_html_escape func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer) (ret int) + +var S_html_escape uintptr + +//go:nosplit +func html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (ret int) { + return F_html_escape(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(dn))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_subr.go new file mode 100644 index 000000000..a4abdbd6a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_subr.go @@ -0,0 +1,45 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__html_escape = 64 +) + +const ( + _stack__html_escape = 72 +) + +const ( + _size__html_escape = 1280 +) + +var ( + _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}, + } +) + +var _cfunc_html_escape = []loader.CFunc{ + {"_html_escape_entry", 0, _entry__html_escape, 0, nil}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_text_amd64.go new file mode 100644 index 000000000..cedaf936c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/html_escape_text_amd64.go @@ -0,0 +1,624 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_html_escape = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, // QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00000010 LCPI0_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00000010 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00000020 LCPI0_2 + 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x00000020 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' + //0x00000030 LCPI0_3 + 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x00000030 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' + //0x00000040 .p2align 4, 0x90 + //0x00000040 _html_escape + 0x55, //0x00000040 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000041 movq %rsp, %rbp + 0x41, 0x57, //0x00000044 pushq %r15 + 0x41, 0x56, //0x00000046 pushq %r14 + 0x41, 0x55, //0x00000048 pushq %r13 + 0x41, 0x54, //0x0000004a pushq %r12 + 0x53, //0x0000004c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000004d subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x00000051 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd2, //0x00000055 movq %rdx, %r10 + 0x48, 0x89, 0x55, 0xc8, //0x00000058 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x0000005c movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x00000060 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x00000063 testq %rsi, %rsi + 0x0f, 0x8e, 0x93, 0x04, 0x00, 0x00, //0x00000066 jle LBB0_59 + 0x48, 0x8b, 0x45, 0xc0, //0x0000006c movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00000070 movq (%rax), %r9 + 0xf3, 0x0f, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00000073 movdqu $-123(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000007b movdqu $-115(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00000083 movdqu $-107(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000008b movdqu $-99(%rip), %xmm3 /* LCPI0_3+0(%rip) */ + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00000093 movabsq $5764607797912141824, %r14 + 0x4c, 0x8d, 0x1d, 0x9c, 0x04, 0x00, 0x00, //0x0000009d leaq $1180(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x7d, 0xd0, //0x000000a4 movq $-48(%rbp), %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x000000a8 movq $-56(%rbp), %r10 + 0x90, 0x90, 0x90, 0x90, //0x000000ac .p2align 4, 0x90 + //0x000000b0 LBB0_2 + 0x4d, 0x85, 0xc9, //0x000000b0 testq %r9, %r9 + 0x0f, 0x8e, 0x65, 0x04, 0x00, 0x00, //0x000000b3 jle LBB0_61 + 0x48, 0x83, 0xfe, 0x0f, //0x000000b9 cmpq $15, %rsi + 0x0f, 0x9f, 0xc3, //0x000000bd setg %bl + 0x4d, 0x89, 0xcd, //0x000000c0 movq %r9, %r13 + 0x4d, 0x89, 0xd0, //0x000000c3 movq %r10, %r8 + 0x48, 0x89, 0xf0, //0x000000c6 movq %rsi, %rax + 0x4d, 0x89, 0xfc, //0x000000c9 movq %r15, %r12 + 0x49, 0x83, 0xf9, 0x10, //0x000000cc cmpq $16, %r9 + 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x000000d0 jl LBB0_9 + 0x48, 0x83, 0xfe, 0x10, //0x000000d6 cmpq $16, %rsi + 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x000000da jl LBB0_9 + 0x4d, 0x89, 0xfc, //0x000000e0 movq %r15, %r12 + 0x48, 0x89, 0xf0, //0x000000e3 movq %rsi, %rax + 0x4d, 0x89, 0xd0, //0x000000e6 movq %r10, %r8 + 0x4c, 0x89, 0xc9, //0x000000e9 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, //0x000000ec .p2align 4, 0x90 + //0x000000f0 LBB0_6 + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x000000f0 movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x000000f6 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x000000fa movdqa %xmm4, %xmm6 + 0xf3, 0x41, 0x0f, 0x7f, 0x20, //0x000000fe movdqu %xmm4, (%r8) + 0x66, 0x0f, 0x74, 0xe0, //0x00000103 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe9, //0x00000107 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x0000010b por %xmm4, %xmm5 + 0x66, 0x0f, 0xeb, 0xf2, //0x0000010f por %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf3, //0x00000113 pcmpeqb %xmm3, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x00000117 por %xmm5, %xmm6 + 0x66, 0x0f, 0xd7, 0xd6, //0x0000011b pmovmskb %xmm6, %edx + 0x66, 0x85, 0xd2, //0x0000011f testw %dx, %dx + 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x00000122 jne LBB0_21 + 0x49, 0x83, 0xc4, 0x10, //0x00000128 addq $16, %r12 + 0x49, 0x83, 0xc0, 0x10, //0x0000012c addq $16, %r8 + 0x4c, 0x8d, 0x69, 0xf0, //0x00000130 leaq $-16(%rcx), %r13 + 0x48, 0x83, 0xf8, 0x1f, //0x00000134 cmpq $31, %rax + 0x0f, 0x9f, 0xc3, //0x00000138 setg %bl + 0x48, 0x83, 0xf8, 0x20, //0x0000013b cmpq $32, %rax + 0x48, 0x8d, 0x40, 0xf0, //0x0000013f leaq $-16(%rax), %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00000143 jl LBB0_9 + 0x48, 0x83, 0xf9, 0x1f, //0x00000149 cmpq $31, %rcx + 0x4c, 0x89, 0xe9, //0x0000014d movq %r13, %rcx + 0x0f, 0x8f, 0x9a, 0xff, 0xff, 0xff, //0x00000150 jg LBB0_6 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000156 .p2align 4, 0x90 + //0x00000160 LBB0_9 + 0x84, 0xdb, //0x00000160 testb %bl, %bl + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00000162 je LBB0_13 + 0x4c, 0x89, 0xf2, //0x00000168 movq %r14, %rdx + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x0000016b movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00000171 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00000175 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00000179 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000017d pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x00000181 por %xmm5, %xmm6 + 0x66, 0x48, 0x0f, 0x7e, 0xe0, //0x00000185 movq %xmm4, %rax + 0x66, 0x0f, 0xeb, 0xe2, //0x0000018a por %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe3, //0x0000018e pcmpeqb %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00000192 por %xmm6, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00000196 pmovmskb %xmm4, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000019a orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xf1, //0x000001a0 bsfl %ecx, %r14d + 0x4d, 0x39, 0xf5, //0x000001a4 cmpq %r14, %r13 + 0x0f, 0x8d, 0xde, 0x00, 0x00, 0x00, //0x000001a7 jge LBB0_22 + 0x49, 0x83, 0xfd, 0x08, //0x000001ad cmpq $8, %r13 + 0x0f, 0x82, 0x11, 0x01, 0x00, 0x00, //0x000001b1 jb LBB0_25 + 0x49, 0x89, 0x00, //0x000001b7 movq %rax, (%r8) + 0x4d, 0x8d, 0x74, 0x24, 0x08, //0x000001ba leaq $8(%r12), %r14 + 0x49, 0x83, 0xc0, 0x08, //0x000001bf addq $8, %r8 + 0x49, 0x8d, 0x45, 0xf8, //0x000001c3 leaq $-8(%r13), %rax + 0x48, 0x83, 0xf8, 0x04, //0x000001c7 cmpq $4, %rax + 0x0f, 0x8d, 0x07, 0x01, 0x00, 0x00, //0x000001cb jge LBB0_26 + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x000001d1 jmp LBB0_27 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001d6 .p2align 4, 0x90 + //0x000001e0 LBB0_13 + 0x4d, 0x85, 0xed, //0x000001e0 testq %r13, %r13 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x000001e3 jle LBB0_20 + 0x48, 0x85, 0xc0, //0x000001e9 testq %rax, %rax + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x000001ec jle LBB0_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001f2 .p2align 4, 0x90 + //0x00000200 LBB0_15 + 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00000200 movzbl (%r12), %ecx + 0x48, 0x83, 0xf9, 0x3e, //0x00000205 cmpq $62, %rcx + 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00000209 ja LBB0_17 + 0x49, 0x0f, 0xa3, 0xce, //0x0000020f btq %rcx, %r14 + 0x0f, 0x82, 0x9b, 0x00, 0x00, 0x00, //0x00000213 jb LBB0_24 + //0x00000219 LBB0_17 + 0x80, 0xf9, 0xe2, //0x00000219 cmpb $-30, %cl + 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, //0x0000021c je LBB0_24 + 0x49, 0xff, 0xc4, //0x00000222 incq %r12 + 0x41, 0x88, 0x08, //0x00000225 movb %cl, (%r8) + 0x48, 0x83, 0xf8, 0x02, //0x00000228 cmpq $2, %rax + 0x48, 0x8d, 0x40, 0xff, //0x0000022c leaq $-1(%rax), %rax + 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x00000230 jl LBB0_20 + 0x49, 0xff, 0xc0, //0x00000236 incq %r8 + 0x49, 0x83, 0xfd, 0x01, //0x00000239 cmpq $1, %r13 + 0x4d, 0x8d, 0x6d, 0xff, //0x0000023d leaq $-1(%r13), %r13 + 0x0f, 0x8f, 0xb9, 0xff, 0xff, 0xff, //0x00000241 jg LBB0_15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000247 .p2align 4, 0x90 + //0x00000250 LBB0_20 + 0x4d, 0x29, 0xfc, //0x00000250 subq %r15, %r12 + 0x48, 0xf7, 0xd8, //0x00000253 negq %rax + 0x4d, 0x19, 0xed, //0x00000256 sbbq %r13, %r13 + 0x4d, 0x31, 0xe5, //0x00000259 xorq %r12, %r13 + 0x4d, 0x85, 0xed, //0x0000025c testq %r13, %r13 + 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x0000025f jns LBB0_37 + 0xe9, 0x72, 0x02, 0x00, 0x00, //0x00000265 jmp LBB0_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000026a .p2align 4, 0x90 + //0x00000270 LBB0_21 + 0x0f, 0xb7, 0xc2, //0x00000270 movzwl %dx, %eax + 0x4d, 0x29, 0xfc, //0x00000273 subq %r15, %r12 + 0x44, 0x0f, 0xbc, 0xe8, //0x00000276 bsfl %eax, %r13d + 0x4d, 0x01, 0xe5, //0x0000027a addq %r12, %r13 + 0x4d, 0x85, 0xed, //0x0000027d testq %r13, %r13 + 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x00000280 jns LBB0_37 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00000286 jmp LBB0_57 + //0x0000028b LBB0_22 + 0x41, 0x83, 0xfe, 0x08, //0x0000028b cmpl $8, %r14d + 0x0f, 0x82, 0xaa, 0x00, 0x00, 0x00, //0x0000028f jb LBB0_31 + 0x49, 0x89, 0x00, //0x00000295 movq %rax, (%r8) + 0x4d, 0x8d, 0x6c, 0x24, 0x08, //0x00000298 leaq $8(%r12), %r13 + 0x49, 0x83, 0xc0, 0x08, //0x0000029d addq $8, %r8 + 0x49, 0x8d, 0x46, 0xf8, //0x000002a1 leaq $-8(%r14), %rax + 0x48, 0x83, 0xf8, 0x04, //0x000002a5 cmpq $4, %rax + 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x000002a9 jge LBB0_32 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x000002af jmp LBB0_33 + //0x000002b4 LBB0_24 + 0x4d, 0x29, 0xfc, //0x000002b4 subq %r15, %r12 + 0x4d, 0x89, 0xe5, //0x000002b7 movq %r12, %r13 + 0x4d, 0x85, 0xed, //0x000002ba testq %r13, %r13 + 0x0f, 0x89, 0xfd, 0x00, 0x00, 0x00, //0x000002bd jns LBB0_37 + 0xe9, 0x14, 0x02, 0x00, 0x00, //0x000002c3 jmp LBB0_57 + //0x000002c8 LBB0_25 + 0x4d, 0x89, 0xe6, //0x000002c8 movq %r12, %r14 + 0x4c, 0x89, 0xe8, //0x000002cb movq %r13, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000002ce cmpq $4, %rax + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000002d2 jl LBB0_27 + //0x000002d8 LBB0_26 + 0x41, 0x8b, 0x0e, //0x000002d8 movl (%r14), %ecx + 0x41, 0x89, 0x08, //0x000002db movl %ecx, (%r8) + 0x49, 0x83, 0xc6, 0x04, //0x000002de addq $4, %r14 + 0x49, 0x83, 0xc0, 0x04, //0x000002e2 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000002e6 addq $-4, %rax + //0x000002ea LBB0_27 + 0x48, 0x83, 0xf8, 0x02, //0x000002ea cmpq $2, %rax + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000002ee jb LBB0_28 + 0x41, 0x0f, 0xb7, 0x0e, //0x000002f4 movzwl (%r14), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000002f8 movw %cx, (%r8) + 0x49, 0x83, 0xc6, 0x02, //0x000002fc addq $2, %r14 + 0x49, 0x83, 0xc0, 0x02, //0x00000300 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x00000304 addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00000308 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000030b jne LBB0_29 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00000311 jmp LBB0_30 + //0x00000316 LBB0_28 + 0x48, 0x85, 0xc0, //0x00000316 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00000319 je LBB0_30 + //0x0000031f LBB0_29 + 0x41, 0x8a, 0x06, //0x0000031f movb (%r14), %al + 0x41, 0x88, 0x00, //0x00000322 movb %al, (%r8) + //0x00000325 LBB0_30 + 0x4d, 0x29, 0xfd, //0x00000325 subq %r15, %r13 + 0x4d, 0x01, 0xe5, //0x00000328 addq %r12, %r13 + 0x49, 0xf7, 0xd5, //0x0000032b notq %r13 + 0x49, 0x89, 0xd6, //0x0000032e movq %rdx, %r14 + 0x4d, 0x85, 0xed, //0x00000331 testq %r13, %r13 + 0x0f, 0x89, 0x86, 0x00, 0x00, 0x00, //0x00000334 jns LBB0_37 + 0xe9, 0x9d, 0x01, 0x00, 0x00, //0x0000033a jmp LBB0_57 + //0x0000033f LBB0_31 + 0x4d, 0x89, 0xe5, //0x0000033f movq %r12, %r13 + 0x4c, 0x89, 0xf0, //0x00000342 movq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000345 cmpq $4, %rax + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00000349 jl LBB0_33 + //0x0000034f LBB0_32 + 0x41, 0x8b, 0x4d, 0x00, //0x0000034f movl (%r13), %ecx + 0x41, 0x89, 0x08, //0x00000353 movl %ecx, (%r8) + 0x49, 0x83, 0xc5, 0x04, //0x00000356 addq $4, %r13 + 0x49, 0x83, 0xc0, 0x04, //0x0000035a addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x0000035e addq $-4, %rax + //0x00000362 LBB0_33 + 0x48, 0x83, 0xf8, 0x02, //0x00000362 cmpq $2, %rax + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00000366 jb LBB0_34 + 0x41, 0x0f, 0xb7, 0x4d, 0x00, //0x0000036c movzwl (%r13), %ecx + 0x66, 0x41, 0x89, 0x08, //0x00000371 movw %cx, (%r8) + 0x49, 0x83, 0xc5, 0x02, //0x00000375 addq $2, %r13 + 0x49, 0x83, 0xc0, 0x02, //0x00000379 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x0000037d addq $-2, %rax + 0x48, 0x85, 0xc0, //0x00000381 testq %rax, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00000384 jne LBB0_35 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000038a jmp LBB0_36 + //0x0000038f LBB0_34 + 0x48, 0x85, 0xc0, //0x0000038f testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00000392 je LBB0_36 + //0x00000398 LBB0_35 + 0x41, 0x8a, 0x45, 0x00, //0x00000398 movb (%r13), %al + 0x41, 0x88, 0x00, //0x0000039c movb %al, (%r8) + //0x0000039f LBB0_36 + 0x4d, 0x29, 0xfc, //0x0000039f subq %r15, %r12 + 0x4d, 0x01, 0xf4, //0x000003a2 addq %r14, %r12 + 0x4d, 0x89, 0xe5, //0x000003a5 movq %r12, %r13 + 0x49, 0x89, 0xd6, //0x000003a8 movq %rdx, %r14 + 0x4d, 0x85, 0xed, //0x000003ab testq %r13, %r13 + 0x0f, 0x88, 0x28, 0x01, 0x00, 0x00, //0x000003ae js LBB0_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003b4 .p2align 4, 0x90 + //0x000003c0 LBB0_37 + 0x4d, 0x01, 0xef, //0x000003c0 addq %r13, %r15 + 0x4d, 0x01, 0xea, //0x000003c3 addq %r13, %r10 + 0x4c, 0x29, 0xee, //0x000003c6 subq %r13, %rsi + 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x000003c9 jle LBB0_58 + 0x4d, 0x29, 0xe9, //0x000003cf subq %r13, %r9 + 0x41, 0x8a, 0x0f, //0x000003d2 movb (%r15), %cl + 0x80, 0xf9, 0xe2, //0x000003d5 cmpb $-30, %cl + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x000003d8 je LBB0_51 + 0x4c, 0x89, 0xf8, //0x000003de movq %r15, %rax + //0x000003e1 LBB0_40 + 0x0f, 0xb6, 0xd1, //0x000003e1 movzbl %cl, %edx + 0x48, 0xc1, 0xe2, 0x04, //0x000003e4 shlq $4, %rdx + 0x4a, 0x8b, 0x3c, 0x1a, //0x000003e8 movq (%rdx,%r11), %rdi + 0x48, 0x63, 0xdf, //0x000003ec movslq %edi, %rbx + 0x49, 0x29, 0xd9, //0x000003ef subq %rbx, %r9 + 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x000003f2 jl LBB0_60 + 0x48, 0xc1, 0xe7, 0x20, //0x000003f8 shlq $32, %rdi + 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x000003fc leaq $8(%rdx,%r11), %r15 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00000401 movabsq $12884901889, %rcx + 0x48, 0x39, 0xcf, //0x0000040b cmpq %rcx, %rdi + 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000040e jl LBB0_43 + 0x41, 0x8b, 0x0f, //0x00000414 movl (%r15), %ecx + 0x41, 0x89, 0x0a, //0x00000417 movl %ecx, (%r10) + 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x0000041a leaq $12(%rdx,%r11), %r15 + 0x4d, 0x8d, 0x42, 0x04, //0x0000041f leaq $4(%r10), %r8 + 0x48, 0x8d, 0x7b, 0xfc, //0x00000423 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x00000427 cmpq $2, %rdi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x0000042b jae LBB0_44 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000431 jmp LBB0_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000436 .p2align 4, 0x90 + //0x00000440 LBB0_43 + 0x4d, 0x89, 0xd0, //0x00000440 movq %r10, %r8 + 0x48, 0x89, 0xdf, //0x00000443 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x00000446 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000044a jb LBB0_45 + //0x00000450 LBB0_44 + 0x41, 0x0f, 0xb7, 0x17, //0x00000450 movzwl (%r15), %edx + 0x66, 0x41, 0x89, 0x10, //0x00000454 movw %dx, (%r8) + 0x49, 0x83, 0xc7, 0x02, //0x00000458 addq $2, %r15 + 0x49, 0x83, 0xc0, 0x02, //0x0000045c addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x00000460 addq $-2, %rdi + //0x00000464 LBB0_45 + 0x48, 0x85, 0xff, //0x00000464 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00000467 je LBB0_47 + 0x41, 0x8a, 0x0f, //0x0000046d movb (%r15), %cl + 0x41, 0x88, 0x08, //0x00000470 movb %cl, (%r8) + //0x00000473 LBB0_47 + 0x49, 0x01, 0xda, //0x00000473 addq %rbx, %r10 + //0x00000476 LBB0_48 + 0x48, 0xff, 0xc0, //0x00000476 incq %rax + 0x49, 0x89, 0xc7, //0x00000479 movq %rax, %r15 + 0x48, 0x83, 0xfe, 0x01, //0x0000047c cmpq $1, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00000480 leaq $-1(%rsi), %rsi + 0x0f, 0x8f, 0x26, 0xfc, 0xff, 0xff, //0x00000484 jg LBB0_2 + 0xe9, 0x70, 0x00, 0x00, 0x00, //0x0000048a jmp LBB0_59 + //0x0000048f LBB0_51 + 0x48, 0x83, 0xfe, 0x03, //0x0000048f cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00000493 jl LBB0_55 + 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00000499 cmpb $-128, $1(%r15) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000049e jne LBB0_55 + 0x41, 0x8a, 0x4f, 0x02, //0x000004a4 movb $2(%r15), %cl + 0x89, 0xc8, //0x000004a8 movl %ecx, %eax + 0x24, 0xfe, //0x000004aa andb $-2, %al + 0x3c, 0xa8, //0x000004ac cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000004ae jne LBB0_55 + 0x49, 0x8d, 0x47, 0x02, //0x000004b4 leaq $2(%r15), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x000004b8 addq $-2, %rsi + 0xe9, 0x20, 0xff, 0xff, 0xff, //0x000004bc jmp LBB0_40 + //0x000004c1 LBB0_55 + 0x4d, 0x85, 0xc9, //0x000004c1 testq %r9, %r9 + 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x000004c4 jle LBB0_61 + 0x41, 0xc6, 0x02, 0xe2, //0x000004ca movb $-30, (%r10) + 0x49, 0xff, 0xc2, //0x000004ce incq %r10 + 0x49, 0xff, 0xc9, //0x000004d1 decq %r9 + 0x4c, 0x89, 0xf8, //0x000004d4 movq %r15, %rax + 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x000004d7 jmp LBB0_48 + //0x000004dc LBB0_57 + 0x4c, 0x2b, 0x55, 0xc8, //0x000004dc subq $-56(%rbp), %r10 + 0x49, 0xf7, 0xd5, //0x000004e0 notq %r13 + 0x4d, 0x01, 0xea, //0x000004e3 addq %r13, %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000004e6 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x000004ea movq %r10, (%rax) + 0x4c, 0x2b, 0x7d, 0xd0, //0x000004ed subq $-48(%rbp), %r15 + 0x4d, 0x01, 0xef, //0x000004f1 addq %r13, %r15 + 0x49, 0xf7, 0xd7, //0x000004f4 notq %r15 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000004f7 jmp LBB0_62 + //0x000004fc LBB0_58 + 0x4c, 0x89, 0xf8, //0x000004fc movq %r15, %rax + //0x000004ff LBB0_59 + 0x4c, 0x2b, 0x55, 0xc8, //0x000004ff subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x4d, 0xc0, //0x00000503 movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x11, //0x00000507 movq %r10, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x0000050a subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000050e jmp LBB0_63 + //0x00000513 LBB0_60 + 0x4c, 0x2b, 0x55, 0xc8, //0x00000513 subq $-56(%rbp), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00000517 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x10, //0x0000051b movq %r10, (%rax) + //0x0000051e LBB0_61 + 0x49, 0xf7, 0xd7, //0x0000051e notq %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x00000521 addq $-48(%rbp), %r15 + //0x00000525 LBB0_62 + 0x4c, 0x89, 0xf8, //0x00000525 movq %r15, %rax + //0x00000528 LBB0_63 + 0x48, 0x83, 0xc4, 0x18, //0x00000528 addq $24, %rsp + 0x5b, //0x0000052c popq %rbx + 0x41, 0x5c, //0x0000052d popq %r12 + 0x41, 0x5d, //0x0000052f popq %r13 + 0x41, 0x5e, //0x00000531 popq %r14 + 0x41, 0x5f, //0x00000533 popq %r15 + 0x5d, //0x00000535 popq %rbp + 0xc3, //0x00000536 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000537 .p2align 4, 0x00 + //0x00000540 __HtmlQuoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000005f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x000007a8 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00000908 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00000928 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fc0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00000fc8 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fd0 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00000fd8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa.go b/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa.go new file mode 100644 index 000000000..e9d573374 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_i64toa func(out unsafe.Pointer, val int64) (ret int) + +var S_i64toa uintptr + +//go:nosplit +func i64toa(out *byte, val int64) (ret int) { + return F_i64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_subr.go new file mode 100644 index 000000000..375cc2e9d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_subr.go @@ -0,0 +1,47 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__i64toa = 80 +) + +const ( + _stack__i64toa = 8 +) + +const ( + _size__i64toa = 2336 +) + +var ( + _pcsp__i64toa = [][2]uint32{ + {1, 0}, + {170, 8}, + {171, 0}, + {505, 8}, + {506, 0}, + {637, 8}, + {638, 0}, + {1117, 8}, + {1118, 0}, + {1254, 8}, + {1255, 0}, + {1572, 8}, + {1573, 0}, + {1945, 8}, + {1946, 0}, + {2324, 8}, + {2326, 0}, + } +) + +var _cfunc_i64toa = []loader.CFunc{ + {"_i64toa_entry", 0, _entry__i64toa, 0, nil}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_text_amd64.go new file mode 100644 index 000000000..ff0f3388b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/i64toa_text_amd64.go @@ -0,0 +1,666 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_i64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209 + //0x00000010 LCPI0_1 + 0xc5, 0x20, //0x00000010 .word 8389 + 0x7b, 0x14, //0x00000012 .word 5243 + 0x34, 0x33, //0x00000014 .word 13108 + 0x00, 0x80, //0x00000016 .word 32768 + 0xc5, 0x20, //0x00000018 .word 8389 + 0x7b, 0x14, //0x0000001a .word 5243 + 0x34, 0x33, //0x0000001c .word 13108 + 0x00, 0x80, //0x0000001e .word 32768 + //0x00000020 LCPI0_2 + 0x80, 0x00, //0x00000020 .word 128 + 0x00, 0x08, //0x00000022 .word 2048 + 0x00, 0x20, //0x00000024 .word 8192 + 0x00, 0x80, //0x00000026 .word 32768 + 0x80, 0x00, //0x00000028 .word 128 + 0x00, 0x08, //0x0000002a .word 2048 + 0x00, 0x20, //0x0000002c .word 8192 + 0x00, 0x80, //0x0000002e .word 32768 + //0x00000030 LCPI0_3 + 0x0a, 0x00, //0x00000030 .word 10 + 0x0a, 0x00, //0x00000032 .word 10 + 0x0a, 0x00, //0x00000034 .word 10 + 0x0a, 0x00, //0x00000036 .word 10 + 0x0a, 0x00, //0x00000038 .word 10 + 0x0a, 0x00, //0x0000003a .word 10 + 0x0a, 0x00, //0x0000003c .word 10 + 0x0a, 0x00, //0x0000003e .word 10 + //0x00000040 LCPI0_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000040 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000050 .p2align 4, 0x90 + //0x00000050 _i64toa + 0x55, //0x00000050 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000051 movq %rsp, %rbp + 0x48, 0x85, 0xf6, //0x00000054 testq %rsi, %rsi + 0x0f, 0x88, 0xaf, 0x00, 0x00, 0x00, //0x00000057 js LBB0_25 + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x0000005d cmpq $9999, %rsi + 0x0f, 0x87, 0xf8, 0x00, 0x00, 0x00, //0x00000064 ja LBB0_9 + 0x0f, 0xb7, 0xc6, //0x0000006a movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x0000006d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000070 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000076 shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000079 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x0000007d imull $100, %eax, %eax + 0x89, 0xf1, //0x00000080 movl %esi, %ecx + 0x29, 0xc1, //0x00000082 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000084 movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x00000087 addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000008a cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000090 jb LBB0_4 + 0x48, 0x8d, 0x0d, 0xd3, 0x08, 0x00, 0x00, //0x00000096 leaq $2259(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x0000009d movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x000000a0 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000000a2 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000000a7 jmp LBB0_5 + //0x000000ac LBB0_4 + 0x31, 0xc9, //0x000000ac xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x000000ae cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000000b1 jb LBB0_6 + //0x000000b7 LBB0_5 + 0x0f, 0xb7, 0xd2, //0x000000b7 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000000ba orq $1, %rdx + 0x48, 0x8d, 0x35, 0xab, 0x08, 0x00, 0x00, //0x000000be leaq $2219(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000000c5 movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x000000c8 movl %ecx, %esi + 0xff, 0xc1, //0x000000ca incl %ecx + 0x88, 0x14, 0x37, //0x000000cc movb %dl, (%rdi,%rsi) + //0x000000cf LBB0_7 + 0x48, 0x8d, 0x15, 0x9a, 0x08, 0x00, 0x00, //0x000000cf leaq $2202(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x000000d6 movb (%rax,%rdx), %dl + 0x89, 0xce, //0x000000d9 movl %ecx, %esi + 0xff, 0xc1, //0x000000db incl %ecx + 0x88, 0x14, 0x37, //0x000000dd movb %dl, (%rdi,%rsi) + //0x000000e0 LBB0_8 + 0x0f, 0xb7, 0xc0, //0x000000e0 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000000e3 orq $1, %rax + 0x48, 0x8d, 0x15, 0x82, 0x08, 0x00, 0x00, //0x000000e7 leaq $2178(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x000000ee movb (%rax,%rdx), %al + 0x89, 0xca, //0x000000f1 movl %ecx, %edx + 0xff, 0xc1, //0x000000f3 incl %ecx + 0x88, 0x04, 0x17, //0x000000f5 movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x000000f8 movl %ecx, %eax + 0x5d, //0x000000fa popq %rbp + 0xc3, //0x000000fb retq + //0x000000fc LBB0_6 + 0x31, 0xc9, //0x000000fc xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000000fe cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000101 jae LBB0_7 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000107 jmp LBB0_8 + //0x0000010c LBB0_25 + 0xc6, 0x07, 0x2d, //0x0000010c movb $45, (%rdi) + 0x48, 0xf7, 0xde, //0x0000010f negq %rsi + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000112 cmpq $9999, %rsi + 0x0f, 0x87, 0xd3, 0x01, 0x00, 0x00, //0x00000119 ja LBB0_33 + 0x0f, 0xb7, 0xc6, //0x0000011f movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000122 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000125 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000012b shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x0000012e leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000132 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000135 movl %esi, %ecx + 0x29, 0xc1, //0x00000137 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x00000139 movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x0000013c addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000013f cmpl $1000, %esi + 0x0f, 0x82, 0xab, 0x00, 0x00, 0x00, //0x00000145 jb LBB0_28 + 0x48, 0x8d, 0x0d, 0x1e, 0x08, 0x00, 0x00, //0x0000014b leaq $2078(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000152 movb (%rdx,%rcx), %cl + 0x88, 0x4f, 0x01, //0x00000155 movb %cl, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000158 movl $1, %ecx + 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x0000015d jmp LBB0_29 + //0x00000162 LBB0_9 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000162 cmpq $99999999, %rsi + 0x0f, 0x87, 0x18, 0x02, 0x00, 0x00, //0x00000169 ja LBB0_17 + 0x89, 0xf0, //0x0000016f movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000171 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000176 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000017a shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000017e imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000185 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000187 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000018a imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000191 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000195 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000199 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000019c shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000019f imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000001a5 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x000001a8 imull $100, %eax, %eax + 0x29, 0xc2, //0x000001ab subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x000001ad movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x000001b1 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x000001b4 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x000001b7 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000001ba imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000001c0 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x000001c3 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x000001c7 imull $100, %eax, %eax + 0x29, 0xc1, //0x000001ca subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x000001cc movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x000001d0 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000001d3 cmpl $10000000, %esi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000001d9 jb LBB0_12 + 0x48, 0x8d, 0x05, 0x8a, 0x07, 0x00, 0x00, //0x000001df leaq $1930(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x000001e6 movb (%r10,%rax), %al + 0x88, 0x07, //0x000001ea movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000001ec movl $1, %ecx + 0xe9, 0x63, 0x00, 0x00, 0x00, //0x000001f1 jmp LBB0_13 + //0x000001f6 LBB0_28 + 0x31, 0xc9, //0x000001f6 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x000001f8 cmpl $100, %esi + 0x0f, 0x82, 0xce, 0x00, 0x00, 0x00, //0x000001fb jb LBB0_30 + //0x00000201 LBB0_29 + 0x0f, 0xb7, 0xd2, //0x00000201 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000204 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x61, 0x07, 0x00, 0x00, //0x00000208 leaq $1889(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x0000020f movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x00000212 movl %ecx, %esi + 0xff, 0xc1, //0x00000214 incl %ecx + 0x88, 0x54, 0x37, 0x01, //0x00000216 movb %dl, $1(%rdi,%rsi) + //0x0000021a LBB0_31 + 0x48, 0x8d, 0x15, 0x4f, 0x07, 0x00, 0x00, //0x0000021a leaq $1871(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x00000221 movb (%rax,%rdx), %dl + 0x89, 0xce, //0x00000224 movl %ecx, %esi + 0xff, 0xc1, //0x00000226 incl %ecx + 0x88, 0x54, 0x37, 0x01, //0x00000228 movb %dl, $1(%rdi,%rsi) + //0x0000022c LBB0_32 + 0x0f, 0xb7, 0xc0, //0x0000022c movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000022f orq $1, %rax + 0x48, 0x8d, 0x15, 0x36, 0x07, 0x00, 0x00, //0x00000233 leaq $1846(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x0000023a movb (%rax,%rdx), %al + 0x89, 0xca, //0x0000023d movl %ecx, %edx + 0xff, 0xc1, //0x0000023f incl %ecx + 0x88, 0x44, 0x17, 0x01, //0x00000241 movb %al, $1(%rdi,%rdx) + 0xff, 0xc1, //0x00000245 incl %ecx + 0x89, 0xc8, //0x00000247 movl %ecx, %eax + 0x5d, //0x00000249 popq %rbp + 0xc3, //0x0000024a retq + //0x0000024b LBB0_12 + 0x31, 0xc9, //0x0000024b xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x0000024d cmpl $1000000, %esi + 0x0f, 0x82, 0x86, 0x00, 0x00, 0x00, //0x00000253 jb LBB0_14 + //0x00000259 LBB0_13 + 0x44, 0x89, 0xd0, //0x00000259 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000025c orq $1, %rax + 0x48, 0x8d, 0x35, 0x09, 0x07, 0x00, 0x00, //0x00000260 leaq $1801(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000267 movb (%rax,%rsi), %al + 0x89, 0xce, //0x0000026a movl %ecx, %esi + 0xff, 0xc1, //0x0000026c incl %ecx + 0x88, 0x04, 0x37, //0x0000026e movb %al, (%rdi,%rsi) + //0x00000271 LBB0_15 + 0x48, 0x8d, 0x05, 0xf8, 0x06, 0x00, 0x00, //0x00000271 leaq $1784(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x00000278 movb (%r9,%rax), %al + 0x89, 0xce, //0x0000027c movl %ecx, %esi + 0xff, 0xc1, //0x0000027e incl %ecx + 0x88, 0x04, 0x37, //0x00000280 movb %al, (%rdi,%rsi) + //0x00000283 LBB0_16 + 0x41, 0x0f, 0xb7, 0xc1, //0x00000283 movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000287 orq $1, %rax + 0x48, 0x8d, 0x35, 0xde, 0x06, 0x00, 0x00, //0x0000028b leaq $1758(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x00000292 movb (%rax,%rsi), %al + 0x89, 0xca, //0x00000295 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x00000297 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x0000029a movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x0000029e movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x000002a2 movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000002a6 orq $1, %rax + 0x8a, 0x04, 0x30, //0x000002aa movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x000002ad movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x000002b1 movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x000002b5 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x000002b9 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000002bd orq $1, %rax + 0x8a, 0x04, 0x30, //0x000002c1 movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x000002c4 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x000002c7 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x000002cb movl %ecx, %eax + 0x5d, //0x000002cd popq %rbp + 0xc3, //0x000002ce retq + //0x000002cf LBB0_30 + 0x31, 0xc9, //0x000002cf xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000002d1 cmpl $10, %esi + 0x0f, 0x83, 0x40, 0xff, 0xff, 0xff, //0x000002d4 jae LBB0_31 + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x000002da jmp LBB0_32 + //0x000002df LBB0_14 + 0x31, 0xc9, //0x000002df xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000002e1 cmpl $100000, %esi + 0x0f, 0x83, 0x84, 0xff, 0xff, 0xff, //0x000002e7 jae LBB0_15 + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x000002ed jmp LBB0_16 + //0x000002f2 LBB0_33 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000002f2 cmpq $99999999, %rsi + 0x0f, 0x87, 0x4c, 0x02, 0x00, 0x00, //0x000002f9 ja LBB0_41 + 0x89, 0xf0, //0x000002ff movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000301 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000306 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000030a shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000030e imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000315 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000317 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000031a imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000321 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000325 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x00000329 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000032c shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000032f imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000335 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000338 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000033b subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000033d movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000341 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000344 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000347 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000034a imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000350 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000353 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000357 imull $100, %eax, %eax + 0x29, 0xc1, //0x0000035a subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x0000035c movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000360 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000363 cmpl $10000000, %esi + 0x0f, 0x82, 0x40, 0x01, 0x00, 0x00, //0x00000369 jb LBB0_36 + 0x48, 0x8d, 0x05, 0xfa, 0x05, 0x00, 0x00, //0x0000036f leaq $1530(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000376 movb (%r10,%rax), %al + 0x88, 0x47, 0x01, //0x0000037a movb %al, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000037d movl $1, %ecx + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00000382 jmp LBB0_37 + //0x00000387 LBB0_17 + 0x48, 0xb9, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000387 movabsq $10000000000000000, %rcx + 0x48, 0x39, 0xce, //0x00000391 cmpq %rcx, %rsi + 0x0f, 0x83, 0xdc, 0x02, 0x00, 0x00, //0x00000394 jae LBB0_19 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000039a movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x000003a4 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x000003a7 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x000003aa shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000003ae imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000003b4 subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xc2, //0x000003b6 movd %edx, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x3e, 0xfc, 0xff, 0xff, //0x000003ba movdqu $-962(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd0, //0x000003c2 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0xf4, 0xd1, //0x000003c6 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x000003ca psrlq $45, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000003cf movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x000003d4 movq %rax, %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x000003d9 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0xf4, 0xe3, //0x000003dd pmuludq %xmm3, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x000003e1 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd0, //0x000003e5 punpcklwd %xmm0, %xmm2 + 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x000003e9 psllq $2, %xmm2 + 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x000003ee pshuflw $80, %xmm2, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x000003f3 pshufd $80, %xmm0, %xmm0 + 0xf3, 0x0f, 0x6f, 0x15, 0x10, 0xfc, 0xff, 0xff, //0x000003f8 movdqu $-1008(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc2, //0x00000400 pmulhuw %xmm2, %xmm0 + 0xf3, 0x0f, 0x6f, 0x25, 0x14, 0xfc, 0xff, 0xff, //0x00000404 movdqu $-1004(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x0000040c pmulhuw %xmm4, %xmm0 + 0xf3, 0x0f, 0x6f, 0x2d, 0x18, 0xfc, 0xff, 0xff, //0x00000410 movdqu $-1000(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x00000418 movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf5, //0x0000041c pmullw %xmm5, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x00000420 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x00000425 psubw %xmm6, %xmm0 + 0x66, 0x0f, 0x6e, 0xf6, //0x00000429 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x0000042d pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00000431 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd9, //0x00000436 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0xfa, 0xf3, //0x0000043a psubd %xmm3, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x0000043e punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00000442 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x00000447 pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x0000044c pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xca, //0x00000451 pmulhuw %xmm2, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x00000455 pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xd5, 0xe9, //0x00000459 pmullw %xmm1, %xmm5 + 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x0000045d psllq $16, %xmm5 + 0x66, 0x0f, 0xf9, 0xcd, //0x00000462 psubw %xmm5, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x00000466 packuswb %xmm1, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0xce, 0xfb, 0xff, 0xff, //0x0000046a movdqu $-1074(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x0f, 0xfc, 0xc8, //0x00000472 paddb %xmm0, %xmm1 + 0x66, 0x0f, 0xef, 0xd2, //0x00000476 pxor %xmm2, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x0000047a pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x0000047e pmovmskb %xmm2, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000482 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x00000487 xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x0000048c bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x0000048f movl $16, %ecx + 0x29, 0xc1, //0x00000494 subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x00000496 shlq $4, %rax + 0x48, 0x8d, 0x15, 0x9f, 0x05, 0x00, 0x00, //0x0000049a leaq $1439(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x000004a1 pshufb (%rax,%rdx), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0f, //0x000004a7 movdqu %xmm1, (%rdi) + 0x89, 0xc8, //0x000004ab movl %ecx, %eax + 0x5d, //0x000004ad popq %rbp + 0xc3, //0x000004ae retq + //0x000004af LBB0_36 + 0x31, 0xc9, //0x000004af xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x000004b1 cmpl $1000000, %esi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000004b7 jb LBB0_38 + //0x000004bd LBB0_37 + 0x44, 0x89, 0xd0, //0x000004bd movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004c0 orq $1, %rax + 0x48, 0x8d, 0x35, 0xa5, 0x04, 0x00, 0x00, //0x000004c4 leaq $1189(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000004cb movb (%rax,%rsi), %al + 0x89, 0xce, //0x000004ce movl %ecx, %esi + 0xff, 0xc1, //0x000004d0 incl %ecx + 0x88, 0x44, 0x37, 0x01, //0x000004d2 movb %al, $1(%rdi,%rsi) + //0x000004d6 LBB0_39 + 0x48, 0x8d, 0x05, 0x93, 0x04, 0x00, 0x00, //0x000004d6 leaq $1171(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x000004dd movb (%r9,%rax), %al + 0x89, 0xce, //0x000004e1 movl %ecx, %esi + 0xff, 0xc1, //0x000004e3 incl %ecx + 0x88, 0x44, 0x37, 0x01, //0x000004e5 movb %al, $1(%rdi,%rsi) + //0x000004e9 LBB0_40 + 0x41, 0x0f, 0xb7, 0xc1, //0x000004e9 movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000004ed orq $1, %rax + 0x48, 0x8d, 0x35, 0x78, 0x04, 0x00, 0x00, //0x000004f1 leaq $1144(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000004f8 movb (%rax,%rsi), %al + 0x89, 0xca, //0x000004fb movl %ecx, %edx + 0x88, 0x44, 0x17, 0x01, //0x000004fd movb %al, $1(%rdi,%rdx) + 0x41, 0x8a, 0x04, 0x30, //0x00000501 movb (%r8,%rsi), %al + 0x88, 0x44, 0x17, 0x02, //0x00000505 movb %al, $2(%rdi,%rdx) + 0x41, 0x0f, 0xb7, 0xc0, //0x00000509 movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x0000050d orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000511 movb (%rax,%rsi), %al + 0x88, 0x44, 0x17, 0x03, //0x00000514 movb %al, $3(%rdi,%rdx) + 0x41, 0x8a, 0x04, 0x33, //0x00000518 movb (%r11,%rsi), %al + 0x88, 0x44, 0x17, 0x04, //0x0000051c movb %al, $4(%rdi,%rdx) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000520 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000524 orq $1, %rax + 0x8a, 0x04, 0x30, //0x00000528 movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x0000052b addl $5, %ecx + 0x88, 0x44, 0x17, 0x05, //0x0000052e movb %al, $5(%rdi,%rdx) + 0xff, 0xc1, //0x00000532 incl %ecx + 0x89, 0xc8, //0x00000534 movl %ecx, %eax + 0x5d, //0x00000536 popq %rbp + 0xc3, //0x00000537 retq + //0x00000538 LBB0_38 + 0x31, 0xc9, //0x00000538 xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000053a cmpl $100000, %esi + 0x0f, 0x83, 0x90, 0xff, 0xff, 0xff, //0x00000540 jae LBB0_39 + 0xe9, 0x9e, 0xff, 0xff, 0xff, //0x00000546 jmp LBB0_40 + //0x0000054b LBB0_41 + 0x48, 0xb9, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000054b movabsq $10000000000000000, %rcx + 0x48, 0x39, 0xce, //0x00000555 cmpq %rcx, %rsi + 0x0f, 0x83, 0x8d, 0x02, 0x00, 0x00, //0x00000558 jae LBB0_43 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000055e movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x00000568 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000056b mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x0000056e shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000572 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00000578 subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xc2, //0x0000057a movd %edx, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x7a, 0xfa, 0xff, 0xff, //0x0000057e movdqu $-1414(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd0, //0x00000586 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0xf4, 0xd1, //0x0000058a pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x0000058e psrlq $45, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000593 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00000598 movq %rax, %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x0000059d movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0xf4, 0xe3, //0x000005a1 pmuludq %xmm3, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x000005a5 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd0, //0x000005a9 punpcklwd %xmm0, %xmm2 + 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x000005ad psllq $2, %xmm2 + 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x000005b2 pshuflw $80, %xmm2, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x000005b7 pshufd $80, %xmm0, %xmm0 + 0xf3, 0x0f, 0x6f, 0x15, 0x4c, 0xfa, 0xff, 0xff, //0x000005bc movdqu $-1460(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc2, //0x000005c4 pmulhuw %xmm2, %xmm0 + 0xf3, 0x0f, 0x6f, 0x25, 0x50, 0xfa, 0xff, 0xff, //0x000005c8 movdqu $-1456(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x000005d0 pmulhuw %xmm4, %xmm0 + 0xf3, 0x0f, 0x6f, 0x2d, 0x54, 0xfa, 0xff, 0xff, //0x000005d4 movdqu $-1452(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x000005dc movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf5, //0x000005e0 pmullw %xmm5, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000005e4 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x000005e9 psubw %xmm6, %xmm0 + 0x66, 0x0f, 0x6e, 0xf6, //0x000005ed movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x000005f1 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000005f5 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd9, //0x000005fa pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0xfa, 0xf3, //0x000005fe psubd %xmm3, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00000602 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00000606 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000060b pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x00000610 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xca, //0x00000615 pmulhuw %xmm2, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x00000619 pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xd5, 0xe9, //0x0000061d pmullw %xmm1, %xmm5 + 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x00000621 psllq $16, %xmm5 + 0x66, 0x0f, 0xf9, 0xcd, //0x00000626 psubw %xmm5, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x0000062a packuswb %xmm1, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x0a, 0xfa, 0xff, 0xff, //0x0000062e movdqu $-1526(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x0f, 0xfc, 0xc8, //0x00000636 paddb %xmm0, %xmm1 + 0x66, 0x0f, 0xef, 0xd2, //0x0000063a pxor %xmm2, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x0000063e pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00000642 pmovmskb %xmm2, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000646 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000064b xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00000650 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000653 movl $16, %ecx + 0x29, 0xc1, //0x00000658 subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000065a shlq $4, %rax + 0x48, 0x8d, 0x15, 0xdb, 0x03, 0x00, 0x00, //0x0000065e leaq $987(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x00000665 pshufb (%rax,%rdx), %xmm1 + 0xf3, 0x0f, 0x7f, 0x4f, 0x01, //0x0000066b movdqu %xmm1, $1(%rdi) + 0xff, 0xc1, //0x00000670 incl %ecx + 0x89, 0xc8, //0x00000672 movl %ecx, %eax + 0x5d, //0x00000674 popq %rbp + 0xc3, //0x00000675 retq + //0x00000676 LBB0_19 + 0x48, 0xba, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000676 movabsq $4153837486827862103, %rdx + 0x48, 0x89, 0xf0, //0x00000680 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00000683 mulq %rdx + 0x48, 0xc1, 0xea, 0x33, //0x00000686 shrq $51, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x0000068a imulq %rdx, %rcx + 0x48, 0x29, 0xce, //0x0000068e subq %rcx, %rsi + 0x83, 0xfa, 0x09, //0x00000691 cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x00000694 ja LBB0_21 + 0x80, 0xc2, 0x30, //0x0000069a addb $48, %dl + 0x88, 0x17, //0x0000069d movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000069f movl $1, %ecx + 0xe9, 0x5c, 0x00, 0x00, 0x00, //0x000006a4 jmp LBB0_24 + //0x000006a9 LBB0_21 + 0x83, 0xfa, 0x63, //0x000006a9 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x000006ac ja LBB0_23 + 0x89, 0xd0, //0x000006b2 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xb5, 0x02, 0x00, 0x00, //0x000006b4 leaq $693(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000006bb movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000006be movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x000006c2 movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x000006c4 movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000006c7 movl $2, %ecx + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000006cc jmp LBB0_24 + //0x000006d1 LBB0_23 + 0x89, 0xd0, //0x000006d1 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000006d3 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000006d6 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000006dc shrl $17, %eax + 0x8d, 0x48, 0x30, //0x000006df leal $48(%rax), %ecx + 0x88, 0x0f, //0x000006e2 movb %cl, (%rdi) + 0x6b, 0xc0, 0x64, //0x000006e4 imull $100, %eax, %eax + 0x29, 0xc2, //0x000006e7 subl %eax, %edx + 0x0f, 0xb7, 0xc2, //0x000006e9 movzwl %dx, %eax + 0x48, 0x8d, 0x0d, 0x7d, 0x02, 0x00, 0x00, //0x000006ec leaq $637(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000006f3 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000006f6 movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x000006fa movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x000006fd movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00000700 movl $3, %ecx + //0x00000705 LBB0_24 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000705 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x0000070f movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00000712 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00000715 shrq $26, %rdx + 0x66, 0x0f, 0x6e, 0xc2, //0x00000719 movd %edx, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0xdb, 0xf8, 0xff, 0xff, //0x0000071d movdqu $-1829(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00000725 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xf4, 0xd9, //0x00000729 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x0000072d psrlq $45, %xmm3 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000732 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x00000737 movq %rax, %xmm2 + 0x66, 0x0f, 0x6f, 0xe3, //0x0000073c movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xf4, 0xe2, //0x00000740 pmuludq %xmm2, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x00000744 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd8, //0x00000748 punpcklwd %xmm0, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x0000074c psllq $2, %xmm3 + 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00000751 pshuflw $80, %xmm3, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x00000756 pshufd $80, %xmm0, %xmm0 + 0xf3, 0x0f, 0x6f, 0x25, 0xad, 0xf8, 0xff, 0xff, //0x0000075b movdqu $-1875(%rip), %xmm4 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x00000763 pmulhuw %xmm4, %xmm0 + 0xf3, 0x0f, 0x6f, 0x2d, 0xb1, 0xf8, 0xff, 0xff, //0x00000767 movdqu $-1871(%rip), %xmm5 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc5, //0x0000076f pmulhuw %xmm5, %xmm0 + 0xf3, 0x0f, 0x6f, 0x1d, 0xb5, 0xf8, 0xff, 0xff, //0x00000773 movdqu $-1867(%rip), %xmm3 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x0000077b movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf3, //0x0000077f pmullw %xmm3, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x00000783 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x00000788 psubw %xmm6, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x0000078c imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00000792 subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xf6, //0x00000794 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00000798 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x0000079c psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd1, //0x000007a1 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0xfa, 0xf2, //0x000007a5 psubd %xmm2, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x000007a9 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000007ad psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000007b2 pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000007b7 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x000007bc pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xe4, 0xcd, //0x000007c0 pmulhuw %xmm5, %xmm1 + 0x66, 0x0f, 0xd5, 0xd9, //0x000007c4 pmullw %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x000007c8 psllq $16, %xmm3 + 0x66, 0x0f, 0xf9, 0xcb, //0x000007cd psubw %xmm3, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x000007d1 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0xfc, 0x05, 0x63, 0xf8, 0xff, 0xff, //0x000007d5 paddb $-1949(%rip), %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x000007dd movl %ecx, %eax + 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x000007df movdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x000007e4 orl $16, %ecx + 0x89, 0xc8, //0x000007e7 movl %ecx, %eax + 0x5d, //0x000007e9 popq %rbp + 0xc3, //0x000007ea retq + //0x000007eb LBB0_43 + 0x48, 0xba, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000007eb movabsq $4153837486827862103, %rdx + 0x48, 0x89, 0xf0, //0x000007f5 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000007f8 mulq %rdx + 0x48, 0xc1, 0xea, 0x33, //0x000007fb shrq $51, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x000007ff imulq %rdx, %rcx + 0x48, 0x29, 0xce, //0x00000803 subq %rcx, %rsi + 0x83, 0xfa, 0x09, //0x00000806 cmpl $9, %edx + 0x0f, 0x87, 0x10, 0x00, 0x00, 0x00, //0x00000809 ja LBB0_45 + 0x80, 0xc2, 0x30, //0x0000080f addb $48, %dl + 0x88, 0x57, 0x01, //0x00000812 movb %dl, $1(%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000815 movl $1, %ecx + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x0000081a jmp LBB0_48 + //0x0000081f LBB0_45 + 0x83, 0xfa, 0x63, //0x0000081f cmpl $99, %edx + 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00000822 ja LBB0_47 + 0x89, 0xd0, //0x00000828 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x3f, 0x01, 0x00, 0x00, //0x0000082a leaq $319(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x00000831 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x00000834 movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00000838 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x0000083b movb %al, $2(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x0000083e movl $2, %ecx + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00000843 jmp LBB0_48 + //0x00000848 LBB0_47 + 0x89, 0xd0, //0x00000848 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x0000084a shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000084d imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000853 shrl $17, %eax + 0x8d, 0x48, 0x30, //0x00000856 leal $48(%rax), %ecx + 0x88, 0x4f, 0x01, //0x00000859 movb %cl, $1(%rdi) + 0x6b, 0xc0, 0x64, //0x0000085c imull $100, %eax, %eax + 0x29, 0xc2, //0x0000085f subl %eax, %edx + 0x0f, 0xb7, 0xc2, //0x00000861 movzwl %dx, %eax + 0x48, 0x8d, 0x0d, 0x05, 0x01, 0x00, 0x00, //0x00000864 leaq $261(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x0000086b movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x0000086e movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x02, //0x00000872 movb %dl, $2(%rdi) + 0x88, 0x47, 0x03, //0x00000875 movb %al, $3(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00000878 movl $3, %ecx + //0x0000087d LBB0_48 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000087d movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00000887 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000088a mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x0000088d shrq $26, %rdx + 0x66, 0x0f, 0x6e, 0xc2, //0x00000891 movd %edx, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x63, 0xf7, 0xff, 0xff, //0x00000895 movdqu $-2205(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x0000089d movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xf4, 0xd9, //0x000008a1 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x000008a5 psrlq $45, %xmm3 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000008aa movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x000008af movq %rax, %xmm2 + 0x66, 0x0f, 0x6f, 0xe3, //0x000008b4 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xf4, 0xe2, //0x000008b8 pmuludq %xmm2, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x000008bc psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd8, //0x000008c0 punpcklwd %xmm0, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x000008c4 psllq $2, %xmm3 + 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x000008c9 pshuflw $80, %xmm3, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x000008ce pshufd $80, %xmm0, %xmm0 + 0xf3, 0x0f, 0x6f, 0x25, 0x35, 0xf7, 0xff, 0xff, //0x000008d3 movdqu $-2251(%rip), %xmm4 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x000008db pmulhuw %xmm4, %xmm0 + 0xf3, 0x0f, 0x6f, 0x2d, 0x39, 0xf7, 0xff, 0xff, //0x000008df movdqu $-2247(%rip), %xmm5 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc5, //0x000008e7 pmulhuw %xmm5, %xmm0 + 0xf3, 0x0f, 0x6f, 0x1d, 0x3d, 0xf7, 0xff, 0xff, //0x000008eb movdqu $-2243(%rip), %xmm3 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x000008f3 movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf3, //0x000008f7 pmullw %xmm3, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000008fb psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x00000900 psubw %xmm6, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000904 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000090a subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xf6, //0x0000090c movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00000910 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00000914 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd1, //0x00000919 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0xfa, 0xf2, //0x0000091d psubd %xmm2, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00000921 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00000925 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000092a pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x0000092f pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x00000934 pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xe4, 0xcd, //0x00000938 pmulhuw %xmm5, %xmm1 + 0x66, 0x0f, 0xd5, 0xd9, //0x0000093c pmullw %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00000940 psllq $16, %xmm3 + 0x66, 0x0f, 0xf9, 0xcb, //0x00000945 psubw %xmm3, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x00000949 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0xfc, 0x05, 0xeb, 0xf6, 0xff, 0xff, //0x0000094d paddb $-2325(%rip), %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x00000955 movl %ecx, %eax + 0xf3, 0x0f, 0x7f, 0x44, 0x07, 0x01, //0x00000957 movdqu %xmm0, $1(%rdi,%rax) + 0x83, 0xc9, 0x10, //0x0000095d orl $16, %ecx + 0xff, 0xc1, //0x00000960 incl %ecx + 0x89, 0xc8, //0x00000962 movl %ecx, %eax + 0x5d, //0x00000964 popq %rbp + 0xc3, //0x00000965 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000966 .p2align 4, 0x00 + //0x00000970 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000970 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000980 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000990 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x000009a0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x000009b0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x000009c0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x000009d0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000009e0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x000009f0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x00000a00 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x00000a10 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x00000a20 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00000a30 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a38 .p2align 4, 0x00 + //0x00000a40 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x00000a40 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x00000a50 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000a60 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000a70 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000a80 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000a90 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000aa0 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000ab0 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000ac0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/lspace.go b/vendor/github.com/bytedance/sonic/internal/native/sse/lspace.go new file mode 100644 index 000000000..d0067ed91 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/lspace.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_lspace func(sp unsafe.Pointer, nb int, off int) (ret int) + +var S_lspace uintptr + +//go:nosplit +func lspace(sp *byte, nb int, off int) (ret int) { + return F_lspace(rt.NoEscape(unsafe.Pointer(sp)), nb, off) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/lspace_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/lspace_subr.go new file mode 100644 index 000000000..eccbc9e15 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/lspace_subr.go @@ -0,0 +1,37 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__lspace = 0 +) + +const ( + _stack__lspace = 8 +) + +const ( + _size__lspace = 113 +) + +var ( + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {112, 0}, + } +) + +var _cfunc_lspace = []loader.CFunc{ + {"_lspace_entry", 0, _entry__lspace, 0, nil}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/lspace_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/lspace_text_amd64.go new file mode 100644 index 000000000..b75db13f4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/lspace_text_amd64.go @@ -0,0 +1,44 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_lspace = []byte{ + // .p2align 4, 0x90 + // _lspace + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x48, 0x39, 0xd6, //0x00000004 cmpq %rdx, %rsi + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000007 je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x0000000d leaq (%rdi,%rsi), %r8 + 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000011 leaq $1(%rdx,%rdi), %rax + 0x48, 0x29, 0xf2, //0x00000016 subq %rsi, %rdx + 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000019 movabsq $4294977024, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000023 .p2align 4, 0x90 + //0x00000030 LBB0_3 + 0x0f, 0xbe, 0x48, 0xff, //0x00000030 movsbl $-1(%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000034 cmpl $32, %ecx + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000037 ja LBB0_5 + 0x48, 0x0f, 0xa3, 0xce, //0x0000003d btq %rcx, %rsi + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000041 jae LBB0_5 + 0x48, 0xff, 0xc0, //0x00000047 incq %rax + 0x48, 0xff, 0xc2, //0x0000004a incq %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000004d jne LBB0_3 + 0x49, 0x29, 0xf8, //0x00000053 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000056 movq %r8, %rax + 0x5d, //0x00000059 popq %rbp + 0xc3, //0x0000005a retq + //0x0000005b LBB0_1 + 0x48, 0x01, 0xfa, //0x0000005b addq %rdi, %rdx + 0x49, 0x89, 0xd0, //0x0000005e movq %rdx, %r8 + 0x49, 0x29, 0xf8, //0x00000061 subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000064 movq %r8, %rax + 0x5d, //0x00000067 popq %rbp + 0xc3, //0x00000068 retq + //0x00000069 LBB0_5 + 0x48, 0xf7, 0xd7, //0x00000069 notq %rdi + 0x48, 0x01, 0xf8, //0x0000006c addq %rdi, %rax + 0x5d, //0x0000006f popq %rbp + 0xc3, //0x00000070 retq +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go deleted file mode 100644 index a39461028..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_amd64.go +++ /dev/null @@ -1,188 +0,0 @@ -// +build amd64 - - -// Code generated by Makefile, DO NOT EDIT. - -// 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 - -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) -) - -//go:nosplit -func i64toa(out *byte, val int64) (ret int) { - return __i64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func u64toa(out *byte, val uint64) (ret int) { - return __u64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f64toa(out *byte, val float64) (ret int) { - return __f64toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func f32toa(out *byte, val float32) (ret int) { - return __f32toa(rt.NoEscape(unsafe.Pointer(out)), val) -} - -//go:nosplit -func lspace(sp unsafe.Pointer, nb int, off int) (ret int) { - return __lspace(rt.NoEscape(sp), nb, off) -} - -//go:nosplit -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -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 -func skip_number(s *string, p *int) (ret int) { - return __skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) -} - -//go:nosplit -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 -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 -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 -func validate_utf8_fast(s *string) (ret int) { - return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) -} - diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_export.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_export.go new file mode 100644 index 000000000..8cd161011 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_export.go @@ -0,0 +1,47 @@ +/* + * 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 + +import ( + `github.com/bytedance/sonic/loader` +) + + +func Use() { + loader.WrapGoC(_text_f64toa, _cfunc_f64toa, []loader.GoC{{"_f64toa", &S_f64toa, &F_f64toa}}, "sse", "sse/f64toa.c") + loader.WrapGoC(_text_f32toa, _cfunc_f32toa, []loader.GoC{{"_f32toa", &S_f32toa, &F_f32toa}}, "sse", "sse/f32toa.c") + loader.WrapGoC(_text_get_by_path, _cfunc_get_by_path, []loader.GoC{{"_get_by_path", &S_get_by_path, &F_get_by_path}}, "sse", "sse/get_by_path.c") + loader.WrapGoC(_text_html_escape, _cfunc_html_escape, []loader.GoC{{"_html_escape", &S_html_escape, &F_html_escape}}, "sse", "sse/html_escape.c") + loader.WrapGoC(_text_i64toa, _cfunc_i64toa, []loader.GoC{{"_i64toa", &S_i64toa, &F_i64toa}}, "sse", "sse/i64toa.c") + loader.WrapGoC(_text_lspace, _cfunc_lspace, []loader.GoC{{"_lspace", &S_lspace, &F_lspace}}, "sse", "sse/lspace.c") + loader.WrapGoC(_text_quote, _cfunc_quote, []loader.GoC{{"_quote", &S_quote, &F_quote}}, "sse", "sse/quote.c") + loader.WrapGoC(_text_skip_array, _cfunc_skip_array, []loader.GoC{{"_skip_array", &S_skip_array, &F_skip_array}}, "sse", "sse/skip_array.c") + loader.WrapGoC(_text_skip_number, _cfunc_skip_number, []loader.GoC{{"_skip_number", &S_skip_number, &F_skip_number}}, "sse", "sse/skip_number.c") + loader.WrapGoC(_text_skip_one, _cfunc_skip_one, []loader.GoC{{"_skip_one", &S_skip_one, &F_skip_one}}, "sse", "sse/skip_one.c") + loader.WrapGoC(_text_skip_object, _cfunc_skip_object, []loader.GoC{{"_skip_object", &S_skip_object, &F_skip_object}}, "sse", "sse/skip_object.c") + loader.WrapGoC(_text_skip_one_fast, _cfunc_skip_one_fast, []loader.GoC{{"_skip_one_fast", &S_skip_one_fast, &F_skip_one_fast}}, "sse", "sse/skip_one_fast.c") + loader.WrapGoC(_text_u64toa, _cfunc_u64toa, []loader.GoC{{"_u64toa", &S_u64toa, &F_u64toa}}, "sse", "sse/u64toa.c") + loader.WrapGoC(_text_unquote, _cfunc_unquote, []loader.GoC{{"_unquote", &S_unquote, &F_unquote}}, "sse", "sse/unquote.c") + loader.WrapGoC(_text_validate_one, _cfunc_validate_one, []loader.GoC{{"_validate_one", &S_validate_one, &F_validate_one}}, "sse", "sse/validate_one.c") + loader.WrapGoC(_text_validate_utf8, _cfunc_validate_utf8, []loader.GoC{{"_validate_utf8", &S_validate_utf8, &F_validate_utf8}}, "sse", "sse/validate_utf8.c") + loader.WrapGoC(_text_validate_utf8_fast, _cfunc_validate_utf8_fast, []loader.GoC{{"_validate_utf8_fast", &S_validate_utf8_fast, &F_validate_utf8_fast}}, "sse", "sse/validate_utf8_fast.c") + loader.WrapGoC(_text_vnumber, _cfunc_vnumber, []loader.GoC{{"_vnumber", &S_vnumber, &F_vnumber}}, "sse", "sse/vnumber.c") + loader.WrapGoC(_text_vsigned, _cfunc_vsigned, []loader.GoC{{"_vsigned", &S_vsigned, &F_vsigned}}, "sse", "sse/vsigned.c") + loader.WrapGoC(_text_vunsigned, _cfunc_vunsigned, []loader.GoC{{"_vunsigned", &S_vunsigned, &F_vunsigned}}, "sse", "sse/vunsigned.c") + loader.WrapGoC(_text_vstring, _cfunc_vstring, []loader.GoC{{"_vstring", &S_vstring, &F_vstring}}, "sse", "sse/vstring.c") + loader.WrapGoC(_text_value, _cfunc_value, []loader.GoC{{"_value", &S_value, &F_value}}, "sse", "sse/value.c") +} 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 deleted file mode 100644 index 854fe50de..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go +++ /dev/null @@ -1,608 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -package sse - -import ( - `github.com/bytedance/sonic/loader` -) - -const ( - _entry__f32toa = 31632 - _entry__f64toa = 160 - _entry__format_significand = 35968 - _entry__format_integer = 2960 - _entry__get_by_path = 26192 - _entry__fsm_exec = 18016 - _entry__advance_string = 14352 - _entry__advance_string_default = 37360 - _entry__do_skip_number = 20608 - _entry__skip_one_fast = 22288 - _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 = 22064 - _entry__unquote = 6576 - _entry__validate_one = 22112 - _entry__validate_utf8 = 30400 - _entry__validate_utf8_fast = 31072 - _entry__value = 12352 - _entry__vnumber = 15744 - _entry__atof_eisel_lemire64 = 10192 - _entry__atof_native = 11744 - _entry__decimal_to_f64 = 10560 - _entry__right_shift = 36928 - _entry__left_shift = 36432 - _entry__vsigned = 17296 - _entry__vstring = 14176 - _entry__vunsigned = 17632 -) - -const ( - _stack__f32toa = 48 - _stack__f64toa = 80 - _stack__format_significand = 24 - _stack__format_integer = 16 - _stack__get_by_path = 272 - _stack__fsm_exec = 168 - _stack__advance_string = 64 - _stack__advance_string_default = 64 - _stack__do_skip_number = 48 - _stack__skip_one_fast = 136 - _stack__html_escape = 72 - _stack__i64toa = 16 - _stack__u64toa = 8 - _stack__lspace = 8 - _stack__quote = 64 - _stack__skip_array = 176 - _stack__skip_number = 104 - _stack__skip_object = 176 - _stack__skip_one = 176 - _stack__unquote = 88 - _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 = 120 - _stack__vunsigned = 8 -) - -const ( - _size__f32toa = 3328 - _size__f64toa = 2800 - _size__format_significand = 464 - _size__format_integer = 432 - _size__get_by_path = 4208 - _size__fsm_exec = 1692 - _size__advance_string = 1344 - _size__advance_string_default = 960 - _size__do_skip_number = 956 - _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 = 160 - _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 = 1308 - _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__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__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__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}, - {12, 40}, - {13, 48}, - {107, 56}, - {111, 48}, - {112, 40}, - {114, 32}, - {116, 24}, - {118, 16}, - {120, 8}, - {121, 0}, - {145, 56}, - } - _pcsp__skip_object = [][2]uint32{ - {1, 0}, - {26, 8}, - {32, 0}, - } - _pcsp__skip_one = [][2]uint32{ - {1, 0}, - {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}, - {1308, 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}, - {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, - {"_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}, - {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, - {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, - {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, - {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, - {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, - {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, - {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, - {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, - {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, - {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, - {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, - {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, - {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, - {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, - {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, - {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, - {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, - {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, - {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, - {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, - {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, - {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, - {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, - {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go deleted file mode 100644 index 9f94de48a..000000000 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go +++ /dev/null @@ -1,14282 +0,0 @@ -// +build amd64 -// Code generated by asm2asm, DO NOT EDIT. - -package sse - -var Text__native_entry__ = []byte{ - 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) - 0xc3, //0x0000000c retq - 0x90, 0x90, 0x90, //0x0000000d .p2align 4, 0x90 - //0x00000010 _lspace - 0x55, //0x00000010 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp - 0x48, 0x39, 0xd6, //0x00000014 cmpq %rdx, %rsi - 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000017 je LBB0_1 - 0x4c, 0x8d, 0x04, 0x37, //0x0000001d leaq (%rdi,%rsi), %r8 - 0x48, 0x8d, 0x44, 0x3a, 0x01, //0x00000021 leaq $1(%rdx,%rdi), %rax - 0x48, 0x29, 0xf2, //0x00000026 subq %rsi, %rdx - 0x48, 0xbe, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000029 movabsq $4294977024, %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000033 .p2align 4, 0x90 - //0x00000040 LBB0_3 - 0x0f, 0xbe, 0x48, 0xff, //0x00000040 movsbl $-1(%rax), %ecx - 0x83, 0xf9, 0x20, //0x00000044 cmpl $32, %ecx - 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00000047 ja LBB0_5 - 0x48, 0x0f, 0xa3, 0xce, //0x0000004d btq %rcx, %rsi - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000051 jae LBB0_5 - 0x48, 0xff, 0xc0, //0x00000057 incq %rax - 0x48, 0xff, 0xc2, //0x0000005a incq %rdx - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000005d jne LBB0_3 - 0x49, 0x29, 0xf8, //0x00000063 subq %rdi, %r8 - 0x4c, 0x89, 0xc0, //0x00000066 movq %r8, %rax - 0x5d, //0x00000069 popq %rbp - 0xc3, //0x0000006a retq - //0x0000006b LBB0_1 - 0x48, 0x01, 0xfa, //0x0000006b addq %rdi, %rdx - 0x49, 0x89, 0xd0, //0x0000006e movq %rdx, %r8 - 0x49, 0x29, 0xf8, //0x00000071 subq %rdi, %r8 - 0x4c, 0x89, 0xc0, //0x00000074 movq %r8, %rax - 0x5d, //0x00000077 popq %rbp - 0xc3, //0x00000078 retq - //0x00000079 LBB0_5 - 0x48, 0xf7, 0xd7, //0x00000079 notq %rdi - 0x48, 0x01, 0xf8, //0x0000007c addq %rdi, %rax - 0x5d, //0x0000007f popq %rbp - 0xc3, //0x00000080 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000081 .p2align 4, 0x00 - //0x00000090 LCPI1_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000090 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x000000a0 .p2align 4, 0x90 - //0x000000a0 _f64toa - 0x55, //0x000000a0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp - 0x41, 0x57, //0x000000a4 pushq %r15 - 0x41, 0x56, //0x000000a6 pushq %r14 - 0x41, 0x55, //0x000000a8 pushq %r13 - 0x41, 0x54, //0x000000aa pushq %r12 - 0x53, //0x000000ac pushq %rbx - 0x50, //0x000000ad pushq %rax - 0x66, 0x48, 0x0f, 0x7e, 0xc2, //0x000000ae movq %xmm0, %rdx - 0x48, 0x89, 0xd0, //0x000000b3 movq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x000000b6 shrq $52, %rax - 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000ba andl $2047, %eax - 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000bf cmpl $2047, %eax - 0x0f, 0x84, 0x99, 0x0a, 0x00, 0x00, //0x000000c4 je LBB1_114 - 0x49, 0x89, 0xfe, //0x000000ca movq %rdi, %r14 - 0xc6, 0x07, 0x2d, //0x000000cd movb $45, (%rdi) - 0x49, 0x89, 0xd4, //0x000000d0 movq %rdx, %r12 - 0x49, 0xc1, 0xec, 0x3f, //0x000000d3 shrq $63, %r12 - 0x4e, 0x8d, 0x3c, 0x27, //0x000000d7 leaq (%rdi,%r12), %r15 - 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000db leaq (,%rdx,2), %rcx - 0x48, 0x85, 0xc9, //0x000000e3 testq %rcx, %rcx - 0x0f, 0x84, 0x75, 0x02, 0x00, 0x00, //0x000000e6 je LBB1_19 - 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000ec movabsq $4503599627370495, %rdi - 0x48, 0x21, 0xfa, //0x000000f6 andq %rdi, %rdx - 0x85, 0xc0, //0x000000f9 testl %eax, %eax - 0x0f, 0x84, 0x69, 0x0a, 0x00, 0x00, //0x000000fb je LBB1_115 - 0x48, 0xff, 0xc7, //0x00000101 incq %rdi - 0x48, 0x09, 0xd7, //0x00000104 orq %rdx, %rdi - 0x8d, 0x98, 0xcd, 0xfb, 0xff, 0xff, //0x00000107 leal $-1075(%rax), %ebx - 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000010d leal $-1023(%rax), %ecx - 0x83, 0xf9, 0x34, //0x00000113 cmpl $52, %ecx - 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000116 ja LBB1_5 - 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000011c movl $1075, %ecx - 0x29, 0xc1, //0x00000121 subl %eax, %ecx - 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000123 movq $-1, %rsi - 0x48, 0xd3, 0xe6, //0x0000012a shlq %cl, %rsi - 0x48, 0xf7, 0xd6, //0x0000012d notq %rsi - 0x48, 0x85, 0xf7, //0x00000130 testq %rsi, %rdi - 0x0f, 0x84, 0x0d, 0x04, 0x00, 0x00, //0x00000133 je LBB1_43 - //0x00000139 LBB1_5 - 0x48, 0x85, 0xd2, //0x00000139 testq %rdx, %rdx - 0x0f, 0x94, 0xc1, //0x0000013c sete %cl - 0x83, 0xf8, 0x01, //0x0000013f cmpl $1, %eax - 0x0f, 0x97, 0xc0, //0x00000142 seta %al - 0x20, 0xc8, //0x00000145 andb %cl, %al - 0x0f, 0xb6, 0xc0, //0x00000147 movzbl %al, %eax - 0x48, 0x8d, 0x74, 0xb8, 0xfe, //0x0000014a leaq $-2(%rax,%rdi,4), %rsi - 0x44, 0x69, 0xcb, 0x13, 0x44, 0x13, 0x00, //0x0000014f imull $1262611, %ebx, %r9d - 0x31, 0xc9, //0x00000156 xorl %ecx, %ecx - 0x84, 0xc0, //0x00000158 testb %al, %al - 0xb8, 0xff, 0xfe, 0x07, 0x00, //0x0000015a movl $524031, %eax - 0x0f, 0x44, 0xc1, //0x0000015f cmovel %ecx, %eax - 0x41, 0x29, 0xc1, //0x00000162 subl %eax, %r9d - 0x41, 0xc1, 0xf9, 0x16, //0x00000165 sarl $22, %r9d - 0x41, 0x69, 0xc9, 0xb1, 0x6c, 0xe5, 0xff, //0x00000169 imull $-1741647, %r9d, %ecx - 0xc1, 0xe9, 0x13, //0x00000170 shrl $19, %ecx - 0x01, 0xd9, //0x00000173 addl %ebx, %ecx - 0xb8, 0x24, 0x01, 0x00, 0x00, //0x00000175 movl $292, %eax - 0x44, 0x29, 0xc8, //0x0000017a subl %r9d, %eax - 0x48, 0x98, //0x0000017d cltq - 0x48, 0xc1, 0xe0, 0x04, //0x0000017f shlq $4, %rax - 0x48, 0x8d, 0x15, 0xb6, 0xc0, 0x00, 0x00, //0x00000183 leaq $49334(%rip), %rdx /* _pow10_ceil_sig.g+0(%rip) */ - 0x4c, 0x8b, 0x1c, 0x10, //0x0000018a movq (%rax,%rdx), %r11 - 0x4c, 0x8b, 0x6c, 0x10, 0x08, //0x0000018e movq $8(%rax,%rdx), %r13 - 0xfe, 0xc1, //0x00000193 incb %cl - 0x48, 0xd3, 0xe6, //0x00000195 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x00000198 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x0000019b mulq %r13 - 0x48, 0x89, 0xd3, //0x0000019e movq %rdx, %rbx - 0x48, 0x89, 0xf0, //0x000001a1 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x000001a4 mulq %r11 - 0x48, 0x8d, 0x34, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x000001a7 leaq (,%rdi,4), %rsi - 0x48, 0x01, 0xd8, //0x000001af addq %rbx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x000001b2 adcq $0, %rdx - 0x31, 0xdb, //0x000001b6 xorl %ebx, %ebx - 0x48, 0x83, 0xf8, 0x01, //0x000001b8 cmpq $1, %rax - 0x0f, 0x97, 0xc3, //0x000001bc seta %bl - 0x48, 0x09, 0xd3, //0x000001bf orq %rdx, %rbx - 0x48, 0xd3, 0xe6, //0x000001c2 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x000001c5 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x000001c8 mulq %r13 - 0x49, 0x89, 0xd2, //0x000001cb movq %rdx, %r10 - 0x48, 0x89, 0xf0, //0x000001ce movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x000001d1 mulq %r11 - 0x49, 0x89, 0xd0, //0x000001d4 movq %rdx, %r8 - 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001d7 leaq $2(,%rdi,4), %rsi - 0x4c, 0x01, 0xd0, //0x000001df addq %r10, %rax - 0x49, 0x83, 0xd0, 0x00, //0x000001e2 adcq $0, %r8 - 0x45, 0x31, 0xd2, //0x000001e6 xorl %r10d, %r10d - 0x48, 0x83, 0xf8, 0x01, //0x000001e9 cmpq $1, %rax - 0x41, 0x0f, 0x97, 0xc2, //0x000001ed seta %r10b - 0x4d, 0x09, 0xc2, //0x000001f1 orq %r8, %r10 - 0x48, 0xd3, 0xe6, //0x000001f4 shlq %cl, %rsi - 0x48, 0x89, 0xf0, //0x000001f7 movq %rsi, %rax - 0x49, 0xf7, 0xe5, //0x000001fa mulq %r13 - 0x48, 0x89, 0xd1, //0x000001fd movq %rdx, %rcx - 0x48, 0x89, 0xf0, //0x00000200 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00000203 mulq %r11 - 0x48, 0x01, 0xc8, //0x00000206 addq %rcx, %rax - 0x48, 0x83, 0xd2, 0x00, //0x00000209 adcq $0, %rdx - 0x31, 0xc9, //0x0000020d xorl %ecx, %ecx - 0x48, 0x83, 0xf8, 0x01, //0x0000020f cmpq $1, %rax - 0x0f, 0x97, 0xc1, //0x00000213 seta %cl - 0x48, 0x09, 0xd1, //0x00000216 orq %rdx, %rcx - 0x83, 0xe7, 0x01, //0x00000219 andl $1, %edi - 0x48, 0x01, 0xfb, //0x0000021c addq %rdi, %rbx - 0x48, 0x29, 0xf9, //0x0000021f subq %rdi, %rcx - 0x49, 0x83, 0xfa, 0x28, //0x00000222 cmpq $40, %r10 - 0x0f, 0x82, 0x01, 0x01, 0x00, 0x00, //0x00000226 jb LBB1_17 - 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000022c movabsq $-3689348814741910323, %rdx - 0x4c, 0x89, 0xc0, //0x00000236 movq %r8, %rax - 0x48, 0xf7, 0xe2, //0x00000239 mulq %rdx - 0x48, 0x89, 0xd7, //0x0000023c movq %rdx, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x0000023f shrq $5, %rdi - 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x00000243 leaq (,%rdi,8), %rax - 0x48, 0x8d, 0x14, 0x80, //0x0000024b leaq (%rax,%rax,4), %rdx - 0x48, 0x39, 0xd3, //0x0000024f cmpq %rdx, %rbx - 0x40, 0x0f, 0x96, 0xc6, //0x00000252 setbe %sil - 0x48, 0x8d, 0x44, 0x80, 0x28, //0x00000256 leaq $40(%rax,%rax,4), %rax - 0x48, 0x39, 0xc8, //0x0000025b cmpq %rcx, %rax - 0x0f, 0x96, 0xc2, //0x0000025e setbe %dl - 0x40, 0x38, 0xd6, //0x00000261 cmpb %dl, %sil - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000264 je LBB1_17 - 0x31, 0xd2, //0x0000026a xorl %edx, %edx - 0x48, 0x39, 0xc8, //0x0000026c cmpq %rcx, %rax - 0x0f, 0x96, 0xc2, //0x0000026f setbe %dl - 0x48, 0x01, 0xd7, //0x00000272 addq %rdx, %rdi - 0x41, 0xff, 0xc1, //0x00000275 incl %r9d - 0x48, 0xbb, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000278 movabsq $8589934560, %rbx - 0x48, 0x8d, 0x83, 0x1f, 0xe4, 0x0b, 0x54, //0x00000282 leaq $1410065439(%rbx), %rax - 0x48, 0x39, 0xc7, //0x00000289 cmpq %rax, %rdi - 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000028c ja LBB1_23 - //0x00000292 LBB1_8 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000292 movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x00000297 cmpq $10, %rdi - 0x0f, 0x82, 0x9c, 0x01, 0x00, 0x00, //0x0000029b jb LBB1_30 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000002a1 movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x000002a6 cmpq $100, %rdi - 0x0f, 0x82, 0x8d, 0x01, 0x00, 0x00, //0x000002aa jb LBB1_30 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000002b0 movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000002b5 cmpq $1000, %rdi - 0x0f, 0x82, 0x7b, 0x01, 0x00, 0x00, //0x000002bc jb LBB1_30 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000002c2 movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000002c7 cmpq $10000, %rdi - 0x0f, 0x82, 0x69, 0x01, 0x00, 0x00, //0x000002ce jb LBB1_30 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000002d4 movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000002d9 cmpq $100000, %rdi - 0x0f, 0x82, 0x57, 0x01, 0x00, 0x00, //0x000002e0 jb LBB1_30 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x000002e6 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000002eb cmpq $1000000, %rdi - 0x0f, 0x82, 0x45, 0x01, 0x00, 0x00, //0x000002f2 jb LBB1_30 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x000002f8 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000002fd cmpq $10000000, %rdi - 0x0f, 0x82, 0x33, 0x01, 0x00, 0x00, //0x00000304 jb LBB1_30 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000030a movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000030f cmpq $100000000, %rdi - 0x0f, 0x82, 0x21, 0x01, 0x00, 0x00, //0x00000316 jb LBB1_30 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x0000031c cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000323 movl $10, %edx - 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000328 jmp LBB1_29 - //0x0000032d LBB1_17 - 0x4d, 0x89, 0xc3, //0x0000032d movq %r8, %r11 - 0x49, 0xc1, 0xeb, 0x02, //0x00000330 shrq $2, %r11 - 0x4c, 0x89, 0xc2, //0x00000334 movq %r8, %rdx - 0x48, 0x83, 0xe2, 0xfc, //0x00000337 andq $-4, %rdx - 0x48, 0x39, 0xd3, //0x0000033b cmpq %rdx, %rbx - 0x0f, 0x96, 0xc3, //0x0000033e setbe %bl - 0x48, 0x8d, 0x72, 0x04, //0x00000341 leaq $4(%rdx), %rsi - 0x48, 0x39, 0xce, //0x00000345 cmpq %rcx, %rsi - 0x0f, 0x96, 0xc0, //0x00000348 setbe %al - 0x38, 0xc3, //0x0000034b cmpb %al, %bl - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000034d je LBB1_20 - 0x31, 0xff, //0x00000353 xorl %edi, %edi - 0x48, 0x39, 0xce, //0x00000355 cmpq %rcx, %rsi - 0x40, 0x0f, 0x96, 0xc7, //0x00000358 setbe %dil - 0xe9, 0x32, 0x00, 0x00, 0x00, //0x0000035c jmp LBB1_22 - //0x00000361 LBB1_19 - 0x41, 0xc6, 0x07, 0x30, //0x00000361 movb $48, (%r15) - 0x45, 0x29, 0xf7, //0x00000365 subl %r14d, %r15d - 0x41, 0xff, 0xc7, //0x00000368 incl %r15d - 0x44, 0x89, 0xfb, //0x0000036b movl %r15d, %ebx - 0xe9, 0xdf, 0x07, 0x00, 0x00, //0x0000036e jmp LBB1_113 - //0x00000373 LBB1_20 - 0x48, 0x83, 0xca, 0x02, //0x00000373 orq $2, %rdx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000377 movl $1, %edi - 0x49, 0x39, 0xd2, //0x0000037c cmpq %rdx, %r10 - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000037f ja LBB1_22 - 0x0f, 0x94, 0xc0, //0x00000385 sete %al - 0x41, 0xc0, 0xe8, 0x02, //0x00000388 shrb $2, %r8b - 0x41, 0x20, 0xc0, //0x0000038c andb %al, %r8b - 0x41, 0x0f, 0xb6, 0xf8, //0x0000038f movzbl %r8b, %edi - //0x00000393 LBB1_22 - 0x4c, 0x01, 0xdf, //0x00000393 addq %r11, %rdi - 0x48, 0xbb, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000396 movabsq $8589934560, %rbx - 0x48, 0x8d, 0x83, 0x1f, 0xe4, 0x0b, 0x54, //0x000003a0 leaq $1410065439(%rbx), %rax - 0x48, 0x39, 0xc7, //0x000003a7 cmpq %rax, %rdi - 0x0f, 0x86, 0xe2, 0xfe, 0xff, 0xff, //0x000003aa jbe LBB1_8 - //0x000003b0 LBB1_23 - 0x48, 0x89, 0xf8, //0x000003b0 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x000003b3 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003b7 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003bc cmpq $48828125, %rax - 0x0f, 0x82, 0x75, 0x00, 0x00, 0x00, //0x000003c2 jb LBB1_30 - 0x48, 0x89, 0xf8, //0x000003c8 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x000003cb shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003cf movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003d4 cmpq $244140625, %rax - 0x0f, 0x82, 0x5d, 0x00, 0x00, 0x00, //0x000003da jb LBB1_30 - 0x48, 0x89, 0xf8, //0x000003e0 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x000003e3 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000003e7 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000003ec cmpq $1220703125, %rax - 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000003f2 jb LBB1_30 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000003f8 movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000003fd movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000407 cmpq %rax, %rdi - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x0000040a jb LBB1_30 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000410 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000415 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x0000041f cmpq %rax, %rdi - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00000422 jb LBB1_30 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000428 movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x00000432 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000435 movl $17, %edx - //0x0000043a LBB1_29 - 0x83, 0xda, 0x00, //0x0000043a sbbl $0, %edx - //0x0000043d LBB1_30 - 0x46, 0x8d, 0x2c, 0x0a, //0x0000043d leal (%rdx,%r9), %r13d - 0x42, 0x8d, 0x44, 0x0a, 0x05, //0x00000441 leal $5(%rdx,%r9), %eax - 0x83, 0xf8, 0x1b, //0x00000446 cmpl $27, %eax - 0x0f, 0x82, 0x95, 0x00, 0x00, 0x00, //0x00000449 jb LBB1_38 - 0x4d, 0x8d, 0x67, 0x01, //0x0000044f leaq $1(%r15), %r12 - 0x4c, 0x89, 0xe6, //0x00000453 movq %r12, %rsi - 0xe8, 0x25, 0x88, 0x00, 0x00, //0x00000456 callq _format_significand - 0x48, 0x89, 0xc3, //0x0000045b movq %rax, %rbx - 0x90, 0x90, //0x0000045e .p2align 4, 0x90 - //0x00000460 LBB1_32 - 0x80, 0x7b, 0xff, 0x30, //0x00000460 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00000464 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000468 je LBB1_32 - 0x41, 0x8a, 0x47, 0x01, //0x0000046e movb $1(%r15), %al - 0x41, 0x88, 0x07, //0x00000472 movb %al, (%r15) - 0x48, 0x8d, 0x43, 0x01, //0x00000475 leaq $1(%rbx), %rax - 0x48, 0x89, 0xc1, //0x00000479 movq %rax, %rcx - 0x4c, 0x29, 0xe1, //0x0000047c subq %r12, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x0000047f cmpq $2, %rcx - 0x0f, 0x8c, 0x08, 0x00, 0x00, 0x00, //0x00000483 jl LBB1_35 - 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000489 movb $46, (%r12) - 0x48, 0x89, 0xc3, //0x0000048e movq %rax, %rbx - //0x00000491 LBB1_35 - 0xc6, 0x03, 0x65, //0x00000491 movb $101, (%rbx) - 0x45, 0x85, 0xed, //0x00000494 testl %r13d, %r13d - 0x0f, 0x8e, 0x57, 0x01, 0x00, 0x00, //0x00000497 jle LBB1_51 - 0x41, 0xff, 0xcd, //0x0000049d decl %r13d - 0xc6, 0x43, 0x01, 0x2b, //0x000004a0 movb $43, $1(%rbx) - 0x44, 0x89, 0xe8, //0x000004a4 movl %r13d, %eax - 0x83, 0xf8, 0x64, //0x000004a7 cmpl $100, %eax - 0x0f, 0x8c, 0x59, 0x01, 0x00, 0x00, //0x000004aa jl LBB1_52 - //0x000004b0 LBB1_37 - 0x89, 0xc1, //0x000004b0 movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004b2 movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x000004b7 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x000004bb shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x000004bf leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x000004c2 leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x000004c5 subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0xa2, 0xbc, 0x00, 0x00, //0x000004c7 leaq $48290(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x000004ce movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x000004d2 movw %cx, $2(%rbx) - 0x0c, 0x30, //0x000004d6 orb $48, %al - 0x88, 0x43, 0x04, //0x000004d8 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x000004db addq $5, %rbx - 0xe9, 0x6b, 0x06, 0x00, 0x00, //0x000004df jmp LBB1_112 - //0x000004e4 LBB1_38 - 0x45, 0x85, 0xc9, //0x000004e4 testl %r9d, %r9d - 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x000004e7 js LBB1_54 - 0x4d, 0x63, 0xed, //0x000004ed movslq %r13d, %r13 - 0x4b, 0x8d, 0x1c, 0x2f, //0x000004f0 leaq (%r15,%r13), %rbx - 0x4c, 0x89, 0xfe, //0x000004f4 movq %r15, %rsi - 0xe8, 0x94, 0x06, 0x00, 0x00, //0x000004f7 callq _format_integer - 0x48, 0x39, 0xd8, //0x000004fc cmpq %rbx, %rax - 0x0f, 0x83, 0x4a, 0x06, 0x00, 0x00, //0x000004ff jae LBB1_112 - 0x4d, 0x01, 0xec, //0x00000505 addq %r13, %r12 - 0x49, 0x29, 0xc4, //0x00000508 subq %rax, %r12 - 0x4d, 0x01, 0xf4, //0x0000050b addq %r14, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x0000050e cmpq $32, %r12 - 0x0f, 0x82, 0x18, 0x03, 0x00, 0x00, //0x00000512 jb LBB1_76 - 0x4c, 0x89, 0xe1, //0x00000518 movq %r12, %rcx - 0x48, 0x83, 0xe1, 0xe0, //0x0000051b andq $-32, %rcx - 0x48, 0x8d, 0x79, 0xe0, //0x0000051f leaq $-32(%rcx), %rdi - 0x48, 0x89, 0xfe, //0x00000523 movq %rdi, %rsi - 0x48, 0xc1, 0xee, 0x05, //0x00000526 shrq $5, %rsi - 0x48, 0xff, 0xc6, //0x0000052a incq %rsi - 0x89, 0xf2, //0x0000052d movl %esi, %edx - 0x83, 0xe2, 0x07, //0x0000052f andl $7, %edx - 0x48, 0x81, 0xff, 0xe0, 0x00, 0x00, 0x00, //0x00000532 cmpq $224, %rdi - 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00000539 jae LBB1_69 - 0x31, 0xff, //0x0000053f xorl %edi, %edi - 0xe9, 0x92, 0x02, 0x00, 0x00, //0x00000541 jmp LBB1_71 - //0x00000546 LBB1_43 - 0x48, 0xd3, 0xef, //0x00000546 shrq %cl, %rdi - 0x48, 0xb8, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000549 movabsq $8589934560, %rax - 0x48, 0x05, 0x1f, 0xe4, 0x0b, 0x54, //0x00000553 addq $1410065439, %rax - 0x48, 0x39, 0xc7, //0x00000559 cmpq %rax, %rdi - 0x0f, 0x86, 0x3b, 0x01, 0x00, 0x00, //0x0000055c jbe LBB1_60 - 0x48, 0x89, 0xf8, //0x00000562 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0b, //0x00000565 shrq $11, %rax - 0xba, 0x0b, 0x00, 0x00, 0x00, //0x00000569 movl $11, %edx - 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x0000056e cmpq $48828125, %rax - 0x0f, 0x82, 0xad, 0x01, 0x00, 0x00, //0x00000574 jb LBB1_68 - 0x48, 0x89, 0xf8, //0x0000057a movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0c, //0x0000057d shrq $12, %rax - 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000581 movl $12, %edx - 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000586 cmpq $244140625, %rax - 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x0000058c jb LBB1_68 - 0x48, 0x89, 0xf8, //0x00000592 movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x0d, //0x00000595 shrq $13, %rax - 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000599 movl $13, %edx - 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000059e cmpq $1220703125, %rax - 0x0f, 0x82, 0x7d, 0x01, 0x00, 0x00, //0x000005a4 jb LBB1_68 - 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005aa movl $14, %edx - 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005af movabsq $100000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005b9 cmpq %rax, %rdi - 0x0f, 0x82, 0x65, 0x01, 0x00, 0x00, //0x000005bc jb LBB1_68 - 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005c2 movl $15, %edx - 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005c7 movabsq $1000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005d1 cmpq %rax, %rdi - 0x0f, 0x82, 0x4d, 0x01, 0x00, 0x00, //0x000005d4 jb LBB1_68 - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005da movabsq $10000000000000000, %rax - 0x48, 0x39, 0xc7, //0x000005e4 cmpq %rax, %rdi - 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005e7 movl $17, %edx - //0x000005ec LBB1_50 - 0x83, 0xda, 0x00, //0x000005ec sbbl $0, %edx - 0xe9, 0x33, 0x01, 0x00, 0x00, //0x000005ef jmp LBB1_68 - //0x000005f4 LBB1_51 - 0xc6, 0x43, 0x01, 0x2d, //0x000005f4 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005f8 movl $1, %eax - 0x44, 0x29, 0xe8, //0x000005fd subl %r13d, %eax - 0x83, 0xf8, 0x64, //0x00000600 cmpl $100, %eax - 0x0f, 0x8d, 0xa7, 0xfe, 0xff, 0xff, //0x00000603 jge LBB1_37 - //0x00000609 LBB1_52 - 0x83, 0xf8, 0x0a, //0x00000609 cmpl $10, %eax - 0x0f, 0x8c, 0x7d, 0x00, 0x00, 0x00, //0x0000060c jl LBB1_59 - 0x48, 0x98, //0x00000612 cltq - 0x48, 0x8d, 0x0d, 0x55, 0xbb, 0x00, 0x00, //0x00000614 leaq $47957(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x0000061b movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x0000061f movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00000623 addq $4, %rbx - 0xe9, 0x23, 0x05, 0x00, 0x00, //0x00000627 jmp LBB1_112 - //0x0000062c LBB1_54 - 0x45, 0x85, 0xed, //0x0000062c testl %r13d, %r13d - 0x0f, 0x8f, 0x0c, 0x03, 0x00, 0x00, //0x0000062f jg LBB1_85 - 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000635 movw $11824, (%r15) - 0x49, 0x83, 0xc7, 0x02, //0x0000063b addq $2, %r15 - 0x45, 0x85, 0xed, //0x0000063f testl %r13d, %r13d - 0x0f, 0x89, 0xf9, 0x02, 0x00, 0x00, //0x00000642 jns LBB1_85 - 0x31, 0xc0, //0x00000648 xorl %eax, %eax - 0x41, 0x83, 0xfd, 0xe0, //0x0000064a cmpl $-32, %r13d - 0x0f, 0x87, 0xce, 0x02, 0x00, 0x00, //0x0000064e ja LBB1_83 - 0x45, 0x89, 0xe8, //0x00000654 movl %r13d, %r8d - 0x41, 0xf7, 0xd0, //0x00000657 notl %r8d - 0x49, 0xff, 0xc0, //0x0000065a incq %r8 - 0x4c, 0x89, 0xc0, //0x0000065d movq %r8, %rax - 0x49, 0x89, 0xda, //0x00000660 movq %rbx, %r10 - 0x48, 0x21, 0xd8, //0x00000663 andq %rbx, %rax - 0x48, 0x8d, 0x48, 0xe0, //0x00000666 leaq $-32(%rax), %rcx - 0x48, 0x89, 0xcb, //0x0000066a movq %rcx, %rbx - 0x48, 0xc1, 0xeb, 0x05, //0x0000066d shrq $5, %rbx - 0x48, 0xff, 0xc3, //0x00000671 incq %rbx - 0x41, 0x89, 0xd9, //0x00000674 movl %ebx, %r9d - 0x41, 0x83, 0xe1, 0x07, //0x00000677 andl $7, %r9d - 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000067b cmpq $224, %rcx - 0x0f, 0x83, 0xbc, 0x01, 0x00, 0x00, //0x00000682 jae LBB1_77 - 0x31, 0xdb, //0x00000688 xorl %ebx, %ebx - 0xe9, 0x52, 0x02, 0x00, 0x00, //0x0000068a jmp LBB1_79 - //0x0000068f LBB1_59 - 0x04, 0x30, //0x0000068f addb $48, %al - 0x88, 0x43, 0x02, //0x00000691 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x00000694 addq $3, %rbx - 0xe9, 0xb2, 0x04, 0x00, 0x00, //0x00000698 jmp LBB1_112 - //0x0000069d LBB1_60 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000069d movl $1, %edx - 0x48, 0x83, 0xff, 0x0a, //0x000006a2 cmpq $10, %rdi - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006a6 jb LBB1_68 - 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006ac movl $2, %edx - 0x48, 0x83, 0xff, 0x64, //0x000006b1 cmpq $100, %rdi - 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006b5 jb LBB1_68 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006bb movl $3, %edx - 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006c0 cmpq $1000, %rdi - 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006c7 jb LBB1_68 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006cd movl $4, %edx - 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006d2 cmpq $10000, %rdi - 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006d9 jb LBB1_68 - 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006df movl $5, %edx - 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006e4 cmpq $100000, %rdi - 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006eb jb LBB1_68 - 0xba, 0x06, 0x00, 0x00, 0x00, //0x000006f1 movl $6, %edx - 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000006f6 cmpq $1000000, %rdi - 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000006fd jb LBB1_68 - 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000703 movl $7, %edx - 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x00000708 cmpq $10000000, %rdi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000070f jb LBB1_68 - 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000715 movl $8, %edx - 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000071a cmpq $100000000, %rdi - 0x0f, 0x83, 0x50, 0x04, 0x00, 0x00, //0x00000721 jae LBB1_116 - //0x00000727 LBB1_68 - 0x4c, 0x89, 0xfe, //0x00000727 movq %r15, %rsi - 0xe8, 0x61, 0x04, 0x00, 0x00, //0x0000072a callq _format_integer - 0x48, 0x89, 0xc3, //0x0000072f movq %rax, %rbx - 0xe9, 0x18, 0x04, 0x00, 0x00, //0x00000732 jmp LBB1_112 - //0x00000737 LBB1_69 - 0x48, 0x29, 0xd6, //0x00000737 subq %rdx, %rsi - 0x31, 0xff, //0x0000073a xorl %edi, %edi - 0x66, 0x0f, 0x6f, 0x05, 0x4c, 0xf9, 0xff, 0xff, //0x0000073c movdqa $-1716(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000744 .p2align 4, 0x90 - //0x00000750 LBB1_70 - 0xf3, 0x0f, 0x7f, 0x04, 0x38, //0x00000750 movdqu %xmm0, (%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x10, //0x00000755 movdqu %xmm0, $16(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x20, //0x0000075b movdqu %xmm0, $32(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x30, //0x00000761 movdqu %xmm0, $48(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x40, //0x00000767 movdqu %xmm0, $64(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x50, //0x0000076d movdqu %xmm0, $80(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x60, //0x00000773 movdqu %xmm0, $96(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x70, //0x00000779 movdqu %xmm0, $112(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x80, 0x00, 0x00, 0x00, //0x0000077f movdqu %xmm0, $128(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x90, 0x00, 0x00, 0x00, //0x00000788 movdqu %xmm0, $144(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xa0, 0x00, 0x00, 0x00, //0x00000791 movdqu %xmm0, $160(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xb0, 0x00, 0x00, 0x00, //0x0000079a movdqu %xmm0, $176(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xc0, 0x00, 0x00, 0x00, //0x000007a3 movdqu %xmm0, $192(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xd0, 0x00, 0x00, 0x00, //0x000007ac movdqu %xmm0, $208(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xe0, 0x00, 0x00, 0x00, //0x000007b5 movdqu %xmm0, $224(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xf0, 0x00, 0x00, 0x00, //0x000007be movdqu %xmm0, $240(%rax,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x000007c7 addq $256, %rdi - 0x48, 0x83, 0xc6, 0xf8, //0x000007ce addq $-8, %rsi - 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000007d2 jne LBB1_70 - //0x000007d8 LBB1_71 - 0x48, 0x85, 0xd2, //0x000007d8 testq %rdx, %rdx - 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000007db je LBB1_74 - 0x48, 0x8d, 0x74, 0x07, 0x10, //0x000007e1 leaq $16(%rdi,%rax), %rsi - 0x48, 0xf7, 0xda, //0x000007e6 negq %rdx - 0x66, 0x0f, 0x6f, 0x05, 0x9f, 0xf8, 0xff, 0xff, //0x000007e9 movdqa $-1889(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007f1 .p2align 4, 0x90 - //0x00000800 LBB1_73 - 0xf3, 0x0f, 0x7f, 0x46, 0xf0, //0x00000800 movdqu %xmm0, $-16(%rsi) - 0xf3, 0x0f, 0x7f, 0x06, //0x00000805 movdqu %xmm0, (%rsi) - 0x48, 0x83, 0xc6, 0x20, //0x00000809 addq $32, %rsi - 0x48, 0xff, 0xc2, //0x0000080d incq %rdx - 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000810 jne LBB1_73 - //0x00000816 LBB1_74 - 0x4c, 0x39, 0xe1, //0x00000816 cmpq %r12, %rcx - 0x0f, 0x84, 0x30, 0x03, 0x00, 0x00, //0x00000819 je LBB1_112 - 0x48, 0x01, 0xc8, //0x0000081f addq %rcx, %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000822 .p2align 4, 0x90 - //0x00000830 LBB1_76 - 0xc6, 0x00, 0x30, //0x00000830 movb $48, (%rax) - 0x48, 0xff, 0xc0, //0x00000833 incq %rax - 0x48, 0x39, 0xc3, //0x00000836 cmpq %rax, %rbx - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000839 jne LBB1_76 - 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000083f jmp LBB1_112 - //0x00000844 LBB1_77 - 0x4b, 0x8d, 0x8c, 0x34, 0xf2, 0x00, 0x00, 0x00, //0x00000844 leaq $242(%r12,%r14), %rcx - 0x4c, 0x89, 0xce, //0x0000084c movq %r9, %rsi - 0x48, 0x29, 0xde, //0x0000084f subq %rbx, %rsi - 0x31, 0xdb, //0x00000852 xorl %ebx, %ebx - 0x66, 0x0f, 0x6f, 0x05, 0x34, 0xf8, 0xff, 0xff, //0x00000854 movdqa $-1996(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x0000085c LBB1_78 - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x10, 0xff, 0xff, 0xff, //0x0000085c movdqu %xmm0, $-240(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x20, 0xff, 0xff, 0xff, //0x00000865 movdqu %xmm0, $-224(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x30, 0xff, 0xff, 0xff, //0x0000086e movdqu %xmm0, $-208(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x40, 0xff, 0xff, 0xff, //0x00000877 movdqu %xmm0, $-192(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x50, 0xff, 0xff, 0xff, //0x00000880 movdqu %xmm0, $-176(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x60, 0xff, 0xff, 0xff, //0x00000889 movdqu %xmm0, $-160(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x84, 0x19, 0x70, 0xff, 0xff, 0xff, //0x00000892 movdqu %xmm0, $-144(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0x80, //0x0000089b movdqu %xmm0, $-128(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0x90, //0x000008a1 movdqu %xmm0, $-112(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xa0, //0x000008a7 movdqu %xmm0, $-96(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xb0, //0x000008ad movdqu %xmm0, $-80(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xc0, //0x000008b3 movdqu %xmm0, $-64(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xd0, //0x000008b9 movdqu %xmm0, $-48(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xe0, //0x000008bf movdqu %xmm0, $-32(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xf0, //0x000008c5 movdqu %xmm0, $-16(%rcx,%rbx) - 0xf3, 0x0f, 0x7f, 0x04, 0x19, //0x000008cb movdqu %xmm0, (%rcx,%rbx) - 0x48, 0x81, 0xc3, 0x00, 0x01, 0x00, 0x00, //0x000008d0 addq $256, %rbx - 0x48, 0x83, 0xc6, 0x08, //0x000008d7 addq $8, %rsi - 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x000008db jne LBB1_78 - //0x000008e1 LBB1_79 - 0x4d, 0x85, 0xc9, //0x000008e1 testq %r9, %r9 - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000008e4 je LBB1_82 - 0x4c, 0x01, 0xe3, //0x000008ea addq %r12, %rbx - 0x49, 0x8d, 0x4c, 0x1e, 0x12, //0x000008ed leaq $18(%r14,%rbx), %rcx - 0x49, 0xf7, 0xd9, //0x000008f2 negq %r9 - 0x66, 0x0f, 0x6f, 0x05, 0x93, 0xf7, 0xff, 0xff, //0x000008f5 movdqa $-2157(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x000008fd LBB1_81 - 0xf3, 0x0f, 0x7f, 0x41, 0xf0, //0x000008fd movdqu %xmm0, $-16(%rcx) - 0xf3, 0x0f, 0x7f, 0x01, //0x00000902 movdqu %xmm0, (%rcx) - 0x48, 0x83, 0xc1, 0x20, //0x00000906 addq $32, %rcx - 0x49, 0xff, 0xc1, //0x0000090a incq %r9 - 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x0000090d jne LBB1_81 - //0x00000913 LBB1_82 - 0x49, 0x01, 0xc7, //0x00000913 addq %rax, %r15 - 0x49, 0x39, 0xc0, //0x00000916 cmpq %rax, %r8 - 0x4c, 0x89, 0xd3, //0x00000919 movq %r10, %rbx - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000091c je LBB1_85 - //0x00000922 LBB1_83 - 0x44, 0x89, 0xe9, //0x00000922 movl %r13d, %ecx - 0xf7, 0xd9, //0x00000925 negl %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000927 .p2align 4, 0x90 - //0x00000930 LBB1_84 - 0x41, 0xc6, 0x07, 0x30, //0x00000930 movb $48, (%r15) - 0x49, 0xff, 0xc7, //0x00000934 incq %r15 - 0xff, 0xc0, //0x00000937 incl %eax - 0x39, 0xc8, //0x00000939 cmpl %ecx, %eax - 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000093b jl LBB1_84 - //0x00000941 LBB1_85 - 0x4c, 0x89, 0xfe, //0x00000941 movq %r15, %rsi - 0xe8, 0x37, 0x83, 0x00, 0x00, //0x00000944 callq _format_significand - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000949 .p2align 4, 0x90 - //0x00000950 LBB1_86 - 0x80, 0x78, 0xff, 0x30, //0x00000950 cmpb $48, $-1(%rax) - 0x48, 0x8d, 0x40, 0xff, //0x00000954 leaq $-1(%rax), %rax - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00000958 je LBB1_86 - 0x48, 0x8d, 0x48, 0x01, //0x0000095e leaq $1(%rax), %rcx - 0x45, 0x85, 0xed, //0x00000962 testl %r13d, %r13d - 0x0f, 0x8e, 0x83, 0x00, 0x00, 0x00, //0x00000965 jle LBB1_91 - 0x89, 0xca, //0x0000096b movl %ecx, %edx - 0x44, 0x29, 0xfa, //0x0000096d subl %r15d, %edx - 0x41, 0x39, 0xd5, //0x00000970 cmpl %edx, %r13d - 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x00000973 jge LBB1_92 - 0x43, 0x8d, 0x54, 0x3d, 0x00, //0x00000979 leal (%r13,%r15), %edx - 0x29, 0xd1, //0x0000097e subl %edx, %ecx - 0x48, 0x8d, 0x71, 0xff, //0x00000980 leaq $-1(%rcx), %rsi - 0x89, 0xca, //0x00000984 movl %ecx, %edx - 0x83, 0xe2, 0x03, //0x00000986 andl $3, %edx - 0x48, 0x83, 0xfe, 0x03, //0x00000989 cmpq $3, %rsi - 0x0f, 0x83, 0x63, 0x00, 0x00, 0x00, //0x0000098d jae LBB1_96 - 0x31, 0xc9, //0x00000993 xorl %ecx, %ecx - 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x00000995 jmp LBB1_99 - //0x0000099a LBB1_92 - 0x0f, 0x8e, 0x4e, 0x00, 0x00, 0x00, //0x0000099a jle LBB1_91 - 0x48, 0x89, 0xde, //0x000009a0 movq %rbx, %rsi - 0x45, 0x01, 0xfd, //0x000009a3 addl %r15d, %r13d - 0x41, 0x89, 0xc8, //0x000009a6 movl %ecx, %r8d - 0x41, 0xf7, 0xd0, //0x000009a9 notl %r8d - 0x45, 0x01, 0xe8, //0x000009ac addl %r13d, %r8d - 0x31, 0xd2, //0x000009af xorl %edx, %edx - 0x48, 0x89, 0xcb, //0x000009b1 movq %rcx, %rbx - 0x41, 0x83, 0xf8, 0x1e, //0x000009b4 cmpl $30, %r8d - 0x0f, 0x86, 0x79, 0x01, 0x00, 0x00, //0x000009b8 jbe LBB1_110 - 0x49, 0xff, 0xc0, //0x000009be incq %r8 - 0x48, 0x89, 0xf3, //0x000009c1 movq %rsi, %rbx - 0x4c, 0x21, 0xc3, //0x000009c4 andq %r8, %rbx - 0x48, 0x8d, 0x73, 0xe0, //0x000009c7 leaq $-32(%rbx), %rsi - 0x48, 0x89, 0xf7, //0x000009cb movq %rsi, %rdi - 0x48, 0xc1, 0xef, 0x05, //0x000009ce shrq $5, %rdi - 0x48, 0xff, 0xc7, //0x000009d2 incq %rdi - 0x89, 0xfa, //0x000009d5 movl %edi, %edx - 0x83, 0xe2, 0x07, //0x000009d7 andl $7, %edx - 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x000009da cmpq $224, %rsi - 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x000009e1 jae LBB1_104 - 0x31, 0xff, //0x000009e7 xorl %edi, %edi - 0xe9, 0x07, 0x01, 0x00, 0x00, //0x000009e9 jmp LBB1_106 - //0x000009ee LBB1_91 - 0x48, 0x89, 0xcb, //0x000009ee movq %rcx, %rbx - 0xe9, 0x59, 0x01, 0x00, 0x00, //0x000009f1 jmp LBB1_112 - //0x000009f6 LBB1_96 - 0x48, 0x89, 0xd6, //0x000009f6 movq %rdx, %rsi - 0x48, 0x29, 0xce, //0x000009f9 subq %rcx, %rsi - 0x31, 0xc9, //0x000009fc xorl %ecx, %ecx - 0x90, 0x90, //0x000009fe .p2align 4, 0x90 - //0x00000a00 LBB1_97 - 0x8b, 0x7c, 0x08, 0xfd, //0x00000a00 movl $-3(%rax,%rcx), %edi - 0x89, 0x7c, 0x08, 0xfe, //0x00000a04 movl %edi, $-2(%rax,%rcx) - 0x48, 0x83, 0xc1, 0xfc, //0x00000a08 addq $-4, %rcx - 0x48, 0x39, 0xce, //0x00000a0c cmpq %rcx, %rsi - 0x0f, 0x85, 0xeb, 0xff, 0xff, 0xff, //0x00000a0f jne LBB1_97 - 0x48, 0xf7, 0xd9, //0x00000a15 negq %rcx - //0x00000a18 LBB1_99 - 0x48, 0x85, 0xd2, //0x00000a18 testq %rdx, %rdx - 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00000a1b je LBB1_102 - 0x48, 0xf7, 0xd9, //0x00000a21 negq %rcx - 0x48, 0xf7, 0xda, //0x00000a24 negq %rdx - 0x31, 0xf6, //0x00000a27 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a29 .p2align 4, 0x90 - //0x00000a30 LBB1_101 - 0x48, 0x8d, 0x3c, 0x31, //0x00000a30 leaq (%rcx,%rsi), %rdi - 0x0f, 0xb6, 0x1c, 0x38, //0x00000a34 movzbl (%rax,%rdi), %ebx - 0x88, 0x5c, 0x38, 0x01, //0x00000a38 movb %bl, $1(%rax,%rdi) - 0x48, 0xff, 0xce, //0x00000a3c decq %rsi - 0x48, 0x39, 0xf2, //0x00000a3f cmpq %rsi, %rdx - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000a42 jne LBB1_101 - //0x00000a48 LBB1_102 - 0x49, 0x63, 0xcd, //0x00000a48 movslq %r13d, %rcx - 0x41, 0xc6, 0x04, 0x0f, 0x2e, //0x00000a4b movb $46, (%r15,%rcx) - 0x48, 0x83, 0xc0, 0x02, //0x00000a50 addq $2, %rax - 0x48, 0x89, 0xc3, //0x00000a54 movq %rax, %rbx - 0xe9, 0xf3, 0x00, 0x00, 0x00, //0x00000a57 jmp LBB1_112 - //0x00000a5c LBB1_104 - 0x48, 0x89, 0xd6, //0x00000a5c movq %rdx, %rsi - 0x48, 0x29, 0xfe, //0x00000a5f subq %rdi, %rsi - 0x31, 0xff, //0x00000a62 xorl %edi, %edi - 0x66, 0x0f, 0x6f, 0x05, 0x24, 0xf6, 0xff, 0xff, //0x00000a64 movdqa $-2524(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x00000a6c LBB1_105 - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x01, //0x00000a6c movdqu %xmm0, $1(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x11, //0x00000a72 movdqu %xmm0, $17(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x21, //0x00000a78 movdqu %xmm0, $33(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x31, //0x00000a7e movdqu %xmm0, $49(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x41, //0x00000a84 movdqu %xmm0, $65(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x51, //0x00000a8a movdqu %xmm0, $81(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x61, //0x00000a90 movdqu %xmm0, $97(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x44, 0x38, 0x71, //0x00000a96 movdqu %xmm0, $113(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x81, 0x00, 0x00, 0x00, //0x00000a9c movdqu %xmm0, $129(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0x91, 0x00, 0x00, 0x00, //0x00000aa5 movdqu %xmm0, $145(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xa1, 0x00, 0x00, 0x00, //0x00000aae movdqu %xmm0, $161(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xb1, 0x00, 0x00, 0x00, //0x00000ab7 movdqu %xmm0, $177(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xc1, 0x00, 0x00, 0x00, //0x00000ac0 movdqu %xmm0, $193(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xd1, 0x00, 0x00, 0x00, //0x00000ac9 movdqu %xmm0, $209(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xe1, 0x00, 0x00, 0x00, //0x00000ad2 movdqu %xmm0, $225(%rax,%rdi) - 0xf3, 0x0f, 0x7f, 0x84, 0x38, 0xf1, 0x00, 0x00, 0x00, //0x00000adb movdqu %xmm0, $241(%rax,%rdi) - 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x00000ae4 addq $256, %rdi - 0x48, 0x83, 0xc6, 0x08, //0x00000aeb addq $8, %rsi - 0x0f, 0x85, 0x77, 0xff, 0xff, 0xff, //0x00000aef jne LBB1_105 - //0x00000af5 LBB1_106 - 0x48, 0x89, 0xde, //0x00000af5 movq %rbx, %rsi - 0x48, 0x8d, 0x5c, 0x18, 0x01, //0x00000af8 leaq $1(%rax,%rbx), %rbx - 0x48, 0x85, 0xd2, //0x00000afd testq %rdx, %rdx - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000b00 je LBB1_109 - 0x48, 0x8d, 0x44, 0x38, 0x11, //0x00000b06 leaq $17(%rax,%rdi), %rax - 0x48, 0xf7, 0xda, //0x00000b0b negq %rdx - 0x66, 0x0f, 0x6f, 0x05, 0x7a, 0xf5, 0xff, 0xff, //0x00000b0e movdqa $-2694(%rip), %xmm0 /* LCPI1_0+0(%rip) */ - //0x00000b16 LBB1_108 - 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x00000b16 movdqu %xmm0, $-16(%rax) - 0xf3, 0x0f, 0x7f, 0x00, //0x00000b1b movdqu %xmm0, (%rax) - 0x48, 0x83, 0xc0, 0x20, //0x00000b1f addq $32, %rax - 0x48, 0xff, 0xc2, //0x00000b23 incq %rdx - 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00000b26 jne LBB1_108 - //0x00000b2c LBB1_109 - 0x89, 0xf2, //0x00000b2c movl %esi, %edx - 0x49, 0x39, 0xf0, //0x00000b2e cmpq %rsi, %r8 - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00000b31 je LBB1_112 - //0x00000b37 LBB1_110 - 0x41, 0x29, 0xd5, //0x00000b37 subl %edx, %r13d - 0x41, 0x29, 0xcd, //0x00000b3a subl %ecx, %r13d - 0x90, 0x90, 0x90, //0x00000b3d .p2align 4, 0x90 - //0x00000b40 LBB1_111 - 0xc6, 0x03, 0x30, //0x00000b40 movb $48, (%rbx) - 0x48, 0xff, 0xc3, //0x00000b43 incq %rbx - 0x41, 0xff, 0xcd, //0x00000b46 decl %r13d - 0x0f, 0x85, 0xf1, 0xff, 0xff, 0xff, //0x00000b49 jne LBB1_111 - //0x00000b4f LBB1_112 - 0x44, 0x29, 0xf3, //0x00000b4f subl %r14d, %ebx - //0x00000b52 LBB1_113 - 0x89, 0xd8, //0x00000b52 movl %ebx, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00000b54 addq $8, %rsp - 0x5b, //0x00000b58 popq %rbx - 0x41, 0x5c, //0x00000b59 popq %r12 - 0x41, 0x5d, //0x00000b5b popq %r13 - 0x41, 0x5e, //0x00000b5d popq %r14 - 0x41, 0x5f, //0x00000b5f popq %r15 - 0x5d, //0x00000b61 popq %rbp - 0xc3, //0x00000b62 retq - //0x00000b63 LBB1_114 - 0x31, 0xdb, //0x00000b63 xorl %ebx, %ebx - 0xe9, 0xe8, 0xff, 0xff, 0xff, //0x00000b65 jmp LBB1_113 - //0x00000b6a LBB1_115 - 0xbb, 0xce, 0xfb, 0xff, 0xff, //0x00000b6a movl $-1074, %ebx - 0x48, 0x89, 0xd7, //0x00000b6f movq %rdx, %rdi - 0xe9, 0xc2, 0xf5, 0xff, 0xff, //0x00000b72 jmp LBB1_5 - //0x00000b77 LBB1_116 - 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000b77 cmpq $1000000000, %rdi - 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000b7e movl $10, %edx - 0xe9, 0x64, 0xfa, 0xff, 0xff, //0x00000b83 jmp LBB1_50 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b88 .p2align 4, 0x90 - //0x00000b90 _format_integer - 0x55, //0x00000b90 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000b91 movq %rsp, %rbp - 0x53, //0x00000b94 pushq %rbx - 0x41, 0x89, 0xd0, //0x00000b95 movl %edx, %r8d - 0x49, 0x01, 0xf0, //0x00000b98 addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00000b9b movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00000b9e shrq $32, %rax - 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x00000ba2 je LBB2_1 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000ba8 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00000bb2 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00000bb5 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000bb8 shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000bbc imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00000bc2 addl %edi, %ecx - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000bc4 movl $3518437209, %r9d - 0x48, 0x89, 0xc8, //0x00000bca movq %rcx, %rax - 0x49, 0x0f, 0xaf, 0xc1, //0x00000bcd imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00000bd1 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000bd5 imull $10000, %eax, %edi - 0x29, 0xf9, //0x00000bdb subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00000bdd movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00000be0 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00000be4 shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000be8 imull $10000, %edi, %edi - 0x29, 0xf8, //0x00000bee subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00000bf0 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00000bf3 shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000bf6 imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00000bfd shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00000c01 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00000c05 subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00000c07 movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00000c0b movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00000c0e shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000c11 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00000c17 shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00000c1a imull $100, %edi, %ecx - 0x29, 0xc8, //0x00000c1d subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00000c1f movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x46, 0xb5, 0x00, 0x00, //0x00000c23 leaq $46406(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000c2a movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000c2f movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000c34 movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000c39 movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000c3e movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000c43 movw %ax, $-6(%r8) - 0x4d, 0x8d, 0x58, 0xf8, //0x00000c48 leaq $-8(%r8), %r11 - 0x0f, 0xb7, 0x0c, 0x79, //0x00000c4c movzwl (%rcx,%rdi,2), %ecx - 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000c50 movw %cx, $-8(%r8) - 0x48, 0x89, 0xd7, //0x00000c55 movq %rdx, %rdi - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c58 cmpl $10000, %edi - 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000c5e jae LBB2_5 - //0x00000c64 LBB2_4 - 0x89, 0xfa, //0x00000c64 movl %edi, %edx - 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00000c66 jmp LBB2_7 - //0x00000c6b LBB2_1 - 0x4d, 0x89, 0xc3, //0x00000c6b movq %r8, %r11 - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000c6e cmpl $10000, %edi - 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000c74 jb LBB2_4 - //0x00000c7a LBB2_5 - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000c7a movl $3518437209, %r9d - 0x4c, 0x8d, 0x15, 0xe9, 0xb4, 0x00, 0x00, //0x00000c80 leaq $46313(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c87 .p2align 4, 0x90 - //0x00000c90 LBB2_6 - 0x89, 0xfa, //0x00000c90 movl %edi, %edx - 0x49, 0x0f, 0xaf, 0xd1, //0x00000c92 imulq %r9, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000c96 shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000c9a imull $-10000, %edx, %ecx - 0x01, 0xf9, //0x00000ca0 addl %edi, %ecx - 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000ca2 imulq $1374389535, %rcx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00000ca9 shrq $37, %rax - 0x6b, 0xd8, 0x64, //0x00000cad imull $100, %eax, %ebx - 0x29, 0xd9, //0x00000cb0 subl %ebx, %ecx - 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000cb2 movzwl (%r10,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000cb7 movw %cx, $-2(%r11) - 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000cbc movzwl (%r10,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000cc1 movw %ax, $-4(%r11) - 0x49, 0x83, 0xc3, 0xfc, //0x00000cc6 addq $-4, %r11 - 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000cca cmpl $99999999, %edi - 0x89, 0xd7, //0x00000cd0 movl %edx, %edi - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000cd2 ja LBB2_6 - //0x00000cd8 LBB2_7 - 0x83, 0xfa, 0x64, //0x00000cd8 cmpl $100, %edx - 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000cdb jb LBB2_9 - 0x0f, 0xb7, 0xc2, //0x00000ce1 movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000ce4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ce7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ced shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00000cf0 imull $100, %eax, %ecx - 0x29, 0xca, //0x00000cf3 subl %ecx, %edx - 0x0f, 0xb7, 0xca, //0x00000cf5 movzwl %dx, %ecx - 0x48, 0x8d, 0x15, 0x71, 0xb4, 0x00, 0x00, //0x00000cf8 leaq $46193(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00000cff movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000d03 movw %cx, $-2(%r11) - 0x49, 0x83, 0xc3, 0xfe, //0x00000d08 addq $-2, %r11 - 0x89, 0xc2, //0x00000d0c movl %eax, %edx - //0x00000d0e LBB2_9 - 0x83, 0xfa, 0x0a, //0x00000d0e cmpl $10, %edx - 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000d11 jb LBB2_11 - 0x89, 0xd0, //0x00000d17 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x50, 0xb4, 0x00, 0x00, //0x00000d19 leaq $46160(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00000d20 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000d24 movw %ax, $-2(%r11) - 0x4c, 0x89, 0xc0, //0x00000d29 movq %r8, %rax - 0x5b, //0x00000d2c popq %rbx - 0x5d, //0x00000d2d popq %rbp - 0xc3, //0x00000d2e retq - //0x00000d2f LBB2_11 - 0x80, 0xc2, 0x30, //0x00000d2f addb $48, %dl - 0x88, 0x16, //0x00000d32 movb %dl, (%rsi) - 0x4c, 0x89, 0xc0, //0x00000d34 movq %r8, %rax - 0x5b, //0x00000d37 popq %rbx - 0x5d, //0x00000d38 popq %rbp - 0xc3, //0x00000d39 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d3a .p2align 4, 0x90 - //0x00000d40 _i64toa - 0x48, 0x85, 0xf6, //0x00000d40 testq %rsi, %rsi - 0x0f, 0x88, 0x05, 0x00, 0x00, 0x00, //0x00000d43 js LBB3_1 - 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00000d49 jmp _u64toa - //0x00000d4e LBB3_1 - 0x55, //0x00000d4e pushq %rbp - 0x48, 0x89, 0xe5, //0x00000d4f movq %rsp, %rbp - 0xc6, 0x07, 0x2d, //0x00000d52 movb $45, (%rdi) - 0x48, 0xff, 0xc7, //0x00000d55 incq %rdi - 0x48, 0xf7, 0xde, //0x00000d58 negq %rsi - 0xe8, 0x60, 0x00, 0x00, 0x00, //0x00000d5b callq _u64toa - 0xff, 0xc0, //0x00000d60 incl %eax - 0x5d, //0x00000d62 popq %rbp - 0xc3, //0x00000d63 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d64 .p2align 4, 0x00 - //0x00000d70 LCPI4_0 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000d70 .quad 3518437209 - 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000d78 .quad 3518437209 - //0x00000d80 LCPI4_1 - 0xc5, 0x20, //0x00000d80 .word 8389 - 0x7b, 0x14, //0x00000d82 .word 5243 - 0x34, 0x33, //0x00000d84 .word 13108 - 0x00, 0x80, //0x00000d86 .word 32768 - 0xc5, 0x20, //0x00000d88 .word 8389 - 0x7b, 0x14, //0x00000d8a .word 5243 - 0x34, 0x33, //0x00000d8c .word 13108 - 0x00, 0x80, //0x00000d8e .word 32768 - //0x00000d90 LCPI4_2 - 0x80, 0x00, //0x00000d90 .word 128 - 0x00, 0x08, //0x00000d92 .word 2048 - 0x00, 0x20, //0x00000d94 .word 8192 - 0x00, 0x80, //0x00000d96 .word 32768 - 0x80, 0x00, //0x00000d98 .word 128 - 0x00, 0x08, //0x00000d9a .word 2048 - 0x00, 0x20, //0x00000d9c .word 8192 - 0x00, 0x80, //0x00000d9e .word 32768 - //0x00000da0 LCPI4_3 - 0x0a, 0x00, //0x00000da0 .word 10 - 0x0a, 0x00, //0x00000da2 .word 10 - 0x0a, 0x00, //0x00000da4 .word 10 - 0x0a, 0x00, //0x00000da6 .word 10 - 0x0a, 0x00, //0x00000da8 .word 10 - 0x0a, 0x00, //0x00000daa .word 10 - 0x0a, 0x00, //0x00000dac .word 10 - 0x0a, 0x00, //0x00000dae .word 10 - //0x00000db0 LCPI4_4 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000db0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00000dc0 .p2align 4, 0x90 - //0x00000dc0 _u64toa - 0x55, //0x00000dc0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000dc1 movq %rsp, %rbp - 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000dc4 cmpq $9999, %rsi - 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x00000dcb ja LBB4_8 - 0x0f, 0xb7, 0xc6, //0x00000dd1 movzwl %si, %eax - 0xc1, 0xe8, 0x02, //0x00000dd4 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000dd7 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ddd shrl $17, %eax - 0x48, 0x8d, 0x14, 0x00, //0x00000de0 leaq (%rax,%rax), %rdx - 0x6b, 0xc0, 0x64, //0x00000de4 imull $100, %eax, %eax - 0x89, 0xf1, //0x00000de7 movl %esi, %ecx - 0x29, 0xc1, //0x00000de9 subl %eax, %ecx - 0x0f, 0xb7, 0xc1, //0x00000deb movzwl %cx, %eax - 0x48, 0x01, 0xc0, //0x00000dee addq %rax, %rax - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000df1 cmpl $1000, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000df7 jb LBB4_3 - 0x48, 0x8d, 0x0d, 0x6c, 0xb3, 0x00, 0x00, //0x00000dfd leaq $45932(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x0c, 0x0a, //0x00000e04 movb (%rdx,%rcx), %cl - 0x88, 0x0f, //0x00000e07 movb %cl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000e09 movl $1, %ecx - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e0e jmp LBB4_4 - //0x00000e13 LBB4_3 - 0x31, 0xc9, //0x00000e13 xorl %ecx, %ecx - 0x83, 0xfe, 0x64, //0x00000e15 cmpl $100, %esi - 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x00000e18 jb LBB4_5 - //0x00000e1e LBB4_4 - 0x0f, 0xb7, 0xd2, //0x00000e1e movzwl %dx, %edx - 0x48, 0x83, 0xca, 0x01, //0x00000e21 orq $1, %rdx - 0x48, 0x8d, 0x35, 0x44, 0xb3, 0x00, 0x00, //0x00000e25 leaq $45892(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x32, //0x00000e2c movb (%rdx,%rsi), %dl - 0x89, 0xce, //0x00000e2f movl %ecx, %esi - 0xff, 0xc1, //0x00000e31 incl %ecx - 0x88, 0x14, 0x37, //0x00000e33 movb %dl, (%rdi,%rsi) - //0x00000e36 LBB4_6 - 0x48, 0x8d, 0x15, 0x33, 0xb3, 0x00, 0x00, //0x00000e36 leaq $45875(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x10, //0x00000e3d movb (%rax,%rdx), %dl - 0x89, 0xce, //0x00000e40 movl %ecx, %esi - 0xff, 0xc1, //0x00000e42 incl %ecx - 0x88, 0x14, 0x37, //0x00000e44 movb %dl, (%rdi,%rsi) - //0x00000e47 LBB4_7 - 0x0f, 0xb7, 0xc0, //0x00000e47 movzwl %ax, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000e4a orq $1, %rax - 0x48, 0x8d, 0x15, 0x1b, 0xb3, 0x00, 0x00, //0x00000e4e leaq $45851(%rip), %rdx /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x10, //0x00000e55 movb (%rax,%rdx), %al - 0x89, 0xca, //0x00000e58 movl %ecx, %edx - 0xff, 0xc1, //0x00000e5a incl %ecx - 0x88, 0x04, 0x17, //0x00000e5c movb %al, (%rdi,%rdx) - 0x89, 0xc8, //0x00000e5f movl %ecx, %eax - 0x5d, //0x00000e61 popq %rbp - 0xc3, //0x00000e62 retq - //0x00000e63 LBB4_5 - 0x31, 0xc9, //0x00000e63 xorl %ecx, %ecx - 0x83, 0xfe, 0x0a, //0x00000e65 cmpl $10, %esi - 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000e68 jae LBB4_6 - 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00000e6e jmp LBB4_7 - //0x00000e73 LBB4_8 - 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000e73 cmpq $99999999, %rsi - 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x00000e7a ja LBB4_16 - 0x89, 0xf0, //0x00000e80 movl %esi, %eax - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000e82 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd0, //0x00000e87 imulq %rax, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x00000e8b shrq $45, %rdx - 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x00000e8f imull $10000, %edx, %r8d - 0x89, 0xf1, //0x00000e96 movl %esi, %ecx - 0x44, 0x29, 0xc1, //0x00000e98 subl %r8d, %ecx - 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x00000e9b imulq $1125899907, %rax, %r10 - 0x49, 0xc1, 0xea, 0x31, //0x00000ea2 shrq $49, %r10 - 0x41, 0x83, 0xe2, 0xfe, //0x00000ea6 andl $-2, %r10d - 0x0f, 0xb7, 0xc2, //0x00000eaa movzwl %dx, %eax - 0xc1, 0xe8, 0x02, //0x00000ead shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000eb0 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000eb6 shrl $17, %eax - 0x6b, 0xc0, 0x64, //0x00000eb9 imull $100, %eax, %eax - 0x29, 0xc2, //0x00000ebc subl %eax, %edx - 0x44, 0x0f, 0xb7, 0xca, //0x00000ebe movzwl %dx, %r9d - 0x4d, 0x01, 0xc9, //0x00000ec2 addq %r9, %r9 - 0x0f, 0xb7, 0xc1, //0x00000ec5 movzwl %cx, %eax - 0xc1, 0xe8, 0x02, //0x00000ec8 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ecb imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00000ed1 shrl $17, %eax - 0x4c, 0x8d, 0x04, 0x00, //0x00000ed4 leaq (%rax,%rax), %r8 - 0x6b, 0xc0, 0x64, //0x00000ed8 imull $100, %eax, %eax - 0x29, 0xc1, //0x00000edb subl %eax, %ecx - 0x44, 0x0f, 0xb7, 0xd9, //0x00000edd movzwl %cx, %r11d - 0x4d, 0x01, 0xdb, //0x00000ee1 addq %r11, %r11 - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000ee4 cmpl $10000000, %esi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00000eea jb LBB4_11 - 0x48, 0x8d, 0x05, 0x79, 0xb2, 0x00, 0x00, //0x00000ef0 leaq $45689(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x02, //0x00000ef7 movb (%r10,%rax), %al - 0x88, 0x07, //0x00000efb movb %al, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000efd movl $1, %ecx - 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000f02 jmp LBB4_12 - //0x00000f07 LBB4_11 - 0x31, 0xc9, //0x00000f07 xorl %ecx, %ecx - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000f09 cmpl $1000000, %esi - 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x00000f0f jb LBB4_13 - //0x00000f15 LBB4_12 - 0x44, 0x89, 0xd0, //0x00000f15 movl %r10d, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f18 orq $1, %rax - 0x48, 0x8d, 0x35, 0x4d, 0xb2, 0x00, 0x00, //0x00000f1c leaq $45645(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x30, //0x00000f23 movb (%rax,%rsi), %al - 0x89, 0xce, //0x00000f26 movl %ecx, %esi - 0xff, 0xc1, //0x00000f28 incl %ecx - 0x88, 0x04, 0x37, //0x00000f2a movb %al, (%rdi,%rsi) - //0x00000f2d LBB4_14 - 0x48, 0x8d, 0x05, 0x3c, 0xb2, 0x00, 0x00, //0x00000f2d leaq $45628(%rip), %rax /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x04, 0x01, //0x00000f34 movb (%r9,%rax), %al - 0x89, 0xce, //0x00000f38 movl %ecx, %esi - 0xff, 0xc1, //0x00000f3a incl %ecx - 0x88, 0x04, 0x37, //0x00000f3c movb %al, (%rdi,%rsi) - //0x00000f3f LBB4_15 - 0x41, 0x0f, 0xb7, 0xc1, //0x00000f3f movzwl %r9w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f43 orq $1, %rax - 0x48, 0x8d, 0x35, 0x22, 0xb2, 0x00, 0x00, //0x00000f47 leaq $45602(%rip), %rsi /* _Digits+0(%rip) */ - 0x8a, 0x04, 0x30, //0x00000f4e movb (%rax,%rsi), %al - 0x89, 0xca, //0x00000f51 movl %ecx, %edx - 0x88, 0x04, 0x3a, //0x00000f53 movb %al, (%rdx,%rdi) - 0x41, 0x8a, 0x04, 0x30, //0x00000f56 movb (%r8,%rsi), %al - 0x88, 0x44, 0x3a, 0x01, //0x00000f5a movb %al, $1(%rdx,%rdi) - 0x41, 0x0f, 0xb7, 0xc0, //0x00000f5e movzwl %r8w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f62 orq $1, %rax - 0x8a, 0x04, 0x30, //0x00000f66 movb (%rax,%rsi), %al - 0x88, 0x44, 0x3a, 0x02, //0x00000f69 movb %al, $2(%rdx,%rdi) - 0x41, 0x8a, 0x04, 0x33, //0x00000f6d movb (%r11,%rsi), %al - 0x88, 0x44, 0x3a, 0x03, //0x00000f71 movb %al, $3(%rdx,%rdi) - 0x41, 0x0f, 0xb7, 0xc3, //0x00000f75 movzwl %r11w, %eax - 0x48, 0x83, 0xc8, 0x01, //0x00000f79 orq $1, %rax - 0x8a, 0x04, 0x30, //0x00000f7d movb (%rax,%rsi), %al - 0x83, 0xc1, 0x05, //0x00000f80 addl $5, %ecx - 0x88, 0x44, 0x3a, 0x04, //0x00000f83 movb %al, $4(%rdx,%rdi) - 0x89, 0xc8, //0x00000f87 movl %ecx, %eax - 0x5d, //0x00000f89 popq %rbp - 0xc3, //0x00000f8a retq - //0x00000f8b LBB4_13 - 0x31, 0xc9, //0x00000f8b xorl %ecx, %ecx - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00000f8d cmpl $100000, %esi - 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000f93 jae LBB4_14 - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000f99 jmp LBB4_15 - //0x00000f9e LBB4_16 - 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000f9e movabsq $9999999999999999, %rax - 0x48, 0x39, 0xc6, //0x00000fa8 cmpq %rax, %rsi - 0x0f, 0x87, 0x15, 0x01, 0x00, 0x00, //0x00000fab ja LBB4_18 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000fb1 movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf0, //0x00000fbb movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x00000fbe mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00000fc1 shrq $26, %rdx - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000fc5 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x00000fcb subl %eax, %esi - 0x66, 0x0f, 0x6e, 0xc2, //0x00000fcd movd %edx, %xmm0 - 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xfd, 0xff, 0xff, //0x00000fd1 movdqa $-617(%rip), %xmm1 /* LCPI4_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd0, //0x00000fd9 movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0xf4, 0xd1, //0x00000fdd pmuludq %xmm1, %xmm2 - 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00000fe1 psrlq $45, %xmm2 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000fe6 movl $10000, %eax - 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x00000feb movq %rax, %xmm3 - 0x66, 0x0f, 0x6f, 0xe2, //0x00000ff0 movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0xf4, 0xe3, //0x00000ff4 pmuludq %xmm3, %xmm4 - 0x66, 0x0f, 0xfa, 0xc4, //0x00000ff8 psubd %xmm4, %xmm0 - 0x66, 0x0f, 0x61, 0xd0, //0x00000ffc punpcklwd %xmm0, %xmm2 - 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00001000 psllq $2, %xmm2 - 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00001005 pshuflw $80, %xmm2, %xmm0 - 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000100a pshufd $80, %xmm0, %xmm0 - 0x66, 0x0f, 0x6f, 0x15, 0x69, 0xfd, 0xff, 0xff, //0x0000100f movdqa $-663(%rip), %xmm2 /* LCPI4_1+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc2, //0x00001017 pmulhuw %xmm2, %xmm0 - 0x66, 0x0f, 0x6f, 0x25, 0x6d, 0xfd, 0xff, 0xff, //0x0000101b movdqa $-659(%rip), %xmm4 /* LCPI4_2+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc4, //0x00001023 pmulhuw %xmm4, %xmm0 - 0x66, 0x0f, 0x6f, 0x2d, 0x71, 0xfd, 0xff, 0xff, //0x00001027 movdqa $-655(%rip), %xmm5 /* LCPI4_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xf0, //0x0000102f movdqa %xmm0, %xmm6 - 0x66, 0x0f, 0xd5, 0xf5, //0x00001033 pmullw %xmm5, %xmm6 - 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x00001037 psllq $16, %xmm6 - 0x66, 0x0f, 0xf9, 0xc6, //0x0000103c psubw %xmm6, %xmm0 - 0x66, 0x0f, 0x6e, 0xf6, //0x00001040 movd %esi, %xmm6 - 0x66, 0x0f, 0xf4, 0xce, //0x00001044 pmuludq %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00001048 psrlq $45, %xmm1 - 0x66, 0x0f, 0xf4, 0xd9, //0x0000104d pmuludq %xmm1, %xmm3 - 0x66, 0x0f, 0xfa, 0xf3, //0x00001051 psubd %xmm3, %xmm6 - 0x66, 0x0f, 0x61, 0xce, //0x00001055 punpcklwd %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00001059 psllq $2, %xmm1 - 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000105e pshuflw $80, %xmm1, %xmm1 - 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x00001063 pshufd $80, %xmm1, %xmm1 - 0x66, 0x0f, 0xe4, 0xca, //0x00001068 pmulhuw %xmm2, %xmm1 - 0x66, 0x0f, 0xe4, 0xcc, //0x0000106c pmulhuw %xmm4, %xmm1 - 0x66, 0x0f, 0xd5, 0xe9, //0x00001070 pmullw %xmm1, %xmm5 - 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x00001074 psllq $16, %xmm5 - 0x66, 0x0f, 0xf9, 0xcd, //0x00001079 psubw %xmm5, %xmm1 - 0x66, 0x0f, 0x67, 0xc1, //0x0000107d packuswb %xmm1, %xmm0 - 0x66, 0x0f, 0x6f, 0x0d, 0x27, 0xfd, 0xff, 0xff, //0x00001081 movdqa $-729(%rip), %xmm1 /* LCPI4_4+0(%rip) */ - 0x66, 0x0f, 0xfc, 0xc8, //0x00001089 paddb %xmm0, %xmm1 - 0x66, 0x0f, 0xef, 0xd2, //0x0000108d pxor %xmm2, %xmm2 - 0x66, 0x0f, 0x74, 0xd0, //0x00001091 pcmpeqb %xmm0, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00001095 pmovmskb %xmm2, %eax - 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00001099 orl $32768, %eax - 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000109e xorl $-32769, %eax - 0x0f, 0xbc, 0xc0, //0x000010a3 bsfl %eax, %eax - 0xb9, 0x10, 0x00, 0x00, 0x00, //0x000010a6 movl $16, %ecx - 0x29, 0xc1, //0x000010ab subl %eax, %ecx - 0x48, 0xc1, 0xe0, 0x04, //0x000010ad shlq $4, %rax - 0x48, 0x8d, 0x15, 0x18, 0xd8, 0x00, 0x00, //0x000010b1 leaq $55320(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ - 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x000010b8 pshufb (%rax,%rdx), %xmm1 - 0xf3, 0x0f, 0x7f, 0x0f, //0x000010be movdqu %xmm1, (%rdi) - 0x89, 0xc8, //0x000010c2 movl %ecx, %eax - 0x5d, //0x000010c4 popq %rbp - 0xc3, //0x000010c5 retq - //0x000010c6 LBB4_18 - 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000010c6 movabsq $4153837486827862103, %rcx - 0x48, 0x89, 0xf0, //0x000010d0 movq %rsi, %rax - 0x48, 0xf7, 0xe1, //0x000010d3 mulq %rcx - 0x48, 0xc1, 0xea, 0x33, //0x000010d6 shrq $51, %rdx - 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010da movabsq $10000000000000000, %rax - 0x48, 0x0f, 0xaf, 0xc2, //0x000010e4 imulq %rdx, %rax - 0x48, 0x29, 0xc6, //0x000010e8 subq %rax, %rsi - 0x83, 0xfa, 0x09, //0x000010eb cmpl $9, %edx - 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000010ee ja LBB4_20 - 0x80, 0xc2, 0x30, //0x000010f4 addb $48, %dl - 0x88, 0x17, //0x000010f7 movb %dl, (%rdi) - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000010f9 movl $1, %ecx - 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000010fe jmp LBB4_25 - //0x00001103 LBB4_20 - 0x83, 0xfa, 0x63, //0x00001103 cmpl $99, %edx - 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00001106 ja LBB4_22 - 0x89, 0xd0, //0x0000110c movl %edx, %eax - 0x48, 0x8d, 0x0d, 0x5b, 0xb0, 0x00, 0x00, //0x0000110e leaq $45147(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x00001115 movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x00001118 movb $1(%rcx,%rax,2), %al - 0x88, 0x17, //0x0000111c movb %dl, (%rdi) - 0x88, 0x47, 0x01, //0x0000111e movb %al, $1(%rdi) - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00001121 movl $2, %ecx - 0xe9, 0x92, 0x00, 0x00, 0x00, //0x00001126 jmp LBB4_25 - //0x0000112b LBB4_22 - 0x89, 0xd0, //0x0000112b movl %edx, %eax - 0xc1, 0xe8, 0x02, //0x0000112d shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001130 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00001136 shrl $17, %eax - 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001139 cmpl $999, %edx - 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x0000113f ja LBB4_24 - 0x83, 0xc0, 0x30, //0x00001145 addl $48, %eax - 0x88, 0x07, //0x00001148 movb %al, (%rdi) - 0x0f, 0xb7, 0xc2, //0x0000114a movzwl %dx, %eax - 0x89, 0xc1, //0x0000114d movl %eax, %ecx - 0xc1, 0xe9, 0x02, //0x0000114f shrl $2, %ecx - 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x00001152 imull $5243, %ecx, %ecx - 0xc1, 0xe9, 0x11, //0x00001158 shrl $17, %ecx - 0x6b, 0xc9, 0x64, //0x0000115b imull $100, %ecx, %ecx - 0x29, 0xc8, //0x0000115e subl %ecx, %eax - 0x0f, 0xb7, 0xc0, //0x00001160 movzwl %ax, %eax - 0x48, 0x8d, 0x0d, 0x06, 0xb0, 0x00, 0x00, //0x00001163 leaq $45062(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x0000116a movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x0000116d movb $1(%rcx,%rax,2), %al - 0x88, 0x57, 0x01, //0x00001171 movb %dl, $1(%rdi) - 0x88, 0x47, 0x02, //0x00001174 movb %al, $2(%rdi) - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00001177 movl $3, %ecx - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000117c jmp LBB4_25 - //0x00001181 LBB4_24 - 0x6b, 0xc8, 0x64, //0x00001181 imull $100, %eax, %ecx - 0x29, 0xca, //0x00001184 subl %ecx, %edx - 0x0f, 0xb7, 0xc0, //0x00001186 movzwl %ax, %eax - 0x4c, 0x8d, 0x05, 0xe0, 0xaf, 0x00, 0x00, //0x00001189 leaq $45024(%rip), %r8 /* _Digits+0(%rip) */ - 0x41, 0x8a, 0x0c, 0x40, //0x00001190 movb (%r8,%rax,2), %cl - 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00001194 movb $1(%r8,%rax,2), %al - 0x88, 0x0f, //0x00001199 movb %cl, (%rdi) - 0x88, 0x47, 0x01, //0x0000119b movb %al, $1(%rdi) - 0x0f, 0xb7, 0xc2, //0x0000119e movzwl %dx, %eax - 0x41, 0x8a, 0x0c, 0x40, //0x000011a1 movb (%r8,%rax,2), %cl - 0x48, 0x01, 0xc0, //0x000011a5 addq %rax, %rax - 0x88, 0x4f, 0x02, //0x000011a8 movb %cl, $2(%rdi) - 0x83, 0xc8, 0x01, //0x000011ab orl $1, %eax - 0x0f, 0xb7, 0xc0, //0x000011ae movzwl %ax, %eax - 0x42, 0x8a, 0x04, 0x00, //0x000011b1 movb (%rax,%r8), %al - 0x88, 0x47, 0x03, //0x000011b5 movb %al, $3(%rdi) - 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000011b8 movl $4, %ecx - //0x000011bd LBB4_25 - 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011bd movabsq $-6067343680855748867, %rdx - 0x48, 0x89, 0xf0, //0x000011c7 movq %rsi, %rax - 0x48, 0xf7, 0xe2, //0x000011ca mulq %rdx - 0x48, 0xc1, 0xea, 0x1a, //0x000011cd shrq $26, %rdx - 0x66, 0x0f, 0x6e, 0xc2, //0x000011d1 movd %edx, %xmm0 - 0x66, 0x0f, 0x6f, 0x0d, 0x93, 0xfb, 0xff, 0xff, //0x000011d5 movdqa $-1133(%rip), %xmm1 /* LCPI4_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x000011dd movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0xf4, 0xd9, //0x000011e1 pmuludq %xmm1, %xmm3 - 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x000011e5 psrlq $45, %xmm3 - 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000011ea movl $10000, %eax - 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x000011ef movq %rax, %xmm2 - 0x66, 0x0f, 0x6f, 0xe3, //0x000011f4 movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0xf4, 0xe2, //0x000011f8 pmuludq %xmm2, %xmm4 - 0x66, 0x0f, 0xfa, 0xc4, //0x000011fc psubd %xmm4, %xmm0 - 0x66, 0x0f, 0x61, 0xd8, //0x00001200 punpcklwd %xmm0, %xmm3 - 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x00001204 psllq $2, %xmm3 - 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00001209 pshuflw $80, %xmm3, %xmm0 - 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000120e pshufd $80, %xmm0, %xmm0 - 0x66, 0x0f, 0x6f, 0x25, 0x65, 0xfb, 0xff, 0xff, //0x00001213 movdqa $-1179(%rip), %xmm4 /* LCPI4_1+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc4, //0x0000121b pmulhuw %xmm4, %xmm0 - 0x66, 0x0f, 0x6f, 0x2d, 0x69, 0xfb, 0xff, 0xff, //0x0000121f movdqa $-1175(%rip), %xmm5 /* LCPI4_2+0(%rip) */ - 0x66, 0x0f, 0xe4, 0xc5, //0x00001227 pmulhuw %xmm5, %xmm0 - 0x66, 0x0f, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x0000122b movdqa $-1171(%rip), %xmm3 /* LCPI4_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xf0, //0x00001233 movdqa %xmm0, %xmm6 - 0x66, 0x0f, 0xd5, 0xf3, //0x00001237 pmullw %xmm3, %xmm6 - 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x0000123b psllq $16, %xmm6 - 0x66, 0x0f, 0xf9, 0xc6, //0x00001240 psubw %xmm6, %xmm0 - 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001244 imull $100000000, %edx, %eax - 0x29, 0xc6, //0x0000124a subl %eax, %esi - 0x66, 0x0f, 0x6e, 0xf6, //0x0000124c movd %esi, %xmm6 - 0x66, 0x0f, 0xf4, 0xce, //0x00001250 pmuludq %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x00001254 psrlq $45, %xmm1 - 0x66, 0x0f, 0xf4, 0xd1, //0x00001259 pmuludq %xmm1, %xmm2 - 0x66, 0x0f, 0xfa, 0xf2, //0x0000125d psubd %xmm2, %xmm6 - 0x66, 0x0f, 0x61, 0xce, //0x00001261 punpcklwd %xmm6, %xmm1 - 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x00001265 psllq $2, %xmm1 - 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x0000126a pshuflw $80, %xmm1, %xmm1 - 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x0000126f pshufd $80, %xmm1, %xmm1 - 0x66, 0x0f, 0xe4, 0xcc, //0x00001274 pmulhuw %xmm4, %xmm1 - 0x66, 0x0f, 0xe4, 0xcd, //0x00001278 pmulhuw %xmm5, %xmm1 - 0x66, 0x0f, 0xd5, 0xd9, //0x0000127c pmullw %xmm1, %xmm3 - 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00001280 psllq $16, %xmm3 - 0x66, 0x0f, 0xf9, 0xcb, //0x00001285 psubw %xmm3, %xmm1 - 0x66, 0x0f, 0x67, 0xc1, //0x00001289 packuswb %xmm1, %xmm0 - 0x66, 0x0f, 0xfc, 0x05, 0x1b, 0xfb, 0xff, 0xff, //0x0000128d paddb $-1253(%rip), %xmm0 /* LCPI4_4+0(%rip) */ - 0x89, 0xc8, //0x00001295 movl %ecx, %eax - 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00001297 movdqu %xmm0, (%rdi,%rax) - 0x83, 0xc9, 0x10, //0x0000129c orl $16, %ecx - 0x89, 0xc8, //0x0000129f movl %ecx, %eax - 0x5d, //0x000012a1 popq %rbp - 0xc3, //0x000012a2 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a3 .p2align 4, 0x00 - //0x000012b0 LCPI5_0 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000012b0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000012c0 LCPI5_1 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000012c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000012d0 LCPI5_2 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000012d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000012e0 .p2align 4, 0x90 - //0x000012e0 _quote - 0x55, //0x000012e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000012e1 movq %rsp, %rbp - 0x41, 0x57, //0x000012e4 pushq %r15 - 0x41, 0x56, //0x000012e6 pushq %r14 - 0x41, 0x55, //0x000012e8 pushq %r13 - 0x41, 0x54, //0x000012ea pushq %r12 - 0x53, //0x000012ec pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x000012ed subq $16, %rsp - 0x49, 0x89, 0xcb, //0x000012f1 movq %rcx, %r11 - 0x49, 0x89, 0xd4, //0x000012f4 movq %rdx, %r12 - 0x48, 0x89, 0xf0, //0x000012f7 movq %rsi, %rax - 0x4c, 0x8b, 0x31, //0x000012fa movq (%rcx), %r14 - 0x41, 0xf6, 0xc0, 0x01, //0x000012fd testb $1, %r8b - 0x48, 0x8d, 0x0d, 0x58, 0xd6, 0x00, 0x00, //0x00001301 leaq $54872(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ - 0x4c, 0x8d, 0x05, 0x51, 0xe6, 0x00, 0x00, //0x00001308 leaq $58961(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xc1, //0x0000130f cmoveq %rcx, %r8 - 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001313 leaq (,%rsi,8), %rcx - 0x49, 0x39, 0xce, //0x0000131b cmpq %rcx, %r14 - 0x0f, 0x8d, 0xee, 0x03, 0x00, 0x00, //0x0000131e jge LBB5_51 - 0x4d, 0x89, 0xe7, //0x00001324 movq %r12, %r15 - 0x49, 0x89, 0xfa, //0x00001327 movq %rdi, %r10 - 0x48, 0x85, 0xc0, //0x0000132a testq %rax, %rax - 0x0f, 0x84, 0xd1, 0x03, 0x00, 0x00, //0x0000132d je LBB5_74 - 0x66, 0x0f, 0x6f, 0x05, 0x75, 0xff, 0xff, 0xff, //0x00001333 movdqa $-139(%rip), %xmm0 /* LCPI5_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x7d, 0xff, 0xff, 0xff, //0x0000133b movdqa $-131(%rip), %xmm1 /* LCPI5_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x85, 0xff, 0xff, 0xff, //0x00001343 movdqa $-123(%rip), %xmm2 /* LCPI5_2+0(%rip) */ - 0x66, 0x0f, 0x76, 0xdb, //0x0000134b pcmpeqd %xmm3, %xmm3 - 0x49, 0x89, 0xfa, //0x0000134f movq %rdi, %r10 - 0x4d, 0x89, 0xe7, //0x00001352 movq %r12, %r15 - 0x4c, 0x89, 0x65, 0xc8, //0x00001355 movq %r12, $-56(%rbp) - //0x00001359 LBB5_3 - 0x48, 0x83, 0xf8, 0x0f, //0x00001359 cmpq $15, %rax - 0x0f, 0x9f, 0xc3, //0x0000135d setg %bl - 0x4d, 0x89, 0xf1, //0x00001360 movq %r14, %r9 - 0x4d, 0x89, 0xfd, //0x00001363 movq %r15, %r13 - 0x48, 0x89, 0xc6, //0x00001366 movq %rax, %rsi - 0x4d, 0x89, 0xd4, //0x00001369 movq %r10, %r12 - 0x49, 0x83, 0xfe, 0x10, //0x0000136c cmpq $16, %r14 - 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x00001370 jl LBB5_9 - 0x48, 0x83, 0xf8, 0x10, //0x00001376 cmpq $16, %rax - 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x0000137a jl LBB5_9 - 0x4d, 0x89, 0xd4, //0x00001380 movq %r10, %r12 - 0x48, 0x89, 0xc6, //0x00001383 movq %rax, %rsi - 0x4d, 0x89, 0xfd, //0x00001386 movq %r15, %r13 - 0x4c, 0x89, 0xf1, //0x00001389 movq %r14, %rcx - 0x90, 0x90, 0x90, 0x90, //0x0000138c .p2align 4, 0x90 - //0x00001390 LBB5_6 - 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x00001390 movdqu (%r12), %xmm4 - 0x66, 0x0f, 0x6f, 0xe8, //0x00001396 movdqa %xmm0, %xmm5 - 0x66, 0x0f, 0x64, 0xec, //0x0000139a pcmpgtb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x0000139e movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x000013a2 pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0x6f, 0xfc, //0x000013a6 movdqa %xmm4, %xmm7 - 0x66, 0x0f, 0x74, 0xfa, //0x000013aa pcmpeqb %xmm2, %xmm7 - 0x66, 0x0f, 0xeb, 0xfe, //0x000013ae por %xmm6, %xmm7 - 0xf3, 0x41, 0x0f, 0x7f, 0x65, 0x00, //0x000013b2 movdqu %xmm4, (%r13) - 0x66, 0x0f, 0x64, 0xe3, //0x000013b8 pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x000013bc pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe7, //0x000013c0 por %xmm7, %xmm4 - 0x66, 0x0f, 0xd7, 0xdc, //0x000013c4 pmovmskb %xmm4, %ebx - 0x66, 0x85, 0xdb, //0x000013c8 testw %bx, %bx - 0x0f, 0x85, 0x24, 0x01, 0x00, 0x00, //0x000013cb jne LBB5_19 - 0x49, 0x83, 0xc4, 0x10, //0x000013d1 addq $16, %r12 - 0x49, 0x83, 0xc5, 0x10, //0x000013d5 addq $16, %r13 - 0x4c, 0x8d, 0x49, 0xf0, //0x000013d9 leaq $-16(%rcx), %r9 - 0x48, 0x83, 0xfe, 0x1f, //0x000013dd cmpq $31, %rsi - 0x0f, 0x9f, 0xc3, //0x000013e1 setg %bl - 0x48, 0x83, 0xfe, 0x20, //0x000013e4 cmpq $32, %rsi - 0x48, 0x8d, 0x76, 0xf0, //0x000013e8 leaq $-16(%rsi), %rsi - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x000013ec jl LBB5_9 - 0x48, 0x83, 0xf9, 0x1f, //0x000013f2 cmpq $31, %rcx - 0x4c, 0x89, 0xc9, //0x000013f6 movq %r9, %rcx - 0x0f, 0x8f, 0x91, 0xff, 0xff, 0xff, //0x000013f9 jg LBB5_6 - 0x90, //0x000013ff .p2align 4, 0x90 - //0x00001400 LBB5_9 - 0x84, 0xdb, //0x00001400 testb %bl, %bl - 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00001402 je LBB5_13 - 0x4c, 0x89, 0x5d, 0xd0, //0x00001408 movq %r11, $-48(%rbp) - 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x0000140c movdqu (%r12), %xmm4 - 0x66, 0x0f, 0x6f, 0xe8, //0x00001412 movdqa %xmm0, %xmm5 - 0x66, 0x0f, 0x64, 0xec, //0x00001416 pcmpgtb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x0000141a movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x0000141e pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0x6f, 0xfc, //0x00001422 movdqa %xmm4, %xmm7 - 0x66, 0x0f, 0x74, 0xfa, //0x00001426 pcmpeqb %xmm2, %xmm7 - 0x66, 0x0f, 0xeb, 0xfe, //0x0000142a por %xmm6, %xmm7 - 0x66, 0x48, 0x0f, 0x7e, 0xe1, //0x0000142e movq %xmm4, %rcx - 0x66, 0x0f, 0x64, 0xe3, //0x00001433 pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x00001437 pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe7, //0x0000143b por %xmm7, %xmm4 - 0x66, 0x0f, 0xd7, 0xf4, //0x0000143f pmovmskb %xmm4, %esi - 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, //0x00001443 orl $65536, %esi - 0x44, 0x0f, 0xbc, 0xde, //0x00001449 bsfl %esi, %r11d - 0x4d, 0x39, 0xd9, //0x0000144d cmpq %r11, %r9 - 0x0f, 0x8d, 0xb1, 0x00, 0x00, 0x00, //0x00001450 jge LBB5_20 - 0x49, 0x83, 0xf9, 0x08, //0x00001456 cmpq $8, %r9 - 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x0000145a jb LBB5_23 - 0x49, 0x89, 0x4d, 0x00, //0x00001460 movq %rcx, (%r13) - 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x00001464 leaq $8(%r12), %r11 - 0x49, 0x83, 0xc5, 0x08, //0x00001469 addq $8, %r13 - 0x49, 0x8d, 0x71, 0xf8, //0x0000146d leaq $-8(%r9), %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00001471 cmpq $4, %rsi - 0x0f, 0x8d, 0xd1, 0x00, 0x00, 0x00, //0x00001475 jge LBB5_24 - 0xe9, 0xdf, 0x00, 0x00, 0x00, //0x0000147b jmp LBB5_25 - //0x00001480 LBB5_13 - 0x4d, 0x85, 0xc9, //0x00001480 testq %r9, %r9 - 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x00001483 jle LBB5_18 - 0x48, 0x85, 0xf6, //0x00001489 testq %rsi, %rsi - 0x0f, 0x8e, 0x52, 0x00, 0x00, 0x00, //0x0000148c jle LBB5_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001492 .p2align 4, 0x90 - //0x000014a0 LBB5_15 - 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000014a0 movzbl (%r12), %ebx - 0x48, 0x89, 0xd9, //0x000014a5 movq %rbx, %rcx - 0x48, 0xc1, 0xe1, 0x04, //0x000014a8 shlq $4, %rcx - 0x48, 0x8d, 0x15, 0xad, 0xd4, 0x00, 0x00, //0x000014ac leaq $54445(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ - 0x48, 0x83, 0x3c, 0x11, 0x00, //0x000014b3 cmpq $0, (%rcx,%rdx) - 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x000014b8 jne LBB5_22 - 0x49, 0xff, 0xc4, //0x000014be incq %r12 - 0x41, 0x88, 0x5d, 0x00, //0x000014c1 movb %bl, (%r13) - 0x48, 0x83, 0xfe, 0x02, //0x000014c5 cmpq $2, %rsi - 0x48, 0x8d, 0x76, 0xff, //0x000014c9 leaq $-1(%rsi), %rsi - 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x000014cd jl LBB5_18 - 0x49, 0xff, 0xc5, //0x000014d3 incq %r13 - 0x49, 0x83, 0xf9, 0x01, //0x000014d6 cmpq $1, %r9 - 0x4d, 0x8d, 0x49, 0xff, //0x000014da leaq $-1(%r9), %r9 - 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x000014de jg LBB5_15 - //0x000014e4 LBB5_18 - 0x4d, 0x29, 0xd4, //0x000014e4 subq %r10, %r12 - 0x48, 0xf7, 0xde, //0x000014e7 negq %rsi - 0x4d, 0x19, 0xc9, //0x000014ea sbbq %r9, %r9 - 0x4d, 0x31, 0xe1, //0x000014ed xorq %r12, %r9 - 0xe9, 0x1f, 0x01, 0x00, 0x00, //0x000014f0 jmp LBB5_36 - //0x000014f5 LBB5_19 - 0x0f, 0xb7, 0xcb, //0x000014f5 movzwl %bx, %ecx - 0x4d, 0x29, 0xd4, //0x000014f8 subq %r10, %r12 - 0x44, 0x0f, 0xbc, 0xc9, //0x000014fb bsfl %ecx, %r9d - 0x4d, 0x01, 0xe1, //0x000014ff addq %r12, %r9 - 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00001502 jmp LBB5_36 - //0x00001507 LBB5_20 - 0x41, 0x83, 0xfb, 0x08, //0x00001507 cmpl $8, %r11d - 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000150b jb LBB5_29 - 0x49, 0x89, 0x4d, 0x00, //0x00001511 movq %rcx, (%r13) - 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00001515 leaq $8(%r12), %rbx - 0x49, 0x83, 0xc5, 0x08, //0x0000151a addq $8, %r13 - 0x49, 0x8d, 0x73, 0xf8, //0x0000151e leaq $-8(%r11), %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00001522 cmpq $4, %rsi - 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00001526 jge LBB5_30 - 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000152c jmp LBB5_31 - //0x00001531 LBB5_22 - 0x4d, 0x29, 0xd4, //0x00001531 subq %r10, %r12 - 0x4d, 0x89, 0xe1, //0x00001534 movq %r12, %r9 - 0xe9, 0xd8, 0x00, 0x00, 0x00, //0x00001537 jmp LBB5_36 - //0x0000153c LBB5_23 - 0x4d, 0x89, 0xe3, //0x0000153c movq %r12, %r11 - 0x4c, 0x89, 0xce, //0x0000153f movq %r9, %rsi - 0x48, 0x83, 0xfe, 0x04, //0x00001542 cmpq $4, %rsi - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001546 jl LBB5_25 - //0x0000154c LBB5_24 - 0x41, 0x8b, 0x0b, //0x0000154c movl (%r11), %ecx - 0x41, 0x89, 0x4d, 0x00, //0x0000154f movl %ecx, (%r13) - 0x49, 0x83, 0xc3, 0x04, //0x00001553 addq $4, %r11 - 0x49, 0x83, 0xc5, 0x04, //0x00001557 addq $4, %r13 - 0x48, 0x83, 0xc6, 0xfc, //0x0000155b addq $-4, %rsi - //0x0000155f LBB5_25 - 0x48, 0x83, 0xfe, 0x02, //0x0000155f cmpq $2, %rsi - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00001563 jb LBB5_26 - 0x41, 0x0f, 0xb7, 0x0b, //0x00001569 movzwl (%r11), %ecx - 0x66, 0x41, 0x89, 0x4d, 0x00, //0x0000156d movw %cx, (%r13) - 0x49, 0x83, 0xc3, 0x02, //0x00001572 addq $2, %r11 - 0x49, 0x83, 0xc5, 0x02, //0x00001576 addq $2, %r13 - 0x48, 0x83, 0xc6, 0xfe, //0x0000157a addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x0000157e testq %rsi, %rsi - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001581 jne LBB5_27 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001587 jmp LBB5_28 - //0x0000158c LBB5_26 - 0x48, 0x85, 0xf6, //0x0000158c testq %rsi, %rsi - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000158f je LBB5_28 - //0x00001595 LBB5_27 - 0x41, 0x8a, 0x0b, //0x00001595 movb (%r11), %cl - 0x41, 0x88, 0x4d, 0x00, //0x00001598 movb %cl, (%r13) - //0x0000159c LBB5_28 - 0x4d, 0x29, 0xd1, //0x0000159c subq %r10, %r9 - 0x4d, 0x01, 0xe1, //0x0000159f addq %r12, %r9 - 0x49, 0xf7, 0xd1, //0x000015a2 notq %r9 - 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000015a5 jmp LBB5_35 - //0x000015aa LBB5_29 - 0x4c, 0x89, 0xe3, //0x000015aa movq %r12, %rbx - 0x4c, 0x89, 0xde, //0x000015ad movq %r11, %rsi - 0x48, 0x83, 0xfe, 0x04, //0x000015b0 cmpq $4, %rsi - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000015b4 jl LBB5_31 - //0x000015ba LBB5_30 - 0x8b, 0x0b, //0x000015ba movl (%rbx), %ecx - 0x41, 0x89, 0x4d, 0x00, //0x000015bc movl %ecx, (%r13) - 0x48, 0x83, 0xc3, 0x04, //0x000015c0 addq $4, %rbx - 0x49, 0x83, 0xc5, 0x04, //0x000015c4 addq $4, %r13 - 0x48, 0x83, 0xc6, 0xfc, //0x000015c8 addq $-4, %rsi - //0x000015cc LBB5_31 - 0x48, 0x83, 0xfe, 0x02, //0x000015cc cmpq $2, %rsi - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000015d0 jb LBB5_32 - 0x0f, 0xb7, 0x0b, //0x000015d6 movzwl (%rbx), %ecx - 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000015d9 movw %cx, (%r13) - 0x48, 0x83, 0xc3, 0x02, //0x000015de addq $2, %rbx - 0x49, 0x83, 0xc5, 0x02, //0x000015e2 addq $2, %r13 - 0x48, 0x83, 0xc6, 0xfe, //0x000015e6 addq $-2, %rsi - 0x48, 0x85, 0xf6, //0x000015ea testq %rsi, %rsi - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000015ed jne LBB5_33 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000015f3 jmp LBB5_34 - //0x000015f8 LBB5_32 - 0x48, 0x85, 0xf6, //0x000015f8 testq %rsi, %rsi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000015fb je LBB5_34 - //0x00001601 LBB5_33 - 0x8a, 0x0b, //0x00001601 movb (%rbx), %cl - 0x41, 0x88, 0x4d, 0x00, //0x00001603 movb %cl, (%r13) - //0x00001607 LBB5_34 - 0x4d, 0x29, 0xd4, //0x00001607 subq %r10, %r12 - 0x4d, 0x01, 0xdc, //0x0000160a addq %r11, %r12 - 0x4d, 0x89, 0xe1, //0x0000160d movq %r12, %r9 - //0x00001610 LBB5_35 - 0x4c, 0x8b, 0x5d, 0xd0, //0x00001610 movq $-48(%rbp), %r11 - //0x00001614 LBB5_36 - 0x4d, 0x85, 0xc9, //0x00001614 testq %r9, %r9 - 0x4c, 0x8b, 0x65, 0xc8, //0x00001617 movq $-56(%rbp), %r12 - 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000161b movabsq $12884901889, %r13 - 0x0f, 0x88, 0x55, 0x03, 0x00, 0x00, //0x00001625 js LBB5_78 - 0x4d, 0x01, 0xca, //0x0000162b addq %r9, %r10 - 0x4d, 0x01, 0xcf, //0x0000162e addq %r9, %r15 - 0x4c, 0x39, 0xc8, //0x00001631 cmpq %r9, %rax - 0x0f, 0x84, 0xca, 0x00, 0x00, 0x00, //0x00001634 je LBB5_74 - 0x4d, 0x29, 0xce, //0x0000163a subq %r9, %r14 - 0x49, 0x29, 0xc1, //0x0000163d subq %rax, %r9 - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00001640 jmp LBB5_40 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001645 .p2align 4, 0x90 - //0x00001650 LBB5_39 - 0x49, 0xff, 0xc2, //0x00001650 incq %r10 - 0x49, 0x01, 0xc7, //0x00001653 addq %rax, %r15 - 0x49, 0xff, 0xc1, //0x00001656 incq %r9 - 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x00001659 je LBB5_74 - //0x0000165f LBB5_40 - 0x41, 0x0f, 0xb6, 0x32, //0x0000165f movzbl (%r10), %esi - 0x48, 0xc1, 0xe6, 0x04, //0x00001663 shlq $4, %rsi - 0x49, 0x8b, 0x1c, 0x30, //0x00001667 movq (%r8,%rsi), %rbx - 0x85, 0xdb, //0x0000166b testl %ebx, %ebx - 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000166d je LBB5_48 - 0x48, 0x63, 0xc3, //0x00001673 movslq %ebx, %rax - 0x49, 0x29, 0xc6, //0x00001676 subq %rax, %r14 - 0x0f, 0x8c, 0xe3, 0x02, 0x00, 0x00, //0x00001679 jl LBB5_75 - 0x48, 0xc1, 0xe3, 0x20, //0x0000167f shlq $32, %rbx - 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x00001683 leaq $8(%r8,%rsi), %rcx - 0x4c, 0x39, 0xeb, //0x00001688 cmpq %r13, %rbx - 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x0000168b jl LBB5_44 - 0x8b, 0x09, //0x00001691 movl (%rcx), %ecx - 0x41, 0x89, 0x0f, //0x00001693 movl %ecx, (%r15) - 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x00001696 leaq $12(%r8,%rsi), %rcx - 0x49, 0x8d, 0x77, 0x04, //0x0000169b leaq $4(%r15), %rsi - 0x48, 0x8d, 0x58, 0xfc, //0x0000169f leaq $-4(%rax), %rbx - 0x48, 0x83, 0xfb, 0x02, //0x000016a3 cmpq $2, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000016a7 jae LBB5_45 - 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000016ad jmp LBB5_46 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000016b2 .p2align 4, 0x90 - //0x000016c0 LBB5_44 - 0x4c, 0x89, 0xfe, //0x000016c0 movq %r15, %rsi - 0x48, 0x89, 0xc3, //0x000016c3 movq %rax, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x000016c6 cmpq $2, %rbx - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000016ca jb LBB5_46 - //0x000016d0 LBB5_45 - 0x0f, 0xb7, 0x11, //0x000016d0 movzwl (%rcx), %edx - 0x66, 0x89, 0x16, //0x000016d3 movw %dx, (%rsi) - 0x48, 0x83, 0xc1, 0x02, //0x000016d6 addq $2, %rcx - 0x48, 0x83, 0xc6, 0x02, //0x000016da addq $2, %rsi - 0x48, 0x83, 0xc3, 0xfe, //0x000016de addq $-2, %rbx - //0x000016e2 LBB5_46 - 0x48, 0x85, 0xdb, //0x000016e2 testq %rbx, %rbx - 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x000016e5 je LBB5_39 - 0x0f, 0xb6, 0x09, //0x000016eb movzbl (%rcx), %ecx - 0x88, 0x0e, //0x000016ee movb %cl, (%rsi) - 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x000016f0 jmp LBB5_39 - //0x000016f5 LBB5_48 - 0x4c, 0x89, 0xc8, //0x000016f5 movq %r9, %rax - 0x48, 0xf7, 0xd8, //0x000016f8 negq %rax - 0x4d, 0x85, 0xc9, //0x000016fb testq %r9, %r9 - 0x0f, 0x85, 0x55, 0xfc, 0xff, 0xff, //0x000016fe jne LBB5_3 - //0x00001704 LBB5_74 - 0x4d, 0x29, 0xe7, //0x00001704 subq %r12, %r15 - 0x4d, 0x89, 0x3b, //0x00001707 movq %r15, (%r11) - 0x49, 0x29, 0xfa, //0x0000170a subq %rdi, %r10 - 0xe9, 0x5c, 0x02, 0x00, 0x00, //0x0000170d jmp LBB5_76 - //0x00001712 LBB5_51 - 0x4c, 0x8d, 0x0d, 0x47, 0xf2, 0x00, 0x00, //0x00001712 leaq $62023(%rip), %r9 /* __EscTab+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xfb, 0xff, 0xff, //0x00001719 movdqa $-1137(%rip), %xmm0 /* LCPI5_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x97, 0xfb, 0xff, 0xff, //0x00001721 movdqa $-1129(%rip), %xmm1 /* LCPI5_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x9f, 0xfb, 0xff, 0xff, //0x00001729 movdqa $-1121(%rip), %xmm2 /* LCPI5_2+0(%rip) */ - 0x66, 0x0f, 0x76, 0xdb, //0x00001731 pcmpeqd %xmm3, %xmm3 - 0x4c, 0x89, 0xe3, //0x00001735 movq %r12, %rbx - 0x49, 0x89, 0xc2, //0x00001738 movq %rax, %r10 - //0x0000173b LBB5_52 - 0x49, 0x83, 0xfa, 0x10, //0x0000173b cmpq $16, %r10 - 0x0f, 0x8c, 0x6a, 0x00, 0x00, 0x00, //0x0000173f jl LBB5_57 - 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001745 movl $16, %ecx - 0x31, 0xf6, //0x0000174a xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, //0x0000174c .p2align 4, 0x90 - //0x00001750 LBB5_54 - 0xf3, 0x0f, 0x6f, 0x24, 0x37, //0x00001750 movdqu (%rdi,%rsi), %xmm4 - 0x66, 0x0f, 0x6f, 0xe8, //0x00001755 movdqa %xmm0, %xmm5 - 0x66, 0x0f, 0x64, 0xec, //0x00001759 pcmpgtb %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x0000175d movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x00001761 pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0x6f, 0xfc, //0x00001765 movdqa %xmm4, %xmm7 - 0x66, 0x0f, 0x74, 0xfa, //0x00001769 pcmpeqb %xmm2, %xmm7 - 0x66, 0x0f, 0xeb, 0xfe, //0x0000176d por %xmm6, %xmm7 - 0xf3, 0x0f, 0x7f, 0x24, 0x33, //0x00001771 movdqu %xmm4, (%rbx,%rsi) - 0x66, 0x0f, 0x64, 0xe3, //0x00001776 pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x0000177a pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe7, //0x0000177e por %xmm7, %xmm4 - 0x66, 0x0f, 0xd7, 0xd4, //0x00001782 pmovmskb %xmm4, %edx - 0x66, 0x85, 0xd2, //0x00001786 testw %dx, %dx - 0x0f, 0x85, 0x3a, 0x01, 0x00, 0x00, //0x00001789 jne LBB5_67 - 0x48, 0x83, 0xc6, 0x10, //0x0000178f addq $16, %rsi - 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x00001793 leaq $-16(%r10,%rcx), %rdx - 0x48, 0x83, 0xc1, 0xf0, //0x00001798 addq $-16, %rcx - 0x48, 0x83, 0xfa, 0x1f, //0x0000179c cmpq $31, %rdx - 0x0f, 0x8f, 0xaa, 0xff, 0xff, 0xff, //0x000017a0 jg LBB5_54 - 0x48, 0x01, 0xf7, //0x000017a6 addq %rsi, %rdi - 0x49, 0x29, 0xf2, //0x000017a9 subq %rsi, %r10 - 0x48, 0x01, 0xf3, //0x000017ac addq %rsi, %rbx - //0x000017af LBB5_57 - 0x49, 0x83, 0xfa, 0x08, //0x000017af cmpq $8, %r10 - 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x000017b3 jl LBB5_61 - 0x0f, 0xb6, 0x0f, //0x000017b9 movzbl (%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017bc movzbl (%rcx,%r9), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x000017c1 movzbl $1(%rdi), %edx - 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000017c5 movzbl (%rdx,%r9), %edx - 0x01, 0xd2, //0x000017ca addl %edx, %edx - 0x09, 0xca, //0x000017cc orl %ecx, %edx - 0x0f, 0xb6, 0x4f, 0x02, //0x000017ce movzbl $2(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000017d2 movzbl (%rcx,%r9), %esi - 0xc1, 0xe6, 0x02, //0x000017d7 shll $2, %esi - 0x0f, 0xb6, 0x4f, 0x03, //0x000017da movzbl $3(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017de movzbl (%rcx,%r9), %ecx - 0xc1, 0xe1, 0x03, //0x000017e3 shll $3, %ecx - 0x09, 0xf1, //0x000017e6 orl %esi, %ecx - 0x09, 0xd1, //0x000017e8 orl %edx, %ecx - 0x48, 0x8b, 0x17, //0x000017ea movq (%rdi), %rdx - 0x48, 0x89, 0x13, //0x000017ed movq %rdx, (%rbx) - 0x84, 0xc9, //0x000017f0 testb %cl, %cl - 0x0f, 0x85, 0x35, 0x01, 0x00, 0x00, //0x000017f2 jne LBB5_71 - 0x0f, 0xb6, 0x4f, 0x04, //0x000017f8 movzbl $4(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000017fc movzbl (%rcx,%r9), %ecx - 0x0f, 0xb6, 0x57, 0x05, //0x00001801 movzbl $5(%rdi), %edx - 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001805 movzbl (%rdx,%r9), %edx - 0x01, 0xd2, //0x0000180a addl %edx, %edx - 0x09, 0xca, //0x0000180c orl %ecx, %edx - 0x0f, 0xb6, 0x4f, 0x06, //0x0000180e movzbl $6(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001812 movzbl (%rcx,%r9), %esi - 0xc1, 0xe6, 0x02, //0x00001817 shll $2, %esi - 0x0f, 0xb6, 0x4f, 0x07, //0x0000181a movzbl $7(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000181e movzbl (%rcx,%r9), %ecx - 0xc1, 0xe1, 0x03, //0x00001823 shll $3, %ecx - 0x09, 0xf1, //0x00001826 orl %esi, %ecx - 0x09, 0xd1, //0x00001828 orl %edx, %ecx - 0x84, 0xc9, //0x0000182a testb %cl, %cl - 0x0f, 0x85, 0x0c, 0x01, 0x00, 0x00, //0x0000182c jne LBB5_72 - 0x48, 0x83, 0xc3, 0x08, //0x00001832 addq $8, %rbx - 0x48, 0x83, 0xc7, 0x08, //0x00001836 addq $8, %rdi - 0x49, 0x83, 0xc2, 0xf8, //0x0000183a addq $-8, %r10 - //0x0000183e LBB5_61 - 0x49, 0x83, 0xfa, 0x04, //0x0000183e cmpq $4, %r10 - 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00001842 jl LBB5_64 - 0x0f, 0xb6, 0x0f, //0x00001848 movzbl (%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000184b movzbl (%rcx,%r9), %ecx - 0x0f, 0xb6, 0x57, 0x01, //0x00001850 movzbl $1(%rdi), %edx - 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00001854 movzbl (%rdx,%r9), %edx - 0x01, 0xd2, //0x00001859 addl %edx, %edx - 0x09, 0xca, //0x0000185b orl %ecx, %edx - 0x0f, 0xb6, 0x4f, 0x02, //0x0000185d movzbl $2(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00001861 movzbl (%rcx,%r9), %esi - 0xc1, 0xe6, 0x02, //0x00001866 shll $2, %esi - 0x0f, 0xb6, 0x4f, 0x03, //0x00001869 movzbl $3(%rdi), %ecx - 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000186d movzbl (%rcx,%r9), %ecx - 0xc1, 0xe1, 0x03, //0x00001872 shll $3, %ecx - 0x09, 0xf1, //0x00001875 orl %esi, %ecx - 0x09, 0xd1, //0x00001877 orl %edx, %ecx - 0x8b, 0x17, //0x00001879 movl (%rdi), %edx - 0x89, 0x13, //0x0000187b movl %edx, (%rbx) - 0x84, 0xc9, //0x0000187d testb %cl, %cl - 0x0f, 0x85, 0xa8, 0x00, 0x00, 0x00, //0x0000187f jne LBB5_71 - 0x48, 0x83, 0xc3, 0x04, //0x00001885 addq $4, %rbx - 0x48, 0x83, 0xc7, 0x04, //0x00001889 addq $4, %rdi - 0x49, 0x83, 0xc2, 0xfc, //0x0000188d addq $-4, %r10 - //0x00001891 LBB5_64 - 0x4d, 0x85, 0xd2, //0x00001891 testq %r10, %r10 - 0x0f, 0x8e, 0xbd, 0x00, 0x00, 0x00, //0x00001894 jle LBB5_73 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000189a .p2align 4, 0x90 - //0x000018a0 LBB5_65 - 0x0f, 0xb6, 0x0f, //0x000018a0 movzbl (%rdi), %ecx - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000018a3 cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000018a8 jne LBB5_68 - 0x48, 0xff, 0xc7, //0x000018ae incq %rdi - 0x88, 0x0b, //0x000018b1 movb %cl, (%rbx) - 0x48, 0xff, 0xc3, //0x000018b3 incq %rbx - 0x49, 0x83, 0xfa, 0x01, //0x000018b6 cmpq $1, %r10 - 0x4d, 0x8d, 0x52, 0xff, //0x000018ba leaq $-1(%r10), %r10 - 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x000018be jg LBB5_65 - 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x000018c4 jmp LBB5_73 - //0x000018c9 LBB5_67 - 0x0f, 0xb7, 0xca, //0x000018c9 movzwl %dx, %ecx - 0x0f, 0xbc, 0xc9, //0x000018cc bsfl %ecx, %ecx - 0x48, 0x01, 0xcf, //0x000018cf addq %rcx, %rdi - 0x48, 0x01, 0xf7, //0x000018d2 addq %rsi, %rdi - 0x49, 0x29, 0xca, //0x000018d5 subq %rcx, %r10 - 0x49, 0x29, 0xf2, //0x000018d8 subq %rsi, %r10 - 0x48, 0x01, 0xcb, //0x000018db addq %rcx, %rbx - 0x48, 0x01, 0xf3, //0x000018de addq %rsi, %rbx - //0x000018e1 LBB5_68 - 0x8a, 0x0f, //0x000018e1 movb (%rdi), %cl - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018e3 .p2align 4, 0x90 - //0x000018f0 LBB5_69 - 0x48, 0x89, 0xda, //0x000018f0 movq %rbx, %rdx - 0x0f, 0xb6, 0xc9, //0x000018f3 movzbl %cl, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x000018f6 shlq $4, %rcx - 0x49, 0x63, 0x1c, 0x08, //0x000018fa movslq (%r8,%rcx), %rbx - 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x000018fe movq $8(%r8,%rcx), %rcx - 0x48, 0x89, 0x0a, //0x00001903 movq %rcx, (%rdx) - 0x48, 0x01, 0xd3, //0x00001906 addq %rdx, %rbx - 0x49, 0x83, 0xfa, 0x02, //0x00001909 cmpq $2, %r10 - 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000190d jl LBB5_73 - 0x49, 0xff, 0xca, //0x00001913 decq %r10 - 0x0f, 0xb6, 0x4f, 0x01, //0x00001916 movzbl $1(%rdi), %ecx - 0x48, 0xff, 0xc7, //0x0000191a incq %rdi - 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000191d cmpb $0, (%rcx,%r9) - 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00001922 jne LBB5_69 - 0xe9, 0x0e, 0xfe, 0xff, 0xff, //0x00001928 jmp LBB5_52 - //0x0000192d LBB5_71 - 0x0f, 0xbc, 0xc9, //0x0000192d bsfl %ecx, %ecx - 0x48, 0x01, 0xcf, //0x00001930 addq %rcx, %rdi - 0x49, 0x29, 0xca, //0x00001933 subq %rcx, %r10 - 0x48, 0x01, 0xcb, //0x00001936 addq %rcx, %rbx - 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00001939 jmp LBB5_68 - //0x0000193e LBB5_72 - 0x0f, 0xbc, 0xc9, //0x0000193e bsfl %ecx, %ecx - 0x48, 0x8d, 0x51, 0x04, //0x00001941 leaq $4(%rcx), %rdx - 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00001945 leaq $4(%rdi,%rcx), %rdi - 0x49, 0x29, 0xd2, //0x0000194a subq %rdx, %r10 - 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000194d leaq $4(%rbx,%rcx), %rbx - 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x00001952 jmp LBB5_68 - //0x00001957 LBB5_73 - 0x4c, 0x29, 0xe3, //0x00001957 subq %r12, %rbx - 0x49, 0x89, 0x1b, //0x0000195a movq %rbx, (%r11) - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x0000195d jmp LBB5_77 - //0x00001962 LBB5_75 - 0x4d, 0x29, 0xe7, //0x00001962 subq %r12, %r15 - 0x4d, 0x89, 0x3b, //0x00001965 movq %r15, (%r11) - 0x49, 0xf7, 0xd2, //0x00001968 notq %r10 - 0x49, 0x01, 0xfa, //0x0000196b addq %rdi, %r10 - //0x0000196e LBB5_76 - 0x4c, 0x89, 0xd0, //0x0000196e movq %r10, %rax - //0x00001971 LBB5_77 - 0x48, 0x83, 0xc4, 0x10, //0x00001971 addq $16, %rsp - 0x5b, //0x00001975 popq %rbx - 0x41, 0x5c, //0x00001976 popq %r12 - 0x41, 0x5d, //0x00001978 popq %r13 - 0x41, 0x5e, //0x0000197a popq %r14 - 0x41, 0x5f, //0x0000197c popq %r15 - 0x5d, //0x0000197e popq %rbp - 0xc3, //0x0000197f retq - //0x00001980 LBB5_78 - 0x4d, 0x29, 0xe7, //0x00001980 subq %r12, %r15 - 0x49, 0xf7, 0xd1, //0x00001983 notq %r9 - 0x4d, 0x01, 0xcf, //0x00001986 addq %r9, %r15 - 0x4d, 0x89, 0x3b, //0x00001989 movq %r15, (%r11) - 0x49, 0x29, 0xfa, //0x0000198c subq %rdi, %r10 - 0x4d, 0x01, 0xca, //0x0000198f addq %r9, %r10 - 0x49, 0xf7, 0xd2, //0x00001992 notq %r10 - 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x00001995 jmp LBB5_76 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000199a .p2align 4, 0x00 - //0x000019a0 LCPI6_0 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000019a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000019b0 .p2align 4, 0x90 - //0x000019b0 _unquote - 0x55, //0x000019b0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000019b1 movq %rsp, %rbp - 0x41, 0x57, //0x000019b4 pushq %r15 - 0x41, 0x56, //0x000019b6 pushq %r14 - 0x41, 0x55, //0x000019b8 pushq %r13 - 0x41, 0x54, //0x000019ba pushq %r12 - 0x53, //0x000019bc pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x000019bd subq $40, %rsp - 0x48, 0x85, 0xf6, //0x000019c1 testq %rsi, %rsi - 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x000019c4 je LBB6_82 - 0x49, 0x89, 0xf3, //0x000019ca movq %rsi, %r11 - 0x48, 0x89, 0x4d, 0xc8, //0x000019cd movq %rcx, $-56(%rbp) - 0x4c, 0x89, 0xc0, //0x000019d1 movq %r8, %rax - 0x4c, 0x89, 0x45, 0xb8, //0x000019d4 movq %r8, $-72(%rbp) - 0x45, 0x89, 0xc2, //0x000019d8 movl %r8d, %r10d - 0x41, 0x83, 0xe2, 0x01, //0x000019db andl $1, %r10d - 0x4c, 0x8d, 0x05, 0x7a, 0xf0, 0x00, 0x00, //0x000019df leaq $61562(%rip), %r8 /* __UnquoteTab+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x000019e6 movdqa $-78(%rip), %xmm0 /* LCPI6_0+0(%rip) */ - 0x49, 0x89, 0xf9, //0x000019ee movq %rdi, %r9 - 0x49, 0x89, 0xf5, //0x000019f1 movq %rsi, %r13 - 0x48, 0x89, 0xd0, //0x000019f4 movq %rdx, %rax - //0x000019f7 LBB6_2 - 0x41, 0x80, 0x39, 0x5c, //0x000019f7 cmpb $92, (%r9) - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000019fb jne LBB6_4 - 0x31, 0xf6, //0x00001a01 xorl %esi, %esi - 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00001a03 jmp LBB6_13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a08 .p2align 4, 0x90 - //0x00001a10 LBB6_4 - 0x4d, 0x89, 0xef, //0x00001a10 movq %r13, %r15 - 0x48, 0x89, 0xc6, //0x00001a13 movq %rax, %rsi - 0x4d, 0x89, 0xce, //0x00001a16 movq %r9, %r14 - 0x49, 0x83, 0xfd, 0x10, //0x00001a19 cmpq $16, %r13 - 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x00001a1d jl LBB6_7 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a23 .p2align 4, 0x90 - //0x00001a30 LBB6_5 - 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00001a30 movdqu (%r14), %xmm1 - 0xf3, 0x0f, 0x7f, 0x0e, //0x00001a35 movdqu %xmm1, (%rsi) - 0x66, 0x0f, 0x74, 0xc8, //0x00001a39 pcmpeqb %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xd9, //0x00001a3d pmovmskb %xmm1, %ebx - 0x66, 0x85, 0xdb, //0x00001a41 testw %bx, %bx - 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00001a44 jne LBB6_12 - 0x49, 0x83, 0xc6, 0x10, //0x00001a4a addq $16, %r14 - 0x48, 0x83, 0xc6, 0x10, //0x00001a4e addq $16, %rsi - 0x49, 0x83, 0xff, 0x1f, //0x00001a52 cmpq $31, %r15 - 0x4d, 0x8d, 0x7f, 0xf0, //0x00001a56 leaq $-16(%r15), %r15 - 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x00001a5a jg LBB6_5 - //0x00001a60 LBB6_7 - 0x4d, 0x85, 0xff, //0x00001a60 testq %r15, %r15 - 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x00001a63 je LBB6_83 - 0x31, 0xdb, //0x00001a69 xorl %ebx, %ebx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a6b .p2align 4, 0x90 - //0x00001a70 LBB6_9 - 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x00001a70 movzbl (%r14,%rbx), %ecx - 0x80, 0xf9, 0x5c, //0x00001a75 cmpb $92, %cl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00001a78 je LBB6_11 - 0x88, 0x0c, 0x1e, //0x00001a7e movb %cl, (%rsi,%rbx) - 0x48, 0xff, 0xc3, //0x00001a81 incq %rbx - 0x49, 0x39, 0xdf, //0x00001a84 cmpq %rbx, %r15 - 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x00001a87 jne LBB6_9 - 0xe9, 0xac, 0x05, 0x00, 0x00, //0x00001a8d jmp LBB6_83 - //0x00001a92 LBB6_11 - 0x49, 0x01, 0xde, //0x00001a92 addq %rbx, %r14 - 0x4d, 0x29, 0xce, //0x00001a95 subq %r9, %r14 - 0x4c, 0x89, 0xf6, //0x00001a98 movq %r14, %rsi - 0x48, 0x83, 0xfe, 0xff, //0x00001a9b cmpq $-1, %rsi - 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00001a9f jne LBB6_13 - 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00001aa5 jmp LBB6_83 - //0x00001aaa LBB6_12 - 0x0f, 0xb7, 0xcb, //0x00001aaa movzwl %bx, %ecx - 0x4d, 0x29, 0xce, //0x00001aad subq %r9, %r14 - 0x48, 0x0f, 0xbc, 0xf1, //0x00001ab0 bsfq %rcx, %rsi - 0x4c, 0x01, 0xf6, //0x00001ab4 addq %r14, %rsi - 0x48, 0x83, 0xfe, 0xff, //0x00001ab7 cmpq $-1, %rsi - 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x00001abb je LBB6_83 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ac1 .p2align 4, 0x90 - //0x00001ad0 LBB6_13 - 0x48, 0x8d, 0x4e, 0x02, //0x00001ad0 leaq $2(%rsi), %rcx - 0x49, 0x29, 0xcd, //0x00001ad4 subq %rcx, %r13 - 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00001ad7 js LBB6_94 - 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x00001add leaq $2(%r9,%rsi), %r9 - 0x4d, 0x85, 0xd2, //0x00001ae2 testq %r10, %r10 - 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00001ae5 jne LBB6_58 - //0x00001aeb LBB6_15 - 0x48, 0x01, 0xf0, //0x00001aeb addq %rsi, %rax - 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x00001aee movzbl $-1(%r9), %ecx - 0x42, 0x8a, 0x0c, 0x01, //0x00001af3 movb (%rcx,%r8), %cl - 0x80, 0xf9, 0xff, //0x00001af7 cmpb $-1, %cl - 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001afa je LBB6_18 - 0x84, 0xc9, //0x00001b00 testb %cl, %cl - 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00001b02 je LBB6_95 - 0x88, 0x08, //0x00001b08 movb %cl, (%rax) - 0x48, 0xff, 0xc0, //0x00001b0a incq %rax - 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00001b0d jmp LBB6_57 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b12 .p2align 4, 0x90 - //0x00001b20 LBB6_18 - 0x49, 0x83, 0xfd, 0x03, //0x00001b20 cmpq $3, %r13 - 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00001b24 jle LBB6_94 - 0x41, 0x8b, 0x31, //0x00001b2a movl (%r9), %esi - 0x89, 0xf1, //0x00001b2d movl %esi, %ecx - 0xf7, 0xd1, //0x00001b2f notl %ecx - 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001b31 leal $-808464432(%rsi), %ebx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001b37 andl $-2139062144, %ecx - 0x85, 0xd9, //0x00001b3d testl %ebx, %ecx - 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x00001b3f jne LBB6_85 - 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001b45 leal $421075225(%rsi), %ebx - 0x09, 0xf3, //0x00001b4b orl %esi, %ebx - 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001b4d testl $-2139062144, %ebx - 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x00001b53 jne LBB6_85 - 0x89, 0xf3, //0x00001b59 movl %esi, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001b5b andl $2139062143, %ebx - 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001b61 movl $-1061109568, %r14d - 0x41, 0x29, 0xde, //0x00001b67 subl %ebx, %r14d - 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x00001b6a leal $1179010630(%rbx), %r15d - 0x41, 0x21, 0xce, //0x00001b71 andl %ecx, %r14d - 0x45, 0x85, 0xfe, //0x00001b74 testl %r15d, %r14d - 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x00001b77 jne LBB6_85 - 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001b7d movl $-522133280, %r14d - 0x41, 0x29, 0xde, //0x00001b83 subl %ebx, %r14d - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001b86 addl $960051513, %ebx - 0x44, 0x21, 0xf1, //0x00001b8c andl %r14d, %ecx - 0x85, 0xd9, //0x00001b8f testl %ebx, %ecx - 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x00001b91 jne LBB6_85 - 0x0f, 0xce, //0x00001b97 bswapl %esi - 0x89, 0xf1, //0x00001b99 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001b9b shrl $4, %ecx - 0xf7, 0xd1, //0x00001b9e notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001ba0 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001ba6 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001ba9 andl $252645135, %esi - 0x01, 0xce, //0x00001baf addl %ecx, %esi - 0x89, 0xf1, //0x00001bb1 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001bb3 shrl $4, %ecx - 0x09, 0xf1, //0x00001bb6 orl %esi, %ecx - 0x44, 0x0f, 0xb6, 0xf9, //0x00001bb8 movzbl %cl, %r15d - 0xc1, 0xe9, 0x08, //0x00001bbc shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001bbf andl $65280, %ecx - 0x41, 0x09, 0xcf, //0x00001bc5 orl %ecx, %r15d - 0x4d, 0x8d, 0x75, 0xfc, //0x00001bc8 leaq $-4(%r13), %r14 - 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00001bcc cmpl $128, %r15d - 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00001bd3 jb LBB6_66 - 0x45, 0x31, 0xe4, //0x00001bd9 xorl %r12d, %r12d - 0x4d, 0x85, 0xd2, //0x00001bdc testq %r10, %r10 - 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x00001bdf je LBB6_40 - //0x00001be5 LBB6_25 - 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001be5 cmpl $2048, %r15d - 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x00001bec jb LBB6_68 - 0x44, 0x89, 0xf9, //0x00001bf2 movl %r15d, %ecx - 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001bf5 andl $-2048, %ecx - 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001bfb cmpl $55296, %ecx - 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00001c01 jne LBB6_54 - 0x4d, 0x85, 0xf6, //0x00001c07 testq %r14, %r14 - 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x00001c0a jle LBB6_72 - 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001c10 cmpb $92, $4(%r9,%r12) - 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00001c16 jne LBB6_73 - 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001c1c cmpl $56319, %r15d - 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00001c23 ja LBB6_70 - 0x49, 0x83, 0xfe, 0x07, //0x00001c29 cmpq $7, %r14 - 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x00001c2d jl LBB6_70 - 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00001c33 cmpb $92, $5(%r9,%r12) - 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00001c39 jne LBB6_70 - 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x00001c3f cmpb $117, $6(%r9,%r12) - 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x00001c45 jne LBB6_70 - 0x43, 0x8b, 0x74, 0x21, 0x07, //0x00001c4b movl $7(%r9,%r12), %esi - 0x89, 0xf1, //0x00001c50 movl %esi, %ecx - 0xf7, 0xd1, //0x00001c52 notl %ecx - 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c54 leal $-808464432(%rsi), %ebx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001c5a andl $-2139062144, %ecx - 0x85, 0xd9, //0x00001c60 testl %ebx, %ecx - 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x00001c62 jne LBB6_99 - 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001c68 leal $421075225(%rsi), %ebx - 0x09, 0xf3, //0x00001c6e orl %esi, %ebx - 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001c70 testl $-2139062144, %ebx - 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x00001c76 jne LBB6_99 - 0x89, 0xf3, //0x00001c7c movl %esi, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c7e andl $2139062143, %ebx - 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c84 movl $-1061109568, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001c8b subl %ebx, $-44(%rbp) - 0x48, 0x89, 0x75, 0xb0, //0x00001c8e movq %rsi, $-80(%rbp) - 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001c92 leal $1179010630(%rbx), %esi - 0x89, 0x75, 0xc4, //0x00001c98 movl %esi, $-60(%rbp) - 0x21, 0x4d, 0xd4, //0x00001c9b andl %ecx, $-44(%rbp) - 0x8b, 0x75, 0xc4, //0x00001c9e movl $-60(%rbp), %esi - 0x85, 0x75, 0xd4, //0x00001ca1 testl %esi, $-44(%rbp) - 0x48, 0x8b, 0x75, 0xb0, //0x00001ca4 movq $-80(%rbp), %rsi - 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00001ca8 jne LBB6_99 - 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001cae movl $-522133280, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001cb5 subl %ebx, $-44(%rbp) - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001cb8 addl $960051513, %ebx - 0x23, 0x4d, 0xd4, //0x00001cbe andl $-44(%rbp), %ecx - 0x85, 0xd9, //0x00001cc1 testl %ebx, %ecx - 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00001cc3 jne LBB6_99 - 0x0f, 0xce, //0x00001cc9 bswapl %esi - 0x89, 0xf1, //0x00001ccb movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001ccd shrl $4, %ecx - 0xf7, 0xd1, //0x00001cd0 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001cd2 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001cd8 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001cdb andl $252645135, %esi - 0x01, 0xce, //0x00001ce1 addl %ecx, %esi - 0x89, 0xf1, //0x00001ce3 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001ce5 shrl $4, %ecx - 0x09, 0xf1, //0x00001ce8 orl %esi, %ecx - 0x89, 0xce, //0x00001cea movl %ecx, %esi - 0xc1, 0xee, 0x08, //0x00001cec shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001cef andl $65280, %esi - 0x0f, 0xb6, 0xd9, //0x00001cf5 movzbl %cl, %ebx - 0x09, 0xf3, //0x00001cf8 orl %esi, %ebx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001cfa andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001d00 cmpl $14417920, %ecx - 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00001d06 je LBB6_77 - 0xf6, 0x45, 0xb8, 0x02, //0x00001d0c testb $2, $-72(%rbp) - 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00001d10 je LBB6_114 - 0x49, 0x83, 0xc6, 0xf9, //0x00001d16 addq $-7, %r14 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001d1a movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001d1f movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00001d23 addq $3, %rax - 0x49, 0x83, 0xc4, 0x07, //0x00001d27 addq $7, %r12 - 0x41, 0x89, 0xdf, //0x00001d2b movl %ebx, %r15d - 0x83, 0xfb, 0x7f, //0x00001d2e cmpl $127, %ebx - 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00001d31 ja LBB6_25 - 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d37 jmp LBB6_53 - 0x90, 0x90, 0x90, 0x90, //0x00001d3c .p2align 4, 0x90 - //0x00001d40 LBB6_40 - 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00001d40 cmpl $2048, %r15d - 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00001d47 jb LBB6_68 - 0x44, 0x89, 0xf9, //0x00001d4d movl %r15d, %ecx - 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00001d50 andl $-2048, %ecx - 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x00001d56 cmpl $55296, %ecx - 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001d5c jne LBB6_54 - 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x00001d62 cmpl $56319, %r15d - 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x00001d69 ja LBB6_69 - 0x49, 0x83, 0xfe, 0x06, //0x00001d6f cmpq $6, %r14 - 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x00001d73 jl LBB6_69 - 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00001d79 cmpb $92, $4(%r9,%r12) - 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x00001d7f jne LBB6_69 - 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x00001d85 cmpb $117, $5(%r9,%r12) - 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x00001d8b jne LBB6_69 - 0x43, 0x8b, 0x74, 0x21, 0x06, //0x00001d91 movl $6(%r9,%r12), %esi - 0x89, 0xf1, //0x00001d96 movl %esi, %ecx - 0xf7, 0xd1, //0x00001d98 notl %ecx - 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d9a leal $-808464432(%rsi), %ebx - 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001da0 andl $-2139062144, %ecx - 0x85, 0xd9, //0x00001da6 testl %ebx, %ecx - 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00001da8 jne LBB6_98 - 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x00001dae leal $421075225(%rsi), %ebx - 0x09, 0xf3, //0x00001db4 orl %esi, %ebx - 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00001db6 testl $-2139062144, %ebx - 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x00001dbc jne LBB6_98 - 0x89, 0xf3, //0x00001dc2 movl %esi, %ebx - 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dc4 andl $2139062143, %ebx - 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dca movl $-1061109568, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001dd1 subl %ebx, $-44(%rbp) - 0x48, 0x89, 0x75, 0xb0, //0x00001dd4 movq %rsi, $-80(%rbp) - 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00001dd8 leal $1179010630(%rbx), %esi - 0x89, 0x75, 0xc4, //0x00001dde movl %esi, $-60(%rbp) - 0x21, 0x4d, 0xd4, //0x00001de1 andl %ecx, $-44(%rbp) - 0x8b, 0x75, 0xc4, //0x00001de4 movl $-60(%rbp), %esi - 0x85, 0x75, 0xd4, //0x00001de7 testl %esi, $-44(%rbp) - 0x48, 0x8b, 0x75, 0xb0, //0x00001dea movq $-80(%rbp), %rsi - 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x00001dee jne LBB6_98 - 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001df4 movl $-522133280, $-44(%rbp) - 0x29, 0x5d, 0xd4, //0x00001dfb subl %ebx, $-44(%rbp) - 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00001dfe addl $960051513, %ebx - 0x23, 0x4d, 0xd4, //0x00001e04 andl $-44(%rbp), %ecx - 0x85, 0xd9, //0x00001e07 testl %ebx, %ecx - 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00001e09 jne LBB6_98 - 0x0f, 0xce, //0x00001e0f bswapl %esi - 0x89, 0xf1, //0x00001e11 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001e13 shrl $4, %ecx - 0xf7, 0xd1, //0x00001e16 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e18 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001e1e leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e21 andl $252645135, %esi - 0x01, 0xce, //0x00001e27 addl %ecx, %esi - 0x89, 0xf1, //0x00001e29 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001e2b shrl $4, %ecx - 0x09, 0xf1, //0x00001e2e orl %esi, %ecx - 0x89, 0xce, //0x00001e30 movl %ecx, %esi - 0xc1, 0xee, 0x08, //0x00001e32 shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00001e35 andl $65280, %esi - 0x0f, 0xb6, 0xd9, //0x00001e3b movzbl %cl, %ebx - 0x09, 0xf3, //0x00001e3e orl %esi, %ebx - 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001e40 andl $16515072, %ecx - 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001e46 cmpl $14417920, %ecx - 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00001e4c je LBB6_76 - 0xf6, 0x45, 0xb8, 0x02, //0x00001e52 testb $2, $-72(%rbp) - 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x00001e56 je LBB6_113 - 0x49, 0x83, 0xc6, 0xfa, //0x00001e5c addq $-6, %r14 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001e60 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001e65 movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00001e69 addq $3, %rax - 0x49, 0x83, 0xc4, 0x06, //0x00001e6d addq $6, %r12 - 0x41, 0x89, 0xdf, //0x00001e71 movl %ebx, %r15d - 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e74 cmpl $128, %ebx - 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x00001e7a jae LBB6_40 - //0x00001e80 LBB6_53 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e80 leaq $4(%r9,%r12), %r9 - 0x41, 0x89, 0xdf, //0x00001e85 movl %ebx, %r15d - 0xe9, 0x96, 0x00, 0x00, 0x00, //0x00001e88 jmp LBB6_67 - 0x90, 0x90, 0x90, //0x00001e8d .p2align 4, 0x90 - //0x00001e90 LBB6_54 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001e90 leaq $4(%r9,%r12), %r9 - 0x44, 0x89, 0xf9, //0x00001e95 movl %r15d, %ecx - 0xc1, 0xe9, 0x0c, //0x00001e98 shrl $12, %ecx - 0x80, 0xc9, 0xe0, //0x00001e9b orb $-32, %cl - 0x88, 0x08, //0x00001e9e movb %cl, (%rax) - 0x44, 0x89, 0xf9, //0x00001ea0 movl %r15d, %ecx - 0xc1, 0xe9, 0x06, //0x00001ea3 shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x00001ea6 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00001ea9 orb $-128, %cl - 0x88, 0x48, 0x01, //0x00001eac movb %cl, $1(%rax) - 0x41, 0x80, 0xe7, 0x3f, //0x00001eaf andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00001eb3 orb $-128, %r15b - 0x44, 0x88, 0x78, 0x02, //0x00001eb7 movb %r15b, $2(%rax) - //0x00001ebb LBB6_55 - 0x48, 0x83, 0xc0, 0x03, //0x00001ebb addq $3, %rax - //0x00001ebf LBB6_56 - 0x4d, 0x89, 0xf5, //0x00001ebf movq %r14, %r13 - //0x00001ec2 LBB6_57 - 0x4d, 0x85, 0xed, //0x00001ec2 testq %r13, %r13 - 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00001ec5 jne LBB6_2 - 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001ecb jmp LBB6_96 - //0x00001ed0 LBB6_58 - 0x45, 0x85, 0xed, //0x00001ed0 testl %r13d, %r13d - 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00001ed3 je LBB6_94 - 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00001ed9 cmpb $92, $-1(%r9) - 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x00001ede jne LBB6_97 - 0x41, 0x80, 0x39, 0x5c, //0x00001ee4 cmpb $92, (%r9) - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00001ee8 jne LBB6_65 - 0x41, 0x83, 0xfd, 0x01, //0x00001eee cmpl $1, %r13d - 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00001ef2 jle LBB6_94 - 0x41, 0x8a, 0x49, 0x01, //0x00001ef8 movb $1(%r9), %cl - 0x80, 0xf9, 0x22, //0x00001efc cmpb $34, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00001eff je LBB6_64 - 0x80, 0xf9, 0x5c, //0x00001f05 cmpb $92, %cl - 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00001f08 jne LBB6_109 - //0x00001f0e LBB6_64 - 0x49, 0xff, 0xc1, //0x00001f0e incq %r9 - 0x49, 0xff, 0xcd, //0x00001f11 decq %r13 - //0x00001f14 LBB6_65 - 0x49, 0xff, 0xc1, //0x00001f14 incq %r9 - 0x49, 0xff, 0xcd, //0x00001f17 decq %r13 - 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x00001f1a jmp LBB6_15 - //0x00001f1f LBB6_66 - 0x49, 0x83, 0xc1, 0x04, //0x00001f1f addq $4, %r9 - //0x00001f23 LBB6_67 - 0x44, 0x88, 0x38, //0x00001f23 movb %r15b, (%rax) - 0x48, 0xff, 0xc0, //0x00001f26 incq %rax - 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00001f29 jmp LBB6_56 - //0x00001f2e LBB6_68 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f2e leaq $4(%r9,%r12), %r9 - 0x44, 0x89, 0xf9, //0x00001f33 movl %r15d, %ecx - 0xc1, 0xe9, 0x06, //0x00001f36 shrl $6, %ecx - 0x80, 0xc9, 0xc0, //0x00001f39 orb $-64, %cl - 0x88, 0x08, //0x00001f3c movb %cl, (%rax) - 0x41, 0x80, 0xe7, 0x3f, //0x00001f3e andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00001f42 orb $-128, %r15b - 0x44, 0x88, 0x78, 0x01, //0x00001f46 movb %r15b, $1(%rax) - 0x48, 0x83, 0xc0, 0x02, //0x00001f4a addq $2, %rax - 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x00001f4e jmp LBB6_56 - //0x00001f53 LBB6_69 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f53 leaq $4(%r9,%r12), %r9 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001f58 jmp LBB6_71 - //0x00001f5d LBB6_70 - 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x00001f5d leaq $5(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00001f62 subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xfb, //0x00001f65 addq $-5, %r13 - 0x4d, 0x89, 0xee, //0x00001f69 movq %r13, %r14 - //0x00001f6c LBB6_71 - 0xf6, 0x45, 0xb8, 0x02, //0x00001f6c testb $2, $-72(%rbp) - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00001f70 jne LBB6_75 - 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x00001f76 jmp LBB6_116 - //0x00001f7b LBB6_72 - 0xf6, 0x45, 0xb8, 0x02, //0x00001f7b testb $2, $-72(%rbp) - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00001f7f jne LBB6_74 - 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x00001f85 jmp LBB6_94 - //0x00001f8a LBB6_73 - 0xf6, 0x45, 0xb8, 0x02, //0x00001f8a testb $2, $-72(%rbp) - 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x00001f8e je LBB6_117 - //0x00001f94 LBB6_74 - 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x00001f94 leaq $4(%r9,%r12), %r9 - //0x00001f99 LBB6_75 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001f99 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001f9e movb $-67, $2(%rax) - 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00001fa2 jmp LBB6_55 - //0x00001fa7 LBB6_76 - 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00001fa7 leaq $10(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00001fac subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xf6, //0x00001faf addq $-10, %r13 - 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00001fb3 jmp LBB6_78 - //0x00001fb8 LBB6_77 - 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00001fb8 leaq $11(%r9,%r12), %r9 - 0x4d, 0x29, 0xe5, //0x00001fbd subq %r12, %r13 - 0x49, 0x83, 0xc5, 0xf5, //0x00001fc0 addq $-11, %r13 - //0x00001fc4 LBB6_78 - 0x41, 0xc1, 0xe7, 0x0a, //0x00001fc4 shll $10, %r15d - 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00001fc8 leal $-56613888(%r15,%rbx), %ecx - 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00001fd0 cmpl $1114112, %ecx - 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00001fd6 jb LBB6_81 - 0xf6, 0x45, 0xb8, 0x02, //0x00001fdc testb $2, $-72(%rbp) - 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00001fe0 je LBB6_111 - 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00001fe6 movw $-16401, (%rax) - 0xc6, 0x40, 0x02, 0xbd, //0x00001feb movb $-67, $2(%rax) - 0x48, 0x83, 0xc0, 0x03, //0x00001fef addq $3, %rax - 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00001ff3 jmp LBB6_57 - //0x00001ff8 LBB6_81 - 0x89, 0xce, //0x00001ff8 movl %ecx, %esi - 0xc1, 0xee, 0x12, //0x00001ffa shrl $18, %esi - 0x40, 0x80, 0xce, 0xf0, //0x00001ffd orb $-16, %sil - 0x40, 0x88, 0x30, //0x00002001 movb %sil, (%rax) - 0x89, 0xce, //0x00002004 movl %ecx, %esi - 0xc1, 0xee, 0x0c, //0x00002006 shrl $12, %esi - 0x40, 0x80, 0xe6, 0x3f, //0x00002009 andb $63, %sil - 0x40, 0x80, 0xce, 0x80, //0x0000200d orb $-128, %sil - 0x40, 0x88, 0x70, 0x01, //0x00002011 movb %sil, $1(%rax) - 0x89, 0xce, //0x00002015 movl %ecx, %esi - 0xc1, 0xee, 0x06, //0x00002017 shrl $6, %esi - 0x40, 0x80, 0xe6, 0x3f, //0x0000201a andb $63, %sil - 0x40, 0x80, 0xce, 0x80, //0x0000201e orb $-128, %sil - 0x40, 0x88, 0x70, 0x02, //0x00002022 movb %sil, $2(%rax) - 0x80, 0xe1, 0x3f, //0x00002026 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00002029 orb $-128, %cl - 0x88, 0x48, 0x03, //0x0000202c movb %cl, $3(%rax) - 0x48, 0x83, 0xc0, 0x04, //0x0000202f addq $4, %rax - 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00002033 jmp LBB6_57 - //0x00002038 LBB6_82 - 0x45, 0x31, 0xed, //0x00002038 xorl %r13d, %r13d - 0x48, 0x89, 0xd0, //0x0000203b movq %rdx, %rax - //0x0000203e LBB6_83 - 0x4c, 0x01, 0xe8, //0x0000203e addq %r13, %rax - 0x48, 0x29, 0xd0, //0x00002041 subq %rdx, %rax - //0x00002044 LBB6_84 - 0x48, 0x83, 0xc4, 0x28, //0x00002044 addq $40, %rsp - 0x5b, //0x00002048 popq %rbx - 0x41, 0x5c, //0x00002049 popq %r12 - 0x41, 0x5d, //0x0000204b popq %r13 - 0x41, 0x5e, //0x0000204d popq %r14 - 0x41, 0x5f, //0x0000204f popq %r15 - 0x5d, //0x00002051 popq %rbp - 0xc3, //0x00002052 retq - //0x00002053 LBB6_85 - 0x4c, 0x89, 0xca, //0x00002053 movq %r9, %rdx - 0x48, 0x29, 0xfa, //0x00002056 subq %rdi, %rdx - 0x48, 0x8b, 0x7d, 0xc8, //0x00002059 movq $-56(%rbp), %rdi - 0x48, 0x89, 0x17, //0x0000205d movq %rdx, (%rdi) - 0x41, 0x8a, 0x09, //0x00002060 movb (%r9), %cl - 0x8d, 0x71, 0xd0, //0x00002063 leal $-48(%rcx), %esi - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002066 movq $-2, %rax - 0x40, 0x80, 0xfe, 0x0a, //0x0000206d cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002071 jb LBB6_87 - 0x80, 0xe1, 0xdf, //0x00002077 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x0000207a addb $-65, %cl - 0x80, 0xf9, 0x05, //0x0000207d cmpb $5, %cl - 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x00002080 ja LBB6_84 - //0x00002086 LBB6_87 - 0x48, 0x8d, 0x4a, 0x01, //0x00002086 leaq $1(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x0000208a movq %rcx, (%rdi) - 0x41, 0x8a, 0x49, 0x01, //0x0000208d movb $1(%r9), %cl - 0x8d, 0x71, 0xd0, //0x00002091 leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x00002094 cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002098 jb LBB6_89 - 0x80, 0xe1, 0xdf, //0x0000209e andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000020a1 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000020a4 cmpb $5, %cl - 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x000020a7 ja LBB6_84 - //0x000020ad LBB6_89 - 0x48, 0x8d, 0x4a, 0x02, //0x000020ad leaq $2(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x000020b1 movq %rcx, (%rdi) - 0x41, 0x8a, 0x49, 0x02, //0x000020b4 movb $2(%r9), %cl - 0x8d, 0x71, 0xd0, //0x000020b8 leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x000020bb cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020bf jb LBB6_91 - 0x80, 0xe1, 0xdf, //0x000020c5 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000020c8 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000020cb cmpb $5, %cl - 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x000020ce ja LBB6_84 - //0x000020d4 LBB6_91 - 0x48, 0x8d, 0x4a, 0x03, //0x000020d4 leaq $3(%rdx), %rcx - 0x48, 0x89, 0x0f, //0x000020d8 movq %rcx, (%rdi) - 0x41, 0x8a, 0x49, 0x03, //0x000020db movb $3(%r9), %cl - 0x8d, 0x71, 0xd0, //0x000020df leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x000020e2 cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000020e6 jb LBB6_93 - 0x80, 0xe1, 0xdf, //0x000020ec andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000020ef addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000020f2 cmpb $5, %cl - 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x000020f5 ja LBB6_84 - //0x000020fb LBB6_93 - 0x48, 0x83, 0xc2, 0x04, //0x000020fb addq $4, %rdx - 0x48, 0x89, 0x17, //0x000020ff movq %rdx, (%rdi) - 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002102 jmp LBB6_84 - //0x00002107 LBB6_94 - 0x48, 0x8b, 0x45, 0xc8, //0x00002107 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x18, //0x0000210b movq %r11, (%rax) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000210e movq $-1, %rax - 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00002115 jmp LBB6_84 - //0x0000211a LBB6_95 - 0x48, 0xf7, 0xd7, //0x0000211a notq %rdi - 0x49, 0x01, 0xf9, //0x0000211d addq %rdi, %r9 - 0x48, 0x8b, 0x45, 0xc8, //0x00002120 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x08, //0x00002124 movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00002127 movq $-3, %rax - 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000212e jmp LBB6_84 - //0x00002133 LBB6_96 - 0x45, 0x31, 0xed, //0x00002133 xorl %r13d, %r13d - 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00002136 jmp LBB6_83 - //0x0000213b LBB6_97 - 0x48, 0xf7, 0xd7, //0x0000213b notq %rdi - 0x49, 0x01, 0xf9, //0x0000213e addq %rdi, %r9 - 0xe9, 0xda, 0x00, 0x00, 0x00, //0x00002141 jmp LBB6_110 - //0x00002146 LBB6_98 - 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x00002146 leaq $4(%r9,%r12), %rsi - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000214b jmp LBB6_100 - //0x00002150 LBB6_99 - 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x00002150 leaq $5(%r9,%r12), %rsi - //0x00002155 LBB6_100 - 0x48, 0x89, 0xf2, //0x00002155 movq %rsi, %rdx - 0x48, 0x29, 0xfa, //0x00002158 subq %rdi, %rdx - 0x48, 0x83, 0xc2, 0x02, //0x0000215b addq $2, %rdx - 0x48, 0x8b, 0x45, 0xc8, //0x0000215f movq $-56(%rbp), %rax - 0x48, 0x89, 0x10, //0x00002163 movq %rdx, (%rax) - 0x8a, 0x4e, 0x02, //0x00002166 movb $2(%rsi), %cl - 0x8d, 0x79, 0xd0, //0x00002169 leal $-48(%rcx), %edi - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000216c movq $-2, %rax - 0x40, 0x80, 0xff, 0x0a, //0x00002173 cmpb $10, %dil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00002177 jb LBB6_102 - 0x80, 0xe1, 0xdf, //0x0000217d andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x00002180 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x00002183 cmpb $5, %cl - 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x00002186 ja LBB6_84 - //0x0000218c LBB6_102 - 0x48, 0x8d, 0x4a, 0x01, //0x0000218c leaq $1(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xc8, //0x00002190 movq $-56(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x00002194 movq %rcx, (%rdi) - 0x8a, 0x4e, 0x03, //0x00002197 movb $3(%rsi), %cl - 0x8d, 0x79, 0xd0, //0x0000219a leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x0000219d cmpb $10, %dil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021a1 jb LBB6_104 - 0x80, 0xe1, 0xdf, //0x000021a7 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000021aa addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000021ad cmpb $5, %cl - 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x000021b0 ja LBB6_84 - //0x000021b6 LBB6_104 - 0x48, 0x8d, 0x4a, 0x02, //0x000021b6 leaq $2(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xc8, //0x000021ba movq $-56(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x000021be movq %rcx, (%rdi) - 0x8a, 0x4e, 0x04, //0x000021c1 movb $4(%rsi), %cl - 0x8d, 0x79, 0xd0, //0x000021c4 leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x000021c7 cmpb $10, %dil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021cb jb LBB6_106 - 0x80, 0xe1, 0xdf, //0x000021d1 andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000021d4 addb $-65, %cl - 0x80, 0xf9, 0x05, //0x000021d7 cmpb $5, %cl - 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x000021da ja LBB6_84 - //0x000021e0 LBB6_106 - 0x48, 0x8d, 0x4a, 0x03, //0x000021e0 leaq $3(%rdx), %rcx - 0x48, 0x8b, 0x7d, 0xc8, //0x000021e4 movq $-56(%rbp), %rdi - 0x48, 0x89, 0x0f, //0x000021e8 movq %rcx, (%rdi) - 0x8a, 0x4e, 0x05, //0x000021eb movb $5(%rsi), %cl - 0x8d, 0x71, 0xd0, //0x000021ee leal $-48(%rcx), %esi - 0x40, 0x80, 0xfe, 0x0a, //0x000021f1 cmpb $10, %sil - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000021f5 jb LBB6_108 - 0x80, 0xe1, 0xdf, //0x000021fb andb $-33, %cl - 0x80, 0xc1, 0xbf, //0x000021fe addb $-65, %cl - 0x80, 0xf9, 0x05, //0x00002201 cmpb $5, %cl - 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00002204 ja LBB6_84 - //0x0000220a LBB6_108 - 0x48, 0x83, 0xc2, 0x04, //0x0000220a addq $4, %rdx - 0x48, 0x8b, 0x4d, 0xc8, //0x0000220e movq $-56(%rbp), %rcx - 0x48, 0x89, 0x11, //0x00002212 movq %rdx, (%rcx) - 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00002215 jmp LBB6_84 - //0x0000221a LBB6_109 - 0x49, 0x29, 0xf9, //0x0000221a subq %rdi, %r9 - 0x49, 0xff, 0xc1, //0x0000221d incq %r9 - //0x00002220 LBB6_110 - 0x48, 0x8b, 0x45, 0xc8, //0x00002220 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x08, //0x00002224 movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002227 movq $-2, %rax - 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000222e jmp LBB6_84 - //0x00002233 LBB6_111 - 0x49, 0x29, 0xf9, //0x00002233 subq %rdi, %r9 - 0x49, 0x83, 0xc1, 0xfc, //0x00002236 addq $-4, %r9 - //0x0000223a LBB6_112 - 0x48, 0x8b, 0x45, 0xc8, //0x0000223a movq $-56(%rbp), %rax - 0x4c, 0x89, 0x08, //0x0000223e movq %r9, (%rax) - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x00002241 movq $-4, %rax - 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x00002248 jmp LBB6_84 - //0x0000224d LBB6_113 - 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x0000224d leaq $10(%r9,%r12), %rax - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002252 jmp LBB6_115 - //0x00002257 LBB6_114 - 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x00002257 leaq $11(%r9,%r12), %rax - //0x0000225c LBB6_115 - 0x48, 0x29, 0xf8, //0x0000225c subq %rdi, %rax - 0x48, 0x83, 0xc0, 0xfc, //0x0000225f addq $-4, %rax - 0x48, 0x8b, 0x4d, 0xc8, //0x00002263 movq $-56(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00002267 movq %rax, (%rcx) - 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x0000226a movq $-4, %rax - 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x00002271 jmp LBB6_84 - //0x00002276 LBB6_116 - 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x00002276 leaq $4(%r10,%rdi), %rax - 0x49, 0x29, 0xc1, //0x0000227b subq %rax, %r9 - 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x0000227e jmp LBB6_112 - //0x00002283 LBB6_117 - 0x4d, 0x01, 0xe1, //0x00002283 addq %r12, %r9 - 0x49, 0x29, 0xf9, //0x00002286 subq %rdi, %r9 - 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002289 jmp LBB6_112 - 0x00, 0x00, //0x0000228e .p2align 4, 0x00 - //0x00002290 LCPI7_0 - 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002290 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' - //0x000022a0 LCPI7_1 - 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x000022a0 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' - //0x000022b0 LCPI7_2 - 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, //0x000022b0 QUAD $0x0202020202020202; QUAD $0x0202020202020202 // .space 16, '\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02' - //0x000022c0 LCPI7_3 - 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, //0x000022c0 QUAD $0x3e3e3e3e3e3e3e3e; QUAD $0x3e3e3e3e3e3e3e3e // .space 16, '>>>>>>>>>>>>>>>>' - //0x000022d0 .p2align 4, 0x90 - //0x000022d0 _html_escape - 0x55, //0x000022d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000022d1 movq %rsp, %rbp - 0x41, 0x57, //0x000022d4 pushq %r15 - 0x41, 0x56, //0x000022d6 pushq %r14 - 0x41, 0x55, //0x000022d8 pushq %r13 - 0x41, 0x54, //0x000022da pushq %r12 - 0x53, //0x000022dc pushq %rbx - 0x48, 0x83, 0xec, 0x18, //0x000022dd subq $24, %rsp - 0x48, 0x89, 0x4d, 0xc0, //0x000022e1 movq %rcx, $-64(%rbp) - 0x49, 0x89, 0xd2, //0x000022e5 movq %rdx, %r10 - 0x48, 0x89, 0x55, 0xc8, //0x000022e8 movq %rdx, $-56(%rbp) - 0x48, 0x89, 0x7d, 0xd0, //0x000022ec movq %rdi, $-48(%rbp) - 0x48, 0x89, 0xf8, //0x000022f0 movq %rdi, %rax - 0x48, 0x85, 0xf6, //0x000022f3 testq %rsi, %rsi - 0x0f, 0x8e, 0x93, 0x04, 0x00, 0x00, //0x000022f6 jle LBB7_59 - 0x48, 0x8b, 0x45, 0xc0, //0x000022fc movq $-64(%rbp), %rax - 0x4c, 0x8b, 0x08, //0x00002300 movq (%rax), %r9 - 0x66, 0x0f, 0x6f, 0x05, 0x85, 0xff, 0xff, 0xff, //0x00002303 movdqa $-123(%rip), %xmm0 /* LCPI7_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x8d, 0xff, 0xff, 0xff, //0x0000230b movdqa $-115(%rip), %xmm1 /* LCPI7_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x95, 0xff, 0xff, 0xff, //0x00002313 movdqa $-107(%rip), %xmm2 /* LCPI7_2+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x1d, 0x9d, 0xff, 0xff, 0xff, //0x0000231b movdqa $-99(%rip), %xmm3 /* LCPI7_3+0(%rip) */ - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x00002323 movabsq $5764607797912141824, %r14 - 0x4c, 0x8d, 0x1d, 0x2c, 0xe8, 0x00, 0x00, //0x0000232d leaq $59436(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ - 0x4c, 0x8b, 0x7d, 0xd0, //0x00002334 movq $-48(%rbp), %r15 - 0x4c, 0x8b, 0x55, 0xc8, //0x00002338 movq $-56(%rbp), %r10 - 0x90, 0x90, 0x90, 0x90, //0x0000233c .p2align 4, 0x90 - //0x00002340 LBB7_2 - 0x4d, 0x85, 0xc9, //0x00002340 testq %r9, %r9 - 0x0f, 0x8e, 0x65, 0x04, 0x00, 0x00, //0x00002343 jle LBB7_61 - 0x48, 0x83, 0xfe, 0x0f, //0x00002349 cmpq $15, %rsi - 0x0f, 0x9f, 0xc3, //0x0000234d setg %bl - 0x4d, 0x89, 0xcd, //0x00002350 movq %r9, %r13 - 0x4d, 0x89, 0xd0, //0x00002353 movq %r10, %r8 - 0x48, 0x89, 0xf0, //0x00002356 movq %rsi, %rax - 0x4d, 0x89, 0xfc, //0x00002359 movq %r15, %r12 - 0x49, 0x83, 0xf9, 0x10, //0x0000235c cmpq $16, %r9 - 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x00002360 jl LBB7_9 - 0x48, 0x83, 0xfe, 0x10, //0x00002366 cmpq $16, %rsi - 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x0000236a jl LBB7_9 - 0x4d, 0x89, 0xfc, //0x00002370 movq %r15, %r12 - 0x48, 0x89, 0xf0, //0x00002373 movq %rsi, %rax - 0x4d, 0x89, 0xd0, //0x00002376 movq %r10, %r8 - 0x4c, 0x89, 0xc9, //0x00002379 movq %r9, %rcx - 0x90, 0x90, 0x90, 0x90, //0x0000237c .p2align 4, 0x90 - //0x00002380 LBB7_6 - 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x00002380 movdqu (%r12), %xmm4 - 0x66, 0x0f, 0x6f, 0xec, //0x00002386 movdqa %xmm4, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x0000238a movdqa %xmm4, %xmm6 - 0xf3, 0x41, 0x0f, 0x7f, 0x20, //0x0000238e movdqu %xmm4, (%r8) - 0x66, 0x0f, 0x74, 0xe0, //0x00002393 pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0x74, 0xe9, //0x00002397 pcmpeqb %xmm1, %xmm5 - 0x66, 0x0f, 0xeb, 0xec, //0x0000239b por %xmm4, %xmm5 - 0x66, 0x0f, 0xeb, 0xf2, //0x0000239f por %xmm2, %xmm6 - 0x66, 0x0f, 0x74, 0xf3, //0x000023a3 pcmpeqb %xmm3, %xmm6 - 0x66, 0x0f, 0xeb, 0xf5, //0x000023a7 por %xmm5, %xmm6 - 0x66, 0x0f, 0xd7, 0xd6, //0x000023ab pmovmskb %xmm6, %edx - 0x66, 0x85, 0xd2, //0x000023af testw %dx, %dx - 0x0f, 0x85, 0x48, 0x01, 0x00, 0x00, //0x000023b2 jne LBB7_21 - 0x49, 0x83, 0xc4, 0x10, //0x000023b8 addq $16, %r12 - 0x49, 0x83, 0xc0, 0x10, //0x000023bc addq $16, %r8 - 0x4c, 0x8d, 0x69, 0xf0, //0x000023c0 leaq $-16(%rcx), %r13 - 0x48, 0x83, 0xf8, 0x1f, //0x000023c4 cmpq $31, %rax - 0x0f, 0x9f, 0xc3, //0x000023c8 setg %bl - 0x48, 0x83, 0xf8, 0x20, //0x000023cb cmpq $32, %rax - 0x48, 0x8d, 0x40, 0xf0, //0x000023cf leaq $-16(%rax), %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000023d3 jl LBB7_9 - 0x48, 0x83, 0xf9, 0x1f, //0x000023d9 cmpq $31, %rcx - 0x4c, 0x89, 0xe9, //0x000023dd movq %r13, %rcx - 0x0f, 0x8f, 0x9a, 0xff, 0xff, 0xff, //0x000023e0 jg LBB7_6 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000023e6 .p2align 4, 0x90 - //0x000023f0 LBB7_9 - 0x84, 0xdb, //0x000023f0 testb %bl, %bl - 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x000023f2 je LBB7_13 - 0x4c, 0x89, 0xf2, //0x000023f8 movq %r14, %rdx - 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x000023fb movdqu (%r12), %xmm4 - 0x66, 0x0f, 0x6f, 0xec, //0x00002401 movdqa %xmm4, %xmm5 - 0x66, 0x0f, 0x74, 0xe8, //0x00002405 pcmpeqb %xmm0, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x00002409 movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf1, //0x0000240d pcmpeqb %xmm1, %xmm6 - 0x66, 0x0f, 0xeb, 0xf5, //0x00002411 por %xmm5, %xmm6 - 0x66, 0x48, 0x0f, 0x7e, 0xe0, //0x00002415 movq %xmm4, %rax - 0x66, 0x0f, 0xeb, 0xe2, //0x0000241a por %xmm2, %xmm4 - 0x66, 0x0f, 0x74, 0xe3, //0x0000241e pcmpeqb %xmm3, %xmm4 - 0x66, 0x0f, 0xeb, 0xe6, //0x00002422 por %xmm6, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x00002426 pmovmskb %xmm4, %ecx - 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000242a orl $65536, %ecx - 0x44, 0x0f, 0xbc, 0xf1, //0x00002430 bsfl %ecx, %r14d - 0x4d, 0x39, 0xf5, //0x00002434 cmpq %r14, %r13 - 0x0f, 0x8d, 0xde, 0x00, 0x00, 0x00, //0x00002437 jge LBB7_22 - 0x49, 0x83, 0xfd, 0x08, //0x0000243d cmpq $8, %r13 - 0x0f, 0x82, 0x11, 0x01, 0x00, 0x00, //0x00002441 jb LBB7_25 - 0x49, 0x89, 0x00, //0x00002447 movq %rax, (%r8) - 0x4d, 0x8d, 0x74, 0x24, 0x08, //0x0000244a leaq $8(%r12), %r14 - 0x49, 0x83, 0xc0, 0x08, //0x0000244f addq $8, %r8 - 0x49, 0x8d, 0x45, 0xf8, //0x00002453 leaq $-8(%r13), %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002457 cmpq $4, %rax - 0x0f, 0x8d, 0x07, 0x01, 0x00, 0x00, //0x0000245b jge LBB7_26 - 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00002461 jmp LBB7_27 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002466 .p2align 4, 0x90 - //0x00002470 LBB7_13 - 0x4d, 0x85, 0xed, //0x00002470 testq %r13, %r13 - 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00002473 jle LBB7_20 - 0x48, 0x85, 0xc0, //0x00002479 testq %rax, %rax - 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000247c jle LBB7_20 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002482 .p2align 4, 0x90 - //0x00002490 LBB7_15 - 0x41, 0x0f, 0xb6, 0x0c, 0x24, //0x00002490 movzbl (%r12), %ecx - 0x48, 0x83, 0xf9, 0x3e, //0x00002495 cmpq $62, %rcx - 0x0f, 0x87, 0x0a, 0x00, 0x00, 0x00, //0x00002499 ja LBB7_17 - 0x49, 0x0f, 0xa3, 0xce, //0x0000249f btq %rcx, %r14 - 0x0f, 0x82, 0x9b, 0x00, 0x00, 0x00, //0x000024a3 jb LBB7_24 - //0x000024a9 LBB7_17 - 0x80, 0xf9, 0xe2, //0x000024a9 cmpb $-30, %cl - 0x0f, 0x84, 0x92, 0x00, 0x00, 0x00, //0x000024ac je LBB7_24 - 0x49, 0xff, 0xc4, //0x000024b2 incq %r12 - 0x41, 0x88, 0x08, //0x000024b5 movb %cl, (%r8) - 0x48, 0x83, 0xf8, 0x02, //0x000024b8 cmpq $2, %rax - 0x48, 0x8d, 0x40, 0xff, //0x000024bc leaq $-1(%rax), %rax - 0x0f, 0x8c, 0x1a, 0x00, 0x00, 0x00, //0x000024c0 jl LBB7_20 - 0x49, 0xff, 0xc0, //0x000024c6 incq %r8 - 0x49, 0x83, 0xfd, 0x01, //0x000024c9 cmpq $1, %r13 - 0x4d, 0x8d, 0x6d, 0xff, //0x000024cd leaq $-1(%r13), %r13 - 0x0f, 0x8f, 0xb9, 0xff, 0xff, 0xff, //0x000024d1 jg LBB7_15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024d7 .p2align 4, 0x90 - //0x000024e0 LBB7_20 - 0x4d, 0x29, 0xfc, //0x000024e0 subq %r15, %r12 - 0x48, 0xf7, 0xd8, //0x000024e3 negq %rax - 0x4d, 0x19, 0xed, //0x000024e6 sbbq %r13, %r13 - 0x4d, 0x31, 0xe5, //0x000024e9 xorq %r12, %r13 - 0x4d, 0x85, 0xed, //0x000024ec testq %r13, %r13 - 0x0f, 0x89, 0x5b, 0x01, 0x00, 0x00, //0x000024ef jns LBB7_37 - 0xe9, 0x72, 0x02, 0x00, 0x00, //0x000024f5 jmp LBB7_57 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024fa .p2align 4, 0x90 - //0x00002500 LBB7_21 - 0x0f, 0xb7, 0xc2, //0x00002500 movzwl %dx, %eax - 0x4d, 0x29, 0xfc, //0x00002503 subq %r15, %r12 - 0x44, 0x0f, 0xbc, 0xe8, //0x00002506 bsfl %eax, %r13d - 0x4d, 0x01, 0xe5, //0x0000250a addq %r12, %r13 - 0x4d, 0x85, 0xed, //0x0000250d testq %r13, %r13 - 0x0f, 0x89, 0x3a, 0x01, 0x00, 0x00, //0x00002510 jns LBB7_37 - 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00002516 jmp LBB7_57 - //0x0000251b LBB7_22 - 0x41, 0x83, 0xfe, 0x08, //0x0000251b cmpl $8, %r14d - 0x0f, 0x82, 0xaa, 0x00, 0x00, 0x00, //0x0000251f jb LBB7_31 - 0x49, 0x89, 0x00, //0x00002525 movq %rax, (%r8) - 0x4d, 0x8d, 0x6c, 0x24, 0x08, //0x00002528 leaq $8(%r12), %r13 - 0x49, 0x83, 0xc0, 0x08, //0x0000252d addq $8, %r8 - 0x49, 0x8d, 0x46, 0xf8, //0x00002531 leaq $-8(%r14), %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002535 cmpq $4, %rax - 0x0f, 0x8d, 0xa0, 0x00, 0x00, 0x00, //0x00002539 jge LBB7_32 - 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000253f jmp LBB7_33 - //0x00002544 LBB7_24 - 0x4d, 0x29, 0xfc, //0x00002544 subq %r15, %r12 - 0x4d, 0x89, 0xe5, //0x00002547 movq %r12, %r13 - 0x4d, 0x85, 0xed, //0x0000254a testq %r13, %r13 - 0x0f, 0x89, 0xfd, 0x00, 0x00, 0x00, //0x0000254d jns LBB7_37 - 0xe9, 0x14, 0x02, 0x00, 0x00, //0x00002553 jmp LBB7_57 - //0x00002558 LBB7_25 - 0x4d, 0x89, 0xe6, //0x00002558 movq %r12, %r14 - 0x4c, 0x89, 0xe8, //0x0000255b movq %r13, %rax - 0x48, 0x83, 0xf8, 0x04, //0x0000255e cmpq $4, %rax - 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00002562 jl LBB7_27 - //0x00002568 LBB7_26 - 0x41, 0x8b, 0x0e, //0x00002568 movl (%r14), %ecx - 0x41, 0x89, 0x08, //0x0000256b movl %ecx, (%r8) - 0x49, 0x83, 0xc6, 0x04, //0x0000256e addq $4, %r14 - 0x49, 0x83, 0xc0, 0x04, //0x00002572 addq $4, %r8 - 0x48, 0x83, 0xc0, 0xfc, //0x00002576 addq $-4, %rax - //0x0000257a LBB7_27 - 0x48, 0x83, 0xf8, 0x02, //0x0000257a cmpq $2, %rax - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x0000257e jb LBB7_28 - 0x41, 0x0f, 0xb7, 0x0e, //0x00002584 movzwl (%r14), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002588 movw %cx, (%r8) - 0x49, 0x83, 0xc6, 0x02, //0x0000258c addq $2, %r14 - 0x49, 0x83, 0xc0, 0x02, //0x00002590 addq $2, %r8 - 0x48, 0x83, 0xc0, 0xfe, //0x00002594 addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00002598 testq %rax, %rax - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000259b jne LBB7_29 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000025a1 jmp LBB7_30 - //0x000025a6 LBB7_28 - 0x48, 0x85, 0xc0, //0x000025a6 testq %rax, %rax - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000025a9 je LBB7_30 - //0x000025af LBB7_29 - 0x41, 0x8a, 0x06, //0x000025af movb (%r14), %al - 0x41, 0x88, 0x00, //0x000025b2 movb %al, (%r8) - //0x000025b5 LBB7_30 - 0x4d, 0x29, 0xfd, //0x000025b5 subq %r15, %r13 - 0x4d, 0x01, 0xe5, //0x000025b8 addq %r12, %r13 - 0x49, 0xf7, 0xd5, //0x000025bb notq %r13 - 0x49, 0x89, 0xd6, //0x000025be movq %rdx, %r14 - 0x4d, 0x85, 0xed, //0x000025c1 testq %r13, %r13 - 0x0f, 0x89, 0x86, 0x00, 0x00, 0x00, //0x000025c4 jns LBB7_37 - 0xe9, 0x9d, 0x01, 0x00, 0x00, //0x000025ca jmp LBB7_57 - //0x000025cf LBB7_31 - 0x4d, 0x89, 0xe5, //0x000025cf movq %r12, %r13 - 0x4c, 0x89, 0xf0, //0x000025d2 movq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x000025d5 cmpq $4, %rax - 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x000025d9 jl LBB7_33 - //0x000025df LBB7_32 - 0x41, 0x8b, 0x4d, 0x00, //0x000025df movl (%r13), %ecx - 0x41, 0x89, 0x08, //0x000025e3 movl %ecx, (%r8) - 0x49, 0x83, 0xc5, 0x04, //0x000025e6 addq $4, %r13 - 0x49, 0x83, 0xc0, 0x04, //0x000025ea addq $4, %r8 - 0x48, 0x83, 0xc0, 0xfc, //0x000025ee addq $-4, %rax - //0x000025f2 LBB7_33 - 0x48, 0x83, 0xf8, 0x02, //0x000025f2 cmpq $2, %rax - 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000025f6 jb LBB7_34 - 0x41, 0x0f, 0xb7, 0x4d, 0x00, //0x000025fc movzwl (%r13), %ecx - 0x66, 0x41, 0x89, 0x08, //0x00002601 movw %cx, (%r8) - 0x49, 0x83, 0xc5, 0x02, //0x00002605 addq $2, %r13 - 0x49, 0x83, 0xc0, 0x02, //0x00002609 addq $2, %r8 - 0x48, 0x83, 0xc0, 0xfe, //0x0000260d addq $-2, %rax - 0x48, 0x85, 0xc0, //0x00002611 testq %rax, %rax - 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002614 jne LBB7_35 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000261a jmp LBB7_36 - //0x0000261f LBB7_34 - 0x48, 0x85, 0xc0, //0x0000261f testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002622 je LBB7_36 - //0x00002628 LBB7_35 - 0x41, 0x8a, 0x45, 0x00, //0x00002628 movb (%r13), %al - 0x41, 0x88, 0x00, //0x0000262c movb %al, (%r8) - //0x0000262f LBB7_36 - 0x4d, 0x29, 0xfc, //0x0000262f subq %r15, %r12 - 0x4d, 0x01, 0xf4, //0x00002632 addq %r14, %r12 - 0x4d, 0x89, 0xe5, //0x00002635 movq %r12, %r13 - 0x49, 0x89, 0xd6, //0x00002638 movq %rdx, %r14 - 0x4d, 0x85, 0xed, //0x0000263b testq %r13, %r13 - 0x0f, 0x88, 0x28, 0x01, 0x00, 0x00, //0x0000263e js LBB7_57 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002644 .p2align 4, 0x90 - //0x00002650 LBB7_37 - 0x4d, 0x01, 0xef, //0x00002650 addq %r13, %r15 - 0x4d, 0x01, 0xea, //0x00002653 addq %r13, %r10 - 0x4c, 0x29, 0xee, //0x00002656 subq %r13, %rsi - 0x0f, 0x8e, 0x2d, 0x01, 0x00, 0x00, //0x00002659 jle LBB7_58 - 0x4d, 0x29, 0xe9, //0x0000265f subq %r13, %r9 - 0x41, 0x8a, 0x0f, //0x00002662 movb (%r15), %cl - 0x80, 0xf9, 0xe2, //0x00002665 cmpb $-30, %cl - 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x00002668 je LBB7_51 - 0x4c, 0x89, 0xf8, //0x0000266e movq %r15, %rax - //0x00002671 LBB7_40 - 0x0f, 0xb6, 0xd1, //0x00002671 movzbl %cl, %edx - 0x48, 0xc1, 0xe2, 0x04, //0x00002674 shlq $4, %rdx - 0x4a, 0x8b, 0x3c, 0x1a, //0x00002678 movq (%rdx,%r11), %rdi - 0x48, 0x63, 0xdf, //0x0000267c movslq %edi, %rbx - 0x49, 0x29, 0xd9, //0x0000267f subq %rbx, %r9 - 0x0f, 0x8c, 0x1b, 0x01, 0x00, 0x00, //0x00002682 jl LBB7_60 - 0x48, 0xc1, 0xe7, 0x20, //0x00002688 shlq $32, %rdi - 0x4e, 0x8d, 0x7c, 0x1a, 0x08, //0x0000268c leaq $8(%rdx,%r11), %r15 - 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002691 movabsq $12884901889, %rcx - 0x48, 0x39, 0xcf, //0x0000269b cmpq %rcx, %rdi - 0x0f, 0x8c, 0x2c, 0x00, 0x00, 0x00, //0x0000269e jl LBB7_43 - 0x41, 0x8b, 0x0f, //0x000026a4 movl (%r15), %ecx - 0x41, 0x89, 0x0a, //0x000026a7 movl %ecx, (%r10) - 0x4e, 0x8d, 0x7c, 0x1a, 0x0c, //0x000026aa leaq $12(%rdx,%r11), %r15 - 0x4d, 0x8d, 0x42, 0x04, //0x000026af leaq $4(%r10), %r8 - 0x48, 0x8d, 0x7b, 0xfc, //0x000026b3 leaq $-4(%rbx), %rdi - 0x48, 0x83, 0xff, 0x02, //0x000026b7 cmpq $2, %rdi - 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000026bb jae LBB7_44 - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000026c1 jmp LBB7_45 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026c6 .p2align 4, 0x90 - //0x000026d0 LBB7_43 - 0x4d, 0x89, 0xd0, //0x000026d0 movq %r10, %r8 - 0x48, 0x89, 0xdf, //0x000026d3 movq %rbx, %rdi - 0x48, 0x83, 0xff, 0x02, //0x000026d6 cmpq $2, %rdi - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000026da jb LBB7_45 - //0x000026e0 LBB7_44 - 0x41, 0x0f, 0xb7, 0x17, //0x000026e0 movzwl (%r15), %edx - 0x66, 0x41, 0x89, 0x10, //0x000026e4 movw %dx, (%r8) - 0x49, 0x83, 0xc7, 0x02, //0x000026e8 addq $2, %r15 - 0x49, 0x83, 0xc0, 0x02, //0x000026ec addq $2, %r8 - 0x48, 0x83, 0xc7, 0xfe, //0x000026f0 addq $-2, %rdi - //0x000026f4 LBB7_45 - 0x48, 0x85, 0xff, //0x000026f4 testq %rdi, %rdi - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000026f7 je LBB7_47 - 0x41, 0x8a, 0x0f, //0x000026fd movb (%r15), %cl - 0x41, 0x88, 0x08, //0x00002700 movb %cl, (%r8) - //0x00002703 LBB7_47 - 0x49, 0x01, 0xda, //0x00002703 addq %rbx, %r10 - //0x00002706 LBB7_48 - 0x48, 0xff, 0xc0, //0x00002706 incq %rax - 0x49, 0x89, 0xc7, //0x00002709 movq %rax, %r15 - 0x48, 0x83, 0xfe, 0x01, //0x0000270c cmpq $1, %rsi - 0x48, 0x8d, 0x76, 0xff, //0x00002710 leaq $-1(%rsi), %rsi - 0x0f, 0x8f, 0x26, 0xfc, 0xff, 0xff, //0x00002714 jg LBB7_2 - 0xe9, 0x70, 0x00, 0x00, 0x00, //0x0000271a jmp LBB7_59 - //0x0000271f LBB7_51 - 0x48, 0x83, 0xfe, 0x03, //0x0000271f cmpq $3, %rsi - 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002723 jl LBB7_55 - 0x41, 0x80, 0x7f, 0x01, 0x80, //0x00002729 cmpb $-128, $1(%r15) - 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x0000272e jne LBB7_55 - 0x41, 0x8a, 0x4f, 0x02, //0x00002734 movb $2(%r15), %cl - 0x89, 0xc8, //0x00002738 movl %ecx, %eax - 0x24, 0xfe, //0x0000273a andb $-2, %al - 0x3c, 0xa8, //0x0000273c cmpb $-88, %al - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000273e jne LBB7_55 - 0x49, 0x8d, 0x47, 0x02, //0x00002744 leaq $2(%r15), %rax - 0x48, 0x83, 0xc6, 0xfe, //0x00002748 addq $-2, %rsi - 0xe9, 0x20, 0xff, 0xff, 0xff, //0x0000274c jmp LBB7_40 - //0x00002751 LBB7_55 - 0x4d, 0x85, 0xc9, //0x00002751 testq %r9, %r9 - 0x0f, 0x8e, 0x54, 0x00, 0x00, 0x00, //0x00002754 jle LBB7_61 - 0x41, 0xc6, 0x02, 0xe2, //0x0000275a movb $-30, (%r10) - 0x49, 0xff, 0xc2, //0x0000275e incq %r10 - 0x49, 0xff, 0xc9, //0x00002761 decq %r9 - 0x4c, 0x89, 0xf8, //0x00002764 movq %r15, %rax - 0xe9, 0x9a, 0xff, 0xff, 0xff, //0x00002767 jmp LBB7_48 - //0x0000276c LBB7_57 - 0x4c, 0x2b, 0x55, 0xc8, //0x0000276c subq $-56(%rbp), %r10 - 0x49, 0xf7, 0xd5, //0x00002770 notq %r13 - 0x4d, 0x01, 0xea, //0x00002773 addq %r13, %r10 - 0x48, 0x8b, 0x45, 0xc0, //0x00002776 movq $-64(%rbp), %rax - 0x4c, 0x89, 0x10, //0x0000277a movq %r10, (%rax) - 0x4c, 0x2b, 0x7d, 0xd0, //0x0000277d subq $-48(%rbp), %r15 - 0x4d, 0x01, 0xef, //0x00002781 addq %r13, %r15 - 0x49, 0xf7, 0xd7, //0x00002784 notq %r15 - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00002787 jmp LBB7_62 - //0x0000278c LBB7_58 - 0x4c, 0x89, 0xf8, //0x0000278c movq %r15, %rax - //0x0000278f LBB7_59 - 0x4c, 0x2b, 0x55, 0xc8, //0x0000278f subq $-56(%rbp), %r10 - 0x48, 0x8b, 0x4d, 0xc0, //0x00002793 movq $-64(%rbp), %rcx - 0x4c, 0x89, 0x11, //0x00002797 movq %r10, (%rcx) - 0x48, 0x2b, 0x45, 0xd0, //0x0000279a subq $-48(%rbp), %rax - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000279e jmp LBB7_63 - //0x000027a3 LBB7_60 - 0x4c, 0x2b, 0x55, 0xc8, //0x000027a3 subq $-56(%rbp), %r10 - 0x48, 0x8b, 0x45, 0xc0, //0x000027a7 movq $-64(%rbp), %rax - 0x4c, 0x89, 0x10, //0x000027ab movq %r10, (%rax) - //0x000027ae LBB7_61 - 0x49, 0xf7, 0xd7, //0x000027ae notq %r15 - 0x4c, 0x03, 0x7d, 0xd0, //0x000027b1 addq $-48(%rbp), %r15 - //0x000027b5 LBB7_62 - 0x4c, 0x89, 0xf8, //0x000027b5 movq %r15, %rax - //0x000027b8 LBB7_63 - 0x48, 0x83, 0xc4, 0x18, //0x000027b8 addq $24, %rsp - 0x5b, //0x000027bc popq %rbx - 0x41, 0x5c, //0x000027bd popq %r12 - 0x41, 0x5d, //0x000027bf popq %r13 - 0x41, 0x5e, //0x000027c1 popq %r14 - 0x41, 0x5f, //0x000027c3 popq %r15 - 0x5d, //0x000027c5 popq %rbp - 0xc3, //0x000027c6 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c7 .p2align 4, 0x90 - //0x000027d0 _atof_eisel_lemire64 - 0x55, //0x000027d0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000027d1 movq %rsp, %rbp - 0x41, 0x57, //0x000027d4 pushq %r15 - 0x41, 0x56, //0x000027d6 pushq %r14 - 0x53, //0x000027d8 pushq %rbx - 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000027d9 leal $348(%rsi), %eax - 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000027df cmpl $695, %eax - 0x0f, 0x87, 0x08, 0x01, 0x00, 0x00, //0x000027e4 ja LBB8_1 - 0x49, 0x89, 0xc8, //0x000027ea movq %rcx, %r8 - 0x41, 0x89, 0xd1, //0x000027ed movl %edx, %r9d - 0x48, 0x85, 0xff, //0x000027f0 testq %rdi, %rdi - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000027f3 je LBB8_4 - 0x4c, 0x0f, 0xbd, 0xd7, //0x000027f9 bsrq %rdi, %r10 - 0x49, 0x83, 0xf2, 0x3f, //0x000027fd xorq $63, %r10 - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002801 jmp LBB8_5 - //0x00002806 LBB8_4 - 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002806 movl $64, %r10d - //0x0000280c LBB8_5 - 0x44, 0x89, 0xd1, //0x0000280c movl %r10d, %ecx - 0x48, 0xd3, 0xe7, //0x0000280f shlq %cl, %rdi - 0x89, 0xc1, //0x00002812 movl %eax, %ecx - 0x48, 0xc1, 0xe1, 0x04, //0x00002814 shlq $4, %rcx - 0x4c, 0x8d, 0x3d, 0x91, 0x6d, 0x00, 0x00, //0x00002818 leaq $28049(%rip), %r15 /* _POW10_M128_TAB+0(%rip) */ - 0x48, 0x89, 0xf8, //0x0000281f movq %rdi, %rax - 0x4a, 0xf7, 0x64, 0x39, 0x08, //0x00002822 mulq $8(%rcx,%r15) - 0x49, 0x89, 0xc3, //0x00002827 movq %rax, %r11 - 0x49, 0x89, 0xd6, //0x0000282a movq %rdx, %r14 - 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000282d andl $511, %edx - 0x48, 0x89, 0xfb, //0x00002833 movq %rdi, %rbx - 0x48, 0xf7, 0xd3, //0x00002836 notq %rbx - 0x48, 0x39, 0xd8, //0x00002839 cmpq %rbx, %rax - 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x0000283c jbe LBB8_11 - 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002842 cmpl $511, %edx - 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00002848 jne LBB8_11 - 0x48, 0x89, 0xf8, //0x0000284e movq %rdi, %rax - 0x4a, 0xf7, 0x24, 0x39, //0x00002851 mulq (%rcx,%r15) - 0x49, 0x01, 0xd3, //0x00002855 addq %rdx, %r11 - 0x49, 0x83, 0xd6, 0x00, //0x00002858 adcq $0, %r14 - 0x44, 0x89, 0xf2, //0x0000285c movl %r14d, %edx - 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000285f andl $511, %edx - 0x48, 0x39, 0xd8, //0x00002865 cmpq %rbx, %rax - 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x00002868 jbe LBB8_11 - 0x49, 0x83, 0xfb, 0xff, //0x0000286e cmpq $-1, %r11 - 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00002872 jne LBB8_11 - 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00002878 cmpl $511, %edx - 0x0f, 0x84, 0x6e, 0x00, 0x00, 0x00, //0x0000287e je LBB8_1 - //0x00002884 LBB8_11 - 0x4c, 0x89, 0xf7, //0x00002884 movq %r14, %rdi - 0x48, 0xc1, 0xef, 0x3f, //0x00002887 shrq $63, %rdi - 0x8d, 0x4f, 0x09, //0x0000288b leal $9(%rdi), %ecx - 0x49, 0xd3, 0xee, //0x0000288e shrq %cl, %r14 - 0x4c, 0x09, 0xda, //0x00002891 orq %r11, %rdx - 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002894 jne LBB8_14 - 0x44, 0x89, 0xf0, //0x0000289a movl %r14d, %eax - 0x83, 0xe0, 0x03, //0x0000289d andl $3, %eax - 0x83, 0xf8, 0x01, //0x000028a0 cmpl $1, %eax - 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x000028a3 je LBB8_1 - //0x000028a9 LBB8_14 - 0x69, 0xc6, 0x6a, 0x52, 0x03, 0x00, //0x000028a9 imull $217706, %esi, %eax - 0xc1, 0xf8, 0x10, //0x000028af sarl $16, %eax - 0x05, 0x3f, 0x04, 0x00, 0x00, //0x000028b2 addl $1087, %eax - 0x48, 0x98, //0x000028b7 cltq - 0x4c, 0x29, 0xd0, //0x000028b9 subq %r10, %rax - 0x48, 0x83, 0xf7, 0x01, //0x000028bc xorq $1, %rdi - 0x48, 0x29, 0xf8, //0x000028c0 subq %rdi, %rax - 0x44, 0x89, 0xf2, //0x000028c3 movl %r14d, %edx - 0x83, 0xe2, 0x01, //0x000028c6 andl $1, %edx - 0x4c, 0x01, 0xf2, //0x000028c9 addq %r14, %rdx - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000028cc movabsq $126100789566373888, %rcx - 0x48, 0x21, 0xd1, //0x000028d6 andq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x01, //0x000028d9 cmpq $1, %rcx - 0x48, 0x83, 0xd8, 0xff, //0x000028dd sbbq $-1, %rax - 0x48, 0x8d, 0x70, 0xff, //0x000028e1 leaq $-1(%rax), %rsi - 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000028e5 cmpq $2045, %rsi - 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x000028ec jbe LBB8_16 - //0x000028f2 LBB8_1 - 0x31, 0xc0, //0x000028f2 xorl %eax, %eax - //0x000028f4 LBB8_17 - 0x5b, //0x000028f4 popq %rbx - 0x41, 0x5e, //0x000028f5 popq %r14 - 0x41, 0x5f, //0x000028f7 popq %r15 - 0x5d, //0x000028f9 popq %rbp - 0xc3, //0x000028fa retq - //0x000028fb LBB8_16 - 0x48, 0x83, 0xf9, 0x01, //0x000028fb cmpq $1, %rcx - 0xb1, 0x02, //0x000028ff movb $2, %cl - 0x80, 0xd9, 0x00, //0x00002901 sbbb $0, %cl - 0x48, 0xd3, 0xea, //0x00002904 shrq %cl, %rdx - 0x48, 0xc1, 0xe0, 0x34, //0x00002907 shlq $52, %rax - 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x0000290b movabsq $4503599627370495, %rcx - 0x48, 0x21, 0xd1, //0x00002915 andq %rdx, %rcx - 0x48, 0x09, 0xc1, //0x00002918 orq %rax, %rcx - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000291b movabsq $-9223372036854775808, %rax - 0x48, 0x09, 0xc8, //0x00002925 orq %rcx, %rax - 0x41, 0x83, 0xf9, 0xff, //0x00002928 cmpl $-1, %r9d - 0x48, 0x0f, 0x45, 0xc1, //0x0000292c cmovneq %rcx, %rax - 0x49, 0x89, 0x00, //0x00002930 movq %rax, (%r8) - 0xb0, 0x01, //0x00002933 movb $1, %al - 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00002935 jmp LBB8_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000293a .p2align 4, 0x90 - //0x00002940 _decimal_to_f64 - 0x55, //0x00002940 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002941 movq %rsp, %rbp - 0x41, 0x57, //0x00002944 pushq %r15 - 0x41, 0x56, //0x00002946 pushq %r14 - 0x41, 0x55, //0x00002948 pushq %r13 - 0x41, 0x54, //0x0000294a pushq %r12 - 0x53, //0x0000294c pushq %rbx - 0x50, //0x0000294d pushq %rax - 0x48, 0x89, 0xf3, //0x0000294e movq %rsi, %rbx - 0x49, 0x89, 0xfc, //0x00002951 movq %rdi, %r12 - 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002954 movabsq $4503599627370496, %r13 - 0x83, 0x7f, 0x10, 0x00, //0x0000295e cmpl $0, $16(%rdi) - 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00002962 je LBB9_4 - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002968 movabsq $9218868437227405312, %r14 - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002972 movl $20(%r12), %eax - 0x45, 0x31, 0xff, //0x00002977 xorl %r15d, %r15d - 0x3d, 0x36, 0x01, 0x00, 0x00, //0x0000297a cmpl $310, %eax - 0x0f, 0x8f, 0x0e, 0x04, 0x00, 0x00, //0x0000297f jg LBB9_78 - 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002985 cmpl $-330, %eax - 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x0000298a jge LBB9_5 - 0x45, 0x31, 0xf6, //0x00002990 xorl %r14d, %r14d - 0xe9, 0xfb, 0x03, 0x00, 0x00, //0x00002993 jmp LBB9_78 - //0x00002998 LBB9_4 - 0x45, 0x31, 0xf6, //0x00002998 xorl %r14d, %r14d - 0x45, 0x31, 0xff, //0x0000299b xorl %r15d, %r15d - 0xe9, 0xf0, 0x03, 0x00, 0x00, //0x0000299e jmp LBB9_78 - //0x000029a3 LBB9_5 - 0x85, 0xc0, //0x000029a3 testl %eax, %eax - 0x48, 0x89, 0x5d, 0xd0, //0x000029a5 movq %rbx, $-48(%rbp) - 0x0f, 0x8e, 0xf1, 0x00, 0x00, 0x00, //0x000029a9 jle LBB9_22 - 0x45, 0x31, 0xff, //0x000029af xorl %r15d, %r15d - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x000029b2 jmp LBB9_9 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029b7 .p2align 4, 0x90 - //0x000029c0 LBB9_7 - 0xf7, 0xdb, //0x000029c0 negl %ebx - 0x4c, 0x89, 0xe7, //0x000029c2 movq %r12, %rdi - 0x89, 0xde, //0x000029c5 movl %ebx, %esi - 0xe8, 0x74, 0x66, 0x00, 0x00, //0x000029c7 callq _right_shift - //0x000029cc LBB9_8 - 0x45, 0x01, 0xf7, //0x000029cc addl %r14d, %r15d - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x000029cf movl $20(%r12), %eax - 0x85, 0xc0, //0x000029d4 testl %eax, %eax - 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x000029d6 jle LBB9_22 - //0x000029dc LBB9_9 - 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x000029dc movl $27, %r14d - 0x83, 0xf8, 0x08, //0x000029e2 cmpl $8, %eax - 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000029e5 jg LBB9_11 - 0x89, 0xc0, //0x000029eb movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x4c, 0x97, 0x00, 0x00, //0x000029ed leaq $38732(%rip), %rcx /* _POW_TAB+0(%rip) */ - 0x44, 0x8b, 0x34, 0x81, //0x000029f4 movl (%rcx,%rax,4), %r14d - //0x000029f8 LBB9_11 - 0x45, 0x85, 0xf6, //0x000029f8 testl %r14d, %r14d - 0x0f, 0x84, 0xcb, 0xff, 0xff, 0xff, //0x000029fb je LBB9_8 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002a01 cmpl $0, $16(%r12) - 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x00002a07 je LBB9_8 - 0x44, 0x89, 0xf3, //0x00002a0d movl %r14d, %ebx - 0xf7, 0xdb, //0x00002a10 negl %ebx - 0x45, 0x85, 0xf6, //0x00002a12 testl %r14d, %r14d - 0x0f, 0x88, 0x35, 0x00, 0x00, 0x00, //0x00002a15 js LBB9_16 - 0x41, 0x83, 0xfe, 0x3d, //0x00002a1b cmpl $61, %r14d - 0x0f, 0x8c, 0x9b, 0xff, 0xff, 0xff, //0x00002a1f jl LBB9_7 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a25 .p2align 4, 0x90 - //0x00002a30 LBB9_15 - 0x4c, 0x89, 0xe7, //0x00002a30 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a33 movl $60, %esi - 0xe8, 0x03, 0x66, 0x00, 0x00, //0x00002a38 callq _right_shift - 0x8d, 0x43, 0x3c, //0x00002a3d leal $60(%rbx), %eax - 0x83, 0xfb, 0x88, //0x00002a40 cmpl $-120, %ebx - 0x89, 0xc3, //0x00002a43 movl %eax, %ebx - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002a45 jl LBB9_15 - 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002a4b jmp LBB9_7 - //0x00002a50 LBB9_16 - 0x41, 0x83, 0xfe, 0xc3, //0x00002a50 cmpl $-61, %r14d - 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00002a54 jg LBB9_18 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002a5a .p2align 4, 0x90 - //0x00002a60 LBB9_17 - 0x4c, 0x89, 0xe7, //0x00002a60 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002a63 movl $60, %esi - 0xe8, 0xe3, 0x63, 0x00, 0x00, //0x00002a68 callq _left_shift - 0x8d, 0x73, 0xc4, //0x00002a6d leal $-60(%rbx), %esi - 0x83, 0xfb, 0x78, //0x00002a70 cmpl $120, %ebx - 0x89, 0xf3, //0x00002a73 movl %esi, %ebx - 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002a75 jg LBB9_17 - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002a7b jmp LBB9_19 - //0x00002a80 LBB9_18 - 0x89, 0xde, //0x00002a80 movl %ebx, %esi - //0x00002a82 LBB9_19 - 0x4c, 0x89, 0xe7, //0x00002a82 movq %r12, %rdi - 0xe8, 0xc6, 0x63, 0x00, 0x00, //0x00002a85 callq _left_shift - 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00002a8a jmp LBB9_8 - 0x90, //0x00002a8f .p2align 4, 0x90 - //0x00002a90 LBB9_20 - 0x4c, 0x89, 0xe7, //0x00002a90 movq %r12, %rdi - 0xe8, 0xb8, 0x63, 0x00, 0x00, //0x00002a93 callq _left_shift - //0x00002a98 LBB9_21 - 0x45, 0x29, 0xf7, //0x00002a98 subl %r14d, %r15d - 0x41, 0x8b, 0x44, 0x24, 0x14, //0x00002a9b movl $20(%r12), %eax - //0x00002aa0 LBB9_22 - 0x85, 0xc0, //0x00002aa0 testl %eax, %eax - 0x0f, 0x88, 0x18, 0x00, 0x00, 0x00, //0x00002aa2 js LBB9_25 - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00002aa8 jne LBB9_36 - 0x49, 0x8b, 0x0c, 0x24, //0x00002aae movq (%r12), %rcx - 0x80, 0x39, 0x35, //0x00002ab2 cmpb $53, (%rcx) - 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002ab5 jl LBB9_26 - 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00002abb jmp LBB9_36 - //0x00002ac0 .p2align 4, 0x90 - //0x00002ac0 LBB9_25 - 0x41, 0xbe, 0x1b, 0x00, 0x00, 0x00, //0x00002ac0 movl $27, %r14d - 0x83, 0xf8, 0xf8, //0x00002ac6 cmpl $-8, %eax - 0x0f, 0x8c, 0x0f, 0x00, 0x00, 0x00, //0x00002ac9 jl LBB9_27 - //0x00002acf LBB9_26 - 0xf7, 0xd8, //0x00002acf negl %eax - 0x48, 0x98, //0x00002ad1 cltq - 0x48, 0x8d, 0x0d, 0x66, 0x96, 0x00, 0x00, //0x00002ad3 leaq $38502(%rip), %rcx /* _POW_TAB+0(%rip) */ - 0x44, 0x8b, 0x34, 0x81, //0x00002ada movl (%rcx,%rax,4), %r14d - //0x00002ade LBB9_27 - 0x45, 0x85, 0xf6, //0x00002ade testl %r14d, %r14d - 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00002ae1 je LBB9_21 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002ae7 cmpl $0, $16(%r12) - 0x0f, 0x84, 0xa5, 0xff, 0xff, 0xff, //0x00002aed je LBB9_21 - 0x45, 0x85, 0xf6, //0x00002af3 testl %r14d, %r14d - 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002af6 jle LBB9_33 - 0x44, 0x89, 0xf6, //0x00002afc movl %r14d, %esi - 0x41, 0x83, 0xfe, 0x3d, //0x00002aff cmpl $61, %r14d - 0x0f, 0x8c, 0x87, 0xff, 0xff, 0xff, //0x00002b03 jl LBB9_20 - 0x44, 0x89, 0xf3, //0x00002b09 movl %r14d, %ebx - 0x90, 0x90, 0x90, 0x90, //0x00002b0c .p2align 4, 0x90 - //0x00002b10 LBB9_32 - 0x4c, 0x89, 0xe7, //0x00002b10 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b13 movl $60, %esi - 0xe8, 0x33, 0x63, 0x00, 0x00, //0x00002b18 callq _left_shift - 0x8d, 0x73, 0xc4, //0x00002b1d leal $-60(%rbx), %esi - 0x83, 0xfb, 0x78, //0x00002b20 cmpl $120, %ebx - 0x89, 0xf3, //0x00002b23 movl %esi, %ebx - 0x0f, 0x8f, 0xe5, 0xff, 0xff, 0xff, //0x00002b25 jg LBB9_32 - 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00002b2b jmp LBB9_20 - //0x00002b30 LBB9_33 - 0x44, 0x89, 0xf3, //0x00002b30 movl %r14d, %ebx - 0x41, 0x83, 0xfe, 0xc3, //0x00002b33 cmpl $-61, %r14d - 0x0f, 0x8f, 0x1e, 0x00, 0x00, 0x00, //0x00002b37 jg LBB9_35 - 0x90, 0x90, 0x90, //0x00002b3d .p2align 4, 0x90 - //0x00002b40 LBB9_34 - 0x4c, 0x89, 0xe7, //0x00002b40 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002b43 movl $60, %esi - 0xe8, 0xf3, 0x64, 0x00, 0x00, //0x00002b48 callq _right_shift - 0x8d, 0x43, 0x3c, //0x00002b4d leal $60(%rbx), %eax - 0x83, 0xfb, 0x88, //0x00002b50 cmpl $-120, %ebx - 0x89, 0xc3, //0x00002b53 movl %eax, %ebx - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002b55 jl LBB9_34 - //0x00002b5b LBB9_35 - 0xf7, 0xdb, //0x00002b5b negl %ebx - 0x4c, 0x89, 0xe7, //0x00002b5d movq %r12, %rdi - 0x89, 0xde, //0x00002b60 movl %ebx, %esi - 0xe8, 0xd9, 0x64, 0x00, 0x00, //0x00002b62 callq _right_shift - 0xe9, 0x2c, 0xff, 0xff, 0xff, //0x00002b67 jmp LBB9_21 - //0x00002b6c LBB9_36 - 0x41, 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x00002b6c cmpl $-1022, %r15d - 0x0f, 0x8f, 0x4b, 0x00, 0x00, 0x00, //0x00002b73 jg LBB9_42 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002b79 cmpl $0, $16(%r12) - 0x48, 0x8b, 0x5d, 0xd0, //0x00002b7f movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002b83 je LBB9_44 - 0x41, 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x00002b89 cmpl $-1082, %r15d - 0x0f, 0x8f, 0x55, 0x00, 0x00, 0x00, //0x00002b90 jg LBB9_45 - 0x41, 0x81, 0xc7, 0xc1, 0x03, 0x00, 0x00, //0x00002b96 addl $961, %r15d - 0x90, 0x90, 0x90, //0x00002b9d .p2align 4, 0x90 - //0x00002ba0 LBB9_40 - 0x4c, 0x89, 0xe7, //0x00002ba0 movq %r12, %rdi - 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002ba3 movl $60, %esi - 0xe8, 0x93, 0x64, 0x00, 0x00, //0x00002ba8 callq _right_shift - 0x41, 0x83, 0xc7, 0x3c, //0x00002bad addl $60, %r15d - 0x41, 0x83, 0xff, 0x88, //0x00002bb1 cmpl $-120, %r15d - 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002bb5 jl LBB9_40 - 0x41, 0x83, 0xc7, 0x3c, //0x00002bbb addl $60, %r15d - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00002bbf jmp LBB9_46 - //0x00002bc4 LBB9_42 - 0x41, 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002bc4 cmpl $1024, %r15d - 0x48, 0x8b, 0x5d, 0xd0, //0x00002bcb movq $-48(%rbp), %rbx - 0x0f, 0x8f, 0x87, 0x01, 0x00, 0x00, //0x00002bcf jg LBB9_75 - 0x41, 0xff, 0xcf, //0x00002bd5 decl %r15d - 0x45, 0x89, 0xfe, //0x00002bd8 movl %r15d, %r14d - 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002bdb jmp LBB9_47 - //0x00002be0 LBB9_44 - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002be0 movl $-1022, %r14d - 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00002be6 jmp LBB9_49 - //0x00002beb LBB9_45 - 0x41, 0x81, 0xc7, 0xfd, 0x03, 0x00, 0x00, //0x00002beb addl $1021, %r15d - //0x00002bf2 LBB9_46 - 0x41, 0xf7, 0xdf, //0x00002bf2 negl %r15d - 0x4c, 0x89, 0xe7, //0x00002bf5 movq %r12, %rdi - 0x44, 0x89, 0xfe, //0x00002bf8 movl %r15d, %esi - 0xe8, 0x40, 0x64, 0x00, 0x00, //0x00002bfb callq _right_shift - 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002c00 movl $-1022, %r14d - //0x00002c06 LBB9_47 - 0x41, 0x83, 0x7c, 0x24, 0x10, 0x00, //0x00002c06 cmpl $0, $16(%r12) - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002c0c je LBB9_49 - 0x4c, 0x89, 0xe7, //0x00002c12 movq %r12, %rdi - 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002c15 movl $53, %esi - 0xe8, 0x31, 0x62, 0x00, 0x00, //0x00002c1a callq _left_shift - //0x00002c1f LBB9_49 - 0x4d, 0x63, 0x44, 0x24, 0x14, //0x00002c1f movslq $20(%r12), %r8 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002c24 movq $-1, %r15 - 0x49, 0x83, 0xf8, 0x14, //0x00002c2b cmpq $20, %r8 - 0x0f, 0x8f, 0x3f, 0x01, 0x00, 0x00, //0x00002c2f jg LBB9_77 - 0x44, 0x89, 0xc1, //0x00002c35 movl %r8d, %ecx - 0x85, 0xc9, //0x00002c38 testl %ecx, %ecx - 0x0f, 0x8e, 0x3c, 0x00, 0x00, 0x00, //0x00002c3a jle LBB9_54 - 0x49, 0x63, 0x74, 0x24, 0x10, //0x00002c40 movslq $16(%r12), %rsi - 0x31, 0xd2, //0x00002c45 xorl %edx, %edx - 0x45, 0x31, 0xff, //0x00002c47 xorl %r15d, %r15d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c4a .p2align 4, 0x90 - //0x00002c50 LBB9_52 - 0x48, 0x39, 0xf2, //0x00002c50 cmpq %rsi, %rdx - 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002c53 jge LBB9_55 - 0x4b, 0x8d, 0x04, 0xbf, //0x00002c59 leaq (%r15,%r15,4), %rax - 0x49, 0x8b, 0x3c, 0x24, //0x00002c5d movq (%r12), %rdi - 0x48, 0x0f, 0xbe, 0x3c, 0x17, //0x00002c61 movsbq (%rdi,%rdx), %rdi - 0x4c, 0x8d, 0x7c, 0x47, 0xd0, //0x00002c66 leaq $-48(%rdi,%rax,2), %r15 - 0x48, 0xff, 0xc2, //0x00002c6b incq %rdx - 0x48, 0x39, 0xd1, //0x00002c6e cmpq %rdx, %rcx - 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x00002c71 jne LBB9_52 - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00002c77 jmp LBB9_55 - //0x00002c7c LBB9_54 - 0x31, 0xd2, //0x00002c7c xorl %edx, %edx - 0x45, 0x31, 0xff, //0x00002c7e xorl %r15d, %r15d - //0x00002c81 LBB9_55 - 0x41, 0x39, 0xd0, //0x00002c81 cmpl %edx, %r8d - 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00002c84 jle LBB9_63 - 0x89, 0xcf, //0x00002c8a movl %ecx, %edi - 0x29, 0xd7, //0x00002c8c subl %edx, %edi - 0x89, 0xd6, //0x00002c8e movl %edx, %esi - 0xf7, 0xd6, //0x00002c90 notl %esi - 0x44, 0x01, 0xc6, //0x00002c92 addl %r8d, %esi - 0x83, 0xe7, 0x07, //0x00002c95 andl $7, %edi - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00002c98 je LBB9_60 - 0xf7, 0xdf, //0x00002c9e negl %edi - 0x31, 0xc0, //0x00002ca0 xorl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ca2 .p2align 4, 0x90 - //0x00002cb0 LBB9_58 - 0x4d, 0x01, 0xff, //0x00002cb0 addq %r15, %r15 - 0x4f, 0x8d, 0x3c, 0xbf, //0x00002cb3 leaq (%r15,%r15,4), %r15 - 0xff, 0xc8, //0x00002cb7 decl %eax - 0x39, 0xc7, //0x00002cb9 cmpl %eax, %edi - 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002cbb jne LBB9_58 - 0x29, 0xc2, //0x00002cc1 subl %eax, %edx - //0x00002cc3 LBB9_60 - 0x83, 0xfe, 0x07, //0x00002cc3 cmpl $7, %esi - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002cc6 jb LBB9_63 - 0x89, 0xc8, //0x00002ccc movl %ecx, %eax - 0x29, 0xd0, //0x00002cce subl %edx, %eax - //0x00002cd0 .p2align 4, 0x90 - //0x00002cd0 LBB9_62 - 0x4d, 0x69, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00002cd0 imulq $100000000, %r15, %r15 - 0x83, 0xc0, 0xf8, //0x00002cd7 addl $-8, %eax - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002cda jne LBB9_62 - //0x00002ce0 LBB9_63 - 0x85, 0xc9, //0x00002ce0 testl %ecx, %ecx - 0x0f, 0x88, 0x4c, 0x00, 0x00, 0x00, //0x00002ce2 js LBB9_71 - 0x41, 0x8b, 0x54, 0x24, 0x10, //0x00002ce8 movl $16(%r12), %edx - 0x44, 0x39, 0xc2, //0x00002ced cmpl %r8d, %edx - 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002cf0 jle LBB9_71 - 0x49, 0x8b, 0x34, 0x24, //0x00002cf6 movq (%r12), %rsi - 0x8a, 0x04, 0x0e, //0x00002cfa movb (%rsi,%rcx), %al - 0x8d, 0x79, 0x01, //0x00002cfd leal $1(%rcx), %edi - 0x39, 0xd7, //0x00002d00 cmpl %edx, %edi - 0x0f, 0x85, 0xbf, 0x00, 0x00, 0x00, //0x00002d02 jne LBB9_72 - 0x3c, 0x35, //0x00002d08 cmpb $53, %al - 0x0f, 0x85, 0xb7, 0x00, 0x00, 0x00, //0x00002d0a jne LBB9_72 - 0x41, 0x83, 0x7c, 0x24, 0x1c, 0x00, //0x00002d10 cmpl $0, $28(%r12) - 0x0f, 0x95, 0xc2, //0x00002d16 setne %dl - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00002d19 jne LBB9_73 - 0x85, 0xc9, //0x00002d1f testl %ecx, %ecx - 0x0f, 0x8e, 0x0f, 0x00, 0x00, 0x00, //0x00002d21 jle LBB9_73 - 0x41, 0x8a, 0x54, 0x30, 0xff, //0x00002d27 movb $-1(%r8,%rsi), %dl - 0x80, 0xe2, 0x01, //0x00002d2c andb $1, %dl - 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002d2f jmp LBB9_73 - //0x00002d34 LBB9_71 - 0x31, 0xd2, //0x00002d34 xorl %edx, %edx - //0x00002d36 LBB9_73 - 0x0f, 0xb6, 0xc2, //0x00002d36 movzbl %dl, %eax - 0x49, 0x01, 0xc7, //0x00002d39 addq %rax, %r15 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002d3c movabsq $9007199254740992, %rax - 0x49, 0x39, 0xc7, //0x00002d46 cmpq %rax, %r15 - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00002d49 jne LBB9_77 - 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00002d4f cmpl $1022, %r14d - 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00002d56 jle LBB9_76 - //0x00002d5c LBB9_75 - 0x45, 0x31, 0xff, //0x00002d5c xorl %r15d, %r15d - 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d5f movabsq $9218868437227405312, %r14 - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002d69 jmp LBB9_78 - //0x00002d6e LBB9_76 - 0x41, 0xff, 0xc6, //0x00002d6e incl %r14d - 0x4d, 0x89, 0xef, //0x00002d71 movq %r13, %r15 - //0x00002d74 LBB9_77 - 0x4c, 0x89, 0xf8, //0x00002d74 movq %r15, %rax - 0x4c, 0x21, 0xe8, //0x00002d77 andq %r13, %rax - 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00002d7a addl $1023, %r14d - 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00002d81 andl $2047, %r14d - 0x49, 0xc1, 0xe6, 0x34, //0x00002d88 shlq $52, %r14 - 0x48, 0x85, 0xc0, //0x00002d8c testq %rax, %rax - 0x4c, 0x0f, 0x44, 0xf0, //0x00002d8f cmoveq %rax, %r14 - //0x00002d93 LBB9_78 - 0x49, 0xff, 0xcd, //0x00002d93 decq %r13 - 0x4d, 0x21, 0xfd, //0x00002d96 andq %r15, %r13 - 0x4d, 0x09, 0xf5, //0x00002d99 orq %r14, %r13 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002d9c movabsq $-9223372036854775808, %rax - 0x4c, 0x09, 0xe8, //0x00002da6 orq %r13, %rax - 0x41, 0x83, 0x7c, 0x24, 0x18, 0x00, //0x00002da9 cmpl $0, $24(%r12) - 0x49, 0x0f, 0x44, 0xc5, //0x00002daf cmoveq %r13, %rax - 0x48, 0x89, 0x03, //0x00002db3 movq %rax, (%rbx) - 0x31, 0xc0, //0x00002db6 xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00002db8 addq $8, %rsp - 0x5b, //0x00002dbc popq %rbx - 0x41, 0x5c, //0x00002dbd popq %r12 - 0x41, 0x5d, //0x00002dbf popq %r13 - 0x41, 0x5e, //0x00002dc1 popq %r14 - 0x41, 0x5f, //0x00002dc3 popq %r15 - 0x5d, //0x00002dc5 popq %rbp - 0xc3, //0x00002dc6 retq - //0x00002dc7 LBB9_72 - 0x3c, 0x34, //0x00002dc7 cmpb $52, %al - 0x0f, 0x9f, 0xc2, //0x00002dc9 setg %dl - 0xe9, 0x65, 0xff, 0xff, 0xff, //0x00002dcc jmp LBB9_73 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002dd1 .p2align 4, 0x90 - //0x00002de0 _atof_native - 0x55, //0x00002de0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00002de1 movq %rsp, %rbp - 0x48, 0x83, 0xec, 0x30, //0x00002de4 subq $48, %rsp - 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00002de8 movq $0, $-40(%rbp) - 0x48, 0x89, 0x55, 0xe0, //0x00002df0 movq %rdx, $-32(%rbp) - 0x48, 0x89, 0x4d, 0xe8, //0x00002df4 movq %rcx, $-24(%rbp) - 0x48, 0x85, 0xc9, //0x00002df8 testq %rcx, %rcx - 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00002dfb je LBB10_5 - 0xc6, 0x02, 0x00, //0x00002e01 movb $0, (%rdx) - 0x48, 0x83, 0xf9, 0x01, //0x00002e04 cmpq $1, %rcx - 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00002e08 je LBB10_5 - 0xc6, 0x42, 0x01, 0x00, //0x00002e0e movb $0, $1(%rdx) - 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00002e12 cmpq $3, $-24(%rbp) - 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00002e17 jb LBB10_5 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00002e1d movl $2, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e22 .p2align 4, 0x90 - //0x00002e30 LBB10_4 - 0x48, 0x8b, 0x4d, 0xe0, //0x00002e30 movq $-32(%rbp), %rcx - 0xc6, 0x04, 0x01, 0x00, //0x00002e34 movb $0, (%rcx,%rax) - 0x48, 0xff, 0xc0, //0x00002e38 incq %rax - 0x48, 0x39, 0x45, 0xe8, //0x00002e3b cmpq %rax, $-24(%rbp) - 0x0f, 0x87, 0xeb, 0xff, 0xff, 0xff, //0x00002e3f ja LBB10_4 - //0x00002e45 LBB10_5 - 0x0f, 0x57, 0xc0, //0x00002e45 xorps %xmm0, %xmm0 - 0x0f, 0x11, 0x45, 0xf0, //0x00002e48 movups %xmm0, $-16(%rbp) - 0x80, 0x3f, 0x2d, //0x00002e4c cmpb $45, (%rdi) - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002e4f jne LBB10_6 - 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00002e55 movl $1, $-8(%rbp) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002e5c movl $1, %eax - 0x48, 0x39, 0xf0, //0x00002e61 cmpq %rsi, %rax - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002e64 jl LBB10_9 - //0x00002e6a LBB10_41 - 0xc7, 0x45, 0xf4, 0x00, 0x00, 0x00, 0x00, //0x00002e6a movl $0, $-12(%rbp) - 0xe9, 0xa3, 0x01, 0x00, 0x00, //0x00002e71 jmp LBB10_40 - //0x00002e76 LBB10_6 - 0x31, 0xc0, //0x00002e76 xorl %eax, %eax - 0x48, 0x39, 0xf0, //0x00002e78 cmpq %rsi, %rax - 0x0f, 0x8d, 0xe9, 0xff, 0xff, 0xff, //0x00002e7b jge LBB10_41 - //0x00002e81 LBB10_9 - 0x41, 0xb3, 0x01, //0x00002e81 movb $1, %r11b - 0x45, 0x31, 0xc9, //0x00002e84 xorl %r9d, %r9d - 0x45, 0x31, 0xd2, //0x00002e87 xorl %r10d, %r10d - 0x45, 0x31, 0xc0, //0x00002e8a xorl %r8d, %r8d - 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002e8d jmp LBB10_10 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e92 .p2align 4, 0x90 - //0x00002ea0 LBB10_13 - 0xff, 0x4d, 0xf4, //0x00002ea0 decl $-12(%rbp) - 0x45, 0x31, 0xd2, //0x00002ea3 xorl %r10d, %r10d - //0x00002ea6 LBB10_22 - 0x48, 0xff, 0xc0, //0x00002ea6 incq %rax - 0x48, 0x39, 0xf0, //0x00002ea9 cmpq %rsi, %rax - 0x41, 0x0f, 0x9c, 0xc3, //0x00002eac setl %r11b - 0x48, 0x39, 0xc6, //0x00002eb0 cmpq %rax, %rsi - 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x00002eb3 je LBB10_23 - //0x00002eb9 LBB10_10 - 0x0f, 0xb6, 0x0c, 0x07, //0x00002eb9 movzbl (%rdi,%rax), %ecx - 0x8d, 0x51, 0xd0, //0x00002ebd leal $-48(%rcx), %edx - 0x80, 0xfa, 0x09, //0x00002ec0 cmpb $9, %dl - 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00002ec3 ja LBB10_19 - 0x45, 0x85, 0xd2, //0x00002ec9 testl %r10d, %r10d - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002ecc jne LBB10_14 - 0x80, 0xf9, 0x30, //0x00002ed2 cmpb $48, %cl - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00002ed5 je LBB10_13 - //0x00002edb LBB10_14 - 0x4d, 0x63, 0xd1, //0x00002edb movslq %r9d, %r10 - 0x4c, 0x39, 0x55, 0xe8, //0x00002ede cmpq %r10, $-24(%rbp) - 0x0f, 0x86, 0x40, 0x00, 0x00, 0x00, //0x00002ee2 jbe LBB10_16 - 0x48, 0x8b, 0x55, 0xe0, //0x00002ee8 movq $-32(%rbp), %rdx - 0x42, 0x88, 0x0c, 0x12, //0x00002eec movb %cl, (%rdx,%r10) - 0x44, 0x8b, 0x4d, 0xf0, //0x00002ef0 movl $-16(%rbp), %r9d - 0x41, 0xff, 0xc1, //0x00002ef4 incl %r9d - 0x44, 0x89, 0x4d, 0xf0, //0x00002ef7 movl %r9d, $-16(%rbp) - 0x45, 0x89, 0xca, //0x00002efb movl %r9d, %r10d - 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00002efe jmp LBB10_22 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f03 .p2align 4, 0x90 - //0x00002f10 LBB10_19 - 0x80, 0xf9, 0x2e, //0x00002f10 cmpb $46, %cl - 0x0f, 0x85, 0x80, 0x00, 0x00, 0x00, //0x00002f13 jne LBB10_20 - 0x44, 0x89, 0x55, 0xf4, //0x00002f19 movl %r10d, $-12(%rbp) - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f1d movl $1, %r8d - 0xe9, 0x7e, 0xff, 0xff, 0xff, //0x00002f23 jmp LBB10_22 - //0x00002f28 LBB10_16 - 0x80, 0xf9, 0x30, //0x00002f28 cmpb $48, %cl - 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00002f2b jne LBB10_18 - 0x45, 0x89, 0xca, //0x00002f31 movl %r9d, %r10d - 0xe9, 0x6d, 0xff, 0xff, 0xff, //0x00002f34 jmp LBB10_22 - //0x00002f39 LBB10_18 - 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00002f39 movl $1, $-4(%rbp) - 0x45, 0x89, 0xca, //0x00002f40 movl %r9d, %r10d - 0xe9, 0x5e, 0xff, 0xff, 0xff, //0x00002f43 jmp LBB10_22 - //0x00002f48 LBB10_23 - 0x89, 0xf1, //0x00002f48 movl %esi, %ecx - 0x48, 0x89, 0xf0, //0x00002f4a movq %rsi, %rax - 0x45, 0x85, 0xc0, //0x00002f4d testl %r8d, %r8d - 0x0f, 0x85, 0x04, 0x00, 0x00, 0x00, //0x00002f50 jne LBB10_26 - //0x00002f56 LBB10_25 - 0x44, 0x89, 0x4d, 0xf4, //0x00002f56 movl %r9d, $-12(%rbp) - //0x00002f5a LBB10_26 - 0x41, 0xf6, 0xc3, 0x01, //0x00002f5a testb $1, %r11b - 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00002f5e je LBB10_40 - 0x8a, 0x0c, 0x0f, //0x00002f64 movb (%rdi,%rcx), %cl - 0x80, 0xc9, 0x20, //0x00002f67 orb $32, %cl - 0x80, 0xf9, 0x65, //0x00002f6a cmpb $101, %cl - 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00002f6d jne LBB10_40 - 0x89, 0xc2, //0x00002f73 movl %eax, %edx - 0x8a, 0x4c, 0x17, 0x01, //0x00002f75 movb $1(%rdi,%rdx), %cl - 0x80, 0xf9, 0x2d, //0x00002f79 cmpb $45, %cl - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00002f7c je LBB10_32 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002f82 movl $1, %r8d - 0x80, 0xf9, 0x2b, //0x00002f88 cmpb $43, %cl - 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00002f8b jne LBB10_30 - 0x83, 0xc0, 0x02, //0x00002f91 addl $2, %eax - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00002f94 jmp LBB10_33 - //0x00002f99 LBB10_20 - 0x48, 0x89, 0xc1, //0x00002f99 movq %rax, %rcx - 0x45, 0x85, 0xc0, //0x00002f9c testl %r8d, %r8d - 0x0f, 0x85, 0xb5, 0xff, 0xff, 0xff, //0x00002f9f jne LBB10_26 - 0xe9, 0xac, 0xff, 0xff, 0xff, //0x00002fa5 jmp LBB10_25 - //0x00002faa LBB10_32 - 0x83, 0xc0, 0x02, //0x00002faa addl $2, %eax - 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00002fad movl $-1, %r8d - //0x00002fb3 LBB10_33 - 0x89, 0xc2, //0x00002fb3 movl %eax, %edx - 0x48, 0x63, 0xd2, //0x00002fb5 movslq %edx, %rdx - 0x45, 0x31, 0xc9, //0x00002fb8 xorl %r9d, %r9d - 0x48, 0x39, 0xf2, //0x00002fbb cmpq %rsi, %rdx - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00002fbe jl LBB10_35 - 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00002fc4 jmp LBB10_39 - //0x00002fc9 LBB10_30 - 0x48, 0xff, 0xc2, //0x00002fc9 incq %rdx - 0x48, 0x63, 0xd2, //0x00002fcc movslq %edx, %rdx - 0x45, 0x31, 0xc9, //0x00002fcf xorl %r9d, %r9d - 0x48, 0x39, 0xf2, //0x00002fd2 cmpq %rsi, %rdx - 0x0f, 0x8d, 0x36, 0x00, 0x00, 0x00, //0x00002fd5 jge LBB10_39 - //0x00002fdb LBB10_35 - 0x45, 0x31, 0xc9, //0x00002fdb xorl %r9d, %r9d - 0x90, 0x90, //0x00002fde .p2align 4, 0x90 - //0x00002fe0 LBB10_36 - 0x41, 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x00002fe0 cmpl $9999, %r9d - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00002fe7 jg LBB10_39 - 0x0f, 0xb6, 0x0c, 0x17, //0x00002fed movzbl (%rdi,%rdx), %ecx - 0x8d, 0x41, 0xd0, //0x00002ff1 leal $-48(%rcx), %eax - 0x3c, 0x09, //0x00002ff4 cmpb $9, %al - 0x0f, 0x87, 0x15, 0x00, 0x00, 0x00, //0x00002ff6 ja LBB10_39 - 0x43, 0x8d, 0x04, 0x89, //0x00002ffc leal (%r9,%r9,4), %eax - 0x44, 0x8d, 0x4c, 0x41, 0xd0, //0x00003000 leal $-48(%rcx,%rax,2), %r9d - 0x48, 0xff, 0xc2, //0x00003005 incq %rdx - 0x48, 0x39, 0xd6, //0x00003008 cmpq %rdx, %rsi - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x0000300b jne LBB10_36 - //0x00003011 LBB10_39 - 0x45, 0x0f, 0xaf, 0xc8, //0x00003011 imull %r8d, %r9d - 0x44, 0x01, 0x4d, 0xf4, //0x00003015 addl %r9d, $-12(%rbp) - //0x00003019 LBB10_40 - 0x48, 0x8d, 0x7d, 0xe0, //0x00003019 leaq $-32(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd8, //0x0000301d leaq $-40(%rbp), %rsi - 0xe8, 0x1a, 0xf9, 0xff, 0xff, //0x00003021 callq _decimal_to_f64 - 0xf2, 0x0f, 0x10, 0x45, 0xd8, //0x00003026 movsd $-40(%rbp), %xmm0 - 0x48, 0x83, 0xc4, 0x30, //0x0000302b addq $48, %rsp - 0x5d, //0x0000302f popq %rbp - 0xc3, //0x00003030 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003031 .p2align 4, 0x90 - //0x00003040 _value - 0x55, //0x00003040 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003041 movq %rsp, %rbp - 0x41, 0x57, //0x00003044 pushq %r15 - 0x41, 0x56, //0x00003046 pushq %r14 - 0x41, 0x55, //0x00003048 pushq %r13 - 0x41, 0x54, //0x0000304a pushq %r12 - 0x53, //0x0000304c pushq %rbx - 0x48, 0x83, 0xec, 0x28, //0x0000304d subq $40, %rsp - 0x49, 0x89, 0xc9, //0x00003051 movq %rcx, %r9 - 0x49, 0x89, 0xd4, //0x00003054 movq %rdx, %r12 - 0x49, 0x89, 0xf7, //0x00003057 movq %rsi, %r15 - 0x49, 0x89, 0xfd, //0x0000305a movq %rdi, %r13 - 0x48, 0x89, 0x55, 0xd0, //0x0000305d movq %rdx, $-48(%rbp) - 0x48, 0x89, 0x7d, 0xb0, //0x00003061 movq %rdi, $-80(%rbp) - 0x48, 0x89, 0x75, 0xb8, //0x00003065 movq %rsi, $-72(%rbp) - 0x48, 0x89, 0xd0, //0x00003069 movq %rdx, %rax - 0x48, 0x29, 0xf0, //0x0000306c subq %rsi, %rax - 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000306f jae LBB11_5 - 0x43, 0x8a, 0x4c, 0x25, 0x00, //0x00003075 movb (%r13,%r12), %cl - 0x80, 0xf9, 0x0d, //0x0000307a cmpb $13, %cl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000307d je LBB11_5 - 0x80, 0xf9, 0x20, //0x00003083 cmpb $32, %cl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00003086 je LBB11_5 - 0x8d, 0x51, 0xf7, //0x0000308c leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x0000308f cmpb $1, %dl - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003092 jbe LBB11_5 - 0x4c, 0x89, 0xe3, //0x00003098 movq %r12, %rbx - 0xe9, 0x32, 0x01, 0x00, 0x00, //0x0000309b jmp LBB11_28 - //0x000030a0 LBB11_5 - 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x000030a0 leaq $1(%r12), %rbx - 0x4c, 0x39, 0xfb, //0x000030a5 cmpq %r15, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030a8 jae LBB11_9 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030ae movb (%r13,%rbx), %cl - 0x80, 0xf9, 0x0d, //0x000030b3 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030b6 je LBB11_9 - 0x80, 0xf9, 0x20, //0x000030bc cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030bf je LBB11_9 - 0x8d, 0x51, 0xf7, //0x000030c5 leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x000030c8 cmpb $1, %dl - 0x0f, 0x87, 0x01, 0x01, 0x00, 0x00, //0x000030cb ja LBB11_28 - //0x000030d1 LBB11_9 - 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000030d1 leaq $2(%r12), %rbx - 0x4c, 0x39, 0xfb, //0x000030d6 cmpq %r15, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000030d9 jae LBB11_13 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000030df movb (%r13,%rbx), %cl - 0x80, 0xf9, 0x0d, //0x000030e4 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000030e7 je LBB11_13 - 0x80, 0xf9, 0x20, //0x000030ed cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000030f0 je LBB11_13 - 0x8d, 0x51, 0xf7, //0x000030f6 leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x000030f9 cmpb $1, %dl - 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000030fc ja LBB11_28 - //0x00003102 LBB11_13 - 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x00003102 leaq $3(%r12), %rbx - 0x4c, 0x39, 0xfb, //0x00003107 cmpq %r15, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x0000310a jae LBB11_17 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x00003110 movb (%r13,%rbx), %cl - 0x80, 0xf9, 0x0d, //0x00003115 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00003118 je LBB11_17 - 0x80, 0xf9, 0x20, //0x0000311e cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003121 je LBB11_17 - 0x8d, 0x51, 0xf7, //0x00003127 leal $-9(%rcx), %edx - 0x80, 0xfa, 0x01, //0x0000312a cmpb $1, %dl - 0x0f, 0x87, 0x9f, 0x00, 0x00, 0x00, //0x0000312d ja LBB11_28 - //0x00003133 LBB11_17 - 0x49, 0x8d, 0x4c, 0x24, 0x04, //0x00003133 leaq $4(%r12), %rcx - 0x4c, 0x39, 0xf9, //0x00003138 cmpq %r15, %rcx - 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x0000313b jae LBB11_23 - 0x49, 0x39, 0xcf, //0x00003141 cmpq %rcx, %r15 - 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00003144 je LBB11_24 - 0x4b, 0x8d, 0x4c, 0x3d, 0x00, //0x0000314a leaq (%r13,%r15), %rcx - 0x48, 0x83, 0xc0, 0x04, //0x0000314f addq $4, %rax - 0x4b, 0x8d, 0x5c, 0x2c, 0x05, //0x00003153 leaq $5(%r12,%r13), %rbx - 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00003158 movabsq $4294977024, %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003162 .p2align 4, 0x90 - //0x00003170 LBB11_20 - 0x0f, 0xbe, 0x73, 0xff, //0x00003170 movsbl $-1(%rbx), %esi - 0x83, 0xfe, 0x20, //0x00003174 cmpl $32, %esi - 0x0f, 0x87, 0x3e, 0x00, 0x00, 0x00, //0x00003177 ja LBB11_26 - 0x48, 0x0f, 0xa3, 0xf2, //0x0000317d btq %rsi, %rdx - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00003181 jae LBB11_26 - 0x48, 0xff, 0xc3, //0x00003187 incq %rbx - 0x48, 0xff, 0xc0, //0x0000318a incq %rax - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000318d jne LBB11_20 - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00003193 jmp LBB11_25 - //0x00003198 LBB11_23 - 0x48, 0x89, 0x4d, 0xd0, //0x00003198 movq %rcx, $-48(%rbp) - 0x49, 0x89, 0xcc, //0x0000319c movq %rcx, %r12 - 0xe9, 0x7e, 0x00, 0x00, 0x00, //0x0000319f jmp LBB11_32 - //0x000031a4 LBB11_24 - 0x4c, 0x01, 0xe9, //0x000031a4 addq %r13, %rcx - //0x000031a7 LBB11_25 - 0x4c, 0x29, 0xe9, //0x000031a7 subq %r13, %rcx - 0x48, 0x89, 0xcb, //0x000031aa movq %rcx, %rbx - 0x4c, 0x39, 0xfb, //0x000031ad cmpq %r15, %rbx - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000031b0 jb LBB11_27 - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000031b6 jmp LBB11_32 - //0x000031bb LBB11_26 - 0x4c, 0x89, 0xe8, //0x000031bb movq %r13, %rax - 0x48, 0xf7, 0xd0, //0x000031be notq %rax - 0x48, 0x01, 0xc3, //0x000031c1 addq %rax, %rbx - 0x4c, 0x39, 0xfb, //0x000031c4 cmpq %r15, %rbx - 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x000031c7 jae LBB11_32 - //0x000031cd LBB11_27 - 0x41, 0x8a, 0x4c, 0x1d, 0x00, //0x000031cd movb (%r13,%rbx), %cl - //0x000031d2 LBB11_28 - 0x4c, 0x8d, 0x63, 0x01, //0x000031d2 leaq $1(%rbx), %r12 - 0x4c, 0x89, 0x65, 0xd0, //0x000031d6 movq %r12, $-48(%rbp) - 0x0f, 0xbe, 0xc1, //0x000031da movsbl %cl, %eax - 0x83, 0xf8, 0x7d, //0x000031dd cmpl $125, %eax - 0x0f, 0x87, 0xbe, 0x00, 0x00, 0x00, //0x000031e0 ja LBB11_40 - 0x4d, 0x8d, 0x74, 0x1d, 0x00, //0x000031e6 leaq (%r13,%rbx), %r14 - 0x48, 0x8d, 0x15, 0x6a, 0x03, 0x00, 0x00, //0x000031eb leaq $874(%rip), %rdx /* LJTI11_0+0(%rip) */ - 0x48, 0x63, 0x04, 0x82, //0x000031f2 movslq (%rdx,%rax,4), %rax - 0x48, 0x01, 0xd0, //0x000031f6 addq %rdx, %rax - 0xff, 0xe0, //0x000031f9 jmpq *%rax - //0x000031fb LBB11_30 - 0x48, 0x89, 0x5d, 0xd0, //0x000031fb movq %rbx, $-48(%rbp) - 0x41, 0xf6, 0xc0, 0x02, //0x000031ff testb $2, %r8b - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003203 jne LBB11_35 - 0x48, 0x8d, 0x7d, 0xb0, //0x00003209 leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x75, 0xd0, //0x0000320d leaq $-48(%rbp), %rsi - 0x4c, 0x89, 0xca, //0x00003211 movq %r9, %rdx - 0xe8, 0x67, 0x0b, 0x00, 0x00, //0x00003214 callq _vnumber - 0x48, 0x8b, 0x5d, 0xd0, //0x00003219 movq $-48(%rbp), %rbx - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000321d jmp LBB11_34 - //0x00003222 LBB11_32 - 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x00003222 movq $1, (%r9) - //0x00003229 LBB11_33 - 0x4c, 0x89, 0xe3, //0x00003229 movq %r12, %rbx - //0x0000322c LBB11_34 - 0x48, 0x89, 0xd8, //0x0000322c movq %rbx, %rax - 0x48, 0x83, 0xc4, 0x28, //0x0000322f addq $40, %rsp - 0x5b, //0x00003233 popq %rbx - 0x41, 0x5c, //0x00003234 popq %r12 - 0x41, 0x5d, //0x00003236 popq %r13 - 0x41, 0x5e, //0x00003238 popq %r14 - 0x41, 0x5f, //0x0000323a popq %r15 - 0x5d, //0x0000323c popq %rbp - 0xc3, //0x0000323d retq - //0x0000323e LBB11_35 - 0x49, 0x29, 0xdf, //0x0000323e subq %rbx, %r15 - 0x31, 0xc0, //0x00003241 xorl %eax, %eax - 0x80, 0xf9, 0x2d, //0x00003243 cmpb $45, %cl - 0x0f, 0x94, 0xc0, //0x00003246 sete %al - 0x49, 0x01, 0xc6, //0x00003249 addq %rax, %r14 - 0x49, 0x29, 0xc7, //0x0000324c subq %rax, %r15 - 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x0000324f je LBB11_84 - 0x4c, 0x89, 0x4d, 0xc8, //0x00003255 movq %r9, $-56(%rbp) - 0x41, 0x8a, 0x06, //0x00003259 movb (%r14), %al - 0x04, 0xd0, //0x0000325c addb $-48, %al - 0x3c, 0x0a, //0x0000325e cmpb $10, %al - 0x0f, 0x83, 0xd9, 0x02, 0x00, 0x00, //0x00003260 jae LBB11_86 - 0x4c, 0x89, 0xf7, //0x00003266 movq %r14, %rdi - 0x4c, 0x89, 0xfe, //0x00003269 movq %r15, %rsi - 0xe8, 0x0f, 0x1e, 0x00, 0x00, //0x0000326c callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00003271 testq %rax, %rax - 0x0f, 0x88, 0xbf, 0x02, 0x00, 0x00, //0x00003274 js LBB11_85 - 0x49, 0x01, 0xc6, //0x0000327a addq %rax, %r14 - 0x4d, 0x29, 0xee, //0x0000327d subq %r13, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x00003280 movq %r14, $-48(%rbp) - 0x4d, 0x85, 0xe4, //0x00003284 testq %r12, %r12 - 0x4c, 0x8b, 0x4d, 0xc8, //0x00003287 movq $-56(%rbp), %r9 - 0x0f, 0x8e, 0xc0, 0x02, 0x00, 0x00, //0x0000328b jle LBB11_87 - 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003291 movq $8, (%r9) - 0x49, 0x89, 0x59, 0x18, //0x00003298 movq %rbx, $24(%r9) - 0x4c, 0x89, 0xf3, //0x0000329c movq %r14, %rbx - 0xe9, 0x88, 0xff, 0xff, 0xff, //0x0000329f jmp LBB11_34 - //0x000032a4 LBB11_40 - 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x000032a4 movq $-2, (%r9) - 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x000032ab jmp LBB11_34 - //0x000032b0 LBB11_41 - 0x4d, 0x89, 0xce, //0x000032b0 movq %r9, %r14 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000032b3 movq $-1, $-64(%rbp) - 0x48, 0x8d, 0x7d, 0xb0, //0x000032bb leaq $-80(%rbp), %rdi - 0x48, 0x8d, 0x55, 0xc0, //0x000032bf leaq $-64(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x000032c3 movq %r12, %rsi - 0x4c, 0x89, 0xc1, //0x000032c6 movq %r8, %rcx - 0xe8, 0x42, 0x05, 0x00, 0x00, //0x000032c9 callq _advance_string - 0x48, 0x89, 0xc3, //0x000032ce movq %rax, %rbx - 0x48, 0x85, 0xc0, //0x000032d1 testq %rax, %rax - 0x0f, 0x88, 0x47, 0x01, 0x00, 0x00, //0x000032d4 js LBB11_61 - 0x48, 0x89, 0x5d, 0xd0, //0x000032da movq %rbx, $-48(%rbp) - 0x4d, 0x89, 0x66, 0x10, //0x000032de movq %r12, $16(%r14) - 0x48, 0x8b, 0x45, 0xc0, //0x000032e2 movq $-64(%rbp), %rax - 0x48, 0x39, 0xd8, //0x000032e6 cmpq %rbx, %rax - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000032e9 movq $-1, %rcx - 0x48, 0x0f, 0x4c, 0xc8, //0x000032f0 cmovlq %rax, %rcx - 0x49, 0x89, 0x4e, 0x18, //0x000032f4 movq %rcx, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000032f8 movl $7, %eax - 0x49, 0x89, 0x06, //0x000032fd movq %rax, (%r14) - 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00003300 jmp LBB11_34 - //0x00003305 LBB11_43 - 0x31, 0xc0, //0x00003305 xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x00003307 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x0000330a setns %al - 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x0000330d movl $11, %ecx - 0xe9, 0xf4, 0x00, 0x00, 0x00, //0x00003312 jmp LBB11_60 - //0x00003317 LBB11_44 - 0x31, 0xc0, //0x00003317 xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x00003319 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x0000331c setns %al - 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x0000331f movl $10, %ecx - 0xe9, 0xe2, 0x00, 0x00, 0x00, //0x00003324 jmp LBB11_60 - //0x00003329 LBB11_45 - 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x00003329 movq $5, (%r9) - 0xe9, 0xf4, 0xfe, 0xff, 0xff, //0x00003330 jmp LBB11_33 - //0x00003335 LBB11_46 - 0x31, 0xc0, //0x00003335 xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x00003337 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x0000333a setns %al - 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x0000333d movl $12, %ecx - 0xe9, 0xc4, 0x00, 0x00, 0x00, //0x00003342 jmp LBB11_60 - //0x00003347 LBB11_47 - 0x49, 0x8d, 0x47, 0xfc, //0x00003347 leaq $-4(%r15), %rax - 0x48, 0x39, 0xc3, //0x0000334b cmpq %rax, %rbx - 0x0f, 0x83, 0x88, 0x00, 0x00, 0x00, //0x0000334e jae LBB11_56 - 0x43, 0x8b, 0x4c, 0x25, 0x00, //0x00003354 movl (%r13,%r12), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00003359 cmpl $1702063201, %ecx - 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000335f jne LBB11_62 - 0x48, 0x83, 0xc3, 0x05, //0x00003365 addq $5, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x00003369 movq %rbx, $-48(%rbp) - 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000336d movl $4, %eax - 0x49, 0x89, 0xdf, //0x00003372 movq %rbx, %r15 - 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00003375 jmp LBB11_57 - //0x0000337a LBB11_50 - 0x49, 0x8d, 0x47, 0xfd, //0x0000337a leaq $-3(%r15), %rax - 0x48, 0x39, 0xc3, //0x0000337e cmpq %rax, %rbx - 0x0f, 0x83, 0x55, 0x00, 0x00, 0x00, //0x00003381 jae LBB11_56 - 0x41, 0x8b, 0x0e, //0x00003387 movl (%r14), %ecx - 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x0000338a cmpl $1819047278, %ecx - 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003390 jne LBB11_66 - 0x48, 0x83, 0xc3, 0x04, //0x00003396 addq $4, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x0000339a movq %rbx, $-48(%rbp) - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x0000339e movl $2, %eax - 0x49, 0x89, 0xdf, //0x000033a3 movq %rbx, %r15 - 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x000033a6 jmp LBB11_57 - //0x000033ab LBB11_53 - 0x49, 0x8d, 0x47, 0xfd, //0x000033ab leaq $-3(%r15), %rax - 0x48, 0x39, 0xc3, //0x000033af cmpq %rax, %rbx - 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x000033b2 jae LBB11_56 - 0x41, 0x8b, 0x0e, //0x000033b8 movl (%r14), %ecx - 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x000033bb cmpl $1702195828, %ecx - 0x0f, 0x85, 0xeb, 0x00, 0x00, 0x00, //0x000033c1 jne LBB11_70 - 0x48, 0x83, 0xc3, 0x04, //0x000033c7 addq $4, %rbx - 0x48, 0x89, 0x5d, 0xd0, //0x000033cb movq %rbx, $-48(%rbp) - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000033cf movl $3, %eax - 0x49, 0x89, 0xdf, //0x000033d4 movq %rbx, %r15 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000033d7 jmp LBB11_57 - //0x000033dc LBB11_56 - 0x4c, 0x89, 0x7d, 0xd0, //0x000033dc movq %r15, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000033e0 movq $-1, %rax - //0x000033e7 LBB11_57 - 0x49, 0x89, 0x01, //0x000033e7 movq %rax, (%r9) - 0x4c, 0x89, 0xfb, //0x000033ea movq %r15, %rbx - 0xe9, 0x3a, 0xfe, 0xff, 0xff, //0x000033ed jmp LBB11_34 - //0x000033f2 LBB11_58 - 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000033f2 movq $6, (%r9) - 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x000033f9 jmp LBB11_33 - //0x000033fe LBB11_59 - 0x31, 0xc0, //0x000033fe xorl %eax, %eax - 0x45, 0x85, 0xc0, //0x00003400 testl %r8d, %r8d - 0x0f, 0x99, 0xc0, //0x00003403 setns %al - 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00003406 movl $13, %ecx - //0x0000340b LBB11_60 - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x0000340b movq $-2, %rdx - 0x48, 0x0f, 0x48, 0xd1, //0x00003412 cmovsq %rcx, %rdx - 0x49, 0x89, 0x11, //0x00003416 movq %rdx, (%r9) - 0x49, 0x29, 0xc4, //0x00003419 subq %rax, %r12 - 0xe9, 0x08, 0xfe, 0xff, 0xff, //0x0000341c jmp LBB11_33 - //0x00003421 LBB11_61 - 0x4c, 0x89, 0x7d, 0xd0, //0x00003421 movq %r15, $-48(%rbp) - 0x49, 0x89, 0x1e, //0x00003425 movq %rbx, (%r14) - 0x4c, 0x89, 0xfb, //0x00003428 movq %r15, %rbx - 0xe9, 0xfc, 0xfd, 0xff, 0xff, //0x0000342b jmp LBB11_34 - //0x00003430 LBB11_62 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003430 movq $-2, %rax - 0x80, 0xf9, 0x61, //0x00003437 cmpb $97, %cl - 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x0000343a jne LBB11_74 - 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x00003440 cmpb $108, $2(%r13,%rbx) - 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00003446 jne LBB11_81 - 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x73, //0x0000344c cmpb $115, $3(%r13,%rbx) - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00003452 jne LBB11_79 - 0x4c, 0x8d, 0x7b, 0x04, //0x00003458 leaq $4(%rbx), %r15 - 0x48, 0x8d, 0x4b, 0x05, //0x0000345c leaq $5(%rbx), %rcx - 0x41, 0x80, 0x7c, 0x1d, 0x04, 0x65, //0x00003460 cmpb $101, $4(%r13,%rbx) - 0x4c, 0x0f, 0x44, 0xf9, //0x00003466 cmoveq %rcx, %r15 - 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000346a jmp LBB11_83 - //0x0000346f LBB11_66 - 0x48, 0x89, 0x5d, 0xd0, //0x0000346f movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003473 movq $-2, %rax - 0x80, 0xf9, 0x6e, //0x0000347a cmpb $110, %cl - 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x0000347d jne LBB11_76 - 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x75, //0x00003483 cmpb $117, $1(%r13,%rbx) - 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x00003489 jne LBB11_77 - 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x6c, //0x0000348f cmpb $108, $2(%r13,%rbx) - 0x0f, 0x85, 0x72, 0x00, 0x00, 0x00, //0x00003495 jne LBB11_81 - 0x4c, 0x8d, 0x7b, 0x03, //0x0000349b leaq $3(%rbx), %r15 - 0x48, 0x8d, 0x4b, 0x04, //0x0000349f leaq $4(%rbx), %rcx - 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x6c, //0x000034a3 cmpb $108, $3(%r13,%rbx) - 0x4c, 0x0f, 0x44, 0xf9, //0x000034a9 cmoveq %rcx, %r15 - 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x000034ad jmp LBB11_83 - //0x000034b2 LBB11_70 - 0x48, 0x89, 0x5d, 0xd0, //0x000034b2 movq %rbx, $-48(%rbp) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000034b6 movq $-2, %rax - 0x80, 0xf9, 0x74, //0x000034bd cmpb $116, %cl - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034c0 jne LBB11_76 - 0x41, 0x80, 0x7c, 0x1d, 0x01, 0x72, //0x000034c6 cmpb $114, $1(%r13,%rbx) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000034cc jne LBB11_77 - 0x41, 0x80, 0x7c, 0x1d, 0x02, 0x75, //0x000034d2 cmpb $117, $2(%r13,%rbx) - 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000034d8 jne LBB11_81 - 0x4c, 0x8d, 0x7b, 0x03, //0x000034de leaq $3(%rbx), %r15 - 0x48, 0x8d, 0x4b, 0x04, //0x000034e2 leaq $4(%rbx), %rcx - 0x41, 0x80, 0x7c, 0x1d, 0x03, 0x65, //0x000034e6 cmpb $101, $3(%r13,%rbx) - 0x4c, 0x0f, 0x44, 0xf9, //0x000034ec cmoveq %rcx, %r15 - 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034f0 jmp LBB11_83 - //0x000034f5 LBB11_76 - 0x49, 0x89, 0xdf, //0x000034f5 movq %rbx, %r15 - 0xe9, 0xea, 0xfe, 0xff, 0xff, //0x000034f8 jmp LBB11_57 - //0x000034fd LBB11_74 - 0x4d, 0x89, 0xe7, //0x000034fd movq %r12, %r15 - 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x00003500 jmp LBB11_57 - //0x00003505 LBB11_77 - 0x48, 0xff, 0xc3, //0x00003505 incq %rbx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00003508 jmp LBB11_82 - //0x0000350d LBB11_81 - 0x48, 0x83, 0xc3, 0x02, //0x0000350d addq $2, %rbx - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00003511 jmp LBB11_82 - //0x00003516 LBB11_79 - 0x48, 0x83, 0xc3, 0x03, //0x00003516 addq $3, %rbx - //0x0000351a LBB11_82 - 0x49, 0x89, 0xdf, //0x0000351a movq %rbx, %r15 - //0x0000351d LBB11_83 - 0x4c, 0x89, 0x7d, 0xd0, //0x0000351d movq %r15, $-48(%rbp) - 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003521 jmp LBB11_57 - //0x00003526 LBB11_84 - 0x4d, 0x29, 0xee, //0x00003526 subq %r13, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x00003529 movq %r14, $-48(%rbp) - 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000352d movq $-1, %rbx - 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00003534 jmp LBB11_87 - //0x00003539 LBB11_85 - 0x48, 0xf7, 0xd0, //0x00003539 notq %rax - 0x49, 0x01, 0xc6, //0x0000353c addq %rax, %r14 - //0x0000353f LBB11_86 - 0x4d, 0x29, 0xee, //0x0000353f subq %r13, %r14 - 0x4c, 0x89, 0x75, 0xd0, //0x00003542 movq %r14, $-48(%rbp) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003546 movq $-2, %rbx - 0x4c, 0x8b, 0x4d, 0xc8, //0x0000354d movq $-56(%rbp), %r9 - //0x00003551 LBB11_87 - 0x49, 0x89, 0x19, //0x00003551 movq %rbx, (%r9) - 0x4c, 0x89, 0xf3, //0x00003554 movq %r14, %rbx - 0xe9, 0xd0, 0xfc, 0xff, 0xff, //0x00003557 jmp LBB11_34 - //0x0000355c .p2align 2, 0x90 - // // .set L11_0_set_32, LBB11_32-LJTI11_0 - // // .set L11_0_set_40, LBB11_40-LJTI11_0 - // // .set L11_0_set_41, LBB11_41-LJTI11_0 - // // .set L11_0_set_43, LBB11_43-LJTI11_0 - // // .set L11_0_set_30, LBB11_30-LJTI11_0 - // // .set L11_0_set_44, LBB11_44-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_50, LBB11_50-LJTI11_0 - // // .set L11_0_set_53, LBB11_53-LJTI11_0 - // // .set L11_0_set_58, LBB11_58-LJTI11_0 - // // .set L11_0_set_59, LBB11_59-LJTI11_0 - //0x0000355c LJTI11_0 - 0xc6, 0xfc, 0xff, 0xff, //0x0000355c .long L11_0_set_32 - 0x48, 0xfd, 0xff, 0xff, //0x00003560 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003564 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003568 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000356c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003570 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003574 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003578 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000357c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003580 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003584 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003588 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000358c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003590 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003594 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003598 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000359c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035a0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035a4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035a8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035ac .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035b0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035b4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035b8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035bc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035c0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035c4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035c8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035cc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035d0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035d4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035d8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035dc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035e0 .long L11_0_set_40 - 0x54, 0xfd, 0xff, 0xff, //0x000035e4 .long L11_0_set_41 - 0x48, 0xfd, 0xff, 0xff, //0x000035e8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035ec .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035f0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035f4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035f8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000035fc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003600 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003604 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003608 .long L11_0_set_40 - 0xa9, 0xfd, 0xff, 0xff, //0x0000360c .long L11_0_set_43 - 0x9f, 0xfc, 0xff, 0xff, //0x00003610 .long L11_0_set_30 - 0x48, 0xfd, 0xff, 0xff, //0x00003614 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003618 .long L11_0_set_40 - 0x9f, 0xfc, 0xff, 0xff, //0x0000361c .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003620 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003624 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003628 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x0000362c .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003630 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003634 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003638 .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x0000363c .long L11_0_set_30 - 0x9f, 0xfc, 0xff, 0xff, //0x00003640 .long L11_0_set_30 - 0xbb, 0xfd, 0xff, 0xff, //0x00003644 .long L11_0_set_44 - 0x48, 0xfd, 0xff, 0xff, //0x00003648 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000364c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003650 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003654 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003658 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000365c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003660 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003664 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003668 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000366c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003670 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003674 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003678 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000367c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003680 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003684 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003688 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000368c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003690 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003694 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003698 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000369c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036a0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036a4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036a8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036ac .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036b0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036b4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036b8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036bc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036c0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036c4 .long L11_0_set_40 - 0xcd, 0xfd, 0xff, 0xff, //0x000036c8 .long L11_0_set_45 - 0x48, 0xfd, 0xff, 0xff, //0x000036cc .long L11_0_set_40 - 0xd9, 0xfd, 0xff, 0xff, //0x000036d0 .long L11_0_set_46 - 0x48, 0xfd, 0xff, 0xff, //0x000036d4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036d8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036dc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036e0 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036e4 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036e8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036ec .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036f0 .long L11_0_set_40 - 0xeb, 0xfd, 0xff, 0xff, //0x000036f4 .long L11_0_set_47 - 0x48, 0xfd, 0xff, 0xff, //0x000036f8 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x000036fc .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003700 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003704 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003708 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000370c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003710 .long L11_0_set_40 - 0x1e, 0xfe, 0xff, 0xff, //0x00003714 .long L11_0_set_50 - 0x48, 0xfd, 0xff, 0xff, //0x00003718 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000371c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003720 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003724 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003728 .long L11_0_set_40 - 0x4f, 0xfe, 0xff, 0xff, //0x0000372c .long L11_0_set_53 - 0x48, 0xfd, 0xff, 0xff, //0x00003730 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003734 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003738 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x0000373c .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003740 .long L11_0_set_40 - 0x48, 0xfd, 0xff, 0xff, //0x00003744 .long L11_0_set_40 - 0x96, 0xfe, 0xff, 0xff, //0x00003748 .long L11_0_set_58 - 0x48, 0xfd, 0xff, 0xff, //0x0000374c .long L11_0_set_40 - 0xa2, 0xfe, 0xff, 0xff, //0x00003750 .long L11_0_set_59 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003754 .p2align 4, 0x90 - //0x00003760 _vstring - 0x55, //0x00003760 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003761 movq %rsp, %rbp - 0x41, 0x57, //0x00003764 pushq %r15 - 0x41, 0x56, //0x00003766 pushq %r14 - 0x41, 0x54, //0x00003768 pushq %r12 - 0x53, //0x0000376a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x0000376b subq $16, %rsp - 0x49, 0x89, 0xd6, //0x0000376f movq %rdx, %r14 - 0x48, 0x89, 0xf3, //0x00003772 movq %rsi, %rbx - 0x49, 0x89, 0xff, //0x00003775 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003778 movq $-1, $-40(%rbp) - 0x4c, 0x8b, 0x26, //0x00003780 movq (%rsi), %r12 - 0x48, 0x8d, 0x55, 0xd8, //0x00003783 leaq $-40(%rbp), %rdx - 0x4c, 0x89, 0xe6, //0x00003787 movq %r12, %rsi - 0xe8, 0x81, 0x00, 0x00, 0x00, //0x0000378a callq _advance_string - 0x48, 0x85, 0xc0, //0x0000378f testq %rax, %rax - 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003792 js LBB12_1 - 0x48, 0x89, 0x03, //0x00003798 movq %rax, (%rbx) - 0x4d, 0x89, 0x66, 0x10, //0x0000379b movq %r12, $16(%r14) - 0x48, 0x8b, 0x4d, 0xd8, //0x0000379f movq $-40(%rbp), %rcx - 0x48, 0x39, 0xc1, //0x000037a3 cmpq %rax, %rcx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000037a6 movq $-1, %rax - 0x48, 0x0f, 0x4c, 0xc1, //0x000037ad cmovlq %rcx, %rax - 0x49, 0x89, 0x46, 0x18, //0x000037b1 movq %rax, $24(%r14) - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000037b5 movl $7, %eax - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000037ba jmp LBB12_3 - //0x000037bf LBB12_1 - 0x49, 0x8b, 0x4f, 0x08, //0x000037bf movq $8(%r15), %rcx - 0x48, 0x89, 0x0b, //0x000037c3 movq %rcx, (%rbx) - //0x000037c6 LBB12_3 - 0x49, 0x89, 0x06, //0x000037c6 movq %rax, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x000037c9 addq $16, %rsp - 0x5b, //0x000037cd popq %rbx - 0x41, 0x5c, //0x000037ce popq %r12 - 0x41, 0x5e, //0x000037d0 popq %r14 - 0x41, 0x5f, //0x000037d2 popq %r15 - 0x5d, //0x000037d4 popq %rbp - 0xc3, //0x000037d5 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000037d6 .p2align 4, 0x00 - //0x000037e0 LCPI13_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000037e0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000037f0 LCPI13_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000037f0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x00003800 LCPI13_2 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003800 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00003810 .p2align 4, 0x90 - //0x00003810 _advance_string - 0xf6, 0xc1, 0x20, //0x00003810 testb $32, %cl - 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003813 jne LBB13_2 - 0xe9, 0xd2, 0x59, 0x00, 0x00, //0x00003819 jmp _advance_string_default - //0x0000381e LBB13_2 - 0x55, //0x0000381e pushq %rbp - 0x48, 0x89, 0xe5, //0x0000381f movq %rsp, %rbp - 0x41, 0x57, //0x00003822 pushq %r15 - 0x41, 0x56, //0x00003824 pushq %r14 - 0x41, 0x55, //0x00003826 pushq %r13 - 0x41, 0x54, //0x00003828 pushq %r12 - 0x53, //0x0000382a pushq %rbx - 0x50, //0x0000382b pushq %rax - 0x4c, 0x8b, 0x67, 0x08, //0x0000382c movq $8(%rdi), %r12 - 0x49, 0x29, 0xf4, //0x00003830 subq %rsi, %r12 - 0x0f, 0x84, 0xf3, 0x04, 0x00, 0x00, //0x00003833 je LBB13_45 - 0x48, 0x8b, 0x07, //0x00003839 movq (%rdi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x0000383c movq %rax, $-48(%rbp) - 0x48, 0x01, 0xc6, //0x00003840 addq %rax, %rsi - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003843 movq $-1, (%rdx) - 0x49, 0x83, 0xfc, 0x40, //0x0000384a cmpq $64, %r12 - 0x0f, 0x82, 0x17, 0x04, 0x00, 0x00, //0x0000384e jb LBB13_46 - 0x45, 0x89, 0xe1, //0x00003854 movl %r12d, %r9d - 0x41, 0x83, 0xe1, 0x3f, //0x00003857 andl $63, %r9d - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000385b movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00003862 xorl %r15d, %r15d - 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x72, 0xff, 0xff, 0xff, //0x00003865 movdqa $-142(%rip), %xmm8 /* LCPI13_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x7a, 0xff, 0xff, 0xff, //0x0000386e movdqa $-134(%rip), %xmm1 /* LCPI13_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x82, 0xff, 0xff, 0xff, //0x00003876 movdqa $-126(%rip), %xmm2 /* LCPI13_2+0(%rip) */ - 0x66, 0x0f, 0x76, 0xdb, //0x0000387e pcmpeqd %xmm3, %xmm3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003882 .p2align 4, 0x90 - //0x00003890 LBB13_5 - 0xf3, 0x0f, 0x6f, 0x3e, //0x00003890 movdqu (%rsi), %xmm7 - 0xf3, 0x0f, 0x6f, 0x76, 0x10, //0x00003894 movdqu $16(%rsi), %xmm6 - 0xf3, 0x0f, 0x6f, 0x6e, 0x20, //0x00003899 movdqu $32(%rsi), %xmm5 - 0xf3, 0x0f, 0x6f, 0x66, 0x30, //0x0000389e movdqu $48(%rsi), %xmm4 - 0x66, 0x0f, 0x6f, 0xc7, //0x000038a3 movdqa %xmm7, %xmm0 - 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038a7 pcmpeqb %xmm8, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xd8, //0x000038ac pmovmskb %xmm0, %r11d - 0x66, 0x0f, 0x6f, 0xc6, //0x000038b1 movdqa %xmm6, %xmm0 - 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038b5 pcmpeqb %xmm8, %xmm0 - 0x66, 0x0f, 0xd7, 0xc8, //0x000038ba pmovmskb %xmm0, %ecx - 0x66, 0x0f, 0x6f, 0xc5, //0x000038be movdqa %xmm5, %xmm0 - 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038c2 pcmpeqb %xmm8, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xd0, //0x000038c7 pmovmskb %xmm0, %r10d - 0x66, 0x0f, 0x6f, 0xc4, //0x000038cc movdqa %xmm4, %xmm0 - 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000038d0 pcmpeqb %xmm8, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xe8, //0x000038d5 pmovmskb %xmm0, %r13d - 0x66, 0x0f, 0x6f, 0xc7, //0x000038da movdqa %xmm7, %xmm0 - 0x66, 0x0f, 0x74, 0xc1, //0x000038de pcmpeqb %xmm1, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xc0, //0x000038e2 pmovmskb %xmm0, %r8d - 0x66, 0x0f, 0x6f, 0xc6, //0x000038e7 movdqa %xmm6, %xmm0 - 0x66, 0x0f, 0x74, 0xc1, //0x000038eb pcmpeqb %xmm1, %xmm0 - 0x66, 0x0f, 0xd7, 0xc0, //0x000038ef pmovmskb %xmm0, %eax - 0x66, 0x0f, 0x6f, 0xc5, //0x000038f3 movdqa %xmm5, %xmm0 - 0x66, 0x0f, 0x74, 0xc1, //0x000038f7 pcmpeqb %xmm1, %xmm0 - 0x48, 0xc1, 0xe1, 0x10, //0x000038fb shlq $16, %rcx - 0x49, 0x09, 0xcb, //0x000038ff orq %rcx, %r11 - 0x66, 0x0f, 0xd7, 0xd8, //0x00003902 pmovmskb %xmm0, %ebx - 0x66, 0x0f, 0x6f, 0xc4, //0x00003906 movdqa %xmm4, %xmm0 - 0x66, 0x0f, 0x74, 0xc1, //0x0000390a pcmpeqb %xmm1, %xmm0 - 0x49, 0xc1, 0xe2, 0x20, //0x0000390e shlq $32, %r10 - 0x4d, 0x09, 0xd3, //0x00003912 orq %r10, %r11 - 0x66, 0x0f, 0xd7, 0xf8, //0x00003915 pmovmskb %xmm0, %edi - 0x66, 0x0f, 0x6f, 0xc2, //0x00003919 movdqa %xmm2, %xmm0 - 0x66, 0x0f, 0x64, 0xc7, //0x0000391d pcmpgtb %xmm7, %xmm0 - 0x66, 0x0f, 0x64, 0xfb, //0x00003921 pcmpgtb %xmm3, %xmm7 - 0x66, 0x0f, 0xdb, 0xf8, //0x00003925 pand %xmm0, %xmm7 - 0x48, 0xc1, 0xe0, 0x10, //0x00003929 shlq $16, %rax - 0x49, 0x09, 0xc0, //0x0000392d orq %rax, %r8 - 0x66, 0x0f, 0xd7, 0xcf, //0x00003930 pmovmskb %xmm7, %ecx - 0x66, 0x0f, 0x6f, 0xc2, //0x00003934 movdqa %xmm2, %xmm0 - 0x66, 0x0f, 0x64, 0xc6, //0x00003938 pcmpgtb %xmm6, %xmm0 - 0x66, 0x0f, 0x64, 0xf3, //0x0000393c pcmpgtb %xmm3, %xmm6 - 0x66, 0x0f, 0xdb, 0xf0, //0x00003940 pand %xmm0, %xmm6 - 0x48, 0xc1, 0xe3, 0x20, //0x00003944 shlq $32, %rbx - 0x49, 0x09, 0xd8, //0x00003948 orq %rbx, %r8 - 0x66, 0x0f, 0xd7, 0xc6, //0x0000394b pmovmskb %xmm6, %eax - 0x66, 0x0f, 0x6f, 0xc2, //0x0000394f movdqa %xmm2, %xmm0 - 0x66, 0x0f, 0x64, 0xc5, //0x00003953 pcmpgtb %xmm5, %xmm0 - 0x66, 0x0f, 0x64, 0xeb, //0x00003957 pcmpgtb %xmm3, %xmm5 - 0x66, 0x0f, 0xdb, 0xe8, //0x0000395b pand %xmm0, %xmm5 - 0x48, 0xc1, 0xe7, 0x30, //0x0000395f shlq $48, %rdi - 0x49, 0x09, 0xf8, //0x00003963 orq %rdi, %r8 - 0x66, 0x0f, 0xd7, 0xdd, //0x00003966 pmovmskb %xmm5, %ebx - 0x66, 0x0f, 0x6f, 0xc2, //0x0000396a movdqa %xmm2, %xmm0 - 0x66, 0x0f, 0x64, 0xc4, //0x0000396e pcmpgtb %xmm4, %xmm0 - 0x66, 0x0f, 0x64, 0xe3, //0x00003972 pcmpgtb %xmm3, %xmm4 - 0x66, 0x0f, 0xdb, 0xe0, //0x00003976 pand %xmm0, %xmm4 - 0x48, 0xc1, 0xe0, 0x10, //0x0000397a shlq $16, %rax - 0x48, 0x09, 0xc1, //0x0000397e orq %rax, %rcx - 0x66, 0x0f, 0xd7, 0xc4, //0x00003981 pmovmskb %xmm4, %eax - 0x49, 0xc1, 0xe5, 0x30, //0x00003985 shlq $48, %r13 - 0x48, 0xc1, 0xe3, 0x20, //0x00003989 shlq $32, %rbx - 0x49, 0x83, 0xfe, 0xff, //0x0000398d cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003991 jne LBB13_7 - 0x4d, 0x85, 0xc0, //0x00003997 testq %r8, %r8 - 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x0000399a jne LBB13_12 - //0x000039a0 LBB13_7 - 0x48, 0xc1, 0xe0, 0x30, //0x000039a0 shlq $48, %rax - 0x48, 0x09, 0xd9, //0x000039a4 orq %rbx, %rcx - 0x4d, 0x09, 0xeb, //0x000039a7 orq %r13, %r11 - 0x4c, 0x89, 0xc7, //0x000039aa movq %r8, %rdi - 0x4c, 0x09, 0xff, //0x000039ad orq %r15, %rdi - 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000039b0 jne LBB13_11 - 0x48, 0x09, 0xc1, //0x000039b6 orq %rax, %rcx - 0x4d, 0x85, 0xdb, //0x000039b9 testq %r11, %r11 - 0x0f, 0x85, 0x91, 0x00, 0x00, 0x00, //0x000039bc jne LBB13_13 - //0x000039c2 LBB13_9 - 0x48, 0x85, 0xc9, //0x000039c2 testq %rcx, %rcx - 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x000039c5 jne LBB13_19 - 0x48, 0x83, 0xc6, 0x40, //0x000039cb addq $64, %rsi - 0x49, 0x83, 0xc4, 0xc0, //0x000039cf addq $-64, %r12 - 0x49, 0x83, 0xfc, 0x3f, //0x000039d3 cmpq $63, %r12 - 0x0f, 0x87, 0xb3, 0xfe, 0xff, 0xff, //0x000039d7 ja LBB13_5 - 0xe9, 0xeb, 0x00, 0x00, 0x00, //0x000039dd jmp LBB13_21 - //0x000039e2 LBB13_11 - 0x4d, 0x89, 0xfd, //0x000039e2 movq %r15, %r13 - 0x49, 0xf7, 0xd5, //0x000039e5 notq %r13 - 0x4d, 0x21, 0xc5, //0x000039e8 andq %r8, %r13 - 0x4f, 0x8d, 0x54, 0x2d, 0x00, //0x000039eb leaq (%r13,%r13), %r10 - 0x4d, 0x09, 0xfa, //0x000039f0 orq %r15, %r10 - 0x4c, 0x89, 0xd3, //0x000039f3 movq %r10, %rbx - 0x48, 0xf7, 0xd3, //0x000039f6 notq %rbx - 0x4c, 0x21, 0xc3, //0x000039f9 andq %r8, %rbx - 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000039fc movabsq $-6148914691236517206, %rdi - 0x48, 0x21, 0xfb, //0x00003a06 andq %rdi, %rbx - 0x45, 0x31, 0xff, //0x00003a09 xorl %r15d, %r15d - 0x4c, 0x01, 0xeb, //0x00003a0c addq %r13, %rbx - 0x41, 0x0f, 0x92, 0xc7, //0x00003a0f setb %r15b - 0x48, 0x01, 0xdb, //0x00003a13 addq %rbx, %rbx - 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003a16 movabsq $6148914691236517205, %rdi - 0x48, 0x31, 0xfb, //0x00003a20 xorq %rdi, %rbx - 0x4c, 0x21, 0xd3, //0x00003a23 andq %r10, %rbx - 0x48, 0xf7, 0xd3, //0x00003a26 notq %rbx - 0x49, 0x21, 0xdb, //0x00003a29 andq %rbx, %r11 - 0x48, 0x09, 0xc1, //0x00003a2c orq %rax, %rcx - 0x4d, 0x85, 0xdb, //0x00003a2f testq %r11, %r11 - 0x0f, 0x84, 0x8a, 0xff, 0xff, 0xff, //0x00003a32 je LBB13_9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00003a38 jmp LBB13_13 - //0x00003a3d LBB13_12 - 0x48, 0x89, 0xf7, //0x00003a3d movq %rsi, %rdi - 0x48, 0x2b, 0x7d, 0xd0, //0x00003a40 subq $-48(%rbp), %rdi - 0x4d, 0x0f, 0xbc, 0xf0, //0x00003a44 bsfq %r8, %r14 - 0x49, 0x01, 0xfe, //0x00003a48 addq %rdi, %r14 - 0x4c, 0x89, 0x32, //0x00003a4b movq %r14, (%rdx) - 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00003a4e jmp LBB13_7 - //0x00003a53 LBB13_13 - 0x49, 0x0f, 0xbc, 0xc3, //0x00003a53 bsfq %r11, %rax - 0x48, 0x85, 0xc9, //0x00003a57 testq %rcx, %rcx - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00003a5a je LBB13_17 - 0x48, 0x0f, 0xbc, 0xc9, //0x00003a60 bsfq %rcx, %rcx - 0x48, 0x2b, 0x75, 0xd0, //0x00003a64 subq $-48(%rbp), %rsi - 0x48, 0x39, 0xc1, //0x00003a68 cmpq %rax, %rcx - 0x0f, 0x82, 0x26, 0x00, 0x00, 0x00, //0x00003a6b jb LBB13_18 - //0x00003a71 LBB13_15 - 0x48, 0x8d, 0x44, 0x06, 0x01, //0x00003a71 leaq $1(%rsi,%rax), %rax - //0x00003a76 LBB13_16 - 0x48, 0x83, 0xc4, 0x08, //0x00003a76 addq $8, %rsp - 0x5b, //0x00003a7a popq %rbx - 0x41, 0x5c, //0x00003a7b popq %r12 - 0x41, 0x5d, //0x00003a7d popq %r13 - 0x41, 0x5e, //0x00003a7f popq %r14 - 0x41, 0x5f, //0x00003a81 popq %r15 - 0x5d, //0x00003a83 popq %rbp - 0xc3, //0x00003a84 retq - //0x00003a85 LBB13_17 - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003a85 movl $64, %ecx - 0x48, 0x2b, 0x75, 0xd0, //0x00003a8a subq $-48(%rbp), %rsi - 0x48, 0x39, 0xc1, //0x00003a8e cmpq %rax, %rcx - 0x0f, 0x83, 0xda, 0xff, 0xff, 0xff, //0x00003a91 jae LBB13_15 - //0x00003a97 LBB13_18 - 0x48, 0x01, 0xf1, //0x00003a97 addq %rsi, %rcx - 0x48, 0x89, 0x0a, //0x00003a9a movq %rcx, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003a9d movq $-2, %rax - 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003aa4 jmp LBB13_16 - //0x00003aa9 LBB13_19 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003aa9 movq $-2, %rax - 0x49, 0x83, 0xfe, 0xff, //0x00003ab0 cmpq $-1, %r14 - 0x0f, 0x85, 0xbc, 0xff, 0xff, 0xff, //0x00003ab4 jne LBB13_16 - 0x48, 0x0f, 0xbc, 0xc9, //0x00003aba bsfq %rcx, %rcx - 0x48, 0x2b, 0x75, 0xd0, //0x00003abe subq $-48(%rbp), %rsi - 0x48, 0x01, 0xce, //0x00003ac2 addq %rcx, %rsi - 0x48, 0x89, 0x32, //0x00003ac5 movq %rsi, (%rdx) - 0xe9, 0xa9, 0xff, 0xff, 0xff, //0x00003ac8 jmp LBB13_16 - //0x00003acd LBB13_21 - 0x4d, 0x89, 0xcc, //0x00003acd movq %r9, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x00003ad0 cmpq $32, %r12 - 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003ad4 jb LBB13_34 - //0x00003ada LBB13_22 - 0xf3, 0x0f, 0x6f, 0x06, //0x00003ada movdqu (%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00003ade movdqu $16(%rsi), %xmm1 - 0x66, 0x0f, 0x6f, 0x15, 0xf5, 0xfc, 0xff, 0xff, //0x00003ae3 movdqa $-779(%rip), %xmm2 /* LCPI13_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00003aeb movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0x74, 0xda, //0x00003aef pcmpeqb %xmm2, %xmm3 - 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x00003af3 pmovmskb %xmm3, %r8d - 0x66, 0x0f, 0x74, 0xd1, //0x00003af8 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00003afc pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0x15, 0xe8, 0xfc, 0xff, 0xff, //0x00003b00 movdqa $-792(%rip), %xmm2 /* LCPI13_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00003b08 movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0x74, 0xda, //0x00003b0c pcmpeqb %xmm2, %xmm3 - 0x66, 0x0f, 0xd7, 0xcb, //0x00003b10 pmovmskb %xmm3, %ecx - 0x66, 0x0f, 0x74, 0xd1, //0x00003b14 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xc2, //0x00003b18 pmovmskb %xmm2, %eax - 0x66, 0x0f, 0x6f, 0x15, 0xdc, 0xfc, 0xff, 0xff, //0x00003b1c movdqa $-804(%rip), %xmm2 /* LCPI13_2+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xda, //0x00003b24 movdqa %xmm2, %xmm3 - 0x66, 0x0f, 0x64, 0xd8, //0x00003b28 pcmpgtb %xmm0, %xmm3 - 0x66, 0x0f, 0x76, 0xe4, //0x00003b2c pcmpeqd %xmm4, %xmm4 - 0x66, 0x0f, 0x64, 0xc4, //0x00003b30 pcmpgtb %xmm4, %xmm0 - 0x66, 0x0f, 0xdb, 0xc3, //0x00003b34 pand %xmm3, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00003b38 pmovmskb %xmm0, %r9d - 0x66, 0x0f, 0x64, 0xd1, //0x00003b3d pcmpgtb %xmm1, %xmm2 - 0x66, 0x0f, 0x64, 0xcc, //0x00003b41 pcmpgtb %xmm4, %xmm1 - 0x66, 0x0f, 0xdb, 0xca, //0x00003b45 pand %xmm2, %xmm1 - 0x66, 0x0f, 0xd7, 0xf9, //0x00003b49 pmovmskb %xmm1, %edi - 0x48, 0xc1, 0xe3, 0x10, //0x00003b4d shlq $16, %rbx - 0x48, 0xc1, 0xe0, 0x10, //0x00003b51 shlq $16, %rax - 0x48, 0x09, 0xc1, //0x00003b55 orq %rax, %rcx - 0x49, 0x83, 0xfe, 0xff, //0x00003b58 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00003b5c jne LBB13_24 - 0x48, 0x85, 0xc9, //0x00003b62 testq %rcx, %rcx - 0x0f, 0x85, 0x64, 0x01, 0x00, 0x00, //0x00003b65 jne LBB13_49 - //0x00003b6b LBB13_24 - 0x48, 0xc1, 0xe7, 0x10, //0x00003b6b shlq $16, %rdi - 0x4c, 0x09, 0xc3, //0x00003b6f orq %r8, %rbx - 0x48, 0x89, 0xc8, //0x00003b72 movq %rcx, %rax - 0x4c, 0x09, 0xf8, //0x00003b75 orq %r15, %rax - 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x00003b78 jne LBB13_47 - //0x00003b7e LBB13_25 - 0x4c, 0x09, 0xcf, //0x00003b7e orq %r9, %rdi - 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003b81 movl $64, %eax - 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003b86 movl $64, %ecx - 0x48, 0x85, 0xdb, //0x00003b8b testq %rbx, %rbx - 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003b8e je LBB13_27 - 0x48, 0x0f, 0xbc, 0xcb, //0x00003b94 bsfq %rbx, %rcx - //0x00003b98 LBB13_27 - 0x4c, 0x0f, 0xbc, 0xcf, //0x00003b98 bsfq %rdi, %r9 - 0x48, 0x85, 0xff, //0x00003b9c testq %rdi, %rdi - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00003b9f je LBB13_29 - 0x4c, 0x89, 0xc8, //0x00003ba5 movq %r9, %rax - //0x00003ba8 LBB13_29 - 0x48, 0x85, 0xdb, //0x00003ba8 testq %rbx, %rbx - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003bab je LBB13_32 - 0x48, 0x2b, 0x75, 0xd0, //0x00003bb1 subq $-48(%rbp), %rsi - 0x48, 0x39, 0xc8, //0x00003bb5 cmpq %rcx, %rax - 0x0f, 0x82, 0xff, 0x00, 0x00, 0x00, //0x00003bb8 jb LBB13_48 - 0x48, 0x8d, 0x44, 0x0e, 0x01, //0x00003bbe leaq $1(%rsi,%rcx), %rax - 0xe9, 0xae, 0xfe, 0xff, 0xff, //0x00003bc3 jmp LBB13_16 - //0x00003bc8 LBB13_32 - 0x48, 0x85, 0xff, //0x00003bc8 testq %rdi, %rdi - 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00003bcb jne LBB13_50 - 0x48, 0x83, 0xc6, 0x20, //0x00003bd1 addq $32, %rsi - 0x49, 0x83, 0xc4, 0xe0, //0x00003bd5 addq $-32, %r12 - //0x00003bd9 LBB13_34 - 0x4d, 0x85, 0xff, //0x00003bd9 testq %r15, %r15 - 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x00003bdc jne LBB13_51 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003be2 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x00003be9 testq %r12, %r12 - 0x0f, 0x84, 0x84, 0xfe, 0xff, 0xff, //0x00003bec je LBB13_16 - //0x00003bf2 LBB13_36 - 0x0f, 0xb6, 0x0e, //0x00003bf2 movzbl (%rsi), %ecx - 0x80, 0xf9, 0x22, //0x00003bf5 cmpb $34, %cl - 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00003bf8 je LBB13_44 - 0x80, 0xf9, 0x5c, //0x00003bfe cmpb $92, %cl - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003c01 je LBB13_41 - 0x80, 0xf9, 0x1f, //0x00003c07 cmpb $31, %cl - 0x0f, 0x86, 0x28, 0x01, 0x00, 0x00, //0x00003c0a jbe LBB13_55 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003c10 movq $-1, %rcx - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00003c17 movl $1, %edi - //0x00003c1c LBB13_40 - 0x48, 0x01, 0xfe, //0x00003c1c addq %rdi, %rsi - 0x49, 0x01, 0xcc, //0x00003c1f addq %rcx, %r12 - 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003c22 jne LBB13_36 - 0xe9, 0x49, 0xfe, 0xff, 0xff, //0x00003c28 jmp LBB13_16 - //0x00003c2d LBB13_41 - 0x49, 0x83, 0xfc, 0x01, //0x00003c2d cmpq $1, %r12 - 0x0f, 0x84, 0x3f, 0xfe, 0xff, 0xff, //0x00003c31 je LBB13_16 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003c37 movq $-2, %rcx - 0xbf, 0x02, 0x00, 0x00, 0x00, //0x00003c3e movl $2, %edi - 0x49, 0x83, 0xfe, 0xff, //0x00003c43 cmpq $-1, %r14 - 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00003c47 jne LBB13_40 - 0x49, 0x89, 0xf6, //0x00003c4d movq %rsi, %r14 - 0x4c, 0x2b, 0x75, 0xd0, //0x00003c50 subq $-48(%rbp), %r14 - 0x4c, 0x89, 0x32, //0x00003c54 movq %r14, (%rdx) - 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x00003c57 jmp LBB13_40 - //0x00003c5c LBB13_44 - 0x48, 0x2b, 0x75, 0xd0, //0x00003c5c subq $-48(%rbp), %rsi - 0x48, 0xff, 0xc6, //0x00003c60 incq %rsi - 0x48, 0x89, 0xf0, //0x00003c63 movq %rsi, %rax - 0xe9, 0x0b, 0xfe, 0xff, 0xff, //0x00003c66 jmp LBB13_16 - //0x00003c6b LBB13_46 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00003c6b movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00003c72 xorl %r15d, %r15d - 0x49, 0x83, 0xfc, 0x20, //0x00003c75 cmpq $32, %r12 - 0x0f, 0x83, 0x5b, 0xfe, 0xff, 0xff, //0x00003c79 jae LBB13_22 - 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003c7f jmp LBB13_34 - //0x00003c84 LBB13_47 - 0x45, 0x89, 0xfa, //0x00003c84 movl %r15d, %r10d - 0x41, 0xf7, 0xd2, //0x00003c87 notl %r10d - 0x41, 0x21, 0xca, //0x00003c8a andl %ecx, %r10d - 0x47, 0x8d, 0x04, 0x12, //0x00003c8d leal (%r10,%r10), %r8d - 0x45, 0x09, 0xf8, //0x00003c91 orl %r15d, %r8d - 0x44, 0x89, 0xc0, //0x00003c94 movl %r8d, %eax - 0xf7, 0xd0, //0x00003c97 notl %eax - 0x21, 0xc8, //0x00003c99 andl %ecx, %eax - 0x25, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c9b andl $-1431655766, %eax - 0x45, 0x31, 0xff, //0x00003ca0 xorl %r15d, %r15d - 0x44, 0x01, 0xd0, //0x00003ca3 addl %r10d, %eax - 0x41, 0x0f, 0x92, 0xc7, //0x00003ca6 setb %r15b - 0x01, 0xc0, //0x00003caa addl %eax, %eax - 0x35, 0x55, 0x55, 0x55, 0x55, //0x00003cac xorl $1431655765, %eax - 0x44, 0x21, 0xc0, //0x00003cb1 andl %r8d, %eax - 0xf7, 0xd0, //0x00003cb4 notl %eax - 0x21, 0xc3, //0x00003cb6 andl %eax, %ebx - 0xe9, 0xc1, 0xfe, 0xff, 0xff, //0x00003cb8 jmp LBB13_25 - //0x00003cbd LBB13_48 - 0x48, 0x01, 0xf0, //0x00003cbd addq %rsi, %rax - 0x48, 0x89, 0x02, //0x00003cc0 movq %rax, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003cc3 movq $-2, %rax - 0xe9, 0xa7, 0xfd, 0xff, 0xff, //0x00003cca jmp LBB13_16 - //0x00003ccf LBB13_49 - 0x48, 0x89, 0xf0, //0x00003ccf movq %rsi, %rax - 0x48, 0x2b, 0x45, 0xd0, //0x00003cd2 subq $-48(%rbp), %rax - 0x4c, 0x0f, 0xbc, 0xf1, //0x00003cd6 bsfq %rcx, %r14 - 0x49, 0x01, 0xc6, //0x00003cda addq %rax, %r14 - 0x4c, 0x89, 0x32, //0x00003cdd movq %r14, (%rdx) - 0xe9, 0x86, 0xfe, 0xff, 0xff, //0x00003ce0 jmp LBB13_24 - //0x00003ce5 LBB13_50 - 0x48, 0x2b, 0x75, 0xd0, //0x00003ce5 subq $-48(%rbp), %rsi - 0x4c, 0x01, 0xce, //0x00003ce9 addq %r9, %rsi - 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x00003cec jmp LBB13_56 - //0x00003cf1 LBB13_51 - 0x4d, 0x85, 0xe4, //0x00003cf1 testq %r12, %r12 - 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00003cf4 je LBB13_45 - 0x49, 0x83, 0xfe, 0xff, //0x00003cfa cmpq $-1, %r14 - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003cfe jne LBB13_54 - 0x4c, 0x8b, 0x75, 0xd0, //0x00003d04 movq $-48(%rbp), %r14 - 0x49, 0xf7, 0xd6, //0x00003d08 notq %r14 - 0x49, 0x01, 0xf6, //0x00003d0b addq %rsi, %r14 - 0x4c, 0x89, 0x32, //0x00003d0e movq %r14, (%rdx) - //0x00003d11 LBB13_54 - 0x48, 0xff, 0xc6, //0x00003d11 incq %rsi - 0x49, 0xff, 0xcc, //0x00003d14 decq %r12 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d17 movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x00003d1e testq %r12, %r12 - 0x0f, 0x85, 0xcb, 0xfe, 0xff, 0xff, //0x00003d21 jne LBB13_36 - 0xe9, 0x4a, 0xfd, 0xff, 0xff, //0x00003d27 jmp LBB13_16 - //0x00003d2c LBB13_45 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003d2c movq $-1, %rax - 0xe9, 0x3e, 0xfd, 0xff, 0xff, //0x00003d33 jmp LBB13_16 - //0x00003d38 LBB13_55 - 0x48, 0x2b, 0x75, 0xd0, //0x00003d38 subq $-48(%rbp), %rsi - //0x00003d3c LBB13_56 - 0x48, 0x89, 0x32, //0x00003d3c movq %rsi, (%rdx) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d3f movq $-2, %rax - 0xe9, 0x2b, 0xfd, 0xff, 0xff, //0x00003d46 jmp LBB13_16 - 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003d4b .p2align 4, 0x00 - //0x00003d50 LCPI14_0 - 0x00, 0x00, 0x30, 0x43, //0x00003d50 .long 1127219200 - 0x00, 0x00, 0x30, 0x45, //0x00003d54 .long 1160773632 - 0x00, 0x00, 0x00, 0x00, //0x00003d58 .long 0 - 0x00, 0x00, 0x00, 0x00, //0x00003d5c .long 0 - //0x00003d60 LCPI14_1 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003d60 .quad 4841369599423283200 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003d68 .quad 4985484787499139072 - //0x00003d70 .p2align 3, 0x00 - //0x00003d70 LCPI14_2 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003d70 .quad 4831355200913801216 - //0x00003d78 LCPI14_3 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003d78 .quad -4392016835940974592 - //0x00003d80 .p2align 4, 0x90 - //0x00003d80 _vnumber - 0x55, //0x00003d80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00003d81 movq %rsp, %rbp - 0x41, 0x57, //0x00003d84 pushq %r15 - 0x41, 0x56, //0x00003d86 pushq %r14 - 0x41, 0x55, //0x00003d88 pushq %r13 - 0x41, 0x54, //0x00003d8a pushq %r12 - 0x53, //0x00003d8c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x00003d8d subq $56, %rsp - 0x48, 0x89, 0xd3, //0x00003d91 movq %rdx, %rbx - 0x49, 0x89, 0xf6, //0x00003d94 movq %rsi, %r14 - 0x48, 0xc7, 0x45, 0xd0, 0x00, 0x00, 0x00, 0x00, //0x00003d97 movq $0, $-48(%rbp) - 0x48, 0x8b, 0x06, //0x00003d9f movq (%rsi), %rax - 0x4c, 0x8b, 0x3f, //0x00003da2 movq (%rdi), %r15 - 0x4c, 0x8b, 0x6f, 0x08, //0x00003da5 movq $8(%rdi), %r13 - 0x4c, 0x8b, 0x52, 0x20, //0x00003da9 movq $32(%rdx), %r10 - 0x4c, 0x8b, 0x5a, 0x28, //0x00003dad movq $40(%rdx), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00003db1 movq $9, (%rdx) - 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00003db8 movq $0, $8(%rdx) - 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00003dc0 movq $0, $16(%rdx) - 0x48, 0x8b, 0x0e, //0x00003dc8 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x00003dcb movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xe8, //0x00003dcf cmpq %r13, %rax - 0x0f, 0x83, 0xc1, 0x02, 0x00, 0x00, //0x00003dd2 jae LBB14_52 - 0x41, 0x8a, 0x3c, 0x07, //0x00003dd8 movb (%r15,%rax), %dil - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00003ddc movl $1, %r9d - 0x40, 0x80, 0xff, 0x2d, //0x00003de2 cmpb $45, %dil - 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00003de6 jne LBB14_4 - 0x48, 0xff, 0xc0, //0x00003dec incq %rax - 0x4c, 0x39, 0xe8, //0x00003def cmpq %r13, %rax - 0x0f, 0x83, 0xa1, 0x02, 0x00, 0x00, //0x00003df2 jae LBB14_52 - 0x41, 0x8a, 0x3c, 0x07, //0x00003df8 movb (%r15,%rax), %dil - 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00003dfc movl $-1, %r9d - //0x00003e02 LBB14_4 - 0x8d, 0x4f, 0xd0, //0x00003e02 leal $-48(%rdi), %ecx - 0x80, 0xf9, 0x0a, //0x00003e05 cmpb $10, %cl - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00003e08 jb LBB14_6 - //0x00003e0e LBB14_5 - 0x49, 0x89, 0x06, //0x00003e0e movq %rax, (%r14) - 0x48, 0xc7, 0x03, 0xfe, 0xff, 0xff, 0xff, //0x00003e11 movq $-2, (%rbx) - 0xe9, 0x86, 0x02, 0x00, 0x00, //0x00003e18 jmp LBB14_53 - //0x00003e1d LBB14_6 - 0x40, 0x80, 0xff, 0x30, //0x00003e1d cmpb $48, %dil - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00003e21 jne LBB14_10 - 0x48, 0x8d, 0x70, 0x01, //0x00003e27 leaq $1(%rax), %rsi - 0x4c, 0x39, 0xe8, //0x00003e2b cmpq %r13, %rax - 0x0f, 0x83, 0x9d, 0x00, 0x00, 0x00, //0x00003e2e jae LBB14_19 - 0x41, 0x8a, 0x14, 0x37, //0x00003e34 movb (%r15,%rsi), %dl - 0x80, 0xc2, 0xd2, //0x00003e38 addb $-46, %dl - 0x80, 0xfa, 0x37, //0x00003e3b cmpb $55, %dl - 0x0f, 0x87, 0x8d, 0x00, 0x00, 0x00, //0x00003e3e ja LBB14_19 - 0x44, 0x0f, 0xb6, 0xc2, //0x00003e44 movzbl %dl, %r8d - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00003e48 movabsq $36028797027352577, %rdx - 0x4c, 0x0f, 0xa3, 0xc2, //0x00003e52 btq %r8, %rdx - 0x0f, 0x83, 0x75, 0x00, 0x00, 0x00, //0x00003e56 jae LBB14_19 - //0x00003e5c LBB14_10 - 0x4c, 0x39, 0xe8, //0x00003e5c cmpq %r13, %rax - 0x0f, 0x83, 0x60, 0x00, 0x00, 0x00, //0x00003e5f jae LBB14_18 - 0x80, 0xf9, 0x09, //0x00003e65 cmpb $9, %cl - 0x0f, 0x87, 0x6b, 0x00, 0x00, 0x00, //0x00003e68 ja LBB14_20 - 0x4d, 0x8d, 0x45, 0xff, //0x00003e6e leaq $-1(%r13), %r8 - 0x31, 0xc9, //0x00003e72 xorl %ecx, %ecx - 0x31, 0xf6, //0x00003e74 xorl %esi, %esi - 0x45, 0x31, 0xe4, //0x00003e76 xorl %r12d, %r12d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e79 .p2align 4, 0x90 - //0x00003e80 LBB14_13 - 0x83, 0xfe, 0x12, //0x00003e80 cmpl $18, %esi - 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00003e83 jg LBB14_15 - 0x48, 0x0f, 0xbe, 0xff, //0x00003e89 movsbq %dil, %rdi - 0x4b, 0x8d, 0x14, 0xa4, //0x00003e8d leaq (%r12,%r12,4), %rdx - 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003e91 leaq $-48(%rdi,%rdx,2), %r12 - 0xff, 0xc6, //0x00003e96 incl %esi - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00003e98 jmp LBB14_16 - 0x90, 0x90, 0x90, //0x00003e9d .p2align 4, 0x90 - //0x00003ea0 LBB14_15 - 0xff, 0xc1, //0x00003ea0 incl %ecx - //0x00003ea2 LBB14_16 - 0x49, 0x39, 0xc0, //0x00003ea2 cmpq %rax, %r8 - 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x00003ea5 je LBB14_24 - 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00003eab movzbl $1(%r15,%rax), %edi - 0x48, 0xff, 0xc0, //0x00003eb1 incq %rax - 0x8d, 0x57, 0xd0, //0x00003eb4 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x0a, //0x00003eb7 cmpb $10, %dl - 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x00003eba jb LBB14_13 - 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00003ec0 jmp LBB14_21 - //0x00003ec5 LBB14_18 - 0x31, 0xc9, //0x00003ec5 xorl %ecx, %ecx - 0x31, 0xf6, //0x00003ec7 xorl %esi, %esi - 0x45, 0x31, 0xe4, //0x00003ec9 xorl %r12d, %r12d - 0xe9, 0x5a, 0x00, 0x00, 0x00, //0x00003ecc jmp LBB14_25 - //0x00003ed1 LBB14_19 - 0x49, 0x89, 0x36, //0x00003ed1 movq %rsi, (%r14) - 0xe9, 0xca, 0x01, 0x00, 0x00, //0x00003ed4 jmp LBB14_53 - //0x00003ed9 LBB14_20 - 0x45, 0x31, 0xe4, //0x00003ed9 xorl %r12d, %r12d - 0x31, 0xf6, //0x00003edc xorl %esi, %esi - 0x31, 0xc9, //0x00003ede xorl %ecx, %ecx - //0x00003ee0 LBB14_21 - 0x31, 0xd2, //0x00003ee0 xorl %edx, %edx - 0x85, 0xc9, //0x00003ee2 testl %ecx, %ecx - 0x0f, 0x9f, 0xc2, //0x00003ee4 setg %dl - 0x89, 0x55, 0xcc, //0x00003ee7 movl %edx, $-52(%rbp) - 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003eea movl $9, %r8d - 0x40, 0x80, 0xff, 0x2e, //0x00003ef0 cmpb $46, %dil - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00003ef4 jne LBB14_26 - 0x48, 0xff, 0xc0, //0x00003efa incq %rax - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00003efd movq $8, (%rbx) - 0x4c, 0x39, 0xe8, //0x00003f04 cmpq %r13, %rax - 0x0f, 0x83, 0x8c, 0x01, 0x00, 0x00, //0x00003f07 jae LBB14_52 - 0x41, 0x8a, 0x14, 0x07, //0x00003f0d movb (%r15,%rax), %dl - 0x80, 0xc2, 0xd0, //0x00003f11 addb $-48, %dl - 0x41, 0xb8, 0x08, 0x00, 0x00, 0x00, //0x00003f14 movl $8, %r8d - 0x80, 0xfa, 0x0a, //0x00003f1a cmpb $10, %dl - 0x0f, 0x83, 0xeb, 0xfe, 0xff, 0xff, //0x00003f1d jae LBB14_5 - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00003f23 jmp LBB14_26 - //0x00003f28 LBB14_24 - 0x4c, 0x89, 0xe8, //0x00003f28 movq %r13, %rax - //0x00003f2b LBB14_25 - 0x31, 0xd2, //0x00003f2b xorl %edx, %edx - 0x85, 0xc9, //0x00003f2d testl %ecx, %ecx - 0x0f, 0x9f, 0xc2, //0x00003f2f setg %dl - 0x89, 0x55, 0xcc, //0x00003f32 movl %edx, $-52(%rbp) - 0x41, 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00003f35 movl $9, %r8d - //0x00003f3b LBB14_26 - 0x85, 0xc9, //0x00003f3b testl %ecx, %ecx - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003f3d jne LBB14_35 - 0x4d, 0x85, 0xe4, //0x00003f43 testq %r12, %r12 - 0x0f, 0x85, 0x46, 0x00, 0x00, 0x00, //0x00003f46 jne LBB14_35 - 0x4c, 0x39, 0xe8, //0x00003f4c cmpq %r13, %rax - 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00003f4f jae LBB14_33 - 0x89, 0xc7, //0x00003f55 movl %eax, %edi - 0x44, 0x29, 0xef, //0x00003f57 subl %r13d, %edi - 0x31, 0xf6, //0x00003f5a xorl %esi, %esi - 0x31, 0xc9, //0x00003f5c xorl %ecx, %ecx - 0x90, 0x90, //0x00003f5e .p2align 4, 0x90 - //0x00003f60 LBB14_30 - 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00003f60 cmpb $48, (%r15,%rax) - 0x0f, 0x85, 0x24, 0x00, 0x00, 0x00, //0x00003f65 jne LBB14_34 - 0x48, 0xff, 0xc0, //0x00003f6b incq %rax - 0xff, 0xc9, //0x00003f6e decl %ecx - 0x49, 0x39, 0xc5, //0x00003f70 cmpq %rax, %r13 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00003f73 jne LBB14_30 - 0x45, 0x31, 0xe4, //0x00003f79 xorl %r12d, %r12d - 0x41, 0x83, 0xf8, 0x09, //0x00003f7c cmpl $9, %r8d - 0x0f, 0x84, 0x3b, 0x01, 0x00, 0x00, //0x00003f80 je LBB14_55 - 0xe9, 0x6a, 0x01, 0x00, 0x00, //0x00003f86 jmp LBB14_59 - //0x00003f8b LBB14_33 - 0x31, 0xc9, //0x00003f8b xorl %ecx, %ecx - 0x31, 0xf6, //0x00003f8d xorl %esi, %esi - //0x00003f8f LBB14_34 - 0x45, 0x31, 0xe4, //0x00003f8f xorl %r12d, %r12d - //0x00003f92 LBB14_35 - 0x4c, 0x39, 0xe8, //0x00003f92 cmpq %r13, %rax - 0x0f, 0x83, 0x4b, 0x00, 0x00, 0x00, //0x00003f95 jae LBB14_40 - 0x83, 0xfe, 0x12, //0x00003f9b cmpl $18, %esi - 0x0f, 0x8f, 0x42, 0x00, 0x00, 0x00, //0x00003f9e jg LBB14_40 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fa4 .p2align 4, 0x90 - //0x00003fb0 LBB14_37 - 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00003fb0 movzbl (%r15,%rax), %edi - 0x8d, 0x57, 0xd0, //0x00003fb5 leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x00003fb8 cmpb $9, %dl - 0x0f, 0x87, 0x25, 0x00, 0x00, 0x00, //0x00003fbb ja LBB14_40 - 0x4b, 0x8d, 0x14, 0xa4, //0x00003fc1 leaq (%r12,%r12,4), %rdx - 0x4c, 0x8d, 0x64, 0x57, 0xd0, //0x00003fc5 leaq $-48(%rdi,%rdx,2), %r12 - 0xff, 0xc9, //0x00003fca decl %ecx - 0x48, 0xff, 0xc0, //0x00003fcc incq %rax - 0x4c, 0x39, 0xe8, //0x00003fcf cmpq %r13, %rax - 0x0f, 0x83, 0x0e, 0x00, 0x00, 0x00, //0x00003fd2 jae LBB14_40 - 0x8d, 0x56, 0x01, //0x00003fd8 leal $1(%rsi), %edx - 0x83, 0xfe, 0x12, //0x00003fdb cmpl $18, %esi - 0x89, 0xd6, //0x00003fde movl %edx, %esi - 0x0f, 0x8c, 0xca, 0xff, 0xff, 0xff, //0x00003fe0 jl LBB14_37 - //0x00003fe6 LBB14_40 - 0x4c, 0x39, 0xe8, //0x00003fe6 cmpq %r13, %rax - 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00003fe9 jae LBB14_54 - 0x41, 0x8a, 0x34, 0x07, //0x00003fef movb (%r15,%rax), %sil - 0x8d, 0x56, 0xd0, //0x00003ff3 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x09, //0x00003ff6 cmpb $9, %dl - 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00003ff9 ja LBB14_46 - 0x49, 0x8d, 0x7d, 0xff, //0x00003fff leaq $-1(%r13), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004003 .p2align 4, 0x90 - //0x00004010 LBB14_43 - 0x48, 0x39, 0xc7, //0x00004010 cmpq %rax, %rdi - 0x0f, 0x84, 0x42, 0x02, 0x00, 0x00, //0x00004013 je LBB14_76 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004019 movzbl $1(%r15,%rax), %esi - 0x48, 0xff, 0xc0, //0x0000401f incq %rax - 0x8d, 0x56, 0xd0, //0x00004022 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x09, //0x00004025 cmpb $9, %dl - 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00004028 jbe LBB14_43 - 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x0000402e movl $1, $-52(%rbp) - //0x00004035 LBB14_46 - 0x40, 0x80, 0xce, 0x20, //0x00004035 orb $32, %sil - 0x40, 0x80, 0xfe, 0x65, //0x00004039 cmpb $101, %sil - 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x0000403d jne LBB14_54 - 0x48, 0x8d, 0x78, 0x01, //0x00004043 leaq $1(%rax), %rdi - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x00004047 movq $8, (%rbx) - 0x4c, 0x39, 0xef, //0x0000404e cmpq %r13, %rdi - 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00004051 jae LBB14_52 - 0x41, 0x8a, 0x34, 0x3f, //0x00004057 movb (%r15,%rdi), %sil - 0x40, 0x80, 0xfe, 0x2d, //0x0000405b cmpb $45, %sil - 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000405f je LBB14_50 - 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004065 movl $1, %r8d - 0x40, 0x80, 0xfe, 0x2b, //0x0000406b cmpb $43, %sil - 0x0f, 0x85, 0x98, 0x02, 0x00, 0x00, //0x0000406f jne LBB14_85 - //0x00004075 LBB14_50 - 0x48, 0x83, 0xc0, 0x02, //0x00004075 addq $2, %rax - 0x4c, 0x39, 0xe8, //0x00004079 cmpq %r13, %rax - 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x0000407c jae LBB14_52 - 0x31, 0xd2, //0x00004082 xorl %edx, %edx - 0x40, 0x80, 0xfe, 0x2b, //0x00004084 cmpb $43, %sil - 0x0f, 0x94, 0xc2, //0x00004088 sete %dl - 0x44, 0x8d, 0x44, 0x12, 0xff, //0x0000408b leal $-1(%rdx,%rdx), %r8d - 0x41, 0x8a, 0x34, 0x07, //0x00004090 movb (%r15,%rax), %sil - 0xe9, 0x77, 0x02, 0x00, 0x00, //0x00004094 jmp LBB14_86 - //0x00004099 LBB14_52 - 0x4d, 0x89, 0x2e, //0x00004099 movq %r13, (%r14) - 0x48, 0xc7, 0x03, 0xff, 0xff, 0xff, 0xff, //0x0000409c movq $-1, (%rbx) - //0x000040a3 LBB14_53 - 0x48, 0x83, 0xc4, 0x38, //0x000040a3 addq $56, %rsp - 0x5b, //0x000040a7 popq %rbx - 0x41, 0x5c, //0x000040a8 popq %r12 - 0x41, 0x5d, //0x000040aa popq %r13 - 0x41, 0x5e, //0x000040ac popq %r14 - 0x41, 0x5f, //0x000040ae popq %r15 - 0x5d, //0x000040b0 popq %rbp - 0xc3, //0x000040b1 retq - //0x000040b2 LBB14_54 - 0x89, 0xcf, //0x000040b2 movl %ecx, %edi - 0x49, 0x89, 0xc5, //0x000040b4 movq %rax, %r13 - 0x41, 0x83, 0xf8, 0x09, //0x000040b7 cmpl $9, %r8d - 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000040bb jne LBB14_59 - //0x000040c1 LBB14_55 - 0x85, 0xff, //0x000040c1 testl %edi, %edi - 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x000040c3 jne LBB14_58 - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000040c9 movabsq $-9223372036854775808, %rax - 0x49, 0x63, 0xc9, //0x000040d3 movslq %r9d, %rcx - 0x4d, 0x85, 0xe4, //0x000040d6 testq %r12, %r12 - 0x0f, 0x89, 0xbc, 0x01, 0x00, 0x00, //0x000040d9 jns LBB14_80 - 0x4c, 0x89, 0xe2, //0x000040df movq %r12, %rdx - 0x48, 0x21, 0xca, //0x000040e2 andq %rcx, %rdx - 0x48, 0x39, 0xc2, //0x000040e5 cmpq %rax, %rdx - 0x0f, 0x84, 0xad, 0x01, 0x00, 0x00, //0x000040e8 je LBB14_80 - //0x000040ee LBB14_58 - 0x48, 0xc7, 0x03, 0x08, 0x00, 0x00, 0x00, //0x000040ee movq $8, (%rbx) - //0x000040f5 LBB14_59 - 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x000040f5 movq $0, $-64(%rbp) - 0x66, 0x49, 0x0f, 0x6e, 0xcc, //0x000040fd movq %r12, %xmm1 - 0x66, 0x0f, 0x62, 0x0d, 0x46, 0xfc, 0xff, 0xff, //0x00004102 punpckldq $-954(%rip), %xmm1 /* LCPI14_0+0(%rip) */ - 0x66, 0x0f, 0x5c, 0x0d, 0x4e, 0xfc, 0xff, 0xff, //0x0000410a subpd $-946(%rip), %xmm1 /* LCPI14_1+0(%rip) */ - 0x66, 0x0f, 0x28, 0xc1, //0x00004112 movapd %xmm1, %xmm0 - 0x66, 0x0f, 0x15, 0xc1, //0x00004116 unpckhpd %xmm1, %xmm0 - 0xf2, 0x0f, 0x58, 0xc1, //0x0000411a addsd %xmm1, %xmm0 - 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x0000411e movsd %xmm0, $-48(%rbp) - 0x4c, 0x89, 0xe0, //0x00004123 movq %r12, %rax - 0x48, 0xc1, 0xe8, 0x34, //0x00004126 shrq $52, %rax - 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x0000412a je LBB14_71 - //0x00004130 LBB14_60 - 0x4c, 0x89, 0x5d, 0xb0, //0x00004130 movq %r11, $-80(%rbp) - 0x4c, 0x89, 0x55, 0xa8, //0x00004134 movq %r10, $-88(%rbp) - 0x48, 0x8d, 0x4d, 0xd0, //0x00004138 leaq $-48(%rbp), %rcx - 0x48, 0x89, 0xfe, //0x0000413c movq %rdi, %rsi - 0x4c, 0x89, 0xe7, //0x0000413f movq %r12, %rdi - 0x48, 0x89, 0x75, 0xb8, //0x00004142 movq %rsi, $-72(%rbp) - 0x44, 0x89, 0xca, //0x00004146 movl %r9d, %edx - 0x44, 0x89, 0x4d, 0xc8, //0x00004149 movl %r9d, $-56(%rbp) - 0xe8, 0x7e, 0xe6, 0xff, 0xff, //0x0000414d callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x00004152 testb %al, %al - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00004154 je LBB14_64 - 0x48, 0x8b, 0x75, 0xb8, //0x0000415a movq $-72(%rbp), %rsi - 0x8b, 0x55, 0xc8, //0x0000415e movl $-56(%rbp), %edx - 0x83, 0x7d, 0xcc, 0x00, //0x00004161 cmpl $0, $-52(%rbp) - 0x0f, 0x84, 0x27, 0x01, 0x00, 0x00, //0x00004165 je LBB14_79 - 0x49, 0xff, 0xc4, //0x0000416b incq %r12 - 0x48, 0x8d, 0x4d, 0xc0, //0x0000416e leaq $-64(%rbp), %rcx - 0x4c, 0x89, 0xe7, //0x00004172 movq %r12, %rdi - 0xe8, 0x56, 0xe6, 0xff, 0xff, //0x00004175 callq _atof_eisel_lemire64 - 0x84, 0xc0, //0x0000417a testb %al, %al - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000417c je LBB14_64 - 0xf2, 0x0f, 0x10, 0x4d, 0xc0, //0x00004182 movsd $-64(%rbp), %xmm1 - 0xf2, 0x0f, 0x10, 0x45, 0xd0, //0x00004187 movsd $-48(%rbp), %xmm0 - 0x66, 0x0f, 0x2e, 0xc8, //0x0000418c ucomisd %xmm0, %xmm1 - 0x0f, 0x85, 0x06, 0x00, 0x00, 0x00, //0x00004190 jne LBB14_64 - 0x0f, 0x8b, 0x21, 0x00, 0x00, 0x00, //0x00004196 jnp LBB14_66 - //0x0000419c LBB14_64 - 0x49, 0x8b, 0x06, //0x0000419c movq (%r14), %rax - 0x49, 0x01, 0xc7, //0x0000419f addq %rax, %r15 - 0x4c, 0x89, 0xee, //0x000041a2 movq %r13, %rsi - 0x48, 0x29, 0xc6, //0x000041a5 subq %rax, %rsi - 0x4c, 0x89, 0xff, //0x000041a8 movq %r15, %rdi - 0x48, 0x8b, 0x55, 0xa8, //0x000041ab movq $-88(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xb0, //0x000041af movq $-80(%rbp), %rcx - 0xe8, 0x28, 0xec, 0xff, 0xff, //0x000041b3 callq _atof_native - //0x000041b8 LBB14_65 - 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x000041b8 movsd %xmm0, $-48(%rbp) - //0x000041bd LBB14_66 - 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x000041bd movq %xmm0, %rax - //0x000041c2 LBB14_67 - 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000041c2 movabsq $-9223372036854775808, %rcx - 0x48, 0xff, 0xc9, //0x000041cc decq %rcx - 0x48, 0x21, 0xc1, //0x000041cf andq %rax, %rcx - 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000041d2 movabsq $9218868437227405312, %rdx - 0x48, 0x39, 0xd1, //0x000041dc cmpq %rdx, %rcx - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000041df jne LBB14_69 - 0x48, 0xc7, 0x03, 0xf8, 0xff, 0xff, 0xff, //0x000041e5 movq $-8, (%rbx) - //0x000041ec LBB14_69 - 0x48, 0x89, 0x43, 0x08, //0x000041ec movq %rax, $8(%rbx) - //0x000041f0 LBB14_70 - 0x4d, 0x89, 0x2e, //0x000041f0 movq %r13, (%r14) - 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x000041f3 jmp LBB14_53 - //0x000041f8 LBB14_71 - 0x66, 0x48, 0x0f, 0x7e, 0xc1, //0x000041f8 movq %xmm0, %rcx - 0x44, 0x89, 0xc8, //0x000041fd movl %r9d, %eax - 0xc1, 0xe8, 0x1f, //0x00004200 shrl $31, %eax - 0x48, 0xc1, 0xe0, 0x3f, //0x00004203 shlq $63, %rax - 0x48, 0x09, 0xc8, //0x00004207 orq %rcx, %rax - 0x48, 0x89, 0x45, 0xd0, //0x0000420a movq %rax, $-48(%rbp) - 0x4d, 0x85, 0xe4, //0x0000420e testq %r12, %r12 - 0x0f, 0x84, 0xab, 0xff, 0xff, 0xff, //0x00004211 je LBB14_67 - 0x85, 0xff, //0x00004217 testl %edi, %edi - 0x0f, 0x84, 0xa3, 0xff, 0xff, 0xff, //0x00004219 je LBB14_67 - 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x0000421f movq %rax, %xmm0 - 0x8d, 0x47, 0xff, //0x00004224 leal $-1(%rdi), %eax - 0x83, 0xf8, 0x24, //0x00004227 cmpl $36, %eax - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x0000422a ja LBB14_77 - 0x83, 0xff, 0x17, //0x00004230 cmpl $23, %edi - 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00004233 jl LBB14_81 - 0x48, 0x63, 0xc7, //0x00004239 movslq %edi, %rax - 0x48, 0x8d, 0x0d, 0xed, 0xf1, 0x00, 0x00, //0x0000423c leaq $61933(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xf2, 0x0f, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x00004243 mulsd $-176(%rcx,%rax,8), %xmm0 - 0xf2, 0x0f, 0x11, 0x45, 0xd0, //0x0000424c movsd %xmm0, $-48(%rbp) - 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004251 movl $22, %eax - 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x00004256 jmp LBB14_82 - //0x0000425b LBB14_76 - 0xc7, 0x45, 0xcc, 0x01, 0x00, 0x00, 0x00, //0x0000425b movl $1, $-52(%rbp) - 0x89, 0xcf, //0x00004262 movl %ecx, %edi - 0x41, 0x83, 0xf8, 0x09, //0x00004264 cmpl $9, %r8d - 0x0f, 0x84, 0x53, 0xfe, 0xff, 0xff, //0x00004268 je LBB14_55 - 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x0000426e jmp LBB14_59 - //0x00004273 LBB14_77 - 0x83, 0xff, 0xea, //0x00004273 cmpl $-22, %edi - 0x0f, 0x82, 0xb4, 0xfe, 0xff, 0xff, //0x00004276 jb LBB14_60 - 0xf7, 0xdf, //0x0000427c negl %edi - 0x48, 0x63, 0xc7, //0x0000427e movslq %edi, %rax - 0x48, 0x8d, 0x0d, 0xa8, 0xf1, 0x00, 0x00, //0x00004281 leaq $61864(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xf2, 0x0f, 0x5e, 0x04, 0xc1, //0x00004288 divsd (%rcx,%rax,8), %xmm0 - 0xe9, 0x26, 0xff, 0xff, 0xff, //0x0000428d jmp LBB14_65 - //0x00004292 LBB14_79 - 0x48, 0x8b, 0x45, 0xd0, //0x00004292 movq $-48(%rbp), %rax - 0xe9, 0x27, 0xff, 0xff, 0xff, //0x00004296 jmp LBB14_67 - //0x0000429b LBB14_80 - 0x66, 0x49, 0x0f, 0x6e, 0xc4, //0x0000429b movq %r12, %xmm0 - 0x4c, 0x0f, 0xaf, 0xe1, //0x000042a0 imulq %rcx, %r12 - 0x66, 0x0f, 0x62, 0x05, 0xa4, 0xfa, 0xff, 0xff, //0x000042a4 punpckldq $-1372(%rip), %xmm0 /* LCPI14_0+0(%rip) */ - 0x66, 0x0f, 0x5c, 0x05, 0xac, 0xfa, 0xff, 0xff, //0x000042ac subpd $-1364(%rip), %xmm0 /* LCPI14_1+0(%rip) */ - 0x4c, 0x89, 0x63, 0x10, //0x000042b4 movq %r12, $16(%rbx) - 0x66, 0x0f, 0x28, 0xc8, //0x000042b8 movapd %xmm0, %xmm1 - 0x66, 0x0f, 0x15, 0xc8, //0x000042bc unpckhpd %xmm0, %xmm1 - 0xf2, 0x0f, 0x58, 0xc8, //0x000042c0 addsd %xmm0, %xmm1 - 0x48, 0x21, 0xc8, //0x000042c4 andq %rcx, %rax - 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x000042c7 movq %xmm1, %rcx - 0x48, 0x09, 0xc1, //0x000042cc orq %rax, %rcx - 0x48, 0x89, 0x4b, 0x08, //0x000042cf movq %rcx, $8(%rbx) - 0xe9, 0x18, 0xff, 0xff, 0xff, //0x000042d3 jmp LBB14_70 - //0x000042d8 LBB14_81 - 0x89, 0xf8, //0x000042d8 movl %edi, %eax - //0x000042da LBB14_82 - 0x66, 0x0f, 0x2e, 0x05, 0x8e, 0xfa, 0xff, 0xff, //0x000042da ucomisd $-1394(%rip), %xmm0 /* LCPI14_2+0(%rip) */ - 0x0f, 0x87, 0x48, 0xfe, 0xff, 0xff, //0x000042e2 ja LBB14_60 - 0xf2, 0x0f, 0x10, 0x0d, 0x88, 0xfa, 0xff, 0xff, //0x000042e8 movsd $-1400(%rip), %xmm1 /* LCPI14_3+0(%rip) */ - 0x66, 0x0f, 0x2e, 0xc8, //0x000042f0 ucomisd %xmm0, %xmm1 - 0x0f, 0x87, 0x36, 0xfe, 0xff, 0xff, //0x000042f4 ja LBB14_60 - 0x89, 0xc0, //0x000042fa movl %eax, %eax - 0x48, 0x8d, 0x0d, 0x2d, 0xf1, 0x00, 0x00, //0x000042fc leaq $61741(%rip), %rcx /* _P10_TAB+0(%rip) */ - 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x00004303 mulsd (%rcx,%rax,8), %xmm0 - 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004308 jmp LBB14_65 - //0x0000430d LBB14_85 - 0x48, 0x89, 0xf8, //0x0000430d movq %rdi, %rax - //0x00004310 LBB14_86 - 0x8d, 0x7e, 0xd0, //0x00004310 leal $-48(%rsi), %edi - 0x40, 0x80, 0xff, 0x09, //0x00004313 cmpb $9, %dil - 0x0f, 0x87, 0xf1, 0xfa, 0xff, 0xff, //0x00004317 ja LBB14_5 - 0x44, 0x89, 0x4d, 0xc8, //0x0000431d movl %r9d, $-56(%rbp) - 0x4c, 0x39, 0xe8, //0x00004321 cmpq %r13, %rax - 0x0f, 0x83, 0x49, 0x00, 0x00, 0x00, //0x00004324 jae LBB14_93 - 0x40, 0x80, 0xff, 0x09, //0x0000432a cmpb $9, %dil - 0x0f, 0x87, 0x3f, 0x00, 0x00, 0x00, //0x0000432e ja LBB14_93 - 0x4d, 0x8d, 0x4d, 0xff, //0x00004334 leaq $-1(%r13), %r9 - 0x31, 0xff, //0x00004338 xorl %edi, %edi - //0x0000433a LBB14_90 - 0x89, 0xfa, //0x0000433a movl %edi, %edx - 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x0000433c cmpl $10000, %edi - 0x8d, 0x3c, 0x92, //0x00004342 leal (%rdx,%rdx,4), %edi - 0x40, 0x0f, 0xb6, 0xf6, //0x00004345 movzbl %sil, %esi - 0x8d, 0x7c, 0x7e, 0xd0, //0x00004349 leal $-48(%rsi,%rdi,2), %edi - 0x0f, 0x4d, 0xfa, //0x0000434d cmovgel %edx, %edi - 0x49, 0x39, 0xc1, //0x00004350 cmpq %rax, %r9 - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00004353 je LBB14_94 - 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004359 movzbl $1(%r15,%rax), %esi - 0x48, 0xff, 0xc0, //0x0000435f incq %rax - 0x8d, 0x56, 0xd0, //0x00004362 leal $-48(%rsi), %edx - 0x80, 0xfa, 0x0a, //0x00004365 cmpb $10, %dl - 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00004368 jb LBB14_90 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000436e jmp LBB14_95 - //0x00004373 LBB14_93 - 0x31, 0xff, //0x00004373 xorl %edi, %edi - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004375 jmp LBB14_95 - //0x0000437a LBB14_94 - 0x4c, 0x89, 0xe8, //0x0000437a movq %r13, %rax - //0x0000437d LBB14_95 - 0x41, 0x0f, 0xaf, 0xf8, //0x0000437d imull %r8d, %edi - 0x01, 0xcf, //0x00004381 addl %ecx, %edi - 0x49, 0x89, 0xc5, //0x00004383 movq %rax, %r13 - 0x44, 0x8b, 0x4d, 0xc8, //0x00004386 movl $-56(%rbp), %r9d - 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x0000438a jmp LBB14_59 - 0x90, //0x0000438f .p2align 4, 0x90 - //0x00004390 _vsigned - 0x55, //0x00004390 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004391 movq %rsp, %rbp - 0x53, //0x00004394 pushq %rbx - 0x48, 0x8b, 0x1e, //0x00004395 movq (%rsi), %rbx - 0x4c, 0x8b, 0x07, //0x00004398 movq (%rdi), %r8 - 0x4c, 0x8b, 0x57, 0x08, //0x0000439b movq $8(%rdi), %r10 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000439f movq $9, (%rdx) - 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000043a6 movq $0, $8(%rdx) - 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000043ae movq $0, $16(%rdx) - 0x48, 0x8b, 0x0e, //0x000043b6 movq (%rsi), %rcx - 0x48, 0x89, 0x4a, 0x18, //0x000043b9 movq %rcx, $24(%rdx) - 0x4c, 0x39, 0xd3, //0x000043bd cmpq %r10, %rbx - 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x000043c0 jae LBB15_1 - 0x41, 0x8a, 0x0c, 0x18, //0x000043c6 movb (%r8,%rbx), %cl - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000043ca movl $1, %r9d - 0x80, 0xf9, 0x2d, //0x000043d0 cmpb $45, %cl - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000043d3 jne LBB15_5 - 0x48, 0xff, 0xc3, //0x000043d9 incq %rbx - 0x4c, 0x39, 0xd3, //0x000043dc cmpq %r10, %rbx - 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000043df jae LBB15_1 - 0x41, 0x8a, 0x0c, 0x18, //0x000043e5 movb (%r8,%rbx), %cl - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000043e9 movq $-1, %r9 - //0x000043f0 LBB15_5 - 0x8d, 0x79, 0xd0, //0x000043f0 leal $-48(%rcx), %edi - 0x40, 0x80, 0xff, 0x0a, //0x000043f3 cmpb $10, %dil - 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000043f7 jb LBB15_7 - 0x48, 0x89, 0x1e, //0x000043fd movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00004400 movq $-2, (%rdx) - 0x5b, //0x00004407 popq %rbx - 0x5d, //0x00004408 popq %rbp - 0xc3, //0x00004409 retq - //0x0000440a LBB15_1 - 0x4c, 0x89, 0x16, //0x0000440a movq %r10, (%rsi) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000440d movq $-1, (%rdx) - 0x5b, //0x00004414 popq %rbx - 0x5d, //0x00004415 popq %rbp - 0xc3, //0x00004416 retq - //0x00004417 LBB15_7 - 0x80, 0xf9, 0x30, //0x00004417 cmpb $48, %cl - 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000441a jne LBB15_8 - 0x48, 0x8d, 0x7b, 0x01, //0x00004420 leaq $1(%rbx), %rdi - 0x4c, 0x39, 0xd3, //0x00004424 cmpq %r10, %rbx - 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x00004427 jae LBB15_17 - 0x41, 0x8a, 0x0c, 0x38, //0x0000442d movb (%r8,%rdi), %cl - 0x80, 0xc1, 0xd2, //0x00004431 addb $-46, %cl - 0x80, 0xf9, 0x37, //0x00004434 cmpb $55, %cl - 0x0f, 0x87, 0x6a, 0x00, 0x00, 0x00, //0x00004437 ja LBB15_17 - 0x44, 0x0f, 0xb6, 0xd9, //0x0000443d movzbl %cl, %r11d - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004441 movabsq $36028797027352577, %rcx - 0x4c, 0x0f, 0xa3, 0xd9, //0x0000444b btq %r11, %rcx - 0x0f, 0x83, 0x52, 0x00, 0x00, 0x00, //0x0000444f jae LBB15_17 - //0x00004455 LBB15_8 - 0x31, 0xff, //0x00004455 xorl %edi, %edi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004457 .p2align 4, 0x90 - //0x00004460 LBB15_9 - 0x4c, 0x39, 0xd3, //0x00004460 cmpq %r10, %rbx - 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x00004463 jae LBB15_22 - 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x00004469 movsbq (%r8,%rbx), %rcx - 0x8d, 0x41, 0xd0, //0x0000446e leal $-48(%rcx), %eax - 0x3c, 0x09, //0x00004471 cmpb $9, %al - 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00004473 ja LBB15_18 - 0x48, 0x6b, 0xff, 0x0a, //0x00004479 imulq $10, %rdi, %rdi - 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000447d jo LBB15_13 - 0x48, 0xff, 0xc3, //0x00004483 incq %rbx - 0x48, 0x83, 0xc1, 0xd0, //0x00004486 addq $-48, %rcx - 0x49, 0x0f, 0xaf, 0xc9, //0x0000448a imulq %r9, %rcx - 0x48, 0x01, 0xcf, //0x0000448e addq %rcx, %rdi - 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00004491 jno LBB15_9 - //0x00004497 LBB15_13 - 0x48, 0xff, 0xcb, //0x00004497 decq %rbx - 0x48, 0x89, 0x1e, //0x0000449a movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000449d movq $-5, (%rdx) - 0x5b, //0x000044a4 popq %rbx - 0x5d, //0x000044a5 popq %rbp - 0xc3, //0x000044a6 retq - //0x000044a7 LBB15_17 - 0x48, 0x89, 0x3e, //0x000044a7 movq %rdi, (%rsi) - 0x5b, //0x000044aa popq %rbx - 0x5d, //0x000044ab popq %rbp - 0xc3, //0x000044ac retq - //0x000044ad LBB15_18 - 0x80, 0xf9, 0x65, //0x000044ad cmpb $101, %cl - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000044b0 je LBB15_21 - 0x80, 0xf9, 0x45, //0x000044b6 cmpb $69, %cl - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x000044b9 je LBB15_21 - 0x80, 0xf9, 0x2e, //0x000044bf cmpb $46, %cl - 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000044c2 jne LBB15_22 - //0x000044c8 LBB15_21 - 0x48, 0x89, 0x1e, //0x000044c8 movq %rbx, (%rsi) - 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000044cb movq $-6, (%rdx) - 0x5b, //0x000044d2 popq %rbx - 0x5d, //0x000044d3 popq %rbp - 0xc3, //0x000044d4 retq - //0x000044d5 LBB15_22 - 0x48, 0x89, 0x1e, //0x000044d5 movq %rbx, (%rsi) - 0x48, 0x89, 0x7a, 0x10, //0x000044d8 movq %rdi, $16(%rdx) - 0x5b, //0x000044dc popq %rbx - 0x5d, //0x000044dd popq %rbp - 0xc3, //0x000044de retq - 0x90, //0x000044df .p2align 4, 0x90 - //0x000044e0 _vunsigned - 0x55, //0x000044e0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000044e1 movq %rsp, %rbp - 0x49, 0x89, 0xd0, //0x000044e4 movq %rdx, %r8 - 0x48, 0x8b, 0x0e, //0x000044e7 movq (%rsi), %rcx - 0x4c, 0x8b, 0x0f, //0x000044ea movq (%rdi), %r9 - 0x4c, 0x8b, 0x5f, 0x08, //0x000044ed movq $8(%rdi), %r11 - 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000044f1 movq $9, (%rdx) - 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000044f8 movq $0, $8(%rdx) - 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00004500 movq $0, $16(%rdx) - 0x48, 0x8b, 0x06, //0x00004508 movq (%rsi), %rax - 0x48, 0x89, 0x42, 0x18, //0x0000450b movq %rax, $24(%rdx) - 0x4c, 0x39, 0xd9, //0x0000450f cmpq %r11, %rcx - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00004512 jae LBB16_1 - 0x41, 0x8a, 0x04, 0x09, //0x00004518 movb (%r9,%rcx), %al - 0x3c, 0x2d, //0x0000451c cmpb $45, %al - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000451e jne LBB16_4 - //0x00004524 LBB16_3 - 0x48, 0x89, 0x0e, //0x00004524 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004527 movq $-6, (%r8) - 0x5d, //0x0000452e popq %rbp - 0xc3, //0x0000452f retq - //0x00004530 LBB16_1 - 0x4c, 0x89, 0x1e, //0x00004530 movq %r11, (%rsi) - 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004533 movq $-1, (%r8) - 0x5d, //0x0000453a popq %rbp - 0xc3, //0x0000453b retq - //0x0000453c LBB16_4 - 0x8d, 0x50, 0xd0, //0x0000453c leal $-48(%rax), %edx - 0x80, 0xfa, 0x0a, //0x0000453f cmpb $10, %dl - 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x00004542 jb LBB16_6 - 0x48, 0x89, 0x0e, //0x00004548 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000454b movq $-2, (%r8) - 0x5d, //0x00004552 popq %rbp - 0xc3, //0x00004553 retq - //0x00004554 LBB16_6 - 0x3c, 0x30, //0x00004554 cmpb $48, %al - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004556 jne LBB16_7 - 0x41, 0x8a, 0x44, 0x09, 0x01, //0x0000455c movb $1(%r9,%rcx), %al - 0x04, 0xd2, //0x00004561 addb $-46, %al - 0x3c, 0x37, //0x00004563 cmpb $55, %al - 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x00004565 ja LBB16_16 - 0x0f, 0xb6, 0xc0, //0x0000456b movzbl %al, %eax - 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000456e movabsq $36028797027352577, %rdx - 0x48, 0x0f, 0xa3, 0xc2, //0x00004578 btq %rax, %rdx - 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x0000457c jae LBB16_16 - //0x00004582 LBB16_7 - 0x31, 0xc0, //0x00004582 xorl %eax, %eax - 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00004584 movl $10, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000458a .p2align 4, 0x90 - //0x00004590 LBB16_8 - 0x4c, 0x39, 0xd9, //0x00004590 cmpq %r11, %rcx - 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x00004593 jae LBB16_20 - 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x00004599 movsbl (%r9,%rcx), %edi - 0x8d, 0x57, 0xd0, //0x0000459e leal $-48(%rdi), %edx - 0x80, 0xfa, 0x09, //0x000045a1 cmpb $9, %dl - 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x000045a4 ja LBB16_17 - 0x49, 0xf7, 0xe2, //0x000045aa mulq %r10 - 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x000045ad jo LBB16_13 - 0x48, 0xff, 0xc1, //0x000045b3 incq %rcx - 0x83, 0xc7, 0xd0, //0x000045b6 addl $-48, %edi - 0x48, 0x63, 0xd7, //0x000045b9 movslq %edi, %rdx - 0x48, 0x89, 0xd7, //0x000045bc movq %rdx, %rdi - 0x48, 0xc1, 0xff, 0x3f, //0x000045bf sarq $63, %rdi - 0x48, 0x01, 0xd0, //0x000045c3 addq %rdx, %rax - 0x48, 0x83, 0xd7, 0x00, //0x000045c6 adcq $0, %rdi - 0x89, 0xfa, //0x000045ca movl %edi, %edx - 0x83, 0xe2, 0x01, //0x000045cc andl $1, %edx - 0x48, 0xf7, 0xda, //0x000045cf negq %rdx - 0x48, 0x31, 0xd7, //0x000045d2 xorq %rdx, %rdi - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000045d5 jne LBB16_13 - 0x48, 0x85, 0xd2, //0x000045db testq %rdx, %rdx - 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000045de jns LBB16_8 - //0x000045e4 LBB16_13 - 0x48, 0xff, 0xc9, //0x000045e4 decq %rcx - 0x48, 0x89, 0x0e, //0x000045e7 movq %rcx, (%rsi) - 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000045ea movq $-5, (%r8) - 0x5d, //0x000045f1 popq %rbp - 0xc3, //0x000045f2 retq - //0x000045f3 LBB16_17 - 0x40, 0x80, 0xff, 0x65, //0x000045f3 cmpb $101, %dil - 0x0f, 0x84, 0x27, 0xff, 0xff, 0xff, //0x000045f7 je LBB16_3 - 0x40, 0x80, 0xff, 0x45, //0x000045fd cmpb $69, %dil - 0x0f, 0x84, 0x1d, 0xff, 0xff, 0xff, //0x00004601 je LBB16_3 - 0x40, 0x80, 0xff, 0x2e, //0x00004607 cmpb $46, %dil - 0x0f, 0x84, 0x13, 0xff, 0xff, 0xff, //0x0000460b je LBB16_3 - //0x00004611 LBB16_20 - 0x48, 0x89, 0x0e, //0x00004611 movq %rcx, (%rsi) - 0x49, 0x89, 0x40, 0x10, //0x00004614 movq %rax, $16(%r8) - 0x5d, //0x00004618 popq %rbp - 0xc3, //0x00004619 retq - //0x0000461a LBB16_16 - 0x48, 0xff, 0xc1, //0x0000461a incq %rcx - 0x48, 0x89, 0x0e, //0x0000461d movq %rcx, (%rsi) - 0x5d, //0x00004620 popq %rbp - 0xc3, //0x00004621 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004622 .p2align 4, 0x00 - //0x00004630 LCPI17_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004630 .quad 1 - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004638 .quad 5 - //0x00004640 .p2align 4, 0x90 - //0x00004640 _skip_array - 0x55, //0x00004640 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004641 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00004644 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00004647 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000464a movq %rdi, %rsi - 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000464d movaps $-36(%rip), %xmm0 /* LCPI17_0+0(%rip) */ - 0x0f, 0x11, 0x00, //0x00004654 movups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00004657 movq %rax, %rdi - 0x5d, //0x0000465a popq %rbp - 0xe9, 0x00, 0x00, 0x00, 0x00, //0x0000465b jmp _fsm_exec - //0x00004660 .p2align 4, 0x90 - //0x00004660 _fsm_exec - 0x55, //0x00004660 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004661 movq %rsp, %rbp - 0x41, 0x57, //0x00004664 pushq %r15 - 0x41, 0x56, //0x00004666 pushq %r14 - 0x41, 0x55, //0x00004668 pushq %r13 - 0x41, 0x54, //0x0000466a pushq %r12 - 0x53, //0x0000466c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000466d subq $56, %rsp - 0x48, 0x89, 0x4d, 0xa8, //0x00004671 movq %rcx, $-88(%rbp) - 0x4c, 0x8b, 0x0f, //0x00004675 movq (%rdi), %r9 - 0x4d, 0x85, 0xc9, //0x00004678 testq %r9, %r9 - 0x0f, 0x84, 0x16, 0x05, 0x00, 0x00, //0x0000467b je LBB18_2 - 0x49, 0x89, 0xd0, //0x00004681 movq %rdx, %r8 - 0x49, 0x89, 0xfa, //0x00004684 movq %rdi, %r10 - 0x48, 0x8d, 0x46, 0x08, //0x00004687 leaq $8(%rsi), %rax - 0x48, 0x89, 0x45, 0xc8, //0x0000468b movq %rax, $-56(%rbp) - 0x4c, 0x8b, 0x2a, //0x0000468f movq (%rdx), %r13 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00004692 movq $-1, %r14 - 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00004699 movabsq $4294977024, %r12 - 0x4c, 0x8d, 0x1d, 0x52, 0x06, 0x00, 0x00, //0x000046a3 leaq $1618(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x48, 0x89, 0x55, 0xd0, //0x000046aa movq %rdx, $-48(%rbp) - 0x48, 0x89, 0x75, 0xb0, //0x000046ae movq %rsi, $-80(%rbp) - 0x48, 0x89, 0x7d, 0xb8, //0x000046b2 movq %rdi, $-72(%rbp) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x000046b6 jmp LBB18_8 - //0x000046bb LBB18_3 - 0x49, 0x8b, 0x02, //0x000046bb movq (%r10), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000046be cmpq $4095, %rax - 0x0f, 0x8f, 0xe3, 0x04, 0x00, 0x00, //0x000046c4 jg LBB18_82 - 0x48, 0x8d, 0x48, 0x01, //0x000046ca leaq $1(%rax), %rcx - 0x49, 0x89, 0x0a, //0x000046ce movq %rcx, (%r10) - 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x000046d1 movq $6, $8(%r10,%rax,8) - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046da .p2align 4, 0x90 - //0x000046e0 LBB18_5 - 0x4c, 0x89, 0xe9, //0x000046e0 movq %r13, %rcx - //0x000046e3 LBB18_6 - 0x49, 0x8b, 0x12, //0x000046e3 movq (%r10), %rdx - 0x49, 0x89, 0xcd, //0x000046e6 movq %rcx, %r13 - //0x000046e9 LBB18_7 - 0x49, 0x89, 0xd1, //0x000046e9 movq %rdx, %r9 - 0x4c, 0x89, 0xf0, //0x000046ec movq %r14, %rax - 0x48, 0x85, 0xd2, //0x000046ef testq %rdx, %rdx - 0x0f, 0x84, 0xa6, 0x04, 0x00, 0x00, //0x000046f2 je LBB18_88 - //0x000046f8 LBB18_8 - 0x48, 0x8b, 0x3e, //0x000046f8 movq (%rsi), %rdi - 0x48, 0x8b, 0x46, 0x08, //0x000046fb movq $8(%rsi), %rax - 0x4c, 0x89, 0xea, //0x000046ff movq %r13, %rdx - 0x48, 0x29, 0xc2, //0x00004702 subq %rax, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00004705 jae LBB18_13 - 0x42, 0x8a, 0x1c, 0x2f, //0x0000470b movb (%rdi,%r13), %bl - 0x80, 0xfb, 0x0d, //0x0000470f cmpb $13, %bl - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00004712 je LBB18_13 - 0x80, 0xfb, 0x20, //0x00004718 cmpb $32, %bl - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000471b je LBB18_13 - 0x80, 0xc3, 0xf7, //0x00004721 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004724 cmpb $1, %bl - 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x00004727 jbe LBB18_13 - 0x4d, 0x89, 0xef, //0x0000472d movq %r13, %r15 - 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x00004730 jmp LBB18_34 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004735 .p2align 4, 0x90 - //0x00004740 LBB18_13 - 0x4d, 0x8d, 0x7d, 0x01, //0x00004740 leaq $1(%r13), %r15 - 0x49, 0x39, 0xc7, //0x00004744 cmpq %rax, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004747 jae LBB18_17 - 0x42, 0x8a, 0x1c, 0x3f, //0x0000474d movb (%rdi,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00004751 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004754 je LBB18_17 - 0x80, 0xfb, 0x20, //0x0000475a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000475d je LBB18_17 - 0x80, 0xc3, 0xf7, //0x00004763 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004766 cmpb $1, %bl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00004769 ja LBB18_34 - 0x90, //0x0000476f .p2align 4, 0x90 - //0x00004770 LBB18_17 - 0x4d, 0x8d, 0x7d, 0x02, //0x00004770 leaq $2(%r13), %r15 - 0x49, 0x39, 0xc7, //0x00004774 cmpq %rax, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004777 jae LBB18_21 - 0x42, 0x8a, 0x1c, 0x3f, //0x0000477d movb (%rdi,%r15), %bl - 0x80, 0xfb, 0x0d, //0x00004781 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004784 je LBB18_21 - 0x80, 0xfb, 0x20, //0x0000478a cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000478d je LBB18_21 - 0x80, 0xc3, 0xf7, //0x00004793 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x00004796 cmpb $1, %bl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00004799 ja LBB18_34 - 0x90, //0x0000479f .p2align 4, 0x90 - //0x000047a0 LBB18_21 - 0x4d, 0x8d, 0x7d, 0x03, //0x000047a0 leaq $3(%r13), %r15 - 0x49, 0x39, 0xc7, //0x000047a4 cmpq %rax, %r15 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000047a7 jae LBB18_25 - 0x42, 0x8a, 0x1c, 0x3f, //0x000047ad movb (%rdi,%r15), %bl - 0x80, 0xfb, 0x0d, //0x000047b1 cmpb $13, %bl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000047b4 je LBB18_25 - 0x80, 0xfb, 0x20, //0x000047ba cmpb $32, %bl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000047bd je LBB18_25 - 0x80, 0xc3, 0xf7, //0x000047c3 addb $-9, %bl - 0x80, 0xfb, 0x01, //0x000047c6 cmpb $1, %bl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000047c9 ja LBB18_34 - 0x90, //0x000047cf .p2align 4, 0x90 - //0x000047d0 LBB18_25 - 0x49, 0x8d, 0x4d, 0x04, //0x000047d0 leaq $4(%r13), %rcx - 0x48, 0x39, 0xc8, //0x000047d4 cmpq %rcx, %rax - 0x0f, 0x86, 0xb7, 0x03, 0x00, 0x00, //0x000047d7 jbe LBB18_79 - 0x48, 0x39, 0xc8, //0x000047dd cmpq %rcx, %rax - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000047e0 je LBB18_31 - 0x48, 0x8d, 0x0c, 0x07, //0x000047e6 leaq (%rdi,%rax), %rcx - 0x48, 0x83, 0xc2, 0x04, //0x000047ea addq $4, %rdx - 0x4e, 0x8d, 0x7c, 0x2f, 0x05, //0x000047ee leaq $5(%rdi,%r13), %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047f3 .p2align 4, 0x90 - //0x00004800 LBB18_28 - 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x00004800 movsbl $-1(%r15), %ebx - 0x83, 0xfb, 0x20, //0x00004805 cmpl $32, %ebx - 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00004808 ja LBB18_33 - 0x49, 0x0f, 0xa3, 0xdc, //0x0000480e btq %rbx, %r12 - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00004812 jae LBB18_33 - 0x49, 0xff, 0xc7, //0x00004818 incq %r15 - 0x48, 0xff, 0xc2, //0x0000481b incq %rdx - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000481e jne LBB18_28 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004824 jmp LBB18_32 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004829 .p2align 4, 0x90 - //0x00004830 LBB18_31 - 0x48, 0x01, 0xf9, //0x00004830 addq %rdi, %rcx - //0x00004833 LBB18_32 - 0x48, 0x29, 0xf9, //0x00004833 subq %rdi, %rcx - 0x49, 0x89, 0xcf, //0x00004836 movq %rcx, %r15 - 0x49, 0x39, 0xc7, //0x00004839 cmpq %rax, %r15 - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000483c jb LBB18_34 - 0xe9, 0x50, 0x03, 0x00, 0x00, //0x00004842 jmp LBB18_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004847 .p2align 4, 0x90 - //0x00004850 LBB18_33 - 0x48, 0x89, 0xfa, //0x00004850 movq %rdi, %rdx - 0x48, 0xf7, 0xd2, //0x00004853 notq %rdx - 0x49, 0x01, 0xd7, //0x00004856 addq %rdx, %r15 - 0x49, 0x39, 0xc7, //0x00004859 cmpq %rax, %r15 - 0x0f, 0x83, 0x35, 0x03, 0x00, 0x00, //0x0000485c jae LBB18_2 - //0x00004862 LBB18_34 - 0x4d, 0x8d, 0x6f, 0x01, //0x00004862 leaq $1(%r15), %r13 - 0x4d, 0x89, 0x28, //0x00004866 movq %r13, (%r8) - 0x42, 0x0f, 0xbe, 0x0c, 0x3f, //0x00004869 movsbl (%rdi,%r15), %ecx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000486e movq $-1, %rax - 0x85, 0xc9, //0x00004875 testl %ecx, %ecx - 0x0f, 0x84, 0x21, 0x03, 0x00, 0x00, //0x00004877 je LBB18_88 - 0x49, 0x8d, 0x51, 0xff, //0x0000487d leaq $-1(%r9), %rdx - 0x43, 0x8b, 0x1c, 0xca, //0x00004881 movl (%r10,%r9,8), %ebx - 0x49, 0x83, 0xfe, 0xff, //0x00004885 cmpq $-1, %r14 - 0x4d, 0x0f, 0x44, 0xf7, //0x00004889 cmoveq %r15, %r14 - 0xff, 0xcb, //0x0000488d decl %ebx - 0x83, 0xfb, 0x05, //0x0000488f cmpl $5, %ebx - 0x0f, 0x87, 0x20, 0x00, 0x00, 0x00, //0x00004892 ja LBB18_40 - 0x49, 0x63, 0x1c, 0x9b, //0x00004898 movslq (%r11,%rbx,4), %rbx - 0x4c, 0x01, 0xdb, //0x0000489c addq %r11, %rbx - 0xff, 0xe3, //0x0000489f jmpq *%rbx - //0x000048a1 LBB18_37 - 0x83, 0xf9, 0x2c, //0x000048a1 cmpl $44, %ecx - 0x0f, 0x84, 0x5d, 0x01, 0x00, 0x00, //0x000048a4 je LBB18_58 - 0x83, 0xf9, 0x5d, //0x000048aa cmpl $93, %ecx - 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x000048ad je LBB18_39 - 0xe9, 0x32, 0x03, 0x00, 0x00, //0x000048b3 jmp LBB18_87 - //0x000048b8 LBB18_40 - 0x49, 0x89, 0x12, //0x000048b8 movq %rdx, (%r10) - 0x83, 0xf9, 0x7b, //0x000048bb cmpl $123, %ecx - 0x0f, 0x86, 0xd1, 0x00, 0x00, 0x00, //0x000048be jbe LBB18_56 - 0xe9, 0x21, 0x03, 0x00, 0x00, //0x000048c4 jmp LBB18_87 - //0x000048c9 LBB18_41 - 0x83, 0xf9, 0x2c, //0x000048c9 cmpl $44, %ecx - 0x0f, 0x84, 0x57, 0x01, 0x00, 0x00, //0x000048cc je LBB18_60 - 0x83, 0xf9, 0x7d, //0x000048d2 cmpl $125, %ecx - 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x000048d5 je LBB18_39 - 0xe9, 0x0a, 0x03, 0x00, 0x00, //0x000048db jmp LBB18_87 - //0x000048e0 LBB18_44 - 0x80, 0xf9, 0x22, //0x000048e0 cmpb $34, %cl - 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x000048e3 jne LBB18_87 - 0x4b, 0xc7, 0x04, 0xca, 0x04, 0x00, 0x00, 0x00, //0x000048e9 movq $4, (%r10,%r9,8) - //0x000048f1 LBB18_46 - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000048f1 movq $-1, $-64(%rbp) - 0x48, 0x89, 0xf7, //0x000048f9 movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x000048fc movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x000048ff leaq $-64(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa8, //0x00004903 movq $-88(%rbp), %rcx - 0xe8, 0x04, 0xef, 0xff, 0xff, //0x00004907 callq _advance_string - 0x48, 0x89, 0xc1, //0x0000490c movq %rax, %rcx - 0x48, 0x85, 0xc0, //0x0000490f testq %rax, %rax - 0x0f, 0x88, 0xa1, 0x02, 0x00, 0x00, //0x00004912 js LBB18_81 - //0x00004918 LBB18_47 - 0x4c, 0x8b, 0x45, 0xd0, //0x00004918 movq $-48(%rbp), %r8 - 0x49, 0x89, 0x08, //0x0000491c movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x0000491f movq %r15, %rax - 0x4d, 0x85, 0xed, //0x00004922 testq %r13, %r13 - 0x48, 0x8b, 0x75, 0xb0, //0x00004925 movq $-80(%rbp), %rsi - 0x4c, 0x8b, 0x55, 0xb8, //0x00004929 movq $-72(%rbp), %r10 - 0x4c, 0x8d, 0x1d, 0xc8, 0x03, 0x00, 0x00, //0x0000492d leaq $968(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x0f, 0x8f, 0xa9, 0xfd, 0xff, 0xff, //0x00004934 jg LBB18_6 - 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x0000493a jmp LBB18_88 - //0x0000493f LBB18_48 - 0x80, 0xf9, 0x3a, //0x0000493f cmpb $58, %cl - 0x0f, 0x85, 0xa2, 0x02, 0x00, 0x00, //0x00004942 jne LBB18_87 - 0x4b, 0xc7, 0x04, 0xca, 0x00, 0x00, 0x00, 0x00, //0x00004948 movq $0, (%r10,%r9,8) - 0xe9, 0x8b, 0xfd, 0xff, 0xff, //0x00004950 jmp LBB18_5 - //0x00004955 LBB18_50 - 0x80, 0xf9, 0x5d, //0x00004955 cmpb $93, %cl - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004958 jne LBB18_55 - //0x0000495e LBB18_39 - 0x49, 0x89, 0x12, //0x0000495e movq %rdx, (%r10) - 0xe9, 0x83, 0xfd, 0xff, 0xff, //0x00004961 jmp LBB18_7 - //0x00004966 LBB18_52 - 0x83, 0xf9, 0x22, //0x00004966 cmpl $34, %ecx - 0x0f, 0x84, 0xdc, 0x00, 0x00, 0x00, //0x00004969 je LBB18_62 - 0x83, 0xf9, 0x7d, //0x0000496f cmpl $125, %ecx - 0x0f, 0x85, 0x72, 0x02, 0x00, 0x00, //0x00004972 jne LBB18_87 - 0x49, 0x89, 0x12, //0x00004978 movq %rdx, (%r10) - 0x4c, 0x8b, 0x45, 0xd0, //0x0000497b movq $-48(%rbp), %r8 - 0xe9, 0x65, 0xfd, 0xff, 0xff, //0x0000497f jmp LBB18_7 - //0x00004984 LBB18_55 - 0x4b, 0xc7, 0x04, 0xca, 0x01, 0x00, 0x00, 0x00, //0x00004984 movq $1, (%r10,%r9,8) - 0x83, 0xf9, 0x7b, //0x0000498c cmpl $123, %ecx - 0x0f, 0x87, 0x55, 0x02, 0x00, 0x00, //0x0000498f ja LBB18_87 - //0x00004995 LBB18_56 - 0x4a, 0x8d, 0x1c, 0x3f, //0x00004995 leaq (%rdi,%r15), %rbx - 0x89, 0xca, //0x00004999 movl %ecx, %edx - 0x48, 0x8d, 0x0d, 0x72, 0x03, 0x00, 0x00, //0x0000499b leaq $882(%rip), %rcx /* LJTI18_1+0(%rip) */ - 0x48, 0x63, 0x14, 0x91, //0x000049a2 movslq (%rcx,%rdx,4), %rdx - 0x48, 0x01, 0xca, //0x000049a6 addq %rcx, %rdx - 0xff, 0xe2, //0x000049a9 jmpq *%rdx - //0x000049ab LBB18_57 - 0x48, 0x8b, 0x45, 0xc8, //0x000049ab movq $-56(%rbp), %rax - 0x48, 0x8b, 0x30, //0x000049af movq (%rax), %rsi - 0x4c, 0x29, 0xfe, //0x000049b2 subq %r15, %rsi - 0x48, 0x89, 0xdf, //0x000049b5 movq %rbx, %rdi - 0xe8, 0xc3, 0x06, 0x00, 0x00, //0x000049b8 callq _do_skip_number - 0x4c, 0x8d, 0x1d, 0x38, 0x03, 0x00, 0x00, //0x000049bd leaq $824(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x4c, 0x8b, 0x55, 0xb8, //0x000049c4 movq $-72(%rbp), %r10 - 0x48, 0x8b, 0x75, 0xb0, //0x000049c8 movq $-80(%rbp), %rsi - 0x4c, 0x8b, 0x45, 0xd0, //0x000049cc movq $-48(%rbp), %r8 - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000049d0 movq $-2, %rdx - 0x48, 0x29, 0xc2, //0x000049d7 subq %rax, %rdx - 0x48, 0x85, 0xc0, //0x000049da testq %rax, %rax - 0x48, 0x8d, 0x48, 0xff, //0x000049dd leaq $-1(%rax), %rcx - 0x48, 0x0f, 0x48, 0xca, //0x000049e1 cmovsq %rdx, %rcx - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000049e5 movq $-2, %rax - 0x4c, 0x0f, 0x48, 0xf8, //0x000049ec cmovsq %rax, %r15 - 0x4c, 0x01, 0xe9, //0x000049f0 addq %r13, %rcx - 0x49, 0x89, 0x08, //0x000049f3 movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x000049f6 movq %r15, %rax - 0x4d, 0x85, 0xff, //0x000049f9 testq %r15, %r15 - 0x0f, 0x89, 0xe1, 0xfc, 0xff, 0xff, //0x000049fc jns LBB18_6 - 0xe9, 0x97, 0x01, 0x00, 0x00, //0x00004a02 jmp LBB18_88 - //0x00004a07 LBB18_58 - 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00004a07 cmpq $4095, %r9 - 0x0f, 0x8f, 0x99, 0x01, 0x00, 0x00, //0x00004a0e jg LBB18_82 - 0x49, 0x8d, 0x41, 0x01, //0x00004a14 leaq $1(%r9), %rax - 0x49, 0x89, 0x02, //0x00004a18 movq %rax, (%r10) - 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004a1b movq $0, $8(%r10,%r9,8) - 0xe9, 0xb7, 0xfc, 0xff, 0xff, //0x00004a24 jmp LBB18_5 - //0x00004a29 LBB18_60 - 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00004a29 cmpq $4095, %r9 - 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x00004a30 jg LBB18_82 - 0x49, 0x8d, 0x41, 0x01, //0x00004a36 leaq $1(%r9), %rax - 0x49, 0x89, 0x02, //0x00004a3a movq %rax, (%r10) - 0x4b, 0xc7, 0x44, 0xca, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004a3d movq $3, $8(%r10,%r9,8) - 0xe9, 0x95, 0xfc, 0xff, 0xff, //0x00004a46 jmp LBB18_5 - //0x00004a4b LBB18_62 - 0x4b, 0xc7, 0x04, 0xca, 0x02, 0x00, 0x00, 0x00, //0x00004a4b movq $2, (%r10,%r9,8) - 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004a53 movq $-1, $-64(%rbp) - 0x48, 0x89, 0xf7, //0x00004a5b movq %rsi, %rdi - 0x4c, 0x89, 0xee, //0x00004a5e movq %r13, %rsi - 0x48, 0x8d, 0x55, 0xc0, //0x00004a61 leaq $-64(%rbp), %rdx - 0x48, 0x8b, 0x4d, 0xa8, //0x00004a65 movq $-88(%rbp), %rcx - 0xe8, 0xa2, 0xed, 0xff, 0xff, //0x00004a69 callq _advance_string - 0x48, 0x89, 0xc1, //0x00004a6e movq %rax, %rcx - 0x48, 0x85, 0xc0, //0x00004a71 testq %rax, %rax - 0x0f, 0x88, 0x3f, 0x01, 0x00, 0x00, //0x00004a74 js LBB18_81 - 0x4c, 0x8b, 0x45, 0xd0, //0x00004a7a movq $-48(%rbp), %r8 - 0x49, 0x89, 0x08, //0x00004a7e movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x00004a81 movq %r15, %rax - 0x4d, 0x85, 0xed, //0x00004a84 testq %r13, %r13 - 0x48, 0x8b, 0x75, 0xb0, //0x00004a87 movq $-80(%rbp), %rsi - 0x4c, 0x8b, 0x55, 0xb8, //0x00004a8b movq $-72(%rbp), %r10 - 0x4c, 0x8d, 0x1d, 0x66, 0x02, 0x00, 0x00, //0x00004a8f leaq $614(%rip), %r11 /* LJTI18_0+0(%rip) */ - 0x0f, 0x8e, 0x02, 0x01, 0x00, 0x00, //0x00004a96 jle LBB18_88 - 0x49, 0x8b, 0x02, //0x00004a9c movq (%r10), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004a9f cmpq $4095, %rax - 0x0f, 0x8f, 0x02, 0x01, 0x00, 0x00, //0x00004aa5 jg LBB18_82 - 0x48, 0x8d, 0x50, 0x01, //0x00004aab leaq $1(%rax), %rdx - 0x49, 0x89, 0x12, //0x00004aaf movq %rdx, (%r10) - 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004ab2 movq $4, $8(%r10,%rax,8) - 0xe9, 0x23, 0xfc, 0xff, 0xff, //0x00004abb jmp LBB18_6 - //0x00004ac0 LBB18_66 - 0x4c, 0x01, 0xef, //0x00004ac0 addq %r13, %rdi - 0x48, 0x8b, 0x45, 0xc8, //0x00004ac3 movq $-56(%rbp), %rax - 0x48, 0x8b, 0x30, //0x00004ac7 movq (%rax), %rsi - 0x4c, 0x29, 0xee, //0x00004aca subq %r13, %rsi - 0xe8, 0xae, 0x05, 0x00, 0x00, //0x00004acd callq _do_skip_number - 0x48, 0x89, 0xc1, //0x00004ad2 movq %rax, %rcx - 0x48, 0x85, 0xc0, //0x00004ad5 testq %rax, %rax - 0x0f, 0x88, 0x02, 0x01, 0x00, 0x00, //0x00004ad8 js LBB18_86 - 0x4c, 0x01, 0xe9, //0x00004ade addq %r13, %rcx - 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x00004ae1 jmp LBB18_47 - //0x00004ae6 LBB18_68 - 0x49, 0x8b, 0x02, //0x00004ae6 movq (%r10), %rax - 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004ae9 cmpq $4095, %rax - 0x0f, 0x8f, 0xb8, 0x00, 0x00, 0x00, //0x00004aef jg LBB18_82 - 0x48, 0x8d, 0x48, 0x01, //0x00004af5 leaq $1(%rax), %rcx - 0x49, 0x89, 0x0a, //0x00004af9 movq %rcx, (%r10) - 0x49, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004afc movq $5, $8(%r10,%rax,8) - 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00004b05 jmp LBB18_5 - //0x00004b0a LBB18_70 - 0x48, 0x8b, 0x4d, 0xc8, //0x00004b0a movq $-56(%rbp), %rcx - 0x48, 0x8b, 0x09, //0x00004b0e movq (%rcx), %rcx - 0x48, 0x8d, 0x51, 0xfc, //0x00004b11 leaq $-4(%rcx), %rdx - 0x49, 0x39, 0xd7, //0x00004b15 cmpq %rdx, %r15 - 0x0f, 0x83, 0xd8, 0x00, 0x00, 0x00, //0x00004b18 jae LBB18_90 - 0x42, 0x8b, 0x0c, 0x2f, //0x00004b1e movl (%rdi,%r13), %ecx - 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004b22 cmpl $1702063201, %ecx - 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00004b28 jne LBB18_97 - 0x49, 0x8d, 0x4f, 0x05, //0x00004b2e leaq $5(%r15), %rcx - 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00004b32 jmp LBB18_78 - //0x00004b37 LBB18_73 - 0x48, 0x8b, 0x55, 0xc8, //0x00004b37 movq $-56(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00004b3b movq (%rdx), %rdx - 0x48, 0x8d, 0x4a, 0xfd, //0x00004b3e leaq $-3(%rdx), %rcx - 0x49, 0x39, 0xcf, //0x00004b42 cmpq %rcx, %r15 - 0x0f, 0x83, 0x8d, 0x00, 0x00, 0x00, //0x00004b45 jae LBB18_92 - 0x81, 0x3b, 0x6e, 0x75, 0x6c, 0x6c, //0x00004b4b cmpl $1819047278, (%rbx) - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00004b51 je LBB18_77 - 0xe9, 0x48, 0x01, 0x00, 0x00, //0x00004b57 jmp LBB18_102 - //0x00004b5c LBB18_75 - 0x48, 0x8b, 0x55, 0xc8, //0x00004b5c movq $-56(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00004b60 movq (%rdx), %rdx - 0x48, 0x8d, 0x4a, 0xfd, //0x00004b63 leaq $-3(%rdx), %rcx - 0x49, 0x39, 0xcf, //0x00004b67 cmpq %rcx, %r15 - 0x0f, 0x83, 0x68, 0x00, 0x00, 0x00, //0x00004b6a jae LBB18_92 - 0x81, 0x3b, 0x74, 0x72, 0x75, 0x65, //0x00004b70 cmpl $1702195828, (%rbx) - 0x0f, 0x85, 0x82, 0x00, 0x00, 0x00, //0x00004b76 jne LBB18_93 - //0x00004b7c LBB18_77 - 0x49, 0x8d, 0x4f, 0x04, //0x00004b7c leaq $4(%r15), %rcx - //0x00004b80 LBB18_78 - 0x49, 0x89, 0x08, //0x00004b80 movq %rcx, (%r8) - 0x4c, 0x89, 0xf8, //0x00004b83 movq %r15, %rax - 0x4d, 0x85, 0xed, //0x00004b86 testq %r13, %r13 - 0x0f, 0x8f, 0x54, 0xfb, 0xff, 0xff, //0x00004b89 jg LBB18_6 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004b8f jmp LBB18_88 - //0x00004b94 LBB18_79 - 0x49, 0x89, 0x08, //0x00004b94 movq %rcx, (%r8) - //0x00004b97 LBB18_2 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004b97 movq $-1, %rax - //0x00004b9e LBB18_88 - 0x48, 0x83, 0xc4, 0x38, //0x00004b9e addq $56, %rsp - 0x5b, //0x00004ba2 popq %rbx - 0x41, 0x5c, //0x00004ba3 popq %r12 - 0x41, 0x5d, //0x00004ba5 popq %r13 - 0x41, 0x5e, //0x00004ba7 popq %r14 - 0x41, 0x5f, //0x00004ba9 popq %r15 - 0x5d, //0x00004bab popq %rbp - 0xc3, //0x00004bac retq - //0x00004bad LBB18_82 - 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00004bad movq $-7, %rax - 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x00004bb4 jmp LBB18_88 - //0x00004bb9 LBB18_81 - 0x48, 0x83, 0xf9, 0xff, //0x00004bb9 cmpq $-1, %rcx - 0x48, 0x8d, 0x45, 0xc0, //0x00004bbd leaq $-64(%rbp), %rax - 0x48, 0x0f, 0x44, 0x45, 0xc8, //0x00004bc1 cmoveq $-56(%rbp), %rax - 0x48, 0x8b, 0x00, //0x00004bc6 movq (%rax), %rax - 0x48, 0x8b, 0x55, 0xd0, //0x00004bc9 movq $-48(%rbp), %rdx - 0x48, 0x89, 0x02, //0x00004bcd movq %rax, (%rdx) - 0x48, 0x89, 0xc8, //0x00004bd0 movq %rcx, %rax - 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00004bd3 jmp LBB18_88 - //0x00004bd8 LBB18_92 - 0x49, 0x89, 0x10, //0x00004bd8 movq %rdx, (%r8) - 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004bdb jmp LBB18_88 - //0x00004be0 LBB18_86 - 0x49, 0x29, 0xcf, //0x00004be0 subq %rcx, %r15 - 0x48, 0x8b, 0x45, 0xd0, //0x00004be3 movq $-48(%rbp), %rax - 0x4c, 0x89, 0x38, //0x00004be7 movq %r15, (%rax) - //0x00004bea LBB18_87 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004bea movq $-2, %rax - 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00004bf1 jmp LBB18_88 - //0x00004bf6 LBB18_90 - 0x49, 0x89, 0x08, //0x00004bf6 movq %rcx, (%r8) - 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x00004bf9 jmp LBB18_88 - //0x00004bfe LBB18_93 - 0x4d, 0x89, 0x38, //0x00004bfe movq %r15, (%r8) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c01 movq $-2, %rax - 0x80, 0x3b, 0x74, //0x00004c08 cmpb $116, (%rbx) - 0x0f, 0x85, 0x8d, 0xff, 0xff, 0xff, //0x00004c0b jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x01, //0x00004c11 leaq $1(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c15 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x72, //0x00004c18 cmpb $114, $1(%rdi,%r15) - 0x0f, 0x85, 0x7a, 0xff, 0xff, 0xff, //0x00004c1e jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x02, //0x00004c24 leaq $2(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c28 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x75, //0x00004c2b cmpb $117, $2(%rdi,%r15) - 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00004c31 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x03, //0x00004c37 leaq $3(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c3b movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x65, //0x00004c3e cmpb $101, $3(%rdi,%r15) - 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00004c44 je LBB18_106 - 0xe9, 0x4f, 0xff, 0xff, 0xff, //0x00004c4a jmp LBB18_88 - //0x00004c4f LBB18_97 - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c4f movq $-2, %rax - 0x80, 0xf9, 0x61, //0x00004c56 cmpb $97, %cl - 0x0f, 0x85, 0x3f, 0xff, 0xff, 0xff, //0x00004c59 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x02, //0x00004c5f leaq $2(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c63 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004c66 cmpb $108, $2(%rdi,%r15) - 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00004c6c jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x03, //0x00004c72 leaq $3(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c76 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x73, //0x00004c79 cmpb $115, $3(%rdi,%r15) - 0x0f, 0x85, 0x19, 0xff, 0xff, 0xff, //0x00004c7f jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x04, //0x00004c85 leaq $4(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004c89 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x04, 0x65, //0x00004c8c cmpb $101, $4(%rdi,%r15) - 0x0f, 0x85, 0x06, 0xff, 0xff, 0xff, //0x00004c92 jne LBB18_88 - 0x49, 0x83, 0xc7, 0x05, //0x00004c98 addq $5, %r15 - 0x4d, 0x89, 0x38, //0x00004c9c movq %r15, (%r8) - 0xe9, 0xfa, 0xfe, 0xff, 0xff, //0x00004c9f jmp LBB18_88 - //0x00004ca4 LBB18_102 - 0x4d, 0x89, 0x38, //0x00004ca4 movq %r15, (%r8) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ca7 movq $-2, %rax - 0x80, 0x3b, 0x6e, //0x00004cae cmpb $110, (%rbx) - 0x0f, 0x85, 0xe7, 0xfe, 0xff, 0xff, //0x00004cb1 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x01, //0x00004cb7 leaq $1(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004cbb movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x01, 0x75, //0x00004cbe cmpb $117, $1(%rdi,%r15) - 0x0f, 0x85, 0xd4, 0xfe, 0xff, 0xff, //0x00004cc4 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x02, //0x00004cca leaq $2(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004cce movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x02, 0x6c, //0x00004cd1 cmpb $108, $2(%rdi,%r15) - 0x0f, 0x85, 0xc1, 0xfe, 0xff, 0xff, //0x00004cd7 jne LBB18_88 - 0x49, 0x8d, 0x4f, 0x03, //0x00004cdd leaq $3(%r15), %rcx - 0x49, 0x89, 0x08, //0x00004ce1 movq %rcx, (%r8) - 0x42, 0x80, 0x7c, 0x3f, 0x03, 0x6c, //0x00004ce4 cmpb $108, $3(%rdi,%r15) - 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00004cea jne LBB18_88 - //0x00004cf0 LBB18_106 - 0x49, 0x83, 0xc7, 0x04, //0x00004cf0 addq $4, %r15 - 0x4d, 0x89, 0x38, //0x00004cf4 movq %r15, (%r8) - 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00004cf7 jmp LBB18_88 - //0x00004cfc .p2align 2, 0x90 - // // .set L18_0_set_37, LBB18_37-LJTI18_0 - // // .set L18_0_set_41, LBB18_41-LJTI18_0 - // // .set L18_0_set_44, LBB18_44-LJTI18_0 - // // .set L18_0_set_48, LBB18_48-LJTI18_0 - // // .set L18_0_set_50, LBB18_50-LJTI18_0 - // // .set L18_0_set_52, LBB18_52-LJTI18_0 - //0x00004cfc LJTI18_0 - 0xa5, 0xfb, 0xff, 0xff, //0x00004cfc .long L18_0_set_37 - 0xcd, 0xfb, 0xff, 0xff, //0x00004d00 .long L18_0_set_41 - 0xe4, 0xfb, 0xff, 0xff, //0x00004d04 .long L18_0_set_44 - 0x43, 0xfc, 0xff, 0xff, //0x00004d08 .long L18_0_set_48 - 0x59, 0xfc, 0xff, 0xff, //0x00004d0c .long L18_0_set_50 - 0x6a, 0xfc, 0xff, 0xff, //0x00004d10 .long L18_0_set_52 - // // .set L18_1_set_88, LBB18_88-LJTI18_1 - // // .set L18_1_set_87, LBB18_87-LJTI18_1 - // // .set L18_1_set_46, LBB18_46-LJTI18_1 - // // .set L18_1_set_66, LBB18_66-LJTI18_1 - // // .set L18_1_set_57, LBB18_57-LJTI18_1 - // // .set L18_1_set_68, LBB18_68-LJTI18_1 - // // .set L18_1_set_70, LBB18_70-LJTI18_1 - // // .set L18_1_set_73, LBB18_73-LJTI18_1 - // // .set L18_1_set_75, LBB18_75-LJTI18_1 - // // .set L18_1_set_3, LBB18_3-LJTI18_1 - //0x00004d14 LJTI18_1 - 0x8a, 0xfe, 0xff, 0xff, //0x00004d14 .long L18_1_set_88 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d18 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d1c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d20 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d24 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d28 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d2c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d30 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d34 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d38 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d3c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d40 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d44 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d48 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d4c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d50 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d54 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d58 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d5c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d60 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d64 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d68 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d6c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d70 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d74 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d78 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d7c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d80 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d84 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d88 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d8c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d90 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d94 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004d98 .long L18_1_set_87 - 0xdd, 0xfb, 0xff, 0xff, //0x00004d9c .long L18_1_set_46 - 0xd6, 0xfe, 0xff, 0xff, //0x00004da0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004da4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004da8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dac .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004db0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004db4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004db8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dbc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dc0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dc4 .long L18_1_set_87 - 0xac, 0xfd, 0xff, 0xff, //0x00004dc8 .long L18_1_set_66 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dcc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dd0 .long L18_1_set_87 - 0x97, 0xfc, 0xff, 0xff, //0x00004dd4 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004dd8 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004ddc .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004de0 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004de4 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004de8 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004dec .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004df0 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004df4 .long L18_1_set_57 - 0x97, 0xfc, 0xff, 0xff, //0x00004df8 .long L18_1_set_57 - 0xd6, 0xfe, 0xff, 0xff, //0x00004dfc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e00 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e04 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e08 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e0c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e10 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e14 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e18 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e1c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e20 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e24 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e28 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e2c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e30 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e34 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e38 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e3c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e40 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e44 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e48 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e4c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e50 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e54 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e58 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e5c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e60 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e64 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e68 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e6c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e70 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e74 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e78 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e7c .long L18_1_set_87 - 0xd2, 0xfd, 0xff, 0xff, //0x00004e80 .long L18_1_set_68 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e84 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e88 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e8c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e90 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e94 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e98 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004e9c .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ea0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ea4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ea8 .long L18_1_set_87 - 0xf6, 0xfd, 0xff, 0xff, //0x00004eac .long L18_1_set_70 - 0xd6, 0xfe, 0xff, 0xff, //0x00004eb0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004eb4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004eb8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ebc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ec0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ec4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ec8 .long L18_1_set_87 - 0x23, 0xfe, 0xff, 0xff, //0x00004ecc .long L18_1_set_73 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ed0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ed4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ed8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004edc .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ee0 .long L18_1_set_87 - 0x48, 0xfe, 0xff, 0xff, //0x00004ee4 .long L18_1_set_75 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ee8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004eec .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ef0 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ef4 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004ef8 .long L18_1_set_87 - 0xd6, 0xfe, 0xff, 0xff, //0x00004efc .long L18_1_set_87 - 0xa7, 0xf9, 0xff, 0xff, //0x00004f00 .long L18_1_set_3 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f04 .p2align 4, 0x00 - //0x00004f10 LCPI19_0 - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f10 .quad 1 - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f18 .quad 6 - //0x00004f20 .p2align 4, 0x90 - //0x00004f20 _skip_object - 0x55, //0x00004f20 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004f21 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00004f24 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00004f27 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x00004f2a movq %rdi, %rsi - 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x00004f2d movaps $-36(%rip), %xmm0 /* LCPI19_0+0(%rip) */ - 0x0f, 0x11, 0x00, //0x00004f34 movups %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x00004f37 movq %rax, %rdi - 0x5d, //0x00004f3a popq %rbp - 0xe9, 0x20, 0xf7, 0xff, 0xff, //0x00004f3b jmp _fsm_exec - //0x00004f40 .p2align 4, 0x90 - //0x00004f40 _skip_string - 0x55, //0x00004f40 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004f41 movq %rsp, %rbp - 0x41, 0x57, //0x00004f44 pushq %r15 - 0x41, 0x56, //0x00004f46 pushq %r14 - 0x41, 0x54, //0x00004f48 pushq %r12 - 0x53, //0x00004f4a pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x00004f4b subq $16, %rsp - 0x48, 0x89, 0xd1, //0x00004f4f movq %rdx, %rcx - 0x49, 0x89, 0xf6, //0x00004f52 movq %rsi, %r14 - 0x49, 0x89, 0xff, //0x00004f55 movq %rdi, %r15 - 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00004f58 movq $-1, $-40(%rbp) - 0x48, 0x8b, 0x1e, //0x00004f60 movq (%rsi), %rbx - 0x4c, 0x8d, 0x65, 0xd8, //0x00004f63 leaq $-40(%rbp), %r12 - 0x48, 0x89, 0xde, //0x00004f67 movq %rbx, %rsi - 0x4c, 0x89, 0xe2, //0x00004f6a movq %r12, %rdx - 0xe8, 0x9e, 0xe8, 0xff, 0xff, //0x00004f6d callq _advance_string - 0x48, 0x85, 0xc0, //0x00004f72 testq %rax, %rax - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004f75 js LBB20_1 - 0x48, 0xff, 0xcb, //0x00004f7b decq %rbx - 0x48, 0x89, 0xc1, //0x00004f7e movq %rax, %rcx - 0x48, 0x89, 0xd8, //0x00004f81 movq %rbx, %rax - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004f84 jmp LBB20_3 - //0x00004f89 LBB20_1 - 0x49, 0x83, 0xc7, 0x08, //0x00004f89 addq $8, %r15 - 0x48, 0x83, 0xf8, 0xff, //0x00004f8d cmpq $-1, %rax - 0x4d, 0x0f, 0x44, 0xe7, //0x00004f91 cmoveq %r15, %r12 - 0x49, 0x8b, 0x0c, 0x24, //0x00004f95 movq (%r12), %rcx - //0x00004f99 LBB20_3 - 0x49, 0x89, 0x0e, //0x00004f99 movq %rcx, (%r14) - 0x48, 0x83, 0xc4, 0x10, //0x00004f9c addq $16, %rsp - 0x5b, //0x00004fa0 popq %rbx - 0x41, 0x5c, //0x00004fa1 popq %r12 - 0x41, 0x5e, //0x00004fa3 popq %r14 - 0x41, 0x5f, //0x00004fa5 popq %r15 - 0x5d, //0x00004fa7 popq %rbp - 0xc3, //0x00004fa8 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004fa9 .p2align 4, 0x90 - //0x00004fb0 _skip_negative - 0x55, //0x00004fb0 pushq %rbp - 0x48, 0x89, 0xe5, //0x00004fb1 movq %rsp, %rbp - 0x41, 0x56, //0x00004fb4 pushq %r14 - 0x53, //0x00004fb6 pushq %rbx - 0x49, 0x89, 0xf6, //0x00004fb7 movq %rsi, %r14 - 0x48, 0x8b, 0x1e, //0x00004fba movq (%rsi), %rbx - 0x48, 0x8b, 0x07, //0x00004fbd movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00004fc0 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x00004fc3 movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x00004fc7 subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x00004fca movq %rax, %rdi - 0xe8, 0xae, 0x00, 0x00, 0x00, //0x00004fcd callq _do_skip_number - 0x48, 0x85, 0xc0, //0x00004fd2 testq %rax, %rax - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x00004fd5 js LBB21_1 - 0x48, 0x01, 0xd8, //0x00004fdb addq %rbx, %rax - 0x49, 0x89, 0x06, //0x00004fde movq %rax, (%r14) - 0x48, 0xff, 0xcb, //0x00004fe1 decq %rbx - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00004fe4 jmp LBB21_3 - //0x00004fe9 LBB21_1 - 0x48, 0xf7, 0xd0, //0x00004fe9 notq %rax - 0x48, 0x01, 0xc3, //0x00004fec addq %rax, %rbx - 0x49, 0x89, 0x1e, //0x00004fef movq %rbx, (%r14) - 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00004ff2 movq $-2, %rbx - //0x00004ff9 LBB21_3 - 0x48, 0x89, 0xd8, //0x00004ff9 movq %rbx, %rax - 0x5b, //0x00004ffc popq %rbx - 0x41, 0x5e, //0x00004ffd popq %r14 - 0x5d, //0x00004fff popq %rbp - 0xc3, //0x00005000 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005001 .p2align 4, 0x00 - //0x00005010 LCPI22_0 - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005010 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' - //0x00005020 LCPI22_1 - 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005020 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' - //0x00005030 LCPI22_2 - 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005030 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' - //0x00005040 LCPI22_3 - 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005040 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' - //0x00005050 LCPI22_4 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00005050 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x00005060 LCPI22_5 - 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005060 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' - //0x00005070 LCPI22_6 - 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00005070 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' - //0x00005080 .p2align 4, 0x90 - //0x00005080 _do_skip_number - 0x55, //0x00005080 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005081 movq %rsp, %rbp - 0x41, 0x57, //0x00005084 pushq %r15 - 0x41, 0x56, //0x00005086 pushq %r14 - 0x41, 0x55, //0x00005088 pushq %r13 - 0x41, 0x54, //0x0000508a pushq %r12 - 0x53, //0x0000508c pushq %rbx - 0x48, 0x85, 0xf6, //0x0000508d testq %rsi, %rsi - 0x0f, 0x84, 0x84, 0x02, 0x00, 0x00, //0x00005090 je LBB22_34 - 0x80, 0x3f, 0x30, //0x00005096 cmpb $48, (%rdi) - 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00005099 jne LBB22_5 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000509f movl $1, %edx - 0x48, 0x83, 0xfe, 0x01, //0x000050a4 cmpq $1, %rsi - 0x0f, 0x84, 0x40, 0x03, 0x00, 0x00, //0x000050a8 je LBB22_52 - 0x8a, 0x47, 0x01, //0x000050ae movb $1(%rdi), %al - 0x04, 0xd2, //0x000050b1 addb $-46, %al - 0x3c, 0x37, //0x000050b3 cmpb $55, %al - 0x0f, 0x87, 0x33, 0x03, 0x00, 0x00, //0x000050b5 ja LBB22_52 - 0x0f, 0xb6, 0xc0, //0x000050bb movzbl %al, %eax - 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000050be movabsq $36028797027352577, %rcx - 0x48, 0x0f, 0xa3, 0xc1, //0x000050c8 btq %rax, %rcx - 0x0f, 0x83, 0x1c, 0x03, 0x00, 0x00, //0x000050cc jae LBB22_52 - //0x000050d2 LBB22_5 - 0x48, 0x83, 0xfe, 0x10, //0x000050d2 cmpq $16, %rsi - 0x0f, 0x82, 0x40, 0x03, 0x00, 0x00, //0x000050d6 jb LBB22_57 - 0x4c, 0x8d, 0x5e, 0xf0, //0x000050dc leaq $-16(%rsi), %r11 - 0x4c, 0x89, 0xd8, //0x000050e0 movq %r11, %rax - 0x48, 0x83, 0xe0, 0xf0, //0x000050e3 andq $-16, %rax - 0x4c, 0x8d, 0x54, 0x38, 0x10, //0x000050e7 leaq $16(%rax,%rdi), %r10 - 0x41, 0x83, 0xe3, 0x0f, //0x000050ec andl $15, %r11d - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000050f0 movq $-1, %r9 - 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x000050f7 movdqa $-240(%rip), %xmm8 /* LCPI22_0+0(%rip) */ - 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x17, 0xff, 0xff, 0xff, //0x00005100 movdqa $-233(%rip), %xmm10 /* LCPI22_1+0(%rip) */ - 0x66, 0x44, 0x0f, 0x6f, 0x0d, 0x1e, 0xff, 0xff, 0xff, //0x00005109 movdqa $-226(%rip), %xmm9 /* LCPI22_2+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x1d, 0x26, 0xff, 0xff, 0xff, //0x00005112 movdqa $-218(%rip), %xmm3 /* LCPI22_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x25, 0x2e, 0xff, 0xff, 0xff, //0x0000511a movdqa $-210(%rip), %xmm4 /* LCPI22_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x2d, 0x36, 0xff, 0xff, 0xff, //0x00005122 movdqa $-202(%rip), %xmm5 /* LCPI22_5+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x35, 0x3e, 0xff, 0xff, 0xff, //0x0000512a movdqa $-194(%rip), %xmm6 /* LCPI22_6+0(%rip) */ - 0x41, 0xbe, 0xff, 0xff, 0xff, 0xff, //0x00005132 movl $4294967295, %r14d - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005138 movq $-1, %rax - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000513f movq $-1, %r8 - 0x49, 0x89, 0xff, //0x00005146 movq %rdi, %r15 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005149 .p2align 4, 0x90 - //0x00005150 LBB22_7 - 0xf3, 0x41, 0x0f, 0x6f, 0x3f, //0x00005150 movdqu (%r15), %xmm7 - 0x66, 0x0f, 0x6f, 0xc7, //0x00005155 movdqa %xmm7, %xmm0 - 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x00005159 pcmpgtb %xmm8, %xmm0 - 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x0000515e movdqa %xmm10, %xmm1 - 0x66, 0x0f, 0x64, 0xcf, //0x00005163 pcmpgtb %xmm7, %xmm1 - 0x66, 0x0f, 0xdb, 0xc8, //0x00005167 pand %xmm0, %xmm1 - 0x66, 0x0f, 0x6f, 0xc7, //0x0000516b movdqa %xmm7, %xmm0 - 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x0000516f pcmpeqb %xmm9, %xmm0 - 0x66, 0x0f, 0x6f, 0xd7, //0x00005174 movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005178 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xeb, 0xd0, //0x0000517c por %xmm0, %xmm2 - 0x66, 0x0f, 0x6f, 0xc7, //0x00005180 movdqa %xmm7, %xmm0 - 0x66, 0x0f, 0xeb, 0xc4, //0x00005184 por %xmm4, %xmm0 - 0x66, 0x0f, 0x74, 0xc6, //0x00005188 pcmpeqb %xmm6, %xmm0 - 0x66, 0x0f, 0x74, 0xfd, //0x0000518c pcmpeqb %xmm5, %xmm7 - 0x66, 0x44, 0x0f, 0xd7, 0xe8, //0x00005190 pmovmskb %xmm0, %r13d - 0x66, 0x0f, 0xeb, 0xc7, //0x00005195 por %xmm7, %xmm0 - 0x66, 0x0f, 0xeb, 0xca, //0x00005199 por %xmm2, %xmm1 - 0x66, 0x0f, 0xeb, 0xc8, //0x0000519d por %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xd7, //0x000051a1 pmovmskb %xmm7, %edx - 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x000051a5 pmovmskb %xmm2, %r12d - 0x66, 0x0f, 0xd7, 0xc9, //0x000051aa pmovmskb %xmm1, %ecx - 0x4c, 0x31, 0xf1, //0x000051ae xorq %r14, %rcx - 0x48, 0x0f, 0xbc, 0xc9, //0x000051b1 bsfq %rcx, %rcx - 0x83, 0xf9, 0x10, //0x000051b5 cmpl $16, %ecx - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000051b8 je LBB22_9 - 0xbb, 0xff, 0xff, 0xff, 0xff, //0x000051be movl $-1, %ebx - 0xd3, 0xe3, //0x000051c3 shll %cl, %ebx - 0xf7, 0xd3, //0x000051c5 notl %ebx - 0x21, 0xda, //0x000051c7 andl %ebx, %edx - 0x41, 0x21, 0xdd, //0x000051c9 andl %ebx, %r13d - 0x44, 0x21, 0xe3, //0x000051cc andl %r12d, %ebx - 0x41, 0x89, 0xdc, //0x000051cf movl %ebx, %r12d - //0x000051d2 LBB22_9 - 0x8d, 0x5a, 0xff, //0x000051d2 leal $-1(%rdx), %ebx - 0x21, 0xd3, //0x000051d5 andl %edx, %ebx - 0x0f, 0x85, 0x05, 0x02, 0x00, 0x00, //0x000051d7 jne LBB22_50 - 0x41, 0x8d, 0x5d, 0xff, //0x000051dd leal $-1(%r13), %ebx - 0x44, 0x21, 0xeb, //0x000051e1 andl %r13d, %ebx - 0x0f, 0x85, 0xf8, 0x01, 0x00, 0x00, //0x000051e4 jne LBB22_50 - 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x000051ea leal $-1(%r12), %ebx - 0x44, 0x21, 0xe3, //0x000051ef andl %r12d, %ebx - 0x0f, 0x85, 0xea, 0x01, 0x00, 0x00, //0x000051f2 jne LBB22_50 - 0x85, 0xd2, //0x000051f8 testl %edx, %edx - 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000051fa je LBB22_15 - 0x4c, 0x89, 0xfb, //0x00005200 movq %r15, %rbx - 0x48, 0x29, 0xfb, //0x00005203 subq %rdi, %rbx - 0x0f, 0xbc, 0xd2, //0x00005206 bsfl %edx, %edx - 0x48, 0x01, 0xda, //0x00005209 addq %rbx, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x0000520c cmpq $-1, %r8 - 0x0f, 0x85, 0xd5, 0x01, 0x00, 0x00, //0x00005210 jne LBB22_51 - 0x49, 0x89, 0xd0, //0x00005216 movq %rdx, %r8 - //0x00005219 LBB22_15 - 0x45, 0x85, 0xed, //0x00005219 testl %r13d, %r13d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000521c je LBB22_18 - 0x4c, 0x89, 0xfb, //0x00005222 movq %r15, %rbx - 0x48, 0x29, 0xfb, //0x00005225 subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd5, //0x00005228 bsfl %r13d, %edx - 0x48, 0x01, 0xda, //0x0000522c addq %rbx, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x0000522f cmpq $-1, %rax - 0x0f, 0x85, 0xb2, 0x01, 0x00, 0x00, //0x00005233 jne LBB22_51 - 0x48, 0x89, 0xd0, //0x00005239 movq %rdx, %rax - //0x0000523c LBB22_18 - 0x45, 0x85, 0xe4, //0x0000523c testl %r12d, %r12d - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000523f je LBB22_21 - 0x4c, 0x89, 0xfb, //0x00005245 movq %r15, %rbx - 0x48, 0x29, 0xfb, //0x00005248 subq %rdi, %rbx - 0x41, 0x0f, 0xbc, 0xd4, //0x0000524b bsfl %r12d, %edx - 0x48, 0x01, 0xda, //0x0000524f addq %rbx, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x00005252 cmpq $-1, %r9 - 0x0f, 0x85, 0x8f, 0x01, 0x00, 0x00, //0x00005256 jne LBB22_51 - 0x49, 0x89, 0xd1, //0x0000525c movq %rdx, %r9 - //0x0000525f LBB22_21 - 0x83, 0xf9, 0x10, //0x0000525f cmpl $16, %ecx - 0x0f, 0x85, 0xbe, 0x00, 0x00, 0x00, //0x00005262 jne LBB22_35 - 0x49, 0x83, 0xc7, 0x10, //0x00005268 addq $16, %r15 - 0x48, 0x83, 0xc6, 0xf0, //0x0000526c addq $-16, %rsi - 0x48, 0x83, 0xfe, 0x0f, //0x00005270 cmpq $15, %rsi - 0x0f, 0x87, 0xd6, 0xfe, 0xff, 0xff, //0x00005274 ja LBB22_7 - 0x4d, 0x85, 0xdb, //0x0000527a testq %r11, %r11 - 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x0000527d je LBB22_36 - //0x00005283 LBB22_24 - 0x4b, 0x8d, 0x0c, 0x1a, //0x00005283 leaq (%r10,%r11), %rcx - 0x48, 0x8d, 0x35, 0xae, 0x01, 0x00, 0x00, //0x00005287 leaq $430(%rip), %rsi /* LJTI22_0+0(%rip) */ - 0xe9, 0x19, 0x00, 0x00, 0x00, //0x0000528e jmp LBB22_26 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005293 .p2align 4, 0x90 - //0x000052a0 LBB22_25 - 0x49, 0x89, 0xda, //0x000052a0 movq %rbx, %r10 - 0x49, 0xff, 0xcb, //0x000052a3 decq %r11 - 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x000052a6 je LBB22_54 - //0x000052ac LBB22_26 - 0x41, 0x0f, 0xbe, 0x12, //0x000052ac movsbl (%r10), %edx - 0x83, 0xc2, 0xd5, //0x000052b0 addl $-43, %edx - 0x83, 0xfa, 0x3a, //0x000052b3 cmpl $58, %edx - 0x0f, 0x87, 0x70, 0x00, 0x00, 0x00, //0x000052b6 ja LBB22_36 - 0x49, 0x8d, 0x5a, 0x01, //0x000052bc leaq $1(%r10), %rbx - 0x48, 0x63, 0x14, 0x96, //0x000052c0 movslq (%rsi,%rdx,4), %rdx - 0x48, 0x01, 0xf2, //0x000052c4 addq %rsi, %rdx - 0xff, 0xe2, //0x000052c7 jmpq *%rdx - //0x000052c9 LBB22_28 - 0x48, 0x89, 0xda, //0x000052c9 movq %rbx, %rdx - 0x48, 0x29, 0xfa, //0x000052cc subq %rdi, %rdx - 0x49, 0x83, 0xf9, 0xff, //0x000052cf cmpq $-1, %r9 - 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x000052d3 jne LBB22_58 - 0x48, 0xff, 0xca, //0x000052d9 decq %rdx - 0x49, 0x89, 0xd1, //0x000052dc movq %rdx, %r9 - 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x000052df jmp LBB22_25 - //0x000052e4 LBB22_30 - 0x48, 0x89, 0xda, //0x000052e4 movq %rbx, %rdx - 0x48, 0x29, 0xfa, //0x000052e7 subq %rdi, %rdx - 0x48, 0x83, 0xf8, 0xff, //0x000052ea cmpq $-1, %rax - 0x0f, 0x85, 0x20, 0x01, 0x00, 0x00, //0x000052ee jne LBB22_58 - 0x48, 0xff, 0xca, //0x000052f4 decq %rdx - 0x48, 0x89, 0xd0, //0x000052f7 movq %rdx, %rax - 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000052fa jmp LBB22_25 - //0x000052ff LBB22_32 - 0x48, 0x89, 0xda, //0x000052ff movq %rbx, %rdx - 0x48, 0x29, 0xfa, //0x00005302 subq %rdi, %rdx - 0x49, 0x83, 0xf8, 0xff, //0x00005305 cmpq $-1, %r8 - 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00005309 jne LBB22_58 - 0x48, 0xff, 0xca, //0x0000530f decq %rdx - 0x49, 0x89, 0xd0, //0x00005312 movq %rdx, %r8 - 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00005315 jmp LBB22_25 - //0x0000531a LBB22_34 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000531a movq $-1, %rax - 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x00005321 jmp LBB22_53 - //0x00005326 LBB22_35 - 0x49, 0x01, 0xcf, //0x00005326 addq %rcx, %r15 - 0x4d, 0x89, 0xfa, //0x00005329 movq %r15, %r10 - //0x0000532c LBB22_36 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000532c movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x00005333 testq %rax, %rax - 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x00005336 je LBB22_52 - //0x0000533c LBB22_37 - 0x4d, 0x85, 0xc9, //0x0000533c testq %r9, %r9 - 0x0f, 0x84, 0xa9, 0x00, 0x00, 0x00, //0x0000533f je LBB22_52 - 0x4d, 0x85, 0xc0, //0x00005345 testq %r8, %r8 - 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x00005348 je LBB22_52 - 0x49, 0x29, 0xfa, //0x0000534e subq %rdi, %r10 - 0x49, 0x8d, 0x4a, 0xff, //0x00005351 leaq $-1(%r10), %rcx - 0x48, 0x39, 0xc8, //0x00005355 cmpq %rcx, %rax - 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00005358 je LBB22_45 - 0x49, 0x39, 0xc8, //0x0000535e cmpq %rcx, %r8 - 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x00005361 je LBB22_45 - 0x49, 0x39, 0xc9, //0x00005367 cmpq %rcx, %r9 - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000536a je LBB22_45 - 0x4d, 0x85, 0xc9, //0x00005370 testq %r9, %r9 - 0x0f, 0x8e, 0x29, 0x00, 0x00, 0x00, //0x00005373 jle LBB22_46 - 0x49, 0x8d, 0x49, 0xff, //0x00005379 leaq $-1(%r9), %rcx - 0x48, 0x39, 0xc8, //0x0000537d cmpq %rcx, %rax - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00005380 je LBB22_46 - 0x49, 0xf7, 0xd1, //0x00005386 notq %r9 - 0x4c, 0x89, 0xca, //0x00005389 movq %r9, %rdx - 0x4c, 0x89, 0xc8, //0x0000538c movq %r9, %rax - 0xe9, 0x5d, 0x00, 0x00, 0x00, //0x0000538f jmp LBB22_53 - //0x00005394 LBB22_45 - 0x49, 0xf7, 0xda, //0x00005394 negq %r10 - 0x4c, 0x89, 0xd2, //0x00005397 movq %r10, %rdx - 0x4c, 0x89, 0xd0, //0x0000539a movq %r10, %rax - 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x0000539d jmp LBB22_53 - //0x000053a2 LBB22_46 - 0x4c, 0x89, 0xc1, //0x000053a2 movq %r8, %rcx - 0x48, 0x09, 0xc1, //0x000053a5 orq %rax, %rcx - 0x49, 0x39, 0xc0, //0x000053a8 cmpq %rax, %r8 - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000053ab jl LBB22_49 - 0x48, 0x85, 0xc9, //0x000053b1 testq %rcx, %rcx - 0x0f, 0x88, 0x0e, 0x00, 0x00, 0x00, //0x000053b4 js LBB22_49 - 0x49, 0xf7, 0xd0, //0x000053ba notq %r8 - 0x4c, 0x89, 0xc2, //0x000053bd movq %r8, %rdx - 0x4c, 0x89, 0xc0, //0x000053c0 movq %r8, %rax - 0xe9, 0x29, 0x00, 0x00, 0x00, //0x000053c3 jmp LBB22_53 - //0x000053c8 LBB22_49 - 0x48, 0x85, 0xc9, //0x000053c8 testq %rcx, %rcx - 0x48, 0x8d, 0x48, 0xff, //0x000053cb leaq $-1(%rax), %rcx - 0x48, 0xf7, 0xd0, //0x000053cf notq %rax - 0x49, 0x0f, 0x48, 0xc2, //0x000053d2 cmovsq %r10, %rax - 0x49, 0x39, 0xc8, //0x000053d6 cmpq %rcx, %r8 - 0x49, 0x0f, 0x45, 0xc2, //0x000053d9 cmovneq %r10, %rax - 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000053dd jmp LBB22_53 - //0x000053e2 LBB22_50 - 0x49, 0x29, 0xff, //0x000053e2 subq %rdi, %r15 - 0x0f, 0xbc, 0xd3, //0x000053e5 bsfl %ebx, %edx - 0x4c, 0x01, 0xfa, //0x000053e8 addq %r15, %rdx - //0x000053eb LBB22_51 - 0x48, 0xf7, 0xd2, //0x000053eb notq %rdx - //0x000053ee LBB22_52 - 0x48, 0x89, 0xd0, //0x000053ee movq %rdx, %rax - //0x000053f1 LBB22_53 - 0x5b, //0x000053f1 popq %rbx - 0x41, 0x5c, //0x000053f2 popq %r12 - 0x41, 0x5d, //0x000053f4 popq %r13 - 0x41, 0x5e, //0x000053f6 popq %r14 - 0x41, 0x5f, //0x000053f8 popq %r15 - 0x5d, //0x000053fa popq %rbp - 0xc3, //0x000053fb retq - //0x000053fc LBB22_54 - 0x49, 0x89, 0xca, //0x000053fc movq %rcx, %r10 - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053ff movq $-1, %rdx - 0x48, 0x85, 0xc0, //0x00005406 testq %rax, %rax - 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005409 jne LBB22_37 - 0xe9, 0xda, 0xff, 0xff, 0xff, //0x0000540f jmp LBB22_52 - //0x00005414 LBB22_58 - 0x48, 0xf7, 0xda, //0x00005414 negq %rdx - 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x00005417 jmp LBB22_52 - //0x0000541c LBB22_57 - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000541c movq $-1, %r8 - 0x49, 0x89, 0xfa, //0x00005423 movq %rdi, %r10 - 0x49, 0x89, 0xf3, //0x00005426 movq %rsi, %r11 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005429 movq $-1, %rax - 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005430 movq $-1, %r9 - 0xe9, 0x47, 0xfe, 0xff, 0xff, //0x00005437 jmp LBB22_24 - //0x0000543c .p2align 2, 0x90 - // // .set L22_0_set_28, LBB22_28-LJTI22_0 - // // .set L22_0_set_36, LBB22_36-LJTI22_0 - // // .set L22_0_set_32, LBB22_32-LJTI22_0 - // // .set L22_0_set_25, LBB22_25-LJTI22_0 - // // .set L22_0_set_30, LBB22_30-LJTI22_0 - //0x0000543c LJTI22_0 - 0x8d, 0xfe, 0xff, 0xff, //0x0000543c .long L22_0_set_28 - 0xf0, 0xfe, 0xff, 0xff, //0x00005440 .long L22_0_set_36 - 0x8d, 0xfe, 0xff, 0xff, //0x00005444 .long L22_0_set_28 - 0xc3, 0xfe, 0xff, 0xff, //0x00005448 .long L22_0_set_32 - 0xf0, 0xfe, 0xff, 0xff, //0x0000544c .long L22_0_set_36 - 0x64, 0xfe, 0xff, 0xff, //0x00005450 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005454 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005458 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x0000545c .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005460 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005464 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005468 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x0000546c .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005470 .long L22_0_set_25 - 0x64, 0xfe, 0xff, 0xff, //0x00005474 .long L22_0_set_25 - 0xf0, 0xfe, 0xff, 0xff, //0x00005478 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000547c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005480 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005484 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005488 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000548c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005490 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005494 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005498 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000549c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054a0 .long L22_0_set_36 - 0xa8, 0xfe, 0xff, 0xff, //0x000054a4 .long L22_0_set_30 - 0xf0, 0xfe, 0xff, 0xff, //0x000054a8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054ac .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054b0 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054b4 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054b8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054bc .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054c0 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054c4 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054c8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054cc .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054d0 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054d4 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054d8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054dc .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054e0 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054e4 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054e8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054ec .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054f0 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054f4 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054f8 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x000054fc .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005500 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005504 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005508 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000550c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005510 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005514 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005518 .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x0000551c .long L22_0_set_36 - 0xf0, 0xfe, 0xff, 0xff, //0x00005520 .long L22_0_set_36 - 0xa8, 0xfe, 0xff, 0xff, //0x00005524 .long L22_0_set_30 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005528 .p2align 4, 0x90 - //0x00005530 _skip_positive - 0x55, //0x00005530 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005531 movq %rsp, %rbp - 0x41, 0x57, //0x00005534 pushq %r15 - 0x41, 0x56, //0x00005536 pushq %r14 - 0x53, //0x00005538 pushq %rbx - 0x50, //0x00005539 pushq %rax - 0x49, 0x89, 0xf6, //0x0000553a movq %rsi, %r14 - 0x4c, 0x8b, 0x3e, //0x0000553d movq (%rsi), %r15 - 0x49, 0x8d, 0x5f, 0xff, //0x00005540 leaq $-1(%r15), %rbx - 0x48, 0x8b, 0x07, //0x00005544 movq (%rdi), %rax - 0x48, 0x01, 0xd8, //0x00005547 addq %rbx, %rax - 0x48, 0x8b, 0x77, 0x08, //0x0000554a movq $8(%rdi), %rsi - 0x48, 0x29, 0xde, //0x0000554e subq %rbx, %rsi - 0x48, 0x89, 0xc7, //0x00005551 movq %rax, %rdi - 0xe8, 0x27, 0xfb, 0xff, 0xff, //0x00005554 callq _do_skip_number - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00005559 movq $-2, %rcx - 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00005560 movq $-2, %rdx - 0x48, 0x29, 0xc2, //0x00005567 subq %rax, %rdx - 0x48, 0x85, 0xc0, //0x0000556a testq %rax, %rax - 0x48, 0x8d, 0x40, 0xff, //0x0000556d leaq $-1(%rax), %rax - 0x48, 0x0f, 0x48, 0xc2, //0x00005571 cmovsq %rdx, %rax - 0x48, 0x0f, 0x49, 0xcb, //0x00005575 cmovnsq %rbx, %rcx - 0x4c, 0x01, 0xf8, //0x00005579 addq %r15, %rax - 0x49, 0x89, 0x06, //0x0000557c movq %rax, (%r14) - 0x48, 0x89, 0xc8, //0x0000557f movq %rcx, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00005582 addq $8, %rsp - 0x5b, //0x00005586 popq %rbx - 0x41, 0x5e, //0x00005587 popq %r14 - 0x41, 0x5f, //0x00005589 popq %r15 - 0x5d, //0x0000558b popq %rbp - 0xc3, //0x0000558c retq - 0x90, 0x90, 0x90, //0x0000558d .p2align 4, 0x90 - //0x00005590 _skip_number - 0x55, //0x00005590 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005591 movq %rsp, %rbp - 0x41, 0x57, //0x00005594 pushq %r15 - 0x41, 0x56, //0x00005596 pushq %r14 - 0x41, 0x55, //0x00005598 pushq %r13 - 0x41, 0x54, //0x0000559a pushq %r12 - 0x53, //0x0000559c pushq %rbx - 0x50, //0x0000559d pushq %rax - 0x49, 0x89, 0xf6, //0x0000559e movq %rsi, %r14 - 0x4c, 0x8b, 0x27, //0x000055a1 movq (%rdi), %r12 - 0x48, 0x8b, 0x77, 0x08, //0x000055a4 movq $8(%rdi), %rsi - 0x4d, 0x8b, 0x2e, //0x000055a8 movq (%r14), %r13 - 0x4c, 0x29, 0xee, //0x000055ab subq %r13, %rsi - 0x31, 0xc0, //0x000055ae xorl %eax, %eax - 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x000055b0 cmpb $45, (%r12,%r13) - 0x4b, 0x8d, 0x1c, 0x2c, //0x000055b5 leaq (%r12,%r13), %rbx - 0x0f, 0x94, 0xc0, //0x000055b9 sete %al - 0x48, 0x01, 0xc3, //0x000055bc addq %rax, %rbx - 0x48, 0x29, 0xc6, //0x000055bf subq %rax, %rsi - 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000055c2 je LBB24_1 - 0x8a, 0x03, //0x000055c8 movb (%rbx), %al - 0x04, 0xd0, //0x000055ca addb $-48, %al - 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x000055cc movq $-2, %r15 - 0x3c, 0x09, //0x000055d3 cmpb $9, %al - 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x000055d5 ja LBB24_6 - 0x48, 0x89, 0xdf, //0x000055db movq %rbx, %rdi - 0xe8, 0x9d, 0xfa, 0xff, 0xff, //0x000055de callq _do_skip_number - 0x48, 0x85, 0xc0, //0x000055e3 testq %rax, %rax - 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x000055e6 js LBB24_4 - 0x48, 0x01, 0xc3, //0x000055ec addq %rax, %rbx - 0x4d, 0x89, 0xef, //0x000055ef movq %r13, %r15 - //0x000055f2 LBB24_6 - 0x4c, 0x29, 0xe3, //0x000055f2 subq %r12, %rbx - 0x49, 0x89, 0x1e, //0x000055f5 movq %rbx, (%r14) - 0x4c, 0x89, 0xf8, //0x000055f8 movq %r15, %rax - 0x48, 0x83, 0xc4, 0x08, //0x000055fb addq $8, %rsp - 0x5b, //0x000055ff popq %rbx - 0x41, 0x5c, //0x00005600 popq %r12 - 0x41, 0x5d, //0x00005602 popq %r13 - 0x41, 0x5e, //0x00005604 popq %r14 - 0x41, 0x5f, //0x00005606 popq %r15 - 0x5d, //0x00005608 popq %rbp - 0xc3, //0x00005609 retq - //0x0000560a LBB24_1 - 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000560a movq $-1, %r15 - 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00005611 jmp LBB24_6 - //0x00005616 LBB24_4 - 0x48, 0xf7, 0xd0, //0x00005616 notq %rax - 0x48, 0x01, 0xc3, //0x00005619 addq %rax, %rbx - 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000561c jmp LBB24_6 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005621 .p2align 4, 0x90 - //0x00005630 _skip_one - 0x55, //0x00005630 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005631 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005634 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005637 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000563a movq %rdi, %rsi - 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000563d movl $1, %edi - 0x66, 0x48, 0x0f, 0x6e, 0xc7, //0x00005642 movq %rdi, %xmm0 - 0xf3, 0x0f, 0x7f, 0x00, //0x00005647 movdqu %xmm0, (%rax) - 0x48, 0x89, 0xc7, //0x0000564b movq %rax, %rdi - 0x5d, //0x0000564e popq %rbp - 0xe9, 0x0c, 0xf0, 0xff, 0xff, //0x0000564f jmp _fsm_exec - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005654 .p2align 4, 0x90 - //0x00005660 _validate_one - 0x55, //0x00005660 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005661 movq %rsp, %rbp - 0x48, 0x89, 0xd0, //0x00005664 movq %rdx, %rax - 0x48, 0x89, 0xf2, //0x00005667 movq %rsi, %rdx - 0x48, 0x89, 0xfe, //0x0000566a movq %rdi, %rsi - 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000566d movl $1, %ecx - 0x66, 0x48, 0x0f, 0x6e, 0xc1, //0x00005672 movq %rcx, %xmm0 - 0xf3, 0x0f, 0x7f, 0x00, //0x00005677 movdqu %xmm0, (%rax) - 0xb9, 0x20, 0x00, 0x00, 0x00, //0x0000567b movl $32, %ecx - 0x48, 0x89, 0xc7, //0x00005680 movq %rax, %rdi - 0x5d, //0x00005683 popq %rbp - 0xe9, 0xd7, 0xef, 0xff, 0xff, //0x00005684 jmp _fsm_exec - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005689 .p2align 4, 0x00 - //0x00005690 LCPI27_0 - 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00005690 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' - //0x000056a0 LCPI27_1 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000056a0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000056b0 LCPI27_2 - 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x000056b0 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' - //0x000056c0 LCPI27_3 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000056c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000056d0 LCPI27_4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000056d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000056e0 LCPI27_5 - 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000056e0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' - //0x000056f0 LCPI27_6 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000056f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x00005700 LCPI27_7 - 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005700 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' - //0x00005710 .p2align 4, 0x90 - //0x00005710 _skip_one_fast - 0x55, //0x00005710 pushq %rbp - 0x48, 0x89, 0xe5, //0x00005711 movq %rsp, %rbp - 0x41, 0x57, //0x00005714 pushq %r15 - 0x41, 0x56, //0x00005716 pushq %r14 - 0x41, 0x55, //0x00005718 pushq %r13 - 0x41, 0x54, //0x0000571a pushq %r12 - 0x53, //0x0000571c pushq %rbx - 0x48, 0x83, 0xec, 0x58, //0x0000571d subq $88, %rsp - 0x4c, 0x8b, 0x07, //0x00005721 movq (%rdi), %r8 - 0x4c, 0x8b, 0x4f, 0x08, //0x00005724 movq $8(%rdi), %r9 - 0x48, 0x8b, 0x16, //0x00005728 movq (%rsi), %rdx - 0x48, 0x89, 0xd0, //0x0000572b movq %rdx, %rax - 0x4c, 0x29, 0xc8, //0x0000572e subq %r9, %rax - 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00005731 jae LBB27_5 - 0x41, 0x8a, 0x0c, 0x10, //0x00005737 movb (%r8,%rdx), %cl - 0x80, 0xf9, 0x0d, //0x0000573b cmpb $13, %cl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000573e je LBB27_5 - 0x80, 0xf9, 0x20, //0x00005744 cmpb $32, %cl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005747 je LBB27_5 - 0x80, 0xc1, 0xf7, //0x0000574d addb $-9, %cl - 0x80, 0xf9, 0x01, //0x00005750 cmpb $1, %cl - 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00005753 jbe LBB27_5 - 0x49, 0x89, 0xd6, //0x00005759 movq %rdx, %r14 - 0xe9, 0x2e, 0x01, 0x00, 0x00, //0x0000575c jmp LBB27_27 - //0x00005761 LBB27_5 - 0x4c, 0x8d, 0x72, 0x01, //0x00005761 leaq $1(%rdx), %r14 - 0x4d, 0x39, 0xce, //0x00005765 cmpq %r9, %r14 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005768 jae LBB27_9 - 0x43, 0x8a, 0x0c, 0x30, //0x0000576e movb (%r8,%r14), %cl - 0x80, 0xf9, 0x0d, //0x00005772 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00005775 je LBB27_9 - 0x80, 0xf9, 0x20, //0x0000577b cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000577e je LBB27_9 - 0x80, 0xc1, 0xf7, //0x00005784 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x00005787 cmpb $1, %cl - 0x0f, 0x87, 0xff, 0x00, 0x00, 0x00, //0x0000578a ja LBB27_27 - //0x00005790 LBB27_9 - 0x4c, 0x8d, 0x72, 0x02, //0x00005790 leaq $2(%rdx), %r14 - 0x4d, 0x39, 0xce, //0x00005794 cmpq %r9, %r14 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00005797 jae LBB27_13 - 0x43, 0x8a, 0x0c, 0x30, //0x0000579d movb (%r8,%r14), %cl - 0x80, 0xf9, 0x0d, //0x000057a1 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000057a4 je LBB27_13 - 0x80, 0xf9, 0x20, //0x000057aa cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000057ad je LBB27_13 - 0x80, 0xc1, 0xf7, //0x000057b3 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x000057b6 cmpb $1, %cl - 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x000057b9 ja LBB27_27 - //0x000057bf LBB27_13 - 0x4c, 0x8d, 0x72, 0x03, //0x000057bf leaq $3(%rdx), %r14 - 0x4d, 0x39, 0xce, //0x000057c3 cmpq %r9, %r14 - 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000057c6 jae LBB27_17 - 0x43, 0x8a, 0x0c, 0x30, //0x000057cc movb (%r8,%r14), %cl - 0x80, 0xf9, 0x0d, //0x000057d0 cmpb $13, %cl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000057d3 je LBB27_17 - 0x80, 0xf9, 0x20, //0x000057d9 cmpb $32, %cl - 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000057dc je LBB27_17 - 0x80, 0xc1, 0xf7, //0x000057e2 addb $-9, %cl - 0x80, 0xf9, 0x01, //0x000057e5 cmpb $1, %cl - 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x000057e8 ja LBB27_27 - //0x000057ee LBB27_17 - 0x48, 0x8d, 0x4a, 0x04, //0x000057ee leaq $4(%rdx), %rcx - 0x49, 0x39, 0xc9, //0x000057f2 cmpq %rcx, %r9 - 0x0f, 0x86, 0x4e, 0x00, 0x00, 0x00, //0x000057f5 jbe LBB27_23 - 0x49, 0x39, 0xc9, //0x000057fb cmpq %rcx, %r9 - 0x0f, 0x84, 0x54, 0x00, 0x00, 0x00, //0x000057fe je LBB27_24 - 0x4b, 0x8d, 0x0c, 0x08, //0x00005804 leaq (%r8,%r9), %rcx - 0x48, 0x83, 0xc0, 0x04, //0x00005808 addq $4, %rax - 0x4e, 0x8d, 0x74, 0x02, 0x05, //0x0000580c leaq $5(%rdx,%r8), %r14 - 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005811 movabsq $4294977024, %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000581b .p2align 4, 0x90 - //0x00005820 LBB27_20 - 0x41, 0x0f, 0xbe, 0x5e, 0xff, //0x00005820 movsbl $-1(%r14), %ebx - 0x83, 0xfb, 0x20, //0x00005825 cmpl $32, %ebx - 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00005828 ja LBB27_26 - 0x48, 0x0f, 0xa3, 0xda, //0x0000582e btq %rbx, %rdx - 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x00005832 jae LBB27_26 - 0x49, 0xff, 0xc6, //0x00005838 incq %r14 - 0x48, 0xff, 0xc0, //0x0000583b incq %rax - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000583e jne LBB27_20 - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00005844 jmp LBB27_25 - //0x00005849 LBB27_23 - 0x48, 0x89, 0x0e, //0x00005849 movq %rcx, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000584c movq $-1, %rax - 0xe9, 0x4a, 0x01, 0x00, 0x00, //0x00005853 jmp LBB27_45 - //0x00005858 LBB27_24 - 0x4c, 0x01, 0xc1, //0x00005858 addq %r8, %rcx - //0x0000585b LBB27_25 - 0x4c, 0x29, 0xc1, //0x0000585b subq %r8, %rcx - 0x49, 0x89, 0xce, //0x0000585e movq %rcx, %r14 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005861 movq $-1, %rax - 0x4d, 0x39, 0xce, //0x00005868 cmpq %r9, %r14 - 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x0000586b jb LBB27_27 - 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00005871 jmp LBB27_45 - //0x00005876 LBB27_26 - 0x4c, 0x89, 0xc0, //0x00005876 movq %r8, %rax - 0x48, 0xf7, 0xd0, //0x00005879 notq %rax - 0x49, 0x01, 0xc6, //0x0000587c addq %rax, %r14 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000587f movq $-1, %rax - 0x4d, 0x39, 0xce, //0x00005886 cmpq %r9, %r14 - 0x0f, 0x83, 0x13, 0x01, 0x00, 0x00, //0x00005889 jae LBB27_45 - //0x0000588f LBB27_27 - 0x49, 0x8d, 0x5e, 0x01, //0x0000588f leaq $1(%r14), %rbx - 0x48, 0x89, 0x1e, //0x00005893 movq %rbx, (%rsi) - 0x43, 0x0f, 0xbe, 0x0c, 0x30, //0x00005896 movsbl (%r8,%r14), %ecx - 0x83, 0xf9, 0x7b, //0x0000589b cmpl $123, %ecx - 0x0f, 0x87, 0x20, 0x01, 0x00, 0x00, //0x0000589e ja LBB27_47 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000058a4 movq $-1, %rax - 0x48, 0x8d, 0x15, 0xaa, 0x0b, 0x00, 0x00, //0x000058ab leaq $2986(%rip), %rdx /* LJTI27_0+0(%rip) */ - 0x48, 0x63, 0x0c, 0x8a, //0x000058b2 movslq (%rdx,%rcx,4), %rcx - 0x48, 0x01, 0xd1, //0x000058b6 addq %rdx, %rcx - 0xff, 0xe1, //0x000058b9 jmpq *%rcx - //0x000058bb LBB27_29 - 0x48, 0x8b, 0x4f, 0x08, //0x000058bb movq $8(%rdi), %rcx - 0x48, 0x89, 0xc8, //0x000058bf movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x000058c2 subq %rbx, %rax - 0x4c, 0x01, 0xc3, //0x000058c5 addq %r8, %rbx - 0x48, 0x83, 0xf8, 0x10, //0x000058c8 cmpq $16, %rax - 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000058cc jb LBB27_34 - 0x4c, 0x29, 0xf1, //0x000058d2 subq %r14, %rcx - 0x48, 0x83, 0xc1, 0xef, //0x000058d5 addq $-17, %rcx - 0x48, 0x89, 0xca, //0x000058d9 movq %rcx, %rdx - 0x48, 0x83, 0xe2, 0xf0, //0x000058dc andq $-16, %rdx - 0x4c, 0x01, 0xf2, //0x000058e0 addq %r14, %rdx - 0x49, 0x8d, 0x54, 0x10, 0x11, //0x000058e3 leaq $17(%r8,%rdx), %rdx - 0x83, 0xe1, 0x0f, //0x000058e8 andl $15, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x000058eb movdqa $-611(%rip), %xmm0 /* LCPI27_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x000058f3 movdqa $-603(%rip), %xmm1 /* LCPI27_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x000058fb movdqa $-595(%rip), %xmm2 /* LCPI27_2+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005903 .p2align 4, 0x90 - //0x00005910 LBB27_31 - 0xf3, 0x0f, 0x6f, 0x1b, //0x00005910 movdqu (%rbx), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x00005914 movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x74, 0xe0, //0x00005918 pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0xeb, 0xd9, //0x0000591c por %xmm1, %xmm3 - 0x66, 0x0f, 0x74, 0xda, //0x00005920 pcmpeqb %xmm2, %xmm3 - 0x66, 0x0f, 0xeb, 0xdc, //0x00005924 por %xmm4, %xmm3 - 0x66, 0x0f, 0xd7, 0xfb, //0x00005928 pmovmskb %xmm3, %edi - 0x66, 0x85, 0xff, //0x0000592c testw %di, %di - 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000592f jne LBB27_42 - 0x48, 0x83, 0xc3, 0x10, //0x00005935 addq $16, %rbx - 0x48, 0x83, 0xc0, 0xf0, //0x00005939 addq $-16, %rax - 0x48, 0x83, 0xf8, 0x0f, //0x0000593d cmpq $15, %rax - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00005941 ja LBB27_31 - 0x48, 0x89, 0xc8, //0x00005947 movq %rcx, %rax - 0x48, 0x89, 0xd3, //0x0000594a movq %rdx, %rbx - //0x0000594d LBB27_34 - 0x48, 0x85, 0xc0, //0x0000594d testq %rax, %rax - 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00005950 je LBB27_41 - 0x48, 0x8d, 0x0c, 0x03, //0x00005956 leaq (%rbx,%rax), %rcx - //0x0000595a LBB27_36 - 0x0f, 0xb6, 0x13, //0x0000595a movzbl (%rbx), %edx - 0x80, 0xfa, 0x2c, //0x0000595d cmpb $44, %dl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005960 je LBB27_41 - 0x80, 0xfa, 0x7d, //0x00005966 cmpb $125, %dl - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00005969 je LBB27_41 - 0x80, 0xfa, 0x5d, //0x0000596f cmpb $93, %dl - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00005972 je LBB27_41 - 0x48, 0xff, 0xc3, //0x00005978 incq %rbx - 0x48, 0xff, 0xc8, //0x0000597b decq %rax - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000597e jne LBB27_36 - 0x48, 0x89, 0xcb, //0x00005984 movq %rcx, %rbx - //0x00005987 LBB27_41 - 0x4c, 0x29, 0xc3, //0x00005987 subq %r8, %rbx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000598a jmp LBB27_43 - //0x0000598f LBB27_42 - 0x0f, 0xb7, 0xc7, //0x0000598f movzwl %di, %eax - 0x48, 0x0f, 0xbc, 0xc0, //0x00005992 bsfq %rax, %rax - 0x4c, 0x29, 0xc3, //0x00005996 subq %r8, %rbx - 0x48, 0x01, 0xc3, //0x00005999 addq %rax, %rbx - //0x0000599c LBB27_43 - 0x48, 0x89, 0x1e, //0x0000599c movq %rbx, (%rsi) - //0x0000599f LBB27_44 - 0x4c, 0x89, 0xf0, //0x0000599f movq %r14, %rax - //0x000059a2 LBB27_45 - 0x48, 0x83, 0xc4, 0x58, //0x000059a2 addq $88, %rsp - 0x5b, //0x000059a6 popq %rbx - 0x41, 0x5c, //0x000059a7 popq %r12 - 0x41, 0x5d, //0x000059a9 popq %r13 - 0x41, 0x5e, //0x000059ab popq %r14 - 0x41, 0x5f, //0x000059ad popq %r15 - 0x5d, //0x000059af popq %rbp - 0xc3, //0x000059b0 retq - //0x000059b1 LBB27_46 - 0x49, 0x8d, 0x4e, 0x04, //0x000059b1 leaq $4(%r14), %rcx - 0x48, 0x3b, 0x4f, 0x08, //0x000059b5 cmpq $8(%rdi), %rcx - 0x0f, 0x87, 0xe3, 0xff, 0xff, 0xff, //0x000059b9 ja LBB27_45 - 0xe9, 0x6a, 0x05, 0x00, 0x00, //0x000059bf jmp LBB27_83 - //0x000059c4 LBB27_47 - 0x4c, 0x89, 0x36, //0x000059c4 movq %r14, (%rsi) - 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000059c7 movq $-2, %rax - 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x000059ce jmp LBB27_45 - //0x000059d3 LBB27_48 - 0x4c, 0x8b, 0x4f, 0x08, //0x000059d3 movq $8(%rdi), %r9 - 0x4d, 0x89, 0xcf, //0x000059d7 movq %r9, %r15 - 0x49, 0x29, 0xdf, //0x000059da subq %rbx, %r15 - 0x49, 0x83, 0xff, 0x20, //0x000059dd cmpq $32, %r15 - 0x0f, 0x8c, 0x3e, 0x0a, 0x00, 0x00, //0x000059e1 jl LBB27_117 - 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x000059e7 movl $4294967295, %r10d - 0x4f, 0x8d, 0x1c, 0x30, //0x000059ed leaq (%r8,%r14), %r11 - 0x4d, 0x29, 0xf1, //0x000059f1 subq %r14, %r9 - 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x000059f4 movl $31, %r13d - 0x45, 0x31, 0xff, //0x000059fa xorl %r15d, %r15d - 0x66, 0x0f, 0x6f, 0x05, 0xbb, 0xfc, 0xff, 0xff, //0x000059fd movdqa $-837(%rip), %xmm0 /* LCPI27_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xc3, 0xfc, 0xff, 0xff, //0x00005a05 movdqa $-829(%rip), %xmm1 /* LCPI27_4+0(%rip) */ - 0x45, 0x31, 0xe4, //0x00005a0d xorl %r12d, %r12d - 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00005a10 jmp LBB27_50 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a15 .p2align 4, 0x90 - //0x00005a20 LBB27_52 - 0x45, 0x31, 0xe4, //0x00005a20 xorl %r12d, %r12d - 0x85, 0xc9, //0x00005a23 testl %ecx, %ecx - 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00005a25 jne LBB27_110 - //0x00005a2b LBB27_53 - 0x49, 0x83, 0xc7, 0x20, //0x00005a2b addq $32, %r15 - 0x4b, 0x8d, 0x4c, 0x29, 0xe0, //0x00005a2f leaq $-32(%r9,%r13), %rcx - 0x49, 0x83, 0xc5, 0xe0, //0x00005a34 addq $-32, %r13 - 0x48, 0x83, 0xf9, 0x3f, //0x00005a38 cmpq $63, %rcx - 0x0f, 0x8e, 0x60, 0x09, 0x00, 0x00, //0x00005a3c jle LBB27_54 - //0x00005a42 LBB27_50 - 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x3b, 0x01, //0x00005a42 movdqu $1(%r11,%r15), %xmm2 - 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x3b, 0x11, //0x00005a49 movdqu $17(%r11,%r15), %xmm3 - 0x66, 0x0f, 0x6f, 0xe2, //0x00005a50 movdqa %xmm2, %xmm4 - 0x66, 0x0f, 0x74, 0xe0, //0x00005a54 pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0xd7, 0xfc, //0x00005a58 pmovmskb %xmm4, %edi - 0x66, 0x0f, 0x6f, 0xe3, //0x00005a5c movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x74, 0xe0, //0x00005a60 pcmpeqb %xmm0, %xmm4 - 0x66, 0x0f, 0xd7, 0xcc, //0x00005a64 pmovmskb %xmm4, %ecx - 0x48, 0xc1, 0xe1, 0x10, //0x00005a68 shlq $16, %rcx - 0x48, 0x09, 0xf9, //0x00005a6c orq %rdi, %rcx - 0x66, 0x0f, 0x74, 0xd1, //0x00005a6f pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005a73 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x74, 0xd9, //0x00005a77 pcmpeqb %xmm1, %xmm3 - 0x66, 0x0f, 0xd7, 0xfb, //0x00005a7b pmovmskb %xmm3, %edi - 0x48, 0xc1, 0xe7, 0x10, //0x00005a7f shlq $16, %rdi - 0x48, 0x09, 0xdf, //0x00005a83 orq %rbx, %rdi - 0x48, 0x89, 0xfb, //0x00005a86 movq %rdi, %rbx - 0x4c, 0x09, 0xe3, //0x00005a89 orq %r12, %rbx - 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x00005a8c je LBB27_52 - 0x44, 0x89, 0xe3, //0x00005a92 movl %r12d, %ebx - 0x44, 0x31, 0xd3, //0x00005a95 xorl %r10d, %ebx - 0x21, 0xdf, //0x00005a98 andl %ebx, %edi - 0x8d, 0x1c, 0x3f, //0x00005a9a leal (%rdi,%rdi), %ebx - 0x44, 0x09, 0xe3, //0x00005a9d orl %r12d, %ebx - 0x41, 0x8d, 0x92, 0xab, 0xaa, 0xaa, 0xaa, //0x00005aa0 leal $-1431655765(%r10), %edx - 0x31, 0xda, //0x00005aa7 xorl %ebx, %edx - 0x21, 0xfa, //0x00005aa9 andl %edi, %edx - 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005aab andl $-1431655766, %edx - 0x45, 0x31, 0xe4, //0x00005ab1 xorl %r12d, %r12d - 0x01, 0xfa, //0x00005ab4 addl %edi, %edx - 0x41, 0x0f, 0x92, 0xc4, //0x00005ab6 setb %r12b - 0x01, 0xd2, //0x00005aba addl %edx, %edx - 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00005abc xorl $1431655765, %edx - 0x21, 0xda, //0x00005ac2 andl %ebx, %edx - 0x44, 0x31, 0xd2, //0x00005ac4 xorl %r10d, %edx - 0x21, 0xd1, //0x00005ac7 andl %edx, %ecx - 0x85, 0xc9, //0x00005ac9 testl %ecx, %ecx - 0x0f, 0x84, 0x5a, 0xff, 0xff, 0xff, //0x00005acb je LBB27_53 - //0x00005ad1 LBB27_110 - 0x48, 0x0f, 0xbc, 0xc1, //0x00005ad1 bsfq %rcx, %rax - 0x49, 0x01, 0xc3, //0x00005ad5 addq %rax, %r11 - 0x4d, 0x01, 0xfb, //0x00005ad8 addq %r15, %r11 - 0x4d, 0x29, 0xc3, //0x00005adb subq %r8, %r11 - 0x49, 0x83, 0xc3, 0x02, //0x00005ade addq $2, %r11 - 0x4c, 0x89, 0x1e, //0x00005ae2 movq %r11, (%rsi) - 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x00005ae5 jmp LBB27_44 - //0x00005aea LBB27_57 - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005aea movabsq $6148914691236517205, %r13 - 0x48, 0x8b, 0x4f, 0x08, //0x00005af4 movq $8(%rdi), %rcx - 0x48, 0x29, 0xd9, //0x00005af8 subq %rbx, %rcx - 0x49, 0x01, 0xd8, //0x00005afb addq %rbx, %r8 - 0x45, 0x31, 0xff, //0x00005afe xorl %r15d, %r15d - 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xb6, 0xfb, 0xff, 0xff, //0x00005b01 movdqa $-1098(%rip), %xmm10 /* LCPI27_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0xbe, 0xfb, 0xff, 0xff, //0x00005b0a movdqa $-1090(%rip), %xmm1 /* LCPI27_4+0(%rip) */ - 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005b12 pcmpeqd %xmm9, %xmm9 - 0x66, 0x0f, 0x6f, 0x1d, 0xd1, 0xfb, 0xff, 0xff, //0x00005b17 movdqa $-1071(%rip), %xmm3 /* LCPI27_6+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x25, 0xd9, 0xfb, 0xff, 0xff, //0x00005b1f movdqa $-1063(%rip), %xmm4 /* LCPI27_7+0(%rip) */ - 0x45, 0x0f, 0x57, 0xc0, //0x00005b27 xorps %xmm8, %xmm8 - 0x45, 0x31, 0xd2, //0x00005b2b xorl %r10d, %r10d - 0x31, 0xd2, //0x00005b2e xorl %edx, %edx - 0x48, 0x89, 0x55, 0xc0, //0x00005b30 movq %rdx, $-64(%rbp) - 0x45, 0x31, 0xdb, //0x00005b34 xorl %r11d, %r11d - 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005b37 jmp LBB27_59 - //0x00005b3c LBB27_58 - 0x49, 0xc1, 0xf9, 0x3f, //0x00005b3c sarq $63, %r9 - 0x4c, 0x89, 0xf9, //0x00005b40 movq %r15, %rcx - 0x48, 0xd1, 0xe9, //0x00005b43 shrq %rcx - 0x4c, 0x21, 0xe9, //0x00005b46 andq %r13, %rcx - 0x49, 0x29, 0xcf, //0x00005b49 subq %rcx, %r15 - 0x4c, 0x89, 0xf9, //0x00005b4c movq %r15, %rcx - 0x4c, 0x21, 0xd1, //0x00005b4f andq %r10, %rcx - 0x49, 0xc1, 0xef, 0x02, //0x00005b52 shrq $2, %r15 - 0x4d, 0x21, 0xd7, //0x00005b56 andq %r10, %r15 - 0x49, 0x01, 0xcf, //0x00005b59 addq %rcx, %r15 - 0x4c, 0x89, 0xf9, //0x00005b5c movq %r15, %rcx - 0x48, 0xc1, 0xe9, 0x04, //0x00005b5f shrq $4, %rcx - 0x4c, 0x01, 0xf9, //0x00005b63 addq %r15, %rcx - 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005b66 movabsq $1085102592571150095, %rdx - 0x48, 0x21, 0xd1, //0x00005b70 andq %rdx, %rcx - 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005b73 movabsq $72340172838076673, %rdx - 0x48, 0x0f, 0xaf, 0xca, //0x00005b7d imulq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x38, //0x00005b81 shrq $56, %rcx - 0x48, 0x01, 0x4d, 0xc0, //0x00005b85 addq %rcx, $-64(%rbp) - 0x49, 0x83, 0xc0, 0x40, //0x00005b89 addq $64, %r8 - 0x48, 0x8b, 0x4d, 0xd0, //0x00005b8d movq $-48(%rbp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00005b91 addq $-64, %rcx - 0x4d, 0x89, 0xcf, //0x00005b95 movq %r9, %r15 - 0x4c, 0x8b, 0x55, 0xc8, //0x00005b98 movq $-56(%rbp), %r10 - //0x00005b9c LBB27_59 - 0x48, 0x83, 0xf9, 0x40, //0x00005b9c cmpq $64, %rcx - 0x48, 0x89, 0x4d, 0xd0, //0x00005ba0 movq %rcx, $-48(%rbp) - 0x0f, 0x8c, 0x34, 0x02, 0x00, 0x00, //0x00005ba4 jl LBB27_66 - //0x00005baa LBB27_60 - 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00005baa movdqu (%r8), %xmm0 - 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00005baf movdqu $16(%r8), %xmm5 - 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00005bb5 movdqu $32(%r8), %xmm7 - 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00005bbb movdqu $48(%r8), %xmm6 - 0x66, 0x0f, 0x6f, 0xd0, //0x00005bc1 movdqa %xmm0, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bc5 pcmpeqb %xmm10, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00005bca pmovmskb %xmm2, %r9d - 0x66, 0x0f, 0x6f, 0xd5, //0x00005bcf movdqa %xmm5, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bd3 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005bd8 pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd7, //0x00005bdc movdqa %xmm7, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005be0 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005be5 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0xd6, //0x00005be9 movdqa %xmm6, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005bed pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x00005bf2 pmovmskb %xmm2, %edx - 0x48, 0xc1, 0xe2, 0x30, //0x00005bf6 shlq $48, %rdx - 0x48, 0xc1, 0xe3, 0x20, //0x00005bfa shlq $32, %rbx - 0x48, 0xc1, 0xe1, 0x10, //0x00005bfe shlq $16, %rcx - 0x49, 0x09, 0xc9, //0x00005c02 orq %rcx, %r9 - 0x49, 0x09, 0xd9, //0x00005c05 orq %rbx, %r9 - 0x49, 0x09, 0xd1, //0x00005c08 orq %rdx, %r9 - 0x66, 0x0f, 0x6f, 0xd0, //0x00005c0b movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005c0f pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005c13 pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd5, //0x00005c17 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005c1b pcmpeqb %xmm1, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00005c1f pmovmskb %xmm2, %r12d - 0x66, 0x0f, 0x6f, 0xd7, //0x00005c24 movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005c28 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005c2c pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0xd6, //0x00005c30 movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00005c34 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x00005c38 pmovmskb %xmm2, %edx - 0x48, 0xc1, 0xe2, 0x30, //0x00005c3c shlq $48, %rdx - 0x48, 0xc1, 0xe3, 0x20, //0x00005c40 shlq $32, %rbx - 0x49, 0xc1, 0xe4, 0x10, //0x00005c44 shlq $16, %r12 - 0x4c, 0x09, 0xe1, //0x00005c48 orq %r12, %rcx - 0x48, 0x09, 0xd9, //0x00005c4b orq %rbx, %rcx - 0x48, 0x09, 0xd1, //0x00005c4e orq %rdx, %rcx - 0x48, 0x89, 0xca, //0x00005c51 movq %rcx, %rdx - 0x4c, 0x09, 0xd2, //0x00005c54 orq %r10, %rdx - 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00005c57 je LBB27_62 - 0x4c, 0x89, 0xd2, //0x00005c5d movq %r10, %rdx - 0x48, 0xf7, 0xd2, //0x00005c60 notq %rdx - 0x48, 0x21, 0xca, //0x00005c63 andq %rcx, %rdx - 0x4c, 0x8d, 0x24, 0x12, //0x00005c66 leaq (%rdx,%rdx), %r12 - 0x4d, 0x09, 0xd4, //0x00005c6a orq %r10, %r12 - 0x4d, 0x89, 0xe2, //0x00005c6d movq %r12, %r10 - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c70 movabsq $-6148914691236517206, %rbx - 0x49, 0x31, 0xda, //0x00005c7a xorq %rbx, %r10 - 0x48, 0x21, 0xd9, //0x00005c7d andq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x00005c80 andq %r10, %rcx - 0x31, 0xdb, //0x00005c83 xorl %ebx, %ebx - 0x48, 0x01, 0xd1, //0x00005c85 addq %rdx, %rcx - 0x0f, 0x92, 0xc3, //0x00005c88 setb %bl - 0x48, 0x89, 0x5d, 0xc8, //0x00005c8b movq %rbx, $-56(%rbp) - 0x48, 0x01, 0xc9, //0x00005c8f addq %rcx, %rcx - 0x4c, 0x31, 0xe9, //0x00005c92 xorq %r13, %rcx - 0x4c, 0x21, 0xe1, //0x00005c95 andq %r12, %rcx - 0x48, 0xf7, 0xd1, //0x00005c98 notq %rcx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005c9b jmp LBB27_63 - //0x00005ca0 LBB27_62 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00005ca0 movq $-1, %rcx - 0x31, 0xd2, //0x00005ca7 xorl %edx, %edx - 0x48, 0x89, 0x55, 0xc8, //0x00005ca9 movq %rdx, $-56(%rbp) - //0x00005cad LBB27_63 - 0x4c, 0x21, 0xc9, //0x00005cad andq %r9, %rcx - 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00005cb0 movq %rcx, %xmm2 - 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00005cb5 pclmulqdq $0, %xmm9, %xmm2 - 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x00005cbc movq %xmm2, %r9 - 0x4d, 0x31, 0xf9, //0x00005cc1 xorq %r15, %r9 - 0x66, 0x0f, 0x6f, 0xd0, //0x00005cc4 movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005cc8 pcmpeqb %xmm3, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00005ccc pmovmskb %xmm2, %r15d - 0x66, 0x0f, 0x6f, 0xd5, //0x00005cd1 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005cd5 pcmpeqb %xmm3, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00005cd9 pmovmskb %xmm2, %r12d - 0x66, 0x0f, 0x6f, 0xd7, //0x00005cde movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005ce2 pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00005ce6 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0xd6, //0x00005cea movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00005cee pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00005cf2 pmovmskb %xmm2, %ecx - 0x48, 0xc1, 0xe1, 0x30, //0x00005cf6 shlq $48, %rcx - 0x48, 0xc1, 0xe3, 0x20, //0x00005cfa shlq $32, %rbx - 0x49, 0xc1, 0xe4, 0x10, //0x00005cfe shlq $16, %r12 - 0x4d, 0x09, 0xe7, //0x00005d02 orq %r12, %r15 - 0x49, 0x09, 0xdf, //0x00005d05 orq %rbx, %r15 - 0x49, 0x09, 0xcf, //0x00005d08 orq %rcx, %r15 - 0x4c, 0x89, 0xc9, //0x00005d0b movq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x00005d0e notq %rcx - 0x49, 0x21, 0xcf, //0x00005d11 andq %rcx, %r15 - 0x66, 0x0f, 0x74, 0xc4, //0x00005d14 pcmpeqb %xmm4, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00005d18 pmovmskb %xmm0, %r12d - 0x66, 0x0f, 0x74, 0xec, //0x00005d1d pcmpeqb %xmm4, %xmm5 - 0x66, 0x0f, 0xd7, 0xdd, //0x00005d21 pmovmskb %xmm5, %ebx - 0x66, 0x0f, 0x74, 0xfc, //0x00005d25 pcmpeqb %xmm4, %xmm7 - 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00005d29 pmovmskb %xmm7, %r10d - 0x66, 0x0f, 0x74, 0xf4, //0x00005d2e pcmpeqb %xmm4, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x00005d32 pmovmskb %xmm6, %r13d - 0x49, 0xc1, 0xe5, 0x30, //0x00005d37 shlq $48, %r13 - 0x49, 0xc1, 0xe2, 0x20, //0x00005d3b shlq $32, %r10 - 0x48, 0xc1, 0xe3, 0x10, //0x00005d3f shlq $16, %rbx - 0x49, 0x09, 0xdc, //0x00005d43 orq %rbx, %r12 - 0x4d, 0x09, 0xd4, //0x00005d46 orq %r10, %r12 - 0x4d, 0x09, 0xec, //0x00005d49 orq %r13, %r12 - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005d4c movabsq $6148914691236517205, %r13 - 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00005d56 movabsq $3689348814741910323, %r10 - 0x49, 0x21, 0xcc, //0x00005d60 andq %rcx, %r12 - 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x00005d63 je LBB27_58 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005d69 .p2align 4, 0x90 - //0x00005d70 LBB27_64 - 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00005d70 leaq $-1(%r12), %rdx - 0x48, 0x89, 0xd3, //0x00005d75 movq %rdx, %rbx - 0x4c, 0x21, 0xfb, //0x00005d78 andq %r15, %rbx - 0x48, 0x89, 0xd9, //0x00005d7b movq %rbx, %rcx - 0x48, 0xd1, 0xe9, //0x00005d7e shrq %rcx - 0x4c, 0x21, 0xe9, //0x00005d81 andq %r13, %rcx - 0x48, 0x29, 0xcb, //0x00005d84 subq %rcx, %rbx - 0x48, 0x89, 0xd9, //0x00005d87 movq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x00005d8a andq %r10, %rcx - 0x48, 0xc1, 0xeb, 0x02, //0x00005d8d shrq $2, %rbx - 0x4c, 0x21, 0xd3, //0x00005d91 andq %r10, %rbx - 0x48, 0x01, 0xcb, //0x00005d94 addq %rcx, %rbx - 0x48, 0x89, 0xd9, //0x00005d97 movq %rbx, %rcx - 0x48, 0xc1, 0xe9, 0x04, //0x00005d9a shrq $4, %rcx - 0x48, 0x01, 0xd9, //0x00005d9e addq %rbx, %rcx - 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005da1 movabsq $1085102592571150095, %rbx - 0x48, 0x21, 0xd9, //0x00005dab andq %rbx, %rcx - 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005dae movabsq $72340172838076673, %rbx - 0x48, 0x0f, 0xaf, 0xcb, //0x00005db8 imulq %rbx, %rcx - 0x48, 0xc1, 0xe9, 0x38, //0x00005dbc shrq $56, %rcx - 0x48, 0x03, 0x4d, 0xc0, //0x00005dc0 addq $-64(%rbp), %rcx - 0x4c, 0x39, 0xd9, //0x00005dc4 cmpq %r11, %rcx - 0x0f, 0x86, 0xa3, 0x05, 0x00, 0x00, //0x00005dc7 jbe LBB27_109 - 0x49, 0xff, 0xc3, //0x00005dcd incq %r11 - 0x49, 0x21, 0xd4, //0x00005dd0 andq %rdx, %r12 - 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00005dd3 jne LBB27_64 - 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x00005dd9 jmp LBB27_58 - //0x00005dde LBB27_66 - 0x48, 0x85, 0xc9, //0x00005dde testq %rcx, %rcx - 0x0f, 0x8e, 0x46, 0x06, 0x00, 0x00, //0x00005de1 jle LBB27_118 - 0x4c, 0x89, 0xd3, //0x00005de7 movq %r10, %rbx - 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x00005dea movups %xmm8, $-80(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x00005def movups %xmm8, $-96(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00005df4 movups %xmm8, $-112(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00005df9 movups %xmm8, $-128(%rbp) - 0x44, 0x89, 0xc1, //0x00005dfe movl %r8d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00005e01 andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00005e07 cmpl $4033, %ecx - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00005e0d jb LBB27_70 - 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00005e13 cmpq $32, $-48(%rbp) - 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00005e18 jb LBB27_71 - 0x41, 0x0f, 0x10, 0x00, //0x00005e1e movups (%r8), %xmm0 - 0x0f, 0x11, 0x45, 0x80, //0x00005e22 movups %xmm0, $-128(%rbp) - 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00005e26 movups $16(%r8), %xmm0 - 0x0f, 0x11, 0x45, 0x90, //0x00005e2b movups %xmm0, $-112(%rbp) - 0x49, 0x83, 0xc0, 0x20, //0x00005e2f addq $32, %r8 - 0x48, 0x8b, 0x4d, 0xd0, //0x00005e33 movq $-48(%rbp), %rcx - 0x48, 0x8d, 0x51, 0xe0, //0x00005e37 leaq $-32(%rcx), %rdx - 0x4c, 0x8d, 0x4d, 0xa0, //0x00005e3b leaq $-96(%rbp), %r9 - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00005e3f jmp LBB27_72 - //0x00005e44 LBB27_70 - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005e44 movabsq $6148914691236517205, %r13 - 0x49, 0x89, 0xda, //0x00005e4e movq %rbx, %r10 - 0xe9, 0x54, 0xfd, 0xff, 0xff, //0x00005e51 jmp LBB27_60 - //0x00005e56 LBB27_71 - 0x4c, 0x8d, 0x4d, 0x80, //0x00005e56 leaq $-128(%rbp), %r9 - 0x48, 0x8b, 0x55, 0xd0, //0x00005e5a movq $-48(%rbp), %rdx - //0x00005e5e LBB27_72 - 0x48, 0x83, 0xfa, 0x10, //0x00005e5e cmpq $16, %rdx - 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00005e62 jb LBB27_73 - 0x41, 0x0f, 0x10, 0x00, //0x00005e68 movups (%r8), %xmm0 - 0x41, 0x0f, 0x11, 0x01, //0x00005e6c movups %xmm0, (%r9) - 0x49, 0x83, 0xc0, 0x10, //0x00005e70 addq $16, %r8 - 0x49, 0x83, 0xc1, 0x10, //0x00005e74 addq $16, %r9 - 0x48, 0x83, 0xc2, 0xf0, //0x00005e78 addq $-16, %rdx - 0x48, 0x83, 0xfa, 0x08, //0x00005e7c cmpq $8, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005e80 jae LBB27_80 - //0x00005e86 LBB27_74 - 0x48, 0x83, 0xfa, 0x04, //0x00005e86 cmpq $4, %rdx - 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x00005e8a jl LBB27_75 - //0x00005e90 LBB27_81 - 0x41, 0x8b, 0x08, //0x00005e90 movl (%r8), %ecx - 0x41, 0x89, 0x09, //0x00005e93 movl %ecx, (%r9) - 0x49, 0x83, 0xc0, 0x04, //0x00005e96 addq $4, %r8 - 0x49, 0x83, 0xc1, 0x04, //0x00005e9a addq $4, %r9 - 0x48, 0x83, 0xc2, 0xfc, //0x00005e9e addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00005ea2 cmpq $2, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005ea6 jae LBB27_76 - 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00005eac jmp LBB27_77 - //0x00005eb1 LBB27_73 - 0x48, 0x83, 0xfa, 0x08, //0x00005eb1 cmpq $8, %rdx - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00005eb5 jb LBB27_74 - //0x00005ebb LBB27_80 - 0x49, 0x8b, 0x08, //0x00005ebb movq (%r8), %rcx - 0x49, 0x89, 0x09, //0x00005ebe movq %rcx, (%r9) - 0x49, 0x83, 0xc0, 0x08, //0x00005ec1 addq $8, %r8 - 0x49, 0x83, 0xc1, 0x08, //0x00005ec5 addq $8, %r9 - 0x48, 0x83, 0xc2, 0xf8, //0x00005ec9 addq $-8, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x00005ecd cmpq $4, %rdx - 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00005ed1 jge LBB27_81 - //0x00005ed7 LBB27_75 - 0x48, 0x83, 0xfa, 0x02, //0x00005ed7 cmpq $2, %rdx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00005edb jb LBB27_77 - //0x00005ee1 LBB27_76 - 0x41, 0x0f, 0xb7, 0x08, //0x00005ee1 movzwl (%r8), %ecx - 0x66, 0x41, 0x89, 0x09, //0x00005ee5 movw %cx, (%r9) - 0x49, 0x83, 0xc0, 0x02, //0x00005ee9 addq $2, %r8 - 0x49, 0x83, 0xc1, 0x02, //0x00005eed addq $2, %r9 - 0x48, 0x83, 0xc2, 0xfe, //0x00005ef1 addq $-2, %rdx - //0x00005ef5 LBB27_77 - 0x4c, 0x89, 0xc1, //0x00005ef5 movq %r8, %rcx - 0x4c, 0x8d, 0x45, 0x80, //0x00005ef8 leaq $-128(%rbp), %r8 - 0x48, 0x85, 0xd2, //0x00005efc testq %rdx, %rdx - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005eff movabsq $6148914691236517205, %r13 - 0x49, 0x89, 0xda, //0x00005f09 movq %rbx, %r10 - 0x0f, 0x84, 0x98, 0xfc, 0xff, 0xff, //0x00005f0c je LBB27_60 - 0x8a, 0x09, //0x00005f12 movb (%rcx), %cl - 0x41, 0x88, 0x09, //0x00005f14 movb %cl, (%r9) - 0x4c, 0x8d, 0x45, 0x80, //0x00005f17 leaq $-128(%rbp), %r8 - 0xe9, 0x8a, 0xfc, 0xff, 0xff, //0x00005f1b jmp LBB27_60 - //0x00005f20 LBB27_82 - 0x49, 0x8d, 0x4e, 0x05, //0x00005f20 leaq $5(%r14), %rcx - 0x48, 0x3b, 0x4f, 0x08, //0x00005f24 cmpq $8(%rdi), %rcx - 0x0f, 0x87, 0x74, 0xfa, 0xff, 0xff, //0x00005f28 ja LBB27_45 - //0x00005f2e LBB27_83 - 0x48, 0x89, 0x0e, //0x00005f2e movq %rcx, (%rsi) - 0xe9, 0x69, 0xfa, 0xff, 0xff, //0x00005f31 jmp LBB27_44 - //0x00005f36 LBB27_84 - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f36 movabsq $6148914691236517205, %r13 - 0x48, 0x8b, 0x4f, 0x08, //0x00005f40 movq $8(%rdi), %rcx - 0x48, 0x29, 0xd9, //0x00005f44 subq %rbx, %rcx - 0x49, 0x01, 0xd8, //0x00005f47 addq %rbx, %r8 - 0x45, 0x31, 0xff, //0x00005f4a xorl %r15d, %r15d - 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x6a, 0xf7, 0xff, 0xff, //0x00005f4d movdqa $-2198(%rip), %xmm10 /* LCPI27_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x72, 0xf7, 0xff, 0xff, //0x00005f56 movdqa $-2190(%rip), %xmm1 /* LCPI27_4+0(%rip) */ - 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005f5e pcmpeqd %xmm9, %xmm9 - 0x66, 0x0f, 0x6f, 0x1d, 0x75, 0xf7, 0xff, 0xff, //0x00005f63 movdqa $-2187(%rip), %xmm3 /* LCPI27_5+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x25, 0x3d, 0xf7, 0xff, 0xff, //0x00005f6b movdqa $-2243(%rip), %xmm4 /* LCPI27_2+0(%rip) */ - 0x45, 0x0f, 0x57, 0xc0, //0x00005f73 xorps %xmm8, %xmm8 - 0x45, 0x31, 0xd2, //0x00005f77 xorl %r10d, %r10d - 0x31, 0xd2, //0x00005f7a xorl %edx, %edx - 0x48, 0x89, 0x55, 0xc0, //0x00005f7c movq %rdx, $-64(%rbp) - 0x45, 0x31, 0xdb, //0x00005f80 xorl %r11d, %r11d - 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005f83 jmp LBB27_86 - //0x00005f88 LBB27_85 - 0x49, 0xc1, 0xf9, 0x3f, //0x00005f88 sarq $63, %r9 - 0x4c, 0x89, 0xf9, //0x00005f8c movq %r15, %rcx - 0x48, 0xd1, 0xe9, //0x00005f8f shrq %rcx - 0x4c, 0x21, 0xe9, //0x00005f92 andq %r13, %rcx - 0x49, 0x29, 0xcf, //0x00005f95 subq %rcx, %r15 - 0x4c, 0x89, 0xf9, //0x00005f98 movq %r15, %rcx - 0x4c, 0x21, 0xd1, //0x00005f9b andq %r10, %rcx - 0x49, 0xc1, 0xef, 0x02, //0x00005f9e shrq $2, %r15 - 0x4d, 0x21, 0xd7, //0x00005fa2 andq %r10, %r15 - 0x49, 0x01, 0xcf, //0x00005fa5 addq %rcx, %r15 - 0x4c, 0x89, 0xf9, //0x00005fa8 movq %r15, %rcx - 0x48, 0xc1, 0xe9, 0x04, //0x00005fab shrq $4, %rcx - 0x4c, 0x01, 0xf9, //0x00005faf addq %r15, %rcx - 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005fb2 movabsq $1085102592571150095, %rdx - 0x48, 0x21, 0xd1, //0x00005fbc andq %rdx, %rcx - 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005fbf movabsq $72340172838076673, %rdx - 0x48, 0x0f, 0xaf, 0xca, //0x00005fc9 imulq %rdx, %rcx - 0x48, 0xc1, 0xe9, 0x38, //0x00005fcd shrq $56, %rcx - 0x48, 0x01, 0x4d, 0xc0, //0x00005fd1 addq %rcx, $-64(%rbp) - 0x49, 0x83, 0xc0, 0x40, //0x00005fd5 addq $64, %r8 - 0x48, 0x8b, 0x4d, 0xd0, //0x00005fd9 movq $-48(%rbp), %rcx - 0x48, 0x83, 0xc1, 0xc0, //0x00005fdd addq $-64, %rcx - 0x4d, 0x89, 0xcf, //0x00005fe1 movq %r9, %r15 - 0x4c, 0x8b, 0x55, 0xc8, //0x00005fe4 movq $-56(%rbp), %r10 - //0x00005fe8 LBB27_86 - 0x48, 0x83, 0xf9, 0x40, //0x00005fe8 cmpq $64, %rcx - 0x48, 0x89, 0x4d, 0xd0, //0x00005fec movq %rcx, $-48(%rbp) - 0x0f, 0x8c, 0x38, 0x02, 0x00, 0x00, //0x00005ff0 jl LBB27_93 - //0x00005ff6 LBB27_87 - 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00005ff6 movdqu (%r8), %xmm0 - 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x00005ffb movdqu $16(%r8), %xmm5 - 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00006001 movdqu $32(%r8), %xmm7 - 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00006007 movdqu $48(%r8), %xmm6 - 0x66, 0x0f, 0x6f, 0xd0, //0x0000600d movdqa %xmm0, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006011 pcmpeqb %xmm10, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00006016 pmovmskb %xmm2, %r9d - 0x66, 0x0f, 0x6f, 0xd5, //0x0000601b movdqa %xmm5, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000601f pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x00006024 pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd7, //0x00006028 movdqa %xmm7, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000602c pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00006031 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0xd6, //0x00006035 movdqa %xmm6, %xmm2 - 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006039 pcmpeqb %xmm10, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x0000603e pmovmskb %xmm2, %edx - 0x48, 0xc1, 0xe2, 0x30, //0x00006042 shlq $48, %rdx - 0x48, 0xc1, 0xe3, 0x20, //0x00006046 shlq $32, %rbx - 0x48, 0xc1, 0xe1, 0x10, //0x0000604a shlq $16, %rcx - 0x49, 0x09, 0xc9, //0x0000604e orq %rcx, %r9 - 0x49, 0x09, 0xd9, //0x00006051 orq %rbx, %r9 - 0x49, 0x09, 0xd1, //0x00006054 orq %rdx, %r9 - 0x66, 0x0f, 0x6f, 0xd0, //0x00006057 movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x0000605b pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x0000605f pmovmskb %xmm2, %ecx - 0x66, 0x0f, 0x6f, 0xd5, //0x00006063 movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00006067 pcmpeqb %xmm1, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x0000606b pmovmskb %xmm2, %r12d - 0x66, 0x0f, 0x6f, 0xd7, //0x00006070 movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00006074 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00006078 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0xd6, //0x0000607c movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd1, //0x00006080 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xd2, //0x00006084 pmovmskb %xmm2, %edx - 0x48, 0xc1, 0xe2, 0x30, //0x00006088 shlq $48, %rdx - 0x48, 0xc1, 0xe3, 0x20, //0x0000608c shlq $32, %rbx - 0x49, 0xc1, 0xe4, 0x10, //0x00006090 shlq $16, %r12 - 0x4c, 0x09, 0xe1, //0x00006094 orq %r12, %rcx - 0x48, 0x09, 0xd9, //0x00006097 orq %rbx, %rcx - 0x48, 0x09, 0xd1, //0x0000609a orq %rdx, %rcx - 0x48, 0x89, 0xca, //0x0000609d movq %rcx, %rdx - 0x4c, 0x09, 0xd2, //0x000060a0 orq %r10, %rdx - 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x000060a3 je LBB27_89 - 0x4c, 0x89, 0xd2, //0x000060a9 movq %r10, %rdx - 0x48, 0xf7, 0xd2, //0x000060ac notq %rdx - 0x48, 0x21, 0xca, //0x000060af andq %rcx, %rdx - 0x4c, 0x8d, 0x24, 0x12, //0x000060b2 leaq (%rdx,%rdx), %r12 - 0x4d, 0x09, 0xd4, //0x000060b6 orq %r10, %r12 - 0x4d, 0x89, 0xe2, //0x000060b9 movq %r12, %r10 - 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000060bc movabsq $-6148914691236517206, %rbx - 0x49, 0x31, 0xda, //0x000060c6 xorq %rbx, %r10 - 0x48, 0x21, 0xd9, //0x000060c9 andq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x000060cc andq %r10, %rcx - 0x31, 0xdb, //0x000060cf xorl %ebx, %ebx - 0x48, 0x01, 0xd1, //0x000060d1 addq %rdx, %rcx - 0x0f, 0x92, 0xc3, //0x000060d4 setb %bl - 0x48, 0x89, 0x5d, 0xc8, //0x000060d7 movq %rbx, $-56(%rbp) - 0x48, 0x01, 0xc9, //0x000060db addq %rcx, %rcx - 0x4c, 0x31, 0xe9, //0x000060de xorq %r13, %rcx - 0x4c, 0x21, 0xe1, //0x000060e1 andq %r12, %rcx - 0x48, 0xf7, 0xd1, //0x000060e4 notq %rcx - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000060e7 jmp LBB27_90 - //0x000060ec LBB27_89 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000060ec movq $-1, %rcx - 0x31, 0xd2, //0x000060f3 xorl %edx, %edx - 0x48, 0x89, 0x55, 0xc8, //0x000060f5 movq %rdx, $-56(%rbp) - //0x000060f9 LBB27_90 - 0x4c, 0x21, 0xc9, //0x000060f9 andq %r9, %rcx - 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x000060fc movq %rcx, %xmm2 - 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00006101 pclmulqdq $0, %xmm9, %xmm2 - 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x00006108 movq %xmm2, %r9 - 0x4d, 0x31, 0xf9, //0x0000610d xorq %r15, %r9 - 0x66, 0x0f, 0x6f, 0xd0, //0x00006110 movdqa %xmm0, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00006114 pcmpeqb %xmm3, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00006118 pmovmskb %xmm2, %r15d - 0x66, 0x0f, 0x6f, 0xd5, //0x0000611d movdqa %xmm5, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x00006121 pcmpeqb %xmm3, %xmm2 - 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00006125 pmovmskb %xmm2, %r12d - 0x66, 0x0f, 0x6f, 0xd7, //0x0000612a movdqa %xmm7, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x0000612e pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x00006132 pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x6f, 0xd6, //0x00006136 movdqa %xmm6, %xmm2 - 0x66, 0x0f, 0x74, 0xd3, //0x0000613a pcmpeqb %xmm3, %xmm2 - 0x66, 0x0f, 0xd7, 0xca, //0x0000613e pmovmskb %xmm2, %ecx - 0x48, 0xc1, 0xe1, 0x30, //0x00006142 shlq $48, %rcx - 0x48, 0xc1, 0xe3, 0x20, //0x00006146 shlq $32, %rbx - 0x49, 0xc1, 0xe4, 0x10, //0x0000614a shlq $16, %r12 - 0x4d, 0x09, 0xe7, //0x0000614e orq %r12, %r15 - 0x49, 0x09, 0xdf, //0x00006151 orq %rbx, %r15 - 0x49, 0x09, 0xcf, //0x00006154 orq %rcx, %r15 - 0x4c, 0x89, 0xc9, //0x00006157 movq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x0000615a notq %rcx - 0x49, 0x21, 0xcf, //0x0000615d andq %rcx, %r15 - 0x66, 0x0f, 0x74, 0xc4, //0x00006160 pcmpeqb %xmm4, %xmm0 - 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00006164 pmovmskb %xmm0, %r12d - 0x66, 0x0f, 0x74, 0xec, //0x00006169 pcmpeqb %xmm4, %xmm5 - 0x66, 0x0f, 0xd7, 0xdd, //0x0000616d pmovmskb %xmm5, %ebx - 0x66, 0x0f, 0x74, 0xfc, //0x00006171 pcmpeqb %xmm4, %xmm7 - 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00006175 pmovmskb %xmm7, %r10d - 0x66, 0x0f, 0x74, 0xf4, //0x0000617a pcmpeqb %xmm4, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x0000617e pmovmskb %xmm6, %r13d - 0x49, 0xc1, 0xe5, 0x30, //0x00006183 shlq $48, %r13 - 0x49, 0xc1, 0xe2, 0x20, //0x00006187 shlq $32, %r10 - 0x48, 0xc1, 0xe3, 0x10, //0x0000618b shlq $16, %rbx - 0x49, 0x09, 0xdc, //0x0000618f orq %rbx, %r12 - 0x4d, 0x09, 0xd4, //0x00006192 orq %r10, %r12 - 0x4d, 0x09, 0xec, //0x00006195 orq %r13, %r12 - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006198 movabsq $6148914691236517205, %r13 - 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000061a2 movabsq $3689348814741910323, %r10 - 0x49, 0x21, 0xcc, //0x000061ac andq %rcx, %r12 - 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x000061af je LBB27_85 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000061b5 .p2align 4, 0x90 - //0x000061c0 LBB27_91 - 0x49, 0x8d, 0x54, 0x24, 0xff, //0x000061c0 leaq $-1(%r12), %rdx - 0x48, 0x89, 0xd3, //0x000061c5 movq %rdx, %rbx - 0x4c, 0x21, 0xfb, //0x000061c8 andq %r15, %rbx - 0x48, 0x89, 0xd9, //0x000061cb movq %rbx, %rcx - 0x48, 0xd1, 0xe9, //0x000061ce shrq %rcx - 0x4c, 0x21, 0xe9, //0x000061d1 andq %r13, %rcx - 0x48, 0x29, 0xcb, //0x000061d4 subq %rcx, %rbx - 0x48, 0x89, 0xd9, //0x000061d7 movq %rbx, %rcx - 0x4c, 0x21, 0xd1, //0x000061da andq %r10, %rcx - 0x48, 0xc1, 0xeb, 0x02, //0x000061dd shrq $2, %rbx - 0x4c, 0x21, 0xd3, //0x000061e1 andq %r10, %rbx - 0x48, 0x01, 0xcb, //0x000061e4 addq %rcx, %rbx - 0x48, 0x89, 0xd9, //0x000061e7 movq %rbx, %rcx - 0x48, 0xc1, 0xe9, 0x04, //0x000061ea shrq $4, %rcx - 0x48, 0x01, 0xd9, //0x000061ee addq %rbx, %rcx - 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000061f1 movabsq $1085102592571150095, %rbx - 0x48, 0x21, 0xd9, //0x000061fb andq %rbx, %rcx - 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000061fe movabsq $72340172838076673, %rbx - 0x48, 0x0f, 0xaf, 0xcb, //0x00006208 imulq %rbx, %rcx - 0x48, 0xc1, 0xe9, 0x38, //0x0000620c shrq $56, %rcx - 0x48, 0x03, 0x4d, 0xc0, //0x00006210 addq $-64(%rbp), %rcx - 0x4c, 0x39, 0xd9, //0x00006214 cmpq %r11, %rcx - 0x0f, 0x86, 0x53, 0x01, 0x00, 0x00, //0x00006217 jbe LBB27_109 - 0x49, 0xff, 0xc3, //0x0000621d incq %r11 - 0x49, 0x21, 0xd4, //0x00006220 andq %rdx, %r12 - 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006223 jne LBB27_91 - 0xe9, 0x5a, 0xfd, 0xff, 0xff, //0x00006229 jmp LBB27_85 - //0x0000622e LBB27_93 - 0x48, 0x85, 0xc9, //0x0000622e testq %rcx, %rcx - 0x0f, 0x8e, 0xf6, 0x01, 0x00, 0x00, //0x00006231 jle LBB27_118 - 0x4c, 0x89, 0xd3, //0x00006237 movq %r10, %rbx - 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000623a movups %xmm8, $-80(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000623f movups %xmm8, $-96(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006244 movups %xmm8, $-112(%rbp) - 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006249 movups %xmm8, $-128(%rbp) - 0x44, 0x89, 0xc1, //0x0000624e movl %r8d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006251 andl $4095, %ecx - 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006257 cmpl $4033, %ecx - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000625d jb LBB27_97 - 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006263 cmpq $32, $-48(%rbp) - 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006268 jb LBB27_98 - 0x41, 0x0f, 0x10, 0x00, //0x0000626e movups (%r8), %xmm0 - 0x0f, 0x11, 0x45, 0x80, //0x00006272 movups %xmm0, $-128(%rbp) - 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00006276 movups $16(%r8), %xmm0 - 0x0f, 0x11, 0x45, 0x90, //0x0000627b movups %xmm0, $-112(%rbp) - 0x49, 0x83, 0xc0, 0x20, //0x0000627f addq $32, %r8 - 0x48, 0x8b, 0x4d, 0xd0, //0x00006283 movq $-48(%rbp), %rcx - 0x48, 0x8d, 0x51, 0xe0, //0x00006287 leaq $-32(%rcx), %rdx - 0x4c, 0x8d, 0x4d, 0xa0, //0x0000628b leaq $-96(%rbp), %r9 - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x0000628f jmp LBB27_99 - //0x00006294 LBB27_97 - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006294 movabsq $6148914691236517205, %r13 - 0x49, 0x89, 0xda, //0x0000629e movq %rbx, %r10 - 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x000062a1 jmp LBB27_87 - //0x000062a6 LBB27_98 - 0x4c, 0x8d, 0x4d, 0x80, //0x000062a6 leaq $-128(%rbp), %r9 - 0x48, 0x8b, 0x55, 0xd0, //0x000062aa movq $-48(%rbp), %rdx - //0x000062ae LBB27_99 - 0x48, 0x83, 0xfa, 0x10, //0x000062ae cmpq $16, %rdx - 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x000062b2 jb LBB27_100 - 0x41, 0x0f, 0x10, 0x00, //0x000062b8 movups (%r8), %xmm0 - 0x41, 0x0f, 0x11, 0x01, //0x000062bc movups %xmm0, (%r9) - 0x49, 0x83, 0xc0, 0x10, //0x000062c0 addq $16, %r8 - 0x49, 0x83, 0xc1, 0x10, //0x000062c4 addq $16, %r9 - 0x48, 0x83, 0xc2, 0xf0, //0x000062c8 addq $-16, %rdx - 0x48, 0x83, 0xfa, 0x08, //0x000062cc cmpq $8, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000062d0 jae LBB27_107 - //0x000062d6 LBB27_101 - 0x48, 0x83, 0xfa, 0x04, //0x000062d6 cmpq $4, %rdx - 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000062da jl LBB27_102 - //0x000062e0 LBB27_108 - 0x41, 0x8b, 0x08, //0x000062e0 movl (%r8), %ecx - 0x41, 0x89, 0x09, //0x000062e3 movl %ecx, (%r9) - 0x49, 0x83, 0xc0, 0x04, //0x000062e6 addq $4, %r8 - 0x49, 0x83, 0xc1, 0x04, //0x000062ea addq $4, %r9 - 0x48, 0x83, 0xc2, 0xfc, //0x000062ee addq $-4, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x000062f2 cmpq $2, %rdx - 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000062f6 jae LBB27_103 - 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000062fc jmp LBB27_104 - //0x00006301 LBB27_100 - 0x48, 0x83, 0xfa, 0x08, //0x00006301 cmpq $8, %rdx - 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00006305 jb LBB27_101 - //0x0000630b LBB27_107 - 0x49, 0x8b, 0x08, //0x0000630b movq (%r8), %rcx - 0x49, 0x89, 0x09, //0x0000630e movq %rcx, (%r9) - 0x49, 0x83, 0xc0, 0x08, //0x00006311 addq $8, %r8 - 0x49, 0x83, 0xc1, 0x08, //0x00006315 addq $8, %r9 - 0x48, 0x83, 0xc2, 0xf8, //0x00006319 addq $-8, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x0000631d cmpq $4, %rdx - 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00006321 jge LBB27_108 - //0x00006327 LBB27_102 - 0x48, 0x83, 0xfa, 0x02, //0x00006327 cmpq $2, %rdx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000632b jb LBB27_104 - //0x00006331 LBB27_103 - 0x41, 0x0f, 0xb7, 0x08, //0x00006331 movzwl (%r8), %ecx - 0x66, 0x41, 0x89, 0x09, //0x00006335 movw %cx, (%r9) - 0x49, 0x83, 0xc0, 0x02, //0x00006339 addq $2, %r8 - 0x49, 0x83, 0xc1, 0x02, //0x0000633d addq $2, %r9 - 0x48, 0x83, 0xc2, 0xfe, //0x00006341 addq $-2, %rdx - //0x00006345 LBB27_104 - 0x4c, 0x89, 0xc1, //0x00006345 movq %r8, %rcx - 0x4c, 0x8d, 0x45, 0x80, //0x00006348 leaq $-128(%rbp), %r8 - 0x48, 0x85, 0xd2, //0x0000634c testq %rdx, %rdx - 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000634f movabsq $6148914691236517205, %r13 - 0x49, 0x89, 0xda, //0x00006359 movq %rbx, %r10 - 0x0f, 0x84, 0x94, 0xfc, 0xff, 0xff, //0x0000635c je LBB27_87 - 0x8a, 0x09, //0x00006362 movb (%rcx), %cl - 0x41, 0x88, 0x09, //0x00006364 movb %cl, (%r9) - 0x4c, 0x8d, 0x45, 0x80, //0x00006367 leaq $-128(%rbp), %r8 - 0xe9, 0x86, 0xfc, 0xff, 0xff, //0x0000636b jmp LBB27_87 - //0x00006370 LBB27_109 - 0x48, 0x8b, 0x47, 0x08, //0x00006370 movq $8(%rdi), %rax - 0x49, 0x0f, 0xbc, 0xcc, //0x00006374 bsfq %r12, %rcx - 0x48, 0x2b, 0x4d, 0xd0, //0x00006378 subq $-48(%rbp), %rcx - 0x48, 0x8d, 0x44, 0x01, 0x01, //0x0000637c leaq $1(%rcx,%rax), %rax - 0x48, 0x89, 0x06, //0x00006381 movq %rax, (%rsi) - 0x48, 0x8b, 0x4f, 0x08, //0x00006384 movq $8(%rdi), %rcx - 0x48, 0x39, 0xc8, //0x00006388 cmpq %rcx, %rax - 0x48, 0x0f, 0x47, 0xc1, //0x0000638b cmovaq %rcx, %rax - 0x48, 0x89, 0x06, //0x0000638f movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006392 movq $-1, %rax - 0x4c, 0x0f, 0x47, 0xf0, //0x00006399 cmovaq %rax, %r14 - 0xe9, 0xfd, 0xf5, 0xff, 0xff, //0x0000639d jmp LBB27_44 - //0x000063a2 LBB27_54 - 0x4d, 0x85, 0xe4, //0x000063a2 testq %r12, %r12 - 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x000063a5 jne LBB27_119 - 0x4b, 0x8d, 0x5c, 0x1f, 0x01, //0x000063ab leaq $1(%r15,%r11), %rbx - 0x49, 0xf7, 0xd7, //0x000063b0 notq %r15 - 0x4d, 0x01, 0xcf, //0x000063b3 addq %r9, %r15 - //0x000063b6 LBB27_56 - 0x4d, 0x85, 0xff, //0x000063b6 testq %r15, %r15 - 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x000063b9 jg LBB27_113 - 0xe9, 0xde, 0xf5, 0xff, 0xff, //0x000063bf jmp LBB27_45 - //0x000063c4 LBB27_111 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000063c4 movq $-2, %rcx - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000063cb movl $2, %eax - 0x48, 0x01, 0xc3, //0x000063d0 addq %rax, %rbx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063d3 movq $-1, %rax - 0x49, 0x01, 0xcf, //0x000063da addq %rcx, %r15 - 0x0f, 0x8e, 0xbf, 0xf5, 0xff, 0xff, //0x000063dd jle LBB27_45 - //0x000063e3 LBB27_113 - 0x0f, 0xb6, 0x03, //0x000063e3 movzbl (%rbx), %eax - 0x3c, 0x5c, //0x000063e6 cmpb $92, %al - 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x000063e8 je LBB27_111 - 0x3c, 0x22, //0x000063ee cmpb $34, %al - 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000063f0 je LBB27_116 - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000063f6 movq $-1, %rcx - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000063fd movl $1, %eax - 0x48, 0x01, 0xc3, //0x00006402 addq %rax, %rbx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006405 movq $-1, %rax - 0x49, 0x01, 0xcf, //0x0000640c addq %rcx, %r15 - 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x0000640f jg LBB27_113 - 0xe9, 0x88, 0xf5, 0xff, 0xff, //0x00006415 jmp LBB27_45 - //0x0000641a LBB27_116 - 0x4c, 0x29, 0xc3, //0x0000641a subq %r8, %rbx - 0x48, 0xff, 0xc3, //0x0000641d incq %rbx - 0xe9, 0x77, 0xf5, 0xff, 0xff, //0x00006420 jmp LBB27_43 - //0x00006425 LBB27_117 - 0x4c, 0x01, 0xc3, //0x00006425 addq %r8, %rbx - 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00006428 jmp LBB27_56 - //0x0000642d LBB27_118 - 0x48, 0x8b, 0x4f, 0x08, //0x0000642d movq $8(%rdi), %rcx - 0x48, 0x89, 0x0e, //0x00006431 movq %rcx, (%rsi) - 0xe9, 0x69, 0xf5, 0xff, 0xff, //0x00006434 jmp LBB27_45 - //0x00006439 LBB27_119 - 0x49, 0x8d, 0x49, 0xff, //0x00006439 leaq $-1(%r9), %rcx - 0x4c, 0x39, 0xf9, //0x0000643d cmpq %r15, %rcx - 0x0f, 0x84, 0x5c, 0xf5, 0xff, 0xff, //0x00006440 je LBB27_45 - 0x4b, 0x8d, 0x5c, 0x1f, 0x02, //0x00006446 leaq $2(%r15,%r11), %rbx - 0x4d, 0x29, 0xf9, //0x0000644b subq %r15, %r9 - 0x49, 0x83, 0xc1, 0xfe, //0x0000644e addq $-2, %r9 - 0x4d, 0x89, 0xcf, //0x00006452 movq %r9, %r15 - 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00006455 jmp LBB27_56 - 0x90, 0x90, //0x0000645a .p2align 2, 0x90 - // // .set L27_0_set_45, LBB27_45-LJTI27_0 - // // .set L27_0_set_47, LBB27_47-LJTI27_0 - // // .set L27_0_set_48, LBB27_48-LJTI27_0 - // // .set L27_0_set_29, LBB27_29-LJTI27_0 - // // .set L27_0_set_57, LBB27_57-LJTI27_0 - // // .set L27_0_set_82, LBB27_82-LJTI27_0 - // // .set L27_0_set_46, LBB27_46-LJTI27_0 - // // .set L27_0_set_84, LBB27_84-LJTI27_0 - //0x0000645c LJTI27_0 - 0x46, 0xf5, 0xff, 0xff, //0x0000645c .long L27_0_set_45 - 0x68, 0xf5, 0xff, 0xff, //0x00006460 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006464 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006468 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000646c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006470 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006474 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006478 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000647c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006480 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006484 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006488 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000648c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006490 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006494 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006498 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000649c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064a0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064a4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064a8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064ac .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064b0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064b4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064b8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064bc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064c0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064c4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064c8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064cc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064d0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064d4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064d8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064dc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064e0 .long L27_0_set_47 - 0x77, 0xf5, 0xff, 0xff, //0x000064e4 .long L27_0_set_48 - 0x68, 0xf5, 0xff, 0xff, //0x000064e8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064ec .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064f0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064f4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064f8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000064fc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006500 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006504 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006508 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000650c .long L27_0_set_47 - 0x5f, 0xf4, 0xff, 0xff, //0x00006510 .long L27_0_set_29 - 0x68, 0xf5, 0xff, 0xff, //0x00006514 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006518 .long L27_0_set_47 - 0x5f, 0xf4, 0xff, 0xff, //0x0000651c .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006520 .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006524 .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006528 .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x0000652c .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006530 .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006534 .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006538 .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x0000653c .long L27_0_set_29 - 0x5f, 0xf4, 0xff, 0xff, //0x00006540 .long L27_0_set_29 - 0x68, 0xf5, 0xff, 0xff, //0x00006544 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006548 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000654c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006550 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006554 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006558 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000655c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006560 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006564 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006568 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000656c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006570 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006574 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006578 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000657c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006580 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006584 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006588 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000658c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006590 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006594 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006598 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000659c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065a0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065a4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065a8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065ac .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065b0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065b4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065b8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065bc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065c0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065c4 .long L27_0_set_47 - 0x8e, 0xf6, 0xff, 0xff, //0x000065c8 .long L27_0_set_57 - 0x68, 0xf5, 0xff, 0xff, //0x000065cc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065d0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065d4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065d8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065dc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065e0 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065e4 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065e8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065ec .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065f0 .long L27_0_set_47 - 0xc4, 0xfa, 0xff, 0xff, //0x000065f4 .long L27_0_set_82 - 0x68, 0xf5, 0xff, 0xff, //0x000065f8 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x000065fc .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006600 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006604 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006608 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000660c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006610 .long L27_0_set_47 - 0x55, 0xf5, 0xff, 0xff, //0x00006614 .long L27_0_set_46 - 0x68, 0xf5, 0xff, 0xff, //0x00006618 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000661c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006620 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006624 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006628 .long L27_0_set_47 - 0x55, 0xf5, 0xff, 0xff, //0x0000662c .long L27_0_set_46 - 0x68, 0xf5, 0xff, 0xff, //0x00006630 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006634 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006638 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x0000663c .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006640 .long L27_0_set_47 - 0x68, 0xf5, 0xff, 0xff, //0x00006644 .long L27_0_set_47 - 0xda, 0xfa, 0xff, 0xff, //0x00006648 .long L27_0_set_84 - 0x90, 0x90, 0x90, 0x90, //0x0000664c .p2align 4, 0x90 - //0x00006650 _get_by_path - 0x55, //0x00006650 pushq %rbp - 0x48, 0x89, 0xe5, //0x00006651 movq %rsp, %rbp - 0x41, 0x57, //0x00006654 pushq %r15 - 0x41, 0x56, //0x00006656 pushq %r14 - 0x41, 0x55, //0x00006658 pushq %r13 - 0x41, 0x54, //0x0000665a pushq %r12 - 0x53, //0x0000665c pushq %rbx - 0x48, 0x83, 0xec, 0x38, //0x0000665d subq $56, %rsp - 0x49, 0x89, 0xf7, //0x00006661 movq %rsi, %r15 - 0x49, 0x89, 0xfb, //0x00006664 movq %rdi, %r11 - 0x4c, 0x8b, 0x52, 0x08, //0x00006667 movq $8(%rdx), %r10 - 0x4d, 0x85, 0xd2, //0x0000666b testq %r10, %r10 - 0x0f, 0x84, 0x4c, 0x0f, 0x00, 0x00, //0x0000666e je LBB28_244 - 0x48, 0x8b, 0x02, //0x00006674 movq (%rdx), %rax - 0x49, 0xc1, 0xe2, 0x04, //0x00006677 shlq $4, %r10 - 0x48, 0x89, 0x45, 0xb8, //0x0000667b movq %rax, $-72(%rbp) - 0x49, 0x01, 0xc2, //0x0000667f addq %rax, %r10 - 0x4d, 0x8b, 0x0b, //0x00006682 movq (%r11), %r9 - 0x49, 0x8b, 0x17, //0x00006685 movq (%r15), %rdx - 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006688 movabsq $4294977024, %r12 - 0x4c, 0x89, 0x5d, 0xc0, //0x00006692 movq %r11, $-64(%rbp) - 0x48, 0x89, 0x4d, 0xa0, //0x00006696 movq %rcx, $-96(%rbp) - 0x4c, 0x89, 0x55, 0xa8, //0x0000669a movq %r10, $-88(%rbp) - //0x0000669e LBB28_2 - 0x4d, 0x8b, 0x43, 0x08, //0x0000669e movq $8(%r11), %r8 - 0x48, 0x89, 0xd7, //0x000066a2 movq %rdx, %rdi - 0x4c, 0x29, 0xc7, //0x000066a5 subq %r8, %rdi - 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000066a8 jae LBB28_7 - 0x41, 0x8a, 0x04, 0x11, //0x000066ae movb (%r9,%rdx), %al - 0x3c, 0x0d, //0x000066b2 cmpb $13, %al - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000066b4 je LBB28_7 - 0x3c, 0x20, //0x000066ba cmpb $32, %al - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000066bc je LBB28_7 - 0x04, 0xf7, //0x000066c2 addb $-9, %al - 0x3c, 0x01, //0x000066c4 cmpb $1, %al - 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000066c6 jbe LBB28_7 - 0x48, 0x89, 0xd6, //0x000066cc movq %rdx, %rsi - 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000066cf jmp LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000066d4 .p2align 4, 0x90 - //0x000066e0 LBB28_7 - 0x48, 0x8d, 0x72, 0x01, //0x000066e0 leaq $1(%rdx), %rsi - 0x4c, 0x39, 0xc6, //0x000066e4 cmpq %r8, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000066e7 jae LBB28_11 - 0x41, 0x8a, 0x04, 0x31, //0x000066ed movb (%r9,%rsi), %al - 0x3c, 0x0d, //0x000066f1 cmpb $13, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000066f3 je LBB28_11 - 0x3c, 0x20, //0x000066f9 cmpb $32, %al - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000066fb je LBB28_11 - 0x04, 0xf7, //0x00006701 addb $-9, %al - 0x3c, 0x01, //0x00006703 cmpb $1, %al - 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006705 ja LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000670b .p2align 4, 0x90 - //0x00006710 LBB28_11 - 0x48, 0x8d, 0x72, 0x02, //0x00006710 leaq $2(%rdx), %rsi - 0x4c, 0x39, 0xc6, //0x00006714 cmpq %r8, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006717 jae LBB28_15 - 0x41, 0x8a, 0x04, 0x31, //0x0000671d movb (%r9,%rsi), %al - 0x3c, 0x0d, //0x00006721 cmpb $13, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006723 je LBB28_15 - 0x3c, 0x20, //0x00006729 cmpb $32, %al - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000672b je LBB28_15 - 0x04, 0xf7, //0x00006731 addb $-9, %al - 0x3c, 0x01, //0x00006733 cmpb $1, %al - 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006735 ja LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000673b .p2align 4, 0x90 - //0x00006740 LBB28_15 - 0x48, 0x8d, 0x72, 0x03, //0x00006740 leaq $3(%rdx), %rsi - 0x4c, 0x39, 0xc6, //0x00006744 cmpq %r8, %rsi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006747 jae LBB28_19 - 0x41, 0x8a, 0x04, 0x31, //0x0000674d movb (%r9,%rsi), %al - 0x3c, 0x0d, //0x00006751 cmpb $13, %al - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006753 je LBB28_19 - 0x3c, 0x20, //0x00006759 cmpb $32, %al - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000675b je LBB28_19 - 0x04, 0xf7, //0x00006761 addb $-9, %al - 0x3c, 0x01, //0x00006763 cmpb $1, %al - 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006765 ja LBB28_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000676b .p2align 4, 0x90 - //0x00006770 LBB28_19 - 0x48, 0x8d, 0x42, 0x04, //0x00006770 leaq $4(%rdx), %rax - 0x49, 0x39, 0xc0, //0x00006774 cmpq %rax, %r8 - 0x0f, 0x86, 0x83, 0x00, 0x00, 0x00, //0x00006777 jbe LBB28_25 - 0x49, 0x39, 0xc0, //0x0000677d cmpq %rax, %r8 - 0x0f, 0x84, 0x94, 0x00, 0x00, 0x00, //0x00006780 je LBB28_26 - 0x4b, 0x8d, 0x04, 0x01, //0x00006786 leaq (%r9,%r8), %rax - 0x48, 0x83, 0xc7, 0x04, //0x0000678a addq $4, %rdi - 0x49, 0x8d, 0x74, 0x11, 0x05, //0x0000678e leaq $5(%r9,%rdx), %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006793 .p2align 4, 0x90 - //0x000067a0 LBB28_22 - 0x0f, 0xbe, 0x5e, 0xff, //0x000067a0 movsbl $-1(%rsi), %ebx - 0x83, 0xfb, 0x20, //0x000067a4 cmpl $32, %ebx - 0x0f, 0x87, 0xfd, 0x0b, 0x00, 0x00, //0x000067a7 ja LBB28_29 - 0x49, 0x0f, 0xa3, 0xdc, //0x000067ad btq %rbx, %r12 - 0x0f, 0x83, 0xf3, 0x0b, 0x00, 0x00, //0x000067b1 jae LBB28_29 - 0x48, 0xff, 0xc6, //0x000067b7 incq %rsi - 0x48, 0xff, 0xc7, //0x000067ba incq %rdi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000067bd jne LBB28_22 - 0x4c, 0x29, 0xc8, //0x000067c3 subq %r9, %rax - 0x48, 0x89, 0xc6, //0x000067c6 movq %rax, %rsi - 0x4c, 0x39, 0xc6, //0x000067c9 cmpq %r8, %rsi - 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x000067cc jae LBB28_30 - //0x000067d2 LBB28_28 - 0x48, 0x8d, 0x46, 0x01, //0x000067d2 leaq $1(%rsi), %rax - 0x49, 0x89, 0x07, //0x000067d6 movq %rax, (%r15) - 0x41, 0x8a, 0x34, 0x31, //0x000067d9 movb (%r9,%rsi), %sil - 0x48, 0x8b, 0x55, 0xb8, //0x000067dd movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x000067e1 movq (%rdx), %rdx - 0x48, 0x85, 0xd2, //0x000067e4 testq %rdx, %rdx - 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000067e7 jne LBB28_31 - 0xe9, 0x29, 0x0e, 0x00, 0x00, //0x000067ed jmp LBB28_251 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067f2 .p2align 4, 0x90 - //0x00006800 LBB28_25 - 0x49, 0x89, 0x07, //0x00006800 movq %rax, (%r15) - 0x31, 0xf6, //0x00006803 xorl %esi, %esi - 0x48, 0x8b, 0x55, 0xb8, //0x00006805 movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00006809 movq (%rdx), %rdx - 0x48, 0x85, 0xd2, //0x0000680c testq %rdx, %rdx - 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000680f jne LBB28_31 - 0xe9, 0x01, 0x0e, 0x00, 0x00, //0x00006815 jmp LBB28_251 - //0x0000681a LBB28_26 - 0x4c, 0x01, 0xc8, //0x0000681a addq %r9, %rax - 0x4c, 0x29, 0xc8, //0x0000681d subq %r9, %rax - 0x48, 0x89, 0xc6, //0x00006820 movq %rax, %rsi - 0x4c, 0x39, 0xc6, //0x00006823 cmpq %r8, %rsi - 0x0f, 0x82, 0xa6, 0xff, 0xff, 0xff, //0x00006826 jb LBB28_28 - //0x0000682c LBB28_30 - 0x31, 0xf6, //0x0000682c xorl %esi, %esi - 0x48, 0x89, 0xd0, //0x0000682e movq %rdx, %rax - 0x48, 0x8b, 0x55, 0xb8, //0x00006831 movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x12, //0x00006835 movq (%rdx), %rdx - 0x48, 0x85, 0xd2, //0x00006838 testq %rdx, %rdx - 0x0f, 0x84, 0xda, 0x0d, 0x00, 0x00, //0x0000683b je LBB28_251 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006841 .p2align 4, 0x90 - //0x00006850 LBB28_31 - 0x8a, 0x52, 0x17, //0x00006850 movb $23(%rdx), %dl - 0x80, 0xe2, 0x1f, //0x00006853 andb $31, %dl - 0x80, 0xfa, 0x02, //0x00006856 cmpb $2, %dl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006859 je LBB28_184 - 0x80, 0xfa, 0x18, //0x0000685f cmpb $24, %dl - 0x0f, 0x85, 0xb3, 0x0d, 0x00, 0x00, //0x00006862 jne LBB28_251 - 0x40, 0x80, 0xfe, 0x7b, //0x00006868 cmpb $123, %sil - 0x4c, 0x89, 0x7d, 0xd0, //0x0000686c movq %r15, $-48(%rbp) - 0x0f, 0x84, 0x78, 0x01, 0x00, 0x00, //0x00006870 je LBB28_34 - 0xe9, 0x71, 0x0d, 0x00, 0x00, //0x00006876 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000687b .p2align 4, 0x90 - //0x00006880 LBB28_184 - 0x40, 0x80, 0xfe, 0x5b, //0x00006880 cmpb $91, %sil - 0x0f, 0x85, 0x62, 0x0d, 0x00, 0x00, //0x00006884 jne LBB28_247 - 0x48, 0x8b, 0x55, 0xb8, //0x0000688a movq $-72(%rbp), %rdx - 0x48, 0x8b, 0x52, 0x08, //0x0000688e movq $8(%rdx), %rdx - 0x4c, 0x8b, 0x32, //0x00006892 movq (%rdx), %r14 - 0x4d, 0x85, 0xf6, //0x00006895 testq %r14, %r14 - 0x0f, 0x88, 0x7d, 0x0d, 0x00, 0x00, //0x00006898 js LBB28_251 - 0x4d, 0x8b, 0x43, 0x08, //0x0000689e movq $8(%r11), %r8 - 0x48, 0x89, 0xc6, //0x000068a2 movq %rax, %rsi - 0x4c, 0x29, 0xc6, //0x000068a5 subq %r8, %rsi - 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000068a8 jae LBB28_191 - 0x41, 0x8a, 0x14, 0x01, //0x000068ae movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x000068b2 cmpb $13, %dl - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000068b5 je LBB28_191 - 0x80, 0xfa, 0x20, //0x000068bb cmpb $32, %dl - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000068be je LBB28_191 - 0x80, 0xc2, 0xf7, //0x000068c4 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000068c7 cmpb $1, %dl - 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x000068ca jbe LBB28_191 - 0x48, 0x89, 0xc7, //0x000068d0 movq %rax, %rdi - 0xe9, 0x12, 0x0b, 0x00, 0x00, //0x000068d3 jmp LBB28_213 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068d8 .p2align 4, 0x90 - //0x000068e0 LBB28_191 - 0x48, 0x8d, 0x78, 0x01, //0x000068e0 leaq $1(%rax), %rdi - 0x4c, 0x39, 0xc7, //0x000068e4 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000068e7 jae LBB28_195 - 0x41, 0x8a, 0x14, 0x39, //0x000068ed movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000068f1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000068f4 je LBB28_195 - 0x80, 0xfa, 0x20, //0x000068fa cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000068fd je LBB28_195 - 0x80, 0xc2, 0xf7, //0x00006903 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006906 cmpb $1, %dl - 0x0f, 0x87, 0xdb, 0x0a, 0x00, 0x00, //0x00006909 ja LBB28_213 - 0x90, //0x0000690f .p2align 4, 0x90 - //0x00006910 LBB28_195 - 0x48, 0x8d, 0x78, 0x02, //0x00006910 leaq $2(%rax), %rdi - 0x4c, 0x39, 0xc7, //0x00006914 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006917 jae LBB28_199 - 0x41, 0x8a, 0x14, 0x39, //0x0000691d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00006921 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006924 je LBB28_199 - 0x80, 0xfa, 0x20, //0x0000692a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000692d je LBB28_199 - 0x80, 0xc2, 0xf7, //0x00006933 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006936 cmpb $1, %dl - 0x0f, 0x87, 0xab, 0x0a, 0x00, 0x00, //0x00006939 ja LBB28_213 - 0x90, //0x0000693f .p2align 4, 0x90 - //0x00006940 LBB28_199 - 0x48, 0x8d, 0x78, 0x03, //0x00006940 leaq $3(%rax), %rdi - 0x4c, 0x39, 0xc7, //0x00006944 cmpq %r8, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006947 jae LBB28_203 - 0x41, 0x8a, 0x14, 0x39, //0x0000694d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00006951 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006954 je LBB28_203 - 0x80, 0xfa, 0x20, //0x0000695a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000695d je LBB28_203 - 0x80, 0xc2, 0xf7, //0x00006963 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006966 cmpb $1, %dl - 0x0f, 0x87, 0x7b, 0x0a, 0x00, 0x00, //0x00006969 ja LBB28_213 - 0x90, //0x0000696f .p2align 4, 0x90 - //0x00006970 LBB28_203 - 0x48, 0x8d, 0x50, 0x04, //0x00006970 leaq $4(%rax), %rdx - 0x49, 0x39, 0xd0, //0x00006974 cmpq %rdx, %r8 - 0x0f, 0x86, 0x22, 0x0a, 0x00, 0x00, //0x00006977 jbe LBB28_209 - 0x49, 0x39, 0xd0, //0x0000697d cmpq %rdx, %r8 - 0x0f, 0x84, 0x3b, 0x0a, 0x00, 0x00, //0x00006980 je LBB28_210 - 0x4b, 0x8d, 0x14, 0x01, //0x00006986 leaq (%r9,%r8), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x0000698a addq $4, %rsi - 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000698e leaq $5(%r9,%rax), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006993 .p2align 4, 0x90 - //0x000069a0 LBB28_206 - 0x0f, 0xbe, 0x4f, 0xff, //0x000069a0 movsbl $-1(%rdi), %ecx - 0x83, 0xf9, 0x20, //0x000069a4 cmpl $32, %ecx - 0x0f, 0x87, 0x2b, 0x0a, 0x00, 0x00, //0x000069a7 ja LBB28_212 - 0x49, 0x0f, 0xa3, 0xcc, //0x000069ad btq %rcx, %r12 - 0x0f, 0x83, 0x21, 0x0a, 0x00, 0x00, //0x000069b1 jae LBB28_212 - 0x48, 0xff, 0xc7, //0x000069b7 incq %rdi - 0x48, 0xff, 0xc6, //0x000069ba incq %rsi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000069bd jne LBB28_206 - 0xe9, 0xfc, 0x09, 0x00, 0x00, //0x000069c3 jmp LBB28_211 - //0x000069c8 LBB28_180 - 0x4c, 0x89, 0xca, //0x000069c8 movq %r9, %rdx - 0x48, 0xf7, 0xd2, //0x000069cb notq %rdx - 0x48, 0x01, 0xd7, //0x000069ce addq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x000069d1 cmpq %rcx, %rdi - 0x0f, 0x83, 0x12, 0x0c, 0x00, 0x00, //0x000069d4 jae LBB28_247 - //0x000069da LBB28_181 - 0x48, 0x8d, 0x47, 0x01, //0x000069da leaq $1(%rdi), %rax - 0x49, 0x89, 0x07, //0x000069de movq %rax, (%r15) - 0x41, 0x8a, 0x0c, 0x39, //0x000069e1 movb (%r9,%rdi), %cl - 0x80, 0xf9, 0x2c, //0x000069e5 cmpb $44, %cl - 0x0f, 0x85, 0x42, 0x0c, 0x00, 0x00, //0x000069e8 jne LBB28_253 - //0x000069ee LBB28_34 - 0x49, 0x8b, 0x4b, 0x08, //0x000069ee movq $8(%r11), %rcx - 0x48, 0x89, 0xc6, //0x000069f2 movq %rax, %rsi - 0x48, 0x29, 0xce, //0x000069f5 subq %rcx, %rsi - 0x0f, 0x83, 0x32, 0x00, 0x00, 0x00, //0x000069f8 jae LBB28_39 - 0x41, 0x8a, 0x14, 0x01, //0x000069fe movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00006a02 cmpb $13, %dl - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00006a05 je LBB28_39 - 0x80, 0xfa, 0x20, //0x00006a0b cmpb $32, %dl - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00006a0e je LBB28_39 - 0x80, 0xc2, 0xf7, //0x00006a14 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006a17 cmpb $1, %dl - 0x0f, 0x86, 0x10, 0x00, 0x00, 0x00, //0x00006a1a jbe LBB28_39 - 0x49, 0x89, 0xc5, //0x00006a20 movq %rax, %r13 - 0xe9, 0x2a, 0x01, 0x00, 0x00, //0x00006a23 jmp LBB28_60 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a28 .p2align 4, 0x90 - //0x00006a30 LBB28_39 - 0x4c, 0x8d, 0x68, 0x01, //0x00006a30 leaq $1(%rax), %r13 - 0x49, 0x39, 0xcd, //0x00006a34 cmpq %rcx, %r13 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a37 jae LBB28_43 - 0x43, 0x8a, 0x14, 0x29, //0x00006a3d movb (%r9,%r13), %dl - 0x80, 0xfa, 0x0d, //0x00006a41 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a44 je LBB28_43 - 0x80, 0xfa, 0x20, //0x00006a4a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a4d je LBB28_43 - 0x80, 0xc2, 0xf7, //0x00006a53 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006a56 cmpb $1, %dl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00006a59 ja LBB28_60 - 0x90, //0x00006a5f .p2align 4, 0x90 - //0x00006a60 LBB28_43 - 0x4c, 0x8d, 0x68, 0x02, //0x00006a60 leaq $2(%rax), %r13 - 0x49, 0x39, 0xcd, //0x00006a64 cmpq %rcx, %r13 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a67 jae LBB28_47 - 0x43, 0x8a, 0x14, 0x29, //0x00006a6d movb (%r9,%r13), %dl - 0x80, 0xfa, 0x0d, //0x00006a71 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006a74 je LBB28_47 - 0x80, 0xfa, 0x20, //0x00006a7a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006a7d je LBB28_47 - 0x80, 0xc2, 0xf7, //0x00006a83 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006a86 cmpb $1, %dl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00006a89 ja LBB28_60 - 0x90, //0x00006a8f .p2align 4, 0x90 - //0x00006a90 LBB28_47 - 0x4c, 0x8d, 0x68, 0x03, //0x00006a90 leaq $3(%rax), %r13 - 0x49, 0x39, 0xcd, //0x00006a94 cmpq %rcx, %r13 - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006a97 jae LBB28_51 - 0x43, 0x8a, 0x14, 0x29, //0x00006a9d movb (%r9,%r13), %dl - 0x80, 0xfa, 0x0d, //0x00006aa1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006aa4 je LBB28_51 - 0x80, 0xfa, 0x20, //0x00006aaa cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006aad je LBB28_51 - 0x80, 0xc2, 0xf7, //0x00006ab3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006ab6 cmpb $1, %dl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00006ab9 ja LBB28_60 - 0x90, //0x00006abf .p2align 4, 0x90 - //0x00006ac0 LBB28_51 - 0x48, 0x8d, 0x50, 0x04, //0x00006ac0 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd1, //0x00006ac4 cmpq %rdx, %rcx - 0x0f, 0x86, 0x19, 0x0b, 0x00, 0x00, //0x00006ac7 jbe LBB28_245 - 0x48, 0x39, 0xd1, //0x00006acd cmpq %rdx, %rcx - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00006ad0 je LBB28_57 - 0x49, 0x8d, 0x14, 0x09, //0x00006ad6 leaq (%r9,%rcx), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x00006ada addq $4, %rsi - 0x4d, 0x8d, 0x6c, 0x01, 0x05, //0x00006ade leaq $5(%r9,%rax), %r13 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ae3 .p2align 4, 0x90 - //0x00006af0 LBB28_54 - 0x41, 0x0f, 0xbe, 0x7d, 0xff, //0x00006af0 movsbl $-1(%r13), %edi - 0x83, 0xff, 0x20, //0x00006af5 cmpl $32, %edi - 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x00006af8 ja LBB28_59 - 0x49, 0x0f, 0xa3, 0xfc, //0x00006afe btq %rdi, %r12 - 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006b02 jae LBB28_59 - 0x49, 0xff, 0xc5, //0x00006b08 incq %r13 - 0x48, 0xff, 0xc6, //0x00006b0b incq %rsi - 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006b0e jne LBB28_54 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006b14 jmp LBB28_58 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b19 .p2align 4, 0x90 - //0x00006b20 LBB28_57 - 0x4c, 0x01, 0xca, //0x00006b20 addq %r9, %rdx - //0x00006b23 LBB28_58 - 0x4c, 0x29, 0xca, //0x00006b23 subq %r9, %rdx - 0x49, 0x89, 0xd5, //0x00006b26 movq %rdx, %r13 - 0x49, 0x39, 0xcd, //0x00006b29 cmpq %rcx, %r13 - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00006b2c jb LBB28_60 - 0xe9, 0xb5, 0x0a, 0x00, 0x00, //0x00006b32 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b37 .p2align 4, 0x90 - //0x00006b40 LBB28_59 - 0x4c, 0x89, 0xca, //0x00006b40 movq %r9, %rdx - 0x48, 0xf7, 0xd2, //0x00006b43 notq %rdx - 0x49, 0x01, 0xd5, //0x00006b46 addq %rdx, %r13 - 0x49, 0x39, 0xcd, //0x00006b49 cmpq %rcx, %r13 - 0x0f, 0x83, 0x9a, 0x0a, 0x00, 0x00, //0x00006b4c jae LBB28_247 - //0x00006b52 LBB28_60 - 0x49, 0x8d, 0x5d, 0x01, //0x00006b52 leaq $1(%r13), %rbx - 0x49, 0x89, 0x1f, //0x00006b56 movq %rbx, (%r15) - 0x43, 0x8a, 0x0c, 0x29, //0x00006b59 movb (%r9,%r13), %cl - 0x80, 0xf9, 0x22, //0x00006b5d cmpb $34, %cl - 0x0f, 0x85, 0xc7, 0x0a, 0x00, 0x00, //0x00006b60 jne LBB28_252 - 0x48, 0x8b, 0x45, 0xb8, //0x00006b66 movq $-72(%rbp), %rax - 0x48, 0x8b, 0x40, 0x08, //0x00006b6a movq $8(%rax), %rax - 0x4c, 0x8b, 0x30, //0x00006b6e movq (%rax), %r14 - 0x4c, 0x8b, 0x78, 0x08, //0x00006b71 movq $8(%rax), %r15 - 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006b75 movq $-1, $-80(%rbp) - 0x4c, 0x89, 0xdf, //0x00006b7d movq %r11, %rdi - 0x48, 0x89, 0xde, //0x00006b80 movq %rbx, %rsi - 0x48, 0x8d, 0x55, 0xb0, //0x00006b83 leaq $-80(%rbp), %rdx - 0xe8, 0x64, 0x26, 0x00, 0x00, //0x00006b87 callq _advance_string_default - 0x48, 0x85, 0xc0, //0x00006b8c testq %rax, %rax - 0x0f, 0x88, 0xb6, 0x0a, 0x00, 0x00, //0x00006b8f js LBB28_255 - 0x48, 0x8b, 0x4d, 0xd0, //0x00006b95 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00006b99 movq %rax, (%rcx) - 0x48, 0x8b, 0x4d, 0xb0, //0x00006b9c movq $-80(%rbp), %rcx - 0x48, 0x83, 0xf9, 0xff, //0x00006ba0 cmpq $-1, %rcx - 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006ba4 je LBB28_64 - 0x48, 0x39, 0xc1, //0x00006baa cmpq %rax, %rcx - 0x0f, 0x8e, 0x61, 0x01, 0x00, 0x00, //0x00006bad jle LBB28_87 - //0x00006bb3 LBB28_64 - 0x48, 0x89, 0xc2, //0x00006bb3 movq %rax, %rdx - 0x4c, 0x29, 0xea, //0x00006bb6 subq %r13, %rdx - 0x48, 0x83, 0xc2, 0xfe, //0x00006bb9 addq $-2, %rdx - 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006bbd movl $1, %r10d - 0x48, 0x89, 0xd1, //0x00006bc3 movq %rdx, %rcx - 0x4c, 0x09, 0xf9, //0x00006bc6 orq %r15, %rcx - 0x4c, 0x8b, 0x5d, 0xc0, //0x00006bc9 movq $-64(%rbp), %r11 - 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x00006bcd je LBB28_82 - 0x4c, 0x39, 0xfa, //0x00006bd3 cmpq %r15, %rdx - 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x00006bd6 jne LBB28_81 - 0x49, 0x03, 0x1b, //0x00006bdc addq (%r11), %rbx - 0x49, 0x83, 0xff, 0x10, //0x00006bdf cmpq $16, %r15 - 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x00006be3 jb LBB28_71 - 0x49, 0x8d, 0x57, 0xf0, //0x00006be9 leaq $-16(%r15), %rdx - 0x48, 0x89, 0xd1, //0x00006bed movq %rdx, %rcx - 0x48, 0x83, 0xe1, 0xf0, //0x00006bf0 andq $-16, %rcx - 0x4c, 0x8d, 0x44, 0x0b, 0x10, //0x00006bf4 leaq $16(%rbx,%rcx), %r8 - 0x49, 0x8d, 0x7c, 0x0e, 0x10, //0x00006bf9 leaq $16(%r14,%rcx), %rdi - 0x83, 0xe2, 0x0f, //0x00006bfe andl $15, %edx - 0x31, 0xf6, //0x00006c01 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c03 .p2align 4, 0x90 - //0x00006c10 LBB28_68 - 0xf3, 0x0f, 0x6f, 0x04, 0x33, //0x00006c10 movdqu (%rbx,%rsi), %xmm0 - 0xf3, 0x41, 0x0f, 0x6f, 0x0c, 0x36, //0x00006c15 movdqu (%r14,%rsi), %xmm1 - 0x66, 0x0f, 0x74, 0xc8, //0x00006c1b pcmpeqb %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xc9, //0x00006c1f pmovmskb %xmm1, %ecx - 0x66, 0x83, 0xf9, 0xff, //0x00006c23 cmpw $-1, %cx - 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00006c27 jne LBB28_81 - 0x49, 0x83, 0xc7, 0xf0, //0x00006c2d addq $-16, %r15 - 0x48, 0x83, 0xc6, 0x10, //0x00006c31 addq $16, %rsi - 0x49, 0x83, 0xff, 0x0f, //0x00006c35 cmpq $15, %r15 - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00006c39 ja LBB28_68 - 0x49, 0x89, 0xd7, //0x00006c3f movq %rdx, %r15 - 0x49, 0x89, 0xfe, //0x00006c42 movq %rdi, %r14 - 0x4c, 0x89, 0xc3, //0x00006c45 movq %r8, %rbx - //0x00006c48 LBB28_71 - 0x44, 0x89, 0xf1, //0x00006c48 movl %r14d, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006c4b andl $4095, %ecx - 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006c51 cmpl $4080, %ecx - 0x0f, 0x87, 0x47, 0x00, 0x00, 0x00, //0x00006c57 ja LBB28_76 - 0x89, 0xd9, //0x00006c5d movl %ebx, %ecx - 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006c5f andl $4095, %ecx - 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006c65 cmpl $4081, %ecx - 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00006c6b jae LBB28_76 - 0xf3, 0x0f, 0x6f, 0x03, //0x00006c71 movdqu (%rbx), %xmm0 - 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00006c75 movdqu (%r14), %xmm1 - 0x66, 0x0f, 0x74, 0xc8, //0x00006c7a pcmpeqb %xmm0, %xmm1 - 0x66, 0x0f, 0xd7, 0xd1, //0x00006c7e pmovmskb %xmm1, %edx - 0x66, 0x83, 0xfa, 0xff, //0x00006c82 cmpw $-1, %dx - 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00006c86 je LBB28_82 - 0xf7, 0xd2, //0x00006c8c notl %edx - 0x0f, 0xb7, 0xca, //0x00006c8e movzwl %dx, %ecx - 0x48, 0x0f, 0xbc, 0xc9, //0x00006c91 bsfq %rcx, %rcx - 0x45, 0x31, 0xd2, //0x00006c95 xorl %r10d, %r10d - 0x4c, 0x39, 0xf9, //0x00006c98 cmpq %r15, %rcx - 0x41, 0x0f, 0x93, 0xc2, //0x00006c9b setae %r10b - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00006c9f jmp LBB28_82 - //0x00006ca4 LBB28_76 - 0x4d, 0x85, 0xff, //0x00006ca4 testq %r15, %r15 - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00006ca7 je LBB28_82 - 0x31, 0xd2, //0x00006cad xorl %edx, %edx - 0x90, //0x00006caf .p2align 4, 0x90 - //0x00006cb0 LBB28_78 - 0x0f, 0xb6, 0x0c, 0x13, //0x00006cb0 movzbl (%rbx,%rdx), %ecx - 0x41, 0x3a, 0x0c, 0x16, //0x00006cb4 cmpb (%r14,%rdx), %cl - 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006cb8 jne LBB28_81 - 0x48, 0xff, 0xc2, //0x00006cbe incq %rdx - 0x49, 0x39, 0xd7, //0x00006cc1 cmpq %rdx, %r15 - 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00006cc4 jne LBB28_78 - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00006cca jmp LBB28_82 - 0x90, //0x00006ccf .p2align 4, 0x90 - //0x00006cd0 LBB28_81 - 0x45, 0x31, 0xd2, //0x00006cd0 xorl %r10d, %r10d - //0x00006cd3 LBB28_82 - 0x4d, 0x8b, 0x0b, //0x00006cd3 movq (%r11), %r9 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006cd6 movq $-48(%rbp), %r15 - 0x49, 0x8b, 0x73, 0x08, //0x00006cda movq $8(%r11), %rsi - 0x48, 0x89, 0xc7, //0x00006cde movq %rax, %rdi - 0x48, 0x29, 0xf7, //0x00006ce1 subq %rsi, %rdi - 0x0f, 0x83, 0x16, 0x04, 0x00, 0x00, //0x00006ce4 jae LBB28_132 - //0x00006cea LBB28_83 - 0x41, 0x8a, 0x14, 0x01, //0x00006cea movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00006cee cmpb $13, %dl - 0x0f, 0x84, 0x09, 0x04, 0x00, 0x00, //0x00006cf1 je LBB28_132 - 0x80, 0xfa, 0x20, //0x00006cf7 cmpb $32, %dl - 0x0f, 0x84, 0x00, 0x04, 0x00, 0x00, //0x00006cfa je LBB28_132 - 0x80, 0xc2, 0xf7, //0x00006d00 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00006d03 cmpb $1, %dl - 0x0f, 0x86, 0xf4, 0x03, 0x00, 0x00, //0x00006d06 jbe LBB28_132 - 0x48, 0x89, 0xc3, //0x00006d0c movq %rax, %rbx - 0xe9, 0x0e, 0x05, 0x00, 0x00, //0x00006d0f jmp LBB28_153 - //0x00006d14 LBB28_87 - 0x48, 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00006d14 movq $0, $-56(%rbp) - 0x48, 0x8b, 0x4d, 0xc0, //0x00006d1c movq $-64(%rbp), %rcx - 0x4c, 0x8b, 0x09, //0x00006d20 movq (%rcx), %r9 - 0x4c, 0x01, 0xcb, //0x00006d23 addq %r9, %rbx - 0x4d, 0x8d, 0x44, 0x01, 0xff, //0x00006d26 leaq $-1(%r9,%rax), %r8 - 0x4f, 0x8d, 0x1c, 0x3e, //0x00006d2b leaq (%r14,%r15), %r11 - 0x4d, 0x85, 0xff, //0x00006d2f testq %r15, %r15 - 0x0f, 0x8e, 0xa0, 0x03, 0x00, 0x00, //0x00006d32 jle LBB28_129 - 0x49, 0x39, 0xd8, //0x00006d38 cmpq %rbx, %r8 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006d3b movq $-48(%rbp), %r15 - 0x0f, 0x86, 0x97, 0x03, 0x00, 0x00, //0x00006d3f jbe LBB28_130 - //0x00006d45 LBB28_89 - 0x8a, 0x0b, //0x00006d45 movb (%rbx), %cl - 0x80, 0xf9, 0x5c, //0x00006d47 cmpb $92, %cl - 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006d4a jne LBB28_94 - 0x4c, 0x89, 0xc2, //0x00006d50 movq %r8, %rdx - 0x48, 0x29, 0xda, //0x00006d53 subq %rbx, %rdx - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006d56 movq $-1, %rcx - 0x48, 0x85, 0xd2, //0x00006d5d testq %rdx, %rdx - 0x0f, 0x8e, 0x22, 0x09, 0x00, 0x00, //0x00006d60 jle LBB28_259 - 0x0f, 0xb6, 0x73, 0x01, //0x00006d66 movzbl $1(%rbx), %esi - 0x48, 0x8d, 0x3d, 0xef, 0x9c, 0x00, 0x00, //0x00006d6a leaq $40175(%rip), %rdi /* __UnquoteTab+0(%rip) */ - 0x44, 0x8a, 0x3c, 0x3e, //0x00006d71 movb (%rsi,%rdi), %r15b - 0x41, 0x80, 0xff, 0xff, //0x00006d75 cmpb $-1, %r15b - 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00006d79 je LBB28_96 - 0x45, 0x84, 0xff, //0x00006d7f testb %r15b, %r15b - 0x0f, 0x84, 0xee, 0x08, 0x00, 0x00, //0x00006d82 je LBB28_257 - 0x44, 0x88, 0x7d, 0xc8, //0x00006d88 movb %r15b, $-56(%rbp) - 0x48, 0x83, 0xc3, 0x02, //0x00006d8c addq $2, %rbx - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006d90 movl $1, %edx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006d95 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006d9a cmpq %r11, %r14 - 0x0f, 0x82, 0x30, 0x01, 0x00, 0x00, //0x00006d9d jb LBB28_107 - 0xe9, 0x08, 0x03, 0x00, 0x00, //0x00006da3 jmp LBB28_113 - //0x00006da8 LBB28_94 - 0x41, 0x3a, 0x0e, //0x00006da8 cmpb (%r14), %cl - 0x0f, 0x85, 0xe6, 0x05, 0x00, 0x00, //0x00006dab jne LBB28_183 - 0x48, 0xff, 0xc3, //0x00006db1 incq %rbx - 0x49, 0xff, 0xc6, //0x00006db4 incq %r14 - 0xe9, 0x05, 0x03, 0x00, 0x00, //0x00006db7 jmp LBB28_115 - //0x00006dbc LBB28_96 - 0x48, 0x83, 0xfa, 0x03, //0x00006dbc cmpq $3, %rdx - 0x0f, 0x8e, 0xbf, 0x08, 0x00, 0x00, //0x00006dc0 jle LBB28_258 - 0x8b, 0x4b, 0x02, //0x00006dc6 movl $2(%rbx), %ecx - 0x89, 0xce, //0x00006dc9 movl %ecx, %esi - 0xf7, 0xd6, //0x00006dcb notl %esi - 0x8d, 0xb9, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006dcd leal $-808464432(%rcx), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00006dd3 andl $-2139062144, %esi - 0x85, 0xfe, //0x00006dd9 testl %edi, %esi - 0x0f, 0x85, 0x85, 0x08, 0x00, 0x00, //0x00006ddb jne LBB28_256 - 0x8d, 0xb9, 0x19, 0x19, 0x19, 0x19, //0x00006de1 leal $421075225(%rcx), %edi - 0x09, 0xcf, //0x00006de7 orl %ecx, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00006de9 testl $-2139062144, %edi - 0x0f, 0x85, 0x71, 0x08, 0x00, 0x00, //0x00006def jne LBB28_256 - 0x89, 0xcf, //0x00006df5 movl %ecx, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006df7 andl $2139062143, %edi - 0x41, 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006dfd movl $-1061109568, %r10d - 0x41, 0x29, 0xfa, //0x00006e03 subl %edi, %r10d - 0x44, 0x8d, 0xbf, 0x46, 0x46, 0x46, 0x46, //0x00006e06 leal $1179010630(%rdi), %r15d - 0x41, 0x21, 0xf2, //0x00006e0d andl %esi, %r10d - 0x45, 0x85, 0xfa, //0x00006e10 testl %r15d, %r10d - 0x0f, 0x85, 0x4d, 0x08, 0x00, 0x00, //0x00006e13 jne LBB28_256 - 0x41, 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006e19 movl $-522133280, %r10d - 0x41, 0x29, 0xfa, //0x00006e1f subl %edi, %r10d - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00006e22 addl $960051513, %edi - 0x44, 0x21, 0xd6, //0x00006e28 andl %r10d, %esi - 0x85, 0xfe, //0x00006e2b testl %edi, %esi - 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00006e2d jne LBB28_256 - 0x0f, 0xc9, //0x00006e33 bswapl %ecx - 0x89, 0xce, //0x00006e35 movl %ecx, %esi - 0xc1, 0xee, 0x04, //0x00006e37 shrl $4, %esi - 0xf7, 0xd6, //0x00006e3a notl %esi - 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x00006e3c andl $16843009, %esi - 0x8d, 0x34, 0xf6, //0x00006e42 leal (%rsi,%rsi,8), %esi - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006e45 andl $252645135, %ecx - 0x01, 0xf1, //0x00006e4b addl %esi, %ecx - 0x41, 0x89, 0xcf, //0x00006e4d movl %ecx, %r15d - 0x41, 0xc1, 0xef, 0x04, //0x00006e50 shrl $4, %r15d - 0x41, 0x09, 0xcf, //0x00006e54 orl %ecx, %r15d - 0x44, 0x89, 0xfe, //0x00006e57 movl %r15d, %esi - 0xc1, 0xee, 0x08, //0x00006e5a shrl $8, %esi - 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00006e5d andl $65280, %esi - 0x41, 0x0f, 0xb6, 0xcf, //0x00006e63 movzbl %r15b, %ecx - 0x09, 0xf1, //0x00006e67 orl %esi, %ecx - 0x4c, 0x8d, 0x53, 0x06, //0x00006e69 leaq $6(%rbx), %r10 - 0x83, 0xf9, 0x7f, //0x00006e6d cmpl $127, %ecx - 0x0f, 0x86, 0xb2, 0x00, 0x00, 0x00, //0x00006e70 jbe LBB28_117 - 0x81, 0xf9, 0xff, 0x07, 0x00, 0x00, //0x00006e76 cmpl $2047, %ecx - 0x0f, 0x86, 0xc5, 0x00, 0x00, 0x00, //0x00006e7c jbe LBB28_118 - 0x44, 0x89, 0xff, //0x00006e82 movl %r15d, %edi - 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x00006e85 andl $16252928, %edi - 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x00006e8b cmpl $14155776, %edi - 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x00006e91 je LBB28_119 - 0xc1, 0xee, 0x0c, //0x00006e97 shrl $12, %esi - 0x40, 0x80, 0xce, 0xe0, //0x00006e9a orb $-32, %sil - 0x40, 0x88, 0x75, 0xc8, //0x00006e9e movb %sil, $-56(%rbp) - 0xc1, 0xe9, 0x06, //0x00006ea2 shrl $6, %ecx - 0x80, 0xe1, 0x3f, //0x00006ea5 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00006ea8 orb $-128, %cl - 0x88, 0x4d, 0xc9, //0x00006eab movb %cl, $-55(%rbp) - 0x41, 0x80, 0xe7, 0x3f, //0x00006eae andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00006eb2 orb $-128, %r15b - 0x44, 0x88, 0x7d, 0xca, //0x00006eb6 movb %r15b, $-54(%rbp) - 0xba, 0x03, 0x00, 0x00, 0x00, //0x00006eba movl $3, %edx - 0x41, 0x89, 0xf7, //0x00006ebf movl %esi, %r15d - 0x4c, 0x89, 0xd3, //0x00006ec2 movq %r10, %rbx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006ec5 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006eca cmpq %r11, %r14 - 0x0f, 0x83, 0xdd, 0x01, 0x00, 0x00, //0x00006ecd jae LBB28_113 - //0x00006ed3 LBB28_107 - 0x48, 0x8d, 0x4d, 0xc8, //0x00006ed3 leaq $-56(%rbp), %rcx - 0x49, 0x39, 0xca, //0x00006ed7 cmpq %rcx, %r10 - 0x0f, 0x86, 0xd0, 0x01, 0x00, 0x00, //0x00006eda jbe LBB28_113 - 0x45, 0x38, 0x3e, //0x00006ee0 cmpb %r15b, (%r14) - 0x0f, 0x85, 0xc7, 0x01, 0x00, 0x00, //0x00006ee3 jne LBB28_113 - 0x49, 0xff, 0xc6, //0x00006ee9 incq %r14 - 0x48, 0x8d, 0x75, 0xc9, //0x00006eec leaq $-55(%rbp), %rsi - 0x4c, 0x89, 0xf7, //0x00006ef0 movq %r14, %rdi - 0x4c, 0x8b, 0x7d, 0xd0, //0x00006ef3 movq $-48(%rbp), %r15 - //0x00006ef7 LBB28_110 - 0x49, 0x89, 0xfe, //0x00006ef7 movq %rdi, %r14 - 0x48, 0x89, 0xf2, //0x00006efa movq %rsi, %rdx - 0x4c, 0x39, 0xd6, //0x00006efd cmpq %r10, %rsi - 0x0f, 0x83, 0xb2, 0x01, 0x00, 0x00, //0x00006f00 jae LBB28_114 - 0x4d, 0x39, 0xde, //0x00006f06 cmpq %r11, %r14 - 0x0f, 0x83, 0xa9, 0x01, 0x00, 0x00, //0x00006f09 jae LBB28_114 - 0x41, 0x0f, 0xb6, 0x0e, //0x00006f0f movzbl (%r14), %ecx - 0x49, 0x8d, 0x7e, 0x01, //0x00006f13 leaq $1(%r14), %rdi - 0x48, 0x8d, 0x72, 0x01, //0x00006f17 leaq $1(%rdx), %rsi - 0x3a, 0x0a, //0x00006f1b cmpb (%rdx), %cl - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006f1d je LBB28_110 - 0xe9, 0x90, 0x01, 0x00, 0x00, //0x00006f23 jmp LBB28_114 - //0x00006f28 LBB28_117 - 0x44, 0x88, 0x7d, 0xc8, //0x00006f28 movb %r15b, $-56(%rbp) - 0xba, 0x01, 0x00, 0x00, 0x00, //0x00006f2c movl $1, %edx - 0x4c, 0x89, 0xd3, //0x00006f31 movq %r10, %rbx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006f34 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006f39 cmpq %r11, %r14 - 0x0f, 0x82, 0x91, 0xff, 0xff, 0xff, //0x00006f3c jb LBB28_107 - 0xe9, 0x69, 0x01, 0x00, 0x00, //0x00006f42 jmp LBB28_113 - //0x00006f47 LBB28_118 - 0xc1, 0xe9, 0x06, //0x00006f47 shrl $6, %ecx - 0x80, 0xc9, 0xc0, //0x00006f4a orb $-64, %cl - 0x88, 0x4d, 0xc8, //0x00006f4d movb %cl, $-56(%rbp) - 0x41, 0x80, 0xe7, 0x3f, //0x00006f50 andb $63, %r15b - 0x41, 0x80, 0xcf, 0x80, //0x00006f54 orb $-128, %r15b - 0x44, 0x88, 0x7d, 0xc9, //0x00006f58 movb %r15b, $-55(%rbp) - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00006f5c movl $2, %edx - 0x41, 0x89, 0xcf, //0x00006f61 movl %ecx, %r15d - 0x4c, 0x89, 0xd3, //0x00006f64 movq %r10, %rbx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x00006f67 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x00006f6c cmpq %r11, %r14 - 0x0f, 0x82, 0x5e, 0xff, 0xff, 0xff, //0x00006f6f jb LBB28_107 - 0xe9, 0x36, 0x01, 0x00, 0x00, //0x00006f75 jmp LBB28_113 - //0x00006f7a LBB28_119 - 0x48, 0x83, 0xfa, 0x06, //0x00006f7a cmpq $6, %rdx - 0x0f, 0x8c, 0x1f, 0x07, 0x00, 0x00, //0x00006f7e jl LBB28_261 - 0x81, 0xf9, 0xff, 0xdb, 0x00, 0x00, //0x00006f84 cmpl $56319, %ecx - 0x0f, 0x87, 0x13, 0x07, 0x00, 0x00, //0x00006f8a ja LBB28_261 - 0x41, 0x80, 0x3a, 0x5c, //0x00006f90 cmpb $92, (%r10) - 0x0f, 0x85, 0x09, 0x07, 0x00, 0x00, //0x00006f94 jne LBB28_261 - 0x80, 0x7b, 0x07, 0x75, //0x00006f9a cmpb $117, $7(%rbx) - 0x0f, 0x85, 0xff, 0x06, 0x00, 0x00, //0x00006f9e jne LBB28_261 - 0x4c, 0x8d, 0x53, 0x08, //0x00006fa4 leaq $8(%rbx), %r10 - 0x8b, 0x53, 0x08, //0x00006fa8 movl $8(%rbx), %edx - 0x89, 0xd7, //0x00006fab movl %edx, %edi - 0xf7, 0xd7, //0x00006fad notl %edi - 0x8d, 0xb2, 0xd0, 0xcf, 0xcf, 0xcf, //0x00006faf leal $-808464432(%rdx), %esi - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00006fb5 andl $-2139062144, %edi - 0x85, 0xf7, //0x00006fbb testl %esi, %edi - 0x0f, 0x85, 0xd4, 0x06, 0x00, 0x00, //0x00006fbd jne LBB28_260 - 0x8d, 0xb2, 0x19, 0x19, 0x19, 0x19, //0x00006fc3 leal $421075225(%rdx), %esi - 0x09, 0xd6, //0x00006fc9 orl %edx, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00006fcb testl $-2139062144, %esi - 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00006fd1 jne LBB28_260 - 0x89, 0xd6, //0x00006fd7 movl %edx, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00006fd9 andl $2139062143, %esi - 0x41, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00006fdf movl $-1061109568, %r15d - 0x41, 0x29, 0xf7, //0x00006fe5 subl %esi, %r15d - 0x44, 0x8d, 0xae, 0x46, 0x46, 0x46, 0x46, //0x00006fe8 leal $1179010630(%rsi), %r13d - 0x41, 0x21, 0xff, //0x00006fef andl %edi, %r15d - 0x45, 0x85, 0xef, //0x00006ff2 testl %r13d, %r15d - 0x0f, 0x85, 0x9c, 0x06, 0x00, 0x00, //0x00006ff5 jne LBB28_260 - 0x41, 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00006ffb movl $-522133280, %r15d - 0x41, 0x29, 0xf7, //0x00007001 subl %esi, %r15d - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00007004 addl $960051513, %esi - 0x44, 0x21, 0xff, //0x0000700a andl %r15d, %edi - 0x85, 0xf7, //0x0000700d testl %esi, %edi - 0x0f, 0x85, 0x82, 0x06, 0x00, 0x00, //0x0000700f jne LBB28_260 - 0x0f, 0xca, //0x00007015 bswapl %edx - 0x89, 0xd6, //0x00007017 movl %edx, %esi - 0xc1, 0xee, 0x04, //0x00007019 shrl $4, %esi - 0xf7, 0xd6, //0x0000701c notl %esi - 0x81, 0xe6, 0x01, 0x01, 0x01, 0x01, //0x0000701e andl $16843009, %esi - 0x8d, 0x34, 0xf6, //0x00007024 leal (%rsi,%rsi,8), %esi - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007027 andl $252645135, %edx - 0x01, 0xf2, //0x0000702d addl %esi, %edx - 0x89, 0xd6, //0x0000702f movl %edx, %esi - 0xc1, 0xee, 0x04, //0x00007031 shrl $4, %esi - 0x09, 0xd6, //0x00007034 orl %edx, %esi - 0x89, 0xf2, //0x00007036 movl %esi, %edx - 0x81, 0xe2, 0x00, 0x00, 0xfc, 0x00, //0x00007038 andl $16515072, %edx - 0x81, 0xfa, 0x00, 0x00, 0xdc, 0x00, //0x0000703e cmpl $14417920, %edx - 0x0f, 0x85, 0x59, 0x06, 0x00, 0x00, //0x00007044 jne LBB28_261 - 0x89, 0xf2, //0x0000704a movl %esi, %edx - 0xc1, 0xea, 0x08, //0x0000704c shrl $8, %edx - 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x0000704f andl $65280, %edx - 0x40, 0x0f, 0xb6, 0xf6, //0x00007055 movzbl %sil, %esi - 0x09, 0xd6, //0x00007059 orl %edx, %esi - 0xc1, 0xe1, 0x0a, //0x0000705b shll $10, %ecx - 0x8d, 0x8c, 0x31, 0x00, 0x24, 0xa0, 0xfc, //0x0000705e leal $-56613888(%rcx,%rsi), %ecx - 0x41, 0x89, 0xcf, //0x00007065 movl %ecx, %r15d - 0x41, 0xc1, 0xef, 0x12, //0x00007068 shrl $18, %r15d - 0x41, 0x80, 0xcf, 0xf0, //0x0000706c orb $-16, %r15b - 0x44, 0x88, 0x7d, 0xc8, //0x00007070 movb %r15b, $-56(%rbp) - 0x89, 0xca, //0x00007074 movl %ecx, %edx - 0xc1, 0xea, 0x0c, //0x00007076 shrl $12, %edx - 0x80, 0xe2, 0x3f, //0x00007079 andb $63, %dl - 0x80, 0xca, 0x80, //0x0000707c orb $-128, %dl - 0x88, 0x55, 0xc9, //0x0000707f movb %dl, $-55(%rbp) - 0x89, 0xca, //0x00007082 movl %ecx, %edx - 0xc1, 0xea, 0x06, //0x00007084 shrl $6, %edx - 0x80, 0xe2, 0x3f, //0x00007087 andb $63, %dl - 0x80, 0xca, 0x80, //0x0000708a orb $-128, %dl - 0x88, 0x55, 0xca, //0x0000708d movb %dl, $-54(%rbp) - 0x80, 0xe1, 0x3f, //0x00007090 andb $63, %cl - 0x80, 0xc9, 0x80, //0x00007093 orb $-128, %cl - 0x88, 0x4d, 0xcb, //0x00007096 movb %cl, $-53(%rbp) - 0x48, 0x83, 0xc3, 0x0c, //0x00007099 addq $12, %rbx - 0xba, 0x04, 0x00, 0x00, 0x00, //0x0000709d movl $4, %edx - 0x4c, 0x8d, 0x54, 0x15, 0xc8, //0x000070a2 leaq $-56(%rbp,%rdx), %r10 - 0x4d, 0x39, 0xde, //0x000070a7 cmpq %r11, %r14 - 0x0f, 0x82, 0x23, 0xfe, 0xff, 0xff, //0x000070aa jb LBB28_107 - //0x000070b0 LBB28_113 - 0x48, 0x8d, 0x55, 0xc8, //0x000070b0 leaq $-56(%rbp), %rdx - 0x4c, 0x8b, 0x7d, 0xd0, //0x000070b4 movq $-48(%rbp), %r15 - //0x000070b8 LBB28_114 - 0x4c, 0x39, 0xd2, //0x000070b8 cmpq %r10, %rdx - 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x000070bb jne LBB28_183 - //0x000070c1 LBB28_115 - 0x49, 0x39, 0xd8, //0x000070c1 cmpq %rbx, %r8 - 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x000070c4 jbe LBB28_130 - 0x4d, 0x39, 0xde, //0x000070ca cmpq %r11, %r14 - 0x0f, 0x82, 0x72, 0xfc, 0xff, 0xff, //0x000070cd jb LBB28_89 - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x000070d3 jmp LBB28_130 - //0x000070d8 LBB28_129 - 0x4c, 0x8b, 0x7d, 0xd0, //0x000070d8 movq $-48(%rbp), %r15 - //0x000070dc LBB28_130 - 0x49, 0x31, 0xd8, //0x000070dc xorq %rbx, %r8 - 0x4d, 0x31, 0xde, //0x000070df xorq %r11, %r14 - 0x45, 0x31, 0xd2, //0x000070e2 xorl %r10d, %r10d - 0x4d, 0x09, 0xc6, //0x000070e5 orq %r8, %r14 - 0x41, 0x0f, 0x94, 0xc2, //0x000070e8 sete %r10b - //0x000070ec LBB28_131 - 0x4c, 0x8b, 0x5d, 0xc0, //0x000070ec movq $-64(%rbp), %r11 - 0x49, 0x8b, 0x73, 0x08, //0x000070f0 movq $8(%r11), %rsi - 0x48, 0x89, 0xc7, //0x000070f4 movq %rax, %rdi - 0x48, 0x29, 0xf7, //0x000070f7 subq %rsi, %rdi - 0x0f, 0x82, 0xea, 0xfb, 0xff, 0xff, //0x000070fa jb LBB28_83 - //0x00007100 .p2align 4, 0x90 - //0x00007100 LBB28_132 - 0x48, 0x8d, 0x58, 0x01, //0x00007100 leaq $1(%rax), %rbx - 0x48, 0x39, 0xf3, //0x00007104 cmpq %rsi, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007107 jae LBB28_136 - 0x41, 0x8a, 0x14, 0x19, //0x0000710d movb (%r9,%rbx), %dl - 0x80, 0xfa, 0x0d, //0x00007111 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007114 je LBB28_136 - 0x80, 0xfa, 0x20, //0x0000711a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000711d je LBB28_136 - 0x80, 0xc2, 0xf7, //0x00007123 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007126 cmpb $1, %dl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007129 ja LBB28_153 - 0x90, //0x0000712f .p2align 4, 0x90 - //0x00007130 LBB28_136 - 0x48, 0x8d, 0x58, 0x02, //0x00007130 leaq $2(%rax), %rbx - 0x48, 0x39, 0xf3, //0x00007134 cmpq %rsi, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007137 jae LBB28_140 - 0x41, 0x8a, 0x14, 0x19, //0x0000713d movb (%r9,%rbx), %dl - 0x80, 0xfa, 0x0d, //0x00007141 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007144 je LBB28_140 - 0x80, 0xfa, 0x20, //0x0000714a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000714d je LBB28_140 - 0x80, 0xc2, 0xf7, //0x00007153 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007156 cmpb $1, %dl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x00007159 ja LBB28_153 - 0x90, //0x0000715f .p2align 4, 0x90 - //0x00007160 LBB28_140 - 0x48, 0x8d, 0x58, 0x03, //0x00007160 leaq $3(%rax), %rbx - 0x48, 0x39, 0xf3, //0x00007164 cmpq %rsi, %rbx - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007167 jae LBB28_144 - 0x41, 0x8a, 0x14, 0x19, //0x0000716d movb (%r9,%rbx), %dl - 0x80, 0xfa, 0x0d, //0x00007171 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007174 je LBB28_144 - 0x80, 0xfa, 0x20, //0x0000717a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000717d je LBB28_144 - 0x80, 0xc2, 0xf7, //0x00007183 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007186 cmpb $1, %dl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00007189 ja LBB28_153 - 0x90, //0x0000718f .p2align 4, 0x90 - //0x00007190 LBB28_144 - 0x48, 0x8d, 0x50, 0x04, //0x00007190 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd6, //0x00007194 cmpq %rdx, %rsi - 0x0f, 0x86, 0x49, 0x04, 0x00, 0x00, //0x00007197 jbe LBB28_245 - 0x48, 0x39, 0xd6, //0x0000719d cmpq %rdx, %rsi - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000071a0 je LBB28_150 - 0x49, 0x8d, 0x14, 0x31, //0x000071a6 leaq (%r9,%rsi), %rdx - 0x48, 0x83, 0xc7, 0x04, //0x000071aa addq $4, %rdi - 0x49, 0x8d, 0x5c, 0x01, 0x05, //0x000071ae leaq $5(%r9,%rax), %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071b3 .p2align 4, 0x90 - //0x000071c0 LBB28_147 - 0x0f, 0xbe, 0x4b, 0xff, //0x000071c0 movsbl $-1(%rbx), %ecx - 0x83, 0xf9, 0x20, //0x000071c4 cmpl $32, %ecx - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x000071c7 ja LBB28_152 - 0x49, 0x0f, 0xa3, 0xcc, //0x000071cd btq %rcx, %r12 - 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x000071d1 jae LBB28_152 - 0x48, 0xff, 0xc3, //0x000071d7 incq %rbx - 0x48, 0xff, 0xc7, //0x000071da incq %rdi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x000071dd jne LBB28_147 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000071e3 jmp LBB28_151 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071e8 .p2align 4, 0x90 - //0x000071f0 LBB28_150 - 0x4c, 0x01, 0xca, //0x000071f0 addq %r9, %rdx - //0x000071f3 LBB28_151 - 0x4c, 0x29, 0xca, //0x000071f3 subq %r9, %rdx - 0x48, 0x89, 0xd3, //0x000071f6 movq %rdx, %rbx - 0x48, 0x39, 0xf3, //0x000071f9 cmpq %rsi, %rbx - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000071fc jb LBB28_153 - 0xe9, 0xe5, 0x03, 0x00, 0x00, //0x00007202 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007207 .p2align 4, 0x90 - //0x00007210 LBB28_152 - 0x4c, 0x89, 0xc9, //0x00007210 movq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x00007213 notq %rcx - 0x48, 0x01, 0xcb, //0x00007216 addq %rcx, %rbx - 0x48, 0x39, 0xf3, //0x00007219 cmpq %rsi, %rbx - 0x0f, 0x83, 0xca, 0x03, 0x00, 0x00, //0x0000721c jae LBB28_247 - //0x00007222 LBB28_153 - 0x48, 0x8d, 0x53, 0x01, //0x00007222 leaq $1(%rbx), %rdx - 0x49, 0x89, 0x17, //0x00007226 movq %rdx, (%r15) - 0x41, 0x80, 0x3c, 0x19, 0x3a, //0x00007229 cmpb $58, (%r9,%rbx) - 0x0f, 0x85, 0xb5, 0x03, 0x00, 0x00, //0x0000722e jne LBB28_246 - 0x4d, 0x85, 0xd2, //0x00007234 testq %r10, %r10 - 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00007237 jne LBB28_243 - 0x4c, 0x89, 0xdf, //0x0000723d movq %r11, %rdi - 0x4c, 0x89, 0xfe, //0x00007240 movq %r15, %rsi - 0xe8, 0xc8, 0xe4, 0xff, 0xff, //0x00007243 callq _skip_one_fast - 0x4c, 0x8b, 0x5d, 0xc0, //0x00007248 movq $-64(%rbp), %r11 - 0x4d, 0x8b, 0x0b, //0x0000724c movq (%r11), %r9 - 0x49, 0x8b, 0x4b, 0x08, //0x0000724f movq $8(%r11), %rcx - 0x49, 0x8b, 0x07, //0x00007253 movq (%r15), %rax - 0x48, 0x89, 0xc6, //0x00007256 movq %rax, %rsi - 0x48, 0x29, 0xce, //0x00007259 subq %rcx, %rsi - 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x0000725c jae LBB28_160 - 0x41, 0x8a, 0x14, 0x01, //0x00007262 movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00007266 cmpb $13, %dl - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00007269 je LBB28_160 - 0x80, 0xfa, 0x20, //0x0000726f cmpb $32, %dl - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007272 je LBB28_160 - 0x80, 0xc2, 0xf7, //0x00007278 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x0000727b cmpb $1, %dl - 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000727e jbe LBB28_160 - 0x48, 0x89, 0xc7, //0x00007284 movq %rax, %rdi - 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x00007287 jmp LBB28_181 - 0x90, 0x90, 0x90, 0x90, //0x0000728c .p2align 4, 0x90 - //0x00007290 LBB28_160 - 0x48, 0x8d, 0x78, 0x01, //0x00007290 leaq $1(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007294 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007297 jae LBB28_164 - 0x41, 0x8a, 0x14, 0x39, //0x0000729d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000072a1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072a4 je LBB28_164 - 0x80, 0xfa, 0x20, //0x000072aa cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072ad je LBB28_164 - 0x80, 0xc2, 0xf7, //0x000072b3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000072b6 cmpb $1, %dl - 0x0f, 0x87, 0x1b, 0xf7, 0xff, 0xff, //0x000072b9 ja LBB28_181 - 0x90, //0x000072bf .p2align 4, 0x90 - //0x000072c0 LBB28_164 - 0x48, 0x8d, 0x78, 0x02, //0x000072c0 leaq $2(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000072c4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072c7 jae LBB28_168 - 0x41, 0x8a, 0x14, 0x39, //0x000072cd movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000072d1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000072d4 je LBB28_168 - 0x80, 0xfa, 0x20, //0x000072da cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000072dd je LBB28_168 - 0x80, 0xc2, 0xf7, //0x000072e3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000072e6 cmpb $1, %dl - 0x0f, 0x87, 0xeb, 0xf6, 0xff, 0xff, //0x000072e9 ja LBB28_181 - 0x90, //0x000072ef .p2align 4, 0x90 - //0x000072f0 LBB28_168 - 0x48, 0x8d, 0x78, 0x03, //0x000072f0 leaq $3(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000072f4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000072f7 jae LBB28_172 - 0x41, 0x8a, 0x14, 0x39, //0x000072fd movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00007301 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007304 je LBB28_172 - 0x80, 0xfa, 0x20, //0x0000730a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000730d je LBB28_172 - 0x80, 0xc2, 0xf7, //0x00007313 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007316 cmpb $1, %dl - 0x0f, 0x87, 0xbb, 0xf6, 0xff, 0xff, //0x00007319 ja LBB28_181 - 0x90, //0x0000731f .p2align 4, 0x90 - //0x00007320 LBB28_172 - 0x48, 0x8d, 0x50, 0x04, //0x00007320 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd1, //0x00007324 cmpq %rdx, %rcx - 0x0f, 0x86, 0xb9, 0x02, 0x00, 0x00, //0x00007327 jbe LBB28_245 - 0x48, 0x39, 0xd1, //0x0000732d cmpq %rdx, %rcx - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007330 je LBB28_178 - 0x49, 0x8d, 0x14, 0x09, //0x00007336 leaq (%r9,%rcx), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x0000733a addq $4, %rsi - 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000733e leaq $5(%r9,%rax), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007343 .p2align 4, 0x90 - //0x00007350 LBB28_175 - 0x0f, 0xbe, 0x5f, 0xff, //0x00007350 movsbl $-1(%rdi), %ebx - 0x83, 0xfb, 0x20, //0x00007354 cmpl $32, %ebx - 0x0f, 0x87, 0x6b, 0xf6, 0xff, 0xff, //0x00007357 ja LBB28_180 - 0x49, 0x0f, 0xa3, 0xdc, //0x0000735d btq %rbx, %r12 - 0x0f, 0x83, 0x61, 0xf6, 0xff, 0xff, //0x00007361 jae LBB28_180 - 0x48, 0xff, 0xc7, //0x00007367 incq %rdi - 0x48, 0xff, 0xc6, //0x0000736a incq %rsi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000736d jne LBB28_175 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007373 jmp LBB28_179 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007378 .p2align 4, 0x90 - //0x00007380 LBB28_178 - 0x4c, 0x01, 0xca, //0x00007380 addq %r9, %rdx - //0x00007383 LBB28_179 - 0x4c, 0x29, 0xca, //0x00007383 subq %r9, %rdx - 0x48, 0x89, 0xd7, //0x00007386 movq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x00007389 cmpq %rcx, %rdi - 0x0f, 0x82, 0x48, 0xf6, 0xff, 0xff, //0x0000738c jb LBB28_181 - 0xe9, 0x55, 0x02, 0x00, 0x00, //0x00007392 jmp LBB28_247 - //0x00007397 LBB28_183 - 0x45, 0x31, 0xd2, //0x00007397 xorl %r10d, %r10d - 0xe9, 0x4d, 0xfd, 0xff, 0xff, //0x0000739a jmp LBB28_131 - //0x0000739f LBB28_209 - 0x49, 0x89, 0x17, //0x0000739f movq %rdx, (%r15) - 0x48, 0x89, 0xd0, //0x000073a2 movq %rdx, %rax - 0xe9, 0x52, 0x00, 0x00, 0x00, //0x000073a5 jmp LBB28_214 - //0x000073aa LBB28_29 - 0x4c, 0x89, 0xc8, //0x000073aa movq %r9, %rax - 0x48, 0xf7, 0xd0, //0x000073ad notq %rax - 0x48, 0x01, 0xc6, //0x000073b0 addq %rax, %rsi - 0x4c, 0x39, 0xc6, //0x000073b3 cmpq %r8, %rsi - 0x0f, 0x82, 0x16, 0xf4, 0xff, 0xff, //0x000073b6 jb LBB28_28 - 0xe9, 0x6b, 0xf4, 0xff, 0xff, //0x000073bc jmp LBB28_30 - //0x000073c1 LBB28_210 - 0x4c, 0x01, 0xca, //0x000073c1 addq %r9, %rdx - //0x000073c4 LBB28_211 - 0x4c, 0x29, 0xca, //0x000073c4 subq %r9, %rdx - 0x48, 0x89, 0xd7, //0x000073c7 movq %rdx, %rdi - 0x4c, 0x39, 0xc7, //0x000073ca cmpq %r8, %rdi - 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000073cd jb LBB28_213 - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000073d3 jmp LBB28_214 - //0x000073d8 LBB28_212 - 0x4c, 0x89, 0xc9, //0x000073d8 movq %r9, %rcx - 0x48, 0xf7, 0xd1, //0x000073db notq %rcx - 0x48, 0x01, 0xcf, //0x000073de addq %rcx, %rdi - 0x4c, 0x39, 0xc7, //0x000073e1 cmpq %r8, %rdi - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000073e4 jae LBB28_214 - //0x000073ea LBB28_213 - 0x48, 0x8d, 0x47, 0x01, //0x000073ea leaq $1(%rdi), %rax - 0x49, 0x89, 0x07, //0x000073ee movq %rax, (%r15) - 0x41, 0x80, 0x3c, 0x39, 0x5d, //0x000073f1 cmpb $93, (%r9,%rdi) - 0x0f, 0x84, 0x3d, 0x02, 0x00, 0x00, //0x000073f6 je LBB28_254 - //0x000073fc LBB28_214 - 0x48, 0xff, 0xc8, //0x000073fc decq %rax - 0x49, 0x89, 0x07, //0x000073ff movq %rax, (%r15) - 0x48, 0x89, 0xc2, //0x00007402 movq %rax, %rdx - 0x4d, 0x85, 0xf6, //0x00007405 testq %r14, %r14 - 0x0f, 0x8e, 0x95, 0x01, 0x00, 0x00, //0x00007408 jle LBB28_243 - 0x90, 0x90, //0x0000740e .p2align 4, 0x90 - //0x00007410 LBB28_215 - 0x4c, 0x89, 0xdf, //0x00007410 movq %r11, %rdi - 0x4c, 0x89, 0xfe, //0x00007413 movq %r15, %rsi - 0xe8, 0xf5, 0xe2, 0xff, 0xff, //0x00007416 callq _skip_one_fast - 0x4c, 0x8b, 0x5d, 0xc0, //0x0000741b movq $-64(%rbp), %r11 - 0x4d, 0x8b, 0x0b, //0x0000741f movq (%r11), %r9 - 0x49, 0x8b, 0x4b, 0x08, //0x00007422 movq $8(%r11), %rcx - 0x49, 0x8b, 0x07, //0x00007426 movq (%r15), %rax - 0x48, 0x89, 0xc6, //0x00007429 movq %rax, %rsi - 0x48, 0x29, 0xce, //0x0000742c subq %rcx, %rsi - 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x0000742f jae LBB28_220 - 0x41, 0x8a, 0x14, 0x01, //0x00007435 movb (%r9,%rax), %dl - 0x80, 0xfa, 0x0d, //0x00007439 cmpb $13, %dl - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000743c je LBB28_220 - 0x80, 0xfa, 0x20, //0x00007442 cmpb $32, %dl - 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00007445 je LBB28_220 - 0x80, 0xc2, 0xf7, //0x0000744b addb $-9, %dl - 0x80, 0xfa, 0x01, //0x0000744e cmpb $1, %dl - 0x0f, 0x86, 0x09, 0x00, 0x00, 0x00, //0x00007451 jbe LBB28_220 - 0x48, 0x89, 0xc7, //0x00007457 movq %rax, %rdi - 0xe9, 0x23, 0x01, 0x00, 0x00, //0x0000745a jmp LBB28_241 - 0x90, //0x0000745f .p2align 4, 0x90 - //0x00007460 LBB28_220 - 0x48, 0x8d, 0x78, 0x01, //0x00007460 leaq $1(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007464 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007467 jae LBB28_224 - 0x41, 0x8a, 0x14, 0x39, //0x0000746d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x00007471 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00007474 je LBB28_224 - 0x80, 0xfa, 0x20, //0x0000747a cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000747d je LBB28_224 - 0x80, 0xc2, 0xf7, //0x00007483 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x00007486 cmpb $1, %dl - 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x00007489 ja LBB28_241 - 0x90, //0x0000748f .p2align 4, 0x90 - //0x00007490 LBB28_224 - 0x48, 0x8d, 0x78, 0x02, //0x00007490 leaq $2(%rax), %rdi - 0x48, 0x39, 0xcf, //0x00007494 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007497 jae LBB28_228 - 0x41, 0x8a, 0x14, 0x39, //0x0000749d movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000074a1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000074a4 je LBB28_228 - 0x80, 0xfa, 0x20, //0x000074aa cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000074ad je LBB28_228 - 0x80, 0xc2, 0xf7, //0x000074b3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000074b6 cmpb $1, %dl - 0x0f, 0x87, 0xc3, 0x00, 0x00, 0x00, //0x000074b9 ja LBB28_241 - 0x90, //0x000074bf .p2align 4, 0x90 - //0x000074c0 LBB28_228 - 0x48, 0x8d, 0x78, 0x03, //0x000074c0 leaq $3(%rax), %rdi - 0x48, 0x39, 0xcf, //0x000074c4 cmpq %rcx, %rdi - 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000074c7 jae LBB28_232 - 0x41, 0x8a, 0x14, 0x39, //0x000074cd movb (%r9,%rdi), %dl - 0x80, 0xfa, 0x0d, //0x000074d1 cmpb $13, %dl - 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000074d4 je LBB28_232 - 0x80, 0xfa, 0x20, //0x000074da cmpb $32, %dl - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000074dd je LBB28_232 - 0x80, 0xc2, 0xf7, //0x000074e3 addb $-9, %dl - 0x80, 0xfa, 0x01, //0x000074e6 cmpb $1, %dl - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x000074e9 ja LBB28_241 - 0x90, //0x000074ef .p2align 4, 0x90 - //0x000074f0 LBB28_232 - 0x48, 0x8d, 0x50, 0x04, //0x000074f0 leaq $4(%rax), %rdx - 0x48, 0x39, 0xd1, //0x000074f4 cmpq %rdx, %rcx - 0x0f, 0x86, 0xe9, 0x00, 0x00, 0x00, //0x000074f7 jbe LBB28_245 - 0x48, 0x39, 0xd1, //0x000074fd cmpq %rdx, %rcx - 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00007500 je LBB28_238 - 0x49, 0x8d, 0x14, 0x09, //0x00007506 leaq (%r9,%rcx), %rdx - 0x48, 0x83, 0xc6, 0x04, //0x0000750a addq $4, %rsi - 0x49, 0x8d, 0x7c, 0x01, 0x05, //0x0000750e leaq $5(%r9,%rax), %rdi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007513 .p2align 4, 0x90 - //0x00007520 LBB28_235 - 0x0f, 0xbe, 0x5f, 0xff, //0x00007520 movsbl $-1(%rdi), %ebx - 0x83, 0xfb, 0x20, //0x00007524 cmpl $32, %ebx - 0x0f, 0x87, 0x43, 0x00, 0x00, 0x00, //0x00007527 ja LBB28_240 - 0x49, 0x0f, 0xa3, 0xdc, //0x0000752d btq %rbx, %r12 - 0x0f, 0x83, 0x39, 0x00, 0x00, 0x00, //0x00007531 jae LBB28_240 - 0x48, 0xff, 0xc7, //0x00007537 incq %rdi - 0x48, 0xff, 0xc6, //0x0000753a incq %rsi - 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000753d jne LBB28_235 - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00007543 jmp LBB28_239 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007548 .p2align 4, 0x90 - //0x00007550 LBB28_238 - 0x4c, 0x01, 0xca, //0x00007550 addq %r9, %rdx - //0x00007553 LBB28_239 - 0x4c, 0x29, 0xca, //0x00007553 subq %r9, %rdx - 0x48, 0x89, 0xd7, //0x00007556 movq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x00007559 cmpq %rcx, %rdi - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000755c jb LBB28_241 - 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00007562 jmp LBB28_247 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007567 .p2align 4, 0x90 - //0x00007570 LBB28_240 - 0x4c, 0x89, 0xca, //0x00007570 movq %r9, %rdx - 0x48, 0xf7, 0xd2, //0x00007573 notq %rdx - 0x48, 0x01, 0xd7, //0x00007576 addq %rdx, %rdi - 0x48, 0x39, 0xcf, //0x00007579 cmpq %rcx, %rdi - 0x0f, 0x83, 0x6a, 0x00, 0x00, 0x00, //0x0000757c jae LBB28_247 - //0x00007582 LBB28_241 - 0x48, 0x8d, 0x57, 0x01, //0x00007582 leaq $1(%rdi), %rdx - 0x49, 0x89, 0x17, //0x00007586 movq %rdx, (%r15) - 0x41, 0x8a, 0x04, 0x39, //0x00007589 movb (%r9,%rdi), %al - 0x3c, 0x2c, //0x0000758d cmpb $44, %al - 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x0000758f jne LBB28_249 - 0x49, 0x83, 0xfe, 0x02, //0x00007595 cmpq $2, %r14 - 0x4d, 0x8d, 0x76, 0xff, //0x00007599 leaq $-1(%r14), %r14 - 0x0f, 0x8d, 0x6d, 0xfe, 0xff, 0xff, //0x0000759d jge LBB28_215 - //0x000075a3 LBB28_243 - 0x48, 0x8b, 0x45, 0xb8, //0x000075a3 movq $-72(%rbp), %rax - 0x48, 0x83, 0xc0, 0x10, //0x000075a7 addq $16, %rax - 0x4c, 0x8b, 0x55, 0xa8, //0x000075ab movq $-88(%rbp), %r10 - 0x48, 0x89, 0x45, 0xb8, //0x000075af movq %rax, $-72(%rbp) - 0x4c, 0x39, 0xd0, //0x000075b3 cmpq %r10, %rax - 0x48, 0x8b, 0x4d, 0xa0, //0x000075b6 movq $-96(%rbp), %rcx - 0x0f, 0x85, 0xde, 0xf0, 0xff, 0xff, //0x000075ba jne LBB28_2 - //0x000075c0 LBB28_244 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000075c0 movl $1, %eax - 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x000075c5 movq %rax, %xmm0 - 0xf3, 0x0f, 0x7f, 0x01, //0x000075ca movdqu %xmm0, (%rcx) - 0x48, 0x89, 0xcf, //0x000075ce movq %rcx, %rdi - 0x4c, 0x89, 0xde, //0x000075d1 movq %r11, %rsi - 0x4c, 0x89, 0xfa, //0x000075d4 movq %r15, %rdx - 0x31, 0xc9, //0x000075d7 xorl %ecx, %ecx - 0xe8, 0x82, 0xd0, 0xff, 0xff, //0x000075d9 callq _fsm_exec - 0x48, 0x89, 0xc1, //0x000075de movq %rax, %rcx - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000075e1 jmp LBB28_248 - //0x000075e6 LBB28_245 - 0x49, 0x89, 0x17, //0x000075e6 movq %rdx, (%r15) - //0x000075e9 LBB28_246 - 0x48, 0x89, 0xd0, //0x000075e9 movq %rdx, %rax - //0x000075ec LBB28_247 - 0x48, 0xff, 0xc8, //0x000075ec decq %rax - 0x49, 0x89, 0x07, //0x000075ef movq %rax, (%r15) - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000075f2 movq $-2, %rcx - //0x000075f9 LBB28_248 - 0x48, 0x89, 0xc8, //0x000075f9 movq %rcx, %rax - 0x48, 0x83, 0xc4, 0x38, //0x000075fc addq $56, %rsp - 0x5b, //0x00007600 popq %rbx - 0x41, 0x5c, //0x00007601 popq %r12 - 0x41, 0x5d, //0x00007603 popq %r13 - 0x41, 0x5e, //0x00007605 popq %r14 - 0x41, 0x5f, //0x00007607 popq %r15 - 0x5d, //0x00007609 popq %rbp - 0xc3, //0x0000760a retq - //0x0000760b LBB28_249 - 0x3c, 0x5d, //0x0000760b cmpb $93, %al - 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x0000760d jne LBB28_246 - 0x48, 0x89, 0xd0, //0x00007613 movq %rdx, %rax - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00007616 jmp LBB28_254 - //0x0000761b LBB28_251 - 0x48, 0xff, 0xc8, //0x0000761b decq %rax - 0x49, 0x89, 0x07, //0x0000761e movq %rax, (%r15) - 0x48, 0xc7, 0xc1, 0xde, 0xff, 0xff, 0xff, //0x00007621 movq $-34, %rcx - 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00007628 jmp LBB28_248 - //0x0000762d LBB28_252 - 0x48, 0x89, 0xd8, //0x0000762d movq %rbx, %rax - //0x00007630 LBB28_253 - 0x80, 0xf9, 0x7d, //0x00007630 cmpb $125, %cl - 0x0f, 0x85, 0xb3, 0xff, 0xff, 0xff, //0x00007633 jne LBB28_247 - //0x00007639 LBB28_254 - 0x48, 0xff, 0xc8, //0x00007639 decq %rax - 0x49, 0x89, 0x07, //0x0000763c movq %rax, (%r15) - 0x48, 0xc7, 0xc1, 0xdf, 0xff, 0xff, 0xff, //0x0000763f movq $-33, %rcx - 0xe9, 0xae, 0xff, 0xff, 0xff, //0x00007646 jmp LBB28_248 - //0x0000764b LBB28_255 - 0x48, 0x8b, 0x45, 0xc0, //0x0000764b movq $-64(%rbp), %rax - 0x48, 0x8b, 0x40, 0x08, //0x0000764f movq $8(%rax), %rax - 0x48, 0x8b, 0x4d, 0xd0, //0x00007653 movq $-48(%rbp), %rcx - 0x48, 0x89, 0x01, //0x00007657 movq %rax, (%rcx) - 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000765a movq $-1, %rcx - 0xe9, 0x93, 0xff, 0xff, 0xff, //0x00007661 jmp LBB28_248 - //0x00007666 LBB28_256 - 0x48, 0x83, 0xc3, 0x02, //0x00007666 addq $2, %rbx - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000766a movq $-2, %rcx - 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007671 jmp LBB28_259 - //0x00007676 LBB28_257 - 0x48, 0xff, 0xc3, //0x00007676 incq %rbx - 0x48, 0xc7, 0xc1, 0xfd, 0xff, 0xff, 0xff, //0x00007679 movq $-3, %rcx - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00007680 jmp LBB28_259 - //0x00007685 LBB28_258 - 0x48, 0xff, 0xc3, //0x00007685 incq %rbx - //0x00007688 LBB28_259 - 0x48, 0x8b, 0x45, 0xd0, //0x00007688 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xcb, //0x0000768c subq %r9, %rbx - 0x48, 0x89, 0x18, //0x0000768f movq %rbx, (%rax) - 0xe9, 0x62, 0xff, 0xff, 0xff, //0x00007692 jmp LBB28_248 - //0x00007697 LBB28_260 - 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00007697 movq $-2, %rcx - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000769e jmp LBB28_262 - //0x000076a3 LBB28_261 - 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000076a3 movq $-4, %rcx - //0x000076aa LBB28_262 - 0x4c, 0x89, 0xd3, //0x000076aa movq %r10, %rbx - 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000076ad jmp LBB28_259 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076b2 .p2align 4, 0x90 - //0x000076c0 _validate_utf8 - 0x55, //0x000076c0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000076c1 movq %rsp, %rbp - 0x41, 0x57, //0x000076c4 pushq %r15 - 0x41, 0x56, //0x000076c6 pushq %r14 - 0x41, 0x54, //0x000076c8 pushq %r12 - 0x53, //0x000076ca pushq %rbx - 0x50, //0x000076cb pushq %rax - 0x4c, 0x8b, 0x17, //0x000076cc movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x000076cf movq $8(%rdi), %r11 - 0x48, 0x8b, 0x0e, //0x000076d3 movq (%rsi), %rcx - 0x4c, 0x01, 0xd1, //0x000076d6 addq %r10, %rcx - 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x000076d9 leaq $-3(%r10,%r11), %r8 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000076de jmp LBB29_1 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076e3 .p2align 4, 0x90 - //0x000076f0 LBB29_19 - 0x48, 0x01, 0xd9, //0x000076f0 addq %rbx, %rcx - //0x000076f3 LBB29_1 - 0x4c, 0x39, 0xc1, //0x000076f3 cmpq %r8, %rcx - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x000076f6 jae LBB29_2 - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000076fc movl $1, %ebx - 0x80, 0x39, 0x00, //0x00007701 cmpb $0, (%rcx) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007704 jns LBB29_19 - 0x8b, 0x01, //0x0000770a movl (%rcx), %eax - 0x89, 0xc7, //0x0000770c movl %eax, %edi - 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000770e andl $12632304, %edi - 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007714 cmpl $8421600, %edi - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000771a jne LBB29_10 - 0x89, 0xc7, //0x00007720 movl %eax, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007722 andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007728 cmpl $8205, %edi - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000772e je LBB29_10 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007734 movl $3, %ebx - 0x85, 0xff, //0x00007739 testl %edi, %edi - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000773b jne LBB29_19 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007741 .p2align 4, 0x90 - //0x00007750 LBB29_10 - 0x89, 0xc7, //0x00007750 movl %eax, %edi - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007752 andl $49376, %edi - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007758 cmpl $32960, %edi - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000775e jne LBB29_12 - 0x89, 0xc7, //0x00007764 movl %eax, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007766 movl $2, %ebx - 0x83, 0xe7, 0x1e, //0x0000776b andl $30, %edi - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000776e jne LBB29_19 - //0x00007774 LBB29_12 - 0x89, 0xc7, //0x00007774 movl %eax, %edi - 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007776 andl $-1061109512, %edi - 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000777c cmpl $-2139062032, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007782 jne LBB29_16 - 0x89, 0xc7, //0x00007788 movl %eax, %edi - 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000778a andl $12295, %edi - 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007790 je LBB29_16 - 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007796 movl $4, %ebx - 0xa8, 0x04, //0x0000779b testb $4, %al - 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x0000779d je LBB29_19 - 0x25, 0x03, 0x30, 0x00, 0x00, //0x000077a3 andl $12291, %eax - 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000077a8 je LBB29_19 - //0x000077ae LBB29_16 - 0x48, 0x89, 0xcf, //0x000077ae movq %rcx, %rdi - 0x4c, 0x29, 0xd7, //0x000077b1 subq %r10, %rdi - 0x48, 0x8b, 0x1a, //0x000077b4 movq (%rdx), %rbx - 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000077b7 cmpq $4096, %rbx - 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000077be jae LBB29_17 - 0x48, 0x63, 0xc7, //0x000077c4 movslq %edi, %rax - 0x48, 0x8d, 0x7b, 0x01, //0x000077c7 leaq $1(%rbx), %rdi - 0x48, 0x89, 0x3a, //0x000077cb movq %rdi, (%rdx) - 0x48, 0x89, 0x44, 0xda, 0x08, //0x000077ce movq %rax, $8(%rdx,%rbx,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000077d3 movl $1, %ebx - 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000077d8 jmp LBB29_19 - //0x000077dd LBB29_2 - 0x4d, 0x01, 0xd3, //0x000077dd addq %r10, %r11 - 0x4c, 0x39, 0xd9, //0x000077e0 cmpq %r11, %rcx - 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x000077e3 jae LBB29_36 - 0x4c, 0x8d, 0x45, 0xdc, //0x000077e9 leaq $-36(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xda, //0x000077ed leaq $-38(%rbp), %r9 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000077f1 jmp LBB29_4 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077f6 .p2align 4, 0x90 - //0x00007800 LBB29_5 - 0x48, 0xff, 0xc1, //0x00007800 incq %rcx - 0x4c, 0x39, 0xd9, //0x00007803 cmpq %r11, %rcx - 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00007806 jae LBB29_36 - //0x0000780c LBB29_4 - 0x80, 0x39, 0x00, //0x0000780c cmpb $0, (%rcx) - 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000780f jns LBB29_5 - 0xc6, 0x45, 0xdc, 0x00, //0x00007815 movb $0, $-36(%rbp) - 0xc6, 0x45, 0xda, 0x00, //0x00007819 movb $0, $-38(%rbp) - 0x4c, 0x89, 0xdb, //0x0000781d movq %r11, %rbx - 0x48, 0x29, 0xcb, //0x00007820 subq %rcx, %rbx - 0x48, 0x83, 0xfb, 0x02, //0x00007823 cmpq $2, %rbx - 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007827 jb LBB29_21 - 0x44, 0x0f, 0xb6, 0x21, //0x0000782d movzbl (%rcx), %r12d - 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007831 movzbl $1(%rcx), %r14d - 0x44, 0x88, 0x65, 0xdc, //0x00007836 movb %r12b, $-36(%rbp) - 0x4c, 0x8d, 0x79, 0x02, //0x0000783a leaq $2(%rcx), %r15 - 0x48, 0x83, 0xc3, 0xfe, //0x0000783e addq $-2, %rbx - 0x4c, 0x89, 0xcf, //0x00007842 movq %r9, %rdi - 0x48, 0x85, 0xdb, //0x00007845 testq %rbx, %rbx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007848 je LBB29_24 - //0x0000784e LBB29_25 - 0x41, 0x0f, 0xb6, 0x07, //0x0000784e movzbl (%r15), %eax - 0x88, 0x07, //0x00007852 movb %al, (%rdi) - 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007854 movzbl $-36(%rbp), %r12d - 0x0f, 0xb6, 0x7d, 0xda, //0x00007859 movzbl $-38(%rbp), %edi - 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000785d jmp LBB29_26 - //0x00007862 LBB29_21 - 0x45, 0x31, 0xe4, //0x00007862 xorl %r12d, %r12d - 0x45, 0x31, 0xf6, //0x00007865 xorl %r14d, %r14d - 0x4c, 0x89, 0xc7, //0x00007868 movq %r8, %rdi - 0x49, 0x89, 0xcf, //0x0000786b movq %rcx, %r15 - 0x48, 0x85, 0xdb, //0x0000786e testq %rbx, %rbx - 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007871 jne LBB29_25 - //0x00007877 LBB29_24 - 0x31, 0xff, //0x00007877 xorl %edi, %edi - //0x00007879 LBB29_26 - 0x40, 0x0f, 0xb6, 0xc7, //0x00007879 movzbl %dil, %eax - 0xc1, 0xe0, 0x10, //0x0000787d shll $16, %eax - 0x41, 0x0f, 0xb6, 0xde, //0x00007880 movzbl %r14b, %ebx - 0xc1, 0xe3, 0x08, //0x00007884 shll $8, %ebx - 0x41, 0x0f, 0xb6, 0xfc, //0x00007887 movzbl %r12b, %edi - 0x09, 0xdf, //0x0000788b orl %ebx, %edi - 0x09, 0xf8, //0x0000788d orl %edi, %eax - 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x0000788f andl $12632304, %eax - 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007894 cmpl $8421600, %eax - 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00007899 jne LBB29_29 - 0x89, 0xf8, //0x0000789f movl %edi, %eax - 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000078a1 andl $8207, %eax - 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000078a6 cmpl $8205, %eax - 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000078ab je LBB29_29 - 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000078b1 movl $3, %ebx - 0x85, 0xc0, //0x000078b6 testl %eax, %eax - 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000078b8 jne LBB29_34 - 0x90, 0x90, //0x000078be .p2align 4, 0x90 - //0x000078c0 LBB29_29 - 0x41, 0xf6, 0xc4, 0x1e, //0x000078c0 testb $30, %r12b - 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000078c4 je LBB29_31 - 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000078ca andl $49376, %edi - 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000078d0 movl $2, %ebx - 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000078d5 cmpl $32960, %edi - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000078db jne LBB29_31 - //0x000078e1 LBB29_34 - 0x48, 0x01, 0xd9, //0x000078e1 addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x000078e4 cmpq %r11, %rcx - 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x000078e7 jb LBB29_4 - 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000078ed jmp LBB29_36 - //0x000078f2 LBB29_31 - 0x48, 0x89, 0xc8, //0x000078f2 movq %rcx, %rax - 0x4c, 0x29, 0xd0, //0x000078f5 subq %r10, %rax - 0x48, 0x8b, 0x3a, //0x000078f8 movq (%rdx), %rdi - 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x000078fb cmpq $4096, %rdi - 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007902 jae LBB29_32 - 0x48, 0x98, //0x00007908 cltq - 0x48, 0x8d, 0x5f, 0x01, //0x0000790a leaq $1(%rdi), %rbx - 0x48, 0x89, 0x1a, //0x0000790e movq %rbx, (%rdx) - 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007911 movq %rax, $8(%rdx,%rdi,8) - 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007916 movl $1, %ebx - 0x48, 0x01, 0xd9, //0x0000791b addq %rbx, %rcx - 0x4c, 0x39, 0xd9, //0x0000791e cmpq %r11, %rcx - 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00007921 jb LBB29_4 - //0x00007927 LBB29_36 - 0x4c, 0x29, 0xd1, //0x00007927 subq %r10, %rcx - 0x48, 0x89, 0x0e, //0x0000792a movq %rcx, (%rsi) - 0x31, 0xc0, //0x0000792d xorl %eax, %eax - //0x0000792f LBB29_37 - 0x48, 0x83, 0xc4, 0x08, //0x0000792f addq $8, %rsp - 0x5b, //0x00007933 popq %rbx - 0x41, 0x5c, //0x00007934 popq %r12 - 0x41, 0x5e, //0x00007936 popq %r14 - 0x41, 0x5f, //0x00007938 popq %r15 - 0x5d, //0x0000793a popq %rbp - 0xc3, //0x0000793b retq - //0x0000793c LBB29_32 - 0x48, 0x89, 0x06, //0x0000793c movq %rax, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000793f movq $-1, %rax - 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007946 jmp LBB29_37 - //0x0000794b LBB29_17 - 0x48, 0x89, 0x3e, //0x0000794b movq %rdi, (%rsi) - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000794e movq $-1, %rax - 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007955 jmp LBB29_37 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000795a .p2align 4, 0x90 - //0x00007960 _validate_utf8_fast - 0x55, //0x00007960 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007961 movq %rsp, %rbp - 0x53, //0x00007964 pushq %rbx - 0x50, //0x00007965 pushq %rax - 0x4c, 0x8b, 0x17, //0x00007966 movq (%rdi), %r10 - 0x4c, 0x8b, 0x5f, 0x08, //0x00007969 movq $8(%rdi), %r11 - 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000796d leaq $-3(%r10,%r11), %rsi - 0x4c, 0x89, 0xd0, //0x00007972 movq %r10, %rax - 0x49, 0x39, 0xf2, //0x00007975 cmpq %rsi, %r10 - 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007978 jae LBB30_14 - 0x4c, 0x89, 0xd0, //0x0000797e movq %r10, %rax - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007981 jmp LBB30_3 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007986 .p2align 4, 0x90 - //0x00007990 LBB30_2 - 0x48, 0x01, 0xd0, //0x00007990 addq %rdx, %rax - 0x48, 0x39, 0xf0, //0x00007993 cmpq %rsi, %rax - 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007996 jae LBB30_14 - //0x0000799c LBB30_3 - 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000799c movl $1, %edx - 0x80, 0x38, 0x00, //0x000079a1 cmpb $0, (%rax) - 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000079a4 jns LBB30_2 - 0x8b, 0x38, //0x000079aa movl (%rax), %edi - 0x89, 0xf9, //0x000079ac movl %edi, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000079ae andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000079b4 cmpl $8421600, %ecx - 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000079ba jne LBB30_7 - 0x89, 0xf9, //0x000079c0 movl %edi, %ecx - 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000079c2 andl $8207, %ecx - 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000079c8 cmpl $8205, %ecx - 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000079ce je LBB30_7 - 0xba, 0x03, 0x00, 0x00, 0x00, //0x000079d4 movl $3, %edx - 0x85, 0xc9, //0x000079d9 testl %ecx, %ecx - 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000079db jne LBB30_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000079e1 .p2align 4, 0x90 - //0x000079f0 LBB30_7 - 0x89, 0xf9, //0x000079f0 movl %edi, %ecx - 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000079f2 andl $49376, %ecx - 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000079f8 cmpl $32960, %ecx - 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000079fe jne LBB30_9 - 0x89, 0xf9, //0x00007a04 movl %edi, %ecx - 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007a06 movl $2, %edx - 0x83, 0xe1, 0x1e, //0x00007a0b andl $30, %ecx - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x00007a0e jne LBB30_2 - //0x00007a14 LBB30_9 - 0x89, 0xf9, //0x00007a14 movl %edi, %ecx - 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007a16 andl $-1061109512, %ecx - 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x00007a1c cmpl $-2139062032, %ecx - 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007a22 jne LBB30_13 - 0x89, 0xf9, //0x00007a28 movl %edi, %ecx - 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x00007a2a andl $12295, %ecx - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007a30 je LBB30_13 - 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007a36 movl $4, %edx - 0x40, 0xf6, 0xc7, 0x04, //0x00007a3b testb $4, %dil - 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x00007a3f je LBB30_2 - 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007a45 andl $12291, %edi - 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x00007a4b je LBB30_2 - //0x00007a51 LBB30_13 - 0x48, 0xf7, 0xd0, //0x00007a51 notq %rax - 0x4c, 0x01, 0xd0, //0x00007a54 addq %r10, %rax - 0x48, 0x83, 0xc4, 0x08, //0x00007a57 addq $8, %rsp - 0x5b, //0x00007a5b popq %rbx - 0x5d, //0x00007a5c popq %rbp - 0xc3, //0x00007a5d retq - //0x00007a5e LBB30_14 - 0x4d, 0x01, 0xd3, //0x00007a5e addq %r10, %r11 - 0x4c, 0x39, 0xd8, //0x00007a61 cmpq %r11, %rax - 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007a64 jae LBB30_30 - 0x4c, 0x8d, 0x45, 0xf4, //0x00007a6a leaq $-12(%rbp), %r8 - 0x4c, 0x8d, 0x4d, 0xf2, //0x00007a6e leaq $-14(%rbp), %r9 - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007a72 jmp LBB30_17 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a77 .p2align 4, 0x90 - //0x00007a80 LBB30_16 - 0x48, 0xff, 0xc0, //0x00007a80 incq %rax - 0x4c, 0x39, 0xd8, //0x00007a83 cmpq %r11, %rax - 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007a86 jae LBB30_30 - //0x00007a8c LBB30_17 - 0x80, 0x38, 0x00, //0x00007a8c cmpb $0, (%rax) - 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x00007a8f jns LBB30_16 - 0xc6, 0x45, 0xf4, 0x00, //0x00007a95 movb $0, $-12(%rbp) - 0xc6, 0x45, 0xf2, 0x00, //0x00007a99 movb $0, $-14(%rbp) - 0x4c, 0x89, 0xda, //0x00007a9d movq %r11, %rdx - 0x48, 0x29, 0xc2, //0x00007aa0 subq %rax, %rdx - 0x48, 0x83, 0xfa, 0x02, //0x00007aa3 cmpq $2, %rdx - 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007aa7 jb LBB30_21 - 0x0f, 0xb6, 0x30, //0x00007aad movzbl (%rax), %esi - 0x0f, 0xb6, 0x78, 0x01, //0x00007ab0 movzbl $1(%rax), %edi - 0x40, 0x88, 0x75, 0xf4, //0x00007ab4 movb %sil, $-12(%rbp) - 0x48, 0x8d, 0x48, 0x02, //0x00007ab8 leaq $2(%rax), %rcx - 0x48, 0x83, 0xc2, 0xfe, //0x00007abc addq $-2, %rdx - 0x4c, 0x89, 0xcb, //0x00007ac0 movq %r9, %rbx - 0x48, 0x85, 0xd2, //0x00007ac3 testq %rdx, %rdx - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007ac6 je LBB30_22 - //0x00007acc LBB30_20 - 0x0f, 0xb6, 0x09, //0x00007acc movzbl (%rcx), %ecx - 0x88, 0x0b, //0x00007acf movb %cl, (%rbx) - 0x0f, 0xb6, 0x75, 0xf4, //0x00007ad1 movzbl $-12(%rbp), %esi - 0x0f, 0xb6, 0x4d, 0xf2, //0x00007ad5 movzbl $-14(%rbp), %ecx - 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00007ad9 jmp LBB30_23 - //0x00007ade LBB30_21 - 0x31, 0xf6, //0x00007ade xorl %esi, %esi - 0x31, 0xff, //0x00007ae0 xorl %edi, %edi - 0x4c, 0x89, 0xc3, //0x00007ae2 movq %r8, %rbx - 0x48, 0x89, 0xc1, //0x00007ae5 movq %rax, %rcx - 0x48, 0x85, 0xd2, //0x00007ae8 testq %rdx, %rdx - 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00007aeb jne LBB30_20 - //0x00007af1 LBB30_22 - 0x31, 0xc9, //0x00007af1 xorl %ecx, %ecx - //0x00007af3 LBB30_23 - 0x0f, 0xb6, 0xc9, //0x00007af3 movzbl %cl, %ecx - 0xc1, 0xe1, 0x10, //0x00007af6 shll $16, %ecx - 0x40, 0x0f, 0xb6, 0xff, //0x00007af9 movzbl %dil, %edi - 0xc1, 0xe7, 0x08, //0x00007afd shll $8, %edi - 0x40, 0x0f, 0xb6, 0xd6, //0x00007b00 movzbl %sil, %edx - 0x09, 0xfa, //0x00007b04 orl %edi, %edx - 0x09, 0xd1, //0x00007b06 orl %edx, %ecx - 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x00007b08 andl $12632304, %ecx - 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007b0e cmpl $8421600, %ecx - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007b14 jne LBB30_26 - 0x89, 0xd7, //0x00007b1a movl %edx, %edi - 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007b1c andl $8207, %edi - 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007b22 cmpl $8205, %edi - 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00007b28 je LBB30_26 - 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00007b2e movl $3, %ecx - 0x85, 0xff, //0x00007b33 testl %edi, %edi - 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007b35 jne LBB30_28 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007b3b .p2align 4, 0x90 - //0x00007b40 LBB30_26 - 0x40, 0xf6, 0xc6, 0x1e, //0x00007b40 testb $30, %sil - 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007b44 je LBB30_13 - 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x00007b4a andl $49376, %edx - 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007b50 movl $2, %ecx - 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007b55 cmpl $32960, %edx - 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x00007b5b jne LBB30_13 - //0x00007b61 LBB30_28 - 0x48, 0x01, 0xc8, //0x00007b61 addq %rcx, %rax - 0x4c, 0x39, 0xd8, //0x00007b64 cmpq %r11, %rax - 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00007b67 jb LBB30_17 - //0x00007b6d LBB30_30 - 0x31, 0xc0, //0x00007b6d xorl %eax, %eax - 0x48, 0x83, 0xc4, 0x08, //0x00007b6f addq $8, %rsp - 0x5b, //0x00007b73 popq %rbx - 0x5d, //0x00007b74 popq %rbp - 0xc3, //0x00007b75 retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b76 .p2align 4, 0x00 - //0x00007b80 LCPI31_0 - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007b80 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' - //0x00007b90 .p2align 4, 0x90 - //0x00007b90 _f32toa - 0x55, //0x00007b90 pushq %rbp - 0x48, 0x89, 0xe5, //0x00007b91 movq %rsp, %rbp - 0x41, 0x57, //0x00007b94 pushq %r15 - 0x41, 0x56, //0x00007b96 pushq %r14 - 0x41, 0x55, //0x00007b98 pushq %r13 - 0x41, 0x54, //0x00007b9a pushq %r12 - 0x53, //0x00007b9c pushq %rbx - 0x66, 0x0f, 0x7e, 0xc0, //0x00007b9d movd %xmm0, %eax - 0x89, 0xc1, //0x00007ba1 movl %eax, %ecx - 0xc1, 0xe9, 0x17, //0x00007ba3 shrl $23, %ecx - 0x0f, 0xb6, 0xd9, //0x00007ba6 movzbl %cl, %ebx - 0x81, 0xfb, 0xff, 0x00, 0x00, 0x00, //0x00007ba9 cmpl $255, %ebx - 0x0f, 0x84, 0xbc, 0x0c, 0x00, 0x00, //0x00007baf je LBB31_139 - 0xc6, 0x07, 0x2d, //0x00007bb5 movb $45, (%rdi) - 0x41, 0x89, 0xc1, //0x00007bb8 movl %eax, %r9d - 0x41, 0xc1, 0xe9, 0x1f, //0x00007bbb shrl $31, %r9d - 0x4e, 0x8d, 0x04, 0x0f, //0x00007bbf leaq (%rdi,%r9), %r8 - 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007bc3 testl $2147483647, %eax - 0x0f, 0x84, 0xc6, 0x01, 0x00, 0x00, //0x00007bc8 je LBB31_14 - 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007bce andl $8388607, %eax - 0x85, 0xdb, //0x00007bd3 testl %ebx, %ebx - 0x0f, 0x84, 0x9e, 0x0c, 0x00, 0x00, //0x00007bd5 je LBB31_140 - 0x8d, 0xb0, 0x00, 0x00, 0x80, 0x00, //0x00007bdb leal $8388608(%rax), %esi - 0x44, 0x8d, 0xbb, 0x6a, 0xff, 0xff, 0xff, //0x00007be1 leal $-150(%rbx), %r15d - 0x8d, 0x4b, 0x81, //0x00007be8 leal $-127(%rbx), %ecx - 0x83, 0xf9, 0x17, //0x00007beb cmpl $23, %ecx - 0x0f, 0x87, 0x1b, 0x00, 0x00, 0x00, //0x00007bee ja LBB31_5 - 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007bf4 movl $150, %ecx - 0x29, 0xd9, //0x00007bf9 subl %ebx, %ecx - 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00007bfb movq $-1, %rdx - 0x48, 0xd3, 0xe2, //0x00007c02 shlq %cl, %rdx - 0xf7, 0xd2, //0x00007c05 notl %edx - 0x85, 0xf2, //0x00007c07 testl %esi, %edx - 0x0f, 0x84, 0x12, 0x04, 0x00, 0x00, //0x00007c09 je LBB31_32 - //0x00007c0f LBB31_5 - 0x41, 0x89, 0xf6, //0x00007c0f movl %esi, %r14d - 0x41, 0x83, 0xe6, 0x01, //0x00007c12 andl $1, %r14d - 0x85, 0xc0, //0x00007c16 testl %eax, %eax - 0x0f, 0x94, 0xc0, //0x00007c18 sete %al - 0x83, 0xfb, 0x01, //0x00007c1b cmpl $1, %ebx - 0x0f, 0x97, 0xc1, //0x00007c1e seta %cl - 0x20, 0xc1, //0x00007c21 andb %al, %cl - 0x0f, 0xb6, 0xc9, //0x00007c23 movzbl %cl, %ecx - 0x41, 0x89, 0xf2, //0x00007c26 movl %esi, %r10d - 0x41, 0xc1, 0xe2, 0x02, //0x00007c29 shll $2, %r10d - 0x8d, 0x44, 0xb1, 0xfe, //0x00007c2d leal $-2(%rcx,%rsi,4), %eax - 0x45, 0x69, 0xdf, 0x13, 0x44, 0x13, 0x00, //0x00007c31 imull $1262611, %r15d, %r11d - 0x31, 0xd2, //0x00007c38 xorl %edx, %edx - 0x84, 0xc9, //0x00007c3a testb %cl, %cl - 0xb9, 0xff, 0xfe, 0x07, 0x00, //0x00007c3c movl $524031, %ecx - 0x0f, 0x44, 0xca, //0x00007c41 cmovel %edx, %ecx - 0x41, 0x29, 0xcb, //0x00007c44 subl %ecx, %r11d - 0x41, 0xc1, 0xfb, 0x16, //0x00007c47 sarl $22, %r11d - 0x41, 0x69, 0xcb, 0xb1, 0x6c, 0xe5, 0xff, //0x00007c4b imull $-1741647, %r11d, %ecx - 0xc1, 0xe9, 0x13, //0x00007c52 shrl $19, %ecx - 0x44, 0x01, 0xf9, //0x00007c55 addl %r15d, %ecx - 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007c58 movl $31, %edx - 0x44, 0x29, 0xda, //0x00007c5d subl %r11d, %edx - 0x48, 0x63, 0xd2, //0x00007c60 movslq %edx, %rdx - 0x48, 0x8d, 0x1d, 0x86, 0xb8, 0x00, 0x00, //0x00007c63 leaq $47238(%rip), %rbx /* _pow10_ceil_sig_f32.g+0(%rip) */ - 0xfe, 0xc1, //0x00007c6a incb %cl - 0xd3, 0xe0, //0x00007c6c shll %cl, %eax - 0x4c, 0x8b, 0x24, 0xd3, //0x00007c6e movq (%rbx,%rdx,8), %r12 - 0x49, 0xf7, 0xe4, //0x00007c72 mulq %r12 - 0x48, 0xc1, 0xe8, 0x20, //0x00007c75 shrq $32, %rax - 0x31, 0xdb, //0x00007c79 xorl %ebx, %ebx - 0x83, 0xf8, 0x01, //0x00007c7b cmpl $1, %eax - 0x0f, 0x97, 0xc3, //0x00007c7e seta %bl - 0x41, 0xd3, 0xe2, //0x00007c81 shll %cl, %r10d - 0x09, 0xd3, //0x00007c84 orl %edx, %ebx - 0x4c, 0x89, 0xd0, //0x00007c86 movq %r10, %rax - 0x49, 0xf7, 0xe4, //0x00007c89 mulq %r12 - 0x49, 0x89, 0xd2, //0x00007c8c movq %rdx, %r10 - 0x48, 0xc1, 0xe8, 0x20, //0x00007c8f shrq $32, %rax - 0x45, 0x31, 0xff, //0x00007c93 xorl %r15d, %r15d - 0x83, 0xf8, 0x01, //0x00007c96 cmpl $1, %eax - 0x41, 0x0f, 0x97, 0xc7, //0x00007c99 seta %r15b - 0x8d, 0x04, 0xb5, 0x02, 0x00, 0x00, 0x00, //0x00007c9d leal $2(,%rsi,4), %eax - 0xd3, 0xe0, //0x00007ca4 shll %cl, %eax - 0x45, 0x09, 0xd7, //0x00007ca6 orl %r10d, %r15d - 0x49, 0xf7, 0xe4, //0x00007ca9 mulq %r12 - 0x48, 0xc1, 0xe8, 0x20, //0x00007cac shrq $32, %rax - 0x31, 0xc9, //0x00007cb0 xorl %ecx, %ecx - 0x83, 0xf8, 0x01, //0x00007cb2 cmpl $1, %eax - 0x0f, 0x97, 0xc1, //0x00007cb5 seta %cl - 0x09, 0xd1, //0x00007cb8 orl %edx, %ecx - 0x44, 0x01, 0xf3, //0x00007cba addl %r14d, %ebx - 0x44, 0x29, 0xf1, //0x00007cbd subl %r14d, %ecx - 0x41, 0x83, 0xff, 0x28, //0x00007cc0 cmpl $40, %r15d - 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00007cc4 jb LBB31_12 - 0x44, 0x89, 0xd2, //0x00007cca movl %r10d, %edx - 0xb8, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007ccd movl $3435973837, %eax - 0x48, 0x0f, 0xaf, 0xc2, //0x00007cd2 imulq %rdx, %rax - 0x48, 0xc1, 0xe8, 0x25, //0x00007cd6 shrq $37, %rax - 0x41, 0x89, 0xde, //0x00007cda movl %ebx, %r14d - 0x48, 0x8d, 0x34, 0xc5, 0x00, 0x00, 0x00, 0x00, //0x00007cdd leaq (,%rax,8), %rsi - 0x48, 0x8d, 0x14, 0xb6, //0x00007ce5 leaq (%rsi,%rsi,4), %rdx - 0x4c, 0x39, 0xf2, //0x00007ce9 cmpq %r14, %rdx - 0x41, 0x0f, 0x93, 0xc4, //0x00007cec setae %r12b - 0x4c, 0x8d, 0x74, 0xb6, 0x28, //0x00007cf0 leaq $40(%rsi,%rsi,4), %r14 - 0x89, 0xce, //0x00007cf5 movl %ecx, %esi - 0x49, 0x39, 0xf6, //0x00007cf7 cmpq %rsi, %r14 - 0x0f, 0x96, 0xc2, //0x00007cfa setbe %dl - 0x41, 0x38, 0xd4, //0x00007cfd cmpb %dl, %r12b - 0x0f, 0x84, 0x5e, 0x00, 0x00, 0x00, //0x00007d00 je LBB31_12 - 0x45, 0x31, 0xed, //0x00007d06 xorl %r13d, %r13d - 0x49, 0x39, 0xf6, //0x00007d09 cmpq %rsi, %r14 - 0x41, 0x0f, 0x96, 0xc5, //0x00007d0c setbe %r13b - 0x41, 0x01, 0xc5, //0x00007d10 addl %eax, %r13d - 0x41, 0xff, 0xc3, //0x00007d13 incl %r11d - 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007d16 cmpl $100000, %r13d - 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x00007d1d jae LBB31_18 - //0x00007d23 LBB31_8 - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007d23 movl $1, %eax - 0x41, 0x83, 0xfd, 0x0a, //0x00007d28 cmpl $10, %r13d - 0x0f, 0x82, 0xd4, 0x00, 0x00, 0x00, //0x00007d2c jb LBB31_22 - 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007d32 movl $2, %eax - 0x41, 0x83, 0xfd, 0x64, //0x00007d37 cmpl $100, %r13d - 0x0f, 0x82, 0xc5, 0x00, 0x00, 0x00, //0x00007d3b jb LBB31_22 - 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007d41 movl $3, %eax - 0x41, 0x81, 0xfd, 0xe8, 0x03, 0x00, 0x00, //0x00007d46 cmpl $1000, %r13d - 0x0f, 0x82, 0xb3, 0x00, 0x00, 0x00, //0x00007d4d jb LBB31_22 - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007d53 cmpl $10000, %r13d - 0xb8, 0x05, 0x00, 0x00, 0x00, //0x00007d5a movl $5, %eax - 0xe9, 0x9f, 0x00, 0x00, 0x00, //0x00007d5f jmp LBB31_21 - //0x00007d64 LBB31_12 - 0x4d, 0x89, 0xd6, //0x00007d64 movq %r10, %r14 - 0x49, 0xc1, 0xee, 0x02, //0x00007d67 shrq $2, %r14 - 0x44, 0x89, 0xd6, //0x00007d6b movl %r10d, %esi - 0x83, 0xe6, 0xfc, //0x00007d6e andl $-4, %esi - 0x39, 0xf3, //0x00007d71 cmpl %esi, %ebx - 0x0f, 0x96, 0xc2, //0x00007d73 setbe %dl - 0x8d, 0x5e, 0x04, //0x00007d76 leal $4(%rsi), %ebx - 0x39, 0xcb, //0x00007d79 cmpl %ecx, %ebx - 0x0f, 0x96, 0xc0, //0x00007d7b setbe %al - 0x38, 0xc2, //0x00007d7e cmpb %al, %dl - 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00007d80 je LBB31_15 - 0x45, 0x31, 0xed, //0x00007d86 xorl %r13d, %r13d - 0x39, 0xcb, //0x00007d89 cmpl %ecx, %ebx - 0x41, 0x0f, 0x96, 0xc5, //0x00007d8b setbe %r13b - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00007d8f jmp LBB31_17 - //0x00007d94 LBB31_14 - 0x41, 0xc6, 0x00, 0x30, //0x00007d94 movb $48, (%r8) - 0x41, 0x29, 0xf8, //0x00007d98 subl %edi, %r8d - 0x41, 0xff, 0xc0, //0x00007d9b incl %r8d - 0xe9, 0xc0, 0x0a, 0x00, 0x00, //0x00007d9e jmp LBB31_138 - //0x00007da3 LBB31_15 - 0x83, 0xce, 0x02, //0x00007da3 orl $2, %esi - 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007da6 movl $1, %r13d - 0x41, 0x39, 0xf7, //0x00007dac cmpl %esi, %r15d - 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007daf ja LBB31_17 - 0x0f, 0x94, 0xc0, //0x00007db5 sete %al - 0x41, 0xc0, 0xea, 0x02, //0x00007db8 shrb $2, %r10b - 0x41, 0x20, 0xc2, //0x00007dbc andb %al, %r10b - 0x45, 0x0f, 0xb6, 0xea, //0x00007dbf movzbl %r10b, %r13d - //0x00007dc3 LBB31_17 - 0x45, 0x01, 0xf5, //0x00007dc3 addl %r14d, %r13d - 0x41, 0x81, 0xfd, 0xa0, 0x86, 0x01, 0x00, //0x00007dc6 cmpl $100000, %r13d - 0x0f, 0x82, 0x50, 0xff, 0xff, 0xff, //0x00007dcd jb LBB31_8 - //0x00007dd3 LBB31_18 - 0xb8, 0x06, 0x00, 0x00, 0x00, //0x00007dd3 movl $6, %eax - 0x41, 0x81, 0xfd, 0x40, 0x42, 0x0f, 0x00, //0x00007dd8 cmpl $1000000, %r13d - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007ddf jb LBB31_22 - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00007de5 movl $7, %eax - 0x41, 0x81, 0xfd, 0x80, 0x96, 0x98, 0x00, //0x00007dea cmpl $10000000, %r13d - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007df1 jb LBB31_22 - 0x41, 0x81, 0xfd, 0x00, 0xe1, 0xf5, 0x05, //0x00007df7 cmpl $100000000, %r13d - 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00007dfe movl $9, %eax - //0x00007e03 LBB31_21 - 0x83, 0xd8, 0x00, //0x00007e03 sbbl $0, %eax - //0x00007e06 LBB31_22 - 0x46, 0x8d, 0x14, 0x18, //0x00007e06 leal (%rax,%r11), %r10d - 0x42, 0x8d, 0x4c, 0x18, 0x05, //0x00007e0a leal $5(%rax,%r11), %ecx - 0x83, 0xf9, 0x1b, //0x00007e0f cmpl $27, %ecx - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007e12 jb LBB31_26 - 0x89, 0xc0, //0x00007e18 movl %eax, %eax - 0x49, 0x8d, 0x5c, 0x00, 0x01, //0x00007e1a leaq $1(%r8,%rax), %rbx - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007e1f cmpl $10000, %r13d - 0x0f, 0x82, 0xd9, 0x00, 0x00, 0x00, //0x00007e26 jb LBB31_30 - 0x44, 0x89, 0xe8, //0x00007e2c movl %r13d, %eax - 0x41, 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007e2f movl $3518437209, %r14d - 0x4c, 0x0f, 0xaf, 0xf0, //0x00007e35 imulq %rax, %r14 - 0x49, 0xc1, 0xee, 0x2d, //0x00007e39 shrq $45, %r14 - 0x41, 0x69, 0xc6, 0xf0, 0xd8, 0xff, 0xff, //0x00007e3d imull $-10000, %r14d, %eax - 0x44, 0x01, 0xe8, //0x00007e44 addl %r13d, %eax - 0x0f, 0x84, 0xa3, 0x04, 0x00, 0x00, //0x00007e47 je LBB31_62 - 0x89, 0xc1, //0x00007e4d movl %eax, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00007e4f imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x00007e56 shrq $37, %rcx - 0x6b, 0xd1, 0x64, //0x00007e5a imull $100, %ecx, %edx - 0x29, 0xd0, //0x00007e5d subl %edx, %eax - 0x48, 0x8d, 0x15, 0x0a, 0x43, 0x00, 0x00, //0x00007e5f leaq $17162(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x42, //0x00007e66 movzwl (%rdx,%rax,2), %eax - 0x66, 0x89, 0x43, 0xfe, //0x00007e6a movw %ax, $-2(%rbx) - 0x0f, 0xb7, 0x04, 0x4a, //0x00007e6e movzwl (%rdx,%rcx,2), %eax - 0x66, 0x89, 0x43, 0xfc, //0x00007e72 movw %ax, $-4(%rbx) - 0x45, 0x31, 0xc9, //0x00007e76 xorl %r9d, %r9d - 0x48, 0x8d, 0x4b, 0xfc, //0x00007e79 leaq $-4(%rbx), %rcx - 0x41, 0x83, 0xfe, 0x64, //0x00007e7d cmpl $100, %r14d - 0x0f, 0x83, 0x91, 0x00, 0x00, 0x00, //0x00007e81 jae LBB31_64 - //0x00007e87 LBB31_31 - 0x44, 0x89, 0xf2, //0x00007e87 movl %r14d, %edx - 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00007e8a jmp LBB31_66 - //0x00007e8f LBB31_26 - 0x41, 0x89, 0xc4, //0x00007e8f movl %eax, %r12d - 0x45, 0x85, 0xdb, //0x00007e92 testl %r11d, %r11d - 0x0f, 0x88, 0x1d, 0x02, 0x00, 0x00, //0x00007e95 js LBB31_38 - 0x4b, 0x8d, 0x34, 0x20, //0x00007e9b leaq (%r8,%r12), %rsi - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00007e9f cmpl $10000, %r13d - 0x0f, 0x82, 0xa8, 0x02, 0x00, 0x00, //0x00007ea6 jb LBB31_43 - 0x44, 0x89, 0xe8, //0x00007eac movl %r13d, %eax - 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00007eaf movl $3518437209, %ecx - 0x48, 0x0f, 0xaf, 0xc8, //0x00007eb4 imulq %rax, %rcx - 0x48, 0xc1, 0xe9, 0x2d, //0x00007eb8 shrq $45, %rcx - 0x69, 0xc1, 0xf0, 0xd8, 0xff, 0xff, //0x00007ebc imull $-10000, %ecx, %eax - 0x44, 0x01, 0xe8, //0x00007ec2 addl %r13d, %eax - 0x48, 0x69, 0xd0, 0x1f, 0x85, 0xeb, 0x51, //0x00007ec5 imulq $1374389535, %rax, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00007ecc shrq $37, %rdx - 0x6b, 0xda, 0x64, //0x00007ed0 imull $100, %edx, %ebx - 0x29, 0xd8, //0x00007ed3 subl %ebx, %eax - 0x48, 0x8d, 0x1d, 0x94, 0x42, 0x00, 0x00, //0x00007ed5 leaq $17044(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x43, //0x00007edc movzwl (%rbx,%rax,2), %eax - 0x66, 0x89, 0x46, 0xfe, //0x00007ee0 movw %ax, $-2(%rsi) - 0x48, 0x8d, 0x46, 0xfc, //0x00007ee4 leaq $-4(%rsi), %rax - 0x0f, 0xb7, 0x14, 0x53, //0x00007ee8 movzwl (%rbx,%rdx,2), %edx - 0x66, 0x89, 0x56, 0xfc, //0x00007eec movw %dx, $-4(%rsi) - 0x41, 0x89, 0xcd, //0x00007ef0 movl %ecx, %r13d - 0x41, 0x83, 0xfd, 0x64, //0x00007ef3 cmpl $100, %r13d - 0x0f, 0x83, 0x64, 0x02, 0x00, 0x00, //0x00007ef7 jae LBB31_44 - //0x00007efd LBB31_29 - 0x44, 0x89, 0xe9, //0x00007efd movl %r13d, %ecx - 0xe9, 0x9e, 0x02, 0x00, 0x00, //0x00007f00 jmp LBB31_46 - //0x00007f05 LBB31_30 - 0x45, 0x31, 0xc9, //0x00007f05 xorl %r9d, %r9d - 0x48, 0x89, 0xd9, //0x00007f08 movq %rbx, %rcx - 0x45, 0x89, 0xee, //0x00007f0b movl %r13d, %r14d - 0x41, 0x83, 0xfe, 0x64, //0x00007f0e cmpl $100, %r14d - 0x0f, 0x82, 0x6f, 0xff, 0xff, 0xff, //0x00007f12 jb LBB31_31 - //0x00007f18 LBB31_64 - 0x48, 0xff, 0xc9, //0x00007f18 decq %rcx - 0x4c, 0x8d, 0x1d, 0x4e, 0x42, 0x00, 0x00, //0x00007f1b leaq $16974(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f22 .p2align 4, 0x90 - //0x00007f30 LBB31_65 - 0x44, 0x89, 0xf2, //0x00007f30 movl %r14d, %edx - 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00007f33 imulq $1374389535, %rdx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x00007f3a shrq $37, %rdx - 0x6b, 0xc2, 0x64, //0x00007f3e imull $100, %edx, %eax - 0x44, 0x89, 0xf6, //0x00007f41 movl %r14d, %esi - 0x29, 0xc6, //0x00007f44 subl %eax, %esi - 0x41, 0x0f, 0xb7, 0x04, 0x73, //0x00007f46 movzwl (%r11,%rsi,2), %eax - 0x66, 0x89, 0x41, 0xff, //0x00007f4b movw %ax, $-1(%rcx) - 0x48, 0x83, 0xc1, 0xfe, //0x00007f4f addq $-2, %rcx - 0x41, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00007f53 cmpl $9999, %r14d - 0x41, 0x89, 0xd6, //0x00007f5a movl %edx, %r14d - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x00007f5d ja LBB31_65 - //0x00007f63 LBB31_66 - 0x49, 0x8d, 0x70, 0x01, //0x00007f63 leaq $1(%r8), %rsi - 0x83, 0xfa, 0x0a, //0x00007f67 cmpl $10, %edx - 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x00007f6a jb LBB31_68 - 0x89, 0xd0, //0x00007f70 movl %edx, %eax - 0x48, 0x8d, 0x0d, 0xf7, 0x41, 0x00, 0x00, //0x00007f72 leaq $16887(%rip), %rcx /* _Digits+0(%rip) */ - 0x8a, 0x14, 0x41, //0x00007f79 movb (%rcx,%rax,2), %dl - 0x8a, 0x44, 0x41, 0x01, //0x00007f7c movb $1(%rcx,%rax,2), %al - 0x41, 0x88, 0x50, 0x01, //0x00007f80 movb %dl, $1(%r8) - 0x41, 0x88, 0x40, 0x02, //0x00007f84 movb %al, $2(%r8) - 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00007f88 jmp LBB31_69 - //0x00007f8d LBB31_68 - 0x80, 0xc2, 0x30, //0x00007f8d addb $48, %dl - 0x88, 0x16, //0x00007f90 movb %dl, (%rsi) - //0x00007f92 LBB31_69 - 0x4c, 0x29, 0xcb, //0x00007f92 subq %r9, %rbx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f95 .p2align 4, 0x90 - //0x00007fa0 LBB31_70 - 0x80, 0x7b, 0xff, 0x30, //0x00007fa0 cmpb $48, $-1(%rbx) - 0x48, 0x8d, 0x5b, 0xff, //0x00007fa4 leaq $-1(%rbx), %rbx - 0x0f, 0x84, 0xf2, 0xff, 0xff, 0xff, //0x00007fa8 je LBB31_70 - 0x41, 0x88, 0x10, //0x00007fae movb %dl, (%r8) - 0x48, 0x8d, 0x43, 0x01, //0x00007fb1 leaq $1(%rbx), %rax - 0x48, 0x89, 0xc1, //0x00007fb5 movq %rax, %rcx - 0x48, 0x29, 0xf1, //0x00007fb8 subq %rsi, %rcx - 0x48, 0x83, 0xf9, 0x02, //0x00007fbb cmpq $2, %rcx - 0x0f, 0x8c, 0x06, 0x00, 0x00, 0x00, //0x00007fbf jl LBB31_73 - 0xc6, 0x06, 0x2e, //0x00007fc5 movb $46, (%rsi) - 0x48, 0x89, 0xc3, //0x00007fc8 movq %rax, %rbx - //0x00007fcb LBB31_73 - 0xc6, 0x03, 0x65, //0x00007fcb movb $101, (%rbx) - 0x45, 0x85, 0xd2, //0x00007fce testl %r10d, %r10d - 0x0f, 0x8e, 0x42, 0x01, 0x00, 0x00, //0x00007fd1 jle LBB31_76 - 0x41, 0xff, 0xca, //0x00007fd7 decl %r10d - 0xc6, 0x43, 0x01, 0x2b, //0x00007fda movb $43, $1(%rbx) - 0x44, 0x89, 0xd0, //0x00007fde movl %r10d, %eax - 0x83, 0xf8, 0x64, //0x00007fe1 cmpl $100, %eax - 0x0f, 0x8c, 0x44, 0x01, 0x00, 0x00, //0x00007fe4 jl LBB31_77 - //0x00007fea LBB31_75 - 0x89, 0xc1, //0x00007fea movl %eax, %ecx - 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007fec movl $3435973837, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x00007ff1 imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x23, //0x00007ff5 shrq $35, %rdx - 0x8d, 0x0c, 0x12, //0x00007ff9 leal (%rdx,%rdx), %ecx - 0x8d, 0x0c, 0x89, //0x00007ffc leal (%rcx,%rcx,4), %ecx - 0x29, 0xc8, //0x00007fff subl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x68, 0x41, 0x00, 0x00, //0x00008001 leaq $16744(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x51, //0x00008008 movzwl (%rcx,%rdx,2), %ecx - 0x66, 0x89, 0x4b, 0x02, //0x0000800c movw %cx, $2(%rbx) - 0x0c, 0x30, //0x00008010 orb $48, %al - 0x88, 0x43, 0x04, //0x00008012 movb %al, $4(%rbx) - 0x48, 0x83, 0xc3, 0x05, //0x00008015 addq $5, %rbx - 0x49, 0x89, 0xd8, //0x00008019 movq %rbx, %r8 - 0xe9, 0x3f, 0x08, 0x00, 0x00, //0x0000801c jmp LBB31_137 - //0x00008021 LBB31_32 - 0xd3, 0xee, //0x00008021 shrl %cl, %esi - 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00008023 cmpl $100000, %esi - 0x0f, 0x82, 0x17, 0x02, 0x00, 0x00, //0x00008029 jb LBB31_52 - 0xb8, 0x06, 0x00, 0x00, 0x00, //0x0000802f movl $6, %eax - 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00008034 cmpl $1000000, %esi - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x0000803a jb LBB31_36 - 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00008040 movl $7, %eax - 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00008045 cmpl $10000000, %esi - 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000804b jb LBB31_36 - 0x81, 0xfe, 0x00, 0xe1, 0xf5, 0x05, //0x00008051 cmpl $100000000, %esi - 0xb8, 0x09, 0x00, 0x00, 0x00, //0x00008057 movl $9, %eax - 0x48, 0x83, 0xd8, 0x00, //0x0000805c sbbq $0, %rax - //0x00008060 LBB31_36 - 0x4c, 0x01, 0xc0, //0x00008060 addq %r8, %rax - //0x00008063 LBB31_37 - 0x89, 0xf1, //0x00008063 movl %esi, %ecx - 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008065 movl $3518437209, %edx - 0x48, 0x0f, 0xaf, 0xd1, //0x0000806a imulq %rcx, %rdx - 0x48, 0xc1, 0xea, 0x2d, //0x0000806e shrq $45, %rdx - 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00008072 imull $-10000, %edx, %ecx - 0x01, 0xf1, //0x00008078 addl %esi, %ecx - 0x48, 0x69, 0xf1, 0x1f, 0x85, 0xeb, 0x51, //0x0000807a imulq $1374389535, %rcx, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x00008081 shrq $37, %rsi - 0x6b, 0xde, 0x64, //0x00008085 imull $100, %esi, %ebx - 0x29, 0xd9, //0x00008088 subl %ebx, %ecx - 0x48, 0x8d, 0x1d, 0xdf, 0x40, 0x00, 0x00, //0x0000808a leaq $16607(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4b, //0x00008091 movzwl (%rbx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0xfe, //0x00008095 movw %cx, $-2(%rax) - 0x0f, 0xb7, 0x0c, 0x73, //0x00008099 movzwl (%rbx,%rsi,2), %ecx - 0x66, 0x89, 0x48, 0xfc, //0x0000809d movw %cx, $-4(%rax) - 0x49, 0x89, 0xc1, //0x000080a1 movq %rax, %r9 - 0x48, 0x83, 0xc0, 0xfc, //0x000080a4 addq $-4, %rax - 0x89, 0xd6, //0x000080a8 movl %edx, %esi - 0x83, 0xfe, 0x64, //0x000080aa cmpl $100, %esi - 0x0f, 0x83, 0xd2, 0x01, 0x00, 0x00, //0x000080ad jae LBB31_56 - 0xe9, 0x07, 0x02, 0x00, 0x00, //0x000080b3 jmp LBB31_58 - //0x000080b8 LBB31_38 - 0x45, 0x85, 0xd2, //0x000080b8 testl %r10d, %r10d - 0x0f, 0x8f, 0x70, 0x04, 0x00, 0x00, //0x000080bb jg LBB31_98 - 0x66, 0x41, 0xc7, 0x00, 0x30, 0x2e, //0x000080c1 movw $11824, (%r8) - 0x49, 0x83, 0xc0, 0x02, //0x000080c7 addq $2, %r8 - 0x45, 0x85, 0xd2, //0x000080cb testl %r10d, %r10d - 0x0f, 0x89, 0x5d, 0x04, 0x00, 0x00, //0x000080ce jns LBB31_98 - 0x31, 0xf6, //0x000080d4 xorl %esi, %esi - 0x41, 0x83, 0xfa, 0xe0, //0x000080d6 cmpl $-32, %r10d - 0x0f, 0x87, 0x33, 0x04, 0x00, 0x00, //0x000080da ja LBB31_96 - 0x45, 0x89, 0xd3, //0x000080e0 movl %r10d, %r11d - 0x41, 0xf7, 0xd3, //0x000080e3 notl %r11d - 0x49, 0xff, 0xc3, //0x000080e6 incq %r11 - 0x4c, 0x89, 0xde, //0x000080e9 movq %r11, %rsi - 0x48, 0x83, 0xe6, 0xe0, //0x000080ec andq $-32, %rsi - 0x48, 0x8d, 0x4e, 0xe0, //0x000080f0 leaq $-32(%rsi), %rcx - 0x48, 0x89, 0xc8, //0x000080f4 movq %rcx, %rax - 0x48, 0xc1, 0xe8, 0x05, //0x000080f7 shrq $5, %rax - 0x48, 0xff, 0xc0, //0x000080fb incq %rax - 0x41, 0x89, 0xc6, //0x000080fe movl %eax, %r14d - 0x41, 0x83, 0xe6, 0x07, //0x00008101 andl $7, %r14d - 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x00008105 cmpq $224, %rcx - 0x0f, 0x83, 0x27, 0x03, 0x00, 0x00, //0x0000810c jae LBB31_90 - 0x31, 0xc0, //0x00008112 xorl %eax, %eax - 0xe9, 0xbc, 0x03, 0x00, 0x00, //0x00008114 jmp LBB31_92 - //0x00008119 LBB31_76 - 0xc6, 0x43, 0x01, 0x2d, //0x00008119 movb $45, $1(%rbx) - 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000811d movl $1, %eax - 0x44, 0x29, 0xd0, //0x00008122 subl %r10d, %eax - 0x83, 0xf8, 0x64, //0x00008125 cmpl $100, %eax - 0x0f, 0x8d, 0xbc, 0xfe, 0xff, 0xff, //0x00008128 jge LBB31_75 - //0x0000812e LBB31_77 - 0x83, 0xf8, 0x0a, //0x0000812e cmpl $10, %eax - 0x0f, 0x8c, 0xfe, 0x00, 0x00, 0x00, //0x00008131 jl LBB31_79 - 0x48, 0x98, //0x00008137 cltq - 0x48, 0x8d, 0x0d, 0x30, 0x40, 0x00, 0x00, //0x00008139 leaq $16432(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008140 movzwl (%rcx,%rax,2), %eax - 0x66, 0x89, 0x43, 0x02, //0x00008144 movw %ax, $2(%rbx) - 0x48, 0x83, 0xc3, 0x04, //0x00008148 addq $4, %rbx - 0x49, 0x89, 0xd8, //0x0000814c movq %rbx, %r8 - 0xe9, 0x0c, 0x07, 0x00, 0x00, //0x0000814f jmp LBB31_137 - //0x00008154 LBB31_43 - 0x48, 0x89, 0xf0, //0x00008154 movq %rsi, %rax - 0x41, 0x83, 0xfd, 0x64, //0x00008157 cmpl $100, %r13d - 0x0f, 0x82, 0x9c, 0xfd, 0xff, 0xff, //0x0000815b jb LBB31_29 - //0x00008161 LBB31_44 - 0x48, 0xff, 0xc8, //0x00008161 decq %rax - 0x4c, 0x8d, 0x1d, 0x05, 0x40, 0x00, 0x00, //0x00008164 leaq $16389(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000816b .p2align 4, 0x90 - //0x00008170 LBB31_45 - 0x44, 0x89, 0xe9, //0x00008170 movl %r13d, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x00008173 imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x0000817a shrq $37, %rcx - 0x6b, 0xd9, 0x64, //0x0000817e imull $100, %ecx, %ebx - 0x44, 0x89, 0xea, //0x00008181 movl %r13d, %edx - 0x29, 0xda, //0x00008184 subl %ebx, %edx - 0x41, 0x0f, 0xb7, 0x14, 0x53, //0x00008186 movzwl (%r11,%rdx,2), %edx - 0x66, 0x89, 0x50, 0xff, //0x0000818b movw %dx, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x0000818f addq $-2, %rax - 0x41, 0x81, 0xfd, 0x0f, 0x27, 0x00, 0x00, //0x00008193 cmpl $9999, %r13d - 0x41, 0x89, 0xcd, //0x0000819a movl %ecx, %r13d - 0x0f, 0x87, 0xcd, 0xff, 0xff, 0xff, //0x0000819d ja LBB31_45 - //0x000081a3 LBB31_46 - 0x49, 0x63, 0xc2, //0x000081a3 movslq %r10d, %rax - 0x83, 0xf9, 0x0a, //0x000081a6 cmpl $10, %ecx - 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x000081a9 jb LBB31_48 - 0x89, 0xc9, //0x000081af movl %ecx, %ecx - 0x48, 0x8d, 0x15, 0xb8, 0x3f, 0x00, 0x00, //0x000081b1 leaq $16312(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x000081b8 movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x08, //0x000081bc movw %cx, (%r8) - 0x49, 0x01, 0xc0, //0x000081c0 addq %rax, %r8 - 0x49, 0x39, 0xc4, //0x000081c3 cmpq %rax, %r12 - 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000081c6 jl LBB31_49 - 0xe9, 0x8f, 0x06, 0x00, 0x00, //0x000081cc jmp LBB31_137 - //0x000081d1 LBB31_48 - 0x80, 0xc1, 0x30, //0x000081d1 addb $48, %cl - 0x41, 0x88, 0x08, //0x000081d4 movb %cl, (%r8) - 0x49, 0x01, 0xc0, //0x000081d7 addq %rax, %r8 - 0x49, 0x39, 0xc4, //0x000081da cmpq %rax, %r12 - 0x0f, 0x8d, 0x7d, 0x06, 0x00, 0x00, //0x000081dd jge LBB31_137 - //0x000081e3 LBB31_49 - 0x4b, 0x8d, 0x04, 0x21, //0x000081e3 leaq (%r9,%r12), %rax - 0x4c, 0x8d, 0x5c, 0x07, 0x01, //0x000081e7 leaq $1(%rdi,%rax), %r11 - 0x4d, 0x39, 0xc3, //0x000081ec cmpq %r8, %r11 - 0x4d, 0x0f, 0x46, 0xd8, //0x000081ef cmovbeq %r8, %r11 - 0x4a, 0x8d, 0x0c, 0x0f, //0x000081f3 leaq (%rdi,%r9), %rcx - 0x4c, 0x01, 0xe1, //0x000081f7 addq %r12, %rcx - 0x49, 0x29, 0xcb, //0x000081fa subq %rcx, %r11 - 0x49, 0x83, 0xfb, 0x20, //0x000081fd cmpq $32, %r11 - 0x0f, 0x82, 0xf9, 0x01, 0x00, 0x00, //0x00008201 jb LBB31_87 - 0x4d, 0x89, 0xda, //0x00008207 movq %r11, %r10 - 0x49, 0x83, 0xe2, 0xe0, //0x0000820a andq $-32, %r10 - 0x49, 0x8d, 0x4a, 0xe0, //0x0000820e leaq $-32(%r10), %rcx - 0x48, 0x89, 0xcb, //0x00008212 movq %rcx, %rbx - 0x48, 0xc1, 0xeb, 0x05, //0x00008215 shrq $5, %rbx - 0x48, 0xff, 0xc3, //0x00008219 incq %rbx - 0x89, 0xda, //0x0000821c movl %ebx, %edx - 0x83, 0xe2, 0x07, //0x0000821e andl $7, %edx - 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x00008221 cmpq $224, %rcx - 0x0f, 0x83, 0xdb, 0x00, 0x00, 0x00, //0x00008228 jae LBB31_80 - 0x31, 0xc0, //0x0000822e xorl %eax, %eax - 0xe9, 0x6f, 0x01, 0x00, 0x00, //0x00008230 jmp LBB31_82 - //0x00008235 LBB31_79 - 0x04, 0x30, //0x00008235 addb $48, %al - 0x88, 0x43, 0x02, //0x00008237 movb %al, $2(%rbx) - 0x48, 0x83, 0xc3, 0x03, //0x0000823a addq $3, %rbx - 0x49, 0x89, 0xd8, //0x0000823e movq %rbx, %r8 - 0xe9, 0x1a, 0x06, 0x00, 0x00, //0x00008241 jmp LBB31_137 - //0x00008246 LBB31_52 - 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008246 movl $1, %r9d - 0x83, 0xfe, 0x0a, //0x0000824c cmpl $10, %esi - 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x0000824f jb LBB31_55 - 0x41, 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00008255 movl $2, %r9d - 0x83, 0xfe, 0x64, //0x0000825b cmpl $100, %esi - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000825e jb LBB31_55 - 0x41, 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00008264 movl $3, %r9d - 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000826a cmpl $1000, %esi - 0x0f, 0x83, 0x9e, 0x01, 0x00, 0x00, //0x00008270 jae LBB31_88 - //0x00008276 LBB31_55 - 0x4d, 0x01, 0xc1, //0x00008276 addq %r8, %r9 - 0x4c, 0x89, 0xc8, //0x00008279 movq %r9, %rax - 0x83, 0xfe, 0x64, //0x0000827c cmpl $100, %esi - 0x0f, 0x82, 0x3a, 0x00, 0x00, 0x00, //0x0000827f jb LBB31_58 - //0x00008285 LBB31_56 - 0x48, 0xff, 0xc8, //0x00008285 decq %rax - 0x4c, 0x8d, 0x15, 0xe1, 0x3e, 0x00, 0x00, //0x00008288 leaq $16097(%rip), %r10 /* _Digits+0(%rip) */ - 0x90, //0x0000828f .p2align 4, 0x90 - //0x00008290 LBB31_57 - 0x89, 0xf3, //0x00008290 movl %esi, %ebx - 0x89, 0xf6, //0x00008292 movl %esi, %esi - 0x48, 0x69, 0xf6, 0x1f, 0x85, 0xeb, 0x51, //0x00008294 imulq $1374389535, %rsi, %rsi - 0x48, 0xc1, 0xee, 0x25, //0x0000829b shrq $37, %rsi - 0x6b, 0xce, 0x64, //0x0000829f imull $100, %esi, %ecx - 0x89, 0xda, //0x000082a2 movl %ebx, %edx - 0x29, 0xca, //0x000082a4 subl %ecx, %edx - 0x41, 0x0f, 0xb7, 0x0c, 0x52, //0x000082a6 movzwl (%r10,%rdx,2), %ecx - 0x66, 0x89, 0x48, 0xff, //0x000082ab movw %cx, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x000082af addq $-2, %rax - 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000082b3 cmpl $9999, %ebx - 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000082b9 ja LBB31_57 - //0x000082bf LBB31_58 - 0x83, 0xfe, 0x0a, //0x000082bf cmpl $10, %esi - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000082c2 jb LBB31_60 - 0x89, 0xf0, //0x000082c8 movl %esi, %eax - 0x48, 0x8d, 0x0d, 0x9f, 0x3e, 0x00, 0x00, //0x000082ca leaq $16031(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x000082d1 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x00, //0x000082d5 movw %ax, (%r8) - 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000082d9 jmp LBB31_61 - //0x000082de LBB31_60 - 0x40, 0x80, 0xc6, 0x30, //0x000082de addb $48, %sil - 0x41, 0x88, 0x30, //0x000082e2 movb %sil, (%r8) - //0x000082e5 LBB31_61 - 0x41, 0x29, 0xf9, //0x000082e5 subl %edi, %r9d - 0x45, 0x89, 0xc8, //0x000082e8 movl %r9d, %r8d - 0xe9, 0x73, 0x05, 0x00, 0x00, //0x000082eb jmp LBB31_138 - //0x000082f0 LBB31_62 - 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000082f0 movl $4, %r9d - 0x48, 0x8d, 0x4b, 0xfc, //0x000082f6 leaq $-4(%rbx), %rcx - 0x41, 0x83, 0xfe, 0x64, //0x000082fa cmpl $100, %r14d - 0x0f, 0x82, 0x83, 0xfb, 0xff, 0xff, //0x000082fe jb LBB31_31 - 0xe9, 0x0f, 0xfc, 0xff, 0xff, //0x00008304 jmp LBB31_64 - //0x00008309 LBB31_80 - 0x48, 0x29, 0xd3, //0x00008309 subq %rdx, %rbx - 0x48, 0x8d, 0x8c, 0x07, 0xf0, 0x00, 0x00, 0x00, //0x0000830c leaq $240(%rdi,%rax), %rcx - 0x31, 0xc0, //0x00008314 xorl %eax, %eax - 0x66, 0x0f, 0x6f, 0x05, 0x62, 0xf8, 0xff, 0xff, //0x00008316 movdqa $-1950(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - 0x90, 0x90, //0x0000831e .p2align 4, 0x90 - //0x00008320 LBB31_81 - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x10, 0xff, 0xff, 0xff, //0x00008320 movdqu %xmm0, $-240(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x20, 0xff, 0xff, 0xff, //0x00008329 movdqu %xmm0, $-224(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x30, 0xff, 0xff, 0xff, //0x00008332 movdqu %xmm0, $-208(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x40, 0xff, 0xff, 0xff, //0x0000833b movdqu %xmm0, $-192(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x50, 0xff, 0xff, 0xff, //0x00008344 movdqu %xmm0, $-176(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x60, 0xff, 0xff, 0xff, //0x0000834d movdqu %xmm0, $-160(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x01, 0x70, 0xff, 0xff, 0xff, //0x00008356 movdqu %xmm0, $-144(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x80, //0x0000835f movdqu %xmm0, $-128(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0x90, //0x00008365 movdqu %xmm0, $-112(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xa0, //0x0000836b movdqu %xmm0, $-96(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xb0, //0x00008371 movdqu %xmm0, $-80(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xc0, //0x00008377 movdqu %xmm0, $-64(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xd0, //0x0000837d movdqu %xmm0, $-48(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xe0, //0x00008383 movdqu %xmm0, $-32(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x01, 0xf0, //0x00008389 movdqu %xmm0, $-16(%rcx,%rax) - 0xf3, 0x0f, 0x7f, 0x04, 0x01, //0x0000838f movdqu %xmm0, (%rcx,%rax) - 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x00008394 addq $256, %rax - 0x48, 0x83, 0xc3, 0xf8, //0x0000839a addq $-8, %rbx - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000839e jne LBB31_81 - //0x000083a4 LBB31_82 - 0x48, 0x85, 0xd2, //0x000083a4 testq %rdx, %rdx - 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x000083a7 je LBB31_85 - 0x4c, 0x01, 0xc8, //0x000083ad addq %r9, %rax - 0x4c, 0x01, 0xe0, //0x000083b0 addq %r12, %rax - 0x48, 0x8d, 0x44, 0x07, 0x10, //0x000083b3 leaq $16(%rdi,%rax), %rax - 0x48, 0xf7, 0xda, //0x000083b8 negq %rdx - 0x66, 0x0f, 0x6f, 0x05, 0xbd, 0xf7, 0xff, 0xff, //0x000083bb movdqa $-2115(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083c3 .p2align 4, 0x90 - //0x000083d0 LBB31_84 - 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x000083d0 movdqu %xmm0, $-16(%rax) - 0xf3, 0x0f, 0x7f, 0x00, //0x000083d5 movdqu %xmm0, (%rax) - 0x48, 0x83, 0xc0, 0x20, //0x000083d9 addq $32, %rax - 0x48, 0xff, 0xc2, //0x000083dd incq %rdx - 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x000083e0 jne LBB31_84 - //0x000083e6 LBB31_85 - 0x4d, 0x39, 0xda, //0x000083e6 cmpq %r11, %r10 - 0x0f, 0x84, 0x71, 0x04, 0x00, 0x00, //0x000083e9 je LBB31_137 - 0x4c, 0x01, 0xd6, //0x000083ef addq %r10, %rsi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083f2 .p2align 4, 0x90 - //0x00008400 LBB31_87 - 0xc6, 0x06, 0x30, //0x00008400 movb $48, (%rsi) - 0x48, 0xff, 0xc6, //0x00008403 incq %rsi - 0x4c, 0x39, 0xc6, //0x00008406 cmpq %r8, %rsi - 0x0f, 0x82, 0xf1, 0xff, 0xff, 0xff, //0x00008409 jb LBB31_87 - 0xe9, 0x4c, 0x04, 0x00, 0x00, //0x0000840f jmp LBB31_137 - //0x00008414 LBB31_88 - 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008414 cmpl $10000, %esi - 0x4c, 0x89, 0xc0, //0x0000841a movq %r8, %rax - 0x48, 0x83, 0xd8, 0x00, //0x0000841d sbbq $0, %rax - 0x48, 0x83, 0xc0, 0x05, //0x00008421 addq $5, %rax - 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x00008425 cmpl $10000, %esi - 0x0f, 0x83, 0x32, 0xfc, 0xff, 0xff, //0x0000842b jae LBB31_37 - 0x49, 0x89, 0xc1, //0x00008431 movq %rax, %r9 - 0xe9, 0x4c, 0xfe, 0xff, 0xff, //0x00008434 jmp LBB31_56 - //0x00008439 LBB31_90 - 0x49, 0x8d, 0x9c, 0x39, 0xf2, 0x00, 0x00, 0x00, //0x00008439 leaq $242(%r9,%rdi), %rbx - 0x4d, 0x89, 0xf7, //0x00008441 movq %r14, %r15 - 0x49, 0x29, 0xc7, //0x00008444 subq %rax, %r15 - 0x31, 0xc0, //0x00008447 xorl %eax, %eax - 0x66, 0x0f, 0x6f, 0x05, 0x2f, 0xf7, 0xff, 0xff, //0x00008449 movdqa $-2257(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - //0x00008451 LBB31_91 - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x10, 0xff, 0xff, 0xff, //0x00008451 movdqu %xmm0, $-240(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x20, 0xff, 0xff, 0xff, //0x0000845a movdqu %xmm0, $-224(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x30, 0xff, 0xff, 0xff, //0x00008463 movdqu %xmm0, $-208(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x40, 0xff, 0xff, 0xff, //0x0000846c movdqu %xmm0, $-192(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x50, 0xff, 0xff, 0xff, //0x00008475 movdqu %xmm0, $-176(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x60, 0xff, 0xff, 0xff, //0x0000847e movdqu %xmm0, $-160(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x84, 0x03, 0x70, 0xff, 0xff, 0xff, //0x00008487 movdqu %xmm0, $-144(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x80, //0x00008490 movdqu %xmm0, $-128(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0x90, //0x00008496 movdqu %xmm0, $-112(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xa0, //0x0000849c movdqu %xmm0, $-96(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xb0, //0x000084a2 movdqu %xmm0, $-80(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xc0, //0x000084a8 movdqu %xmm0, $-64(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xd0, //0x000084ae movdqu %xmm0, $-48(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xe0, //0x000084b4 movdqu %xmm0, $-32(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x44, 0x03, 0xf0, //0x000084ba movdqu %xmm0, $-16(%rbx,%rax) - 0xf3, 0x0f, 0x7f, 0x04, 0x03, //0x000084c0 movdqu %xmm0, (%rbx,%rax) - 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x000084c5 addq $256, %rax - 0x49, 0x83, 0xc7, 0x08, //0x000084cb addq $8, %r15 - 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000084cf jne LBB31_91 - //0x000084d5 LBB31_92 - 0x4d, 0x85, 0xf6, //0x000084d5 testq %r14, %r14 - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000084d8 je LBB31_95 - 0x4c, 0x01, 0xc8, //0x000084de addq %r9, %rax - 0x48, 0x8d, 0x44, 0x07, 0x12, //0x000084e1 leaq $18(%rdi,%rax), %rax - 0x49, 0xf7, 0xde, //0x000084e6 negq %r14 - 0x66, 0x0f, 0x6f, 0x05, 0x8f, 0xf6, 0xff, 0xff, //0x000084e9 movdqa $-2417(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - //0x000084f1 LBB31_94 - 0xf3, 0x0f, 0x7f, 0x40, 0xf0, //0x000084f1 movdqu %xmm0, $-16(%rax) - 0xf3, 0x0f, 0x7f, 0x00, //0x000084f6 movdqu %xmm0, (%rax) - 0x48, 0x83, 0xc0, 0x20, //0x000084fa addq $32, %rax - 0x49, 0xff, 0xc6, //0x000084fe incq %r14 - 0x0f, 0x85, 0xea, 0xff, 0xff, 0xff, //0x00008501 jne LBB31_94 - //0x00008507 LBB31_95 - 0x49, 0x01, 0xf0, //0x00008507 addq %rsi, %r8 - 0x49, 0x39, 0xf3, //0x0000850a cmpq %rsi, %r11 - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x0000850d je LBB31_98 - //0x00008513 LBB31_96 - 0x44, 0x89, 0xd0, //0x00008513 movl %r10d, %eax - 0xf7, 0xd8, //0x00008516 negl %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008518 .p2align 4, 0x90 - //0x00008520 LBB31_97 - 0x41, 0xc6, 0x00, 0x30, //0x00008520 movb $48, (%r8) - 0x49, 0xff, 0xc0, //0x00008524 incq %r8 - 0xff, 0xc6, //0x00008527 incl %esi - 0x39, 0xc6, //0x00008529 cmpl %eax, %esi - 0x0f, 0x8c, 0xef, 0xff, 0xff, 0xff, //0x0000852b jl LBB31_97 - //0x00008531 LBB31_98 - 0x4b, 0x8d, 0x04, 0x20, //0x00008531 leaq (%r8,%r12), %rax - 0x41, 0x81, 0xfd, 0x10, 0x27, 0x00, 0x00, //0x00008535 cmpl $10000, %r13d - 0x0f, 0x82, 0x63, 0x00, 0x00, 0x00, //0x0000853c jb LBB31_101 - 0x44, 0x89, 0xe9, //0x00008542 movl %r13d, %ecx - 0x41, 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00008545 movl $3518437209, %r11d - 0x4c, 0x0f, 0xaf, 0xd9, //0x0000854b imulq %rcx, %r11 - 0x49, 0xc1, 0xeb, 0x2d, //0x0000854f shrq $45, %r11 - 0x41, 0x69, 0xcb, 0xf0, 0xd8, 0xff, 0xff, //0x00008553 imull $-10000, %r11d, %ecx - 0x44, 0x01, 0xe9, //0x0000855a addl %r13d, %ecx - 0x0f, 0x84, 0x87, 0x01, 0x00, 0x00, //0x0000855d je LBB31_103 - 0x89, 0xca, //0x00008563 movl %ecx, %edx - 0x48, 0x69, 0xd2, 0x1f, 0x85, 0xeb, 0x51, //0x00008565 imulq $1374389535, %rdx, %rdx - 0x48, 0xc1, 0xea, 0x25, //0x0000856c shrq $37, %rdx - 0x6b, 0xda, 0x64, //0x00008570 imull $100, %edx, %ebx - 0x29, 0xd9, //0x00008573 subl %ebx, %ecx - 0x48, 0x8d, 0x1d, 0xf4, 0x3b, 0x00, 0x00, //0x00008575 leaq $15348(%rip), %rbx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4b, //0x0000857c movzwl (%rbx,%rcx,2), %ecx - 0x66, 0x89, 0x48, 0xfe, //0x00008580 movw %cx, $-2(%rax) - 0x0f, 0xb7, 0x0c, 0x53, //0x00008584 movzwl (%rbx,%rdx,2), %ecx - 0x66, 0x89, 0x48, 0xfc, //0x00008588 movw %cx, $-4(%rax) - 0x45, 0x31, 0xc9, //0x0000858c xorl %r9d, %r9d - 0x48, 0x83, 0xc0, 0xfc, //0x0000858f addq $-4, %rax - 0x41, 0x83, 0xfb, 0x64, //0x00008593 cmpl $100, %r11d - 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00008597 jae LBB31_105 - //0x0000859d LBB31_102 - 0x44, 0x89, 0xd9, //0x0000859d movl %r11d, %ecx - 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000085a0 jmp LBB31_107 - //0x000085a5 LBB31_101 - 0x45, 0x31, 0xc9, //0x000085a5 xorl %r9d, %r9d - 0x45, 0x89, 0xeb, //0x000085a8 movl %r13d, %r11d - 0x41, 0x83, 0xfb, 0x64, //0x000085ab cmpl $100, %r11d - 0x0f, 0x82, 0xe8, 0xff, 0xff, 0xff, //0x000085af jb LBB31_102 - //0x000085b5 LBB31_105 - 0x48, 0xff, 0xc8, //0x000085b5 decq %rax - 0x48, 0x8d, 0x15, 0xb1, 0x3b, 0x00, 0x00, //0x000085b8 leaq $15281(%rip), %rdx /* _Digits+0(%rip) */ - 0x90, //0x000085bf .p2align 4, 0x90 - //0x000085c0 LBB31_106 - 0x44, 0x89, 0xd9, //0x000085c0 movl %r11d, %ecx - 0x48, 0x69, 0xc9, 0x1f, 0x85, 0xeb, 0x51, //0x000085c3 imulq $1374389535, %rcx, %rcx - 0x48, 0xc1, 0xe9, 0x25, //0x000085ca shrq $37, %rcx - 0x6b, 0xd9, 0x64, //0x000085ce imull $100, %ecx, %ebx - 0x44, 0x89, 0xde, //0x000085d1 movl %r11d, %esi - 0x29, 0xde, //0x000085d4 subl %ebx, %esi - 0x0f, 0xb7, 0x34, 0x72, //0x000085d6 movzwl (%rdx,%rsi,2), %esi - 0x66, 0x89, 0x70, 0xff, //0x000085da movw %si, $-1(%rax) - 0x48, 0x83, 0xc0, 0xfe, //0x000085de addq $-2, %rax - 0x41, 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000085e2 cmpl $9999, %r11d - 0x41, 0x89, 0xcb, //0x000085e9 movl %ecx, %r11d - 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x000085ec ja LBB31_106 - //0x000085f2 LBB31_107 - 0x83, 0xf9, 0x0a, //0x000085f2 cmpl $10, %ecx - 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x000085f5 jb LBB31_109 - 0x89, 0xc8, //0x000085fb movl %ecx, %eax - 0x48, 0x8d, 0x0d, 0x6c, 0x3b, 0x00, 0x00, //0x000085fd leaq $15212(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008604 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x00, //0x00008608 movw %ax, (%r8) - 0xe9, 0x06, 0x00, 0x00, 0x00, //0x0000860c jmp LBB31_110 - //0x00008611 LBB31_109 - 0x80, 0xc1, 0x30, //0x00008611 addb $48, %cl - 0x41, 0x88, 0x08, //0x00008614 movb %cl, (%r8) - //0x00008617 LBB31_110 - 0x4d, 0x29, 0xcc, //0x00008617 subq %r9, %r12 - 0x49, 0x8d, 0x74, 0x24, 0x01, //0x0000861a leaq $1(%r12), %rsi - 0x49, 0x8d, 0x54, 0x24, 0x11, //0x0000861f leaq $17(%r12), %rdx - 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00008624 leaq $2(%r12), %rax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008629 .p2align 4, 0x90 - //0x00008630 LBB31_111 - 0x48, 0xff, 0xca, //0x00008630 decq %rdx - 0x48, 0xff, 0xce, //0x00008633 decq %rsi - 0x48, 0xff, 0xc8, //0x00008636 decq %rax - 0x43, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00008639 cmpb $48, $-1(%r8,%r12) - 0x4d, 0x8d, 0x64, 0x24, 0xff, //0x0000863f leaq $-1(%r12), %r12 - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00008644 je LBB31_111 - 0x4d, 0x8d, 0x0c, 0x30, //0x0000864a leaq (%r8,%rsi), %r9 - 0x45, 0x85, 0xd2, //0x0000864e testl %r10d, %r10d - 0x0f, 0x8e, 0x8b, 0x00, 0x00, 0x00, //0x00008651 jle LBB31_116 - 0x44, 0x89, 0xc9, //0x00008657 movl %r9d, %ecx - 0x44, 0x29, 0xc1, //0x0000865a subl %r8d, %ecx - 0x41, 0x39, 0xca, //0x0000865d cmpl %ecx, %r10d - 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00008660 jge LBB31_117 - 0x43, 0x8d, 0x0c, 0x02, //0x00008666 leal (%r10,%r8), %ecx - 0x41, 0x29, 0xc9, //0x0000866a subl %ecx, %r9d - 0x49, 0x8d, 0x49, 0xff, //0x0000866d leaq $-1(%r9), %rcx - 0x45, 0x89, 0xcb, //0x00008671 movl %r9d, %r11d - 0x41, 0x83, 0xe3, 0x03, //0x00008674 andl $3, %r11d - 0x48, 0x83, 0xf9, 0x03, //0x00008678 cmpq $3, %rcx - 0x0f, 0x83, 0x81, 0x00, 0x00, 0x00, //0x0000867c jae LBB31_121 - 0x31, 0xc9, //0x00008682 xorl %ecx, %ecx - 0xe9, 0xa3, 0x00, 0x00, 0x00, //0x00008684 jmp LBB31_124 - //0x00008689 LBB31_117 - 0x0f, 0x8e, 0x53, 0x00, 0x00, 0x00, //0x00008689 jle LBB31_116 - 0x45, 0x01, 0xc2, //0x0000868f addl %r8d, %r10d - 0x45, 0x89, 0xcf, //0x00008692 movl %r9d, %r15d - 0x41, 0xf7, 0xd7, //0x00008695 notl %r15d - 0x45, 0x01, 0xd7, //0x00008698 addl %r10d, %r15d - 0x45, 0x31, 0xf6, //0x0000869b xorl %r14d, %r14d - 0x4d, 0x89, 0xcb, //0x0000869e movq %r9, %r11 - 0x41, 0x83, 0xff, 0x1e, //0x000086a1 cmpl $30, %r15d - 0x0f, 0x86, 0x9b, 0x01, 0x00, 0x00, //0x000086a5 jbe LBB31_135 - 0x49, 0xff, 0xc7, //0x000086ab incq %r15 - 0x4d, 0x89, 0xfe, //0x000086ae movq %r15, %r14 - 0x49, 0x83, 0xe6, 0xe0, //0x000086b1 andq $-32, %r14 - 0x4f, 0x8d, 0x1c, 0x30, //0x000086b5 leaq (%r8,%r14), %r11 - 0x49, 0x8d, 0x5e, 0xe0, //0x000086b9 leaq $-32(%r14), %rbx - 0x48, 0x89, 0xd8, //0x000086bd movq %rbx, %rax - 0x48, 0xc1, 0xe8, 0x05, //0x000086c0 shrq $5, %rax - 0x48, 0xff, 0xc0, //0x000086c4 incq %rax - 0x41, 0x89, 0xc4, //0x000086c7 movl %eax, %r12d - 0x41, 0x83, 0xe4, 0x07, //0x000086ca andl $7, %r12d - 0x48, 0x81, 0xfb, 0xe0, 0x00, 0x00, 0x00, //0x000086ce cmpq $224, %rbx - 0x0f, 0x83, 0x8f, 0x00, 0x00, 0x00, //0x000086d5 jae LBB31_129 - 0x31, 0xc0, //0x000086db xorl %eax, %eax - 0xe9, 0x23, 0x01, 0x00, 0x00, //0x000086dd jmp LBB31_131 - //0x000086e2 LBB31_116 - 0x4d, 0x89, 0xc8, //0x000086e2 movq %r9, %r8 - 0xe9, 0x76, 0x01, 0x00, 0x00, //0x000086e5 jmp LBB31_137 - //0x000086ea LBB31_103 - 0x41, 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000086ea movl $4, %r9d - 0x48, 0x83, 0xc0, 0xfc, //0x000086f0 addq $-4, %rax - 0x41, 0x83, 0xfb, 0x64, //0x000086f4 cmpl $100, %r11d - 0x0f, 0x82, 0x9f, 0xfe, 0xff, 0xff, //0x000086f8 jb LBB31_102 - 0xe9, 0xb2, 0xfe, 0xff, 0xff, //0x000086fe jmp LBB31_105 - //0x00008703 LBB31_121 - 0x4d, 0x89, 0xde, //0x00008703 movq %r11, %r14 - 0x4d, 0x29, 0xce, //0x00008706 subq %r9, %r14 - 0x31, 0xc9, //0x00008709 xorl %ecx, %ecx - 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000870b .p2align 4, 0x90 - //0x00008710 LBB31_122 - 0x49, 0x8d, 0x1c, 0x08, //0x00008710 leaq (%r8,%rcx), %rbx - 0x8b, 0x54, 0x1e, 0xfc, //0x00008714 movl $-4(%rsi,%rbx), %edx - 0x89, 0x54, 0x1e, 0xfd, //0x00008718 movl %edx, $-3(%rsi,%rbx) - 0x48, 0x83, 0xc1, 0xfc, //0x0000871c addq $-4, %rcx - 0x49, 0x39, 0xce, //0x00008720 cmpq %rcx, %r14 - 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008723 jne LBB31_122 - 0x48, 0xf7, 0xd9, //0x00008729 negq %rcx - //0x0000872c LBB31_124 - 0x4d, 0x85, 0xdb, //0x0000872c testq %r11, %r11 - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x0000872f je LBB31_127 - 0x49, 0xf7, 0xdb, //0x00008735 negq %r11 - 0x4c, 0x89, 0xc2, //0x00008738 movq %r8, %rdx - 0x48, 0x29, 0xca, //0x0000873b subq %rcx, %rdx - 0x31, 0xc9, //0x0000873e xorl %ecx, %ecx - //0x00008740 .p2align 4, 0x90 - //0x00008740 LBB31_126 - 0x48, 0x8d, 0x34, 0x0a, //0x00008740 leaq (%rdx,%rcx), %rsi - 0x41, 0x0f, 0xb6, 0x1c, 0x34, //0x00008744 movzbl (%r12,%rsi), %ebx - 0x41, 0x88, 0x5c, 0x34, 0x01, //0x00008749 movb %bl, $1(%r12,%rsi) - 0x48, 0xff, 0xc9, //0x0000874e decq %rcx - 0x49, 0x39, 0xcb, //0x00008751 cmpq %rcx, %r11 - 0x0f, 0x85, 0xe6, 0xff, 0xff, 0xff, //0x00008754 jne LBB31_126 - //0x0000875a LBB31_127 - 0x49, 0x63, 0xca, //0x0000875a movslq %r10d, %rcx - 0x41, 0xc6, 0x04, 0x08, 0x2e, //0x0000875d movb $46, (%r8,%rcx) - 0x49, 0x01, 0xc0, //0x00008762 addq %rax, %r8 - 0xe9, 0xf6, 0x00, 0x00, 0x00, //0x00008765 jmp LBB31_137 - //0x0000876a LBB31_129 - 0x4c, 0x89, 0xe3, //0x0000876a movq %r12, %rbx - 0x48, 0x29, 0xc3, //0x0000876d subq %rax, %rbx - 0x31, 0xc0, //0x00008770 xorl %eax, %eax - 0x66, 0x0f, 0x6f, 0x05, 0x06, 0xf4, 0xff, 0xff, //0x00008772 movdqa $-3066(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - //0x0000877a LBB31_130 - 0x49, 0x8d, 0x0c, 0x00, //0x0000877a leaq (%r8,%rax), %rcx - 0xf3, 0x0f, 0x7f, 0x04, 0x0e, //0x0000877e movdqu %xmm0, (%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x10, //0x00008783 movdqu %xmm0, $16(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x20, //0x00008789 movdqu %xmm0, $32(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x30, //0x0000878f movdqu %xmm0, $48(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x40, //0x00008795 movdqu %xmm0, $64(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x50, //0x0000879b movdqu %xmm0, $80(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x60, //0x000087a1 movdqu %xmm0, $96(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x44, 0x0e, 0x70, //0x000087a7 movdqu %xmm0, $112(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x80, 0x00, 0x00, 0x00, //0x000087ad movdqu %xmm0, $128(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0x90, 0x00, 0x00, 0x00, //0x000087b6 movdqu %xmm0, $144(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xa0, 0x00, 0x00, 0x00, //0x000087bf movdqu %xmm0, $160(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xb0, 0x00, 0x00, 0x00, //0x000087c8 movdqu %xmm0, $176(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xc0, 0x00, 0x00, 0x00, //0x000087d1 movdqu %xmm0, $192(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xd0, 0x00, 0x00, 0x00, //0x000087da movdqu %xmm0, $208(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xe0, 0x00, 0x00, 0x00, //0x000087e3 movdqu %xmm0, $224(%rsi,%rcx) - 0xf3, 0x0f, 0x7f, 0x84, 0x0e, 0xf0, 0x00, 0x00, 0x00, //0x000087ec movdqu %xmm0, $240(%rsi,%rcx) - 0x48, 0x05, 0x00, 0x01, 0x00, 0x00, //0x000087f5 addq $256, %rax - 0x48, 0x83, 0xc3, 0x08, //0x000087fb addq $8, %rbx - 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x000087ff jne LBB31_130 - //0x00008805 LBB31_131 - 0x49, 0x01, 0xf3, //0x00008805 addq %rsi, %r11 - 0x4d, 0x85, 0xe4, //0x00008808 testq %r12, %r12 - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000880b je LBB31_134 - 0x49, 0x01, 0xc0, //0x00008811 addq %rax, %r8 - 0x49, 0x01, 0xd0, //0x00008814 addq %rdx, %r8 - 0x49, 0xf7, 0xdc, //0x00008817 negq %r12 - 0x66, 0x0f, 0x6f, 0x05, 0x5e, 0xf3, 0xff, 0xff, //0x0000881a movdqa $-3234(%rip), %xmm0 /* LCPI31_0+0(%rip) */ - //0x00008822 LBB31_133 - 0xf3, 0x41, 0x0f, 0x7f, 0x40, 0xf0, //0x00008822 movdqu %xmm0, $-16(%r8) - 0xf3, 0x41, 0x0f, 0x7f, 0x00, //0x00008828 movdqu %xmm0, (%r8) - 0x49, 0x83, 0xc0, 0x20, //0x0000882d addq $32, %r8 - 0x49, 0xff, 0xc4, //0x00008831 incq %r12 - 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00008834 jne LBB31_133 - //0x0000883a LBB31_134 - 0x4d, 0x89, 0xd8, //0x0000883a movq %r11, %r8 - 0x4d, 0x39, 0xf7, //0x0000883d cmpq %r14, %r15 - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00008840 je LBB31_137 - //0x00008846 LBB31_135 - 0x45, 0x29, 0xf2, //0x00008846 subl %r14d, %r10d - 0x45, 0x29, 0xca, //0x00008849 subl %r9d, %r10d - 0x4d, 0x89, 0xd8, //0x0000884c movq %r11, %r8 - 0x90, //0x0000884f .p2align 4, 0x90 - //0x00008850 LBB31_136 - 0x41, 0xc6, 0x00, 0x30, //0x00008850 movb $48, (%r8) - 0x49, 0xff, 0xc0, //0x00008854 incq %r8 - 0x41, 0xff, 0xca, //0x00008857 decl %r10d - 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000885a jne LBB31_136 - //0x00008860 LBB31_137 - 0x41, 0x29, 0xf8, //0x00008860 subl %edi, %r8d - //0x00008863 LBB31_138 - 0x44, 0x89, 0xc0, //0x00008863 movl %r8d, %eax - 0x5b, //0x00008866 popq %rbx - 0x41, 0x5c, //0x00008867 popq %r12 - 0x41, 0x5d, //0x00008869 popq %r13 - 0x41, 0x5e, //0x0000886b popq %r14 - 0x41, 0x5f, //0x0000886d popq %r15 - 0x5d, //0x0000886f popq %rbp - 0xc3, //0x00008870 retq - //0x00008871 LBB31_139 - 0x45, 0x31, 0xc0, //0x00008871 xorl %r8d, %r8d - 0xe9, 0xea, 0xff, 0xff, 0xff, //0x00008874 jmp LBB31_138 - //0x00008879 LBB31_140 - 0x41, 0xbf, 0x6b, 0xff, 0xff, 0xff, //0x00008879 movl $-149, %r15d - 0x89, 0xc6, //0x0000887f movl %eax, %esi - 0xe9, 0x89, 0xf3, 0xff, 0xff, //0x00008881 jmp LBB31_5 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008886 .p2align 4, 0x00 - //0x00008890 LCPI32_0 - 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008890 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' - //0x000088a0 LCPI32_1 - 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000088a0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' - //0x000088b0 LCPI32_2 - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000088b0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - //0x000088c0 LCPI32_3 - 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x000088c0 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' - //0x000088d0 LCPI32_4 - 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000088d0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' - //0x000088e0 LCPI32_5 - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000088e0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' - //0x000088f0 .p2align 4, 0x90 - //0x000088f0 _to_lower - 0x55, //0x000088f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000088f1 movq %rsp, %rbp - 0x48, 0x83, 0xfa, 0x10, //0x000088f4 cmpq $16, %rdx - 0x0f, 0x82, 0xef, 0x00, 0x00, 0x00, //0x000088f8 jb LBB32_8 - 0x48, 0x8d, 0x4a, 0xf0, //0x000088fe leaq $-16(%rdx), %rcx - 0xf6, 0xc1, 0x10, //0x00008902 testb $16, %cl - 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00008905 jne LBB32_2 - 0xf3, 0x0f, 0x6f, 0x06, //0x0000890b movdqu (%rsi), %xmm0 - 0x66, 0x0f, 0x6f, 0xc8, //0x0000890f movdqa %xmm0, %xmm1 - 0x66, 0x0f, 0x64, 0x0d, 0x75, 0xff, 0xff, 0xff, //0x00008913 pcmpgtb $-139(%rip), %xmm1 /* LCPI32_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x7d, 0xff, 0xff, 0xff, //0x0000891b movdqa $-131(%rip), %xmm2 /* LCPI32_1+0(%rip) */ - 0x66, 0x0f, 0x64, 0xd0, //0x00008923 pcmpgtb %xmm0, %xmm2 - 0x66, 0x0f, 0xdb, 0xd1, //0x00008927 pand %xmm1, %xmm2 - 0x66, 0x0f, 0xdb, 0x15, 0x7d, 0xff, 0xff, 0xff, //0x0000892b pand $-131(%rip), %xmm2 /* LCPI32_2+0(%rip) */ - 0x66, 0x0f, 0x71, 0xf2, 0x05, //0x00008933 psllw $5, %xmm2 - 0x66, 0x0f, 0xfc, 0xd0, //0x00008938 paddb %xmm0, %xmm2 - 0xf3, 0x0f, 0x7f, 0x17, //0x0000893c movdqu %xmm2, (%rdi) - 0x48, 0x83, 0xc6, 0x10, //0x00008940 addq $16, %rsi - 0x48, 0x83, 0xc7, 0x10, //0x00008944 addq $16, %rdi - 0x48, 0x89, 0xc8, //0x00008948 movq %rcx, %rax - 0x48, 0x83, 0xf9, 0x10, //0x0000894b cmpq $16, %rcx - 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x0000894f jae LBB32_5 - 0xe9, 0x90, 0x00, 0x00, 0x00, //0x00008955 jmp LBB32_7 - //0x0000895a LBB32_2 - 0x48, 0x89, 0xd0, //0x0000895a movq %rdx, %rax - 0x48, 0x83, 0xf9, 0x10, //0x0000895d cmpq $16, %rcx - 0x0f, 0x82, 0x83, 0x00, 0x00, 0x00, //0x00008961 jb LBB32_7 - //0x00008967 LBB32_5 - 0x66, 0x0f, 0x6f, 0x05, 0x21, 0xff, 0xff, 0xff, //0x00008967 movdqa $-223(%rip), %xmm0 /* LCPI32_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x29, 0xff, 0xff, 0xff, //0x0000896f movdqa $-215(%rip), %xmm1 /* LCPI32_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x31, 0xff, 0xff, 0xff, //0x00008977 movdqa $-207(%rip), %xmm2 /* LCPI32_2+0(%rip) */ - 0x90, //0x0000897f .p2align 4, 0x90 - //0x00008980 LBB32_6 - 0xf3, 0x0f, 0x6f, 0x1e, //0x00008980 movdqu (%rsi), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x00008984 movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x64, 0xe0, //0x00008988 pcmpgtb %xmm0, %xmm4 - 0x66, 0x0f, 0x6f, 0xe9, //0x0000898c movdqa %xmm1, %xmm5 - 0x66, 0x0f, 0x64, 0xeb, //0x00008990 pcmpgtb %xmm3, %xmm5 - 0x66, 0x0f, 0xdb, 0xec, //0x00008994 pand %xmm4, %xmm5 - 0x66, 0x0f, 0xdb, 0xea, //0x00008998 pand %xmm2, %xmm5 - 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x0000899c psllw $5, %xmm5 - 0x66, 0x0f, 0xfc, 0xeb, //0x000089a1 paddb %xmm3, %xmm5 - 0xf3, 0x0f, 0x7f, 0x2f, //0x000089a5 movdqu %xmm5, (%rdi) - 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x000089a9 movdqu $16(%rsi), %xmm3 - 0x66, 0x0f, 0x6f, 0xe3, //0x000089ae movdqa %xmm3, %xmm4 - 0x66, 0x0f, 0x64, 0xe0, //0x000089b2 pcmpgtb %xmm0, %xmm4 - 0x66, 0x0f, 0x6f, 0xe9, //0x000089b6 movdqa %xmm1, %xmm5 - 0x66, 0x0f, 0x64, 0xeb, //0x000089ba pcmpgtb %xmm3, %xmm5 - 0x66, 0x0f, 0xdb, 0xec, //0x000089be pand %xmm4, %xmm5 - 0x66, 0x0f, 0xdb, 0xea, //0x000089c2 pand %xmm2, %xmm5 - 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x000089c6 psllw $5, %xmm5 - 0x66, 0x0f, 0xfc, 0xeb, //0x000089cb paddb %xmm3, %xmm5 - 0xf3, 0x0f, 0x7f, 0x6f, 0x10, //0x000089cf movdqu %xmm5, $16(%rdi) - 0x48, 0x83, 0xc6, 0x20, //0x000089d4 addq $32, %rsi - 0x48, 0x83, 0xc7, 0x20, //0x000089d8 addq $32, %rdi - 0x48, 0x83, 0xc0, 0xe0, //0x000089dc addq $-32, %rax - 0x48, 0x83, 0xf8, 0x0f, //0x000089e0 cmpq $15, %rax - 0x0f, 0x87, 0x96, 0xff, 0xff, 0xff, //0x000089e4 ja LBB32_6 - //0x000089ea LBB32_7 - 0x83, 0xe2, 0x0f, //0x000089ea andl $15, %edx - //0x000089ed LBB32_8 - 0x48, 0x85, 0xd2, //0x000089ed testq %rdx, %rdx - 0x0f, 0x84, 0x69, 0x02, 0x00, 0x00, //0x000089f0 je LBB32_16 - 0x48, 0x83, 0xfa, 0x1f, //0x000089f6 cmpq $31, %rdx - 0x0f, 0x86, 0x1a, 0x00, 0x00, 0x00, //0x000089fa jbe LBB32_10 - 0x48, 0x8d, 0x04, 0x16, //0x00008a00 leaq (%rsi,%rdx), %rax - 0x48, 0x39, 0xc7, //0x00008a04 cmpq %rax, %rdi - 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00008a07 jae LBB32_19 - 0x48, 0x8d, 0x04, 0x17, //0x00008a0d leaq (%rdi,%rdx), %rax - 0x48, 0x39, 0xc6, //0x00008a11 cmpq %rax, %rsi - 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00008a14 jae LBB32_19 - //0x00008a1a LBB32_10 - 0xf6, 0xc2, 0x01, //0x00008a1a testb $1, %dl - 0x0f, 0x85, 0xcf, 0x01, 0x00, 0x00, //0x00008a1d jne LBB32_12 - //0x00008a23 LBB32_11 - 0x49, 0x89, 0xd0, //0x00008a23 movq %rdx, %r8 - 0x48, 0x83, 0xfa, 0x01, //0x00008a26 cmpq $1, %rdx - 0x0f, 0x85, 0xec, 0x01, 0x00, 0x00, //0x00008a2a jne LBB32_14 - 0xe9, 0x2a, 0x02, 0x00, 0x00, //0x00008a30 jmp LBB32_16 - //0x00008a35 LBB32_19 - 0x49, 0x89, 0xd0, //0x00008a35 movq %rdx, %r8 - 0x49, 0x83, 0xe0, 0xe0, //0x00008a38 andq $-32, %r8 - 0x49, 0x8d, 0x48, 0xe0, //0x00008a3c leaq $-32(%r8), %rcx - 0x48, 0x89, 0xc8, //0x00008a40 movq %rcx, %rax - 0x48, 0xc1, 0xe8, 0x05, //0x00008a43 shrq $5, %rax - 0x48, 0xff, 0xc0, //0x00008a47 incq %rax - 0x41, 0x89, 0xc1, //0x00008a4a movl %eax, %r9d - 0x41, 0x83, 0xe1, 0x01, //0x00008a4d andl $1, %r9d - 0x48, 0x85, 0xc9, //0x00008a51 testq %rcx, %rcx - 0x0f, 0x84, 0x07, 0x02, 0x00, 0x00, //0x00008a54 je LBB32_20 - 0x4c, 0x29, 0xc8, //0x00008a5a subq %r9, %rax - 0x31, 0xc9, //0x00008a5d xorl %ecx, %ecx - 0x66, 0x0f, 0x6f, 0x05, 0x59, 0xfe, 0xff, 0xff, //0x00008a5f movdqa $-423(%rip), %xmm0 /* LCPI32_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x61, 0xfe, 0xff, 0xff, //0x00008a67 movdqa $-415(%rip), %xmm1 /* LCPI32_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x15, 0x69, 0xfe, 0xff, 0xff, //0x00008a6f movdqa $-407(%rip), %xmm2 /* LCPI32_5+0(%rip) */ - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008a77 .p2align 4, 0x90 - //0x00008a80 LBB32_22 - 0xf3, 0x0f, 0x6f, 0x1c, 0x0e, //0x00008a80 movdqu (%rsi,%rcx), %xmm3 - 0xf3, 0x0f, 0x6f, 0x64, 0x0e, 0x10, //0x00008a85 movdqu $16(%rsi,%rcx), %xmm4 - 0x66, 0x0f, 0x6f, 0xeb, //0x00008a8b movdqa %xmm3, %xmm5 - 0x66, 0x0f, 0xfc, 0xe8, //0x00008a8f paddb %xmm0, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x00008a93 movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xf0, //0x00008a97 paddb %xmm0, %xmm6 - 0x66, 0x0f, 0x6f, 0xfd, //0x00008a9b movdqa %xmm5, %xmm7 - 0x66, 0x0f, 0xda, 0xf9, //0x00008a9f pminub %xmm1, %xmm7 - 0x66, 0x0f, 0x74, 0xfd, //0x00008aa3 pcmpeqb %xmm5, %xmm7 - 0x66, 0x0f, 0x6f, 0xee, //0x00008aa7 movdqa %xmm6, %xmm5 - 0x66, 0x0f, 0xda, 0xe9, //0x00008aab pminub %xmm1, %xmm5 - 0x66, 0x0f, 0x74, 0xee, //0x00008aaf pcmpeqb %xmm6, %xmm5 - 0x66, 0x0f, 0x6f, 0xf7, //0x00008ab3 movdqa %xmm7, %xmm6 - 0x66, 0x0f, 0xdf, 0xf3, //0x00008ab7 pandn %xmm3, %xmm6 - 0x66, 0x0f, 0xfc, 0xda, //0x00008abb paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xdb, 0xdf, //0x00008abf pand %xmm7, %xmm3 - 0x66, 0x0f, 0xeb, 0xde, //0x00008ac3 por %xmm6, %xmm3 - 0x66, 0x0f, 0x6f, 0xf5, //0x00008ac7 movdqa %xmm5, %xmm6 - 0x66, 0x0f, 0xdf, 0xf4, //0x00008acb pandn %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xe2, //0x00008acf paddb %xmm2, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x00008ad3 pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe6, //0x00008ad7 por %xmm6, %xmm4 - 0xf3, 0x0f, 0x7f, 0x1c, 0x0f, //0x00008adb movdqu %xmm3, (%rdi,%rcx) - 0xf3, 0x0f, 0x7f, 0x64, 0x0f, 0x10, //0x00008ae0 movdqu %xmm4, $16(%rdi,%rcx) - 0xf3, 0x0f, 0x6f, 0x5c, 0x0e, 0x20, //0x00008ae6 movdqu $32(%rsi,%rcx), %xmm3 - 0xf3, 0x0f, 0x6f, 0x64, 0x0e, 0x30, //0x00008aec movdqu $48(%rsi,%rcx), %xmm4 - 0x66, 0x0f, 0x6f, 0xeb, //0x00008af2 movdqa %xmm3, %xmm5 - 0x66, 0x0f, 0xfc, 0xe8, //0x00008af6 paddb %xmm0, %xmm5 - 0x66, 0x0f, 0x6f, 0xf4, //0x00008afa movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xf0, //0x00008afe paddb %xmm0, %xmm6 - 0x66, 0x0f, 0x6f, 0xfd, //0x00008b02 movdqa %xmm5, %xmm7 - 0x66, 0x0f, 0xda, 0xf9, //0x00008b06 pminub %xmm1, %xmm7 - 0x66, 0x0f, 0x74, 0xfd, //0x00008b0a pcmpeqb %xmm5, %xmm7 - 0x66, 0x0f, 0x6f, 0xee, //0x00008b0e movdqa %xmm6, %xmm5 - 0x66, 0x0f, 0xda, 0xe9, //0x00008b12 pminub %xmm1, %xmm5 - 0x66, 0x0f, 0x74, 0xee, //0x00008b16 pcmpeqb %xmm6, %xmm5 - 0x66, 0x0f, 0x6f, 0xf7, //0x00008b1a movdqa %xmm7, %xmm6 - 0x66, 0x0f, 0xdf, 0xf3, //0x00008b1e pandn %xmm3, %xmm6 - 0x66, 0x0f, 0xfc, 0xda, //0x00008b22 paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xdb, 0xdf, //0x00008b26 pand %xmm7, %xmm3 - 0x66, 0x0f, 0xeb, 0xde, //0x00008b2a por %xmm6, %xmm3 - 0x66, 0x0f, 0x6f, 0xf5, //0x00008b2e movdqa %xmm5, %xmm6 - 0x66, 0x0f, 0xdf, 0xf4, //0x00008b32 pandn %xmm4, %xmm6 - 0x66, 0x0f, 0xfc, 0xe2, //0x00008b36 paddb %xmm2, %xmm4 - 0x66, 0x0f, 0xdb, 0xe5, //0x00008b3a pand %xmm5, %xmm4 - 0x66, 0x0f, 0xeb, 0xe6, //0x00008b3e por %xmm6, %xmm4 - 0xf3, 0x0f, 0x7f, 0x5c, 0x0f, 0x20, //0x00008b42 movdqu %xmm3, $32(%rdi,%rcx) - 0xf3, 0x0f, 0x7f, 0x64, 0x0f, 0x30, //0x00008b48 movdqu %xmm4, $48(%rdi,%rcx) - 0x48, 0x83, 0xc1, 0x40, //0x00008b4e addq $64, %rcx - 0x48, 0x83, 0xc0, 0xfe, //0x00008b52 addq $-2, %rax - 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x00008b56 jne LBB32_22 - 0x4d, 0x85, 0xc9, //0x00008b5c testq %r9, %r9 - 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00008b5f je LBB32_25 - //0x00008b65 LBB32_24 - 0xf3, 0x0f, 0x6f, 0x04, 0x0e, //0x00008b65 movdqu (%rsi,%rcx), %xmm0 - 0xf3, 0x0f, 0x6f, 0x4c, 0x0e, 0x10, //0x00008b6a movdqu $16(%rsi,%rcx), %xmm1 - 0x66, 0x0f, 0x6f, 0x15, 0x48, 0xfd, 0xff, 0xff, //0x00008b70 movdqa $-696(%rip), %xmm2 /* LCPI32_3+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xd8, //0x00008b78 movdqa %xmm0, %xmm3 - 0x66, 0x0f, 0xfc, 0xda, //0x00008b7c paddb %xmm2, %xmm3 - 0x66, 0x0f, 0xfc, 0xd1, //0x00008b80 paddb %xmm1, %xmm2 - 0x66, 0x0f, 0x6f, 0x25, 0x44, 0xfd, 0xff, 0xff, //0x00008b84 movdqa $-700(%rip), %xmm4 /* LCPI32_4+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xeb, //0x00008b8c movdqa %xmm3, %xmm5 - 0x66, 0x0f, 0xda, 0xec, //0x00008b90 pminub %xmm4, %xmm5 - 0x66, 0x0f, 0x74, 0xeb, //0x00008b94 pcmpeqb %xmm3, %xmm5 - 0x66, 0x0f, 0xda, 0xe2, //0x00008b98 pminub %xmm2, %xmm4 - 0x66, 0x0f, 0x74, 0xe2, //0x00008b9c pcmpeqb %xmm2, %xmm4 - 0x66, 0x0f, 0x6f, 0x15, 0x38, 0xfd, 0xff, 0xff, //0x00008ba0 movdqa $-712(%rip), %xmm2 /* LCPI32_5+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xdd, //0x00008ba8 movdqa %xmm5, %xmm3 - 0x66, 0x0f, 0xdf, 0xd8, //0x00008bac pandn %xmm0, %xmm3 - 0x66, 0x0f, 0xfc, 0xc2, //0x00008bb0 paddb %xmm2, %xmm0 - 0x66, 0x0f, 0xfc, 0xd1, //0x00008bb4 paddb %xmm1, %xmm2 - 0x66, 0x0f, 0xdb, 0xc5, //0x00008bb8 pand %xmm5, %xmm0 - 0x66, 0x0f, 0xeb, 0xc3, //0x00008bbc por %xmm3, %xmm0 - 0x66, 0x0f, 0xdb, 0xd4, //0x00008bc0 pand %xmm4, %xmm2 - 0x66, 0x0f, 0xdf, 0xe1, //0x00008bc4 pandn %xmm1, %xmm4 - 0x66, 0x0f, 0xeb, 0xe2, //0x00008bc8 por %xmm2, %xmm4 - 0xf3, 0x0f, 0x7f, 0x04, 0x0f, //0x00008bcc movdqu %xmm0, (%rdi,%rcx) - 0xf3, 0x0f, 0x7f, 0x64, 0x0f, 0x10, //0x00008bd1 movdqu %xmm4, $16(%rdi,%rcx) - //0x00008bd7 LBB32_25 - 0x4c, 0x39, 0xc2, //0x00008bd7 cmpq %r8, %rdx - 0x0f, 0x84, 0x7f, 0x00, 0x00, 0x00, //0x00008bda je LBB32_16 - 0x83, 0xe2, 0x1f, //0x00008be0 andl $31, %edx - 0x4c, 0x01, 0xc6, //0x00008be3 addq %r8, %rsi - 0x4c, 0x01, 0xc7, //0x00008be6 addq %r8, %rdi - 0xf6, 0xc2, 0x01, //0x00008be9 testb $1, %dl - 0x0f, 0x84, 0x31, 0xfe, 0xff, 0xff, //0x00008bec je LBB32_11 - //0x00008bf2 LBB32_12 - 0x0f, 0xb6, 0x06, //0x00008bf2 movzbl (%rsi), %eax - 0x44, 0x8d, 0x40, 0xbf, //0x00008bf5 leal $-65(%rax), %r8d - 0x8d, 0x48, 0x20, //0x00008bf9 leal $32(%rax), %ecx - 0x41, 0x80, 0xf8, 0x1a, //0x00008bfc cmpb $26, %r8b - 0x0f, 0xb6, 0xc9, //0x00008c00 movzbl %cl, %ecx - 0x0f, 0x43, 0xc8, //0x00008c03 cmovael %eax, %ecx - 0x4c, 0x8d, 0x42, 0xff, //0x00008c06 leaq $-1(%rdx), %r8 - 0x88, 0x0f, //0x00008c0a movb %cl, (%rdi) - 0x48, 0xff, 0xc6, //0x00008c0c incq %rsi - 0x48, 0xff, 0xc7, //0x00008c0f incq %rdi - 0x48, 0x83, 0xfa, 0x01, //0x00008c12 cmpq $1, %rdx - 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00008c16 je LBB32_16 - //0x00008c1c LBB32_14 - 0x31, 0xc9, //0x00008c1c xorl %ecx, %ecx - 0x90, 0x90, //0x00008c1e .p2align 4, 0x90 - //0x00008c20 LBB32_15 - 0x0f, 0xb6, 0x14, 0x0e, //0x00008c20 movzbl (%rsi,%rcx), %edx - 0x44, 0x8d, 0x4a, 0xbf, //0x00008c24 leal $-65(%rdx), %r9d - 0x8d, 0x42, 0x20, //0x00008c28 leal $32(%rdx), %eax - 0x41, 0x80, 0xf9, 0x1a, //0x00008c2b cmpb $26, %r9b - 0x0f, 0xb6, 0xc0, //0x00008c2f movzbl %al, %eax - 0x0f, 0x43, 0xc2, //0x00008c32 cmovael %edx, %eax - 0x88, 0x04, 0x0f, //0x00008c35 movb %al, (%rdi,%rcx) - 0x0f, 0xb6, 0x44, 0x0e, 0x01, //0x00008c38 movzbl $1(%rsi,%rcx), %eax - 0x44, 0x8d, 0x48, 0xbf, //0x00008c3d leal $-65(%rax), %r9d - 0x8d, 0x50, 0x20, //0x00008c41 leal $32(%rax), %edx - 0x41, 0x80, 0xf9, 0x1a, //0x00008c44 cmpb $26, %r9b - 0x0f, 0xb6, 0xd2, //0x00008c48 movzbl %dl, %edx - 0x0f, 0x43, 0xd0, //0x00008c4b cmovael %eax, %edx - 0x88, 0x54, 0x0f, 0x01, //0x00008c4e movb %dl, $1(%rdi,%rcx) - 0x48, 0x83, 0xc1, 0x02, //0x00008c52 addq $2, %rcx - 0x49, 0x39, 0xc8, //0x00008c56 cmpq %rcx, %r8 - 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x00008c59 jne LBB32_15 - //0x00008c5f LBB32_16 - 0x5d, //0x00008c5f popq %rbp - 0xc3, //0x00008c60 retq - //0x00008c61 LBB32_20 - 0x31, 0xc9, //0x00008c61 xorl %ecx, %ecx - 0x4d, 0x85, 0xc9, //0x00008c63 testq %r9, %r9 - 0x0f, 0x85, 0xf9, 0xfe, 0xff, 0xff, //0x00008c66 jne LBB32_24 - 0xe9, 0x66, 0xff, 0xff, 0xff, //0x00008c6c jmp LBB32_25 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c71 .p2align 4, 0x90 - //0x00008c80 _format_significand - 0x55, //0x00008c80 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008c81 movq %rsp, %rbp - 0x41, 0x56, //0x00008c84 pushq %r14 - 0x53, //0x00008c86 pushq %rbx - 0x4c, 0x63, 0xc2, //0x00008c87 movslq %edx, %r8 - 0x49, 0x01, 0xf0, //0x00008c8a addq %rsi, %r8 - 0x48, 0x89, 0xf8, //0x00008c8d movq %rdi, %rax - 0x48, 0xc1, 0xe8, 0x20, //0x00008c90 shrq $32, %rax - 0x0f, 0x84, 0xb6, 0x00, 0x00, 0x00, //0x00008c94 je LBB33_1 - 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008c9a movabsq $-6067343680855748867, %rcx - 0x48, 0x89, 0xf8, //0x00008ca4 movq %rdi, %rax - 0x48, 0xf7, 0xe1, //0x00008ca7 mulq %rcx - 0x48, 0xc1, 0xea, 0x1a, //0x00008caa shrq $26, %rdx - 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008cae imull $-100000000, %edx, %ecx - 0x01, 0xf9, //0x00008cb4 addl %edi, %ecx - 0x0f, 0x84, 0xb0, 0x00, 0x00, 0x00, //0x00008cb6 je LBB33_3 - 0x89, 0xc8, //0x00008cbc movl %ecx, %eax - 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008cbe movl $3518437209, %r9d - 0x49, 0x0f, 0xaf, 0xc1, //0x00008cc4 imulq %r9, %rax - 0x48, 0xc1, 0xe8, 0x2d, //0x00008cc8 shrq $45, %rax - 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008ccc imull $10000, %eax, %edi - 0x29, 0xf9, //0x00008cd2 subl %edi, %ecx - 0x48, 0x89, 0xc7, //0x00008cd4 movq %rax, %rdi - 0x49, 0x0f, 0xaf, 0xf9, //0x00008cd7 imulq %r9, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008cdb shrq $45, %rdi - 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008cdf imull $10000, %edi, %edi - 0x29, 0xf8, //0x00008ce5 subl %edi, %eax - 0x0f, 0xb7, 0xf9, //0x00008ce7 movzwl %cx, %edi - 0xc1, 0xef, 0x02, //0x00008cea shrl $2, %edi - 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008ced imull $5243, %edi, %r9d - 0x41, 0xc1, 0xe9, 0x11, //0x00008cf4 shrl $17, %r9d - 0x41, 0x6b, 0xf9, 0x64, //0x00008cf8 imull $100, %r9d, %edi - 0x29, 0xf9, //0x00008cfc subl %edi, %ecx - 0x44, 0x0f, 0xb7, 0xd1, //0x00008cfe movzwl %cx, %r10d - 0x0f, 0xb7, 0xf8, //0x00008d02 movzwl %ax, %edi - 0xc1, 0xef, 0x02, //0x00008d05 shrl $2, %edi - 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008d08 imull $5243, %edi, %edi - 0xc1, 0xef, 0x11, //0x00008d0e shrl $17, %edi - 0x6b, 0xcf, 0x64, //0x00008d11 imull $100, %edi, %ecx - 0x29, 0xc8, //0x00008d14 subl %ecx, %eax - 0x44, 0x0f, 0xb7, 0xd8, //0x00008d16 movzwl %ax, %r11d - 0x48, 0x8d, 0x0d, 0x4f, 0x34, 0x00, 0x00, //0x00008d1a leaq $13391(%rip), %rcx /* _Digits+0(%rip) */ - 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008d21 movzwl (%rcx,%r10,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008d26 movw %ax, $-2(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008d2b movzwl (%rcx,%r9,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008d30 movw %ax, $-4(%r8) - 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008d35 movzwl (%rcx,%r11,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008d3a movw %ax, $-6(%r8) - 0x0f, 0xb7, 0x04, 0x79, //0x00008d3f movzwl (%rcx,%rdi,2), %eax - 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008d43 movw %ax, $-8(%r8) - 0x45, 0x31, 0xc9, //0x00008d48 xorl %r9d, %r9d - 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00008d4b jmp LBB33_5 - //0x00008d50 LBB33_1 - 0x45, 0x31, 0xc9, //0x00008d50 xorl %r9d, %r9d - 0x4d, 0x89, 0xc6, //0x00008d53 movq %r8, %r14 - 0x48, 0x89, 0xfa, //0x00008d56 movq %rdi, %rdx - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008d59 cmpl $10000, %edx - 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00008d5f jae LBB33_8 - //0x00008d65 LBB33_7 - 0x89, 0xd7, //0x00008d65 movl %edx, %edi - 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x00008d67 jmp LBB33_10 - //0x00008d6c LBB33_3 - 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008d6c movl $8, %r9d - //0x00008d72 LBB33_5 - 0x4d, 0x8d, 0x70, 0xf8, //0x00008d72 leaq $-8(%r8), %r14 - 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008d76 cmpl $10000, %edx - 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00008d7c jb LBB33_7 - //0x00008d82 LBB33_8 - 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008d82 movl $3518437209, %r10d - 0x4c, 0x8d, 0x1d, 0xe1, 0x33, 0x00, 0x00, //0x00008d88 leaq $13281(%rip), %r11 /* _Digits+0(%rip) */ - 0x90, //0x00008d8f .p2align 4, 0x90 - //0x00008d90 LBB33_9 - 0x89, 0xd7, //0x00008d90 movl %edx, %edi - 0x49, 0x0f, 0xaf, 0xfa, //0x00008d92 imulq %r10, %rdi - 0x48, 0xc1, 0xef, 0x2d, //0x00008d96 shrq $45, %rdi - 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008d9a imull $-10000, %edi, %eax - 0x01, 0xd0, //0x00008da0 addl %edx, %eax - 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008da2 imulq $1374389535, %rax, %rbx - 0x48, 0xc1, 0xeb, 0x25, //0x00008da9 shrq $37, %rbx - 0x6b, 0xcb, 0x64, //0x00008dad imull $100, %ebx, %ecx - 0x29, 0xc8, //0x00008db0 subl %ecx, %eax - 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008db2 movzwl (%r11,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008db7 movw %ax, $-2(%r14) - 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008dbc movzwl (%r11,%rbx,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008dc1 movw %ax, $-4(%r14) - 0x49, 0x83, 0xc6, 0xfc, //0x00008dc6 addq $-4, %r14 - 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008dca cmpl $99999999, %edx - 0x89, 0xfa, //0x00008dd0 movl %edi, %edx - 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008dd2 ja LBB33_9 - //0x00008dd8 LBB33_10 - 0x83, 0xff, 0x64, //0x00008dd8 cmpl $100, %edi - 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008ddb jae LBB33_11 - 0x83, 0xff, 0x0a, //0x00008de1 cmpl $10, %edi - 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008de4 jb LBB33_14 - //0x00008dea LBB33_13 - 0x89, 0xf8, //0x00008dea movl %edi, %eax - 0x48, 0x8d, 0x0d, 0x7d, 0x33, 0x00, 0x00, //0x00008dec leaq $13181(%rip), %rcx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x04, 0x41, //0x00008df3 movzwl (%rcx,%rax,2), %eax - 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008df7 movw %ax, $-2(%r14) - 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008dfc jmp LBB33_15 - //0x00008e01 LBB33_11 - 0x0f, 0xb7, 0xc7, //0x00008e01 movzwl %di, %eax - 0xc1, 0xe8, 0x02, //0x00008e04 shrl $2, %eax - 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008e07 imull $5243, %eax, %eax - 0xc1, 0xe8, 0x11, //0x00008e0d shrl $17, %eax - 0x6b, 0xc8, 0x64, //0x00008e10 imull $100, %eax, %ecx - 0x29, 0xcf, //0x00008e13 subl %ecx, %edi - 0x0f, 0xb7, 0xcf, //0x00008e15 movzwl %di, %ecx - 0x48, 0x8d, 0x15, 0x51, 0x33, 0x00, 0x00, //0x00008e18 leaq $13137(%rip), %rdx /* _Digits+0(%rip) */ - 0x0f, 0xb7, 0x0c, 0x4a, //0x00008e1f movzwl (%rdx,%rcx,2), %ecx - 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008e23 movw %cx, $-2(%r14) - 0x49, 0x83, 0xc6, 0xfe, //0x00008e28 addq $-2, %r14 - 0x89, 0xc7, //0x00008e2c movl %eax, %edi - 0x83, 0xff, 0x0a, //0x00008e2e cmpl $10, %edi - 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008e31 jae LBB33_13 - //0x00008e37 LBB33_14 - 0x40, 0x80, 0xc7, 0x30, //0x00008e37 addb $48, %dil - 0x40, 0x88, 0x3e, //0x00008e3b movb %dil, (%rsi) - //0x00008e3e LBB33_15 - 0x4d, 0x29, 0xc8, //0x00008e3e subq %r9, %r8 - 0x4c, 0x89, 0xc0, //0x00008e41 movq %r8, %rax - 0x5b, //0x00008e44 popq %rbx - 0x41, 0x5e, //0x00008e45 popq %r14 - 0x5d, //0x00008e47 popq %rbp - 0xc3, //0x00008e48 retq - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e49 .p2align 4, 0x90 - //0x00008e50 _left_shift - 0x55, //0x00008e50 pushq %rbp - 0x48, 0x89, 0xe5, //0x00008e51 movq %rsp, %rbp - 0x41, 0x56, //0x00008e54 pushq %r14 - 0x53, //0x00008e56 pushq %rbx - 0x89, 0xf1, //0x00008e57 movl %esi, %ecx - 0x48, 0x6b, 0xd1, 0x68, //0x00008e59 imulq $104, %rcx, %rdx - 0x48, 0x8d, 0x35, 0xfc, 0x8c, 0x00, 0x00, //0x00008e5d leaq $36092(%rip), %rsi /* _LSHIFT_TAB+0(%rip) */ - 0x44, 0x8b, 0x04, 0x32, //0x00008e64 movl (%rdx,%rsi), %r8d - 0x4c, 0x8b, 0x17, //0x00008e68 movq (%rdi), %r10 - 0x4c, 0x63, 0x4f, 0x10, //0x00008e6b movslq $16(%rdi), %r9 - 0x8a, 0x44, 0x32, 0x04, //0x00008e6f movb $4(%rdx,%rsi), %al - 0x4d, 0x85, 0xc9, //0x00008e73 testq %r9, %r9 - 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00008e76 je LBB34_6 - 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00008e7c leaq $5(%rdx,%rsi), %rdx - 0x31, 0xf6, //0x00008e81 xorl %esi, %esi - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e83 .p2align 4, 0x90 - //0x00008e90 LBB34_3 - 0x84, 0xc0, //0x00008e90 testb %al, %al - 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00008e92 je LBB34_8 - 0x41, 0x38, 0x04, 0x32, //0x00008e98 cmpb %al, (%r10,%rsi) - 0x0f, 0x85, 0x89, 0x01, 0x00, 0x00, //0x00008e9c jne LBB34_5 - 0x0f, 0xb6, 0x04, 0x32, //0x00008ea2 movzbl (%rdx,%rsi), %eax - 0x48, 0xff, 0xc6, //0x00008ea6 incq %rsi - 0x49, 0x39, 0xf1, //0x00008ea9 cmpq %rsi, %r9 - 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00008eac jne LBB34_3 - //0x00008eb2 LBB34_6 - 0x84, 0xc0, //0x00008eb2 testb %al, %al - 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00008eb4 je LBB34_8 - //0x00008eba LBB34_7 - 0x41, 0xff, 0xc8, //0x00008eba decl %r8d - //0x00008ebd LBB34_8 - 0x45, 0x85, 0xc9, //0x00008ebd testl %r9d, %r9d - 0x0f, 0x8e, 0x8c, 0x00, 0x00, 0x00, //0x00008ec0 jle LBB34_23 - 0x43, 0x8d, 0x04, 0x08, //0x00008ec6 leal (%r8,%r9), %eax - 0x4c, 0x63, 0xf0, //0x00008eca movslq %eax, %r14 - 0x49, 0xff, 0xce, //0x00008ecd decq %r14 - 0x31, 0xd2, //0x00008ed0 xorl %edx, %edx - 0x49, 0xbb, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008ed2 movabsq $-3689348814741910323, %r11 - 0x90, 0x90, 0x90, 0x90, //0x00008edc .p2align 4, 0x90 - //0x00008ee0 LBB34_10 - 0x4b, 0x0f, 0xbe, 0x74, 0x0a, 0xff, //0x00008ee0 movsbq $-1(%r10,%r9), %rsi - 0x48, 0x83, 0xc6, 0xd0, //0x00008ee6 addq $-48, %rsi - 0x48, 0xd3, 0xe6, //0x00008eea shlq %cl, %rsi - 0x48, 0x01, 0xd6, //0x00008eed addq %rdx, %rsi - 0x48, 0x89, 0xf0, //0x00008ef0 movq %rsi, %rax - 0x49, 0xf7, 0xe3, //0x00008ef3 mulq %r11 - 0x48, 0xc1, 0xea, 0x03, //0x00008ef6 shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00008efa leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00008efe leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xf0, //0x00008f02 movq %rsi, %rax - 0x48, 0x29, 0xd8, //0x00008f05 subq %rbx, %rax - 0x4c, 0x39, 0x77, 0x08, //0x00008f08 cmpq %r14, $8(%rdi) - 0x0f, 0x86, 0x0e, 0x00, 0x00, 0x00, //0x00008f0c jbe LBB34_16 - 0x04, 0x30, //0x00008f12 addb $48, %al - 0x43, 0x88, 0x04, 0x32, //0x00008f14 movb %al, (%r10,%r14) - 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00008f18 jmp LBB34_18 - 0x90, 0x90, 0x90, //0x00008f1d .p2align 4, 0x90 - //0x00008f20 LBB34_16 - 0x48, 0x85, 0xc0, //0x00008f20 testq %rax, %rax - 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008f23 je LBB34_18 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008f29 movl $1, $28(%rdi) - //0x00008f30 LBB34_18 - 0x49, 0x83, 0xf9, 0x02, //0x00008f30 cmpq $2, %r9 - 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00008f34 jl LBB34_12 - 0x49, 0xff, 0xc9, //0x00008f3a decq %r9 - 0x4c, 0x8b, 0x17, //0x00008f3d movq (%rdi), %r10 - 0x49, 0xff, 0xce, //0x00008f40 decq %r14 - 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00008f43 jmp LBB34_10 - //0x00008f48 LBB34_12 - 0x48, 0x83, 0xfe, 0x0a, //0x00008f48 cmpq $10, %rsi - 0x0f, 0x83, 0x6e, 0x00, 0x00, 0x00, //0x00008f4c jae LBB34_13 - //0x00008f52 LBB34_23 - 0x48, 0x63, 0x4f, 0x10, //0x00008f52 movslq $16(%rdi), %rcx - 0x49, 0x63, 0xc0, //0x00008f56 movslq %r8d, %rax - 0x48, 0x01, 0xc8, //0x00008f59 addq %rcx, %rax - 0x89, 0x47, 0x10, //0x00008f5c movl %eax, $16(%rdi) - 0x48, 0x8b, 0x4f, 0x08, //0x00008f5f movq $8(%rdi), %rcx - 0x48, 0x39, 0xc1, //0x00008f63 cmpq %rax, %rcx - 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008f66 ja LBB34_25 - 0x89, 0x4f, 0x10, //0x00008f6c movl %ecx, $16(%rdi) - 0x89, 0xc8, //0x00008f6f movl %ecx, %eax - //0x00008f71 LBB34_25 - 0x44, 0x01, 0x47, 0x14, //0x00008f71 addl %r8d, $20(%rdi) - 0x85, 0xc0, //0x00008f75 testl %eax, %eax - 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00008f77 jle LBB34_29 - 0x48, 0x8b, 0x0f, //0x00008f7d movq (%rdi), %rcx - 0x89, 0xc0, //0x00008f80 movl %eax, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f82 .p2align 4, 0x90 - //0x00008f90 LBB34_27 - 0x80, 0x7c, 0x01, 0xff, 0x30, //0x00008f90 cmpb $48, $-1(%rcx,%rax) - 0x0f, 0x85, 0x20, 0x00, 0x00, 0x00, //0x00008f95 jne LBB34_31 - 0x89, 0xc2, //0x00008f9b movl %eax, %edx - 0x48, 0xff, 0xc8, //0x00008f9d decq %rax - 0xff, 0xca, //0x00008fa0 decl %edx - 0x89, 0x57, 0x10, //0x00008fa2 movl %edx, $16(%rdi) - 0x48, 0x8d, 0x50, 0x01, //0x00008fa5 leaq $1(%rax), %rdx - 0x48, 0x83, 0xfa, 0x01, //0x00008fa9 cmpq $1, %rdx - 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00008fad jg LBB34_27 - //0x00008fb3 LBB34_29 - 0x85, 0xc0, //0x00008fb3 testl %eax, %eax - 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00008fb5 je LBB34_30 - //0x00008fbb LBB34_31 - 0x5b, //0x00008fbb popq %rbx - 0x41, 0x5e, //0x00008fbc popq %r14 - 0x5d, //0x00008fbe popq %rbp - 0xc3, //0x00008fbf retq - //0x00008fc0 LBB34_13 - 0x49, 0x63, 0xf6, //0x00008fc0 movslq %r14d, %rsi - 0x48, 0xff, 0xce, //0x00008fc3 decq %rsi - 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00008fc6 jmp LBB34_14 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fcb .p2align 4, 0x90 - //0x00008fd0 LBB34_15 - 0x04, 0x30, //0x00008fd0 addb $48, %al - 0x48, 0x8b, 0x1f, //0x00008fd2 movq (%rdi), %rbx - 0x88, 0x04, 0x33, //0x00008fd5 movb %al, (%rbx,%rsi) - //0x00008fd8 LBB34_22 - 0x48, 0xff, 0xce, //0x00008fd8 decq %rsi - 0x48, 0x83, 0xf9, 0x09, //0x00008fdb cmpq $9, %rcx - 0x0f, 0x86, 0x6d, 0xff, 0xff, 0xff, //0x00008fdf jbe LBB34_23 - //0x00008fe5 LBB34_14 - 0x48, 0x89, 0xd1, //0x00008fe5 movq %rdx, %rcx - 0x48, 0x89, 0xd0, //0x00008fe8 movq %rdx, %rax - 0x49, 0xf7, 0xe3, //0x00008feb mulq %r11 - 0x48, 0xc1, 0xea, 0x03, //0x00008fee shrq $3, %rdx - 0x48, 0x8d, 0x04, 0x12, //0x00008ff2 leaq (%rdx,%rdx), %rax - 0x48, 0x8d, 0x1c, 0x80, //0x00008ff6 leaq (%rax,%rax,4), %rbx - 0x48, 0x89, 0xc8, //0x00008ffa movq %rcx, %rax - 0x48, 0x29, 0xd8, //0x00008ffd subq %rbx, %rax - 0x48, 0x39, 0x77, 0x08, //0x00009000 cmpq %rsi, $8(%rdi) - 0x0f, 0x87, 0xc6, 0xff, 0xff, 0xff, //0x00009004 ja LBB34_15 - 0x48, 0x85, 0xc0, //0x0000900a testq %rax, %rax - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000900d je LBB34_22 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009013 movl $1, $28(%rdi) - 0xe9, 0xb9, 0xff, 0xff, 0xff, //0x0000901a jmp LBB34_22 - //0x0000901f LBB34_30 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x0000901f movl $0, $20(%rdi) - 0x5b, //0x00009026 popq %rbx - 0x41, 0x5e, //0x00009027 popq %r14 - 0x5d, //0x00009029 popq %rbp - 0xc3, //0x0000902a retq - //0x0000902b LBB34_5 - 0x0f, 0x8c, 0x89, 0xfe, 0xff, 0xff, //0x0000902b jl LBB34_7 - 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x00009031 jmp LBB34_8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009036 .p2align 4, 0x90 - //0x00009040 _right_shift - 0x55, //0x00009040 pushq %rbp - 0x48, 0x89, 0xe5, //0x00009041 movq %rsp, %rbp - 0x89, 0xf1, //0x00009044 movl %esi, %ecx - 0x4c, 0x63, 0x4f, 0x10, //0x00009046 movslq $16(%rdi), %r9 - 0x31, 0xf6, //0x0000904a xorl %esi, %esi - 0x31, 0xc0, //0x0000904c xorl %eax, %eax - 0x90, 0x90, //0x0000904e .p2align 4, 0x90 - //0x00009050 LBB35_1 - 0x4c, 0x39, 0xce, //0x00009050 cmpq %r9, %rsi - 0x0f, 0x8d, 0x27, 0x01, 0x00, 0x00, //0x00009053 jge LBB35_2 - 0x48, 0x8d, 0x04, 0x80, //0x00009059 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x17, //0x0000905d movq (%rdi), %rdx - 0x48, 0x0f, 0xbe, 0x14, 0x32, //0x00009060 movsbq (%rdx,%rsi), %rdx - 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x00009065 leaq $-48(%rdx,%rax,2), %rax - 0x48, 0xff, 0xc6, //0x0000906a incq %rsi - 0x48, 0x89, 0xc2, //0x0000906d movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009070 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009073 testq %rdx, %rdx - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00009076 je LBB35_1 - //0x0000907c LBB35_6 - 0x8b, 0x57, 0x14, //0x0000907c movl $20(%rdi), %edx - 0x29, 0xf2, //0x0000907f subl %esi, %edx - 0xff, 0xc2, //0x00009081 incl %edx - 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009083 movq $-1, %r8 - 0x49, 0xd3, 0xe0, //0x0000908a shlq %cl, %r8 - 0x89, 0x57, 0x14, //0x0000908d movl %edx, $20(%rdi) - 0x49, 0xf7, 0xd0, //0x00009090 notq %r8 - 0x45, 0x31, 0xd2, //0x00009093 xorl %r10d, %r10d - 0x44, 0x39, 0xce, //0x00009096 cmpl %r9d, %esi - 0x0f, 0x8d, 0x69, 0x00, 0x00, 0x00, //0x00009099 jge LBB35_9 - 0x4c, 0x63, 0xce, //0x0000909f movslq %esi, %r9 - 0x48, 0x8b, 0x37, //0x000090a2 movq (%rdi), %rsi - 0x45, 0x31, 0xd2, //0x000090a5 xorl %r10d, %r10d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000090a8 .p2align 4, 0x90 - //0x000090b0 LBB35_8 - 0x48, 0x89, 0xc2, //0x000090b0 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x000090b3 shrq %cl, %rdx - 0x4c, 0x21, 0xc0, //0x000090b6 andq %r8, %rax - 0x80, 0xc2, 0x30, //0x000090b9 addb $48, %dl - 0x42, 0x88, 0x14, 0x16, //0x000090bc movb %dl, (%rsi,%r10) - 0x48, 0x8d, 0x04, 0x80, //0x000090c0 leaq (%rax,%rax,4), %rax - 0x48, 0x8b, 0x37, //0x000090c4 movq (%rdi), %rsi - 0x4a, 0x8d, 0x14, 0x0e, //0x000090c7 leaq (%rsi,%r9), %rdx - 0x49, 0x0f, 0xbe, 0x14, 0x12, //0x000090cb movsbq (%r10,%rdx), %rdx - 0x48, 0x8d, 0x44, 0x42, 0xd0, //0x000090d0 leaq $-48(%rdx,%rax,2), %rax - 0x4c, 0x63, 0x5f, 0x10, //0x000090d5 movslq $16(%rdi), %r11 - 0x4b, 0x8d, 0x54, 0x11, 0x01, //0x000090d9 leaq $1(%r9,%r10), %rdx - 0x49, 0xff, 0xc2, //0x000090de incq %r10 - 0x4c, 0x39, 0xda, //0x000090e1 cmpq %r11, %rdx - 0x0f, 0x8c, 0xc6, 0xff, 0xff, 0xff, //0x000090e4 jl LBB35_8 - 0xe9, 0x19, 0x00, 0x00, 0x00, //0x000090ea jmp LBB35_9 - 0x90, //0x000090ef .p2align 4, 0x90 - //0x000090f0 LBB35_11 - 0x40, 0x80, 0xc6, 0x30, //0x000090f0 addb $48, %sil - 0x48, 0x8b, 0x17, //0x000090f4 movq (%rdi), %rdx - 0x42, 0x88, 0x34, 0x0a, //0x000090f7 movb %sil, (%rdx,%r9) - 0x41, 0xff, 0xc1, //0x000090fb incl %r9d - 0x45, 0x89, 0xca, //0x000090fe movl %r9d, %r10d - //0x00009101 LBB35_14 - 0x48, 0x01, 0xc0, //0x00009101 addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x00009104 leaq (%rax,%rax,4), %rax - //0x00009108 LBB35_9 - 0x48, 0x85, 0xc0, //0x00009108 testq %rax, %rax - 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x0000910b je LBB35_15 - 0x48, 0x89, 0xc6, //0x00009111 movq %rax, %rsi - 0x48, 0xd3, 0xee, //0x00009114 shrq %cl, %rsi - 0x4c, 0x21, 0xc0, //0x00009117 andq %r8, %rax - 0x4d, 0x63, 0xca, //0x0000911a movslq %r10d, %r9 - 0x4c, 0x39, 0x4f, 0x08, //0x0000911d cmpq %r9, $8(%rdi) - 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009121 ja LBB35_11 - 0x48, 0x85, 0xf6, //0x00009127 testq %rsi, %rsi - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x0000912a je LBB35_14 - 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009130 movl $1, $28(%rdi) - 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009137 jmp LBB35_14 - //0x0000913c LBB35_15 - 0x44, 0x89, 0x57, 0x10, //0x0000913c movl %r10d, $16(%rdi) - 0x45, 0x85, 0xd2, //0x00009140 testl %r10d, %r10d - 0x0f, 0x8e, 0x2c, 0x00, 0x00, 0x00, //0x00009143 jle LBB35_19 - 0x48, 0x8b, 0x07, //0x00009149 movq (%rdi), %rax - 0x45, 0x89, 0xd2, //0x0000914c movl %r10d, %r10d - 0x90, //0x0000914f .p2align 4, 0x90 - //0x00009150 LBB35_17 - 0x42, 0x80, 0x7c, 0x10, 0xff, 0x30, //0x00009150 cmpb $48, $-1(%rax,%r10) - 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00009156 jne LBB35_21 - 0x44, 0x89, 0xd1, //0x0000915c movl %r10d, %ecx - 0x49, 0xff, 0xca, //0x0000915f decq %r10 - 0xff, 0xc9, //0x00009162 decl %ecx - 0x89, 0x4f, 0x10, //0x00009164 movl %ecx, $16(%rdi) - 0x49, 0x8d, 0x4a, 0x01, //0x00009167 leaq $1(%r10), %rcx - 0x48, 0x83, 0xf9, 0x01, //0x0000916b cmpq $1, %rcx - 0x0f, 0x8f, 0xdb, 0xff, 0xff, 0xff, //0x0000916f jg LBB35_17 - //0x00009175 LBB35_19 - 0x45, 0x85, 0xd2, //0x00009175 testl %r10d, %r10d - 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00009178 je LBB35_20 - //0x0000917e LBB35_21 - 0x5d, //0x0000917e popq %rbp - 0xc3, //0x0000917f retq - //0x00009180 LBB35_2 - 0x48, 0x85, 0xc0, //0x00009180 testq %rax, %rax - 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x00009183 je LBB35_22 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009189 .p2align 4, 0x90 - 0x48, 0x89, 0xc2, //0x00009190 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x00009193 shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x00009196 testq %rdx, %rdx - 0x0f, 0x85, 0xdd, 0xfe, 0xff, 0xff, //0x00009199 jne LBB35_6 - //0x0000919f LBB35_4 - 0x48, 0x01, 0xc0, //0x0000919f addq %rax, %rax - 0x48, 0x8d, 0x04, 0x80, //0x000091a2 leaq (%rax,%rax,4), %rax - 0xff, 0xc6, //0x000091a6 incl %esi - 0x48, 0x89, 0xc2, //0x000091a8 movq %rax, %rdx - 0x48, 0xd3, 0xea, //0x000091ab shrq %cl, %rdx - 0x48, 0x85, 0xd2, //0x000091ae testq %rdx, %rdx - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x000091b1 je LBB35_4 - 0xe9, 0xc0, 0xfe, 0xff, 0xff, //0x000091b7 jmp LBB35_6 - //0x000091bc LBB35_20 - 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x000091bc movl $0, $20(%rdi) - 0x5d, //0x000091c3 popq %rbp - 0xc3, //0x000091c4 retq - //0x000091c5 LBB35_22 - 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000091c5 movl $0, $16(%rdi) - 0x5d, //0x000091cc popq %rbp - 0xc3, //0x000091cd retq - 0x00, 0x00, //0x000091ce .p2align 4, 0x00 - //0x000091d0 LCPI36_0 - 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000091d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' - //0x000091e0 LCPI36_1 - 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000091e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' - //0x000091f0 .p2align 4, 0x90 - //0x000091f0 _advance_string_default - 0x55, //0x000091f0 pushq %rbp - 0x48, 0x89, 0xe5, //0x000091f1 movq %rsp, %rbp - 0x41, 0x57, //0x000091f4 pushq %r15 - 0x41, 0x56, //0x000091f6 pushq %r14 - 0x41, 0x55, //0x000091f8 pushq %r13 - 0x41, 0x54, //0x000091fa pushq %r12 - 0x53, //0x000091fc pushq %rbx - 0x48, 0x83, 0xec, 0x10, //0x000091fd subq $16, %rsp - 0x4c, 0x8b, 0x67, 0x08, //0x00009201 movq $8(%rdi), %r12 - 0x49, 0x29, 0xf4, //0x00009205 subq %rsi, %r12 - 0x0f, 0x84, 0x91, 0x03, 0x00, 0x00, //0x00009208 je LBB36_17 - 0x48, 0x8b, 0x07, //0x0000920e movq (%rdi), %rax - 0x48, 0x89, 0x45, 0xd0, //0x00009211 movq %rax, $-48(%rbp) - 0x48, 0x01, 0xc6, //0x00009215 addq %rax, %rsi - 0x48, 0x89, 0x55, 0xc8, //0x00009218 movq %rdx, $-56(%rbp) - 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000921c movq $-1, (%rdx) - 0x49, 0x83, 0xfc, 0x40, //0x00009223 cmpq $64, %r12 - 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x00009227 jb LBB36_18 - 0x45, 0x89, 0xe1, //0x0000922d movl %r12d, %r9d - 0x41, 0x83, 0xe1, 0x3f, //0x00009230 andl $63, %r9d - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00009234 movq $-1, %r14 - 0x45, 0x31, 0xff, //0x0000923b xorl %r15d, %r15d - 0x66, 0x0f, 0x6f, 0x05, 0x8a, 0xff, 0xff, 0xff, //0x0000923e movdqa $-118(%rip), %xmm0 /* LCPI36_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x00009246 movdqa $-110(%rip), %xmm1 /* LCPI36_1+0(%rip) */ - 0x48, 0x8b, 0x55, 0xd0, //0x0000924e movq $-48(%rbp), %rdx - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009252 .p2align 4, 0x90 - //0x00009260 LBB36_3 - 0xf3, 0x0f, 0x6f, 0x16, //0x00009260 movdqu (%rsi), %xmm2 - 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x00009264 movdqu $16(%rsi), %xmm3 - 0xf3, 0x0f, 0x6f, 0x66, 0x20, //0x00009269 movdqu $32(%rsi), %xmm4 - 0xf3, 0x0f, 0x6f, 0x6e, 0x30, //0x0000926e movdqu $48(%rsi), %xmm5 - 0x66, 0x0f, 0x6f, 0xf2, //0x00009273 movdqa %xmm2, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x00009277 pcmpeqb %xmm0, %xmm6 - 0x66, 0x0f, 0xd7, 0xde, //0x0000927b pmovmskb %xmm6, %ebx - 0x66, 0x0f, 0x6f, 0xf3, //0x0000927f movdqa %xmm3, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x00009283 pcmpeqb %xmm0, %xmm6 - 0x66, 0x0f, 0xd7, 0xce, //0x00009287 pmovmskb %xmm6, %ecx - 0x66, 0x0f, 0x6f, 0xf4, //0x0000928b movdqa %xmm4, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x0000928f pcmpeqb %xmm0, %xmm6 - 0x66, 0x0f, 0xd7, 0xc6, //0x00009293 pmovmskb %xmm6, %eax - 0x66, 0x0f, 0x6f, 0xf5, //0x00009297 movdqa %xmm5, %xmm6 - 0x66, 0x0f, 0x74, 0xf0, //0x0000929b pcmpeqb %xmm0, %xmm6 - 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x0000929f pmovmskb %xmm6, %r13d - 0x66, 0x0f, 0x74, 0xd1, //0x000092a4 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xfa, //0x000092a8 pmovmskb %xmm2, %edi - 0x66, 0x0f, 0x74, 0xd9, //0x000092ac pcmpeqb %xmm1, %xmm3 - 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x000092b0 pmovmskb %xmm3, %r10d - 0x66, 0x0f, 0x74, 0xe1, //0x000092b5 pcmpeqb %xmm1, %xmm4 - 0x66, 0x44, 0x0f, 0xd7, 0xdc, //0x000092b9 pmovmskb %xmm4, %r11d - 0x66, 0x0f, 0x74, 0xe9, //0x000092be pcmpeqb %xmm1, %xmm5 - 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x000092c2 pmovmskb %xmm5, %r8d - 0x49, 0xc1, 0xe5, 0x30, //0x000092c7 shlq $48, %r13 - 0x48, 0xc1, 0xe0, 0x20, //0x000092cb shlq $32, %rax - 0x48, 0xc1, 0xe1, 0x10, //0x000092cf shlq $16, %rcx - 0x48, 0x09, 0xcb, //0x000092d3 orq %rcx, %rbx - 0x48, 0x09, 0xc3, //0x000092d6 orq %rax, %rbx - 0x49, 0xc1, 0xe0, 0x30, //0x000092d9 shlq $48, %r8 - 0x49, 0xc1, 0xe3, 0x20, //0x000092dd shlq $32, %r11 - 0x49, 0xc1, 0xe2, 0x10, //0x000092e1 shlq $16, %r10 - 0x4c, 0x09, 0xd7, //0x000092e5 orq %r10, %rdi - 0x4c, 0x09, 0xdf, //0x000092e8 orq %r11, %rdi - 0x4c, 0x09, 0xc7, //0x000092eb orq %r8, %rdi - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000092ee je LBB36_5 - 0x49, 0x83, 0xfe, 0xff, //0x000092f4 cmpq $-1, %r14 - 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000092f8 je LBB36_8 - //0x000092fe LBB36_5 - 0x4c, 0x09, 0xeb, //0x000092fe orq %r13, %rbx - 0x48, 0x89, 0xf8, //0x00009301 movq %rdi, %rax - 0x4c, 0x09, 0xf8, //0x00009304 orq %r15, %rax - 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00009307 jne LBB36_9 - //0x0000930d LBB36_6 - 0x48, 0x85, 0xdb, //0x0000930d testq %rbx, %rbx - 0x0f, 0x85, 0x0e, 0x01, 0x00, 0x00, //0x00009310 jne LBB36_15 - //0x00009316 LBB36_7 - 0x48, 0x83, 0xc6, 0x40, //0x00009316 addq $64, %rsi - 0x49, 0x83, 0xc4, 0xc0, //0x0000931a addq $-64, %r12 - 0x49, 0x83, 0xfc, 0x3f, //0x0000931e cmpq $63, %r12 - 0x0f, 0x87, 0x38, 0xff, 0xff, 0xff, //0x00009322 ja LBB36_3 - 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00009328 jmp LBB36_10 - //0x0000932d LBB36_8 - 0x48, 0x89, 0xf0, //0x0000932d movq %rsi, %rax - 0x48, 0x29, 0xd0, //0x00009330 subq %rdx, %rax - 0x4c, 0x0f, 0xbc, 0xf7, //0x00009333 bsfq %rdi, %r14 - 0x49, 0x01, 0xc6, //0x00009337 addq %rax, %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x0000933a movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x0000933e movq %r14, (%rax) - 0x4c, 0x09, 0xeb, //0x00009341 orq %r13, %rbx - 0x48, 0x89, 0xf8, //0x00009344 movq %rdi, %rax - 0x4c, 0x09, 0xf8, //0x00009347 orq %r15, %rax - 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x0000934a je LBB36_6 - //0x00009350 LBB36_9 - 0x4c, 0x89, 0xf8, //0x00009350 movq %r15, %rax - 0x48, 0xf7, 0xd0, //0x00009353 notq %rax - 0x48, 0x21, 0xf8, //0x00009356 andq %rdi, %rax - 0x4c, 0x8d, 0x04, 0x00, //0x00009359 leaq (%rax,%rax), %r8 - 0x4d, 0x09, 0xf8, //0x0000935d orq %r15, %r8 - 0x4c, 0x89, 0xc1, //0x00009360 movq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x00009363 notq %rcx - 0x48, 0x21, 0xf9, //0x00009366 andq %rdi, %rcx - 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009369 movabsq $-6148914691236517206, %rdi - 0x48, 0x21, 0xf9, //0x00009373 andq %rdi, %rcx - 0x45, 0x31, 0xff, //0x00009376 xorl %r15d, %r15d - 0x48, 0x01, 0xc1, //0x00009379 addq %rax, %rcx - 0x41, 0x0f, 0x92, 0xc7, //0x0000937c setb %r15b - 0x48, 0x01, 0xc9, //0x00009380 addq %rcx, %rcx - 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009383 movabsq $6148914691236517205, %rax - 0x48, 0x31, 0xc1, //0x0000938d xorq %rax, %rcx - 0x4c, 0x21, 0xc1, //0x00009390 andq %r8, %rcx - 0x48, 0xf7, 0xd1, //0x00009393 notq %rcx - 0x48, 0x21, 0xcb, //0x00009396 andq %rcx, %rbx - 0x48, 0x85, 0xdb, //0x00009399 testq %rbx, %rbx - 0x0f, 0x84, 0x74, 0xff, 0xff, 0xff, //0x0000939c je LBB36_7 - 0xe9, 0x7d, 0x00, 0x00, 0x00, //0x000093a2 jmp LBB36_15 - //0x000093a7 LBB36_10 - 0x4d, 0x89, 0xcc, //0x000093a7 movq %r9, %r12 - 0x49, 0x83, 0xfc, 0x20, //0x000093aa cmpq $32, %r12 - 0x0f, 0x82, 0x0f, 0x01, 0x00, 0x00, //0x000093ae jb LBB36_22 - //0x000093b4 LBB36_11 - 0xf3, 0x0f, 0x6f, 0x06, //0x000093b4 movdqu (%rsi), %xmm0 - 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x000093b8 movdqu $16(%rsi), %xmm1 - 0x66, 0x0f, 0x6f, 0x15, 0x0b, 0xfe, 0xff, 0xff, //0x000093bd movdqa $-501(%rip), %xmm2 /* LCPI36_0+0(%rip) */ - 0x66, 0x0f, 0x6f, 0x1d, 0x13, 0xfe, 0xff, 0xff, //0x000093c5 movdqa $-493(%rip), %xmm3 /* LCPI36_1+0(%rip) */ - 0x66, 0x0f, 0x6f, 0xe0, //0x000093cd movdqa %xmm0, %xmm4 - 0x66, 0x0f, 0x74, 0xe2, //0x000093d1 pcmpeqb %xmm2, %xmm4 - 0x66, 0x0f, 0xd7, 0xfc, //0x000093d5 pmovmskb %xmm4, %edi - 0x66, 0x0f, 0x74, 0xd1, //0x000093d9 pcmpeqb %xmm1, %xmm2 - 0x66, 0x0f, 0xd7, 0xda, //0x000093dd pmovmskb %xmm2, %ebx - 0x66, 0x0f, 0x74, 0xc3, //0x000093e1 pcmpeqb %xmm3, %xmm0 - 0x66, 0x0f, 0xd7, 0xc0, //0x000093e5 pmovmskb %xmm0, %eax - 0x66, 0x0f, 0x74, 0xcb, //0x000093e9 pcmpeqb %xmm3, %xmm1 - 0x66, 0x0f, 0xd7, 0xc9, //0x000093ed pmovmskb %xmm1, %ecx - 0x48, 0xc1, 0xe3, 0x10, //0x000093f1 shlq $16, %rbx - 0x48, 0xc1, 0xe1, 0x10, //0x000093f5 shlq $16, %rcx - 0x48, 0x09, 0xc8, //0x000093f9 orq %rcx, %rax - 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000093fc je LBB36_13 - 0x49, 0x83, 0xfe, 0xff, //0x00009402 cmpq $-1, %r14 - 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x00009406 je LBB36_19 - //0x0000940c LBB36_13 - 0x48, 0x09, 0xfb, //0x0000940c orq %rdi, %rbx - 0x48, 0x89, 0xc1, //0x0000940f movq %rax, %rcx - 0x4c, 0x09, 0xf9, //0x00009412 orq %r15, %rcx - 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x00009415 jne LBB36_20 - //0x0000941b LBB36_14 - 0x48, 0x85, 0xdb, //0x0000941b testq %rbx, %rbx - 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x0000941e je LBB36_21 - //0x00009424 LBB36_15 - 0x48, 0x0f, 0xbc, 0xc3, //0x00009424 bsfq %rbx, %rax - 0x48, 0x29, 0xd6, //0x00009428 subq %rdx, %rsi - 0x48, 0x8d, 0x44, 0x06, 0x01, //0x0000942b leaq $1(%rsi,%rax), %rax - //0x00009430 LBB36_16 - 0x48, 0x83, 0xc4, 0x10, //0x00009430 addq $16, %rsp - 0x5b, //0x00009434 popq %rbx - 0x41, 0x5c, //0x00009435 popq %r12 - 0x41, 0x5d, //0x00009437 popq %r13 - 0x41, 0x5e, //0x00009439 popq %r14 - 0x41, 0x5f, //0x0000943b popq %r15 - 0x5d, //0x0000943d popq %rbp - 0xc3, //0x0000943e retq - //0x0000943f LBB36_18 - 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x0000943f movq $-1, %r14 - 0x45, 0x31, 0xff, //0x00009446 xorl %r15d, %r15d - 0x48, 0x8b, 0x55, 0xd0, //0x00009449 movq $-48(%rbp), %rdx - 0x49, 0x83, 0xfc, 0x20, //0x0000944d cmpq $32, %r12 - 0x0f, 0x83, 0x5d, 0xff, 0xff, 0xff, //0x00009451 jae LBB36_11 - 0xe9, 0x67, 0x00, 0x00, 0x00, //0x00009457 jmp LBB36_22 - //0x0000945c LBB36_19 - 0x48, 0x89, 0xf1, //0x0000945c movq %rsi, %rcx - 0x48, 0x29, 0xd1, //0x0000945f subq %rdx, %rcx - 0x4c, 0x0f, 0xbc, 0xf0, //0x00009462 bsfq %rax, %r14 - 0x49, 0x01, 0xce, //0x00009466 addq %rcx, %r14 - 0x48, 0x8b, 0x4d, 0xc8, //0x00009469 movq $-56(%rbp), %rcx - 0x4c, 0x89, 0x31, //0x0000946d movq %r14, (%rcx) - 0x48, 0x09, 0xfb, //0x00009470 orq %rdi, %rbx - 0x48, 0x89, 0xc1, //0x00009473 movq %rax, %rcx - 0x4c, 0x09, 0xf9, //0x00009476 orq %r15, %rcx - 0x0f, 0x84, 0x9c, 0xff, 0xff, 0xff, //0x00009479 je LBB36_14 - //0x0000947f LBB36_20 - 0x44, 0x89, 0xf9, //0x0000947f movl %r15d, %ecx - 0xf7, 0xd1, //0x00009482 notl %ecx - 0x21, 0xc1, //0x00009484 andl %eax, %ecx - 0x44, 0x8d, 0x04, 0x09, //0x00009486 leal (%rcx,%rcx), %r8d - 0x45, 0x09, 0xf8, //0x0000948a orl %r15d, %r8d - 0x44, 0x89, 0xc7, //0x0000948d movl %r8d, %edi - 0xf7, 0xd7, //0x00009490 notl %edi - 0x21, 0xc7, //0x00009492 andl %eax, %edi - 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009494 andl $-1431655766, %edi - 0x45, 0x31, 0xff, //0x0000949a xorl %r15d, %r15d - 0x01, 0xcf, //0x0000949d addl %ecx, %edi - 0x41, 0x0f, 0x92, 0xc7, //0x0000949f setb %r15b - 0x01, 0xff, //0x000094a3 addl %edi, %edi - 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000094a5 xorl $1431655765, %edi - 0x44, 0x21, 0xc7, //0x000094ab andl %r8d, %edi - 0xf7, 0xd7, //0x000094ae notl %edi - 0x21, 0xfb, //0x000094b0 andl %edi, %ebx - 0x48, 0x85, 0xdb, //0x000094b2 testq %rbx, %rbx - 0x0f, 0x85, 0x69, 0xff, 0xff, 0xff, //0x000094b5 jne LBB36_15 - //0x000094bb LBB36_21 - 0x48, 0x83, 0xc6, 0x20, //0x000094bb addq $32, %rsi - 0x49, 0x83, 0xc4, 0xe0, //0x000094bf addq $-32, %r12 - //0x000094c3 LBB36_22 - 0x4d, 0x85, 0xff, //0x000094c3 testq %r15, %r15 - 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x000094c6 jne LBB36_33 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000094cc movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x000094d3 testq %r12, %r12 - 0x0f, 0x84, 0x54, 0xff, 0xff, 0xff, //0x000094d6 je LBB36_16 - //0x000094dc LBB36_24 - 0x49, 0x89, 0xd1, //0x000094dc movq %rdx, %r9 - 0x49, 0xf7, 0xd1, //0x000094df notq %r9 - 0x48, 0x8b, 0x4d, 0xc8, //0x000094e2 movq $-56(%rbp), %rcx - //0x000094e6 LBB36_25 - 0x48, 0x8d, 0x7e, 0x01, //0x000094e6 leaq $1(%rsi), %rdi - 0x0f, 0xb6, 0x1e, //0x000094ea movzbl (%rsi), %ebx - 0x80, 0xfb, 0x22, //0x000094ed cmpb $34, %bl - 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x000094f0 je LBB36_32 - 0x4d, 0x8d, 0x54, 0x24, 0xff, //0x000094f6 leaq $-1(%r12), %r10 - 0x80, 0xfb, 0x5c, //0x000094fb cmpb $92, %bl - 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000094fe je LBB36_28 - 0x4d, 0x89, 0xd4, //0x00009504 movq %r10, %r12 - 0x48, 0x89, 0xfe, //0x00009507 movq %rdi, %rsi - 0x4d, 0x85, 0xd2, //0x0000950a testq %r10, %r10 - 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x0000950d jne LBB36_25 - 0xe9, 0x18, 0xff, 0xff, 0xff, //0x00009513 jmp LBB36_16 - //0x00009518 LBB36_28 - 0x4d, 0x85, 0xd2, //0x00009518 testq %r10, %r10 - 0x0f, 0x84, 0x0f, 0xff, 0xff, 0xff, //0x0000951b je LBB36_16 - 0x49, 0x83, 0xfe, 0xff, //0x00009521 cmpq $-1, %r14 - 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00009525 jne LBB36_31 - 0x4c, 0x01, 0xcf, //0x0000952b addq %r9, %rdi - 0x48, 0x89, 0x39, //0x0000952e movq %rdi, (%rcx) - 0x49, 0x89, 0xfe, //0x00009531 movq %rdi, %r14 - //0x00009534 LBB36_31 - 0x48, 0x83, 0xc6, 0x02, //0x00009534 addq $2, %rsi - 0x49, 0x83, 0xc4, 0xfe, //0x00009538 addq $-2, %r12 - 0x4d, 0x89, 0xe2, //0x0000953c movq %r12, %r10 - 0x48, 0x8b, 0x55, 0xd0, //0x0000953f movq $-48(%rbp), %rdx - 0x4d, 0x85, 0xd2, //0x00009543 testq %r10, %r10 - 0x0f, 0x85, 0x9a, 0xff, 0xff, 0xff, //0x00009546 jne LBB36_25 - 0xe9, 0xdf, 0xfe, 0xff, 0xff, //0x0000954c jmp LBB36_16 - //0x00009551 LBB36_32 - 0x48, 0x29, 0xd7, //0x00009551 subq %rdx, %rdi - 0x48, 0x89, 0xf8, //0x00009554 movq %rdi, %rax - 0xe9, 0xd4, 0xfe, 0xff, 0xff, //0x00009557 jmp LBB36_16 - //0x0000955c LBB36_33 - 0x4d, 0x85, 0xe4, //0x0000955c testq %r12, %r12 - 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x0000955f je LBB36_17 - 0x49, 0x83, 0xfe, 0xff, //0x00009565 cmpq $-1, %r14 - 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00009569 jne LBB36_36 - 0x4c, 0x8b, 0x75, 0xd0, //0x0000956f movq $-48(%rbp), %r14 - 0x49, 0xf7, 0xd6, //0x00009573 notq %r14 - 0x49, 0x01, 0xf6, //0x00009576 addq %rsi, %r14 - 0x48, 0x8b, 0x45, 0xc8, //0x00009579 movq $-56(%rbp), %rax - 0x4c, 0x89, 0x30, //0x0000957d movq %r14, (%rax) - //0x00009580 LBB36_36 - 0x48, 0xff, 0xc6, //0x00009580 incq %rsi - 0x49, 0xff, 0xcc, //0x00009583 decq %r12 - 0x48, 0x8b, 0x55, 0xd0, //0x00009586 movq $-48(%rbp), %rdx - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000958a movq $-1, %rax - 0x4d, 0x85, 0xe4, //0x00009591 testq %r12, %r12 - 0x0f, 0x85, 0x42, 0xff, 0xff, 0xff, //0x00009594 jne LBB36_24 - 0xe9, 0x91, 0xfe, 0xff, 0xff, //0x0000959a jmp LBB36_16 - //0x0000959f LBB36_17 - 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000959f movq $-1, %rax - 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x000095a6 jmp LBB36_16 - 0x00, 0x00, 0x00, 0x00, 0x00, //0x000095ab .p2align 4, 0x00 - //0x000095b0 _POW10_M128_TAB - 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x000095b0 .quad 1671618768450675795 - 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x000095b8 .quad -391859759250406776 - 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x000095c0 .quad 1044761730281672372 - 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x000095c8 .quad -7162441377172586091 - 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x000095d0 .quad 5917638181279478369 - 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x000095d8 .quad -4341365703038344710 - 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x000095e0 .quad -1826324310255427847 - 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x000095e8 .quad -815021110370542984 - 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x000095f0 .quad -8058981721550724260 - 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x000095f8 .quad -7426917221622671221 - 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009600 .quad 8373016921771146291 - 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009608 .quad -4671960508600951122 - 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009610 .quad 1242899115359157055 - 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009618 .quad -1228264617323800998 - 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00009620 .quad 5388497965526861063 - 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00009628 .quad -7685194413468457480 - 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00009630 .quad 6735622456908576329 - 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00009638 .quad -4994806998408183946 - 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00009640 .quad -803843965719055396 - 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00009648 .quad -1631822729582842029 - 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00009650 .quad 8720969558280366185 - 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00009658 .quad -7937418233630358124 - 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00009660 .quad -7545532125859093884 - 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00009668 .quad -5310086773610559751 - 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00009670 .quad -208543120469091547 - 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00009678 .quad -2025922448585811785 - 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009680 .quad -130339450293182217 - 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009688 .quad -8183730558007214222 - 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009690 .quad -4774610331293865675 - 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009698 .quad -5617977179081629873 - 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x000096a0 .quad -5968262914117332094 - 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x000096a8 .quad -2410785455424649437 - 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x000096b0 .quad 5493207715531443249 - 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x000096b8 .quad -8424269937281487754 - 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x000096c0 .quad -2356862392440471747 - 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x000096c8 .quad -5918651403174471789 - 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x000096d0 .quad -2946077990550589683 - 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x000096d8 .quad -2786628235540701832 - 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x000096e0 .quad -8758827771735200408 - 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x000096e8 .quad -8659171674854020501 - 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x000096f0 .quad 7498209359040551106 - 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x000096f8 .quad -6212278575140137722 - 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009700 .quad 149389661945913074 - 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009708 .quad -3153662200497784248 - 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009710 .quad 93368538716195671 - 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009718 .quad -8888567902952197011 - 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00009720 .quad 4728396691822632493 - 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00009728 .quad -6499023860262858360 - 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00009730 .quad 5910495864778290617 - 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00009738 .quad -3512093806901185046 - 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00009740 .quad 8305745933913819539 - 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00009748 .quad -9112587656954322510 - 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00009750 .quad 1158810380537498616 - 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00009758 .quad -6779048552765515233 - 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00009760 .quad -3163173042755514634 - 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00009768 .quad -3862124672529506138 - 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00009770 .quad -8565652321871781196 - 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00009778 .quad -215969822234494768 - 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009780 .quad 6175682344898606512 - 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009788 .quad -7052510166537641086 - 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009790 .quad -1503769105731517667 - 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009798 .quad -4203951689744663454 - 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x000097a0 .quad -6491397400591784988 - 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x000097a8 .quad -643253593753441413 - 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x000097b0 .quad 5166248661484910190 - 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x000097b8 .quad -7319562523736982739 - 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x000097c0 .quad -7377247228426025974 - 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x000097c8 .quad -4537767136243840520 - 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x000097d0 .quad -4609873017105144563 - 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x000097d8 .quad -1060522901877412746 - 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x000097e0 .quad 4036358391950366504 - 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x000097e8 .quad -7580355841314464822 - 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x000097f0 .quad -4177924046916817678 - 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x000097f8 .quad -4863758783215693124 - 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009800 .quad -610719040218634194 - 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009808 .quad -1468012460592228501 - 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009810 .quad 8841672636718129437 - 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009818 .quad -7835036815511224669 - 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009820 .quad 6440404777470273892 - 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009828 .quad -5182110000961642932 - 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009830 .quad 8050505971837842365 - 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009838 .quad -1865951482774665761 - 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009840 .quad -6497648813669818282 - 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009848 .quad -8083748704375247957 - 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009850 .quad -8122061017087272852 - 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009858 .quad -5492999862041672042 - 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009860 .quad 3682481783923072647 - 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009868 .quad -2254563809124702148 - 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009870 .quad -6921820921902855404 - 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009878 .quad -8326631408344020699 - 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009880 .quad 571095884476206553 - 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009888 .quad -5796603242002637969 - 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009890 .quad -3897816162832129712 - 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009898 .quad -2634068034075909558 - 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x000098a0 .quad -4741978110983775022 - 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x000098a8 .quad -8563821548938525330 - 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x000098b0 .quad 7907585416552444934 - 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x000098b8 .quad -6093090917745768758 - 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x000098c0 .quad 661109733835780360 - 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x000098c8 .quad -3004677628754823043 - 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x000098d0 .quad 2719036592861056677 - 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x000098d8 .quad -8795452545612846258 - 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x000098e0 .quad -5824576295778454962 - 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x000098e8 .quad -6382629663588669919 - 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x000098f0 .quad 1942651667131707105 - 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x000098f8 .quad -3366601061058449494 - 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009900 .quad 5825843310384704845 - 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009908 .quad -9021654690802612790 - 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009910 .quad -1941067898873894752 - 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009918 .quad -6665382345075878084 - 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009920 .quad 2185351144835019464 - 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009928 .quad -3720041912917459700 - 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009930 .quad 2731688931043774330 - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009938 .quad -38366372719436721 - 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009940 .quad 8624834609543440812 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009948 .quad -6941508010590729807 - 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009950 .quad -3054014793352862697 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009958 .quad -4065198994811024355 - 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009960 .quad 5405853545163697437 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009968 .quad -469812725086392539 - 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009970 .quad 5684501474941004850 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009978 .quad -7211161980820077193 - 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009980 .quad 2493940825248868159 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009988 .quad -4402266457597708587 - 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009990 .quad 7729112049988473103 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009998 .quad -891147053569747830 - 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x000099a0 .quad -9004363024039368023 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x000099a8 .quad -7474495936122174250 - 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000099b0 .quad 2579604275232953683 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000099b8 .quad -4731433901725329908 - 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x000099c0 .quad 3224505344041192104 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x000099c8 .quad -1302606358729274481 - 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x000099d0 .quad 8932844867666826921 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x000099d8 .quad -7731658001846878407 - 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x000099e0 .quad -2669001970698630061 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x000099e8 .quad -5052886483881210105 - 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x000099f0 .quad -3336252463373287576 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x000099f8 .quad -1704422086424124727 - 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009a00 .quad 2526528228819083169 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009a08 .quad -7982792831656159810 - 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009a10 .quad -6065211750830921846 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009a18 .quad -5366805021142811859 - 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009a20 .quad 1641857348316123500 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009a28 .quad -2096820258001126919 - 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009a30 .quad -5891368184943504669 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009a38 .quad -8228041688891786181 - 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009a40 .quad -7364210231179380836 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009a48 .quad -5673366092687344822 - 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009a50 .quad 4629795266307937667 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009a58 .quad -2480021597431793123 - 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009a60 .quad 5199465050656154994 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009a68 .quad -8467542526035952558 - 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009a70 .quad -2724040723534582065 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009a78 .quad -5972742139117552794 - 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009a80 .quad -8016736922845615486 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009a88 .quad -2854241655469553088 - 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009a90 .quad 6518754469289960081 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009a98 .quad -8701430062309552536 - 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009aa0 .quad 8148443086612450102 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009aa8 .quad -6265101559459552766 - 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009ab0 .quad 962181821410786819 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009ab8 .quad -3219690930897053053 - 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009ac0 .quad -1704479370831952190 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009ac8 .quad -8929835859451740015 - 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009ad0 .quad 7092772823314835570 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009ad8 .quad -6550608805887287114 - 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009ae0 .quad -357406007711231345 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009ae8 .quad -3576574988931720989 - 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009af0 .quad 8999993282035256217 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009af8 .quad -9152888395723407474 - 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009b00 .quad 2026619565689294464 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009b08 .quad -6829424476226871438 - 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009b10 .quad -6690097579743157728 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009b18 .quad -3925094576856201394 - 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009b20 .quad 5472436080603216552 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009b28 .quad -294682202642863838 - 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009b30 .quad 8031958568804398249 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009b38 .quad -7101705404292871755 - 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009b40 .quad -3795109844276665901 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009b48 .quad -4265445736938701790 - 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009b50 .quad 9091170749936331336 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009b58 .quad -720121152745989333 - 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009b60 .quad 3376138709496513133 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009b68 .quad -7367604748107325189 - 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009b70 .quad -391512631556746488 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009b78 .quad -4597819916706768583 - 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009b80 .quad 8733981247408842698 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009b88 .quad -1135588877456072824 - 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009b90 .quad 5458738279630526686 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009b98 .quad -7627272076051127371 - 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009ba0 .quad -7011635205744005354 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009ba8 .quad -4922404076636521310 - 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009bb0 .quad 5070514048102157020 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009bb8 .quad -1541319077368263733 - 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009bc0 .quad 863228270850154185 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009bc8 .quad -7880853450996246689 - 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009bd0 .quad -3532650679864695173 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009bd8 .quad -5239380795317920458 - 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009be0 .quad -9027499368258256870 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009be8 .quad -1937539975720012668 - 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009bf0 .quad -3336344095947716592 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009bf8 .quad -8128491512466089774 - 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009c00 .quad -8782116138362033643 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009c08 .quad -5548928372155224313 - 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009c10 .quad 7469098900757009562 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009c18 .quad -2324474446766642487 - 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00009c20 .quad -2249342214667950880 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00009c28 .quad -8370325556870233411 - 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00009c30 .quad 6411694268519837208 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00009c38 .quad -5851220927660403859 - 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00009c40 .quad -5820440219632367202 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00009c48 .quad -2702340141148116920 - 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00009c50 .quad 7891439908798240259 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00009c58 .quad -8606491615858654931 - 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00009c60 .quad -3970758169284363389 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00009c68 .quad -6146428501395930760 - 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00009c70 .quad -351761693178066332 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00009c78 .quad -3071349608317525546 - 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009c80 .quad 6697677969404790399 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009c88 .quad -8837122532839535322 - 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009c90 .quad -851274575098787810 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009c98 .quad -6434717147622031249 - 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009ca0 .quad -1064093218873484762 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009ca8 .quad -3431710416100151157 - 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009cb0 .quad 8558313775058847832 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009cb8 .quad -9062348037703676329 - 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009cc0 .quad 6086206200396171886 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009cc8 .quad -6716249028702207507 - 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009cd0 .quad -6227300304786948855 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009cd8 .quad -3783625267450371480 - 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009ce0 .quad -3172439362556298164 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009ce8 .quad -117845565885576446 - 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009cf0 .quad -4288617610811380305 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009cf8 .quad -6991182506319567135 - 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009d00 .quad 3862600023340550427 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009d08 .quad -4127292114472071014 - 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009d10 .quad -4395122007679087774 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009d18 .quad -547429124662700864 - 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009d20 .quad 8782263791269039901 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009d28 .quad -7259672230555269896 - 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009d30 .quad -7468914334623251740 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009d38 .quad -4462904269766699466 - 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009d40 .quad 4498915137003099037 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009d48 .quad -966944318780986428 - 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009d50 .quad -6411550076227838910 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009d58 .quad -7521869226879198374 - 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009d60 .quad 5820620459997365075 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009d68 .quad -4790650515171610063 - 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009d70 .quad -6559282480285457368 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009d78 .quad -1376627125537124675 - 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00009d80 .quad -8711237568605798759 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00009d88 .quad -7777920981101784778 - 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00009d90 .quad 2946011094524915263 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00009d98 .quad -5110715207949843068 - 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00009da0 .quad 3682513868156144079 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00009da8 .quad -1776707991509915931 - 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00009db0 .quad 4607414176811284001 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00009db8 .quad -8027971522334779313 - 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00009dc0 .quad 1147581702586717097 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00009dc8 .quad -5423278384491086237 - 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00009dd0 .quad -3177208890193991532 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00009dd8 .quad -2167411962186469893 - 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00009de0 .quad 7237616480483531100 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00009de8 .quad -8272161504007625539 - 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00009df0 .quad -4788037454677749837 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00009df8 .quad -5728515861582144020 - 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00009e00 .quad -1373360799919799392 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00009e08 .quad -2548958808550292121 - 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00009e10 .quad -858350499949874620 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00009e18 .quad -8510628282985014432 - 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00009e20 .quad 3538747893490044629 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00009e28 .quad -6026599335303880135 - 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00009e30 .quad 9035120885289943691 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00009e38 .quad -2921563150702462265 - 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00009e40 .quad -5882264492762254953 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00009e48 .quad -8743505996830120772 - 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00009e50 .quad -2741144597525430788 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00009e58 .quad -6317696477610263061 - 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00009e60 .quad -3426430746906788485 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00009e68 .quad -3285434578585440922 - 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00009e70 .quad 4776009810824339053 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00009e78 .quad -8970925639256982432 - 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00009e80 .quad 5970012263530423816 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00009e88 .quad -6601971030643840136 - 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00009e90 .quad 7462515329413029771 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00009e98 .quad -3640777769877412266 - 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00009ea0 .quad 52386062455755702 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00009ea8 .quad -9193015133814464522 - 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00009eb0 .quad -9157889458785081180 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00009eb8 .quad -6879582898840692749 - 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00009ec0 .quad 6999382250228200141 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00009ec8 .quad -3987792605123478032 - 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00009ed0 .quad 8749227812785250177 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00009ed8 .quad -373054737976959636 - 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00009ee0 .quad -3755104653863994448 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00009ee8 .quad -7150688238876681629 - 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00009ef0 .quad -4693880817329993060 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00009ef8 .quad -4326674280168464132 - 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00009f00 .quad -1255665003235103420 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00009f08 .quad -796656831783192261 - 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00009f10 .quad 8438581409832836170 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00009f18 .quad -7415439547505577019 - 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00009f20 .quad -3286831292991118499 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00009f28 .quad -4657613415954583370 - 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00009f30 .quad -8720225134666286028 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00009f38 .quad -1210330751515841308 - 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00009f40 .quad -3144297699952734816 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00009f48 .quad -7673985747338482674 - 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00009f50 .quad -8542058143368306423 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00009f58 .quad -4980796165745715438 - 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00009f60 .quad 3157485376071780683 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00009f68 .quad -1614309188754756393 - 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00009f70 .quad 8890957387685944783 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00009f78 .quad -7926472270612804602 - 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00009f80 .quad 1890324697752655170 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00009f88 .quad -5296404319838617848 - 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00009f90 .quad 2362905872190818963 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00009f98 .quad -2008819381370884406 - 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00009fa0 .quad 6088502188546649756 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00009fa8 .quad -8173041140997884610 - 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00009fb0 .quad -1612744301171463613 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00009fb8 .quad -5604615407819967859 - 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00009fc0 .quad 7207441660390446292 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00009fc8 .quad -2394083241347571919 - 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00009fd0 .quad -2412877989897052924 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00009fd8 .quad -8413831053483314306 - 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00009fe0 .quad -7627783505798704059 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00009fe8 .quad -5905602798426754978 - 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00009ff0 .quad 4300328673033783639 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00009ff8 .quad -2770317479606055818 - 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000a000 .quad -1923980597781273130 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000a008 .quad -8648977452394866743 - 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000a010 .quad 6818396289628184396 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000a018 .quad -6199535797066195524 - 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000a020 .quad 8522995362035230495 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000a028 .quad -3137733727905356501 - 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000a030 .quad 3021029092058325107 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000a038 .quad -8878612607581929669 - 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000a040 .quad -835399653354481520 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000a048 .quad -6486579741050024183 - 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a050 .quad 8179122470161673908 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a058 .quad -3496538657885142324 - 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a060 .quad -4111420493003729616 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a068 .quad -9102865688819295809 - 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a070 .quad -5139275616254662020 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a078 .quad -6766896092596731857 - 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a080 .quad -6424094520318327524 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a088 .quad -3846934097318526917 - 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a090 .quad -8030118150397909405 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a098 .quad -196981603220770742 - 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a0a0 .quad -7324666853212387330 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a0a8 .quad -7040642529654063570 - 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a0b0 .quad 4679224488766679549 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a0b8 .quad -4189117143640191558 - 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a0c0 .quad -3374341425896426372 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a0c8 .quad -624710411122851544 - 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a0d0 .quad -9026492418826348338 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a0d8 .quad -7307973034592864071 - 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a0e0 .quad -2059743486678159615 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a0e8 .quad -4523280274813692185 - 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a0f0 .quad -2574679358347699519 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a0f8 .quad -1042414325089727327 - 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a100 .quad 3002511419460075705 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a108 .quad -7569037980822161435 - 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a110 .quad 8364825292752482535 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a118 .quad -4849611457600313890 - 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a120 .quad 1232659579085827361 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a128 .quad -1450328303573004458 - 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a130 .quad -3841273781498745804 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a138 .quad -7823984217374209643 - 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a140 .quad 4421779809981343554 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a148 .quad -5168294253290374149 - 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a150 .quad 915538744049291538 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a158 .quad -1848681798185579782 - 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a160 .quad 5183897733458195115 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a168 .quad -8072955151507069220 - 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a170 .quad 6479872166822743894 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a178 .quad -5479507920956448621 - 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a180 .quad 3488154190101041964 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a188 .quad -2237698882768172872 - 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a190 .quad 2180096368813151227 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a198 .quad -8316090829371189901 - 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a1a0 .quad -1886565557410948870 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a1a8 .quad -5783427518286599473 - 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a1b0 .quad -2358206946763686087 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a1b8 .quad -2617598379430861437 - 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a1c0 .quad 7749492695127472003 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a1c8 .quad -8553528014785370254 - 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a1d0 .quad 463493832054564196 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a1d8 .quad -6080224000054324913 - 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a1e0 .quad -4032318728359182659 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a1e8 .quad -2988593981640518238 - 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a1f0 .quad -4826042214438183114 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a1f8 .quad -8785400266166405755 - 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a200 .quad 3190819268807046916 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a208 .quad -6370064314280619289 - 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a210 .quad -623161932418579259 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a218 .quad -3350894374423386208 - 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a220 .quad -7307005235402693893 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a228 .quad -9011838011655698236 - 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a230 .quad -4522070525825979462 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a238 .quad -6653111496142234891 - 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a240 .quad 3570783879572301480 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a248 .quad -3704703351750405709 - 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a250 .quad -148206168962011054 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a258 .quad -19193171260619233 - 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a260 .quad -92628855601256909 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a268 .quad -6929524759678968877 - 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a270 .quad -115786069501571136 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a278 .quad -4050219931171323192 - 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a280 .quad 4466953431550423984 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a288 .quad -451088895536766085 - 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a290 .quad 486002885505321038 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a298 .quad -7199459587351560659 - 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a2a0 .quad 5219189625309039202 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a2a8 .quad -4387638465762062920 - 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a2b0 .quad 6523987031636299002 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a2b8 .quad -872862063775190746 - 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a2c0 .quad -534194123654701028 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a2c8 .quad -7463067817500576073 - 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a2d0 .quad -667742654568376285 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a2d8 .quad -4717148753448332187 - 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a2e0 .quad 8388693718644305452 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a2e8 .quad -1284749923383027329 - 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a2f0 .quad -6286281471915778852 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a2f8 .quad -7720497729755473937 - 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a300 .quad -7857851839894723565 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a308 .quad -5038936143766954517 - 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a310 .quad 8624429273841147159 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a318 .quad -1686984161281305242 - 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a320 .quad 778582277723329070 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a328 .quad -7971894128441897632 - 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a330 .quad 973227847154161338 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a338 .quad -5353181642124984136 - 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a340 .quad 1216534808942701673 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a348 .quad -2079791034228842266 - 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a350 .quad -3851351762838199359 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a358 .quad -8217398424034108273 - 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a360 .quad -4814189703547749198 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a368 .quad -5660062011615247437 - 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a370 .quad -6017737129434686498 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a378 .quad -2463391496091671392 - 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a380 .quad 7768129340171790699 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a388 .quad -8457148712698376476 - 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a390 .quad -8736582398494813242 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a398 .quad -5959749872445582691 - 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a3a0 .quad -1697355961263740745 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a3a8 .quad -2838001322129590460 - 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a3b0 .quad 1244995533423855986 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a3b8 .quad -8691279853972075893 - 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a3c0 .quad -3055441601647567921 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a3c8 .quad -6252413799037706963 - 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a3d0 .quad 5404070034795315907 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a3d8 .quad -3203831230369745799 - 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a3e0 .quad -3539985255894009414 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a3e8 .quad -8919923546622172981 - 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a3f0 .quad -4424981569867511768 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a3f8 .quad -6538218414850328322 - 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a400 .quad 8303831092947774002 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a408 .quad -3561087000135522498 - 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a410 .quad 578208414664970847 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a418 .quad -9143208402725783417 - 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a420 .quad -3888925500096174345 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a428 .quad -6817324484979841368 - 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a430 .quad -249470856692830027 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a438 .quad -3909969587797413806 - 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a440 .quad -4923524589293425438 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a448 .quad -275775966319379353 - 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a450 .quad -3077202868308390899 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a458 .quad -7089889006590693952 - 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a460 .quad 765182433041899281 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a468 .quad -4250675239810979535 - 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a470 .quad 5568164059729762005 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a478 .quad -701658031336336515 - 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a480 .quad 5785945546544795205 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a488 .quad -7356065297226292178 - 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a490 .quad -1990940103673781802 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a498 .quad -4583395603105477319 - 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a4a0 .quad 6734696907262548556 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a4a8 .quad -1117558485454458744 - 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a4b0 .quad 4209185567039092847 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a4b8 .quad -7616003081050118571 - 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a4c0 .quad -8573576096483297653 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a4c8 .quad -4908317832885260310 - 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a4d0 .quad 3118087934678041646 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a4d8 .quad -1523711272679187483 - 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a4e0 .quad 4254647968387469981 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a4e8 .quad -7869848573065574033 - 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a4f0 .quad 706623942056949572 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a4f8 .quad -5225624697904579637 - 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a500 .quad -3728406090856200939 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a508 .quad -1920344853953336643 - 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a510 .quad -6941939825212513491 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a518 .quad -8117744561361917258 - 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a520 .quad 5157633273766521849 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a528 .quad -5535494683275008668 - 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a530 .quad 6447041592208152311 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a538 .quad -2307682335666372931 - 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a540 .quad 6335244004343789146 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a548 .quad -8359830487432564938 - 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a550 .quad -1304317031425039375 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a558 .quad -5838102090863318269 - 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a560 .quad -1630396289281299219 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a568 .quad -2685941595151759932 - 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a570 .quad 1286845328412881940 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a578 .quad -8596242524610931813 - 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a580 .quad -3003129357911285479 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a588 .quad -6133617137336276863 - 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a590 .quad 5469460339465668959 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a598 .quad -3055335403242958174 - 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a5a0 .quad 8030098730593431003 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a5a8 .quad -8827113654667930715 - 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a5b0 .quad -3797434642040374958 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a5b8 .quad -6422206049907525490 - 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a5c0 .quad 9088264752731695015 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a5c8 .quad -3416071543957018958 - 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a5d0 .quad -8154892584824854328 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a5d8 .quad -9052573742614218705 - 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a5e0 .quad 8253128342678483706 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a5e8 .quad -6704031159840385477 - 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a5f0 .quad 5704724409920716729 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a5f8 .quad -3768352931373093942 - 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a600 .quad -2092466524453879896 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a608 .quad -98755145788979524 - 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a610 .quad 998051431430019017 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a618 .quad -6979250993759194058 - 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a620 .quad -7975807747567252037 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a628 .quad -4112377723771604669 - 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a630 .quad 8476984389250486570 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a638 .quad -528786136287117932 - 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a640 .quad -3925256793573221702 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a648 .quad -7248020362820530564 - 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a650 .quad -294884973539139224 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a658 .quad -4448339435098275301 - 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a660 .quad -368606216923924029 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a668 .quad -948738275445456222 - 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a670 .quad -2536221894791146470 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a678 .quad -7510490449794491995 - 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a680 .quad 6053094668365842720 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a688 .quad -4776427043815727089 - 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a690 .quad 2954682317029915496 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a698 .quad -1358847786342270957 - 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a6a0 .quad -459166561069996767 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a6a8 .quad -7766808894105001205 - 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a6b0 .quad -573958201337495959 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a6b8 .quad -5096825099203863602 - 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a6c0 .quad -5329133770099257852 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a6c8 .quad -1759345355577441598 - 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a6d0 .quad -5636551615525730110 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a6d8 .quad -8017119874876982855 - 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a6e0 .quad 2177682517447613171 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a6e8 .quad -5409713825168840664 - 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a6f0 .quad 2722103146809516464 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a6f8 .quad -2150456263033662926 - 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a700 .quad 6313000485183335694 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a708 .quad -8261564192037121185 - 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a710 .quad 3279564588051781713 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a718 .quad -5715269221619013577 - 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a720 .quad -512230283362660763 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a728 .quad -2532400508596379068 - 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a730 .quad 1985699082112030975 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a738 .quad -8500279345513818773 - 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a740 .quad -2129562165787349185 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a748 .quad -6013663163464885563 - 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a750 .quad 6561419329620589327 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a758 .quad -2905392935903719049 - 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a760 .quad -7428327965055601431 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a768 .quad -8733399612580906262 - 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a770 .quad 4549648098962661924 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a778 .quad -6305063497298744923 - 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000a780 .quad -8147997931578836307 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000a788 .quad -3269643353196043250 - 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000a790 .quad 1825030320404309164 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000a798 .quad -8961056123388608887 - 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000a7a0 .quad 6892973918932774359 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000a7a8 .quad -6589634135808373205 - 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000a7b0 .quad 4004531380238580045 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000a7b8 .quad -3625356651333078602 - 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000a7c0 .quad -2108853905778275376 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000a7c8 .quad -9183376934724255983 - 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000a7d0 .quad 6587304654631931588 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000a7d8 .quad -6867535149977932074 - 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000a7e0 .quad -989241218564861323 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000a7e8 .quad -3972732919045027189 - 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000a7f0 .quad -1236551523206076654 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000a7f8 .quad -354230130378896082 - 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000a800 .quad 6144684325637283947 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000a808 .quad -7138922859127891907 - 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000a810 .quad -6154202648235558778 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000a818 .quad -4311967555482476980 - 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000a820 .quad -3081067291867060568 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000a828 .quad -778273425925708321 - 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000a830 .quad -1925667057416912855 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000a838 .quad -7403949918844649557 - 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000a840 .quad -2407083821771141069 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000a848 .quad -4643251380128424042 - 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000a850 .quad -7620540795641314240 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000a858 .quad -1192378206733142148 - 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000a860 .quad -2456994988062127448 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000a868 .quad -7662765406849295699 - 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000a870 .quad 6152128301777116498 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000a878 .quad -4966770740134231719 - 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000a880 .quad -6144897678060768090 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000a888 .quad -1596777406740401745 - 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000a890 .quad -3840561048787980056 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000a898 .quad -7915514906853832947 - 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000a8a0 .quad 4422670725869800738 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000a8a8 .quad -5282707615139903279 - 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000a8b0 .quad -8306719647944912790 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000a8b8 .quad -1991698500497491195 - 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000a8c0 .quad 8643358275316593218 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000a8c8 .quad -8162340590452013853 - 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000a8d0 .quad 6192511825718353619 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000a8d8 .quad -5591239719637629412 - 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000a8e0 .quad 7740639782147942024 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000a8e8 .quad -2377363631119648861 - 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000a8f0 .quad 2532056854628769813 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000a8f8 .quad -8403381297090862394 - 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000a900 .quad -6058300968568813542 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000a908 .quad -5892540602936190089 - 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000a910 .quad -7572876210711016927 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000a918 .quad -2753989735242849707 - 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000a920 .quad 9102010423587778132 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000a928 .quad -8638772612167862923 - 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000a930 .quad -2457545025797441047 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000a938 .quad -6186779746782440750 - 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000a940 .quad -7683617300674189212 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000a948 .quad -3121788665050663033 - 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000a950 .quad -4802260812921368258 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000a958 .quad -8868646943297746252 - 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000a960 .quad -1391139997724322418 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000a968 .quad -6474122660694794911 - 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000a970 .quad 7484447039699372786 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000a978 .quad -3480967307441105734 - 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000a980 .quad -9157278655470055721 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000a988 .quad -9093133594791772940 - 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000a990 .quad -6834912300910181747 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000a998 .quad -6754730975062328271 - 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000a9a0 .quad 679731660717048624 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000a9a8 .quad -3831727700400522434 - 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000a9b0 .quad -8373707460958465028 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000a9b8 .quad -177973607073265139 - 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000a9c0 .quad 8601490892183123069 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000a9c8 .quad -7028762532061872568 - 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000a9d0 .quad -7694880458480647779 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000a9d8 .quad -4174267146649952806 - 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000a9e0 .quad 4216457482181353988 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000a9e8 .quad -606147914885053103 - 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000a9f0 .quad -4282243101277735614 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000a9f8 .quad -7296371474444240046 - 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000aa00 .quad 8482254178684994195 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000aa08 .quad -4508778324627912153 - 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000aa10 .quad 5991131704928854840 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000aa18 .quad -1024286887357502287 - 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000aa20 .quad -3173071712060547581 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000aa28 .quad -7557708332239520786 - 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000aa30 .quad -8578025658503072380 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000aa38 .quad -4835449396872013078 - 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000aa40 .quad 3112525982153323237 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000aa48 .quad -1432625727662628443 - 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000aa50 .quad 4251171748059520975 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000aa58 .quad -7812920107430224633 - 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000aa60 .quad 702278666647013314 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000aa68 .quad -5154464115860392887 - 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000aa70 .quad 5489534351736154547 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000aa78 .quad -1831394126398103205 - 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000aa80 .quad 1125115960621402640 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000aa88 .quad -8062150356639896359 - 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000aa90 .quad 6018080969204141204 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000aa98 .quad -5466001927372482545 - 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000aaa0 .quad 2910915193077788601 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000aaa8 .quad -2220816390788215277 - 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000aab0 .quad -486521013540076077 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000aab8 .quad -8305539271883716405 - 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000aac0 .quad -608151266925095096 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000aac8 .quad -5770238071427257602 - 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000aad0 .quad -5371875102083756773 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000aad8 .quad -2601111570856684098 - 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000aae0 .quad 3560107088838733872 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000aae8 .quad -8543223759426509417 - 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000aaf0 .quad -161552157378970563 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000aaf8 .quad -6067343680855748868 - 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000ab00 .quad 4409745821703674700 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000ab08 .quad -2972493582642298180 - 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000ab10 .quad -6467280898289979121 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000ab18 .quad -8775337516792518219 - 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000ab20 .quad 1139270913992301907 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000ab28 .quad -6357485877563259869 - 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000ab30 .quad -3187597375937010520 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000ab38 .quad -3335171328526686933 - 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000ab40 .quad 7231123676894144233 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000ab48 .quad -9002011107970261189 - 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000ab50 .quad 4427218577690292387 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000ab58 .quad -6640827866535438582 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000ab60 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab70 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000ab78 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab80 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000ab88 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ab90 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000ab98 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aba0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000aba8 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abb0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000abb8 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abc0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000abc8 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abd0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000abd8 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abe0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000abe8 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000abf0 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000abf8 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac00 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000ac08 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac10 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000ac18 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac20 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000ac28 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac30 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000ac38 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac40 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000ac48 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac50 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000ac58 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac60 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000ac68 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac70 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000ac78 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac80 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000ac88 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ac90 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000ac98 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aca0 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000aca8 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acb0 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000acb8 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acc0 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000acc8 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acd0 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000acd8 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ace0 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000ace8 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000acf0 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000acf8 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ad00 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000ad08 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ad10 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000ad18 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ad20 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000ad28 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000ad30 .quad 4611686018427387904 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000ad38 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000ad40 .quad 5764607523034234880 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000ad48 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000ad50 .quad -6629298651489370112 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000ad58 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000ad60 .quad 5548434740920451072 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000ad68 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000ad70 .quad -1143914305352105984 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000ad78 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000ad80 .quad 7793479155164643328 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000ad88 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000ad90 .quad -4093209111326359552 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000ad98 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000ada0 .quad 4359273333062107136 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000ada8 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000adb0 .quad 5449091666327633920 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000adb8 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000adc0 .quad 2199678564482154496 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000adc8 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000add0 .quad 1374799102801346560 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000add8 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000ade0 .quad 1718498878501683200 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000ade8 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000adf0 .quad 6759809616554491904 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000adf8 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000ae00 .quad 6530724019560251392 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000ae08 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000ae10 .quad -1059967012404461568 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000ae18 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000ae20 .quad 7898413271349198848 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000ae28 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000ae30 .quad -1981020733047832576 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000ae38 .quad -8106986416796705681 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000ae40 .quad -2476275916309790720 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000ae48 .quad -5522047002568494197 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000ae50 .quad -3095344895387238400 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000ae58 .quad -2290872734783229842 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000ae60 .quad 4982938468024057856 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000ae68 .quad -8349324486880600507 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000ae70 .quad -7606384970252091392 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000ae78 .quad -5824969590173362730 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000ae80 .quad 4327076842467049472 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000ae88 .quad -2669525969289315508 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000ae90 .quad -6518949010312869888 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000ae98 .quad -8585982758446904049 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000aea0 .quad -8148686262891087360 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000aea8 .quad -6120792429631242157 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000aeb0 .quad 8260886245095692416 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000aeb8 .quad -3039304518611664792 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000aec0 .quad 5163053903184807760 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000aec8 .quad -8817094351773372351 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000aed0 .quad -7381240676301154012 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000aed8 .quad -6409681921289327535 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000aee0 .quad -3178808521666707 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000aee8 .quad -3400416383184271515 - 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000aef0 .quad -4613672773753429596 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000aef8 .quad -9042789267131251553 - 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000af00 .quad -5767090967191786995 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000af08 .quad -6691800565486676537 - 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000af10 .quad -7208863708989733744 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000af18 .quad -3753064688430957767 - 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000af20 .quad 212292400617608628 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000af28 .quad -79644842111309304 - 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000af30 .quad 132682750386005392 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000af38 .quad -6967307053960650171 - 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000af40 .quad 4777539456409894645 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000af48 .quad -4097447799023424810 - 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000af50 .quad -3251447716342407502 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000af58 .quad -510123730351893109 - 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000af60 .quad 7191217214140771119 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000af68 .quad -7236356359111015049 - 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000af70 .quad 4377335499248575995 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000af78 .quad -4433759430461380907 - 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000af80 .quad -8363388681221443718 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000af88 .quad -930513269649338230 - 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000af90 .quad -7532960934977096276 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000af98 .quad -7499099821171918250 - 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000afa0 .quad 4418856886560793367 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000afa8 .quad -4762188758037509908 - 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000afb0 .quad 5523571108200991709 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000afb8 .quad -1341049929119499481 - 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000afc0 .quad -8076983103442849942 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000afc8 .quad -7755685233340769032 - 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000afd0 .quad -5484542860876174524 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000afd8 .quad -5082920523248573386 - 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000afe0 .quad 6979379479186945558 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000afe8 .quad -1741964635633328828 - 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000aff0 .quad -4861259862362934835 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000aff8 .quad -8006256924911912374 - 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000b000 .quad 7758483227328495169 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000b008 .quad -5396135137712502563 - 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000b010 .quad -4136954021121544751 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000b018 .quad -2133482903713240300 - 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000b020 .quad -279753253987271518 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000b028 .quad -8250955842461857044 - 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000b030 .quad 4261994450943298507 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000b038 .quad -5702008784649933400 - 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000b040 .quad 5327493063679123134 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000b048 .quad -2515824962385028846 - 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b050 .quad 7941369183226839863 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b058 .quad -8489919629131724885 - 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b060 .quad 5315025460606161924 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b068 .quad -6000713517987268202 - 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b070 .quad -2579590211097073402 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b078 .quad -2889205879056697349 - 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b080 .quad 7611128154919104931 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b088 .quad -8723282702051517699 - 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b090 .quad -4321147861633282548 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b098 .quad -6292417359137009220 - 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b0a0 .quad -789748808614215280 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b0a8 .quad -3253835680493873621 - 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b0b0 .quad 8729779031470891258 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b0b8 .quad -8951176327949752869 - 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b0c0 .quad 6300537770911226168 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b0c8 .quad -6577284391509803182 - 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b0d0 .quad -1347699823215743098 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b0d8 .quad -3609919470959866074 - 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b0e0 .quad 6075216638131242420 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b0e8 .quad -9173728696990998152 - 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b0f0 .quad 7594020797664053025 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b0f8 .quad -6855474852811359786 - 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b100 .quad 269153960225290473 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b108 .quad -3957657547586811828 - 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b110 .quad 336442450281613091 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b118 .quad -335385916056126881 - 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b120 .quad 7127805559067090038 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b128 .quad -7127145225176161157 - 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b130 .quad 4298070930406474644 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b138 .quad -4297245513042813542 - 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b140 .quad -3850783373846682503 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b148 .quad -759870872876129024 - 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b150 .quad 9122475437414293195 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b158 .quad -7392448323188662496 - 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b160 .quad -7043649776941685122 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b168 .quad -4628874385558440216 - 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b170 .quad -4192876202749718498 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b178 .quad -1174406963520662366 - 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b180 .quad -4926390635932268014 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b188 .quad -7651533379841495835 - 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b190 .quad 3065383741939440791 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b198 .quad -4952730706374481889 - 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b1a0 .quad -779956341003086915 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b1a8 .quad -1579227364540714458 - 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b1b0 .quad 6430056314514152534 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b1b8 .quad -7904546130479028392 - 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b1c0 .quad 8037570393142690668 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b1c8 .quad -5268996644671397586 - 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b1d0 .quad 823590954573587527 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b1d8 .quad -1974559787411859078 - 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b1e0 .quad 5126430365035880108 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b1e8 .quad -8151628894773493780 - 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b1f0 .quad 6408037956294850135 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b1f8 .quad -5577850100039479321 - 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b200 .quad 3398361426941174765 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b208 .quad -2360626606621961247 - 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b210 .quad -4793553135802847628 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b218 .quad -8392920656779807636 - 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b220 .quad -1380255401326171631 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b228 .quad -5879464802547371641 - 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b230 .quad -1725319251657714539 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b238 .quad -2737644984756826647 - 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b240 .quad 3533361486141316317 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b248 .quad -8628557143114098510 - 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b250 .quad -4806670179178130411 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b258 .quad -6174010410465235234 - 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b260 .quad 7826720331309500698 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b268 .quad -3105826994654156138 - 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b270 .quad 280014188641050032 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b278 .quad -8858670899299929442 - 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b280 .quad -8873354301053463268 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b288 .quad -6461652605697523899 - 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b290 .quad -1868320839462053277 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b298 .quad -3465379738694516970 - 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b2a0 .quad 5749828502977298558 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b2a8 .quad -9083391364325154962 - 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b2b0 .quad -2036086408133152611 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b2b8 .quad -6742553186979055799 - 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b2c0 .quad 6678264026688335045 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b2c8 .quad -3816505465296431844 - 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b2d0 .quad 8347830033360418806 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b2d8 .quad -158945813193151901 - 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b2e0 .quad 2911550761636567802 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b2e8 .quad -7016870160886801794 - 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b2f0 .quad -5583933584809066056 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b2f8 .quad -4159401682681114339 - 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b300 .quad 2243455055843443238 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b308 .quad -587566084924005019 - 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b310 .quad 3708002419115845976 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b318 .quad -7284757830718584993 - 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b320 .quad 23317005467419566 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b328 .quad -4494261269970843337 - 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b330 .quad -4582539761593113446 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b338 .quad -1006140569036166268 - 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b340 .quad -558244341782001952 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b348 .quad -7546366883288685774 - 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b350 .quad -5309491445654890344 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b358 .quad -4821272585683469313 - 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b360 .quad -6636864307068612930 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b368 .quad -1414904713676948737 - 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b370 .quad -4148040191917883081 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b378 .quad -7801844473689174817 - 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b380 .quad -5185050239897353852 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b388 .quad -5140619573684080617 - 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b390 .quad -6481312799871692315 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b398 .quad -1814088448677712867 - 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b3a0 .quad -8662506518347195601 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b3a8 .quad -8051334308064652398 - 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b3b0 .quad 3006924907348169211 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b3b8 .quad -5452481866653427593 - 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b3c0 .quad -853029884242176390 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b3c8 .quad -2203916314889396588 - 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b3d0 .quad 1772699331562333708 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b3d8 .quad -8294976724446954723 - 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b3e0 .quad 6827560182880305039 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b3e8 .quad -5757034887131305500 - 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b3f0 .quad 8534450228600381299 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b3f8 .quad -2584607590486743971 - 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b400 .quad 7639874402088932264 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b408 .quad -8532908771695296838 - 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b410 .quad 326470965756389522 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b418 .quad -6054449946191733143 - 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b420 .quad 5019774725622874806 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b428 .quad -2956376414312278525 - 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b430 .quad 831516194300602802 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b438 .quad -8765264286586255934 - 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b440 .quad -8183976793979022306 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b448 .quad -6344894339805432014 - 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b450 .quad 3605087062808385830 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b458 .quad -3319431906329402113 - 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b460 .quad 9170708441896323000 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b468 .quad -8992173969096958177 - 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b470 .quad 6851699533943015846 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b478 .quad -6628531442943809817 - 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b480 .quad 3952938399001381903 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b488 .quad -3673978285252374367 - 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b490 .quad -4446942528265218167 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b498 .quad -9213765455923815836 - 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b4a0 .quad -946992141904134804 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b4a8 .quad -6905520801477381891 - 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b4b0 .quad 8039631859474607303 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b4b8 .quad -4020214983419339459 - 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b4c0 .quad -3785518230938904583 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b4c8 .quad -413582710846786420 - 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b4d0 .quad -60105885123121413 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b4d8 .quad -7176018221920323369 - 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b4e0 .quad -75132356403901766 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b4e8 .quad -4358336758973016307 - 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b4f0 .quad 9129456591349898601 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b4f8 .quad -836234930288882479 - 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b500 .quad -1211618658047395231 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b508 .quad -7440175859071633406 - 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b510 .quad -6126209340986631942 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b518 .quad -4688533805412153853 - 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b520 .quad -7657761676233289928 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b528 .quad -1248981238337804412 - 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b530 .quad -2480258038432112253 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b538 .quad -7698142301602209614 - 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b540 .quad -7712008566467528220 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b548 .quad -5010991858575374113 - 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b550 .quad 8806733365625141341 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b558 .quad -1652053804791829737 - 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b560 .quad -6025006692552756422 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b568 .quad -7950062655635975442 - 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b570 .quad 6303799689591218185 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b578 .quad -5325892301117581398 - 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b580 .quad -1343622424865753077 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b588 .quad -2045679357969588844 - 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b590 .quad 1466078993672598279 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b598 .quad -8196078626372074883 - 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b5a0 .quad 6444284760518135752 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b5a8 .quad -5633412264537705700 - 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b5b0 .quad 8055355950647669691 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b5b8 .quad -2430079312244744221 - 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b5c0 .quad 2728754459941099604 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b5c8 .quad -8436328597794046994 - 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b5d0 .quad -5812428961928401302 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b5d8 .quad -5933724728815170839 - 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b5e0 .quad 1957835834444274180 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b5e8 .quad -2805469892591575644 - 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b5f0 .quad -7999724640327104446 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b5f8 .quad -8670947710510816634 - 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b600 .quad 3835402254873283155 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b608 .quad -6226998619711132888 - 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b610 .quad 4794252818591603944 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b618 .quad -3172062256211528206 - 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b620 .quad 7608094030047140369 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b628 .quad -8900067937773286985 - 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b630 .quad 4898431519131537557 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b638 .quad -6513398903789220827 - 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b640 .quad -7712018656367741765 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b648 .quad -3530062611309138130 - 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b650 .quad 2097517367411243253 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b658 .quad -9123818159709293187 - 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b660 .quad 7233582727691441970 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b668 .quad -6793086681209228580 - 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b670 .quad 9041978409614302462 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b678 .quad -3879672333084147821 - 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b680 .quad 6690786993590490174 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b688 .quad -237904397927796872 - 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b690 .quad 4181741870994056359 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b698 .quad -7066219276345954901 - 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b6a0 .quad 615491320315182544 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b6a8 .quad -4221088077005055722 - 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b6b0 .quad -8454007886460797627 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b6b8 .quad -664674077828931749 - 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b6c0 .quad 3939617107816777291 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b6c8 .quad -7332950326284164199 - 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b6d0 .quad -8910536670511192099 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b6d8 .quad -4554501889427817345 - 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b6e0 .quad 7308573235570561493 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b6e8 .quad -1081441343357383777 - 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b6f0 .quad -6961356773836868827 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b6f8 .quad -7593429867239446717 - 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b700 .quad -8701695967296086034 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b708 .quad -4880101315621920492 - 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b710 .quad -6265433940692719638 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b718 .quad -1488440626100012711 - 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b720 .quad 695789805494438130 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b728 .quad -7847804418953589800 - 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b730 .quad 869737256868047663 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b738 .quad -5198069505264599346 - 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b740 .quad -8136200465769716230 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b748 .quad -1885900863153361279 - 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b750 .quad -473439272678684740 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b758 .quad -8096217067111932656 - 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b760 .quad 4019886927579031980 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b768 .quad -5508585315462527915 - 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b770 .quad -8810199395808373737 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b778 .quad -2274045625900771990 - 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000b780 .quad -7812217631593927538 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000b788 .quad -8338807543829064350 - 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000b790 .quad 4069786015789754290 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000b798 .quad -5811823411358942533 - 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000b7a0 .quad 475546501309804958 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000b7a8 .quad -2653093245771290262 - 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000b7b0 .quad 4908902581746016003 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000b7b8 .quad -8575712306248138270 - 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000b7c0 .quad -3087243809672255805 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000b7c8 .quad -6107954364382784934 - 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000b7d0 .quad -8470740780517707660 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000b7d8 .quad -3023256937051093263 - 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000b7e0 .quad -682526969396179383 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000b7e8 .quad -8807064613298015146 - 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000b7f0 .quad -5464844730172612133 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000b7f8 .quad -6397144748195131028 - 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000b800 .quad -2219369894288377262 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000b808 .quad -3384744916816525881 - 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000b810 .quad -1387106183930235789 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000b818 .quad -9032994600651410532 - 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000b820 .quad 2877803288514593168 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000b828 .quad -6679557232386875260 - 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000b830 .quad 3597254110643241460 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000b838 .quad -3737760522056206171 - 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000b840 .quad 9108253656731439729 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000b848 .quad -60514634142869810 - 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000b850 .quad 1080972517029761926 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000b858 .quad -6955350673980375487 - 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000b860 .quad 5962901664714590312 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000b868 .quad -4082502324048081455 - 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000b870 .quad -6381430974388925822 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000b878 .quad -491441886632713915 - 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000b880 .quad -8600080377420466543 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000b888 .quad -7224680206786528053 - 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000b890 .quad 7696643601933968437 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000b898 .quad -4419164240055772162 - 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000b8a0 .quad 397432465562684739 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000b8a8 .quad -912269281642327298 - 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000b8b0 .quad -4363290727450709942 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000b8b8 .quad -7487697328667536418 - 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000b8c0 .quad 8380944645968776284 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000b8c8 .quad -4747935642407032618 - 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000b8d0 .quad 1252808770606194547 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000b8d8 .quad -1323233534581402868 - 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000b8e0 .quad -8440366555225904216 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000b8e8 .quad -7744549986754458649 - 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000b8f0 .quad 7896285879677171346 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000b8f8 .quad -5069001465015685407 - 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000b900 .quad -3964700705685699529 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000b908 .quad -1724565812842218855 - 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000b910 .quad 2133748077373825698 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000b918 .quad -7995382660667468640 - 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000b920 .quad 2667185096717282123 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000b928 .quad -5382542307406947896 - 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000b930 .quad 3333981370896602653 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000b938 .quad -2116491865831296966 - 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000b940 .quad 6695424375237764562 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000b948 .quad -8240336443785642460 - 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000b950 .quad 8369280469047205703 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000b958 .quad -5688734536304665171 - 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000b960 .quad -3373457468973156583 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000b968 .quad -2499232151953443560 - 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000b970 .quad -9025939945749304721 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000b978 .quad -8479549122611984081 - 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000b980 .quad 7164319141522920715 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000b988 .quad -5987750384837592197 - 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000b990 .quad 4343712908476262990 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000b998 .quad -2873001962619602342 - 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000b9a0 .quad 7326506586225052273 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000b9a8 .quad -8713155254278333320 - 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000b9b0 .quad 9158133232781315341 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000b9b8 .quad -6279758049420528746 - 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000b9c0 .quad 2224294504121868368 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000b9c8 .quad -3238011543348273028 - 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000b9d0 .quad -7833187971778608078 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000b9d8 .quad -8941286242233752499 - 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000b9e0 .quad -568112927868484289 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000b9e8 .quad -6564921784364802720 - 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000b9f0 .quad 3901544858591782542 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000b9f8 .quad -3594466212028615495 - 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ba00 .quad -4479063491021217767 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ba08 .quad -9164070410158966541 - 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000ba10 .quad -5598829363776522209 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000ba18 .quad -6843401994271320272 - 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ba20 .quad -2386850686293264857 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ba28 .quad -3942566474411762436 - 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000ba30 .quad 1628122660560806833 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000ba38 .quad -316522074587315140 - 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000ba40 .quad -8205795374004271538 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000ba48 .quad -7115355324258153819 - 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000ba50 .quad -1033872180650563614 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000ba58 .quad -4282508136895304370 - 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000ba60 .quad -5904026244240592421 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000ba68 .quad -741449152691742558 - 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000ba70 .quad -5995859411864064215 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000ba78 .quad -7380934748073420955 - 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000ba80 .quad 1728547772024695539 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000ba88 .quad -4614482416664388289 - 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000ba90 .quad -2451001303396518480 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000ba98 .quad -1156417002403097458 - 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000baa0 .quad 5385653213018257806 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000baa8 .quad -7640289654143017767 - 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000bab0 .quad -7102991539009341455 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000bab8 .quad -4938676049251384305 - 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000bac0 .quad -8878739423761676819 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000bac8 .quad -1561659043136842477 - 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000bad0 .quad 3674159897003727796 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000bad8 .quad -7893565929601608404 - 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000bae0 .quad 4592699871254659745 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000bae8 .quad -5255271393574622601 - 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000baf0 .quad 1129188820640936778 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000baf8 .quad -1957403223540890347 - 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bb00 .quad 3011586022114279438 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bb08 .quad -8140906042354138323 - 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bb10 .quad 8376168546070237202 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bb18 .quad -5564446534515285000 - 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bb20 .quad -7976533391121755114 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bb28 .quad -2343872149716718346 - 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bb30 .quad 1932195658189984910 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bb38 .quad -8382449121214030822 - 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000bb40 .quad -6808127464117294671 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000bb48 .quad -5866375383090150624 - 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bb50 .quad -3898473311719230434 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bb58 .quad -2721283210435300376 - 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bb60 .quad 9092669226243950738 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bb68 .quad -8618331034163144591 - 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bb70 .quad -2469221522477225289 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bb78 .quad -6161227774276542835 - 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000bb80 .quad 6136845133758244197 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000bb88 .quad -3089848699418290639 - 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000bb90 .quad -3082000819042179233 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000bb98 .quad -8848684464777513506 - 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000bba0 .quad -8464187042230111945 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000bba8 .quad -6449169562544503978 - 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000bbb0 .quad 3254824252494523781 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000bbb8 .quad -3449775934753242068 - 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000bbc0 .quad -7189106879045698445 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000bbc8 .quad -9073638986861858149 - 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000bbd0 .quad -8986383598807123057 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000bbd8 .quad -6730362715149934782 - 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000bbe0 .quad 2602078556773259891 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000bbe8 .quad -3801267375510030573 - 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000bbf0 .quad -1359087822460813040 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000bbf8 .quad -139898200960150313 - 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000bc00 .quad -849429889038008150 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000bc08 .quad -7004965403241175802 - 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000bc10 .quad -5673473379724898091 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000bc18 .quad -4144520735624081848 - 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000bc20 .quad -2480155706228734710 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000bc28 .quad -568964901102714406 - 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000bc30 .quad -3855940325606653146 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000bc38 .quad -7273132090830278360 - 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000bc40 .quad -208239388580928528 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000bc48 .quad -4479729095110460046 - 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000bc50 .quad -4871985254153548564 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000bc58 .quad -987975350460687153 - 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000bc60 .quad -3044990783845967853 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000bc68 .quad -7535013621679011327 - 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000bc70 .quad 5417133557047315992 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000bc78 .quad -4807081008671376254 - 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000bc80 .quad -2451955090545630818 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000bc88 .quad -1397165242411832414 - 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000bc90 .quad -3838314940804713213 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000bc98 .quad -7790757304148477115 - 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000bca0 .quad 4425478360848884291 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000bca8 .quad -5126760611758208489 - 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000bcb0 .quad 920161932633717460 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000bcb8 .quad -1796764746270372707 - 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000bcc0 .quad 2880944217109767365 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000bcc8 .quad -8040506994060064798 - 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000bcd0 .quad -5622191765467566602 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000bcd8 .quad -5438947724147693094 - 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000bce0 .quad 6807318348447705459 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000bce8 .quad -2186998636757228463 - 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000bcf0 .quad -2662955059861265944 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000bcf8 .quad -8284403175614349646 - 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000bd00 .quad -7940379843253970334 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000bd08 .quad -5743817951090549153 - 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000bd10 .quad 8521269269642088699 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000bd18 .quad -2568086420435798537 - 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000bd20 .quad -6203421752542164323 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000bd28 .quad -8522583040413455942 - 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bd30 .quad 6080780864604458308 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bd38 .quad -6041542782089432023 - 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bd40 .quad -6234081974526590827 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bd48 .quad -2940242459184402125 - 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bd50 .quad 5327070802775656541 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bd58 .quad -8755180564631333184 - 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bd60 .quad 6658838503469570676 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bd68 .quad -6332289687361778576 - 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000bd70 .quad 8323548129336963345 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000bd78 .quad -3303676090774835316 - 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000bd80 .quad -4021154456019173717 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000bd88 .quad -8982326584375353929 - 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000bd90 .quad -5026443070023967147 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000bd98 .quad -6616222212041804507 - 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000bda0 .quad 2940318199324816875 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000bda8 .quad -3658591746624867729 - 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000bdb0 .quad 8755227902219092403 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000bdb8 .quad -9204148869281624187 - 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000bdc0 .quad -2891023177508298209 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000bdc8 .quad -6893500068174642330 - 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000bdd0 .quad -8225464990312760665 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000bdd8 .quad -4005189066790915008 - 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000bde0 .quad -5670145219463562927 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000bde8 .quad -394800315061255856 - 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000bdf0 .quad 7985374283903742931 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000bdf8 .quad -7164279224554366766 - 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000be00 .quad 758345818024902856 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000be08 .quad -4343663012265570553 - 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000be10 .quad -3663753745896259334 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000be18 .quad -817892746904575288 - 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000be20 .quad -9207375118826243940 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000be28 .quad -7428711994456441411 - 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000be30 .quad -2285846861678029117 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000be38 .quad -4674203974643163860 - 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000be40 .quad 1754377441329851508 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000be48 .quad -1231068949876566920 - 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000be50 .quad 1096485900831157192 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000be58 .quad -7686947121313936181 - 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000be60 .quad -3241078642388441414 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000be68 .quad -4996997883215032323 - 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000be70 .quad 5172023733869224041 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000be78 .quad -1634561335591402499 - 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000be80 .quad 5538357842881958977 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000be88 .quad -7939129862385708418 - 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000be90 .quad -2300424733252327086 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000be98 .quad -5312226309554747619 - 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000bea0 .quad 6347841120289366950 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000bea8 .quad -2028596868516046619 - 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000beb0 .quad 6273243709394548296 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000beb8 .quad -8185402070463610993 - 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000bec0 .quad 3229868618315797466 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000bec8 .quad -5620066569652125837 - 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000bed0 .quad -574350245532641071 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000bed8 .quad -2413397193637769393 - 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000bee0 .quad -358968903457900670 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000bee8 .quad -8425902273664687727 - 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000bef0 .quad 8774660907532399971 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000bef8 .quad -5920691823653471754 - 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000bf00 .quad 1744954097560724156 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000bf08 .quad -2789178761139451788 - 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000bf10 .quad -8132775725879323211 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000bf18 .quad -8660765753353239224 - 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000bf20 .quad -5554283638921766110 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000bf28 .quad -6214271173264161126 - 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000bf30 .quad 6892203506629956075 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000bf38 .quad -3156152948152813503 - 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000bf40 .quad -2609901835997359309 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000bf48 .quad -8890124620236590296 - 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000bf50 .quad 1349308723430688768 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000bf58 .quad -6500969756868349965 - 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000bf60 .quad -2925050114139026944 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000bf68 .quad -3514526177658049553 - 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000bf70 .quad -1828156321336891840 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000bf78 .quad -9114107888677362827 - 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000bf80 .quad 6938176635183661008 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000bf88 .quad -6780948842419315629 - 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000bf90 .quad 4061034775552188356 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000bf98 .quad -3864500034596756632 - 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000bfa0 .quad 5076293469440235445 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000bfa8 .quad -218939024818557886 - 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000bfb0 .quad 7784369436827535057 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000bfb8 .quad -7054365918152680535 - 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000bfc0 .quad -4104596259247744891 - 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000bfc8 .quad -4206271379263462765 - 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000bfd0 .quad -5130745324059681113 - 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000bfd8 .quad -646153205651940552 - 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000bfe0 .quad 8322499218531169064 - 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000bfe8 .quad -7321374781173544701 - 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000bff0 .quad 5791438004736573426 - 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000bff8 .quad -4540032458039542972 - 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000c000 .quad 7239297505920716783 - 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000c008 .quad -1063354554122040811 - 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000c010 .quad 6830403950414141941 - 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000c018 .quad -7582125623967357363 - 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000c020 .quad -5297053117264486286 - 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000c028 .quad -4865971011531808800 - 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000c030 .quad -2009630378153219953 - 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000c038 .quad -1470777745987373096 - 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000c040 .quad -8173548013986844327 - 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000c048 .quad -7836765118883190041 - 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c050 .quad 8229809056225996208 - 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c058 .quad -5184270380176599647 - 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c060 .quad -3547796734999668452 - 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c068 .quad -1868651956793361655 - 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c070 .quad 2394313059052595121 - 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c078 .quad -8085436500636932890 - 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c080 .quad -6230480713039031907 - 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c088 .quad -5495109607368778209 - 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c090 .quad -7788100891298789883 - 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c098 .quad -2257200990783584857 - 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c0a0 .quad -4867563057061743677 - 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c0a8 .quad -8328279646880822392 - 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c0b0 .quad -1472767802899791692 - 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c0b8 .quad -5798663540173640086 - 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c0c0 .quad -6452645772052127519 - 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c0c8 .quad -2636643406789662203 - 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c0d0 .quad -8644589625959967604 - 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c0d8 .quad -8565431156884620733 - 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c0e0 .quad 7641007041259592112 - 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c0e8 .quad -6095102927678388012 - 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c0f0 .quad -8895485272135061476 - 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c0f8 .quad -3007192641170597111 - 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c100 .quad -947992276657025519 - 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c108 .quad -8797024428372705051 - 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c110 .quad 8038381691033493909 - 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c118 .quad -6384594517038493409 - 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c120 .quad 5436291095364479483 - 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c128 .quad -3369057127870728857 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000c140 .p2align 4, 0x00 - //0x0000c140 _POW_TAB - 0x01, 0x00, 0x00, 0x00, //0x0000c140 .long 1 - 0x03, 0x00, 0x00, 0x00, //0x0000c144 .long 3 - 0x06, 0x00, 0x00, 0x00, //0x0000c148 .long 6 - 0x09, 0x00, 0x00, 0x00, //0x0000c14c .long 9 - 0x0d, 0x00, 0x00, 0x00, //0x0000c150 .long 13 - 0x10, 0x00, 0x00, 0x00, //0x0000c154 .long 16 - 0x13, 0x00, 0x00, 0x00, //0x0000c158 .long 19 - 0x17, 0x00, 0x00, 0x00, //0x0000c15c .long 23 - 0x1a, 0x00, 0x00, 0x00, //0x0000c160 .long 26 - //0x0000c164 .p2align 2, 0x00 - //0x0000c164 _MASK_USE_NUMBER - 0x02, 0x00, 0x00, 0x00, //0x0000c164 .long 2 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c168 .p2align 4, 0x00 - //0x0000c170 _Digits - 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c170 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' - 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c180 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' - 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c190 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c1a0 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c1b0 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c1c0 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c1d0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' - 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c1e0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' - 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c1f0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' - 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c200 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' - 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c210 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' - 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c220 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' - 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c230 QUAD $0x3939383937393639 // .ascii 8, '96979899' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c238 .p2align 4, 0x00 - //0x0000c240 _pow10_ceil_sig.g - 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c240 .quad -38366372719436721 - 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c248 .quad 2731688931043774331 - 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c250 .quad -6941508010590729807 - 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c258 .quad 8624834609543440813 - 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c260 .quad -4065198994811024355 - 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c268 .quad -3054014793352862696 - 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c270 .quad -469812725086392539 - 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c278 .quad 5405853545163697438 - 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c280 .quad -7211161980820077193 - 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c288 .quad 5684501474941004851 - 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c290 .quad -4402266457597708587 - 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c298 .quad 2493940825248868160 - 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c2a0 .quad -891147053569747830 - 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c2a8 .quad 7729112049988473104 - 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c2b0 .quad -7474495936122174250 - 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c2b8 .quad -9004363024039368022 - 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c2c0 .quad -4731433901725329908 - 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c2c8 .quad 2579604275232953684 - 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c2d0 .quad -1302606358729274481 - 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c2d8 .quad 3224505344041192105 - 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c2e0 .quad -7731658001846878407 - 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c2e8 .quad 8932844867666826922 - 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c2f0 .quad -5052886483881210105 - 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c2f8 .quad -2669001970698630060 - 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c300 .quad -1704422086424124727 - 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c308 .quad -3336252463373287575 - 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c310 .quad -7982792831656159810 - 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c318 .quad 2526528228819083170 - 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c320 .quad -5366805021142811859 - 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c328 .quad -6065211750830921845 - 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c330 .quad -2096820258001126919 - 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c338 .quad 1641857348316123501 - 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c340 .quad -8228041688891786181 - 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c348 .quad -5891368184943504668 - 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c350 .quad -5673366092687344822 - 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c358 .quad -7364210231179380835 - 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c360 .quad -2480021597431793123 - 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c368 .quad 4629795266307937668 - 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c370 .quad -8467542526035952558 - 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c378 .quad 5199465050656154995 - 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c380 .quad -5972742139117552794 - 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c388 .quad -2724040723534582064 - 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c390 .quad -2854241655469553088 - 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c398 .quad -8016736922845615485 - 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c3a0 .quad -8701430062309552536 - 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c3a8 .quad 6518754469289960082 - 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c3b0 .quad -6265101559459552766 - 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c3b8 .quad 8148443086612450103 - 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c3c0 .quad -3219690930897053053 - 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c3c8 .quad 962181821410786820 - 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c3d0 .quad -8929835859451740015 - 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c3d8 .quad -1704479370831952189 - 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c3e0 .quad -6550608805887287114 - 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c3e8 .quad 7092772823314835571 - 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c3f0 .quad -3576574988931720989 - 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c3f8 .quad -357406007711231344 - 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c400 .quad -9152888395723407474 - 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c408 .quad 8999993282035256218 - 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c410 .quad -6829424476226871438 - 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c418 .quad 2026619565689294465 - 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c420 .quad -3925094576856201394 - 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c428 .quad -6690097579743157727 - 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c430 .quad -294682202642863838 - 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c438 .quad 5472436080603216553 - 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c440 .quad -7101705404292871755 - 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c448 .quad 8031958568804398250 - 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c450 .quad -4265445736938701790 - 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c458 .quad -3795109844276665900 - 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c460 .quad -720121152745989333 - 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c468 .quad 9091170749936331337 - 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c470 .quad -7367604748107325189 - 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c478 .quad 3376138709496513134 - 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c480 .quad -4597819916706768583 - 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c488 .quad -391512631556746487 - 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c490 .quad -1135588877456072824 - 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c498 .quad 8733981247408842699 - 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c4a0 .quad -7627272076051127371 - 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c4a8 .quad 5458738279630526687 - 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c4b0 .quad -4922404076636521310 - 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c4b8 .quad -7011635205744005353 - 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c4c0 .quad -1541319077368263733 - 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c4c8 .quad 5070514048102157021 - 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c4d0 .quad -7880853450996246689 - 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c4d8 .quad 863228270850154186 - 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c4e0 .quad -5239380795317920458 - 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c4e8 .quad -3532650679864695172 - 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c4f0 .quad -1937539975720012668 - 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c4f8 .quad -9027499368258256869 - 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c500 .quad -8128491512466089774 - 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c508 .quad -3336344095947716591 - 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c510 .quad -5548928372155224313 - 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c518 .quad -8782116138362033642 - 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c520 .quad -2324474446766642487 - 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c528 .quad 7469098900757009563 - 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c530 .quad -8370325556870233411 - 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c538 .quad -2249342214667950879 - 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c540 .quad -5851220927660403859 - 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c548 .quad 6411694268519837209 - 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c550 .quad -2702340141148116920 - 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c558 .quad -5820440219632367201 - 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c560 .quad -8606491615858654931 - 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c568 .quad 7891439908798240260 - 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c570 .quad -6146428501395930760 - 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c578 .quad -3970758169284363388 - 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c580 .quad -3071349608317525546 - 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c588 .quad -351761693178066331 - 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c590 .quad -8837122532839535322 - 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c598 .quad 6697677969404790400 - 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c5a0 .quad -6434717147622031249 - 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c5a8 .quad -851274575098787809 - 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c5b0 .quad -3431710416100151157 - 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c5b8 .quad -1064093218873484761 - 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c5c0 .quad -9062348037703676329 - 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c5c8 .quad 8558313775058847833 - 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c5d0 .quad -6716249028702207507 - 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c5d8 .quad 6086206200396171887 - 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c5e0 .quad -3783625267450371480 - 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c5e8 .quad -6227300304786948854 - 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c5f0 .quad -117845565885576446 - 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c5f8 .quad -3172439362556298163 - 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c600 .quad -6991182506319567135 - 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c608 .quad -4288617610811380304 - 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c610 .quad -4127292114472071014 - 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c618 .quad 3862600023340550428 - 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c620 .quad -547429124662700864 - 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c628 .quad -4395122007679087773 - 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c630 .quad -7259672230555269896 - 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c638 .quad 8782263791269039902 - 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c640 .quad -4462904269766699466 - 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c648 .quad -7468914334623251739 - 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c650 .quad -966944318780986428 - 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c658 .quad 4498915137003099038 - 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c660 .quad -7521869226879198374 - 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c668 .quad -6411550076227838909 - 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c670 .quad -4790650515171610063 - 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c678 .quad 5820620459997365076 - 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c680 .quad -1376627125537124675 - 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c688 .quad -6559282480285457367 - 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c690 .quad -7777920981101784778 - 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c698 .quad -8711237568605798758 - 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c6a0 .quad -5110715207949843068 - 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c6a8 .quad 2946011094524915264 - 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c6b0 .quad -1776707991509915931 - 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c6b8 .quad 3682513868156144080 - 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c6c0 .quad -8027971522334779313 - 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c6c8 .quad 4607414176811284002 - 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c6d0 .quad -5423278384491086237 - 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c6d8 .quad 1147581702586717098 - 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c6e0 .quad -2167411962186469893 - 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c6e8 .quad -3177208890193991531 - 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c6f0 .quad -8272161504007625539 - 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c6f8 .quad 7237616480483531101 - 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c700 .quad -5728515861582144020 - 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c708 .quad -4788037454677749836 - 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c710 .quad -2548958808550292121 - 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c718 .quad -1373360799919799391 - 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c720 .quad -8510628282985014432 - 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c728 .quad -858350499949874619 - 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c730 .quad -6026599335303880135 - 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c738 .quad 3538747893490044630 - 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c740 .quad -2921563150702462265 - 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c748 .quad 9035120885289943692 - 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c750 .quad -8743505996830120772 - 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c758 .quad -5882264492762254952 - 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c760 .quad -6317696477610263061 - 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c768 .quad -2741144597525430787 - 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c770 .quad -3285434578585440922 - 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c778 .quad -3426430746906788484 - 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000c780 .quad -8970925639256982432 - 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000c788 .quad 4776009810824339054 - 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000c790 .quad -6601971030643840136 - 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000c798 .quad 5970012263530423817 - 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000c7a0 .quad -3640777769877412266 - 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000c7a8 .quad 7462515329413029772 - 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000c7b0 .quad -9193015133814464522 - 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000c7b8 .quad 52386062455755703 - 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000c7c0 .quad -6879582898840692749 - 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000c7c8 .quad -9157889458785081179 - 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000c7d0 .quad -3987792605123478032 - 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000c7d8 .quad 6999382250228200142 - 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000c7e0 .quad -373054737976959636 - 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000c7e8 .quad 8749227812785250178 - 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000c7f0 .quad -7150688238876681629 - 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000c7f8 .quad -3755104653863994447 - 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000c800 .quad -4326674280168464132 - 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000c808 .quad -4693880817329993059 - 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000c810 .quad -796656831783192261 - 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000c818 .quad -1255665003235103419 - 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000c820 .quad -7415439547505577019 - 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000c828 .quad 8438581409832836171 - 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000c830 .quad -4657613415954583370 - 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000c838 .quad -3286831292991118498 - 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000c840 .quad -1210330751515841308 - 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000c848 .quad -8720225134666286027 - 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000c850 .quad -7673985747338482674 - 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000c858 .quad -3144297699952734815 - 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000c860 .quad -4980796165745715438 - 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000c868 .quad -8542058143368306422 - 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000c870 .quad -1614309188754756393 - 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000c878 .quad 3157485376071780684 - 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000c880 .quad -7926472270612804602 - 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000c888 .quad 8890957387685944784 - 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000c890 .quad -5296404319838617848 - 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000c898 .quad 1890324697752655171 - 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000c8a0 .quad -2008819381370884406 - 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000c8a8 .quad 2362905872190818964 - 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000c8b0 .quad -8173041140997884610 - 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000c8b8 .quad 6088502188546649757 - 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000c8c0 .quad -5604615407819967859 - 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000c8c8 .quad -1612744301171463612 - 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000c8d0 .quad -2394083241347571919 - 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000c8d8 .quad 7207441660390446293 - 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000c8e0 .quad -8413831053483314306 - 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000c8e8 .quad -2412877989897052923 - 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000c8f0 .quad -5905602798426754978 - 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000c8f8 .quad -7627783505798704058 - 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000c900 .quad -2770317479606055818 - 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000c908 .quad 4300328673033783640 - 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000c910 .quad -8648977452394866743 - 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000c918 .quad -1923980597781273129 - 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000c920 .quad -6199535797066195524 - 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000c928 .quad 6818396289628184397 - 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000c930 .quad -3137733727905356501 - 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000c938 .quad 8522995362035230496 - 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000c940 .quad -8878612607581929669 - 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000c948 .quad 3021029092058325108 - 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000c950 .quad -6486579741050024183 - 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000c958 .quad -835399653354481519 - 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000c960 .quad -3496538657885142324 - 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000c968 .quad 8179122470161673909 - 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000c970 .quad -9102865688819295809 - 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000c978 .quad -4111420493003729615 - 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000c980 .quad -6766896092596731857 - 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000c988 .quad -5139275616254662019 - 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000c990 .quad -3846934097318526917 - 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000c998 .quad -6424094520318327523 - 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000c9a0 .quad -196981603220770742 - 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000c9a8 .quad -8030118150397909404 - 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000c9b0 .quad -7040642529654063570 - 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000c9b8 .quad -7324666853212387329 - 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000c9c0 .quad -4189117143640191558 - 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000c9c8 .quad 4679224488766679550 - 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000c9d0 .quad -624710411122851544 - 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000c9d8 .quad -3374341425896426371 - 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000c9e0 .quad -7307973034592864071 - 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000c9e8 .quad -9026492418826348337 - 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000c9f0 .quad -4523280274813692185 - 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000c9f8 .quad -2059743486678159614 - 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000ca00 .quad -1042414325089727327 - 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000ca08 .quad -2574679358347699518 - 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000ca10 .quad -7569037980822161435 - 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000ca18 .quad 3002511419460075706 - 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000ca20 .quad -4849611457600313890 - 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000ca28 .quad 8364825292752482536 - 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000ca30 .quad -1450328303573004458 - 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000ca38 .quad 1232659579085827362 - 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ca40 .quad -7823984217374209643 - 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ca48 .quad -3841273781498745803 - 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ca50 .quad -5168294253290374149 - 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ca58 .quad 4421779809981343555 - 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ca60 .quad -1848681798185579782 - 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ca68 .quad 915538744049291539 - 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ca70 .quad -8072955151507069220 - 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ca78 .quad 5183897733458195116 - 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000ca80 .quad -5479507920956448621 - 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000ca88 .quad 6479872166822743895 - 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000ca90 .quad -2237698882768172872 - 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000ca98 .quad 3488154190101041965 - 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000caa0 .quad -8316090829371189901 - 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000caa8 .quad 2180096368813151228 - 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000cab0 .quad -5783427518286599473 - 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000cab8 .quad -1886565557410948869 - 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000cac0 .quad -2617598379430861437 - 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000cac8 .quad -2358206946763686086 - 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000cad0 .quad -8553528014785370254 - 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000cad8 .quad 7749492695127472004 - 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000cae0 .quad -6080224000054324913 - 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000cae8 .quad 463493832054564197 - 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000caf0 .quad -2988593981640518238 - 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000caf8 .quad -4032318728359182658 - 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cb00 .quad -8785400266166405755 - 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cb08 .quad -4826042214438183113 - 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cb10 .quad -6370064314280619289 - 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cb18 .quad 3190819268807046917 - 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cb20 .quad -3350894374423386208 - 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cb28 .quad -623161932418579258 - 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cb30 .quad -9011838011655698236 - 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cb38 .quad -7307005235402693892 - 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000cb40 .quad -6653111496142234891 - 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000cb48 .quad -4522070525825979461 - 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cb50 .quad -3704703351750405709 - 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cb58 .quad 3570783879572301481 - 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cb60 .quad -19193171260619233 - 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cb68 .quad -148206168962011053 - 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cb70 .quad -6929524759678968877 - 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cb78 .quad -92628855601256908 - 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000cb80 .quad -4050219931171323192 - 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000cb88 .quad -115786069501571135 - 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000cb90 .quad -451088895536766085 - 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000cb98 .quad 4466953431550423985 - 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000cba0 .quad -7199459587351560659 - 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000cba8 .quad 486002885505321039 - 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000cbb0 .quad -4387638465762062920 - 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000cbb8 .quad 5219189625309039203 - 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000cbc0 .quad -872862063775190746 - 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000cbc8 .quad 6523987031636299003 - 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000cbd0 .quad -7463067817500576073 - 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000cbd8 .quad -534194123654701027 - 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000cbe0 .quad -4717148753448332187 - 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000cbe8 .quad -667742654568376284 - 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000cbf0 .quad -1284749923383027329 - 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000cbf8 .quad 8388693718644305453 - 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000cc00 .quad -7720497729755473937 - 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000cc08 .quad -6286281471915778851 - 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000cc10 .quad -5038936143766954517 - 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000cc18 .quad -7857851839894723564 - 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000cc20 .quad -1686984161281305242 - 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000cc28 .quad 8624429273841147160 - 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000cc30 .quad -7971894128441897632 - 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000cc38 .quad 778582277723329071 - 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000cc40 .quad -5353181642124984136 - 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000cc48 .quad 973227847154161339 - 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000cc50 .quad -2079791034228842266 - 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000cc58 .quad 1216534808942701674 - 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000cc60 .quad -8217398424034108273 - 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000cc68 .quad -3851351762838199358 - 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000cc70 .quad -5660062011615247437 - 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000cc78 .quad -4814189703547749197 - 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000cc80 .quad -2463391496091671392 - 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000cc88 .quad -6017737129434686497 - 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000cc90 .quad -8457148712698376476 - 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000cc98 .quad 7768129340171790700 - 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000cca0 .quad -5959749872445582691 - 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000cca8 .quad -8736582398494813241 - 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000ccb0 .quad -2838001322129590460 - 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000ccb8 .quad -1697355961263740744 - 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000ccc0 .quad -8691279853972075893 - 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000ccc8 .quad 1244995533423855987 - 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000ccd0 .quad -6252413799037706963 - 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000ccd8 .quad -3055441601647567920 - 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000cce0 .quad -3203831230369745799 - 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000cce8 .quad 5404070034795315908 - 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000ccf0 .quad -8919923546622172981 - 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000ccf8 .quad -3539985255894009413 - 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000cd00 .quad -6538218414850328322 - 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000cd08 .quad -4424981569867511767 - 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000cd10 .quad -3561087000135522498 - 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000cd18 .quad 8303831092947774003 - 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000cd20 .quad -9143208402725783417 - 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000cd28 .quad 578208414664970848 - 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cd30 .quad -6817324484979841368 - 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cd38 .quad -3888925500096174344 - 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000cd40 .quad -3909969587797413806 - 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000cd48 .quad -249470856692830026 - 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cd50 .quad -275775966319379353 - 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cd58 .quad -4923524589293425437 - 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cd60 .quad -7089889006590693952 - 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cd68 .quad -3077202868308390898 - 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000cd70 .quad -4250675239810979535 - 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000cd78 .quad 765182433041899282 - 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000cd80 .quad -701658031336336515 - 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000cd88 .quad 5568164059729762006 - 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000cd90 .quad -7356065297226292178 - 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000cd98 .quad 5785945546544795206 - 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000cda0 .quad -4583395603105477319 - 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000cda8 .quad -1990940103673781801 - 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000cdb0 .quad -1117558485454458744 - 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000cdb8 .quad 6734696907262548557 - 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000cdc0 .quad -7616003081050118571 - 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000cdc8 .quad 4209185567039092848 - 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000cdd0 .quad -4908317832885260310 - 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000cdd8 .quad -8573576096483297652 - 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000cde0 .quad -1523711272679187483 - 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000cde8 .quad 3118087934678041647 - 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000cdf0 .quad -7869848573065574033 - 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000cdf8 .quad 4254647968387469982 - 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000ce00 .quad -5225624697904579637 - 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000ce08 .quad 706623942056949573 - 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000ce10 .quad -1920344853953336643 - 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000ce18 .quad -3728406090856200938 - 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000ce20 .quad -8117744561361917258 - 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000ce28 .quad -6941939825212513490 - 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000ce30 .quad -5535494683275008668 - 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000ce38 .quad 5157633273766521850 - 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000ce40 .quad -2307682335666372931 - 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000ce48 .quad 6447041592208152312 - 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000ce50 .quad -8359830487432564938 - 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000ce58 .quad 6335244004343789147 - 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000ce60 .quad -5838102090863318269 - 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000ce68 .quad -1304317031425039374 - 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000ce70 .quad -2685941595151759932 - 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000ce78 .quad -1630396289281299218 - 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000ce80 .quad -8596242524610931813 - 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000ce88 .quad 1286845328412881941 - 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000ce90 .quad -6133617137336276863 - 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000ce98 .quad -3003129357911285478 - 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000cea0 .quad -3055335403242958174 - 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000cea8 .quad 5469460339465668960 - 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000ceb0 .quad -8827113654667930715 - 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000ceb8 .quad 8030098730593431004 - 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000cec0 .quad -6422206049907525490 - 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000cec8 .quad -3797434642040374957 - 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000ced0 .quad -3416071543957018958 - 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000ced8 .quad 9088264752731695016 - 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000cee0 .quad -9052573742614218705 - 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000cee8 .quad -8154892584824854327 - 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000cef0 .quad -6704031159840385477 - 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000cef8 .quad 8253128342678483707 - 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000cf00 .quad -3768352931373093942 - 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000cf08 .quad 5704724409920716730 - 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000cf10 .quad -98755145788979524 - 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000cf18 .quad -2092466524453879895 - 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000cf20 .quad -6979250993759194058 - 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000cf28 .quad 998051431430019018 - 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000cf30 .quad -4112377723771604669 - 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000cf38 .quad -7975807747567252036 - 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000cf40 .quad -528786136287117932 - 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000cf48 .quad 8476984389250486571 - 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000cf50 .quad -7248020362820530564 - 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000cf58 .quad -3925256793573221701 - 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000cf60 .quad -4448339435098275301 - 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000cf68 .quad -294884973539139223 - 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000cf70 .quad -948738275445456222 - 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000cf78 .quad -368606216923924028 - 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000cf80 .quad -7510490449794491995 - 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000cf88 .quad -2536221894791146469 - 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000cf90 .quad -4776427043815727089 - 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000cf98 .quad 6053094668365842721 - 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000cfa0 .quad -1358847786342270957 - 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000cfa8 .quad 2954682317029915497 - 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000cfb0 .quad -7766808894105001205 - 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000cfb8 .quad -459166561069996766 - 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000cfc0 .quad -5096825099203863602 - 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000cfc8 .quad -573958201337495958 - 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000cfd0 .quad -1759345355577441598 - 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000cfd8 .quad -5329133770099257851 - 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000cfe0 .quad -8017119874876982855 - 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000cfe8 .quad -5636551615525730109 - 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000cff0 .quad -5409713825168840664 - 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000cff8 .quad 2177682517447613172 - 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000d000 .quad -2150456263033662926 - 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000d008 .quad 2722103146809516465 - 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000d010 .quad -8261564192037121185 - 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000d018 .quad 6313000485183335695 - 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000d020 .quad -5715269221619013577 - 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000d028 .quad 3279564588051781714 - 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000d030 .quad -2532400508596379068 - 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000d038 .quad -512230283362660762 - 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000d040 .quad -8500279345513818773 - 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000d048 .quad 1985699082112030976 - 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d050 .quad -6013663163464885563 - 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d058 .quad -2129562165787349184 - 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d060 .quad -2905392935903719049 - 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d068 .quad 6561419329620589328 - 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d070 .quad -8733399612580906262 - 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d078 .quad -7428327965055601430 - 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d080 .quad -6305063497298744923 - 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d088 .quad 4549648098962661925 - 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d090 .quad -3269643353196043250 - 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d098 .quad -8147997931578836306 - 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d0a0 .quad -8961056123388608887 - 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d0a8 .quad 1825030320404309165 - 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d0b0 .quad -6589634135808373205 - 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d0b8 .quad 6892973918932774360 - 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d0c0 .quad -3625356651333078602 - 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d0c8 .quad 4004531380238580046 - 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d0d0 .quad -9183376934724255983 - 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d0d8 .quad -2108853905778275375 - 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d0e0 .quad -6867535149977932074 - 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d0e8 .quad 6587304654631931589 - 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d0f0 .quad -3972732919045027189 - 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d0f8 .quad -989241218564861322 - 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d100 .quad -354230130378896082 - 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d108 .quad -1236551523206076653 - 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d110 .quad -7138922859127891907 - 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d118 .quad 6144684325637283948 - 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d120 .quad -4311967555482476980 - 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d128 .quad -6154202648235558777 - 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d130 .quad -778273425925708321 - 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d138 .quad -3081067291867060567 - 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d140 .quad -7403949918844649557 - 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d148 .quad -1925667057416912854 - 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d150 .quad -4643251380128424042 - 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d158 .quad -2407083821771141068 - 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d160 .quad -1192378206733142148 - 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d168 .quad -7620540795641314239 - 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d170 .quad -7662765406849295699 - 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d178 .quad -2456994988062127447 - 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d180 .quad -4966770740134231719 - 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d188 .quad 6152128301777116499 - 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d190 .quad -1596777406740401745 - 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d198 .quad -6144897678060768089 - 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d1a0 .quad -7915514906853832947 - 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d1a8 .quad -3840561048787980055 - 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d1b0 .quad -5282707615139903279 - 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d1b8 .quad 4422670725869800739 - 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d1c0 .quad -1991698500497491195 - 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d1c8 .quad -8306719647944912789 - 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d1d0 .quad -8162340590452013853 - 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d1d8 .quad 8643358275316593219 - 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d1e0 .quad -5591239719637629412 - 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d1e8 .quad 6192511825718353620 - 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d1f0 .quad -2377363631119648861 - 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d1f8 .quad 7740639782147942025 - 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d200 .quad -8403381297090862394 - 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d208 .quad 2532056854628769814 - 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d210 .quad -5892540602936190089 - 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d218 .quad -6058300968568813541 - 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d220 .quad -2753989735242849707 - 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d228 .quad -7572876210711016926 - 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d230 .quad -8638772612167862923 - 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d238 .quad 9102010423587778133 - 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d240 .quad -6186779746782440750 - 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d248 .quad -2457545025797441046 - 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d250 .quad -3121788665050663033 - 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d258 .quad -7683617300674189211 - 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d260 .quad -8868646943297746252 - 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d268 .quad -4802260812921368257 - 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d270 .quad -6474122660694794911 - 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d278 .quad -1391139997724322417 - 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d280 .quad -3480967307441105734 - 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d288 .quad 7484447039699372787 - 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d290 .quad -9093133594791772940 - 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d298 .quad -9157278655470055720 - 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d2a0 .quad -6754730975062328271 - 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d2a8 .quad -6834912300910181746 - 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d2b0 .quad -3831727700400522434 - 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d2b8 .quad 679731660717048625 - 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d2c0 .quad -177973607073265139 - 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d2c8 .quad -8373707460958465027 - 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d2d0 .quad -7028762532061872568 - 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d2d8 .quad 8601490892183123070 - 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d2e0 .quad -4174267146649952806 - 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d2e8 .quad -7694880458480647778 - 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d2f0 .quad -606147914885053103 - 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d2f8 .quad 4216457482181353989 - 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d300 .quad -7296371474444240046 - 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d308 .quad -4282243101277735613 - 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d310 .quad -4508778324627912153 - 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d318 .quad 8482254178684994196 - 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d320 .quad -1024286887357502287 - 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d328 .quad 5991131704928854841 - 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d330 .quad -7557708332239520786 - 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d338 .quad -3173071712060547580 - 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d340 .quad -4835449396872013078 - 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d348 .quad -8578025658503072379 - 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d350 .quad -1432625727662628443 - 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d358 .quad 3112525982153323238 - 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d360 .quad -7812920107430224633 - 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d368 .quad 4251171748059520976 - 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d370 .quad -5154464115860392887 - 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d378 .quad 702278666647013315 - 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d380 .quad -1831394126398103205 - 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d388 .quad 5489534351736154548 - 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d390 .quad -8062150356639896359 - 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d398 .quad 1125115960621402641 - 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d3a0 .quad -5466001927372482545 - 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d3a8 .quad 6018080969204141205 - 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d3b0 .quad -2220816390788215277 - 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d3b8 .quad 2910915193077788602 - 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d3c0 .quad -8305539271883716405 - 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d3c8 .quad -486521013540076076 - 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d3d0 .quad -5770238071427257602 - 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d3d8 .quad -608151266925095095 - 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d3e0 .quad -2601111570856684098 - 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d3e8 .quad -5371875102083756772 - 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d3f0 .quad -8543223759426509417 - 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d3f8 .quad 3560107088838733873 - 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d400 .quad -6067343680855748868 - 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d408 .quad -161552157378970562 - 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d410 .quad -2972493582642298180 - 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d418 .quad 4409745821703674701 - 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d420 .quad -8775337516792518219 - 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d428 .quad -6467280898289979120 - 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d430 .quad -6357485877563259869 - 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d438 .quad 1139270913992301908 - 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d440 .quad -3335171328526686933 - 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d448 .quad -3187597375937010519 - 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d450 .quad -9002011107970261189 - 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d458 .quad 7231123676894144234 - 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d460 .quad -6640827866535438582 - 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d468 .quad 4427218577690292388 - 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d470 .quad -3689348814741910324 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d478 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d480 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d488 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d490 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d498 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d4a0 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4a8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d4b0 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4b8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d4c0 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4c8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d4d0 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4d8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d4e0 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4e8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d4f0 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d4f8 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d500 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d508 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d510 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d518 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d520 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d528 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d530 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d538 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d540 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d548 .quad 0 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d550 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d558 .quad 0 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d560 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d568 .quad 0 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d570 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d578 .quad 0 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d580 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d588 .quad 0 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d590 .quad -5646744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d598 .quad 0 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d5a0 .quad -2446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5a8 .quad 0 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d5b0 .quad -8446744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5b8 .quad 0 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d5c0 .quad -5946744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5c8 .quad 0 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d5d0 .quad -2821744073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5d8 .quad 0 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d5e0 .quad -8681119073709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5e8 .quad 0 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d5f0 .quad -6239712823709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d5f8 .quad 0 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d600 .quad -3187955011209551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d608 .quad 0 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d610 .quad -8910000909647051616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d618 .quad 0 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d620 .quad -6525815118631426616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d628 .quad 0 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d630 .quad -3545582879861895366 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d638 .quad 0 - 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d640 .quad -9133518327554766460 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d648 .quad 4611686018427387904 - 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d650 .quad -6805211891016070171 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d658 .quad 5764607523034234880 - 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d660 .quad -3894828845342699810 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d668 .quad -6629298651489370112 - 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d670 .quad -256850038250986858 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d678 .quad 5548434740920451072 - 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d680 .quad -7078060301547948643 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d688 .quad -1143914305352105984 - 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d690 .quad -4235889358507547899 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d698 .quad 7793479155164643328 - 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d6a0 .quad -683175679707046970 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d6a8 .quad -4093209111326359552 - 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d6b0 .quad -7344513827457986212 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d6b8 .quad 4359273333062107136 - 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d6c0 .quad -4568956265895094861 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d6c8 .quad 5449091666327633920 - 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d6d0 .quad -1099509313941480672 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d6d8 .quad 2199678564482154496 - 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d6e0 .quad -7604722348854507276 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d6e8 .quad 1374799102801346560 - 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d6f0 .quad -4894216917640746191 - 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d6f8 .quad 1718498878501683200 - 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d700 .quad -1506085128623544835 - 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d708 .quad 6759809616554491904 - 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d710 .quad -7858832233030797378 - 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d718 .quad 6530724019560251392 - 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d720 .quad -5211854272861108819 - 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d728 .quad -1059967012404461568 - 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d730 .quad -1903131822648998119 - 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d738 .quad 7898413271349198848 - 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d740 .quad -8106986416796705681 - 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d748 .quad -1981020733047832576 - 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d750 .quad -5522047002568494197 - 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d758 .quad -2476275916309790720 - 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d760 .quad -2290872734783229842 - 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d768 .quad -3095344895387238400 - 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d770 .quad -8349324486880600507 - 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d778 .quad 4982938468024057856 - 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000d780 .quad -5824969590173362730 - 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000d788 .quad -7606384970252091392 - 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000d790 .quad -2669525969289315508 - 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000d798 .quad 4327076842467049472 - 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000d7a0 .quad -8585982758446904049 - 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000d7a8 .quad -6518949010312869888 - 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000d7b0 .quad -6120792429631242157 - 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000d7b8 .quad -8148686262891087360 - 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000d7c0 .quad -3039304518611664792 - 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000d7c8 .quad 8260886245095692416 - 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000d7d0 .quad -8817094351773372351 - 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000d7d8 .quad 5163053903184807760 - 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000d7e0 .quad -6409681921289327535 - 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000d7e8 .quad -7381240676301154012 - 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000d7f0 .quad -3400416383184271515 - 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000d7f8 .quad -3178808521666707 - 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000d800 .quad -9042789267131251553 - 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000d808 .quad -4613672773753429595 - 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000d810 .quad -6691800565486676537 - 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000d818 .quad -5767090967191786994 - 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000d820 .quad -3753064688430957767 - 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000d828 .quad -7208863708989733743 - 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000d830 .quad -79644842111309304 - 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000d838 .quad 212292400617608629 - 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000d840 .quad -6967307053960650171 - 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000d848 .quad 132682750386005393 - 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000d850 .quad -4097447799023424810 - 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000d858 .quad 4777539456409894646 - 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000d860 .quad -510123730351893109 - 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000d868 .quad -3251447716342407501 - 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000d870 .quad -7236356359111015049 - 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000d878 .quad 7191217214140771120 - 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000d880 .quad -4433759430461380907 - 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000d888 .quad 4377335499248575996 - 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000d890 .quad -930513269649338230 - 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000d898 .quad -8363388681221443717 - 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000d8a0 .quad -7499099821171918250 - 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000d8a8 .quad -7532960934977096275 - 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000d8b0 .quad -4762188758037509908 - 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000d8b8 .quad 4418856886560793368 - 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000d8c0 .quad -1341049929119499481 - 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000d8c8 .quad 5523571108200991710 - 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000d8d0 .quad -7755685233340769032 - 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000d8d8 .quad -8076983103442849941 - 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000d8e0 .quad -5082920523248573386 - 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000d8e8 .quad -5484542860876174523 - 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000d8f0 .quad -1741964635633328828 - 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000d8f8 .quad 6979379479186945559 - 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000d900 .quad -8006256924911912374 - 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000d908 .quad -4861259862362934834 - 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000d910 .quad -5396135137712502563 - 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000d918 .quad 7758483227328495170 - 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000d920 .quad -2133482903713240300 - 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000d928 .quad -4136954021121544750 - 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000d930 .quad -8250955842461857044 - 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000d938 .quad -279753253987271517 - 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000d940 .quad -5702008784649933400 - 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000d948 .quad 4261994450943298508 - 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000d950 .quad -2515824962385028846 - 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000d958 .quad 5327493063679123135 - 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000d960 .quad -8489919629131724885 - 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000d968 .quad 7941369183226839864 - 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000d970 .quad -6000713517987268202 - 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000d978 .quad 5315025460606161925 - 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000d980 .quad -2889205879056697349 - 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000d988 .quad -2579590211097073401 - 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000d990 .quad -8723282702051517699 - 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000d998 .quad 7611128154919104932 - 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000d9a0 .quad -6292417359137009220 - 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000d9a8 .quad -4321147861633282547 - 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000d9b0 .quad -3253835680493873621 - 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000d9b8 .quad -789748808614215279 - 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000d9c0 .quad -8951176327949752869 - 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000d9c8 .quad 8729779031470891259 - 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000d9d0 .quad -6577284391509803182 - 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000d9d8 .quad 6300537770911226169 - 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000d9e0 .quad -3609919470959866074 - 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000d9e8 .quad -1347699823215743097 - 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000d9f0 .quad -9173728696990998152 - 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000d9f8 .quad 6075216638131242421 - 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000da00 .quad -6855474852811359786 - 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000da08 .quad 7594020797664053026 - 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000da10 .quad -3957657547586811828 - 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000da18 .quad 269153960225290474 - 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000da20 .quad -335385916056126881 - 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000da28 .quad 336442450281613092 - 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000da30 .quad -7127145225176161157 - 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000da38 .quad 7127805559067090039 - 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000da40 .quad -4297245513042813542 - 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000da48 .quad 4298070930406474645 - 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000da50 .quad -759870872876129024 - 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000da58 .quad -3850783373846682502 - 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000da60 .quad -7392448323188662496 - 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000da68 .quad 9122475437414293196 - 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000da70 .quad -4628874385558440216 - 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000da78 .quad -7043649776941685121 - 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000da80 .quad -1174406963520662366 - 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000da88 .quad -4192876202749718497 - 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000da90 .quad -7651533379841495835 - 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000da98 .quad -4926390635932268013 - 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000daa0 .quad -4952730706374481889 - 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000daa8 .quad 3065383741939440792 - 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000dab0 .quad -1579227364540714458 - 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000dab8 .quad -779956341003086914 - 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000dac0 .quad -7904546130479028392 - 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000dac8 .quad 6430056314514152535 - 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000dad0 .quad -5268996644671397586 - 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000dad8 .quad 8037570393142690669 - 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000dae0 .quad -1974559787411859078 - 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000dae8 .quad 823590954573587528 - 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000daf0 .quad -8151628894773493780 - 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000daf8 .quad 5126430365035880109 - 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000db00 .quad -5577850100039479321 - 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000db08 .quad 6408037956294850136 - 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000db10 .quad -2360626606621961247 - 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000db18 .quad 3398361426941174766 - 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000db20 .quad -8392920656779807636 - 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000db28 .quad -4793553135802847627 - 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000db30 .quad -5879464802547371641 - 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000db38 .quad -1380255401326171630 - 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000db40 .quad -2737644984756826647 - 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000db48 .quad -1725319251657714538 - 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000db50 .quad -8628557143114098510 - 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000db58 .quad 3533361486141316318 - 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000db60 .quad -6174010410465235234 - 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000db68 .quad -4806670179178130410 - 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000db70 .quad -3105826994654156138 - 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000db78 .quad 7826720331309500699 - 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000db80 .quad -8858670899299929442 - 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000db88 .quad 280014188641050033 - 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000db90 .quad -6461652605697523899 - 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000db98 .quad -8873354301053463267 - 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000dba0 .quad -3465379738694516970 - 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000dba8 .quad -1868320839462053276 - 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000dbb0 .quad -9083391364325154962 - 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000dbb8 .quad 5749828502977298559 - 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000dbc0 .quad -6742553186979055799 - 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000dbc8 .quad -2036086408133152610 - 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000dbd0 .quad -3816505465296431844 - 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000dbd8 .quad 6678264026688335046 - 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000dbe0 .quad -158945813193151901 - 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000dbe8 .quad 8347830033360418807 - 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000dbf0 .quad -7016870160886801794 - 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000dbf8 .quad 2911550761636567803 - 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000dc00 .quad -4159401682681114339 - 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000dc08 .quad -5583933584809066055 - 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000dc10 .quad -587566084924005019 - 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000dc18 .quad 2243455055843443239 - 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000dc20 .quad -7284757830718584993 - 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000dc28 .quad 3708002419115845977 - 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000dc30 .quad -4494261269970843337 - 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000dc38 .quad 23317005467419567 - 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000dc40 .quad -1006140569036166268 - 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000dc48 .quad -4582539761593113445 - 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000dc50 .quad -7546366883288685774 - 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000dc58 .quad -558244341782001951 - 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000dc60 .quad -4821272585683469313 - 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000dc68 .quad -5309491445654890343 - 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000dc70 .quad -1414904713676948737 - 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000dc78 .quad -6636864307068612929 - 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000dc80 .quad -7801844473689174817 - 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000dc88 .quad -4148040191917883080 - 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000dc90 .quad -5140619573684080617 - 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000dc98 .quad -5185050239897353851 - 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000dca0 .quad -1814088448677712867 - 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000dca8 .quad -6481312799871692314 - 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000dcb0 .quad -8051334308064652398 - 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000dcb8 .quad -8662506518347195600 - 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000dcc0 .quad -5452481866653427593 - 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000dcc8 .quad 3006924907348169212 - 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000dcd0 .quad -2203916314889396588 - 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000dcd8 .quad -853029884242176389 - 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000dce0 .quad -8294976724446954723 - 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000dce8 .quad 1772699331562333709 - 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000dcf0 .quad -5757034887131305500 - 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000dcf8 .quad 6827560182880305040 - 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000dd00 .quad -2584607590486743971 - 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000dd08 .quad 8534450228600381300 - 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000dd10 .quad -8532908771695296838 - 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000dd18 .quad 7639874402088932265 - 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000dd20 .quad -6054449946191733143 - 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000dd28 .quad 326470965756389523 - 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dd30 .quad -2956376414312278525 - 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dd38 .quad 5019774725622874807 - 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dd40 .quad -8765264286586255934 - 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dd48 .quad 831516194300602803 - 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dd50 .quad -6344894339805432014 - 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dd58 .quad -8183976793979022305 - 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dd60 .quad -3319431906329402113 - 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dd68 .quad 3605087062808385831 - 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000dd70 .quad -8992173969096958177 - 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000dd78 .quad 9170708441896323001 - 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000dd80 .quad -6628531442943809817 - 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000dd88 .quad 6851699533943015847 - 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000dd90 .quad -3673978285252374367 - 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000dd98 .quad 3952938399001381904 - 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000dda0 .quad -9213765455923815836 - 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000dda8 .quad -4446942528265218166 - 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000ddb0 .quad -6905520801477381891 - 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000ddb8 .quad -946992141904134803 - 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000ddc0 .quad -4020214983419339459 - 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000ddc8 .quad 8039631859474607304 - 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000ddd0 .quad -413582710846786420 - 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000ddd8 .quad -3785518230938904582 - 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000dde0 .quad -7176018221920323369 - 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000dde8 .quad -60105885123121412 - 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000ddf0 .quad -4358336758973016307 - 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000ddf8 .quad -75132356403901765 - 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000de00 .quad -836234930288882479 - 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000de08 .quad 9129456591349898602 - 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000de10 .quad -7440175859071633406 - 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000de18 .quad -1211618658047395230 - 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000de20 .quad -4688533805412153853 - 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000de28 .quad -6126209340986631941 - 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000de30 .quad -1248981238337804412 - 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000de38 .quad -7657761676233289927 - 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000de40 .quad -7698142301602209614 - 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000de48 .quad -2480258038432112252 - 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000de50 .quad -5010991858575374113 - 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000de58 .quad -7712008566467528219 - 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000de60 .quad -1652053804791829737 - 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000de68 .quad 8806733365625141342 - 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000de70 .quad -7950062655635975442 - 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000de78 .quad -6025006692552756421 - 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000de80 .quad -5325892301117581398 - 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000de88 .quad 6303799689591218186 - 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000de90 .quad -2045679357969588844 - 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000de98 .quad -1343622424865753076 - 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000dea0 .quad -8196078626372074883 - 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000dea8 .quad 1466078993672598280 - 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000deb0 .quad -5633412264537705700 - 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000deb8 .quad 6444284760518135753 - 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000dec0 .quad -2430079312244744221 - 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000dec8 .quad 8055355950647669692 - 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000ded0 .quad -8436328597794046994 - 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000ded8 .quad 2728754459941099605 - 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000dee0 .quad -5933724728815170839 - 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000dee8 .quad -5812428961928401301 - 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000def0 .quad -2805469892591575644 - 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000def8 .quad 1957835834444274181 - 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000df00 .quad -8670947710510816634 - 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000df08 .quad -7999724640327104445 - 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000df10 .quad -6226998619711132888 - 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000df18 .quad 3835402254873283156 - 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000df20 .quad -3172062256211528206 - 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000df28 .quad 4794252818591603945 - 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000df30 .quad -8900067937773286985 - 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000df38 .quad 7608094030047140370 - 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000df40 .quad -6513398903789220827 - 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000df48 .quad 4898431519131537558 - 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000df50 .quad -3530062611309138130 - 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000df58 .quad -7712018656367741764 - 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000df60 .quad -9123818159709293187 - 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000df68 .quad 2097517367411243254 - 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000df70 .quad -6793086681209228580 - 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000df78 .quad 7233582727691441971 - 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000df80 .quad -3879672333084147821 - 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000df88 .quad 9041978409614302463 - 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000df90 .quad -237904397927796872 - 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000df98 .quad 6690786993590490175 - 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000dfa0 .quad -7066219276345954901 - 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000dfa8 .quad 4181741870994056360 - 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000dfb0 .quad -4221088077005055722 - 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000dfb8 .quad 615491320315182545 - 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000dfc0 .quad -664674077828931749 - 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000dfc8 .quad -8454007886460797626 - 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000dfd0 .quad -7332950326284164199 - 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000dfd8 .quad 3939617107816777292 - 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000dfe0 .quad -4554501889427817345 - 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000dfe8 .quad -8910536670511192098 - 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000dff0 .quad -1081441343357383777 - 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000dff8 .quad 7308573235570561494 - 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000e000 .quad -7593429867239446717 - 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000e008 .quad -6961356773836868826 - 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000e010 .quad -4880101315621920492 - 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000e018 .quad -8701695967296086033 - 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000e020 .quad -1488440626100012711 - 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000e028 .quad -6265433940692719637 - 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000e030 .quad -7847804418953589800 - 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000e038 .quad 695789805494438131 - 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000e040 .quad -5198069505264599346 - 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000e048 .quad 869737256868047664 - 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e050 .quad -1885900863153361279 - 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e058 .quad -8136200465769716229 - 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e060 .quad -8096217067111932656 - 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e068 .quad -473439272678684739 - 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e070 .quad -5508585315462527915 - 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e078 .quad 4019886927579031981 - 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e080 .quad -2274045625900771990 - 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e088 .quad -8810199395808373736 - 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e090 .quad -8338807543829064350 - 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e098 .quad -7812217631593927537 - 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e0a0 .quad -5811823411358942533 - 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e0a8 .quad 4069786015789754291 - 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e0b0 .quad -2653093245771290262 - 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e0b8 .quad 475546501309804959 - 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e0c0 .quad -8575712306248138270 - 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e0c8 .quad 4908902581746016004 - 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e0d0 .quad -6107954364382784934 - 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e0d8 .quad -3087243809672255804 - 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e0e0 .quad -3023256937051093263 - 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e0e8 .quad -8470740780517707659 - 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e0f0 .quad -8807064613298015146 - 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e0f8 .quad -682526969396179382 - 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e100 .quad -6397144748195131028 - 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e108 .quad -5464844730172612132 - 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e110 .quad -3384744916816525881 - 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e118 .quad -2219369894288377261 - 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e120 .quad -9032994600651410532 - 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e128 .quad -1387106183930235788 - 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e130 .quad -6679557232386875260 - 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e138 .quad 2877803288514593169 - 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e140 .quad -3737760522056206171 - 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e148 .quad 3597254110643241461 - 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e150 .quad -60514634142869810 - 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e158 .quad 9108253656731439730 - 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e160 .quad -6955350673980375487 - 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e168 .quad 1080972517029761927 - 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e170 .quad -4082502324048081455 - 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e178 .quad 5962901664714590313 - 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e180 .quad -491441886632713915 - 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e188 .quad -6381430974388925821 - 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e190 .quad -7224680206786528053 - 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e198 .quad -8600080377420466542 - 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e1a0 .quad -4419164240055772162 - 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e1a8 .quad 7696643601933968438 - 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e1b0 .quad -912269281642327298 - 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e1b8 .quad 397432465562684740 - 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e1c0 .quad -7487697328667536418 - 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e1c8 .quad -4363290727450709941 - 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e1d0 .quad -4747935642407032618 - 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e1d8 .quad 8380944645968776285 - 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e1e0 .quad -1323233534581402868 - 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e1e8 .quad 1252808770606194548 - 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e1f0 .quad -7744549986754458649 - 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e1f8 .quad -8440366555225904215 - 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e200 .quad -5069001465015685407 - 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e208 .quad 7896285879677171347 - 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e210 .quad -1724565812842218855 - 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e218 .quad -3964700705685699528 - 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e220 .quad -7995382660667468640 - 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e228 .quad 2133748077373825699 - 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e230 .quad -5382542307406947896 - 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e238 .quad 2667185096717282124 - 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e240 .quad -2116491865831296966 - 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e248 .quad 3333981370896602654 - 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e250 .quad -8240336443785642460 - 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e258 .quad 6695424375237764563 - 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e260 .quad -5688734536304665171 - 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e268 .quad 8369280469047205704 - 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e270 .quad -2499232151953443560 - 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e278 .quad -3373457468973156582 - 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e280 .quad -8479549122611984081 - 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e288 .quad -9025939945749304720 - 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e290 .quad -5987750384837592197 - 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e298 .quad 7164319141522920716 - 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e2a0 .quad -2873001962619602342 - 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e2a8 .quad 4343712908476262991 - 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e2b0 .quad -8713155254278333320 - 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e2b8 .quad 7326506586225052274 - 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e2c0 .quad -6279758049420528746 - 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e2c8 .quad 9158133232781315342 - 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e2d0 .quad -3238011543348273028 - 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e2d8 .quad 2224294504121868369 - 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e2e0 .quad -8941286242233752499 - 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e2e8 .quad -7833187971778608077 - 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e2f0 .quad -6564921784364802720 - 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e2f8 .quad -568112927868484288 - 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e300 .quad -3594466212028615495 - 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e308 .quad 3901544858591782543 - 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e310 .quad -9164070410158966541 - 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e318 .quad -4479063491021217766 - 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e320 .quad -6843401994271320272 - 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e328 .quad -5598829363776522208 - 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e330 .quad -3942566474411762436 - 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e338 .quad -2386850686293264856 - 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e340 .quad -316522074587315140 - 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e348 .quad 1628122660560806834 - 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e350 .quad -7115355324258153819 - 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e358 .quad -8205795374004271537 - 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e360 .quad -4282508136895304370 - 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e368 .quad -1033872180650563613 - 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e370 .quad -741449152691742558 - 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e378 .quad -5904026244240592420 - 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e380 .quad -7380934748073420955 - 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e388 .quad -5995859411864064214 - 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e390 .quad -4614482416664388289 - 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e398 .quad 1728547772024695540 - 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e3a0 .quad -1156417002403097458 - 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e3a8 .quad -2451001303396518479 - 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e3b0 .quad -7640289654143017767 - 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e3b8 .quad 5385653213018257807 - 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e3c0 .quad -4938676049251384305 - 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e3c8 .quad -7102991539009341454 - 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e3d0 .quad -1561659043136842477 - 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e3d8 .quad -8878739423761676818 - 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e3e0 .quad -7893565929601608404 - 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e3e8 .quad 3674159897003727797 - 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e3f0 .quad -5255271393574622601 - 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e3f8 .quad 4592699871254659746 - 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e400 .quad -1957403223540890347 - 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e408 .quad 1129188820640936779 - 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e410 .quad -8140906042354138323 - 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e418 .quad 3011586022114279439 - 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e420 .quad -5564446534515285000 - 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e428 .quad 8376168546070237203 - 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e430 .quad -2343872149716718346 - 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e438 .quad -7976533391121755113 - 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e440 .quad -8382449121214030822 - 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e448 .quad 1932195658189984911 - 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e450 .quad -5866375383090150624 - 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e458 .quad -6808127464117294670 - 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e460 .quad -2721283210435300376 - 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e468 .quad -3898473311719230433 - 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e470 .quad -8618331034163144591 - 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e478 .quad 9092669226243950739 - 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e480 .quad -6161227774276542835 - 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e488 .quad -2469221522477225288 - 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e490 .quad -3089848699418290639 - 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e498 .quad 6136845133758244198 - 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e4a0 .quad -8848684464777513506 - 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e4a8 .quad -3082000819042179232 - 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e4b0 .quad -6449169562544503978 - 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e4b8 .quad -8464187042230111944 - 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e4c0 .quad -3449775934753242068 - 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e4c8 .quad 3254824252494523782 - 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e4d0 .quad -9073638986861858149 - 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e4d8 .quad -7189106879045698444 - 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e4e0 .quad -6730362715149934782 - 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e4e8 .quad -8986383598807123056 - 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e4f0 .quad -3801267375510030573 - 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e4f8 .quad 2602078556773259892 - 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e500 .quad -139898200960150313 - 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e508 .quad -1359087822460813039 - 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e510 .quad -7004965403241175802 - 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e518 .quad -849429889038008149 - 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e520 .quad -4144520735624081848 - 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e528 .quad -5673473379724898090 - 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e530 .quad -568964901102714406 - 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e538 .quad -2480155706228734709 - 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e540 .quad -7273132090830278360 - 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e548 .quad -3855940325606653145 - 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e550 .quad -4479729095110460046 - 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e558 .quad -208239388580928527 - 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e560 .quad -987975350460687153 - 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e568 .quad -4871985254153548563 - 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e570 .quad -7535013621679011327 - 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e578 .quad -3044990783845967852 - 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e580 .quad -4807081008671376254 - 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e588 .quad 5417133557047315993 - 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e590 .quad -1397165242411832414 - 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e598 .quad -2451955090545630817 - 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e5a0 .quad -7790757304148477115 - 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e5a8 .quad -3838314940804713212 - 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e5b0 .quad -5126760611758208489 - 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e5b8 .quad 4425478360848884292 - 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e5c0 .quad -1796764746270372707 - 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e5c8 .quad 920161932633717461 - 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e5d0 .quad -8040506994060064798 - 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e5d8 .quad 2880944217109767366 - 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e5e0 .quad -5438947724147693094 - 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e5e8 .quad -5622191765467566601 - 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e5f0 .quad -2186998636757228463 - 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e5f8 .quad 6807318348447705460 - 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e600 .quad -8284403175614349646 - 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e608 .quad -2662955059861265943 - 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e610 .quad -5743817951090549153 - 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e618 .quad -7940379843253970333 - 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e620 .quad -2568086420435798537 - 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e628 .quad 8521269269642088700 - 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e630 .quad -8522583040413455942 - 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e638 .quad -6203421752542164322 - 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e640 .quad -6041542782089432023 - 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e648 .quad 6080780864604458309 - 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e650 .quad -2940242459184402125 - 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e658 .quad -6234081974526590826 - 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e660 .quad -8755180564631333184 - 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e668 .quad 5327070802775656542 - 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e670 .quad -6332289687361778576 - 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e678 .quad 6658838503469570677 - 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e680 .quad -3303676090774835316 - 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e688 .quad 8323548129336963346 - 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e690 .quad -8982326584375353929 - 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e698 .quad -4021154456019173716 - 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e6a0 .quad -6616222212041804507 - 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e6a8 .quad -5026443070023967146 - 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e6b0 .quad -3658591746624867729 - 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e6b8 .quad 2940318199324816876 - 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e6c0 .quad -9204148869281624187 - 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e6c8 .quad 8755227902219092404 - 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e6d0 .quad -6893500068174642330 - 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e6d8 .quad -2891023177508298208 - 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e6e0 .quad -4005189066790915008 - 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e6e8 .quad -8225464990312760664 - 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e6f0 .quad -394800315061255856 - 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e6f8 .quad -5670145219463562926 - 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e700 .quad -7164279224554366766 - 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e708 .quad 7985374283903742932 - 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e710 .quad -4343663012265570553 - 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e718 .quad 758345818024902857 - 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e720 .quad -817892746904575288 - 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e728 .quad -3663753745896259333 - 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e730 .quad -7428711994456441411 - 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e738 .quad -9207375118826243939 - 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e740 .quad -4674203974643163860 - 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e748 .quad -2285846861678029116 - 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e750 .quad -1231068949876566920 - 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e758 .quad 1754377441329851509 - 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e760 .quad -7686947121313936181 - 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e768 .quad 1096485900831157193 - 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e770 .quad -4996997883215032323 - 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e778 .quad -3241078642388441413 - 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000e780 .quad -1634561335591402499 - 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000e788 .quad 5172023733869224042 - 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000e790 .quad -7939129862385708418 - 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000e798 .quad 5538357842881958978 - 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000e7a0 .quad -5312226309554747619 - 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000e7a8 .quad -2300424733252327085 - 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000e7b0 .quad -2028596868516046619 - 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000e7b8 .quad 6347841120289366951 - 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000e7c0 .quad -8185402070463610993 - 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000e7c8 .quad 6273243709394548297 - 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000e7d0 .quad -5620066569652125837 - 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000e7d8 .quad 3229868618315797467 - 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000e7e0 .quad -2413397193637769393 - 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000e7e8 .quad -574350245532641070 - 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000e7f0 .quad -8425902273664687727 - 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000e7f8 .quad -358968903457900669 - 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000e800 .quad -5920691823653471754 - 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000e808 .quad 8774660907532399972 - 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000e810 .quad -2789178761139451788 - 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000e818 .quad 1744954097560724157 - 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000e820 .quad -8660765753353239224 - 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000e828 .quad -8132775725879323210 - 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000e830 .quad -6214271173264161126 - 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000e838 .quad -5554283638921766109 - 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000e840 .quad -3156152948152813503 - 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000e848 .quad 6892203506629956076 - 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000e850 .quad -8890124620236590296 - 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000e858 .quad -2609901835997359308 - 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000e860 .quad -6500969756868349965 - 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000e868 .quad 1349308723430688769 - 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000e870 .quad -3514526177658049553 - 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000e878 .quad -2925050114139026943 - 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000e880 .quad -9114107888677362827 - 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000e888 .quad -1828156321336891839 - 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000e890 .quad -6780948842419315629 - 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000e898 .quad 6938176635183661009 - 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000e8a0 .quad -3864500034596756632 - 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000e8a8 .quad 4061034775552188357 - 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000e8b0 .quad -218939024818557886 - 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000e8b8 .quad 5076293469440235446 - 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000e8c0 .quad -7054365918152680535 - 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000e8c8 .quad 7784369436827535058 - //0x0000e8d0 .p2align 4, 0x00 - //0x0000e8d0 _VecShiftShuffles - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000e8d0 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x0000e8e0 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' - 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x0000e8f0 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' - 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x0000e900 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x0000e910 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' - 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e920 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' - 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e930 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e940 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x0000e950 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' - //0x0000e960 .p2align 4, 0x00 - //0x0000e960 __SingleQuoteTab - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e960 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000e968 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e970 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000e978 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e980 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000e988 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e990 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000e998 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9a0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000e9a8 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9b0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000e9b8 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9c0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000e9c8 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9d0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000e9d8 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9e0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000e9e8 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f0 .quad 2 - 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e9f8 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea00 .quad 2 - 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea08 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000ea18 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000ea28 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea30 .quad 2 - 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea38 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000ea48 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000ea58 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea60 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000ea68 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea70 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000ea78 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea80 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000ea88 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ea90 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ea98 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaa0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000eaa8 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eab0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000eab8 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eac0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000eac8 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ead0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ead8 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eae0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000eae8 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eaf0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000eaf8 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb00 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000eb08 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb10 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000eb18 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000eb28 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb30 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000eb38 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000eb48 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb50 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000eb58 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb80 .quad 2 - 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb88 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 .quad 2 - 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef28 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f0f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f2f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f3f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f4f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f5f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f6f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f7f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f8f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x0000f960 .p2align 4, 0x00 - //0x0000f960 __DoubleQuoteTab - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f960 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000f968 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f970 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000f978 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f980 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000f988 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f990 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000f998 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9a0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000f9a8 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9b0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000f9b8 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9c0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000f9c8 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000f9d8 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000f9e8 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 3 - 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f8 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 .quad 3 - 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa08 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000fa18 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000fa28 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 .quad 3 - 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa38 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000fa48 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fa58 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fa68 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fa78 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fa88 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000fa98 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000faa8 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000fab8 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000fac8 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000fad8 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000fae8 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000faf8 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000fb08 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000fb18 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000fb28 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000fb38 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000fb48 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 .quad 7 - 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000fb58 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 .quad 4 - 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fb88 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 .quad 4 - 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x0000ff28 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000100f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000102f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000103f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000104f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000105f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000106f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000107f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000108f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010960 .p2align 4, 0x00 - //0x00010960 __EscTab - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010960 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010970 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010980 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x000109b0 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109ed QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109fd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a0d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a1d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, //0x00010a5d WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' - //0x00010a60 .p2align 4, 0x00 - //0x00010a60 __UnquoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00010a80 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00010ab0 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' - 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00010ac0 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' - 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00010ad0 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b06 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b16 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b26 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b36 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b56 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00010b60 .p2align 4, 0x00 - //0x00010b60 __HtmlQuoteTab - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc0 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00010dc8 QUAD $0x000036323030755c // .asciz 8, '\\u0026\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f20 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00010f28 QUAD $0x000063333030755c // .asciz 8, '\\u003c\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f40 .quad 6 - 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00010f48 QUAD $0x000065333030755c // .asciz 8, '\\u003e\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000110f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000112f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000114f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115e0 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x000115e8 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000115f0 .quad 6 - 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x000115f8 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000116f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000117f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000118f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000119f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - //0x00011b60 .p2align 4, 0x00 - //0x00011b60 _LSHIFT_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011bc8 .long 1 - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bcc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011c2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011c30 .long 1 - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c34 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011c94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x01, 0x00, 0x00, 0x00, //0x00011c98 .long 1 - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011c9c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011cec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011cfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011d00 .long 2 - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d04 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011d64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011d68 .long 2 - 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d6c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011dcc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x02, 0x00, 0x00, 0x00, //0x00011dd0 .long 2 - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011dd4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011e34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00011e38 .long 3 - 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e3c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011e9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00011ea0 .long 3 - 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ea4 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011f04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x03, 0x00, 0x00, 0x00, //0x00011f08 .long 3 - 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f0c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011f6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00011f70 .long 4 - 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f74 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00011fd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00011fd8 .long 4 - 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fdc QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001200c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001201c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001202c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001203c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x00012040 .long 4 - 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012044 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000120a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x04, 0x00, 0x00, 0x00, //0x000120a8 .long 4 - 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ac QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001210c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012110 .long 5 - 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012114 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012174 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x00012178 .long 5 - 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001217c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001218c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001219c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000121dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x05, 0x00, 0x00, 0x00, //0x000121e0 .long 5 - 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000121e4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012244 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012248 .long 6 - 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0001224c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001225c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001226c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001227c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001228c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001229c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000122ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x000122b0 .long 6 - 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000122b4 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012314 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x06, 0x00, 0x00, 0x00, //0x00012318 .long 6 - 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001231c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001232c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001233c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001234c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001235c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001236c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001237c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012380 .long 7 - 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012384 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000123e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000123e8 .long 7 - 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x000123ec QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001240c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001241c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001242c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001243c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001244c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x00012450 .long 7 - 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00012454 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000124b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x07, 0x00, 0x00, 0x00, //0x000124b8 .long 7 - 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x000124bc QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124cc QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001250c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001251c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012520 .long 8 - 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012524 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012534 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012554 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012584 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x00012588 .long 8 - 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001258c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001259c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000125ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x08, 0x00, 0x00, 0x00, //0x000125f0 .long 8 - 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x000125f4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012604 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012624 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012654 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012658 .long 9 - 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x0001265c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001266c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001267c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001268c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000126bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x000126c0 .long 9 - 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x000126c4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' - 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126d4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012724 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x09, 0x00, 0x00, 0x00, //0x00012728 .long 9 - 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x0001272c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' - 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001273c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001274c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001275c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001277c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001278c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012790 .long 10 - 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012794 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' - 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127a4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000127f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x000127f8 .long 10 - 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x000127fc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' - 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001280c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001281c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001282c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001284c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001285c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x00012860 .long 10 - 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012864 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' - 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012874 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012894 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000128c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0a, 0x00, 0x00, 0x00, //0x000128c8 .long 10 - 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x000128cc QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' - 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128dc QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001291c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001292c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012930 .long 11 - 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012934 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' - 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012944 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012994 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012998 .long 11 - 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0001299c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' - 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ac QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000129fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0b, 0x00, 0x00, 0x00, //0x00012a00 .long 11 - 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012a04 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' - 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a14 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012a64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012a68 .long 12 - 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012a6c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' - 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a7c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012acc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012ad0 .long 12 - 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012ad4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' - 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ae4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0c, 0x00, 0x00, 0x00, //0x00012b38 .long 12 - 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012b3c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' - 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012b4c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012b9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012ba0 .long 13 - 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012ba4 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' - 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012bb4 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012c08 .long 13 - 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00012c0c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' - 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012c1c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012c6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012c70 .long 13 - 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00012c74 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' - 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012c84 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012cd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0d, 0x00, 0x00, 0x00, //0x00012cd8 .long 13 - 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012cdc QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' - 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012cec QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012d3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012d40 .long 14 - 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012d44 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' - 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012d54 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012da4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012da8 .long 14 - 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00012dac QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' - 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00012dbc QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0e, 0x00, 0x00, 0x00, //0x00012e10 .long 14 - 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00012e14 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' - 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00012e24 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e34 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012e74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00012e78 .long 15 - 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00012e7c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' - 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00012e8c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' - 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e9c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012edc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00012ee0 .long 15 - 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00012ee4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' - 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00012ef4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' - 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f04 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012f44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x0f, 0x00, 0x00, 0x00, //0x00012f48 .long 15 - 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00012f4c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' - 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00012f5c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' - 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f6c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00012fac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00012fb0 .long 16 - 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00012fb4 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' - 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00012fc4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' - 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fd4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013014 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013018 .long 16 - 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001301c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' - 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0001302c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' - 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001303c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001307c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x00013080 .long 16 - 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013084 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' - 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013094 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' - 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130a4 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000130e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x10, 0x00, 0x00, 0x00, //0x000130e8 .long 16 - 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x000130ec QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' - 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x000130fc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' - 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001310c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001314c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013150 .long 17 - 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00013154 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' - 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00013164 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' - 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013174 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000131b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x000131b8 .long 17 - 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x000131bc QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' - 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x000131cc QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' - 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131dc QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x0001321c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x11, 0x00, 0x00, 0x00, //0x00013220 .long 17 - 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013224 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' - 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00013234 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' - 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013244 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013254 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013284 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013288 .long 18 - 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001328c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' - 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001329c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' - 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ac QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000132ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x000132f0 .long 18 - 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x000132f4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' - 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013304 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' - 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013314 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013354 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x12, 0x00, 0x00, 0x00, //0x00013358 .long 18 - 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x0001335c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' - 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x0001336c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' - 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001337c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001338c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001339c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x000133bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x13, 0x00, 0x00, 0x00, //0x000133c0 .long 19 - 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x000133c4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' - 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x000133d4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' - 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133e4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, //0x00013424 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013428 .p2align 4, 0x00 - //0x00013430 _P10_TAB - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00013430 .quad 4607182418800017408 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00013438 .quad 4621819117588971520 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00013440 .quad 4636737291354636288 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00013448 .quad 4652007308841189376 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00013450 .quad 4666723172467343360 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00013458 .quad 4681608360884174848 - 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00013460 .quad 4696837146684686336 - 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00013468 .quad 4711630319722168320 - 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00013470 .quad 4726483295884279808 - 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00013478 .quad 4741671816366391296 - 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013480 .quad 4756540486875873280 - 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013488 .quad 4771362005757984768 - 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013490 .quad 4786511204640096256 - 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013498 .quad 4801453603149578240 - 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x000134a0 .quad 4816244402031689728 - 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000134a8 .quad 4831355200913801216 - 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x000134b0 .quad 4846369599423283200 - 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x000134b8 .quad 4861130398305394688 - 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x000134c0 .quad 4876203697187506176 - 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x000134c8 .quad 4891288408196988160 - 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x000134d0 .quad 4906019910204099648 - 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x000134d8 .quad 4921056587992461136 - 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x000134e0 .quad 4936209963552724370 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e8 .p2align 4, 0x00 - //0x000134f0 _pow10_ceil_sig_f32.g - 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x000134f0 .quad -9093133594791772939 - 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x000134f8 .quad -6754730975062328270 - 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013500 .quad -3831727700400522433 - 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013508 .quad -177973607073265138 - 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013510 .quad -7028762532061872567 - 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013518 .quad -4174267146649952805 - 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013520 .quad -606147914885053102 - 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013528 .quad -7296371474444240045 - 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00013530 .quad -4508778324627912152 - 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00013538 .quad -1024286887357502286 - 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00013540 .quad -7557708332239520785 - 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00013548 .quad -4835449396872013077 - 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00013550 .quad -1432625727662628442 - 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00013558 .quad -7812920107430224632 - 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00013560 .quad -5154464115860392886 - 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00013568 .quad -1831394126398103204 - 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00013570 .quad -8062150356639896358 - 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00013578 .quad -5466001927372482544 - 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013580 .quad -2220816390788215276 - 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013588 .quad -8305539271883716404 - 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013590 .quad -5770238071427257601 - 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013598 .quad -2601111570856684097 - 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x000135a0 .quad -8543223759426509416 - 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000135a8 .quad -6067343680855748867 - 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x000135b0 .quad -2972493582642298179 - 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x000135b8 .quad -8775337516792518218 - 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x000135c0 .quad -6357485877563259868 - 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x000135c8 .quad -3335171328526686932 - 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x000135d0 .quad -9002011107970261188 - 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x000135d8 .quad -6640827866535438581 - 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000135e0 .quad -3689348814741910323 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000135e8 .quad -9223372036854775808 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000135f0 .quad -6917529027641081856 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000135f8 .quad -4035225266123964416 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013600 .quad -432345564227567616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013608 .quad -7187745005283311616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013610 .quad -4372995238176751616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013618 .quad -854558029293551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00013620 .quad -7451627795949551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00013628 .quad -4702848726509551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00013630 .quad -1266874889709551616 - 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00013638 .quad -7709325833709551616 - 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00013640 .quad -5024971273709551616 - 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00013648 .quad -1669528073709551616 - 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00013650 .quad -7960984073709551616 - 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00013658 .quad -5339544073709551616 - 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00013660 .quad -2062744073709551616 - 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00013668 .quad -8206744073709551616 - 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00013670 .quad -5646744073709551616 - 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00013678 .quad -2446744073709551616 - 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013680 .quad -8446744073709551616 - 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013688 .quad -5946744073709551616 - 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013690 .quad -2821744073709551616 - 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013698 .quad -8681119073709551616 - 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x000136a0 .quad -6239712823709551616 - 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x000136a8 .quad -3187955011209551616 - 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x000136b0 .quad -8910000909647051616 - 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x000136b8 .quad -6525815118631426616 - 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x000136c0 .quad -3545582879861895366 - 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x000136c8 .quad -9133518327554766459 - 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x000136d0 .quad -6805211891016070170 - 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x000136d8 .quad -3894828845342699809 - 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x000136e0 .quad -256850038250986857 - 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x000136e8 .quad -7078060301547948642 - 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x000136f0 .quad -4235889358507547898 - 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x000136f8 .quad -683175679707046969 - 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013700 .quad -7344513827457986211 - 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013708 .quad -4568956265895094860 - 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013710 .quad -1099509313941480671 - 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013718 .quad -7604722348854507275 - 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00013720 .quad -4894216917640746190 - 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00013728 .quad -1506085128623544834 - 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00013730 .quad -7858832233030797377 - 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00013738 .quad -5211854272861108818 - 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00013740 .quad -1903131822648998118 - 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00013748 .quad -8106986416796705680 - 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00013750 .quad -5522047002568494196 -} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/quote.go b/vendor/github.com/bytedance/sonic/internal/native/sse/quote.go new file mode 100644 index 000000000..debc7a201 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/quote.go @@ -0,0 +1,35 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) +var F_quote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn unsafe.Pointer, flags uint64) (ret int) + +var S_quote uintptr + +//go:nosplit +func quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (ret int) { + return F_quote(rt.NoEscape(sp), nb, rt.NoEscape(dp), rt.NoEscape(unsafe.Pointer(dn)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/quote_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/quote_subr.go new file mode 100644 index 000000000..4f83751a5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/quote_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__quote = 48 +) + +const ( + _stack__quote = 64 +) + +const ( + _size__quote = 1728 +) + +var ( + _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}, + } +) + +var _cfunc_quote = []loader.CFunc{ + {"_quote_entry", 0, _entry__quote, 0, nil}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/quote_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/quote_text_amd64.go new file mode 100644 index 000000000..f3a84aeaf --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/quote_text_amd64.go @@ -0,0 +1,1093 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_quote = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000010 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 .p2align 4, 0x90 + //0x00000030 _quote + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000003d subq $16, %rsp + 0x49, 0x89, 0xcb, //0x00000041 movq %rcx, %r11 + 0x49, 0x89, 0xd4, //0x00000044 movq %rdx, %r12 + 0x48, 0x89, 0xf0, //0x00000047 movq %rsi, %rax + 0x4c, 0x8b, 0x31, //0x0000004a movq (%rcx), %r14 + 0x41, 0xf6, 0xc0, 0x01, //0x0000004d testb $1, %r8b + 0x48, 0x8d, 0x0d, 0x98, 0x06, 0x00, 0x00, //0x00000051 leaq $1688(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0x91, 0x16, 0x00, 0x00, //0x00000058 leaq $5777(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc1, //0x0000005f cmoveq %rcx, %r8 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00000063 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xce, //0x0000006b cmpq %rcx, %r14 + 0x0f, 0x8d, 0xee, 0x03, 0x00, 0x00, //0x0000006e jge LBB0_51 + 0x4d, 0x89, 0xe7, //0x00000074 movq %r12, %r15 + 0x49, 0x89, 0xfa, //0x00000077 movq %rdi, %r10 + 0x48, 0x85, 0xc0, //0x0000007a testq %rax, %rax + 0x0f, 0x84, 0xd1, 0x03, 0x00, 0x00, //0x0000007d je LBB0_74 + 0xf3, 0x0f, 0x6f, 0x05, 0x75, 0xff, 0xff, 0xff, //0x00000083 movdqu $-139(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x7d, 0xff, 0xff, 0xff, //0x0000008b movdqu $-131(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x85, 0xff, 0xff, 0xff, //0x00000093 movdqu $-123(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x0000009b pcmpeqd %xmm3, %xmm3 + 0x49, 0x89, 0xfa, //0x0000009f movq %rdi, %r10 + 0x4d, 0x89, 0xe7, //0x000000a2 movq %r12, %r15 + 0x4c, 0x89, 0x65, 0xc8, //0x000000a5 movq %r12, $-56(%rbp) + //0x000000a9 LBB0_3 + 0x48, 0x83, 0xf8, 0x0f, //0x000000a9 cmpq $15, %rax + 0x0f, 0x9f, 0xc3, //0x000000ad setg %bl + 0x4d, 0x89, 0xf1, //0x000000b0 movq %r14, %r9 + 0x4d, 0x89, 0xfd, //0x000000b3 movq %r15, %r13 + 0x48, 0x89, 0xc6, //0x000000b6 movq %rax, %rsi + 0x4d, 0x89, 0xd4, //0x000000b9 movq %r10, %r12 + 0x49, 0x83, 0xfe, 0x10, //0x000000bc cmpq $16, %r14 + 0x0f, 0x8c, 0x8a, 0x00, 0x00, 0x00, //0x000000c0 jl LBB0_9 + 0x48, 0x83, 0xf8, 0x10, //0x000000c6 cmpq $16, %rax + 0x0f, 0x8c, 0x80, 0x00, 0x00, 0x00, //0x000000ca jl LBB0_9 + 0x4d, 0x89, 0xd4, //0x000000d0 movq %r10, %r12 + 0x48, 0x89, 0xc6, //0x000000d3 movq %rax, %rsi + 0x4d, 0x89, 0xfd, //0x000000d6 movq %r15, %r13 + 0x4c, 0x89, 0xf1, //0x000000d9 movq %r14, %rcx + 0x90, 0x90, 0x90, 0x90, //0x000000dc .p2align 4, 0x90 + //0x000000e0 LBB0_6 + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x000000e0 movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x000000e6 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x000000ea pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x000000ee movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x000000f2 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x000000f6 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x000000fa pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x000000fe por %xmm6, %xmm7 + 0xf3, 0x41, 0x0f, 0x7f, 0x65, 0x00, //0x00000102 movdqu %xmm4, (%r13) + 0x66, 0x0f, 0x64, 0xe3, //0x00000108 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x0000010c pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x00000110 por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x00000114 pmovmskb %xmm4, %ebx + 0x66, 0x85, 0xdb, //0x00000118 testw %bx, %bx + 0x0f, 0x85, 0x24, 0x01, 0x00, 0x00, //0x0000011b jne LBB0_19 + 0x49, 0x83, 0xc4, 0x10, //0x00000121 addq $16, %r12 + 0x49, 0x83, 0xc5, 0x10, //0x00000125 addq $16, %r13 + 0x4c, 0x8d, 0x49, 0xf0, //0x00000129 leaq $-16(%rcx), %r9 + 0x48, 0x83, 0xfe, 0x1f, //0x0000012d cmpq $31, %rsi + 0x0f, 0x9f, 0xc3, //0x00000131 setg %bl + 0x48, 0x83, 0xfe, 0x20, //0x00000134 cmpq $32, %rsi + 0x48, 0x8d, 0x76, 0xf0, //0x00000138 leaq $-16(%rsi), %rsi + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x0000013c jl LBB0_9 + 0x48, 0x83, 0xf9, 0x1f, //0x00000142 cmpq $31, %rcx + 0x4c, 0x89, 0xc9, //0x00000146 movq %r9, %rcx + 0x0f, 0x8f, 0x91, 0xff, 0xff, 0xff, //0x00000149 jg LBB0_6 + 0x90, //0x0000014f .p2align 4, 0x90 + //0x00000150 LBB0_9 + 0x84, 0xdb, //0x00000150 testb %bl, %bl + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00000152 je LBB0_13 + 0x4c, 0x89, 0x5d, 0xd0, //0x00000158 movq %r11, $-48(%rbp) + 0xf3, 0x41, 0x0f, 0x6f, 0x24, 0x24, //0x0000015c movdqu (%r12), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00000162 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x00000166 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000016a movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000016e pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00000172 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x00000176 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x0000017a por %xmm6, %xmm7 + 0x66, 0x48, 0x0f, 0x7e, 0xe1, //0x0000017e movq %xmm4, %rcx + 0x66, 0x0f, 0x64, 0xe3, //0x00000183 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00000187 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x0000018b por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xf4, //0x0000018f pmovmskb %xmm4, %esi + 0x81, 0xce, 0x00, 0x00, 0x01, 0x00, //0x00000193 orl $65536, %esi + 0x44, 0x0f, 0xbc, 0xde, //0x00000199 bsfl %esi, %r11d + 0x4d, 0x39, 0xd9, //0x0000019d cmpq %r11, %r9 + 0x0f, 0x8d, 0xb1, 0x00, 0x00, 0x00, //0x000001a0 jge LBB0_20 + 0x49, 0x83, 0xf9, 0x08, //0x000001a6 cmpq $8, %r9 + 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x000001aa jb LBB0_23 + 0x49, 0x89, 0x4d, 0x00, //0x000001b0 movq %rcx, (%r13) + 0x4d, 0x8d, 0x5c, 0x24, 0x08, //0x000001b4 leaq $8(%r12), %r11 + 0x49, 0x83, 0xc5, 0x08, //0x000001b9 addq $8, %r13 + 0x49, 0x8d, 0x71, 0xf8, //0x000001bd leaq $-8(%r9), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x000001c1 cmpq $4, %rsi + 0x0f, 0x8d, 0xd1, 0x00, 0x00, 0x00, //0x000001c5 jge LBB0_24 + 0xe9, 0xdf, 0x00, 0x00, 0x00, //0x000001cb jmp LBB0_25 + //0x000001d0 LBB0_13 + 0x4d, 0x85, 0xc9, //0x000001d0 testq %r9, %r9 + 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x000001d3 jle LBB0_18 + 0x48, 0x85, 0xf6, //0x000001d9 testq %rsi, %rsi + 0x0f, 0x8e, 0x52, 0x00, 0x00, 0x00, //0x000001dc jle LBB0_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001e2 .p2align 4, 0x90 + //0x000001f0 LBB0_15 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x000001f0 movzbl (%r12), %ebx + 0x48, 0x89, 0xd9, //0x000001f5 movq %rbx, %rcx + 0x48, 0xc1, 0xe1, 0x04, //0x000001f8 shlq $4, %rcx + 0x48, 0x8d, 0x15, 0xed, 0x04, 0x00, 0x00, //0x000001fc leaq $1261(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x11, 0x00, //0x00000203 cmpq $0, (%rcx,%rdx) + 0x0f, 0x85, 0x73, 0x00, 0x00, 0x00, //0x00000208 jne LBB0_22 + 0x49, 0xff, 0xc4, //0x0000020e incq %r12 + 0x41, 0x88, 0x5d, 0x00, //0x00000211 movb %bl, (%r13) + 0x48, 0x83, 0xfe, 0x02, //0x00000215 cmpq $2, %rsi + 0x48, 0x8d, 0x76, 0xff, //0x00000219 leaq $-1(%rsi), %rsi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x0000021d jl LBB0_18 + 0x49, 0xff, 0xc5, //0x00000223 incq %r13 + 0x49, 0x83, 0xf9, 0x01, //0x00000226 cmpq $1, %r9 + 0x4d, 0x8d, 0x49, 0xff, //0x0000022a leaq $-1(%r9), %r9 + 0x0f, 0x8f, 0xbc, 0xff, 0xff, 0xff, //0x0000022e jg LBB0_15 + //0x00000234 LBB0_18 + 0x4d, 0x29, 0xd4, //0x00000234 subq %r10, %r12 + 0x48, 0xf7, 0xde, //0x00000237 negq %rsi + 0x4d, 0x19, 0xc9, //0x0000023a sbbq %r9, %r9 + 0x4d, 0x31, 0xe1, //0x0000023d xorq %r12, %r9 + 0xe9, 0x1f, 0x01, 0x00, 0x00, //0x00000240 jmp LBB0_36 + //0x00000245 LBB0_19 + 0x0f, 0xb7, 0xcb, //0x00000245 movzwl %bx, %ecx + 0x4d, 0x29, 0xd4, //0x00000248 subq %r10, %r12 + 0x44, 0x0f, 0xbc, 0xc9, //0x0000024b bsfl %ecx, %r9d + 0x4d, 0x01, 0xe1, //0x0000024f addq %r12, %r9 + 0xe9, 0x0d, 0x01, 0x00, 0x00, //0x00000252 jmp LBB0_36 + //0x00000257 LBB0_20 + 0x41, 0x83, 0xfb, 0x08, //0x00000257 cmpl $8, %r11d + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x0000025b jb LBB0_29 + 0x49, 0x89, 0x4d, 0x00, //0x00000261 movq %rcx, (%r13) + 0x49, 0x8d, 0x5c, 0x24, 0x08, //0x00000265 leaq $8(%r12), %rbx + 0x49, 0x83, 0xc5, 0x08, //0x0000026a addq $8, %r13 + 0x49, 0x8d, 0x73, 0xf8, //0x0000026e leaq $-8(%r11), %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00000272 cmpq $4, %rsi + 0x0f, 0x8d, 0x8e, 0x00, 0x00, 0x00, //0x00000276 jge LBB0_30 + 0xe9, 0x9b, 0x00, 0x00, 0x00, //0x0000027c jmp LBB0_31 + //0x00000281 LBB0_22 + 0x4d, 0x29, 0xd4, //0x00000281 subq %r10, %r12 + 0x4d, 0x89, 0xe1, //0x00000284 movq %r12, %r9 + 0xe9, 0xd8, 0x00, 0x00, 0x00, //0x00000287 jmp LBB0_36 + //0x0000028c LBB0_23 + 0x4d, 0x89, 0xe3, //0x0000028c movq %r12, %r11 + 0x4c, 0x89, 0xce, //0x0000028f movq %r9, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00000292 cmpq $4, %rsi + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00000296 jl LBB0_25 + //0x0000029c LBB0_24 + 0x41, 0x8b, 0x0b, //0x0000029c movl (%r11), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000029f movl %ecx, (%r13) + 0x49, 0x83, 0xc3, 0x04, //0x000002a3 addq $4, %r11 + 0x49, 0x83, 0xc5, 0x04, //0x000002a7 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x000002ab addq $-4, %rsi + //0x000002af LBB0_25 + 0x48, 0x83, 0xfe, 0x02, //0x000002af cmpq $2, %rsi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000002b3 jb LBB0_26 + 0x41, 0x0f, 0xb7, 0x0b, //0x000002b9 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x000002bd movw %cx, (%r13) + 0x49, 0x83, 0xc3, 0x02, //0x000002c2 addq $2, %r11 + 0x49, 0x83, 0xc5, 0x02, //0x000002c6 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x000002ca addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x000002ce testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000002d1 jne LBB0_27 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000002d7 jmp LBB0_28 + //0x000002dc LBB0_26 + 0x48, 0x85, 0xf6, //0x000002dc testq %rsi, %rsi + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000002df je LBB0_28 + //0x000002e5 LBB0_27 + 0x41, 0x8a, 0x0b, //0x000002e5 movb (%r11), %cl + 0x41, 0x88, 0x4d, 0x00, //0x000002e8 movb %cl, (%r13) + //0x000002ec LBB0_28 + 0x4d, 0x29, 0xd1, //0x000002ec subq %r10, %r9 + 0x4d, 0x01, 0xe1, //0x000002ef addq %r12, %r9 + 0x49, 0xf7, 0xd1, //0x000002f2 notq %r9 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x000002f5 jmp LBB0_35 + //0x000002fa LBB0_29 + 0x4c, 0x89, 0xe3, //0x000002fa movq %r12, %rbx + 0x4c, 0x89, 0xde, //0x000002fd movq %r11, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00000300 cmpq $4, %rsi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00000304 jl LBB0_31 + //0x0000030a LBB0_30 + 0x8b, 0x0b, //0x0000030a movl (%rbx), %ecx + 0x41, 0x89, 0x4d, 0x00, //0x0000030c movl %ecx, (%r13) + 0x48, 0x83, 0xc3, 0x04, //0x00000310 addq $4, %rbx + 0x49, 0x83, 0xc5, 0x04, //0x00000314 addq $4, %r13 + 0x48, 0x83, 0xc6, 0xfc, //0x00000318 addq $-4, %rsi + //0x0000031c LBB0_31 + 0x48, 0x83, 0xfe, 0x02, //0x0000031c cmpq $2, %rsi + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00000320 jb LBB0_32 + 0x0f, 0xb7, 0x0b, //0x00000326 movzwl (%rbx), %ecx + 0x66, 0x41, 0x89, 0x4d, 0x00, //0x00000329 movw %cx, (%r13) + 0x48, 0x83, 0xc3, 0x02, //0x0000032e addq $2, %rbx + 0x49, 0x83, 0xc5, 0x02, //0x00000332 addq $2, %r13 + 0x48, 0x83, 0xc6, 0xfe, //0x00000336 addq $-2, %rsi + 0x48, 0x85, 0xf6, //0x0000033a testq %rsi, %rsi + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000033d jne LBB0_33 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00000343 jmp LBB0_34 + //0x00000348 LBB0_32 + 0x48, 0x85, 0xf6, //0x00000348 testq %rsi, %rsi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000034b je LBB0_34 + //0x00000351 LBB0_33 + 0x8a, 0x0b, //0x00000351 movb (%rbx), %cl + 0x41, 0x88, 0x4d, 0x00, //0x00000353 movb %cl, (%r13) + //0x00000357 LBB0_34 + 0x4d, 0x29, 0xd4, //0x00000357 subq %r10, %r12 + 0x4d, 0x01, 0xdc, //0x0000035a addq %r11, %r12 + 0x4d, 0x89, 0xe1, //0x0000035d movq %r12, %r9 + //0x00000360 LBB0_35 + 0x4c, 0x8b, 0x5d, 0xd0, //0x00000360 movq $-48(%rbp), %r11 + //0x00000364 LBB0_36 + 0x4d, 0x85, 0xc9, //0x00000364 testq %r9, %r9 + 0x4c, 0x8b, 0x65, 0xc8, //0x00000367 movq $-56(%rbp), %r12 + 0x49, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x0000036b movabsq $12884901889, %r13 + 0x0f, 0x88, 0x55, 0x03, 0x00, 0x00, //0x00000375 js LBB0_78 + 0x4d, 0x01, 0xca, //0x0000037b addq %r9, %r10 + 0x4d, 0x01, 0xcf, //0x0000037e addq %r9, %r15 + 0x4c, 0x39, 0xc8, //0x00000381 cmpq %r9, %rax + 0x0f, 0x84, 0xca, 0x00, 0x00, 0x00, //0x00000384 je LBB0_74 + 0x4d, 0x29, 0xce, //0x0000038a subq %r9, %r14 + 0x49, 0x29, 0xc1, //0x0000038d subq %rax, %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00000390 jmp LBB0_40 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000395 .p2align 4, 0x90 + //0x000003a0 LBB0_39 + 0x49, 0xff, 0xc2, //0x000003a0 incq %r10 + 0x49, 0x01, 0xc7, //0x000003a3 addq %rax, %r15 + 0x49, 0xff, 0xc1, //0x000003a6 incq %r9 + 0x0f, 0x84, 0xa5, 0x00, 0x00, 0x00, //0x000003a9 je LBB0_74 + //0x000003af LBB0_40 + 0x41, 0x0f, 0xb6, 0x32, //0x000003af movzbl (%r10), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x000003b3 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x000003b7 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x000003bb testl %ebx, %ebx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x000003bd je LBB0_48 + 0x48, 0x63, 0xc3, //0x000003c3 movslq %ebx, %rax + 0x49, 0x29, 0xc6, //0x000003c6 subq %rax, %r14 + 0x0f, 0x8c, 0xe3, 0x02, 0x00, 0x00, //0x000003c9 jl LBB0_75 + 0x48, 0xc1, 0xe3, 0x20, //0x000003cf shlq $32, %rbx + 0x49, 0x8d, 0x4c, 0x30, 0x08, //0x000003d3 leaq $8(%r8,%rsi), %rcx + 0x4c, 0x39, 0xeb, //0x000003d8 cmpq %r13, %rbx + 0x0f, 0x8c, 0x2f, 0x00, 0x00, 0x00, //0x000003db jl LBB0_44 + 0x8b, 0x09, //0x000003e1 movl (%rcx), %ecx + 0x41, 0x89, 0x0f, //0x000003e3 movl %ecx, (%r15) + 0x49, 0x8d, 0x4c, 0x30, 0x0c, //0x000003e6 leaq $12(%r8,%rsi), %rcx + 0x49, 0x8d, 0x77, 0x04, //0x000003eb leaq $4(%r15), %rsi + 0x48, 0x8d, 0x58, 0xfc, //0x000003ef leaq $-4(%rax), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000003f3 cmpq $2, %rbx + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000003f7 jae LBB0_45 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x000003fd jmp LBB0_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000402 .p2align 4, 0x90 + //0x00000410 LBB0_44 + 0x4c, 0x89, 0xfe, //0x00000410 movq %r15, %rsi + 0x48, 0x89, 0xc3, //0x00000413 movq %rax, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000416 cmpq $2, %rbx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000041a jb LBB0_46 + //0x00000420 LBB0_45 + 0x0f, 0xb7, 0x11, //0x00000420 movzwl (%rcx), %edx + 0x66, 0x89, 0x16, //0x00000423 movw %dx, (%rsi) + 0x48, 0x83, 0xc1, 0x02, //0x00000426 addq $2, %rcx + 0x48, 0x83, 0xc6, 0x02, //0x0000042a addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x0000042e addq $-2, %rbx + //0x00000432 LBB0_46 + 0x48, 0x85, 0xdb, //0x00000432 testq %rbx, %rbx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x00000435 je LBB0_39 + 0x0f, 0xb6, 0x09, //0x0000043b movzbl (%rcx), %ecx + 0x88, 0x0e, //0x0000043e movb %cl, (%rsi) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00000440 jmp LBB0_39 + //0x00000445 LBB0_48 + 0x4c, 0x89, 0xc8, //0x00000445 movq %r9, %rax + 0x48, 0xf7, 0xd8, //0x00000448 negq %rax + 0x4d, 0x85, 0xc9, //0x0000044b testq %r9, %r9 + 0x0f, 0x85, 0x55, 0xfc, 0xff, 0xff, //0x0000044e jne LBB0_3 + //0x00000454 LBB0_74 + 0x4d, 0x29, 0xe7, //0x00000454 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x00000457 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x0000045a subq %rdi, %r10 + 0xe9, 0x5c, 0x02, 0x00, 0x00, //0x0000045d jmp LBB0_76 + //0x00000462 LBB0_51 + 0x4c, 0x8d, 0x0d, 0x87, 0x22, 0x00, 0x00, //0x00000462 leaq $8839(%rip), %r9 /* __EscTab+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x05, 0x8f, 0xfb, 0xff, 0xff, //0x00000469 movdqu $-1137(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x97, 0xfb, 0xff, 0xff, //0x00000471 movdqu $-1129(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x9f, 0xfb, 0xff, 0xff, //0x00000479 movdqu $-1121(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x00000481 pcmpeqd %xmm3, %xmm3 + 0x4c, 0x89, 0xe3, //0x00000485 movq %r12, %rbx + 0x49, 0x89, 0xc2, //0x00000488 movq %rax, %r10 + //0x0000048b LBB0_52 + 0x49, 0x83, 0xfa, 0x10, //0x0000048b cmpq $16, %r10 + 0x0f, 0x8c, 0x6a, 0x00, 0x00, 0x00, //0x0000048f jl LBB0_57 + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000495 movl $16, %ecx + 0x31, 0xf6, //0x0000049a xorl %esi, %esi + 0x90, 0x90, 0x90, 0x90, //0x0000049c .p2align 4, 0x90 + //0x000004a0 LBB0_54 + 0xf3, 0x0f, 0x6f, 0x24, 0x37, //0x000004a0 movdqu (%rdi,%rsi), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x000004a5 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x000004a9 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x000004ad movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x000004b1 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x000004b5 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x000004b9 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x000004bd por %xmm6, %xmm7 + 0xf3, 0x0f, 0x7f, 0x24, 0x33, //0x000004c1 movdqu %xmm4, (%rbx,%rsi) + 0x66, 0x0f, 0x64, 0xe3, //0x000004c6 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x000004ca pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x000004ce por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x000004d2 pmovmskb %xmm4, %edx + 0x66, 0x85, 0xd2, //0x000004d6 testw %dx, %dx + 0x0f, 0x85, 0x3a, 0x01, 0x00, 0x00, //0x000004d9 jne LBB0_67 + 0x48, 0x83, 0xc6, 0x10, //0x000004df addq $16, %rsi + 0x49, 0x8d, 0x54, 0x0a, 0xf0, //0x000004e3 leaq $-16(%r10,%rcx), %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x000004e8 addq $-16, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x000004ec cmpq $31, %rdx + 0x0f, 0x8f, 0xaa, 0xff, 0xff, 0xff, //0x000004f0 jg LBB0_54 + 0x48, 0x01, 0xf7, //0x000004f6 addq %rsi, %rdi + 0x49, 0x29, 0xf2, //0x000004f9 subq %rsi, %r10 + 0x48, 0x01, 0xf3, //0x000004fc addq %rsi, %rbx + //0x000004ff LBB0_57 + 0x49, 0x83, 0xfa, 0x08, //0x000004ff cmpq $8, %r10 + 0x0f, 0x8c, 0x85, 0x00, 0x00, 0x00, //0x00000503 jl LBB0_61 + 0x0f, 0xb6, 0x0f, //0x00000509 movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000050c movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00000511 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00000515 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000051a addl %edx, %edx + 0x09, 0xca, //0x0000051c orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x0000051e movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00000522 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00000527 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x0000052a movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000052e movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00000533 shll $3, %ecx + 0x09, 0xf1, //0x00000536 orl %esi, %ecx + 0x09, 0xd1, //0x00000538 orl %edx, %ecx + 0x48, 0x8b, 0x17, //0x0000053a movq (%rdi), %rdx + 0x48, 0x89, 0x13, //0x0000053d movq %rdx, (%rbx) + 0x84, 0xc9, //0x00000540 testb %cl, %cl + 0x0f, 0x85, 0x35, 0x01, 0x00, 0x00, //0x00000542 jne LBB0_71 + 0x0f, 0xb6, 0x4f, 0x04, //0x00000548 movzbl $4(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000054c movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00000551 movzbl $5(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x00000555 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x0000055a addl %edx, %edx + 0x09, 0xca, //0x0000055c orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x06, //0x0000055e movzbl $6(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x00000562 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x00000567 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x07, //0x0000056a movzbl $7(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000056e movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x00000573 shll $3, %ecx + 0x09, 0xf1, //0x00000576 orl %esi, %ecx + 0x09, 0xd1, //0x00000578 orl %edx, %ecx + 0x84, 0xc9, //0x0000057a testb %cl, %cl + 0x0f, 0x85, 0x0c, 0x01, 0x00, 0x00, //0x0000057c jne LBB0_72 + 0x48, 0x83, 0xc3, 0x08, //0x00000582 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00000586 addq $8, %rdi + 0x49, 0x83, 0xc2, 0xf8, //0x0000058a addq $-8, %r10 + //0x0000058e LBB0_61 + 0x49, 0x83, 0xfa, 0x04, //0x0000058e cmpq $4, %r10 + 0x0f, 0x8c, 0x49, 0x00, 0x00, 0x00, //0x00000592 jl LBB0_64 + 0x0f, 0xb6, 0x0f, //0x00000598 movzbl (%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x0000059b movzbl (%rcx,%r9), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x000005a0 movzbl $1(%rdi), %edx + 0x42, 0x0f, 0xb6, 0x14, 0x0a, //0x000005a4 movzbl (%rdx,%r9), %edx + 0x01, 0xd2, //0x000005a9 addl %edx, %edx + 0x09, 0xca, //0x000005ab orl %ecx, %edx + 0x0f, 0xb6, 0x4f, 0x02, //0x000005ad movzbl $2(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x34, 0x09, //0x000005b1 movzbl (%rcx,%r9), %esi + 0xc1, 0xe6, 0x02, //0x000005b6 shll $2, %esi + 0x0f, 0xb6, 0x4f, 0x03, //0x000005b9 movzbl $3(%rdi), %ecx + 0x42, 0x0f, 0xb6, 0x0c, 0x09, //0x000005bd movzbl (%rcx,%r9), %ecx + 0xc1, 0xe1, 0x03, //0x000005c2 shll $3, %ecx + 0x09, 0xf1, //0x000005c5 orl %esi, %ecx + 0x09, 0xd1, //0x000005c7 orl %edx, %ecx + 0x8b, 0x17, //0x000005c9 movl (%rdi), %edx + 0x89, 0x13, //0x000005cb movl %edx, (%rbx) + 0x84, 0xc9, //0x000005cd testb %cl, %cl + 0x0f, 0x85, 0xa8, 0x00, 0x00, 0x00, //0x000005cf jne LBB0_71 + 0x48, 0x83, 0xc3, 0x04, //0x000005d5 addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x000005d9 addq $4, %rdi + 0x49, 0x83, 0xc2, 0xfc, //0x000005dd addq $-4, %r10 + //0x000005e1 LBB0_64 + 0x4d, 0x85, 0xd2, //0x000005e1 testq %r10, %r10 + 0x0f, 0x8e, 0xbd, 0x00, 0x00, 0x00, //0x000005e4 jle LBB0_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000005ea .p2align 4, 0x90 + //0x000005f0 LBB0_65 + 0x0f, 0xb6, 0x0f, //0x000005f0 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x000005f3 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000005f8 jne LBB0_68 + 0x48, 0xff, 0xc7, //0x000005fe incq %rdi + 0x88, 0x0b, //0x00000601 movb %cl, (%rbx) + 0x48, 0xff, 0xc3, //0x00000603 incq %rbx + 0x49, 0x83, 0xfa, 0x01, //0x00000606 cmpq $1, %r10 + 0x4d, 0x8d, 0x52, 0xff, //0x0000060a leaq $-1(%r10), %r10 + 0x0f, 0x8f, 0xdc, 0xff, 0xff, 0xff, //0x0000060e jg LBB0_65 + 0xe9, 0x8e, 0x00, 0x00, 0x00, //0x00000614 jmp LBB0_73 + //0x00000619 LBB0_67 + 0x0f, 0xb7, 0xca, //0x00000619 movzwl %dx, %ecx + 0x0f, 0xbc, 0xc9, //0x0000061c bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x0000061f addq %rcx, %rdi + 0x48, 0x01, 0xf7, //0x00000622 addq %rsi, %rdi + 0x49, 0x29, 0xca, //0x00000625 subq %rcx, %r10 + 0x49, 0x29, 0xf2, //0x00000628 subq %rsi, %r10 + 0x48, 0x01, 0xcb, //0x0000062b addq %rcx, %rbx + 0x48, 0x01, 0xf3, //0x0000062e addq %rsi, %rbx + //0x00000631 LBB0_68 + 0x8a, 0x0f, //0x00000631 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000633 .p2align 4, 0x90 + //0x00000640 LBB0_69 + 0x48, 0x89, 0xda, //0x00000640 movq %rbx, %rdx + 0x0f, 0xb6, 0xc9, //0x00000643 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00000646 shlq $4, %rcx + 0x49, 0x63, 0x1c, 0x08, //0x0000064a movslq (%r8,%rcx), %rbx + 0x49, 0x8b, 0x4c, 0x08, 0x08, //0x0000064e movq $8(%r8,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00000653 movq %rcx, (%rdx) + 0x48, 0x01, 0xd3, //0x00000656 addq %rdx, %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00000659 cmpq $2, %r10 + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x0000065d jl LBB0_73 + 0x49, 0xff, 0xca, //0x00000663 decq %r10 + 0x0f, 0xb6, 0x4f, 0x01, //0x00000666 movzbl $1(%rdi), %ecx + 0x48, 0xff, 0xc7, //0x0000066a incq %rdi + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x0000066d cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00000672 jne LBB0_69 + 0xe9, 0x0e, 0xfe, 0xff, 0xff, //0x00000678 jmp LBB0_52 + //0x0000067d LBB0_71 + 0x0f, 0xbc, 0xc9, //0x0000067d bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00000680 addq %rcx, %rdi + 0x49, 0x29, 0xca, //0x00000683 subq %rcx, %r10 + 0x48, 0x01, 0xcb, //0x00000686 addq %rcx, %rbx + 0xe9, 0xa3, 0xff, 0xff, 0xff, //0x00000689 jmp LBB0_68 + //0x0000068e LBB0_72 + 0x0f, 0xbc, 0xc9, //0x0000068e bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00000691 leaq $4(%rcx), %rdx + 0x48, 0x8d, 0x7c, 0x0f, 0x04, //0x00000695 leaq $4(%rdi,%rcx), %rdi + 0x49, 0x29, 0xd2, //0x0000069a subq %rdx, %r10 + 0x48, 0x8d, 0x5c, 0x0b, 0x04, //0x0000069d leaq $4(%rbx,%rcx), %rbx + 0xe9, 0x8a, 0xff, 0xff, 0xff, //0x000006a2 jmp LBB0_68 + //0x000006a7 LBB0_73 + 0x4c, 0x29, 0xe3, //0x000006a7 subq %r12, %rbx + 0x49, 0x89, 0x1b, //0x000006aa movq %rbx, (%r11) + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000006ad jmp LBB0_77 + //0x000006b2 LBB0_75 + 0x4d, 0x29, 0xe7, //0x000006b2 subq %r12, %r15 + 0x4d, 0x89, 0x3b, //0x000006b5 movq %r15, (%r11) + 0x49, 0xf7, 0xd2, //0x000006b8 notq %r10 + 0x49, 0x01, 0xfa, //0x000006bb addq %rdi, %r10 + //0x000006be LBB0_76 + 0x4c, 0x89, 0xd0, //0x000006be movq %r10, %rax + //0x000006c1 LBB0_77 + 0x48, 0x83, 0xc4, 0x10, //0x000006c1 addq $16, %rsp + 0x5b, //0x000006c5 popq %rbx + 0x41, 0x5c, //0x000006c6 popq %r12 + 0x41, 0x5d, //0x000006c8 popq %r13 + 0x41, 0x5e, //0x000006ca popq %r14 + 0x41, 0x5f, //0x000006cc popq %r15 + 0x5d, //0x000006ce popq %rbp + 0xc3, //0x000006cf retq + //0x000006d0 LBB0_78 + 0x4d, 0x29, 0xe7, //0x000006d0 subq %r12, %r15 + 0x49, 0xf7, 0xd1, //0x000006d3 notq %r9 + 0x4d, 0x01, 0xcf, //0x000006d6 addq %r9, %r15 + 0x4d, 0x89, 0x3b, //0x000006d9 movq %r15, (%r11) + 0x49, 0x29, 0xfa, //0x000006dc subq %rdi, %r10 + 0x4d, 0x01, 0xca, //0x000006df addq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x000006e2 notq %r10 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000006e5 jmp LBB0_76 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006ea .p2align 4, 0x00 + //0x000006f0 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000006f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x000006f8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000700 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x00000708 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000710 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x00000718 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000720 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x00000728 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000730 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x00000738 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000740 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x00000748 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000750 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x00000758 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000760 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x00000768 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000770 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x00000778 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000780 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000788 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000790 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000798 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x000007a8 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x000007b8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007c0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007c8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x000007d8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x000007e8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000007f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x000007f8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000800 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x00000808 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000810 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x00000818 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000820 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x00000828 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000830 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x00000838 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000840 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x00000848 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000850 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x00000858 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000860 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x00000868 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000870 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x00000878 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000880 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x00000888 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000890 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x00000898 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x000008a8 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x000008b8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x000008c8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x000008d8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x000008e8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000910 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000918 QUAD $0x000000000000225c // .asciz 8, '\\"\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb0 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cb8 QUAD $0x0000000000005c5c // .asciz 8, '\\\\\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000010f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000011f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000013f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000014f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000015f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000016f0 .p2align 4, 0x00 + //0x000016f0 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000016f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x000016f8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001700 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x00001708 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001710 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x00001718 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001720 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00001728 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001730 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00001738 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001740 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00001748 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001750 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00001758 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001760 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x00001768 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001770 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x00001778 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001780 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001788 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001790 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001798 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x000017a8 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x000017b8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017c0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017c8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x000017d8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x000017e8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000017f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x000017f8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001800 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x00001808 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001810 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x00001818 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001820 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00001828 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001830 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00001838 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001840 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00001848 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001850 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00001858 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001860 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x00001868 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001870 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x00001878 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001880 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x00001888 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001890 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x00001898 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018a0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x000018a8 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018b0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x000018b8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018c0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x000018c8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x000018d8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x000018e8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000018f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001910 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x00001918 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000019f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ca0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cb0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00001cb8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ce0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001cf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001d90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001da0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001db0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001dc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001dd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001de0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001df0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001e90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ea0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001eb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ec0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ed0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ee0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ef0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001f90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002030 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002040 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002050 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002060 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002070 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002080 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002090 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000020f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002100 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002110 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002120 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002130 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002140 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002150 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002160 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002170 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002180 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002190 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000021f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002210 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002220 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002230 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000022f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002300 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002310 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002320 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002330 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002340 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002350 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002360 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002370 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002380 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002390 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002400 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002410 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002420 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002430 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002440 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002450 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002460 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002470 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002480 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002490 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000024f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002500 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002510 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002520 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002530 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002540 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002550 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002560 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002570 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002580 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002590 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002640 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002650 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002660 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000026e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x000026f0 .p2align 4, 0x00 + //0x000026f0 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000026f0 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00002700 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .ascii 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002710 QUAD $0x0000000000010000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //0x00002740 QUAD $0x0000000000000000; LONG $0x00000000; BYTE $0x01 // .ascii 13, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000274d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000275d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000276d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000277d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000278d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000279d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027ad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027bd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027cd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000027dd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x000027ed WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array.go new file mode 100644 index 000000000..0279a903c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_array func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_array uintptr + +//go:nosplit +func skip_array(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_array(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_subr.go new file mode 100644 index 000000000..6bbe163f4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_array = 160 +) + +const ( + _stack__skip_array = 160 +) + +const ( + _size__skip_array = 10216 +) + +var ( + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9556, 160}, + {9560, 48}, + {9561, 40}, + {9563, 32}, + {9565, 24}, + {9567, 16}, + {9569, 8}, + {9570, 0}, + {10216, 160}, + } +) + +var _cfunc_skip_array = []loader.CFunc{ + {"_skip_array_entry", 0, _entry__skip_array, 0, nil}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_text_amd64.go new file mode 100644 index 000000000..3fbc8aab9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_array_text_amd64.go @@ -0,0 +1,3021 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_skip_array = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 5 + //0x00000010 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000030 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000040 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000040 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000050 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000050 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000060 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000060 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000070 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000070 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000080 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000080 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000090 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000090 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000a0 .p2align 4, 0x90 + //0x000000a0 _skip_array + 0x55, //0x000000a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp + 0x41, 0x57, //0x000000a4 pushq %r15 + 0x41, 0x56, //0x000000a6 pushq %r14 + 0x41, 0x55, //0x000000a8 pushq %r13 + 0x41, 0x54, //0x000000aa pushq %r12 + 0x53, //0x000000ac pushq %rbx + 0x48, 0x83, 0xec, 0x70, //0x000000ad subq $112, %rsp + 0x48, 0x89, 0x4d, 0x80, //0x000000b1 movq %rcx, $-128(%rbp) + 0x0f, 0x10, 0x05, 0x44, 0xff, 0xff, 0xff, //0x000000b5 movups $-188(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x48, 0x89, 0x55, 0x88, //0x000000bc movq %rdx, $-120(%rbp) + 0x0f, 0x11, 0x02, //0x000000c0 movups %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x98, //0x000000c3 movq %rdi, $-104(%rbp) + 0x4c, 0x8b, 0x0f, //0x000000c7 movq (%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x000000ca movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000000cd notq %rax + 0x48, 0x89, 0x45, 0xa8, //0x000000d0 movq %rax, $-88(%rbp) + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000000d4 movl $1, %r11d + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000da movl $1, %eax + 0x4c, 0x29, 0xc8, //0x000000df subq %r9, %rax + 0x48, 0x89, 0x45, 0xa0, //0x000000e2 movq %rax, $-96(%rbp) + 0x49, 0x8d, 0x41, 0x40, //0x000000e6 leaq $64(%r9), %rax + 0x48, 0x89, 0x45, 0x90, //0x000000ea movq %rax, $-112(%rbp) + 0x48, 0x8b, 0x06, //0x000000ee movq (%rsi), %rax + 0x48, 0x89, 0x45, 0xc0, //0x000000f1 movq %rax, $-64(%rbp) + 0x49, 0x8d, 0x41, 0x05, //0x000000f5 leaq $5(%r9), %rax + 0x48, 0x89, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000000f9 movq %rax, $-152(%rbp) + 0x48, 0xc7, 0x85, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000100 movq $-1, $-136(%rbp) + 0xf3, 0x0f, 0x6f, 0x05, 0xfd, 0xfe, 0xff, 0xff, //0x0000010b movdqu $-259(%rip), %xmm0 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x05, 0xff, 0xff, 0xff, //0x00000113 movdqu $-251(%rip), %xmm1 /* LCPI0_2+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x0d, 0xff, 0xff, 0xff, //0x0000011b movdqu $-243(%rip), %xmm2 /* LCPI0_3+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xf6, //0x00000123 pcmpeqd %xmm14, %xmm14 + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x0f, 0xff, 0xff, 0xff, //0x00000128 movdqu $-241(%rip), %xmm8 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x2d, 0x16, 0xff, 0xff, 0xff, //0x00000131 movdqu $-234(%rip), %xmm13 /* LCPI0_5+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0x1d, 0xff, 0xff, 0xff, //0x0000013a movdqu $-227(%rip), %xmm9 /* LCPI0_6+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x24, 0xff, 0xff, 0xff, //0x00000143 movdqu $-220(%rip), %xmm10 /* LCPI0_7+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x1d, 0x2b, 0xff, 0xff, 0xff, //0x0000014c movdqu $-213(%rip), %xmm11 /* LCPI0_8+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x25, 0x32, 0xff, 0xff, 0xff, //0x00000155 movdqu $-206(%rip), %xmm12 /* LCPI0_9+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000015e movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x4d, 0xd0, //0x00000162 movq %r9, $-48(%rbp) + 0xe9, 0x47, 0x00, 0x00, 0x00, //0x00000166 jmp LBB0_6 + //0x0000016b LBB0_1 + 0x48, 0x8b, 0x55, 0x88, //0x0000016b movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x0000016f movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000172 cmpq $4095, %rax + 0x0f, 0x8f, 0x32, 0x24, 0x00, 0x00, //0x00000178 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x0000017e leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x00000182 movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00000185 movq $6, $8(%rdx,%rax,8) + 0x90, 0x90, //0x0000018e .p2align 4, 0x90 + //0x00000190 LBB0_3 + 0x4c, 0x8b, 0x5d, 0xc0, //0x00000190 movq $-64(%rbp), %r11 + //0x00000194 LBB0_4 + 0x48, 0x8b, 0x45, 0x88, //0x00000194 movq $-120(%rbp), %rax + 0x48, 0x8b, 0x10, //0x00000198 movq (%rax), %rdx + 0x4c, 0x89, 0x5d, 0xc0, //0x0000019b movq %r11, $-64(%rbp) + 0x49, 0x89, 0xd3, //0x0000019f movq %rdx, %r11 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000001a2 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000001a9 testq %rdx, %rdx + 0x0f, 0x84, 0x42, 0x24, 0x00, 0x00, //0x000001ac je LBB0_427 + //0x000001b2 LBB0_6 + 0x48, 0x8b, 0x45, 0x98, //0x000001b2 movq $-104(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x000001b6 movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000001ba movq $-64(%rbp), %rcx + 0x48, 0x89, 0xcb, //0x000001be movq %rcx, %rbx + 0x48, 0x29, 0xc3, //0x000001c1 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000001c4 jae LBB0_11 + 0x41, 0x8a, 0x14, 0x09, //0x000001ca movb (%r9,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000001ce cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001d1 je LBB0_11 + 0x80, 0xfa, 0x20, //0x000001d7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001da je LBB0_11 + 0x80, 0xc2, 0xf7, //0x000001e0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001e3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001e6 jbe LBB0_11 + 0x49, 0x89, 0xcf, //0x000001ec movq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0x88, //0x000001ef movq $-120(%rbp), %r10 + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x000001f3 jmp LBB0_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001f8 .p2align 4, 0x90 + //0x00000200 LBB0_11 + 0x4c, 0x8d, 0x79, 0x01, //0x00000200 leaq $1(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000204 cmpq %rax, %r15 + 0x4c, 0x8b, 0x55, 0x88, //0x00000207 movq $-120(%rbp), %r10 + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x0000020b jae LBB0_15 + 0x43, 0x8a, 0x14, 0x39, //0x00000211 movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000215 cmpb $13, %dl + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000218 je LBB0_15 + 0x80, 0xfa, 0x20, //0x0000021e cmpb $32, %dl + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000221 je LBB0_15 + 0x80, 0xc2, 0xf7, //0x00000227 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000022a cmpb $1, %dl + 0x0f, 0x87, 0x0a, 0x01, 0x00, 0x00, //0x0000022d ja LBB0_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000233 .p2align 4, 0x90 + //0x00000240 LBB0_15 + 0x4c, 0x8d, 0x79, 0x02, //0x00000240 leaq $2(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000244 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000247 jae LBB0_19 + 0x43, 0x8a, 0x14, 0x39, //0x0000024d movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000251 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000254 je LBB0_19 + 0x80, 0xfa, 0x20, //0x0000025a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000025d je LBB0_19 + 0x80, 0xc2, 0xf7, //0x00000263 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000266 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000269 ja LBB0_32 + 0x90, //0x0000026f .p2align 4, 0x90 + //0x00000270 LBB0_19 + 0x4c, 0x8d, 0x79, 0x03, //0x00000270 leaq $3(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000274 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000277 jae LBB0_23 + 0x43, 0x8a, 0x14, 0x39, //0x0000027d movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000281 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000284 je LBB0_23 + 0x80, 0xfa, 0x20, //0x0000028a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000028d je LBB0_23 + 0x80, 0xc2, 0xf7, //0x00000293 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000296 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000299 ja LBB0_32 + 0x90, //0x0000029f .p2align 4, 0x90 + //0x000002a0 LBB0_23 + 0x48, 0x8d, 0x51, 0x04, //0x000002a0 leaq $4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x000002a4 cmpq %rdx, %rax + 0x0f, 0x86, 0xf4, 0x22, 0x00, 0x00, //0x000002a7 jbe LBB0_417 + 0x48, 0x39, 0xd0, //0x000002ad cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000002b0 je LBB0_29 + 0x49, 0x8d, 0x14, 0x01, //0x000002b6 leaq (%r9,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x000002ba addq $4, %rbx + 0x48, 0x03, 0x8d, 0x68, 0xff, 0xff, 0xff, //0x000002be addq $-152(%rbp), %rcx + 0x49, 0x89, 0xcf, //0x000002c5 movq %rcx, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002c8 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d2 .p2align 4, 0x90 + //0x000002e0 LBB0_26 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002e0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002e5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002e8 ja LBB0_31 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002ee btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002f2 jae LBB0_31 + 0x49, 0xff, 0xc7, //0x000002f8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002fb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002fe jne LBB0_26 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000304 jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000309 .p2align 4, 0x90 + //0x00000310 LBB0_29 + 0x4c, 0x01, 0xca, //0x00000310 addq %r9, %rdx + //0x00000313 LBB0_30 + 0x4c, 0x29, 0xca, //0x00000313 subq %r9, %rdx + 0x49, 0x89, 0xd7, //0x00000316 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00000319 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000031c jb LBB0_32 + 0xe9, 0x7d, 0x22, 0x00, 0x00, //0x00000322 jmp LBB0_418 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000327 .p2align 4, 0x90 + //0x00000330 LBB0_31 + 0x4c, 0x03, 0x7d, 0xa8, //0x00000330 addq $-88(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x00000334 cmpq %rax, %r15 + 0x0f, 0x83, 0x67, 0x22, 0x00, 0x00, //0x00000337 jae LBB0_418 + //0x0000033d LBB0_32 + 0x49, 0x8d, 0x4f, 0x01, //0x0000033d leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00000341 movq %rcx, (%rsi) + 0x43, 0x0f, 0xbe, 0x3c, 0x39, //0x00000344 movsbl (%r9,%r15), %edi + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000349 movq $-1, %rax + 0x85, 0xff, //0x00000350 testl %edi, %edi + 0x0f, 0x84, 0x9c, 0x22, 0x00, 0x00, //0x00000352 je LBB0_427 + 0x48, 0x89, 0x4d, 0xc0, //0x00000358 movq %rcx, $-64(%rbp) + 0x4d, 0x89, 0xf8, //0x0000035c movq %r15, %r8 + 0x49, 0xf7, 0xd0, //0x0000035f notq %r8 + 0x49, 0x8d, 0x53, 0xff, //0x00000362 leaq $-1(%r11), %rdx + 0x43, 0x8b, 0x1c, 0xda, //0x00000366 movl (%r10,%r11,8), %ebx + 0x48, 0x8b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x0000036a movq $-136(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00000371 cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x00000375 cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000379 movq %rcx, $-136(%rbp) + 0xff, 0xcb, //0x00000380 decl %ebx + 0x83, 0xfb, 0x05, //0x00000382 cmpl $5, %ebx + 0x0f, 0x87, 0x79, 0x02, 0x00, 0x00, //0x00000385 ja LBB0_66 + 0x48, 0x8d, 0x0d, 0xf6, 0x24, 0x00, 0x00, //0x0000038b leaq $9462(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x99, //0x00000392 movslq (%rcx,%rbx,4), %rbx + 0x48, 0x01, 0xcb, //0x00000396 addq %rcx, %rbx + 0xff, 0xe3, //0x00000399 jmpq *%rbx + //0x0000039b LBB0_35 + 0x83, 0xff, 0x2c, //0x0000039b cmpl $44, %edi + 0x0f, 0x84, 0xdb, 0x04, 0x00, 0x00, //0x0000039e je LBB0_102 + 0x83, 0xff, 0x5d, //0x000003a4 cmpl $93, %edi + 0x0f, 0x84, 0x3c, 0x02, 0x00, 0x00, //0x000003a7 je LBB0_37 + 0xe9, 0x3b, 0x22, 0x00, 0x00, //0x000003ad jmp LBB0_426 + //0x000003b2 LBB0_38 + 0x40, 0x80, 0xff, 0x5d, //0x000003b2 cmpb $93, %dil + 0x0f, 0x84, 0x2d, 0x02, 0x00, 0x00, //0x000003b6 je LBB0_37 + 0x4b, 0xc7, 0x04, 0xda, 0x01, 0x00, 0x00, 0x00, //0x000003bc movq $1, (%r10,%r11,8) + 0x83, 0xff, 0x7b, //0x000003c4 cmpl $123, %edi + 0x0f, 0x86, 0x43, 0x02, 0x00, 0x00, //0x000003c7 jbe LBB0_67 + 0xe9, 0x1b, 0x22, 0x00, 0x00, //0x000003cd jmp LBB0_426 + //0x000003d2 LBB0_40 + 0x40, 0x80, 0xff, 0x22, //0x000003d2 cmpb $34, %dil + 0x0f, 0x85, 0x11, 0x22, 0x00, 0x00, //0x000003d6 jne LBB0_426 + 0x4b, 0xc7, 0x04, 0xda, 0x04, 0x00, 0x00, 0x00, //0x000003dc movq $4, (%r10,%r11,8) + 0x48, 0x8b, 0x45, 0x98, //0x000003e4 movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000003e8 movq $8(%rax), %r10 + 0xf6, 0x45, 0x80, 0x20, //0x000003ec testb $32, $-128(%rbp) + 0x0f, 0x85, 0xab, 0x04, 0x00, 0x00, //0x000003f0 jne LBB0_104 + 0x4d, 0x89, 0xd5, //0x000003f6 movq %r10, %r13 + 0x48, 0x8b, 0x45, 0xc0, //0x000003f9 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc5, //0x000003fd subq %rax, %r13 + 0x0f, 0x84, 0xd1, 0x23, 0x00, 0x00, //0x00000400 je LBB0_462 + 0x4d, 0x8d, 0x1c, 0x01, //0x00000406 leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x0000040a cmpq $64, %r13 + 0x0f, 0x82, 0xb4, 0x1b, 0x00, 0x00, //0x0000040e jb LBB0_355 + 0x44, 0x89, 0xe9, //0x00000414 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000417 andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb8, //0x0000041a movq %rcx, $-72(%rbp) + 0x4b, 0x8d, 0x4c, 0x02, 0xc0, //0x0000041e leaq $-64(%r10,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000423 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000427 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x90, //0x0000042a addq $-112(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000042e movq %rcx, $-80(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000432 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00000439 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x0000043c .p2align 4, 0x90 + //0x00000440 LBB0_45 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000440 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000445 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x0000044b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000451 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000457 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000045b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x0000045f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000463 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000467 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x0000046b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x0000046f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000473 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000477 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x0000047b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000047f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000483 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000487 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000048b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x0000048f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000493 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000497 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x0000049b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x000004a0 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x000004a4 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x000004a9 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x000004ad shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000004b1 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000004b5 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x000004b8 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x000004bb shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x000004bf shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x000004c3 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x000004c7 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x000004ca orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x000004cd orq %r12, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000004d0 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000004d4 jne LBB0_47 + 0x48, 0x85, 0xd2, //0x000004da testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000004dd jne LBB0_56 + //0x000004e3 LBB0_47 + 0x48, 0x09, 0xdf, //0x000004e3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004e6 movq %rdx, %rax + 0x4c, 0x09, 0xc0, //0x000004e9 orq %r8, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004ec jne LBB0_57 + //0x000004f2 LBB0_48 + 0x48, 0x85, 0xff, //0x000004f2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000004f5 jne LBB0_58 + //0x000004fb LBB0_49 + 0x49, 0x83, 0xc5, 0xc0, //0x000004fb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x000004ff addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000503 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00000507 ja LBB0_45 + 0xe9, 0x41, 0x13, 0x00, 0x00, //0x0000050d jmp LBB0_50 + //0x00000512 LBB0_56 + 0x4c, 0x89, 0xd8, //0x00000512 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000515 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000519 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x0000051d addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x00000520 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000523 movq %rdx, %rax + 0x4c, 0x09, 0xc0, //0x00000526 orq %r8, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000529 je LBB0_48 + //0x0000052f LBB0_57 + 0x4c, 0x89, 0xc0, //0x0000052f movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x00000532 notq %rax + 0x48, 0x21, 0xd0, //0x00000535 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000538 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc1, //0x0000053c orq %r8, %rcx + 0x48, 0x89, 0xce, //0x0000053f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000542 notq %rsi + 0x48, 0x21, 0xd6, //0x00000545 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000548 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000552 andq %rdx, %rsi + 0x45, 0x31, 0xc0, //0x00000555 xorl %r8d, %r8d + 0x48, 0x01, 0xc6, //0x00000558 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc0, //0x0000055b setb %r8b + 0x48, 0x01, 0xf6, //0x0000055f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000562 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000056c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000056f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000572 notq %rsi + 0x48, 0x21, 0xf7, //0x00000575 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000578 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x0000057b je LBB0_49 + //0x00000581 LBB0_58 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000581 bsfq %rdi, %rax + //0x00000585 LBB0_59 + 0x4c, 0x03, 0x5d, 0xa0, //0x00000585 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000589 addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc0, //0x0000058c movq $-64(%rbp), %rdi + 0xe9, 0xfd, 0x09, 0x00, 0x00, //0x00000590 jmp LBB0_188 + //0x00000595 LBB0_60 + 0x40, 0x80, 0xff, 0x3a, //0x00000595 cmpb $58, %dil + 0x0f, 0x85, 0x4e, 0x20, 0x00, 0x00, //0x00000599 jne LBB0_426 + 0x4b, 0xc7, 0x04, 0xda, 0x00, 0x00, 0x00, 0x00, //0x0000059f movq $0, (%r10,%r11,8) + 0xe9, 0xe4, 0xfb, 0xff, 0xff, //0x000005a7 jmp LBB0_3 + //0x000005ac LBB0_62 + 0x83, 0xff, 0x2c, //0x000005ac cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000005af jne LBB0_63 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x000005b5 cmpq $4095, %r11 + 0x0f, 0x8f, 0xee, 0x1f, 0x00, 0x00, //0x000005bc jg LBB0_439 + 0x49, 0x8d, 0x43, 0x01, //0x000005c2 leaq $1(%r11), %rax + 0x49, 0x89, 0x02, //0x000005c6 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xda, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000005c9 movq $3, $8(%r10,%r11,8) + 0xe9, 0xb9, 0xfb, 0xff, 0xff, //0x000005d2 jmp LBB0_3 + //0x000005d7 LBB0_64 + 0x83, 0xff, 0x22, //0x000005d7 cmpl $34, %edi + 0x0f, 0x84, 0xd0, 0x04, 0x00, 0x00, //0x000005da je LBB0_127 + //0x000005e0 LBB0_63 + 0x83, 0xff, 0x7d, //0x000005e0 cmpl $125, %edi + 0x0f, 0x85, 0x04, 0x20, 0x00, 0x00, //0x000005e3 jne LBB0_426 + //0x000005e9 LBB0_37 + 0x49, 0x89, 0x12, //0x000005e9 movq %rdx, (%r10) + 0x49, 0x89, 0xd3, //0x000005ec movq %rdx, %r11 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000005ef movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000005f6 testq %rdx, %rdx + 0x0f, 0x85, 0xb3, 0xfb, 0xff, 0xff, //0x000005f9 jne LBB0_6 + 0xe9, 0xf0, 0x1f, 0x00, 0x00, //0x000005ff jmp LBB0_427 + //0x00000604 LBB0_66 + 0x49, 0x89, 0x12, //0x00000604 movq %rdx, (%r10) + 0x83, 0xff, 0x7b, //0x00000607 cmpl $123, %edi + 0x0f, 0x87, 0xdd, 0x1f, 0x00, 0x00, //0x0000060a ja LBB0_426 + //0x00000610 LBB0_67 + 0x4f, 0x8d, 0x14, 0x39, //0x00000610 leaq (%r9,%r15), %r10 + 0x89, 0xf9, //0x00000614 movl %edi, %ecx + 0x48, 0x8d, 0x15, 0x83, 0x22, 0x00, 0x00, //0x00000616 leaq $8835(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x0000061d movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00000621 addq %rdx, %rcx + 0xff, 0xe1, //0x00000624 jmpq *%rcx + //0x00000626 LBB0_68 + 0x48, 0x8b, 0x45, 0x98, //0x00000626 movq $-104(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x0000062a movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x0000062e subq %r15, %rdi + 0x0f, 0x84, 0x9e, 0x1f, 0x00, 0x00, //0x00000631 je LBB0_421 + 0x41, 0x80, 0x3a, 0x30, //0x00000637 cmpb $48, (%r10) + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000063b movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000063f jne LBB0_73 + 0x48, 0x83, 0xff, 0x01, //0x00000645 cmpq $1, %rdi + 0x0f, 0x84, 0xb3, 0x16, 0x00, 0x00, //0x00000649 je LBB0_336 + 0x43, 0x8a, 0x04, 0x19, //0x0000064f movb (%r9,%r11), %al + 0x04, 0xd2, //0x00000653 addb $-46, %al + 0x3c, 0x37, //0x00000655 cmpb $55, %al + 0x0f, 0x87, 0xa5, 0x16, 0x00, 0x00, //0x00000657 ja LBB0_336 + 0x0f, 0xb6, 0xc0, //0x0000065d movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000660 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000066a btq %rax, %rcx + 0x0f, 0x83, 0x8e, 0x16, 0x00, 0x00, //0x0000066e jae LBB0_336 + //0x00000674 LBB0_73 + 0x48, 0x83, 0xff, 0x10, //0x00000674 cmpq $16, %rdi + 0x0f, 0x82, 0x86, 0x18, 0x00, 0x00, //0x00000678 jb LBB0_344 + 0x4c, 0x8d, 0x4f, 0xf0, //0x0000067e leaq $-16(%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x00000682 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000685 andq $-16, %rax + 0x4e, 0x8d, 0x5c, 0x10, 0x10, //0x00000689 leaq $16(%rax,%r10), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x0000068e andl $15, %r9d + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000692 movq $-1, $-64(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000069a movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000006a1 movq $-1, %r13 + 0x4d, 0x89, 0xd6, //0x000006a8 movq %r10, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000006ab .p2align 4, 0x90 + //0x000006b0 LBB0_75 + 0xf3, 0x41, 0x0f, 0x6f, 0x1e, //0x000006b0 movdqu (%r14), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006b5 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x000006b9 pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x000006be movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x000006c3 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x000006c7 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006cb movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000006cf pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000006d4 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000006d8 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000006dd por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006e1 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000006e5 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000006e9 pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000006ee pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000006f3 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0xeb, 0xe3, //0x000006f7 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000006fb por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000006ff por %xmm4, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x00000703 pmovmskb %xmm3, %r8d + 0x66, 0x0f, 0xd7, 0xd6, //0x00000708 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x0000070c pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000710 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x00000715 addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x0000071c xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x0000071f bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x00000723 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000726 je LBB0_77 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x0000072c movl $-1, %esi + 0xd3, 0xe6, //0x00000731 shll %cl, %esi + 0xf7, 0xd6, //0x00000733 notl %esi + 0x41, 0x21, 0xf0, //0x00000735 andl %esi, %r8d + 0x21, 0xf0, //0x00000738 andl %esi, %eax + 0x21, 0xd6, //0x0000073a andl %edx, %esi + 0x89, 0xf2, //0x0000073c movl %esi, %edx + //0x0000073e LBB0_77 + 0x41, 0x8d, 0x70, 0xff, //0x0000073e leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x00000742 andl %r8d, %esi + 0x0f, 0x85, 0xd3, 0x10, 0x00, 0x00, //0x00000745 jne LBB0_306 + 0x8d, 0x70, 0xff, //0x0000074b leal $-1(%rax), %esi + 0x21, 0xc6, //0x0000074e andl %eax, %esi + 0x0f, 0x85, 0xc8, 0x10, 0x00, 0x00, //0x00000750 jne LBB0_306 + 0x8d, 0x72, 0xff, //0x00000756 leal $-1(%rdx), %esi + 0x21, 0xd6, //0x00000759 andl %edx, %esi + 0x0f, 0x85, 0xbd, 0x10, 0x00, 0x00, //0x0000075b jne LBB0_306 + 0x45, 0x85, 0xc0, //0x00000761 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000764 je LBB0_83 + 0x4c, 0x89, 0xf3, //0x0000076a movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x0000076d subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x00000770 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x00000774 addq %rbx, %rsi + 0x49, 0x83, 0xfd, 0xff, //0x00000777 cmpq $-1, %r13 + 0x0f, 0x85, 0xb6, 0x14, 0x00, 0x00, //0x0000077b jne LBB0_322 + 0x49, 0x89, 0xf5, //0x00000781 movq %rsi, %r13 + //0x00000784 LBB0_83 + 0x85, 0xc0, //0x00000784 testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000786 je LBB0_86 + 0x4c, 0x89, 0xf6, //0x0000078c movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x0000078f subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000792 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x00000795 addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x00000798 cmpq $-1, %r12 + 0x0f, 0x85, 0x4d, 0x12, 0x00, 0x00, //0x0000079c jne LBB0_311 + 0x49, 0x89, 0xc4, //0x000007a2 movq %rax, %r12 + //0x000007a5 LBB0_86 + 0x85, 0xd2, //0x000007a5 testl %edx, %edx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000007a7 je LBB0_89 + 0x4c, 0x89, 0xf6, //0x000007ad movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x000007b0 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x000007b3 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x000007b6 addq %rsi, %rax + 0x48, 0x83, 0x7d, 0xc0, 0xff, //0x000007b9 cmpq $-1, $-64(%rbp) + 0x0f, 0x85, 0x2b, 0x12, 0x00, 0x00, //0x000007be jne LBB0_311 + 0x48, 0x89, 0x45, 0xc0, //0x000007c4 movq %rax, $-64(%rbp) + //0x000007c8 LBB0_89 + 0x83, 0xf9, 0x10, //0x000007c8 cmpl $16, %ecx + 0x0f, 0x85, 0xcf, 0x04, 0x00, 0x00, //0x000007cb jne LBB0_151 + 0x49, 0x83, 0xc6, 0x10, //0x000007d1 addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x000007d5 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x000007d9 cmpq $15, %rdi + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000007dd ja LBB0_75 + 0x4d, 0x85, 0xc9, //0x000007e3 testq %r9, %r9 + 0x48, 0x8b, 0x7d, 0xc0, //0x000007e6 movq $-64(%rbp), %rdi + 0x0f, 0x84, 0xba, 0x04, 0x00, 0x00, //0x000007ea je LBB0_152 + //0x000007f0 LBB0_92 + 0x4b, 0x8d, 0x04, 0x0b, //0x000007f0 leaq (%r11,%r9), %rax + 0x48, 0x8d, 0x35, 0x81, 0x23, 0x00, 0x00, //0x000007f4 leaq $9089(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x000007fb jmp LBB0_96 + //0x00000800 LBB0_93 + 0x49, 0x89, 0xcb, //0x00000800 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x00000803 subq %r10, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x00000806 cmpq $-1, %r12 + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x0000080a jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000810 decq %r11 + 0x4d, 0x89, 0xdc, //0x00000813 movq %r11, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000816 .p2align 4, 0x90 + //0x00000820 LBB0_95 + 0x49, 0x89, 0xcb, //0x00000820 movq %rcx, %r11 + 0x49, 0xff, 0xc9, //0x00000823 decq %r9 + 0x0f, 0x84, 0xce, 0x11, 0x00, 0x00, //0x00000826 je LBB0_312 + //0x0000082c LBB0_96 + 0x41, 0x0f, 0xbe, 0x13, //0x0000082c movsbl (%r11), %edx + 0x83, 0xc2, 0xd5, //0x00000830 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00000833 cmpl $58, %edx + 0x0f, 0x87, 0x6e, 0x04, 0x00, 0x00, //0x00000836 ja LBB0_152 + 0x49, 0x8d, 0x4b, 0x01, //0x0000083c leaq $1(%r11), %rcx + 0x48, 0x63, 0x14, 0x96, //0x00000840 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00000844 addq %rsi, %rdx + 0xff, 0xe2, //0x00000847 jmpq *%rdx + //0x00000849 LBB0_98 + 0x49, 0x89, 0xcb, //0x00000849 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x0000084c subq %r10, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000084f cmpq $-1, %rdi + 0x0f, 0x85, 0x92, 0x14, 0x00, 0x00, //0x00000853 jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000859 decq %r11 + 0x4c, 0x89, 0xdf, //0x0000085c movq %r11, %rdi + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000085f jmp LBB0_95 + //0x00000864 LBB0_100 + 0x49, 0x89, 0xcb, //0x00000864 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x00000867 subq %r10, %r11 + 0x49, 0x83, 0xfd, 0xff, //0x0000086a cmpq $-1, %r13 + 0x0f, 0x85, 0x77, 0x14, 0x00, 0x00, //0x0000086e jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000874 decq %r11 + 0x4d, 0x89, 0xdd, //0x00000877 movq %r11, %r13 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000087a jmp LBB0_95 + //0x0000087f LBB0_102 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x0000087f cmpq $4095, %r11 + 0x0f, 0x8f, 0x24, 0x1d, 0x00, 0x00, //0x00000886 jg LBB0_439 + 0x49, 0x8d, 0x43, 0x01, //0x0000088c leaq $1(%r11), %rax + 0x49, 0x89, 0x02, //0x00000890 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xda, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000893 movq $0, $8(%r10,%r11,8) + 0xe9, 0xef, 0xf8, 0xff, 0xff, //0x0000089c jmp LBB0_3 + //0x000008a1 LBB0_104 + 0x4c, 0x89, 0xd0, //0x000008a1 movq %r10, %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000008a4 movq $-64(%rbp), %rcx + 0x48, 0x29, 0xc8, //0x000008a8 subq %rcx, %rax + 0x0f, 0x84, 0x2e, 0x1f, 0x00, 0x00, //0x000008ab je LBB0_463 + 0x4d, 0x8d, 0x1c, 0x09, //0x000008b1 leaq (%r9,%rcx), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x000008b5 cmpq $64, %rax + 0x0f, 0x82, 0x22, 0x17, 0x00, 0x00, //0x000008b9 jb LBB0_356 + 0x89, 0xc2, //0x000008bf movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x000008c1 andl $63, %edx + 0x48, 0x89, 0x55, 0xb8, //0x000008c4 movq %rdx, $-72(%rbp) + 0x4f, 0x8d, 0x44, 0x02, 0xc0, //0x000008c8 leaq $-64(%r10,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x000008cd andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x000008d1 addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x90, //0x000008d4 addq $-112(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000008d8 movq $-1, %r9 + 0x31, 0xdb, //0x000008df xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008e1 .p2align 4, 0x90 + //0x000008f0 LBB0_107 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x000008f0 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x000008f5 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x000008fb movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00000901 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00000907 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000090b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xf3, //0x0000090f pmovmskb %xmm3, %esi + 0x66, 0x0f, 0x6f, 0xde, //0x00000913 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000917 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x0000091b pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x0000091f movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000923 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000927 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x0000092b movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000092f pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xe3, //0x00000933 pmovmskb %xmm3, %r12d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000938 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x0000093c pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000940 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000945 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000949 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000094d pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000951 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000955 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000959 shlq $16, %rdi + 0x48, 0x09, 0xfe, //0x0000095d orq %rdi, %rsi + 0x66, 0x0f, 0xd7, 0xfb, //0x00000960 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000964 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000968 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x0000096c shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000970 orq %rcx, %rsi + 0x66, 0x0f, 0xd7, 0xcb, //0x00000973 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000977 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000097b pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000097f pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000984 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000988 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000098c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000098f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000993 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000997 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000099b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x000009a0 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x000009a4 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x000009a8 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x000009ab pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x000009af movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x000009b3 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x000009b7 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x000009bc pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x000009c0 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x000009c4 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x000009c7 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x000009cb movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x000009cf pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x000009d3 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x000009d8 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x000009dc shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x000009e0 orq %rdi, %rdx + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x000009e3 pmovmskb %xmm7, %r14d + 0x49, 0xc1, 0xe4, 0x30, //0x000009e8 shlq $48, %r12 + 0x48, 0xc1, 0xe1, 0x20, //0x000009ec shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000009f0 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000009f4 jne LBB0_109 + 0x4d, 0x85, 0xed, //0x000009fa testq %r13, %r13 + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000009fd jne LBB0_124 + //0x00000a03 LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x00000a03 shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00000a07 orq %rcx, %rdx + 0x4c, 0x09, 0xe6, //0x00000a0a orq %r12, %rsi + 0x4c, 0x89, 0xe9, //0x00000a0d movq %r13, %rcx + 0x48, 0x09, 0xd9, //0x00000a10 orq %rbx, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000a13 jne LBB0_146 + 0x4c, 0x09, 0xf2, //0x00000a19 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000a1c testq %rsi, %rsi + 0x0f, 0x85, 0x54, 0x02, 0x00, 0x00, //0x00000a1f jne LBB0_147 + //0x00000a25 LBB0_111 + 0x48, 0x85, 0xd2, //0x00000a25 testq %rdx, %rdx + 0x0f, 0x85, 0xf6, 0x1b, 0x00, 0x00, //0x00000a28 jne LBB0_430 + 0x48, 0x83, 0xc0, 0xc0, //0x00000a2e addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000a32 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000a36 cmpq $63, %rax + 0x0f, 0x87, 0xb0, 0xfe, 0xff, 0xff, //0x00000a3a ja LBB0_107 + 0xe9, 0x92, 0x0e, 0x00, 0x00, //0x00000a40 jmp LBB0_113 + //0x00000a45 LBB0_146 + 0x48, 0x89, 0xd9, //0x00000a45 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000a48 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000a4b andq %r13, %rcx + 0x4c, 0x8d, 0x24, 0x09, //0x00000a4e leaq (%rcx,%rcx), %r12 + 0x49, 0x09, 0xdc, //0x00000a52 orq %rbx, %r12 + 0x4c, 0x89, 0xe7, //0x00000a55 movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000a58 notq %rdi + 0x4c, 0x21, 0xef, //0x00000a5b andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000a5e movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x00000a68 andq %rbx, %rdi + 0x31, 0xdb, //0x00000a6b xorl %ebx, %ebx + 0x48, 0x01, 0xcf, //0x00000a6d addq %rcx, %rdi + 0x0f, 0x92, 0xc3, //0x00000a70 setb %bl + 0x48, 0x01, 0xff, //0x00000a73 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a76 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00000a80 xorq %rcx, %rdi + 0x4c, 0x21, 0xe7, //0x00000a83 andq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000a86 notq %rdi + 0x48, 0x21, 0xfe, //0x00000a89 andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x00000a8c orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000a8f testq %rsi, %rsi + 0x0f, 0x84, 0x8d, 0xff, 0xff, 0xff, //0x00000a92 je LBB0_111 + 0xe9, 0xdc, 0x01, 0x00, 0x00, //0x00000a98 jmp LBB0_147 + //0x00000a9d LBB0_124 + 0x4c, 0x89, 0xdf, //0x00000a9d movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00000aa0 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000aa4 bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x00000aa8 addq %rdi, %r9 + 0xe9, 0x53, 0xff, 0xff, 0xff, //0x00000aab jmp LBB0_109 + //0x00000ab0 LBB0_127 + 0x4b, 0xc7, 0x04, 0xda, 0x02, 0x00, 0x00, 0x00, //0x00000ab0 movq $2, (%r10,%r11,8) + 0x48, 0x8b, 0x45, 0x98, //0x00000ab8 movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00000abc movq $8(%rax), %r10 + 0xf6, 0x45, 0x80, 0x20, //0x00000ac0 testb $32, $-128(%rbp) + 0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x00000ac4 jne LBB0_161 + 0x4d, 0x89, 0xd5, //0x00000aca movq %r10, %r13 + 0x48, 0x8b, 0x45, 0xc0, //0x00000acd movq $-64(%rbp), %rax + 0x49, 0x29, 0xc5, //0x00000ad1 subq %rax, %r13 + 0x0f, 0x84, 0x31, 0x1d, 0x00, 0x00, //0x00000ad4 je LBB0_464 + 0x4d, 0x8d, 0x1c, 0x01, //0x00000ada leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000ade cmpq $64, %r13 + 0x0f, 0x82, 0x60, 0x15, 0x00, 0x00, //0x00000ae2 jb LBB0_362 + 0x44, 0x89, 0xe9, //0x00000ae8 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000aeb andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb0, //0x00000aee movq %rcx, $-80(%rbp) + 0x4b, 0x8d, 0x4c, 0x02, 0xc0, //0x00000af2 leaq $-64(%r10,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000af7 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000afb addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x90, //0x00000afe addq $-112(%rbp), %rcx + 0x48, 0x89, 0x8d, 0x70, 0xff, 0xff, 0xff, //0x00000b02 movq %rcx, $-144(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b09 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00000b10 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b13 .p2align 4, 0x90 + //0x00000b20 LBB0_131 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000b20 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000b25 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x00000b2b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000b31 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000b37 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b3b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x00000b3f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000b43 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b47 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x00000b4b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x00000b4f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b53 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000b57 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x00000b5b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b5f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000b63 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000b67 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000b6b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x00000b6f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000b73 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000b77 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x00000b7b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x00000b80 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00000b84 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x00000b89 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000b8d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000b91 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b95 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b98 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x00000b9b shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b9f shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000ba3 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000ba7 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000baa orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x00000bad orq %r12, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000bb0 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000bb4 jne LBB0_133 + 0x48, 0x85, 0xd2, //0x00000bba testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000bbd jne LBB0_142 + //0x00000bc3 LBB0_133 + 0x48, 0x09, 0xdf, //0x00000bc3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000bc6 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000bc9 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000bcc jne LBB0_143 + //0x00000bd2 LBB0_134 + 0x48, 0x85, 0xff, //0x00000bd2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000bd5 jne LBB0_144 + //0x00000bdb LBB0_135 + 0x49, 0x83, 0xc5, 0xc0, //0x00000bdb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000bdf addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000be3 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00000be7 ja LBB0_131 + 0xe9, 0x24, 0x0e, 0x00, 0x00, //0x00000bed jmp LBB0_136 + //0x00000bf2 LBB0_142 + 0x4c, 0x89, 0xd8, //0x00000bf2 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000bf5 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00000bf9 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00000bfd addq %rax, %r8 + 0x48, 0x09, 0xdf, //0x00000c00 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000c03 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000c06 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000c09 je LBB0_134 + //0x00000c0f LBB0_143 + 0x4c, 0x89, 0xc8, //0x00000c0f movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000c12 notq %rax + 0x48, 0x21, 0xd0, //0x00000c15 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000c18 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x00000c1c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x00000c1f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c22 notq %rsi + 0x48, 0x21, 0xd6, //0x00000c25 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000c28 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000c32 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x00000c35 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x00000c38 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x00000c3b setb %r9b + 0x48, 0x01, 0xf6, //0x00000c3f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c42 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000c4c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000c4f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c52 notq %rsi + 0x48, 0x21, 0xf7, //0x00000c55 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000c58 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000c5b je LBB0_135 + //0x00000c61 LBB0_144 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000c61 bsfq %rdi, %rax + //0x00000c65 LBB0_145 + 0x4c, 0x03, 0x5d, 0xa0, //0x00000c65 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000c69 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c6c movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000c70 movq $-48(%rbp), %r9 + 0xe9, 0x84, 0x03, 0x00, 0x00, //0x00000c74 jmp LBB0_195 + //0x00000c79 LBB0_147 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000c79 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000c7d testq %rdx, %rdx + 0x0f, 0x84, 0xf1, 0x02, 0x00, 0x00, //0x00000c80 je LBB0_186 + 0x48, 0x0f, 0xbc, 0xca, //0x00000c86 bsfq %rdx, %rcx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000c8a movq $-64(%rbp), %rdi + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000c8e subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000c92 cmpq %rax, %rcx + 0x0f, 0x83, 0xf2, 0x02, 0x00, 0x00, //0x00000c95 jae LBB0_187 + 0xe9, 0x47, 0x1b, 0x00, 0x00, //0x00000c9b jmp LBB0_149 + //0x00000ca0 LBB0_151 + 0x49, 0x01, 0xce, //0x00000ca0 addq %rcx, %r14 + 0x4d, 0x89, 0xf3, //0x00000ca3 movq %r14, %r11 + 0x48, 0x8b, 0x7d, 0xc0, //0x00000ca6 movq $-64(%rbp), %rdi + //0x00000caa LBB0_152 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000caa movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00000cb1 testq %r12, %r12 + 0x48, 0x8b, 0x75, 0xc8, //0x00000cb4 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x26, 0x19, 0x00, 0x00, //0x00000cb8 je LBB0_424 + //0x00000cbe LBB0_153 + 0x48, 0x85, 0xff, //0x00000cbe testq %rdi, %rdi + 0x0f, 0x84, 0x1d, 0x19, 0x00, 0x00, //0x00000cc1 je LBB0_424 + 0x4d, 0x85, 0xed, //0x00000cc7 testq %r13, %r13 + 0x0f, 0x84, 0x14, 0x19, 0x00, 0x00, //0x00000cca je LBB0_424 + 0x4d, 0x29, 0xd3, //0x00000cd0 subq %r10, %r11 + 0x49, 0x8d, 0x43, 0xff, //0x00000cd3 leaq $-1(%r11), %rax + 0x49, 0x39, 0xc4, //0x00000cd7 cmpq %rax, %r12 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00000cda je LBB0_422 + 0x49, 0x39, 0xc5, //0x00000ce0 cmpq %rax, %r13 + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000ce3 je LBB0_422 + 0x48, 0x39, 0xc7, //0x00000ce9 cmpq %rax, %rdi + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00000cec je LBB0_422 + 0x48, 0x85, 0xff, //0x00000cf2 testq %rdi, %rdi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000cf5 movq $-48(%rbp), %r9 + 0x0f, 0x8e, 0xb8, 0x02, 0x00, 0x00, //0x00000cf9 jle LBB0_190 + 0x48, 0x8d, 0x47, 0xff, //0x00000cff leaq $-1(%rdi), %rax + 0x49, 0x39, 0xc4, //0x00000d03 cmpq %rax, %r12 + 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00000d06 je LBB0_190 + 0x48, 0xf7, 0xd7, //0x00000d0c notq %rdi + 0x49, 0x89, 0xfb, //0x00000d0f movq %rdi, %r11 + 0x4d, 0x85, 0xdb, //0x00000d12 testq %r11, %r11 + 0x0f, 0x89, 0xe4, 0x0f, 0x00, 0x00, //0x00000d15 jns LBB0_335 + 0xe9, 0xc1, 0x18, 0x00, 0x00, //0x00000d1b jmp LBB0_423 + //0x00000d20 LBB0_422 + 0x49, 0xf7, 0xdb, //0x00000d20 negq %r11 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000d23 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00000d27 testq %r11, %r11 + 0x0f, 0x89, 0xcf, 0x0f, 0x00, 0x00, //0x00000d2a jns LBB0_335 + 0xe9, 0xac, 0x18, 0x00, 0x00, //0x00000d30 jmp LBB0_423 + //0x00000d35 LBB0_161 + 0x4c, 0x89, 0xd0, //0x00000d35 movq %r10, %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00000d38 movq $-64(%rbp), %rcx + 0x48, 0x29, 0xc8, //0x00000d3c subq %rcx, %rax + 0x0f, 0x84, 0xce, 0x1a, 0x00, 0x00, //0x00000d3f je LBB0_465 + 0x4d, 0x8d, 0x1c, 0x09, //0x00000d45 leaq (%r9,%rcx), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000d49 cmpq $64, %rax + 0x4c, 0x89, 0x55, 0xb8, //0x00000d4d movq %r10, $-72(%rbp) + 0x0f, 0x82, 0x0a, 0x13, 0x00, 0x00, //0x00000d51 jb LBB0_363 + 0x89, 0xc2, //0x00000d57 movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x00000d59 andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00000d5c movq %rdx, $-80(%rbp) + 0x4f, 0x8d, 0x64, 0x02, 0xc0, //0x00000d60 leaq $-64(%r10,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00000d65 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00000d69 addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00000d6c addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d70 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00000d77 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d7a .p2align 4, 0x90 + //0x00000d80 LBB0_164 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00000d80 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00000d85 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x00000d8b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00000d91 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00000d97 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d9b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00000d9f pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x00000da3 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000da7 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00000dab pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x00000daf movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000db3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000db7 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x00000dbb movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000dbf pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00000dc3 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000dc8 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dcc pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000dd0 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000dd5 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dd9 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000ddd pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000de1 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000de5 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000de9 shlq $16, %rdi + 0x48, 0x09, 0xfb, //0x00000ded orq %rdi, %rbx + 0x66, 0x0f, 0xd7, 0xfb, //0x00000df0 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000df4 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000df8 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x00000dfc shlq $32, %rcx + 0x48, 0x09, 0xcb, //0x00000e00 orq %rcx, %rbx + 0x66, 0x0f, 0xd7, 0xcb, //0x00000e03 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e07 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x00000e0b pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x00000e0f pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000e14 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000e18 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000e1c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x00000e1f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e23 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000e27 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x00000e2b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00000e30 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x00000e34 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00000e38 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x00000e3b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x00000e3f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00000e43 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00000e47 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00000e4c pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x00000e50 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000e54 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00000e57 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e5b movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x00000e5f pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00000e63 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00000e68 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x00000e6c shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x00000e70 orq %rdi, %rdx + 0x66, 0x0f, 0xd7, 0xff, //0x00000e73 pmovmskb %xmm7, %edi + 0x49, 0xc1, 0xe6, 0x30, //0x00000e77 shlq $48, %r14 + 0x48, 0xc1, 0xe1, 0x20, //0x00000e7b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00000e7f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000e83 jne LBB0_166 + 0x4d, 0x85, 0xed, //0x00000e89 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00000e8c jne LBB0_181 + //0x00000e92 LBB0_166 + 0x48, 0xc1, 0xe7, 0x30, //0x00000e92 shlq $48, %rdi + 0x48, 0x09, 0xca, //0x00000e96 orq %rcx, %rdx + 0x4c, 0x09, 0xf3, //0x00000e99 orq %r14, %rbx + 0x4c, 0x89, 0xe9, //0x00000e9c movq %r13, %rcx + 0x4c, 0x09, 0xd1, //0x00000e9f orq %r10, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000ea2 jne LBB0_182 + 0x48, 0x09, 0xfa, //0x00000ea8 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000eab testq %rbx, %rbx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000eae jne LBB0_183 + //0x00000eb4 LBB0_168 + 0x48, 0x85, 0xd2, //0x00000eb4 testq %rdx, %rdx + 0x0f, 0x85, 0x95, 0x17, 0x00, 0x00, //0x00000eb7 jne LBB0_435 + 0x48, 0x83, 0xc0, 0xc0, //0x00000ebd addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000ec1 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000ec5 cmpq $63, %rax + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x00000ec9 ja LBB0_164 + 0xe9, 0xc9, 0x0b, 0x00, 0x00, //0x00000ecf jmp LBB0_170 + //0x00000ed4 LBB0_182 + 0x4d, 0x89, 0xd6, //0x00000ed4 movq %r10, %r14 + 0x49, 0xf7, 0xd6, //0x00000ed7 notq %r14 + 0x4d, 0x21, 0xee, //0x00000eda andq %r13, %r14 + 0x4f, 0x8d, 0x0c, 0x36, //0x00000edd leaq (%r14,%r14), %r9 + 0x4d, 0x09, 0xd1, //0x00000ee1 orq %r10, %r9 + 0x4c, 0x89, 0xc9, //0x00000ee4 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000ee7 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000eea andq %r13, %rcx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000eed movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf1, //0x00000ef7 andq %rsi, %rcx + 0x45, 0x31, 0xd2, //0x00000efa xorl %r10d, %r10d + 0x4c, 0x01, 0xf1, //0x00000efd addq %r14, %rcx + 0x41, 0x0f, 0x92, 0xc2, //0x00000f00 setb %r10b + 0x48, 0x01, 0xc9, //0x00000f04 addq %rcx, %rcx + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000f07 movabsq $6148914691236517205, %rsi + 0x48, 0x31, 0xf1, //0x00000f11 xorq %rsi, %rcx + 0x4c, 0x21, 0xc9, //0x00000f14 andq %r9, %rcx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f17 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f1b movq $-56(%rbp), %rsi + 0x48, 0xf7, 0xd1, //0x00000f1f notq %rcx + 0x48, 0x21, 0xcb, //0x00000f22 andq %rcx, %rbx + 0x48, 0x09, 0xfa, //0x00000f25 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000f28 testq %rbx, %rbx + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00000f2b je LBB0_168 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00000f31 jmp LBB0_183 + //0x00000f36 LBB0_181 + 0x4d, 0x89, 0xd9, //0x00000f36 movq %r11, %r9 + 0x4c, 0x2b, 0x4d, 0xd0, //0x00000f39 subq $-48(%rbp), %r9 + 0x4d, 0x0f, 0xbc, 0xc5, //0x00000f3d bsfq %r13, %r8 + 0x4d, 0x01, 0xc8, //0x00000f41 addq %r9, %r8 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f44 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f48 movq $-56(%rbp), %rsi + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00000f4c jmp LBB0_166 + //0x00000f51 LBB0_183 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000f51 bsfq %rbx, %rax + 0x48, 0x85, 0xd2, //0x00000f55 testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, //0x00000f58 je LBB0_193 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f5e bsfq %rdx, %rcx + 0x4c, 0x8b, 0x55, 0xb8, //0x00000f62 movq $-72(%rbp), %r10 + 0x4d, 0x29, 0xcb, //0x00000f66 subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x00000f69 cmpq %rax, %rcx + 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000f6c jae LBB0_194 + 0xe9, 0x82, 0x18, 0x00, 0x00, //0x00000f72 jmp LBB0_185 + //0x00000f77 LBB0_186 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f77 movl $64, %ecx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000f7c movq $-64(%rbp), %rdi + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000f80 subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000f84 cmpq %rax, %rcx + 0x0f, 0x82, 0x5a, 0x18, 0x00, 0x00, //0x00000f87 jb LBB0_149 + //0x00000f8d LBB0_187 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f8d leaq $1(%r11,%rax), %r11 + //0x00000f92 LBB0_188 + 0x4d, 0x85, 0xdb, //0x00000f92 testq %r11, %r11 + 0x0f, 0x88, 0x21, 0x16, 0x00, 0x00, //0x00000f95 js LBB0_419 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f9b movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000f9f movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000fa2 movq %r15, %rax + 0x48, 0x85, 0xff, //0x00000fa5 testq %rdi, %rdi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000fa8 movq $-48(%rbp), %r9 + 0x0f, 0x8f, 0xe2, 0xf1, 0xff, 0xff, //0x00000fac jg LBB0_4 + 0xe9, 0x3d, 0x16, 0x00, 0x00, //0x00000fb2 jmp LBB0_427 + //0x00000fb7 LBB0_190 + 0x4c, 0x89, 0xe8, //0x00000fb7 movq %r13, %rax + 0x4c, 0x09, 0xe0, //0x00000fba orq %r12, %rax + 0x4d, 0x39, 0xe5, //0x00000fbd cmpq %r12, %r13 + 0x0f, 0x8c, 0xd9, 0x04, 0x00, 0x00, //0x00000fc0 jl LBB0_256 + 0x48, 0x85, 0xc0, //0x00000fc6 testq %rax, %rax + 0x0f, 0x88, 0xd0, 0x04, 0x00, 0x00, //0x00000fc9 js LBB0_256 + 0x49, 0xf7, 0xd5, //0x00000fcf notq %r13 + 0x4d, 0x89, 0xeb, //0x00000fd2 movq %r13, %r11 + 0x4d, 0x85, 0xdb, //0x00000fd5 testq %r11, %r11 + 0x0f, 0x89, 0x21, 0x0d, 0x00, 0x00, //0x00000fd8 jns LBB0_335 + 0xe9, 0xfe, 0x15, 0x00, 0x00, //0x00000fde jmp LBB0_423 + //0x00000fe3 LBB0_193 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000fe3 movl $64, %ecx + 0x4c, 0x8b, 0x55, 0xb8, //0x00000fe8 movq $-72(%rbp), %r10 + 0x4d, 0x29, 0xcb, //0x00000fec subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x00000fef cmpq %rax, %rcx + 0x0f, 0x82, 0x01, 0x18, 0x00, 0x00, //0x00000ff2 jb LBB0_185 + //0x00000ff8 LBB0_194 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000ff8 leaq $1(%r11,%rax), %r11 + //0x00000ffd LBB0_195 + 0x4d, 0x85, 0xdb, //0x00000ffd testq %r11, %r11 + 0x0f, 0x88, 0xfd, 0x15, 0x00, 0x00, //0x00001000 js LBB0_428 + 0x4c, 0x89, 0x1e, //0x00001006 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001009 movq %r15, %rax + 0x48, 0x83, 0x7d, 0xc0, 0x00, //0x0000100c cmpq $0, $-64(%rbp) + 0x0f, 0x8e, 0xdd, 0x15, 0x00, 0x00, //0x00001011 jle LBB0_427 + 0x48, 0x8b, 0x55, 0x88, //0x00001017 movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x0000101b movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000101e cmpq $4095, %rax + 0x0f, 0x8f, 0x86, 0x15, 0x00, 0x00, //0x00001024 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x0000102a leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x0000102e movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001031 movq $4, $8(%rdx,%rax,8) + 0xe9, 0x55, 0xf1, 0xff, 0xff, //0x0000103a jmp LBB0_4 + //0x0000103f LBB0_199 + 0x48, 0x8b, 0x45, 0x98, //0x0000103f movq $-104(%rbp), %rax + 0x48, 0x8b, 0x48, 0x08, //0x00001043 movq $8(%rax), %rcx + 0xf6, 0x45, 0x80, 0x20, //0x00001047 testb $32, $-128(%rbp) + 0x48, 0x89, 0x4d, 0xb8, //0x0000104b movq %rcx, $-72(%rbp) + 0x49, 0x89, 0xca, //0x0000104f movq %rcx, %r10 + 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00001052 jne LBB0_266 + 0x48, 0x8b, 0x45, 0xc0, //0x00001058 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x0000105c subq %rax, %r10 + 0x0f, 0x84, 0xb6, 0x17, 0x00, 0x00, //0x0000105f je LBB0_466 + 0x4d, 0x8d, 0x1c, 0x01, //0x00001065 leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001069 cmpq $64, %r10 + 0x0f, 0x82, 0x72, 0x10, 0x00, 0x00, //0x0000106d jb LBB0_368 + 0x44, 0x89, 0xd2, //0x00001073 movl %r10d, %edx + 0x83, 0xe2, 0x3f, //0x00001076 andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00001079 movq %rdx, $-80(%rbp) + 0x4e, 0x8d, 0x64, 0x01, 0xc0, //0x0000107d leaq $-64(%rcx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001082 andq $-64, %r12 + 0x49, 0x01, 0xc4, //0x00001086 addq %rax, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00001089 addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000108d movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00001094 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001097 .p2align 4, 0x90 + //0x000010a0 LBB0_203 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x000010a0 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x000010a5 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x000010ab movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x000010b1 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x000010b7 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010bb pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x000010bf pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x000010c3 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010c7 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x000010cb pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x000010cf movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010d3 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x000010d7 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x000010db movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010df pcmpeqb %xmm0, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xef, //0x000010e3 pmovmskb %xmm7, %r13d + 0x66, 0x0f, 0x74, 0xd9, //0x000010e8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000010ec pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x000010f0 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000010f4 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x000010f8 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000010fc pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xf1, //0x00001100 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xf6, //0x00001104 pmovmskb %xmm6, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x00001109 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x0000110d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001111 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001115 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001118 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x0000111b shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000111f shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001123 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001127 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x0000112a orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000112d orq %r14, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001130 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001134 jne LBB0_205 + 0x48, 0x85, 0xd2, //0x0000113a testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000113d jne LBB0_214 + //0x00001143 LBB0_205 + 0x4c, 0x09, 0xef, //0x00001143 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001146 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001149 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000114c jne LBB0_215 + //0x00001152 LBB0_206 + 0x48, 0x85, 0xff, //0x00001152 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00001155 jne LBB0_216 + //0x0000115b LBB0_207 + 0x49, 0x83, 0xc2, 0xc0, //0x0000115b addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x0000115f addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x00001163 cmpq $63, %r10 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00001167 ja LBB0_203 + 0xe9, 0xe6, 0x0b, 0x00, 0x00, //0x0000116d jmp LBB0_208 + //0x00001172 LBB0_214 + 0x4c, 0x89, 0xd8, //0x00001172 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001175 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00001179 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x0000117d addq %rax, %r8 + 0x4c, 0x09, 0xef, //0x00001180 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001183 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001186 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00001189 je LBB0_206 + //0x0000118f LBB0_215 + 0x4c, 0x89, 0xc8, //0x0000118f movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00001192 notq %rax + 0x48, 0x21, 0xd0, //0x00001195 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00001198 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x0000119c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x0000119f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000011a2 notq %rsi + 0x48, 0x21, 0xd6, //0x000011a5 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000011a8 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000011b2 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x000011b5 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x000011b8 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x000011bb setb %r9b + 0x48, 0x01, 0xf6, //0x000011bf addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000011c2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x000011cc xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x000011cf andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000011d2 notq %rsi + 0x48, 0x21, 0xf7, //0x000011d5 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x000011d8 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000011db je LBB0_207 + //0x000011e1 LBB0_216 + 0x48, 0x0f, 0xbc, 0xc7, //0x000011e1 bsfq %rdi, %rax + 0x4c, 0x03, 0x5d, 0xa0, //0x000011e5 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000011e9 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x000011ec movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000011f0 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x7d, 0xb8, //0x000011f4 movq $-72(%rbp), %rdi + 0xe9, 0x02, 0x06, 0x00, 0x00, //0x000011f8 jmp LBB0_304 + //0x000011fd LBB0_217 + 0x48, 0x8b, 0x45, 0x98, //0x000011fd movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00001201 movq $8(%rax), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00001205 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x00001209 subq %rax, %r10 + 0x0f, 0x84, 0x56, 0x14, 0x00, 0x00, //0x0000120c je LBB0_437 + 0x4d, 0x8d, 0x24, 0x01, //0x00001212 leaq (%r9,%rax), %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x00001216 cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x0000121b jne LBB0_222 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001221 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x00001227 cmpq $1, %r10 + 0x0f, 0x84, 0x03, 0x0b, 0x00, 0x00, //0x0000122b je LBB0_341 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001231 movb $1(%r12), %al + 0x04, 0xd2, //0x00001236 addb $-46, %al + 0x3c, 0x37, //0x00001238 cmpb $55, %al + 0x0f, 0x87, 0xf4, 0x0a, 0x00, 0x00, //0x0000123a ja LBB0_341 + 0x0f, 0xb6, 0xc0, //0x00001240 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001243 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000124d btq %rax, %rcx + 0x0f, 0x83, 0xdd, 0x0a, 0x00, 0x00, //0x00001251 jae LBB0_341 + //0x00001257 LBB0_222 + 0x49, 0x83, 0xfa, 0x10, //0x00001257 cmpq $16, %r10 + 0x0f, 0x82, 0x5d, 0x0e, 0x00, 0x00, //0x0000125b jb LBB0_367 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001261 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x00001265 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001268 andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x0000126c leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001271 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00001275 movq $-1, $-80(%rbp) + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000127d movq $-1, $-72(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001285 movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x0000128c movq %r12, %r13 + 0x90, //0x0000128f .p2align 4, 0x90 + //0x00001290 LBB0_224 + 0xf3, 0x41, 0x0f, 0x6f, 0x5d, 0x00, //0x00001290 movdqu (%r13), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00001296 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x0000129a pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x0000129f movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x000012a4 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x000012a8 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x000012ac movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000012b0 pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000012b5 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000012b9 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000012be por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000012c2 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000012c6 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000012ca pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000012cf pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x000012d4 pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0xeb, 0xe3, //0x000012d8 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000012dc por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000012e0 por %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xc3, //0x000012e4 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0xd7, 0xd6, //0x000012e8 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x000012ec pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000012f0 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x000012f5 leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x000012fc xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x000012ff bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x00001303 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00001306 je LBB0_226 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x0000130c movl $-1, %edi + 0xd3, 0xe7, //0x00001311 shll %cl, %edi + 0xf7, 0xd7, //0x00001313 notl %edi + 0x21, 0xf8, //0x00001315 andl %edi, %eax + 0x21, 0xfb, //0x00001317 andl %edi, %ebx + 0x21, 0xd7, //0x00001319 andl %edx, %edi + 0x89, 0xfa, //0x0000131b movl %edi, %edx + //0x0000131d LBB0_226 + 0x8d, 0x78, 0xff, //0x0000131d leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001320 andl %eax, %edi + 0x0f, 0x85, 0xee, 0x09, 0x00, 0x00, //0x00001322 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x00001328 leal $-1(%rbx), %edi + 0x21, 0xdf, //0x0000132b andl %ebx, %edi + 0x0f, 0x85, 0xe3, 0x09, 0x00, 0x00, //0x0000132d jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x00001333 leal $-1(%rdx), %edi + 0x21, 0xd7, //0x00001336 andl %edx, %edi + 0x0f, 0x85, 0xd8, 0x09, 0x00, 0x00, //0x00001338 jne LBB0_337 + 0x85, 0xc0, //0x0000133e testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001340 je LBB0_232 + 0x4c, 0x89, 0xef, //0x00001346 movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001349 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x0000134c bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001350 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00001353 cmpq $-1, %r14 + 0x0f, 0x85, 0xc3, 0x09, 0x00, 0x00, //0x00001357 jne LBB0_338 + 0x4d, 0x89, 0xde, //0x0000135d movq %r11, %r14 + //0x00001360 LBB0_232 + 0x85, 0xdb, //0x00001360 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001362 je LBB0_235 + 0x4c, 0x89, 0xe8, //0x00001368 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000136b subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x0000136e bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001372 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x00001375 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0xa0, 0x09, 0x00, 0x00, //0x0000137a jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb8, //0x00001380 movq %r11, $-72(%rbp) + //0x00001384 LBB0_235 + 0x85, 0xd2, //0x00001384 testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001386 je LBB0_238 + 0x4c, 0x89, 0xe8, //0x0000138c movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000138f subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x00001392 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x00001396 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb0, 0xff, //0x00001399 cmpq $-1, $-80(%rbp) + 0x0f, 0x85, 0x7c, 0x09, 0x00, 0x00, //0x0000139e jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb0, //0x000013a4 movq %r11, $-80(%rbp) + //0x000013a8 LBB0_238 + 0x83, 0xf9, 0x10, //0x000013a8 cmpl $16, %ecx + 0x0f, 0x85, 0xaa, 0x03, 0x00, 0x00, //0x000013ab jne LBB0_290 + 0x49, 0x83, 0xc5, 0x10, //0x000013b1 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000013b5 addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000013b9 cmpq $15, %r10 + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000013bd ja LBB0_224 + 0x4d, 0x85, 0xc9, //0x000013c3 testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xc3, 0x16, 0x00, 0x00, //0x000013c6 leaq $5827(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xb8, //0x000013cd movq $-72(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb0, //0x000013d1 movq $-80(%rbp), %rbx + 0x0f, 0x84, 0x8e, 0x03, 0x00, 0x00, //0x000013d5 je LBB0_291 + //0x000013db LBB0_241 + 0x4b, 0x8d, 0x0c, 0x08, //0x000013db leaq (%r8,%r9), %rcx + 0xe9, 0x08, 0x01, 0x00, 0x00, //0x000013df jmp LBB0_260 + //0x000013e4 LBB0_242 + 0x48, 0x8b, 0x55, 0x88, //0x000013e4 movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x000013e8 movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000013eb cmpq $4095, %rax + 0x0f, 0x8f, 0xb9, 0x11, 0x00, 0x00, //0x000013f1 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x000013f7 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x000013fb movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000013fe movq $5, $8(%rdx,%rax,8) + 0xe9, 0x84, 0xed, 0xff, 0xff, //0x00001407 jmp LBB0_3 + //0x0000140c LBB0_244 + 0x48, 0x8b, 0x4d, 0x98, //0x0000140c movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001410 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001414 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001418 cmpq %rdx, %r15 + 0x0f, 0x83, 0xfb, 0x11, 0x00, 0x00, //0x0000141b jae LBB0_440 + 0x48, 0x8b, 0x55, 0xc0, //0x00001421 movq $-64(%rbp), %rdx + 0x41, 0x8b, 0x0c, 0x11, //0x00001425 movl (%r9,%rdx), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001429 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x5b, 0x12, 0x00, 0x00, //0x0000142f jne LBB0_443 + 0x4d, 0x8d, 0x5f, 0x05, //0x00001435 leaq $5(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00001439 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000143c movq %r15, %rax + 0x48, 0x85, 0xd2, //0x0000143f testq %rdx, %rdx + 0x0f, 0x8f, 0x4c, 0xed, 0xff, 0xff, //0x00001442 jg LBB0_4 + 0xe9, 0xa7, 0x11, 0x00, 0x00, //0x00001448 jmp LBB0_427 + //0x0000144d LBB0_247 + 0x48, 0x8b, 0x4d, 0x98, //0x0000144d movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001451 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001455 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001459 cmpq %rdx, %r15 + 0x0f, 0x83, 0xba, 0x11, 0x00, 0x00, //0x0000145c jae LBB0_440 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00001462 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00001469 je LBB0_255 + 0xe9, 0x71, 0x12, 0x00, 0x00, //0x0000146f jmp LBB0_249 + //0x00001474 LBB0_253 + 0x48, 0x8b, 0x4d, 0x98, //0x00001474 movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001478 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x0000147c leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001480 cmpq %rdx, %r15 + 0x0f, 0x83, 0x93, 0x11, 0x00, 0x00, //0x00001483 jae LBB0_440 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x00001489 cmpl $1702195828, (%r10) + 0x0f, 0x85, 0xa1, 0x12, 0x00, 0x00, //0x00001490 jne LBB0_448 + //0x00001496 LBB0_255 + 0x4d, 0x8d, 0x5f, 0x04, //0x00001496 leaq $4(%r15), %r11 + 0xe9, 0x69, 0x03, 0x00, 0x00, //0x0000149a jmp LBB0_305 + //0x0000149f LBB0_256 + 0x48, 0x85, 0xc0, //0x0000149f testq %rax, %rax + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x000014a2 leaq $-1(%r12), %rax + 0x49, 0xf7, 0xd4, //0x000014a7 notq %r12 + 0x4d, 0x0f, 0x48, 0xe3, //0x000014aa cmovsq %r11, %r12 + 0x49, 0x39, 0xc5, //0x000014ae cmpq %rax, %r13 + 0x4d, 0x0f, 0x44, 0xdc, //0x000014b1 cmoveq %r12, %r11 + 0x4d, 0x85, 0xdb, //0x000014b5 testq %r11, %r11 + 0x0f, 0x89, 0x41, 0x08, 0x00, 0x00, //0x000014b8 jns LBB0_335 + 0xe9, 0x1e, 0x11, 0x00, 0x00, //0x000014be jmp LBB0_423 + //0x000014c3 LBB0_257 + 0x49, 0x89, 0xc3, //0x000014c3 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000014c6 subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000014c9 cmpq $-1, %r14 + 0x0f, 0x85, 0x6d, 0x0b, 0x00, 0x00, //0x000014cd jne LBB0_361 + 0x49, 0xff, 0xcb, //0x000014d3 decq %r11 + 0x4d, 0x89, 0xde, //0x000014d6 movq %r11, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014d9 .p2align 4, 0x90 + //0x000014e0 LBB0_259 + 0x49, 0x89, 0xc0, //0x000014e0 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x000014e3 decq %r9 + 0x0f, 0x84, 0xfc, 0x09, 0x00, 0x00, //0x000014e6 je LBB0_343 + //0x000014ec LBB0_260 + 0x41, 0x0f, 0xbe, 0x10, //0x000014ec movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x000014f0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000014f3 cmpl $58, %edx + 0x0f, 0x87, 0x6d, 0x02, 0x00, 0x00, //0x000014f6 ja LBB0_291 + 0x49, 0x8d, 0x40, 0x01, //0x000014fc leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001500 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001504 addq %rsi, %rdx + 0xff, 0xe2, //0x00001507 jmpq *%rdx + //0x00001509 LBB0_262 + 0x49, 0x89, 0xc3, //0x00001509 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000150c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000150f cmpq $-1, %rbx + 0x0f, 0x85, 0x27, 0x0b, 0x00, 0x00, //0x00001513 jne LBB0_361 + 0x49, 0xff, 0xcb, //0x00001519 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000151c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000151f jmp LBB0_259 + //0x00001524 LBB0_264 + 0x49, 0x89, 0xc3, //0x00001524 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001527 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000152a cmpq $-1, %rdi + 0x0f, 0x85, 0x0c, 0x0b, 0x00, 0x00, //0x0000152e jne LBB0_361 + 0x49, 0xff, 0xcb, //0x00001534 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001537 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000153a jmp LBB0_259 + //0x0000153f LBB0_266 + 0x48, 0x8b, 0x45, 0xc0, //0x0000153f movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x00001543 subq %rax, %r10 + 0x0f, 0x84, 0xcf, 0x12, 0x00, 0x00, //0x00001546 je LBB0_466 + 0x4d, 0x8d, 0x1c, 0x01, //0x0000154c leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001550 cmpq $64, %r10 + 0x0f, 0x82, 0xa8, 0x0b, 0x00, 0x00, //0x00001554 jb LBB0_369 + 0x44, 0x89, 0xd2, //0x0000155a movl %r10d, %edx + 0x83, 0xe2, 0x3f, //0x0000155d andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00001560 movq %rdx, $-80(%rbp) + 0x4e, 0x8d, 0x64, 0x01, 0xc0, //0x00001564 leaq $-64(%rcx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001569 andq $-64, %r12 + 0x49, 0x01, 0xc4, //0x0000156d addq %rax, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00001570 addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001574 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x0000157b xorl %r9d, %r9d + 0x90, 0x90, //0x0000157e .p2align 4, 0x90 + //0x00001580 LBB0_269 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00001580 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00001585 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x0000158b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00001591 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00001597 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000159b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xf3, //0x0000159f pmovmskb %xmm3, %esi + 0x66, 0x0f, 0x6f, 0xde, //0x000015a3 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015a7 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000015ab pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdc, //0x000015af movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015b3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000015b7 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015bb movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015bf pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000015c3 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdd, //0x000015c7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015cb pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x000015cf pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x000015d4 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015d8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000015dc pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x000015e0 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015e4 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x10, //0x000015e8 shlq $16, %rcx + 0x48, 0x09, 0xce, //0x000015ec orq %rcx, %rsi + 0x66, 0x0f, 0xd7, 0xcb, //0x000015ef pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015f3 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015f7 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe3, 0x20, //0x000015fb shlq $32, %rbx + 0x48, 0x09, 0xde, //0x000015ff orq %rbx, %rsi + 0x66, 0x0f, 0xd7, 0xdb, //0x00001602 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xda, //0x00001606 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000160a pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000160e pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00001613 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00001617 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000161b orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000161e pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00001622 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00001626 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000162a pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x0000162f pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe1, 0x20, //0x00001633 shlq $32, %rcx + 0x49, 0x09, 0xcd, //0x00001637 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xc6, //0x0000163a pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xda, //0x0000163e movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001642 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001646 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000164b pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe3, 0x30, //0x0000164f shlq $48, %rbx + 0x49, 0x09, 0xdd, //0x00001653 orq %rbx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00001656 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x0000165a movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x0000165e pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00001662 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00001667 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe0, 0x10, //0x0000166b shlq $16, %rax + 0x48, 0x09, 0xc2, //0x0000166f orq %rax, %rdx + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x00001672 pmovmskb %xmm7, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001677 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x0000167b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000167f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001683 jne LBB0_271 + 0x4d, 0x85, 0xed, //0x00001689 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x0000168c jne LBB0_286 + //0x00001692 LBB0_271 + 0x49, 0xc1, 0xe6, 0x30, //0x00001692 shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00001696 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00001699 orq %rdi, %rsi + 0x4c, 0x89, 0xe8, //0x0000169c movq %r13, %rax + 0x4c, 0x09, 0xc8, //0x0000169f orq %r9, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000016a2 jne LBB0_287 + 0x4c, 0x09, 0xf2, //0x000016a8 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x000016ab testq %rsi, %rsi + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x000016ae jne LBB0_288 + //0x000016b4 LBB0_273 + 0x48, 0x85, 0xd2, //0x000016b4 testq %rdx, %rdx + 0x0f, 0x85, 0xec, 0x10, 0x00, 0x00, //0x000016b7 jne LBB0_456 + 0x49, 0x83, 0xc2, 0xc0, //0x000016bd addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x000016c1 addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x000016c5 cmpq $63, %r10 + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x000016c9 ja LBB0_269 + 0xe9, 0x1a, 0x07, 0x00, 0x00, //0x000016cf jmp LBB0_275 + //0x000016d4 LBB0_287 + 0x4c, 0x89, 0xc8, //0x000016d4 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000016d7 notq %rax + 0x4c, 0x21, 0xe8, //0x000016da andq %r13, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000016dd leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x000016e1 orq %r9, %rcx + 0x48, 0x89, 0xcf, //0x000016e4 movq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x000016e7 notq %rdi + 0x4c, 0x21, 0xef, //0x000016ea andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000016ed movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000016f7 andq %rbx, %rdi + 0x45, 0x31, 0xc9, //0x000016fa xorl %r9d, %r9d + 0x48, 0x01, 0xc7, //0x000016fd addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc1, //0x00001700 setb %r9b + 0x48, 0x01, 0xff, //0x00001704 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001707 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00001711 xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x00001714 andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x00001717 notq %rdi + 0x48, 0x21, 0xfe, //0x0000171a andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x0000171d orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001720 testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00001723 je LBB0_273 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001729 jmp LBB0_288 + //0x0000172e LBB0_286 + 0x4c, 0x89, 0xd8, //0x0000172e movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001731 subq $-48(%rbp), %rax + 0x4d, 0x0f, 0xbc, 0xc5, //0x00001735 bsfq %r13, %r8 + 0x49, 0x01, 0xc0, //0x00001739 addq %rax, %r8 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x0000173c jmp LBB0_271 + //0x00001741 LBB0_288 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001741 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001745 testq %rdx, %rdx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001748 movq $-48(%rbp), %r9 + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x0000174c je LBB0_301 + 0x48, 0x0f, 0xbc, 0xca, //0x00001752 bsfq %rdx, %rcx + 0xe9, 0x8b, 0x00, 0x00, 0x00, //0x00001756 jmp LBB0_302 + //0x0000175b LBB0_290 + 0x49, 0x01, 0xcd, //0x0000175b addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000175e movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001761 movq $-72(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb0, //0x00001765 movq $-80(%rbp), %rbx + //0x00001769 LBB0_291 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001769 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001770 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001773 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xf2, 0x0e, 0x00, 0x00, //0x00001777 je LBB0_438 + //0x0000177d LBB0_292 + 0x48, 0x85, 0xdb, //0x0000177d testq %rbx, %rbx + 0x0f, 0x84, 0xe9, 0x0e, 0x00, 0x00, //0x00001780 je LBB0_438 + 0x4d, 0x85, 0xf6, //0x00001786 testq %r14, %r14 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001789 movq $-48(%rbp), %r9 + 0x0f, 0x84, 0xdc, 0x0e, 0x00, 0x00, //0x0000178d je LBB0_438 + 0x4d, 0x29, 0xe0, //0x00001793 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00001796 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x0000179a cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000179d je LBB0_300 + 0x49, 0x39, 0xc6, //0x000017a3 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000017a6 je LBB0_300 + 0x48, 0x39, 0xc3, //0x000017ac cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000017af je LBB0_300 + 0x48, 0x85, 0xdb, //0x000017b5 testq %rbx, %rbx + 0x0f, 0x8e, 0x72, 0x00, 0x00, 0x00, //0x000017b8 jle LBB0_307 + 0x48, 0x8d, 0x43, 0xff, //0x000017be leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000017c2 cmpq %rax, %rdi + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x000017c5 je LBB0_307 + 0x48, 0xf7, 0xd3, //0x000017cb notq %rbx + 0x49, 0x89, 0xdb, //0x000017ce movq %rbx, %r11 + 0xe9, 0x55, 0x05, 0x00, 0x00, //0x000017d1 jmp LBB0_340 + //0x000017d6 LBB0_300 + 0x49, 0xf7, 0xd8, //0x000017d6 negq %r8 + 0x4d, 0x89, 0xc3, //0x000017d9 movq %r8, %r11 + 0xe9, 0x4a, 0x05, 0x00, 0x00, //0x000017dc jmp LBB0_340 + //0x000017e1 LBB0_301 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000017e1 movl $64, %ecx + //0x000017e6 LBB0_302 + 0x48, 0x8b, 0x75, 0xc8, //0x000017e6 movq $-56(%rbp), %rsi + 0x48, 0x8b, 0x7d, 0xb8, //0x000017ea movq $-72(%rbp), %rdi + 0x4d, 0x29, 0xcb, //0x000017ee subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x000017f1 cmpq %rax, %rcx + 0x0f, 0x82, 0xff, 0x0f, 0x00, 0x00, //0x000017f4 jb LBB0_185 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x000017fa leaq $1(%r11,%rax), %r11 + //0x000017ff LBB0_304 + 0x4d, 0x85, 0xdb, //0x000017ff testq %r11, %r11 + 0x0f, 0x88, 0x6f, 0x0e, 0x00, 0x00, //0x00001802 js LBB0_441 + //0x00001808 LBB0_305 + 0x4c, 0x89, 0x1e, //0x00001808 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000180b movq %r15, %rax + 0x48, 0x83, 0x7d, 0xc0, 0x00, //0x0000180e cmpq $0, $-64(%rbp) + 0x0f, 0x8f, 0x7b, 0xe9, 0xff, 0xff, //0x00001813 jg LBB0_4 + 0xe9, 0xd6, 0x0d, 0x00, 0x00, //0x00001819 jmp LBB0_427 + //0x0000181e LBB0_306 + 0x4d, 0x29, 0xd6, //0x0000181e subq %r10, %r14 + 0x44, 0x0f, 0xbc, 0xde, //0x00001821 bsfl %esi, %r11d + 0x4d, 0x01, 0xf3, //0x00001825 addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x00001828 notq %r11 + 0xe9, 0xbe, 0x04, 0x00, 0x00, //0x0000182b jmp LBB0_334 + //0x00001830 LBB0_307 + 0x4c, 0x89, 0xf0, //0x00001830 movq %r14, %rax + 0x48, 0x09, 0xf8, //0x00001833 orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001836 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x93, 0x01, 0x00, 0x00, //0x00001839 jl LBB0_310 + 0x48, 0x85, 0xc0, //0x0000183f testq %rax, %rax + 0x0f, 0x88, 0x8a, 0x01, 0x00, 0x00, //0x00001842 js LBB0_310 + 0x49, 0xf7, 0xd6, //0x00001848 notq %r14 + 0x4d, 0x89, 0xf3, //0x0000184b movq %r14, %r11 + 0xe9, 0xd8, 0x04, 0x00, 0x00, //0x0000184e jmp LBB0_340 + //0x00001853 LBB0_50 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00001853 movq $-80(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb8, //0x00001857 movq $-72(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x0000185b cmpq $32, %r13 + 0x0f, 0x82, 0x57, 0x09, 0x00, 0x00, //0x0000185f jb LBB0_374 + //0x00001865 LBB0_51 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001865 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x0000186a movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001870 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001874 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001878 pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x0000187c movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001880 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001884 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001888 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000188c pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001890 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001894 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001898 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000189c shlq $16, %rax + 0x48, 0x09, 0xc1, //0x000018a0 orq %rax, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000018a3 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000018a7 jne LBB0_53 + 0x48, 0x85, 0xc9, //0x000018ad testq %rcx, %rcx + 0x0f, 0x85, 0xa5, 0x08, 0x00, 0x00, //0x000018b0 jne LBB0_371 + //0x000018b6 LBB0_53 + 0x48, 0x09, 0xfa, //0x000018b6 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000018b9 movq %rcx, %rax + 0x4c, 0x09, 0xc0, //0x000018bc orq %r8, %rax + 0x0f, 0x85, 0xb3, 0x08, 0x00, 0x00, //0x000018bf jne LBB0_372 + //0x000018c5 LBB0_54 + 0x48, 0x85, 0xd2, //0x000018c5 testq %rdx, %rdx + 0x0f, 0x84, 0xe6, 0x08, 0x00, 0x00, //0x000018c8 je LBB0_373 + //0x000018ce LBB0_55 + 0x48, 0x0f, 0xbc, 0xc2, //0x000018ce bsfq %rdx, %rax + 0xe9, 0xae, 0xec, 0xff, 0xff, //0x000018d2 jmp LBB0_59 + //0x000018d7 LBB0_113 + 0x4d, 0x89, 0xc3, //0x000018d7 movq %r8, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x000018da movq $-72(%rbp), %rax + 0x4d, 0x89, 0xd5, //0x000018de movq %r10, %r13 + 0x48, 0x83, 0xf8, 0x20, //0x000018e1 cmpq $32, %rax + 0x0f, 0x82, 0x0c, 0x07, 0x00, 0x00, //0x000018e5 jb LBB0_357 + //0x000018eb LBB0_114 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x000018eb movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x000018f0 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x000018f6 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000018fa pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x000018fe pmovmskb %xmm5, %r8d + 0x66, 0x0f, 0x6f, 0xec, //0x00001903 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001907 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x0000190b pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xeb, //0x0000190f movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001913 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001917 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x0000191b movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x0000191f pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001923 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001927 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x0000192b pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x0000192f pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001934 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001938 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x0000193d movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001941 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001945 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000194a pand %xmm3, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x0000194e pmovmskb %xmm4, %r10d + 0x48, 0xc1, 0xe6, 0x10, //0x00001953 shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001957 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x0000195b orq %rcx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000195e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001962 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x00001968 testq %rdx, %rdx + 0x0f, 0x85, 0xd1, 0x08, 0x00, 0x00, //0x0000196b jne LBB0_382 + //0x00001971 LBB0_116 + 0x49, 0xc1, 0xe2, 0x10, //0x00001971 shlq $16, %r10 + 0x4c, 0x09, 0xc6, //0x00001975 orq %r8, %rsi + 0x48, 0x89, 0xd1, //0x00001978 movq %rdx, %rcx + 0x48, 0x09, 0xd9, //0x0000197b orq %rbx, %rcx + 0x0f, 0x85, 0x9b, 0x07, 0x00, 0x00, //0x0000197e jne LBB0_370 + //0x00001984 LBB0_117 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001984 movq $-64(%rbp), %rdi + 0x4d, 0x09, 0xf2, //0x00001988 orq %r14, %r10 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000198b movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001990 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001995 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001998 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000199e bsfq %rsi, %rdx + //0x000019a2 LBB0_119 + 0x4d, 0x85, 0xd2, //0x000019a2 testq %r10, %r10 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019a5 je LBB0_121 + 0x49, 0x0f, 0xbc, 0xca, //0x000019ab bsfq %r10, %rcx + //0x000019af LBB0_121 + 0x48, 0x85, 0xf6, //0x000019af testq %rsi, %rsi + 0x0f, 0x84, 0xe0, 0x01, 0x00, 0x00, //0x000019b2 je LBB0_313 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000019b8 subq $-48(%rbp), %r11 + 0x48, 0x39, 0xd1, //0x000019bc cmpq %rdx, %rcx + 0x0f, 0x82, 0x22, 0x0e, 0x00, 0x00, //0x000019bf jb LBB0_149 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x000019c5 leaq $1(%r11,%rdx), %r11 + 0x4d, 0x89, 0xea, //0x000019ca movq %r13, %r10 + 0xe9, 0xc0, 0xf5, 0xff, 0xff, //0x000019cd jmp LBB0_188 + //0x000019d2 LBB0_310 + 0x48, 0x85, 0xc0, //0x000019d2 testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x000019d5 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x000019d9 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x000019dc cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x000019e0 cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x000019e3 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x000019e7 movq %rdi, %r11 + 0xe9, 0x3c, 0x03, 0x00, 0x00, //0x000019ea jmp LBB0_340 + //0x000019ef LBB0_311 + 0x48, 0xf7, 0xd0, //0x000019ef notq %rax + 0x49, 0x89, 0xc3, //0x000019f2 movq %rax, %r11 + 0xe9, 0xf4, 0x02, 0x00, 0x00, //0x000019f5 jmp LBB0_334 + //0x000019fa LBB0_312 + 0x49, 0x89, 0xc3, //0x000019fa movq %rax, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000019fd movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00001a04 testq %r12, %r12 + 0x48, 0x8b, 0x75, 0xc8, //0x00001a07 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0xad, 0xf2, 0xff, 0xff, //0x00001a0b jne LBB0_153 + 0xe9, 0xce, 0x0b, 0x00, 0x00, //0x00001a11 jmp LBB0_424 + //0x00001a16 LBB0_136 + 0x4c, 0x8b, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x00001a16 movq $-144(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb0, //0x00001a1d movq $-80(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001a21 cmpq $32, %r13 + 0x0f, 0x82, 0xf9, 0x08, 0x00, 0x00, //0x00001a25 jb LBB0_389 + //0x00001a2b LBB0_137 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001a2b movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001a30 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001a36 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a3a pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001a3e pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x00001a42 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a46 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001a4a pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001a4e pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001a52 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001a56 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001a5a pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001a5e shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001a62 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001a66 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001a69 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001a6d jne LBB0_139 + 0x48, 0x85, 0xc9, //0x00001a73 testq %rcx, %rcx + 0x0f, 0x85, 0x47, 0x08, 0x00, 0x00, //0x00001a76 jne LBB0_386 + //0x00001a7c LBB0_139 + 0x48, 0x09, 0xfa, //0x00001a7c orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x00001a7f movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001a82 orq %r9, %rax + 0x0f, 0x85, 0x55, 0x08, 0x00, 0x00, //0x00001a85 jne LBB0_387 + //0x00001a8b LBB0_140 + 0x48, 0x85, 0xd2, //0x00001a8b testq %rdx, %rdx + 0x0f, 0x84, 0x88, 0x08, 0x00, 0x00, //0x00001a8e je LBB0_388 + //0x00001a94 LBB0_141 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001a94 bsfq %rdx, %rax + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00001a98 jmp LBB0_145 + //0x00001a9d LBB0_170 + 0x4d, 0x89, 0xe3, //0x00001a9d movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xb0, //0x00001aa0 movq $-80(%rbp), %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001aa4 cmpq $32, %rax + 0x0f, 0x82, 0xc7, 0x05, 0x00, 0x00, //0x00001aa8 jb LBB0_364 + //0x00001aae LBB0_171 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001aae movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001ab3 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001ab9 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001abd pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xcd, //0x00001ac1 pmovmskb %xmm5, %r9d + 0x66, 0x0f, 0x6f, 0xec, //0x00001ac6 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001aca pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00001ace pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xeb, //0x00001ad2 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001ad6 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001ada pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001ade movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001ae2 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001ae6 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001aea movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001aee pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001af2 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001af7 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001afb pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001b00 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001b04 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001b08 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001b0d pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00001b11 pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x00001b15 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00001b19 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x00001b1d orq %rcx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001b20 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001b24 jne LBB0_173 + 0x48, 0x85, 0xd2, //0x00001b2a testq %rdx, %rdx + 0x0f, 0x85, 0x7e, 0x08, 0x00, 0x00, //0x00001b2d jne LBB0_397 + //0x00001b33 LBB0_173 + 0x48, 0xc1, 0xe7, 0x10, //0x00001b33 shlq $16, %rdi + 0x4c, 0x09, 0xcb, //0x00001b37 orq %r9, %rbx + 0x48, 0x89, 0xd1, //0x00001b3a movq %rdx, %rcx + 0x4c, 0x09, 0xd1, //0x00001b3d orq %r10, %rcx + 0x0f, 0x85, 0x0f, 0x07, 0x00, 0x00, //0x00001b40 jne LBB0_383 + //0x00001b46 LBB0_174 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b46 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001b4a movq $-48(%rbp), %r9 + 0x4c, 0x09, 0xf7, //0x00001b4e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001b51 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001b56 movl $64, %edx + 0x48, 0x85, 0xdb, //0x00001b5b testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b5e je LBB0_176 + 0x48, 0x0f, 0xbc, 0xd3, //0x00001b64 bsfq %rbx, %rdx + //0x00001b68 LBB0_176 + 0x48, 0x85, 0xff, //0x00001b68 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b6b je LBB0_178 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001b71 bsfq %rdi, %rcx + //0x00001b75 LBB0_178 + 0x48, 0x85, 0xdb, //0x00001b75 testq %rbx, %rbx + 0x0f, 0x84, 0xcd, 0x00, 0x00, 0x00, //0x00001b78 je LBB0_324 + 0x4d, 0x29, 0xcb, //0x00001b7e subq %r9, %r11 + 0x48, 0x39, 0xd1, //0x00001b81 cmpq %rdx, %rcx + 0x0f, 0x82, 0x6f, 0x0c, 0x00, 0x00, //0x00001b84 jb LBB0_185 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001b8a leaq $1(%r11,%rdx), %r11 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001b8f movq $-72(%rbp), %r10 + 0xe9, 0x65, 0xf4, 0xff, 0xff, //0x00001b93 jmp LBB0_195 + //0x00001b98 LBB0_313 + 0x4d, 0x85, 0xd2, //0x00001b98 testq %r10, %r10 + 0x0f, 0x85, 0x82, 0x0c, 0x00, 0x00, //0x00001b9b jne LBB0_467 + 0x49, 0x83, 0xc3, 0x20, //0x00001ba1 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001ba5 addq $-32, %rax + 0x48, 0x85, 0xdb, //0x00001ba9 testq %rbx, %rbx + 0x0f, 0x85, 0x52, 0x04, 0x00, 0x00, //0x00001bac jne LBB0_358 + //0x00001bb2 LBB0_315 + 0x4d, 0x89, 0xea, //0x00001bb2 movq %r13, %r10 + 0x48, 0x85, 0xc0, //0x00001bb5 testq %rax, %rax + 0x0f, 0x84, 0x08, 0x0a, 0x00, 0x00, //0x00001bb8 je LBB0_420 + //0x00001bbe LBB0_316 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001bbe movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001bc2 cmpb $34, %cl + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00001bc5 je LBB0_323 + 0x80, 0xf9, 0x5c, //0x00001bcb cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001bce je LBB0_320 + 0x80, 0xf9, 0x1f, //0x00001bd4 cmpb $31, %cl + 0x0f, 0x86, 0x4f, 0x0c, 0x00, 0x00, //0x00001bd7 jbe LBB0_468 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001bdd movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001be4 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001be9 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001bec addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001bef jne LBB0_316 + 0xe9, 0xcc, 0x09, 0x00, 0x00, //0x00001bf5 jmp LBB0_420 + //0x00001bfa LBB0_320 + 0x48, 0x83, 0xf8, 0x01, //0x00001bfa cmpq $1, %rax + 0x0f, 0x84, 0x5d, 0x0c, 0x00, 0x00, //0x00001bfe je LBB0_473 + 0x4c, 0x89, 0xd9, //0x00001c04 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001c07 subq $-48(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001c0b cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001c0f cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001c13 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001c1a movl $2, %edx + 0x48, 0x8b, 0x7d, 0xc0, //0x00001c1f movq $-64(%rbp), %rdi + 0x4d, 0x89, 0xea, //0x00001c23 movq %r13, %r10 + 0x49, 0x01, 0xd3, //0x00001c26 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001c29 addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001c2c jne LBB0_316 + 0xe9, 0x8f, 0x09, 0x00, 0x00, //0x00001c32 jmp LBB0_420 + //0x00001c37 LBB0_322 + 0x48, 0xf7, 0xd6, //0x00001c37 notq %rsi + 0x49, 0x89, 0xf3, //0x00001c3a movq %rsi, %r11 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00001c3d jmp LBB0_334 + //0x00001c42 LBB0_323 + 0x4c, 0x03, 0x5d, 0xa0, //0x00001c42 addq $-96(%rbp), %r11 + 0xe9, 0x47, 0xf3, 0xff, 0xff, //0x00001c46 jmp LBB0_188 + //0x00001c4b LBB0_324 + 0x48, 0x85, 0xff, //0x00001c4b testq %rdi, %rdi + 0x0f, 0x85, 0xe9, 0x0b, 0x00, 0x00, //0x00001c4e jne LBB0_470 + 0x49, 0x83, 0xc3, 0x20, //0x00001c54 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001c58 addq $-32, %rax + 0x4d, 0x85, 0xd2, //0x00001c5c testq %r10, %r10 + 0x0f, 0x85, 0x21, 0x04, 0x00, 0x00, //0x00001c5f jne LBB0_365 + //0x00001c65 LBB0_326 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001c65 movq $-72(%rbp), %r10 + 0x48, 0x85, 0xc0, //0x00001c69 testq %rax, %rax + 0x0f, 0x84, 0x9b, 0x09, 0x00, 0x00, //0x00001c6c je LBB0_429 + //0x00001c72 LBB0_327 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001c72 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001c76 cmpb $34, %cl + 0x0f, 0x84, 0xd0, 0x00, 0x00, 0x00, //0x00001c79 je LBB0_342 + 0x80, 0xf9, 0x5c, //0x00001c7f cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001c82 je LBB0_331 + 0x80, 0xf9, 0x1f, //0x00001c88 cmpb $31, %cl + 0x0f, 0x86, 0xa4, 0x0b, 0x00, 0x00, //0x00001c8b jbe LBB0_469 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001c91 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001c98 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001c9d addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001ca0 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001ca3 jne LBB0_327 + 0xe9, 0x5f, 0x09, 0x00, 0x00, //0x00001ca9 jmp LBB0_429 + //0x00001cae LBB0_331 + 0x48, 0x83, 0xf8, 0x01, //0x00001cae cmpq $1, %rax + 0x0f, 0x84, 0xb1, 0x0b, 0x00, 0x00, //0x00001cb2 je LBB0_475 + 0x4c, 0x89, 0xd9, //0x00001cb8 movq %r11, %rcx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001cbb movq $-48(%rbp), %r9 + 0x4c, 0x29, 0xc9, //0x00001cbf subq %r9, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001cc2 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001cc6 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001cca movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001cd1 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001cd6 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001cda addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001cdd addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001ce0 jne LBB0_327 + 0xe9, 0x22, 0x09, 0x00, 0x00, //0x00001ce6 jmp LBB0_429 + //0x00001ceb LBB0_333 + 0x49, 0xf7, 0xdb, //0x00001ceb negq %r11 + //0x00001cee LBB0_334 + 0x48, 0x8b, 0x75, 0xc8, //0x00001cee movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001cf2 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00001cf6 testq %r11, %r11 + 0x0f, 0x88, 0xe2, 0x08, 0x00, 0x00, //0x00001cf9 js LBB0_423 + //0x00001cff LBB0_335 + 0x4d, 0x01, 0xfb, //0x00001cff addq %r15, %r11 + //0x00001d02 LBB0_336 + 0x4c, 0x89, 0x1e, //0x00001d02 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001d05 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00001d08 testq %r15, %r15 + 0x0f, 0x89, 0x83, 0xe4, 0xff, 0xff, //0x00001d0b jns LBB0_4 + 0xe9, 0xde, 0x08, 0x00, 0x00, //0x00001d11 jmp LBB0_427 + //0x00001d16 LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001d16 subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001d19 bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001d1d addq %r13, %r11 + //0x00001d20 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001d20 notq %r11 + //0x00001d23 LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001d23 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001d27 movq $-48(%rbp), %r9 + //0x00001d2b LBB0_340 + 0x4d, 0x85, 0xdb, //0x00001d2b testq %r11, %r11 + 0x0f, 0x88, 0x3b, 0x09, 0x00, 0x00, //0x00001d2e js LBB0_438 + //0x00001d34 LBB0_341 + 0x48, 0x8b, 0x4d, 0xc0, //0x00001d34 movq $-64(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x00001d38 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x00001d3b movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001d3e movq %r15, %rax + 0x48, 0x85, 0xc9, //0x00001d41 testq %rcx, %rcx + 0x0f, 0x8f, 0x4a, 0xe4, 0xff, 0xff, //0x00001d44 jg LBB0_4 + 0xe9, 0xa5, 0x08, 0x00, 0x00, //0x00001d4a jmp LBB0_427 + //0x00001d4f LBB0_342 + 0x4c, 0x03, 0x5d, 0xa0, //0x00001d4f addq $-96(%rbp), %r11 + 0xe9, 0xa5, 0xf2, 0xff, 0xff, //0x00001d53 jmp LBB0_195 + //0x00001d58 LBB0_208 + 0x4d, 0x89, 0xe3, //0x00001d58 movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb0, //0x00001d5b movq $-80(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001d5f cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001d63 movq $-72(%rbp), %rdi + 0x0f, 0x82, 0x2c, 0x07, 0x00, 0x00, //0x00001d67 jb LBB0_404 + //0x00001d6d LBB0_209 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001d6d movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001d72 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001d78 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d7c pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001d80 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xec, //0x00001d84 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d88 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001d8c pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001d90 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001d94 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001d98 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001d9c pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001da0 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001da4 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001da8 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001dab cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001daf jne LBB0_211 + 0x48, 0x85, 0xc9, //0x00001db5 testq %rcx, %rcx + 0x0f, 0x85, 0x75, 0x06, 0x00, 0x00, //0x00001db8 jne LBB0_401 + //0x00001dbe LBB0_211 + 0x48, 0x09, 0xf2, //0x00001dbe orq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x00001dc1 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001dc4 orq %r9, %rax + 0x0f, 0x85, 0x83, 0x06, 0x00, 0x00, //0x00001dc7 jne LBB0_402 + //0x00001dcd LBB0_212 + 0x48, 0x85, 0xd2, //0x00001dcd testq %rdx, %rdx + 0x0f, 0x84, 0xbb, 0x06, 0x00, 0x00, //0x00001dd0 je LBB0_403 + //0x00001dd6 LBB0_213 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001dd6 bsfq %rdx, %rax + 0x4c, 0x03, 0x5d, 0xa0, //0x00001dda addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00001dde addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00001de1 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001de5 movq $-48(%rbp), %r9 + 0xe9, 0x11, 0xfa, 0xff, 0xff, //0x00001de9 jmp LBB0_304 + //0x00001dee LBB0_275 + 0x4d, 0x89, 0xe3, //0x00001dee movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb0, //0x00001df1 movq $-80(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001df5 cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001df9 movq $-72(%rbp), %rdi + 0x0f, 0x82, 0x32, 0x01, 0x00, 0x00, //0x00001dfd jb LBB0_347 + //0x00001e03 LBB0_276 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001e03 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001e08 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001e0e movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001e12 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001e16 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e1a movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001e1e pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001e22 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xeb, //0x00001e26 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e2a pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001e2e pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e32 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e36 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xc5, //0x00001e3a pmovmskb %xmm5, %eax + 0x66, 0x0f, 0x6f, 0xea, //0x00001e3e movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001e42 pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001e46 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001e4b pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001e4f pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001e54 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001e58 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001e5c pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001e61 pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x00001e65 pmovmskb %xmm4, %ebx + 0x48, 0xc1, 0xe6, 0x10, //0x00001e69 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00001e6d shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001e71 orq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001e74 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001e78 jne LBB0_278 + 0x48, 0x85, 0xd2, //0x00001e7e testq %rdx, %rdx + 0x0f, 0x85, 0x9f, 0x06, 0x00, 0x00, //0x00001e81 jne LBB0_412 + //0x00001e87 LBB0_278 + 0x48, 0xc1, 0xe3, 0x10, //0x00001e87 shlq $16, %rbx + 0x48, 0x09, 0xce, //0x00001e8b orq %rcx, %rsi + 0x48, 0x89, 0xd0, //0x00001e8e movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001e91 orq %r9, %rax + 0x0f, 0x85, 0x5e, 0x05, 0x00, 0x00, //0x00001e94 jne LBB0_400 + //0x00001e9a LBB0_279 + 0x4c, 0x09, 0xf3, //0x00001e9a orq %r14, %rbx + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001e9d movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001ea2 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001ea7 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001eaa je LBB0_281 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001eb0 bsfq %rsi, %rdx + //0x00001eb4 LBB0_281 + 0x48, 0x85, 0xdb, //0x00001eb4 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001eb7 je LBB0_283 + 0x48, 0x0f, 0xbc, 0xcb, //0x00001ebd bsfq %rbx, %rcx + //0x00001ec1 LBB0_283 + 0x48, 0x85, 0xf6, //0x00001ec1 testq %rsi, %rsi + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00001ec4 je LBB0_345 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001eca movq $-48(%rbp), %r9 + 0x4d, 0x29, 0xcb, //0x00001ece subq %r9, %r11 + 0x48, 0x39, 0xd1, //0x00001ed1 cmpq %rdx, %rcx + 0x0f, 0x82, 0x6c, 0x09, 0x00, 0x00, //0x00001ed4 jb LBB0_471 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001eda leaq $1(%r11,%rdx), %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00001edf movq $-56(%rbp), %rsi + 0xe9, 0x17, 0xf9, 0xff, 0xff, //0x00001ee3 jmp LBB0_304 + //0x00001ee8 LBB0_343 + 0x49, 0x89, 0xc8, //0x00001ee8 movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001eeb movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001ef2 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001ef5 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x7e, 0xf8, 0xff, 0xff, //0x00001ef9 jne LBB0_292 + 0xe9, 0x6b, 0x07, 0x00, 0x00, //0x00001eff jmp LBB0_438 + //0x00001f04 LBB0_344 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001f04 movq $-1, %r13 + 0x4d, 0x89, 0xd3, //0x00001f0b movq %r10, %r11 + 0x49, 0x89, 0xf9, //0x00001f0e movq %rdi, %r9 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001f11 movq $-1, %r12 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001f18 movq $-1, %rdi + 0xe9, 0xcc, 0xe8, 0xff, 0xff, //0x00001f1f jmp LBB0_92 + //0x00001f24 LBB0_345 + 0x48, 0x85, 0xdb, //0x00001f24 testq %rbx, %rbx + 0x0f, 0x85, 0x2b, 0x09, 0x00, 0x00, //0x00001f27 jne LBB0_472 + 0x49, 0x83, 0xc3, 0x20, //0x00001f2d addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00001f31 addq $-32, %r10 + //0x00001f35 LBB0_347 + 0x4d, 0x85, 0xc9, //0x00001f35 testq %r9, %r9 + 0x0f, 0x85, 0x2f, 0x06, 0x00, 0x00, //0x00001f38 jne LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00001f3e movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001f42 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x00001f46 testq %r10, %r10 + 0x0f, 0x84, 0x32, 0x07, 0x00, 0x00, //0x00001f49 je LBB0_442 + //0x00001f4f LBB0_349 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001f4f movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001f53 cmpb $34, %cl + 0x0f, 0x84, 0xdb, 0x00, 0x00, 0x00, //0x00001f56 je LBB0_360 + 0x80, 0xf9, 0x5c, //0x00001f5c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001f5f je LBB0_353 + 0x80, 0xf9, 0x1f, //0x00001f65 cmpb $31, %cl + 0x0f, 0x86, 0xc7, 0x08, 0x00, 0x00, //0x00001f68 jbe LBB0_469 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001f6e movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001f75 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001f7a addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001f7d addq %rcx, %r10 + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001f80 jne LBB0_349 + 0xe9, 0xf6, 0x06, 0x00, 0x00, //0x00001f86 jmp LBB0_442 + //0x00001f8b LBB0_353 + 0x49, 0x83, 0xfa, 0x01, //0x00001f8b cmpq $1, %r10 + 0x0f, 0x84, 0xea, 0x08, 0x00, 0x00, //0x00001f8f je LBB0_476 + 0x4c, 0x89, 0xd8, //0x00001f95 movq %r11, %rax + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001f98 movq $-48(%rbp), %r9 + 0x4c, 0x29, 0xc8, //0x00001f9c subq %r9, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00001f9f cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00001fa3 cmoveq %rax, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001fa7 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001fae movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001fb3 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001fb7 addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001fba addq %rcx, %r10 + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001fbd jne LBB0_349 + 0xe9, 0xb9, 0x06, 0x00, 0x00, //0x00001fc3 jmp LBB0_442 + //0x00001fc8 LBB0_355 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001fc8 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001fcf xorl %r8d, %r8d + 0x49, 0x83, 0xfd, 0x20, //0x00001fd2 cmpq $32, %r13 + 0x0f, 0x83, 0x89, 0xf8, 0xff, 0xff, //0x00001fd6 jae LBB0_51 + 0xe9, 0xdb, 0x01, 0x00, 0x00, //0x00001fdc jmp LBB0_374 + //0x00001fe1 LBB0_356 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001fe1 movq $-1, %r9 + 0x31, 0xdb, //0x00001fe8 xorl %ebx, %ebx + 0x4d, 0x89, 0xd5, //0x00001fea movq %r10, %r13 + 0x48, 0x83, 0xf8, 0x20, //0x00001fed cmpq $32, %rax + 0x0f, 0x83, 0xf4, 0xf8, 0xff, 0xff, //0x00001ff1 jae LBB0_114 + //0x00001ff7 LBB0_357 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001ff7 movq $-64(%rbp), %rdi + 0x48, 0x85, 0xdb, //0x00001ffb testq %rbx, %rbx + 0x0f, 0x84, 0xae, 0xfb, 0xff, 0xff, //0x00001ffe je LBB0_315 + //0x00002004 LBB0_358 + 0x48, 0x85, 0xc0, //0x00002004 testq %rax, %rax + 0x0f, 0x84, 0x54, 0x08, 0x00, 0x00, //0x00002007 je LBB0_473 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000200d movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002011 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002014 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002018 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x0000201c incq %r11 + 0x48, 0xff, 0xc8, //0x0000201f decq %rax + 0x48, 0x8b, 0x7d, 0xc0, //0x00002022 movq $-64(%rbp), %rdi + 0x4d, 0x89, 0xea, //0x00002026 movq %r13, %r10 + 0x48, 0x85, 0xc0, //0x00002029 testq %rax, %rax + 0x0f, 0x85, 0x8c, 0xfb, 0xff, 0xff, //0x0000202c jne LBB0_316 + 0xe9, 0x8f, 0x05, 0x00, 0x00, //0x00002032 jmp LBB0_420 + //0x00002037 LBB0_360 + 0x4c, 0x03, 0x5d, 0xa0, //0x00002037 addq $-96(%rbp), %r11 + 0xe9, 0xbf, 0xf7, 0xff, 0xff, //0x0000203b jmp LBB0_304 + //0x00002040 LBB0_361 + 0x49, 0xf7, 0xdb, //0x00002040 negq %r11 + 0xe9, 0xdb, 0xfc, 0xff, 0xff, //0x00002043 jmp LBB0_339 + //0x00002048 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002048 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x0000204f xorl %r9d, %r9d + 0x49, 0x83, 0xfd, 0x20, //0x00002052 cmpq $32, %r13 + 0x0f, 0x83, 0xcf, 0xf9, 0xff, 0xff, //0x00002056 jae LBB0_137 + 0xe9, 0xc3, 0x02, 0x00, 0x00, //0x0000205c jmp LBB0_389 + //0x00002061 LBB0_363 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002061 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00002068 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x20, //0x0000206b cmpq $32, %rax + 0x0f, 0x83, 0x39, 0xfa, 0xff, 0xff, //0x0000206f jae LBB0_171 + //0x00002075 LBB0_364 + 0x48, 0x8b, 0x75, 0xc8, //0x00002075 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002079 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000207d testq %r10, %r10 + 0x0f, 0x84, 0xdf, 0xfb, 0xff, 0xff, //0x00002080 je LBB0_326 + //0x00002086 LBB0_365 + 0x48, 0x85, 0xc0, //0x00002086 testq %rax, %rax + 0x0f, 0x84, 0xe3, 0x07, 0x00, 0x00, //0x00002089 je LBB0_474 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000208f movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002093 addq %r11, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002096 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x0000209a cmoveq %rcx, %r8 + 0x49, 0xff, 0xc3, //0x0000209e incq %r11 + 0x48, 0xff, 0xc8, //0x000020a1 decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x000020a4 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000020a8 movq $-48(%rbp), %r9 + 0x4c, 0x8b, 0x55, 0xb8, //0x000020ac movq $-72(%rbp), %r10 + 0x48, 0x85, 0xc0, //0x000020b0 testq %rax, %rax + 0x0f, 0x85, 0xb9, 0xfb, 0xff, 0xff, //0x000020b3 jne LBB0_327 + 0xe9, 0x4f, 0x05, 0x00, 0x00, //0x000020b9 jmp LBB0_429 + //0x000020be LBB0_367 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000020be movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x000020c5 movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x000020c8 movq %r10, %r9 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000020cb movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000020d2 movq $-1, %rbx + 0x48, 0x8d, 0x35, 0xb0, 0x09, 0x00, 0x00, //0x000020d9 leaq $2480(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0xf6, 0xf2, 0xff, 0xff, //0x000020e0 jmp LBB0_241 + //0x000020e5 LBB0_368 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000020e5 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x000020ec xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x000020ef cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x000020f3 movq $-72(%rbp), %rdi + 0x0f, 0x83, 0x70, 0xfc, 0xff, 0xff, //0x000020f7 jae LBB0_209 + 0xe9, 0x97, 0x03, 0x00, 0x00, //0x000020fd jmp LBB0_404 + //0x00002102 LBB0_369 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002102 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00002109 xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x0000210c cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00002110 movq $-72(%rbp), %rdi + 0x0f, 0x83, 0xe9, 0xfc, 0xff, 0xff, //0x00002114 jae LBB0_276 + 0xe9, 0x16, 0xfe, 0xff, 0xff, //0x0000211a jmp LBB0_347 + //0x0000211f LBB0_370 + 0x41, 0x89, 0xdc, //0x0000211f movl %ebx, %r12d + 0x41, 0xf7, 0xd4, //0x00002122 notl %r12d + 0x41, 0x21, 0xd4, //0x00002125 andl %edx, %r12d + 0x47, 0x8d, 0x04, 0x24, //0x00002128 leal (%r12,%r12), %r8d + 0x41, 0x09, 0xd8, //0x0000212c orl %ebx, %r8d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000212f movl $2863311530, %ecx + 0x44, 0x31, 0xc1, //0x00002134 xorl %r8d, %ecx + 0x21, 0xd1, //0x00002137 andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002139 andl $-1431655766, %ecx + 0x31, 0xdb, //0x0000213f xorl %ebx, %ebx + 0x44, 0x01, 0xe1, //0x00002141 addl %r12d, %ecx + 0x0f, 0x92, 0xc3, //0x00002144 setb %bl + 0x01, 0xc9, //0x00002147 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002149 xorl $1431655765, %ecx + 0x44, 0x21, 0xc1, //0x0000214f andl %r8d, %ecx + 0xf7, 0xd1, //0x00002152 notl %ecx + 0x21, 0xce, //0x00002154 andl %ecx, %esi + 0xe9, 0x29, 0xf8, 0xff, 0xff, //0x00002156 jmp LBB0_117 + //0x0000215b LBB0_371 + 0x4c, 0x89, 0xd8, //0x0000215b movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x0000215e subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc9, //0x00002162 bsfq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00002166 addq %rax, %r9 + 0x48, 0x09, 0xfa, //0x00002169 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x0000216c movq %rcx, %rax + 0x4c, 0x09, 0xc0, //0x0000216f orq %r8, %rax + 0x0f, 0x84, 0x4d, 0xf7, 0xff, 0xff, //0x00002172 je LBB0_54 + //0x00002178 LBB0_372 + 0x44, 0x89, 0xc0, //0x00002178 movl %r8d, %eax + 0xf7, 0xd0, //0x0000217b notl %eax + 0x21, 0xc8, //0x0000217d andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x0000217f leal (%rax,%rax), %esi + 0x44, 0x09, 0xc6, //0x00002182 orl %r8d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002185 movl $2863311530, %edi + 0x31, 0xf7, //0x0000218a xorl %esi, %edi + 0x21, 0xcf, //0x0000218c andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000218e andl $-1431655766, %edi + 0x45, 0x31, 0xc0, //0x00002194 xorl %r8d, %r8d + 0x01, 0xc7, //0x00002197 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc0, //0x00002199 setb %r8b + 0x01, 0xff, //0x0000219d addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000219f xorl $1431655765, %edi + 0x21, 0xf7, //0x000021a5 andl %esi, %edi + 0xf7, 0xd7, //0x000021a7 notl %edi + 0x21, 0xfa, //0x000021a9 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x000021ab testq %rdx, %rdx + 0x0f, 0x85, 0x1a, 0xf7, 0xff, 0xff, //0x000021ae jne LBB0_55 + //0x000021b4 LBB0_373 + 0x49, 0x83, 0xc3, 0x20, //0x000021b4 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x000021b8 addq $-32, %r13 + //0x000021bc LBB0_374 + 0x4d, 0x85, 0xc0, //0x000021bc testq %r8, %r8 + 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x000021bf jne LBB0_384 + 0x48, 0x8b, 0x7d, 0xc0, //0x000021c5 movq $-64(%rbp), %rdi + 0x4d, 0x85, 0xed, //0x000021c9 testq %r13, %r13 + 0x0f, 0x84, 0xf4, 0x03, 0x00, 0x00, //0x000021cc je LBB0_420 + //0x000021d2 LBB0_376 + 0x49, 0x8d, 0x4b, 0x01, //0x000021d2 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000021d6 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000021da cmpb $34, %bl + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x000021dd je LBB0_381 + 0x49, 0x8d, 0x55, 0xff, //0x000021e3 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x000021e7 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000021ea je LBB0_379 + 0x49, 0x89, 0xd5, //0x000021f0 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x000021f3 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000021f6 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000021f9 jne LBB0_376 + 0xe9, 0xc2, 0x03, 0x00, 0x00, //0x000021ff jmp LBB0_420 + //0x00002204 LBB0_379 + 0x48, 0x85, 0xd2, //0x00002204 testq %rdx, %rdx + 0x0f, 0x84, 0xb9, 0x03, 0x00, 0x00, //0x00002207 je LBB0_420 + 0x48, 0x03, 0x4d, 0xa8, //0x0000220d addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002211 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002215 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00002219 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x0000221d addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002221 movq %r13, %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00002224 movq $-64(%rbp), %rdi + 0x48, 0x85, 0xd2, //0x00002228 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x0000222b jne LBB0_376 + 0xe9, 0x90, 0x03, 0x00, 0x00, //0x00002231 jmp LBB0_420 + //0x00002236 LBB0_381 + 0x48, 0x2b, 0x4d, 0xd0, //0x00002236 subq $-48(%rbp), %rcx + 0x49, 0x89, 0xcb, //0x0000223a movq %rcx, %r11 + 0xe9, 0x50, 0xed, 0xff, 0xff, //0x0000223d jmp LBB0_188 + //0x00002242 LBB0_382 + 0x4c, 0x89, 0xd9, //0x00002242 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00002245 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002249 bsfq %rdx, %r9 + 0x49, 0x01, 0xc9, //0x0000224d addq %rcx, %r9 + 0xe9, 0x1c, 0xf7, 0xff, 0xff, //0x00002250 jmp LBB0_116 + //0x00002255 LBB0_383 + 0x45, 0x89, 0xd4, //0x00002255 movl %r10d, %r12d + 0x41, 0xf7, 0xd4, //0x00002258 notl %r12d + 0x41, 0x21, 0xd4, //0x0000225b andl %edx, %r12d + 0x47, 0x8d, 0x0c, 0x24, //0x0000225e leal (%r12,%r12), %r9d + 0x45, 0x09, 0xd1, //0x00002262 orl %r10d, %r9d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002265 movl $2863311530, %ecx + 0x44, 0x31, 0xc9, //0x0000226a xorl %r9d, %ecx + 0x21, 0xd1, //0x0000226d andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000226f andl $-1431655766, %ecx + 0x45, 0x31, 0xd2, //0x00002275 xorl %r10d, %r10d + 0x44, 0x01, 0xe1, //0x00002278 addl %r12d, %ecx + 0x41, 0x0f, 0x92, 0xc2, //0x0000227b setb %r10b + 0x01, 0xc9, //0x0000227f addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002281 xorl $1431655765, %ecx + 0x44, 0x21, 0xc9, //0x00002287 andl %r9d, %ecx + 0xf7, 0xd1, //0x0000228a notl %ecx + 0x21, 0xcb, //0x0000228c andl %ecx, %ebx + 0xe9, 0xb3, 0xf8, 0xff, 0xff, //0x0000228e jmp LBB0_174 + //0x00002293 LBB0_384 + 0x4d, 0x85, 0xed, //0x00002293 testq %r13, %r13 + 0x0f, 0x84, 0x2a, 0x03, 0x00, 0x00, //0x00002296 je LBB0_420 + 0x48, 0x8b, 0x45, 0xa8, //0x0000229c movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000022a0 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x000022a3 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x000022a7 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x000022ab incq %r11 + 0x49, 0xff, 0xcd, //0x000022ae decq %r13 + 0x48, 0x8b, 0x7d, 0xc0, //0x000022b1 movq $-64(%rbp), %rdi + 0x4d, 0x85, 0xed, //0x000022b5 testq %r13, %r13 + 0x0f, 0x85, 0x14, 0xff, 0xff, 0xff, //0x000022b8 jne LBB0_376 + 0xe9, 0x03, 0x03, 0x00, 0x00, //0x000022be jmp LBB0_420 + //0x000022c3 LBB0_386 + 0x4c, 0x89, 0xd8, //0x000022c3 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000022c6 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x000022ca bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x000022ce addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x000022d1 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000022d4 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x000022d7 orq %r9, %rax + 0x0f, 0x84, 0xab, 0xf7, 0xff, 0xff, //0x000022da je LBB0_140 + //0x000022e0 LBB0_387 + 0x44, 0x89, 0xc8, //0x000022e0 movl %r9d, %eax + 0xf7, 0xd0, //0x000022e3 notl %eax + 0x21, 0xc8, //0x000022e5 andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x000022e7 leal (%rax,%rax), %esi + 0x44, 0x09, 0xce, //0x000022ea orl %r9d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022ed movl $2863311530, %edi + 0x31, 0xf7, //0x000022f2 xorl %esi, %edi + 0x21, 0xcf, //0x000022f4 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022f6 andl $-1431655766, %edi + 0x45, 0x31, 0xc9, //0x000022fc xorl %r9d, %r9d + 0x01, 0xc7, //0x000022ff addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc1, //0x00002301 setb %r9b + 0x01, 0xff, //0x00002305 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002307 xorl $1431655765, %edi + 0x21, 0xf7, //0x0000230d andl %esi, %edi + 0xf7, 0xd7, //0x0000230f notl %edi + 0x21, 0xfa, //0x00002311 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x00002313 testq %rdx, %rdx + 0x0f, 0x85, 0x78, 0xf7, 0xff, 0xff, //0x00002316 jne LBB0_141 + //0x0000231c LBB0_388 + 0x49, 0x83, 0xc3, 0x20, //0x0000231c addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00002320 addq $-32, %r13 + //0x00002324 LBB0_389 + 0x4d, 0x85, 0xc9, //0x00002324 testq %r9, %r9 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00002327 jne LBB0_398 + 0x48, 0x8b, 0x75, 0xc8, //0x0000232d movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002331 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x00002335 testq %r13, %r13 + 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00002338 je LBB0_429 + //0x0000233e LBB0_391 + 0x49, 0x8d, 0x4b, 0x01, //0x0000233e leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00002342 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00002346 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002349 je LBB0_396 + 0x49, 0x8d, 0x55, 0xff, //0x0000234f leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00002353 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002356 je LBB0_394 + 0x49, 0x89, 0xd5, //0x0000235c movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x0000235f movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00002362 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00002365 jne LBB0_391 + 0xe9, 0x9d, 0x02, 0x00, 0x00, //0x0000236b jmp LBB0_429 + //0x00002370 LBB0_394 + 0x48, 0x85, 0xd2, //0x00002370 testq %rdx, %rdx + 0x0f, 0x84, 0xf0, 0x04, 0x00, 0x00, //0x00002373 je LBB0_475 + 0x48, 0x03, 0x4d, 0xa8, //0x00002379 addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000237d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002381 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x00002385 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002389 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x0000238d movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00002390 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002394 movq $-48(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x00002398 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x0000239b jne LBB0_391 + 0xe9, 0x67, 0x02, 0x00, 0x00, //0x000023a1 jmp LBB0_429 + //0x000023a6 LBB0_396 + 0x4c, 0x29, 0xc9, //0x000023a6 subq %r9, %rcx + 0x49, 0x89, 0xcb, //0x000023a9 movq %rcx, %r11 + 0xe9, 0x4c, 0xec, 0xff, 0xff, //0x000023ac jmp LBB0_195 + //0x000023b1 LBB0_397 + 0x4c, 0x89, 0xd9, //0x000023b1 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x000023b4 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc2, //0x000023b8 bsfq %rdx, %r8 + 0x49, 0x01, 0xc8, //0x000023bc addq %rcx, %r8 + 0xe9, 0x6f, 0xf7, 0xff, 0xff, //0x000023bf jmp LBB0_173 + //0x000023c4 LBB0_398 + 0x4d, 0x85, 0xed, //0x000023c4 testq %r13, %r13 + 0x0f, 0x84, 0x9c, 0x04, 0x00, 0x00, //0x000023c7 je LBB0_475 + 0x48, 0x8b, 0x45, 0xa8, //0x000023cd movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000023d1 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023d4 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023d8 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x000023dc incq %r11 + 0x49, 0xff, 0xcd, //0x000023df decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000023e2 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000023e6 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x000023ea testq %r13, %r13 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x000023ed jne LBB0_391 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x000023f3 jmp LBB0_429 + //0x000023f8 LBB0_400 + 0x44, 0x89, 0xc8, //0x000023f8 movl %r9d, %eax + 0xf7, 0xd0, //0x000023fb notl %eax + 0x21, 0xd0, //0x000023fd andl %edx, %eax + 0x44, 0x8d, 0x24, 0x00, //0x000023ff leal (%rax,%rax), %r12d + 0x45, 0x09, 0xcc, //0x00002403 orl %r9d, %r12d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002406 movl $2863311530, %ecx + 0x44, 0x31, 0xe1, //0x0000240b xorl %r12d, %ecx + 0x21, 0xd1, //0x0000240e andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002410 andl $-1431655766, %ecx + 0x45, 0x31, 0xc9, //0x00002416 xorl %r9d, %r9d + 0x01, 0xc1, //0x00002419 addl %eax, %ecx + 0x41, 0x0f, 0x92, 0xc1, //0x0000241b setb %r9b + 0x01, 0xc9, //0x0000241f addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002421 xorl $1431655765, %ecx + 0x44, 0x21, 0xe1, //0x00002427 andl %r12d, %ecx + 0xf7, 0xd1, //0x0000242a notl %ecx + 0x21, 0xce, //0x0000242c andl %ecx, %esi + 0xe9, 0x67, 0xfa, 0xff, 0xff, //0x0000242e jmp LBB0_279 + //0x00002433 LBB0_401 + 0x4c, 0x89, 0xd8, //0x00002433 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002436 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x0000243a bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x0000243e addq %rax, %r8 + 0x48, 0x09, 0xf2, //0x00002441 orq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x00002444 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00002447 orq %r9, %rax + 0x0f, 0x84, 0x7d, 0xf9, 0xff, 0xff, //0x0000244a je LBB0_212 + //0x00002450 LBB0_402 + 0x44, 0x89, 0xc8, //0x00002450 movl %r9d, %eax + 0xf7, 0xd0, //0x00002453 notl %eax + 0x21, 0xc8, //0x00002455 andl %ecx, %eax + 0x44, 0x8d, 0x34, 0x00, //0x00002457 leal (%rax,%rax), %r14d + 0x45, 0x09, 0xce, //0x0000245b orl %r9d, %r14d + 0x44, 0x89, 0xf6, //0x0000245e movl %r14d, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002461 movl $2863311530, %ebx + 0x31, 0xde, //0x00002466 xorl %ebx, %esi + 0x21, 0xce, //0x00002468 andl %ecx, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000246a andl $-1431655766, %esi + 0x45, 0x31, 0xc9, //0x00002470 xorl %r9d, %r9d + 0x01, 0xc6, //0x00002473 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc1, //0x00002475 setb %r9b + 0x01, 0xf6, //0x00002479 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000247b xorl $1431655765, %esi + 0x44, 0x21, 0xf6, //0x00002481 andl %r14d, %esi + 0xf7, 0xd6, //0x00002484 notl %esi + 0x21, 0xf2, //0x00002486 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00002488 testq %rdx, %rdx + 0x0f, 0x85, 0x45, 0xf9, 0xff, 0xff, //0x0000248b jne LBB0_213 + //0x00002491 LBB0_403 + 0x49, 0x83, 0xc3, 0x20, //0x00002491 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00002495 addq $-32, %r10 + //0x00002499 LBB0_404 + 0x4d, 0x85, 0xc9, //0x00002499 testq %r9, %r9 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x0000249c jne LBB0_413 + 0x48, 0x8b, 0x75, 0xc8, //0x000024a2 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000024a6 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x000024aa testq %r10, %r10 + 0x0f, 0x84, 0xce, 0x01, 0x00, 0x00, //0x000024ad je LBB0_442 + //0x000024b3 LBB0_406 + 0x49, 0x8d, 0x4b, 0x01, //0x000024b3 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000024b7 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000024bb cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x000024be je LBB0_411 + 0x49, 0x8d, 0x52, 0xff, //0x000024c4 leaq $-1(%r10), %rdx + 0x80, 0xfb, 0x5c, //0x000024c8 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000024cb je LBB0_409 + 0x49, 0x89, 0xd2, //0x000024d1 movq %rdx, %r10 + 0x49, 0x89, 0xcb, //0x000024d4 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000024d7 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000024da jne LBB0_406 + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x000024e0 jmp LBB0_442 + //0x000024e5 LBB0_409 + 0x48, 0x85, 0xd2, //0x000024e5 testq %rdx, %rdx + 0x0f, 0x84, 0x91, 0x03, 0x00, 0x00, //0x000024e8 je LBB0_476 + 0x48, 0x03, 0x4d, 0xa8, //0x000024ee addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000024f2 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x000024f6 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x000024fa addq $2, %r11 + 0x49, 0x83, 0xc2, 0xfe, //0x000024fe addq $-2, %r10 + 0x4c, 0x89, 0xd2, //0x00002502 movq %r10, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00002505 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002509 movq $-48(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x0000250d testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00002510 jne LBB0_406 + 0xe9, 0x66, 0x01, 0x00, 0x00, //0x00002516 jmp LBB0_442 + //0x0000251b LBB0_411 + 0x4c, 0x29, 0xc9, //0x0000251b subq %r9, %rcx + 0x49, 0x89, 0xcb, //0x0000251e movq %rcx, %r11 + 0xe9, 0xd9, 0xf2, 0xff, 0xff, //0x00002521 jmp LBB0_304 + //0x00002526 LBB0_412 + 0x4c, 0x89, 0xd8, //0x00002526 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002529 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x0000252d bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00002531 addq %rax, %r8 + 0xe9, 0x4e, 0xf9, 0xff, 0xff, //0x00002534 jmp LBB0_278 + //0x00002539 LBB0_413 + 0x4d, 0x85, 0xd2, //0x00002539 testq %r10, %r10 + 0x0f, 0x84, 0x3d, 0x03, 0x00, 0x00, //0x0000253c je LBB0_476 + 0x48, 0x8b, 0x45, 0xa8, //0x00002542 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002546 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00002549 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x0000254d cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002551 incq %r11 + 0x49, 0xff, 0xca, //0x00002554 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00002557 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x0000255b movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000255f testq %r10, %r10 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x00002562 jne LBB0_406 + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00002568 jmp LBB0_442 + //0x0000256d LBB0_415 + 0x4d, 0x85, 0xd2, //0x0000256d testq %r10, %r10 + 0x0f, 0x84, 0x09, 0x03, 0x00, 0x00, //0x00002570 je LBB0_476 + 0x48, 0x8b, 0x45, 0xa8, //0x00002576 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x0000257a addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000257d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00002581 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002585 incq %r11 + 0x49, 0xff, 0xca, //0x00002588 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x0000258b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x0000258f movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x00002593 testq %r10, %r10 + 0x0f, 0x85, 0xb3, 0xf9, 0xff, 0xff, //0x00002596 jne LBB0_349 + 0xe9, 0xe0, 0x00, 0x00, 0x00, //0x0000259c jmp LBB0_442 + //0x000025a1 LBB0_417 + 0x48, 0x89, 0x16, //0x000025a1 movq %rdx, (%rsi) + //0x000025a4 LBB0_418 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000025a4 movq $-1, %rax + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000025ab jmp LBB0_427 + //0x000025b0 LBB0_439 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x000025b0 movq $-7, %rax + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x000025b7 jmp LBB0_427 + //0x000025bc LBB0_419 + 0x49, 0x83, 0xfb, 0xff, //0x000025bc cmpq $-1, %r11 + 0x0f, 0x85, 0x7d, 0x00, 0x00, 0x00, //0x000025c0 jne LBB0_150 + //0x000025c6 LBB0_420 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000025c6 movq $-1, %r11 + 0x4d, 0x89, 0xd1, //0x000025cd movq %r10, %r9 + 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x000025d0 jmp LBB0_150 + //0x000025d5 LBB0_421 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000025d5 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000025dc jmp LBB0_424 + //0x000025e1 LBB0_423 + 0x4c, 0x89, 0xd8, //0x000025e1 movq %r11, %rax + //0x000025e4 LBB0_424 + 0x48, 0xf7, 0xd0, //0x000025e4 notq %rax + 0x49, 0x01, 0xc7, //0x000025e7 addq %rax, %r15 + //0x000025ea LBB0_425 + 0x4c, 0x89, 0x3e, //0x000025ea movq %r15, (%rsi) + //0x000025ed LBB0_426 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000025ed movq $-2, %rax + //0x000025f4 LBB0_427 + 0x48, 0x83, 0xc4, 0x70, //0x000025f4 addq $112, %rsp + 0x5b, //0x000025f8 popq %rbx + 0x41, 0x5c, //0x000025f9 popq %r12 + 0x41, 0x5d, //0x000025fb popq %r13 + 0x41, 0x5e, //0x000025fd popq %r14 + 0x41, 0x5f, //0x000025ff popq %r15 + 0x5d, //0x00002601 popq %rbp + 0xc3, //0x00002602 retq + //0x00002603 LBB0_428 + 0x49, 0x83, 0xfb, 0xff, //0x00002603 cmpq $-1, %r11 + 0x0f, 0x85, 0xbf, 0x01, 0x00, 0x00, //0x00002607 jne LBB0_461 + //0x0000260d LBB0_429 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000260d movq $-1, %r11 + 0x4d, 0x89, 0xd0, //0x00002614 movq %r10, %r8 + 0xe9, 0xb0, 0x01, 0x00, 0x00, //0x00002617 jmp LBB0_461 + //0x0000261c LBB0_440 + 0x48, 0x89, 0x0e, //0x0000261c movq %rcx, (%rsi) + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x0000261f jmp LBB0_427 + //0x00002624 LBB0_430 + 0x49, 0x83, 0xf9, 0xff, //0x00002624 cmpq $-1, %r9 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002628 jne LBB0_434 + 0x48, 0x0f, 0xbc, 0xc2, //0x0000262e bsfq %rdx, %rax + //0x00002632 LBB0_432 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00002632 subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00002636 addq %rax, %r11 + //0x00002639 LBB0_433 + 0x4d, 0x89, 0xd9, //0x00002639 movq %r11, %r9 + //0x0000263c LBB0_434 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000263c movq $-2, %r11 + //0x00002643 LBB0_150 + 0x48, 0x8b, 0x45, 0xc8, //0x00002643 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002647 movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x0000264a movq %r11, %rax + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x0000264d jmp LBB0_427 + //0x00002652 LBB0_435 + 0x49, 0x83, 0xf8, 0xff, //0x00002652 cmpq $-1, %r8 + 0x0f, 0x84, 0x34, 0x01, 0x00, 0x00, //0x00002656 je LBB0_453 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000265c movq $-2, %r11 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x00002663 jmp LBB0_461 + //0x00002668 LBB0_437 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002668 movq $-1, %r11 + //0x0000266f LBB0_438 + 0x4d, 0x29, 0xdf, //0x0000266f subq %r11, %r15 + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x00002672 jmp LBB0_425 + //0x00002677 LBB0_441 + 0x49, 0x83, 0xfb, 0xff, //0x00002677 cmpq $-1, %r11 + 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x0000267b jne LBB0_461 + //0x00002681 LBB0_442 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002681 movq $-1, %r11 + 0x49, 0x89, 0xf8, //0x00002688 movq %rdi, %r8 + 0xe9, 0x3c, 0x01, 0x00, 0x00, //0x0000268b jmp LBB0_461 + //0x00002690 LBB0_443 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002690 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002697 cmpb $97, %cl + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x0000269a jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x000026a0 leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026a4 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x6c, //0x000026a7 cmpb $108, $2(%r9,%r15) + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x000026ad jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x000026b3 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026b7 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x73, //0x000026ba cmpb $115, $3(%r9,%r15) + 0x0f, 0x85, 0x2e, 0xff, 0xff, 0xff, //0x000026c0 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x04, //0x000026c6 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026ca movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x04, 0x65, //0x000026cd cmpb $101, $4(%r9,%r15) + 0x0f, 0x85, 0x1b, 0xff, 0xff, 0xff, //0x000026d3 jne LBB0_427 + 0x49, 0x83, 0xc7, 0x05, //0x000026d9 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x000026dd movq %r15, (%rsi) + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x000026e0 jmp LBB0_427 + //0x000026e5 LBB0_249 + 0x4c, 0x89, 0x3e, //0x000026e5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000026e8 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x000026ef cmpb $110, (%r10) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x000026f3 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x01, //0x000026f9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026fd movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x01, 0x75, //0x00002700 cmpb $117, $1(%r9,%r15) + 0x0f, 0x85, 0xe8, 0xfe, 0xff, 0xff, //0x00002706 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x0000270c leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002710 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x6c, //0x00002713 cmpb $108, $2(%r9,%r15) + 0x0f, 0x85, 0xd5, 0xfe, 0xff, 0xff, //0x00002719 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x0000271f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002723 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x6c, //0x00002726 cmpb $108, $3(%r9,%r15) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x0000272c jne LBB0_427 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00002732 jmp LBB0_452 + //0x00002737 LBB0_448 + 0x4c, 0x89, 0x3e, //0x00002737 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000273a movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x00002741 cmpb $116, (%r10) + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00002745 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x01, //0x0000274b leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000274f movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x01, 0x72, //0x00002752 cmpb $114, $1(%r9,%r15) + 0x0f, 0x85, 0x96, 0xfe, 0xff, 0xff, //0x00002758 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x0000275e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002762 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x75, //0x00002765 cmpb $117, $2(%r9,%r15) + 0x0f, 0x85, 0x83, 0xfe, 0xff, 0xff, //0x0000276b jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x00002771 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002775 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x65, //0x00002778 cmpb $101, $3(%r9,%r15) + 0x0f, 0x85, 0x70, 0xfe, 0xff, 0xff, //0x0000277e jne LBB0_427 + //0x00002784 LBB0_452 + 0x49, 0x83, 0xc7, 0x04, //0x00002784 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002788 movq %r15, (%rsi) + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x0000278b jmp LBB0_427 + //0x00002790 LBB0_453 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002790 bsfq %rdx, %rax + //0x00002794 LBB0_454 + 0x4d, 0x29, 0xcb, //0x00002794 subq %r9, %r11 + 0x49, 0x01, 0xc3, //0x00002797 addq %rax, %r11 + //0x0000279a LBB0_455 + 0x4d, 0x89, 0xd8, //0x0000279a movq %r11, %r8 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000279d movq $-2, %r11 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000027a4 jmp LBB0_461 + //0x000027a9 LBB0_456 + 0x49, 0x83, 0xf8, 0xff, //0x000027a9 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000027ad jne LBB0_459 + 0x48, 0x0f, 0xbc, 0xc2, //0x000027b3 bsfq %rdx, %rax + //0x000027b7 LBB0_458 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000027b7 subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000027bb addq %rax, %r11 + 0x4d, 0x89, 0xd8, //0x000027be movq %r11, %r8 + //0x000027c1 LBB0_459 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027c1 movq $-2, %r11 + //0x000027c8 LBB0_460 + 0x48, 0x8b, 0x75, 0xc8, //0x000027c8 movq $-56(%rbp), %rsi + //0x000027cc LBB0_461 + 0x4c, 0x89, 0x06, //0x000027cc movq %r8, (%rsi) + 0x4c, 0x89, 0xd8, //0x000027cf movq %r11, %rax + 0xe9, 0x1d, 0xfe, 0xff, 0xff, //0x000027d2 jmp LBB0_427 + //0x000027d7 LBB0_462 + 0x49, 0x89, 0xc2, //0x000027d7 movq %rax, %r10 + 0xe9, 0xe7, 0xfd, 0xff, 0xff, //0x000027da jmp LBB0_420 + //0x000027df LBB0_463 + 0x49, 0x89, 0xca, //0x000027df movq %rcx, %r10 + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x000027e2 jmp LBB0_420 + //0x000027e7 LBB0_149 + 0x4c, 0x01, 0xd9, //0x000027e7 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027ea movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x000027f1 movq %rcx, %r9 + 0xe9, 0x4a, 0xfe, 0xff, 0xff, //0x000027f4 jmp LBB0_150 + //0x000027f9 LBB0_185 + 0x4c, 0x01, 0xd9, //0x000027f9 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027fc movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x00002803 movq %rcx, %r8 + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x00002806 jmp LBB0_461 + //0x0000280b LBB0_464 + 0x49, 0x89, 0xc2, //0x0000280b movq %rax, %r10 + 0xe9, 0xfa, 0xfd, 0xff, 0xff, //0x0000280e jmp LBB0_429 + //0x00002813 LBB0_465 + 0x49, 0x89, 0xca, //0x00002813 movq %rcx, %r10 + 0xe9, 0xf2, 0xfd, 0xff, 0xff, //0x00002816 jmp LBB0_429 + //0x0000281b LBB0_466 + 0x48, 0x89, 0xc7, //0x0000281b movq %rax, %rdi + 0xe9, 0x5e, 0xfe, 0xff, 0xff, //0x0000281e jmp LBB0_442 + //0x00002823 LBB0_467 + 0x49, 0x0f, 0xbc, 0xc2, //0x00002823 bsfq %r10, %rax + 0xe9, 0x06, 0xfe, 0xff, 0xff, //0x00002827 jmp LBB0_432 + //0x0000282c LBB0_468 + 0x4c, 0x2b, 0x5d, 0xd0, //0x0000282c subq $-48(%rbp), %r11 + 0xe9, 0x04, 0xfe, 0xff, 0xff, //0x00002830 jmp LBB0_433 + //0x00002835 LBB0_469 + 0x4d, 0x29, 0xcb, //0x00002835 subq %r9, %r11 + 0xe9, 0x5d, 0xff, 0xff, 0xff, //0x00002838 jmp LBB0_455 + //0x0000283d LBB0_470 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000283d bsfq %rdi, %rax + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00002841 jmp LBB0_454 + //0x00002846 LBB0_471 + 0x4c, 0x01, 0xd9, //0x00002846 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002849 movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x00002850 movq %rcx, %r8 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002853 jmp LBB0_460 + //0x00002858 LBB0_472 + 0x48, 0x0f, 0xbc, 0xc3, //0x00002858 bsfq %rbx, %rax + 0xe9, 0x56, 0xff, 0xff, 0xff, //0x0000285c jmp LBB0_458 + //0x00002861 LBB0_473 + 0x4d, 0x89, 0xea, //0x00002861 movq %r13, %r10 + 0xe9, 0x5d, 0xfd, 0xff, 0xff, //0x00002864 jmp LBB0_420 + //0x00002869 LBB0_475 + 0x48, 0x8b, 0x75, 0xc8, //0x00002869 movq $-56(%rbp), %rsi + 0xe9, 0x9b, 0xfd, 0xff, 0xff, //0x0000286d jmp LBB0_429 + //0x00002872 LBB0_474 + 0x48, 0x8b, 0x75, 0xc8, //0x00002872 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00002876 movq $-72(%rbp), %r10 + 0xe9, 0x8e, 0xfd, 0xff, 0xff, //0x0000287a jmp LBB0_429 + //0x0000287f LBB0_476 + 0x48, 0x8b, 0x75, 0xc8, //0x0000287f movq $-56(%rbp), %rsi + 0xe9, 0xf9, 0xfd, 0xff, 0xff, //0x00002883 jmp LBB0_442 + //0x00002888 .p2align 2, 0x90 + // // .set L0_0_set_35, LBB0_35-LJTI0_0 + // // .set L0_0_set_62, LBB0_62-LJTI0_0 + // // .set L0_0_set_40, LBB0_40-LJTI0_0 + // // .set L0_0_set_60, LBB0_60-LJTI0_0 + // // .set L0_0_set_38, LBB0_38-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + //0x00002888 LJTI0_0 + 0x13, 0xdb, 0xff, 0xff, //0x00002888 .long L0_0_set_35 + 0x24, 0xdd, 0xff, 0xff, //0x0000288c .long L0_0_set_62 + 0x4a, 0xdb, 0xff, 0xff, //0x00002890 .long L0_0_set_40 + 0x0d, 0xdd, 0xff, 0xff, //0x00002894 .long L0_0_set_60 + 0x2a, 0xdb, 0xff, 0xff, //0x00002898 .long L0_0_set_38 + 0x4f, 0xdd, 0xff, 0xff, //0x0000289c .long L0_0_set_64 + // // .set L0_1_set_427, LBB0_427-LJTI0_1 + // // .set L0_1_set_426, LBB0_426-LJTI0_1 + // // .set L0_1_set_199, LBB0_199-LJTI0_1 + // // .set L0_1_set_217, LBB0_217-LJTI0_1 + // // .set L0_1_set_68, LBB0_68-LJTI0_1 + // // .set L0_1_set_242, LBB0_242-LJTI0_1 + // // .set L0_1_set_244, LBB0_244-LJTI0_1 + // // .set L0_1_set_247, LBB0_247-LJTI0_1 + // // .set L0_1_set_253, LBB0_253-LJTI0_1 + // // .set L0_1_set_1, LBB0_1-LJTI0_1 + //0x000028a0 LJTI0_1 + 0x54, 0xfd, 0xff, 0xff, //0x000028a0 .long L0_1_set_427 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028ac .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028bc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028cc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028dc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028ec .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028fc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002900 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002904 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002908 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000290c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002910 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002914 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002918 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000291c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002920 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002924 .long L0_1_set_426 + 0x9f, 0xe7, 0xff, 0xff, //0x00002928 .long L0_1_set_199 + 0x4d, 0xfd, 0xff, 0xff, //0x0000292c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002930 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002934 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002938 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000293c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002940 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002944 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002948 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000294c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002950 .long L0_1_set_426 + 0x5d, 0xe9, 0xff, 0xff, //0x00002954 .long L0_1_set_217 + 0x4d, 0xfd, 0xff, 0xff, //0x00002958 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000295c .long L0_1_set_426 + 0x86, 0xdd, 0xff, 0xff, //0x00002960 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002964 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002968 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x0000296c .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002970 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002974 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002978 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x0000297c .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002980 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002984 .long L0_1_set_68 + 0x4d, 0xfd, 0xff, 0xff, //0x00002988 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000298c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002990 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002994 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002998 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000299c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029ac .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029bc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029cc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029dc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029ec .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029fc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a00 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a04 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a08 .long L0_1_set_426 + 0x44, 0xeb, 0xff, 0xff, //0x00002a0c .long L0_1_set_242 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a10 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a14 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a18 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a1c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a20 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a24 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a28 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a2c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_426 + 0x6c, 0xeb, 0xff, 0xff, //0x00002a38 .long L0_1_set_244 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a48 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_426 + 0xad, 0xeb, 0xff, 0xff, //0x00002a58 .long L0_1_set_247 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a60 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_426 + 0xd4, 0xeb, 0xff, 0xff, //0x00002a70 .long L0_1_set_253 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a7c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a80 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a84 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a88 .long L0_1_set_426 + 0xcb, 0xd8, 0xff, 0xff, //0x00002a8c .long L0_1_set_1 + // // .set L0_2_set_262, LBB0_262-LJTI0_2 + // // .set L0_2_set_291, LBB0_291-LJTI0_2 + // // .set L0_2_set_257, LBB0_257-LJTI0_2 + // // .set L0_2_set_259, LBB0_259-LJTI0_2 + // // .set L0_2_set_264, LBB0_264-LJTI0_2 + //0x00002a90 LJTI0_2 + 0x79, 0xea, 0xff, 0xff, //0x00002a90 .long L0_2_set_262 + 0xd9, 0xec, 0xff, 0xff, //0x00002a94 .long L0_2_set_291 + 0x79, 0xea, 0xff, 0xff, //0x00002a98 .long L0_2_set_262 + 0x33, 0xea, 0xff, 0xff, //0x00002a9c .long L0_2_set_257 + 0xd9, 0xec, 0xff, 0xff, //0x00002aa0 .long L0_2_set_291 + 0x50, 0xea, 0xff, 0xff, //0x00002aa4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aa8 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aac .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab0 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab8 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002abc .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ac0 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ac4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ac8 .long L0_2_set_259 + 0xd9, 0xec, 0xff, 0xff, //0x00002acc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002adc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002aec .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af4 .long L0_2_set_291 + 0x94, 0xea, 0xff, 0xff, //0x00002af8 .long L0_2_set_264 + 0xd9, 0xec, 0xff, 0xff, //0x00002afc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b00 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b04 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b08 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b0c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b10 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b14 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b18 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b1c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b20 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b24 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b28 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b2c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b30 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b34 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b38 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b3c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b40 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b44 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b48 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b4c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b50 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b54 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b58 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b5c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b60 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b64 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b68 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b6c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b70 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b74 .long L0_2_set_291 + 0x94, 0xea, 0xff, 0xff, //0x00002b78 .long L0_2_set_264 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + // // .set L0_3_set_152, LBB0_152-LJTI0_3 + // // .set L0_3_set_100, LBB0_100-LJTI0_3 + // // .set L0_3_set_95, LBB0_95-LJTI0_3 + // // .set L0_3_set_93, LBB0_93-LJTI0_3 + //0x00002b7c LJTI0_3 + 0xcd, 0xdc, 0xff, 0xff, //0x00002b7c .long L0_3_set_98 + 0x2e, 0xe1, 0xff, 0xff, //0x00002b80 .long L0_3_set_152 + 0xcd, 0xdc, 0xff, 0xff, //0x00002b84 .long L0_3_set_98 + 0xe8, 0xdc, 0xff, 0xff, //0x00002b88 .long L0_3_set_100 + 0x2e, 0xe1, 0xff, 0xff, //0x00002b8c .long L0_3_set_152 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b90 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b94 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b98 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b9c .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba0 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba4 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba8 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002bac .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002bb0 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002bb4 .long L0_3_set_95 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bb8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bbc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bcc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bdc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be0 .long L0_3_set_152 + 0x84, 0xdc, 0xff, 0xff, //0x00002be4 .long L0_3_set_93 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bec .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bfc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c00 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c04 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c08 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c0c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c10 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c14 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c18 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c1c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c20 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c24 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c28 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c2c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c30 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c34 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c38 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c3c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c40 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c44 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c48 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c4c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c50 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c54 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c58 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c5c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c60 .long L0_3_set_152 + 0x84, 0xdc, 0xff, 0xff, //0x00002c64 .long L0_3_set_93 + //0x00002c68 .p2align 2, 0x00 + //0x00002c68 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002c68 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number.go new file mode 100644 index 000000000..90075615e --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_number func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_number uintptr + +//go:nosplit +func skip_number(s *string, p *int) (ret int) { + return F_skip_number(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_subr.go new file mode 100644 index 000000000..b993e2ddc --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_number = 112 +) + +const ( + _stack__skip_number = 72 +) + +const ( + _size__skip_number = 1128 +) + +var ( + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1046, 72}, + {1050, 48}, + {1051, 40}, + {1053, 32}, + {1055, 24}, + {1057, 16}, + {1059, 8}, + {1060, 0}, + {1128, 72}, + } +) + +var _cfunc_skip_number = []loader.CFunc{ + {"_skip_number_entry", 0, _entry__skip_number, 0, nil}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_text_amd64.go new file mode 100644 index 000000000..a0489d12b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_number_text_amd64.go @@ -0,0 +1,394 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_skip_number = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, // QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000010 LCPI0_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000010 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000020 LCPI0_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000020 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000030 LCPI0_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000030 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000040 LCPI0_4 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000040 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000050 LCPI0_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000050 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000060 LCPI0_6 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000060 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000070 .p2align 4, 0x90 + //0x00000070 _skip_number + 0x55, //0x00000070 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000071 movq %rsp, %rbp + 0x41, 0x57, //0x00000074 pushq %r15 + 0x41, 0x56, //0x00000076 pushq %r14 + 0x41, 0x55, //0x00000078 pushq %r13 + 0x41, 0x54, //0x0000007a pushq %r12 + 0x53, //0x0000007c pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x0000007d subq $24, %rsp + 0x48, 0x8b, 0x1f, //0x00000081 movq (%rdi), %rbx + 0x4c, 0x8b, 0x4f, 0x08, //0x00000084 movq $8(%rdi), %r9 + 0x48, 0x8b, 0x16, //0x00000088 movq (%rsi), %rdx + 0x49, 0x29, 0xd1, //0x0000008b subq %rdx, %r9 + 0x31, 0xc0, //0x0000008e xorl %eax, %eax + 0x80, 0x3c, 0x13, 0x2d, //0x00000090 cmpb $45, (%rbx,%rdx) + 0x4c, 0x8d, 0x3c, 0x13, //0x00000094 leaq (%rbx,%rdx), %r15 + 0x0f, 0x94, 0xc0, //0x00000098 sete %al + 0x49, 0x01, 0xc7, //0x0000009b addq %rax, %r15 + 0x49, 0x29, 0xc1, //0x0000009e subq %rax, %r9 + 0x0f, 0x84, 0x03, 0x04, 0x00, 0x00, //0x000000a1 je LBB0_1 + 0x41, 0x8a, 0x3f, //0x000000a7 movb (%r15), %dil + 0x8d, 0x4f, 0xd0, //0x000000aa leal $-48(%rdi), %ecx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000000ad movq $-2, %rax + 0x80, 0xf9, 0x09, //0x000000b4 cmpb $9, %cl + 0x0f, 0x87, 0xc3, 0x03, 0x00, 0x00, //0x000000b7 ja LBB0_57 + 0x40, 0x80, 0xff, 0x30, //0x000000bd cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000000c1 jne LBB0_7 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000000c7 movl $1, %r11d + 0x49, 0x83, 0xf9, 0x01, //0x000000cd cmpq $1, %r9 + 0x0f, 0x84, 0x7e, 0x03, 0x00, 0x00, //0x000000d1 je LBB0_56 + 0x41, 0x8a, 0x47, 0x01, //0x000000d7 movb $1(%r15), %al + 0x04, 0xd2, //0x000000db addb $-46, %al + 0x3c, 0x37, //0x000000dd cmpb $55, %al + 0x0f, 0x87, 0x70, 0x03, 0x00, 0x00, //0x000000df ja LBB0_56 + 0x0f, 0xb6, 0xc0, //0x000000e5 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000e8 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000000f2 btq %rax, %rcx + 0x0f, 0x83, 0x59, 0x03, 0x00, 0x00, //0x000000f6 jae LBB0_56 + //0x000000fc LBB0_7 + 0x48, 0x89, 0x55, 0xd0, //0x000000fc movq %rdx, $-48(%rbp) + 0x49, 0x83, 0xf9, 0x10, //0x00000100 cmpq $16, %r9 + 0x0f, 0x82, 0xac, 0x03, 0x00, 0x00, //0x00000104 jb LBB0_8 + 0x48, 0x89, 0x5d, 0xc8, //0x0000010a movq %rbx, $-56(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x0000010e movq %rsi, $-64(%rbp) + 0x4d, 0x8d, 0x69, 0xf0, //0x00000112 leaq $-16(%r9), %r13 + 0x4c, 0x89, 0xe8, //0x00000116 movq %r13, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000119 andq $-16, %rax + 0x4e, 0x8d, 0x64, 0x38, 0x10, //0x0000011d leaq $16(%rax,%r15), %r12 + 0x41, 0x83, 0xe5, 0x0f, //0x00000122 andl $15, %r13d + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000126 movq $-1, %r8 + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0xca, 0xfe, 0xff, 0xff, //0x0000012d movdqu $-310(%rip), %xmm8 /* LCPI0_0+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0xd1, 0xfe, 0xff, 0xff, //0x00000136 movdqu $-303(%rip), %xmm10 /* LCPI0_1+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0xd8, 0xfe, 0xff, 0xff, //0x0000013f movdqu $-296(%rip), %xmm9 /* LCPI0_2+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x1d, 0xe0, 0xfe, 0xff, 0xff, //0x00000148 movdqu $-288(%rip), %xmm3 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0xe8, 0xfe, 0xff, 0xff, //0x00000150 movdqu $-280(%rip), %xmm4 /* LCPI0_4+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x2d, 0xf0, 0xfe, 0xff, 0xff, //0x00000158 movdqu $-272(%rip), %xmm5 /* LCPI0_5+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x35, 0xf8, 0xfe, 0xff, 0xff, //0x00000160 movdqu $-264(%rip), %xmm6 /* LCPI0_6+0(%rip) */ + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000168 movq $-1, %r14 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000016f movq $-1, %r10 + 0x4c, 0x89, 0xfb, //0x00000176 movq %r15, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000179 .p2align 4, 0x90 + //0x00000180 LBB0_10 + 0xf3, 0x0f, 0x6f, 0x3b, //0x00000180 movdqu (%rbx), %xmm7 + 0x66, 0x0f, 0x6f, 0xc7, //0x00000184 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x00000188 pcmpgtb %xmm8, %xmm0 + 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x0000018d movdqa %xmm10, %xmm1 + 0x66, 0x0f, 0x64, 0xcf, //0x00000192 pcmpgtb %xmm7, %xmm1 + 0x66, 0x0f, 0xdb, 0xc8, //0x00000196 pand %xmm0, %xmm1 + 0x66, 0x0f, 0x6f, 0xc7, //0x0000019a movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x0000019e pcmpeqb %xmm9, %xmm0 + 0x66, 0x0f, 0x6f, 0xd7, //0x000001a3 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x000001a7 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xeb, 0xd0, //0x000001ab por %xmm0, %xmm2 + 0x66, 0x0f, 0x6f, 0xc7, //0x000001af movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xc4, //0x000001b3 por %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc6, //0x000001b7 pcmpeqb %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xfd, //0x000001bb pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0xd7, 0xf0, //0x000001bf pmovmskb %xmm0, %esi + 0x66, 0x0f, 0xeb, 0xc7, //0x000001c3 por %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xca, //0x000001c7 por %xmm2, %xmm1 + 0x66, 0x0f, 0xeb, 0xc8, //0x000001cb por %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xff, //0x000001cf pmovmskb %xmm7, %edi + 0x66, 0x0f, 0xd7, 0xc2, //0x000001d3 pmovmskb %xmm2, %eax + 0x66, 0x0f, 0xd7, 0xc9, //0x000001d7 pmovmskb %xmm1, %ecx + 0xba, 0xff, 0xff, 0xff, 0xff, //0x000001db movl $4294967295, %edx + 0x48, 0x31, 0xd1, //0x000001e0 xorq %rdx, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000001e3 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x000001e7 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000001ea je LBB0_12 + 0xba, 0xff, 0xff, 0xff, 0xff, //0x000001f0 movl $-1, %edx + 0xd3, 0xe2, //0x000001f5 shll %cl, %edx + 0xf7, 0xd2, //0x000001f7 notl %edx + 0x21, 0xd7, //0x000001f9 andl %edx, %edi + 0x21, 0xd6, //0x000001fb andl %edx, %esi + 0x21, 0xc2, //0x000001fd andl %eax, %edx + 0x89, 0xd0, //0x000001ff movl %edx, %eax + //0x00000201 LBB0_12 + 0x8d, 0x57, 0xff, //0x00000201 leal $-1(%rdi), %edx + 0x21, 0xfa, //0x00000204 andl %edi, %edx + 0x0f, 0x85, 0x27, 0x02, 0x00, 0x00, //0x00000206 jne LBB0_13 + 0x8d, 0x56, 0xff, //0x0000020c leal $-1(%rsi), %edx + 0x21, 0xf2, //0x0000020f andl %esi, %edx + 0x0f, 0x85, 0x1c, 0x02, 0x00, 0x00, //0x00000211 jne LBB0_13 + 0x8d, 0x50, 0xff, //0x00000217 leal $-1(%rax), %edx + 0x21, 0xc2, //0x0000021a andl %eax, %edx + 0x0f, 0x85, 0x11, 0x02, 0x00, 0x00, //0x0000021c jne LBB0_13 + 0x85, 0xff, //0x00000222 testl %edi, %edi + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000224 je LBB0_20 + 0x48, 0x89, 0xda, //0x0000022a movq %rbx, %rdx + 0x4c, 0x29, 0xfa, //0x0000022d subq %r15, %rdx + 0x44, 0x0f, 0xbc, 0xdf, //0x00000230 bsfl %edi, %r11d + 0x49, 0x01, 0xd3, //0x00000234 addq %rdx, %r11 + 0x49, 0x83, 0xfa, 0xff, //0x00000237 cmpq $-1, %r10 + 0x0f, 0x85, 0xfc, 0x01, 0x00, 0x00, //0x0000023b jne LBB0_14 + 0x4d, 0x89, 0xda, //0x00000241 movq %r11, %r10 + //0x00000244 LBB0_20 + 0x85, 0xf6, //0x00000244 testl %esi, %esi + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000246 je LBB0_23 + 0x48, 0x89, 0xda, //0x0000024c movq %rbx, %rdx + 0x4c, 0x29, 0xfa, //0x0000024f subq %r15, %rdx + 0x44, 0x0f, 0xbc, 0xde, //0x00000252 bsfl %esi, %r11d + 0x49, 0x01, 0xd3, //0x00000256 addq %rdx, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00000259 cmpq $-1, %r14 + 0x0f, 0x85, 0xda, 0x01, 0x00, 0x00, //0x0000025d jne LBB0_14 + 0x4d, 0x89, 0xde, //0x00000263 movq %r11, %r14 + //0x00000266 LBB0_23 + 0x85, 0xc0, //0x00000266 testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000268 je LBB0_26 + 0x48, 0x89, 0xda, //0x0000026e movq %rbx, %rdx + 0x4c, 0x29, 0xfa, //0x00000271 subq %r15, %rdx + 0x44, 0x0f, 0xbc, 0xd8, //0x00000274 bsfl %eax, %r11d + 0x49, 0x01, 0xd3, //0x00000278 addq %rdx, %r11 + 0x49, 0x83, 0xf8, 0xff, //0x0000027b cmpq $-1, %r8 + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x0000027f jne LBB0_14 + 0x4d, 0x89, 0xd8, //0x00000285 movq %r11, %r8 + //0x00000288 LBB0_26 + 0x83, 0xf9, 0x10, //0x00000288 cmpl $16, %ecx + 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x0000028b jne LBB0_58 + 0x48, 0x83, 0xc3, 0x10, //0x00000291 addq $16, %rbx + 0x49, 0x83, 0xc1, 0xf0, //0x00000295 addq $-16, %r9 + 0x49, 0x83, 0xf9, 0x0f, //0x00000299 cmpq $15, %r9 + 0x0f, 0x87, 0xdd, 0xfe, 0xff, 0xff, //0x0000029d ja LBB0_10 + 0x4d, 0x85, 0xed, //0x000002a3 testq %r13, %r13 + 0x48, 0x8b, 0x75, 0xc0, //0x000002a6 movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x5d, 0xc8, //0x000002aa movq $-56(%rbp), %rbx + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x000002ae je LBB0_40 + //0x000002b4 LBB0_29 + 0x4b, 0x8d, 0x04, 0x2c, //0x000002b4 leaq (%r12,%r13), %rax + 0x48, 0x8d, 0x0d, 0x19, 0x02, 0x00, 0x00, //0x000002b8 leaq $537(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x000002bf jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002c4 .p2align 4, 0x90 + //0x000002d0 LBB0_38 + 0x49, 0x89, 0xd4, //0x000002d0 movq %rdx, %r12 + 0x49, 0xff, 0xcd, //0x000002d3 decq %r13 + 0x0f, 0x84, 0x84, 0x01, 0x00, 0x00, //0x000002d6 je LBB0_39 + //0x000002dc LBB0_30 + 0x41, 0x0f, 0xbe, 0x3c, 0x24, //0x000002dc movsbl (%r12), %edi + 0x83, 0xc7, 0xd5, //0x000002e1 addl $-43, %edi + 0x83, 0xff, 0x3a, //0x000002e4 cmpl $58, %edi + 0x0f, 0x87, 0x6d, 0x00, 0x00, 0x00, //0x000002e7 ja LBB0_40 + 0x49, 0x8d, 0x54, 0x24, 0x01, //0x000002ed leaq $1(%r12), %rdx + 0x48, 0x63, 0x3c, 0xb9, //0x000002f2 movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x000002f6 addq %rcx, %rdi + 0xff, 0xe7, //0x000002f9 jmpq *%rdi + //0x000002fb LBB0_36 + 0x49, 0x89, 0xd3, //0x000002fb movq %rdx, %r11 + 0x4d, 0x29, 0xfb, //0x000002fe subq %r15, %r11 + 0x49, 0x83, 0xf8, 0xff, //0x00000301 cmpq $-1, %r8 + 0x0f, 0x85, 0x8a, 0x01, 0x00, 0x00, //0x00000305 jne LBB0_59 + 0x49, 0xff, 0xcb, //0x0000030b decq %r11 + 0x4d, 0x89, 0xd8, //0x0000030e movq %r11, %r8 + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x00000311 jmp LBB0_38 + //0x00000316 LBB0_34 + 0x49, 0x89, 0xd3, //0x00000316 movq %rdx, %r11 + 0x4d, 0x29, 0xfb, //0x00000319 subq %r15, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x0000031c cmpq $-1, %r14 + 0x0f, 0x85, 0x6f, 0x01, 0x00, 0x00, //0x00000320 jne LBB0_59 + 0x49, 0xff, 0xcb, //0x00000326 decq %r11 + 0x4d, 0x89, 0xde, //0x00000329 movq %r11, %r14 + 0xe9, 0x9f, 0xff, 0xff, 0xff, //0x0000032c jmp LBB0_38 + //0x00000331 LBB0_32 + 0x49, 0x89, 0xd3, //0x00000331 movq %rdx, %r11 + 0x4d, 0x29, 0xfb, //0x00000334 subq %r15, %r11 + 0x49, 0x83, 0xfa, 0xff, //0x00000337 cmpq $-1, %r10 + 0x0f, 0x85, 0x54, 0x01, 0x00, 0x00, //0x0000033b jne LBB0_59 + 0x49, 0xff, 0xcb, //0x00000341 decq %r11 + 0x4d, 0x89, 0xda, //0x00000344 movq %r11, %r10 + 0xe9, 0x84, 0xff, 0xff, 0xff, //0x00000347 jmp LBB0_38 + //0x0000034c LBB0_58 + 0x48, 0x01, 0xcb, //0x0000034c addq %rcx, %rbx + 0x49, 0x89, 0xdc, //0x0000034f movq %rbx, %r12 + 0x48, 0x8b, 0x75, 0xc0, //0x00000352 movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x5d, 0xc8, //0x00000356 movq $-56(%rbp), %rbx + //0x0000035a LBB0_40 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000035a movq $-1, %r11 + 0x4d, 0x85, 0xf6, //0x00000361 testq %r14, %r14 + 0x0f, 0x84, 0x09, 0x01, 0x00, 0x00, //0x00000364 je LBB0_55 + //0x0000036a LBB0_41 + 0x4d, 0x85, 0xc0, //0x0000036a testq %r8, %r8 + 0x0f, 0x84, 0x00, 0x01, 0x00, 0x00, //0x0000036d je LBB0_55 + 0x4d, 0x85, 0xd2, //0x00000373 testq %r10, %r10 + 0x48, 0x8b, 0x55, 0xd0, //0x00000376 movq $-48(%rbp), %rdx + 0x0f, 0x84, 0xf3, 0x00, 0x00, 0x00, //0x0000037a je LBB0_55 + 0x4d, 0x29, 0xfc, //0x00000380 subq %r15, %r12 + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000383 leaq $-1(%r12), %rax + 0x49, 0x39, 0xc6, //0x00000388 cmpq %rax, %r14 + 0x0f, 0x84, 0x3c, 0x00, 0x00, 0x00, //0x0000038b je LBB0_46 + 0x49, 0x39, 0xc2, //0x00000391 cmpq %rax, %r10 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000394 je LBB0_46 + 0x49, 0x39, 0xc0, //0x0000039a cmpq %rax, %r8 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000039d je LBB0_46 + 0x4d, 0x85, 0xc0, //0x000003a3 testq %r8, %r8 + 0x0f, 0x8e, 0x35, 0x00, 0x00, 0x00, //0x000003a6 jle LBB0_50 + 0x49, 0x8d, 0x40, 0xff, //0x000003ac leaq $-1(%r8), %rax + 0x49, 0x39, 0xc6, //0x000003b0 cmpq %rax, %r14 + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000003b3 je LBB0_50 + 0x49, 0xf7, 0xd0, //0x000003b9 notq %r8 + 0x4d, 0x89, 0xc3, //0x000003bc movq %r8, %r11 + 0x4d, 0x85, 0xdb, //0x000003bf testq %r11, %r11 + 0x0f, 0x89, 0x8d, 0x00, 0x00, 0x00, //0x000003c2 jns LBB0_56 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x000003c8 jmp LBB0_55 + //0x000003cd LBB0_46 + 0x49, 0xf7, 0xdc, //0x000003cd negq %r12 + 0x4d, 0x89, 0xe3, //0x000003d0 movq %r12, %r11 + 0x4d, 0x85, 0xdb, //0x000003d3 testq %r11, %r11 + 0x0f, 0x89, 0x79, 0x00, 0x00, 0x00, //0x000003d6 jns LBB0_56 + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x000003dc jmp LBB0_55 + //0x000003e1 LBB0_50 + 0x4c, 0x89, 0xd0, //0x000003e1 movq %r10, %rax + 0x4c, 0x09, 0xf0, //0x000003e4 orq %r14, %rax + 0x4d, 0x39, 0xf2, //0x000003e7 cmpq %r14, %r10 + 0x0f, 0x8c, 0x1d, 0x00, 0x00, 0x00, //0x000003ea jl LBB0_53 + 0x48, 0x85, 0xc0, //0x000003f0 testq %rax, %rax + 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x000003f3 js LBB0_53 + 0x49, 0xf7, 0xd2, //0x000003f9 notq %r10 + 0x4d, 0x89, 0xd3, //0x000003fc movq %r10, %r11 + 0x4d, 0x85, 0xdb, //0x000003ff testq %r11, %r11 + 0x0f, 0x89, 0x4d, 0x00, 0x00, 0x00, //0x00000402 jns LBB0_56 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x00000408 jmp LBB0_55 + //0x0000040d LBB0_53 + 0x48, 0x85, 0xc0, //0x0000040d testq %rax, %rax + 0x49, 0x8d, 0x46, 0xff, //0x00000410 leaq $-1(%r14), %rax + 0x49, 0xf7, 0xd6, //0x00000414 notq %r14 + 0x4d, 0x0f, 0x48, 0xf4, //0x00000417 cmovsq %r12, %r14 + 0x49, 0x39, 0xc2, //0x0000041b cmpq %rax, %r10 + 0x4d, 0x0f, 0x45, 0xf4, //0x0000041e cmovneq %r12, %r14 + 0x4d, 0x89, 0xf3, //0x00000422 movq %r14, %r11 + 0x4d, 0x85, 0xdb, //0x00000425 testq %r11, %r11 + 0x0f, 0x89, 0x27, 0x00, 0x00, 0x00, //0x00000428 jns LBB0_56 + 0xe9, 0x40, 0x00, 0x00, 0x00, //0x0000042e jmp LBB0_55 + //0x00000433 LBB0_13 + 0x4c, 0x29, 0xfb, //0x00000433 subq %r15, %rbx + 0x44, 0x0f, 0xbc, 0xda, //0x00000436 bsfl %edx, %r11d + 0x49, 0x01, 0xdb, //0x0000043a addq %rbx, %r11 + //0x0000043d LBB0_14 + 0x49, 0xf7, 0xd3, //0x0000043d notq %r11 + 0x48, 0x8b, 0x75, 0xc0, //0x00000440 movq $-64(%rbp), %rsi + 0x48, 0x8b, 0x5d, 0xc8, //0x00000444 movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x55, 0xd0, //0x00000448 movq $-48(%rbp), %rdx + 0x4d, 0x85, 0xdb, //0x0000044c testq %r11, %r11 + 0x0f, 0x88, 0x1e, 0x00, 0x00, 0x00, //0x0000044f js LBB0_55 + //0x00000455 LBB0_56 + 0x4d, 0x01, 0xdf, //0x00000455 addq %r11, %r15 + 0x48, 0x89, 0xd0, //0x00000458 movq %rdx, %rax + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x0000045b jmp LBB0_57 + //0x00000460 LBB0_39 + 0x49, 0x89, 0xc4, //0x00000460 movq %rax, %r12 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000463 movq $-1, %r11 + 0x4d, 0x85, 0xf6, //0x0000046a testq %r14, %r14 + 0x0f, 0x85, 0xf7, 0xfe, 0xff, 0xff, //0x0000046d jne LBB0_41 + //0x00000473 LBB0_55 + 0x49, 0xf7, 0xd3, //0x00000473 notq %r11 + 0x4d, 0x01, 0xdf, //0x00000476 addq %r11, %r15 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000479 movq $-2, %rax + //0x00000480 LBB0_57 + 0x49, 0x29, 0xdf, //0x00000480 subq %rbx, %r15 + 0x4c, 0x89, 0x3e, //0x00000483 movq %r15, (%rsi) + 0x48, 0x83, 0xc4, 0x18, //0x00000486 addq $24, %rsp + 0x5b, //0x0000048a popq %rbx + 0x41, 0x5c, //0x0000048b popq %r12 + 0x41, 0x5d, //0x0000048d popq %r13 + 0x41, 0x5e, //0x0000048f popq %r14 + 0x41, 0x5f, //0x00000491 popq %r15 + 0x5d, //0x00000493 popq %rbp + 0xc3, //0x00000494 retq + //0x00000495 LBB0_59 + 0x49, 0xf7, 0xdb, //0x00000495 negq %r11 + 0x48, 0x8b, 0x55, 0xd0, //0x00000498 movq $-48(%rbp), %rdx + 0x4d, 0x85, 0xdb, //0x0000049c testq %r11, %r11 + 0x0f, 0x89, 0xb0, 0xff, 0xff, 0xff, //0x0000049f jns LBB0_56 + 0xe9, 0xc9, 0xff, 0xff, 0xff, //0x000004a5 jmp LBB0_55 + //0x000004aa LBB0_1 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000004aa movq $-1, %rax + 0xe9, 0xca, 0xff, 0xff, 0xff, //0x000004b1 jmp LBB0_57 + //0x000004b6 LBB0_8 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000004b6 movq $-1, %r10 + 0x4d, 0x89, 0xfc, //0x000004bd movq %r15, %r12 + 0x4d, 0x89, 0xcd, //0x000004c0 movq %r9, %r13 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000004c3 movq $-1, %r14 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000004ca movq $-1, %r8 + 0xe9, 0xde, 0xfd, 0xff, 0xff, //0x000004d1 jmp LBB0_29 + 0x90, 0x90, //0x000004d6 .p2align 2, 0x90 + // // .set L0_0_set_36, LBB0_36-LJTI0_0 + // // .set L0_0_set_40, LBB0_40-LJTI0_0 + // // .set L0_0_set_32, LBB0_32-LJTI0_0 + // // .set L0_0_set_38, LBB0_38-LJTI0_0 + // // .set L0_0_set_34, LBB0_34-LJTI0_0 + //0x000004d8 LJTI0_0 + 0x23, 0xfe, 0xff, 0xff, //0x000004d8 .long L0_0_set_36 + 0x82, 0xfe, 0xff, 0xff, //0x000004dc .long L0_0_set_40 + 0x23, 0xfe, 0xff, 0xff, //0x000004e0 .long L0_0_set_36 + 0x59, 0xfe, 0xff, 0xff, //0x000004e4 .long L0_0_set_32 + 0x82, 0xfe, 0xff, 0xff, //0x000004e8 .long L0_0_set_40 + 0xf8, 0xfd, 0xff, 0xff, //0x000004ec .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x000004f0 .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x000004f4 .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x000004f8 .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x000004fc .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x00000500 .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x00000504 .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x00000508 .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x0000050c .long L0_0_set_38 + 0xf8, 0xfd, 0xff, 0xff, //0x00000510 .long L0_0_set_38 + 0x82, 0xfe, 0xff, 0xff, //0x00000514 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000518 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000051c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000520 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000524 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000528 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000052c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000530 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000534 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000538 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000053c .long L0_0_set_40 + 0x3e, 0xfe, 0xff, 0xff, //0x00000540 .long L0_0_set_34 + 0x82, 0xfe, 0xff, 0xff, //0x00000544 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000548 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000054c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000550 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000554 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000558 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000055c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000560 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000564 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000568 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000056c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000570 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000574 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000578 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000057c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000580 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000584 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000588 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000058c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000590 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000594 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x00000598 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x0000059c .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005a0 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005a4 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005a8 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005ac .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005b0 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005b4 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005b8 .long L0_0_set_40 + 0x82, 0xfe, 0xff, 0xff, //0x000005bc .long L0_0_set_40 + 0x3e, 0xfe, 0xff, 0xff, //0x000005c0 .long L0_0_set_34 + //0x000005c4 .p2align 2, 0x00 + //0x000005c4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000005c4 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object.go new file mode 100644 index 000000000..8cdec045d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_object func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_object uintptr + +//go:nosplit +func skip_object(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_object(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_subr.go new file mode 100644 index 000000000..7dae7b0b2 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_object = 160 +) + +const ( + _stack__skip_object = 160 +) + +const ( + _size__skip_object = 10216 +) + +var ( + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9556, 160}, + {9560, 48}, + {9561, 40}, + {9563, 32}, + {9565, 24}, + {9567, 16}, + {9569, 8}, + {9570, 0}, + {10216, 160}, + } +) + +var _cfunc_skip_object = []loader.CFunc{ + {"_skip_object_entry", 0, _entry__skip_object, 0, nil}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_text_amd64.go new file mode 100644 index 000000000..d8a4a0f58 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_object_text_amd64.go @@ -0,0 +1,3021 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_skip_object = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 6 + //0x00000010 LCPI0_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000020 LCPI0_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000030 LCPI0_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000030 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000040 LCPI0_4 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000040 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000050 LCPI0_5 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000050 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000060 LCPI0_6 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000060 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000070 LCPI0_7 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000070 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000080 LCPI0_8 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000080 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000090 LCPI0_9 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000090 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x000000a0 .p2align 4, 0x90 + //0x000000a0 _skip_object + 0x55, //0x000000a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000a1 movq %rsp, %rbp + 0x41, 0x57, //0x000000a4 pushq %r15 + 0x41, 0x56, //0x000000a6 pushq %r14 + 0x41, 0x55, //0x000000a8 pushq %r13 + 0x41, 0x54, //0x000000aa pushq %r12 + 0x53, //0x000000ac pushq %rbx + 0x48, 0x83, 0xec, 0x70, //0x000000ad subq $112, %rsp + 0x48, 0x89, 0x4d, 0x80, //0x000000b1 movq %rcx, $-128(%rbp) + 0x0f, 0x10, 0x05, 0x44, 0xff, 0xff, 0xff, //0x000000b5 movups $-188(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x48, 0x89, 0x55, 0x88, //0x000000bc movq %rdx, $-120(%rbp) + 0x0f, 0x11, 0x02, //0x000000c0 movups %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x98, //0x000000c3 movq %rdi, $-104(%rbp) + 0x4c, 0x8b, 0x0f, //0x000000c7 movq (%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x000000ca movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000000cd notq %rax + 0x48, 0x89, 0x45, 0xa8, //0x000000d0 movq %rax, $-88(%rbp) + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000000d4 movl $1, %r11d + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000da movl $1, %eax + 0x4c, 0x29, 0xc8, //0x000000df subq %r9, %rax + 0x48, 0x89, 0x45, 0xa0, //0x000000e2 movq %rax, $-96(%rbp) + 0x49, 0x8d, 0x41, 0x40, //0x000000e6 leaq $64(%r9), %rax + 0x48, 0x89, 0x45, 0x90, //0x000000ea movq %rax, $-112(%rbp) + 0x48, 0x8b, 0x06, //0x000000ee movq (%rsi), %rax + 0x48, 0x89, 0x45, 0xc0, //0x000000f1 movq %rax, $-64(%rbp) + 0x49, 0x8d, 0x41, 0x05, //0x000000f5 leaq $5(%r9), %rax + 0x48, 0x89, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000000f9 movq %rax, $-152(%rbp) + 0x48, 0xc7, 0x85, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000100 movq $-1, $-136(%rbp) + 0xf3, 0x0f, 0x6f, 0x05, 0xfd, 0xfe, 0xff, 0xff, //0x0000010b movdqu $-259(%rip), %xmm0 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x05, 0xff, 0xff, 0xff, //0x00000113 movdqu $-251(%rip), %xmm1 /* LCPI0_2+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x0d, 0xff, 0xff, 0xff, //0x0000011b movdqu $-243(%rip), %xmm2 /* LCPI0_3+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xf6, //0x00000123 pcmpeqd %xmm14, %xmm14 + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x0f, 0xff, 0xff, 0xff, //0x00000128 movdqu $-241(%rip), %xmm8 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x2d, 0x16, 0xff, 0xff, 0xff, //0x00000131 movdqu $-234(%rip), %xmm13 /* LCPI0_5+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0x1d, 0xff, 0xff, 0xff, //0x0000013a movdqu $-227(%rip), %xmm9 /* LCPI0_6+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x24, 0xff, 0xff, 0xff, //0x00000143 movdqu $-220(%rip), %xmm10 /* LCPI0_7+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x1d, 0x2b, 0xff, 0xff, 0xff, //0x0000014c movdqu $-213(%rip), %xmm11 /* LCPI0_8+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x25, 0x32, 0xff, 0xff, 0xff, //0x00000155 movdqu $-206(%rip), %xmm12 /* LCPI0_9+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000015e movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x4d, 0xd0, //0x00000162 movq %r9, $-48(%rbp) + 0xe9, 0x47, 0x00, 0x00, 0x00, //0x00000166 jmp LBB0_6 + //0x0000016b LBB0_1 + 0x48, 0x8b, 0x55, 0x88, //0x0000016b movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x0000016f movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000172 cmpq $4095, %rax + 0x0f, 0x8f, 0x32, 0x24, 0x00, 0x00, //0x00000178 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x0000017e leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x00000182 movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00000185 movq $6, $8(%rdx,%rax,8) + 0x90, 0x90, //0x0000018e .p2align 4, 0x90 + //0x00000190 LBB0_3 + 0x4c, 0x8b, 0x5d, 0xc0, //0x00000190 movq $-64(%rbp), %r11 + //0x00000194 LBB0_4 + 0x48, 0x8b, 0x45, 0x88, //0x00000194 movq $-120(%rbp), %rax + 0x48, 0x8b, 0x10, //0x00000198 movq (%rax), %rdx + 0x4c, 0x89, 0x5d, 0xc0, //0x0000019b movq %r11, $-64(%rbp) + 0x49, 0x89, 0xd3, //0x0000019f movq %rdx, %r11 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000001a2 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000001a9 testq %rdx, %rdx + 0x0f, 0x84, 0x42, 0x24, 0x00, 0x00, //0x000001ac je LBB0_427 + //0x000001b2 LBB0_6 + 0x48, 0x8b, 0x45, 0x98, //0x000001b2 movq $-104(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x000001b6 movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000001ba movq $-64(%rbp), %rcx + 0x48, 0x89, 0xcb, //0x000001be movq %rcx, %rbx + 0x48, 0x29, 0xc3, //0x000001c1 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000001c4 jae LBB0_11 + 0x41, 0x8a, 0x14, 0x09, //0x000001ca movb (%r9,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000001ce cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001d1 je LBB0_11 + 0x80, 0xfa, 0x20, //0x000001d7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001da je LBB0_11 + 0x80, 0xc2, 0xf7, //0x000001e0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001e3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001e6 jbe LBB0_11 + 0x49, 0x89, 0xcf, //0x000001ec movq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0x88, //0x000001ef movq $-120(%rbp), %r10 + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x000001f3 jmp LBB0_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001f8 .p2align 4, 0x90 + //0x00000200 LBB0_11 + 0x4c, 0x8d, 0x79, 0x01, //0x00000200 leaq $1(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000204 cmpq %rax, %r15 + 0x4c, 0x8b, 0x55, 0x88, //0x00000207 movq $-120(%rbp), %r10 + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x0000020b jae LBB0_15 + 0x43, 0x8a, 0x14, 0x39, //0x00000211 movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000215 cmpb $13, %dl + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000218 je LBB0_15 + 0x80, 0xfa, 0x20, //0x0000021e cmpb $32, %dl + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000221 je LBB0_15 + 0x80, 0xc2, 0xf7, //0x00000227 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000022a cmpb $1, %dl + 0x0f, 0x87, 0x0a, 0x01, 0x00, 0x00, //0x0000022d ja LBB0_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000233 .p2align 4, 0x90 + //0x00000240 LBB0_15 + 0x4c, 0x8d, 0x79, 0x02, //0x00000240 leaq $2(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000244 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000247 jae LBB0_19 + 0x43, 0x8a, 0x14, 0x39, //0x0000024d movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000251 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000254 je LBB0_19 + 0x80, 0xfa, 0x20, //0x0000025a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000025d je LBB0_19 + 0x80, 0xc2, 0xf7, //0x00000263 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000266 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000269 ja LBB0_32 + 0x90, //0x0000026f .p2align 4, 0x90 + //0x00000270 LBB0_19 + 0x4c, 0x8d, 0x79, 0x03, //0x00000270 leaq $3(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000274 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000277 jae LBB0_23 + 0x43, 0x8a, 0x14, 0x39, //0x0000027d movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000281 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000284 je LBB0_23 + 0x80, 0xfa, 0x20, //0x0000028a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000028d je LBB0_23 + 0x80, 0xc2, 0xf7, //0x00000293 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000296 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000299 ja LBB0_32 + 0x90, //0x0000029f .p2align 4, 0x90 + //0x000002a0 LBB0_23 + 0x48, 0x8d, 0x51, 0x04, //0x000002a0 leaq $4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x000002a4 cmpq %rdx, %rax + 0x0f, 0x86, 0xf4, 0x22, 0x00, 0x00, //0x000002a7 jbe LBB0_417 + 0x48, 0x39, 0xd0, //0x000002ad cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000002b0 je LBB0_29 + 0x49, 0x8d, 0x14, 0x01, //0x000002b6 leaq (%r9,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x000002ba addq $4, %rbx + 0x48, 0x03, 0x8d, 0x68, 0xff, 0xff, 0xff, //0x000002be addq $-152(%rbp), %rcx + 0x49, 0x89, 0xcf, //0x000002c5 movq %rcx, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002c8 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d2 .p2align 4, 0x90 + //0x000002e0 LBB0_26 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002e0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002e5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002e8 ja LBB0_31 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002ee btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002f2 jae LBB0_31 + 0x49, 0xff, 0xc7, //0x000002f8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002fb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002fe jne LBB0_26 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00000304 jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000309 .p2align 4, 0x90 + //0x00000310 LBB0_29 + 0x4c, 0x01, 0xca, //0x00000310 addq %r9, %rdx + //0x00000313 LBB0_30 + 0x4c, 0x29, 0xca, //0x00000313 subq %r9, %rdx + 0x49, 0x89, 0xd7, //0x00000316 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00000319 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000031c jb LBB0_32 + 0xe9, 0x7d, 0x22, 0x00, 0x00, //0x00000322 jmp LBB0_418 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000327 .p2align 4, 0x90 + //0x00000330 LBB0_31 + 0x4c, 0x03, 0x7d, 0xa8, //0x00000330 addq $-88(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x00000334 cmpq %rax, %r15 + 0x0f, 0x83, 0x67, 0x22, 0x00, 0x00, //0x00000337 jae LBB0_418 + //0x0000033d LBB0_32 + 0x49, 0x8d, 0x4f, 0x01, //0x0000033d leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00000341 movq %rcx, (%rsi) + 0x43, 0x0f, 0xbe, 0x3c, 0x39, //0x00000344 movsbl (%r9,%r15), %edi + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000349 movq $-1, %rax + 0x85, 0xff, //0x00000350 testl %edi, %edi + 0x0f, 0x84, 0x9c, 0x22, 0x00, 0x00, //0x00000352 je LBB0_427 + 0x48, 0x89, 0x4d, 0xc0, //0x00000358 movq %rcx, $-64(%rbp) + 0x4d, 0x89, 0xf8, //0x0000035c movq %r15, %r8 + 0x49, 0xf7, 0xd0, //0x0000035f notq %r8 + 0x49, 0x8d, 0x53, 0xff, //0x00000362 leaq $-1(%r11), %rdx + 0x43, 0x8b, 0x1c, 0xda, //0x00000366 movl (%r10,%r11,8), %ebx + 0x48, 0x8b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x0000036a movq $-136(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00000371 cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x00000375 cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000379 movq %rcx, $-136(%rbp) + 0xff, 0xcb, //0x00000380 decl %ebx + 0x83, 0xfb, 0x05, //0x00000382 cmpl $5, %ebx + 0x0f, 0x87, 0x79, 0x02, 0x00, 0x00, //0x00000385 ja LBB0_66 + 0x48, 0x8d, 0x0d, 0xf6, 0x24, 0x00, 0x00, //0x0000038b leaq $9462(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x99, //0x00000392 movslq (%rcx,%rbx,4), %rbx + 0x48, 0x01, 0xcb, //0x00000396 addq %rcx, %rbx + 0xff, 0xe3, //0x00000399 jmpq *%rbx + //0x0000039b LBB0_35 + 0x83, 0xff, 0x2c, //0x0000039b cmpl $44, %edi + 0x0f, 0x84, 0xdb, 0x04, 0x00, 0x00, //0x0000039e je LBB0_102 + 0x83, 0xff, 0x5d, //0x000003a4 cmpl $93, %edi + 0x0f, 0x84, 0x3c, 0x02, 0x00, 0x00, //0x000003a7 je LBB0_37 + 0xe9, 0x3b, 0x22, 0x00, 0x00, //0x000003ad jmp LBB0_426 + //0x000003b2 LBB0_38 + 0x40, 0x80, 0xff, 0x5d, //0x000003b2 cmpb $93, %dil + 0x0f, 0x84, 0x2d, 0x02, 0x00, 0x00, //0x000003b6 je LBB0_37 + 0x4b, 0xc7, 0x04, 0xda, 0x01, 0x00, 0x00, 0x00, //0x000003bc movq $1, (%r10,%r11,8) + 0x83, 0xff, 0x7b, //0x000003c4 cmpl $123, %edi + 0x0f, 0x86, 0x43, 0x02, 0x00, 0x00, //0x000003c7 jbe LBB0_67 + 0xe9, 0x1b, 0x22, 0x00, 0x00, //0x000003cd jmp LBB0_426 + //0x000003d2 LBB0_40 + 0x40, 0x80, 0xff, 0x22, //0x000003d2 cmpb $34, %dil + 0x0f, 0x85, 0x11, 0x22, 0x00, 0x00, //0x000003d6 jne LBB0_426 + 0x4b, 0xc7, 0x04, 0xda, 0x04, 0x00, 0x00, 0x00, //0x000003dc movq $4, (%r10,%r11,8) + 0x48, 0x8b, 0x45, 0x98, //0x000003e4 movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000003e8 movq $8(%rax), %r10 + 0xf6, 0x45, 0x80, 0x20, //0x000003ec testb $32, $-128(%rbp) + 0x0f, 0x85, 0xab, 0x04, 0x00, 0x00, //0x000003f0 jne LBB0_104 + 0x4d, 0x89, 0xd5, //0x000003f6 movq %r10, %r13 + 0x48, 0x8b, 0x45, 0xc0, //0x000003f9 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc5, //0x000003fd subq %rax, %r13 + 0x0f, 0x84, 0xd1, 0x23, 0x00, 0x00, //0x00000400 je LBB0_462 + 0x4d, 0x8d, 0x1c, 0x01, //0x00000406 leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x0000040a cmpq $64, %r13 + 0x0f, 0x82, 0xb4, 0x1b, 0x00, 0x00, //0x0000040e jb LBB0_355 + 0x44, 0x89, 0xe9, //0x00000414 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000417 andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb8, //0x0000041a movq %rcx, $-72(%rbp) + 0x4b, 0x8d, 0x4c, 0x02, 0xc0, //0x0000041e leaq $-64(%r10,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000423 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000427 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x90, //0x0000042a addq $-112(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000042e movq %rcx, $-80(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000432 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00000439 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x0000043c .p2align 4, 0x90 + //0x00000440 LBB0_45 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000440 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000445 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x0000044b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000451 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000457 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000045b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x0000045f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000463 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000467 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x0000046b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x0000046f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000473 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000477 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x0000047b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000047f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000483 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000487 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000048b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x0000048f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000493 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000497 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x0000049b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x000004a0 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x000004a4 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x000004a9 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x000004ad shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000004b1 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000004b5 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x000004b8 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x000004bb shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x000004bf shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x000004c3 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x000004c7 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x000004ca orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x000004cd orq %r12, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000004d0 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000004d4 jne LBB0_47 + 0x48, 0x85, 0xd2, //0x000004da testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000004dd jne LBB0_56 + //0x000004e3 LBB0_47 + 0x48, 0x09, 0xdf, //0x000004e3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004e6 movq %rdx, %rax + 0x4c, 0x09, 0xc0, //0x000004e9 orq %r8, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004ec jne LBB0_57 + //0x000004f2 LBB0_48 + 0x48, 0x85, 0xff, //0x000004f2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000004f5 jne LBB0_58 + //0x000004fb LBB0_49 + 0x49, 0x83, 0xc5, 0xc0, //0x000004fb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x000004ff addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000503 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00000507 ja LBB0_45 + 0xe9, 0x41, 0x13, 0x00, 0x00, //0x0000050d jmp LBB0_50 + //0x00000512 LBB0_56 + 0x4c, 0x89, 0xd8, //0x00000512 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000515 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000519 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x0000051d addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x00000520 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000523 movq %rdx, %rax + 0x4c, 0x09, 0xc0, //0x00000526 orq %r8, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000529 je LBB0_48 + //0x0000052f LBB0_57 + 0x4c, 0x89, 0xc0, //0x0000052f movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x00000532 notq %rax + 0x48, 0x21, 0xd0, //0x00000535 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000538 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc1, //0x0000053c orq %r8, %rcx + 0x48, 0x89, 0xce, //0x0000053f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000542 notq %rsi + 0x48, 0x21, 0xd6, //0x00000545 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000548 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000552 andq %rdx, %rsi + 0x45, 0x31, 0xc0, //0x00000555 xorl %r8d, %r8d + 0x48, 0x01, 0xc6, //0x00000558 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc0, //0x0000055b setb %r8b + 0x48, 0x01, 0xf6, //0x0000055f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000562 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000056c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000056f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000572 notq %rsi + 0x48, 0x21, 0xf7, //0x00000575 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000578 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x0000057b je LBB0_49 + //0x00000581 LBB0_58 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000581 bsfq %rdi, %rax + //0x00000585 LBB0_59 + 0x4c, 0x03, 0x5d, 0xa0, //0x00000585 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000589 addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc0, //0x0000058c movq $-64(%rbp), %rdi + 0xe9, 0xfd, 0x09, 0x00, 0x00, //0x00000590 jmp LBB0_188 + //0x00000595 LBB0_60 + 0x40, 0x80, 0xff, 0x3a, //0x00000595 cmpb $58, %dil + 0x0f, 0x85, 0x4e, 0x20, 0x00, 0x00, //0x00000599 jne LBB0_426 + 0x4b, 0xc7, 0x04, 0xda, 0x00, 0x00, 0x00, 0x00, //0x0000059f movq $0, (%r10,%r11,8) + 0xe9, 0xe4, 0xfb, 0xff, 0xff, //0x000005a7 jmp LBB0_3 + //0x000005ac LBB0_62 + 0x83, 0xff, 0x2c, //0x000005ac cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000005af jne LBB0_63 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x000005b5 cmpq $4095, %r11 + 0x0f, 0x8f, 0xee, 0x1f, 0x00, 0x00, //0x000005bc jg LBB0_439 + 0x49, 0x8d, 0x43, 0x01, //0x000005c2 leaq $1(%r11), %rax + 0x49, 0x89, 0x02, //0x000005c6 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xda, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000005c9 movq $3, $8(%r10,%r11,8) + 0xe9, 0xb9, 0xfb, 0xff, 0xff, //0x000005d2 jmp LBB0_3 + //0x000005d7 LBB0_64 + 0x83, 0xff, 0x22, //0x000005d7 cmpl $34, %edi + 0x0f, 0x84, 0xd0, 0x04, 0x00, 0x00, //0x000005da je LBB0_127 + //0x000005e0 LBB0_63 + 0x83, 0xff, 0x7d, //0x000005e0 cmpl $125, %edi + 0x0f, 0x85, 0x04, 0x20, 0x00, 0x00, //0x000005e3 jne LBB0_426 + //0x000005e9 LBB0_37 + 0x49, 0x89, 0x12, //0x000005e9 movq %rdx, (%r10) + 0x49, 0x89, 0xd3, //0x000005ec movq %rdx, %r11 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000005ef movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000005f6 testq %rdx, %rdx + 0x0f, 0x85, 0xb3, 0xfb, 0xff, 0xff, //0x000005f9 jne LBB0_6 + 0xe9, 0xf0, 0x1f, 0x00, 0x00, //0x000005ff jmp LBB0_427 + //0x00000604 LBB0_66 + 0x49, 0x89, 0x12, //0x00000604 movq %rdx, (%r10) + 0x83, 0xff, 0x7b, //0x00000607 cmpl $123, %edi + 0x0f, 0x87, 0xdd, 0x1f, 0x00, 0x00, //0x0000060a ja LBB0_426 + //0x00000610 LBB0_67 + 0x4f, 0x8d, 0x14, 0x39, //0x00000610 leaq (%r9,%r15), %r10 + 0x89, 0xf9, //0x00000614 movl %edi, %ecx + 0x48, 0x8d, 0x15, 0x83, 0x22, 0x00, 0x00, //0x00000616 leaq $8835(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x0000061d movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00000621 addq %rdx, %rcx + 0xff, 0xe1, //0x00000624 jmpq *%rcx + //0x00000626 LBB0_68 + 0x48, 0x8b, 0x45, 0x98, //0x00000626 movq $-104(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x0000062a movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x0000062e subq %r15, %rdi + 0x0f, 0x84, 0x9e, 0x1f, 0x00, 0x00, //0x00000631 je LBB0_421 + 0x41, 0x80, 0x3a, 0x30, //0x00000637 cmpb $48, (%r10) + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000063b movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000063f jne LBB0_73 + 0x48, 0x83, 0xff, 0x01, //0x00000645 cmpq $1, %rdi + 0x0f, 0x84, 0xb3, 0x16, 0x00, 0x00, //0x00000649 je LBB0_336 + 0x43, 0x8a, 0x04, 0x19, //0x0000064f movb (%r9,%r11), %al + 0x04, 0xd2, //0x00000653 addb $-46, %al + 0x3c, 0x37, //0x00000655 cmpb $55, %al + 0x0f, 0x87, 0xa5, 0x16, 0x00, 0x00, //0x00000657 ja LBB0_336 + 0x0f, 0xb6, 0xc0, //0x0000065d movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000660 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000066a btq %rax, %rcx + 0x0f, 0x83, 0x8e, 0x16, 0x00, 0x00, //0x0000066e jae LBB0_336 + //0x00000674 LBB0_73 + 0x48, 0x83, 0xff, 0x10, //0x00000674 cmpq $16, %rdi + 0x0f, 0x82, 0x86, 0x18, 0x00, 0x00, //0x00000678 jb LBB0_344 + 0x4c, 0x8d, 0x4f, 0xf0, //0x0000067e leaq $-16(%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x00000682 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000685 andq $-16, %rax + 0x4e, 0x8d, 0x5c, 0x10, 0x10, //0x00000689 leaq $16(%rax,%r10), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x0000068e andl $15, %r9d + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000692 movq $-1, $-64(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000069a movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x000006a1 movq $-1, %r13 + 0x4d, 0x89, 0xd6, //0x000006a8 movq %r10, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000006ab .p2align 4, 0x90 + //0x000006b0 LBB0_75 + 0xf3, 0x41, 0x0f, 0x6f, 0x1e, //0x000006b0 movdqu (%r14), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006b5 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x000006b9 pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x000006be movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x000006c3 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x000006c7 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006cb movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000006cf pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000006d4 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000006d8 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000006dd por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006e1 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000006e5 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000006e9 pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000006ee pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000006f3 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0xeb, 0xe3, //0x000006f7 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000006fb por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000006ff por %xmm4, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x00000703 pmovmskb %xmm3, %r8d + 0x66, 0x0f, 0xd7, 0xd6, //0x00000708 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x0000070c pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000710 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x00000715 addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x0000071c xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x0000071f bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x00000723 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000726 je LBB0_77 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x0000072c movl $-1, %esi + 0xd3, 0xe6, //0x00000731 shll %cl, %esi + 0xf7, 0xd6, //0x00000733 notl %esi + 0x41, 0x21, 0xf0, //0x00000735 andl %esi, %r8d + 0x21, 0xf0, //0x00000738 andl %esi, %eax + 0x21, 0xd6, //0x0000073a andl %edx, %esi + 0x89, 0xf2, //0x0000073c movl %esi, %edx + //0x0000073e LBB0_77 + 0x41, 0x8d, 0x70, 0xff, //0x0000073e leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x00000742 andl %r8d, %esi + 0x0f, 0x85, 0xd3, 0x10, 0x00, 0x00, //0x00000745 jne LBB0_306 + 0x8d, 0x70, 0xff, //0x0000074b leal $-1(%rax), %esi + 0x21, 0xc6, //0x0000074e andl %eax, %esi + 0x0f, 0x85, 0xc8, 0x10, 0x00, 0x00, //0x00000750 jne LBB0_306 + 0x8d, 0x72, 0xff, //0x00000756 leal $-1(%rdx), %esi + 0x21, 0xd6, //0x00000759 andl %edx, %esi + 0x0f, 0x85, 0xbd, 0x10, 0x00, 0x00, //0x0000075b jne LBB0_306 + 0x45, 0x85, 0xc0, //0x00000761 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000764 je LBB0_83 + 0x4c, 0x89, 0xf3, //0x0000076a movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x0000076d subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x00000770 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x00000774 addq %rbx, %rsi + 0x49, 0x83, 0xfd, 0xff, //0x00000777 cmpq $-1, %r13 + 0x0f, 0x85, 0xb6, 0x14, 0x00, 0x00, //0x0000077b jne LBB0_322 + 0x49, 0x89, 0xf5, //0x00000781 movq %rsi, %r13 + //0x00000784 LBB0_83 + 0x85, 0xc0, //0x00000784 testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000786 je LBB0_86 + 0x4c, 0x89, 0xf6, //0x0000078c movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x0000078f subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000792 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x00000795 addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x00000798 cmpq $-1, %r12 + 0x0f, 0x85, 0x4d, 0x12, 0x00, 0x00, //0x0000079c jne LBB0_311 + 0x49, 0x89, 0xc4, //0x000007a2 movq %rax, %r12 + //0x000007a5 LBB0_86 + 0x85, 0xd2, //0x000007a5 testl %edx, %edx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000007a7 je LBB0_89 + 0x4c, 0x89, 0xf6, //0x000007ad movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x000007b0 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x000007b3 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x000007b6 addq %rsi, %rax + 0x48, 0x83, 0x7d, 0xc0, 0xff, //0x000007b9 cmpq $-1, $-64(%rbp) + 0x0f, 0x85, 0x2b, 0x12, 0x00, 0x00, //0x000007be jne LBB0_311 + 0x48, 0x89, 0x45, 0xc0, //0x000007c4 movq %rax, $-64(%rbp) + //0x000007c8 LBB0_89 + 0x83, 0xf9, 0x10, //0x000007c8 cmpl $16, %ecx + 0x0f, 0x85, 0xcf, 0x04, 0x00, 0x00, //0x000007cb jne LBB0_151 + 0x49, 0x83, 0xc6, 0x10, //0x000007d1 addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x000007d5 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x000007d9 cmpq $15, %rdi + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000007dd ja LBB0_75 + 0x4d, 0x85, 0xc9, //0x000007e3 testq %r9, %r9 + 0x48, 0x8b, 0x7d, 0xc0, //0x000007e6 movq $-64(%rbp), %rdi + 0x0f, 0x84, 0xba, 0x04, 0x00, 0x00, //0x000007ea je LBB0_152 + //0x000007f0 LBB0_92 + 0x4b, 0x8d, 0x04, 0x0b, //0x000007f0 leaq (%r11,%r9), %rax + 0x48, 0x8d, 0x35, 0x81, 0x23, 0x00, 0x00, //0x000007f4 leaq $9089(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x000007fb jmp LBB0_96 + //0x00000800 LBB0_93 + 0x49, 0x89, 0xcb, //0x00000800 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x00000803 subq %r10, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x00000806 cmpq $-1, %r12 + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x0000080a jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000810 decq %r11 + 0x4d, 0x89, 0xdc, //0x00000813 movq %r11, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000816 .p2align 4, 0x90 + //0x00000820 LBB0_95 + 0x49, 0x89, 0xcb, //0x00000820 movq %rcx, %r11 + 0x49, 0xff, 0xc9, //0x00000823 decq %r9 + 0x0f, 0x84, 0xce, 0x11, 0x00, 0x00, //0x00000826 je LBB0_312 + //0x0000082c LBB0_96 + 0x41, 0x0f, 0xbe, 0x13, //0x0000082c movsbl (%r11), %edx + 0x83, 0xc2, 0xd5, //0x00000830 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00000833 cmpl $58, %edx + 0x0f, 0x87, 0x6e, 0x04, 0x00, 0x00, //0x00000836 ja LBB0_152 + 0x49, 0x8d, 0x4b, 0x01, //0x0000083c leaq $1(%r11), %rcx + 0x48, 0x63, 0x14, 0x96, //0x00000840 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00000844 addq %rsi, %rdx + 0xff, 0xe2, //0x00000847 jmpq *%rdx + //0x00000849 LBB0_98 + 0x49, 0x89, 0xcb, //0x00000849 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x0000084c subq %r10, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000084f cmpq $-1, %rdi + 0x0f, 0x85, 0x92, 0x14, 0x00, 0x00, //0x00000853 jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000859 decq %r11 + 0x4c, 0x89, 0xdf, //0x0000085c movq %r11, %rdi + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000085f jmp LBB0_95 + //0x00000864 LBB0_100 + 0x49, 0x89, 0xcb, //0x00000864 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x00000867 subq %r10, %r11 + 0x49, 0x83, 0xfd, 0xff, //0x0000086a cmpq $-1, %r13 + 0x0f, 0x85, 0x77, 0x14, 0x00, 0x00, //0x0000086e jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000874 decq %r11 + 0x4d, 0x89, 0xdd, //0x00000877 movq %r11, %r13 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000087a jmp LBB0_95 + //0x0000087f LBB0_102 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x0000087f cmpq $4095, %r11 + 0x0f, 0x8f, 0x24, 0x1d, 0x00, 0x00, //0x00000886 jg LBB0_439 + 0x49, 0x8d, 0x43, 0x01, //0x0000088c leaq $1(%r11), %rax + 0x49, 0x89, 0x02, //0x00000890 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xda, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000893 movq $0, $8(%r10,%r11,8) + 0xe9, 0xef, 0xf8, 0xff, 0xff, //0x0000089c jmp LBB0_3 + //0x000008a1 LBB0_104 + 0x4c, 0x89, 0xd0, //0x000008a1 movq %r10, %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000008a4 movq $-64(%rbp), %rcx + 0x48, 0x29, 0xc8, //0x000008a8 subq %rcx, %rax + 0x0f, 0x84, 0x2e, 0x1f, 0x00, 0x00, //0x000008ab je LBB0_463 + 0x4d, 0x8d, 0x1c, 0x09, //0x000008b1 leaq (%r9,%rcx), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x000008b5 cmpq $64, %rax + 0x0f, 0x82, 0x22, 0x17, 0x00, 0x00, //0x000008b9 jb LBB0_356 + 0x89, 0xc2, //0x000008bf movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x000008c1 andl $63, %edx + 0x48, 0x89, 0x55, 0xb8, //0x000008c4 movq %rdx, $-72(%rbp) + 0x4f, 0x8d, 0x44, 0x02, 0xc0, //0x000008c8 leaq $-64(%r10,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x000008cd andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x000008d1 addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x90, //0x000008d4 addq $-112(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000008d8 movq $-1, %r9 + 0x31, 0xdb, //0x000008df xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008e1 .p2align 4, 0x90 + //0x000008f0 LBB0_107 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x000008f0 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x000008f5 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x000008fb movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00000901 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00000907 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000090b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xf3, //0x0000090f pmovmskb %xmm3, %esi + 0x66, 0x0f, 0x6f, 0xde, //0x00000913 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000917 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x0000091b pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x0000091f movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000923 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000927 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x0000092b movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000092f pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xe3, //0x00000933 pmovmskb %xmm3, %r12d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000938 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x0000093c pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000940 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000945 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000949 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000094d pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000951 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000955 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000959 shlq $16, %rdi + 0x48, 0x09, 0xfe, //0x0000095d orq %rdi, %rsi + 0x66, 0x0f, 0xd7, 0xfb, //0x00000960 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000964 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000968 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x0000096c shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000970 orq %rcx, %rsi + 0x66, 0x0f, 0xd7, 0xcb, //0x00000973 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000977 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000097b pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000097f pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000984 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000988 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000098c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000098f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000993 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000997 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000099b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x000009a0 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x000009a4 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x000009a8 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x000009ab pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x000009af movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x000009b3 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x000009b7 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x000009bc pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x000009c0 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x000009c4 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x000009c7 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x000009cb movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x000009cf pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x000009d3 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x000009d8 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x000009dc shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x000009e0 orq %rdi, %rdx + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x000009e3 pmovmskb %xmm7, %r14d + 0x49, 0xc1, 0xe4, 0x30, //0x000009e8 shlq $48, %r12 + 0x48, 0xc1, 0xe1, 0x20, //0x000009ec shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000009f0 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000009f4 jne LBB0_109 + 0x4d, 0x85, 0xed, //0x000009fa testq %r13, %r13 + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000009fd jne LBB0_124 + //0x00000a03 LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x00000a03 shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00000a07 orq %rcx, %rdx + 0x4c, 0x09, 0xe6, //0x00000a0a orq %r12, %rsi + 0x4c, 0x89, 0xe9, //0x00000a0d movq %r13, %rcx + 0x48, 0x09, 0xd9, //0x00000a10 orq %rbx, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000a13 jne LBB0_146 + 0x4c, 0x09, 0xf2, //0x00000a19 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000a1c testq %rsi, %rsi + 0x0f, 0x85, 0x54, 0x02, 0x00, 0x00, //0x00000a1f jne LBB0_147 + //0x00000a25 LBB0_111 + 0x48, 0x85, 0xd2, //0x00000a25 testq %rdx, %rdx + 0x0f, 0x85, 0xf6, 0x1b, 0x00, 0x00, //0x00000a28 jne LBB0_430 + 0x48, 0x83, 0xc0, 0xc0, //0x00000a2e addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000a32 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000a36 cmpq $63, %rax + 0x0f, 0x87, 0xb0, 0xfe, 0xff, 0xff, //0x00000a3a ja LBB0_107 + 0xe9, 0x92, 0x0e, 0x00, 0x00, //0x00000a40 jmp LBB0_113 + //0x00000a45 LBB0_146 + 0x48, 0x89, 0xd9, //0x00000a45 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000a48 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000a4b andq %r13, %rcx + 0x4c, 0x8d, 0x24, 0x09, //0x00000a4e leaq (%rcx,%rcx), %r12 + 0x49, 0x09, 0xdc, //0x00000a52 orq %rbx, %r12 + 0x4c, 0x89, 0xe7, //0x00000a55 movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000a58 notq %rdi + 0x4c, 0x21, 0xef, //0x00000a5b andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000a5e movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x00000a68 andq %rbx, %rdi + 0x31, 0xdb, //0x00000a6b xorl %ebx, %ebx + 0x48, 0x01, 0xcf, //0x00000a6d addq %rcx, %rdi + 0x0f, 0x92, 0xc3, //0x00000a70 setb %bl + 0x48, 0x01, 0xff, //0x00000a73 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a76 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00000a80 xorq %rcx, %rdi + 0x4c, 0x21, 0xe7, //0x00000a83 andq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000a86 notq %rdi + 0x48, 0x21, 0xfe, //0x00000a89 andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x00000a8c orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000a8f testq %rsi, %rsi + 0x0f, 0x84, 0x8d, 0xff, 0xff, 0xff, //0x00000a92 je LBB0_111 + 0xe9, 0xdc, 0x01, 0x00, 0x00, //0x00000a98 jmp LBB0_147 + //0x00000a9d LBB0_124 + 0x4c, 0x89, 0xdf, //0x00000a9d movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00000aa0 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000aa4 bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x00000aa8 addq %rdi, %r9 + 0xe9, 0x53, 0xff, 0xff, 0xff, //0x00000aab jmp LBB0_109 + //0x00000ab0 LBB0_127 + 0x4b, 0xc7, 0x04, 0xda, 0x02, 0x00, 0x00, 0x00, //0x00000ab0 movq $2, (%r10,%r11,8) + 0x48, 0x8b, 0x45, 0x98, //0x00000ab8 movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00000abc movq $8(%rax), %r10 + 0xf6, 0x45, 0x80, 0x20, //0x00000ac0 testb $32, $-128(%rbp) + 0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x00000ac4 jne LBB0_161 + 0x4d, 0x89, 0xd5, //0x00000aca movq %r10, %r13 + 0x48, 0x8b, 0x45, 0xc0, //0x00000acd movq $-64(%rbp), %rax + 0x49, 0x29, 0xc5, //0x00000ad1 subq %rax, %r13 + 0x0f, 0x84, 0x31, 0x1d, 0x00, 0x00, //0x00000ad4 je LBB0_464 + 0x4d, 0x8d, 0x1c, 0x01, //0x00000ada leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000ade cmpq $64, %r13 + 0x0f, 0x82, 0x60, 0x15, 0x00, 0x00, //0x00000ae2 jb LBB0_362 + 0x44, 0x89, 0xe9, //0x00000ae8 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000aeb andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb0, //0x00000aee movq %rcx, $-80(%rbp) + 0x4b, 0x8d, 0x4c, 0x02, 0xc0, //0x00000af2 leaq $-64(%r10,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000af7 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000afb addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x90, //0x00000afe addq $-112(%rbp), %rcx + 0x48, 0x89, 0x8d, 0x70, 0xff, 0xff, 0xff, //0x00000b02 movq %rcx, $-144(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000b09 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00000b10 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b13 .p2align 4, 0x90 + //0x00000b20 LBB0_131 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000b20 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000b25 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x00000b2b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000b31 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000b37 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b3b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x00000b3f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000b43 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b47 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x00000b4b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x00000b4f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b53 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000b57 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x00000b5b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b5f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000b63 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000b67 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000b6b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x00000b6f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000b73 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000b77 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x00000b7b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x00000b80 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00000b84 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x00000b89 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000b8d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000b91 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b95 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b98 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x00000b9b shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b9f shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000ba3 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000ba7 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000baa orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x00000bad orq %r12, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000bb0 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000bb4 jne LBB0_133 + 0x48, 0x85, 0xd2, //0x00000bba testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000bbd jne LBB0_142 + //0x00000bc3 LBB0_133 + 0x48, 0x09, 0xdf, //0x00000bc3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000bc6 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000bc9 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000bcc jne LBB0_143 + //0x00000bd2 LBB0_134 + 0x48, 0x85, 0xff, //0x00000bd2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000bd5 jne LBB0_144 + //0x00000bdb LBB0_135 + 0x49, 0x83, 0xc5, 0xc0, //0x00000bdb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000bdf addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000be3 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00000be7 ja LBB0_131 + 0xe9, 0x24, 0x0e, 0x00, 0x00, //0x00000bed jmp LBB0_136 + //0x00000bf2 LBB0_142 + 0x4c, 0x89, 0xd8, //0x00000bf2 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000bf5 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00000bf9 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00000bfd addq %rax, %r8 + 0x48, 0x09, 0xdf, //0x00000c00 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000c03 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000c06 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000c09 je LBB0_134 + //0x00000c0f LBB0_143 + 0x4c, 0x89, 0xc8, //0x00000c0f movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000c12 notq %rax + 0x48, 0x21, 0xd0, //0x00000c15 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000c18 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x00000c1c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x00000c1f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c22 notq %rsi + 0x48, 0x21, 0xd6, //0x00000c25 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000c28 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000c32 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x00000c35 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x00000c38 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x00000c3b setb %r9b + 0x48, 0x01, 0xf6, //0x00000c3f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c42 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000c4c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000c4f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c52 notq %rsi + 0x48, 0x21, 0xf7, //0x00000c55 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000c58 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000c5b je LBB0_135 + //0x00000c61 LBB0_144 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000c61 bsfq %rdi, %rax + //0x00000c65 LBB0_145 + 0x4c, 0x03, 0x5d, 0xa0, //0x00000c65 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000c69 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c6c movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000c70 movq $-48(%rbp), %r9 + 0xe9, 0x84, 0x03, 0x00, 0x00, //0x00000c74 jmp LBB0_195 + //0x00000c79 LBB0_147 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000c79 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000c7d testq %rdx, %rdx + 0x0f, 0x84, 0xf1, 0x02, 0x00, 0x00, //0x00000c80 je LBB0_186 + 0x48, 0x0f, 0xbc, 0xca, //0x00000c86 bsfq %rdx, %rcx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000c8a movq $-64(%rbp), %rdi + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000c8e subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000c92 cmpq %rax, %rcx + 0x0f, 0x83, 0xf2, 0x02, 0x00, 0x00, //0x00000c95 jae LBB0_187 + 0xe9, 0x47, 0x1b, 0x00, 0x00, //0x00000c9b jmp LBB0_149 + //0x00000ca0 LBB0_151 + 0x49, 0x01, 0xce, //0x00000ca0 addq %rcx, %r14 + 0x4d, 0x89, 0xf3, //0x00000ca3 movq %r14, %r11 + 0x48, 0x8b, 0x7d, 0xc0, //0x00000ca6 movq $-64(%rbp), %rdi + //0x00000caa LBB0_152 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000caa movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00000cb1 testq %r12, %r12 + 0x48, 0x8b, 0x75, 0xc8, //0x00000cb4 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x26, 0x19, 0x00, 0x00, //0x00000cb8 je LBB0_424 + //0x00000cbe LBB0_153 + 0x48, 0x85, 0xff, //0x00000cbe testq %rdi, %rdi + 0x0f, 0x84, 0x1d, 0x19, 0x00, 0x00, //0x00000cc1 je LBB0_424 + 0x4d, 0x85, 0xed, //0x00000cc7 testq %r13, %r13 + 0x0f, 0x84, 0x14, 0x19, 0x00, 0x00, //0x00000cca je LBB0_424 + 0x4d, 0x29, 0xd3, //0x00000cd0 subq %r10, %r11 + 0x49, 0x8d, 0x43, 0xff, //0x00000cd3 leaq $-1(%r11), %rax + 0x49, 0x39, 0xc4, //0x00000cd7 cmpq %rax, %r12 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00000cda je LBB0_422 + 0x49, 0x39, 0xc5, //0x00000ce0 cmpq %rax, %r13 + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000ce3 je LBB0_422 + 0x48, 0x39, 0xc7, //0x00000ce9 cmpq %rax, %rdi + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00000cec je LBB0_422 + 0x48, 0x85, 0xff, //0x00000cf2 testq %rdi, %rdi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000cf5 movq $-48(%rbp), %r9 + 0x0f, 0x8e, 0xb8, 0x02, 0x00, 0x00, //0x00000cf9 jle LBB0_190 + 0x48, 0x8d, 0x47, 0xff, //0x00000cff leaq $-1(%rdi), %rax + 0x49, 0x39, 0xc4, //0x00000d03 cmpq %rax, %r12 + 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00000d06 je LBB0_190 + 0x48, 0xf7, 0xd7, //0x00000d0c notq %rdi + 0x49, 0x89, 0xfb, //0x00000d0f movq %rdi, %r11 + 0x4d, 0x85, 0xdb, //0x00000d12 testq %r11, %r11 + 0x0f, 0x89, 0xe4, 0x0f, 0x00, 0x00, //0x00000d15 jns LBB0_335 + 0xe9, 0xc1, 0x18, 0x00, 0x00, //0x00000d1b jmp LBB0_423 + //0x00000d20 LBB0_422 + 0x49, 0xf7, 0xdb, //0x00000d20 negq %r11 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000d23 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00000d27 testq %r11, %r11 + 0x0f, 0x89, 0xcf, 0x0f, 0x00, 0x00, //0x00000d2a jns LBB0_335 + 0xe9, 0xac, 0x18, 0x00, 0x00, //0x00000d30 jmp LBB0_423 + //0x00000d35 LBB0_161 + 0x4c, 0x89, 0xd0, //0x00000d35 movq %r10, %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00000d38 movq $-64(%rbp), %rcx + 0x48, 0x29, 0xc8, //0x00000d3c subq %rcx, %rax + 0x0f, 0x84, 0xce, 0x1a, 0x00, 0x00, //0x00000d3f je LBB0_465 + 0x4d, 0x8d, 0x1c, 0x09, //0x00000d45 leaq (%r9,%rcx), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000d49 cmpq $64, %rax + 0x4c, 0x89, 0x55, 0xb8, //0x00000d4d movq %r10, $-72(%rbp) + 0x0f, 0x82, 0x0a, 0x13, 0x00, 0x00, //0x00000d51 jb LBB0_363 + 0x89, 0xc2, //0x00000d57 movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x00000d59 andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00000d5c movq %rdx, $-80(%rbp) + 0x4f, 0x8d, 0x64, 0x02, 0xc0, //0x00000d60 leaq $-64(%r10,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00000d65 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00000d69 addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00000d6c addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d70 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00000d77 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d7a .p2align 4, 0x90 + //0x00000d80 LBB0_164 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00000d80 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00000d85 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x00000d8b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00000d91 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00000d97 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d9b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00000d9f pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x00000da3 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000da7 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00000dab pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x00000daf movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000db3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000db7 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x00000dbb movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000dbf pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00000dc3 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000dc8 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dcc pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000dd0 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000dd5 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dd9 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000ddd pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000de1 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000de5 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000de9 shlq $16, %rdi + 0x48, 0x09, 0xfb, //0x00000ded orq %rdi, %rbx + 0x66, 0x0f, 0xd7, 0xfb, //0x00000df0 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000df4 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000df8 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x00000dfc shlq $32, %rcx + 0x48, 0x09, 0xcb, //0x00000e00 orq %rcx, %rbx + 0x66, 0x0f, 0xd7, 0xcb, //0x00000e03 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e07 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x00000e0b pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x00000e0f pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000e14 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000e18 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000e1c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x00000e1f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e23 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000e27 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x00000e2b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00000e30 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x00000e34 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00000e38 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x00000e3b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x00000e3f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00000e43 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00000e47 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00000e4c pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x00000e50 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000e54 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00000e57 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e5b movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x00000e5f pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00000e63 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00000e68 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x00000e6c shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x00000e70 orq %rdi, %rdx + 0x66, 0x0f, 0xd7, 0xff, //0x00000e73 pmovmskb %xmm7, %edi + 0x49, 0xc1, 0xe6, 0x30, //0x00000e77 shlq $48, %r14 + 0x48, 0xc1, 0xe1, 0x20, //0x00000e7b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00000e7f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000e83 jne LBB0_166 + 0x4d, 0x85, 0xed, //0x00000e89 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00000e8c jne LBB0_181 + //0x00000e92 LBB0_166 + 0x48, 0xc1, 0xe7, 0x30, //0x00000e92 shlq $48, %rdi + 0x48, 0x09, 0xca, //0x00000e96 orq %rcx, %rdx + 0x4c, 0x09, 0xf3, //0x00000e99 orq %r14, %rbx + 0x4c, 0x89, 0xe9, //0x00000e9c movq %r13, %rcx + 0x4c, 0x09, 0xd1, //0x00000e9f orq %r10, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000ea2 jne LBB0_182 + 0x48, 0x09, 0xfa, //0x00000ea8 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000eab testq %rbx, %rbx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000eae jne LBB0_183 + //0x00000eb4 LBB0_168 + 0x48, 0x85, 0xd2, //0x00000eb4 testq %rdx, %rdx + 0x0f, 0x85, 0x95, 0x17, 0x00, 0x00, //0x00000eb7 jne LBB0_435 + 0x48, 0x83, 0xc0, 0xc0, //0x00000ebd addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000ec1 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000ec5 cmpq $63, %rax + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x00000ec9 ja LBB0_164 + 0xe9, 0xc9, 0x0b, 0x00, 0x00, //0x00000ecf jmp LBB0_170 + //0x00000ed4 LBB0_182 + 0x4d, 0x89, 0xd6, //0x00000ed4 movq %r10, %r14 + 0x49, 0xf7, 0xd6, //0x00000ed7 notq %r14 + 0x4d, 0x21, 0xee, //0x00000eda andq %r13, %r14 + 0x4f, 0x8d, 0x0c, 0x36, //0x00000edd leaq (%r14,%r14), %r9 + 0x4d, 0x09, 0xd1, //0x00000ee1 orq %r10, %r9 + 0x4c, 0x89, 0xc9, //0x00000ee4 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000ee7 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000eea andq %r13, %rcx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000eed movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf1, //0x00000ef7 andq %rsi, %rcx + 0x45, 0x31, 0xd2, //0x00000efa xorl %r10d, %r10d + 0x4c, 0x01, 0xf1, //0x00000efd addq %r14, %rcx + 0x41, 0x0f, 0x92, 0xc2, //0x00000f00 setb %r10b + 0x48, 0x01, 0xc9, //0x00000f04 addq %rcx, %rcx + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000f07 movabsq $6148914691236517205, %rsi + 0x48, 0x31, 0xf1, //0x00000f11 xorq %rsi, %rcx + 0x4c, 0x21, 0xc9, //0x00000f14 andq %r9, %rcx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f17 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f1b movq $-56(%rbp), %rsi + 0x48, 0xf7, 0xd1, //0x00000f1f notq %rcx + 0x48, 0x21, 0xcb, //0x00000f22 andq %rcx, %rbx + 0x48, 0x09, 0xfa, //0x00000f25 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000f28 testq %rbx, %rbx + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00000f2b je LBB0_168 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00000f31 jmp LBB0_183 + //0x00000f36 LBB0_181 + 0x4d, 0x89, 0xd9, //0x00000f36 movq %r11, %r9 + 0x4c, 0x2b, 0x4d, 0xd0, //0x00000f39 subq $-48(%rbp), %r9 + 0x4d, 0x0f, 0xbc, 0xc5, //0x00000f3d bsfq %r13, %r8 + 0x4d, 0x01, 0xc8, //0x00000f41 addq %r9, %r8 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f44 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f48 movq $-56(%rbp), %rsi + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00000f4c jmp LBB0_166 + //0x00000f51 LBB0_183 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000f51 bsfq %rbx, %rax + 0x48, 0x85, 0xd2, //0x00000f55 testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, //0x00000f58 je LBB0_193 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f5e bsfq %rdx, %rcx + 0x4c, 0x8b, 0x55, 0xb8, //0x00000f62 movq $-72(%rbp), %r10 + 0x4d, 0x29, 0xcb, //0x00000f66 subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x00000f69 cmpq %rax, %rcx + 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000f6c jae LBB0_194 + 0xe9, 0x82, 0x18, 0x00, 0x00, //0x00000f72 jmp LBB0_185 + //0x00000f77 LBB0_186 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f77 movl $64, %ecx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000f7c movq $-64(%rbp), %rdi + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000f80 subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000f84 cmpq %rax, %rcx + 0x0f, 0x82, 0x5a, 0x18, 0x00, 0x00, //0x00000f87 jb LBB0_149 + //0x00000f8d LBB0_187 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f8d leaq $1(%r11,%rax), %r11 + //0x00000f92 LBB0_188 + 0x4d, 0x85, 0xdb, //0x00000f92 testq %r11, %r11 + 0x0f, 0x88, 0x21, 0x16, 0x00, 0x00, //0x00000f95 js LBB0_419 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f9b movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000f9f movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000fa2 movq %r15, %rax + 0x48, 0x85, 0xff, //0x00000fa5 testq %rdi, %rdi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000fa8 movq $-48(%rbp), %r9 + 0x0f, 0x8f, 0xe2, 0xf1, 0xff, 0xff, //0x00000fac jg LBB0_4 + 0xe9, 0x3d, 0x16, 0x00, 0x00, //0x00000fb2 jmp LBB0_427 + //0x00000fb7 LBB0_190 + 0x4c, 0x89, 0xe8, //0x00000fb7 movq %r13, %rax + 0x4c, 0x09, 0xe0, //0x00000fba orq %r12, %rax + 0x4d, 0x39, 0xe5, //0x00000fbd cmpq %r12, %r13 + 0x0f, 0x8c, 0xd9, 0x04, 0x00, 0x00, //0x00000fc0 jl LBB0_256 + 0x48, 0x85, 0xc0, //0x00000fc6 testq %rax, %rax + 0x0f, 0x88, 0xd0, 0x04, 0x00, 0x00, //0x00000fc9 js LBB0_256 + 0x49, 0xf7, 0xd5, //0x00000fcf notq %r13 + 0x4d, 0x89, 0xeb, //0x00000fd2 movq %r13, %r11 + 0x4d, 0x85, 0xdb, //0x00000fd5 testq %r11, %r11 + 0x0f, 0x89, 0x21, 0x0d, 0x00, 0x00, //0x00000fd8 jns LBB0_335 + 0xe9, 0xfe, 0x15, 0x00, 0x00, //0x00000fde jmp LBB0_423 + //0x00000fe3 LBB0_193 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000fe3 movl $64, %ecx + 0x4c, 0x8b, 0x55, 0xb8, //0x00000fe8 movq $-72(%rbp), %r10 + 0x4d, 0x29, 0xcb, //0x00000fec subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x00000fef cmpq %rax, %rcx + 0x0f, 0x82, 0x01, 0x18, 0x00, 0x00, //0x00000ff2 jb LBB0_185 + //0x00000ff8 LBB0_194 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000ff8 leaq $1(%r11,%rax), %r11 + //0x00000ffd LBB0_195 + 0x4d, 0x85, 0xdb, //0x00000ffd testq %r11, %r11 + 0x0f, 0x88, 0xfd, 0x15, 0x00, 0x00, //0x00001000 js LBB0_428 + 0x4c, 0x89, 0x1e, //0x00001006 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001009 movq %r15, %rax + 0x48, 0x83, 0x7d, 0xc0, 0x00, //0x0000100c cmpq $0, $-64(%rbp) + 0x0f, 0x8e, 0xdd, 0x15, 0x00, 0x00, //0x00001011 jle LBB0_427 + 0x48, 0x8b, 0x55, 0x88, //0x00001017 movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x0000101b movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000101e cmpq $4095, %rax + 0x0f, 0x8f, 0x86, 0x15, 0x00, 0x00, //0x00001024 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x0000102a leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x0000102e movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001031 movq $4, $8(%rdx,%rax,8) + 0xe9, 0x55, 0xf1, 0xff, 0xff, //0x0000103a jmp LBB0_4 + //0x0000103f LBB0_199 + 0x48, 0x8b, 0x45, 0x98, //0x0000103f movq $-104(%rbp), %rax + 0x48, 0x8b, 0x48, 0x08, //0x00001043 movq $8(%rax), %rcx + 0xf6, 0x45, 0x80, 0x20, //0x00001047 testb $32, $-128(%rbp) + 0x48, 0x89, 0x4d, 0xb8, //0x0000104b movq %rcx, $-72(%rbp) + 0x49, 0x89, 0xca, //0x0000104f movq %rcx, %r10 + 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00001052 jne LBB0_266 + 0x48, 0x8b, 0x45, 0xc0, //0x00001058 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x0000105c subq %rax, %r10 + 0x0f, 0x84, 0xb6, 0x17, 0x00, 0x00, //0x0000105f je LBB0_466 + 0x4d, 0x8d, 0x1c, 0x01, //0x00001065 leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001069 cmpq $64, %r10 + 0x0f, 0x82, 0x72, 0x10, 0x00, 0x00, //0x0000106d jb LBB0_368 + 0x44, 0x89, 0xd2, //0x00001073 movl %r10d, %edx + 0x83, 0xe2, 0x3f, //0x00001076 andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00001079 movq %rdx, $-80(%rbp) + 0x4e, 0x8d, 0x64, 0x01, 0xc0, //0x0000107d leaq $-64(%rcx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001082 andq $-64, %r12 + 0x49, 0x01, 0xc4, //0x00001086 addq %rax, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00001089 addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000108d movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00001094 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001097 .p2align 4, 0x90 + //0x000010a0 LBB0_203 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x000010a0 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x000010a5 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x000010ab movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x000010b1 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x000010b7 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010bb pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x000010bf pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x000010c3 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010c7 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x000010cb pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x000010cf movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010d3 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x000010d7 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x000010db movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010df pcmpeqb %xmm0, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xef, //0x000010e3 pmovmskb %xmm7, %r13d + 0x66, 0x0f, 0x74, 0xd9, //0x000010e8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000010ec pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x000010f0 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000010f4 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x000010f8 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000010fc pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xf1, //0x00001100 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xf6, //0x00001104 pmovmskb %xmm6, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x00001109 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x0000110d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001111 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001115 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001118 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x0000111b shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000111f shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001123 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001127 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x0000112a orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000112d orq %r14, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001130 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001134 jne LBB0_205 + 0x48, 0x85, 0xd2, //0x0000113a testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000113d jne LBB0_214 + //0x00001143 LBB0_205 + 0x4c, 0x09, 0xef, //0x00001143 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001146 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001149 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000114c jne LBB0_215 + //0x00001152 LBB0_206 + 0x48, 0x85, 0xff, //0x00001152 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00001155 jne LBB0_216 + //0x0000115b LBB0_207 + 0x49, 0x83, 0xc2, 0xc0, //0x0000115b addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x0000115f addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x00001163 cmpq $63, %r10 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00001167 ja LBB0_203 + 0xe9, 0xe6, 0x0b, 0x00, 0x00, //0x0000116d jmp LBB0_208 + //0x00001172 LBB0_214 + 0x4c, 0x89, 0xd8, //0x00001172 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001175 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00001179 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x0000117d addq %rax, %r8 + 0x4c, 0x09, 0xef, //0x00001180 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001183 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001186 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00001189 je LBB0_206 + //0x0000118f LBB0_215 + 0x4c, 0x89, 0xc8, //0x0000118f movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00001192 notq %rax + 0x48, 0x21, 0xd0, //0x00001195 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00001198 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x0000119c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x0000119f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000011a2 notq %rsi + 0x48, 0x21, 0xd6, //0x000011a5 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000011a8 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000011b2 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x000011b5 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x000011b8 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x000011bb setb %r9b + 0x48, 0x01, 0xf6, //0x000011bf addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000011c2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x000011cc xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x000011cf andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000011d2 notq %rsi + 0x48, 0x21, 0xf7, //0x000011d5 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x000011d8 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000011db je LBB0_207 + //0x000011e1 LBB0_216 + 0x48, 0x0f, 0xbc, 0xc7, //0x000011e1 bsfq %rdi, %rax + 0x4c, 0x03, 0x5d, 0xa0, //0x000011e5 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000011e9 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x000011ec movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000011f0 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x7d, 0xb8, //0x000011f4 movq $-72(%rbp), %rdi + 0xe9, 0x02, 0x06, 0x00, 0x00, //0x000011f8 jmp LBB0_304 + //0x000011fd LBB0_217 + 0x48, 0x8b, 0x45, 0x98, //0x000011fd movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00001201 movq $8(%rax), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x00001205 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x00001209 subq %rax, %r10 + 0x0f, 0x84, 0x56, 0x14, 0x00, 0x00, //0x0000120c je LBB0_437 + 0x4d, 0x8d, 0x24, 0x01, //0x00001212 leaq (%r9,%rax), %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x00001216 cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x0000121b jne LBB0_222 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001221 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x00001227 cmpq $1, %r10 + 0x0f, 0x84, 0x03, 0x0b, 0x00, 0x00, //0x0000122b je LBB0_341 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001231 movb $1(%r12), %al + 0x04, 0xd2, //0x00001236 addb $-46, %al + 0x3c, 0x37, //0x00001238 cmpb $55, %al + 0x0f, 0x87, 0xf4, 0x0a, 0x00, 0x00, //0x0000123a ja LBB0_341 + 0x0f, 0xb6, 0xc0, //0x00001240 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001243 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000124d btq %rax, %rcx + 0x0f, 0x83, 0xdd, 0x0a, 0x00, 0x00, //0x00001251 jae LBB0_341 + //0x00001257 LBB0_222 + 0x49, 0x83, 0xfa, 0x10, //0x00001257 cmpq $16, %r10 + 0x0f, 0x82, 0x5d, 0x0e, 0x00, 0x00, //0x0000125b jb LBB0_367 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001261 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x00001265 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001268 andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x0000126c leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001271 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00001275 movq $-1, $-80(%rbp) + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000127d movq $-1, $-72(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001285 movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x0000128c movq %r12, %r13 + 0x90, //0x0000128f .p2align 4, 0x90 + //0x00001290 LBB0_224 + 0xf3, 0x41, 0x0f, 0x6f, 0x5d, 0x00, //0x00001290 movdqu (%r13), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00001296 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x0000129a pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x0000129f movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x000012a4 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x000012a8 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x000012ac movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000012b0 pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000012b5 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000012b9 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000012be por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000012c2 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000012c6 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000012ca pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000012cf pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x000012d4 pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0xeb, 0xe3, //0x000012d8 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000012dc por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000012e0 por %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xc3, //0x000012e4 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0xd7, 0xd6, //0x000012e8 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x000012ec pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000012f0 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x000012f5 leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x000012fc xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x000012ff bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x00001303 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x00001306 je LBB0_226 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x0000130c movl $-1, %edi + 0xd3, 0xe7, //0x00001311 shll %cl, %edi + 0xf7, 0xd7, //0x00001313 notl %edi + 0x21, 0xf8, //0x00001315 andl %edi, %eax + 0x21, 0xfb, //0x00001317 andl %edi, %ebx + 0x21, 0xd7, //0x00001319 andl %edx, %edi + 0x89, 0xfa, //0x0000131b movl %edi, %edx + //0x0000131d LBB0_226 + 0x8d, 0x78, 0xff, //0x0000131d leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001320 andl %eax, %edi + 0x0f, 0x85, 0xee, 0x09, 0x00, 0x00, //0x00001322 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x00001328 leal $-1(%rbx), %edi + 0x21, 0xdf, //0x0000132b andl %ebx, %edi + 0x0f, 0x85, 0xe3, 0x09, 0x00, 0x00, //0x0000132d jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x00001333 leal $-1(%rdx), %edi + 0x21, 0xd7, //0x00001336 andl %edx, %edi + 0x0f, 0x85, 0xd8, 0x09, 0x00, 0x00, //0x00001338 jne LBB0_337 + 0x85, 0xc0, //0x0000133e testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001340 je LBB0_232 + 0x4c, 0x89, 0xef, //0x00001346 movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001349 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x0000134c bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001350 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00001353 cmpq $-1, %r14 + 0x0f, 0x85, 0xc3, 0x09, 0x00, 0x00, //0x00001357 jne LBB0_338 + 0x4d, 0x89, 0xde, //0x0000135d movq %r11, %r14 + //0x00001360 LBB0_232 + 0x85, 0xdb, //0x00001360 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001362 je LBB0_235 + 0x4c, 0x89, 0xe8, //0x00001368 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000136b subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x0000136e bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001372 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x00001375 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0xa0, 0x09, 0x00, 0x00, //0x0000137a jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb8, //0x00001380 movq %r11, $-72(%rbp) + //0x00001384 LBB0_235 + 0x85, 0xd2, //0x00001384 testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001386 je LBB0_238 + 0x4c, 0x89, 0xe8, //0x0000138c movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000138f subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x00001392 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x00001396 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb0, 0xff, //0x00001399 cmpq $-1, $-80(%rbp) + 0x0f, 0x85, 0x7c, 0x09, 0x00, 0x00, //0x0000139e jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb0, //0x000013a4 movq %r11, $-80(%rbp) + //0x000013a8 LBB0_238 + 0x83, 0xf9, 0x10, //0x000013a8 cmpl $16, %ecx + 0x0f, 0x85, 0xaa, 0x03, 0x00, 0x00, //0x000013ab jne LBB0_290 + 0x49, 0x83, 0xc5, 0x10, //0x000013b1 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000013b5 addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000013b9 cmpq $15, %r10 + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000013bd ja LBB0_224 + 0x4d, 0x85, 0xc9, //0x000013c3 testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xc3, 0x16, 0x00, 0x00, //0x000013c6 leaq $5827(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xb8, //0x000013cd movq $-72(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb0, //0x000013d1 movq $-80(%rbp), %rbx + 0x0f, 0x84, 0x8e, 0x03, 0x00, 0x00, //0x000013d5 je LBB0_291 + //0x000013db LBB0_241 + 0x4b, 0x8d, 0x0c, 0x08, //0x000013db leaq (%r8,%r9), %rcx + 0xe9, 0x08, 0x01, 0x00, 0x00, //0x000013df jmp LBB0_260 + //0x000013e4 LBB0_242 + 0x48, 0x8b, 0x55, 0x88, //0x000013e4 movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x000013e8 movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000013eb cmpq $4095, %rax + 0x0f, 0x8f, 0xb9, 0x11, 0x00, 0x00, //0x000013f1 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x000013f7 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x000013fb movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000013fe movq $5, $8(%rdx,%rax,8) + 0xe9, 0x84, 0xed, 0xff, 0xff, //0x00001407 jmp LBB0_3 + //0x0000140c LBB0_244 + 0x48, 0x8b, 0x4d, 0x98, //0x0000140c movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001410 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001414 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001418 cmpq %rdx, %r15 + 0x0f, 0x83, 0xfb, 0x11, 0x00, 0x00, //0x0000141b jae LBB0_440 + 0x48, 0x8b, 0x55, 0xc0, //0x00001421 movq $-64(%rbp), %rdx + 0x41, 0x8b, 0x0c, 0x11, //0x00001425 movl (%r9,%rdx), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001429 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x5b, 0x12, 0x00, 0x00, //0x0000142f jne LBB0_443 + 0x4d, 0x8d, 0x5f, 0x05, //0x00001435 leaq $5(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00001439 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000143c movq %r15, %rax + 0x48, 0x85, 0xd2, //0x0000143f testq %rdx, %rdx + 0x0f, 0x8f, 0x4c, 0xed, 0xff, 0xff, //0x00001442 jg LBB0_4 + 0xe9, 0xa7, 0x11, 0x00, 0x00, //0x00001448 jmp LBB0_427 + //0x0000144d LBB0_247 + 0x48, 0x8b, 0x4d, 0x98, //0x0000144d movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001451 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001455 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001459 cmpq %rdx, %r15 + 0x0f, 0x83, 0xba, 0x11, 0x00, 0x00, //0x0000145c jae LBB0_440 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00001462 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00001469 je LBB0_255 + 0xe9, 0x71, 0x12, 0x00, 0x00, //0x0000146f jmp LBB0_249 + //0x00001474 LBB0_253 + 0x48, 0x8b, 0x4d, 0x98, //0x00001474 movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001478 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x0000147c leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001480 cmpq %rdx, %r15 + 0x0f, 0x83, 0x93, 0x11, 0x00, 0x00, //0x00001483 jae LBB0_440 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x00001489 cmpl $1702195828, (%r10) + 0x0f, 0x85, 0xa1, 0x12, 0x00, 0x00, //0x00001490 jne LBB0_448 + //0x00001496 LBB0_255 + 0x4d, 0x8d, 0x5f, 0x04, //0x00001496 leaq $4(%r15), %r11 + 0xe9, 0x69, 0x03, 0x00, 0x00, //0x0000149a jmp LBB0_305 + //0x0000149f LBB0_256 + 0x48, 0x85, 0xc0, //0x0000149f testq %rax, %rax + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x000014a2 leaq $-1(%r12), %rax + 0x49, 0xf7, 0xd4, //0x000014a7 notq %r12 + 0x4d, 0x0f, 0x48, 0xe3, //0x000014aa cmovsq %r11, %r12 + 0x49, 0x39, 0xc5, //0x000014ae cmpq %rax, %r13 + 0x4d, 0x0f, 0x44, 0xdc, //0x000014b1 cmoveq %r12, %r11 + 0x4d, 0x85, 0xdb, //0x000014b5 testq %r11, %r11 + 0x0f, 0x89, 0x41, 0x08, 0x00, 0x00, //0x000014b8 jns LBB0_335 + 0xe9, 0x1e, 0x11, 0x00, 0x00, //0x000014be jmp LBB0_423 + //0x000014c3 LBB0_257 + 0x49, 0x89, 0xc3, //0x000014c3 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000014c6 subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000014c9 cmpq $-1, %r14 + 0x0f, 0x85, 0x6d, 0x0b, 0x00, 0x00, //0x000014cd jne LBB0_361 + 0x49, 0xff, 0xcb, //0x000014d3 decq %r11 + 0x4d, 0x89, 0xde, //0x000014d6 movq %r11, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014d9 .p2align 4, 0x90 + //0x000014e0 LBB0_259 + 0x49, 0x89, 0xc0, //0x000014e0 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x000014e3 decq %r9 + 0x0f, 0x84, 0xfc, 0x09, 0x00, 0x00, //0x000014e6 je LBB0_343 + //0x000014ec LBB0_260 + 0x41, 0x0f, 0xbe, 0x10, //0x000014ec movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x000014f0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000014f3 cmpl $58, %edx + 0x0f, 0x87, 0x6d, 0x02, 0x00, 0x00, //0x000014f6 ja LBB0_291 + 0x49, 0x8d, 0x40, 0x01, //0x000014fc leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001500 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001504 addq %rsi, %rdx + 0xff, 0xe2, //0x00001507 jmpq *%rdx + //0x00001509 LBB0_262 + 0x49, 0x89, 0xc3, //0x00001509 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000150c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000150f cmpq $-1, %rbx + 0x0f, 0x85, 0x27, 0x0b, 0x00, 0x00, //0x00001513 jne LBB0_361 + 0x49, 0xff, 0xcb, //0x00001519 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000151c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000151f jmp LBB0_259 + //0x00001524 LBB0_264 + 0x49, 0x89, 0xc3, //0x00001524 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001527 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000152a cmpq $-1, %rdi + 0x0f, 0x85, 0x0c, 0x0b, 0x00, 0x00, //0x0000152e jne LBB0_361 + 0x49, 0xff, 0xcb, //0x00001534 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001537 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000153a jmp LBB0_259 + //0x0000153f LBB0_266 + 0x48, 0x8b, 0x45, 0xc0, //0x0000153f movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x00001543 subq %rax, %r10 + 0x0f, 0x84, 0xcf, 0x12, 0x00, 0x00, //0x00001546 je LBB0_466 + 0x4d, 0x8d, 0x1c, 0x01, //0x0000154c leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001550 cmpq $64, %r10 + 0x0f, 0x82, 0xa8, 0x0b, 0x00, 0x00, //0x00001554 jb LBB0_369 + 0x44, 0x89, 0xd2, //0x0000155a movl %r10d, %edx + 0x83, 0xe2, 0x3f, //0x0000155d andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00001560 movq %rdx, $-80(%rbp) + 0x4e, 0x8d, 0x64, 0x01, 0xc0, //0x00001564 leaq $-64(%rcx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001569 andq $-64, %r12 + 0x49, 0x01, 0xc4, //0x0000156d addq %rax, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00001570 addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001574 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x0000157b xorl %r9d, %r9d + 0x90, 0x90, //0x0000157e .p2align 4, 0x90 + //0x00001580 LBB0_269 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00001580 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00001585 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x0000158b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00001591 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00001597 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000159b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xf3, //0x0000159f pmovmskb %xmm3, %esi + 0x66, 0x0f, 0x6f, 0xde, //0x000015a3 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015a7 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000015ab pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdc, //0x000015af movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015b3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000015b7 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015bb movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015bf pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000015c3 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdd, //0x000015c7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015cb pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x000015cf pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x000015d4 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015d8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000015dc pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x000015e0 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015e4 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x10, //0x000015e8 shlq $16, %rcx + 0x48, 0x09, 0xce, //0x000015ec orq %rcx, %rsi + 0x66, 0x0f, 0xd7, 0xcb, //0x000015ef pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015f3 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015f7 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe3, 0x20, //0x000015fb shlq $32, %rbx + 0x48, 0x09, 0xde, //0x000015ff orq %rbx, %rsi + 0x66, 0x0f, 0xd7, 0xdb, //0x00001602 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xda, //0x00001606 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000160a pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000160e pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00001613 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00001617 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000161b orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000161e pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00001622 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00001626 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000162a pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x0000162f pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe1, 0x20, //0x00001633 shlq $32, %rcx + 0x49, 0x09, 0xcd, //0x00001637 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xc6, //0x0000163a pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xda, //0x0000163e movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001642 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001646 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000164b pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe3, 0x30, //0x0000164f shlq $48, %rbx + 0x49, 0x09, 0xdd, //0x00001653 orq %rbx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00001656 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x0000165a movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x0000165e pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00001662 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00001667 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe0, 0x10, //0x0000166b shlq $16, %rax + 0x48, 0x09, 0xc2, //0x0000166f orq %rax, %rdx + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x00001672 pmovmskb %xmm7, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001677 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x0000167b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000167f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001683 jne LBB0_271 + 0x4d, 0x85, 0xed, //0x00001689 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x0000168c jne LBB0_286 + //0x00001692 LBB0_271 + 0x49, 0xc1, 0xe6, 0x30, //0x00001692 shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00001696 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00001699 orq %rdi, %rsi + 0x4c, 0x89, 0xe8, //0x0000169c movq %r13, %rax + 0x4c, 0x09, 0xc8, //0x0000169f orq %r9, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000016a2 jne LBB0_287 + 0x4c, 0x09, 0xf2, //0x000016a8 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x000016ab testq %rsi, %rsi + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x000016ae jne LBB0_288 + //0x000016b4 LBB0_273 + 0x48, 0x85, 0xd2, //0x000016b4 testq %rdx, %rdx + 0x0f, 0x85, 0xec, 0x10, 0x00, 0x00, //0x000016b7 jne LBB0_456 + 0x49, 0x83, 0xc2, 0xc0, //0x000016bd addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x000016c1 addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x000016c5 cmpq $63, %r10 + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x000016c9 ja LBB0_269 + 0xe9, 0x1a, 0x07, 0x00, 0x00, //0x000016cf jmp LBB0_275 + //0x000016d4 LBB0_287 + 0x4c, 0x89, 0xc8, //0x000016d4 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000016d7 notq %rax + 0x4c, 0x21, 0xe8, //0x000016da andq %r13, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000016dd leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x000016e1 orq %r9, %rcx + 0x48, 0x89, 0xcf, //0x000016e4 movq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x000016e7 notq %rdi + 0x4c, 0x21, 0xef, //0x000016ea andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000016ed movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000016f7 andq %rbx, %rdi + 0x45, 0x31, 0xc9, //0x000016fa xorl %r9d, %r9d + 0x48, 0x01, 0xc7, //0x000016fd addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc1, //0x00001700 setb %r9b + 0x48, 0x01, 0xff, //0x00001704 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00001707 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00001711 xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x00001714 andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x00001717 notq %rdi + 0x48, 0x21, 0xfe, //0x0000171a andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x0000171d orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001720 testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00001723 je LBB0_273 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001729 jmp LBB0_288 + //0x0000172e LBB0_286 + 0x4c, 0x89, 0xd8, //0x0000172e movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001731 subq $-48(%rbp), %rax + 0x4d, 0x0f, 0xbc, 0xc5, //0x00001735 bsfq %r13, %r8 + 0x49, 0x01, 0xc0, //0x00001739 addq %rax, %r8 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x0000173c jmp LBB0_271 + //0x00001741 LBB0_288 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001741 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001745 testq %rdx, %rdx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001748 movq $-48(%rbp), %r9 + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x0000174c je LBB0_301 + 0x48, 0x0f, 0xbc, 0xca, //0x00001752 bsfq %rdx, %rcx + 0xe9, 0x8b, 0x00, 0x00, 0x00, //0x00001756 jmp LBB0_302 + //0x0000175b LBB0_290 + 0x49, 0x01, 0xcd, //0x0000175b addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000175e movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001761 movq $-72(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb0, //0x00001765 movq $-80(%rbp), %rbx + //0x00001769 LBB0_291 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001769 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001770 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001773 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xf2, 0x0e, 0x00, 0x00, //0x00001777 je LBB0_438 + //0x0000177d LBB0_292 + 0x48, 0x85, 0xdb, //0x0000177d testq %rbx, %rbx + 0x0f, 0x84, 0xe9, 0x0e, 0x00, 0x00, //0x00001780 je LBB0_438 + 0x4d, 0x85, 0xf6, //0x00001786 testq %r14, %r14 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001789 movq $-48(%rbp), %r9 + 0x0f, 0x84, 0xdc, 0x0e, 0x00, 0x00, //0x0000178d je LBB0_438 + 0x4d, 0x29, 0xe0, //0x00001793 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00001796 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x0000179a cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000179d je LBB0_300 + 0x49, 0x39, 0xc6, //0x000017a3 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000017a6 je LBB0_300 + 0x48, 0x39, 0xc3, //0x000017ac cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000017af je LBB0_300 + 0x48, 0x85, 0xdb, //0x000017b5 testq %rbx, %rbx + 0x0f, 0x8e, 0x72, 0x00, 0x00, 0x00, //0x000017b8 jle LBB0_307 + 0x48, 0x8d, 0x43, 0xff, //0x000017be leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000017c2 cmpq %rax, %rdi + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x000017c5 je LBB0_307 + 0x48, 0xf7, 0xd3, //0x000017cb notq %rbx + 0x49, 0x89, 0xdb, //0x000017ce movq %rbx, %r11 + 0xe9, 0x55, 0x05, 0x00, 0x00, //0x000017d1 jmp LBB0_340 + //0x000017d6 LBB0_300 + 0x49, 0xf7, 0xd8, //0x000017d6 negq %r8 + 0x4d, 0x89, 0xc3, //0x000017d9 movq %r8, %r11 + 0xe9, 0x4a, 0x05, 0x00, 0x00, //0x000017dc jmp LBB0_340 + //0x000017e1 LBB0_301 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000017e1 movl $64, %ecx + //0x000017e6 LBB0_302 + 0x48, 0x8b, 0x75, 0xc8, //0x000017e6 movq $-56(%rbp), %rsi + 0x48, 0x8b, 0x7d, 0xb8, //0x000017ea movq $-72(%rbp), %rdi + 0x4d, 0x29, 0xcb, //0x000017ee subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x000017f1 cmpq %rax, %rcx + 0x0f, 0x82, 0xff, 0x0f, 0x00, 0x00, //0x000017f4 jb LBB0_185 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x000017fa leaq $1(%r11,%rax), %r11 + //0x000017ff LBB0_304 + 0x4d, 0x85, 0xdb, //0x000017ff testq %r11, %r11 + 0x0f, 0x88, 0x6f, 0x0e, 0x00, 0x00, //0x00001802 js LBB0_441 + //0x00001808 LBB0_305 + 0x4c, 0x89, 0x1e, //0x00001808 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000180b movq %r15, %rax + 0x48, 0x83, 0x7d, 0xc0, 0x00, //0x0000180e cmpq $0, $-64(%rbp) + 0x0f, 0x8f, 0x7b, 0xe9, 0xff, 0xff, //0x00001813 jg LBB0_4 + 0xe9, 0xd6, 0x0d, 0x00, 0x00, //0x00001819 jmp LBB0_427 + //0x0000181e LBB0_306 + 0x4d, 0x29, 0xd6, //0x0000181e subq %r10, %r14 + 0x44, 0x0f, 0xbc, 0xde, //0x00001821 bsfl %esi, %r11d + 0x4d, 0x01, 0xf3, //0x00001825 addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x00001828 notq %r11 + 0xe9, 0xbe, 0x04, 0x00, 0x00, //0x0000182b jmp LBB0_334 + //0x00001830 LBB0_307 + 0x4c, 0x89, 0xf0, //0x00001830 movq %r14, %rax + 0x48, 0x09, 0xf8, //0x00001833 orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001836 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x93, 0x01, 0x00, 0x00, //0x00001839 jl LBB0_310 + 0x48, 0x85, 0xc0, //0x0000183f testq %rax, %rax + 0x0f, 0x88, 0x8a, 0x01, 0x00, 0x00, //0x00001842 js LBB0_310 + 0x49, 0xf7, 0xd6, //0x00001848 notq %r14 + 0x4d, 0x89, 0xf3, //0x0000184b movq %r14, %r11 + 0xe9, 0xd8, 0x04, 0x00, 0x00, //0x0000184e jmp LBB0_340 + //0x00001853 LBB0_50 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00001853 movq $-80(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb8, //0x00001857 movq $-72(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x0000185b cmpq $32, %r13 + 0x0f, 0x82, 0x57, 0x09, 0x00, 0x00, //0x0000185f jb LBB0_374 + //0x00001865 LBB0_51 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001865 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x0000186a movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001870 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001874 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001878 pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x0000187c movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001880 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001884 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001888 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000188c pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001890 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001894 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001898 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000189c shlq $16, %rax + 0x48, 0x09, 0xc1, //0x000018a0 orq %rax, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000018a3 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000018a7 jne LBB0_53 + 0x48, 0x85, 0xc9, //0x000018ad testq %rcx, %rcx + 0x0f, 0x85, 0xa5, 0x08, 0x00, 0x00, //0x000018b0 jne LBB0_371 + //0x000018b6 LBB0_53 + 0x48, 0x09, 0xfa, //0x000018b6 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000018b9 movq %rcx, %rax + 0x4c, 0x09, 0xc0, //0x000018bc orq %r8, %rax + 0x0f, 0x85, 0xb3, 0x08, 0x00, 0x00, //0x000018bf jne LBB0_372 + //0x000018c5 LBB0_54 + 0x48, 0x85, 0xd2, //0x000018c5 testq %rdx, %rdx + 0x0f, 0x84, 0xe6, 0x08, 0x00, 0x00, //0x000018c8 je LBB0_373 + //0x000018ce LBB0_55 + 0x48, 0x0f, 0xbc, 0xc2, //0x000018ce bsfq %rdx, %rax + 0xe9, 0xae, 0xec, 0xff, 0xff, //0x000018d2 jmp LBB0_59 + //0x000018d7 LBB0_113 + 0x4d, 0x89, 0xc3, //0x000018d7 movq %r8, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x000018da movq $-72(%rbp), %rax + 0x4d, 0x89, 0xd5, //0x000018de movq %r10, %r13 + 0x48, 0x83, 0xf8, 0x20, //0x000018e1 cmpq $32, %rax + 0x0f, 0x82, 0x0c, 0x07, 0x00, 0x00, //0x000018e5 jb LBB0_357 + //0x000018eb LBB0_114 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x000018eb movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x000018f0 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x000018f6 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000018fa pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x000018fe pmovmskb %xmm5, %r8d + 0x66, 0x0f, 0x6f, 0xec, //0x00001903 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001907 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x0000190b pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xeb, //0x0000190f movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001913 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001917 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x0000191b movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x0000191f pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001923 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001927 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x0000192b pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x0000192f pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001934 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001938 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x0000193d movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001941 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001945 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000194a pand %xmm3, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x0000194e pmovmskb %xmm4, %r10d + 0x48, 0xc1, 0xe6, 0x10, //0x00001953 shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001957 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x0000195b orq %rcx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000195e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001962 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x00001968 testq %rdx, %rdx + 0x0f, 0x85, 0xd1, 0x08, 0x00, 0x00, //0x0000196b jne LBB0_382 + //0x00001971 LBB0_116 + 0x49, 0xc1, 0xe2, 0x10, //0x00001971 shlq $16, %r10 + 0x4c, 0x09, 0xc6, //0x00001975 orq %r8, %rsi + 0x48, 0x89, 0xd1, //0x00001978 movq %rdx, %rcx + 0x48, 0x09, 0xd9, //0x0000197b orq %rbx, %rcx + 0x0f, 0x85, 0x9b, 0x07, 0x00, 0x00, //0x0000197e jne LBB0_370 + //0x00001984 LBB0_117 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001984 movq $-64(%rbp), %rdi + 0x4d, 0x09, 0xf2, //0x00001988 orq %r14, %r10 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000198b movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001990 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001995 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001998 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000199e bsfq %rsi, %rdx + //0x000019a2 LBB0_119 + 0x4d, 0x85, 0xd2, //0x000019a2 testq %r10, %r10 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019a5 je LBB0_121 + 0x49, 0x0f, 0xbc, 0xca, //0x000019ab bsfq %r10, %rcx + //0x000019af LBB0_121 + 0x48, 0x85, 0xf6, //0x000019af testq %rsi, %rsi + 0x0f, 0x84, 0xe0, 0x01, 0x00, 0x00, //0x000019b2 je LBB0_313 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000019b8 subq $-48(%rbp), %r11 + 0x48, 0x39, 0xd1, //0x000019bc cmpq %rdx, %rcx + 0x0f, 0x82, 0x22, 0x0e, 0x00, 0x00, //0x000019bf jb LBB0_149 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x000019c5 leaq $1(%r11,%rdx), %r11 + 0x4d, 0x89, 0xea, //0x000019ca movq %r13, %r10 + 0xe9, 0xc0, 0xf5, 0xff, 0xff, //0x000019cd jmp LBB0_188 + //0x000019d2 LBB0_310 + 0x48, 0x85, 0xc0, //0x000019d2 testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x000019d5 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x000019d9 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x000019dc cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x000019e0 cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x000019e3 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x000019e7 movq %rdi, %r11 + 0xe9, 0x3c, 0x03, 0x00, 0x00, //0x000019ea jmp LBB0_340 + //0x000019ef LBB0_311 + 0x48, 0xf7, 0xd0, //0x000019ef notq %rax + 0x49, 0x89, 0xc3, //0x000019f2 movq %rax, %r11 + 0xe9, 0xf4, 0x02, 0x00, 0x00, //0x000019f5 jmp LBB0_334 + //0x000019fa LBB0_312 + 0x49, 0x89, 0xc3, //0x000019fa movq %rax, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000019fd movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00001a04 testq %r12, %r12 + 0x48, 0x8b, 0x75, 0xc8, //0x00001a07 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0xad, 0xf2, 0xff, 0xff, //0x00001a0b jne LBB0_153 + 0xe9, 0xce, 0x0b, 0x00, 0x00, //0x00001a11 jmp LBB0_424 + //0x00001a16 LBB0_136 + 0x4c, 0x8b, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x00001a16 movq $-144(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb0, //0x00001a1d movq $-80(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001a21 cmpq $32, %r13 + 0x0f, 0x82, 0xf9, 0x08, 0x00, 0x00, //0x00001a25 jb LBB0_389 + //0x00001a2b LBB0_137 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001a2b movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001a30 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001a36 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a3a pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001a3e pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x00001a42 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a46 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001a4a pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001a4e pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001a52 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001a56 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001a5a pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001a5e shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001a62 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001a66 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001a69 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001a6d jne LBB0_139 + 0x48, 0x85, 0xc9, //0x00001a73 testq %rcx, %rcx + 0x0f, 0x85, 0x47, 0x08, 0x00, 0x00, //0x00001a76 jne LBB0_386 + //0x00001a7c LBB0_139 + 0x48, 0x09, 0xfa, //0x00001a7c orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x00001a7f movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001a82 orq %r9, %rax + 0x0f, 0x85, 0x55, 0x08, 0x00, 0x00, //0x00001a85 jne LBB0_387 + //0x00001a8b LBB0_140 + 0x48, 0x85, 0xd2, //0x00001a8b testq %rdx, %rdx + 0x0f, 0x84, 0x88, 0x08, 0x00, 0x00, //0x00001a8e je LBB0_388 + //0x00001a94 LBB0_141 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001a94 bsfq %rdx, %rax + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00001a98 jmp LBB0_145 + //0x00001a9d LBB0_170 + 0x4d, 0x89, 0xe3, //0x00001a9d movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xb0, //0x00001aa0 movq $-80(%rbp), %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001aa4 cmpq $32, %rax + 0x0f, 0x82, 0xc7, 0x05, 0x00, 0x00, //0x00001aa8 jb LBB0_364 + //0x00001aae LBB0_171 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001aae movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001ab3 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001ab9 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001abd pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xcd, //0x00001ac1 pmovmskb %xmm5, %r9d + 0x66, 0x0f, 0x6f, 0xec, //0x00001ac6 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001aca pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00001ace pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xeb, //0x00001ad2 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001ad6 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001ada pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001ade movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001ae2 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001ae6 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001aea movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001aee pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001af2 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001af7 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001afb pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001b00 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001b04 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001b08 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001b0d pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00001b11 pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x00001b15 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00001b19 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x00001b1d orq %rcx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001b20 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001b24 jne LBB0_173 + 0x48, 0x85, 0xd2, //0x00001b2a testq %rdx, %rdx + 0x0f, 0x85, 0x7e, 0x08, 0x00, 0x00, //0x00001b2d jne LBB0_397 + //0x00001b33 LBB0_173 + 0x48, 0xc1, 0xe7, 0x10, //0x00001b33 shlq $16, %rdi + 0x4c, 0x09, 0xcb, //0x00001b37 orq %r9, %rbx + 0x48, 0x89, 0xd1, //0x00001b3a movq %rdx, %rcx + 0x4c, 0x09, 0xd1, //0x00001b3d orq %r10, %rcx + 0x0f, 0x85, 0x0f, 0x07, 0x00, 0x00, //0x00001b40 jne LBB0_383 + //0x00001b46 LBB0_174 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b46 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001b4a movq $-48(%rbp), %r9 + 0x4c, 0x09, 0xf7, //0x00001b4e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001b51 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001b56 movl $64, %edx + 0x48, 0x85, 0xdb, //0x00001b5b testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b5e je LBB0_176 + 0x48, 0x0f, 0xbc, 0xd3, //0x00001b64 bsfq %rbx, %rdx + //0x00001b68 LBB0_176 + 0x48, 0x85, 0xff, //0x00001b68 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b6b je LBB0_178 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001b71 bsfq %rdi, %rcx + //0x00001b75 LBB0_178 + 0x48, 0x85, 0xdb, //0x00001b75 testq %rbx, %rbx + 0x0f, 0x84, 0xcd, 0x00, 0x00, 0x00, //0x00001b78 je LBB0_324 + 0x4d, 0x29, 0xcb, //0x00001b7e subq %r9, %r11 + 0x48, 0x39, 0xd1, //0x00001b81 cmpq %rdx, %rcx + 0x0f, 0x82, 0x6f, 0x0c, 0x00, 0x00, //0x00001b84 jb LBB0_185 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001b8a leaq $1(%r11,%rdx), %r11 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001b8f movq $-72(%rbp), %r10 + 0xe9, 0x65, 0xf4, 0xff, 0xff, //0x00001b93 jmp LBB0_195 + //0x00001b98 LBB0_313 + 0x4d, 0x85, 0xd2, //0x00001b98 testq %r10, %r10 + 0x0f, 0x85, 0x82, 0x0c, 0x00, 0x00, //0x00001b9b jne LBB0_467 + 0x49, 0x83, 0xc3, 0x20, //0x00001ba1 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001ba5 addq $-32, %rax + 0x48, 0x85, 0xdb, //0x00001ba9 testq %rbx, %rbx + 0x0f, 0x85, 0x52, 0x04, 0x00, 0x00, //0x00001bac jne LBB0_358 + //0x00001bb2 LBB0_315 + 0x4d, 0x89, 0xea, //0x00001bb2 movq %r13, %r10 + 0x48, 0x85, 0xc0, //0x00001bb5 testq %rax, %rax + 0x0f, 0x84, 0x08, 0x0a, 0x00, 0x00, //0x00001bb8 je LBB0_420 + //0x00001bbe LBB0_316 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001bbe movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001bc2 cmpb $34, %cl + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00001bc5 je LBB0_323 + 0x80, 0xf9, 0x5c, //0x00001bcb cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001bce je LBB0_320 + 0x80, 0xf9, 0x1f, //0x00001bd4 cmpb $31, %cl + 0x0f, 0x86, 0x4f, 0x0c, 0x00, 0x00, //0x00001bd7 jbe LBB0_468 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001bdd movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001be4 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001be9 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001bec addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001bef jne LBB0_316 + 0xe9, 0xcc, 0x09, 0x00, 0x00, //0x00001bf5 jmp LBB0_420 + //0x00001bfa LBB0_320 + 0x48, 0x83, 0xf8, 0x01, //0x00001bfa cmpq $1, %rax + 0x0f, 0x84, 0x5d, 0x0c, 0x00, 0x00, //0x00001bfe je LBB0_473 + 0x4c, 0x89, 0xd9, //0x00001c04 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001c07 subq $-48(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001c0b cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001c0f cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001c13 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001c1a movl $2, %edx + 0x48, 0x8b, 0x7d, 0xc0, //0x00001c1f movq $-64(%rbp), %rdi + 0x4d, 0x89, 0xea, //0x00001c23 movq %r13, %r10 + 0x49, 0x01, 0xd3, //0x00001c26 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001c29 addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001c2c jne LBB0_316 + 0xe9, 0x8f, 0x09, 0x00, 0x00, //0x00001c32 jmp LBB0_420 + //0x00001c37 LBB0_322 + 0x48, 0xf7, 0xd6, //0x00001c37 notq %rsi + 0x49, 0x89, 0xf3, //0x00001c3a movq %rsi, %r11 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00001c3d jmp LBB0_334 + //0x00001c42 LBB0_323 + 0x4c, 0x03, 0x5d, 0xa0, //0x00001c42 addq $-96(%rbp), %r11 + 0xe9, 0x47, 0xf3, 0xff, 0xff, //0x00001c46 jmp LBB0_188 + //0x00001c4b LBB0_324 + 0x48, 0x85, 0xff, //0x00001c4b testq %rdi, %rdi + 0x0f, 0x85, 0xe9, 0x0b, 0x00, 0x00, //0x00001c4e jne LBB0_470 + 0x49, 0x83, 0xc3, 0x20, //0x00001c54 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001c58 addq $-32, %rax + 0x4d, 0x85, 0xd2, //0x00001c5c testq %r10, %r10 + 0x0f, 0x85, 0x21, 0x04, 0x00, 0x00, //0x00001c5f jne LBB0_365 + //0x00001c65 LBB0_326 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001c65 movq $-72(%rbp), %r10 + 0x48, 0x85, 0xc0, //0x00001c69 testq %rax, %rax + 0x0f, 0x84, 0x9b, 0x09, 0x00, 0x00, //0x00001c6c je LBB0_429 + //0x00001c72 LBB0_327 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001c72 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001c76 cmpb $34, %cl + 0x0f, 0x84, 0xd0, 0x00, 0x00, 0x00, //0x00001c79 je LBB0_342 + 0x80, 0xf9, 0x5c, //0x00001c7f cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001c82 je LBB0_331 + 0x80, 0xf9, 0x1f, //0x00001c88 cmpb $31, %cl + 0x0f, 0x86, 0xa4, 0x0b, 0x00, 0x00, //0x00001c8b jbe LBB0_469 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001c91 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001c98 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001c9d addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001ca0 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001ca3 jne LBB0_327 + 0xe9, 0x5f, 0x09, 0x00, 0x00, //0x00001ca9 jmp LBB0_429 + //0x00001cae LBB0_331 + 0x48, 0x83, 0xf8, 0x01, //0x00001cae cmpq $1, %rax + 0x0f, 0x84, 0xb1, 0x0b, 0x00, 0x00, //0x00001cb2 je LBB0_475 + 0x4c, 0x89, 0xd9, //0x00001cb8 movq %r11, %rcx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001cbb movq $-48(%rbp), %r9 + 0x4c, 0x29, 0xc9, //0x00001cbf subq %r9, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001cc2 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001cc6 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001cca movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001cd1 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001cd6 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001cda addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001cdd addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001ce0 jne LBB0_327 + 0xe9, 0x22, 0x09, 0x00, 0x00, //0x00001ce6 jmp LBB0_429 + //0x00001ceb LBB0_333 + 0x49, 0xf7, 0xdb, //0x00001ceb negq %r11 + //0x00001cee LBB0_334 + 0x48, 0x8b, 0x75, 0xc8, //0x00001cee movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001cf2 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00001cf6 testq %r11, %r11 + 0x0f, 0x88, 0xe2, 0x08, 0x00, 0x00, //0x00001cf9 js LBB0_423 + //0x00001cff LBB0_335 + 0x4d, 0x01, 0xfb, //0x00001cff addq %r15, %r11 + //0x00001d02 LBB0_336 + 0x4c, 0x89, 0x1e, //0x00001d02 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001d05 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00001d08 testq %r15, %r15 + 0x0f, 0x89, 0x83, 0xe4, 0xff, 0xff, //0x00001d0b jns LBB0_4 + 0xe9, 0xde, 0x08, 0x00, 0x00, //0x00001d11 jmp LBB0_427 + //0x00001d16 LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001d16 subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001d19 bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001d1d addq %r13, %r11 + //0x00001d20 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001d20 notq %r11 + //0x00001d23 LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001d23 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001d27 movq $-48(%rbp), %r9 + //0x00001d2b LBB0_340 + 0x4d, 0x85, 0xdb, //0x00001d2b testq %r11, %r11 + 0x0f, 0x88, 0x3b, 0x09, 0x00, 0x00, //0x00001d2e js LBB0_438 + //0x00001d34 LBB0_341 + 0x48, 0x8b, 0x4d, 0xc0, //0x00001d34 movq $-64(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x00001d38 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x00001d3b movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001d3e movq %r15, %rax + 0x48, 0x85, 0xc9, //0x00001d41 testq %rcx, %rcx + 0x0f, 0x8f, 0x4a, 0xe4, 0xff, 0xff, //0x00001d44 jg LBB0_4 + 0xe9, 0xa5, 0x08, 0x00, 0x00, //0x00001d4a jmp LBB0_427 + //0x00001d4f LBB0_342 + 0x4c, 0x03, 0x5d, 0xa0, //0x00001d4f addq $-96(%rbp), %r11 + 0xe9, 0xa5, 0xf2, 0xff, 0xff, //0x00001d53 jmp LBB0_195 + //0x00001d58 LBB0_208 + 0x4d, 0x89, 0xe3, //0x00001d58 movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb0, //0x00001d5b movq $-80(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001d5f cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001d63 movq $-72(%rbp), %rdi + 0x0f, 0x82, 0x2c, 0x07, 0x00, 0x00, //0x00001d67 jb LBB0_404 + //0x00001d6d LBB0_209 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001d6d movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001d72 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001d78 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d7c pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001d80 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xec, //0x00001d84 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d88 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001d8c pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001d90 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001d94 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001d98 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001d9c pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001da0 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001da4 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001da8 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001dab cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001daf jne LBB0_211 + 0x48, 0x85, 0xc9, //0x00001db5 testq %rcx, %rcx + 0x0f, 0x85, 0x75, 0x06, 0x00, 0x00, //0x00001db8 jne LBB0_401 + //0x00001dbe LBB0_211 + 0x48, 0x09, 0xf2, //0x00001dbe orq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x00001dc1 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001dc4 orq %r9, %rax + 0x0f, 0x85, 0x83, 0x06, 0x00, 0x00, //0x00001dc7 jne LBB0_402 + //0x00001dcd LBB0_212 + 0x48, 0x85, 0xd2, //0x00001dcd testq %rdx, %rdx + 0x0f, 0x84, 0xbb, 0x06, 0x00, 0x00, //0x00001dd0 je LBB0_403 + //0x00001dd6 LBB0_213 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001dd6 bsfq %rdx, %rax + 0x4c, 0x03, 0x5d, 0xa0, //0x00001dda addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00001dde addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00001de1 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001de5 movq $-48(%rbp), %r9 + 0xe9, 0x11, 0xfa, 0xff, 0xff, //0x00001de9 jmp LBB0_304 + //0x00001dee LBB0_275 + 0x4d, 0x89, 0xe3, //0x00001dee movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb0, //0x00001df1 movq $-80(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001df5 cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001df9 movq $-72(%rbp), %rdi + 0x0f, 0x82, 0x32, 0x01, 0x00, 0x00, //0x00001dfd jb LBB0_347 + //0x00001e03 LBB0_276 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001e03 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001e08 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001e0e movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001e12 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001e16 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e1a movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001e1e pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001e22 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xeb, //0x00001e26 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e2a pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001e2e pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e32 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e36 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xc5, //0x00001e3a pmovmskb %xmm5, %eax + 0x66, 0x0f, 0x6f, 0xea, //0x00001e3e movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001e42 pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001e46 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001e4b pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001e4f pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001e54 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001e58 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001e5c pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001e61 pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x00001e65 pmovmskb %xmm4, %ebx + 0x48, 0xc1, 0xe6, 0x10, //0x00001e69 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00001e6d shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001e71 orq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001e74 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001e78 jne LBB0_278 + 0x48, 0x85, 0xd2, //0x00001e7e testq %rdx, %rdx + 0x0f, 0x85, 0x9f, 0x06, 0x00, 0x00, //0x00001e81 jne LBB0_412 + //0x00001e87 LBB0_278 + 0x48, 0xc1, 0xe3, 0x10, //0x00001e87 shlq $16, %rbx + 0x48, 0x09, 0xce, //0x00001e8b orq %rcx, %rsi + 0x48, 0x89, 0xd0, //0x00001e8e movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001e91 orq %r9, %rax + 0x0f, 0x85, 0x5e, 0x05, 0x00, 0x00, //0x00001e94 jne LBB0_400 + //0x00001e9a LBB0_279 + 0x4c, 0x09, 0xf3, //0x00001e9a orq %r14, %rbx + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001e9d movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001ea2 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001ea7 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001eaa je LBB0_281 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001eb0 bsfq %rsi, %rdx + //0x00001eb4 LBB0_281 + 0x48, 0x85, 0xdb, //0x00001eb4 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001eb7 je LBB0_283 + 0x48, 0x0f, 0xbc, 0xcb, //0x00001ebd bsfq %rbx, %rcx + //0x00001ec1 LBB0_283 + 0x48, 0x85, 0xf6, //0x00001ec1 testq %rsi, %rsi + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00001ec4 je LBB0_345 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001eca movq $-48(%rbp), %r9 + 0x4d, 0x29, 0xcb, //0x00001ece subq %r9, %r11 + 0x48, 0x39, 0xd1, //0x00001ed1 cmpq %rdx, %rcx + 0x0f, 0x82, 0x6c, 0x09, 0x00, 0x00, //0x00001ed4 jb LBB0_471 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001eda leaq $1(%r11,%rdx), %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00001edf movq $-56(%rbp), %rsi + 0xe9, 0x17, 0xf9, 0xff, 0xff, //0x00001ee3 jmp LBB0_304 + //0x00001ee8 LBB0_343 + 0x49, 0x89, 0xc8, //0x00001ee8 movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001eeb movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001ef2 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001ef5 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x7e, 0xf8, 0xff, 0xff, //0x00001ef9 jne LBB0_292 + 0xe9, 0x6b, 0x07, 0x00, 0x00, //0x00001eff jmp LBB0_438 + //0x00001f04 LBB0_344 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001f04 movq $-1, %r13 + 0x4d, 0x89, 0xd3, //0x00001f0b movq %r10, %r11 + 0x49, 0x89, 0xf9, //0x00001f0e movq %rdi, %r9 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001f11 movq $-1, %r12 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001f18 movq $-1, %rdi + 0xe9, 0xcc, 0xe8, 0xff, 0xff, //0x00001f1f jmp LBB0_92 + //0x00001f24 LBB0_345 + 0x48, 0x85, 0xdb, //0x00001f24 testq %rbx, %rbx + 0x0f, 0x85, 0x2b, 0x09, 0x00, 0x00, //0x00001f27 jne LBB0_472 + 0x49, 0x83, 0xc3, 0x20, //0x00001f2d addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00001f31 addq $-32, %r10 + //0x00001f35 LBB0_347 + 0x4d, 0x85, 0xc9, //0x00001f35 testq %r9, %r9 + 0x0f, 0x85, 0x2f, 0x06, 0x00, 0x00, //0x00001f38 jne LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00001f3e movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001f42 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x00001f46 testq %r10, %r10 + 0x0f, 0x84, 0x32, 0x07, 0x00, 0x00, //0x00001f49 je LBB0_442 + //0x00001f4f LBB0_349 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001f4f movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001f53 cmpb $34, %cl + 0x0f, 0x84, 0xdb, 0x00, 0x00, 0x00, //0x00001f56 je LBB0_360 + 0x80, 0xf9, 0x5c, //0x00001f5c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001f5f je LBB0_353 + 0x80, 0xf9, 0x1f, //0x00001f65 cmpb $31, %cl + 0x0f, 0x86, 0xc7, 0x08, 0x00, 0x00, //0x00001f68 jbe LBB0_469 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001f6e movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001f75 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001f7a addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001f7d addq %rcx, %r10 + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001f80 jne LBB0_349 + 0xe9, 0xf6, 0x06, 0x00, 0x00, //0x00001f86 jmp LBB0_442 + //0x00001f8b LBB0_353 + 0x49, 0x83, 0xfa, 0x01, //0x00001f8b cmpq $1, %r10 + 0x0f, 0x84, 0xea, 0x08, 0x00, 0x00, //0x00001f8f je LBB0_476 + 0x4c, 0x89, 0xd8, //0x00001f95 movq %r11, %rax + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001f98 movq $-48(%rbp), %r9 + 0x4c, 0x29, 0xc8, //0x00001f9c subq %r9, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00001f9f cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00001fa3 cmoveq %rax, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001fa7 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001fae movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001fb3 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001fb7 addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001fba addq %rcx, %r10 + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001fbd jne LBB0_349 + 0xe9, 0xb9, 0x06, 0x00, 0x00, //0x00001fc3 jmp LBB0_442 + //0x00001fc8 LBB0_355 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001fc8 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001fcf xorl %r8d, %r8d + 0x49, 0x83, 0xfd, 0x20, //0x00001fd2 cmpq $32, %r13 + 0x0f, 0x83, 0x89, 0xf8, 0xff, 0xff, //0x00001fd6 jae LBB0_51 + 0xe9, 0xdb, 0x01, 0x00, 0x00, //0x00001fdc jmp LBB0_374 + //0x00001fe1 LBB0_356 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001fe1 movq $-1, %r9 + 0x31, 0xdb, //0x00001fe8 xorl %ebx, %ebx + 0x4d, 0x89, 0xd5, //0x00001fea movq %r10, %r13 + 0x48, 0x83, 0xf8, 0x20, //0x00001fed cmpq $32, %rax + 0x0f, 0x83, 0xf4, 0xf8, 0xff, 0xff, //0x00001ff1 jae LBB0_114 + //0x00001ff7 LBB0_357 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001ff7 movq $-64(%rbp), %rdi + 0x48, 0x85, 0xdb, //0x00001ffb testq %rbx, %rbx + 0x0f, 0x84, 0xae, 0xfb, 0xff, 0xff, //0x00001ffe je LBB0_315 + //0x00002004 LBB0_358 + 0x48, 0x85, 0xc0, //0x00002004 testq %rax, %rax + 0x0f, 0x84, 0x54, 0x08, 0x00, 0x00, //0x00002007 je LBB0_473 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000200d movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002011 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002014 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002018 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x0000201c incq %r11 + 0x48, 0xff, 0xc8, //0x0000201f decq %rax + 0x48, 0x8b, 0x7d, 0xc0, //0x00002022 movq $-64(%rbp), %rdi + 0x4d, 0x89, 0xea, //0x00002026 movq %r13, %r10 + 0x48, 0x85, 0xc0, //0x00002029 testq %rax, %rax + 0x0f, 0x85, 0x8c, 0xfb, 0xff, 0xff, //0x0000202c jne LBB0_316 + 0xe9, 0x8f, 0x05, 0x00, 0x00, //0x00002032 jmp LBB0_420 + //0x00002037 LBB0_360 + 0x4c, 0x03, 0x5d, 0xa0, //0x00002037 addq $-96(%rbp), %r11 + 0xe9, 0xbf, 0xf7, 0xff, 0xff, //0x0000203b jmp LBB0_304 + //0x00002040 LBB0_361 + 0x49, 0xf7, 0xdb, //0x00002040 negq %r11 + 0xe9, 0xdb, 0xfc, 0xff, 0xff, //0x00002043 jmp LBB0_339 + //0x00002048 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002048 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x0000204f xorl %r9d, %r9d + 0x49, 0x83, 0xfd, 0x20, //0x00002052 cmpq $32, %r13 + 0x0f, 0x83, 0xcf, 0xf9, 0xff, 0xff, //0x00002056 jae LBB0_137 + 0xe9, 0xc3, 0x02, 0x00, 0x00, //0x0000205c jmp LBB0_389 + //0x00002061 LBB0_363 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002061 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00002068 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x20, //0x0000206b cmpq $32, %rax + 0x0f, 0x83, 0x39, 0xfa, 0xff, 0xff, //0x0000206f jae LBB0_171 + //0x00002075 LBB0_364 + 0x48, 0x8b, 0x75, 0xc8, //0x00002075 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002079 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000207d testq %r10, %r10 + 0x0f, 0x84, 0xdf, 0xfb, 0xff, 0xff, //0x00002080 je LBB0_326 + //0x00002086 LBB0_365 + 0x48, 0x85, 0xc0, //0x00002086 testq %rax, %rax + 0x0f, 0x84, 0xe3, 0x07, 0x00, 0x00, //0x00002089 je LBB0_474 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000208f movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002093 addq %r11, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002096 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x0000209a cmoveq %rcx, %r8 + 0x49, 0xff, 0xc3, //0x0000209e incq %r11 + 0x48, 0xff, 0xc8, //0x000020a1 decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x000020a4 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000020a8 movq $-48(%rbp), %r9 + 0x4c, 0x8b, 0x55, 0xb8, //0x000020ac movq $-72(%rbp), %r10 + 0x48, 0x85, 0xc0, //0x000020b0 testq %rax, %rax + 0x0f, 0x85, 0xb9, 0xfb, 0xff, 0xff, //0x000020b3 jne LBB0_327 + 0xe9, 0x4f, 0x05, 0x00, 0x00, //0x000020b9 jmp LBB0_429 + //0x000020be LBB0_367 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000020be movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x000020c5 movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x000020c8 movq %r10, %r9 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000020cb movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000020d2 movq $-1, %rbx + 0x48, 0x8d, 0x35, 0xb0, 0x09, 0x00, 0x00, //0x000020d9 leaq $2480(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0xf6, 0xf2, 0xff, 0xff, //0x000020e0 jmp LBB0_241 + //0x000020e5 LBB0_368 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000020e5 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x000020ec xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x000020ef cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x000020f3 movq $-72(%rbp), %rdi + 0x0f, 0x83, 0x70, 0xfc, 0xff, 0xff, //0x000020f7 jae LBB0_209 + 0xe9, 0x97, 0x03, 0x00, 0x00, //0x000020fd jmp LBB0_404 + //0x00002102 LBB0_369 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002102 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00002109 xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x0000210c cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00002110 movq $-72(%rbp), %rdi + 0x0f, 0x83, 0xe9, 0xfc, 0xff, 0xff, //0x00002114 jae LBB0_276 + 0xe9, 0x16, 0xfe, 0xff, 0xff, //0x0000211a jmp LBB0_347 + //0x0000211f LBB0_370 + 0x41, 0x89, 0xdc, //0x0000211f movl %ebx, %r12d + 0x41, 0xf7, 0xd4, //0x00002122 notl %r12d + 0x41, 0x21, 0xd4, //0x00002125 andl %edx, %r12d + 0x47, 0x8d, 0x04, 0x24, //0x00002128 leal (%r12,%r12), %r8d + 0x41, 0x09, 0xd8, //0x0000212c orl %ebx, %r8d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000212f movl $2863311530, %ecx + 0x44, 0x31, 0xc1, //0x00002134 xorl %r8d, %ecx + 0x21, 0xd1, //0x00002137 andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002139 andl $-1431655766, %ecx + 0x31, 0xdb, //0x0000213f xorl %ebx, %ebx + 0x44, 0x01, 0xe1, //0x00002141 addl %r12d, %ecx + 0x0f, 0x92, 0xc3, //0x00002144 setb %bl + 0x01, 0xc9, //0x00002147 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002149 xorl $1431655765, %ecx + 0x44, 0x21, 0xc1, //0x0000214f andl %r8d, %ecx + 0xf7, 0xd1, //0x00002152 notl %ecx + 0x21, 0xce, //0x00002154 andl %ecx, %esi + 0xe9, 0x29, 0xf8, 0xff, 0xff, //0x00002156 jmp LBB0_117 + //0x0000215b LBB0_371 + 0x4c, 0x89, 0xd8, //0x0000215b movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x0000215e subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc9, //0x00002162 bsfq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00002166 addq %rax, %r9 + 0x48, 0x09, 0xfa, //0x00002169 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x0000216c movq %rcx, %rax + 0x4c, 0x09, 0xc0, //0x0000216f orq %r8, %rax + 0x0f, 0x84, 0x4d, 0xf7, 0xff, 0xff, //0x00002172 je LBB0_54 + //0x00002178 LBB0_372 + 0x44, 0x89, 0xc0, //0x00002178 movl %r8d, %eax + 0xf7, 0xd0, //0x0000217b notl %eax + 0x21, 0xc8, //0x0000217d andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x0000217f leal (%rax,%rax), %esi + 0x44, 0x09, 0xc6, //0x00002182 orl %r8d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002185 movl $2863311530, %edi + 0x31, 0xf7, //0x0000218a xorl %esi, %edi + 0x21, 0xcf, //0x0000218c andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000218e andl $-1431655766, %edi + 0x45, 0x31, 0xc0, //0x00002194 xorl %r8d, %r8d + 0x01, 0xc7, //0x00002197 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc0, //0x00002199 setb %r8b + 0x01, 0xff, //0x0000219d addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000219f xorl $1431655765, %edi + 0x21, 0xf7, //0x000021a5 andl %esi, %edi + 0xf7, 0xd7, //0x000021a7 notl %edi + 0x21, 0xfa, //0x000021a9 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x000021ab testq %rdx, %rdx + 0x0f, 0x85, 0x1a, 0xf7, 0xff, 0xff, //0x000021ae jne LBB0_55 + //0x000021b4 LBB0_373 + 0x49, 0x83, 0xc3, 0x20, //0x000021b4 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x000021b8 addq $-32, %r13 + //0x000021bc LBB0_374 + 0x4d, 0x85, 0xc0, //0x000021bc testq %r8, %r8 + 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x000021bf jne LBB0_384 + 0x48, 0x8b, 0x7d, 0xc0, //0x000021c5 movq $-64(%rbp), %rdi + 0x4d, 0x85, 0xed, //0x000021c9 testq %r13, %r13 + 0x0f, 0x84, 0xf4, 0x03, 0x00, 0x00, //0x000021cc je LBB0_420 + //0x000021d2 LBB0_376 + 0x49, 0x8d, 0x4b, 0x01, //0x000021d2 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000021d6 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000021da cmpb $34, %bl + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x000021dd je LBB0_381 + 0x49, 0x8d, 0x55, 0xff, //0x000021e3 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x000021e7 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000021ea je LBB0_379 + 0x49, 0x89, 0xd5, //0x000021f0 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x000021f3 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000021f6 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000021f9 jne LBB0_376 + 0xe9, 0xc2, 0x03, 0x00, 0x00, //0x000021ff jmp LBB0_420 + //0x00002204 LBB0_379 + 0x48, 0x85, 0xd2, //0x00002204 testq %rdx, %rdx + 0x0f, 0x84, 0xb9, 0x03, 0x00, 0x00, //0x00002207 je LBB0_420 + 0x48, 0x03, 0x4d, 0xa8, //0x0000220d addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002211 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002215 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00002219 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x0000221d addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002221 movq %r13, %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00002224 movq $-64(%rbp), %rdi + 0x48, 0x85, 0xd2, //0x00002228 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x0000222b jne LBB0_376 + 0xe9, 0x90, 0x03, 0x00, 0x00, //0x00002231 jmp LBB0_420 + //0x00002236 LBB0_381 + 0x48, 0x2b, 0x4d, 0xd0, //0x00002236 subq $-48(%rbp), %rcx + 0x49, 0x89, 0xcb, //0x0000223a movq %rcx, %r11 + 0xe9, 0x50, 0xed, 0xff, 0xff, //0x0000223d jmp LBB0_188 + //0x00002242 LBB0_382 + 0x4c, 0x89, 0xd9, //0x00002242 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00002245 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002249 bsfq %rdx, %r9 + 0x49, 0x01, 0xc9, //0x0000224d addq %rcx, %r9 + 0xe9, 0x1c, 0xf7, 0xff, 0xff, //0x00002250 jmp LBB0_116 + //0x00002255 LBB0_383 + 0x45, 0x89, 0xd4, //0x00002255 movl %r10d, %r12d + 0x41, 0xf7, 0xd4, //0x00002258 notl %r12d + 0x41, 0x21, 0xd4, //0x0000225b andl %edx, %r12d + 0x47, 0x8d, 0x0c, 0x24, //0x0000225e leal (%r12,%r12), %r9d + 0x45, 0x09, 0xd1, //0x00002262 orl %r10d, %r9d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002265 movl $2863311530, %ecx + 0x44, 0x31, 0xc9, //0x0000226a xorl %r9d, %ecx + 0x21, 0xd1, //0x0000226d andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000226f andl $-1431655766, %ecx + 0x45, 0x31, 0xd2, //0x00002275 xorl %r10d, %r10d + 0x44, 0x01, 0xe1, //0x00002278 addl %r12d, %ecx + 0x41, 0x0f, 0x92, 0xc2, //0x0000227b setb %r10b + 0x01, 0xc9, //0x0000227f addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002281 xorl $1431655765, %ecx + 0x44, 0x21, 0xc9, //0x00002287 andl %r9d, %ecx + 0xf7, 0xd1, //0x0000228a notl %ecx + 0x21, 0xcb, //0x0000228c andl %ecx, %ebx + 0xe9, 0xb3, 0xf8, 0xff, 0xff, //0x0000228e jmp LBB0_174 + //0x00002293 LBB0_384 + 0x4d, 0x85, 0xed, //0x00002293 testq %r13, %r13 + 0x0f, 0x84, 0x2a, 0x03, 0x00, 0x00, //0x00002296 je LBB0_420 + 0x48, 0x8b, 0x45, 0xa8, //0x0000229c movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000022a0 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x000022a3 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x000022a7 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x000022ab incq %r11 + 0x49, 0xff, 0xcd, //0x000022ae decq %r13 + 0x48, 0x8b, 0x7d, 0xc0, //0x000022b1 movq $-64(%rbp), %rdi + 0x4d, 0x85, 0xed, //0x000022b5 testq %r13, %r13 + 0x0f, 0x85, 0x14, 0xff, 0xff, 0xff, //0x000022b8 jne LBB0_376 + 0xe9, 0x03, 0x03, 0x00, 0x00, //0x000022be jmp LBB0_420 + //0x000022c3 LBB0_386 + 0x4c, 0x89, 0xd8, //0x000022c3 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000022c6 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x000022ca bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x000022ce addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x000022d1 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000022d4 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x000022d7 orq %r9, %rax + 0x0f, 0x84, 0xab, 0xf7, 0xff, 0xff, //0x000022da je LBB0_140 + //0x000022e0 LBB0_387 + 0x44, 0x89, 0xc8, //0x000022e0 movl %r9d, %eax + 0xf7, 0xd0, //0x000022e3 notl %eax + 0x21, 0xc8, //0x000022e5 andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x000022e7 leal (%rax,%rax), %esi + 0x44, 0x09, 0xce, //0x000022ea orl %r9d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022ed movl $2863311530, %edi + 0x31, 0xf7, //0x000022f2 xorl %esi, %edi + 0x21, 0xcf, //0x000022f4 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022f6 andl $-1431655766, %edi + 0x45, 0x31, 0xc9, //0x000022fc xorl %r9d, %r9d + 0x01, 0xc7, //0x000022ff addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc1, //0x00002301 setb %r9b + 0x01, 0xff, //0x00002305 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002307 xorl $1431655765, %edi + 0x21, 0xf7, //0x0000230d andl %esi, %edi + 0xf7, 0xd7, //0x0000230f notl %edi + 0x21, 0xfa, //0x00002311 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x00002313 testq %rdx, %rdx + 0x0f, 0x85, 0x78, 0xf7, 0xff, 0xff, //0x00002316 jne LBB0_141 + //0x0000231c LBB0_388 + 0x49, 0x83, 0xc3, 0x20, //0x0000231c addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00002320 addq $-32, %r13 + //0x00002324 LBB0_389 + 0x4d, 0x85, 0xc9, //0x00002324 testq %r9, %r9 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00002327 jne LBB0_398 + 0x48, 0x8b, 0x75, 0xc8, //0x0000232d movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002331 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x00002335 testq %r13, %r13 + 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00002338 je LBB0_429 + //0x0000233e LBB0_391 + 0x49, 0x8d, 0x4b, 0x01, //0x0000233e leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00002342 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00002346 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002349 je LBB0_396 + 0x49, 0x8d, 0x55, 0xff, //0x0000234f leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00002353 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002356 je LBB0_394 + 0x49, 0x89, 0xd5, //0x0000235c movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x0000235f movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00002362 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00002365 jne LBB0_391 + 0xe9, 0x9d, 0x02, 0x00, 0x00, //0x0000236b jmp LBB0_429 + //0x00002370 LBB0_394 + 0x48, 0x85, 0xd2, //0x00002370 testq %rdx, %rdx + 0x0f, 0x84, 0xf0, 0x04, 0x00, 0x00, //0x00002373 je LBB0_475 + 0x48, 0x03, 0x4d, 0xa8, //0x00002379 addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000237d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002381 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x00002385 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002389 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x0000238d movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00002390 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002394 movq $-48(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x00002398 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x0000239b jne LBB0_391 + 0xe9, 0x67, 0x02, 0x00, 0x00, //0x000023a1 jmp LBB0_429 + //0x000023a6 LBB0_396 + 0x4c, 0x29, 0xc9, //0x000023a6 subq %r9, %rcx + 0x49, 0x89, 0xcb, //0x000023a9 movq %rcx, %r11 + 0xe9, 0x4c, 0xec, 0xff, 0xff, //0x000023ac jmp LBB0_195 + //0x000023b1 LBB0_397 + 0x4c, 0x89, 0xd9, //0x000023b1 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x000023b4 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc2, //0x000023b8 bsfq %rdx, %r8 + 0x49, 0x01, 0xc8, //0x000023bc addq %rcx, %r8 + 0xe9, 0x6f, 0xf7, 0xff, 0xff, //0x000023bf jmp LBB0_173 + //0x000023c4 LBB0_398 + 0x4d, 0x85, 0xed, //0x000023c4 testq %r13, %r13 + 0x0f, 0x84, 0x9c, 0x04, 0x00, 0x00, //0x000023c7 je LBB0_475 + 0x48, 0x8b, 0x45, 0xa8, //0x000023cd movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000023d1 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023d4 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023d8 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x000023dc incq %r11 + 0x49, 0xff, 0xcd, //0x000023df decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000023e2 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000023e6 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x000023ea testq %r13, %r13 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x000023ed jne LBB0_391 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x000023f3 jmp LBB0_429 + //0x000023f8 LBB0_400 + 0x44, 0x89, 0xc8, //0x000023f8 movl %r9d, %eax + 0xf7, 0xd0, //0x000023fb notl %eax + 0x21, 0xd0, //0x000023fd andl %edx, %eax + 0x44, 0x8d, 0x24, 0x00, //0x000023ff leal (%rax,%rax), %r12d + 0x45, 0x09, 0xcc, //0x00002403 orl %r9d, %r12d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002406 movl $2863311530, %ecx + 0x44, 0x31, 0xe1, //0x0000240b xorl %r12d, %ecx + 0x21, 0xd1, //0x0000240e andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002410 andl $-1431655766, %ecx + 0x45, 0x31, 0xc9, //0x00002416 xorl %r9d, %r9d + 0x01, 0xc1, //0x00002419 addl %eax, %ecx + 0x41, 0x0f, 0x92, 0xc1, //0x0000241b setb %r9b + 0x01, 0xc9, //0x0000241f addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002421 xorl $1431655765, %ecx + 0x44, 0x21, 0xe1, //0x00002427 andl %r12d, %ecx + 0xf7, 0xd1, //0x0000242a notl %ecx + 0x21, 0xce, //0x0000242c andl %ecx, %esi + 0xe9, 0x67, 0xfa, 0xff, 0xff, //0x0000242e jmp LBB0_279 + //0x00002433 LBB0_401 + 0x4c, 0x89, 0xd8, //0x00002433 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002436 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x0000243a bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x0000243e addq %rax, %r8 + 0x48, 0x09, 0xf2, //0x00002441 orq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x00002444 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00002447 orq %r9, %rax + 0x0f, 0x84, 0x7d, 0xf9, 0xff, 0xff, //0x0000244a je LBB0_212 + //0x00002450 LBB0_402 + 0x44, 0x89, 0xc8, //0x00002450 movl %r9d, %eax + 0xf7, 0xd0, //0x00002453 notl %eax + 0x21, 0xc8, //0x00002455 andl %ecx, %eax + 0x44, 0x8d, 0x34, 0x00, //0x00002457 leal (%rax,%rax), %r14d + 0x45, 0x09, 0xce, //0x0000245b orl %r9d, %r14d + 0x44, 0x89, 0xf6, //0x0000245e movl %r14d, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002461 movl $2863311530, %ebx + 0x31, 0xde, //0x00002466 xorl %ebx, %esi + 0x21, 0xce, //0x00002468 andl %ecx, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000246a andl $-1431655766, %esi + 0x45, 0x31, 0xc9, //0x00002470 xorl %r9d, %r9d + 0x01, 0xc6, //0x00002473 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc1, //0x00002475 setb %r9b + 0x01, 0xf6, //0x00002479 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000247b xorl $1431655765, %esi + 0x44, 0x21, 0xf6, //0x00002481 andl %r14d, %esi + 0xf7, 0xd6, //0x00002484 notl %esi + 0x21, 0xf2, //0x00002486 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00002488 testq %rdx, %rdx + 0x0f, 0x85, 0x45, 0xf9, 0xff, 0xff, //0x0000248b jne LBB0_213 + //0x00002491 LBB0_403 + 0x49, 0x83, 0xc3, 0x20, //0x00002491 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00002495 addq $-32, %r10 + //0x00002499 LBB0_404 + 0x4d, 0x85, 0xc9, //0x00002499 testq %r9, %r9 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x0000249c jne LBB0_413 + 0x48, 0x8b, 0x75, 0xc8, //0x000024a2 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000024a6 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x000024aa testq %r10, %r10 + 0x0f, 0x84, 0xce, 0x01, 0x00, 0x00, //0x000024ad je LBB0_442 + //0x000024b3 LBB0_406 + 0x49, 0x8d, 0x4b, 0x01, //0x000024b3 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000024b7 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000024bb cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x000024be je LBB0_411 + 0x49, 0x8d, 0x52, 0xff, //0x000024c4 leaq $-1(%r10), %rdx + 0x80, 0xfb, 0x5c, //0x000024c8 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000024cb je LBB0_409 + 0x49, 0x89, 0xd2, //0x000024d1 movq %rdx, %r10 + 0x49, 0x89, 0xcb, //0x000024d4 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000024d7 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000024da jne LBB0_406 + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x000024e0 jmp LBB0_442 + //0x000024e5 LBB0_409 + 0x48, 0x85, 0xd2, //0x000024e5 testq %rdx, %rdx + 0x0f, 0x84, 0x91, 0x03, 0x00, 0x00, //0x000024e8 je LBB0_476 + 0x48, 0x03, 0x4d, 0xa8, //0x000024ee addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000024f2 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x000024f6 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x000024fa addq $2, %r11 + 0x49, 0x83, 0xc2, 0xfe, //0x000024fe addq $-2, %r10 + 0x4c, 0x89, 0xd2, //0x00002502 movq %r10, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00002505 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002509 movq $-48(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x0000250d testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00002510 jne LBB0_406 + 0xe9, 0x66, 0x01, 0x00, 0x00, //0x00002516 jmp LBB0_442 + //0x0000251b LBB0_411 + 0x4c, 0x29, 0xc9, //0x0000251b subq %r9, %rcx + 0x49, 0x89, 0xcb, //0x0000251e movq %rcx, %r11 + 0xe9, 0xd9, 0xf2, 0xff, 0xff, //0x00002521 jmp LBB0_304 + //0x00002526 LBB0_412 + 0x4c, 0x89, 0xd8, //0x00002526 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002529 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x0000252d bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00002531 addq %rax, %r8 + 0xe9, 0x4e, 0xf9, 0xff, 0xff, //0x00002534 jmp LBB0_278 + //0x00002539 LBB0_413 + 0x4d, 0x85, 0xd2, //0x00002539 testq %r10, %r10 + 0x0f, 0x84, 0x3d, 0x03, 0x00, 0x00, //0x0000253c je LBB0_476 + 0x48, 0x8b, 0x45, 0xa8, //0x00002542 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002546 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00002549 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x0000254d cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002551 incq %r11 + 0x49, 0xff, 0xca, //0x00002554 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00002557 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x0000255b movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000255f testq %r10, %r10 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x00002562 jne LBB0_406 + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00002568 jmp LBB0_442 + //0x0000256d LBB0_415 + 0x4d, 0x85, 0xd2, //0x0000256d testq %r10, %r10 + 0x0f, 0x84, 0x09, 0x03, 0x00, 0x00, //0x00002570 je LBB0_476 + 0x48, 0x8b, 0x45, 0xa8, //0x00002576 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x0000257a addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000257d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00002581 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002585 incq %r11 + 0x49, 0xff, 0xca, //0x00002588 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x0000258b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x0000258f movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x00002593 testq %r10, %r10 + 0x0f, 0x85, 0xb3, 0xf9, 0xff, 0xff, //0x00002596 jne LBB0_349 + 0xe9, 0xe0, 0x00, 0x00, 0x00, //0x0000259c jmp LBB0_442 + //0x000025a1 LBB0_417 + 0x48, 0x89, 0x16, //0x000025a1 movq %rdx, (%rsi) + //0x000025a4 LBB0_418 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000025a4 movq $-1, %rax + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000025ab jmp LBB0_427 + //0x000025b0 LBB0_439 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x000025b0 movq $-7, %rax + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x000025b7 jmp LBB0_427 + //0x000025bc LBB0_419 + 0x49, 0x83, 0xfb, 0xff, //0x000025bc cmpq $-1, %r11 + 0x0f, 0x85, 0x7d, 0x00, 0x00, 0x00, //0x000025c0 jne LBB0_150 + //0x000025c6 LBB0_420 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000025c6 movq $-1, %r11 + 0x4d, 0x89, 0xd1, //0x000025cd movq %r10, %r9 + 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x000025d0 jmp LBB0_150 + //0x000025d5 LBB0_421 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000025d5 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000025dc jmp LBB0_424 + //0x000025e1 LBB0_423 + 0x4c, 0x89, 0xd8, //0x000025e1 movq %r11, %rax + //0x000025e4 LBB0_424 + 0x48, 0xf7, 0xd0, //0x000025e4 notq %rax + 0x49, 0x01, 0xc7, //0x000025e7 addq %rax, %r15 + //0x000025ea LBB0_425 + 0x4c, 0x89, 0x3e, //0x000025ea movq %r15, (%rsi) + //0x000025ed LBB0_426 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000025ed movq $-2, %rax + //0x000025f4 LBB0_427 + 0x48, 0x83, 0xc4, 0x70, //0x000025f4 addq $112, %rsp + 0x5b, //0x000025f8 popq %rbx + 0x41, 0x5c, //0x000025f9 popq %r12 + 0x41, 0x5d, //0x000025fb popq %r13 + 0x41, 0x5e, //0x000025fd popq %r14 + 0x41, 0x5f, //0x000025ff popq %r15 + 0x5d, //0x00002601 popq %rbp + 0xc3, //0x00002602 retq + //0x00002603 LBB0_428 + 0x49, 0x83, 0xfb, 0xff, //0x00002603 cmpq $-1, %r11 + 0x0f, 0x85, 0xbf, 0x01, 0x00, 0x00, //0x00002607 jne LBB0_461 + //0x0000260d LBB0_429 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000260d movq $-1, %r11 + 0x4d, 0x89, 0xd0, //0x00002614 movq %r10, %r8 + 0xe9, 0xb0, 0x01, 0x00, 0x00, //0x00002617 jmp LBB0_461 + //0x0000261c LBB0_440 + 0x48, 0x89, 0x0e, //0x0000261c movq %rcx, (%rsi) + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x0000261f jmp LBB0_427 + //0x00002624 LBB0_430 + 0x49, 0x83, 0xf9, 0xff, //0x00002624 cmpq $-1, %r9 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002628 jne LBB0_434 + 0x48, 0x0f, 0xbc, 0xc2, //0x0000262e bsfq %rdx, %rax + //0x00002632 LBB0_432 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00002632 subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00002636 addq %rax, %r11 + //0x00002639 LBB0_433 + 0x4d, 0x89, 0xd9, //0x00002639 movq %r11, %r9 + //0x0000263c LBB0_434 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000263c movq $-2, %r11 + //0x00002643 LBB0_150 + 0x48, 0x8b, 0x45, 0xc8, //0x00002643 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002647 movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x0000264a movq %r11, %rax + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x0000264d jmp LBB0_427 + //0x00002652 LBB0_435 + 0x49, 0x83, 0xf8, 0xff, //0x00002652 cmpq $-1, %r8 + 0x0f, 0x84, 0x34, 0x01, 0x00, 0x00, //0x00002656 je LBB0_453 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000265c movq $-2, %r11 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x00002663 jmp LBB0_461 + //0x00002668 LBB0_437 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002668 movq $-1, %r11 + //0x0000266f LBB0_438 + 0x4d, 0x29, 0xdf, //0x0000266f subq %r11, %r15 + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x00002672 jmp LBB0_425 + //0x00002677 LBB0_441 + 0x49, 0x83, 0xfb, 0xff, //0x00002677 cmpq $-1, %r11 + 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x0000267b jne LBB0_461 + //0x00002681 LBB0_442 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002681 movq $-1, %r11 + 0x49, 0x89, 0xf8, //0x00002688 movq %rdi, %r8 + 0xe9, 0x3c, 0x01, 0x00, 0x00, //0x0000268b jmp LBB0_461 + //0x00002690 LBB0_443 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002690 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002697 cmpb $97, %cl + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x0000269a jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x000026a0 leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026a4 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x6c, //0x000026a7 cmpb $108, $2(%r9,%r15) + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x000026ad jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x000026b3 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026b7 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x73, //0x000026ba cmpb $115, $3(%r9,%r15) + 0x0f, 0x85, 0x2e, 0xff, 0xff, 0xff, //0x000026c0 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x04, //0x000026c6 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026ca movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x04, 0x65, //0x000026cd cmpb $101, $4(%r9,%r15) + 0x0f, 0x85, 0x1b, 0xff, 0xff, 0xff, //0x000026d3 jne LBB0_427 + 0x49, 0x83, 0xc7, 0x05, //0x000026d9 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x000026dd movq %r15, (%rsi) + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x000026e0 jmp LBB0_427 + //0x000026e5 LBB0_249 + 0x4c, 0x89, 0x3e, //0x000026e5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000026e8 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x000026ef cmpb $110, (%r10) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x000026f3 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x01, //0x000026f9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026fd movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x01, 0x75, //0x00002700 cmpb $117, $1(%r9,%r15) + 0x0f, 0x85, 0xe8, 0xfe, 0xff, 0xff, //0x00002706 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x0000270c leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002710 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x6c, //0x00002713 cmpb $108, $2(%r9,%r15) + 0x0f, 0x85, 0xd5, 0xfe, 0xff, 0xff, //0x00002719 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x0000271f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002723 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x6c, //0x00002726 cmpb $108, $3(%r9,%r15) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x0000272c jne LBB0_427 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00002732 jmp LBB0_452 + //0x00002737 LBB0_448 + 0x4c, 0x89, 0x3e, //0x00002737 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000273a movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x00002741 cmpb $116, (%r10) + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00002745 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x01, //0x0000274b leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000274f movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x01, 0x72, //0x00002752 cmpb $114, $1(%r9,%r15) + 0x0f, 0x85, 0x96, 0xfe, 0xff, 0xff, //0x00002758 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x0000275e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002762 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x75, //0x00002765 cmpb $117, $2(%r9,%r15) + 0x0f, 0x85, 0x83, 0xfe, 0xff, 0xff, //0x0000276b jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x00002771 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002775 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x65, //0x00002778 cmpb $101, $3(%r9,%r15) + 0x0f, 0x85, 0x70, 0xfe, 0xff, 0xff, //0x0000277e jne LBB0_427 + //0x00002784 LBB0_452 + 0x49, 0x83, 0xc7, 0x04, //0x00002784 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002788 movq %r15, (%rsi) + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x0000278b jmp LBB0_427 + //0x00002790 LBB0_453 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002790 bsfq %rdx, %rax + //0x00002794 LBB0_454 + 0x4d, 0x29, 0xcb, //0x00002794 subq %r9, %r11 + 0x49, 0x01, 0xc3, //0x00002797 addq %rax, %r11 + //0x0000279a LBB0_455 + 0x4d, 0x89, 0xd8, //0x0000279a movq %r11, %r8 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000279d movq $-2, %r11 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000027a4 jmp LBB0_461 + //0x000027a9 LBB0_456 + 0x49, 0x83, 0xf8, 0xff, //0x000027a9 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000027ad jne LBB0_459 + 0x48, 0x0f, 0xbc, 0xc2, //0x000027b3 bsfq %rdx, %rax + //0x000027b7 LBB0_458 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000027b7 subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000027bb addq %rax, %r11 + 0x4d, 0x89, 0xd8, //0x000027be movq %r11, %r8 + //0x000027c1 LBB0_459 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027c1 movq $-2, %r11 + //0x000027c8 LBB0_460 + 0x48, 0x8b, 0x75, 0xc8, //0x000027c8 movq $-56(%rbp), %rsi + //0x000027cc LBB0_461 + 0x4c, 0x89, 0x06, //0x000027cc movq %r8, (%rsi) + 0x4c, 0x89, 0xd8, //0x000027cf movq %r11, %rax + 0xe9, 0x1d, 0xfe, 0xff, 0xff, //0x000027d2 jmp LBB0_427 + //0x000027d7 LBB0_462 + 0x49, 0x89, 0xc2, //0x000027d7 movq %rax, %r10 + 0xe9, 0xe7, 0xfd, 0xff, 0xff, //0x000027da jmp LBB0_420 + //0x000027df LBB0_463 + 0x49, 0x89, 0xca, //0x000027df movq %rcx, %r10 + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x000027e2 jmp LBB0_420 + //0x000027e7 LBB0_149 + 0x4c, 0x01, 0xd9, //0x000027e7 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027ea movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x000027f1 movq %rcx, %r9 + 0xe9, 0x4a, 0xfe, 0xff, 0xff, //0x000027f4 jmp LBB0_150 + //0x000027f9 LBB0_185 + 0x4c, 0x01, 0xd9, //0x000027f9 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027fc movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x00002803 movq %rcx, %r8 + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x00002806 jmp LBB0_461 + //0x0000280b LBB0_464 + 0x49, 0x89, 0xc2, //0x0000280b movq %rax, %r10 + 0xe9, 0xfa, 0xfd, 0xff, 0xff, //0x0000280e jmp LBB0_429 + //0x00002813 LBB0_465 + 0x49, 0x89, 0xca, //0x00002813 movq %rcx, %r10 + 0xe9, 0xf2, 0xfd, 0xff, 0xff, //0x00002816 jmp LBB0_429 + //0x0000281b LBB0_466 + 0x48, 0x89, 0xc7, //0x0000281b movq %rax, %rdi + 0xe9, 0x5e, 0xfe, 0xff, 0xff, //0x0000281e jmp LBB0_442 + //0x00002823 LBB0_467 + 0x49, 0x0f, 0xbc, 0xc2, //0x00002823 bsfq %r10, %rax + 0xe9, 0x06, 0xfe, 0xff, 0xff, //0x00002827 jmp LBB0_432 + //0x0000282c LBB0_468 + 0x4c, 0x2b, 0x5d, 0xd0, //0x0000282c subq $-48(%rbp), %r11 + 0xe9, 0x04, 0xfe, 0xff, 0xff, //0x00002830 jmp LBB0_433 + //0x00002835 LBB0_469 + 0x4d, 0x29, 0xcb, //0x00002835 subq %r9, %r11 + 0xe9, 0x5d, 0xff, 0xff, 0xff, //0x00002838 jmp LBB0_455 + //0x0000283d LBB0_470 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000283d bsfq %rdi, %rax + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00002841 jmp LBB0_454 + //0x00002846 LBB0_471 + 0x4c, 0x01, 0xd9, //0x00002846 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002849 movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x00002850 movq %rcx, %r8 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002853 jmp LBB0_460 + //0x00002858 LBB0_472 + 0x48, 0x0f, 0xbc, 0xc3, //0x00002858 bsfq %rbx, %rax + 0xe9, 0x56, 0xff, 0xff, 0xff, //0x0000285c jmp LBB0_458 + //0x00002861 LBB0_473 + 0x4d, 0x89, 0xea, //0x00002861 movq %r13, %r10 + 0xe9, 0x5d, 0xfd, 0xff, 0xff, //0x00002864 jmp LBB0_420 + //0x00002869 LBB0_475 + 0x48, 0x8b, 0x75, 0xc8, //0x00002869 movq $-56(%rbp), %rsi + 0xe9, 0x9b, 0xfd, 0xff, 0xff, //0x0000286d jmp LBB0_429 + //0x00002872 LBB0_474 + 0x48, 0x8b, 0x75, 0xc8, //0x00002872 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00002876 movq $-72(%rbp), %r10 + 0xe9, 0x8e, 0xfd, 0xff, 0xff, //0x0000287a jmp LBB0_429 + //0x0000287f LBB0_476 + 0x48, 0x8b, 0x75, 0xc8, //0x0000287f movq $-56(%rbp), %rsi + 0xe9, 0xf9, 0xfd, 0xff, 0xff, //0x00002883 jmp LBB0_442 + //0x00002888 .p2align 2, 0x90 + // // .set L0_0_set_35, LBB0_35-LJTI0_0 + // // .set L0_0_set_62, LBB0_62-LJTI0_0 + // // .set L0_0_set_40, LBB0_40-LJTI0_0 + // // .set L0_0_set_60, LBB0_60-LJTI0_0 + // // .set L0_0_set_38, LBB0_38-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + //0x00002888 LJTI0_0 + 0x13, 0xdb, 0xff, 0xff, //0x00002888 .long L0_0_set_35 + 0x24, 0xdd, 0xff, 0xff, //0x0000288c .long L0_0_set_62 + 0x4a, 0xdb, 0xff, 0xff, //0x00002890 .long L0_0_set_40 + 0x0d, 0xdd, 0xff, 0xff, //0x00002894 .long L0_0_set_60 + 0x2a, 0xdb, 0xff, 0xff, //0x00002898 .long L0_0_set_38 + 0x4f, 0xdd, 0xff, 0xff, //0x0000289c .long L0_0_set_64 + // // .set L0_1_set_427, LBB0_427-LJTI0_1 + // // .set L0_1_set_426, LBB0_426-LJTI0_1 + // // .set L0_1_set_199, LBB0_199-LJTI0_1 + // // .set L0_1_set_217, LBB0_217-LJTI0_1 + // // .set L0_1_set_68, LBB0_68-LJTI0_1 + // // .set L0_1_set_242, LBB0_242-LJTI0_1 + // // .set L0_1_set_244, LBB0_244-LJTI0_1 + // // .set L0_1_set_247, LBB0_247-LJTI0_1 + // // .set L0_1_set_253, LBB0_253-LJTI0_1 + // // .set L0_1_set_1, LBB0_1-LJTI0_1 + //0x000028a0 LJTI0_1 + 0x54, 0xfd, 0xff, 0xff, //0x000028a0 .long L0_1_set_427 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028ac .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028bc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028cc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028dc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028ec .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028fc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002900 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002904 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002908 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000290c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002910 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002914 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002918 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000291c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002920 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002924 .long L0_1_set_426 + 0x9f, 0xe7, 0xff, 0xff, //0x00002928 .long L0_1_set_199 + 0x4d, 0xfd, 0xff, 0xff, //0x0000292c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002930 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002934 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002938 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000293c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002940 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002944 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002948 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000294c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002950 .long L0_1_set_426 + 0x5d, 0xe9, 0xff, 0xff, //0x00002954 .long L0_1_set_217 + 0x4d, 0xfd, 0xff, 0xff, //0x00002958 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000295c .long L0_1_set_426 + 0x86, 0xdd, 0xff, 0xff, //0x00002960 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002964 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002968 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x0000296c .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002970 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002974 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002978 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x0000297c .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002980 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002984 .long L0_1_set_68 + 0x4d, 0xfd, 0xff, 0xff, //0x00002988 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000298c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002990 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002994 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002998 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000299c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029ac .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029bc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029cc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029dc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029ec .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029fc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a00 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a04 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a08 .long L0_1_set_426 + 0x44, 0xeb, 0xff, 0xff, //0x00002a0c .long L0_1_set_242 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a10 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a14 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a18 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a1c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a20 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a24 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a28 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a2c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_426 + 0x6c, 0xeb, 0xff, 0xff, //0x00002a38 .long L0_1_set_244 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a48 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_426 + 0xad, 0xeb, 0xff, 0xff, //0x00002a58 .long L0_1_set_247 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a60 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_426 + 0xd4, 0xeb, 0xff, 0xff, //0x00002a70 .long L0_1_set_253 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a7c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a80 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a84 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a88 .long L0_1_set_426 + 0xcb, 0xd8, 0xff, 0xff, //0x00002a8c .long L0_1_set_1 + // // .set L0_2_set_262, LBB0_262-LJTI0_2 + // // .set L0_2_set_291, LBB0_291-LJTI0_2 + // // .set L0_2_set_257, LBB0_257-LJTI0_2 + // // .set L0_2_set_259, LBB0_259-LJTI0_2 + // // .set L0_2_set_264, LBB0_264-LJTI0_2 + //0x00002a90 LJTI0_2 + 0x79, 0xea, 0xff, 0xff, //0x00002a90 .long L0_2_set_262 + 0xd9, 0xec, 0xff, 0xff, //0x00002a94 .long L0_2_set_291 + 0x79, 0xea, 0xff, 0xff, //0x00002a98 .long L0_2_set_262 + 0x33, 0xea, 0xff, 0xff, //0x00002a9c .long L0_2_set_257 + 0xd9, 0xec, 0xff, 0xff, //0x00002aa0 .long L0_2_set_291 + 0x50, 0xea, 0xff, 0xff, //0x00002aa4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aa8 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aac .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab0 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab8 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002abc .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ac0 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ac4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ac8 .long L0_2_set_259 + 0xd9, 0xec, 0xff, 0xff, //0x00002acc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002adc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002aec .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af4 .long L0_2_set_291 + 0x94, 0xea, 0xff, 0xff, //0x00002af8 .long L0_2_set_264 + 0xd9, 0xec, 0xff, 0xff, //0x00002afc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b00 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b04 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b08 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b0c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b10 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b14 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b18 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b1c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b20 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b24 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b28 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b2c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b30 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b34 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b38 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b3c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b40 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b44 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b48 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b4c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b50 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b54 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b58 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b5c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b60 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b64 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b68 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b6c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b70 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b74 .long L0_2_set_291 + 0x94, 0xea, 0xff, 0xff, //0x00002b78 .long L0_2_set_264 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + // // .set L0_3_set_152, LBB0_152-LJTI0_3 + // // .set L0_3_set_100, LBB0_100-LJTI0_3 + // // .set L0_3_set_95, LBB0_95-LJTI0_3 + // // .set L0_3_set_93, LBB0_93-LJTI0_3 + //0x00002b7c LJTI0_3 + 0xcd, 0xdc, 0xff, 0xff, //0x00002b7c .long L0_3_set_98 + 0x2e, 0xe1, 0xff, 0xff, //0x00002b80 .long L0_3_set_152 + 0xcd, 0xdc, 0xff, 0xff, //0x00002b84 .long L0_3_set_98 + 0xe8, 0xdc, 0xff, 0xff, //0x00002b88 .long L0_3_set_100 + 0x2e, 0xe1, 0xff, 0xff, //0x00002b8c .long L0_3_set_152 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b90 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b94 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b98 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b9c .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba0 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba4 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba8 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002bac .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002bb0 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002bb4 .long L0_3_set_95 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bb8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bbc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bcc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bdc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be0 .long L0_3_set_152 + 0x84, 0xdc, 0xff, 0xff, //0x00002be4 .long L0_3_set_93 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bec .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bfc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c00 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c04 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c08 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c0c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c10 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c14 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c18 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c1c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c20 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c24 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c28 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c2c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c30 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c34 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c38 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c3c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c40 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c44 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c48 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c4c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c50 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c54 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c58 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c5c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c60 .long L0_3_set_152 + 0x84, 0xdc, 0xff, 0xff, //0x00002c64 .long L0_3_set_93 + //0x00002c68 .p2align 2, 0x00 + //0x00002c68 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002c68 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one.go new file mode 100644 index 000000000..fa8775d5f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_skip_one uintptr + +//go:nosplit +func skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_skip_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast.go new file mode 100644 index 000000000..4e4290560 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_skip_one_fast func(s unsafe.Pointer, p unsafe.Pointer) (ret int) + +var S_skip_one_fast uintptr + +//go:nosplit +func skip_one_fast(s *string, p *int) (ret int) { + return F_skip_one_fast(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p))) +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_subr.go new file mode 100644 index 000000000..e1fe08f75 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_one_fast = 128 +) + +const ( + _stack__skip_one_fast = 136 +) + +const ( + _size__skip_one_fast = 3404 +) + +var ( + _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}, + } +) + +var _cfunc_skip_one_fast = []loader.CFunc{ + {"_skip_one_fast_entry", 0, _entry__skip_one_fast, 0, nil}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_text_amd64.go new file mode 100644 index 000000000..de2971325 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_fast_text_amd64.go @@ -0,0 +1,1039 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_skip_one_fast = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, // QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00000010 LCPI0_1 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000010 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000020 LCPI0_2 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00000020 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00000030 LCPI0_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00000030 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000040 LCPI0_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000040 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000050 LCPI0_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00000050 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00000060 LCPI0_6 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00000060 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00000070 LCPI0_7 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00000070 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00000080 .p2align 4, 0x90 + //0x00000080 _skip_one_fast + 0x55, //0x00000080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000081 movq %rsp, %rbp + 0x41, 0x57, //0x00000084 pushq %r15 + 0x41, 0x56, //0x00000086 pushq %r14 + 0x41, 0x55, //0x00000088 pushq %r13 + 0x41, 0x54, //0x0000008a pushq %r12 + 0x53, //0x0000008c pushq %rbx + 0x48, 0x83, 0xec, 0x58, //0x0000008d subq $88, %rsp + 0x4c, 0x8b, 0x07, //0x00000091 movq (%rdi), %r8 + 0x4c, 0x8b, 0x4f, 0x08, //0x00000094 movq $8(%rdi), %r9 + 0x48, 0x8b, 0x16, //0x00000098 movq (%rsi), %rdx + 0x48, 0x89, 0xd0, //0x0000009b movq %rdx, %rax + 0x4c, 0x29, 0xc8, //0x0000009e subq %r9, %rax + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000000a1 jae LBB0_5 + 0x41, 0x8a, 0x0c, 0x10, //0x000000a7 movb (%r8,%rdx), %cl + 0x80, 0xf9, 0x0d, //0x000000ab cmpb $13, %cl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x000000ae je LBB0_5 + 0x80, 0xf9, 0x20, //0x000000b4 cmpb $32, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000000b7 je LBB0_5 + 0x80, 0xc1, 0xf7, //0x000000bd addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000000c0 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000000c3 jbe LBB0_5 + 0x49, 0x89, 0xd6, //0x000000c9 movq %rdx, %r14 + 0xe9, 0x2e, 0x01, 0x00, 0x00, //0x000000cc jmp LBB0_27 + //0x000000d1 LBB0_5 + 0x4c, 0x8d, 0x72, 0x01, //0x000000d1 leaq $1(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x000000d5 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000000d8 jae LBB0_9 + 0x43, 0x8a, 0x0c, 0x30, //0x000000de movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x000000e2 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000000e5 je LBB0_9 + 0x80, 0xf9, 0x20, //0x000000eb cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000000ee je LBB0_9 + 0x80, 0xc1, 0xf7, //0x000000f4 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x000000f7 cmpb $1, %cl + 0x0f, 0x87, 0xff, 0x00, 0x00, 0x00, //0x000000fa ja LBB0_27 + //0x00000100 LBB0_9 + 0x4c, 0x8d, 0x72, 0x02, //0x00000100 leaq $2(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x00000104 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000107 jae LBB0_13 + 0x43, 0x8a, 0x0c, 0x30, //0x0000010d movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00000111 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000114 je LBB0_13 + 0x80, 0xf9, 0x20, //0x0000011a cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000011d je LBB0_13 + 0x80, 0xc1, 0xf7, //0x00000123 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000126 cmpb $1, %cl + 0x0f, 0x87, 0xd0, 0x00, 0x00, 0x00, //0x00000129 ja LBB0_27 + //0x0000012f LBB0_13 + 0x4c, 0x8d, 0x72, 0x03, //0x0000012f leaq $3(%rdx), %r14 + 0x4d, 0x39, 0xce, //0x00000133 cmpq %r9, %r14 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00000136 jae LBB0_17 + 0x43, 0x8a, 0x0c, 0x30, //0x0000013c movb (%r8,%r14), %cl + 0x80, 0xf9, 0x0d, //0x00000140 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00000143 je LBB0_17 + 0x80, 0xf9, 0x20, //0x00000149 cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x0000014c je LBB0_17 + 0x80, 0xc1, 0xf7, //0x00000152 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x00000155 cmpb $1, %cl + 0x0f, 0x87, 0xa1, 0x00, 0x00, 0x00, //0x00000158 ja LBB0_27 + //0x0000015e LBB0_17 + 0x48, 0x8d, 0x4a, 0x04, //0x0000015e leaq $4(%rdx), %rcx + 0x49, 0x39, 0xc9, //0x00000162 cmpq %rcx, %r9 + 0x0f, 0x86, 0x4e, 0x00, 0x00, 0x00, //0x00000165 jbe LBB0_23 + 0x49, 0x39, 0xc9, //0x0000016b cmpq %rcx, %r9 + 0x0f, 0x84, 0x54, 0x00, 0x00, 0x00, //0x0000016e je LBB0_24 + 0x4b, 0x8d, 0x0c, 0x08, //0x00000174 leaq (%r8,%r9), %rcx + 0x48, 0x83, 0xc0, 0x04, //0x00000178 addq $4, %rax + 0x4e, 0x8d, 0x74, 0x02, 0x05, //0x0000017c leaq $5(%rdx,%r8), %r14 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000181 movabsq $4294977024, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000018b .p2align 4, 0x90 + //0x00000190 LBB0_20 + 0x41, 0x0f, 0xbe, 0x5e, 0xff, //0x00000190 movsbl $-1(%r14), %ebx + 0x83, 0xfb, 0x20, //0x00000195 cmpl $32, %ebx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00000198 ja LBB0_26 + 0x48, 0x0f, 0xa3, 0xda, //0x0000019e btq %rbx, %rdx + 0x0f, 0x83, 0x3e, 0x00, 0x00, 0x00, //0x000001a2 jae LBB0_26 + 0x49, 0xff, 0xc6, //0x000001a8 incq %r14 + 0x48, 0xff, 0xc0, //0x000001ab incq %rax + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000001ae jne LBB0_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000001b4 jmp LBB0_25 + //0x000001b9 LBB0_23 + 0x48, 0x89, 0x0e, //0x000001b9 movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000001bc movq $-1, %rax + 0xe9, 0x4a, 0x01, 0x00, 0x00, //0x000001c3 jmp LBB0_45 + //0x000001c8 LBB0_24 + 0x4c, 0x01, 0xc1, //0x000001c8 addq %r8, %rcx + //0x000001cb LBB0_25 + 0x4c, 0x29, 0xc1, //0x000001cb subq %r8, %rcx + 0x49, 0x89, 0xce, //0x000001ce movq %rcx, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000001d1 movq $-1, %rax + 0x4d, 0x39, 0xce, //0x000001d8 cmpq %r9, %r14 + 0x0f, 0x82, 0x1e, 0x00, 0x00, 0x00, //0x000001db jb LBB0_27 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x000001e1 jmp LBB0_45 + //0x000001e6 LBB0_26 + 0x4c, 0x89, 0xc0, //0x000001e6 movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x000001e9 notq %rax + 0x49, 0x01, 0xc6, //0x000001ec addq %rax, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000001ef movq $-1, %rax + 0x4d, 0x39, 0xce, //0x000001f6 cmpq %r9, %r14 + 0x0f, 0x83, 0x13, 0x01, 0x00, 0x00, //0x000001f9 jae LBB0_45 + //0x000001ff LBB0_27 + 0x49, 0x8d, 0x5e, 0x01, //0x000001ff leaq $1(%r14), %rbx + 0x48, 0x89, 0x1e, //0x00000203 movq %rbx, (%rsi) + 0x43, 0x0f, 0xbe, 0x0c, 0x30, //0x00000206 movsbl (%r8,%r14), %ecx + 0x83, 0xf9, 0x7b, //0x0000020b cmpl $123, %ecx + 0x0f, 0x87, 0x20, 0x01, 0x00, 0x00, //0x0000020e ja LBB0_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000214 movq $-1, %rax + 0x48, 0x8d, 0x15, 0xaa, 0x0b, 0x00, 0x00, //0x0000021b leaq $2986(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x00000222 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00000226 addq %rdx, %rcx + 0xff, 0xe1, //0x00000229 jmpq *%rcx + //0x0000022b LBB0_29 + 0x48, 0x8b, 0x4f, 0x08, //0x0000022b movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000022f movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00000232 subq %rbx, %rax + 0x4c, 0x01, 0xc3, //0x00000235 addq %r8, %rbx + 0x48, 0x83, 0xf8, 0x10, //0x00000238 cmpq $16, %rax + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x0000023c jb LBB0_34 + 0x4c, 0x29, 0xf1, //0x00000242 subq %r14, %rcx + 0x48, 0x83, 0xc1, 0xef, //0x00000245 addq $-17, %rcx + 0x48, 0x89, 0xca, //0x00000249 movq %rcx, %rdx + 0x48, 0x83, 0xe2, 0xf0, //0x0000024c andq $-16, %rdx + 0x4c, 0x01, 0xf2, //0x00000250 addq %r14, %rdx + 0x49, 0x8d, 0x54, 0x10, 0x11, //0x00000253 leaq $17(%r8,%rdx), %rdx + 0x83, 0xe1, 0x0f, //0x00000258 andl $15, %ecx + 0xf3, 0x0f, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x0000025b movdqu $-611(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00000263 movdqu $-603(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x0000026b movdqu $-595(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000273 .p2align 4, 0x90 + //0x00000280 LBB0_31 + 0xf3, 0x0f, 0x6f, 0x1b, //0x00000280 movdqu (%rbx), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00000284 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00000288 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xeb, 0xd9, //0x0000028c por %xmm1, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00000290 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xeb, 0xdc, //0x00000294 por %xmm4, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00000298 pmovmskb %xmm3, %edi + 0x66, 0x85, 0xff, //0x0000029c testw %di, %di + 0x0f, 0x85, 0x5a, 0x00, 0x00, 0x00, //0x0000029f jne LBB0_42 + 0x48, 0x83, 0xc3, 0x10, //0x000002a5 addq $16, %rbx + 0x48, 0x83, 0xc0, 0xf0, //0x000002a9 addq $-16, %rax + 0x48, 0x83, 0xf8, 0x0f, //0x000002ad cmpq $15, %rax + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000002b1 ja LBB0_31 + 0x48, 0x89, 0xc8, //0x000002b7 movq %rcx, %rax + 0x48, 0x89, 0xd3, //0x000002ba movq %rdx, %rbx + //0x000002bd LBB0_34 + 0x48, 0x85, 0xc0, //0x000002bd testq %rax, %rax + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x000002c0 je LBB0_41 + 0x48, 0x8d, 0x0c, 0x03, //0x000002c6 leaq (%rbx,%rax), %rcx + //0x000002ca LBB0_36 + 0x0f, 0xb6, 0x13, //0x000002ca movzbl (%rbx), %edx + 0x80, 0xfa, 0x2c, //0x000002cd cmpb $44, %dl + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000002d0 je LBB0_41 + 0x80, 0xfa, 0x7d, //0x000002d6 cmpb $125, %dl + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000002d9 je LBB0_41 + 0x80, 0xfa, 0x5d, //0x000002df cmpb $93, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000002e2 je LBB0_41 + 0x48, 0xff, 0xc3, //0x000002e8 incq %rbx + 0x48, 0xff, 0xc8, //0x000002eb decq %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x000002ee jne LBB0_36 + 0x48, 0x89, 0xcb, //0x000002f4 movq %rcx, %rbx + //0x000002f7 LBB0_41 + 0x4c, 0x29, 0xc3, //0x000002f7 subq %r8, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000002fa jmp LBB0_43 + //0x000002ff LBB0_42 + 0x0f, 0xb7, 0xc7, //0x000002ff movzwl %di, %eax + 0x48, 0x0f, 0xbc, 0xc0, //0x00000302 bsfq %rax, %rax + 0x4c, 0x29, 0xc3, //0x00000306 subq %r8, %rbx + 0x48, 0x01, 0xc3, //0x00000309 addq %rax, %rbx + //0x0000030c LBB0_43 + 0x48, 0x89, 0x1e, //0x0000030c movq %rbx, (%rsi) + //0x0000030f LBB0_44 + 0x4c, 0x89, 0xf0, //0x0000030f movq %r14, %rax + //0x00000312 LBB0_45 + 0x48, 0x83, 0xc4, 0x58, //0x00000312 addq $88, %rsp + 0x5b, //0x00000316 popq %rbx + 0x41, 0x5c, //0x00000317 popq %r12 + 0x41, 0x5d, //0x00000319 popq %r13 + 0x41, 0x5e, //0x0000031b popq %r14 + 0x41, 0x5f, //0x0000031d popq %r15 + 0x5d, //0x0000031f popq %rbp + 0xc3, //0x00000320 retq + //0x00000321 LBB0_46 + 0x49, 0x8d, 0x4e, 0x04, //0x00000321 leaq $4(%r14), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00000325 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0xe3, 0xff, 0xff, 0xff, //0x00000329 ja LBB0_45 + 0xe9, 0x6a, 0x05, 0x00, 0x00, //0x0000032f jmp LBB0_83 + //0x00000334 LBB0_47 + 0x4c, 0x89, 0x36, //0x00000334 movq %r14, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000337 movq $-2, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x0000033e jmp LBB0_45 + //0x00000343 LBB0_48 + 0x4c, 0x8b, 0x4f, 0x08, //0x00000343 movq $8(%rdi), %r9 + 0x4d, 0x89, 0xcf, //0x00000347 movq %r9, %r15 + 0x49, 0x29, 0xdf, //0x0000034a subq %rbx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x0000034d cmpq $32, %r15 + 0x0f, 0x8c, 0x3e, 0x0a, 0x00, 0x00, //0x00000351 jl LBB0_117 + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x00000357 movl $4294967295, %r10d + 0x4f, 0x8d, 0x1c, 0x30, //0x0000035d leaq (%r8,%r14), %r11 + 0x4d, 0x29, 0xf1, //0x00000361 subq %r14, %r9 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00000364 movl $31, %r13d + 0x45, 0x31, 0xff, //0x0000036a xorl %r15d, %r15d + 0xf3, 0x0f, 0x6f, 0x05, 0xbb, 0xfc, 0xff, 0xff, //0x0000036d movdqu $-837(%rip), %xmm0 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xc3, 0xfc, 0xff, 0xff, //0x00000375 movdqu $-829(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x45, 0x31, 0xe4, //0x0000037d xorl %r12d, %r12d + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00000380 jmp LBB0_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000385 .p2align 4, 0x90 + //0x00000390 LBB0_52 + 0x45, 0x31, 0xe4, //0x00000390 xorl %r12d, %r12d + 0x85, 0xc9, //0x00000393 testl %ecx, %ecx + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00000395 jne LBB0_110 + //0x0000039b LBB0_53 + 0x49, 0x83, 0xc7, 0x20, //0x0000039b addq $32, %r15 + 0x4b, 0x8d, 0x4c, 0x29, 0xe0, //0x0000039f leaq $-32(%r9,%r13), %rcx + 0x49, 0x83, 0xc5, 0xe0, //0x000003a4 addq $-32, %r13 + 0x48, 0x83, 0xf9, 0x3f, //0x000003a8 cmpq $63, %rcx + 0x0f, 0x8e, 0x60, 0x09, 0x00, 0x00, //0x000003ac jle LBB0_54 + //0x000003b2 LBB0_50 + 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x3b, 0x01, //0x000003b2 movdqu $1(%r11,%r15), %xmm2 + 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x3b, 0x11, //0x000003b9 movdqu $17(%r11,%r15), %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x000003c0 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x000003c4 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x000003c8 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x6f, 0xe3, //0x000003cc movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x000003d0 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x000003d4 pmovmskb %xmm4, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x000003d8 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x000003dc orq %rdi, %rcx + 0x66, 0x0f, 0x74, 0xd1, //0x000003df pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x000003e3 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x000003e7 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000003eb pmovmskb %xmm3, %edi + 0x48, 0xc1, 0xe7, 0x10, //0x000003ef shlq $16, %rdi + 0x48, 0x09, 0xdf, //0x000003f3 orq %rbx, %rdi + 0x48, 0x89, 0xfb, //0x000003f6 movq %rdi, %rbx + 0x4c, 0x09, 0xe3, //0x000003f9 orq %r12, %rbx + 0x0f, 0x84, 0x8e, 0xff, 0xff, 0xff, //0x000003fc je LBB0_52 + 0x44, 0x89, 0xe3, //0x00000402 movl %r12d, %ebx + 0x44, 0x31, 0xd3, //0x00000405 xorl %r10d, %ebx + 0x21, 0xdf, //0x00000408 andl %ebx, %edi + 0x8d, 0x1c, 0x3f, //0x0000040a leal (%rdi,%rdi), %ebx + 0x44, 0x09, 0xe3, //0x0000040d orl %r12d, %ebx + 0x41, 0x8d, 0x92, 0xab, 0xaa, 0xaa, 0xaa, //0x00000410 leal $-1431655765(%r10), %edx + 0x31, 0xda, //0x00000417 xorl %ebx, %edx + 0x21, 0xfa, //0x00000419 andl %edi, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000041b andl $-1431655766, %edx + 0x45, 0x31, 0xe4, //0x00000421 xorl %r12d, %r12d + 0x01, 0xfa, //0x00000424 addl %edi, %edx + 0x41, 0x0f, 0x92, 0xc4, //0x00000426 setb %r12b + 0x01, 0xd2, //0x0000042a addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x0000042c xorl $1431655765, %edx + 0x21, 0xda, //0x00000432 andl %ebx, %edx + 0x44, 0x31, 0xd2, //0x00000434 xorl %r10d, %edx + 0x21, 0xd1, //0x00000437 andl %edx, %ecx + 0x85, 0xc9, //0x00000439 testl %ecx, %ecx + 0x0f, 0x84, 0x5a, 0xff, 0xff, 0xff, //0x0000043b je LBB0_53 + //0x00000441 LBB0_110 + 0x48, 0x0f, 0xbc, 0xc1, //0x00000441 bsfq %rcx, %rax + 0x49, 0x01, 0xc3, //0x00000445 addq %rax, %r11 + 0x4d, 0x01, 0xfb, //0x00000448 addq %r15, %r11 + 0x4d, 0x29, 0xc3, //0x0000044b subq %r8, %r11 + 0x49, 0x83, 0xc3, 0x02, //0x0000044e addq $2, %r11 + 0x4c, 0x89, 0x1e, //0x00000452 movq %r11, (%rsi) + 0xe9, 0xb5, 0xfe, 0xff, 0xff, //0x00000455 jmp LBB0_44 + //0x0000045a LBB0_57 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000045a movabsq $6148914691236517205, %r13 + 0x48, 0x8b, 0x4f, 0x08, //0x00000464 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x00000468 subq %rbx, %rcx + 0x49, 0x01, 0xd8, //0x0000046b addq %rbx, %r8 + 0x45, 0x31, 0xff, //0x0000046e xorl %r15d, %r15d + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0xb6, 0xfb, 0xff, 0xff, //0x00000471 movdqu $-1098(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xbe, 0xfb, 0xff, 0xff, //0x0000047a movdqu $-1090(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00000482 pcmpeqd %xmm9, %xmm9 + 0xf3, 0x0f, 0x6f, 0x1d, 0xd1, 0xfb, 0xff, 0xff, //0x00000487 movdqu $-1071(%rip), %xmm3 /* LCPI0_6+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0xd9, 0xfb, 0xff, 0xff, //0x0000048f movdqu $-1063(%rip), %xmm4 /* LCPI0_7+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x00000497 xorps %xmm8, %xmm8 + 0x45, 0x31, 0xd2, //0x0000049b xorl %r10d, %r10d + 0x31, 0xd2, //0x0000049e xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc0, //0x000004a0 movq %rdx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x000004a4 xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x000004a7 jmp LBB0_59 + //0x000004ac LBB0_58 + 0x49, 0xc1, 0xf9, 0x3f, //0x000004ac sarq $63, %r9 + 0x4c, 0x89, 0xf9, //0x000004b0 movq %r15, %rcx + 0x48, 0xd1, 0xe9, //0x000004b3 shrq %rcx + 0x4c, 0x21, 0xe9, //0x000004b6 andq %r13, %rcx + 0x49, 0x29, 0xcf, //0x000004b9 subq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x000004bc movq %r15, %rcx + 0x4c, 0x21, 0xd1, //0x000004bf andq %r10, %rcx + 0x49, 0xc1, 0xef, 0x02, //0x000004c2 shrq $2, %r15 + 0x4d, 0x21, 0xd7, //0x000004c6 andq %r10, %r15 + 0x49, 0x01, 0xcf, //0x000004c9 addq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x000004cc movq %r15, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x000004cf shrq $4, %rcx + 0x4c, 0x01, 0xf9, //0x000004d3 addq %r15, %rcx + 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000004d6 movabsq $1085102592571150095, %rdx + 0x48, 0x21, 0xd1, //0x000004e0 andq %rdx, %rcx + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000004e3 movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x000004ed imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x000004f1 shrq $56, %rcx + 0x48, 0x01, 0x4d, 0xc0, //0x000004f5 addq %rcx, $-64(%rbp) + 0x49, 0x83, 0xc0, 0x40, //0x000004f9 addq $64, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x000004fd movq $-48(%rbp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00000501 addq $-64, %rcx + 0x4d, 0x89, 0xcf, //0x00000505 movq %r9, %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00000508 movq $-56(%rbp), %r10 + //0x0000050c LBB0_59 + 0x48, 0x83, 0xf9, 0x40, //0x0000050c cmpq $64, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x00000510 movq %rcx, $-48(%rbp) + 0x0f, 0x8c, 0x34, 0x02, 0x00, 0x00, //0x00000514 jl LBB0_66 + //0x0000051a LBB0_60 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x0000051a movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x0000051f movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00000525 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x0000052b movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00000531 movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00000535 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x0000053a pmovmskb %xmm2, %r9d + 0x66, 0x0f, 0x6f, 0xd5, //0x0000053f movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00000543 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00000548 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd7, //0x0000054c movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00000550 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00000555 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00000559 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000055d pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00000562 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00000566 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x0000056a shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x0000056e shlq $16, %rcx + 0x49, 0x09, 0xc9, //0x00000572 orq %rcx, %r9 + 0x49, 0x09, 0xd9, //0x00000575 orq %rbx, %r9 + 0x49, 0x09, 0xd1, //0x00000578 orq %rdx, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x0000057b movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x0000057f pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00000583 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd5, //0x00000587 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x0000058b pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x0000058f pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00000594 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00000598 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x0000059c pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x000005a0 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000005a4 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000005a8 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x000005ac shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x000005b0 shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x000005b4 shlq $16, %r12 + 0x4c, 0x09, 0xe1, //0x000005b8 orq %r12, %rcx + 0x48, 0x09, 0xd9, //0x000005bb orq %rbx, %rcx + 0x48, 0x09, 0xd1, //0x000005be orq %rdx, %rcx + 0x48, 0x89, 0xca, //0x000005c1 movq %rcx, %rdx + 0x4c, 0x09, 0xd2, //0x000005c4 orq %r10, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x000005c7 je LBB0_62 + 0x4c, 0x89, 0xd2, //0x000005cd movq %r10, %rdx + 0x48, 0xf7, 0xd2, //0x000005d0 notq %rdx + 0x48, 0x21, 0xca, //0x000005d3 andq %rcx, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x000005d6 leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xd4, //0x000005da orq %r10, %r12 + 0x4d, 0x89, 0xe2, //0x000005dd movq %r12, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000005e0 movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x000005ea xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x000005ed andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000005f0 andq %r10, %rcx + 0x31, 0xdb, //0x000005f3 xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x000005f5 addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x000005f8 setb %bl + 0x48, 0x89, 0x5d, 0xc8, //0x000005fb movq %rbx, $-56(%rbp) + 0x48, 0x01, 0xc9, //0x000005ff addq %rcx, %rcx + 0x4c, 0x31, 0xe9, //0x00000602 xorq %r13, %rcx + 0x4c, 0x21, 0xe1, //0x00000605 andq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00000608 notq %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000060b jmp LBB0_63 + //0x00000610 LBB0_62 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000610 movq $-1, %rcx + 0x31, 0xd2, //0x00000617 xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc8, //0x00000619 movq %rdx, $-56(%rbp) + //0x0000061d LBB0_63 + 0x4c, 0x21, 0xc9, //0x0000061d andq %r9, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00000620 movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00000625 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x0000062c movq %xmm2, %r9 + 0x4d, 0x31, 0xf9, //0x00000631 xorq %r15, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00000634 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000638 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x0000063c pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x00000641 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000645 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00000649 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x0000064e movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000652 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00000656 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x0000065a movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000065e pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00000662 pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00000666 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x0000066a shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x0000066e shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x00000672 orq %r12, %r15 + 0x49, 0x09, 0xdf, //0x00000675 orq %rbx, %r15 + 0x49, 0x09, 0xcf, //0x00000678 orq %rcx, %r15 + 0x4c, 0x89, 0xc9, //0x0000067b movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x0000067e notq %rcx + 0x49, 0x21, 0xcf, //0x00000681 andq %rcx, %r15 + 0x66, 0x0f, 0x74, 0xc4, //0x00000684 pcmpeqb %xmm4, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00000688 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x74, 0xec, //0x0000068d pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00000691 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00000695 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00000699 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x0000069e pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x000006a2 pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x000006a7 shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x000006ab shlq $32, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x000006af shlq $16, %rbx + 0x49, 0x09, 0xdc, //0x000006b3 orq %rbx, %r12 + 0x4d, 0x09, 0xd4, //0x000006b6 orq %r10, %r12 + 0x4d, 0x09, 0xec, //0x000006b9 orq %r13, %r12 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000006bc movabsq $6148914691236517205, %r13 + 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000006c6 movabsq $3689348814741910323, %r10 + 0x49, 0x21, 0xcc, //0x000006d0 andq %rcx, %r12 + 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x000006d3 je LBB0_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000006d9 .p2align 4, 0x90 + //0x000006e0 LBB0_64 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x000006e0 leaq $-1(%r12), %rdx + 0x48, 0x89, 0xd3, //0x000006e5 movq %rdx, %rbx + 0x4c, 0x21, 0xfb, //0x000006e8 andq %r15, %rbx + 0x48, 0x89, 0xd9, //0x000006eb movq %rbx, %rcx + 0x48, 0xd1, 0xe9, //0x000006ee shrq %rcx + 0x4c, 0x21, 0xe9, //0x000006f1 andq %r13, %rcx + 0x48, 0x29, 0xcb, //0x000006f4 subq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x000006f7 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x000006fa andq %r10, %rcx + 0x48, 0xc1, 0xeb, 0x02, //0x000006fd shrq $2, %rbx + 0x4c, 0x21, 0xd3, //0x00000701 andq %r10, %rbx + 0x48, 0x01, 0xcb, //0x00000704 addq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00000707 movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x0000070a shrq $4, %rcx + 0x48, 0x01, 0xd9, //0x0000070e addq %rbx, %rcx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000711 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd9, //0x0000071b andq %rbx, %rcx + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0000071e movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xcb, //0x00000728 imulq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x0000072c shrq $56, %rcx + 0x48, 0x03, 0x4d, 0xc0, //0x00000730 addq $-64(%rbp), %rcx + 0x4c, 0x39, 0xd9, //0x00000734 cmpq %r11, %rcx + 0x0f, 0x86, 0xa3, 0x05, 0x00, 0x00, //0x00000737 jbe LBB0_109 + 0x49, 0xff, 0xc3, //0x0000073d incq %r11 + 0x49, 0x21, 0xd4, //0x00000740 andq %rdx, %r12 + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00000743 jne LBB0_64 + 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x00000749 jmp LBB0_58 + //0x0000074e LBB0_66 + 0x48, 0x85, 0xc9, //0x0000074e testq %rcx, %rcx + 0x0f, 0x8e, 0x46, 0x06, 0x00, 0x00, //0x00000751 jle LBB0_118 + 0x4c, 0x89, 0xd3, //0x00000757 movq %r10, %rbx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000075a movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000075f movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00000764 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00000769 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc1, //0x0000076e movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00000771 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00000777 cmpl $4033, %ecx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000077d jb LBB0_70 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00000783 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00000788 jb LBB0_71 + 0x41, 0x0f, 0x10, 0x00, //0x0000078e movups (%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00000792 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00000796 movups $16(%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x0000079b movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x0000079f addq $32, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x000007a3 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x000007a7 leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x4d, 0xa0, //0x000007ab leaq $-96(%rbp), %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x000007af jmp LBB0_72 + //0x000007b4 LBB0_70 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000007b4 movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x000007be movq %rbx, %r10 + 0xe9, 0x54, 0xfd, 0xff, 0xff, //0x000007c1 jmp LBB0_60 + //0x000007c6 LBB0_71 + 0x4c, 0x8d, 0x4d, 0x80, //0x000007c6 leaq $-128(%rbp), %r9 + 0x48, 0x8b, 0x55, 0xd0, //0x000007ca movq $-48(%rbp), %rdx + //0x000007ce LBB0_72 + 0x48, 0x83, 0xfa, 0x10, //0x000007ce cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x000007d2 jb LBB0_73 + 0x41, 0x0f, 0x10, 0x00, //0x000007d8 movups (%r8), %xmm0 + 0x41, 0x0f, 0x11, 0x01, //0x000007dc movups %xmm0, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x000007e0 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x000007e4 addq $16, %r9 + 0x48, 0x83, 0xc2, 0xf0, //0x000007e8 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x000007ec cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000007f0 jae LBB0_80 + //0x000007f6 LBB0_74 + 0x48, 0x83, 0xfa, 0x04, //0x000007f6 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000007fa jl LBB0_75 + //0x00000800 LBB0_81 + 0x41, 0x8b, 0x08, //0x00000800 movl (%r8), %ecx + 0x41, 0x89, 0x09, //0x00000803 movl %ecx, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x00000806 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x0000080a addq $4, %r9 + 0x48, 0x83, 0xc2, 0xfc, //0x0000080e addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000812 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00000816 jae LBB0_76 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x0000081c jmp LBB0_77 + //0x00000821 LBB0_73 + 0x48, 0x83, 0xfa, 0x08, //0x00000821 cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00000825 jb LBB0_74 + //0x0000082b LBB0_80 + 0x49, 0x8b, 0x08, //0x0000082b movq (%r8), %rcx + 0x49, 0x89, 0x09, //0x0000082e movq %rcx, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00000831 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00000835 addq $8, %r9 + 0x48, 0x83, 0xc2, 0xf8, //0x00000839 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x0000083d cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00000841 jge LBB0_81 + //0x00000847 LBB0_75 + 0x48, 0x83, 0xfa, 0x02, //0x00000847 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000084b jb LBB0_77 + //0x00000851 LBB0_76 + 0x41, 0x0f, 0xb7, 0x08, //0x00000851 movzwl (%r8), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00000855 movw %cx, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00000859 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x0000085d addq $2, %r9 + 0x48, 0x83, 0xc2, 0xfe, //0x00000861 addq $-2, %rdx + //0x00000865 LBB0_77 + 0x4c, 0x89, 0xc1, //0x00000865 movq %r8, %rcx + 0x4c, 0x8d, 0x45, 0x80, //0x00000868 leaq $-128(%rbp), %r8 + 0x48, 0x85, 0xd2, //0x0000086c testq %rdx, %rdx + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000086f movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00000879 movq %rbx, %r10 + 0x0f, 0x84, 0x98, 0xfc, 0xff, 0xff, //0x0000087c je LBB0_60 + 0x8a, 0x09, //0x00000882 movb (%rcx), %cl + 0x41, 0x88, 0x09, //0x00000884 movb %cl, (%r9) + 0x4c, 0x8d, 0x45, 0x80, //0x00000887 leaq $-128(%rbp), %r8 + 0xe9, 0x8a, 0xfc, 0xff, 0xff, //0x0000088b jmp LBB0_60 + //0x00000890 LBB0_82 + 0x49, 0x8d, 0x4e, 0x05, //0x00000890 leaq $5(%r14), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00000894 cmpq $8(%rdi), %rcx + 0x0f, 0x87, 0x74, 0xfa, 0xff, 0xff, //0x00000898 ja LBB0_45 + //0x0000089e LBB0_83 + 0x48, 0x89, 0x0e, //0x0000089e movq %rcx, (%rsi) + 0xe9, 0x69, 0xfa, 0xff, 0xff, //0x000008a1 jmp LBB0_44 + //0x000008a6 LBB0_84 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000008a6 movabsq $6148914691236517205, %r13 + 0x48, 0x8b, 0x4f, 0x08, //0x000008b0 movq $8(%rdi), %rcx + 0x48, 0x29, 0xd9, //0x000008b4 subq %rbx, %rcx + 0x49, 0x01, 0xd8, //0x000008b7 addq %rbx, %r8 + 0x45, 0x31, 0xff, //0x000008ba xorl %r15d, %r15d + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x6a, 0xf7, 0xff, 0xff, //0x000008bd movdqu $-2198(%rip), %xmm10 /* LCPI0_3+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x72, 0xf7, 0xff, 0xff, //0x000008c6 movdqu $-2190(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x000008ce pcmpeqd %xmm9, %xmm9 + 0xf3, 0x0f, 0x6f, 0x1d, 0x75, 0xf7, 0xff, 0xff, //0x000008d3 movdqu $-2187(%rip), %xmm3 /* LCPI0_5+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0x3d, 0xf7, 0xff, 0xff, //0x000008db movdqu $-2243(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x000008e3 xorps %xmm8, %xmm8 + 0x45, 0x31, 0xd2, //0x000008e7 xorl %r10d, %r10d + 0x31, 0xd2, //0x000008ea xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc0, //0x000008ec movq %rdx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x000008f0 xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x000008f3 jmp LBB0_86 + //0x000008f8 LBB0_85 + 0x49, 0xc1, 0xf9, 0x3f, //0x000008f8 sarq $63, %r9 + 0x4c, 0x89, 0xf9, //0x000008fc movq %r15, %rcx + 0x48, 0xd1, 0xe9, //0x000008ff shrq %rcx + 0x4c, 0x21, 0xe9, //0x00000902 andq %r13, %rcx + 0x49, 0x29, 0xcf, //0x00000905 subq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00000908 movq %r15, %rcx + 0x4c, 0x21, 0xd1, //0x0000090b andq %r10, %rcx + 0x49, 0xc1, 0xef, 0x02, //0x0000090e shrq $2, %r15 + 0x4d, 0x21, 0xd7, //0x00000912 andq %r10, %r15 + 0x49, 0x01, 0xcf, //0x00000915 addq %rcx, %r15 + 0x4c, 0x89, 0xf9, //0x00000918 movq %r15, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x0000091b shrq $4, %rcx + 0x4c, 0x01, 0xf9, //0x0000091f addq %r15, %rcx + 0x48, 0xba, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000922 movabsq $1085102592571150095, %rdx + 0x48, 0x21, 0xd1, //0x0000092c andq %rdx, %rcx + 0x48, 0xba, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0000092f movabsq $72340172838076673, %rdx + 0x48, 0x0f, 0xaf, 0xca, //0x00000939 imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x0000093d shrq $56, %rcx + 0x48, 0x01, 0x4d, 0xc0, //0x00000941 addq %rcx, $-64(%rbp) + 0x49, 0x83, 0xc0, 0x40, //0x00000945 addq $64, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00000949 movq $-48(%rbp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x0000094d addq $-64, %rcx + 0x4d, 0x89, 0xcf, //0x00000951 movq %r9, %r15 + 0x4c, 0x8b, 0x55, 0xc8, //0x00000954 movq $-56(%rbp), %r10 + //0x00000958 LBB0_86 + 0x48, 0x83, 0xf9, 0x40, //0x00000958 cmpq $64, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x0000095c movq %rcx, $-48(%rbp) + 0x0f, 0x8c, 0x38, 0x02, 0x00, 0x00, //0x00000960 jl LBB0_93 + //0x00000966 LBB0_87 + 0xf3, 0x41, 0x0f, 0x6f, 0x00, //0x00000966 movdqu (%r8), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x68, 0x10, //0x0000096b movdqu $16(%r8), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x78, 0x20, //0x00000971 movdqu $32(%r8), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x70, 0x30, //0x00000977 movdqu $48(%r8), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x0000097d movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00000981 pcmpeqb %xmm10, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xca, //0x00000986 pmovmskb %xmm2, %r9d + 0x66, 0x0f, 0x6f, 0xd5, //0x0000098b movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000098f pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00000994 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd7, //0x00000998 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000099c pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x000009a1 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x000009a5 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x000009a9 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000009ae pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x000009b2 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x000009b6 shlq $32, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x000009ba shlq $16, %rcx + 0x49, 0x09, 0xc9, //0x000009be orq %rcx, %r9 + 0x49, 0x09, 0xd9, //0x000009c1 orq %rbx, %r9 + 0x49, 0x09, 0xd1, //0x000009c4 orq %rdx, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x000009c7 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000009cb pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x000009cf pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd5, //0x000009d3 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000009d7 pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x000009db pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x000009e0 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000009e4 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x000009e8 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x000009ec movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000009f0 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000009f4 pmovmskb %xmm2, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x000009f8 shlq $48, %rdx + 0x48, 0xc1, 0xe3, 0x20, //0x000009fc shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00000a00 shlq $16, %r12 + 0x4c, 0x09, 0xe1, //0x00000a04 orq %r12, %rcx + 0x48, 0x09, 0xd9, //0x00000a07 orq %rbx, %rcx + 0x48, 0x09, 0xd1, //0x00000a0a orq %rdx, %rcx + 0x48, 0x89, 0xca, //0x00000a0d movq %rcx, %rdx + 0x4c, 0x09, 0xd2, //0x00000a10 orq %r10, %rdx + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x00000a13 je LBB0_89 + 0x4c, 0x89, 0xd2, //0x00000a19 movq %r10, %rdx + 0x48, 0xf7, 0xd2, //0x00000a1c notq %rdx + 0x48, 0x21, 0xca, //0x00000a1f andq %rcx, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x00000a22 leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xd4, //0x00000a26 orq %r10, %r12 + 0x4d, 0x89, 0xe2, //0x00000a29 movq %r12, %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000a2c movabsq $-6148914691236517206, %rbx + 0x49, 0x31, 0xda, //0x00000a36 xorq %rbx, %r10 + 0x48, 0x21, 0xd9, //0x00000a39 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00000a3c andq %r10, %rcx + 0x31, 0xdb, //0x00000a3f xorl %ebx, %ebx + 0x48, 0x01, 0xd1, //0x00000a41 addq %rdx, %rcx + 0x0f, 0x92, 0xc3, //0x00000a44 setb %bl + 0x48, 0x89, 0x5d, 0xc8, //0x00000a47 movq %rbx, $-56(%rbp) + 0x48, 0x01, 0xc9, //0x00000a4b addq %rcx, %rcx + 0x4c, 0x31, 0xe9, //0x00000a4e xorq %r13, %rcx + 0x4c, 0x21, 0xe1, //0x00000a51 andq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00000a54 notq %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00000a57 jmp LBB0_90 + //0x00000a5c LBB0_89 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000a5c movq $-1, %rcx + 0x31, 0xd2, //0x00000a63 xorl %edx, %edx + 0x48, 0x89, 0x55, 0xc8, //0x00000a65 movq %rdx, $-56(%rbp) + //0x00000a69 LBB0_90 + 0x4c, 0x21, 0xc9, //0x00000a69 andq %r9, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00000a6c movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00000a71 pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd1, //0x00000a78 movq %xmm2, %r9 + 0x4d, 0x31, 0xf9, //0x00000a7d xorq %r15, %r9 + 0x66, 0x0f, 0x6f, 0xd0, //0x00000a80 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000a84 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00000a88 pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x6f, 0xd5, //0x00000a8d movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000a91 pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xe2, //0x00000a95 pmovmskb %xmm2, %r12d + 0x66, 0x0f, 0x6f, 0xd7, //0x00000a9a movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000a9e pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00000aa2 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x6f, 0xd6, //0x00000aa6 movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00000aaa pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00000aae pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x30, //0x00000ab2 shlq $48, %rcx + 0x48, 0xc1, 0xe3, 0x20, //0x00000ab6 shlq $32, %rbx + 0x49, 0xc1, 0xe4, 0x10, //0x00000aba shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x00000abe orq %r12, %r15 + 0x49, 0x09, 0xdf, //0x00000ac1 orq %rbx, %r15 + 0x49, 0x09, 0xcf, //0x00000ac4 orq %rcx, %r15 + 0x4c, 0x89, 0xc9, //0x00000ac7 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000aca notq %rcx + 0x49, 0x21, 0xcf, //0x00000acd andq %rcx, %r15 + 0x66, 0x0f, 0x74, 0xc4, //0x00000ad0 pcmpeqb %xmm4, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x00000ad4 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x74, 0xec, //0x00000ad9 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00000add pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00000ae1 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00000ae5 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x00000aea pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x00000aee pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x00000af3 shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x00000af7 shlq $32, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x00000afb shlq $16, %rbx + 0x49, 0x09, 0xdc, //0x00000aff orq %rbx, %r12 + 0x4d, 0x09, 0xd4, //0x00000b02 orq %r10, %r12 + 0x4d, 0x09, 0xec, //0x00000b05 orq %r13, %r12 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000b08 movabsq $6148914691236517205, %r13 + 0x49, 0xba, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00000b12 movabsq $3689348814741910323, %r10 + 0x49, 0x21, 0xcc, //0x00000b1c andq %rcx, %r12 + 0x0f, 0x84, 0xd3, 0xfd, 0xff, 0xff, //0x00000b1f je LBB0_85 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b25 .p2align 4, 0x90 + //0x00000b30 LBB0_91 + 0x49, 0x8d, 0x54, 0x24, 0xff, //0x00000b30 leaq $-1(%r12), %rdx + 0x48, 0x89, 0xd3, //0x00000b35 movq %rdx, %rbx + 0x4c, 0x21, 0xfb, //0x00000b38 andq %r15, %rbx + 0x48, 0x89, 0xd9, //0x00000b3b movq %rbx, %rcx + 0x48, 0xd1, 0xe9, //0x00000b3e shrq %rcx + 0x4c, 0x21, 0xe9, //0x00000b41 andq %r13, %rcx + 0x48, 0x29, 0xcb, //0x00000b44 subq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00000b47 movq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00000b4a andq %r10, %rcx + 0x48, 0xc1, 0xeb, 0x02, //0x00000b4d shrq $2, %rbx + 0x4c, 0x21, 0xd3, //0x00000b51 andq %r10, %rbx + 0x48, 0x01, 0xcb, //0x00000b54 addq %rcx, %rbx + 0x48, 0x89, 0xd9, //0x00000b57 movq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x04, //0x00000b5a shrq $4, %rcx + 0x48, 0x01, 0xd9, //0x00000b5e addq %rbx, %rcx + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000b61 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd9, //0x00000b6b andq %rbx, %rcx + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00000b6e movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xcb, //0x00000b78 imulq %rbx, %rcx + 0x48, 0xc1, 0xe9, 0x38, //0x00000b7c shrq $56, %rcx + 0x48, 0x03, 0x4d, 0xc0, //0x00000b80 addq $-64(%rbp), %rcx + 0x4c, 0x39, 0xd9, //0x00000b84 cmpq %r11, %rcx + 0x0f, 0x86, 0x53, 0x01, 0x00, 0x00, //0x00000b87 jbe LBB0_109 + 0x49, 0xff, 0xc3, //0x00000b8d incq %r11 + 0x49, 0x21, 0xd4, //0x00000b90 andq %rdx, %r12 + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00000b93 jne LBB0_91 + 0xe9, 0x5a, 0xfd, 0xff, 0xff, //0x00000b99 jmp LBB0_85 + //0x00000b9e LBB0_93 + 0x48, 0x85, 0xc9, //0x00000b9e testq %rcx, %rcx + 0x0f, 0x8e, 0xf6, 0x01, 0x00, 0x00, //0x00000ba1 jle LBB0_118 + 0x4c, 0x89, 0xd3, //0x00000ba7 movq %r10, %rbx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x00000baa movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x00000baf movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00000bb4 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00000bb9 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc1, //0x00000bbe movl %r8d, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00000bc1 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00000bc7 cmpl $4033, %ecx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00000bcd jb LBB0_97 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00000bd3 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00000bd8 jb LBB0_98 + 0x41, 0x0f, 0x10, 0x00, //0x00000bde movups (%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00000be2 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x40, 0x10, //0x00000be6 movups $16(%r8), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x00000beb movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc0, 0x20, //0x00000bef addq $32, %r8 + 0x48, 0x8b, 0x4d, 0xd0, //0x00000bf3 movq $-48(%rbp), %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00000bf7 leaq $-32(%rcx), %rdx + 0x4c, 0x8d, 0x4d, 0xa0, //0x00000bfb leaq $-96(%rbp), %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00000bff jmp LBB0_99 + //0x00000c04 LBB0_97 + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c04 movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00000c0e movq %rbx, %r10 + 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x00000c11 jmp LBB0_87 + //0x00000c16 LBB0_98 + 0x4c, 0x8d, 0x4d, 0x80, //0x00000c16 leaq $-128(%rbp), %r9 + 0x48, 0x8b, 0x55, 0xd0, //0x00000c1a movq $-48(%rbp), %rdx + //0x00000c1e LBB0_99 + 0x48, 0x83, 0xfa, 0x10, //0x00000c1e cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00000c22 jb LBB0_100 + 0x41, 0x0f, 0x10, 0x00, //0x00000c28 movups (%r8), %xmm0 + 0x41, 0x0f, 0x11, 0x01, //0x00000c2c movups %xmm0, (%r9) + 0x49, 0x83, 0xc0, 0x10, //0x00000c30 addq $16, %r8 + 0x49, 0x83, 0xc1, 0x10, //0x00000c34 addq $16, %r9 + 0x48, 0x83, 0xc2, 0xf0, //0x00000c38 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x00000c3c cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00000c40 jae LBB0_107 + //0x00000c46 LBB0_101 + 0x48, 0x83, 0xfa, 0x04, //0x00000c46 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x00000c4a jl LBB0_102 + //0x00000c50 LBB0_108 + 0x41, 0x8b, 0x08, //0x00000c50 movl (%r8), %ecx + 0x41, 0x89, 0x09, //0x00000c53 movl %ecx, (%r9) + 0x49, 0x83, 0xc0, 0x04, //0x00000c56 addq $4, %r8 + 0x49, 0x83, 0xc1, 0x04, //0x00000c5a addq $4, %r9 + 0x48, 0x83, 0xc2, 0xfc, //0x00000c5e addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000c62 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00000c66 jae LBB0_103 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x00000c6c jmp LBB0_104 + //0x00000c71 LBB0_100 + 0x48, 0x83, 0xfa, 0x08, //0x00000c71 cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00000c75 jb LBB0_101 + //0x00000c7b LBB0_107 + 0x49, 0x8b, 0x08, //0x00000c7b movq (%r8), %rcx + 0x49, 0x89, 0x09, //0x00000c7e movq %rcx, (%r9) + 0x49, 0x83, 0xc0, 0x08, //0x00000c81 addq $8, %r8 + 0x49, 0x83, 0xc1, 0x08, //0x00000c85 addq $8, %r9 + 0x48, 0x83, 0xc2, 0xf8, //0x00000c89 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00000c8d cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x00000c91 jge LBB0_108 + //0x00000c97 LBB0_102 + 0x48, 0x83, 0xfa, 0x02, //0x00000c97 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00000c9b jb LBB0_104 + //0x00000ca1 LBB0_103 + 0x41, 0x0f, 0xb7, 0x08, //0x00000ca1 movzwl (%r8), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00000ca5 movw %cx, (%r9) + 0x49, 0x83, 0xc0, 0x02, //0x00000ca9 addq $2, %r8 + 0x49, 0x83, 0xc1, 0x02, //0x00000cad addq $2, %r9 + 0x48, 0x83, 0xc2, 0xfe, //0x00000cb1 addq $-2, %rdx + //0x00000cb5 LBB0_104 + 0x4c, 0x89, 0xc1, //0x00000cb5 movq %r8, %rcx + 0x4c, 0x8d, 0x45, 0x80, //0x00000cb8 leaq $-128(%rbp), %r8 + 0x48, 0x85, 0xd2, //0x00000cbc testq %rdx, %rdx + 0x49, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000cbf movabsq $6148914691236517205, %r13 + 0x49, 0x89, 0xda, //0x00000cc9 movq %rbx, %r10 + 0x0f, 0x84, 0x94, 0xfc, 0xff, 0xff, //0x00000ccc je LBB0_87 + 0x8a, 0x09, //0x00000cd2 movb (%rcx), %cl + 0x41, 0x88, 0x09, //0x00000cd4 movb %cl, (%r9) + 0x4c, 0x8d, 0x45, 0x80, //0x00000cd7 leaq $-128(%rbp), %r8 + 0xe9, 0x86, 0xfc, 0xff, 0xff, //0x00000cdb jmp LBB0_87 + //0x00000ce0 LBB0_109 + 0x48, 0x8b, 0x47, 0x08, //0x00000ce0 movq $8(%rdi), %rax + 0x49, 0x0f, 0xbc, 0xcc, //0x00000ce4 bsfq %r12, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00000ce8 subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x44, 0x01, 0x01, //0x00000cec leaq $1(%rcx,%rax), %rax + 0x48, 0x89, 0x06, //0x00000cf1 movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00000cf4 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00000cf8 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x00000cfb cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x00000cff movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d02 movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xf0, //0x00000d09 cmovaq %rax, %r14 + 0xe9, 0xfd, 0xf5, 0xff, 0xff, //0x00000d0d jmp LBB0_44 + //0x00000d12 LBB0_54 + 0x4d, 0x85, 0xe4, //0x00000d12 testq %r12, %r12 + 0x0f, 0x85, 0x8e, 0x00, 0x00, 0x00, //0x00000d15 jne LBB0_119 + 0x4b, 0x8d, 0x5c, 0x1f, 0x01, //0x00000d1b leaq $1(%r15,%r11), %rbx + 0x49, 0xf7, 0xd7, //0x00000d20 notq %r15 + 0x4d, 0x01, 0xcf, //0x00000d23 addq %r9, %r15 + //0x00000d26 LBB0_56 + 0x4d, 0x85, 0xff, //0x00000d26 testq %r15, %r15 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00000d29 jg LBB0_113 + 0xe9, 0xde, 0xf5, 0xff, 0xff, //0x00000d2f jmp LBB0_45 + //0x00000d34 LBB0_111 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00000d34 movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00000d3b movl $2, %eax + 0x48, 0x01, 0xc3, //0x00000d40 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d43 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x00000d4a addq %rcx, %r15 + 0x0f, 0x8e, 0xbf, 0xf5, 0xff, 0xff, //0x00000d4d jle LBB0_45 + //0x00000d53 LBB0_113 + 0x0f, 0xb6, 0x03, //0x00000d53 movzbl (%rbx), %eax + 0x3c, 0x5c, //0x00000d56 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00000d58 je LBB0_111 + 0x3c, 0x22, //0x00000d5e cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00000d60 je LBB0_116 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000d66 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000d6d movl $1, %eax + 0x48, 0x01, 0xc3, //0x00000d72 addq %rax, %rbx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d75 movq $-1, %rax + 0x49, 0x01, 0xcf, //0x00000d7c addq %rcx, %r15 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x00000d7f jg LBB0_113 + 0xe9, 0x88, 0xf5, 0xff, 0xff, //0x00000d85 jmp LBB0_45 + //0x00000d8a LBB0_116 + 0x4c, 0x29, 0xc3, //0x00000d8a subq %r8, %rbx + 0x48, 0xff, 0xc3, //0x00000d8d incq %rbx + 0xe9, 0x77, 0xf5, 0xff, 0xff, //0x00000d90 jmp LBB0_43 + //0x00000d95 LBB0_117 + 0x4c, 0x01, 0xc3, //0x00000d95 addq %r8, %rbx + 0xe9, 0x89, 0xff, 0xff, 0xff, //0x00000d98 jmp LBB0_56 + //0x00000d9d LBB0_118 + 0x48, 0x8b, 0x4f, 0x08, //0x00000d9d movq $8(%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00000da1 movq %rcx, (%rsi) + 0xe9, 0x69, 0xf5, 0xff, 0xff, //0x00000da4 jmp LBB0_45 + //0x00000da9 LBB0_119 + 0x49, 0x8d, 0x49, 0xff, //0x00000da9 leaq $-1(%r9), %rcx + 0x4c, 0x39, 0xf9, //0x00000dad cmpq %r15, %rcx + 0x0f, 0x84, 0x5c, 0xf5, 0xff, 0xff, //0x00000db0 je LBB0_45 + 0x4b, 0x8d, 0x5c, 0x1f, 0x02, //0x00000db6 leaq $2(%r15,%r11), %rbx + 0x4d, 0x29, 0xf9, //0x00000dbb subq %r15, %r9 + 0x49, 0x83, 0xc1, 0xfe, //0x00000dbe addq $-2, %r9 + 0x4d, 0x89, 0xcf, //0x00000dc2 movq %r9, %r15 + 0xe9, 0x5c, 0xff, 0xff, 0xff, //0x00000dc5 jmp LBB0_56 + 0x90, 0x90, //0x00000dca .p2align 2, 0x90 + // // .set L0_0_set_45, LBB0_45-LJTI0_0 + // // .set L0_0_set_47, LBB0_47-LJTI0_0 + // // .set L0_0_set_48, LBB0_48-LJTI0_0 + // // .set L0_0_set_29, LBB0_29-LJTI0_0 + // // .set L0_0_set_57, LBB0_57-LJTI0_0 + // // .set L0_0_set_82, LBB0_82-LJTI0_0 + // // .set L0_0_set_46, LBB0_46-LJTI0_0 + // // .set L0_0_set_84, LBB0_84-LJTI0_0 + //0x00000dcc LJTI0_0 + 0x46, 0xf5, 0xff, 0xff, //0x00000dcc .long L0_0_set_45 + 0x68, 0xf5, 0xff, 0xff, //0x00000dd0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000dd4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000dd8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ddc .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000de0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000de4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000de8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000dec .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000df0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000df4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000df8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000dfc .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e00 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e04 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e08 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e0c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e10 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e14 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e18 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e1c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e20 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e24 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e28 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e2c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e30 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e34 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e38 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e3c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e40 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e44 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e48 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e4c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e50 .long L0_0_set_47 + 0x77, 0xf5, 0xff, 0xff, //0x00000e54 .long L0_0_set_48 + 0x68, 0xf5, 0xff, 0xff, //0x00000e58 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e5c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e60 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e64 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e68 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e6c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e70 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e74 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e78 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e7c .long L0_0_set_47 + 0x5f, 0xf4, 0xff, 0xff, //0x00000e80 .long L0_0_set_29 + 0x68, 0xf5, 0xff, 0xff, //0x00000e84 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000e88 .long L0_0_set_47 + 0x5f, 0xf4, 0xff, 0xff, //0x00000e8c .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000e90 .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000e94 .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000e98 .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000e9c .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000ea0 .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000ea4 .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000ea8 .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000eac .long L0_0_set_29 + 0x5f, 0xf4, 0xff, 0xff, //0x00000eb0 .long L0_0_set_29 + 0x68, 0xf5, 0xff, 0xff, //0x00000eb4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000eb8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ebc .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ec0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ec4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ec8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ecc .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ed0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ed4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ed8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000edc .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ee0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ee4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ee8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000eec .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ef0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ef4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000ef8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000efc .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f00 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f04 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f08 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f0c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f10 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f14 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f18 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f1c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f20 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f24 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f28 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f2c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f30 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f34 .long L0_0_set_47 + 0x8e, 0xf6, 0xff, 0xff, //0x00000f38 .long L0_0_set_57 + 0x68, 0xf5, 0xff, 0xff, //0x00000f3c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f40 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f44 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f48 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f4c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f50 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f54 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f58 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f5c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f60 .long L0_0_set_47 + 0xc4, 0xfa, 0xff, 0xff, //0x00000f64 .long L0_0_set_82 + 0x68, 0xf5, 0xff, 0xff, //0x00000f68 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f6c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f70 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f74 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f78 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f7c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f80 .long L0_0_set_47 + 0x55, 0xf5, 0xff, 0xff, //0x00000f84 .long L0_0_set_46 + 0x68, 0xf5, 0xff, 0xff, //0x00000f88 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f8c .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f90 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f94 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000f98 .long L0_0_set_47 + 0x55, 0xf5, 0xff, 0xff, //0x00000f9c .long L0_0_set_46 + 0x68, 0xf5, 0xff, 0xff, //0x00000fa0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000fa4 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000fa8 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000fac .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000fb0 .long L0_0_set_47 + 0x68, 0xf5, 0xff, 0xff, //0x00000fb4 .long L0_0_set_47 + 0xda, 0xfa, 0xff, 0xff, //0x00000fb8 .long L0_0_set_84 + //0x00000fbc .p2align 2, 0x00 + //0x00000fbc _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000fbc .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_subr.go new file mode 100644 index 000000000..399e30718 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__skip_one = 144 +) + +const ( + _stack__skip_one = 160 +) + +const ( + _size__skip_one = 10040 +) + +var ( + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9936, 160}, + {9940, 48}, + {9941, 40}, + {9943, 32}, + {9945, 24}, + {9947, 16}, + {9949, 8}, + {9950, 0}, + {10040, 160}, + } +) + +var _cfunc_skip_one = []loader.CFunc{ + {"_skip_one_entry", 0, _entry__skip_one, 0, nil}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_text_amd64.go new file mode 100644 index 000000000..23c8031ce --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/skip_one_text_amd64.go @@ -0,0 +1,2974 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_skip_one = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 LCPI0_3 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000030 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000040 LCPI0_4 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000040 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000050 LCPI0_5 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_6 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000070 LCPI0_7 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000080 LCPI0_8 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000080 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000090 .p2align 4, 0x90 + //0x00000090 _skip_one + 0x55, //0x00000090 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000091 movq %rsp, %rbp + 0x41, 0x57, //0x00000094 pushq %r15 + 0x41, 0x56, //0x00000096 pushq %r14 + 0x41, 0x55, //0x00000098 pushq %r13 + 0x41, 0x54, //0x0000009a pushq %r12 + 0x53, //0x0000009c pushq %rbx + 0x48, 0x83, 0xec, 0x70, //0x0000009d subq $112, %rsp + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x000000a1 movq %rcx, $-136(%rbp) + 0x49, 0x89, 0xd0, //0x000000a8 movq %rdx, %r8 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000000ab movl $1, %r9d + 0x66, 0x49, 0x0f, 0x6e, 0xc1, //0x000000b1 movq %r9, %xmm0 + 0xf3, 0x0f, 0x7f, 0x02, //0x000000b6 movdqu %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x90, //0x000000ba movq %rdi, $-112(%rbp) + 0x4c, 0x8b, 0x17, //0x000000be movq (%rdi), %r10 + 0x4c, 0x89, 0xd0, //0x000000c1 movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000000c4 notq %rax + 0x48, 0x89, 0x45, 0xa8, //0x000000c7 movq %rax, $-88(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000cb movl $1, %eax + 0x4c, 0x29, 0xd0, //0x000000d0 subq %r10, %rax + 0x48, 0x89, 0x45, 0x98, //0x000000d3 movq %rax, $-104(%rbp) + 0x49, 0x8d, 0x42, 0x40, //0x000000d7 leaq $64(%r10), %rax + 0x48, 0x89, 0x45, 0x88, //0x000000db movq %rax, $-120(%rbp) + 0x4c, 0x8b, 0x1e, //0x000000df movq (%rsi), %r11 + 0x49, 0x8d, 0x42, 0x05, //0x000000e2 leaq $5(%r10), %rax + 0x48, 0x89, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000000e6 movq %rax, $-152(%rbp) + 0x48, 0xc7, 0x85, 0x70, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x000000ed movq $-1, $-144(%rbp) + 0xf3, 0x0f, 0x6f, 0x05, 0x00, 0xff, 0xff, 0xff, //0x000000f8 movdqu $-256(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x08, 0xff, 0xff, 0xff, //0x00000100 movdqu $-248(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x10, 0xff, 0xff, 0xff, //0x00000108 movdqu $-240(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xf6, //0x00000110 pcmpeqd %xmm14, %xmm14 + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x12, 0xff, 0xff, 0xff, //0x00000115 movdqu $-238(%rip), %xmm8 /* LCPI0_3+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x2d, 0x19, 0xff, 0xff, 0xff, //0x0000011e movdqu $-231(%rip), %xmm13 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0x20, 0xff, 0xff, 0xff, //0x00000127 movdqu $-224(%rip), %xmm9 /* LCPI0_5+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x27, 0xff, 0xff, 0xff, //0x00000130 movdqu $-217(%rip), %xmm10 /* LCPI0_6+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x1d, 0x2e, 0xff, 0xff, 0xff, //0x00000139 movdqu $-210(%rip), %xmm11 /* LCPI0_7+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x25, 0x35, 0xff, 0xff, 0xff, //0x00000142 movdqu $-203(%rip), %xmm12 /* LCPI0_8+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000014b movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x55, 0xd0, //0x0000014f movq %r10, $-48(%rbp) + 0x48, 0x89, 0x55, 0xa0, //0x00000153 movq %rdx, $-96(%rbp) + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000157 jmp LBB0_5 + //0x0000015c LBB0_1 + 0x4d, 0x01, 0xfb, //0x0000015c addq %r15, %r11 + //0x0000015f LBB0_2 + 0x4c, 0x89, 0x1e, //0x0000015f movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000162 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00000165 testq %r15, %r15 + 0x0f, 0x88, 0xf2, 0x25, 0x00, 0x00, //0x00000168 js LBB0_150 + 0x90, 0x90, //0x0000016e .p2align 4, 0x90 + //0x00000170 LBB0_3 + 0x49, 0x8b, 0x10, //0x00000170 movq (%r8), %rdx + 0x49, 0x89, 0xd1, //0x00000173 movq %rdx, %r9 + 0x48, 0x8b, 0x85, 0x70, 0xff, 0xff, 0xff, //0x00000176 movq $-144(%rbp), %rax + 0x48, 0x85, 0xd2, //0x0000017d testq %rdx, %rdx + 0x0f, 0x84, 0xda, 0x25, 0x00, 0x00, //0x00000180 je LBB0_150 + //0x00000186 LBB0_5 + 0x48, 0x8b, 0x45, 0x90, //0x00000186 movq $-112(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x0000018a movq $8(%rax), %rax + 0x4c, 0x89, 0xdb, //0x0000018e movq %r11, %rbx + 0x48, 0x29, 0xc3, //0x00000191 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00000194 jae LBB0_10 + 0x43, 0x8a, 0x14, 0x1a, //0x0000019a movb (%r10,%r11), %dl + 0x80, 0xfa, 0x0d, //0x0000019e cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001a1 je LBB0_10 + 0x80, 0xfa, 0x20, //0x000001a7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001aa je LBB0_10 + 0x80, 0xc2, 0xf7, //0x000001b0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001b3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001b6 jbe LBB0_10 + 0x4d, 0x89, 0xdf, //0x000001bc movq %r11, %r15 + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x000001bf jmp LBB0_31 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001c4 .p2align 4, 0x90 + //0x000001d0 LBB0_10 + 0x4d, 0x8d, 0x7b, 0x01, //0x000001d0 leaq $1(%r11), %r15 + 0x49, 0x39, 0xc7, //0x000001d4 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000001d7 jae LBB0_14 + 0x43, 0x8a, 0x14, 0x3a, //0x000001dd movb (%r10,%r15), %dl + 0x80, 0xfa, 0x0d, //0x000001e1 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000001e4 je LBB0_14 + 0x80, 0xfa, 0x20, //0x000001ea cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000001ed je LBB0_14 + 0x80, 0xc2, 0xf7, //0x000001f3 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001f6 cmpb $1, %dl + 0x0f, 0x87, 0xfe, 0x00, 0x00, 0x00, //0x000001f9 ja LBB0_31 + 0x90, //0x000001ff .p2align 4, 0x90 + //0x00000200 LBB0_14 + 0x4d, 0x8d, 0x7b, 0x02, //0x00000200 leaq $2(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000204 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000207 jae LBB0_18 + 0x43, 0x8a, 0x14, 0x3a, //0x0000020d movb (%r10,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000211 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000214 je LBB0_18 + 0x80, 0xfa, 0x20, //0x0000021a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000021d je LBB0_18 + 0x80, 0xc2, 0xf7, //0x00000223 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000226 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000229 ja LBB0_31 + 0x90, //0x0000022f .p2align 4, 0x90 + //0x00000230 LBB0_18 + 0x4d, 0x8d, 0x7b, 0x03, //0x00000230 leaq $3(%r11), %r15 + 0x49, 0x39, 0xc7, //0x00000234 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000237 jae LBB0_22 + 0x43, 0x8a, 0x14, 0x3a, //0x0000023d movb (%r10,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000241 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000244 je LBB0_22 + 0x80, 0xfa, 0x20, //0x0000024a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000024d je LBB0_22 + 0x80, 0xc2, 0xf7, //0x00000253 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000256 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000259 ja LBB0_31 + 0x90, //0x0000025f .p2align 4, 0x90 + //0x00000260 LBB0_22 + 0x49, 0x8d, 0x53, 0x04, //0x00000260 leaq $4(%r11), %rdx + 0x48, 0x39, 0xd0, //0x00000264 cmpq %rdx, %rax + 0x0f, 0x86, 0xfb, 0x22, 0x00, 0x00, //0x00000267 jbe LBB0_425 + 0x48, 0x39, 0xd0, //0x0000026d cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00000270 je LBB0_28 + 0x49, 0x8d, 0x14, 0x02, //0x00000276 leaq (%r10,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x0000027a addq $4, %rbx + 0x4c, 0x03, 0x9d, 0x68, 0xff, 0xff, 0xff, //0x0000027e addq $-152(%rbp), %r11 + 0x4d, 0x89, 0xdf, //0x00000285 movq %r11, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000288 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000292 .p2align 4, 0x90 + //0x000002a0 LBB0_25 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002a0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002a5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002a8 ja LBB0_30 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002ae btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002b2 jae LBB0_30 + 0x49, 0xff, 0xc7, //0x000002b8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002bb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002be jne LBB0_25 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000002c4 jmp LBB0_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002c9 .p2align 4, 0x90 + //0x000002d0 LBB0_28 + 0x4c, 0x01, 0xd2, //0x000002d0 addq %r10, %rdx + //0x000002d3 LBB0_29 + 0x4c, 0x29, 0xd2, //0x000002d3 subq %r10, %rdx + 0x49, 0x89, 0xd7, //0x000002d6 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x000002d9 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x000002dc jb LBB0_31 + 0xe9, 0x84, 0x22, 0x00, 0x00, //0x000002e2 jmp LBB0_426 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002e7 .p2align 4, 0x90 + //0x000002f0 LBB0_30 + 0x4c, 0x03, 0x7d, 0xa8, //0x000002f0 addq $-88(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x000002f4 cmpq %rax, %r15 + 0x0f, 0x83, 0x6e, 0x22, 0x00, 0x00, //0x000002f7 jae LBB0_426 + //0x000002fd LBB0_31 + 0x4d, 0x8d, 0x5f, 0x01, //0x000002fd leaq $1(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00000301 movq %r11, (%rsi) + 0x43, 0x0f, 0xbe, 0x1c, 0x3a, //0x00000304 movsbl (%r10,%r15), %ebx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000309 movq $-1, %rax + 0x85, 0xdb, //0x00000310 testl %ebx, %ebx + 0x0f, 0x84, 0x48, 0x24, 0x00, 0x00, //0x00000312 je LBB0_150 + 0x49, 0x8d, 0x51, 0xff, //0x00000318 leaq $-1(%r9), %rdx + 0x43, 0x8b, 0x3c, 0xc8, //0x0000031c movl (%r8,%r9,8), %edi + 0x48, 0x8b, 0x8d, 0x70, 0xff, 0xff, 0xff, //0x00000320 movq $-144(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00000327 cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x0000032b cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x70, 0xff, 0xff, 0xff, //0x0000032f movq %rcx, $-144(%rbp) + 0xff, 0xcf, //0x00000336 decl %edi + 0x83, 0xff, 0x05, //0x00000338 cmpl $5, %edi + 0x0f, 0x87, 0x59, 0x02, 0x00, 0x00, //0x0000033b ja LBB0_64 + 0x48, 0x8d, 0x0d, 0x80, 0x24, 0x00, 0x00, //0x00000341 leaq $9344(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xb9, //0x00000348 movslq (%rcx,%rdi,4), %rdi + 0x48, 0x01, 0xcf, //0x0000034c addq %rcx, %rdi + 0xff, 0xe7, //0x0000034f jmpq *%rdi + //0x00000351 LBB0_34 + 0x83, 0xfb, 0x2c, //0x00000351 cmpl $44, %ebx + 0x0f, 0x84, 0x07, 0x07, 0x00, 0x00, //0x00000354 je LBB0_122 + 0x83, 0xfb, 0x5d, //0x0000035a cmpl $93, %ebx + 0x0f, 0x84, 0xc4, 0x04, 0x00, 0x00, //0x0000035d je LBB0_36 + 0xe9, 0xa0, 0x22, 0x00, 0x00, //0x00000363 jmp LBB0_440 + //0x00000368 LBB0_37 + 0x80, 0xfb, 0x5d, //0x00000368 cmpb $93, %bl + 0x0f, 0x84, 0xb6, 0x04, 0x00, 0x00, //0x0000036b je LBB0_36 + 0x4b, 0xc7, 0x04, 0xc8, 0x01, 0x00, 0x00, 0x00, //0x00000371 movq $1, (%r8,%r9,8) + 0x83, 0xfb, 0x7b, //0x00000379 cmpl $123, %ebx + 0x0f, 0x86, 0x24, 0x02, 0x00, 0x00, //0x0000037c jbe LBB0_39 + 0xe9, 0x81, 0x22, 0x00, 0x00, //0x00000382 jmp LBB0_440 + //0x00000387 LBB0_40 + 0x80, 0xfb, 0x22, //0x00000387 cmpb $34, %bl + 0x0f, 0x85, 0x78, 0x22, 0x00, 0x00, //0x0000038a jne LBB0_440 + 0x4b, 0xc7, 0x04, 0xc8, 0x04, 0x00, 0x00, 0x00, //0x00000390 movq $4, (%r8,%r9,8) + 0x48, 0x8b, 0x45, 0x90, //0x00000398 movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x48, 0x08, //0x0000039c movq $8(%rax), %r9 + 0xf6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x20, //0x000003a0 testb $32, $-136(%rbp) + 0x4c, 0x89, 0x5d, 0xb0, //0x000003a7 movq %r11, $-80(%rbp) + 0x0f, 0x85, 0x91, 0x04, 0x00, 0x00, //0x000003ab jne LBB0_101 + 0x4d, 0x89, 0xcd, //0x000003b1 movq %r9, %r13 + 0x4d, 0x29, 0xdd, //0x000003b4 subq %r11, %r13 + 0x0f, 0x84, 0x71, 0x23, 0x00, 0x00, //0x000003b7 je LBB0_456 + 0x4c, 0x89, 0xd8, //0x000003bd movq %r11, %rax + 0x4d, 0x01, 0xd3, //0x000003c0 addq %r10, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x000003c3 cmpq $64, %r13 + 0x0f, 0x82, 0xc8, 0x1b, 0x00, 0x00, //0x000003c7 jb LBB0_362 + 0x44, 0x89, 0xe9, //0x000003cd movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x000003d0 andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb8, //0x000003d3 movq %rcx, $-72(%rbp) + 0x4c, 0x89, 0xc9, //0x000003d7 movq %r9, %rcx + 0x4c, 0x29, 0xf9, //0x000003da subq %r15, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x000003dd addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x000003e1 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x000003e5 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x000003e8 addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0x80, //0x000003ec movq %rcx, $-128(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000003f0 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x000003f7 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000003fa .p2align 4, 0x90 + //0x00000400 LBB0_45 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000400 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000405 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x0000040b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000411 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000417 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000041b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x0000041f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000423 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000427 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x0000042b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x0000042f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000433 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000437 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x0000043b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000043f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000443 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000447 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000044b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x0000044f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000453 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000457 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x0000045b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x00000460 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00000464 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x00000469 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x0000046d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000471 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000475 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000478 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x0000047b shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x0000047f shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000483 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000487 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x0000048a orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x0000048d orq %r12, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000490 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000494 jne LBB0_47 + 0x48, 0x85, 0xd2, //0x0000049a testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000049d jne LBB0_56 + //0x000004a3 LBB0_47 + 0x48, 0x09, 0xdf, //0x000004a3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004a6 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x000004a9 orq %r10, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004ac jne LBB0_57 + //0x000004b2 LBB0_48 + 0x48, 0x85, 0xff, //0x000004b2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000004b5 jne LBB0_58 + //0x000004bb LBB0_49 + 0x49, 0x83, 0xc5, 0xc0, //0x000004bb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x000004bf addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x000004c3 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x000004c7 ja LBB0_45 + 0xe9, 0xaf, 0x13, 0x00, 0x00, //0x000004cd jmp LBB0_50 + //0x000004d2 LBB0_56 + 0x4c, 0x89, 0xd8, //0x000004d2 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000004d5 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x000004d9 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x000004dd addq %rax, %r8 + 0x48, 0x09, 0xdf, //0x000004e0 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004e3 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x000004e6 orq %r10, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000004e9 je LBB0_48 + //0x000004ef LBB0_57 + 0x4c, 0x89, 0xd0, //0x000004ef movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x000004f2 notq %rax + 0x48, 0x21, 0xd0, //0x000004f5 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000004f8 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xd1, //0x000004fc orq %r10, %rcx + 0x48, 0x89, 0xce, //0x000004ff movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000502 notq %rsi + 0x48, 0x21, 0xd6, //0x00000505 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000508 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000512 andq %rdx, %rsi + 0x45, 0x31, 0xd2, //0x00000515 xorl %r10d, %r10d + 0x48, 0x01, 0xc6, //0x00000518 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc2, //0x0000051b setb %r10b + 0x48, 0x01, 0xf6, //0x0000051f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000522 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000052c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000052f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000532 notq %rsi + 0x48, 0x21, 0xf7, //0x00000535 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000538 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x0000053b je LBB0_49 + //0x00000541 LBB0_58 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000541 bsfq %rdi, %rax + //0x00000545 LBB0_59 + 0x4c, 0x03, 0x5d, 0x98, //0x00000545 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000549 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x0000054c movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000550 movq $-48(%rbp), %r10 + 0xe9, 0x08, 0x0a, 0x00, 0x00, //0x00000554 jmp LBB0_189 + //0x00000559 LBB0_60 + 0x83, 0xfb, 0x2c, //0x00000559 cmpl $44, %ebx + 0x0f, 0x85, 0xbc, 0x02, 0x00, 0x00, //0x0000055c jne LBB0_61 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00000562 cmpq $4095, %r9 + 0x0f, 0x8f, 0x08, 0x20, 0x00, 0x00, //0x00000569 jg LBB0_442 + 0x49, 0x8d, 0x41, 0x01, //0x0000056f leaq $1(%r9), %rax + 0x49, 0x89, 0x00, //0x00000573 movq %rax, (%r8) + 0x4b, 0xc7, 0x44, 0xc8, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00000576 movq $3, $8(%r8,%r9,8) + 0xe9, 0xec, 0xfb, 0xff, 0xff, //0x0000057f jmp LBB0_3 + //0x00000584 LBB0_62 + 0x80, 0xfb, 0x3a, //0x00000584 cmpb $58, %bl + 0x0f, 0x85, 0x7b, 0x20, 0x00, 0x00, //0x00000587 jne LBB0_440 + 0x4b, 0xc7, 0x04, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x0000058d movq $0, (%r8,%r9,8) + 0xe9, 0xd6, 0xfb, 0xff, 0xff, //0x00000595 jmp LBB0_3 + //0x0000059a LBB0_64 + 0x49, 0x89, 0x10, //0x0000059a movq %rdx, (%r8) + 0x83, 0xfb, 0x7b, //0x0000059d cmpl $123, %ebx + 0x0f, 0x87, 0x62, 0x20, 0x00, 0x00, //0x000005a0 ja LBB0_440 + //0x000005a6 LBB0_39 + 0x4f, 0x8d, 0x0c, 0x3a, //0x000005a6 leaq (%r10,%r15), %r9 + 0x89, 0xd9, //0x000005aa movl %ebx, %ecx + 0x48, 0x8d, 0x15, 0x2d, 0x22, 0x00, 0x00, //0x000005ac leaq $8749(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000005b3 movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000005b7 addq %rdx, %rcx + 0xff, 0xe1, //0x000005ba jmpq *%rcx + //0x000005bc LBB0_67 + 0x48, 0x8b, 0x45, 0x90, //0x000005bc movq $-112(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x000005c0 movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x000005c4 subq %r15, %rdi + 0x0f, 0x84, 0xcf, 0x1f, 0x00, 0x00, //0x000005c7 je LBB0_429 + 0x41, 0x80, 0x39, 0x30, //0x000005cd cmpb $48, (%r9) + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000005d1 jne LBB0_72 + 0x48, 0x83, 0xff, 0x01, //0x000005d7 cmpq $1, %rdi + 0x0f, 0x84, 0x7e, 0xfb, 0xff, 0xff, //0x000005db je LBB0_2 + 0x43, 0x8a, 0x04, 0x1a, //0x000005e1 movb (%r10,%r11), %al + 0x04, 0xd2, //0x000005e5 addb $-46, %al + 0x3c, 0x37, //0x000005e7 cmpb $55, %al + 0x0f, 0x87, 0x70, 0xfb, 0xff, 0xff, //0x000005e9 ja LBB0_2 + 0x0f, 0xb6, 0xc0, //0x000005ef movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000005f2 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x000005fc btq %rax, %rcx + 0x0f, 0x83, 0x59, 0xfb, 0xff, 0xff, //0x00000600 jae LBB0_2 + //0x00000606 LBB0_72 + 0x48, 0x83, 0xff, 0x10, //0x00000606 cmpq $16, %rdi + 0x0f, 0x82, 0xcb, 0x18, 0x00, 0x00, //0x0000060a jb LBB0_351 + 0x48, 0x8d, 0x77, 0xf0, //0x00000610 leaq $-16(%rdi), %rsi + 0x48, 0x89, 0xf0, //0x00000614 movq %rsi, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000617 andq $-16, %rax + 0x4a, 0x8d, 0x44, 0x08, 0x10, //0x0000061b leaq $16(%rax,%r9), %rax + 0x48, 0x89, 0x45, 0xb0, //0x00000620 movq %rax, $-80(%rbp) + 0x83, 0xe6, 0x0f, //0x00000624 andl $15, %esi + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00000627 movq $-1, %r10 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x0000062e movq $-1, %r13 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000635 movq $-1, %r11 + 0x4d, 0x89, 0xce, //0x0000063c movq %r9, %r14 + 0x90, //0x0000063f .p2align 4, 0x90 + //0x00000640 LBB0_74 + 0xf3, 0x41, 0x0f, 0x6f, 0x1e, //0x00000640 movdqu (%r14), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00000645 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x00000649 pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x0000064e movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00000653 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00000657 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x0000065b movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x0000065f pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x00000664 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x00000668 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x0000066d por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x00000671 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x00000675 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x00000679 pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x0000067e pcmpeqb %xmm12, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xe4, //0x00000683 pmovmskb %xmm4, %r12d + 0x66, 0x0f, 0xeb, 0xe3, //0x00000688 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x0000068c por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x00000690 por %xmm4, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x00000694 pmovmskb %xmm3, %r8d + 0x66, 0x0f, 0xd7, 0xd6, //0x00000699 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xc5, //0x0000069d pmovmskb %xmm5, %eax + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x000006a1 movl $2863311530, %ecx + 0x48, 0x81, 0xc1, 0x55, 0x55, 0x55, 0x55, //0x000006a6 addq $1431655765, %rcx + 0x48, 0x31, 0xc1, //0x000006ad xorq %rax, %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x000006b0 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x000006b4 cmpl $16, %ecx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000006b7 je LBB0_76 + 0xb8, 0xff, 0xff, 0xff, 0xff, //0x000006bd movl $-1, %eax + 0xd3, 0xe0, //0x000006c2 shll %cl, %eax + 0xf7, 0xd0, //0x000006c4 notl %eax + 0x41, 0x21, 0xc0, //0x000006c6 andl %eax, %r8d + 0x41, 0x21, 0xc4, //0x000006c9 andl %eax, %r12d + 0x21, 0xd0, //0x000006cc andl %edx, %eax + 0x89, 0xc2, //0x000006ce movl %eax, %edx + //0x000006d0 LBB0_76 + 0x41, 0x8d, 0x40, 0xff, //0x000006d0 leal $-1(%r8), %eax + 0x44, 0x21, 0xc0, //0x000006d4 andl %r8d, %eax + 0x0f, 0x85, 0x63, 0x11, 0x00, 0x00, //0x000006d7 jne LBB0_317 + 0x41, 0x8d, 0x44, 0x24, 0xff, //0x000006dd leal $-1(%r12), %eax + 0x44, 0x21, 0xe0, //0x000006e2 andl %r12d, %eax + 0x0f, 0x85, 0x55, 0x11, 0x00, 0x00, //0x000006e5 jne LBB0_317 + 0x8d, 0x42, 0xff, //0x000006eb leal $-1(%rdx), %eax + 0x21, 0xd0, //0x000006ee andl %edx, %eax + 0x0f, 0x85, 0x4a, 0x11, 0x00, 0x00, //0x000006f0 jne LBB0_317 + 0x45, 0x85, 0xc0, //0x000006f6 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000006f9 je LBB0_82 + 0x4c, 0x89, 0xf3, //0x000006ff movq %r14, %rbx + 0x4c, 0x29, 0xcb, //0x00000702 subq %r9, %rbx + 0x41, 0x0f, 0xbc, 0xc0, //0x00000705 bsfl %r8d, %eax + 0x48, 0x01, 0xd8, //0x00000709 addq %rbx, %rax + 0x49, 0x83, 0xfb, 0xff, //0x0000070c cmpq $-1, %r11 + 0x0f, 0x85, 0x4a, 0x15, 0x00, 0x00, //0x00000710 jne LBB0_334 + 0x49, 0x89, 0xc3, //0x00000716 movq %rax, %r11 + //0x00000719 LBB0_82 + 0x4c, 0x8b, 0x45, 0xa0, //0x00000719 movq $-96(%rbp), %r8 + 0x45, 0x85, 0xe4, //0x0000071d testl %r12d, %r12d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000720 je LBB0_85 + 0x4c, 0x89, 0xf3, //0x00000726 movq %r14, %rbx + 0x4c, 0x29, 0xcb, //0x00000729 subq %r9, %rbx + 0x41, 0x0f, 0xbc, 0xc4, //0x0000072c bsfl %r12d, %eax + 0x48, 0x01, 0xd8, //0x00000730 addq %rbx, %rax + 0x49, 0x83, 0xfd, 0xff, //0x00000733 cmpq $-1, %r13 + 0x0f, 0x85, 0xe0, 0x12, 0x00, 0x00, //0x00000737 jne LBB0_323 + 0x49, 0x89, 0xc5, //0x0000073d movq %rax, %r13 + //0x00000740 LBB0_85 + 0x85, 0xd2, //0x00000740 testl %edx, %edx + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000742 je LBB0_88 + 0x4c, 0x89, 0xf3, //0x00000748 movq %r14, %rbx + 0x4c, 0x29, 0xcb, //0x0000074b subq %r9, %rbx + 0x0f, 0xbc, 0xc2, //0x0000074e bsfl %edx, %eax + 0x48, 0x01, 0xd8, //0x00000751 addq %rbx, %rax + 0x49, 0x83, 0xfa, 0xff, //0x00000754 cmpq $-1, %r10 + 0x0f, 0x85, 0xbf, 0x12, 0x00, 0x00, //0x00000758 jne LBB0_323 + 0x49, 0x89, 0xc2, //0x0000075e movq %rax, %r10 + //0x00000761 LBB0_88 + 0x83, 0xf9, 0x10, //0x00000761 cmpl $16, %ecx + 0x0f, 0x85, 0x05, 0x05, 0x00, 0x00, //0x00000764 jne LBB0_151 + 0x49, 0x83, 0xc6, 0x10, //0x0000076a addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x0000076e addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x00000772 cmpq $15, %rdi + 0x0f, 0x87, 0xc4, 0xfe, 0xff, 0xff, //0x00000776 ja LBB0_74 + 0x48, 0x85, 0xf6, //0x0000077c testq %rsi, %rsi + 0x0f, 0x84, 0x0a, 0x05, 0x00, 0x00, //0x0000077f je LBB0_153 + //0x00000785 LBB0_91 + 0x48, 0x8b, 0x5d, 0xb0, //0x00000785 movq $-80(%rbp), %rbx + 0x48, 0x8d, 0x0c, 0x33, //0x00000789 leaq (%rbx,%rsi), %rcx + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000078d jmp LBB0_95 + //0x00000792 LBB0_92 + 0x48, 0x89, 0xd0, //0x00000792 movq %rdx, %rax + 0x4c, 0x29, 0xc8, //0x00000795 subq %r9, %rax + 0x49, 0x83, 0xfd, 0xff, //0x00000798 cmpq $-1, %r13 + 0x0f, 0x85, 0x72, 0x15, 0x00, 0x00, //0x0000079c jne LBB0_345 + 0x48, 0xff, 0xc8, //0x000007a2 decq %rax + 0x49, 0x89, 0xc5, //0x000007a5 movq %rax, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007a8 .p2align 4, 0x90 + //0x000007b0 LBB0_94 + 0x48, 0x89, 0xd3, //0x000007b0 movq %rdx, %rbx + 0x48, 0xff, 0xce, //0x000007b3 decq %rsi + 0x0f, 0x84, 0x6c, 0x12, 0x00, 0x00, //0x000007b6 je LBB0_324 + //0x000007bc LBB0_95 + 0x0f, 0xbe, 0x03, //0x000007bc movsbl (%rbx), %eax + 0x83, 0xc0, 0xd5, //0x000007bf addl $-43, %eax + 0x83, 0xf8, 0x3a, //0x000007c2 cmpl $58, %eax + 0x0f, 0x87, 0xc0, 0x04, 0x00, 0x00, //0x000007c5 ja LBB0_152 + 0x48, 0x8d, 0x53, 0x01, //0x000007cb leaq $1(%rbx), %rdx + 0x48, 0x8d, 0x3d, 0xe6, 0x22, 0x00, 0x00, //0x000007cf leaq $8934(%rip), %rdi /* LJTI0_3+0(%rip) */ + 0x48, 0x63, 0x04, 0x87, //0x000007d6 movslq (%rdi,%rax,4), %rax + 0x48, 0x01, 0xf8, //0x000007da addq %rdi, %rax + 0xff, 0xe0, //0x000007dd jmpq *%rax + //0x000007df LBB0_97 + 0x48, 0x89, 0xd0, //0x000007df movq %rdx, %rax + 0x4c, 0x29, 0xc8, //0x000007e2 subq %r9, %rax + 0x49, 0x83, 0xfa, 0xff, //0x000007e5 cmpq $-1, %r10 + 0x0f, 0x85, 0x25, 0x15, 0x00, 0x00, //0x000007e9 jne LBB0_345 + 0x48, 0xff, 0xc8, //0x000007ef decq %rax + 0x49, 0x89, 0xc2, //0x000007f2 movq %rax, %r10 + 0xe9, 0xb6, 0xff, 0xff, 0xff, //0x000007f5 jmp LBB0_94 + //0x000007fa LBB0_99 + 0x48, 0x89, 0xd0, //0x000007fa movq %rdx, %rax + 0x4c, 0x29, 0xc8, //0x000007fd subq %r9, %rax + 0x49, 0x83, 0xfb, 0xff, //0x00000800 cmpq $-1, %r11 + 0x0f, 0x85, 0x0a, 0x15, 0x00, 0x00, //0x00000804 jne LBB0_345 + 0x48, 0xff, 0xc8, //0x0000080a decq %rax + 0x49, 0x89, 0xc3, //0x0000080d movq %rax, %r11 + 0xe9, 0x9b, 0xff, 0xff, 0xff, //0x00000810 jmp LBB0_94 + //0x00000815 LBB0_65 + 0x83, 0xfb, 0x22, //0x00000815 cmpl $34, %ebx + 0x0f, 0x84, 0x65, 0x02, 0x00, 0x00, //0x00000818 je LBB0_126 + //0x0000081e LBB0_61 + 0x83, 0xfb, 0x7d, //0x0000081e cmpl $125, %ebx + 0x0f, 0x85, 0xe1, 0x1d, 0x00, 0x00, //0x00000821 jne LBB0_440 + //0x00000827 LBB0_36 + 0x49, 0x89, 0x10, //0x00000827 movq %rdx, (%r8) + 0x49, 0x89, 0xd1, //0x0000082a movq %rdx, %r9 + 0x48, 0x8b, 0x85, 0x70, 0xff, 0xff, 0xff, //0x0000082d movq $-144(%rbp), %rax + 0x48, 0x85, 0xd2, //0x00000834 testq %rdx, %rdx + 0x0f, 0x85, 0x49, 0xf9, 0xff, 0xff, //0x00000837 jne LBB0_5 + 0xe9, 0x1e, 0x1f, 0x00, 0x00, //0x0000083d jmp LBB0_150 + //0x00000842 LBB0_101 + 0x4c, 0x89, 0xc8, //0x00000842 movq %r9, %rax + 0x4c, 0x29, 0xd8, //0x00000845 subq %r11, %rax + 0x0f, 0x84, 0xe0, 0x1e, 0x00, 0x00, //0x00000848 je LBB0_456 + 0x4c, 0x89, 0xd9, //0x0000084e movq %r11, %rcx + 0x4d, 0x01, 0xd3, //0x00000851 addq %r10, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000854 cmpq $64, %rax + 0x4c, 0x89, 0x4d, 0xc0, //0x00000858 movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x4c, 0x17, 0x00, 0x00, //0x0000085c jb LBB0_363 + 0x89, 0xc2, //0x00000862 movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x00000864 andl $63, %edx + 0x48, 0x89, 0x55, 0xb8, //0x00000867 movq %rdx, $-72(%rbp) + 0x4d, 0x89, 0xcc, //0x0000086b movq %r9, %r12 + 0x4d, 0x29, 0xfc, //0x0000086e subq %r15, %r12 + 0x49, 0x83, 0xc4, 0xbf, //0x00000871 addq $-65, %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00000875 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00000879 addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x0000087c addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000880 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00000887 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000088a .p2align 4, 0x90 + //0x00000890 LBB0_104 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00000890 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00000895 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x0000089b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x000008a1 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x000008a7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000008ab pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000008af pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x000008b3 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000008b7 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000008bb pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x000008bf movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000008c3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000008c7 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x000008cb movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000008cf pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x000008d3 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x000008d8 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000008dc pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x000008e0 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x000008e5 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000008e9 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000008ed pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x000008f1 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000008f5 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x000008f9 shlq $16, %rdi + 0x48, 0x09, 0xfb, //0x000008fd orq %rdi, %rbx + 0x66, 0x0f, 0xd7, 0xfb, //0x00000900 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000904 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000908 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x0000090c shlq $32, %rcx + 0x48, 0x09, 0xcb, //0x00000910 orq %rcx, %rbx + 0x66, 0x0f, 0xd7, 0xcb, //0x00000913 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000917 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000091b pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000091f pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000924 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000928 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000092c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000092f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000933 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000937 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000093b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00000940 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x00000944 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00000948 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x0000094b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x0000094f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00000953 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00000957 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000095c pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x00000960 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000964 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00000967 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x0000096b movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x0000096f pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00000973 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00000978 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x0000097c shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x00000980 orq %rdi, %rdx + 0x66, 0x0f, 0xd7, 0xff, //0x00000983 pmovmskb %xmm7, %edi + 0x49, 0xc1, 0xe6, 0x30, //0x00000987 shlq $48, %r14 + 0x48, 0xc1, 0xe1, 0x20, //0x0000098b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000098f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000993 jne LBB0_106 + 0x4d, 0x85, 0xed, //0x00000999 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x0000099c jne LBB0_121 + //0x000009a2 LBB0_106 + 0x48, 0xc1, 0xe7, 0x30, //0x000009a2 shlq $48, %rdi + 0x48, 0x09, 0xca, //0x000009a6 orq %rcx, %rdx + 0x4c, 0x09, 0xf3, //0x000009a9 orq %r14, %rbx + 0x4c, 0x89, 0xe9, //0x000009ac movq %r13, %rcx + 0x4c, 0x09, 0xc9, //0x000009af orq %r9, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000009b2 jne LBB0_145 + 0x48, 0x09, 0xfa, //0x000009b8 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x000009bb testq %rbx, %rbx + 0x0f, 0x85, 0x85, 0x02, 0x00, 0x00, //0x000009be jne LBB0_146 + //0x000009c4 LBB0_108 + 0x48, 0x85, 0xd2, //0x000009c4 testq %rdx, %rdx + 0x0f, 0x85, 0xf7, 0x1b, 0x00, 0x00, //0x000009c7 jne LBB0_431 + 0x48, 0x83, 0xc0, 0xc0, //0x000009cd addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x000009d1 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x000009d5 cmpq $63, %rax + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x000009d9 ja LBB0_104 + 0xe9, 0x21, 0x0f, 0x00, 0x00, //0x000009df jmp LBB0_110 + //0x000009e4 LBB0_145 + 0x4d, 0x89, 0xce, //0x000009e4 movq %r9, %r14 + 0x49, 0xf7, 0xd6, //0x000009e7 notq %r14 + 0x4d, 0x21, 0xee, //0x000009ea andq %r13, %r14 + 0x4f, 0x8d, 0x14, 0x36, //0x000009ed leaq (%r14,%r14), %r10 + 0x4d, 0x09, 0xca, //0x000009f1 orq %r9, %r10 + 0x4c, 0x89, 0xd1, //0x000009f4 movq %r10, %rcx + 0x48, 0xf7, 0xd1, //0x000009f7 notq %rcx + 0x4c, 0x21, 0xe9, //0x000009fa andq %r13, %rcx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000009fd movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf1, //0x00000a07 andq %rsi, %rcx + 0x45, 0x31, 0xc9, //0x00000a0a xorl %r9d, %r9d + 0x4c, 0x01, 0xf1, //0x00000a0d addq %r14, %rcx + 0x41, 0x0f, 0x92, 0xc1, //0x00000a10 setb %r9b + 0x48, 0x01, 0xc9, //0x00000a14 addq %rcx, %rcx + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a17 movabsq $6148914691236517205, %rsi + 0x48, 0x31, 0xf1, //0x00000a21 xorq %rsi, %rcx + 0x4c, 0x21, 0xd1, //0x00000a24 andq %r10, %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00000a27 movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00000a2b movq $-56(%rbp), %rsi + 0x48, 0xf7, 0xd1, //0x00000a2f notq %rcx + 0x48, 0x21, 0xcb, //0x00000a32 andq %rcx, %rbx + 0x48, 0x09, 0xfa, //0x00000a35 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000a38 testq %rbx, %rbx + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00000a3b je LBB0_108 + 0xe9, 0x03, 0x02, 0x00, 0x00, //0x00000a41 jmp LBB0_146 + //0x00000a46 LBB0_121 + 0x4d, 0x89, 0xda, //0x00000a46 movq %r11, %r10 + 0x4c, 0x2b, 0x55, 0xd0, //0x00000a49 subq $-48(%rbp), %r10 + 0x4d, 0x0f, 0xbc, 0xc5, //0x00000a4d bsfq %r13, %r8 + 0x4d, 0x01, 0xd0, //0x00000a51 addq %r10, %r8 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000a54 movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00000a58 movq $-56(%rbp), %rsi + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00000a5c jmp LBB0_106 + //0x00000a61 LBB0_122 + 0x49, 0x81, 0xf9, 0xff, 0x0f, 0x00, 0x00, //0x00000a61 cmpq $4095, %r9 + 0x0f, 0x8f, 0x09, 0x1b, 0x00, 0x00, //0x00000a68 jg LBB0_442 + 0x49, 0x8d, 0x41, 0x01, //0x00000a6e leaq $1(%r9), %rax + 0x49, 0x89, 0x00, //0x00000a72 movq %rax, (%r8) + 0x4b, 0xc7, 0x44, 0xc8, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000a75 movq $0, $8(%r8,%r9,8) + 0xe9, 0xed, 0xf6, 0xff, 0xff, //0x00000a7e jmp LBB0_3 + //0x00000a83 LBB0_126 + 0x4b, 0xc7, 0x04, 0xc8, 0x02, 0x00, 0x00, 0x00, //0x00000a83 movq $2, (%r8,%r9,8) + 0x48, 0x8b, 0x45, 0x90, //0x00000a8b movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x48, 0x08, //0x00000a8f movq $8(%rax), %r9 + 0xf6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x20, //0x00000a93 testb $32, $-136(%rbp) + 0x4c, 0x89, 0x5d, 0xb0, //0x00000a9a movq %r11, $-80(%rbp) + 0x0f, 0x85, 0x61, 0x02, 0x00, 0x00, //0x00000a9e jne LBB0_163 + 0x4d, 0x89, 0xcd, //0x00000aa4 movq %r9, %r13 + 0x4d, 0x29, 0xdd, //0x00000aa7 subq %r11, %r13 + 0x0f, 0x84, 0x7e, 0x1c, 0x00, 0x00, //0x00000aaa je LBB0_456 + 0x4c, 0x89, 0xd8, //0x00000ab0 movq %r11, %rax + 0x4d, 0x01, 0xd3, //0x00000ab3 addq %r10, %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000ab6 cmpq $64, %r13 + 0x0f, 0x82, 0x60, 0x15, 0x00, 0x00, //0x00000aba jb LBB0_369 + 0x44, 0x89, 0xe9, //0x00000ac0 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000ac3 andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb8, //0x00000ac6 movq %rcx, $-72(%rbp) + 0x4c, 0x89, 0xc9, //0x00000aca movq %r9, %rcx + 0x4c, 0x29, 0xf9, //0x00000acd subq %r15, %rcx + 0x48, 0x83, 0xc1, 0xbf, //0x00000ad0 addq $-65, %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000ad4 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000ad8 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x88, //0x00000adb addq $-120(%rbp), %rcx + 0x48, 0x89, 0x4d, 0x80, //0x00000adf movq %rcx, $-128(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000ae3 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00000aea xorl %r10d, %r10d + 0x90, 0x90, 0x90, //0x00000aed .p2align 4, 0x90 + //0x00000af0 LBB0_130 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000af0 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000af5 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x00000afb movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000b01 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000b07 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b0b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x00000b0f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000b13 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b17 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x00000b1b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x00000b1f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b23 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000b27 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x00000b2b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b2f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000b33 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000b37 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000b3b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x00000b3f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000b43 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000b47 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x00000b4b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x00000b50 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00000b54 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x00000b59 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000b5d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000b61 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b65 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b68 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x00000b6b shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b6f shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000b73 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000b77 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000b7a orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x00000b7d orq %r12, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000b80 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b84 jne LBB0_132 + 0x48, 0x85, 0xd2, //0x00000b8a testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000b8d jne LBB0_141 + //0x00000b93 LBB0_132 + 0x48, 0x09, 0xdf, //0x00000b93 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000b96 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x00000b99 orq %r10, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000b9c jne LBB0_142 + //0x00000ba2 LBB0_133 + 0x48, 0x85, 0xff, //0x00000ba2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000ba5 jne LBB0_143 + //0x00000bab LBB0_134 + 0x49, 0x83, 0xc5, 0xc0, //0x00000bab addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000baf addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000bb3 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00000bb7 ja LBB0_130 + 0xe9, 0x7f, 0x0e, 0x00, 0x00, //0x00000bbd jmp LBB0_135 + //0x00000bc2 LBB0_141 + 0x4c, 0x89, 0xd8, //0x00000bc2 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000bc5 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00000bc9 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00000bcd addq %rax, %r8 + 0x48, 0x09, 0xdf, //0x00000bd0 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000bd3 movq %rdx, %rax + 0x4c, 0x09, 0xd0, //0x00000bd6 orq %r10, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000bd9 je LBB0_133 + //0x00000bdf LBB0_142 + 0x4c, 0x89, 0xd0, //0x00000bdf movq %r10, %rax + 0x48, 0xf7, 0xd0, //0x00000be2 notq %rax + 0x48, 0x21, 0xd0, //0x00000be5 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000be8 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xd1, //0x00000bec orq %r10, %rcx + 0x48, 0x89, 0xce, //0x00000bef movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000bf2 notq %rsi + 0x48, 0x21, 0xd6, //0x00000bf5 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000bf8 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000c02 andq %rdx, %rsi + 0x45, 0x31, 0xd2, //0x00000c05 xorl %r10d, %r10d + 0x48, 0x01, 0xc6, //0x00000c08 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc2, //0x00000c0b setb %r10b + 0x48, 0x01, 0xf6, //0x00000c0f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c12 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000c1c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000c1f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c22 notq %rsi + 0x48, 0x21, 0xf7, //0x00000c25 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000c28 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000c2b je LBB0_134 + //0x00000c31 LBB0_143 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000c31 bsfq %rdi, %rax + //0x00000c35 LBB0_144 + 0x4c, 0x03, 0x5d, 0x98, //0x00000c35 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000c39 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c3c movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00000c40 movq $-48(%rbp), %r10 + 0xe9, 0x75, 0x03, 0x00, 0x00, //0x00000c44 jmp LBB0_196 + //0x00000c49 LBB0_146 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000c49 bsfq %rbx, %rax + 0x48, 0x85, 0xd2, //0x00000c4d testq %rdx, %rdx + 0x0f, 0x84, 0xf1, 0x02, 0x00, 0x00, //0x00000c50 je LBB0_187 + 0x48, 0x0f, 0xbc, 0xca, //0x00000c56 bsfq %rdx, %rcx + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000c5a movq $-64(%rbp), %r9 + 0x4d, 0x29, 0xd3, //0x00000c5e subq %r10, %r11 + 0x48, 0x39, 0xc1, //0x00000c61 cmpq %rax, %rcx + 0x0f, 0x83, 0xf2, 0x02, 0x00, 0x00, //0x00000c64 jae LBB0_188 + 0xe9, 0xde, 0x1a, 0x00, 0x00, //0x00000c6a jmp LBB0_148 + //0x00000c6f LBB0_151 + 0x49, 0x01, 0xce, //0x00000c6f addq %rcx, %r14 + 0x4c, 0x89, 0x75, 0xb0, //0x00000c72 movq %r14, $-80(%rbp) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000c76 movq $-1, %rcx + 0x4d, 0x85, 0xed, //0x00000c7d testq %r13, %r13 + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00000c80 jne LBB0_154 + 0xe9, 0x20, 0x19, 0x00, 0x00, //0x00000c86 jmp LBB0_430 + //0x00000c8b LBB0_152 + 0x48, 0x89, 0x5d, 0xb0, //0x00000c8b movq %rbx, $-80(%rbp) + //0x00000c8f LBB0_153 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000c8f movq $-1, %rcx + 0x4d, 0x85, 0xed, //0x00000c96 testq %r13, %r13 + 0x0f, 0x84, 0x0c, 0x19, 0x00, 0x00, //0x00000c99 je LBB0_430 + //0x00000c9f LBB0_154 + 0x4d, 0x85, 0xd2, //0x00000c9f testq %r10, %r10 + 0x0f, 0x84, 0x03, 0x19, 0x00, 0x00, //0x00000ca2 je LBB0_430 + 0x4d, 0x85, 0xdb, //0x00000ca8 testq %r11, %r11 + 0x0f, 0x84, 0xfa, 0x18, 0x00, 0x00, //0x00000cab je LBB0_430 + 0x48, 0x8b, 0x45, 0xb0, //0x00000cb1 movq $-80(%rbp), %rax + 0x4c, 0x29, 0xc8, //0x00000cb5 subq %r9, %rax + 0x48, 0x89, 0xc1, //0x00000cb8 movq %rax, %rcx + 0x48, 0xff, 0xc8, //0x00000cbb decq %rax + 0x49, 0x39, 0xc5, //0x00000cbe cmpq %rax, %r13 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000cc1 je LBB0_162 + 0x49, 0x39, 0xc3, //0x00000cc7 cmpq %rax, %r11 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00000cca je LBB0_162 + 0x49, 0x39, 0xc2, //0x00000cd0 cmpq %rax, %r10 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000cd3 je LBB0_162 + 0x4d, 0x85, 0xd2, //0x00000cd9 testq %r10, %r10 + 0x0f, 0x8e, 0xa2, 0x02, 0x00, 0x00, //0x00000cdc jle LBB0_191 + 0x49, 0x8d, 0x42, 0xff, //0x00000ce2 leaq $-1(%r10), %rax + 0x49, 0x39, 0xc5, //0x00000ce6 cmpq %rax, %r13 + 0x0f, 0x84, 0x95, 0x02, 0x00, 0x00, //0x00000ce9 je LBB0_191 + 0x49, 0xf7, 0xd2, //0x00000cef notq %r10 + 0x4d, 0x89, 0xd3, //0x00000cf2 movq %r10, %r11 + 0xe9, 0x31, 0x08, 0x00, 0x00, //0x00000cf5 jmp LBB0_271 + //0x00000cfa LBB0_162 + 0x49, 0x89, 0xcb, //0x00000cfa movq %rcx, %r11 + 0x49, 0xf7, 0xdb, //0x00000cfd negq %r11 + 0xe9, 0x26, 0x08, 0x00, 0x00, //0x00000d00 jmp LBB0_271 + //0x00000d05 LBB0_163 + 0x4c, 0x89, 0xc8, //0x00000d05 movq %r9, %rax + 0x4c, 0x29, 0xd8, //0x00000d08 subq %r11, %rax + 0x0f, 0x84, 0x1d, 0x1a, 0x00, 0x00, //0x00000d0b je LBB0_456 + 0x4c, 0x89, 0xd9, //0x00000d11 movq %r11, %rcx + 0x4d, 0x01, 0xd3, //0x00000d14 addq %r10, %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000d17 cmpq $64, %rax + 0x4c, 0x89, 0x4d, 0xc0, //0x00000d1b movq %r9, $-64(%rbp) + 0x0f, 0x82, 0x14, 0x13, 0x00, 0x00, //0x00000d1f jb LBB0_370 + 0x89, 0xc2, //0x00000d25 movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x00000d27 andl $63, %edx + 0x48, 0x89, 0x55, 0xb8, //0x00000d2a movq %rdx, $-72(%rbp) + 0x4d, 0x89, 0xcc, //0x00000d2e movq %r9, %r12 + 0x4d, 0x29, 0xfc, //0x00000d31 subq %r15, %r12 + 0x49, 0x83, 0xc4, 0xbf, //0x00000d34 addq $-65, %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00000d38 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00000d3c addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x00000d3f addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d43 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00000d4a xorl %r9d, %r9d + 0x90, 0x90, 0x90, //0x00000d4d .p2align 4, 0x90 + //0x00000d50 LBB0_166 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00000d50 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00000d55 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x00000d5b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00000d61 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00000d67 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d6b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00000d6f pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x00000d73 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d77 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00000d7b pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x00000d7f movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d83 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000d87 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x00000d8b movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d8f pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00000d93 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000d98 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000d9c pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000da0 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000da5 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000da9 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000dad pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000db1 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000db5 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000db9 shlq $16, %rdi + 0x48, 0x09, 0xfb, //0x00000dbd orq %rdi, %rbx + 0x66, 0x0f, 0xd7, 0xfb, //0x00000dc0 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000dc4 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dc8 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x00000dcc shlq $32, %rcx + 0x48, 0x09, 0xcb, //0x00000dd0 orq %rcx, %rbx + 0x66, 0x0f, 0xd7, 0xcb, //0x00000dd3 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000dd7 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x00000ddb pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x00000ddf pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000de4 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000de8 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000dec orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x00000def pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000df3 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000df7 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x00000dfb pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00000e00 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x00000e04 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00000e08 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x00000e0b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x00000e0f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00000e13 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00000e17 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00000e1c pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x00000e20 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000e24 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00000e27 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e2b movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x00000e2f pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00000e33 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00000e38 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x00000e3c shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x00000e40 orq %rdi, %rdx + 0x66, 0x0f, 0xd7, 0xff, //0x00000e43 pmovmskb %xmm7, %edi + 0x49, 0xc1, 0xe6, 0x30, //0x00000e47 shlq $48, %r14 + 0x48, 0xc1, 0xe1, 0x20, //0x00000e4b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00000e4f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000e53 jne LBB0_168 + 0x4d, 0x85, 0xed, //0x00000e59 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00000e5c jne LBB0_183 + //0x00000e62 LBB0_168 + 0x48, 0xc1, 0xe7, 0x30, //0x00000e62 shlq $48, %rdi + 0x48, 0x09, 0xca, //0x00000e66 orq %rcx, %rdx + 0x4c, 0x09, 0xf3, //0x00000e69 orq %r14, %rbx + 0x4c, 0x89, 0xe9, //0x00000e6c movq %r13, %rcx + 0x4c, 0x09, 0xc9, //0x00000e6f orq %r9, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000e72 jne LBB0_184 + 0x48, 0x09, 0xfa, //0x00000e78 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000e7b testq %rbx, %rbx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000e7e jne LBB0_185 + //0x00000e84 LBB0_170 + 0x48, 0x85, 0xd2, //0x00000e84 testq %rdx, %rdx + 0x0f, 0x85, 0x37, 0x17, 0x00, 0x00, //0x00000e87 jne LBB0_431 + 0x48, 0x83, 0xc0, 0xc0, //0x00000e8d addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000e91 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000e95 cmpq $63, %rax + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x00000e99 ja LBB0_166 + 0xe9, 0x21, 0x0c, 0x00, 0x00, //0x00000e9f jmp LBB0_172 + //0x00000ea4 LBB0_184 + 0x4d, 0x89, 0xce, //0x00000ea4 movq %r9, %r14 + 0x49, 0xf7, 0xd6, //0x00000ea7 notq %r14 + 0x4d, 0x21, 0xee, //0x00000eaa andq %r13, %r14 + 0x4f, 0x8d, 0x14, 0x36, //0x00000ead leaq (%r14,%r14), %r10 + 0x4d, 0x09, 0xca, //0x00000eb1 orq %r9, %r10 + 0x4c, 0x89, 0xd1, //0x00000eb4 movq %r10, %rcx + 0x48, 0xf7, 0xd1, //0x00000eb7 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000eba andq %r13, %rcx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000ebd movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf1, //0x00000ec7 andq %rsi, %rcx + 0x45, 0x31, 0xc9, //0x00000eca xorl %r9d, %r9d + 0x4c, 0x01, 0xf1, //0x00000ecd addq %r14, %rcx + 0x41, 0x0f, 0x92, 0xc1, //0x00000ed0 setb %r9b + 0x48, 0x01, 0xc9, //0x00000ed4 addq %rcx, %rcx + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000ed7 movabsq $6148914691236517205, %rsi + 0x48, 0x31, 0xf1, //0x00000ee1 xorq %rsi, %rcx + 0x4c, 0x21, 0xd1, //0x00000ee4 andq %r10, %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00000ee7 movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00000eeb movq $-56(%rbp), %rsi + 0x48, 0xf7, 0xd1, //0x00000eef notq %rcx + 0x48, 0x21, 0xcb, //0x00000ef2 andq %rcx, %rbx + 0x48, 0x09, 0xfa, //0x00000ef5 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000ef8 testq %rbx, %rbx + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00000efb je LBB0_170 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00000f01 jmp LBB0_185 + //0x00000f06 LBB0_183 + 0x4d, 0x89, 0xda, //0x00000f06 movq %r11, %r10 + 0x4c, 0x2b, 0x55, 0xd0, //0x00000f09 subq $-48(%rbp), %r10 + 0x4d, 0x0f, 0xbc, 0xc5, //0x00000f0d bsfq %r13, %r8 + 0x4d, 0x01, 0xd0, //0x00000f11 addq %r10, %r8 + 0x4c, 0x8b, 0x55, 0xd0, //0x00000f14 movq $-48(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f18 movq $-56(%rbp), %rsi + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00000f1c jmp LBB0_168 + //0x00000f21 LBB0_185 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000f21 bsfq %rbx, %rax + 0x48, 0x85, 0xd2, //0x00000f25 testq %rdx, %rdx + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x00000f28 je LBB0_194 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f2e bsfq %rdx, %rcx + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000f32 movq $-64(%rbp), %r9 + 0x4d, 0x29, 0xd3, //0x00000f36 subq %r10, %r11 + 0x48, 0x39, 0xc1, //0x00000f39 cmpq %rax, %rcx + 0x0f, 0x83, 0x77, 0x00, 0x00, 0x00, //0x00000f3c jae LBB0_195 + 0xe9, 0x06, 0x18, 0x00, 0x00, //0x00000f42 jmp LBB0_148 + //0x00000f47 LBB0_187 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f47 movl $64, %ecx + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000f4c movq $-64(%rbp), %r9 + 0x4d, 0x29, 0xd3, //0x00000f50 subq %r10, %r11 + 0x48, 0x39, 0xc1, //0x00000f53 cmpq %rax, %rcx + 0x0f, 0x82, 0xf1, 0x17, 0x00, 0x00, //0x00000f56 jb LBB0_148 + //0x00000f5c LBB0_188 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f5c leaq $1(%r11,%rax), %r11 + //0x00000f61 LBB0_189 + 0x4d, 0x85, 0xdb, //0x00000f61 testq %r11, %r11 + 0x0f, 0x88, 0x19, 0x16, 0x00, 0x00, //0x00000f64 js LBB0_427 + //0x00000f6a LBB0_190 + 0x4c, 0x89, 0x1e, //0x00000f6a movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000f6d movq %r15, %rax + 0x48, 0x83, 0x7d, 0xb0, 0x00, //0x00000f70 cmpq $0, $-80(%rbp) + 0x4c, 0x8b, 0x45, 0xa0, //0x00000f75 movq $-96(%rbp), %r8 + 0x0f, 0x8f, 0xf1, 0xf1, 0xff, 0xff, //0x00000f79 jg LBB0_3 + 0xe9, 0xdc, 0x17, 0x00, 0x00, //0x00000f7f jmp LBB0_150 + //0x00000f84 LBB0_191 + 0x4c, 0x89, 0xd8, //0x00000f84 movq %r11, %rax + 0x4c, 0x09, 0xe8, //0x00000f87 orq %r13, %rax + 0x4d, 0x39, 0xeb, //0x00000f8a cmpq %r13, %r11 + 0x0f, 0x8c, 0x80, 0x05, 0x00, 0x00, //0x00000f8d jl LBB0_270 + 0x48, 0x85, 0xc0, //0x00000f93 testq %rax, %rax + 0x0f, 0x88, 0x77, 0x05, 0x00, 0x00, //0x00000f96 js LBB0_270 + 0x49, 0xf7, 0xd3, //0x00000f9c notq %r11 + 0xe9, 0x87, 0x05, 0x00, 0x00, //0x00000f9f jmp LBB0_271 + //0x00000fa4 LBB0_194 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000fa4 movl $64, %ecx + 0x4c, 0x8b, 0x4d, 0xc0, //0x00000fa9 movq $-64(%rbp), %r9 + 0x4d, 0x29, 0xd3, //0x00000fad subq %r10, %r11 + 0x48, 0x39, 0xc1, //0x00000fb0 cmpq %rax, %rcx + 0x0f, 0x82, 0x94, 0x17, 0x00, 0x00, //0x00000fb3 jb LBB0_148 + //0x00000fb9 LBB0_195 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000fb9 leaq $1(%r11,%rax), %r11 + //0x00000fbe LBB0_196 + 0x4d, 0x85, 0xdb, //0x00000fbe testq %r11, %r11 + 0x0f, 0x88, 0xbc, 0x15, 0x00, 0x00, //0x00000fc1 js LBB0_427 + 0x4c, 0x89, 0x1e, //0x00000fc7 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000fca movq %r15, %rax + 0x48, 0x83, 0x7d, 0xb0, 0x00, //0x00000fcd cmpq $0, $-80(%rbp) + 0x4c, 0x8b, 0x45, 0xa0, //0x00000fd2 movq $-96(%rbp), %r8 + 0x0f, 0x8e, 0x84, 0x17, 0x00, 0x00, //0x00000fd6 jle LBB0_150 + 0x49, 0x8b, 0x00, //0x00000fdc movq (%r8), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000fdf cmpq $4095, %rax + 0x0f, 0x8f, 0x8c, 0x15, 0x00, 0x00, //0x00000fe5 jg LBB0_442 + 0x48, 0x8d, 0x48, 0x01, //0x00000feb leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00000fef movq %rcx, (%r8) + 0x49, 0xc7, 0x44, 0xc0, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00000ff2 movq $4, $8(%r8,%rax,8) + 0xe9, 0x70, 0xf1, 0xff, 0xff, //0x00000ffb jmp LBB0_3 + //0x00001000 LBB0_200 + 0x49, 0x8b, 0x00, //0x00001000 movq (%r8), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00001003 cmpq $4095, %rax + 0x0f, 0x8f, 0x68, 0x15, 0x00, 0x00, //0x00001009 jg LBB0_442 + 0x48, 0x8d, 0x48, 0x01, //0x0000100f leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00001013 movq %rcx, (%r8) + 0x49, 0xc7, 0x44, 0xc0, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00001016 movq $5, $8(%r8,%rax,8) + 0xe9, 0x4c, 0xf1, 0xff, 0xff, //0x0000101f jmp LBB0_3 + //0x00001024 LBB0_202 + 0x48, 0x8b, 0x45, 0x90, //0x00001024 movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x60, 0x08, //0x00001028 movq $8(%rax), %r12 + 0xf6, 0x85, 0x78, 0xff, 0xff, 0xff, 0x20, //0x0000102c testb $32, $-136(%rbp) + 0x4c, 0x89, 0x5d, 0xb0, //0x00001033 movq %r11, $-80(%rbp) + 0x4c, 0x89, 0x65, 0xc0, //0x00001037 movq %r12, $-64(%rbp) + 0x4d, 0x89, 0xe2, //0x0000103b movq %r12, %r10 + 0x0f, 0x85, 0xfd, 0x04, 0x00, 0x00, //0x0000103e jne LBB0_274 + 0x4d, 0x29, 0xda, //0x00001044 subq %r11, %r10 + 0x0f, 0x84, 0x22, 0x17, 0x00, 0x00, //0x00001047 je LBB0_457 + 0x48, 0x8b, 0x45, 0xd0, //0x0000104d movq $-48(%rbp), %rax + 0x4c, 0x89, 0xd9, //0x00001051 movq %r11, %rcx + 0x49, 0x01, 0xc3, //0x00001054 addq %rax, %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001057 cmpq $64, %r10 + 0x0f, 0x82, 0x5c, 0x10, 0x00, 0x00, //0x0000105b jb LBB0_375 + 0x44, 0x89, 0xd0, //0x00001061 movl %r10d, %eax + 0x83, 0xe0, 0x3f, //0x00001064 andl $63, %eax + 0x48, 0x89, 0x45, 0xb8, //0x00001067 movq %rax, $-72(%rbp) + 0x4d, 0x29, 0xfc, //0x0000106b subq %r15, %r12 + 0x49, 0x83, 0xc4, 0xbf, //0x0000106e addq $-65, %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001072 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00001076 addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x00001079 addq $-120(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000107d movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00001084 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001087 .p2align 4, 0x90 + //0x00001090 LBB0_206 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001090 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001095 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x0000109b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x000010a1 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x000010a7 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010ab pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x000010af pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x000010b3 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010b7 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x000010bb pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x000010bf movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010c3 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x000010c7 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x000010cb movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010cf pcmpeqb %xmm0, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xef, //0x000010d3 pmovmskb %xmm7, %r13d + 0x66, 0x0f, 0x74, 0xd9, //0x000010d8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000010dc pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x000010e0 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000010e4 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x000010e8 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000010ec pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xf1, //0x000010f0 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xf6, //0x000010f4 pmovmskb %xmm6, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x000010f9 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x000010fd shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001101 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001105 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001108 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x0000110b shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000110f shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001113 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001117 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x0000111a orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000111d orq %r14, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001120 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001124 jne LBB0_208 + 0x48, 0x85, 0xd2, //0x0000112a testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000112d jne LBB0_217 + //0x00001133 LBB0_208 + 0x4c, 0x09, 0xef, //0x00001133 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001136 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001139 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000113c jne LBB0_218 + //0x00001142 LBB0_209 + 0x48, 0x85, 0xff, //0x00001142 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00001145 jne LBB0_219 + //0x0000114b LBB0_210 + 0x49, 0x83, 0xc2, 0xc0, //0x0000114b addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x0000114f addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x00001153 cmpq $63, %r10 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00001157 ja LBB0_206 + 0xe9, 0xe8, 0x0b, 0x00, 0x00, //0x0000115d jmp LBB0_211 + //0x00001162 LBB0_217 + 0x4c, 0x89, 0xd8, //0x00001162 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001165 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00001169 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x0000116d addq %rax, %r8 + 0x4c, 0x09, 0xef, //0x00001170 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001173 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001176 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00001179 je LBB0_209 + //0x0000117f LBB0_218 + 0x4c, 0x89, 0xc8, //0x0000117f movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00001182 notq %rax + 0x48, 0x21, 0xd0, //0x00001185 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00001188 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x0000118c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x0000118f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00001192 notq %rsi + 0x48, 0x21, 0xd6, //0x00001195 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001198 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000011a2 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x000011a5 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x000011a8 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x000011ab setb %r9b + 0x48, 0x01, 0xf6, //0x000011af addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000011b2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x000011bc xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x000011bf andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000011c2 notq %rsi + 0x48, 0x21, 0xf7, //0x000011c5 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x000011c8 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000011cb je LBB0_210 + //0x000011d1 LBB0_219 + 0x48, 0x0f, 0xbc, 0xc7, //0x000011d1 bsfq %rdi, %rax + //0x000011d5 LBB0_220 + 0x4c, 0x03, 0x5d, 0x98, //0x000011d5 addq $-104(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000011d9 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x000011dc movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x000011e0 movq $-48(%rbp), %r10 + 0xe9, 0x49, 0x06, 0x00, 0x00, //0x000011e4 jmp LBB0_314 + //0x000011e9 LBB0_221 + 0x48, 0x8b, 0x45, 0x90, //0x000011e9 movq $-112(%rbp), %rax + 0x4c, 0x8b, 0x48, 0x08, //0x000011ed movq $8(%rax), %r9 + 0x4d, 0x29, 0xd9, //0x000011f1 subq %r11, %r9 + 0x0f, 0x84, 0x01, 0x14, 0x00, 0x00, //0x000011f4 je LBB0_438 + 0x4c, 0x89, 0x5d, 0xb0, //0x000011fa movq %r11, $-80(%rbp) + 0x4f, 0x8d, 0x24, 0x1a, //0x000011fe leaq (%r10,%r11), %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x00001202 cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001207 jne LBB0_226 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000120d movl $1, %r11d + 0x49, 0x83, 0xf9, 0x01, //0x00001213 cmpq $1, %r9 + 0x0f, 0x84, 0xe0, 0x05, 0x00, 0x00, //0x00001217 je LBB0_310 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x0000121d movb $1(%r12), %al + 0x04, 0xd2, //0x00001222 addb $-46, %al + 0x3c, 0x37, //0x00001224 cmpb $55, %al + 0x0f, 0x87, 0xd1, 0x05, 0x00, 0x00, //0x00001226 ja LBB0_310 + 0x0f, 0xb6, 0xc0, //0x0000122c movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000122f movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00001239 btq %rax, %rcx + 0x0f, 0x83, 0xba, 0x05, 0x00, 0x00, //0x0000123d jae LBB0_310 + //0x00001243 LBB0_226 + 0x49, 0x83, 0xf9, 0x10, //0x00001243 cmpq $16, %r9 + 0x0f, 0x82, 0x49, 0x0e, 0x00, 0x00, //0x00001247 jb LBB0_374 + 0x4d, 0x8d, 0x51, 0xf0, //0x0000124d leaq $-16(%r9), %r10 + 0x4c, 0x89, 0xd0, //0x00001251 movq %r10, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001254 andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x00001258 leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe2, 0x0f, //0x0000125d andl $15, %r10d + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00001261 movq $-1, $-72(%rbp) + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001269 movq $-1, $-64(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001271 movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x00001278 movq %r12, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000127b .p2align 4, 0x90 + //0x00001280 LBB0_228 + 0xf3, 0x41, 0x0f, 0x6f, 0x5d, 0x00, //0x00001280 movdqu (%r13), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00001286 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x0000128a pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x0000128f movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001294 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00001298 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x0000129c movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000012a0 pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000012a5 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000012a9 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000012ae por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000012b2 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000012b6 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000012ba pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000012bf pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x000012c4 pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0xeb, 0xe3, //0x000012c8 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000012cc por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000012d0 por %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xc3, //0x000012d4 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0xd7, 0xd6, //0x000012d8 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x000012dc pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000012e0 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x000012e5 leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x000012ec xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x000012ef bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x000012f3 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000012f6 je LBB0_230 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x000012fc movl $-1, %edi + 0xd3, 0xe7, //0x00001301 shll %cl, %edi + 0xf7, 0xd7, //0x00001303 notl %edi + 0x21, 0xf8, //0x00001305 andl %edi, %eax + 0x21, 0xfb, //0x00001307 andl %edi, %ebx + 0x21, 0xd7, //0x00001309 andl %edx, %edi + 0x89, 0xfa, //0x0000130b movl %edi, %edx + //0x0000130d LBB0_230 + 0x8d, 0x78, 0xff, //0x0000130d leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001310 andl %eax, %edi + 0x0f, 0x85, 0x0f, 0x0a, 0x00, 0x00, //0x00001312 jne LBB0_346 + 0x8d, 0x7b, 0xff, //0x00001318 leal $-1(%rbx), %edi + 0x21, 0xdf, //0x0000131b andl %ebx, %edi + 0x0f, 0x85, 0x04, 0x0a, 0x00, 0x00, //0x0000131d jne LBB0_346 + 0x8d, 0x7a, 0xff, //0x00001323 leal $-1(%rdx), %edi + 0x21, 0xd7, //0x00001326 andl %edx, %edi + 0x0f, 0x85, 0xf9, 0x09, 0x00, 0x00, //0x00001328 jne LBB0_346 + 0x85, 0xc0, //0x0000132e testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001330 je LBB0_236 + 0x4c, 0x89, 0xef, //0x00001336 movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001339 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x0000133c bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001340 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00001343 cmpq $-1, %r14 + 0x0f, 0x85, 0xe4, 0x09, 0x00, 0x00, //0x00001347 jne LBB0_347 + 0x4d, 0x89, 0xde, //0x0000134d movq %r11, %r14 + //0x00001350 LBB0_236 + 0x85, 0xdb, //0x00001350 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001352 je LBB0_239 + 0x4c, 0x89, 0xe8, //0x00001358 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000135b subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x0000135e bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001362 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xc0, 0xff, //0x00001365 cmpq $-1, $-64(%rbp) + 0x0f, 0x85, 0xc1, 0x09, 0x00, 0x00, //0x0000136a jne LBB0_347 + 0x4c, 0x89, 0x5d, 0xc0, //0x00001370 movq %r11, $-64(%rbp) + //0x00001374 LBB0_239 + 0x85, 0xd2, //0x00001374 testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001376 je LBB0_242 + 0x4c, 0x89, 0xe8, //0x0000137c movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000137f subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x00001382 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x00001386 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x00001389 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0x9d, 0x09, 0x00, 0x00, //0x0000138e jne LBB0_347 + 0x4c, 0x89, 0x5d, 0xb8, //0x00001394 movq %r11, $-72(%rbp) + //0x00001398 LBB0_242 + 0x83, 0xf9, 0x10, //0x00001398 cmpl $16, %ecx + 0x0f, 0x85, 0xd2, 0x03, 0x00, 0x00, //0x0000139b jne LBB0_298 + 0x49, 0x83, 0xc5, 0x10, //0x000013a1 addq $16, %r13 + 0x49, 0x83, 0xc1, 0xf0, //0x000013a5 addq $-16, %r9 + 0x49, 0x83, 0xf9, 0x0f, //0x000013a9 cmpq $15, %r9 + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000013ad ja LBB0_228 + 0x4d, 0x85, 0xd2, //0x000013b3 testq %r10, %r10 + 0x48, 0x8d, 0x35, 0x13, 0x16, 0x00, 0x00, //0x000013b6 leaq $5651(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xc0, //0x000013bd movq $-64(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x000013c1 movq $-72(%rbp), %rbx + 0x0f, 0x84, 0xb6, 0x03, 0x00, 0x00, //0x000013c5 je LBB0_299 + //0x000013cb LBB0_245 + 0x4b, 0x8d, 0x0c, 0x10, //0x000013cb leaq (%r8,%r10), %rcx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x000013cf jmp LBB0_247 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000013d4 .p2align 4, 0x90 + //0x000013e0 LBB0_246 + 0x49, 0x89, 0xc0, //0x000013e0 movq %rax, %r8 + 0x49, 0xff, 0xca, //0x000013e3 decq %r10 + 0x0f, 0x84, 0xd3, 0x0a, 0x00, 0x00, //0x000013e6 je LBB0_350 + //0x000013ec LBB0_247 + 0x41, 0x0f, 0xbe, 0x10, //0x000013ec movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x000013f0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000013f3 cmpl $58, %edx + 0x0f, 0x87, 0x85, 0x03, 0x00, 0x00, //0x000013f6 ja LBB0_299 + 0x49, 0x8d, 0x40, 0x01, //0x000013fc leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x00001400 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00001404 addq %rsi, %rdx + 0xff, 0xe2, //0x00001407 jmpq *%rdx + //0x00001409 LBB0_249 + 0x49, 0x89, 0xc3, //0x00001409 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x0000140c subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x0000140f cmpq $-1, %rbx + 0x0f, 0x85, 0xff, 0x0b, 0x00, 0x00, //0x00001413 jne LBB0_368 + 0x49, 0xff, 0xcb, //0x00001419 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000141c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000141f jmp LBB0_246 + //0x00001424 LBB0_251 + 0x49, 0x89, 0xc3, //0x00001424 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001427 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000142a cmpq $-1, %rdi + 0x0f, 0x85, 0xe4, 0x0b, 0x00, 0x00, //0x0000142e jne LBB0_368 + 0x49, 0xff, 0xcb, //0x00001434 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001437 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000143a jmp LBB0_246 + //0x0000143f LBB0_253 + 0x49, 0x89, 0xc3, //0x0000143f movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001442 subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00001445 cmpq $-1, %r14 + 0x0f, 0x85, 0xc9, 0x0b, 0x00, 0x00, //0x00001449 jne LBB0_368 + 0x49, 0xff, 0xcb, //0x0000144f decq %r11 + 0x4d, 0x89, 0xde, //0x00001452 movq %r11, %r14 + 0xe9, 0x86, 0xff, 0xff, 0xff, //0x00001455 jmp LBB0_246 + //0x0000145a LBB0_255 + 0x48, 0x8b, 0x4d, 0x90, //0x0000145a movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x0000145e movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001462 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001466 cmpq %rdx, %r15 + 0x0f, 0x83, 0x6b, 0x11, 0x00, 0x00, //0x00001469 jae LBB0_441 + 0x43, 0x8b, 0x0c, 0x1a, //0x0000146f movl (%r10,%r11), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001473 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xaf, 0x11, 0x00, 0x00, //0x00001479 jne LBB0_443 + 0x4c, 0x89, 0xd9, //0x0000147f movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x05, //0x00001482 leaq $5(%r15), %r11 + 0xe9, 0x50, 0x00, 0x00, 0x00, //0x00001486 jmp LBB0_267 + //0x0000148b LBB0_258 + 0x48, 0x8b, 0x4d, 0x90, //0x0000148b movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x0000148f movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001493 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001497 cmpq %rdx, %r15 + 0x0f, 0x83, 0x3a, 0x11, 0x00, 0x00, //0x0000149a jae LBB0_441 + 0x41, 0x81, 0x39, 0x6e, 0x75, 0x6c, 0x6c, //0x000014a0 cmpl $1819047278, (%r9) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x000014a7 je LBB0_266 + 0xe9, 0xd1, 0x11, 0x00, 0x00, //0x000014ad jmp LBB0_260 + //0x000014b2 LBB0_264 + 0x48, 0x8b, 0x4d, 0x90, //0x000014b2 movq $-112(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x000014b6 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x000014ba leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x000014be cmpq %rdx, %r15 + 0x0f, 0x83, 0x13, 0x11, 0x00, 0x00, //0x000014c1 jae LBB0_441 + 0x41, 0x81, 0x39, 0x74, 0x72, 0x75, 0x65, //0x000014c7 cmpl $1702195828, (%r9) + 0x0f, 0x85, 0x01, 0x12, 0x00, 0x00, //0x000014ce jne LBB0_448 + //0x000014d4 LBB0_266 + 0x4c, 0x89, 0xd9, //0x000014d4 movq %r11, %rcx + 0x4d, 0x8d, 0x5f, 0x04, //0x000014d7 leaq $4(%r15), %r11 + //0x000014db LBB0_267 + 0x4c, 0x89, 0x1e, //0x000014db movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000014de movq %r15, %rax + 0x48, 0x85, 0xc9, //0x000014e1 testq %rcx, %rcx + 0x0f, 0x8f, 0x86, 0xec, 0xff, 0xff, //0x000014e4 jg LBB0_3 + 0xe9, 0x71, 0x12, 0x00, 0x00, //0x000014ea jmp LBB0_150 + //0x000014ef LBB0_268 + 0x49, 0x8b, 0x00, //0x000014ef movq (%r8), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000014f2 cmpq $4095, %rax + 0x0f, 0x8f, 0x79, 0x10, 0x00, 0x00, //0x000014f8 jg LBB0_442 + 0x48, 0x8d, 0x48, 0x01, //0x000014fe leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00001502 movq %rcx, (%r8) + 0x49, 0xc7, 0x44, 0xc0, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00001505 movq $6, $8(%r8,%rax,8) + 0xe9, 0x5d, 0xec, 0xff, 0xff, //0x0000150e jmp LBB0_3 + //0x00001513 LBB0_270 + 0x48, 0x85, 0xc0, //0x00001513 testq %rax, %rax + 0x49, 0x8d, 0x45, 0xff, //0x00001516 leaq $-1(%r13), %rax + 0x49, 0xf7, 0xd5, //0x0000151a notq %r13 + 0x4c, 0x0f, 0x48, 0xe9, //0x0000151d cmovsq %rcx, %r13 + 0x49, 0x39, 0xc3, //0x00001521 cmpq %rax, %r11 + 0x49, 0x89, 0xcb, //0x00001524 movq %rcx, %r11 + 0x4d, 0x0f, 0x44, 0xdd, //0x00001527 cmoveq %r13, %r11 + //0x0000152b LBB0_271 + 0x48, 0x8b, 0x75, 0xc8, //0x0000152b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x0000152f movq $-48(%rbp), %r10 + //0x00001533 LBB0_272 + 0x4d, 0x85, 0xdb, //0x00001533 testq %r11, %r11 + 0x0f, 0x89, 0x20, 0xec, 0xff, 0xff, //0x00001536 jns LBB0_1 + 0xe9, 0x67, 0x10, 0x00, 0x00, //0x0000153c jmp LBB0_273 + //0x00001541 LBB0_274 + 0x4d, 0x29, 0xda, //0x00001541 subq %r11, %r10 + 0x0f, 0x84, 0x32, 0x12, 0x00, 0x00, //0x00001544 je LBB0_458 + 0x48, 0x8b, 0x45, 0xd0, //0x0000154a movq $-48(%rbp), %rax + 0x4c, 0x89, 0xd9, //0x0000154e movq %r11, %rcx + 0x49, 0x01, 0xc3, //0x00001551 addq %rax, %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001554 cmpq $64, %r10 + 0x0f, 0x82, 0x78, 0x0b, 0x00, 0x00, //0x00001558 jb LBB0_376 + 0x45, 0x89, 0xd1, //0x0000155e movl %r10d, %r9d + 0x41, 0x83, 0xe1, 0x3f, //0x00001561 andl $63, %r9d + 0x4d, 0x29, 0xfc, //0x00001565 subq %r15, %r12 + 0x49, 0x83, 0xc4, 0xbf, //0x00001568 addq $-65, %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x0000156c andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00001570 addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x88, //0x00001573 addq $-120(%rbp), %r12 + 0x4c, 0x89, 0x65, 0xb8, //0x00001577 movq %r12, $-72(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000157b movq $-1, %r8 + 0x45, 0x31, 0xe4, //0x00001582 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001585 .p2align 4, 0x90 + //0x00001590 LBB0_277 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00001590 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00001595 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x0000159b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x000015a1 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x000015a7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015ab pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x000015af pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x6f, 0xde, //0x000015b3 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015b7 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000015bb pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdc, //0x000015bf movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015c3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000015c7 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015cb movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015cf pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000015d3 pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdd, //0x000015d7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015db pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x000015df pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x000015e4 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015e8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000015ec pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x000015f0 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015f4 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x10, //0x000015f8 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x000015fc orq %rcx, %rax + 0x66, 0x0f, 0xd7, 0xcb, //0x000015ff pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x00001603 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00001607 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe3, 0x20, //0x0000160b shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x0000160f orq %rbx, %rax + 0x66, 0x0f, 0xd7, 0xdb, //0x00001612 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xda, //0x00001616 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000161a pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000161e pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00001623 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe7, 0x10, //0x00001627 shlq $16, %rdi + 0x49, 0x09, 0xfd, //0x0000162b orq %rdi, %r13 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x0000162e pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001633 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00001637 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000163b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00001640 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe1, 0x20, //0x00001644 shlq $32, %rcx + 0x49, 0x09, 0xcd, //0x00001648 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x0000164b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x0000164f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001653 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001657 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000165c pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe3, 0x30, //0x00001660 shlq $48, %rbx + 0x49, 0x09, 0xdd, //0x00001664 orq %rbx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00001667 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x0000166b movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x0000166f pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00001673 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00001678 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x0000167c shlq $16, %rdi + 0x49, 0x09, 0xfe, //0x00001680 orq %rdi, %r14 + 0x66, 0x0f, 0xd7, 0xff, //0x00001683 pmovmskb %xmm7, %edi + 0x48, 0xc1, 0xe2, 0x30, //0x00001687 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x0000168b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000168f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001693 jne LBB0_279 + 0x4d, 0x85, 0xed, //0x00001699 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x0000169c jne LBB0_294 + //0x000016a2 LBB0_279 + 0x48, 0xc1, 0xe7, 0x30, //0x000016a2 shlq $48, %rdi + 0x49, 0x09, 0xce, //0x000016a6 orq %rcx, %r14 + 0x48, 0x09, 0xd0, //0x000016a9 orq %rdx, %rax + 0x4c, 0x89, 0xe9, //0x000016ac movq %r13, %rcx + 0x4c, 0x09, 0xe1, //0x000016af orq %r12, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000016b2 jne LBB0_295 + 0x49, 0x09, 0xfe, //0x000016b8 orq %rdi, %r14 + 0x48, 0x85, 0xc0, //0x000016bb testq %rax, %rax + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x000016be jne LBB0_296 + //0x000016c4 LBB0_281 + 0x4d, 0x85, 0xf6, //0x000016c4 testq %r14, %r14 + 0x0f, 0x85, 0x69, 0x10, 0x00, 0x00, //0x000016c7 jne LBB0_453 + 0x49, 0x83, 0xc2, 0xc0, //0x000016cd addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x000016d1 addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x000016d5 cmpq $63, %r10 + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x000016d9 ja LBB0_277 + 0xe9, 0xe9, 0x06, 0x00, 0x00, //0x000016df jmp LBB0_283 + //0x000016e4 LBB0_295 + 0x4c, 0x89, 0xe1, //0x000016e4 movq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x000016e7 notq %rcx + 0x4c, 0x21, 0xe9, //0x000016ea andq %r13, %rcx + 0x4c, 0x89, 0x4d, 0x80, //0x000016ed movq %r9, $-128(%rbp) + 0x4c, 0x8d, 0x0c, 0x09, //0x000016f1 leaq (%rcx,%rcx), %r9 + 0x4d, 0x09, 0xe1, //0x000016f5 orq %r12, %r9 + 0x4c, 0x89, 0xca, //0x000016f8 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x000016fb notq %rdx + 0x4c, 0x21, 0xea, //0x000016fe andq %r13, %rdx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001701 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xda, //0x0000170b andq %rbx, %rdx + 0x45, 0x31, 0xe4, //0x0000170e xorl %r12d, %r12d + 0x48, 0x01, 0xca, //0x00001711 addq %rcx, %rdx + 0x41, 0x0f, 0x92, 0xc4, //0x00001714 setb %r12b + 0x48, 0x01, 0xd2, //0x00001718 addq %rdx, %rdx + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000171b movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xca, //0x00001725 xorq %rcx, %rdx + 0x4c, 0x21, 0xca, //0x00001728 andq %r9, %rdx + 0x4c, 0x8b, 0x4d, 0x80, //0x0000172b movq $-128(%rbp), %r9 + 0x48, 0xf7, 0xd2, //0x0000172f notq %rdx + 0x48, 0x21, 0xd0, //0x00001732 andq %rdx, %rax + 0x49, 0x09, 0xfe, //0x00001735 orq %rdi, %r14 + 0x48, 0x85, 0xc0, //0x00001738 testq %rax, %rax + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x0000173b je LBB0_281 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001741 jmp LBB0_296 + //0x00001746 LBB0_294 + 0x4c, 0x89, 0xdb, //0x00001746 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00001749 subq $-48(%rbp), %rbx + 0x4d, 0x0f, 0xbc, 0xc5, //0x0000174d bsfq %r13, %r8 + 0x49, 0x01, 0xd8, //0x00001751 addq %rbx, %r8 + 0xe9, 0x49, 0xff, 0xff, 0xff, //0x00001754 jmp LBB0_279 + //0x00001759 LBB0_296 + 0x48, 0x0f, 0xbc, 0xc0, //0x00001759 bsfq %rax, %rax + 0x4d, 0x85, 0xf6, //0x0000175d testq %r14, %r14 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001760 movq $-48(%rbp), %r10 + 0x0f, 0x84, 0xb2, 0x00, 0x00, 0x00, //0x00001764 je LBB0_311 + 0x49, 0x0f, 0xbc, 0xce, //0x0000176a bsfq %r14, %rcx + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x0000176e jmp LBB0_312 + //0x00001773 LBB0_298 + 0x49, 0x01, 0xcd, //0x00001773 addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x00001776 movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001779 movq $-64(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x0000177d movq $-72(%rbp), %rbx + //0x00001781 LBB0_299 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001781 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001788 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x0000178b movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x6d, 0x0e, 0x00, 0x00, //0x0000178f je LBB0_439 + //0x00001795 LBB0_300 + 0x48, 0x85, 0xdb, //0x00001795 testq %rbx, %rbx + 0x0f, 0x84, 0x64, 0x0e, 0x00, 0x00, //0x00001798 je LBB0_439 + 0x4d, 0x85, 0xf6, //0x0000179e testq %r14, %r14 + 0x4c, 0x8b, 0x55, 0xd0, //0x000017a1 movq $-48(%rbp), %r10 + 0x0f, 0x84, 0x57, 0x0e, 0x00, 0x00, //0x000017a5 je LBB0_439 + 0x4d, 0x29, 0xe0, //0x000017ab subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x000017ae leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x000017b2 cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000017b5 je LBB0_308 + 0x49, 0x39, 0xc6, //0x000017bb cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000017be je LBB0_308 + 0x48, 0x39, 0xc3, //0x000017c4 cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000017c7 je LBB0_308 + 0x48, 0x85, 0xdb, //0x000017cd testq %rbx, %rbx + 0x0f, 0x8e, 0x88, 0x00, 0x00, 0x00, //0x000017d0 jle LBB0_319 + 0x48, 0x8d, 0x43, 0xff, //0x000017d6 leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000017da cmpq %rax, %rdi + 0x0f, 0x84, 0x7b, 0x00, 0x00, 0x00, //0x000017dd je LBB0_319 + 0x48, 0xf7, 0xd3, //0x000017e3 notq %rbx + 0x49, 0x89, 0xdb, //0x000017e6 movq %rbx, %r11 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000017e9 jmp LBB0_309 + //0x000017ee LBB0_308 + 0x49, 0xf7, 0xd8, //0x000017ee negq %r8 + 0x4d, 0x89, 0xc3, //0x000017f1 movq %r8, %r11 + //0x000017f4 LBB0_309 + 0x4d, 0x85, 0xdb, //0x000017f4 testq %r11, %r11 + 0x0f, 0x88, 0x05, 0x0e, 0x00, 0x00, //0x000017f7 js LBB0_439 + //0x000017fd LBB0_310 + 0x48, 0x8b, 0x4d, 0xb0, //0x000017fd movq $-80(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x00001801 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x00001804 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001807 movq %r15, %rax + 0x48, 0x85, 0xc9, //0x0000180a testq %rcx, %rcx + 0x4c, 0x8b, 0x45, 0xa0, //0x0000180d movq $-96(%rbp), %r8 + 0x0f, 0x8f, 0x59, 0xe9, 0xff, 0xff, //0x00001811 jg LBB0_3 + 0xe9, 0x44, 0x0f, 0x00, 0x00, //0x00001817 jmp LBB0_150 + //0x0000181c LBB0_311 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000181c movl $64, %ecx + //0x00001821 LBB0_312 + 0x4d, 0x29, 0xd3, //0x00001821 subq %r10, %r11 + 0x48, 0x39, 0xc1, //0x00001824 cmpq %rax, %rcx + 0x0f, 0x82, 0x20, 0x0f, 0x00, 0x00, //0x00001827 jb LBB0_148 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x0000182d leaq $1(%r11,%rax), %r11 + //0x00001832 LBB0_314 + 0x4d, 0x85, 0xdb, //0x00001832 testq %r11, %r11 + 0x0f, 0x89, 0x2f, 0xf7, 0xff, 0xff, //0x00001835 jns LBB0_190 + 0xe9, 0xd4, 0x0d, 0x00, 0x00, //0x0000183b jmp LBB0_315 + //0x00001840 LBB0_317 + 0x4d, 0x29, 0xce, //0x00001840 subq %r9, %r14 + 0x44, 0x0f, 0xbc, 0xd8, //0x00001843 bsfl %eax, %r11d + 0x4d, 0x01, 0xf3, //0x00001847 addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x0000184a notq %r11 + //0x0000184d LBB0_318 + 0x48, 0x8b, 0x75, 0xc8, //0x0000184d movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001851 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x45, 0xa0, //0x00001855 movq $-96(%rbp), %r8 + 0xe9, 0xd5, 0xfc, 0xff, 0xff, //0x00001859 jmp LBB0_272 + //0x0000185e LBB0_319 + 0x4c, 0x89, 0xf0, //0x0000185e movq %r14, %rax + 0x48, 0x09, 0xf8, //0x00001861 orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001864 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x93, 0x01, 0x00, 0x00, //0x00001867 jl LBB0_322 + 0x48, 0x85, 0xc0, //0x0000186d testq %rax, %rax + 0x0f, 0x88, 0x8a, 0x01, 0x00, 0x00, //0x00001870 js LBB0_322 + 0x49, 0xf7, 0xd6, //0x00001876 notq %r14 + 0x4d, 0x89, 0xf3, //0x00001879 movq %r14, %r11 + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000187c jmp LBB0_309 + //0x00001881 LBB0_50 + 0x4c, 0x8b, 0x5d, 0x80, //0x00001881 movq $-128(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb8, //0x00001885 movq $-72(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001889 cmpq $32, %r13 + 0x0f, 0x82, 0xfb, 0x08, 0x00, 0x00, //0x0000188d jb LBB0_381 + //0x00001893 LBB0_51 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001893 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001898 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x0000189e movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000018a2 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x000018a6 pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x000018aa movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000018ae pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x000018b2 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x000018b6 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000018ba pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x000018be pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000018c2 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x000018c6 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x000018ca shlq $16, %rax + 0x48, 0x09, 0xc1, //0x000018ce orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000018d1 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000018d5 jne LBB0_53 + 0x48, 0x85, 0xc9, //0x000018db testq %rcx, %rcx + 0x0f, 0x85, 0x49, 0x08, 0x00, 0x00, //0x000018de jne LBB0_378 + //0x000018e4 LBB0_53 + 0x48, 0x09, 0xfa, //0x000018e4 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000018e7 movq %rcx, %rax + 0x4c, 0x09, 0xd0, //0x000018ea orq %r10, %rax + 0x0f, 0x85, 0x57, 0x08, 0x00, 0x00, //0x000018ed jne LBB0_379 + //0x000018f3 LBB0_54 + 0x48, 0x85, 0xd2, //0x000018f3 testq %rdx, %rdx + 0x0f, 0x84, 0x8a, 0x08, 0x00, 0x00, //0x000018f6 je LBB0_380 + //0x000018fc LBB0_55 + 0x48, 0x0f, 0xbc, 0xc2, //0x000018fc bsfq %rdx, %rax + 0xe9, 0x40, 0xec, 0xff, 0xff, //0x00001900 jmp LBB0_59 + //0x00001905 LBB0_110 + 0x4d, 0x89, 0xe3, //0x00001905 movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x00001908 movq $-72(%rbp), %rax + 0x48, 0x83, 0xf8, 0x20, //0x0000190c cmpq $32, %rax + 0x0f, 0x82, 0xac, 0x06, 0x00, 0x00, //0x00001910 jb LBB0_364 + //0x00001916 LBB0_111 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001916 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x0000191b movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001921 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001925 pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xd5, //0x00001929 pmovmskb %xmm5, %r10d + 0x66, 0x0f, 0x6f, 0xec, //0x0000192e movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001932 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00001936 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xeb, //0x0000193a movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x0000193e pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001942 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001946 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x0000194a pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x0000194e pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001952 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001956 pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x0000195a pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x0000195f pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001963 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001968 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x0000196c pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001970 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001975 pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00001979 pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x0000197d shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00001981 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x00001985 orq %rcx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001988 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000198c jne LBB0_113 + 0x48, 0x85, 0xd2, //0x00001992 testq %rdx, %rdx + 0x0f, 0x85, 0x80, 0x08, 0x00, 0x00, //0x00001995 jne LBB0_389 + //0x0000199b LBB0_113 + 0x48, 0xc1, 0xe7, 0x10, //0x0000199b shlq $16, %rdi + 0x4c, 0x09, 0xd3, //0x0000199f orq %r10, %rbx + 0x48, 0x89, 0xd1, //0x000019a2 movq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x000019a5 orq %r9, %rcx + 0x0f, 0x85, 0x41, 0x07, 0x00, 0x00, //0x000019a8 jne LBB0_377 + //0x000019ae LBB0_114 + 0x48, 0x8b, 0x75, 0xc8, //0x000019ae movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x000019b2 movq $-48(%rbp), %r10 + 0x4c, 0x09, 0xf7, //0x000019b6 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000019b9 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x000019be movl $64, %edx + 0x48, 0x85, 0xdb, //0x000019c3 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019c6 je LBB0_116 + 0x48, 0x0f, 0xbc, 0xd3, //0x000019cc bsfq %rbx, %rdx + //0x000019d0 LBB0_116 + 0x48, 0x85, 0xff, //0x000019d0 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x000019d3 je LBB0_118 + 0x48, 0x0f, 0xbc, 0xcf, //0x000019d9 bsfq %rdi, %rcx + //0x000019dd LBB0_118 + 0x48, 0x85, 0xdb, //0x000019dd testq %rbx, %rbx + 0x0f, 0x84, 0xda, 0x01, 0x00, 0x00, //0x000019e0 je LBB0_325 + 0x4d, 0x29, 0xd3, //0x000019e6 subq %r10, %r11 + 0x48, 0x39, 0xd1, //0x000019e9 cmpq %rdx, %rcx + 0x0f, 0x82, 0x5b, 0x0d, 0x00, 0x00, //0x000019ec jb LBB0_148 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x000019f2 leaq $1(%r11,%rdx), %r11 + 0x4c, 0x8b, 0x4d, 0xc0, //0x000019f7 movq $-64(%rbp), %r9 + 0xe9, 0x61, 0xf5, 0xff, 0xff, //0x000019fb jmp LBB0_189 + //0x00001a00 LBB0_322 + 0x48, 0x85, 0xc0, //0x00001a00 testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x00001a03 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x00001a07 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x00001a0a cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x00001a0e cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x00001a11 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x00001a15 movq %rdi, %r11 + 0xe9, 0xd7, 0xfd, 0xff, 0xff, //0x00001a18 jmp LBB0_309 + //0x00001a1d LBB0_323 + 0x48, 0xf7, 0xd0, //0x00001a1d notq %rax + 0x49, 0x89, 0xc3, //0x00001a20 movq %rax, %r11 + 0xe9, 0x03, 0xfb, 0xff, 0xff, //0x00001a23 jmp LBB0_271 + //0x00001a28 LBB0_324 + 0x48, 0x89, 0x4d, 0xb0, //0x00001a28 movq %rcx, $-80(%rbp) + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001a2c movq $-1, %rcx + 0x4d, 0x85, 0xed, //0x00001a33 testq %r13, %r13 + 0x0f, 0x85, 0x63, 0xf2, 0xff, 0xff, //0x00001a36 jne LBB0_154 + 0xe9, 0x6a, 0x0b, 0x00, 0x00, //0x00001a3c jmp LBB0_430 + //0x00001a41 LBB0_135 + 0x4c, 0x8b, 0x5d, 0x80, //0x00001a41 movq $-128(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb8, //0x00001a45 movq $-72(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001a49 cmpq $32, %r13 + 0x0f, 0x82, 0xae, 0x08, 0x00, 0x00, //0x00001a4d jb LBB0_396 + //0x00001a53 LBB0_136 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001a53 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001a58 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001a5e movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a62 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001a66 pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x00001a6a movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a6e pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001a72 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001a76 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001a7a pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001a7e pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001a82 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001a86 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001a8a shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001a8e orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001a91 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001a95 jne LBB0_138 + 0x48, 0x85, 0xc9, //0x00001a9b testq %rcx, %rcx + 0x0f, 0x85, 0xfc, 0x07, 0x00, 0x00, //0x00001a9e jne LBB0_393 + //0x00001aa4 LBB0_138 + 0x48, 0x09, 0xfa, //0x00001aa4 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x00001aa7 movq %rcx, %rax + 0x4c, 0x09, 0xd0, //0x00001aaa orq %r10, %rax + 0x0f, 0x85, 0x0a, 0x08, 0x00, 0x00, //0x00001aad jne LBB0_394 + //0x00001ab3 LBB0_139 + 0x48, 0x85, 0xd2, //0x00001ab3 testq %rdx, %rdx + 0x0f, 0x84, 0x3d, 0x08, 0x00, 0x00, //0x00001ab6 je LBB0_395 + //0x00001abc LBB0_140 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001abc bsfq %rdx, %rax + 0xe9, 0x70, 0xf1, 0xff, 0xff, //0x00001ac0 jmp LBB0_144 + //0x00001ac5 LBB0_172 + 0x4d, 0x89, 0xe3, //0x00001ac5 movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x00001ac8 movq $-72(%rbp), %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001acc cmpq $32, %rax + 0x0f, 0x82, 0x77, 0x05, 0x00, 0x00, //0x00001ad0 jb LBB0_371 + //0x00001ad6 LBB0_173 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001ad6 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001adb movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001ae1 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001ae5 pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xd5, //0x00001ae9 pmovmskb %xmm5, %r10d + 0x66, 0x0f, 0x6f, 0xec, //0x00001aee movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001af2 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00001af6 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xeb, //0x00001afa movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001afe pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001b02 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001b06 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001b0a pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001b0e pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001b12 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001b16 pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001b1a pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001b1f pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001b23 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001b28 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001b2c pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001b30 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001b35 pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00001b39 pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x00001b3d shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00001b41 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x00001b45 orq %rcx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001b48 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001b4c jne LBB0_175 + 0x48, 0x85, 0xd2, //0x00001b52 testq %rdx, %rdx + 0x0f, 0x85, 0x33, 0x08, 0x00, 0x00, //0x00001b55 jne LBB0_404 + //0x00001b5b LBB0_175 + 0x48, 0xc1, 0xe7, 0x10, //0x00001b5b shlq $16, %rdi + 0x4c, 0x09, 0xd3, //0x00001b5f orq %r10, %rbx + 0x48, 0x89, 0xd1, //0x00001b62 movq %rdx, %rcx + 0x4c, 0x09, 0xc9, //0x00001b65 orq %r9, %rcx + 0x0f, 0x85, 0xc0, 0x06, 0x00, 0x00, //0x00001b68 jne LBB0_390 + //0x00001b6e LBB0_176 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b6e movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001b72 movq $-48(%rbp), %r10 + 0x4c, 0x09, 0xf7, //0x00001b76 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001b79 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001b7e movl $64, %edx + 0x48, 0x85, 0xdb, //0x00001b83 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b86 je LBB0_178 + 0x48, 0x0f, 0xbc, 0xd3, //0x00001b8c bsfq %rbx, %rdx + //0x00001b90 LBB0_178 + 0x48, 0x85, 0xff, //0x00001b90 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b93 je LBB0_180 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001b99 bsfq %rdi, %rcx + //0x00001b9d LBB0_180 + 0x48, 0x85, 0xdb, //0x00001b9d testq %rbx, %rbx + 0x0f, 0x84, 0xce, 0x00, 0x00, 0x00, //0x00001ba0 je LBB0_336 + 0x4d, 0x29, 0xd3, //0x00001ba6 subq %r10, %r11 + 0x48, 0x39, 0xd1, //0x00001ba9 cmpq %rdx, %rcx + 0x0f, 0x82, 0x9b, 0x0b, 0x00, 0x00, //0x00001bac jb LBB0_148 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001bb2 leaq $1(%r11,%rdx), %r11 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001bb7 movq $-64(%rbp), %r9 + 0xe9, 0xfe, 0xf3, 0xff, 0xff, //0x00001bbb jmp LBB0_196 + //0x00001bc0 LBB0_325 + 0x48, 0x85, 0xff, //0x00001bc0 testq %rdi, %rdi + 0x0f, 0x85, 0xc5, 0x0b, 0x00, 0x00, //0x00001bc3 jne LBB0_460 + 0x49, 0x83, 0xc3, 0x20, //0x00001bc9 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001bcd addq $-32, %rax + 0x4d, 0x85, 0xc9, //0x00001bd1 testq %r9, %r9 + 0x0f, 0x85, 0xf9, 0x03, 0x00, 0x00, //0x00001bd4 jne LBB0_365 + //0x00001bda LBB0_327 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001bda movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00001bde testq %rax, %rax + 0x0f, 0x84, 0xa6, 0x09, 0x00, 0x00, //0x00001be1 je LBB0_428 + //0x00001be7 LBB0_328 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001be7 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001beb cmpb $34, %cl + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00001bee je LBB0_335 + 0x80, 0xf9, 0x5c, //0x00001bf4 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001bf7 je LBB0_332 + 0x80, 0xf9, 0x1f, //0x00001bfd cmpb $31, %cl + 0x0f, 0x86, 0x91, 0x0b, 0x00, 0x00, //0x00001c00 jbe LBB0_459 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001c06 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001c0d movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001c12 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001c15 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001c18 jne LBB0_328 + 0xe9, 0x6a, 0x09, 0x00, 0x00, //0x00001c1e jmp LBB0_428 + //0x00001c23 LBB0_332 + 0x48, 0x83, 0xf8, 0x01, //0x00001c23 cmpq $1, %rax + 0x0f, 0x84, 0x72, 0x0b, 0x00, 0x00, //0x00001c27 je LBB0_464 + 0x4c, 0x89, 0xd9, //0x00001c2d movq %r11, %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00001c30 movq $-48(%rbp), %r10 + 0x4c, 0x29, 0xd1, //0x00001c34 subq %r10, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001c37 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001c3b cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001c3f movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001c46 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001c4b movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001c4f addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001c52 addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001c55 jne LBB0_328 + 0xe9, 0x2d, 0x09, 0x00, 0x00, //0x00001c5b jmp LBB0_428 + //0x00001c60 LBB0_334 + 0x48, 0xf7, 0xd0, //0x00001c60 notq %rax + 0x49, 0x89, 0xc3, //0x00001c63 movq %rax, %r11 + 0xe9, 0xe2, 0xfb, 0xff, 0xff, //0x00001c66 jmp LBB0_318 + //0x00001c6b LBB0_335 + 0x4c, 0x03, 0x5d, 0x98, //0x00001c6b addq $-104(%rbp), %r11 + 0xe9, 0xed, 0xf2, 0xff, 0xff, //0x00001c6f jmp LBB0_189 + //0x00001c74 LBB0_336 + 0x48, 0x85, 0xff, //0x00001c74 testq %rdi, %rdi + 0x0f, 0x85, 0x11, 0x0b, 0x00, 0x00, //0x00001c77 jne LBB0_460 + 0x49, 0x83, 0xc3, 0x20, //0x00001c7d addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001c81 addq $-32, %rax + 0x4d, 0x85, 0xc9, //0x00001c85 testq %r9, %r9 + 0x0f, 0x85, 0xd0, 0x03, 0x00, 0x00, //0x00001c88 jne LBB0_372 + //0x00001c8e LBB0_338 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001c8e movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00001c92 testq %rax, %rax + 0x0f, 0x84, 0xf2, 0x08, 0x00, 0x00, //0x00001c95 je LBB0_428 + //0x00001c9b LBB0_339 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001c9b movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001c9f cmpb $34, %cl + 0x0f, 0x84, 0x99, 0x00, 0x00, 0x00, //0x00001ca2 je LBB0_349 + 0x80, 0xf9, 0x5c, //0x00001ca8 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001cab je LBB0_343 + 0x80, 0xf9, 0x1f, //0x00001cb1 cmpb $31, %cl + 0x0f, 0x86, 0xdd, 0x0a, 0x00, 0x00, //0x00001cb4 jbe LBB0_459 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001cba movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001cc1 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001cc6 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001cc9 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001ccc jne LBB0_339 + 0xe9, 0xb6, 0x08, 0x00, 0x00, //0x00001cd2 jmp LBB0_428 + //0x00001cd7 LBB0_343 + 0x48, 0x83, 0xf8, 0x01, //0x00001cd7 cmpq $1, %rax + 0x0f, 0x84, 0xbe, 0x0a, 0x00, 0x00, //0x00001cdb je LBB0_464 + 0x4c, 0x89, 0xd9, //0x00001ce1 movq %r11, %rcx + 0x4c, 0x8b, 0x55, 0xd0, //0x00001ce4 movq $-48(%rbp), %r10 + 0x4c, 0x29, 0xd1, //0x00001ce8 subq %r10, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001ceb cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001cef cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001cf3 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001cfa movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001cff movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001d03 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001d06 addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001d09 jne LBB0_339 + 0xe9, 0x79, 0x08, 0x00, 0x00, //0x00001d0f jmp LBB0_428 + //0x00001d14 LBB0_345 + 0x48, 0xf7, 0xd8, //0x00001d14 negq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x00001d17 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001d1b movq $-48(%rbp), %r10 + 0x49, 0x89, 0xc3, //0x00001d1f movq %rax, %r11 + 0xe9, 0x0c, 0xf8, 0xff, 0xff, //0x00001d22 jmp LBB0_272 + //0x00001d27 LBB0_346 + 0x4d, 0x29, 0xe5, //0x00001d27 subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001d2a bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001d2e addq %r13, %r11 + //0x00001d31 LBB0_347 + 0x49, 0xf7, 0xd3, //0x00001d31 notq %r11 + //0x00001d34 LBB0_348 + 0x48, 0x8b, 0x75, 0xc8, //0x00001d34 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001d38 movq $-48(%rbp), %r10 + 0xe9, 0xb3, 0xfa, 0xff, 0xff, //0x00001d3c jmp LBB0_309 + //0x00001d41 LBB0_349 + 0x4c, 0x03, 0x5d, 0x98, //0x00001d41 addq $-104(%rbp), %r11 + 0xe9, 0x74, 0xf2, 0xff, 0xff, //0x00001d45 jmp LBB0_196 + //0x00001d4a LBB0_211 + 0x4d, 0x89, 0xe3, //0x00001d4a movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001d4d movq $-72(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001d51 cmpq $32, %r10 + 0x0f, 0x82, 0x18, 0x07, 0x00, 0x00, //0x00001d55 jb LBB0_411 + //0x00001d5b LBB0_212 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001d5b movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001d60 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001d66 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d6a pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001d6e pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x00001d72 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d76 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001d7a pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001d7e pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001d82 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001d86 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001d8a pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001d8e shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001d92 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001d96 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001d99 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001d9d jne LBB0_214 + 0x48, 0x85, 0xc9, //0x00001da3 testq %rcx, %rcx + 0x0f, 0x85, 0x64, 0x06, 0x00, 0x00, //0x00001da6 jne LBB0_408 + //0x00001dac LBB0_214 + 0x48, 0x09, 0xfa, //0x00001dac orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x00001daf movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001db2 orq %r9, %rax + 0x0f, 0x85, 0x72, 0x06, 0x00, 0x00, //0x00001db5 jne LBB0_409 + //0x00001dbb LBB0_215 + 0x48, 0x85, 0xd2, //0x00001dbb testq %rdx, %rdx + 0x0f, 0x84, 0xa7, 0x06, 0x00, 0x00, //0x00001dbe je LBB0_410 + //0x00001dc4 LBB0_216 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001dc4 bsfq %rdx, %rax + 0xe9, 0x08, 0xf4, 0xff, 0xff, //0x00001dc8 jmp LBB0_220 + //0x00001dcd LBB0_283 + 0x4c, 0x8b, 0x5d, 0xb8, //0x00001dcd movq $-72(%rbp), %r11 + 0x4d, 0x89, 0xca, //0x00001dd1 movq %r9, %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001dd4 cmpq $32, %r10 + 0x0f, 0x82, 0x2f, 0x01, 0x00, 0x00, //0x00001dd8 jb LBB0_354 + //0x00001dde LBB0_284 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001dde movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001de3 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001de9 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001ded pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001df1 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xec, //0x00001df5 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001df9 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xc5, //0x00001dfd pmovmskb %xmm5, %eax + 0x66, 0x0f, 0x6f, 0xeb, //0x00001e01 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e05 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001e09 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e0d movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e11 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00001e15 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xea, //0x00001e19 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001e1d pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001e21 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001e26 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001e2a pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001e2f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001e33 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001e37 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001e3c pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00001e40 pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe0, 0x10, //0x00001e44 shlq $16, %rax + 0x48, 0xc1, 0xe3, 0x10, //0x00001e48 shlq $16, %rbx + 0x48, 0x09, 0xda, //0x00001e4c orq %rbx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001e4f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001e53 jne LBB0_286 + 0x48, 0x85, 0xd2, //0x00001e59 testq %rdx, %rdx + 0x0f, 0x85, 0x96, 0x06, 0x00, 0x00, //0x00001e5c jne LBB0_419 + //0x00001e62 LBB0_286 + 0x48, 0xc1, 0xe7, 0x10, //0x00001e62 shlq $16, %rdi + 0x48, 0x09, 0xc8, //0x00001e66 orq %rcx, %rax + 0x48, 0x89, 0xd1, //0x00001e69 movq %rdx, %rcx + 0x4c, 0x09, 0xe1, //0x00001e6c orq %r12, %rcx + 0x0f, 0x85, 0x60, 0x05, 0x00, 0x00, //0x00001e6f jne LBB0_407 + //0x00001e75 LBB0_287 + 0x4c, 0x09, 0xf7, //0x00001e75 orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001e78 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001e7d movl $64, %edx + 0x48, 0x85, 0xc0, //0x00001e82 testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001e85 je LBB0_289 + 0x48, 0x0f, 0xbc, 0xd0, //0x00001e8b bsfq %rax, %rdx + //0x00001e8f LBB0_289 + 0x48, 0x85, 0xff, //0x00001e8f testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001e92 je LBB0_291 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001e98 bsfq %rdi, %rcx + //0x00001e9c LBB0_291 + 0x48, 0x85, 0xc0, //0x00001e9c testq %rax, %rax + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00001e9f je LBB0_352 + 0x4c, 0x8b, 0x55, 0xd0, //0x00001ea5 movq $-48(%rbp), %r10 + 0x4d, 0x29, 0xd3, //0x00001ea9 subq %r10, %r11 + 0x48, 0x39, 0xd1, //0x00001eac cmpq %rdx, %rcx + 0x0f, 0x82, 0x98, 0x08, 0x00, 0x00, //0x00001eaf jb LBB0_148 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001eb5 leaq $1(%r11,%rdx), %r11 + 0xe9, 0x73, 0xf9, 0xff, 0xff, //0x00001eba jmp LBB0_314 + //0x00001ebf LBB0_350 + 0x49, 0x89, 0xc8, //0x00001ebf movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001ec2 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001ec9 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001ecc movq $-56(%rbp), %rsi + 0x0f, 0x85, 0xbf, 0xf8, 0xff, 0xff, //0x00001ed0 jne LBB0_300 + 0xe9, 0x27, 0x07, 0x00, 0x00, //0x00001ed6 jmp LBB0_439 + //0x00001edb LBB0_351 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001edb movq $-1, %r11 + 0x4c, 0x89, 0x4d, 0xb0, //0x00001ee2 movq %r9, $-80(%rbp) + 0x48, 0x89, 0xfe, //0x00001ee6 movq %rdi, %rsi + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001ee9 movq $-1, %r13 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00001ef0 movq $-1, %r10 + 0xe9, 0x89, 0xe8, 0xff, 0xff, //0x00001ef7 jmp LBB0_91 + //0x00001efc LBB0_352 + 0x48, 0x85, 0xff, //0x00001efc testq %rdi, %rdi + 0x0f, 0x85, 0xa3, 0x08, 0x00, 0x00, //0x00001eff jne LBB0_461 + 0x49, 0x83, 0xc3, 0x20, //0x00001f05 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00001f09 addq $-32, %r10 + //0x00001f0d LBB0_354 + 0x4d, 0x85, 0xe4, //0x00001f0d testq %r12, %r12 + 0x0f, 0x85, 0x21, 0x06, 0x00, 0x00, //0x00001f10 jne LBB0_423 + 0x4d, 0x85, 0xd2, //0x00001f16 testq %r10, %r10 + 0x0f, 0x84, 0xff, 0x06, 0x00, 0x00, //0x00001f19 je LBB0_316 + //0x00001f1f LBB0_356 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001f1f movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001f23 cmpb $34, %cl + 0x0f, 0x84, 0xdf, 0x00, 0x00, 0x00, //0x00001f26 je LBB0_367 + 0x80, 0xf9, 0x5c, //0x00001f2c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001f2f je LBB0_360 + 0x80, 0xf9, 0x1f, //0x00001f35 cmpb $31, %cl + 0x0f, 0x86, 0x73, 0x08, 0x00, 0x00, //0x00001f38 jbe LBB0_462 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001f3e movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001f45 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001f4a addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001f4d addq %rcx, %r10 + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001f50 jne LBB0_356 + 0xe9, 0xc3, 0x06, 0x00, 0x00, //0x00001f56 jmp LBB0_316 + //0x00001f5b LBB0_360 + 0x49, 0x83, 0xfa, 0x01, //0x00001f5b cmpq $1, %r10 + 0x0f, 0x84, 0x20, 0x08, 0x00, 0x00, //0x00001f5f je LBB0_422 + 0x4c, 0x89, 0xd9, //0x00001f65 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001f68 subq $-48(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001f6c cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001f70 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001f74 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001f7b movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001f80 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001f84 addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001f87 addq %rcx, %r10 + 0x0f, 0x85, 0x8f, 0xff, 0xff, 0xff, //0x00001f8a jne LBB0_356 + 0xe9, 0x89, 0x06, 0x00, 0x00, //0x00001f90 jmp LBB0_316 + //0x00001f95 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001f95 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00001f9c xorl %r10d, %r10d + 0x49, 0x83, 0xfd, 0x20, //0x00001f9f cmpq $32, %r13 + 0x0f, 0x83, 0xea, 0xf8, 0xff, 0xff, //0x00001fa3 jae LBB0_51 + 0xe9, 0xe0, 0x01, 0x00, 0x00, //0x00001fa9 jmp LBB0_381 + //0x00001fae LBB0_363 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001fae movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00001fb5 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x00001fb8 cmpq $32, %rax + 0x0f, 0x83, 0x54, 0xf9, 0xff, 0xff, //0x00001fbc jae LBB0_111 + //0x00001fc2 LBB0_364 + 0x48, 0x8b, 0x75, 0xc8, //0x00001fc2 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001fc6 movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xc9, //0x00001fca testq %r9, %r9 + 0x0f, 0x84, 0x07, 0xfc, 0xff, 0xff, //0x00001fcd je LBB0_327 + //0x00001fd3 LBB0_365 + 0x48, 0x85, 0xc0, //0x00001fd3 testq %rax, %rax + 0x0f, 0x84, 0xde, 0x07, 0x00, 0x00, //0x00001fd6 je LBB0_463 + 0x48, 0x8b, 0x4d, 0xa8, //0x00001fdc movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00001fe0 addq %r11, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001fe3 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001fe7 cmoveq %rcx, %r8 + 0x49, 0xff, 0xc3, //0x00001feb incq %r11 + 0x48, 0xff, 0xc8, //0x00001fee decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x00001ff1 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00001ff5 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00001ff9 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00001ffd testq %rax, %rax + 0x0f, 0x85, 0xe1, 0xfb, 0xff, 0xff, //0x00002000 jne LBB0_328 + 0xe9, 0x82, 0x05, 0x00, 0x00, //0x00002006 jmp LBB0_428 + //0x0000200b LBB0_367 + 0x4c, 0x03, 0x5d, 0x98, //0x0000200b addq $-104(%rbp), %r11 + 0x4c, 0x8b, 0x55, 0xd0, //0x0000200f movq $-48(%rbp), %r10 + 0xe9, 0x1a, 0xf8, 0xff, 0xff, //0x00002013 jmp LBB0_314 + //0x00002018 LBB0_368 + 0x49, 0xf7, 0xdb, //0x00002018 negq %r11 + 0xe9, 0x14, 0xfd, 0xff, 0xff, //0x0000201b jmp LBB0_348 + //0x00002020 LBB0_369 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002020 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00002027 xorl %r10d, %r10d + 0x49, 0x83, 0xfd, 0x20, //0x0000202a cmpq $32, %r13 + 0x0f, 0x83, 0x1f, 0xfa, 0xff, 0xff, //0x0000202e jae LBB0_136 + 0xe9, 0xc8, 0x02, 0x00, 0x00, //0x00002034 jmp LBB0_396 + //0x00002039 LBB0_370 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002039 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00002040 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x00002043 cmpq $32, %rax + 0x0f, 0x83, 0x89, 0xfa, 0xff, 0xff, //0x00002047 jae LBB0_173 + //0x0000204d LBB0_371 + 0x48, 0x8b, 0x75, 0xc8, //0x0000204d movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002051 movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xc9, //0x00002055 testq %r9, %r9 + 0x0f, 0x84, 0x30, 0xfc, 0xff, 0xff, //0x00002058 je LBB0_338 + //0x0000205e LBB0_372 + 0x48, 0x85, 0xc0, //0x0000205e testq %rax, %rax + 0x0f, 0x84, 0x53, 0x07, 0x00, 0x00, //0x00002061 je LBB0_463 + 0x48, 0x8b, 0x4d, 0xa8, //0x00002067 movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x0000206b addq %r11, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000206e cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002072 cmoveq %rcx, %r8 + 0x49, 0xff, 0xc3, //0x00002076 incq %r11 + 0x48, 0xff, 0xc8, //0x00002079 decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x0000207c movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002080 movq $-48(%rbp), %r10 + 0x4c, 0x8b, 0x4d, 0xc0, //0x00002084 movq $-64(%rbp), %r9 + 0x48, 0x85, 0xc0, //0x00002088 testq %rax, %rax + 0x0f, 0x85, 0x0a, 0xfc, 0xff, 0xff, //0x0000208b jne LBB0_339 + 0xe9, 0xf7, 0x04, 0x00, 0x00, //0x00002091 jmp LBB0_428 + //0x00002096 LBB0_374 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00002096 movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x0000209d movq %r12, %r8 + 0x4d, 0x89, 0xca, //0x000020a0 movq %r9, %r10 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000020a3 movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000020aa movq $-1, %rbx + 0x48, 0x8d, 0x35, 0x18, 0x09, 0x00, 0x00, //0x000020b1 leaq $2328(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0x0e, 0xf3, 0xff, 0xff, //0x000020b8 jmp LBB0_245 + //0x000020bd LBB0_375 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000020bd movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x000020c4 xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x000020c7 cmpq $32, %r10 + 0x0f, 0x83, 0x8a, 0xfc, 0xff, 0xff, //0x000020cb jae LBB0_212 + 0xe9, 0x9d, 0x03, 0x00, 0x00, //0x000020d1 jmp LBB0_411 + //0x000020d6 LBB0_376 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000020d6 movq $-1, %r8 + 0x45, 0x31, 0xe4, //0x000020dd xorl %r12d, %r12d + 0x49, 0x83, 0xfa, 0x20, //0x000020e0 cmpq $32, %r10 + 0x0f, 0x83, 0xf4, 0xfc, 0xff, 0xff, //0x000020e4 jae LBB0_284 + 0xe9, 0x1e, 0xfe, 0xff, 0xff, //0x000020ea jmp LBB0_354 + //0x000020ef LBB0_377 + 0x45, 0x89, 0xcc, //0x000020ef movl %r9d, %r12d + 0x41, 0xf7, 0xd4, //0x000020f2 notl %r12d + 0x41, 0x21, 0xd4, //0x000020f5 andl %edx, %r12d + 0x47, 0x8d, 0x14, 0x24, //0x000020f8 leal (%r12,%r12), %r10d + 0x45, 0x09, 0xca, //0x000020fc orl %r9d, %r10d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x000020ff movl $2863311530, %ecx + 0x44, 0x31, 0xd1, //0x00002104 xorl %r10d, %ecx + 0x21, 0xd1, //0x00002107 andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002109 andl $-1431655766, %ecx + 0x45, 0x31, 0xc9, //0x0000210f xorl %r9d, %r9d + 0x44, 0x01, 0xe1, //0x00002112 addl %r12d, %ecx + 0x41, 0x0f, 0x92, 0xc1, //0x00002115 setb %r9b + 0x01, 0xc9, //0x00002119 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x0000211b xorl $1431655765, %ecx + 0x44, 0x21, 0xd1, //0x00002121 andl %r10d, %ecx + 0xf7, 0xd1, //0x00002124 notl %ecx + 0x21, 0xcb, //0x00002126 andl %ecx, %ebx + 0xe9, 0x81, 0xf8, 0xff, 0xff, //0x00002128 jmp LBB0_114 + //0x0000212d LBB0_378 + 0x4c, 0x89, 0xd8, //0x0000212d movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002130 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x00002134 bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x00002138 addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x0000213b orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x0000213e movq %rcx, %rax + 0x4c, 0x09, 0xd0, //0x00002141 orq %r10, %rax + 0x0f, 0x84, 0xa9, 0xf7, 0xff, 0xff, //0x00002144 je LBB0_54 + //0x0000214a LBB0_379 + 0x44, 0x89, 0xd0, //0x0000214a movl %r10d, %eax + 0xf7, 0xd0, //0x0000214d notl %eax + 0x21, 0xc8, //0x0000214f andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x00002151 leal (%rax,%rax), %esi + 0x44, 0x09, 0xd6, //0x00002154 orl %r10d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002157 movl $2863311530, %edi + 0x31, 0xf7, //0x0000215c xorl %esi, %edi + 0x21, 0xcf, //0x0000215e andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002160 andl $-1431655766, %edi + 0x45, 0x31, 0xd2, //0x00002166 xorl %r10d, %r10d + 0x01, 0xc7, //0x00002169 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc2, //0x0000216b setb %r10b + 0x01, 0xff, //0x0000216f addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002171 xorl $1431655765, %edi + 0x21, 0xf7, //0x00002177 andl %esi, %edi + 0xf7, 0xd7, //0x00002179 notl %edi + 0x21, 0xfa, //0x0000217b andl %edi, %edx + 0x48, 0x85, 0xd2, //0x0000217d testq %rdx, %rdx + 0x0f, 0x85, 0x76, 0xf7, 0xff, 0xff, //0x00002180 jne LBB0_55 + //0x00002186 LBB0_380 + 0x49, 0x83, 0xc3, 0x20, //0x00002186 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x0000218a addq $-32, %r13 + //0x0000218e LBB0_381 + 0x4d, 0x85, 0xd2, //0x0000218e testq %r10, %r10 + 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, //0x00002191 jne LBB0_391 + 0x48, 0x8b, 0x75, 0xc8, //0x00002197 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x0000219b movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xed, //0x0000219f testq %r13, %r13 + 0x0f, 0x84, 0xe5, 0x03, 0x00, 0x00, //0x000021a2 je LBB0_428 + //0x000021a8 LBB0_383 + 0x49, 0x8d, 0x4b, 0x01, //0x000021a8 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000021ac movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000021b0 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x000021b3 je LBB0_388 + 0x49, 0x8d, 0x55, 0xff, //0x000021b9 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x000021bd cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000021c0 je LBB0_386 + 0x49, 0x89, 0xd5, //0x000021c6 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x000021c9 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000021cc testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000021cf jne LBB0_383 + 0xe9, 0xb3, 0x03, 0x00, 0x00, //0x000021d5 jmp LBB0_428 + //0x000021da LBB0_386 + 0x48, 0x85, 0xd2, //0x000021da testq %rdx, %rdx + 0x0f, 0x84, 0xbc, 0x05, 0x00, 0x00, //0x000021dd je LBB0_464 + 0x48, 0x03, 0x4d, 0xa8, //0x000021e3 addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000021e7 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x000021eb cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x000021ef addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x000021f3 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x000021f7 movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x000021fa movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x000021fe movq $-48(%rbp), %r10 + 0x48, 0x85, 0xd2, //0x00002202 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00002205 jne LBB0_383 + 0xe9, 0x7d, 0x03, 0x00, 0x00, //0x0000220b jmp LBB0_428 + //0x00002210 LBB0_388 + 0x4c, 0x29, 0xd1, //0x00002210 subq %r10, %rcx + 0x49, 0x89, 0xcb, //0x00002213 movq %rcx, %r11 + 0xe9, 0x46, 0xed, 0xff, 0xff, //0x00002216 jmp LBB0_189 + //0x0000221b LBB0_389 + 0x4c, 0x89, 0xd9, //0x0000221b movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x0000221e subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc2, //0x00002222 bsfq %rdx, %r8 + 0x49, 0x01, 0xc8, //0x00002226 addq %rcx, %r8 + 0xe9, 0x6d, 0xf7, 0xff, 0xff, //0x00002229 jmp LBB0_113 + //0x0000222e LBB0_390 + 0x45, 0x89, 0xcc, //0x0000222e movl %r9d, %r12d + 0x41, 0xf7, 0xd4, //0x00002231 notl %r12d + 0x41, 0x21, 0xd4, //0x00002234 andl %edx, %r12d + 0x47, 0x8d, 0x14, 0x24, //0x00002237 leal (%r12,%r12), %r10d + 0x45, 0x09, 0xca, //0x0000223b orl %r9d, %r10d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000223e movl $2863311530, %ecx + 0x44, 0x31, 0xd1, //0x00002243 xorl %r10d, %ecx + 0x21, 0xd1, //0x00002246 andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002248 andl $-1431655766, %ecx + 0x45, 0x31, 0xc9, //0x0000224e xorl %r9d, %r9d + 0x44, 0x01, 0xe1, //0x00002251 addl %r12d, %ecx + 0x41, 0x0f, 0x92, 0xc1, //0x00002254 setb %r9b + 0x01, 0xc9, //0x00002258 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x0000225a xorl $1431655765, %ecx + 0x44, 0x21, 0xd1, //0x00002260 andl %r10d, %ecx + 0xf7, 0xd1, //0x00002263 notl %ecx + 0x21, 0xcb, //0x00002265 andl %ecx, %ebx + 0xe9, 0x02, 0xf9, 0xff, 0xff, //0x00002267 jmp LBB0_176 + //0x0000226c LBB0_391 + 0x4d, 0x85, 0xed, //0x0000226c testq %r13, %r13 + 0x0f, 0x84, 0x2a, 0x05, 0x00, 0x00, //0x0000226f je LBB0_464 + 0x48, 0x8b, 0x45, 0xa8, //0x00002275 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002279 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000227c cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00002280 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002284 incq %r11 + 0x49, 0xff, 0xcd, //0x00002287 decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x0000228a movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x0000228e movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xed, //0x00002292 testq %r13, %r13 + 0x0f, 0x85, 0x0d, 0xff, 0xff, 0xff, //0x00002295 jne LBB0_383 + 0xe9, 0xed, 0x02, 0x00, 0x00, //0x0000229b jmp LBB0_428 + //0x000022a0 LBB0_393 + 0x4c, 0x89, 0xd8, //0x000022a0 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000022a3 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x000022a7 bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x000022ab addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x000022ae orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000022b1 movq %rcx, %rax + 0x4c, 0x09, 0xd0, //0x000022b4 orq %r10, %rax + 0x0f, 0x84, 0xf6, 0xf7, 0xff, 0xff, //0x000022b7 je LBB0_139 + //0x000022bd LBB0_394 + 0x44, 0x89, 0xd0, //0x000022bd movl %r10d, %eax + 0xf7, 0xd0, //0x000022c0 notl %eax + 0x21, 0xc8, //0x000022c2 andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x000022c4 leal (%rax,%rax), %esi + 0x44, 0x09, 0xd6, //0x000022c7 orl %r10d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022ca movl $2863311530, %edi + 0x31, 0xf7, //0x000022cf xorl %esi, %edi + 0x21, 0xcf, //0x000022d1 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022d3 andl $-1431655766, %edi + 0x45, 0x31, 0xd2, //0x000022d9 xorl %r10d, %r10d + 0x01, 0xc7, //0x000022dc addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc2, //0x000022de setb %r10b + 0x01, 0xff, //0x000022e2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000022e4 xorl $1431655765, %edi + 0x21, 0xf7, //0x000022ea andl %esi, %edi + 0xf7, 0xd7, //0x000022ec notl %edi + 0x21, 0xfa, //0x000022ee andl %edi, %edx + 0x48, 0x85, 0xd2, //0x000022f0 testq %rdx, %rdx + 0x0f, 0x85, 0xc3, 0xf7, 0xff, 0xff, //0x000022f3 jne LBB0_140 + //0x000022f9 LBB0_395 + 0x49, 0x83, 0xc3, 0x20, //0x000022f9 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x000022fd addq $-32, %r13 + //0x00002301 LBB0_396 + 0x4d, 0x85, 0xd2, //0x00002301 testq %r10, %r10 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00002304 jne LBB0_405 + 0x48, 0x8b, 0x75, 0xc8, //0x0000230a movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x0000230e movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xed, //0x00002312 testq %r13, %r13 + 0x0f, 0x84, 0x72, 0x02, 0x00, 0x00, //0x00002315 je LBB0_428 + //0x0000231b LBB0_398 + 0x49, 0x8d, 0x4b, 0x01, //0x0000231b leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x0000231f movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00002323 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002326 je LBB0_403 + 0x49, 0x8d, 0x55, 0xff, //0x0000232c leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00002330 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002333 je LBB0_401 + 0x49, 0x89, 0xd5, //0x00002339 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x0000233c movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x0000233f testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00002342 jne LBB0_398 + 0xe9, 0x40, 0x02, 0x00, 0x00, //0x00002348 jmp LBB0_428 + //0x0000234d LBB0_401 + 0x48, 0x85, 0xd2, //0x0000234d testq %rdx, %rdx + 0x0f, 0x84, 0x49, 0x04, 0x00, 0x00, //0x00002350 je LBB0_464 + 0x48, 0x03, 0x4d, 0xa8, //0x00002356 addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000235a cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x0000235e cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x00002362 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002366 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x0000236a movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x0000236d movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x00002371 movq $-48(%rbp), %r10 + 0x48, 0x85, 0xd2, //0x00002375 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00002378 jne LBB0_398 + 0xe9, 0x0a, 0x02, 0x00, 0x00, //0x0000237e jmp LBB0_428 + //0x00002383 LBB0_403 + 0x4c, 0x29, 0xd1, //0x00002383 subq %r10, %rcx + 0x49, 0x89, 0xcb, //0x00002386 movq %rcx, %r11 + 0xe9, 0x30, 0xec, 0xff, 0xff, //0x00002389 jmp LBB0_196 + //0x0000238e LBB0_404 + 0x4c, 0x89, 0xd9, //0x0000238e movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00002391 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc2, //0x00002395 bsfq %rdx, %r8 + 0x49, 0x01, 0xc8, //0x00002399 addq %rcx, %r8 + 0xe9, 0xba, 0xf7, 0xff, 0xff, //0x0000239c jmp LBB0_175 + //0x000023a1 LBB0_405 + 0x4d, 0x85, 0xed, //0x000023a1 testq %r13, %r13 + 0x0f, 0x84, 0xf5, 0x03, 0x00, 0x00, //0x000023a4 je LBB0_464 + 0x48, 0x8b, 0x45, 0xa8, //0x000023aa movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000023ae addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023b1 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023b5 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x000023b9 incq %r11 + 0x49, 0xff, 0xcd, //0x000023bc decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000023bf movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xd0, //0x000023c3 movq $-48(%rbp), %r10 + 0x4d, 0x85, 0xed, //0x000023c7 testq %r13, %r13 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x000023ca jne LBB0_398 + 0xe9, 0xb8, 0x01, 0x00, 0x00, //0x000023d0 jmp LBB0_428 + //0x000023d5 LBB0_407 + 0x44, 0x89, 0xe1, //0x000023d5 movl %r12d, %ecx + 0xf7, 0xd1, //0x000023d8 notl %ecx + 0x21, 0xd1, //0x000023da andl %edx, %ecx + 0x44, 0x8d, 0x0c, 0x09, //0x000023dc leal (%rcx,%rcx), %r9d + 0x45, 0x09, 0xe1, //0x000023e0 orl %r12d, %r9d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x000023e3 movl $2863311530, %ebx + 0x44, 0x31, 0xcb, //0x000023e8 xorl %r9d, %ebx + 0x21, 0xd3, //0x000023eb andl %edx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x000023ed andl $-1431655766, %ebx + 0x45, 0x31, 0xe4, //0x000023f3 xorl %r12d, %r12d + 0x01, 0xcb, //0x000023f6 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc4, //0x000023f8 setb %r12b + 0x01, 0xdb, //0x000023fc addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x000023fe xorl $1431655765, %ebx + 0x44, 0x21, 0xcb, //0x00002404 andl %r9d, %ebx + 0xf7, 0xd3, //0x00002407 notl %ebx + 0x21, 0xd8, //0x00002409 andl %ebx, %eax + 0xe9, 0x65, 0xfa, 0xff, 0xff, //0x0000240b jmp LBB0_287 + //0x00002410 LBB0_408 + 0x4c, 0x89, 0xd8, //0x00002410 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002413 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x00002417 bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x0000241b addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x0000241e orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x00002421 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00002424 orq %r9, %rax + 0x0f, 0x84, 0x8e, 0xf9, 0xff, 0xff, //0x00002427 je LBB0_215 + //0x0000242d LBB0_409 + 0x44, 0x89, 0xc8, //0x0000242d movl %r9d, %eax + 0xf7, 0xd0, //0x00002430 notl %eax + 0x21, 0xc8, //0x00002432 andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x00002434 leal (%rax,%rax), %esi + 0x44, 0x09, 0xce, //0x00002437 orl %r9d, %esi + 0x89, 0xf7, //0x0000243a movl %esi, %edi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000243c movl $2863311530, %ebx + 0x31, 0xdf, //0x00002441 xorl %ebx, %edi + 0x21, 0xcf, //0x00002443 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002445 andl $-1431655766, %edi + 0x45, 0x31, 0xc9, //0x0000244b xorl %r9d, %r9d + 0x01, 0xc7, //0x0000244e addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc1, //0x00002450 setb %r9b + 0x01, 0xff, //0x00002454 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00002456 xorl $1431655765, %edi + 0x21, 0xf7, //0x0000245c andl %esi, %edi + 0xf7, 0xd7, //0x0000245e notl %edi + 0x21, 0xfa, //0x00002460 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x00002462 testq %rdx, %rdx + 0x0f, 0x85, 0x59, 0xf9, 0xff, 0xff, //0x00002465 jne LBB0_216 + //0x0000246b LBB0_410 + 0x49, 0x83, 0xc3, 0x20, //0x0000246b addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x0000246f addq $-32, %r10 + //0x00002473 LBB0_411 + 0x4d, 0x85, 0xc9, //0x00002473 testq %r9, %r9 + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00002476 jne LBB0_420 + 0x4d, 0x85, 0xd2, //0x0000247c testq %r10, %r10 + 0x0f, 0x84, 0x00, 0x03, 0x00, 0x00, //0x0000247f je LBB0_422 + //0x00002485 LBB0_413 + 0x49, 0x8d, 0x4b, 0x01, //0x00002485 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00002489 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x0000248d cmpb $34, %bl + 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00002490 je LBB0_418 + 0x49, 0x8d, 0x52, 0xff, //0x00002496 leaq $-1(%r10), %rdx + 0x80, 0xfb, 0x5c, //0x0000249a cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000249d je LBB0_416 + 0x49, 0x89, 0xd2, //0x000024a3 movq %rdx, %r10 + 0x49, 0x89, 0xcb, //0x000024a6 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000024a9 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000024ac jne LBB0_413 + 0xe9, 0xce, 0x02, 0x00, 0x00, //0x000024b2 jmp LBB0_422 + //0x000024b7 LBB0_416 + 0x48, 0x85, 0xd2, //0x000024b7 testq %rdx, %rdx + 0x0f, 0x84, 0xc5, 0x02, 0x00, 0x00, //0x000024ba je LBB0_422 + 0x48, 0x03, 0x4d, 0xa8, //0x000024c0 addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000024c4 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x000024c8 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x000024cc addq $2, %r11 + 0x49, 0x83, 0xc2, 0xfe, //0x000024d0 addq $-2, %r10 + 0x4c, 0x89, 0xd2, //0x000024d4 movq %r10, %rdx + 0x48, 0x85, 0xd2, //0x000024d7 testq %rdx, %rdx + 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x000024da jne LBB0_413 + 0xe9, 0xa0, 0x02, 0x00, 0x00, //0x000024e0 jmp LBB0_422 + //0x000024e5 LBB0_418 + 0x4c, 0x8b, 0x55, 0xd0, //0x000024e5 movq $-48(%rbp), %r10 + 0x4c, 0x29, 0xd1, //0x000024e9 subq %r10, %rcx + 0x49, 0x89, 0xcb, //0x000024ec movq %rcx, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x000024ef movq $-56(%rbp), %rsi + 0xe9, 0x3a, 0xf3, 0xff, 0xff, //0x000024f3 jmp LBB0_314 + //0x000024f8 LBB0_419 + 0x4c, 0x89, 0xdb, //0x000024f8 movq %r11, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x000024fb subq $-48(%rbp), %rbx + 0x4c, 0x0f, 0xbc, 0xc2, //0x000024ff bsfq %rdx, %r8 + 0x49, 0x01, 0xd8, //0x00002503 addq %rbx, %r8 + 0xe9, 0x57, 0xf9, 0xff, 0xff, //0x00002506 jmp LBB0_286 + //0x0000250b LBB0_420 + 0x4d, 0x85, 0xd2, //0x0000250b testq %r10, %r10 + 0x0f, 0x84, 0x71, 0x02, 0x00, 0x00, //0x0000250e je LBB0_422 + 0x48, 0x8b, 0x45, 0xa8, //0x00002514 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002518 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000251b cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x0000251f cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002523 incq %r11 + 0x49, 0xff, 0xca, //0x00002526 decq %r10 + 0x4d, 0x85, 0xd2, //0x00002529 testq %r10, %r10 + 0x0f, 0x85, 0x53, 0xff, 0xff, 0xff, //0x0000252c jne LBB0_413 + 0xe9, 0x4e, 0x02, 0x00, 0x00, //0x00002532 jmp LBB0_422 + //0x00002537 LBB0_423 + 0x4d, 0x85, 0xd2, //0x00002537 testq %r10, %r10 + 0x0f, 0x84, 0x45, 0x02, 0x00, 0x00, //0x0000253a je LBB0_422 + 0x48, 0x8b, 0x45, 0xa8, //0x00002540 movq $-88(%rbp), %rax + 0x49, 0x8d, 0x0c, 0x03, //0x00002544 leaq (%r11,%rax), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002548 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x0000254c cmoveq %rcx, %r8 + 0x49, 0xff, 0xc3, //0x00002550 incq %r11 + 0x49, 0xff, 0xca, //0x00002553 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00002556 movq $-56(%rbp), %rsi + 0x4d, 0x85, 0xd2, //0x0000255a testq %r10, %r10 + 0x0f, 0x85, 0xbc, 0xf9, 0xff, 0xff, //0x0000255d jne LBB0_356 + 0xe9, 0xb6, 0x00, 0x00, 0x00, //0x00002563 jmp LBB0_316 + //0x00002568 LBB0_425 + 0x48, 0x89, 0x16, //0x00002568 movq %rdx, (%rsi) + //0x0000256b LBB0_426 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000256b movq $-1, %rax + 0xe9, 0xe9, 0x01, 0x00, 0x00, //0x00002572 jmp LBB0_150 + //0x00002577 LBB0_442 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x00002577 movq $-7, %rax + 0xe9, 0xdd, 0x01, 0x00, 0x00, //0x0000257e jmp LBB0_150 + //0x00002583 LBB0_427 + 0x49, 0x83, 0xfb, 0xff, //0x00002583 cmpq $-1, %r11 + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00002587 jne LBB0_149 + //0x0000258d LBB0_428 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000258d movq $-1, %r11 + 0x4d, 0x89, 0xc8, //0x00002594 movq %r9, %r8 + 0xe9, 0xbe, 0x01, 0x00, 0x00, //0x00002597 jmp LBB0_149 + //0x0000259c LBB0_429 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000259c movq $-1, %rcx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000025a3 jmp LBB0_430 + //0x000025a8 LBB0_273 + 0x4c, 0x89, 0xd9, //0x000025a8 movq %r11, %rcx + //0x000025ab LBB0_430 + 0x48, 0xf7, 0xd1, //0x000025ab notq %rcx + 0x49, 0x01, 0xcf, //0x000025ae addq %rcx, %r15 + 0x48, 0x8b, 0x45, 0xc8, //0x000025b1 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x38, //0x000025b5 movq %r15, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000025b8 movq $-2, %rax + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x000025bf jmp LBB0_150 + //0x000025c4 LBB0_431 + 0x49, 0x83, 0xf8, 0xff, //0x000025c4 cmpq $-1, %r8 + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000025c8 je LBB0_434 + //0x000025ce LBB0_432 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000025ce movq $-2, %r11 + 0xe9, 0x80, 0x01, 0x00, 0x00, //0x000025d5 jmp LBB0_149 + //0x000025da LBB0_441 + 0x48, 0x89, 0x0e, //0x000025da movq %rcx, (%rsi) + 0xe9, 0x7e, 0x01, 0x00, 0x00, //0x000025dd jmp LBB0_150 + //0x000025e2 LBB0_434 + 0x48, 0x0f, 0xbc, 0xc2, //0x000025e2 bsfq %rdx, %rax + //0x000025e6 LBB0_435 + 0x4d, 0x29, 0xd3, //0x000025e6 subq %r10, %r11 + //0x000025e9 LBB0_436 + 0x49, 0x01, 0xc3, //0x000025e9 addq %rax, %r11 + //0x000025ec LBB0_437 + 0x4d, 0x89, 0xd8, //0x000025ec movq %r11, %r8 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000025ef movq $-2, %r11 + 0xe9, 0x5f, 0x01, 0x00, 0x00, //0x000025f6 jmp LBB0_149 + //0x000025fb LBB0_438 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000025fb movq $-1, %r11 + //0x00002602 LBB0_439 + 0x4d, 0x29, 0xdf, //0x00002602 subq %r11, %r15 + 0x4c, 0x89, 0x3e, //0x00002605 movq %r15, (%rsi) + //0x00002608 LBB0_440 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002608 movq $-2, %rax + 0xe9, 0x4c, 0x01, 0x00, 0x00, //0x0000260f jmp LBB0_150 + //0x00002614 LBB0_315 + 0x49, 0x83, 0xfb, 0xff, //0x00002614 cmpq $-1, %r11 + 0x0f, 0x85, 0x3c, 0x01, 0x00, 0x00, //0x00002618 jne LBB0_149 + //0x0000261e LBB0_316 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000261e movq $-1, %r11 + 0x4c, 0x8b, 0x45, 0xc0, //0x00002625 movq $-64(%rbp), %r8 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00002629 jmp LBB0_149 + //0x0000262e LBB0_443 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000262e movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002635 cmpb $97, %cl + 0x0f, 0x85, 0x22, 0x01, 0x00, 0x00, //0x00002638 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x02, //0x0000263e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002642 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x02, 0x6c, //0x00002645 cmpb $108, $2(%r10,%r15) + 0x0f, 0x85, 0x0f, 0x01, 0x00, 0x00, //0x0000264b jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x03, //0x00002651 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002655 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x03, 0x73, //0x00002658 cmpb $115, $3(%r10,%r15) + 0x0f, 0x85, 0xfc, 0x00, 0x00, 0x00, //0x0000265e jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x04, //0x00002664 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002668 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x04, 0x65, //0x0000266b cmpb $101, $4(%r10,%r15) + 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x00002671 jne LBB0_150 + 0x49, 0x83, 0xc7, 0x05, //0x00002677 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x0000267b movq %r15, (%rsi) + 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x0000267e jmp LBB0_150 + //0x00002683 LBB0_260 + 0x4c, 0x89, 0x3e, //0x00002683 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002686 movq $-2, %rax + 0x41, 0x80, 0x39, 0x6e, //0x0000268d cmpb $110, (%r9) + 0x0f, 0x85, 0xc9, 0x00, 0x00, 0x00, //0x00002691 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x01, //0x00002697 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000269b movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x01, 0x75, //0x0000269e cmpb $117, $1(%r10,%r15) + 0x0f, 0x85, 0xb6, 0x00, 0x00, 0x00, //0x000026a4 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x02, //0x000026aa leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026ae movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x02, 0x6c, //0x000026b1 cmpb $108, $2(%r10,%r15) + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x000026b7 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x03, //0x000026bd leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026c1 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x03, 0x6c, //0x000026c4 cmpb $108, $3(%r10,%r15) + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x000026ca jne LBB0_150 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x000026d0 jmp LBB0_452 + //0x000026d5 LBB0_448 + 0x4c, 0x89, 0x3e, //0x000026d5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000026d8 movq $-2, %rax + 0x41, 0x80, 0x39, 0x74, //0x000026df cmpb $116, (%r9) + 0x0f, 0x85, 0x77, 0x00, 0x00, 0x00, //0x000026e3 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x01, //0x000026e9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026ed movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x01, 0x72, //0x000026f0 cmpb $114, $1(%r10,%r15) + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x000026f6 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x02, //0x000026fc leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002700 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x02, 0x75, //0x00002703 cmpb $117, $2(%r10,%r15) + 0x0f, 0x85, 0x51, 0x00, 0x00, 0x00, //0x00002709 jne LBB0_150 + 0x49, 0x8d, 0x4f, 0x03, //0x0000270f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002713 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x3a, 0x03, 0x65, //0x00002716 cmpb $101, $3(%r10,%r15) + 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x0000271c jne LBB0_150 + //0x00002722 LBB0_452 + 0x49, 0x83, 0xc7, 0x04, //0x00002722 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002726 movq %r15, (%rsi) + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x00002729 jmp LBB0_150 + //0x0000272e LBB0_456 + 0x4d, 0x89, 0xd9, //0x0000272e movq %r11, %r9 + 0xe9, 0x57, 0xfe, 0xff, 0xff, //0x00002731 jmp LBB0_428 + //0x00002736 LBB0_453 + 0x49, 0x83, 0xf8, 0xff, //0x00002736 cmpq $-1, %r8 + 0x0f, 0x85, 0x8e, 0xfe, 0xff, 0xff, //0x0000273a jne LBB0_432 + 0x49, 0x0f, 0xbc, 0xc6, //0x00002740 bsfq %r14, %rax + //0x00002744 LBB0_455 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00002744 subq $-48(%rbp), %r11 + 0xe9, 0x9c, 0xfe, 0xff, 0xff, //0x00002748 jmp LBB0_436 + //0x0000274d LBB0_148 + 0x4c, 0x01, 0xd9, //0x0000274d addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002750 movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x00002757 movq %rcx, %r8 + //0x0000275a LBB0_149 + 0x4c, 0x89, 0x06, //0x0000275a movq %r8, (%rsi) + 0x4c, 0x89, 0xd8, //0x0000275d movq %r11, %rax + //0x00002760 LBB0_150 + 0x48, 0x83, 0xc4, 0x70, //0x00002760 addq $112, %rsp + 0x5b, //0x00002764 popq %rbx + 0x41, 0x5c, //0x00002765 popq %r12 + 0x41, 0x5d, //0x00002767 popq %r13 + 0x41, 0x5e, //0x00002769 popq %r14 + 0x41, 0x5f, //0x0000276b popq %r15 + 0x5d, //0x0000276d popq %rbp + 0xc3, //0x0000276e retq + //0x0000276f LBB0_457 + 0x4c, 0x89, 0x5d, 0xc0, //0x0000276f movq %r11, $-64(%rbp) + 0x48, 0x8b, 0x75, 0xc8, //0x00002773 movq $-56(%rbp), %rsi + 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x00002777 jmp LBB0_316 + //0x0000277c LBB0_458 + 0x4c, 0x89, 0x5d, 0xc0, //0x0000277c movq %r11, $-64(%rbp) + 0xe9, 0x99, 0xfe, 0xff, 0xff, //0x00002780 jmp LBB0_316 + //0x00002785 LBB0_422 + 0x48, 0x8b, 0x75, 0xc8, //0x00002785 movq $-56(%rbp), %rsi + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x00002789 jmp LBB0_316 + //0x0000278e LBB0_460 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000278e bsfq %rdi, %rax + 0xe9, 0x4f, 0xfe, 0xff, 0xff, //0x00002792 jmp LBB0_435 + //0x00002797 LBB0_459 + 0x4d, 0x29, 0xd3, //0x00002797 subq %r10, %r11 + 0xe9, 0x4d, 0xfe, 0xff, 0xff, //0x0000279a jmp LBB0_437 + //0x0000279f LBB0_464 + 0x48, 0x8b, 0x75, 0xc8, //0x0000279f movq $-56(%rbp), %rsi + 0xe9, 0xe5, 0xfd, 0xff, 0xff, //0x000027a3 jmp LBB0_428 + //0x000027a8 LBB0_461 + 0x48, 0x0f, 0xbc, 0xc7, //0x000027a8 bsfq %rdi, %rax + 0xe9, 0x93, 0xff, 0xff, 0xff, //0x000027ac jmp LBB0_455 + //0x000027b1 LBB0_462 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000027b1 subq $-48(%rbp), %r11 + 0xe9, 0x32, 0xfe, 0xff, 0xff, //0x000027b5 jmp LBB0_437 + //0x000027ba LBB0_463 + 0x48, 0x8b, 0x75, 0xc8, //0x000027ba movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xc0, //0x000027be movq $-64(%rbp), %r9 + 0xe9, 0xc6, 0xfd, 0xff, 0xff, //0x000027c2 jmp LBB0_428 + 0x90, //0x000027c7 .p2align 2, 0x90 + // // .set L0_0_set_34, LBB0_34-LJTI0_0 + // // .set L0_0_set_60, LBB0_60-LJTI0_0 + // // .set L0_0_set_40, LBB0_40-LJTI0_0 + // // .set L0_0_set_62, LBB0_62-LJTI0_0 + // // .set L0_0_set_37, LBB0_37-LJTI0_0 + // // .set L0_0_set_65, LBB0_65-LJTI0_0 + //0x000027c8 LJTI0_0 + 0x89, 0xdb, 0xff, 0xff, //0x000027c8 .long L0_0_set_34 + 0x91, 0xdd, 0xff, 0xff, //0x000027cc .long L0_0_set_60 + 0xbf, 0xdb, 0xff, 0xff, //0x000027d0 .long L0_0_set_40 + 0xbc, 0xdd, 0xff, 0xff, //0x000027d4 .long L0_0_set_62 + 0xa0, 0xdb, 0xff, 0xff, //0x000027d8 .long L0_0_set_37 + 0x4d, 0xe0, 0xff, 0xff, //0x000027dc .long L0_0_set_65 + // // .set L0_1_set_150, LBB0_150-LJTI0_1 + // // .set L0_1_set_440, LBB0_440-LJTI0_1 + // // .set L0_1_set_202, LBB0_202-LJTI0_1 + // // .set L0_1_set_221, LBB0_221-LJTI0_1 + // // .set L0_1_set_67, LBB0_67-LJTI0_1 + // // .set L0_1_set_200, LBB0_200-LJTI0_1 + // // .set L0_1_set_255, LBB0_255-LJTI0_1 + // // .set L0_1_set_258, LBB0_258-LJTI0_1 + // // .set L0_1_set_264, LBB0_264-LJTI0_1 + // // .set L0_1_set_268, LBB0_268-LJTI0_1 + //0x000027e0 LJTI0_1 + 0x80, 0xff, 0xff, 0xff, //0x000027e0 .long L0_1_set_150 + 0x28, 0xfe, 0xff, 0xff, //0x000027e4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000027e8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000027ec .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000027f0 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000027f4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000027f8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000027fc .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002800 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002804 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002808 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000280c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002810 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002814 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002818 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000281c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002820 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002824 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002828 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000282c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002830 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002834 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002838 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000283c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002840 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002844 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002848 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000284c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002850 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002854 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002858 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000285c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002860 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002864 .long L0_1_set_440 + 0x44, 0xe8, 0xff, 0xff, //0x00002868 .long L0_1_set_202 + 0x28, 0xfe, 0xff, 0xff, //0x0000286c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002870 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002874 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002878 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000287c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002880 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002884 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002888 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000288c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002890 .long L0_1_set_440 + 0x09, 0xea, 0xff, 0xff, //0x00002894 .long L0_1_set_221 + 0x28, 0xfe, 0xff, 0xff, //0x00002898 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000289c .long L0_1_set_440 + 0xdc, 0xdd, 0xff, 0xff, //0x000028a0 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028a4 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028a8 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028ac .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028b0 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028b4 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028b8 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028bc .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028c0 .long L0_1_set_67 + 0xdc, 0xdd, 0xff, 0xff, //0x000028c4 .long L0_1_set_67 + 0x28, 0xfe, 0xff, 0xff, //0x000028c8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028cc .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028d0 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028d4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028d8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028dc .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028e0 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028e4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028e8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028ec .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028f0 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028f4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028f8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000028fc .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002900 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002904 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002908 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000290c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002910 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002914 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002918 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000291c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002920 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002924 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002928 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000292c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002930 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002934 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002938 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000293c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002940 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002944 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002948 .long L0_1_set_440 + 0x20, 0xe8, 0xff, 0xff, //0x0000294c .long L0_1_set_200 + 0x28, 0xfe, 0xff, 0xff, //0x00002950 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002954 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002958 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000295c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002960 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002964 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002968 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000296c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002970 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002974 .long L0_1_set_440 + 0x7a, 0xec, 0xff, 0xff, //0x00002978 .long L0_1_set_255 + 0x28, 0xfe, 0xff, 0xff, //0x0000297c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002980 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002984 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002988 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x0000298c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002990 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x00002994 .long L0_1_set_440 + 0xab, 0xec, 0xff, 0xff, //0x00002998 .long L0_1_set_258 + 0x28, 0xfe, 0xff, 0xff, //0x0000299c .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029a0 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029a4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029a8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029ac .long L0_1_set_440 + 0xd2, 0xec, 0xff, 0xff, //0x000029b0 .long L0_1_set_264 + 0x28, 0xfe, 0xff, 0xff, //0x000029b4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029b8 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029bc .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029c0 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029c4 .long L0_1_set_440 + 0x28, 0xfe, 0xff, 0xff, //0x000029c8 .long L0_1_set_440 + 0x0f, 0xed, 0xff, 0xff, //0x000029cc .long L0_1_set_268 + // // .set L0_2_set_249, LBB0_249-LJTI0_2 + // // .set L0_2_set_299, LBB0_299-LJTI0_2 + // // .set L0_2_set_253, LBB0_253-LJTI0_2 + // // .set L0_2_set_246, LBB0_246-LJTI0_2 + // // .set L0_2_set_251, LBB0_251-LJTI0_2 + //0x000029d0 LJTI0_2 + 0x39, 0xea, 0xff, 0xff, //0x000029d0 .long L0_2_set_249 + 0xb1, 0xed, 0xff, 0xff, //0x000029d4 .long L0_2_set_299 + 0x39, 0xea, 0xff, 0xff, //0x000029d8 .long L0_2_set_249 + 0x6f, 0xea, 0xff, 0xff, //0x000029dc .long L0_2_set_253 + 0xb1, 0xed, 0xff, 0xff, //0x000029e0 .long L0_2_set_299 + 0x10, 0xea, 0xff, 0xff, //0x000029e4 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x000029e8 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x000029ec .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x000029f0 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x000029f4 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x000029f8 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x000029fc .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x00002a00 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x00002a04 .long L0_2_set_246 + 0x10, 0xea, 0xff, 0xff, //0x00002a08 .long L0_2_set_246 + 0xb1, 0xed, 0xff, 0xff, //0x00002a0c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a10 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a14 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a18 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a1c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a20 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a24 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a28 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a2c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a30 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a34 .long L0_2_set_299 + 0x54, 0xea, 0xff, 0xff, //0x00002a38 .long L0_2_set_251 + 0xb1, 0xed, 0xff, 0xff, //0x00002a3c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a40 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a44 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a48 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a4c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a50 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a54 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a58 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a5c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a60 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a64 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a68 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a6c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a70 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a74 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a78 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a7c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a80 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a84 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a88 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a8c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a90 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a94 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a98 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002a9c .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002aa0 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002aa4 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002aa8 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002aac .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002ab0 .long L0_2_set_299 + 0xb1, 0xed, 0xff, 0xff, //0x00002ab4 .long L0_2_set_299 + 0x54, 0xea, 0xff, 0xff, //0x00002ab8 .long L0_2_set_251 + // // .set L0_3_set_97, LBB0_97-LJTI0_3 + // // .set L0_3_set_152, LBB0_152-LJTI0_3 + // // .set L0_3_set_99, LBB0_99-LJTI0_3 + // // .set L0_3_set_94, LBB0_94-LJTI0_3 + // // .set L0_3_set_92, LBB0_92-LJTI0_3 + //0x00002abc LJTI0_3 + 0x23, 0xdd, 0xff, 0xff, //0x00002abc .long L0_3_set_97 + 0xcf, 0xe1, 0xff, 0xff, //0x00002ac0 .long L0_3_set_152 + 0x23, 0xdd, 0xff, 0xff, //0x00002ac4 .long L0_3_set_97 + 0x3e, 0xdd, 0xff, 0xff, //0x00002ac8 .long L0_3_set_99 + 0xcf, 0xe1, 0xff, 0xff, //0x00002acc .long L0_3_set_152 + 0xf4, 0xdc, 0xff, 0xff, //0x00002ad0 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002ad4 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002ad8 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002adc .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002ae0 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002ae4 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002ae8 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002aec .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002af0 .long L0_3_set_94 + 0xf4, 0xdc, 0xff, 0xff, //0x00002af4 .long L0_3_set_94 + 0xcf, 0xe1, 0xff, 0xff, //0x00002af8 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002afc .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b00 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b04 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b08 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b0c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b10 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b14 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b18 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b1c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b20 .long L0_3_set_152 + 0xd6, 0xdc, 0xff, 0xff, //0x00002b24 .long L0_3_set_92 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b28 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b2c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b30 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b34 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b38 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b3c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b40 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b44 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b48 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b4c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b50 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b54 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b58 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b5c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b60 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b64 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b68 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b6c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b70 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b74 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b78 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b7c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b80 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b84 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b88 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b8c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b90 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b94 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b98 .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002b9c .long L0_3_set_152 + 0xcf, 0xe1, 0xff, 0xff, //0x00002ba0 .long L0_3_set_152 + 0xd6, 0xdc, 0xff, 0xff, //0x00002ba4 .long L0_3_set_92 + //0x00002ba8 .p2align 2, 0x00 + //0x00002ba8 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002ba8 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa.go b/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa.go new file mode 100644 index 000000000..a61ee7b02 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_u64toa func(out unsafe.Pointer, val uint64) (ret int) + +var S_u64toa uintptr + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return F_u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_subr.go new file mode 100644 index 000000000..8e67f8199 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_subr.go @@ -0,0 +1,39 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__u64toa = 80 +) + +const ( + _stack__u64toa = 8 +) + +const ( + _size__u64toa = 1264 +) + +var ( + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {772, 8}, + {773, 0}, + {1249, 8}, + {1251, 0}, + } +) + +var _cfunc_u64toa = []loader.CFunc{ + {"_u64toa_entry", 0, _entry__u64toa, 0, nil}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_text_amd64.go new file mode 100644 index 000000000..12fd7a4f6 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/u64toa_text_amd64.go @@ -0,0 +1,391 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_u64toa = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, // .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00000008 .quad 3518437209 + //0x00000010 LCPI0_1 + 0xc5, 0x20, //0x00000010 .word 8389 + 0x7b, 0x14, //0x00000012 .word 5243 + 0x34, 0x33, //0x00000014 .word 13108 + 0x00, 0x80, //0x00000016 .word 32768 + 0xc5, 0x20, //0x00000018 .word 8389 + 0x7b, 0x14, //0x0000001a .word 5243 + 0x34, 0x33, //0x0000001c .word 13108 + 0x00, 0x80, //0x0000001e .word 32768 + //0x00000020 LCPI0_2 + 0x80, 0x00, //0x00000020 .word 128 + 0x00, 0x08, //0x00000022 .word 2048 + 0x00, 0x20, //0x00000024 .word 8192 + 0x00, 0x80, //0x00000026 .word 32768 + 0x80, 0x00, //0x00000028 .word 128 + 0x00, 0x08, //0x0000002a .word 2048 + 0x00, 0x20, //0x0000002c .word 8192 + 0x00, 0x80, //0x0000002e .word 32768 + //0x00000030 LCPI0_3 + 0x0a, 0x00, //0x00000030 .word 10 + 0x0a, 0x00, //0x00000032 .word 10 + 0x0a, 0x00, //0x00000034 .word 10 + 0x0a, 0x00, //0x00000036 .word 10 + 0x0a, 0x00, //0x00000038 .word 10 + 0x0a, 0x00, //0x0000003a .word 10 + 0x0a, 0x00, //0x0000003c .word 10 + 0x0a, 0x00, //0x0000003e .word 10 + //0x00000040 LCPI0_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000040 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000050 .p2align 4, 0x90 + //0x00000050 _u64toa + 0x55, //0x00000050 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000051 movq %rsp, %rbp + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000054 cmpq $9999, %rsi + 0x0f, 0x87, 0xa2, 0x00, 0x00, 0x00, //0x0000005b ja LBB0_8 + 0x0f, 0xb7, 0xc6, //0x00000061 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000064 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000067 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000006d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000070 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000074 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000077 movl %esi, %ecx + 0x29, 0xc1, //0x00000079 subl %eax, %ecx + 0x0f, 0xb7, 0xc1, //0x0000007b movzwl %cx, %eax + 0x48, 0x01, 0xc0, //0x0000007e addq %rax, %rax + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000081 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000087 jb LBB0_3 + 0x48, 0x8d, 0x0d, 0xac, 0x04, 0x00, 0x00, //0x0000008d leaq $1196(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x0a, //0x00000094 movb (%rdx,%rcx), %cl + 0x88, 0x0f, //0x00000097 movb %cl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000099 movl $1, %ecx + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000009e jmp LBB0_4 + //0x000000a3 LBB0_3 + 0x31, 0xc9, //0x000000a3 xorl %ecx, %ecx + 0x83, 0xfe, 0x64, //0x000000a5 cmpl $100, %esi + 0x0f, 0x82, 0x45, 0x00, 0x00, 0x00, //0x000000a8 jb LBB0_5 + //0x000000ae LBB0_4 + 0x0f, 0xb7, 0xd2, //0x000000ae movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x000000b1 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x84, 0x04, 0x00, 0x00, //0x000000b5 leaq $1156(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000000bc movb (%rdx,%rsi), %dl + 0x89, 0xce, //0x000000bf movl %ecx, %esi + 0xff, 0xc1, //0x000000c1 incl %ecx + 0x88, 0x14, 0x37, //0x000000c3 movb %dl, (%rdi,%rsi) + //0x000000c6 LBB0_6 + 0x48, 0x8d, 0x15, 0x73, 0x04, 0x00, 0x00, //0x000000c6 leaq $1139(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x10, //0x000000cd movb (%rax,%rdx), %dl + 0x89, 0xce, //0x000000d0 movl %ecx, %esi + 0xff, 0xc1, //0x000000d2 incl %ecx + 0x88, 0x14, 0x37, //0x000000d4 movb %dl, (%rdi,%rsi) + //0x000000d7 LBB0_7 + 0x0f, 0xb7, 0xc0, //0x000000d7 movzwl %ax, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000000da orq $1, %rax + 0x48, 0x8d, 0x15, 0x5b, 0x04, 0x00, 0x00, //0x000000de leaq $1115(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x10, //0x000000e5 movb (%rax,%rdx), %al + 0x89, 0xca, //0x000000e8 movl %ecx, %edx + 0xff, 0xc1, //0x000000ea incl %ecx + 0x88, 0x04, 0x17, //0x000000ec movb %al, (%rdi,%rdx) + 0x89, 0xc8, //0x000000ef movl %ecx, %eax + 0x5d, //0x000000f1 popq %rbp + 0xc3, //0x000000f2 retq + //0x000000f3 LBB0_5 + 0x31, 0xc9, //0x000000f3 xorl %ecx, %ecx + 0x83, 0xfe, 0x0a, //0x000000f5 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000000f8 jae LBB0_6 + 0xe9, 0xd4, 0xff, 0xff, 0xff, //0x000000fe jmp LBB0_7 + //0x00000103 LBB0_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000103 cmpq $99999999, %rsi + 0x0f, 0x87, 0x1e, 0x01, 0x00, 0x00, //0x0000010a ja LBB0_16 + 0x89, 0xf0, //0x00000110 movl %esi, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00000112 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00000117 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x0000011b shrq $45, %rdx + 0x44, 0x69, 0xc2, 0x10, 0x27, 0x00, 0x00, //0x0000011f imull $10000, %edx, %r8d + 0x89, 0xf1, //0x00000126 movl %esi, %ecx + 0x44, 0x29, 0xc1, //0x00000128 subl %r8d, %ecx + 0x4c, 0x69, 0xd0, 0x83, 0xde, 0x1b, 0x43, //0x0000012b imulq $1125899907, %rax, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00000132 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x00000136 andl $-2, %r10d + 0x0f, 0xb7, 0xc2, //0x0000013a movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x0000013d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000140 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000146 shrl $17, %eax + 0x6b, 0xc0, 0x64, //0x00000149 imull $100, %eax, %eax + 0x29, 0xc2, //0x0000014c subl %eax, %edx + 0x44, 0x0f, 0xb7, 0xca, //0x0000014e movzwl %dx, %r9d + 0x4d, 0x01, 0xc9, //0x00000152 addq %r9, %r9 + 0x0f, 0xb7, 0xc1, //0x00000155 movzwl %cx, %eax + 0xc1, 0xe8, 0x02, //0x00000158 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x0000015b imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000161 shrl $17, %eax + 0x4c, 0x8d, 0x04, 0x00, //0x00000164 leaq (%rax,%rax), %r8 + 0x6b, 0xc0, 0x64, //0x00000168 imull $100, %eax, %eax + 0x29, 0xc1, //0x0000016b subl %eax, %ecx + 0x44, 0x0f, 0xb7, 0xd9, //0x0000016d movzwl %cx, %r11d + 0x4d, 0x01, 0xdb, //0x00000171 addq %r11, %r11 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00000174 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000017a jb LBB0_11 + 0x48, 0x8d, 0x05, 0xb9, 0x03, 0x00, 0x00, //0x00000180 leaq $953(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00000187 movb (%r10,%rax), %al + 0x88, 0x07, //0x0000018b movb %al, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000018d movl $1, %ecx + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00000192 jmp LBB0_12 + //0x00000197 LBB0_11 + 0x31, 0xc9, //0x00000197 xorl %ecx, %ecx + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00000199 cmpl $1000000, %esi + 0x0f, 0x82, 0x76, 0x00, 0x00, 0x00, //0x0000019f jb LBB0_13 + //0x000001a5 LBB0_12 + 0x44, 0x89, 0xd0, //0x000001a5 movl %r10d, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001a8 orq $1, %rax + 0x48, 0x8d, 0x35, 0x8d, 0x03, 0x00, 0x00, //0x000001ac leaq $909(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000001b3 movb (%rax,%rsi), %al + 0x89, 0xce, //0x000001b6 movl %ecx, %esi + 0xff, 0xc1, //0x000001b8 incl %ecx + 0x88, 0x04, 0x37, //0x000001ba movb %al, (%rdi,%rsi) + //0x000001bd LBB0_14 + 0x48, 0x8d, 0x05, 0x7c, 0x03, 0x00, 0x00, //0x000001bd leaq $892(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x01, //0x000001c4 movb (%r9,%rax), %al + 0x89, 0xce, //0x000001c8 movl %ecx, %esi + 0xff, 0xc1, //0x000001ca incl %ecx + 0x88, 0x04, 0x37, //0x000001cc movb %al, (%rdi,%rsi) + //0x000001cf LBB0_15 + 0x41, 0x0f, 0xb7, 0xc1, //0x000001cf movzwl %r9w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001d3 orq $1, %rax + 0x48, 0x8d, 0x35, 0x62, 0x03, 0x00, 0x00, //0x000001d7 leaq $866(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x30, //0x000001de movb (%rax,%rsi), %al + 0x89, 0xca, //0x000001e1 movl %ecx, %edx + 0x88, 0x04, 0x3a, //0x000001e3 movb %al, (%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x30, //0x000001e6 movb (%r8,%rsi), %al + 0x88, 0x44, 0x3a, 0x01, //0x000001ea movb %al, $1(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc0, //0x000001ee movzwl %r8w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x000001f2 orq $1, %rax + 0x8a, 0x04, 0x30, //0x000001f6 movb (%rax,%rsi), %al + 0x88, 0x44, 0x3a, 0x02, //0x000001f9 movb %al, $2(%rdx,%rdi) + 0x41, 0x8a, 0x04, 0x33, //0x000001fd movb (%r11,%rsi), %al + 0x88, 0x44, 0x3a, 0x03, //0x00000201 movb %al, $3(%rdx,%rdi) + 0x41, 0x0f, 0xb7, 0xc3, //0x00000205 movzwl %r11w, %eax + 0x48, 0x83, 0xc8, 0x01, //0x00000209 orq $1, %rax + 0x8a, 0x04, 0x30, //0x0000020d movb (%rax,%rsi), %al + 0x83, 0xc1, 0x05, //0x00000210 addl $5, %ecx + 0x88, 0x44, 0x3a, 0x04, //0x00000213 movb %al, $4(%rdx,%rdi) + 0x89, 0xc8, //0x00000217 movl %ecx, %eax + 0x5d, //0x00000219 popq %rbp + 0xc3, //0x0000021a retq + //0x0000021b LBB0_13 + 0x31, 0xc9, //0x0000021b xorl %ecx, %ecx + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x0000021d cmpl $100000, %esi + 0x0f, 0x83, 0x94, 0xff, 0xff, 0xff, //0x00000223 jae LBB0_14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00000229 jmp LBB0_15 + //0x0000022e LBB0_16 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000022e movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000238 cmpq %rax, %rsi + 0x0f, 0x87, 0x15, 0x01, 0x00, 0x00, //0x0000023b ja LBB0_18 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000241 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000024b movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x0000024e mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000251 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00000255 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000025b subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xc2, //0x0000025d movd %edx, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x97, 0xfd, 0xff, 0xff, //0x00000261 movdqu $-617(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd0, //0x00000269 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0xf4, 0xd1, //0x0000026d pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00000271 psrlq $45, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00000276 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x0000027b movq %rax, %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00000280 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0xf4, 0xe3, //0x00000284 pmuludq %xmm3, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x00000288 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd0, //0x0000028c punpcklwd %xmm0, %xmm2 + 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00000290 psllq $2, %xmm2 + 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00000295 pshuflw $80, %xmm2, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000029a pshufd $80, %xmm0, %xmm0 + 0xf3, 0x0f, 0x6f, 0x15, 0x69, 0xfd, 0xff, 0xff, //0x0000029f movdqu $-663(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc2, //0x000002a7 pmulhuw %xmm2, %xmm0 + 0xf3, 0x0f, 0x6f, 0x25, 0x6d, 0xfd, 0xff, 0xff, //0x000002ab movdqu $-659(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x000002b3 pmulhuw %xmm4, %xmm0 + 0xf3, 0x0f, 0x6f, 0x2d, 0x71, 0xfd, 0xff, 0xff, //0x000002b7 movdqu $-655(%rip), %xmm5 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x000002bf movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf5, //0x000002c3 pmullw %xmm5, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000002c7 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x000002cc psubw %xmm6, %xmm0 + 0x66, 0x0f, 0x6e, 0xf6, //0x000002d0 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x000002d4 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000002d8 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd9, //0x000002dd pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0xfa, 0xf3, //0x000002e1 psubd %xmm3, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x000002e5 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000002e9 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000002ee pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000002f3 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xca, //0x000002f8 pmulhuw %xmm2, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x000002fc pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xd5, 0xe9, //0x00000300 pmullw %xmm1, %xmm5 + 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x00000304 psllq $16, %xmm5 + 0x66, 0x0f, 0xf9, 0xcd, //0x00000309 psubw %xmm5, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x0000030d packuswb %xmm1, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x27, 0xfd, 0xff, 0xff, //0x00000311 movdqu $-729(%rip), %xmm1 /* LCPI0_4+0(%rip) */ + 0x66, 0x0f, 0xfc, 0xc8, //0x00000319 paddb %xmm0, %xmm1 + 0x66, 0x0f, 0xef, 0xd2, //0x0000031d pxor %xmm2, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x00000321 pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00000325 pmovmskb %xmm2, %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00000329 orl $32768, %eax + 0x35, 0xff, 0x7f, 0xff, 0xff, //0x0000032e xorl $-32769, %eax + 0x0f, 0xbc, 0xc0, //0x00000333 bsfl %eax, %eax + 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00000336 movl $16, %ecx + 0x29, 0xc1, //0x0000033b subl %eax, %ecx + 0x48, 0xc1, 0xe0, 0x04, //0x0000033d shlq $4, %rax + 0x48, 0x8d, 0x15, 0xc8, 0x02, 0x00, 0x00, //0x00000341 leaq $712(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x10, //0x00000348 pshufb (%rax,%rdx), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0f, //0x0000034e movdqu %xmm1, (%rdi) + 0x89, 0xc8, //0x00000352 movl %ecx, %eax + 0x5d, //0x00000354 popq %rbp + 0xc3, //0x00000355 retq + //0x00000356 LBB0_18 + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00000356 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x00000360 movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00000363 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00000366 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x0000036a movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00000374 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x00000378 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x0000037b cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000037e ja LBB0_20 + 0x80, 0xc2, 0x30, //0x00000384 addb $48, %dl + 0x88, 0x17, //0x00000387 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000389 movl $1, %ecx + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x0000038e jmp LBB0_25 + //0x00000393 LBB0_20 + 0x83, 0xfa, 0x63, //0x00000393 cmpl $99, %edx + 0x0f, 0x87, 0x1f, 0x00, 0x00, 0x00, //0x00000396 ja LBB0_22 + 0x89, 0xd0, //0x0000039c movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x9b, 0x01, 0x00, 0x00, //0x0000039e leaq $411(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000003a5 movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000003a8 movb $1(%rcx,%rax,2), %al + 0x88, 0x17, //0x000003ac movb %dl, (%rdi) + 0x88, 0x47, 0x01, //0x000003ae movb %al, $1(%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000003b1 movl $2, %ecx + 0xe9, 0x92, 0x00, 0x00, 0x00, //0x000003b6 jmp LBB0_25 + //0x000003bb LBB0_22 + 0x89, 0xd0, //0x000003bb movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000003bd shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000003c0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000003c6 shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000003c9 cmpl $999, %edx + 0x0f, 0x87, 0x3c, 0x00, 0x00, 0x00, //0x000003cf ja LBB0_24 + 0x83, 0xc0, 0x30, //0x000003d5 addl $48, %eax + 0x88, 0x07, //0x000003d8 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x000003da movzwl %dx, %eax + 0x89, 0xc1, //0x000003dd movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x000003df shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000003e2 imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000003e8 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x000003eb imull $100, %ecx, %ecx + 0x29, 0xc8, //0x000003ee subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x000003f0 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x46, 0x01, 0x00, 0x00, //0x000003f3 leaq $326(%rip), %rcx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x41, //0x000003fa movb (%rcx,%rax,2), %dl + 0x8a, 0x44, 0x41, 0x01, //0x000003fd movb $1(%rcx,%rax,2), %al + 0x88, 0x57, 0x01, //0x00000401 movb %dl, $1(%rdi) + 0x88, 0x47, 0x02, //0x00000404 movb %al, $2(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00000407 movl $3, %ecx + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000040c jmp LBB0_25 + //0x00000411 LBB0_24 + 0x6b, 0xc8, 0x64, //0x00000411 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000414 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x00000416 movzwl %ax, %eax + 0x4c, 0x8d, 0x05, 0x20, 0x01, 0x00, 0x00, //0x00000419 leaq $288(%rip), %r8 /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x0c, 0x40, //0x00000420 movb (%r8,%rax,2), %cl + 0x41, 0x8a, 0x44, 0x40, 0x01, //0x00000424 movb $1(%r8,%rax,2), %al + 0x88, 0x0f, //0x00000429 movb %cl, (%rdi) + 0x88, 0x47, 0x01, //0x0000042b movb %al, $1(%rdi) + 0x0f, 0xb7, 0xc2, //0x0000042e movzwl %dx, %eax + 0x41, 0x8a, 0x0c, 0x40, //0x00000431 movb (%r8,%rax,2), %cl + 0x48, 0x01, 0xc0, //0x00000435 addq %rax, %rax + 0x88, 0x4f, 0x02, //0x00000438 movb %cl, $2(%rdi) + 0x83, 0xc8, 0x01, //0x0000043b orl $1, %eax + 0x0f, 0xb7, 0xc0, //0x0000043e movzwl %ax, %eax + 0x42, 0x8a, 0x04, 0x00, //0x00000441 movb (%rax,%r8), %al + 0x88, 0x47, 0x03, //0x00000445 movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00000448 movl $4, %ecx + //0x0000044d LBB0_25 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000044d movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00000457 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x0000045a mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x0000045d shrq $26, %rdx + 0x66, 0x0f, 0x6e, 0xc2, //0x00000461 movd %edx, %xmm0 + 0xf3, 0x0f, 0x6f, 0x0d, 0x93, 0xfb, 0xff, 0xff, //0x00000465 movdqu $-1133(%rip), %xmm1 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x0000046d movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xf4, 0xd9, //0x00000471 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x00000475 psrlq $45, %xmm3 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x0000047a movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x0000047f movq %rax, %xmm2 + 0x66, 0x0f, 0x6f, 0xe3, //0x00000484 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xf4, 0xe2, //0x00000488 pmuludq %xmm2, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x0000048c psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd8, //0x00000490 punpcklwd %xmm0, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x00000494 psllq $2, %xmm3 + 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00000499 pshuflw $80, %xmm3, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000049e pshufd $80, %xmm0, %xmm0 + 0xf3, 0x0f, 0x6f, 0x25, 0x65, 0xfb, 0xff, 0xff, //0x000004a3 movdqu $-1179(%rip), %xmm4 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x000004ab pmulhuw %xmm4, %xmm0 + 0xf3, 0x0f, 0x6f, 0x2d, 0x69, 0xfb, 0xff, 0xff, //0x000004af movdqu $-1175(%rip), %xmm5 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc5, //0x000004b7 pmulhuw %xmm5, %xmm0 + 0xf3, 0x0f, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x000004bb movdqu $-1171(%rip), %xmm3 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x000004c3 movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf3, //0x000004c7 pmullw %xmm3, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000004cb psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x000004d0 psubw %xmm6, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000004d4 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000004da subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xf6, //0x000004dc movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x000004e0 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000004e4 psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd1, //0x000004e9 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0xfa, 0xf2, //0x000004ed psubd %xmm2, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x000004f1 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000004f5 psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000004fa pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000004ff pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x00000504 pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xe4, 0xcd, //0x00000508 pmulhuw %xmm5, %xmm1 + 0x66, 0x0f, 0xd5, 0xd9, //0x0000050c pmullw %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00000510 psllq $16, %xmm3 + 0x66, 0x0f, 0xf9, 0xcb, //0x00000515 psubw %xmm3, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x00000519 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0xfc, 0x05, 0x1b, 0xfb, 0xff, 0xff, //0x0000051d paddb $-1253(%rip), %xmm0 /* LCPI0_4+0(%rip) */ + 0x89, 0xc8, //0x00000525 movl %ecx, %eax + 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00000527 movdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x0000052c orl $16, %ecx + 0x89, 0xc8, //0x0000052f movl %ecx, %eax + 0x5d, //0x00000531 popq %rbp + 0xc3, //0x00000532 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000533 .p2align 4, 0x00 + //0x00000540 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x00000540 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x00000550 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x00000560 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x00000570 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x00000580 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x00000590 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x000005a0 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x000005b0 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x000005c0 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x000005d0 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x000005e0 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x000005f0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x00000600 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000608 .p2align 4, 0x00 + //0x00000610 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x00000610 QUAD $0x0706050403020100; QUAD $0x0f0e0d0c0b0a0908 // .ascii 16, '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f' + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, //0x00000620 QUAD $0x0807060504030201; QUAD $0xff0f0e0d0c0b0a09 // .ascii 16, '\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff' + 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, //0x00000630 QUAD $0x0908070605040302; QUAD $0xffff0f0e0d0c0b0a // .ascii 16, '\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff' + 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, //0x00000640 QUAD $0x0a09080706050403; QUAD $0xffffff0f0e0d0c0b // .ascii 16, '\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff' + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, //0x00000650 QUAD $0x0b0a090807060504; QUAD $0xffffffff0f0e0d0c // .ascii 16, '\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff' + 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000660 QUAD $0x0c0b0a0908070605; QUAD $0xffffffffff0f0e0d // .ascii 16, '\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff' + 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000670 QUAD $0x0d0c0b0a09080706; QUAD $0xffffffffffff0f0e // .ascii 16, '\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff' + 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000680 QUAD $0x0e0d0c0b0a090807; QUAD $0xffffffffffffff0f // .ascii 16, '\x07\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff' + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00000690 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/unquote.go b/vendor/github.com/bytedance/sonic/internal/native/sse/unquote.go new file mode 100644 index 000000000..31d41575c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/unquote.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + +var S_unquote uintptr + +//go:nosplit +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return F_unquote(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(ep)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/unquote_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/unquote_subr.go new file mode 100644 index 000000000..fbcebc2f6 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/unquote_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__unquote = 16 +) + +const ( + _stack__unquote = 88 +) + +const ( + _size__unquote = 2272 +) + +var ( + _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}, + } +) + +var _cfunc_unquote = []loader.CFunc{ + {"_unquote_entry", 0, _entry__unquote, 0, nil}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/unquote_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/unquote_text_amd64.go new file mode 100644 index 000000000..cf7bccfd7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/unquote_text_amd64.go @@ -0,0 +1,639 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_unquote = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, // QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000010 .p2align 4, 0x90 + //0x00000010 _unquote + 0x55, //0x00000010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000011 movq %rsp, %rbp + 0x41, 0x57, //0x00000014 pushq %r15 + 0x41, 0x56, //0x00000016 pushq %r14 + 0x41, 0x55, //0x00000018 pushq %r13 + 0x41, 0x54, //0x0000001a pushq %r12 + 0x53, //0x0000001c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000001d subq $40, %rsp + 0x48, 0x85, 0xf6, //0x00000021 testq %rsi, %rsi + 0x0f, 0x84, 0x6e, 0x06, 0x00, 0x00, //0x00000024 je LBB0_82 + 0x49, 0x89, 0xf3, //0x0000002a movq %rsi, %r11 + 0x48, 0x89, 0x4d, 0xc8, //0x0000002d movq %rcx, $-56(%rbp) + 0x4c, 0x89, 0xc0, //0x00000031 movq %r8, %rax + 0x4c, 0x89, 0x45, 0xb8, //0x00000034 movq %r8, $-72(%rbp) + 0x45, 0x89, 0xc2, //0x00000038 movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x0000003b andl $1, %r10d + 0x4c, 0x8d, 0x05, 0xaa, 0x08, 0x00, 0x00, //0x0000003f leaq $2218(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x05, 0xb2, 0xff, 0xff, 0xff, //0x00000046 movdqu $-78(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x49, 0x89, 0xf9, //0x0000004e movq %rdi, %r9 + 0x49, 0x89, 0xf5, //0x00000051 movq %rsi, %r13 + 0x48, 0x89, 0xd0, //0x00000054 movq %rdx, %rax + //0x00000057 LBB0_2 + 0x41, 0x80, 0x39, 0x5c, //0x00000057 cmpb $92, (%r9) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x0000005b jne LBB0_4 + 0x31, 0xf6, //0x00000061 xorl %esi, %esi + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00000063 jmp LBB0_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000068 .p2align 4, 0x90 + //0x00000070 LBB0_4 + 0x4d, 0x89, 0xef, //0x00000070 movq %r13, %r15 + 0x48, 0x89, 0xc6, //0x00000073 movq %rax, %rsi + 0x4d, 0x89, 0xce, //0x00000076 movq %r9, %r14 + 0x49, 0x83, 0xfd, 0x10, //0x00000079 cmpq $16, %r13 + 0x0f, 0x8c, 0x3d, 0x00, 0x00, 0x00, //0x0000007d jl LBB0_7 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000083 .p2align 4, 0x90 + //0x00000090 LBB0_5 + 0xf3, 0x41, 0x0f, 0x6f, 0x0e, //0x00000090 movdqu (%r14), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0e, //0x00000095 movdqu %xmm1, (%rsi) + 0x66, 0x0f, 0x74, 0xc8, //0x00000099 pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xd9, //0x0000009d pmovmskb %xmm1, %ebx + 0x66, 0x85, 0xdb, //0x000000a1 testw %bx, %bx + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x000000a4 jne LBB0_12 + 0x49, 0x83, 0xc6, 0x10, //0x000000aa addq $16, %r14 + 0x48, 0x83, 0xc6, 0x10, //0x000000ae addq $16, %rsi + 0x49, 0x83, 0xff, 0x1f, //0x000000b2 cmpq $31, %r15 + 0x4d, 0x8d, 0x7f, 0xf0, //0x000000b6 leaq $-16(%r15), %r15 + 0x0f, 0x8f, 0xd0, 0xff, 0xff, 0xff, //0x000000ba jg LBB0_5 + //0x000000c0 LBB0_7 + 0x4d, 0x85, 0xff, //0x000000c0 testq %r15, %r15 + 0x0f, 0x84, 0xd5, 0x05, 0x00, 0x00, //0x000000c3 je LBB0_83 + 0x31, 0xdb, //0x000000c9 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000cb .p2align 4, 0x90 + //0x000000d0 LBB0_9 + 0x41, 0x0f, 0xb6, 0x0c, 0x1e, //0x000000d0 movzbl (%r14,%rbx), %ecx + 0x80, 0xf9, 0x5c, //0x000000d5 cmpb $92, %cl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000000d8 je LBB0_11 + 0x88, 0x0c, 0x1e, //0x000000de movb %cl, (%rsi,%rbx) + 0x48, 0xff, 0xc3, //0x000000e1 incq %rbx + 0x49, 0x39, 0xdf, //0x000000e4 cmpq %rbx, %r15 + 0x0f, 0x85, 0xe3, 0xff, 0xff, 0xff, //0x000000e7 jne LBB0_9 + 0xe9, 0xac, 0x05, 0x00, 0x00, //0x000000ed jmp LBB0_83 + //0x000000f2 LBB0_11 + 0x49, 0x01, 0xde, //0x000000f2 addq %rbx, %r14 + 0x4d, 0x29, 0xce, //0x000000f5 subq %r9, %r14 + 0x4c, 0x89, 0xf6, //0x000000f8 movq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x000000fb cmpq $-1, %rsi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000000ff jne LBB0_13 + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00000105 jmp LBB0_83 + //0x0000010a LBB0_12 + 0x0f, 0xb7, 0xcb, //0x0000010a movzwl %bx, %ecx + 0x4d, 0x29, 0xce, //0x0000010d subq %r9, %r14 + 0x48, 0x0f, 0xbc, 0xf1, //0x00000110 bsfq %rcx, %rsi + 0x4c, 0x01, 0xf6, //0x00000114 addq %r14, %rsi + 0x48, 0x83, 0xfe, 0xff, //0x00000117 cmpq $-1, %rsi + 0x0f, 0x84, 0x7d, 0x05, 0x00, 0x00, //0x0000011b je LBB0_83 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000121 .p2align 4, 0x90 + //0x00000130 LBB0_13 + 0x48, 0x8d, 0x4e, 0x02, //0x00000130 leaq $2(%rsi), %rcx + 0x49, 0x29, 0xcd, //0x00000134 subq %rcx, %r13 + 0x0f, 0x88, 0x2a, 0x06, 0x00, 0x00, //0x00000137 js LBB0_94 + 0x4d, 0x8d, 0x4c, 0x31, 0x02, //0x0000013d leaq $2(%r9,%rsi), %r9 + 0x4d, 0x85, 0xd2, //0x00000142 testq %r10, %r10 + 0x0f, 0x85, 0xe5, 0x03, 0x00, 0x00, //0x00000145 jne LBB0_58 + //0x0000014b LBB0_15 + 0x48, 0x01, 0xf0, //0x0000014b addq %rsi, %rax + 0x41, 0x0f, 0xb6, 0x49, 0xff, //0x0000014e movzbl $-1(%r9), %ecx + 0x42, 0x8a, 0x0c, 0x01, //0x00000153 movb (%rcx,%r8), %cl + 0x80, 0xf9, 0xff, //0x00000157 cmpb $-1, %cl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000015a je LBB0_18 + 0x84, 0xc9, //0x00000160 testb %cl, %cl + 0x0f, 0x84, 0x12, 0x06, 0x00, 0x00, //0x00000162 je LBB0_95 + 0x88, 0x08, //0x00000168 movb %cl, (%rax) + 0x48, 0xff, 0xc0, //0x0000016a incq %rax + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x0000016d jmp LBB0_57 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000172 .p2align 4, 0x90 + //0x00000180 LBB0_18 + 0x49, 0x83, 0xfd, 0x03, //0x00000180 cmpq $3, %r13 + 0x0f, 0x8e, 0xdd, 0x05, 0x00, 0x00, //0x00000184 jle LBB0_94 + 0x41, 0x8b, 0x31, //0x0000018a movl (%r9), %esi + 0x89, 0xf1, //0x0000018d movl %esi, %ecx + 0xf7, 0xd1, //0x0000018f notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000191 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00000197 andl $-2139062144, %ecx + 0x85, 0xd9, //0x0000019d testl %ebx, %ecx + 0x0f, 0x85, 0x0e, 0x05, 0x00, 0x00, //0x0000019f jne LBB0_85 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x000001a5 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x000001ab orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x000001ad testl $-2139062144, %ebx + 0x0f, 0x85, 0xfa, 0x04, 0x00, 0x00, //0x000001b3 jne LBB0_85 + 0x89, 0xf3, //0x000001b9 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000001bb andl $2139062143, %ebx + 0x41, 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x000001c1 movl $-1061109568, %r14d + 0x41, 0x29, 0xde, //0x000001c7 subl %ebx, %r14d + 0x44, 0x8d, 0xbb, 0x46, 0x46, 0x46, 0x46, //0x000001ca leal $1179010630(%rbx), %r15d + 0x41, 0x21, 0xce, //0x000001d1 andl %ecx, %r14d + 0x45, 0x85, 0xfe, //0x000001d4 testl %r15d, %r14d + 0x0f, 0x85, 0xd6, 0x04, 0x00, 0x00, //0x000001d7 jne LBB0_85 + 0x41, 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x000001dd movl $-522133280, %r14d + 0x41, 0x29, 0xde, //0x000001e3 subl %ebx, %r14d + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x000001e6 addl $960051513, %ebx + 0x44, 0x21, 0xf1, //0x000001ec andl %r14d, %ecx + 0x85, 0xd9, //0x000001ef testl %ebx, %ecx + 0x0f, 0x85, 0xbc, 0x04, 0x00, 0x00, //0x000001f1 jne LBB0_85 + 0x0f, 0xce, //0x000001f7 bswapl %esi + 0x89, 0xf1, //0x000001f9 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x000001fb shrl $4, %ecx + 0xf7, 0xd1, //0x000001fe notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000200 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000206 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000209 andl $252645135, %esi + 0x01, 0xce, //0x0000020f addl %ecx, %esi + 0x89, 0xf1, //0x00000211 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00000213 shrl $4, %ecx + 0x09, 0xf1, //0x00000216 orl %esi, %ecx + 0x44, 0x0f, 0xb6, 0xf9, //0x00000218 movzbl %cl, %r15d + 0xc1, 0xe9, 0x08, //0x0000021c shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000021f andl $65280, %ecx + 0x41, 0x09, 0xcf, //0x00000225 orl %ecx, %r15d + 0x4d, 0x8d, 0x75, 0xfc, //0x00000228 leaq $-4(%r13), %r14 + 0x41, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x0000022c cmpl $128, %r15d + 0x0f, 0x82, 0x46, 0x03, 0x00, 0x00, //0x00000233 jb LBB0_66 + 0x45, 0x31, 0xe4, //0x00000239 xorl %r12d, %r12d + 0x4d, 0x85, 0xd2, //0x0000023c testq %r10, %r10 + 0x0f, 0x84, 0x5b, 0x01, 0x00, 0x00, //0x0000023f je LBB0_40 + //0x00000245 LBB0_25 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x00000245 cmpl $2048, %r15d + 0x0f, 0x82, 0x3c, 0x03, 0x00, 0x00, //0x0000024c jb LBB0_68 + 0x44, 0x89, 0xf9, //0x00000252 movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x00000255 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x0000025b cmpl $55296, %ecx + 0x0f, 0x85, 0x89, 0x02, 0x00, 0x00, //0x00000261 jne LBB0_54 + 0x4d, 0x85, 0xf6, //0x00000267 testq %r14, %r14 + 0x0f, 0x8e, 0x6b, 0x03, 0x00, 0x00, //0x0000026a jle LBB0_72 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x00000270 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0x6e, 0x03, 0x00, 0x00, //0x00000276 jne LBB0_73 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x0000027c cmpl $56319, %r15d + 0x0f, 0x87, 0x34, 0x03, 0x00, 0x00, //0x00000283 ja LBB0_70 + 0x49, 0x83, 0xfe, 0x07, //0x00000289 cmpq $7, %r14 + 0x0f, 0x8c, 0x2a, 0x03, 0x00, 0x00, //0x0000028d jl LBB0_70 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x5c, //0x00000293 cmpb $92, $5(%r9,%r12) + 0x0f, 0x85, 0x1e, 0x03, 0x00, 0x00, //0x00000299 jne LBB0_70 + 0x43, 0x80, 0x7c, 0x21, 0x06, 0x75, //0x0000029f cmpb $117, $6(%r9,%r12) + 0x0f, 0x85, 0x12, 0x03, 0x00, 0x00, //0x000002a5 jne LBB0_70 + 0x43, 0x8b, 0x74, 0x21, 0x07, //0x000002ab movl $7(%r9,%r12), %esi + 0x89, 0xf1, //0x000002b0 movl %esi, %ecx + 0xf7, 0xd1, //0x000002b2 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x000002b4 leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000002ba andl $-2139062144, %ecx + 0x85, 0xd9, //0x000002c0 testl %ebx, %ecx + 0x0f, 0x85, 0xe8, 0x04, 0x00, 0x00, //0x000002c2 jne LBB0_99 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x000002c8 leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x000002ce orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x000002d0 testl $-2139062144, %ebx + 0x0f, 0x85, 0xd4, 0x04, 0x00, 0x00, //0x000002d6 jne LBB0_99 + 0x89, 0xf3, //0x000002dc movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x000002de andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x000002e4 movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x000002eb subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x000002ee movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x000002f2 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x000002f8 movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x000002fb andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x000002fe movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00000301 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x00000304 movq $-80(%rbp), %rsi + 0x0f, 0x85, 0xa2, 0x04, 0x00, 0x00, //0x00000308 jne LBB0_99 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000030e movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00000315 subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x00000318 addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x0000031e andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00000321 testl %ebx, %ecx + 0x0f, 0x85, 0x87, 0x04, 0x00, 0x00, //0x00000323 jne LBB0_99 + 0x0f, 0xce, //0x00000329 bswapl %esi + 0x89, 0xf1, //0x0000032b movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x0000032d shrl $4, %ecx + 0xf7, 0xd1, //0x00000330 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000332 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000338 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000033b andl $252645135, %esi + 0x01, 0xce, //0x00000341 addl %ecx, %esi + 0x89, 0xf1, //0x00000343 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00000345 shrl $4, %ecx + 0x09, 0xf1, //0x00000348 orl %esi, %ecx + 0x89, 0xce, //0x0000034a movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x0000034c shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x0000034f andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x00000355 movzbl %cl, %ebx + 0x09, 0xf3, //0x00000358 orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000035a andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00000360 cmpl $14417920, %ecx + 0x0f, 0x84, 0xac, 0x02, 0x00, 0x00, //0x00000366 je LBB0_77 + 0xf6, 0x45, 0xb8, 0x02, //0x0000036c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x41, 0x05, 0x00, 0x00, //0x00000370 je LBB0_114 + 0x49, 0x83, 0xc6, 0xf9, //0x00000376 addq $-7, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x0000037a movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000037f movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00000383 addq $3, %rax + 0x49, 0x83, 0xc4, 0x07, //0x00000387 addq $7, %r12 + 0x41, 0x89, 0xdf, //0x0000038b movl %ebx, %r15d + 0x83, 0xfb, 0x7f, //0x0000038e cmpl $127, %ebx + 0x0f, 0x87, 0xae, 0xfe, 0xff, 0xff, //0x00000391 ja LBB0_25 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00000397 jmp LBB0_53 + 0x90, 0x90, 0x90, 0x90, //0x0000039c .p2align 4, 0x90 + //0x000003a0 LBB0_40 + 0x41, 0x81, 0xff, 0x00, 0x08, 0x00, 0x00, //0x000003a0 cmpl $2048, %r15d + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x000003a7 jb LBB0_68 + 0x44, 0x89, 0xf9, //0x000003ad movl %r15d, %ecx + 0x81, 0xe1, 0x00, 0xf8, 0xff, 0xff, //0x000003b0 andl $-2048, %ecx + 0x81, 0xf9, 0x00, 0xd8, 0x00, 0x00, //0x000003b6 cmpl $55296, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x000003bc jne LBB0_54 + 0x41, 0x81, 0xff, 0xff, 0xdb, 0x00, 0x00, //0x000003c2 cmpl $56319, %r15d + 0x0f, 0x87, 0xe4, 0x01, 0x00, 0x00, //0x000003c9 ja LBB0_69 + 0x49, 0x83, 0xfe, 0x06, //0x000003cf cmpq $6, %r14 + 0x0f, 0x8c, 0xda, 0x01, 0x00, 0x00, //0x000003d3 jl LBB0_69 + 0x43, 0x80, 0x7c, 0x21, 0x04, 0x5c, //0x000003d9 cmpb $92, $4(%r9,%r12) + 0x0f, 0x85, 0xce, 0x01, 0x00, 0x00, //0x000003df jne LBB0_69 + 0x43, 0x80, 0x7c, 0x21, 0x05, 0x75, //0x000003e5 cmpb $117, $5(%r9,%r12) + 0x0f, 0x85, 0xc2, 0x01, 0x00, 0x00, //0x000003eb jne LBB0_69 + 0x43, 0x8b, 0x74, 0x21, 0x06, //0x000003f1 movl $6(%r9,%r12), %esi + 0x89, 0xf1, //0x000003f6 movl %esi, %ecx + 0xf7, 0xd1, //0x000003f8 notl %ecx + 0x8d, 0x9e, 0xd0, 0xcf, 0xcf, 0xcf, //0x000003fa leal $-808464432(%rsi), %ebx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00000400 andl $-2139062144, %ecx + 0x85, 0xd9, //0x00000406 testl %ebx, %ecx + 0x0f, 0x85, 0x98, 0x03, 0x00, 0x00, //0x00000408 jne LBB0_98 + 0x8d, 0x9e, 0x19, 0x19, 0x19, 0x19, //0x0000040e leal $421075225(%rsi), %ebx + 0x09, 0xf3, //0x00000414 orl %esi, %ebx + 0xf7, 0xc3, 0x80, 0x80, 0x80, 0x80, //0x00000416 testl $-2139062144, %ebx + 0x0f, 0x85, 0x84, 0x03, 0x00, 0x00, //0x0000041c jne LBB0_98 + 0x89, 0xf3, //0x00000422 movl %esi, %ebx + 0x81, 0xe3, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000424 andl $2139062143, %ebx + 0xc7, 0x45, 0xd4, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000042a movl $-1061109568, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x00000431 subl %ebx, $-44(%rbp) + 0x48, 0x89, 0x75, 0xb0, //0x00000434 movq %rsi, $-80(%rbp) + 0x8d, 0xb3, 0x46, 0x46, 0x46, 0x46, //0x00000438 leal $1179010630(%rbx), %esi + 0x89, 0x75, 0xc4, //0x0000043e movl %esi, $-60(%rbp) + 0x21, 0x4d, 0xd4, //0x00000441 andl %ecx, $-44(%rbp) + 0x8b, 0x75, 0xc4, //0x00000444 movl $-60(%rbp), %esi + 0x85, 0x75, 0xd4, //0x00000447 testl %esi, $-44(%rbp) + 0x48, 0x8b, 0x75, 0xb0, //0x0000044a movq $-80(%rbp), %rsi + 0x0f, 0x85, 0x52, 0x03, 0x00, 0x00, //0x0000044e jne LBB0_98 + 0xc7, 0x45, 0xd4, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000454 movl $-522133280, $-44(%rbp) + 0x29, 0x5d, 0xd4, //0x0000045b subl %ebx, $-44(%rbp) + 0x81, 0xc3, 0x39, 0x39, 0x39, 0x39, //0x0000045e addl $960051513, %ebx + 0x23, 0x4d, 0xd4, //0x00000464 andl $-44(%rbp), %ecx + 0x85, 0xd9, //0x00000467 testl %ebx, %ecx + 0x0f, 0x85, 0x37, 0x03, 0x00, 0x00, //0x00000469 jne LBB0_98 + 0x0f, 0xce, //0x0000046f bswapl %esi + 0x89, 0xf1, //0x00000471 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00000473 shrl $4, %ecx + 0xf7, 0xd1, //0x00000476 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000478 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000047e leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000481 andl $252645135, %esi + 0x01, 0xce, //0x00000487 addl %ecx, %esi + 0x89, 0xf1, //0x00000489 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x0000048b shrl $4, %ecx + 0x09, 0xf1, //0x0000048e orl %esi, %ecx + 0x89, 0xce, //0x00000490 movl %ecx, %esi + 0xc1, 0xee, 0x08, //0x00000492 shrl $8, %esi + 0x81, 0xe6, 0x00, 0xff, 0x00, 0x00, //0x00000495 andl $65280, %esi + 0x0f, 0xb6, 0xd9, //0x0000049b movzbl %cl, %ebx + 0x09, 0xf3, //0x0000049e orl %esi, %ebx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x000004a0 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000004a6 cmpl $14417920, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x000004ac je LBB0_76 + 0xf6, 0x45, 0xb8, 0x02, //0x000004b2 testb $2, $-72(%rbp) + 0x0f, 0x84, 0xf1, 0x03, 0x00, 0x00, //0x000004b6 je LBB0_113 + 0x49, 0x83, 0xc6, 0xfa, //0x000004bc addq $-6, %r14 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000004c0 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000004c5 movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x000004c9 addq $3, %rax + 0x49, 0x83, 0xc4, 0x06, //0x000004cd addq $6, %r12 + 0x41, 0x89, 0xdf, //0x000004d1 movl %ebx, %r15d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000004d4 cmpl $128, %ebx + 0x0f, 0x83, 0xc0, 0xfe, 0xff, 0xff, //0x000004da jae LBB0_40 + //0x000004e0 LBB0_53 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000004e0 leaq $4(%r9,%r12), %r9 + 0x41, 0x89, 0xdf, //0x000004e5 movl %ebx, %r15d + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000004e8 jmp LBB0_67 + 0x90, 0x90, 0x90, //0x000004ed .p2align 4, 0x90 + //0x000004f0 LBB0_54 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000004f0 leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x000004f5 movl %r15d, %ecx + 0xc1, 0xe9, 0x0c, //0x000004f8 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x000004fb orb $-32, %cl + 0x88, 0x08, //0x000004fe movb %cl, (%rax) + 0x44, 0x89, 0xf9, //0x00000500 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00000503 shrl $6, %ecx + 0x80, 0xe1, 0x3f, //0x00000506 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000509 orb $-128, %cl + 0x88, 0x48, 0x01, //0x0000050c movb %cl, $1(%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x0000050f andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x00000513 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x02, //0x00000517 movb %r15b, $2(%rax) + //0x0000051b LBB0_55 + 0x48, 0x83, 0xc0, 0x03, //0x0000051b addq $3, %rax + //0x0000051f LBB0_56 + 0x4d, 0x89, 0xf5, //0x0000051f movq %r14, %r13 + //0x00000522 LBB0_57 + 0x4d, 0x85, 0xed, //0x00000522 testq %r13, %r13 + 0x0f, 0x85, 0x2c, 0xfb, 0xff, 0xff, //0x00000525 jne LBB0_2 + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x0000052b jmp LBB0_96 + //0x00000530 LBB0_58 + 0x45, 0x85, 0xed, //0x00000530 testl %r13d, %r13d + 0x0f, 0x84, 0x2e, 0x02, 0x00, 0x00, //0x00000533 je LBB0_94 + 0x41, 0x80, 0x79, 0xff, 0x5c, //0x00000539 cmpb $92, $-1(%r9) + 0x0f, 0x85, 0x57, 0x02, 0x00, 0x00, //0x0000053e jne LBB0_97 + 0x41, 0x80, 0x39, 0x5c, //0x00000544 cmpb $92, (%r9) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000548 jne LBB0_65 + 0x41, 0x83, 0xfd, 0x01, //0x0000054e cmpl $1, %r13d + 0x0f, 0x8e, 0x0f, 0x02, 0x00, 0x00, //0x00000552 jle LBB0_94 + 0x41, 0x8a, 0x49, 0x01, //0x00000558 movb $1(%r9), %cl + 0x80, 0xf9, 0x22, //0x0000055c cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x0000055f je LBB0_64 + 0x80, 0xf9, 0x5c, //0x00000565 cmpb $92, %cl + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00000568 jne LBB0_109 + //0x0000056e LBB0_64 + 0x49, 0xff, 0xc1, //0x0000056e incq %r9 + 0x49, 0xff, 0xcd, //0x00000571 decq %r13 + //0x00000574 LBB0_65 + 0x49, 0xff, 0xc1, //0x00000574 incq %r9 + 0x49, 0xff, 0xcd, //0x00000577 decq %r13 + 0xe9, 0xcc, 0xfb, 0xff, 0xff, //0x0000057a jmp LBB0_15 + //0x0000057f LBB0_66 + 0x49, 0x83, 0xc1, 0x04, //0x0000057f addq $4, %r9 + //0x00000583 LBB0_67 + 0x44, 0x88, 0x38, //0x00000583 movb %r15b, (%rax) + 0x48, 0xff, 0xc0, //0x00000586 incq %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00000589 jmp LBB0_56 + //0x0000058e LBB0_68 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x0000058e leaq $4(%r9,%r12), %r9 + 0x44, 0x89, 0xf9, //0x00000593 movl %r15d, %ecx + 0xc1, 0xe9, 0x06, //0x00000596 shrl $6, %ecx + 0x80, 0xc9, 0xc0, //0x00000599 orb $-64, %cl + 0x88, 0x08, //0x0000059c movb %cl, (%rax) + 0x41, 0x80, 0xe7, 0x3f, //0x0000059e andb $63, %r15b + 0x41, 0x80, 0xcf, 0x80, //0x000005a2 orb $-128, %r15b + 0x44, 0x88, 0x78, 0x01, //0x000005a6 movb %r15b, $1(%rax) + 0x48, 0x83, 0xc0, 0x02, //0x000005aa addq $2, %rax + 0xe9, 0x6c, 0xff, 0xff, 0xff, //0x000005ae jmp LBB0_56 + //0x000005b3 LBB0_69 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000005b3 leaq $4(%r9,%r12), %r9 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x000005b8 jmp LBB0_71 + //0x000005bd LBB0_70 + 0x4f, 0x8d, 0x4c, 0x21, 0x05, //0x000005bd leaq $5(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x000005c2 subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xfb, //0x000005c5 addq $-5, %r13 + 0x4d, 0x89, 0xee, //0x000005c9 movq %r13, %r14 + //0x000005cc LBB0_71 + 0xf6, 0x45, 0xb8, 0x02, //0x000005cc testb $2, $-72(%rbp) + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000005d0 jne LBB0_75 + 0xe9, 0xfb, 0x02, 0x00, 0x00, //0x000005d6 jmp LBB0_116 + //0x000005db LBB0_72 + 0xf6, 0x45, 0xb8, 0x02, //0x000005db testb $2, $-72(%rbp) + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000005df jne LBB0_74 + 0xe9, 0x7d, 0x01, 0x00, 0x00, //0x000005e5 jmp LBB0_94 + //0x000005ea LBB0_73 + 0xf6, 0x45, 0xb8, 0x02, //0x000005ea testb $2, $-72(%rbp) + 0x0f, 0x84, 0xef, 0x02, 0x00, 0x00, //0x000005ee je LBB0_117 + //0x000005f4 LBB0_74 + 0x4f, 0x8d, 0x4c, 0x21, 0x04, //0x000005f4 leaq $4(%r9,%r12), %r9 + //0x000005f9 LBB0_75 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x000005f9 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x000005fe movb $-67, $2(%rax) + 0xe9, 0x14, 0xff, 0xff, 0xff, //0x00000602 jmp LBB0_55 + //0x00000607 LBB0_76 + 0x4f, 0x8d, 0x4c, 0x21, 0x0a, //0x00000607 leaq $10(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000060c subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf6, //0x0000060f addq $-10, %r13 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00000613 jmp LBB0_78 + //0x00000618 LBB0_77 + 0x4f, 0x8d, 0x4c, 0x21, 0x0b, //0x00000618 leaq $11(%r9,%r12), %r9 + 0x4d, 0x29, 0xe5, //0x0000061d subq %r12, %r13 + 0x49, 0x83, 0xc5, 0xf5, //0x00000620 addq $-11, %r13 + //0x00000624 LBB0_78 + 0x41, 0xc1, 0xe7, 0x0a, //0x00000624 shll $10, %r15d + 0x41, 0x8d, 0x8c, 0x1f, 0x00, 0x24, 0xa0, 0xfc, //0x00000628 leal $-56613888(%r15,%rbx), %ecx + 0x81, 0xf9, 0x00, 0x00, 0x11, 0x00, //0x00000630 cmpl $1114112, %ecx + 0x0f, 0x82, 0x1c, 0x00, 0x00, 0x00, //0x00000636 jb LBB0_81 + 0xf6, 0x45, 0xb8, 0x02, //0x0000063c testb $2, $-72(%rbp) + 0x0f, 0x84, 0x4d, 0x02, 0x00, 0x00, //0x00000640 je LBB0_111 + 0x66, 0xc7, 0x00, 0xef, 0xbf, //0x00000646 movw $-16401, (%rax) + 0xc6, 0x40, 0x02, 0xbd, //0x0000064b movb $-67, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x0000064f addq $3, %rax + 0xe9, 0xca, 0xfe, 0xff, 0xff, //0x00000653 jmp LBB0_57 + //0x00000658 LBB0_81 + 0x89, 0xce, //0x00000658 movl %ecx, %esi + 0xc1, 0xee, 0x12, //0x0000065a shrl $18, %esi + 0x40, 0x80, 0xce, 0xf0, //0x0000065d orb $-16, %sil + 0x40, 0x88, 0x30, //0x00000661 movb %sil, (%rax) + 0x89, 0xce, //0x00000664 movl %ecx, %esi + 0xc1, 0xee, 0x0c, //0x00000666 shrl $12, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x00000669 andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000066d orb $-128, %sil + 0x40, 0x88, 0x70, 0x01, //0x00000671 movb %sil, $1(%rax) + 0x89, 0xce, //0x00000675 movl %ecx, %esi + 0xc1, 0xee, 0x06, //0x00000677 shrl $6, %esi + 0x40, 0x80, 0xe6, 0x3f, //0x0000067a andb $63, %sil + 0x40, 0x80, 0xce, 0x80, //0x0000067e orb $-128, %sil + 0x40, 0x88, 0x70, 0x02, //0x00000682 movb %sil, $2(%rax) + 0x80, 0xe1, 0x3f, //0x00000686 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00000689 orb $-128, %cl + 0x88, 0x48, 0x03, //0x0000068c movb %cl, $3(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x0000068f addq $4, %rax + 0xe9, 0x8a, 0xfe, 0xff, 0xff, //0x00000693 jmp LBB0_57 + //0x00000698 LBB0_82 + 0x45, 0x31, 0xed, //0x00000698 xorl %r13d, %r13d + 0x48, 0x89, 0xd0, //0x0000069b movq %rdx, %rax + //0x0000069e LBB0_83 + 0x4c, 0x01, 0xe8, //0x0000069e addq %r13, %rax + 0x48, 0x29, 0xd0, //0x000006a1 subq %rdx, %rax + //0x000006a4 LBB0_84 + 0x48, 0x83, 0xc4, 0x28, //0x000006a4 addq $40, %rsp + 0x5b, //0x000006a8 popq %rbx + 0x41, 0x5c, //0x000006a9 popq %r12 + 0x41, 0x5d, //0x000006ab popq %r13 + 0x41, 0x5e, //0x000006ad popq %r14 + 0x41, 0x5f, //0x000006af popq %r15 + 0x5d, //0x000006b1 popq %rbp + 0xc3, //0x000006b2 retq + //0x000006b3 LBB0_85 + 0x4c, 0x89, 0xca, //0x000006b3 movq %r9, %rdx + 0x48, 0x29, 0xfa, //0x000006b6 subq %rdi, %rdx + 0x48, 0x8b, 0x7d, 0xc8, //0x000006b9 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x17, //0x000006bd movq %rdx, (%rdi) + 0x41, 0x8a, 0x09, //0x000006c0 movb (%r9), %cl + 0x8d, 0x71, 0xd0, //0x000006c3 leal $-48(%rcx), %esi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000006c6 movq $-2, %rax + 0x40, 0x80, 0xfe, 0x0a, //0x000006cd cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000006d1 jb LBB0_87 + 0x80, 0xe1, 0xdf, //0x000006d7 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000006da addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000006dd cmpb $5, %cl + 0x0f, 0x87, 0xbe, 0xff, 0xff, 0xff, //0x000006e0 ja LBB0_84 + //0x000006e6 LBB0_87 + 0x48, 0x8d, 0x4a, 0x01, //0x000006e6 leaq $1(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x000006ea movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x01, //0x000006ed movb $1(%r9), %cl + 0x8d, 0x71, 0xd0, //0x000006f1 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x000006f4 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000006f8 jb LBB0_89 + 0x80, 0xe1, 0xdf, //0x000006fe andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00000701 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000704 cmpb $5, %cl + 0x0f, 0x87, 0x97, 0xff, 0xff, 0xff, //0x00000707 ja LBB0_84 + //0x0000070d LBB0_89 + 0x48, 0x8d, 0x4a, 0x02, //0x0000070d leaq $2(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00000711 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x02, //0x00000714 movb $2(%r9), %cl + 0x8d, 0x71, 0xd0, //0x00000718 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x0000071b cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000071f jb LBB0_91 + 0x80, 0xe1, 0xdf, //0x00000725 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00000728 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000072b cmpb $5, %cl + 0x0f, 0x87, 0x70, 0xff, 0xff, 0xff, //0x0000072e ja LBB0_84 + //0x00000734 LBB0_91 + 0x48, 0x8d, 0x4a, 0x03, //0x00000734 leaq $3(%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00000738 movq %rcx, (%rdi) + 0x41, 0x8a, 0x49, 0x03, //0x0000073b movb $3(%r9), %cl + 0x8d, 0x71, 0xd0, //0x0000073f leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00000742 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000746 jb LBB0_93 + 0x80, 0xe1, 0xdf, //0x0000074c andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000074f addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000752 cmpb $5, %cl + 0x0f, 0x87, 0x49, 0xff, 0xff, 0xff, //0x00000755 ja LBB0_84 + //0x0000075b LBB0_93 + 0x48, 0x83, 0xc2, 0x04, //0x0000075b addq $4, %rdx + 0x48, 0x89, 0x17, //0x0000075f movq %rdx, (%rdi) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x00000762 jmp LBB0_84 + //0x00000767 LBB0_94 + 0x48, 0x8b, 0x45, 0xc8, //0x00000767 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x18, //0x0000076b movq %r11, (%rax) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000076e movq $-1, %rax + 0xe9, 0x2a, 0xff, 0xff, 0xff, //0x00000775 jmp LBB0_84 + //0x0000077a LBB0_95 + 0x48, 0xf7, 0xd7, //0x0000077a notq %rdi + 0x49, 0x01, 0xf9, //0x0000077d addq %rdi, %r9 + 0x48, 0x8b, 0x45, 0xc8, //0x00000780 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00000784 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfd, 0xff, 0xff, 0xff, //0x00000787 movq $-3, %rax + 0xe9, 0x11, 0xff, 0xff, 0xff, //0x0000078e jmp LBB0_84 + //0x00000793 LBB0_96 + 0x45, 0x31, 0xed, //0x00000793 xorl %r13d, %r13d + 0xe9, 0x03, 0xff, 0xff, 0xff, //0x00000796 jmp LBB0_83 + //0x0000079b LBB0_97 + 0x48, 0xf7, 0xd7, //0x0000079b notq %rdi + 0x49, 0x01, 0xf9, //0x0000079e addq %rdi, %r9 + 0xe9, 0xda, 0x00, 0x00, 0x00, //0x000007a1 jmp LBB0_110 + //0x000007a6 LBB0_98 + 0x4b, 0x8d, 0x74, 0x21, 0x04, //0x000007a6 leaq $4(%r9,%r12), %rsi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x000007ab jmp LBB0_100 + //0x000007b0 LBB0_99 + 0x4b, 0x8d, 0x74, 0x21, 0x05, //0x000007b0 leaq $5(%r9,%r12), %rsi + //0x000007b5 LBB0_100 + 0x48, 0x89, 0xf2, //0x000007b5 movq %rsi, %rdx + 0x48, 0x29, 0xfa, //0x000007b8 subq %rdi, %rdx + 0x48, 0x83, 0xc2, 0x02, //0x000007bb addq $2, %rdx + 0x48, 0x8b, 0x45, 0xc8, //0x000007bf movq $-56(%rbp), %rax + 0x48, 0x89, 0x10, //0x000007c3 movq %rdx, (%rax) + 0x8a, 0x4e, 0x02, //0x000007c6 movb $2(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000007c9 leal $-48(%rcx), %edi + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000007cc movq $-2, %rax + 0x40, 0x80, 0xff, 0x0a, //0x000007d3 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000007d7 jb LBB0_102 + 0x80, 0xe1, 0xdf, //0x000007dd andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x000007e0 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x000007e3 cmpb $5, %cl + 0x0f, 0x87, 0xb8, 0xfe, 0xff, 0xff, //0x000007e6 ja LBB0_84 + //0x000007ec LBB0_102 + 0x48, 0x8d, 0x4a, 0x01, //0x000007ec leaq $1(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x000007f0 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x000007f4 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x03, //0x000007f7 movb $3(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x000007fa leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000007fd cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000801 jb LBB0_104 + 0x80, 0xe1, 0xdf, //0x00000807 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000080a addb $-65, %cl + 0x80, 0xf9, 0x05, //0x0000080d cmpb $5, %cl + 0x0f, 0x87, 0x8e, 0xfe, 0xff, 0xff, //0x00000810 ja LBB0_84 + //0x00000816 LBB0_104 + 0x48, 0x8d, 0x4a, 0x02, //0x00000816 leaq $2(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x0000081a movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x0000081e movq %rcx, (%rdi) + 0x8a, 0x4e, 0x04, //0x00000821 movb $4(%rsi), %cl + 0x8d, 0x79, 0xd0, //0x00000824 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x00000827 cmpb $10, %dil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x0000082b jb LBB0_106 + 0x80, 0xe1, 0xdf, //0x00000831 andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x00000834 addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000837 cmpb $5, %cl + 0x0f, 0x87, 0x64, 0xfe, 0xff, 0xff, //0x0000083a ja LBB0_84 + //0x00000840 LBB0_106 + 0x48, 0x8d, 0x4a, 0x03, //0x00000840 leaq $3(%rdx), %rcx + 0x48, 0x8b, 0x7d, 0xc8, //0x00000844 movq $-56(%rbp), %rdi + 0x48, 0x89, 0x0f, //0x00000848 movq %rcx, (%rdi) + 0x8a, 0x4e, 0x05, //0x0000084b movb $5(%rsi), %cl + 0x8d, 0x71, 0xd0, //0x0000084e leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x0a, //0x00000851 cmpb $10, %sil + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00000855 jb LBB0_108 + 0x80, 0xe1, 0xdf, //0x0000085b andb $-33, %cl + 0x80, 0xc1, 0xbf, //0x0000085e addb $-65, %cl + 0x80, 0xf9, 0x05, //0x00000861 cmpb $5, %cl + 0x0f, 0x87, 0x3a, 0xfe, 0xff, 0xff, //0x00000864 ja LBB0_84 + //0x0000086a LBB0_108 + 0x48, 0x83, 0xc2, 0x04, //0x0000086a addq $4, %rdx + 0x48, 0x8b, 0x4d, 0xc8, //0x0000086e movq $-56(%rbp), %rcx + 0x48, 0x89, 0x11, //0x00000872 movq %rdx, (%rcx) + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00000875 jmp LBB0_84 + //0x0000087a LBB0_109 + 0x49, 0x29, 0xf9, //0x0000087a subq %rdi, %r9 + 0x49, 0xff, 0xc1, //0x0000087d incq %r9 + //0x00000880 LBB0_110 + 0x48, 0x8b, 0x45, 0xc8, //0x00000880 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00000884 movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00000887 movq $-2, %rax + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x0000088e jmp LBB0_84 + //0x00000893 LBB0_111 + 0x49, 0x29, 0xf9, //0x00000893 subq %rdi, %r9 + 0x49, 0x83, 0xc1, 0xfc, //0x00000896 addq $-4, %r9 + //0x0000089a LBB0_112 + 0x48, 0x8b, 0x45, 0xc8, //0x0000089a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x0000089e movq %r9, (%rax) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x000008a1 movq $-4, %rax + 0xe9, 0xf7, 0xfd, 0xff, 0xff, //0x000008a8 jmp LBB0_84 + //0x000008ad LBB0_113 + 0x4b, 0x8d, 0x44, 0x21, 0x0a, //0x000008ad leaq $10(%r9,%r12), %rax + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x000008b2 jmp LBB0_115 + //0x000008b7 LBB0_114 + 0x4b, 0x8d, 0x44, 0x21, 0x0b, //0x000008b7 leaq $11(%r9,%r12), %rax + //0x000008bc LBB0_115 + 0x48, 0x29, 0xf8, //0x000008bc subq %rdi, %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000008bf addq $-4, %rax + 0x48, 0x8b, 0x4d, 0xc8, //0x000008c3 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000008c7 movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xfc, 0xff, 0xff, 0xff, //0x000008ca movq $-4, %rax + 0xe9, 0xce, 0xfd, 0xff, 0xff, //0x000008d1 jmp LBB0_84 + //0x000008d6 LBB0_116 + 0x49, 0x8d, 0x44, 0x3a, 0x04, //0x000008d6 leaq $4(%r10,%rdi), %rax + 0x49, 0x29, 0xc1, //0x000008db subq %rax, %r9 + 0xe9, 0xb7, 0xff, 0xff, 0xff, //0x000008de jmp LBB0_112 + //0x000008e3 LBB0_117 + 0x4d, 0x01, 0xe1, //0x000008e3 addq %r12, %r9 + 0x49, 0x29, 0xf9, //0x000008e6 subq %rdi, %r9 + 0xe9, 0xac, 0xff, 0xff, 0xff, //0x000008e9 jmp LBB0_112 + 0x00, 0x00, //0x000008ee .p2align 4, 0x00 + //0x000008f0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000008f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, //0x00000910 QUAD $0x0000000000220000; QUAD $0x2f00000000000000 // .ascii 16, '\x00\x00"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00/' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, //0x00000940 QUAD $0x0000000000000000; QUAD $0x0000005c00000000 // .ascii 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\\\x00\x00\x00' + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, //0x00000950 QUAD $0x000c000000080000; QUAD $0x000a000000000000 // .ascii 16, '\x00\x00\x08\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00' + 0x00, 0x00, 0x0d, 0x00, 0x09, 0xff, //0x00000960 LONG $0x000d0000; WORD $0xff09 // .ascii 6, '\x00\x00\r\x00\t\xff' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000966 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000976 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000986 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000996 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009a6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009b6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009c6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009d6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000009e6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one.go new file mode 100644 index 000000000..44e93f5bc --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one.go @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_validate_one uintptr + +//go:nosplit +func validate_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_subr.go new file mode 100644 index 000000000..d43bb9df5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_one = 144 +) + +const ( + _stack__validate_one = 160 +) + +const ( + _size__validate_one = 10216 +) + +var ( + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {9556, 160}, + {9560, 48}, + {9561, 40}, + {9563, 32}, + {9565, 24}, + {9567, 16}, + {9569, 8}, + {9570, 0}, + {10216, 160}, + } +) + +var _cfunc_validate_one = []loader.CFunc{ + {"_validate_one_entry", 0, _entry__validate_one, 0, nil}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_text_amd64.go new file mode 100644 index 000000000..ec4d91b31 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_one_text_amd64.go @@ -0,0 +1,3018 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_validate_one = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 LCPI0_3 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000030 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000040 LCPI0_4 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000040 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000050 LCPI0_5 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_6 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000070 LCPI0_7 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000080 LCPI0_8 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000080 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000090 .p2align 4, 0x90 + //0x00000090 _validate_one + 0x55, //0x00000090 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000091 movq %rsp, %rbp + 0x41, 0x57, //0x00000094 pushq %r15 + 0x41, 0x56, //0x00000096 pushq %r14 + 0x41, 0x55, //0x00000098 pushq %r13 + 0x41, 0x54, //0x0000009a pushq %r12 + 0x53, //0x0000009c pushq %rbx + 0x48, 0x83, 0xec, 0x70, //0x0000009d subq $112, %rsp + 0x48, 0x89, 0x4d, 0x80, //0x000000a1 movq %rcx, $-128(%rbp) + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000000a5 movl $1, %r11d + 0x66, 0x49, 0x0f, 0x6e, 0xc3, //0x000000ab movq %r11, %xmm0 + 0x48, 0x89, 0x55, 0x88, //0x000000b0 movq %rdx, $-120(%rbp) + 0xf3, 0x0f, 0x7f, 0x02, //0x000000b4 movdqu %xmm0, (%rdx) + 0x48, 0x89, 0x7d, 0x98, //0x000000b8 movq %rdi, $-104(%rbp) + 0x4c, 0x8b, 0x0f, //0x000000bc movq (%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x000000bf movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000000c2 notq %rax + 0x48, 0x89, 0x45, 0xa8, //0x000000c5 movq %rax, $-88(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000000c9 movl $1, %eax + 0x4c, 0x29, 0xc8, //0x000000ce subq %r9, %rax + 0x48, 0x89, 0x45, 0xa0, //0x000000d1 movq %rax, $-96(%rbp) + 0x49, 0x8d, 0x41, 0x40, //0x000000d5 leaq $64(%r9), %rax + 0x48, 0x89, 0x45, 0x90, //0x000000d9 movq %rax, $-112(%rbp) + 0x48, 0x8b, 0x06, //0x000000dd movq (%rsi), %rax + 0x48, 0x89, 0x45, 0xc0, //0x000000e0 movq %rax, $-64(%rbp) + 0x49, 0x8d, 0x41, 0x05, //0x000000e4 leaq $5(%r9), %rax + 0x48, 0x89, 0x85, 0x68, 0xff, 0xff, 0xff, //0x000000e8 movq %rax, $-152(%rbp) + 0x48, 0xc7, 0x85, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x000000ef movq $-1, $-136(%rbp) + 0xf3, 0x0f, 0x6f, 0x05, 0xfe, 0xfe, 0xff, 0xff, //0x000000fa movdqu $-258(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x06, 0xff, 0xff, 0xff, //0x00000102 movdqu $-250(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0x0e, 0xff, 0xff, 0xff, //0x0000010a movdqu $-242(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xf6, //0x00000112 pcmpeqd %xmm14, %xmm14 + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x10, 0xff, 0xff, 0xff, //0x00000117 movdqu $-240(%rip), %xmm8 /* LCPI0_3+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x2d, 0x17, 0xff, 0xff, 0xff, //0x00000120 movdqu $-233(%rip), %xmm13 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0x1e, 0xff, 0xff, 0xff, //0x00000129 movdqu $-226(%rip), %xmm9 /* LCPI0_5+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x25, 0xff, 0xff, 0xff, //0x00000132 movdqu $-219(%rip), %xmm10 /* LCPI0_6+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x1d, 0x2c, 0xff, 0xff, 0xff, //0x0000013b movdqu $-212(%rip), %xmm11 /* LCPI0_7+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x25, 0x33, 0xff, 0xff, 0xff, //0x00000144 movdqu $-205(%rip), %xmm12 /* LCPI0_8+0(%rip) */ + 0x48, 0x89, 0x75, 0xc8, //0x0000014d movq %rsi, $-56(%rbp) + 0x4c, 0x89, 0x4d, 0xd0, //0x00000151 movq %r9, $-48(%rbp) + 0xe9, 0x48, 0x00, 0x00, 0x00, //0x00000155 jmp LBB0_6 + //0x0000015a LBB0_1 + 0x48, 0x8b, 0x55, 0x88, //0x0000015a movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x0000015e movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00000161 cmpq $4095, %rax + 0x0f, 0x8f, 0x33, 0x24, 0x00, 0x00, //0x00000167 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x0000016d leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x00000171 movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00000174 movq $6, $8(%rdx,%rax,8) + 0x90, 0x90, 0x90, //0x0000017d .p2align 4, 0x90 + //0x00000180 LBB0_3 + 0x4c, 0x8b, 0x5d, 0xc0, //0x00000180 movq $-64(%rbp), %r11 + //0x00000184 LBB0_4 + 0x48, 0x8b, 0x45, 0x88, //0x00000184 movq $-120(%rbp), %rax + 0x48, 0x8b, 0x10, //0x00000188 movq (%rax), %rdx + 0x4c, 0x89, 0x5d, 0xc0, //0x0000018b movq %r11, $-64(%rbp) + 0x49, 0x89, 0xd3, //0x0000018f movq %rdx, %r11 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000192 movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x00000199 testq %rdx, %rdx + 0x0f, 0x84, 0x42, 0x24, 0x00, 0x00, //0x0000019c je LBB0_427 + //0x000001a2 LBB0_6 + 0x48, 0x8b, 0x45, 0x98, //0x000001a2 movq $-104(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x000001a6 movq $8(%rax), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000001aa movq $-64(%rbp), %rcx + 0x48, 0x89, 0xcb, //0x000001ae movq %rcx, %rbx + 0x48, 0x29, 0xc3, //0x000001b1 subq %rax, %rbx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000001b4 jae LBB0_11 + 0x41, 0x8a, 0x14, 0x09, //0x000001ba movb (%r9,%rcx), %dl + 0x80, 0xfa, 0x0d, //0x000001be cmpb $13, %dl + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000001c1 je LBB0_11 + 0x80, 0xfa, 0x20, //0x000001c7 cmpb $32, %dl + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000001ca je LBB0_11 + 0x80, 0xc2, 0xf7, //0x000001d0 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x000001d3 cmpb $1, %dl + 0x0f, 0x86, 0x14, 0x00, 0x00, 0x00, //0x000001d6 jbe LBB0_11 + 0x49, 0x89, 0xcf, //0x000001dc movq %rcx, %r15 + 0x4c, 0x8b, 0x55, 0x88, //0x000001df movq $-120(%rbp), %r10 + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x000001e3 jmp LBB0_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001e8 .p2align 4, 0x90 + //0x000001f0 LBB0_11 + 0x4c, 0x8d, 0x79, 0x01, //0x000001f0 leaq $1(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x000001f4 cmpq %rax, %r15 + 0x4c, 0x8b, 0x55, 0x88, //0x000001f7 movq $-120(%rbp), %r10 + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x000001fb jae LBB0_15 + 0x43, 0x8a, 0x14, 0x39, //0x00000201 movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000205 cmpb $13, %dl + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00000208 je LBB0_15 + 0x80, 0xfa, 0x20, //0x0000020e cmpb $32, %dl + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000211 je LBB0_15 + 0x80, 0xc2, 0xf7, //0x00000217 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x0000021a cmpb $1, %dl + 0x0f, 0x87, 0x0a, 0x01, 0x00, 0x00, //0x0000021d ja LBB0_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000223 .p2align 4, 0x90 + //0x00000230 LBB0_15 + 0x4c, 0x8d, 0x79, 0x02, //0x00000230 leaq $2(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000234 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000237 jae LBB0_19 + 0x43, 0x8a, 0x14, 0x39, //0x0000023d movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000241 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000244 je LBB0_19 + 0x80, 0xfa, 0x20, //0x0000024a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000024d je LBB0_19 + 0x80, 0xc2, 0xf7, //0x00000253 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000256 cmpb $1, %dl + 0x0f, 0x87, 0xce, 0x00, 0x00, 0x00, //0x00000259 ja LBB0_32 + 0x90, //0x0000025f .p2align 4, 0x90 + //0x00000260 LBB0_19 + 0x4c, 0x8d, 0x79, 0x03, //0x00000260 leaq $3(%rcx), %r15 + 0x49, 0x39, 0xc7, //0x00000264 cmpq %rax, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00000267 jae LBB0_23 + 0x43, 0x8a, 0x14, 0x39, //0x0000026d movb (%r9,%r15), %dl + 0x80, 0xfa, 0x0d, //0x00000271 cmpb $13, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000274 je LBB0_23 + 0x80, 0xfa, 0x20, //0x0000027a cmpb $32, %dl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000027d je LBB0_23 + 0x80, 0xc2, 0xf7, //0x00000283 addb $-9, %dl + 0x80, 0xfa, 0x01, //0x00000286 cmpb $1, %dl + 0x0f, 0x87, 0x9e, 0x00, 0x00, 0x00, //0x00000289 ja LBB0_32 + 0x90, //0x0000028f .p2align 4, 0x90 + //0x00000290 LBB0_23 + 0x48, 0x8d, 0x51, 0x04, //0x00000290 leaq $4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00000294 cmpq %rdx, %rax + 0x0f, 0x86, 0xf4, 0x22, 0x00, 0x00, //0x00000297 jbe LBB0_417 + 0x48, 0x39, 0xd0, //0x0000029d cmpq %rdx, %rax + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000002a0 je LBB0_29 + 0x49, 0x8d, 0x14, 0x01, //0x000002a6 leaq (%r9,%rax), %rdx + 0x48, 0x83, 0xc3, 0x04, //0x000002aa addq $4, %rbx + 0x48, 0x03, 0x8d, 0x68, 0xff, 0xff, 0xff, //0x000002ae addq $-152(%rbp), %rcx + 0x49, 0x89, 0xcf, //0x000002b5 movq %rcx, %r15 + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002b8 movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002c2 .p2align 4, 0x90 + //0x000002d0 LBB0_26 + 0x41, 0x0f, 0xbe, 0x7f, 0xff, //0x000002d0 movsbl $-1(%r15), %edi + 0x83, 0xff, 0x20, //0x000002d5 cmpl $32, %edi + 0x0f, 0x87, 0x42, 0x00, 0x00, 0x00, //0x000002d8 ja LBB0_31 + 0x48, 0x0f, 0xa3, 0xf9, //0x000002de btq %rdi, %rcx + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x000002e2 jae LBB0_31 + 0x49, 0xff, 0xc7, //0x000002e8 incq %r15 + 0x48, 0xff, 0xc3, //0x000002eb incq %rbx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000002ee jne LBB0_26 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000002f4 jmp LBB0_30 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002f9 .p2align 4, 0x90 + //0x00000300 LBB0_29 + 0x4c, 0x01, 0xca, //0x00000300 addq %r9, %rdx + //0x00000303 LBB0_30 + 0x4c, 0x29, 0xca, //0x00000303 subq %r9, %rdx + 0x49, 0x89, 0xd7, //0x00000306 movq %rdx, %r15 + 0x49, 0x39, 0xc7, //0x00000309 cmpq %rax, %r15 + 0x0f, 0x82, 0x1b, 0x00, 0x00, 0x00, //0x0000030c jb LBB0_32 + 0xe9, 0x7d, 0x22, 0x00, 0x00, //0x00000312 jmp LBB0_418 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000317 .p2align 4, 0x90 + //0x00000320 LBB0_31 + 0x4c, 0x03, 0x7d, 0xa8, //0x00000320 addq $-88(%rbp), %r15 + 0x49, 0x39, 0xc7, //0x00000324 cmpq %rax, %r15 + 0x0f, 0x83, 0x67, 0x22, 0x00, 0x00, //0x00000327 jae LBB0_418 + //0x0000032d LBB0_32 + 0x49, 0x8d, 0x4f, 0x01, //0x0000032d leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00000331 movq %rcx, (%rsi) + 0x43, 0x0f, 0xbe, 0x3c, 0x39, //0x00000334 movsbl (%r9,%r15), %edi + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000339 movq $-1, %rax + 0x85, 0xff, //0x00000340 testl %edi, %edi + 0x0f, 0x84, 0x9c, 0x22, 0x00, 0x00, //0x00000342 je LBB0_427 + 0x48, 0x89, 0x4d, 0xc0, //0x00000348 movq %rcx, $-64(%rbp) + 0x4d, 0x89, 0xf8, //0x0000034c movq %r15, %r8 + 0x49, 0xf7, 0xd0, //0x0000034f notq %r8 + 0x49, 0x8d, 0x53, 0xff, //0x00000352 leaq $-1(%r11), %rdx + 0x43, 0x8b, 0x1c, 0xda, //0x00000356 movl (%r10,%r11,8), %ebx + 0x48, 0x8b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x0000035a movq $-136(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00000361 cmpq $-1, %rcx + 0x49, 0x0f, 0x44, 0xcf, //0x00000365 cmoveq %r15, %rcx + 0x48, 0x89, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x00000369 movq %rcx, $-136(%rbp) + 0xff, 0xcb, //0x00000370 decl %ebx + 0x83, 0xfb, 0x05, //0x00000372 cmpl $5, %ebx + 0x0f, 0x87, 0x79, 0x02, 0x00, 0x00, //0x00000375 ja LBB0_66 + 0x48, 0x8d, 0x0d, 0xf6, 0x24, 0x00, 0x00, //0x0000037b leaq $9462(%rip), %rcx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x99, //0x00000382 movslq (%rcx,%rbx,4), %rbx + 0x48, 0x01, 0xcb, //0x00000386 addq %rcx, %rbx + 0xff, 0xe3, //0x00000389 jmpq *%rbx + //0x0000038b LBB0_35 + 0x83, 0xff, 0x2c, //0x0000038b cmpl $44, %edi + 0x0f, 0x84, 0xdb, 0x04, 0x00, 0x00, //0x0000038e je LBB0_102 + 0x83, 0xff, 0x5d, //0x00000394 cmpl $93, %edi + 0x0f, 0x84, 0x3c, 0x02, 0x00, 0x00, //0x00000397 je LBB0_37 + 0xe9, 0x3b, 0x22, 0x00, 0x00, //0x0000039d jmp LBB0_426 + //0x000003a2 LBB0_38 + 0x40, 0x80, 0xff, 0x5d, //0x000003a2 cmpb $93, %dil + 0x0f, 0x84, 0x2d, 0x02, 0x00, 0x00, //0x000003a6 je LBB0_37 + 0x4b, 0xc7, 0x04, 0xda, 0x01, 0x00, 0x00, 0x00, //0x000003ac movq $1, (%r10,%r11,8) + 0x83, 0xff, 0x7b, //0x000003b4 cmpl $123, %edi + 0x0f, 0x86, 0x43, 0x02, 0x00, 0x00, //0x000003b7 jbe LBB0_67 + 0xe9, 0x1b, 0x22, 0x00, 0x00, //0x000003bd jmp LBB0_426 + //0x000003c2 LBB0_40 + 0x40, 0x80, 0xff, 0x22, //0x000003c2 cmpb $34, %dil + 0x0f, 0x85, 0x11, 0x22, 0x00, 0x00, //0x000003c6 jne LBB0_426 + 0x4b, 0xc7, 0x04, 0xda, 0x04, 0x00, 0x00, 0x00, //0x000003cc movq $4, (%r10,%r11,8) + 0x48, 0x8b, 0x45, 0x98, //0x000003d4 movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000003d8 movq $8(%rax), %r10 + 0xf6, 0x45, 0x80, 0x20, //0x000003dc testb $32, $-128(%rbp) + 0x0f, 0x85, 0xab, 0x04, 0x00, 0x00, //0x000003e0 jne LBB0_104 + 0x4d, 0x89, 0xd5, //0x000003e6 movq %r10, %r13 + 0x48, 0x8b, 0x45, 0xc0, //0x000003e9 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc5, //0x000003ed subq %rax, %r13 + 0x0f, 0x84, 0xd1, 0x23, 0x00, 0x00, //0x000003f0 je LBB0_462 + 0x4d, 0x8d, 0x1c, 0x01, //0x000003f6 leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x000003fa cmpq $64, %r13 + 0x0f, 0x82, 0xb4, 0x1b, 0x00, 0x00, //0x000003fe jb LBB0_355 + 0x44, 0x89, 0xe9, //0x00000404 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000407 andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb8, //0x0000040a movq %rcx, $-72(%rbp) + 0x4b, 0x8d, 0x4c, 0x02, 0xc0, //0x0000040e leaq $-64(%r10,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000413 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000417 addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x90, //0x0000041a addq $-112(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000041e movq %rcx, $-80(%rbp) + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000422 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00000429 xorl %r8d, %r8d + 0x90, 0x90, 0x90, 0x90, //0x0000042c .p2align 4, 0x90 + //0x00000430 LBB0_45 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000430 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000435 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x0000043b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000441 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000447 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000044b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x0000044f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000453 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000457 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x0000045b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x0000045f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000463 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000467 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x0000046b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x0000046f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000473 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000477 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000047b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x0000047f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000483 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000487 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x0000048b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x00000490 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00000494 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x00000499 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x0000049d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x000004a1 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000004a5 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x000004a8 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x000004ab shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x000004af shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x000004b3 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x000004b7 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x000004ba orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x000004bd orq %r12, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x000004c0 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000004c4 jne LBB0_47 + 0x48, 0x85, 0xd2, //0x000004ca testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000004cd jne LBB0_56 + //0x000004d3 LBB0_47 + 0x48, 0x09, 0xdf, //0x000004d3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x000004d6 movq %rdx, %rax + 0x4c, 0x09, 0xc0, //0x000004d9 orq %r8, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000004dc jne LBB0_57 + //0x000004e2 LBB0_48 + 0x48, 0x85, 0xff, //0x000004e2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000004e5 jne LBB0_58 + //0x000004eb LBB0_49 + 0x49, 0x83, 0xc5, 0xc0, //0x000004eb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x000004ef addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x000004f3 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x000004f7 ja LBB0_45 + 0xe9, 0x41, 0x13, 0x00, 0x00, //0x000004fd jmp LBB0_50 + //0x00000502 LBB0_56 + 0x4c, 0x89, 0xd8, //0x00000502 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000505 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xca, //0x00000509 bsfq %rdx, %r9 + 0x49, 0x01, 0xc1, //0x0000050d addq %rax, %r9 + 0x48, 0x09, 0xdf, //0x00000510 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000513 movq %rdx, %rax + 0x4c, 0x09, 0xc0, //0x00000516 orq %r8, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000519 je LBB0_48 + //0x0000051f LBB0_57 + 0x4c, 0x89, 0xc0, //0x0000051f movq %r8, %rax + 0x48, 0xf7, 0xd0, //0x00000522 notq %rax + 0x48, 0x21, 0xd0, //0x00000525 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000528 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc1, //0x0000052c orq %r8, %rcx + 0x48, 0x89, 0xce, //0x0000052f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000532 notq %rsi + 0x48, 0x21, 0xd6, //0x00000535 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000538 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000542 andq %rdx, %rsi + 0x45, 0x31, 0xc0, //0x00000545 xorl %r8d, %r8d + 0x48, 0x01, 0xc6, //0x00000548 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc0, //0x0000054b setb %r8b + 0x48, 0x01, 0xf6, //0x0000054f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000552 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x0000055c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x0000055f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000562 notq %rsi + 0x48, 0x21, 0xf7, //0x00000565 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000568 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x0000056b je LBB0_49 + //0x00000571 LBB0_58 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000571 bsfq %rdi, %rax + //0x00000575 LBB0_59 + 0x4c, 0x03, 0x5d, 0xa0, //0x00000575 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000579 addq %rax, %r11 + 0x48, 0x8b, 0x7d, 0xc0, //0x0000057c movq $-64(%rbp), %rdi + 0xe9, 0xfd, 0x09, 0x00, 0x00, //0x00000580 jmp LBB0_188 + //0x00000585 LBB0_60 + 0x40, 0x80, 0xff, 0x3a, //0x00000585 cmpb $58, %dil + 0x0f, 0x85, 0x4e, 0x20, 0x00, 0x00, //0x00000589 jne LBB0_426 + 0x4b, 0xc7, 0x04, 0xda, 0x00, 0x00, 0x00, 0x00, //0x0000058f movq $0, (%r10,%r11,8) + 0xe9, 0xe4, 0xfb, 0xff, 0xff, //0x00000597 jmp LBB0_3 + //0x0000059c LBB0_62 + 0x83, 0xff, 0x2c, //0x0000059c cmpl $44, %edi + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x0000059f jne LBB0_63 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x000005a5 cmpq $4095, %r11 + 0x0f, 0x8f, 0xee, 0x1f, 0x00, 0x00, //0x000005ac jg LBB0_439 + 0x49, 0x8d, 0x43, 0x01, //0x000005b2 leaq $1(%r11), %rax + 0x49, 0x89, 0x02, //0x000005b6 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xda, 0x08, 0x03, 0x00, 0x00, 0x00, //0x000005b9 movq $3, $8(%r10,%r11,8) + 0xe9, 0xb9, 0xfb, 0xff, 0xff, //0x000005c2 jmp LBB0_3 + //0x000005c7 LBB0_64 + 0x83, 0xff, 0x22, //0x000005c7 cmpl $34, %edi + 0x0f, 0x84, 0xd0, 0x04, 0x00, 0x00, //0x000005ca je LBB0_127 + //0x000005d0 LBB0_63 + 0x83, 0xff, 0x7d, //0x000005d0 cmpl $125, %edi + 0x0f, 0x85, 0x04, 0x20, 0x00, 0x00, //0x000005d3 jne LBB0_426 + //0x000005d9 LBB0_37 + 0x49, 0x89, 0x12, //0x000005d9 movq %rdx, (%r10) + 0x49, 0x89, 0xd3, //0x000005dc movq %rdx, %r11 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000005df movq $-136(%rbp), %rax + 0x48, 0x85, 0xd2, //0x000005e6 testq %rdx, %rdx + 0x0f, 0x85, 0xb3, 0xfb, 0xff, 0xff, //0x000005e9 jne LBB0_6 + 0xe9, 0xf0, 0x1f, 0x00, 0x00, //0x000005ef jmp LBB0_427 + //0x000005f4 LBB0_66 + 0x49, 0x89, 0x12, //0x000005f4 movq %rdx, (%r10) + 0x83, 0xff, 0x7b, //0x000005f7 cmpl $123, %edi + 0x0f, 0x87, 0xdd, 0x1f, 0x00, 0x00, //0x000005fa ja LBB0_426 + //0x00000600 LBB0_67 + 0x4f, 0x8d, 0x14, 0x39, //0x00000600 leaq (%r9,%r15), %r10 + 0x89, 0xf9, //0x00000604 movl %edi, %ecx + 0x48, 0x8d, 0x15, 0x83, 0x22, 0x00, 0x00, //0x00000606 leaq $8835(%rip), %rdx /* LJTI0_1+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x0000060d movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x00000611 addq %rdx, %rcx + 0xff, 0xe1, //0x00000614 jmpq *%rcx + //0x00000616 LBB0_68 + 0x48, 0x8b, 0x45, 0x98, //0x00000616 movq $-104(%rbp), %rax + 0x48, 0x8b, 0x78, 0x08, //0x0000061a movq $8(%rax), %rdi + 0x4c, 0x29, 0xff, //0x0000061e subq %r15, %rdi + 0x0f, 0x84, 0x9e, 0x1f, 0x00, 0x00, //0x00000621 je LBB0_421 + 0x41, 0x80, 0x3a, 0x30, //0x00000627 cmpb $48, (%r10) + 0x4c, 0x8b, 0x5d, 0xc0, //0x0000062b movq $-64(%rbp), %r11 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000062f jne LBB0_73 + 0x48, 0x83, 0xff, 0x01, //0x00000635 cmpq $1, %rdi + 0x0f, 0x84, 0xb3, 0x16, 0x00, 0x00, //0x00000639 je LBB0_336 + 0x43, 0x8a, 0x04, 0x19, //0x0000063f movb (%r9,%r11), %al + 0x04, 0xd2, //0x00000643 addb $-46, %al + 0x3c, 0x37, //0x00000645 cmpb $55, %al + 0x0f, 0x87, 0xa5, 0x16, 0x00, 0x00, //0x00000647 ja LBB0_336 + 0x0f, 0xb6, 0xc0, //0x0000064d movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000650 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000065a btq %rax, %rcx + 0x0f, 0x83, 0x8e, 0x16, 0x00, 0x00, //0x0000065e jae LBB0_336 + //0x00000664 LBB0_73 + 0x48, 0x83, 0xff, 0x10, //0x00000664 cmpq $16, %rdi + 0x0f, 0x82, 0x86, 0x18, 0x00, 0x00, //0x00000668 jb LBB0_344 + 0x4c, 0x8d, 0x4f, 0xf0, //0x0000066e leaq $-16(%rdi), %r9 + 0x4c, 0x89, 0xc8, //0x00000672 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00000675 andq $-16, %rax + 0x4e, 0x8d, 0x5c, 0x10, 0x10, //0x00000679 leaq $16(%rax,%r10), %r11 + 0x41, 0x83, 0xe1, 0x0f, //0x0000067e andl $15, %r9d + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000682 movq $-1, $-64(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000068a movq $-1, %r12 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00000691 movq $-1, %r13 + 0x4d, 0x89, 0xd6, //0x00000698 movq %r10, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000069b .p2align 4, 0x90 + //0x000006a0 LBB0_75 + 0xf3, 0x41, 0x0f, 0x6f, 0x1e, //0x000006a0 movdqu (%r14), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006a5 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x000006a9 pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x000006ae movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x000006b3 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x000006b7 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006bb movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000006bf pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000006c4 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000006c8 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000006cd por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000006d1 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000006d5 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000006d9 pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000006de pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000006e3 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0xeb, 0xe3, //0x000006e7 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000006eb por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000006ef por %xmm4, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc3, //0x000006f3 pmovmskb %xmm3, %r8d + 0x66, 0x0f, 0xd7, 0xd6, //0x000006f8 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x000006fc pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000700 movl $2863311530, %esi + 0x48, 0x81, 0xc6, 0x55, 0x55, 0x55, 0x55, //0x00000705 addq $1431655765, %rsi + 0x48, 0x31, 0xce, //0x0000070c xorq %rcx, %rsi + 0x48, 0x0f, 0xbc, 0xce, //0x0000070f bsfq %rsi, %rcx + 0x83, 0xf9, 0x10, //0x00000713 cmpl $16, %ecx + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000716 je LBB0_77 + 0xbe, 0xff, 0xff, 0xff, 0xff, //0x0000071c movl $-1, %esi + 0xd3, 0xe6, //0x00000721 shll %cl, %esi + 0xf7, 0xd6, //0x00000723 notl %esi + 0x41, 0x21, 0xf0, //0x00000725 andl %esi, %r8d + 0x21, 0xf0, //0x00000728 andl %esi, %eax + 0x21, 0xd6, //0x0000072a andl %edx, %esi + 0x89, 0xf2, //0x0000072c movl %esi, %edx + //0x0000072e LBB0_77 + 0x41, 0x8d, 0x70, 0xff, //0x0000072e leal $-1(%r8), %esi + 0x44, 0x21, 0xc6, //0x00000732 andl %r8d, %esi + 0x0f, 0x85, 0xd3, 0x10, 0x00, 0x00, //0x00000735 jne LBB0_306 + 0x8d, 0x70, 0xff, //0x0000073b leal $-1(%rax), %esi + 0x21, 0xc6, //0x0000073e andl %eax, %esi + 0x0f, 0x85, 0xc8, 0x10, 0x00, 0x00, //0x00000740 jne LBB0_306 + 0x8d, 0x72, 0xff, //0x00000746 leal $-1(%rdx), %esi + 0x21, 0xd6, //0x00000749 andl %edx, %esi + 0x0f, 0x85, 0xbd, 0x10, 0x00, 0x00, //0x0000074b jne LBB0_306 + 0x45, 0x85, 0xc0, //0x00000751 testl %r8d, %r8d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000754 je LBB0_83 + 0x4c, 0x89, 0xf3, //0x0000075a movq %r14, %rbx + 0x4c, 0x29, 0xd3, //0x0000075d subq %r10, %rbx + 0x41, 0x0f, 0xbc, 0xf0, //0x00000760 bsfl %r8d, %esi + 0x48, 0x01, 0xde, //0x00000764 addq %rbx, %rsi + 0x49, 0x83, 0xfd, 0xff, //0x00000767 cmpq $-1, %r13 + 0x0f, 0x85, 0xb6, 0x14, 0x00, 0x00, //0x0000076b jne LBB0_322 + 0x49, 0x89, 0xf5, //0x00000771 movq %rsi, %r13 + //0x00000774 LBB0_83 + 0x85, 0xc0, //0x00000774 testl %eax, %eax + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00000776 je LBB0_86 + 0x4c, 0x89, 0xf6, //0x0000077c movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x0000077f subq %r10, %rsi + 0x0f, 0xbc, 0xc0, //0x00000782 bsfl %eax, %eax + 0x48, 0x01, 0xf0, //0x00000785 addq %rsi, %rax + 0x49, 0x83, 0xfc, 0xff, //0x00000788 cmpq $-1, %r12 + 0x0f, 0x85, 0x4d, 0x12, 0x00, 0x00, //0x0000078c jne LBB0_311 + 0x49, 0x89, 0xc4, //0x00000792 movq %rax, %r12 + //0x00000795 LBB0_86 + 0x85, 0xd2, //0x00000795 testl %edx, %edx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00000797 je LBB0_89 + 0x4c, 0x89, 0xf6, //0x0000079d movq %r14, %rsi + 0x4c, 0x29, 0xd6, //0x000007a0 subq %r10, %rsi + 0x0f, 0xbc, 0xc2, //0x000007a3 bsfl %edx, %eax + 0x48, 0x01, 0xf0, //0x000007a6 addq %rsi, %rax + 0x48, 0x83, 0x7d, 0xc0, 0xff, //0x000007a9 cmpq $-1, $-64(%rbp) + 0x0f, 0x85, 0x2b, 0x12, 0x00, 0x00, //0x000007ae jne LBB0_311 + 0x48, 0x89, 0x45, 0xc0, //0x000007b4 movq %rax, $-64(%rbp) + //0x000007b8 LBB0_89 + 0x83, 0xf9, 0x10, //0x000007b8 cmpl $16, %ecx + 0x0f, 0x85, 0xcf, 0x04, 0x00, 0x00, //0x000007bb jne LBB0_151 + 0x49, 0x83, 0xc6, 0x10, //0x000007c1 addq $16, %r14 + 0x48, 0x83, 0xc7, 0xf0, //0x000007c5 addq $-16, %rdi + 0x48, 0x83, 0xff, 0x0f, //0x000007c9 cmpq $15, %rdi + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000007cd ja LBB0_75 + 0x4d, 0x85, 0xc9, //0x000007d3 testq %r9, %r9 + 0x48, 0x8b, 0x7d, 0xc0, //0x000007d6 movq $-64(%rbp), %rdi + 0x0f, 0x84, 0xba, 0x04, 0x00, 0x00, //0x000007da je LBB0_152 + //0x000007e0 LBB0_92 + 0x4b, 0x8d, 0x04, 0x0b, //0x000007e0 leaq (%r11,%r9), %rax + 0x48, 0x8d, 0x35, 0x81, 0x23, 0x00, 0x00, //0x000007e4 leaq $9089(%rip), %rsi /* LJTI0_3+0(%rip) */ + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x000007eb jmp LBB0_96 + //0x000007f0 LBB0_93 + 0x49, 0x89, 0xcb, //0x000007f0 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x000007f3 subq %r10, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x000007f6 cmpq $-1, %r12 + 0x0f, 0x85, 0xdb, 0x14, 0x00, 0x00, //0x000007fa jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000800 decq %r11 + 0x4d, 0x89, 0xdc, //0x00000803 movq %r11, %r12 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000806 .p2align 4, 0x90 + //0x00000810 LBB0_95 + 0x49, 0x89, 0xcb, //0x00000810 movq %rcx, %r11 + 0x49, 0xff, 0xc9, //0x00000813 decq %r9 + 0x0f, 0x84, 0xce, 0x11, 0x00, 0x00, //0x00000816 je LBB0_312 + //0x0000081c LBB0_96 + 0x41, 0x0f, 0xbe, 0x13, //0x0000081c movsbl (%r11), %edx + 0x83, 0xc2, 0xd5, //0x00000820 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00000823 cmpl $58, %edx + 0x0f, 0x87, 0x6e, 0x04, 0x00, 0x00, //0x00000826 ja LBB0_152 + 0x49, 0x8d, 0x4b, 0x01, //0x0000082c leaq $1(%r11), %rcx + 0x48, 0x63, 0x14, 0x96, //0x00000830 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00000834 addq %rsi, %rdx + 0xff, 0xe2, //0x00000837 jmpq *%rdx + //0x00000839 LBB0_98 + 0x49, 0x89, 0xcb, //0x00000839 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x0000083c subq %r10, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000083f cmpq $-1, %rdi + 0x0f, 0x85, 0x92, 0x14, 0x00, 0x00, //0x00000843 jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000849 decq %r11 + 0x4c, 0x89, 0xdf, //0x0000084c movq %r11, %rdi + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000084f jmp LBB0_95 + //0x00000854 LBB0_100 + 0x49, 0x89, 0xcb, //0x00000854 movq %rcx, %r11 + 0x4d, 0x29, 0xd3, //0x00000857 subq %r10, %r11 + 0x49, 0x83, 0xfd, 0xff, //0x0000085a cmpq $-1, %r13 + 0x0f, 0x85, 0x77, 0x14, 0x00, 0x00, //0x0000085e jne LBB0_333 + 0x49, 0xff, 0xcb, //0x00000864 decq %r11 + 0x4d, 0x89, 0xdd, //0x00000867 movq %r11, %r13 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000086a jmp LBB0_95 + //0x0000086f LBB0_102 + 0x49, 0x81, 0xfb, 0xff, 0x0f, 0x00, 0x00, //0x0000086f cmpq $4095, %r11 + 0x0f, 0x8f, 0x24, 0x1d, 0x00, 0x00, //0x00000876 jg LBB0_439 + 0x49, 0x8d, 0x43, 0x01, //0x0000087c leaq $1(%r11), %rax + 0x49, 0x89, 0x02, //0x00000880 movq %rax, (%r10) + 0x4b, 0xc7, 0x44, 0xda, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000883 movq $0, $8(%r10,%r11,8) + 0xe9, 0xef, 0xf8, 0xff, 0xff, //0x0000088c jmp LBB0_3 + //0x00000891 LBB0_104 + 0x4c, 0x89, 0xd0, //0x00000891 movq %r10, %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00000894 movq $-64(%rbp), %rcx + 0x48, 0x29, 0xc8, //0x00000898 subq %rcx, %rax + 0x0f, 0x84, 0x2e, 0x1f, 0x00, 0x00, //0x0000089b je LBB0_463 + 0x4d, 0x8d, 0x1c, 0x09, //0x000008a1 leaq (%r9,%rcx), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x000008a5 cmpq $64, %rax + 0x0f, 0x82, 0x22, 0x17, 0x00, 0x00, //0x000008a9 jb LBB0_356 + 0x89, 0xc2, //0x000008af movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x000008b1 andl $63, %edx + 0x48, 0x89, 0x55, 0xb8, //0x000008b4 movq %rdx, $-72(%rbp) + 0x4f, 0x8d, 0x44, 0x02, 0xc0, //0x000008b8 leaq $-64(%r10,%r8), %r8 + 0x49, 0x83, 0xe0, 0xc0, //0x000008bd andq $-64, %r8 + 0x49, 0x01, 0xc8, //0x000008c1 addq %rcx, %r8 + 0x4c, 0x03, 0x45, 0x90, //0x000008c4 addq $-112(%rbp), %r8 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000008c8 movq $-1, %r9 + 0x31, 0xdb, //0x000008cf xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008d1 .p2align 4, 0x90 + //0x000008e0 LBB0_107 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x000008e0 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x000008e5 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x000008eb movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x000008f1 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x000008f7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000008fb pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xf3, //0x000008ff pmovmskb %xmm3, %esi + 0x66, 0x0f, 0x6f, 0xde, //0x00000903 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000907 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x0000090b pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x0000090f movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000913 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000917 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x0000091b movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000091f pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xe3, //0x00000923 pmovmskb %xmm3, %r12d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000928 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x0000092c pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000930 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000935 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000939 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x0000093d pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000941 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000945 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000949 shlq $16, %rdi + 0x48, 0x09, 0xfe, //0x0000094d orq %rdi, %rsi + 0x66, 0x0f, 0xd7, 0xfb, //0x00000950 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000954 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000958 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x0000095c shlq $32, %rcx + 0x48, 0x09, 0xce, //0x00000960 orq %rcx, %rsi + 0x66, 0x0f, 0xd7, 0xcb, //0x00000963 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000967 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x0000096b pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x0000096f pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000974 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000978 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000097c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000097f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000983 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000987 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000098b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00000990 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x00000994 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00000998 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x0000099b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x0000099f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x000009a3 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x000009a7 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x000009ac pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x000009b0 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x000009b4 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x000009b7 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x000009bb movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x000009bf pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x000009c3 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x000009c8 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x000009cc shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x000009d0 orq %rdi, %rdx + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x000009d3 pmovmskb %xmm7, %r14d + 0x49, 0xc1, 0xe4, 0x30, //0x000009d8 shlq $48, %r12 + 0x48, 0xc1, 0xe1, 0x20, //0x000009dc shlq $32, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x000009e0 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000009e4 jne LBB0_109 + 0x4d, 0x85, 0xed, //0x000009ea testq %r13, %r13 + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000009ed jne LBB0_124 + //0x000009f3 LBB0_109 + 0x49, 0xc1, 0xe6, 0x30, //0x000009f3 shlq $48, %r14 + 0x48, 0x09, 0xca, //0x000009f7 orq %rcx, %rdx + 0x4c, 0x09, 0xe6, //0x000009fa orq %r12, %rsi + 0x4c, 0x89, 0xe9, //0x000009fd movq %r13, %rcx + 0x48, 0x09, 0xd9, //0x00000a00 orq %rbx, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000a03 jne LBB0_146 + 0x4c, 0x09, 0xf2, //0x00000a09 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000a0c testq %rsi, %rsi + 0x0f, 0x85, 0x54, 0x02, 0x00, 0x00, //0x00000a0f jne LBB0_147 + //0x00000a15 LBB0_111 + 0x48, 0x85, 0xd2, //0x00000a15 testq %rdx, %rdx + 0x0f, 0x85, 0xf6, 0x1b, 0x00, 0x00, //0x00000a18 jne LBB0_430 + 0x48, 0x83, 0xc0, 0xc0, //0x00000a1e addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000a22 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000a26 cmpq $63, %rax + 0x0f, 0x87, 0xb0, 0xfe, 0xff, 0xff, //0x00000a2a ja LBB0_107 + 0xe9, 0x92, 0x0e, 0x00, 0x00, //0x00000a30 jmp LBB0_113 + //0x00000a35 LBB0_146 + 0x48, 0x89, 0xd9, //0x00000a35 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000a38 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000a3b andq %r13, %rcx + 0x4c, 0x8d, 0x24, 0x09, //0x00000a3e leaq (%rcx,%rcx), %r12 + 0x49, 0x09, 0xdc, //0x00000a42 orq %rbx, %r12 + 0x4c, 0x89, 0xe7, //0x00000a45 movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000a48 notq %rdi + 0x4c, 0x21, 0xef, //0x00000a4b andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000a4e movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x00000a58 andq %rbx, %rdi + 0x31, 0xdb, //0x00000a5b xorl %ebx, %ebx + 0x48, 0x01, 0xcf, //0x00000a5d addq %rcx, %rdi + 0x0f, 0x92, 0xc3, //0x00000a60 setb %bl + 0x48, 0x01, 0xff, //0x00000a63 addq %rdi, %rdi + 0x48, 0xb9, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000a66 movabsq $6148914691236517205, %rcx + 0x48, 0x31, 0xcf, //0x00000a70 xorq %rcx, %rdi + 0x4c, 0x21, 0xe7, //0x00000a73 andq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000a76 notq %rdi + 0x48, 0x21, 0xfe, //0x00000a79 andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x00000a7c orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00000a7f testq %rsi, %rsi + 0x0f, 0x84, 0x8d, 0xff, 0xff, 0xff, //0x00000a82 je LBB0_111 + 0xe9, 0xdc, 0x01, 0x00, 0x00, //0x00000a88 jmp LBB0_147 + //0x00000a8d LBB0_124 + 0x4c, 0x89, 0xdf, //0x00000a8d movq %r11, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x00000a90 subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xcd, //0x00000a94 bsfq %r13, %r9 + 0x49, 0x01, 0xf9, //0x00000a98 addq %rdi, %r9 + 0xe9, 0x53, 0xff, 0xff, 0xff, //0x00000a9b jmp LBB0_109 + //0x00000aa0 LBB0_127 + 0x4b, 0xc7, 0x04, 0xda, 0x02, 0x00, 0x00, 0x00, //0x00000aa0 movq $2, (%r10,%r11,8) + 0x48, 0x8b, 0x45, 0x98, //0x00000aa8 movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x00000aac movq $8(%rax), %r10 + 0xf6, 0x45, 0x80, 0x20, //0x00000ab0 testb $32, $-128(%rbp) + 0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x00000ab4 jne LBB0_161 + 0x4d, 0x89, 0xd5, //0x00000aba movq %r10, %r13 + 0x48, 0x8b, 0x45, 0xc0, //0x00000abd movq $-64(%rbp), %rax + 0x49, 0x29, 0xc5, //0x00000ac1 subq %rax, %r13 + 0x0f, 0x84, 0x31, 0x1d, 0x00, 0x00, //0x00000ac4 je LBB0_464 + 0x4d, 0x8d, 0x1c, 0x01, //0x00000aca leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfd, 0x40, //0x00000ace cmpq $64, %r13 + 0x0f, 0x82, 0x60, 0x15, 0x00, 0x00, //0x00000ad2 jb LBB0_362 + 0x44, 0x89, 0xe9, //0x00000ad8 movl %r13d, %ecx + 0x83, 0xe1, 0x3f, //0x00000adb andl $63, %ecx + 0x48, 0x89, 0x4d, 0xb0, //0x00000ade movq %rcx, $-80(%rbp) + 0x4b, 0x8d, 0x4c, 0x02, 0xc0, //0x00000ae2 leaq $-64(%r10,%r8), %rcx + 0x48, 0x83, 0xe1, 0xc0, //0x00000ae7 andq $-64, %rcx + 0x48, 0x01, 0xc1, //0x00000aeb addq %rax, %rcx + 0x48, 0x03, 0x4d, 0x90, //0x00000aee addq $-112(%rbp), %rcx + 0x48, 0x89, 0x8d, 0x70, 0xff, 0xff, 0xff, //0x00000af2 movq %rcx, $-144(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000af9 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00000b00 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b03 .p2align 4, 0x90 + //0x00000b10 LBB0_131 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00000b10 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00000b15 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x00000b1b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x00000b21 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x00000b27 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b2b pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x00000b2f pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x00000b33 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b37 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x00000b3b pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x00000b3f movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b43 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x00000b47 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x00000b4b movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x00000b4f pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000b53 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00000b57 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000b5b pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x00000b5f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00000b63 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x00000b67 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xf5, //0x00000b6b pmovmskb %xmm5, %r14d + 0x66, 0x0f, 0x74, 0xf1, //0x00000b70 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00000b74 pmovmskb %xmm6, %r12d + 0x48, 0xc1, 0xe3, 0x30, //0x00000b79 shlq $48, %rbx + 0x48, 0xc1, 0xe6, 0x20, //0x00000b7d shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00000b81 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00000b85 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00000b88 orq %rsi, %rdi + 0x49, 0xc1, 0xe4, 0x30, //0x00000b8b shlq $48, %r12 + 0x49, 0xc1, 0xe6, 0x20, //0x00000b8f shlq $32, %r14 + 0x48, 0xc1, 0xe0, 0x10, //0x00000b93 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00000b97 orq %rax, %rdx + 0x4c, 0x09, 0xf2, //0x00000b9a orq %r14, %rdx + 0x4c, 0x09, 0xe2, //0x00000b9d orq %r12, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00000ba0 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000ba4 jne LBB0_133 + 0x48, 0x85, 0xd2, //0x00000baa testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x00000bad jne LBB0_142 + //0x00000bb3 LBB0_133 + 0x48, 0x09, 0xdf, //0x00000bb3 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000bb6 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000bb9 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000bbc jne LBB0_143 + //0x00000bc2 LBB0_134 + 0x48, 0x85, 0xff, //0x00000bc2 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000bc5 jne LBB0_144 + //0x00000bcb LBB0_135 + 0x49, 0x83, 0xc5, 0xc0, //0x00000bcb addq $-64, %r13 + 0x49, 0x83, 0xc3, 0x40, //0x00000bcf addq $64, %r11 + 0x49, 0x83, 0xfd, 0x3f, //0x00000bd3 cmpq $63, %r13 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00000bd7 ja LBB0_131 + 0xe9, 0x24, 0x0e, 0x00, 0x00, //0x00000bdd jmp LBB0_136 + //0x00000be2 LBB0_142 + 0x4c, 0x89, 0xd8, //0x00000be2 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00000be5 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00000be9 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00000bed addq %rax, %r8 + 0x48, 0x09, 0xdf, //0x00000bf0 orq %rbx, %rdi + 0x48, 0x89, 0xd0, //0x00000bf3 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00000bf6 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00000bf9 je LBB0_134 + //0x00000bff LBB0_143 + 0x4c, 0x89, 0xc8, //0x00000bff movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00000c02 notq %rax + 0x48, 0x21, 0xd0, //0x00000c05 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00000c08 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x00000c0c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x00000c0f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c12 notq %rsi + 0x48, 0x21, 0xd6, //0x00000c15 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000c18 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x00000c22 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x00000c25 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x00000c28 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x00000c2b setb %r9b + 0x48, 0x01, 0xf6, //0x00000c2f addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c32 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x00000c3c xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x00000c3f andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00000c42 notq %rsi + 0x48, 0x21, 0xf7, //0x00000c45 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x00000c48 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00000c4b je LBB0_135 + //0x00000c51 LBB0_144 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000c51 bsfq %rdi, %rax + //0x00000c55 LBB0_145 + 0x4c, 0x03, 0x5d, 0xa0, //0x00000c55 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00000c59 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00000c5c movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000c60 movq $-48(%rbp), %r9 + 0xe9, 0x84, 0x03, 0x00, 0x00, //0x00000c64 jmp LBB0_195 + //0x00000c69 LBB0_147 + 0x48, 0x0f, 0xbc, 0xc6, //0x00000c69 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00000c6d testq %rdx, %rdx + 0x0f, 0x84, 0xf1, 0x02, 0x00, 0x00, //0x00000c70 je LBB0_186 + 0x48, 0x0f, 0xbc, 0xca, //0x00000c76 bsfq %rdx, %rcx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000c7a movq $-64(%rbp), %rdi + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000c7e subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000c82 cmpq %rax, %rcx + 0x0f, 0x83, 0xf2, 0x02, 0x00, 0x00, //0x00000c85 jae LBB0_187 + 0xe9, 0x47, 0x1b, 0x00, 0x00, //0x00000c8b jmp LBB0_149 + //0x00000c90 LBB0_151 + 0x49, 0x01, 0xce, //0x00000c90 addq %rcx, %r14 + 0x4d, 0x89, 0xf3, //0x00000c93 movq %r14, %r11 + 0x48, 0x8b, 0x7d, 0xc0, //0x00000c96 movq $-64(%rbp), %rdi + //0x00000c9a LBB0_152 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000c9a movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x00000ca1 testq %r12, %r12 + 0x48, 0x8b, 0x75, 0xc8, //0x00000ca4 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0x26, 0x19, 0x00, 0x00, //0x00000ca8 je LBB0_424 + //0x00000cae LBB0_153 + 0x48, 0x85, 0xff, //0x00000cae testq %rdi, %rdi + 0x0f, 0x84, 0x1d, 0x19, 0x00, 0x00, //0x00000cb1 je LBB0_424 + 0x4d, 0x85, 0xed, //0x00000cb7 testq %r13, %r13 + 0x0f, 0x84, 0x14, 0x19, 0x00, 0x00, //0x00000cba je LBB0_424 + 0x4d, 0x29, 0xd3, //0x00000cc0 subq %r10, %r11 + 0x49, 0x8d, 0x43, 0xff, //0x00000cc3 leaq $-1(%r11), %rax + 0x49, 0x39, 0xc4, //0x00000cc7 cmpq %rax, %r12 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00000cca je LBB0_422 + 0x49, 0x39, 0xc5, //0x00000cd0 cmpq %rax, %r13 + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x00000cd3 je LBB0_422 + 0x48, 0x39, 0xc7, //0x00000cd9 cmpq %rax, %rdi + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x00000cdc je LBB0_422 + 0x48, 0x85, 0xff, //0x00000ce2 testq %rdi, %rdi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000ce5 movq $-48(%rbp), %r9 + 0x0f, 0x8e, 0xb8, 0x02, 0x00, 0x00, //0x00000ce9 jle LBB0_190 + 0x48, 0x8d, 0x47, 0xff, //0x00000cef leaq $-1(%rdi), %rax + 0x49, 0x39, 0xc4, //0x00000cf3 cmpq %rax, %r12 + 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00000cf6 je LBB0_190 + 0x48, 0xf7, 0xd7, //0x00000cfc notq %rdi + 0x49, 0x89, 0xfb, //0x00000cff movq %rdi, %r11 + 0x4d, 0x85, 0xdb, //0x00000d02 testq %r11, %r11 + 0x0f, 0x89, 0xe4, 0x0f, 0x00, 0x00, //0x00000d05 jns LBB0_335 + 0xe9, 0xc1, 0x18, 0x00, 0x00, //0x00000d0b jmp LBB0_423 + //0x00000d10 LBB0_422 + 0x49, 0xf7, 0xdb, //0x00000d10 negq %r11 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000d13 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00000d17 testq %r11, %r11 + 0x0f, 0x89, 0xcf, 0x0f, 0x00, 0x00, //0x00000d1a jns LBB0_335 + 0xe9, 0xac, 0x18, 0x00, 0x00, //0x00000d20 jmp LBB0_423 + //0x00000d25 LBB0_161 + 0x4c, 0x89, 0xd0, //0x00000d25 movq %r10, %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00000d28 movq $-64(%rbp), %rcx + 0x48, 0x29, 0xc8, //0x00000d2c subq %rcx, %rax + 0x0f, 0x84, 0xce, 0x1a, 0x00, 0x00, //0x00000d2f je LBB0_465 + 0x4d, 0x8d, 0x1c, 0x09, //0x00000d35 leaq (%r9,%rcx), %r11 + 0x48, 0x83, 0xf8, 0x40, //0x00000d39 cmpq $64, %rax + 0x4c, 0x89, 0x55, 0xb8, //0x00000d3d movq %r10, $-72(%rbp) + 0x0f, 0x82, 0x0a, 0x13, 0x00, 0x00, //0x00000d41 jb LBB0_363 + 0x89, 0xc2, //0x00000d47 movl %eax, %edx + 0x83, 0xe2, 0x3f, //0x00000d49 andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00000d4c movq %rdx, $-80(%rbp) + 0x4f, 0x8d, 0x64, 0x02, 0xc0, //0x00000d50 leaq $-64(%r10,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00000d55 andq $-64, %r12 + 0x49, 0x01, 0xcc, //0x00000d59 addq %rcx, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00000d5c addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000d60 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00000d67 xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d6a .p2align 4, 0x90 + //0x00000d70 LBB0_164 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00000d70 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00000d75 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x00000d7b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00000d81 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00000d87 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d8b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x00000d8f pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xde, //0x00000d93 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000d97 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00000d9b pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdc, //0x00000d9f movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000da3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00000da7 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x00000dab movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00000daf pcmpeqb %xmm0, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00000db3 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xdd, //0x00000db8 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dbc pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x00000dc0 pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x00000dc5 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dc9 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x00000dcd pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x00000dd1 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000dd5 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe7, 0x10, //0x00000dd9 shlq $16, %rdi + 0x48, 0x09, 0xfb, //0x00000ddd orq %rdi, %rbx + 0x66, 0x0f, 0xd7, 0xfb, //0x00000de0 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdf, //0x00000de4 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x00000de8 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x20, //0x00000dec shlq $32, %rcx + 0x48, 0x09, 0xcb, //0x00000df0 orq %rcx, %rbx + 0x66, 0x0f, 0xd7, 0xcb, //0x00000df3 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000df7 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x00000dfb pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x00000dff pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00000e04 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00000e08 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x00000e0c orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x00000e0f pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e13 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00000e17 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x00000e1b pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x00000e20 pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe7, 0x20, //0x00000e24 shlq $32, %rdi + 0x49, 0x09, 0xfd, //0x00000e28 orq %rdi, %r13 + 0x66, 0x0f, 0xd7, 0xfe, //0x00000e2b pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xda, //0x00000e2f movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00000e33 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00000e37 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00000e3c pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe1, 0x30, //0x00000e40 shlq $48, %rcx + 0x49, 0x09, 0xcd, //0x00000e44 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00000e47 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x00000e4b movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x00000e4f pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00000e53 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00000e58 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x00000e5c shlq $16, %rdi + 0x48, 0x09, 0xfa, //0x00000e60 orq %rdi, %rdx + 0x66, 0x0f, 0xd7, 0xff, //0x00000e63 pmovmskb %xmm7, %edi + 0x49, 0xc1, 0xe6, 0x30, //0x00000e67 shlq $48, %r14 + 0x48, 0xc1, 0xe1, 0x20, //0x00000e6b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00000e6f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000e73 jne LBB0_166 + 0x4d, 0x85, 0xed, //0x00000e79 testq %r13, %r13 + 0x0f, 0x85, 0xa4, 0x00, 0x00, 0x00, //0x00000e7c jne LBB0_181 + //0x00000e82 LBB0_166 + 0x48, 0xc1, 0xe7, 0x30, //0x00000e82 shlq $48, %rdi + 0x48, 0x09, 0xca, //0x00000e86 orq %rcx, %rdx + 0x4c, 0x09, 0xf3, //0x00000e89 orq %r14, %rbx + 0x4c, 0x89, 0xe9, //0x00000e8c movq %r13, %rcx + 0x4c, 0x09, 0xd1, //0x00000e8f orq %r10, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000e92 jne LBB0_182 + 0x48, 0x09, 0xfa, //0x00000e98 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000e9b testq %rbx, %rbx + 0x0f, 0x85, 0x9d, 0x00, 0x00, 0x00, //0x00000e9e jne LBB0_183 + //0x00000ea4 LBB0_168 + 0x48, 0x85, 0xd2, //0x00000ea4 testq %rdx, %rdx + 0x0f, 0x85, 0x95, 0x17, 0x00, 0x00, //0x00000ea7 jne LBB0_435 + 0x48, 0x83, 0xc0, 0xc0, //0x00000ead addq $-64, %rax + 0x49, 0x83, 0xc3, 0x40, //0x00000eb1 addq $64, %r11 + 0x48, 0x83, 0xf8, 0x3f, //0x00000eb5 cmpq $63, %rax + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x00000eb9 ja LBB0_164 + 0xe9, 0xc9, 0x0b, 0x00, 0x00, //0x00000ebf jmp LBB0_170 + //0x00000ec4 LBB0_182 + 0x4d, 0x89, 0xd6, //0x00000ec4 movq %r10, %r14 + 0x49, 0xf7, 0xd6, //0x00000ec7 notq %r14 + 0x4d, 0x21, 0xee, //0x00000eca andq %r13, %r14 + 0x4f, 0x8d, 0x0c, 0x36, //0x00000ecd leaq (%r14,%r14), %r9 + 0x4d, 0x09, 0xd1, //0x00000ed1 orq %r10, %r9 + 0x4c, 0x89, 0xc9, //0x00000ed4 movq %r9, %rcx + 0x48, 0xf7, 0xd1, //0x00000ed7 notq %rcx + 0x4c, 0x21, 0xe9, //0x00000eda andq %r13, %rcx + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000edd movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf1, //0x00000ee7 andq %rsi, %rcx + 0x45, 0x31, 0xd2, //0x00000eea xorl %r10d, %r10d + 0x4c, 0x01, 0xf1, //0x00000eed addq %r14, %rcx + 0x41, 0x0f, 0x92, 0xc2, //0x00000ef0 setb %r10b + 0x48, 0x01, 0xc9, //0x00000ef4 addq %rcx, %rcx + 0x48, 0xbe, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000ef7 movabsq $6148914691236517205, %rsi + 0x48, 0x31, 0xf1, //0x00000f01 xorq %rsi, %rcx + 0x4c, 0x21, 0xc9, //0x00000f04 andq %r9, %rcx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f07 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f0b movq $-56(%rbp), %rsi + 0x48, 0xf7, 0xd1, //0x00000f0f notq %rcx + 0x48, 0x21, 0xcb, //0x00000f12 andq %rcx, %rbx + 0x48, 0x09, 0xfa, //0x00000f15 orq %rdi, %rdx + 0x48, 0x85, 0xdb, //0x00000f18 testq %rbx, %rbx + 0x0f, 0x84, 0x83, 0xff, 0xff, 0xff, //0x00000f1b je LBB0_168 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00000f21 jmp LBB0_183 + //0x00000f26 LBB0_181 + 0x4d, 0x89, 0xd9, //0x00000f26 movq %r11, %r9 + 0x4c, 0x2b, 0x4d, 0xd0, //0x00000f29 subq $-48(%rbp), %r9 + 0x4d, 0x0f, 0xbc, 0xc5, //0x00000f2d bsfq %r13, %r8 + 0x4d, 0x01, 0xc8, //0x00000f31 addq %r9, %r8 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f34 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f38 movq $-56(%rbp), %rsi + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00000f3c jmp LBB0_166 + //0x00000f41 LBB0_183 + 0x48, 0x0f, 0xbc, 0xc3, //0x00000f41 bsfq %rbx, %rax + 0x48, 0x85, 0xd2, //0x00000f45 testq %rdx, %rdx + 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, //0x00000f48 je LBB0_193 + 0x48, 0x0f, 0xbc, 0xca, //0x00000f4e bsfq %rdx, %rcx + 0x4c, 0x8b, 0x55, 0xb8, //0x00000f52 movq $-72(%rbp), %r10 + 0x4d, 0x29, 0xcb, //0x00000f56 subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x00000f59 cmpq %rax, %rcx + 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000f5c jae LBB0_194 + 0xe9, 0x82, 0x18, 0x00, 0x00, //0x00000f62 jmp LBB0_185 + //0x00000f67 LBB0_186 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000f67 movl $64, %ecx + 0x48, 0x8b, 0x7d, 0xc0, //0x00000f6c movq $-64(%rbp), %rdi + 0x4c, 0x2b, 0x5d, 0xd0, //0x00000f70 subq $-48(%rbp), %r11 + 0x48, 0x39, 0xc1, //0x00000f74 cmpq %rax, %rcx + 0x0f, 0x82, 0x5a, 0x18, 0x00, 0x00, //0x00000f77 jb LBB0_149 + //0x00000f7d LBB0_187 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000f7d leaq $1(%r11,%rax), %r11 + //0x00000f82 LBB0_188 + 0x4d, 0x85, 0xdb, //0x00000f82 testq %r11, %r11 + 0x0f, 0x88, 0x21, 0x16, 0x00, 0x00, //0x00000f85 js LBB0_419 + 0x48, 0x8b, 0x75, 0xc8, //0x00000f8b movq $-56(%rbp), %rsi + 0x4c, 0x89, 0x1e, //0x00000f8f movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000f92 movq %r15, %rax + 0x48, 0x85, 0xff, //0x00000f95 testq %rdi, %rdi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00000f98 movq $-48(%rbp), %r9 + 0x0f, 0x8f, 0xe2, 0xf1, 0xff, 0xff, //0x00000f9c jg LBB0_4 + 0xe9, 0x3d, 0x16, 0x00, 0x00, //0x00000fa2 jmp LBB0_427 + //0x00000fa7 LBB0_190 + 0x4c, 0x89, 0xe8, //0x00000fa7 movq %r13, %rax + 0x4c, 0x09, 0xe0, //0x00000faa orq %r12, %rax + 0x4d, 0x39, 0xe5, //0x00000fad cmpq %r12, %r13 + 0x0f, 0x8c, 0xd9, 0x04, 0x00, 0x00, //0x00000fb0 jl LBB0_256 + 0x48, 0x85, 0xc0, //0x00000fb6 testq %rax, %rax + 0x0f, 0x88, 0xd0, 0x04, 0x00, 0x00, //0x00000fb9 js LBB0_256 + 0x49, 0xf7, 0xd5, //0x00000fbf notq %r13 + 0x4d, 0x89, 0xeb, //0x00000fc2 movq %r13, %r11 + 0x4d, 0x85, 0xdb, //0x00000fc5 testq %r11, %r11 + 0x0f, 0x89, 0x21, 0x0d, 0x00, 0x00, //0x00000fc8 jns LBB0_335 + 0xe9, 0xfe, 0x15, 0x00, 0x00, //0x00000fce jmp LBB0_423 + //0x00000fd3 LBB0_193 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000fd3 movl $64, %ecx + 0x4c, 0x8b, 0x55, 0xb8, //0x00000fd8 movq $-72(%rbp), %r10 + 0x4d, 0x29, 0xcb, //0x00000fdc subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x00000fdf cmpq %rax, %rcx + 0x0f, 0x82, 0x01, 0x18, 0x00, 0x00, //0x00000fe2 jb LBB0_185 + //0x00000fe8 LBB0_194 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x00000fe8 leaq $1(%r11,%rax), %r11 + //0x00000fed LBB0_195 + 0x4d, 0x85, 0xdb, //0x00000fed testq %r11, %r11 + 0x0f, 0x88, 0xfd, 0x15, 0x00, 0x00, //0x00000ff0 js LBB0_428 + 0x4c, 0x89, 0x1e, //0x00000ff6 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00000ff9 movq %r15, %rax + 0x48, 0x83, 0x7d, 0xc0, 0x00, //0x00000ffc cmpq $0, $-64(%rbp) + 0x0f, 0x8e, 0xdd, 0x15, 0x00, 0x00, //0x00001001 jle LBB0_427 + 0x48, 0x8b, 0x55, 0x88, //0x00001007 movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x0000100b movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000100e cmpq $4095, %rax + 0x0f, 0x8f, 0x86, 0x15, 0x00, 0x00, //0x00001014 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x0000101a leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x0000101e movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00001021 movq $4, $8(%rdx,%rax,8) + 0xe9, 0x55, 0xf1, 0xff, 0xff, //0x0000102a jmp LBB0_4 + //0x0000102f LBB0_199 + 0x48, 0x8b, 0x45, 0x98, //0x0000102f movq $-104(%rbp), %rax + 0x48, 0x8b, 0x48, 0x08, //0x00001033 movq $8(%rax), %rcx + 0xf6, 0x45, 0x80, 0x20, //0x00001037 testb $32, $-128(%rbp) + 0x48, 0x89, 0x4d, 0xb8, //0x0000103b movq %rcx, $-72(%rbp) + 0x49, 0x89, 0xca, //0x0000103f movq %rcx, %r10 + 0x0f, 0x85, 0xe7, 0x04, 0x00, 0x00, //0x00001042 jne LBB0_266 + 0x48, 0x8b, 0x45, 0xc0, //0x00001048 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x0000104c subq %rax, %r10 + 0x0f, 0x84, 0xb6, 0x17, 0x00, 0x00, //0x0000104f je LBB0_466 + 0x4d, 0x8d, 0x1c, 0x01, //0x00001055 leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001059 cmpq $64, %r10 + 0x0f, 0x82, 0x72, 0x10, 0x00, 0x00, //0x0000105d jb LBB0_368 + 0x44, 0x89, 0xd2, //0x00001063 movl %r10d, %edx + 0x83, 0xe2, 0x3f, //0x00001066 andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00001069 movq %rdx, $-80(%rbp) + 0x4e, 0x8d, 0x64, 0x01, 0xc0, //0x0000106d leaq $-64(%rcx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001072 andq $-64, %r12 + 0x49, 0x01, 0xc4, //0x00001076 addq %rax, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00001079 addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000107d movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x00001084 xorl %r9d, %r9d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001087 .p2align 4, 0x90 + //0x00001090 LBB0_203 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001090 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001095 movdqu $16(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6b, 0x20, //0x0000109b movdqu $32(%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x30, //0x000010a1 movdqu $48(%r11), %xmm6 + 0x66, 0x0f, 0x6f, 0xfb, //0x000010a7 movdqa %xmm3, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010ab pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xff, //0x000010af pmovmskb %xmm7, %edi + 0x66, 0x0f, 0x6f, 0xfc, //0x000010b3 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010b7 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xcf, //0x000010bb pmovmskb %xmm7, %ecx + 0x66, 0x0f, 0x6f, 0xfd, //0x000010bf movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010c3 pcmpeqb %xmm0, %xmm7 + 0x66, 0x0f, 0xd7, 0xf7, //0x000010c7 pmovmskb %xmm7, %esi + 0x66, 0x0f, 0x6f, 0xfe, //0x000010cb movdqa %xmm6, %xmm7 + 0x66, 0x0f, 0x74, 0xf8, //0x000010cf pcmpeqb %xmm0, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xef, //0x000010d3 pmovmskb %xmm7, %r13d + 0x66, 0x0f, 0x74, 0xd9, //0x000010d8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000010dc pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x74, 0xe1, //0x000010e0 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x000010e4 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x74, 0xe9, //0x000010e8 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x000010ec pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xf1, //0x000010f0 pcmpeqb %xmm1, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xf6, //0x000010f4 pmovmskb %xmm6, %r14d + 0x49, 0xc1, 0xe5, 0x30, //0x000010f9 shlq $48, %r13 + 0x48, 0xc1, 0xe6, 0x20, //0x000010fd shlq $32, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001101 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x00001105 orq %rcx, %rdi + 0x48, 0x09, 0xf7, //0x00001108 orq %rsi, %rdi + 0x49, 0xc1, 0xe6, 0x30, //0x0000110b shlq $48, %r14 + 0x48, 0xc1, 0xe3, 0x20, //0x0000110f shlq $32, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x00001113 shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001117 orq %rax, %rdx + 0x48, 0x09, 0xda, //0x0000111a orq %rbx, %rdx + 0x4c, 0x09, 0xf2, //0x0000111d orq %r14, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001120 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001124 jne LBB0_205 + 0x48, 0x85, 0xd2, //0x0000112a testq %rdx, %rdx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000112d jne LBB0_214 + //0x00001133 LBB0_205 + 0x4c, 0x09, 0xef, //0x00001133 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001136 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001139 orq %r9, %rax + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000113c jne LBB0_215 + //0x00001142 LBB0_206 + 0x48, 0x85, 0xff, //0x00001142 testq %rdi, %rdi + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00001145 jne LBB0_216 + //0x0000114b LBB0_207 + 0x49, 0x83, 0xc2, 0xc0, //0x0000114b addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x0000114f addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x00001153 cmpq $63, %r10 + 0x0f, 0x87, 0x33, 0xff, 0xff, 0xff, //0x00001157 ja LBB0_203 + 0xe9, 0xe6, 0x0b, 0x00, 0x00, //0x0000115d jmp LBB0_208 + //0x00001162 LBB0_214 + 0x4c, 0x89, 0xd8, //0x00001162 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001165 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x00001169 bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x0000116d addq %rax, %r8 + 0x4c, 0x09, 0xef, //0x00001170 orq %r13, %rdi + 0x48, 0x89, 0xd0, //0x00001173 movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001176 orq %r9, %rax + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x00001179 je LBB0_206 + //0x0000117f LBB0_215 + 0x4c, 0x89, 0xc8, //0x0000117f movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00001182 notq %rax + 0x48, 0x21, 0xd0, //0x00001185 andq %rdx, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00001188 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x0000118c orq %r9, %rcx + 0x48, 0x89, 0xce, //0x0000118f movq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x00001192 notq %rsi + 0x48, 0x21, 0xd6, //0x00001195 andq %rdx, %rsi + 0x48, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00001198 movabsq $-6148914691236517206, %rdx + 0x48, 0x21, 0xd6, //0x000011a2 andq %rdx, %rsi + 0x45, 0x31, 0xc9, //0x000011a5 xorl %r9d, %r9d + 0x48, 0x01, 0xc6, //0x000011a8 addq %rax, %rsi + 0x41, 0x0f, 0x92, 0xc1, //0x000011ab setb %r9b + 0x48, 0x01, 0xf6, //0x000011af addq %rsi, %rsi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000011b2 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc6, //0x000011bc xorq %rax, %rsi + 0x48, 0x21, 0xce, //0x000011bf andq %rcx, %rsi + 0x48, 0xf7, 0xd6, //0x000011c2 notq %rsi + 0x48, 0x21, 0xf7, //0x000011c5 andq %rsi, %rdi + 0x48, 0x85, 0xff, //0x000011c8 testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000011cb je LBB0_207 + //0x000011d1 LBB0_216 + 0x48, 0x0f, 0xbc, 0xc7, //0x000011d1 bsfq %rdi, %rax + 0x4c, 0x03, 0x5d, 0xa0, //0x000011d5 addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000011d9 addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x000011dc movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000011e0 movq $-48(%rbp), %r9 + 0x48, 0x8b, 0x7d, 0xb8, //0x000011e4 movq $-72(%rbp), %rdi + 0xe9, 0x02, 0x06, 0x00, 0x00, //0x000011e8 jmp LBB0_304 + //0x000011ed LBB0_217 + 0x48, 0x8b, 0x45, 0x98, //0x000011ed movq $-104(%rbp), %rax + 0x4c, 0x8b, 0x50, 0x08, //0x000011f1 movq $8(%rax), %r10 + 0x48, 0x8b, 0x45, 0xc0, //0x000011f5 movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x000011f9 subq %rax, %r10 + 0x0f, 0x84, 0x56, 0x14, 0x00, 0x00, //0x000011fc je LBB0_437 + 0x4d, 0x8d, 0x24, 0x01, //0x00001202 leaq (%r9,%rax), %r12 + 0x41, 0x80, 0x3c, 0x24, 0x30, //0x00001206 cmpb $48, (%r12) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x0000120b jne LBB0_222 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001211 movl $1, %r11d + 0x49, 0x83, 0xfa, 0x01, //0x00001217 cmpq $1, %r10 + 0x0f, 0x84, 0x03, 0x0b, 0x00, 0x00, //0x0000121b je LBB0_341 + 0x41, 0x8a, 0x44, 0x24, 0x01, //0x00001221 movb $1(%r12), %al + 0x04, 0xd2, //0x00001226 addb $-46, %al + 0x3c, 0x37, //0x00001228 cmpb $55, %al + 0x0f, 0x87, 0xf4, 0x0a, 0x00, 0x00, //0x0000122a ja LBB0_341 + 0x0f, 0xb6, 0xc0, //0x00001230 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00001233 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x0000123d btq %rax, %rcx + 0x0f, 0x83, 0xdd, 0x0a, 0x00, 0x00, //0x00001241 jae LBB0_341 + //0x00001247 LBB0_222 + 0x49, 0x83, 0xfa, 0x10, //0x00001247 cmpq $16, %r10 + 0x0f, 0x82, 0x5d, 0x0e, 0x00, 0x00, //0x0000124b jb LBB0_367 + 0x4d, 0x8d, 0x4a, 0xf0, //0x00001251 leaq $-16(%r10), %r9 + 0x4c, 0x89, 0xc8, //0x00001255 movq %r9, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00001258 andq $-16, %rax + 0x4e, 0x8d, 0x44, 0x20, 0x10, //0x0000125c leaq $16(%rax,%r12), %r8 + 0x41, 0x83, 0xe1, 0x0f, //0x00001261 andl $15, %r9d + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00001265 movq $-1, $-80(%rbp) + 0x48, 0xc7, 0x45, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x0000126d movq $-1, $-72(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001275 movq $-1, %r14 + 0x4d, 0x89, 0xe5, //0x0000127c movq %r12, %r13 + 0x90, //0x0000127f .p2align 4, 0x90 + //0x00001280 LBB0_224 + 0xf3, 0x41, 0x0f, 0x6f, 0x5d, 0x00, //0x00001280 movdqu (%r13), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00001286 movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x64, 0xe0, //0x0000128a pcmpgtb %xmm8, %xmm4 + 0x66, 0x41, 0x0f, 0x6f, 0xed, //0x0000128f movdqa %xmm13, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001294 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00001298 pand %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe3, //0x0000129c movdqa %xmm3, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe1, //0x000012a0 pcmpeqb %xmm9, %xmm4 + 0x66, 0x0f, 0x6f, 0xf3, //0x000012a5 movdqa %xmm3, %xmm6 + 0x66, 0x41, 0x0f, 0x74, 0xf2, //0x000012a9 pcmpeqb %xmm10, %xmm6 + 0x66, 0x0f, 0xeb, 0xf4, //0x000012ae por %xmm4, %xmm6 + 0x66, 0x0f, 0x6f, 0xe3, //0x000012b2 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x000012b6 por %xmm2, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xdb, //0x000012ba pcmpeqb %xmm11, %xmm3 + 0x66, 0x41, 0x0f, 0x74, 0xe4, //0x000012bf pcmpeqb %xmm12, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x000012c4 pmovmskb %xmm4, %ebx + 0x66, 0x0f, 0xeb, 0xe3, //0x000012c8 por %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xee, //0x000012cc por %xmm6, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000012d0 por %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xc3, //0x000012d4 pmovmskb %xmm3, %eax + 0x66, 0x0f, 0xd7, 0xd6, //0x000012d8 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0xd7, 0xcd, //0x000012dc pmovmskb %xmm5, %ecx + 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, //0x000012e0 movl $2863311530, %esi + 0x48, 0x8d, 0xbe, 0x55, 0x55, 0x55, 0x55, //0x000012e5 leaq $1431655765(%rsi), %rdi + 0x48, 0x31, 0xcf, //0x000012ec xorq %rcx, %rdi + 0x48, 0x0f, 0xbc, 0xcf, //0x000012ef bsfq %rdi, %rcx + 0x83, 0xf9, 0x10, //0x000012f3 cmpl $16, %ecx + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000012f6 je LBB0_226 + 0xbf, 0xff, 0xff, 0xff, 0xff, //0x000012fc movl $-1, %edi + 0xd3, 0xe7, //0x00001301 shll %cl, %edi + 0xf7, 0xd7, //0x00001303 notl %edi + 0x21, 0xf8, //0x00001305 andl %edi, %eax + 0x21, 0xfb, //0x00001307 andl %edi, %ebx + 0x21, 0xd7, //0x00001309 andl %edx, %edi + 0x89, 0xfa, //0x0000130b movl %edi, %edx + //0x0000130d LBB0_226 + 0x8d, 0x78, 0xff, //0x0000130d leal $-1(%rax), %edi + 0x21, 0xc7, //0x00001310 andl %eax, %edi + 0x0f, 0x85, 0xee, 0x09, 0x00, 0x00, //0x00001312 jne LBB0_337 + 0x8d, 0x7b, 0xff, //0x00001318 leal $-1(%rbx), %edi + 0x21, 0xdf, //0x0000131b andl %ebx, %edi + 0x0f, 0x85, 0xe3, 0x09, 0x00, 0x00, //0x0000131d jne LBB0_337 + 0x8d, 0x7a, 0xff, //0x00001323 leal $-1(%rdx), %edi + 0x21, 0xd7, //0x00001326 andl %edx, %edi + 0x0f, 0x85, 0xd8, 0x09, 0x00, 0x00, //0x00001328 jne LBB0_337 + 0x85, 0xc0, //0x0000132e testl %eax, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001330 je LBB0_232 + 0x4c, 0x89, 0xef, //0x00001336 movq %r13, %rdi + 0x4c, 0x29, 0xe7, //0x00001339 subq %r12, %rdi + 0x44, 0x0f, 0xbc, 0xd8, //0x0000133c bsfl %eax, %r11d + 0x49, 0x01, 0xfb, //0x00001340 addq %rdi, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x00001343 cmpq $-1, %r14 + 0x0f, 0x85, 0xc3, 0x09, 0x00, 0x00, //0x00001347 jne LBB0_338 + 0x4d, 0x89, 0xde, //0x0000134d movq %r11, %r14 + //0x00001350 LBB0_232 + 0x85, 0xdb, //0x00001350 testl %ebx, %ebx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001352 je LBB0_235 + 0x4c, 0x89, 0xe8, //0x00001358 movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000135b subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xdb, //0x0000135e bsfl %ebx, %r11d + 0x49, 0x01, 0xc3, //0x00001362 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb8, 0xff, //0x00001365 cmpq $-1, $-72(%rbp) + 0x0f, 0x85, 0xa0, 0x09, 0x00, 0x00, //0x0000136a jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb8, //0x00001370 movq %r11, $-72(%rbp) + //0x00001374 LBB0_235 + 0x85, 0xd2, //0x00001374 testl %edx, %edx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00001376 je LBB0_238 + 0x4c, 0x89, 0xe8, //0x0000137c movq %r13, %rax + 0x4c, 0x29, 0xe0, //0x0000137f subq %r12, %rax + 0x44, 0x0f, 0xbc, 0xda, //0x00001382 bsfl %edx, %r11d + 0x49, 0x01, 0xc3, //0x00001386 addq %rax, %r11 + 0x48, 0x83, 0x7d, 0xb0, 0xff, //0x00001389 cmpq $-1, $-80(%rbp) + 0x0f, 0x85, 0x7c, 0x09, 0x00, 0x00, //0x0000138e jne LBB0_338 + 0x4c, 0x89, 0x5d, 0xb0, //0x00001394 movq %r11, $-80(%rbp) + //0x00001398 LBB0_238 + 0x83, 0xf9, 0x10, //0x00001398 cmpl $16, %ecx + 0x0f, 0x85, 0xaa, 0x03, 0x00, 0x00, //0x0000139b jne LBB0_290 + 0x49, 0x83, 0xc5, 0x10, //0x000013a1 addq $16, %r13 + 0x49, 0x83, 0xc2, 0xf0, //0x000013a5 addq $-16, %r10 + 0x49, 0x83, 0xfa, 0x0f, //0x000013a9 cmpq $15, %r10 + 0x0f, 0x87, 0xcd, 0xfe, 0xff, 0xff, //0x000013ad ja LBB0_224 + 0x4d, 0x85, 0xc9, //0x000013b3 testq %r9, %r9 + 0x48, 0x8d, 0x35, 0xc3, 0x16, 0x00, 0x00, //0x000013b6 leaq $5827(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0x48, 0x8b, 0x7d, 0xb8, //0x000013bd movq $-72(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb0, //0x000013c1 movq $-80(%rbp), %rbx + 0x0f, 0x84, 0x8e, 0x03, 0x00, 0x00, //0x000013c5 je LBB0_291 + //0x000013cb LBB0_241 + 0x4b, 0x8d, 0x0c, 0x08, //0x000013cb leaq (%r8,%r9), %rcx + 0xe9, 0x08, 0x01, 0x00, 0x00, //0x000013cf jmp LBB0_260 + //0x000013d4 LBB0_242 + 0x48, 0x8b, 0x55, 0x88, //0x000013d4 movq $-120(%rbp), %rdx + 0x48, 0x8b, 0x02, //0x000013d8 movq (%rdx), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000013db cmpq $4095, %rax + 0x0f, 0x8f, 0xb9, 0x11, 0x00, 0x00, //0x000013e1 jg LBB0_439 + 0x48, 0x8d, 0x48, 0x01, //0x000013e7 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0a, //0x000013eb movq %rcx, (%rdx) + 0x48, 0xc7, 0x44, 0xc2, 0x08, 0x05, 0x00, 0x00, 0x00, //0x000013ee movq $5, $8(%rdx,%rax,8) + 0xe9, 0x84, 0xed, 0xff, 0xff, //0x000013f7 jmp LBB0_3 + //0x000013fc LBB0_244 + 0x48, 0x8b, 0x4d, 0x98, //0x000013fc movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001400 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00001404 leaq $-4(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001408 cmpq %rdx, %r15 + 0x0f, 0x83, 0xfb, 0x11, 0x00, 0x00, //0x0000140b jae LBB0_440 + 0x48, 0x8b, 0x55, 0xc0, //0x00001411 movq $-64(%rbp), %rdx + 0x41, 0x8b, 0x0c, 0x11, //0x00001415 movl (%r9,%rdx), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00001419 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x5b, 0x12, 0x00, 0x00, //0x0000141f jne LBB0_443 + 0x4d, 0x8d, 0x5f, 0x05, //0x00001425 leaq $5(%r15), %r11 + 0x4c, 0x89, 0x1e, //0x00001429 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x0000142c movq %r15, %rax + 0x48, 0x85, 0xd2, //0x0000142f testq %rdx, %rdx + 0x0f, 0x8f, 0x4c, 0xed, 0xff, 0xff, //0x00001432 jg LBB0_4 + 0xe9, 0xa7, 0x11, 0x00, 0x00, //0x00001438 jmp LBB0_427 + //0x0000143d LBB0_247 + 0x48, 0x8b, 0x4d, 0x98, //0x0000143d movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001441 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00001445 leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001449 cmpq %rdx, %r15 + 0x0f, 0x83, 0xba, 0x11, 0x00, 0x00, //0x0000144c jae LBB0_440 + 0x41, 0x81, 0x3a, 0x6e, 0x75, 0x6c, 0x6c, //0x00001452 cmpl $1819047278, (%r10) + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x00001459 je LBB0_255 + 0xe9, 0x71, 0x12, 0x00, 0x00, //0x0000145f jmp LBB0_249 + //0x00001464 LBB0_253 + 0x48, 0x8b, 0x4d, 0x98, //0x00001464 movq $-104(%rbp), %rcx + 0x48, 0x8b, 0x49, 0x08, //0x00001468 movq $8(%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x0000146c leaq $-3(%rcx), %rdx + 0x49, 0x39, 0xd7, //0x00001470 cmpq %rdx, %r15 + 0x0f, 0x83, 0x93, 0x11, 0x00, 0x00, //0x00001473 jae LBB0_440 + 0x41, 0x81, 0x3a, 0x74, 0x72, 0x75, 0x65, //0x00001479 cmpl $1702195828, (%r10) + 0x0f, 0x85, 0xa1, 0x12, 0x00, 0x00, //0x00001480 jne LBB0_448 + //0x00001486 LBB0_255 + 0x4d, 0x8d, 0x5f, 0x04, //0x00001486 leaq $4(%r15), %r11 + 0xe9, 0x69, 0x03, 0x00, 0x00, //0x0000148a jmp LBB0_305 + //0x0000148f LBB0_256 + 0x48, 0x85, 0xc0, //0x0000148f testq %rax, %rax + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00001492 leaq $-1(%r12), %rax + 0x49, 0xf7, 0xd4, //0x00001497 notq %r12 + 0x4d, 0x0f, 0x48, 0xe3, //0x0000149a cmovsq %r11, %r12 + 0x49, 0x39, 0xc5, //0x0000149e cmpq %rax, %r13 + 0x4d, 0x0f, 0x44, 0xdc, //0x000014a1 cmoveq %r12, %r11 + 0x4d, 0x85, 0xdb, //0x000014a5 testq %r11, %r11 + 0x0f, 0x89, 0x41, 0x08, 0x00, 0x00, //0x000014a8 jns LBB0_335 + 0xe9, 0x1e, 0x11, 0x00, 0x00, //0x000014ae jmp LBB0_423 + //0x000014b3 LBB0_257 + 0x49, 0x89, 0xc3, //0x000014b3 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000014b6 subq %r12, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000014b9 cmpq $-1, %r14 + 0x0f, 0x85, 0x6d, 0x0b, 0x00, 0x00, //0x000014bd jne LBB0_361 + 0x49, 0xff, 0xcb, //0x000014c3 decq %r11 + 0x4d, 0x89, 0xde, //0x000014c6 movq %r11, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014c9 .p2align 4, 0x90 + //0x000014d0 LBB0_259 + 0x49, 0x89, 0xc0, //0x000014d0 movq %rax, %r8 + 0x49, 0xff, 0xc9, //0x000014d3 decq %r9 + 0x0f, 0x84, 0xfc, 0x09, 0x00, 0x00, //0x000014d6 je LBB0_343 + //0x000014dc LBB0_260 + 0x41, 0x0f, 0xbe, 0x10, //0x000014dc movsbl (%r8), %edx + 0x83, 0xc2, 0xd5, //0x000014e0 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x000014e3 cmpl $58, %edx + 0x0f, 0x87, 0x6d, 0x02, 0x00, 0x00, //0x000014e6 ja LBB0_291 + 0x49, 0x8d, 0x40, 0x01, //0x000014ec leaq $1(%r8), %rax + 0x48, 0x63, 0x14, 0x96, //0x000014f0 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x000014f4 addq %rsi, %rdx + 0xff, 0xe2, //0x000014f7 jmpq *%rdx + //0x000014f9 LBB0_262 + 0x49, 0x89, 0xc3, //0x000014f9 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x000014fc subq %r12, %r11 + 0x48, 0x83, 0xfb, 0xff, //0x000014ff cmpq $-1, %rbx + 0x0f, 0x85, 0x27, 0x0b, 0x00, 0x00, //0x00001503 jne LBB0_361 + 0x49, 0xff, 0xcb, //0x00001509 decq %r11 + 0x4c, 0x89, 0xdb, //0x0000150c movq %r11, %rbx + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000150f jmp LBB0_259 + //0x00001514 LBB0_264 + 0x49, 0x89, 0xc3, //0x00001514 movq %rax, %r11 + 0x4d, 0x29, 0xe3, //0x00001517 subq %r12, %r11 + 0x48, 0x83, 0xff, 0xff, //0x0000151a cmpq $-1, %rdi + 0x0f, 0x85, 0x0c, 0x0b, 0x00, 0x00, //0x0000151e jne LBB0_361 + 0x49, 0xff, 0xcb, //0x00001524 decq %r11 + 0x4c, 0x89, 0xdf, //0x00001527 movq %r11, %rdi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x0000152a jmp LBB0_259 + //0x0000152f LBB0_266 + 0x48, 0x8b, 0x45, 0xc0, //0x0000152f movq $-64(%rbp), %rax + 0x49, 0x29, 0xc2, //0x00001533 subq %rax, %r10 + 0x0f, 0x84, 0xcf, 0x12, 0x00, 0x00, //0x00001536 je LBB0_466 + 0x4d, 0x8d, 0x1c, 0x01, //0x0000153c leaq (%r9,%rax), %r11 + 0x49, 0x83, 0xfa, 0x40, //0x00001540 cmpq $64, %r10 + 0x0f, 0x82, 0xa8, 0x0b, 0x00, 0x00, //0x00001544 jb LBB0_369 + 0x44, 0x89, 0xd2, //0x0000154a movl %r10d, %edx + 0x83, 0xe2, 0x3f, //0x0000154d andl $63, %edx + 0x48, 0x89, 0x55, 0xb0, //0x00001550 movq %rdx, $-80(%rbp) + 0x4e, 0x8d, 0x64, 0x01, 0xc0, //0x00001554 leaq $-64(%rcx,%r8), %r12 + 0x49, 0x83, 0xe4, 0xc0, //0x00001559 andq $-64, %r12 + 0x49, 0x01, 0xc4, //0x0000155d addq %rax, %r12 + 0x4c, 0x03, 0x65, 0x90, //0x00001560 addq $-112(%rbp), %r12 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001564 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x0000156b xorl %r9d, %r9d + 0x90, 0x90, //0x0000156e .p2align 4, 0x90 + //0x00001570 LBB0_269 + 0xf3, 0x41, 0x0f, 0x6f, 0x2b, //0x00001570 movdqu (%r11), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x73, 0x10, //0x00001575 movdqu $16(%r11), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x20, //0x0000157b movdqu $32(%r11), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x7b, 0x30, //0x00001581 movdqu $48(%r11), %xmm7 + 0x66, 0x0f, 0x6f, 0xdd, //0x00001587 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x0000158b pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xf3, //0x0000158f pmovmskb %xmm3, %esi + 0x66, 0x0f, 0x6f, 0xde, //0x00001593 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x00001597 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000159b pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdc, //0x0000159f movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015a3 pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000015a7 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015ab movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd8, //0x000015af pcmpeqb %xmm0, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x000015b3 pmovmskb %xmm3, %edi + 0x66, 0x0f, 0x6f, 0xdd, //0x000015b7 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015bb pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xeb, //0x000015bf pmovmskb %xmm3, %r13d + 0x66, 0x0f, 0x6f, 0xde, //0x000015c4 movdqa %xmm6, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015c8 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xd3, //0x000015cc pmovmskb %xmm3, %edx + 0x66, 0x0f, 0x6f, 0xdc, //0x000015d0 movdqa %xmm4, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015d4 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe1, 0x10, //0x000015d8 shlq $16, %rcx + 0x48, 0x09, 0xce, //0x000015dc orq %rcx, %rsi + 0x66, 0x0f, 0xd7, 0xcb, //0x000015df pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x6f, 0xdf, //0x000015e3 movdqa %xmm7, %xmm3 + 0x66, 0x0f, 0x74, 0xd9, //0x000015e7 pcmpeqb %xmm1, %xmm3 + 0x48, 0xc1, 0xe3, 0x20, //0x000015eb shlq $32, %rbx + 0x48, 0x09, 0xde, //0x000015ef orq %rbx, %rsi + 0x66, 0x0f, 0xd7, 0xdb, //0x000015f2 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x6f, 0xda, //0x000015f6 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdd, //0x000015fa pcmpgtb %xmm5, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xee, //0x000015fe pcmpgtb %xmm14, %xmm5 + 0x66, 0x0f, 0xdb, 0xeb, //0x00001603 pand %xmm3, %xmm5 + 0x48, 0xc1, 0xe2, 0x10, //0x00001607 shlq $16, %rdx + 0x49, 0x09, 0xd5, //0x0000160b orq %rdx, %r13 + 0x66, 0x0f, 0xd7, 0xd5, //0x0000160e pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xda, //0x00001612 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xde, //0x00001616 pcmpgtb %xmm6, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xf6, //0x0000161a pcmpgtb %xmm14, %xmm6 + 0x66, 0x0f, 0xdb, 0xf3, //0x0000161f pand %xmm3, %xmm6 + 0x48, 0xc1, 0xe1, 0x20, //0x00001623 shlq $32, %rcx + 0x49, 0x09, 0xcd, //0x00001627 orq %rcx, %r13 + 0x66, 0x0f, 0xd7, 0xc6, //0x0000162a pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xda, //0x0000162e movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001632 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001636 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000163b pand %xmm3, %xmm4 + 0x48, 0xc1, 0xe3, 0x30, //0x0000163f shlq $48, %rbx + 0x49, 0x09, 0xdd, //0x00001643 orq %rbx, %r13 + 0x66, 0x0f, 0xd7, 0xcc, //0x00001646 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xda, //0x0000164a movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdf, //0x0000164e pcmpgtb %xmm7, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xfe, //0x00001652 pcmpgtb %xmm14, %xmm7 + 0x66, 0x0f, 0xdb, 0xfb, //0x00001657 pand %xmm3, %xmm7 + 0x48, 0xc1, 0xe0, 0x10, //0x0000165b shlq $16, %rax + 0x48, 0x09, 0xc2, //0x0000165f orq %rax, %rdx + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x00001662 pmovmskb %xmm7, %r14d + 0x48, 0xc1, 0xe7, 0x30, //0x00001667 shlq $48, %rdi + 0x48, 0xc1, 0xe1, 0x20, //0x0000166b shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000166f cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001673 jne LBB0_271 + 0x4d, 0x85, 0xed, //0x00001679 testq %r13, %r13 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x0000167c jne LBB0_286 + //0x00001682 LBB0_271 + 0x49, 0xc1, 0xe6, 0x30, //0x00001682 shlq $48, %r14 + 0x48, 0x09, 0xca, //0x00001686 orq %rcx, %rdx + 0x48, 0x09, 0xfe, //0x00001689 orq %rdi, %rsi + 0x4c, 0x89, 0xe8, //0x0000168c movq %r13, %rax + 0x4c, 0x09, 0xc8, //0x0000168f orq %r9, %rax + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00001692 jne LBB0_287 + 0x4c, 0x09, 0xf2, //0x00001698 orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x0000169b testq %rsi, %rsi + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x0000169e jne LBB0_288 + //0x000016a4 LBB0_273 + 0x48, 0x85, 0xd2, //0x000016a4 testq %rdx, %rdx + 0x0f, 0x85, 0xec, 0x10, 0x00, 0x00, //0x000016a7 jne LBB0_456 + 0x49, 0x83, 0xc2, 0xc0, //0x000016ad addq $-64, %r10 + 0x49, 0x83, 0xc3, 0x40, //0x000016b1 addq $64, %r11 + 0x49, 0x83, 0xfa, 0x3f, //0x000016b5 cmpq $63, %r10 + 0x0f, 0x87, 0xb1, 0xfe, 0xff, 0xff, //0x000016b9 ja LBB0_269 + 0xe9, 0x1a, 0x07, 0x00, 0x00, //0x000016bf jmp LBB0_275 + //0x000016c4 LBB0_287 + 0x4c, 0x89, 0xc8, //0x000016c4 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x000016c7 notq %rax + 0x4c, 0x21, 0xe8, //0x000016ca andq %r13, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x000016cd leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xc9, //0x000016d1 orq %r9, %rcx + 0x48, 0x89, 0xcf, //0x000016d4 movq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x000016d7 notq %rdi + 0x4c, 0x21, 0xef, //0x000016da andq %r13, %rdi + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000016dd movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xdf, //0x000016e7 andq %rbx, %rdi + 0x45, 0x31, 0xc9, //0x000016ea xorl %r9d, %r9d + 0x48, 0x01, 0xc7, //0x000016ed addq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc1, //0x000016f0 setb %r9b + 0x48, 0x01, 0xff, //0x000016f4 addq %rdi, %rdi + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000016f7 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc7, //0x00001701 xorq %rax, %rdi + 0x48, 0x21, 0xcf, //0x00001704 andq %rcx, %rdi + 0x48, 0xf7, 0xd7, //0x00001707 notq %rdi + 0x48, 0x21, 0xfe, //0x0000170a andq %rdi, %rsi + 0x4c, 0x09, 0xf2, //0x0000170d orq %r14, %rdx + 0x48, 0x85, 0xf6, //0x00001710 testq %rsi, %rsi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00001713 je LBB0_273 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001719 jmp LBB0_288 + //0x0000171e LBB0_286 + 0x4c, 0x89, 0xd8, //0x0000171e movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00001721 subq $-48(%rbp), %rax + 0x4d, 0x0f, 0xbc, 0xc5, //0x00001725 bsfq %r13, %r8 + 0x49, 0x01, 0xc0, //0x00001729 addq %rax, %r8 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x0000172c jmp LBB0_271 + //0x00001731 LBB0_288 + 0x48, 0x0f, 0xbc, 0xc6, //0x00001731 bsfq %rsi, %rax + 0x48, 0x85, 0xd2, //0x00001735 testq %rdx, %rdx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001738 movq $-48(%rbp), %r9 + 0x0f, 0x84, 0x8f, 0x00, 0x00, 0x00, //0x0000173c je LBB0_301 + 0x48, 0x0f, 0xbc, 0xca, //0x00001742 bsfq %rdx, %rcx + 0xe9, 0x8b, 0x00, 0x00, 0x00, //0x00001746 jmp LBB0_302 + //0x0000174b LBB0_290 + 0x49, 0x01, 0xcd, //0x0000174b addq %rcx, %r13 + 0x4d, 0x89, 0xe8, //0x0000174e movq %r13, %r8 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001751 movq $-72(%rbp), %rdi + 0x48, 0x8b, 0x5d, 0xb0, //0x00001755 movq $-80(%rbp), %rbx + //0x00001759 LBB0_291 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001759 movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001760 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001763 movq $-56(%rbp), %rsi + 0x0f, 0x84, 0xf2, 0x0e, 0x00, 0x00, //0x00001767 je LBB0_438 + //0x0000176d LBB0_292 + 0x48, 0x85, 0xdb, //0x0000176d testq %rbx, %rbx + 0x0f, 0x84, 0xe9, 0x0e, 0x00, 0x00, //0x00001770 je LBB0_438 + 0x4d, 0x85, 0xf6, //0x00001776 testq %r14, %r14 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001779 movq $-48(%rbp), %r9 + 0x0f, 0x84, 0xdc, 0x0e, 0x00, 0x00, //0x0000177d je LBB0_438 + 0x4d, 0x29, 0xe0, //0x00001783 subq %r12, %r8 + 0x49, 0x8d, 0x40, 0xff, //0x00001786 leaq $-1(%r8), %rax + 0x48, 0x39, 0xc7, //0x0000178a cmpq %rax, %rdi + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x0000178d je LBB0_300 + 0x49, 0x39, 0xc6, //0x00001793 cmpq %rax, %r14 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00001796 je LBB0_300 + 0x48, 0x39, 0xc3, //0x0000179c cmpq %rax, %rbx + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x0000179f je LBB0_300 + 0x48, 0x85, 0xdb, //0x000017a5 testq %rbx, %rbx + 0x0f, 0x8e, 0x72, 0x00, 0x00, 0x00, //0x000017a8 jle LBB0_307 + 0x48, 0x8d, 0x43, 0xff, //0x000017ae leaq $-1(%rbx), %rax + 0x48, 0x39, 0xc7, //0x000017b2 cmpq %rax, %rdi + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x000017b5 je LBB0_307 + 0x48, 0xf7, 0xd3, //0x000017bb notq %rbx + 0x49, 0x89, 0xdb, //0x000017be movq %rbx, %r11 + 0xe9, 0x55, 0x05, 0x00, 0x00, //0x000017c1 jmp LBB0_340 + //0x000017c6 LBB0_300 + 0x49, 0xf7, 0xd8, //0x000017c6 negq %r8 + 0x4d, 0x89, 0xc3, //0x000017c9 movq %r8, %r11 + 0xe9, 0x4a, 0x05, 0x00, 0x00, //0x000017cc jmp LBB0_340 + //0x000017d1 LBB0_301 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000017d1 movl $64, %ecx + //0x000017d6 LBB0_302 + 0x48, 0x8b, 0x75, 0xc8, //0x000017d6 movq $-56(%rbp), %rsi + 0x48, 0x8b, 0x7d, 0xb8, //0x000017da movq $-72(%rbp), %rdi + 0x4d, 0x29, 0xcb, //0x000017de subq %r9, %r11 + 0x48, 0x39, 0xc1, //0x000017e1 cmpq %rax, %rcx + 0x0f, 0x82, 0xff, 0x0f, 0x00, 0x00, //0x000017e4 jb LBB0_185 + 0x4d, 0x8d, 0x5c, 0x03, 0x01, //0x000017ea leaq $1(%r11,%rax), %r11 + //0x000017ef LBB0_304 + 0x4d, 0x85, 0xdb, //0x000017ef testq %r11, %r11 + 0x0f, 0x88, 0x6f, 0x0e, 0x00, 0x00, //0x000017f2 js LBB0_441 + //0x000017f8 LBB0_305 + 0x4c, 0x89, 0x1e, //0x000017f8 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x000017fb movq %r15, %rax + 0x48, 0x83, 0x7d, 0xc0, 0x00, //0x000017fe cmpq $0, $-64(%rbp) + 0x0f, 0x8f, 0x7b, 0xe9, 0xff, 0xff, //0x00001803 jg LBB0_4 + 0xe9, 0xd6, 0x0d, 0x00, 0x00, //0x00001809 jmp LBB0_427 + //0x0000180e LBB0_306 + 0x4d, 0x29, 0xd6, //0x0000180e subq %r10, %r14 + 0x44, 0x0f, 0xbc, 0xde, //0x00001811 bsfl %esi, %r11d + 0x4d, 0x01, 0xf3, //0x00001815 addq %r14, %r11 + 0x49, 0xf7, 0xd3, //0x00001818 notq %r11 + 0xe9, 0xbe, 0x04, 0x00, 0x00, //0x0000181b jmp LBB0_334 + //0x00001820 LBB0_307 + 0x4c, 0x89, 0xf0, //0x00001820 movq %r14, %rax + 0x48, 0x09, 0xf8, //0x00001823 orq %rdi, %rax + 0x49, 0x39, 0xfe, //0x00001826 cmpq %rdi, %r14 + 0x0f, 0x8c, 0x93, 0x01, 0x00, 0x00, //0x00001829 jl LBB0_310 + 0x48, 0x85, 0xc0, //0x0000182f testq %rax, %rax + 0x0f, 0x88, 0x8a, 0x01, 0x00, 0x00, //0x00001832 js LBB0_310 + 0x49, 0xf7, 0xd6, //0x00001838 notq %r14 + 0x4d, 0x89, 0xf3, //0x0000183b movq %r14, %r11 + 0xe9, 0xd8, 0x04, 0x00, 0x00, //0x0000183e jmp LBB0_340 + //0x00001843 LBB0_50 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00001843 movq $-80(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb8, //0x00001847 movq $-72(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x0000184b cmpq $32, %r13 + 0x0f, 0x82, 0x57, 0x09, 0x00, 0x00, //0x0000184f jb LBB0_374 + //0x00001855 LBB0_51 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001855 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x0000185a movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001860 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001864 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001868 pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x0000186c movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001870 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001874 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001878 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000187c pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001880 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001884 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001888 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x0000188c shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001890 orq %rax, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001893 cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001897 jne LBB0_53 + 0x48, 0x85, 0xc9, //0x0000189d testq %rcx, %rcx + 0x0f, 0x85, 0xa5, 0x08, 0x00, 0x00, //0x000018a0 jne LBB0_371 + //0x000018a6 LBB0_53 + 0x48, 0x09, 0xfa, //0x000018a6 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000018a9 movq %rcx, %rax + 0x4c, 0x09, 0xc0, //0x000018ac orq %r8, %rax + 0x0f, 0x85, 0xb3, 0x08, 0x00, 0x00, //0x000018af jne LBB0_372 + //0x000018b5 LBB0_54 + 0x48, 0x85, 0xd2, //0x000018b5 testq %rdx, %rdx + 0x0f, 0x84, 0xe6, 0x08, 0x00, 0x00, //0x000018b8 je LBB0_373 + //0x000018be LBB0_55 + 0x48, 0x0f, 0xbc, 0xc2, //0x000018be bsfq %rdx, %rax + 0xe9, 0xae, 0xec, 0xff, 0xff, //0x000018c2 jmp LBB0_59 + //0x000018c7 LBB0_113 + 0x4d, 0x89, 0xc3, //0x000018c7 movq %r8, %r11 + 0x48, 0x8b, 0x45, 0xb8, //0x000018ca movq $-72(%rbp), %rax + 0x4d, 0x89, 0xd5, //0x000018ce movq %r10, %r13 + 0x48, 0x83, 0xf8, 0x20, //0x000018d1 cmpq $32, %rax + 0x0f, 0x82, 0x0c, 0x07, 0x00, 0x00, //0x000018d5 jb LBB0_357 + //0x000018db LBB0_114 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x000018db movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x000018e0 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x000018e6 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000018ea pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xc5, //0x000018ee pmovmskb %xmm5, %r8d + 0x66, 0x0f, 0x6f, 0xec, //0x000018f3 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x000018f7 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x000018fb pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xeb, //0x000018ff movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001903 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001907 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x0000190b movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x0000190f pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001913 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001917 movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x0000191b pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x0000191f pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001924 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001928 pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x0000192d movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001931 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001935 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x0000193a pand %xmm3, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x0000193e pmovmskb %xmm4, %r10d + 0x48, 0xc1, 0xe6, 0x10, //0x00001943 shlq $16, %rsi + 0x48, 0xc1, 0xe1, 0x10, //0x00001947 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x0000194b orq %rcx, %rdx + 0x49, 0x83, 0xf9, 0xff, //0x0000194e cmpq $-1, %r9 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001952 jne LBB0_116 + 0x48, 0x85, 0xd2, //0x00001958 testq %rdx, %rdx + 0x0f, 0x85, 0xd1, 0x08, 0x00, 0x00, //0x0000195b jne LBB0_382 + //0x00001961 LBB0_116 + 0x49, 0xc1, 0xe2, 0x10, //0x00001961 shlq $16, %r10 + 0x4c, 0x09, 0xc6, //0x00001965 orq %r8, %rsi + 0x48, 0x89, 0xd1, //0x00001968 movq %rdx, %rcx + 0x48, 0x09, 0xd9, //0x0000196b orq %rbx, %rcx + 0x0f, 0x85, 0x9b, 0x07, 0x00, 0x00, //0x0000196e jne LBB0_370 + //0x00001974 LBB0_117 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001974 movq $-64(%rbp), %rdi + 0x4d, 0x09, 0xf2, //0x00001978 orq %r14, %r10 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x0000197b movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001980 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001985 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001988 je LBB0_119 + 0x48, 0x0f, 0xbc, 0xd6, //0x0000198e bsfq %rsi, %rdx + //0x00001992 LBB0_119 + 0x4d, 0x85, 0xd2, //0x00001992 testq %r10, %r10 + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001995 je LBB0_121 + 0x49, 0x0f, 0xbc, 0xca, //0x0000199b bsfq %r10, %rcx + //0x0000199f LBB0_121 + 0x48, 0x85, 0xf6, //0x0000199f testq %rsi, %rsi + 0x0f, 0x84, 0xe0, 0x01, 0x00, 0x00, //0x000019a2 je LBB0_313 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000019a8 subq $-48(%rbp), %r11 + 0x48, 0x39, 0xd1, //0x000019ac cmpq %rdx, %rcx + 0x0f, 0x82, 0x22, 0x0e, 0x00, 0x00, //0x000019af jb LBB0_149 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x000019b5 leaq $1(%r11,%rdx), %r11 + 0x4d, 0x89, 0xea, //0x000019ba movq %r13, %r10 + 0xe9, 0xc0, 0xf5, 0xff, 0xff, //0x000019bd jmp LBB0_188 + //0x000019c2 LBB0_310 + 0x48, 0x85, 0xc0, //0x000019c2 testq %rax, %rax + 0x48, 0x8d, 0x47, 0xff, //0x000019c5 leaq $-1(%rdi), %rax + 0x48, 0xf7, 0xd7, //0x000019c9 notq %rdi + 0x49, 0x0f, 0x48, 0xf8, //0x000019cc cmovsq %r8, %rdi + 0x49, 0x39, 0xc6, //0x000019d0 cmpq %rax, %r14 + 0x49, 0x0f, 0x45, 0xf8, //0x000019d3 cmovneq %r8, %rdi + 0x49, 0x89, 0xfb, //0x000019d7 movq %rdi, %r11 + 0xe9, 0x3c, 0x03, 0x00, 0x00, //0x000019da jmp LBB0_340 + //0x000019df LBB0_311 + 0x48, 0xf7, 0xd0, //0x000019df notq %rax + 0x49, 0x89, 0xc3, //0x000019e2 movq %rax, %r11 + 0xe9, 0xf4, 0x02, 0x00, 0x00, //0x000019e5 jmp LBB0_334 + //0x000019ea LBB0_312 + 0x49, 0x89, 0xc3, //0x000019ea movq %rax, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000019ed movq $-1, %rax + 0x4d, 0x85, 0xe4, //0x000019f4 testq %r12, %r12 + 0x48, 0x8b, 0x75, 0xc8, //0x000019f7 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0xad, 0xf2, 0xff, 0xff, //0x000019fb jne LBB0_153 + 0xe9, 0xce, 0x0b, 0x00, 0x00, //0x00001a01 jmp LBB0_424 + //0x00001a06 LBB0_136 + 0x4c, 0x8b, 0x9d, 0x70, 0xff, 0xff, 0xff, //0x00001a06 movq $-144(%rbp), %r11 + 0x4c, 0x8b, 0x6d, 0xb0, //0x00001a0d movq $-80(%rbp), %r13 + 0x49, 0x83, 0xfd, 0x20, //0x00001a11 cmpq $32, %r13 + 0x0f, 0x82, 0xf9, 0x08, 0x00, 0x00, //0x00001a15 jb LBB0_389 + //0x00001a1b LBB0_137 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001a1b movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001a20 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001a26 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a2a pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xfd, //0x00001a2e pmovmskb %xmm5, %edi + 0x66, 0x0f, 0x6f, 0xec, //0x00001a32 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001a36 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001a3a pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001a3e pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001a42 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001a46 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001a4a pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001a4e shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001a52 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001a56 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001a59 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001a5d jne LBB0_139 + 0x48, 0x85, 0xc9, //0x00001a63 testq %rcx, %rcx + 0x0f, 0x85, 0x47, 0x08, 0x00, 0x00, //0x00001a66 jne LBB0_386 + //0x00001a6c LBB0_139 + 0x48, 0x09, 0xfa, //0x00001a6c orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x00001a6f movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001a72 orq %r9, %rax + 0x0f, 0x85, 0x55, 0x08, 0x00, 0x00, //0x00001a75 jne LBB0_387 + //0x00001a7b LBB0_140 + 0x48, 0x85, 0xd2, //0x00001a7b testq %rdx, %rdx + 0x0f, 0x84, 0x88, 0x08, 0x00, 0x00, //0x00001a7e je LBB0_388 + //0x00001a84 LBB0_141 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001a84 bsfq %rdx, %rax + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00001a88 jmp LBB0_145 + //0x00001a8d LBB0_170 + 0x4d, 0x89, 0xe3, //0x00001a8d movq %r12, %r11 + 0x48, 0x8b, 0x45, 0xb0, //0x00001a90 movq $-80(%rbp), %rax + 0x48, 0x83, 0xf8, 0x20, //0x00001a94 cmpq $32, %rax + 0x0f, 0x82, 0xc7, 0x05, 0x00, 0x00, //0x00001a98 jb LBB0_364 + //0x00001a9e LBB0_171 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001a9e movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001aa3 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001aa9 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001aad pcmpeqb %xmm0, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xcd, //0x00001ab1 pmovmskb %xmm5, %r9d + 0x66, 0x0f, 0x6f, 0xec, //0x00001ab6 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001aba pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00001abe pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x6f, 0xeb, //0x00001ac2 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001ac6 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001aca pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001ace movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001ad2 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001ad6 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xea, //0x00001ada movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001ade pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001ae2 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001ae7 pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001aeb pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001af0 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001af4 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001af8 pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001afd pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00001b01 pmovmskb %xmm4, %edi + 0x48, 0xc1, 0xe3, 0x10, //0x00001b05 shlq $16, %rbx + 0x48, 0xc1, 0xe1, 0x10, //0x00001b09 shlq $16, %rcx + 0x48, 0x09, 0xca, //0x00001b0d orq %rcx, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001b10 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001b14 jne LBB0_173 + 0x48, 0x85, 0xd2, //0x00001b1a testq %rdx, %rdx + 0x0f, 0x85, 0x7e, 0x08, 0x00, 0x00, //0x00001b1d jne LBB0_397 + //0x00001b23 LBB0_173 + 0x48, 0xc1, 0xe7, 0x10, //0x00001b23 shlq $16, %rdi + 0x4c, 0x09, 0xcb, //0x00001b27 orq %r9, %rbx + 0x48, 0x89, 0xd1, //0x00001b2a movq %rdx, %rcx + 0x4c, 0x09, 0xd1, //0x00001b2d orq %r10, %rcx + 0x0f, 0x85, 0x0f, 0x07, 0x00, 0x00, //0x00001b30 jne LBB0_383 + //0x00001b36 LBB0_174 + 0x48, 0x8b, 0x75, 0xc8, //0x00001b36 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001b3a movq $-48(%rbp), %r9 + 0x4c, 0x09, 0xf7, //0x00001b3e orq %r14, %rdi + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001b41 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001b46 movl $64, %edx + 0x48, 0x85, 0xdb, //0x00001b4b testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b4e je LBB0_176 + 0x48, 0x0f, 0xbc, 0xd3, //0x00001b54 bsfq %rbx, %rdx + //0x00001b58 LBB0_176 + 0x48, 0x85, 0xff, //0x00001b58 testq %rdi, %rdi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001b5b je LBB0_178 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001b61 bsfq %rdi, %rcx + //0x00001b65 LBB0_178 + 0x48, 0x85, 0xdb, //0x00001b65 testq %rbx, %rbx + 0x0f, 0x84, 0xcd, 0x00, 0x00, 0x00, //0x00001b68 je LBB0_324 + 0x4d, 0x29, 0xcb, //0x00001b6e subq %r9, %r11 + 0x48, 0x39, 0xd1, //0x00001b71 cmpq %rdx, %rcx + 0x0f, 0x82, 0x6f, 0x0c, 0x00, 0x00, //0x00001b74 jb LBB0_185 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001b7a leaq $1(%r11,%rdx), %r11 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001b7f movq $-72(%rbp), %r10 + 0xe9, 0x65, 0xf4, 0xff, 0xff, //0x00001b83 jmp LBB0_195 + //0x00001b88 LBB0_313 + 0x4d, 0x85, 0xd2, //0x00001b88 testq %r10, %r10 + 0x0f, 0x85, 0x82, 0x0c, 0x00, 0x00, //0x00001b8b jne LBB0_467 + 0x49, 0x83, 0xc3, 0x20, //0x00001b91 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001b95 addq $-32, %rax + 0x48, 0x85, 0xdb, //0x00001b99 testq %rbx, %rbx + 0x0f, 0x85, 0x52, 0x04, 0x00, 0x00, //0x00001b9c jne LBB0_358 + //0x00001ba2 LBB0_315 + 0x4d, 0x89, 0xea, //0x00001ba2 movq %r13, %r10 + 0x48, 0x85, 0xc0, //0x00001ba5 testq %rax, %rax + 0x0f, 0x84, 0x08, 0x0a, 0x00, 0x00, //0x00001ba8 je LBB0_420 + //0x00001bae LBB0_316 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001bae movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001bb2 cmpb $34, %cl + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00001bb5 je LBB0_323 + 0x80, 0xf9, 0x5c, //0x00001bbb cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001bbe je LBB0_320 + 0x80, 0xf9, 0x1f, //0x00001bc4 cmpb $31, %cl + 0x0f, 0x86, 0x4f, 0x0c, 0x00, 0x00, //0x00001bc7 jbe LBB0_468 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001bcd movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001bd4 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001bd9 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001bdc addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001bdf jne LBB0_316 + 0xe9, 0xcc, 0x09, 0x00, 0x00, //0x00001be5 jmp LBB0_420 + //0x00001bea LBB0_320 + 0x48, 0x83, 0xf8, 0x01, //0x00001bea cmpq $1, %rax + 0x0f, 0x84, 0x5d, 0x0c, 0x00, 0x00, //0x00001bee je LBB0_473 + 0x4c, 0x89, 0xd9, //0x00001bf4 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00001bf7 subq $-48(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00001bfb cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00001bff cmoveq %rcx, %r9 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001c03 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001c0a movl $2, %edx + 0x48, 0x8b, 0x7d, 0xc0, //0x00001c0f movq $-64(%rbp), %rdi + 0x4d, 0x89, 0xea, //0x00001c13 movq %r13, %r10 + 0x49, 0x01, 0xd3, //0x00001c16 addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001c19 addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001c1c jne LBB0_316 + 0xe9, 0x8f, 0x09, 0x00, 0x00, //0x00001c22 jmp LBB0_420 + //0x00001c27 LBB0_322 + 0x48, 0xf7, 0xd6, //0x00001c27 notq %rsi + 0x49, 0x89, 0xf3, //0x00001c2a movq %rsi, %r11 + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00001c2d jmp LBB0_334 + //0x00001c32 LBB0_323 + 0x4c, 0x03, 0x5d, 0xa0, //0x00001c32 addq $-96(%rbp), %r11 + 0xe9, 0x47, 0xf3, 0xff, 0xff, //0x00001c36 jmp LBB0_188 + //0x00001c3b LBB0_324 + 0x48, 0x85, 0xff, //0x00001c3b testq %rdi, %rdi + 0x0f, 0x85, 0xe9, 0x0b, 0x00, 0x00, //0x00001c3e jne LBB0_470 + 0x49, 0x83, 0xc3, 0x20, //0x00001c44 addq $32, %r11 + 0x48, 0x83, 0xc0, 0xe0, //0x00001c48 addq $-32, %rax + 0x4d, 0x85, 0xd2, //0x00001c4c testq %r10, %r10 + 0x0f, 0x85, 0x21, 0x04, 0x00, 0x00, //0x00001c4f jne LBB0_365 + //0x00001c55 LBB0_326 + 0x4c, 0x8b, 0x55, 0xb8, //0x00001c55 movq $-72(%rbp), %r10 + 0x48, 0x85, 0xc0, //0x00001c59 testq %rax, %rax + 0x0f, 0x84, 0x9b, 0x09, 0x00, 0x00, //0x00001c5c je LBB0_429 + //0x00001c62 LBB0_327 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001c62 movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001c66 cmpb $34, %cl + 0x0f, 0x84, 0xd0, 0x00, 0x00, 0x00, //0x00001c69 je LBB0_342 + 0x80, 0xf9, 0x5c, //0x00001c6f cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001c72 je LBB0_331 + 0x80, 0xf9, 0x1f, //0x00001c78 cmpb $31, %cl + 0x0f, 0x86, 0xa4, 0x0b, 0x00, 0x00, //0x00001c7b jbe LBB0_469 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001c81 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001c88 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001c8d addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001c90 addq %rcx, %rax + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001c93 jne LBB0_327 + 0xe9, 0x5f, 0x09, 0x00, 0x00, //0x00001c99 jmp LBB0_429 + //0x00001c9e LBB0_331 + 0x48, 0x83, 0xf8, 0x01, //0x00001c9e cmpq $1, %rax + 0x0f, 0x84, 0xb1, 0x0b, 0x00, 0x00, //0x00001ca2 je LBB0_475 + 0x4c, 0x89, 0xd9, //0x00001ca8 movq %r11, %rcx + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001cab movq $-48(%rbp), %r9 + 0x4c, 0x29, 0xc9, //0x00001caf subq %r9, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001cb2 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00001cb6 cmoveq %rcx, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001cba movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001cc1 movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001cc6 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001cca addq %rdx, %r11 + 0x48, 0x01, 0xc8, //0x00001ccd addq %rcx, %rax + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001cd0 jne LBB0_327 + 0xe9, 0x22, 0x09, 0x00, 0x00, //0x00001cd6 jmp LBB0_429 + //0x00001cdb LBB0_333 + 0x49, 0xf7, 0xdb, //0x00001cdb negq %r11 + //0x00001cde LBB0_334 + 0x48, 0x8b, 0x75, 0xc8, //0x00001cde movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001ce2 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xdb, //0x00001ce6 testq %r11, %r11 + 0x0f, 0x88, 0xe2, 0x08, 0x00, 0x00, //0x00001ce9 js LBB0_423 + //0x00001cef LBB0_335 + 0x4d, 0x01, 0xfb, //0x00001cef addq %r15, %r11 + //0x00001cf2 LBB0_336 + 0x4c, 0x89, 0x1e, //0x00001cf2 movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001cf5 movq %r15, %rax + 0x4d, 0x85, 0xff, //0x00001cf8 testq %r15, %r15 + 0x0f, 0x89, 0x83, 0xe4, 0xff, 0xff, //0x00001cfb jns LBB0_4 + 0xe9, 0xde, 0x08, 0x00, 0x00, //0x00001d01 jmp LBB0_427 + //0x00001d06 LBB0_337 + 0x4d, 0x29, 0xe5, //0x00001d06 subq %r12, %r13 + 0x44, 0x0f, 0xbc, 0xdf, //0x00001d09 bsfl %edi, %r11d + 0x4d, 0x01, 0xeb, //0x00001d0d addq %r13, %r11 + //0x00001d10 LBB0_338 + 0x49, 0xf7, 0xd3, //0x00001d10 notq %r11 + //0x00001d13 LBB0_339 + 0x48, 0x8b, 0x75, 0xc8, //0x00001d13 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001d17 movq $-48(%rbp), %r9 + //0x00001d1b LBB0_340 + 0x4d, 0x85, 0xdb, //0x00001d1b testq %r11, %r11 + 0x0f, 0x88, 0x3b, 0x09, 0x00, 0x00, //0x00001d1e js LBB0_438 + //0x00001d24 LBB0_341 + 0x48, 0x8b, 0x4d, 0xc0, //0x00001d24 movq $-64(%rbp), %rcx + 0x49, 0x01, 0xcb, //0x00001d28 addq %rcx, %r11 + 0x4c, 0x89, 0x1e, //0x00001d2b movq %r11, (%rsi) + 0x4c, 0x89, 0xf8, //0x00001d2e movq %r15, %rax + 0x48, 0x85, 0xc9, //0x00001d31 testq %rcx, %rcx + 0x0f, 0x8f, 0x4a, 0xe4, 0xff, 0xff, //0x00001d34 jg LBB0_4 + 0xe9, 0xa5, 0x08, 0x00, 0x00, //0x00001d3a jmp LBB0_427 + //0x00001d3f LBB0_342 + 0x4c, 0x03, 0x5d, 0xa0, //0x00001d3f addq $-96(%rbp), %r11 + 0xe9, 0xa5, 0xf2, 0xff, 0xff, //0x00001d43 jmp LBB0_195 + //0x00001d48 LBB0_208 + 0x4d, 0x89, 0xe3, //0x00001d48 movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb0, //0x00001d4b movq $-80(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001d4f cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001d53 movq $-72(%rbp), %rdi + 0x0f, 0x82, 0x2c, 0x07, 0x00, 0x00, //0x00001d57 jb LBB0_404 + //0x00001d5d LBB0_209 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001d5d movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001d62 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001d68 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d6c pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001d70 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xec, //0x00001d74 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001d78 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001d7c pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x74, 0xd9, //0x00001d80 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00001d84 pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x00001d88 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00001d8c pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe2, 0x10, //0x00001d90 shlq $16, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00001d94 shlq $16, %rax + 0x48, 0x09, 0xc1, //0x00001d98 orq %rax, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001d9b cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001d9f jne LBB0_211 + 0x48, 0x85, 0xc9, //0x00001da5 testq %rcx, %rcx + 0x0f, 0x85, 0x75, 0x06, 0x00, 0x00, //0x00001da8 jne LBB0_401 + //0x00001dae LBB0_211 + 0x48, 0x09, 0xf2, //0x00001dae orq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x00001db1 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00001db4 orq %r9, %rax + 0x0f, 0x85, 0x83, 0x06, 0x00, 0x00, //0x00001db7 jne LBB0_402 + //0x00001dbd LBB0_212 + 0x48, 0x85, 0xd2, //0x00001dbd testq %rdx, %rdx + 0x0f, 0x84, 0xbb, 0x06, 0x00, 0x00, //0x00001dc0 je LBB0_403 + //0x00001dc6 LBB0_213 + 0x48, 0x0f, 0xbc, 0xc2, //0x00001dc6 bsfq %rdx, %rax + 0x4c, 0x03, 0x5d, 0xa0, //0x00001dca addq $-96(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00001dce addq %rax, %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00001dd1 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001dd5 movq $-48(%rbp), %r9 + 0xe9, 0x11, 0xfa, 0xff, 0xff, //0x00001dd9 jmp LBB0_304 + //0x00001dde LBB0_275 + 0x4d, 0x89, 0xe3, //0x00001dde movq %r12, %r11 + 0x4c, 0x8b, 0x55, 0xb0, //0x00001de1 movq $-80(%rbp), %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00001de5 cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00001de9 movq $-72(%rbp), %rdi + 0x0f, 0x82, 0x32, 0x01, 0x00, 0x00, //0x00001ded jb LBB0_347 + //0x00001df3 LBB0_276 + 0xf3, 0x41, 0x0f, 0x6f, 0x1b, //0x00001df3 movdqu (%r11), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x63, 0x10, //0x00001df8 movdqu $16(%r11), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00001dfe movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001e02 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xcd, //0x00001e06 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e0a movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00001e0e pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0xd7, 0xf5, //0x00001e12 pmovmskb %xmm5, %esi + 0x66, 0x0f, 0x6f, 0xeb, //0x00001e16 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e1a pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00001e1e pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xec, //0x00001e22 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe9, //0x00001e26 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xd7, 0xc5, //0x00001e2a pmovmskb %xmm5, %eax + 0x66, 0x0f, 0x6f, 0xea, //0x00001e2e movdqa %xmm2, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00001e32 pcmpgtb %xmm3, %xmm5 + 0x66, 0x41, 0x0f, 0x64, 0xde, //0x00001e36 pcmpgtb %xmm14, %xmm3 + 0x66, 0x0f, 0xdb, 0xdd, //0x00001e3b pand %xmm5, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xf3, //0x00001e3f pmovmskb %xmm3, %r14d + 0x66, 0x0f, 0x6f, 0xda, //0x00001e44 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xdc, //0x00001e48 pcmpgtb %xmm4, %xmm3 + 0x66, 0x41, 0x0f, 0x64, 0xe6, //0x00001e4c pcmpgtb %xmm14, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00001e51 pand %xmm3, %xmm4 + 0x66, 0x0f, 0xd7, 0xdc, //0x00001e55 pmovmskb %xmm4, %ebx + 0x48, 0xc1, 0xe6, 0x10, //0x00001e59 shlq $16, %rsi + 0x48, 0xc1, 0xe0, 0x10, //0x00001e5d shlq $16, %rax + 0x48, 0x09, 0xc2, //0x00001e61 orq %rax, %rdx + 0x49, 0x83, 0xf8, 0xff, //0x00001e64 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001e68 jne LBB0_278 + 0x48, 0x85, 0xd2, //0x00001e6e testq %rdx, %rdx + 0x0f, 0x85, 0x9f, 0x06, 0x00, 0x00, //0x00001e71 jne LBB0_412 + //0x00001e77 LBB0_278 + 0x48, 0xc1, 0xe3, 0x10, //0x00001e77 shlq $16, %rbx + 0x48, 0x09, 0xce, //0x00001e7b orq %rcx, %rsi + 0x48, 0x89, 0xd0, //0x00001e7e movq %rdx, %rax + 0x4c, 0x09, 0xc8, //0x00001e81 orq %r9, %rax + 0x0f, 0x85, 0x5e, 0x05, 0x00, 0x00, //0x00001e84 jne LBB0_400 + //0x00001e8a LBB0_279 + 0x4c, 0x09, 0xf3, //0x00001e8a orq %r14, %rbx + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001e8d movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00001e92 movl $64, %edx + 0x48, 0x85, 0xf6, //0x00001e97 testq %rsi, %rsi + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001e9a je LBB0_281 + 0x48, 0x0f, 0xbc, 0xd6, //0x00001ea0 bsfq %rsi, %rdx + //0x00001ea4 LBB0_281 + 0x48, 0x85, 0xdb, //0x00001ea4 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00001ea7 je LBB0_283 + 0x48, 0x0f, 0xbc, 0xcb, //0x00001ead bsfq %rbx, %rcx + //0x00001eb1 LBB0_283 + 0x48, 0x85, 0xf6, //0x00001eb1 testq %rsi, %rsi + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00001eb4 je LBB0_345 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001eba movq $-48(%rbp), %r9 + 0x4d, 0x29, 0xcb, //0x00001ebe subq %r9, %r11 + 0x48, 0x39, 0xd1, //0x00001ec1 cmpq %rdx, %rcx + 0x0f, 0x82, 0x6c, 0x09, 0x00, 0x00, //0x00001ec4 jb LBB0_471 + 0x4d, 0x8d, 0x5c, 0x13, 0x01, //0x00001eca leaq $1(%r11,%rdx), %r11 + 0x48, 0x8b, 0x75, 0xc8, //0x00001ecf movq $-56(%rbp), %rsi + 0xe9, 0x17, 0xf9, 0xff, 0xff, //0x00001ed3 jmp LBB0_304 + //0x00001ed8 LBB0_343 + 0x49, 0x89, 0xc8, //0x00001ed8 movq %rcx, %r8 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001edb movq $-1, %r11 + 0x48, 0x85, 0xff, //0x00001ee2 testq %rdi, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00001ee5 movq $-56(%rbp), %rsi + 0x0f, 0x85, 0x7e, 0xf8, 0xff, 0xff, //0x00001ee9 jne LBB0_292 + 0xe9, 0x6b, 0x07, 0x00, 0x00, //0x00001eef jmp LBB0_438 + //0x00001ef4 LBB0_344 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00001ef4 movq $-1, %r13 + 0x4d, 0x89, 0xd3, //0x00001efb movq %r10, %r11 + 0x49, 0x89, 0xf9, //0x00001efe movq %rdi, %r9 + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00001f01 movq $-1, %r12 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00001f08 movq $-1, %rdi + 0xe9, 0xcc, 0xe8, 0xff, 0xff, //0x00001f0f jmp LBB0_92 + //0x00001f14 LBB0_345 + 0x48, 0x85, 0xdb, //0x00001f14 testq %rbx, %rbx + 0x0f, 0x85, 0x2b, 0x09, 0x00, 0x00, //0x00001f17 jne LBB0_472 + 0x49, 0x83, 0xc3, 0x20, //0x00001f1d addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00001f21 addq $-32, %r10 + //0x00001f25 LBB0_347 + 0x4d, 0x85, 0xc9, //0x00001f25 testq %r9, %r9 + 0x0f, 0x85, 0x2f, 0x06, 0x00, 0x00, //0x00001f28 jne LBB0_415 + 0x48, 0x8b, 0x75, 0xc8, //0x00001f2e movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001f32 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x00001f36 testq %r10, %r10 + 0x0f, 0x84, 0x32, 0x07, 0x00, 0x00, //0x00001f39 je LBB0_442 + //0x00001f3f LBB0_349 + 0x41, 0x0f, 0xb6, 0x0b, //0x00001f3f movzbl (%r11), %ecx + 0x80, 0xf9, 0x22, //0x00001f43 cmpb $34, %cl + 0x0f, 0x84, 0xdb, 0x00, 0x00, 0x00, //0x00001f46 je LBB0_360 + 0x80, 0xf9, 0x5c, //0x00001f4c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00001f4f je LBB0_353 + 0x80, 0xf9, 0x1f, //0x00001f55 cmpb $31, %cl + 0x0f, 0x86, 0xc7, 0x08, 0x00, 0x00, //0x00001f58 jbe LBB0_469 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001f5e movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001f65 movl $1, %edx + 0x49, 0x01, 0xd3, //0x00001f6a addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001f6d addq %rcx, %r10 + 0x0f, 0x85, 0xc9, 0xff, 0xff, 0xff, //0x00001f70 jne LBB0_349 + 0xe9, 0xf6, 0x06, 0x00, 0x00, //0x00001f76 jmp LBB0_442 + //0x00001f7b LBB0_353 + 0x49, 0x83, 0xfa, 0x01, //0x00001f7b cmpq $1, %r10 + 0x0f, 0x84, 0xea, 0x08, 0x00, 0x00, //0x00001f7f je LBB0_476 + 0x4c, 0x89, 0xd8, //0x00001f85 movq %r11, %rax + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001f88 movq $-48(%rbp), %r9 + 0x4c, 0x29, 0xc8, //0x00001f8c subq %r9, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00001f8f cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00001f93 cmoveq %rax, %r8 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00001f97 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00001f9e movl $2, %edx + 0x48, 0x8b, 0x75, 0xc8, //0x00001fa3 movq $-56(%rbp), %rsi + 0x49, 0x01, 0xd3, //0x00001fa7 addq %rdx, %r11 + 0x49, 0x01, 0xca, //0x00001faa addq %rcx, %r10 + 0x0f, 0x85, 0x8c, 0xff, 0xff, 0xff, //0x00001fad jne LBB0_349 + 0xe9, 0xb9, 0x06, 0x00, 0x00, //0x00001fb3 jmp LBB0_442 + //0x00001fb8 LBB0_355 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001fb8 movq $-1, %r9 + 0x45, 0x31, 0xc0, //0x00001fbf xorl %r8d, %r8d + 0x49, 0x83, 0xfd, 0x20, //0x00001fc2 cmpq $32, %r13 + 0x0f, 0x83, 0x89, 0xf8, 0xff, 0xff, //0x00001fc6 jae LBB0_51 + 0xe9, 0xdb, 0x01, 0x00, 0x00, //0x00001fcc jmp LBB0_374 + //0x00001fd1 LBB0_356 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00001fd1 movq $-1, %r9 + 0x31, 0xdb, //0x00001fd8 xorl %ebx, %ebx + 0x4d, 0x89, 0xd5, //0x00001fda movq %r10, %r13 + 0x48, 0x83, 0xf8, 0x20, //0x00001fdd cmpq $32, %rax + 0x0f, 0x83, 0xf4, 0xf8, 0xff, 0xff, //0x00001fe1 jae LBB0_114 + //0x00001fe7 LBB0_357 + 0x48, 0x8b, 0x7d, 0xc0, //0x00001fe7 movq $-64(%rbp), %rdi + 0x48, 0x85, 0xdb, //0x00001feb testq %rbx, %rbx + 0x0f, 0x84, 0xae, 0xfb, 0xff, 0xff, //0x00001fee je LBB0_315 + //0x00001ff4 LBB0_358 + 0x48, 0x85, 0xc0, //0x00001ff4 testq %rax, %rax + 0x0f, 0x84, 0x54, 0x08, 0x00, 0x00, //0x00001ff7 je LBB0_473 + 0x48, 0x8b, 0x4d, 0xa8, //0x00001ffd movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002001 addq %r11, %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002004 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002008 cmoveq %rcx, %r9 + 0x49, 0xff, 0xc3, //0x0000200c incq %r11 + 0x48, 0xff, 0xc8, //0x0000200f decq %rax + 0x48, 0x8b, 0x7d, 0xc0, //0x00002012 movq $-64(%rbp), %rdi + 0x4d, 0x89, 0xea, //0x00002016 movq %r13, %r10 + 0x48, 0x85, 0xc0, //0x00002019 testq %rax, %rax + 0x0f, 0x85, 0x8c, 0xfb, 0xff, 0xff, //0x0000201c jne LBB0_316 + 0xe9, 0x8f, 0x05, 0x00, 0x00, //0x00002022 jmp LBB0_420 + //0x00002027 LBB0_360 + 0x4c, 0x03, 0x5d, 0xa0, //0x00002027 addq $-96(%rbp), %r11 + 0xe9, 0xbf, 0xf7, 0xff, 0xff, //0x0000202b jmp LBB0_304 + //0x00002030 LBB0_361 + 0x49, 0xf7, 0xdb, //0x00002030 negq %r11 + 0xe9, 0xdb, 0xfc, 0xff, 0xff, //0x00002033 jmp LBB0_339 + //0x00002038 LBB0_362 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002038 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x0000203f xorl %r9d, %r9d + 0x49, 0x83, 0xfd, 0x20, //0x00002042 cmpq $32, %r13 + 0x0f, 0x83, 0xcf, 0xf9, 0xff, 0xff, //0x00002046 jae LBB0_137 + 0xe9, 0xc3, 0x02, 0x00, 0x00, //0x0000204c jmp LBB0_389 + //0x00002051 LBB0_363 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002051 movq $-1, %r8 + 0x45, 0x31, 0xd2, //0x00002058 xorl %r10d, %r10d + 0x48, 0x83, 0xf8, 0x20, //0x0000205b cmpq $32, %rax + 0x0f, 0x83, 0x39, 0xfa, 0xff, 0xff, //0x0000205f jae LBB0_171 + //0x00002065 LBB0_364 + 0x48, 0x8b, 0x75, 0xc8, //0x00002065 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002069 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000206d testq %r10, %r10 + 0x0f, 0x84, 0xdf, 0xfb, 0xff, 0xff, //0x00002070 je LBB0_326 + //0x00002076 LBB0_365 + 0x48, 0x85, 0xc0, //0x00002076 testq %rax, %rax + 0x0f, 0x84, 0xe3, 0x07, 0x00, 0x00, //0x00002079 je LBB0_474 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000207f movq $-88(%rbp), %rcx + 0x4c, 0x01, 0xd9, //0x00002083 addq %r11, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00002086 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x0000208a cmoveq %rcx, %r8 + 0x49, 0xff, 0xc3, //0x0000208e incq %r11 + 0x48, 0xff, 0xc8, //0x00002091 decq %rax + 0x48, 0x8b, 0x75, 0xc8, //0x00002094 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002098 movq $-48(%rbp), %r9 + 0x4c, 0x8b, 0x55, 0xb8, //0x0000209c movq $-72(%rbp), %r10 + 0x48, 0x85, 0xc0, //0x000020a0 testq %rax, %rax + 0x0f, 0x85, 0xb9, 0xfb, 0xff, 0xff, //0x000020a3 jne LBB0_327 + 0xe9, 0x4f, 0x05, 0x00, 0x00, //0x000020a9 jmp LBB0_429 + //0x000020ae LBB0_367 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000020ae movq $-1, %r14 + 0x4d, 0x89, 0xe0, //0x000020b5 movq %r12, %r8 + 0x4d, 0x89, 0xd1, //0x000020b8 movq %r10, %r9 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000020bb movq $-1, %rdi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000020c2 movq $-1, %rbx + 0x48, 0x8d, 0x35, 0xb0, 0x09, 0x00, 0x00, //0x000020c9 leaq $2480(%rip), %rsi /* LJTI0_2+0(%rip) */ + 0xe9, 0xf6, 0xf2, 0xff, 0xff, //0x000020d0 jmp LBB0_241 + //0x000020d5 LBB0_368 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000020d5 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x000020dc xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x000020df cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x000020e3 movq $-72(%rbp), %rdi + 0x0f, 0x83, 0x70, 0xfc, 0xff, 0xff, //0x000020e7 jae LBB0_209 + 0xe9, 0x97, 0x03, 0x00, 0x00, //0x000020ed jmp LBB0_404 + //0x000020f2 LBB0_369 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000020f2 movq $-1, %r8 + 0x45, 0x31, 0xc9, //0x000020f9 xorl %r9d, %r9d + 0x49, 0x83, 0xfa, 0x20, //0x000020fc cmpq $32, %r10 + 0x48, 0x8b, 0x7d, 0xb8, //0x00002100 movq $-72(%rbp), %rdi + 0x0f, 0x83, 0xe9, 0xfc, 0xff, 0xff, //0x00002104 jae LBB0_276 + 0xe9, 0x16, 0xfe, 0xff, 0xff, //0x0000210a jmp LBB0_347 + //0x0000210f LBB0_370 + 0x41, 0x89, 0xdc, //0x0000210f movl %ebx, %r12d + 0x41, 0xf7, 0xd4, //0x00002112 notl %r12d + 0x41, 0x21, 0xd4, //0x00002115 andl %edx, %r12d + 0x47, 0x8d, 0x04, 0x24, //0x00002118 leal (%r12,%r12), %r8d + 0x41, 0x09, 0xd8, //0x0000211c orl %ebx, %r8d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000211f movl $2863311530, %ecx + 0x44, 0x31, 0xc1, //0x00002124 xorl %r8d, %ecx + 0x21, 0xd1, //0x00002127 andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002129 andl $-1431655766, %ecx + 0x31, 0xdb, //0x0000212f xorl %ebx, %ebx + 0x44, 0x01, 0xe1, //0x00002131 addl %r12d, %ecx + 0x0f, 0x92, 0xc3, //0x00002134 setb %bl + 0x01, 0xc9, //0x00002137 addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002139 xorl $1431655765, %ecx + 0x44, 0x21, 0xc1, //0x0000213f andl %r8d, %ecx + 0xf7, 0xd1, //0x00002142 notl %ecx + 0x21, 0xce, //0x00002144 andl %ecx, %esi + 0xe9, 0x29, 0xf8, 0xff, 0xff, //0x00002146 jmp LBB0_117 + //0x0000214b LBB0_371 + 0x4c, 0x89, 0xd8, //0x0000214b movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x0000214e subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc9, //0x00002152 bsfq %rcx, %r9 + 0x49, 0x01, 0xc1, //0x00002156 addq %rax, %r9 + 0x48, 0x09, 0xfa, //0x00002159 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x0000215c movq %rcx, %rax + 0x4c, 0x09, 0xc0, //0x0000215f orq %r8, %rax + 0x0f, 0x84, 0x4d, 0xf7, 0xff, 0xff, //0x00002162 je LBB0_54 + //0x00002168 LBB0_372 + 0x44, 0x89, 0xc0, //0x00002168 movl %r8d, %eax + 0xf7, 0xd0, //0x0000216b notl %eax + 0x21, 0xc8, //0x0000216d andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x0000216f leal (%rax,%rax), %esi + 0x44, 0x09, 0xc6, //0x00002172 orl %r8d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002175 movl $2863311530, %edi + 0x31, 0xf7, //0x0000217a xorl %esi, %edi + 0x21, 0xcf, //0x0000217c andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000217e andl $-1431655766, %edi + 0x45, 0x31, 0xc0, //0x00002184 xorl %r8d, %r8d + 0x01, 0xc7, //0x00002187 addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc0, //0x00002189 setb %r8b + 0x01, 0xff, //0x0000218d addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x0000218f xorl $1431655765, %edi + 0x21, 0xf7, //0x00002195 andl %esi, %edi + 0xf7, 0xd7, //0x00002197 notl %edi + 0x21, 0xfa, //0x00002199 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x0000219b testq %rdx, %rdx + 0x0f, 0x85, 0x1a, 0xf7, 0xff, 0xff, //0x0000219e jne LBB0_55 + //0x000021a4 LBB0_373 + 0x49, 0x83, 0xc3, 0x20, //0x000021a4 addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x000021a8 addq $-32, %r13 + //0x000021ac LBB0_374 + 0x4d, 0x85, 0xc0, //0x000021ac testq %r8, %r8 + 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x000021af jne LBB0_384 + 0x48, 0x8b, 0x7d, 0xc0, //0x000021b5 movq $-64(%rbp), %rdi + 0x4d, 0x85, 0xed, //0x000021b9 testq %r13, %r13 + 0x0f, 0x84, 0xf4, 0x03, 0x00, 0x00, //0x000021bc je LBB0_420 + //0x000021c2 LBB0_376 + 0x49, 0x8d, 0x4b, 0x01, //0x000021c2 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000021c6 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000021ca cmpb $34, %bl + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x000021cd je LBB0_381 + 0x49, 0x8d, 0x55, 0xff, //0x000021d3 leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x000021d7 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000021da je LBB0_379 + 0x49, 0x89, 0xd5, //0x000021e0 movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x000021e3 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000021e6 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000021e9 jne LBB0_376 + 0xe9, 0xc2, 0x03, 0x00, 0x00, //0x000021ef jmp LBB0_420 + //0x000021f4 LBB0_379 + 0x48, 0x85, 0xd2, //0x000021f4 testq %rdx, %rdx + 0x0f, 0x84, 0xb9, 0x03, 0x00, 0x00, //0x000021f7 je LBB0_420 + 0x48, 0x03, 0x4d, 0xa8, //0x000021fd addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf9, 0xff, //0x00002201 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc9, //0x00002205 cmoveq %rcx, %r9 + 0x49, 0x83, 0xc3, 0x02, //0x00002209 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x0000220d addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x00002211 movq %r13, %rdx + 0x48, 0x8b, 0x7d, 0xc0, //0x00002214 movq $-64(%rbp), %rdi + 0x48, 0x85, 0xd2, //0x00002218 testq %rdx, %rdx + 0x0f, 0x85, 0xa1, 0xff, 0xff, 0xff, //0x0000221b jne LBB0_376 + 0xe9, 0x90, 0x03, 0x00, 0x00, //0x00002221 jmp LBB0_420 + //0x00002226 LBB0_381 + 0x48, 0x2b, 0x4d, 0xd0, //0x00002226 subq $-48(%rbp), %rcx + 0x49, 0x89, 0xcb, //0x0000222a movq %rcx, %r11 + 0xe9, 0x50, 0xed, 0xff, 0xff, //0x0000222d jmp LBB0_188 + //0x00002232 LBB0_382 + 0x4c, 0x89, 0xd9, //0x00002232 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00002235 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xca, //0x00002239 bsfq %rdx, %r9 + 0x49, 0x01, 0xc9, //0x0000223d addq %rcx, %r9 + 0xe9, 0x1c, 0xf7, 0xff, 0xff, //0x00002240 jmp LBB0_116 + //0x00002245 LBB0_383 + 0x45, 0x89, 0xd4, //0x00002245 movl %r10d, %r12d + 0x41, 0xf7, 0xd4, //0x00002248 notl %r12d + 0x41, 0x21, 0xd4, //0x0000224b andl %edx, %r12d + 0x47, 0x8d, 0x0c, 0x24, //0x0000224e leal (%r12,%r12), %r9d + 0x45, 0x09, 0xd1, //0x00002252 orl %r10d, %r9d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002255 movl $2863311530, %ecx + 0x44, 0x31, 0xc9, //0x0000225a xorl %r9d, %ecx + 0x21, 0xd1, //0x0000225d andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000225f andl $-1431655766, %ecx + 0x45, 0x31, 0xd2, //0x00002265 xorl %r10d, %r10d + 0x44, 0x01, 0xe1, //0x00002268 addl %r12d, %ecx + 0x41, 0x0f, 0x92, 0xc2, //0x0000226b setb %r10b + 0x01, 0xc9, //0x0000226f addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002271 xorl $1431655765, %ecx + 0x44, 0x21, 0xc9, //0x00002277 andl %r9d, %ecx + 0xf7, 0xd1, //0x0000227a notl %ecx + 0x21, 0xcb, //0x0000227c andl %ecx, %ebx + 0xe9, 0xb3, 0xf8, 0xff, 0xff, //0x0000227e jmp LBB0_174 + //0x00002283 LBB0_384 + 0x4d, 0x85, 0xed, //0x00002283 testq %r13, %r13 + 0x0f, 0x84, 0x2a, 0x03, 0x00, 0x00, //0x00002286 je LBB0_420 + 0x48, 0x8b, 0x45, 0xa8, //0x0000228c movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002290 addq %r11, %rax + 0x49, 0x83, 0xf9, 0xff, //0x00002293 cmpq $-1, %r9 + 0x4c, 0x0f, 0x44, 0xc8, //0x00002297 cmoveq %rax, %r9 + 0x49, 0xff, 0xc3, //0x0000229b incq %r11 + 0x49, 0xff, 0xcd, //0x0000229e decq %r13 + 0x48, 0x8b, 0x7d, 0xc0, //0x000022a1 movq $-64(%rbp), %rdi + 0x4d, 0x85, 0xed, //0x000022a5 testq %r13, %r13 + 0x0f, 0x85, 0x14, 0xff, 0xff, 0xff, //0x000022a8 jne LBB0_376 + 0xe9, 0x03, 0x03, 0x00, 0x00, //0x000022ae jmp LBB0_420 + //0x000022b3 LBB0_386 + 0x4c, 0x89, 0xd8, //0x000022b3 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x000022b6 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x000022ba bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x000022be addq %rax, %r8 + 0x48, 0x09, 0xfa, //0x000022c1 orq %rdi, %rdx + 0x48, 0x89, 0xc8, //0x000022c4 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x000022c7 orq %r9, %rax + 0x0f, 0x84, 0xab, 0xf7, 0xff, 0xff, //0x000022ca je LBB0_140 + //0x000022d0 LBB0_387 + 0x44, 0x89, 0xc8, //0x000022d0 movl %r9d, %eax + 0xf7, 0xd0, //0x000022d3 notl %eax + 0x21, 0xc8, //0x000022d5 andl %ecx, %eax + 0x8d, 0x34, 0x00, //0x000022d7 leal (%rax,%rax), %esi + 0x44, 0x09, 0xce, //0x000022da orl %r9d, %esi + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022dd movl $2863311530, %edi + 0x31, 0xf7, //0x000022e2 xorl %esi, %edi + 0x21, 0xcf, //0x000022e4 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x000022e6 andl $-1431655766, %edi + 0x45, 0x31, 0xc9, //0x000022ec xorl %r9d, %r9d + 0x01, 0xc7, //0x000022ef addl %eax, %edi + 0x41, 0x0f, 0x92, 0xc1, //0x000022f1 setb %r9b + 0x01, 0xff, //0x000022f5 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x000022f7 xorl $1431655765, %edi + 0x21, 0xf7, //0x000022fd andl %esi, %edi + 0xf7, 0xd7, //0x000022ff notl %edi + 0x21, 0xfa, //0x00002301 andl %edi, %edx + 0x48, 0x85, 0xd2, //0x00002303 testq %rdx, %rdx + 0x0f, 0x85, 0x78, 0xf7, 0xff, 0xff, //0x00002306 jne LBB0_141 + //0x0000230c LBB0_388 + 0x49, 0x83, 0xc3, 0x20, //0x0000230c addq $32, %r11 + 0x49, 0x83, 0xc5, 0xe0, //0x00002310 addq $-32, %r13 + //0x00002314 LBB0_389 + 0x4d, 0x85, 0xc9, //0x00002314 testq %r9, %r9 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x00002317 jne LBB0_398 + 0x48, 0x8b, 0x75, 0xc8, //0x0000231d movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002321 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x00002325 testq %r13, %r13 + 0x0f, 0x84, 0xcf, 0x02, 0x00, 0x00, //0x00002328 je LBB0_429 + //0x0000232e LBB0_391 + 0x49, 0x8d, 0x4b, 0x01, //0x0000232e leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x00002332 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x00002336 cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x00002339 je LBB0_396 + 0x49, 0x8d, 0x55, 0xff, //0x0000233f leaq $-1(%r13), %rdx + 0x80, 0xfb, 0x5c, //0x00002343 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00002346 je LBB0_394 + 0x49, 0x89, 0xd5, //0x0000234c movq %rdx, %r13 + 0x49, 0x89, 0xcb, //0x0000234f movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x00002352 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00002355 jne LBB0_391 + 0xe9, 0x9d, 0x02, 0x00, 0x00, //0x0000235b jmp LBB0_429 + //0x00002360 LBB0_394 + 0x48, 0x85, 0xd2, //0x00002360 testq %rdx, %rdx + 0x0f, 0x84, 0xf0, 0x04, 0x00, 0x00, //0x00002363 je LBB0_475 + 0x48, 0x03, 0x4d, 0xa8, //0x00002369 addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x0000236d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x00002371 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x00002375 addq $2, %r11 + 0x49, 0x83, 0xc5, 0xfe, //0x00002379 addq $-2, %r13 + 0x4c, 0x89, 0xea, //0x0000237d movq %r13, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x00002380 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002384 movq $-48(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x00002388 testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x0000238b jne LBB0_391 + 0xe9, 0x67, 0x02, 0x00, 0x00, //0x00002391 jmp LBB0_429 + //0x00002396 LBB0_396 + 0x4c, 0x29, 0xc9, //0x00002396 subq %r9, %rcx + 0x49, 0x89, 0xcb, //0x00002399 movq %rcx, %r11 + 0xe9, 0x4c, 0xec, 0xff, 0xff, //0x0000239c jmp LBB0_195 + //0x000023a1 LBB0_397 + 0x4c, 0x89, 0xd9, //0x000023a1 movq %r11, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x000023a4 subq $-48(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc2, //0x000023a8 bsfq %rdx, %r8 + 0x49, 0x01, 0xc8, //0x000023ac addq %rcx, %r8 + 0xe9, 0x6f, 0xf7, 0xff, 0xff, //0x000023af jmp LBB0_173 + //0x000023b4 LBB0_398 + 0x4d, 0x85, 0xed, //0x000023b4 testq %r13, %r13 + 0x0f, 0x84, 0x9c, 0x04, 0x00, 0x00, //0x000023b7 je LBB0_475 + 0x48, 0x8b, 0x45, 0xa8, //0x000023bd movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x000023c1 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x000023c4 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x000023c8 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x000023cc incq %r11 + 0x49, 0xff, 0xcd, //0x000023cf decq %r13 + 0x48, 0x8b, 0x75, 0xc8, //0x000023d2 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000023d6 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xed, //0x000023da testq %r13, %r13 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x000023dd jne LBB0_391 + 0xe9, 0x15, 0x02, 0x00, 0x00, //0x000023e3 jmp LBB0_429 + //0x000023e8 LBB0_400 + 0x44, 0x89, 0xc8, //0x000023e8 movl %r9d, %eax + 0xf7, 0xd0, //0x000023eb notl %eax + 0x21, 0xd0, //0x000023ed andl %edx, %eax + 0x44, 0x8d, 0x24, 0x00, //0x000023ef leal (%rax,%rax), %r12d + 0x45, 0x09, 0xcc, //0x000023f3 orl %r9d, %r12d + 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, //0x000023f6 movl $2863311530, %ecx + 0x44, 0x31, 0xe1, //0x000023fb xorl %r12d, %ecx + 0x21, 0xd1, //0x000023fe andl %edx, %ecx + 0x81, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002400 andl $-1431655766, %ecx + 0x45, 0x31, 0xc9, //0x00002406 xorl %r9d, %r9d + 0x01, 0xc1, //0x00002409 addl %eax, %ecx + 0x41, 0x0f, 0x92, 0xc1, //0x0000240b setb %r9b + 0x01, 0xc9, //0x0000240f addl %ecx, %ecx + 0x81, 0xf1, 0x55, 0x55, 0x55, 0x55, //0x00002411 xorl $1431655765, %ecx + 0x44, 0x21, 0xe1, //0x00002417 andl %r12d, %ecx + 0xf7, 0xd1, //0x0000241a notl %ecx + 0x21, 0xce, //0x0000241c andl %ecx, %esi + 0xe9, 0x67, 0xfa, 0xff, 0xff, //0x0000241e jmp LBB0_279 + //0x00002423 LBB0_401 + 0x4c, 0x89, 0xd8, //0x00002423 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002426 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc1, //0x0000242a bsfq %rcx, %r8 + 0x49, 0x01, 0xc0, //0x0000242e addq %rax, %r8 + 0x48, 0x09, 0xf2, //0x00002431 orq %rsi, %rdx + 0x48, 0x89, 0xc8, //0x00002434 movq %rcx, %rax + 0x4c, 0x09, 0xc8, //0x00002437 orq %r9, %rax + 0x0f, 0x84, 0x7d, 0xf9, 0xff, 0xff, //0x0000243a je LBB0_212 + //0x00002440 LBB0_402 + 0x44, 0x89, 0xc8, //0x00002440 movl %r9d, %eax + 0xf7, 0xd0, //0x00002443 notl %eax + 0x21, 0xc8, //0x00002445 andl %ecx, %eax + 0x44, 0x8d, 0x34, 0x00, //0x00002447 leal (%rax,%rax), %r14d + 0x45, 0x09, 0xce, //0x0000244b orl %r9d, %r14d + 0x44, 0x89, 0xf6, //0x0000244e movl %r14d, %esi + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00002451 movl $2863311530, %ebx + 0x31, 0xde, //0x00002456 xorl %ebx, %esi + 0x21, 0xce, //0x00002458 andl %ecx, %esi + 0x81, 0xe6, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000245a andl $-1431655766, %esi + 0x45, 0x31, 0xc9, //0x00002460 xorl %r9d, %r9d + 0x01, 0xc6, //0x00002463 addl %eax, %esi + 0x41, 0x0f, 0x92, 0xc1, //0x00002465 setb %r9b + 0x01, 0xf6, //0x00002469 addl %esi, %esi + 0x81, 0xf6, 0x55, 0x55, 0x55, 0x55, //0x0000246b xorl $1431655765, %esi + 0x44, 0x21, 0xf6, //0x00002471 andl %r14d, %esi + 0xf7, 0xd6, //0x00002474 notl %esi + 0x21, 0xf2, //0x00002476 andl %esi, %edx + 0x48, 0x85, 0xd2, //0x00002478 testq %rdx, %rdx + 0x0f, 0x85, 0x45, 0xf9, 0xff, 0xff, //0x0000247b jne LBB0_213 + //0x00002481 LBB0_403 + 0x49, 0x83, 0xc3, 0x20, //0x00002481 addq $32, %r11 + 0x49, 0x83, 0xc2, 0xe0, //0x00002485 addq $-32, %r10 + //0x00002489 LBB0_404 + 0x4d, 0x85, 0xc9, //0x00002489 testq %r9, %r9 + 0x0f, 0x85, 0x97, 0x00, 0x00, 0x00, //0x0000248c jne LBB0_413 + 0x48, 0x8b, 0x75, 0xc8, //0x00002492 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x00002496 movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000249a testq %r10, %r10 + 0x0f, 0x84, 0xce, 0x01, 0x00, 0x00, //0x0000249d je LBB0_442 + //0x000024a3 LBB0_406 + 0x49, 0x8d, 0x4b, 0x01, //0x000024a3 leaq $1(%r11), %rcx + 0x41, 0x0f, 0xb6, 0x1b, //0x000024a7 movzbl (%r11), %ebx + 0x80, 0xfb, 0x22, //0x000024ab cmpb $34, %bl + 0x0f, 0x84, 0x57, 0x00, 0x00, 0x00, //0x000024ae je LBB0_411 + 0x49, 0x8d, 0x52, 0xff, //0x000024b4 leaq $-1(%r10), %rdx + 0x80, 0xfb, 0x5c, //0x000024b8 cmpb $92, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000024bb je LBB0_409 + 0x49, 0x89, 0xd2, //0x000024c1 movq %rdx, %r10 + 0x49, 0x89, 0xcb, //0x000024c4 movq %rcx, %r11 + 0x48, 0x85, 0xd2, //0x000024c7 testq %rdx, %rdx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000024ca jne LBB0_406 + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x000024d0 jmp LBB0_442 + //0x000024d5 LBB0_409 + 0x48, 0x85, 0xd2, //0x000024d5 testq %rdx, %rdx + 0x0f, 0x84, 0x91, 0x03, 0x00, 0x00, //0x000024d8 je LBB0_476 + 0x48, 0x03, 0x4d, 0xa8, //0x000024de addq $-88(%rbp), %rcx + 0x49, 0x83, 0xf8, 0xff, //0x000024e2 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc1, //0x000024e6 cmoveq %rcx, %r8 + 0x49, 0x83, 0xc3, 0x02, //0x000024ea addq $2, %r11 + 0x49, 0x83, 0xc2, 0xfe, //0x000024ee addq $-2, %r10 + 0x4c, 0x89, 0xd2, //0x000024f2 movq %r10, %rdx + 0x48, 0x8b, 0x75, 0xc8, //0x000024f5 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x000024f9 movq $-48(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x000024fd testq %rdx, %rdx + 0x0f, 0x85, 0x9d, 0xff, 0xff, 0xff, //0x00002500 jne LBB0_406 + 0xe9, 0x66, 0x01, 0x00, 0x00, //0x00002506 jmp LBB0_442 + //0x0000250b LBB0_411 + 0x4c, 0x29, 0xc9, //0x0000250b subq %r9, %rcx + 0x49, 0x89, 0xcb, //0x0000250e movq %rcx, %r11 + 0xe9, 0xd9, 0xf2, 0xff, 0xff, //0x00002511 jmp LBB0_304 + //0x00002516 LBB0_412 + 0x4c, 0x89, 0xd8, //0x00002516 movq %r11, %rax + 0x48, 0x2b, 0x45, 0xd0, //0x00002519 subq $-48(%rbp), %rax + 0x4c, 0x0f, 0xbc, 0xc2, //0x0000251d bsfq %rdx, %r8 + 0x49, 0x01, 0xc0, //0x00002521 addq %rax, %r8 + 0xe9, 0x4e, 0xf9, 0xff, 0xff, //0x00002524 jmp LBB0_278 + //0x00002529 LBB0_413 + 0x4d, 0x85, 0xd2, //0x00002529 testq %r10, %r10 + 0x0f, 0x84, 0x3d, 0x03, 0x00, 0x00, //0x0000252c je LBB0_476 + 0x48, 0x8b, 0x45, 0xa8, //0x00002532 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x00002536 addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00002539 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x0000253d cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002541 incq %r11 + 0x49, 0xff, 0xca, //0x00002544 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x00002547 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x0000254b movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x0000254f testq %r10, %r10 + 0x0f, 0x85, 0x4b, 0xff, 0xff, 0xff, //0x00002552 jne LBB0_406 + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00002558 jmp LBB0_442 + //0x0000255d LBB0_415 + 0x4d, 0x85, 0xd2, //0x0000255d testq %r10, %r10 + 0x0f, 0x84, 0x09, 0x03, 0x00, 0x00, //0x00002560 je LBB0_476 + 0x48, 0x8b, 0x45, 0xa8, //0x00002566 movq $-88(%rbp), %rax + 0x4c, 0x01, 0xd8, //0x0000256a addq %r11, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000256d cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xc0, //0x00002571 cmoveq %rax, %r8 + 0x49, 0xff, 0xc3, //0x00002575 incq %r11 + 0x49, 0xff, 0xca, //0x00002578 decq %r10 + 0x48, 0x8b, 0x75, 0xc8, //0x0000257b movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x4d, 0xd0, //0x0000257f movq $-48(%rbp), %r9 + 0x4d, 0x85, 0xd2, //0x00002583 testq %r10, %r10 + 0x0f, 0x85, 0xb3, 0xf9, 0xff, 0xff, //0x00002586 jne LBB0_349 + 0xe9, 0xe0, 0x00, 0x00, 0x00, //0x0000258c jmp LBB0_442 + //0x00002591 LBB0_417 + 0x48, 0x89, 0x16, //0x00002591 movq %rdx, (%rsi) + //0x00002594 LBB0_418 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002594 movq $-1, %rax + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x0000259b jmp LBB0_427 + //0x000025a0 LBB0_439 + 0x48, 0xc7, 0xc0, 0xf9, 0xff, 0xff, 0xff, //0x000025a0 movq $-7, %rax + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x000025a7 jmp LBB0_427 + //0x000025ac LBB0_419 + 0x49, 0x83, 0xfb, 0xff, //0x000025ac cmpq $-1, %r11 + 0x0f, 0x85, 0x7d, 0x00, 0x00, 0x00, //0x000025b0 jne LBB0_150 + //0x000025b6 LBB0_420 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000025b6 movq $-1, %r11 + 0x4d, 0x89, 0xd1, //0x000025bd movq %r10, %r9 + 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x000025c0 jmp LBB0_150 + //0x000025c5 LBB0_421 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000025c5 movq $-1, %rax + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000025cc jmp LBB0_424 + //0x000025d1 LBB0_423 + 0x4c, 0x89, 0xd8, //0x000025d1 movq %r11, %rax + //0x000025d4 LBB0_424 + 0x48, 0xf7, 0xd0, //0x000025d4 notq %rax + 0x49, 0x01, 0xc7, //0x000025d7 addq %rax, %r15 + //0x000025da LBB0_425 + 0x4c, 0x89, 0x3e, //0x000025da movq %r15, (%rsi) + //0x000025dd LBB0_426 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000025dd movq $-2, %rax + //0x000025e4 LBB0_427 + 0x48, 0x83, 0xc4, 0x70, //0x000025e4 addq $112, %rsp + 0x5b, //0x000025e8 popq %rbx + 0x41, 0x5c, //0x000025e9 popq %r12 + 0x41, 0x5d, //0x000025eb popq %r13 + 0x41, 0x5e, //0x000025ed popq %r14 + 0x41, 0x5f, //0x000025ef popq %r15 + 0x5d, //0x000025f1 popq %rbp + 0xc3, //0x000025f2 retq + //0x000025f3 LBB0_428 + 0x49, 0x83, 0xfb, 0xff, //0x000025f3 cmpq $-1, %r11 + 0x0f, 0x85, 0xbf, 0x01, 0x00, 0x00, //0x000025f7 jne LBB0_461 + //0x000025fd LBB0_429 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000025fd movq $-1, %r11 + 0x4d, 0x89, 0xd0, //0x00002604 movq %r10, %r8 + 0xe9, 0xb0, 0x01, 0x00, 0x00, //0x00002607 jmp LBB0_461 + //0x0000260c LBB0_440 + 0x48, 0x89, 0x0e, //0x0000260c movq %rcx, (%rsi) + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x0000260f jmp LBB0_427 + //0x00002614 LBB0_430 + 0x49, 0x83, 0xf9, 0xff, //0x00002614 cmpq $-1, %r9 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002618 jne LBB0_434 + 0x48, 0x0f, 0xbc, 0xc2, //0x0000261e bsfq %rdx, %rax + //0x00002622 LBB0_432 + 0x4c, 0x2b, 0x5d, 0xd0, //0x00002622 subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x00002626 addq %rax, %r11 + //0x00002629 LBB0_433 + 0x4d, 0x89, 0xd9, //0x00002629 movq %r11, %r9 + //0x0000262c LBB0_434 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000262c movq $-2, %r11 + //0x00002633 LBB0_150 + 0x48, 0x8b, 0x45, 0xc8, //0x00002633 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x08, //0x00002637 movq %r9, (%rax) + 0x4c, 0x89, 0xd8, //0x0000263a movq %r11, %rax + 0xe9, 0xa2, 0xff, 0xff, 0xff, //0x0000263d jmp LBB0_427 + //0x00002642 LBB0_435 + 0x49, 0x83, 0xf8, 0xff, //0x00002642 cmpq $-1, %r8 + 0x0f, 0x84, 0x34, 0x01, 0x00, 0x00, //0x00002646 je LBB0_453 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000264c movq $-2, %r11 + 0xe9, 0x64, 0x01, 0x00, 0x00, //0x00002653 jmp LBB0_461 + //0x00002658 LBB0_437 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002658 movq $-1, %r11 + //0x0000265f LBB0_438 + 0x4d, 0x29, 0xdf, //0x0000265f subq %r11, %r15 + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x00002662 jmp LBB0_425 + //0x00002667 LBB0_441 + 0x49, 0x83, 0xfb, 0xff, //0x00002667 cmpq $-1, %r11 + 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x0000266b jne LBB0_461 + //0x00002671 LBB0_442 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002671 movq $-1, %r11 + 0x49, 0x89, 0xf8, //0x00002678 movq %rdi, %r8 + 0xe9, 0x3c, 0x01, 0x00, 0x00, //0x0000267b jmp LBB0_461 + //0x00002680 LBB0_443 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00002680 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x00002687 cmpb $97, %cl + 0x0f, 0x85, 0x54, 0xff, 0xff, 0xff, //0x0000268a jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x00002690 leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002694 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x6c, //0x00002697 cmpb $108, $2(%r9,%r15) + 0x0f, 0x85, 0x41, 0xff, 0xff, 0xff, //0x0000269d jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x000026a3 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026a7 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x73, //0x000026aa cmpb $115, $3(%r9,%r15) + 0x0f, 0x85, 0x2e, 0xff, 0xff, 0xff, //0x000026b0 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x04, //0x000026b6 leaq $4(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026ba movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x04, 0x65, //0x000026bd cmpb $101, $4(%r9,%r15) + 0x0f, 0x85, 0x1b, 0xff, 0xff, 0xff, //0x000026c3 jne LBB0_427 + 0x49, 0x83, 0xc7, 0x05, //0x000026c9 addq $5, %r15 + 0x4c, 0x89, 0x3e, //0x000026cd movq %r15, (%rsi) + 0xe9, 0x0f, 0xff, 0xff, 0xff, //0x000026d0 jmp LBB0_427 + //0x000026d5 LBB0_249 + 0x4c, 0x89, 0x3e, //0x000026d5 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000026d8 movq $-2, %rax + 0x41, 0x80, 0x3a, 0x6e, //0x000026df cmpb $110, (%r10) + 0x0f, 0x85, 0xfb, 0xfe, 0xff, 0xff, //0x000026e3 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x01, //0x000026e9 leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x000026ed movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x01, 0x75, //0x000026f0 cmpb $117, $1(%r9,%r15) + 0x0f, 0x85, 0xe8, 0xfe, 0xff, 0xff, //0x000026f6 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x000026fc leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002700 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x6c, //0x00002703 cmpb $108, $2(%r9,%r15) + 0x0f, 0x85, 0xd5, 0xfe, 0xff, 0xff, //0x00002709 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x0000270f leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002713 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x6c, //0x00002716 cmpb $108, $3(%r9,%r15) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x0000271c jne LBB0_427 + 0xe9, 0x4d, 0x00, 0x00, 0x00, //0x00002722 jmp LBB0_452 + //0x00002727 LBB0_448 + 0x4c, 0x89, 0x3e, //0x00002727 movq %r15, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000272a movq $-2, %rax + 0x41, 0x80, 0x3a, 0x74, //0x00002731 cmpb $116, (%r10) + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00002735 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x01, //0x0000273b leaq $1(%r15), %rcx + 0x48, 0x89, 0x0e, //0x0000273f movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x01, 0x72, //0x00002742 cmpb $114, $1(%r9,%r15) + 0x0f, 0x85, 0x96, 0xfe, 0xff, 0xff, //0x00002748 jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x02, //0x0000274e leaq $2(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002752 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x02, 0x75, //0x00002755 cmpb $117, $2(%r9,%r15) + 0x0f, 0x85, 0x83, 0xfe, 0xff, 0xff, //0x0000275b jne LBB0_427 + 0x49, 0x8d, 0x4f, 0x03, //0x00002761 leaq $3(%r15), %rcx + 0x48, 0x89, 0x0e, //0x00002765 movq %rcx, (%rsi) + 0x43, 0x80, 0x7c, 0x39, 0x03, 0x65, //0x00002768 cmpb $101, $3(%r9,%r15) + 0x0f, 0x85, 0x70, 0xfe, 0xff, 0xff, //0x0000276e jne LBB0_427 + //0x00002774 LBB0_452 + 0x49, 0x83, 0xc7, 0x04, //0x00002774 addq $4, %r15 + 0x4c, 0x89, 0x3e, //0x00002778 movq %r15, (%rsi) + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x0000277b jmp LBB0_427 + //0x00002780 LBB0_453 + 0x48, 0x0f, 0xbc, 0xc2, //0x00002780 bsfq %rdx, %rax + //0x00002784 LBB0_454 + 0x4d, 0x29, 0xcb, //0x00002784 subq %r9, %r11 + 0x49, 0x01, 0xc3, //0x00002787 addq %rax, %r11 + //0x0000278a LBB0_455 + 0x4d, 0x89, 0xd8, //0x0000278a movq %r11, %r8 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000278d movq $-2, %r11 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00002794 jmp LBB0_461 + //0x00002799 LBB0_456 + 0x49, 0x83, 0xf8, 0xff, //0x00002799 cmpq $-1, %r8 + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000279d jne LBB0_459 + 0x48, 0x0f, 0xbc, 0xc2, //0x000027a3 bsfq %rdx, %rax + //0x000027a7 LBB0_458 + 0x4c, 0x2b, 0x5d, 0xd0, //0x000027a7 subq $-48(%rbp), %r11 + 0x49, 0x01, 0xc3, //0x000027ab addq %rax, %r11 + 0x4d, 0x89, 0xd8, //0x000027ae movq %r11, %r8 + //0x000027b1 LBB0_459 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027b1 movq $-2, %r11 + //0x000027b8 LBB0_460 + 0x48, 0x8b, 0x75, 0xc8, //0x000027b8 movq $-56(%rbp), %rsi + //0x000027bc LBB0_461 + 0x4c, 0x89, 0x06, //0x000027bc movq %r8, (%rsi) + 0x4c, 0x89, 0xd8, //0x000027bf movq %r11, %rax + 0xe9, 0x1d, 0xfe, 0xff, 0xff, //0x000027c2 jmp LBB0_427 + //0x000027c7 LBB0_462 + 0x49, 0x89, 0xc2, //0x000027c7 movq %rax, %r10 + 0xe9, 0xe7, 0xfd, 0xff, 0xff, //0x000027ca jmp LBB0_420 + //0x000027cf LBB0_463 + 0x49, 0x89, 0xca, //0x000027cf movq %rcx, %r10 + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x000027d2 jmp LBB0_420 + //0x000027d7 LBB0_149 + 0x4c, 0x01, 0xd9, //0x000027d7 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027da movq $-2, %r11 + 0x49, 0x89, 0xc9, //0x000027e1 movq %rcx, %r9 + 0xe9, 0x4a, 0xfe, 0xff, 0xff, //0x000027e4 jmp LBB0_150 + //0x000027e9 LBB0_185 + 0x4c, 0x01, 0xd9, //0x000027e9 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000027ec movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x000027f3 movq %rcx, %r8 + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x000027f6 jmp LBB0_461 + //0x000027fb LBB0_464 + 0x49, 0x89, 0xc2, //0x000027fb movq %rax, %r10 + 0xe9, 0xfa, 0xfd, 0xff, 0xff, //0x000027fe jmp LBB0_429 + //0x00002803 LBB0_465 + 0x49, 0x89, 0xca, //0x00002803 movq %rcx, %r10 + 0xe9, 0xf2, 0xfd, 0xff, 0xff, //0x00002806 jmp LBB0_429 + //0x0000280b LBB0_466 + 0x48, 0x89, 0xc7, //0x0000280b movq %rax, %rdi + 0xe9, 0x5e, 0xfe, 0xff, 0xff, //0x0000280e jmp LBB0_442 + //0x00002813 LBB0_467 + 0x49, 0x0f, 0xbc, 0xc2, //0x00002813 bsfq %r10, %rax + 0xe9, 0x06, 0xfe, 0xff, 0xff, //0x00002817 jmp LBB0_432 + //0x0000281c LBB0_468 + 0x4c, 0x2b, 0x5d, 0xd0, //0x0000281c subq $-48(%rbp), %r11 + 0xe9, 0x04, 0xfe, 0xff, 0xff, //0x00002820 jmp LBB0_433 + //0x00002825 LBB0_469 + 0x4d, 0x29, 0xcb, //0x00002825 subq %r9, %r11 + 0xe9, 0x5d, 0xff, 0xff, 0xff, //0x00002828 jmp LBB0_455 + //0x0000282d LBB0_470 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000282d bsfq %rdi, %rax + 0xe9, 0x4e, 0xff, 0xff, 0xff, //0x00002831 jmp LBB0_454 + //0x00002836 LBB0_471 + 0x4c, 0x01, 0xd9, //0x00002836 addq %r11, %rcx + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00002839 movq $-2, %r11 + 0x49, 0x89, 0xc8, //0x00002840 movq %rcx, %r8 + 0xe9, 0x70, 0xff, 0xff, 0xff, //0x00002843 jmp LBB0_460 + //0x00002848 LBB0_472 + 0x48, 0x0f, 0xbc, 0xc3, //0x00002848 bsfq %rbx, %rax + 0xe9, 0x56, 0xff, 0xff, 0xff, //0x0000284c jmp LBB0_458 + //0x00002851 LBB0_473 + 0x4d, 0x89, 0xea, //0x00002851 movq %r13, %r10 + 0xe9, 0x5d, 0xfd, 0xff, 0xff, //0x00002854 jmp LBB0_420 + //0x00002859 LBB0_475 + 0x48, 0x8b, 0x75, 0xc8, //0x00002859 movq $-56(%rbp), %rsi + 0xe9, 0x9b, 0xfd, 0xff, 0xff, //0x0000285d jmp LBB0_429 + //0x00002862 LBB0_474 + 0x48, 0x8b, 0x75, 0xc8, //0x00002862 movq $-56(%rbp), %rsi + 0x4c, 0x8b, 0x55, 0xb8, //0x00002866 movq $-72(%rbp), %r10 + 0xe9, 0x8e, 0xfd, 0xff, 0xff, //0x0000286a jmp LBB0_429 + //0x0000286f LBB0_476 + 0x48, 0x8b, 0x75, 0xc8, //0x0000286f movq $-56(%rbp), %rsi + 0xe9, 0xf9, 0xfd, 0xff, 0xff, //0x00002873 jmp LBB0_442 + //0x00002878 .p2align 2, 0x90 + // // .set L0_0_set_35, LBB0_35-LJTI0_0 + // // .set L0_0_set_62, LBB0_62-LJTI0_0 + // // .set L0_0_set_40, LBB0_40-LJTI0_0 + // // .set L0_0_set_60, LBB0_60-LJTI0_0 + // // .set L0_0_set_38, LBB0_38-LJTI0_0 + // // .set L0_0_set_64, LBB0_64-LJTI0_0 + //0x00002878 LJTI0_0 + 0x13, 0xdb, 0xff, 0xff, //0x00002878 .long L0_0_set_35 + 0x24, 0xdd, 0xff, 0xff, //0x0000287c .long L0_0_set_62 + 0x4a, 0xdb, 0xff, 0xff, //0x00002880 .long L0_0_set_40 + 0x0d, 0xdd, 0xff, 0xff, //0x00002884 .long L0_0_set_60 + 0x2a, 0xdb, 0xff, 0xff, //0x00002888 .long L0_0_set_38 + 0x4f, 0xdd, 0xff, 0xff, //0x0000288c .long L0_0_set_64 + // // .set L0_1_set_427, LBB0_427-LJTI0_1 + // // .set L0_1_set_426, LBB0_426-LJTI0_1 + // // .set L0_1_set_199, LBB0_199-LJTI0_1 + // // .set L0_1_set_217, LBB0_217-LJTI0_1 + // // .set L0_1_set_68, LBB0_68-LJTI0_1 + // // .set L0_1_set_242, LBB0_242-LJTI0_1 + // // .set L0_1_set_244, LBB0_244-LJTI0_1 + // // .set L0_1_set_247, LBB0_247-LJTI0_1 + // // .set L0_1_set_253, LBB0_253-LJTI0_1 + // // .set L0_1_set_1, LBB0_1-LJTI0_1 + //0x00002890 LJTI0_1 + 0x54, 0xfd, 0xff, 0xff, //0x00002890 .long L0_1_set_427 + 0x4d, 0xfd, 0xff, 0xff, //0x00002894 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002898 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000289c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028a8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028ac .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028b8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028bc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028c8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028cc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028d8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028dc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028e8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028ec .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028f8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000028fc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002900 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002904 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002908 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000290c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002910 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002914 .long L0_1_set_426 + 0x9f, 0xe7, 0xff, 0xff, //0x00002918 .long L0_1_set_199 + 0x4d, 0xfd, 0xff, 0xff, //0x0000291c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002920 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002924 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002928 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000292c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002930 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002934 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002938 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000293c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002940 .long L0_1_set_426 + 0x5d, 0xe9, 0xff, 0xff, //0x00002944 .long L0_1_set_217 + 0x4d, 0xfd, 0xff, 0xff, //0x00002948 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000294c .long L0_1_set_426 + 0x86, 0xdd, 0xff, 0xff, //0x00002950 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002954 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002958 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x0000295c .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002960 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002964 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002968 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x0000296c .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002970 .long L0_1_set_68 + 0x86, 0xdd, 0xff, 0xff, //0x00002974 .long L0_1_set_68 + 0x4d, 0xfd, 0xff, 0xff, //0x00002978 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000297c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002980 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002984 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002988 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000298c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002990 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002994 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002998 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x0000299c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029a8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029ac .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029b8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029bc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029c8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029cc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029d8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029dc .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029e8 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029ec .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f0 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f4 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x000029f8 .long L0_1_set_426 + 0x44, 0xeb, 0xff, 0xff, //0x000029fc .long L0_1_set_242 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a00 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a04 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a08 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a0c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a10 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a14 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a18 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a1c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a20 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a24 .long L0_1_set_426 + 0x6c, 0xeb, 0xff, 0xff, //0x00002a28 .long L0_1_set_244 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a2c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a30 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a34 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a38 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a3c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a40 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a44 .long L0_1_set_426 + 0xad, 0xeb, 0xff, 0xff, //0x00002a48 .long L0_1_set_247 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a4c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a50 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a54 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a58 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a5c .long L0_1_set_426 + 0xd4, 0xeb, 0xff, 0xff, //0x00002a60 .long L0_1_set_253 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a64 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a68 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a6c .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a70 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a74 .long L0_1_set_426 + 0x4d, 0xfd, 0xff, 0xff, //0x00002a78 .long L0_1_set_426 + 0xca, 0xd8, 0xff, 0xff, //0x00002a7c .long L0_1_set_1 + // // .set L0_2_set_262, LBB0_262-LJTI0_2 + // // .set L0_2_set_291, LBB0_291-LJTI0_2 + // // .set L0_2_set_257, LBB0_257-LJTI0_2 + // // .set L0_2_set_259, LBB0_259-LJTI0_2 + // // .set L0_2_set_264, LBB0_264-LJTI0_2 + //0x00002a80 LJTI0_2 + 0x79, 0xea, 0xff, 0xff, //0x00002a80 .long L0_2_set_262 + 0xd9, 0xec, 0xff, 0xff, //0x00002a84 .long L0_2_set_291 + 0x79, 0xea, 0xff, 0xff, //0x00002a88 .long L0_2_set_262 + 0x33, 0xea, 0xff, 0xff, //0x00002a8c .long L0_2_set_257 + 0xd9, 0xec, 0xff, 0xff, //0x00002a90 .long L0_2_set_291 + 0x50, 0xea, 0xff, 0xff, //0x00002a94 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002a98 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002a9c .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aa0 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aa4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aa8 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002aac .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab0 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab4 .long L0_2_set_259 + 0x50, 0xea, 0xff, 0xff, //0x00002ab8 .long L0_2_set_259 + 0xd9, 0xec, 0xff, 0xff, //0x00002abc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ac0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ac4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ac8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002acc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ad8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002adc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002ae4 .long L0_2_set_291 + 0x94, 0xea, 0xff, 0xff, //0x00002ae8 .long L0_2_set_264 + 0xd9, 0xec, 0xff, 0xff, //0x00002aec .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af0 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af4 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002af8 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002afc .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b00 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b04 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b08 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b0c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b10 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b14 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b18 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b1c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b20 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b24 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b28 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b2c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b30 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b34 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b38 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b3c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b40 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b44 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b48 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b4c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b50 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b54 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b58 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b5c .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b60 .long L0_2_set_291 + 0xd9, 0xec, 0xff, 0xff, //0x00002b64 .long L0_2_set_291 + 0x94, 0xea, 0xff, 0xff, //0x00002b68 .long L0_2_set_264 + // // .set L0_3_set_98, LBB0_98-LJTI0_3 + // // .set L0_3_set_152, LBB0_152-LJTI0_3 + // // .set L0_3_set_100, LBB0_100-LJTI0_3 + // // .set L0_3_set_95, LBB0_95-LJTI0_3 + // // .set L0_3_set_93, LBB0_93-LJTI0_3 + //0x00002b6c LJTI0_3 + 0xcd, 0xdc, 0xff, 0xff, //0x00002b6c .long L0_3_set_98 + 0x2e, 0xe1, 0xff, 0xff, //0x00002b70 .long L0_3_set_152 + 0xcd, 0xdc, 0xff, 0xff, //0x00002b74 .long L0_3_set_98 + 0xe8, 0xdc, 0xff, 0xff, //0x00002b78 .long L0_3_set_100 + 0x2e, 0xe1, 0xff, 0xff, //0x00002b7c .long L0_3_set_152 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b80 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b84 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b88 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b8c .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b90 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b94 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b98 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002b9c .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba0 .long L0_3_set_95 + 0xa4, 0xdc, 0xff, 0xff, //0x00002ba4 .long L0_3_set_95 + 0x2e, 0xe1, 0xff, 0xff, //0x00002ba8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bac .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bb0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bb4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bb8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bbc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bc8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bcc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd0 .long L0_3_set_152 + 0x84, 0xdc, 0xff, 0xff, //0x00002bd4 .long L0_3_set_93 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bd8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bdc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002be8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bec .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf0 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf4 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bf8 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002bfc .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c00 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c04 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c08 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c0c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c10 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c14 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c18 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c1c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c20 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c24 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c28 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c2c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c30 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c34 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c38 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c3c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c40 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c44 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c48 .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c4c .long L0_3_set_152 + 0x2e, 0xe1, 0xff, 0xff, //0x00002c50 .long L0_3_set_152 + 0x84, 0xdc, 0xff, 0xff, //0x00002c54 .long L0_3_set_93 + //0x00002c58 .p2align 2, 0x00 + //0x00002c58 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002c58 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8.go new file mode 100644 index 000000000..158a547c7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8.go @@ -0,0 +1,39 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_validate_utf8 uintptr + +//go:nosplit +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return F_validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} + + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast.go new file mode 100644 index 000000000..f96875a81 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast.go @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8_fast func(s unsafe.Pointer) (ret int) + +var S_validate_utf8_fast uintptr + +//go:nosplit +func validate_utf8_fast(s *string) (ret int) { + return F_validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_subr.go new file mode 100644 index 000000000..15b54a7ee --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_subr.go @@ -0,0 +1,41 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_utf8_fast = 0 +) + +const ( + _stack__validate_utf8_fast = 24 +) + +const ( + _size__validate_utf8_fast = 536 +) + +var ( + _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}, + } +) + +var _cfunc_validate_utf8_fast = []loader.CFunc{ + {"_validate_utf8_fast_entry", 0, _entry__validate_utf8_fast, 0, nil}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_text_amd64.go new file mode 100644 index 000000000..332fa8f72 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_fast_text_amd64.go @@ -0,0 +1,156 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_validate_utf8_fast = []byte{ + // .p2align 4, 0x90 + // _validate_utf8_fast + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x53, //0x00000004 pushq %rbx + 0x50, //0x00000005 pushq %rax + 0x4c, 0x8b, 0x17, //0x00000006 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00000009 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x74, 0x1a, 0xfd, //0x0000000d leaq $-3(%r10,%r11), %rsi + 0x4c, 0x89, 0xd0, //0x00000012 movq %r10, %rax + 0x49, 0x39, 0xf2, //0x00000015 cmpq %rsi, %r10 + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00000018 jae LBB0_14 + 0x4c, 0x89, 0xd0, //0x0000001e movq %r10, %rax + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00000021 jmp LBB0_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000026 .p2align 4, 0x90 + //0x00000030 LBB0_2 + 0x48, 0x01, 0xd0, //0x00000030 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00000033 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00000036 jae LBB0_14 + //0x0000003c LBB0_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000003c movl $1, %edx + 0x80, 0x38, 0x00, //0x00000041 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00000044 jns LBB0_2 + 0x8b, 0x38, //0x0000004a movl (%rax), %edi + 0x89, 0xf9, //0x0000004c movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000004e andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00000054 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000005a jne LBB0_7 + 0x89, 0xf9, //0x00000060 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x00000062 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x00000068 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000006e je LBB0_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000074 movl $3, %edx + 0x85, 0xc9, //0x00000079 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000007b jne LBB0_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000081 .p2align 4, 0x90 + //0x00000090 LBB0_7 + 0x89, 0xf9, //0x00000090 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x00000092 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00000098 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000009e jne LBB0_9 + 0x89, 0xf9, //0x000000a4 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000000a6 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x000000ab andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000000ae jne LBB0_2 + //0x000000b4 LBB0_9 + 0x89, 0xf9, //0x000000b4 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x000000b6 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x000000bc cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x000000c2 jne LBB0_13 + 0x89, 0xf9, //0x000000c8 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x000000ca andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000000d0 je LBB0_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000000d6 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x000000db testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x000000df je LBB0_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x000000e5 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x000000eb je LBB0_2 + //0x000000f1 LBB0_13 + 0x48, 0xf7, 0xd0, //0x000000f1 notq %rax + 0x4c, 0x01, 0xd0, //0x000000f4 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x000000f7 addq $8, %rsp + 0x5b, //0x000000fb popq %rbx + 0x5d, //0x000000fc popq %rbp + 0xc3, //0x000000fd retq + //0x000000fe LBB0_14 + 0x4d, 0x01, 0xd3, //0x000000fe addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00000101 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00000104 jae LBB0_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x0000010a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x0000010e leaq $-14(%rbp), %r9 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00000112 jmp LBB0_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000117 .p2align 4, 0x90 + //0x00000120 LBB0_16 + 0x48, 0xff, 0xc0, //0x00000120 incq %rax + 0x4c, 0x39, 0xd8, //0x00000123 cmpq %r11, %rax + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00000126 jae LBB0_30 + //0x0000012c LBB0_17 + 0x80, 0x38, 0x00, //0x0000012c cmpb $0, (%rax) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000012f jns LBB0_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00000135 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x00000139 movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x0000013d movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x00000140 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00000143 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00000147 jb LBB0_21 + 0x0f, 0xb6, 0x30, //0x0000014d movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x00000150 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x00000154 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x00000158 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x0000015c addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x00000160 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x00000163 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00000166 je LBB0_22 + //0x0000016c LBB0_20 + 0x0f, 0xb6, 0x09, //0x0000016c movzbl (%rcx), %ecx + 0x88, 0x0b, //0x0000016f movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x00000171 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x00000175 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00000179 jmp LBB0_23 + //0x0000017e LBB0_21 + 0x31, 0xf6, //0x0000017e xorl %esi, %esi + 0x31, 0xff, //0x00000180 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x00000182 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x00000185 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x00000188 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000018b jne LBB0_20 + //0x00000191 LBB0_22 + 0x31, 0xc9, //0x00000191 xorl %ecx, %ecx + //0x00000193 LBB0_23 + 0x0f, 0xb6, 0xc9, //0x00000193 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x00000196 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x00000199 movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x0000019d shll $8, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x000001a0 movzbl %sil, %edx + 0x09, 0xfa, //0x000001a4 orl %edi, %edx + 0x09, 0xd1, //0x000001a6 orl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000001a8 andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000001ae cmpl $8421600, %ecx + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000001b4 jne LBB0_26 + 0x89, 0xd7, //0x000001ba movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000001bc andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000001c2 cmpl $8205, %edi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000001c8 je LBB0_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000001ce movl $3, %ecx + 0x85, 0xff, //0x000001d3 testl %edi, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000001d5 jne LBB0_28 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001db .p2align 4, 0x90 + //0x000001e0 LBB0_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x000001e0 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000001e4 je LBB0_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x000001ea andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000001f0 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x000001f5 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000001fb jne LBB0_13 + //0x00000201 LBB0_28 + 0x48, 0x01, 0xc8, //0x00000201 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00000204 cmpq %r11, %rax + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00000207 jb LBB0_17 + //0x0000020d LBB0_30 + 0x31, 0xc0, //0x0000020d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x0000020f addq $8, %rsp + 0x5b, //0x00000213 popq %rbx + 0x5d, //0x00000214 popq %rbp + 0xc3, //0x00000215 retq + 0x00, 0x00, //0x00000216 .p2align 2, 0x00 + //0x00000218 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000218 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_subr.go new file mode 100644 index 000000000..100a086f5 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_subr.go @@ -0,0 +1,44 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__validate_utf8 = 0 +) + +const ( + _stack__validate_utf8 = 48 +) + +const ( + _size__validate_utf8 = 668 +) + +var ( + _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}, + } +) + +var _cfunc_validate_utf8 = []loader.CFunc{ + {"_validate_utf8_entry", 0, _entry__validate_utf8, 0, nil}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_text_amd64.go new file mode 100644 index 000000000..96502af05 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/validate_utf8_text_amd64.go @@ -0,0 +1,191 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_validate_utf8 = []byte{ + // .p2align 4, 0x90 + // _validate_utf8 + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x41, 0x57, //0x00000004 pushq %r15 + 0x41, 0x56, //0x00000006 pushq %r14 + 0x41, 0x54, //0x00000008 pushq %r12 + 0x53, //0x0000000a pushq %rbx + 0x50, //0x0000000b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000000c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000000f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00000013 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00000016 addq %r10, %rcx + 0x4f, 0x8d, 0x44, 0x1a, 0xfd, //0x00000019 leaq $-3(%r10,%r11), %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x0000001e jmp LBB0_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000023 .p2align 4, 0x90 + //0x00000030 LBB0_19 + 0x48, 0x01, 0xd9, //0x00000030 addq %rbx, %rcx + //0x00000033 LBB0_1 + 0x4c, 0x39, 0xc1, //0x00000033 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00000036 jae LBB0_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000003c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00000041 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00000044 jns LBB0_19 + 0x8b, 0x01, //0x0000004a movl (%rcx), %eax + 0x89, 0xc7, //0x0000004c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000004e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00000054 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000005a jne LBB0_10 + 0x89, 0xc7, //0x00000060 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00000062 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00000068 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000006e je LBB0_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000074 movl $3, %ebx + 0x85, 0xff, //0x00000079 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000007b jne LBB0_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000081 .p2align 4, 0x90 + //0x00000090 LBB0_10 + 0x89, 0xc7, //0x00000090 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00000092 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00000098 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000009e jne LBB0_12 + 0x89, 0xc7, //0x000000a4 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000000a6 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x000000ab andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000000ae jne LBB0_19 + //0x000000b4 LBB0_12 + 0x89, 0xc7, //0x000000b4 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000000b6 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000000bc cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000000c2 jne LBB0_16 + 0x89, 0xc7, //0x000000c8 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000000ca andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000000d0 je LBB0_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000000d6 movl $4, %ebx + 0xa8, 0x04, //0x000000db testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000000dd je LBB0_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000000e3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000000e8 je LBB0_19 + //0x000000ee LBB0_16 + 0x48, 0x89, 0xcf, //0x000000ee movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000000f1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000000f4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000000f7 cmpq $4096, %rbx + 0x0f, 0x83, 0x87, 0x01, 0x00, 0x00, //0x000000fe jae LBB0_17 + 0x48, 0x63, 0xc7, //0x00000104 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00000107 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x0000010b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000010e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000113 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00000118 jmp LBB0_19 + //0x0000011d LBB0_2 + 0x4d, 0x01, 0xd3, //0x0000011d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00000120 cmpq %r11, %rcx + 0x0f, 0x83, 0x3e, 0x01, 0x00, 0x00, //0x00000123 jae LBB0_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00000129 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x0000012d leaq $-38(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00000131 jmp LBB0_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000136 .p2align 4, 0x90 + //0x00000140 LBB0_5 + 0x48, 0xff, 0xc1, //0x00000140 incq %rcx + 0x4c, 0x39, 0xd9, //0x00000143 cmpq %r11, %rcx + 0x0f, 0x83, 0x1b, 0x01, 0x00, 0x00, //0x00000146 jae LBB0_36 + //0x0000014c LBB0_4 + 0x80, 0x39, 0x00, //0x0000014c cmpb $0, (%rcx) + 0x0f, 0x89, 0xeb, 0xff, 0xff, 0xff, //0x0000014f jns LBB0_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00000155 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00000159 movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000015d movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00000160 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00000163 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00000167 jb LBB0_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000016d movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00000171 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00000176 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000017a leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000017e addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00000182 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00000185 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00000188 je LBB0_24 + //0x0000018e LBB0_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000018e movzbl (%r15), %eax + 0x88, 0x07, //0x00000192 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00000194 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00000199 movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000019d jmp LBB0_26 + //0x000001a2 LBB0_21 + 0x45, 0x31, 0xe4, //0x000001a2 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x000001a5 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x000001a8 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x000001ab movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x000001ae testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x000001b1 jne LBB0_25 + //0x000001b7 LBB0_24 + 0x31, 0xff, //0x000001b7 xorl %edi, %edi + //0x000001b9 LBB0_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x000001b9 movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x000001bd shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x000001c0 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x000001c4 shll $8, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x000001c7 movzbl %r12b, %edi + 0x09, 0xdf, //0x000001cb orl %ebx, %edi + 0x09, 0xf8, //0x000001cd orl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x000001cf andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000001d4 cmpl $8421600, %eax + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000001d9 jne LBB0_29 + 0x89, 0xf8, //0x000001df movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x000001e1 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x000001e6 cmpl $8205, %eax + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000001eb je LBB0_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000001f1 movl $3, %ebx + 0x85, 0xc0, //0x000001f6 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000001f8 jne LBB0_34 + 0x90, 0x90, //0x000001fe .p2align 4, 0x90 + //0x00000200 LBB0_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00000200 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00000204 je LBB0_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x0000020a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000210 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00000215 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x0000021b jne LBB0_31 + //0x00000221 LBB0_34 + 0x48, 0x01, 0xd9, //0x00000221 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00000224 cmpq %r11, %rcx + 0x0f, 0x82, 0x1f, 0xff, 0xff, 0xff, //0x00000227 jb LBB0_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x0000022d jmp LBB0_36 + //0x00000232 LBB0_31 + 0x48, 0x89, 0xc8, //0x00000232 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000235 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00000238 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000023b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00000242 jae LBB0_32 + 0x48, 0x98, //0x00000248 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000024a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000024e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00000251 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000256 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000025b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000025e cmpq %r11, %rcx + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x00000261 jb LBB0_4 + //0x00000267 LBB0_36 + 0x4c, 0x29, 0xd1, //0x00000267 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000026a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000026d xorl %eax, %eax + //0x0000026f LBB0_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000026f addq $8, %rsp + 0x5b, //0x00000273 popq %rbx + 0x41, 0x5c, //0x00000274 popq %r12 + 0x41, 0x5e, //0x00000276 popq %r14 + 0x41, 0x5f, //0x00000278 popq %r15 + 0x5d, //0x0000027a popq %rbp + 0xc3, //0x0000027b retq + //0x0000027c LBB0_32 + 0x48, 0x89, 0x06, //0x0000027c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000027f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00000286 jmp LBB0_37 + //0x0000028b LBB0_17 + 0x48, 0x89, 0x3e, //0x0000028b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000028e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000295 jmp LBB0_37 + 0x00, 0x00, //0x0000029a .p2align 2, 0x00 + //0x0000029c _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000029c .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/value.go b/vendor/github.com/bytedance/sonic/internal/native/sse/value.go new file mode 100644 index 000000000..561868a59 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/value.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + +var S_value uintptr + +//go:nosplit +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return F_value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/value_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/value_subr.go new file mode 100644 index 000000000..65e8c8824 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/value_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__value = 192 +) + +const ( + _stack__value = 112 +) + +const ( + _size__value = 12816 +) + +var ( + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {562, 112}, + {566, 48}, + {567, 40}, + {569, 32}, + {571, 24}, + {573, 16}, + {575, 8}, + {576, 0}, + {12816, 112}, + } +) + +var _cfunc_value = []loader.CFunc{ + {"_value_entry", 0, _entry__value, 0, nil}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/value_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/value_text_amd64.go new file mode 100644 index 000000000..d816d45bc --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/value_text_amd64.go @@ -0,0 +1,5655 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_value = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 LCPI0_3 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00000030 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00000040 LCPI0_4 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00000040 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00000050 LCPI0_5 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00000050 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00000060 LCPI0_6 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00000060 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00000070 LCPI0_7 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00000070 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00000080 LCPI0_8 + 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, //0x00000080 QUAD $0x6565656565656565; QUAD $0x6565656565656565 // .space 16, 'eeeeeeeeeeeeeeee' + //0x00000090 LCPI0_9 + 0x00, 0x00, 0x30, 0x43, //0x00000090 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00000094 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00000098 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000009c .long 0 + //0x000000a0 LCPI0_10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x000000a0 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x000000a8 .quad 4985484787499139072 + //0x000000b0 .p2align 3, 0x00 + //0x000000b0 LCPI0_11 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000000b0 .quad 4831355200913801216 + //0x000000b8 LCPI0_12 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x000000b8 .quad -4392016835940974592 + //0x000000c0 .p2align 4, 0x90 + //0x000000c0 _value + 0x55, //0x000000c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000c1 movq %rsp, %rbp + 0x41, 0x57, //0x000000c4 pushq %r15 + 0x41, 0x56, //0x000000c6 pushq %r14 + 0x41, 0x55, //0x000000c8 pushq %r13 + 0x41, 0x54, //0x000000ca pushq %r12 + 0x53, //0x000000cc pushq %rbx + 0x48, 0x83, 0xec, 0x40, //0x000000cd subq $64, %rsp + 0x49, 0x89, 0xcd, //0x000000d1 movq %rcx, %r13 + 0x49, 0x89, 0xd3, //0x000000d4 movq %rdx, %r11 + 0x48, 0x89, 0xf8, //0x000000d7 movq %rdi, %rax + 0x48, 0x89, 0xd1, //0x000000da movq %rdx, %rcx + 0x48, 0x29, 0xf1, //0x000000dd subq %rsi, %rcx + 0x0f, 0x83, 0x2c, 0x00, 0x00, 0x00, //0x000000e0 jae LBB0_5 + 0x42, 0x8a, 0x3c, 0x18, //0x000000e6 movb (%rax,%r11), %dil + 0x40, 0x80, 0xff, 0x0d, //0x000000ea cmpb $13, %dil + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000000ee je LBB0_5 + 0x40, 0x80, 0xff, 0x20, //0x000000f4 cmpb $32, %dil + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000000f8 je LBB0_5 + 0x8d, 0x57, 0xf7, //0x000000fe leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x00000101 cmpb $1, %dl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00000104 jbe LBB0_5 + 0x4d, 0x89, 0xdf, //0x0000010a movq %r11, %r15 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x0000010d jmp LBB0_28 + //0x00000112 LBB0_5 + 0x4d, 0x8d, 0x7b, 0x01, //0x00000112 leaq $1(%r11), %r15 + 0x49, 0x39, 0xf7, //0x00000116 cmpq %rsi, %r15 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00000119 jae LBB0_9 + 0x42, 0x8a, 0x3c, 0x38, //0x0000011f movb (%rax,%r15), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00000123 cmpb $13, %dil + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000127 je LBB0_9 + 0x40, 0x80, 0xff, 0x20, //0x0000012d cmpb $32, %dil + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000131 je LBB0_9 + 0x8d, 0x57, 0xf7, //0x00000137 leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x0000013a cmpb $1, %dl + 0x0f, 0x87, 0xfb, 0x00, 0x00, 0x00, //0x0000013d ja LBB0_28 + //0x00000143 LBB0_9 + 0x4d, 0x8d, 0x7b, 0x02, //0x00000143 leaq $2(%r11), %r15 + 0x49, 0x39, 0xf7, //0x00000147 cmpq %rsi, %r15 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x0000014a jae LBB0_13 + 0x42, 0x8a, 0x3c, 0x38, //0x00000150 movb (%rax,%r15), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00000154 cmpb $13, %dil + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000158 je LBB0_13 + 0x40, 0x80, 0xff, 0x20, //0x0000015e cmpb $32, %dil + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000162 je LBB0_13 + 0x8d, 0x57, 0xf7, //0x00000168 leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x0000016b cmpb $1, %dl + 0x0f, 0x87, 0xca, 0x00, 0x00, 0x00, //0x0000016e ja LBB0_28 + //0x00000174 LBB0_13 + 0x4d, 0x8d, 0x7b, 0x03, //0x00000174 leaq $3(%r11), %r15 + 0x49, 0x39, 0xf7, //0x00000178 cmpq %rsi, %r15 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x0000017b jae LBB0_17 + 0x42, 0x8a, 0x3c, 0x38, //0x00000181 movb (%rax,%r15), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00000185 cmpb $13, %dil + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000189 je LBB0_17 + 0x40, 0x80, 0xff, 0x20, //0x0000018f cmpb $32, %dil + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00000193 je LBB0_17 + 0x8d, 0x57, 0xf7, //0x00000199 leal $-9(%rdi), %edx + 0x80, 0xfa, 0x01, //0x0000019c cmpb $1, %dl + 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x0000019f ja LBB0_28 + //0x000001a5 LBB0_17 + 0x49, 0x8d, 0x53, 0x04, //0x000001a5 leaq $4(%r11), %rdx + 0x48, 0x39, 0xf2, //0x000001a9 cmpq %rsi, %rdx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x000001ac jae LBB0_23 + 0x48, 0x39, 0xd6, //0x000001b2 cmpq %rdx, %rsi + 0x0f, 0x84, 0x56, 0x00, 0x00, 0x00, //0x000001b5 je LBB0_24 + 0x48, 0x8d, 0x14, 0x30, //0x000001bb leaq (%rax,%rsi), %rdx + 0x48, 0x83, 0xc1, 0x04, //0x000001bf addq $4, %rcx + 0x4d, 0x8d, 0x7c, 0x03, 0x05, //0x000001c3 leaq $5(%r11,%rax), %r15 + 0x48, 0xbf, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000001c8 movabsq $4294977024, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001d2 .p2align 4, 0x90 + //0x000001e0 LBB0_20 + 0x41, 0x0f, 0xbe, 0x5f, 0xff, //0x000001e0 movsbl $-1(%r15), %ebx + 0x83, 0xfb, 0x20, //0x000001e5 cmpl $32, %ebx + 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x000001e8 ja LBB0_26 + 0x48, 0x0f, 0xa3, 0xdf, //0x000001ee btq %rbx, %rdi + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x000001f2 jae LBB0_26 + 0x49, 0xff, 0xc7, //0x000001f8 incq %r15 + 0x48, 0xff, 0xc1, //0x000001fb incq %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000001fe jne LBB0_20 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000204 jmp LBB0_25 + //0x00000209 LBB0_23 + 0x49, 0x89, 0xd3, //0x00000209 movq %rdx, %r11 + 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x0000020c jmp LBB0_37 + //0x00000211 LBB0_24 + 0x48, 0x01, 0xc2, //0x00000211 addq %rax, %rdx + //0x00000214 LBB0_25 + 0x48, 0x29, 0xc2, //0x00000214 subq %rax, %rdx + 0x49, 0x89, 0xd7, //0x00000217 movq %rdx, %r15 + 0x49, 0x39, 0xf7, //0x0000021a cmpq %rsi, %r15 + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x0000021d jb LBB0_27 + 0xe9, 0xbf, 0x00, 0x00, 0x00, //0x00000223 jmp LBB0_37 + //0x00000228 LBB0_26 + 0x48, 0x89, 0xc1, //0x00000228 movq %rax, %rcx + 0x48, 0xf7, 0xd1, //0x0000022b notq %rcx + 0x49, 0x01, 0xcf, //0x0000022e addq %rcx, %r15 + 0x49, 0x39, 0xf7, //0x00000231 cmpq %rsi, %r15 + 0x0f, 0x83, 0xad, 0x00, 0x00, 0x00, //0x00000234 jae LBB0_37 + //0x0000023a LBB0_27 + 0x42, 0x8a, 0x3c, 0x38, //0x0000023a movb (%rax,%r15), %dil + //0x0000023e LBB0_28 + 0x40, 0x0f, 0xbe, 0xcf, //0x0000023e movsbl %dil, %ecx + 0x83, 0xf9, 0x7d, //0x00000242 cmpl $125, %ecx + 0x0f, 0x87, 0xb8, 0x04, 0x00, 0x00, //0x00000245 ja LBB0_99 + 0x4d, 0x8d, 0x5f, 0x01, //0x0000024b leaq $1(%r15), %r11 + 0x4a, 0x8d, 0x1c, 0x38, //0x0000024f leaq (%rax,%r15), %rbx + 0x48, 0x8d, 0x15, 0x76, 0x30, 0x00, 0x00, //0x00000253 leaq $12406(%rip), %rdx /* LJTI0_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x0000025a movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x0000025e addq %rdx, %rcx + 0xff, 0xe1, //0x00000261 jmpq *%rcx + //0x00000263 LBB0_30 + 0x41, 0xf6, 0xc0, 0x02, //0x00000263 testb $2, %r8b + 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x00000267 jne LBB0_39 + 0x4d, 0x8b, 0x65, 0x20, //0x0000026d movq $32(%r13), %r12 + 0x49, 0x8b, 0x4d, 0x28, //0x00000271 movq $40(%r13), %rcx + 0x48, 0x89, 0x4d, 0xa8, //0x00000275 movq %rcx, $-88(%rbp) + 0x49, 0xc7, 0x45, 0x00, 0x09, 0x00, 0x00, 0x00, //0x00000279 movq $9, (%r13) + 0x49, 0xc7, 0x45, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000281 movq $0, $8(%r13) + 0x49, 0xc7, 0x45, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00000289 movq $0, $16(%r13) + 0x4d, 0x89, 0x7d, 0x18, //0x00000291 movq %r15, $24(%r13) + 0x49, 0x39, 0xf7, //0x00000295 cmpq %rsi, %r15 + 0x0f, 0x83, 0x8e, 0x0c, 0x00, 0x00, //0x00000298 jae LBB0_198 + 0x49, 0x89, 0xd8, //0x0000029e movq %rbx, %r8 + 0x8a, 0x1b, //0x000002a1 movb (%rbx), %bl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000002a3 movl $1, %r9d + 0x4c, 0x89, 0xff, //0x000002a9 movq %r15, %rdi + 0x80, 0xfb, 0x2d, //0x000002ac cmpb $45, %bl + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000002af jne LBB0_35 + 0x49, 0x39, 0xf3, //0x000002b5 cmpq %rsi, %r11 + 0x0f, 0x83, 0x6e, 0x0c, 0x00, 0x00, //0x000002b8 jae LBB0_198 + 0x42, 0x8a, 0x1c, 0x18, //0x000002be movb (%rax,%r11), %bl + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000002c2 movl $-1, %r9d + 0x4c, 0x89, 0xdf, //0x000002c8 movq %r11, %rdi + //0x000002cb LBB0_35 + 0x8d, 0x4b, 0xd0, //0x000002cb leal $-48(%rbx), %ecx + 0x80, 0xf9, 0x0a, //0x000002ce cmpb $10, %cl + 0x0f, 0x82, 0x5b, 0x03, 0x00, 0x00, //0x000002d1 jb LBB0_84 + 0x49, 0xc7, 0x45, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x000002d7 movq $-2, (%r13) + 0x49, 0x89, 0xfb, //0x000002df movq %rdi, %r11 + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x000002e2 jmp LBB0_38 + //0x000002e7 LBB0_37 + 0x49, 0xc7, 0x45, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000002e7 movq $1, (%r13) + //0x000002ef LBB0_38 + 0x4c, 0x89, 0xd8, //0x000002ef movq %r11, %rax + 0x48, 0x83, 0xc4, 0x40, //0x000002f2 addq $64, %rsp + 0x5b, //0x000002f6 popq %rbx + 0x41, 0x5c, //0x000002f7 popq %r12 + 0x41, 0x5d, //0x000002f9 popq %r13 + 0x41, 0x5e, //0x000002fb popq %r14 + 0x41, 0x5f, //0x000002fd popq %r15 + 0x5d, //0x000002ff popq %rbp + 0xc3, //0x00000300 retq + //0x00000301 LBB0_39 + 0x48, 0x89, 0x45, 0xc0, //0x00000301 movq %rax, $-64(%rbp) + 0x4c, 0x29, 0xfe, //0x00000305 subq %r15, %rsi + 0x31, 0xc0, //0x00000308 xorl %eax, %eax + 0x40, 0x80, 0xff, 0x2d, //0x0000030a cmpb $45, %dil + 0x0f, 0x94, 0xc0, //0x0000030e sete %al + 0x48, 0x01, 0xc3, //0x00000311 addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x00000314 subq %rax, %rsi + 0x0f, 0x84, 0xa1, 0x1d, 0x00, 0x00, //0x00000317 je LBB0_450 + 0x4c, 0x89, 0x5d, 0xb8, //0x0000031d movq %r11, $-72(%rbp) + 0x8a, 0x03, //0x00000321 movb (%rbx), %al + 0x8d, 0x48, 0xd0, //0x00000323 leal $-48(%rax), %ecx + 0x80, 0xf9, 0x09, //0x00000326 cmpb $9, %cl + 0x0f, 0x87, 0x0f, 0x0d, 0x00, 0x00, //0x00000329 ja LBB0_220 + 0x3c, 0x30, //0x0000032f cmpb $48, %al + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00000331 jne LBB0_45 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000337 movl $1, %r11d + 0x48, 0x83, 0xfe, 0x01, //0x0000033d cmpq $1, %rsi + 0x0f, 0x84, 0xa6, 0x06, 0x00, 0x00, //0x00000341 je LBB0_129 + 0x8a, 0x43, 0x01, //0x00000347 movb $1(%rbx), %al + 0x04, 0xd2, //0x0000034a addb $-46, %al + 0x3c, 0x37, //0x0000034c cmpb $55, %al + 0x0f, 0x87, 0x99, 0x06, 0x00, 0x00, //0x0000034e ja LBB0_129 + 0x0f, 0xb6, 0xc0, //0x00000354 movzbl %al, %eax + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00000357 movabsq $36028797027352577, %rcx + 0x48, 0x0f, 0xa3, 0xc1, //0x00000361 btq %rax, %rcx + 0x0f, 0x83, 0x82, 0x06, 0x00, 0x00, //0x00000365 jae LBB0_129 + //0x0000036b LBB0_45 + 0x4c, 0x89, 0x6d, 0xd0, //0x0000036b movq %r13, $-48(%rbp) + 0x48, 0x83, 0xfe, 0x10, //0x0000036f cmpq $16, %rsi + 0x0f, 0x82, 0x51, 0x1d, 0x00, 0x00, //0x00000373 jb LBB0_452 + 0xba, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000379 movl $2863311530, %edx + 0x48, 0x8d, 0x46, 0xf0, //0x0000037e leaq $-16(%rsi), %rax + 0x48, 0x89, 0xc1, //0x00000382 movq %rax, %rcx + 0x48, 0x83, 0xe1, 0xf0, //0x00000385 andq $-16, %rcx + 0x4c, 0x8d, 0x54, 0x19, 0x10, //0x00000389 leaq $16(%rcx,%rbx), %r10 + 0x83, 0xe0, 0x0f, //0x0000038e andl $15, %eax + 0x48, 0xc7, 0x45, 0xa8, 0xff, 0xff, 0xff, 0xff, //0x00000391 movq $-1, $-88(%rbp) + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x8e, 0xfc, 0xff, 0xff, //0x00000399 movdqu $-882(%rip), %xmm8 /* LCPI0_3+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x15, 0x95, 0xfc, 0xff, 0xff, //0x000003a2 movdqu $-875(%rip), %xmm10 /* LCPI0_4+0(%rip) */ + 0xf3, 0x44, 0x0f, 0x6f, 0x0d, 0x9c, 0xfc, 0xff, 0xff, //0x000003ab movdqu $-868(%rip), %xmm9 /* LCPI0_5+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x1d, 0xa4, 0xfc, 0xff, 0xff, //0x000003b4 movdqu $-860(%rip), %xmm3 /* LCPI0_6+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x25, 0x5c, 0xfc, 0xff, 0xff, //0x000003bc movdqu $-932(%rip), %xmm4 /* LCPI0_2+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x2d, 0xa4, 0xfc, 0xff, 0xff, //0x000003c4 movdqu $-860(%rip), %xmm5 /* LCPI0_7+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x35, 0xac, 0xfc, 0xff, 0xff, //0x000003cc movdqu $-852(%rip), %xmm6 /* LCPI0_8+0(%rip) */ + 0x48, 0x81, 0xc2, 0x55, 0x55, 0x55, 0x55, //0x000003d4 addq $1431655765, %rdx + 0x48, 0x89, 0x55, 0xc8, //0x000003db movq %rdx, $-56(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000003df movq $-1, %r12 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000003e6 movq $-1, %r14 + 0x48, 0x89, 0xdf, //0x000003ed movq %rbx, %rdi + //0x000003f0 .p2align 4, 0x90 + //0x000003f0 LBB0_47 + 0x49, 0x89, 0xd8, //0x000003f0 movq %rbx, %r8 + 0xf3, 0x0f, 0x6f, 0x3f, //0x000003f3 movdqu (%rdi), %xmm7 + 0x66, 0x0f, 0x6f, 0xc7, //0x000003f7 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x000003fb pcmpgtb %xmm8, %xmm0 + 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x00000400 movdqa %xmm10, %xmm1 + 0x66, 0x0f, 0x64, 0xcf, //0x00000405 pcmpgtb %xmm7, %xmm1 + 0x66, 0x0f, 0xdb, 0xc8, //0x00000409 pand %xmm0, %xmm1 + 0x66, 0x0f, 0x6f, 0xc7, //0x0000040d movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x00000411 pcmpeqb %xmm9, %xmm0 + 0x66, 0x0f, 0x6f, 0xd7, //0x00000416 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000041a pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xeb, 0xd0, //0x0000041e por %xmm0, %xmm2 + 0x66, 0x0f, 0x6f, 0xc7, //0x00000422 movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xc4, //0x00000426 por %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc6, //0x0000042a pcmpeqb %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xfd, //0x0000042e pcmpeqb %xmm5, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00000432 pmovmskb %xmm0, %r9d + 0x66, 0x0f, 0xeb, 0xc7, //0x00000437 por %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xca, //0x0000043b por %xmm2, %xmm1 + 0x66, 0x0f, 0xeb, 0xc8, //0x0000043f por %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xdf, //0x00000443 pmovmskb %xmm7, %ebx + 0x66, 0x44, 0x0f, 0xd7, 0xea, //0x00000447 pmovmskb %xmm2, %r13d + 0x66, 0x0f, 0xd7, 0xc9, //0x0000044c pmovmskb %xmm1, %ecx + 0x48, 0x33, 0x4d, 0xc8, //0x00000450 xorq $-56(%rbp), %rcx + 0x48, 0x0f, 0xbc, 0xc9, //0x00000454 bsfq %rcx, %rcx + 0x83, 0xf9, 0x10, //0x00000458 cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000045b je LBB0_49 + 0xba, 0xff, 0xff, 0xff, 0xff, //0x00000461 movl $-1, %edx + 0xd3, 0xe2, //0x00000466 shll %cl, %edx + 0xf7, 0xd2, //0x00000468 notl %edx + 0x21, 0xd3, //0x0000046a andl %edx, %ebx + 0x41, 0x21, 0xd1, //0x0000046c andl %edx, %r9d + 0x44, 0x21, 0xea, //0x0000046f andl %r13d, %edx + 0x41, 0x89, 0xd5, //0x00000472 movl %edx, %r13d + //0x00000475 LBB0_49 + 0x8d, 0x53, 0xff, //0x00000475 leal $-1(%rbx), %edx + 0x21, 0xda, //0x00000478 andl %ebx, %edx + 0x0f, 0x85, 0x87, 0x09, 0x00, 0x00, //0x0000047a jne LBB0_177 + 0x41, 0x8d, 0x51, 0xff, //0x00000480 leal $-1(%r9), %edx + 0x44, 0x21, 0xca, //0x00000484 andl %r9d, %edx + 0x0f, 0x85, 0x7a, 0x09, 0x00, 0x00, //0x00000487 jne LBB0_177 + 0x41, 0x8d, 0x55, 0xff, //0x0000048d leal $-1(%r13), %edx + 0x44, 0x21, 0xea, //0x00000491 andl %r13d, %edx + 0x0f, 0x85, 0x6d, 0x09, 0x00, 0x00, //0x00000494 jne LBB0_177 + 0x85, 0xdb, //0x0000049a testl %ebx, %ebx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000049c je LBB0_55 + 0x48, 0x89, 0xfa, //0x000004a2 movq %rdi, %rdx + 0x4c, 0x29, 0xc2, //0x000004a5 subq %r8, %rdx + 0x44, 0x0f, 0xbc, 0xdb, //0x000004a8 bsfl %ebx, %r11d + 0x49, 0x01, 0xd3, //0x000004ac addq %rdx, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000004af cmpq $-1, %r14 + 0x0f, 0x85, 0x0f, 0x0c, 0x00, 0x00, //0x000004b3 jne LBB0_229 + 0x4d, 0x89, 0xde, //0x000004b9 movq %r11, %r14 + //0x000004bc LBB0_55 + 0x4c, 0x89, 0xc3, //0x000004bc movq %r8, %rbx + 0x45, 0x85, 0xc9, //0x000004bf testl %r9d, %r9d + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000004c2 je LBB0_58 + 0x48, 0x89, 0xfa, //0x000004c8 movq %rdi, %rdx + 0x48, 0x29, 0xda, //0x000004cb subq %rbx, %rdx + 0x45, 0x0f, 0xbc, 0xd9, //0x000004ce bsfl %r9d, %r11d + 0x49, 0x01, 0xd3, //0x000004d2 addq %rdx, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x000004d5 cmpq $-1, %r12 + 0x0f, 0x85, 0x35, 0x09, 0x00, 0x00, //0x000004d9 jne LBB0_178 + 0x4d, 0x89, 0xdc, //0x000004df movq %r11, %r12 + //0x000004e2 LBB0_58 + 0x45, 0x85, 0xed, //0x000004e2 testl %r13d, %r13d + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000004e5 je LBB0_61 + 0x48, 0x89, 0xfa, //0x000004eb movq %rdi, %rdx + 0x48, 0x29, 0xda, //0x000004ee subq %rbx, %rdx + 0x45, 0x0f, 0xbc, 0xdd, //0x000004f1 bsfl %r13d, %r11d + 0x49, 0x01, 0xd3, //0x000004f5 addq %rdx, %r11 + 0x48, 0x83, 0x7d, 0xa8, 0xff, //0x000004f8 cmpq $-1, $-88(%rbp) + 0x0f, 0x85, 0x11, 0x09, 0x00, 0x00, //0x000004fd jne LBB0_178 + 0x4c, 0x89, 0x5d, 0xa8, //0x00000503 movq %r11, $-88(%rbp) + //0x00000507 LBB0_61 + 0x83, 0xf9, 0x10, //0x00000507 cmpl $16, %ecx + 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x0000050a jne LBB0_74 + 0x48, 0x83, 0xc7, 0x10, //0x00000510 addq $16, %rdi + 0x48, 0x83, 0xc6, 0xf0, //0x00000514 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x0f, //0x00000518 cmpq $15, %rsi + 0x0f, 0x87, 0xce, 0xfe, 0xff, 0xff, //0x0000051c ja LBB0_47 + 0x48, 0x85, 0xc0, //0x00000522 testq %rax, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x00000525 movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x00000529 je LBB0_75 + //0x0000052f LBB0_64 + 0x49, 0x8d, 0x0c, 0x02, //0x0000052f leaq (%r10,%rax), %rcx + 0x48, 0x8d, 0x35, 0x8e, 0x2f, 0x00, 0x00, //0x00000533 leaq $12174(%rip), %rsi /* LJTI0_1+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x0000053a jmp LBB0_68 + //0x0000053f LBB0_65 + 0x49, 0x89, 0xfb, //0x0000053f movq %rdi, %r11 + 0x49, 0x29, 0xdb, //0x00000542 subq %rbx, %r11 + 0x48, 0x83, 0x7d, 0xa8, 0xff, //0x00000545 cmpq $-1, $-88(%rbp) + 0x0f, 0x85, 0x87, 0x0b, 0x00, 0x00, //0x0000054a jne LBB0_453 + 0x49, 0xff, 0xcb, //0x00000550 decq %r11 + 0x4c, 0x89, 0x5d, 0xa8, //0x00000553 movq %r11, $-88(%rbp) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000557 .p2align 4, 0x90 + //0x00000560 LBB0_67 + 0x49, 0x89, 0xfa, //0x00000560 movq %rdi, %r10 + 0x48, 0xff, 0xc8, //0x00000563 decq %rax + 0x0f, 0x84, 0xb9, 0x0a, 0x00, 0x00, //0x00000566 je LBB0_218 + //0x0000056c LBB0_68 + 0x41, 0x0f, 0xbe, 0x12, //0x0000056c movsbl (%r10), %edx + 0x83, 0xc2, 0xd5, //0x00000570 addl $-43, %edx + 0x83, 0xfa, 0x3a, //0x00000573 cmpl $58, %edx + 0x0f, 0x87, 0x4d, 0x00, 0x00, 0x00, //0x00000576 ja LBB0_75 + 0x49, 0x8d, 0x7a, 0x01, //0x0000057c leaq $1(%r10), %rdi + 0x48, 0x63, 0x14, 0x96, //0x00000580 movslq (%rsi,%rdx,4), %rdx + 0x48, 0x01, 0xf2, //0x00000584 addq %rsi, %rdx + 0xff, 0xe2, //0x00000587 jmpq *%rdx + //0x00000589 LBB0_70 + 0x49, 0x89, 0xfb, //0x00000589 movq %rdi, %r11 + 0x49, 0x29, 0xdb, //0x0000058c subq %rbx, %r11 + 0x49, 0x83, 0xfc, 0xff, //0x0000058f cmpq $-1, %r12 + 0x0f, 0x85, 0x3e, 0x0b, 0x00, 0x00, //0x00000593 jne LBB0_453 + 0x49, 0xff, 0xcb, //0x00000599 decq %r11 + 0x4d, 0x89, 0xdc, //0x0000059c movq %r11, %r12 + 0xe9, 0xbc, 0xff, 0xff, 0xff, //0x0000059f jmp LBB0_67 + //0x000005a4 LBB0_72 + 0x49, 0x89, 0xfb, //0x000005a4 movq %rdi, %r11 + 0x49, 0x29, 0xdb, //0x000005a7 subq %rbx, %r11 + 0x49, 0x83, 0xfe, 0xff, //0x000005aa cmpq $-1, %r14 + 0x0f, 0x85, 0x23, 0x0b, 0x00, 0x00, //0x000005ae jne LBB0_453 + 0x49, 0xff, 0xcb, //0x000005b4 decq %r11 + 0x4d, 0x89, 0xde, //0x000005b7 movq %r11, %r14 + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x000005ba jmp LBB0_67 + //0x000005bf LBB0_74 + 0x48, 0x01, 0xcf, //0x000005bf addq %rcx, %rdi + 0x49, 0x89, 0xfa, //0x000005c2 movq %rdi, %r10 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000005c5 movq $-48(%rbp), %r13 + //0x000005c9 LBB0_75 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000005c9 movq $-1, %r11 + 0x4d, 0x85, 0xe4, //0x000005d0 testq %r12, %r12 + 0x0f, 0x84, 0x5f, 0x0a, 0x00, 0x00, //0x000005d3 je LBB0_219 + //0x000005d9 LBB0_76 + 0x48, 0x8b, 0x4d, 0xa8, //0x000005d9 movq $-88(%rbp), %rcx + 0x48, 0x85, 0xc9, //0x000005dd testq %rcx, %rcx + 0x0f, 0x84, 0x52, 0x0a, 0x00, 0x00, //0x000005e0 je LBB0_219 + 0x4d, 0x85, 0xf6, //0x000005e6 testq %r14, %r14 + 0x0f, 0x84, 0x49, 0x0a, 0x00, 0x00, //0x000005e9 je LBB0_219 + 0x49, 0x29, 0xda, //0x000005ef subq %rbx, %r10 + 0x49, 0x8d, 0x42, 0xff, //0x000005f2 leaq $-1(%r10), %rax + 0x49, 0x39, 0xc4, //0x000005f6 cmpq %rax, %r12 + 0x0f, 0x84, 0xdf, 0x03, 0x00, 0x00, //0x000005f9 je LBB0_127 + 0x49, 0x39, 0xc6, //0x000005ff cmpq %rax, %r14 + 0x0f, 0x84, 0xd6, 0x03, 0x00, 0x00, //0x00000602 je LBB0_127 + 0x48, 0x39, 0xc1, //0x00000608 cmpq %rax, %rcx + 0x0f, 0x84, 0xcd, 0x03, 0x00, 0x00, //0x0000060b je LBB0_127 + 0x48, 0x85, 0xc9, //0x00000611 testq %rcx, %rcx + 0x0f, 0x8e, 0x3e, 0x06, 0x00, 0x00, //0x00000614 jle LBB0_145 + 0x48, 0x8d, 0x41, 0xff, //0x0000061a leaq $-1(%rcx), %rax + 0x49, 0x39, 0xc4, //0x0000061e cmpq %rax, %r12 + 0x0f, 0x84, 0x31, 0x06, 0x00, 0x00, //0x00000621 je LBB0_145 + 0x48, 0xf7, 0xd1, //0x00000627 notq %rcx + 0x49, 0x89, 0xcb, //0x0000062a movq %rcx, %r11 + 0xe9, 0xb2, 0x03, 0x00, 0x00, //0x0000062d jmp LBB0_128 + //0x00000632 LBB0_84 + 0x80, 0xfb, 0x30, //0x00000632 cmpb $48, %bl + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00000635 jne LBB0_88 + 0x4c, 0x8d, 0x5f, 0x01, //0x0000063b leaq $1(%rdi), %r11 + 0x48, 0x39, 0xf7, //0x0000063f cmpq %rsi, %rdi + 0x0f, 0x83, 0xa7, 0xfc, 0xff, 0xff, //0x00000642 jae LBB0_38 + 0x42, 0x8a, 0x0c, 0x18, //0x00000648 movb (%rax,%r11), %cl + 0x80, 0xc1, 0xd2, //0x0000064c addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000064f cmpb $55, %cl + 0x0f, 0x87, 0x97, 0xfc, 0xff, 0xff, //0x00000652 ja LBB0_38 + 0x0f, 0xb6, 0xc9, //0x00000658 movzbl %cl, %ecx + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000065b movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00000665 btq %rcx, %rdx + 0x0f, 0x83, 0x80, 0xfc, 0xff, 0xff, //0x00000669 jae LBB0_38 + //0x0000066f LBB0_88 + 0x48, 0x39, 0xf7, //0x0000066f cmpq %rsi, %rdi + 0x44, 0x89, 0x4d, 0xc8, //0x00000672 movl %r9d, $-56(%rbp) + 0x0f, 0x83, 0xff, 0x05, 0x00, 0x00, //0x00000676 jae LBB0_148 + 0x48, 0xff, 0xc7, //0x0000067c incq %rdi + 0x31, 0xc9, //0x0000067f xorl %ecx, %ecx + 0x49, 0x89, 0xfb, //0x00000681 movq %rdi, %r11 + 0x31, 0xd2, //0x00000684 xorl %edx, %edx + 0x45, 0x31, 0xd2, //0x00000686 xorl %r10d, %r10d + //0x00000689 LBB0_90 + 0x83, 0xfa, 0x12, //0x00000689 cmpl $18, %edx + 0x0f, 0x8f, 0x13, 0x00, 0x00, 0x00, //0x0000068c jg LBB0_92 + 0x0f, 0xb6, 0xdb, //0x00000692 movzbl %bl, %ebx + 0x4b, 0x8d, 0x3c, 0x92, //0x00000695 leaq (%r10,%r10,4), %rdi + 0x4c, 0x8d, 0x54, 0x7b, 0xd0, //0x00000699 leaq $-48(%rbx,%rdi,2), %r10 + 0xff, 0xc2, //0x0000069e incl %edx + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000006a0 jmp LBB0_93 + //0x000006a5 LBB0_92 + 0xff, 0xc1, //0x000006a5 incl %ecx + //0x000006a7 LBB0_93 + 0x4c, 0x39, 0xde, //0x000006a7 cmpq %r11, %rsi + 0x0f, 0x84, 0xcc, 0x06, 0x00, 0x00, //0x000006aa je LBB0_165 + 0x42, 0x0f, 0xb6, 0x1c, 0x18, //0x000006b0 movzbl (%rax,%r11), %ebx + 0x8d, 0x7b, 0xd0, //0x000006b5 leal $-48(%rbx), %edi + 0x49, 0xff, 0xc3, //0x000006b8 incq %r11 + 0x40, 0x80, 0xff, 0x0a, //0x000006bb cmpb $10, %dil + 0x0f, 0x82, 0xc4, 0xff, 0xff, 0xff, //0x000006bf jb LBB0_90 + 0x45, 0x31, 0xf6, //0x000006c5 xorl %r14d, %r14d + 0x85, 0xc9, //0x000006c8 testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc6, //0x000006ca setg %r14b + 0x80, 0xfb, 0x2e, //0x000006ce cmpb $46, %bl + 0x0f, 0x85, 0x49, 0x07, 0x00, 0x00, //0x000006d1 jne LBB0_179 + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x000006d7 movq $8, (%r13) + 0x49, 0x39, 0xf3, //0x000006df cmpq %rsi, %r11 + 0x0f, 0x83, 0x44, 0x08, 0x00, 0x00, //0x000006e2 jae LBB0_198 + 0x42, 0x8a, 0x1c, 0x18, //0x000006e8 movb (%rax,%r11), %bl + 0x80, 0xc3, 0xd0, //0x000006ec addb $-48, %bl + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x000006ef movl $8, %r9d + 0x80, 0xfb, 0x0a, //0x000006f5 cmpb $10, %bl + 0x0f, 0x82, 0x93, 0x06, 0x00, 0x00, //0x000006f8 jb LBB0_167 + 0xe9, 0x62, 0x09, 0x00, 0x00, //0x000006fe jmp LBB0_98 + //0x00000703 LBB0_99 + 0x49, 0xc7, 0x45, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00000703 movq $-2, (%r13) + 0x4d, 0x89, 0xfb, //0x0000070b movq %r15, %r11 + 0xe9, 0xdc, 0xfb, 0xff, 0xff, //0x0000070e jmp LBB0_38 + //0x00000713 LBB0_100 + 0x4c, 0x89, 0xfa, //0x00000713 movq %r15, %rdx + 0x48, 0xf7, 0xd2, //0x00000716 notq %rdx + 0x41, 0xf6, 0xc0, 0x20, //0x00000719 testb $32, %r8b + 0x4c, 0x89, 0x6d, 0xd0, //0x0000071d movq %r13, $-48(%rbp) + 0x48, 0x89, 0x45, 0xc0, //0x00000721 movq %rax, $-64(%rbp) + 0x4c, 0x89, 0x5d, 0xb8, //0x00000725 movq %r11, $-72(%rbp) + 0x0f, 0x85, 0xed, 0x02, 0x00, 0x00, //0x00000729 jne LBB0_132 + 0x49, 0x39, 0xf3, //0x0000072f cmpq %rsi, %r11 + 0x0f, 0x84, 0x87, 0x2b, 0x00, 0x00, //0x00000732 je LBB0_733 + 0x49, 0x89, 0xf4, //0x00000738 movq %rsi, %r12 + 0x4d, 0x29, 0xdc, //0x0000073b subq %r11, %r12 + 0x4e, 0x8d, 0x2c, 0x18, //0x0000073e leaq (%rax,%r11), %r13 + 0x49, 0x83, 0xfc, 0x40, //0x00000742 cmpq $64, %r12 + 0x0f, 0x82, 0x84, 0x28, 0x00, 0x00, //0x00000746 jb LBB0_692 + 0x48, 0x89, 0xc1, //0x0000074c movq %rax, %rcx + 0x45, 0x89, 0xe6, //0x0000074f movl %r12d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000752 andl $63, %r14d + 0x48, 0x8d, 0x44, 0x16, 0xc0, //0x00000756 leaq $-64(%rsi,%rdx), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x0000075b andq $-64, %rax + 0x49, 0x01, 0xc7, //0x0000075f addq %rax, %r15 + 0x4a, 0x8d, 0x44, 0x39, 0x41, //0x00000762 leaq $65(%rcx,%r15), %rax + 0x48, 0x89, 0x45, 0xa8, //0x00000767 movq %rax, $-88(%rbp) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000076b movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000772 xorl %r15d, %r15d + 0xf3, 0x0f, 0x6f, 0x05, 0x83, 0xf8, 0xff, 0xff, //0x00000775 movdqu $-1917(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x8b, 0xf8, 0xff, 0xff, //0x0000077d movdqu $-1909(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000785 .p2align 4, 0x90 + //0x00000790 LBB0_104 + 0xf3, 0x41, 0x0f, 0x6f, 0x55, 0x00, //0x00000790 movdqu (%r13), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x5d, 0x10, //0x00000796 movdqu $16(%r13), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x65, 0x20, //0x0000079c movdqu $32(%r13), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6d, 0x30, //0x000007a2 movdqu $48(%r13), %xmm5 + 0x66, 0x0f, 0x6f, 0xf2, //0x000007a8 movdqa %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000007ac pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xfe, //0x000007b0 pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x6f, 0xf3, //0x000007b4 movdqa %xmm3, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000007b8 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xd6, //0x000007bc pmovmskb %xmm6, %edx + 0x66, 0x0f, 0x6f, 0xf4, //0x000007c0 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000007c4 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xce, //0x000007c8 pmovmskb %xmm6, %ecx + 0x66, 0x0f, 0x6f, 0xf5, //0x000007cc movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000007d0 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xde, //0x000007d4 pmovmskb %xmm6, %ebx + 0x66, 0x0f, 0x74, 0xd1, //0x000007d8 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x000007dc pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x74, 0xd9, //0x000007e0 pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x000007e4 pmovmskb %xmm3, %r10d + 0x66, 0x0f, 0x74, 0xe1, //0x000007e9 pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xdc, //0x000007ed pmovmskb %xmm4, %r11d + 0x66, 0x0f, 0x74, 0xe9, //0x000007f2 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xcd, //0x000007f6 pmovmskb %xmm5, %r9d + 0x48, 0xc1, 0xe3, 0x30, //0x000007fb shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x000007ff shlq $32, %rcx + 0x48, 0xc1, 0xe2, 0x10, //0x00000803 shlq $16, %rdx + 0x48, 0x09, 0xd7, //0x00000807 orq %rdx, %rdi + 0x48, 0x09, 0xcf, //0x0000080a orq %rcx, %rdi + 0x49, 0xc1, 0xe1, 0x30, //0x0000080d shlq $48, %r9 + 0x49, 0xc1, 0xe3, 0x20, //0x00000811 shlq $32, %r11 + 0x49, 0xc1, 0xe2, 0x10, //0x00000815 shlq $16, %r10 + 0x4c, 0x09, 0xd0, //0x00000819 orq %r10, %rax + 0x4c, 0x09, 0xd8, //0x0000081c orq %r11, %rax + 0x4c, 0x09, 0xc8, //0x0000081f orq %r9, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00000822 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000826 jne LBB0_106 + 0x48, 0x85, 0xc0, //0x0000082c testq %rax, %rax + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000082f jne LBB0_109 + //0x00000835 LBB0_106 + 0x48, 0x09, 0xdf, //0x00000835 orq %rbx, %rdi + 0x48, 0x89, 0xc1, //0x00000838 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x0000083b orq %r15, %rcx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000083e jne LBB0_110 + //0x00000844 LBB0_107 + 0x48, 0x85, 0xff, //0x00000844 testq %rdi, %rdi + 0x0f, 0x85, 0x19, 0x09, 0x00, 0x00, //0x00000847 jne LBB0_235 + //0x0000084d LBB0_108 + 0x49, 0x83, 0xc4, 0xc0, //0x0000084d addq $-64, %r12 + 0x49, 0x83, 0xc5, 0x40, //0x00000851 addq $64, %r13 + 0x49, 0x83, 0xfc, 0x3f, //0x00000855 cmpq $63, %r12 + 0x0f, 0x87, 0x31, 0xff, 0xff, 0xff, //0x00000859 ja LBB0_104 + 0xe9, 0x7b, 0x08, 0x00, 0x00, //0x0000085f jmp LBB0_230 + //0x00000864 LBB0_109 + 0x4c, 0x89, 0xe9, //0x00000864 movq %r13, %rcx + 0x48, 0x2b, 0x4d, 0xc0, //0x00000867 subq $-64(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc0, //0x0000086b bsfq %rax, %r8 + 0x49, 0x01, 0xc8, //0x0000086f addq %rcx, %r8 + 0x48, 0x09, 0xdf, //0x00000872 orq %rbx, %rdi + 0x48, 0x89, 0xc1, //0x00000875 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00000878 orq %r15, %rcx + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x0000087b je LBB0_107 + //0x00000881 LBB0_110 + 0x4c, 0x89, 0xf9, //0x00000881 movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000884 notq %rcx + 0x48, 0x21, 0xc1, //0x00000887 andq %rax, %rcx + 0x48, 0x8d, 0x1c, 0x09, //0x0000088a leaq (%rcx,%rcx), %rbx + 0x4c, 0x09, 0xfb, //0x0000088e orq %r15, %rbx + 0x48, 0x89, 0xda, //0x00000891 movq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x00000894 notq %rdx + 0x48, 0x21, 0xc2, //0x00000897 andq %rax, %rdx + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000089a movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc2, //0x000008a4 andq %rax, %rdx + 0x45, 0x31, 0xff, //0x000008a7 xorl %r15d, %r15d + 0x48, 0x01, 0xca, //0x000008aa addq %rcx, %rdx + 0x41, 0x0f, 0x92, 0xc7, //0x000008ad setb %r15b + 0x48, 0x01, 0xd2, //0x000008b1 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000008b4 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x000008be xorq %rax, %rdx + 0x48, 0x21, 0xda, //0x000008c1 andq %rbx, %rdx + 0x48, 0xf7, 0xd2, //0x000008c4 notq %rdx + 0x48, 0x21, 0xd7, //0x000008c7 andq %rdx, %rdi + 0x48, 0x85, 0xff, //0x000008ca testq %rdi, %rdi + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000008cd je LBB0_108 + 0xe9, 0x8e, 0x08, 0x00, 0x00, //0x000008d3 jmp LBB0_235 + //0x000008d8 LBB0_111 + 0x31, 0xc9, //0x000008d8 xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x000008da testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x000008dd setns %cl + 0xb8, 0x0b, 0x00, 0x00, 0x00, //0x000008e0 movl $11, %eax + 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x000008e5 jmp LBB0_126 + //0x000008ea LBB0_112 + 0x31, 0xc9, //0x000008ea xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x000008ec testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x000008ef setns %cl + 0xb8, 0x0a, 0x00, 0x00, 0x00, //0x000008f2 movl $10, %eax + 0xe9, 0xcb, 0x00, 0x00, 0x00, //0x000008f7 jmp LBB0_126 + //0x000008fc LBB0_113 + 0x49, 0xc7, 0x45, 0x00, 0x05, 0x00, 0x00, 0x00, //0x000008fc movq $5, (%r13) + 0xe9, 0xe6, 0xf9, 0xff, 0xff, //0x00000904 jmp LBB0_38 + //0x00000909 LBB0_114 + 0x31, 0xc9, //0x00000909 xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x0000090b testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x0000090e setns %cl + 0xb8, 0x0c, 0x00, 0x00, 0x00, //0x00000911 movl $12, %eax + 0xe9, 0xac, 0x00, 0x00, 0x00, //0x00000916 jmp LBB0_126 + //0x0000091b LBB0_115 + 0x48, 0x8d, 0x4e, 0xfc, //0x0000091b leaq $-4(%rsi), %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000091f movq $-1, %rdx + 0x49, 0x39, 0xcf, //0x00000926 cmpq %rcx, %r15 + 0x0f, 0x83, 0xea, 0x06, 0x00, 0x00, //0x00000929 jae LBB0_217 + 0x42, 0x8b, 0x0c, 0x18, //0x0000092f movl (%rax,%r11), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00000933 cmpl $1702063201, %ecx + 0x0f, 0x85, 0x48, 0x03, 0x00, 0x00, //0x00000939 jne LBB0_149 + 0x49, 0x83, 0xc7, 0x05, //0x0000093f addq $5, %r15 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00000943 movl $4, %edx + 0xe9, 0xc9, 0x06, 0x00, 0x00, //0x00000948 jmp LBB0_216 + //0x0000094d LBB0_118 + 0x48, 0x8d, 0x4e, 0xfd, //0x0000094d leaq $-3(%rsi), %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00000951 movq $-1, %rdx + 0x49, 0x39, 0xcf, //0x00000958 cmpq %rcx, %r15 + 0x0f, 0x83, 0xb8, 0x06, 0x00, 0x00, //0x0000095b jae LBB0_217 + 0x8b, 0x0b, //0x00000961 movl (%rbx), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00000963 cmpl $1819047278, %ecx + 0x0f, 0x85, 0x57, 0x03, 0x00, 0x00, //0x00000969 jne LBB0_153 + 0x49, 0x83, 0xc7, 0x04, //0x0000096f addq $4, %r15 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000973 movl $2, %edx + 0xe9, 0x99, 0x06, 0x00, 0x00, //0x00000978 jmp LBB0_216 + //0x0000097d LBB0_121 + 0x48, 0x8d, 0x4e, 0xfd, //0x0000097d leaq $-3(%rsi), %rcx + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00000981 movq $-1, %rdx + 0x49, 0x39, 0xcf, //0x00000988 cmpq %rcx, %r15 + 0x0f, 0x83, 0x88, 0x06, 0x00, 0x00, //0x0000098b jae LBB0_217 + 0x8b, 0x0b, //0x00000991 movl (%rbx), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x00000993 cmpl $1702195828, %ecx + 0x0f, 0x85, 0x66, 0x03, 0x00, 0x00, //0x00000999 jne LBB0_157 + 0x49, 0x83, 0xc7, 0x04, //0x0000099f addq $4, %r15 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000009a3 movl $3, %edx + 0xe9, 0x69, 0x06, 0x00, 0x00, //0x000009a8 jmp LBB0_216 + //0x000009ad LBB0_124 + 0x49, 0xc7, 0x45, 0x00, 0x06, 0x00, 0x00, 0x00, //0x000009ad movq $6, (%r13) + 0xe9, 0x35, 0xf9, 0xff, 0xff, //0x000009b5 jmp LBB0_38 + //0x000009ba LBB0_125 + 0x31, 0xc9, //0x000009ba xorl %ecx, %ecx + 0x45, 0x85, 0xc0, //0x000009bc testl %r8d, %r8d + 0x0f, 0x99, 0xc1, //0x000009bf setns %cl + 0xb8, 0x0d, 0x00, 0x00, 0x00, //0x000009c2 movl $13, %eax + //0x000009c7 LBB0_126 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x000009c7 movq $-2, %rdx + 0x48, 0x0f, 0x48, 0xd0, //0x000009ce cmovsq %rax, %rdx + 0x49, 0x89, 0x55, 0x00, //0x000009d2 movq %rdx, (%r13) + 0x49, 0x29, 0xcb, //0x000009d6 subq %rcx, %r11 + 0xe9, 0x11, 0xf9, 0xff, 0xff, //0x000009d9 jmp LBB0_38 + //0x000009de LBB0_127 + 0x49, 0xf7, 0xda, //0x000009de negq %r10 + 0x4d, 0x89, 0xd3, //0x000009e1 movq %r10, %r11 + //0x000009e4 LBB0_128 + 0x4d, 0x85, 0xdb, //0x000009e4 testq %r11, %r11 + 0x0f, 0x88, 0x4b, 0x06, 0x00, 0x00, //0x000009e7 js LBB0_219 + //0x000009ed LBB0_129 + 0x4c, 0x01, 0xdb, //0x000009ed addq %r11, %rbx + 0x49, 0x89, 0xdb, //0x000009f0 movq %rbx, %r11 + 0x4c, 0x2b, 0x5d, 0xc0, //0x000009f3 subq $-64(%rbp), %r11 + 0x48, 0x83, 0x7d, 0xb8, 0x00, //0x000009f7 cmpq $0, $-72(%rbp) + 0x0f, 0x8e, 0x11, 0x00, 0x00, 0x00, //0x000009fc jle LBB0_131 + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00000a02 movq $8, (%r13) + 0x4d, 0x89, 0x7d, 0x18, //0x00000a0a movq %r15, $24(%r13) + 0xe9, 0xdc, 0xf8, 0xff, 0xff, //0x00000a0e jmp LBB0_38 + //0x00000a13 LBB0_131 + 0x4d, 0x89, 0x7d, 0x00, //0x00000a13 movq %r15, (%r13) + 0xe9, 0xd3, 0xf8, 0xff, 0xff, //0x00000a17 jmp LBB0_38 + //0x00000a1c LBB0_132 + 0x49, 0x39, 0xf3, //0x00000a1c cmpq %rsi, %r11 + 0x0f, 0x84, 0x9a, 0x28, 0x00, 0x00, //0x00000a1f je LBB0_733 + 0x49, 0x89, 0xf4, //0x00000a25 movq %rsi, %r12 + 0x4d, 0x29, 0xdc, //0x00000a28 subq %r11, %r12 + 0x4e, 0x8d, 0x2c, 0x18, //0x00000a2b leaq (%rax,%r11), %r13 + 0x49, 0x83, 0xfc, 0x40, //0x00000a2f cmpq $64, %r12 + 0x0f, 0x82, 0xb0, 0x25, 0x00, 0x00, //0x00000a33 jb LBB0_693 + 0x48, 0x89, 0xc1, //0x00000a39 movq %rax, %rcx + 0x45, 0x89, 0xe6, //0x00000a3c movl %r12d, %r14d + 0x41, 0x83, 0xe6, 0x3f, //0x00000a3f andl $63, %r14d + 0x48, 0x8d, 0x44, 0x16, 0xc0, //0x00000a43 leaq $-64(%rsi,%rdx), %rax + 0x48, 0x83, 0xe0, 0xc0, //0x00000a48 andq $-64, %rax + 0x49, 0x01, 0xc7, //0x00000a4c addq %rax, %r15 + 0x4e, 0x8d, 0x4c, 0x39, 0x41, //0x00000a4f leaq $65(%rcx,%r15), %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00000a54 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00000a5b xorl %r15d, %r15d + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x99, 0xf5, 0xff, 0xff, //0x00000a5e movdqu $-2663(%rip), %xmm8 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0xa1, 0xf5, 0xff, 0xff, //0x00000a67 movdqu $-2655(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0xa9, 0xf5, 0xff, 0xff, //0x00000a6f movdqu $-2647(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x00000a77 pcmpeqd %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a7b .p2align 4, 0x90 + //0x00000a80 LBB0_135 + 0xf3, 0x41, 0x0f, 0x6f, 0x7d, 0x00, //0x00000a80 movdqu (%r13), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x75, 0x10, //0x00000a86 movdqu $16(%r13), %xmm6 + 0xf3, 0x41, 0x0f, 0x6f, 0x6d, 0x20, //0x00000a8c movdqu $32(%r13), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x65, 0x30, //0x00000a92 movdqu $48(%r13), %xmm4 + 0x66, 0x0f, 0x6f, 0xc7, //0x00000a98 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x00000a9c pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xf8, //0x00000aa1 pmovmskb %xmm0, %edi + 0x66, 0x0f, 0x6f, 0xc6, //0x00000aa5 movdqa %xmm6, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x00000aa9 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xd8, //0x00000aae pmovmskb %xmm0, %ebx + 0x66, 0x0f, 0x6f, 0xc5, //0x00000ab2 movdqa %xmm5, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x00000ab6 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xc8, //0x00000abb pmovmskb %xmm0, %ecx + 0x66, 0x0f, 0x6f, 0xc4, //0x00000abf movdqa %xmm4, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x00000ac3 pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xd8, //0x00000ac8 pmovmskb %xmm0, %r11d + 0x66, 0x0f, 0x6f, 0xc7, //0x00000acd movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x00000ad1 pcmpeqb %xmm1, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x00000ad5 pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x6f, 0xc6, //0x00000ad9 movdqa %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x00000add pcmpeqb %xmm1, %xmm0 + 0x66, 0x0f, 0xd7, 0xd0, //0x00000ae1 pmovmskb %xmm0, %edx + 0x66, 0x0f, 0x6f, 0xc5, //0x00000ae5 movdqa %xmm5, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x00000ae9 pcmpeqb %xmm1, %xmm0 + 0x48, 0xc1, 0xe3, 0x10, //0x00000aed shlq $16, %rbx + 0x48, 0x09, 0xdf, //0x00000af1 orq %rbx, %rdi + 0x66, 0x0f, 0xd7, 0xd8, //0x00000af4 pmovmskb %xmm0, %ebx + 0x66, 0x0f, 0x6f, 0xc4, //0x00000af8 movdqa %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x00000afc pcmpeqb %xmm1, %xmm0 + 0x48, 0xc1, 0xe1, 0x20, //0x00000b00 shlq $32, %rcx + 0x48, 0x09, 0xcf, //0x00000b04 orq %rcx, %rdi + 0x66, 0x0f, 0xd7, 0xc8, //0x00000b07 pmovmskb %xmm0, %ecx + 0x66, 0x0f, 0x6f, 0xc2, //0x00000b0b movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc7, //0x00000b0f pcmpgtb %xmm7, %xmm0 + 0x66, 0x0f, 0x64, 0xfb, //0x00000b13 pcmpgtb %xmm3, %xmm7 + 0x66, 0x0f, 0xdb, 0xf8, //0x00000b17 pand %xmm0, %xmm7 + 0x48, 0xc1, 0xe2, 0x10, //0x00000b1b shlq $16, %rdx + 0x48, 0x09, 0xd0, //0x00000b1f orq %rdx, %rax + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00000b22 pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x6f, 0xc2, //0x00000b27 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc6, //0x00000b2b pcmpgtb %xmm6, %xmm0 + 0x66, 0x0f, 0x64, 0xf3, //0x00000b2f pcmpgtb %xmm3, %xmm6 + 0x66, 0x0f, 0xdb, 0xf0, //0x00000b33 pand %xmm0, %xmm6 + 0x48, 0xc1, 0xe3, 0x20, //0x00000b37 shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x00000b3b orq %rbx, %rax + 0x66, 0x0f, 0xd7, 0xd6, //0x00000b3e pmovmskb %xmm6, %edx + 0x66, 0x0f, 0x6f, 0xc2, //0x00000b42 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc5, //0x00000b46 pcmpgtb %xmm5, %xmm0 + 0x66, 0x0f, 0x64, 0xeb, //0x00000b4a pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xe8, //0x00000b4e pand %xmm0, %xmm5 + 0x48, 0xc1, 0xe1, 0x30, //0x00000b52 shlq $48, %rcx + 0x48, 0x09, 0xc8, //0x00000b56 orq %rcx, %rax + 0x66, 0x0f, 0xd7, 0xcd, //0x00000b59 pmovmskb %xmm5, %ecx + 0x66, 0x0f, 0x6f, 0xc2, //0x00000b5d movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc4, //0x00000b61 pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0x64, 0xe3, //0x00000b65 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe0, //0x00000b69 pand %xmm0, %xmm4 + 0x48, 0xc1, 0xe2, 0x10, //0x00000b6d shlq $16, %rdx + 0x49, 0x09, 0xd2, //0x00000b71 orq %rdx, %r10 + 0x66, 0x0f, 0xd7, 0xdc, //0x00000b74 pmovmskb %xmm4, %ebx + 0x49, 0xc1, 0xe3, 0x30, //0x00000b78 shlq $48, %r11 + 0x48, 0xc1, 0xe1, 0x20, //0x00000b7c shlq $32, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00000b80 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000b84 jne LBB0_137 + 0x48, 0x85, 0xc0, //0x00000b8a testq %rax, %rax + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00000b8d jne LBB0_142 + //0x00000b93 LBB0_137 + 0x48, 0xc1, 0xe3, 0x30, //0x00000b93 shlq $48, %rbx + 0x49, 0x09, 0xca, //0x00000b97 orq %rcx, %r10 + 0x4c, 0x09, 0xdf, //0x00000b9a orq %r11, %rdi + 0x48, 0x89, 0xc1, //0x00000b9d movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00000ba0 orq %r15, %rcx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x00000ba3 jne LBB0_141 + 0x49, 0x09, 0xda, //0x00000ba9 orq %rbx, %r10 + 0x48, 0x85, 0xff, //0x00000bac testq %rdi, %rdi + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x00000baf jne LBB0_143 + //0x00000bb5 LBB0_139 + 0x4d, 0x85, 0xd2, //0x00000bb5 testq %r10, %r10 + 0x0f, 0x85, 0x63, 0x25, 0x00, 0x00, //0x00000bb8 jne LBB0_712 + 0x49, 0x83, 0xc4, 0xc0, //0x00000bbe addq $-64, %r12 + 0x49, 0x83, 0xc5, 0x40, //0x00000bc2 addq $64, %r13 + 0x49, 0x83, 0xfc, 0x3f, //0x00000bc6 cmpq $63, %r12 + 0x0f, 0x87, 0xb0, 0xfe, 0xff, 0xff, //0x00000bca ja LBB0_135 + 0xe9, 0xd1, 0x05, 0x00, 0x00, //0x00000bd0 jmp LBB0_239 + //0x00000bd5 LBB0_141 + 0x4c, 0x89, 0xf9, //0x00000bd5 movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000bd8 notq %rcx + 0x48, 0x21, 0xc1, //0x00000bdb andq %rax, %rcx + 0x4c, 0x8d, 0x1c, 0x09, //0x00000bde leaq (%rcx,%rcx), %r11 + 0x4d, 0x09, 0xfb, //0x00000be2 orq %r15, %r11 + 0x4c, 0x89, 0xda, //0x00000be5 movq %r11, %rdx + 0x48, 0xf7, 0xd2, //0x00000be8 notq %rdx + 0x48, 0x21, 0xc2, //0x00000beb andq %rax, %rdx + 0x48, 0xb8, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000bee movabsq $-6148914691236517206, %rax + 0x48, 0x21, 0xc2, //0x00000bf8 andq %rax, %rdx + 0x45, 0x31, 0xff, //0x00000bfb xorl %r15d, %r15d + 0x48, 0x01, 0xca, //0x00000bfe addq %rcx, %rdx + 0x41, 0x0f, 0x92, 0xc7, //0x00000c01 setb %r15b + 0x48, 0x01, 0xd2, //0x00000c05 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000c08 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00000c12 xorq %rax, %rdx + 0x4c, 0x21, 0xda, //0x00000c15 andq %r11, %rdx + 0x48, 0xf7, 0xd2, //0x00000c18 notq %rdx + 0x48, 0x21, 0xd7, //0x00000c1b andq %rdx, %rdi + 0x49, 0x09, 0xda, //0x00000c1e orq %rbx, %r10 + 0x48, 0x85, 0xff, //0x00000c21 testq %rdi, %rdi + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00000c24 je LBB0_139 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000c2a jmp LBB0_143 + //0x00000c2f LBB0_142 + 0x4c, 0x89, 0xea, //0x00000c2f movq %r13, %rdx + 0x48, 0x2b, 0x55, 0xc0, //0x00000c32 subq $-64(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xc0, //0x00000c36 bsfq %rax, %r8 + 0x49, 0x01, 0xd0, //0x00000c3a addq %rdx, %r8 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x00000c3d jmp LBB0_137 + //0x00000c42 LBB0_143 + 0x48, 0x0f, 0xbc, 0xc7, //0x00000c42 bsfq %rdi, %rax + 0x4d, 0x85, 0xd2, //0x00000c46 testq %r10, %r10 + 0x0f, 0x84, 0x13, 0x01, 0x00, 0x00, //0x00000c49 je LBB0_162 + 0x49, 0x0f, 0xbc, 0xca, //0x00000c4f bsfq %r10, %rcx + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00000c53 jmp LBB0_163 + //0x00000c58 LBB0_145 + 0x4c, 0x89, 0xf0, //0x00000c58 movq %r14, %rax + 0x4c, 0x09, 0xe0, //0x00000c5b orq %r12, %rax + 0x4d, 0x39, 0xe6, //0x00000c5e cmpq %r12, %r14 + 0x0f, 0x8c, 0xdd, 0x00, 0x00, 0x00, //0x00000c61 jl LBB0_161 + 0x48, 0x85, 0xc0, //0x00000c67 testq %rax, %rax + 0x0f, 0x88, 0xd4, 0x00, 0x00, 0x00, //0x00000c6a js LBB0_161 + 0x49, 0xf7, 0xd6, //0x00000c70 notq %r14 + 0x4d, 0x89, 0xf3, //0x00000c73 movq %r14, %r11 + 0xe9, 0x69, 0xfd, 0xff, 0xff, //0x00000c76 jmp LBB0_128 + //0x00000c7b LBB0_148 + 0x31, 0xc9, //0x00000c7b xorl %ecx, %ecx + 0x31, 0xd2, //0x00000c7d xorl %edx, %edx + 0x45, 0x31, 0xd2, //0x00000c7f xorl %r10d, %r10d + 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x00000c82 jmp LBB0_166 + //0x00000c87 LBB0_149 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000c87 movq $-2, %rdx + 0x80, 0xf9, 0x61, //0x00000c8e cmpb $97, %cl + 0x0f, 0x85, 0x57, 0x01, 0x00, 0x00, //0x00000c91 jne LBB0_175 + 0x42, 0x80, 0x7c, 0x38, 0x02, 0x6c, //0x00000c97 cmpb $108, $2(%rax,%r15) + 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x00000c9d jne LBB0_215 + 0x42, 0x80, 0x7c, 0x38, 0x03, 0x73, //0x00000ca3 cmpb $115, $3(%rax,%r15) + 0x0f, 0x85, 0x63, 0x03, 0x00, 0x00, //0x00000ca9 jne LBB0_213 + 0x49, 0x8d, 0x77, 0x04, //0x00000caf leaq $4(%r15), %rsi + 0x49, 0x8d, 0x4f, 0x05, //0x00000cb3 leaq $5(%r15), %rcx + 0x42, 0x80, 0x7c, 0x38, 0x04, 0x65, //0x00000cb7 cmpb $101, $4(%rax,%r15) + 0x48, 0x0f, 0x44, 0xf1, //0x00000cbd cmoveq %rcx, %rsi + 0xe9, 0x53, 0x03, 0x00, 0x00, //0x00000cc1 jmp LBB0_217 + //0x00000cc6 LBB0_153 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000cc6 movq $-2, %rdx + 0x80, 0xf9, 0x6e, //0x00000ccd cmpb $110, %cl + 0x0f, 0x85, 0x40, 0x03, 0x00, 0x00, //0x00000cd0 jne LBB0_216 + 0x42, 0x80, 0x7c, 0x38, 0x01, 0x75, //0x00000cd6 cmpb $117, $1(%rax,%r15) + 0x0f, 0x85, 0x14, 0x01, 0x00, 0x00, //0x00000cdc jne LBB0_176 + 0x42, 0x80, 0x7c, 0x38, 0x02, 0x6c, //0x00000ce2 cmpb $108, $2(%rax,%r15) + 0x0f, 0x85, 0x10, 0x01, 0x00, 0x00, //0x00000ce8 jne LBB0_215 + 0x49, 0x8d, 0x77, 0x03, //0x00000cee leaq $3(%r15), %rsi + 0x49, 0x8d, 0x4f, 0x04, //0x00000cf2 leaq $4(%r15), %rcx + 0x42, 0x80, 0x7c, 0x38, 0x03, 0x6c, //0x00000cf6 cmpb $108, $3(%rax,%r15) + 0x48, 0x0f, 0x44, 0xf1, //0x00000cfc cmoveq %rcx, %rsi + 0xe9, 0x14, 0x03, 0x00, 0x00, //0x00000d00 jmp LBB0_217 + //0x00000d05 LBB0_157 + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00000d05 movq $-2, %rdx + 0x80, 0xf9, 0x74, //0x00000d0c cmpb $116, %cl + 0x0f, 0x85, 0x01, 0x03, 0x00, 0x00, //0x00000d0f jne LBB0_216 + 0x42, 0x80, 0x7c, 0x38, 0x01, 0x72, //0x00000d15 cmpb $114, $1(%rax,%r15) + 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, //0x00000d1b jne LBB0_176 + 0x42, 0x80, 0x7c, 0x38, 0x02, 0x75, //0x00000d21 cmpb $117, $2(%rax,%r15) + 0x0f, 0x85, 0xd1, 0x00, 0x00, 0x00, //0x00000d27 jne LBB0_215 + 0x49, 0x8d, 0x77, 0x03, //0x00000d2d leaq $3(%r15), %rsi + 0x49, 0x8d, 0x4f, 0x04, //0x00000d31 leaq $4(%r15), %rcx + 0x42, 0x80, 0x7c, 0x38, 0x03, 0x65, //0x00000d35 cmpb $101, $3(%rax,%r15) + 0x48, 0x0f, 0x44, 0xf1, //0x00000d3b cmoveq %rcx, %rsi + 0xe9, 0xd5, 0x02, 0x00, 0x00, //0x00000d3f jmp LBB0_217 + //0x00000d44 LBB0_161 + 0x48, 0x85, 0xc0, //0x00000d44 testq %rax, %rax + 0x49, 0x8d, 0x44, 0x24, 0xff, //0x00000d47 leaq $-1(%r12), %rax + 0x49, 0xf7, 0xd4, //0x00000d4c notq %r12 + 0x4d, 0x0f, 0x48, 0xe2, //0x00000d4f cmovsq %r10, %r12 + 0x49, 0x39, 0xc6, //0x00000d53 cmpq %rax, %r14 + 0x4d, 0x0f, 0x45, 0xe2, //0x00000d56 cmovneq %r10, %r12 + 0x4d, 0x89, 0xe3, //0x00000d5a movq %r12, %r11 + 0xe9, 0x82, 0xfc, 0xff, 0xff, //0x00000d5d jmp LBB0_128 + //0x00000d62 LBB0_162 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00000d62 movl $64, %ecx + //0x00000d67 LBB0_163 + 0x48, 0x8b, 0x55, 0xc0, //0x00000d67 movq $-64(%rbp), %rdx + 0x48, 0x39, 0xc1, //0x00000d6b cmpq %rax, %rcx + 0x0f, 0x82, 0xad, 0x23, 0x00, 0x00, //0x00000d6e jb LBB0_712 + 0x49, 0x29, 0xd5, //0x00000d74 subq %rdx, %r13 + 0xe9, 0xf2, 0x03, 0x00, 0x00, //0x00000d77 jmp LBB0_236 + //0x00000d7c LBB0_165 + 0x48, 0x89, 0xf7, //0x00000d7c movq %rsi, %rdi + //0x00000d7f LBB0_166 + 0x45, 0x31, 0xf6, //0x00000d7f xorl %r14d, %r14d + 0x85, 0xc9, //0x00000d82 testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc6, //0x00000d84 setg %r14b + 0x41, 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00000d88 movl $9, %r9d + 0x49, 0x89, 0xfb, //0x00000d8e movq %rdi, %r11 + //0x00000d91 LBB0_167 + 0x85, 0xc9, //0x00000d91 testl %ecx, %ecx + 0x48, 0x89, 0x45, 0xc0, //0x00000d93 movq %rax, $-64(%rbp) + 0x0f, 0x85, 0xa8, 0x00, 0x00, 0x00, //0x00000d97 jne LBB0_181 + //0x00000d9d LBB0_168 + 0x4d, 0x85, 0xd2, //0x00000d9d testq %r10, %r10 + 0x0f, 0x85, 0x9f, 0x00, 0x00, 0x00, //0x00000da0 jne LBB0_181 + 0x49, 0x39, 0xf3, //0x00000da6 cmpq %rsi, %r11 + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00000da9 jae LBB0_174 + 0x44, 0x89, 0x75, 0xb8, //0x00000daf movl %r14d, $-72(%rbp) + 0x45, 0x89, 0xde, //0x00000db3 movl %r11d, %r14d + 0x41, 0x29, 0xf6, //0x00000db6 subl %esi, %r14d + 0x31, 0xd2, //0x00000db9 xorl %edx, %edx + 0x31, 0xc9, //0x00000dbb xorl %ecx, %ecx + 0x48, 0x8b, 0x45, 0xc0, //0x00000dbd movq $-64(%rbp), %rax + //0x00000dc1 LBB0_171 + 0x42, 0x80, 0x3c, 0x18, 0x30, //0x00000dc1 cmpb $48, (%rax,%r11) + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x00000dc6 jne LBB0_180 + 0x49, 0xff, 0xc3, //0x00000dcc incq %r11 + 0xff, 0xc9, //0x00000dcf decl %ecx + 0x4c, 0x39, 0xde, //0x00000dd1 cmpq %r11, %rsi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000dd4 jne LBB0_171 + 0x45, 0x31, 0xd2, //0x00000dda xorl %r10d, %r10d + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00000ddd jmp LBB0_201 + //0x00000de2 LBB0_174 + 0x31, 0xc9, //0x00000de2 xorl %ecx, %ecx + 0x31, 0xd2, //0x00000de4 xorl %edx, %edx + 0x45, 0x31, 0xd2, //0x00000de6 xorl %r10d, %r10d + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x00000de9 jmp LBB0_181 + //0x00000dee LBB0_175 + 0x4c, 0x89, 0xde, //0x00000dee movq %r11, %rsi + 0xe9, 0x23, 0x02, 0x00, 0x00, //0x00000df1 jmp LBB0_217 + //0x00000df6 LBB0_176 + 0x49, 0xff, 0xc7, //0x00000df6 incq %r15 + 0xe9, 0x18, 0x02, 0x00, 0x00, //0x00000df9 jmp LBB0_216 + //0x00000dfe LBB0_215 + 0x49, 0x83, 0xc7, 0x02, //0x00000dfe addq $2, %r15 + 0xe9, 0x0f, 0x02, 0x00, 0x00, //0x00000e02 jmp LBB0_216 + //0x00000e07 LBB0_177 + 0x4c, 0x89, 0xc3, //0x00000e07 movq %r8, %rbx + 0x4c, 0x29, 0xc7, //0x00000e0a subq %r8, %rdi + 0x44, 0x0f, 0xbc, 0xda, //0x00000e0d bsfl %edx, %r11d + 0x49, 0x01, 0xfb, //0x00000e11 addq %rdi, %r11 + //0x00000e14 LBB0_178 + 0x49, 0xf7, 0xd3, //0x00000e14 notq %r11 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00000e17 movq $-48(%rbp), %r13 + 0xe9, 0xc4, 0xfb, 0xff, 0xff, //0x00000e1b jmp LBB0_128 + //0x00000e20 LBB0_179 + 0x49, 0xff, 0xcb, //0x00000e20 decq %r11 + 0x41, 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00000e23 movl $9, %r9d + 0x85, 0xc9, //0x00000e29 testl %ecx, %ecx + 0x48, 0x89, 0x45, 0xc0, //0x00000e2b movq %rax, $-64(%rbp) + 0x0f, 0x84, 0x68, 0xff, 0xff, 0xff, //0x00000e2f je LBB0_168 + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000e35 jmp LBB0_181 + //0x00000e3a LBB0_180 + 0x45, 0x31, 0xd2, //0x00000e3a xorl %r10d, %r10d + 0x48, 0x8b, 0x45, 0xc0, //0x00000e3d movq $-64(%rbp), %rax + 0x44, 0x8b, 0x75, 0xb8, //0x00000e41 movl $-72(%rbp), %r14d + //0x00000e45 LBB0_181 + 0x49, 0x39, 0xf3, //0x00000e45 cmpq %rsi, %r11 + 0x0f, 0x83, 0x3c, 0x00, 0x00, 0x00, //0x00000e48 jae LBB0_186 + 0x83, 0xfa, 0x12, //0x00000e4e cmpl $18, %edx + 0x0f, 0x8f, 0x33, 0x00, 0x00, 0x00, //0x00000e51 jg LBB0_186 + //0x00000e57 LBB0_183 + 0x42, 0x0f, 0xb6, 0x3c, 0x18, //0x00000e57 movzbl (%rax,%r11), %edi + 0x8d, 0x5f, 0xd0, //0x00000e5c leal $-48(%rdi), %ebx + 0x80, 0xfb, 0x09, //0x00000e5f cmpb $9, %bl + 0x0f, 0x87, 0x22, 0x00, 0x00, 0x00, //0x00000e62 ja LBB0_186 + 0x4b, 0x8d, 0x1c, 0x92, //0x00000e68 leaq (%r10,%r10,4), %rbx + 0x4c, 0x8d, 0x54, 0x5f, 0xd0, //0x00000e6c leaq $-48(%rdi,%rbx,2), %r10 + 0xff, 0xc9, //0x00000e71 decl %ecx + 0x49, 0xff, 0xc3, //0x00000e73 incq %r11 + 0x83, 0xfa, 0x11, //0x00000e76 cmpl $17, %edx + 0x0f, 0x8f, 0x0b, 0x00, 0x00, 0x00, //0x00000e79 jg LBB0_186 + 0xff, 0xc2, //0x00000e7f incl %edx + 0x49, 0x39, 0xf3, //0x00000e81 cmpq %rsi, %r11 + 0x0f, 0x82, 0xcd, 0xff, 0xff, 0xff, //0x00000e84 jb LBB0_183 + //0x00000e8a LBB0_186 + 0x49, 0x39, 0xf3, //0x00000e8a cmpq %rsi, %r11 + 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x00000e8d jae LBB0_199 + 0x42, 0x8a, 0x14, 0x18, //0x00000e93 movb (%rax,%r11), %dl + 0x8d, 0x7a, 0xd0, //0x00000e97 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x00000e9a cmpb $9, %dil + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000e9e ja LBB0_192 + 0x48, 0x8d, 0x7e, 0xff, //0x00000ea4 leaq $-1(%rsi), %rdi + //0x00000ea8 LBB0_189 + 0x4c, 0x39, 0xdf, //0x00000ea8 cmpq %r11, %rdi + 0x0f, 0x84, 0x97, 0x00, 0x00, 0x00, //0x00000eab je LBB0_200 + 0x42, 0x0f, 0xb6, 0x54, 0x18, 0x01, //0x00000eb1 movzbl $1(%rax,%r11), %edx + 0x49, 0xff, 0xc3, //0x00000eb7 incq %r11 + 0x8d, 0x5a, 0xd0, //0x00000eba leal $-48(%rdx), %ebx + 0x80, 0xfb, 0x09, //0x00000ebd cmpb $9, %bl + 0x0f, 0x86, 0xe2, 0xff, 0xff, 0xff, //0x00000ec0 jbe LBB0_189 + 0x41, 0xbe, 0x01, 0x00, 0x00, 0x00, //0x00000ec6 movl $1, %r14d + //0x00000ecc LBB0_192 + 0x80, 0xca, 0x20, //0x00000ecc orb $32, %dl + 0x80, 0xfa, 0x65, //0x00000ecf cmpb $101, %dl + 0x0f, 0x85, 0x64, 0x00, 0x00, 0x00, //0x00000ed2 jne LBB0_199 + 0x49, 0x8d, 0x7b, 0x01, //0x00000ed8 leaq $1(%r11), %rdi + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00000edc movq $8, (%r13) + 0x48, 0x39, 0xf7, //0x00000ee4 cmpq %rsi, %rdi + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x00000ee7 jae LBB0_198 + 0x8a, 0x14, 0x38, //0x00000eed movb (%rax,%rdi), %dl + 0x80, 0xfa, 0x2d, //0x00000ef0 cmpb $45, %dl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00000ef3 je LBB0_196 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000ef9 movl $1, %r9d + 0x80, 0xfa, 0x2b, //0x00000eff cmpb $43, %dl + 0x0f, 0x85, 0x4d, 0x01, 0x00, 0x00, //0x00000f02 jne LBB0_222 + //0x00000f08 LBB0_196 + 0x49, 0x83, 0xc3, 0x02, //0x00000f08 addq $2, %r11 + 0x49, 0x39, 0xf3, //0x00000f0c cmpq %rsi, %r11 + 0x0f, 0x83, 0x17, 0x00, 0x00, 0x00, //0x00000f0f jae LBB0_198 + 0x31, 0xff, //0x00000f15 xorl %edi, %edi + 0x80, 0xfa, 0x2b, //0x00000f17 cmpb $43, %dl + 0x40, 0x0f, 0x94, 0xc7, //0x00000f1a sete %dil + 0x44, 0x8d, 0x4c, 0x3f, 0xff, //0x00000f1e leal $-1(%rdi,%rdi), %r9d + 0x42, 0x8a, 0x14, 0x18, //0x00000f23 movb (%rax,%r11), %dl + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00000f27 jmp LBB0_223 + //0x00000f2c LBB0_198 + 0x49, 0xc7, 0x45, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00000f2c movq $-1, (%r13) + 0x49, 0x89, 0xf3, //0x00000f34 movq %rsi, %r11 + 0xe9, 0xb3, 0xf3, 0xff, 0xff, //0x00000f37 jmp LBB0_38 + //0x00000f3c LBB0_199 + 0x44, 0x89, 0x75, 0xb8, //0x00000f3c movl %r14d, $-72(%rbp) + 0x41, 0x89, 0xce, //0x00000f40 movl %ecx, %r14d + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00000f43 jmp LBB0_202 + //0x00000f48 LBB0_200 + 0xc7, 0x45, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f48 movl $1, $-72(%rbp) + 0x41, 0x89, 0xce, //0x00000f4f movl %ecx, %r14d + //0x00000f52 LBB0_201 + 0x49, 0x89, 0xf3, //0x00000f52 movq %rsi, %r11 + //0x00000f55 LBB0_202 + 0x41, 0x83, 0xf9, 0x09, //0x00000f55 cmpl $9, %r9d + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x00000f59 jne LBB0_207 + 0x45, 0x85, 0xf6, //0x00000f5f testl %r14d, %r14d + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000f62 jne LBB0_206 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000f68 movabsq $-9223372036854775808, %rax + 0x48, 0x63, 0x4d, 0xc8, //0x00000f72 movslq $-56(%rbp), %rcx + 0x4d, 0x85, 0xd2, //0x00000f76 testq %r10, %r10 + 0x0f, 0x89, 0x56, 0x00, 0x00, 0x00, //0x00000f79 jns LBB0_212 + 0x4c, 0x89, 0xd2, //0x00000f7f movq %r10, %rdx + 0x48, 0x21, 0xca, //0x00000f82 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00000f85 cmpq %rax, %rdx + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000f88 je LBB0_212 + //0x00000f8e LBB0_206 + 0x49, 0xc7, 0x45, 0x00, 0x08, 0x00, 0x00, 0x00, //0x00000f8e movq $8, (%r13) + //0x00000f96 LBB0_207 + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000f96 movabsq $-9223372036854775808, %r9 + 0x4c, 0x89, 0xd0, //0x00000fa0 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000fa3 shrq $52, %rax + 0x0f, 0x84, 0xe2, 0x02, 0x00, 0x00, //0x00000fa7 je LBB0_247 + //0x00000fad LBB0_208 + 0x41, 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00000fad leal $348(%r14), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x00000fb4 cmpl $695, %eax + 0x0f, 0x87, 0xca, 0x04, 0x00, 0x00, //0x00000fb9 ja LBB0_268 + 0x4d, 0x85, 0xd2, //0x00000fbf testq %r10, %r10 + 0x0f, 0x84, 0xb8, 0x03, 0x00, 0x00, //0x00000fc2 je LBB0_259 + //0x00000fc8 LBB0_210 + 0x49, 0x0f, 0xbd, 0xca, //0x00000fc8 bsrq %r10, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x00000fcc xorq $63, %rcx + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x00000fd0 jmp LBB0_260 + //0x00000fd5 LBB0_212 + 0x66, 0x49, 0x0f, 0x6e, 0xc2, //0x00000fd5 movq %r10, %xmm0 + 0x4c, 0x0f, 0xaf, 0xd1, //0x00000fda imulq %rcx, %r10 + 0x4d, 0x89, 0x55, 0x10, //0x00000fde movq %r10, $16(%r13) + 0x66, 0x0f, 0x62, 0x05, 0xa6, 0xf0, 0xff, 0xff, //0x00000fe2 punpckldq $-3930(%rip), %xmm0 /* LCPI0_9+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0xae, 0xf0, 0xff, 0xff, //0x00000fea subpd $-3922(%rip), %xmm0 /* LCPI0_10+0(%rip) */ + 0x66, 0x0f, 0x28, 0xc8, //0x00000ff2 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x00000ff6 unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x00000ffa addsd %xmm0, %xmm1 + 0x48, 0x21, 0xc8, //0x00000ffe andq %rcx, %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x00001001 movq %xmm1, %rcx + 0x48, 0x09, 0xc1, //0x00001006 orq %rax, %rcx + 0x49, 0x89, 0x4d, 0x08, //0x00001009 movq %rcx, $8(%r13) + 0xe9, 0xdd, 0xf2, 0xff, 0xff, //0x0000100d jmp LBB0_38 + //0x00001012 LBB0_213 + 0x49, 0x83, 0xc7, 0x03, //0x00001012 addq $3, %r15 + //0x00001016 LBB0_216 + 0x4c, 0x89, 0xfe, //0x00001016 movq %r15, %rsi + //0x00001019 LBB0_217 + 0x49, 0x89, 0x55, 0x00, //0x00001019 movq %rdx, (%r13) + 0x49, 0x89, 0xf3, //0x0000101d movq %rsi, %r11 + 0xe9, 0xca, 0xf2, 0xff, 0xff, //0x00001020 jmp LBB0_38 + //0x00001025 LBB0_218 + 0x49, 0x89, 0xca, //0x00001025 movq %rcx, %r10 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001028 movq $-1, %r11 + 0x4d, 0x85, 0xe4, //0x0000102f testq %r12, %r12 + 0x0f, 0x85, 0xa1, 0xf5, 0xff, 0xff, //0x00001032 jne LBB0_76 + //0x00001038 LBB0_219 + 0x49, 0xf7, 0xd3, //0x00001038 notq %r11 + 0x4c, 0x01, 0xdb, //0x0000103b addq %r11, %rbx + //0x0000103e LBB0_220 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000103e movq $-2, %r15 + //0x00001045 LBB0_221 + 0x48, 0x2b, 0x5d, 0xc0, //0x00001045 subq $-64(%rbp), %rbx + 0x49, 0x89, 0xdb, //0x00001049 movq %rbx, %r11 + 0x4d, 0x89, 0x7d, 0x00, //0x0000104c movq %r15, (%r13) + 0xe9, 0x9a, 0xf2, 0xff, 0xff, //0x00001050 jmp LBB0_38 + //0x00001055 LBB0_222 + 0x49, 0x89, 0xfb, //0x00001055 movq %rdi, %r11 + //0x00001058 LBB0_223 + 0x8d, 0x7a, 0xd0, //0x00001058 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x0000105b cmpb $9, %dil + 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x0000105f jbe LBB0_225 + //0x00001065 LBB0_98 + 0x49, 0xc7, 0x45, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x00001065 movq $-2, (%r13) + 0xe9, 0x7d, 0xf2, 0xff, 0xff, //0x0000106d jmp LBB0_38 + //0x00001072 LBB0_225 + 0x44, 0x89, 0x75, 0xb8, //0x00001072 movl %r14d, $-72(%rbp) + 0x45, 0x31, 0xf6, //0x00001076 xorl %r14d, %r14d + 0x49, 0x39, 0xf3, //0x00001079 cmpq %rsi, %r11 + 0x0f, 0x83, 0xef, 0x01, 0x00, 0x00, //0x0000107c jae LBB0_246 + 0x48, 0x8d, 0x7e, 0xff, //0x00001082 leaq $-1(%rsi), %rdi + 0x45, 0x31, 0xf6, //0x00001086 xorl %r14d, %r14d + //0x00001089 LBB0_227 + 0x44, 0x89, 0xf3, //0x00001089 movl %r14d, %ebx + 0x41, 0x81, 0xfe, 0x10, 0x27, 0x00, 0x00, //0x0000108c cmpl $10000, %r14d + 0x8d, 0x04, 0x9b, //0x00001093 leal (%rbx,%rbx,4), %eax + 0x0f, 0xb6, 0xd2, //0x00001096 movzbl %dl, %edx + 0x44, 0x8d, 0x74, 0x42, 0xd0, //0x00001099 leal $-48(%rdx,%rax,2), %r14d + 0x44, 0x0f, 0x4d, 0xf3, //0x0000109e cmovgel %ebx, %r14d + 0x4c, 0x39, 0xdf, //0x000010a2 cmpq %r11, %rdi + 0x0f, 0x84, 0xc3, 0x01, 0x00, 0x00, //0x000010a5 je LBB0_245 + 0x48, 0x8b, 0x45, 0xc0, //0x000010ab movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x54, 0x18, 0x01, //0x000010af movzbl $1(%rax,%r11), %edx + 0x49, 0xff, 0xc3, //0x000010b5 incq %r11 + 0x8d, 0x42, 0xd0, //0x000010b8 leal $-48(%rdx), %eax + 0x3c, 0x0a, //0x000010bb cmpb $10, %al + 0x0f, 0x82, 0xc6, 0xff, 0xff, 0xff, //0x000010bd jb LBB0_227 + 0xe9, 0xa9, 0x01, 0x00, 0x00, //0x000010c3 jmp LBB0_246 + //0x000010c8 LBB0_229 + 0x49, 0xf7, 0xd3, //0x000010c8 notq %r11 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000010cb movq $-48(%rbp), %r13 + 0x4c, 0x89, 0xc3, //0x000010cf movq %r8, %rbx + 0xe9, 0x0d, 0xf9, 0xff, 0xff, //0x000010d2 jmp LBB0_128 + //0x000010d7 LBB0_453 + 0x49, 0xf7, 0xdb, //0x000010d7 negq %r11 + 0xe9, 0x05, 0xf9, 0xff, 0xff, //0x000010da jmp LBB0_128 + //0x000010df LBB0_230 + 0x4c, 0x8b, 0x6d, 0xa8, //0x000010df movq $-88(%rbp), %r13 + 0x4d, 0x89, 0xf4, //0x000010e3 movq %r14, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x000010e6 cmpq $32, %r12 + 0x0f, 0x82, 0xb1, 0x20, 0x00, 0x00, //0x000010ea jb LBB0_717 + //0x000010f0 LBB0_231 + 0xf3, 0x41, 0x0f, 0x6f, 0x45, 0x00, //0x000010f0 movdqu (%r13), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x4d, 0x10, //0x000010f6 movdqu $16(%r13), %xmm1 + 0xf3, 0x0f, 0x6f, 0x15, 0xfc, 0xee, 0xff, 0xff, //0x000010fc movdqu $-4356(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x1d, 0x04, 0xef, 0xff, 0xff, //0x00001104 movdqu $-4348(%rip), %xmm3 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xe0, //0x0000110c movdqa %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x00001110 pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x00001114 pmovmskb %xmm4, %edx + 0x66, 0x0f, 0x74, 0xd1, //0x00001118 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x0000111c pmovmskb %xmm2, %edi + 0x66, 0x0f, 0x74, 0xc3, //0x00001120 pcmpeqb %xmm3, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x00001124 pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x74, 0xcb, //0x00001128 pcmpeqb %xmm3, %xmm1 + 0x66, 0x0f, 0xd7, 0xc9, //0x0000112c pmovmskb %xmm1, %ecx + 0x48, 0xc1, 0xe7, 0x10, //0x00001130 shlq $16, %rdi + 0x48, 0xc1, 0xe1, 0x10, //0x00001134 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00001138 orq %rcx, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000113b cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000113f jne LBB0_233 + 0x48, 0x85, 0xc0, //0x00001145 testq %rax, %rax + 0x0f, 0x85, 0xf2, 0x1f, 0x00, 0x00, //0x00001148 jne LBB0_714 + //0x0000114e LBB0_233 + 0x48, 0x09, 0xd7, //0x0000114e orq %rdx, %rdi + 0x48, 0x89, 0xc1, //0x00001151 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00001154 orq %r15, %rcx + 0x0f, 0x85, 0x00, 0x20, 0x00, 0x00, //0x00001157 jne LBB0_715 + //0x0000115d LBB0_234 + 0x48, 0x85, 0xff, //0x0000115d testq %rdi, %rdi + 0x0f, 0x84, 0x33, 0x20, 0x00, 0x00, //0x00001160 je LBB0_716 + //0x00001166 LBB0_235 + 0x48, 0x0f, 0xbc, 0xc7, //0x00001166 bsfq %rdi, %rax + 0x4c, 0x2b, 0x6d, 0xc0, //0x0000116a subq $-64(%rbp), %r13 + //0x0000116e LBB0_236 + 0x4d, 0x8d, 0x5c, 0x05, 0x01, //0x0000116e leaq $1(%r13,%rax), %r11 + //0x00001173 LBB0_237 + 0x4d, 0x85, 0xdb, //0x00001173 testq %r11, %r11 + 0x48, 0x8b, 0x4d, 0xd0, //0x00001176 movq $-48(%rbp), %rcx + 0x0f, 0x88, 0x34, 0x21, 0x00, 0x00, //0x0000117a js LBB0_732 + 0x48, 0x8b, 0x45, 0xb8, //0x00001180 movq $-72(%rbp), %rax + 0x48, 0x89, 0x41, 0x10, //0x00001184 movq %rax, $16(%rcx) + 0x48, 0xc7, 0x01, 0x07, 0x00, 0x00, 0x00, //0x00001188 movq $7, (%rcx) + 0x4d, 0x39, 0xd8, //0x0000118f cmpq %r11, %r8 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00001192 movq $-1, %rax + 0x49, 0x0f, 0x4c, 0xc0, //0x00001199 cmovlq %r8, %rax + 0x48, 0x89, 0x41, 0x18, //0x0000119d movq %rax, $24(%rcx) + 0xe9, 0x49, 0xf1, 0xff, 0xff, //0x000011a1 jmp LBB0_38 + //0x000011a6 LBB0_239 + 0x4d, 0x89, 0xcd, //0x000011a6 movq %r9, %r13 + 0x4d, 0x89, 0xf4, //0x000011a9 movq %r14, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x000011ac cmpq $32, %r12 + 0x0f, 0x82, 0xc3, 0x1e, 0x00, 0x00, //0x000011b0 jb LBB0_701 + //0x000011b6 LBB0_240 + 0xf3, 0x41, 0x0f, 0x6f, 0x45, 0x00, //0x000011b6 movdqu (%r13), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x4d, 0x10, //0x000011bc movdqu $16(%r13), %xmm1 + 0xf3, 0x0f, 0x6f, 0x15, 0x36, 0xee, 0xff, 0xff, //0x000011c2 movdqu $-4554(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x000011ca movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x000011ce pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xdb, //0x000011d2 pmovmskb %xmm3, %ebx + 0x66, 0x0f, 0x74, 0xd1, //0x000011d6 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x000011da pmovmskb %xmm2, %edi + 0xf3, 0x0f, 0x6f, 0x15, 0x2a, 0xee, 0xff, 0xff, //0x000011de movdqu $-4566(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x000011e6 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x000011ea pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x000011ee pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xd1, //0x000011f2 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000011f6 pmovmskb %xmm2, %edx + 0xf3, 0x0f, 0x6f, 0x15, 0x1e, 0xee, 0xff, 0xff, //0x000011fa movdqu $-4578(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xda, //0x00001202 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xd8, //0x00001206 pcmpgtb %xmm0, %xmm3 + 0x66, 0x0f, 0x76, 0xe4, //0x0000120a pcmpeqd %xmm4, %xmm4 + 0x66, 0x0f, 0x64, 0xc4, //0x0000120e pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0xdb, 0xc3, //0x00001212 pand %xmm3, %xmm0 + 0x66, 0x0f, 0x64, 0xd1, //0x00001216 pcmpgtb %xmm1, %xmm2 + 0x66, 0x0f, 0x64, 0xcc, //0x0000121a pcmpgtb %xmm4, %xmm1 + 0x66, 0x0f, 0xdb, 0xca, //0x0000121e pand %xmm2, %xmm1 + 0x66, 0x0f, 0xd7, 0xc1, //0x00001222 pmovmskb %xmm1, %eax + 0x48, 0xc1, 0xe7, 0x10, //0x00001226 shlq $16, %rdi + 0x48, 0xc1, 0xe2, 0x10, //0x0000122a shlq $16, %rdx + 0x48, 0x09, 0xd1, //0x0000122e orq %rdx, %rcx + 0x49, 0x83, 0xf8, 0xff, //0x00001231 cmpq $-1, %r8 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00001235 jne LBB0_242 + 0x48, 0x85, 0xc9, //0x0000123b testq %rcx, %rcx + 0x0f, 0x85, 0xe5, 0x1f, 0x00, 0x00, //0x0000123e jne LBB0_726 + //0x00001244 LBB0_242 + 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00001244 pmovmskb %xmm0, %r9d + 0x48, 0x09, 0xdf, //0x00001249 orq %rbx, %rdi + 0x48, 0x89, 0xca, //0x0000124c movq %rcx, %rdx + 0x4c, 0x09, 0xfa, //0x0000124f orq %r15, %rdx + 0x0f, 0x85, 0xaa, 0x1d, 0x00, 0x00, //0x00001252 jne LBB0_694 + 0x48, 0xc1, 0xe0, 0x10, //0x00001258 shlq $16, %rax + 0x48, 0x85, 0xff, //0x0000125c testq %rdi, %rdi + 0x0f, 0x84, 0xe0, 0x1d, 0x00, 0x00, //0x0000125f je LBB0_695 + //0x00001265 LBB0_244 + 0x48, 0x0f, 0xbc, 0xcf, //0x00001265 bsfq %rdi, %rcx + 0xe9, 0xdc, 0x1d, 0x00, 0x00, //0x00001269 jmp LBB0_696 + //0x0000126e LBB0_245 + 0x49, 0x89, 0xf3, //0x0000126e movq %rsi, %r11 + //0x00001271 LBB0_246 + 0x45, 0x0f, 0xaf, 0xf1, //0x00001271 imull %r9d, %r14d + 0x41, 0x01, 0xce, //0x00001275 addl %ecx, %r14d + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001278 movabsq $-9223372036854775808, %r9 + 0x4c, 0x89, 0xd0, //0x00001282 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00001285 shrq $52, %rax + 0x0f, 0x85, 0x1e, 0xfd, 0xff, 0xff, //0x00001289 jne LBB0_208 + //0x0000128f LBB0_247 + 0x66, 0x49, 0x0f, 0x6e, 0xc2, //0x0000128f movq %r10, %xmm0 + 0x66, 0x0f, 0x62, 0x05, 0xf4, 0xed, 0xff, 0xff, //0x00001294 punpckldq $-4620(%rip), %xmm0 /* LCPI0_9+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0xfc, 0xed, 0xff, 0xff, //0x0000129c subpd $-4612(%rip), %xmm0 /* LCPI0_10+0(%rip) */ + 0x66, 0x0f, 0x28, 0xc8, //0x000012a4 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x000012a8 unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x000012ac addsd %xmm0, %xmm1 + 0x66, 0x48, 0x0f, 0x7e, 0xc8, //0x000012b0 movq %xmm1, %rax + 0x8b, 0x4d, 0xc8, //0x000012b5 movl $-56(%rbp), %ecx + 0x89, 0xce, //0x000012b8 movl %ecx, %esi + 0xc1, 0xee, 0x1f, //0x000012ba shrl $31, %esi + 0x48, 0xc1, 0xe6, 0x3f, //0x000012bd shlq $63, %rsi + 0x48, 0x09, 0xc6, //0x000012c1 orq %rax, %rsi + 0x4d, 0x85, 0xd2, //0x000012c4 testq %r10, %r10 + 0x0f, 0x84, 0x8f, 0x05, 0x00, 0x00, //0x000012c7 je LBB0_328 + 0x45, 0x85, 0xf6, //0x000012cd testl %r14d, %r14d + 0x0f, 0x84, 0x86, 0x05, 0x00, 0x00, //0x000012d0 je LBB0_328 + 0x66, 0x48, 0x0f, 0x6e, 0xc6, //0x000012d6 movq %rsi, %xmm0 + 0x41, 0x8d, 0x46, 0xff, //0x000012db leal $-1(%r14), %eax + 0x83, 0xf8, 0x24, //0x000012df cmpl $36, %eax + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x000012e2 ja LBB0_252 + 0x41, 0x83, 0xfe, 0x17, //0x000012e8 cmpl $23, %r14d + 0x0f, 0x8c, 0x43, 0x00, 0x00, 0x00, //0x000012ec jl LBB0_254 + 0x49, 0x63, 0xc6, //0x000012f2 movslq %r14d, %rax + 0x48, 0x8d, 0x0d, 0xc4, 0x22, 0x00, 0x00, //0x000012f5 leaq $8900(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x000012fc mulsd $-176(%rcx,%rax,8), %xmm0 + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00001305 movl $22, %eax + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x0000130a jmp LBB0_255 + //0x0000130f LBB0_252 + 0x41, 0x83, 0xfe, 0xea, //0x0000130f cmpl $-22, %r14d + 0x0f, 0x82, 0x94, 0xfc, 0xff, 0xff, //0x00001313 jb LBB0_208 + 0x41, 0xf7, 0xde, //0x00001319 negl %r14d + 0x49, 0x63, 0xc6, //0x0000131c movslq %r14d, %rax + 0x48, 0x8d, 0x0d, 0x9a, 0x22, 0x00, 0x00, //0x0000131f leaq $8858(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x5e, 0x04, 0xc1, //0x00001326 divsd (%rcx,%rax,8), %xmm0 + 0x66, 0x48, 0x0f, 0x7e, 0xc6, //0x0000132b movq %xmm0, %rsi + 0xe9, 0x27, 0x05, 0x00, 0x00, //0x00001330 jmp LBB0_328 + //0x00001335 LBB0_254 + 0x44, 0x89, 0xf0, //0x00001335 movl %r14d, %eax + //0x00001338 LBB0_255 + 0x66, 0x0f, 0x2e, 0x05, 0x70, 0xed, 0xff, 0xff, //0x00001338 ucomisd $-4752(%rip), %xmm0 /* LCPI0_11+0(%rip) */ + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x00001340 ja LBB0_258 + 0xf2, 0x0f, 0x10, 0x0d, 0x6a, 0xed, 0xff, 0xff, //0x00001346 movsd $-4758(%rip), %xmm1 /* LCPI0_12+0(%rip) */ + 0x66, 0x0f, 0x2e, 0xc8, //0x0000134e ucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x18, 0x00, 0x00, 0x00, //0x00001352 ja LBB0_258 + 0x89, 0xc0, //0x00001358 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x5f, 0x22, 0x00, 0x00, //0x0000135a leaq $8799(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x00001361 mulsd (%rcx,%rax,8), %xmm0 + 0x66, 0x48, 0x0f, 0x7e, 0xc6, //0x00001366 movq %xmm0, %rsi + 0xe9, 0xec, 0x04, 0x00, 0x00, //0x0000136b jmp LBB0_328 + //0x00001370 LBB0_258 + 0x41, 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00001370 leal $348(%r14), %eax + 0x4d, 0x85, 0xd2, //0x00001377 testq %r10, %r10 + 0x0f, 0x85, 0x48, 0xfc, 0xff, 0xff, //0x0000137a jne LBB0_210 + //0x00001380 LBB0_259 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001380 movl $64, %ecx + //0x00001385 LBB0_260 + 0x4c, 0x89, 0xd6, //0x00001385 movq %r10, %rsi + 0x48, 0x89, 0x4d, 0xa0, //0x00001388 movq %rcx, $-96(%rbp) + 0x48, 0xd3, 0xe6, //0x0000138c shlq %cl, %rsi + 0x89, 0xc0, //0x0000138f movl %eax, %eax + 0x48, 0xc1, 0xe0, 0x04, //0x00001391 shlq $4, %rax + 0x48, 0x8d, 0x0d, 0xe4, 0x22, 0x00, 0x00, //0x00001395 leaq $8932(%rip), %rcx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0x45, 0xb0, //0x0000139c movq %rax, $-80(%rbp) + 0x48, 0x8b, 0x44, 0x08, 0x08, //0x000013a0 movq $8(%rax,%rcx), %rax + 0x48, 0x89, 0x45, 0x98, //0x000013a5 movq %rax, $-104(%rbp) + 0x48, 0xf7, 0xe6, //0x000013a9 mulq %rsi + 0x48, 0x89, 0xc7, //0x000013ac movq %rax, %rdi + 0x48, 0x89, 0xd3, //0x000013af movq %rdx, %rbx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000013b2 andl $511, %edx + 0x48, 0x89, 0xf1, //0x000013b8 movq %rsi, %rcx + 0x48, 0xf7, 0xd1, //0x000013bb notq %rcx + 0x48, 0x39, 0xc8, //0x000013be cmpq %rcx, %rax + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000013c1 jbe LBB0_265 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000013c7 cmpl $511, %edx + 0x0f, 0x85, 0x40, 0x00, 0x00, 0x00, //0x000013cd jne LBB0_265 + 0x48, 0x89, 0xf0, //0x000013d3 movq %rsi, %rax + 0x48, 0x8b, 0x55, 0xb0, //0x000013d6 movq $-80(%rbp), %rdx + 0x48, 0x8d, 0x35, 0x9f, 0x22, 0x00, 0x00, //0x000013da leaq $8863(%rip), %rsi /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x32, //0x000013e1 mulq (%rdx,%rsi) + 0x48, 0x01, 0xd7, //0x000013e5 addq %rdx, %rdi + 0x48, 0x83, 0xd3, 0x00, //0x000013e8 adcq $0, %rbx + 0x89, 0xda, //0x000013ec movl %ebx, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000013ee andl $511, %edx + 0x48, 0x39, 0xc8, //0x000013f4 cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000013f7 jbe LBB0_265 + 0x48, 0x83, 0xff, 0xff, //0x000013fd cmpq $-1, %rdi + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00001401 jne LBB0_265 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00001407 cmpl $511, %edx + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x0000140d je LBB0_268 + //0x00001413 LBB0_265 + 0x48, 0x89, 0xd8, //0x00001413 movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00001416 shrq $63, %rax + 0x8d, 0x48, 0x09, //0x0000141a leal $9(%rax), %ecx + 0x48, 0xd3, 0xeb, //0x0000141d shrq %cl, %rbx + 0x48, 0x09, 0xfa, //0x00001420 orq %rdi, %rdx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00001423 jne LBB0_267 + 0x89, 0xd9, //0x00001429 movl %ebx, %ecx + 0x83, 0xe1, 0x03, //0x0000142b andl $3, %ecx + 0x83, 0xf9, 0x01, //0x0000142e cmpl $1, %ecx + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x00001431 je LBB0_268 + //0x00001437 LBB0_267 + 0x41, 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x00001437 imull $217706, %r14d, %ecx + 0xc1, 0xf9, 0x10, //0x0000143e sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x00001441 addl $1087, %ecx + 0x4c, 0x63, 0xf1, //0x00001447 movslq %ecx, %r14 + 0x4c, 0x89, 0xf2, //0x0000144a movq %r14, %rdx + 0x48, 0x2b, 0x55, 0xa0, //0x0000144d subq $-96(%rbp), %rdx + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x00001451 movabsq $126100789566373888, %rdi + 0x48, 0x83, 0xf0, 0x01, //0x0000145b xorq $1, %rax + 0x48, 0x29, 0xc2, //0x0000145f subq %rax, %rdx + 0x89, 0xd8, //0x00001462 movl %ebx, %eax + 0x83, 0xe0, 0x01, //0x00001464 andl $1, %eax + 0x48, 0x01, 0xd8, //0x00001467 addq %rbx, %rax + 0x48, 0x89, 0xc1, //0x0000146a movq %rax, %rcx + 0x48, 0x21, 0xf9, //0x0000146d andq %rdi, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00001470 cmpq $1, %rcx + 0x48, 0x83, 0xda, 0xff, //0x00001474 sbbq $-1, %rdx + 0x48, 0x8d, 0x72, 0xff, //0x00001478 leaq $-1(%rdx), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x0000147c cmpq $2045, %rsi + 0x0f, 0x86, 0x63, 0x00, 0x00, 0x00, //0x00001483 jbe LBB0_273 + //0x00001489 LBB0_268 + 0x4c, 0x89, 0xd8, //0x00001489 movq %r11, %rax + 0x4c, 0x29, 0xf8, //0x0000148c subq %r15, %rax + 0x48, 0x8b, 0x4d, 0xa8, //0x0000148f movq $-88(%rbp), %rcx + 0x48, 0x85, 0xc9, //0x00001493 testq %rcx, %rcx + 0x4c, 0x89, 0xc6, //0x00001496 movq %r8, %rsi + 0x0f, 0x84, 0xd0, 0x01, 0x00, 0x00, //0x00001499 je LBB0_290 + 0x41, 0xc6, 0x04, 0x24, 0x00, //0x0000149f movb $0, (%r12) + 0x48, 0x83, 0xf9, 0x01, //0x000014a4 cmpq $1, %rcx + 0x0f, 0x84, 0xc1, 0x01, 0x00, 0x00, //0x000014a8 je LBB0_290 + 0x48, 0x8d, 0x51, 0xff, //0x000014ae leaq $-1(%rcx), %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000014b2 movl $1, %ecx + 0x48, 0x83, 0xfa, 0x20, //0x000014b7 cmpq $32, %rdx + 0x0f, 0x82, 0x99, 0x01, 0x00, 0x00, //0x000014bb jb LBB0_288 + 0x48, 0x89, 0xd1, //0x000014c1 movq %rdx, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x000014c4 andq $-32, %rcx + 0x48, 0x8d, 0x71, 0xe0, //0x000014c8 leaq $-32(%rcx), %rsi + 0x48, 0x89, 0xf7, //0x000014cc movq %rsi, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x000014cf shrq $5, %rdi + 0x48, 0xff, 0xc7, //0x000014d3 incq %rdi + 0x89, 0xfb, //0x000014d6 movl %edi, %ebx + 0x83, 0xe3, 0x03, //0x000014d8 andl $3, %ebx + 0x48, 0x83, 0xfe, 0x60, //0x000014db cmpq $96, %rsi + 0x0f, 0x83, 0xe2, 0x00, 0x00, 0x00, //0x000014df jae LBB0_281 + 0x31, 0xff, //0x000014e5 xorl %edi, %edi + 0xe9, 0x2d, 0x01, 0x00, 0x00, //0x000014e7 jmp LBB0_283 + //0x000014ec LBB0_273 + 0x48, 0x83, 0xf9, 0x01, //0x000014ec cmpq $1, %rcx + 0xb1, 0x02, //0x000014f0 movb $2, %cl + 0x80, 0xd9, 0x00, //0x000014f2 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x000014f5 shrq %cl, %rax + 0x48, 0xc1, 0xe2, 0x34, //0x000014f8 shlq $52, %rdx + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000014fc movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x00001506 andq %rcx, %rax + 0x48, 0x09, 0xd0, //0x00001509 orq %rdx, %rax + 0x48, 0x89, 0xc6, //0x0000150c movq %rax, %rsi + 0x4c, 0x09, 0xce, //0x0000150f orq %r9, %rsi + 0x83, 0x7d, 0xc8, 0xff, //0x00001512 cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xf0, //0x00001516 cmovneq %rax, %rsi + 0x83, 0x7d, 0xb8, 0x00, //0x0000151a cmpl $0, $-72(%rbp) + 0x0f, 0x84, 0x38, 0x03, 0x00, 0x00, //0x0000151e je LBB0_328 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00001524 movl $64, %ecx + 0x49, 0xff, 0xc2, //0x00001529 incq %r10 + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x0000152c je LBB0_276 + 0x49, 0x0f, 0xbd, 0xca, //0x00001532 bsrq %r10, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x00001536 xorq $63, %rcx + //0x0000153a LBB0_276 + 0x48, 0x89, 0x4d, 0xa0, //0x0000153a movq %rcx, $-96(%rbp) + 0x49, 0xd3, 0xe2, //0x0000153e shlq %cl, %r10 + 0x48, 0x8b, 0x45, 0x98, //0x00001541 movq $-104(%rbp), %rax + 0x49, 0xf7, 0xe2, //0x00001545 mulq %r10 + 0x48, 0x89, 0xd3, //0x00001548 movq %rdx, %rbx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000154b andl $511, %edx + 0x4c, 0x89, 0xd1, //0x00001551 movq %r10, %rcx + 0x48, 0xf7, 0xd1, //0x00001554 notq %rcx + 0x48, 0x89, 0x45, 0xb8, //0x00001557 movq %rax, $-72(%rbp) + 0x48, 0x39, 0xc8, //0x0000155b cmpq %rcx, %rax + 0x0f, 0x86, 0xb9, 0x0a, 0x00, 0x00, //0x0000155e jbe LBB0_629 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00001564 cmpl $511, %edx + 0x0f, 0x85, 0xad, 0x0a, 0x00, 0x00, //0x0000156a jne LBB0_629 + 0x4c, 0x89, 0xd0, //0x00001570 movq %r10, %rax + 0x48, 0x8b, 0x55, 0xb0, //0x00001573 movq $-80(%rbp), %rdx + 0x48, 0x8d, 0x3d, 0x02, 0x21, 0x00, 0x00, //0x00001577 leaq $8450(%rip), %rdi /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x3a, //0x0000157e mulq (%rdx,%rdi) + 0x48, 0x8b, 0x7d, 0xb8, //0x00001582 movq $-72(%rbp), %rdi + 0x48, 0x01, 0xd7, //0x00001586 addq %rdx, %rdi + 0x48, 0x83, 0xd3, 0x00, //0x00001589 adcq $0, %rbx + 0x89, 0xda, //0x0000158d movl %ebx, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000158f andl $511, %edx + 0x48, 0x39, 0xc8, //0x00001595 cmpq %rcx, %rax + 0x48, 0x89, 0x7d, 0xb8, //0x00001598 movq %rdi, $-72(%rbp) + 0x0f, 0x86, 0x71, 0x0a, 0x00, 0x00, //0x0000159c jbe LBB0_628 + 0x48, 0x83, 0xff, 0xff, //0x000015a2 cmpq $-1, %rdi + 0x0f, 0x85, 0x67, 0x0a, 0x00, 0x00, //0x000015a6 jne LBB0_628 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000015ac cmpl $511, %edx + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x000015b2 movabsq $126100789566373888, %rdi + 0x0f, 0x84, 0xc7, 0xfe, 0xff, 0xff, //0x000015bc je LBB0_268 + 0xe9, 0x56, 0x0a, 0x00, 0x00, //0x000015c2 jmp LBB0_629 + //0x000015c7 LBB0_281 + 0x48, 0x89, 0xde, //0x000015c7 movq %rbx, %rsi + 0x48, 0x29, 0xfe, //0x000015ca subq %rdi, %rsi + 0x31, 0xff, //0x000015cd xorl %edi, %edi + 0x66, 0x0f, 0x57, 0xc0, //0x000015cf xorpd %xmm0, %xmm0 + //0x000015d3 LBB0_282 + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x01, //0x000015d3 movupd %xmm0, $1(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x11, //0x000015da movupd %xmm0, $17(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x21, //0x000015e1 movupd %xmm0, $33(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x31, //0x000015e8 movupd %xmm0, $49(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x41, //0x000015ef movupd %xmm0, $65(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x51, //0x000015f6 movupd %xmm0, $81(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x61, //0x000015fd movupd %xmm0, $97(%r12,%rdi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x3c, 0x71, //0x00001604 movupd %xmm0, $113(%r12,%rdi) + 0x48, 0x83, 0xef, 0x80, //0x0000160b subq $-128, %rdi + 0x48, 0x83, 0xc6, 0x04, //0x0000160f addq $4, %rsi + 0x0f, 0x85, 0xba, 0xff, 0xff, 0xff, //0x00001613 jne LBB0_282 + //0x00001619 LBB0_283 + 0x48, 0x85, 0xdb, //0x00001619 testq %rbx, %rbx + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x0000161c je LBB0_286 + 0x48, 0xf7, 0xdb, //0x00001622 negq %rbx + 0x66, 0x0f, 0x57, 0xc0, //0x00001625 xorpd %xmm0, %xmm0 + //0x00001629 LBB0_285 + 0x48, 0x89, 0xfe, //0x00001629 movq %rdi, %rsi + 0x48, 0x83, 0xce, 0x01, //0x0000162c orq $1, %rsi + 0x66, 0x41, 0x0f, 0x11, 0x04, 0x34, //0x00001630 movupd %xmm0, (%r12,%rsi) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x34, 0x10, //0x00001636 movupd %xmm0, $16(%r12,%rsi) + 0x48, 0x83, 0xc7, 0x20, //0x0000163d addq $32, %rdi + 0x48, 0xff, 0xc3, //0x00001641 incq %rbx + 0x0f, 0x85, 0xdf, 0xff, 0xff, 0xff, //0x00001644 jne LBB0_285 + //0x0000164a LBB0_286 + 0x48, 0x39, 0xca, //0x0000164a cmpq %rcx, %rdx + 0x4c, 0x89, 0xc6, //0x0000164d movq %r8, %rsi + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00001650 je LBB0_290 + 0x48, 0x83, 0xc9, 0x01, //0x00001656 orq $1, %rcx + //0x0000165a LBB0_288 + 0x48, 0x8b, 0x55, 0xa8, //0x0000165a movq $-88(%rbp), %rdx + //0x0000165e LBB0_289 + 0x41, 0xc6, 0x04, 0x0c, 0x00, //0x0000165e movb $0, (%r12,%rcx) + 0x48, 0xff, 0xc1, //0x00001663 incq %rcx + 0x48, 0x39, 0xca, //0x00001666 cmpq %rcx, %rdx + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00001669 jne LBB0_289 + //0x0000166f LBB0_290 + 0x8a, 0x16, //0x0000166f movb (%rsi), %dl + 0x31, 0xc9, //0x00001671 xorl %ecx, %ecx + 0x80, 0xfa, 0x2d, //0x00001673 cmpb $45, %dl + 0x0f, 0x94, 0xc1, //0x00001676 sete %cl + 0x45, 0x31, 0xc9, //0x00001679 xorl %r9d, %r9d + 0x48, 0x39, 0xc8, //0x0000167c cmpq %rcx, %rax + 0x0f, 0x8e, 0x9a, 0x00, 0x00, 0x00, //0x0000167f jle LBB0_303 + 0x88, 0x55, 0xa0, //0x00001685 movb %dl, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xb0, //0x00001688 movq %r11, $-80(%rbp) + 0xb2, 0x01, //0x0000168c movb $1, %dl + 0x45, 0x31, 0xdb, //0x0000168e xorl %r11d, %r11d + 0x45, 0x31, 0xf6, //0x00001691 xorl %r14d, %r14d + 0x31, 0xdb, //0x00001694 xorl %ebx, %ebx + 0x45, 0x31, 0xd2, //0x00001696 xorl %r10d, %r10d + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00001699 jmp LBB0_295 + //0x0000169e LBB0_292 + 0x40, 0x80, 0xff, 0x30, //0x0000169e cmpb $48, %dil + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000016a2 movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x000016a7 cmovnel %edx, %r14d + //0x000016ab LBB0_293 + 0x44, 0x89, 0xdb, //0x000016ab movl %r11d, %ebx + //0x000016ae LBB0_294 + 0x48, 0xff, 0xc1, //0x000016ae incq %rcx + 0x48, 0x39, 0xc1, //0x000016b1 cmpq %rax, %rcx + 0x0f, 0x9c, 0xc2, //0x000016b4 setl %dl + 0x48, 0x39, 0xc8, //0x000016b7 cmpq %rcx, %rax + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x000016ba je LBB0_304 + //0x000016c0 LBB0_295 + 0x41, 0x0f, 0xb6, 0x3c, 0x08, //0x000016c0 movzbl (%r8,%rcx), %edi + 0x8d, 0x77, 0xd0, //0x000016c5 leal $-48(%rdi), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000016c8 cmpb $9, %sil + 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x000016cc ja LBB0_299 + 0x85, 0xdb, //0x000016d2 testl %ebx, %ebx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000016d4 jne LBB0_301 + 0x40, 0x80, 0xff, 0x30, //0x000016da cmpb $48, %dil + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x000016de jne LBB0_301 + 0x41, 0xff, 0xc9, //0x000016e4 decl %r9d + 0x31, 0xdb, //0x000016e7 xorl %ebx, %ebx + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x000016e9 jmp LBB0_294 + //0x000016ee LBB0_299 + 0x40, 0x80, 0xff, 0x2e, //0x000016ee cmpb $46, %dil + 0x0f, 0x85, 0x44, 0x00, 0x00, 0x00, //0x000016f2 jne LBB0_305 + 0x41, 0x89, 0xd9, //0x000016f8 movl %ebx, %r9d + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000016fb movl $1, %r10d + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00001701 jmp LBB0_294 + //0x00001706 LBB0_301 + 0x49, 0x63, 0xd3, //0x00001706 movslq %r11d, %rdx + 0x48, 0x39, 0x55, 0xa8, //0x00001709 cmpq %rdx, $-88(%rbp) + 0x0f, 0x86, 0x8b, 0xff, 0xff, 0xff, //0x0000170d jbe LBB0_292 + 0x41, 0x88, 0x3c, 0x14, //0x00001713 movb %dil, (%r12,%rdx) + 0x41, 0xff, 0xc3, //0x00001717 incl %r11d + 0xe9, 0x8c, 0xff, 0xff, 0xff, //0x0000171a jmp LBB0_293 + //0x0000171f LBB0_303 + 0x31, 0xff, //0x0000171f xorl %edi, %edi + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001721 movabsq $4503599627370495, %rcx + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x0000172b jmp LBB0_327 + //0x00001730 LBB0_304 + 0x45, 0x85, 0xd2, //0x00001730 testl %r10d, %r10d + 0x45, 0x0f, 0x44, 0xcb, //0x00001733 cmovel %r11d, %r9d + 0xe9, 0xad, 0x00, 0x00, 0x00, //0x00001737 jmp LBB0_319 + //0x0000173c LBB0_305 + 0x45, 0x85, 0xd2, //0x0000173c testl %r10d, %r10d + 0x45, 0x0f, 0x44, 0xcb, //0x0000173f cmovel %r11d, %r9d + 0xf6, 0xc2, 0x01, //0x00001743 testb $1, %dl + 0x0f, 0x84, 0x9d, 0x00, 0x00, 0x00, //0x00001746 je LBB0_319 + 0x40, 0x80, 0xcf, 0x20, //0x0000174c orb $32, %dil + 0x40, 0x80, 0xff, 0x65, //0x00001750 cmpb $101, %dil + 0x0f, 0x85, 0x8f, 0x00, 0x00, 0x00, //0x00001754 jne LBB0_319 + 0x48, 0x8d, 0x71, 0x01, //0x0000175a leaq $1(%rcx), %rsi + 0x89, 0xf2, //0x0000175e movl %esi, %edx + 0x41, 0x8a, 0x14, 0x10, //0x00001760 movb (%r8,%rdx), %dl + 0x80, 0xfa, 0x2b, //0x00001764 cmpb $43, %dl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00001767 je LBB0_310 + 0x80, 0xfa, 0x2d, //0x0000176d cmpb $45, %dl + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00001770 jne LBB0_312 + 0x83, 0xc1, 0x02, //0x00001776 addl $2, %ecx + 0xba, 0xff, 0xff, 0xff, 0xff, //0x00001779 movl $-1, %edx + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x0000177e jmp LBB0_311 + //0x00001783 LBB0_310 + 0x83, 0xc1, 0x02, //0x00001783 addl $2, %ecx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001786 movl $1, %edx + //0x0000178b LBB0_311 + 0x89, 0xce, //0x0000178b movl %ecx, %esi + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x0000178d jmp LBB0_313 + //0x00001792 LBB0_312 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001792 movl $1, %edx + //0x00001797 LBB0_313 + 0x48, 0x63, 0xf6, //0x00001797 movslq %esi, %rsi + 0x31, 0xc9, //0x0000179a xorl %ecx, %ecx + 0x48, 0x39, 0xf0, //0x0000179c cmpq %rsi, %rax + 0x0f, 0x8e, 0x3b, 0x00, 0x00, 0x00, //0x0000179f jle LBB0_318 + 0x49, 0x01, 0xf7, //0x000017a5 addq %rsi, %r15 + 0x31, 0xc9, //0x000017a8 xorl %ecx, %ecx + //0x000017aa LBB0_315 + 0x81, 0xf9, 0x0f, 0x27, 0x00, 0x00, //0x000017aa cmpl $9999, %ecx + 0x0f, 0x8f, 0x2a, 0x00, 0x00, 0x00, //0x000017b0 jg LBB0_318 + 0x48, 0x8b, 0x45, 0xc0, //0x000017b6 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x38, //0x000017ba movzbl (%rax,%r15), %eax + 0x8d, 0x70, 0xd0, //0x000017bf leal $-48(%rax), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000017c2 cmpb $9, %sil + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000017c6 ja LBB0_318 + 0x8d, 0x0c, 0x89, //0x000017cc leal (%rcx,%rcx,4), %ecx + 0x8d, 0x4c, 0x48, 0xd0, //0x000017cf leal $-48(%rax,%rcx,2), %ecx + 0x49, 0xff, 0xc7, //0x000017d3 incq %r15 + 0x4c, 0x39, 0x7d, 0xb0, //0x000017d6 cmpq %r15, $-80(%rbp) + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x000017da jne LBB0_315 + //0x000017e0 LBB0_318 + 0x0f, 0xaf, 0xca, //0x000017e0 imull %edx, %ecx + 0x44, 0x01, 0xc9, //0x000017e3 addl %r9d, %ecx + 0x41, 0x89, 0xc9, //0x000017e6 movl %ecx, %r9d + //0x000017e9 LBB0_319 + 0x45, 0x85, 0xdb, //0x000017e9 testl %r11d, %r11d + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000017ec movabsq $4503599627370495, %rcx + 0x4c, 0x8b, 0x7d, 0xa8, //0x000017f6 movq $-88(%rbp), %r15 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000017fa je LBB0_322 + 0x31, 0xff, //0x00001800 xorl %edi, %edi + 0x41, 0x81, 0xf9, 0x36, 0x01, 0x00, 0x00, //0x00001802 cmpl $310, %r9d + 0x0f, 0x8e, 0x19, 0x00, 0x00, 0x00, //0x00001809 jle LBB0_323 + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000180f movabsq $9218868437227405312, %r9 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00001819 jmp LBB0_325 + //0x0000181e LBB0_322 + 0x45, 0x31, 0xc9, //0x0000181e xorl %r9d, %r9d + 0x31, 0xff, //0x00001821 xorl %edi, %edi + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001823 jmp LBB0_325 + //0x00001828 LBB0_323 + 0x41, 0x81, 0xf9, 0xb6, 0xfe, 0xff, 0xff, //0x00001828 cmpl $-330, %r9d + 0x0f, 0x8d, 0x51, 0x00, 0x00, 0x00, //0x0000182f jge LBB0_331 + 0x45, 0x31, 0xc9, //0x00001835 xorl %r9d, %r9d + //0x00001838 LBB0_325 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00001838 movq $-80(%rbp), %r11 + //0x0000183c LBB0_326 + 0x8a, 0x55, 0xa0, //0x0000183c movb $-96(%rbp), %dl + //0x0000183f LBB0_327 + 0x48, 0x21, 0xcf, //0x0000183f andq %rcx, %rdi + 0x4c, 0x09, 0xcf, //0x00001842 orq %r9, %rdi + 0x48, 0x89, 0xfe, //0x00001845 movq %rdi, %rsi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001848 movabsq $-9223372036854775808, %r9 + 0x4c, 0x09, 0xce, //0x00001852 orq %r9, %rsi + 0x80, 0xfa, 0x2d, //0x00001855 cmpb $45, %dl + 0x48, 0x0f, 0x45, 0xf7, //0x00001858 cmovneq %rdi, %rsi + //0x0000185c LBB0_328 + 0x49, 0xff, 0xc9, //0x0000185c decq %r9 + 0x49, 0x21, 0xf1, //0x0000185f andq %rsi, %r9 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001862 movabsq $9218868437227405312, %rax + 0x49, 0x39, 0xc1, //0x0000186c cmpq %rax, %r9 + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x0000186f jne LBB0_330 + 0x49, 0xc7, 0x45, 0x00, 0xf8, 0xff, 0xff, 0xff, //0x00001875 movq $-8, (%r13) + //0x0000187d LBB0_330 + 0x49, 0x89, 0x75, 0x08, //0x0000187d movq %rsi, $8(%r13) + 0xe9, 0x69, 0xea, 0xff, 0xff, //0x00001881 jmp LBB0_38 + //0x00001886 LBB0_331 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, //0x00001886 movabsq $1152921504606846975, %r10 + 0x45, 0x85, 0xc9, //0x00001890 testl %r9d, %r9d + 0x4c, 0x89, 0x6d, 0xd0, //0x00001893 movq %r13, $-48(%rbp) + 0x0f, 0x8e, 0x6e, 0x07, 0x00, 0x00, //0x00001897 jle LBB0_447 + 0x31, 0xff, //0x0000189d xorl %edi, %edi + 0x44, 0x89, 0xd8, //0x0000189f movl %r11d, %eax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000018a2 jmp LBB0_335 + //0x000018a7 LBB0_333 + 0x89, 0xc6, //0x000018a7 movl %eax, %esi + //0x000018a9 LBB0_334 + 0x48, 0x8b, 0x7d, 0xc0, //0x000018a9 movq $-64(%rbp), %rdi + 0x03, 0x7d, 0xb8, //0x000018ad addl $-72(%rbp), %edi + 0x89, 0xf0, //0x000018b0 movl %esi, %eax + 0x45, 0x85, 0xc9, //0x000018b2 testl %r9d, %r9d + 0x0f, 0x8e, 0x54, 0x08, 0x00, 0x00, //0x000018b5 jle LBB0_457 + //0x000018bb LBB0_335 + 0xb9, 0x1b, 0x00, 0x00, 0x00, //0x000018bb movl $27, %ecx + 0x41, 0x83, 0xf9, 0x08, //0x000018c0 cmpl $8, %r9d + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x000018c4 jg LBB0_337 + 0x44, 0x89, 0xc9, //0x000018ca movl %r9d, %ecx + 0x48, 0x8d, 0x15, 0x3c, 0x49, 0x00, 0x00, //0x000018cd leaq $18748(%rip), %rdx /* _POW_TAB+0(%rip) */ + 0x8b, 0x0c, 0x8a, //0x000018d4 movl (%rdx,%rcx,4), %ecx + //0x000018d7 LBB0_337 + 0x48, 0x89, 0x7d, 0xc0, //0x000018d7 movq %rdi, $-64(%rbp) + 0x85, 0xc0, //0x000018db testl %eax, %eax + 0x89, 0x4d, 0xb8, //0x000018dd movl %ecx, $-72(%rbp) + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x000018e0 je LBB0_333 + 0x41, 0x89, 0xc8, //0x000018e6 movl %ecx, %r8d + 0x41, 0xf7, 0xd8, //0x000018e9 negl %r8d + 0x85, 0xc9, //0x000018ec testl %ecx, %ecx + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x000018ee je LBB0_333 + 0x0f, 0x88, 0x88, 0x01, 0x00, 0x00, //0x000018f4 js LBB0_364 + //0x000018fa LBB0_340 + 0x41, 0x83, 0xf8, 0xc3, //0x000018fa cmpl $-61, %r8d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x000018fe jle LBB0_344 + 0xe9, 0x89, 0x03, 0x00, 0x00, //0x00001904 jmp LBB0_394 + //0x00001909 LBB0_341 + 0xff, 0xc8, //0x00001909 decl %eax + 0x41, 0x89, 0xc3, //0x0000190b movl %eax, %r11d + //0x0000190e LBB0_342 + 0x45, 0x85, 0xdb, //0x0000190e testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00001911 cmovel %r11d, %r9d + //0x00001915 LBB0_343 + 0x44, 0x8d, 0x41, 0x3c, //0x00001915 leal $60(%rcx), %r8d + 0x44, 0x89, 0xd8, //0x00001919 movl %r11d, %eax + 0x83, 0xf9, 0x88, //0x0000191c cmpl $-120, %ecx + 0x0f, 0x8d, 0x5e, 0x03, 0x00, 0x00, //0x0000191f jge LBB0_393 + //0x00001925 LBB0_344 + 0x44, 0x89, 0xc1, //0x00001925 movl %r8d, %ecx + 0x48, 0x63, 0xf8, //0x00001928 movslq %eax, %rdi + 0x31, 0xf6, //0x0000192b xorl %esi, %esi + 0x31, 0xd2, //0x0000192d xorl %edx, %edx + 0x90, //0x0000192f .p2align 4, 0x90 + //0x00001930 LBB0_345 + 0x48, 0x39, 0xfe, //0x00001930 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x00001933 jge LBB0_347 + 0x48, 0x8d, 0x14, 0x92, //0x00001939 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x0000193d movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00001942 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00001947 incq %rsi + 0x49, 0x8d, 0x5a, 0x01, //0x0000194a leaq $1(%r10), %rbx + 0x48, 0x39, 0xda, //0x0000194e cmpq %rbx, %rdx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001951 jb LBB0_345 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001957 jmp LBB0_349 + //0x0000195c LBB0_347 + 0x48, 0x85, 0xd2, //0x0000195c testq %rdx, %rdx + 0x0f, 0x84, 0x15, 0x01, 0x00, 0x00, //0x0000195f je LBB0_362 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001965 .p2align 4, 0x90 + //0x00001970 LBB0_348 + 0x48, 0x01, 0xd2, //0x00001970 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001973 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00001977 incl %esi + 0x49, 0x8d, 0x7a, 0x01, //0x00001979 leaq $1(%r10), %rdi + 0x48, 0x39, 0xfa, //0x0000197d cmpq %rdi, %rdx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00001980 jb LBB0_348 + //0x00001986 LBB0_349 + 0x41, 0x29, 0xf1, //0x00001986 subl %esi, %r9d + 0x31, 0xff, //0x00001989 xorl %edi, %edi + 0x39, 0xc6, //0x0000198b cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x0000198d jge LBB0_354 + 0x48, 0x63, 0xc6, //0x00001993 movslq %esi, %rax + 0x49, 0x63, 0xf3, //0x00001996 movslq %r11d, %rsi + 0x49, 0x8d, 0x3c, 0x04, //0x00001999 leaq (%r12,%rax), %rdi + 0x45, 0x31, 0xdb, //0x0000199d xorl %r11d, %r11d + //0x000019a0 .p2align 4, 0x90 + //0x000019a0 LBB0_351 + 0x48, 0x89, 0xd3, //0x000019a0 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x000019a3 shrq $60, %rbx + 0x4c, 0x21, 0xd2, //0x000019a7 andq %r10, %rdx + 0x80, 0xcb, 0x30, //0x000019aa orb $48, %bl + 0x43, 0x88, 0x1c, 0x1c, //0x000019ad movb %bl, (%r12,%r11) + 0x48, 0x8d, 0x14, 0x92, //0x000019b1 leaq (%rdx,%rdx,4), %rdx + 0x4a, 0x0f, 0xbe, 0x1c, 0x1f, //0x000019b5 movsbq (%rdi,%r11), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x000019ba leaq $-48(%rbx,%rdx,2), %rdx + 0x4a, 0x8d, 0x5c, 0x18, 0x01, //0x000019bf leaq $1(%rax,%r11), %rbx + 0x49, 0xff, 0xc3, //0x000019c4 incq %r11 + 0x48, 0x39, 0xf3, //0x000019c7 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x000019ca jl LBB0_351 + 0x48, 0x85, 0xd2, //0x000019d0 testq %rdx, %rdx + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x000019d3 je LBB0_358 + 0x44, 0x89, 0xdf, //0x000019d9 movl %r11d, %edi + //0x000019dc LBB0_354 + 0x41, 0x89, 0xfb, //0x000019dc movl %edi, %r11d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000019df jmp LBB0_356 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019e4 .p2align 4, 0x90 + //0x000019f0 LBB0_355 + 0x48, 0x85, 0xc0, //0x000019f0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000019f3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000019f8 cmovnel %eax, %r14d + 0x48, 0x01, 0xd2, //0x000019fc addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x000019ff leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001a03 testq %rdx, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00001a06 je LBB0_358 + //0x00001a0c LBB0_356 + 0x48, 0x89, 0xd0, //0x00001a0c movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x3c, //0x00001a0f shrq $60, %rax + 0x4c, 0x21, 0xd2, //0x00001a13 andq %r10, %rdx + 0x49, 0x63, 0xf3, //0x00001a16 movslq %r11d, %rsi + 0x49, 0x39, 0xf7, //0x00001a19 cmpq %rsi, %r15 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x00001a1c jbe LBB0_355 + 0x0c, 0x30, //0x00001a22 orb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001a24 movb %al, (%r12,%rsi) + 0xff, 0xc6, //0x00001a28 incl %esi + 0x41, 0x89, 0xf3, //0x00001a2a movl %esi, %r11d + 0x48, 0x01, 0xd2, //0x00001a2d addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001a30 leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001a34 testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00001a37 jne LBB0_356 + //0x00001a3d LBB0_358 + 0x41, 0xff, 0xc1, //0x00001a3d incl %r9d + 0x45, 0x85, 0xdb, //0x00001a40 testl %r11d, %r11d + 0x0f, 0x8e, 0xc5, 0xfe, 0xff, 0xff, //0x00001a43 jle LBB0_342 + 0x44, 0x89, 0xd8, //0x00001a49 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001a4c cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0xbd, 0xfe, 0xff, 0xff, //0x00001a52 jne LBB0_343 + //0x00001a58 LBB0_360 + 0x48, 0x83, 0xf8, 0x01, //0x00001a58 cmpq $1, %rax + 0x0f, 0x8e, 0xa7, 0xfe, 0xff, 0xff, //0x00001a5c jle LBB0_341 + 0x4c, 0x8d, 0x58, 0xff, //0x00001a62 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001a66 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001a6c movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001a6f je LBB0_360 + 0xe9, 0x9b, 0xfe, 0xff, 0xff, //0x00001a75 jmp LBB0_343 + //0x00001a7a LBB0_362 + 0x45, 0x31, 0xdb, //0x00001a7a xorl %r11d, %r11d + 0xe9, 0x93, 0xfe, 0xff, 0xff, //0x00001a7d jmp LBB0_343 + //0x00001a82 LBB0_364 + 0x83, 0x7d, 0xb8, 0xc3, //0x00001a82 cmpl $-61, $-72(%rbp) + 0x0f, 0x8f, 0x67, 0x03, 0x00, 0x00, //0x00001a86 jg LBB0_415 + 0x4c, 0x8d, 0x2d, 0xad, 0x47, 0x00, 0x00, //0x00001a8c leaq $18349(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00001a93 jmp LBB0_369 + //0x00001a98 LBB0_366 + 0xff, 0xc8, //0x00001a98 decl %eax + 0x41, 0x89, 0xc3, //0x00001a9a movl %eax, %r11d + //0x00001a9d LBB0_367 + 0x45, 0x85, 0xdb, //0x00001a9d testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00001aa0 cmovel %r11d, %r9d + //0x00001aa4 LBB0_368 + 0x48, 0x8b, 0x4d, 0xc8, //0x00001aa4 movq $-56(%rbp), %rcx + 0x44, 0x8d, 0x41, 0xc4, //0x00001aa8 leal $-60(%rcx), %r8d + 0x44, 0x89, 0xd8, //0x00001aac movl %r11d, %eax + 0x83, 0xf9, 0x78, //0x00001aaf cmpl $120, %ecx + 0x0f, 0x8e, 0x28, 0x03, 0x00, 0x00, //0x00001ab2 jle LBB0_414 + //0x00001ab8 LBB0_369 + 0x4c, 0x89, 0x45, 0xc8, //0x00001ab8 movq %r8, $-56(%rbp) + 0x48, 0x63, 0xd8, //0x00001abc movslq %eax, %rbx + 0x85, 0xdb, //0x00001abf testl %ebx, %ebx + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00001ac1 je LBB0_375 + 0xb2, 0x38, //0x00001ac7 movb $56, %dl + 0x31, 0xc9, //0x00001ac9 xorl %ecx, %ecx + //0x00001acb LBB0_371 + 0x41, 0xb8, 0x13, 0x00, 0x00, 0x00, //0x00001acb movl $19, %r8d + 0x48, 0x83, 0xf9, 0x2a, //0x00001ad1 cmpq $42, %rcx + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x00001ad5 je LBB0_376 + 0x41, 0x38, 0x14, 0x0c, //0x00001adb cmpb %dl, (%r12,%rcx) + 0x0f, 0x85, 0x93, 0x01, 0x00, 0x00, //0x00001adf jne LBB0_392 + 0x42, 0x0f, 0xb6, 0x94, 0x29, 0x65, 0x18, 0x00, 0x00, //0x00001ae5 movzbl $6245(%rcx,%r13), %edx + 0x48, 0xff, 0xc1, //0x00001aee incq %rcx + 0x48, 0x39, 0xcb, //0x00001af1 cmpq %rcx, %rbx + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00001af4 jne LBB0_371 + 0x84, 0xd2, //0x00001afa testb %dl, %dl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001afc je LBB0_376 + //0x00001b02 LBB0_375 + 0x41, 0xb8, 0x12, 0x00, 0x00, 0x00, //0x00001b02 movl $18, %r8d + //0x00001b08 LBB0_376 + 0x85, 0xc0, //0x00001b08 testl %eax, %eax + 0x0f, 0x8e, 0x1e, 0x01, 0x00, 0x00, //0x00001b0a jle LBB0_388 + 0x4d, 0x89, 0xcd, //0x00001b10 movq %r9, %r13 + 0x44, 0x01, 0xc0, //0x00001b13 addl %r8d, %eax + 0x48, 0x98, //0x00001b16 cltq + 0x48, 0x89, 0xc7, //0x00001b18 movq %rax, %rdi + 0x48, 0xc1, 0xe7, 0x20, //0x00001b1b shlq $32, %rdi + 0x48, 0xff, 0xc8, //0x00001b1f decq %rax + 0x48, 0xff, 0xc3, //0x00001b22 incq %rbx + 0x31, 0xc9, //0x00001b25 xorl %ecx, %ecx + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00001b27 jmp LBB0_380 + 0x90, 0x90, 0x90, 0x90, //0x00001b2c .p2align 4, 0x90 + //0x00001b30 LBB0_378 + 0x48, 0x85, 0xc0, //0x00001b30 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001b33 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001b38 cmovnel %eax, %r14d + //0x00001b3c LBB0_379 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001b3c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc7, //0x00001b46 addq %rax, %rdi + 0x49, 0x8d, 0x41, 0xff, //0x00001b49 leaq $-1(%r9), %rax + 0x48, 0xff, 0xcb, //0x00001b4d decq %rbx + 0x48, 0x83, 0xfb, 0x01, //0x00001b50 cmpq $1, %rbx + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00001b54 jle LBB0_382 + //0x00001b5a LBB0_380 + 0x49, 0x89, 0xc1, //0x00001b5a movq %rax, %r9 + 0x41, 0x0f, 0xb6, 0x74, 0x1c, 0xfe, //0x00001b5d movzbl $-2(%r12,%rbx), %esi + 0x48, 0xc1, 0xe6, 0x3c, //0x00001b63 shlq $60, %rsi + 0x48, 0x01, 0xce, //0x00001b67 addq %rcx, %rsi + 0x48, 0x89, 0xf0, //0x00001b6a movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001b6d movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00001b77 mulq %rcx + 0x48, 0x89, 0xd1, //0x00001b7a movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00001b7d shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00001b81 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001b85 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00001b89 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x00001b8c subq %rdx, %rax + 0x4d, 0x39, 0xf9, //0x00001b8f cmpq %r15, %r9 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x00001b92 jae LBB0_378 + 0x04, 0x30, //0x00001b98 addb $48, %al + 0x43, 0x88, 0x04, 0x0c, //0x00001b9a movb %al, (%r12,%r9) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00001b9e jmp LBB0_379 + //0x00001ba3 LBB0_382 + 0x48, 0x83, 0xfe, 0x0a, //0x00001ba3 cmpq $10, %rsi + 0x0f, 0x83, 0x0f, 0x00, 0x00, 0x00, //0x00001ba7 jae LBB0_384 + 0x4d, 0x89, 0xe9, //0x00001bad movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x89, 0x46, 0x00, 0x00, //0x00001bb0 leaq $18057(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00001bb7 jmp LBB0_388 + //0x00001bbc LBB0_384 + 0x49, 0x63, 0xf1, //0x00001bbc movslq %r9d, %rsi + 0x48, 0xff, 0xce, //0x00001bbf decq %rsi + 0x4d, 0x89, 0xe9, //0x00001bc2 movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x74, 0x46, 0x00, 0x00, //0x00001bc5 leaq $18036(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00001bcc jmp LBB0_386 + //0x00001bd1 LBB0_385 + 0x48, 0x85, 0xc0, //0x00001bd1 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001bd4 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001bd9 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x00001bdd decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001be0 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001be4 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001be7 jbe LBB0_388 + //0x00001bed LBB0_386 + 0x48, 0x89, 0xc8, //0x00001bed movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001bf0 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001bfa mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00001bfd shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001c01 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001c05 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00001c09 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x00001c0c subq %rdi, %rax + 0x4c, 0x39, 0xfe, //0x00001c0f cmpq %r15, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001c12 jae LBB0_385 + 0x04, 0x30, //0x00001c18 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001c1a movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00001c1e decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001c21 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001c25 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001c28 ja LBB0_386 + //0x00001c2e LBB0_388 + 0x45, 0x01, 0xc3, //0x00001c2e addl %r8d, %r11d + 0x4d, 0x63, 0xdb, //0x00001c31 movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00001c34 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00001c37 cmovbel %r15d, %r11d + 0x45, 0x01, 0xc1, //0x00001c3b addl %r8d, %r9d + 0x45, 0x85, 0xdb, //0x00001c3e testl %r11d, %r11d + 0x0f, 0x8e, 0x56, 0xfe, 0xff, 0xff, //0x00001c41 jle LBB0_367 + 0x44, 0x89, 0xd8, //0x00001c47 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001c4a cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x4e, 0xfe, 0xff, 0xff, //0x00001c50 jne LBB0_368 + //0x00001c56 LBB0_390 + 0x48, 0x83, 0xf8, 0x01, //0x00001c56 cmpq $1, %rax + 0x0f, 0x8e, 0x38, 0xfe, 0xff, 0xff, //0x00001c5a jle LBB0_366 + 0x4c, 0x8d, 0x58, 0xff, //0x00001c60 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001c64 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001c6a movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001c6d je LBB0_390 + 0xe9, 0x2c, 0xfe, 0xff, 0xff, //0x00001c73 jmp LBB0_368 + //0x00001c78 LBB0_392 + 0x0f, 0x8c, 0x84, 0xfe, 0xff, 0xff, //0x00001c78 jl LBB0_375 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00001c7e jmp LBB0_376 + //0x00001c83 LBB0_393 + 0x44, 0x89, 0xd8, //0x00001c83 movl %r11d, %eax + 0x44, 0x89, 0xde, //0x00001c86 movl %r11d, %esi + 0x45, 0x85, 0xc0, //0x00001c89 testl %r8d, %r8d + 0x0f, 0x84, 0x17, 0xfc, 0xff, 0xff, //0x00001c8c je LBB0_334 + //0x00001c92 LBB0_394 + 0x41, 0xf7, 0xd8, //0x00001c92 negl %r8d + 0x48, 0x63, 0xf8, //0x00001c95 movslq %eax, %rdi + 0x31, 0xf6, //0x00001c98 xorl %esi, %esi + 0x31, 0xd2, //0x00001c9a xorl %edx, %edx + //0x00001c9c LBB0_395 + 0x48, 0x39, 0xfe, //0x00001c9c cmpq %rdi, %rsi + 0x0f, 0x8d, 0x12, 0x01, 0x00, 0x00, //0x00001c9f jge LBB0_411 + 0x48, 0x8d, 0x0c, 0x92, //0x00001ca5 leaq (%rdx,%rdx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x34, //0x00001ca9 movsbq (%r12,%rsi), %rdx + 0x48, 0x8d, 0x54, 0x4a, 0xd0, //0x00001cae leaq $-48(%rdx,%rcx,2), %rdx + 0x48, 0xff, 0xc6, //0x00001cb3 incq %rsi + 0x48, 0x89, 0xd3, //0x00001cb6 movq %rdx, %rbx + 0x44, 0x89, 0xc1, //0x00001cb9 movl %r8d, %ecx + 0x48, 0xd3, 0xeb, //0x00001cbc shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001cbf testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00001cc2 je LBB0_395 + //0x00001cc8 LBB0_397 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00001cc8 movq $-1, %rbx + 0x44, 0x89, 0xc1, //0x00001ccf movl %r8d, %ecx + 0x48, 0xd3, 0xe3, //0x00001cd2 shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x00001cd5 notq %rbx + 0x31, 0xff, //0x00001cd8 xorl %edi, %edi + 0x39, 0xc6, //0x00001cda cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00001cdc jge LBB0_401 + 0x4c, 0x89, 0x4d, 0xc8, //0x00001ce2 movq %r9, $-56(%rbp) + 0x4c, 0x63, 0xee, //0x00001ce6 movslq %esi, %r13 + 0x4d, 0x63, 0xcb, //0x00001ce9 movslq %r11d, %r9 + 0x4f, 0x8d, 0x1c, 0x2c, //0x00001cec leaq (%r12,%r13), %r11 + 0x31, 0xff, //0x00001cf0 xorl %edi, %edi + //0x00001cf2 LBB0_399 + 0x48, 0x89, 0xd0, //0x00001cf2 movq %rdx, %rax + 0x44, 0x89, 0xc1, //0x00001cf5 movl %r8d, %ecx + 0x48, 0xd3, 0xe8, //0x00001cf8 shrq %cl, %rax + 0x48, 0x21, 0xda, //0x00001cfb andq %rbx, %rdx + 0x04, 0x30, //0x00001cfe addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00001d00 movb %al, (%r12,%rdi) + 0x48, 0x8d, 0x04, 0x92, //0x00001d04 leaq (%rdx,%rdx,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x3b, //0x00001d08 movsbq (%r11,%rdi), %rcx + 0x48, 0x8d, 0x54, 0x41, 0xd0, //0x00001d0d leaq $-48(%rcx,%rax,2), %rdx + 0x49, 0x8d, 0x44, 0x3d, 0x01, //0x00001d12 leaq $1(%r13,%rdi), %rax + 0x48, 0xff, 0xc7, //0x00001d17 incq %rdi + 0x4c, 0x39, 0xc8, //0x00001d1a cmpq %r9, %rax + 0x0f, 0x8c, 0xcf, 0xff, 0xff, 0xff, //0x00001d1d jl LBB0_399 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001d23 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00001d27 movq $-56(%rbp), %r9 + //0x00001d2b LBB0_401 + 0x41, 0x29, 0xf1, //0x00001d2b subl %esi, %r9d + 0x41, 0x89, 0xfb, //0x00001d2e movl %edi, %r11d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001d31 jmp LBB0_404 + //0x00001d36 LBB0_402 + 0x48, 0x85, 0xc0, //0x00001d36 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001d39 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001d3e cmovnel %eax, %r14d + //0x00001d42 LBB0_403 + 0x48, 0x01, 0xd2, //0x00001d42 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001d45 leaq (%rdx,%rdx,4), %rdx + //0x00001d49 LBB0_404 + 0x48, 0x85, 0xd2, //0x00001d49 testq %rdx, %rdx + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00001d4c je LBB0_407 + 0x48, 0x89, 0xd0, //0x00001d52 movq %rdx, %rax + 0x44, 0x89, 0xc1, //0x00001d55 movl %r8d, %ecx + 0x48, 0xd3, 0xe8, //0x00001d58 shrq %cl, %rax + 0x48, 0x21, 0xda, //0x00001d5b andq %rbx, %rdx + 0x49, 0x63, 0xcb, //0x00001d5e movslq %r11d, %rcx + 0x49, 0x39, 0xcf, //0x00001d61 cmpq %rcx, %r15 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00001d64 jbe LBB0_402 + 0x04, 0x30, //0x00001d6a addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001d6c movb %al, (%r12,%rcx) + 0xff, 0xc1, //0x00001d70 incl %ecx + 0x41, 0x89, 0xcb, //0x00001d72 movl %ecx, %r11d + 0xe9, 0xc8, 0xff, 0xff, 0xff, //0x00001d75 jmp LBB0_403 + //0x00001d7a LBB0_407 + 0x41, 0xff, 0xc1, //0x00001d7a incl %r9d + 0x45, 0x85, 0xdb, //0x00001d7d testl %r11d, %r11d + 0x0f, 0x8e, 0x49, 0x02, 0x00, 0x00, //0x00001d80 jle LBB0_441 + 0x44, 0x89, 0xd8, //0x00001d86 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001d89 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x00001d8f jne LBB0_442 + //0x00001d95 LBB0_409 + 0x48, 0x83, 0xf8, 0x01, //0x00001d95 cmpq $1, %rax + 0x0f, 0x8e, 0x2b, 0x02, 0x00, 0x00, //0x00001d99 jle LBB0_440 + 0x4c, 0x8d, 0x58, 0xff, //0x00001d9f leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001da3 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001da9 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001dac je LBB0_409 + 0xe9, 0x21, 0x02, 0x00, 0x00, //0x00001db2 jmp LBB0_442 + //0x00001db7 LBB0_411 + 0x48, 0x85, 0xd2, //0x00001db7 testq %rdx, %rdx + 0x0f, 0x84, 0x3e, 0x01, 0x00, 0x00, //0x00001dba je LBB0_430 + //0x00001dc0 LBB0_412 + 0x48, 0x89, 0xd7, //0x00001dc0 movq %rdx, %rdi + 0x44, 0x89, 0xc1, //0x00001dc3 movl %r8d, %ecx + 0x48, 0xd3, 0xef, //0x00001dc6 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00001dc9 testq %rdi, %rdi + 0x0f, 0x85, 0xf6, 0xfe, 0xff, 0xff, //0x00001dcc jne LBB0_397 + 0x48, 0x01, 0xd2, //0x00001dd2 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001dd5 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00001dd9 incl %esi + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00001ddb jmp LBB0_412 + //0x00001de0 LBB0_414 + 0x44, 0x89, 0xd8, //0x00001de0 movl %r11d, %eax + 0x44, 0x89, 0xde, //0x00001de3 movl %r11d, %esi + 0x45, 0x85, 0xc0, //0x00001de6 testl %r8d, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001de9 movq $-48(%rbp), %r13 + 0x0f, 0x84, 0xb6, 0xfa, 0xff, 0xff, //0x00001ded je LBB0_334 + //0x00001df3 LBB0_415 + 0x44, 0x89, 0xc1, //0x00001df3 movl %r8d, %ecx + 0x48, 0x6b, 0xf1, 0x68, //0x00001df6 imulq $104, %rcx, %rsi + 0x48, 0x8d, 0x3d, 0x3f, 0x44, 0x00, 0x00, //0x00001dfa leaq $17471(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3e, //0x00001e01 movl (%rsi,%rdi), %ebx + 0x4c, 0x63, 0xe8, //0x00001e04 movslq %eax, %r13 + 0x8a, 0x54, 0x3e, 0x04, //0x00001e07 movb $4(%rsi,%rdi), %dl + 0x45, 0x85, 0xed, //0x00001e0b testl %r13d, %r13d + 0x4c, 0x89, 0x4d, 0xc8, //0x00001e0e movq %r9, $-56(%rbp) + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001e12 je LBB0_420 + 0x48, 0x8d, 0x74, 0x3e, 0x05, //0x00001e18 leaq $5(%rsi,%rdi), %rsi + 0x31, 0xff, //0x00001e1d xorl %edi, %edi + //0x00001e1f LBB0_417 + 0x84, 0xd2, //0x00001e1f testb %dl, %dl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00001e21 je LBB0_422 + 0x41, 0x38, 0x14, 0x3c, //0x00001e27 cmpb %dl, (%r12,%rdi) + 0x0f, 0x85, 0xaf, 0x01, 0x00, 0x00, //0x00001e2b jne LBB0_443 + 0x0f, 0xb6, 0x14, 0x3e, //0x00001e31 movzbl (%rsi,%rdi), %edx + 0x48, 0xff, 0xc7, //0x00001e35 incq %rdi + 0x49, 0x39, 0xfd, //0x00001e38 cmpq %rdi, %r13 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00001e3b jne LBB0_417 + //0x00001e41 LBB0_420 + 0x84, 0xd2, //0x00001e41 testb %dl, %dl + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x00001e43 je LBB0_422 + //0x00001e49 LBB0_421 + 0xff, 0xcb, //0x00001e49 decl %ebx + //0x00001e4b LBB0_422 + 0x85, 0xc0, //0x00001e4b testl %eax, %eax + 0x0f, 0x8e, 0xb5, 0x00, 0x00, 0x00, //0x00001e4d jle LBB0_431 + 0x89, 0x5d, 0x98, //0x00001e53 movl %ebx, $-104(%rbp) + 0x01, 0xd8, //0x00001e56 addl %ebx, %eax + 0x48, 0x98, //0x00001e58 cltq + 0x49, 0x89, 0xc1, //0x00001e5a movq %rax, %r9 + 0x49, 0xc1, 0xe1, 0x20, //0x00001e5d shlq $32, %r9 + 0x48, 0xff, 0xc8, //0x00001e61 decq %rax + 0x49, 0xff, 0xc5, //0x00001e64 incq %r13 + 0x31, 0xf6, //0x00001e67 xorl %esi, %esi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001e69 jmp LBB0_426 + //0x00001e6e LBB0_424 + 0x48, 0x85, 0xc0, //0x00001e6e testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001e71 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001e76 cmovnel %eax, %r14d + //0x00001e7a LBB0_425 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001e7a movabsq $-4294967296, %rax + 0x49, 0x01, 0xc1, //0x00001e84 addq %rax, %r9 + 0x48, 0x8d, 0x47, 0xff, //0x00001e87 leaq $-1(%rdi), %rax + 0x49, 0xff, 0xcd, //0x00001e8b decq %r13 + 0x49, 0x83, 0xfd, 0x01, //0x00001e8e cmpq $1, %r13 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00001e92 jle LBB0_428 + //0x00001e98 LBB0_426 + 0x48, 0x89, 0xc7, //0x00001e98 movq %rax, %rdi + 0x4b, 0x0f, 0xbe, 0x5c, 0x2c, 0xfe, //0x00001e9b movsbq $-2(%r12,%r13), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00001ea1 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x00001ea5 shlq %cl, %rbx + 0x48, 0x01, 0xf3, //0x00001ea8 addq %rsi, %rbx + 0x48, 0x89, 0xd8, //0x00001eab movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001eae movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001eb8 mulq %rdx + 0x48, 0x89, 0xd6, //0x00001ebb movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x03, //0x00001ebe shrq $3, %rsi + 0x48, 0x8d, 0x04, 0x36, //0x00001ec2 leaq (%rsi,%rsi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001ec6 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00001eca movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00001ecd subq %rdx, %rax + 0x4c, 0x39, 0xff, //0x00001ed0 cmpq %r15, %rdi + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00001ed3 jae LBB0_424 + 0x04, 0x30, //0x00001ed9 addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00001edb movb %al, (%r12,%rdi) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00001edf jmp LBB0_425 + //0x00001ee4 LBB0_428 + 0x48, 0x83, 0xfb, 0x0a, //0x00001ee4 cmpq $10, %rbx + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001ee8 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00001eec movq $-56(%rbp), %r9 + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00001ef0 jae LBB0_432 + 0x8b, 0x5d, 0x98, //0x00001ef6 movl $-104(%rbp), %ebx + 0xe9, 0x82, 0x00, 0x00, 0x00, //0x00001ef9 jmp LBB0_436 + //0x00001efe LBB0_430 + 0x45, 0x31, 0xdb, //0x00001efe xorl %r11d, %r11d + 0x31, 0xf6, //0x00001f01 xorl %esi, %esi + 0xe9, 0xa1, 0xf9, 0xff, 0xff, //0x00001f03 jmp LBB0_334 + //0x00001f08 LBB0_431 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00001f08 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00001f0c movq $-56(%rbp), %r9 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x00001f10 jmp LBB0_436 + //0x00001f15 LBB0_432 + 0x48, 0x63, 0xcf, //0x00001f15 movslq %edi, %rcx + 0x48, 0xff, 0xc9, //0x00001f18 decq %rcx + 0x8b, 0x5d, 0x98, //0x00001f1b movl $-104(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00001f1e jmp LBB0_434 + //0x00001f23 LBB0_433 + 0x48, 0x85, 0xc0, //0x00001f23 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001f26 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001f2b cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x00001f2f decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x00001f32 cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x00001f36 movq %rdx, %rsi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001f39 jbe LBB0_436 + //0x00001f3f LBB0_434 + 0x48, 0x89, 0xf0, //0x00001f3f movq %rsi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001f42 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001f4c mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00001f4f shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001f53 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001f57 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xf0, //0x00001f5b movq %rsi, %rax + 0x48, 0x29, 0xf8, //0x00001f5e subq %rdi, %rax + 0x4c, 0x39, 0xf9, //0x00001f61 cmpq %r15, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001f64 jae LBB0_433 + 0x04, 0x30, //0x00001f6a addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001f6c movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x00001f70 decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x00001f73 cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x00001f77 movq %rdx, %rsi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001f7a ja LBB0_434 + //0x00001f80 LBB0_436 + 0x41, 0x01, 0xdb, //0x00001f80 addl %ebx, %r11d + 0x4d, 0x63, 0xdb, //0x00001f83 movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00001f86 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00001f89 cmovbel %r15d, %r11d + 0x41, 0x01, 0xd9, //0x00001f8d addl %ebx, %r9d + 0x45, 0x85, 0xdb, //0x00001f90 testl %r11d, %r11d + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00001f93 jle LBB0_445 + 0x44, 0x89, 0xd8, //0x00001f99 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001f9c cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00001fa2 jne LBB0_446 + //0x00001fa8 LBB0_438 + 0x48, 0x83, 0xf8, 0x01, //0x00001fa8 cmpq $1, %rax + 0x0f, 0x8e, 0x39, 0x00, 0x00, 0x00, //0x00001fac jle LBB0_444 + 0x4c, 0x8d, 0x58, 0xff, //0x00001fb2 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001fb6 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00001fbc movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001fbf je LBB0_438 + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00001fc5 jmp LBB0_446 + //0x00001fca LBB0_440 + 0xff, 0xc8, //0x00001fca decl %eax + 0x41, 0x89, 0xc3, //0x00001fcc movl %eax, %r11d + //0x00001fcf LBB0_441 + 0x45, 0x85, 0xdb, //0x00001fcf testl %r11d, %r11d + 0x0f, 0x84, 0x17, 0x01, 0x00, 0x00, //0x00001fd2 je LBB0_454 + //0x00001fd8 LBB0_442 + 0x44, 0x89, 0xde, //0x00001fd8 movl %r11d, %esi + 0xe9, 0xc9, 0xf8, 0xff, 0xff, //0x00001fdb jmp LBB0_334 + //0x00001fe0 LBB0_443 + 0x0f, 0x8c, 0x63, 0xfe, 0xff, 0xff, //0x00001fe0 jl LBB0_421 + 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00001fe6 jmp LBB0_422 + //0x00001feb LBB0_444 + 0xff, 0xc8, //0x00001feb decl %eax + 0x41, 0x89, 0xc3, //0x00001fed movl %eax, %r11d + //0x00001ff0 LBB0_445 + 0x45, 0x85, 0xdb, //0x00001ff0 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00001ff3 cmovel %r11d, %r9d + //0x00001ff7 LBB0_446 + 0x44, 0x89, 0xd8, //0x00001ff7 movl %r11d, %eax + 0x44, 0x89, 0xde, //0x00001ffa movl %r11d, %esi + 0x45, 0x85, 0xc0, //0x00001ffd testl %r8d, %r8d + 0x0f, 0x89, 0xa3, 0xf8, 0xff, 0xff, //0x00002000 jns LBB0_334 + 0xe9, 0xef, 0xf8, 0xff, 0xff, //0x00002006 jmp LBB0_340 + //0x0000200b LBB0_447 + 0x44, 0x89, 0xde, //0x0000200b movl %r11d, %esi + 0xe9, 0xfc, 0x00, 0x00, 0x00, //0x0000200e jmp LBB0_457 + //0x00002013 LBB0_628 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x00002013 movabsq $126100789566373888, %rdi + //0x0000201d LBB0_629 + 0x48, 0x89, 0xd8, //0x0000201d movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00002020 shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00002024 leal $9(%rax), %ecx + 0x48, 0xd3, 0xeb, //0x00002027 shrq %cl, %rbx + 0x48, 0x0b, 0x55, 0xb8, //0x0000202a orq $-72(%rbp), %rdx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000202e jne LBB0_631 + 0x89, 0xd9, //0x00002034 movl %ebx, %ecx + 0x83, 0xe1, 0x03, //0x00002036 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00002039 cmpl $1, %ecx + 0x0f, 0x84, 0x47, 0xf4, 0xff, 0xff, //0x0000203c je LBB0_268 + //0x00002042 LBB0_631 + 0x4c, 0x2b, 0x75, 0xa0, //0x00002042 subq $-96(%rbp), %r14 + 0x48, 0x83, 0xf0, 0x01, //0x00002046 xorq $1, %rax + 0x49, 0x29, 0xc6, //0x0000204a subq %rax, %r14 + 0x89, 0xd8, //0x0000204d movl %ebx, %eax + 0x83, 0xe0, 0x01, //0x0000204f andl $1, %eax + 0x48, 0x01, 0xd8, //0x00002052 addq %rbx, %rax + 0x48, 0x21, 0xc7, //0x00002055 andq %rax, %rdi + 0x48, 0x83, 0xff, 0x01, //0x00002058 cmpq $1, %rdi + 0x49, 0x83, 0xde, 0xff, //0x0000205c sbbq $-1, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x00002060 leaq $-1(%r14), %rcx + 0x48, 0x81, 0xf9, 0xfd, 0x07, 0x00, 0x00, //0x00002064 cmpq $2045, %rcx + 0x0f, 0x87, 0x18, 0xf4, 0xff, 0xff, //0x0000206b ja LBB0_268 + 0x48, 0x83, 0xff, 0x01, //0x00002071 cmpq $1, %rdi + 0xb1, 0x02, //0x00002075 movb $2, %cl + 0x80, 0xd9, 0x00, //0x00002077 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x0000207a shrq %cl, %rax + 0x49, 0xc1, 0xe6, 0x34, //0x0000207d shlq $52, %r14 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002081 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x0000208b andq %rcx, %rax + 0x4c, 0x09, 0xf0, //0x0000208e orq %r14, %rax + 0x48, 0x89, 0xc1, //0x00002091 movq %rax, %rcx + 0x4c, 0x09, 0xc9, //0x00002094 orq %r9, %rcx + 0x83, 0x7d, 0xc8, 0xff, //0x00002097 cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xc8, //0x0000209b cmovneq %rax, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xc6, //0x0000209f movq %rsi, %xmm0 + 0x66, 0x48, 0x0f, 0x6e, 0xc9, //0x000020a4 movq %rcx, %xmm1 + 0x66, 0x0f, 0x2e, 0xc1, //0x000020a9 ucomisd %xmm1, %xmm0 + 0x0f, 0x85, 0xd6, 0xf3, 0xff, 0xff, //0x000020ad jne LBB0_268 + 0x0f, 0x8b, 0xa3, 0xf7, 0xff, 0xff, //0x000020b3 jnp LBB0_328 + 0xe9, 0xcb, 0xf3, 0xff, 0xff, //0x000020b9 jmp LBB0_268 + //0x000020be LBB0_450 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000020be movq $-1, %r15 + 0xe9, 0x7b, 0xef, 0xff, 0xff, //0x000020c5 jmp LBB0_221 + //0x000020ca LBB0_452 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000020ca movq $-1, %r14 + 0x49, 0x89, 0xda, //0x000020d1 movq %rbx, %r10 + 0x48, 0x89, 0xf0, //0x000020d4 movq %rsi, %rax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000020d7 movq $-1, %r12 + 0x48, 0xc7, 0x45, 0xa8, 0xff, 0xff, 0xff, 0xff, //0x000020de movq $-1, $-88(%rbp) + 0x4c, 0x8b, 0x6d, 0xd0, //0x000020e6 movq $-48(%rbp), %r13 + 0xe9, 0x40, 0xe4, 0xff, 0xff, //0x000020ea jmp LBB0_64 + //0x000020ef LBB0_454 + 0x8b, 0x45, 0xb8, //0x000020ef movl $-72(%rbp), %eax + 0x03, 0x45, 0xc0, //0x000020f2 addl $-64(%rbp), %eax + 0x45, 0x31, 0xc9, //0x000020f5 xorl %r9d, %r9d + 0x45, 0x31, 0xdb, //0x000020f8 xorl %r11d, %r11d + 0x31, 0xf6, //0x000020fb xorl %esi, %esi + 0x89, 0xc7, //0x000020fd movl %eax, %edi + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000020ff jmp LBB0_457 + //0x00002104 LBB0_455 + 0x89, 0xf0, //0x00002104 movl %esi, %eax + //0x00002106 LBB0_456 + 0x48, 0x8b, 0x7d, 0xc0, //0x00002106 movq $-64(%rbp), %rdi + 0x2b, 0x7d, 0xb8, //0x0000210a subl $-72(%rbp), %edi + 0x89, 0xc6, //0x0000210d movl %eax, %esi + //0x0000210f LBB0_457 + 0x45, 0x85, 0xc9, //0x0000210f testl %r9d, %r9d + 0x0f, 0x88, 0x16, 0x00, 0x00, 0x00, //0x00002112 js LBB0_460 + 0x0f, 0x85, 0xaa, 0x07, 0x00, 0x00, //0x00002118 jne LBB0_573 + 0x41, 0x80, 0x3c, 0x24, 0x35, //0x0000211e cmpb $53, (%r12) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00002123 jl LBB0_461 + 0xe9, 0x9a, 0x07, 0x00, 0x00, //0x00002129 jmp LBB0_573 + //0x0000212e LBB0_460 + 0xb8, 0x1b, 0x00, 0x00, 0x00, //0x0000212e movl $27, %eax + 0x41, 0x83, 0xf9, 0xf8, //0x00002133 cmpl $-8, %r9d + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00002137 jl LBB0_462 + //0x0000213d LBB0_461 + 0x44, 0x89, 0xc8, //0x0000213d movl %r9d, %eax + 0xf7, 0xd8, //0x00002140 negl %eax + 0x48, 0x98, //0x00002142 cltq + 0x48, 0x8d, 0x0d, 0xc5, 0x40, 0x00, 0x00, //0x00002144 leaq $16581(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x8b, 0x04, 0x81, //0x0000214b movl (%rcx,%rax,4), %eax + //0x0000214e LBB0_462 + 0x85, 0xf6, //0x0000214e testl %esi, %esi + 0x48, 0x89, 0x7d, 0xc0, //0x00002150 movq %rdi, $-64(%rbp) + 0x89, 0x45, 0xb8, //0x00002154 movl %eax, $-72(%rbp) + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x00002157 je LBB0_455 + 0x85, 0xc0, //0x0000215d testl %eax, %eax + 0x0f, 0x84, 0x9f, 0xff, 0xff, 0xff, //0x0000215f je LBB0_455 + 0x0f, 0x8e, 0x32, 0x02, 0x00, 0x00, //0x00002165 jle LBB0_495 + 0x41, 0x89, 0xc0, //0x0000216b movl %eax, %r8d + 0x83, 0xf8, 0x3d, //0x0000216e cmpl $61, %eax + 0x0f, 0x8c, 0x41, 0x02, 0x00, 0x00, //0x00002171 jl LBB0_497 + 0x4c, 0x8d, 0x2d, 0xc2, 0x40, 0x00, 0x00, //0x00002177 leaq $16578(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x0000217e jmp LBB0_470 + //0x00002183 LBB0_467 + 0xff, 0xc8, //0x00002183 decl %eax + 0x41, 0x89, 0xc3, //0x00002185 movl %eax, %r11d + //0x00002188 LBB0_468 + 0x45, 0x85, 0xdb, //0x00002188 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x0000218b cmovel %r11d, %r9d + //0x0000218f LBB0_469 + 0x48, 0x8b, 0x45, 0xc8, //0x0000218f movq $-56(%rbp), %rax + 0x44, 0x8d, 0x40, 0xc4, //0x00002193 leal $-60(%rax), %r8d + 0x44, 0x89, 0xde, //0x00002197 movl %r11d, %esi + 0x83, 0xf8, 0x78, //0x0000219a cmpl $120, %eax + 0x0f, 0x8e, 0x02, 0x02, 0x00, 0x00, //0x0000219d jle LBB0_496 + //0x000021a3 LBB0_470 + 0x4c, 0x89, 0x45, 0xc8, //0x000021a3 movq %r8, $-56(%rbp) + 0x48, 0x63, 0xde, //0x000021a7 movslq %esi, %rbx + 0x85, 0xdb, //0x000021aa testl %ebx, %ebx + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000021ac je LBB0_476 + 0xb1, 0x38, //0x000021b2 movb $56, %cl + 0x31, 0xc0, //0x000021b4 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000021b6 .p2align 4, 0x90 + //0x000021c0 LBB0_472 + 0x41, 0xb8, 0x13, 0x00, 0x00, 0x00, //0x000021c0 movl $19, %r8d + 0x48, 0x83, 0xf8, 0x2a, //0x000021c6 cmpq $42, %rax + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x000021ca je LBB0_477 + 0x41, 0x38, 0x0c, 0x04, //0x000021d0 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x000021d4 jne LBB0_493 + 0x42, 0x0f, 0xb6, 0x8c, 0x28, 0x65, 0x18, 0x00, 0x00, //0x000021da movzbl $6245(%rax,%r13), %ecx + 0x48, 0xff, 0xc0, //0x000021e3 incq %rax + 0x48, 0x39, 0xc3, //0x000021e6 cmpq %rax, %rbx + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x000021e9 jne LBB0_472 + 0x84, 0xc9, //0x000021ef testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000021f1 je LBB0_477 + //0x000021f7 LBB0_476 + 0x41, 0xb8, 0x12, 0x00, 0x00, 0x00, //0x000021f7 movl $18, %r8d + //0x000021fd LBB0_477 + 0x85, 0xf6, //0x000021fd testl %esi, %esi + 0x0f, 0x8e, 0x38, 0x01, 0x00, 0x00, //0x000021ff jle LBB0_489 + 0x4d, 0x89, 0xcd, //0x00002205 movq %r9, %r13 + 0x44, 0x01, 0xc6, //0x00002208 addl %r8d, %esi + 0x48, 0x63, 0xc6, //0x0000220b movslq %esi, %rax + 0x48, 0x89, 0xc7, //0x0000220e movq %rax, %rdi + 0x48, 0xc1, 0xe7, 0x20, //0x00002211 shlq $32, %rdi + 0x48, 0xff, 0xc8, //0x00002215 decq %rax + 0x48, 0xff, 0xc3, //0x00002218 incq %rbx + 0x31, 0xc9, //0x0000221b xorl %ecx, %ecx + 0xe9, 0x38, 0x00, 0x00, 0x00, //0x0000221d jmp LBB0_481 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002222 .p2align 4, 0x90 + //0x00002230 LBB0_479 + 0x48, 0x85, 0xc0, //0x00002230 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002233 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002238 cmovnel %eax, %r14d + //0x0000223c LBB0_480 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000223c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc7, //0x00002246 addq %rax, %rdi + 0x49, 0x8d, 0x41, 0xff, //0x00002249 leaq $-1(%r9), %rax + 0x48, 0xff, 0xcb, //0x0000224d decq %rbx + 0x48, 0x83, 0xfb, 0x01, //0x00002250 cmpq $1, %rbx + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002254 jle LBB0_483 + //0x0000225a LBB0_481 + 0x49, 0x89, 0xc1, //0x0000225a movq %rax, %r9 + 0x41, 0x0f, 0xb6, 0x74, 0x1c, 0xfe, //0x0000225d movzbl $-2(%r12,%rbx), %esi + 0x48, 0xc1, 0xe6, 0x3c, //0x00002263 shlq $60, %rsi + 0x48, 0x01, 0xce, //0x00002267 addq %rcx, %rsi + 0x48, 0x89, 0xf0, //0x0000226a movq %rsi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000226d movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00002277 mulq %rcx + 0x48, 0x89, 0xd1, //0x0000227a movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x0000227d shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00002281 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002285 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf0, //0x00002289 movq %rsi, %rax + 0x48, 0x29, 0xd0, //0x0000228c subq %rdx, %rax + 0x4d, 0x39, 0xf9, //0x0000228f cmpq %r15, %r9 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x00002292 jae LBB0_479 + 0x04, 0x30, //0x00002298 addb $48, %al + 0x43, 0x88, 0x04, 0x0c, //0x0000229a movb %al, (%r12,%r9) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x0000229e jmp LBB0_480 + //0x000022a3 LBB0_483 + 0x48, 0x83, 0xfe, 0x0a, //0x000022a3 cmpq $10, %rsi + 0x0f, 0x83, 0x0f, 0x00, 0x00, 0x00, //0x000022a7 jae LBB0_485 + 0x4d, 0x89, 0xe9, //0x000022ad movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x89, 0x3f, 0x00, 0x00, //0x000022b0 leaq $16265(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000022b7 jmp LBB0_489 + //0x000022bc LBB0_485 + 0x49, 0x63, 0xf1, //0x000022bc movslq %r9d, %rsi + 0x48, 0xff, 0xce, //0x000022bf decq %rsi + 0x4d, 0x89, 0xe9, //0x000022c2 movq %r13, %r9 + 0x4c, 0x8d, 0x2d, 0x74, 0x3f, 0x00, 0x00, //0x000022c5 leaq $16244(%rip), %r13 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000022cc jmp LBB0_487 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000022d1 .p2align 4, 0x90 + //0x000022e0 LBB0_486 + 0x48, 0x85, 0xc0, //0x000022e0 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000022e3 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000022e8 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x000022ec decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000022ef cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000022f3 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000022f6 jbe LBB0_489 + //0x000022fc LBB0_487 + 0x48, 0x89, 0xc8, //0x000022fc movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000022ff movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002309 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000230c shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00002310 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00002314 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00002318 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x0000231b subq %rdi, %rax + 0x4c, 0x39, 0xfe, //0x0000231e cmpq %r15, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00002321 jae LBB0_486 + 0x04, 0x30, //0x00002327 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002329 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x0000232d decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002330 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002334 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002337 ja LBB0_487 + //0x0000233d LBB0_489 + 0x45, 0x01, 0xc3, //0x0000233d addl %r8d, %r11d + 0x4d, 0x63, 0xdb, //0x00002340 movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00002343 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00002346 cmovbel %r15d, %r11d + 0x45, 0x01, 0xc1, //0x0000234a addl %r8d, %r9d + 0x45, 0x85, 0xdb, //0x0000234d testl %r11d, %r11d + 0x0f, 0x8e, 0x32, 0xfe, 0xff, 0xff, //0x00002350 jle LBB0_468 + 0x44, 0x89, 0xd8, //0x00002356 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002359 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x2a, 0xfe, 0xff, 0xff, //0x0000235f jne LBB0_469 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002365 .p2align 4, 0x90 + //0x00002370 LBB0_491 + 0x48, 0x83, 0xf8, 0x01, //0x00002370 cmpq $1, %rax + 0x0f, 0x8e, 0x09, 0xfe, 0xff, 0xff, //0x00002374 jle LBB0_467 + 0x4c, 0x8d, 0x58, 0xff, //0x0000237a leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x0000237e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00002384 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002387 je LBB0_491 + 0xe9, 0xfd, 0xfd, 0xff, 0xff, //0x0000238d jmp LBB0_469 + //0x00002392 LBB0_493 + 0x0f, 0x8c, 0x5f, 0xfe, 0xff, 0xff, //0x00002392 jl LBB0_476 + 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00002398 jmp LBB0_477 + //0x0000239d LBB0_495 + 0x41, 0x89, 0xc0, //0x0000239d movl %eax, %r8d + 0xe9, 0x07, 0x02, 0x00, 0x00, //0x000023a0 jmp LBB0_525 + //0x000023a5 LBB0_496 + 0x44, 0x89, 0xde, //0x000023a5 movl %r11d, %esi + 0x44, 0x89, 0xd8, //0x000023a8 movl %r11d, %eax + 0x45, 0x85, 0xc0, //0x000023ab testl %r8d, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x000023ae movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x4e, 0xfd, 0xff, 0xff, //0x000023b2 je LBB0_456 + //0x000023b8 LBB0_497 + 0x44, 0x89, 0xc1, //0x000023b8 movl %r8d, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x000023bb imulq $104, %rcx, %rdx + 0x48, 0x8d, 0x3d, 0x7a, 0x3e, 0x00, 0x00, //0x000023bf leaq $15994(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3a, //0x000023c6 movl (%rdx,%rdi), %ebx + 0x4c, 0x63, 0xee, //0x000023c9 movslq %esi, %r13 + 0x8a, 0x44, 0x3a, 0x04, //0x000023cc movb $4(%rdx,%rdi), %al + 0x45, 0x85, 0xed, //0x000023d0 testl %r13d, %r13d + 0x4c, 0x89, 0x4d, 0xc8, //0x000023d3 movq %r9, $-56(%rbp) + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000023d7 je LBB0_502 + 0x48, 0x8d, 0x54, 0x3a, 0x05, //0x000023dd leaq $5(%rdx,%rdi), %rdx + 0x31, 0xff, //0x000023e2 xorl %edi, %edi + //0x000023e4 LBB0_499 + 0x84, 0xc0, //0x000023e4 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000023e6 je LBB0_504 + 0x41, 0x38, 0x04, 0x3c, //0x000023ec cmpb %al, (%r12,%rdi) + 0x0f, 0x85, 0x90, 0x01, 0x00, 0x00, //0x000023f0 jne LBB0_521 + 0x0f, 0xb6, 0x04, 0x3a, //0x000023f6 movzbl (%rdx,%rdi), %eax + 0x48, 0xff, 0xc7, //0x000023fa incq %rdi + 0x49, 0x39, 0xfd, //0x000023fd cmpq %rdi, %r13 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00002400 jne LBB0_499 + //0x00002406 LBB0_502 + 0x84, 0xc0, //0x00002406 testb %al, %al + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x00002408 je LBB0_504 + //0x0000240e LBB0_503 + 0xff, 0xcb, //0x0000240e decl %ebx + //0x00002410 LBB0_504 + 0x85, 0xf6, //0x00002410 testl %esi, %esi + 0x0f, 0x8e, 0xac, 0x00, 0x00, 0x00, //0x00002412 jle LBB0_512 + 0x89, 0x5d, 0x98, //0x00002418 movl %ebx, $-104(%rbp) + 0x01, 0xde, //0x0000241b addl %ebx, %esi + 0x48, 0x63, 0xc6, //0x0000241d movslq %esi, %rax + 0x49, 0x89, 0xc1, //0x00002420 movq %rax, %r9 + 0x49, 0xc1, 0xe1, 0x20, //0x00002423 shlq $32, %r9 + 0x48, 0xff, 0xc8, //0x00002427 decq %rax + 0x49, 0xff, 0xc5, //0x0000242a incq %r13 + 0x31, 0xf6, //0x0000242d xorl %esi, %esi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000242f jmp LBB0_508 + //0x00002434 LBB0_506 + 0x48, 0x85, 0xc0, //0x00002434 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002437 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x0000243c cmovnel %eax, %r14d + //0x00002440 LBB0_507 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002440 movabsq $-4294967296, %rax + 0x49, 0x01, 0xc1, //0x0000244a addq %rax, %r9 + 0x48, 0x8d, 0x47, 0xff, //0x0000244d leaq $-1(%rdi), %rax + 0x49, 0xff, 0xcd, //0x00002451 decq %r13 + 0x49, 0x83, 0xfd, 0x01, //0x00002454 cmpq $1, %r13 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x00002458 jle LBB0_510 + //0x0000245e LBB0_508 + 0x48, 0x89, 0xc7, //0x0000245e movq %rax, %rdi + 0x4b, 0x0f, 0xbe, 0x5c, 0x2c, 0xfe, //0x00002461 movsbq $-2(%r12,%r13), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x00002467 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x0000246b shlq %cl, %rbx + 0x48, 0x01, 0xf3, //0x0000246e addq %rsi, %rbx + 0x48, 0x89, 0xd8, //0x00002471 movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002474 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000247e mulq %rdx + 0x48, 0x89, 0xd6, //0x00002481 movq %rdx, %rsi + 0x48, 0xc1, 0xee, 0x03, //0x00002484 shrq $3, %rsi + 0x48, 0x8d, 0x04, 0x36, //0x00002488 leaq (%rsi,%rsi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x0000248c leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00002490 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002493 subq %rdx, %rax + 0x4c, 0x39, 0xff, //0x00002496 cmpq %r15, %rdi + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00002499 jae LBB0_506 + 0x04, 0x30, //0x0000249f addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x000024a1 movb %al, (%r12,%rdi) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x000024a5 jmp LBB0_507 + //0x000024aa LBB0_510 + 0x48, 0x83, 0xfb, 0x0a, //0x000024aa cmpq $10, %rbx + 0x4c, 0x8b, 0x6d, 0xd0, //0x000024ae movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x000024b2 movq $-56(%rbp), %r9 + 0x0f, 0x83, 0x15, 0x00, 0x00, 0x00, //0x000024b6 jae LBB0_513 + 0x8b, 0x5d, 0x98, //0x000024bc movl $-104(%rbp), %ebx + 0xe9, 0x78, 0x00, 0x00, 0x00, //0x000024bf jmp LBB0_517 + //0x000024c4 LBB0_512 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000024c4 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x000024c8 movq $-56(%rbp), %r9 + 0xe9, 0x6b, 0x00, 0x00, 0x00, //0x000024cc jmp LBB0_517 + //0x000024d1 LBB0_513 + 0x48, 0x63, 0xcf, //0x000024d1 movslq %edi, %rcx + 0x48, 0xff, 0xc9, //0x000024d4 decq %rcx + 0x8b, 0x5d, 0x98, //0x000024d7 movl $-104(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x000024da jmp LBB0_515 + //0x000024df LBB0_514 + 0x48, 0x85, 0xc0, //0x000024df testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000024e2 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000024e7 cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x000024eb decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x000024ee cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x000024f2 movq %rdx, %rsi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x000024f5 jbe LBB0_517 + //0x000024fb LBB0_515 + 0x48, 0x89, 0xf0, //0x000024fb movq %rsi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000024fe movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002508 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000250b shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x0000250f leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00002513 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xf0, //0x00002517 movq %rsi, %rax + 0x48, 0x29, 0xf8, //0x0000251a subq %rdi, %rax + 0x4c, 0x39, 0xf9, //0x0000251d cmpq %r15, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00002520 jae LBB0_514 + 0x04, 0x30, //0x00002526 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00002528 movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x0000252c decq %rcx + 0x48, 0x83, 0xfe, 0x09, //0x0000252f cmpq $9, %rsi + 0x48, 0x89, 0xd6, //0x00002533 movq %rdx, %rsi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002536 ja LBB0_515 + //0x0000253c LBB0_517 + 0x41, 0x01, 0xdb, //0x0000253c addl %ebx, %r11d + 0x4d, 0x63, 0xdb, //0x0000253f movslq %r11d, %r11 + 0x4d, 0x39, 0xdf, //0x00002542 cmpq %r11, %r15 + 0x45, 0x0f, 0x46, 0xdf, //0x00002545 cmovbel %r15d, %r11d + 0x41, 0x01, 0xd9, //0x00002549 addl %ebx, %r9d + 0x45, 0x85, 0xdb, //0x0000254c testl %r11d, %r11d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x0000254f jle LBB0_523 + 0x44, 0x89, 0xd8, //0x00002555 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002558 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x0000255e jne LBB0_524 + //0x00002564 LBB0_519 + 0x48, 0x83, 0xf8, 0x01, //0x00002564 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00002568 jle LBB0_522 + 0x4c, 0x8d, 0x58, 0xff, //0x0000256e leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002572 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00002578 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x0000257b je LBB0_519 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002581 jmp LBB0_524 + //0x00002586 LBB0_521 + 0x0f, 0x8c, 0x82, 0xfe, 0xff, 0xff, //0x00002586 jl LBB0_503 + 0xe9, 0x7f, 0xfe, 0xff, 0xff, //0x0000258c jmp LBB0_504 + //0x00002591 LBB0_522 + 0xff, 0xc8, //0x00002591 decl %eax + 0x41, 0x89, 0xc3, //0x00002593 movl %eax, %r11d + //0x00002596 LBB0_523 + 0x45, 0x85, 0xdb, //0x00002596 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x00002599 cmovel %r11d, %r9d + //0x0000259d LBB0_524 + 0x44, 0x89, 0xde, //0x0000259d movl %r11d, %esi + 0x44, 0x89, 0xd8, //0x000025a0 movl %r11d, %eax + 0x45, 0x85, 0xc0, //0x000025a3 testl %r8d, %r8d + 0x0f, 0x89, 0x5a, 0xfb, 0xff, 0xff, //0x000025a6 jns LBB0_456 + //0x000025ac LBB0_525 + 0x41, 0x83, 0xf8, 0xc3, //0x000025ac cmpl $-61, %r8d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x000025b0 jle LBB0_529 + 0xe9, 0x9e, 0x01, 0x00, 0x00, //0x000025b6 jmp LBB0_549 + //0x000025bb LBB0_526 + 0xff, 0xc9, //0x000025bb decl %ecx + 0x41, 0x89, 0xcb, //0x000025bd movl %ecx, %r11d + //0x000025c0 LBB0_527 + 0x45, 0x85, 0xdb, //0x000025c0 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x000025c3 cmovel %r11d, %r9d + //0x000025c7 LBB0_528 + 0x44, 0x8d, 0x40, 0x3c, //0x000025c7 leal $60(%rax), %r8d + 0x44, 0x89, 0xde, //0x000025cb movl %r11d, %esi + 0x83, 0xf8, 0x88, //0x000025ce cmpl $-120, %eax + 0x0f, 0x8d, 0x73, 0x01, 0x00, 0x00, //0x000025d1 jge LBB0_548 + //0x000025d7 LBB0_529 + 0x44, 0x89, 0xc0, //0x000025d7 movl %r8d, %eax + 0x48, 0x63, 0xfe, //0x000025da movslq %esi, %rdi + 0x31, 0xd2, //0x000025dd xorl %edx, %edx + 0x31, 0xc9, //0x000025df xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000025e1 .p2align 4, 0x90 + //0x000025f0 LBB0_530 + 0x48, 0x39, 0xfa, //0x000025f0 cmpq %rdi, %rdx + 0x0f, 0x8d, 0x23, 0x00, 0x00, 0x00, //0x000025f3 jge LBB0_532 + 0x48, 0x8d, 0x0c, 0x89, //0x000025f9 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x000025fd movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00002602 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc2, //0x00002607 incq %rdx + 0x49, 0x8d, 0x5a, 0x01, //0x0000260a leaq $1(%r10), %rbx + 0x48, 0x39, 0xd9, //0x0000260e cmpq %rbx, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00002611 jb LBB0_530 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00002617 jmp LBB0_534 + //0x0000261c LBB0_532 + 0x48, 0x85, 0xc9, //0x0000261c testq %rcx, %rcx + 0x0f, 0x84, 0x1d, 0x01, 0x00, 0x00, //0x0000261f je LBB0_547 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002625 .p2align 4, 0x90 + //0x00002630 LBB0_533 + 0x48, 0x01, 0xc9, //0x00002630 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002633 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc2, //0x00002637 incl %edx + 0x49, 0x8d, 0x7a, 0x01, //0x00002639 leaq $1(%r10), %rdi + 0x48, 0x39, 0xf9, //0x0000263d cmpq %rdi, %rcx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00002640 jb LBB0_533 + //0x00002646 LBB0_534 + 0x41, 0x29, 0xd1, //0x00002646 subl %edx, %r9d + 0x31, 0xff, //0x00002649 xorl %edi, %edi + 0x39, 0xf2, //0x0000264b cmpl %esi, %edx + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x0000264d jge LBB0_539 + 0x48, 0x63, 0xd2, //0x00002653 movslq %edx, %rdx + 0x49, 0x63, 0xf3, //0x00002656 movslq %r11d, %rsi + 0x49, 0x8d, 0x3c, 0x14, //0x00002659 leaq (%r12,%rdx), %rdi + 0x45, 0x31, 0xdb, //0x0000265d xorl %r11d, %r11d + //0x00002660 .p2align 4, 0x90 + //0x00002660 LBB0_536 + 0x48, 0x89, 0xcb, //0x00002660 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00002663 shrq $60, %rbx + 0x4c, 0x21, 0xd1, //0x00002667 andq %r10, %rcx + 0x80, 0xcb, 0x30, //0x0000266a orb $48, %bl + 0x43, 0x88, 0x1c, 0x1c, //0x0000266d movb %bl, (%r12,%r11) + 0x48, 0x8d, 0x0c, 0x89, //0x00002671 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x1c, 0x1f, //0x00002675 movsbq (%rdi,%r11), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x0000267a leaq $-48(%rbx,%rcx,2), %rcx + 0x4a, 0x8d, 0x5c, 0x1a, 0x01, //0x0000267f leaq $1(%rdx,%r11), %rbx + 0x49, 0xff, 0xc3, //0x00002684 incq %r11 + 0x48, 0x39, 0xf3, //0x00002687 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x0000268a jl LBB0_536 + 0x48, 0x85, 0xc9, //0x00002690 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x00002693 je LBB0_543 + 0x44, 0x89, 0xdf, //0x00002699 movl %r11d, %edi + //0x0000269c LBB0_539 + 0x41, 0x89, 0xfb, //0x0000269c movl %edi, %r11d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x0000269f jmp LBB0_541 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026a4 .p2align 4, 0x90 + //0x000026b0 LBB0_540 + 0x48, 0x85, 0xd2, //0x000026b0 testq %rdx, %rdx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000026b3 movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x000026b8 cmovnel %edx, %r14d + 0x48, 0x01, 0xc9, //0x000026bc addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000026bf leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000026c3 testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x000026c6 je LBB0_543 + //0x000026cc LBB0_541 + 0x48, 0x89, 0xca, //0x000026cc movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x000026cf shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x000026d3 andq %r10, %rcx + 0x49, 0x63, 0xf3, //0x000026d6 movslq %r11d, %rsi + 0x49, 0x39, 0xf7, //0x000026d9 cmpq %rsi, %r15 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x000026dc jbe LBB0_540 + 0x80, 0xca, 0x30, //0x000026e2 orb $48, %dl + 0x41, 0x88, 0x14, 0x34, //0x000026e5 movb %dl, (%r12,%rsi) + 0xff, 0xc6, //0x000026e9 incl %esi + 0x41, 0x89, 0xf3, //0x000026eb movl %esi, %r11d + 0x48, 0x01, 0xc9, //0x000026ee addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000026f1 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000026f5 testq %rcx, %rcx + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x000026f8 jne LBB0_541 + //0x000026fe LBB0_543 + 0x41, 0xff, 0xc1, //0x000026fe incl %r9d + 0x45, 0x85, 0xdb, //0x00002701 testl %r11d, %r11d + 0x0f, 0x8e, 0xb6, 0xfe, 0xff, 0xff, //0x00002704 jle LBB0_527 + 0x44, 0x89, 0xd9, //0x0000270a movl %r11d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x0000270d cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xae, 0xfe, 0xff, 0xff, //0x00002713 jne LBB0_528 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002719 .p2align 4, 0x90 + //0x00002720 LBB0_545 + 0x48, 0x83, 0xf9, 0x01, //0x00002720 cmpq $1, %rcx + 0x0f, 0x8e, 0x91, 0xfe, 0xff, 0xff, //0x00002724 jle LBB0_526 + 0x4c, 0x8d, 0x59, 0xff, //0x0000272a leaq $-1(%rcx), %r11 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x0000272e cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xd9, //0x00002734 movq %r11, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002737 je LBB0_545 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x0000273d jmp LBB0_528 + //0x00002742 LBB0_547 + 0x45, 0x31, 0xdb, //0x00002742 xorl %r11d, %r11d + 0xe9, 0x7d, 0xfe, 0xff, 0xff, //0x00002745 jmp LBB0_528 + //0x0000274a LBB0_548 + 0x44, 0x89, 0xde, //0x0000274a movl %r11d, %esi + 0x44, 0x89, 0xd8, //0x0000274d movl %r11d, %eax + 0x45, 0x85, 0xc0, //0x00002750 testl %r8d, %r8d + 0x0f, 0x84, 0xad, 0xf9, 0xff, 0xff, //0x00002753 je LBB0_456 + //0x00002759 LBB0_549 + 0x41, 0xf7, 0xd8, //0x00002759 negl %r8d + 0x48, 0x63, 0xfe, //0x0000275c movslq %esi, %rdi + 0x31, 0xd2, //0x0000275f xorl %edx, %edx + 0x31, 0xc0, //0x00002761 xorl %eax, %eax + //0x00002763 LBB0_550 + 0x48, 0x39, 0xfa, //0x00002763 cmpq %rdi, %rdx + 0x0f, 0x8d, 0x28, 0x00, 0x00, 0x00, //0x00002766 jge LBB0_552 + 0x48, 0x8d, 0x04, 0x80, //0x0000276c leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x14, //0x00002770 movsbq (%r12,%rdx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00002775 leaq $-48(%rcx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x0000277a incq %rdx + 0x48, 0x89, 0xc3, //0x0000277d movq %rax, %rbx + 0x44, 0x89, 0xc1, //0x00002780 movl %r8d, %ecx + 0x48, 0xd3, 0xeb, //0x00002783 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00002786 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00002789 je LBB0_550 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000278f jmp LBB0_556 + //0x00002794 LBB0_552 + 0x48, 0x85, 0xc0, //0x00002794 testq %rax, %rax + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00002797 jne LBB0_555 + 0x45, 0x31, 0xdb, //0x0000279d xorl %r11d, %r11d + 0x31, 0xc0, //0x000027a0 xorl %eax, %eax + 0xe9, 0x5f, 0xf9, 0xff, 0xff, //0x000027a2 jmp LBB0_456 + //0x000027a7 LBB0_554 + 0x48, 0x01, 0xc0, //0x000027a7 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000027aa leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x000027ae incl %edx + //0x000027b0 LBB0_555 + 0x48, 0x89, 0xc7, //0x000027b0 movq %rax, %rdi + 0x44, 0x89, 0xc1, //0x000027b3 movl %r8d, %ecx + 0x48, 0xd3, 0xef, //0x000027b6 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x000027b9 testq %rdi, %rdi + 0x0f, 0x84, 0xe5, 0xff, 0xff, 0xff, //0x000027bc je LBB0_554 + //0x000027c2 LBB0_556 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000027c2 movq $-1, %rbx + 0x44, 0x89, 0xc1, //0x000027c9 movl %r8d, %ecx + 0x48, 0xd3, 0xe3, //0x000027cc shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x000027cf notq %rbx + 0x31, 0xff, //0x000027d2 xorl %edi, %edi + 0x39, 0xf2, //0x000027d4 cmpl %esi, %edx + 0x0f, 0x8d, 0x4b, 0x00, 0x00, 0x00, //0x000027d6 jge LBB0_560 + 0x4c, 0x89, 0x4d, 0xc8, //0x000027dc movq %r9, $-56(%rbp) + 0x4c, 0x63, 0xea, //0x000027e0 movslq %edx, %r13 + 0x4d, 0x63, 0xcb, //0x000027e3 movslq %r11d, %r9 + 0x4f, 0x8d, 0x1c, 0x2c, //0x000027e6 leaq (%r12,%r13), %r11 + 0x31, 0xff, //0x000027ea xorl %edi, %edi + //0x000027ec LBB0_558 + 0x48, 0x89, 0xc6, //0x000027ec movq %rax, %rsi + 0x44, 0x89, 0xc1, //0x000027ef movl %r8d, %ecx + 0x48, 0xd3, 0xee, //0x000027f2 shrq %cl, %rsi + 0x48, 0x21, 0xd8, //0x000027f5 andq %rbx, %rax + 0x40, 0x80, 0xc6, 0x30, //0x000027f8 addb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x000027fc movb %sil, (%r12,%rdi) + 0x48, 0x8d, 0x04, 0x80, //0x00002800 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x3b, //0x00002804 movsbq (%r11,%rdi), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00002809 leaq $-48(%rcx,%rax,2), %rax + 0x49, 0x8d, 0x4c, 0x3d, 0x01, //0x0000280e leaq $1(%r13,%rdi), %rcx + 0x48, 0xff, 0xc7, //0x00002813 incq %rdi + 0x4c, 0x39, 0xc9, //0x00002816 cmpq %r9, %rcx + 0x0f, 0x8c, 0xcd, 0xff, 0xff, 0xff, //0x00002819 jl LBB0_558 + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000281f movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x4d, 0xc8, //0x00002823 movq $-56(%rbp), %r9 + //0x00002827 LBB0_560 + 0x41, 0x29, 0xd1, //0x00002827 subl %edx, %r9d + 0x41, 0x89, 0xfb, //0x0000282a movl %edi, %r11d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x0000282d jmp LBB0_563 + //0x00002832 LBB0_561 + 0x48, 0x85, 0xd2, //0x00002832 testq %rdx, %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00002835 movl $1, %ecx + 0x44, 0x0f, 0x45, 0xf1, //0x0000283a cmovnel %ecx, %r14d + //0x0000283e LBB0_562 + 0x48, 0x01, 0xc0, //0x0000283e addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002841 leaq (%rax,%rax,4), %rax + //0x00002845 LBB0_563 + 0x48, 0x85, 0xc0, //0x00002845 testq %rax, %rax + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00002848 je LBB0_566 + 0x48, 0x89, 0xc2, //0x0000284e movq %rax, %rdx + 0x44, 0x89, 0xc1, //0x00002851 movl %r8d, %ecx + 0x48, 0xd3, 0xea, //0x00002854 shrq %cl, %rdx + 0x48, 0x21, 0xd8, //0x00002857 andq %rbx, %rax + 0x49, 0x63, 0xcb, //0x0000285a movslq %r11d, %rcx + 0x49, 0x39, 0xcf, //0x0000285d cmpq %rcx, %r15 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00002860 jbe LBB0_561 + 0x80, 0xc2, 0x30, //0x00002866 addb $48, %dl + 0x41, 0x88, 0x14, 0x0c, //0x00002869 movb %dl, (%r12,%rcx) + 0xff, 0xc1, //0x0000286d incl %ecx + 0x41, 0x89, 0xcb, //0x0000286f movl %ecx, %r11d + 0xe9, 0xc7, 0xff, 0xff, 0xff, //0x00002872 jmp LBB0_562 + //0x00002877 LBB0_566 + 0x41, 0xff, 0xc1, //0x00002877 incl %r9d + 0x45, 0x85, 0xdb, //0x0000287a testl %r11d, %r11d + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x0000287d jle LBB0_571 + 0x44, 0x89, 0xd8, //0x00002883 movl %r11d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002886 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x0000288c jne LBB0_572 + //0x00002892 LBB0_568 + 0x48, 0x83, 0xf8, 0x01, //0x00002892 cmpq $1, %rax + 0x0f, 0x8e, 0x18, 0x00, 0x00, 0x00, //0x00002896 jle LBB0_570 + 0x4c, 0x8d, 0x58, 0xff, //0x0000289c leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x000028a0 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x000028a6 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000028a9 je LBB0_568 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000028af jmp LBB0_572 + //0x000028b4 LBB0_570 + 0xff, 0xc8, //0x000028b4 decl %eax + 0x41, 0x89, 0xc3, //0x000028b6 movl %eax, %r11d + //0x000028b9 LBB0_571 + 0x45, 0x85, 0xdb, //0x000028b9 testl %r11d, %r11d + 0x45, 0x0f, 0x44, 0xcb, //0x000028bc cmovel %r11d, %r9d + //0x000028c0 LBB0_572 + 0x44, 0x89, 0xd8, //0x000028c0 movl %r11d, %eax + 0xe9, 0x3e, 0xf8, 0xff, 0xff, //0x000028c3 jmp LBB0_456 + //0x000028c8 LBB0_573 + 0x81, 0xff, 0x02, 0xfc, 0xff, 0xff, //0x000028c8 cmpl $-1022, %edi + 0x4c, 0x89, 0x4d, 0xc8, //0x000028ce movq %r9, $-56(%rbp) + 0x0f, 0x8f, 0x9c, 0x01, 0x00, 0x00, //0x000028d2 jg LBB0_599 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x000028d8 movl $-1022, %r9d + 0x85, 0xf6, //0x000028de testl %esi, %esi + 0x0f, 0x84, 0xb5, 0x01, 0x00, 0x00, //0x000028e0 je LBB0_602 + 0x8d, 0x8f, 0xfd, 0x03, 0x00, 0x00, //0x000028e6 leal $1021(%rdi), %ecx + 0x81, 0xff, 0xc6, 0xfb, 0xff, 0xff, //0x000028ec cmpl $-1082, %edi + 0x0f, 0x8f, 0xb5, 0x01, 0x00, 0x00, //0x000028f2 jg LBB0_605 + 0x49, 0x8d, 0x42, 0x01, //0x000028f8 leaq $1(%r10), %rax + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x000028fc movl $1, %r13d + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002902 jmp LBB0_580 + //0x00002907 LBB0_577 + 0xff, 0xc9, //0x00002907 decl %ecx + 0x41, 0x89, 0xcb, //0x00002909 movl %ecx, %r11d + //0x0000290c LBB0_578 + 0x45, 0x85, 0xdb, //0x0000290c testl %r11d, %r11d + 0x48, 0x8b, 0x4d, 0xc8, //0x0000290f movq $-56(%rbp), %rcx + 0x41, 0x0f, 0x44, 0xcb, //0x00002913 cmovel %r11d, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002917 movq %rcx, $-56(%rbp) + //0x0000291b LBB0_579 + 0x41, 0x8d, 0x48, 0x3c, //0x0000291b leal $60(%r8), %ecx + 0x44, 0x89, 0xde, //0x0000291f movl %r11d, %esi + 0x41, 0x83, 0xf8, 0x88, //0x00002922 cmpl $-120, %r8d + 0x0f, 0x8d, 0x76, 0x01, 0x00, 0x00, //0x00002926 jge LBB0_603 + //0x0000292c LBB0_580 + 0x41, 0x89, 0xc8, //0x0000292c movl %ecx, %r8d + 0x48, 0x63, 0xde, //0x0000292f movslq %esi, %rbx + 0x31, 0xff, //0x00002932 xorl %edi, %edi + 0x31, 0xc9, //0x00002934 xorl %ecx, %ecx + //0x00002936 LBB0_581 + 0x48, 0x39, 0xdf, //0x00002936 cmpq %rbx, %rdi + 0x0f, 0x8d, 0x1f, 0x00, 0x00, 0x00, //0x00002939 jge LBB0_583 + 0x48, 0x8d, 0x0c, 0x89, //0x0000293f leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x3c, //0x00002943 movsbq (%r12,%rdi), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00002948 leaq $-48(%rdx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x0000294d incq %rdi + 0x48, 0x39, 0xc1, //0x00002950 cmpq %rax, %rcx + 0x0f, 0x82, 0xdd, 0xff, 0xff, 0xff, //0x00002953 jb LBB0_581 + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00002959 jmp LBB0_585 + //0x0000295e LBB0_583 + 0x48, 0x85, 0xc9, //0x0000295e testq %rcx, %rcx + 0x0f, 0x84, 0x05, 0x01, 0x00, 0x00, //0x00002961 je LBB0_598 + //0x00002967 LBB0_584 + 0x48, 0x01, 0xc9, //0x00002967 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x0000296a leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc7, //0x0000296e incl %edi + 0x48, 0x39, 0xc1, //0x00002970 cmpq %rax, %rcx + 0x0f, 0x82, 0xee, 0xff, 0xff, 0xff, //0x00002973 jb LBB0_584 + //0x00002979 LBB0_585 + 0x48, 0x8b, 0x55, 0xc8, //0x00002979 movq $-56(%rbp), %rdx + 0x29, 0xfa, //0x0000297d subl %edi, %edx + 0x48, 0x89, 0x55, 0xc8, //0x0000297f movq %rdx, $-56(%rbp) + 0x31, 0xdb, //0x00002983 xorl %ebx, %ebx + 0x39, 0xf7, //0x00002985 cmpl %esi, %edi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00002987 jge LBB0_590 + 0x48, 0x63, 0xf7, //0x0000298d movslq %edi, %rsi + 0x49, 0x63, 0xfb, //0x00002990 movslq %r11d, %rdi + 0x49, 0x8d, 0x1c, 0x34, //0x00002993 leaq (%r12,%rsi), %rbx + 0x45, 0x31, 0xdb, //0x00002997 xorl %r11d, %r11d + //0x0000299a LBB0_587 + 0x48, 0x89, 0xca, //0x0000299a movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x0000299d shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x000029a1 andq %r10, %rcx + 0x80, 0xca, 0x30, //0x000029a4 orb $48, %dl + 0x43, 0x88, 0x14, 0x1c, //0x000029a7 movb %dl, (%r12,%r11) + 0x48, 0x8d, 0x0c, 0x89, //0x000029ab leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x14, 0x1b, //0x000029af movsbq (%rbx,%r11), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x000029b4 leaq $-48(%rdx,%rcx,2), %rcx + 0x4a, 0x8d, 0x54, 0x1e, 0x01, //0x000029b9 leaq $1(%rsi,%r11), %rdx + 0x49, 0xff, 0xc3, //0x000029be incq %r11 + 0x48, 0x39, 0xfa, //0x000029c1 cmpq %rdi, %rdx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x000029c4 jl LBB0_587 + 0x48, 0x85, 0xc9, //0x000029ca testq %rcx, %rcx + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x000029cd je LBB0_594 + 0x44, 0x89, 0xdb, //0x000029d3 movl %r11d, %ebx + //0x000029d6 LBB0_590 + 0x41, 0x89, 0xdb, //0x000029d6 movl %ebx, %r11d + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000029d9 jmp LBB0_592 + //0x000029de LBB0_591 + 0x48, 0x85, 0xf6, //0x000029de testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf5, //0x000029e1 cmovnel %r13d, %r14d + 0x48, 0x01, 0xc9, //0x000029e5 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000029e8 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x000029ec testq %rcx, %rcx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000029ef je LBB0_594 + //0x000029f5 LBB0_592 + 0x48, 0x89, 0xce, //0x000029f5 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x3c, //0x000029f8 shrq $60, %rsi + 0x4c, 0x21, 0xd1, //0x000029fc andq %r10, %rcx + 0x49, 0x63, 0xfb, //0x000029ff movslq %r11d, %rdi + 0x49, 0x39, 0xff, //0x00002a02 cmpq %rdi, %r15 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00002a05 jbe LBB0_591 + 0x40, 0x80, 0xce, 0x30, //0x00002a0b orb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00002a0f movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00002a13 incl %edi + 0x41, 0x89, 0xfb, //0x00002a15 movl %edi, %r11d + 0x48, 0x01, 0xc9, //0x00002a18 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002a1b leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00002a1f testq %rcx, %rcx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00002a22 jne LBB0_592 + //0x00002a28 LBB0_594 + 0x48, 0x8b, 0x4d, 0xc8, //0x00002a28 movq $-56(%rbp), %rcx + 0xff, 0xc1, //0x00002a2c incl %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002a2e movq %rcx, $-56(%rbp) + 0x45, 0x85, 0xdb, //0x00002a32 testl %r11d, %r11d + 0x0f, 0x8e, 0xd1, 0xfe, 0xff, 0xff, //0x00002a35 jle LBB0_578 + 0x44, 0x89, 0xd9, //0x00002a3b movl %r11d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00002a3e cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xd1, 0xfe, 0xff, 0xff, //0x00002a44 jne LBB0_579 + //0x00002a4a LBB0_596 + 0x48, 0x83, 0xf9, 0x01, //0x00002a4a cmpq $1, %rcx + 0x0f, 0x8e, 0xb3, 0xfe, 0xff, 0xff, //0x00002a4e jle LBB0_577 + 0x4c, 0x8d, 0x59, 0xff, //0x00002a54 leaq $-1(%rcx), %r11 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00002a58 cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xd9, //0x00002a5e movq %r11, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002a61 je LBB0_596 + 0xe9, 0xaf, 0xfe, 0xff, 0xff, //0x00002a67 jmp LBB0_579 + //0x00002a6c LBB0_598 + 0x45, 0x31, 0xdb, //0x00002a6c xorl %r11d, %r11d + 0xe9, 0xa7, 0xfe, 0xff, 0xff, //0x00002a6f jmp LBB0_579 + //0x00002a74 LBB0_599 + 0x81, 0xff, 0x00, 0x04, 0x00, 0x00, //0x00002a74 cmpl $1024, %edi + 0x0f, 0x8e, 0x11, 0x00, 0x00, 0x00, //0x00002a7a jle LBB0_601 + 0x31, 0xff, //0x00002a80 xorl %edi, %edi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002a82 movabsq $9218868437227405312, %r9 + 0xe9, 0xd4, 0x04, 0x00, 0x00, //0x00002a8c jmp LBB0_688 + //0x00002a91 LBB0_601 + 0xff, 0xcf, //0x00002a91 decl %edi + 0x41, 0x89, 0xf9, //0x00002a93 movl %edi, %r9d + 0xe9, 0x87, 0x01, 0x00, 0x00, //0x00002a96 jmp LBB0_621 + //0x00002a9b LBB0_602 + 0x31, 0xc0, //0x00002a9b xorl %eax, %eax + 0xe9, 0x72, 0x03, 0x00, 0x00, //0x00002a9d jmp LBB0_662 + //0x00002aa2 LBB0_603 + 0x85, 0xc9, //0x00002aa2 testl %ecx, %ecx + 0x0f, 0x84, 0x6f, 0x01, 0x00, 0x00, //0x00002aa4 je LBB0_620 + 0x44, 0x89, 0xde, //0x00002aaa movl %r11d, %esi + //0x00002aad LBB0_605 + 0xf7, 0xd9, //0x00002aad negl %ecx + 0x48, 0x63, 0xfe, //0x00002aaf movslq %esi, %rdi + 0x31, 0xd2, //0x00002ab2 xorl %edx, %edx + 0x31, 0xc0, //0x00002ab4 xorl %eax, %eax + //0x00002ab6 LBB0_606 + 0x48, 0x39, 0xfa, //0x00002ab6 cmpq %rdi, %rdx + 0x0f, 0x8d, 0x25, 0x00, 0x00, 0x00, //0x00002ab9 jge LBB0_623 + 0x48, 0x8d, 0x04, 0x80, //0x00002abf leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x00002ac3 movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x44, 0x43, 0xd0, //0x00002ac8 leaq $-48(%rbx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00002acd incq %rdx + 0x48, 0x89, 0xc3, //0x00002ad0 movq %rax, %rbx + 0x48, 0xd3, 0xeb, //0x00002ad3 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00002ad6 testq %rbx, %rbx + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00002ad9 je LBB0_606 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00002adf jmp LBB0_608 + //0x00002ae4 LBB0_623 + 0x48, 0x85, 0xc0, //0x00002ae4 testq %rax, %rax + 0x0f, 0x84, 0x45, 0x01, 0x00, 0x00, //0x00002ae7 je LBB0_626 + 0x48, 0x89, 0xc7, //0x00002aed movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002af0 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00002af3 testq %rdi, %rdi + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002af6 jne LBB0_608 + //0x00002afc LBB0_625 + 0x48, 0x01, 0xc0, //0x00002afc addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002aff leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00002b03 incl %edx + 0x48, 0x89, 0xc7, //0x00002b05 movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00002b08 shrq %cl, %rdi + 0x48, 0x85, 0xff, //0x00002b0b testq %rdi, %rdi + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00002b0e je LBB0_625 + //0x00002b14 LBB0_608 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00002b14 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x00002b1b shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x00002b1e notq %rbx + 0x45, 0x31, 0xc0, //0x00002b21 xorl %r8d, %r8d + 0x39, 0xf2, //0x00002b24 cmpl %esi, %edx + 0x0f, 0x8d, 0x3d, 0x00, 0x00, 0x00, //0x00002b26 jge LBB0_611 + 0x4c, 0x63, 0xd2, //0x00002b2c movslq %edx, %r10 + 0x4d, 0x63, 0xcb, //0x00002b2f movslq %r11d, %r9 + 0x4b, 0x8d, 0x3c, 0x14, //0x00002b32 leaq (%r12,%r10), %rdi + 0x45, 0x31, 0xc0, //0x00002b36 xorl %r8d, %r8d + //0x00002b39 LBB0_610 + 0x48, 0x89, 0xc6, //0x00002b39 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00002b3c shrq %cl, %rsi + 0x48, 0x21, 0xd8, //0x00002b3f andq %rbx, %rax + 0x40, 0x80, 0xc6, 0x30, //0x00002b42 addb $48, %sil + 0x43, 0x88, 0x34, 0x04, //0x00002b46 movb %sil, (%r12,%r8) + 0x48, 0x8d, 0x04, 0x80, //0x00002b4a leaq (%rax,%rax,4), %rax + 0x4a, 0x0f, 0xbe, 0x34, 0x07, //0x00002b4e movsbq (%rdi,%r8), %rsi + 0x48, 0x8d, 0x44, 0x46, 0xd0, //0x00002b53 leaq $-48(%rsi,%rax,2), %rax + 0x4b, 0x8d, 0x74, 0x02, 0x01, //0x00002b58 leaq $1(%r10,%r8), %rsi + 0x49, 0xff, 0xc0, //0x00002b5d incq %r8 + 0x4c, 0x39, 0xce, //0x00002b60 cmpq %r9, %rsi + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00002b63 jl LBB0_610 + //0x00002b69 LBB0_611 + 0x48, 0x8b, 0x75, 0xc8, //0x00002b69 movq $-56(%rbp), %rsi + 0x29, 0xd6, //0x00002b6d subl %edx, %esi + 0x48, 0x89, 0x75, 0xc8, //0x00002b6f movq %rsi, $-56(%rbp) + 0x48, 0x85, 0xc0, //0x00002b73 testq %rax, %rax + 0x0f, 0x84, 0x58, 0x00, 0x00, 0x00, //0x00002b76 je LBB0_616 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00002b7c movl $1, %r9d + 0x48, 0x8b, 0x55, 0xa8, //0x00002b82 movq $-88(%rbp), %rdx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002b86 jmp LBB0_614 + //0x00002b8b LBB0_613 + 0x48, 0x85, 0xf6, //0x00002b8b testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf1, //0x00002b8e cmovnel %r9d, %r14d + 0x48, 0x01, 0xc0, //0x00002b92 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002b95 leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00002b99 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00002b9c je LBB0_616 + //0x00002ba2 LBB0_614 + 0x48, 0x89, 0xc6, //0x00002ba2 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00002ba5 shrq %cl, %rsi + 0x48, 0x21, 0xd8, //0x00002ba8 andq %rbx, %rax + 0x49, 0x63, 0xf8, //0x00002bab movslq %r8d, %rdi + 0x48, 0x39, 0xfa, //0x00002bae cmpq %rdi, %rdx + 0x0f, 0x86, 0xd4, 0xff, 0xff, 0xff, //0x00002bb1 jbe LBB0_613 + 0x40, 0x80, 0xc6, 0x30, //0x00002bb7 addb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00002bbb movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00002bbf incl %edi + 0x41, 0x89, 0xf8, //0x00002bc1 movl %edi, %r8d + 0x48, 0x01, 0xc0, //0x00002bc4 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00002bc7 leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00002bcb testq %rax, %rax + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002bce jne LBB0_614 + //0x00002bd4 LBB0_616 + 0x48, 0x8b, 0x45, 0xc8, //0x00002bd4 movq $-56(%rbp), %rax + 0xff, 0xc0, //0x00002bd8 incl %eax + 0x48, 0x89, 0x45, 0xc8, //0x00002bda movq %rax, $-56(%rbp) + 0x45, 0x85, 0xc0, //0x00002bde testl %r8d, %r8d + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002be1 jle LBB0_634 + 0x44, 0x89, 0xc0, //0x00002be7 movl %r8d, %eax + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00002bea movl $-1022, %r9d + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00002bf0 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x51, 0x00, 0x00, 0x00, //0x00002bf6 jne LBB0_635 + //0x00002bfc LBB0_618 + 0x48, 0x83, 0xf8, 0x01, //0x00002bfc cmpq $1, %rax + 0x0f, 0x8e, 0x33, 0x00, 0x00, 0x00, //0x00002c00 jle LBB0_633 + 0x4c, 0x8d, 0x58, 0xff, //0x00002c06 leaq $-1(%rax), %r11 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00002c0a cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xd8, //0x00002c10 movq %r11, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002c13 je LBB0_618 + //0x00002c19 LBB0_620 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00002c19 movl $-1022, %r9d + 0x44, 0x89, 0xde, //0x00002c1f movl %r11d, %esi + //0x00002c22 LBB0_621 + 0x85, 0xf6, //0x00002c22 testl %esi, %esi + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x00002c24 je LBB0_626 + 0x45, 0x89, 0xd8, //0x00002c2a movl %r11d, %r8d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00002c2d jmp LBB0_636 + //0x00002c32 LBB0_626 + 0x31, 0xc0, //0x00002c32 xorl %eax, %eax + 0xe9, 0xd7, 0x01, 0x00, 0x00, //0x00002c34 jmp LBB0_661 + //0x00002c39 LBB0_633 + 0xff, 0xc8, //0x00002c39 decl %eax + 0x41, 0x89, 0xc0, //0x00002c3b movl %eax, %r8d + //0x00002c3e LBB0_634 + 0x41, 0xb9, 0x02, 0xfc, 0xff, 0xff, //0x00002c3e movl $-1022, %r9d + 0x45, 0x85, 0xc0, //0x00002c44 testl %r8d, %r8d + 0x0f, 0x84, 0xd1, 0x02, 0x00, 0x00, //0x00002c47 je LBB0_683 + //0x00002c4d LBB0_635 + 0x44, 0x89, 0xc6, //0x00002c4d movl %r8d, %esi + //0x00002c50 LBB0_636 + 0x4c, 0x63, 0xee, //0x00002c50 movslq %esi, %r13 + 0xb1, 0x31, //0x00002c53 movb $49, %cl + 0x31, 0xc0, //0x00002c55 xorl %eax, %eax + 0x41, 0xba, 0x10, 0x00, 0x00, 0x00, //0x00002c57 movl $16, %r10d + //0x00002c5d LBB0_637 + 0x48, 0x83, 0xf8, 0x26, //0x00002c5d cmpq $38, %rax + 0x0f, 0x84, 0x36, 0x00, 0x00, 0x00, //0x00002c61 je LBB0_641 + 0x41, 0x38, 0x0c, 0x04, //0x00002c67 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00002c6b jne LBB0_642 + 0x48, 0x8d, 0x0d, 0xc8, 0x35, 0x00, 0x00, //0x00002c71 leaq $13768(%rip), %rcx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0xb6, 0x8c, 0x08, 0x8d, 0x15, 0x00, 0x00, //0x00002c78 movzbl $5517(%rax,%rcx), %ecx + 0x48, 0xff, 0xc0, //0x00002c80 incq %rax + 0x49, 0x39, 0xc5, //0x00002c83 cmpq %rax, %r13 + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00002c86 jne LBB0_637 + 0x84, 0xc9, //0x00002c8c testb %cl, %cl + 0x4c, 0x8b, 0x7d, 0xa8, //0x00002c8e movq $-88(%rbp), %r15 + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002c92 jne LBB0_643 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00002c98 jmp LBB0_644 + //0x00002c9d LBB0_641 + 0x4c, 0x8b, 0x7d, 0xa8, //0x00002c9d movq $-88(%rbp), %r15 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00002ca1 jmp LBB0_644 + //0x00002ca6 LBB0_642 + 0x4c, 0x8b, 0x7d, 0xa8, //0x00002ca6 movq $-88(%rbp), %r15 + 0x0f, 0x8d, 0x06, 0x00, 0x00, 0x00, //0x00002caa jge LBB0_644 + //0x00002cb0 LBB0_643 + 0x41, 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00002cb0 movl $15, %r10d + //0x00002cb6 LBB0_644 + 0x85, 0xf6, //0x00002cb6 testl %esi, %esi + 0x0f, 0x8e, 0xf6, 0x00, 0x00, 0x00, //0x00002cb8 jle LBB0_655 + 0x44, 0x01, 0xd6, //0x00002cbe addl %r10d, %esi + 0x48, 0x63, 0xfe, //0x00002cc1 movslq %esi, %rdi + 0x48, 0xff, 0xcf, //0x00002cc4 decq %rdi + 0x49, 0xff, 0xc5, //0x00002cc7 incq %r13 + 0x31, 0xc9, //0x00002cca xorl %ecx, %ecx + 0x49, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00002ccc movabsq $-432345564227567616, %r11 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00002cd6 jmp LBB0_648 + //0x00002cdb LBB0_646 + 0x48, 0x85, 0xc0, //0x00002cdb testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00002cde movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00002ce3 cmovnel %eax, %r14d + //0x00002ce7 LBB0_647 + 0xff, 0xce, //0x00002ce7 decl %esi + 0x48, 0xff, 0xcf, //0x00002ce9 decq %rdi + 0x49, 0xff, 0xcd, //0x00002cec decq %r13 + 0x49, 0x83, 0xfd, 0x01, //0x00002cef cmpq $1, %r13 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002cf3 jle LBB0_650 + //0x00002cf9 LBB0_648 + 0x4b, 0x0f, 0xbe, 0x5c, 0x2c, 0xfe, //0x00002cf9 movsbq $-2(%r12,%r13), %rbx + 0x48, 0xc1, 0xe3, 0x35, //0x00002cff shlq $53, %rbx + 0x48, 0x01, 0xcb, //0x00002d03 addq %rcx, %rbx + 0x4c, 0x01, 0xdb, //0x00002d06 addq %r11, %rbx + 0x48, 0x89, 0xd8, //0x00002d09 movq %rbx, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002d0c movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00002d16 mulq %rcx + 0x48, 0x89, 0xd1, //0x00002d19 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00002d1c shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00002d20 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00002d24 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00002d28 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002d2b subq %rdx, %rax + 0x4c, 0x39, 0xff, //0x00002d2e cmpq %r15, %rdi + 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x00002d31 jae LBB0_646 + 0x04, 0x30, //0x00002d37 addb $48, %al + 0x41, 0x88, 0x04, 0x3c, //0x00002d39 movb %al, (%r12,%rdi) + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00002d3d jmp LBB0_647 + //0x00002d42 LBB0_650 + 0x48, 0x83, 0xfb, 0x0a, //0x00002d42 cmpq $10, %rbx + 0x0f, 0x82, 0x68, 0x00, 0x00, 0x00, //0x00002d46 jb LBB0_655 + 0x48, 0x63, 0xf6, //0x00002d4c movslq %esi, %rsi + 0x48, 0xff, 0xce, //0x00002d4f decq %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00002d52 movl $1, %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002d57 jmp LBB0_653 + //0x00002d5c LBB0_652 + 0x48, 0x85, 0xc0, //0x00002d5c testq %rax, %rax + 0x44, 0x0f, 0x45, 0xf7, //0x00002d5f cmovnel %edi, %r14d + 0x48, 0xff, 0xce, //0x00002d63 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002d66 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002d6a movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00002d6d jbe LBB0_655 + //0x00002d73 LBB0_653 + 0x48, 0x89, 0xc8, //0x00002d73 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002d76 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00002d80 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00002d83 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00002d87 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00002d8b leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00002d8f movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00002d92 subq %rbx, %rax + 0x4c, 0x39, 0xfe, //0x00002d95 cmpq %r15, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00002d98 jae LBB0_652 + 0x04, 0x30, //0x00002d9e addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002da0 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00002da4 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002da7 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002dab movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002dae ja LBB0_653 + //0x00002db4 LBB0_655 + 0x45, 0x01, 0xd0, //0x00002db4 addl %r10d, %r8d + 0x49, 0x63, 0xc0, //0x00002db7 movslq %r8d, %rax + 0x49, 0x39, 0xc7, //0x00002dba cmpq %rax, %r15 + 0x41, 0x0f, 0x46, 0xc7, //0x00002dbd cmovbel %r15d, %eax + 0x48, 0x8b, 0x4d, 0xc8, //0x00002dc1 movq $-56(%rbp), %rcx + 0x44, 0x01, 0xd1, //0x00002dc5 addl %r10d, %ecx + 0x48, 0x89, 0x4d, 0xc8, //0x00002dc8 movq %rcx, $-56(%rbp) + 0x85, 0xc0, //0x00002dcc testl %eax, %eax + 0x0f, 0x8e, 0x34, 0x00, 0x00, 0x00, //0x00002dce jle LBB0_660 + 0x89, 0xc1, //0x00002dd4 movl %eax, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00002dd6 cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00002ddc jne LBB0_661 + //0x00002de2 LBB0_657 + 0x48, 0x83, 0xf9, 0x01, //0x00002de2 cmpq $1, %rcx + 0x0f, 0x8e, 0x18, 0x00, 0x00, 0x00, //0x00002de6 jle LBB0_659 + 0x48, 0x8d, 0x41, 0xff, //0x00002dec leaq $-1(%rcx), %rax + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00002df0 cmpb $48, $-2(%r12,%rcx) + 0x48, 0x89, 0xc1, //0x00002df6 movq %rax, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002df9 je LBB0_657 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00002dff jmp LBB0_661 + //0x00002e04 LBB0_659 + 0xff, 0xc9, //0x00002e04 decl %ecx + 0x89, 0xc8, //0x00002e06 movl %ecx, %eax + //0x00002e08 LBB0_660 + 0x85, 0xc0, //0x00002e08 testl %eax, %eax + 0x0f, 0x84, 0x0e, 0x01, 0x00, 0x00, //0x00002e0a je LBB0_683 + //0x00002e10 LBB0_661 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002e10 movq $-48(%rbp), %r13 + //0x00002e14 LBB0_662 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002e14 movq $-80(%rbp), %r11 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002e18 movabsq $4503599627370495, %rcx + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00002e22 movq $-1, %rdi + 0x48, 0x8b, 0x75, 0xc8, //0x00002e29 movq $-56(%rbp), %rsi + 0x83, 0xfe, 0x14, //0x00002e2d cmpl $20, %esi + 0x0f, 0x8f, 0x72, 0x01, 0x00, 0x00, //0x00002e30 jg LBB0_691 + 0x89, 0xf2, //0x00002e36 movl %esi, %edx + 0x85, 0xf6, //0x00002e38 testl %esi, %esi + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00002e3a jle LBB0_668 + 0x48, 0x63, 0xf0, //0x00002e40 movslq %eax, %rsi + 0x31, 0xff, //0x00002e43 xorl %edi, %edi + 0x31, 0xc9, //0x00002e45 xorl %ecx, %ecx + //0x00002e47 LBB0_665 + 0x48, 0x39, 0xf7, //0x00002e47 cmpq %rsi, %rdi + 0x0f, 0x8d, 0x1a, 0x00, 0x00, 0x00, //0x00002e4a jge LBB0_667 + 0x48, 0x8d, 0x0c, 0x89, //0x00002e50 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x3c, //0x00002e54 movsbq (%r12,%rdi), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00002e59 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x00002e5e incq %rdi + 0x48, 0x39, 0xfa, //0x00002e61 cmpq %rdi, %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00002e64 jne LBB0_665 + //0x00002e6a LBB0_667 + 0x45, 0x31, 0xc0, //0x00002e6a xorl %r8d, %r8d + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00002e6d jmp LBB0_669 + //0x00002e72 LBB0_668 + 0x31, 0xff, //0x00002e72 xorl %edi, %edi + 0x41, 0xb0, 0x01, //0x00002e74 movb $1, %r8b + 0x31, 0xc9, //0x00002e77 xorl %ecx, %ecx + //0x00002e79 LBB0_669 + 0x48, 0x8b, 0x75, 0xc8, //0x00002e79 movq $-56(%rbp), %rsi + 0x29, 0xfe, //0x00002e7d subl %edi, %esi + 0x0f, 0x8e, 0x4a, 0x00, 0x00, 0x00, //0x00002e7f jle LBB0_677 + 0x41, 0x89, 0xfa, //0x00002e85 movl %edi, %r10d + 0x41, 0xf7, 0xd2, //0x00002e88 notl %r10d + 0x44, 0x03, 0x55, 0xc8, //0x00002e8b addl $-56(%rbp), %r10d + 0x83, 0xe6, 0x07, //0x00002e8f andl $7, %esi + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002e92 je LBB0_674 + 0xf7, 0xde, //0x00002e98 negl %esi + 0x31, 0xdb, //0x00002e9a xorl %ebx, %ebx + //0x00002e9c LBB0_672 + 0x48, 0x01, 0xc9, //0x00002e9c addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00002e9f leaq (%rcx,%rcx,4), %rcx + 0xff, 0xcb, //0x00002ea3 decl %ebx + 0x39, 0xde, //0x00002ea5 cmpl %ebx, %esi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00002ea7 jne LBB0_672 + 0x29, 0xdf, //0x00002ead subl %ebx, %edi + //0x00002eaf LBB0_674 + 0x41, 0x83, 0xfa, 0x07, //0x00002eaf cmpl $7, %r10d + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00002eb3 jb LBB0_677 + 0x48, 0x8b, 0x75, 0xc8, //0x00002eb9 movq $-56(%rbp), %rsi + 0x29, 0xfe, //0x00002ebd subl %edi, %esi + //0x00002ebf LBB0_676 + 0x48, 0x69, 0xc9, 0x00, 0xe1, 0xf5, 0x05, //0x00002ebf imulq $100000000, %rcx, %rcx + 0x83, 0xc6, 0xf8, //0x00002ec6 addl $-8, %esi + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002ec9 jne LBB0_676 + //0x00002ecf LBB0_677 + 0x31, 0xff, //0x00002ecf xorl %edi, %edi + 0x48, 0x8b, 0x75, 0xc8, //0x00002ed1 movq $-56(%rbp), %rsi + 0x85, 0xf6, //0x00002ed5 testl %esi, %esi + 0x0f, 0x88, 0x51, 0x00, 0x00, 0x00, //0x00002ed7 js LBB0_685 + 0x39, 0xf0, //0x00002edd cmpl %esi, %eax + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00002edf jle LBB0_685 + 0x41, 0x8a, 0x14, 0x14, //0x00002ee5 movb (%r12,%rdx), %dl + 0xff, 0xc6, //0x00002ee9 incl %esi + 0x39, 0xc6, //0x00002eeb cmpl %eax, %esi + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00002eed jne LBB0_684 + 0x80, 0xfa, 0x35, //0x00002ef3 cmpb $53, %dl + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00002ef6 jne LBB0_684 + 0x45, 0x85, 0xf6, //0x00002efc testl %r14d, %r14d + 0x40, 0x0f, 0x95, 0xc7, //0x00002eff setne %dil + 0x41, 0x08, 0xf8, //0x00002f03 orb %dil, %r8b + 0x0f, 0x85, 0x22, 0x00, 0x00, 0x00, //0x00002f06 jne LBB0_685 + 0x48, 0x63, 0x45, 0xc8, //0x00002f0c movslq $-56(%rbp), %rax + 0x42, 0x8a, 0x7c, 0x20, 0xff, //0x00002f10 movb $-1(%rax,%r12), %dil + 0x40, 0x80, 0xe7, 0x01, //0x00002f15 andb $1, %dil + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00002f19 jmp LBB0_685 + //0x00002f1e LBB0_683 + 0x31, 0xc9, //0x00002f1e xorl %ecx, %ecx + 0x31, 0xff, //0x00002f20 xorl %edi, %edi + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00002f22 jmp LBB0_685 + //0x00002f27 LBB0_684 + 0x80, 0xfa, 0x34, //0x00002f27 cmpb $52, %dl + 0x40, 0x0f, 0x9f, 0xc7, //0x00002f2a setg %dil + //0x00002f2e LBB0_685 + 0x40, 0x0f, 0xb6, 0xff, //0x00002f2e movzbl %dil, %edi + 0x48, 0x01, 0xcf, //0x00002f32 addq %rcx, %rdi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002f35 movabsq $9007199254740992, %rax + 0x48, 0x39, 0xc7, //0x00002f3f cmpq %rax, %rdi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00002f42 jne LBB0_689 + 0x41, 0x81, 0xf9, 0xfe, 0x03, 0x00, 0x00, //0x00002f48 cmpl $1022, %r9d + 0x0f, 0x8e, 0x3a, 0x00, 0x00, 0x00, //0x00002f4f jle LBB0_690 + 0x31, 0xff, //0x00002f55 xorl %edi, %edi + 0x49, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002f57 movabsq $9218868437227405312, %r9 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002f61 movq $-48(%rbp), %r13 + //0x00002f65 LBB0_688 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002f65 movq $-80(%rbp), %r11 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002f69 movabsq $4503599627370495, %rcx + 0xe9, 0xc4, 0xe8, 0xff, 0xff, //0x00002f73 jmp LBB0_326 + //0x00002f78 LBB0_689 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002f78 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002f7c movq $-80(%rbp), %r11 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002f80 movabsq $4503599627370495, %rcx + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00002f8a jmp LBB0_691 + //0x00002f8f LBB0_690 + 0x41, 0xff, 0xc1, //0x00002f8f incl %r9d + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002f92 movabsq $4503599627370495, %rcx + 0x48, 0x8d, 0x79, 0x01, //0x00002f9c leaq $1(%rcx), %rdi + 0x4c, 0x8b, 0x6d, 0xd0, //0x00002fa0 movq $-48(%rbp), %r13 + 0x4c, 0x8b, 0x5d, 0xb0, //0x00002fa4 movq $-80(%rbp), %r11 + //0x00002fa8 LBB0_691 + 0x8a, 0x55, 0xa0, //0x00002fa8 movb $-96(%rbp), %dl + 0x48, 0x8d, 0x41, 0x01, //0x00002fab leaq $1(%rcx), %rax + 0x48, 0x21, 0xf8, //0x00002faf andq %rdi, %rax + 0x41, 0x81, 0xc1, 0xff, 0x03, 0x00, 0x00, //0x00002fb2 addl $1023, %r9d + 0x41, 0x81, 0xe1, 0xff, 0x07, 0x00, 0x00, //0x00002fb9 andl $2047, %r9d + 0x49, 0xc1, 0xe1, 0x34, //0x00002fc0 shlq $52, %r9 + 0x48, 0x85, 0xc0, //0x00002fc4 testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xc8, //0x00002fc7 cmoveq %rax, %r9 + 0xe9, 0x6f, 0xe8, 0xff, 0xff, //0x00002fcb jmp LBB0_327 + //0x00002fd0 LBB0_692 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002fd0 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00002fd7 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00002fda cmpq $32, %r12 + 0x0f, 0x83, 0x0c, 0xe1, 0xff, 0xff, //0x00002fde jae LBB0_231 + 0xe9, 0xb8, 0x01, 0x00, 0x00, //0x00002fe4 jmp LBB0_717 + //0x00002fe9 LBB0_693 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00002fe9 movq $-1, %r8 + 0x45, 0x31, 0xff, //0x00002ff0 xorl %r15d, %r15d + 0x49, 0x83, 0xfc, 0x20, //0x00002ff3 cmpq $32, %r12 + 0x0f, 0x83, 0xb9, 0xe1, 0xff, 0xff, //0x00002ff7 jae LBB0_240 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002ffd jmp LBB0_701 + //0x00003002 LBB0_694 + 0x44, 0x89, 0xfa, //0x00003002 movl %r15d, %edx + 0xf7, 0xd2, //0x00003005 notl %edx + 0x21, 0xca, //0x00003007 andl %ecx, %edx + 0x44, 0x8d, 0x14, 0x12, //0x00003009 leal (%rdx,%rdx), %r10d + 0x45, 0x09, 0xfa, //0x0000300d orl %r15d, %r10d + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003010 movl $2863311530, %ebx + 0x44, 0x31, 0xd3, //0x00003015 xorl %r10d, %ebx + 0x21, 0xcb, //0x00003018 andl %ecx, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000301a andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00003020 xorl %r15d, %r15d + 0x01, 0xd3, //0x00003023 addl %edx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x00003025 setb %r15b + 0x01, 0xdb, //0x00003029 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000302b xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x00003031 andl %r10d, %ebx + 0xf7, 0xd3, //0x00003034 notl %ebx + 0x21, 0xdf, //0x00003036 andl %ebx, %edi + 0x48, 0xc1, 0xe0, 0x10, //0x00003038 shlq $16, %rax + 0x48, 0x85, 0xff, //0x0000303c testq %rdi, %rdi + 0x0f, 0x85, 0x20, 0xe2, 0xff, 0xff, //0x0000303f jne LBB0_244 + //0x00003045 LBB0_695 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003045 movl $64, %ecx + //0x0000304a LBB0_696 + 0x4c, 0x09, 0xc8, //0x0000304a orq %r9, %rax + 0x48, 0x85, 0xff, //0x0000304d testq %rdi, %rdi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00003050 je LBB0_699 + 0x48, 0x85, 0xc0, //0x00003056 testq %rax, %rax + 0x0f, 0x84, 0xa6, 0x00, 0x00, 0x00, //0x00003059 je LBB0_709 + 0x48, 0x0f, 0xbc, 0xc0, //0x0000305f bsfq %rax, %rax + 0xe9, 0xa2, 0x00, 0x00, 0x00, //0x00003063 jmp LBB0_710 + //0x00003068 LBB0_699 + 0x48, 0x85, 0xc0, //0x00003068 testq %rax, %rax + 0x0f, 0x85, 0xb0, 0x00, 0x00, 0x00, //0x0000306b jne LBB0_712 + 0x49, 0x83, 0xc5, 0x20, //0x00003071 addq $32, %r13 + 0x49, 0x83, 0xc4, 0xe0, //0x00003075 addq $-32, %r12 + //0x00003079 LBB0_701 + 0x4d, 0x85, 0xff, //0x00003079 testq %r15, %r15 + 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x0000307c jne LBB0_727 + 0x4c, 0x89, 0xc0, //0x00003082 movq %r8, %rax + 0x4d, 0x85, 0xe4, //0x00003085 testq %r12, %r12 + 0x0f, 0x84, 0x1b, 0x02, 0x00, 0x00, //0x00003088 je LBB0_731 + //0x0000308e LBB0_703 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x0000308e movzbl (%r13), %ecx + 0x80, 0xf9, 0x22, //0x00003093 cmpb $34, %cl + 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00003096 je LBB0_713 + 0x80, 0xf9, 0x5c, //0x0000309c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x0000309f je LBB0_707 + 0x80, 0xf9, 0x20, //0x000030a5 cmpb $32, %cl + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x000030a8 jb LBB0_712 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000030ae movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000030b5 movl $1, %edx + 0x49, 0x01, 0xd5, //0x000030ba addq %rdx, %r13 + 0x49, 0x01, 0xcc, //0x000030bd addq %rcx, %r12 + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000030c0 jne LBB0_703 + 0xe9, 0xde, 0x01, 0x00, 0x00, //0x000030c6 jmp LBB0_731 + //0x000030cb LBB0_707 + 0x49, 0x83, 0xfc, 0x01, //0x000030cb cmpq $1, %r12 + 0x0f, 0x84, 0xd4, 0x01, 0x00, 0x00, //0x000030cf je LBB0_731 + 0x4c, 0x89, 0xe9, //0x000030d5 movq %r13, %rcx + 0x48, 0x2b, 0x4d, 0xc0, //0x000030d8 subq $-64(%rbp), %rcx + 0x48, 0x83, 0xf8, 0xff, //0x000030dc cmpq $-1, %rax + 0x4c, 0x0f, 0x44, 0xc1, //0x000030e0 cmoveq %rcx, %r8 + 0x48, 0x0f, 0x44, 0xc1, //0x000030e4 cmoveq %rcx, %rax + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000030e8 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000030ef movl $2, %edx + 0x49, 0x01, 0xd5, //0x000030f4 addq %rdx, %r13 + 0x49, 0x01, 0xcc, //0x000030f7 addq %rcx, %r12 + 0x0f, 0x85, 0x8e, 0xff, 0xff, 0xff, //0x000030fa jne LBB0_703 + 0xe9, 0xa4, 0x01, 0x00, 0x00, //0x00003100 jmp LBB0_731 + //0x00003105 LBB0_709 + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00003105 movl $64, %eax + //0x0000310a LBB0_710 + 0x48, 0x39, 0xc8, //0x0000310a cmpq %rcx, %rax + 0x0f, 0x82, 0x0e, 0x00, 0x00, 0x00, //0x0000310d jb LBB0_712 + 0x4c, 0x2b, 0x6d, 0xc0, //0x00003113 subq $-64(%rbp), %r13 + 0x4d, 0x8d, 0x5c, 0x0d, 0x01, //0x00003117 leaq $1(%r13,%rcx), %r11 + 0xe9, 0x52, 0xe0, 0xff, 0xff, //0x0000311c jmp LBB0_237 + //0x00003121 LBB0_712 + 0x49, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003121 movq $-2, %r11 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003128 movq $-48(%rbp), %rcx + 0xe9, 0x83, 0x01, 0x00, 0x00, //0x0000312c jmp LBB0_732 + //0x00003131 LBB0_713 + 0x4c, 0x2b, 0x6d, 0xc0, //0x00003131 subq $-64(%rbp), %r13 + 0x49, 0xff, 0xc5, //0x00003135 incq %r13 + 0x4d, 0x89, 0xeb, //0x00003138 movq %r13, %r11 + 0xe9, 0x33, 0xe0, 0xff, 0xff, //0x0000313b jmp LBB0_237 + //0x00003140 LBB0_714 + 0x4c, 0x89, 0xe9, //0x00003140 movq %r13, %rcx + 0x48, 0x2b, 0x4d, 0xc0, //0x00003143 subq $-64(%rbp), %rcx + 0x4c, 0x0f, 0xbc, 0xc0, //0x00003147 bsfq %rax, %r8 + 0x49, 0x01, 0xc8, //0x0000314b addq %rcx, %r8 + 0x48, 0x09, 0xd7, //0x0000314e orq %rdx, %rdi + 0x48, 0x89, 0xc1, //0x00003151 movq %rax, %rcx + 0x4c, 0x09, 0xf9, //0x00003154 orq %r15, %rcx + 0x0f, 0x84, 0x00, 0xe0, 0xff, 0xff, //0x00003157 je LBB0_234 + //0x0000315d LBB0_715 + 0x44, 0x89, 0xf9, //0x0000315d movl %r15d, %ecx + 0xf7, 0xd1, //0x00003160 notl %ecx + 0x21, 0xc1, //0x00003162 andl %eax, %ecx + 0x8d, 0x14, 0x09, //0x00003164 leal (%rcx,%rcx), %edx + 0x44, 0x09, 0xfa, //0x00003167 orl %r15d, %edx + 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000316a movl $2863311530, %ebx + 0x31, 0xd3, //0x0000316f xorl %edx, %ebx + 0x21, 0xc3, //0x00003171 andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003173 andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00003179 xorl %r15d, %r15d + 0x01, 0xcb, //0x0000317c addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x0000317e setb %r15b + 0x01, 0xdb, //0x00003182 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00003184 xorl $1431655765, %ebx + 0x21, 0xd3, //0x0000318a andl %edx, %ebx + 0xf7, 0xd3, //0x0000318c notl %ebx + 0x21, 0xdf, //0x0000318e andl %ebx, %edi + 0x48, 0x85, 0xff, //0x00003190 testq %rdi, %rdi + 0x0f, 0x85, 0xcd, 0xdf, 0xff, 0xff, //0x00003193 jne LBB0_235 + //0x00003199 LBB0_716 + 0x49, 0x83, 0xc5, 0x20, //0x00003199 addq $32, %r13 + 0x49, 0x83, 0xc4, 0xe0, //0x0000319d addq $-32, %r12 + //0x000031a1 LBB0_717 + 0x4d, 0x85, 0xff, //0x000031a1 testq %r15, %r15 + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x000031a4 jne LBB0_729 + 0x4d, 0x89, 0xc1, //0x000031aa movq %r8, %r9 + 0x4d, 0x85, 0xe4, //0x000031ad testq %r12, %r12 + 0x0f, 0x84, 0xf3, 0x00, 0x00, 0x00, //0x000031b0 je LBB0_731 + //0x000031b6 LBB0_719 + 0x48, 0x8b, 0x55, 0xc0, //0x000031b6 movq $-64(%rbp), %rdx + 0x48, 0xf7, 0xd2, //0x000031ba notq %rdx + //0x000031bd LBB0_720 + 0x4d, 0x8d, 0x5d, 0x01, //0x000031bd leaq $1(%r13), %r11 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x000031c1 movzbl (%r13), %eax + 0x3c, 0x22, //0x000031c6 cmpb $34, %al + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x000031c8 je LBB0_725 + 0x49, 0x8d, 0x5c, 0x24, 0xff, //0x000031ce leaq $-1(%r12), %rbx + 0x3c, 0x5c, //0x000031d3 cmpb $92, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000031d5 je LBB0_723 + 0x49, 0x89, 0xdc, //0x000031db movq %rbx, %r12 + 0x4d, 0x89, 0xdd, //0x000031de movq %r11, %r13 + 0x48, 0x85, 0xdb, //0x000031e1 testq %rbx, %rbx + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000031e4 jne LBB0_720 + 0xe9, 0xba, 0x00, 0x00, 0x00, //0x000031ea jmp LBB0_731 + //0x000031ef LBB0_723 + 0x48, 0x85, 0xdb, //0x000031ef testq %rbx, %rbx + 0x0f, 0x84, 0xb1, 0x00, 0x00, 0x00, //0x000031f2 je LBB0_731 + 0x49, 0x01, 0xd3, //0x000031f8 addq %rdx, %r11 + 0x49, 0x83, 0xf9, 0xff, //0x000031fb cmpq $-1, %r9 + 0x4d, 0x0f, 0x44, 0xc3, //0x000031ff cmoveq %r11, %r8 + 0x4d, 0x0f, 0x44, 0xcb, //0x00003203 cmoveq %r11, %r9 + 0x49, 0x83, 0xc5, 0x02, //0x00003207 addq $2, %r13 + 0x49, 0x83, 0xc4, 0xfe, //0x0000320b addq $-2, %r12 + 0x4c, 0x89, 0xe3, //0x0000320f movq %r12, %rbx + 0x48, 0x85, 0xdb, //0x00003212 testq %rbx, %rbx + 0x0f, 0x85, 0xa2, 0xff, 0xff, 0xff, //0x00003215 jne LBB0_720 + 0xe9, 0x89, 0x00, 0x00, 0x00, //0x0000321b jmp LBB0_731 + //0x00003220 LBB0_725 + 0x4c, 0x2b, 0x5d, 0xc0, //0x00003220 subq $-64(%rbp), %r11 + 0xe9, 0x4a, 0xdf, 0xff, 0xff, //0x00003224 jmp LBB0_237 + //0x00003229 LBB0_726 + 0x4c, 0x89, 0xea, //0x00003229 movq %r13, %rdx + 0x48, 0x2b, 0x55, 0xc0, //0x0000322c subq $-64(%rbp), %rdx + 0x4c, 0x0f, 0xbc, 0xc1, //0x00003230 bsfq %rcx, %r8 + 0x49, 0x01, 0xd0, //0x00003234 addq %rdx, %r8 + 0xe9, 0x08, 0xe0, 0xff, 0xff, //0x00003237 jmp LBB0_242 + //0x0000323c LBB0_727 + 0x4d, 0x85, 0xe4, //0x0000323c testq %r12, %r12 + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x0000323f je LBB0_733 + 0x48, 0x8b, 0x45, 0xc0, //0x00003245 movq $-64(%rbp), %rax + 0x48, 0xf7, 0xd0, //0x00003249 notq %rax + 0x4c, 0x01, 0xe8, //0x0000324c addq %r13, %rax + 0x49, 0x83, 0xf8, 0xff, //0x0000324f cmpq $-1, %r8 + 0x4c, 0x89, 0xc1, //0x00003253 movq %r8, %rcx + 0x48, 0x0f, 0x44, 0xc8, //0x00003256 cmoveq %rax, %rcx + 0x49, 0x0f, 0x45, 0xc0, //0x0000325a cmovneq %r8, %rax + 0x49, 0xff, 0xc5, //0x0000325e incq %r13 + 0x49, 0xff, 0xcc, //0x00003261 decq %r12 + 0x49, 0x89, 0xc8, //0x00003264 movq %rcx, %r8 + 0x4d, 0x85, 0xe4, //0x00003267 testq %r12, %r12 + 0x0f, 0x85, 0x1e, 0xfe, 0xff, 0xff, //0x0000326a jne LBB0_703 + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00003270 jmp LBB0_731 + //0x00003275 LBB0_729 + 0x4d, 0x85, 0xe4, //0x00003275 testq %r12, %r12 + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00003278 je LBB0_733 + 0x4c, 0x8b, 0x4d, 0xc0, //0x0000327e movq $-64(%rbp), %r9 + 0x49, 0xf7, 0xd1, //0x00003282 notq %r9 + 0x4d, 0x01, 0xe9, //0x00003285 addq %r13, %r9 + 0x49, 0x83, 0xf8, 0xff, //0x00003288 cmpq $-1, %r8 + 0x4c, 0x89, 0xc0, //0x0000328c movq %r8, %rax + 0x49, 0x0f, 0x44, 0xc1, //0x0000328f cmoveq %r9, %rax + 0x4d, 0x0f, 0x45, 0xc8, //0x00003293 cmovneq %r8, %r9 + 0x49, 0xff, 0xc5, //0x00003297 incq %r13 + 0x49, 0xff, 0xcc, //0x0000329a decq %r12 + 0x49, 0x89, 0xc0, //0x0000329d movq %rax, %r8 + 0x4d, 0x85, 0xe4, //0x000032a0 testq %r12, %r12 + 0x0f, 0x85, 0x0d, 0xff, 0xff, 0xff, //0x000032a3 jne LBB0_719 + //0x000032a9 LBB0_731 + 0x48, 0x8b, 0x4d, 0xd0, //0x000032a9 movq $-48(%rbp), %rcx + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000032ad movq $-1, %r11 + //0x000032b4 LBB0_732 + 0x4c, 0x89, 0x19, //0x000032b4 movq %r11, (%rcx) + 0x49, 0x89, 0xf3, //0x000032b7 movq %rsi, %r11 + 0xe9, 0x30, 0xd0, 0xff, 0xff, //0x000032ba jmp LBB0_38 + //0x000032bf LBB0_733 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000032bf movq $-1, %r11 + 0x48, 0x8b, 0x4d, 0xd0, //0x000032c6 movq $-48(%rbp), %rcx + 0xe9, 0xe5, 0xff, 0xff, 0xff, //0x000032ca jmp LBB0_732 + 0x90, //0x000032cf .p2align 2, 0x90 + // // .set L0_0_set_37, LBB0_37-LJTI0_0 + // // .set L0_0_set_99, LBB0_99-LJTI0_0 + // // .set L0_0_set_100, LBB0_100-LJTI0_0 + // // .set L0_0_set_111, LBB0_111-LJTI0_0 + // // .set L0_0_set_30, LBB0_30-LJTI0_0 + // // .set L0_0_set_112, LBB0_112-LJTI0_0 + // // .set L0_0_set_113, LBB0_113-LJTI0_0 + // // .set L0_0_set_114, LBB0_114-LJTI0_0 + // // .set L0_0_set_115, LBB0_115-LJTI0_0 + // // .set L0_0_set_118, LBB0_118-LJTI0_0 + // // .set L0_0_set_121, LBB0_121-LJTI0_0 + // // .set L0_0_set_124, LBB0_124-LJTI0_0 + // // .set L0_0_set_125, LBB0_125-LJTI0_0 + //0x000032d0 LJTI0_0 + 0x17, 0xd0, 0xff, 0xff, //0x000032d0 .long L0_0_set_37 + 0x33, 0xd4, 0xff, 0xff, //0x000032d4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032d8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032dc .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032e0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032e4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032e8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032ec .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032f0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032f4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032f8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000032fc .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003300 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003304 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003308 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000330c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003310 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003314 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003318 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000331c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003320 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003324 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003328 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000332c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003330 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003334 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003338 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000333c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003340 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003344 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003348 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000334c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003350 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003354 .long L0_0_set_99 + 0x43, 0xd4, 0xff, 0xff, //0x00003358 .long L0_0_set_100 + 0x33, 0xd4, 0xff, 0xff, //0x0000335c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003360 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003364 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003368 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000336c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003370 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003374 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003378 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000337c .long L0_0_set_99 + 0x08, 0xd6, 0xff, 0xff, //0x00003380 .long L0_0_set_111 + 0x93, 0xcf, 0xff, 0xff, //0x00003384 .long L0_0_set_30 + 0x33, 0xd4, 0xff, 0xff, //0x00003388 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000338c .long L0_0_set_99 + 0x93, 0xcf, 0xff, 0xff, //0x00003390 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x00003394 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x00003398 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x0000339c .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033a0 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033a4 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033a8 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033ac .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033b0 .long L0_0_set_30 + 0x93, 0xcf, 0xff, 0xff, //0x000033b4 .long L0_0_set_30 + 0x1a, 0xd6, 0xff, 0xff, //0x000033b8 .long L0_0_set_112 + 0x33, 0xd4, 0xff, 0xff, //0x000033bc .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033c0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033c4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033c8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033cc .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033d0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033d4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033d8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033dc .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033e0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033e4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033e8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033ec .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033f0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033f4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033f8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000033fc .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003400 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003404 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003408 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000340c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003410 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003414 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003418 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000341c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003420 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003424 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003428 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000342c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003430 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003434 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003438 .long L0_0_set_99 + 0x2c, 0xd6, 0xff, 0xff, //0x0000343c .long L0_0_set_113 + 0x33, 0xd4, 0xff, 0xff, //0x00003440 .long L0_0_set_99 + 0x39, 0xd6, 0xff, 0xff, //0x00003444 .long L0_0_set_114 + 0x33, 0xd4, 0xff, 0xff, //0x00003448 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000344c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003450 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003454 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003458 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000345c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003460 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003464 .long L0_0_set_99 + 0x4b, 0xd6, 0xff, 0xff, //0x00003468 .long L0_0_set_115 + 0x33, 0xd4, 0xff, 0xff, //0x0000346c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003470 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003474 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003478 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000347c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003480 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003484 .long L0_0_set_99 + 0x7d, 0xd6, 0xff, 0xff, //0x00003488 .long L0_0_set_118 + 0x33, 0xd4, 0xff, 0xff, //0x0000348c .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003490 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003494 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x00003498 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x0000349c .long L0_0_set_99 + 0xad, 0xd6, 0xff, 0xff, //0x000034a0 .long L0_0_set_121 + 0x33, 0xd4, 0xff, 0xff, //0x000034a4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000034a8 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000034ac .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000034b0 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000034b4 .long L0_0_set_99 + 0x33, 0xd4, 0xff, 0xff, //0x000034b8 .long L0_0_set_99 + 0xdd, 0xd6, 0xff, 0xff, //0x000034bc .long L0_0_set_124 + 0x33, 0xd4, 0xff, 0xff, //0x000034c0 .long L0_0_set_99 + 0xea, 0xd6, 0xff, 0xff, //0x000034c4 .long L0_0_set_125 + // // .set L0_1_set_65, LBB0_65-LJTI0_1 + // // .set L0_1_set_75, LBB0_75-LJTI0_1 + // // .set L0_1_set_72, LBB0_72-LJTI0_1 + // // .set L0_1_set_67, LBB0_67-LJTI0_1 + // // .set L0_1_set_70, LBB0_70-LJTI0_1 + //0x000034c8 LJTI0_1 + 0x77, 0xd0, 0xff, 0xff, //0x000034c8 .long L0_1_set_65 + 0x01, 0xd1, 0xff, 0xff, //0x000034cc .long L0_1_set_75 + 0x77, 0xd0, 0xff, 0xff, //0x000034d0 .long L0_1_set_65 + 0xdc, 0xd0, 0xff, 0xff, //0x000034d4 .long L0_1_set_72 + 0x01, 0xd1, 0xff, 0xff, //0x000034d8 .long L0_1_set_75 + 0x98, 0xd0, 0xff, 0xff, //0x000034dc .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034e0 .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034e4 .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034e8 .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034ec .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034f0 .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034f4 .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034f8 .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x000034fc .long L0_1_set_67 + 0x98, 0xd0, 0xff, 0xff, //0x00003500 .long L0_1_set_67 + 0x01, 0xd1, 0xff, 0xff, //0x00003504 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003508 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000350c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003510 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003514 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003518 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000351c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003520 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003524 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003528 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000352c .long L0_1_set_75 + 0xc1, 0xd0, 0xff, 0xff, //0x00003530 .long L0_1_set_70 + 0x01, 0xd1, 0xff, 0xff, //0x00003534 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003538 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000353c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003540 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003544 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003548 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000354c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003550 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003554 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003558 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000355c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003560 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003564 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003568 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000356c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003570 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003574 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003578 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000357c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003580 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003584 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003588 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000358c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003590 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003594 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x00003598 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x0000359c .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x000035a0 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x000035a4 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x000035a8 .long L0_1_set_75 + 0x01, 0xd1, 0xff, 0xff, //0x000035ac .long L0_1_set_75 + 0xc1, 0xd0, 0xff, 0xff, //0x000035b0 .long L0_1_set_70 + //0x000035b4 .p2align 2, 0x00 + //0x000035b4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000035b4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000035b8 .p2align 4, 0x00 + //0x000035c0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000035c0 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000035c8 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000035d0 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000035d8 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000035e0 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000035e8 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000035f0 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000035f8 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00003600 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00003608 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00003610 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00003618 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00003620 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00003628 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00003630 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003638 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00003640 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00003648 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00003650 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00003658 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00003660 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00003668 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00003670 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003678 .p2align 4, 0x00 + //0x00003680 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00003680 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00003688 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00003690 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00003698 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x000036a0 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x000036a8 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x000036b0 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x000036b8 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x000036c0 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x000036c8 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x000036d0 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x000036d8 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x000036e0 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x000036e8 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000036f0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000036f8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00003700 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00003708 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00003710 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00003718 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00003720 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00003728 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00003730 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00003738 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00003740 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00003748 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00003750 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00003758 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00003760 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00003768 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00003770 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00003778 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00003780 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00003788 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00003790 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00003798 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x000037a0 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x000037a8 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x000037b0 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x000037b8 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x000037c0 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x000037c8 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x000037d0 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x000037d8 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x000037e0 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x000037e8 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000037f0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000037f8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00003800 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00003808 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00003810 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00003818 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00003820 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00003828 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00003830 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00003838 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00003840 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00003848 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00003850 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00003858 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00003860 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00003868 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00003870 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00003878 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00003880 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00003888 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00003890 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00003898 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x000038a0 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x000038a8 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x000038b0 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x000038b8 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x000038c0 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x000038c8 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x000038d0 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x000038d8 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x000038e0 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x000038e8 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x000038f0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x000038f8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00003900 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00003908 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00003910 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00003918 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00003920 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00003928 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00003930 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00003938 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00003940 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00003948 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00003950 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00003958 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00003960 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00003968 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00003970 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00003978 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00003980 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00003988 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00003990 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00003998 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x000039a0 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x000039a8 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x000039b0 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x000039b8 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x000039c0 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x000039c8 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x000039d0 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x000039d8 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x000039e0 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x000039e8 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x000039f0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x000039f8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00003a00 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00003a08 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00003a10 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00003a18 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00003a20 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00003a28 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00003a30 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00003a38 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00003a40 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00003a48 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00003a50 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00003a58 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00003a60 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00003a68 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00003a70 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00003a78 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00003a80 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00003a88 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00003a90 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00003a98 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00003aa0 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00003aa8 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00003ab0 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00003ab8 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00003ac0 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00003ac8 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00003ad0 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00003ad8 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00003ae0 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00003ae8 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00003af0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00003af8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00003b00 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00003b08 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00003b10 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00003b18 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00003b20 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00003b28 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00003b30 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00003b38 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00003b40 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00003b48 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00003b50 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00003b58 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00003b60 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00003b68 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00003b70 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00003b78 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00003b80 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00003b88 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00003b90 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00003b98 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00003ba0 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00003ba8 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00003bb0 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00003bb8 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00003bc0 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00003bc8 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00003bd0 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00003bd8 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00003be0 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00003be8 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00003bf0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00003bf8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00003c00 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00003c08 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00003c10 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00003c18 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00003c20 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00003c28 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00003c30 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00003c38 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00003c40 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00003c48 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00003c50 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00003c58 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00003c60 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00003c68 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00003c70 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00003c78 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00003c80 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00003c88 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00003c90 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00003c98 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00003ca0 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00003ca8 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00003cb0 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00003cb8 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00003cc0 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00003cc8 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00003cd0 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00003cd8 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00003ce0 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00003ce8 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00003cf0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00003cf8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00003d00 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00003d08 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00003d10 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00003d18 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00003d20 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00003d28 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00003d30 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00003d38 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00003d40 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00003d48 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00003d50 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00003d58 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00003d60 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00003d68 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00003d70 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00003d78 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00003d80 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00003d88 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00003d90 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00003d98 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00003da0 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00003da8 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00003db0 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00003db8 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00003dc0 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00003dc8 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00003dd0 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00003dd8 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00003de0 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00003de8 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00003df0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00003df8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00003e00 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00003e08 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00003e10 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00003e18 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00003e20 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00003e28 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00003e30 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00003e38 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00003e40 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00003e48 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00003e50 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00003e58 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00003e60 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00003e68 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00003e70 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00003e78 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00003e80 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00003e88 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00003e90 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00003e98 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00003ea0 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00003ea8 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00003eb0 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00003eb8 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00003ec0 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00003ec8 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00003ed0 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00003ed8 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00003ee0 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00003ee8 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00003ef0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00003ef8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00003f00 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00003f08 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00003f10 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00003f18 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00003f20 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00003f28 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00003f30 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00003f38 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00003f40 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00003f48 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00003f50 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00003f58 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00003f60 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00003f68 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00003f70 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00003f78 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00003f80 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00003f88 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00003f90 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00003f98 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00003fa0 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00003fa8 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00003fb0 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00003fb8 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00003fc0 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00003fc8 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00003fd0 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00003fd8 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00003fe0 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00003fe8 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00003ff0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00003ff8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00004000 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00004008 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00004010 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00004018 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00004020 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00004028 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00004030 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00004038 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00004040 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00004048 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00004050 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00004058 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00004060 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00004068 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00004070 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00004078 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00004080 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00004088 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00004090 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00004098 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x000040a0 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x000040a8 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x000040b0 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x000040b8 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x000040c0 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x000040c8 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x000040d0 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x000040d8 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x000040e0 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x000040e8 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x000040f0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x000040f8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00004100 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00004108 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00004110 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00004118 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00004120 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00004128 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00004130 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00004138 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00004140 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00004148 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00004150 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00004158 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00004160 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00004168 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00004170 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00004178 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00004180 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00004188 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00004190 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00004198 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x000041a0 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x000041a8 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x000041b0 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x000041b8 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x000041c0 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x000041c8 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x000041d0 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x000041d8 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x000041e0 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x000041e8 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x000041f0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x000041f8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00004200 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00004208 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00004210 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00004218 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00004220 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00004228 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00004230 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00004238 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00004240 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00004248 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00004250 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00004258 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00004260 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00004268 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00004270 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00004278 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00004280 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00004288 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00004290 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00004298 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x000042a0 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x000042a8 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x000042b0 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x000042b8 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x000042c0 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x000042c8 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x000042d0 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x000042d8 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x000042e0 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x000042e8 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x000042f0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x000042f8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00004300 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00004308 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00004310 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00004318 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00004320 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00004328 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x00004330 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x00004338 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x00004340 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x00004348 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x00004350 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x00004358 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x00004360 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x00004368 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x00004370 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x00004378 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x00004380 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x00004388 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00004390 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00004398 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x000043a0 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x000043a8 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x000043b0 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x000043b8 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x000043c0 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x000043c8 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x000043d0 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x000043d8 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x000043e0 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x000043e8 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x000043f0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x000043f8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00004400 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00004408 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00004410 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00004418 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00004420 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00004428 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x00004430 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x00004438 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x00004440 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x00004448 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x00004450 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x00004458 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x00004460 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x00004468 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x00004470 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x00004478 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x00004480 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x00004488 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00004490 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00004498 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x000044a0 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x000044a8 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x000044b0 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x000044b8 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x000044c0 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x000044c8 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x000044d0 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x000044d8 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x000044e0 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x000044e8 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x000044f0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x000044f8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00004500 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00004508 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00004510 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00004518 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00004520 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00004528 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x00004530 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x00004538 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x00004540 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x00004548 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x00004550 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x00004558 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x00004560 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x00004568 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x00004570 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x00004578 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x00004580 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x00004588 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00004590 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00004598 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x000045a0 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x000045a8 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x000045b0 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x000045b8 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x000045c0 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x000045c8 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x000045d0 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x000045d8 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x000045e0 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x000045e8 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x000045f0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x000045f8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00004600 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00004608 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00004610 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00004618 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00004620 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00004628 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x00004630 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x00004638 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x00004640 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x00004648 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x00004650 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x00004658 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x00004660 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x00004668 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x00004670 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x00004678 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x00004680 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x00004688 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00004690 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00004698 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x000046a0 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x000046a8 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x000046b0 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x000046b8 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x000046c0 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x000046c8 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x000046d0 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x000046d8 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x000046e0 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x000046e8 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x000046f0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x000046f8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00004700 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00004708 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00004710 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00004718 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00004720 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00004728 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x00004730 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x00004738 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x00004740 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x00004748 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x00004750 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x00004758 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x00004760 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x00004768 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x00004770 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x00004778 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x00004780 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x00004788 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x00004790 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x00004798 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x000047a0 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x000047a8 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x000047b0 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x000047b8 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x000047c0 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x000047c8 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x000047d0 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x000047d8 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x000047e0 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x000047e8 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x000047f0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x000047f8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00004800 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00004808 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00004810 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00004818 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00004820 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00004828 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x00004830 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x00004838 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x00004840 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x00004848 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x00004850 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x00004858 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x00004860 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x00004868 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x00004870 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x00004878 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x00004880 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x00004888 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x00004890 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x00004898 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x000048a0 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x000048a8 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x000048b0 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x000048b8 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x000048c0 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x000048c8 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x000048d0 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x000048d8 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x000048e0 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x000048e8 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x000048f0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x000048f8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00004900 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00004908 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00004910 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00004918 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00004920 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00004928 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x00004930 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x00004938 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x00004940 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x00004948 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x00004950 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x00004958 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x00004960 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x00004968 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x00004970 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x00004978 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x00004980 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x00004988 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x00004990 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x00004998 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x000049a0 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x000049a8 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x000049b0 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x000049b8 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x000049c0 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x000049c8 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x000049d0 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x000049d8 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x000049e0 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x000049e8 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x000049f0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x000049f8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00004a00 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00004a08 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00004a10 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00004a18 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00004a20 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00004a28 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x00004a30 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x00004a38 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x00004a40 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x00004a48 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x00004a50 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00004a58 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x00004a60 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00004a68 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x00004a70 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00004a78 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x00004a80 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00004a88 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x00004a90 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00004a98 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x00004aa0 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00004aa8 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00004ab0 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00004ab8 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00004ac0 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00004ac8 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00004ad0 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00004ad8 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00004ae0 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00004ae8 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00004af0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00004af8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00004b00 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00004b08 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00004b10 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00004b18 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00004b20 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00004b28 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x00004b30 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x00004b38 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x00004b40 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x00004b48 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x00004b50 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x00004b58 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x00004b60 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x00004b68 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x00004b70 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00004b78 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x00004b80 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00004b88 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x00004b90 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00004b98 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x00004ba0 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00004ba8 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00004bb0 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00004bb8 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00004bc0 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00004bc8 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00004bd0 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00004bd8 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00004be0 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00004be8 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00004bf0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00004bf8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00004c00 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00004c08 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00004c10 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00004c18 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00004c20 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00004c28 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00004c30 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004c48 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00004c58 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00004c68 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00004c78 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00004c88 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00004c98 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ca0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00004ca8 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00004cb8 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cc0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00004cc8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cd0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00004cd8 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ce0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00004ce8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004cf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00004cf8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00004d08 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00004d18 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d20 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00004d28 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d30 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00004d38 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d40 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00004d48 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d50 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00004d58 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d60 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00004d68 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d70 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00004d78 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d80 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00004d88 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004d90 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00004d98 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004da0 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00004da8 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004db0 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00004db8 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004dc0 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00004dc8 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004dd0 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00004dd8 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004de0 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00004de8 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004df0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00004df8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00004e00 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00004e08 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00004e10 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00004e18 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00004e20 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00004e28 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00004e30 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00004e38 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00004e40 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00004e48 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00004e50 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00004e58 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00004e60 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00004e68 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00004e70 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00004e78 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x00004e80 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00004e88 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x00004e90 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00004e98 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x00004ea0 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00004ea8 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00004eb0 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00004eb8 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00004ec0 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00004ec8 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00004ed0 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00004ed8 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00004ee0 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00004ee8 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00004ef0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00004ef8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00004f00 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00004f08 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00004f10 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00004f18 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00004f20 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00004f28 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00004f30 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00004f38 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00004f40 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00004f48 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00004f50 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00004f58 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00004f60 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00004f68 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00004f70 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00004f78 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x00004f80 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x00004f88 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x00004f90 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x00004f98 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x00004fa0 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x00004fa8 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00004fb0 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00004fb8 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00004fc0 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00004fc8 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00004fd0 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00004fd8 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00004fe0 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00004fe8 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00004ff0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00004ff8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00005000 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00005008 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00005010 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00005018 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00005020 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00005028 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00005030 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00005038 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00005040 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00005048 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00005050 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00005058 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x00005060 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x00005068 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x00005070 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x00005078 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x00005080 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x00005088 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x00005090 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x00005098 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x000050a0 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x000050a8 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x000050b0 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x000050b8 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x000050c0 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x000050c8 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x000050d0 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x000050d8 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x000050e0 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x000050e8 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x000050f0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x000050f8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00005100 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00005108 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00005110 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00005118 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00005120 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00005128 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00005130 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00005138 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00005140 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00005148 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00005150 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00005158 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00005160 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00005168 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00005170 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00005178 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00005180 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00005188 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00005190 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00005198 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x000051a0 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x000051a8 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x000051b0 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x000051b8 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x000051c0 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x000051c8 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x000051d0 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x000051d8 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x000051e0 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x000051e8 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x000051f0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x000051f8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00005200 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00005208 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00005210 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00005218 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00005220 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00005228 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00005230 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00005238 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00005240 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00005248 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00005250 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00005258 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00005260 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00005268 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00005270 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00005278 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00005280 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00005288 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00005290 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00005298 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x000052a0 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x000052a8 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x000052b0 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x000052b8 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x000052c0 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x000052c8 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x000052d0 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x000052d8 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x000052e0 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x000052e8 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x000052f0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x000052f8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00005300 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00005308 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00005310 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00005318 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00005320 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00005328 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x00005330 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x00005338 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x00005340 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x00005348 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x00005350 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x00005358 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x00005360 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x00005368 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x00005370 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x00005378 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x00005380 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x00005388 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00005390 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00005398 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x000053a0 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x000053a8 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x000053b0 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x000053b8 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x000053c0 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x000053c8 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x000053d0 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x000053d8 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x000053e0 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x000053e8 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x000053f0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x000053f8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00005400 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00005408 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00005410 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00005418 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00005420 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00005428 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x00005430 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x00005438 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x00005440 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x00005448 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x00005450 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x00005458 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x00005460 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x00005468 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x00005470 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x00005478 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x00005480 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x00005488 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00005490 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00005498 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x000054a0 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x000054a8 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x000054b0 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x000054b8 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x000054c0 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x000054c8 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x000054d0 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x000054d8 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x000054e0 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x000054e8 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x000054f0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x000054f8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00005500 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00005508 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00005510 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00005518 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00005520 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00005528 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x00005530 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x00005538 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x00005540 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x00005548 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x00005550 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x00005558 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x00005560 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x00005568 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x00005570 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x00005578 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x00005580 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x00005588 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00005590 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00005598 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x000055a0 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x000055a8 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x000055b0 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x000055b8 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x000055c0 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x000055c8 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x000055d0 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x000055d8 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x000055e0 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x000055e8 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x000055f0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x000055f8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00005600 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00005608 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00005610 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00005618 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00005620 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00005628 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x00005630 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x00005638 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x00005640 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x00005648 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x00005650 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x00005658 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x00005660 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x00005668 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x00005670 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x00005678 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x00005680 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x00005688 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00005690 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00005698 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x000056a0 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x000056a8 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x000056b0 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x000056b8 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x000056c0 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x000056c8 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x000056d0 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x000056d8 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x000056e0 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x000056e8 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x000056f0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x000056f8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00005700 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00005708 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00005710 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00005718 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00005720 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00005728 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x00005730 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x00005738 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x00005740 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x00005748 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x00005750 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x00005758 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x00005760 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x00005768 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x00005770 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x00005778 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x00005780 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x00005788 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x00005790 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x00005798 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x000057a0 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x000057a8 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x000057b0 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x000057b8 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x000057c0 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x000057c8 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x000057d0 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x000057d8 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x000057e0 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x000057e8 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x000057f0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x000057f8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00005800 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00005808 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00005810 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00005818 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00005820 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00005828 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x00005830 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x00005838 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x00005840 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x00005848 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x00005850 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x00005858 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x00005860 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x00005868 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x00005870 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x00005878 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x00005880 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x00005888 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x00005890 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x00005898 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x000058a0 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x000058a8 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x000058b0 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x000058b8 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x000058c0 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x000058c8 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x000058d0 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x000058d8 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x000058e0 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x000058e8 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x000058f0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x000058f8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00005900 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00005908 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00005910 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00005918 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00005920 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00005928 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x00005930 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x00005938 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x00005940 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x00005948 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x00005950 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x00005958 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x00005960 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x00005968 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x00005970 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x00005978 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x00005980 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x00005988 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x00005990 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x00005998 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x000059a0 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x000059a8 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x000059b0 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x000059b8 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x000059c0 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x000059c8 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x000059d0 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x000059d8 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x000059e0 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x000059e8 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x000059f0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x000059f8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00005a00 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00005a08 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00005a10 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00005a18 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00005a20 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00005a28 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x00005a30 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x00005a38 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x00005a40 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x00005a48 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x00005a50 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x00005a58 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x00005a60 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x00005a68 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x00005a70 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x00005a78 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x00005a80 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x00005a88 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x00005a90 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x00005a98 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x00005aa0 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x00005aa8 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00005ab0 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00005ab8 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00005ac0 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00005ac8 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00005ad0 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00005ad8 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00005ae0 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00005ae8 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00005af0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00005af8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00005b00 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00005b08 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00005b10 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00005b18 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00005b20 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00005b28 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x00005b30 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x00005b38 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x00005b40 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x00005b48 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x00005b50 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x00005b58 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x00005b60 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x00005b68 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x00005b70 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x00005b78 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x00005b80 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x00005b88 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x00005b90 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x00005b98 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x00005ba0 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x00005ba8 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00005bb0 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00005bb8 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00005bc0 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00005bc8 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00005bd0 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00005bd8 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00005be0 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00005be8 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00005bf0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00005bf8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00005c00 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00005c08 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00005c10 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00005c18 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00005c20 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00005c28 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x00005c30 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x00005c38 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x00005c40 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x00005c48 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x00005c50 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x00005c58 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x00005c60 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x00005c68 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x00005c70 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x00005c78 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x00005c80 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x00005c88 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x00005c90 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x00005c98 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x00005ca0 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x00005ca8 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00005cb0 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00005cb8 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00005cc0 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00005cc8 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00005cd0 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00005cd8 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00005ce0 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00005ce8 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00005cf0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00005cf8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00005d00 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00005d08 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00005d10 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00005d18 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00005d20 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00005d28 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00005d30 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00005d38 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00005d40 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00005d48 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00005d50 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00005d58 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00005d60 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00005d68 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00005d70 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00005d78 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x00005d80 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x00005d88 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x00005d90 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x00005d98 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x00005da0 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x00005da8 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00005db0 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00005db8 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00005dc0 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00005dc8 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00005dd0 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00005dd8 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00005de0 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00005de8 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00005df0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00005df8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00005e00 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00005e08 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00005e10 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00005e18 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00005e20 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00005e28 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00005e30 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00005e38 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00005e40 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00005e48 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00005e50 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00005e58 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00005e60 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00005e68 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00005e70 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00005e78 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x00005e80 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x00005e88 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x00005e90 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x00005e98 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x00005ea0 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x00005ea8 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00005eb0 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00005eb8 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00005ec0 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00005ec8 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00005ed0 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00005ed8 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00005ee0 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00005ee8 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00005ef0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00005ef8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00005f00 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00005f08 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00005f10 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00005f18 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00005f20 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00005f28 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00005f30 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00005f38 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00005f40 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00005f48 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00005f50 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00005f58 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00005f60 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00005f68 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00005f70 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00005f78 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x00005f80 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x00005f88 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x00005f90 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x00005f98 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x00005fa0 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x00005fa8 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00005fb0 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00005fb8 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00005fc0 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00005fc8 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00005fd0 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00005fd8 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00005fe0 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00005fe8 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00005ff0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00005ff8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00006000 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00006008 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00006010 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00006018 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00006020 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00006028 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00006030 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00006038 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00006040 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00006048 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00006050 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00006058 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x00006060 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x00006068 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x00006070 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x00006078 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x00006080 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x00006088 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x00006090 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x00006098 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x000060a0 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x000060a8 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x000060b0 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x000060b8 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x000060c0 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x000060c8 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x000060d0 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x000060d8 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x000060e0 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x000060e8 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x000060f0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x000060f8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x00006100 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x00006108 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x00006110 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x00006118 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x00006120 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x00006128 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x00006130 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x00006138 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x00006140 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x00006148 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x00006150 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x00006158 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x00006160 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x00006168 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x00006170 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x00006178 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x00006180 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x00006188 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x00006190 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x00006198 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x000061a0 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x000061a8 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x000061b0 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x000061b8 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x000061c0 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x000061c8 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x000061d0 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x000061d8 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x000061e0 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x000061e8 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x000061f0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x000061f8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006200 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00006210 .p2align 4, 0x00 + //0x00006210 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x00006210 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x00006214 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x00006218 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000621c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x00006220 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x00006224 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x00006228 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000622c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x00006230 .long 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006234 .p2align 4, 0x00 + //0x00006240 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006240 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006250 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006260 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006270 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006280 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006290 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062a0 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000062a8 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ac QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000630c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00006310 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006314 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006374 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00006378 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000637c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000638c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000639c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000063dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000063e0 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063e4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006444 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00006448 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000644c QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000645c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000646c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000647c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000648c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000649c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000064ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000064b0 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064b4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006514 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00006518 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000651c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000652c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000653c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000654c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000655c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000656c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000657c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00006580 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006584 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006594 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000065e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000065e8 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065ec QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000660c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000661c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000662c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000663c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000664c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006650 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006654 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006664 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000066b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000066b8 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066bc QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000670c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000671c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006720 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006724 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006784 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00006788 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000678c QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000679c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000067ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000067f0 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067f4 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006854 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00006858 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000685c QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000686c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000687c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000688c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000689c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000068bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000068c0 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000068c4 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000068f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006924 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006928 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000692c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000693c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000694c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000695c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000696c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000697c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000698c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00006990 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00006994 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000069e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000069f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000069f8 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x000069fc QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006a5c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006a60 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00006a64 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ac4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006ac8 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x00006acc QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006b2c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006b30 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x00006b34 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006b94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00006b98 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x00006b9c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bac QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006bfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006c00 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00006c04 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c14 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006c64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006c68 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x00006c6c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c7c QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ccc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00006cd0 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00006cd4 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ce4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006d34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00006d38 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00006d3c QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d4c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006d9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00006da0 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00006da4 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006db4 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006e04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00006e08 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00006e0c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e1c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006e6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006e70 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00006e74 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e84 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006ed4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006ed8 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00006edc QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006eec QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006f3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006f40 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00006f44 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f54 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006fa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00006fa8 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00006fac QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fbc QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000700c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00007010 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00007014 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007024 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007074 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00007078 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x0000707c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000708c QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000709c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000070dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000070e0 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x000070e4 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000070f4 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007144 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00007148 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x0000714c QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000715c QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000716c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000717c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000718c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000719c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000071ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x000071b0 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x000071b4 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071c4 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000071f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007214 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00007218 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x0000721c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000722c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000723c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000724c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000725c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000726c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000727c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007280 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00007284 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00007294 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000072d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000072e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000072e8 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x000072ec QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x000072fc QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000730c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000731c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000732c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000733c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000734c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00007350 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00007354 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00007364 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000073b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000073b8 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x000073bc QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x000073cc QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000073fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000740c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000741c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00007420 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00007424 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00007434 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007484 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00007488 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0000748c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0000749c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000074dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000074ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000074f0 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x000074f4 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00007504 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007514 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007534 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007554 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00007558 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x0000755c QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0000756c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000757c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000758c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000759c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000075bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000075c0 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x000075c4 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x000075d4 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075e4 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000075f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007604 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007624 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00007628 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x0000762c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x0000763c QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000764c QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000765c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000766c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000767c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000768c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007690 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00007694 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x000076a4 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076b4 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000076e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000076f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000076f8 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x000076fc QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0000770c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000771c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000772c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000773c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000774c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000775c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00007760 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00007764 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00007774 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007784 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000077c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000077c8 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x000077cc QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x000077dc QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077ec QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000077fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000780c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000781c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000782c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007830 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x00007834 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x00007844 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007854 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007874 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007884 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007894 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007898 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0000789c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x000078ac QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078bc QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000078ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000078fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00007900 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00007904 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00007914 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007924 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007934 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007944 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007954 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007964 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007968 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0000796c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0000797c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000798c QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000799c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000079cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000079d0 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x000079d4 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x000079e4 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000079f4 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007a34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00007a38 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x00007a3c QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x00007a4c QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a5c QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007a9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00007aa0 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00007aa4 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00007ab4 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ac4 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ad4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007ae4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007af4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00007b04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber.go new file mode 100644 index 000000000..0e8045a74 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vnumber uintptr + +//go:nosplit +func vnumber(s *string, p *int, v *types.JsonState) { + F_vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_subr.go new file mode 100644 index 000000000..0b7524720 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vnumber = 48 +) + +const ( + _stack__vnumber = 112 +) + +const ( + _size__vnumber = 8952 +) + +var ( + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {767, 112}, + {771, 48}, + {772, 40}, + {774, 32}, + {776, 24}, + {778, 16}, + {780, 8}, + {781, 0}, + {8949, 112}, + } +) + +var _cfunc_vnumber = []loader.CFunc{ + {"_vnumber_entry", 0, _entry__vnumber, 0, nil}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_text_amd64.go new file mode 100644 index 000000000..b89b387ec --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vnumber_text_amd64.go @@ -0,0 +1,4378 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_vnumber = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x00, 0x00, 0x30, 0x43, // .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00000004 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00000008 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000000c .long 0 + //0x00000010 LCPI0_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00000010 .quad 4841369599423283200 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00000018 .quad 4985484787499139072 + //0x00000020 .p2align 3, 0x00 + //0x00000020 LCPI0_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00000020 .quad 4831355200913801216 + //0x00000028 LCPI0_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00000028 .quad -4392016835940974592 + //0x00000030 .p2align 4, 0x90 + //0x00000030 _vnumber + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x48, 0x83, 0xec, 0x40, //0x0000003d subq $64, %rsp + 0x49, 0x89, 0xd6, //0x00000041 movq %rdx, %r14 + 0x4c, 0x8b, 0x07, //0x00000044 movq (%rdi), %r8 + 0x4c, 0x8b, 0x5f, 0x08, //0x00000047 movq $8(%rdi), %r11 + 0x48, 0x8b, 0x06, //0x0000004b movq (%rsi), %rax + 0x4c, 0x8b, 0x62, 0x20, //0x0000004e movq $32(%rdx), %r12 + 0x4c, 0x8b, 0x6a, 0x28, //0x00000052 movq $40(%rdx), %r13 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00000056 movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x0000005d movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00000065 movq $0, $16(%rdx) + 0x48, 0x8b, 0x0e, //0x0000006d movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00000070 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd8, //0x00000074 cmpq %r11, %rax + 0x0f, 0x83, 0xa8, 0x02, 0x00, 0x00, //0x00000077 jae LBB0_50 + 0x41, 0x8a, 0x14, 0x00, //0x0000007d movb (%r8,%rax), %dl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000081 movl $1, %r9d + 0x80, 0xfa, 0x2d, //0x00000087 cmpb $45, %dl + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x0000008a jne LBB0_4 + 0x48, 0xff, 0xc0, //0x00000090 incq %rax + 0x4c, 0x39, 0xd8, //0x00000093 cmpq %r11, %rax + 0x0f, 0x83, 0x89, 0x02, 0x00, 0x00, //0x00000096 jae LBB0_50 + 0x41, 0x8a, 0x14, 0x00, //0x0000009c movb (%r8,%rax), %dl + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x000000a0 movl $-1, %r9d + //0x000000a6 LBB0_4 + 0x8d, 0x4a, 0xd0, //0x000000a6 leal $-48(%rdx), %ecx + 0x80, 0xf9, 0x0a, //0x000000a9 cmpb $10, %cl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000000ac jb LBB0_6 + //0x000000b2 LBB0_5 + 0x48, 0x89, 0x06, //0x000000b2 movq %rax, (%rsi) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000000b5 movq $-2, (%r14) + 0xe9, 0x6e, 0x02, 0x00, 0x00, //0x000000bc jmp LBB0_51 + //0x000000c1 LBB0_6 + 0x80, 0xfa, 0x30, //0x000000c1 cmpb $48, %dl + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x000000c4 jne LBB0_10 + 0x48, 0x8d, 0x48, 0x01, //0x000000ca leaq $1(%rax), %rcx + 0x4c, 0x39, 0xd8, //0x000000ce cmpq %r11, %rax + 0x0f, 0x83, 0xd4, 0x00, 0x00, 0x00, //0x000000d1 jae LBB0_21 + 0x41, 0x8a, 0x1c, 0x08, //0x000000d7 movb (%r8,%rcx), %bl + 0x80, 0xc3, 0xd2, //0x000000db addb $-46, %bl + 0x80, 0xfb, 0x37, //0x000000de cmpb $55, %bl + 0x0f, 0x87, 0xc4, 0x00, 0x00, 0x00, //0x000000e1 ja LBB0_21 + 0x0f, 0xb6, 0xfb, //0x000000e7 movzbl %bl, %edi + 0x48, 0xbb, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000ea movabsq $36028797027352577, %rbx + 0x48, 0x0f, 0xa3, 0xfb, //0x000000f4 btq %rdi, %rbx + 0x0f, 0x83, 0xad, 0x00, 0x00, 0x00, //0x000000f8 jae LBB0_21 + //0x000000fe LBB0_10 + 0x4c, 0x39, 0xd8, //0x000000fe cmpq %r11, %rax + 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x00000101 jae LBB0_20 + 0x48, 0xff, 0xc0, //0x00000107 incq %rax + 0x31, 0xc9, //0x0000010a xorl %ecx, %ecx + 0x31, 0xdb, //0x0000010c xorl %ebx, %ebx + 0x45, 0x31, 0xff, //0x0000010e xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000111 .p2align 4, 0x90 + //0x00000120 LBB0_12 + 0x83, 0xfb, 0x12, //0x00000120 cmpl $18, %ebx + 0x0f, 0x8f, 0x17, 0x00, 0x00, 0x00, //0x00000123 jg LBB0_14 + 0x0f, 0xb6, 0xd2, //0x00000129 movzbl %dl, %edx + 0x4b, 0x8d, 0x3c, 0xbf, //0x0000012c leaq (%r15,%r15,4), %rdi + 0x4c, 0x8d, 0x7c, 0x7a, 0xd0, //0x00000130 leaq $-48(%rdx,%rdi,2), %r15 + 0xff, 0xc3, //0x00000135 incl %ebx + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000137 jmp LBB0_15 + 0x90, 0x90, 0x90, 0x90, //0x0000013c .p2align 4, 0x90 + //0x00000140 LBB0_14 + 0xff, 0xc1, //0x00000140 incl %ecx + //0x00000142 LBB0_15 + 0x49, 0x39, 0xc3, //0x00000142 cmpq %rax, %r11 + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00000145 je LBB0_22 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x0000014b movzbl (%r8,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00000150 leal $-48(%rdx), %edi + 0x48, 0xff, 0xc0, //0x00000153 incq %rax + 0x40, 0x80, 0xff, 0x0a, //0x00000156 cmpb $10, %dil + 0x0f, 0x82, 0xc0, 0xff, 0xff, 0xff, //0x0000015a jb LBB0_12 + 0x31, 0xff, //0x00000160 xorl %edi, %edi + 0x85, 0xc9, //0x00000162 testl %ecx, %ecx + 0x40, 0x0f, 0x9f, 0xc7, //0x00000164 setg %dil + 0x80, 0xfa, 0x2e, //0x00000168 cmpb $46, %dl + 0x0f, 0x85, 0xde, 0x02, 0x00, 0x00, //0x0000016b jne LBB0_66 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00000171 movq $8, (%r14) + 0x4c, 0x39, 0xd8, //0x00000178 cmpq %r11, %rax + 0x0f, 0x83, 0xa4, 0x01, 0x00, 0x00, //0x0000017b jae LBB0_50 + 0x89, 0x7d, 0xc0, //0x00000181 movl %edi, $-64(%rbp) + 0x41, 0x8a, 0x14, 0x00, //0x00000184 movb (%r8,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00000188 addb $-48, %dl + 0x41, 0xba, 0x08, 0x00, 0x00, 0x00, //0x0000018b movl $8, %r10d + 0x80, 0xfa, 0x0a, //0x00000191 cmpb $10, %dl + 0x0f, 0x83, 0x18, 0xff, 0xff, 0xff, //0x00000194 jae LBB0_5 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000019a jmp LBB0_24 + //0x0000019f LBB0_20 + 0x31, 0xc9, //0x0000019f xorl %ecx, %ecx + 0x31, 0xdb, //0x000001a1 xorl %ebx, %ebx + 0x45, 0x31, 0xff, //0x000001a3 xorl %r15d, %r15d + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000001a6 jmp LBB0_23 + //0x000001ab LBB0_21 + 0x48, 0x89, 0x0e, //0x000001ab movq %rcx, (%rsi) + 0xe9, 0x7c, 0x01, 0x00, 0x00, //0x000001ae jmp LBB0_51 + //0x000001b3 LBB0_22 + 0x4c, 0x89, 0xd8, //0x000001b3 movq %r11, %rax + //0x000001b6 LBB0_23 + 0x31, 0xd2, //0x000001b6 xorl %edx, %edx + 0x85, 0xc9, //0x000001b8 testl %ecx, %ecx + 0x0f, 0x9f, 0xc2, //0x000001ba setg %dl + 0x89, 0x55, 0xc0, //0x000001bd movl %edx, $-64(%rbp) + 0x41, 0xba, 0x09, 0x00, 0x00, 0x00, //0x000001c0 movl $9, %r10d + //0x000001c6 LBB0_24 + 0x85, 0xc9, //0x000001c6 testl %ecx, %ecx + 0x44, 0x89, 0x4d, 0xc8, //0x000001c8 movl %r9d, $-56(%rbp) + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x000001cc jne LBB0_33 + //0x000001d2 LBB0_25 + 0x4d, 0x85, 0xff, //0x000001d2 testq %r15, %r15 + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x000001d5 jne LBB0_33 + 0x4c, 0x39, 0xd8, //0x000001db cmpq %r11, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x000001de jae LBB0_31 + 0x41, 0x89, 0xc1, //0x000001e4 movl %eax, %r9d + 0x45, 0x29, 0xd9, //0x000001e7 subl %r11d, %r9d + 0x31, 0xdb, //0x000001ea xorl %ebx, %ebx + 0x31, 0xc9, //0x000001ec xorl %ecx, %ecx + 0x90, 0x90, //0x000001ee .p2align 4, 0x90 + //0x000001f0 LBB0_28 + 0x41, 0x80, 0x3c, 0x00, 0x30, //0x000001f0 cmpb $48, (%r8,%rax) + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000001f5 jne LBB0_32 + 0x48, 0xff, 0xc0, //0x000001fb incq %rax + 0xff, 0xc9, //0x000001fe decl %ecx + 0x49, 0x39, 0xc3, //0x00000200 cmpq %rax, %r11 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000203 jne LBB0_28 + 0x45, 0x31, 0xff, //0x00000209 xorl %r15d, %r15d + 0x41, 0x83, 0xfa, 0x09, //0x0000020c cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x00000210 movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x00000214 movq %r11, $-88(%rbp) + 0x0f, 0x84, 0x38, 0x01, 0x00, 0x00, //0x00000218 je LBB0_53 + 0xe9, 0x69, 0x01, 0x00, 0x00, //0x0000021e jmp LBB0_57 + //0x00000223 LBB0_31 + 0x31, 0xc9, //0x00000223 xorl %ecx, %ecx + 0x31, 0xdb, //0x00000225 xorl %ebx, %ebx + //0x00000227 LBB0_32 + 0x45, 0x31, 0xff, //0x00000227 xorl %r15d, %r15d + //0x0000022a LBB0_33 + 0x4c, 0x39, 0xd8, //0x0000022a cmpq %r11, %rax + 0x0f, 0x83, 0x41, 0x00, 0x00, 0x00, //0x0000022d jae LBB0_38 + 0x83, 0xfb, 0x12, //0x00000233 cmpl $18, %ebx + 0x0f, 0x8f, 0x38, 0x00, 0x00, 0x00, //0x00000236 jg LBB0_38 + 0x90, 0x90, 0x90, 0x90, //0x0000023c .p2align 4, 0x90 + //0x00000240 LBB0_35 + 0x41, 0x0f, 0xb6, 0x14, 0x00, //0x00000240 movzbl (%r8,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00000245 leal $-48(%rdx), %edi + 0x40, 0x80, 0xff, 0x09, //0x00000248 cmpb $9, %dil + 0x0f, 0x87, 0x22, 0x00, 0x00, 0x00, //0x0000024c ja LBB0_38 + 0x4b, 0x8d, 0x3c, 0xbf, //0x00000252 leaq (%r15,%r15,4), %rdi + 0x4c, 0x8d, 0x7c, 0x7a, 0xd0, //0x00000256 leaq $-48(%rdx,%rdi,2), %r15 + 0xff, 0xc9, //0x0000025b decl %ecx + 0x48, 0xff, 0xc0, //0x0000025d incq %rax + 0x83, 0xfb, 0x11, //0x00000260 cmpl $17, %ebx + 0x0f, 0x8f, 0x0b, 0x00, 0x00, 0x00, //0x00000263 jg LBB0_38 + 0xff, 0xc3, //0x00000269 incl %ebx + 0x4c, 0x39, 0xd8, //0x0000026b cmpq %r11, %rax + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x0000026e jb LBB0_35 + //0x00000274 LBB0_38 + 0x4c, 0x39, 0xd8, //0x00000274 cmpq %r11, %rax + 0x0f, 0x83, 0xc1, 0x00, 0x00, 0x00, //0x00000277 jae LBB0_52 + 0x41, 0x8a, 0x1c, 0x00, //0x0000027d movb (%r8,%rax), %bl + 0x8d, 0x53, 0xd0, //0x00000281 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x00000284 cmpb $9, %dl + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x00000287 ja LBB0_44 + 0x49, 0x8d, 0x53, 0xff, //0x0000028d leaq $-1(%r11), %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000291 .p2align 4, 0x90 + //0x000002a0 LBB0_41 + 0x48, 0x39, 0xc2, //0x000002a0 cmpq %rax, %rdx + 0x0f, 0x84, 0xc3, 0x01, 0x00, 0x00, //0x000002a3 je LBB0_67 + 0x41, 0x0f, 0xb6, 0x5c, 0x00, 0x01, //0x000002a9 movzbl $1(%r8,%rax), %ebx + 0x48, 0xff, 0xc0, //0x000002af incq %rax + 0x8d, 0x7b, 0xd0, //0x000002b2 leal $-48(%rbx), %edi + 0x40, 0x80, 0xff, 0x09, //0x000002b5 cmpb $9, %dil + 0x0f, 0x86, 0xe1, 0xff, 0xff, 0xff, //0x000002b9 jbe LBB0_41 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x000002bf movl $1, $-64(%rbp) + //0x000002c6 LBB0_44 + 0x80, 0xcb, 0x20, //0x000002c6 orb $32, %bl + 0x80, 0xfb, 0x65, //0x000002c9 cmpb $101, %bl + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x000002cc jne LBB0_52 + 0x48, 0x8d, 0x50, 0x01, //0x000002d2 leaq $1(%rax), %rdx + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000002d6 movq $8, (%r14) + 0x4c, 0x39, 0xda, //0x000002dd cmpq %r11, %rdx + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x000002e0 jae LBB0_50 + 0x41, 0x8a, 0x1c, 0x10, //0x000002e6 movb (%r8,%rdx), %bl + 0x80, 0xfb, 0x2d, //0x000002ea cmpb $45, %bl + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x000002ed je LBB0_48 + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x000002f3 movl $1, %r10d + 0x80, 0xfb, 0x2b, //0x000002f9 cmpb $43, %bl + 0x0f, 0x85, 0x0b, 0x05, 0x00, 0x00, //0x000002fc jne LBB0_102 + //0x00000302 LBB0_48 + 0x48, 0x83, 0xc0, 0x02, //0x00000302 addq $2, %rax + 0x4c, 0x39, 0xd8, //0x00000306 cmpq %r11, %rax + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00000309 jae LBB0_50 + 0x31, 0xd2, //0x0000030f xorl %edx, %edx + 0x80, 0xfb, 0x2b, //0x00000311 cmpb $43, %bl + 0x0f, 0x94, 0xc2, //0x00000314 sete %dl + 0x44, 0x8d, 0x54, 0x12, 0xff, //0x00000317 leal $-1(%rdx,%rdx), %r10d + 0x41, 0x8a, 0x1c, 0x00, //0x0000031c movb (%r8,%rax), %bl + 0xe9, 0xeb, 0x04, 0x00, 0x00, //0x00000320 jmp LBB0_103 + //0x00000325 LBB0_50 + 0x4c, 0x89, 0x1e, //0x00000325 movq %r11, (%rsi) + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x00000328 movq $-1, (%r14) + //0x0000032f LBB0_51 + 0x48, 0x83, 0xc4, 0x40, //0x0000032f addq $64, %rsp + 0x5b, //0x00000333 popq %rbx + 0x41, 0x5c, //0x00000334 popq %r12 + 0x41, 0x5d, //0x00000336 popq %r13 + 0x41, 0x5e, //0x00000338 popq %r14 + 0x41, 0x5f, //0x0000033a popq %r15 + 0x5d, //0x0000033c popq %rbp + 0xc3, //0x0000033d retq + //0x0000033e LBB0_52 + 0x41, 0x89, 0xc9, //0x0000033e movl %ecx, %r9d + 0x49, 0x89, 0xc3, //0x00000341 movq %rax, %r11 + 0x41, 0x83, 0xfa, 0x09, //0x00000344 cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x00000348 movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x0000034c movq %r11, $-88(%rbp) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00000350 jne LBB0_57 + //0x00000356 LBB0_53 + 0x45, 0x85, 0xc9, //0x00000356 testl %r9d, %r9d + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000359 jne LBB0_56 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000035f movabsq $-9223372036854775808, %rax + 0x48, 0x63, 0x4d, 0xc8, //0x00000369 movslq $-56(%rbp), %rcx + 0x4d, 0x85, 0xff, //0x0000036d testq %r15, %r15 + 0x0f, 0x89, 0x3d, 0x01, 0x00, 0x00, //0x00000370 jns LBB0_70 + 0x4c, 0x89, 0xfa, //0x00000376 movq %r15, %rdx + 0x48, 0x21, 0xca, //0x00000379 andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x0000037c cmpq %rax, %rdx + 0x0f, 0x84, 0x2e, 0x01, 0x00, 0x00, //0x0000037f je LBB0_70 + //0x00000385 LBB0_56 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00000385 movq $8, (%r14) + //0x0000038c LBB0_57 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000038c movabsq $-9223372036854775808, %rdi + 0x4c, 0x89, 0xf8, //0x00000396 movq %r15, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000399 shrq $52, %rax + 0x4c, 0x89, 0x75, 0x98, //0x0000039d movq %r14, $-104(%rbp) + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000003a1 je LBB0_61 + //0x000003a7 LBB0_58 + 0x41, 0x8d, 0x81, 0x5c, 0x01, 0x00, 0x00, //0x000003a7 leal $348(%r9), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000003ae cmpl $695, %eax + 0x0f, 0x87, 0x88, 0x02, 0x00, 0x00, //0x000003b3 ja LBB0_85 + 0x4d, 0x85, 0xff, //0x000003b9 testq %r15, %r15 + 0x0f, 0x84, 0x7c, 0x01, 0x00, 0x00, //0x000003bc je LBB0_76 + //0x000003c2 LBB0_60 + 0x4d, 0x0f, 0xbd, 0xd7, //0x000003c2 bsrq %r15, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000003c6 xorq $63, %r10 + 0xe9, 0x75, 0x01, 0x00, 0x00, //0x000003ca jmp LBB0_77 + //0x000003cf LBB0_61 + 0x66, 0x49, 0x0f, 0x6e, 0xc7, //0x000003cf movq %r15, %xmm0 + 0x66, 0x0f, 0x62, 0x05, 0x24, 0xfc, 0xff, 0xff, //0x000003d4 punpckldq $-988(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0x2c, 0xfc, 0xff, 0xff, //0x000003dc subpd $-980(%rip), %xmm0 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0x28, 0xc8, //0x000003e4 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x000003e8 unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x000003ec addsd %xmm0, %xmm1 + 0x66, 0x48, 0x0f, 0x7e, 0xc8, //0x000003f0 movq %xmm1, %rax + 0x8b, 0x4d, 0xc8, //0x000003f5 movl $-56(%rbp), %ecx + 0x89, 0xcb, //0x000003f8 movl %ecx, %ebx + 0xc1, 0xeb, 0x1f, //0x000003fa shrl $31, %ebx + 0x48, 0xc1, 0xe3, 0x3f, //0x000003fd shlq $63, %rbx + 0x48, 0x09, 0xc3, //0x00000401 orq %rax, %rbx + 0x4d, 0x85, 0xff, //0x00000404 testq %r15, %r15 + 0x0f, 0x84, 0xe0, 0x1e, 0x00, 0x00, //0x00000407 je LBB0_507 + 0x45, 0x85, 0xc9, //0x0000040d testl %r9d, %r9d + 0x0f, 0x84, 0xd7, 0x1e, 0x00, 0x00, //0x00000410 je LBB0_507 + 0x66, 0x48, 0x0f, 0x6e, 0xc3, //0x00000416 movq %rbx, %xmm0 + 0x41, 0x8d, 0x41, 0xff, //0x0000041b leal $-1(%r9), %eax + 0x83, 0xf8, 0x24, //0x0000041f cmpl $36, %eax + 0x0f, 0x87, 0x65, 0x00, 0x00, 0x00, //0x00000422 ja LBB0_68 + 0x41, 0x83, 0xf9, 0x17, //0x00000428 cmpl $23, %r9d + 0x0f, 0x8c, 0xc1, 0x00, 0x00, 0x00, //0x0000042c jl LBB0_71 + 0x49, 0x63, 0xc1, //0x00000432 movslq %r9d, %rax + 0x48, 0x8d, 0x0d, 0xf4, 0x1e, 0x00, 0x00, //0x00000435 leaq $7924(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x84, 0xc1, 0x50, 0xff, 0xff, 0xff, //0x0000043c mulsd $-176(%rcx,%rax,8), %xmm0 + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00000445 movl $22, %eax + 0xe9, 0xa7, 0x00, 0x00, 0x00, //0x0000044a jmp LBB0_72 + //0x0000044f LBB0_66 + 0x89, 0x7d, 0xc0, //0x0000044f movl %edi, $-64(%rbp) + 0x48, 0xff, 0xc8, //0x00000452 decq %rax + 0x41, 0xba, 0x09, 0x00, 0x00, 0x00, //0x00000455 movl $9, %r10d + 0x85, 0xc9, //0x0000045b testl %ecx, %ecx + 0x44, 0x89, 0x4d, 0xc8, //0x0000045d movl %r9d, $-56(%rbp) + 0x0f, 0x84, 0x6b, 0xfd, 0xff, 0xff, //0x00000461 je LBB0_25 + 0xe9, 0xbe, 0xfd, 0xff, 0xff, //0x00000467 jmp LBB0_33 + //0x0000046c LBB0_67 + 0xc7, 0x45, 0xc0, 0x01, 0x00, 0x00, 0x00, //0x0000046c movl $1, $-64(%rbp) + 0x41, 0x89, 0xc9, //0x00000473 movl %ecx, %r9d + 0x41, 0x83, 0xfa, 0x09, //0x00000476 cmpl $9, %r10d + 0x48, 0x89, 0x75, 0xa0, //0x0000047a movq %rsi, $-96(%rbp) + 0x4c, 0x89, 0x5d, 0xa8, //0x0000047e movq %r11, $-88(%rbp) + 0x0f, 0x84, 0xce, 0xfe, 0xff, 0xff, //0x00000482 je LBB0_53 + 0xe9, 0xff, 0xfe, 0xff, 0xff, //0x00000488 jmp LBB0_57 + //0x0000048d LBB0_68 + 0x41, 0x83, 0xf9, 0xea, //0x0000048d cmpl $-22, %r9d + 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00000491 jb LBB0_58 + 0x41, 0xf7, 0xd9, //0x00000497 negl %r9d + 0x49, 0x63, 0xc1, //0x0000049a movslq %r9d, %rax + 0x48, 0x8d, 0x0d, 0x8c, 0x1e, 0x00, 0x00, //0x0000049d leaq $7820(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x5e, 0x04, 0xc1, //0x000004a4 divsd (%rcx,%rax,8), %xmm0 + 0x66, 0x48, 0x0f, 0x7e, 0xc3, //0x000004a9 movq %xmm0, %rbx + 0xe9, 0x3a, 0x1e, 0x00, 0x00, //0x000004ae jmp LBB0_507 + //0x000004b3 LBB0_70 + 0x66, 0x49, 0x0f, 0x6e, 0xc7, //0x000004b3 movq %r15, %xmm0 + 0x4c, 0x0f, 0xaf, 0xf9, //0x000004b8 imulq %rcx, %r15 + 0x66, 0x0f, 0x62, 0x05, 0x3c, 0xfb, 0xff, 0xff, //0x000004bc punpckldq $-1220(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0x44, 0xfb, 0xff, 0xff, //0x000004c4 subpd $-1212(%rip), %xmm0 /* LCPI0_1+0(%rip) */ + 0x4d, 0x89, 0x7e, 0x10, //0x000004cc movq %r15, $16(%r14) + 0x66, 0x0f, 0x28, 0xc8, //0x000004d0 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x000004d4 unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x000004d8 addsd %xmm0, %xmm1 + 0x48, 0x21, 0xc8, //0x000004dc andq %rcx, %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x000004df movq %xmm1, %rcx + 0x48, 0x09, 0xc1, //0x000004e4 orq %rax, %rcx + 0x49, 0x89, 0x4e, 0x08, //0x000004e7 movq %rcx, $8(%r14) + 0x4c, 0x89, 0x1e, //0x000004eb movq %r11, (%rsi) + 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x000004ee jmp LBB0_51 + //0x000004f3 LBB0_71 + 0x44, 0x89, 0xc8, //0x000004f3 movl %r9d, %eax + //0x000004f6 LBB0_72 + 0x66, 0x0f, 0x2e, 0x05, 0x22, 0xfb, 0xff, 0xff, //0x000004f6 ucomisd $-1246(%rip), %xmm0 /* LCPI0_2+0(%rip) */ + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000004fe ja LBB0_75 + 0xf2, 0x0f, 0x10, 0x0d, 0x1c, 0xfb, 0xff, 0xff, //0x00000504 movsd $-1252(%rip), %xmm1 /* LCPI0_3+0(%rip) */ + 0x66, 0x0f, 0x2e, 0xc8, //0x0000050c ucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x18, 0x00, 0x00, 0x00, //0x00000510 ja LBB0_75 + 0x89, 0xc0, //0x00000516 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x11, 0x1e, 0x00, 0x00, //0x00000518 leaq $7697(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x0000051f mulsd (%rcx,%rax,8), %xmm0 + 0x66, 0x48, 0x0f, 0x7e, 0xc3, //0x00000524 movq %xmm0, %rbx + 0xe9, 0xbf, 0x1d, 0x00, 0x00, //0x00000529 jmp LBB0_507 + //0x0000052e LBB0_75 + 0x41, 0x8d, 0x81, 0x5c, 0x01, 0x00, 0x00, //0x0000052e leal $348(%r9), %eax + 0x4d, 0x85, 0xff, //0x00000535 testq %r15, %r15 + 0x0f, 0x85, 0x84, 0xfe, 0xff, 0xff, //0x00000538 jne LBB0_60 + //0x0000053e LBB0_76 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x0000053e movl $64, %r10d + //0x00000544 LBB0_77 + 0x4c, 0x89, 0xfb, //0x00000544 movq %r15, %rbx + 0x44, 0x89, 0xd1, //0x00000547 movl %r10d, %ecx + 0x48, 0xd3, 0xe3, //0x0000054a shlq %cl, %rbx + 0x89, 0xc6, //0x0000054d movl %eax, %esi + 0x48, 0xc1, 0xe6, 0x04, //0x0000054f shlq $4, %rsi + 0x48, 0x8d, 0x05, 0x96, 0x1e, 0x00, 0x00, //0x00000553 leaq $7830(%rip), %rax /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x8b, 0x44, 0x06, 0x08, //0x0000055a movq $8(%rsi,%rax), %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000055f movq %rax, $-80(%rbp) + 0x48, 0xf7, 0xe3, //0x00000563 mulq %rbx + 0x49, 0x89, 0xc6, //0x00000566 movq %rax, %r14 + 0x49, 0x89, 0xd3, //0x00000569 movq %rdx, %r11 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000056c andl $511, %edx + 0x48, 0x89, 0xd9, //0x00000572 movq %rbx, %rcx + 0x48, 0xf7, 0xd1, //0x00000575 notq %rcx + 0x48, 0x39, 0xc8, //0x00000578 cmpq %rcx, %rax + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x0000057b jbe LBB0_82 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00000581 cmpl $511, %edx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000587 jne LBB0_82 + 0x48, 0x89, 0xd8, //0x0000058d movq %rbx, %rax + 0x48, 0x8d, 0x15, 0x59, 0x1e, 0x00, 0x00, //0x00000590 leaq $7769(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x16, //0x00000597 mulq (%rsi,%rdx) + 0x49, 0x01, 0xd6, //0x0000059b addq %rdx, %r14 + 0x49, 0x83, 0xd3, 0x00, //0x0000059e adcq $0, %r11 + 0x44, 0x89, 0xda, //0x000005a2 movl %r11d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x000005a5 andl $511, %edx + 0x48, 0x39, 0xc8, //0x000005ab cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x000005ae jbe LBB0_82 + 0x49, 0x83, 0xfe, 0xff, //0x000005b4 cmpq $-1, %r14 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000005b8 jne LBB0_82 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x000005be cmpl $511, %edx + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x000005c4 je LBB0_85 + //0x000005ca LBB0_82 + 0x4c, 0x89, 0xd8, //0x000005ca movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x000005cd shrq $63, %rax + 0x8d, 0x48, 0x09, //0x000005d1 leal $9(%rax), %ecx + 0x49, 0xd3, 0xeb, //0x000005d4 shrq %cl, %r11 + 0x4c, 0x09, 0xf2, //0x000005d7 orq %r14, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000005da jne LBB0_84 + 0x44, 0x89, 0xd9, //0x000005e0 movl %r11d, %ecx + 0x83, 0xe1, 0x03, //0x000005e3 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x000005e6 cmpl $1, %ecx + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x000005e9 je LBB0_85 + //0x000005ef LBB0_84 + 0x41, 0x69, 0xc9, 0x6a, 0x52, 0x03, 0x00, //0x000005ef imull $217706, %r9d, %ecx + 0xc1, 0xf9, 0x10, //0x000005f6 sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x000005f9 addl $1087, %ecx + 0x4c, 0x63, 0xf1, //0x000005ff movslq %ecx, %r14 + 0x4c, 0x89, 0xf2, //0x00000602 movq %r14, %rdx + 0x4c, 0x29, 0xd2, //0x00000605 subq %r10, %rdx + 0x49, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, //0x00000608 movabsq $126100789566373888, %r10 + 0x48, 0x83, 0xf0, 0x01, //0x00000612 xorq $1, %rax + 0x48, 0x29, 0xc2, //0x00000616 subq %rax, %rdx + 0x44, 0x89, 0xd8, //0x00000619 movl %r11d, %eax + 0x83, 0xe0, 0x01, //0x0000061c andl $1, %eax + 0x4c, 0x01, 0xd8, //0x0000061f addq %r11, %rax + 0x48, 0x89, 0xc1, //0x00000622 movq %rax, %rcx + 0x4c, 0x21, 0xd1, //0x00000625 andq %r10, %rcx + 0x48, 0x83, 0xf9, 0x01, //0x00000628 cmpq $1, %rcx + 0x48, 0x83, 0xda, 0xff, //0x0000062c sbbq $-1, %rdx + 0x48, 0x8d, 0x5a, 0xff, //0x00000630 leaq $-1(%rdx), %rbx + 0x48, 0x81, 0xfb, 0xfd, 0x07, 0x00, 0x00, //0x00000634 cmpq $2045, %rbx + 0x0f, 0x86, 0x68, 0x00, 0x00, 0x00, //0x0000063b jbe LBB0_90 + //0x00000641 LBB0_85 + 0x48, 0x8b, 0x45, 0xa0, //0x00000641 movq $-96(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00000645 movq (%rax), %rsi + 0x4d, 0x8d, 0x14, 0x30, //0x00000648 leaq (%r8,%rsi), %r10 + 0x48, 0x8b, 0x4d, 0xa8, //0x0000064c movq $-88(%rbp), %rcx + 0x48, 0x29, 0xf1, //0x00000650 subq %rsi, %rcx + 0x4d, 0x85, 0xed, //0x00000653 testq %r13, %r13 + 0x0f, 0x84, 0xc5, 0x02, 0x00, 0x00, //0x00000656 je LBB0_116 + 0x41, 0xc6, 0x04, 0x24, 0x00, //0x0000065c movb $0, (%r12) + 0x49, 0x83, 0xfd, 0x01, //0x00000661 cmpq $1, %r13 + 0x0f, 0x84, 0xb6, 0x02, 0x00, 0x00, //0x00000665 je LBB0_116 + 0x4d, 0x8d, 0x4d, 0xff, //0x0000066b leaq $-1(%r13), %r9 + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000066f movl $1, %edi + 0x49, 0x83, 0xf9, 0x20, //0x00000674 cmpq $32, %r9 + 0x0f, 0x82, 0x92, 0x02, 0x00, 0x00, //0x00000678 jb LBB0_115 + 0x4c, 0x89, 0xcf, //0x0000067e movq %r9, %rdi + 0x48, 0x83, 0xe7, 0xe0, //0x00000681 andq $-32, %rdi + 0x48, 0x8d, 0x57, 0xe0, //0x00000685 leaq $-32(%rdi), %rdx + 0x48, 0x89, 0xd3, //0x00000689 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x0000068c shrq $5, %rbx + 0x48, 0xff, 0xc3, //0x00000690 incq %rbx + 0x89, 0xd8, //0x00000693 movl %ebx, %eax + 0x83, 0xe0, 0x03, //0x00000695 andl $3, %eax + 0x48, 0x83, 0xfa, 0x60, //0x00000698 cmpq $96, %rdx + 0x0f, 0x83, 0xcf, 0x01, 0x00, 0x00, //0x0000069c jae LBB0_108 + 0x31, 0xdb, //0x000006a2 xorl %ebx, %ebx + 0xe9, 0x1a, 0x02, 0x00, 0x00, //0x000006a4 jmp LBB0_110 + //0x000006a9 LBB0_90 + 0x48, 0x83, 0xf9, 0x01, //0x000006a9 cmpq $1, %rcx + 0xb1, 0x02, //0x000006ad movb $2, %cl + 0x80, 0xd9, 0x00, //0x000006af sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x000006b2 shrq %cl, %rax + 0x48, 0xc1, 0xe2, 0x34, //0x000006b5 shlq $52, %rdx + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000006b9 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x000006c3 andq %rcx, %rax + 0x48, 0x09, 0xd0, //0x000006c6 orq %rdx, %rax + 0x48, 0x89, 0xc3, //0x000006c9 movq %rax, %rbx + 0x48, 0x09, 0xfb, //0x000006cc orq %rdi, %rbx + 0x8b, 0x4d, 0xc8, //0x000006cf movl $-56(%rbp), %ecx + 0x83, 0xf9, 0xff, //0x000006d2 cmpl $-1, %ecx + 0x48, 0x0f, 0x45, 0xd8, //0x000006d5 cmovneq %rax, %rbx + 0x83, 0x7d, 0xc0, 0x00, //0x000006d9 cmpl $0, $-64(%rbp) + 0x0f, 0x84, 0x0a, 0x1c, 0x00, 0x00, //0x000006dd je LBB0_507 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x000006e3 movl $64, %ecx + 0x49, 0xff, 0xc7, //0x000006e8 incq %r15 + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000006eb je LBB0_93 + 0x49, 0x0f, 0xbd, 0xcf, //0x000006f1 bsrq %r15, %rcx + 0x48, 0x83, 0xf1, 0x3f, //0x000006f5 xorq $63, %rcx + //0x000006f9 LBB0_93 + 0x48, 0x89, 0x4d, 0xc0, //0x000006f9 movq %rcx, $-64(%rbp) + 0x49, 0xd3, 0xe7, //0x000006fd shlq %cl, %r15 + 0x48, 0x8b, 0x45, 0xb0, //0x00000700 movq $-80(%rbp), %rax + 0x49, 0xf7, 0xe7, //0x00000704 mulq %r15 + 0x49, 0x89, 0xc3, //0x00000707 movq %rax, %r11 + 0x49, 0x89, 0xd1, //0x0000070a movq %rdx, %r9 + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x0000070d andl $511, %edx + 0x4c, 0x89, 0xf9, //0x00000713 movq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00000716 notq %rcx + 0x48, 0x39, 0xc8, //0x00000719 cmpq %rcx, %rax + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x0000071c jbe LBB0_98 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x00000722 cmpl $511, %edx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00000728 jne LBB0_98 + 0x4c, 0x89, 0xf8, //0x0000072e movq %r15, %rax + 0x48, 0x8d, 0x15, 0xb8, 0x1c, 0x00, 0x00, //0x00000731 leaq $7352(%rip), %rdx /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0xf7, 0x24, 0x16, //0x00000738 mulq (%rsi,%rdx) + 0x49, 0x01, 0xd3, //0x0000073c addq %rdx, %r11 + 0x49, 0x83, 0xd1, 0x00, //0x0000073f adcq $0, %r9 + 0x44, 0x89, 0xca, //0x00000743 movl %r9d, %edx + 0x81, 0xe2, 0xff, 0x01, 0x00, 0x00, //0x00000746 andl $511, %edx + 0x48, 0x39, 0xc8, //0x0000074c cmpq %rcx, %rax + 0x0f, 0x86, 0x16, 0x00, 0x00, 0x00, //0x0000074f jbe LBB0_98 + 0x49, 0x83, 0xfb, 0xff, //0x00000755 cmpq $-1, %r11 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00000759 jne LBB0_98 + 0x81, 0xfa, 0xff, 0x01, 0x00, 0x00, //0x0000075f cmpl $511, %edx + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00000765 je LBB0_85 + //0x0000076b LBB0_98 + 0x4c, 0x89, 0xc8, //0x0000076b movq %r9, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x0000076e shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00000772 leal $9(%rax), %ecx + 0x49, 0xd3, 0xe9, //0x00000775 shrq %cl, %r9 + 0x4c, 0x09, 0xda, //0x00000778 orq %r11, %rdx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x0000077b jne LBB0_100 + 0x44, 0x89, 0xc9, //0x00000781 movl %r9d, %ecx + 0x83, 0xe1, 0x03, //0x00000784 andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00000787 cmpl $1, %ecx + 0x0f, 0x84, 0xb1, 0xfe, 0xff, 0xff, //0x0000078a je LBB0_85 + //0x00000790 LBB0_100 + 0x4c, 0x2b, 0x75, 0xc0, //0x00000790 subq $-64(%rbp), %r14 + 0x48, 0x83, 0xf0, 0x01, //0x00000794 xorq $1, %rax + 0x49, 0x29, 0xc6, //0x00000798 subq %rax, %r14 + 0x44, 0x89, 0xc8, //0x0000079b movl %r9d, %eax + 0x83, 0xe0, 0x01, //0x0000079e andl $1, %eax + 0x4c, 0x01, 0xc8, //0x000007a1 addq %r9, %rax + 0x49, 0x21, 0xc2, //0x000007a4 andq %rax, %r10 + 0x49, 0x83, 0xfa, 0x01, //0x000007a7 cmpq $1, %r10 + 0x49, 0x83, 0xde, 0xff, //0x000007ab sbbq $-1, %r14 + 0x49, 0x8d, 0x4e, 0xff, //0x000007af leaq $-1(%r14), %rcx + 0x48, 0x81, 0xf9, 0xfd, 0x07, 0x00, 0x00, //0x000007b3 cmpq $2045, %rcx + 0x0f, 0x87, 0x81, 0xfe, 0xff, 0xff, //0x000007ba ja LBB0_85 + 0x49, 0x83, 0xfa, 0x01, //0x000007c0 cmpq $1, %r10 + 0xb1, 0x02, //0x000007c4 movb $2, %cl + 0x80, 0xd9, 0x00, //0x000007c6 sbbb $0, %cl + 0x48, 0xd3, 0xe8, //0x000007c9 shrq %cl, %rax + 0x49, 0xc1, 0xe6, 0x34, //0x000007cc shlq $52, %r14 + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000007d0 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xc8, //0x000007da andq %rcx, %rax + 0x4c, 0x09, 0xf0, //0x000007dd orq %r14, %rax + 0x48, 0x89, 0xc1, //0x000007e0 movq %rax, %rcx + 0x48, 0x09, 0xf9, //0x000007e3 orq %rdi, %rcx + 0x83, 0x7d, 0xc8, 0xff, //0x000007e6 cmpl $-1, $-56(%rbp) + 0x48, 0x0f, 0x45, 0xc8, //0x000007ea cmovneq %rax, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xc3, //0x000007ee movq %rbx, %xmm0 + 0x66, 0x48, 0x0f, 0x6e, 0xc9, //0x000007f3 movq %rcx, %xmm1 + 0x66, 0x0f, 0x2e, 0xc1, //0x000007f8 ucomisd %xmm1, %xmm0 + 0x0f, 0x85, 0x3f, 0xfe, 0xff, 0xff, //0x000007fc jne LBB0_85 + 0x0f, 0x8b, 0xe5, 0x1a, 0x00, 0x00, //0x00000802 jnp LBB0_507 + 0xe9, 0x34, 0xfe, 0xff, 0xff, //0x00000808 jmp LBB0_85 + //0x0000080d LBB0_102 + 0x48, 0x89, 0xd0, //0x0000080d movq %rdx, %rax + //0x00000810 LBB0_103 + 0x8d, 0x53, 0xd0, //0x00000810 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x00000813 cmpb $9, %dl + 0x0f, 0x87, 0x96, 0xf8, 0xff, 0xff, //0x00000816 ja LBB0_5 + 0x45, 0x31, 0xc9, //0x0000081c xorl %r9d, %r9d + 0x4c, 0x39, 0xd8, //0x0000081f cmpq %r11, %rax + 0x48, 0x89, 0x75, 0xa0, //0x00000822 movq %rsi, $-96(%rbp) + 0x0f, 0x83, 0x43, 0x02, 0x00, 0x00, //0x00000826 jae LBB0_138 + 0x4c, 0x89, 0xdf, //0x0000082c movq %r11, %rdi + 0x49, 0xff, 0xcb, //0x0000082f decq %r11 + 0x45, 0x31, 0xc9, //0x00000832 xorl %r9d, %r9d + //0x00000835 LBB0_106 + 0x44, 0x89, 0xce, //0x00000835 movl %r9d, %esi + 0x41, 0x81, 0xf9, 0x10, 0x27, 0x00, 0x00, //0x00000838 cmpl $10000, %r9d + 0x8d, 0x14, 0xb6, //0x0000083f leal (%rsi,%rsi,4), %edx + 0x0f, 0xb6, 0xdb, //0x00000842 movzbl %bl, %ebx + 0x44, 0x8d, 0x4c, 0x53, 0xd0, //0x00000845 leal $-48(%rbx,%rdx,2), %r9d + 0x44, 0x0f, 0x4d, 0xce, //0x0000084a cmovgel %esi, %r9d + 0x49, 0x39, 0xc3, //0x0000084e cmpq %rax, %r11 + 0x0f, 0x84, 0x15, 0x02, 0x00, 0x00, //0x00000851 je LBB0_137 + 0x41, 0x0f, 0xb6, 0x5c, 0x00, 0x01, //0x00000857 movzbl $1(%r8,%rax), %ebx + 0x48, 0xff, 0xc0, //0x0000085d incq %rax + 0x8d, 0x53, 0xd0, //0x00000860 leal $-48(%rbx), %edx + 0x80, 0xfa, 0x0a, //0x00000863 cmpb $10, %dl + 0x0f, 0x82, 0xc9, 0xff, 0xff, 0xff, //0x00000866 jb LBB0_106 + 0xe9, 0xfe, 0x01, 0x00, 0x00, //0x0000086c jmp LBB0_138 + //0x00000871 LBB0_108 + 0x48, 0x89, 0xc2, //0x00000871 movq %rax, %rdx + 0x48, 0x29, 0xda, //0x00000874 subq %rbx, %rdx + 0x31, 0xdb, //0x00000877 xorl %ebx, %ebx + 0x66, 0x0f, 0x57, 0xc0, //0x00000879 xorpd %xmm0, %xmm0 + //0x0000087d LBB0_109 + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x01, //0x0000087d movupd %xmm0, $1(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x11, //0x00000884 movupd %xmm0, $17(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x21, //0x0000088b movupd %xmm0, $33(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x31, //0x00000892 movupd %xmm0, $49(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x41, //0x00000899 movupd %xmm0, $65(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x51, //0x000008a0 movupd %xmm0, $81(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x61, //0x000008a7 movupd %xmm0, $97(%r12,%rbx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x1c, 0x71, //0x000008ae movupd %xmm0, $113(%r12,%rbx) + 0x48, 0x83, 0xeb, 0x80, //0x000008b5 subq $-128, %rbx + 0x48, 0x83, 0xc2, 0x04, //0x000008b9 addq $4, %rdx + 0x0f, 0x85, 0xba, 0xff, 0xff, 0xff, //0x000008bd jne LBB0_109 + //0x000008c3 LBB0_110 + 0x48, 0x85, 0xc0, //0x000008c3 testq %rax, %rax + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000008c6 je LBB0_113 + 0x48, 0xf7, 0xd8, //0x000008cc negq %rax + 0x66, 0x0f, 0x57, 0xc0, //0x000008cf xorpd %xmm0, %xmm0 + //0x000008d3 LBB0_112 + 0x48, 0x89, 0xda, //0x000008d3 movq %rbx, %rdx + 0x48, 0x83, 0xca, 0x01, //0x000008d6 orq $1, %rdx + 0x66, 0x41, 0x0f, 0x11, 0x04, 0x14, //0x000008da movupd %xmm0, (%r12,%rdx) + 0x66, 0x41, 0x0f, 0x11, 0x44, 0x14, 0x10, //0x000008e0 movupd %xmm0, $16(%r12,%rdx) + 0x48, 0x83, 0xc3, 0x20, //0x000008e7 addq $32, %rbx + 0x48, 0xff, 0xc0, //0x000008eb incq %rax + 0x0f, 0x85, 0xdf, 0xff, 0xff, 0xff, //0x000008ee jne LBB0_112 + //0x000008f4 LBB0_113 + 0x49, 0x39, 0xf9, //0x000008f4 cmpq %rdi, %r9 + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x000008f7 je LBB0_116 + 0x48, 0x83, 0xcf, 0x01, //0x000008fd orq $1, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000901 .p2align 4, 0x90 + //0x00000910 LBB0_115 + 0x41, 0xc6, 0x04, 0x3c, 0x00, //0x00000910 movb $0, (%r12,%rdi) + 0x48, 0xff, 0xc7, //0x00000915 incq %rdi + 0x49, 0x39, 0xfd, //0x00000918 cmpq %rdi, %r13 + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000091b jne LBB0_115 + //0x00000921 LBB0_116 + 0x41, 0x8a, 0x12, //0x00000921 movb (%r10), %dl + 0x31, 0xff, //0x00000924 xorl %edi, %edi + 0x80, 0xfa, 0x2d, //0x00000926 cmpb $45, %dl + 0x40, 0x0f, 0x94, 0xc7, //0x00000929 sete %dil + 0x48, 0x39, 0xf9, //0x0000092d cmpq %rdi, %rcx + 0x0f, 0x8e, 0xa5, 0x00, 0x00, 0x00, //0x00000930 jle LBB0_128 + 0x48, 0x89, 0x75, 0xc8, //0x00000936 movq %rsi, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x0000093a xorl %r11d, %r11d + 0x88, 0x55, 0xd7, //0x0000093d movb %dl, $-41(%rbp) + 0xb2, 0x01, //0x00000940 movb $1, %dl + 0x45, 0x31, 0xff, //0x00000942 xorl %r15d, %r15d + 0x45, 0x31, 0xf6, //0x00000945 xorl %r14d, %r14d + 0x31, 0xc0, //0x00000948 xorl %eax, %eax + 0x45, 0x31, 0xc9, //0x0000094a xorl %r9d, %r9d + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000094d jmp LBB0_120 + //0x00000952 LBB0_118 + 0x41, 0xff, 0xcb, //0x00000952 decl %r11d + 0x31, 0xc0, //0x00000955 xorl %eax, %eax + //0x00000957 LBB0_119 + 0x48, 0xff, 0xc7, //0x00000957 incq %rdi + 0x48, 0x39, 0xcf, //0x0000095a cmpq %rcx, %rdi + 0x0f, 0x9c, 0xc2, //0x0000095d setl %dl + 0x48, 0x39, 0xf9, //0x00000960 cmpq %rdi, %rcx + 0x0f, 0x84, 0x90, 0x00, 0x00, 0x00, //0x00000963 je LBB0_129 + //0x00000969 LBB0_120 + 0x41, 0x0f, 0xb6, 0x1c, 0x3a, //0x00000969 movzbl (%r10,%rdi), %ebx + 0x8d, 0x73, 0xd0, //0x0000096e leal $-48(%rbx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00000971 cmpb $9, %sil + 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00000975 ja LBB0_125 + 0x85, 0xc0, //0x0000097b testl %eax, %eax + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000097d jne LBB0_123 + 0x80, 0xfb, 0x30, //0x00000983 cmpb $48, %bl + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00000986 je LBB0_118 + //0x0000098c LBB0_123 + 0x49, 0x63, 0xc7, //0x0000098c movslq %r15d, %rax + 0x49, 0x39, 0xc5, //0x0000098f cmpq %rax, %r13 + 0x0f, 0x86, 0x2f, 0x00, 0x00, 0x00, //0x00000992 jbe LBB0_127 + 0x41, 0x88, 0x1c, 0x04, //0x00000998 movb %bl, (%r12,%rax) + 0x41, 0xff, 0xc7, //0x0000099c incl %r15d + 0x44, 0x89, 0xf8, //0x0000099f movl %r15d, %eax + 0xe9, 0xb0, 0xff, 0xff, 0xff, //0x000009a2 jmp LBB0_119 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000009a7 .p2align 4, 0x90 + //0x000009b0 LBB0_125 + 0x80, 0xfb, 0x2e, //0x000009b0 cmpb $46, %bl + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x000009b3 jne LBB0_130 + 0x41, 0x89, 0xc3, //0x000009b9 movl %eax, %r11d + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000009bc movl $1, %r9d + 0xe9, 0x90, 0xff, 0xff, 0xff, //0x000009c2 jmp LBB0_119 + //0x000009c7 LBB0_127 + 0x80, 0xfb, 0x30, //0x000009c7 cmpb $48, %bl + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000009ca movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000009cf cmovnel %eax, %r14d + 0x44, 0x89, 0xf8, //0x000009d3 movl %r15d, %eax + 0xe9, 0x7c, 0xff, 0xff, 0xff, //0x000009d6 jmp LBB0_119 + //0x000009db LBB0_128 + 0x45, 0x31, 0xc0, //0x000009db xorl %r8d, %r8d + 0x31, 0xf6, //0x000009de xorl %esi, %esi + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000009e0 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000009ea movabsq $4503599627370495, %r10 + 0xe9, 0xe1, 0x18, 0x00, 0x00, //0x000009f4 jmp LBB0_506 + //0x000009f9 LBB0_129 + 0x45, 0x85, 0xc9, //0x000009f9 testl %r9d, %r9d + 0x45, 0x0f, 0x44, 0xdf, //0x000009fc cmovel %r15d, %r11d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000a00 movabsq $4503599627370495, %r10 + 0xe9, 0xec, 0x00, 0x00, 0x00, //0x00000a0a jmp LBB0_148 + //0x00000a0f LBB0_130 + 0x45, 0x85, 0xc9, //0x00000a0f testl %r9d, %r9d + 0x45, 0x0f, 0x44, 0xdf, //0x00000a12 cmovel %r15d, %r11d + 0xf6, 0xc2, 0x01, //0x00000a16 testb $1, %dl + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000a19 je LBB0_136 + 0x80, 0xcb, 0x20, //0x00000a1f orb $32, %bl + 0x80, 0xfb, 0x65, //0x00000a22 cmpb $101, %bl + 0x48, 0x8b, 0x5d, 0xa8, //0x00000a25 movq $-88(%rbp), %rbx + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00000a29 jne LBB0_136 + 0x48, 0x8d, 0x57, 0x01, //0x00000a2f leaq $1(%rdi), %rdx + 0x89, 0xd0, //0x00000a33 movl %edx, %eax + 0x41, 0x8a, 0x04, 0x02, //0x00000a35 movb (%r10,%rax), %al + 0x3c, 0x2b, //0x00000a39 cmpb $43, %al + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00000a3b je LBB0_139 + 0x3c, 0x2d, //0x00000a41 cmpb $45, %al + 0x48, 0x8b, 0x45, 0xc8, //0x00000a43 movq $-56(%rbp), %rax + 0x0f, 0x85, 0x50, 0x00, 0x00, 0x00, //0x00000a47 jne LBB0_140 + 0x83, 0xc7, 0x02, //0x00000a4d addl $2, %edi + 0x41, 0xb9, 0xff, 0xff, 0xff, 0xff, //0x00000a50 movl $-1, %r9d + 0x89, 0xfa, //0x00000a56 movl %edi, %edx + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00000a58 jmp LBB0_141 + //0x00000a5d LBB0_136 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000a5d movabsq $4503599627370495, %r10 + 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x00000a67 jmp LBB0_148 + //0x00000a6c LBB0_137 + 0x48, 0x89, 0xf8, //0x00000a6c movq %rdi, %rax + //0x00000a6f LBB0_138 + 0x45, 0x0f, 0xaf, 0xca, //0x00000a6f imull %r10d, %r9d + 0x41, 0x01, 0xc9, //0x00000a73 addl %ecx, %r9d + 0x48, 0x89, 0x45, 0xa8, //0x00000a76 movq %rax, $-88(%rbp) + 0xe9, 0x0d, 0xf9, 0xff, 0xff, //0x00000a7a jmp LBB0_57 + //0x00000a7f LBB0_139 + 0x83, 0xc7, 0x02, //0x00000a7f addl $2, %edi + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000a82 movl $1, %r9d + 0x89, 0xfa, //0x00000a88 movl %edi, %edx + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000a8a movabsq $4503599627370495, %r10 + 0x48, 0x8b, 0x45, 0xc8, //0x00000a94 movq $-56(%rbp), %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00000a98 jmp LBB0_142 + //0x00000a9d LBB0_140 + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00000a9d movl $1, %r9d + //0x00000aa3 LBB0_141 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00000aa3 movabsq $4503599627370495, %r10 + //0x00000aad LBB0_142 + 0x48, 0x63, 0xfa, //0x00000aad movslq %edx, %rdi + 0x31, 0xd2, //0x00000ab0 xorl %edx, %edx + 0x48, 0x39, 0xf9, //0x00000ab2 cmpq %rdi, %rcx + 0x0f, 0x8e, 0x36, 0x00, 0x00, 0x00, //0x00000ab5 jle LBB0_147 + 0x48, 0x01, 0xf8, //0x00000abb addq %rdi, %rax + 0x31, 0xd2, //0x00000abe xorl %edx, %edx + //0x00000ac0 LBB0_144 + 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00000ac0 cmpl $9999, %edx + 0x0f, 0x8f, 0x25, 0x00, 0x00, 0x00, //0x00000ac6 jg LBB0_147 + 0x41, 0x0f, 0xb6, 0x0c, 0x00, //0x00000acc movzbl (%r8,%rax), %ecx + 0x8d, 0x71, 0xd0, //0x00000ad1 leal $-48(%rcx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00000ad4 cmpb $9, %sil + 0x0f, 0x87, 0x13, 0x00, 0x00, 0x00, //0x00000ad8 ja LBB0_147 + 0x8d, 0x14, 0x92, //0x00000ade leal (%rdx,%rdx,4), %edx + 0x8d, 0x54, 0x51, 0xd0, //0x00000ae1 leal $-48(%rcx,%rdx,2), %edx + 0x48, 0xff, 0xc0, //0x00000ae5 incq %rax + 0x48, 0x39, 0xc3, //0x00000ae8 cmpq %rax, %rbx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000aeb jne LBB0_144 + //0x00000af1 LBB0_147 + 0x41, 0x0f, 0xaf, 0xd1, //0x00000af1 imull %r9d, %edx + 0x44, 0x01, 0xda, //0x00000af5 addl %r11d, %edx + 0x41, 0x89, 0xd3, //0x00000af8 movl %edx, %r11d + //0x00000afb LBB0_148 + 0x45, 0x85, 0xff, //0x00000afb testl %r15d, %r15d + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00000afe movabsq $-9223372036854775808, %rdi + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00000b08 je LBB0_151 + 0x31, 0xf6, //0x00000b0e xorl %esi, %esi + 0x41, 0x81, 0xfb, 0x36, 0x01, 0x00, 0x00, //0x00000b10 cmpl $310, %r11d + 0x0f, 0x8e, 0x1f, 0x00, 0x00, 0x00, //0x00000b17 jle LBB0_152 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00000b1d movabsq $9218868437227405312, %r8 + 0x8a, 0x55, 0xd7, //0x00000b27 movb $-41(%rbp), %dl + 0xe9, 0xab, 0x17, 0x00, 0x00, //0x00000b2a jmp LBB0_506 + //0x00000b2f LBB0_151 + 0x45, 0x31, 0xc0, //0x00000b2f xorl %r8d, %r8d + 0x31, 0xf6, //0x00000b32 xorl %esi, %esi + 0x8a, 0x55, 0xd7, //0x00000b34 movb $-41(%rbp), %dl + 0xe9, 0x9e, 0x17, 0x00, 0x00, //0x00000b37 jmp LBB0_506 + //0x00000b3c LBB0_152 + 0x41, 0x81, 0xfb, 0xb6, 0xfe, 0xff, 0xff, //0x00000b3c cmpl $-330, %r11d + 0x0f, 0x8d, 0x0b, 0x00, 0x00, 0x00, //0x00000b43 jge LBB0_154 + 0x45, 0x31, 0xc0, //0x00000b49 xorl %r8d, %r8d + 0x8a, 0x55, 0xd7, //0x00000b4c movb $-41(%rbp), %dl + 0xe9, 0x86, 0x17, 0x00, 0x00, //0x00000b4f jmp LBB0_506 + //0x00000b54 LBB0_154 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, //0x00000b54 movabsq $1152921504606846975, %r10 + 0x45, 0x85, 0xdb, //0x00000b5e testl %r11d, %r11d + 0x0f, 0x8e, 0xd5, 0x07, 0x00, 0x00, //0x00000b61 jle LBB0_270 + 0x31, 0xf6, //0x00000b67 xorl %esi, %esi + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000b69 movl $1, %r8d + 0x44, 0x89, 0xf8, //0x00000b6f movl %r15d, %eax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00000b72 jmp LBB0_158 + //0x00000b77 LBB0_156 + 0x89, 0xc7, //0x00000b77 movl %eax, %edi + //0x00000b79 LBB0_157 + 0x48, 0x8b, 0x75, 0xc0, //0x00000b79 movq $-64(%rbp), %rsi + 0x03, 0x75, 0xbc, //0x00000b7d addl $-68(%rbp), %esi + 0x89, 0xf8, //0x00000b80 movl %edi, %eax + 0x45, 0x85, 0xdb, //0x00000b82 testl %r11d, %r11d + 0x0f, 0x8e, 0xb4, 0x07, 0x00, 0x00, //0x00000b85 jle LBB0_271 + //0x00000b8b LBB0_158 + 0x48, 0x89, 0x75, 0xc0, //0x00000b8b movq %rsi, $-64(%rbp) + 0xb9, 0x1b, 0x00, 0x00, 0x00, //0x00000b8f movl $27, %ecx + 0x41, 0x83, 0xfb, 0x08, //0x00000b94 cmpl $8, %r11d + 0x0f, 0x8f, 0x0d, 0x00, 0x00, 0x00, //0x00000b98 jg LBB0_160 + 0x44, 0x89, 0xd9, //0x00000b9e movl %r11d, %ecx + 0x48, 0x8d, 0x15, 0xd8, 0x43, 0x00, 0x00, //0x00000ba1 leaq $17368(%rip), %rdx /* _POW_TAB+0(%rip) */ + 0x8b, 0x0c, 0x8a, //0x00000ba8 movl (%rdx,%rcx,4), %ecx + //0x00000bab LBB0_160 + 0x85, 0xc0, //0x00000bab testl %eax, %eax + 0x89, 0x4d, 0xbc, //0x00000bad movl %ecx, $-68(%rbp) + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00000bb0 je LBB0_156 + 0x41, 0x89, 0xc9, //0x00000bb6 movl %ecx, %r9d + 0x41, 0xf7, 0xd9, //0x00000bb9 negl %r9d + 0x85, 0xc9, //0x00000bbc testl %ecx, %ecx + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x00000bbe je LBB0_156 + 0x0f, 0x88, 0x90, 0x01, 0x00, 0x00, //0x00000bc4 js LBB0_187 + //0x00000bca LBB0_163 + 0x41, 0x83, 0xf9, 0xc3, //0x00000bca cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x00000bce jle LBB0_167 + 0xe9, 0xcd, 0x03, 0x00, 0x00, //0x00000bd4 jmp LBB0_219 + //0x00000bd9 LBB0_164 + 0xff, 0xc8, //0x00000bd9 decl %eax + 0x41, 0x89, 0xc7, //0x00000bdb movl %eax, %r15d + //0x00000bde LBB0_165 + 0x45, 0x85, 0xff, //0x00000bde testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00000be1 cmovel %r15d, %r11d + //0x00000be5 LBB0_166 + 0x44, 0x8d, 0x49, 0x3c, //0x00000be5 leal $60(%rcx), %r9d + 0x44, 0x89, 0xf8, //0x00000be9 movl %r15d, %eax + 0x83, 0xf9, 0x88, //0x00000bec cmpl $-120, %ecx + 0x0f, 0x8d, 0xa2, 0x03, 0x00, 0x00, //0x00000bef jge LBB0_218 + //0x00000bf5 LBB0_167 + 0x44, 0x89, 0xc9, //0x00000bf5 movl %r9d, %ecx + 0x48, 0x63, 0xf8, //0x00000bf8 movslq %eax, %rdi + 0x31, 0xf6, //0x00000bfb xorl %esi, %esi + 0x31, 0xd2, //0x00000bfd xorl %edx, %edx + 0x90, //0x00000bff .p2align 4, 0x90 + //0x00000c00 LBB0_168 + 0x48, 0x39, 0xfe, //0x00000c00 cmpq %rdi, %rsi + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000c03 jge LBB0_170 + 0x48, 0x8d, 0x14, 0x92, //0x00000c09 leaq (%rdx,%rdx,4), %rdx + 0x49, 0x0f, 0xbe, 0x1c, 0x34, //0x00000c0d movsbq (%r12,%rsi), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00000c12 leaq $-48(%rbx,%rdx,2), %rdx + 0x48, 0xff, 0xc6, //0x00000c17 incq %rsi + 0x49, 0x8d, 0x5a, 0x01, //0x00000c1a leaq $1(%r10), %rbx + 0x48, 0x39, 0xda, //0x00000c1e cmpq %rbx, %rdx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00000c21 jb LBB0_168 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00000c27 jmp LBB0_172 + 0x90, 0x90, 0x90, 0x90, //0x00000c2c .p2align 4, 0x90 + //0x00000c30 LBB0_170 + 0x48, 0x85, 0xd2, //0x00000c30 testq %rdx, %rdx + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00000c33 je LBB0_185 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c39 .p2align 4, 0x90 + //0x00000c40 LBB0_171 + 0x48, 0x01, 0xd2, //0x00000c40 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000c43 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc6, //0x00000c47 incl %esi + 0x49, 0x8d, 0x7a, 0x01, //0x00000c49 leaq $1(%r10), %rdi + 0x48, 0x39, 0xfa, //0x00000c4d cmpq %rdi, %rdx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00000c50 jb LBB0_171 + //0x00000c56 LBB0_172 + 0x41, 0x29, 0xf3, //0x00000c56 subl %esi, %r11d + 0x31, 0xff, //0x00000c59 xorl %edi, %edi + 0x39, 0xc6, //0x00000c5b cmpl %eax, %esi + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x00000c5d jge LBB0_177 + 0x48, 0x63, 0xc6, //0x00000c63 movslq %esi, %rax + 0x49, 0x63, 0xf7, //0x00000c66 movslq %r15d, %rsi + 0x49, 0x8d, 0x3c, 0x04, //0x00000c69 leaq (%r12,%rax), %rdi + 0x45, 0x31, 0xff, //0x00000c6d xorl %r15d, %r15d + //0x00000c70 .p2align 4, 0x90 + //0x00000c70 LBB0_174 + 0x48, 0x89, 0xd3, //0x00000c70 movq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x00000c73 shrq $60, %rbx + 0x4c, 0x21, 0xd2, //0x00000c77 andq %r10, %rdx + 0x80, 0xcb, 0x30, //0x00000c7a orb $48, %bl + 0x43, 0x88, 0x1c, 0x3c, //0x00000c7d movb %bl, (%r12,%r15) + 0x48, 0x8d, 0x14, 0x92, //0x00000c81 leaq (%rdx,%rdx,4), %rdx + 0x4a, 0x0f, 0xbe, 0x1c, 0x3f, //0x00000c85 movsbq (%rdi,%r15), %rbx + 0x48, 0x8d, 0x54, 0x53, 0xd0, //0x00000c8a leaq $-48(%rbx,%rdx,2), %rdx + 0x4a, 0x8d, 0x5c, 0x38, 0x01, //0x00000c8f leaq $1(%rax,%r15), %rbx + 0x49, 0xff, 0xc7, //0x00000c94 incq %r15 + 0x48, 0x39, 0xf3, //0x00000c97 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00000c9a jl LBB0_174 + 0x48, 0x85, 0xd2, //0x00000ca0 testq %rdx, %rdx + 0x0f, 0x84, 0x5f, 0x00, 0x00, 0x00, //0x00000ca3 je LBB0_181 + 0x44, 0x89, 0xff, //0x00000ca9 movl %r15d, %edi + //0x00000cac LBB0_177 + 0x41, 0x89, 0xff, //0x00000cac movl %edi, %r15d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000caf jmp LBB0_179 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cb4 .p2align 4, 0x90 + //0x00000cc0 LBB0_178 + 0x48, 0x85, 0xc0, //0x00000cc0 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000cc3 cmovnel %r8d, %r14d + 0x48, 0x01, 0xd2, //0x00000cc7 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000cca leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00000cce testq %rdx, %rdx + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00000cd1 je LBB0_181 + //0x00000cd7 LBB0_179 + 0x48, 0x89, 0xd0, //0x00000cd7 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x3c, //0x00000cda shrq $60, %rax + 0x4c, 0x21, 0xd2, //0x00000cde andq %r10, %rdx + 0x49, 0x63, 0xf7, //0x00000ce1 movslq %r15d, %rsi + 0x49, 0x39, 0xf5, //0x00000ce4 cmpq %rsi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00000ce7 jbe LBB0_178 + 0x0c, 0x30, //0x00000ced orb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00000cef movb %al, (%r12,%rsi) + 0xff, 0xc6, //0x00000cf3 incl %esi + 0x41, 0x89, 0xf7, //0x00000cf5 movl %esi, %r15d + 0x48, 0x01, 0xd2, //0x00000cf8 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00000cfb leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00000cff testq %rdx, %rdx + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00000d02 jne LBB0_179 + //0x00000d08 LBB0_181 + 0x41, 0xff, 0xc3, //0x00000d08 incl %r11d + 0x45, 0x85, 0xff, //0x00000d0b testl %r15d, %r15d + 0x0f, 0x8e, 0xca, 0xfe, 0xff, 0xff, //0x00000d0e jle LBB0_165 + 0x44, 0x89, 0xf8, //0x00000d14 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000d17 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0xc2, 0xfe, 0xff, 0xff, //0x00000d1d jne LBB0_166 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d23 .p2align 4, 0x90 + //0x00000d30 LBB0_183 + 0x48, 0x83, 0xf8, 0x01, //0x00000d30 cmpq $1, %rax + 0x0f, 0x8e, 0x9f, 0xfe, 0xff, 0xff, //0x00000d34 jle LBB0_164 + 0x4c, 0x8d, 0x78, 0xff, //0x00000d3a leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00000d3e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00000d44 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00000d47 je LBB0_183 + 0xe9, 0x93, 0xfe, 0xff, 0xff, //0x00000d4d jmp LBB0_166 + //0x00000d52 LBB0_185 + 0x45, 0x31, 0xff, //0x00000d52 xorl %r15d, %r15d + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x00000d55 jmp LBB0_166 + //0x00000d5a LBB0_187 + 0x83, 0xf9, 0xc3, //0x00000d5a cmpl $-61, %ecx + 0x0f, 0x8f, 0xbe, 0x03, 0x00, 0x00, //0x00000d5d jg LBB0_238 + 0x48, 0x8d, 0x3d, 0x46, 0x42, 0x00, 0x00, //0x00000d63 leaq $16966(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00000d6a jmp LBB0_192 + //0x00000d6f LBB0_189 + 0x48, 0x8d, 0x3d, 0x3a, 0x42, 0x00, 0x00, //0x00000d6f leaq $16954(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + //0x00000d76 LBB0_190 + 0x45, 0x85, 0xff, //0x00000d76 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00000d79 cmovel %r15d, %r11d + //0x00000d7d LBB0_191 + 0x44, 0x8d, 0x4b, 0xc4, //0x00000d7d leal $-60(%rbx), %r9d + 0x44, 0x89, 0xf8, //0x00000d81 movl %r15d, %eax + 0x83, 0xfb, 0x78, //0x00000d84 cmpl $120, %ebx + 0x0f, 0x8e, 0x85, 0x03, 0x00, 0x00, //0x00000d87 jle LBB0_237 + //0x00000d8d LBB0_192 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000d8d movl $1, %r8d + 0x44, 0x89, 0xcb, //0x00000d93 movl %r9d, %ebx + 0x48, 0x63, 0xf0, //0x00000d96 movslq %eax, %rsi + 0x85, 0xf6, //0x00000d99 testl %esi, %esi + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00000d9b je LBB0_198 + 0xb2, 0x38, //0x00000da1 movb $56, %dl + 0x31, 0xc9, //0x00000da3 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000da5 .p2align 4, 0x90 + //0x00000db0 LBB0_194 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00000db0 movl $19, %r9d + 0x48, 0x83, 0xf9, 0x2a, //0x00000db6 cmpq $42, %rcx + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00000dba je LBB0_199 + 0x41, 0x38, 0x14, 0x0c, //0x00000dc0 cmpb %dl, (%r12,%rcx) + 0x0f, 0x85, 0xb8, 0x01, 0x00, 0x00, //0x00000dc4 jne LBB0_216 + 0x0f, 0xb6, 0x94, 0x39, 0x65, 0x18, 0x00, 0x00, //0x00000dca movzbl $6245(%rcx,%rdi), %edx + 0x48, 0xff, 0xc1, //0x00000dd2 incq %rcx + 0x48, 0x39, 0xce, //0x00000dd5 cmpq %rcx, %rsi + 0x0f, 0x85, 0xd2, 0xff, 0xff, 0xff, //0x00000dd8 jne LBB0_194 + 0x84, 0xd2, //0x00000dde testb %dl, %dl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00000de0 je LBB0_199 + //0x00000de6 LBB0_198 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x00000de6 movl $18, %r9d + //0x00000dec LBB0_199 + 0x85, 0xc0, //0x00000dec testl %eax, %eax + 0x0f, 0x8e, 0xb7, 0x00, 0x00, 0x00, //0x00000dee jle LBB0_207 + 0x48, 0x89, 0x5d, 0xb0, //0x00000df4 movq %rbx, $-80(%rbp) + 0x4c, 0x89, 0x5d, 0xc8, //0x00000df8 movq %r11, $-56(%rbp) + 0x44, 0x01, 0xc8, //0x00000dfc addl %r9d, %eax + 0x48, 0x98, //0x00000dff cltq + 0x48, 0x89, 0xc3, //0x00000e01 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x00000e04 shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x00000e08 decq %rax + 0x48, 0xff, 0xc6, //0x00000e0b incq %rsi + 0x31, 0xc9, //0x00000e0e xorl %ecx, %ecx + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00000e10 jmp LBB0_203 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e15 .p2align 4, 0x90 + //0x00000e20 LBB0_201 + 0x48, 0x85, 0xc0, //0x00000e20 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000e23 cmovnel %r8d, %r14d + //0x00000e27 LBB0_202 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00000e27 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x00000e31 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x00000e34 leaq $-1(%r11), %rax + 0x48, 0xff, 0xce, //0x00000e38 decq %rsi + 0x48, 0x83, 0xfe, 0x01, //0x00000e3b cmpq $1, %rsi + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00000e3f jle LBB0_205 + //0x00000e45 LBB0_203 + 0x49, 0x89, 0xc3, //0x00000e45 movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x7c, 0x34, 0xfe, //0x00000e48 movzbl $-2(%r12,%rsi), %edi + 0x48, 0xc1, 0xe7, 0x3c, //0x00000e4e shlq $60, %rdi + 0x48, 0x01, 0xcf, //0x00000e52 addq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x00000e55 movq %rdi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000e58 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00000e62 mulq %rcx + 0x48, 0x89, 0xd1, //0x00000e65 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00000e68 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00000e6c leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00000e70 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf8, //0x00000e74 movq %rdi, %rax + 0x48, 0x29, 0xd0, //0x00000e77 subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x00000e7a cmpq %r13, %r11 + 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x00000e7d jae LBB0_201 + 0x04, 0x30, //0x00000e83 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x00000e85 movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x00000e89 jmp LBB0_202 + //0x00000e8e LBB0_205 + 0x48, 0x83, 0xff, 0x0a, //0x00000e8e cmpq $10, %rdi + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000e92 jae LBB0_208 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00000e98 movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000e9c movl $1, %r8d + 0x48, 0x8b, 0x5d, 0xb0, //0x00000ea2 movq $-80(%rbp), %rbx + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00000ea6 jmp LBB0_212 + //0x00000eab LBB0_207 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000eab movl $1, %r8d + 0xe9, 0x7a, 0x00, 0x00, 0x00, //0x00000eb1 jmp LBB0_212 + //0x00000eb6 LBB0_208 + 0x49, 0x63, 0xf3, //0x00000eb6 movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x00000eb9 decq %rsi + 0x4c, 0x8b, 0x5d, 0xc8, //0x00000ebc movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000ec0 movl $1, %r8d + 0x48, 0x8b, 0x5d, 0xb0, //0x00000ec6 movq $-80(%rbp), %rbx + 0xe9, 0x18, 0x00, 0x00, 0x00, //0x00000eca jmp LBB0_210 + 0x90, //0x00000ecf .p2align 4, 0x90 + //0x00000ed0 LBB0_209 + 0x48, 0x85, 0xc0, //0x00000ed0 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00000ed3 cmovnel %r8d, %r14d + 0x48, 0xff, 0xce, //0x00000ed7 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00000eda cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00000ede movq %rdx, %rcx + 0x0f, 0x86, 0x49, 0x00, 0x00, 0x00, //0x00000ee1 jbe LBB0_212 + //0x00000ee7 LBB0_210 + 0x48, 0x89, 0xc8, //0x00000ee7 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000eea movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00000ef4 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00000ef7 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00000efb leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00000eff leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00000f03 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x00000f06 subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x00000f09 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00000f0c jae LBB0_209 + 0x04, 0x30, //0x00000f12 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00000f14 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x00000f18 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00000f1b cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00000f1f movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00000f22 ja LBB0_210 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f28 .p2align 4, 0x90 + //0x00000f30 LBB0_212 + 0x45, 0x01, 0xcf, //0x00000f30 addl %r9d, %r15d + 0x4d, 0x63, 0xff, //0x00000f33 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00000f36 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00000f39 cmovbel %r13d, %r15d + 0x45, 0x01, 0xcb, //0x00000f3d addl %r9d, %r11d + 0x45, 0x85, 0xff, //0x00000f40 testl %r15d, %r15d + 0x0f, 0x8e, 0x26, 0xfe, 0xff, 0xff, //0x00000f43 jle LBB0_189 + 0x44, 0x89, 0xf8, //0x00000f49 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00000f4c cmpb $48, $-1(%rax,%r12) + 0x48, 0x8d, 0x3d, 0x57, 0x40, 0x00, 0x00, //0x00000f52 leaq $16471(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x85, 0x1e, 0xfe, 0xff, 0xff, //0x00000f59 jne LBB0_191 + 0x90, //0x00000f5f .p2align 4, 0x90 + //0x00000f60 LBB0_214 + 0x48, 0x83, 0xf8, 0x01, //0x00000f60 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00000f64 jle LBB0_217 + 0x4c, 0x8d, 0x78, 0xff, //0x00000f6a leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00000f6e cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00000f74 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00000f77 je LBB0_214 + 0xe9, 0xfb, 0xfd, 0xff, 0xff, //0x00000f7d jmp LBB0_191 + //0x00000f82 LBB0_216 + 0x0f, 0x8c, 0x5e, 0xfe, 0xff, 0xff, //0x00000f82 jl LBB0_198 + 0xe9, 0x5f, 0xfe, 0xff, 0xff, //0x00000f88 jmp LBB0_199 + //0x00000f8d LBB0_217 + 0xff, 0xc8, //0x00000f8d decl %eax + 0x41, 0x89, 0xc7, //0x00000f8f movl %eax, %r15d + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00000f92 jmp LBB0_190 + //0x00000f97 LBB0_218 + 0x44, 0x89, 0xf8, //0x00000f97 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x00000f9a movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x00000f9d testl %r9d, %r9d + 0x0f, 0x84, 0xd3, 0xfb, 0xff, 0xff, //0x00000fa0 je LBB0_157 + //0x00000fa6 LBB0_219 + 0x41, 0xf7, 0xd9, //0x00000fa6 negl %r9d + 0x48, 0x63, 0xf0, //0x00000fa9 movslq %eax, %rsi + 0x31, 0xff, //0x00000fac xorl %edi, %edi + 0x31, 0xd2, //0x00000fae xorl %edx, %edx + //0x00000fb0 .p2align 4, 0x90 + //0x00000fb0 LBB0_220 + 0x48, 0x39, 0xf7, //0x00000fb0 cmpq %rsi, %rdi + 0x0f, 0x8d, 0x30, 0x01, 0x00, 0x00, //0x00000fb3 jge LBB0_234 + 0x48, 0x8d, 0x0c, 0x92, //0x00000fb9 leaq (%rdx,%rdx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x3c, //0x00000fbd movsbq (%r12,%rdi), %rdx + 0x48, 0x8d, 0x54, 0x4a, 0xd0, //0x00000fc2 leaq $-48(%rdx,%rcx,2), %rdx + 0x48, 0xff, 0xc7, //0x00000fc7 incq %rdi + 0x48, 0x89, 0xd3, //0x00000fca movq %rdx, %rbx + 0x44, 0x89, 0xc9, //0x00000fcd movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x00000fd0 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00000fd3 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00000fd6 je LBB0_220 + //0x00000fdc LBB0_222 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00000fdc movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x00000fe3 movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x00000fe6 shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00000fe9 notq %rsi + 0x31, 0xdb, //0x00000fec xorl %ebx, %ebx + 0x39, 0xc7, //0x00000fee cmpl %eax, %edi + 0x0f, 0x8d, 0x55, 0x00, 0x00, 0x00, //0x00000ff0 jge LBB0_226 + 0x4c, 0x89, 0x5d, 0xc8, //0x00000ff6 movq %r11, $-56(%rbp) + 0x4c, 0x63, 0xdf, //0x00000ffa movslq %edi, %r11 + 0x4d, 0x63, 0xc7, //0x00000ffd movslq %r15d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00001000 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x00001004 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001006 .p2align 4, 0x90 + //0x00001010 LBB0_224 + 0x48, 0x89, 0xd0, //0x00001010 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x00001013 movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x00001016 shrq %cl, %rax + 0x48, 0x21, 0xf2, //0x00001019 andq %rsi, %rdx + 0x04, 0x30, //0x0000101c addb $48, %al + 0x41, 0x88, 0x04, 0x1c, //0x0000101e movb %al, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x92, //0x00001022 leaq (%rdx,%rdx,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x00001026 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x54, 0x41, 0xd0, //0x0000102b leaq $-48(%rcx,%rax,2), %rdx + 0x49, 0x8d, 0x44, 0x1b, 0x01, //0x00001030 leaq $1(%r11,%rbx), %rax + 0x48, 0xff, 0xc3, //0x00001035 incq %rbx + 0x4c, 0x39, 0xc0, //0x00001038 cmpq %r8, %rax + 0x0f, 0x8c, 0xcf, 0xff, 0xff, 0xff, //0x0000103b jl LBB0_224 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001041 movq $-56(%rbp), %r11 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001045 movl $1, %r8d + //0x0000104b LBB0_226 + 0x41, 0x29, 0xfb, //0x0000104b subl %edi, %r11d + 0x41, 0x89, 0xdf, //0x0000104e movl %ebx, %r15d + 0x48, 0x85, 0xd2, //0x00001051 testq %rdx, %rdx + 0x8b, 0x7d, 0xbc, //0x00001054 movl $-68(%rbp), %edi + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00001057 jne LBB0_228 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000105d jmp LBB0_230 + //0x00001062 LBB0_227 + 0x48, 0x85, 0xc0, //0x00001062 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00001065 cmovnel %r8d, %r14d + 0x48, 0x01, 0xd2, //0x00001069 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x0000106c leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x00001070 testq %rdx, %rdx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001073 je LBB0_230 + //0x00001079 LBB0_228 + 0x48, 0x89, 0xd0, //0x00001079 movq %rdx, %rax + 0x44, 0x89, 0xc9, //0x0000107c movl %r9d, %ecx + 0x48, 0xd3, 0xe8, //0x0000107f shrq %cl, %rax + 0x48, 0x21, 0xf2, //0x00001082 andq %rsi, %rdx + 0x49, 0x63, 0xcf, //0x00001085 movslq %r15d, %rcx + 0x49, 0x39, 0xcd, //0x00001088 cmpq %rcx, %r13 + 0x0f, 0x86, 0xd1, 0xff, 0xff, 0xff, //0x0000108b jbe LBB0_227 + 0x04, 0x30, //0x00001091 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001093 movb %al, (%r12,%rcx) + 0xff, 0xc1, //0x00001097 incl %ecx + 0x41, 0x89, 0xcf, //0x00001099 movl %ecx, %r15d + 0x48, 0x01, 0xd2, //0x0000109c addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x0000109f leaq (%rdx,%rdx,4), %rdx + 0x48, 0x85, 0xd2, //0x000010a3 testq %rdx, %rdx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x000010a6 jne LBB0_228 + //0x000010ac LBB0_230 + 0x41, 0xff, 0xc3, //0x000010ac incl %r11d + 0x45, 0x85, 0xff, //0x000010af testl %r15d, %r15d + 0x0f, 0x8e, 0x44, 0x02, 0x00, 0x00, //0x000010b2 jle LBB0_264 + 0x44, 0x89, 0xf8, //0x000010b8 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x000010bb cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x42, 0x02, 0x00, 0x00, //0x000010c1 jne LBB0_265 + //0x000010c7 LBB0_232 + 0x48, 0x83, 0xf8, 0x01, //0x000010c7 cmpq $1, %rax + 0x0f, 0x8e, 0x26, 0x02, 0x00, 0x00, //0x000010cb jle LBB0_263 + 0x4c, 0x8d, 0x78, 0xff, //0x000010d1 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x000010d5 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x000010db movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000010de je LBB0_232 + 0xe9, 0x20, 0x02, 0x00, 0x00, //0x000010e4 jmp LBB0_265 + //0x000010e9 LBB0_234 + 0x48, 0x85, 0xd2, //0x000010e9 testq %rdx, %rdx + 0x0f, 0x84, 0x3c, 0x01, 0x00, 0x00, //0x000010ec je LBB0_253 + //0x000010f2 LBB0_235 + 0x48, 0x89, 0xd6, //0x000010f2 movq %rdx, %rsi + 0x44, 0x89, 0xc9, //0x000010f5 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x000010f8 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x000010fb testq %rsi, %rsi + 0x0f, 0x85, 0xd8, 0xfe, 0xff, 0xff, //0x000010fe jne LBB0_222 + 0x48, 0x01, 0xd2, //0x00001104 addq %rdx, %rdx + 0x48, 0x8d, 0x14, 0x92, //0x00001107 leaq (%rdx,%rdx,4), %rdx + 0xff, 0xc7, //0x0000110b incl %edi + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x0000110d jmp LBB0_235 + //0x00001112 LBB0_237 + 0x44, 0x89, 0xf8, //0x00001112 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x00001115 movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x00001118 testl %r9d, %r9d + 0x0f, 0x84, 0x58, 0xfa, 0xff, 0xff, //0x0000111b je LBB0_157 + //0x00001121 LBB0_238 + 0x44, 0x89, 0xc9, //0x00001121 movl %r9d, %ecx + 0x48, 0x6b, 0xf1, 0x68, //0x00001124 imulq $104, %rcx, %rsi + 0x48, 0x8d, 0x3d, 0x81, 0x3e, 0x00, 0x00, //0x00001128 leaq $16001(%rip), %rdi /* _LSHIFT_TAB+0(%rip) */ + 0x8b, 0x1c, 0x3e, //0x0000112f movl (%rsi,%rdi), %ebx + 0x4c, 0x63, 0xc0, //0x00001132 movslq %eax, %r8 + 0x8a, 0x54, 0x3e, 0x04, //0x00001135 movb $4(%rsi,%rdi), %dl + 0x45, 0x85, 0xc0, //0x00001139 testl %r8d, %r8d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000113c je LBB0_243 + 0x48, 0x8d, 0x74, 0x3e, 0x05, //0x00001142 leaq $5(%rsi,%rdi), %rsi + 0x31, 0xff, //0x00001147 xorl %edi, %edi + //0x00001149 LBB0_240 + 0x84, 0xd2, //0x00001149 testb %dl, %dl + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000114b je LBB0_245 + 0x41, 0x38, 0x14, 0x3c, //0x00001151 cmpb %dl, (%r12,%rdi) + 0x0f, 0x85, 0xb6, 0x01, 0x00, 0x00, //0x00001155 jne LBB0_266 + 0x0f, 0xb6, 0x14, 0x3e, //0x0000115b movzbl (%rsi,%rdi), %edx + 0x48, 0xff, 0xc7, //0x0000115f incq %rdi + 0x49, 0x39, 0xf8, //0x00001162 cmpq %rdi, %r8 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00001165 jne LBB0_240 + //0x0000116b LBB0_243 + 0x84, 0xd2, //0x0000116b testb %dl, %dl + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x0000116d je LBB0_245 + //0x00001173 LBB0_244 + 0xff, 0xcb, //0x00001173 decl %ebx + //0x00001175 LBB0_245 + 0x85, 0xc0, //0x00001175 testl %eax, %eax + 0x0f, 0x8e, 0xbb, 0x00, 0x00, 0x00, //0x00001177 jle LBB0_254 + 0x4c, 0x89, 0x5d, 0xc8, //0x0000117d movq %r11, $-56(%rbp) + 0x89, 0x5d, 0xb0, //0x00001181 movl %ebx, $-80(%rbp) + 0x01, 0xd8, //0x00001184 addl %ebx, %eax + 0x48, 0x98, //0x00001186 cltq + 0x48, 0x89, 0xc6, //0x00001188 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x0000118b shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x0000118f decq %rax + 0x49, 0xff, 0xc0, //0x00001192 incq %r8 + 0x31, 0xff, //0x00001195 xorl %edi, %edi + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001197 jmp LBB0_249 + //0x0000119c LBB0_247 + 0x48, 0x85, 0xc0, //0x0000119c testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000119f movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x000011a4 cmovnel %eax, %r14d + //0x000011a8 LBB0_248 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000011a8 movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x000011b2 addq %rax, %rsi + 0x49, 0x8d, 0x43, 0xff, //0x000011b5 leaq $-1(%r11), %rax + 0x49, 0xff, 0xc8, //0x000011b9 decq %r8 + 0x49, 0x83, 0xf8, 0x01, //0x000011bc cmpq $1, %r8 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x000011c0 jle LBB0_251 + //0x000011c6 LBB0_249 + 0x49, 0x89, 0xc3, //0x000011c6 movq %rax, %r11 + 0x4b, 0x0f, 0xbe, 0x5c, 0x04, 0xfe, //0x000011c9 movsbq $-2(%r12,%r8), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x000011cf addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x000011d3 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x000011d6 addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x000011d9 movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000011dc movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000011e6 mulq %rdx + 0x48, 0x89, 0xd7, //0x000011e9 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x000011ec shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x000011f0 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000011f4 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x000011f8 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x000011fb subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x000011fe cmpq %r13, %r11 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x00001201 jae LBB0_247 + 0x04, 0x30, //0x00001207 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x00001209 movb %al, (%r12,%r11) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x0000120d jmp LBB0_248 + //0x00001212 LBB0_251 + 0x48, 0x83, 0xfb, 0x0a, //0x00001212 cmpq $10, %rbx + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001216 movl $1, %r8d + 0x0f, 0x83, 0x21, 0x00, 0x00, 0x00, //0x0000121c jae LBB0_255 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001222 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xb0, //0x00001226 movl $-80(%rbp), %ebx + 0xe9, 0x7f, 0x00, 0x00, 0x00, //0x00001229 jmp LBB0_259 + //0x0000122e LBB0_253 + 0x45, 0x31, 0xff, //0x0000122e xorl %r15d, %r15d + 0x31, 0xff, //0x00001231 xorl %edi, %edi + 0xe9, 0x41, 0xf9, 0xff, 0xff, //0x00001233 jmp LBB0_157 + //0x00001238 LBB0_254 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001238 movl $1, %r8d + 0xe9, 0x6a, 0x00, 0x00, 0x00, //0x0000123e jmp LBB0_259 + //0x00001243 LBB0_255 + 0x49, 0x63, 0xcb, //0x00001243 movslq %r11d, %rcx + 0x48, 0xff, 0xc9, //0x00001246 decq %rcx + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001249 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xb0, //0x0000124d movl $-80(%rbp), %ebx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001250 jmp LBB0_257 + //0x00001255 LBB0_256 + 0x48, 0x85, 0xc0, //0x00001255 testq %rax, %rax + 0x45, 0x0f, 0x45, 0xf0, //0x00001258 cmovnel %r8d, %r14d + 0x48, 0xff, 0xc9, //0x0000125c decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x0000125f cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001263 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001266 jbe LBB0_259 + //0x0000126c LBB0_257 + 0x48, 0x89, 0xf8, //0x0000126c movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000126f movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001279 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000127c shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001280 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x00001284 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x00001288 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x0000128b subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x0000128e cmpq %r13, %rcx + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00001291 jae LBB0_256 + 0x04, 0x30, //0x00001297 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x00001299 movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x0000129d decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x000012a0 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x000012a4 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000012a7 ja LBB0_257 + //0x000012ad LBB0_259 + 0x41, 0x01, 0xdf, //0x000012ad addl %ebx, %r15d + 0x4d, 0x63, 0xff, //0x000012b0 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x000012b3 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x000012b6 cmovbel %r13d, %r15d + 0x41, 0x01, 0xdb, //0x000012ba addl %ebx, %r11d + 0x45, 0x85, 0xff, //0x000012bd testl %r15d, %r15d + 0x0f, 0x8e, 0x5b, 0x00, 0x00, 0x00, //0x000012c0 jle LBB0_268 + 0x44, 0x89, 0xf8, //0x000012c6 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x000012c9 cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x53, 0x00, 0x00, 0x00, //0x000012cf jne LBB0_269 + //0x000012d5 LBB0_261 + 0x48, 0x83, 0xf8, 0x01, //0x000012d5 cmpq $1, %rax + 0x0f, 0x8e, 0x3d, 0x00, 0x00, 0x00, //0x000012d9 jle LBB0_267 + 0x4c, 0x8d, 0x78, 0xff, //0x000012df leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x000012e3 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x000012e9 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000012ec je LBB0_261 + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x000012f2 jmp LBB0_269 + //0x000012f7 LBB0_263 + 0xff, 0xc8, //0x000012f7 decl %eax + 0x41, 0x89, 0xc7, //0x000012f9 movl %eax, %r15d + //0x000012fc LBB0_264 + 0x48, 0x8b, 0x45, 0xc0, //0x000012fc movq $-64(%rbp), %rax + 0x45, 0x85, 0xff, //0x00001300 testl %r15d, %r15d + 0x0f, 0x84, 0x04, 0x0c, 0x00, 0x00, //0x00001303 je LBB0_444 + //0x00001309 LBB0_265 + 0x44, 0x89, 0xff, //0x00001309 movl %r15d, %edi + 0xe9, 0x68, 0xf8, 0xff, 0xff, //0x0000130c jmp LBB0_157 + //0x00001311 LBB0_266 + 0x0f, 0x8c, 0x5c, 0xfe, 0xff, 0xff, //0x00001311 jl LBB0_244 + 0xe9, 0x59, 0xfe, 0xff, 0xff, //0x00001317 jmp LBB0_245 + //0x0000131c LBB0_267 + 0xff, 0xc8, //0x0000131c decl %eax + 0x41, 0x89, 0xc7, //0x0000131e movl %eax, %r15d + //0x00001321 LBB0_268 + 0x45, 0x85, 0xff, //0x00001321 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001324 cmovel %r15d, %r11d + //0x00001328 LBB0_269 + 0x44, 0x89, 0xf8, //0x00001328 movl %r15d, %eax + 0x44, 0x89, 0xff, //0x0000132b movl %r15d, %edi + 0x45, 0x85, 0xc9, //0x0000132e testl %r9d, %r9d + 0x0f, 0x89, 0x42, 0xf8, 0xff, 0xff, //0x00001331 jns LBB0_157 + 0xe9, 0x8e, 0xf8, 0xff, 0xff, //0x00001337 jmp LBB0_163 + //0x0000133c LBB0_270 + 0x44, 0x89, 0xff, //0x0000133c movl %r15d, %edi + //0x0000133f LBB0_271 + 0x4c, 0x8d, 0x05, 0x6a, 0x3c, 0x00, 0x00, //0x0000133f leaq $15466(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00001346 jmp LBB0_274 + //0x0000134b LBB0_272 + 0x89, 0xf8, //0x0000134b movl %edi, %eax + //0x0000134d LBB0_273 + 0x48, 0x8b, 0x75, 0xc0, //0x0000134d movq $-64(%rbp), %rsi + 0x2b, 0x75, 0xb0, //0x00001351 subl $-80(%rbp), %esi + 0x89, 0xc7, //0x00001354 movl %eax, %edi + //0x00001356 LBB0_274 + 0x45, 0x85, 0xdb, //0x00001356 testl %r11d, %r11d + 0x0f, 0x88, 0x16, 0x00, 0x00, 0x00, //0x00001359 js LBB0_277 + 0x0f, 0x85, 0xcd, 0x07, 0x00, 0x00, //0x0000135f jne LBB0_389 + 0x41, 0x80, 0x3c, 0x24, 0x35, //0x00001365 cmpb $53, (%r12) + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000136a jl LBB0_278 + 0xe9, 0xbd, 0x07, 0x00, 0x00, //0x00001370 jmp LBB0_389 + //0x00001375 LBB0_277 + 0xb8, 0x1b, 0x00, 0x00, 0x00, //0x00001375 movl $27, %eax + 0x41, 0x83, 0xfb, 0xf8, //0x0000137a cmpl $-8, %r11d + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x0000137e jl LBB0_279 + //0x00001384 LBB0_278 + 0x44, 0x89, 0xd8, //0x00001384 movl %r11d, %eax + 0xf7, 0xd8, //0x00001387 negl %eax + 0x48, 0x98, //0x00001389 cltq + 0x48, 0x8d, 0x0d, 0xee, 0x3b, 0x00, 0x00, //0x0000138b leaq $15342(%rip), %rcx /* _POW_TAB+0(%rip) */ + 0x8b, 0x04, 0x81, //0x00001392 movl (%rcx,%rax,4), %eax + //0x00001395 LBB0_279 + 0x85, 0xff, //0x00001395 testl %edi, %edi + 0x48, 0x89, 0x75, 0xc0, //0x00001397 movq %rsi, $-64(%rbp) + 0x89, 0x45, 0xb0, //0x0000139b movl %eax, $-80(%rbp) + 0x0f, 0x84, 0xa7, 0xff, 0xff, 0xff, //0x0000139e je LBB0_272 + 0x85, 0xc0, //0x000013a4 testl %eax, %eax + 0x0f, 0x84, 0x9f, 0xff, 0xff, 0xff, //0x000013a6 je LBB0_272 + 0x0f, 0x8e, 0x3b, 0x02, 0x00, 0x00, //0x000013ac jle LBB0_311 + 0x41, 0x89, 0xc1, //0x000013b2 movl %eax, %r9d + 0x83, 0xf8, 0x3d, //0x000013b5 cmpl $61, %eax + 0x0f, 0x8d, 0x21, 0x00, 0x00, 0x00, //0x000013b8 jge LBB0_286 + 0xe9, 0x41, 0x02, 0x00, 0x00, //0x000013be jmp LBB0_313 + //0x000013c3 LBB0_283 + 0xff, 0xc8, //0x000013c3 decl %eax + 0x41, 0x89, 0xc7, //0x000013c5 movl %eax, %r15d + //0x000013c8 LBB0_284 + 0x45, 0x85, 0xff, //0x000013c8 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x000013cb cmovel %r15d, %r11d + //0x000013cf LBB0_285 + 0x44, 0x8d, 0x4b, 0xc4, //0x000013cf leal $-60(%rbx), %r9d + 0x44, 0x89, 0xff, //0x000013d3 movl %r15d, %edi + 0x83, 0xfb, 0x78, //0x000013d6 cmpl $120, %ebx + 0x0f, 0x8e, 0x16, 0x02, 0x00, 0x00, //0x000013d9 jle LBB0_312 + //0x000013df LBB0_286 + 0x44, 0x89, 0xcb, //0x000013df movl %r9d, %ebx + 0x48, 0x63, 0xf7, //0x000013e2 movslq %edi, %rsi + 0x85, 0xf6, //0x000013e5 testl %esi, %esi + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x000013e7 je LBB0_292 + 0xb1, 0x38, //0x000013ed movb $56, %cl + 0x31, 0xc0, //0x000013ef xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000013f1 .p2align 4, 0x90 + //0x00001400 LBB0_288 + 0x41, 0xb9, 0x13, 0x00, 0x00, 0x00, //0x00001400 movl $19, %r9d + 0x48, 0x83, 0xf8, 0x2a, //0x00001406 cmpq $42, %rax + 0x0f, 0x84, 0x2d, 0x00, 0x00, 0x00, //0x0000140a je LBB0_293 + 0x41, 0x38, 0x0c, 0x04, //0x00001410 cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xc8, 0x01, 0x00, 0x00, //0x00001414 jne LBB0_309 + 0x42, 0x0f, 0xb6, 0x8c, 0x00, 0x65, 0x18, 0x00, 0x00, //0x0000141a movzbl $6245(%rax,%r8), %ecx + 0x48, 0xff, 0xc0, //0x00001423 incq %rax + 0x48, 0x39, 0xc6, //0x00001426 cmpq %rax, %rsi + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00001429 jne LBB0_288 + 0x84, 0xc9, //0x0000142f testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001431 je LBB0_293 + //0x00001437 LBB0_292 + 0x41, 0xb9, 0x12, 0x00, 0x00, 0x00, //0x00001437 movl $18, %r9d + //0x0000143d LBB0_293 + 0x85, 0xff, //0x0000143d testl %edi, %edi + 0x0f, 0x8e, 0x4b, 0x01, 0x00, 0x00, //0x0000143f jle LBB0_305 + 0x48, 0x89, 0x5d, 0xc8, //0x00001445 movq %rbx, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00001449 movq %r11, %r8 + 0x44, 0x01, 0xcf, //0x0000144c addl %r9d, %edi + 0x48, 0x63, 0xc7, //0x0000144f movslq %edi, %rax + 0x48, 0x89, 0xc3, //0x00001452 movq %rax, %rbx + 0x48, 0xc1, 0xe3, 0x20, //0x00001455 shlq $32, %rbx + 0x48, 0xff, 0xc8, //0x00001459 decq %rax + 0x48, 0xff, 0xc6, //0x0000145c incq %rsi + 0x31, 0xc9, //0x0000145f xorl %ecx, %ecx + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00001461 jmp LBB0_297 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001466 .p2align 4, 0x90 + //0x00001470 LBB0_295 + 0x48, 0x85, 0xc0, //0x00001470 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001473 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001478 cmovnel %eax, %r14d + //0x0000147c LBB0_296 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000147c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc3, //0x00001486 addq %rax, %rbx + 0x49, 0x8d, 0x43, 0xff, //0x00001489 leaq $-1(%r11), %rax + 0x48, 0xff, 0xce, //0x0000148d decq %rsi + 0x48, 0x83, 0xfe, 0x01, //0x00001490 cmpq $1, %rsi + 0x0f, 0x8e, 0x56, 0x00, 0x00, 0x00, //0x00001494 jle LBB0_299 + //0x0000149a LBB0_297 + 0x49, 0x89, 0xc3, //0x0000149a movq %rax, %r11 + 0x41, 0x0f, 0xb6, 0x7c, 0x34, 0xfe, //0x0000149d movzbl $-2(%r12,%rsi), %edi + 0x48, 0xc1, 0xe7, 0x3c, //0x000014a3 shlq $60, %rdi + 0x48, 0x01, 0xcf, //0x000014a7 addq %rcx, %rdi + 0x48, 0x89, 0xf8, //0x000014aa movq %rdi, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000014ad movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x000014b7 mulq %rcx + 0x48, 0x89, 0xd1, //0x000014ba movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x000014bd shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x000014c1 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000014c5 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xf8, //0x000014c9 movq %rdi, %rax + 0x48, 0x29, 0xd0, //0x000014cc subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x000014cf cmpq %r13, %r11 + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x000014d2 jae LBB0_295 + 0x04, 0x30, //0x000014d8 addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x000014da movb %al, (%r12,%r11) + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x000014de jmp LBB0_296 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000014e3 .p2align 4, 0x90 + //0x000014f0 LBB0_299 + 0x48, 0x83, 0xff, 0x0a, //0x000014f0 cmpq $10, %rdi + 0x0f, 0x83, 0x13, 0x00, 0x00, 0x00, //0x000014f4 jae LBB0_301 + 0x4d, 0x89, 0xc3, //0x000014fa movq %r8, %r11 + 0x4c, 0x8d, 0x05, 0xac, 0x3a, 0x00, 0x00, //0x000014fd leaq $15020(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xc8, //0x00001504 movq $-56(%rbp), %rbx + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00001508 jmp LBB0_305 + //0x0000150d LBB0_301 + 0x49, 0x63, 0xf3, //0x0000150d movslq %r11d, %rsi + 0x48, 0xff, 0xce, //0x00001510 decq %rsi + 0x4d, 0x89, 0xc3, //0x00001513 movq %r8, %r11 + 0x4c, 0x8d, 0x05, 0x93, 0x3a, 0x00, 0x00, //0x00001516 leaq $14995(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x48, 0x8b, 0x5d, 0xc8, //0x0000151d movq $-56(%rbp), %rbx + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00001521 jmp LBB0_303 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001526 .p2align 4, 0x90 + //0x00001530 LBB0_302 + 0x48, 0x85, 0xc0, //0x00001530 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001533 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001538 cmovnel %eax, %r14d + 0x48, 0xff, 0xce, //0x0000153c decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x0000153f cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001543 movq %rdx, %rcx + 0x0f, 0x86, 0x44, 0x00, 0x00, 0x00, //0x00001546 jbe LBB0_305 + //0x0000154c LBB0_303 + 0x48, 0x89, 0xc8, //0x0000154c movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000154f movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x00001559 mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000155c shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001560 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x3c, 0x80, //0x00001564 leaq (%rax,%rax,4), %rdi + 0x48, 0x89, 0xc8, //0x00001568 movq %rcx, %rax + 0x48, 0x29, 0xf8, //0x0000156b subq %rdi, %rax + 0x4c, 0x39, 0xee, //0x0000156e cmpq %r13, %rsi + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001571 jae LBB0_302 + 0x04, 0x30, //0x00001577 addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00001579 movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x0000157d decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00001580 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00001584 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001587 ja LBB0_303 + 0x90, 0x90, 0x90, //0x0000158d .p2align 4, 0x90 + //0x00001590 LBB0_305 + 0x45, 0x01, 0xcf, //0x00001590 addl %r9d, %r15d + 0x4d, 0x63, 0xff, //0x00001593 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00001596 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00001599 cmovbel %r13d, %r15d + 0x45, 0x01, 0xcb, //0x0000159d addl %r9d, %r11d + 0x45, 0x85, 0xff, //0x000015a0 testl %r15d, %r15d + 0x0f, 0x8e, 0x1f, 0xfe, 0xff, 0xff, //0x000015a3 jle LBB0_284 + 0x44, 0x89, 0xf8, //0x000015a9 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x000015ac cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x17, 0xfe, 0xff, 0xff, //0x000015b2 jne LBB0_285 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000015b8 .p2align 4, 0x90 + //0x000015c0 LBB0_307 + 0x48, 0x83, 0xf8, 0x01, //0x000015c0 cmpq $1, %rax + 0x0f, 0x8e, 0xf9, 0xfd, 0xff, 0xff, //0x000015c4 jle LBB0_283 + 0x4c, 0x8d, 0x78, 0xff, //0x000015ca leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x000015ce cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x000015d4 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000015d7 je LBB0_307 + 0xe9, 0xed, 0xfd, 0xff, 0xff, //0x000015dd jmp LBB0_285 + //0x000015e2 LBB0_309 + 0x0f, 0x8c, 0x4f, 0xfe, 0xff, 0xff, //0x000015e2 jl LBB0_292 + 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x000015e8 jmp LBB0_293 + //0x000015ed LBB0_311 + 0x41, 0x89, 0xc1, //0x000015ed movl %eax, %r9d + 0xe9, 0x09, 0x02, 0x00, 0x00, //0x000015f0 jmp LBB0_341 + //0x000015f5 LBB0_312 + 0x44, 0x89, 0xff, //0x000015f5 movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x000015f8 movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x000015fb testl %r9d, %r9d + 0x0f, 0x84, 0x49, 0xfd, 0xff, 0xff, //0x000015fe je LBB0_273 + //0x00001604 LBB0_313 + 0x44, 0x89, 0xc9, //0x00001604 movl %r9d, %ecx + 0x48, 0x6b, 0xd1, 0x68, //0x00001607 imulq $104, %rcx, %rdx + 0x42, 0x8b, 0x1c, 0x02, //0x0000160b movl (%rdx,%r8), %ebx + 0x4c, 0x89, 0xc6, //0x0000160f movq %r8, %rsi + 0x4c, 0x63, 0xc7, //0x00001612 movslq %edi, %r8 + 0x8a, 0x44, 0x32, 0x04, //0x00001615 movb $4(%rdx,%rsi), %al + 0x45, 0x85, 0xc0, //0x00001619 testl %r8d, %r8d + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x0000161c je LBB0_318 + 0x48, 0x8d, 0x54, 0x32, 0x05, //0x00001622 leaq $5(%rdx,%rsi), %rdx + 0x31, 0xf6, //0x00001627 xorl %esi, %esi + //0x00001629 LBB0_315 + 0x84, 0xc0, //0x00001629 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000162b je LBB0_320 + 0x41, 0x38, 0x04, 0x34, //0x00001631 cmpb %al, (%r12,%rsi) + 0x0f, 0x85, 0x9d, 0x01, 0x00, 0x00, //0x00001635 jne LBB0_337 + 0x0f, 0xb6, 0x04, 0x32, //0x0000163b movzbl (%rdx,%rsi), %eax + 0x48, 0xff, 0xc6, //0x0000163f incq %rsi + 0x49, 0x39, 0xf0, //0x00001642 cmpq %rsi, %r8 + 0x0f, 0x85, 0xde, 0xff, 0xff, 0xff, //0x00001645 jne LBB0_315 + //0x0000164b LBB0_318 + 0x84, 0xc0, //0x0000164b testb %al, %al + 0x0f, 0x84, 0x02, 0x00, 0x00, 0x00, //0x0000164d je LBB0_320 + //0x00001653 LBB0_319 + 0xff, 0xcb, //0x00001653 decl %ebx + //0x00001655 LBB0_320 + 0x85, 0xff, //0x00001655 testl %edi, %edi + 0x0f, 0x8e, 0xb6, 0x00, 0x00, 0x00, //0x00001657 jle LBB0_328 + 0x4c, 0x89, 0x5d, 0xc8, //0x0000165d movq %r11, $-56(%rbp) + 0x89, 0x5d, 0xbc, //0x00001661 movl %ebx, $-68(%rbp) + 0x01, 0xdf, //0x00001664 addl %ebx, %edi + 0x48, 0x63, 0xc7, //0x00001666 movslq %edi, %rax + 0x48, 0x89, 0xc6, //0x00001669 movq %rax, %rsi + 0x48, 0xc1, 0xe6, 0x20, //0x0000166c shlq $32, %rsi + 0x48, 0xff, 0xc8, //0x00001670 decq %rax + 0x49, 0xff, 0xc0, //0x00001673 incq %r8 + 0x31, 0xff, //0x00001676 xorl %edi, %edi + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00001678 jmp LBB0_324 + 0x90, 0x90, 0x90, //0x0000167d .p2align 4, 0x90 + //0x00001680 LBB0_322 + 0x48, 0x85, 0xc0, //0x00001680 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001683 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001688 cmovnel %eax, %r14d + //0x0000168c LBB0_323 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000168c movabsq $-4294967296, %rax + 0x48, 0x01, 0xc6, //0x00001696 addq %rax, %rsi + 0x49, 0x8d, 0x43, 0xff, //0x00001699 leaq $-1(%r11), %rax + 0x49, 0xff, 0xc8, //0x0000169d decq %r8 + 0x49, 0x83, 0xf8, 0x01, //0x000016a0 cmpq $1, %r8 + 0x0f, 0x8e, 0x4c, 0x00, 0x00, 0x00, //0x000016a4 jle LBB0_326 + //0x000016aa LBB0_324 + 0x49, 0x89, 0xc3, //0x000016aa movq %rax, %r11 + 0x4b, 0x0f, 0xbe, 0x5c, 0x04, 0xfe, //0x000016ad movsbq $-2(%r12,%r8), %rbx + 0x48, 0x83, 0xc3, 0xd0, //0x000016b3 addq $-48, %rbx + 0x48, 0xd3, 0xe3, //0x000016b7 shlq %cl, %rbx + 0x48, 0x01, 0xfb, //0x000016ba addq %rdi, %rbx + 0x48, 0x89, 0xd8, //0x000016bd movq %rbx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000016c0 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x000016ca mulq %rdx + 0x48, 0x89, 0xd7, //0x000016cd movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x03, //0x000016d0 shrq $3, %rdi + 0x48, 0x8d, 0x04, 0x3f, //0x000016d4 leaq (%rdi,%rdi), %rax + 0x48, 0x8d, 0x14, 0x80, //0x000016d8 leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x000016dc movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x000016df subq %rdx, %rax + 0x4d, 0x39, 0xeb, //0x000016e2 cmpq %r13, %r11 + 0x0f, 0x83, 0x95, 0xff, 0xff, 0xff, //0x000016e5 jae LBB0_322 + 0x04, 0x30, //0x000016eb addb $48, %al + 0x43, 0x88, 0x04, 0x1c, //0x000016ed movb %al, (%r12,%r11) + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x000016f1 jmp LBB0_323 + //0x000016f6 LBB0_326 + 0x48, 0x83, 0xfb, 0x0a, //0x000016f6 cmpq $10, %rbx + 0x4c, 0x8d, 0x05, 0xaf, 0x38, 0x00, 0x00, //0x000016fa leaq $14511(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00001701 jae LBB0_329 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001707 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xbc, //0x0000170b movl $-68(%rbp), %ebx + 0xe9, 0x7b, 0x00, 0x00, 0x00, //0x0000170e jmp LBB0_333 + //0x00001713 LBB0_328 + 0x4c, 0x8d, 0x05, 0x96, 0x38, 0x00, 0x00, //0x00001713 leaq $14486(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x0000171a jmp LBB0_333 + //0x0000171f LBB0_329 + 0x49, 0x63, 0xcb, //0x0000171f movslq %r11d, %rcx + 0x48, 0xff, 0xc9, //0x00001722 decq %rcx + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001725 movq $-56(%rbp), %r11 + 0x8b, 0x5d, 0xbc, //0x00001729 movl $-68(%rbp), %ebx + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x0000172c jmp LBB0_331 + //0x00001731 LBB0_330 + 0x48, 0x85, 0xc0, //0x00001731 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001734 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001739 cmovnel %eax, %r14d + 0x48, 0xff, 0xc9, //0x0000173d decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00001740 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001744 movq %rdx, %rdi + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x00001747 jbe LBB0_333 + //0x0000174d LBB0_331 + 0x48, 0x89, 0xf8, //0x0000174d movq %rdi, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001750 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000175a mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x0000175d shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00001761 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x34, 0x80, //0x00001765 leaq (%rax,%rax,4), %rsi + 0x48, 0x89, 0xf8, //0x00001769 movq %rdi, %rax + 0x48, 0x29, 0xf0, //0x0000176c subq %rsi, %rax + 0x4c, 0x39, 0xe9, //0x0000176f cmpq %r13, %rcx + 0x0f, 0x83, 0xb9, 0xff, 0xff, 0xff, //0x00001772 jae LBB0_330 + 0x04, 0x30, //0x00001778 addb $48, %al + 0x41, 0x88, 0x04, 0x0c, //0x0000177a movb %al, (%r12,%rcx) + 0x48, 0xff, 0xc9, //0x0000177e decq %rcx + 0x48, 0x83, 0xff, 0x09, //0x00001781 cmpq $9, %rdi + 0x48, 0x89, 0xd7, //0x00001785 movq %rdx, %rdi + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00001788 ja LBB0_331 + //0x0000178e LBB0_333 + 0x41, 0x01, 0xdf, //0x0000178e addl %ebx, %r15d + 0x4d, 0x63, 0xff, //0x00001791 movslq %r15d, %r15 + 0x4d, 0x39, 0xfd, //0x00001794 cmpq %r15, %r13 + 0x45, 0x0f, 0x46, 0xfd, //0x00001797 cmovbel %r13d, %r15d + 0x41, 0x01, 0xdb, //0x0000179b addl %ebx, %r11d + 0x45, 0x85, 0xff, //0x0000179e testl %r15d, %r15d + 0x0f, 0x8e, 0x41, 0x00, 0x00, 0x00, //0x000017a1 jle LBB0_339 + 0x44, 0x89, 0xf8, //0x000017a7 movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x000017aa cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x000017b0 jne LBB0_340 + //0x000017b6 LBB0_335 + 0x48, 0x83, 0xf8, 0x01, //0x000017b6 cmpq $1, %rax + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x000017ba jle LBB0_338 + 0x4c, 0x8d, 0x78, 0xff, //0x000017c0 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x000017c4 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x000017ca movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x000017cd je LBB0_335 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000017d3 jmp LBB0_340 + //0x000017d8 LBB0_337 + 0x0f, 0x8c, 0x75, 0xfe, 0xff, 0xff, //0x000017d8 jl LBB0_319 + 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x000017de jmp LBB0_320 + //0x000017e3 LBB0_338 + 0xff, 0xc8, //0x000017e3 decl %eax + 0x41, 0x89, 0xc7, //0x000017e5 movl %eax, %r15d + //0x000017e8 LBB0_339 + 0x45, 0x85, 0xff, //0x000017e8 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x000017eb cmovel %r15d, %r11d + //0x000017ef LBB0_340 + 0x44, 0x89, 0xff, //0x000017ef movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x000017f2 movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x000017f5 testl %r9d, %r9d + 0x0f, 0x89, 0x4f, 0xfb, 0xff, 0xff, //0x000017f8 jns LBB0_273 + //0x000017fe LBB0_341 + 0x41, 0x83, 0xf9, 0xc3, //0x000017fe cmpl $-61, %r9d + 0x0f, 0x8e, 0x21, 0x00, 0x00, 0x00, //0x00001802 jle LBB0_345 + 0xe9, 0x9c, 0x01, 0x00, 0x00, //0x00001808 jmp LBB0_365 + //0x0000180d LBB0_342 + 0xff, 0xc9, //0x0000180d decl %ecx + 0x41, 0x89, 0xcf, //0x0000180f movl %ecx, %r15d + //0x00001812 LBB0_343 + 0x45, 0x85, 0xff, //0x00001812 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001815 cmovel %r15d, %r11d + //0x00001819 LBB0_344 + 0x44, 0x8d, 0x48, 0x3c, //0x00001819 leal $60(%rax), %r9d + 0x44, 0x89, 0xff, //0x0000181d movl %r15d, %edi + 0x83, 0xf8, 0x88, //0x00001820 cmpl $-120, %eax + 0x0f, 0x8d, 0x71, 0x01, 0x00, 0x00, //0x00001823 jge LBB0_364 + //0x00001829 LBB0_345 + 0x44, 0x89, 0xc8, //0x00001829 movl %r9d, %eax + 0x48, 0x63, 0xf7, //0x0000182c movslq %edi, %rsi + 0x31, 0xd2, //0x0000182f xorl %edx, %edx + 0x31, 0xc9, //0x00001831 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001833 .p2align 4, 0x90 + //0x00001840 LBB0_346 + 0x48, 0x39, 0xf2, //0x00001840 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00001843 jge LBB0_348 + 0x48, 0x8d, 0x0c, 0x89, //0x00001849 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x0000184d movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00001852 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc2, //0x00001857 incq %rdx + 0x49, 0x8d, 0x5a, 0x01, //0x0000185a leaq $1(%r10), %rbx + 0x48, 0x39, 0xd9, //0x0000185e cmpq %rbx, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001861 jb LBB0_346 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001867 jmp LBB0_350 + 0x90, 0x90, 0x90, 0x90, //0x0000186c .p2align 4, 0x90 + //0x00001870 LBB0_348 + 0x48, 0x85, 0xc9, //0x00001870 testq %rcx, %rcx + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00001873 je LBB0_363 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001879 .p2align 4, 0x90 + //0x00001880 LBB0_349 + 0x48, 0x01, 0xc9, //0x00001880 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001883 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc2, //0x00001887 incl %edx + 0x49, 0x8d, 0x72, 0x01, //0x00001889 leaq $1(%r10), %rsi + 0x48, 0x39, 0xf1, //0x0000188d cmpq %rsi, %rcx + 0x0f, 0x82, 0xea, 0xff, 0xff, 0xff, //0x00001890 jb LBB0_349 + //0x00001896 LBB0_350 + 0x41, 0x29, 0xd3, //0x00001896 subl %edx, %r11d + 0x31, 0xf6, //0x00001899 xorl %esi, %esi + 0x39, 0xfa, //0x0000189b cmpl %edi, %edx + 0x0f, 0x8d, 0x49, 0x00, 0x00, 0x00, //0x0000189d jge LBB0_355 + 0x48, 0x63, 0xd2, //0x000018a3 movslq %edx, %rdx + 0x49, 0x63, 0xf7, //0x000018a6 movslq %r15d, %rsi + 0x49, 0x8d, 0x3c, 0x14, //0x000018a9 leaq (%r12,%rdx), %rdi + 0x45, 0x31, 0xff, //0x000018ad xorl %r15d, %r15d + //0x000018b0 .p2align 4, 0x90 + //0x000018b0 LBB0_352 + 0x48, 0x89, 0xcb, //0x000018b0 movq %rcx, %rbx + 0x48, 0xc1, 0xeb, 0x3c, //0x000018b3 shrq $60, %rbx + 0x4c, 0x21, 0xd1, //0x000018b7 andq %r10, %rcx + 0x80, 0xcb, 0x30, //0x000018ba orb $48, %bl + 0x43, 0x88, 0x1c, 0x3c, //0x000018bd movb %bl, (%r12,%r15) + 0x48, 0x8d, 0x0c, 0x89, //0x000018c1 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x1c, 0x3f, //0x000018c5 movsbq (%rdi,%r15), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x000018ca leaq $-48(%rbx,%rcx,2), %rcx + 0x4a, 0x8d, 0x5c, 0x3a, 0x01, //0x000018cf leaq $1(%rdx,%r15), %rbx + 0x49, 0xff, 0xc7, //0x000018d4 incq %r15 + 0x48, 0x39, 0xf3, //0x000018d7 cmpq %rsi, %rbx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x000018da jl LBB0_352 + 0x48, 0x85, 0xc9, //0x000018e0 testq %rcx, %rcx + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x000018e3 je LBB0_359 + 0x44, 0x89, 0xfe, //0x000018e9 movl %r15d, %esi + //0x000018ec LBB0_355 + 0x41, 0x89, 0xf7, //0x000018ec movl %esi, %r15d + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000018ef jmp LBB0_357 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018f4 .p2align 4, 0x90 + //0x00001900 LBB0_356 + 0x48, 0x85, 0xd2, //0x00001900 testq %rdx, %rdx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001903 movl $1, %edx + 0x44, 0x0f, 0x45, 0xf2, //0x00001908 cmovnel %edx, %r14d + 0x48, 0x01, 0xc9, //0x0000190c addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x0000190f leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001913 testq %rcx, %rcx + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00001916 je LBB0_359 + //0x0000191c LBB0_357 + 0x48, 0x89, 0xca, //0x0000191c movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x0000191f shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x00001923 andq %r10, %rcx + 0x49, 0x63, 0xf7, //0x00001926 movslq %r15d, %rsi + 0x49, 0x39, 0xf5, //0x00001929 cmpq %rsi, %r13 + 0x0f, 0x86, 0xce, 0xff, 0xff, 0xff, //0x0000192c jbe LBB0_356 + 0x80, 0xca, 0x30, //0x00001932 orb $48, %dl + 0x41, 0x88, 0x14, 0x34, //0x00001935 movb %dl, (%r12,%rsi) + 0xff, 0xc6, //0x00001939 incl %esi + 0x41, 0x89, 0xf7, //0x0000193b movl %esi, %r15d + 0x48, 0x01, 0xc9, //0x0000193e addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001941 leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001945 testq %rcx, %rcx + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00001948 jne LBB0_357 + //0x0000194e LBB0_359 + 0x41, 0xff, 0xc3, //0x0000194e incl %r11d + 0x45, 0x85, 0xff, //0x00001951 testl %r15d, %r15d + 0x0f, 0x8e, 0xb8, 0xfe, 0xff, 0xff, //0x00001954 jle LBB0_343 + 0x44, 0x89, 0xf9, //0x0000195a movl %r15d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x0000195d cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xb0, 0xfe, 0xff, 0xff, //0x00001963 jne LBB0_344 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001969 .p2align 4, 0x90 + //0x00001970 LBB0_361 + 0x48, 0x83, 0xf9, 0x01, //0x00001970 cmpq $1, %rcx + 0x0f, 0x8e, 0x93, 0xfe, 0xff, 0xff, //0x00001974 jle LBB0_342 + 0x4c, 0x8d, 0x79, 0xff, //0x0000197a leaq $-1(%rcx), %r15 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x0000197e cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xf9, //0x00001984 movq %r15, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001987 je LBB0_361 + 0xe9, 0x87, 0xfe, 0xff, 0xff, //0x0000198d jmp LBB0_344 + //0x00001992 LBB0_363 + 0x45, 0x31, 0xff, //0x00001992 xorl %r15d, %r15d + 0xe9, 0x7f, 0xfe, 0xff, 0xff, //0x00001995 jmp LBB0_344 + //0x0000199a LBB0_364 + 0x44, 0x89, 0xff, //0x0000199a movl %r15d, %edi + 0x44, 0x89, 0xf8, //0x0000199d movl %r15d, %eax + 0x45, 0x85, 0xc9, //0x000019a0 testl %r9d, %r9d + 0x0f, 0x84, 0xa4, 0xf9, 0xff, 0xff, //0x000019a3 je LBB0_273 + //0x000019a9 LBB0_365 + 0x41, 0xf7, 0xd9, //0x000019a9 negl %r9d + 0x48, 0x63, 0xf7, //0x000019ac movslq %edi, %rsi + 0x31, 0xd2, //0x000019af xorl %edx, %edx + 0x31, 0xc0, //0x000019b1 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019b3 .p2align 4, 0x90 + //0x000019c0 LBB0_366 + 0x48, 0x39, 0xf2, //0x000019c0 cmpq %rsi, %rdx + 0x0f, 0x8d, 0x22, 0x01, 0x00, 0x00, //0x000019c3 jge LBB0_382 + 0x48, 0x8d, 0x04, 0x80, //0x000019c9 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x14, //0x000019cd movsbq (%r12,%rdx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x000019d2 leaq $-48(%rcx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x000019d7 incq %rdx + 0x48, 0x89, 0xc3, //0x000019da movq %rax, %rbx + 0x44, 0x89, 0xc9, //0x000019dd movl %r9d, %ecx + 0x48, 0xd3, 0xeb, //0x000019e0 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x000019e3 testq %rbx, %rbx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x000019e6 je LBB0_366 + //0x000019ec LBB0_368 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000019ec movq $-1, %rsi + 0x44, 0x89, 0xc9, //0x000019f3 movl %r9d, %ecx + 0x48, 0xd3, 0xe6, //0x000019f6 shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x000019f9 notq %rsi + 0x31, 0xdb, //0x000019fc xorl %ebx, %ebx + 0x39, 0xfa, //0x000019fe cmpl %edi, %edx + 0x0f, 0x8d, 0x58, 0x00, 0x00, 0x00, //0x00001a00 jge LBB0_372 + 0x4c, 0x89, 0x5d, 0xc8, //0x00001a06 movq %r11, $-56(%rbp) + 0x4c, 0x63, 0xda, //0x00001a0a movslq %edx, %r11 + 0x4d, 0x63, 0xc7, //0x00001a0d movslq %r15d, %r8 + 0x4f, 0x8d, 0x3c, 0x1c, //0x00001a10 leaq (%r12,%r11), %r15 + 0x31, 0xdb, //0x00001a14 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a16 .p2align 4, 0x90 + //0x00001a20 LBB0_370 + 0x48, 0x89, 0xc7, //0x00001a20 movq %rax, %rdi + 0x44, 0x89, 0xc9, //0x00001a23 movl %r9d, %ecx + 0x48, 0xd3, 0xef, //0x00001a26 shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001a29 andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00001a2c addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00001a30 movb %dil, (%r12,%rbx) + 0x48, 0x8d, 0x04, 0x80, //0x00001a34 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x0c, 0x1f, //0x00001a38 movsbq (%r15,%rbx), %rcx + 0x48, 0x8d, 0x44, 0x41, 0xd0, //0x00001a3d leaq $-48(%rcx,%rax,2), %rax + 0x49, 0x8d, 0x4c, 0x1b, 0x01, //0x00001a42 leaq $1(%r11,%rbx), %rcx + 0x48, 0xff, 0xc3, //0x00001a47 incq %rbx + 0x4c, 0x39, 0xc1, //0x00001a4a cmpq %r8, %rcx + 0x0f, 0x8c, 0xcd, 0xff, 0xff, 0xff, //0x00001a4d jl LBB0_370 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001a53 movq $-56(%rbp), %r11 + 0x4c, 0x8d, 0x05, 0x52, 0x35, 0x00, 0x00, //0x00001a57 leaq $13650(%rip), %r8 /* _LSHIFT_TAB+0(%rip) */ + //0x00001a5e LBB0_372 + 0x41, 0x29, 0xd3, //0x00001a5e subl %edx, %r11d + 0x41, 0x89, 0xdf, //0x00001a61 movl %ebx, %r15d + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00001a64 jmp LBB0_375 + //0x00001a69 LBB0_373 + 0x48, 0x85, 0xd2, //0x00001a69 testq %rdx, %rdx + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001a6c movl $1, %ecx + 0x44, 0x0f, 0x45, 0xf1, //0x00001a71 cmovnel %ecx, %r14d + //0x00001a75 LBB0_374 + 0x48, 0x01, 0xc0, //0x00001a75 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001a78 leaq (%rax,%rax,4), %rax + //0x00001a7c LBB0_375 + 0x48, 0x85, 0xc0, //0x00001a7c testq %rax, %rax + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00001a7f je LBB0_378 + 0x48, 0x89, 0xc2, //0x00001a85 movq %rax, %rdx + 0x44, 0x89, 0xc9, //0x00001a88 movl %r9d, %ecx + 0x48, 0xd3, 0xea, //0x00001a8b shrq %cl, %rdx + 0x48, 0x21, 0xf0, //0x00001a8e andq %rsi, %rax + 0x49, 0x63, 0xcf, //0x00001a91 movslq %r15d, %rcx + 0x49, 0x39, 0xcd, //0x00001a94 cmpq %rcx, %r13 + 0x0f, 0x86, 0xcc, 0xff, 0xff, 0xff, //0x00001a97 jbe LBB0_373 + 0x80, 0xc2, 0x30, //0x00001a9d addb $48, %dl + 0x41, 0x88, 0x14, 0x0c, //0x00001aa0 movb %dl, (%r12,%rcx) + 0xff, 0xc1, //0x00001aa4 incl %ecx + 0x41, 0x89, 0xcf, //0x00001aa6 movl %ecx, %r15d + 0xe9, 0xc7, 0xff, 0xff, 0xff, //0x00001aa9 jmp LBB0_374 + //0x00001aae LBB0_378 + 0x41, 0xff, 0xc3, //0x00001aae incl %r11d + 0x45, 0x85, 0xff, //0x00001ab1 testl %r15d, %r15d + 0x0f, 0x8e, 0x69, 0x00, 0x00, 0x00, //0x00001ab4 jle LBB0_387 + 0x44, 0x89, 0xf8, //0x00001aba movl %r15d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001abd cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x61, 0x00, 0x00, 0x00, //0x00001ac3 jne LBB0_388 + //0x00001ac9 LBB0_380 + 0x48, 0x83, 0xf8, 0x01, //0x00001ac9 cmpq $1, %rax + 0x0f, 0x8e, 0x4b, 0x00, 0x00, 0x00, //0x00001acd jle LBB0_386 + 0x4c, 0x8d, 0x78, 0xff, //0x00001ad3 leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001ad7 cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001add movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001ae0 je LBB0_380 + 0xe9, 0x3f, 0x00, 0x00, 0x00, //0x00001ae6 jmp LBB0_388 + //0x00001aeb LBB0_382 + 0x48, 0x85, 0xc0, //0x00001aeb testq %rax, %rax + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x00001aee je LBB0_385 + //0x00001af4 LBB0_383 + 0x48, 0x89, 0xc6, //0x00001af4 movq %rax, %rsi + 0x44, 0x89, 0xc9, //0x00001af7 movl %r9d, %ecx + 0x48, 0xd3, 0xee, //0x00001afa shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001afd testq %rsi, %rsi + 0x0f, 0x85, 0xe6, 0xfe, 0xff, 0xff, //0x00001b00 jne LBB0_368 + 0x48, 0x01, 0xc0, //0x00001b06 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001b09 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00001b0d incl %edx + 0xe9, 0xe0, 0xff, 0xff, 0xff, //0x00001b0f jmp LBB0_383 + //0x00001b14 LBB0_385 + 0x45, 0x31, 0xff, //0x00001b14 xorl %r15d, %r15d + 0x31, 0xc0, //0x00001b17 xorl %eax, %eax + 0xe9, 0x2f, 0xf8, 0xff, 0xff, //0x00001b19 jmp LBB0_273 + //0x00001b1e LBB0_386 + 0xff, 0xc8, //0x00001b1e decl %eax + 0x41, 0x89, 0xc7, //0x00001b20 movl %eax, %r15d + //0x00001b23 LBB0_387 + 0x45, 0x85, 0xff, //0x00001b23 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xdf, //0x00001b26 cmovel %r15d, %r11d + //0x00001b2a LBB0_388 + 0x44, 0x89, 0xf8, //0x00001b2a movl %r15d, %eax + 0xe9, 0x1b, 0xf8, 0xff, 0xff, //0x00001b2d jmp LBB0_273 + //0x00001b32 LBB0_389 + 0x81, 0xfe, 0x02, 0xfc, 0xff, 0xff, //0x00001b32 cmpl $-1022, %esi + 0x0f, 0x8f, 0xb1, 0x01, 0x00, 0x00, //0x00001b38 jg LBB0_415 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001b3e movl $-1022, %r8d + 0x85, 0xff, //0x00001b44 testl %edi, %edi + 0x0f, 0x84, 0xfd, 0x01, 0x00, 0x00, //0x00001b46 je LBB0_420 + 0x8d, 0x8e, 0xfd, 0x03, 0x00, 0x00, //0x00001b4c leal $1021(%rsi), %ecx + 0x81, 0xfe, 0xc6, 0xfb, 0xff, 0xff, //0x00001b52 cmpl $-1082, %esi + 0x0f, 0x8f, 0x06, 0x02, 0x00, 0x00, //0x00001b58 jg LBB0_421 + 0x4d, 0x89, 0xd8, //0x00001b5e movq %r11, %r8 + 0x49, 0x8d, 0x42, 0x01, //0x00001b61 leaq $1(%r10), %rax + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001b65 movl $1, %r11d + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00001b6b jmp LBB0_396 + //0x00001b70 LBB0_393 + 0xff, 0xc9, //0x00001b70 decl %ecx + 0x41, 0x89, 0xcf, //0x00001b72 movl %ecx, %r15d + //0x00001b75 LBB0_394 + 0x45, 0x85, 0xff, //0x00001b75 testl %r15d, %r15d + 0x45, 0x0f, 0x44, 0xc7, //0x00001b78 cmovel %r15d, %r8d + //0x00001b7c LBB0_395 + 0x41, 0x8d, 0x49, 0x3c, //0x00001b7c leal $60(%r9), %ecx + 0x44, 0x89, 0xff, //0x00001b80 movl %r15d, %edi + 0x41, 0x83, 0xf9, 0x88, //0x00001b83 cmpl $-120, %r9d + 0x0f, 0x8d, 0xe6, 0x01, 0x00, 0x00, //0x00001b87 jge LBB0_422 + //0x00001b8d LBB0_396 + 0x41, 0x89, 0xc9, //0x00001b8d movl %ecx, %r9d + 0x48, 0x63, 0xdf, //0x00001b90 movslq %edi, %rbx + 0x31, 0xf6, //0x00001b93 xorl %esi, %esi + 0x31, 0xc9, //0x00001b95 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b97 .p2align 4, 0x90 + //0x00001ba0 LBB0_397 + 0x48, 0x39, 0xde, //0x00001ba0 cmpq %rbx, %rsi + 0x0f, 0x8d, 0x1f, 0x00, 0x00, 0x00, //0x00001ba3 jge LBB0_399 + 0x48, 0x8d, 0x0c, 0x89, //0x00001ba9 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x14, 0x34, //0x00001bad movsbq (%r12,%rsi), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00001bb2 leaq $-48(%rdx,%rcx,2), %rcx + 0x48, 0xff, 0xc6, //0x00001bb7 incq %rsi + 0x48, 0x39, 0xc1, //0x00001bba cmpq %rax, %rcx + 0x0f, 0x82, 0xdd, 0xff, 0xff, 0xff, //0x00001bbd jb LBB0_397 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001bc3 jmp LBB0_401 + //0x00001bc8 LBB0_399 + 0x48, 0x85, 0xc9, //0x00001bc8 testq %rcx, %rcx + 0x0f, 0x84, 0x16, 0x01, 0x00, 0x00, //0x00001bcb je LBB0_414 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001bd1 .p2align 4, 0x90 + //0x00001be0 LBB0_400 + 0x48, 0x01, 0xc9, //0x00001be0 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001be3 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xc6, //0x00001be7 incl %esi + 0x48, 0x39, 0xc1, //0x00001be9 cmpq %rax, %rcx + 0x0f, 0x82, 0xee, 0xff, 0xff, 0xff, //0x00001bec jb LBB0_400 + //0x00001bf2 LBB0_401 + 0x41, 0x29, 0xf0, //0x00001bf2 subl %esi, %r8d + 0x31, 0xdb, //0x00001bf5 xorl %ebx, %ebx + 0x39, 0xfe, //0x00001bf7 cmpl %edi, %esi + 0x0f, 0x8d, 0x4d, 0x00, 0x00, 0x00, //0x00001bf9 jge LBB0_406 + 0x48, 0x63, 0xf6, //0x00001bff movslq %esi, %rsi + 0x49, 0x63, 0xff, //0x00001c02 movslq %r15d, %rdi + 0x49, 0x8d, 0x1c, 0x34, //0x00001c05 leaq (%r12,%rsi), %rbx + 0x45, 0x31, 0xff, //0x00001c09 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, //0x00001c0c .p2align 4, 0x90 + //0x00001c10 LBB0_403 + 0x48, 0x89, 0xca, //0x00001c10 movq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x3c, //0x00001c13 shrq $60, %rdx + 0x4c, 0x21, 0xd1, //0x00001c17 andq %r10, %rcx + 0x80, 0xca, 0x30, //0x00001c1a orb $48, %dl + 0x43, 0x88, 0x14, 0x3c, //0x00001c1d movb %dl, (%r12,%r15) + 0x48, 0x8d, 0x0c, 0x89, //0x00001c21 leaq (%rcx,%rcx,4), %rcx + 0x4a, 0x0f, 0xbe, 0x14, 0x3b, //0x00001c25 movsbq (%rbx,%r15), %rdx + 0x48, 0x8d, 0x4c, 0x4a, 0xd0, //0x00001c2a leaq $-48(%rdx,%rcx,2), %rcx + 0x4a, 0x8d, 0x54, 0x3e, 0x01, //0x00001c2f leaq $1(%rsi,%r15), %rdx + 0x49, 0xff, 0xc7, //0x00001c34 incq %r15 + 0x48, 0x39, 0xfa, //0x00001c37 cmpq %rdi, %rdx + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001c3a jl LBB0_403 + 0x48, 0x85, 0xc9, //0x00001c40 testq %rcx, %rcx + 0x0f, 0x84, 0x61, 0x00, 0x00, 0x00, //0x00001c43 je LBB0_410 + 0x44, 0x89, 0xfb, //0x00001c49 movl %r15d, %ebx + //0x00001c4c LBB0_406 + 0x41, 0x89, 0xdf, //0x00001c4c movl %ebx, %r15d + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00001c4f jmp LBB0_408 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001c54 .p2align 4, 0x90 + //0x00001c60 LBB0_407 + 0x48, 0x85, 0xf6, //0x00001c60 testq %rsi, %rsi + 0x45, 0x0f, 0x45, 0xf3, //0x00001c63 cmovnel %r11d, %r14d + 0x48, 0x01, 0xc9, //0x00001c67 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001c6a leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001c6e testq %rcx, %rcx + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001c71 je LBB0_410 + //0x00001c77 LBB0_408 + 0x48, 0x89, 0xce, //0x00001c77 movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x3c, //0x00001c7a shrq $60, %rsi + 0x4c, 0x21, 0xd1, //0x00001c7e andq %r10, %rcx + 0x49, 0x63, 0xff, //0x00001c81 movslq %r15d, %rdi + 0x49, 0x39, 0xfd, //0x00001c84 cmpq %rdi, %r13 + 0x0f, 0x86, 0xd3, 0xff, 0xff, 0xff, //0x00001c87 jbe LBB0_407 + 0x40, 0x80, 0xce, 0x30, //0x00001c8d orb $48, %sil + 0x41, 0x88, 0x34, 0x3c, //0x00001c91 movb %sil, (%r12,%rdi) + 0xff, 0xc7, //0x00001c95 incl %edi + 0x41, 0x89, 0xff, //0x00001c97 movl %edi, %r15d + 0x48, 0x01, 0xc9, //0x00001c9a addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x00001c9d leaq (%rcx,%rcx,4), %rcx + 0x48, 0x85, 0xc9, //0x00001ca1 testq %rcx, %rcx + 0x0f, 0x85, 0xcd, 0xff, 0xff, 0xff, //0x00001ca4 jne LBB0_408 + //0x00001caa LBB0_410 + 0x41, 0xff, 0xc0, //0x00001caa incl %r8d + 0x45, 0x85, 0xff, //0x00001cad testl %r15d, %r15d + 0x0f, 0x8e, 0xbf, 0xfe, 0xff, 0xff, //0x00001cb0 jle LBB0_394 + 0x44, 0x89, 0xf9, //0x00001cb6 movl %r15d, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x00001cb9 cmpb $48, $-1(%rcx,%r12) + 0x0f, 0x85, 0xb7, 0xfe, 0xff, 0xff, //0x00001cbf jne LBB0_395 + //0x00001cc5 LBB0_412 + 0x48, 0x83, 0xf9, 0x01, //0x00001cc5 cmpq $1, %rcx + 0x0f, 0x8e, 0xa1, 0xfe, 0xff, 0xff, //0x00001cc9 jle LBB0_393 + 0x4c, 0x8d, 0x79, 0xff, //0x00001ccf leaq $-1(%rcx), %r15 + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x00001cd3 cmpb $48, $-2(%r12,%rcx) + 0x4c, 0x89, 0xf9, //0x00001cd9 movq %r15, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001cdc je LBB0_412 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00001ce2 jmp LBB0_395 + //0x00001ce7 LBB0_414 + 0x45, 0x31, 0xff, //0x00001ce7 xorl %r15d, %r15d + 0xe9, 0x8d, 0xfe, 0xff, 0xff, //0x00001cea jmp LBB0_395 + //0x00001cef LBB0_415 + 0x81, 0xfe, 0x00, 0x04, 0x00, 0x00, //0x00001cef cmpl $1024, %esi + 0x0f, 0x8e, 0x28, 0x00, 0x00, 0x00, //0x00001cf5 jle LBB0_417 + 0x31, 0xf6, //0x00001cfb xorl %esi, %esi + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00001cfd movabsq $9218868437227405312, %r8 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001d07 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d11 movabsq $4503599627370495, %r10 + 0x8a, 0x55, 0xd7, //0x00001d1b movb $-41(%rbp), %dl + 0xe9, 0xb7, 0x05, 0x00, 0x00, //0x00001d1e jmp LBB0_506 + //0x00001d23 LBB0_417 + 0xff, 0xce, //0x00001d23 decl %esi + 0x41, 0x89, 0xf0, //0x00001d25 movl %esi, %r8d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d28 movabsq $4503599627370495, %r10 + //0x00001d32 LBB0_418 + 0x85, 0xff, //0x00001d32 testl %edi, %edi + 0x0f, 0x84, 0xc2, 0x01, 0x00, 0x00, //0x00001d34 je LBB0_443 + 0x4c, 0x89, 0x45, 0xc8, //0x00001d3a movq %r8, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00001d3e movq %r11, %r8 + 0x45, 0x89, 0xfa, //0x00001d41 movl %r15d, %r10d + 0xe9, 0xfa, 0x01, 0x00, 0x00, //0x00001d44 jmp LBB0_448 + //0x00001d49 LBB0_420 + 0x31, 0xc0, //0x00001d49 xorl %eax, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001d4b movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d55 movabsq $4503599627370495, %r10 + 0xe9, 0xcf, 0x03, 0x00, 0x00, //0x00001d5f jmp LBB0_475 + //0x00001d64 LBB0_421 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d64 movabsq $4503599627370495, %r10 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00001d6e jmp LBB0_423 + //0x00001d73 LBB0_422 + 0x44, 0x89, 0xff, //0x00001d73 movl %r15d, %edi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001d76 movabsq $4503599627370495, %r10 + 0x4d, 0x89, 0xc3, //0x00001d80 movq %r8, %r11 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001d83 movl $-1022, %r8d + 0x85, 0xc9, //0x00001d89 testl %ecx, %ecx + 0x0f, 0x84, 0xa1, 0xff, 0xff, 0xff, //0x00001d8b je LBB0_418 + //0x00001d91 LBB0_423 + 0xf7, 0xd9, //0x00001d91 negl %ecx + 0x48, 0x63, 0xf7, //0x00001d93 movslq %edi, %rsi + 0x31, 0xd2, //0x00001d96 xorl %edx, %edx + 0x31, 0xc0, //0x00001d98 xorl %eax, %eax + //0x00001d9a LBB0_424 + 0x48, 0x39, 0xf2, //0x00001d9a cmpq %rsi, %rdx + 0x0f, 0x8d, 0x25, 0x00, 0x00, 0x00, //0x00001d9d jge LBB0_440 + 0x48, 0x8d, 0x04, 0x80, //0x00001da3 leaq (%rax,%rax,4), %rax + 0x49, 0x0f, 0xbe, 0x1c, 0x14, //0x00001da7 movsbq (%r12,%rdx), %rbx + 0x48, 0x8d, 0x44, 0x43, 0xd0, //0x00001dac leaq $-48(%rbx,%rax,2), %rax + 0x48, 0xff, 0xc2, //0x00001db1 incq %rdx + 0x48, 0x89, 0xc3, //0x00001db4 movq %rax, %rbx + 0x48, 0xd3, 0xeb, //0x00001db7 shrq %cl, %rbx + 0x48, 0x85, 0xdb, //0x00001dba testq %rbx, %rbx + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00001dbd je LBB0_424 + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00001dc3 jmp LBB0_426 + //0x00001dc8 LBB0_440 + 0x48, 0x85, 0xc0, //0x00001dc8 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x01, 0x00, 0x00, //0x00001dcb je LBB0_443 + 0x48, 0x89, 0xc6, //0x00001dd1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00001dd4 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001dd7 testq %rsi, %rsi + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00001dda jne LBB0_426 + //0x00001de0 LBB0_442 + 0x48, 0x01, 0xc0, //0x00001de0 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001de3 leaq (%rax,%rax,4), %rax + 0xff, 0xc2, //0x00001de7 incl %edx + 0x48, 0x89, 0xc6, //0x00001de9 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00001dec shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00001def testq %rsi, %rsi + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00001df2 je LBB0_442 + //0x00001df8 LBB0_426 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00001df8 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x00001dff shlq %cl, %rsi + 0x48, 0xf7, 0xd6, //0x00001e02 notq %rsi + 0x45, 0x31, 0xd2, //0x00001e05 xorl %r10d, %r10d + 0x39, 0xfa, //0x00001e08 cmpl %edi, %edx + 0x0f, 0x8d, 0x3d, 0x00, 0x00, 0x00, //0x00001e0a jge LBB0_429 + 0x4c, 0x63, 0xca, //0x00001e10 movslq %edx, %r9 + 0x4d, 0x63, 0xc7, //0x00001e13 movslq %r15d, %r8 + 0x4b, 0x8d, 0x1c, 0x0c, //0x00001e16 leaq (%r12,%r9), %rbx + 0x45, 0x31, 0xd2, //0x00001e1a xorl %r10d, %r10d + //0x00001e1d LBB0_428 + 0x48, 0x89, 0xc7, //0x00001e1d movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00001e20 shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001e23 andq %rsi, %rax + 0x40, 0x80, 0xc7, 0x30, //0x00001e26 addb $48, %dil + 0x43, 0x88, 0x3c, 0x14, //0x00001e2a movb %dil, (%r12,%r10) + 0x48, 0x8d, 0x04, 0x80, //0x00001e2e leaq (%rax,%rax,4), %rax + 0x4a, 0x0f, 0xbe, 0x3c, 0x13, //0x00001e32 movsbq (%rbx,%r10), %rdi + 0x48, 0x8d, 0x44, 0x47, 0xd0, //0x00001e37 leaq $-48(%rdi,%rax,2), %rax + 0x4b, 0x8d, 0x7c, 0x11, 0x01, //0x00001e3c leaq $1(%r9,%r10), %rdi + 0x49, 0xff, 0xc2, //0x00001e41 incq %r10 + 0x4c, 0x39, 0xc7, //0x00001e44 cmpq %r8, %rdi + 0x0f, 0x8c, 0xd0, 0xff, 0xff, 0xff, //0x00001e47 jl LBB0_428 + //0x00001e4d LBB0_429 + 0x41, 0x29, 0xd3, //0x00001e4d subl %edx, %r11d + 0x48, 0x85, 0xc0, //0x00001e50 testq %rax, %rax + 0x0f, 0x84, 0x53, 0x00, 0x00, 0x00, //0x00001e53 je LBB0_434 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00001e59 movl $1, %edx + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001e5e jmp LBB0_432 + //0x00001e63 LBB0_431 + 0x48, 0x85, 0xff, //0x00001e63 testq %rdi, %rdi + 0x44, 0x0f, 0x45, 0xf2, //0x00001e66 cmovnel %edx, %r14d + 0x48, 0x01, 0xc0, //0x00001e6a addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001e6d leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00001e71 testq %rax, %rax + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00001e74 je LBB0_434 + //0x00001e7a LBB0_432 + 0x48, 0x89, 0xc7, //0x00001e7a movq %rax, %rdi + 0x48, 0xd3, 0xef, //0x00001e7d shrq %cl, %rdi + 0x48, 0x21, 0xf0, //0x00001e80 andq %rsi, %rax + 0x49, 0x63, 0xda, //0x00001e83 movslq %r10d, %rbx + 0x49, 0x39, 0xdd, //0x00001e86 cmpq %rbx, %r13 + 0x0f, 0x86, 0xd4, 0xff, 0xff, 0xff, //0x00001e89 jbe LBB0_431 + 0x40, 0x80, 0xc7, 0x30, //0x00001e8f addb $48, %dil + 0x41, 0x88, 0x3c, 0x1c, //0x00001e93 movb %dil, (%r12,%rbx) + 0xff, 0xc3, //0x00001e97 incl %ebx + 0x41, 0x89, 0xda, //0x00001e99 movl %ebx, %r10d + 0x48, 0x01, 0xc0, //0x00001e9c addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00001e9f leaq (%rax,%rax,4), %rax + 0x48, 0x85, 0xc0, //0x00001ea3 testq %rax, %rax + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00001ea6 jne LBB0_432 + //0x00001eac LBB0_434 + 0x41, 0xff, 0xc3, //0x00001eac incl %r11d + 0x45, 0x85, 0xd2, //0x00001eaf testl %r10d, %r10d + 0x0f, 0x8e, 0x6d, 0x00, 0x00, 0x00, //0x00001eb2 jle LBB0_446 + 0x44, 0x89, 0xd0, //0x00001eb8 movl %r10d, %eax + 0x42, 0x80, 0x7c, 0x20, 0xff, 0x30, //0x00001ebb cmpb $48, $-1(%rax,%r12) + 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x00001ec1 jne LBB0_447 + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00001ec7 movabsq $4503599627370495, %r10 + //0x00001ed1 LBB0_437 + 0x48, 0x83, 0xf8, 0x01, //0x00001ed1 cmpq $1, %rax + 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00001ed5 jle LBB0_445 + 0x4c, 0x8d, 0x78, 0xff, //0x00001edb leaq $-1(%rax), %r15 + 0x41, 0x80, 0x7c, 0x04, 0xfe, 0x30, //0x00001edf cmpb $48, $-2(%r12,%rax) + 0x4c, 0x89, 0xf8, //0x00001ee5 movq %r15, %rax + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00001ee8 je LBB0_437 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001eee movl $-1022, %r8d + 0x44, 0x89, 0xff, //0x00001ef4 movl %r15d, %edi + 0xe9, 0x36, 0xfe, 0xff, 0xff, //0x00001ef7 jmp LBB0_418 + //0x00001efc LBB0_443 + 0x31, 0xc0, //0x00001efc xorl %eax, %eax + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00001efe movabsq $-9223372036854775808, %rdi + 0xe9, 0x26, 0x02, 0x00, 0x00, //0x00001f08 jmp LBB0_475 + //0x00001f0d LBB0_444 + 0x01, 0xc7, //0x00001f0d addl %eax, %edi + 0x45, 0x31, 0xdb, //0x00001f0f xorl %r11d, %r11d + 0x45, 0x31, 0xff, //0x00001f12 xorl %r15d, %r15d + 0x89, 0xf8, //0x00001f15 movl %edi, %eax + 0x31, 0xff, //0x00001f17 xorl %edi, %edi + 0x89, 0xc6, //0x00001f19 movl %eax, %esi + 0xe9, 0x1f, 0xf4, 0xff, 0xff, //0x00001f1b jmp LBB0_271 + //0x00001f20 LBB0_445 + 0xff, 0xc8, //0x00001f20 decl %eax + 0x41, 0x89, 0xc2, //0x00001f22 movl %eax, %r10d + //0x00001f25 LBB0_446 + 0x41, 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001f25 movl $-1022, %r8d + 0x45, 0x85, 0xd2, //0x00001f2b testl %r10d, %r10d + 0x0f, 0x84, 0x1d, 0x03, 0x00, 0x00, //0x00001f2e je LBB0_499 + //0x00001f34 LBB0_447 + 0xb8, 0x02, 0xfc, 0xff, 0xff, //0x00001f34 movl $-1022, %eax + 0x48, 0x89, 0x45, 0xc8, //0x00001f39 movq %rax, $-56(%rbp) + 0x4d, 0x89, 0xd8, //0x00001f3d movq %r11, %r8 + 0x44, 0x89, 0xd7, //0x00001f40 movl %r10d, %edi + //0x00001f43 LBB0_448 + 0x4c, 0x63, 0xdf, //0x00001f43 movslq %edi, %r11 + 0xb1, 0x31, //0x00001f46 movb $49, %cl + 0x31, 0xc0, //0x00001f48 xorl %eax, %eax + 0x41, 0xb9, 0x10, 0x00, 0x00, 0x00, //0x00001f4a movl $16, %r9d + //0x00001f50 LBB0_449 + 0x48, 0x83, 0xf8, 0x26, //0x00001f50 cmpq $38, %rax + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00001f54 je LBB0_454 + 0x41, 0x38, 0x0c, 0x04, //0x00001f5a cmpb %cl, (%r12,%rax) + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00001f5e jne LBB0_463 + 0x48, 0x8d, 0x0d, 0x45, 0x30, 0x00, 0x00, //0x00001f64 leaq $12357(%rip), %rcx /* _LSHIFT_TAB+0(%rip) */ + 0x0f, 0xb6, 0x8c, 0x08, 0x8d, 0x15, 0x00, 0x00, //0x00001f6b movzbl $5517(%rax,%rcx), %ecx + 0x48, 0xff, 0xc0, //0x00001f73 incq %rax + 0x49, 0x39, 0xc3, //0x00001f76 cmpq %rax, %r11 + 0x0f, 0x85, 0xd1, 0xff, 0xff, 0xff, //0x00001f79 jne LBB0_449 + 0x84, 0xc9, //0x00001f7f testb %cl, %cl + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001f81 je LBB0_454 + //0x00001f87 LBB0_453 + 0x41, 0xb9, 0x0f, 0x00, 0x00, 0x00, //0x00001f87 movl $15, %r9d + //0x00001f8d LBB0_454 + 0x85, 0xff, //0x00001f8d testl %edi, %edi + 0x0f, 0x8e, 0x9a, 0x00, 0x00, 0x00, //0x00001f8f jle LBB0_462 + 0x44, 0x01, 0xcf, //0x00001f95 addl %r9d, %edi + 0x48, 0x63, 0xf7, //0x00001f98 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x00001f9b decq %rsi + 0x49, 0xff, 0xc3, //0x00001f9e incq %r11 + 0x31, 0xc9, //0x00001fa1 xorl %ecx, %ecx + 0x49, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00001fa3 movabsq $-432345564227567616, %r15 + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00001fad jmp LBB0_458 + //0x00001fb2 LBB0_456 + 0x48, 0x85, 0xc0, //0x00001fb2 testq %rax, %rax + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001fb5 movl $1, %eax + 0x44, 0x0f, 0x45, 0xf0, //0x00001fba cmovnel %eax, %r14d + //0x00001fbe LBB0_457 + 0xff, 0xcf, //0x00001fbe decl %edi + 0x48, 0xff, 0xce, //0x00001fc0 decq %rsi + 0x49, 0xff, 0xcb, //0x00001fc3 decq %r11 + 0x49, 0x83, 0xfb, 0x01, //0x00001fc6 cmpq $1, %r11 + 0x0f, 0x8e, 0x49, 0x00, 0x00, 0x00, //0x00001fca jle LBB0_460 + //0x00001fd0 LBB0_458 + 0x4b, 0x0f, 0xbe, 0x5c, 0x1c, 0xfe, //0x00001fd0 movsbq $-2(%r12,%r11), %rbx + 0x48, 0xc1, 0xe3, 0x35, //0x00001fd6 shlq $53, %rbx + 0x48, 0x01, 0xcb, //0x00001fda addq %rcx, %rbx + 0x4c, 0x01, 0xfb, //0x00001fdd addq %r15, %rbx + 0x48, 0x89, 0xd8, //0x00001fe0 movq %rbx, %rax + 0x48, 0xb9, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00001fe3 movabsq $-3689348814741910323, %rcx + 0x48, 0xf7, 0xe1, //0x00001fed mulq %rcx + 0x48, 0x89, 0xd1, //0x00001ff0 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x03, //0x00001ff3 shrq $3, %rcx + 0x48, 0x8d, 0x04, 0x09, //0x00001ff7 leaq (%rcx,%rcx), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00001ffb leaq (%rax,%rax,4), %rdx + 0x48, 0x89, 0xd8, //0x00001fff movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00002002 subq %rdx, %rax + 0x4c, 0x39, 0xee, //0x00002005 cmpq %r13, %rsi + 0x0f, 0x83, 0xa4, 0xff, 0xff, 0xff, //0x00002008 jae LBB0_456 + 0x04, 0x30, //0x0000200e addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x00002010 movb %al, (%r12,%rsi) + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00002014 jmp LBB0_457 + //0x00002019 LBB0_460 + 0x48, 0x83, 0xfb, 0x0a, //0x00002019 cmpq $10, %rbx + 0x4d, 0x89, 0xc3, //0x0000201d movq %r8, %r11 + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00002020 jae LBB0_464 + 0x4c, 0x8b, 0x45, 0xc8, //0x00002026 movq $-56(%rbp), %r8 + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x0000202a jmp LBB0_468 + //0x0000202f LBB0_462 + 0x4d, 0x89, 0xc3, //0x0000202f movq %r8, %r11 + 0x4c, 0x8b, 0x45, 0xc8, //0x00002032 movq $-56(%rbp), %r8 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002036 jmp LBB0_468 + //0x0000203b LBB0_463 + 0x0f, 0x8c, 0x46, 0xff, 0xff, 0xff, //0x0000203b jl LBB0_453 + 0xe9, 0x47, 0xff, 0xff, 0xff, //0x00002041 jmp LBB0_454 + //0x00002046 LBB0_464 + 0x48, 0x63, 0xf7, //0x00002046 movslq %edi, %rsi + 0x48, 0xff, 0xce, //0x00002049 decq %rsi + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x0000204c movl $1, %edi + 0x4c, 0x8b, 0x45, 0xc8, //0x00002051 movq $-56(%rbp), %r8 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002055 jmp LBB0_466 + //0x0000205a LBB0_465 + 0x48, 0x85, 0xc0, //0x0000205a testq %rax, %rax + 0x44, 0x0f, 0x45, 0xf7, //0x0000205d cmovnel %edi, %r14d + 0x48, 0xff, 0xce, //0x00002061 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00002064 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x00002068 movq %rdx, %rcx + 0x0f, 0x86, 0x41, 0x00, 0x00, 0x00, //0x0000206b jbe LBB0_468 + //0x00002071 LBB0_466 + 0x48, 0x89, 0xc8, //0x00002071 movq %rcx, %rax + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00002074 movabsq $-3689348814741910323, %rdx + 0x48, 0xf7, 0xe2, //0x0000207e mulq %rdx + 0x48, 0xc1, 0xea, 0x03, //0x00002081 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00002085 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00002089 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x0000208d movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00002090 subq %rbx, %rax + 0x4c, 0x39, 0xee, //0x00002093 cmpq %r13, %rsi + 0x0f, 0x83, 0xbe, 0xff, 0xff, 0xff, //0x00002096 jae LBB0_465 + 0x04, 0x30, //0x0000209c addb $48, %al + 0x41, 0x88, 0x04, 0x34, //0x0000209e movb %al, (%r12,%rsi) + 0x48, 0xff, 0xce, //0x000020a2 decq %rsi + 0x48, 0x83, 0xf9, 0x09, //0x000020a5 cmpq $9, %rcx + 0x48, 0x89, 0xd1, //0x000020a9 movq %rdx, %rcx + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000020ac ja LBB0_466 + //0x000020b2 LBB0_468 + 0x45, 0x01, 0xca, //0x000020b2 addl %r9d, %r10d + 0x49, 0x63, 0xc2, //0x000020b5 movslq %r10d, %rax + 0x49, 0x39, 0xc5, //0x000020b8 cmpq %rax, %r13 + 0x41, 0x0f, 0x46, 0xc5, //0x000020bb cmovbel %r13d, %eax + 0x45, 0x01, 0xcb, //0x000020bf addl %r9d, %r11d + 0x85, 0xc0, //0x000020c2 testl %eax, %eax + 0x0f, 0x8e, 0x44, 0x00, 0x00, 0x00, //0x000020c4 jle LBB0_472 + 0x89, 0xc1, //0x000020ca movl %eax, %ecx + 0x42, 0x80, 0x7c, 0x21, 0xff, 0x30, //0x000020cc cmpb $48, $-1(%rcx,%r12) + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000020d2 movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000020dc movabsq $4503599627370495, %r10 + 0x0f, 0x85, 0x47, 0x00, 0x00, 0x00, //0x000020e6 jne LBB0_475 + //0x000020ec LBB0_470 + 0x48, 0x83, 0xf9, 0x01, //0x000020ec cmpq $1, %rcx + 0x0f, 0x8e, 0x31, 0x00, 0x00, 0x00, //0x000020f0 jle LBB0_473 + 0x48, 0x8d, 0x41, 0xff, //0x000020f6 leaq $-1(%rcx), %rax + 0x41, 0x80, 0x7c, 0x0c, 0xfe, 0x30, //0x000020fa cmpb $48, $-2(%r12,%rcx) + 0x48, 0x89, 0xc1, //0x00002100 movq %rax, %rcx + 0x0f, 0x84, 0xe3, 0xff, 0xff, 0xff, //0x00002103 je LBB0_470 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002109 jmp LBB0_475 + //0x0000210e LBB0_472 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000210e movabsq $-9223372036854775808, %rdi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002118 movabsq $4503599627370495, %r10 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00002122 jmp LBB0_474 + //0x00002127 LBB0_473 + 0xff, 0xc9, //0x00002127 decl %ecx + 0x89, 0xc8, //0x00002129 movl %ecx, %eax + //0x0000212b LBB0_474 + 0x85, 0xc0, //0x0000212b testl %eax, %eax + 0x0f, 0x84, 0x15, 0x01, 0x00, 0x00, //0x0000212d je LBB0_498 + //0x00002133 LBB0_475 + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00002133 movq $-1, %rsi + 0x41, 0x83, 0xfb, 0x14, //0x0000213a cmpl $20, %r11d + 0x0f, 0x8e, 0x08, 0x00, 0x00, 0x00, //0x0000213e jle LBB0_477 + 0x8a, 0x55, 0xd7, //0x00002144 movb $-41(%rbp), %dl + 0xe9, 0x6e, 0x01, 0x00, 0x00, //0x00002147 jmp LBB0_505 + //0x0000214c LBB0_477 + 0x44, 0x89, 0xda, //0x0000214c movl %r11d, %edx + 0x45, 0x85, 0xdb, //0x0000214f testl %r11d, %r11d + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00002152 jle LBB0_482 + 0x48, 0x63, 0xf0, //0x00002158 movslq %eax, %rsi + 0x31, 0xff, //0x0000215b xorl %edi, %edi + 0x31, 0xc9, //0x0000215d xorl %ecx, %ecx + //0x0000215f LBB0_479 + 0x48, 0x39, 0xf7, //0x0000215f cmpq %rsi, %rdi + 0x0f, 0x8d, 0x1a, 0x00, 0x00, 0x00, //0x00002162 jge LBB0_481 + 0x48, 0x8d, 0x0c, 0x89, //0x00002168 leaq (%rcx,%rcx,4), %rcx + 0x49, 0x0f, 0xbe, 0x1c, 0x3c, //0x0000216c movsbq (%r12,%rdi), %rbx + 0x48, 0x8d, 0x4c, 0x4b, 0xd0, //0x00002171 leaq $-48(%rbx,%rcx,2), %rcx + 0x48, 0xff, 0xc7, //0x00002176 incq %rdi + 0x48, 0x39, 0xfa, //0x00002179 cmpq %rdi, %rdx + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x0000217c jne LBB0_479 + //0x00002182 LBB0_481 + 0x45, 0x31, 0xc9, //0x00002182 xorl %r9d, %r9d + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00002185 jmp LBB0_483 + //0x0000218a LBB0_482 + 0x31, 0xff, //0x0000218a xorl %edi, %edi + 0x41, 0xb1, 0x01, //0x0000218c movb $1, %r9b + 0x31, 0xc9, //0x0000218f xorl %ecx, %ecx + //0x00002191 LBB0_483 + 0x44, 0x89, 0xde, //0x00002191 movl %r11d, %esi + 0x29, 0xfe, //0x00002194 subl %edi, %esi + 0x0f, 0x8e, 0x52, 0x00, 0x00, 0x00, //0x00002196 jle LBB0_491 + 0x41, 0x89, 0xfa, //0x0000219c movl %edi, %r10d + 0x41, 0xf7, 0xd2, //0x0000219f notl %r10d + 0x45, 0x01, 0xda, //0x000021a2 addl %r11d, %r10d + 0x83, 0xe6, 0x07, //0x000021a5 andl $7, %esi + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000021a8 je LBB0_488 + 0xf7, 0xde, //0x000021ae negl %esi + 0x31, 0xdb, //0x000021b0 xorl %ebx, %ebx + //0x000021b2 LBB0_486 + 0x48, 0x01, 0xc9, //0x000021b2 addq %rcx, %rcx + 0x48, 0x8d, 0x0c, 0x89, //0x000021b5 leaq (%rcx,%rcx,4), %rcx + 0xff, 0xcb, //0x000021b9 decl %ebx + 0x39, 0xde, //0x000021bb cmpl %ebx, %esi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x000021bd jne LBB0_486 + 0x29, 0xdf, //0x000021c3 subl %ebx, %edi + //0x000021c5 LBB0_488 + 0x41, 0x83, 0xfa, 0x07, //0x000021c5 cmpl $7, %r10d + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000021c9 movabsq $4503599627370495, %r10 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000021d3 jb LBB0_491 + 0x44, 0x89, 0xde, //0x000021d9 movl %r11d, %esi + 0x29, 0xfe, //0x000021dc subl %edi, %esi + //0x000021de LBB0_490 + 0x48, 0x69, 0xc9, 0x00, 0xe1, 0xf5, 0x05, //0x000021de imulq $100000000, %rcx, %rcx + 0x83, 0xc6, 0xf8, //0x000021e5 addl $-8, %esi + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000021e8 jne LBB0_490 + //0x000021ee LBB0_491 + 0x31, 0xff, //0x000021ee xorl %edi, %edi + 0x45, 0x85, 0xdb, //0x000021f0 testl %r11d, %r11d + 0x0f, 0x88, 0x66, 0x00, 0x00, 0x00, //0x000021f3 js LBB0_500 + 0x44, 0x39, 0xd8, //0x000021f9 cmpl %r11d, %eax + 0x0f, 0x8e, 0x5d, 0x00, 0x00, 0x00, //0x000021fc jle LBB0_500 + 0x41, 0x8a, 0x14, 0x14, //0x00002202 movb (%r12,%rdx), %dl + 0x41, 0x8d, 0x73, 0x01, //0x00002206 leal $1(%r11), %esi + 0x39, 0xc6, //0x0000220a cmpl %eax, %esi + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x0000220c jne LBB0_497 + 0x80, 0xfa, 0x35, //0x00002212 cmpb $53, %dl + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x00002215 jne LBB0_497 + 0x45, 0x85, 0xf6, //0x0000221b testl %r14d, %r14d + 0x40, 0x0f, 0x95, 0xc7, //0x0000221e setne %dil + 0x41, 0x08, 0xf9, //0x00002222 orb %dil, %r9b + 0x0f, 0x85, 0x34, 0x00, 0x00, 0x00, //0x00002225 jne LBB0_500 + 0x49, 0x63, 0xc3, //0x0000222b movslq %r11d, %rax + 0x42, 0x8a, 0x7c, 0x20, 0xff, //0x0000222e movb $-1(%rax,%r12), %dil + 0x40, 0x80, 0xe7, 0x01, //0x00002233 andb $1, %dil + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00002237 jmp LBB0_500 + //0x0000223c LBB0_497 + 0x80, 0xfa, 0x34, //0x0000223c cmpb $52, %dl + 0x40, 0x0f, 0x9f, 0xc7, //0x0000223f setg %dil + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00002243 jmp LBB0_500 + //0x00002248 LBB0_498 + 0x31, 0xc9, //0x00002248 xorl %ecx, %ecx + 0x31, 0xff, //0x0000224a xorl %edi, %edi + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000224c jmp LBB0_500 + //0x00002251 LBB0_499 + 0x31, 0xc9, //0x00002251 xorl %ecx, %ecx + 0x31, 0xff, //0x00002253 xorl %edi, %edi + 0x49, 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002255 movabsq $4503599627370495, %r10 + //0x0000225f LBB0_500 + 0x8a, 0x55, 0xd7, //0x0000225f movb $-41(%rbp), %dl + 0x40, 0x0f, 0xb6, 0xf7, //0x00002262 movzbl %dil, %esi + 0x48, 0x01, 0xce, //0x00002266 addq %rcx, %rsi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00002269 movabsq $9007199254740992, %rax + 0x48, 0x39, 0xc6, //0x00002273 cmpq %rax, %rsi + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00002276 jne LBB0_503 + 0x41, 0x81, 0xf8, 0xfe, 0x03, 0x00, 0x00, //0x0000227c cmpl $1022, %r8d + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002283 movabsq $-9223372036854775808, %rdi + 0x0f, 0x8e, 0x20, 0x00, 0x00, 0x00, //0x0000228d jle LBB0_504 + 0x31, 0xf6, //0x00002293 xorl %esi, %esi + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002295 movabsq $9218868437227405312, %r8 + 0xe9, 0x36, 0x00, 0x00, 0x00, //0x0000229f jmp LBB0_506 + //0x000022a4 LBB0_503 + 0x48, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000022a4 movabsq $-9223372036854775808, %rdi + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x000022ae jmp LBB0_505 + //0x000022b3 LBB0_504 + 0x41, 0xff, 0xc0, //0x000022b3 incl %r8d + 0x49, 0x8d, 0x72, 0x01, //0x000022b6 leaq $1(%r10), %rsi + //0x000022ba LBB0_505 + 0x49, 0x8d, 0x42, 0x01, //0x000022ba leaq $1(%r10), %rax + 0x48, 0x21, 0xf0, //0x000022be andq %rsi, %rax + 0x41, 0x81, 0xc0, 0xff, 0x03, 0x00, 0x00, //0x000022c1 addl $1023, %r8d + 0x41, 0x81, 0xe0, 0xff, 0x07, 0x00, 0x00, //0x000022c8 andl $2047, %r8d + 0x49, 0xc1, 0xe0, 0x34, //0x000022cf shlq $52, %r8 + 0x48, 0x85, 0xc0, //0x000022d3 testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xc0, //0x000022d6 cmoveq %rax, %r8 + //0x000022da LBB0_506 + 0x4c, 0x21, 0xd6, //0x000022da andq %r10, %rsi + 0x4c, 0x09, 0xc6, //0x000022dd orq %r8, %rsi + 0x48, 0x89, 0xf3, //0x000022e0 movq %rsi, %rbx + 0x48, 0x09, 0xfb, //0x000022e3 orq %rdi, %rbx + 0x80, 0xfa, 0x2d, //0x000022e6 cmpb $45, %dl + 0x48, 0x0f, 0x45, 0xde, //0x000022e9 cmovneq %rsi, %rbx + //0x000022ed LBB0_507 + 0x48, 0xff, 0xcf, //0x000022ed decq %rdi + 0x48, 0x21, 0xdf, //0x000022f0 andq %rbx, %rdi + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000022f3 movabsq $9218868437227405312, %rax + 0x48, 0x39, 0xc7, //0x000022fd cmpq %rax, %rdi + 0x48, 0x8b, 0x45, 0x98, //0x00002300 movq $-104(%rbp), %rax + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00002304 jne LBB0_509 + 0x48, 0xc7, 0x00, 0xf8, 0xff, 0xff, 0xff, //0x0000230a movq $-8, (%rax) + //0x00002311 LBB0_509 + 0x48, 0x89, 0x58, 0x08, //0x00002311 movq %rbx, $8(%rax) + 0x48, 0x8b, 0x45, 0xa0, //0x00002315 movq $-96(%rbp), %rax + 0x48, 0x8b, 0x4d, 0xa8, //0x00002319 movq $-88(%rbp), %rcx + 0x48, 0x89, 0x08, //0x0000231d movq %rcx, (%rax) + 0xe9, 0x0a, 0xe0, 0xff, 0xff, //0x00002320 jmp LBB0_51 + 0x00, 0x00, 0x00, //0x00002325 .p2align 2, 0x00 + //0x00002328 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00002328 .long 2 + 0x00, 0x00, 0x00, 0x00, //0x0000232c .p2align 4, 0x00 + //0x00002330 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x00002330 .quad 4607182418800017408 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x00002338 .quad 4621819117588971520 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x00002340 .quad 4636737291354636288 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x00002348 .quad 4652007308841189376 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x00002350 .quad 4666723172467343360 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x00002358 .quad 4681608360884174848 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x00002360 .quad 4696837146684686336 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x00002368 .quad 4711630319722168320 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x00002370 .quad 4726483295884279808 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x00002378 .quad 4741671816366391296 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00002380 .quad 4756540486875873280 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00002388 .quad 4771362005757984768 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00002390 .quad 4786511204640096256 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00002398 .quad 4801453603149578240 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x000023a0 .quad 4816244402031689728 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x000023a8 .quad 4831355200913801216 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x000023b0 .quad 4846369599423283200 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x000023b8 .quad 4861130398305394688 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x000023c0 .quad 4876203697187506176 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x000023c8 .quad 4891288408196988160 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x000023d0 .quad 4906019910204099648 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x000023d8 .quad 4921056587992461136 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x000023e0 .quad 4936209963552724370 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000023e8 .p2align 4, 0x00 + //0x000023f0 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x000023f0 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x000023f8 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00002400 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00002408 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00002410 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00002418 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00002420 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00002428 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00002430 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00002438 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00002440 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00002448 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00002450 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00002458 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00002460 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00002468 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00002470 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00002478 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00002480 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00002488 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00002490 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00002498 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x000024a0 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x000024a8 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x000024b0 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x000024b8 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x000024c0 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x000024c8 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x000024d0 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x000024d8 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x000024e0 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x000024e8 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x000024f0 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x000024f8 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00002500 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00002508 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00002510 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00002518 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00002520 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00002528 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00002530 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00002538 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00002540 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00002548 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00002550 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00002558 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00002560 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00002568 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00002570 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00002578 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00002580 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00002588 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00002590 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00002598 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x000025a0 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x000025a8 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x000025b0 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x000025b8 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x000025c0 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x000025c8 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x000025d0 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x000025d8 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x000025e0 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x000025e8 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x000025f0 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x000025f8 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00002600 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00002608 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00002610 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00002618 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00002620 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00002628 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00002630 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00002638 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00002640 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00002648 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00002650 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00002658 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00002660 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00002668 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00002670 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00002678 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00002680 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00002688 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00002690 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00002698 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x000026a0 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x000026a8 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x000026b0 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x000026b8 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x000026c0 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x000026c8 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x000026d0 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x000026d8 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x000026e0 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x000026e8 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x000026f0 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x000026f8 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00002700 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00002708 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00002710 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00002718 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00002720 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00002728 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00002730 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00002738 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00002740 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00002748 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00002750 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00002758 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00002760 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00002768 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00002770 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00002778 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00002780 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00002788 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00002790 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00002798 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x000027a0 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x000027a8 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x000027b0 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x000027b8 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x000027c0 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x000027c8 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x000027d0 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x000027d8 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x000027e0 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x000027e8 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x000027f0 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x000027f8 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00002800 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00002808 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00002810 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00002818 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00002820 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00002828 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00002830 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00002838 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00002840 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00002848 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00002850 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00002858 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00002860 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00002868 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00002870 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00002878 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00002880 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00002888 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00002890 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00002898 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x000028a0 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x000028a8 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x000028b0 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x000028b8 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x000028c0 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x000028c8 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x000028d0 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x000028d8 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x000028e0 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x000028e8 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x000028f0 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x000028f8 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00002900 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00002908 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00002910 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00002918 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00002920 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00002928 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00002930 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00002938 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00002940 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00002948 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00002950 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00002958 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00002960 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00002968 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00002970 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00002978 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00002980 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00002988 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00002990 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00002998 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x000029a0 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x000029a8 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x000029b0 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x000029b8 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x000029c0 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x000029c8 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x000029d0 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x000029d8 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x000029e0 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x000029e8 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x000029f0 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x000029f8 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00002a00 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00002a08 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00002a10 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00002a18 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00002a20 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00002a28 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00002a30 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00002a38 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00002a40 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00002a48 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00002a50 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00002a58 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00002a60 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00002a68 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00002a70 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00002a78 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00002a80 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00002a88 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00002a90 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00002a98 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00002aa0 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00002aa8 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00002ab0 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00002ab8 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00002ac0 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00002ac8 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00002ad0 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00002ad8 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00002ae0 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00002ae8 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00002af0 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00002af8 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00002b00 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00002b08 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00002b10 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00002b18 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00002b20 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00002b28 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00002b30 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00002b38 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00002b40 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00002b48 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00002b50 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00002b58 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00002b60 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00002b68 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00002b70 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00002b78 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00002b80 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00002b88 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00002b90 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00002b98 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00002ba0 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00002ba8 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00002bb0 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00002bb8 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x00002bc0 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x00002bc8 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x00002bd0 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x00002bd8 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x00002be0 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x00002be8 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x00002bf0 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x00002bf8 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x00002c00 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x00002c08 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x00002c10 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x00002c18 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x00002c20 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x00002c28 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x00002c30 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x00002c38 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x00002c40 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x00002c48 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x00002c50 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x00002c58 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x00002c60 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x00002c68 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x00002c70 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x00002c78 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x00002c80 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x00002c88 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x00002c90 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x00002c98 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x00002ca0 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x00002ca8 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x00002cb0 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x00002cb8 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x00002cc0 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x00002cc8 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x00002cd0 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x00002cd8 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x00002ce0 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x00002ce8 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x00002cf0 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x00002cf8 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x00002d00 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x00002d08 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x00002d10 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x00002d18 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x00002d20 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x00002d28 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x00002d30 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x00002d38 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x00002d40 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x00002d48 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x00002d50 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x00002d58 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x00002d60 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x00002d68 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x00002d70 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x00002d78 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x00002d80 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x00002d88 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x00002d90 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x00002d98 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x00002da0 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x00002da8 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x00002db0 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x00002db8 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x00002dc0 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x00002dc8 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x00002dd0 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x00002dd8 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x00002de0 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x00002de8 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x00002df0 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x00002df8 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x00002e00 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x00002e08 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x00002e10 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x00002e18 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x00002e20 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x00002e28 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x00002e30 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x00002e38 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x00002e40 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x00002e48 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x00002e50 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x00002e58 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x00002e60 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x00002e68 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x00002e70 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x00002e78 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x00002e80 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x00002e88 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x00002e90 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x00002e98 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x00002ea0 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x00002ea8 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x00002eb0 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x00002eb8 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x00002ec0 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x00002ec8 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x00002ed0 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x00002ed8 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x00002ee0 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x00002ee8 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x00002ef0 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x00002ef8 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x00002f00 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x00002f08 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x00002f10 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x00002f18 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x00002f20 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x00002f28 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x00002f30 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x00002f38 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x00002f40 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x00002f48 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x00002f50 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x00002f58 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x00002f60 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x00002f68 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x00002f70 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x00002f78 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x00002f80 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x00002f88 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x00002f90 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x00002f98 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x00002fa0 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x00002fa8 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x00002fb0 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x00002fb8 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x00002fc0 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x00002fc8 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x00002fd0 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x00002fd8 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x00002fe0 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x00002fe8 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x00002ff0 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x00002ff8 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x00003000 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x00003008 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x00003010 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x00003018 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x00003020 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x00003028 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x00003030 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x00003038 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x00003040 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x00003048 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x00003050 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x00003058 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x00003060 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x00003068 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x00003070 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x00003078 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x00003080 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x00003088 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x00003090 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x00003098 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x000030a0 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x000030a8 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x000030b0 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x000030b8 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x000030c0 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x000030c8 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x000030d0 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x000030d8 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x000030e0 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x000030e8 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x000030f0 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x000030f8 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x00003100 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x00003108 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x00003110 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x00003118 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x00003120 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x00003128 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x00003130 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x00003138 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x00003140 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x00003148 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x00003150 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x00003158 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x00003160 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x00003168 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x00003170 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x00003178 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x00003180 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x00003188 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x00003190 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x00003198 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x000031a0 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x000031a8 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x000031b0 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x000031b8 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x000031c0 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x000031c8 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x000031d0 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x000031d8 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x000031e0 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x000031e8 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x000031f0 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x000031f8 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x00003200 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x00003208 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x00003210 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x00003218 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x00003220 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x00003228 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x00003230 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x00003238 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x00003240 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x00003248 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x00003250 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x00003258 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x00003260 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x00003268 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x00003270 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x00003278 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x00003280 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x00003288 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x00003290 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x00003298 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x000032a0 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x000032a8 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x000032b0 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x000032b8 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x000032c0 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x000032c8 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x000032d0 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x000032d8 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x000032e0 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x000032e8 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x000032f0 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x000032f8 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x00003300 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x00003308 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x00003310 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x00003318 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x00003320 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x00003328 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x00003330 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x00003338 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x00003340 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x00003348 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x00003350 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x00003358 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x00003360 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x00003368 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x00003370 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x00003378 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x00003380 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x00003388 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x00003390 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x00003398 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x000033a0 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x000033a8 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x000033b0 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x000033b8 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x000033c0 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x000033c8 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x000033d0 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x000033d8 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x000033e0 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x000033e8 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x000033f0 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x000033f8 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x00003400 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x00003408 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x00003410 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x00003418 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x00003420 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x00003428 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x00003430 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x00003438 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x00003440 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x00003448 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x00003450 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x00003458 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x00003460 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x00003468 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x00003470 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x00003478 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x00003480 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x00003488 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x00003490 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x00003498 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x000034a0 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x000034a8 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x000034b0 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x000034b8 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x000034c0 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x000034c8 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x000034d0 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x000034d8 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x000034e0 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x000034e8 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x000034f0 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x000034f8 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x00003500 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x00003508 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x00003510 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x00003518 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x00003520 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x00003528 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x00003530 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x00003538 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x00003540 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x00003548 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x00003550 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x00003558 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x00003560 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x00003568 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x00003570 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x00003578 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x00003580 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x00003588 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x00003590 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x00003598 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x000035a0 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x000035a8 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x000035b0 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x000035b8 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x000035c0 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x000035c8 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x000035d0 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x000035d8 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x000035e0 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x000035e8 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x000035f0 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x000035f8 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x00003600 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x00003608 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x00003610 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x00003618 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x00003620 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x00003628 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x00003630 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x00003638 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x00003640 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x00003648 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x00003650 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x00003658 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x00003660 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x00003668 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x00003670 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x00003678 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x00003680 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x00003688 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x00003690 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x00003698 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x000036a0 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x000036a8 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x000036b0 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x000036b8 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x000036c0 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x000036c8 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x000036d0 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x000036d8 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x000036e0 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x000036e8 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x000036f0 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x000036f8 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x00003700 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x00003708 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x00003710 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x00003718 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x00003720 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x00003728 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x00003730 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x00003738 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x00003740 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x00003748 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x00003750 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x00003758 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x00003760 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x00003768 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x00003770 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x00003778 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x00003780 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x00003788 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x00003790 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x00003798 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x000037a0 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x000037a8 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x000037b0 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x000037b8 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x000037c0 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x000037c8 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x000037d0 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x000037d8 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x000037e0 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x000037e8 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x000037f0 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x000037f8 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x00003800 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00003808 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x00003810 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00003818 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x00003820 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00003828 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x00003830 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00003838 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x00003840 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x00003848 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x00003850 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x00003858 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x00003860 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x00003868 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x00003870 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x00003878 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x00003880 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x00003888 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x00003890 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x00003898 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x000038a0 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000038a8 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x000038b0 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000038b8 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x000038c0 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000038c8 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x000038d0 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000038d8 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x000038e0 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000038e8 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x000038f0 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000038f8 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x00003900 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00003908 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x00003910 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00003918 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x00003920 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00003928 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x00003930 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00003938 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x00003940 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00003948 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x00003950 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00003958 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x00003960 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00003968 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x00003970 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00003978 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x00003980 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00003988 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x00003990 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00003998 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x000039a0 QUAD $0xcccccccccccccccc; QUAD $0xcccccccccccccccc // .space 16, '\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000039b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000039b8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000039c0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x000039c8 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000039d0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x000039d8 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000039e0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x000039e8 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000039f0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x000039f8 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00003a08 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00003a18 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00003a28 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00003a38 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00003a48 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00003a58 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00003a68 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00003a78 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00003a88 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a90 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00003a98 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003aa0 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00003aa8 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ab0 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00003ab8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ac0 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00003ac8 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ad0 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00003ad8 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003ae0 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00003ae8 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003af0 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00003af8 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b00 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00003b08 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b10 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00003b18 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b20 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00003b28 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b30 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00003b38 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b40 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00003b48 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b50 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00003b58 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003b60 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00003b68 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x00003b70 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00003b78 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x00003b80 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00003b88 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x00003b90 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00003b98 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x00003ba0 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00003ba8 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x00003bb0 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00003bb8 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x00003bc0 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00003bc8 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x00003bd0 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00003bd8 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x00003be0 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00003be8 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x00003bf0 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00003bf8 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x00003c00 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00003c08 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x00003c10 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00003c18 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x00003c20 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00003c28 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x00003c30 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00003c38 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x00003c40 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00003c48 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x00003c50 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00003c58 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x00003c60 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00003c68 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x00003c70 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00003c78 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x00003c80 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00003c88 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x00003c90 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x00003c98 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x00003ca0 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x00003ca8 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x00003cb0 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x00003cb8 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x00003cc0 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x00003cc8 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x00003cd0 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x00003cd8 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x00003ce0 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x00003ce8 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x00003cf0 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x00003cf8 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x00003d00 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x00003d08 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x00003d10 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x00003d18 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x00003d20 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x00003d28 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x00003d30 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x00003d38 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x00003d40 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x00003d48 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x00003d50 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x00003d58 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x00003d60 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x00003d68 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x00003d70 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x00003d78 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x00003d80 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x00003d88 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x00003d90 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x00003d98 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x00003da0 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x00003da8 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x00003db0 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x00003db8 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x00003dc0 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x00003dc8 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x00003dd0 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x00003dd8 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x00003de0 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x00003de8 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x00003df0 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x00003df8 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x00003e00 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x00003e08 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x00003e10 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x00003e18 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x00003e20 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x00003e28 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x00003e30 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x00003e38 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x00003e40 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x00003e48 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x00003e50 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x00003e58 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x00003e60 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x00003e68 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x00003e70 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x00003e78 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x00003e80 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x00003e88 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x00003e90 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x00003e98 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x00003ea0 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x00003ea8 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x00003eb0 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x00003eb8 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x00003ec0 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x00003ec8 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x00003ed0 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x00003ed8 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x00003ee0 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x00003ee8 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x00003ef0 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x00003ef8 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x00003f00 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x00003f08 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x00003f10 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x00003f18 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x00003f20 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x00003f28 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x00003f30 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x00003f38 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x00003f40 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x00003f48 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x00003f50 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x00003f58 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x00003f60 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x00003f68 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x00003f70 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x00003f78 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x00003f80 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x00003f88 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x00003f90 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x00003f98 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x00003fa0 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x00003fa8 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x00003fb0 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x00003fb8 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x00003fc0 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x00003fc8 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x00003fd0 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x00003fd8 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x00003fe0 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x00003fe8 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x00003ff0 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x00003ff8 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x00004000 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x00004008 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x00004010 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x00004018 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x00004020 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x00004028 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x00004030 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x00004038 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x00004040 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x00004048 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x00004050 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x00004058 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x00004060 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x00004068 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x00004070 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x00004078 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x00004080 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x00004088 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x00004090 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x00004098 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x000040a0 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x000040a8 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x000040b0 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x000040b8 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x000040c0 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x000040c8 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x000040d0 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x000040d8 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x000040e0 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x000040e8 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x000040f0 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x000040f8 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x00004100 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x00004108 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x00004110 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x00004118 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x00004120 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x00004128 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x00004130 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x00004138 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x00004140 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x00004148 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x00004150 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x00004158 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x00004160 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x00004168 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x00004170 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x00004178 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x00004180 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x00004188 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x00004190 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x00004198 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x000041a0 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x000041a8 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x000041b0 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x000041b8 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x000041c0 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x000041c8 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x000041d0 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x000041d8 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x000041e0 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x000041e8 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x000041f0 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x000041f8 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x00004200 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x00004208 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x00004210 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x00004218 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x00004220 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x00004228 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x00004230 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x00004238 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x00004240 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x00004248 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x00004250 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x00004258 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x00004260 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x00004268 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x00004270 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x00004278 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x00004280 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x00004288 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x00004290 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x00004298 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x000042a0 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x000042a8 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x000042b0 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x000042b8 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x000042c0 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x000042c8 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x000042d0 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x000042d8 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x000042e0 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x000042e8 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x000042f0 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x000042f8 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x00004300 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x00004308 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x00004310 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x00004318 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x00004320 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x00004328 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x00004330 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x00004338 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x00004340 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x00004348 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x00004350 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x00004358 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x00004360 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x00004368 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x00004370 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x00004378 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x00004380 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x00004388 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x00004390 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x00004398 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x000043a0 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x000043a8 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x000043b0 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x000043b8 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x000043c0 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x000043c8 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x000043d0 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x000043d8 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x000043e0 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x000043e8 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x000043f0 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x000043f8 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x00004400 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x00004408 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x00004410 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x00004418 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x00004420 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x00004428 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x00004430 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x00004438 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x00004440 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x00004448 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x00004450 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x00004458 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x00004460 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x00004468 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x00004470 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x00004478 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x00004480 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x00004488 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x00004490 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x00004498 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x000044a0 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x000044a8 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x000044b0 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x000044b8 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x000044c0 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x000044c8 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x000044d0 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x000044d8 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x000044e0 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x000044e8 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x000044f0 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x000044f8 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x00004500 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x00004508 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x00004510 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x00004518 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x00004520 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x00004528 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x00004530 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x00004538 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x00004540 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x00004548 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x00004550 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x00004558 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x00004560 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x00004568 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x00004570 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x00004578 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x00004580 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x00004588 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x00004590 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x00004598 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x000045a0 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x000045a8 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x000045b0 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x000045b8 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x000045c0 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x000045c8 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x000045d0 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x000045d8 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x000045e0 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x000045e8 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x000045f0 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x000045f8 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x00004600 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x00004608 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x00004610 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x00004618 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x00004620 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x00004628 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x00004630 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x00004638 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x00004640 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x00004648 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x00004650 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x00004658 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x00004660 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x00004668 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x00004670 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x00004678 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x00004680 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x00004688 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x00004690 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x00004698 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x000046a0 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x000046a8 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x000046b0 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x000046b8 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x000046c0 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x000046c8 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x000046d0 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x000046d8 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x000046e0 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x000046e8 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x000046f0 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x000046f8 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x00004700 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x00004708 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x00004710 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x00004718 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x00004720 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x00004728 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x00004730 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x00004738 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x00004740 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x00004748 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x00004750 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x00004758 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x00004760 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x00004768 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x00004770 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x00004778 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x00004780 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x00004788 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x00004790 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x00004798 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x000047a0 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x000047a8 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x000047b0 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x000047b8 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x000047c0 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x000047c8 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x000047d0 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x000047d8 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x000047e0 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x000047e8 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x000047f0 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x000047f8 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x00004800 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x00004808 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x00004810 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x00004818 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x00004820 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x00004828 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x00004830 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x00004838 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x00004840 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x00004848 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x00004850 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x00004858 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x00004860 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x00004868 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x00004870 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x00004878 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x00004880 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x00004888 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x00004890 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x00004898 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x000048a0 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x000048a8 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x000048b0 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x000048b8 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x000048c0 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x000048c8 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x000048d0 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x000048d8 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x000048e0 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x000048e8 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x000048f0 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x000048f8 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x00004900 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x00004908 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x00004910 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x00004918 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x00004920 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x00004928 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x00004930 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x00004938 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x00004940 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x00004948 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x00004950 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x00004958 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x00004960 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x00004968 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x00004970 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x00004978 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x00004980 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x00004988 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x00004990 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x00004998 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x000049a0 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x000049a8 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x000049b0 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x000049b8 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x000049c0 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x000049c8 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x000049d0 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x000049d8 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x000049e0 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x000049e8 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x000049f0 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x000049f8 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x00004a00 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x00004a08 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x00004a10 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x00004a18 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x00004a20 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x00004a28 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x00004a30 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x00004a38 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x00004a40 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x00004a48 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x00004a50 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x00004a58 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x00004a60 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x00004a68 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x00004a70 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x00004a78 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x00004a80 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x00004a88 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x00004a90 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x00004a98 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x00004aa0 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x00004aa8 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x00004ab0 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x00004ab8 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x00004ac0 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x00004ac8 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x00004ad0 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x00004ad8 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x00004ae0 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x00004ae8 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x00004af0 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x00004af8 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x00004b00 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x00004b08 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x00004b10 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x00004b18 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x00004b20 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x00004b28 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x00004b30 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x00004b38 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x00004b40 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x00004b48 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x00004b50 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x00004b58 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x00004b60 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x00004b68 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x00004b70 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x00004b78 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x00004b80 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x00004b88 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x00004b90 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x00004b98 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x00004ba0 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x00004ba8 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x00004bb0 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x00004bb8 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x00004bc0 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x00004bc8 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x00004bd0 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x00004bd8 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x00004be0 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x00004be8 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x00004bf0 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x00004bf8 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x00004c00 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x00004c08 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x00004c10 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x00004c18 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x00004c20 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x00004c28 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x00004c30 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x00004c38 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x00004c40 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x00004c48 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x00004c50 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x00004c58 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x00004c60 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x00004c68 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x00004c70 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x00004c78 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x00004c80 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x00004c88 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x00004c90 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x00004c98 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x00004ca0 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x00004ca8 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x00004cb0 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x00004cb8 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x00004cc0 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x00004cc8 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x00004cd0 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x00004cd8 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x00004ce0 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x00004ce8 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x00004cf0 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x00004cf8 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x00004d00 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x00004d08 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x00004d10 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x00004d18 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x00004d20 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x00004d28 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x00004d30 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x00004d38 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x00004d40 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x00004d48 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x00004d50 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x00004d58 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x00004d60 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x00004d68 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x00004d70 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x00004d78 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x00004d80 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x00004d88 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x00004d90 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x00004d98 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x00004da0 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x00004da8 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x00004db0 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x00004db8 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x00004dc0 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x00004dc8 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x00004dd0 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x00004dd8 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x00004de0 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x00004de8 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x00004df0 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x00004df8 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x00004e00 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x00004e08 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x00004e10 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x00004e18 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x00004e20 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x00004e28 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x00004e30 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x00004e38 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x00004e40 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x00004e48 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x00004e50 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x00004e58 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x00004e60 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x00004e68 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x00004e70 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x00004e78 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x00004e80 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x00004e88 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x00004e90 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x00004e98 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x00004ea0 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x00004ea8 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x00004eb0 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x00004eb8 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x00004ec0 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x00004ec8 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x00004ed0 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x00004ed8 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x00004ee0 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x00004ee8 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x00004ef0 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x00004ef8 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x00004f00 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x00004f08 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x00004f10 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x00004f18 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x00004f20 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x00004f28 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x00004f30 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x00004f38 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x00004f40 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x00004f48 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x00004f50 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x00004f58 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x00004f60 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x00004f68 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004f70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00004f80 .p2align 4, 0x00 + //0x00004f80 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x00004f80 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x00004f84 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x00004f88 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x00004f8c .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x00004f90 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x00004f94 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x00004f98 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x00004f9c .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x00004fa0 .long 26 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fa4 .p2align 4, 0x00 + //0x00004fb0 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004fe0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ff0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005000 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005010 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00005018 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000501c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000502c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000503c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000504c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000505c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000506c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000507c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00005080 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005084 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000050e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x000050e8 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050ec QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000050fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000510c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000511c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000512c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000513c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000514c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00005150 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005154 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005184 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000051b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x000051b8 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051bc QUAD $0x0000000035323133; QUAD $0x0000000000000000 // .asciz 16, '3125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000051fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000520c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000521c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00005220 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005224 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005244 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005254 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005284 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00005288 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000528c QUAD $0x0000003532313837; QUAD $0x0000000000000000 // .asciz 16, '78125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000529c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000052ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000052f0 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000052f4 QUAD $0x0000353236303933; QUAD $0x0000000000000000 // .asciz 16, '390625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005314 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005354 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00005358 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000535c QUAD $0x0035323133353931; QUAD $0x0000000000000000 // .asciz 16, '1953125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000536c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000537c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000538c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000539c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000053bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000053c0 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053c4 QUAD $0x0035323635363739; QUAD $0x0000000000000000 // .asciz 16, '9765625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000053f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005424 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005428 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000542c QUAD $0x3532313832383834; QUAD $0x0000000000000000 // .asciz 16, '48828125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000543c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000544c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000545c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000546c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000547c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000548c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00005490 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005494 QUAD $0x3236303431343432; QUAD $0x0000000000000035 // .asciz 16, '244140625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000054f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000054f8 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000054fc QUAD $0x3133303730323231; QUAD $0x0000000000003532 // .asciz 16, '1220703125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000550c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000551c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000552c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000553c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000554c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000555c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005560 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005564 QUAD $0x3635313533303136; QUAD $0x0000000000003532 // .asciz 16, '6103515625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005584 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005594 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000055c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000055c8 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055cc QUAD $0x3837353731353033; QUAD $0x0000000000353231 // .asciz 16, '30517578125\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000055fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000560c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000561c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000562c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00005630 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00005634 QUAD $0x3938373835323531; QUAD $0x0000000035323630 // .asciz 16, '152587890625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005654 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005664 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005694 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00005698 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x0000569c QUAD $0x3534393339323637; QUAD $0x0000000035323133 // .asciz 16, '762939453125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000056ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000056fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00005700 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00005704 QUAD $0x3237393634313833; QUAD $0x0000003532363536 // .asciz 16, '3814697265625\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005744 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005764 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00005768 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0000576c QUAD $0x3638343337303931; QUAD $0x0000353231383233 // .asciz 16, '19073486328125\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000577c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000578c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000579c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000057cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000057d0 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000057d4 QUAD $0x3133343736333539; QUAD $0x0000353236303436 // .asciz 16, '95367431640625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005814 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005834 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005838 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0000583c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000584c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000585c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000586c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000587c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000588c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000589c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000058a0 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000058a4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005904 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00005908 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0000590c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000591c QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000592c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000593c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000594c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000595c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000596c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005970 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00005974 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005984 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000059d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000059d8 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x000059dc QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059ec QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000059fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005a3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00005a40 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00005a44 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a54 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005aa4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005aa8 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00005aac QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005abc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005adc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005aec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005b0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005b10 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00005b14 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b24 QUAD $0x0000000035323630; QUAD $0x0000000000000000 // .asciz 16, '0625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005b74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00005b78 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00005b7c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b8c QUAD $0x0000003532313330; QUAD $0x0000000000000000 // .asciz 16, '03125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005bdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005be0 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00005be4 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005bf4 QUAD $0x0000003532363531; QUAD $0x0000000000000000 // .asciz 16, '15625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005c44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005c48 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00005c4c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c5c QUAD $0x0000353231383735; QUAD $0x0000000000000000 // .asciz 16, '578125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005cac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005cb0 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00005cb4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cc4 QUAD $0x0035323630393832; QUAD $0x0000000000000000 // .asciz 16, '2890625\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005cf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005d14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00005d18 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00005d1c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d2c QUAD $0x3532313335343431; QUAD $0x0000000000000000 // .asciz 16, '14453125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005d7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00005d80 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00005d84 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005d94 QUAD $0x3532363536323237; QUAD $0x0000000000000000 // .asciz 16, '72265625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005de4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00005de8 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00005dec QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005dfc QUAD $0x3231383233313633; QUAD $0x0000000000000035 // .asciz 16, '361328125\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005e4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00005e50 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00005e54 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e64 QUAD $0x3630343636303831; QUAD $0x0000000000003532 // .asciz 16, '1806640625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005e94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ea4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005eb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00005eb8 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00005ebc QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005ecc QUAD $0x3133303233333039; QUAD $0x0000000000003532 // .asciz 16, '9033203125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005f1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00005f20 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00005f24 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f34 QUAD $0x3531303636313539; QUAD $0x0000000000353236 // .asciz 16, '95166015625\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005f74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005f84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00005f88 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00005f8c QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00005f9c QUAD $0x3730303338353734; QUAD $0x0000000035323138 // .asciz 16, '475830078125\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005fdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00005fec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00005ff0 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00005ff4 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00006004 QUAD $0x3933303531393733; QUAD $0x0000000035323630 // .asciz 16, '379150390625\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006044 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006054 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006058 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0000605c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0000606c QUAD $0x3931353735393831; QUAD $0x0000003532313335 // .asciz 16, '1895751953125\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000607c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000608c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000609c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000060bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000060c0 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x000060c4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000060d4 QUAD $0x3935373837343935; QUAD $0x0000353236353637 // .asciz 16, '59478759765625\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000060f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006114 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006124 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00006128 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x0000612c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x0000613c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000614c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000615c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000616c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000617c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000618c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00006190 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00006194 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x000061a4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000061e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000061f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000061f8 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x000061fc QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0000620c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000621c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000622c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000623c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000624c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000625c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00006260 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00006264 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00006274 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006284 QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000062c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000062c8 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x000062cc QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x000062dc QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062ec QUAD $0x0000000000000035; QUAD $0x0000000000000000 // .asciz 16, '5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000062fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000630c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000631c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000632c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006330 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00006334 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00006344 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006354 QUAD $0x0000000000003532; QUAD $0x0000000000000000 // .asciz 16, '25\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006384 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006394 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00006398 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x0000639c QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x000063ac QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063bc QUAD $0x0000000000353231; QUAD $0x0000000000000000 // .asciz 16, '125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000063ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000063fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006400 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00006404 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00006414 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006424 QUAD $0x0000000000353236; QUAD $0x0000000000000000 // .asciz 16, '625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006454 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006464 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006468 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0000646c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0000647c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000648c QUAD $0x0000000035323138; QUAD $0x0000000000000000 // .asciz 16, '8125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000649c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000064cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000064d0 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x000064d4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x000064e4 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000064f4 QUAD $0x0000003532363034; QUAD $0x0000000000000000 // .asciz 16, '40625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006524 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006534 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00006538 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0000653c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0000654c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000655c QUAD $0x0000353231333032; QUAD $0x0000000000000000 // .asciz 16, '203125\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000656c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000657c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000658c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000659c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000065a0 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000065a4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000065b4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065c4 QUAD $0x0000353236353130; QUAD $0x0000000000000000 // .asciz 16, '015625\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000065f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006604 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00006608 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0000660c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0000661c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000662c QUAD $0x0035323138373035; QUAD $0x0000000000000000 // .asciz 16, '5078125\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000663c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000664c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000665c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000666c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00006670 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00006674 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x00006684 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006694 QUAD $0x3532363039333532; QUAD $0x0000000000000000 // .asciz 16, '25390625\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000066d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000066d8 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x000066dc QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x000066ec QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066fc QUAD $0x3532313335393632; QUAD $0x0000000000000000 // .asciz 16, '26953125\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000670c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000671c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000672c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000673c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00006740 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00006744 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00006754 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006764 QUAD $0x3236353637343331; QUAD $0x0000000000000035 // .asciz 16, '134765625\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006794 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000067a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000067a8 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000067ac QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000067bc QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067cc QUAD $0x3138323833373630; QUAD $0x0000000000003532 // .asciz 16, '0673828125\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000067fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0000680c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00006810 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00006814 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00006824 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006834 QUAD $0x3630343139363333; QUAD $0x0000000000003532 // .asciz 16, '3369140625\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00006874 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned.go new file mode 100644 index 000000000..a73ecd780 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vsigned uintptr + +//go:nosplit +func vsigned(s *string, p *int, v *types.JsonState) { + F_vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_subr.go new file mode 100644 index 000000000..df428adc1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_subr.go @@ -0,0 +1,50 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vsigned = 0 +) + +const ( + _stack__vsigned = 16 +) + +const ( + _size__vsigned = 336 +) + +var ( + _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}, + } +) + +var _cfunc_vsigned = []loader.CFunc{ + {"_vsigned_entry", 0, _entry__vsigned, 0, nil}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_text_amd64.go new file mode 100644 index 000000000..af027c0be --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vsigned_text_amd64.go @@ -0,0 +1,112 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_vsigned = []byte{ + // .p2align 4, 0x90 + // _vsigned + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x53, //0x00000004 pushq %rbx + 0x48, 0x8b, 0x1e, //0x00000005 movq (%rsi), %rbx + 0x4c, 0x8b, 0x07, //0x00000008 movq (%rdi), %r8 + 0x4c, 0x8b, 0x57, 0x08, //0x0000000b movq $8(%rdi), %r10 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000000f movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000016 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x0000001e movq $0, $16(%rdx) + 0x48, 0x8b, 0x0e, //0x00000026 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00000029 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd3, //0x0000002d cmpq %r10, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00000030 jae LBB0_1 + 0x41, 0x8a, 0x0c, 0x18, //0x00000036 movb (%r8,%rbx), %cl + 0x41, 0xb9, 0x01, 0x00, 0x00, 0x00, //0x0000003a movl $1, %r9d + 0x80, 0xf9, 0x2d, //0x00000040 cmpb $45, %cl + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00000043 jne LBB0_5 + 0x48, 0xff, 0xc3, //0x00000049 incq %rbx + 0x4c, 0x39, 0xd3, //0x0000004c cmpq %r10, %rbx + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x0000004f jae LBB0_1 + 0x41, 0x8a, 0x0c, 0x18, //0x00000055 movb (%r8,%rbx), %cl + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000059 movq $-1, %r9 + //0x00000060 LBB0_5 + 0x8d, 0x79, 0xd0, //0x00000060 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x00000063 cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00000067 jb LBB0_7 + 0x48, 0x89, 0x1e, //0x0000006d movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x00000070 movq $-2, (%rdx) + 0x5b, //0x00000077 popq %rbx + 0x5d, //0x00000078 popq %rbp + 0xc3, //0x00000079 retq + //0x0000007a LBB0_1 + 0x4c, 0x89, 0x16, //0x0000007a movq %r10, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000007d movq $-1, (%rdx) + 0x5b, //0x00000084 popq %rbx + 0x5d, //0x00000085 popq %rbp + 0xc3, //0x00000086 retq + //0x00000087 LBB0_7 + 0x80, 0xf9, 0x30, //0x00000087 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000008a jne LBB0_8 + 0x48, 0x8d, 0x7b, 0x01, //0x00000090 leaq $1(%rbx), %rdi + 0x4c, 0x39, 0xd3, //0x00000094 cmpq %r10, %rbx + 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x00000097 jae LBB0_17 + 0x41, 0x8a, 0x0c, 0x38, //0x0000009d movb (%r8,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000000a1 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000000a4 cmpb $55, %cl + 0x0f, 0x87, 0x6a, 0x00, 0x00, 0x00, //0x000000a7 ja LBB0_17 + 0x44, 0x0f, 0xb6, 0xd9, //0x000000ad movzbl %cl, %r11d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000000b1 movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x000000bb btq %r11, %rcx + 0x0f, 0x83, 0x52, 0x00, 0x00, 0x00, //0x000000bf jae LBB0_17 + //0x000000c5 LBB0_8 + 0x31, 0xff, //0x000000c5 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000c7 .p2align 4, 0x90 + //0x000000d0 LBB0_9 + 0x4c, 0x39, 0xd3, //0x000000d0 cmpq %r10, %rbx + 0x0f, 0x83, 0x6c, 0x00, 0x00, 0x00, //0x000000d3 jae LBB0_22 + 0x49, 0x0f, 0xbe, 0x0c, 0x18, //0x000000d9 movsbq (%r8,%rbx), %rcx + 0x8d, 0x41, 0xd0, //0x000000de leal $-48(%rcx), %eax + 0x3c, 0x09, //0x000000e1 cmpb $9, %al + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x000000e3 ja LBB0_18 + 0x48, 0x6b, 0xff, 0x0a, //0x000000e9 imulq $10, %rdi, %rdi + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x000000ed jo LBB0_13 + 0x48, 0xff, 0xc3, //0x000000f3 incq %rbx + 0x48, 0x83, 0xc1, 0xd0, //0x000000f6 addq $-48, %rcx + 0x49, 0x0f, 0xaf, 0xc9, //0x000000fa imulq %r9, %rcx + 0x48, 0x01, 0xcf, //0x000000fe addq %rcx, %rdi + 0x0f, 0x81, 0xc9, 0xff, 0xff, 0xff, //0x00000101 jno LBB0_9 + //0x00000107 LBB0_13 + 0x48, 0xff, 0xcb, //0x00000107 decq %rbx + 0x48, 0x89, 0x1e, //0x0000010a movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000010d movq $-5, (%rdx) + 0x5b, //0x00000114 popq %rbx + 0x5d, //0x00000115 popq %rbp + 0xc3, //0x00000116 retq + //0x00000117 LBB0_17 + 0x48, 0x89, 0x3e, //0x00000117 movq %rdi, (%rsi) + 0x5b, //0x0000011a popq %rbx + 0x5d, //0x0000011b popq %rbp + 0xc3, //0x0000011c retq + //0x0000011d LBB0_18 + 0x80, 0xf9, 0x65, //0x0000011d cmpb $101, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000120 je LBB0_21 + 0x80, 0xf9, 0x45, //0x00000126 cmpb $69, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00000129 je LBB0_21 + 0x80, 0xf9, 0x2e, //0x0000012f cmpb $46, %cl + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00000132 jne LBB0_22 + //0x00000138 LBB0_21 + 0x48, 0x89, 0x1e, //0x00000138 movq %rbx, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000013b movq $-6, (%rdx) + 0x5b, //0x00000142 popq %rbx + 0x5d, //0x00000143 popq %rbp + 0xc3, //0x00000144 retq + //0x00000145 LBB0_22 + 0x48, 0x89, 0x1e, //0x00000145 movq %rbx, (%rsi) + 0x48, 0x89, 0x7a, 0x10, //0x00000148 movq %rdi, $16(%rdx) + 0x5b, //0x0000014c popq %rbx + 0x5d, //0x0000014d popq %rbp + 0xc3, //0x0000014e retq + 0x00, //0x0000014f .p2align 2, 0x00 + //0x00000150 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000150 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vstring.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vstring.go new file mode 100644 index 000000000..abc8b25d7 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vstring.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + +var S_vstring uintptr + +//go:nosplit +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + F_vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vstring_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vstring_subr.go new file mode 100644 index 000000000..108a3a58d --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vstring_subr.go @@ -0,0 +1,46 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vstring = 48 +) + +const ( + _stack__vstring = 88 +) + +const ( + _size__vstring = 2436 +) + +var ( + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2280, 88}, + {2284, 48}, + {2285, 40}, + {2287, 32}, + {2289, 24}, + {2291, 16}, + {2293, 8}, + {2294, 0}, + {2436, 88}, + } +) + +var _cfunc_vstring = []loader.CFunc{ + {"_vstring_entry", 0, _entry__vstring, 0, nil}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vstring_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vstring_text_amd64.go new file mode 100644 index 000000000..fee5c1a87 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vstring_text_amd64.go @@ -0,0 +1,663 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_vstring = []byte{ + // .p2align 4, 0x00 + // LCPI0_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, // QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00000010 LCPI0_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00000010 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00000020 LCPI0_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00000020 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00000030 .p2align 4, 0x90 + //0x00000030 _vstring + 0x55, //0x00000030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000031 movq %rsp, %rbp + 0x41, 0x57, //0x00000034 pushq %r15 + 0x41, 0x56, //0x00000036 pushq %r14 + 0x41, 0x55, //0x00000038 pushq %r13 + 0x41, 0x54, //0x0000003a pushq %r12 + 0x53, //0x0000003c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000003d subq $40, %rsp + 0x48, 0x89, 0xd3, //0x00000041 movq %rdx, %rbx + 0x4c, 0x8b, 0x16, //0x00000044 movq (%rsi), %r10 + 0xf6, 0xc1, 0x20, //0x00000047 testb $32, %cl + 0x48, 0x89, 0x55, 0xb8, //0x0000004a movq %rdx, $-72(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x0000004e movq %rsi, $-64(%rbp) + 0x0f, 0x85, 0xc1, 0x01, 0x00, 0x00, //0x00000052 jne LBB0_12 + 0x48, 0x8b, 0x4f, 0x08, //0x00000058 movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000005c movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x0000005f subq %r10, %rax + 0x0f, 0x84, 0xd5, 0x06, 0x00, 0x00, //0x00000062 je LBB0_55 + 0x48, 0x89, 0x4d, 0xc8, //0x00000068 movq %rcx, $-56(%rbp) + 0x48, 0x8b, 0x37, //0x0000006c movq (%rdi), %rsi + 0x4a, 0x8d, 0x0c, 0x16, //0x0000006f leaq (%rsi,%r10), %rcx + 0x48, 0x83, 0xf8, 0x40, //0x00000073 cmpq $64, %rax + 0x48, 0x89, 0x75, 0xd0, //0x00000077 movq %rsi, $-48(%rbp) + 0x0f, 0x82, 0xc8, 0x06, 0x00, 0x00, //0x0000007b jb LBB0_56 + 0x41, 0x89, 0xc5, //0x00000081 movl %eax, %r13d + 0x41, 0x83, 0xe5, 0x3f, //0x00000084 andl $63, %r13d + 0x48, 0x8d, 0x50, 0xc0, //0x00000088 leaq $-64(%rax), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x0000008c andq $-64, %rdx + 0x4c, 0x01, 0xd2, //0x00000090 addq %r10, %rdx + 0x48, 0x8d, 0x54, 0x16, 0x40, //0x00000093 leaq $64(%rsi,%rdx), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00000098 movq %rdx, $-80(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000009c movq $-1, %r11 + 0x45, 0x31, 0xc0, //0x000000a3 xorl %r8d, %r8d + 0xf3, 0x0f, 0x6f, 0x05, 0x52, 0xff, 0xff, 0xff, //0x000000a6 movdqu $-174(%rip), %xmm0 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x5a, 0xff, 0xff, 0xff, //0x000000ae movdqu $-166(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000b6 .p2align 4, 0x90 + //0x000000c0 LBB0_4 + 0xf3, 0x0f, 0x6f, 0x11, //0x000000c0 movdqu (%rcx), %xmm2 + 0xf3, 0x0f, 0x6f, 0x59, 0x10, //0x000000c4 movdqu $16(%rcx), %xmm3 + 0xf3, 0x0f, 0x6f, 0x61, 0x20, //0x000000c9 movdqu $32(%rcx), %xmm4 + 0xf3, 0x0f, 0x6f, 0x69, 0x30, //0x000000ce movdqu $48(%rcx), %xmm5 + 0x66, 0x0f, 0x6f, 0xf2, //0x000000d3 movdqa %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000000d7 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xde, //0x000000db pmovmskb %xmm6, %ebx + 0x66, 0x0f, 0x6f, 0xf3, //0x000000df movdqa %xmm3, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000000e3 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xd6, //0x000000e7 pmovmskb %xmm6, %edx + 0x66, 0x0f, 0x6f, 0xf4, //0x000000eb movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000000ef pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xf6, //0x000000f3 pmovmskb %xmm6, %esi + 0x66, 0x0f, 0x6f, 0xf5, //0x000000f7 movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x000000fb pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xfe, //0x000000ff pmovmskb %xmm6, %edi + 0x66, 0x0f, 0x74, 0xd1, //0x00000103 pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x00000107 pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x74, 0xd9, //0x0000010c pcmpeqb %xmm1, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xe3, //0x00000110 pmovmskb %xmm3, %r12d + 0x66, 0x0f, 0x74, 0xe1, //0x00000115 pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xf4, //0x00000119 pmovmskb %xmm4, %r14d + 0x66, 0x0f, 0x74, 0xe9, //0x0000011e pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xcd, //0x00000122 pmovmskb %xmm5, %r9d + 0x48, 0xc1, 0xe7, 0x30, //0x00000127 shlq $48, %rdi + 0x48, 0xc1, 0xe6, 0x20, //0x0000012b shlq $32, %rsi + 0x48, 0xc1, 0xe2, 0x10, //0x0000012f shlq $16, %rdx + 0x48, 0x09, 0xd3, //0x00000133 orq %rdx, %rbx + 0x48, 0x09, 0xf3, //0x00000136 orq %rsi, %rbx + 0x49, 0xc1, 0xe1, 0x30, //0x00000139 shlq $48, %r9 + 0x49, 0xc1, 0xe6, 0x20, //0x0000013d shlq $32, %r14 + 0x49, 0xc1, 0xe4, 0x10, //0x00000141 shlq $16, %r12 + 0x4d, 0x09, 0xe7, //0x00000145 orq %r12, %r15 + 0x4d, 0x09, 0xf7, //0x00000148 orq %r14, %r15 + 0x4d, 0x09, 0xcf, //0x0000014b orq %r9, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x0000014e cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000152 jne LBB0_6 + 0x4d, 0x85, 0xff, //0x00000158 testq %r15, %r15 + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000015b jne LBB0_9 + //0x00000161 LBB0_6 + 0x48, 0x09, 0xfb, //0x00000161 orq %rdi, %rbx + 0x4c, 0x89, 0xfa, //0x00000164 movq %r15, %rdx + 0x4c, 0x09, 0xc2, //0x00000167 orq %r8, %rdx + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000016a jne LBB0_10 + //0x00000170 LBB0_7 + 0x48, 0x85, 0xdb, //0x00000170 testq %rbx, %rbx + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x00000173 jne LBB0_11 + //0x00000179 LBB0_8 + 0x48, 0x83, 0xc0, 0xc0, //0x00000179 addq $-64, %rax + 0x48, 0x83, 0xc1, 0x40, //0x0000017d addq $64, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x00000181 cmpq $63, %rax + 0x0f, 0x87, 0x35, 0xff, 0xff, 0xff, //0x00000185 ja LBB0_4 + 0xe9, 0x33, 0x03, 0x00, 0x00, //0x0000018b jmp LBB0_29 + //0x00000190 LBB0_9 + 0x48, 0x89, 0xca, //0x00000190 movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x00000193 subq $-48(%rbp), %rdx + 0x4d, 0x0f, 0xbc, 0xdf, //0x00000197 bsfq %r15, %r11 + 0x49, 0x01, 0xd3, //0x0000019b addq %rdx, %r11 + 0x48, 0x09, 0xfb, //0x0000019e orq %rdi, %rbx + 0x4c, 0x89, 0xfa, //0x000001a1 movq %r15, %rdx + 0x4c, 0x09, 0xc2, //0x000001a4 orq %r8, %rdx + 0x0f, 0x84, 0xc3, 0xff, 0xff, 0xff, //0x000001a7 je LBB0_7 + //0x000001ad LBB0_10 + 0x4c, 0x89, 0xc2, //0x000001ad movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x000001b0 notq %rdx + 0x4c, 0x21, 0xfa, //0x000001b3 andq %r15, %rdx + 0x4c, 0x8d, 0x0c, 0x12, //0x000001b6 leaq (%rdx,%rdx), %r9 + 0x4d, 0x09, 0xc1, //0x000001ba orq %r8, %r9 + 0x4c, 0x89, 0xcf, //0x000001bd movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x000001c0 notq %rdi + 0x4c, 0x21, 0xff, //0x000001c3 andq %r15, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000001c6 movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x000001d0 andq %rsi, %rdi + 0x45, 0x31, 0xc0, //0x000001d3 xorl %r8d, %r8d + 0x48, 0x01, 0xd7, //0x000001d6 addq %rdx, %rdi + 0x41, 0x0f, 0x92, 0xc0, //0x000001d9 setb %r8b + 0x48, 0x01, 0xff, //0x000001dd addq %rdi, %rdi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000001e0 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd7, //0x000001ea xorq %rdx, %rdi + 0x4c, 0x21, 0xcf, //0x000001ed andq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x000001f0 notq %rdi + 0x48, 0x21, 0xfb, //0x000001f3 andq %rdi, %rbx + 0x48, 0x85, 0xdb, //0x000001f6 testq %rbx, %rbx + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x000001f9 je LBB0_8 + //0x000001ff LBB0_11 + 0x48, 0x0f, 0xbc, 0xc3, //0x000001ff bsfq %rbx, %rax + 0x48, 0x2b, 0x4d, 0xd0, //0x00000203 subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x00000207 leaq $1(%rcx,%rax), %rdi + 0x48, 0x8b, 0x5d, 0xb8, //0x0000020c movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000210 movq $-64(%rbp), %rsi + 0xe9, 0x7c, 0x02, 0x00, 0x00, //0x00000214 jmp LBB0_27 + //0x00000219 LBB0_12 + 0x48, 0x8b, 0x4f, 0x08, //0x00000219 movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x0000021d movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00000220 subq %r10, %rax + 0x0f, 0x84, 0x14, 0x05, 0x00, 0x00, //0x00000223 je LBB0_55 + 0x48, 0x89, 0x4d, 0xc8, //0x00000229 movq %rcx, $-56(%rbp) + 0x48, 0x8b, 0x3f, //0x0000022d movq (%rdi), %rdi + 0x4a, 0x8d, 0x0c, 0x17, //0x00000230 leaq (%rdi,%r10), %rcx + 0x48, 0x83, 0xf8, 0x40, //0x00000234 cmpq $64, %rax + 0x48, 0x89, 0x7d, 0xd0, //0x00000238 movq %rdi, $-48(%rbp) + 0x0f, 0x82, 0x74, 0x05, 0x00, 0x00, //0x0000023c jb LBB0_60 + 0x41, 0x89, 0xc5, //0x00000242 movl %eax, %r13d + 0x41, 0x83, 0xe5, 0x3f, //0x00000245 andl $63, %r13d + 0x48, 0x8d, 0x50, 0xc0, //0x00000249 leaq $-64(%rax), %rdx + 0x48, 0x83, 0xe2, 0xc0, //0x0000024d andq $-64, %rdx + 0x4c, 0x01, 0xd2, //0x00000251 addq %r10, %rdx + 0x48, 0x8d, 0x54, 0x17, 0x40, //0x00000254 leaq $64(%rdi,%rdx), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00000259 movq %rdx, $-80(%rbp) + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000025d movq $-1, %r11 + 0x45, 0x31, 0xc9, //0x00000264 xorl %r9d, %r9d + 0xf3, 0x44, 0x0f, 0x6f, 0x05, 0x90, 0xfd, 0xff, 0xff, //0x00000267 movdqu $-624(%rip), %xmm8 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x0d, 0x98, 0xfd, 0xff, 0xff, //0x00000270 movdqu $-616(%rip), %xmm1 /* LCPI0_1+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x15, 0xa0, 0xfd, 0xff, 0xff, //0x00000278 movdqu $-608(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x00000280 pcmpeqd %xmm3, %xmm3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000284 .p2align 4, 0x90 + //0x00000290 LBB0_15 + 0xf3, 0x0f, 0x6f, 0x39, //0x00000290 movdqu (%rcx), %xmm7 + 0xf3, 0x0f, 0x6f, 0x71, 0x10, //0x00000294 movdqu $16(%rcx), %xmm6 + 0xf3, 0x0f, 0x6f, 0x69, 0x20, //0x00000299 movdqu $32(%rcx), %xmm5 + 0xf3, 0x0f, 0x6f, 0x61, 0x30, //0x0000029e movdqu $48(%rcx), %xmm4 + 0x66, 0x0f, 0x6f, 0xc7, //0x000002a3 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000002a7 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xd8, //0x000002ac pmovmskb %xmm0, %ebx + 0x66, 0x0f, 0x6f, 0xc6, //0x000002b0 movdqa %xmm6, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000002b4 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xf0, //0x000002b9 pmovmskb %xmm0, %esi + 0x66, 0x0f, 0x6f, 0xc5, //0x000002bd movdqa %xmm5, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000002c1 pcmpeqb %xmm8, %xmm0 + 0x66, 0x0f, 0xd7, 0xd0, //0x000002c6 pmovmskb %xmm0, %edx + 0x66, 0x0f, 0x6f, 0xc4, //0x000002ca movdqa %xmm4, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc0, //0x000002ce pcmpeqb %xmm8, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xe0, //0x000002d3 pmovmskb %xmm0, %r12d + 0x66, 0x0f, 0x6f, 0xc7, //0x000002d8 movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000002dc pcmpeqb %xmm1, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xf8, //0x000002e0 pmovmskb %xmm0, %r15d + 0x66, 0x0f, 0x6f, 0xc6, //0x000002e5 movdqa %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000002e9 pcmpeqb %xmm1, %xmm0 + 0x66, 0x0f, 0xd7, 0xf8, //0x000002ed pmovmskb %xmm0, %edi + 0x66, 0x0f, 0x6f, 0xc5, //0x000002f1 movdqa %xmm5, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x000002f5 pcmpeqb %xmm1, %xmm0 + 0x48, 0xc1, 0xe6, 0x10, //0x000002f9 shlq $16, %rsi + 0x48, 0x09, 0xf3, //0x000002fd orq %rsi, %rbx + 0x66, 0x0f, 0xd7, 0xf0, //0x00000300 pmovmskb %xmm0, %esi + 0x66, 0x0f, 0x6f, 0xc4, //0x00000304 movdqa %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc1, //0x00000308 pcmpeqb %xmm1, %xmm0 + 0x48, 0xc1, 0xe2, 0x20, //0x0000030c shlq $32, %rdx + 0x48, 0x09, 0xd3, //0x00000310 orq %rdx, %rbx + 0x66, 0x0f, 0xd7, 0xd0, //0x00000313 pmovmskb %xmm0, %edx + 0x66, 0x0f, 0x6f, 0xc2, //0x00000317 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc7, //0x0000031b pcmpgtb %xmm7, %xmm0 + 0x66, 0x0f, 0x64, 0xfb, //0x0000031f pcmpgtb %xmm3, %xmm7 + 0x66, 0x0f, 0xdb, 0xf8, //0x00000323 pand %xmm0, %xmm7 + 0x48, 0xc1, 0xe7, 0x10, //0x00000327 shlq $16, %rdi + 0x49, 0x09, 0xff, //0x0000032b orq %rdi, %r15 + 0x66, 0x44, 0x0f, 0xd7, 0xf7, //0x0000032e pmovmskb %xmm7, %r14d + 0x66, 0x0f, 0x6f, 0xc2, //0x00000333 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc6, //0x00000337 pcmpgtb %xmm6, %xmm0 + 0x66, 0x0f, 0x64, 0xf3, //0x0000033b pcmpgtb %xmm3, %xmm6 + 0x66, 0x0f, 0xdb, 0xf0, //0x0000033f pand %xmm0, %xmm6 + 0x48, 0xc1, 0xe6, 0x20, //0x00000343 shlq $32, %rsi + 0x49, 0x09, 0xf7, //0x00000347 orq %rsi, %r15 + 0x66, 0x0f, 0xd7, 0xf6, //0x0000034a pmovmskb %xmm6, %esi + 0x66, 0x0f, 0x6f, 0xc2, //0x0000034e movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc5, //0x00000352 pcmpgtb %xmm5, %xmm0 + 0x66, 0x0f, 0x64, 0xeb, //0x00000356 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xe8, //0x0000035a pand %xmm0, %xmm5 + 0x48, 0xc1, 0xe2, 0x30, //0x0000035e shlq $48, %rdx + 0x49, 0x09, 0xd7, //0x00000362 orq %rdx, %r15 + 0x66, 0x0f, 0xd7, 0xd5, //0x00000365 pmovmskb %xmm5, %edx + 0x66, 0x0f, 0x6f, 0xc2, //0x00000369 movdqa %xmm2, %xmm0 + 0x66, 0x0f, 0x64, 0xc4, //0x0000036d pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0x64, 0xe3, //0x00000371 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe0, //0x00000375 pand %xmm0, %xmm4 + 0x48, 0xc1, 0xe6, 0x10, //0x00000379 shlq $16, %rsi + 0x49, 0x09, 0xf6, //0x0000037d orq %rsi, %r14 + 0x66, 0x44, 0x0f, 0xd7, 0xc4, //0x00000380 pmovmskb %xmm4, %r8d + 0x49, 0xc1, 0xe4, 0x30, //0x00000385 shlq $48, %r12 + 0x48, 0xc1, 0xe2, 0x20, //0x00000389 shlq $32, %rdx + 0x49, 0x83, 0xfb, 0xff, //0x0000038d cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00000391 jne LBB0_17 + 0x4d, 0x85, 0xff, //0x00000397 testq %r15, %r15 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x0000039a jne LBB0_22 + //0x000003a0 LBB0_17 + 0x49, 0xc1, 0xe0, 0x30, //0x000003a0 shlq $48, %r8 + 0x49, 0x09, 0xd6, //0x000003a4 orq %rdx, %r14 + 0x4c, 0x09, 0xe3, //0x000003a7 orq %r12, %rbx + 0x4c, 0x89, 0xfa, //0x000003aa movq %r15, %rdx + 0x4c, 0x09, 0xca, //0x000003ad orq %r9, %rdx + 0x0f, 0x85, 0x2c, 0x00, 0x00, 0x00, //0x000003b0 jne LBB0_21 + 0x4d, 0x09, 0xc6, //0x000003b6 orq %r8, %r14 + 0x48, 0x85, 0xdb, //0x000003b9 testq %rbx, %rbx + 0x0f, 0x85, 0x8d, 0x00, 0x00, 0x00, //0x000003bc jne LBB0_23 + //0x000003c2 LBB0_19 + 0x4d, 0x85, 0xf6, //0x000003c2 testq %r14, %r14 + 0x0f, 0x85, 0x8f, 0x01, 0x00, 0x00, //0x000003c5 jne LBB0_35 + 0x48, 0x83, 0xc0, 0xc0, //0x000003cb addq $-64, %rax + 0x48, 0x83, 0xc1, 0x40, //0x000003cf addq $64, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x000003d3 cmpq $63, %rax + 0x0f, 0x87, 0xb3, 0xfe, 0xff, 0xff, //0x000003d7 ja LBB0_15 + 0xe9, 0x90, 0x01, 0x00, 0x00, //0x000003dd jmp LBB0_37 + //0x000003e2 LBB0_21 + 0x4c, 0x89, 0xca, //0x000003e2 movq %r9, %rdx + 0x48, 0xf7, 0xd2, //0x000003e5 notq %rdx + 0x4c, 0x21, 0xfa, //0x000003e8 andq %r15, %rdx + 0x4c, 0x8d, 0x24, 0x12, //0x000003eb leaq (%rdx,%rdx), %r12 + 0x4d, 0x09, 0xcc, //0x000003ef orq %r9, %r12 + 0x4c, 0x89, 0xe7, //0x000003f2 movq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x000003f5 notq %rdi + 0x4c, 0x21, 0xff, //0x000003f8 andq %r15, %rdi + 0x48, 0xbe, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000003fb movabsq $-6148914691236517206, %rsi + 0x48, 0x21, 0xf7, //0x00000405 andq %rsi, %rdi + 0x45, 0x31, 0xc9, //0x00000408 xorl %r9d, %r9d + 0x48, 0x01, 0xd7, //0x0000040b addq %rdx, %rdi + 0x41, 0x0f, 0x92, 0xc1, //0x0000040e setb %r9b + 0x48, 0x01, 0xff, //0x00000412 addq %rdi, %rdi + 0x48, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00000415 movabsq $6148914691236517205, %rdx + 0x48, 0x31, 0xd7, //0x0000041f xorq %rdx, %rdi + 0x4c, 0x21, 0xe7, //0x00000422 andq %r12, %rdi + 0x48, 0xf7, 0xd7, //0x00000425 notq %rdi + 0x48, 0x21, 0xfb, //0x00000428 andq %rdi, %rbx + 0x4d, 0x09, 0xc6, //0x0000042b orq %r8, %r14 + 0x48, 0x85, 0xdb, //0x0000042e testq %rbx, %rbx + 0x0f, 0x84, 0x8b, 0xff, 0xff, 0xff, //0x00000431 je LBB0_19 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00000437 jmp LBB0_23 + //0x0000043c LBB0_22 + 0x48, 0x89, 0xce, //0x0000043c movq %rcx, %rsi + 0x48, 0x2b, 0x75, 0xd0, //0x0000043f subq $-48(%rbp), %rsi + 0x4d, 0x0f, 0xbc, 0xdf, //0x00000443 bsfq %r15, %r11 + 0x49, 0x01, 0xf3, //0x00000447 addq %rsi, %r11 + 0xe9, 0x51, 0xff, 0xff, 0xff, //0x0000044a jmp LBB0_17 + //0x0000044f LBB0_23 + 0x48, 0x0f, 0xbc, 0xc3, //0x0000044f bsfq %rbx, %rax + 0x4d, 0x85, 0xf6, //0x00000453 testq %r14, %r14 + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00000456 je LBB0_25 + 0x49, 0x0f, 0xbc, 0xd6, //0x0000045c bsfq %r14, %rdx + 0x48, 0x8b, 0x5d, 0xb8, //0x00000460 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000464 movq $-64(%rbp), %rsi + 0x48, 0x39, 0xc2, //0x00000468 cmpq %rax, %rdx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000046b jae LBB0_26 + 0xe9, 0x91, 0x04, 0x00, 0x00, //0x00000471 jmp LBB0_80 + //0x00000476 LBB0_25 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00000476 movl $64, %edx + 0x48, 0x8b, 0x5d, 0xb8, //0x0000047b movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000047f movq $-64(%rbp), %rsi + 0x48, 0x39, 0xc2, //0x00000483 cmpq %rax, %rdx + 0x0f, 0x82, 0x7b, 0x04, 0x00, 0x00, //0x00000486 jb LBB0_80 + //0x0000048c LBB0_26 + 0x48, 0x2b, 0x4d, 0xd0, //0x0000048c subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x7c, 0x01, 0x01, //0x00000490 leaq $1(%rcx,%rax), %rdi + //0x00000495 LBB0_27 + 0x48, 0x85, 0xff, //0x00000495 testq %rdi, %rdi + 0x0f, 0x88, 0x70, 0x04, 0x00, 0x00, //0x00000498 js LBB0_81 + 0x48, 0x89, 0x3e, //0x0000049e movq %rdi, (%rsi) + 0x4c, 0x89, 0x53, 0x10, //0x000004a1 movq %r10, $16(%rbx) + 0x48, 0xc7, 0x03, 0x07, 0x00, 0x00, 0x00, //0x000004a5 movq $7, (%rbx) + 0x49, 0x39, 0xfb, //0x000004ac cmpq %rdi, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000004af movq $-1, %rax + 0x49, 0x0f, 0x4c, 0xc3, //0x000004b6 cmovlq %r11, %rax + 0x48, 0x89, 0x43, 0x18, //0x000004ba movq %rax, $24(%rbx) + 0xe9, 0x55, 0x04, 0x00, 0x00, //0x000004be jmp LBB0_83 + //0x000004c3 LBB0_29 + 0x48, 0x8b, 0x4d, 0xb0, //0x000004c3 movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe8, //0x000004c7 movq %r13, %rax + 0x48, 0x83, 0xf8, 0x20, //0x000004ca cmpq $32, %rax + 0x0f, 0x82, 0x89, 0x02, 0x00, 0x00, //0x000004ce jb LBB0_57 + //0x000004d4 LBB0_30 + 0xf3, 0x0f, 0x6f, 0x01, //0x000004d4 movdqu (%rcx), %xmm0 + 0xf3, 0x0f, 0x6f, 0x49, 0x10, //0x000004d8 movdqu $16(%rcx), %xmm1 + 0xf3, 0x0f, 0x6f, 0x15, 0x1b, 0xfb, 0xff, 0xff, //0x000004dd movdqu $-1253(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0xf3, 0x0f, 0x6f, 0x1d, 0x23, 0xfb, 0xff, 0xff, //0x000004e5 movdqu $-1245(%rip), %xmm3 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xe0, //0x000004ed movdqa %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x000004f1 pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x000004f5 pmovmskb %xmm4, %edx + 0x66, 0x0f, 0x74, 0xd1, //0x000004f9 pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xfa, //0x000004fd pmovmskb %xmm2, %r15d + 0x66, 0x0f, 0x74, 0xc3, //0x00000502 pcmpeqb %xmm3, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xf0, //0x00000506 pmovmskb %xmm0, %r14d + 0x66, 0x0f, 0x74, 0xcb, //0x0000050b pcmpeqb %xmm3, %xmm1 + 0x66, 0x0f, 0xd7, 0xf9, //0x0000050f pmovmskb %xmm1, %edi + 0x49, 0xc1, 0xe7, 0x10, //0x00000513 shlq $16, %r15 + 0x48, 0xc1, 0xe7, 0x10, //0x00000517 shlq $16, %rdi + 0x49, 0x09, 0xfe, //0x0000051b orq %rdi, %r14 + 0x49, 0x83, 0xfb, 0xff, //0x0000051e cmpq $-1, %r11 + 0x0f, 0x85, 0x1b, 0x01, 0x00, 0x00, //0x00000522 jne LBB0_43 + 0x4d, 0x85, 0xf6, //0x00000528 testq %r14, %r14 + 0x48, 0x8b, 0x5d, 0xb8, //0x0000052b movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000052f movq $-64(%rbp), %rsi + 0x0f, 0x85, 0xee, 0x03, 0x00, 0x00, //0x00000533 jne LBB0_84 + 0x49, 0x09, 0xd7, //0x00000539 orq %rdx, %r15 + 0x4c, 0x89, 0xf2, //0x0000053c movq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x0000053f orq %r8, %rdx + 0x0f, 0x85, 0x12, 0x01, 0x00, 0x00, //0x00000542 jne LBB0_44 + //0x00000548 LBB0_33 + 0x4d, 0x85, 0xff, //0x00000548 testq %r15, %r15 + 0x0f, 0x84, 0x4b, 0x01, 0x00, 0x00, //0x0000054b je LBB0_45 + //0x00000551 LBB0_34 + 0x49, 0x0f, 0xbc, 0xc7, //0x00000551 bsfq %r15, %rax + 0xe9, 0x32, 0xff, 0xff, 0xff, //0x00000555 jmp LBB0_26 + //0x0000055a LBB0_35 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000055a movq $-2, %rdi + //0x00000561 LBB0_36 + 0x4c, 0x8b, 0x55, 0xc8, //0x00000561 movq $-56(%rbp), %r10 + 0x48, 0x8b, 0x5d, 0xb8, //0x00000565 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000569 movq $-64(%rbp), %rsi + 0xe9, 0xa0, 0x03, 0x00, 0x00, //0x0000056d jmp LBB0_82 + //0x00000572 LBB0_37 + 0x48, 0x8b, 0x4d, 0xb0, //0x00000572 movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe8, //0x00000576 movq %r13, %rax + 0x48, 0x8b, 0x5d, 0xb8, //0x00000579 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000057d movq $-64(%rbp), %rsi + 0x48, 0x83, 0xf8, 0x20, //0x00000581 cmpq $32, %rax + 0x0f, 0x82, 0xc0, 0x02, 0x00, 0x00, //0x00000585 jb LBB0_68 + //0x0000058b LBB0_38 + 0xf3, 0x0f, 0x6f, 0x01, //0x0000058b movdqu (%rcx), %xmm0 + 0xf3, 0x0f, 0x6f, 0x49, 0x10, //0x0000058f movdqu $16(%rcx), %xmm1 + 0xf3, 0x0f, 0x6f, 0x15, 0x64, 0xfa, 0xff, 0xff, //0x00000594 movdqu $-1436(%rip), %xmm2 /* LCPI0_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x0000059c movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x000005a0 pcmpeqb %xmm2, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xe3, //0x000005a4 pmovmskb %xmm3, %r12d + 0x66, 0x0f, 0x74, 0xd1, //0x000005a9 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xfa, //0x000005ad pmovmskb %xmm2, %edi + 0xf3, 0x0f, 0x6f, 0x15, 0x57, 0xfa, 0xff, 0xff, //0x000005b1 movdqu $-1449(%rip), %xmm2 /* LCPI0_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x000005b9 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x000005bd pcmpeqb %xmm2, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xfb, //0x000005c1 pmovmskb %xmm3, %r15d + 0x66, 0x0f, 0x74, 0xd1, //0x000005c6 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x000005ca pmovmskb %xmm2, %edx + 0xf3, 0x0f, 0x6f, 0x15, 0x4a, 0xfa, 0xff, 0xff, //0x000005ce movdqu $-1462(%rip), %xmm2 /* LCPI0_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xda, //0x000005d6 movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xd8, //0x000005da pcmpgtb %xmm0, %xmm3 + 0x66, 0x0f, 0x76, 0xe4, //0x000005de pcmpeqd %xmm4, %xmm4 + 0x66, 0x0f, 0x64, 0xc4, //0x000005e2 pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0xdb, 0xc3, //0x000005e6 pand %xmm3, %xmm0 + 0x66, 0x0f, 0x64, 0xd1, //0x000005ea pcmpgtb %xmm1, %xmm2 + 0x66, 0x0f, 0x64, 0xcc, //0x000005ee pcmpgtb %xmm4, %xmm1 + 0x66, 0x0f, 0xdb, 0xca, //0x000005f2 pand %xmm2, %xmm1 + 0x66, 0x44, 0x0f, 0xd7, 0xf1, //0x000005f6 pmovmskb %xmm1, %r14d + 0x48, 0xc1, 0xe7, 0x10, //0x000005fb shlq $16, %rdi + 0x48, 0xc1, 0xe2, 0x10, //0x000005ff shlq $16, %rdx + 0x49, 0x09, 0xd7, //0x00000603 orq %rdx, %r15 + 0x49, 0x83, 0xfb, 0xff, //0x00000606 cmpq $-1, %r11 + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000060a jne LBB0_40 + 0x4d, 0x85, 0xff, //0x00000610 testq %r15, %r15 + 0x0f, 0x85, 0x30, 0x03, 0x00, 0x00, //0x00000613 jne LBB0_85 + //0x00000619 LBB0_40 + 0x66, 0x44, 0x0f, 0xd7, 0xc0, //0x00000619 pmovmskb %xmm0, %r8d + 0x4c, 0x09, 0xe7, //0x0000061e orq %r12, %rdi + 0x4c, 0x89, 0xfa, //0x00000621 movq %r15, %rdx + 0x4c, 0x09, 0xca, //0x00000624 orq %r9, %rdx + 0x0f, 0x85, 0xa2, 0x01, 0x00, 0x00, //0x00000627 jne LBB0_61 + 0x49, 0xc1, 0xe6, 0x10, //0x0000062d shlq $16, %r14 + 0x48, 0x85, 0xff, //0x00000631 testq %rdi, %rdi + 0x0f, 0x84, 0xdd, 0x01, 0x00, 0x00, //0x00000634 je LBB0_62 + //0x0000063a LBB0_42 + 0x48, 0x0f, 0xbc, 0xd7, //0x0000063a bsfq %rdi, %rdx + 0xe9, 0xd9, 0x01, 0x00, 0x00, //0x0000063e jmp LBB0_63 + //0x00000643 LBB0_43 + 0x48, 0x8b, 0x5d, 0xb8, //0x00000643 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000647 movq $-64(%rbp), %rsi + 0x49, 0x09, 0xd7, //0x0000064b orq %rdx, %r15 + 0x4c, 0x89, 0xf2, //0x0000064e movq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x00000651 orq %r8, %rdx + 0x0f, 0x84, 0xee, 0xfe, 0xff, 0xff, //0x00000654 je LBB0_33 + //0x0000065a LBB0_44 + 0x44, 0x89, 0xc2, //0x0000065a movl %r8d, %edx + 0xf7, 0xd2, //0x0000065d notl %edx + 0x44, 0x21, 0xf2, //0x0000065f andl %r14d, %edx + 0x44, 0x8d, 0x0c, 0x12, //0x00000662 leal (%rdx,%rdx), %r9d + 0x45, 0x09, 0xc1, //0x00000666 orl %r8d, %r9d + 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000669 movl $2863311530, %edi + 0x44, 0x31, 0xcf, //0x0000066e xorl %r9d, %edi + 0x44, 0x21, 0xf7, //0x00000671 andl %r14d, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00000674 andl $-1431655766, %edi + 0x45, 0x31, 0xc0, //0x0000067a xorl %r8d, %r8d + 0x01, 0xd7, //0x0000067d addl %edx, %edi + 0x41, 0x0f, 0x92, 0xc0, //0x0000067f setb %r8b + 0x01, 0xff, //0x00000683 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00000685 xorl $1431655765, %edi + 0x44, 0x21, 0xcf, //0x0000068b andl %r9d, %edi + 0xf7, 0xd7, //0x0000068e notl %edi + 0x41, 0x21, 0xff, //0x00000690 andl %edi, %r15d + 0x4d, 0x85, 0xff, //0x00000693 testq %r15, %r15 + 0x0f, 0x85, 0xb5, 0xfe, 0xff, 0xff, //0x00000696 jne LBB0_34 + //0x0000069c LBB0_45 + 0x48, 0x83, 0xc1, 0x20, //0x0000069c addq $32, %rcx + 0x48, 0x83, 0xc0, 0xe0, //0x000006a0 addq $-32, %rax + 0x4d, 0x85, 0xc0, //0x000006a4 testq %r8, %r8 + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x000006a7 jne LBB0_58 + //0x000006ad LBB0_46 + 0x4d, 0x89, 0xd8, //0x000006ad movq %r11, %r8 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000006b0 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x000006b7 testq %rax, %rax + 0x0f, 0x84, 0x4e, 0x02, 0x00, 0x00, //0x000006ba je LBB0_81 + //0x000006c0 LBB0_47 + 0x4c, 0x8b, 0x75, 0xd0, //0x000006c0 movq $-48(%rbp), %r14 + 0x49, 0xf7, 0xd6, //0x000006c4 notq %r14 + //0x000006c7 LBB0_48 + 0x4c, 0x8d, 0x79, 0x01, //0x000006c7 leaq $1(%rcx), %r15 + 0x0f, 0xb6, 0x11, //0x000006cb movzbl (%rcx), %edx + 0x80, 0xfa, 0x22, //0x000006ce cmpb $34, %dl + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x000006d1 je LBB0_53 + 0x4c, 0x8d, 0x48, 0xff, //0x000006d7 leaq $-1(%rax), %r9 + 0x80, 0xfa, 0x5c, //0x000006db cmpb $92, %dl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000006de je LBB0_51 + 0x4c, 0x89, 0xc8, //0x000006e4 movq %r9, %rax + 0x4c, 0x89, 0xf9, //0x000006e7 movq %r15, %rcx + 0x4d, 0x85, 0xc9, //0x000006ea testq %r9, %r9 + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x000006ed jne LBB0_48 + 0xe9, 0x16, 0x02, 0x00, 0x00, //0x000006f3 jmp LBB0_81 + //0x000006f8 LBB0_51 + 0x4d, 0x85, 0xc9, //0x000006f8 testq %r9, %r9 + 0x0f, 0x84, 0x60, 0xfe, 0xff, 0xff, //0x000006fb je LBB0_36 + 0x4d, 0x01, 0xf7, //0x00000701 addq %r14, %r15 + 0x49, 0x83, 0xf8, 0xff, //0x00000704 cmpq $-1, %r8 + 0x4d, 0x0f, 0x44, 0xdf, //0x00000708 cmoveq %r15, %r11 + 0x4d, 0x0f, 0x44, 0xc7, //0x0000070c cmoveq %r15, %r8 + 0x48, 0x83, 0xc1, 0x02, //0x00000710 addq $2, %rcx + 0x48, 0x83, 0xc0, 0xfe, //0x00000714 addq $-2, %rax + 0x49, 0x89, 0xc1, //0x00000718 movq %rax, %r9 + 0x48, 0x8b, 0x5d, 0xb8, //0x0000071b movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000071f movq $-64(%rbp), %rsi + 0x4d, 0x85, 0xc9, //0x00000723 testq %r9, %r9 + 0x0f, 0x85, 0x9b, 0xff, 0xff, 0xff, //0x00000726 jne LBB0_48 + 0xe9, 0xdd, 0x01, 0x00, 0x00, //0x0000072c jmp LBB0_81 + //0x00000731 LBB0_53 + 0x4c, 0x2b, 0x7d, 0xd0, //0x00000731 subq $-48(%rbp), %r15 + 0x4c, 0x89, 0xff, //0x00000735 movq %r15, %rdi + 0xe9, 0x58, 0xfd, 0xff, 0xff, //0x00000738 jmp LBB0_27 + //0x0000073d LBB0_55 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000073d movq $-1, %rdi + 0xe9, 0xc9, 0x01, 0x00, 0x00, //0x00000744 jmp LBB0_82 + //0x00000749 LBB0_56 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000749 movq $-1, %r11 + 0x45, 0x31, 0xc0, //0x00000750 xorl %r8d, %r8d + 0x48, 0x83, 0xf8, 0x20, //0x00000753 cmpq $32, %rax + 0x0f, 0x83, 0x77, 0xfd, 0xff, 0xff, //0x00000757 jae LBB0_30 + //0x0000075d LBB0_57 + 0x48, 0x8b, 0x5d, 0xb8, //0x0000075d movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x00000761 movq $-64(%rbp), %rsi + 0x4d, 0x85, 0xc0, //0x00000765 testq %r8, %r8 + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x00000768 je LBB0_46 + //0x0000076e LBB0_58 + 0x48, 0x85, 0xc0, //0x0000076e testq %rax, %rax + 0x0f, 0x84, 0x25, 0x02, 0x00, 0x00, //0x00000771 je LBB0_88 + 0x4c, 0x8b, 0x45, 0xd0, //0x00000777 movq $-48(%rbp), %r8 + 0x49, 0xf7, 0xd0, //0x0000077b notq %r8 + 0x49, 0x01, 0xc8, //0x0000077e addq %rcx, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x00000781 cmpq $-1, %r11 + 0x4c, 0x89, 0xda, //0x00000785 movq %r11, %rdx + 0x49, 0x0f, 0x44, 0xd0, //0x00000788 cmoveq %r8, %rdx + 0x4d, 0x0f, 0x45, 0xc3, //0x0000078c cmovneq %r11, %r8 + 0x48, 0xff, 0xc1, //0x00000790 incq %rcx + 0x48, 0xff, 0xc8, //0x00000793 decq %rax + 0x49, 0x89, 0xd3, //0x00000796 movq %rdx, %r11 + 0x48, 0x8b, 0x5d, 0xb8, //0x00000799 movq $-72(%rbp), %rbx + 0x48, 0x8b, 0x75, 0xc0, //0x0000079d movq $-64(%rbp), %rsi + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000007a1 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x000007a8 testq %rax, %rax + 0x0f, 0x85, 0x0f, 0xff, 0xff, 0xff, //0x000007ab jne LBB0_47 + 0xe9, 0x58, 0x01, 0x00, 0x00, //0x000007b1 jmp LBB0_81 + //0x000007b6 LBB0_60 + 0x49, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000007b6 movq $-1, %r11 + 0x45, 0x31, 0xc9, //0x000007bd xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x20, //0x000007c0 cmpq $32, %rax + 0x0f, 0x83, 0xc1, 0xfd, 0xff, 0xff, //0x000007c4 jae LBB0_38 + 0xe9, 0x7c, 0x00, 0x00, 0x00, //0x000007ca jmp LBB0_68 + //0x000007cf LBB0_61 + 0x45, 0x89, 0xcd, //0x000007cf movl %r9d, %r13d + 0x41, 0xf7, 0xd5, //0x000007d2 notl %r13d + 0x45, 0x21, 0xfd, //0x000007d5 andl %r15d, %r13d + 0x47, 0x8d, 0x64, 0x2d, 0x00, //0x000007d8 leal (%r13,%r13), %r12d + 0x45, 0x09, 0xcc, //0x000007dd orl %r9d, %r12d + 0xba, 0xaa, 0xaa, 0xaa, 0xaa, //0x000007e0 movl $2863311530, %edx + 0x44, 0x31, 0xe2, //0x000007e5 xorl %r12d, %edx + 0x44, 0x21, 0xfa, //0x000007e8 andl %r15d, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x000007eb andl $-1431655766, %edx + 0x45, 0x31, 0xc9, //0x000007f1 xorl %r9d, %r9d + 0x44, 0x01, 0xea, //0x000007f4 addl %r13d, %edx + 0x41, 0x0f, 0x92, 0xc1, //0x000007f7 setb %r9b + 0x01, 0xd2, //0x000007fb addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x000007fd xorl $1431655765, %edx + 0x44, 0x21, 0xe2, //0x00000803 andl %r12d, %edx + 0xf7, 0xd2, //0x00000806 notl %edx + 0x21, 0xd7, //0x00000808 andl %edx, %edi + 0x49, 0xc1, 0xe6, 0x10, //0x0000080a shlq $16, %r14 + 0x48, 0x85, 0xff, //0x0000080e testq %rdi, %rdi + 0x0f, 0x85, 0x23, 0xfe, 0xff, 0xff, //0x00000811 jne LBB0_42 + //0x00000817 LBB0_62 + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00000817 movl $64, %edx + //0x0000081c LBB0_63 + 0x4d, 0x09, 0xc6, //0x0000081c orq %r8, %r14 + 0x48, 0x85, 0xff, //0x0000081f testq %rdi, %rdi + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00000822 je LBB0_66 + 0x4d, 0x85, 0xf6, //0x00000828 testq %r14, %r14 + 0x0f, 0x84, 0xab, 0x00, 0x00, 0x00, //0x0000082b je LBB0_76 + 0x49, 0x0f, 0xbc, 0xc6, //0x00000831 bsfq %r14, %rax + 0xe9, 0xa7, 0x00, 0x00, 0x00, //0x00000835 jmp LBB0_77 + //0x0000083a LBB0_66 + 0x4d, 0x85, 0xf6, //0x0000083a testq %r14, %r14 + 0x0f, 0x85, 0xc4, 0x00, 0x00, 0x00, //0x0000083d jne LBB0_80 + 0x48, 0x83, 0xc1, 0x20, //0x00000843 addq $32, %rcx + 0x48, 0x83, 0xc0, 0xe0, //0x00000847 addq $-32, %rax + //0x0000084b LBB0_68 + 0x4d, 0x85, 0xc9, //0x0000084b testq %r9, %r9 + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x0000084e jne LBB0_86 + 0x4d, 0x89, 0xd8, //0x00000854 movq %r11, %r8 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000857 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x0000085e testq %rax, %rax + 0x0f, 0x84, 0xa7, 0x00, 0x00, 0x00, //0x00000861 je LBB0_81 + //0x00000867 LBB0_70 + 0x0f, 0xb6, 0x11, //0x00000867 movzbl (%rcx), %edx + 0x80, 0xfa, 0x22, //0x0000086a cmpb $34, %dl + 0x0f, 0x84, 0x85, 0x00, 0x00, 0x00, //0x0000086d je LBB0_79 + 0x80, 0xfa, 0x5c, //0x00000873 cmpb $92, %dl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00000876 je LBB0_74 + 0x80, 0xfa, 0x20, //0x0000087c cmpb $32, %dl + 0x0f, 0x82, 0x82, 0x00, 0x00, 0x00, //0x0000087f jb LBB0_80 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00000885 movq $-1, %r9 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000088c movl $1, %edx + 0x48, 0x01, 0xd1, //0x00000891 addq %rdx, %rcx + 0x4c, 0x01, 0xc8, //0x00000894 addq %r9, %rax + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00000897 jne LBB0_70 + 0xe9, 0x6c, 0x00, 0x00, 0x00, //0x0000089d jmp LBB0_81 + //0x000008a2 LBB0_74 + 0x48, 0x83, 0xf8, 0x01, //0x000008a2 cmpq $1, %rax + 0x0f, 0x84, 0x62, 0x00, 0x00, 0x00, //0x000008a6 je LBB0_81 + 0x48, 0x89, 0xca, //0x000008ac movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x000008af subq $-48(%rbp), %rdx + 0x49, 0x83, 0xf8, 0xff, //0x000008b3 cmpq $-1, %r8 + 0x4c, 0x0f, 0x44, 0xda, //0x000008b7 cmoveq %rdx, %r11 + 0x4c, 0x0f, 0x44, 0xc2, //0x000008bb cmoveq %rdx, %r8 + 0x49, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000008bf movq $-2, %r9 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000008c6 movl $2, %edx + 0x48, 0x01, 0xd1, //0x000008cb addq %rdx, %rcx + 0x4c, 0x01, 0xc8, //0x000008ce addq %r9, %rax + 0x0f, 0x85, 0x90, 0xff, 0xff, 0xff, //0x000008d1 jne LBB0_70 + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000008d7 jmp LBB0_81 + //0x000008dc LBB0_76 + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x000008dc movl $64, %eax + //0x000008e1 LBB0_77 + 0x48, 0x39, 0xd0, //0x000008e1 cmpq %rdx, %rax + 0x0f, 0x82, 0x1d, 0x00, 0x00, 0x00, //0x000008e4 jb LBB0_80 + 0x48, 0x2b, 0x4d, 0xd0, //0x000008ea subq $-48(%rbp), %rcx + 0x48, 0x8d, 0x7c, 0x11, 0x01, //0x000008ee leaq $1(%rcx,%rdx), %rdi + 0xe9, 0x9d, 0xfb, 0xff, 0xff, //0x000008f3 jmp LBB0_27 + //0x000008f8 LBB0_79 + 0x48, 0x2b, 0x4d, 0xd0, //0x000008f8 subq $-48(%rbp), %rcx + 0x48, 0xff, 0xc1, //0x000008fc incq %rcx + 0x48, 0x89, 0xcf, //0x000008ff movq %rcx, %rdi + 0xe9, 0x8e, 0xfb, 0xff, 0xff, //0x00000902 jmp LBB0_27 + //0x00000907 LBB0_80 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00000907 movq $-2, %rdi + //0x0000090e LBB0_81 + 0x4c, 0x8b, 0x55, 0xc8, //0x0000090e movq $-56(%rbp), %r10 + //0x00000912 LBB0_82 + 0x4c, 0x89, 0x16, //0x00000912 movq %r10, (%rsi) + 0x48, 0x89, 0x3b, //0x00000915 movq %rdi, (%rbx) + //0x00000918 LBB0_83 + 0x48, 0x83, 0xc4, 0x28, //0x00000918 addq $40, %rsp + 0x5b, //0x0000091c popq %rbx + 0x41, 0x5c, //0x0000091d popq %r12 + 0x41, 0x5d, //0x0000091f popq %r13 + 0x41, 0x5e, //0x00000921 popq %r14 + 0x41, 0x5f, //0x00000923 popq %r15 + 0x5d, //0x00000925 popq %rbp + 0xc3, //0x00000926 retq + //0x00000927 LBB0_84 + 0x48, 0x89, 0xcf, //0x00000927 movq %rcx, %rdi + 0x48, 0x2b, 0x7d, 0xd0, //0x0000092a subq $-48(%rbp), %rdi + 0x4d, 0x0f, 0xbc, 0xde, //0x0000092e bsfq %r14, %r11 + 0x49, 0x01, 0xfb, //0x00000932 addq %rdi, %r11 + 0x49, 0x09, 0xd7, //0x00000935 orq %rdx, %r15 + 0x4c, 0x89, 0xf2, //0x00000938 movq %r14, %rdx + 0x4c, 0x09, 0xc2, //0x0000093b orq %r8, %rdx + 0x0f, 0x84, 0x04, 0xfc, 0xff, 0xff, //0x0000093e je LBB0_33 + 0xe9, 0x11, 0xfd, 0xff, 0xff, //0x00000944 jmp LBB0_44 + //0x00000949 LBB0_85 + 0x48, 0x89, 0xca, //0x00000949 movq %rcx, %rdx + 0x48, 0x2b, 0x55, 0xd0, //0x0000094c subq $-48(%rbp), %rdx + 0x4d, 0x0f, 0xbc, 0xdf, //0x00000950 bsfq %r15, %r11 + 0x49, 0x01, 0xd3, //0x00000954 addq %rdx, %r11 + 0xe9, 0xbd, 0xfc, 0xff, 0xff, //0x00000957 jmp LBB0_40 + //0x0000095c LBB0_86 + 0x48, 0x85, 0xc0, //0x0000095c testq %rax, %rax + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x0000095f je LBB0_89 + 0x4c, 0x8b, 0x45, 0xd0, //0x00000965 movq $-48(%rbp), %r8 + 0x49, 0xf7, 0xd0, //0x00000969 notq %r8 + 0x49, 0x01, 0xc8, //0x0000096c addq %rcx, %r8 + 0x49, 0x83, 0xfb, 0xff, //0x0000096f cmpq $-1, %r11 + 0x4c, 0x89, 0xda, //0x00000973 movq %r11, %rdx + 0x49, 0x0f, 0x44, 0xd0, //0x00000976 cmoveq %r8, %rdx + 0x4d, 0x0f, 0x45, 0xc3, //0x0000097a cmovneq %r11, %r8 + 0x48, 0xff, 0xc1, //0x0000097e incq %rcx + 0x48, 0xff, 0xc8, //0x00000981 decq %rax + 0x49, 0x89, 0xd3, //0x00000984 movq %rdx, %r11 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00000987 movq $-1, %rdi + 0x48, 0x85, 0xc0, //0x0000098e testq %rax, %rax + 0x0f, 0x85, 0xd0, 0xfe, 0xff, 0xff, //0x00000991 jne LBB0_70 + 0xe9, 0x72, 0xff, 0xff, 0xff, //0x00000997 jmp LBB0_81 + //0x0000099c LBB0_88 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000099c movq $-1, %rdi + 0xe9, 0xb9, 0xfb, 0xff, 0xff, //0x000009a3 jmp LBB0_36 + //0x000009a8 LBB0_89 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x000009a8 movq $-1, %rdi + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x000009af jmp LBB0_81 + //0x000009b4 .p2align 2, 0x00 + //0x000009b4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x000009b4 .long 2 +} + diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned.go new file mode 100644 index 000000000..4dc9dcd16 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned.go @@ -0,0 +1,33 @@ +/* + * 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 + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vunsigned uintptr + +//go:nosplit +func vunsigned(s *string, p *int, v *types.JsonState) { + F_vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_subr.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_subr.go new file mode 100644 index 000000000..99fe65b48 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_subr.go @@ -0,0 +1,43 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__vunsigned = 0 +) + +const ( + _stack__vunsigned = 8 +) + +const ( + _size__vunsigned = 324 +) + +var ( + _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 _cfunc_vunsigned = []loader.CFunc{ + {"_vunsigned_entry", 0, _entry__vunsigned, 0, nil}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_text_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_text_amd64.go new file mode 100644 index 000000000..8f83aba6f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/vunsigned_text_amd64.go @@ -0,0 +1,108 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package sse + +var _text_vunsigned = []byte{ + // .p2align 4, 0x90 + // _vunsigned + 0x55, // pushq %rbp + 0x48, 0x89, 0xe5, //0x00000001 movq %rsp, %rbp + 0x49, 0x89, 0xd0, //0x00000004 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x00000007 movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x0000000a movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000000d movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00000011 movq $9, (%rdx) + 0x48, 0xc7, 0x42, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00000018 movq $0, $8(%rdx) + 0x48, 0xc7, 0x42, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00000020 movq $0, $16(%rdx) + 0x48, 0x8b, 0x06, //0x00000028 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x0000002b movq %rax, $24(%rdx) + 0x4c, 0x39, 0xd9, //0x0000002f cmpq %r11, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00000032 jae LBB0_1 + 0x41, 0x8a, 0x04, 0x09, //0x00000038 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x0000003c cmpb $45, %al + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000003e jne LBB0_4 + //0x00000044 LBB0_3 + 0x48, 0x89, 0x0e, //0x00000044 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00000047 movq $-6, (%r8) + 0x5d, //0x0000004e popq %rbp + 0xc3, //0x0000004f retq + //0x00000050 LBB0_1 + 0x4c, 0x89, 0x1e, //0x00000050 movq %r11, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00000053 movq $-1, (%r8) + 0x5d, //0x0000005a popq %rbp + 0xc3, //0x0000005b retq + //0x0000005c LBB0_4 + 0x8d, 0x50, 0xd0, //0x0000005c leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x0000005f cmpb $10, %dl + 0x0f, 0x82, 0x0c, 0x00, 0x00, 0x00, //0x00000062 jb LBB0_6 + 0x48, 0x89, 0x0e, //0x00000068 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000006b movq $-2, (%r8) + 0x5d, //0x00000072 popq %rbp + 0xc3, //0x00000073 retq + //0x00000074 LBB0_6 + 0x3c, 0x30, //0x00000074 cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00000076 jne LBB0_7 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x0000007c movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x00000081 addb $-46, %al + 0x3c, 0x37, //0x00000083 cmpb $55, %al + 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x00000085 ja LBB0_16 + 0x0f, 0xb6, 0xc0, //0x0000008b movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000008e movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x00000098 btq %rax, %rdx + 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x0000009c jae LBB0_16 + //0x000000a2 LBB0_7 + 0x31, 0xc0, //0x000000a2 xorl %eax, %eax + 0x41, 0xba, 0x0a, 0x00, 0x00, 0x00, //0x000000a4 movl $10, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000aa .p2align 4, 0x90 + //0x000000b0 LBB0_8 + 0x4c, 0x39, 0xd9, //0x000000b0 cmpq %r11, %rcx + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x000000b3 jae LBB0_20 + 0x41, 0x0f, 0xbe, 0x3c, 0x09, //0x000000b9 movsbl (%r9,%rcx), %edi + 0x8d, 0x57, 0xd0, //0x000000be leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x000000c1 cmpb $9, %dl + 0x0f, 0x87, 0x49, 0x00, 0x00, 0x00, //0x000000c4 ja LBB0_17 + 0x49, 0xf7, 0xe2, //0x000000ca mulq %r10 + 0x0f, 0x80, 0x31, 0x00, 0x00, 0x00, //0x000000cd jo LBB0_13 + 0x48, 0xff, 0xc1, //0x000000d3 incq %rcx + 0x83, 0xc7, 0xd0, //0x000000d6 addl $-48, %edi + 0x48, 0x63, 0xd7, //0x000000d9 movslq %edi, %rdx + 0x48, 0x89, 0xd7, //0x000000dc movq %rdx, %rdi + 0x48, 0xc1, 0xff, 0x3f, //0x000000df sarq $63, %rdi + 0x48, 0x01, 0xd0, //0x000000e3 addq %rdx, %rax + 0x48, 0x83, 0xd7, 0x00, //0x000000e6 adcq $0, %rdi + 0x89, 0xfa, //0x000000ea movl %edi, %edx + 0x83, 0xe2, 0x01, //0x000000ec andl $1, %edx + 0x48, 0xf7, 0xda, //0x000000ef negq %rdx + 0x48, 0x31, 0xd7, //0x000000f2 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000000f5 jne LBB0_13 + 0x48, 0x85, 0xd2, //0x000000fb testq %rdx, %rdx + 0x0f, 0x89, 0xac, 0xff, 0xff, 0xff, //0x000000fe jns LBB0_8 + //0x00000104 LBB0_13 + 0x48, 0xff, 0xc9, //0x00000104 decq %rcx + 0x48, 0x89, 0x0e, //0x00000107 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x0000010a movq $-5, (%r8) + 0x5d, //0x00000111 popq %rbp + 0xc3, //0x00000112 retq + //0x00000113 LBB0_17 + 0x40, 0x80, 0xff, 0x65, //0x00000113 cmpb $101, %dil + 0x0f, 0x84, 0x27, 0xff, 0xff, 0xff, //0x00000117 je LBB0_3 + 0x40, 0x80, 0xff, 0x45, //0x0000011d cmpb $69, %dil + 0x0f, 0x84, 0x1d, 0xff, 0xff, 0xff, //0x00000121 je LBB0_3 + 0x40, 0x80, 0xff, 0x2e, //0x00000127 cmpb $46, %dil + 0x0f, 0x84, 0x13, 0xff, 0xff, 0xff, //0x0000012b je LBB0_3 + //0x00000131 LBB0_20 + 0x48, 0x89, 0x0e, //0x00000131 movq %rcx, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x00000134 movq %rax, $16(%r8) + 0x5d, //0x00000138 popq %rbp + 0xc3, //0x00000139 retq + //0x0000013a LBB0_16 + 0x48, 0xff, 0xc1, //0x0000013a incq %rcx + 0x48, 0x89, 0x0e, //0x0000013d movq %rcx, (%rsi) + 0x5d, //0x00000140 popq %rbp + 0xc3, //0x00000141 retq + 0x00, 0x00, //0x00000142 .p2align 2, 0x00 + //0x00000144 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x00000144 .long 2 +} + 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 c9d47e169..1dcae6077 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/types/types.go +++ b/vendor/github.com/bytedance/sonic/internal/native/types/types.go @@ -29,6 +29,8 @@ type SearchingError uint // NOTE: !NOT MODIFIED ONLY. // This definitions are followed in native/types.h. +const BufPaddingSize int = 64 + const ( V_EOF ValueType = 1 V_NULL ValueType = 2 diff --git a/vendor/github.com/bytedance/sonic/internal/native/u64toa.tmpl b/vendor/github.com/bytedance/sonic/internal/native/u64toa.tmpl new file mode 100644 index 000000000..1c15b6b38 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/u64toa.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_u64toa func(out unsafe.Pointer, val uint64) (ret int) + +var S_u64toa uintptr + +//go:nosplit +func u64toa(out *byte, val uint64) (ret int) { + return F_u64toa(rt.NoEscape(unsafe.Pointer(out)), val) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/unquote.tmpl b/vendor/github.com/bytedance/sonic/internal/native/unquote.tmpl new file mode 100644 index 000000000..a8a155d27 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/unquote.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_unquote func(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep unsafe.Pointer, flags uint64) (ret int) + +var S_unquote uintptr + +//go:nosplit +func unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (ret int) { + return F_unquote(rt.NoEscape(sp), nb, dp, rt.NoEscape(unsafe.Pointer(ep)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/validate_one.tmpl b/vendor/github.com/bytedance/sonic/internal/native/validate_one.tmpl new file mode 100644 index 000000000..280d74f47 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/validate_one.tmpl @@ -0,0 +1,37 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_one func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer, flags uint64) (ret int) + +var S_validate_one uintptr + +//go:nosplit +func validate_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) { + return F_validate_one(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/validate_utf8.tmpl b/vendor/github.com/bytedance/sonic/internal/native/validate_utf8.tmpl new file mode 100644 index 000000000..b091beb6b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/validate_utf8.tmpl @@ -0,0 +1,39 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8 func(s unsafe.Pointer, p unsafe.Pointer, m unsafe.Pointer) (ret int) + +var S_validate_utf8 uintptr + +//go:nosplit +func validate_utf8(s *string, p *int, m *types.StateMachine) (ret int) { + return F_validate_utf8(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(m))) +} + + diff --git a/vendor/github.com/bytedance/sonic/internal/native/validate_utf8_fast.tmpl b/vendor/github.com/bytedance/sonic/internal/native/validate_utf8_fast.tmpl new file mode 100644 index 000000000..5d661c229 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/validate_utf8_fast.tmpl @@ -0,0 +1,36 @@ +// Code generated by Makefile, DO NOT EDIT. + +// 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +var F_validate_utf8_fast func(s unsafe.Pointer) (ret int) + +var S_validate_utf8_fast uintptr + +//go:nosplit +func validate_utf8_fast(s *string) (ret int) { + return F_validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/value.tmpl b/vendor/github.com/bytedance/sonic/internal/native/value.tmpl new file mode 100644 index 000000000..3928488fa --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/value.tmpl @@ -0,0 +1,33 @@ +/* + * 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_value func(s unsafe.Pointer, n int, p int, v unsafe.Pointer, flags uint64) (ret int) + +var S_value uintptr + +//go:nosplit +func value(s unsafe.Pointer, n int, p int, v *types.JsonState, flags uint64) (ret int) { + return F_value(rt.NoEscape(unsafe.Pointer(s)), n, p, rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/vnumber.tmpl b/vendor/github.com/bytedance/sonic/internal/native/vnumber.tmpl new file mode 100644 index 000000000..af4fc6ca8 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/vnumber.tmpl @@ -0,0 +1,33 @@ +/* + * 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vnumber func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vnumber uintptr + +//go:nosplit +func vnumber(s *string, p *int, v *types.JsonState) { + F_vnumber(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/vsigned.tmpl b/vendor/github.com/bytedance/sonic/internal/native/vsigned.tmpl new file mode 100644 index 000000000..a64b8b298 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/vsigned.tmpl @@ -0,0 +1,33 @@ +/* + * 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vsigned uintptr + +//go:nosplit +func vsigned(s *string, p *int, v *types.JsonState) { + F_vsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/vstring.tmpl b/vendor/github.com/bytedance/sonic/internal/native/vstring.tmpl new file mode 100644 index 000000000..f5e729efc --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/vstring.tmpl @@ -0,0 +1,33 @@ +/* + * 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vstring func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer, flags uint64) + +var S_vstring uintptr + +//go:nosplit +func vstring(s *string, p *int, v *types.JsonState, flags uint64) { + F_vstring(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v)), flags) +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/vunsigned.tmpl b/vendor/github.com/bytedance/sonic/internal/native/vunsigned.tmpl new file mode 100644 index 000000000..f6a8cec02 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/vunsigned.tmpl @@ -0,0 +1,33 @@ +/* + * 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 {{PACKAGE}} + +import ( + `unsafe` + + `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/internal/rt` +) + +var F_vunsigned func(s unsafe.Pointer, p unsafe.Pointer, v unsafe.Pointer) + +var S_vunsigned uintptr + +//go:nosplit +func vunsigned(s *string, p *int, v *types.JsonState) { + F_vunsigned(rt.NoEscape(unsafe.Pointer(s)), rt.NoEscape(unsafe.Pointer(p)), rt.NoEscape(unsafe.Pointer(v))) +} diff --git a/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go b/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go index befaeb715..6657220ab 100644 --- a/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go +++ b/vendor/github.com/bytedance/sonic/internal/rt/fastvalue.go @@ -232,3 +232,12 @@ func AssertI2I2(t *GoType, i GoIface) (r GoIface) { //go:noescape //go:linkname Getitab runtime.getitab func Getitab(inter *GoInterfaceType, typ *GoType, canfail bool) *GoItab + + +func GetFuncPC(fn interface{}) uintptr { + ft := UnpackEface(fn) + if ft.Type.Kind() != reflect.Func { + panic("not a function") + } + return *(*uintptr)(ft.Value) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/LICENSE b/vendor/github.com/bytedance/sonic/loader/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_compat.go b/vendor/github.com/bytedance/sonic/loader/funcdata_compat.go index 1af575aaa..10a14e349 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_compat.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_compat.go @@ -24,7 +24,7 @@ import ( `unsafe` `sort` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) const ( diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go index 1dfe2297d..c3195b4c3 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go @@ -24,7 +24,7 @@ import ( `unsafe` `sort` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) const ( diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go index 84178ab85..54ec4d688 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go @@ -21,7 +21,7 @@ package loader import ( - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) const ( diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go index ed3e7d1a4..803312fd7 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go @@ -20,7 +20,7 @@ package loader import ( - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) const ( diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go index ebeaca5a7..8130ffc1a 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go @@ -21,7 +21,7 @@ package loader import ( `unsafe` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) const ( diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go b/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go index 08618dca4..6029f204d 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go @@ -24,7 +24,7 @@ import ( `sort` `unsafe` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) type funcTab struct { diff --git a/vendor/github.com/bytedance/sonic/loader/internal/abi/abi.go b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi.go new file mode 100644 index 000000000..524ab5330 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi.go @@ -0,0 +1,197 @@ +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + `fmt` + `reflect` + `sort` + `strings` + + `github.com/bytedance/sonic/loader/internal/rt` +) + +type FunctionLayout struct { + FP uint32 + Args []Parameter + Rets []Parameter +} + +func (self FunctionLayout) String() string { + return self.formatFn() +} + +func (self FunctionLayout) ArgSize() uint32 { + size := uintptr(0) + for _, arg := range self.Args { + size += arg.Type.Size() + } + return uint32(size) +} + +type slot struct { + p bool + m uint32 +} + +func (self FunctionLayout) StackMap() *rt.StackMap { + var st []slot + var mb rt.StackMapBuilder + + /* add arguments */ + for _, v := range self.Args { + st = append(st, slot { + m: v.Mem, + p: v.IsPointer, + }) + } + + /* add stack-passed return values */ + for _, v := range self.Rets { + if !v.InRegister { + st = append(st, slot { + m: v.Mem, + p: v.IsPointer, + }) + } + } + + /* sort by memory offset */ + sort.Slice(st, func(i int, j int) bool { + return st[i].m < st[j].m + }) + + /* add the bits */ + for _, v := range st { + mb.AddField(v.p) + } + + /* build the stack map */ + return mb.Build() +} + +func (self FunctionLayout) formatFn() string { + fp := self.FP + return fmt.Sprintf("\n%#04x\nRets:\n%s\nArgs:\n%s", fp, self.formatSeq(self.Rets, &fp), self.formatSeq(self.Args, &fp)) +} + +func (self FunctionLayout) formatSeq(v []Parameter, fp *uint32) string { + nb := len(v) + mm := make([]string, 0, len(v)) + + /* convert each part */ + for i := nb-1; i >=0; i-- { + *fp -= PtrSize + mm = append(mm, fmt.Sprintf("%#04x %s", *fp, v[i].String())) + } + + /* join them together */ + return strings.Join(mm, "\n") +} + +type Frame struct { + desc *FunctionLayout + locals []bool + ccall bool +} + +func NewFrame(desc *FunctionLayout, locals []bool, ccall bool) Frame { + fr := Frame{} + fr.desc = desc + fr.locals = locals + fr.ccall = ccall + return fr +} + +func (self *Frame) String() string { + out := self.desc.String() + + off := -8 + out += fmt.Sprintf("\n%#4x [Return PC]", off) + off -= 8 + out += fmt.Sprintf("\n%#4x [RBP]", off) + off -= 8 + + for _, v := range ReservedRegs(self.ccall) { + out += fmt.Sprintf("\n%#4x [%v]", off, v) + off -= PtrSize + } + + for _, b := range self.locals { + out += fmt.Sprintf("\n%#4x [%v]", off, b) + off -= PtrSize + } + + return out +} + +func (self *Frame) Prev() uint32 { + return self.Size() + PtrSize +} + +func (self *Frame) Size() uint32 { + return uint32(self.Offs() + PtrSize) +} + +func (self *Frame) Offs() uint32 { + return uint32(len(ReservedRegs(self.ccall)) * PtrSize + len(self.locals)*PtrSize) +} + +func (self *Frame) ArgPtrs() *rt.StackMap { + return self.desc.StackMap() +} + +func (self *Frame) LocalPtrs() *rt.StackMap { + var m rt.StackMapBuilder + for _, b := range self.locals { + m.AddFields(len(ReservedRegs(self.ccall)), b) + } + return m.Build() +} + +func alignUp(n uint32, a int) uint32 { + return (uint32(n) + uint32(a) - 1) &^ (uint32(a) - 1) +} + +func isPointer(vt reflect.Type) bool { + switch vt.Kind() { + case reflect.Bool : fallthrough + case reflect.Int : fallthrough + case reflect.Int8 : fallthrough + case reflect.Int16 : fallthrough + case reflect.Int32 : fallthrough + case reflect.Int64 : fallthrough + case reflect.Uint : fallthrough + case reflect.Uint8 : fallthrough + case reflect.Uint16 : fallthrough + case reflect.Uint32 : fallthrough + case reflect.Uint64 : fallthrough + case reflect.Float32 : fallthrough + case reflect.Float64 : fallthrough + case reflect.Uintptr : return false + case reflect.Chan : fallthrough + case reflect.Func : fallthrough + case reflect.Map : fallthrough + case reflect.Ptr : fallthrough + case reflect.UnsafePointer : return true + case reflect.Complex64 : fallthrough + case reflect.Complex128 : fallthrough + case reflect.Array : fallthrough + case reflect.Struct : panic("abi: unsupported types") + default : panic("abi: invalid value type") + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_amd64.go b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_amd64.go new file mode 100644 index 000000000..c2b45a8e1 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_amd64.go @@ -0,0 +1,282 @@ +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + `fmt` + `reflect` + `unsafe` + + . `github.com/cloudwego/iasm/x86_64` +) + +const ( + PtrSize = 8 // pointer size + PtrAlign = 8 // pointer alignment +) + +var iregOrderC = []Register{ + RDI, + RSI, + RDX, + RCX, + R8, + R9, +} + +var xregOrderC = []Register{ + XMM0, + XMM1, + XMM2, + XMM3, + XMM4, + XMM5, + XMM6, + XMM7, +} + +var ( + intType = reflect.TypeOf(0) + ptrType = reflect.TypeOf(unsafe.Pointer(nil)) +) + +func (self *Frame) argv(i int) *MemoryOperand { + return Ptr(RSP, int32(self.Prev() + self.desc.Args[i].Mem)) +} + +// spillv is used for growstack spill registers +func (self *Frame) spillv(i int) *MemoryOperand { + // remain one slot for caller return pc + return Ptr(RSP, PtrSize + int32(self.desc.Args[i].Mem)) +} + +func (self *Frame) retv(i int) *MemoryOperand { + return Ptr(RSP, int32(self.Prev() + self.desc.Rets[i].Mem)) +} + +func (self *Frame) resv(i int) *MemoryOperand { + return Ptr(RSP, int32(self.Offs() - uint32((i+1) * PtrSize))) +} + +func (self *Frame) emitGrowStack(p *Program, entry *Label) { + // spill all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(v.Reg, self.spillv(i)) + } else if v.IsFloat == floatKind32 { + p.MOVSS(v.Reg, self.spillv(i)) + }else { + p.MOVQ(v.Reg, self.spillv(i)) + } + } + } + + // call runtime.morestack_noctxt + p.MOVQ(F_morestack_noctxt, R12) + p.CALLQ(R12) + // load all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(self.spillv(i), v.Reg) + } else if v.IsFloat == floatKind32 { + p.MOVSS(self.spillv(i), v.Reg) + }else { + p.MOVQ(self.spillv(i), v.Reg) + } + } + } + + // jump back to the function entry + p.JMP(entry) +} + +func (self *Frame) GrowStackTextSize() uint32 { + p := DefaultArch.CreateProgram() + // spill all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(v.Reg, self.spillv(i)) + } else if v.IsFloat == floatKind32 { + p.MOVSS(v.Reg, self.spillv(i)) + }else { + p.MOVQ(v.Reg, self.spillv(i)) + } + } + } + + // call runtime.morestack_noctxt + p.MOVQ(F_morestack_noctxt, R12) + p.CALLQ(R12) + // load all register arguments + for i, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat == floatKind64 { + p.MOVSD(self.spillv(i), v.Reg) + } else if v.IsFloat == floatKind32 { + p.MOVSS(self.spillv(i), v.Reg) + } else { + p.MOVQ(self.spillv(i), v.Reg) + } + } + } + + // jump back to the function entry + l := CreateLabel("") + p.Link(l) + p.JMP(l) + + return uint32(len(p.Assemble(0))) +} + +func (self *Frame) emitPrologue(p *Program) { + p.SUBQ(self.Size(), RSP) + p.MOVQ(RBP, Ptr(RSP, int32(self.Offs()))) + p.LEAQ(Ptr(RSP, int32(self.Offs())), RBP) +} + +func (self *Frame) emitEpilogue(p *Program) { + p.MOVQ(Ptr(RSP, int32(self.Offs())), RBP) + p.ADDQ(self.Size(), RSP) + p.RET() +} + +func (self *Frame) emitReserveRegs(p *Program) { + // spill reserved registers + for i, r := range ReservedRegs(self.ccall) { + switch r.(type) { + case Register64: + p.MOVQ(r, self.resv(i)) + case XMMRegister: + p.MOVSD(r, self.resv(i)) + default: + panic(fmt.Sprintf("unsupported register type %t to reserve", r)) + } + } +} + +func (self *Frame) emitSpillPtrs(p *Program) { + // spill pointer argument registers + for i, r := range self.desc.Args { + if r.InRegister && r.IsPointer { + p.MOVQ(r.Reg, self.argv(i)) + } + } +} + +func (self *Frame) emitClearPtrs(p *Program) { + // spill pointer argument registers + for i, r := range self.desc.Args { + if r.InRegister && r.IsPointer { + p.MOVQ(int64(0), self.argv(i)) + } + } +} + +func (self *Frame) emitCallC(p *Program, addr uintptr) { + p.MOVQ(addr, RAX) + p.CALLQ(RAX) +} + +type floatKind uint8 + +const ( + notFloatKind floatKind = iota + floatKind32 + floatKind64 +) + +type Parameter struct { + InRegister bool + IsPointer bool + IsFloat floatKind + Reg Register + Mem uint32 + Type reflect.Type +} + +func mkIReg(vt reflect.Type, reg Register64) (p Parameter) { + p.Reg = reg + p.Type = vt + p.InRegister = true + p.IsPointer = isPointer(vt) + return +} + +func isFloat(vt reflect.Type) floatKind { + switch vt.Kind() { + case reflect.Float32: + return floatKind32 + case reflect.Float64: + return floatKind64 + default: + return notFloatKind + } +} + +func mkXReg(vt reflect.Type, reg XMMRegister) (p Parameter) { + p.Reg = reg + p.Type = vt + p.InRegister = true + p.IsFloat = isFloat(vt) + return +} + +func mkStack(vt reflect.Type, mem uint32) (p Parameter) { + p.Mem = mem + p.Type = vt + p.InRegister = false + p.IsPointer = isPointer(vt) + p.IsFloat = isFloat(vt) + return +} + +func (self Parameter) String() string { + if self.InRegister { + return fmt.Sprintf("[%%%s, Pointer(%v), Float(%v)]", self.Reg, self.IsPointer, self.IsFloat) + } else { + return fmt.Sprintf("[%d(FP), Pointer(%v), Float(%v)]", self.Mem, self.IsPointer, self.IsFloat) + } +} + +func CallC(addr uintptr, fr Frame, maxStack uintptr) []byte { + p := DefaultArch.CreateProgram() + + stack := CreateLabel("_stack_grow") + entry := CreateLabel("_entry") + p.Link(entry) + fr.emitStackCheck(p, stack, maxStack) + fr.emitPrologue(p) + fr.emitReserveRegs(p) + fr.emitSpillPtrs(p) + fr.emitExchangeArgs(p) + fr.emitCallC(p, addr) + fr.emitExchangeRets(p) + fr.emitRestoreRegs(p) + fr.emitEpilogue(p) + p.Link(stack) + fr.emitGrowStack(p, entry) + + return p.Assemble(0) +} + + +func (self *Frame) emitDebug(p *Program) { + p.INT(3) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_legacy_amd64.go b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_legacy_amd64.go new file mode 100644 index 000000000..298c48178 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_legacy_amd64.go @@ -0,0 +1,182 @@ +//go:build !go1.17 +// +build !go1.17 + +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + `fmt` + `reflect` + `runtime` + + . `github.com/cloudwego/iasm/x86_64` +) + +func ReservedRegs(callc bool) []Register { + return nil +} + +func salloc(p []Parameter, sp uint32, vt reflect.Type) (uint32, []Parameter) { + switch vt.Kind() { + case reflect.Bool : return sp + 8, append(p, mkStack(reflect.TypeOf(false), sp)) + case reflect.Int : return sp + 8, append(p, mkStack(intType, sp)) + case reflect.Int8 : return sp + 8, append(p, mkStack(reflect.TypeOf(int8(0)), sp)) + case reflect.Int16 : return sp + 8, append(p, mkStack(reflect.TypeOf(int16(0)), sp)) + case reflect.Int32 : return sp + 8, append(p, mkStack(reflect.TypeOf(int32(0)), sp)) + case reflect.Int64 : return sp + 8, append(p, mkStack(reflect.TypeOf(int64(0)), sp)) + case reflect.Uint : return sp + 8, append(p, mkStack(reflect.TypeOf(uint(0)), sp)) + case reflect.Uint8 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint8(0)), sp)) + case reflect.Uint16 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint16(0)), sp)) + case reflect.Uint32 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint32(0)), sp)) + case reflect.Uint64 : return sp + 8, append(p, mkStack(reflect.TypeOf(uint64(0)), sp)) + case reflect.Uintptr : return sp + 8, append(p, mkStack(reflect.TypeOf(uintptr(0)), sp)) + case reflect.Float32 : return sp + 8, append(p, mkStack(reflect.TypeOf(float32(0)), sp)) + case reflect.Float64 : return sp + 8, append(p, mkStack(reflect.TypeOf(float64(0)), sp)) + case reflect.Complex64 : panic("abi: go116: not implemented: complex64") + case reflect.Complex128 : panic("abi: go116: not implemented: complex128") + case reflect.Array : panic("abi: go116: not implemented: arrays") + case reflect.Chan : return sp + 8, append(p, mkStack(reflect.TypeOf((chan int)(nil)), sp)) + case reflect.Func : return sp + 8, append(p, mkStack(reflect.TypeOf((func())(nil)), sp)) + case reflect.Map : return sp + 8, append(p, mkStack(reflect.TypeOf((map[int]int)(nil)), sp)) + case reflect.Ptr : return sp + 8, append(p, mkStack(reflect.TypeOf((*int)(nil)), sp)) + case reflect.UnsafePointer : return sp + 8, append(p, mkStack(ptrType, sp)) + case reflect.Interface : return sp + 16, append(p, mkStack(ptrType, sp), mkStack(ptrType, sp + 8)) + case reflect.Slice : return sp + 24, append(p, mkStack(ptrType, sp), mkStack(intType, sp + 8), mkStack(intType, sp + 16)) + case reflect.String : return sp + 16, append(p, mkStack(ptrType, sp), mkStack(intType, sp + 8)) + case reflect.Struct : panic("abi: go116: not implemented: structs") + default : panic("abi: invalid value type") + } +} + +func NewFunctionLayout(ft reflect.Type) FunctionLayout { + var sp uint32 + var fn FunctionLayout + + /* assign every arguments */ + for i := 0; i < ft.NumIn(); i++ { + sp, fn.Args = salloc(fn.Args, sp, ft.In(i)) + } + + /* assign every return value */ + for i := 0; i < ft.NumOut(); i++ { + sp, fn.Rets = salloc(fn.Rets, sp, ft.Out(i)) + } + + /* update function ID and stack pointer */ + fn.FP = sp + return fn +} + +func (self *Frame) emitExchangeArgs(p *Program) { + iregArgs, xregArgs := 0, 0 + for _, v := range self.desc.Args { + if v.IsFloat != notFloatKind { + xregArgs += 1 + } else { + iregArgs += 1 + } + } + + if iregArgs > len(iregOrderC) { + panic("too many arguments, only support at most 6 integer arguments now") + } + if xregArgs > len(xregOrderC) { + panic("too many arguments, only support at most 8 float arguments now") + } + + ic, xc := iregArgs, xregArgs + for i := 0; i < len(self.desc.Args); i++ { + arg := self.desc.Args[i] + if arg.IsFloat == floatKind64 { + p.MOVSD(self.argv(i), xregOrderC[xregArgs - xc]) + xc -= 1 + } else if arg.IsFloat == floatKind32 { + p.MOVSS(self.argv(i), xregOrderC[xregArgs - xc]) + xc -= 1 + } else { + p.MOVQ(self.argv(i), iregOrderC[iregArgs - ic]) + ic -= 1 + } + } +} + +func (self *Frame) emitStackCheck(p *Program, to *Label, maxStack uintptr) { + // get the current goroutine + switch runtime.GOOS { + case "linux" : p.MOVQ(Abs(-8), R14).FS() + case "darwin" : p.MOVQ(Abs(0x30), R14).GS() + case "windows": break // windows always stores G pointer at R14 + default : panic("unsupported operating system") + } + + // check the stack guard + p.LEAQ(Ptr(RSP, -int32(self.Size() + uint32(maxStack))), RAX) + p.CMPQ(Ptr(R14, _G_stackguard0), RAX) + p.JBE(to) +} + +func (self *Frame) StackCheckTextSize() uint32 { + p := DefaultArch.CreateProgram() + + // get the current goroutine + switch runtime.GOOS { + case "linux" : p.MOVQ(Abs(-8), R14).FS() + case "darwin" : p.MOVQ(Abs(0x30), R14).GS() + case "windows": break // windows always stores G pointer at R14 + default : panic("unsupported operating system") + } + + // check the stack guard + p.LEAQ(Ptr(RSP, -int32(self.Size())), RAX) + p.CMPQ(Ptr(R14, _G_stackguard0), RAX) + l := CreateLabel("") + p.Link(l) + p.JBE(l) + + return uint32(len(p.Assemble(0))) +} + +func (self *Frame) emitExchangeRets(p *Program) { + if len(self.desc.Rets) > 1 { + panic("too many results, only support one result now") + } + // store result + if len(self.desc.Rets) ==1 { + if self.desc.Rets[0].IsFloat == floatKind64 { + p.MOVSD(xregOrderC[0], self.retv(0)) + } else if self.desc.Rets[0].IsFloat == floatKind32 { + p.MOVSS(xregOrderC[0], self.retv(0)) + } else { + p.MOVQ(RAX, self.retv(0)) + } + } +} + +func (self *Frame) emitRestoreRegs(p *Program) { + // load reserved registers + for i, r := range ReservedRegs(self.ccall) { + switch r.(type) { + case Register64: + p.MOVQ(self.resv(i), r) + case XMMRegister: + p.MOVSD(self.resv(i), r) + default: + panic(fmt.Sprintf("unsupported register type %t to reserve", r)) + } + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_regabi_amd64.go b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_regabi_amd64.go new file mode 100644 index 000000000..5a31dea89 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/abi/abi_regabi_amd64.go @@ -0,0 +1,316 @@ +//go:build go1.17 +// +build go1.17 + +/* + * Copyright 2022 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** Go Internal ABI implementation + * + * This module implements the function layout algorithm described by the Go internal ABI. + * See https://github.com/golang/go/blob/master/src/cmd/compile/abi-internal.md for more info. + */ + +package abi + +import ( + `fmt` + `reflect` + + . `github.com/cloudwego/iasm/x86_64` +) + +/** Frame Structure of the Generated Function + FP +------------------------------+ + | . . . | + | 2nd reg argument spill space | + + 1st reg argument spill space | + | | + | . . . | + | 2nd stack-assigned result | + + 1st stack-assigned result | + | | + | . . . | + | 2nd stack-assigned argument | + | 1st stack-assigned argument | + | stack-assigned receiver | +prev() +------------------------------+ (Previous Frame) + Return PC | +size() -------------------------------| + Saved RBP | +offs() -------------------------------| + 1th Reserved Registers | + -------------------------------| + 2th Reserved Registers | + -------------------------------| + Local Variables | + RSP -------------------------------|↓ lower addresses +*/ + +const zeroRegGo = XMM15 + +var iregOrderGo = [...]Register64 { + RAX,// RDI + RBX,// RSI + RCX,// RDX + RDI,// RCX + RSI,// R8 + R8, // R9 + R9, + R10, + R11, +} + +var xregOrderGo = [...]XMMRegister { + XMM0, + XMM1, + XMM2, + XMM3, + XMM4, + XMM5, + XMM6, + XMM7, + XMM8, + XMM9, + XMM10, + XMM11, + XMM12, + XMM13, + XMM14, +} + +func ReservedRegs(callc bool) []Register { + if callc { + return nil + } + return []Register { + R14, // current goroutine + R15, // GOT reference + } +} + +type stackAlloc struct { + s uint32 + i int + x int +} + +func (self *stackAlloc) reset() { + self.i, self.x = 0, 0 +} + +func (self *stackAlloc) ireg(vt reflect.Type) (p Parameter) { + p = mkIReg(vt, iregOrderGo[self.i]) + self.i++ + return +} + +func (self *stackAlloc) xreg(vt reflect.Type) (p Parameter) { + p = mkXReg(vt, xregOrderGo[self.x]) + self.x++ + return +} + +func (self *stackAlloc) stack(vt reflect.Type) (p Parameter) { + p = mkStack(vt, self.s) + self.s += uint32(vt.Size()) + return +} + +func (self *stackAlloc) spill(n uint32, a int) uint32 { + self.s = alignUp(self.s, a) + n + return self.s +} + +func (self *stackAlloc) alloc(p []Parameter, vt reflect.Type) []Parameter { + nb := vt.Size() + vk := vt.Kind() + + /* zero-sized objects are allocated on stack */ + if nb == 0 { + return append(p, mkStack(intType, self.s)) + } + + /* check for value type */ + switch vk { + case reflect.Bool : return self.valloc(p, reflect.TypeOf(false)) + case reflect.Int : return self.valloc(p, intType) + case reflect.Int8 : return self.valloc(p, reflect.TypeOf(int8(0))) + case reflect.Int16 : return self.valloc(p, reflect.TypeOf(int16(0))) + case reflect.Int32 : return self.valloc(p, reflect.TypeOf(uint32(0))) + case reflect.Int64 : return self.valloc(p, reflect.TypeOf(int64(0))) + case reflect.Uint : return self.valloc(p, reflect.TypeOf(uint(0))) + case reflect.Uint8 : return self.valloc(p, reflect.TypeOf(uint8(0))) + case reflect.Uint16 : return self.valloc(p, reflect.TypeOf(uint16(0))) + case reflect.Uint32 : return self.valloc(p, reflect.TypeOf(uint32(0))) + case reflect.Uint64 : return self.valloc(p, reflect.TypeOf(uint64(0))) + case reflect.Uintptr : return self.valloc(p, reflect.TypeOf(uintptr(0))) + case reflect.Float32 : return self.valloc(p, reflect.TypeOf(float32(0))) + case reflect.Float64 : return self.valloc(p, reflect.TypeOf(float64(0))) + case reflect.Complex64 : panic("abi: go117: not implemented: complex64") + case reflect.Complex128 : panic("abi: go117: not implemented: complex128") + case reflect.Array : panic("abi: go117: not implemented: arrays") + case reflect.Chan : return self.valloc(p, reflect.TypeOf((chan int)(nil))) + case reflect.Func : return self.valloc(p, reflect.TypeOf((func())(nil))) + case reflect.Map : return self.valloc(p, reflect.TypeOf((map[int]int)(nil))) + case reflect.Ptr : return self.valloc(p, reflect.TypeOf((*int)(nil))) + case reflect.UnsafePointer : return self.valloc(p, ptrType) + case reflect.Interface : return self.valloc(p, ptrType, ptrType) + case reflect.Slice : return self.valloc(p, ptrType, intType, intType) + case reflect.String : return self.valloc(p, ptrType, intType) + case reflect.Struct : panic("abi: go117: not implemented: structs") + default : panic("abi: invalid value type") + } +} + +func (self *stackAlloc) valloc(p []Parameter, vts ...reflect.Type) []Parameter { + for _, vt := range vts { + enum := isFloat(vt) + if enum != notFloatKind && self.x < len(xregOrderGo) { + p = append(p, self.xreg(vt)) + } else if enum == notFloatKind && self.i < len(iregOrderGo) { + p = append(p, self.ireg(vt)) + } else { + p = append(p, self.stack(vt)) + } + } + return p +} + +func NewFunctionLayout(ft reflect.Type) FunctionLayout { + var sa stackAlloc + var fn FunctionLayout + + /* assign every arguments */ + for i := 0; i < ft.NumIn(); i++ { + fn.Args = sa.alloc(fn.Args, ft.In(i)) + } + + /* reset the register counter, and add a pointer alignment field */ + sa.reset() + + /* assign every return value */ + for i := 0; i < ft.NumOut(); i++ { + fn.Rets = sa.alloc(fn.Rets, ft.Out(i)) + } + + sa.spill(0, PtrAlign) + + /* assign spill slots */ + for i := 0; i < len(fn.Args); i++ { + if fn.Args[i].InRegister { + fn.Args[i].Mem = sa.spill(PtrSize, PtrAlign) - PtrSize + } + } + + /* add the final pointer alignment field */ + fn.FP = sa.spill(0, PtrAlign) + return fn +} + +func (self *Frame) emitExchangeArgs(p *Program) { + iregArgs := make([]Parameter, 0, len(self.desc.Args)) + xregArgs := 0 + for _, v := range self.desc.Args { + if v.InRegister { + if v.IsFloat != notFloatKind { + xregArgs += 1 + } else { + iregArgs = append(iregArgs, v) + } + } else { + panic("not support stack-assgined arguments now") + } + } + if xregArgs > len(xregOrderC) { + panic("too many arguments, only support at most 8 integer register arguments now") + } + + switch len(iregArgs) { + case 0, 1, 2, 3: { + //Fast-Path: when arguments count are less than four, just exchange the registers + for i := 0; i < len(iregArgs); i++ { + p.MOVQ(iregOrderGo[i], iregOrderC[i]) + } + } + case 4, 5, 6: { + // need to spill 3th ~ regArgs registers before exchange + for i := 3; i < len(iregArgs); i++ { + arg := iregArgs[i] + // pointer args have already been spilled + if !arg.IsPointer { + p.MOVQ(iregOrderGo[i], Ptr(RSP, int32(self.Prev() + arg.Mem))) + } + } + p.MOVQ(iregOrderGo[0], iregOrderC[0]) + p.MOVQ(iregOrderGo[1], iregOrderC[1]) + p.MOVQ(iregOrderGo[2], iregOrderC[2]) + for i := 3; i < len(iregArgs); i++ { + arg := iregArgs[i] + p.MOVQ(Ptr(RSP, int32(self.Prev() + arg.Mem)), iregOrderC[i]) + } + } + default: + panic("too many arguments, only support at most 6 integer register arguments now") + } +} + +func (self *Frame) emitStackCheck(p *Program, to *Label, maxStack uintptr) { + p.LEAQ(Ptr(RSP, int32(-(self.Size() + uint32(maxStack)))), R12) + p.CMPQ(Ptr(R14, _G_stackguard0), R12) + p.JBE(to) +} + +func (self *Frame) StackCheckTextSize() uint32 { + p := DefaultArch.CreateProgram() + p.LEAQ(Ptr(RSP, int32(-(self.Size()))), R12) + p.CMPQ(Ptr(R14, _G_stackguard0), R12) + to := CreateLabel("") + p.Link(to) + p.JBE(to) + return uint32(len(p.Assemble(0))) +} + +func (self *Frame) emitExchangeRets(p *Program) { + if len(self.desc.Rets) > 1 { + panic("too many results, only support one result now") + } + // store result + if len(self.desc.Rets) == 1 && !self.desc.Rets[0].InRegister { + if self.desc.Rets[0].IsFloat == floatKind64 { + p.MOVSD(xregOrderC[0], self.retv(0)) + } else if self.desc.Rets[0].IsFloat == floatKind32 { + p.MOVSS(xregOrderC[0], self.retv(0)) + } else { + p.MOVQ(RAX, self.retv(0)) + } + } +} + +func (self *Frame) emitRestoreRegs(p *Program) { + // load reserved registers + for i, r := range ReservedRegs(self.ccall) { + switch r.(type) { + case Register64: + p.MOVQ(self.resv(i), r) + case XMMRegister: + p.MOVSD(self.resv(i), r) + default: + panic(fmt.Sprintf("unsupported register type %t to reserve", r)) + } + } + // zero xmm15 for go abi + p.XORPS(zeroRegGo, zeroRegGo) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/internal/abi/stubs.go b/vendor/github.com/bytedance/sonic/loader/internal/abi/stubs.go new file mode 100644 index 000000000..af9930156 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/abi/stubs.go @@ -0,0 +1,35 @@ +/** + * Copyright 2023 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package abi + +import ( + _ `unsafe` + + `github.com/bytedance/sonic/loader/internal/rt` +) + +const ( + _G_stackguard0 = 0x10 +) + +var ( + F_morestack_noctxt = uintptr(rt.FuncAddr(morestack_noctxt)) +) + +//go:linkname morestack_noctxt runtime.morestack_noctxt +func morestack_noctxt() + diff --git a/vendor/github.com/bytedance/sonic/loader/internal/rt/fastmem.go b/vendor/github.com/bytedance/sonic/loader/internal/rt/fastmem.go new file mode 100644 index 000000000..3bc24c4e4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/rt/fastmem.go @@ -0,0 +1,62 @@ +/* + * 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 rt + +import ( + `unsafe` + `reflect` +) + +//go:nosplit +func Mem2Str(v []byte) (s string) { + (*GoString)(unsafe.Pointer(&s)).Len = (*GoSlice)(unsafe.Pointer(&v)).Len + (*GoString)(unsafe.Pointer(&s)).Ptr = (*GoSlice)(unsafe.Pointer(&v)).Ptr + return +} + +//go:nosplit +func Str2Mem(s string) (v []byte) { + (*GoSlice)(unsafe.Pointer(&v)).Cap = (*GoString)(unsafe.Pointer(&s)).Len + (*GoSlice)(unsafe.Pointer(&v)).Len = (*GoString)(unsafe.Pointer(&s)).Len + (*GoSlice)(unsafe.Pointer(&v)).Ptr = (*GoString)(unsafe.Pointer(&s)).Ptr + return +} + +func BytesFrom(p unsafe.Pointer, n int, c int) (r []byte) { + (*GoSlice)(unsafe.Pointer(&r)).Ptr = p + (*GoSlice)(unsafe.Pointer(&r)).Len = n + (*GoSlice)(unsafe.Pointer(&r)).Cap = c + return +} + +func FuncAddr(f interface{}) unsafe.Pointer { + if vv := UnpackEface(f); vv.Type.Kind() != reflect.Func { + panic("f is not a function") + } else { + return *(*unsafe.Pointer)(vv.Value) + } +} + +//go:nocheckptr +func IndexChar(src string, index int) unsafe.Pointer { + return unsafe.Pointer(uintptr((*GoString)(unsafe.Pointer(&src)).Ptr) + uintptr(index)) +} + +//go:nocheckptr +func IndexByte(ptr []byte, index int) unsafe.Pointer { + return unsafe.Pointer(uintptr((*GoSlice)(unsafe.Pointer(&ptr)).Ptr) + uintptr(index)) +} diff --git a/vendor/github.com/bytedance/sonic/loader/internal/rt/fastvalue.go b/vendor/github.com/bytedance/sonic/loader/internal/rt/fastvalue.go new file mode 100644 index 000000000..e6c5bc869 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/rt/fastvalue.go @@ -0,0 +1,183 @@ +/* + * 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 rt + +import ( + `reflect` + `unsafe` +) + +var ( + reflectRtypeItab = findReflectRtypeItab() +) + +// GoType.KindFlags const +const ( + F_direct = 1 << 5 + F_kind_mask = (1 << 5) - 1 +) + +// GoType.Flags const +const ( + tflagUncommon uint8 = 1 << 0 + tflagExtraStar uint8 = 1 << 1 + tflagNamed uint8 = 1 << 2 + tflagRegularMemory uint8 = 1 << 3 +) + +type GoType struct { + Size uintptr + PtrData uintptr + Hash uint32 + Flags uint8 + Align uint8 + FieldAlign uint8 + KindFlags uint8 + Traits unsafe.Pointer + GCData *byte + Str int32 + PtrToSelf int32 +} + +func (self *GoType) IsNamed() bool { + return (self.Flags & tflagNamed) != 0 +} + +func (self *GoType) Kind() reflect.Kind { + return reflect.Kind(self.KindFlags & F_kind_mask) +} + +func (self *GoType) Pack() (t reflect.Type) { + (*GoIface)(unsafe.Pointer(&t)).Itab = reflectRtypeItab + (*GoIface)(unsafe.Pointer(&t)).Value = unsafe.Pointer(self) + return +} + +func (self *GoType) String() string { + return self.Pack().String() +} + +func (self *GoType) Indirect() bool { + return self.KindFlags & F_direct == 0 +} + +type GoItab struct { + it unsafe.Pointer + Vt *GoType + hv uint32 + _ [4]byte + fn [1]uintptr +} + +type GoIface struct { + Itab *GoItab + Value unsafe.Pointer +} + +type GoEface struct { + Type *GoType + Value unsafe.Pointer +} + +func (self GoEface) Pack() (v interface{}) { + *(*GoEface)(unsafe.Pointer(&v)) = self + return +} + +type GoPtrType struct { + GoType + Elem *GoType +} + +type GoMapType struct { + GoType + Key *GoType + Elem *GoType + Bucket *GoType + Hasher func(unsafe.Pointer, uintptr) uintptr + KeySize uint8 + ElemSize uint8 + BucketSize uint16 + Flags uint32 +} + +func (self *GoMapType) IndirectElem() bool { + return self.Flags & 2 != 0 +} + +type GoStructType struct { + GoType + Pkg *byte + Fields []GoStructField +} + +type GoStructField struct { + Name *byte + Type *GoType + OffEmbed uintptr +} + +type GoInterfaceType struct { + GoType + PkgPath *byte + Methods []GoInterfaceMethod +} + +type GoInterfaceMethod struct { + Name int32 + Type int32 +} + +type GoSlice struct { + Ptr unsafe.Pointer + Len int + Cap int +} + +type GoString struct { + Ptr unsafe.Pointer + Len int +} + +func PtrElem(t *GoType) *GoType { + return (*GoPtrType)(unsafe.Pointer(t)).Elem +} + +func MapType(t *GoType) *GoMapType { + return (*GoMapType)(unsafe.Pointer(t)) +} + +func IfaceType(t *GoType) *GoInterfaceType { + return (*GoInterfaceType)(unsafe.Pointer(t)) +} + +func UnpackType(t reflect.Type) *GoType { + return (*GoType)((*GoIface)(unsafe.Pointer(&t)).Value) +} + +func UnpackEface(v interface{}) GoEface { + return *(*GoEface)(unsafe.Pointer(&v)) +} + +func UnpackIface(v interface{}) GoIface { + return *(*GoIface)(unsafe.Pointer(&v)) +} + +func findReflectRtypeItab() *GoItab { + v := reflect.TypeOf(struct{}{}) + return (*GoIface)(unsafe.Pointer(&v)).Itab +} diff --git a/vendor/github.com/bytedance/sonic/loader/internal/rt/stackmap.go b/vendor/github.com/bytedance/sonic/loader/internal/rt/stackmap.go new file mode 100644 index 000000000..84ed9a95f --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/internal/rt/stackmap.go @@ -0,0 +1,181 @@ +/** + * Copyright 2023 ByteDance Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package rt + +import ( + `fmt` + `strings` + `unsafe` + +) + +type Bitmap struct { + N int + B []byte +} + +func (self *Bitmap) grow() { + if self.N >= len(self.B) * 8 { + self.B = append(self.B, 0) + } +} + +func (self *Bitmap) mark(i int, bv int) { + if bv != 0 { + self.B[i / 8] |= 1 << (i % 8) + } else { + self.B[i / 8] &^= 1 << (i % 8) + } +} + +func (self *Bitmap) Set(i int, bv int) { + if i >= self.N { + panic("bitmap: invalid bit position") + } else { + self.mark(i, bv) + } +} + +func (self *Bitmap) Append(bv int) { + self.grow() + self.mark(self.N, bv) + self.N++ +} + +func (self *Bitmap) AppendMany(n int, bv int) { + for i := 0; i < n; i++ { + self.Append(bv) + } +} + +// var ( +// _stackMapLock = sync.Mutex{} +// _stackMapCache = make(map[*StackMap]struct{}) +// ) + +type BitVec struct { + N uintptr + B unsafe.Pointer +} + +func (self BitVec) Bit(i uintptr) byte { + return (*(*byte)(unsafe.Pointer(uintptr(self.B) + i / 8)) >> (i % 8)) & 1 +} + +func (self BitVec) String() string { + var i uintptr + var v []string + + /* add each bit */ + for i = 0; i < self.N; i++ { + v = append(v, fmt.Sprintf("%d", self.Bit(i))) + } + + /* join them together */ + return fmt.Sprintf( + "BitVec { %s }", + strings.Join(v, ", "), + ) +} + +type StackMap struct { + N int32 + L int32 + B [1]byte +} + +// func (self *StackMap) add() { +// _stackMapLock.Lock() +// _stackMapCache[self] = struct{}{} +// _stackMapLock.Unlock() +// } + +func (self *StackMap) Pin() uintptr { + // self.add() + return uintptr(unsafe.Pointer(self)) +} + +func (self *StackMap) Get(i int32) BitVec { + return BitVec { + N: uintptr(self.L), + B: unsafe.Pointer(uintptr(unsafe.Pointer(&self.B)) + uintptr(i * ((self.L + 7) >> 3))), + } +} + +func (self *StackMap) String() string { + sb := strings.Builder{} + sb.WriteString("StackMap {") + + /* dump every stack map */ + for i := int32(0); i < self.N; i++ { + sb.WriteRune('\n') + sb.WriteString(" " + self.Get(i).String()) + } + + /* close the stackmap */ + sb.WriteString("\n}") + return sb.String() +} + +func (self *StackMap) MarshalBinary() ([]byte, error) { + size := int(self.N) * int(self.L) + int(unsafe.Sizeof(self.L)) + int(unsafe.Sizeof(self.N)) + return BytesFrom(unsafe.Pointer(self), size, size), nil +} + +var ( + byteType = UnpackEface(byte(0)).Type +) + +const ( + _StackMapSize = unsafe.Sizeof(StackMap{}) +) + +//go:linkname mallocgc runtime.mallocgc +//goland:noinspection GoUnusedParameter +func mallocgc(nb uintptr, vt *GoType, zero bool) unsafe.Pointer + +type StackMapBuilder struct { + b Bitmap +} + +//go:nocheckptr +func (self *StackMapBuilder) Build() (p *StackMap) { + nb := len(self.b.B) + bm := mallocgc(_StackMapSize + uintptr(nb) - 1, byteType, false) + + /* initialize as 1 bitmap of N bits */ + p = (*StackMap)(bm) + p.N, p.L = 1, int32(self.b.N) + copy(BytesFrom(unsafe.Pointer(&p.B), nb, nb), self.b.B) + return +} + +func (self *StackMapBuilder) AddField(ptr bool) { + if ptr { + self.b.Append(1) + } else { + self.b.Append(0) + } +} + +func (self *StackMapBuilder) AddFields(n int, ptr bool) { + if ptr { + self.b.AppendMany(n, 1) + } else { + self.b.AppendMany(n, 0) + } +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/loader_latest.go b/vendor/github.com/bytedance/sonic/loader/loader_latest.go index 3664c04ba..0534541aa 100644 --- a/vendor/github.com/bytedance/sonic/loader/loader_latest.go +++ b/vendor/github.com/bytedance/sonic/loader/loader_latest.go @@ -19,7 +19,7 @@ package loader import ( - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/rt` ) // LoadFuncs loads only one function as module, and returns the function pointer diff --git a/vendor/github.com/bytedance/sonic/loader/wrapper.go b/vendor/github.com/bytedance/sonic/loader/wrapper.go index 73ebc3518..b581a460f 100644 --- a/vendor/github.com/bytedance/sonic/loader/wrapper.go +++ b/vendor/github.com/bytedance/sonic/loader/wrapper.go @@ -20,8 +20,8 @@ import ( `reflect` `unsafe` - `github.com/bytedance/sonic/internal/abi` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/loader/internal/abi` + `github.com/bytedance/sonic/loader/internal/rt` ) var _C_Redzone = []bool{false, false, false, false} diff --git a/vendor/github.com/bytedance/sonic/unquote/unquote.go b/vendor/github.com/bytedance/sonic/unquote/unquote.go index 23fca736e..d81406b2a 100644 --- a/vendor/github.com/bytedance/sonic/unquote/unquote.go +++ b/vendor/github.com/bytedance/sonic/unquote/unquote.go @@ -25,27 +25,45 @@ import ( `github.com/bytedance/sonic/internal/rt` ) +// String unescapes a escaped string (not including `"` at begining and end) +// It validates invalid UTF8 and replace with `\ufffd` func String(s string) (ret string, err types.ParsingError) { mm := make([]byte, 0, len(s)) - err = intoBytesUnsafe(s, &mm) + err = intoBytesUnsafe(s, &mm, true) ret = rt.Mem2Str(mm) return } +// IntoBytes is same with String besides it output result into a buffer m func IntoBytes(s string, m *[]byte) types.ParsingError { if cap(*m) < len(s) { return types.ERR_EOF } else { - return intoBytesUnsafe(s, m) + return intoBytesUnsafe(s, m, true) } } -func intoBytesUnsafe(s string, m *[]byte) types.ParsingError { +// String unescapes a escaped string (not including `"` at begining and end) +// - replace enables replacing invalid utf8 escaped char with `\uffd` +func _String(s string, replace bool) (ret string, err error) { + mm := make([]byte, 0, len(s)) + err = intoBytesUnsafe(s, &mm, replace) + ret = rt.Mem2Str(mm) + return +} + +func intoBytesUnsafe(s string, m *[]byte, replace bool) types.ParsingError { pos := -1 slv := (*rt.GoSlice)(unsafe.Pointer(m)) str := (*rt.GoString)(unsafe.Pointer(&s)) - /* unquote as the default configuration, replace invalid unicode with \ufffd */ - ret := native.Unquote(str.Ptr, str.Len, slv.Ptr, &pos, types.F_UNICODE_REPLACE) + + flags := uint64(0) + if replace { + /* unquote as the default configuration, replace invalid unicode with \ufffd */ + flags |= types.F_UNICODE_REPLACE + } + + ret := native.Unquote(str.Ptr, str.Len, slv.Ptr, &pos, flags) /* check for errors */ if ret < 0 { @@ -57,3 +75,6 @@ func intoBytesUnsafe(s string, m *[]byte) types.ParsingError { runtime.KeepAlive(s) return 0 } + + + diff --git a/vendor/github.com/chenzhuoyu/base64x/.gitignore b/vendor/github.com/chenzhuoyu/base64x/.gitignore deleted file mode 100644 index a2fd30e98..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -*.o -*.swp -*.swm -*.swn -*.a -*.so -_obj -_test -*.[568vq] -[568vq].out -*.cgo1.go -*.cgo2.c -_cgo_defun.c -_cgo_gotypes.go -_cgo_export.* -_testmain.go -*.exe -*.exe~ -*.test -*.prof -*.rar -*.zip -*.gz -*.psd -*.bmd -*.cfg -*.pptx -*.log -*nohup.out -*settings.pyc -*.sublime-project -*.sublime-workspace -.DS_Store -/.idea/ -/.vscode/ -/output/ -/vendor/ -/Gopkg.lock -/Gopkg.toml -coverage.html -coverage.out -coverage.xml -junit.xml diff --git a/vendor/github.com/chenzhuoyu/base64x/.gitmodules b/vendor/github.com/chenzhuoyu/base64x/.gitmodules deleted file mode 100644 index b8d11c921..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "tools/asm2asm"] - path = tools/asm2asm - url = https://github.com/chenzhuoyu/asm2asm diff --git a/vendor/github.com/chenzhuoyu/base64x/LICENSE b/vendor/github.com/chenzhuoyu/base64x/LICENSE deleted file mode 100644 index 261eeb9e9..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/chenzhuoyu/base64x/Makefile b/vendor/github.com/chenzhuoyu/base64x/Makefile deleted file mode 100644 index a0793f485..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -.PHONY: all clean - -CFLAGS := -mavx -CFLAGS += -mavx2 -CFLAGS += -mno-bmi -CFLAGS += -mno-red-zone -CFLAGS += -fno-asynchronous-unwind-tables -CFLAGS += -fno-stack-protector -CFLAGS += -fno-exceptions -CFLAGS += -fno-builtin -CFLAGS += -fno-rtti -CFLAGS += -nostdlib -CFLAGS += -O3 - -NATIVE_ASM := $(wildcard native/*.S) -NATIVE_SRC := $(wildcard native/*.h) -NATIVE_SRC += $(wildcard native/*.c) - -all: native_amd64.s - -clean: - 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 -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/README.md b/vendor/github.com/chenzhuoyu/base64x/README.md deleted file mode 100644 index 4a3a7c98a..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# base64x - -High performance drop-in replacement of the `encoding/base64` library. - diff --git a/vendor/github.com/chenzhuoyu/base64x/base64x.go b/vendor/github.com/chenzhuoyu/base64x/base64x.go deleted file mode 100644 index f0746fce4..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/base64x.go +++ /dev/null @@ -1,151 +0,0 @@ -package base64x - -import ( - `encoding/base64` -) - -// An Encoding is a radix 64 encoding/decoding scheme, defined by a -// 64-character alphabet. The most common encoding is the "base64" -// encoding defined in RFC 4648 and used in MIME (RFC 2045) and PEM -// (RFC 1421). RFC 4648 also defines an alternate encoding, which is -// the standard encoding with - and _ substituted for + and /. -type Encoding int - -const ( - _MODE_URL = 1 << 0 - _MODE_RAW = 1 << 1 - _MODE_AVX2 = 1 << 2 - _MODE_JSON = 1 << 3 -) - -// StdEncoding is the standard base64 encoding, as defined in -// RFC 4648. -const StdEncoding Encoding = 0 - -// URLEncoding is the alternate base64 encoding defined in RFC 4648. -// It is typically used in URLs and file names. -const URLEncoding Encoding = _MODE_URL - -// RawStdEncoding is the standard raw, unpadded base64 encoding, -// as defined in RFC 4648 section 3.2. -// -// This is the same as StdEncoding but omits padding characters. -const RawStdEncoding Encoding = _MODE_RAW - -// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648. -// It is typically used in URLs and file names. -// -// This is the same as URLEncoding but omits padding characters. -const RawURLEncoding Encoding = _MODE_RAW | _MODE_URL - -// JSONStdEncoding is the StdEncoding and encoded as JSON string as RFC 8259. -const JSONStdEncoding Encoding = _MODE_JSON; - -var ( - archFlags = 0 -) - -/** Encoder Functions **/ - -// Encode encodes src using the specified encoding, writing -// EncodedLen(len(src)) bytes to out. -// -// The encoding pads the output to a multiple of 4 bytes, -// so Encode is not appropriate for use on individual blocks -// of a large data stream. -// -// If out is not large enough to contain the encoded result, -// it will panic. -func (self Encoding) Encode(out []byte, src []byte) { - if len(src) != 0 { - if buf := out[:0:len(out)]; self.EncodedLen(len(src)) <= len(out) { - self.EncodeUnsafe(&buf, src) - } else { - panic("encoder output buffer is too small") - } - } -} - -// EncodeUnsafe behaves like Encode, except it does NOT check if -// out is large enough to contain the encoded result. -// -// It will also update the length of out. -func (self Encoding) EncodeUnsafe(out *[]byte, src []byte) { - b64encode(out, &src, int(self) | archFlags) -} - -// EncodeToString returns the base64 encoding of src. -func (self Encoding) EncodeToString(src []byte) string { - nbs := len(src) - ret := make([]byte, 0, self.EncodedLen(nbs)) - - /* encode in native code */ - self.EncodeUnsafe(&ret, src) - return mem2str(ret) -} - -// EncodedLen returns the length in bytes of the base64 encoding -// of an input buffer of length n. -func (self Encoding) EncodedLen(n int) int { - if (self & _MODE_RAW) == 0 { - return (n + 2) / 3 * 4 - } else { - return (n * 8 + 5) / 6 - } -} - -/** Decoder Functions **/ - -// Decode decodes src using the encoding enc. It writes at most -// DecodedLen(len(src)) bytes to out and returns the number of bytes -// written. If src contains invalid base64 data, it will return the -// number of bytes successfully written and base64.CorruptInputError. -// -// New line characters (\r and \n) are ignored. -// -// If out is not large enough to contain the encoded result, -// it will panic. -func (self Encoding) Decode(out []byte, src []byte) (int, error) { - if len(src) == 0 { - return 0, nil - } else if buf := out[:0:len(out)]; self.DecodedLen(len(src)) <= len(out) { - return self.DecodeUnsafe(&buf, src) - } else { - panic("decoder output buffer is too small") - } -} - -// DecodeUnsafe behaves like Decode, except it does NOT check if -// out is large enough to contain the decoded result. -// -// 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 { - return n, nil - } else { - return 0, base64.CorruptInputError(-n - 1) - } -} - -// DecodeString returns the bytes represented by the base64 string s. -func (self Encoding) DecodeString(s string) ([]byte, error) { - src := str2mem(s) - ret := make([]byte, 0, self.DecodedLen(len(s))) - - /* decode into the allocated buffer */ - if _, err := self.DecodeUnsafe(&ret, src); err != nil { - return nil, err - } else { - return ret, nil - } -} - -// DecodedLen returns the maximum length in bytes of the decoded data -// corresponding to n bytes of base64-encoded data. -func (self Encoding) DecodedLen(n int) int { - if (self & _MODE_RAW) == 0 { - return n / 4 * 3 - } else { - return n * 6 / 8 - } -} diff --git a/vendor/github.com/chenzhuoyu/base64x/cpuid.go b/vendor/github.com/chenzhuoyu/base64x/cpuid.go deleted file mode 100644 index 68ba61331..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/cpuid.go +++ /dev/null @@ -1,17 +0,0 @@ -package base64x - -import ( - `fmt` - `os` - - `github.com/klauspost/cpuid/v2` -) - -func hasAVX2() bool { - switch v := os.Getenv("B64X_MODE"); v { - case "" : fallthrough - case "auto" : return cpuid.CPU.Has(cpuid.AVX2) - case "noavx2" : return false - default : panic(fmt.Sprintf("invalid mode: '%s', should be one of 'auto', 'noavx2'", v)) - } -} diff --git a/vendor/github.com/chenzhuoyu/base64x/faststr.go b/vendor/github.com/chenzhuoyu/base64x/faststr.go deleted file mode 100644 index 7334b063b..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/faststr.go +++ /dev/null @@ -1,35 +0,0 @@ -package base64x - -import ( - `reflect` - `unsafe` -) - -func mem2str(v []byte) (s string) { - (*reflect.StringHeader)(unsafe.Pointer(&s)).Len = (*reflect.SliceHeader)(unsafe.Pointer(&v)).Len - (*reflect.StringHeader)(unsafe.Pointer(&s)).Data = (*reflect.SliceHeader)(unsafe.Pointer(&v)).Data - return -} - -func str2mem(s string) (v []byte) { - (*reflect.SliceHeader)(unsafe.Pointer(&v)).Cap = (*reflect.StringHeader)(unsafe.Pointer(&s)).Len - (*reflect.SliceHeader)(unsafe.Pointer(&v)).Len = (*reflect.StringHeader)(unsafe.Pointer(&s)).Len - (*reflect.SliceHeader)(unsafe.Pointer(&v)).Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data - return -} - -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 deleted file mode 100644 index 39a916123..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/native_amd64.go +++ /dev/null @@ -1,42 +0,0 @@ -//go:generate make -package base64x - -import ( - `unsafe` - - `github.com/bytedance/sonic/loader` -) - -//go:nosplit -func b64encode(out *[]byte, src *[]byte, mode int) { - __b64encode(noEscape(unsafe.Pointer(out)), noEscape(unsafe.Pointer(src)), mode) -} - -//go:nosplit -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_subr_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go deleted file mode 100644 index 3bcb09005..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/native_subr_amd64.go +++ /dev/null @@ -1,63 +0,0 @@ -// +build !noasm !appengine -// Code generated by asm2asm, DO NOT EDIT. - -package base64x - -import ( - `github.com/bytedance/sonic/loader` -) - -const ( - _entry__b64decode = 1328 - _entry__b64encode = 256 -) - -const ( - _stack__b64decode = 152 - _stack__b64encode = 40 -) - -const ( - _size__b64decode = 17616 - _size__b64encode = 864 -) - -var ( - _pcsp__b64decode = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {10, 32}, - {12, 40}, - {13, 48}, - {17560, 152}, - {17564, 48}, - {17565, 40}, - {17567, 32}, - {17569, 24}, - {17571, 16}, - {17573, 8}, - {17577, 0}, - {17608, 152}, - } - _pcsp__b64encode = [][2]uint32{ - {1, 0}, - {4, 8}, - {6, 16}, - {8, 24}, - {10, 32}, - {852, 40}, - {853, 32}, - {855, 24}, - {857, 16}, - {859, 8}, - {864, 0}, - } -) - -var funcs = []loader.CFunc{ - {"__native_entry__", 0, 67, 0, nil}, - {"_b64decode", _entry__b64decode, _size__b64decode, _stack__b64decode, _pcsp__b64decode}, - {"_b64encode", _entry__b64encode, _size__b64encode, _stack__b64encode, _pcsp__b64encode}, -} diff --git a/vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go b/vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go deleted file mode 100644 index fcfb21942..000000000 --- a/vendor/github.com/chenzhuoyu/base64x/native_text_amd64.go +++ /dev/null @@ -1,5305 +0,0 @@ -// +build amd64 -// Code generated by asm2asm, DO NOT EDIT. - -package base64x - -var text__native_entry__ = []byte{ - 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax - 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) - 0xc3, //0x0000000c retq - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000000d .p2align 5, 0x00 - //0x00000020 LCPI0_0 - 0x01, //0x00000020 .byte 1 - 0x00, //0x00000021 .byte 0 - 0x02, //0x00000022 .byte 2 - 0x01, //0x00000023 .byte 1 - 0x04, //0x00000024 .byte 4 - 0x03, //0x00000025 .byte 3 - 0x05, //0x00000026 .byte 5 - 0x04, //0x00000027 .byte 4 - 0x07, //0x00000028 .byte 7 - 0x06, //0x00000029 .byte 6 - 0x08, //0x0000002a .byte 8 - 0x07, //0x0000002b .byte 7 - 0x0a, //0x0000002c .byte 10 - 0x09, //0x0000002d .byte 9 - 0x0b, //0x0000002e .byte 11 - 0x0a, //0x0000002f .byte 10 - 0x01, //0x00000030 .byte 1 - 0x00, //0x00000031 .byte 0 - 0x02, //0x00000032 .byte 2 - 0x01, //0x00000033 .byte 1 - 0x04, //0x00000034 .byte 4 - 0x03, //0x00000035 .byte 3 - 0x05, //0x00000036 .byte 5 - 0x04, //0x00000037 .byte 4 - 0x07, //0x00000038 .byte 7 - 0x06, //0x00000039 .byte 6 - 0x08, //0x0000003a .byte 8 - 0x07, //0x0000003b .byte 7 - 0x0a, //0x0000003c .byte 10 - 0x09, //0x0000003d .byte 9 - 0x0b, //0x0000003e .byte 11 - 0x0a, //0x0000003f .byte 10 - //0x00000040 LCPI0_1 - 0x00, 0xfc, //0x00000040 .word 64512 - 0xc0, 0x0f, //0x00000042 .word 4032 - 0x00, 0xfc, //0x00000044 .word 64512 - 0xc0, 0x0f, //0x00000046 .word 4032 - 0x00, 0xfc, //0x00000048 .word 64512 - 0xc0, 0x0f, //0x0000004a .word 4032 - 0x00, 0xfc, //0x0000004c .word 64512 - 0xc0, 0x0f, //0x0000004e .word 4032 - 0x00, 0xfc, //0x00000050 .word 64512 - 0xc0, 0x0f, //0x00000052 .word 4032 - 0x00, 0xfc, //0x00000054 .word 64512 - 0xc0, 0x0f, //0x00000056 .word 4032 - 0x00, 0xfc, //0x00000058 .word 64512 - 0xc0, 0x0f, //0x0000005a .word 4032 - 0x00, 0xfc, //0x0000005c .word 64512 - 0xc0, 0x0f, //0x0000005e .word 4032 - //0x00000060 LCPI0_2 - 0x40, 0x00, //0x00000060 .word 64 - 0x00, 0x04, //0x00000062 .word 1024 - 0x40, 0x00, //0x00000064 .word 64 - 0x00, 0x04, //0x00000066 .word 1024 - 0x40, 0x00, //0x00000068 .word 64 - 0x00, 0x04, //0x0000006a .word 1024 - 0x40, 0x00, //0x0000006c .word 64 - 0x00, 0x04, //0x0000006e .word 1024 - 0x40, 0x00, //0x00000070 .word 64 - 0x00, 0x04, //0x00000072 .word 1024 - 0x40, 0x00, //0x00000074 .word 64 - 0x00, 0x04, //0x00000076 .word 1024 - 0x40, 0x00, //0x00000078 .word 64 - 0x00, 0x04, //0x0000007a .word 1024 - 0x40, 0x00, //0x0000007c .word 64 - 0x00, 0x04, //0x0000007e .word 1024 - //0x00000080 LCPI0_3 - 0xf0, 0x03, //0x00000080 .word 1008 - 0x3f, 0x00, //0x00000082 .word 63 - 0xf0, 0x03, //0x00000084 .word 1008 - 0x3f, 0x00, //0x00000086 .word 63 - 0xf0, 0x03, //0x00000088 .word 1008 - 0x3f, 0x00, //0x0000008a .word 63 - 0xf0, 0x03, //0x0000008c .word 1008 - 0x3f, 0x00, //0x0000008e .word 63 - 0xf0, 0x03, //0x00000090 .word 1008 - 0x3f, 0x00, //0x00000092 .word 63 - 0xf0, 0x03, //0x00000094 .word 1008 - 0x3f, 0x00, //0x00000096 .word 63 - 0xf0, 0x03, //0x00000098 .word 1008 - 0x3f, 0x00, //0x0000009a .word 63 - 0xf0, 0x03, //0x0000009c .word 1008 - 0x3f, 0x00, //0x0000009e .word 63 - //0x000000a0 LCPI0_4 - 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, //0x000000a0 QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' - 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, //0x000000b0 QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' - //0x000000c0 LCPI0_5 - 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000000c0 QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' - 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000000d0 QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' - //0x000000e0 LCPI0_6 - 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, //0x000000e0 QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' - 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, //0x000000f0 QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' - //0x00000100 .p2align 4, 0x90 - //0x00000100 _b64encode - 0x55, //0x00000100 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000101 movq %rsp, %rbp - 0x41, 0x57, //0x00000104 pushq %r15 - 0x41, 0x56, //0x00000106 pushq %r14 - 0x41, 0x54, //0x00000108 pushq %r12 - 0x53, //0x0000010a pushq %rbx - 0x4c, 0x8b, 0x4e, 0x08, //0x0000010b movq $8(%rsi), %r9 - 0x4d, 0x85, 0xc9, //0x0000010f testq %r9, %r9 - 0x0f, 0x84, 0x3c, 0x03, 0x00, 0x00, //0x00000112 je LBB0_26 - 0x4c, 0x8b, 0x07, //0x00000118 movq (%rdi), %r8 - 0x4c, 0x03, 0x47, 0x08, //0x0000011b addq $8(%rdi), %r8 - 0x4c, 0x8b, 0x26, //0x0000011f movq (%rsi), %r12 - 0x4d, 0x01, 0xe1, //0x00000122 addq %r12, %r9 - 0xf6, 0xc2, 0x01, //0x00000125 testb $1, %dl - 0x48, 0x8d, 0x0d, 0x11, 0x49, 0x00, 0x00, //0x00000128 leaq $18705(%rip), %rcx /* _VecEncodeCharsetStd+0(%rip) */ - 0x4c, 0x8d, 0x15, 0x6a, 0x49, 0x00, 0x00, //0x0000012f leaq $18794(%rip), %r10 /* _VecEncodeCharsetURL+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xd1, //0x00000136 cmoveq %rcx, %r10 - 0x48, 0x8d, 0x0d, 0xbf, 0x48, 0x00, 0x00, //0x0000013a leaq $18623(%rip), %rcx /* _TabEncodeCharsetStd+0(%rip) */ - 0x4c, 0x8d, 0x1d, 0x18, 0x49, 0x00, 0x00, //0x00000141 leaq $18712(%rip), %r11 /* _TabEncodeCharsetURL+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xd9, //0x00000148 cmoveq %rcx, %r11 - 0xf6, 0xc2, 0x04, //0x0000014c testb $4, %dl - 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x0000014f je LBB0_2 - 0x49, 0x8d, 0x71, 0xe4, //0x00000155 leaq $-28(%r9), %rsi - 0x49, 0x39, 0xf4, //0x00000159 cmpq %rsi, %r12 - 0x0f, 0x87, 0x4e, 0x02, 0x00, 0x00, //0x0000015c ja LBB0_4 - 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x00000162 vmovdqu (%r10), %ymm0 - 0xc5, 0xfd, 0x6f, 0x0d, 0xb1, 0xfe, 0xff, 0xff, //0x00000167 vmovdqa $-335(%rip), %ymm1 /* LCPI0_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0xc9, 0xfe, 0xff, 0xff, //0x0000016f vmovdqa $-311(%rip), %ymm2 /* LCPI0_1+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x1d, 0xe1, 0xfe, 0xff, 0xff, //0x00000177 vmovdqa $-287(%rip), %ymm3 /* LCPI0_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x25, 0xf9, 0xfe, 0xff, 0xff, //0x0000017f vmovdqa $-263(%rip), %ymm4 /* LCPI0_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0x11, 0xff, 0xff, 0xff, //0x00000187 vmovdqa $-239(%rip), %ymm5 /* LCPI0_4+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0x29, 0xff, 0xff, 0xff, //0x0000018f vmovdqa $-215(%rip), %ymm6 /* LCPI0_5+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x3d, 0x41, 0xff, 0xff, 0xff, //0x00000197 vmovdqa $-191(%rip), %ymm7 /* LCPI0_6+0(%rip) */ - 0x4d, 0x89, 0xc6, //0x0000019f movq %r8, %r14 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001a2 .p2align 4, 0x90 - //0x000001b0 LBB0_6 - 0xc4, 0x41, 0x7a, 0x6f, 0x04, 0x24, //0x000001b0 vmovdqu (%r12), %xmm8 - 0xc4, 0x43, 0x3d, 0x38, 0x44, 0x24, 0x0c, 0x01, //0x000001b6 vinserti128 $1, $12(%r12), %ymm8, %ymm8 - 0xc4, 0x62, 0x3d, 0x00, 0xc1, //0x000001be vpshufb %ymm1, %ymm8, %ymm8 - 0xc5, 0x3d, 0xdb, 0xca, //0x000001c3 vpand %ymm2, %ymm8, %ymm9 - 0xc5, 0x35, 0xe4, 0xcb, //0x000001c7 vpmulhuw %ymm3, %ymm9, %ymm9 - 0xc5, 0x3d, 0xdb, 0xc4, //0x000001cb vpand %ymm4, %ymm8, %ymm8 - 0xc4, 0xc1, 0x2d, 0x71, 0xf0, 0x08, //0x000001cf vpsllw $8, %ymm8, %ymm10 - 0xc4, 0xc1, 0x3d, 0x71, 0xf0, 0x04, //0x000001d5 vpsllw $4, %ymm8, %ymm8 - 0xc4, 0x43, 0x3d, 0x0e, 0xc2, 0xaa, //0x000001db vpblendw $170, %ymm10, %ymm8, %ymm8 - 0xc4, 0x41, 0x3d, 0xeb, 0xc1, //0x000001e1 vpor %ymm9, %ymm8, %ymm8 - 0xc4, 0x41, 0x55, 0x64, 0xc8, //0x000001e6 vpcmpgtb %ymm8, %ymm5, %ymm9 - 0xc5, 0x35, 0xdb, 0xcf, //0x000001eb vpand %ymm7, %ymm9, %ymm9 - 0xc5, 0x3d, 0xd8, 0xd6, //0x000001ef vpsubusb %ymm6, %ymm8, %ymm10 - 0xc4, 0x41, 0x35, 0xeb, 0xca, //0x000001f3 vpor %ymm10, %ymm9, %ymm9 - 0xc4, 0x42, 0x7d, 0x00, 0xc9, //0x000001f8 vpshufb %ymm9, %ymm0, %ymm9 - 0xc4, 0x41, 0x35, 0xfc, 0xc0, //0x000001fd vpaddb %ymm8, %ymm9, %ymm8 - 0xc4, 0x41, 0x7e, 0x7f, 0x06, //0x00000202 vmovdqu %ymm8, (%r14) - 0x49, 0x83, 0xc6, 0x20, //0x00000207 addq $32, %r14 - 0x49, 0x83, 0xc4, 0x18, //0x0000020b addq $24, %r12 - 0x49, 0x39, 0xf4, //0x0000020f cmpq %rsi, %r12 - 0x0f, 0x86, 0x98, 0xff, 0xff, 0xff, //0x00000212 jbe LBB0_6 - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00000218 jmp LBB0_7 - //0x0000021d LBB0_2 - 0x4d, 0x89, 0xc6, //0x0000021d movq %r8, %r14 - //0x00000220 LBB0_7 - 0x49, 0x8d, 0x71, 0xe8, //0x00000220 leaq $-24(%r9), %rsi - 0x49, 0x39, 0xf4, //0x00000224 cmpq %rsi, %r12 - 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00000227 ja LBB0_10 - //0x0000022d LBB0_8 - 0x89, 0xd6, //0x0000022d movl %edx, %esi - 0x83, 0xe6, 0x04, //0x0000022f andl $4, %esi - 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000232 je LBB0_10 - 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00000238 vmovdqu (%r12), %xmm0 - 0xc4, 0xc1, 0x7a, 0x6f, 0x4c, 0x24, 0x08, //0x0000023e vmovdqu $8(%r12), %xmm1 - 0xc5, 0xf1, 0x73, 0xd9, 0x04, //0x00000245 vpsrldq $4, %xmm1, %xmm1 - 0xc4, 0xe3, 0x7d, 0x38, 0xc1, 0x01, //0x0000024a vinserti128 $1, %xmm1, %ymm0, %ymm0 - 0xc4, 0xe2, 0x7d, 0x00, 0x05, 0xc7, 0xfd, 0xff, 0xff, //0x00000250 vpshufb $-569(%rip), %ymm0, %ymm0 /* LCPI0_0+0(%rip) */ - 0xc5, 0xfd, 0xdb, 0x0d, 0xdf, 0xfd, 0xff, 0xff, //0x00000259 vpand $-545(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ - 0xc5, 0xf5, 0xe4, 0x0d, 0xf7, 0xfd, 0xff, 0xff, //0x00000261 vpmulhuw $-521(%rip), %ymm1, %ymm1 /* LCPI0_2+0(%rip) */ - 0xc5, 0xfd, 0xdb, 0x05, 0x0f, 0xfe, 0xff, 0xff, //0x00000269 vpand $-497(%rip), %ymm0, %ymm0 /* LCPI0_3+0(%rip) */ - 0xc5, 0xed, 0x71, 0xf0, 0x08, //0x00000271 vpsllw $8, %ymm0, %ymm2 - 0xc5, 0xfd, 0x71, 0xf0, 0x04, //0x00000276 vpsllw $4, %ymm0, %ymm0 - 0xc4, 0xe3, 0x7d, 0x0e, 0xc2, 0xaa, //0x0000027b vpblendw $170, %ymm2, %ymm0, %ymm0 - 0xc5, 0xfd, 0xeb, 0xc1, //0x00000281 vpor %ymm1, %ymm0, %ymm0 - 0xc5, 0xfd, 0x6f, 0x0d, 0x13, 0xfe, 0xff, 0xff, //0x00000285 vmovdqa $-493(%rip), %ymm1 /* LCPI0_4+0(%rip) */ - 0xc5, 0xf5, 0x64, 0xc8, //0x0000028d vpcmpgtb %ymm0, %ymm1, %ymm1 - 0xc4, 0xc1, 0x7e, 0x6f, 0x12, //0x00000291 vmovdqu (%r10), %ymm2 - 0xc5, 0xfd, 0xd8, 0x1d, 0x22, 0xfe, 0xff, 0xff, //0x00000296 vpsubusb $-478(%rip), %ymm0, %ymm3 /* LCPI0_5+0(%rip) */ - 0xc5, 0xf5, 0xdb, 0x0d, 0x3a, 0xfe, 0xff, 0xff, //0x0000029e vpand $-454(%rip), %ymm1, %ymm1 /* LCPI0_6+0(%rip) */ - 0xc5, 0xf5, 0xeb, 0xcb, //0x000002a6 vpor %ymm3, %ymm1, %ymm1 - 0xc4, 0xe2, 0x6d, 0x00, 0xc9, //0x000002aa vpshufb %ymm1, %ymm2, %ymm1 - 0xc5, 0xf5, 0xfc, 0xc0, //0x000002af vpaddb %ymm0, %ymm1, %ymm0 - 0xc4, 0xc1, 0x7e, 0x7f, 0x06, //0x000002b3 vmovdqu %ymm0, (%r14) - 0x49, 0x83, 0xc6, 0x20, //0x000002b8 addq $32, %r14 - 0x49, 0x83, 0xc4, 0x18, //0x000002bc addq $24, %r12 - //0x000002c0 LBB0_10 - 0x4d, 0x39, 0xcc, //0x000002c0 cmpq %r9, %r12 - 0x0f, 0x84, 0x84, 0x01, 0x00, 0x00, //0x000002c3 je LBB0_25 - 0x4d, 0x8d, 0x51, 0xfc, //0x000002c9 leaq $-4(%r9), %r10 - 0x4d, 0x39, 0xd4, //0x000002cd cmpq %r10, %r12 - 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000002d0 ja LBB0_14 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d6 .p2align 4, 0x90 - //0x000002e0 LBB0_12 - 0x41, 0x8b, 0x34, 0x24, //0x000002e0 movl (%r12), %esi - 0x0f, 0xce, //0x000002e4 bswapl %esi - 0x49, 0x89, 0xf7, //0x000002e6 movq %rsi, %r15 - 0x49, 0xc1, 0xef, 0x1a, //0x000002e9 shrq $26, %r15 - 0x89, 0xf1, //0x000002ed movl %esi, %ecx - 0xc1, 0xe9, 0x14, //0x000002ef shrl $20, %ecx - 0x83, 0xe1, 0x3f, //0x000002f2 andl $63, %ecx - 0x89, 0xf3, //0x000002f5 movl %esi, %ebx - 0xc1, 0xeb, 0x0e, //0x000002f7 shrl $14, %ebx - 0x83, 0xe3, 0x3f, //0x000002fa andl $63, %ebx - 0xc1, 0xee, 0x08, //0x000002fd shrl $8, %esi - 0x83, 0xe6, 0x3f, //0x00000300 andl $63, %esi - 0x49, 0x83, 0xc4, 0x03, //0x00000303 addq $3, %r12 - 0x43, 0x0f, 0xb6, 0x04, 0x3b, //0x00000307 movzbl (%r11,%r15), %eax - 0x41, 0x88, 0x06, //0x0000030c movb %al, (%r14) - 0x41, 0x0f, 0xb6, 0x04, 0x0b, //0x0000030f movzbl (%r11,%rcx), %eax - 0x41, 0x88, 0x46, 0x01, //0x00000314 movb %al, $1(%r14) - 0x41, 0x0f, 0xb6, 0x04, 0x1b, //0x00000318 movzbl (%r11,%rbx), %eax - 0x41, 0x88, 0x46, 0x02, //0x0000031d movb %al, $2(%r14) - 0x41, 0x0f, 0xb6, 0x04, 0x33, //0x00000321 movzbl (%r11,%rsi), %eax - 0x41, 0x88, 0x46, 0x03, //0x00000326 movb %al, $3(%r14) - 0x49, 0x83, 0xc6, 0x04, //0x0000032a addq $4, %r14 - 0x4d, 0x39, 0xd4, //0x0000032e cmpq %r10, %r12 - 0x0f, 0x86, 0xa9, 0xff, 0xff, 0xff, //0x00000331 jbe LBB0_12 - //0x00000337 LBB0_14 - 0x4d, 0x29, 0xe1, //0x00000337 subq %r12, %r9 - 0x45, 0x0f, 0xb6, 0x14, 0x24, //0x0000033a movzbl (%r12), %r10d - 0x49, 0x83, 0xf9, 0x01, //0x0000033f cmpq $1, %r9 - 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, //0x00000343 je LBB0_21 - 0x4c, 0x89, 0xd6, //0x00000349 movq %r10, %rsi - 0x48, 0xc1, 0xe6, 0x10, //0x0000034c shlq $16, %rsi - 0x49, 0x83, 0xf9, 0x02, //0x00000350 cmpq $2, %r9 - 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00000354 je LBB0_18 - 0x49, 0x83, 0xf9, 0x03, //0x0000035a cmpq $3, %r9 - 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x0000035e jne LBB0_25 - 0x41, 0x0f, 0xb6, 0x54, 0x24, 0x02, //0x00000364 movzbl $2(%r12), %edx - 0x09, 0xd6, //0x0000036a orl %edx, %esi - 0x41, 0x0f, 0xb6, 0x44, 0x24, 0x01, //0x0000036c movzbl $1(%r12), %eax - 0xc1, 0xe0, 0x08, //0x00000372 shll $8, %eax - 0x09, 0xf0, //0x00000375 orl %esi, %eax - 0x49, 0xc1, 0xea, 0x02, //0x00000377 shrq $2, %r10 - 0x43, 0x8a, 0x0c, 0x13, //0x0000037b movb (%r11,%r10), %cl - 0x41, 0x88, 0x0e, //0x0000037f movb %cl, (%r14) - 0x89, 0xc1, //0x00000382 movl %eax, %ecx - 0xc1, 0xe9, 0x0c, //0x00000384 shrl $12, %ecx - 0x83, 0xe1, 0x3f, //0x00000387 andl $63, %ecx - 0x41, 0x8a, 0x0c, 0x0b, //0x0000038a movb (%r11,%rcx), %cl - 0x41, 0x88, 0x4e, 0x01, //0x0000038e movb %cl, $1(%r14) - 0xc1, 0xe8, 0x06, //0x00000392 shrl $6, %eax - 0x83, 0xe0, 0x3f, //0x00000395 andl $63, %eax - 0x41, 0x8a, 0x04, 0x03, //0x00000398 movb (%r11,%rax), %al - 0x41, 0x88, 0x46, 0x02, //0x0000039c movb %al, $2(%r14) - 0x83, 0xe2, 0x3f, //0x000003a0 andl $63, %edx - 0x41, 0x8a, 0x04, 0x13, //0x000003a3 movb (%r11,%rdx), %al - 0x41, 0x88, 0x46, 0x03, //0x000003a7 movb %al, $3(%r14) - 0xe9, 0x87, 0x00, 0x00, 0x00, //0x000003ab jmp LBB0_24 - //0x000003b0 LBB0_4 - 0x4d, 0x89, 0xc6, //0x000003b0 movq %r8, %r14 - 0x49, 0x8d, 0x71, 0xe8, //0x000003b3 leaq $-24(%r9), %rsi - 0x49, 0x39, 0xf4, //0x000003b7 cmpq %rsi, %r12 - 0x0f, 0x86, 0x6d, 0xfe, 0xff, 0xff, //0x000003ba jbe LBB0_8 - 0xe9, 0xfb, 0xfe, 0xff, 0xff, //0x000003c0 jmp LBB0_10 - //0x000003c5 LBB0_18 - 0x41, 0x0f, 0xb6, 0x44, 0x24, 0x01, //0x000003c5 movzbl $1(%r12), %eax - 0x89, 0xc1, //0x000003cb movl %eax, %ecx - 0xc1, 0xe1, 0x08, //0x000003cd shll $8, %ecx - 0x09, 0xf1, //0x000003d0 orl %esi, %ecx - 0x49, 0xc1, 0xea, 0x02, //0x000003d2 shrq $2, %r10 - 0x43, 0x8a, 0x1c, 0x13, //0x000003d6 movb (%r11,%r10), %bl - 0x41, 0x88, 0x1e, //0x000003da movb %bl, (%r14) - 0xc1, 0xe9, 0x0c, //0x000003dd shrl $12, %ecx - 0x83, 0xe1, 0x3f, //0x000003e0 andl $63, %ecx - 0x41, 0x8a, 0x0c, 0x0b, //0x000003e3 movb (%r11,%rcx), %cl - 0x41, 0x88, 0x4e, 0x01, //0x000003e7 movb %cl, $1(%r14) - 0x83, 0xe0, 0x0f, //0x000003eb andl $15, %eax - 0x41, 0x8a, 0x04, 0x83, //0x000003ee movb (%r11,%rax,4), %al - 0x41, 0x88, 0x46, 0x02, //0x000003f2 movb %al, $2(%r14) - 0xf6, 0xc2, 0x02, //0x000003f6 testb $2, %dl - 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x000003f9 jne LBB0_19 - 0x41, 0xc6, 0x46, 0x03, 0x3d, //0x000003ff movb $61, $3(%r14) - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000404 jmp LBB0_24 - //0x00000409 LBB0_21 - 0x4c, 0x89, 0xd0, //0x00000409 movq %r10, %rax - 0x48, 0xc1, 0xe8, 0x02, //0x0000040c shrq $2, %rax - 0x41, 0x8a, 0x04, 0x03, //0x00000410 movb (%r11,%rax), %al - 0x41, 0x88, 0x06, //0x00000414 movb %al, (%r14) - 0x41, 0xc1, 0xe2, 0x04, //0x00000417 shll $4, %r10d - 0x41, 0x83, 0xe2, 0x30, //0x0000041b andl $48, %r10d - 0x43, 0x8a, 0x04, 0x13, //0x0000041f movb (%r11,%r10), %al - 0x41, 0x88, 0x46, 0x01, //0x00000423 movb %al, $1(%r14) - 0xf6, 0xc2, 0x02, //0x00000427 testb $2, %dl - 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x0000042a jne LBB0_22 - 0x66, 0x41, 0xc7, 0x46, 0x02, 0x3d, 0x3d, //0x00000430 movw $15677, $2(%r14) - //0x00000437 LBB0_24 - 0x49, 0x83, 0xc6, 0x04, //0x00000437 addq $4, %r14 - 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000043b jmp LBB0_25 - //0x00000440 LBB0_19 - 0x49, 0x83, 0xc6, 0x03, //0x00000440 addq $3, %r14 - 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00000444 jmp LBB0_25 - //0x00000449 LBB0_22 - 0x49, 0x83, 0xc6, 0x02, //0x00000449 addq $2, %r14 - //0x0000044d LBB0_25 - 0x4d, 0x29, 0xc6, //0x0000044d subq %r8, %r14 - 0x4c, 0x01, 0x77, 0x08, //0x00000450 addq %r14, $8(%rdi) - //0x00000454 LBB0_26 - 0x5b, //0x00000454 popq %rbx - 0x41, 0x5c, //0x00000455 popq %r12 - 0x41, 0x5e, //0x00000457 popq %r14 - 0x41, 0x5f, //0x00000459 popq %r15 - 0x5d, //0x0000045b popq %rbp - 0xc5, 0xf8, 0x77, //0x0000045c vzeroupper - 0xc3, //0x0000045f retq - //0x00000460 .p2align 5, 0x00 - //0x00000460 LCPI1_0 - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000460 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000470 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' - //0x00000480 LCPI1_1 - 0x01, //0x00000480 .byte 1 - 0x02, //0x00000481 .byte 2 - 0x04, //0x00000482 .byte 4 - 0x08, //0x00000483 .byte 8 - 0x10, //0x00000484 .byte 16 - 0x20, //0x00000485 .byte 32 - 0x40, //0x00000486 .byte 64 - 0x80, //0x00000487 .byte 128 - 0x00, //0x00000488 .byte 0 - 0x00, //0x00000489 .byte 0 - 0x00, //0x0000048a .byte 0 - 0x00, //0x0000048b .byte 0 - 0x00, //0x0000048c .byte 0 - 0x00, //0x0000048d .byte 0 - 0x00, //0x0000048e .byte 0 - 0x00, //0x0000048f .byte 0 - 0x01, //0x00000490 .byte 1 - 0x02, //0x00000491 .byte 2 - 0x04, //0x00000492 .byte 4 - 0x08, //0x00000493 .byte 8 - 0x10, //0x00000494 .byte 16 - 0x20, //0x00000495 .byte 32 - 0x40, //0x00000496 .byte 64 - 0x80, //0x00000497 .byte 128 - 0x00, //0x00000498 .byte 0 - 0x00, //0x00000499 .byte 0 - 0x00, //0x0000049a .byte 0 - 0x00, //0x0000049b .byte 0 - 0x00, //0x0000049c .byte 0 - 0x00, //0x0000049d .byte 0 - 0x00, //0x0000049e .byte 0 - 0x00, //0x0000049f .byte 0 - //0x000004a0 LCPI1_2 - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, //0x000004a0 QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' - 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, //0x000004b0 QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' - //0x000004c0 LCPI1_3 - 0x40, //0x000004c0 .byte 64 - 0x01, //0x000004c1 .byte 1 - 0x40, //0x000004c2 .byte 64 - 0x01, //0x000004c3 .byte 1 - 0x40, //0x000004c4 .byte 64 - 0x01, //0x000004c5 .byte 1 - 0x40, //0x000004c6 .byte 64 - 0x01, //0x000004c7 .byte 1 - 0x40, //0x000004c8 .byte 64 - 0x01, //0x000004c9 .byte 1 - 0x40, //0x000004ca .byte 64 - 0x01, //0x000004cb .byte 1 - 0x40, //0x000004cc .byte 64 - 0x01, //0x000004cd .byte 1 - 0x40, //0x000004ce .byte 64 - 0x01, //0x000004cf .byte 1 - 0x40, //0x000004d0 .byte 64 - 0x01, //0x000004d1 .byte 1 - 0x40, //0x000004d2 .byte 64 - 0x01, //0x000004d3 .byte 1 - 0x40, //0x000004d4 .byte 64 - 0x01, //0x000004d5 .byte 1 - 0x40, //0x000004d6 .byte 64 - 0x01, //0x000004d7 .byte 1 - 0x40, //0x000004d8 .byte 64 - 0x01, //0x000004d9 .byte 1 - 0x40, //0x000004da .byte 64 - 0x01, //0x000004db .byte 1 - 0x40, //0x000004dc .byte 64 - 0x01, //0x000004dd .byte 1 - 0x40, //0x000004de .byte 64 - 0x01, //0x000004df .byte 1 - //0x000004e0 LCPI1_4 - 0x00, 0x10, //0x000004e0 .word 4096 - 0x01, 0x00, //0x000004e2 .word 1 - 0x00, 0x10, //0x000004e4 .word 4096 - 0x01, 0x00, //0x000004e6 .word 1 - 0x00, 0x10, //0x000004e8 .word 4096 - 0x01, 0x00, //0x000004ea .word 1 - 0x00, 0x10, //0x000004ec .word 4096 - 0x01, 0x00, //0x000004ee .word 1 - 0x00, 0x10, //0x000004f0 .word 4096 - 0x01, 0x00, //0x000004f2 .word 1 - 0x00, 0x10, //0x000004f4 .word 4096 - 0x01, 0x00, //0x000004f6 .word 1 - 0x00, 0x10, //0x000004f8 .word 4096 - 0x01, 0x00, //0x000004fa .word 1 - 0x00, 0x10, //0x000004fc .word 4096 - 0x01, 0x00, //0x000004fe .word 1 - //0x00000500 LCPI1_6 - 0x02, //0x00000500 .byte 2 - 0x01, //0x00000501 .byte 1 - 0x00, //0x00000502 .byte 0 - 0x06, //0x00000503 .byte 6 - 0x05, //0x00000504 .byte 5 - 0x04, //0x00000505 .byte 4 - 0x0a, //0x00000506 .byte 10 - 0x09, //0x00000507 .byte 9 - 0x08, //0x00000508 .byte 8 - 0x0e, //0x00000509 .byte 14 - 0x0d, //0x0000050a .byte 13 - 0x0c, //0x0000050b .byte 12 - 0x00, //0x0000050c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000050d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000050e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000050f BYTE $0x00 // .space 1, '\x00' - 0x05, //0x00000510 .byte 5 - 0x04, //0x00000511 .byte 4 - 0x0a, //0x00000512 .byte 10 - 0x09, //0x00000513 .byte 9 - 0x08, //0x00000514 .byte 8 - 0x0e, //0x00000515 .byte 14 - 0x0d, //0x00000516 .byte 13 - 0x0c, //0x00000517 .byte 12 - 0x00, //0x00000518 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000519 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000051a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000051b BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000051c BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000051d BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000051e BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000051f BYTE $0x00 // .space 1, '\x00' - //0x00000520 .p2align 4, 0x00 - //0x00000520 LCPI1_5 - 0x00, //0x00000520 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000521 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000522 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000523 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000524 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000525 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000526 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000527 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000528 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x00000529 BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000052a BYTE $0x00 // .space 1, '\x00' - 0x00, //0x0000052b BYTE $0x00 // .space 1, '\x00' - 0x02, //0x0000052c .byte 2 - 0x01, //0x0000052d .byte 1 - 0x00, //0x0000052e .byte 0 - 0x06, //0x0000052f .byte 6 - //0x00000530 .p2align 4, 0x90 - //0x00000530 _b64decode - 0x55, //0x00000530 pushq %rbp - 0x48, 0x89, 0xe5, //0x00000531 movq %rsp, %rbp - 0x41, 0x57, //0x00000534 pushq %r15 - 0x41, 0x56, //0x00000536 pushq %r14 - 0x41, 0x55, //0x00000538 pushq %r13 - 0x41, 0x54, //0x0000053a pushq %r12 - 0x53, //0x0000053c pushq %rbx - 0x48, 0x83, 0xec, 0x68, //0x0000053d subq $104, %rsp - 0x48, 0x85, 0xd2, //0x00000541 testq %rdx, %rdx - 0x0f, 0x84, 0x3e, 0x11, 0x00, 0x00, //0x00000544 je LBB1_282 - 0x48, 0x8b, 0x1f, //0x0000054a movq (%rdi), %rbx - 0x48, 0x8b, 0x47, 0x08, //0x0000054d movq $8(%rdi), %rax - 0x48, 0x01, 0xd8, //0x00000551 addq %rbx, %rax - 0x48, 0x89, 0xbd, 0x70, 0xff, 0xff, 0xff, //0x00000554 movq %rdi, $-144(%rbp) - 0x48, 0x03, 0x5f, 0x10, //0x0000055b addq $16(%rdi), %rbx - 0x48, 0x89, 0x5d, 0x90, //0x0000055f movq %rbx, $-112(%rbp) - 0x48, 0x89, 0x55, 0x88, //0x00000563 movq %rdx, $-120(%rbp) - 0x48, 0x8d, 0x1c, 0x16, //0x00000567 leaq (%rsi,%rdx), %rbx - 0xf6, 0xc1, 0x01, //0x0000056b testb $1, %cl - 0x48, 0x8d, 0x15, 0xcb, 0x45, 0x00, 0x00, //0x0000056e leaq $17867(%rip), %rdx /* _VecDecodeCharsetStd+0(%rip) */ - 0x48, 0x8d, 0x3d, 0x44, 0x47, 0x00, 0x00, //0x00000575 leaq $18244(%rip), %rdi /* _VecDecodeCharsetURL+0(%rip) */ - 0x48, 0x0f, 0x44, 0xfa, //0x0000057c cmoveq %rdx, %rdi - 0x48, 0x89, 0x7d, 0xc0, //0x00000580 movq %rdi, $-64(%rbp) - 0x48, 0x8d, 0x15, 0x35, 0x45, 0x00, 0x00, //0x00000584 leaq $17717(%rip), %rdx /* _VecDecodeTableStd+0(%rip) */ - 0x4c, 0x8d, 0x0d, 0xae, 0x46, 0x00, 0x00, //0x0000058b leaq $18094(%rip), %r9 /* _VecDecodeTableURL+0(%rip) */ - 0x4c, 0x0f, 0x44, 0xca, //0x00000592 cmoveq %rdx, %r9 - 0x48, 0x89, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000596 movq %rax, $-136(%rbp) - 0x48, 0x89, 0x45, 0xb0, //0x0000059d movq %rax, $-80(%rbp) - 0x48, 0x89, 0x75, 0xa8, //0x000005a1 movq %rsi, $-88(%rbp) - 0x49, 0x89, 0xf7, //0x000005a5 movq %rsi, %r15 - 0x89, 0x4d, 0xbc, //0x000005a8 movl %ecx, $-68(%rbp) - 0xf6, 0xc1, 0x04, //0x000005ab testb $4, %cl - 0x48, 0x89, 0x5d, 0xd0, //0x000005ae movq %rbx, $-48(%rbp) - 0x0f, 0x85, 0xd7, 0x10, 0x00, 0x00, //0x000005b2 jne LBB1_283 - //0x000005b8 LBB1_2 - 0x48, 0x8b, 0x45, 0x90, //0x000005b8 movq $-112(%rbp), %rax - 0x48, 0x83, 0xc0, 0xf8, //0x000005bc addq $-8, %rax - 0x48, 0x89, 0x45, 0xc8, //0x000005c0 movq %rax, $-56(%rbp) - 0x48, 0x3b, 0x45, 0xb0, //0x000005c4 cmpq $-80(%rbp), %rax - 0x0f, 0x82, 0xfe, 0x22, 0x00, 0x00, //0x000005c8 jb LBB1_574 - 0x48, 0x8d, 0x43, 0xf8, //0x000005ce leaq $-8(%rbx), %rax - 0x48, 0x89, 0x45, 0xa0, //0x000005d2 movq %rax, $-96(%rbp) - 0x4c, 0x39, 0xf8, //0x000005d6 cmpq %r15, %rax - 0x0f, 0x82, 0xed, 0x22, 0x00, 0x00, //0x000005d9 jb LBB1_574 - 0x48, 0x8b, 0x45, 0xa8, //0x000005df movq $-88(%rbp), %rax - 0x48, 0x8b, 0x4d, 0x88, //0x000005e3 movq $-120(%rbp), %rcx - 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x000005e7 leaq $-2(%rcx,%rax), %rdx - 0x48, 0x89, 0x55, 0x80, //0x000005ec movq %rdx, $-128(%rbp) - 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x000005f0 leaq $-3(%rcx,%rax), %rax - 0x48, 0x89, 0x45, 0x98, //0x000005f5 movq %rax, $-104(%rbp) - 0x4d, 0x89, 0xf9, //0x000005f9 movq %r15, %r9 - 0xe9, 0x71, 0x00, 0x00, 0x00, //0x000005fc jmp LBB1_5 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000601 .p2align 4, 0x90 - //0x00000610 LBB1_6 - 0x49, 0xc1, 0xe3, 0x3a, //0x00000610 shlq $58, %r11 - 0x49, 0xc1, 0xe0, 0x34, //0x00000614 shlq $52, %r8 - 0x4d, 0x09, 0xd8, //0x00000618 orq %r11, %r8 - 0x49, 0xc1, 0xe6, 0x2e, //0x0000061b shlq $46, %r14 - 0x48, 0xc1, 0xe1, 0x28, //0x0000061f shlq $40, %rcx - 0x4c, 0x09, 0xf1, //0x00000623 orq %r14, %rcx - 0x4c, 0x09, 0xc1, //0x00000626 orq %r8, %rcx - 0x49, 0xc1, 0xe2, 0x22, //0x00000629 shlq $34, %r10 - 0x48, 0xc1, 0xe6, 0x1c, //0x0000062d shlq $28, %rsi - 0x4c, 0x09, 0xd6, //0x00000631 orq %r10, %rsi - 0x48, 0xc1, 0xe3, 0x16, //0x00000634 shlq $22, %rbx - 0x48, 0x09, 0xf3, //0x00000638 orq %rsi, %rbx - 0x48, 0x09, 0xcb, //0x0000063b orq %rcx, %rbx - 0x48, 0xc1, 0xe0, 0x10, //0x0000063e shlq $16, %rax - 0x48, 0x09, 0xd8, //0x00000642 orq %rbx, %rax - 0x48, 0x0f, 0xc8, //0x00000645 bswapq %rax - 0x48, 0x8b, 0x4d, 0xb0, //0x00000648 movq $-80(%rbp), %rcx - 0x48, 0x89, 0x01, //0x0000064c movq %rax, (%rcx) - 0x49, 0x83, 0xc1, 0x08, //0x0000064f addq $8, %r9 - 0x48, 0x83, 0xc1, 0x06, //0x00000653 addq $6, %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x00000657 movq %rcx, $-80(%rbp) - 0x48, 0x39, 0x4d, 0xc8, //0x0000065b cmpq %rcx, $-56(%rbp) - 0x0f, 0x82, 0x81, 0x22, 0x00, 0x00, //0x0000065f jb LBB1_572 - //0x00000665 LBB1_223 - 0x4d, 0x89, 0xcf, //0x00000665 movq %r9, %r15 - 0x4c, 0x39, 0x4d, 0xa0, //0x00000668 cmpq %r9, $-96(%rbp) - 0x0f, 0x82, 0x74, 0x22, 0x00, 0x00, //0x0000066c jb LBB1_572 - //0x00000672 LBB1_5 - 0x41, 0x0f, 0xb6, 0x01, //0x00000672 movzbl (%r9), %eax - 0x48, 0x8b, 0x55, 0xc0, //0x00000676 movq $-64(%rbp), %rdx - 0x44, 0x0f, 0xb6, 0x1c, 0x02, //0x0000067a movzbl (%rdx,%rax), %r11d - 0x41, 0x0f, 0xb6, 0x41, 0x01, //0x0000067f movzbl $1(%r9), %eax - 0x44, 0x0f, 0xb6, 0x04, 0x02, //0x00000684 movzbl (%rdx,%rax), %r8d - 0x41, 0x0f, 0xb6, 0x41, 0x02, //0x00000689 movzbl $2(%r9), %eax - 0x44, 0x0f, 0xb6, 0x34, 0x02, //0x0000068e movzbl (%rdx,%rax), %r14d - 0x41, 0x0f, 0xb6, 0x41, 0x03, //0x00000693 movzbl $3(%r9), %eax - 0x0f, 0xb6, 0x0c, 0x02, //0x00000698 movzbl (%rdx,%rax), %ecx - 0x41, 0x0f, 0xb6, 0x41, 0x04, //0x0000069c movzbl $4(%r9), %eax - 0x44, 0x0f, 0xb6, 0x14, 0x02, //0x000006a1 movzbl (%rdx,%rax), %r10d - 0x41, 0x0f, 0xb6, 0x41, 0x05, //0x000006a6 movzbl $5(%r9), %eax - 0x0f, 0xb6, 0x34, 0x02, //0x000006ab movzbl (%rdx,%rax), %esi - 0x41, 0x0f, 0xb6, 0x41, 0x06, //0x000006af movzbl $6(%r9), %eax - 0x0f, 0xb6, 0x1c, 0x02, //0x000006b4 movzbl (%rdx,%rax), %ebx - 0x41, 0x0f, 0xb6, 0x41, 0x07, //0x000006b8 movzbl $7(%r9), %eax - 0x0f, 0xb6, 0x04, 0x02, //0x000006bd movzbl (%rdx,%rax), %eax - 0x45, 0x89, 0xc5, //0x000006c1 movl %r8d, %r13d - 0x45, 0x09, 0xdd, //0x000006c4 orl %r11d, %r13d - 0x41, 0x89, 0xcc, //0x000006c7 movl %ecx, %r12d - 0x45, 0x09, 0xf4, //0x000006ca orl %r14d, %r12d - 0x45, 0x09, 0xec, //0x000006cd orl %r13d, %r12d - 0x89, 0xf7, //0x000006d0 movl %esi, %edi - 0x44, 0x09, 0xd7, //0x000006d2 orl %r10d, %edi - 0x89, 0xda, //0x000006d5 movl %ebx, %edx - 0x09, 0xfa, //0x000006d7 orl %edi, %edx - 0x44, 0x09, 0xe2, //0x000006d9 orl %r12d, %edx - 0x89, 0xc7, //0x000006dc movl %eax, %edi - 0x09, 0xd7, //0x000006de orl %edx, %edi - 0x40, 0x80, 0xff, 0xff, //0x000006e0 cmpb $-1, %dil - 0x0f, 0x85, 0x26, 0xff, 0xff, 0xff, //0x000006e4 jne LBB1_6 - 0x48, 0x8b, 0x5d, 0xd0, //0x000006ea movq $-48(%rbp), %rbx - 0x4c, 0x39, 0xcb, //0x000006ee cmpq %r9, %rbx - 0x44, 0x8b, 0x55, 0xbc, //0x000006f1 movl $-68(%rbp), %r10d - 0x0f, 0x86, 0x15, 0x02, 0x00, 0x00, //0x000006f5 jbe LBB1_39 - 0x41, 0xf6, 0xc2, 0x08, //0x000006fb testb $8, %r10b - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000006ff je LBB1_11 - 0x4c, 0x89, 0xca, //0x00000705 movq %r9, %rdx - 0xe9, 0xbf, 0x00, 0x00, 0x00, //0x00000708 jmp LBB1_22 - 0x90, 0x90, 0x90, //0x0000070d .p2align 4, 0x90 - //0x00000710 LBB1_10 - 0x49, 0xff, 0xc1, //0x00000710 incq %r9 - 0x49, 0x39, 0xd9, //0x00000713 cmpq %rbx, %r9 - 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x00000716 jae LBB1_37 - //0x0000071c LBB1_11 - 0x41, 0x0f, 0xb6, 0x09, //0x0000071c movzbl (%r9), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00000720 cmpq $13, %rcx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000724 je LBB1_10 - 0x80, 0xf9, 0x0a, //0x0000072a cmpb $10, %cl - 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x0000072d je LBB1_10 - 0x48, 0x8b, 0x45, 0xc0, //0x00000733 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x14, 0x08, //0x00000737 movzbl (%rax,%rcx), %edx - 0x49, 0xff, 0xc1, //0x0000073b incq %r9 - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000073e cmpl $255, %edx - 0x0f, 0x84, 0x81, 0x02, 0x00, 0x00, //0x00000744 je LBB1_51 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000074a movl $1, %r11d - 0x49, 0x39, 0xd9, //0x00000750 cmpq %rbx, %r9 - 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00000753 jb LBB1_16 - 0xe9, 0x8b, 0x0b, 0x00, 0x00, //0x00000759 jmp LBB1_209 - 0x90, 0x90, //0x0000075e .p2align 4, 0x90 - //0x00000760 LBB1_15 - 0x49, 0xff, 0xc1, //0x00000760 incq %r9 - 0x49, 0x39, 0xd9, //0x00000763 cmpq %rbx, %r9 - 0x0f, 0x83, 0x3d, 0x04, 0x00, 0x00, //0x00000766 jae LBB1_82 - //0x0000076c LBB1_16 - 0x41, 0x0f, 0xb6, 0x09, //0x0000076c movzbl (%r9), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00000770 cmpq $13, %rcx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000774 je LBB1_15 - 0x80, 0xf9, 0x0a, //0x0000077a cmpb $10, %cl - 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x0000077d je LBB1_15 - 0x48, 0x8b, 0x45, 0xc0, //0x00000783 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x00000787 movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc1, //0x0000078b incq %r9 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x0000078e cmpl $255, %eax - 0x0f, 0x84, 0x30, 0x06, 0x00, 0x00, //0x00000793 je LBB1_115 - 0xc1, 0xe2, 0x06, //0x00000799 shll $6, %edx - 0x09, 0xc2, //0x0000079c orl %eax, %edx - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000079e movl $2, %r11d - 0x49, 0x39, 0xd9, //0x000007a4 cmpq %rbx, %r9 - 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x000007a7 jb LBB1_41 - 0xe9, 0x37, 0x0b, 0x00, 0x00, //0x000007ad jmp LBB1_209 - //0x000007b2 LBB1_20 - 0x3c, 0x6e, //0x000007b2 cmpb $110, %al - 0x0f, 0x85, 0xd6, 0x01, 0x00, 0x00, //0x000007b4 jne LBB1_46 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007ba .p2align 4, 0x90 - //0x000007c0 LBB1_21 - 0x4c, 0x89, 0xca, //0x000007c0 movq %r9, %rdx - 0x49, 0x39, 0xd9, //0x000007c3 cmpq %rbx, %r9 - 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x000007c6 jae LBB1_37 - //0x000007cc LBB1_22 - 0x48, 0x8d, 0x42, 0x01, //0x000007cc leaq $1(%rdx), %rax - 0x0f, 0xb6, 0x0a, //0x000007d0 movzbl (%rdx), %ecx - 0x80, 0xf9, 0x5c, //0x000007d3 cmpb $92, %cl - 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x000007d6 jne LBB1_35 - 0x4c, 0x8d, 0x4a, 0x02, //0x000007dc leaq $2(%rdx), %r9 - 0xb1, 0xff, //0x000007e0 movb $-1, %cl - 0x49, 0x39, 0xd9, //0x000007e2 cmpq %rbx, %r9 - 0x0f, 0x87, 0x9d, 0x01, 0x00, 0x00, //0x000007e5 ja LBB1_45 - 0x0f, 0xb6, 0x00, //0x000007eb movzbl (%rax), %eax - 0x3c, 0x71, //0x000007ee cmpb $113, %al - 0x0f, 0x8e, 0xbc, 0xff, 0xff, 0xff, //0x000007f0 jle LBB1_20 - 0x3c, 0x72, //0x000007f6 cmpb $114, %al - 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x000007f8 je LBB1_21 - 0x3c, 0x75, //0x000007fe cmpb $117, %al - 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x00000800 jne LBB1_48 - 0x48, 0x89, 0xd8, //0x00000806 movq %rbx, %rax - 0x4c, 0x29, 0xc8, //0x00000809 subq %r9, %rax - 0x48, 0x83, 0xf8, 0x04, //0x0000080c cmpq $4, %rax - 0x0f, 0x8c, 0x84, 0x01, 0x00, 0x00, //0x00000810 jl LBB1_48 - 0x41, 0x8b, 0x01, //0x00000816 movl (%r9), %eax - 0x89, 0xc6, //0x00000819 movl %eax, %esi - 0xf7, 0xd6, //0x0000081b notl %esi - 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000081d leal $-808464432(%rax), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000823 andl $-2139062144, %esi - 0x85, 0xfe, //0x00000829 testl %edi, %esi - 0x0f, 0x85, 0x69, 0x01, 0x00, 0x00, //0x0000082b jne LBB1_48 - 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00000831 leal $421075225(%rax), %edi - 0x09, 0xc7, //0x00000837 orl %eax, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000839 testl $-2139062144, %edi - 0x0f, 0x85, 0x55, 0x01, 0x00, 0x00, //0x0000083f jne LBB1_48 - 0x89, 0xc7, //0x00000845 movl %eax, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000847 andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000084d movl $-1061109568, %ebx - 0x29, 0xfb, //0x00000852 subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00000854 leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x0000085b andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x0000085d testl %r8d, %ebx - 0x48, 0x8b, 0x5d, 0xd0, //0x00000860 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x00000864 jne LBB1_48 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000086a movl $-522133280, %ebx - 0x29, 0xfb, //0x0000086f subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000871 addl $960051513, %edi - 0x21, 0xde, //0x00000877 andl %ebx, %esi - 0x48, 0x8b, 0x5d, 0xd0, //0x00000879 movq $-48(%rbp), %rbx - 0x85, 0xfe, //0x0000087d testl %edi, %esi - 0x0f, 0x85, 0x15, 0x01, 0x00, 0x00, //0x0000087f jne LBB1_48 - 0x0f, 0xc8, //0x00000885 bswapl %eax - 0x89, 0xc1, //0x00000887 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00000889 shrl $4, %ecx - 0xf7, 0xd1, //0x0000088c notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000088e andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00000894 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000897 andl $252645135, %eax - 0x01, 0xc8, //0x0000089c addl %ecx, %eax - 0x89, 0xc1, //0x0000089e movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x000008a0 shrl $4, %ecx - 0x09, 0xc1, //0x000008a3 orl %eax, %ecx - 0x89, 0xc8, //0x000008a5 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x000008a7 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x000008aa andl $65280, %eax - 0x89, 0xce, //0x000008af movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000008b1 andl $128, %esi - 0x09, 0xc6, //0x000008b7 orl %eax, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000008b9 je LBB1_34 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000008bf movl $255, %ecx - //0x000008c4 LBB1_34 - 0x48, 0x83, 0xc2, 0x06, //0x000008c4 addq $6, %rdx - 0x49, 0x89, 0xd1, //0x000008c8 movq %rdx, %r9 - 0x80, 0xf9, 0x0d, //0x000008cb cmpb $13, %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000008ce jne LBB1_36 - 0xe9, 0xe7, 0xfe, 0xff, 0xff, //0x000008d4 jmp LBB1_21 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008d9 .p2align 4, 0x90 - //0x000008e0 LBB1_35 - 0x49, 0x89, 0xc1, //0x000008e0 movq %rax, %r9 - 0x80, 0xf9, 0x0d, //0x000008e3 cmpb $13, %cl - 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x000008e6 je LBB1_21 - //0x000008ec LBB1_36 - 0x80, 0xf9, 0x0a, //0x000008ec cmpb $10, %cl - 0x0f, 0x84, 0xcb, 0xfe, 0xff, 0xff, //0x000008ef je LBB1_21 - 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x000008f5 jmp LBB1_48 - //0x000008fa LBB1_37 - 0x31, 0xd2, //0x000008fa xorl %edx, %edx - 0x45, 0x31, 0xdb, //0x000008fc xorl %r11d, %r11d - //0x000008ff LBB1_38 - 0x45, 0x85, 0xdb, //0x000008ff testl %r11d, %r11d - 0x0f, 0x85, 0xe1, 0x09, 0x00, 0x00, //0x00000902 jne LBB1_209 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000908 .p2align 4, 0x90 - //0x00000910 LBB1_39 - 0x48, 0x8b, 0x4d, 0xb0, //0x00000910 movq $-80(%rbp), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x00000914 movq %rcx, $-80(%rbp) - 0x48, 0x39, 0x4d, 0xc8, //0x00000918 cmpq %rcx, $-56(%rbp) - 0x0f, 0x83, 0x43, 0xfd, 0xff, 0xff, //0x0000091c jae LBB1_223 - 0xe9, 0xbf, 0x1f, 0x00, 0x00, //0x00000922 jmp LBB1_572 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000927 .p2align 4, 0x90 - //0x00000930 LBB1_40 - 0x49, 0xff, 0xc1, //0x00000930 incq %r9 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000933 movl $2, %r11d - 0x49, 0x39, 0xd9, //0x00000939 cmpq %rbx, %r9 - 0x0f, 0x83, 0xbd, 0xff, 0xff, 0xff, //0x0000093c jae LBB1_38 - //0x00000942 LBB1_41 - 0x41, 0x0f, 0xb6, 0x09, //0x00000942 movzbl (%r9), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00000946 cmpq $13, %rcx - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x0000094a je LBB1_40 - 0x80, 0xf9, 0x0a, //0x00000950 cmpb $10, %cl - 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00000953 je LBB1_40 - 0x48, 0x8b, 0x45, 0xc0, //0x00000959 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x0000095d movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc1, //0x00000961 incq %r9 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000964 cmpl $255, %eax - 0x0f, 0x84, 0xea, 0x08, 0x00, 0x00, //0x00000969 je LBB1_176 - 0xc1, 0xe2, 0x06, //0x0000096f shll $6, %edx - 0x09, 0xc2, //0x00000972 orl %eax, %edx - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000974 movl $3, %r11d - 0x49, 0x39, 0xd9, //0x0000097a cmpq %rbx, %r9 - 0x0f, 0x82, 0xba, 0x03, 0x00, 0x00, //0x0000097d jb LBB1_105 - 0xe9, 0x61, 0x09, 0x00, 0x00, //0x00000983 jmp LBB1_209 - //0x00000988 LBB1_45 - 0x49, 0x89, 0xc1, //0x00000988 movq %rax, %r9 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000098b jmp LBB1_48 - //0x00000990 LBB1_46 - 0x3c, 0x2f, //0x00000990 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000992 jne LBB1_48 - 0x89, 0xc1, //0x00000998 movl %eax, %ecx - //0x0000099a LBB1_48 - 0x0f, 0xb6, 0xc1, //0x0000099a movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x0000099d movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x14, 0x02, //0x000009a1 movzbl (%rdx,%rax), %edx - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x000009a5 cmpl $255, %edx - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000009ab je LBB1_51 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000009b1 movl $1, %r11d - 0x49, 0x39, 0xd9, //0x000009b7 cmpq %rbx, %r9 - 0x0f, 0x83, 0x29, 0x09, 0x00, 0x00, //0x000009ba jae LBB1_209 - 0x41, 0x89, 0xd4, //0x000009c0 movl %edx, %r12d - 0x4c, 0x89, 0xca, //0x000009c3 movq %r9, %rdx - 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x000009c6 jmp LBB1_67 - //0x000009cb LBB1_51 - 0x45, 0x31, 0xe4, //0x000009cb xorl %r12d, %r12d - 0x45, 0x31, 0xdb, //0x000009ce xorl %r11d, %r11d - //0x000009d1 LBB1_52 - 0x41, 0xf6, 0xc2, 0x02, //0x000009d1 testb $2, %r10b - 0x0f, 0x85, 0x3a, 0x09, 0x00, 0x00, //0x000009d5 jne LBB1_212 - 0x41, 0x83, 0xfb, 0x02, //0x000009db cmpl $2, %r11d - 0x0f, 0x82, 0x30, 0x09, 0x00, 0x00, //0x000009df jb LBB1_212 - 0x80, 0xf9, 0x3d, //0x000009e5 cmpb $61, %cl - 0x0f, 0x85, 0x27, 0x09, 0x00, 0x00, //0x000009e8 jne LBB1_212 - 0x41, 0xbe, 0x05, 0x00, 0x00, 0x00, //0x000009ee movl $5, %r14d - 0x45, 0x29, 0xde, //0x000009f4 subl %r11d, %r14d - 0x41, 0xf6, 0xc2, 0x08, //0x000009f7 testb $8, %r10b - 0x0f, 0x85, 0xb3, 0x01, 0x00, 0x00, //0x000009fb jne LBB1_83 - 0x4c, 0x39, 0x4d, 0xd0, //0x00000a01 cmpq %r9, $-48(%rbp) - 0x0f, 0x86, 0x6f, 0x09, 0x00, 0x00, //0x00000a05 jbe LBB1_216 - 0x49, 0x8d, 0x49, 0x03, //0x00000a0b leaq $3(%r9), %rcx - 0x48, 0x8b, 0x5d, 0x80, //0x00000a0f movq $-128(%rbp), %rbx - 0x4c, 0x29, 0xcb, //0x00000a13 subq %r9, %rbx - 0x49, 0x8d, 0x51, 0x04, //0x00000a16 leaq $4(%r9), %rdx - 0x48, 0x8b, 0x7d, 0x98, //0x00000a1a movq $-104(%rbp), %rdi - 0x4c, 0x29, 0xcf, //0x00000a1e subq %r9, %rdi - 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000a21 jmp LBB1_59 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a26 .p2align 4, 0x90 - //0x00000a30 LBB1_58 - 0x49, 0xff, 0xc1, //0x00000a30 incq %r9 - 0x48, 0xff, 0xc1, //0x00000a33 incq %rcx - 0x48, 0xff, 0xcb, //0x00000a36 decq %rbx - 0x48, 0xff, 0xc2, //0x00000a39 incq %rdx - 0x48, 0xff, 0xcf, //0x00000a3c decq %rdi - 0x4c, 0x39, 0x4d, 0xd0, //0x00000a3f cmpq %r9, $-48(%rbp) - 0x0f, 0x84, 0x2d, 0x09, 0x00, 0x00, //0x00000a43 je LBB1_215 - //0x00000a49 LBB1_59 - 0x41, 0x0f, 0xb6, 0x01, //0x00000a49 movzbl (%r9), %eax - 0x3c, 0x0a, //0x00000a4d cmpb $10, %al - 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00000a4f je LBB1_58 - 0x3c, 0x0d, //0x00000a55 cmpb $13, %al - 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00000a57 je LBB1_58 - 0x3c, 0x3d, //0x00000a5d cmpb $61, %al - 0x0f, 0x85, 0x04, 0x05, 0x00, 0x00, //0x00000a5f jne LBB1_144 - 0x49, 0xff, 0xc1, //0x00000a65 incq %r9 - 0x41, 0x83, 0xfe, 0x02, //0x00000a68 cmpl $2, %r14d - 0x0f, 0x84, 0xa3, 0x08, 0x00, 0x00, //0x00000a6c je LBB1_212 - 0x4c, 0x39, 0x4d, 0xd0, //0x00000a72 cmpq %r9, $-48(%rbp) - 0x0f, 0x87, 0x15, 0x03, 0x00, 0x00, //0x00000a76 ja LBB1_110 - 0xe9, 0xf9, 0x08, 0x00, 0x00, //0x00000a7c jmp LBB1_216 - //0x00000a81 LBB1_64 - 0x3c, 0x6e, //0x00000a81 cmpb $110, %al - 0x0f, 0x85, 0x4e, 0x03, 0x00, 0x00, //0x00000a83 jne LBB1_116 - //0x00000a89 LBB1_65 - 0x4d, 0x89, 0xc1, //0x00000a89 movq %r8, %r9 - //0x00000a8c LBB1_66 - 0x4c, 0x89, 0xca, //0x00000a8c movq %r9, %rdx - 0x49, 0x39, 0xd9, //0x00000a8f cmpq %rbx, %r9 - 0x0f, 0x83, 0x85, 0x02, 0x00, 0x00, //0x00000a92 jae LBB1_103 - //0x00000a98 LBB1_67 - 0x4c, 0x8d, 0x4a, 0x01, //0x00000a98 leaq $1(%rdx), %r9 - 0x0f, 0xb6, 0x0a, //0x00000a9c movzbl (%rdx), %ecx - 0x80, 0xf9, 0x5c, //0x00000a9f cmpb $92, %cl - 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x00000aa2 jne LBB1_80 - 0x4c, 0x8d, 0x42, 0x02, //0x00000aa8 leaq $2(%rdx), %r8 - 0xb1, 0xff, //0x00000aac movb $-1, %cl - 0x49, 0x39, 0xd8, //0x00000aae cmpq %rbx, %r8 - 0x0f, 0x87, 0x31, 0x03, 0x00, 0x00, //0x00000ab1 ja LBB1_119 - 0x41, 0x0f, 0xb6, 0x01, //0x00000ab7 movzbl (%r9), %eax - 0x3c, 0x71, //0x00000abb cmpb $113, %al - 0x0f, 0x8e, 0xbe, 0xff, 0xff, 0xff, //0x00000abd jle LBB1_64 - 0x3c, 0x72, //0x00000ac3 cmpb $114, %al - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00000ac5 je LBB1_65 - 0x3c, 0x75, //0x00000acb cmpb $117, %al - 0x0f, 0x85, 0x0e, 0x03, 0x00, 0x00, //0x00000acd jne LBB1_118 - 0x48, 0x8b, 0x45, 0xd0, //0x00000ad3 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xc0, //0x00000ad7 subq %r8, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00000ada cmpq $4, %rax - 0x0f, 0x8c, 0xfd, 0x02, 0x00, 0x00, //0x00000ade jl LBB1_118 - 0x41, 0x8b, 0x18, //0x00000ae4 movl (%r8), %ebx - 0x89, 0xde, //0x00000ae7 movl %ebx, %esi - 0xf7, 0xd6, //0x00000ae9 notl %esi - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000aeb leal $-808464432(%rbx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000af1 andl $-2139062144, %esi - 0x85, 0xc6, //0x00000af7 testl %eax, %esi - 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x00000af9 jne LBB1_118 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00000aff leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x00000b05 orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00000b07 testl $-2139062144, %eax - 0x0f, 0x85, 0xcf, 0x02, 0x00, 0x00, //0x00000b0c jne LBB1_118 - 0x89, 0xd8, //0x00000b12 movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000b14 andl $2139062143, %eax - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000b19 movl $-1061109568, %edi - 0x29, 0xc7, //0x00000b1e subl %eax, %edi - 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00000b20 leal $1179010630(%rax), %r9d - 0x21, 0xf7, //0x00000b27 andl %esi, %edi - 0x44, 0x85, 0xcf, //0x00000b29 testl %r9d, %edi - 0x0f, 0x85, 0xaf, 0x02, 0x00, 0x00, //0x00000b2c jne LBB1_118 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000b32 movl $-522133280, %edi - 0x29, 0xc7, //0x00000b37 subl %eax, %edi - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00000b39 addl $960051513, %eax - 0x21, 0xfe, //0x00000b3e andl %edi, %esi - 0x85, 0xc6, //0x00000b40 testl %eax, %esi - 0x0f, 0x85, 0x99, 0x02, 0x00, 0x00, //0x00000b42 jne LBB1_118 - 0x0f, 0xcb, //0x00000b48 bswapl %ebx - 0x89, 0xd8, //0x00000b4a movl %ebx, %eax - 0xc1, 0xe8, 0x04, //0x00000b4c shrl $4, %eax - 0xf7, 0xd0, //0x00000b4f notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00000b51 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00000b56 leal (%rax,%rax,8), %eax - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000b59 andl $252645135, %ebx - 0x01, 0xc3, //0x00000b5f addl %eax, %ebx - 0x89, 0xd9, //0x00000b61 movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00000b63 shrl $4, %ecx - 0x09, 0xd9, //0x00000b66 orl %ebx, %ecx - 0x89, 0xc8, //0x00000b68 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00000b6a shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000b6d andl $65280, %eax - 0x89, 0xce, //0x00000b72 movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00000b74 andl $128, %esi - 0x09, 0xc6, //0x00000b7a orl %eax, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000b7c je LBB1_79 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000b82 movl $255, %ecx - //0x00000b87 LBB1_79 - 0x48, 0x83, 0xc2, 0x06, //0x00000b87 addq $6, %rdx - 0x49, 0x89, 0xd1, //0x00000b8b movq %rdx, %r9 - 0x48, 0x8b, 0x5d, 0xd0, //0x00000b8e movq $-48(%rbp), %rbx - //0x00000b92 LBB1_80 - 0x80, 0xf9, 0x0a, //0x00000b92 cmpb $10, %cl - 0x0f, 0x84, 0xf1, 0xfe, 0xff, 0xff, //0x00000b95 je LBB1_66 - 0x80, 0xf9, 0x0d, //0x00000b9b cmpb $13, %cl - 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x00000b9e je LBB1_66 - 0xe9, 0x3f, 0x02, 0x00, 0x00, //0x00000ba4 jmp LBB1_119 - //0x00000ba9 LBB1_82 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000ba9 movl $1, %r11d - 0xe9, 0x4b, 0xfd, 0xff, 0xff, //0x00000baf jmp LBB1_38 - //0x00000bb4 LBB1_83 - 0x48, 0x8b, 0x55, 0xd0, //0x00000bb4 movq $-48(%rbp), %rdx - 0x4c, 0x39, 0xca, //0x00000bb8 cmpq %r9, %rdx - 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000bbb ja LBB1_86 - 0xe9, 0xb4, 0x07, 0x00, 0x00, //0x00000bc1 jmp LBB1_216 - //0x00000bc6 LBB1_102 - 0x48, 0x89, 0xc1, //0x00000bc6 movq %rax, %rcx - 0x49, 0x89, 0xc9, //0x00000bc9 movq %rcx, %r9 - 0x48, 0x39, 0xd1, //0x00000bcc cmpq %rdx, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00000bcf jb LBB1_86 - 0xe9, 0x3b, 0x01, 0x00, 0x00, //0x00000bd5 jmp LBB1_143 - //0x00000bda LBB1_84 - 0x48, 0x89, 0xc8, //0x00000bda movq %rcx, %rax - 0x49, 0x89, 0xc9, //0x00000bdd movq %rcx, %r9 - 0x48, 0x39, 0xd1, //0x00000be0 cmpq %rdx, %rcx - 0x0f, 0x83, 0x2c, 0x01, 0x00, 0x00, //0x00000be3 jae LBB1_143 - //0x00000be9 LBB1_86 - 0x49, 0x8d, 0x41, 0x01, //0x00000be9 leaq $1(%r9), %rax - 0x41, 0x0f, 0xb6, 0x09, //0x00000bed movzbl (%r9), %ecx - 0x80, 0xf9, 0x5c, //0x00000bf1 cmpb $92, %cl - 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00000bf4 jne LBB1_99 - 0x49, 0x8d, 0x49, 0x02, //0x00000bfa leaq $2(%r9), %rcx - 0x48, 0x39, 0xd1, //0x00000bfe cmpq %rdx, %rcx - 0x0f, 0x87, 0x79, 0x0a, 0x00, 0x00, //0x00000c01 ja LBB1_258 - 0x0f, 0xb6, 0x00, //0x00000c07 movzbl (%rax), %eax - 0x3c, 0x6e, //0x00000c0a cmpb $110, %al - 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00000c0c je LBB1_84 - 0x3c, 0x72, //0x00000c12 cmpb $114, %al - 0x0f, 0x84, 0xc0, 0xff, 0xff, 0xff, //0x00000c14 je LBB1_84 - 0x3c, 0x75, //0x00000c1a cmpb $117, %al - 0x0f, 0x85, 0x53, 0x0a, 0x00, 0x00, //0x00000c1c jne LBB1_278 - 0x48, 0x89, 0xd0, //0x00000c22 movq %rdx, %rax - 0x48, 0x29, 0xc8, //0x00000c25 subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00000c28 cmpq $4, %rax - 0x0f, 0x8c, 0x43, 0x0a, 0x00, 0x00, //0x00000c2c jl LBB1_278 - 0x8b, 0x01, //0x00000c32 movl (%rcx), %eax - 0x89, 0xc2, //0x00000c34 movl %eax, %edx - 0xf7, 0xd2, //0x00000c36 notl %edx - 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000c38 leal $-808464432(%rax), %esi - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00000c3e andl $-2139062144, %edx - 0x85, 0xf2, //0x00000c44 testl %esi, %edx - 0x0f, 0x85, 0x29, 0x0a, 0x00, 0x00, //0x00000c46 jne LBB1_278 - 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x00000c4c leal $421075225(%rax), %esi - 0x09, 0xc6, //0x00000c52 orl %eax, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00000c54 testl $-2139062144, %esi - 0x0f, 0x85, 0x15, 0x0a, 0x00, 0x00, //0x00000c5a jne LBB1_278 - 0x89, 0xc6, //0x00000c60 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000c62 andl $2139062143, %esi - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000c68 movl $-1061109568, %edi - 0x29, 0xf7, //0x00000c6d subl %esi, %edi - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00000c6f leal $1179010630(%rsi), %ebx - 0x21, 0xd7, //0x00000c75 andl %edx, %edi - 0x85, 0xdf, //0x00000c77 testl %ebx, %edi - 0x0f, 0x85, 0xf6, 0x09, 0x00, 0x00, //0x00000c79 jne LBB1_278 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000c7f movl $-522133280, %edi - 0x29, 0xf7, //0x00000c84 subl %esi, %edi - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00000c86 addl $960051513, %esi - 0x21, 0xfa, //0x00000c8c andl %edi, %edx - 0x85, 0xf2, //0x00000c8e testl %esi, %edx - 0x0f, 0x85, 0xdf, 0x09, 0x00, 0x00, //0x00000c90 jne LBB1_278 - 0x0f, 0xc8, //0x00000c96 bswapl %eax - 0x89, 0xc1, //0x00000c98 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00000c9a shrl $4, %ecx - 0xf7, 0xd1, //0x00000c9d notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000c9f andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00000ca5 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000ca8 andl $252645135, %eax - 0x01, 0xc8, //0x00000cad addl %ecx, %eax - 0x89, 0xc1, //0x00000caf movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00000cb1 shrl $4, %ecx - 0x09, 0xc1, //0x00000cb4 orl %eax, %ecx - 0x89, 0xc8, //0x00000cb6 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00000cb8 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000cbb andl $65280, %eax - 0x89, 0xca, //0x00000cc0 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00000cc2 andl $128, %edx - 0x09, 0xc2, //0x00000cc8 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000cca je LBB1_98 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000cd0 movl $255, %ecx - //0x00000cd5 LBB1_98 - 0x49, 0x83, 0xc1, 0x06, //0x00000cd5 addq $6, %r9 - 0x4c, 0x89, 0xc8, //0x00000cd9 movq %r9, %rax - 0x48, 0x8b, 0x55, 0xd0, //0x00000cdc movq $-48(%rbp), %rdx - //0x00000ce0 LBB1_99 - 0x80, 0xf9, 0x0a, //0x00000ce0 cmpb $10, %cl - 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00000ce3 je LBB1_102 - 0x80, 0xf9, 0x0d, //0x00000ce9 cmpb $13, %cl - 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00000cec je LBB1_102 - 0x80, 0xf9, 0x3d, //0x00000cf2 cmpb $61, %cl - 0x0f, 0x85, 0x85, 0x09, 0x00, 0x00, //0x00000cf5 jne LBB1_258 - 0x49, 0x89, 0xc1, //0x00000cfb movq %rax, %r9 - 0x41, 0x83, 0xfe, 0x02, //0x00000cfe cmpl $2, %r14d - 0x0f, 0x84, 0x0d, 0x06, 0x00, 0x00, //0x00000d02 je LBB1_212 - 0x48, 0x8b, 0x75, 0xd0, //0x00000d08 movq $-48(%rbp), %rsi - 0x48, 0x39, 0xc6, //0x00000d0c cmpq %rax, %rsi - 0x0f, 0x87, 0x0e, 0x04, 0x00, 0x00, //0x00000d0f ja LBB1_179 - //0x00000d15 LBB1_143 - 0x49, 0x89, 0xc1, //0x00000d15 movq %rax, %r9 - 0xe9, 0x5d, 0x06, 0x00, 0x00, //0x00000d18 jmp LBB1_216 - //0x00000d1d LBB1_103 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000d1d movl $1, %r11d - 0x44, 0x89, 0xe2, //0x00000d23 movl %r12d, %edx - 0xe9, 0xd4, 0xfb, 0xff, 0xff, //0x00000d26 jmp LBB1_38 - //0x00000d2b LBB1_104 - 0x49, 0xff, 0xc1, //0x00000d2b incq %r9 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000d2e movl $3, %r11d - 0x49, 0x39, 0xd9, //0x00000d34 cmpq %rbx, %r9 - 0x0f, 0x83, 0xc2, 0xfb, 0xff, 0xff, //0x00000d37 jae LBB1_38 - //0x00000d3d LBB1_105 - 0x41, 0x0f, 0xb6, 0x09, //0x00000d3d movzbl (%r9), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00000d41 cmpq $13, %rcx - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00000d45 je LBB1_104 - 0x80, 0xf9, 0x0a, //0x00000d4b cmpb $10, %cl - 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00000d4e je LBB1_104 - 0x48, 0x8b, 0x45, 0xc0, //0x00000d54 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x00000d58 movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc1, //0x00000d5c incq %r9 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000d5f cmpl $255, %eax - 0x0f, 0x85, 0x74, 0x05, 0x00, 0x00, //0x00000d64 jne LBB1_208 - 0x41, 0x89, 0xd4, //0x00000d6a movl %edx, %r12d - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000d6d movl $3, %r11d - 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00000d73 jmp LBB1_52 - //0x00000d78 LBB1_109 - 0x49, 0xff, 0xc1, //0x00000d78 incq %r9 - 0x48, 0xff, 0xc1, //0x00000d7b incq %rcx - 0x48, 0xff, 0xcb, //0x00000d7e decq %rbx - 0x48, 0xff, 0xc2, //0x00000d81 incq %rdx - 0x48, 0xff, 0xcf, //0x00000d84 decq %rdi - 0x4c, 0x39, 0x4d, 0xd0, //0x00000d87 cmpq %r9, $-48(%rbp) - 0x0f, 0x84, 0xe5, 0x05, 0x00, 0x00, //0x00000d8b je LBB1_215 - //0x00000d91 LBB1_110 - 0x41, 0x0f, 0xb6, 0x01, //0x00000d91 movzbl (%r9), %eax - 0x3c, 0x0a, //0x00000d95 cmpb $10, %al - 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00000d97 je LBB1_109 - 0x3c, 0x0d, //0x00000d9d cmpb $13, %al - 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00000d9f je LBB1_109 - 0x3c, 0x3d, //0x00000da5 cmpb $61, %al - 0x0f, 0x85, 0xbc, 0x01, 0x00, 0x00, //0x00000da7 jne LBB1_144 - 0x49, 0xff, 0xc1, //0x00000dad incq %r9 - 0x41, 0x83, 0xfe, 0x03, //0x00000db0 cmpl $3, %r14d - 0x0f, 0x84, 0x5b, 0x05, 0x00, 0x00, //0x00000db4 je LBB1_212 - 0x4c, 0x39, 0x4d, 0xd0, //0x00000dba cmpq %r9, $-48(%rbp) - 0x0f, 0x87, 0xb5, 0x04, 0x00, 0x00, //0x00000dbe ja LBB1_197 - 0xe9, 0xb1, 0x05, 0x00, 0x00, //0x00000dc4 jmp LBB1_216 - //0x00000dc9 LBB1_115 - 0x41, 0x89, 0xd4, //0x00000dc9 movl %edx, %r12d - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000dcc movl $1, %r11d - 0xe9, 0xfa, 0xfb, 0xff, 0xff, //0x00000dd2 jmp LBB1_52 - //0x00000dd7 LBB1_116 - 0x3c, 0x2f, //0x00000dd7 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000dd9 jne LBB1_118 - 0x89, 0xc1, //0x00000ddf movl %eax, %ecx - //0x00000de1 LBB1_118 - 0x4d, 0x89, 0xc1, //0x00000de1 movq %r8, %r9 - 0x48, 0x8b, 0x5d, 0xd0, //0x00000de4 movq $-48(%rbp), %rbx - //0x00000de8 LBB1_119 - 0x0f, 0xb6, 0xc1, //0x00000de8 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x00000deb movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x00000def movzbl (%rdx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000df3 cmpl $255, %eax - 0x0f, 0x84, 0x58, 0x01, 0x00, 0x00, //0x00000df8 je LBB1_140 - 0x44, 0x89, 0xe2, //0x00000dfe movl %r12d, %edx - 0xc1, 0xe2, 0x06, //0x00000e01 shll $6, %edx - 0x09, 0xc2, //0x00000e04 orl %eax, %edx - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000e06 movl $2, %r11d - 0x49, 0x39, 0xd9, //0x00000e0c cmpq %rbx, %r9 - 0x0f, 0x83, 0xd4, 0x04, 0x00, 0x00, //0x00000e0f jae LBB1_209 - 0x41, 0x89, 0xd4, //0x00000e15 movl %edx, %r12d - 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00000e18 jmp LBB1_125 - //0x00000e1d LBB1_122 - 0x3c, 0x6e, //0x00000e1d cmpb $110, %al - 0x0f, 0x85, 0x52, 0x01, 0x00, 0x00, //0x00000e1f jne LBB1_150 - //0x00000e25 LBB1_123 - 0x48, 0x89, 0xd7, //0x00000e25 movq %rdx, %rdi - 0x44, 0x89, 0xe2, //0x00000e28 movl %r12d, %edx - //0x00000e2b LBB1_124 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000e2b movl $2, %r11d - 0x49, 0x89, 0xf9, //0x00000e31 movq %rdi, %r9 - 0x48, 0x39, 0xdf, //0x00000e34 cmpq %rbx, %rdi - 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x00000e37 jae LBB1_142 - //0x00000e3d LBB1_125 - 0x49, 0x8d, 0x79, 0x01, //0x00000e3d leaq $1(%r9), %rdi - 0x41, 0x0f, 0xb6, 0x09, //0x00000e41 movzbl (%r9), %ecx - 0x80, 0xf9, 0x5c, //0x00000e45 cmpb $92, %cl - 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x00000e48 jne LBB1_138 - 0x49, 0x8d, 0x51, 0x02, //0x00000e4e leaq $2(%r9), %rdx - 0xb1, 0xff, //0x00000e52 movb $-1, %cl - 0x48, 0x39, 0xda, //0x00000e54 cmpq %rbx, %rdx - 0x0f, 0x87, 0x27, 0x01, 0x00, 0x00, //0x00000e57 ja LBB1_153 - 0x0f, 0xb6, 0x07, //0x00000e5d movzbl (%rdi), %eax - 0x3c, 0x71, //0x00000e60 cmpb $113, %al - 0x0f, 0x8e, 0xb5, 0xff, 0xff, 0xff, //0x00000e62 jle LBB1_122 - 0x3c, 0x72, //0x00000e68 cmpb $114, %al - 0x0f, 0x84, 0xb5, 0xff, 0xff, 0xff, //0x00000e6a je LBB1_123 - 0x3c, 0x75, //0x00000e70 cmpb $117, %al - 0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x00000e72 jne LBB1_152 - 0x48, 0x89, 0xd8, //0x00000e78 movq %rbx, %rax - 0x48, 0x29, 0xd0, //0x00000e7b subq %rdx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00000e7e cmpq $4, %rax - 0x0f, 0x8c, 0xf9, 0x00, 0x00, 0x00, //0x00000e82 jl LBB1_152 - 0x8b, 0x02, //0x00000e88 movl (%rdx), %eax - 0x89, 0xc6, //0x00000e8a movl %eax, %esi - 0xf7, 0xd6, //0x00000e8c notl %esi - 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000e8e leal $-808464432(%rax), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000e94 andl $-2139062144, %esi - 0x85, 0xfe, //0x00000e9a testl %edi, %esi - 0x0f, 0x85, 0xdf, 0x00, 0x00, 0x00, //0x00000e9c jne LBB1_152 - 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00000ea2 leal $421075225(%rax), %edi - 0x09, 0xc7, //0x00000ea8 orl %eax, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000eaa testl $-2139062144, %edi - 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x00000eb0 jne LBB1_152 - 0x89, 0xc7, //0x00000eb6 movl %eax, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000eb8 andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000ebe movl $-1061109568, %ebx - 0x29, 0xfb, //0x00000ec3 subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00000ec5 leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x00000ecc andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x00000ece testl %r8d, %ebx - 0x48, 0x8b, 0x5d, 0xd0, //0x00000ed1 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00000ed5 jne LBB1_152 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000edb movl $-522133280, %ebx - 0x29, 0xfb, //0x00000ee0 subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000ee2 addl $960051513, %edi - 0x21, 0xde, //0x00000ee8 andl %ebx, %esi - 0x48, 0x8b, 0x5d, 0xd0, //0x00000eea movq $-48(%rbp), %rbx - 0x85, 0xfe, //0x00000eee testl %edi, %esi - 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00000ef0 jne LBB1_152 - 0x0f, 0xc8, //0x00000ef6 bswapl %eax - 0x89, 0xc1, //0x00000ef8 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00000efa shrl $4, %ecx - 0xf7, 0xd1, //0x00000efd notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000eff andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00000f05 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000f08 andl $252645135, %eax - 0x01, 0xc8, //0x00000f0d addl %ecx, %eax - 0x89, 0xc1, //0x00000f0f movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00000f11 shrl $4, %ecx - 0x09, 0xc1, //0x00000f14 orl %eax, %ecx - 0x89, 0xc8, //0x00000f16 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00000f18 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000f1b andl $65280, %eax - 0x89, 0xca, //0x00000f20 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00000f22 andl $128, %edx - 0x09, 0xc2, //0x00000f28 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000f2a je LBB1_137 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000f30 movl $255, %ecx - //0x00000f35 LBB1_137 - 0x49, 0x83, 0xc1, 0x06, //0x00000f35 addq $6, %r9 - 0x4c, 0x89, 0xcf, //0x00000f39 movq %r9, %rdi - 0x44, 0x89, 0xe2, //0x00000f3c movl %r12d, %edx - //0x00000f3f LBB1_138 - 0x80, 0xf9, 0x0a, //0x00000f3f cmpb $10, %cl - 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00000f42 je LBB1_124 - 0x80, 0xf9, 0x0d, //0x00000f48 cmpb $13, %cl - 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00000f4b je LBB1_124 - 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000f51 jmp LBB1_153 - //0x00000f56 LBB1_140 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000f56 movl $1, %r11d - 0xe9, 0x70, 0xfa, 0xff, 0xff, //0x00000f5c jmp LBB1_52 - //0x00000f61 LBB1_142 - 0x49, 0x89, 0xf9, //0x00000f61 movq %rdi, %r9 - 0xe9, 0x96, 0xf9, 0xff, 0xff, //0x00000f64 jmp LBB1_38 - //0x00000f69 LBB1_144 - 0x49, 0xff, 0xc1, //0x00000f69 incq %r9 - 0x4c, 0x89, 0xca, //0x00000f6c movq %r9, %rdx - //0x00000f6f LBB1_145 - 0x49, 0x89, 0xd1, //0x00000f6f movq %rdx, %r9 - 0xe9, 0x9e, 0x03, 0x00, 0x00, //0x00000f72 jmp LBB1_212 - //0x00000f77 LBB1_150 - 0x3c, 0x2f, //0x00000f77 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000f79 jne LBB1_152 - 0x89, 0xc1, //0x00000f7f movl %eax, %ecx - //0x00000f81 LBB1_152 - 0x48, 0x89, 0xd7, //0x00000f81 movq %rdx, %rdi - //0x00000f84 LBB1_153 - 0x0f, 0xb6, 0xc1, //0x00000f84 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x00000f87 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x00000f8b movzbl (%rdx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000f8f cmpl $255, %eax - 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00000f94 je LBB1_174 - 0x44, 0x89, 0xe2, //0x00000f9a movl %r12d, %edx - 0xc1, 0xe2, 0x06, //0x00000f9d shll $6, %edx - 0x09, 0xc2, //0x00000fa0 orl %eax, %edx - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000fa2 movl $3, %r11d - 0x48, 0x39, 0xdf, //0x00000fa8 cmpq %rbx, %rdi - 0x0f, 0x83, 0x47, 0x01, 0x00, 0x00, //0x00000fab jae LBB1_175 - 0x41, 0x89, 0xd4, //0x00000fb1 movl %edx, %r12d - 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00000fb4 jmp LBB1_159 - //0x00000fb9 LBB1_156 - 0x3c, 0x6e, //0x00000fb9 cmpb $110, %al - 0x0f, 0x85, 0xf3, 0x02, 0x00, 0x00, //0x00000fbb jne LBB1_203 - //0x00000fc1 LBB1_157 - 0x4d, 0x89, 0xc1, //0x00000fc1 movq %r8, %r9 - //0x00000fc4 LBB1_158 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000fc4 movl $3, %r11d - 0x4c, 0x89, 0xcf, //0x00000fca movq %r9, %rdi - 0x49, 0x39, 0xd9, //0x00000fcd cmpq %rbx, %r9 - 0x0f, 0x83, 0x29, 0xf9, 0xff, 0xff, //0x00000fd0 jae LBB1_38 - //0x00000fd6 LBB1_159 - 0x4c, 0x8d, 0x4f, 0x01, //0x00000fd6 leaq $1(%rdi), %r9 - 0x0f, 0xb6, 0x0f, //0x00000fda movzbl (%rdi), %ecx - 0x80, 0xf9, 0x5c, //0x00000fdd cmpb $92, %cl - 0x0f, 0x85, 0xed, 0x00, 0x00, 0x00, //0x00000fe0 jne LBB1_172 - 0x4c, 0x8d, 0x47, 0x02, //0x00000fe6 leaq $2(%rdi), %r8 - 0xb1, 0xff, //0x00000fea movb $-1, %cl - 0x49, 0x39, 0xd8, //0x00000fec cmpq %rbx, %r8 - 0x0f, 0x87, 0xd0, 0x02, 0x00, 0x00, //0x00000fef ja LBB1_206 - 0x41, 0x0f, 0xb6, 0x01, //0x00000ff5 movzbl (%r9), %eax - 0x3c, 0x71, //0x00000ff9 cmpb $113, %al - 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x00000ffb jle LBB1_156 - 0x3c, 0x72, //0x00001001 cmpb $114, %al - 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00001003 je LBB1_157 - 0x3c, 0x75, //0x00001009 cmpb $117, %al - 0x0f, 0x85, 0xad, 0x02, 0x00, 0x00, //0x0000100b jne LBB1_205 - 0x48, 0x8b, 0x45, 0xd0, //0x00001011 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xc0, //0x00001015 subq %r8, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00001018 cmpq $4, %rax - 0x0f, 0x8c, 0x9c, 0x02, 0x00, 0x00, //0x0000101c jl LBB1_205 - 0x41, 0x8b, 0x18, //0x00001022 movl (%r8), %ebx - 0x89, 0xde, //0x00001025 movl %ebx, %esi - 0xf7, 0xd6, //0x00001027 notl %esi - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001029 leal $-808464432(%rbx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000102f andl $-2139062144, %esi - 0x85, 0xc6, //0x00001035 testl %eax, %esi - 0x0f, 0x85, 0x81, 0x02, 0x00, 0x00, //0x00001037 jne LBB1_205 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x0000103d leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x00001043 orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001045 testl $-2139062144, %eax - 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x0000104a jne LBB1_205 - 0x89, 0xd8, //0x00001050 movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001052 andl $2139062143, %eax - 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001057 movl $-1061109568, %edx - 0x29, 0xc2, //0x0000105c subl %eax, %edx - 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x0000105e leal $1179010630(%rax), %r9d - 0x21, 0xf2, //0x00001065 andl %esi, %edx - 0x44, 0x85, 0xca, //0x00001067 testl %r9d, %edx - 0x0f, 0x85, 0x4e, 0x02, 0x00, 0x00, //0x0000106a jne LBB1_205 - 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001070 movl $-522133280, %edx - 0x29, 0xc2, //0x00001075 subl %eax, %edx - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001077 addl $960051513, %eax - 0x21, 0xd6, //0x0000107c andl %edx, %esi - 0x85, 0xc6, //0x0000107e testl %eax, %esi - 0x0f, 0x85, 0x38, 0x02, 0x00, 0x00, //0x00001080 jne LBB1_205 - 0x0f, 0xcb, //0x00001086 bswapl %ebx - 0x89, 0xd8, //0x00001088 movl %ebx, %eax - 0xc1, 0xe8, 0x04, //0x0000108a shrl $4, %eax - 0xf7, 0xd0, //0x0000108d notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000108f andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00001094 leal (%rax,%rax,8), %eax - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001097 andl $252645135, %ebx - 0x01, 0xc3, //0x0000109d addl %eax, %ebx - 0x89, 0xd9, //0x0000109f movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x000010a1 shrl $4, %ecx - 0x09, 0xd9, //0x000010a4 orl %ebx, %ecx - 0x89, 0xc8, //0x000010a6 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x000010a8 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x000010ab andl $65280, %eax - 0x89, 0xca, //0x000010b0 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000010b2 andl $128, %edx - 0x09, 0xc2, //0x000010b8 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000010ba je LBB1_171 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000010c0 movl $255, %ecx - //0x000010c5 LBB1_171 - 0x48, 0x83, 0xc7, 0x06, //0x000010c5 addq $6, %rdi - 0x49, 0x89, 0xf9, //0x000010c9 movq %rdi, %r9 - 0x48, 0x8b, 0x5d, 0xd0, //0x000010cc movq $-48(%rbp), %rbx - 0x44, 0x89, 0xe2, //0x000010d0 movl %r12d, %edx - //0x000010d3 LBB1_172 - 0x80, 0xf9, 0x0a, //0x000010d3 cmpb $10, %cl - 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x000010d6 je LBB1_158 - 0x80, 0xf9, 0x0d, //0x000010dc cmpb $13, %cl - 0x0f, 0x84, 0xdf, 0xfe, 0xff, 0xff, //0x000010df je LBB1_158 - 0xe9, 0xdb, 0x01, 0x00, 0x00, //0x000010e5 jmp LBB1_206 - //0x000010ea LBB1_174 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000010ea movl $2, %r11d - 0x49, 0x89, 0xf9, //0x000010f0 movq %rdi, %r9 - 0xe9, 0xd9, 0xf8, 0xff, 0xff, //0x000010f3 jmp LBB1_52 - //0x000010f8 LBB1_175 - 0x49, 0x89, 0xf9, //0x000010f8 movq %rdi, %r9 - 0xe9, 0xe9, 0x01, 0x00, 0x00, //0x000010fb jmp LBB1_209 - //0x00001100 LBB1_195 - 0x4c, 0x89, 0xc9, //0x00001100 movq %r9, %rcx - 0x48, 0x89, 0xc8, //0x00001103 movq %rcx, %rax - 0x48, 0x39, 0xf1, //0x00001106 cmpq %rsi, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00001109 jb LBB1_179 - 0xe9, 0x66, 0x02, 0x00, 0x00, //0x0000110f jmp LBB1_216 - //0x00001114 LBB1_177 - 0x49, 0x89, 0xc9, //0x00001114 movq %rcx, %r9 - 0x48, 0x89, 0xc8, //0x00001117 movq %rcx, %rax - 0x48, 0x39, 0xf1, //0x0000111a cmpq %rsi, %rcx - 0x0f, 0x83, 0x57, 0x02, 0x00, 0x00, //0x0000111d jae LBB1_216 - //0x00001123 LBB1_179 - 0x4c, 0x8d, 0x48, 0x01, //0x00001123 leaq $1(%rax), %r9 - 0x0f, 0xb6, 0x08, //0x00001127 movzbl (%rax), %ecx - 0x80, 0xf9, 0x5c, //0x0000112a cmpb $92, %cl - 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x0000112d jne LBB1_192 - 0x48, 0x8d, 0x48, 0x02, //0x00001133 leaq $2(%rax), %rcx - 0x48, 0x39, 0xf1, //0x00001137 cmpq %rsi, %rcx - 0x0f, 0x87, 0x3d, 0x05, 0x00, 0x00, //0x0000113a ja LBB1_279 - 0x41, 0x0f, 0xb6, 0x11, //0x00001140 movzbl (%r9), %edx - 0x80, 0xfa, 0x6e, //0x00001144 cmpb $110, %dl - 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x00001147 je LBB1_177 - 0x80, 0xfa, 0x72, //0x0000114d cmpb $114, %dl - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00001150 je LBB1_177 - 0x80, 0xfa, 0x75, //0x00001156 cmpb $117, %dl - 0x0f, 0x85, 0x16, 0x05, 0x00, 0x00, //0x00001159 jne LBB1_278 - 0x48, 0x89, 0xf2, //0x0000115f movq %rsi, %rdx - 0x48, 0x29, 0xca, //0x00001162 subq %rcx, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x00001165 cmpq $4, %rdx - 0x0f, 0x8c, 0x06, 0x05, 0x00, 0x00, //0x00001169 jl LBB1_278 - 0x8b, 0x11, //0x0000116f movl (%rcx), %edx - 0x89, 0xd6, //0x00001171 movl %edx, %esi - 0xf7, 0xd6, //0x00001173 notl %esi - 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001175 leal $-808464432(%rdx), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000117b andl $-2139062144, %esi - 0x85, 0xfe, //0x00001181 testl %edi, %esi - 0x0f, 0x85, 0xec, 0x04, 0x00, 0x00, //0x00001183 jne LBB1_278 - 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00001189 leal $421075225(%rdx), %edi - 0x09, 0xd7, //0x0000118f orl %edx, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00001191 testl $-2139062144, %edi - 0x0f, 0x85, 0xd8, 0x04, 0x00, 0x00, //0x00001197 jne LBB1_278 - 0x89, 0xd7, //0x0000119d movl %edx, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000119f andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000011a5 movl $-1061109568, %ebx - 0x29, 0xfb, //0x000011aa subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000011ac leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x000011b3 andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x000011b5 testl %r8d, %ebx - 0x0f, 0x85, 0xb7, 0x04, 0x00, 0x00, //0x000011b8 jne LBB1_278 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000011be movl $-522133280, %ebx - 0x29, 0xfb, //0x000011c3 subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000011c5 addl $960051513, %edi - 0x21, 0xde, //0x000011cb andl %ebx, %esi - 0x85, 0xfe, //0x000011cd testl %edi, %esi - 0x0f, 0x85, 0xa0, 0x04, 0x00, 0x00, //0x000011cf jne LBB1_278 - 0x0f, 0xca, //0x000011d5 bswapl %edx - 0x89, 0xd1, //0x000011d7 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000011d9 shrl $4, %ecx - 0xf7, 0xd1, //0x000011dc notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000011de andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x000011e4 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000011e7 andl $252645135, %edx - 0x01, 0xca, //0x000011ed addl %ecx, %edx - 0x89, 0xd1, //0x000011ef movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000011f1 shrl $4, %ecx - 0x09, 0xd1, //0x000011f4 orl %edx, %ecx - 0x89, 0xca, //0x000011f6 movl %ecx, %edx - 0xc1, 0xea, 0x08, //0x000011f8 shrl $8, %edx - 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000011fb andl $65280, %edx - 0x89, 0xce, //0x00001201 movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00001203 andl $128, %esi - 0x09, 0xd6, //0x00001209 orl %edx, %esi - 0x48, 0x8b, 0x75, 0xd0, //0x0000120b movq $-48(%rbp), %rsi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000120f je LBB1_191 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00001215 movl $255, %ecx - //0x0000121a LBB1_191 - 0x48, 0x83, 0xc0, 0x06, //0x0000121a addq $6, %rax - 0x49, 0x89, 0xc1, //0x0000121e movq %rax, %r9 - //0x00001221 LBB1_192 - 0x80, 0xf9, 0x0a, //0x00001221 cmpb $10, %cl - 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00001224 je LBB1_195 - 0x80, 0xf9, 0x0d, //0x0000122a cmpb $13, %cl - 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x0000122d je LBB1_195 - 0x80, 0xf9, 0x3d, //0x00001233 cmpb $61, %cl - 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00001236 jne LBB1_212 - 0x41, 0x83, 0xfe, 0x03, //0x0000123c cmpl $3, %r14d - 0x0f, 0x84, 0xcf, 0x00, 0x00, 0x00, //0x00001240 je LBB1_212 - 0x4c, 0x39, 0x4d, 0xd0, //0x00001246 cmpq %r9, $-48(%rbp) - 0x0f, 0x86, 0x2a, 0x01, 0x00, 0x00, //0x0000124a jbe LBB1_216 - 0x48, 0x8b, 0x55, 0xd0, //0x00001250 movq $-48(%rbp), %rdx - 0xe9, 0x8e, 0x01, 0x00, 0x00, //0x00001254 jmp LBB1_234 - //0x00001259 LBB1_176 - 0x41, 0x89, 0xd4, //0x00001259 movl %edx, %r12d - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000125c movl $2, %r11d - 0xe9, 0x6a, 0xf7, 0xff, 0xff, //0x00001262 jmp LBB1_52 - //0x00001267 LBB1_196 - 0x48, 0xff, 0xc1, //0x00001267 incq %rcx - 0x48, 0xff, 0xc2, //0x0000126a incq %rdx - 0x48, 0xff, 0xcf, //0x0000126d decq %rdi - 0x48, 0xff, 0xcb, //0x00001270 decq %rbx - 0x0f, 0x84, 0xfd, 0x00, 0x00, 0x00, //0x00001273 je LBB1_215 - //0x00001279 LBB1_197 - 0x0f, 0xb6, 0x41, 0xff, //0x00001279 movzbl $-1(%rcx), %eax - 0x3c, 0x0a, //0x0000127d cmpb $10, %al - 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x0000127f je LBB1_196 - 0x3c, 0x0d, //0x00001285 cmpb $13, %al - 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001287 je LBB1_196 - 0x3c, 0x3d, //0x0000128d cmpb $61, %al - 0x0f, 0x85, 0x75, 0x02, 0x00, 0x00, //0x0000128f jne LBB1_252 - 0x49, 0x89, 0xc9, //0x00001295 movq %rcx, %r9 - 0x41, 0x83, 0xfe, 0x04, //0x00001298 cmpl $4, %r14d - 0x0f, 0x84, 0x73, 0x00, 0x00, 0x00, //0x0000129c je LBB1_212 - 0x48, 0x39, 0x4d, 0xd0, //0x000012a2 cmpq %rcx, $-48(%rbp) - 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x000012a6 ja LBB1_229 - 0x49, 0x89, 0xc9, //0x000012ac movq %rcx, %r9 - 0xe9, 0xc6, 0x00, 0x00, 0x00, //0x000012af jmp LBB1_216 - //0x000012b4 LBB1_203 - 0x3c, 0x2f, //0x000012b4 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000012b6 jne LBB1_205 - 0x89, 0xc1, //0x000012bc movl %eax, %ecx - //0x000012be LBB1_205 - 0x4d, 0x89, 0xc1, //0x000012be movq %r8, %r9 - 0x48, 0x8b, 0x5d, 0xd0, //0x000012c1 movq $-48(%rbp), %rbx - //0x000012c5 LBB1_206 - 0x0f, 0xb6, 0xc1, //0x000012c5 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x000012c8 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x000012cc movzbl (%rdx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000012d0 cmpl $255, %eax - 0x0f, 0x84, 0x69, 0x00, 0x00, 0x00, //0x000012d5 je LBB1_214 - 0x44, 0x89, 0xe2, //0x000012db movl %r12d, %edx - //0x000012de LBB1_208 - 0xc1, 0xe2, 0x06, //0x000012de shll $6, %edx - 0x09, 0xc2, //0x000012e1 orl %eax, %edx - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000012e3 movl $4, %r11d - //0x000012e9 LBB1_209 - 0x41, 0x89, 0xd4, //0x000012e9 movl %edx, %r12d - 0x41, 0xf6, 0xc2, 0x02, //0x000012ec testb $2, %r10b - 0x0f, 0x94, 0xc0, //0x000012f0 sete %al - 0x41, 0x83, 0xfb, 0x01, //0x000012f3 cmpl $1, %r11d - 0x0f, 0x94, 0xc1, //0x000012f7 sete %cl - 0x49, 0x39, 0xd9, //0x000012fa cmpq %rbx, %r9 - 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000012fd jb LBB1_216 - 0x41, 0x83, 0xfb, 0x04, //0x00001303 cmpl $4, %r11d - 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x00001307 je LBB1_216 - 0x08, 0xc8, //0x0000130d orb %cl, %al - 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x0000130f je LBB1_216 - //0x00001315 LBB1_212 - 0x49, 0x8d, 0x49, 0x01, //0x00001315 leaq $1(%r9), %rcx - 0x4c, 0x39, 0x4d, 0xd0, //0x00001319 cmpq %r9, $-48(%rbp) - 0x49, 0x0f, 0x45, 0xc9, //0x0000131d cmovneq %r9, %rcx - 0x4c, 0x29, 0xf9, //0x00001321 subq %r15, %rcx - 0x0f, 0x85, 0xb0, 0x36, 0x00, 0x00, //0x00001324 jne LBB1_1140 - 0x4d, 0x89, 0xf9, //0x0000132a movq %r15, %r9 - 0x48, 0x8b, 0x4d, 0xb0, //0x0000132d movq $-80(%rbp), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x00001331 movq %rcx, $-80(%rbp) - 0x48, 0x39, 0x4d, 0xc8, //0x00001335 cmpq %rcx, $-56(%rbp) - 0x0f, 0x83, 0x26, 0xf3, 0xff, 0xff, //0x00001339 jae LBB1_223 - 0xe9, 0xa2, 0x15, 0x00, 0x00, //0x0000133f jmp LBB1_572 - //0x00001344 LBB1_214 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001344 movl $3, %r11d - 0xe9, 0x82, 0xf6, 0xff, 0xff, //0x0000134a jmp LBB1_52 - //0x0000134f LBB1_228 - 0x48, 0xff, 0xc2, //0x0000134f incq %rdx - 0x48, 0xff, 0xcf, //0x00001352 decq %rdi - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00001355 je LBB1_215 - //0x0000135b LBB1_229 - 0x0f, 0xb6, 0x42, 0xff, //0x0000135b movzbl $-1(%rdx), %eax - 0x3c, 0x0a, //0x0000135f cmpb $10, %al - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00001361 je LBB1_228 - 0x3c, 0x0d, //0x00001367 cmpb $13, %al - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001369 je LBB1_228 - 0x3c, 0x3d, //0x0000136f cmpb $61, %al - 0xe9, 0xf9, 0xfb, 0xff, 0xff, //0x00001371 jmp LBB1_145 - //0x00001376 LBB1_215 - 0x4c, 0x8b, 0x4d, 0xd0, //0x00001376 movq $-48(%rbp), %r9 - //0x0000137a LBB1_216 - 0xb0, 0x04, //0x0000137a movb $4, %al - 0x44, 0x28, 0xd8, //0x0000137c subb %r11b, %al - 0x0f, 0xb6, 0xc0, //0x0000137f movzbl %al, %eax - 0x01, 0xc0, //0x00001382 addl %eax, %eax - 0x8d, 0x0c, 0x40, //0x00001384 leal (%rax,%rax,2), %ecx - 0x44, 0x89, 0xe0, //0x00001387 movl %r12d, %eax - 0xd3, 0xe0, //0x0000138a shll %cl, %eax - 0x41, 0x83, 0xfb, 0x02, //0x0000138c cmpl $2, %r11d - 0x48, 0x8b, 0x4d, 0xb0, //0x00001390 movq $-80(%rbp), %rcx - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001394 je LBB1_221 - 0x41, 0x83, 0xfb, 0x03, //0x0000139a cmpl $3, %r11d - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000139e je LBB1_220 - 0x41, 0x83, 0xfb, 0x04, //0x000013a4 cmpl $4, %r11d - 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x000013a8 jne LBB1_222 - 0x88, 0x41, 0x02, //0x000013ae movb %al, $2(%rcx) - //0x000013b1 LBB1_220 - 0x88, 0x61, 0x01, //0x000013b1 movb %ah, $1(%rcx) - //0x000013b4 LBB1_221 - 0xc1, 0xe8, 0x10, //0x000013b4 shrl $16, %eax - 0x88, 0x01, //0x000013b7 movb %al, (%rcx) - //0x000013b9 LBB1_222 - 0x44, 0x89, 0xd8, //0x000013b9 movl %r11d, %eax - 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x000013bc leaq $-1(%rcx,%rax), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x000013c1 movq %rcx, $-80(%rbp) - 0x48, 0x39, 0x4d, 0xc8, //0x000013c5 cmpq %rcx, $-56(%rbp) - 0x0f, 0x83, 0x96, 0xf2, 0xff, 0xff, //0x000013c9 jae LBB1_223 - 0xe9, 0x12, 0x15, 0x00, 0x00, //0x000013cf jmp LBB1_572 - //0x000013d4 LBB1_233 - 0x48, 0x89, 0xc1, //0x000013d4 movq %rax, %rcx - 0x48, 0x8b, 0x55, 0xd0, //0x000013d7 movq $-48(%rbp), %rdx - 0x49, 0x89, 0xc9, //0x000013db movq %rcx, %r9 - 0x48, 0x39, 0xd1, //0x000013de cmpq %rdx, %rcx - 0x0f, 0x83, 0x2e, 0xf9, 0xff, 0xff, //0x000013e1 jae LBB1_143 - //0x000013e7 LBB1_234 - 0x49, 0x8d, 0x41, 0x01, //0x000013e7 leaq $1(%r9), %rax - 0x41, 0x0f, 0xb6, 0x09, //0x000013eb movzbl (%r9), %ecx - 0x80, 0xf9, 0x5c, //0x000013ef cmpb $92, %cl - 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x000013f2 jne LBB1_247 - 0x49, 0x8d, 0x49, 0x02, //0x000013f8 leaq $2(%r9), %rcx - 0x48, 0x39, 0xd1, //0x000013fc cmpq %rdx, %rcx - 0x0f, 0x87, 0x7b, 0x02, 0x00, 0x00, //0x000013ff ja LBB1_258 - 0x0f, 0xb6, 0x00, //0x00001405 movzbl (%rax), %eax - 0x3c, 0x6e, //0x00001408 cmpb $110, %al - 0x0f, 0x84, 0xe2, 0x00, 0x00, 0x00, //0x0000140a je LBB1_249 - 0x3c, 0x72, //0x00001410 cmpb $114, %al - 0x0f, 0x84, 0xda, 0x00, 0x00, 0x00, //0x00001412 je LBB1_249 - 0x3c, 0x75, //0x00001418 cmpb $117, %al - 0x0f, 0x85, 0x55, 0x02, 0x00, 0x00, //0x0000141a jne LBB1_278 - 0x48, 0x8b, 0x45, 0xd0, //0x00001420 movq $-48(%rbp), %rax - 0x48, 0x29, 0xc8, //0x00001424 subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00001427 cmpq $4, %rax - 0x0f, 0x8c, 0x44, 0x02, 0x00, 0x00, //0x0000142b jl LBB1_278 - 0x8b, 0x01, //0x00001431 movl (%rcx), %eax - 0x89, 0xc2, //0x00001433 movl %eax, %edx - 0xf7, 0xd2, //0x00001435 notl %edx - 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001437 leal $-808464432(%rax), %esi - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x0000143d andl $-2139062144, %edx - 0x85, 0xf2, //0x00001443 testl %esi, %edx - 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x00001445 jne LBB1_278 - 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x0000144b leal $421075225(%rax), %esi - 0x09, 0xc6, //0x00001451 orl %eax, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00001453 testl $-2139062144, %esi - 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x00001459 jne LBB1_278 - 0x89, 0xc6, //0x0000145f movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001461 andl $2139062143, %esi - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001467 movl $-1061109568, %edi - 0x29, 0xf7, //0x0000146c subl %esi, %edi - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x0000146e leal $1179010630(%rsi), %ebx - 0x21, 0xd7, //0x00001474 andl %edx, %edi - 0x85, 0xdf, //0x00001476 testl %ebx, %edi - 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x00001478 jne LBB1_278 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000147e movl $-522133280, %edi - 0x29, 0xf7, //0x00001483 subl %esi, %edi - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00001485 addl $960051513, %esi - 0x21, 0xfa, //0x0000148b andl %edi, %edx - 0x85, 0xf2, //0x0000148d testl %esi, %edx - 0x0f, 0x85, 0xe0, 0x01, 0x00, 0x00, //0x0000148f jne LBB1_278 - 0x0f, 0xc8, //0x00001495 bswapl %eax - 0x89, 0xc1, //0x00001497 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00001499 shrl $4, %ecx - 0xf7, 0xd1, //0x0000149c notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000149e andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x000014a4 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x000014a7 andl $252645135, %eax - 0x01, 0xc8, //0x000014ac addl %ecx, %eax - 0x89, 0xc1, //0x000014ae movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x000014b0 shrl $4, %ecx - 0x09, 0xc1, //0x000014b3 orl %eax, %ecx - 0x89, 0xc8, //0x000014b5 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x000014b7 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x000014ba andl $65280, %eax - 0x89, 0xca, //0x000014bf movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000014c1 andl $128, %edx - 0x09, 0xc2, //0x000014c7 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000014c9 je LBB1_246 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000014cf movl $255, %ecx - //0x000014d4 LBB1_246 - 0x49, 0x83, 0xc1, 0x06, //0x000014d4 addq $6, %r9 - 0x4c, 0x89, 0xc8, //0x000014d8 movq %r9, %rax - //0x000014db LBB1_247 - 0x80, 0xf9, 0x0a, //0x000014db cmpb $10, %cl - 0x0f, 0x84, 0xf0, 0xfe, 0xff, 0xff, //0x000014de je LBB1_233 - 0x80, 0xf9, 0x0d, //0x000014e4 cmpb $13, %cl - 0x0f, 0x84, 0xe7, 0xfe, 0xff, 0xff, //0x000014e7 je LBB1_233 - 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000014ed jmp LBB1_254 - //0x000014f2 LBB1_249 - 0x48, 0x89, 0xc8, //0x000014f2 movq %rcx, %rax - 0x48, 0x8b, 0x55, 0xd0, //0x000014f5 movq $-48(%rbp), %rdx - 0x49, 0x89, 0xc9, //0x000014f9 movq %rcx, %r9 - 0x48, 0x39, 0xd1, //0x000014fc cmpq %rdx, %rcx - 0x0f, 0x82, 0xe2, 0xfe, 0xff, 0xff, //0x000014ff jb LBB1_234 - 0xe9, 0x0b, 0xf8, 0xff, 0xff, //0x00001505 jmp LBB1_143 - //0x0000150a LBB1_252 - 0x48, 0x89, 0xca, //0x0000150a movq %rcx, %rdx - 0x49, 0x89, 0xc9, //0x0000150d movq %rcx, %r9 - 0xe9, 0x00, 0xfe, 0xff, 0xff, //0x00001510 jmp LBB1_212 - //0x00001515 LBB1_254 - 0x80, 0xf9, 0x3d, //0x00001515 cmpb $61, %cl - 0x0f, 0x85, 0x62, 0x01, 0x00, 0x00, //0x00001518 jne LBB1_258 - 0x49, 0x89, 0xc1, //0x0000151e movq %rax, %r9 - 0x41, 0x83, 0xfe, 0x04, //0x00001521 cmpl $4, %r14d - 0x0f, 0x84, 0xea, 0xfd, 0xff, 0xff, //0x00001525 je LBB1_212 - 0x48, 0x39, 0x45, 0xd0, //0x0000152b cmpq %rax, $-48(%rbp) - 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x0000152f ja LBB1_261 - 0xe9, 0xdb, 0xf7, 0xff, 0xff, //0x00001535 jmp LBB1_143 - //0x0000153a LBB1_277 - 0x4c, 0x89, 0xc9, //0x0000153a movq %r9, %rcx - 0x48, 0x89, 0xc8, //0x0000153d movq %rcx, %rax - 0x48, 0x3b, 0x4d, 0xd0, //0x00001540 cmpq $-48(%rbp), %rcx - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00001544 jb LBB1_261 - 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x0000154a jmp LBB1_216 - //0x0000154f LBB1_259 - 0x49, 0x89, 0xc9, //0x0000154f movq %rcx, %r9 - 0x48, 0x89, 0xc8, //0x00001552 movq %rcx, %rax - 0x48, 0x3b, 0x4d, 0xd0, //0x00001555 cmpq $-48(%rbp), %rcx - 0x0f, 0x83, 0x1b, 0xfe, 0xff, 0xff, //0x00001559 jae LBB1_216 - //0x0000155f LBB1_261 - 0x4c, 0x8d, 0x48, 0x01, //0x0000155f leaq $1(%rax), %r9 - 0x0f, 0xb6, 0x08, //0x00001563 movzbl (%rax), %ecx - 0x80, 0xf9, 0x5c, //0x00001566 cmpb $92, %cl - 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x00001569 jne LBB1_274 - 0x48, 0x8d, 0x48, 0x02, //0x0000156f leaq $2(%rax), %rcx - 0x48, 0x3b, 0x4d, 0xd0, //0x00001573 cmpq $-48(%rbp), %rcx - 0x0f, 0x87, 0x00, 0x01, 0x00, 0x00, //0x00001577 ja LBB1_279 - 0x41, 0x0f, 0xb6, 0x11, //0x0000157d movzbl (%r9), %edx - 0x80, 0xfa, 0x6e, //0x00001581 cmpb $110, %dl - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00001584 je LBB1_259 - 0x80, 0xfa, 0x72, //0x0000158a cmpb $114, %dl - 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000158d je LBB1_259 - 0x80, 0xfa, 0x75, //0x00001593 cmpb $117, %dl - 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00001596 jne LBB1_278 - 0x48, 0x8b, 0x55, 0xd0, //0x0000159c movq $-48(%rbp), %rdx - 0x48, 0x29, 0xca, //0x000015a0 subq %rcx, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x000015a3 cmpq $4, %rdx - 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x000015a7 jl LBB1_278 - 0x8b, 0x11, //0x000015ad movl (%rcx), %edx - 0x89, 0xd6, //0x000015af movl %edx, %esi - 0xf7, 0xd6, //0x000015b1 notl %esi - 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x000015b3 leal $-808464432(%rdx), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000015b9 andl $-2139062144, %esi - 0x85, 0xfe, //0x000015bf testl %edi, %esi - 0x0f, 0x85, 0xae, 0x00, 0x00, 0x00, //0x000015c1 jne LBB1_278 - 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x000015c7 leal $421075225(%rdx), %edi - 0x09, 0xd7, //0x000015cd orl %edx, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x000015cf testl $-2139062144, %edi - 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000015d5 jne LBB1_278 - 0x89, 0xd7, //0x000015db movl %edx, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x000015dd andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000015e3 movl $-1061109568, %ebx - 0x29, 0xfb, //0x000015e8 subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000015ea leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x000015f1 andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x000015f3 testl %r8d, %ebx - 0x0f, 0x85, 0x79, 0x00, 0x00, 0x00, //0x000015f6 jne LBB1_278 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000015fc movl $-522133280, %ebx - 0x29, 0xfb, //0x00001601 subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001603 addl $960051513, %edi - 0x21, 0xde, //0x00001609 andl %ebx, %esi - 0x85, 0xfe, //0x0000160b testl %edi, %esi - 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x0000160d jne LBB1_278 - 0x0f, 0xca, //0x00001613 bswapl %edx - 0x89, 0xd1, //0x00001615 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x00001617 shrl $4, %ecx - 0xf7, 0xd1, //0x0000161a notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000161c andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001622 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001625 andl $252645135, %edx - 0x01, 0xca, //0x0000162b addl %ecx, %edx - 0x89, 0xd1, //0x0000162d movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x0000162f shrl $4, %ecx - 0x09, 0xd1, //0x00001632 orl %edx, %ecx - 0x89, 0xca, //0x00001634 movl %ecx, %edx - 0xc1, 0xea, 0x08, //0x00001636 shrl $8, %edx - 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00001639 andl $65280, %edx - 0x89, 0xce, //0x0000163f movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00001641 andl $128, %esi - 0x09, 0xd6, //0x00001647 orl %edx, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00001649 je LBB1_273 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x0000164f movl $255, %ecx - //0x00001654 LBB1_273 - 0x48, 0x83, 0xc0, 0x06, //0x00001654 addq $6, %rax - 0x49, 0x89, 0xc1, //0x00001658 movq %rax, %r9 - //0x0000165b LBB1_274 - 0x80, 0xf9, 0x0a, //0x0000165b cmpb $10, %cl - 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x0000165e je LBB1_277 - 0x80, 0xf9, 0x0d, //0x00001664 cmpb $13, %cl - 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00001667 je LBB1_277 - 0x80, 0xf9, 0x3d, //0x0000166d cmpb $61, %cl - 0xe9, 0xa0, 0xfc, 0xff, 0xff, //0x00001670 jmp LBB1_212 - //0x00001675 LBB1_278 - 0x49, 0x89, 0xc9, //0x00001675 movq %rcx, %r9 - 0xe9, 0x98, 0xfc, 0xff, 0xff, //0x00001678 jmp LBB1_212 - //0x0000167d LBB1_279 - 0x4c, 0x89, 0xc8, //0x0000167d movq %r9, %rax - //0x00001680 LBB1_258 - 0x49, 0x89, 0xc1, //0x00001680 movq %rax, %r9 - 0xe9, 0x8d, 0xfc, 0xff, 0xff, //0x00001683 jmp LBB1_212 - //0x00001688 LBB1_282 - 0x31, 0xc0, //0x00001688 xorl %eax, %eax - 0xe9, 0x39, 0x33, 0x00, 0x00, //0x0000168a jmp LBB1_1139 - //0x0000168f LBB1_283 - 0x48, 0x8b, 0x45, 0x90, //0x0000168f movq $-112(%rbp), %rax - 0x4c, 0x8d, 0x60, 0xe0, //0x00001693 leaq $-32(%rax), %r12 - 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00001697 movq $-136(%rbp), %rax - 0x49, 0x39, 0xc4, //0x0000169e cmpq %rax, %r12 - 0x0f, 0x82, 0xad, 0x22, 0x00, 0x00, //0x000016a1 jb LBB1_854 - 0x4c, 0x8d, 0x53, 0xe0, //0x000016a7 leaq $-32(%rbx), %r10 - 0x48, 0x89, 0x45, 0xb0, //0x000016ab movq %rax, $-80(%rbp) - 0x48, 0x8b, 0x45, 0xa8, //0x000016af movq $-88(%rbp), %rax - 0x49, 0x89, 0xc7, //0x000016b3 movq %rax, %r15 - 0x49, 0x39, 0xc2, //0x000016b6 cmpq %rax, %r10 - 0x0f, 0x82, 0xf9, 0xee, 0xff, 0xff, //0x000016b9 jb LBB1_2 - 0xc4, 0xc1, 0x7e, 0x6f, 0x41, 0x20, //0x000016bf vmovdqu $32(%r9), %ymm0 - 0x4c, 0x8b, 0x6d, 0xa8, //0x000016c5 movq $-88(%rbp), %r13 - 0x48, 0x8b, 0x45, 0x88, //0x000016c9 movq $-120(%rbp), %rax - 0x4a, 0x8d, 0x4c, 0x28, 0xfe, //0x000016cd leaq $-2(%rax,%r13), %rcx - 0x48, 0x89, 0x4d, 0xa0, //0x000016d2 movq %rcx, $-96(%rbp) - 0x4a, 0x8d, 0x44, 0x28, 0xfd, //0x000016d6 leaq $-3(%rax,%r13), %rax - 0x48, 0x89, 0x45, 0x80, //0x000016db movq %rax, $-128(%rbp) - 0xc5, 0xfd, 0x6f, 0x0d, 0x79, 0xed, 0xff, 0xff, //0x000016df vmovdqa $-4743(%rip), %ymm1 /* LCPI1_0+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x15, 0x91, 0xed, 0xff, 0xff, //0x000016e7 vmovdqa $-4719(%rip), %ymm2 /* LCPI1_1+0(%rip) */ - 0xc5, 0xe1, 0xef, 0xdb, //0x000016ef vpxor %xmm3, %xmm3, %xmm3 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000016f3 movabsq $-4294967296, %r8 - 0xc5, 0x7d, 0x6f, 0x2d, 0x9b, 0xed, 0xff, 0xff, //0x000016fd vmovdqa $-4709(%rip), %ymm13 /* LCPI1_2+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x2d, 0xb3, 0xed, 0xff, 0xff, //0x00001705 vmovdqa $-4685(%rip), %ymm5 /* LCPI1_3+0(%rip) */ - 0xc5, 0xfd, 0x6f, 0x35, 0xcb, 0xed, 0xff, 0xff, //0x0000170d vmovdqa $-4661(%rip), %ymm6 /* LCPI1_4+0(%rip) */ - 0xc5, 0xf9, 0x6f, 0x3d, 0x03, 0xee, 0xff, 0xff, //0x00001715 vmovdqa $-4605(%rip), %xmm7 /* LCPI1_5+0(%rip) */ - 0xc5, 0x7d, 0x6f, 0x05, 0xdb, 0xed, 0xff, 0xff, //0x0000171d vmovdqa $-4645(%rip), %ymm8 /* LCPI1_6+0(%rip) */ - 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00001725 movq $-136(%rbp), %rax - 0x48, 0x89, 0x45, 0xb0, //0x0000172c movq %rax, $-80(%rbp) - 0x4d, 0x89, 0xef, //0x00001730 movq %r13, %r15 - 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00001733 jmp LBB1_286 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001738 .p2align 4, 0x90 - //0x00001740 LBB1_295 - 0xc4, 0x41, 0x35, 0x74, 0x59, 0x40, //0x00001740 vpcmpeqb $64(%r9), %ymm9, %ymm11 - 0xc4, 0x41, 0x7e, 0x6f, 0x21, //0x00001746 vmovdqu (%r9), %ymm12 - 0xc4, 0x42, 0x1d, 0x00, 0xd2, //0x0000174b vpshufb %ymm10, %ymm12, %ymm10 - 0xc4, 0x43, 0x2d, 0x4c, 0x51, 0x60, 0xb0, //0x00001750 vpblendvb %ymm11, $96(%r9), %ymm10, %ymm10 - 0xc4, 0x41, 0x2d, 0xfc, 0xc9, //0x00001757 vpaddb %ymm9, %ymm10, %ymm9 - 0xc4, 0x41, 0x35, 0xdb, 0xcd, //0x0000175c vpand %ymm13, %ymm9, %ymm9 - 0xc4, 0x62, 0x35, 0x04, 0xcd, //0x00001761 vpmaddubsw %ymm5, %ymm9, %ymm9 - 0xc5, 0x35, 0xf5, 0xce, //0x00001766 vpmaddwd %ymm6, %ymm9, %ymm9 - 0xc4, 0x63, 0x7d, 0x39, 0xcc, 0x01, //0x0000176a vextracti128 $1, %ymm9, %xmm4 - 0xc4, 0xe2, 0x59, 0x00, 0xe7, //0x00001770 vpshufb %xmm7, %xmm4, %xmm4 - 0xc4, 0x42, 0x35, 0x00, 0xc8, //0x00001775 vpshufb %ymm8, %ymm9, %ymm9 - 0xc4, 0xe3, 0x35, 0x02, 0xe4, 0x08, //0x0000177a vpblendd $8, %ymm4, %ymm9, %ymm4 - 0xc4, 0xe3, 0x5d, 0x02, 0xe3, 0xc0, //0x00001780 vpblendd $192, %ymm3, %ymm4, %ymm4 - 0x48, 0x8b, 0x4d, 0xb0, //0x00001786 movq $-80(%rbp), %rcx - 0xc5, 0xfe, 0x7f, 0x21, //0x0000178a vmovdqu %ymm4, (%rcx) - 0x49, 0x83, 0xc7, 0x20, //0x0000178e addq $32, %r15 - 0x48, 0x83, 0xc1, 0x18, //0x00001792 addq $24, %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x00001796 movq %rcx, $-80(%rbp) - 0x49, 0x39, 0xcc, //0x0000179a cmpq %rcx, %r12 - 0x0f, 0x82, 0x15, 0xee, 0xff, 0xff, //0x0000179d jb LBB1_2 - //0x000017a3 LBB1_506 - 0x4d, 0x89, 0xfd, //0x000017a3 movq %r15, %r13 - 0x4d, 0x39, 0xfa, //0x000017a6 cmpq %r15, %r10 - 0x0f, 0x82, 0x09, 0xee, 0xff, 0xff, //0x000017a9 jb LBB1_2 - //0x000017af LBB1_286 - 0xc4, 0x41, 0x7e, 0x6f, 0x4d, 0x00, //0x000017af vmovdqu (%r13), %ymm9 - 0xc4, 0xc1, 0x2d, 0x72, 0xd1, 0x04, //0x000017b5 vpsrld $4, %ymm9, %ymm10 - 0xc5, 0x2d, 0xdb, 0xd1, //0x000017bb vpand %ymm1, %ymm10, %ymm10 - 0xc5, 0x35, 0xdb, 0xd9, //0x000017bf vpand %ymm1, %ymm9, %ymm11 - 0xc4, 0x42, 0x7d, 0x00, 0xdb, //0x000017c3 vpshufb %ymm11, %ymm0, %ymm11 - 0xc4, 0x42, 0x6d, 0x00, 0xe2, //0x000017c8 vpshufb %ymm10, %ymm2, %ymm12 - 0xc4, 0x41, 0x1d, 0xdb, 0xdb, //0x000017cd vpand %ymm11, %ymm12, %ymm11 - 0xc5, 0x25, 0x74, 0xdb, //0x000017d2 vpcmpeqb %ymm3, %ymm11, %ymm11 - 0xc4, 0xc1, 0x7d, 0xd7, 0xc3, //0x000017d6 vpmovmskb %ymm11, %eax - 0x4c, 0x09, 0xc0, //0x000017db orq %r8, %rax - 0x48, 0x0f, 0xbc, 0xc0, //0x000017de bsfq %rax, %rax - 0x83, 0xf8, 0x1f, //0x000017e2 cmpl $31, %eax - 0x0f, 0x87, 0x55, 0xff, 0xff, 0xff, //0x000017e5 ja LBB1_295 - 0x4c, 0x39, 0xfb, //0x000017eb cmpq %r15, %rbx - 0x0f, 0x86, 0x3c, 0x02, 0x00, 0x00, //0x000017ee jbe LBB1_320 - 0xf6, 0x45, 0xbc, 0x08, //0x000017f4 testb $8, $-68(%rbp) - 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000017f8 je LBB1_291 - 0x4c, 0x89, 0xf8, //0x000017fe movq %r15, %rax - 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x00001801 jmp LBB1_303 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001806 .p2align 4, 0x90 - //0x00001810 LBB1_290 - 0x49, 0xff, 0xc7, //0x00001810 incq %r15 - 0x49, 0x39, 0xdf, //0x00001813 cmpq %rbx, %r15 - 0x0f, 0x83, 0x00, 0x02, 0x00, 0x00, //0x00001816 jae LBB1_318 - //0x0000181c LBB1_291 - 0x45, 0x0f, 0xb6, 0x37, //0x0000181c movzbl (%r15), %r14d - 0x49, 0x83, 0xfe, 0x0d, //0x00001820 cmpq $13, %r14 - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00001824 je LBB1_290 - 0x41, 0x80, 0xfe, 0x0a, //0x0000182a cmpb $10, %r14b - 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000182e je LBB1_290 - 0x48, 0x8b, 0x45, 0xc0, //0x00001834 movq $-64(%rbp), %rax - 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001838 movzbl (%rax,%r14), %eax - 0x49, 0xff, 0xc7, //0x0000183d incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001840 cmpl $255, %eax - 0x0f, 0x84, 0xb0, 0x02, 0x00, 0x00, //0x00001845 je LBB1_333 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000184b movl $1, %r11d - 0x49, 0x39, 0xdf, //0x00001851 cmpq %rbx, %r15 - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001854 jb LBB1_297 - 0xe9, 0x4e, 0x0c, 0x00, 0x00, //0x0000185a jmp LBB1_492 - 0x90, //0x0000185f .p2align 4, 0x90 - //0x00001860 LBB1_296 - 0x49, 0xff, 0xc7, //0x00001860 incq %r15 - 0x49, 0x39, 0xdf, //0x00001863 cmpq %rbx, %r15 - 0x0f, 0x83, 0x90, 0x04, 0x00, 0x00, //0x00001866 jae LBB1_364 - //0x0000186c LBB1_297 - 0x45, 0x0f, 0xb6, 0x37, //0x0000186c movzbl (%r15), %r14d - 0x49, 0x83, 0xfe, 0x0d, //0x00001870 cmpq $13, %r14 - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00001874 je LBB1_296 - 0x41, 0x80, 0xfe, 0x0a, //0x0000187a cmpb $10, %r14b - 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000187e je LBB1_296 - 0x89, 0x45, 0xc8, //0x00001884 movl %eax, $-56(%rbp) - 0x48, 0x8b, 0x45, 0xc0, //0x00001887 movq $-64(%rbp), %rax - 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x0000188b movzbl (%rax,%r14), %eax - 0x49, 0xff, 0xc7, //0x00001890 incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001893 cmpl $255, %eax - 0x0f, 0x84, 0xe0, 0x06, 0x00, 0x00, //0x00001898 je LBB1_422 - 0x8b, 0x4d, 0xc8, //0x0000189e movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x000018a1 shll $6, %ecx - 0x09, 0xc1, //0x000018a4 orl %eax, %ecx - 0x89, 0xc8, //0x000018a6 movl %ecx, %eax - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000018a8 movl $2, %r11d - 0x49, 0x39, 0xdf, //0x000018ae cmpq %rbx, %r15 - 0x0f, 0x82, 0xab, 0x01, 0x00, 0x00, //0x000018b1 jb LBB1_322 - 0xe9, 0xf1, 0x0b, 0x00, 0x00, //0x000018b7 jmp LBB1_492 - //0x000018bc LBB1_301 - 0x80, 0xfa, 0x6e, //0x000018bc cmpb $110, %dl - 0x0f, 0x85, 0xf5, 0x01, 0x00, 0x00, //0x000018bf jne LBB1_327 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018c5 .p2align 4, 0x90 - //0x000018d0 LBB1_302 - 0x4c, 0x89, 0xf8, //0x000018d0 movq %r15, %rax - 0x49, 0x39, 0xdf, //0x000018d3 cmpq %rbx, %r15 - 0x0f, 0x83, 0x40, 0x01, 0x00, 0x00, //0x000018d6 jae LBB1_318 - //0x000018dc LBB1_303 - 0x48, 0x8d, 0x50, 0x01, //0x000018dc leaq $1(%rax), %rdx - 0x44, 0x0f, 0xb6, 0x30, //0x000018e0 movzbl (%rax), %r14d - 0x41, 0x80, 0xfe, 0x5c, //0x000018e4 cmpb $92, %r14b - 0x0f, 0x85, 0x12, 0x01, 0x00, 0x00, //0x000018e8 jne LBB1_316 - 0x4c, 0x8d, 0x78, 0x02, //0x000018ee leaq $2(%rax), %r15 - 0x41, 0xb6, 0xff, //0x000018f2 movb $-1, %r14b - 0x49, 0x39, 0xdf, //0x000018f5 cmpq %rbx, %r15 - 0x0f, 0x87, 0xb4, 0x01, 0x00, 0x00, //0x000018f8 ja LBB1_326 - 0x0f, 0xb6, 0x12, //0x000018fe movzbl (%rdx), %edx - 0x80, 0xfa, 0x71, //0x00001901 cmpb $113, %dl - 0x0f, 0x8e, 0xb2, 0xff, 0xff, 0xff, //0x00001904 jle LBB1_301 - 0x80, 0xfa, 0x72, //0x0000190a cmpb $114, %dl - 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x0000190d je LBB1_302 - 0x80, 0xfa, 0x75, //0x00001913 cmpb $117, %dl - 0x0f, 0x85, 0xaa, 0x01, 0x00, 0x00, //0x00001916 jne LBB1_329 - 0x48, 0x8b, 0x4d, 0xd0, //0x0000191c movq $-48(%rbp), %rcx - 0x4c, 0x29, 0xf9, //0x00001920 subq %r15, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00001923 cmpq $4, %rcx - 0x0f, 0x8c, 0x99, 0x01, 0x00, 0x00, //0x00001927 jl LBB1_329 - 0x41, 0x8b, 0x1f, //0x0000192d movl (%r15), %ebx - 0x89, 0xdf, //0x00001930 movl %ebx, %edi - 0xf7, 0xd7, //0x00001932 notl %edi - 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001934 leal $-808464432(%rbx), %ecx - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000193a andl $-2139062144, %edi - 0x85, 0xcf, //0x00001940 testl %ecx, %edi - 0x0f, 0x85, 0x7e, 0x01, 0x00, 0x00, //0x00001942 jne LBB1_329 - 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00001948 leal $421075225(%rbx), %ecx - 0x09, 0xd9, //0x0000194e orl %ebx, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001950 testl $-2139062144, %ecx - 0x0f, 0x85, 0x6a, 0x01, 0x00, 0x00, //0x00001956 jne LBB1_329 - 0x89, 0xda, //0x0000195c movl %ebx, %edx - 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000195e andl $2139062143, %edx - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001964 movl $-1061109568, %ecx - 0x29, 0xd1, //0x00001969 subl %edx, %ecx - 0x8d, 0xb2, 0x46, 0x46, 0x46, 0x46, //0x0000196b leal $1179010630(%rdx), %esi - 0x21, 0xf9, //0x00001971 andl %edi, %ecx - 0x85, 0xf1, //0x00001973 testl %esi, %ecx - 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x00001975 jne LBB1_329 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000197b movl $-522133280, %ecx - 0x29, 0xd1, //0x00001980 subl %edx, %ecx - 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00001982 addl $960051513, %edx - 0x21, 0xcf, //0x00001988 andl %ecx, %edi - 0x85, 0xd7, //0x0000198a testl %edx, %edi - 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x0000198c jne LBB1_329 - 0x0f, 0xcb, //0x00001992 bswapl %ebx - 0x89, 0xd9, //0x00001994 movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00001996 shrl $4, %ecx - 0xf7, 0xd1, //0x00001999 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000199b andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x000019a1 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x000019a4 andl $252645135, %ebx - 0x01, 0xcb, //0x000019aa addl %ecx, %ebx - 0x41, 0x89, 0xde, //0x000019ac movl %ebx, %r14d - 0x41, 0xc1, 0xee, 0x04, //0x000019af shrl $4, %r14d - 0x41, 0x09, 0xde, //0x000019b3 orl %ebx, %r14d - 0x44, 0x89, 0xf1, //0x000019b6 movl %r14d, %ecx - 0xc1, 0xe9, 0x08, //0x000019b9 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000019bc andl $65280, %ecx - 0x44, 0x89, 0xf2, //0x000019c2 movl %r14d, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000019c5 andl $128, %edx - 0x09, 0xca, //0x000019cb orl %ecx, %edx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000019cd je LBB1_315 - 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x000019d3 movl $255, %r14d - //0x000019d9 LBB1_315 - 0x48, 0x83, 0xc0, 0x06, //0x000019d9 addq $6, %rax - 0x49, 0x89, 0xc7, //0x000019dd movq %rax, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x000019e0 movq $-48(%rbp), %rbx - 0x41, 0x80, 0xfe, 0x0d, //0x000019e4 cmpb $13, %r14b - 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x000019e8 jne LBB1_317 - 0xe9, 0xdd, 0xfe, 0xff, 0xff, //0x000019ee jmp LBB1_302 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019f3 .p2align 4, 0x90 - //0x00001a00 LBB1_316 - 0x49, 0x89, 0xd7, //0x00001a00 movq %rdx, %r15 - 0x41, 0x80, 0xfe, 0x0d, //0x00001a03 cmpb $13, %r14b - 0x0f, 0x84, 0xc3, 0xfe, 0xff, 0xff, //0x00001a07 je LBB1_302 - //0x00001a0d LBB1_317 - 0x41, 0x80, 0xfe, 0x0a, //0x00001a0d cmpb $10, %r14b - 0x0f, 0x84, 0xb9, 0xfe, 0xff, 0xff, //0x00001a11 je LBB1_302 - 0xe9, 0xae, 0x00, 0x00, 0x00, //0x00001a17 jmp LBB1_330 - //0x00001a1c LBB1_318 - 0x31, 0xc0, //0x00001a1c xorl %eax, %eax - 0x45, 0x31, 0xdb, //0x00001a1e xorl %r11d, %r11d - //0x00001a21 LBB1_319 - 0x45, 0x85, 0xdb, //0x00001a21 testl %r11d, %r11d - 0x0f, 0x85, 0x83, 0x0a, 0x00, 0x00, //0x00001a24 jne LBB1_492 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a2a .p2align 4, 0x90 - //0x00001a30 LBB1_320 - 0x48, 0x8b, 0x4d, 0xb0, //0x00001a30 movq $-80(%rbp), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x00001a34 movq %rcx, $-80(%rbp) - 0x49, 0x39, 0xcc, //0x00001a38 cmpq %rcx, %r12 - 0x0f, 0x83, 0x62, 0xfd, 0xff, 0xff, //0x00001a3b jae LBB1_506 - 0xe9, 0x72, 0xeb, 0xff, 0xff, //0x00001a41 jmp LBB1_2 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a46 .p2align 4, 0x90 - //0x00001a50 LBB1_321 - 0x49, 0xff, 0xc7, //0x00001a50 incq %r15 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001a53 movl $2, %r11d - 0x49, 0x39, 0xdf, //0x00001a59 cmpq %rbx, %r15 - 0x0f, 0x83, 0xbf, 0xff, 0xff, 0xff, //0x00001a5c jae LBB1_319 - //0x00001a62 LBB1_322 - 0x45, 0x0f, 0xb6, 0x37, //0x00001a62 movzbl (%r15), %r14d - 0x49, 0x83, 0xfe, 0x0d, //0x00001a66 cmpq $13, %r14 - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001a6a je LBB1_321 - 0x41, 0x80, 0xfe, 0x0a, //0x00001a70 cmpb $10, %r14b - 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00001a74 je LBB1_321 - 0x89, 0x45, 0xc8, //0x00001a7a movl %eax, $-56(%rbp) - 0x48, 0x8b, 0x45, 0xc0, //0x00001a7d movq $-64(%rbp), %rax - 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001a81 movzbl (%rax,%r14), %eax - 0x49, 0xff, 0xc7, //0x00001a86 incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001a89 cmpl $255, %eax - 0x0f, 0x84, 0x67, 0x09, 0x00, 0x00, //0x00001a8e je LBB1_458 - 0x8b, 0x4d, 0xc8, //0x00001a94 movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x00001a97 shll $6, %ecx - 0x09, 0xc1, //0x00001a9a orl %eax, %ecx - 0x89, 0xc8, //0x00001a9c movl %ecx, %eax - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001a9e movl $3, %r11d - 0x49, 0x39, 0xdf, //0x00001aa4 cmpq %rbx, %r15 - 0x0f, 0x82, 0xec, 0x03, 0x00, 0x00, //0x00001aa7 jb LBB1_387 - 0xe9, 0xfb, 0x09, 0x00, 0x00, //0x00001aad jmp LBB1_492 - //0x00001ab2 LBB1_326 - 0x49, 0x89, 0xd7, //0x00001ab2 movq %rdx, %r15 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001ab5 jmp LBB1_330 - //0x00001aba LBB1_327 - 0x80, 0xfa, 0x2f, //0x00001aba cmpb $47, %dl - 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x00001abd jne LBB1_329 - 0x41, 0x89, 0xd6, //0x00001ac3 movl %edx, %r14d - //0x00001ac6 LBB1_329 - 0x48, 0x8b, 0x5d, 0xd0, //0x00001ac6 movq $-48(%rbp), %rbx - //0x00001aca LBB1_330 - 0x41, 0x0f, 0xb6, 0xc6, //0x00001aca movzbl %r14b, %eax - 0x48, 0x8b, 0x4d, 0xc0, //0x00001ace movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x04, 0x01, //0x00001ad2 movzbl (%rcx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001ad6 cmpl $255, %eax - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001adb je LBB1_333 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001ae1 movl $1, %r11d - 0x49, 0x39, 0xdf, //0x00001ae7 cmpq %rbx, %r15 - 0x0f, 0x83, 0xbd, 0x09, 0x00, 0x00, //0x00001aea jae LBB1_492 - 0x89, 0x45, 0xc8, //0x00001af0 movl %eax, $-56(%rbp) - 0x4c, 0x89, 0xf8, //0x00001af3 movq %r15, %rax - 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00001af6 jmp LBB1_349 - //0x00001afb LBB1_333 - 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00001afb movl $0, $-56(%rbp) - 0x45, 0x31, 0xdb, //0x00001b02 xorl %r11d, %r11d - //0x00001b05 LBB1_334 - 0xf6, 0x45, 0xbc, 0x02, //0x00001b05 testb $2, $-68(%rbp) - 0x0f, 0x85, 0xca, 0x09, 0x00, 0x00, //0x00001b09 jne LBB1_495 - 0x41, 0x83, 0xfb, 0x02, //0x00001b0f cmpl $2, %r11d - 0x0f, 0x82, 0xc0, 0x09, 0x00, 0x00, //0x00001b13 jb LBB1_495 - 0x41, 0x80, 0xfe, 0x3d, //0x00001b19 cmpb $61, %r14b - 0x0f, 0x85, 0xb6, 0x09, 0x00, 0x00, //0x00001b1d jne LBB1_495 - 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00001b23 movl $5, %esi - 0x44, 0x29, 0xde, //0x00001b28 subl %r11d, %esi - 0xf6, 0x45, 0xbc, 0x08, //0x00001b2b testb $8, $-68(%rbp) - 0x0f, 0x85, 0xd2, 0x01, 0x00, 0x00, //0x00001b2f jne LBB1_365 - 0x4c, 0x39, 0x7d, 0xd0, //0x00001b35 cmpq %r15, $-48(%rbp) - 0x0f, 0x86, 0x74, 0x0b, 0x00, 0x00, //0x00001b39 jbe LBB1_499 - 0x49, 0x8d, 0x57, 0x03, //0x00001b3f leaq $3(%r15), %rdx - 0x48, 0x8b, 0x45, 0xa0, //0x00001b43 movq $-96(%rbp), %rax - 0x4c, 0x29, 0xf8, //0x00001b47 subq %r15, %rax - 0x49, 0x8d, 0x5f, 0x04, //0x00001b4a leaq $4(%r15), %rbx - 0x48, 0x8b, 0x7d, 0x80, //0x00001b4e movq $-128(%rbp), %rdi - 0x4c, 0x29, 0xff, //0x00001b52 subq %r15, %rdi - 0xe9, 0x1f, 0x00, 0x00, 0x00, //0x00001b55 jmp LBB1_341 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b5a .p2align 4, 0x90 - //0x00001b60 LBB1_340 - 0x49, 0xff, 0xc7, //0x00001b60 incq %r15 - 0x48, 0xff, 0xc2, //0x00001b63 incq %rdx - 0x48, 0xff, 0xc8, //0x00001b66 decq %rax - 0x48, 0xff, 0xc3, //0x00001b69 incq %rbx - 0x48, 0xff, 0xcf, //0x00001b6c decq %rdi - 0x4c, 0x39, 0x7d, 0xd0, //0x00001b6f cmpq %r15, $-48(%rbp) - 0x0f, 0x84, 0x51, 0x05, 0x00, 0x00, //0x00001b73 je LBB1_498 - //0x00001b79 LBB1_341 - 0x41, 0x0f, 0xb6, 0x0f, //0x00001b79 movzbl (%r15), %ecx - 0x80, 0xf9, 0x0a, //0x00001b7d cmpb $10, %cl - 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001b80 je LBB1_340 - 0x80, 0xf9, 0x0d, //0x00001b86 cmpb $13, %cl - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00001b89 je LBB1_340 - 0x80, 0xf9, 0x3d, //0x00001b8f cmpb $61, %cl - 0x0f, 0x85, 0x43, 0x05, 0x00, 0x00, //0x00001b92 jne LBB1_426 - 0x49, 0xff, 0xc7, //0x00001b98 incq %r15 - 0x83, 0xfe, 0x02, //0x00001b9b cmpl $2, %esi - 0x0f, 0x84, 0x35, 0x09, 0x00, 0x00, //0x00001b9e je LBB1_495 - 0x4c, 0x39, 0x7d, 0xd0, //0x00001ba4 cmpq %r15, $-48(%rbp) - 0x0f, 0x87, 0x41, 0x03, 0x00, 0x00, //0x00001ba8 ja LBB1_392 - 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x00001bae jmp LBB1_499 - //0x00001bb3 LBB1_346 - 0x80, 0xfb, 0x6e, //0x00001bb3 cmpb $110, %bl - 0x0f, 0x85, 0x6d, 0x03, 0x00, 0x00, //0x00001bb6 jne LBB1_398 - //0x00001bbc LBB1_347 - 0x49, 0x89, 0xd7, //0x00001bbc movq %rdx, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00001bbf movq $-48(%rbp), %rbx - //0x00001bc3 LBB1_348 - 0x4c, 0x89, 0xf8, //0x00001bc3 movq %r15, %rax - 0x49, 0x39, 0xdf, //0x00001bc6 cmpq %rbx, %r15 - 0x0f, 0x83, 0xaa, 0x02, 0x00, 0x00, //0x00001bc9 jae LBB1_385 - //0x00001bcf LBB1_349 - 0x4c, 0x8d, 0x78, 0x01, //0x00001bcf leaq $1(%rax), %r15 - 0x44, 0x0f, 0xb6, 0x30, //0x00001bd3 movzbl (%rax), %r14d - 0x41, 0x80, 0xfe, 0x5c, //0x00001bd7 cmpb $92, %r14b - 0x0f, 0x85, 0x02, 0x01, 0x00, 0x00, //0x00001bdb jne LBB1_362 - 0x48, 0x8d, 0x50, 0x02, //0x00001be1 leaq $2(%rax), %rdx - 0x41, 0xb6, 0xff, //0x00001be5 movb $-1, %r14b - 0x48, 0x39, 0xda, //0x00001be8 cmpq %rbx, %rdx - 0x0f, 0x87, 0x55, 0x03, 0x00, 0x00, //0x00001beb ja LBB1_401 - 0x41, 0x0f, 0xb6, 0x1f, //0x00001bf1 movzbl (%r15), %ebx - 0x80, 0xfb, 0x71, //0x00001bf5 cmpb $113, %bl - 0x0f, 0x8e, 0xb5, 0xff, 0xff, 0xff, //0x00001bf8 jle LBB1_346 - 0x80, 0xfb, 0x72, //0x00001bfe cmpb $114, %bl - 0x0f, 0x84, 0xb5, 0xff, 0xff, 0xff, //0x00001c01 je LBB1_347 - 0x80, 0xfb, 0x75, //0x00001c07 cmpb $117, %bl - 0x0f, 0x85, 0x25, 0x03, 0x00, 0x00, //0x00001c0a jne LBB1_400 - 0x48, 0x8b, 0x4d, 0xd0, //0x00001c10 movq $-48(%rbp), %rcx - 0x48, 0x29, 0xd1, //0x00001c14 subq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00001c17 cmpq $4, %rcx - 0x0f, 0x8c, 0x14, 0x03, 0x00, 0x00, //0x00001c1b jl LBB1_400 - 0x8b, 0x32, //0x00001c21 movl (%rdx), %esi - 0x89, 0xf3, //0x00001c23 movl %esi, %ebx - 0xf7, 0xd3, //0x00001c25 notl %ebx - 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c27 leal $-808464432(%rsi), %ecx - 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00001c2d andl $-2139062144, %ebx - 0x85, 0xcb, //0x00001c33 testl %ecx, %ebx - 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x00001c35 jne LBB1_400 - 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x00001c3b leal $421075225(%rsi), %ecx - 0x09, 0xf1, //0x00001c41 orl %esi, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001c43 testl $-2139062144, %ecx - 0x0f, 0x85, 0xe6, 0x02, 0x00, 0x00, //0x00001c49 jne LBB1_400 - 0x89, 0xf7, //0x00001c4f movl %esi, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c51 andl $2139062143, %edi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c57 movl $-1061109568, %ecx - 0x29, 0xf9, //0x00001c5c subl %edi, %ecx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00001c5e leal $1179010630(%rdi), %r8d - 0x21, 0xd9, //0x00001c65 andl %ebx, %ecx - 0x44, 0x85, 0xc1, //0x00001c67 testl %r8d, %ecx - 0x0f, 0x85, 0xc5, 0x02, 0x00, 0x00, //0x00001c6a jne LBB1_400 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001c70 movl $-522133280, %ecx - 0x29, 0xf9, //0x00001c75 subl %edi, %ecx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001c77 addl $960051513, %edi - 0x21, 0xcb, //0x00001c7d andl %ecx, %ebx - 0x85, 0xfb, //0x00001c7f testl %edi, %ebx - 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x00001c81 jne LBB1_400 - 0x0f, 0xce, //0x00001c87 bswapl %esi - 0x89, 0xf1, //0x00001c89 movl %esi, %ecx - 0xc1, 0xe9, 0x04, //0x00001c8b shrl $4, %ecx - 0xf7, 0xd1, //0x00001c8e notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001c90 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001c96 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001c99 andl $252645135, %esi - 0x01, 0xce, //0x00001c9f addl %ecx, %esi - 0x41, 0x89, 0xf6, //0x00001ca1 movl %esi, %r14d - 0x41, 0xc1, 0xee, 0x04, //0x00001ca4 shrl $4, %r14d - 0x41, 0x09, 0xf6, //0x00001ca8 orl %esi, %r14d - 0x44, 0x89, 0xf1, //0x00001cab movl %r14d, %ecx - 0xc1, 0xe9, 0x08, //0x00001cae shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001cb1 andl $65280, %ecx - 0x44, 0x89, 0xf2, //0x00001cb7 movl %r14d, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00001cba andl $128, %edx - 0x09, 0xca, //0x00001cc0 orl %ecx, %edx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001cc2 je LBB1_361 - 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x00001cc8 movl $255, %r14d - //0x00001cce LBB1_361 - 0x48, 0x83, 0xc0, 0x06, //0x00001cce addq $6, %rax - 0x49, 0x89, 0xc7, //0x00001cd2 movq %rax, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00001cd5 movq $-48(%rbp), %rbx - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001cd9 movabsq $-4294967296, %r8 - //0x00001ce3 LBB1_362 - 0x41, 0x80, 0xfe, 0x0a, //0x00001ce3 cmpb $10, %r14b - 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00001ce7 je LBB1_348 - 0x41, 0x80, 0xfe, 0x0d, //0x00001ced cmpb $13, %r14b - 0x0f, 0x84, 0xcc, 0xfe, 0xff, 0xff, //0x00001cf1 je LBB1_348 - 0xe9, 0x4a, 0x02, 0x00, 0x00, //0x00001cf7 jmp LBB1_401 - //0x00001cfc LBB1_364 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001cfc movl $1, %r11d - 0xe9, 0x1a, 0xfd, 0xff, 0xff, //0x00001d02 jmp LBB1_319 - //0x00001d07 LBB1_365 - 0x48, 0x8b, 0x5d, 0xd0, //0x00001d07 movq $-48(%rbp), %rbx - 0x4c, 0x39, 0xfb, //0x00001d0b cmpq %r15, %rbx - 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00001d0e ja LBB1_368 - 0xe9, 0x9a, 0x09, 0x00, 0x00, //0x00001d14 jmp LBB1_499 - //0x00001d19 LBB1_384 - 0x49, 0x89, 0xd6, //0x00001d19 movq %rdx, %r14 - 0x4d, 0x89, 0xf7, //0x00001d1c movq %r14, %r15 - 0x49, 0x39, 0xde, //0x00001d1f cmpq %rbx, %r14 - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00001d22 jb LBB1_368 - 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d28 jmp LBB1_425 - //0x00001d2d LBB1_366 - 0x4c, 0x89, 0xf2, //0x00001d2d movq %r14, %rdx - 0x4d, 0x89, 0xf7, //0x00001d30 movq %r14, %r15 - 0x49, 0x39, 0xde, //0x00001d33 cmpq %rbx, %r14 - 0x0f, 0x83, 0x35, 0x01, 0x00, 0x00, //0x00001d36 jae LBB1_425 - //0x00001d3c LBB1_368 - 0x49, 0x8d, 0x57, 0x01, //0x00001d3c leaq $1(%r15), %rdx - 0x41, 0x0f, 0xb6, 0x3f, //0x00001d40 movzbl (%r15), %edi - 0x40, 0x80, 0xff, 0x5c, //0x00001d44 cmpb $92, %dil - 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x00001d48 jne LBB1_381 - 0x4d, 0x8d, 0x77, 0x02, //0x00001d4e leaq $2(%r15), %r14 - 0x49, 0x39, 0xde, //0x00001d52 cmpq %rbx, %r14 - 0x0f, 0x87, 0xe2, 0x07, 0x00, 0x00, //0x00001d55 ja LBB1_459 - 0x0f, 0xb6, 0x02, //0x00001d5b movzbl (%rdx), %eax - 0x3c, 0x6e, //0x00001d5e cmpb $110, %al - 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x00001d60 je LBB1_366 - 0x3c, 0x72, //0x00001d66 cmpb $114, %al - 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x00001d68 je LBB1_366 - 0x3c, 0x75, //0x00001d6e cmpb $117, %al - 0x0f, 0x85, 0x7d, 0x06, 0x00, 0x00, //0x00001d70 jne LBB1_479 - 0x48, 0x89, 0xd8, //0x00001d76 movq %rbx, %rax - 0x4c, 0x29, 0xf0, //0x00001d79 subq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00001d7c cmpq $4, %rax - 0x0f, 0x8c, 0x6d, 0x06, 0x00, 0x00, //0x00001d80 jl LBB1_479 - 0x41, 0x8b, 0x06, //0x00001d86 movl (%r14), %eax - 0x89, 0xc2, //0x00001d89 movl %eax, %edx - 0xf7, 0xd2, //0x00001d8b notl %edx - 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d8d leal $-808464432(%rax), %ecx - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00001d93 andl $-2139062144, %edx - 0x85, 0xca, //0x00001d99 testl %ecx, %edx - 0x0f, 0x85, 0x52, 0x06, 0x00, 0x00, //0x00001d9b jne LBB1_479 - 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x00001da1 leal $421075225(%rax), %ecx - 0x09, 0xc1, //0x00001da7 orl %eax, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001da9 testl $-2139062144, %ecx - 0x0f, 0x85, 0x3e, 0x06, 0x00, 0x00, //0x00001daf jne LBB1_479 - 0x89, 0x75, 0x98, //0x00001db5 movl %esi, $-104(%rbp) - 0x89, 0xc7, //0x00001db8 movl %eax, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dba andl $2139062143, %edi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dc0 movl $-1061109568, %ecx - 0x29, 0xf9, //0x00001dc5 subl %edi, %ecx - 0x8d, 0xb7, 0x46, 0x46, 0x46, 0x46, //0x00001dc7 leal $1179010630(%rdi), %esi - 0x21, 0xd1, //0x00001dcd andl %edx, %ecx - 0x85, 0xf1, //0x00001dcf testl %esi, %ecx - 0x0f, 0x85, 0x1c, 0x06, 0x00, 0x00, //0x00001dd1 jne LBB1_479 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001dd7 movl $-522133280, %ecx - 0x29, 0xf9, //0x00001ddc subl %edi, %ecx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001dde addl $960051513, %edi - 0x21, 0xca, //0x00001de4 andl %ecx, %edx - 0x85, 0xfa, //0x00001de6 testl %edi, %edx - 0x0f, 0x85, 0x05, 0x06, 0x00, 0x00, //0x00001de8 jne LBB1_479 - 0x0f, 0xc8, //0x00001dee bswapl %eax - 0x89, 0xc1, //0x00001df0 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00001df2 shrl $4, %ecx - 0xf7, 0xd1, //0x00001df5 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001df7 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00001dfd leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e00 andl $252645135, %eax - 0x01, 0xc8, //0x00001e05 addl %ecx, %eax - 0x89, 0xc7, //0x00001e07 movl %eax, %edi - 0xc1, 0xef, 0x04, //0x00001e09 shrl $4, %edi - 0x09, 0xc7, //0x00001e0c orl %eax, %edi - 0x89, 0xf8, //0x00001e0e movl %edi, %eax - 0xc1, 0xe8, 0x08, //0x00001e10 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e13 andl $65280, %eax - 0x89, 0xf9, //0x00001e18 movl %edi, %ecx - 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00001e1a andl $128, %ecx - 0x09, 0xc1, //0x00001e20 orl %eax, %ecx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00001e22 je LBB1_380 - 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00001e28 movl $255, %edi - //0x00001e2d LBB1_380 - 0x49, 0x83, 0xc7, 0x06, //0x00001e2d addq $6, %r15 - 0x4c, 0x89, 0xfa, //0x00001e31 movq %r15, %rdx - 0x8b, 0x75, 0x98, //0x00001e34 movl $-104(%rbp), %esi - //0x00001e37 LBB1_381 - 0x40, 0x80, 0xff, 0x0a, //0x00001e37 cmpb $10, %dil - 0x0f, 0x84, 0xd8, 0xfe, 0xff, 0xff, //0x00001e3b je LBB1_384 - 0x40, 0x80, 0xff, 0x0d, //0x00001e41 cmpb $13, %dil - 0x0f, 0x84, 0xce, 0xfe, 0xff, 0xff, //0x00001e45 je LBB1_384 - 0x40, 0x80, 0xff, 0x3d, //0x00001e4b cmpb $61, %dil - 0x0f, 0x85, 0xe8, 0x06, 0x00, 0x00, //0x00001e4f jne LBB1_459 - 0x49, 0x89, 0xd7, //0x00001e55 movq %rdx, %r15 - 0x83, 0xfe, 0x02, //0x00001e58 cmpl $2, %esi - 0x0f, 0x84, 0x78, 0x06, 0x00, 0x00, //0x00001e5b je LBB1_495 - 0x89, 0x75, 0x98, //0x00001e61 movl %esi, $-104(%rbp) - 0x48, 0x8b, 0x75, 0xd0, //0x00001e64 movq $-48(%rbp), %rsi - 0x48, 0x39, 0xd6, //0x00001e68 cmpq %rdx, %rsi - 0x0f, 0x87, 0x48, 0x04, 0x00, 0x00, //0x00001e6b ja LBB1_462 - //0x00001e71 LBB1_425 - 0x49, 0x89, 0xd7, //0x00001e71 movq %rdx, %r15 - 0xe9, 0x3a, 0x08, 0x00, 0x00, //0x00001e74 jmp LBB1_499 - //0x00001e79 LBB1_385 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001e79 movl $1, %r11d - 0x8b, 0x45, 0xc8, //0x00001e7f movl $-56(%rbp), %eax - 0xe9, 0x9a, 0xfb, 0xff, 0xff, //0x00001e82 jmp LBB1_319 - //0x00001e87 LBB1_386 - 0x49, 0xff, 0xc7, //0x00001e87 incq %r15 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001e8a movl $3, %r11d - 0x49, 0x39, 0xdf, //0x00001e90 cmpq %rbx, %r15 - 0x0f, 0x83, 0x88, 0xfb, 0xff, 0xff, //0x00001e93 jae LBB1_319 - //0x00001e99 LBB1_387 - 0x45, 0x0f, 0xb6, 0x37, //0x00001e99 movzbl (%r15), %r14d - 0x49, 0x83, 0xfe, 0x0d, //0x00001e9d cmpq $13, %r14 - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001ea1 je LBB1_386 - 0x41, 0x80, 0xfe, 0x0a, //0x00001ea7 cmpb $10, %r14b - 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00001eab je LBB1_386 - 0x89, 0x45, 0xc8, //0x00001eb1 movl %eax, $-56(%rbp) - 0x48, 0x8b, 0x45, 0xc0, //0x00001eb4 movq $-64(%rbp), %rax - 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001eb8 movzbl (%rax,%r14), %eax - 0x49, 0xff, 0xc7, //0x00001ebd incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001ec0 cmpl $255, %eax - 0x0f, 0x85, 0xd2, 0x05, 0x00, 0x00, //0x00001ec5 jne LBB1_491 - //0x00001ecb LBB1_497 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001ecb movl $3, %r11d - 0xe9, 0x2f, 0xfc, 0xff, 0xff, //0x00001ed1 jmp LBB1_334 - //0x00001ed6 LBB1_391 - 0x49, 0xff, 0xc7, //0x00001ed6 incq %r15 - 0x48, 0xff, 0xc2, //0x00001ed9 incq %rdx - 0x48, 0xff, 0xc8, //0x00001edc decq %rax - 0x48, 0xff, 0xc3, //0x00001edf incq %rbx - 0x48, 0xff, 0xcf, //0x00001ee2 decq %rdi - 0x4c, 0x39, 0x7d, 0xd0, //0x00001ee5 cmpq %r15, $-48(%rbp) - 0x0f, 0x84, 0xdb, 0x01, 0x00, 0x00, //0x00001ee9 je LBB1_498 - //0x00001eef LBB1_392 - 0x41, 0x0f, 0xb6, 0x0f, //0x00001eef movzbl (%r15), %ecx - 0x80, 0xf9, 0x0a, //0x00001ef3 cmpb $10, %cl - 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001ef6 je LBB1_391 - 0x80, 0xf9, 0x0d, //0x00001efc cmpb $13, %cl - 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00001eff je LBB1_391 - 0x80, 0xf9, 0x3d, //0x00001f05 cmpb $61, %cl - 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00001f08 jne LBB1_426 - 0x49, 0xff, 0xc7, //0x00001f0e incq %r15 - 0x83, 0xfe, 0x03, //0x00001f11 cmpl $3, %esi - 0x0f, 0x84, 0xbf, 0x05, 0x00, 0x00, //0x00001f14 je LBB1_495 - 0x4c, 0x39, 0x7d, 0xd0, //0x00001f1a cmpq %r15, $-48(%rbp) - 0x0f, 0x87, 0xf4, 0x04, 0x00, 0x00, //0x00001f1e ja LBB1_481 - 0xe9, 0x8a, 0x07, 0x00, 0x00, //0x00001f24 jmp LBB1_499 - //0x00001f29 LBB1_398 - 0x80, 0xfb, 0x2f, //0x00001f29 cmpb $47, %bl - 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x00001f2c jne LBB1_400 - 0x41, 0x89, 0xde, //0x00001f32 movl %ebx, %r14d - //0x00001f35 LBB1_400 - 0x49, 0x89, 0xd7, //0x00001f35 movq %rdx, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00001f38 movq $-48(%rbp), %rbx - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001f3c movabsq $-4294967296, %r8 - //0x00001f46 LBB1_401 - 0x41, 0x0f, 0xb6, 0xc6, //0x00001f46 movzbl %r14b, %eax - 0x48, 0x8b, 0x4d, 0xc0, //0x00001f4a movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x04, 0x01, //0x00001f4e movzbl (%rcx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001f52 cmpl $255, %eax - 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00001f57 je LBB1_422 - 0x8b, 0x4d, 0xc8, //0x00001f5d movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x00001f60 shll $6, %ecx - 0x09, 0xc1, //0x00001f63 orl %eax, %ecx - 0x89, 0xc8, //0x00001f65 movl %ecx, %eax - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001f67 movl $2, %r11d - 0x49, 0x39, 0xdf, //0x00001f6d cmpq %rbx, %r15 - 0x0f, 0x83, 0x37, 0x05, 0x00, 0x00, //0x00001f70 jae LBB1_492 - 0x89, 0x45, 0xc8, //0x00001f76 movl %eax, $-56(%rbp) - 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00001f79 jmp LBB1_407 - //0x00001f7e LBB1_422 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001f7e movl $1, %r11d - 0xe9, 0x7c, 0xfb, 0xff, 0xff, //0x00001f84 jmp LBB1_334 - //0x00001f89 LBB1_404 - 0x80, 0xfa, 0x6e, //0x00001f89 cmpb $110, %dl - 0x0f, 0x85, 0x54, 0x01, 0x00, 0x00, //0x00001f8c jne LBB1_432 - //0x00001f92 LBB1_405 - 0x48, 0x89, 0xc2, //0x00001f92 movq %rax, %rdx - 0x8b, 0x45, 0xc8, //0x00001f95 movl $-56(%rbp), %eax - //0x00001f98 LBB1_406 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001f98 movl $2, %r11d - 0x49, 0x89, 0xd7, //0x00001f9e movq %rdx, %r15 - 0x48, 0x39, 0xda, //0x00001fa1 cmpq %rbx, %rdx - 0x0f, 0x83, 0x29, 0x01, 0x00, 0x00, //0x00001fa4 jae LBB1_424 - //0x00001faa LBB1_407 - 0x49, 0x8d, 0x57, 0x01, //0x00001faa leaq $1(%r15), %rdx - 0x45, 0x0f, 0xb6, 0x37, //0x00001fae movzbl (%r15), %r14d - 0x41, 0x80, 0xfe, 0x5c, //0x00001fb2 cmpb $92, %r14b - 0x0f, 0x85, 0xf5, 0x00, 0x00, 0x00, //0x00001fb6 jne LBB1_420 - 0x49, 0x8d, 0x47, 0x02, //0x00001fbc leaq $2(%r15), %rax - 0x41, 0xb6, 0xff, //0x00001fc0 movb $-1, %r14b - 0x48, 0x39, 0xd8, //0x00001fc3 cmpq %rbx, %rax - 0x0f, 0x87, 0x29, 0x01, 0x00, 0x00, //0x00001fc6 ja LBB1_435 - 0x0f, 0xb6, 0x12, //0x00001fcc movzbl (%rdx), %edx - 0x80, 0xfa, 0x71, //0x00001fcf cmpb $113, %dl - 0x0f, 0x8e, 0xb1, 0xff, 0xff, 0xff, //0x00001fd2 jle LBB1_404 - 0x80, 0xfa, 0x72, //0x00001fd8 cmpb $114, %dl - 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00001fdb je LBB1_405 - 0x80, 0xfa, 0x75, //0x00001fe1 cmpb $117, %dl - 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00001fe4 jne LBB1_434 - 0x48, 0x89, 0xd9, //0x00001fea movq %rbx, %rcx - 0x48, 0x29, 0xc1, //0x00001fed subq %rax, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00001ff0 cmpq $4, %rcx - 0x0f, 0x8c, 0xf8, 0x00, 0x00, 0x00, //0x00001ff4 jl LBB1_434 - 0x8b, 0x10, //0x00001ffa movl (%rax), %edx - 0x89, 0xd7, //0x00001ffc movl %edx, %edi - 0xf7, 0xd7, //0x00001ffe notl %edi - 0x8d, 0x8a, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002000 leal $-808464432(%rdx), %ecx - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00002006 andl $-2139062144, %edi - 0x85, 0xcf, //0x0000200c testl %ecx, %edi - 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x0000200e jne LBB1_434 - 0x8d, 0x8a, 0x19, 0x19, 0x19, 0x19, //0x00002014 leal $421075225(%rdx), %ecx - 0x09, 0xd1, //0x0000201a orl %edx, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000201c testl $-2139062144, %ecx - 0x0f, 0x85, 0xca, 0x00, 0x00, 0x00, //0x00002022 jne LBB1_434 - 0x89, 0xd6, //0x00002028 movl %edx, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000202a andl $2139062143, %esi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002030 movl $-1061109568, %ecx - 0x29, 0xf1, //0x00002035 subl %esi, %ecx - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002037 leal $1179010630(%rsi), %ebx - 0x21, 0xf9, //0x0000203d andl %edi, %ecx - 0x85, 0xd9, //0x0000203f testl %ebx, %ecx - 0x48, 0x8b, 0x5d, 0xd0, //0x00002041 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00002045 jne LBB1_434 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000204b movl $-522133280, %ecx - 0x29, 0xf1, //0x00002050 subl %esi, %ecx - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002052 addl $960051513, %esi - 0x21, 0xcf, //0x00002058 andl %ecx, %edi - 0x85, 0xf7, //0x0000205a testl %esi, %edi - 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000205c jne LBB1_434 - 0x0f, 0xca, //0x00002062 bswapl %edx - 0x89, 0xd0, //0x00002064 movl %edx, %eax - 0xc1, 0xe8, 0x04, //0x00002066 shrl $4, %eax - 0xf7, 0xd0, //0x00002069 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000206b andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00002070 leal (%rax,%rax,8), %eax - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002073 andl $252645135, %edx - 0x01, 0xc2, //0x00002079 addl %eax, %edx - 0x41, 0x89, 0xd6, //0x0000207b movl %edx, %r14d - 0x41, 0xc1, 0xee, 0x04, //0x0000207e shrl $4, %r14d - 0x41, 0x09, 0xd6, //0x00002082 orl %edx, %r14d - 0x44, 0x89, 0xf0, //0x00002085 movl %r14d, %eax - 0xc1, 0xe8, 0x08, //0x00002088 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000208b andl $65280, %eax - 0x44, 0x89, 0xf1, //0x00002090 movl %r14d, %ecx - 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002093 andl $128, %ecx - 0x09, 0xc1, //0x00002099 orl %eax, %ecx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000209b je LBB1_419 - 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x000020a1 movl $255, %r14d - //0x000020a7 LBB1_419 - 0x49, 0x83, 0xc7, 0x06, //0x000020a7 addq $6, %r15 - 0x4c, 0x89, 0xfa, //0x000020ab movq %r15, %rdx - 0x8b, 0x45, 0xc8, //0x000020ae movl $-56(%rbp), %eax - //0x000020b1 LBB1_420 - 0x41, 0x80, 0xfe, 0x0a, //0x000020b1 cmpb $10, %r14b - 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x000020b5 je LBB1_406 - 0x41, 0x80, 0xfe, 0x0d, //0x000020bb cmpb $13, %r14b - 0x0f, 0x84, 0xd3, 0xfe, 0xff, 0xff, //0x000020bf je LBB1_406 - 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000020c5 jmp LBB1_435 - //0x000020ca LBB1_498 - 0x4c, 0x8b, 0x7d, 0xd0, //0x000020ca movq $-48(%rbp), %r15 - 0xe9, 0xe0, 0x05, 0x00, 0x00, //0x000020ce jmp LBB1_499 - //0x000020d3 LBB1_424 - 0x49, 0x89, 0xd7, //0x000020d3 movq %rdx, %r15 - 0xe9, 0x46, 0xf9, 0xff, 0xff, //0x000020d6 jmp LBB1_319 - //0x000020db LBB1_426 - 0x49, 0xff, 0xc7, //0x000020db incq %r15 - 0x4c, 0x89, 0xfb, //0x000020de movq %r15, %rbx - 0xe9, 0xf3, 0x03, 0x00, 0x00, //0x000020e1 jmp LBB1_495 - //0x000020e6 LBB1_432 - 0x80, 0xfa, 0x2f, //0x000020e6 cmpb $47, %dl - 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x000020e9 jne LBB1_434 - 0x41, 0x89, 0xd6, //0x000020ef movl %edx, %r14d - //0x000020f2 LBB1_434 - 0x48, 0x89, 0xc2, //0x000020f2 movq %rax, %rdx - //0x000020f5 LBB1_435 - 0x41, 0x0f, 0xb6, 0xc6, //0x000020f5 movzbl %r14b, %eax - 0x48, 0x8b, 0x4d, 0xc0, //0x000020f9 movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x04, 0x01, //0x000020fd movzbl (%rcx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002101 cmpl $255, %eax - 0x0f, 0x84, 0x74, 0x01, 0x00, 0x00, //0x00002106 je LBB1_456 - 0x8b, 0x4d, 0xc8, //0x0000210c movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x0000210f shll $6, %ecx - 0x09, 0xc1, //0x00002112 orl %eax, %ecx - 0x89, 0xc8, //0x00002114 movl %ecx, %eax - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002116 movl $3, %r11d - 0x48, 0x39, 0xda, //0x0000211c cmpq %rbx, %rdx - 0x0f, 0x83, 0x69, 0x01, 0x00, 0x00, //0x0000211f jae LBB1_457 - 0x89, 0x45, 0xc8, //0x00002125 movl %eax, $-56(%rbp) - 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002128 jmp LBB1_441 - //0x0000212d LBB1_438 - 0x80, 0xfb, 0x6e, //0x0000212d cmpb $110, %bl - 0x0f, 0x85, 0x33, 0x03, 0x00, 0x00, //0x00002130 jne LBB1_487 - //0x00002136 LBB1_439 - 0x49, 0x89, 0xc7, //0x00002136 movq %rax, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00002139 movq $-48(%rbp), %rbx - 0x8b, 0x45, 0xc8, //0x0000213d movl $-56(%rbp), %eax - //0x00002140 LBB1_440 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002140 movl $3, %r11d - 0x4c, 0x89, 0xfa, //0x00002146 movq %r15, %rdx - 0x49, 0x39, 0xdf, //0x00002149 cmpq %rbx, %r15 - 0x0f, 0x83, 0xcf, 0xf8, 0xff, 0xff, //0x0000214c jae LBB1_319 - //0x00002152 LBB1_441 - 0x4c, 0x8d, 0x7a, 0x01, //0x00002152 leaq $1(%rdx), %r15 - 0x44, 0x0f, 0xb6, 0x32, //0x00002156 movzbl (%rdx), %r14d - 0x41, 0x80, 0xfe, 0x5c, //0x0000215a cmpb $92, %r14b - 0x0f, 0x85, 0x03, 0x01, 0x00, 0x00, //0x0000215e jne LBB1_454 - 0x48, 0x8d, 0x42, 0x02, //0x00002164 leaq $2(%rdx), %rax - 0x41, 0xb6, 0xff, //0x00002168 movb $-1, %r14b - 0x48, 0x39, 0xd8, //0x0000216b cmpq %rbx, %rax - 0x0f, 0x87, 0x12, 0x03, 0x00, 0x00, //0x0000216e ja LBB1_490 - 0x41, 0x0f, 0xb6, 0x1f, //0x00002174 movzbl (%r15), %ebx - 0x80, 0xfb, 0x71, //0x00002178 cmpb $113, %bl - 0x0f, 0x8e, 0xac, 0xff, 0xff, 0xff, //0x0000217b jle LBB1_438 - 0x80, 0xfb, 0x72, //0x00002181 cmpb $114, %bl - 0x0f, 0x84, 0xac, 0xff, 0xff, 0xff, //0x00002184 je LBB1_439 - 0x80, 0xfb, 0x75, //0x0000218a cmpb $117, %bl - 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x0000218d jne LBB1_489 - 0x48, 0x8b, 0x4d, 0xd0, //0x00002193 movq $-48(%rbp), %rcx - 0x48, 0x29, 0xc1, //0x00002197 subq %rax, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x0000219a cmpq $4, %rcx - 0x0f, 0x8c, 0xd1, 0x02, 0x00, 0x00, //0x0000219e jl LBB1_489 - 0x8b, 0x38, //0x000021a4 movl (%rax), %edi - 0x89, 0xfb, //0x000021a6 movl %edi, %ebx - 0xf7, 0xd3, //0x000021a8 notl %ebx - 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x000021aa leal $-808464432(%rdi), %ecx - 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000021b0 andl $-2139062144, %ebx - 0x85, 0xcb, //0x000021b6 testl %ecx, %ebx - 0x0f, 0x85, 0xb7, 0x02, 0x00, 0x00, //0x000021b8 jne LBB1_489 - 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x000021be leal $421075225(%rdi), %ecx - 0x09, 0xf9, //0x000021c4 orl %edi, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000021c6 testl $-2139062144, %ecx - 0x0f, 0x85, 0xa3, 0x02, 0x00, 0x00, //0x000021cc jne LBB1_489 - 0x89, 0xfe, //0x000021d2 movl %edi, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000021d4 andl $2139062143, %esi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000021da movl $-1061109568, %ecx - 0x29, 0xf1, //0x000021df subl %esi, %ecx - 0x44, 0x8d, 0x86, 0x46, 0x46, 0x46, 0x46, //0x000021e1 leal $1179010630(%rsi), %r8d - 0x21, 0xd9, //0x000021e8 andl %ebx, %ecx - 0x44, 0x85, 0xc1, //0x000021ea testl %r8d, %ecx - 0x0f, 0x85, 0x82, 0x02, 0x00, 0x00, //0x000021ed jne LBB1_489 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000021f3 movl $-522133280, %ecx - 0x29, 0xf1, //0x000021f8 subl %esi, %ecx - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x000021fa addl $960051513, %esi - 0x21, 0xcb, //0x00002200 andl %ecx, %ebx - 0x85, 0xf3, //0x00002202 testl %esi, %ebx - 0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x00002204 jne LBB1_489 - 0x0f, 0xcf, //0x0000220a bswapl %edi - 0x89, 0xf8, //0x0000220c movl %edi, %eax - 0xc1, 0xe8, 0x04, //0x0000220e shrl $4, %eax - 0xf7, 0xd0, //0x00002211 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00002213 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00002218 leal (%rax,%rax,8), %eax - 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000221b andl $252645135, %edi - 0x01, 0xc7, //0x00002221 addl %eax, %edi - 0x41, 0x89, 0xfe, //0x00002223 movl %edi, %r14d - 0x41, 0xc1, 0xee, 0x04, //0x00002226 shrl $4, %r14d - 0x41, 0x09, 0xfe, //0x0000222a orl %edi, %r14d - 0x44, 0x89, 0xf0, //0x0000222d movl %r14d, %eax - 0xc1, 0xe8, 0x08, //0x00002230 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002233 andl $65280, %eax - 0x44, 0x89, 0xf1, //0x00002238 movl %r14d, %ecx - 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x0000223b andl $128, %ecx - 0x09, 0xc1, //0x00002241 orl %eax, %ecx - 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002243 je LBB1_453 - 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x00002249 movl $255, %r14d - //0x0000224f LBB1_453 - 0x48, 0x83, 0xc2, 0x06, //0x0000224f addq $6, %rdx - 0x49, 0x89, 0xd7, //0x00002253 movq %rdx, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00002256 movq $-48(%rbp), %rbx - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000225a movabsq $-4294967296, %r8 - 0x8b, 0x45, 0xc8, //0x00002264 movl $-56(%rbp), %eax - //0x00002267 LBB1_454 - 0x41, 0x80, 0xfe, 0x0a, //0x00002267 cmpb $10, %r14b - 0x0f, 0x84, 0xcf, 0xfe, 0xff, 0xff, //0x0000226b je LBB1_440 - 0x41, 0x80, 0xfe, 0x0d, //0x00002271 cmpb $13, %r14b - 0x0f, 0x84, 0xc5, 0xfe, 0xff, 0xff, //0x00002275 je LBB1_440 - 0xe9, 0x06, 0x02, 0x00, 0x00, //0x0000227b jmp LBB1_490 - //0x00002280 LBB1_456 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002280 movl $2, %r11d - 0x49, 0x89, 0xd7, //0x00002286 movq %rdx, %r15 - 0xe9, 0x77, 0xf8, 0xff, 0xff, //0x00002289 jmp LBB1_334 - //0x0000228e LBB1_457 - 0x49, 0x89, 0xd7, //0x0000228e movq %rdx, %r15 - 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00002291 jmp LBB1_492 - //0x00002296 LBB1_478 - 0x4d, 0x89, 0xfe, //0x00002296 movq %r15, %r14 - 0x4c, 0x89, 0xf2, //0x00002299 movq %r14, %rdx - 0x49, 0x39, 0xf6, //0x0000229c cmpq %rsi, %r14 - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000229f jb LBB1_462 - 0xe9, 0x09, 0x04, 0x00, 0x00, //0x000022a5 jmp LBB1_499 - //0x000022aa LBB1_460 - 0x4d, 0x89, 0xf7, //0x000022aa movq %r14, %r15 - 0x4c, 0x89, 0xf2, //0x000022ad movq %r14, %rdx - 0x49, 0x39, 0xf6, //0x000022b0 cmpq %rsi, %r14 - 0x0f, 0x83, 0xfa, 0x03, 0x00, 0x00, //0x000022b3 jae LBB1_499 - //0x000022b9 LBB1_462 - 0x4c, 0x8d, 0x7a, 0x01, //0x000022b9 leaq $1(%rdx), %r15 - 0x0f, 0xb6, 0x3a, //0x000022bd movzbl (%rdx), %edi - 0x40, 0x80, 0xff, 0x5c, //0x000022c0 cmpb $92, %dil - 0x0f, 0x85, 0xe8, 0x00, 0x00, 0x00, //0x000022c4 jne LBB1_475 - 0x4c, 0x8d, 0x72, 0x02, //0x000022ca leaq $2(%rdx), %r14 - 0x49, 0x39, 0xf6, //0x000022ce cmpq %rsi, %r14 - 0x0f, 0x87, 0x63, 0x02, 0x00, 0x00, //0x000022d1 ja LBB1_517 - 0x41, 0x0f, 0xb6, 0x07, //0x000022d7 movzbl (%r15), %eax - 0x3c, 0x6e, //0x000022db cmpb $110, %al - 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x000022dd je LBB1_460 - 0x3c, 0x72, //0x000022e3 cmpb $114, %al - 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x000022e5 je LBB1_460 - 0x3c, 0x75, //0x000022eb cmpb $117, %al - 0x0f, 0x85, 0x00, 0x01, 0x00, 0x00, //0x000022ed jne LBB1_479 - 0x48, 0x89, 0xf0, //0x000022f3 movq %rsi, %rax - 0x4c, 0x29, 0xf0, //0x000022f6 subq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x000022f9 cmpq $4, %rax - 0x0f, 0x8c, 0xf0, 0x00, 0x00, 0x00, //0x000022fd jl LBB1_479 - 0x41, 0x8b, 0x06, //0x00002303 movl (%r14), %eax - 0x89, 0xc7, //0x00002306 movl %eax, %edi - 0xf7, 0xd7, //0x00002308 notl %edi - 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000230a leal $-808464432(%rax), %ecx - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00002310 andl $-2139062144, %edi - 0x85, 0xcf, //0x00002316 testl %ecx, %edi - 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, //0x00002318 jne LBB1_479 - 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x0000231e leal $421075225(%rax), %ecx - 0x09, 0xc1, //0x00002324 orl %eax, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002326 testl $-2139062144, %ecx - 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x0000232c jne LBB1_479 - 0x89, 0xc6, //0x00002332 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002334 andl $2139062143, %esi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000233a movl $-1061109568, %ecx - 0x29, 0xf1, //0x0000233f subl %esi, %ecx - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002341 leal $1179010630(%rsi), %ebx - 0x21, 0xf9, //0x00002347 andl %edi, %ecx - 0x85, 0xd9, //0x00002349 testl %ebx, %ecx - 0x0f, 0x85, 0xa2, 0x00, 0x00, 0x00, //0x0000234b jne LBB1_479 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002351 movl $-522133280, %ecx - 0x29, 0xf1, //0x00002356 subl %esi, %ecx - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002358 addl $960051513, %esi - 0x21, 0xcf, //0x0000235e andl %ecx, %edi - 0x85, 0xf7, //0x00002360 testl %esi, %edi - 0x48, 0x8b, 0x75, 0xd0, //0x00002362 movq $-48(%rbp), %rsi - 0x0f, 0x85, 0x87, 0x00, 0x00, 0x00, //0x00002366 jne LBB1_479 - 0x0f, 0xc8, //0x0000236c bswapl %eax - 0x89, 0xc1, //0x0000236e movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002370 shrl $4, %ecx - 0xf7, 0xd1, //0x00002373 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002375 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x0000237b leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000237e andl $252645135, %eax - 0x01, 0xc8, //0x00002383 addl %ecx, %eax - 0x89, 0xc7, //0x00002385 movl %eax, %edi - 0xc1, 0xef, 0x04, //0x00002387 shrl $4, %edi - 0x09, 0xc7, //0x0000238a orl %eax, %edi - 0x89, 0xf8, //0x0000238c movl %edi, %eax - 0xc1, 0xe8, 0x08, //0x0000238e shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002391 andl $65280, %eax - 0x89, 0xf9, //0x00002396 movl %edi, %ecx - 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002398 andl $128, %ecx - 0x09, 0xc1, //0x0000239e orl %eax, %ecx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000023a0 je LBB1_474 - 0xbf, 0xff, 0x00, 0x00, 0x00, //0x000023a6 movl $255, %edi - //0x000023ab LBB1_474 - 0x48, 0x83, 0xc2, 0x06, //0x000023ab addq $6, %rdx - 0x49, 0x89, 0xd7, //0x000023af movq %rdx, %r15 - //0x000023b2 LBB1_475 - 0x40, 0x80, 0xff, 0x0a, //0x000023b2 cmpb $10, %dil - 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x000023b6 je LBB1_478 - 0x40, 0x80, 0xff, 0x0d, //0x000023bc cmpb $13, %dil - 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x000023c0 je LBB1_478 - 0x40, 0x80, 0xff, 0x3d, //0x000023c6 cmpb $61, %dil - 0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x000023ca jne LBB1_495 - 0x83, 0x7d, 0x98, 0x03, //0x000023d0 cmpl $3, $-104(%rbp) - 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x000023d4 je LBB1_495 - 0x4c, 0x39, 0x7d, 0xd0, //0x000023da cmpq %r15, $-48(%rbp) - 0x0f, 0x87, 0x86, 0x01, 0x00, 0x00, //0x000023de ja LBB1_522 - //0x000023e4 LBB1_511 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000023e4 movabsq $-4294967296, %r8 - 0xe9, 0xc0, 0x02, 0x00, 0x00, //0x000023ee jmp LBB1_499 - //0x000023f3 LBB1_479 - 0x4d, 0x89, 0xf7, //0x000023f3 movq %r14, %r15 - 0xe9, 0xde, 0x00, 0x00, 0x00, //0x000023f6 jmp LBB1_495 - //0x000023fb LBB1_458 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000023fb movl $2, %r11d - 0xe9, 0xff, 0xf6, 0xff, 0xff, //0x00002401 jmp LBB1_334 - //0x00002406 LBB1_480 - 0x48, 0xff, 0xc2, //0x00002406 incq %rdx - 0x48, 0xff, 0xc3, //0x00002409 incq %rbx - 0x48, 0xff, 0xcf, //0x0000240c decq %rdi - 0x48, 0xff, 0xc8, //0x0000240f decq %rax - 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x00002412 je LBB1_519 - //0x00002418 LBB1_481 - 0x0f, 0xb6, 0x4a, 0xff, //0x00002418 movzbl $-1(%rdx), %ecx - 0x80, 0xf9, 0x0a, //0x0000241c cmpb $10, %cl - 0x0f, 0x84, 0xe1, 0xff, 0xff, 0xff, //0x0000241f je LBB1_480 - 0x80, 0xf9, 0x0d, //0x00002425 cmpb $13, %cl - 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00002428 je LBB1_480 - 0x80, 0xf9, 0x3d, //0x0000242e cmpb $61, %cl - 0x0f, 0x85, 0xe5, 0x02, 0x00, 0x00, //0x00002431 jne LBB1_539 - 0x49, 0x89, 0xd7, //0x00002437 movq %rdx, %r15 - 0x83, 0xfe, 0x04, //0x0000243a cmpl $4, %esi - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000243d movabsq $-4294967296, %r8 - 0x0f, 0x84, 0x8c, 0x00, 0x00, 0x00, //0x00002447 je LBB1_495 - 0x48, 0x39, 0x55, 0xd0, //0x0000244d cmpq %rdx, $-48(%rbp) - 0x0f, 0x87, 0xbf, 0x00, 0x00, 0x00, //0x00002451 ja LBB1_513 - //0x00002457 LBB1_486 - 0x49, 0x89, 0xd7, //0x00002457 movq %rdx, %r15 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000245a movabsq $-4294967296, %r8 - 0xe9, 0x4a, 0x02, 0x00, 0x00, //0x00002464 jmp LBB1_499 - //0x00002469 LBB1_487 - 0x80, 0xfb, 0x2f, //0x00002469 cmpb $47, %bl - 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x0000246c jne LBB1_489 - 0x41, 0x89, 0xde, //0x00002472 movl %ebx, %r14d - //0x00002475 LBB1_489 - 0x49, 0x89, 0xc7, //0x00002475 movq %rax, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00002478 movq $-48(%rbp), %rbx - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000247c movabsq $-4294967296, %r8 - //0x00002486 LBB1_490 - 0x41, 0x0f, 0xb6, 0xc6, //0x00002486 movzbl %r14b, %eax - 0x48, 0x8b, 0x4d, 0xc0, //0x0000248a movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x04, 0x01, //0x0000248e movzbl (%rcx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002492 cmpl $255, %eax - 0x0f, 0x84, 0x2e, 0xfa, 0xff, 0xff, //0x00002497 je LBB1_497 - //0x0000249d LBB1_491 - 0x8b, 0x4d, 0xc8, //0x0000249d movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x000024a0 shll $6, %ecx - 0x09, 0xc1, //0x000024a3 orl %eax, %ecx - 0x89, 0xc8, //0x000024a5 movl %ecx, %eax - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000024a7 movl $4, %r11d - //0x000024ad LBB1_492 - 0x89, 0x45, 0xc8, //0x000024ad movl %eax, $-56(%rbp) - 0xf6, 0x45, 0xbc, 0x02, //0x000024b0 testb $2, $-68(%rbp) - 0x0f, 0x94, 0xc0, //0x000024b4 sete %al - 0x41, 0x83, 0xfb, 0x01, //0x000024b7 cmpl $1, %r11d - 0x0f, 0x94, 0xc1, //0x000024bb sete %cl - 0x49, 0x39, 0xdf, //0x000024be cmpq %rbx, %r15 - 0x0f, 0x82, 0xec, 0x01, 0x00, 0x00, //0x000024c1 jb LBB1_499 - 0x41, 0x83, 0xfb, 0x04, //0x000024c7 cmpl $4, %r11d - 0x0f, 0x84, 0xe2, 0x01, 0x00, 0x00, //0x000024cb je LBB1_499 - 0x08, 0xc8, //0x000024d1 orb %cl, %al - 0x0f, 0x84, 0xda, 0x01, 0x00, 0x00, //0x000024d3 je LBB1_499 - //0x000024d9 LBB1_495 - 0x49, 0x8d, 0x4f, 0x01, //0x000024d9 leaq $1(%r15), %rcx - 0x48, 0x8b, 0x5d, 0xd0, //0x000024dd movq $-48(%rbp), %rbx - 0x4c, 0x39, 0xfb, //0x000024e1 cmpq %r15, %rbx - 0x49, 0x0f, 0x45, 0xcf, //0x000024e4 cmovneq %r15, %rcx - 0x4c, 0x29, 0xe9, //0x000024e8 subq %r13, %rcx - 0x0f, 0x85, 0xf8, 0x24, 0x00, 0x00, //0x000024eb jne LBB1_1141 - 0x4d, 0x89, 0xef, //0x000024f1 movq %r13, %r15 - 0x48, 0x8b, 0x4d, 0xb0, //0x000024f4 movq $-80(%rbp), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x000024f8 movq %rcx, $-80(%rbp) - 0x49, 0x39, 0xcc, //0x000024fc cmpq %rcx, %r12 - 0x0f, 0x83, 0x9e, 0xf2, 0xff, 0xff, //0x000024ff jae LBB1_506 - 0xe9, 0xae, 0xe0, 0xff, 0xff, //0x00002505 jmp LBB1_2 - //0x0000250a LBB1_512 - 0x48, 0xff, 0xc3, //0x0000250a incq %rbx - 0x48, 0xff, 0xcf, //0x0000250d decq %rdi - 0x0f, 0x84, 0x8f, 0x01, 0x00, 0x00, //0x00002510 je LBB1_519 - //0x00002516 LBB1_513 - 0x0f, 0xb6, 0x43, 0xff, //0x00002516 movzbl $-1(%rbx), %eax - 0x3c, 0x0a, //0x0000251a cmpb $10, %al - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x0000251c je LBB1_512 - 0x3c, 0x0d, //0x00002522 cmpb $13, %al - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00002524 je LBB1_512 - 0x3c, 0x3d, //0x0000252a cmpb $61, %al - 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x0000252c jne LBB1_545 - 0x49, 0x89, 0xdf, //0x00002532 movq %rbx, %r15 - 0xe9, 0x71, 0x03, 0x00, 0x00, //0x00002535 jmp LBB1_567 - //0x0000253a LBB1_517 - 0x4c, 0x89, 0xfa, //0x0000253a movq %r15, %rdx - //0x0000253d LBB1_459 - 0x49, 0x89, 0xd7, //0x0000253d movq %rdx, %r15 - 0xe9, 0x94, 0xff, 0xff, 0xff, //0x00002540 jmp LBB1_495 - //0x00002545 LBB1_538 - 0x49, 0x89, 0xd6, //0x00002545 movq %rdx, %r14 - 0x4d, 0x89, 0xf7, //0x00002548 movq %r14, %r15 - 0x4c, 0x3b, 0x75, 0xd0, //0x0000254b cmpq $-48(%rbp), %r14 - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x0000254f jb LBB1_522 - 0xe9, 0xfd, 0xfe, 0xff, 0xff, //0x00002555 jmp LBB1_486 - //0x0000255a LBB1_520 - 0x4c, 0x89, 0xf2, //0x0000255a movq %r14, %rdx - 0x4d, 0x89, 0xf7, //0x0000255d movq %r14, %r15 - 0x4c, 0x3b, 0x75, 0xd0, //0x00002560 cmpq $-48(%rbp), %r14 - 0x0f, 0x83, 0xed, 0xfe, 0xff, 0xff, //0x00002564 jae LBB1_486 - //0x0000256a LBB1_522 - 0x49, 0x8d, 0x57, 0x01, //0x0000256a leaq $1(%r15), %rdx - 0x41, 0x0f, 0xb6, 0x3f, //0x0000256e movzbl (%r15), %edi - 0x40, 0x80, 0xff, 0x5c, //0x00002572 cmpb $92, %dil - 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00002576 jne LBB1_535 - 0x4d, 0x8d, 0x77, 0x02, //0x0000257c leaq $2(%r15), %r14 - 0x4c, 0x3b, 0x75, 0xd0, //0x00002580 cmpq $-48(%rbp), %r14 - 0x0f, 0x87, 0xa7, 0x01, 0x00, 0x00, //0x00002584 ja LBB1_543 - 0x0f, 0xb6, 0x02, //0x0000258a movzbl (%rdx), %eax - 0x3c, 0x6e, //0x0000258d cmpb $110, %al - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000258f je LBB1_520 - 0x3c, 0x72, //0x00002595 cmpb $114, %al - 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00002597 je LBB1_520 - 0x3c, 0x75, //0x0000259d cmpb $117, %al - 0x0f, 0x85, 0xdf, 0x02, 0x00, 0x00, //0x0000259f jne LBB1_544 - 0x48, 0x8b, 0x45, 0xd0, //0x000025a5 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xf0, //0x000025a9 subq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x000025ac cmpq $4, %rax - 0x0f, 0x8c, 0xc6, 0x02, 0x00, 0x00, //0x000025b0 jl LBB1_566 - 0x41, 0x8b, 0x06, //0x000025b6 movl (%r14), %eax - 0x89, 0xc2, //0x000025b9 movl %eax, %edx - 0xf7, 0xd2, //0x000025bb notl %edx - 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x000025bd leal $-808464432(%rax), %ecx - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000025c3 andl $-2139062144, %edx - 0x85, 0xca, //0x000025c9 testl %ecx, %edx - 0x0f, 0x85, 0xab, 0x02, 0x00, 0x00, //0x000025cb jne LBB1_566 - 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x000025d1 leal $421075225(%rax), %ecx - 0x09, 0xc1, //0x000025d7 orl %eax, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000025d9 testl $-2139062144, %ecx - 0x0f, 0x85, 0x97, 0x02, 0x00, 0x00, //0x000025df jne LBB1_566 - 0x89, 0xc6, //0x000025e5 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025e7 andl $2139062143, %esi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025ed movl $-1061109568, %ecx - 0x29, 0xf1, //0x000025f2 subl %esi, %ecx - 0x8d, 0xbe, 0x46, 0x46, 0x46, 0x46, //0x000025f4 leal $1179010630(%rsi), %edi - 0x21, 0xd1, //0x000025fa andl %edx, %ecx - 0x85, 0xf9, //0x000025fc testl %edi, %ecx - 0x0f, 0x85, 0x78, 0x02, 0x00, 0x00, //0x000025fe jne LBB1_566 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002604 movl $-522133280, %ecx - 0x29, 0xf1, //0x00002609 subl %esi, %ecx - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x0000260b addl $960051513, %esi - 0x21, 0xca, //0x00002611 andl %ecx, %edx - 0x85, 0xf2, //0x00002613 testl %esi, %edx - 0x0f, 0x85, 0x61, 0x02, 0x00, 0x00, //0x00002615 jne LBB1_566 - 0x0f, 0xc8, //0x0000261b bswapl %eax - 0x89, 0xc1, //0x0000261d movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x0000261f shrl $4, %ecx - 0xf7, 0xd1, //0x00002622 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002624 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x0000262a leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000262d andl $252645135, %eax - 0x01, 0xc8, //0x00002632 addl %ecx, %eax - 0x89, 0xc7, //0x00002634 movl %eax, %edi - 0xc1, 0xef, 0x04, //0x00002636 shrl $4, %edi - 0x09, 0xc7, //0x00002639 orl %eax, %edi - 0x89, 0xf8, //0x0000263b movl %edi, %eax - 0xc1, 0xe8, 0x08, //0x0000263d shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002640 andl $65280, %eax - 0x89, 0xf9, //0x00002645 movl %edi, %ecx - 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002647 andl $128, %ecx - 0x09, 0xc1, //0x0000264d orl %eax, %ecx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000264f je LBB1_534 - 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00002655 movl $255, %edi - //0x0000265a LBB1_534 - 0x49, 0x83, 0xc7, 0x06, //0x0000265a addq $6, %r15 - 0x4c, 0x89, 0xfa, //0x0000265e movq %r15, %rdx - //0x00002661 LBB1_535 - 0x40, 0x80, 0xff, 0x0a, //0x00002661 cmpb $10, %dil - 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00002665 je LBB1_538 - 0x40, 0x80, 0xff, 0x0d, //0x0000266b cmpb $13, %dil - 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000266f je LBB1_538 - 0x40, 0x80, 0xff, 0x3d, //0x00002675 cmpb $61, %dil - 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x00002679 jne LBB1_546 - 0x49, 0x89, 0xd7, //0x0000267f movq %rdx, %r15 - 0x83, 0x7d, 0x98, 0x04, //0x00002682 cmpl $4, $-104(%rbp) - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002686 movabsq $-4294967296, %r8 - 0x0f, 0x84, 0x43, 0xfe, 0xff, 0xff, //0x00002690 je LBB1_495 - 0x48, 0x39, 0x55, 0xd0, //0x00002696 cmpq %rdx, $-48(%rbp) - 0x0f, 0x87, 0xc8, 0x00, 0x00, 0x00, //0x0000269a ja LBB1_549 - 0xe9, 0xb2, 0xfd, 0xff, 0xff, //0x000026a0 jmp LBB1_486 - //0x000026a5 LBB1_519 - 0x4c, 0x8b, 0x7d, 0xd0, //0x000026a5 movq $-48(%rbp), %r15 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000026a9 movabsq $-4294967296, %r8 - //0x000026b3 LBB1_499 - 0xb0, 0x04, //0x000026b3 movb $4, %al - 0x44, 0x28, 0xd8, //0x000026b5 subb %r11b, %al - 0x0f, 0xb6, 0xc0, //0x000026b8 movzbl %al, %eax - 0x01, 0xc0, //0x000026bb addl %eax, %eax - 0x8d, 0x0c, 0x40, //0x000026bd leal (%rax,%rax,2), %ecx - 0x8b, 0x45, 0xc8, //0x000026c0 movl $-56(%rbp), %eax - 0xd3, 0xe0, //0x000026c3 shll %cl, %eax - 0x41, 0x83, 0xfb, 0x02, //0x000026c5 cmpl $2, %r11d - 0x48, 0x8b, 0x5d, 0xd0, //0x000026c9 movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000026cd je LBB1_504 - 0x41, 0x83, 0xfb, 0x03, //0x000026d3 cmpl $3, %r11d - 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000026d7 je LBB1_503 - 0x41, 0x83, 0xfb, 0x04, //0x000026dd cmpl $4, %r11d - 0x48, 0x8b, 0x4d, 0xb0, //0x000026e1 movq $-80(%rbp), %rcx - 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000026e5 jne LBB1_505 - 0x88, 0x41, 0x02, //0x000026eb movb %al, $2(%rcx) - //0x000026ee LBB1_503 - 0x89, 0xc1, //0x000026ee movl %eax, %ecx - 0x48, 0x8b, 0x45, 0xb0, //0x000026f0 movq $-80(%rbp), %rax - 0x88, 0x68, 0x01, //0x000026f4 movb %ch, $1(%rax) - 0x89, 0xc8, //0x000026f7 movl %ecx, %eax - //0x000026f9 LBB1_504 - 0xc1, 0xe8, 0x10, //0x000026f9 shrl $16, %eax - 0x48, 0x8b, 0x4d, 0xb0, //0x000026fc movq $-80(%rbp), %rcx - 0x88, 0x01, //0x00002700 movb %al, (%rcx) - //0x00002702 LBB1_505 - 0x44, 0x89, 0xd8, //0x00002702 movl %r11d, %eax - 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x00002705 leaq $-1(%rcx,%rax), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x0000270a movq %rcx, $-80(%rbp) - 0x49, 0x39, 0xcc, //0x0000270e cmpq %rcx, %r12 - 0x0f, 0x83, 0x8c, 0xf0, 0xff, 0xff, //0x00002711 jae LBB1_506 - 0xe9, 0x9c, 0xde, 0xff, 0xff, //0x00002717 jmp LBB1_2 - //0x0000271c LBB1_539 - 0x48, 0x89, 0xd3, //0x0000271c movq %rdx, %rbx - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000271f movabsq $-4294967296, %r8 - 0x49, 0x89, 0xd7, //0x00002729 movq %rdx, %r15 - 0xe9, 0xa8, 0xfd, 0xff, 0xff, //0x0000272c jmp LBB1_495 - //0x00002731 LBB1_543 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002731 movabsq $-4294967296, %r8 - 0x49, 0x89, 0xd7, //0x0000273b movq %rdx, %r15 - 0xe9, 0x96, 0xfd, 0xff, 0xff, //0x0000273e jmp LBB1_495 - //0x00002743 LBB1_565 - 0x4d, 0x89, 0xfe, //0x00002743 movq %r15, %r14 - 0x4c, 0x89, 0xf2, //0x00002746 movq %r14, %rdx - 0x4c, 0x3b, 0x75, 0xd0, //0x00002749 cmpq $-48(%rbp), %r14 - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x0000274d jb LBB1_549 - 0xe9, 0x8c, 0xfc, 0xff, 0xff, //0x00002753 jmp LBB1_511 - //0x00002758 LBB1_547 - 0x4d, 0x89, 0xf7, //0x00002758 movq %r14, %r15 - 0x4c, 0x89, 0xf2, //0x0000275b movq %r14, %rdx - 0x4c, 0x3b, 0x75, 0xd0, //0x0000275e cmpq $-48(%rbp), %r14 - 0x0f, 0x83, 0x7c, 0xfc, 0xff, 0xff, //0x00002762 jae LBB1_511 - //0x00002768 LBB1_549 - 0x4c, 0x8d, 0x7a, 0x01, //0x00002768 leaq $1(%rdx), %r15 - 0x0f, 0xb6, 0x3a, //0x0000276c movzbl (%rdx), %edi - 0x40, 0x80, 0xff, 0x5c, //0x0000276f cmpb $92, %dil - 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00002773 jne LBB1_562 - 0x4c, 0x8d, 0x72, 0x02, //0x00002779 leaq $2(%rdx), %r14 - 0x4c, 0x3b, 0x75, 0xd0, //0x0000277d cmpq $-48(%rbp), %r14 - 0x0f, 0x87, 0x33, 0x01, 0x00, 0x00, //0x00002781 ja LBB1_570 - 0x41, 0x0f, 0xb6, 0x07, //0x00002787 movzbl (%r15), %eax - 0x3c, 0x6e, //0x0000278b cmpb $110, %al - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000278d je LBB1_547 - 0x3c, 0x72, //0x00002793 cmpb $114, %al - 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00002795 je LBB1_547 - 0x3c, 0x75, //0x0000279b cmpb $117, %al - 0x0f, 0x85, 0xe1, 0x00, 0x00, 0x00, //0x0000279d jne LBB1_544 - 0x48, 0x8b, 0x45, 0xd0, //0x000027a3 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xf0, //0x000027a7 subq %r14, %rax - 0x48, 0x83, 0xf8, 0x04, //0x000027aa cmpq $4, %rax - 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x000027ae jl LBB1_566 - 0x41, 0x8b, 0x06, //0x000027b4 movl (%r14), %eax - 0x89, 0xc7, //0x000027b7 movl %eax, %edi - 0xf7, 0xd7, //0x000027b9 notl %edi - 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x000027bb leal $-808464432(%rax), %ecx - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x000027c1 andl $-2139062144, %edi - 0x85, 0xcf, //0x000027c7 testl %ecx, %edi - 0x0f, 0x85, 0xad, 0x00, 0x00, 0x00, //0x000027c9 jne LBB1_566 - 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x000027cf leal $421075225(%rax), %ecx - 0x09, 0xc1, //0x000027d5 orl %eax, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000027d7 testl $-2139062144, %ecx - 0x0f, 0x85, 0x99, 0x00, 0x00, 0x00, //0x000027dd jne LBB1_566 - 0x89, 0xc6, //0x000027e3 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000027e5 andl $2139062143, %esi - 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000027eb movl $-1061109568, %ecx - 0x29, 0xf1, //0x000027f0 subl %esi, %ecx - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x000027f2 leal $1179010630(%rsi), %ebx - 0x21, 0xf9, //0x000027f8 andl %edi, %ecx - 0x85, 0xd9, //0x000027fa testl %ebx, %ecx - 0x0f, 0x85, 0x7a, 0x00, 0x00, 0x00, //0x000027fc jne LBB1_566 - 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002802 movl $-522133280, %ecx - 0x29, 0xf1, //0x00002807 subl %esi, %ecx - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002809 addl $960051513, %esi - 0x21, 0xcf, //0x0000280f andl %ecx, %edi - 0x85, 0xf7, //0x00002811 testl %esi, %edi - 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00002813 jne LBB1_566 - 0x0f, 0xc8, //0x00002819 bswapl %eax - 0x89, 0xc1, //0x0000281b movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x0000281d shrl $4, %ecx - 0xf7, 0xd1, //0x00002820 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002822 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00002828 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000282b andl $252645135, %eax - 0x01, 0xc8, //0x00002830 addl %ecx, %eax - 0x89, 0xc7, //0x00002832 movl %eax, %edi - 0xc1, 0xef, 0x04, //0x00002834 shrl $4, %edi - 0x09, 0xc7, //0x00002837 orl %eax, %edi - 0x89, 0xf8, //0x00002839 movl %edi, %eax - 0xc1, 0xe8, 0x08, //0x0000283b shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000283e andl $65280, %eax - 0x89, 0xf9, //0x00002843 movl %edi, %ecx - 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002845 andl $128, %ecx - 0x09, 0xc1, //0x0000284b orl %eax, %ecx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000284d je LBB1_561 - 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00002853 movl $255, %edi - //0x00002858 LBB1_561 - 0x48, 0x83, 0xc2, 0x06, //0x00002858 addq $6, %rdx - 0x49, 0x89, 0xd7, //0x0000285c movq %rdx, %r15 - //0x0000285f LBB1_562 - 0x40, 0x80, 0xff, 0x0a, //0x0000285f cmpb $10, %dil - 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00002863 je LBB1_565 - 0x40, 0x80, 0xff, 0x0d, //0x00002869 cmpb $13, %dil - 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000286d je LBB1_565 - 0x40, 0x80, 0xff, 0x3d, //0x00002873 cmpb $61, %dil - 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002877 jmp LBB1_567 - //0x0000287c LBB1_566 - 0x4d, 0x89, 0xf7, //0x0000287c movq %r14, %r15 - 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000287f jmp LBB1_567 - //0x00002884 LBB1_544 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002884 movabsq $-4294967296, %r8 - 0x4d, 0x89, 0xf7, //0x0000288e movq %r14, %r15 - 0xe9, 0x43, 0xfc, 0xff, 0xff, //0x00002891 jmp LBB1_495 - //0x00002896 LBB1_545 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002896 movabsq $-4294967296, %r8 - 0x49, 0x89, 0xdf, //0x000028a0 movq %rbx, %r15 - 0xe9, 0x31, 0xfc, 0xff, 0xff, //0x000028a3 jmp LBB1_495 - //0x000028a8 LBB1_546 - 0x49, 0x89, 0xd7, //0x000028a8 movq %rdx, %r15 - //0x000028ab LBB1_567 - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000028ab movabsq $-4294967296, %r8 - 0xe9, 0x1f, 0xfc, 0xff, 0xff, //0x000028b5 jmp LBB1_495 - //0x000028ba LBB1_570 - 0x4c, 0x89, 0xfa, //0x000028ba movq %r15, %rdx - 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000028bd movabsq $-4294967296, %r8 - 0xe9, 0x0d, 0xfc, 0xff, 0xff, //0x000028c7 jmp LBB1_495 - //0x000028cc LBB1_574 - 0x4d, 0x89, 0xf9, //0x000028cc movq %r15, %r9 - 0x48, 0x8b, 0x45, 0x90, //0x000028cf movq $-112(%rbp), %rax - 0x48, 0x83, 0xc0, 0xfc, //0x000028d3 addq $-4, %rax - 0x48, 0x3b, 0x45, 0xb0, //0x000028d7 cmpq $-80(%rbp), %rax - 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000028db jae LBB1_575 - 0xe9, 0x34, 0x10, 0x00, 0x00, //0x000028e1 jmp LBB1_851 - //0x000028e6 LBB1_572 - 0x4d, 0x89, 0xcf, //0x000028e6 movq %r9, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x000028e9 movq $-48(%rbp), %rbx - 0x48, 0x8b, 0x45, 0x90, //0x000028ed movq $-112(%rbp), %rax - 0x48, 0x83, 0xc0, 0xfc, //0x000028f1 addq $-4, %rax - 0x48, 0x3b, 0x45, 0xb0, //0x000028f5 cmpq $-80(%rbp), %rax - 0x0f, 0x82, 0x1b, 0x10, 0x00, 0x00, //0x000028f9 jb LBB1_851 - //0x000028ff LBB1_575 - 0x4c, 0x8d, 0x6b, 0xfc, //0x000028ff leaq $-4(%rbx), %r13 - 0x4d, 0x39, 0xfd, //0x00002903 cmpq %r15, %r13 - 0x0f, 0x82, 0x0e, 0x10, 0x00, 0x00, //0x00002906 jb LBB1_851 - 0x49, 0x89, 0xc6, //0x0000290c movq %rax, %r14 - 0x44, 0x8b, 0x65, 0xbc, //0x0000290f movl $-68(%rbp), %r12d - 0x41, 0x83, 0xe4, 0x02, //0x00002913 andl $2, %r12d - 0x48, 0x8b, 0x45, 0xa8, //0x00002917 movq $-88(%rbp), %rax - 0x48, 0x8b, 0x4d, 0x88, //0x0000291b movq $-120(%rbp), %rcx - 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x0000291f leaq $-2(%rcx,%rax), %rdx - 0x48, 0x89, 0x55, 0xa0, //0x00002924 movq %rdx, $-96(%rbp) - 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x00002928 leaq $-3(%rcx,%rax), %rax - 0x48, 0x89, 0x45, 0x90, //0x0000292d movq %rax, $-112(%rbp) - 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00002931 jmp LBB1_577 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002936 .p2align 4, 0x90 - //0x00002940 LBB1_578 - 0xc1, 0xe2, 0x1a, //0x00002940 shll $26, %edx - 0xc1, 0xe0, 0x14, //0x00002943 shll $20, %eax - 0x09, 0xd0, //0x00002946 orl %edx, %eax - 0xc1, 0xe3, 0x0e, //0x00002948 shll $14, %ebx - 0xc1, 0xe1, 0x08, //0x0000294b shll $8, %ecx - 0x09, 0xd9, //0x0000294e orl %ebx, %ecx - 0x09, 0xc1, //0x00002950 orl %eax, %ecx - 0x0f, 0xc9, //0x00002952 bswapl %ecx - 0x48, 0x8b, 0x55, 0xb0, //0x00002954 movq $-80(%rbp), %rdx - 0x89, 0x0a, //0x00002958 movl %ecx, (%rdx) - 0x49, 0x83, 0xc7, 0x04, //0x0000295a addq $4, %r15 - 0x48, 0x83, 0xc2, 0x03, //0x0000295e addq $3, %rdx - 0x48, 0x89, 0x55, 0xb0, //0x00002962 movq %rdx, $-80(%rbp) - 0x49, 0x39, 0xd6, //0x00002966 cmpq %rdx, %r14 - 0x0f, 0x82, 0xbb, 0x0f, 0x00, 0x00, //0x00002969 jb LBB1_852 - //0x0000296f LBB1_727 - 0x4d, 0x89, 0xf9, //0x0000296f movq %r15, %r9 - 0x4d, 0x39, 0xfd, //0x00002972 cmpq %r15, %r13 - 0x0f, 0x82, 0xaf, 0x0f, 0x00, 0x00, //0x00002975 jb LBB1_852 - //0x0000297b LBB1_577 - 0x41, 0x0f, 0xb6, 0x07, //0x0000297b movzbl (%r15), %eax - 0x48, 0x8b, 0x75, 0xc0, //0x0000297f movq $-64(%rbp), %rsi - 0x0f, 0xb6, 0x14, 0x06, //0x00002983 movzbl (%rsi,%rax), %edx - 0x41, 0x0f, 0xb6, 0x47, 0x01, //0x00002987 movzbl $1(%r15), %eax - 0x0f, 0xb6, 0x04, 0x06, //0x0000298c movzbl (%rsi,%rax), %eax - 0x41, 0x0f, 0xb6, 0x4f, 0x02, //0x00002990 movzbl $2(%r15), %ecx - 0x0f, 0xb6, 0x1c, 0x0e, //0x00002995 movzbl (%rsi,%rcx), %ebx - 0x41, 0x0f, 0xb6, 0x4f, 0x03, //0x00002999 movzbl $3(%r15), %ecx - 0x0f, 0xb6, 0x0c, 0x0e, //0x0000299e movzbl (%rsi,%rcx), %ecx - 0x89, 0xc7, //0x000029a2 movl %eax, %edi - 0x09, 0xd7, //0x000029a4 orl %edx, %edi - 0x89, 0xde, //0x000029a6 movl %ebx, %esi - 0x09, 0xce, //0x000029a8 orl %ecx, %esi - 0x09, 0xfe, //0x000029aa orl %edi, %esi - 0x40, 0x80, 0xfe, 0xff, //0x000029ac cmpb $-1, %sil - 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x000029b0 jne LBB1_578 - 0x48, 0x8b, 0x5d, 0xd0, //0x000029b6 movq $-48(%rbp), %rbx - 0x4c, 0x39, 0xfb, //0x000029ba cmpq %r15, %rbx - 0x0f, 0x86, 0x1d, 0x02, 0x00, 0x00, //0x000029bd jbe LBB1_611 - 0xf6, 0x45, 0xbc, 0x08, //0x000029c3 testb $8, $-68(%rbp) - 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000029c7 je LBB1_583 - 0x4c, 0x89, 0xfa, //0x000029cd movq %r15, %rdx - 0xe9, 0xc7, 0x00, 0x00, 0x00, //0x000029d0 jmp LBB1_594 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029d5 .p2align 4, 0x90 - //0x000029e0 LBB1_582 - 0x49, 0xff, 0xc7, //0x000029e0 incq %r15 - 0x49, 0x39, 0xdf, //0x000029e3 cmpq %rbx, %r15 - 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x000029e6 jae LBB1_609 - //0x000029ec LBB1_583 - 0x41, 0x0f, 0xb6, 0x0f, //0x000029ec movzbl (%r15), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x000029f0 cmpq $13, %rcx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x000029f4 je LBB1_582 - 0x80, 0xf9, 0x0a, //0x000029fa cmpb $10, %cl - 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x000029fd je LBB1_582 - 0x48, 0x8b, 0x45, 0xc0, //0x00002a03 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x00002a07 movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc7, //0x00002a0b incq %r15 - 0x89, 0x45, 0xc8, //0x00002a0e movl %eax, $-56(%rbp) - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002a11 cmpl $255, %eax - 0x0f, 0x84, 0x84, 0x02, 0x00, 0x00, //0x00002a16 je LBB1_623 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002a1c movl $1, %r11d - 0x49, 0x39, 0xdf, //0x00002a22 cmpq %rbx, %r15 - 0x0f, 0x82, 0x11, 0x00, 0x00, 0x00, //0x00002a25 jb LBB1_588 - 0xe9, 0x99, 0x06, 0x00, 0x00, //0x00002a2b jmp LBB1_693 - //0x00002a30 .p2align 4, 0x90 - //0x00002a30 LBB1_587 - 0x49, 0xff, 0xc7, //0x00002a30 incq %r15 - 0x49, 0x39, 0xdf, //0x00002a33 cmpq %rbx, %r15 - 0x0f, 0x83, 0x3d, 0x04, 0x00, 0x00, //0x00002a36 jae LBB1_675 - //0x00002a3c LBB1_588 - 0x41, 0x0f, 0xb6, 0x0f, //0x00002a3c movzbl (%r15), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00002a40 cmpq $13, %rcx - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00002a44 je LBB1_587 - 0x80, 0xf9, 0x0a, //0x00002a4a cmpb $10, %cl - 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x00002a4d je LBB1_587 - 0x48, 0x8b, 0x45, 0xc0, //0x00002a53 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x00002a57 movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc7, //0x00002a5b incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002a5e cmpl $255, %eax - 0x0f, 0x84, 0xb6, 0x06, 0x00, 0x00, //0x00002a63 je LBB1_716 - 0x8b, 0x4d, 0xc8, //0x00002a69 movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x00002a6c shll $6, %ecx - 0x09, 0xc1, //0x00002a6f orl %eax, %ecx - 0x89, 0x4d, 0xc8, //0x00002a71 movl %ecx, $-56(%rbp) - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002a74 movl $2, %r11d - 0x49, 0x39, 0xdf, //0x00002a7a cmpq %rbx, %r15 - 0x0f, 0x82, 0x8f, 0x01, 0x00, 0x00, //0x00002a7d jb LBB1_613 - 0xe9, 0x41, 0x06, 0x00, 0x00, //0x00002a83 jmp LBB1_693 - //0x00002a88 LBB1_592 - 0x3c, 0x6e, //0x00002a88 cmpb $110, %al - 0x0f, 0x85, 0xd6, 0x01, 0x00, 0x00, //0x00002a8a jne LBB1_618 - //0x00002a90 .p2align 4, 0x90 - //0x00002a90 LBB1_593 - 0x4c, 0x89, 0xfa, //0x00002a90 movq %r15, %rdx - 0x49, 0x39, 0xdf, //0x00002a93 cmpq %rbx, %r15 - 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x00002a96 jae LBB1_609 - //0x00002a9c LBB1_594 - 0x48, 0x8d, 0x42, 0x01, //0x00002a9c leaq $1(%rdx), %rax - 0x0f, 0xb6, 0x0a, //0x00002aa0 movzbl (%rdx), %ecx - 0x80, 0xf9, 0x5c, //0x00002aa3 cmpb $92, %cl - 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x00002aa6 jne LBB1_607 - 0x4c, 0x8d, 0x7a, 0x02, //0x00002aac leaq $2(%rdx), %r15 - 0xb1, 0xff, //0x00002ab0 movb $-1, %cl - 0x49, 0x39, 0xdf, //0x00002ab2 cmpq %rbx, %r15 - 0x0f, 0x87, 0xa3, 0x01, 0x00, 0x00, //0x00002ab5 ja LBB1_617 - 0x0f, 0xb6, 0x00, //0x00002abb movzbl (%rax), %eax - 0x3c, 0x71, //0x00002abe cmpb $113, %al - 0x0f, 0x8e, 0xc2, 0xff, 0xff, 0xff, //0x00002ac0 jle LBB1_592 - 0x3c, 0x72, //0x00002ac6 cmpb $114, %al - 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x00002ac8 je LBB1_593 - 0x3c, 0x75, //0x00002ace cmpb $117, %al - 0x0f, 0x85, 0x9a, 0x01, 0x00, 0x00, //0x00002ad0 jne LBB1_620 - 0x48, 0x89, 0xd8, //0x00002ad6 movq %rbx, %rax - 0x4c, 0x29, 0xf8, //0x00002ad9 subq %r15, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002adc cmpq $4, %rax - 0x0f, 0x8c, 0x8a, 0x01, 0x00, 0x00, //0x00002ae0 jl LBB1_620 - 0x41, 0x8b, 0x07, //0x00002ae6 movl (%r15), %eax - 0x89, 0xc6, //0x00002ae9 movl %eax, %esi - 0xf7, 0xd6, //0x00002aeb notl %esi - 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002aed leal $-808464432(%rax), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00002af3 andl $-2139062144, %esi - 0x85, 0xfe, //0x00002af9 testl %edi, %esi - 0x0f, 0x85, 0x6f, 0x01, 0x00, 0x00, //0x00002afb jne LBB1_620 - 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00002b01 leal $421075225(%rax), %edi - 0x09, 0xc7, //0x00002b07 orl %eax, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00002b09 testl $-2139062144, %edi - 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x00002b0f jne LBB1_620 - 0x89, 0xc7, //0x00002b15 movl %eax, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002b17 andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002b1d movl $-1061109568, %ebx - 0x29, 0xfb, //0x00002b22 subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00002b24 leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x00002b2b andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x00002b2d testl %r8d, %ebx - 0x48, 0x8b, 0x5d, 0xd0, //0x00002b30 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x00002b34 jne LBB1_620 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002b3a movl $-522133280, %ebx - 0x29, 0xfb, //0x00002b3f subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00002b41 addl $960051513, %edi - 0x21, 0xde, //0x00002b47 andl %ebx, %esi - 0x48, 0x8b, 0x5d, 0xd0, //0x00002b49 movq $-48(%rbp), %rbx - 0x85, 0xfe, //0x00002b4d testl %edi, %esi - 0x0f, 0x85, 0x1b, 0x01, 0x00, 0x00, //0x00002b4f jne LBB1_620 - 0x0f, 0xc8, //0x00002b55 bswapl %eax - 0x89, 0xc1, //0x00002b57 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002b59 shrl $4, %ecx - 0xf7, 0xd1, //0x00002b5c notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002b5e andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00002b64 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002b67 andl $252645135, %eax - 0x01, 0xc8, //0x00002b6c addl %ecx, %eax - 0x89, 0xc1, //0x00002b6e movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002b70 shrl $4, %ecx - 0x09, 0xc1, //0x00002b73 orl %eax, %ecx - 0x89, 0xc8, //0x00002b75 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00002b77 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002b7a andl $65280, %eax - 0x89, 0xce, //0x00002b7f movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00002b81 andl $128, %esi - 0x09, 0xc6, //0x00002b87 orl %eax, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002b89 je LBB1_606 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002b8f movl $255, %ecx - //0x00002b94 LBB1_606 - 0x48, 0x83, 0xc2, 0x06, //0x00002b94 addq $6, %rdx - 0x49, 0x89, 0xd7, //0x00002b98 movq %rdx, %r15 - 0x80, 0xf9, 0x0d, //0x00002b9b cmpb $13, %cl - 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002b9e jne LBB1_608 - 0xe9, 0xe7, 0xfe, 0xff, 0xff, //0x00002ba4 jmp LBB1_593 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ba9 .p2align 4, 0x90 - //0x00002bb0 LBB1_607 - 0x49, 0x89, 0xc7, //0x00002bb0 movq %rax, %r15 - 0x80, 0xf9, 0x0d, //0x00002bb3 cmpb $13, %cl - 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00002bb6 je LBB1_593 - //0x00002bbc LBB1_608 - 0x80, 0xf9, 0x0a, //0x00002bbc cmpb $10, %cl - 0x0f, 0x84, 0xcb, 0xfe, 0xff, 0xff, //0x00002bbf je LBB1_593 - 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00002bc5 jmp LBB1_620 - //0x00002bca LBB1_609 - 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00002bca movl $0, $-56(%rbp) - 0x45, 0x31, 0xdb, //0x00002bd1 xorl %r11d, %r11d - //0x00002bd4 LBB1_610 - 0x45, 0x85, 0xdb, //0x00002bd4 testl %r11d, %r11d - 0x0f, 0x85, 0xec, 0x04, 0x00, 0x00, //0x00002bd7 jne LBB1_693 - 0x90, 0x90, 0x90, //0x00002bdd .p2align 4, 0x90 - //0x00002be0 LBB1_611 - 0x48, 0x8b, 0x55, 0xb0, //0x00002be0 movq $-80(%rbp), %rdx - 0x48, 0x89, 0x55, 0xb0, //0x00002be4 movq %rdx, $-80(%rbp) - 0x49, 0x39, 0xd6, //0x00002be8 cmpq %rdx, %r14 - 0x0f, 0x83, 0x7e, 0xfd, 0xff, 0xff, //0x00002beb jae LBB1_727 - 0xe9, 0x34, 0x0d, 0x00, 0x00, //0x00002bf1 jmp LBB1_852 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002bf6 .p2align 4, 0x90 - //0x00002c00 LBB1_612 - 0x49, 0xff, 0xc7, //0x00002c00 incq %r15 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002c03 movl $2, %r11d - 0x49, 0x39, 0xdf, //0x00002c09 cmpq %rbx, %r15 - 0x0f, 0x83, 0xc2, 0xff, 0xff, 0xff, //0x00002c0c jae LBB1_610 - //0x00002c12 LBB1_613 - 0x41, 0x0f, 0xb6, 0x0f, //0x00002c12 movzbl (%r15), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00002c16 cmpq $13, %rcx - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00002c1a je LBB1_612 - 0x80, 0xf9, 0x0a, //0x00002c20 cmpb $10, %cl - 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00002c23 je LBB1_612 - 0x48, 0x8b, 0x45, 0xc0, //0x00002c29 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x00002c2d movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc7, //0x00002c31 incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002c34 cmpl $255, %eax - 0x0f, 0x84, 0x0e, 0x09, 0x00, 0x00, //0x00002c39 je LBB1_759 - 0x8b, 0x4d, 0xc8, //0x00002c3f movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x00002c42 shll $6, %ecx - 0x09, 0xc1, //0x00002c45 orl %eax, %ecx - 0x89, 0x4d, 0xc8, //0x00002c47 movl %ecx, $-56(%rbp) - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002c4a movl $3, %r11d - 0x49, 0x39, 0xdf, //0x00002c50 cmpq %rbx, %r15 - 0x0f, 0x82, 0xa6, 0x03, 0x00, 0x00, //0x00002c53 jb LBB1_677 - 0xe9, 0x6b, 0x04, 0x00, 0x00, //0x00002c59 jmp LBB1_693 - //0x00002c5e LBB1_617 - 0x49, 0x89, 0xc7, //0x00002c5e movq %rax, %r15 - 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002c61 jmp LBB1_620 - //0x00002c66 LBB1_618 - 0x3c, 0x2f, //0x00002c66 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00002c68 jne LBB1_620 - 0x89, 0xc1, //0x00002c6e movl %eax, %ecx - //0x00002c70 LBB1_620 - 0x0f, 0xb6, 0xc1, //0x00002c70 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x00002c73 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x00002c77 movzbl (%rdx,%rax), %eax - 0x89, 0x45, 0xc8, //0x00002c7b movl %eax, $-56(%rbp) - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002c7e cmpl $255, %eax - 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002c83 je LBB1_623 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002c89 movl $1, %r11d - 0x49, 0x39, 0xdf, //0x00002c8f cmpq %rbx, %r15 - 0x0f, 0x83, 0x31, 0x04, 0x00, 0x00, //0x00002c92 jae LBB1_693 - 0x4c, 0x89, 0xfa, //0x00002c98 movq %r15, %rdx - 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00002c9b jmp LBB1_639 - //0x00002ca0 LBB1_623 - 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00002ca0 movl $0, $-56(%rbp) - 0x45, 0x31, 0xdb, //0x00002ca7 xorl %r11d, %r11d - //0x00002caa LBB1_624 - 0x45, 0x85, 0xe4, //0x00002caa testl %r12d, %r12d - 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x00002cad jne LBB1_696 - 0x41, 0x83, 0xfb, 0x02, //0x00002cb3 cmpl $2, %r11d - 0x0f, 0x82, 0x34, 0x04, 0x00, 0x00, //0x00002cb7 jb LBB1_696 - 0x80, 0xf9, 0x3d, //0x00002cbd cmpb $61, %cl - 0x0f, 0x85, 0x2b, 0x04, 0x00, 0x00, //0x00002cc0 jne LBB1_696 - 0x41, 0xba, 0x05, 0x00, 0x00, 0x00, //0x00002cc6 movl $5, %r10d - 0x45, 0x29, 0xda, //0x00002ccc subl %r11d, %r10d - 0xf6, 0x45, 0xbc, 0x08, //0x00002ccf testb $8, $-68(%rbp) - 0x0f, 0x85, 0xab, 0x01, 0x00, 0x00, //0x00002cd3 jne LBB1_655 - 0x4c, 0x39, 0x7d, 0xd0, //0x00002cd9 cmpq %r15, $-48(%rbp) - 0x0f, 0x86, 0x2a, 0x09, 0x00, 0x00, //0x00002cdd jbe LBB1_720 - 0x49, 0x8d, 0x4f, 0x03, //0x00002ce3 leaq $3(%r15), %rcx - 0x48, 0x8b, 0x5d, 0xa0, //0x00002ce7 movq $-96(%rbp), %rbx - 0x4c, 0x29, 0xfb, //0x00002ceb subq %r15, %rbx - 0x49, 0x8d, 0x57, 0x04, //0x00002cee leaq $4(%r15), %rdx - 0x48, 0x8b, 0x7d, 0x90, //0x00002cf2 movq $-112(%rbp), %rdi - 0x4c, 0x29, 0xff, //0x00002cf6 subq %r15, %rdi - 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00002cf9 jmp LBB1_631 - 0x90, 0x90, //0x00002cfe .p2align 4, 0x90 - //0x00002d00 LBB1_630 - 0x49, 0xff, 0xc7, //0x00002d00 incq %r15 - 0x48, 0xff, 0xc1, //0x00002d03 incq %rcx - 0x48, 0xff, 0xcb, //0x00002d06 decq %rbx - 0x48, 0xff, 0xc2, //0x00002d09 incq %rdx - 0x48, 0xff, 0xcf, //0x00002d0c decq %rdi - 0x4c, 0x39, 0x7d, 0xd0, //0x00002d0f cmpq %r15, $-48(%rbp) - 0x0f, 0x84, 0xf0, 0x08, 0x00, 0x00, //0x00002d13 je LBB1_717 - //0x00002d19 LBB1_631 - 0x41, 0x0f, 0xb6, 0x07, //0x00002d19 movzbl (%r15), %eax - 0x3c, 0x0a, //0x00002d1d cmpb $10, %al - 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00002d1f je LBB1_630 - 0x3c, 0x0d, //0x00002d25 cmpb $13, %al - 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00002d27 je LBB1_630 - 0x3c, 0x3d, //0x00002d2d cmpb $61, %al - 0x0f, 0x85, 0x30, 0x05, 0x00, 0x00, //0x00002d2f jne LBB1_728 - 0x49, 0xff, 0xc7, //0x00002d35 incq %r15 - 0x41, 0x83, 0xfa, 0x02, //0x00002d38 cmpl $2, %r10d - 0x0f, 0x84, 0xaf, 0x03, 0x00, 0x00, //0x00002d3c je LBB1_696 - 0x4c, 0x39, 0x7d, 0xd0, //0x00002d42 cmpq %r15, $-48(%rbp) - 0x0f, 0x87, 0x04, 0x03, 0x00, 0x00, //0x00002d46 ja LBB1_682 - 0xe9, 0xbc, 0x08, 0x00, 0x00, //0x00002d4c jmp LBB1_720 - //0x00002d51 LBB1_636 - 0x3c, 0x6e, //0x00002d51 cmpb $110, %al - 0x0f, 0x85, 0x2f, 0x03, 0x00, 0x00, //0x00002d53 jne LBB1_688 - //0x00002d59 LBB1_637 - 0x4d, 0x89, 0xc7, //0x00002d59 movq %r8, %r15 - //0x00002d5c LBB1_638 - 0x4c, 0x89, 0xfa, //0x00002d5c movq %r15, %rdx - 0x49, 0x39, 0xdf, //0x00002d5f cmpq %rbx, %r15 - 0x0f, 0x83, 0x11, 0x01, 0x00, 0x00, //0x00002d62 jae LBB1_675 - //0x00002d68 LBB1_639 - 0x4c, 0x8d, 0x7a, 0x01, //0x00002d68 leaq $1(%rdx), %r15 - 0x0f, 0xb6, 0x0a, //0x00002d6c movzbl (%rdx), %ecx - 0x80, 0xf9, 0x5c, //0x00002d6f cmpb $92, %cl - 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x00002d72 jne LBB1_652 - 0x4c, 0x8d, 0x42, 0x02, //0x00002d78 leaq $2(%rdx), %r8 - 0xb1, 0xff, //0x00002d7c movb $-1, %cl - 0x49, 0x39, 0xd8, //0x00002d7e cmpq %rbx, %r8 - 0x0f, 0x87, 0x12, 0x03, 0x00, 0x00, //0x00002d81 ja LBB1_691 - 0x41, 0x0f, 0xb6, 0x07, //0x00002d87 movzbl (%r15), %eax - 0x3c, 0x71, //0x00002d8b cmpb $113, %al - 0x0f, 0x8e, 0xbe, 0xff, 0xff, 0xff, //0x00002d8d jle LBB1_636 - 0x3c, 0x72, //0x00002d93 cmpb $114, %al - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00002d95 je LBB1_637 - 0x3c, 0x75, //0x00002d9b cmpb $117, %al - 0x0f, 0x85, 0xef, 0x02, 0x00, 0x00, //0x00002d9d jne LBB1_690 - 0x48, 0x8b, 0x45, 0xd0, //0x00002da3 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xc0, //0x00002da7 subq %r8, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002daa cmpq $4, %rax - 0x0f, 0x8c, 0xde, 0x02, 0x00, 0x00, //0x00002dae jl LBB1_690 - 0x41, 0x8b, 0x18, //0x00002db4 movl (%r8), %ebx - 0x89, 0xde, //0x00002db7 movl %ebx, %esi - 0xf7, 0xd6, //0x00002db9 notl %esi - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002dbb leal $-808464432(%rbx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00002dc1 andl $-2139062144, %esi - 0x85, 0xc6, //0x00002dc7 testl %eax, %esi - 0x0f, 0x85, 0xc3, 0x02, 0x00, 0x00, //0x00002dc9 jne LBB1_690 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00002dcf leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x00002dd5 orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00002dd7 testl $-2139062144, %eax - 0x0f, 0x85, 0xb0, 0x02, 0x00, 0x00, //0x00002ddc jne LBB1_690 - 0x89, 0xd8, //0x00002de2 movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002de4 andl $2139062143, %eax - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002de9 movl $-1061109568, %edi - 0x29, 0xc7, //0x00002dee subl %eax, %edi - 0x44, 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x00002df0 leal $1179010630(%rax), %r10d - 0x21, 0xf7, //0x00002df7 andl %esi, %edi - 0x44, 0x85, 0xd7, //0x00002df9 testl %r10d, %edi - 0x0f, 0x85, 0x90, 0x02, 0x00, 0x00, //0x00002dfc jne LBB1_690 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002e02 movl $-522133280, %edi - 0x29, 0xc7, //0x00002e07 subl %eax, %edi - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002e09 addl $960051513, %eax - 0x21, 0xfe, //0x00002e0e andl %edi, %esi - 0x85, 0xc6, //0x00002e10 testl %eax, %esi - 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x00002e12 jne LBB1_690 - 0x0f, 0xcb, //0x00002e18 bswapl %ebx - 0x89, 0xd8, //0x00002e1a movl %ebx, %eax - 0xc1, 0xe8, 0x04, //0x00002e1c shrl $4, %eax - 0xf7, 0xd0, //0x00002e1f notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00002e21 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00002e26 leal (%rax,%rax,8), %eax - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002e29 andl $252645135, %ebx - 0x01, 0xc3, //0x00002e2f addl %eax, %ebx - 0x89, 0xd9, //0x00002e31 movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x00002e33 shrl $4, %ecx - 0x09, 0xd9, //0x00002e36 orl %ebx, %ecx - 0x89, 0xc8, //0x00002e38 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00002e3a shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002e3d andl $65280, %eax - 0x89, 0xce, //0x00002e42 movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00002e44 andl $128, %esi - 0x09, 0xc6, //0x00002e4a orl %eax, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002e4c je LBB1_651 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002e52 movl $255, %ecx - //0x00002e57 LBB1_651 - 0x48, 0x83, 0xc2, 0x06, //0x00002e57 addq $6, %rdx - 0x49, 0x89, 0xd7, //0x00002e5b movq %rdx, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00002e5e movq $-48(%rbp), %rbx - //0x00002e62 LBB1_652 - 0x80, 0xf9, 0x0a, //0x00002e62 cmpb $10, %cl - 0x0f, 0x84, 0xf1, 0xfe, 0xff, 0xff, //0x00002e65 je LBB1_638 - 0x80, 0xf9, 0x0d, //0x00002e6b cmpb $13, %cl - 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x00002e6e je LBB1_638 - 0xe9, 0x20, 0x02, 0x00, 0x00, //0x00002e74 jmp LBB1_691 - //0x00002e79 LBB1_675 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002e79 movl $1, %r11d - 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x00002e7f jmp LBB1_610 - //0x00002e84 LBB1_655 - 0x48, 0x8b, 0x55, 0xd0, //0x00002e84 movq $-48(%rbp), %rdx - 0x4c, 0x39, 0xfa, //0x00002e88 cmpq %r15, %rdx - 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00002e8b ja LBB1_658 - 0xe9, 0x77, 0x07, 0x00, 0x00, //0x00002e91 jmp LBB1_720 - //0x00002e96 LBB1_674 - 0x48, 0x89, 0xc1, //0x00002e96 movq %rax, %rcx - 0x49, 0x89, 0xcf, //0x00002e99 movq %rcx, %r15 - 0x48, 0x39, 0xd1, //0x00002e9c cmpq %rdx, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002e9f jb LBB1_658 - 0xe9, 0x3b, 0x01, 0x00, 0x00, //0x00002ea5 jmp LBB1_719 - //0x00002eaa LBB1_656 - 0x48, 0x89, 0xc8, //0x00002eaa movq %rcx, %rax - 0x49, 0x89, 0xcf, //0x00002ead movq %rcx, %r15 - 0x48, 0x39, 0xd1, //0x00002eb0 cmpq %rdx, %rcx - 0x0f, 0x83, 0x2c, 0x01, 0x00, 0x00, //0x00002eb3 jae LBB1_719 - //0x00002eb9 LBB1_658 - 0x49, 0x8d, 0x47, 0x01, //0x00002eb9 leaq $1(%r15), %rax - 0x41, 0x0f, 0xb6, 0x0f, //0x00002ebd movzbl (%r15), %ecx - 0x80, 0xf9, 0x5c, //0x00002ec1 cmpb $92, %cl - 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00002ec4 jne LBB1_671 - 0x49, 0x8d, 0x4f, 0x02, //0x00002eca leaq $2(%r15), %rcx - 0x48, 0x39, 0xd1, //0x00002ece cmpq %rdx, %rcx - 0x0f, 0x87, 0x3b, 0x0a, 0x00, 0x00, //0x00002ed1 ja LBB1_827 - 0x0f, 0xb6, 0x00, //0x00002ed7 movzbl (%rax), %eax - 0x3c, 0x6e, //0x00002eda cmpb $110, %al - 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00002edc je LBB1_656 - 0x3c, 0x72, //0x00002ee2 cmpb $114, %al - 0x0f, 0x84, 0xc0, 0xff, 0xff, 0xff, //0x00002ee4 je LBB1_656 - 0x3c, 0x75, //0x00002eea cmpb $117, %al - 0x0f, 0x85, 0x15, 0x0a, 0x00, 0x00, //0x00002eec jne LBB1_847 - 0x48, 0x89, 0xd0, //0x00002ef2 movq %rdx, %rax - 0x48, 0x29, 0xc8, //0x00002ef5 subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00002ef8 cmpq $4, %rax - 0x0f, 0x8c, 0x05, 0x0a, 0x00, 0x00, //0x00002efc jl LBB1_847 - 0x8b, 0x01, //0x00002f02 movl (%rcx), %eax - 0x89, 0xc2, //0x00002f04 movl %eax, %edx - 0xf7, 0xd2, //0x00002f06 notl %edx - 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002f08 leal $-808464432(%rax), %esi - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00002f0e andl $-2139062144, %edx - 0x85, 0xf2, //0x00002f14 testl %esi, %edx - 0x0f, 0x85, 0xeb, 0x09, 0x00, 0x00, //0x00002f16 jne LBB1_847 - 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x00002f1c leal $421075225(%rax), %esi - 0x09, 0xc6, //0x00002f22 orl %eax, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00002f24 testl $-2139062144, %esi - 0x0f, 0x85, 0xd7, 0x09, 0x00, 0x00, //0x00002f2a jne LBB1_847 - 0x89, 0xc6, //0x00002f30 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002f32 andl $2139062143, %esi - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002f38 movl $-1061109568, %edi - 0x29, 0xf7, //0x00002f3d subl %esi, %edi - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002f3f leal $1179010630(%rsi), %ebx - 0x21, 0xd7, //0x00002f45 andl %edx, %edi - 0x85, 0xdf, //0x00002f47 testl %ebx, %edi - 0x0f, 0x85, 0xb8, 0x09, 0x00, 0x00, //0x00002f49 jne LBB1_847 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002f4f movl $-522133280, %edi - 0x29, 0xf7, //0x00002f54 subl %esi, %edi - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002f56 addl $960051513, %esi - 0x21, 0xfa, //0x00002f5c andl %edi, %edx - 0x85, 0xf2, //0x00002f5e testl %esi, %edx - 0x0f, 0x85, 0xa1, 0x09, 0x00, 0x00, //0x00002f60 jne LBB1_847 - 0x0f, 0xc8, //0x00002f66 bswapl %eax - 0x89, 0xc1, //0x00002f68 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002f6a shrl $4, %ecx - 0xf7, 0xd1, //0x00002f6d notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002f6f andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00002f75 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002f78 andl $252645135, %eax - 0x01, 0xc8, //0x00002f7d addl %ecx, %eax - 0x89, 0xc1, //0x00002f7f movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00002f81 shrl $4, %ecx - 0x09, 0xc1, //0x00002f84 orl %eax, %ecx - 0x89, 0xc8, //0x00002f86 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00002f88 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002f8b andl $65280, %eax - 0x89, 0xca, //0x00002f90 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00002f92 andl $128, %edx - 0x09, 0xc2, //0x00002f98 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002f9a je LBB1_670 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002fa0 movl $255, %ecx - //0x00002fa5 LBB1_670 - 0x49, 0x83, 0xc7, 0x06, //0x00002fa5 addq $6, %r15 - 0x4c, 0x89, 0xf8, //0x00002fa9 movq %r15, %rax - 0x48, 0x8b, 0x55, 0xd0, //0x00002fac movq $-48(%rbp), %rdx - //0x00002fb0 LBB1_671 - 0x80, 0xf9, 0x0a, //0x00002fb0 cmpb $10, %cl - 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00002fb3 je LBB1_674 - 0x80, 0xf9, 0x0d, //0x00002fb9 cmpb $13, %cl - 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00002fbc je LBB1_674 - 0x80, 0xf9, 0x3d, //0x00002fc2 cmpb $61, %cl - 0x0f, 0x85, 0x47, 0x09, 0x00, 0x00, //0x00002fc5 jne LBB1_827 - 0x49, 0x89, 0xc7, //0x00002fcb movq %rax, %r15 - 0x41, 0x83, 0xfa, 0x02, //0x00002fce cmpl $2, %r10d - 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00002fd2 je LBB1_696 - 0x48, 0x8b, 0x75, 0xd0, //0x00002fd8 movq $-48(%rbp), %rsi - 0x48, 0x39, 0xc6, //0x00002fdc cmpq %rax, %rsi - 0x0f, 0x87, 0x32, 0x04, 0x00, 0x00, //0x00002fdf ja LBB1_762 - //0x00002fe5 LBB1_719 - 0x49, 0x89, 0xc7, //0x00002fe5 movq %rax, %r15 - 0xe9, 0x20, 0x06, 0x00, 0x00, //0x00002fe8 jmp LBB1_720 - //0x00002fed LBB1_676 - 0x49, 0xff, 0xc7, //0x00002fed incq %r15 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002ff0 movl $3, %r11d - 0x49, 0x39, 0xdf, //0x00002ff6 cmpq %rbx, %r15 - 0x0f, 0x83, 0xd5, 0xfb, 0xff, 0xff, //0x00002ff9 jae LBB1_610 - //0x00002fff LBB1_677 - 0x41, 0x0f, 0xb6, 0x0f, //0x00002fff movzbl (%r15), %ecx - 0x48, 0x83, 0xf9, 0x0d, //0x00003003 cmpq $13, %rcx - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003007 je LBB1_676 - 0x80, 0xf9, 0x0a, //0x0000300d cmpb $10, %cl - 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00003010 je LBB1_676 - 0x48, 0x8b, 0x45, 0xc0, //0x00003016 movq $-64(%rbp), %rax - 0x0f, 0xb6, 0x04, 0x08, //0x0000301a movzbl (%rax,%rcx), %eax - 0x49, 0xff, 0xc7, //0x0000301e incq %r15 - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00003021 cmpl $255, %eax - 0x0f, 0x85, 0xa0, 0x05, 0x00, 0x00, //0x00003026 jne LBB1_790 - //0x0000302c LBB1_791 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x0000302c movl $3, %r11d - 0xe9, 0x73, 0xfc, 0xff, 0xff, //0x00003032 jmp LBB1_624 - //0x00003037 LBB1_681 - 0x49, 0xff, 0xc7, //0x00003037 incq %r15 - 0x48, 0xff, 0xc1, //0x0000303a incq %rcx - 0x48, 0xff, 0xcb, //0x0000303d decq %rbx - 0x48, 0xff, 0xc2, //0x00003040 incq %rdx - 0x48, 0xff, 0xcf, //0x00003043 decq %rdi - 0x4c, 0x39, 0x7d, 0xd0, //0x00003046 cmpq %r15, $-48(%rbp) - 0x0f, 0x84, 0xb9, 0x05, 0x00, 0x00, //0x0000304a je LBB1_717 - //0x00003050 LBB1_682 - 0x41, 0x0f, 0xb6, 0x07, //0x00003050 movzbl (%r15), %eax - 0x3c, 0x0a, //0x00003054 cmpb $10, %al - 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00003056 je LBB1_681 - 0x3c, 0x0d, //0x0000305c cmpb $13, %al - 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x0000305e je LBB1_681 - 0x3c, 0x3d, //0x00003064 cmpb $61, %al - 0x0f, 0x85, 0xf9, 0x01, 0x00, 0x00, //0x00003066 jne LBB1_728 - 0x49, 0xff, 0xc7, //0x0000306c incq %r15 - 0x41, 0x83, 0xfa, 0x03, //0x0000306f cmpl $3, %r10d - 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00003073 je LBB1_696 - 0x4c, 0x39, 0x7d, 0xd0, //0x00003079 cmpq %r15, $-48(%rbp) - 0x0f, 0x87, 0xe7, 0x04, 0x00, 0x00, //0x0000307d ja LBB1_780 - 0xe9, 0x85, 0x05, 0x00, 0x00, //0x00003083 jmp LBB1_720 - //0x00003088 LBB1_688 - 0x3c, 0x2f, //0x00003088 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x0000308a jne LBB1_690 - 0x89, 0xc1, //0x00003090 movl %eax, %ecx - //0x00003092 LBB1_690 - 0x4d, 0x89, 0xc7, //0x00003092 movq %r8, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x00003095 movq $-48(%rbp), %rbx - //0x00003099 LBB1_691 - 0x0f, 0xb6, 0xc1, //0x00003099 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x0000309c movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x000030a0 movzbl (%rdx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000030a4 cmpl $255, %eax - 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x000030a9 je LBB1_716 - 0x8b, 0x4d, 0xc8, //0x000030af movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x000030b2 shll $6, %ecx - 0x09, 0xc1, //0x000030b5 orl %eax, %ecx - 0x89, 0x4d, 0xc8, //0x000030b7 movl %ecx, $-56(%rbp) - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000030ba movl $2, %r11d - 0x49, 0x39, 0xdf, //0x000030c0 cmpq %rbx, %r15 - 0x0f, 0x82, 0x7e, 0x00, 0x00, 0x00, //0x000030c3 jb LBB1_701 - //0x000030c9 LBB1_693 - 0x45, 0x85, 0xe4, //0x000030c9 testl %r12d, %r12d - 0x0f, 0x94, 0xc0, //0x000030cc sete %al - 0x41, 0x83, 0xfb, 0x01, //0x000030cf cmpl $1, %r11d - 0x0f, 0x94, 0xc1, //0x000030d3 sete %cl - 0x49, 0x39, 0xdf, //0x000030d6 cmpq %rbx, %r15 - 0x0f, 0x82, 0x2e, 0x05, 0x00, 0x00, //0x000030d9 jb LBB1_720 - 0x41, 0x83, 0xfb, 0x04, //0x000030df cmpl $4, %r11d - 0x0f, 0x84, 0x24, 0x05, 0x00, 0x00, //0x000030e3 je LBB1_720 - 0x08, 0xc8, //0x000030e9 orb %cl, %al - 0x0f, 0x84, 0x1c, 0x05, 0x00, 0x00, //0x000030eb je LBB1_720 - //0x000030f1 LBB1_696 - 0x49, 0x8d, 0x4f, 0x01, //0x000030f1 leaq $1(%r15), %rcx - 0x4c, 0x39, 0x7d, 0xd0, //0x000030f5 cmpq %r15, $-48(%rbp) - 0x49, 0x0f, 0x45, 0xcf, //0x000030f9 cmovneq %r15, %rcx - 0x4c, 0x29, 0xc9, //0x000030fd subq %r9, %rcx - 0x0f, 0x85, 0x9a, 0x18, 0x00, 0x00, //0x00003100 jne LBB1_1137 - 0x4d, 0x89, 0xcf, //0x00003106 movq %r9, %r15 - 0x48, 0x8b, 0x55, 0xb0, //0x00003109 movq $-80(%rbp), %rdx - 0x48, 0x89, 0x55, 0xb0, //0x0000310d movq %rdx, $-80(%rbp) - 0x49, 0x39, 0xd6, //0x00003111 cmpq %rdx, %r14 - 0x0f, 0x83, 0x55, 0xf8, 0xff, 0xff, //0x00003114 jae LBB1_727 - 0xe9, 0x0b, 0x08, 0x00, 0x00, //0x0000311a jmp LBB1_852 - //0x0000311f LBB1_716 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000311f movl $1, %r11d - 0xe9, 0x80, 0xfb, 0xff, 0xff, //0x00003125 jmp LBB1_624 - //0x0000312a LBB1_698 - 0x3c, 0x6e, //0x0000312a cmpb $110, %al - 0x0f, 0x85, 0x41, 0x01, 0x00, 0x00, //0x0000312c jne LBB1_734 - //0x00003132 LBB1_699 - 0x48, 0x89, 0xd7, //0x00003132 movq %rdx, %rdi - //0x00003135 LBB1_700 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003135 movl $2, %r11d - 0x49, 0x89, 0xff, //0x0000313b movq %rdi, %r15 - 0x48, 0x39, 0xdf, //0x0000313e cmpq %rbx, %rdi - 0x0f, 0x83, 0x16, 0x01, 0x00, 0x00, //0x00003141 jae LBB1_718 - //0x00003147 LBB1_701 - 0x49, 0x8d, 0x7f, 0x01, //0x00003147 leaq $1(%r15), %rdi - 0x41, 0x0f, 0xb6, 0x0f, //0x0000314b movzbl (%r15), %ecx - 0x80, 0xf9, 0x5c, //0x0000314f cmpb $92, %cl - 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x00003152 jne LBB1_714 - 0x49, 0x8d, 0x57, 0x02, //0x00003158 leaq $2(%r15), %rdx - 0xb1, 0xff, //0x0000315c movb $-1, %cl - 0x48, 0x39, 0xda, //0x0000315e cmpq %rbx, %rdx - 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00003161 ja LBB1_737 - 0x0f, 0xb6, 0x07, //0x00003167 movzbl (%rdi), %eax - 0x3c, 0x71, //0x0000316a cmpb $113, %al - 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x0000316c jle LBB1_698 - 0x3c, 0x72, //0x00003172 cmpb $114, %al - 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00003174 je LBB1_699 - 0x3c, 0x75, //0x0000317a cmpb $117, %al - 0x0f, 0x85, 0xfb, 0x00, 0x00, 0x00, //0x0000317c jne LBB1_736 - 0x48, 0x89, 0xd8, //0x00003182 movq %rbx, %rax - 0x48, 0x29, 0xd0, //0x00003185 subq %rdx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00003188 cmpq $4, %rax - 0x0f, 0x8c, 0xeb, 0x00, 0x00, 0x00, //0x0000318c jl LBB1_736 - 0x8b, 0x02, //0x00003192 movl (%rdx), %eax - 0x89, 0xc6, //0x00003194 movl %eax, %esi - 0xf7, 0xd6, //0x00003196 notl %esi - 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003198 leal $-808464432(%rax), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000319e andl $-2139062144, %esi - 0x85, 0xfe, //0x000031a4 testl %edi, %esi - 0x0f, 0x85, 0xd1, 0x00, 0x00, 0x00, //0x000031a6 jne LBB1_736 - 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x000031ac leal $421075225(%rax), %edi - 0x09, 0xc7, //0x000031b2 orl %eax, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x000031b4 testl $-2139062144, %edi - 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x000031ba jne LBB1_736 - 0x89, 0xc7, //0x000031c0 movl %eax, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x000031c2 andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000031c8 movl $-1061109568, %ebx - 0x29, 0xfb, //0x000031cd subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000031cf leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x000031d6 andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x000031d8 testl %r8d, %ebx - 0x48, 0x8b, 0x5d, 0xd0, //0x000031db movq $-48(%rbp), %rbx - 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x000031df jne LBB1_736 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000031e5 movl $-522133280, %ebx - 0x29, 0xfb, //0x000031ea subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000031ec addl $960051513, %edi - 0x21, 0xde, //0x000031f2 andl %ebx, %esi - 0x48, 0x8b, 0x5d, 0xd0, //0x000031f4 movq $-48(%rbp), %rbx - 0x85, 0xfe, //0x000031f8 testl %edi, %esi - 0x0f, 0x85, 0x7d, 0x00, 0x00, 0x00, //0x000031fa jne LBB1_736 - 0x0f, 0xc8, //0x00003200 bswapl %eax - 0x89, 0xc1, //0x00003202 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00003204 shrl $4, %ecx - 0xf7, 0xd1, //0x00003207 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00003209 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x0000320f leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003212 andl $252645135, %eax - 0x01, 0xc8, //0x00003217 addl %ecx, %eax - 0x89, 0xc1, //0x00003219 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x0000321b shrl $4, %ecx - 0x09, 0xc1, //0x0000321e orl %eax, %ecx - 0x89, 0xc8, //0x00003220 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00003222 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00003225 andl $65280, %eax - 0x89, 0xca, //0x0000322a movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000322c andl $128, %edx - 0x09, 0xc2, //0x00003232 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003234 je LBB1_713 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x0000323a movl $255, %ecx - //0x0000323f LBB1_713 - 0x49, 0x83, 0xc7, 0x06, //0x0000323f addq $6, %r15 - 0x4c, 0x89, 0xff, //0x00003243 movq %r15, %rdi - //0x00003246 LBB1_714 - 0x80, 0xf9, 0x0a, //0x00003246 cmpb $10, %cl - 0x0f, 0x84, 0xe6, 0xfe, 0xff, 0xff, //0x00003249 je LBB1_700 - 0x80, 0xf9, 0x0d, //0x0000324f cmpb $13, %cl - 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00003252 je LBB1_700 - 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00003258 jmp LBB1_737 - //0x0000325d LBB1_718 - 0x49, 0x89, 0xff, //0x0000325d movq %rdi, %r15 - 0xe9, 0x6f, 0xf9, 0xff, 0xff, //0x00003260 jmp LBB1_610 - //0x00003265 LBB1_728 - 0x49, 0xff, 0xc7, //0x00003265 incq %r15 - 0x4c, 0x89, 0xfa, //0x00003268 movq %r15, %rdx - //0x0000326b LBB1_729 - 0x49, 0x89, 0xd7, //0x0000326b movq %rdx, %r15 - 0xe9, 0x7e, 0xfe, 0xff, 0xff, //0x0000326e jmp LBB1_696 - //0x00003273 LBB1_734 - 0x3c, 0x2f, //0x00003273 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00003275 jne LBB1_736 - 0x89, 0xc1, //0x0000327b movl %eax, %ecx - //0x0000327d LBB1_736 - 0x48, 0x89, 0xd7, //0x0000327d movq %rdx, %rdi - //0x00003280 LBB1_737 - 0x0f, 0xb6, 0xc1, //0x00003280 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x00003283 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x00003287 movzbl (%rdx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x0000328b cmpl $255, %eax - 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00003290 je LBB1_758 - 0x8b, 0x4d, 0xc8, //0x00003296 movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x00003299 shll $6, %ecx - 0x09, 0xc1, //0x0000329c orl %eax, %ecx - 0x89, 0x4d, 0xc8, //0x0000329e movl %ecx, $-56(%rbp) - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000032a1 movl $3, %r11d - 0x48, 0x39, 0xdf, //0x000032a7 cmpq %rbx, %rdi - 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x000032aa jb LBB1_743 - 0x49, 0x89, 0xff, //0x000032b0 movq %rdi, %r15 - 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x000032b3 jmp LBB1_693 - //0x000032b8 LBB1_740 - 0x3c, 0x6e, //0x000032b8 cmpb $110, %al - 0x0f, 0x85, 0xe5, 0x02, 0x00, 0x00, //0x000032ba jne LBB1_786 - //0x000032c0 LBB1_741 - 0x4d, 0x89, 0xc7, //0x000032c0 movq %r8, %r15 - //0x000032c3 LBB1_742 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000032c3 movl $3, %r11d - 0x4c, 0x89, 0xff, //0x000032c9 movq %r15, %rdi - 0x49, 0x39, 0xdf, //0x000032cc cmpq %rbx, %r15 - 0x0f, 0x83, 0xff, 0xf8, 0xff, 0xff, //0x000032cf jae LBB1_610 - //0x000032d5 LBB1_743 - 0x4c, 0x8d, 0x7f, 0x01, //0x000032d5 leaq $1(%rdi), %r15 - 0x0f, 0xb6, 0x0f, //0x000032d9 movzbl (%rdi), %ecx - 0x80, 0xf9, 0x5c, //0x000032dc cmpb $92, %cl - 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x000032df jne LBB1_756 - 0x4c, 0x8d, 0x47, 0x02, //0x000032e5 leaq $2(%rdi), %r8 - 0xb1, 0xff, //0x000032e9 movb $-1, %cl - 0x49, 0x39, 0xd8, //0x000032eb cmpq %rbx, %r8 - 0x0f, 0x87, 0xc2, 0x02, 0x00, 0x00, //0x000032ee ja LBB1_789 - 0x41, 0x0f, 0xb6, 0x07, //0x000032f4 movzbl (%r15), %eax - 0x3c, 0x71, //0x000032f8 cmpb $113, %al - 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x000032fa jle LBB1_740 - 0x3c, 0x72, //0x00003300 cmpb $114, %al - 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00003302 je LBB1_741 - 0x3c, 0x75, //0x00003308 cmpb $117, %al - 0x0f, 0x85, 0x9f, 0x02, 0x00, 0x00, //0x0000330a jne LBB1_788 - 0x48, 0x8b, 0x45, 0xd0, //0x00003310 movq $-48(%rbp), %rax - 0x4c, 0x29, 0xc0, //0x00003314 subq %r8, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00003317 cmpq $4, %rax - 0x0f, 0x8c, 0x8e, 0x02, 0x00, 0x00, //0x0000331b jl LBB1_788 - 0x41, 0x8b, 0x18, //0x00003321 movl (%r8), %ebx - 0x89, 0xde, //0x00003324 movl %ebx, %esi - 0xf7, 0xd6, //0x00003326 notl %esi - 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003328 leal $-808464432(%rbx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000332e andl $-2139062144, %esi - 0x85, 0xc6, //0x00003334 testl %eax, %esi - 0x0f, 0x85, 0x73, 0x02, 0x00, 0x00, //0x00003336 jne LBB1_788 - 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x0000333c leal $421075225(%rbx), %eax - 0x09, 0xd8, //0x00003342 orl %ebx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00003344 testl $-2139062144, %eax - 0x0f, 0x85, 0x60, 0x02, 0x00, 0x00, //0x00003349 jne LBB1_788 - 0x89, 0xd8, //0x0000334f movl %ebx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003351 andl $2139062143, %eax - 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003356 movl $-1061109568, %edx - 0x29, 0xc2, //0x0000335b subl %eax, %edx - 0x44, 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x0000335d leal $1179010630(%rax), %r10d - 0x21, 0xf2, //0x00003364 andl %esi, %edx - 0x44, 0x85, 0xd2, //0x00003366 testl %r10d, %edx - 0x0f, 0x85, 0x40, 0x02, 0x00, 0x00, //0x00003369 jne LBB1_788 - 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000336f movl $-522133280, %edx - 0x29, 0xc2, //0x00003374 subl %eax, %edx - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00003376 addl $960051513, %eax - 0x21, 0xd6, //0x0000337b andl %edx, %esi - 0x85, 0xc6, //0x0000337d testl %eax, %esi - 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x0000337f jne LBB1_788 - 0x0f, 0xcb, //0x00003385 bswapl %ebx - 0x89, 0xd8, //0x00003387 movl %ebx, %eax - 0xc1, 0xe8, 0x04, //0x00003389 shrl $4, %eax - 0xf7, 0xd0, //0x0000338c notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000338e andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00003393 leal (%rax,%rax,8), %eax - 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003396 andl $252645135, %ebx - 0x01, 0xc3, //0x0000339c addl %eax, %ebx - 0x89, 0xd9, //0x0000339e movl %ebx, %ecx - 0xc1, 0xe9, 0x04, //0x000033a0 shrl $4, %ecx - 0x09, 0xd9, //0x000033a3 orl %ebx, %ecx - 0x89, 0xc8, //0x000033a5 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x000033a7 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x000033aa andl $65280, %eax - 0x89, 0xca, //0x000033af movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000033b1 andl $128, %edx - 0x09, 0xc2, //0x000033b7 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000033b9 je LBB1_755 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000033bf movl $255, %ecx - //0x000033c4 LBB1_755 - 0x48, 0x83, 0xc7, 0x06, //0x000033c4 addq $6, %rdi - 0x49, 0x89, 0xff, //0x000033c8 movq %rdi, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x000033cb movq $-48(%rbp), %rbx - //0x000033cf LBB1_756 - 0x80, 0xf9, 0x0a, //0x000033cf cmpb $10, %cl - 0x0f, 0x84, 0xeb, 0xfe, 0xff, 0xff, //0x000033d2 je LBB1_742 - 0x80, 0xf9, 0x0d, //0x000033d8 cmpb $13, %cl - 0x0f, 0x84, 0xe2, 0xfe, 0xff, 0xff, //0x000033db je LBB1_742 - 0xe9, 0xd0, 0x01, 0x00, 0x00, //0x000033e1 jmp LBB1_789 - //0x000033e6 LBB1_758 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000033e6 movl $2, %r11d - 0x49, 0x89, 0xff, //0x000033ec movq %rdi, %r15 - 0xe9, 0xb6, 0xf8, 0xff, 0xff, //0x000033ef jmp LBB1_624 - //0x000033f4 LBB1_778 - 0x4c, 0x89, 0xf9, //0x000033f4 movq %r15, %rcx - 0x48, 0x89, 0xc8, //0x000033f7 movq %rcx, %rax - 0x48, 0x39, 0xf1, //0x000033fa cmpq %rsi, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000033fd jb LBB1_762 - 0xe9, 0x05, 0x02, 0x00, 0x00, //0x00003403 jmp LBB1_720 - //0x00003408 LBB1_760 - 0x49, 0x89, 0xcf, //0x00003408 movq %rcx, %r15 - 0x48, 0x89, 0xc8, //0x0000340b movq %rcx, %rax - 0x48, 0x39, 0xf1, //0x0000340e cmpq %rsi, %rcx - 0x0f, 0x83, 0xf6, 0x01, 0x00, 0x00, //0x00003411 jae LBB1_720 - //0x00003417 LBB1_762 - 0x4c, 0x8d, 0x78, 0x01, //0x00003417 leaq $1(%rax), %r15 - 0x0f, 0xb6, 0x08, //0x0000341b movzbl (%rax), %ecx - 0x80, 0xf9, 0x5c, //0x0000341e cmpb $92, %cl - 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x00003421 jne LBB1_775 - 0x48, 0x8d, 0x48, 0x02, //0x00003427 leaq $2(%rax), %rcx - 0x48, 0x39, 0xf1, //0x0000342b cmpq %rsi, %rcx - 0x0f, 0x87, 0xdb, 0x04, 0x00, 0x00, //0x0000342e ja LBB1_848 - 0x41, 0x0f, 0xb6, 0x17, //0x00003434 movzbl (%r15), %edx - 0x80, 0xfa, 0x6e, //0x00003438 cmpb $110, %dl - 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x0000343b je LBB1_760 - 0x80, 0xfa, 0x72, //0x00003441 cmpb $114, %dl - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00003444 je LBB1_760 - 0x80, 0xfa, 0x75, //0x0000344a cmpb $117, %dl - 0x0f, 0x85, 0xb4, 0x04, 0x00, 0x00, //0x0000344d jne LBB1_847 - 0x48, 0x89, 0xf2, //0x00003453 movq %rsi, %rdx - 0x48, 0x29, 0xca, //0x00003456 subq %rcx, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x00003459 cmpq $4, %rdx - 0x0f, 0x8c, 0xa4, 0x04, 0x00, 0x00, //0x0000345d jl LBB1_847 - 0x8b, 0x11, //0x00003463 movl (%rcx), %edx - 0x89, 0xd6, //0x00003465 movl %edx, %esi - 0xf7, 0xd6, //0x00003467 notl %esi - 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003469 leal $-808464432(%rdx), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000346f andl $-2139062144, %esi - 0x85, 0xfe, //0x00003475 testl %edi, %esi - 0x0f, 0x85, 0x8a, 0x04, 0x00, 0x00, //0x00003477 jne LBB1_847 - 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x0000347d leal $421075225(%rdx), %edi - 0x09, 0xd7, //0x00003483 orl %edx, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00003485 testl $-2139062144, %edi - 0x0f, 0x85, 0x76, 0x04, 0x00, 0x00, //0x0000348b jne LBB1_847 - 0x89, 0xd7, //0x00003491 movl %edx, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003493 andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003499 movl $-1061109568, %ebx - 0x29, 0xfb, //0x0000349e subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000034a0 leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x000034a7 andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x000034a9 testl %r8d, %ebx - 0x0f, 0x85, 0x55, 0x04, 0x00, 0x00, //0x000034ac jne LBB1_847 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000034b2 movl $-522133280, %ebx - 0x29, 0xfb, //0x000034b7 subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000034b9 addl $960051513, %edi - 0x21, 0xde, //0x000034bf andl %ebx, %esi - 0x85, 0xfe, //0x000034c1 testl %edi, %esi - 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x000034c3 jne LBB1_847 - 0x0f, 0xca, //0x000034c9 bswapl %edx - 0x89, 0xd1, //0x000034cb movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000034cd shrl $4, %ecx - 0xf7, 0xd1, //0x000034d0 notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000034d2 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x000034d8 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000034db andl $252645135, %edx - 0x01, 0xca, //0x000034e1 addl %ecx, %edx - 0x89, 0xd1, //0x000034e3 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000034e5 shrl $4, %ecx - 0x09, 0xd1, //0x000034e8 orl %edx, %ecx - 0x89, 0xca, //0x000034ea movl %ecx, %edx - 0xc1, 0xea, 0x08, //0x000034ec shrl $8, %edx - 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000034ef andl $65280, %edx - 0x89, 0xce, //0x000034f5 movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000034f7 andl $128, %esi - 0x09, 0xd6, //0x000034fd orl %edx, %esi - 0x48, 0x8b, 0x75, 0xd0, //0x000034ff movq $-48(%rbp), %rsi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003503 je LBB1_774 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00003509 movl $255, %ecx - //0x0000350e LBB1_774 - 0x48, 0x83, 0xc0, 0x06, //0x0000350e addq $6, %rax - 0x49, 0x89, 0xc7, //0x00003512 movq %rax, %r15 - //0x00003515 LBB1_775 - 0x80, 0xf9, 0x0a, //0x00003515 cmpb $10, %cl - 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00003518 je LBB1_778 - 0x80, 0xf9, 0x0d, //0x0000351e cmpb $13, %cl - 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00003521 je LBB1_778 - 0x80, 0xf9, 0x3d, //0x00003527 cmpb $61, %cl - 0x0f, 0x85, 0xc1, 0xfb, 0xff, 0xff, //0x0000352a jne LBB1_696 - 0x41, 0x83, 0xfa, 0x03, //0x00003530 cmpl $3, %r10d - 0x0f, 0x84, 0xb7, 0xfb, 0xff, 0xff, //0x00003534 je LBB1_696 - 0x4c, 0x39, 0x7d, 0xd0, //0x0000353a cmpq %r15, $-48(%rbp) - 0x0f, 0x86, 0xc9, 0x00, 0x00, 0x00, //0x0000353e jbe LBB1_720 - 0x48, 0x8b, 0x55, 0xd0, //0x00003544 movq $-48(%rbp), %rdx - 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00003548 jmp LBB1_803 - //0x0000354d LBB1_759 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000354d movl $2, %r11d - 0xe9, 0x52, 0xf7, 0xff, 0xff, //0x00003553 jmp LBB1_624 - //0x00003558 LBB1_779 - 0x48, 0xff, 0xc1, //0x00003558 incq %rcx - 0x48, 0xff, 0xc2, //0x0000355b incq %rdx - 0x48, 0xff, 0xcf, //0x0000355e decq %rdi - 0x48, 0xff, 0xcb, //0x00003561 decq %rbx - 0x0f, 0x84, 0x9f, 0x00, 0x00, 0x00, //0x00003564 je LBB1_717 - //0x0000356a LBB1_780 - 0x0f, 0xb6, 0x41, 0xff, //0x0000356a movzbl $-1(%rcx), %eax - 0x3c, 0x0a, //0x0000356e cmpb $10, %al - 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x00003570 je LBB1_779 - 0x3c, 0x0d, //0x00003576 cmpb $13, %al - 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00003578 je LBB1_779 - 0x3c, 0x3d, //0x0000357e cmpb $61, %al - 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x00003580 jne LBB1_821 - 0x49, 0x89, 0xcf, //0x00003586 movq %rcx, %r15 - 0x41, 0x83, 0xfa, 0x04, //0x00003589 cmpl $4, %r10d - 0x0f, 0x84, 0x5e, 0xfb, 0xff, 0xff, //0x0000358d je LBB1_696 - 0x48, 0x39, 0x4d, 0xd0, //0x00003593 cmpq %rcx, $-48(%rbp) - 0x0f, 0x87, 0x51, 0x00, 0x00, 0x00, //0x00003597 ja LBB1_798 - 0x49, 0x89, 0xcf, //0x0000359d movq %rcx, %r15 - 0xe9, 0x68, 0x00, 0x00, 0x00, //0x000035a0 jmp LBB1_720 - //0x000035a5 LBB1_786 - 0x3c, 0x2f, //0x000035a5 cmpb $47, %al - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000035a7 jne LBB1_788 - 0x89, 0xc1, //0x000035ad movl %eax, %ecx - //0x000035af LBB1_788 - 0x4d, 0x89, 0xc7, //0x000035af movq %r8, %r15 - 0x48, 0x8b, 0x5d, 0xd0, //0x000035b2 movq $-48(%rbp), %rbx - //0x000035b6 LBB1_789 - 0x0f, 0xb6, 0xc1, //0x000035b6 movzbl %cl, %eax - 0x48, 0x8b, 0x55, 0xc0, //0x000035b9 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x04, 0x02, //0x000035bd movzbl (%rdx,%rax), %eax - 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000035c1 cmpl $255, %eax - 0x0f, 0x84, 0x60, 0xfa, 0xff, 0xff, //0x000035c6 je LBB1_791 - //0x000035cc LBB1_790 - 0x8b, 0x4d, 0xc8, //0x000035cc movl $-56(%rbp), %ecx - 0xc1, 0xe1, 0x06, //0x000035cf shll $6, %ecx - 0x09, 0xc1, //0x000035d2 orl %eax, %ecx - 0x89, 0x4d, 0xc8, //0x000035d4 movl %ecx, $-56(%rbp) - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000035d7 movl $4, %r11d - 0xe9, 0xe7, 0xfa, 0xff, 0xff, //0x000035dd jmp LBB1_693 - //0x000035e2 LBB1_797 - 0x48, 0xff, 0xc2, //0x000035e2 incq %rdx - 0x48, 0xff, 0xcf, //0x000035e5 decq %rdi - 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000035e8 je LBB1_717 - //0x000035ee LBB1_798 - 0x0f, 0xb6, 0x42, 0xff, //0x000035ee movzbl $-1(%rdx), %eax - 0x3c, 0x0a, //0x000035f2 cmpb $10, %al - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x000035f4 je LBB1_797 - 0x3c, 0x0d, //0x000035fa cmpb $13, %al - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x000035fc je LBB1_797 - 0x3c, 0x3d, //0x00003602 cmpb $61, %al - 0xe9, 0x62, 0xfc, 0xff, 0xff, //0x00003604 jmp LBB1_729 - //0x00003609 LBB1_717 - 0x4c, 0x8b, 0x7d, 0xd0, //0x00003609 movq $-48(%rbp), %r15 - //0x0000360d LBB1_720 - 0xb0, 0x04, //0x0000360d movb $4, %al - 0x44, 0x28, 0xd8, //0x0000360f subb %r11b, %al - 0x0f, 0xb6, 0xc0, //0x00003612 movzbl %al, %eax - 0x01, 0xc0, //0x00003615 addl %eax, %eax - 0x8d, 0x0c, 0x40, //0x00003617 leal (%rax,%rax,2), %ecx - 0x8b, 0x45, 0xc8, //0x0000361a movl $-56(%rbp), %eax - 0xd3, 0xe0, //0x0000361d shll %cl, %eax - 0x41, 0x83, 0xfb, 0x02, //0x0000361f cmpl $2, %r11d - 0x48, 0x8b, 0x55, 0xb0, //0x00003623 movq $-80(%rbp), %rdx - 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003627 je LBB1_725 - 0x41, 0x83, 0xfb, 0x03, //0x0000362d cmpl $3, %r11d - 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00003631 je LBB1_724 - 0x41, 0x83, 0xfb, 0x04, //0x00003637 cmpl $4, %r11d - 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x0000363b jne LBB1_726 - 0x88, 0x42, 0x02, //0x00003641 movb %al, $2(%rdx) - //0x00003644 LBB1_724 - 0x88, 0x62, 0x01, //0x00003644 movb %ah, $1(%rdx) - //0x00003647 LBB1_725 - 0xc1, 0xe8, 0x10, //0x00003647 shrl $16, %eax - 0x88, 0x02, //0x0000364a movb %al, (%rdx) - //0x0000364c LBB1_726 - 0x44, 0x89, 0xd8, //0x0000364c movl %r11d, %eax - 0x48, 0x8d, 0x54, 0x02, 0xff, //0x0000364f leaq $-1(%rdx,%rax), %rdx - 0x48, 0x89, 0x55, 0xb0, //0x00003654 movq %rdx, $-80(%rbp) - 0x49, 0x39, 0xd6, //0x00003658 cmpq %rdx, %r14 - 0x0f, 0x83, 0x0e, 0xf3, 0xff, 0xff, //0x0000365b jae LBB1_727 - 0xe9, 0xc4, 0x02, 0x00, 0x00, //0x00003661 jmp LBB1_852 - //0x00003666 LBB1_802 - 0x48, 0x89, 0xc1, //0x00003666 movq %rax, %rcx - 0x48, 0x8b, 0x55, 0xd0, //0x00003669 movq $-48(%rbp), %rdx - 0x49, 0x89, 0xcf, //0x0000366d movq %rcx, %r15 - 0x48, 0x39, 0xd1, //0x00003670 cmpq %rdx, %rcx - 0x0f, 0x83, 0x6c, 0xf9, 0xff, 0xff, //0x00003673 jae LBB1_719 - //0x00003679 LBB1_803 - 0x49, 0x8d, 0x47, 0x01, //0x00003679 leaq $1(%r15), %rax - 0x41, 0x0f, 0xb6, 0x0f, //0x0000367d movzbl (%r15), %ecx - 0x80, 0xf9, 0x5c, //0x00003681 cmpb $92, %cl - 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x00003684 jne LBB1_816 - 0x49, 0x8d, 0x4f, 0x02, //0x0000368a leaq $2(%r15), %rcx - 0x48, 0x39, 0xd1, //0x0000368e cmpq %rdx, %rcx - 0x0f, 0x87, 0x7b, 0x02, 0x00, 0x00, //0x00003691 ja LBB1_827 - 0x0f, 0xb6, 0x00, //0x00003697 movzbl (%rax), %eax - 0x3c, 0x6e, //0x0000369a cmpb $110, %al - 0x0f, 0x84, 0xe2, 0x00, 0x00, 0x00, //0x0000369c je LBB1_818 - 0x3c, 0x72, //0x000036a2 cmpb $114, %al - 0x0f, 0x84, 0xda, 0x00, 0x00, 0x00, //0x000036a4 je LBB1_818 - 0x3c, 0x75, //0x000036aa cmpb $117, %al - 0x0f, 0x85, 0x55, 0x02, 0x00, 0x00, //0x000036ac jne LBB1_847 - 0x48, 0x8b, 0x45, 0xd0, //0x000036b2 movq $-48(%rbp), %rax - 0x48, 0x29, 0xc8, //0x000036b6 subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x000036b9 cmpq $4, %rax - 0x0f, 0x8c, 0x44, 0x02, 0x00, 0x00, //0x000036bd jl LBB1_847 - 0x8b, 0x01, //0x000036c3 movl (%rcx), %eax - 0x89, 0xc2, //0x000036c5 movl %eax, %edx - 0xf7, 0xd2, //0x000036c7 notl %edx - 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x000036c9 leal $-808464432(%rax), %esi - 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000036cf andl $-2139062144, %edx - 0x85, 0xf2, //0x000036d5 testl %esi, %edx - 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x000036d7 jne LBB1_847 - 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x000036dd leal $421075225(%rax), %esi - 0x09, 0xc6, //0x000036e3 orl %eax, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000036e5 testl $-2139062144, %esi - 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x000036eb jne LBB1_847 - 0x89, 0xc6, //0x000036f1 movl %eax, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000036f3 andl $2139062143, %esi - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x000036f9 movl $-1061109568, %edi - 0x29, 0xf7, //0x000036fe subl %esi, %edi - 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00003700 leal $1179010630(%rsi), %ebx - 0x21, 0xd7, //0x00003706 andl %edx, %edi - 0x85, 0xdf, //0x00003708 testl %ebx, %edi - 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000370a jne LBB1_847 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003710 movl $-522133280, %edi - 0x29, 0xf7, //0x00003715 subl %esi, %edi - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00003717 addl $960051513, %esi - 0x21, 0xfa, //0x0000371d andl %edi, %edx - 0x85, 0xf2, //0x0000371f testl %esi, %edx - 0x0f, 0x85, 0xe0, 0x01, 0x00, 0x00, //0x00003721 jne LBB1_847 - 0x0f, 0xc8, //0x00003727 bswapl %eax - 0x89, 0xc1, //0x00003729 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x0000372b shrl $4, %ecx - 0xf7, 0xd1, //0x0000372e notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00003730 andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x00003736 leal (%rcx,%rcx,8), %ecx - 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003739 andl $252645135, %eax - 0x01, 0xc8, //0x0000373e addl %ecx, %eax - 0x89, 0xc1, //0x00003740 movl %eax, %ecx - 0xc1, 0xe9, 0x04, //0x00003742 shrl $4, %ecx - 0x09, 0xc1, //0x00003745 orl %eax, %ecx - 0x89, 0xc8, //0x00003747 movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00003749 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000374c andl $65280, %eax - 0x89, 0xca, //0x00003751 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00003753 andl $128, %edx - 0x09, 0xc2, //0x00003759 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000375b je LBB1_815 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00003761 movl $255, %ecx - //0x00003766 LBB1_815 - 0x49, 0x83, 0xc7, 0x06, //0x00003766 addq $6, %r15 - 0x4c, 0x89, 0xf8, //0x0000376a movq %r15, %rax - //0x0000376d LBB1_816 - 0x80, 0xf9, 0x0a, //0x0000376d cmpb $10, %cl - 0x0f, 0x84, 0xf0, 0xfe, 0xff, 0xff, //0x00003770 je LBB1_802 - 0x80, 0xf9, 0x0d, //0x00003776 cmpb $13, %cl - 0x0f, 0x84, 0xe7, 0xfe, 0xff, 0xff, //0x00003779 je LBB1_802 - 0xe9, 0x23, 0x00, 0x00, 0x00, //0x0000377f jmp LBB1_823 - //0x00003784 LBB1_818 - 0x48, 0x89, 0xc8, //0x00003784 movq %rcx, %rax - 0x48, 0x8b, 0x55, 0xd0, //0x00003787 movq $-48(%rbp), %rdx - 0x49, 0x89, 0xcf, //0x0000378b movq %rcx, %r15 - 0x48, 0x39, 0xd1, //0x0000378e cmpq %rdx, %rcx - 0x0f, 0x82, 0xe2, 0xfe, 0xff, 0xff, //0x00003791 jb LBB1_803 - 0xe9, 0x49, 0xf8, 0xff, 0xff, //0x00003797 jmp LBB1_719 - //0x0000379c LBB1_821 - 0x48, 0x89, 0xca, //0x0000379c movq %rcx, %rdx - 0x49, 0x89, 0xcf, //0x0000379f movq %rcx, %r15 - 0xe9, 0x4a, 0xf9, 0xff, 0xff, //0x000037a2 jmp LBB1_696 - //0x000037a7 LBB1_823 - 0x80, 0xf9, 0x3d, //0x000037a7 cmpb $61, %cl - 0x0f, 0x85, 0x62, 0x01, 0x00, 0x00, //0x000037aa jne LBB1_827 - 0x49, 0x89, 0xc7, //0x000037b0 movq %rax, %r15 - 0x41, 0x83, 0xfa, 0x04, //0x000037b3 cmpl $4, %r10d - 0x0f, 0x84, 0x34, 0xf9, 0xff, 0xff, //0x000037b7 je LBB1_696 - 0x48, 0x39, 0x45, 0xd0, //0x000037bd cmpq %rax, $-48(%rbp) - 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000037c1 ja LBB1_830 - 0xe9, 0x19, 0xf8, 0xff, 0xff, //0x000037c7 jmp LBB1_719 - //0x000037cc LBB1_846 - 0x4c, 0x89, 0xf9, //0x000037cc movq %r15, %rcx - 0x48, 0x89, 0xc8, //0x000037cf movq %rcx, %rax - 0x48, 0x3b, 0x4d, 0xd0, //0x000037d2 cmpq $-48(%rbp), %rcx - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000037d6 jb LBB1_830 - 0xe9, 0x2c, 0xfe, 0xff, 0xff, //0x000037dc jmp LBB1_720 - //0x000037e1 LBB1_828 - 0x49, 0x89, 0xcf, //0x000037e1 movq %rcx, %r15 - 0x48, 0x89, 0xc8, //0x000037e4 movq %rcx, %rax - 0x48, 0x3b, 0x4d, 0xd0, //0x000037e7 cmpq $-48(%rbp), %rcx - 0x0f, 0x83, 0x1c, 0xfe, 0xff, 0xff, //0x000037eb jae LBB1_720 - //0x000037f1 LBB1_830 - 0x4c, 0x8d, 0x78, 0x01, //0x000037f1 leaq $1(%rax), %r15 - 0x0f, 0xb6, 0x08, //0x000037f5 movzbl (%rax), %ecx - 0x80, 0xf9, 0x5c, //0x000037f8 cmpb $92, %cl - 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x000037fb jne LBB1_843 - 0x48, 0x8d, 0x48, 0x02, //0x00003801 leaq $2(%rax), %rcx - 0x48, 0x3b, 0x4d, 0xd0, //0x00003805 cmpq $-48(%rbp), %rcx - 0x0f, 0x87, 0x00, 0x01, 0x00, 0x00, //0x00003809 ja LBB1_848 - 0x41, 0x0f, 0xb6, 0x17, //0x0000380f movzbl (%r15), %edx - 0x80, 0xfa, 0x6e, //0x00003813 cmpb $110, %dl - 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00003816 je LBB1_828 - 0x80, 0xfa, 0x72, //0x0000381c cmpb $114, %dl - 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000381f je LBB1_828 - 0x80, 0xfa, 0x75, //0x00003825 cmpb $117, %dl - 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003828 jne LBB1_847 - 0x48, 0x8b, 0x55, 0xd0, //0x0000382e movq $-48(%rbp), %rdx - 0x48, 0x29, 0xca, //0x00003832 subq %rcx, %rdx - 0x48, 0x83, 0xfa, 0x04, //0x00003835 cmpq $4, %rdx - 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x00003839 jl LBB1_847 - 0x8b, 0x11, //0x0000383f movl (%rcx), %edx - 0x89, 0xd6, //0x00003841 movl %edx, %esi - 0xf7, 0xd6, //0x00003843 notl %esi - 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003845 leal $-808464432(%rdx), %edi - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000384b andl $-2139062144, %esi - 0x85, 0xfe, //0x00003851 testl %edi, %esi - 0x0f, 0x85, 0xae, 0x00, 0x00, 0x00, //0x00003853 jne LBB1_847 - 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00003859 leal $421075225(%rdx), %edi - 0x09, 0xd7, //0x0000385f orl %edx, %edi - 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00003861 testl $-2139062144, %edi - 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x00003867 jne LBB1_847 - 0x89, 0xd7, //0x0000386d movl %edx, %edi - 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000386f andl $2139062143, %edi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003875 movl $-1061109568, %ebx - 0x29, 0xfb, //0x0000387a subl %edi, %ebx - 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x0000387c leal $1179010630(%rdi), %r8d - 0x21, 0xf3, //0x00003883 andl %esi, %ebx - 0x44, 0x85, 0xc3, //0x00003885 testl %r8d, %ebx - 0x0f, 0x85, 0x79, 0x00, 0x00, 0x00, //0x00003888 jne LBB1_847 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000388e movl $-522133280, %ebx - 0x29, 0xfb, //0x00003893 subl %edi, %ebx - 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00003895 addl $960051513, %edi - 0x21, 0xde, //0x0000389b andl %ebx, %esi - 0x85, 0xfe, //0x0000389d testl %edi, %esi - 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x0000389f jne LBB1_847 - 0x0f, 0xca, //0x000038a5 bswapl %edx - 0x89, 0xd1, //0x000038a7 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000038a9 shrl $4, %ecx - 0xf7, 0xd1, //0x000038ac notl %ecx - 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000038ae andl $16843009, %ecx - 0x8d, 0x0c, 0xc9, //0x000038b4 leal (%rcx,%rcx,8), %ecx - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000038b7 andl $252645135, %edx - 0x01, 0xca, //0x000038bd addl %ecx, %edx - 0x89, 0xd1, //0x000038bf movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000038c1 shrl $4, %ecx - 0x09, 0xd1, //0x000038c4 orl %edx, %ecx - 0x89, 0xca, //0x000038c6 movl %ecx, %edx - 0xc1, 0xea, 0x08, //0x000038c8 shrl $8, %edx - 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000038cb andl $65280, %edx - 0x89, 0xce, //0x000038d1 movl %ecx, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000038d3 andl $128, %esi - 0x09, 0xd6, //0x000038d9 orl %edx, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000038db je LBB1_842 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000038e1 movl $255, %ecx - //0x000038e6 LBB1_842 - 0x48, 0x83, 0xc0, 0x06, //0x000038e6 addq $6, %rax - 0x49, 0x89, 0xc7, //0x000038ea movq %rax, %r15 - //0x000038ed LBB1_843 - 0x80, 0xf9, 0x0a, //0x000038ed cmpb $10, %cl - 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x000038f0 je LBB1_846 - 0x80, 0xf9, 0x0d, //0x000038f6 cmpb $13, %cl - 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x000038f9 je LBB1_846 - 0x80, 0xf9, 0x3d, //0x000038ff cmpb $61, %cl - 0xe9, 0xea, 0xf7, 0xff, 0xff, //0x00003902 jmp LBB1_696 - //0x00003907 LBB1_847 - 0x49, 0x89, 0xcf, //0x00003907 movq %rcx, %r15 - 0xe9, 0xe2, 0xf7, 0xff, 0xff, //0x0000390a jmp LBB1_696 - //0x0000390f LBB1_848 - 0x4c, 0x89, 0xf8, //0x0000390f movq %r15, %rax - //0x00003912 LBB1_827 - 0x49, 0x89, 0xc7, //0x00003912 movq %rax, %r15 - 0xe9, 0xd7, 0xf7, 0xff, 0xff, //0x00003915 jmp LBB1_696 - //0x0000391a LBB1_851 - 0x44, 0x8b, 0x75, 0xbc, //0x0000391a movl $-68(%rbp), %r14d - 0x45, 0x89, 0xf4, //0x0000391e movl %r14d, %r12d - 0x41, 0x83, 0xe4, 0x02, //0x00003921 andl $2, %r12d - 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00003925 jmp LBB1_853 - //0x0000392a LBB1_852 - 0x4d, 0x89, 0xf9, //0x0000392a movq %r15, %r9 - 0x44, 0x8b, 0x75, 0xbc, //0x0000392d movl $-68(%rbp), %r14d - 0x48, 0x8b, 0x5d, 0xd0, //0x00003931 movq $-48(%rbp), %rbx - //0x00003935 LBB1_853 - 0x48, 0x8b, 0x45, 0xa8, //0x00003935 movq $-88(%rbp), %rax - 0x48, 0x8b, 0x4d, 0x88, //0x00003939 movq $-120(%rbp), %rcx - 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x0000393d leaq $-2(%rcx,%rax), %rdx - 0x48, 0x89, 0x55, 0xc8, //0x00003942 movq %rdx, $-56(%rbp) - 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x00003946 leaq $-3(%rcx,%rax), %rax - 0x48, 0x89, 0x45, 0xa0, //0x0000394b movq %rax, $-96(%rbp) - 0xe9, 0x37, 0x00, 0x00, 0x00, //0x0000394f jmp LBB1_857 - //0x00003954 LBB1_854 - 0x48, 0x89, 0x45, 0xb0, //0x00003954 movq %rax, $-80(%rbp) - 0x4c, 0x8b, 0x7d, 0xa8, //0x00003958 movq $-88(%rbp), %r15 - 0xe9, 0x57, 0xcc, 0xff, 0xff, //0x0000395c jmp LBB1_2 - //0x00003961 LBB1_1102 - 0x49, 0x89, 0xc8, //0x00003961 movq %rcx, %r8 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003964 .p2align 4, 0x90 - //0x00003970 LBB1_856 - 0x49, 0x8d, 0x48, 0x01, //0x00003970 leaq $1(%r8), %rcx - 0x4c, 0x39, 0xc3, //0x00003974 cmpq %r8, %rbx - 0x49, 0x0f, 0x45, 0xc8, //0x00003977 cmovneq %r8, %rcx - 0x4c, 0x29, 0xc9, //0x0000397b subq %r9, %rcx - 0x44, 0x8b, 0x75, 0xbc, //0x0000397e movl $-68(%rbp), %r14d - 0x48, 0x85, 0xc9, //0x00003982 testq %rcx, %rcx - 0x0f, 0x85, 0x15, 0x10, 0x00, 0x00, //0x00003985 jne LBB1_1137 - //0x0000398b LBB1_857 - 0x4c, 0x39, 0xcb, //0x0000398b cmpq %r9, %rbx - 0x0f, 0x86, 0x1b, 0x10, 0x00, 0x00, //0x0000398e jbe LBB1_1138 - 0x41, 0xf6, 0xc6, 0x08, //0x00003994 testb $8, %r14b - 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00003998 jne LBB1_870 - 0x4d, 0x89, 0xc8, //0x0000399e movq %r9, %r8 - 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000039a1 jmp LBB1_861 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039a6 .p2align 4, 0x90 - //0x000039b0 LBB1_860 - 0x49, 0xff, 0xc0, //0x000039b0 incq %r8 - 0x49, 0x39, 0xd8, //0x000039b3 cmpq %rbx, %r8 - 0x0f, 0x83, 0x04, 0x02, 0x00, 0x00, //0x000039b6 jae LBB1_888 - //0x000039bc LBB1_861 - 0x41, 0x0f, 0xb6, 0x00, //0x000039bc movzbl (%r8), %eax - 0x48, 0x83, 0xf8, 0x0d, //0x000039c0 cmpq $13, %rax - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x000039c4 je LBB1_860 - 0x3c, 0x0a, //0x000039ca cmpb $10, %al - 0x0f, 0x84, 0xde, 0xff, 0xff, 0xff, //0x000039cc je LBB1_860 - 0x48, 0x8b, 0x4d, 0xc0, //0x000039d2 movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x14, 0x01, //0x000039d6 movzbl (%rcx,%rax), %edx - 0x49, 0xff, 0xc0, //0x000039da incq %r8 - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x000039dd cmpl $255, %edx - 0x0f, 0x84, 0xb7, 0x02, 0x00, 0x00, //0x000039e3 je LBB1_902 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000039e9 movl $1, %r11d - 0x49, 0x39, 0xd8, //0x000039ef cmpq %rbx, %r8 - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000039f2 jb LBB1_866 - 0xe9, 0xe3, 0x0b, 0x00, 0x00, //0x000039f8 jmp LBB1_1060 - 0x90, 0x90, 0x90, //0x000039fd .p2align 4, 0x90 - //0x00003a00 LBB1_865 - 0x49, 0xff, 0xc0, //0x00003a00 incq %r8 - 0x49, 0x39, 0xd8, //0x00003a03 cmpq %rbx, %r8 - 0x0f, 0x83, 0x70, 0x04, 0x00, 0x00, //0x00003a06 jae LBB1_933 - //0x00003a0c LBB1_866 - 0x41, 0x0f, 0xb6, 0x00, //0x00003a0c movzbl (%r8), %eax - 0x48, 0x83, 0xf8, 0x0d, //0x00003a10 cmpq $13, %rax - 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00003a14 je LBB1_865 - 0x3c, 0x0a, //0x00003a1a cmpb $10, %al - 0x0f, 0x84, 0xde, 0xff, 0xff, 0xff, //0x00003a1c je LBB1_865 - 0x48, 0x8b, 0x4d, 0xc0, //0x00003a22 movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x0c, 0x01, //0x00003a26 movzbl (%rcx,%rax), %ecx - 0x49, 0xff, 0xc0, //0x00003a2a incq %r8 - 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003a2d cmpl $255, %ecx - 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00003a33 je LBB1_960 - 0xc1, 0xe2, 0x06, //0x00003a39 shll $6, %edx - 0x09, 0xca, //0x00003a3c orl %ecx, %edx - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003a3e movl $2, %r11d - 0x49, 0x39, 0xd8, //0x00003a44 cmpq %rbx, %r8 - 0x0f, 0x82, 0xb5, 0x01, 0x00, 0x00, //0x00003a47 jb LBB1_892 - 0xe9, 0x8e, 0x0b, 0x00, 0x00, //0x00003a4d jmp LBB1_1060 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a52 .p2align 4, 0x90 - //0x00003a60 LBB1_870 - 0x4c, 0x89, 0xca, //0x00003a60 movq %r9, %rdx - 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00003a63 jmp LBB1_873 - //0x00003a68 LBB1_871 - 0x80, 0xf9, 0x6e, //0x00003a68 cmpb $110, %cl - 0x0f, 0x85, 0xdf, 0x01, 0x00, 0x00, //0x00003a6b jne LBB1_897 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a71 .p2align 4, 0x90 - //0x00003a80 LBB1_872 - 0x4c, 0x89, 0xc2, //0x00003a80 movq %r8, %rdx - 0x49, 0x39, 0xd8, //0x00003a83 cmpq %rbx, %r8 - 0x0f, 0x83, 0x34, 0x01, 0x00, 0x00, //0x00003a86 jae LBB1_888 - //0x00003a8c LBB1_873 - 0x48, 0x8d, 0x4a, 0x01, //0x00003a8c leaq $1(%rdx), %rcx - 0x0f, 0xb6, 0x02, //0x00003a90 movzbl (%rdx), %eax - 0x3c, 0x5c, //0x00003a93 cmpb $92, %al - 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00003a95 jne LBB1_886 - 0x4c, 0x8d, 0x42, 0x02, //0x00003a9b leaq $2(%rdx), %r8 - 0xb0, 0xff, //0x00003a9f movb $-1, %al - 0x49, 0x39, 0xd8, //0x00003aa1 cmpq %rbx, %r8 - 0x0f, 0x87, 0x9e, 0x01, 0x00, 0x00, //0x00003aa4 ja LBB1_896 - 0x0f, 0xb6, 0x09, //0x00003aaa movzbl (%rcx), %ecx - 0x80, 0xf9, 0x71, //0x00003aad cmpb $113, %cl - 0x0f, 0x8e, 0xb2, 0xff, 0xff, 0xff, //0x00003ab0 jle LBB1_871 - 0x80, 0xf9, 0x72, //0x00003ab6 cmpb $114, %cl - 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00003ab9 je LBB1_872 - 0x80, 0xf9, 0x75, //0x00003abf cmpb $117, %cl - 0x0f, 0x85, 0x98, 0x01, 0x00, 0x00, //0x00003ac2 jne LBB1_899 - 0x48, 0x89, 0xd9, //0x00003ac8 movq %rbx, %rcx - 0x4c, 0x29, 0xc1, //0x00003acb subq %r8, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00003ace cmpq $4, %rcx - 0x0f, 0x8c, 0x88, 0x01, 0x00, 0x00, //0x00003ad2 jl LBB1_899 - 0x41, 0x8b, 0x08, //0x00003ad8 movl (%r8), %ecx - 0x89, 0xcf, //0x00003adb movl %ecx, %edi - 0xf7, 0xd7, //0x00003add notl %edi - 0x8d, 0xb1, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003adf leal $-808464432(%rcx), %esi - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00003ae5 andl $-2139062144, %edi - 0x85, 0xf7, //0x00003aeb testl %esi, %edi - 0x0f, 0x85, 0x6d, 0x01, 0x00, 0x00, //0x00003aed jne LBB1_899 - 0x8d, 0xb1, 0x19, 0x19, 0x19, 0x19, //0x00003af3 leal $421075225(%rcx), %esi - 0x09, 0xce, //0x00003af9 orl %ecx, %esi - 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00003afb testl $-2139062144, %esi - 0x0f, 0x85, 0x59, 0x01, 0x00, 0x00, //0x00003b01 jne LBB1_899 - 0x89, 0xce, //0x00003b07 movl %ecx, %esi - 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003b09 andl $2139062143, %esi - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003b0f movl $-1061109568, %ebx - 0x29, 0xf3, //0x00003b14 subl %esi, %ebx - 0x44, 0x8d, 0x96, 0x46, 0x46, 0x46, 0x46, //0x00003b16 leal $1179010630(%rsi), %r10d - 0x21, 0xfb, //0x00003b1d andl %edi, %ebx - 0x44, 0x85, 0xd3, //0x00003b1f testl %r10d, %ebx - 0x48, 0x8b, 0x5d, 0xd0, //0x00003b22 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x00003b26 jne LBB1_899 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003b2c movl $-522133280, %ebx - 0x29, 0xf3, //0x00003b31 subl %esi, %ebx - 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00003b33 addl $960051513, %esi - 0x21, 0xdf, //0x00003b39 andl %ebx, %edi - 0x48, 0x8b, 0x5d, 0xd0, //0x00003b3b movq $-48(%rbp), %rbx - 0x85, 0xf7, //0x00003b3f testl %esi, %edi - 0x0f, 0x85, 0x19, 0x01, 0x00, 0x00, //0x00003b41 jne LBB1_899 - 0x0f, 0xc9, //0x00003b47 bswapl %ecx - 0x89, 0xc8, //0x00003b49 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00003b4b shrl $4, %eax - 0xf7, 0xd0, //0x00003b4e notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003b50 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00003b55 leal (%rax,%rax,8), %eax - 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003b58 andl $252645135, %ecx - 0x01, 0xc1, //0x00003b5e addl %eax, %ecx - 0x89, 0xc8, //0x00003b60 movl %ecx, %eax - 0xc1, 0xe8, 0x04, //0x00003b62 shrl $4, %eax - 0x09, 0xc8, //0x00003b65 orl %ecx, %eax - 0x89, 0xc1, //0x00003b67 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00003b69 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00003b6c andl $65280, %ecx - 0x89, 0xc6, //0x00003b72 movl %eax, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00003b74 andl $128, %esi - 0x09, 0xce, //0x00003b7a orl %ecx, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003b7c je LBB1_885 - 0xb8, 0xff, 0x00, 0x00, 0x00, //0x00003b82 movl $255, %eax - //0x00003b87 LBB1_885 - 0x48, 0x83, 0xc2, 0x06, //0x00003b87 addq $6, %rdx - 0x49, 0x89, 0xd0, //0x00003b8b movq %rdx, %r8 - 0x3c, 0x0d, //0x00003b8e cmpb $13, %al - 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003b90 jne LBB1_887 - 0xe9, 0xe5, 0xfe, 0xff, 0xff, //0x00003b96 jmp LBB1_872 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b9b .p2align 4, 0x90 - //0x00003ba0 LBB1_886 - 0x49, 0x89, 0xc8, //0x00003ba0 movq %rcx, %r8 - 0x3c, 0x0d, //0x00003ba3 cmpb $13, %al - 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x00003ba5 je LBB1_872 - //0x00003bab LBB1_887 - 0x3c, 0x0a, //0x00003bab cmpb $10, %al - 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00003bad je LBB1_872 - 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x00003bb3 jmp LBB1_899 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003bb8 .p2align 4, 0x90 - //0x00003bc0 LBB1_888 - 0x31, 0xd2, //0x00003bc0 xorl %edx, %edx - 0x45, 0x31, 0xdb, //0x00003bc2 xorl %r11d, %r11d - //0x00003bc5 LBB1_889 - 0x45, 0x85, 0xdb, //0x00003bc5 testl %r11d, %r11d - 0x0f, 0x85, 0x12, 0x0a, 0x00, 0x00, //0x00003bc8 jne LBB1_1060 - 0x4d, 0x89, 0xc1, //0x00003bce movq %r8, %r9 - 0x31, 0xc9, //0x00003bd1 xorl %ecx, %ecx - 0x48, 0x85, 0xc9, //0x00003bd3 testq %rcx, %rcx - 0x0f, 0x84, 0xaf, 0xfd, 0xff, 0xff, //0x00003bd6 je LBB1_857 - 0xe9, 0xbf, 0x0d, 0x00, 0x00, //0x00003bdc jmp LBB1_1137 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003be1 .p2align 4, 0x90 - //0x00003bf0 LBB1_891 - 0x49, 0xff, 0xc0, //0x00003bf0 incq %r8 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003bf3 movl $2, %r11d - 0x49, 0x39, 0xd8, //0x00003bf9 cmpq %rbx, %r8 - 0x0f, 0x83, 0xc3, 0xff, 0xff, 0xff, //0x00003bfc jae LBB1_889 - //0x00003c02 LBB1_892 - 0x41, 0x0f, 0xb6, 0x00, //0x00003c02 movzbl (%r8), %eax - 0x48, 0x83, 0xf8, 0x0d, //0x00003c06 cmpq $13, %rax - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003c0a je LBB1_891 - 0x3c, 0x0a, //0x00003c10 cmpb $10, %al - 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00003c12 je LBB1_891 - 0x48, 0x8b, 0x4d, 0xc0, //0x00003c18 movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x0c, 0x01, //0x00003c1c movzbl (%rcx,%rax), %ecx - 0x49, 0xff, 0xc0, //0x00003c20 incq %r8 - 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003c23 cmpl $255, %ecx - 0x0f, 0x84, 0xbd, 0x07, 0x00, 0x00, //0x00003c29 je LBB1_1025 - 0xc1, 0xe2, 0x06, //0x00003c2f shll $6, %edx - 0x09, 0xca, //0x00003c32 orl %ecx, %edx - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003c34 movl $3, %r11d - 0x49, 0x39, 0xd8, //0x00003c3a cmpq %rbx, %r8 - 0x0f, 0x82, 0x6f, 0x02, 0x00, 0x00, //0x00003c3d jb LBB1_936 - 0xe9, 0x98, 0x09, 0x00, 0x00, //0x00003c43 jmp LBB1_1060 - //0x00003c48 LBB1_896 - 0x49, 0x89, 0xc8, //0x00003c48 movq %rcx, %r8 - 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00003c4b jmp LBB1_899 - //0x00003c50 LBB1_897 - 0x80, 0xf9, 0x2f, //0x00003c50 cmpb $47, %cl - 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00003c53 jne LBB1_899 - 0x89, 0xc8, //0x00003c59 movl %ecx, %eax - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c5b .p2align 4, 0x90 - //0x00003c60 LBB1_899 - 0x0f, 0xb6, 0xc8, //0x00003c60 movzbl %al, %ecx - 0x48, 0x8b, 0x55, 0xc0, //0x00003c63 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x14, 0x0a, //0x00003c67 movzbl (%rdx,%rcx), %edx - 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x00003c6b cmpl $255, %edx - 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00003c71 je LBB1_902 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003c77 movl $1, %r11d - 0x49, 0x39, 0xd8, //0x00003c7d cmpq %rbx, %r8 - 0x0f, 0x83, 0x5a, 0x09, 0x00, 0x00, //0x00003c80 jae LBB1_1060 - 0x41, 0x89, 0xd7, //0x00003c86 movl %edx, %r15d - 0x4c, 0x89, 0xc2, //0x00003c89 movq %r8, %rdx - 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x00003c8c jmp LBB1_918 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c91 .p2align 4, 0x90 - //0x00003ca0 LBB1_902 - 0x45, 0x31, 0xff, //0x00003ca0 xorl %r15d, %r15d - 0x45, 0x31, 0xdb, //0x00003ca3 xorl %r11d, %r11d - //0x00003ca6 LBB1_903 - 0x45, 0x85, 0xe4, //0x00003ca6 testl %r12d, %r12d - 0x0f, 0x85, 0xc1, 0xfc, 0xff, 0xff, //0x00003ca9 jne LBB1_856 - 0x41, 0x83, 0xfb, 0x02, //0x00003caf cmpl $2, %r11d - 0x0f, 0x82, 0xb7, 0xfc, 0xff, 0xff, //0x00003cb3 jb LBB1_856 - 0x3c, 0x3d, //0x00003cb9 cmpb $61, %al - 0x0f, 0x85, 0xaf, 0xfc, 0xff, 0xff, //0x00003cbb jne LBB1_856 - 0x41, 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00003cc1 movl $5, %r14d - 0x45, 0x29, 0xde, //0x00003cc7 subl %r11d, %r14d - 0xf6, 0x45, 0xbc, 0x08, //0x00003cca testb $8, $-68(%rbp) - 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x00003cce jne LBB1_940 - 0x4c, 0x39, 0xc3, //0x00003cd4 cmpq %r8, %rbx - 0x0f, 0x86, 0x2e, 0x09, 0x00, 0x00, //0x00003cd7 jbe LBB1_1063 - 0x49, 0x8d, 0x48, 0x03, //0x00003cdd leaq $3(%r8), %rcx - 0x48, 0x8b, 0x75, 0xc8, //0x00003ce1 movq $-56(%rbp), %rsi - 0x4c, 0x29, 0xc6, //0x00003ce5 subq %r8, %rsi - 0x49, 0x8d, 0x50, 0x04, //0x00003ce8 leaq $4(%r8), %rdx - 0x48, 0x8b, 0x7d, 0xa0, //0x00003cec movq $-96(%rbp), %rdi - 0x4c, 0x29, 0xc7, //0x00003cf0 subq %r8, %rdi - 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00003cf3 jmp LBB1_910 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003cf8 .p2align 4, 0x90 - //0x00003d00 LBB1_909 - 0x49, 0xff, 0xc0, //0x00003d00 incq %r8 - 0x48, 0xff, 0xc1, //0x00003d03 incq %rcx - 0x48, 0xff, 0xce, //0x00003d06 decq %rsi - 0x48, 0xff, 0xc2, //0x00003d09 incq %rdx - 0x48, 0xff, 0xcf, //0x00003d0c decq %rdi - 0x4c, 0x39, 0xc3, //0x00003d0f cmpq %r8, %rbx - 0x0f, 0x84, 0x7e, 0x08, 0x00, 0x00, //0x00003d12 je LBB1_993 - //0x00003d18 LBB1_910 - 0x41, 0x0f, 0xb6, 0x00, //0x00003d18 movzbl (%r8), %eax - 0x3c, 0x0a, //0x00003d1c cmpb $10, %al - 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00003d1e je LBB1_909 - 0x3c, 0x0d, //0x00003d24 cmpb $13, %al - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00003d26 je LBB1_909 - 0x3c, 0x3d, //0x00003d2c cmpb $61, %al - 0x0f, 0x85, 0x1d, 0x05, 0x00, 0x00, //0x00003d2e jne LBB1_855 - 0x49, 0xff, 0xc0, //0x00003d34 incq %r8 - 0x41, 0x83, 0xfe, 0x02, //0x00003d37 cmpl $2, %r14d - 0x0f, 0x84, 0x2f, 0xfc, 0xff, 0xff, //0x00003d3b je LBB1_856 - 0x4c, 0x39, 0xc3, //0x00003d41 cmpq %r8, %rbx - 0x0f, 0x87, 0x3a, 0x03, 0x00, 0x00, //0x00003d44 ja LBB1_962 - 0xe9, 0xbc, 0x08, 0x00, 0x00, //0x00003d4a jmp LBB1_1063 - //0x00003d4f LBB1_915 - 0x80, 0xf9, 0x6e, //0x00003d4f cmpb $110, %cl - 0x0f, 0x85, 0x63, 0x03, 0x00, 0x00, //0x00003d52 jne LBB1_967 - //0x00003d58 LBB1_916 - 0x4d, 0x89, 0xd0, //0x00003d58 movq %r10, %r8 - //0x00003d5b LBB1_917 - 0x4c, 0x89, 0xc2, //0x00003d5b movq %r8, %rdx - 0x49, 0x39, 0xd8, //0x00003d5e cmpq %rbx, %r8 - 0x0f, 0x83, 0x20, 0x01, 0x00, 0x00, //0x00003d61 jae LBB1_934 - //0x00003d67 LBB1_918 - 0x4c, 0x8d, 0x42, 0x01, //0x00003d67 leaq $1(%rdx), %r8 - 0x0f, 0xb6, 0x02, //0x00003d6b movzbl (%rdx), %eax - 0x3c, 0x5c, //0x00003d6e cmpb $92, %al - 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x00003d70 jne LBB1_931 - 0x4c, 0x8d, 0x52, 0x02, //0x00003d76 leaq $2(%rdx), %r10 - 0xb0, 0xff, //0x00003d7a movb $-1, %al - 0x49, 0x39, 0xda, //0x00003d7c cmpq %rbx, %r10 - 0x0f, 0x87, 0x48, 0x03, 0x00, 0x00, //0x00003d7f ja LBB1_970 - 0x41, 0x0f, 0xb6, 0x08, //0x00003d85 movzbl (%r8), %ecx - 0x80, 0xf9, 0x71, //0x00003d89 cmpb $113, %cl - 0x0f, 0x8e, 0xbd, 0xff, 0xff, 0xff, //0x00003d8c jle LBB1_915 - 0x80, 0xf9, 0x72, //0x00003d92 cmpb $114, %cl - 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00003d95 je LBB1_916 - 0x80, 0xf9, 0x75, //0x00003d9b cmpb $117, %cl - 0x0f, 0x85, 0x22, 0x03, 0x00, 0x00, //0x00003d9e jne LBB1_969 - 0x48, 0x8b, 0x4d, 0xd0, //0x00003da4 movq $-48(%rbp), %rcx - 0x4c, 0x29, 0xd1, //0x00003da8 subq %r10, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00003dab cmpq $4, %rcx - 0x0f, 0x8c, 0x11, 0x03, 0x00, 0x00, //0x00003daf jl LBB1_969 - 0x41, 0x8b, 0x3a, //0x00003db5 movl (%r10), %edi - 0x89, 0xfb, //0x00003db8 movl %edi, %ebx - 0xf7, 0xd3, //0x00003dba notl %ebx - 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003dbc leal $-808464432(%rdi), %ecx - 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00003dc2 andl $-2139062144, %ebx - 0x85, 0xcb, //0x00003dc8 testl %ecx, %ebx - 0x0f, 0x85, 0xf6, 0x02, 0x00, 0x00, //0x00003dca jne LBB1_969 - 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x00003dd0 leal $421075225(%rdi), %ecx - 0x09, 0xf9, //0x00003dd6 orl %edi, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00003dd8 testl $-2139062144, %ecx - 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x00003dde jne LBB1_969 - 0x89, 0xf9, //0x00003de4 movl %edi, %ecx - 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003de6 andl $2139062143, %ecx - 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003dec movl $-1061109568, %esi - 0x29, 0xce, //0x00003df1 subl %ecx, %esi - 0x44, 0x8d, 0x81, 0x46, 0x46, 0x46, 0x46, //0x00003df3 leal $1179010630(%rcx), %r8d - 0x21, 0xde, //0x00003dfa andl %ebx, %esi - 0x44, 0x85, 0xc6, //0x00003dfc testl %r8d, %esi - 0x0f, 0x85, 0xc1, 0x02, 0x00, 0x00, //0x00003dff jne LBB1_969 - 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003e05 movl $-522133280, %esi - 0x29, 0xce, //0x00003e0a subl %ecx, %esi - 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x00003e0c addl $960051513, %ecx - 0x21, 0xf3, //0x00003e12 andl %esi, %ebx - 0x85, 0xcb, //0x00003e14 testl %ecx, %ebx - 0x0f, 0x85, 0xaa, 0x02, 0x00, 0x00, //0x00003e16 jne LBB1_969 - 0x0f, 0xcf, //0x00003e1c bswapl %edi - 0x89, 0xf8, //0x00003e1e movl %edi, %eax - 0xc1, 0xe8, 0x04, //0x00003e20 shrl $4, %eax - 0xf7, 0xd0, //0x00003e23 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003e25 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00003e2a leal (%rax,%rax,8), %eax - 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003e2d andl $252645135, %edi - 0x01, 0xc7, //0x00003e33 addl %eax, %edi - 0x89, 0xf8, //0x00003e35 movl %edi, %eax - 0xc1, 0xe8, 0x04, //0x00003e37 shrl $4, %eax - 0x09, 0xf8, //0x00003e3a orl %edi, %eax - 0x89, 0xc1, //0x00003e3c movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00003e3e shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00003e41 andl $65280, %ecx - 0x89, 0xc6, //0x00003e47 movl %eax, %esi - 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00003e49 andl $128, %esi - 0x09, 0xce, //0x00003e4f orl %ecx, %esi - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003e51 je LBB1_930 - 0xb8, 0xff, 0x00, 0x00, 0x00, //0x00003e57 movl $255, %eax - //0x00003e5c LBB1_930 - 0x48, 0x83, 0xc2, 0x06, //0x00003e5c addq $6, %rdx - 0x49, 0x89, 0xd0, //0x00003e60 movq %rdx, %r8 - 0x48, 0x8b, 0x5d, 0xd0, //0x00003e63 movq $-48(%rbp), %rbx - //0x00003e67 LBB1_931 - 0x3c, 0x0a, //0x00003e67 cmpb $10, %al - 0x0f, 0x84, 0xec, 0xfe, 0xff, 0xff, //0x00003e69 je LBB1_917 - 0x3c, 0x0d, //0x00003e6f cmpb $13, %al - 0x0f, 0x84, 0xe4, 0xfe, 0xff, 0xff, //0x00003e71 je LBB1_917 - 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00003e77 jmp LBB1_970 - //0x00003e7c LBB1_933 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003e7c movl $1, %r11d - 0xe9, 0x3e, 0xfd, 0xff, 0xff, //0x00003e82 jmp LBB1_889 - //0x00003e87 LBB1_934 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003e87 movl $1, %r11d - 0x44, 0x89, 0xfa, //0x00003e8d movl %r15d, %edx - 0xe9, 0x30, 0xfd, 0xff, 0xff, //0x00003e90 jmp LBB1_889 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e95 .p2align 4, 0x90 - //0x00003ea0 LBB1_935 - 0x49, 0xff, 0xc0, //0x00003ea0 incq %r8 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003ea3 movl $3, %r11d - 0x49, 0x39, 0xd8, //0x00003ea9 cmpq %rbx, %r8 - 0x0f, 0x83, 0x13, 0xfd, 0xff, 0xff, //0x00003eac jae LBB1_889 - //0x00003eb2 LBB1_936 - 0x41, 0x0f, 0xb6, 0x00, //0x00003eb2 movzbl (%r8), %eax - 0x48, 0x83, 0xf8, 0x0d, //0x00003eb6 cmpq $13, %rax - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003eba je LBB1_935 - 0x3c, 0x0a, //0x00003ec0 cmpb $10, %al - 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00003ec2 je LBB1_935 - 0x48, 0x8b, 0x4d, 0xc0, //0x00003ec8 movq $-64(%rbp), %rcx - 0x0f, 0xb6, 0x0c, 0x01, //0x00003ecc movzbl (%rcx,%rax), %ecx - 0x49, 0xff, 0xc0, //0x00003ed0 incq %r8 - 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003ed3 cmpl $255, %ecx - 0x0f, 0x85, 0xeb, 0x06, 0x00, 0x00, //0x00003ed9 jne LBB1_1059 - 0x41, 0x89, 0xd7, //0x00003edf movl %edx, %r15d - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003ee2 movl $3, %r11d - 0xe9, 0xb9, 0xfd, 0xff, 0xff, //0x00003ee8 jmp LBB1_903 - //0x00003eed LBB1_940 - 0x4c, 0x39, 0xc3, //0x00003eed cmpq %r8, %rbx - 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x00003ef0 ja LBB1_943 - 0xe9, 0x10, 0x07, 0x00, 0x00, //0x00003ef6 jmp LBB1_1063 - 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003efb .p2align 4, 0x90 - //0x00003f00 LBB1_959 - 0x4c, 0x89, 0xe9, //0x00003f00 movq %r13, %rcx - 0x49, 0x89, 0xc8, //0x00003f03 movq %rcx, %r8 - 0x48, 0x39, 0xd9, //0x00003f06 cmpq %rbx, %rcx - 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00003f09 jb LBB1_943 - 0xe9, 0x42, 0x01, 0x00, 0x00, //0x00003f0f jmp LBB1_994 - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f14 .p2align 4, 0x90 - //0x00003f20 LBB1_941 - 0x49, 0x89, 0xcd, //0x00003f20 movq %rcx, %r13 - 0x49, 0x89, 0xc8, //0x00003f23 movq %rcx, %r8 - 0x48, 0x39, 0xd9, //0x00003f26 cmpq %rbx, %rcx - 0x0f, 0x83, 0x27, 0x01, 0x00, 0x00, //0x00003f29 jae LBB1_994 - //0x00003f2f LBB1_943 - 0x4d, 0x8d, 0x68, 0x01, //0x00003f2f leaq $1(%r8), %r13 - 0x41, 0x0f, 0xb6, 0x08, //0x00003f33 movzbl (%r8), %ecx - 0x80, 0xf9, 0x5c, //0x00003f37 cmpb $92, %cl - 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00003f3a jne LBB1_956 - 0x49, 0x8d, 0x48, 0x02, //0x00003f40 leaq $2(%r8), %rcx - 0x48, 0x39, 0xd9, //0x00003f44 cmpq %rbx, %rcx - 0x0f, 0x87, 0x66, 0x07, 0x00, 0x00, //0x00003f47 ja LBB1_1026 - 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00003f4d movzbl (%r13), %eax - 0x3c, 0x6e, //0x00003f52 cmpb $110, %al - 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00003f54 je LBB1_941 - 0x3c, 0x72, //0x00003f5a cmpb $114, %al - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00003f5c je LBB1_941 - 0x3c, 0x75, //0x00003f62 cmpb $117, %al - 0x0f, 0x85, 0xf7, 0xf9, 0xff, 0xff, //0x00003f64 jne LBB1_1102 - 0x48, 0x89, 0xd8, //0x00003f6a movq %rbx, %rax - 0x48, 0x29, 0xc8, //0x00003f6d subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00003f70 cmpq $4, %rax - 0x0f, 0x8c, 0xe7, 0xf9, 0xff, 0xff, //0x00003f74 jl LBB1_1102 - 0x8b, 0x11, //0x00003f7a movl (%rcx), %edx - 0x89, 0xd6, //0x00003f7c movl %edx, %esi - 0xf7, 0xd6, //0x00003f7e notl %esi - 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003f80 leal $-808464432(%rdx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00003f86 andl $-2139062144, %esi - 0x85, 0xc6, //0x00003f8c testl %eax, %esi - 0x0f, 0x85, 0xcd, 0xf9, 0xff, 0xff, //0x00003f8e jne LBB1_1102 - 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00003f94 leal $421075225(%rdx), %eax - 0x09, 0xd0, //0x00003f9a orl %edx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00003f9c testl $-2139062144, %eax - 0x0f, 0x85, 0xba, 0xf9, 0xff, 0xff, //0x00003fa1 jne LBB1_1102 - 0x89, 0xd0, //0x00003fa7 movl %edx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003fa9 andl $2139062143, %eax - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003fae movl $-1061109568, %edi - 0x29, 0xc7, //0x00003fb3 subl %eax, %edi - 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x00003fb5 leal $1179010630(%rax), %ebx - 0x21, 0xf7, //0x00003fbb andl %esi, %edi - 0x85, 0xdf, //0x00003fbd testl %ebx, %edi - 0x0f, 0x85, 0x9a, 0x09, 0x00, 0x00, //0x00003fbf jne LBB1_1131 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003fc5 movl $-522133280, %edi - 0x29, 0xc7, //0x00003fca subl %eax, %edi - 0x05, 0x39, 0x39, 0x39, 0x39, //0x00003fcc addl $960051513, %eax - 0x21, 0xfe, //0x00003fd1 andl %edi, %esi - 0x85, 0xc6, //0x00003fd3 testl %eax, %esi - 0x48, 0x8b, 0x5d, 0xd0, //0x00003fd5 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0x82, 0xf9, 0xff, 0xff, //0x00003fd9 jne LBB1_1102 - 0x0f, 0xca, //0x00003fdf bswapl %edx - 0x89, 0xd0, //0x00003fe1 movl %edx, %eax - 0xc1, 0xe8, 0x04, //0x00003fe3 shrl $4, %eax - 0xf7, 0xd0, //0x00003fe6 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003fe8 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00003fed leal (%rax,%rax,8), %eax - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003ff0 andl $252645135, %edx - 0x01, 0xc2, //0x00003ff6 addl %eax, %edx - 0x89, 0xd1, //0x00003ff8 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x00003ffa shrl $4, %ecx - 0x09, 0xd1, //0x00003ffd orl %edx, %ecx - 0x89, 0xc8, //0x00003fff movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00004001 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00004004 andl $65280, %eax - 0x89, 0xca, //0x00004009 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000400b andl $128, %edx - 0x09, 0xc2, //0x00004011 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004013 je LBB1_955 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004019 movl $255, %ecx - //0x0000401e LBB1_955 - 0x49, 0x83, 0xc0, 0x06, //0x0000401e addq $6, %r8 - 0x4d, 0x89, 0xc5, //0x00004022 movq %r8, %r13 - //0x00004025 LBB1_956 - 0x80, 0xf9, 0x0a, //0x00004025 cmpb $10, %cl - 0x0f, 0x84, 0xd2, 0xfe, 0xff, 0xff, //0x00004028 je LBB1_959 - 0x80, 0xf9, 0x0d, //0x0000402e cmpb $13, %cl - 0x0f, 0x84, 0xc9, 0xfe, 0xff, 0xff, //0x00004031 je LBB1_959 - 0x80, 0xf9, 0x3d, //0x00004037 cmpb $61, %cl - 0x0f, 0x85, 0x73, 0x06, 0x00, 0x00, //0x0000403a jne LBB1_1026 - 0x4d, 0x89, 0xe8, //0x00004040 movq %r13, %r8 - 0x41, 0x83, 0xfe, 0x02, //0x00004043 cmpl $2, %r14d - 0x0f, 0x84, 0x23, 0xf9, 0xff, 0xff, //0x00004047 je LBB1_856 - 0x4c, 0x39, 0xeb, //0x0000404d cmpq %r13, %rbx - 0x0f, 0x87, 0xc7, 0x03, 0x00, 0x00, //0x00004050 ja LBB1_1029 - //0x00004056 LBB1_994 - 0x4d, 0x89, 0xe8, //0x00004056 movq %r13, %r8 - 0xe9, 0xad, 0x05, 0x00, 0x00, //0x00004059 jmp LBB1_1063 - //0x0000405e LBB1_960 - 0x41, 0x89, 0xd7, //0x0000405e movl %edx, %r15d - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004061 movl $1, %r11d - 0xe9, 0x3a, 0xfc, 0xff, 0xff, //0x00004067 jmp LBB1_903 - //0x0000406c LBB1_961 - 0x49, 0xff, 0xc0, //0x0000406c incq %r8 - 0x48, 0xff, 0xc1, //0x0000406f incq %rcx - 0x48, 0xff, 0xce, //0x00004072 decq %rsi - 0x48, 0xff, 0xc2, //0x00004075 incq %rdx - 0x48, 0xff, 0xcf, //0x00004078 decq %rdi - 0x4c, 0x39, 0xc3, //0x0000407b cmpq %r8, %rbx - 0x0f, 0x84, 0x12, 0x05, 0x00, 0x00, //0x0000407e je LBB1_993 - //0x00004084 LBB1_962 - 0x41, 0x0f, 0xb6, 0x00, //0x00004084 movzbl (%r8), %eax - 0x3c, 0x0a, //0x00004088 cmpb $10, %al - 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000408a je LBB1_961 - 0x3c, 0x0d, //0x00004090 cmpb $13, %al - 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00004092 je LBB1_961 - 0x3c, 0x3d, //0x00004098 cmpb $61, %al - 0x0f, 0x85, 0xb1, 0x01, 0x00, 0x00, //0x0000409a jne LBB1_855 - 0x49, 0xff, 0xc0, //0x000040a0 incq %r8 - 0x41, 0x83, 0xfe, 0x03, //0x000040a3 cmpl $3, %r14d - 0x0f, 0x84, 0xc3, 0xf8, 0xff, 0xff, //0x000040a7 je LBB1_856 - 0x4c, 0x39, 0xc3, //0x000040ad cmpq %r8, %rbx - 0x0f, 0x87, 0xa2, 0x04, 0x00, 0x00, //0x000040b0 ja LBB1_1048 - 0xe9, 0x50, 0x05, 0x00, 0x00, //0x000040b6 jmp LBB1_1063 - //0x000040bb LBB1_967 - 0x80, 0xf9, 0x2f, //0x000040bb cmpb $47, %cl - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000040be jne LBB1_969 - 0x89, 0xc8, //0x000040c4 movl %ecx, %eax - //0x000040c6 LBB1_969 - 0x4d, 0x89, 0xd0, //0x000040c6 movq %r10, %r8 - 0x48, 0x8b, 0x5d, 0xd0, //0x000040c9 movq $-48(%rbp), %rbx - //0x000040cd LBB1_970 - 0x0f, 0xb6, 0xc8, //0x000040cd movzbl %al, %ecx - 0x48, 0x8b, 0x55, 0xc0, //0x000040d0 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x0c, 0x0a, //0x000040d4 movzbl (%rdx,%rcx), %ecx - 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x000040d8 cmpl $255, %ecx - 0x0f, 0x84, 0x5a, 0x01, 0x00, 0x00, //0x000040de je LBB1_991 - 0x44, 0x89, 0xfa, //0x000040e4 movl %r15d, %edx - 0xc1, 0xe2, 0x06, //0x000040e7 shll $6, %edx - 0x09, 0xca, //0x000040ea orl %ecx, %edx - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000040ec movl $2, %r11d - 0x49, 0x39, 0xd8, //0x000040f2 cmpq %rbx, %r8 - 0x0f, 0x83, 0xe5, 0x04, 0x00, 0x00, //0x000040f5 jae LBB1_1060 - 0x41, 0x89, 0xd7, //0x000040fb movl %edx, %r15d - 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000040fe jmp LBB1_976 - //0x00004103 LBB1_973 - 0x80, 0xf9, 0x6e, //0x00004103 cmpb $110, %cl - 0x0f, 0x85, 0x50, 0x01, 0x00, 0x00, //0x00004106 jne LBB1_995 - //0x0000410c LBB1_974 - 0x48, 0x89, 0xd7, //0x0000410c movq %rdx, %rdi - 0x44, 0x89, 0xfa, //0x0000410f movl %r15d, %edx - //0x00004112 LBB1_975 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00004112 movl $2, %r11d - 0x49, 0x89, 0xf8, //0x00004118 movq %rdi, %r8 - 0x48, 0x39, 0xdf, //0x0000411b cmpq %rbx, %rdi - 0x0f, 0x83, 0x25, 0x01, 0x00, 0x00, //0x0000411e jae LBB1_992 - //0x00004124 LBB1_976 - 0x49, 0x8d, 0x78, 0x01, //0x00004124 leaq $1(%r8), %rdi - 0x41, 0x0f, 0xb6, 0x00, //0x00004128 movzbl (%r8), %eax - 0x3c, 0x5c, //0x0000412c cmpb $92, %al - 0x0f, 0x85, 0xf5, 0x00, 0x00, 0x00, //0x0000412e jne LBB1_989 - 0x49, 0x8d, 0x50, 0x02, //0x00004134 leaq $2(%r8), %rdx - 0xb0, 0xff, //0x00004138 movb $-1, %al - 0x48, 0x39, 0xda, //0x0000413a cmpq %rbx, %rdx - 0x0f, 0x87, 0x27, 0x01, 0x00, 0x00, //0x0000413d ja LBB1_998 - 0x0f, 0xb6, 0x0f, //0x00004143 movzbl (%rdi), %ecx - 0x80, 0xf9, 0x71, //0x00004146 cmpb $113, %cl - 0x0f, 0x8e, 0xb4, 0xff, 0xff, 0xff, //0x00004149 jle LBB1_973 - 0x80, 0xf9, 0x72, //0x0000414f cmpb $114, %cl - 0x0f, 0x84, 0xb4, 0xff, 0xff, 0xff, //0x00004152 je LBB1_974 - 0x80, 0xf9, 0x75, //0x00004158 cmpb $117, %cl - 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x0000415b jne LBB1_997 - 0x48, 0x89, 0xd9, //0x00004161 movq %rbx, %rcx - 0x48, 0x29, 0xd1, //0x00004164 subq %rdx, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00004167 cmpq $4, %rcx - 0x0f, 0x8c, 0xf6, 0x00, 0x00, 0x00, //0x0000416b jl LBB1_997 - 0x8b, 0x32, //0x00004171 movl (%rdx), %esi - 0x89, 0xf7, //0x00004173 movl %esi, %edi - 0xf7, 0xd7, //0x00004175 notl %edi - 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00004177 leal $-808464432(%rsi), %ecx - 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000417d andl $-2139062144, %edi - 0x85, 0xcf, //0x00004183 testl %ecx, %edi - 0x0f, 0x85, 0xdc, 0x00, 0x00, 0x00, //0x00004185 jne LBB1_997 - 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000418b leal $421075225(%rsi), %ecx - 0x09, 0xf1, //0x00004191 orl %esi, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00004193 testl $-2139062144, %ecx - 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00004199 jne LBB1_997 - 0x89, 0xf1, //0x0000419f movl %esi, %ecx - 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x000041a1 andl $2139062143, %ecx - 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000041a7 movl $-1061109568, %ebx - 0x29, 0xcb, //0x000041ac subl %ecx, %ebx - 0x44, 0x8d, 0x91, 0x46, 0x46, 0x46, 0x46, //0x000041ae leal $1179010630(%rcx), %r10d - 0x21, 0xfb, //0x000041b5 andl %edi, %ebx - 0x44, 0x85, 0xd3, //0x000041b7 testl %r10d, %ebx - 0x48, 0x8b, 0x5d, 0xd0, //0x000041ba movq $-48(%rbp), %rbx - 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x000041be jne LBB1_997 - 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000041c4 movl $-522133280, %ebx - 0x29, 0xcb, //0x000041c9 subl %ecx, %ebx - 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x000041cb addl $960051513, %ecx - 0x21, 0xdf, //0x000041d1 andl %ebx, %edi - 0x48, 0x8b, 0x5d, 0xd0, //0x000041d3 movq $-48(%rbp), %rbx - 0x85, 0xcf, //0x000041d7 testl %ecx, %edi - 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x000041d9 jne LBB1_997 - 0x0f, 0xce, //0x000041df bswapl %esi - 0x89, 0xf0, //0x000041e1 movl %esi, %eax - 0xc1, 0xe8, 0x04, //0x000041e3 shrl $4, %eax - 0xf7, 0xd0, //0x000041e6 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x000041e8 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x000041ed leal (%rax,%rax,8), %eax - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x000041f0 andl $252645135, %esi - 0x01, 0xc6, //0x000041f6 addl %eax, %esi - 0x89, 0xf0, //0x000041f8 movl %esi, %eax - 0xc1, 0xe8, 0x04, //0x000041fa shrl $4, %eax - 0x09, 0xf0, //0x000041fd orl %esi, %eax - 0x89, 0xc1, //0x000041ff movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00004201 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00004204 andl $65280, %ecx - 0x89, 0xc2, //0x0000420a movl %eax, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000420c andl $128, %edx - 0x09, 0xca, //0x00004212 orl %ecx, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004214 je LBB1_988 - 0xb8, 0xff, 0x00, 0x00, 0x00, //0x0000421a movl $255, %eax - //0x0000421f LBB1_988 - 0x49, 0x83, 0xc0, 0x06, //0x0000421f addq $6, %r8 - 0x4c, 0x89, 0xc7, //0x00004223 movq %r8, %rdi - 0x44, 0x89, 0xfa, //0x00004226 movl %r15d, %edx - //0x00004229 LBB1_989 - 0x3c, 0x0a, //0x00004229 cmpb $10, %al - 0x0f, 0x84, 0xe1, 0xfe, 0xff, 0xff, //0x0000422b je LBB1_975 - 0x3c, 0x0d, //0x00004231 cmpb $13, %al - 0x0f, 0x84, 0xd9, 0xfe, 0xff, 0xff, //0x00004233 je LBB1_975 - 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00004239 jmp LBB1_998 - //0x0000423e LBB1_991 - 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000423e movl $1, %r11d - 0xe9, 0x5d, 0xfa, 0xff, 0xff, //0x00004244 jmp LBB1_903 - //0x00004249 LBB1_992 - 0x49, 0x89, 0xf8, //0x00004249 movq %rdi, %r8 - 0xe9, 0x74, 0xf9, 0xff, 0xff, //0x0000424c jmp LBB1_889 - //0x00004251 LBB1_855 - 0x49, 0xff, 0xc0, //0x00004251 incq %r8 - 0x4c, 0x89, 0xc2, //0x00004254 movq %r8, %rdx - 0xe9, 0x14, 0xf7, 0xff, 0xff, //0x00004257 jmp LBB1_856 - //0x0000425c LBB1_995 - 0x80, 0xf9, 0x2f, //0x0000425c cmpb $47, %cl - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x0000425f jne LBB1_997 - 0x89, 0xc8, //0x00004265 movl %ecx, %eax - //0x00004267 LBB1_997 - 0x48, 0x89, 0xd7, //0x00004267 movq %rdx, %rdi - //0x0000426a LBB1_998 - 0x0f, 0xb6, 0xc8, //0x0000426a movzbl %al, %ecx - 0x48, 0x8b, 0x55, 0xc0, //0x0000426d movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x0c, 0x0a, //0x00004271 movzbl (%rdx,%rcx), %ecx - 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00004275 cmpl $255, %ecx - 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x0000427b je LBB1_1019 - 0x44, 0x89, 0xfa, //0x00004281 movl %r15d, %edx - 0xc1, 0xe2, 0x06, //0x00004284 shll $6, %edx - 0x09, 0xca, //0x00004287 orl %ecx, %edx - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00004289 movl $3, %r11d - 0x48, 0x39, 0xdf, //0x0000428f cmpq %rbx, %rdi - 0x0f, 0x83, 0x4c, 0x01, 0x00, 0x00, //0x00004292 jae LBB1_1020 - 0x41, 0x89, 0xd7, //0x00004298 movl %edx, %r15d - 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000429b jmp LBB1_1004 - //0x000042a0 LBB1_1001 - 0x80, 0xf9, 0x6e, //0x000042a0 cmpb $110, %cl - 0x0f, 0x85, 0xf5, 0x02, 0x00, 0x00, //0x000042a3 jne LBB1_1054 - //0x000042a9 LBB1_1002 - 0x4d, 0x89, 0xd0, //0x000042a9 movq %r10, %r8 - //0x000042ac LBB1_1003 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000042ac movl $3, %r11d - 0x4c, 0x89, 0xc7, //0x000042b2 movq %r8, %rdi - 0x49, 0x39, 0xd8, //0x000042b5 cmpq %rbx, %r8 - 0x0f, 0x83, 0x07, 0xf9, 0xff, 0xff, //0x000042b8 jae LBB1_889 - //0x000042be LBB1_1004 - 0x4c, 0x8d, 0x47, 0x01, //0x000042be leaq $1(%rdi), %r8 - 0x0f, 0xb6, 0x07, //0x000042c2 movzbl (%rdi), %eax - 0x3c, 0x5c, //0x000042c5 cmpb $92, %al - 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x000042c7 jne LBB1_1017 - 0x4c, 0x8d, 0x57, 0x02, //0x000042cd leaq $2(%rdi), %r10 - 0xb0, 0xff, //0x000042d1 movb $-1, %al - 0x49, 0x39, 0xda, //0x000042d3 cmpq %rbx, %r10 - 0x0f, 0x87, 0xd4, 0x02, 0x00, 0x00, //0x000042d6 ja LBB1_1057 - 0x41, 0x0f, 0xb6, 0x08, //0x000042dc movzbl (%r8), %ecx - 0x80, 0xf9, 0x71, //0x000042e0 cmpb $113, %cl - 0x0f, 0x8e, 0xb7, 0xff, 0xff, 0xff, //0x000042e3 jle LBB1_1001 - 0x80, 0xf9, 0x72, //0x000042e9 cmpb $114, %cl - 0x0f, 0x84, 0xb7, 0xff, 0xff, 0xff, //0x000042ec je LBB1_1002 - 0x80, 0xf9, 0x75, //0x000042f2 cmpb $117, %cl - 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x000042f5 jne LBB1_1056 - 0x48, 0x8b, 0x4d, 0xd0, //0x000042fb movq $-48(%rbp), %rcx - 0x4c, 0x29, 0xd1, //0x000042ff subq %r10, %rcx - 0x48, 0x83, 0xf9, 0x04, //0x00004302 cmpq $4, %rcx - 0x0f, 0x8c, 0x9d, 0x02, 0x00, 0x00, //0x00004306 jl LBB1_1056 - 0x41, 0x8b, 0x32, //0x0000430c movl (%r10), %esi - 0x89, 0xf3, //0x0000430f movl %esi, %ebx - 0xf7, 0xd3, //0x00004311 notl %ebx - 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00004313 leal $-808464432(%rsi), %ecx - 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00004319 andl $-2139062144, %ebx - 0x85, 0xcb, //0x0000431f testl %ecx, %ebx - 0x0f, 0x85, 0x82, 0x02, 0x00, 0x00, //0x00004321 jne LBB1_1056 - 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x00004327 leal $421075225(%rsi), %ecx - 0x09, 0xf1, //0x0000432d orl %esi, %ecx - 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000432f testl $-2139062144, %ecx - 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00004335 jne LBB1_1056 - 0x89, 0xf1, //0x0000433b movl %esi, %ecx - 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000433d andl $2139062143, %ecx - 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00004343 movl $-1061109568, %edx - 0x29, 0xca, //0x00004348 subl %ecx, %edx - 0x44, 0x8d, 0x81, 0x46, 0x46, 0x46, 0x46, //0x0000434a leal $1179010630(%rcx), %r8d - 0x21, 0xda, //0x00004351 andl %ebx, %edx - 0x44, 0x85, 0xc2, //0x00004353 testl %r8d, %edx - 0x0f, 0x85, 0x4d, 0x02, 0x00, 0x00, //0x00004356 jne LBB1_1056 - 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000435c movl $-522133280, %edx - 0x29, 0xca, //0x00004361 subl %ecx, %edx - 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x00004363 addl $960051513, %ecx - 0x21, 0xd3, //0x00004369 andl %edx, %ebx - 0x85, 0xcb, //0x0000436b testl %ecx, %ebx - 0x0f, 0x85, 0x36, 0x02, 0x00, 0x00, //0x0000436d jne LBB1_1056 - 0x0f, 0xce, //0x00004373 bswapl %esi - 0x89, 0xf0, //0x00004375 movl %esi, %eax - 0xc1, 0xe8, 0x04, //0x00004377 shrl $4, %eax - 0xf7, 0xd0, //0x0000437a notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000437c andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00004381 leal (%rax,%rax,8), %eax - 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004384 andl $252645135, %esi - 0x01, 0xc6, //0x0000438a addl %eax, %esi - 0x89, 0xf0, //0x0000438c movl %esi, %eax - 0xc1, 0xe8, 0x04, //0x0000438e shrl $4, %eax - 0x09, 0xf0, //0x00004391 orl %esi, %eax - 0x89, 0xc1, //0x00004393 movl %eax, %ecx - 0xc1, 0xe9, 0x08, //0x00004395 shrl $8, %ecx - 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00004398 andl $65280, %ecx - 0x89, 0xc2, //0x0000439e movl %eax, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000043a0 andl $128, %edx - 0x09, 0xca, //0x000043a6 orl %ecx, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000043a8 je LBB1_1016 - 0xb8, 0xff, 0x00, 0x00, 0x00, //0x000043ae movl $255, %eax - //0x000043b3 LBB1_1016 - 0x48, 0x83, 0xc7, 0x06, //0x000043b3 addq $6, %rdi - 0x49, 0x89, 0xf8, //0x000043b7 movq %rdi, %r8 - 0x48, 0x8b, 0x5d, 0xd0, //0x000043ba movq $-48(%rbp), %rbx - 0x44, 0x89, 0xfa, //0x000043be movl %r15d, %edx - //0x000043c1 LBB1_1017 - 0x3c, 0x0a, //0x000043c1 cmpb $10, %al - 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x000043c3 je LBB1_1003 - 0x3c, 0x0d, //0x000043c9 cmpb $13, %al - 0x0f, 0x84, 0xdb, 0xfe, 0xff, 0xff, //0x000043cb je LBB1_1003 - 0xe9, 0xda, 0x01, 0x00, 0x00, //0x000043d1 jmp LBB1_1057 - //0x000043d6 LBB1_1019 - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000043d6 movl $2, %r11d - 0x49, 0x89, 0xf8, //0x000043dc movq %rdi, %r8 - 0xe9, 0xc2, 0xf8, 0xff, 0xff, //0x000043df jmp LBB1_903 - //0x000043e4 LBB1_1020 - 0x49, 0x89, 0xf8, //0x000043e4 movq %rdi, %r8 - 0xe9, 0xf4, 0x01, 0x00, 0x00, //0x000043e7 jmp LBB1_1060 - //0x000043ec LBB1_1025 - 0x41, 0x89, 0xd7, //0x000043ec movl %edx, %r15d - 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000043ef movl $2, %r11d - 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x000043f5 jmp LBB1_903 - //0x000043fa LBB1_1045 - 0x4c, 0x89, 0xc1, //0x000043fa movq %r8, %rcx - 0x49, 0x89, 0xcd, //0x000043fd movq %rcx, %r13 - 0x48, 0x39, 0xd9, //0x00004400 cmpq %rbx, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00004403 jb LBB1_1029 - 0xe9, 0xfd, 0x01, 0x00, 0x00, //0x00004409 jmp LBB1_1063 - //0x0000440e LBB1_1027 - 0x49, 0x89, 0xc8, //0x0000440e movq %rcx, %r8 - 0x49, 0x89, 0xcd, //0x00004411 movq %rcx, %r13 - 0x48, 0x39, 0xd9, //0x00004414 cmpq %rbx, %rcx - 0x0f, 0x83, 0xee, 0x01, 0x00, 0x00, //0x00004417 jae LBB1_1063 - //0x0000441d LBB1_1029 - 0x4d, 0x8d, 0x45, 0x01, //0x0000441d leaq $1(%r13), %r8 - 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00004421 movzbl (%r13), %ecx - 0x80, 0xf9, 0x5c, //0x00004426 cmpb $92, %cl - 0x0f, 0x85, 0xe4, 0x00, 0x00, 0x00, //0x00004429 jne LBB1_1042 - 0x49, 0x8d, 0x4d, 0x02, //0x0000442f leaq $2(%r13), %rcx - 0x48, 0x39, 0xd9, //0x00004433 cmpq %rbx, %rcx - 0x0f, 0x87, 0x74, 0x02, 0x00, 0x00, //0x00004436 ja LBB1_1080 - 0x41, 0x0f, 0xb6, 0x00, //0x0000443c movzbl (%r8), %eax - 0x3c, 0x6e, //0x00004440 cmpb $110, %al - 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00004442 je LBB1_1027 - 0x3c, 0x72, //0x00004448 cmpb $114, %al - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x0000444a je LBB1_1027 - 0x3c, 0x75, //0x00004450 cmpb $117, %al - 0x0f, 0x85, 0x09, 0xf5, 0xff, 0xff, //0x00004452 jne LBB1_1102 - 0x48, 0x89, 0xd8, //0x00004458 movq %rbx, %rax - 0x48, 0x29, 0xc8, //0x0000445b subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x0000445e cmpq $4, %rax - 0x0f, 0x8c, 0xf9, 0xf4, 0xff, 0xff, //0x00004462 jl LBB1_1102 - 0x8b, 0x11, //0x00004468 movl (%rcx), %edx - 0x89, 0xd6, //0x0000446a movl %edx, %esi - 0xf7, 0xd6, //0x0000446c notl %esi - 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000446e leal $-808464432(%rdx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00004474 andl $-2139062144, %esi - 0x85, 0xc6, //0x0000447a testl %eax, %esi - 0x0f, 0x85, 0xdf, 0xf4, 0xff, 0xff, //0x0000447c jne LBB1_1102 - 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00004482 leal $421075225(%rdx), %eax - 0x09, 0xd0, //0x00004488 orl %edx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000448a testl $-2139062144, %eax - 0x0f, 0x85, 0xcc, 0xf4, 0xff, 0xff, //0x0000448f jne LBB1_1102 - 0x89, 0xd0, //0x00004495 movl %edx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00004497 andl $2139062143, %eax - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000449c movl $-1061109568, %edi - 0x29, 0xc7, //0x000044a1 subl %eax, %edi - 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x000044a3 leal $1179010630(%rax), %ebx - 0x21, 0xf7, //0x000044a9 andl %esi, %edi - 0x85, 0xdf, //0x000044ab testl %ebx, %edi - 0x0f, 0x85, 0xac, 0x04, 0x00, 0x00, //0x000044ad jne LBB1_1131 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x000044b3 movl $-522133280, %edi - 0x29, 0xc7, //0x000044b8 subl %eax, %edi - 0x05, 0x39, 0x39, 0x39, 0x39, //0x000044ba addl $960051513, %eax - 0x21, 0xfe, //0x000044bf andl %edi, %esi - 0x85, 0xc6, //0x000044c1 testl %eax, %esi - 0x48, 0x8b, 0x5d, 0xd0, //0x000044c3 movq $-48(%rbp), %rbx - 0x0f, 0x85, 0x94, 0xf4, 0xff, 0xff, //0x000044c7 jne LBB1_1102 - 0x0f, 0xca, //0x000044cd bswapl %edx - 0x89, 0xd0, //0x000044cf movl %edx, %eax - 0xc1, 0xe8, 0x04, //0x000044d1 shrl $4, %eax - 0xf7, 0xd0, //0x000044d4 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x000044d6 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x000044db leal (%rax,%rax,8), %eax - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000044de andl $252645135, %edx - 0x01, 0xc2, //0x000044e4 addl %eax, %edx - 0x89, 0xd1, //0x000044e6 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000044e8 shrl $4, %ecx - 0x09, 0xd1, //0x000044eb orl %edx, %ecx - 0x89, 0xc8, //0x000044ed movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x000044ef shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x000044f2 andl $65280, %eax - 0x89, 0xca, //0x000044f7 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000044f9 andl $128, %edx - 0x09, 0xc2, //0x000044ff orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004501 je LBB1_1041 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004507 movl $255, %ecx - //0x0000450c LBB1_1041 - 0x49, 0x83, 0xc5, 0x06, //0x0000450c addq $6, %r13 - 0x4d, 0x89, 0xe8, //0x00004510 movq %r13, %r8 - //0x00004513 LBB1_1042 - 0x80, 0xf9, 0x0a, //0x00004513 cmpb $10, %cl - 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x00004516 je LBB1_1045 - 0x80, 0xf9, 0x0d, //0x0000451c cmpb $13, %cl - 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x0000451f je LBB1_1045 - 0x80, 0xf9, 0x3d, //0x00004525 cmpb $61, %cl - 0x0f, 0x85, 0x42, 0xf4, 0xff, 0xff, //0x00004528 jne LBB1_856 - 0x41, 0x83, 0xfe, 0x03, //0x0000452e cmpl $3, %r14d - 0x0f, 0x84, 0x38, 0xf4, 0xff, 0xff, //0x00004532 je LBB1_856 - 0x4c, 0x39, 0xc3, //0x00004538 cmpq %r8, %rbx - 0x0f, 0x87, 0x9d, 0x01, 0x00, 0x00, //0x0000453b ja LBB1_1085 - 0xe9, 0xc5, 0x00, 0x00, 0x00, //0x00004541 jmp LBB1_1063 - //0x00004546 LBB1_1047 - 0x48, 0xff, 0xc1, //0x00004546 incq %rcx - 0x48, 0xff, 0xc2, //0x00004549 incq %rdx - 0x48, 0xff, 0xcf, //0x0000454c decq %rdi - 0x48, 0xff, 0xce, //0x0000454f decq %rsi - 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00004552 je LBB1_993 - //0x00004558 LBB1_1048 - 0x0f, 0xb6, 0x41, 0xff, //0x00004558 movzbl $-1(%rcx), %eax - 0x3c, 0x0a, //0x0000455c cmpb $10, %al - 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x0000455e je LBB1_1047 - 0x3c, 0x0d, //0x00004564 cmpb $13, %al - 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00004566 je LBB1_1047 - 0x3c, 0x3d, //0x0000456c cmpb $61, %al - 0x0f, 0x85, 0xa1, 0x02, 0x00, 0x00, //0x0000456e jne LBB1_1103 - 0x49, 0x89, 0xc8, //0x00004574 movq %rcx, %r8 - 0x41, 0x83, 0xfe, 0x04, //0x00004577 cmpl $4, %r14d - 0x0f, 0x84, 0xef, 0xf3, 0xff, 0xff, //0x0000457b je LBB1_856 - 0x48, 0x39, 0xcb, //0x00004581 cmpq %rcx, %rbx - 0x0f, 0x87, 0x02, 0x01, 0x00, 0x00, //0x00004584 ja LBB1_1076 - 0x49, 0x89, 0xc8, //0x0000458a movq %rcx, %r8 - 0x48, 0x8b, 0x5d, 0xd0, //0x0000458d movq $-48(%rbp), %rbx - 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00004591 jmp LBB1_1063 - //0x00004596 LBB1_993 - 0x49, 0x89, 0xd8, //0x00004596 movq %rbx, %r8 - 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00004599 jmp LBB1_1063 - //0x0000459e LBB1_1054 - 0x80, 0xf9, 0x2f, //0x0000459e cmpb $47, %cl - 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000045a1 jne LBB1_1056 - 0x89, 0xc8, //0x000045a7 movl %ecx, %eax - //0x000045a9 LBB1_1056 - 0x4d, 0x89, 0xd0, //0x000045a9 movq %r10, %r8 - 0x48, 0x8b, 0x5d, 0xd0, //0x000045ac movq $-48(%rbp), %rbx - //0x000045b0 LBB1_1057 - 0x0f, 0xb6, 0xc8, //0x000045b0 movzbl %al, %ecx - 0x48, 0x8b, 0x55, 0xc0, //0x000045b3 movq $-64(%rbp), %rdx - 0x0f, 0xb6, 0x0c, 0x0a, //0x000045b7 movzbl (%rdx,%rcx), %ecx - 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x000045bb cmpl $255, %ecx - 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x000045c1 je LBB1_1070 - 0x44, 0x89, 0xfa, //0x000045c7 movl %r15d, %edx - //0x000045ca LBB1_1059 - 0xc1, 0xe2, 0x06, //0x000045ca shll $6, %edx - 0x09, 0xca, //0x000045cd orl %ecx, %edx - 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000045cf movl $4, %r11d - 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000045d5 .p2align 4, 0x90 - //0x000045e0 LBB1_1060 - 0x41, 0x89, 0xd7, //0x000045e0 movl %edx, %r15d - 0x45, 0x85, 0xe4, //0x000045e3 testl %r12d, %r12d - 0x0f, 0x94, 0xc0, //0x000045e6 sete %al - 0x41, 0x83, 0xfb, 0x01, //0x000045e9 cmpl $1, %r11d - 0x0f, 0x94, 0xc1, //0x000045ed sete %cl - 0x49, 0x39, 0xd8, //0x000045f0 cmpq %rbx, %r8 - 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000045f3 jb LBB1_1063 - 0x41, 0x83, 0xfb, 0x04, //0x000045f9 cmpl $4, %r11d - 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000045fd je LBB1_1063 - 0x08, 0xc8, //0x00004603 orb %cl, %al - 0x0f, 0x85, 0x65, 0xf3, 0xff, 0xff, //0x00004605 jne LBB1_856 - //0x0000460b LBB1_1063 - 0xb0, 0x04, //0x0000460b movb $4, %al - 0x44, 0x28, 0xd8, //0x0000460d subb %r11b, %al - 0x0f, 0xb6, 0xc0, //0x00004610 movzbl %al, %eax - 0x01, 0xc0, //0x00004613 addl %eax, %eax - 0x8d, 0x0c, 0x40, //0x00004615 leal (%rax,%rax,2), %ecx - 0x44, 0x89, 0xfa, //0x00004618 movl %r15d, %edx - 0xd3, 0xe2, //0x0000461b shll %cl, %edx - 0x41, 0x83, 0xfb, 0x02, //0x0000461d cmpl $2, %r11d - 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004621 je LBB1_1068 - 0x41, 0x83, 0xfb, 0x03, //0x00004627 cmpl $3, %r11d - 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000462b je LBB1_1067 - 0x41, 0x83, 0xfb, 0x04, //0x00004631 cmpl $4, %r11d - 0x48, 0x8b, 0x4d, 0xb0, //0x00004635 movq $-80(%rbp), %rcx - 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00004639 jne LBB1_1069 - 0x88, 0x51, 0x02, //0x0000463f movb %dl, $2(%rcx) - //0x00004642 LBB1_1067 - 0x48, 0x8b, 0x45, 0xb0, //0x00004642 movq $-80(%rbp), %rax - 0x88, 0x70, 0x01, //0x00004646 movb %dh, $1(%rax) - //0x00004649 LBB1_1068 - 0xc1, 0xea, 0x10, //0x00004649 shrl $16, %edx - 0x48, 0x8b, 0x4d, 0xb0, //0x0000464c movq $-80(%rbp), %rcx - 0x88, 0x11, //0x00004650 movb %dl, (%rcx) - //0x00004652 LBB1_1069 - 0x44, 0x89, 0xd8, //0x00004652 movl %r11d, %eax - 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x00004655 leaq $-1(%rcx,%rax), %rcx - 0x48, 0x89, 0x4d, 0xb0, //0x0000465a movq %rcx, $-80(%rbp) - 0x4d, 0x89, 0xc1, //0x0000465e movq %r8, %r9 - 0x31, 0xc9, //0x00004661 xorl %ecx, %ecx - 0x44, 0x8b, 0x75, 0xbc, //0x00004663 movl $-68(%rbp), %r14d - 0x48, 0x85, 0xc9, //0x00004667 testq %rcx, %rcx - 0x0f, 0x84, 0x1b, 0xf3, 0xff, 0xff, //0x0000466a je LBB1_857 - 0xe9, 0x2b, 0x03, 0x00, 0x00, //0x00004670 jmp LBB1_1137 - //0x00004675 LBB1_1070 - 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00004675 movl $3, %r11d - 0xe9, 0x26, 0xf6, 0xff, 0xff, //0x0000467b jmp LBB1_903 - //0x00004680 LBB1_1075 - 0x48, 0xff, 0xc2, //0x00004680 incq %rdx - 0x48, 0xff, 0xcf, //0x00004683 decq %rdi - 0x0f, 0x84, 0x94, 0x01, 0x00, 0x00, //0x00004686 je LBB1_1105 - //0x0000468c LBB1_1076 - 0x0f, 0xb6, 0x42, 0xff, //0x0000468c movzbl $-1(%rdx), %eax - 0x3c, 0x0a, //0x00004690 cmpb $10, %al - 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00004692 je LBB1_1075 - 0x3c, 0x0d, //0x00004698 cmpb $13, %al - 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x0000469a je LBB1_1075 - 0x3c, 0x3d, //0x000046a0 cmpb $61, %al - 0x0f, 0x85, 0xc3, 0x02, 0x00, 0x00, //0x000046a2 jne LBB1_1110 - 0x49, 0x89, 0xd0, //0x000046a8 movq %rdx, %r8 - 0xe9, 0xb2, 0x02, 0x00, 0x00, //0x000046ab jmp LBB1_1132 - //0x000046b0 LBB1_1080 - 0x4d, 0x89, 0xc5, //0x000046b0 movq %r8, %r13 - //0x000046b3 LBB1_1026 - 0x4d, 0x89, 0xe8, //0x000046b3 movq %r13, %r8 - 0xe9, 0xb5, 0xf2, 0xff, 0xff, //0x000046b6 jmp LBB1_856 - //0x000046bb LBB1_1101 - 0x4c, 0x89, 0xe9, //0x000046bb movq %r13, %rcx - 0x49, 0x89, 0xc8, //0x000046be movq %rcx, %r8 - 0x48, 0x39, 0xd9, //0x000046c1 cmpq %rbx, %rcx - 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000046c4 jb LBB1_1085 - 0xe9, 0x87, 0xf9, 0xff, 0xff, //0x000046ca jmp LBB1_994 - //0x000046cf LBB1_1083 - 0x49, 0x89, 0xcd, //0x000046cf movq %rcx, %r13 - 0x49, 0x89, 0xc8, //0x000046d2 movq %rcx, %r8 - 0x48, 0x39, 0xd9, //0x000046d5 cmpq %rbx, %rcx - 0x0f, 0x83, 0x78, 0xf9, 0xff, 0xff, //0x000046d8 jae LBB1_994 - //0x000046de LBB1_1085 - 0x4d, 0x8d, 0x68, 0x01, //0x000046de leaq $1(%r8), %r13 - 0x41, 0x0f, 0xb6, 0x08, //0x000046e2 movzbl (%r8), %ecx - 0x80, 0xf9, 0x5c, //0x000046e6 cmpb $92, %cl - 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x000046e9 jne LBB1_1098 - 0x49, 0x8d, 0x48, 0x02, //0x000046ef leaq $2(%r8), %rcx - 0x48, 0x39, 0xd9, //0x000046f3 cmpq %rbx, %rcx - 0x0f, 0x87, 0xb7, 0xff, 0xff, 0xff, //0x000046f6 ja LBB1_1026 - 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x000046fc movzbl (%r13), %eax - 0x3c, 0x6e, //0x00004701 cmpb $110, %al - 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00004703 je LBB1_1083 - 0x3c, 0x72, //0x00004709 cmpb $114, %al - 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x0000470b je LBB1_1083 - 0x3c, 0x75, //0x00004711 cmpb $117, %al - 0x0f, 0x85, 0x48, 0xf2, 0xff, 0xff, //0x00004713 jne LBB1_1102 - 0x48, 0x89, 0xd8, //0x00004719 movq %rbx, %rax - 0x48, 0x29, 0xc8, //0x0000471c subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x0000471f cmpq $4, %rax - 0x0f, 0x8c, 0x36, 0x02, 0x00, 0x00, //0x00004723 jl LBB1_1131 - 0x8b, 0x11, //0x00004729 movl (%rcx), %edx - 0x89, 0xd6, //0x0000472b movl %edx, %esi - 0xf7, 0xd6, //0x0000472d notl %esi - 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000472f leal $-808464432(%rdx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00004735 andl $-2139062144, %esi - 0x85, 0xc6, //0x0000473b testl %eax, %esi - 0x0f, 0x85, 0x1c, 0x02, 0x00, 0x00, //0x0000473d jne LBB1_1131 - 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00004743 leal $421075225(%rdx), %eax - 0x09, 0xd0, //0x00004749 orl %edx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000474b testl $-2139062144, %eax - 0x0f, 0x85, 0x09, 0x02, 0x00, 0x00, //0x00004750 jne LBB1_1131 - 0x89, 0xd0, //0x00004756 movl %edx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00004758 andl $2139062143, %eax - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000475d movl $-1061109568, %edi - 0x29, 0xc7, //0x00004762 subl %eax, %edi - 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x00004764 leal $1179010630(%rax), %ebx - 0x21, 0xf7, //0x0000476a andl %esi, %edi - 0x85, 0xdf, //0x0000476c testl %ebx, %edi - 0x0f, 0x85, 0xeb, 0x01, 0x00, 0x00, //0x0000476e jne LBB1_1131 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004774 movl $-522133280, %edi - 0x29, 0xc7, //0x00004779 subl %eax, %edi - 0x05, 0x39, 0x39, 0x39, 0x39, //0x0000477b addl $960051513, %eax - 0x21, 0xfe, //0x00004780 andl %edi, %esi - 0x85, 0xc6, //0x00004782 testl %eax, %esi - 0x0f, 0x85, 0xd5, 0x01, 0x00, 0x00, //0x00004784 jne LBB1_1131 - 0x0f, 0xca, //0x0000478a bswapl %edx - 0x89, 0xd0, //0x0000478c movl %edx, %eax - 0xc1, 0xe8, 0x04, //0x0000478e shrl $4, %eax - 0xf7, 0xd0, //0x00004791 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00004793 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x00004798 leal (%rax,%rax,8), %eax - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000479b andl $252645135, %edx - 0x01, 0xc2, //0x000047a1 addl %eax, %edx - 0x89, 0xd1, //0x000047a3 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x000047a5 shrl $4, %ecx - 0x09, 0xd1, //0x000047a8 orl %edx, %ecx - 0x89, 0xc8, //0x000047aa movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x000047ac shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x000047af andl $65280, %eax - 0x89, 0xca, //0x000047b4 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000047b6 andl $128, %edx - 0x09, 0xc2, //0x000047bc orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000047be je LBB1_1097 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000047c4 movl $255, %ecx - //0x000047c9 LBB1_1097 - 0x49, 0x83, 0xc0, 0x06, //0x000047c9 addq $6, %r8 - 0x4d, 0x89, 0xc5, //0x000047cd movq %r8, %r13 - 0x48, 0x8b, 0x5d, 0xd0, //0x000047d0 movq $-48(%rbp), %rbx - //0x000047d4 LBB1_1098 - 0x80, 0xf9, 0x0a, //0x000047d4 cmpb $10, %cl - 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x000047d7 je LBB1_1101 - 0x80, 0xf9, 0x0d, //0x000047dd cmpb $13, %cl - 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x000047e0 je LBB1_1101 - 0x80, 0xf9, 0x3d, //0x000047e6 cmpb $61, %cl - 0x0f, 0x85, 0x88, 0x01, 0x00, 0x00, //0x000047e9 jne LBB1_1111 - 0x4d, 0x89, 0xe8, //0x000047ef movq %r13, %r8 - 0x41, 0x83, 0xfe, 0x04, //0x000047f2 cmpl $4, %r14d - 0x48, 0x8b, 0x5d, 0xd0, //0x000047f6 movq $-48(%rbp), %rbx - 0x0f, 0x84, 0x70, 0xf1, 0xff, 0xff, //0x000047fa je LBB1_856 - 0x4c, 0x39, 0xeb, //0x00004800 cmpq %r13, %rbx - 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00004803 ja LBB1_1114 - 0x4d, 0x89, 0xe8, //0x00004809 movq %r13, %r8 - 0x48, 0x8b, 0x5d, 0xd0, //0x0000480c movq $-48(%rbp), %rbx - 0xe9, 0xf6, 0xfd, 0xff, 0xff, //0x00004810 jmp LBB1_1063 - //0x00004815 LBB1_1103 - 0x48, 0x89, 0xca, //0x00004815 movq %rcx, %rdx - 0x49, 0x89, 0xc8, //0x00004818 movq %rcx, %r8 - 0xe9, 0x50, 0xf1, 0xff, 0xff, //0x0000481b jmp LBB1_856 - //0x00004820 LBB1_1105 - 0x48, 0x8b, 0x5d, 0xd0, //0x00004820 movq $-48(%rbp), %rbx - 0x49, 0x89, 0xd8, //0x00004824 movq %rbx, %r8 - 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00004827 jmp LBB1_1063 - //0x0000482c LBB1_1130 - 0x4c, 0x89, 0xc1, //0x0000482c movq %r8, %rcx - 0x49, 0x89, 0xcd, //0x0000482f movq %rcx, %r13 - 0x48, 0x3b, 0x4d, 0xd0, //0x00004832 cmpq $-48(%rbp), %rcx - 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00004836 jb LBB1_1114 - 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x0000483c jmp LBB1_1133 - //0x00004841 LBB1_1112 - 0x49, 0x89, 0xc8, //0x00004841 movq %rcx, %r8 - 0x49, 0x89, 0xcd, //0x00004844 movq %rcx, %r13 - 0x48, 0x3b, 0x4d, 0xd0, //0x00004847 cmpq $-48(%rbp), %rcx - 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x0000484b jae LBB1_1133 - //0x00004851 LBB1_1114 - 0x4d, 0x8d, 0x45, 0x01, //0x00004851 leaq $1(%r13), %r8 - 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00004855 movzbl (%r13), %ecx - 0x80, 0xf9, 0x5c, //0x0000485a cmpb $92, %cl - 0x0f, 0x85, 0xe2, 0x00, 0x00, 0x00, //0x0000485d jne LBB1_1127 - 0x49, 0x8d, 0x4d, 0x02, //0x00004863 leaq $2(%r13), %rcx - 0x48, 0x3b, 0x4d, 0xd0, //0x00004867 cmpq $-48(%rbp), %rcx - 0x0f, 0x87, 0x17, 0x01, 0x00, 0x00, //0x0000486b ja LBB1_1135 - 0x41, 0x0f, 0xb6, 0x00, //0x00004871 movzbl (%r8), %eax - 0x3c, 0x6e, //0x00004875 cmpb $110, %al - 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00004877 je LBB1_1112 - 0x3c, 0x72, //0x0000487d cmpb $114, %al - 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000487f je LBB1_1112 - 0x3c, 0x75, //0x00004885 cmpb $117, %al - 0x0f, 0x85, 0x07, 0x01, 0x00, 0x00, //0x00004887 jne LBB1_1136 - 0x48, 0x8b, 0x45, 0xd0, //0x0000488d movq $-48(%rbp), %rax - 0x48, 0x29, 0xc8, //0x00004891 subq %rcx, %rax - 0x48, 0x83, 0xf8, 0x04, //0x00004894 cmpq $4, %rax - 0x0f, 0x8c, 0xc1, 0x00, 0x00, 0x00, //0x00004898 jl LBB1_1131 - 0x8b, 0x11, //0x0000489e movl (%rcx), %edx - 0x89, 0xd6, //0x000048a0 movl %edx, %esi - 0xf7, 0xd6, //0x000048a2 notl %esi - 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x000048a4 leal $-808464432(%rdx), %eax - 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000048aa andl $-2139062144, %esi - 0x85, 0xc6, //0x000048b0 testl %eax, %esi - 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x000048b2 jne LBB1_1131 - 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x000048b8 leal $421075225(%rdx), %eax - 0x09, 0xd0, //0x000048be orl %edx, %eax - 0xa9, 0x80, 0x80, 0x80, 0x80, //0x000048c0 testl $-2139062144, %eax - 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x000048c5 jne LBB1_1131 - 0x89, 0xd0, //0x000048cb movl %edx, %eax - 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000048cd andl $2139062143, %eax - 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x000048d2 movl $-1061109568, %edi - 0x29, 0xc7, //0x000048d7 subl %eax, %edi - 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x000048d9 leal $1179010630(%rax), %ebx - 0x21, 0xf7, //0x000048df andl %esi, %edi - 0x85, 0xdf, //0x000048e1 testl %ebx, %edi - 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x000048e3 jne LBB1_1131 - 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x000048e9 movl $-522133280, %edi - 0x29, 0xc7, //0x000048ee subl %eax, %edi - 0x05, 0x39, 0x39, 0x39, 0x39, //0x000048f0 addl $960051513, %eax - 0x21, 0xfe, //0x000048f5 andl %edi, %esi - 0x85, 0xc6, //0x000048f7 testl %eax, %esi - 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x000048f9 jne LBB1_1131 - 0x0f, 0xca, //0x000048ff bswapl %edx - 0x89, 0xd0, //0x00004901 movl %edx, %eax - 0xc1, 0xe8, 0x04, //0x00004903 shrl $4, %eax - 0xf7, 0xd0, //0x00004906 notl %eax - 0x25, 0x01, 0x01, 0x01, 0x01, //0x00004908 andl $16843009, %eax - 0x8d, 0x04, 0xc0, //0x0000490d leal (%rax,%rax,8), %eax - 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004910 andl $252645135, %edx - 0x01, 0xc2, //0x00004916 addl %eax, %edx - 0x89, 0xd1, //0x00004918 movl %edx, %ecx - 0xc1, 0xe9, 0x04, //0x0000491a shrl $4, %ecx - 0x09, 0xd1, //0x0000491d orl %edx, %ecx - 0x89, 0xc8, //0x0000491f movl %ecx, %eax - 0xc1, 0xe8, 0x08, //0x00004921 shrl $8, %eax - 0x25, 0x00, 0xff, 0x00, 0x00, //0x00004924 andl $65280, %eax - 0x89, 0xca, //0x00004929 movl %ecx, %edx - 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000492b andl $128, %edx - 0x09, 0xc2, //0x00004931 orl %eax, %edx - 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004933 je LBB1_1126 - 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004939 movl $255, %ecx - //0x0000493e LBB1_1126 - 0x49, 0x83, 0xc5, 0x06, //0x0000493e addq $6, %r13 - 0x4d, 0x89, 0xe8, //0x00004942 movq %r13, %r8 - //0x00004945 LBB1_1127 - 0x80, 0xf9, 0x0a, //0x00004945 cmpb $10, %cl - 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x00004948 je LBB1_1130 - 0x80, 0xf9, 0x0d, //0x0000494e cmpb $13, %cl - 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x00004951 je LBB1_1130 - 0x80, 0xf9, 0x3d, //0x00004957 cmpb $61, %cl - 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000495a jmp LBB1_1132 - //0x0000495f LBB1_1131 - 0x49, 0x89, 0xc8, //0x0000495f movq %rcx, %r8 - //0x00004962 LBB1_1132 - 0x48, 0x8b, 0x5d, 0xd0, //0x00004962 movq $-48(%rbp), %rbx - 0xe9, 0x05, 0xf0, 0xff, 0xff, //0x00004966 jmp LBB1_856 - //0x0000496b LBB1_1110 - 0x48, 0x8b, 0x5d, 0xd0, //0x0000496b movq $-48(%rbp), %rbx - 0x49, 0x89, 0xd0, //0x0000496f movq %rdx, %r8 - 0xe9, 0xf9, 0xef, 0xff, 0xff, //0x00004972 jmp LBB1_856 - //0x00004977 LBB1_1111 - 0x4d, 0x89, 0xe8, //0x00004977 movq %r13, %r8 - 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x0000497a jmp LBB1_1132 - //0x0000497f LBB1_1133 - 0x48, 0x8b, 0x5d, 0xd0, //0x0000497f movq $-48(%rbp), %rbx - 0xe9, 0x83, 0xfc, 0xff, 0xff, //0x00004983 jmp LBB1_1063 - //0x00004988 LBB1_1135 - 0x4d, 0x89, 0xc5, //0x00004988 movq %r8, %r13 - 0x48, 0x8b, 0x5d, 0xd0, //0x0000498b movq $-48(%rbp), %rbx - 0xe9, 0xdc, 0xef, 0xff, 0xff, //0x0000498f jmp LBB1_856 - //0x00004994 LBB1_1136 - 0x48, 0x8b, 0x5d, 0xd0, //0x00004994 movq $-48(%rbp), %rbx - 0x49, 0x89, 0xc8, //0x00004998 movq %rcx, %r8 - 0xe9, 0xd0, 0xef, 0xff, 0xff, //0x0000499b jmp LBB1_856 - //0x000049a0 LBB1_1137 - 0x48, 0x8b, 0x45, 0xa8, //0x000049a0 movq $-88(%rbp), %rax - 0x4c, 0x29, 0xc8, //0x000049a4 subq %r9, %rax - 0x48, 0x29, 0xc8, //0x000049a7 subq %rcx, %rax - 0xe9, 0x19, 0x00, 0x00, 0x00, //0x000049aa jmp LBB1_1139 - //0x000049af LBB1_1138 - 0x48, 0x8b, 0x4d, 0xb0, //0x000049af movq $-80(%rbp), %rcx - 0x48, 0x2b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x000049b3 subq $-136(%rbp), %rcx - 0x48, 0x8b, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000049ba movq $-144(%rbp), %rax - 0x48, 0x01, 0x48, 0x08, //0x000049c1 addq %rcx, $8(%rax) - 0x48, 0x89, 0xc8, //0x000049c5 movq %rcx, %rax - //0x000049c8 LBB1_1139 - 0x48, 0x83, 0xc4, 0x68, //0x000049c8 addq $104, %rsp - 0x5b, //0x000049cc popq %rbx - 0x41, 0x5c, //0x000049cd popq %r12 - 0x41, 0x5d, //0x000049cf popq %r13 - 0x41, 0x5e, //0x000049d1 popq %r14 - 0x41, 0x5f, //0x000049d3 popq %r15 - 0x5d, //0x000049d5 popq %rbp - 0xc5, 0xf8, 0x77, //0x000049d6 vzeroupper - 0xc3, //0x000049d9 retq - //0x000049da LBB1_1140 - 0x48, 0x8b, 0x45, 0xa8, //0x000049da movq $-88(%rbp), %rax - 0x4c, 0x29, 0xf8, //0x000049de subq %r15, %rax - 0x48, 0x29, 0xc8, //0x000049e1 subq %rcx, %rax - 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000049e4 jmp LBB1_1139 - //0x000049e9 LBB1_1141 - 0x48, 0x8b, 0x45, 0xa8, //0x000049e9 movq $-88(%rbp), %rax - 0x4c, 0x29, 0xe8, //0x000049ed subq %r13, %rax - 0x48, 0x29, 0xc8, //0x000049f0 subq %rcx, %rax - 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x000049f3 jmp LBB1_1139 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000049f8 .p2align 4, 0x00 - //0x00004a00 _TabEncodeCharsetStd - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, //0x00004a00 QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' - 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, //0x00004a10 QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' - 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, //0x00004a20 QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' - 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2f, //0x00004a30 QUAD $0x333231307a797877; QUAD $0x2f2b393837363534 // .ascii 16, 'wxyz0123456789+/' - //0x00004a40 .p2align 4, 0x00 - //0x00004a40 _VecEncodeCharsetStd - 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xed, 0xf0, 0x41, 0x00, 0x00, //0x00004a40 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x000041f0edfcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xed\xf0A\x00\x00' - 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xed, 0xf0, 0x41, 0x00, 0x00, //0x00004a50 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x000041f0edfcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xed\xf0A\x00\x00' - //0x00004a60 .p2align 4, 0x00 - //0x00004a60 _TabEncodeCharsetURL - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, //0x00004a60 QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' - 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, //0x00004a70 QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' - 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, //0x00004a80 QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' - 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2d, 0x5f, //0x00004a90 QUAD $0x333231307a797877; QUAD $0x5f2d393837363534 // .ascii 16, 'wxyz0123456789-_' - //0x00004aa0 .p2align 4, 0x00 - //0x00004aa0 _VecEncodeCharsetURL - 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xef, 0x20, 0x41, 0x00, 0x00, //0x00004aa0 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x00004120effcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xef A\x00\x00' - 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xef, 0x20, 0x41, 0x00, 0x00, //0x00004ab0 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x00004120effcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xef A\x00\x00' - //0x00004ac0 .p2align 4, 0x00 - //0x00004ac0 _VecDecodeTableStd - 0x00, 0x00, 0x13, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ac0 QUAD $0xb9b9bfbf04130000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x13\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x13, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ad0 QUAD $0xb9b9bfbf04130000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x13\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' - 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x54, 0x50, 0x50, 0x50, 0x54, //0x00004ae0 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x5450505054f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0TPPPT' - 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x54, 0x50, 0x50, 0x50, 0x54, //0x00004af0 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x5450505054f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0TPPPT' - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004b00 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .ascii 16, '////////////////' - 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004b10 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .ascii 16, '////////////////' - 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, //0x00004b20 QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .ascii 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' - 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, //0x00004b30 QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .ascii 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' - //0x00004b40 .p2align 4, 0x00 - //0x00004b40 _VecDecodeCharsetStd - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b40 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b50 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0x3f, //0x00004b60 QUAD $0xffffffffffffffff; QUAD $0x3fffffff3effffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?' - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b70 QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' - 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, //0x00004b80 QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b90 QUAD $0x161514131211100f; QUAD $0xffffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff' - 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, //0x00004ba0 QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bb0 QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bc0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bd0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004be0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bf0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c00 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c10 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c20 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c30 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - //0x00004c40 .p2align 4, 0x00 - //0x00004c40 _VecDecodeTableURL - 0x00, 0x00, 0x11, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c40 QUAD $0xb9b9bfbf04110000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x11\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' - 0x00, 0x00, 0x11, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c50 QUAD $0xb9b9bfbf04110000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x11\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' - 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x50, 0x50, 0x54, 0x50, 0x70, //0x00004c60 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x7050545050f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0PPTPp' - 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x50, 0x50, 0x54, 0x50, 0x70, //0x00004c70 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x7050545050f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0PPTPp' - 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, //0x00004c80 QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .ascii 16, '________________' - 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, //0x00004c90 QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .ascii 16, '________________' - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004ca0 QUAD $0xe0e0e0e0e0e0e0e0; QUAD $0xe0e0e0e0e0e0e0e0 // .ascii 16, '\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0' - 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004cb0 QUAD $0xe0e0e0e0e0e0e0e0; QUAD $0xe0e0e0e0e0e0e0e0 // .ascii 16, '\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0' - //0x00004cc0 .p2align 4, 0x00 - //0x00004cc0 _VecDecodeCharsetURL - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cc0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cd0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, //0x00004ce0 QUAD $0xffffffffffffffff; QUAD $0xffff3effffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff' - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cf0 QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' - 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, //0x00004d00 QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' - 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0x3f, //0x00004d10 QUAD $0x161514131211100f; QUAD $0x3fffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff?' - 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, //0x00004d20 QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' - 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d30 QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d40 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d50 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d60 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d70 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d80 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d90 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004da0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004db0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' -} diff --git a/vendor/github.com/chenzhuoyu/iasm/LICENSE b/vendor/github.com/chenzhuoyu/iasm/LICENSE deleted file mode 100644 index 261eeb9e9..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/ast.go b/vendor/github.com/chenzhuoyu/iasm/expr/ast.go deleted file mode 100644 index c9e872e28..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/ast.go +++ /dev/null @@ -1,245 +0,0 @@ -package expr - -import ( - `fmt` -) - -// Type is tyep expression type. -type Type int - -const ( - // CONST indicates that the expression is a constant. - CONST Type = iota - - // TERM indicates that the expression is a Term reference. - TERM - - // EXPR indicates that the expression is a unary or binary expression. - EXPR -) - -var typeNames = map[Type]string { - EXPR : "Expr", - TERM : "Term", - CONST : "Const", -} - -// String returns the string representation of a Type. -func (self Type) String() string { - if v, ok := typeNames[self]; ok { - return v - } else { - return fmt.Sprintf("expr.Type(%d)", self) - } -} - -// Operator represents an operation to perform when Type is EXPR. -type Operator uint8 - -const ( - // ADD performs "Add Expr.Left and Expr.Right". - ADD Operator = iota - - // SUB performs "Subtract Expr.Left by Expr.Right". - SUB - - // MUL performs "Multiply Expr.Left by Expr.Right". - MUL - - // DIV performs "Divide Expr.Left by Expr.Right". - DIV - - // MOD performs "Modulo Expr.Left by Expr.Right". - MOD - - // AND performs "Bitwise AND Expr.Left and Expr.Right". - AND - - // OR performs "Bitwise OR Expr.Left and Expr.Right". - OR - - // XOR performs "Bitwise XOR Expr.Left and Expr.Right". - XOR - - // SHL performs "Bitwise Shift Expr.Left to the Left by Expr.Right Bits". - SHL - - // SHR performs "Bitwise Shift Expr.Left to the Right by Expr.Right Bits". - SHR - - // POW performs "Raise Expr.Left to the power of Expr.Right" - POW - - // NOT performs "Bitwise Invert Expr.Left". - NOT - - // NEG performs "Negate Expr.Left". - NEG -) - -var operatorNames = map[Operator]string { - ADD : "Add", - SUB : "Subtract", - MUL : "Multiply", - DIV : "Divide", - MOD : "Modulo", - AND : "And", - OR : "Or", - XOR : "ExclusiveOr", - SHL : "ShiftLeft", - SHR : "ShiftRight", - POW : "Power", - NOT : "Invert", - NEG : "Negate", -} - -// String returns the string representation of a Type. -func (self Operator) String() string { - if v, ok := operatorNames[self]; ok { - return v - } else { - return fmt.Sprintf("expr.Operator(%d)", self) - } -} - -// Expr represents an expression node. -type Expr struct { - Type Type - Term Term - Op Operator - Left *Expr - Right *Expr - Const int64 -} - -// Ref creates an expression from a Term. -func Ref(t Term) (p *Expr) { - p = newExpression() - p.Term = t - p.Type = TERM - return -} - -// Int creates an expression from an integer. -func Int(v int64) (p *Expr) { - p = newExpression() - p.Type = CONST - p.Const = v - return -} - -func (self *Expr) clear() { - if self.Term != nil { self.Term.Free() } - if self.Left != nil { self.Left.Free() } - if self.Right != nil { self.Right.Free() } -} - -// Free returns the Expr into pool. -// Any operation performed after Free is undefined behavior. -func (self *Expr) Free() { - self.clear() - freeExpression(self) -} - -// Evaluate evaluates the expression into an integer. -// It also implements the Term interface. -func (self *Expr) Evaluate() (int64, error) { - switch self.Type { - case EXPR : return self.eval() - case TERM : return self.Term.Evaluate() - case CONST : return self.Const, nil - default : panic("invalid expression type: " + self.Type.String()) - } -} - -/** Expression Combinator **/ - -func combine(a *Expr, op Operator, b *Expr) (r *Expr) { - r = newExpression() - r.Op = op - r.Type = EXPR - r.Left = a - r.Right = b - return -} - -func (self *Expr) Add(v *Expr) *Expr { return combine(self, ADD, v) } -func (self *Expr) Sub(v *Expr) *Expr { return combine(self, SUB, v) } -func (self *Expr) Mul(v *Expr) *Expr { return combine(self, MUL, v) } -func (self *Expr) Div(v *Expr) *Expr { return combine(self, DIV, v) } -func (self *Expr) Mod(v *Expr) *Expr { return combine(self, MOD, v) } -func (self *Expr) And(v *Expr) *Expr { return combine(self, AND, v) } -func (self *Expr) Or (v *Expr) *Expr { return combine(self, OR , v) } -func (self *Expr) Xor(v *Expr) *Expr { return combine(self, XOR, v) } -func (self *Expr) Shl(v *Expr) *Expr { return combine(self, SHL, v) } -func (self *Expr) Shr(v *Expr) *Expr { return combine(self, SHR, v) } -func (self *Expr) Pow(v *Expr) *Expr { return combine(self, POW, v) } -func (self *Expr) Not() *Expr { return combine(self, NOT, nil) } -func (self *Expr) Neg() *Expr { return combine(self, NEG, nil) } - -/** Expression Evaluator **/ - -var binaryEvaluators = [256]func(int64, int64) (int64, error) { - ADD: func(a, b int64) (int64, error) { return a + b, nil }, - SUB: func(a, b int64) (int64, error) { return a - b, nil }, - MUL: func(a, b int64) (int64, error) { return a * b, nil }, - DIV: idiv, - MOD: imod, - AND: func(a, b int64) (int64, error) { return a & b, nil }, - OR: func(a, b int64) (int64, error) { return a | b, nil }, - XOR: func(a, b int64) (int64, error) { return a ^ b, nil }, - SHL: func(a, b int64) (int64, error) { return a << b, nil }, - SHR: func(a, b int64) (int64, error) { return a >> b, nil }, - POW: ipow, -} - -func (self *Expr) eval() (int64, error) { - var lhs int64 - var rhs int64 - var err error - var vfn func(int64, int64) (int64, error) - - /* evaluate LHS */ - if lhs, err = self.Left.Evaluate(); err != nil { - return 0, err - } - - /* check for unary operators */ - switch self.Op { - case NOT: return self.unaryNot(lhs) - case NEG: return self.unaryNeg(lhs) - } - - /* check for operators */ - if vfn = binaryEvaluators[self.Op]; vfn == nil { - panic("invalid operator: " + self.Op.String()) - } - - /* must be a binary expression */ - if self.Right == nil { - panic("operator " + self.Op.String() + " is a binary operator") - } - - /* evaluate RHS, and call the operator */ - if rhs, err = self.Right.Evaluate(); err != nil { - return 0, err - } else { - return vfn(lhs, rhs) - } -} - -func (self *Expr) unaryNot(v int64) (int64, error) { - if self.Right == nil { - return ^v, nil - } else { - panic("operator Invert is an unary operator") - } -} - -func (self *Expr) unaryNeg(v int64) (int64, error) { - if self.Right == nil { - return -v, nil - } else { - panic("operator Negate is an unary operator") - } -} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/errors.go b/vendor/github.com/chenzhuoyu/iasm/expr/errors.go deleted file mode 100644 index 7f4f7b5ce..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/errors.go +++ /dev/null @@ -1,37 +0,0 @@ -package expr - -import ( - `fmt` -) - -// SyntaxError represents a syntax error in the expression. -type SyntaxError struct { - Pos int - Reason string -} - -func newSyntaxError(pos int, reason string) *SyntaxError { - return &SyntaxError { - Pos : pos, - Reason : reason, - } -} - -func (self *SyntaxError) Error() string { - return fmt.Sprintf("Syntax error at position %d: %s", self.Pos, self.Reason) -} - -// RuntimeError is an error which would occure at run time. -type RuntimeError struct { - Reason string -} - -func newRuntimeError(reason string) *RuntimeError { - return &RuntimeError { - Reason: reason, - } -} - -func (self *RuntimeError) Error() string { - return "Runtime error: " + self.Reason -} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/ops.go b/vendor/github.com/chenzhuoyu/iasm/expr/ops.go deleted file mode 100644 index 860be87df..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/ops.go +++ /dev/null @@ -1,51 +0,0 @@ -package expr - -import ( - `fmt` -) - -func idiv(v int64, d int64) (int64, error) { - if d != 0 { - return v / d, nil - } else { - return 0, newRuntimeError("division by zero") - } -} - -func imod(v int64, d int64) (int64, error) { - if d != 0 { - return v % d, nil - } else { - return 0, newRuntimeError("division by zero") - } -} - -func ipow(v int64, e int64) (int64, error) { - mul := v - ret := int64(1) - - /* value must be 0 or positive */ - if v < 0 { - return 0, newRuntimeError(fmt.Sprintf("negative base value: %d", v)) - } - - /* exponent must be non-negative */ - if e < 0 { - return 0, newRuntimeError(fmt.Sprintf("negative exponent: %d", e)) - } - - /* fast power first round */ - if (e & 1) != 0 { - ret *= mul - } - - /* fast power remaining rounds */ - for e >>= 1; e != 0; e >>= 1 { - if mul *= mul; (e & 1) != 0 { - ret *= mul - } - } - - /* all done */ - return ret, nil -} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/parser.go b/vendor/github.com/chenzhuoyu/iasm/expr/parser.go deleted file mode 100644 index 6022f007c..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/parser.go +++ /dev/null @@ -1,313 +0,0 @@ -package expr - -import ( - `strconv` - `unicode` - `unsafe` -) - -type _TokenKind uint8 - -const ( - _T_end _TokenKind = iota + 1 - _T_int - _T_punc - _T_name -) - -const ( - _OP2 = 0x80 - _POW = _OP2 | '*' - _SHL = _OP2 | '<' - _SHR = _OP2 | '>' -) - -type _Slice struct { - p unsafe.Pointer - n int - c int -} - -type _Token struct { - pos int - ptr *rune - u64 uint64 - tag _TokenKind -} - -func (self _Token) str() (v string) { - return string(self.rbuf()) -} - -func (self _Token) rbuf() (v []rune) { - (*_Slice)(unsafe.Pointer(&v)).c = int(self.u64) - (*_Slice)(unsafe.Pointer(&v)).n = int(self.u64) - (*_Slice)(unsafe.Pointer(&v)).p = unsafe.Pointer(self.ptr) - return -} - -func tokenEnd(p int) _Token { - return _Token { - pos: p, - tag: _T_end, - } -} - -func tokenInt(p int, v uint64) _Token { - return _Token { - pos: p, - u64: v, - tag: _T_int, - } -} - -func tokenPunc(p int, v rune) _Token { - return _Token { - pos: p, - tag: _T_punc, - u64: uint64(v), - } -} - -func tokenName(p int, v []rune) _Token { - return _Token { - pos: p, - ptr: &v[0], - tag: _T_name, - u64: uint64(len(v)), - } -} - -// Repository represents a repository of Term's. -type Repository interface { - Get(name string) (Term, error) -} - -// Parser parses an expression string to it's AST representation. -type Parser struct { - pos int - src []rune -} - -var binaryOps = [...]func(*Expr, *Expr) *Expr { - '+' : (*Expr).Add, - '-' : (*Expr).Sub, - '*' : (*Expr).Mul, - '/' : (*Expr).Div, - '%' : (*Expr).Mod, - '&' : (*Expr).And, - '^' : (*Expr).Xor, - '|' : (*Expr).Or, - _SHL : (*Expr).Shl, - _SHR : (*Expr).Shr, - _POW : (*Expr).Pow, -} - -var precedence = [...]map[int]bool { - {_SHL: true, _SHR: true}, - {'|' : true}, - {'^' : true}, - {'&' : true}, - {'+' : true, '-': true}, - {'*' : true, '/': true, '%': true}, - {_POW: true}, -} - -func (self *Parser) ch() rune { - return self.src[self.pos] -} - -func (self *Parser) eof() bool { - return self.pos >= len(self.src) -} - -func (self *Parser) rch() (v rune) { - v, self.pos = self.src[self.pos], self.pos + 1 - return -} - -func (self *Parser) hex(ss []rune) bool { - if len(ss) == 1 && ss[0] == '0' { - return unicode.ToLower(self.ch()) == 'x' - } else if len(ss) <= 1 || unicode.ToLower(ss[1]) != 'x' { - return unicode.IsDigit(self.ch()) - } else { - return ishexdigit(self.ch()) - } -} - -func (self *Parser) int(p int, ss []rune) (_Token, error) { - var err error - var val uint64 - - /* find all the digits */ - for !self.eof() && self.hex(ss) { - ss = append(ss, self.rch()) - } - - /* parse the value */ - if val, err = strconv.ParseUint(string(ss), 0, 64); err != nil { - return _Token{}, err - } else { - return tokenInt(p, val), nil - } -} - -func (self *Parser) name(p int, ss []rune) _Token { - for !self.eof() && isident(self.ch()) { ss = append(ss, self.rch()) } - return tokenName(p, ss) -} - -func (self *Parser) read(p int, ch rune) (_Token, error) { - if isdigit(ch) { - return self.int(p, []rune { ch }) - } else if isident0(ch) { - return self.name(p, []rune { ch }), nil - } else if isop2ch(ch) && !self.eof() && self.ch() == ch { - return tokenPunc(p, _OP2 | self.rch()), nil - } else if isop1ch(ch) { - return tokenPunc(p, ch), nil - } else { - return _Token{}, newSyntaxError(self.pos, "invalid character " + strconv.QuoteRuneToASCII(ch)) - } -} - -func (self *Parser) next() (_Token, error) { - for { - var p int - var c rune - - /* check for EOF */ - if self.eof() { - return tokenEnd(self.pos), nil - } - - /* read the next char */ - p = self.pos - c = self.rch() - - /* parse the token if not a space */ - if !unicode.IsSpace(c) { - return self.read(p, c) - } - } -} - -func (self *Parser) grab(tk _Token, repo Repository) (*Expr, error) { - if repo == nil { - return nil, newSyntaxError(tk.pos, "unresolved symbol: " + tk.str()) - } else if term, err := repo.Get(tk.str()); err != nil { - return nil, err - } else { - return Ref(term), nil - } -} - -func (self *Parser) nest(nest int, repo Repository) (*Expr, error) { - var err error - var ret *Expr - var ntk _Token - - /* evaluate the nested expression */ - if ret, err = self.expr(0, nest + 1, repo); err != nil { - return nil, err - } - - /* must follows with a ')' */ - if ntk, err = self.next(); err != nil { - return nil, err - } else if ntk.tag != _T_punc || ntk.u64 != ')' { - return nil, newSyntaxError(ntk.pos, "')' expected") - } else { - return ret, nil - } -} - -func (self *Parser) unit(nest int, repo Repository) (*Expr, error) { - if tk, err := self.next(); err != nil { - return nil, err - } else if tk.tag == _T_int { - return Int(int64(tk.u64)), nil - } else if tk.tag == _T_name { - return self.grab(tk, repo) - } else if tk.tag == _T_punc && tk.u64 == '(' { - return self.nest(nest, repo) - } else if tk.tag == _T_punc && tk.u64 == '+' { - return self.unit(nest, repo) - } else if tk.tag == _T_punc && tk.u64 == '-' { - return neg2(self.unit(nest, repo)) - } else if tk.tag == _T_punc && tk.u64 == '~' { - return not2(self.unit(nest, repo)) - } else { - return nil, newSyntaxError(tk.pos, "integer, unary operator or nested expression expected") - } -} - -func (self *Parser) term(prec int, nest int, repo Repository) (*Expr, error) { - var err error - var val *Expr - - /* parse the LHS operand */ - if val, err = self.expr(prec + 1, nest, repo); err != nil { - return nil, err - } - - /* parse all the operators of the same precedence */ - for { - var op int - var rv *Expr - var tk _Token - - /* peek the next token */ - pp := self.pos - tk, err = self.next() - - /* check for errors */ - if err != nil { - return nil, err - } - - /* encountered EOF */ - if tk.tag == _T_end { - return val, nil - } - - /* must be an operator */ - if tk.tag != _T_punc { - return nil, newSyntaxError(tk.pos, "operators expected") - } - - /* check for the operator precedence */ - if op = int(tk.u64); !precedence[prec][op] { - self.pos = pp - return val, nil - } - - /* evaluate the RHS operand, and combine the value */ - if rv, err = self.expr(prec + 1, nest, repo); err != nil { - return nil, err - } else { - val = binaryOps[op](val, rv) - } - } -} - -func (self *Parser) expr(prec int, nest int, repo Repository) (*Expr, error) { - if prec >= len(precedence) { - return self.unit(nest, repo) - } else { - return self.term(prec, nest, repo) - } -} - -// Parse parses the expression, and returns it's AST tree. -func (self *Parser) Parse(repo Repository) (*Expr, error) { - return self.expr(0, 0, repo) -} - -// SetSource resets the expression parser and sets the expression source. -func (self *Parser) SetSource(src string) *Parser { - self.pos = 0 - self.src = []rune(src) - return self -} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/pools.go b/vendor/github.com/chenzhuoyu/iasm/expr/pools.go deleted file mode 100644 index fde422ee6..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/pools.go +++ /dev/null @@ -1,26 +0,0 @@ -package expr - -import ( - `sync` -) - -var ( - expressionPool sync.Pool -) - -func newExpression() *Expr { - if v := expressionPool.Get(); v == nil { - return new(Expr) - } else { - return resetExpression(v.(*Expr)) - } -} - -func freeExpression(p *Expr) { - expressionPool.Put(p) -} - -func resetExpression(p *Expr) *Expr { - *p = Expr{} - return p -} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/term.go b/vendor/github.com/chenzhuoyu/iasm/expr/term.go deleted file mode 100644 index 110bcebdb..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/term.go +++ /dev/null @@ -1,7 +0,0 @@ -package expr - -// Term represents a value that can Evaluate() into an integer. -type Term interface { - Free() - Evaluate() (int64, error) -} diff --git a/vendor/github.com/chenzhuoyu/iasm/expr/utils.go b/vendor/github.com/chenzhuoyu/iasm/expr/utils.go deleted file mode 100644 index 03a98b85b..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/expr/utils.go +++ /dev/null @@ -1,61 +0,0 @@ -package expr - -var op1ch = [...]bool { - '+': true, - '-': true, - '*': true, - '/': true, - '%': true, - '&': true, - '|': true, - '^': true, - '~': true, - '(': true, - ')': true, -} - -var op2ch = [...]bool { - '*': true, - '<': true, - '>': true, -} - -func neg2(v *Expr, err error) (*Expr, error) { - if err != nil { - return nil, err - } else { - return v.Neg(), nil - } -} - -func not2(v *Expr, err error) (*Expr, error) { - if err != nil { - return nil, err - } else { - return v.Not(), nil - } -} - -func isop1ch(ch rune) bool { - return ch >= 0 && int(ch) < len(op1ch) && op1ch[ch] -} - -func isop2ch(ch rune) bool { - return ch >= 0 && int(ch) < len(op2ch) && op2ch[ch] -} - -func isdigit(ch rune) bool { - return ch >= '0' && ch <= '9' -} - -func isident(ch rune) bool { - return isdigit(ch) || isident0(ch) -} - -func isident0(ch rune) bool { - return (ch == '_') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') -} - -func ishexdigit(ch rune) bool { - return isdigit(ch) || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F') -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go deleted file mode 100644 index c427c8c09..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/arch.go +++ /dev/null @@ -1,235 +0,0 @@ -package x86_64 - -import ( - `fmt` -) - -// ISA represents an extension to x86-64 instruction set. -type ISA uint64 - -const ( - ISA_CPUID ISA = 1 << iota - ISA_RDTSC - ISA_RDTSCP - ISA_CMOV - ISA_MOVBE - ISA_POPCNT - ISA_LZCNT - ISA_TBM - ISA_BMI - ISA_BMI2 - ISA_ADX - ISA_MMX - ISA_MMX_PLUS - ISA_FEMMS - ISA_3DNOW - ISA_3DNOW_PLUS - ISA_SSE - ISA_SSE2 - ISA_SSE3 - ISA_SSSE3 - ISA_SSE4A - ISA_SSE4_1 - ISA_SSE4_2 - ISA_FMA3 - ISA_FMA4 - ISA_XOP - ISA_F16C - ISA_AVX - ISA_AVX2 - ISA_AVX512F - ISA_AVX512BW - ISA_AVX512DQ - ISA_AVX512VL - ISA_AVX512PF - ISA_AVX512ER - ISA_AVX512CD - ISA_AVX512VBMI - ISA_AVX512IFMA - ISA_AVX512VPOPCNTDQ - ISA_AVX512_4VNNIW - ISA_AVX512_4FMAPS - ISA_PREFETCH - ISA_PREFETCHW - ISA_PREFETCHWT1 - ISA_CLFLUSH - ISA_CLFLUSHOPT - ISA_CLWB - ISA_CLZERO - ISA_RDRAND - ISA_RDSEED - ISA_PCLMULQDQ - ISA_AES - ISA_SHA - ISA_MONITOR - ISA_MONITORX - ISA_ALL = ^ISA(0) -) - -var _ISA_NAMES = map[ISA]string { - ISA_CPUID : "CPUID", - ISA_RDTSC : "RDTSC", - ISA_RDTSCP : "RDTSCP", - ISA_CMOV : "CMOV", - ISA_MOVBE : "MOVBE", - ISA_POPCNT : "POPCNT", - ISA_LZCNT : "LZCNT", - ISA_TBM : "TBM", - ISA_BMI : "BMI", - ISA_BMI2 : "BMI2", - ISA_ADX : "ADX", - ISA_MMX : "MMX", - ISA_MMX_PLUS : "MMX+", - ISA_FEMMS : "FEMMS", - ISA_3DNOW : "3dnow!", - ISA_3DNOW_PLUS : "3dnow!+", - ISA_SSE : "SSE", - ISA_SSE2 : "SSE2", - ISA_SSE3 : "SSE3", - ISA_SSSE3 : "SSSE3", - ISA_SSE4A : "SSE4A", - ISA_SSE4_1 : "SSE4.1", - ISA_SSE4_2 : "SSE4.2", - ISA_FMA3 : "FMA3", - ISA_FMA4 : "FMA4", - ISA_XOP : "XOP", - ISA_F16C : "F16C", - ISA_AVX : "AVX", - ISA_AVX2 : "AVX2", - ISA_AVX512F : "AVX512F", - ISA_AVX512BW : "AVX512BW", - ISA_AVX512DQ : "AVX512DQ", - ISA_AVX512VL : "AVX512VL", - ISA_AVX512PF : "AVX512PF", - ISA_AVX512ER : "AVX512ER", - ISA_AVX512CD : "AVX512CD", - ISA_AVX512VBMI : "AVX512VBMI", - ISA_AVX512IFMA : "AVX512IFMA", - ISA_AVX512VPOPCNTDQ : "AVX512VPOPCNTDQ", - ISA_AVX512_4VNNIW : "AVX512_4VNNIW", - ISA_AVX512_4FMAPS : "AVX512_4FMAPS", - ISA_PREFETCH : "PREFETCH", - ISA_PREFETCHW : "PREFETCHW", - ISA_PREFETCHWT1 : "PREFETCHWT1", - ISA_CLFLUSH : "CLFLUSH", - ISA_CLFLUSHOPT : "CLFLUSHOPT", - ISA_CLWB : "CLWB", - ISA_CLZERO : "CLZERO", - ISA_RDRAND : "RDRAND", - ISA_RDSEED : "RDSEED", - ISA_PCLMULQDQ : "PCLMULQDQ", - ISA_AES : "AES", - ISA_SHA : "SHA", - ISA_MONITOR : "MONITOR", - ISA_MONITORX : "MONITORX", -} - -var _ISA_MAPPING = map[string]ISA { - "CPUID" : ISA_CPUID, - "RDTSC" : ISA_RDTSC, - "RDTSCP" : ISA_RDTSCP, - "CMOV" : ISA_CMOV, - "MOVBE" : ISA_MOVBE, - "POPCNT" : ISA_POPCNT, - "LZCNT" : ISA_LZCNT, - "TBM" : ISA_TBM, - "BMI" : ISA_BMI, - "BMI2" : ISA_BMI2, - "ADX" : ISA_ADX, - "MMX" : ISA_MMX, - "MMX+" : ISA_MMX_PLUS, - "FEMMS" : ISA_FEMMS, - "3dnow!" : ISA_3DNOW, - "3dnow!+" : ISA_3DNOW_PLUS, - "SSE" : ISA_SSE, - "SSE2" : ISA_SSE2, - "SSE3" : ISA_SSE3, - "SSSE3" : ISA_SSSE3, - "SSE4A" : ISA_SSE4A, - "SSE4.1" : ISA_SSE4_1, - "SSE4.2" : ISA_SSE4_2, - "FMA3" : ISA_FMA3, - "FMA4" : ISA_FMA4, - "XOP" : ISA_XOP, - "F16C" : ISA_F16C, - "AVX" : ISA_AVX, - "AVX2" : ISA_AVX2, - "AVX512F" : ISA_AVX512F, - "AVX512BW" : ISA_AVX512BW, - "AVX512DQ" : ISA_AVX512DQ, - "AVX512VL" : ISA_AVX512VL, - "AVX512PF" : ISA_AVX512PF, - "AVX512ER" : ISA_AVX512ER, - "AVX512CD" : ISA_AVX512CD, - "AVX512VBMI" : ISA_AVX512VBMI, - "AVX512IFMA" : ISA_AVX512IFMA, - "AVX512VPOPCNTDQ" : ISA_AVX512VPOPCNTDQ, - "AVX512_4VNNIW" : ISA_AVX512_4VNNIW, - "AVX512_4FMAPS" : ISA_AVX512_4FMAPS, - "PREFETCH" : ISA_PREFETCH, - "PREFETCHW" : ISA_PREFETCHW, - "PREFETCHWT1" : ISA_PREFETCHWT1, - "CLFLUSH" : ISA_CLFLUSH, - "CLFLUSHOPT" : ISA_CLFLUSHOPT, - "CLWB" : ISA_CLWB, - "CLZERO" : ISA_CLZERO, - "RDRAND" : ISA_RDRAND, - "RDSEED" : ISA_RDSEED, - "PCLMULQDQ" : ISA_PCLMULQDQ, - "AES" : ISA_AES, - "SHA" : ISA_SHA, - "MONITOR" : ISA_MONITOR, - "MONITORX" : ISA_MONITORX, -} - -func (self ISA) String() string { - if v, ok := _ISA_NAMES[self]; ok { - return v - } else { - return fmt.Sprintf("(invalid: %#x)", uint64(self)) - } -} - -// ParseISA parses name into ISA, it will panic if the name is invalid. -func ParseISA(name string) ISA { - if v, ok := _ISA_MAPPING[name]; ok { - return v - } else { - panic("invalid ISA name: " + name) - } -} - -// Arch represents the x86_64 architecture. -type Arch struct { - isa ISA -} - -// DefaultArch is the default architecture with all ISA enabled. -var DefaultArch = CreateArch() - -// CreateArch creates a new Arch with all ISA enabled. -func CreateArch() *Arch { - return new(Arch).EnableISA(ISA_ALL) -} - -// HasISA checks if a particular ISA was enabled. -func (self *Arch) HasISA(isa ISA) bool { - return (self.isa & isa) != 0 -} - -// EnableISA enables a particular ISA. -func (self *Arch) EnableISA(isa ISA) *Arch { - self.isa |= isa - return self -} - -// DisableISA disables a particular ISA. -func (self *Arch) DisableISA(isa ISA) *Arch { - self.isa &^= isa - return self -} - -// CreateProgram creates a new empty program. -func (self *Arch) CreateProgram() *Program { - return newProgram(self) -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/asm.s b/vendor/github.com/chenzhuoyu/iasm/x86_64/asm.s deleted file mode 100644 index e69de29bb..000000000 diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go deleted file mode 100644 index b33a586b4..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler.go +++ /dev/null @@ -1,1803 +0,0 @@ -package x86_64 - -import ( - `bytes` - `errors` - `fmt` - `math` - `strconv` - `strings` - `unicode` - - `github.com/chenzhuoyu/iasm/expr` -) - -type ( - _TokenKind int - _Punctuation int -) - -const ( - _T_end _TokenKind = iota + 1 - _T_int - _T_name - _T_punc - _T_space -) - -const ( - _P_plus _Punctuation = iota + 1 - _P_minus - _P_star - _P_slash - _P_percent - _P_amp - _P_bar - _P_caret - _P_shl - _P_shr - _P_tilde - _P_lbrk - _P_rbrk - _P_dot - _P_comma - _P_colon - _P_dollar - _P_hash -) - -var _PUNC_NAME = map[_Punctuation]string { - _P_plus : "+", - _P_minus : "-", - _P_star : "*", - _P_slash : "/", - _P_percent : "%", - _P_amp : "&", - _P_bar : "|", - _P_caret : "^", - _P_shl : "<<", - _P_shr : ">>", - _P_tilde : "~", - _P_lbrk : "(", - _P_rbrk : ")", - _P_dot : ".", - _P_comma : ",", - _P_colon : ":", - _P_dollar : "$", - _P_hash : "#", -} - -func (self _Punctuation) String() string { - if v, ok := _PUNC_NAME[self]; ok { - return v - } else { - return fmt.Sprintf("_Punctuation(%d)", self) - } -} - -type _Token struct { - pos int - end int - u64 uint64 - str string - tag _TokenKind -} - -func (self *_Token) punc() _Punctuation { - return _Punctuation(self.u64) -} - -func (self *_Token) String() string { - switch self.tag { - case _T_end : return "" - case _T_int : return fmt.Sprintf("", self.u64) - case _T_punc : return fmt.Sprintf("", _Punctuation(self.u64)) - case _T_name : return fmt.Sprintf("", strconv.QuoteToASCII(self.str)) - case _T_space : return "" - default : return fmt.Sprintf("", self.tag, self.u64, strconv.QuoteToASCII(self.str)) - } -} - -func tokenEnd(p int, end int) _Token { - return _Token { - pos: p, - end: end, - tag: _T_end, - } -} - -func tokenInt(p int, val uint64) _Token { - return _Token { - pos: p, - u64: val, - tag: _T_int, - } -} - -func tokenName(p int, name string) _Token { - return _Token { - pos: p, - str: name, - tag: _T_name, - } -} - -func tokenPunc(p int, punc _Punctuation) _Token { - return _Token { - pos: p, - tag: _T_punc, - u64: uint64(punc), - } -} - -func tokenSpace(p int, end int) _Token { - return _Token { - pos: p, - end: end, - tag: _T_space, - } -} - -// SyntaxError represents an error in the assembly syntax. -type SyntaxError struct { - Pos int - Row int - Src []rune - Reason string -} - -// Error implements the error interface. -func (self *SyntaxError) Error() string { - if self.Pos < 0 { - return fmt.Sprintf("%s at line %d", self.Reason, self.Row) - } else { - return fmt.Sprintf("%s at %d:%d", self.Reason, self.Row, self.Pos + 1) - } -} - -type _Tokenizer struct { - pos int - row int - src []rune -} - -func (self *_Tokenizer) ch() rune { - return self.src[self.pos] -} - -func (self *_Tokenizer) eof() bool { - return self.pos >= len(self.src) -} - -func (self *_Tokenizer) rch() (ret rune) { - ret, self.pos = self.src[self.pos], self.pos + 1 - return -} - -func (self *_Tokenizer) err(pos int, msg string) *SyntaxError { - return &SyntaxError { - Pos : pos, - Row : self.row, - Src : self.src, - Reason : msg, - } -} - -type _TrimState int - -const ( - _TS_normal _TrimState = iota - _TS_slcomm - _TS_hscomm - _TS_string - _TS_escape - _TS_accept - _TS_nolast -) - -func (self *_Tokenizer) init(src string) { - var i int - var ch rune - var st _TrimState - - /* set the source */ - self.pos = 0 - self.src = []rune(src) - - /* remove commends, including "//" and "##" */ - loop: for i, ch = range self.src { - switch { - case st == _TS_normal && ch == '/' : st = _TS_slcomm - case st == _TS_normal && ch == '"' : st = _TS_string - case st == _TS_normal && ch == ';' : st = _TS_accept; break loop - case st == _TS_normal && ch == '#' : st = _TS_hscomm - case st == _TS_slcomm && ch == '/' : st = _TS_nolast; break loop - case st == _TS_slcomm : st = _TS_normal - case st == _TS_hscomm && ch == '#' : st = _TS_nolast; break loop - case st == _TS_hscomm : st = _TS_normal - case st == _TS_string && ch == '"' : st = _TS_normal - case st == _TS_string && ch == '\\' : st = _TS_escape - case st == _TS_escape : st = _TS_string - } - } - - /* check for errors */ - switch st { - case _TS_accept: self.src = self.src[:i] - case _TS_nolast: self.src = self.src[:i - 1] - case _TS_string: panic(self.err(i, "string is not terminated")) - case _TS_escape: panic(self.err(i, "escape sequence is not terminated")) - } -} - -func (self *_Tokenizer) skip(check func(v rune) bool) { - for !self.eof() && check(self.ch()) { - self.pos++ - } -} - -func (self *_Tokenizer) find(pos int, check func(v rune) bool) string { - self.skip(check) - return string(self.src[pos:self.pos]) -} - -func (self *_Tokenizer) chrv(p int) _Token { - var err error - var val uint64 - - /* starting and ending position */ - p0 := p + 1 - p1 := p0 + 1 - - /* find the end of the literal */ - for p1 < len(self.src) && self.src[p1] != '\'' { - if p1++; self.src[p1 - 1] == '\\' { - p1++ - } - } - - /* empty literal */ - if p1 == p0 { - panic(self.err(p1, "empty character constant")) - } - - /* check for EOF */ - if p1 == len(self.src) { - panic(self.err(p1, "unexpected EOF when scanning literals")) - } - - /* parse the literal */ - if val, err = literal64(string(self.src[p0:p1])); err != nil { - panic(self.err(p0, "cannot parse literal: " + err.Error())) - } - - /* skip the closing '\'' */ - self.pos = p1 + 1 - return tokenInt(p, val) -} - -func (self *_Tokenizer) numv(p int) _Token { - if val, err := strconv.ParseUint(self.find(p, isnumber), 0, 64); err != nil { - panic(self.err(p, "invalid immediate value: " + err.Error())) - } else { - return tokenInt(p, val) - } -} - -func (self *_Tokenizer) defv(p int, cc rune) _Token { - if isdigit(cc) { - return self.numv(p) - } else if isident0(cc) { - return tokenName(p, self.find(p, isident)) - } else { - panic(self.err(p, "invalid char: " + strconv.QuoteRune(cc))) - } -} - -func (self *_Tokenizer) rep2(p int, pp _Punctuation, cc rune) _Token { - if self.eof() { - panic(self.err(self.pos, "unexpected EOF when scanning operators")) - } else if c := self.rch(); c != cc { - panic(self.err(p + 1, strconv.QuoteRune(cc) + " expected, got " + strconv.QuoteRune(c))) - } else { - return tokenPunc(p, pp) - } -} - -func (self *_Tokenizer) read() _Token { - var p int - var c rune - var t _Token - - /* check for EOF */ - if self.eof() { - return tokenEnd(self.pos, self.pos) - } - - /* skip spaces as needed */ - if p = self.pos; unicode.IsSpace(self.src[p]) { - self.skip(unicode.IsSpace) - return tokenSpace(p, self.pos) - } - - /* check for line comments */ - if p = self.pos; p < len(self.src) - 1 && self.src[p] == '/' && self.src[p + 1] == '/' { - self.pos = len(self.src) - return tokenEnd(p, self.pos) - } - - /* read the next character */ - p = self.pos - c = self.rch() - - /* parse the next character */ - switch c { - case '+' : t = tokenPunc(p, _P_plus) - case '-' : t = tokenPunc(p, _P_minus) - case '*' : t = tokenPunc(p, _P_star) - case '/' : t = tokenPunc(p, _P_slash) - case '%' : t = tokenPunc(p, _P_percent) - case '&' : t = tokenPunc(p, _P_amp) - case '|' : t = tokenPunc(p, _P_bar) - case '^' : t = tokenPunc(p, _P_caret) - case '<' : t = self.rep2(p, _P_shl, '<') - case '>' : t = self.rep2(p, _P_shr, '>') - case '~' : t = tokenPunc(p, _P_tilde) - case '(' : t = tokenPunc(p, _P_lbrk) - case ')' : t = tokenPunc(p, _P_rbrk) - case '.' : t = tokenPunc(p, _P_dot) - case ',' : t = tokenPunc(p, _P_comma) - case ':' : t = tokenPunc(p, _P_colon) - case '$' : t = tokenPunc(p, _P_dollar) - case '#' : t = tokenPunc(p, _P_hash) - case '\'' : t = self.chrv(p) - default : t = self.defv(p, c) - } - - /* mark the end of token */ - t.end = self.pos - return t -} - -func (self *_Tokenizer) next() (tk _Token) { - for { - if tk = self.read(); tk.tag != _T_space { - return - } - } -} - -// LabelKind indicates the type of label reference. -type LabelKind int - -// OperandKind indicates the type of the operand. -type OperandKind int - -// InstructionPrefix indicates the prefix bytes prepended to the instruction. -type InstructionPrefix byte - -const ( - // OpImm means the operand is an immediate value. - OpImm OperandKind = 1 << iota - - // OpReg means the operand is a register. - OpReg - - // OpMem means the operand is a memory address. - OpMem - - // OpLabel means the operand is a label, specifically for - // branch instructions. - OpLabel -) - -const ( - // Declaration means the label is a declaration. - Declaration LabelKind = iota + 1 - - // BranchTarget means the label should be treated as a branch target. - BranchTarget - - // RelativeAddress means the label should be treated as a reference to - // the code section (e.g. RIP-relative addressing). - RelativeAddress -) - -const ( - // PrefixLock causes the processor's LOCK# signal to be asserted during execution of - // the accompanying instruction (turns the instruction into an atomic instruction). - // In a multiprocessor environment, the LOCK# signal insures that the processor - // has exclusive use of any shared memory while the signal is asserted. - PrefixLock InstructionPrefix = iota - - // PrefixSegmentCS overrides the memory operation of this instruction to CS (Code Segment). - PrefixSegmentCS - - // PrefixSegmentDS overrides the memory operation of this instruction to DS (Data Segment), - // this is the default section for most instructions if not specified. - PrefixSegmentDS - - // PrefixSegmentES overrides the memory operation of this instruction to ES (Extra Segment). - PrefixSegmentES - - // PrefixSegmentFS overrides the memory operation of this instruction to FS. - PrefixSegmentFS - - // PrefixSegmentGS overrides the memory operation of this instruction to GS. - PrefixSegmentGS - - // PrefixSegmentSS overrides the memory operation of this instruction to SS (Stack Segment). - PrefixSegmentSS -) - -// ParsedLabel represents a label in the source, either a jump target or -// an RIP-relative addressing. -type ParsedLabel struct { - Name string - Kind LabelKind -} - -// ParsedOperand represents an operand of an instruction in the source. -type ParsedOperand struct { - Op OperandKind - Imm int64 - Reg Register - Label ParsedLabel - Memory MemoryAddress -} - -// ParsedInstruction represents an instruction in the source. -type ParsedInstruction struct { - Mnemonic string - Operands []ParsedOperand - Prefixes []InstructionPrefix -} - -func (self *ParsedInstruction) imm(v int64) { - self.Operands = append(self.Operands, ParsedOperand { - Op : OpImm, - Imm : v, - }) -} - -func (self *ParsedInstruction) reg(v Register) { - self.Operands = append(self.Operands, ParsedOperand { - Op : OpReg, - Reg : v, - }) -} - -func (self *ParsedInstruction) mem(v MemoryAddress) { - self.Operands = append(self.Operands, ParsedOperand { - Op : OpMem, - Memory : v, - }) -} - -func (self *ParsedInstruction) target(v string) { - self.Operands = append(self.Operands, ParsedOperand { - Op : OpLabel, - Label : ParsedLabel { - Name: v, - Kind: BranchTarget, - }, - }) -} - -func (self *ParsedInstruction) reference(v string) { - self.Operands = append(self.Operands, ParsedOperand { - Op : OpLabel, - Label : ParsedLabel { - Name: v, - Kind: RelativeAddress, - }, - }) -} - -// LineKind indicates the type of ParsedLine. -type LineKind int - -const ( - // LineLabel means the ParsedLine is a label. - LineLabel LineKind = iota + 1 - - // LineInstr means the ParsedLine is an instruction. - LineInstr - - // LineCommand means the ParsedLine is a ParsedCommand. - LineCommand -) - -// ParsedLine represents a parsed source line. -type ParsedLine struct { - Row int - Src []rune - Kind LineKind - Label ParsedLabel - Command ParsedCommand - Instruction ParsedInstruction -} - -// ParsedCommand represents a parsed assembly directive command. -type ParsedCommand struct { - Cmd string - Args []ParsedCommandArg -} - -// ParsedCommandArg represents an argument of a ParsedCommand. -type ParsedCommandArg struct { - Value string - IsString bool -} - -// Parser parses the source, and generates a sequence of ParsedInstruction's. -type Parser struct { - lex _Tokenizer - exp expr.Parser -} - -const ( - rip Register64 = 0xff -) - -var _RegBranch = map[string]bool { - "jmp" : true, - "jmpq" : true, - "call" : true, - "callq" : true, -} - -var _SegPrefix = map[string]InstructionPrefix { - "cs": PrefixSegmentCS, - "ds": PrefixSegmentDS, - "es": PrefixSegmentES, - "fs": PrefixSegmentFS, - "gs": PrefixSegmentGS, - "ss": PrefixSegmentSS, -} - -func (self *Parser) i32(tk _Token, v int64) int32 { - if v >= math.MinInt32 && v <= math.MaxUint32 { - return int32(v) - } else { - panic(self.err(tk.pos, fmt.Sprintf("32-bit integer out ouf range: %d", v))) - } -} - -func (self *Parser) err(pos int, msg string) *SyntaxError { - return &SyntaxError { - Pos : pos, - Row : self.lex.row, - Src : self.lex.src, - Reason : msg, - } -} - -func (self *Parser) negv() int64 { - tk := self.lex.read() - tt := tk.tag - - /* must be an integer */ - if tt != _T_int { - panic(self.err(tk.pos, "integer expected after '-'")) - } else { - return -int64(tk.u64) - } -} - -func (self *Parser) eval(p int) (r int64) { - var e error - var v *expr.Expr - - /* searching start */ - n := 1 - q := p + 1 - - /* find the end of expression */ - for n > 0 && q < len(self.lex.src) { - switch self.lex.src[q] { - case '(' : q++; n++ - case ')' : q++; n-- - default : q++ - } - } - - /* check for EOF */ - if n != 0 { - panic(self.err(q, "unexpected EOF when parsing expressions")) - } - - /* evaluate the expression */ - if v, e = self.exp.SetSource(string(self.lex.src[p:q - 1])).Parse(nil); e != nil { - panic(self.err(p, "cannot evaluate expression: " + e.Error())) - } - - /* evaluate the expression */ - if r, e = v.Evaluate(); e != nil { - panic(self.err(p, "cannot evaluate expression: " + e.Error())) - } - - /* skip the last ')' */ - v.Free() - self.lex.pos = q - return -} - -func (self *Parser) relx(tk _Token) { - if tk.tag != _T_punc || tk.punc() != _P_lbrk { - panic(self.err(tk.pos, "'(' expected for RIP-relative addressing")) - } else if tk = self.lex.next(); self.regx(tk) != rip { - panic(self.err(tk.pos, "RIP-relative addressing expects %rip as the base register")) - } else if tk = self.lex.next(); tk.tag != _T_punc || tk.punc() != _P_rbrk { - panic(self.err(tk.pos, "RIP-relative addressing does not support indexing or scaling")) - } -} - -func (self *Parser) immx(tk _Token) int64 { - if tk.tag != _T_punc || tk.punc() != _P_dollar { - panic(self.err(tk.pos, "'$' expected for registers")) - } else if tk = self.lex.read(); tk.tag == _T_int { - return int64(tk.u64) - } else if tk.tag == _T_punc && tk.punc() == _P_lbrk { - return self.eval(self.lex.pos) - } else if tk.tag == _T_punc && tk.punc() == _P_minus { - return self.negv() - } else { - panic(self.err(tk.pos, "immediate value expected")) - } -} - -func (self *Parser) regx(tk _Token) Register { - if tk.tag != _T_punc || tk.punc() != _P_percent { - panic(self.err(tk.pos, "'%' expected for registers")) - } else if tk = self.lex.read(); tk.tag != _T_name { - panic(self.err(tk.pos, "register name expected")) - } else if tk.str == "rip" { - return rip - } else if reg, ok := Registers[tk.str]; ok { - return reg - } else { - panic(self.err(tk.pos, "invalid register name: " + strconv.Quote(tk.str))) - } -} - -func (self *Parser) regv(tk _Token) Register { - if reg := self.regx(tk); reg == rip { - panic(self.err(tk.pos, "%rip is not accessable as a dedicated register")) - } else { - return reg - } -} - -func (self *Parser) disp(vv int32) MemoryAddress { - switch tk := self.lex.next(); tk.tag { - case _T_end : return MemoryAddress { Displacement: vv } - case _T_punc : return self.relm(tk, vv) - default : panic(self.err(tk.pos, "',' or '(' expected")) - } -} - -func (self *Parser) relm(tv _Token, disp int32) MemoryAddress { - var tk _Token - var tt _TokenKind - - /* check for absolute addressing */ - if tv.punc() == _P_comma { - self.lex.pos-- - return MemoryAddress { Displacement: disp } - } - - /* must be '(' now */ - if tv.punc() != _P_lbrk { - panic(self.err(tv.pos, "',' or '(' expected")) - } - - /* read the next token */ - tk = self.lex.next() - tt = tk.tag - - /* must be a punctuation */ - if tt != _T_punc { - panic(self.err(tk.pos, "'%' or ',' expected")) - } - - /* check for base */ - switch tk.punc() { - case _P_percent : return self.base(tk, disp) - case _P_comma : return self.index(nil, disp) - default : panic(self.err(tk.pos, "'%' or ',' expected")) - } -} - -func (self *Parser) base(tk _Token, disp int32) MemoryAddress { - rr := self.regx(tk) - nk := self.lex.next() - - /* check for register indirection or base-index addressing */ - if !isReg64(rr) { - panic(self.err(tk.pos, "not a valid base register")) - } else if nk.tag != _T_punc { - panic(self.err(nk.pos, "',' or ')' expected")) - } else if nk.punc() == _P_comma { - return self.index(rr, disp) - } else if nk.punc() == _P_rbrk { - return MemoryAddress { Base: rr, Displacement: disp } - } else { - panic(self.err(nk.pos, "',' or ')' expected")) - } -} - -func (self *Parser) index(base Register, disp int32) MemoryAddress { - tk := self.lex.next() - rr := self.regx(tk) - nk := self.lex.next() - - /* check for scaled indexing */ - if base == rip { - panic(self.err(tk.pos, "RIP-relative addressing does not support indexing or scaling")) - } else if !isIndexable(rr) { - panic(self.err(tk.pos, "not a valid index register")) - } else if nk.tag != _T_punc { - panic(self.err(nk.pos, "',' or ')' expected")) - } else if nk.punc() == _P_comma { - return self.scale(base, rr, disp) - } else if nk.punc() == _P_rbrk { - return MemoryAddress { Base: base, Index: rr, Scale: 1, Displacement: disp } - } else { - panic(self.err(nk.pos, "',' or ')' expected")) - } -} - -func (self *Parser) scale(base Register, index Register, disp int32) MemoryAddress { - tk := self.lex.next() - tt := tk.tag - tv := tk.u64 - - /* must be an integer */ - if tt != _T_int { - panic(self.err(tk.pos, "integer expected")) - } - - /* scale can only be 1, 2, 4 or 8 */ - if tv == 0 || (_Scales & (1 << tv)) == 0 { - panic(self.err(tk.pos, "scale can only be 1, 2, 4 or 8")) - } - - /* read next token */ - tk = self.lex.next() - tt = tk.tag - - /* check for the closing ')' */ - if tt != _T_punc || tk.punc() != _P_rbrk { - panic(self.err(tk.pos, "')' expected")) - } - - /* construct the memory address */ - return MemoryAddress { - Base : base, - Index : index, - Scale : uint8(tv), - Displacement : disp, - } -} - -func (self *Parser) cmds() *ParsedLine { - cmd := "" - pos := self.lex.pos - buf := []ParsedCommandArg(nil) - - /* find the end of command */ - for p := pos; pos < len(self.lex.src); pos++ { - if unicode.IsSpace(self.lex.src[pos]) { - cmd = string(self.lex.src[p:pos]) - break - } - } - - /* parse the arguments */ - loop: for { - switch self.next(&pos) { - case 0 : break loop - case '#' : break loop - case '"' : pos = self.strings(&buf, pos) - default : pos = self.expressions(&buf, pos) - } - } - - /* construct the line */ - return &ParsedLine { - Row : self.lex.row, - Src : self.lex.src, - Kind : LineCommand, - Command : ParsedCommand { - Cmd : cmd, - Args : buf, - }, - } -} - -func (self *Parser) feed(line string) *ParsedLine { - ff := true - rr := false - lk := false - - /* reset the lexer */ - self.lex.row++ - self.lex.init(line) - - /* parse the first token */ - tk := self.lex.next() - tt := tk.tag - - /* it is a directive if it starts with a dot */ - if tk.tag == _T_punc && tk.punc() == _P_dot { - return self.cmds() - } - - /* otherwise it could be labels or instructions */ - if tt != _T_name { - panic(self.err(tk.pos, "identifier expected")) - } - - /* peek the next token */ - lex := self.lex - tkx := lex.next() - - /* check for labels */ - if tkx.tag == _T_punc && tkx.punc() == _P_colon { - tkx = lex.next() - ttx := tkx.tag - - /* the line must end here */ - if ttx != _T_end { - panic(self.err(tkx.pos, "garbage after label definition")) - } - - /* construct the label */ - return &ParsedLine { - Row : self.lex.row, - Src : self.lex.src, - Kind : LineLabel, - Label : ParsedLabel { - Kind: Declaration, - Name: tk.str, - }, - } - } - - /* special case for the "lock" prefix */ - if tk.tag == _T_name && strings.ToLower(tk.str) == "lock" { - lk = true - tk = self.lex.next() - - /* must be an instruction */ - if tk.tag != _T_name { - panic(self.err(tk.pos, "identifier expected")) - } - } - - /* set the line kind and mnemonic */ - ret := &ParsedLine { - Row : self.lex.row, - Src : self.lex.src, - Kind : LineInstr, - Instruction : ParsedInstruction { Mnemonic: strings.ToLower(tk.str) }, - } - - /* check for LOCK prefix */ - if lk { - ret.Instruction.Prefixes = append(ret.Instruction.Prefixes, PrefixLock) - } - - /* parse all the operands */ - for { - tk = self.lex.next() - tt = tk.tag - - /* check for end of line */ - if tt == _T_end { - break - } - - /* expect a comma if not the first operand */ - if !ff { - if tt == _T_punc && tk.punc() == _P_comma { - tk = self.lex.next() - } else { - panic(self.err(tk.pos, "',' expected")) - } - } - - /* not the first operand anymore */ - ff = false - tt = tk.tag - - /* encountered an integer, must be a SIB memory address */ - if tt == _T_int { - ret.Instruction.mem(self.disp(self.i32(tk, int64(tk.u64)))) - continue - } - - /* encountered an identifier, maybe an expression or a jump target, or a segment override prefix */ - if tt == _T_name { - ts := tk.str - tp := self.lex.pos - - /* if the next token is EOF or a comma, it's a jumpt target */ - if tk = self.lex.next(); tk.tag == _T_end || (tk.tag == _T_punc && tk.punc() == _P_comma) { - self.lex.pos = tp - ret.Instruction.target(ts) - continue - } - - /* if it is a colon, it's a segment override prefix, otherwise it must be an RIP-relative addressing operand */ - if tk.tag != _T_punc || tk.punc() != _P_colon { - self.relx(tk) - ret.Instruction.reference(ts) - continue - } - - /* lookup segment prefixes */ - if p, ok := _SegPrefix[strings.ToLower(ts)]; !ok { - panic(self.err(tk.pos, "invalid segment name")) - } else { - ret.Instruction.Prefixes = append(ret.Instruction.Prefixes, p) - } - - /* read the next token */ - tk = self.lex.next() - tt = tk.tag - - /* encountered an integer, must be a SIB memory address */ - if tt == _T_int { - ret.Instruction.mem(self.disp(self.i32(tk, int64(tk.u64)))) - continue - } - } - - /* certain instructions may have a "*" before operands */ - if tt == _T_punc && tk.punc() == _P_star { - tk = self.lex.next() - tt = tk.tag - rr = true - } - - /* ... otherwise it must be a punctuation */ - if tt != _T_punc { - panic(self.err(tk.pos, "'$', '%', '-' or '(' expected")) - } - - /* check the operator */ - switch tk.punc() { - case _P_lbrk : break - case _P_minus : ret.Instruction.mem(self.disp(self.i32(tk, self.negv()))) ; continue - case _P_dollar : ret.Instruction.imm(self.immx(tk)) ; continue - case _P_percent : ret.Instruction.reg(self.regv(tk)) ; continue - default : panic(self.err(tk.pos, "'$', '%', '-' or '(' expected")) - } - - /* special case of '(', might be either `(expr)(SIB)` or just `(SIB)` - * read one more token to confirm */ - tk = self.lex.next() - tt = tk.tag - - /* the next token is '%', it's a memory address, - * or ',' if it's a memory address without base, - * otherwise it must be in `(expr)(SIB)` form */ - if tk.tag == _T_punc && tk.punc() == _P_percent { - ret.Instruction.mem(self.base(tk, 0)) - } else if tk.tag == _T_punc && tk.punc() == _P_comma { - ret.Instruction.mem(self.index(nil, 0)) - } else { - ret.Instruction.mem(self.disp(self.i32(tk, self.eval(tk.pos)))) - } - } - - /* check "jmp" and "call" instructions */ - if !_RegBranch[ret.Instruction.Mnemonic] { - return ret - } else if len(ret.Instruction.Operands) != 1 { - panic(self.err(tk.pos, fmt.Sprintf(`"%s" requires exact 1 argument`, ret.Instruction.Mnemonic))) - } else if !rr && ret.Instruction.Operands[0].Op != OpReg && ret.Instruction.Operands[0].Op != OpLabel { - panic(self.err(tk.pos, fmt.Sprintf(`invalid operand for "%s" instruction`, ret.Instruction.Mnemonic))) - } else { - return ret - } -} - -func (self *Parser) next(p *int) rune { - for { - if *p >= len(self.lex.src) { - return 0 - } else if cc := self.lex.src[*p]; !unicode.IsSpace(cc) { - return cc - } else { - *p++ - } - } -} - -func (self *Parser) delim(p int) int { - if cc := self.next(&p); cc == 0 { - return p - } else if cc == ',' { - return p + 1 - } else { - panic(self.err(p, "',' expected")) - } -} - -func (self *Parser) strings(argv *[]ParsedCommandArg, p int) int { - var i int - var e error - var v string - - /* find the end of string */ - for i = p + 1; i < len(self.lex.src) && self.lex.src[i] != '"'; i++ { - if self.lex.src[i] == '\\' { - i++ - } - } - - /* check for EOF */ - if i == len(self.lex.src) { - panic(self.err(i, "unexpected EOF when scanning strings")) - } - - /* unquote the string */ - if v, e = strconv.Unquote(string(self.lex.src[p:i + 1])); e != nil { - panic(self.err(p, "invalid string: " + e.Error())) - } - - /* add the argument to buffer */ - *argv = append(*argv, ParsedCommandArg { Value: v, IsString: true }) - return self.delim(i + 1) -} - -func (self *Parser) directives(line string) { - self.lex.row++ - self.lex.init(line) - - /* parse the first token */ - tk := self.lex.next() - tt := tk.tag - - /* check for EOF */ - if tt == _T_end { - return - } - - /* must be a directive */ - if tt != _T_punc || tk.punc() != _P_hash { - panic(self.err(tk.pos, "'#' expected")) - } - - /* parse the line number */ - tk = self.lex.next() - tt = tk.tag - - /* must be a line number, if it is, set the row number, and ignore the rest of the line */ - if tt != _T_int { - panic(self.err(tk.pos, "line number expected")) - } else { - self.lex.row = int(tk.u64) - 1 - } -} - -func (self *Parser) expressions(argv *[]ParsedCommandArg, p int) int { - var i int - var n int - var s int - - /* scan until the first standalone ',' or EOF */ - loop: for i = p; i < len(self.lex.src); i++ { - switch self.lex.src[i] { - case ',' : if s == 0 { if n == 0 { break loop } } - case ']', '}', '>' : if s == 0 { if n == 0 { break loop } else { n-- } } - case '[', '{', '<' : if s == 0 { n++ } - case '\\' : if s != 0 { i++ } - case '\'' : if s != 2 { s ^= 1 } - case '"' : if s != 1 { s ^= 2 } - } - } - - /* check for EOF in strings */ - if s != 0 { - panic(self.err(i, "unexpected EOF when scanning strings")) - } - - /* check for bracket matching */ - if n != 0 { - panic(self.err(i, "unbalanced '{' or '[' or '<'")) - } - - /* add the argument to buffer */ - *argv = append(*argv, ParsedCommandArg { Value: string(self.lex.src[p:i]) }) - return self.delim(i) -} - -// Feed feeds the parser with one more line, and the parser -// parses it into a ParsedLine. -// -// NOTE: Feed does not handle empty lines or multiple lines, -// it panics when this happens. Use Parse to parse multiple -// lines of assembly source. -// -func (self *Parser) Feed(src string) (ret *ParsedLine, err error) { - var ok bool - var ss string - var vv interface{} - - /* check for multiple lines */ - if strings.ContainsRune(src, '\n') { - return nil, errors.New("passing multiple lines to Feed()") - } - - /* check for blank lines */ - if ss = strings.TrimSpace(src); ss == "" || ss[0] == '#' || strings.HasPrefix(ss, "//") { - return nil, errors.New("blank line or line with only comments or line-marks") - } - - /* setup error handler */ - defer func() { - if vv = recover(); vv != nil { - if err, ok = vv.(*SyntaxError); !ok { - panic(vv) - } - } - }() - - /* call the actual parser */ - ret = self.feed(src) - return -} - -// Parse parses the entire assembly source (possibly multiple lines) into -// a sequence of *ParsedLine. -func (self *Parser) Parse(src string) (ret []*ParsedLine, err error) { - var ok bool - var ss string - var vv interface{} - - /* setup error handler */ - defer func() { - if vv = recover(); vv != nil { - if err, ok = vv.(*SyntaxError); !ok { - panic(vv) - } - } - }() - - /* feed every line */ - for _, line := range strings.Split(src, "\n") { - if ss = strings.TrimSpace(line); ss == "" || strings.HasPrefix(ss, "//") { - self.lex.row++ - } else if ss[0] == '#' { - self.directives(line) - } else { - ret = append(ret, self.feed(line)) - } - } - - /* all done */ - err = nil - return -} - -// Directive handles the directive. -func (self *Parser) Directive(line string) (err error) { - var ok bool - var ss string - var vv interface{} - - /* check for directives */ - if ss = strings.TrimSpace(line); ss == "" || ss[0] != '#' { - return errors.New("not a directive") - } - - /* setup error handler */ - defer func() { - if vv = recover(); vv != nil { - if err, ok = vv.(*SyntaxError); !ok { - panic(vv) - } - } - }() - - /* call the directive parser */ - self.directives(line) - return -} - -type _TermRepo struct { - terms map[string]expr.Term -} - -func (self *_TermRepo) Get(name string) (expr.Term, error) { - if ret, ok := self.terms[name]; ok { - return ret, nil - } else { - return nil, errors.New("undefined name: " + name) - } -} - -func (self *_TermRepo) label(name string) (*Label, error) { - var ok bool - var lb *Label - var tr expr.Term - - /* check for existing terms */ - if tr, ok = self.terms[name]; ok { - if lb, ok = tr.(*Label); ok { - return lb, nil - } else { - return nil, errors.New("name is not a label: " + name) - } - } - - /* create a new one as needed */ - lb = new(Label) - lb.Name = name - - /* create the map if needed */ - if self.terms == nil { - self.terms = make(map[string]expr.Term, 1) - } - - /* register the label */ - self.terms[name] = lb - return lb, nil -} - -func (self *_TermRepo) define(name string, term expr.Term) { - var ok bool - var tr expr.Term - - /* create the map if needed */ - if self.terms == nil { - self.terms = make(map[string]expr.Term, 1) - } - - /* check for existing terms */ - if tr, ok = self.terms[name]; !ok { - self.terms[name] = term - } else if _, ok = tr.(*Label); !ok { - self.terms[name] = term - } else { - panic("conflicting term types: " + name) - } -} - -// _Command describes an assembler command. -// -// The _Command.args describes both the arity and argument type with characters, -// the length is the number of arguments, the character itself represents the -// argument type. -// -// Possible values are: -// -// s This argument should be a string -// e This argument should be an expression -// ? The next argument is optional, and must be the last argument. -// -type _Command struct { - args string - handler func(*Assembler, *Program, []ParsedCommandArg) error -} - -// Options controls the behavior of Assembler. -type Options struct { - // InstructionAliasing specifies whether to enable instruction aliasing. - // Set to true enables instruction aliasing, and the Assembler will try harder to find instructions. - InstructionAliasing bool - - // IgnoreUnknownDirectives specifies whether to report errors when encountered unknown directives. - // Set to true ignores all unknwon directives silently, useful for parsing generated assembly. - IgnoreUnknownDirectives bool -} - -// Assembler assembles the entire assembly program and generates the corresponding -// machine code representations. -type Assembler struct { - cc int - ps Parser - pc uintptr - buf []byte - main string - opts Options - repo _TermRepo - expr expr.Parser - line *ParsedLine -} - -var asmCommands = map[string]_Command { - "org" : { "e" , (*Assembler).assembleCommandOrg }, - "set" : { "ee" , (*Assembler).assembleCommandSet }, - "byte" : { "e" , (*Assembler).assembleCommandByte }, - "word" : { "e" , (*Assembler).assembleCommandWord }, - "long" : { "e" , (*Assembler).assembleCommandLong }, - "quad" : { "e" , (*Assembler).assembleCommandQuad }, - "fill" : { "e?e" , (*Assembler).assembleCommandFill }, - "space" : { "e?e" , (*Assembler).assembleCommandFill }, - "align" : { "e?e" , (*Assembler).assembleCommandAlign }, - "entry" : { "e" , (*Assembler).assembleCommandEntry }, - "ascii" : { "s" , (*Assembler).assembleCommandAscii }, - "asciz" : { "s" , (*Assembler).assembleCommandAsciz }, - "p2align" : { "e?e" , (*Assembler).assembleCommandP2Align }, -} - -func (self *Assembler) err(msg string) *SyntaxError { - return &SyntaxError { - Pos : -1, - Row : self.line.Row, - Src : self.line.Src, - Reason : msg, - } -} - -func (self *Assembler) eval(expr string) (int64, error) { - if exp, err := self.expr.SetSource(expr).Parse(nil); err != nil { - return 0, err - } else { - return exp.Evaluate() - } -} - -func (self *Assembler) checkArgs(i int, n int, v *ParsedCommand, isString bool) error { - if i >= len(v.Args) { - return self.err(fmt.Sprintf("command %s takes exact %d arguments", strconv.Quote(v.Cmd), n)) - } else if isString && !v.Args[i].IsString { - return self.err(fmt.Sprintf("argument %d of command %s must be a string", i + 1, strconv.Quote(v.Cmd))) - } else if !isString && v.Args[i].IsString { - return self.err(fmt.Sprintf("argument %d of command %s must be an expression", i + 1, strconv.Quote(v.Cmd))) - } else { - return nil - } -} - -func (self *Assembler) assembleLabel(p *Program, lb *ParsedLabel) error { - if v, err := self.repo.label(lb.Name); err != nil { - return err - } else { - p.Link(v) - return nil - } -} - -func (self *Assembler) assembleInstr(p *Program, line *ParsedInstruction) (err error) { - var ok bool - var pfx []byte - var ops []interface{} - var enc _InstructionEncoder - - /* convert to lower-case */ - opts := self.opts - name := strings.ToLower(line.Mnemonic) - - /* fix register-addressing branches if needed */ - if opts.InstructionAliasing && len(line.Operands) == 1 { - switch { - case name == "retq" : name = "ret" - case name == "movabsq" : name = "movq" - case name == "jmp" && line.Operands[0].Op != OpLabel : name = "jmpq" - case name == "jmpq" && line.Operands[0].Op == OpLabel : name = "jmp" - case name == "call" && line.Operands[0].Op != OpLabel : name = "callq" - case name == "callq" && line.Operands[0].Op == OpLabel : name = "call" - } - } - - /* lookup from the alias table if needed */ - if opts.InstructionAliasing { - enc, ok = _InstructionAliases[name] - } - - /* lookup from the instruction table */ - if !ok { - enc, ok = Instructions[name] - } - - /* remove size suffix if possible */ - if !ok && opts.InstructionAliasing { - switch i := len(name) - 1; name[i] { - case 'b', 'w', 'l', 'q': { - enc, ok = Instructions[name[:i]] - } - } - } - - /* check for instruction name */ - if !ok { - return self.err("no such instruction: " + strconv.Quote(name)) - } - - /* allocate memory for prefix if any */ - if len(line.Prefixes) != 0 { - pfx = make([]byte, len(line.Prefixes)) - } - - /* convert the prefixes */ - for i, v := range line.Prefixes { - switch v { - case PrefixLock : pfx[i] = _P_lock - case PrefixSegmentCS : pfx[i] = _P_cs - case PrefixSegmentDS : pfx[i] = _P_ds - case PrefixSegmentES : pfx[i] = _P_es - case PrefixSegmentFS : pfx[i] = _P_fs - case PrefixSegmentGS : pfx[i] = _P_gs - case PrefixSegmentSS : pfx[i] = _P_ss - default : panic("unreachable: invalid segment prefix") - } - } - - /* convert the operands */ - for _, op := range line.Operands { - switch op.Op { - case OpImm : ops = append(ops, op.Imm) - case OpReg : ops = append(ops, op.Reg) - case OpMem : self.assembleInstrMem(&ops, op.Memory) - case OpLabel : self.assembleInstrLabel(&ops, op.Label) - default : panic("parser yields an invalid operand kind") - } - } - - /* catch any exceptions in the encoder */ - defer func() { - if v := recover(); v != nil { - err = self.err(fmt.Sprint(v)) - } - }() - - /* encode the instruction */ - enc(p, ops...).prefix = pfx - return nil -} - -func (self *Assembler) assembleInstrMem(ops *[]interface{}, addr MemoryAddress) { - mem := new(MemoryOperand) - *ops = append(*ops, mem) - - /* check for RIP-relative addressing */ - if addr.Base != rip { - mem.Addr.Type = Memory - mem.Addr.Memory = addr - } else { - mem.Addr.Type = Offset - mem.Addr.Offset = RelativeOffset(addr.Displacement) - } -} - -func (self *Assembler) assembleInstrLabel(ops *[]interface{}, label ParsedLabel) { - vk := label.Kind - tr, err := self.repo.label(label.Name) - - /* check for errors */ - if err != nil { - panic(err) - } - - /* check for branch target */ - if vk == BranchTarget { - *ops = append(*ops, tr) - return - } - - /* add to ops */ - *ops = append(*ops, &MemoryOperand { - Addr: Addressable { - Type : Reference, - Reference : tr, - }, - }) -} - -func (self *Assembler) assembleCommand(p *Program, line *ParsedCommand) error { - var iv int - var cc rune - var ok bool - var va bool - var fn _Command - - /* find the command */ - if fn, ok = asmCommands[line.Cmd]; !ok { - if self.opts.IgnoreUnknownDirectives { - return nil - } else { - return self.err("no such command: " + strconv.Quote(line.Cmd)) - } - } - - /* expected & real argument count */ - argx := len(fn.args) - argc := len(line.Args) - - /* check the arguments */ - loop: for iv, cc = range fn.args { - switch cc { - case '?' : va = true; break loop - case 's' : if err := self.checkArgs(iv, argx, line, true) ; err != nil { return err } - case 'e' : if err := self.checkArgs(iv, argx, line, false) ; err != nil { return err } - default : panic("invalid argument descriptor: " + strconv.Quote(fn.args)) - } - } - - /* simple case: non-variadic command */ - if !va { - if argc == argx { - return fn.handler(self, p, line.Args) - } else { - return self.err(fmt.Sprintf("command %s takes exact %d arguments", strconv.Quote(line.Cmd), argx)) - } - } - - /* check for the descriptor */ - if iv != argx - 2 { - panic("invalid argument descriptor: " + strconv.Quote(fn.args)) - } - - /* variadic command and the final optional argument is set */ - if argc == argx - 1 { - switch fn.args[argx - 1] { - case 's' : if err := self.checkArgs(iv, -1, line, true) ; err != nil { return err } - case 'e' : if err := self.checkArgs(iv, -1, line, false) ; err != nil { return err } - default : panic("invalid argument descriptor: " + strconv.Quote(fn.args)) - } - } - - /* check argument count */ - if argc == argx - 1 || argc == argx - 2 { - return fn.handler(self, p, line.Args) - } else { - return self.err(fmt.Sprintf("command %s takes %d or %d arguments", strconv.Quote(line.Cmd), argx - 2, argx - 1)) - } -} - -func (self *Assembler) assembleCommandInt(p *Program, argv []ParsedCommandArg, addfn func(*Program, *expr.Expr) *Instruction) error { - var err error - var val *expr.Expr - - /* parse the expression */ - if val, err = self.expr.SetSource(argv[0].Value).Parse(&self.repo); err != nil { - return err - } - - /* add to the program */ - addfn(p, val) - return nil -} - -func (self *Assembler) assembleCommandOrg(_ *Program, argv []ParsedCommandArg) error { - var err error - var val int64 - - /* evaluate the expression */ - if val, err = self.eval(argv[0].Value); err != nil { - return err - } - - /* check for origin */ - if val < 0 { - return self.err(fmt.Sprintf("negative origin: %d", val)) - } - - /* ".org" must be the first command if any */ - if self.cc != 1 { - return self.err(".org must be the first command if present") - } - - /* set the initial program counter */ - self.pc = uintptr(val) - return nil -} - -func (self *Assembler) assembleCommandSet(_ *Program, argv []ParsedCommandArg) error { - var err error - var val *expr.Expr - - /* parse the expression */ - if val, err = self.expr.SetSource(argv[1].Value).Parse(&self.repo); err != nil { - return err - } - - /* define the new identifier */ - self.repo.define(argv[0].Value, val) - return nil -} - -func (self *Assembler) assembleCommandByte(p *Program, argv []ParsedCommandArg) error { - return self.assembleCommandInt(p, argv, (*Program).Byte) -} - -func (self *Assembler) assembleCommandWord(p *Program, argv []ParsedCommandArg) error { - return self.assembleCommandInt(p, argv, (*Program).Word) -} - -func (self *Assembler) assembleCommandLong(p *Program, argv []ParsedCommandArg) error { - return self.assembleCommandInt(p, argv, (*Program).Long) -} - -func (self *Assembler) assembleCommandQuad(p *Program, argv []ParsedCommandArg) error { - return self.assembleCommandInt(p, argv, (*Program).Quad) -} - -func (self *Assembler) assembleCommandFill(p *Program, argv []ParsedCommandArg) error { - var fv byte - var nb int64 - var ex error - - /* evaluate the size */ - if nb, ex = self.eval(argv[0].Value); ex != nil { - return ex - } - - /* check for filling size */ - if nb < 0 { - return self.err(fmt.Sprintf("negative filling size: %d", nb)) - } - - /* check for optional filling value */ - if len(argv) == 2 { - if val, err := self.eval(argv[1].Value); err != nil { - return err - } else if val < math.MinInt8 || val > math.MaxUint8 { - return self.err(fmt.Sprintf("value %d cannot be represented with a byte", val)) - } else { - fv = byte(val) - } - } - - /* fill with specified byte */ - p.Data(bytes.Repeat([]byte { fv }, int(nb))) - return nil -} - -func (self *Assembler) assembleCommandAlign(p *Program, argv []ParsedCommandArg) error { - var nb int64 - var ex error - var fv *expr.Expr - - /* evaluate the size */ - if nb, ex = self.eval(argv[0].Value); ex != nil { - return ex - } - - /* check for alignment value */ - if nb <= 0 { - return self.err(fmt.Sprintf("zero or negative alignment: %d", nb)) - } - - /* alignment must be a power of 2 */ - if (nb & (nb - 1)) != 0 { - return self.err(fmt.Sprintf("alignment must be a power of 2: %d", nb)) - } - - /* check for optional filling value */ - if len(argv) == 2 { - if v, err := self.expr.SetSource(argv[1].Value).Parse(&self.repo); err == nil { - fv = v - } else { - return err - } - } - - /* fill with specified byte, default to 0 if not specified */ - p.Align(uint64(nb), fv) - return nil -} - -func (self *Assembler) assembleCommandEntry(_ *Program, argv []ParsedCommandArg) error { - name := argv[0].Value - rbuf := []rune(name) - - /* check all the characters */ - for i, cc := range rbuf { - if !isident0(cc) && (i == 0 || !isident(cc)) { - return self.err("entry point must be a label name") - } - } - - /* set the main entry point */ - self.main = name - return nil -} - -func (self *Assembler) assembleCommandAscii(p *Program, argv []ParsedCommandArg) error { - p.Data([]byte(argv[0].Value)) - return nil -} - -func (self *Assembler) assembleCommandAsciz(p *Program, argv []ParsedCommandArg) error { - p.Data(append([]byte(argv[0].Value), 0)) - return nil -} - -func (self *Assembler) assembleCommandP2Align(p *Program, argv []ParsedCommandArg) error { - var nb int64 - var ex error - var fv *expr.Expr - - /* evaluate the size */ - if nb, ex = self.eval(argv[0].Value); ex != nil { - return ex - } - - /* check for alignment value */ - if nb <= 0 { - return self.err(fmt.Sprintf("zero or negative alignment: %d", nb)) - } - - /* check for optional filling value */ - if len(argv) == 2 { - if v, err := self.expr.SetSource(argv[1].Value).Parse(&self.repo); err == nil { - fv = v - } else { - return err - } - } - - /* fill with specified byte, default to 0 if not specified */ - p.Align(1 << nb, fv) - return nil -} - -// Base returns the origin. -func (self *Assembler) Base() uintptr { - return self.pc -} - -// Code returns the assembled machine code. -func (self *Assembler) Code() []byte { - return self.buf -} - -// Entry returns the address of the specified entry point, or the origin if not specified. -func (self *Assembler) Entry() uintptr { - if self.main == "" { - return self.pc - } else if tr, err := self.repo.Get(self.main); err != nil { - panic(err) - } else if val, err := tr.Evaluate(); err != nil { - panic(err) - } else { - return uintptr(val) - } -} - -// Options returns the internal options reference, changing it WILL affect this Assembler instance. -func (self *Assembler) Options() *Options { - return &self.opts -} - -// WithBase resets the origin to pc. -func (self *Assembler) WithBase(pc uintptr) *Assembler { - self.pc = pc - return self -} - -// Assemble assembles the assembly source and save the machine code to internal buffer. -func (self *Assembler) Assemble(src string) error { - var err error - var buf []*ParsedLine - - /* parse the source */ - if buf, err = self.ps.Parse(src); err != nil { - return err - } - - /* create a new program */ - p := DefaultArch.CreateProgram() - defer p.Free() - - /* process every line */ - for _, self.line = range buf { - switch self.cc++; self.line.Kind { - case LineLabel : if err = self.assembleLabel (p, &self.line.Label) ; err != nil { return err } - case LineInstr : if err = self.assembleInstr (p, &self.line.Instruction) ; err != nil { return err } - case LineCommand : if err = self.assembleCommand (p, &self.line.Command) ; err != nil { return err } - default : panic("parser yields an invalid line kind") - } - } - - /* assemble the program */ - self.buf = p.Assemble(self.pc) - return nil -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go deleted file mode 100644 index 23a7cd1b9..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/assembler_alias.go +++ /dev/null @@ -1,33 +0,0 @@ -package x86_64 - -func alias_INT3(p *Program, vv ...interface{}) *Instruction { - if len(vv) == 0 { - return p.INT(3) - } else { - panic("instruction INT3 takes no operands") - } -} - -func alias_VCMPEQPS(p *Program, vv ...interface{}) *Instruction { - if len(vv) >= 3 { - return p.VCMPPS(0x00, vv[0], vv[1], vv[2], vv[3:]...) - } else { - panic("instruction VCMPEQPS takes 3 or 4 operands") - } -} - -func alias_VCMPTRUEPS(p *Program, vv ...interface{}) *Instruction { - if len(vv) >= 3 { - return p.VCMPPS(0x0f, vv[0], vv[1], vv[2], vv[3:]...) - } else { - panic("instruction VCMPTRUEPS takes 3 or 4 operands") - } -} - -var _InstructionAliases = map[string]_InstructionEncoder { - "int3" : alias_INT3, - "retq" : Instructions["ret"], - "movabsq" : Instructions["movq"], - "vcmpeqps" : alias_VCMPEQPS, - "vcmptrueps" : alias_VCMPTRUEPS, -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go deleted file mode 100644 index b5607e8f9..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/eface.go +++ /dev/null @@ -1,63 +0,0 @@ -package x86_64 - -import ( - `reflect` - `unsafe` -) - -type _GoType struct { - size uintptr - pdata uintptr - hash uint32 - flags uint8 - align uint8 - falign uint8 - kflags uint8 - traits unsafe.Pointer - gcdata *byte - str int32 - ptrx int32 -} - -const ( - _KindMask = (1 << 5) - 1 -) - -func (self *_GoType) kind() reflect.Kind { - return reflect.Kind(self.kflags & _KindMask) -} - -type _GoSlice struct { - ptr unsafe.Pointer - len int - cap int -} - -type _GoEface struct { - vt *_GoType - ptr unsafe.Pointer -} - -func (self *_GoEface) kind() reflect.Kind { - if self.vt != nil { - return self.vt.kind() - } else { - return reflect.Invalid - } -} - -func (self *_GoEface) toInt64() int64 { - if self.vt.size == 8 { - return *(*int64)(self.ptr) - } else if self.vt.size == 4 { - return int64(*(*int32)(self.ptr)) - } else if self.vt.size == 2 { - return int64(*(*int16)(self.ptr)) - } else { - return int64(*(*int8)(self.ptr)) - } -} - -func efaceOf(v interface{}) _GoEface { - return *(*_GoEface)(unsafe.Pointer(&v)) -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go deleted file mode 100644 index c8fac785d..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/encodings.go +++ /dev/null @@ -1,675 +0,0 @@ -package x86_64 - -import ( - `encoding/binary` - `math` -) - -/** Operand Encoding Helpers **/ - -func imml(v interface{}) byte { - return byte(toImmAny(v) & 0x0f) -} - -func relv(v interface{}) int64 { - switch r := v.(type) { - case *Label : return 0 - case RelativeOffset : return int64(r) - default : panic("invalid relative offset") - } -} - -func addr(v interface{}) interface{} { - switch a := v.(*MemoryOperand).Addr; a.Type { - case Memory : return a.Memory - case Offset : return a.Offset - case Reference : return a.Reference - default : panic("invalid memory operand type") - } -} - -func bcode(v interface{}) byte { - if m, ok := v.(*MemoryOperand); !ok { - panic("v is not a memory operand") - } else if m.Broadcast == 0 { - return 0 - } else { - return 1 - } -} - -func vcode(v interface{}) byte { - switch r := v.(type) { - case XMMRegister : return byte(r) - case YMMRegister : return byte(r) - case ZMMRegister : return byte(r) - case MaskedRegister : return vcode(r.Reg) - default : panic("v is not a vector register") - } -} - -func kcode(v interface{}) byte { - switch r := v.(type) { - case KRegister : return byte(r) - case XMMRegister : return 0 - case YMMRegister : return 0 - case ZMMRegister : return 0 - case RegisterMask : return byte(r.K) - case MaskedRegister : return byte(r.Mask.K) - case *MemoryOperand : return toKcodeMem(r) - default : panic("v is not a maskable operand") - } -} - -func zcode(v interface{}) byte { - switch r := v.(type) { - case KRegister : return 0 - case XMMRegister : return 0 - case YMMRegister : return 0 - case ZMMRegister : return 0 - case RegisterMask : return toZcodeRegM(r) - case MaskedRegister : return toZcodeRegM(r.Mask) - case *MemoryOperand : return toZcodeMem(r) - default : panic("v is not a maskable operand") - } -} - -func lcode(v interface{}) byte { - switch r := v.(type) { - case Register8 : return byte(r & 0x07) - case Register16 : return byte(r & 0x07) - case Register32 : return byte(r & 0x07) - case Register64 : return byte(r & 0x07) - case KRegister : return byte(r & 0x07) - case MMRegister : return byte(r & 0x07) - case XMMRegister : return byte(r & 0x07) - case YMMRegister : return byte(r & 0x07) - case ZMMRegister : return byte(r & 0x07) - case MaskedRegister : return lcode(r.Reg) - default : panic("v is not a register") - } -} - -func hcode(v interface{}) byte { - switch r := v.(type) { - case Register8 : return byte(r >> 3) & 1 - case Register16 : return byte(r >> 3) & 1 - case Register32 : return byte(r >> 3) & 1 - case Register64 : return byte(r >> 3) & 1 - case KRegister : return byte(r >> 3) & 1 - case MMRegister : return byte(r >> 3) & 1 - case XMMRegister : return byte(r >> 3) & 1 - case YMMRegister : return byte(r >> 3) & 1 - case ZMMRegister : return byte(r >> 3) & 1 - case MaskedRegister : return hcode(r.Reg) - default : panic("v is not a register") - } -} - -func ecode(v interface{}) byte { - switch r := v.(type) { - case Register8 : return byte(r >> 4) & 1 - case Register16 : return byte(r >> 4) & 1 - case Register32 : return byte(r >> 4) & 1 - case Register64 : return byte(r >> 4) & 1 - case KRegister : return byte(r >> 4) & 1 - case MMRegister : return byte(r >> 4) & 1 - case XMMRegister : return byte(r >> 4) & 1 - case YMMRegister : return byte(r >> 4) & 1 - case ZMMRegister : return byte(r >> 4) & 1 - case MaskedRegister : return ecode(r.Reg) - default : panic("v is not a register") - } -} - -func hlcode(v interface{}) byte { - switch r := v.(type) { - case Register8 : return toHLcodeReg8(r) - case Register16 : return byte(r & 0x0f) - case Register32 : return byte(r & 0x0f) - case Register64 : return byte(r & 0x0f) - case KRegister : return byte(r & 0x0f) - case MMRegister : return byte(r & 0x0f) - case XMMRegister : return byte(r & 0x0f) - case YMMRegister : return byte(r & 0x0f) - case ZMMRegister : return byte(r & 0x0f) - case MaskedRegister : return hlcode(r.Reg) - default : panic("v is not a register") - } -} - -func ehcode(v interface{}) byte { - switch r := v.(type) { - case Register8 : return byte(r >> 3) & 0x03 - case Register16 : return byte(r >> 3) & 0x03 - case Register32 : return byte(r >> 3) & 0x03 - case Register64 : return byte(r >> 3) & 0x03 - case KRegister : return byte(r >> 3) & 0x03 - case MMRegister : return byte(r >> 3) & 0x03 - case XMMRegister : return byte(r >> 3) & 0x03 - case YMMRegister : return byte(r >> 3) & 0x03 - case ZMMRegister : return byte(r >> 3) & 0x03 - case MaskedRegister : return ehcode(r.Reg) - default : panic("v is not a register") - } -} - -func toImmAny(v interface{}) int64 { - if x, ok := asInt64(v); ok { - return x - } else { - panic("value is not an integer") - } -} - -func toHcodeOpt(v interface{}) byte { - if v == nil { - return 0 - } else { - return hcode(v) - } -} - -func toEcodeVMM(v interface{}, x byte) byte { - switch r := v.(type) { - case XMMRegister : return ecode(r) - case YMMRegister : return ecode(r) - case ZMMRegister : return ecode(r) - default : return x - } -} - -func toKcodeMem(v *MemoryOperand) byte { - if !v.Masked { - return 0 - } else { - return byte(v.Mask.K) - } -} - -func toZcodeMem(v *MemoryOperand) byte { - if !v.Masked || v.Mask.Z { - return 0 - } else { - return 1 - } -} - -func toZcodeRegM(v RegisterMask) byte { - if v.Z { - return 1 - } else { - return 0 - } -} - -func toHLcodeReg8(v Register8) byte { - switch v { - case AH: fallthrough - case BH: fallthrough - case CH: fallthrough - case DH: panic("ah/bh/ch/dh registers never use 4-bit encoding") - default: return byte(v & 0x0f) - } -} - -/** Instruction Encoding Helpers **/ - -const ( - _N_inst = 16 -) - -const ( - _F_rel1 = 1 << iota - _F_rel4 -) - -type _Encoding struct { - len int - flags int - bytes [_N_inst]byte - encoder func(m *_Encoding, v []interface{}) -} - -// buf ensures len + n <= len(bytes). -func (self *_Encoding) buf(n int) []byte { - if i := self.len; i + n > _N_inst { - panic("instruction too long") - } else { - return self.bytes[i:] - } -} - -// emit encodes a single byte. -func (self *_Encoding) emit(v byte) { - self.buf(1)[0] = v - self.len++ -} - -// imm1 encodes a single byte immediate value. -func (self *_Encoding) imm1(v int64) { - self.emit(byte(v)) -} - -// imm2 encodes a two-byte immediate value in little-endian. -func (self *_Encoding) imm2(v int64) { - binary.LittleEndian.PutUint16(self.buf(2), uint16(v)) - self.len += 2 -} - -// imm4 encodes a 4-byte immediate value in little-endian. -func (self *_Encoding) imm4(v int64) { - binary.LittleEndian.PutUint32(self.buf(4), uint32(v)) - self.len += 4 -} - -// imm8 encodes an 8-byte immediate value in little-endian. -func (self *_Encoding) imm8(v int64) { - binary.LittleEndian.PutUint64(self.buf(8), uint64(v)) - self.len += 8 -} - -// vex2 encodes a 2-byte or 3-byte VEX prefix. -// -// 2-byte VEX prefix: -// Requires: VEX.W = 0, VEX.mmmmm = 0b00001 and VEX.B = VEX.X = 0 -// +----------------+ -// Byte 0: | Bits 0-7: 0xc5 | -// +----------------+ -// -// +-----------+----------------+----------+--------------+ -// Byte 1: | Bit 7: ~R | Bits 3-6 ~vvvv | Bit 2: L | Bits 0-1: pp | -// +-----------+----------------+----------+--------------+ -// -// 3-byte VEX prefix: -// +----------------+ -// Byte 0: | Bits 0-7: 0xc4 | -// +----------------+ -// -// +-----------+-----------+-----------+-------------------+ -// Byte 1: | Bit 7: ~R | Bit 6: ~X | Bit 5: ~B | Bits 0-4: 0b00001 | -// +-----------+-----------+-----------+-------------------+ -// -// +----------+-----------------+----------+--------------+ -// Byte 2: | Bit 7: 0 | Bits 3-6: ~vvvv | Bit 2: L | Bits 0-1: pp | -// +----------+-----------------+----------+--------------+ -// -func (self *_Encoding) vex2(lpp byte, r byte, rm interface{}, vvvv byte) { - var b byte - var x byte - - /* VEX.R must be a single-bit mask */ - if r > 1 { - panic("VEX.R must be a 1-bit mask") - } - - /* VEX.Lpp must be a 3-bit mask */ - if lpp &^ 0b111 != 0 { - panic("VEX.Lpp must be a 3-bit mask") - } - - /* VEX.vvvv must be a 4-bit mask */ - if vvvv &^ 0b1111 != 0 { - panic("VEX.vvvv must be a 4-bit mask") - } - - /* encode the RM bits if any */ - if rm != nil { - switch v := rm.(type) { - case *Label : break - case Register : b = hcode(v) - case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) - case RelativeOffset : break - default : panic("rm is expected to be a register or a memory address") - } - } - - /* if VEX.B and VEX.X are zeroes, 2-byte VEX prefix can be used */ - if x == 0 && b == 0 { - self.emit(0xc5) - self.emit(0xf8 ^ (r << 7) ^ (vvvv << 3) ^ lpp) - } else { - self.emit(0xc4) - self.emit(0xe1 ^ (r << 7) ^ (x << 6) ^ (b << 5)) - self.emit(0x78 ^ (vvvv << 3) ^ lpp) - } -} - -// vex3 encodes a 3-byte VEX or XOP prefix. -// -// 3-byte VEX/XOP prefix -// +-----------------------------------+ -// Byte 0: | Bits 0-7: 0xc4 (VEX) / 0x8f (XOP) | -// +-----------------------------------+ -// -// +-----------+-----------+-----------+-----------------+ -// Byte 1: | Bit 7: ~R | Bit 6: ~X | Bit 5: ~B | Bits 0-4: mmmmm | -// +-----------+-----------+-----------+-----------------+ -// -// +----------+-----------------+----------+--------------+ -// Byte 2: | Bit 7: W | Bits 3-6: ~vvvv | Bit 2: L | Bits 0-1: pp | -// +----------+-----------------+----------+--------------+ -// -func (self *_Encoding) vex3(esc byte, mmmmm byte, wlpp byte, r byte, rm interface{}, vvvv byte) { - var b byte - var x byte - - /* VEX.R must be a single-bit mask */ - if r > 1 { - panic("VEX.R must be a 1-bit mask") - } - - /* VEX.vvvv must be a 4-bit mask */ - if vvvv &^ 0b1111 != 0 { - panic("VEX.vvvv must be a 4-bit mask") - } - - /* escape must be a 3-byte VEX (0xc4) or XOP (0x8f) prefix */ - if esc != 0xc4 && esc != 0x8f { - panic("escape must be a 3-byte VEX (0xc4) or XOP (0x8f) prefix") - } - - /* VEX.W____Lpp is expected to have no bits set except 0, 1, 2 and 7 */ - if wlpp &^ 0b10000111 != 0 { - panic("VEX.W____Lpp is expected to have no bits set except 0, 1, 2 and 7") - } - - /* VEX.m-mmmm is expected to be a 5-bit mask */ - if mmmmm &^ 0b11111 != 0 { - panic("VEX.m-mmmm is expected to be a 5-bit mask") - } - - /* encode the RM bits */ - switch v := rm.(type) { - case *Label : break - case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) - case RelativeOffset : break - default : panic("rm is expected to be a register or a memory address") - } - - /* encode the 3-byte VEX or XOP prefix */ - self.emit(esc) - self.emit(0xe0 ^ (r << 7) ^ (x << 6) ^ (b << 5) ^ mmmmm) - self.emit(0x78 ^ (vvvv << 3) ^ wlpp) -} - -// evex encodes a 4-byte EVEX prefix. -func (self *_Encoding) evex(mm byte, w1pp byte, ll byte, rr byte, rm interface{}, vvvvv byte, aaa byte, zz byte, bb byte) { - var b byte - var x byte - - /* EVEX.b must be a single-bit mask */ - if bb > 1 { - panic("EVEX.b must be a 1-bit mask") - } - - /* EVEX.z must be a single-bit mask */ - if zz > 1 { - panic("EVEX.z must be a 1-bit mask") - } - - /* EVEX.mm must be a 2-bit mask */ - if mm &^ 0b11 != 0 { - panic("EVEX.mm must be a 2-bit mask") - } - - /* EVEX.L'L must be a 2-bit mask */ - if ll &^ 0b11 != 0 { - panic("EVEX.L'L must be a 2-bit mask") - } - - /* EVEX.R'R must be a 2-bit mask */ - if rr &^ 0b11 != 0 { - panic("EVEX.R'R must be a 2-bit mask") - } - - /* EVEX.aaa must be a 3-bit mask */ - if aaa &^ 0b111 != 0 { - panic("EVEX.aaa must be a 3-bit mask") - } - - /* EVEX.v'vvvv must be a 5-bit mask */ - if vvvvv &^ 0b11111 != 0 { - panic("EVEX.v'vvvv must be a 5-bit mask") - } - - /* EVEX.W____1pp is expected to have no bits set except 0, 1, 2, and 7 */ - if w1pp &^ 0b10000011 != 0b100 { - panic("EVEX.W____1pp is expected to have no bits set except 0, 1, 2, and 7") - } - - /* extract bits from EVEX.R'R and EVEX.v'vvvv */ - r1, r0 := rr >> 1, rr & 1 - v1, v0 := vvvvv >> 4, vvvvv & 0b1111 - - /* encode the RM bits if any */ - if rm != nil { - switch m := rm.(type) { - case *Label : break - case Register : b, x = hcode(m), ecode(m) - case MemoryAddress : b, x, v1 = toHcodeOpt(m.Base), toHcodeOpt(m.Index), toEcodeVMM(m.Index, v1) - case RelativeOffset : break - default : panic("rm is expected to be a register or a memory address") - } - } - - /* EVEX prefix bytes */ - p0 := (r0 << 7) | (x << 6) | (b << 5) | (r1 << 4) | mm - p1 := (v0 << 3) | w1pp - p2 := (zz << 7) | (ll << 5) | (b << 4) | (v1 << 3) | aaa - - /* p0: invert RXBR' (bits 4-7) - * p1: invert vvvv (bits 3-6) - * p2: invert V' (bit 3) */ - self.emit(0x62) - self.emit(p0 ^ 0xf0) - self.emit(p1 ^ 0x78) - self.emit(p2 ^ 0x08) -} - -// rexm encodes a mandatory REX prefix. -func (self *_Encoding) rexm(w byte, r byte, rm interface{}) { - var b byte - var x byte - - /* REX.R must be 0 or 1 */ - if r != 0 && r != 1 { - panic("REX.R must be 0 or 1") - } - - /* REX.W must be 0 or 1 */ - if w != 0 && w != 1 { - panic("REX.W must be 0 or 1") - } - - /* encode the RM bits */ - switch v := rm.(type) { - case *Label : break - case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) - case RelativeOffset : break - default : panic("rm is expected to be a register or a memory address") - } - - /* encode the REX prefix */ - self.emit(0x40 | (w << 3) | (r << 2) | (x << 1) | b) -} - -// rexo encodes an optional REX prefix. -func (self *_Encoding) rexo(r byte, rm interface{}, force bool) { - var b byte - var x byte - - /* REX.R must be 0 or 1 */ - if r != 0 && r != 1 { - panic("REX.R must be 0 or 1") - } - - /* encode the RM bits */ - switch v := rm.(type) { - case *Label : break - case Register : b = hcode(v) - case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) - case RelativeOffset : break - default : panic("rm is expected to be a register or a memory address") - } - - /* if REX.R, REX.X, and REX.B are all zeroes, REX prefix can be omitted */ - if force || r != 0 || x != 0 || b != 0 { - self.emit(0x40 | (r << 2) | (x << 1) | b) - } -} - -// mrsd encodes ModR/M, SIB and Displacement. -// -// ModR/M byte -// +----------------+---------------+---------------+ -// | Bits 6-7: Mode | Bits 3-5: Reg | Bits 0-2: R/M | -// +----------------+---------------+---------------+ -// -// SIB byte -// +-----------------+-----------------+----------------+ -// | Bits 6-7: Scale | Bits 3-5: Index | Bits 0-2: Base | -// +-----------------+-----------------+----------------+ -// -func (self *_Encoding) mrsd(reg byte, rm interface{}, disp8v int32) { - var ok bool - var mm MemoryAddress - var ro RelativeOffset - - /* ModRM encodes the lower 3-bit of the register */ - if reg > 7 { - panic("invalid register bits") - } - - /* check the displacement scale */ - switch disp8v { - case 1: break - case 2: break - case 4: break - case 8: break - case 16: break - case 32: break - case 64: break - default: panic("invalid displacement size") - } - - /* special case: unresolved labels, assuming a zero offset */ - if _, ok = rm.(*Label); ok { - self.emit(0x05 | (reg << 3)) - self.imm4(0) - return - } - - /* special case: RIP-relative offset - * ModRM.Mode == 0 and ModeRM.R/M == 5 indicates (rip + disp32) addressing */ - if ro, ok = rm.(RelativeOffset); ok { - self.emit(0x05 | (reg << 3)) - self.imm4(int64(ro)) - return - } - - /* must be a generic memory address */ - if mm, ok = rm.(MemoryAddress); !ok { - panic("rm must be a memory address") - } - - /* absolute addressing, encoded as disp(%rbp,%rsp,1) */ - if mm.Base == nil && mm.Index == nil { - self.emit(0x04 | (reg << 3)) - self.emit(0x25) - self.imm4(int64(mm.Displacement)) - return - } - - /* no SIB byte */ - if mm.Index == nil && lcode(mm.Base) != 0b100 { - cc := lcode(mm.Base) - dv := mm.Displacement - - /* ModRM.Mode == 0 (no displacement) */ - if dv == 0 && mm.Base != RBP && mm.Base != R13 { - if cc == 0b101 { - panic("rbp/r13 is not encodable as a base register (interpreted as disp32 address)") - } else { - self.emit((reg << 3) | cc) - return - } - } - - /* ModRM.Mode == 1 (8-bit displacement) */ - if dq := dv / disp8v; dq >= math.MinInt8 && dq <= math.MaxInt8 && dv % disp8v == 0 { - self.emit(0x40 | (reg << 3) | cc) - self.imm1(int64(dq)) - return - } - - /* ModRM.Mode == 2 (32-bit displacement) */ - self.emit(0x80 | (reg << 3) | cc) - self.imm4(int64(mm.Displacement)) - return - } - - /* all encodings below use ModRM.R/M = 4 (0b100) to indicate the presence of SIB */ - if mm.Index == RSP { - panic("rsp is not encodable as an index register (interpreted as no index)") - } - - /* index = 4 (0b100) denotes no-index encoding */ - var scale byte - var index byte = 0x04 - - /* encode the scale byte */ - if mm.Scale != 0 { - switch mm.Scale { - case 1 : scale = 0 - case 2 : scale = 1 - case 4 : scale = 2 - case 8 : scale = 3 - default : panic("invalid scale value") - } - } - - /* encode the index byte */ - if mm.Index != nil { - index = lcode(mm.Index) - } - - /* SIB.Base = 5 (0b101) and ModRM.Mode = 0 indicates no-base encoding with disp32 */ - if mm.Base == nil { - self.emit((reg << 3) | 0b100) - self.emit((scale << 6) | (index << 3) | 0b101) - self.imm4(int64(mm.Displacement)) - return - } - - /* base L-code & displacement value */ - cc := lcode(mm.Base) - dv := mm.Displacement - - /* ModRM.Mode == 0 (no displacement) */ - if dv == 0 && cc != 0b101 { - self.emit((reg << 3) | 0b100) - self.emit((scale << 6) | (index << 3) | cc) - return - } - - /* ModRM.Mode == 1 (8-bit displacement) */ - if dq := dv / disp8v; dq >= math.MinInt8 && dq <= math.MaxInt8 && dv % disp8v == 0 { - self.emit(0x44 | (reg << 3)) - self.emit((scale << 6) | (index << 3) | cc) - self.imm1(int64(dq)) - return - } - - /* ModRM.Mode == 2 (32-bit displacement) */ - self.emit(0x84 | (reg << 3)) - self.emit((scale << 6) | (index << 3) | cc) - self.imm4(int64(mm.Displacement)) -} - -// encode invokes the encoder to encode this instruction. -func (self *_Encoding) encode(v []interface{}) int { - self.len = 0 - self.encoder(self, v) - return self.len -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go deleted file mode 100644 index fc73a6f8b..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions.go +++ /dev/null @@ -1,97194 +0,0 @@ -// Code generated by "mkasm_amd64.py", DO NOT EDIT. - -package x86_64 - -// ADCB performs "Add with Carry". -// -// Mnemonic : ADC -// Supported forms : (6 forms) -// -// * ADCB imm8, al -// * ADCB imm8, r8 -// * ADCB r8, r8 -// * ADCB m8, r8 -// * ADCB imm8, m8 -// * ADCB r8, m8 -// -func (self *Program) ADCB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADCB", 2, Operands { v0, v1 }) - // ADCB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x14) - m.imm1(toImmAny(v[0])) - }) - } - // ADCB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADCB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x10) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADCB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADCB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADCB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x10) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADCB") - } - return p -} - -// ADCL performs "Add with Carry". -// -// Mnemonic : ADC -// Supported forms : (8 forms) -// -// * ADCL imm32, eax -// * ADCL imm8, r32 -// * ADCL imm32, r32 -// * ADCL r32, r32 -// * ADCL m32, r32 -// * ADCL imm8, m32 -// * ADCL imm32, m32 -// * ADCL r32, m32 -// -func (self *Program) ADCL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADCL", 2, Operands { v0, v1 }) - // ADCL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x15) - m.imm4(toImmAny(v[0])) - }) - } - // ADCL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADCL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xd0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ADCL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADCL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADCL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADCL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(2, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ADCL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADCL") - } - return p -} - -// ADCQ performs "Add with Carry". -// -// Mnemonic : ADC -// Supported forms : (8 forms) -// -// * ADCQ imm32, rax -// * ADCQ imm8, r64 -// * ADCQ imm32, r64 -// * ADCQ r64, r64 -// * ADCQ m64, r64 -// * ADCQ imm8, m64 -// * ADCQ imm32, m64 -// * ADCQ r64, m64 -// -func (self *Program) ADCQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADCQ", 2, Operands { v0, v1 }) - // ADCQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x15) - m.imm4(toImmAny(v[0])) - }) - } - // ADCQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADCQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xd0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ADCQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADCQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADCQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADCQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(2, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ADCQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADCQ") - } - return p -} - -// ADCW performs "Add with Carry". -// -// Mnemonic : ADC -// Supported forms : (8 forms) -// -// * ADCW imm16, ax -// * ADCW imm8, r16 -// * ADCW imm16, r16 -// * ADCW r16, r16 -// * ADCW m16, r16 -// * ADCW imm8, m16 -// * ADCW imm16, m16 -// * ADCW r16, m16 -// -func (self *Program) ADCW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADCW", 2, Operands { v0, v1 }) - // ADCW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x15) - m.imm2(toImmAny(v[0])) - }) - } - // ADCW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADCW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xd0 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // ADCW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADCW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADCW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADCW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(2, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // ADCW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADCW") - } - return p -} - -// ADCXL performs "Unsigned Integer Addition of Two Operands with Carry Flag". -// -// Mnemonic : ADCX -// Supported forms : (2 forms) -// -// * ADCXL r32, r32 [ADX] -// * ADCXL m32, r32 [ADX] -// -func (self *Program) ADCXL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADCXL", 2, Operands { v0, v1 }) - // ADCXL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADCXL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADCXL") - } - return p -} - -// ADCXQ performs "Unsigned Integer Addition of Two Operands with Carry Flag". -// -// Mnemonic : ADCX -// Supported forms : (2 forms) -// -// * ADCXQ r64, r64 [ADX] -// * ADCXQ m64, r64 [ADX] -// -func (self *Program) ADCXQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADCXQ", 2, Operands { v0, v1 }) - // ADCXQ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADCXQ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADCXQ") - } - return p -} - -// ADDB performs "Add". -// -// Mnemonic : ADD -// Supported forms : (6 forms) -// -// * ADDB imm8, al -// * ADDB imm8, r8 -// * ADDB r8, r8 -// * ADDB m8, r8 -// * ADDB imm8, m8 -// * ADDB r8, m8 -// -func (self *Program) ADDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDB", 2, Operands { v0, v1 }) - // ADDB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x04) - m.imm1(toImmAny(v[0])) - }) - } - // ADDB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADDB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x00) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x02) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x02) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADDB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADDB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x00) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDB") - } - return p -} - -// ADDL performs "Add". -// -// Mnemonic : ADD -// Supported forms : (8 forms) -// -// * ADDL imm32, eax -// * ADDL imm8, r32 -// * ADDL imm32, r32 -// * ADDL r32, r32 -// * ADDL m32, r32 -// * ADDL imm8, m32 -// * ADDL imm32, m32 -// * ADDL r32, m32 -// -func (self *Program) ADDL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDL", 2, Operands { v0, v1 }) - // ADDL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x05) - m.imm4(toImmAny(v[0])) - }) - } - // ADDL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADDL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xc0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ADDL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x01) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x03) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x03) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADDL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADDL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(0, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ADDL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x01) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDL") - } - return p -} - -// ADDPD performs "Add Packed Double-Precision Floating-Point Values". -// -// Mnemonic : ADDPD -// Supported forms : (2 forms) -// -// * ADDPD xmm, xmm [SSE2] -// * ADDPD m128, xmm [SSE2] -// -func (self *Program) ADDPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDPD", 2, Operands { v0, v1 }) - // ADDPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDPD") - } - return p -} - -// ADDPS performs "Add Packed Single-Precision Floating-Point Values". -// -// Mnemonic : ADDPS -// Supported forms : (2 forms) -// -// * ADDPS xmm, xmm [SSE] -// * ADDPS m128, xmm [SSE] -// -func (self *Program) ADDPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDPS", 2, Operands { v0, v1 }) - // ADDPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDPS") - } - return p -} - -// ADDQ performs "Add". -// -// Mnemonic : ADD -// Supported forms : (8 forms) -// -// * ADDQ imm32, rax -// * ADDQ imm8, r64 -// * ADDQ imm32, r64 -// * ADDQ r64, r64 -// * ADDQ m64, r64 -// * ADDQ imm8, m64 -// * ADDQ imm32, m64 -// * ADDQ r64, m64 -// -func (self *Program) ADDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDQ", 2, Operands { v0, v1 }) - // ADDQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x05) - m.imm4(toImmAny(v[0])) - }) - } - // ADDQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADDQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xc0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ADDQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x01) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x03) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x03) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADDQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADDQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(0, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ADDQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x01) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDQ") - } - return p -} - -// ADDSD performs "Add Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : ADDSD -// Supported forms : (2 forms) -// -// * ADDSD xmm, xmm [SSE2] -// * ADDSD m64, xmm [SSE2] -// -func (self *Program) ADDSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDSD", 2, Operands { v0, v1 }) - // ADDSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDSD") - } - return p -} - -// ADDSS performs "Add Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : ADDSS -// Supported forms : (2 forms) -// -// * ADDSS xmm, xmm [SSE] -// * ADDSS m32, xmm [SSE] -// -func (self *Program) ADDSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDSS", 2, Operands { v0, v1 }) - // ADDSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDSS") - } - return p -} - -// ADDSUBPD performs "Packed Double-FP Add/Subtract". -// -// Mnemonic : ADDSUBPD -// Supported forms : (2 forms) -// -// * ADDSUBPD xmm, xmm [SSE3] -// * ADDSUBPD m128, xmm [SSE3] -// -func (self *Program) ADDSUBPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDSUBPD", 2, Operands { v0, v1 }) - // ADDSUBPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDSUBPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDSUBPD") - } - return p -} - -// ADDSUBPS performs "Packed Single-FP Add/Subtract". -// -// Mnemonic : ADDSUBPS -// Supported forms : (2 forms) -// -// * ADDSUBPS xmm, xmm [SSE3] -// * ADDSUBPS m128, xmm [SSE3] -// -func (self *Program) ADDSUBPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDSUBPS", 2, Operands { v0, v1 }) - // ADDSUBPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDSUBPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDSUBPS") - } - return p -} - -// ADDW performs "Add". -// -// Mnemonic : ADD -// Supported forms : (8 forms) -// -// * ADDW imm16, ax -// * ADDW imm8, r16 -// * ADDW imm16, r16 -// * ADDW r16, r16 -// * ADDW m16, r16 -// * ADDW imm8, m16 -// * ADDW imm16, m16 -// * ADDW r16, m16 -// -func (self *Program) ADDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADDW", 2, Operands { v0, v1 }) - // ADDW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x05) - m.imm2(toImmAny(v[0])) - }) - } - // ADDW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ADDW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xc0 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // ADDW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x01) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x03) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADDW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x03) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ADDW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ADDW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(0, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // ADDW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x01) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADDW") - } - return p -} - -// ADOXL performs "Unsigned Integer Addition of Two Operands with Overflow Flag". -// -// Mnemonic : ADOX -// Supported forms : (2 forms) -// -// * ADOXL r32, r32 [ADX] -// * ADOXL m32, r32 [ADX] -// -func (self *Program) ADOXL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADOXL", 2, Operands { v0, v1 }) - // ADOXL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADOXL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADOXL") - } - return p -} - -// ADOXQ performs "Unsigned Integer Addition of Two Operands with Overflow Flag". -// -// Mnemonic : ADOX -// Supported forms : (2 forms) -// -// * ADOXQ r64, r64 [ADX] -// * ADOXQ m64, r64 [ADX] -// -func (self *Program) ADOXQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ADOXQ", 2, Operands { v0, v1 }) - // ADOXQ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ADOXQ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_ADX) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ADOXQ") - } - return p -} - -// AESDEC performs "Perform One Round of an AES Decryption Flow". -// -// Mnemonic : AESDEC -// Supported forms : (2 forms) -// -// * AESDEC xmm, xmm [AES] -// * AESDEC m128, xmm [AES] -// -func (self *Program) AESDEC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("AESDEC", 2, Operands { v0, v1 }) - // AESDEC xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xde) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // AESDEC m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xde) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for AESDEC") - } - return p -} - -// AESDECLAST performs "Perform Last Round of an AES Decryption Flow". -// -// Mnemonic : AESDECLAST -// Supported forms : (2 forms) -// -// * AESDECLAST xmm, xmm [AES] -// * AESDECLAST m128, xmm [AES] -// -func (self *Program) AESDECLAST(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("AESDECLAST", 2, Operands { v0, v1 }) - // AESDECLAST xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // AESDECLAST m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for AESDECLAST") - } - return p -} - -// AESENC performs "Perform One Round of an AES Encryption Flow". -// -// Mnemonic : AESENC -// Supported forms : (2 forms) -// -// * AESENC xmm, xmm [AES] -// * AESENC m128, xmm [AES] -// -func (self *Program) AESENC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("AESENC", 2, Operands { v0, v1 }) - // AESENC xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // AESENC m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for AESENC") - } - return p -} - -// AESENCLAST performs "Perform Last Round of an AES Encryption Flow". -// -// Mnemonic : AESENCLAST -// Supported forms : (2 forms) -// -// * AESENCLAST xmm, xmm [AES] -// * AESENCLAST m128, xmm [AES] -// -func (self *Program) AESENCLAST(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("AESENCLAST", 2, Operands { v0, v1 }) - // AESENCLAST xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // AESENCLAST m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for AESENCLAST") - } - return p -} - -// AESIMC performs "Perform the AES InvMixColumn Transformation". -// -// Mnemonic : AESIMC -// Supported forms : (2 forms) -// -// * AESIMC xmm, xmm [AES] -// * AESIMC m128, xmm [AES] -// -func (self *Program) AESIMC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("AESIMC", 2, Operands { v0, v1 }) - // AESIMC xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // AESIMC m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xdb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for AESIMC") - } - return p -} - -// AESKEYGENASSIST performs "AES Round Key Generation Assist". -// -// Mnemonic : AESKEYGENASSIST -// Supported forms : (2 forms) -// -// * AESKEYGENASSIST imm8, xmm, xmm [AES] -// * AESKEYGENASSIST imm8, m128, xmm [AES] -// -func (self *Program) AESKEYGENASSIST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("AESKEYGENASSIST", 3, Operands { v0, v1, v2 }) - // AESKEYGENASSIST imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // AESKEYGENASSIST imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for AESKEYGENASSIST") - } - return p -} - -// ANDB performs "Logical AND". -// -// Mnemonic : AND -// Supported forms : (6 forms) -// -// * ANDB imm8, al -// * ANDB imm8, r8 -// * ANDB r8, r8 -// * ANDB m8, r8 -// * ANDB imm8, m8 -// * ANDB r8, m8 -// -func (self *Program) ANDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDB", 2, Operands { v0, v1 }) - // ANDB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x24) - m.imm1(toImmAny(v[0])) - }) - } - // ANDB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ANDB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x20) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ANDB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ANDB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x20) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDB") - } - return p -} - -// ANDL performs "Logical AND". -// -// Mnemonic : AND -// Supported forms : (8 forms) -// -// * ANDL imm32, eax -// * ANDL imm8, r32 -// * ANDL imm32, r32 -// * ANDL r32, r32 -// * ANDL m32, r32 -// * ANDL imm8, m32 -// * ANDL imm32, m32 -// * ANDL r32, m32 -// -func (self *Program) ANDL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDL", 2, Operands { v0, v1 }) - // ANDL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x25) - m.imm4(toImmAny(v[0])) - }) - } - // ANDL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ANDL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xe0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ANDL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x21) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ANDL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ANDL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(4, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ANDL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x21) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDL") - } - return p -} - -// ANDNL performs "Logical AND NOT". -// -// Mnemonic : ANDN -// Supported forms : (2 forms) -// -// * ANDNL r32, r32, r32 [BMI] -// * ANDNL m32, r32, r32 [BMI] -// -func (self *Program) ANDNL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("ANDNL", 3, Operands { v0, v1, v2 }) - // ANDNL r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // ANDNL m32, r32, r32 - if isM32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDNL") - } - return p -} - -// ANDNPD performs "Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : ANDNPD -// Supported forms : (2 forms) -// -// * ANDNPD xmm, xmm [SSE2] -// * ANDNPD m128, xmm [SSE2] -// -func (self *Program) ANDNPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDNPD", 2, Operands { v0, v1 }) - // ANDNPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x55) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDNPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x55) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDNPD") - } - return p -} - -// ANDNPS performs "Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : ANDNPS -// Supported forms : (2 forms) -// -// * ANDNPS xmm, xmm [SSE] -// * ANDNPS m128, xmm [SSE] -// -func (self *Program) ANDNPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDNPS", 2, Operands { v0, v1 }) - // ANDNPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x55) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDNPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x55) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDNPS") - } - return p -} - -// ANDNQ performs "Logical AND NOT". -// -// Mnemonic : ANDN -// Supported forms : (2 forms) -// -// * ANDNQ r64, r64, r64 [BMI] -// * ANDNQ m64, r64, r64 [BMI] -// -func (self *Program) ANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("ANDNQ", 3, Operands { v0, v1, v2 }) - // ANDNQ r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // ANDNQ m64, r64, r64 - if isM64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDNQ") - } - return p -} - -// ANDPD performs "Bitwise Logical AND of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : ANDPD -// Supported forms : (2 forms) -// -// * ANDPD xmm, xmm [SSE2] -// * ANDPD m128, xmm [SSE2] -// -func (self *Program) ANDPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDPD", 2, Operands { v0, v1 }) - // ANDPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x54) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x54) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDPD") - } - return p -} - -// ANDPS performs "Bitwise Logical AND of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : ANDPS -// Supported forms : (2 forms) -// -// * ANDPS xmm, xmm [SSE] -// * ANDPS m128, xmm [SSE] -// -func (self *Program) ANDPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDPS", 2, Operands { v0, v1 }) - // ANDPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x54) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x54) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDPS") - } - return p -} - -// ANDQ performs "Logical AND". -// -// Mnemonic : AND -// Supported forms : (8 forms) -// -// * ANDQ imm32, rax -// * ANDQ imm8, r64 -// * ANDQ imm32, r64 -// * ANDQ r64, r64 -// * ANDQ m64, r64 -// * ANDQ imm8, m64 -// * ANDQ imm32, m64 -// * ANDQ r64, m64 -// -func (self *Program) ANDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDQ", 2, Operands { v0, v1 }) - // ANDQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x25) - m.imm4(toImmAny(v[0])) - }) - } - // ANDQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ANDQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xe0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ANDQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x21) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ANDQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ANDQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(4, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ANDQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x21) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDQ") - } - return p -} - -// ANDW performs "Logical AND". -// -// Mnemonic : AND -// Supported forms : (8 forms) -// -// * ANDW imm16, ax -// * ANDW imm8, r16 -// * ANDW imm16, r16 -// * ANDW r16, r16 -// * ANDW m16, r16 -// * ANDW imm8, m16 -// * ANDW imm16, m16 -// * ANDW r16, m16 -// -func (self *Program) ANDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ANDW", 2, Operands { v0, v1 }) - // ANDW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x25) - m.imm2(toImmAny(v[0])) - }) - } - // ANDW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ANDW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xe0 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // ANDW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x21) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ANDW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ANDW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ANDW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(4, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // ANDW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x21) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ANDW") - } - return p -} - -// BEXTR performs "Bit Field Extract". -// -// Mnemonic : BEXTR -// Supported forms : (8 forms) -// -// * BEXTR imm32, r32, r32 [TBM] -// * BEXTR imm32, m32, r32 [TBM] -// * BEXTR imm32, r64, r64 [TBM] -// * BEXTR imm32, m64, r64 [TBM] -// * BEXTR r32, r32, r32 [BMI] -// * BEXTR r32, m32, r32 [BMI] -// * BEXTR r64, r64, r64 [BMI] -// * BEXTR r64, m64, r64 [BMI] -// -func (self *Program) BEXTR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("BEXTR", 3, Operands { v0, v1, v2 }) - // BEXTR imm32, r32, r32 - if isImm32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xea ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // BEXTR imm32, m32, r32 - if isImm32(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1010, 0x00, hcode(v[2]), addr(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // BEXTR imm32, r64, r64 - if isImm32(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xea ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf8) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // BEXTR imm32, m64, r64 - if isImm32(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1010, 0x80, hcode(v[2]), addr(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // BEXTR r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // BEXTR r32, m32, r32 - if isReg32(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // BEXTR r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf8 ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // BEXTR r64, m64, r64 - if isReg64(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BEXTR") - } - return p -} - -// BLCFILL performs "Fill From Lowest Clear Bit". -// -// Mnemonic : BLCFILL -// Supported forms : (4 forms) -// -// * BLCFILL r32, r32 [TBM] -// * BLCFILL m32, r32 [TBM] -// * BLCFILL r64, r64 [TBM] -// * BLCFILL m64, r64 [TBM] -// -func (self *Program) BLCFILL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLCFILL", 2, Operands { v0, v1 }) - // BLCFILL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xc8 | lcode(v[0])) - }) - } - // BLCFILL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(1, addr(v[0]), 1) - }) - } - // BLCFILL r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xc8 | lcode(v[0])) - }) - } - // BLCFILL m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLCFILL") - } - return p -} - -// BLCI performs "Isolate Lowest Clear Bit". -// -// Mnemonic : BLCI -// Supported forms : (4 forms) -// -// * BLCI r32, r32 [TBM] -// * BLCI m32, r32 [TBM] -// * BLCI r64, r64 [TBM] -// * BLCI m64, r64 [TBM] -// -func (self *Program) BLCI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLCI", 2, Operands { v0, v1 }) - // BLCI r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x02) - m.emit(0xf0 | lcode(v[0])) - }) - } - // BLCI m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x02) - m.mrsd(6, addr(v[0]), 1) - }) - } - // BLCI r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x02) - m.emit(0xf0 | lcode(v[0])) - }) - } - // BLCI m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x02) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLCI") - } - return p -} - -// BLCIC performs "Isolate Lowest Set Bit and Complement". -// -// Mnemonic : BLCIC -// Supported forms : (4 forms) -// -// * BLCIC r32, r32 [TBM] -// * BLCIC m32, r32 [TBM] -// * BLCIC r64, r64 [TBM] -// * BLCIC m64, r64 [TBM] -// -func (self *Program) BLCIC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLCIC", 2, Operands { v0, v1 }) - // BLCIC r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xe8 | lcode(v[0])) - }) - } - // BLCIC m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(5, addr(v[0]), 1) - }) - } - // BLCIC r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xe8 | lcode(v[0])) - }) - } - // BLCIC m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(5, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLCIC") - } - return p -} - -// BLCMSK performs "Mask From Lowest Clear Bit". -// -// Mnemonic : BLCMSK -// Supported forms : (4 forms) -// -// * BLCMSK r32, r32 [TBM] -// * BLCMSK m32, r32 [TBM] -// * BLCMSK r64, r64 [TBM] -// * BLCMSK m64, r64 [TBM] -// -func (self *Program) BLCMSK(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLCMSK", 2, Operands { v0, v1 }) - // BLCMSK r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x02) - m.emit(0xc8 | lcode(v[0])) - }) - } - // BLCMSK m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x02) - m.mrsd(1, addr(v[0]), 1) - }) - } - // BLCMSK r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x02) - m.emit(0xc8 | lcode(v[0])) - }) - } - // BLCMSK m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x02) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLCMSK") - } - return p -} - -// BLCS performs "Set Lowest Clear Bit". -// -// Mnemonic : BLCS -// Supported forms : (4 forms) -// -// * BLCS r32, r32 [TBM] -// * BLCS m32, r32 [TBM] -// * BLCS r64, r64 [TBM] -// * BLCS m64, r64 [TBM] -// -func (self *Program) BLCS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLCS", 2, Operands { v0, v1 }) - // BLCS r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xd8 | lcode(v[0])) - }) - } - // BLCS m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(3, addr(v[0]), 1) - }) - } - // BLCS r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xd8 | lcode(v[0])) - }) - } - // BLCS m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLCS") - } - return p -} - -// BLENDPD performs "Blend Packed Double Precision Floating-Point Values". -// -// Mnemonic : BLENDPD -// Supported forms : (2 forms) -// -// * BLENDPD imm8, xmm, xmm [SSE4.1] -// * BLENDPD imm8, m128, xmm [SSE4.1] -// -func (self *Program) BLENDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("BLENDPD", 3, Operands { v0, v1, v2 }) - // BLENDPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BLENDPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0d) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for BLENDPD") - } - return p -} - -// BLENDPS performs " Blend Packed Single Precision Floating-Point Values". -// -// Mnemonic : BLENDPS -// Supported forms : (2 forms) -// -// * BLENDPS imm8, xmm, xmm [SSE4.1] -// * BLENDPS imm8, m128, xmm [SSE4.1] -// -func (self *Program) BLENDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("BLENDPS", 3, Operands { v0, v1, v2 }) - // BLENDPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BLENDPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0c) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for BLENDPS") - } - return p -} - -// BLENDVPD performs " Variable Blend Packed Double Precision Floating-Point Values". -// -// Mnemonic : BLENDVPD -// Supported forms : (2 forms) -// -// * BLENDVPD xmm0, xmm, xmm [SSE4.1] -// * BLENDVPD xmm0, m128, xmm [SSE4.1] -// -func (self *Program) BLENDVPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("BLENDVPD", 3, Operands { v0, v1, v2 }) - // BLENDVPD xmm0, xmm, xmm - if v0 == XMM0 && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // BLENDVPD xmm0, m128, xmm - if v0 == XMM0 && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLENDVPD") - } - return p -} - -// BLENDVPS performs " Variable Blend Packed Single Precision Floating-Point Values". -// -// Mnemonic : BLENDVPS -// Supported forms : (2 forms) -// -// * BLENDVPS xmm0, xmm, xmm [SSE4.1] -// * BLENDVPS xmm0, m128, xmm [SSE4.1] -// -func (self *Program) BLENDVPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("BLENDVPS", 3, Operands { v0, v1, v2 }) - // BLENDVPS xmm0, xmm, xmm - if v0 == XMM0 && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // BLENDVPS xmm0, m128, xmm - if v0 == XMM0 && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLENDVPS") - } - return p -} - -// BLSFILL performs "Fill From Lowest Set Bit". -// -// Mnemonic : BLSFILL -// Supported forms : (4 forms) -// -// * BLSFILL r32, r32 [TBM] -// * BLSFILL m32, r32 [TBM] -// * BLSFILL r64, r64 [TBM] -// * BLSFILL m64, r64 [TBM] -// -func (self *Program) BLSFILL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLSFILL", 2, Operands { v0, v1 }) - // BLSFILL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xd0 | lcode(v[0])) - }) - } - // BLSFILL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(2, addr(v[0]), 1) - }) - } - // BLSFILL r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xd0 | lcode(v[0])) - }) - } - // BLSFILL m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLSFILL") - } - return p -} - -// BLSI performs "Isolate Lowest Set Bit". -// -// Mnemonic : BLSI -// Supported forms : (4 forms) -// -// * BLSI r32, r32 [BMI] -// * BLSI m32, r32 [BMI] -// * BLSI r64, r64 [BMI] -// * BLSI m64, r64 [BMI] -// -func (self *Program) BLSI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLSI", 2, Operands { v0, v1 }) - // BLSI r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0xf3) - m.emit(0xd8 | lcode(v[0])) - }) - } - // BLSI m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(3, addr(v[0]), 1) - }) - } - // BLSI r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0xf3) - m.emit(0xd8 | lcode(v[0])) - }) - } - // BLSI m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLSI") - } - return p -} - -// BLSIC performs "Isolate Lowest Set Bit and Complement". -// -// Mnemonic : BLSIC -// Supported forms : (4 forms) -// -// * BLSIC r32, r32 [TBM] -// * BLSIC m32, r32 [TBM] -// * BLSIC r64, r64 [TBM] -// * BLSIC m64, r64 [TBM] -// -func (self *Program) BLSIC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLSIC", 2, Operands { v0, v1 }) - // BLSIC r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xf0 | lcode(v[0])) - }) - } - // BLSIC m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(6, addr(v[0]), 1) - }) - } - // BLSIC r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xf0 | lcode(v[0])) - }) - } - // BLSIC m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLSIC") - } - return p -} - -// BLSMSK performs "Mask From Lowest Set Bit". -// -// Mnemonic : BLSMSK -// Supported forms : (4 forms) -// -// * BLSMSK r32, r32 [BMI] -// * BLSMSK m32, r32 [BMI] -// * BLSMSK r64, r64 [BMI] -// * BLSMSK m64, r64 [BMI] -// -func (self *Program) BLSMSK(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLSMSK", 2, Operands { v0, v1 }) - // BLSMSK r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0xf3) - m.emit(0xd0 | lcode(v[0])) - }) - } - // BLSMSK m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(2, addr(v[0]), 1) - }) - } - // BLSMSK r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0xf3) - m.emit(0xd0 | lcode(v[0])) - }) - } - // BLSMSK m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLSMSK") - } - return p -} - -// BLSR performs "Reset Lowest Set Bit". -// -// Mnemonic : BLSR -// Supported forms : (4 forms) -// -// * BLSR r32, r32 [BMI] -// * BLSR m32, r32 [BMI] -// * BLSR r64, r64 [BMI] -// * BLSR m64, r64 [BMI] -// -func (self *Program) BLSR(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BLSR", 2, Operands { v0, v1 }) - // BLSR r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0xf3) - m.emit(0xc8 | lcode(v[0])) - }) - } - // BLSR m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(1, addr(v[0]), 1) - }) - } - // BLSR r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0xf3) - m.emit(0xc8 | lcode(v[0])) - }) - } - // BLSR m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BLSR") - } - return p -} - -// BSFL performs "Bit Scan Forward". -// -// Mnemonic : BSF -// Supported forms : (2 forms) -// -// * BSFL r32, r32 -// * BSFL m32, r32 -// -func (self *Program) BSFL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BSFL", 2, Operands { v0, v1 }) - // BSFL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // BSFL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BSFL") - } - return p -} - -// BSFQ performs "Bit Scan Forward". -// -// Mnemonic : BSF -// Supported forms : (2 forms) -// -// * BSFQ r64, r64 -// * BSFQ m64, r64 -// -func (self *Program) BSFQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BSFQ", 2, Operands { v0, v1 }) - // BSFQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // BSFQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xbc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BSFQ") - } - return p -} - -// BSFW performs "Bit Scan Forward". -// -// Mnemonic : BSF -// Supported forms : (2 forms) -// -// * BSFW r16, r16 -// * BSFW m16, r16 -// -func (self *Program) BSFW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BSFW", 2, Operands { v0, v1 }) - // BSFW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // BSFW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BSFW") - } - return p -} - -// BSRL performs "Bit Scan Reverse". -// -// Mnemonic : BSR -// Supported forms : (2 forms) -// -// * BSRL r32, r32 -// * BSRL m32, r32 -// -func (self *Program) BSRL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BSRL", 2, Operands { v0, v1 }) - // BSRL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // BSRL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BSRL") - } - return p -} - -// BSRQ performs "Bit Scan Reverse". -// -// Mnemonic : BSR -// Supported forms : (2 forms) -// -// * BSRQ r64, r64 -// * BSRQ m64, r64 -// -func (self *Program) BSRQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BSRQ", 2, Operands { v0, v1 }) - // BSRQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // BSRQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xbd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BSRQ") - } - return p -} - -// BSRW performs "Bit Scan Reverse". -// -// Mnemonic : BSR -// Supported forms : (2 forms) -// -// * BSRW r16, r16 -// * BSRW m16, r16 -// -func (self *Program) BSRW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BSRW", 2, Operands { v0, v1 }) - // BSRW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // BSRW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BSRW") - } - return p -} - -// BSWAPL performs "Byte Swap". -// -// Mnemonic : BSWAP -// Supported forms : (1 form) -// -// * BSWAPL r32 -// -func (self *Program) BSWAPL(v0 interface{}) *Instruction { - p := self.alloc("BSWAPL", 1, Operands { v0 }) - // BSWAPL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x0f) - m.emit(0xc8 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for BSWAPL") - } - return p -} - -// BSWAPQ performs "Byte Swap". -// -// Mnemonic : BSWAP -// Supported forms : (1 form) -// -// * BSWAPQ r64 -// -func (self *Program) BSWAPQ(v0 interface{}) *Instruction { - p := self.alloc("BSWAPQ", 1, Operands { v0 }) - // BSWAPQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xc8 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for BSWAPQ") - } - return p -} - -// BTCL performs "Bit Test and Complement". -// -// Mnemonic : BTC -// Supported forms : (4 forms) -// -// * BTCL imm8, r32 -// * BTCL r32, r32 -// * BTCL imm8, m32 -// * BTCL r32, m32 -// -func (self *Program) BTCL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTCL", 2, Operands { v0, v1 }) - // BTCL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTCL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTCL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTCL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xbb) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTCL") - } - return p -} - -// BTCQ performs "Bit Test and Complement". -// -// Mnemonic : BTC -// Supported forms : (4 forms) -// -// * BTCQ imm8, r64 -// * BTCQ r64, r64 -// * BTCQ imm8, m64 -// * BTCQ r64, m64 -// -func (self *Program) BTCQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTCQ", 2, Operands { v0, v1 }) - // BTCQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTCQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTCQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTCQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xbb) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTCQ") - } - return p -} - -// BTCW performs "Bit Test and Complement". -// -// Mnemonic : BTC -// Supported forms : (4 forms) -// -// * BTCW imm8, r16 -// * BTCW r16, r16 -// * BTCW imm8, m16 -// * BTCW r16, m16 -// -func (self *Program) BTCW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTCW", 2, Operands { v0, v1 }) - // BTCW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTCW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTCW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTCW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xbb) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTCW") - } - return p -} - -// BTL performs "Bit Test". -// -// Mnemonic : BT -// Supported forms : (4 forms) -// -// * BTL imm8, r32 -// * BTL r32, r32 -// * BTL imm8, m32 -// * BTL r32, m32 -// -func (self *Program) BTL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTL", 2, Operands { v0, v1 }) - // BTL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xa3) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTL") - } - return p -} - -// BTQ performs "Bit Test". -// -// Mnemonic : BT -// Supported forms : (4 forms) -// -// * BTQ imm8, r64 -// * BTQ r64, r64 -// * BTQ imm8, m64 -// * BTQ r64, m64 -// -func (self *Program) BTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTQ", 2, Operands { v0, v1 }) - // BTQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xa3) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTQ") - } - return p -} - -// BTRL performs "Bit Test and Reset". -// -// Mnemonic : BTR -// Supported forms : (4 forms) -// -// * BTRL imm8, r32 -// * BTRL r32, r32 -// * BTRL imm8, m32 -// * BTRL r32, m32 -// -func (self *Program) BTRL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTRL", 2, Operands { v0, v1 }) - // BTRL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTRL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xb3) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTRL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTRL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xb3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTRL") - } - return p -} - -// BTRQ performs "Bit Test and Reset". -// -// Mnemonic : BTR -// Supported forms : (4 forms) -// -// * BTRQ imm8, r64 -// * BTRQ r64, r64 -// * BTRQ imm8, m64 -// * BTRQ r64, m64 -// -func (self *Program) BTRQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTRQ", 2, Operands { v0, v1 }) - // BTRQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTRQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xb3) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTRQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTRQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xb3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTRQ") - } - return p -} - -// BTRW performs "Bit Test and Reset". -// -// Mnemonic : BTR -// Supported forms : (4 forms) -// -// * BTRW imm8, r16 -// * BTRW r16, r16 -// * BTRW imm8, m16 -// * BTRW r16, m16 -// -func (self *Program) BTRW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTRW", 2, Operands { v0, v1 }) - // BTRW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTRW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xb3) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTRW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTRW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xb3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTRW") - } - return p -} - -// BTSL performs "Bit Test and Set". -// -// Mnemonic : BTS -// Supported forms : (4 forms) -// -// * BTSL imm8, r32 -// * BTSL r32, r32 -// * BTSL imm8, m32 -// * BTSL r32, m32 -// -func (self *Program) BTSL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTSL", 2, Operands { v0, v1 }) - // BTSL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTSL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xab) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTSL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTSL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xab) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTSL") - } - return p -} - -// BTSQ performs "Bit Test and Set". -// -// Mnemonic : BTS -// Supported forms : (4 forms) -// -// * BTSQ imm8, r64 -// * BTSQ r64, r64 -// * BTSQ imm8, m64 -// * BTSQ r64, m64 -// -func (self *Program) BTSQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTSQ", 2, Operands { v0, v1 }) - // BTSQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTSQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xab) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTSQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTSQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xab) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTSQ") - } - return p -} - -// BTSW performs "Bit Test and Set". -// -// Mnemonic : BTS -// Supported forms : (4 forms) -// -// * BTSW imm8, r16 -// * BTSW r16, r16 -// * BTSW imm8, m16 -// * BTSW r16, m16 -// -func (self *Program) BTSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTSW", 2, Operands { v0, v1 }) - // BTSW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTSW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xab) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTSW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTSW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xab) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTSW") - } - return p -} - -// BTW performs "Bit Test". -// -// Mnemonic : BT -// Supported forms : (4 forms) -// -// * BTW imm8, r16 -// * BTW r16, r16 -// * BTW imm8, m16 -// * BTW r16, m16 -// -func (self *Program) BTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("BTW", 2, Operands { v0, v1 }) - // BTW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0xba) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // BTW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xa3) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // BTW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x0f) - m.emit(0xba) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // BTW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BTW") - } - return p -} - -// BZHI performs "Zero High Bits Starting with Specified Bit Position". -// -// Mnemonic : BZHI -// Supported forms : (4 forms) -// -// * BZHI r32, r32, r32 [BMI2] -// * BZHI r32, m32, r32 [BMI2] -// * BZHI r64, r64, r64 [BMI2] -// * BZHI r64, m64, r64 [BMI2] -// -func (self *Program) BZHI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("BZHI", 3, Operands { v0, v1, v2 }) - // BZHI r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // BZHI r32, m32, r32 - if isReg32(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // BZHI r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf8 ^ (hlcode(v[0]) << 3)) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // BZHI r64, m64, r64 - if isReg64(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for BZHI") - } - return p -} - -// CALL performs "Call Procedure". -// -// Mnemonic : CALL -// Supported forms : (1 form) -// -// * CALL rel32 -// -func (self *Program) CALL(v0 interface{}) *Instruction { - p := self.alloc("CALL", 1, Operands { v0 }) - // CALL rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xe8) - m.imm4(relv(v[0])) - }) - } - // CALL label - if isLabel(v0) { - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0xe8) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for CALL") - } - return p -} - -// CALLQ performs "Call Procedure". -// -// Mnemonic : CALL -// Supported forms : (2 forms) -// -// * CALLQ r64 -// * CALLQ m64 -// -func (self *Program) CALLQ(v0 interface{}) *Instruction { - p := self.alloc("CALLQ", 1, Operands { v0 }) - // CALLQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xd0 | lcode(v[0])) - }) - } - // CALLQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CALLQ") - } - return p -} - -// CBTW performs "Convert Byte to Word". -// -// Mnemonic : CBW -// Supported forms : (1 form) -// -// * CBTW -// -func (self *Program) CBTW() *Instruction { - p := self.alloc("CBTW", 0, Operands { }) - // CBTW - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x98) - }) - return p -} - -// CLC performs "Clear Carry Flag". -// -// Mnemonic : CLC -// Supported forms : (1 form) -// -// * CLC -// -func (self *Program) CLC() *Instruction { - p := self.alloc("CLC", 0, Operands { }) - // CLC - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf8) - }) - return p -} - -// CLD performs "Clear Direction Flag". -// -// Mnemonic : CLD -// Supported forms : (1 form) -// -// * CLD -// -func (self *Program) CLD() *Instruction { - p := self.alloc("CLD", 0, Operands { }) - // CLD - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xfc) - }) - return p -} - -// CLFLUSH performs "Flush Cache Line". -// -// Mnemonic : CLFLUSH -// Supported forms : (1 form) -// -// * CLFLUSH m8 [CLFLUSH] -// -func (self *Program) CLFLUSH(v0 interface{}) *Instruction { - p := self.alloc("CLFLUSH", 1, Operands { v0 }) - // CLFLUSH m8 - if isM8(v0) { - self.require(ISA_CLFLUSH) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0xae) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CLFLUSH") - } - return p -} - -// CLFLUSHOPT performs "Flush Cache Line Optimized". -// -// Mnemonic : CLFLUSHOPT -// Supported forms : (1 form) -// -// * CLFLUSHOPT m8 [CLFLUSHOPT] -// -func (self *Program) CLFLUSHOPT(v0 interface{}) *Instruction { - p := self.alloc("CLFLUSHOPT", 1, Operands { v0 }) - // CLFLUSHOPT m8 - if isM8(v0) { - self.require(ISA_CLFLUSHOPT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0xae) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CLFLUSHOPT") - } - return p -} - -// CLTD performs "Convert Doubleword to Quadword". -// -// Mnemonic : CDQ -// Supported forms : (1 form) -// -// * CLTD -// -func (self *Program) CLTD() *Instruction { - p := self.alloc("CLTD", 0, Operands { }) - // CLTD - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x99) - }) - return p -} - -// CLTQ performs "Convert Doubleword to Quadword". -// -// Mnemonic : CDQE -// Supported forms : (1 form) -// -// * CLTQ -// -func (self *Program) CLTQ() *Instruction { - p := self.alloc("CLTQ", 0, Operands { }) - // CLTQ - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x98) - }) - return p -} - -// CLWB performs "Cache Line Write Back". -// -// Mnemonic : CLWB -// Supported forms : (1 form) -// -// * CLWB m8 [CLWB] -// -func (self *Program) CLWB(v0 interface{}) *Instruction { - p := self.alloc("CLWB", 1, Operands { v0 }) - // CLWB m8 - if isM8(v0) { - self.require(ISA_CLWB) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0xae) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CLWB") - } - return p -} - -// CLZERO performs "Zero-out 64-bit Cache Line". -// -// Mnemonic : CLZERO -// Supported forms : (1 form) -// -// * CLZERO [CLZERO] -// -func (self *Program) CLZERO() *Instruction { - p := self.alloc("CLZERO", 0, Operands { }) - // CLZERO - self.require(ISA_CLZERO) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xfc) - }) - return p -} - -// CMC performs "Complement Carry Flag". -// -// Mnemonic : CMC -// Supported forms : (1 form) -// -// * CMC -// -func (self *Program) CMC() *Instruction { - p := self.alloc("CMC", 0, Operands { }) - // CMC - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf5) - }) - return p -} - -// CMOVA performs "Move if above (CF == 0 and ZF == 0)". -// -// Mnemonic : CMOVA -// Supported forms : (6 forms) -// -// * CMOVA r16, r16 [CMOV] -// * CMOVA m16, r16 [CMOV] -// * CMOVA r32, r32 [CMOV] -// * CMOVA m32, r32 [CMOV] -// * CMOVA r64, r64 [CMOV] -// * CMOVA m64, r64 [CMOV] -// -func (self *Program) CMOVA(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVA", 2, Operands { v0, v1 }) - // CMOVA r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x47) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVA m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x47) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVA r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x47) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVA m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x47) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVA r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x47) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVA m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x47) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVA") - } - return p -} - -// CMOVAE performs "Move if above or equal (CF == 0)". -// -// Mnemonic : CMOVAE -// Supported forms : (6 forms) -// -// * CMOVAE r16, r16 [CMOV] -// * CMOVAE m16, r16 [CMOV] -// * CMOVAE r32, r32 [CMOV] -// * CMOVAE m32, r32 [CMOV] -// * CMOVAE r64, r64 [CMOV] -// * CMOVAE m64, r64 [CMOV] -// -func (self *Program) CMOVAE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVAE", 2, Operands { v0, v1 }) - // CMOVAE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVAE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVAE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVAE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVAE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVAE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVAE") - } - return p -} - -// CMOVB performs "Move if below (CF == 1)". -// -// Mnemonic : CMOVB -// Supported forms : (6 forms) -// -// * CMOVB r16, r16 [CMOV] -// * CMOVB m16, r16 [CMOV] -// * CMOVB r32, r32 [CMOV] -// * CMOVB m32, r32 [CMOV] -// * CMOVB r64, r64 [CMOV] -// * CMOVB m64, r64 [CMOV] -// -func (self *Program) CMOVB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVB", 2, Operands { v0, v1 }) - // CMOVB r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVB m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVB r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVB m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVB r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVB m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVB") - } - return p -} - -// CMOVBE performs "Move if below or equal (CF == 1 or ZF == 1)". -// -// Mnemonic : CMOVBE -// Supported forms : (6 forms) -// -// * CMOVBE r16, r16 [CMOV] -// * CMOVBE m16, r16 [CMOV] -// * CMOVBE r32, r32 [CMOV] -// * CMOVBE m32, r32 [CMOV] -// * CMOVBE r64, r64 [CMOV] -// * CMOVBE m64, r64 [CMOV] -// -func (self *Program) CMOVBE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVBE", 2, Operands { v0, v1 }) - // CMOVBE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x46) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVBE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x46) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVBE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x46) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVBE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x46) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVBE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x46) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVBE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x46) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVBE") - } - return p -} - -// CMOVC performs "Move if carry (CF == 1)". -// -// Mnemonic : CMOVC -// Supported forms : (6 forms) -// -// * CMOVC r16, r16 [CMOV] -// * CMOVC m16, r16 [CMOV] -// * CMOVC r32, r32 [CMOV] -// * CMOVC m32, r32 [CMOV] -// * CMOVC r64, r64 [CMOV] -// * CMOVC m64, r64 [CMOV] -// -func (self *Program) CMOVC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVC", 2, Operands { v0, v1 }) - // CMOVC r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVC m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVC r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVC m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVC r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVC m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVC") - } - return p -} - -// CMOVE performs "Move if equal (ZF == 1)". -// -// Mnemonic : CMOVE -// Supported forms : (6 forms) -// -// * CMOVE r16, r16 [CMOV] -// * CMOVE m16, r16 [CMOV] -// * CMOVE r32, r32 [CMOV] -// * CMOVE m32, r32 [CMOV] -// * CMOVE r64, r64 [CMOV] -// * CMOVE m64, r64 [CMOV] -// -func (self *Program) CMOVE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVE", 2, Operands { v0, v1 }) - // CMOVE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVE") - } - return p -} - -// CMOVG performs "Move if greater (ZF == 0 and SF == OF)". -// -// Mnemonic : CMOVG -// Supported forms : (6 forms) -// -// * CMOVG r16, r16 [CMOV] -// * CMOVG m16, r16 [CMOV] -// * CMOVG r32, r32 [CMOV] -// * CMOVG m32, r32 [CMOV] -// * CMOVG r64, r64 [CMOV] -// * CMOVG m64, r64 [CMOV] -// -func (self *Program) CMOVG(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVG", 2, Operands { v0, v1 }) - // CMOVG r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVG m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVG r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVG m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVG r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVG m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVG") - } - return p -} - -// CMOVGE performs "Move if greater or equal (SF == OF)". -// -// Mnemonic : CMOVGE -// Supported forms : (6 forms) -// -// * CMOVGE r16, r16 [CMOV] -// * CMOVGE m16, r16 [CMOV] -// * CMOVGE r32, r32 [CMOV] -// * CMOVGE m32, r32 [CMOV] -// * CMOVGE r64, r64 [CMOV] -// * CMOVGE m64, r64 [CMOV] -// -func (self *Program) CMOVGE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVGE", 2, Operands { v0, v1 }) - // CMOVGE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVGE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVGE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVGE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVGE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVGE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVGE") - } - return p -} - -// CMOVL performs "Move if less (SF != OF)". -// -// Mnemonic : CMOVL -// Supported forms : (6 forms) -// -// * CMOVL r16, r16 [CMOV] -// * CMOVL m16, r16 [CMOV] -// * CMOVL r32, r32 [CMOV] -// * CMOVL m32, r32 [CMOV] -// * CMOVL r64, r64 [CMOV] -// * CMOVL m64, r64 [CMOV] -// -func (self *Program) CMOVL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVL", 2, Operands { v0, v1 }) - // CMOVL r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVL m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVL r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVL m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVL") - } - return p -} - -// CMOVLE performs "Move if less or equal (ZF == 1 or SF != OF)". -// -// Mnemonic : CMOVLE -// Supported forms : (6 forms) -// -// * CMOVLE r16, r16 [CMOV] -// * CMOVLE m16, r16 [CMOV] -// * CMOVLE r32, r32 [CMOV] -// * CMOVLE m32, r32 [CMOV] -// * CMOVLE r64, r64 [CMOV] -// * CMOVLE m64, r64 [CMOV] -// -func (self *Program) CMOVLE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVLE", 2, Operands { v0, v1 }) - // CMOVLE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVLE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVLE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVLE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVLE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVLE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVLE") - } - return p -} - -// CMOVNA performs "Move if not above (CF == 1 or ZF == 1)". -// -// Mnemonic : CMOVNA -// Supported forms : (6 forms) -// -// * CMOVNA r16, r16 [CMOV] -// * CMOVNA m16, r16 [CMOV] -// * CMOVNA r32, r32 [CMOV] -// * CMOVNA m32, r32 [CMOV] -// * CMOVNA r64, r64 [CMOV] -// * CMOVNA m64, r64 [CMOV] -// -func (self *Program) CMOVNA(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNA", 2, Operands { v0, v1 }) - // CMOVNA r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x46) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNA m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x46) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNA r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x46) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNA m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x46) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNA r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x46) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNA m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x46) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNA") - } - return p -} - -// CMOVNAE performs "Move if not above or equal (CF == 1)". -// -// Mnemonic : CMOVNAE -// Supported forms : (6 forms) -// -// * CMOVNAE r16, r16 [CMOV] -// * CMOVNAE m16, r16 [CMOV] -// * CMOVNAE r32, r32 [CMOV] -// * CMOVNAE m32, r32 [CMOV] -// * CMOVNAE r64, r64 [CMOV] -// * CMOVNAE m64, r64 [CMOV] -// -func (self *Program) CMOVNAE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNAE", 2, Operands { v0, v1 }) - // CMOVNAE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNAE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNAE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNAE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNAE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNAE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNAE") - } - return p -} - -// CMOVNB performs "Move if not below (CF == 0)". -// -// Mnemonic : CMOVNB -// Supported forms : (6 forms) -// -// * CMOVNB r16, r16 [CMOV] -// * CMOVNB m16, r16 [CMOV] -// * CMOVNB r32, r32 [CMOV] -// * CMOVNB m32, r32 [CMOV] -// * CMOVNB r64, r64 [CMOV] -// * CMOVNB m64, r64 [CMOV] -// -func (self *Program) CMOVNB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNB", 2, Operands { v0, v1 }) - // CMOVNB r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNB m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNB r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNB m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNB r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNB m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNB") - } - return p -} - -// CMOVNBE performs "Move if not below or equal (CF == 0 and ZF == 0)". -// -// Mnemonic : CMOVNBE -// Supported forms : (6 forms) -// -// * CMOVNBE r16, r16 [CMOV] -// * CMOVNBE m16, r16 [CMOV] -// * CMOVNBE r32, r32 [CMOV] -// * CMOVNBE m32, r32 [CMOV] -// * CMOVNBE r64, r64 [CMOV] -// * CMOVNBE m64, r64 [CMOV] -// -func (self *Program) CMOVNBE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNBE", 2, Operands { v0, v1 }) - // CMOVNBE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x47) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNBE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x47) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNBE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x47) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNBE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x47) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNBE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x47) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNBE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x47) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNBE") - } - return p -} - -// CMOVNC performs "Move if not carry (CF == 0)". -// -// Mnemonic : CMOVNC -// Supported forms : (6 forms) -// -// * CMOVNC r16, r16 [CMOV] -// * CMOVNC m16, r16 [CMOV] -// * CMOVNC r32, r32 [CMOV] -// * CMOVNC m32, r32 [CMOV] -// * CMOVNC r64, r64 [CMOV] -// * CMOVNC m64, r64 [CMOV] -// -func (self *Program) CMOVNC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNC", 2, Operands { v0, v1 }) - // CMOVNC r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNC m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNC r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNC m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNC r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x43) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNC m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x43) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNC") - } - return p -} - -// CMOVNE performs "Move if not equal (ZF == 0)". -// -// Mnemonic : CMOVNE -// Supported forms : (6 forms) -// -// * CMOVNE r16, r16 [CMOV] -// * CMOVNE m16, r16 [CMOV] -// * CMOVNE r32, r32 [CMOV] -// * CMOVNE m32, r32 [CMOV] -// * CMOVNE r64, r64 [CMOV] -// * CMOVNE m64, r64 [CMOV] -// -func (self *Program) CMOVNE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNE", 2, Operands { v0, v1 }) - // CMOVNE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x45) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x45) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x45) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x45) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x45) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x45) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNE") - } - return p -} - -// CMOVNG performs "Move if not greater (ZF == 1 or SF != OF)". -// -// Mnemonic : CMOVNG -// Supported forms : (6 forms) -// -// * CMOVNG r16, r16 [CMOV] -// * CMOVNG m16, r16 [CMOV] -// * CMOVNG r32, r32 [CMOV] -// * CMOVNG m32, r32 [CMOV] -// * CMOVNG r64, r64 [CMOV] -// * CMOVNG m64, r64 [CMOV] -// -func (self *Program) CMOVNG(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNG", 2, Operands { v0, v1 }) - // CMOVNG r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNG m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNG r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNG m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNG r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNG m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNG") - } - return p -} - -// CMOVNGE performs "Move if not greater or equal (SF != OF)". -// -// Mnemonic : CMOVNGE -// Supported forms : (6 forms) -// -// * CMOVNGE r16, r16 [CMOV] -// * CMOVNGE m16, r16 [CMOV] -// * CMOVNGE r32, r32 [CMOV] -// * CMOVNGE m32, r32 [CMOV] -// * CMOVNGE r64, r64 [CMOV] -// * CMOVNGE m64, r64 [CMOV] -// -func (self *Program) CMOVNGE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNGE", 2, Operands { v0, v1 }) - // CMOVNGE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNGE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNGE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNGE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNGE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNGE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNGE") - } - return p -} - -// CMOVNL performs "Move if not less (SF == OF)". -// -// Mnemonic : CMOVNL -// Supported forms : (6 forms) -// -// * CMOVNL r16, r16 [CMOV] -// * CMOVNL m16, r16 [CMOV] -// * CMOVNL r32, r32 [CMOV] -// * CMOVNL m32, r32 [CMOV] -// * CMOVNL r64, r64 [CMOV] -// * CMOVNL m64, r64 [CMOV] -// -func (self *Program) CMOVNL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNL", 2, Operands { v0, v1 }) - // CMOVNL r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNL m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNL r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNL m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNL") - } - return p -} - -// CMOVNLE performs "Move if not less or equal (ZF == 0 and SF == OF)". -// -// Mnemonic : CMOVNLE -// Supported forms : (6 forms) -// -// * CMOVNLE r16, r16 [CMOV] -// * CMOVNLE m16, r16 [CMOV] -// * CMOVNLE r32, r32 [CMOV] -// * CMOVNLE m32, r32 [CMOV] -// * CMOVNLE r64, r64 [CMOV] -// * CMOVNLE m64, r64 [CMOV] -// -func (self *Program) CMOVNLE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNLE", 2, Operands { v0, v1 }) - // CMOVNLE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNLE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNLE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNLE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNLE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNLE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNLE") - } - return p -} - -// CMOVNO performs "Move if not overflow (OF == 0)". -// -// Mnemonic : CMOVNO -// Supported forms : (6 forms) -// -// * CMOVNO r16, r16 [CMOV] -// * CMOVNO m16, r16 [CMOV] -// * CMOVNO r32, r32 [CMOV] -// * CMOVNO m32, r32 [CMOV] -// * CMOVNO r64, r64 [CMOV] -// * CMOVNO m64, r64 [CMOV] -// -func (self *Program) CMOVNO(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNO", 2, Operands { v0, v1 }) - // CMOVNO r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x41) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNO m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x41) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNO r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x41) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNO m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x41) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNO r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x41) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNO m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x41) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNO") - } - return p -} - -// CMOVNP performs "Move if not parity (PF == 0)". -// -// Mnemonic : CMOVNP -// Supported forms : (6 forms) -// -// * CMOVNP r16, r16 [CMOV] -// * CMOVNP m16, r16 [CMOV] -// * CMOVNP r32, r32 [CMOV] -// * CMOVNP m32, r32 [CMOV] -// * CMOVNP r64, r64 [CMOV] -// * CMOVNP m64, r64 [CMOV] -// -func (self *Program) CMOVNP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNP", 2, Operands { v0, v1 }) - // CMOVNP r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNP m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNP r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNP m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNP r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNP m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNP") - } - return p -} - -// CMOVNS performs "Move if not sign (SF == 0)". -// -// Mnemonic : CMOVNS -// Supported forms : (6 forms) -// -// * CMOVNS r16, r16 [CMOV] -// * CMOVNS m16, r16 [CMOV] -// * CMOVNS r32, r32 [CMOV] -// * CMOVNS m32, r32 [CMOV] -// * CMOVNS r64, r64 [CMOV] -// * CMOVNS m64, r64 [CMOV] -// -func (self *Program) CMOVNS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNS", 2, Operands { v0, v1 }) - // CMOVNS r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x49) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNS m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x49) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNS r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x49) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNS m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x49) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNS r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x49) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNS m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x49) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNS") - } - return p -} - -// CMOVNZ performs "Move if not zero (ZF == 0)". -// -// Mnemonic : CMOVNZ -// Supported forms : (6 forms) -// -// * CMOVNZ r16, r16 [CMOV] -// * CMOVNZ m16, r16 [CMOV] -// * CMOVNZ r32, r32 [CMOV] -// * CMOVNZ m32, r32 [CMOV] -// * CMOVNZ r64, r64 [CMOV] -// * CMOVNZ m64, r64 [CMOV] -// -func (self *Program) CMOVNZ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVNZ", 2, Operands { v0, v1 }) - // CMOVNZ r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x45) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNZ m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x45) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNZ r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x45) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNZ m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x45) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVNZ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x45) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVNZ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x45) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVNZ") - } - return p -} - -// CMOVO performs "Move if overflow (OF == 1)". -// -// Mnemonic : CMOVO -// Supported forms : (6 forms) -// -// * CMOVO r16, r16 [CMOV] -// * CMOVO m16, r16 [CMOV] -// * CMOVO r32, r32 [CMOV] -// * CMOVO m32, r32 [CMOV] -// * CMOVO r64, r64 [CMOV] -// * CMOVO m64, r64 [CMOV] -// -func (self *Program) CMOVO(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVO", 2, Operands { v0, v1 }) - // CMOVO r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x40) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVO m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x40) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVO r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x40) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVO m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x40) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVO r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x40) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVO m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x40) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVO") - } - return p -} - -// CMOVP performs "Move if parity (PF == 1)". -// -// Mnemonic : CMOVP -// Supported forms : (6 forms) -// -// * CMOVP r16, r16 [CMOV] -// * CMOVP m16, r16 [CMOV] -// * CMOVP r32, r32 [CMOV] -// * CMOVP m32, r32 [CMOV] -// * CMOVP r64, r64 [CMOV] -// * CMOVP m64, r64 [CMOV] -// -func (self *Program) CMOVP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVP", 2, Operands { v0, v1 }) - // CMOVP r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVP m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVP r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVP m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVP r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVP m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVP") - } - return p -} - -// CMOVPE performs "Move if parity even (PF == 1)". -// -// Mnemonic : CMOVPE -// Supported forms : (6 forms) -// -// * CMOVPE r16, r16 [CMOV] -// * CMOVPE m16, r16 [CMOV] -// * CMOVPE r32, r32 [CMOV] -// * CMOVPE m32, r32 [CMOV] -// * CMOVPE r64, r64 [CMOV] -// * CMOVPE m64, r64 [CMOV] -// -func (self *Program) CMOVPE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVPE", 2, Operands { v0, v1 }) - // CMOVPE r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVPE m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVPE r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVPE m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVPE r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVPE m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVPE") - } - return p -} - -// CMOVPO performs "Move if parity odd (PF == 0)". -// -// Mnemonic : CMOVPO -// Supported forms : (6 forms) -// -// * CMOVPO r16, r16 [CMOV] -// * CMOVPO m16, r16 [CMOV] -// * CMOVPO r32, r32 [CMOV] -// * CMOVPO m32, r32 [CMOV] -// * CMOVPO r64, r64 [CMOV] -// * CMOVPO m64, r64 [CMOV] -// -func (self *Program) CMOVPO(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVPO", 2, Operands { v0, v1 }) - // CMOVPO r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVPO m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVPO r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVPO m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x4b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVPO r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVPO m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x4b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVPO") - } - return p -} - -// CMOVS performs "Move if sign (SF == 1)". -// -// Mnemonic : CMOVS -// Supported forms : (6 forms) -// -// * CMOVS r16, r16 [CMOV] -// * CMOVS m16, r16 [CMOV] -// * CMOVS r32, r32 [CMOV] -// * CMOVS m32, r32 [CMOV] -// * CMOVS r64, r64 [CMOV] -// * CMOVS m64, r64 [CMOV] -// -func (self *Program) CMOVS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVS", 2, Operands { v0, v1 }) - // CMOVS r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x48) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVS m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x48) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVS r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x48) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVS m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x48) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVS r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x48) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVS m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x48) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVS") - } - return p -} - -// CMOVZ performs "Move if zero (ZF == 1)". -// -// Mnemonic : CMOVZ -// Supported forms : (6 forms) -// -// * CMOVZ r16, r16 [CMOV] -// * CMOVZ m16, r16 [CMOV] -// * CMOVZ r32, r32 [CMOV] -// * CMOVZ m32, r32 [CMOV] -// * CMOVZ r64, r64 [CMOV] -// * CMOVZ m64, r64 [CMOV] -// -func (self *Program) CMOVZ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMOVZ", 2, Operands { v0, v1 }) - // CMOVZ r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVZ m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVZ r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVZ m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMOVZ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMOVZ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_CMOV) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMOVZ") - } - return p -} - -// CMPB performs "Compare Two Operands". -// -// Mnemonic : CMP -// Supported forms : (6 forms) -// -// * CMPB imm8, al -// * CMPB imm8, r8 -// * CMPB r8, r8 -// * CMPB m8, r8 -// * CMPB imm8, m8 -// * CMPB r8, m8 -// -func (self *Program) CMPB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPB", 2, Operands { v0, v1 }) - // CMPB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x3c) - m.imm1(toImmAny(v[0])) - }) - } - // CMPB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x38) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMPB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x3a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMPB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // CMPB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x38) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPB") - } - return p -} - -// CMPL performs "Compare Two Operands". -// -// Mnemonic : CMP -// Supported forms : (8 forms) -// -// * CMPL imm32, eax -// * CMPL imm8, r32 -// * CMPL imm32, r32 -// * CMPL r32, r32 -// * CMPL m32, r32 -// * CMPL imm8, m32 -// * CMPL imm32, m32 -// * CMPL r32, m32 -// -func (self *Program) CMPL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPL", 2, Operands { v0, v1 }) - // CMPL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x3d) - m.imm4(toImmAny(v[0])) - }) - } - // CMPL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xf8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // CMPL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x39) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMPL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x3b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMPL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // CMPL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(7, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // CMPL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x39) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPL") - } - return p -} - -// CMPPD performs "Compare Packed Double-Precision Floating-Point Values". -// -// Mnemonic : CMPPD -// Supported forms : (2 forms) -// -// * CMPPD imm8, xmm, xmm [SSE2] -// * CMPPD imm8, m128, xmm [SSE2] -// -func (self *Program) CMPPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("CMPPD", 3, Operands { v0, v1, v2 }) - // CMPPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc2) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for CMPPD") - } - return p -} - -// CMPPS performs "Compare Packed Single-Precision Floating-Point Values". -// -// Mnemonic : CMPPS -// Supported forms : (2 forms) -// -// * CMPPS imm8, xmm, xmm [SSE] -// * CMPPS imm8, m128, xmm [SSE] -// -func (self *Program) CMPPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("CMPPS", 3, Operands { v0, v1, v2 }) - // CMPPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc2) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for CMPPS") - } - return p -} - -// CMPQ performs "Compare Two Operands". -// -// Mnemonic : CMP -// Supported forms : (8 forms) -// -// * CMPQ imm32, rax -// * CMPQ imm8, r64 -// * CMPQ imm32, r64 -// * CMPQ r64, r64 -// * CMPQ m64, r64 -// * CMPQ imm8, m64 -// * CMPQ imm32, m64 -// * CMPQ r64, m64 -// -func (self *Program) CMPQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPQ", 2, Operands { v0, v1 }) - // CMPQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x3d) - m.imm4(toImmAny(v[0])) - }) - } - // CMPQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xf8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // CMPQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x39) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMPQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMPQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // CMPQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(7, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // CMPQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x39) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPQ") - } - return p -} - -// CMPSD performs "Compare Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : CMPSD -// Supported forms : (2 forms) -// -// * CMPSD imm8, xmm, xmm [SSE2] -// * CMPSD imm8, m64, xmm [SSE2] -// -func (self *Program) CMPSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("CMPSD", 3, Operands { v0, v1, v2 }) - // CMPSD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPSD imm8, m64, xmm - if isImm8(v0) && isM64(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc2) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for CMPSD") - } - return p -} - -// CMPSS performs "Compare Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : CMPSS -// Supported forms : (2 forms) -// -// * CMPSS imm8, xmm, xmm [SSE] -// * CMPSS imm8, m32, xmm [SSE] -// -func (self *Program) CMPSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("CMPSS", 3, Operands { v0, v1, v2 }) - // CMPSS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPSS imm8, m32, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc2) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for CMPSS") - } - return p -} - -// CMPW performs "Compare Two Operands". -// -// Mnemonic : CMP -// Supported forms : (8 forms) -// -// * CMPW imm16, ax -// * CMPW imm8, r16 -// * CMPW imm16, r16 -// * CMPW r16, r16 -// * CMPW m16, r16 -// * CMPW imm8, m16 -// * CMPW imm16, m16 -// * CMPW r16, m16 -// -func (self *Program) CMPW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPW", 2, Operands { v0, v1 }) - // CMPW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x3d) - m.imm2(toImmAny(v[0])) - }) - } - // CMPW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // CMPW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xf8 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // CMPW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x39) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CMPW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x3b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CMPW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // CMPW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(7, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // CMPW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x39) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPW") - } - return p -} - -// CMPXCHG16B performs "Compare and Exchange 16 Bytes". -// -// Mnemonic : CMPXCHG16B -// Supported forms : (1 form) -// -// * CMPXCHG16B m128 -// -func (self *Program) CMPXCHG16B(v0 interface{}) *Instruction { - p := self.alloc("CMPXCHG16B", 1, Operands { v0 }) - // CMPXCHG16B m128 - if isM128(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0x0f) - m.emit(0xc7) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPXCHG16B") - } - return p -} - -// CMPXCHG8B performs "Compare and Exchange 8 Bytes". -// -// Mnemonic : CMPXCHG8B -// Supported forms : (1 form) -// -// * CMPXCHG8B m64 -// -func (self *Program) CMPXCHG8B(v0 interface{}) *Instruction { - p := self.alloc("CMPXCHG8B", 1, Operands { v0 }) - // CMPXCHG8B m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0xc7) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPXCHG8B") - } - return p -} - -// CMPXCHGB performs "Compare and Exchange". -// -// Mnemonic : CMPXCHG -// Supported forms : (2 forms) -// -// * CMPXCHGB r8, r8 -// * CMPXCHGB r8, m8 -// -func (self *Program) CMPXCHGB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPXCHGB", 2, Operands { v0, v1 }) - // CMPXCHGB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x0f) - m.emit(0xb0) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // CMPXCHGB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0xb0) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPXCHGB") - } - return p -} - -// CMPXCHGL performs "Compare and Exchange". -// -// Mnemonic : CMPXCHG -// Supported forms : (2 forms) -// -// * CMPXCHGL r32, r32 -// * CMPXCHGL r32, m32 -// -func (self *Program) CMPXCHGL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPXCHGL", 2, Operands { v0, v1 }) - // CMPXCHGL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xb1) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // CMPXCHGL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xb1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPXCHGL") - } - return p -} - -// CMPXCHGQ performs "Compare and Exchange". -// -// Mnemonic : CMPXCHG -// Supported forms : (2 forms) -// -// * CMPXCHGQ r64, r64 -// * CMPXCHGQ r64, m64 -// -func (self *Program) CMPXCHGQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPXCHGQ", 2, Operands { v0, v1 }) - // CMPXCHGQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xb1) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // CMPXCHGQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xb1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPXCHGQ") - } - return p -} - -// CMPXCHGW performs "Compare and Exchange". -// -// Mnemonic : CMPXCHG -// Supported forms : (2 forms) -// -// * CMPXCHGW r16, r16 -// * CMPXCHGW r16, m16 -// -func (self *Program) CMPXCHGW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CMPXCHGW", 2, Operands { v0, v1 }) - // CMPXCHGW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xb1) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // CMPXCHGW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xb1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CMPXCHGW") - } - return p -} - -// COMISD performs "Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : COMISD -// Supported forms : (2 forms) -// -// * COMISD xmm, xmm [SSE2] -// * COMISD m64, xmm [SSE2] -// -func (self *Program) COMISD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("COMISD", 2, Operands { v0, v1 }) - // COMISD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // COMISD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for COMISD") - } - return p -} - -// COMISS performs "Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : COMISS -// Supported forms : (2 forms) -// -// * COMISS xmm, xmm [SSE] -// * COMISS m32, xmm [SSE] -// -func (self *Program) COMISS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("COMISS", 2, Operands { v0, v1 }) - // COMISS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // COMISS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for COMISS") - } - return p -} - -// CPUID performs "CPU Identification". -// -// Mnemonic : CPUID -// Supported forms : (1 form) -// -// * CPUID [CPUID] -// -func (self *Program) CPUID() *Instruction { - p := self.alloc("CPUID", 0, Operands { }) - // CPUID - self.require(ISA_CPUID) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0xa2) - }) - return p -} - -// CQTO performs "Convert Quadword to Octaword". -// -// Mnemonic : CQO -// Supported forms : (1 form) -// -// * CQTO -// -func (self *Program) CQTO() *Instruction { - p := self.alloc("CQTO", 0, Operands { }) - // CQTO - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x99) - }) - return p -} - -// CRC32B performs "Accumulate CRC32 Value". -// -// Mnemonic : CRC32 -// Supported forms : (4 forms) -// -// * CRC32B r8, r32 [SSE4.2] -// * CRC32B m8, r32 [SSE4.2] -// * CRC32B r8, r64 [SSE4.2] -// * CRC32B m8, r64 [SSE4.2] -// -func (self *Program) CRC32B(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CRC32B", 2, Operands { v0, v1 }) - // CRC32B r8, r32 - if isReg8(v0) && isReg32(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CRC32B m8, r32 - if isM8(v0) && isReg32(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CRC32B r8, r64 - if isReg8(v0) && isReg64(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CRC32B m8, r64 - if isM8(v0) && isReg64(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CRC32B") - } - return p -} - -// CRC32L performs "Accumulate CRC32 Value". -// -// Mnemonic : CRC32 -// Supported forms : (2 forms) -// -// * CRC32L r32, r32 [SSE4.2] -// * CRC32L m32, r32 [SSE4.2] -// -func (self *Program) CRC32L(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CRC32L", 2, Operands { v0, v1 }) - // CRC32L r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CRC32L m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CRC32L") - } - return p -} - -// CRC32Q performs "Accumulate CRC32 Value". -// -// Mnemonic : CRC32 -// Supported forms : (2 forms) -// -// * CRC32Q r64, r64 [SSE4.2] -// * CRC32Q m64, r64 [SSE4.2] -// -func (self *Program) CRC32Q(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CRC32Q", 2, Operands { v0, v1 }) - // CRC32Q r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CRC32Q m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CRC32Q") - } - return p -} - -// CRC32W performs "Accumulate CRC32 Value". -// -// Mnemonic : CRC32 -// Supported forms : (2 forms) -// -// * CRC32W r16, r32 [SSE4.2] -// * CRC32W m16, r32 [SSE4.2] -// -func (self *Program) CRC32W(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CRC32W", 2, Operands { v0, v1 }) - // CRC32W r16, r32 - if isReg16(v0) && isReg32(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CRC32W m16, r32 - if isM16(v0) && isReg32(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CRC32W") - } - return p -} - -// CVTDQ2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". -// -// Mnemonic : CVTDQ2PD -// Supported forms : (2 forms) -// -// * CVTDQ2PD xmm, xmm [SSE2] -// * CVTDQ2PD m64, xmm [SSE2] -// -func (self *Program) CVTDQ2PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTDQ2PD", 2, Operands { v0, v1 }) - // CVTDQ2PD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTDQ2PD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTDQ2PD") - } - return p -} - -// CVTDQ2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". -// -// Mnemonic : CVTDQ2PS -// Supported forms : (2 forms) -// -// * CVTDQ2PS xmm, xmm [SSE2] -// * CVTDQ2PS m128, xmm [SSE2] -// -func (self *Program) CVTDQ2PS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTDQ2PS", 2, Operands { v0, v1 }) - // CVTDQ2PS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTDQ2PS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTDQ2PS") - } - return p -} - -// CVTPD2DQ performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTPD2DQ -// Supported forms : (2 forms) -// -// * CVTPD2DQ xmm, xmm [SSE2] -// * CVTPD2DQ m128, xmm [SSE2] -// -func (self *Program) CVTPD2DQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPD2DQ", 2, Operands { v0, v1 }) - // CVTPD2DQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPD2DQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPD2DQ") - } - return p -} - -// CVTPD2PI performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTPD2PI -// Supported forms : (2 forms) -// -// * CVTPD2PI xmm, mm [SSE] -// * CVTPD2PI m128, mm [SSE] -// -func (self *Program) CVTPD2PI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPD2PI", 2, Operands { v0, v1 }) - // CVTPD2PI xmm, mm - if isXMM(v0) && isMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPD2PI m128, mm - if isM128(v0) && isMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPD2PI") - } - return p -} - -// CVTPD2PS performs "Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values". -// -// Mnemonic : CVTPD2PS -// Supported forms : (2 forms) -// -// * CVTPD2PS xmm, xmm [SSE2] -// * CVTPD2PS m128, xmm [SSE2] -// -func (self *Program) CVTPD2PS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPD2PS", 2, Operands { v0, v1 }) - // CVTPD2PS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPD2PS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPD2PS") - } - return p -} - -// CVTPI2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". -// -// Mnemonic : CVTPI2PD -// Supported forms : (2 forms) -// -// * CVTPI2PD mm, xmm [SSE2] -// * CVTPI2PD m64, xmm [SSE2] -// -func (self *Program) CVTPI2PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPI2PD", 2, Operands { v0, v1 }) - // CVTPI2PD mm, xmm - if isMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPI2PD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPI2PD") - } - return p -} - -// CVTPI2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". -// -// Mnemonic : CVTPI2PS -// Supported forms : (2 forms) -// -// * CVTPI2PS mm, xmm [SSE] -// * CVTPI2PS m64, xmm [SSE] -// -func (self *Program) CVTPI2PS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPI2PS", 2, Operands { v0, v1 }) - // CVTPI2PS mm, xmm - if isMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPI2PS m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPI2PS") - } - return p -} - -// CVTPS2DQ performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTPS2DQ -// Supported forms : (2 forms) -// -// * CVTPS2DQ xmm, xmm [SSE2] -// * CVTPS2DQ m128, xmm [SSE2] -// -func (self *Program) CVTPS2DQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPS2DQ", 2, Operands { v0, v1 }) - // CVTPS2DQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPS2DQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPS2DQ") - } - return p -} - -// CVTPS2PD performs "Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values". -// -// Mnemonic : CVTPS2PD -// Supported forms : (2 forms) -// -// * CVTPS2PD xmm, xmm [SSE2] -// * CVTPS2PD m64, xmm [SSE2] -// -func (self *Program) CVTPS2PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPS2PD", 2, Operands { v0, v1 }) - // CVTPS2PD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPS2PD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPS2PD") - } - return p -} - -// CVTPS2PI performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTPS2PI -// Supported forms : (2 forms) -// -// * CVTPS2PI xmm, mm [SSE] -// * CVTPS2PI m64, mm [SSE] -// -func (self *Program) CVTPS2PI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTPS2PI", 2, Operands { v0, v1 }) - // CVTPS2PI xmm, mm - if isXMM(v0) && isMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTPS2PI m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTPS2PI") - } - return p -} - -// CVTSD2SI performs "Convert Scalar Double-Precision FP Value to Integer". -// -// Mnemonic : CVTSD2SI -// Supported forms : (4 forms) -// -// * CVTSD2SI xmm, r32 [SSE2] -// * CVTSD2SI m64, r32 [SSE2] -// * CVTSD2SI xmm, r64 [SSE2] -// * CVTSD2SI m64, r64 [SSE2] -// -func (self *Program) CVTSD2SI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTSD2SI", 2, Operands { v0, v1 }) - // CVTSD2SI xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSD2SI m64, r32 - if isM64(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CVTSD2SI xmm, r64 - if isXMM(v0) && isReg64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSD2SI m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTSD2SI") - } - return p -} - -// CVTSD2SS performs "Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value". -// -// Mnemonic : CVTSD2SS -// Supported forms : (2 forms) -// -// * CVTSD2SS xmm, xmm [SSE2] -// * CVTSD2SS m64, xmm [SSE2] -// -func (self *Program) CVTSD2SS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTSD2SS", 2, Operands { v0, v1 }) - // CVTSD2SS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSD2SS m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTSD2SS") - } - return p -} - -// CVTSI2SD performs "Convert Dword Integer to Scalar Double-Precision FP Value". -// -// Mnemonic : CVTSI2SD -// Supported forms : (4 forms) -// -// * CVTSI2SD r32, xmm [SSE2] -// * CVTSI2SD r64, xmm [SSE2] -// * CVTSI2SD m32, xmm [SSE2] -// * CVTSI2SD m64, xmm [SSE2] -// -func (self *Program) CVTSI2SD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTSI2SD", 2, Operands { v0, v1 }) - // CVTSI2SD r32, xmm - if isReg32(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSI2SD r64, xmm - if isReg64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSI2SD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CVTSI2SD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTSI2SD") - } - return p -} - -// CVTSI2SS performs "Convert Dword Integer to Scalar Single-Precision FP Value". -// -// Mnemonic : CVTSI2SS -// Supported forms : (4 forms) -// -// * CVTSI2SS r32, xmm [SSE] -// * CVTSI2SS r64, xmm [SSE] -// * CVTSI2SS m32, xmm [SSE] -// * CVTSI2SS m64, xmm [SSE] -// -func (self *Program) CVTSI2SS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTSI2SS", 2, Operands { v0, v1 }) - // CVTSI2SS r32, xmm - if isReg32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSI2SS r64, xmm - if isReg64(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSI2SS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CVTSI2SS m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTSI2SS") - } - return p -} - -// CVTSS2SD performs "Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value". -// -// Mnemonic : CVTSS2SD -// Supported forms : (2 forms) -// -// * CVTSS2SD xmm, xmm [SSE2] -// * CVTSS2SD m32, xmm [SSE2] -// -func (self *Program) CVTSS2SD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTSS2SD", 2, Operands { v0, v1 }) - // CVTSS2SD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSS2SD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTSS2SD") - } - return p -} - -// CVTSS2SI performs "Convert Scalar Single-Precision FP Value to Dword Integer". -// -// Mnemonic : CVTSS2SI -// Supported forms : (4 forms) -// -// * CVTSS2SI xmm, r32 [SSE] -// * CVTSS2SI m32, r32 [SSE] -// * CVTSS2SI xmm, r64 [SSE] -// * CVTSS2SI m32, r64 [SSE] -// -func (self *Program) CVTSS2SI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTSS2SI", 2, Operands { v0, v1 }) - // CVTSS2SI xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSS2SI m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CVTSS2SI xmm, r64 - if isXMM(v0) && isReg64(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTSS2SI m32, r64 - if isM32(v0) && isReg64(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTSS2SI") - } - return p -} - -// CVTTPD2DQ performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTTPD2DQ -// Supported forms : (2 forms) -// -// * CVTTPD2DQ xmm, xmm [SSE2] -// * CVTTPD2DQ m128, xmm [SSE2] -// -func (self *Program) CVTTPD2DQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTTPD2DQ", 2, Operands { v0, v1 }) - // CVTTPD2DQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTPD2DQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTTPD2DQ") - } - return p -} - -// CVTTPD2PI performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTTPD2PI -// Supported forms : (2 forms) -// -// * CVTTPD2PI xmm, mm [SSE2] -// * CVTTPD2PI m128, mm [SSE2] -// -func (self *Program) CVTTPD2PI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTTPD2PI", 2, Operands { v0, v1 }) - // CVTTPD2PI xmm, mm - if isXMM(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTPD2PI m128, mm - if isM128(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTTPD2PI") - } - return p -} - -// CVTTPS2DQ performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTTPS2DQ -// Supported forms : (2 forms) -// -// * CVTTPS2DQ xmm, xmm [SSE2] -// * CVTTPS2DQ m128, xmm [SSE2] -// -func (self *Program) CVTTPS2DQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTTPS2DQ", 2, Operands { v0, v1 }) - // CVTTPS2DQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTPS2DQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTTPS2DQ") - } - return p -} - -// CVTTPS2PI performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : CVTTPS2PI -// Supported forms : (2 forms) -// -// * CVTTPS2PI xmm, mm [SSE] -// * CVTTPS2PI m64, mm [SSE] -// -func (self *Program) CVTTPS2PI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTTPS2PI", 2, Operands { v0, v1 }) - // CVTTPS2PI xmm, mm - if isXMM(v0) && isMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTPS2PI m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTTPS2PI") - } - return p -} - -// CVTTSD2SI performs "Convert with Truncation Scalar Double-Precision FP Value to Signed Integer". -// -// Mnemonic : CVTTSD2SI -// Supported forms : (4 forms) -// -// * CVTTSD2SI xmm, r32 [SSE2] -// * CVTTSD2SI m64, r32 [SSE2] -// * CVTTSD2SI xmm, r64 [SSE2] -// * CVTTSD2SI m64, r64 [SSE2] -// -func (self *Program) CVTTSD2SI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTTSD2SI", 2, Operands { v0, v1 }) - // CVTTSD2SI xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTSD2SI m64, r32 - if isM64(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CVTTSD2SI xmm, r64 - if isXMM(v0) && isReg64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTSD2SI m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTTSD2SI") - } - return p -} - -// CVTTSS2SI performs "Convert with Truncation Scalar Single-Precision FP Value to Dword Integer". -// -// Mnemonic : CVTTSS2SI -// Supported forms : (4 forms) -// -// * CVTTSS2SI xmm, r32 [SSE] -// * CVTTSS2SI m32, r32 [SSE] -// * CVTTSS2SI xmm, r64 [SSE] -// * CVTTSS2SI m32, r64 [SSE] -// -func (self *Program) CVTTSS2SI(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("CVTTSS2SI", 2, Operands { v0, v1 }) - // CVTTSS2SI xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTSS2SI m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // CVTTSS2SI xmm, r64 - if isXMM(v0) && isReg64(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // CVTTSS2SI m32, r64 - if isM32(v0) && isReg64(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for CVTTSS2SI") - } - return p -} - -// CWTD performs "Convert Word to Doubleword". -// -// Mnemonic : CWD -// Supported forms : (1 form) -// -// * CWTD -// -func (self *Program) CWTD() *Instruction { - p := self.alloc("CWTD", 0, Operands { }) - // CWTD - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x99) - }) - return p -} - -// CWTL performs "Convert Word to Doubleword". -// -// Mnemonic : CWDE -// Supported forms : (1 form) -// -// * CWTL -// -func (self *Program) CWTL() *Instruction { - p := self.alloc("CWTL", 0, Operands { }) - // CWTL - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x98) - }) - return p -} - -// DECB performs "Decrement by 1". -// -// Mnemonic : DEC -// Supported forms : (2 forms) -// -// * DECB r8 -// * DECB m8 -// -func (self *Program) DECB(v0 interface{}) *Instruction { - p := self.alloc("DECB", 1, Operands { v0 }) - // DECB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xfe) - m.emit(0xc8 | lcode(v[0])) - }) - } - // DECB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xfe) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DECB") - } - return p -} - -// DECL performs "Decrement by 1". -// -// Mnemonic : DEC -// Supported forms : (2 forms) -// -// * DECL r32 -// * DECL m32 -// -func (self *Program) DECL(v0 interface{}) *Instruction { - p := self.alloc("DECL", 1, Operands { v0 }) - // DECL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xc8 | lcode(v[0])) - }) - } - // DECL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DECL") - } - return p -} - -// DECQ performs "Decrement by 1". -// -// Mnemonic : DEC -// Supported forms : (2 forms) -// -// * DECQ r64 -// * DECQ m64 -// -func (self *Program) DECQ(v0 interface{}) *Instruction { - p := self.alloc("DECQ", 1, Operands { v0 }) - // DECQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xff) - m.emit(0xc8 | lcode(v[0])) - }) - } - // DECQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xff) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DECQ") - } - return p -} - -// DECW performs "Decrement by 1". -// -// Mnemonic : DEC -// Supported forms : (2 forms) -// -// * DECW r16 -// * DECW m16 -// -func (self *Program) DECW(v0 interface{}) *Instruction { - p := self.alloc("DECW", 1, Operands { v0 }) - // DECW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xc8 | lcode(v[0])) - }) - } - // DECW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DECW") - } - return p -} - -// DIVB performs "Unsigned Divide". -// -// Mnemonic : DIV -// Supported forms : (2 forms) -// -// * DIVB r8 -// * DIVB m8 -// -func (self *Program) DIVB(v0 interface{}) *Instruction { - p := self.alloc("DIVB", 1, Operands { v0 }) - // DIVB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xf6) - m.emit(0xf0 | lcode(v[0])) - }) - } - // DIVB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf6) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVB") - } - return p -} - -// DIVL performs "Unsigned Divide". -// -// Mnemonic : DIV -// Supported forms : (2 forms) -// -// * DIVL r32 -// * DIVL m32 -// -func (self *Program) DIVL(v0 interface{}) *Instruction { - p := self.alloc("DIVL", 1, Operands { v0 }) - // DIVL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xf0 | lcode(v[0])) - }) - } - // DIVL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVL") - } - return p -} - -// DIVPD performs "Divide Packed Double-Precision Floating-Point Values". -// -// Mnemonic : DIVPD -// Supported forms : (2 forms) -// -// * DIVPD xmm, xmm [SSE2] -// * DIVPD m128, xmm [SSE2] -// -func (self *Program) DIVPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("DIVPD", 2, Operands { v0, v1 }) - // DIVPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // DIVPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVPD") - } - return p -} - -// DIVPS performs "Divide Packed Single-Precision Floating-Point Values". -// -// Mnemonic : DIVPS -// Supported forms : (2 forms) -// -// * DIVPS xmm, xmm [SSE] -// * DIVPS m128, xmm [SSE] -// -func (self *Program) DIVPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("DIVPS", 2, Operands { v0, v1 }) - // DIVPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // DIVPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVPS") - } - return p -} - -// DIVQ performs "Unsigned Divide". -// -// Mnemonic : DIV -// Supported forms : (2 forms) -// -// * DIVQ r64 -// * DIVQ m64 -// -func (self *Program) DIVQ(v0 interface{}) *Instruction { - p := self.alloc("DIVQ", 1, Operands { v0 }) - // DIVQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xf7) - m.emit(0xf0 | lcode(v[0])) - }) - } - // DIVQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xf7) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVQ") - } - return p -} - -// DIVSD performs "Divide Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : DIVSD -// Supported forms : (2 forms) -// -// * DIVSD xmm, xmm [SSE2] -// * DIVSD m64, xmm [SSE2] -// -func (self *Program) DIVSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("DIVSD", 2, Operands { v0, v1 }) - // DIVSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // DIVSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVSD") - } - return p -} - -// DIVSS performs "Divide Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : DIVSS -// Supported forms : (2 forms) -// -// * DIVSS xmm, xmm [SSE] -// * DIVSS m32, xmm [SSE] -// -func (self *Program) DIVSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("DIVSS", 2, Operands { v0, v1 }) - // DIVSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // DIVSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVSS") - } - return p -} - -// DIVW performs "Unsigned Divide". -// -// Mnemonic : DIV -// Supported forms : (2 forms) -// -// * DIVW r16 -// * DIVW m16 -// -func (self *Program) DIVW(v0 interface{}) *Instruction { - p := self.alloc("DIVW", 1, Operands { v0 }) - // DIVW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xf0 | lcode(v[0])) - }) - } - // DIVW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for DIVW") - } - return p -} - -// DPPD performs "Dot Product of Packed Double Precision Floating-Point Values". -// -// Mnemonic : DPPD -// Supported forms : (2 forms) -// -// * DPPD imm8, xmm, xmm [SSE4.1] -// * DPPD imm8, m128, xmm [SSE4.1] -// -func (self *Program) DPPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("DPPD", 3, Operands { v0, v1, v2 }) - // DPPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x41) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // DPPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x41) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for DPPD") - } - return p -} - -// DPPS performs "Dot Product of Packed Single Precision Floating-Point Values". -// -// Mnemonic : DPPS -// Supported forms : (2 forms) -// -// * DPPS imm8, xmm, xmm [SSE4.1] -// * DPPS imm8, m128, xmm [SSE4.1] -// -func (self *Program) DPPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("DPPS", 3, Operands { v0, v1, v2 }) - // DPPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // DPPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for DPPS") - } - return p -} - -// EMMS performs "Exit MMX State". -// -// Mnemonic : EMMS -// Supported forms : (1 form) -// -// * EMMS [MMX] -// -func (self *Program) EMMS() *Instruction { - p := self.alloc("EMMS", 0, Operands { }) - // EMMS - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x77) - }) - return p -} - -// EXTRACTPS performs "Extract Packed Single Precision Floating-Point Value". -// -// Mnemonic : EXTRACTPS -// Supported forms : (2 forms) -// -// * EXTRACTPS imm8, xmm, r32 [SSE4.1] -// * EXTRACTPS imm8, xmm, m32 [SSE4.1] -// -func (self *Program) EXTRACTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("EXTRACTPS", 3, Operands { v0, v1, v2 }) - // EXTRACTPS imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x17) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // EXTRACTPS imm8, xmm, m32 - if isImm8(v0) && isXMM(v1) && isM32(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x17) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for EXTRACTPS") - } - return p -} - -// EXTRQ performs "Extract Field". -// -// Mnemonic : EXTRQ -// Supported forms : (2 forms) -// -// * EXTRQ xmm, xmm [SSE4A] -// * EXTRQ imm8, imm8, xmm [SSE4A] -// -func (self *Program) EXTRQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("EXTRQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("EXTRQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction EXTRQ takes 2 or 3 operands") - } - // EXTRQ xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4A) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // EXTRQ imm8, imm8, xmm - if len(vv) == 1 && isImm8(v0) && isImm8(v1) && isXMM(vv[0]) { - self.require(ISA_SSE4A) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[2], false) - m.emit(0x0f) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2])) - m.imm1(toImmAny(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for EXTRQ") - } - return p -} - -// FEMMS performs "Fast Exit Multimedia State". -// -// Mnemonic : FEMMS -// Supported forms : (1 form) -// -// * FEMMS [FEMMS] -// -func (self *Program) FEMMS() *Instruction { - p := self.alloc("FEMMS", 0, Operands { }) - // FEMMS - self.require(ISA_FEMMS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x0e) - }) - return p -} - -// HADDPD performs "Packed Double-FP Horizontal Add". -// -// Mnemonic : HADDPD -// Supported forms : (2 forms) -// -// * HADDPD xmm, xmm [SSE3] -// * HADDPD m128, xmm [SSE3] -// -func (self *Program) HADDPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("HADDPD", 2, Operands { v0, v1 }) - // HADDPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // HADDPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x7c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for HADDPD") - } - return p -} - -// HADDPS performs "Packed Single-FP Horizontal Add". -// -// Mnemonic : HADDPS -// Supported forms : (2 forms) -// -// * HADDPS xmm, xmm [SSE3] -// * HADDPS m128, xmm [SSE3] -// -func (self *Program) HADDPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("HADDPS", 2, Operands { v0, v1 }) - // HADDPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // HADDPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x7c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for HADDPS") - } - return p -} - -// HSUBPD performs "Packed Double-FP Horizontal Subtract". -// -// Mnemonic : HSUBPD -// Supported forms : (2 forms) -// -// * HSUBPD xmm, xmm [SSE3] -// * HSUBPD m128, xmm [SSE3] -// -func (self *Program) HSUBPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("HSUBPD", 2, Operands { v0, v1 }) - // HSUBPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // HSUBPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x7d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for HSUBPD") - } - return p -} - -// HSUBPS performs "Packed Single-FP Horizontal Subtract". -// -// Mnemonic : HSUBPS -// Supported forms : (2 forms) -// -// * HSUBPS xmm, xmm [SSE3] -// * HSUBPS m128, xmm [SSE3] -// -func (self *Program) HSUBPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("HSUBPS", 2, Operands { v0, v1 }) - // HSUBPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // HSUBPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x7d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for HSUBPS") - } - return p -} - -// IDIVB performs "Signed Divide". -// -// Mnemonic : IDIV -// Supported forms : (2 forms) -// -// * IDIVB r8 -// * IDIVB m8 -// -func (self *Program) IDIVB(v0 interface{}) *Instruction { - p := self.alloc("IDIVB", 1, Operands { v0 }) - // IDIVB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xf6) - m.emit(0xf8 | lcode(v[0])) - }) - } - // IDIVB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf6) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for IDIVB") - } - return p -} - -// IDIVL performs "Signed Divide". -// -// Mnemonic : IDIV -// Supported forms : (2 forms) -// -// * IDIVL r32 -// * IDIVL m32 -// -func (self *Program) IDIVL(v0 interface{}) *Instruction { - p := self.alloc("IDIVL", 1, Operands { v0 }) - // IDIVL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xf8 | lcode(v[0])) - }) - } - // IDIVL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for IDIVL") - } - return p -} - -// IDIVQ performs "Signed Divide". -// -// Mnemonic : IDIV -// Supported forms : (2 forms) -// -// * IDIVQ r64 -// * IDIVQ m64 -// -func (self *Program) IDIVQ(v0 interface{}) *Instruction { - p := self.alloc("IDIVQ", 1, Operands { v0 }) - // IDIVQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xf7) - m.emit(0xf8 | lcode(v[0])) - }) - } - // IDIVQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xf7) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for IDIVQ") - } - return p -} - -// IDIVW performs "Signed Divide". -// -// Mnemonic : IDIV -// Supported forms : (2 forms) -// -// * IDIVW r16 -// * IDIVW m16 -// -func (self *Program) IDIVW(v0 interface{}) *Instruction { - p := self.alloc("IDIVW", 1, Operands { v0 }) - // IDIVW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xf8 | lcode(v[0])) - }) - } - // IDIVW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for IDIVW") - } - return p -} - -// IMULB performs "Signed Multiply". -// -// Mnemonic : IMUL -// Supported forms : (2 forms) -// -// * IMULB r8 -// * IMULB m8 -// -func (self *Program) IMULB(v0 interface{}) *Instruction { - p := self.alloc("IMULB", 1, Operands { v0 }) - // IMULB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xf6) - m.emit(0xe8 | lcode(v[0])) - }) - } - // IMULB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf6) - m.mrsd(5, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for IMULB") - } - return p -} - -// IMULL performs "Signed Multiply". -// -// Mnemonic : IMUL -// Supported forms : (8 forms) -// -// * IMULL r32 -// * IMULL m32 -// * IMULL r32, r32 -// * IMULL m32, r32 -// * IMULL imm8, r32, r32 -// * IMULL imm32, r32, r32 -// * IMULL imm8, m32, r32 -// * IMULL imm32, m32, r32 -// -func (self *Program) IMULL(v0 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("IMULL", 1, Operands { v0 }) - case 1 : p = self.alloc("IMULL", 2, Operands { v0, vv[0] }) - case 2 : p = self.alloc("IMULL", 3, Operands { v0, vv[0], vv[1] }) - default : panic("instruction IMULL takes 1 or 2 or 3 operands") - } - // IMULL r32 - if len(vv) == 0 && isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xe8 | lcode(v[0])) - }) - } - // IMULL m32 - if len(vv) == 0 && isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(5, addr(v[0]), 1) - }) - } - // IMULL r32, r32 - if len(vv) == 1 && isReg32(v0) && isReg32(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // IMULL m32, r32 - if len(vv) == 1 && isM32(v0) && isReg32(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xaf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // IMULL imm8, r32, r32 - if len(vv) == 2 && isImm8(v0) && isReg32(vv[0]) && isReg32(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // IMULL imm32, r32, r32 - if len(vv) == 2 && isImm32(v0) && isReg32(vv[0]) && isReg32(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // IMULL imm8, m32, r32 - if len(vv) == 2 && isImm8(v0) && isM32(vv[0]) && isReg32(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // IMULL imm32, m32, r32 - if len(vv) == 2 && isImm32(v0) && isM32(vv[0]) && isReg32(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for IMULL") - } - return p -} - -// IMULQ performs "Signed Multiply". -// -// Mnemonic : IMUL -// Supported forms : (8 forms) -// -// * IMULQ r64 -// * IMULQ m64 -// * IMULQ r64, r64 -// * IMULQ m64, r64 -// * IMULQ imm8, r64, r64 -// * IMULQ imm32, r64, r64 -// * IMULQ imm8, m64, r64 -// * IMULQ imm32, m64, r64 -// -func (self *Program) IMULQ(v0 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("IMULQ", 1, Operands { v0 }) - case 1 : p = self.alloc("IMULQ", 2, Operands { v0, vv[0] }) - case 2 : p = self.alloc("IMULQ", 3, Operands { v0, vv[0], vv[1] }) - default : panic("instruction IMULQ takes 1 or 2 or 3 operands") - } - // IMULQ r64 - if len(vv) == 0 && isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xf7) - m.emit(0xe8 | lcode(v[0])) - }) - } - // IMULQ m64 - if len(vv) == 0 && isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xf7) - m.mrsd(5, addr(v[0]), 1) - }) - } - // IMULQ r64, r64 - if len(vv) == 1 && isReg64(v0) && isReg64(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // IMULQ m64, r64 - if len(vv) == 1 && isM64(v0) && isReg64(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xaf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // IMULQ imm8, r64, r64 - if len(vv) == 2 && isImm8(v0) && isReg64(vv[0]) && isReg64(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // IMULQ imm32, r64, r64 - if len(vv) == 2 && isImm32(v0) && isReg64(vv[0]) && isReg64(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // IMULQ imm8, m64, r64 - if len(vv) == 2 && isImm8(v0) && isM64(vv[0]) && isReg64(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[2]), addr(v[1])) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // IMULQ imm32, m64, r64 - if len(vv) == 2 && isImm32(v0) && isM64(vv[0]) && isReg64(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[2]), addr(v[1])) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for IMULQ") - } - return p -} - -// IMULW performs "Signed Multiply". -// -// Mnemonic : IMUL -// Supported forms : (8 forms) -// -// * IMULW r16 -// * IMULW m16 -// * IMULW r16, r16 -// * IMULW m16, r16 -// * IMULW imm8, r16, r16 -// * IMULW imm16, r16, r16 -// * IMULW imm8, m16, r16 -// * IMULW imm16, m16, r16 -// -func (self *Program) IMULW(v0 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("IMULW", 1, Operands { v0 }) - case 1 : p = self.alloc("IMULW", 2, Operands { v0, vv[0] }) - case 2 : p = self.alloc("IMULW", 3, Operands { v0, vv[0], vv[1] }) - default : panic("instruction IMULW takes 1 or 2 or 3 operands") - } - // IMULW r16 - if len(vv) == 0 && isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xe8 | lcode(v[0])) - }) - } - // IMULW m16 - if len(vv) == 0 && isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(5, addr(v[0]), 1) - }) - } - // IMULW r16, r16 - if len(vv) == 1 && isReg16(v0) && isReg16(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // IMULW m16, r16 - if len(vv) == 1 && isM16(v0) && isReg16(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xaf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // IMULW imm8, r16, r16 - if len(vv) == 2 && isImm8(v0) && isReg16(vv[0]) && isReg16(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // IMULW imm16, r16, r16 - if len(vv) == 2 && isImm16(v0) && isReg16(vv[0]) && isReg16(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // IMULW imm8, m16, r16 - if len(vv) == 2 && isImm8(v0) && isM16(vv[0]) && isReg16(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // IMULW imm16, m16, r16 - if len(vv) == 2 && isImm16(v0) && isM16(vv[0]) && isReg16(vv[1]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for IMULW") - } - return p -} - -// INCB performs "Increment by 1". -// -// Mnemonic : INC -// Supported forms : (2 forms) -// -// * INCB r8 -// * INCB m8 -// -func (self *Program) INCB(v0 interface{}) *Instruction { - p := self.alloc("INCB", 1, Operands { v0 }) - // INCB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[0])) - }) - } - // INCB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xfe) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for INCB") - } - return p -} - -// INCL performs "Increment by 1". -// -// Mnemonic : INC -// Supported forms : (2 forms) -// -// * INCL r32 -// * INCL m32 -// -func (self *Program) INCL(v0 interface{}) *Instruction { - p := self.alloc("INCL", 1, Operands { v0 }) - // INCL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xc0 | lcode(v[0])) - }) - } - // INCL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for INCL") - } - return p -} - -// INCQ performs "Increment by 1". -// -// Mnemonic : INC -// Supported forms : (2 forms) -// -// * INCQ r64 -// * INCQ m64 -// -func (self *Program) INCQ(v0 interface{}) *Instruction { - p := self.alloc("INCQ", 1, Operands { v0 }) - // INCQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xff) - m.emit(0xc0 | lcode(v[0])) - }) - } - // INCQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xff) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for INCQ") - } - return p -} - -// INCW performs "Increment by 1". -// -// Mnemonic : INC -// Supported forms : (2 forms) -// -// * INCW r16 -// * INCW m16 -// -func (self *Program) INCW(v0 interface{}) *Instruction { - p := self.alloc("INCW", 1, Operands { v0 }) - // INCW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xc0 | lcode(v[0])) - }) - } - // INCW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for INCW") - } - return p -} - -// INSERTPS performs "Insert Packed Single Precision Floating-Point Value". -// -// Mnemonic : INSERTPS -// Supported forms : (2 forms) -// -// * INSERTPS imm8, xmm, xmm [SSE4.1] -// * INSERTPS imm8, m32, xmm [SSE4.1] -// -func (self *Program) INSERTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("INSERTPS", 3, Operands { v0, v1, v2 }) - // INSERTPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x21) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // INSERTPS imm8, m32, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x21) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for INSERTPS") - } - return p -} - -// INSERTQ performs "Insert Field". -// -// Mnemonic : INSERTQ -// Supported forms : (2 forms) -// -// * INSERTQ xmm, xmm [SSE4A] -// * INSERTQ imm8, imm8, xmm, xmm [SSE4A] -// -func (self *Program) INSERTQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("INSERTQ", 2, Operands { v0, v1 }) - case 2 : p = self.alloc("INSERTQ", 4, Operands { v0, v1, vv[0], vv[1] }) - default : panic("instruction INSERTQ takes 2 or 4 operands") - } - // INSERTQ xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4A) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // INSERTQ imm8, imm8, xmm, xmm - if len(vv) == 2 && isImm8(v0) && isImm8(v1) && isXMM(vv[0]) && isXMM(vv[1]) { - self.require(ISA_SSE4A) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[3]), v[2], false) - m.emit(0x0f) - m.emit(0x78) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for INSERTQ") - } - return p -} - -// INT performs "Call to Interrupt Procedure". -// -// Mnemonic : INT -// Supported forms : (2 forms) -// -// * INT 3 -// * INT imm8 -// -func (self *Program) INT(v0 interface{}) *Instruction { - p := self.alloc("INT", 1, Operands { v0 }) - // INT 3 - if isConst3(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xcc) - }) - } - // INT imm8 - if isImm8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xcd) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for INT") - } - return p -} - -// JA performs "Jump if above (CF == 0 and ZF == 0)". -// -// Mnemonic : JA -// Supported forms : (2 forms) -// -// * JA rel8 -// * JA rel32 -// -func (self *Program) JA(v0 interface{}) *Instruction { - p := self.alloc("JA", 1, Operands { v0 }) - p.branch = _B_conditional - // JA rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x77) - m.imm1(relv(v[0])) - }) - } - // JA rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x87) - m.imm4(relv(v[0])) - }) - } - // JA label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x77) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x87) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JA") - } - return p -} - -// JAE performs "Jump if above or equal (CF == 0)". -// -// Mnemonic : JAE -// Supported forms : (2 forms) -// -// * JAE rel8 -// * JAE rel32 -// -func (self *Program) JAE(v0 interface{}) *Instruction { - p := self.alloc("JAE", 1, Operands { v0 }) - p.branch = _B_conditional - // JAE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x73) - m.imm1(relv(v[0])) - }) - } - // JAE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x83) - m.imm4(relv(v[0])) - }) - } - // JAE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x73) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x83) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JAE") - } - return p -} - -// JB performs "Jump if below (CF == 1)". -// -// Mnemonic : JB -// Supported forms : (2 forms) -// -// * JB rel8 -// * JB rel32 -// -func (self *Program) JB(v0 interface{}) *Instruction { - p := self.alloc("JB", 1, Operands { v0 }) - p.branch = _B_conditional - // JB rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x72) - m.imm1(relv(v[0])) - }) - } - // JB rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x82) - m.imm4(relv(v[0])) - }) - } - // JB label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x72) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x82) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JB") - } - return p -} - -// JBE performs "Jump if below or equal (CF == 1 or ZF == 1)". -// -// Mnemonic : JBE -// Supported forms : (2 forms) -// -// * JBE rel8 -// * JBE rel32 -// -func (self *Program) JBE(v0 interface{}) *Instruction { - p := self.alloc("JBE", 1, Operands { v0 }) - p.branch = _B_conditional - // JBE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x76) - m.imm1(relv(v[0])) - }) - } - // JBE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x86) - m.imm4(relv(v[0])) - }) - } - // JBE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x76) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x86) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JBE") - } - return p -} - -// JC performs "Jump if carry (CF == 1)". -// -// Mnemonic : JC -// Supported forms : (2 forms) -// -// * JC rel8 -// * JC rel32 -// -func (self *Program) JC(v0 interface{}) *Instruction { - p := self.alloc("JC", 1, Operands { v0 }) - p.branch = _B_conditional - // JC rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x72) - m.imm1(relv(v[0])) - }) - } - // JC rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x82) - m.imm4(relv(v[0])) - }) - } - // JC label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x72) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x82) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JC") - } - return p -} - -// JE performs "Jump if equal (ZF == 1)". -// -// Mnemonic : JE -// Supported forms : (2 forms) -// -// * JE rel8 -// * JE rel32 -// -func (self *Program) JE(v0 interface{}) *Instruction { - p := self.alloc("JE", 1, Operands { v0 }) - p.branch = _B_conditional - // JE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x74) - m.imm1(relv(v[0])) - }) - } - // JE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x84) - m.imm4(relv(v[0])) - }) - } - // JE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x74) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x84) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JE") - } - return p -} - -// JECXZ performs "Jump if ECX register is 0". -// -// Mnemonic : JECXZ -// Supported forms : (1 form) -// -// * JECXZ rel8 -// -func (self *Program) JECXZ(v0 interface{}) *Instruction { - p := self.alloc("JECXZ", 1, Operands { v0 }) - p.branch = _B_conditional - // JECXZ rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xe3) - m.imm1(relv(v[0])) - }) - } - // JECXZ label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0xe3) - m.imm1(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JECXZ") - } - return p -} - -// JG performs "Jump if greater (ZF == 0 and SF == OF)". -// -// Mnemonic : JG -// Supported forms : (2 forms) -// -// * JG rel8 -// * JG rel32 -// -func (self *Program) JG(v0 interface{}) *Instruction { - p := self.alloc("JG", 1, Operands { v0 }) - p.branch = _B_conditional - // JG rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7f) - m.imm1(relv(v[0])) - }) - } - // JG rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8f) - m.imm4(relv(v[0])) - }) - } - // JG label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7f) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8f) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JG") - } - return p -} - -// JGE performs "Jump if greater or equal (SF == OF)". -// -// Mnemonic : JGE -// Supported forms : (2 forms) -// -// * JGE rel8 -// * JGE rel32 -// -func (self *Program) JGE(v0 interface{}) *Instruction { - p := self.alloc("JGE", 1, Operands { v0 }) - p.branch = _B_conditional - // JGE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7d) - m.imm1(relv(v[0])) - }) - } - // JGE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8d) - m.imm4(relv(v[0])) - }) - } - // JGE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7d) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8d) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JGE") - } - return p -} - -// JL performs "Jump if less (SF != OF)". -// -// Mnemonic : JL -// Supported forms : (2 forms) -// -// * JL rel8 -// * JL rel32 -// -func (self *Program) JL(v0 interface{}) *Instruction { - p := self.alloc("JL", 1, Operands { v0 }) - p.branch = _B_conditional - // JL rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7c) - m.imm1(relv(v[0])) - }) - } - // JL rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8c) - m.imm4(relv(v[0])) - }) - } - // JL label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7c) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8c) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JL") - } - return p -} - -// JLE performs "Jump if less or equal (ZF == 1 or SF != OF)". -// -// Mnemonic : JLE -// Supported forms : (2 forms) -// -// * JLE rel8 -// * JLE rel32 -// -func (self *Program) JLE(v0 interface{}) *Instruction { - p := self.alloc("JLE", 1, Operands { v0 }) - p.branch = _B_conditional - // JLE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7e) - m.imm1(relv(v[0])) - }) - } - // JLE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8e) - m.imm4(relv(v[0])) - }) - } - // JLE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7e) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8e) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JLE") - } - return p -} - -// JMP performs "Jump Unconditionally". -// -// Mnemonic : JMP -// Supported forms : (2 forms) -// -// * JMP rel8 -// * JMP rel32 -// -func (self *Program) JMP(v0 interface{}) *Instruction { - p := self.alloc("JMP", 1, Operands { v0 }) - p.branch = _B_unconditional - // JMP rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xeb) - m.imm1(relv(v[0])) - }) - } - // JMP rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xe9) - m.imm4(relv(v[0])) - }) - } - // JMP label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0xeb) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0xe9) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JMP") - } - return p -} - -// JMPQ performs "Jump Unconditionally". -// -// Mnemonic : JMP -// Supported forms : (2 forms) -// -// * JMPQ r64 -// * JMPQ m64 -// -func (self *Program) JMPQ(v0 interface{}) *Instruction { - p := self.alloc("JMPQ", 1, Operands { v0 }) - // JMPQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xe0 | lcode(v[0])) - }) - } - // JMPQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(4, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for JMPQ") - } - return p -} - -// JNA performs "Jump if not above (CF == 1 or ZF == 1)". -// -// Mnemonic : JNA -// Supported forms : (2 forms) -// -// * JNA rel8 -// * JNA rel32 -// -func (self *Program) JNA(v0 interface{}) *Instruction { - p := self.alloc("JNA", 1, Operands { v0 }) - p.branch = _B_conditional - // JNA rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x76) - m.imm1(relv(v[0])) - }) - } - // JNA rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x86) - m.imm4(relv(v[0])) - }) - } - // JNA label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x76) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x86) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNA") - } - return p -} - -// JNAE performs "Jump if not above or equal (CF == 1)". -// -// Mnemonic : JNAE -// Supported forms : (2 forms) -// -// * JNAE rel8 -// * JNAE rel32 -// -func (self *Program) JNAE(v0 interface{}) *Instruction { - p := self.alloc("JNAE", 1, Operands { v0 }) - p.branch = _B_conditional - // JNAE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x72) - m.imm1(relv(v[0])) - }) - } - // JNAE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x82) - m.imm4(relv(v[0])) - }) - } - // JNAE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x72) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x82) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNAE") - } - return p -} - -// JNB performs "Jump if not below (CF == 0)". -// -// Mnemonic : JNB -// Supported forms : (2 forms) -// -// * JNB rel8 -// * JNB rel32 -// -func (self *Program) JNB(v0 interface{}) *Instruction { - p := self.alloc("JNB", 1, Operands { v0 }) - p.branch = _B_conditional - // JNB rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x73) - m.imm1(relv(v[0])) - }) - } - // JNB rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x83) - m.imm4(relv(v[0])) - }) - } - // JNB label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x73) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x83) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNB") - } - return p -} - -// JNBE performs "Jump if not below or equal (CF == 0 and ZF == 0)". -// -// Mnemonic : JNBE -// Supported forms : (2 forms) -// -// * JNBE rel8 -// * JNBE rel32 -// -func (self *Program) JNBE(v0 interface{}) *Instruction { - p := self.alloc("JNBE", 1, Operands { v0 }) - p.branch = _B_conditional - // JNBE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x77) - m.imm1(relv(v[0])) - }) - } - // JNBE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x87) - m.imm4(relv(v[0])) - }) - } - // JNBE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x77) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x87) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNBE") - } - return p -} - -// JNC performs "Jump if not carry (CF == 0)". -// -// Mnemonic : JNC -// Supported forms : (2 forms) -// -// * JNC rel8 -// * JNC rel32 -// -func (self *Program) JNC(v0 interface{}) *Instruction { - p := self.alloc("JNC", 1, Operands { v0 }) - p.branch = _B_conditional - // JNC rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x73) - m.imm1(relv(v[0])) - }) - } - // JNC rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x83) - m.imm4(relv(v[0])) - }) - } - // JNC label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x73) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x83) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNC") - } - return p -} - -// JNE performs "Jump if not equal (ZF == 0)". -// -// Mnemonic : JNE -// Supported forms : (2 forms) -// -// * JNE rel8 -// * JNE rel32 -// -func (self *Program) JNE(v0 interface{}) *Instruction { - p := self.alloc("JNE", 1, Operands { v0 }) - p.branch = _B_conditional - // JNE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x75) - m.imm1(relv(v[0])) - }) - } - // JNE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x85) - m.imm4(relv(v[0])) - }) - } - // JNE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x75) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x85) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNE") - } - return p -} - -// JNG performs "Jump if not greater (ZF == 1 or SF != OF)". -// -// Mnemonic : JNG -// Supported forms : (2 forms) -// -// * JNG rel8 -// * JNG rel32 -// -func (self *Program) JNG(v0 interface{}) *Instruction { - p := self.alloc("JNG", 1, Operands { v0 }) - p.branch = _B_conditional - // JNG rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7e) - m.imm1(relv(v[0])) - }) - } - // JNG rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8e) - m.imm4(relv(v[0])) - }) - } - // JNG label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7e) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8e) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNG") - } - return p -} - -// JNGE performs "Jump if not greater or equal (SF != OF)". -// -// Mnemonic : JNGE -// Supported forms : (2 forms) -// -// * JNGE rel8 -// * JNGE rel32 -// -func (self *Program) JNGE(v0 interface{}) *Instruction { - p := self.alloc("JNGE", 1, Operands { v0 }) - p.branch = _B_conditional - // JNGE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7c) - m.imm1(relv(v[0])) - }) - } - // JNGE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8c) - m.imm4(relv(v[0])) - }) - } - // JNGE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7c) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8c) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNGE") - } - return p -} - -// JNL performs "Jump if not less (SF == OF)". -// -// Mnemonic : JNL -// Supported forms : (2 forms) -// -// * JNL rel8 -// * JNL rel32 -// -func (self *Program) JNL(v0 interface{}) *Instruction { - p := self.alloc("JNL", 1, Operands { v0 }) - p.branch = _B_conditional - // JNL rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7d) - m.imm1(relv(v[0])) - }) - } - // JNL rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8d) - m.imm4(relv(v[0])) - }) - } - // JNL label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7d) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8d) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNL") - } - return p -} - -// JNLE performs "Jump if not less or equal (ZF == 0 and SF == OF)". -// -// Mnemonic : JNLE -// Supported forms : (2 forms) -// -// * JNLE rel8 -// * JNLE rel32 -// -func (self *Program) JNLE(v0 interface{}) *Instruction { - p := self.alloc("JNLE", 1, Operands { v0 }) - p.branch = _B_conditional - // JNLE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7f) - m.imm1(relv(v[0])) - }) - } - // JNLE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8f) - m.imm4(relv(v[0])) - }) - } - // JNLE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7f) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8f) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNLE") - } - return p -} - -// JNO performs "Jump if not overflow (OF == 0)". -// -// Mnemonic : JNO -// Supported forms : (2 forms) -// -// * JNO rel8 -// * JNO rel32 -// -func (self *Program) JNO(v0 interface{}) *Instruction { - p := self.alloc("JNO", 1, Operands { v0 }) - p.branch = _B_conditional - // JNO rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x71) - m.imm1(relv(v[0])) - }) - } - // JNO rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x81) - m.imm4(relv(v[0])) - }) - } - // JNO label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x71) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x81) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNO") - } - return p -} - -// JNP performs "Jump if not parity (PF == 0)". -// -// Mnemonic : JNP -// Supported forms : (2 forms) -// -// * JNP rel8 -// * JNP rel32 -// -func (self *Program) JNP(v0 interface{}) *Instruction { - p := self.alloc("JNP", 1, Operands { v0 }) - p.branch = _B_conditional - // JNP rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7b) - m.imm1(relv(v[0])) - }) - } - // JNP rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8b) - m.imm4(relv(v[0])) - }) - } - // JNP label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7b) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8b) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNP") - } - return p -} - -// JNS performs "Jump if not sign (SF == 0)". -// -// Mnemonic : JNS -// Supported forms : (2 forms) -// -// * JNS rel8 -// * JNS rel32 -// -func (self *Program) JNS(v0 interface{}) *Instruction { - p := self.alloc("JNS", 1, Operands { v0 }) - p.branch = _B_conditional - // JNS rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x79) - m.imm1(relv(v[0])) - }) - } - // JNS rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x89) - m.imm4(relv(v[0])) - }) - } - // JNS label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x79) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x89) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNS") - } - return p -} - -// JNZ performs "Jump if not zero (ZF == 0)". -// -// Mnemonic : JNZ -// Supported forms : (2 forms) -// -// * JNZ rel8 -// * JNZ rel32 -// -func (self *Program) JNZ(v0 interface{}) *Instruction { - p := self.alloc("JNZ", 1, Operands { v0 }) - p.branch = _B_conditional - // JNZ rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x75) - m.imm1(relv(v[0])) - }) - } - // JNZ rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x85) - m.imm4(relv(v[0])) - }) - } - // JNZ label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x75) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x85) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JNZ") - } - return p -} - -// JO performs "Jump if overflow (OF == 1)". -// -// Mnemonic : JO -// Supported forms : (2 forms) -// -// * JO rel8 -// * JO rel32 -// -func (self *Program) JO(v0 interface{}) *Instruction { - p := self.alloc("JO", 1, Operands { v0 }) - p.branch = _B_conditional - // JO rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x70) - m.imm1(relv(v[0])) - }) - } - // JO rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x80) - m.imm4(relv(v[0])) - }) - } - // JO label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x70) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x80) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JO") - } - return p -} - -// JP performs "Jump if parity (PF == 1)". -// -// Mnemonic : JP -// Supported forms : (2 forms) -// -// * JP rel8 -// * JP rel32 -// -func (self *Program) JP(v0 interface{}) *Instruction { - p := self.alloc("JP", 1, Operands { v0 }) - p.branch = _B_conditional - // JP rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7a) - m.imm1(relv(v[0])) - }) - } - // JP rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8a) - m.imm4(relv(v[0])) - }) - } - // JP label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7a) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8a) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JP") - } - return p -} - -// JPE performs "Jump if parity even (PF == 1)". -// -// Mnemonic : JPE -// Supported forms : (2 forms) -// -// * JPE rel8 -// * JPE rel32 -// -func (self *Program) JPE(v0 interface{}) *Instruction { - p := self.alloc("JPE", 1, Operands { v0 }) - p.branch = _B_conditional - // JPE rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7a) - m.imm1(relv(v[0])) - }) - } - // JPE rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8a) - m.imm4(relv(v[0])) - }) - } - // JPE label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7a) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8a) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JPE") - } - return p -} - -// JPO performs "Jump if parity odd (PF == 0)". -// -// Mnemonic : JPO -// Supported forms : (2 forms) -// -// * JPO rel8 -// * JPO rel32 -// -func (self *Program) JPO(v0 interface{}) *Instruction { - p := self.alloc("JPO", 1, Operands { v0 }) - p.branch = _B_conditional - // JPO rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x7b) - m.imm1(relv(v[0])) - }) - } - // JPO rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8b) - m.imm4(relv(v[0])) - }) - } - // JPO label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x7b) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x8b) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JPO") - } - return p -} - -// JRCXZ performs "Jump if RCX register is 0". -// -// Mnemonic : JRCXZ -// Supported forms : (1 form) -// -// * JRCXZ rel8 -// -func (self *Program) JRCXZ(v0 interface{}) *Instruction { - p := self.alloc("JRCXZ", 1, Operands { v0 }) - p.branch = _B_conditional - // JRCXZ rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xe3) - m.imm1(relv(v[0])) - }) - } - // JRCXZ label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0xe3) - m.imm1(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JRCXZ") - } - return p -} - -// JS performs "Jump if sign (SF == 1)". -// -// Mnemonic : JS -// Supported forms : (2 forms) -// -// * JS rel8 -// * JS rel32 -// -func (self *Program) JS(v0 interface{}) *Instruction { - p := self.alloc("JS", 1, Operands { v0 }) - p.branch = _B_conditional - // JS rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x78) - m.imm1(relv(v[0])) - }) - } - // JS rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x88) - m.imm4(relv(v[0])) - }) - } - // JS label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x78) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x88) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JS") - } - return p -} - -// JZ performs "Jump if zero (ZF == 1)". -// -// Mnemonic : JZ -// Supported forms : (2 forms) -// -// * JZ rel8 -// * JZ rel32 -// -func (self *Program) JZ(v0 interface{}) *Instruction { - p := self.alloc("JZ", 1, Operands { v0 }) - p.branch = _B_conditional - // JZ rel8 - if isRel8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x74) - m.imm1(relv(v[0])) - }) - } - // JZ rel32 - if isRel32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x84) - m.imm4(relv(v[0])) - }) - } - // JZ label - if isLabel(v0) { - p.add(_F_rel1, func(m *_Encoding, v []interface{}) { - m.emit(0x74) - m.imm1(relv(v[0])) - }) - p.add(_F_rel4, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x84) - m.imm4(relv(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for JZ") - } - return p -} - -// KADDB performs "ADD Two 8-bit Masks". -// -// Mnemonic : KADDB -// Supported forms : (1 form) -// -// * KADDB k, k, k [AVX512DQ] -// -func (self *Program) KADDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KADDB", 3, Operands { v0, v1, v2 }) - // KADDB k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KADDB") - } - return p -} - -// KADDD performs "ADD Two 32-bit Masks". -// -// Mnemonic : KADDD -// Supported forms : (1 form) -// -// * KADDD k, k, k [AVX512BW] -// -func (self *Program) KADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KADDD", 3, Operands { v0, v1, v2 }) - // KADDD k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KADDD") - } - return p -} - -// KADDQ performs "ADD Two 64-bit Masks". -// -// Mnemonic : KADDQ -// Supported forms : (1 form) -// -// * KADDQ k, k, k [AVX512BW] -// -func (self *Program) KADDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KADDQ", 3, Operands { v0, v1, v2 }) - // KADDQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KADDQ") - } - return p -} - -// KADDW performs "ADD Two 16-bit Masks". -// -// Mnemonic : KADDW -// Supported forms : (1 form) -// -// * KADDW k, k, k [AVX512DQ] -// -func (self *Program) KADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KADDW", 3, Operands { v0, v1, v2 }) - // KADDW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KADDW") - } - return p -} - -// KANDB performs "Bitwise Logical AND 8-bit Masks". -// -// Mnemonic : KANDB -// Supported forms : (1 form) -// -// * KANDB k, k, k [AVX512DQ] -// -func (self *Program) KANDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDB", 3, Operands { v0, v1, v2 }) - // KANDB k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x41) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDB") - } - return p -} - -// KANDD performs "Bitwise Logical AND 32-bit Masks". -// -// Mnemonic : KANDD -// Supported forms : (1 form) -// -// * KANDD k, k, k [AVX512BW] -// -func (self *Program) KANDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDD", 3, Operands { v0, v1, v2 }) - // KANDD k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x41) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDD") - } - return p -} - -// KANDNB performs "Bitwise Logical AND NOT 8-bit Masks". -// -// Mnemonic : KANDNB -// Supported forms : (1 form) -// -// * KANDNB k, k, k [AVX512DQ] -// -func (self *Program) KANDNB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDNB", 3, Operands { v0, v1, v2 }) - // KANDNB k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDNB") - } - return p -} - -// KANDND performs "Bitwise Logical AND NOT 32-bit Masks". -// -// Mnemonic : KANDND -// Supported forms : (1 form) -// -// * KANDND k, k, k [AVX512BW] -// -func (self *Program) KANDND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDND", 3, Operands { v0, v1, v2 }) - // KANDND k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDND") - } - return p -} - -// KANDNQ performs "Bitwise Logical AND NOT 64-bit Masks". -// -// Mnemonic : KANDNQ -// Supported forms : (1 form) -// -// * KANDNQ k, k, k [AVX512BW] -// -func (self *Program) KANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDNQ", 3, Operands { v0, v1, v2 }) - // KANDNQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDNQ") - } - return p -} - -// KANDNW performs "Bitwise Logical AND NOT 16-bit Masks". -// -// Mnemonic : KANDNW -// Supported forms : (1 form) -// -// * KANDNW k, k, k [AVX512F] -// -func (self *Program) KANDNW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDNW", 3, Operands { v0, v1, v2 }) - // KANDNW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDNW") - } - return p -} - -// KANDQ performs "Bitwise Logical AND 64-bit Masks". -// -// Mnemonic : KANDQ -// Supported forms : (1 form) -// -// * KANDQ k, k, k [AVX512BW] -// -func (self *Program) KANDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDQ", 3, Operands { v0, v1, v2 }) - // KANDQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x41) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDQ") - } - return p -} - -// KANDW performs "Bitwise Logical AND 16-bit Masks". -// -// Mnemonic : KANDW -// Supported forms : (1 form) -// -// * KANDW k, k, k [AVX512F] -// -func (self *Program) KANDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KANDW", 3, Operands { v0, v1, v2 }) - // KANDW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x41) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KANDW") - } - return p -} - -// KMOVB performs "Move 8-bit Mask". -// -// Mnemonic : KMOVB -// Supported forms : (5 forms) -// -// * KMOVB k, k [AVX512DQ] -// * KMOVB r32, k [AVX512DQ] -// * KMOVB m8, k [AVX512DQ] -// * KMOVB k, r32 [AVX512DQ] -// * KMOVB k, m8 [AVX512DQ] -// -func (self *Program) KMOVB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KMOVB", 2, Operands { v0, v1 }) - // KMOVB k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, nil, 0) - m.emit(0x90) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVB r32, k - if isReg32(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[0], 0) - m.emit(0x92) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVB m8, k - if isM8(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, addr(v[0]), 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // KMOVB k, r32 - if isK(v0) && isReg32(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), nil, 0) - m.emit(0x93) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVB k, m8 - if isK(v0) && isM8(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, addr(v[1]), 0) - m.emit(0x91) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for KMOVB") - } - return p -} - -// KMOVD performs "Move 32-bit Mask". -// -// Mnemonic : KMOVD -// Supported forms : (5 forms) -// -// * KMOVD k, k [AVX512BW] -// * KMOVD r32, k [AVX512BW] -// * KMOVD m32, k [AVX512BW] -// * KMOVD k, r32 [AVX512BW] -// * KMOVD k, m32 [AVX512BW] -// -func (self *Program) KMOVD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KMOVD", 2, Operands { v0, v1 }) - // KMOVD k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf9) - m.emit(0x90) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVD r32, k - if isReg32(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, 0, v[0], 0) - m.emit(0x92) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVD m32, k - if isM32(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x81, 0, addr(v[0]), 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // KMOVD k, r32 - if isK(v0) && isReg32(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), nil, 0) - m.emit(0x93) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVD k, m32 - if isK(v0) && isM32(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x81, 0, addr(v[1]), 0) - m.emit(0x91) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for KMOVD") - } - return p -} - -// KMOVQ performs "Move 64-bit Mask". -// -// Mnemonic : KMOVQ -// Supported forms : (5 forms) -// -// * KMOVQ k, k [AVX512BW] -// * KMOVQ r64, k [AVX512BW] -// * KMOVQ m64, k [AVX512BW] -// * KMOVQ k, r64 [AVX512BW] -// * KMOVQ k, m64 [AVX512BW] -// -func (self *Program) KMOVQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KMOVQ", 2, Operands { v0, v1 }) - // KMOVQ k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf8) - m.emit(0x90) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVQ r64, k - if isReg64(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[0]) << 5)) - m.emit(0xfb) - m.emit(0x92) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVQ m64, k - if isM64(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x80, 0, addr(v[0]), 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // KMOVQ k, r64 - if isK(v0) && isReg64(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[1]) << 7)) - m.emit(0xfb) - m.emit(0x93) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVQ k, m64 - if isK(v0) && isM64(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x80, 0, addr(v[1]), 0) - m.emit(0x91) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for KMOVQ") - } - return p -} - -// KMOVW performs "Move 16-bit Mask". -// -// Mnemonic : KMOVW -// Supported forms : (5 forms) -// -// * KMOVW k, k [AVX512F] -// * KMOVW r32, k [AVX512F] -// * KMOVW m16, k [AVX512F] -// * KMOVW k, r32 [AVX512F] -// * KMOVW k, m16 [AVX512F] -// -func (self *Program) KMOVW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KMOVW", 2, Operands { v0, v1 }) - // KMOVW k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, nil, 0) - m.emit(0x90) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVW r32, k - if isReg32(v0) && isK(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, v[0], 0) - m.emit(0x92) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVW m16, k - if isM16(v0) && isK(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, addr(v[0]), 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // KMOVW k, r32 - if isK(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), nil, 0) - m.emit(0x93) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // KMOVW k, m16 - if isK(v0) && isM16(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, addr(v[1]), 0) - m.emit(0x91) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for KMOVW") - } - return p -} - -// KNOTB performs "NOT 8-bit Mask Register". -// -// Mnemonic : KNOTB -// Supported forms : (1 form) -// -// * KNOTB k, k [AVX512DQ] -// -func (self *Program) KNOTB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KNOTB", 2, Operands { v0, v1 }) - // KNOTB k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, nil, 0) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KNOTB") - } - return p -} - -// KNOTD performs "NOT 32-bit Mask Register". -// -// Mnemonic : KNOTD -// Supported forms : (1 form) -// -// * KNOTD k, k [AVX512BW] -// -func (self *Program) KNOTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KNOTD", 2, Operands { v0, v1 }) - // KNOTD k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf9) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KNOTD") - } - return p -} - -// KNOTQ performs "NOT 64-bit Mask Register". -// -// Mnemonic : KNOTQ -// Supported forms : (1 form) -// -// * KNOTQ k, k [AVX512BW] -// -func (self *Program) KNOTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KNOTQ", 2, Operands { v0, v1 }) - // KNOTQ k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf8) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KNOTQ") - } - return p -} - -// KNOTW performs "NOT 16-bit Mask Register". -// -// Mnemonic : KNOTW -// Supported forms : (1 form) -// -// * KNOTW k, k [AVX512F] -// -func (self *Program) KNOTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KNOTW", 2, Operands { v0, v1 }) - // KNOTW k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, nil, 0) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KNOTW") - } - return p -} - -// KORB performs "Bitwise Logical OR 8-bit Masks". -// -// Mnemonic : KORB -// Supported forms : (1 form) -// -// * KORB k, k, k [AVX512DQ] -// -func (self *Program) KORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KORB", 3, Operands { v0, v1, v2 }) - // KORB k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORB") - } - return p -} - -// KORD performs "Bitwise Logical OR 32-bit Masks". -// -// Mnemonic : KORD -// Supported forms : (1 form) -// -// * KORD k, k, k [AVX512BW] -// -func (self *Program) KORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KORD", 3, Operands { v0, v1, v2 }) - // KORD k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORD") - } - return p -} - -// KORQ performs "Bitwise Logical OR 64-bit Masks". -// -// Mnemonic : KORQ -// Supported forms : (1 form) -// -// * KORQ k, k, k [AVX512BW] -// -func (self *Program) KORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KORQ", 3, Operands { v0, v1, v2 }) - // KORQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORQ") - } - return p -} - -// KORTESTB performs "OR 8-bit Masks and Set Flags". -// -// Mnemonic : KORTESTB -// Supported forms : (1 form) -// -// * KORTESTB k, k [AVX512DQ] -// -func (self *Program) KORTESTB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KORTESTB", 2, Operands { v0, v1 }) - // KORTESTB k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, nil, 0) - m.emit(0x98) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORTESTB") - } - return p -} - -// KORTESTD performs "OR 32-bit Masks and Set Flags". -// -// Mnemonic : KORTESTD -// Supported forms : (1 form) -// -// * KORTESTD k, k [AVX512BW] -// -func (self *Program) KORTESTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KORTESTD", 2, Operands { v0, v1 }) - // KORTESTD k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf9) - m.emit(0x98) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORTESTD") - } - return p -} - -// KORTESTQ performs "OR 64-bit Masks and Set Flags". -// -// Mnemonic : KORTESTQ -// Supported forms : (1 form) -// -// * KORTESTQ k, k [AVX512BW] -// -func (self *Program) KORTESTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KORTESTQ", 2, Operands { v0, v1 }) - // KORTESTQ k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf8) - m.emit(0x98) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORTESTQ") - } - return p -} - -// KORTESTW performs "OR 16-bit Masks and Set Flags". -// -// Mnemonic : KORTESTW -// Supported forms : (1 form) -// -// * KORTESTW k, k [AVX512F] -// -func (self *Program) KORTESTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KORTESTW", 2, Operands { v0, v1 }) - // KORTESTW k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, nil, 0) - m.emit(0x98) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORTESTW") - } - return p -} - -// KORW performs "Bitwise Logical OR 16-bit Masks". -// -// Mnemonic : KORW -// Supported forms : (1 form) -// -// * KORW k, k, k [AVX512F] -// -func (self *Program) KORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KORW", 3, Operands { v0, v1, v2 }) - // KORW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KORW") - } - return p -} - -// KSHIFTLB performs "Shift Left 8-bit Masks". -// -// Mnemonic : KSHIFTLB -// Supported forms : (1 form) -// -// * KSHIFTLB imm8, k, k [AVX512DQ] -// -func (self *Program) KSHIFTLB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTLB", 3, Operands { v0, v1, v2 }) - // KSHIFTLB imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0x79) - m.emit(0x32) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTLB") - } - return p -} - -// KSHIFTLD performs "Shift Left 32-bit Masks". -// -// Mnemonic : KSHIFTLD -// Supported forms : (1 form) -// -// * KSHIFTLD imm8, k, k [AVX512BW] -// -func (self *Program) KSHIFTLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTLD", 3, Operands { v0, v1, v2 }) - // KSHIFTLD imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0x79) - m.emit(0x33) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTLD") - } - return p -} - -// KSHIFTLQ performs "Shift Left 64-bit Masks". -// -// Mnemonic : KSHIFTLQ -// Supported forms : (1 form) -// -// * KSHIFTLQ imm8, k, k [AVX512BW] -// -func (self *Program) KSHIFTLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTLQ", 3, Operands { v0, v1, v2 }) - // KSHIFTLQ imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0xf9) - m.emit(0x33) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTLQ") - } - return p -} - -// KSHIFTLW performs "Shift Left 16-bit Masks". -// -// Mnemonic : KSHIFTLW -// Supported forms : (1 form) -// -// * KSHIFTLW imm8, k, k [AVX512F] -// -func (self *Program) KSHIFTLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTLW", 3, Operands { v0, v1, v2 }) - // KSHIFTLW imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0xf9) - m.emit(0x32) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTLW") - } - return p -} - -// KSHIFTRB performs "Shift Right 8-bit Masks". -// -// Mnemonic : KSHIFTRB -// Supported forms : (1 form) -// -// * KSHIFTRB imm8, k, k [AVX512DQ] -// -func (self *Program) KSHIFTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTRB", 3, Operands { v0, v1, v2 }) - // KSHIFTRB imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0x79) - m.emit(0x30) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTRB") - } - return p -} - -// KSHIFTRD performs "Shift Right 32-bit Masks". -// -// Mnemonic : KSHIFTRD -// Supported forms : (1 form) -// -// * KSHIFTRD imm8, k, k [AVX512BW] -// -func (self *Program) KSHIFTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTRD", 3, Operands { v0, v1, v2 }) - // KSHIFTRD imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0x79) - m.emit(0x31) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTRD") - } - return p -} - -// KSHIFTRQ performs "Shift Right 64-bit Masks". -// -// Mnemonic : KSHIFTRQ -// Supported forms : (1 form) -// -// * KSHIFTRQ imm8, k, k [AVX512BW] -// -func (self *Program) KSHIFTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTRQ", 3, Operands { v0, v1, v2 }) - // KSHIFTRQ imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0xf9) - m.emit(0x31) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTRQ") - } - return p -} - -// KSHIFTRW performs "Shift Right 16-bit Masks". -// -// Mnemonic : KSHIFTRW -// Supported forms : (1 form) -// -// * KSHIFTRW imm8, k, k [AVX512F] -// -func (self *Program) KSHIFTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KSHIFTRW", 3, Operands { v0, v1, v2 }) - // KSHIFTRW imm8, k, k - if isImm8(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3) - m.emit(0xf9) - m.emit(0x30) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KSHIFTRW") - } - return p -} - -// KTESTB performs "Bit Test 8-bit Masks and Set Flags". -// -// Mnemonic : KTESTB -// Supported forms : (1 form) -// -// * KTESTB k, k [AVX512DQ] -// -func (self *Program) KTESTB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KTESTB", 2, Operands { v0, v1 }) - // KTESTB k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, nil, 0) - m.emit(0x99) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KTESTB") - } - return p -} - -// KTESTD performs "Bit Test 32-bit Masks and Set Flags". -// -// Mnemonic : KTESTD -// Supported forms : (1 form) -// -// * KTESTD k, k [AVX512BW] -// -func (self *Program) KTESTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KTESTD", 2, Operands { v0, v1 }) - // KTESTD k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf9) - m.emit(0x99) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KTESTD") - } - return p -} - -// KTESTQ performs "Bit Test 64-bit Masks and Set Flags". -// -// Mnemonic : KTESTQ -// Supported forms : (1 form) -// -// * KTESTQ k, k [AVX512BW] -// -func (self *Program) KTESTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KTESTQ", 2, Operands { v0, v1 }) - // KTESTQ k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xf8) - m.emit(0x99) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KTESTQ") - } - return p -} - -// KTESTW performs "Bit Test 16-bit Masks and Set Flags". -// -// Mnemonic : KTESTW -// Supported forms : (1 form) -// -// * KTESTW k, k [AVX512DQ] -// -func (self *Program) KTESTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("KTESTW", 2, Operands { v0, v1 }) - // KTESTW k, k - if isK(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, nil, 0) - m.emit(0x99) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KTESTW") - } - return p -} - -// KUNPCKBW performs "Unpack and Interleave 8-bit Masks". -// -// Mnemonic : KUNPCKBW -// Supported forms : (1 form) -// -// * KUNPCKBW k, k, k [AVX512F] -// -func (self *Program) KUNPCKBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KUNPCKBW", 3, Operands { v0, v1, v2 }) - // KUNPCKBW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KUNPCKBW") - } - return p -} - -// KUNPCKDQ performs "Unpack and Interleave 32-bit Masks". -// -// Mnemonic : KUNPCKDQ -// Supported forms : (1 form) -// -// * KUNPCKDQ k, k, k [AVX512BW] -// -func (self *Program) KUNPCKDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KUNPCKDQ", 3, Operands { v0, v1, v2 }) - // KUNPCKDQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KUNPCKDQ") - } - return p -} - -// KUNPCKWD performs "Unpack and Interleave 16-bit Masks". -// -// Mnemonic : KUNPCKWD -// Supported forms : (1 form) -// -// * KUNPCKWD k, k, k [AVX512BW] -// -func (self *Program) KUNPCKWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KUNPCKWD", 3, Operands { v0, v1, v2 }) - // KUNPCKWD k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KUNPCKWD") - } - return p -} - -// KXNORB performs "Bitwise Logical XNOR 8-bit Masks". -// -// Mnemonic : KXNORB -// Supported forms : (1 form) -// -// * KXNORB k, k, k [AVX512DQ] -// -func (self *Program) KXNORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXNORB", 3, Operands { v0, v1, v2 }) - // KXNORB k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXNORB") - } - return p -} - -// KXNORD performs "Bitwise Logical XNOR 32-bit Masks". -// -// Mnemonic : KXNORD -// Supported forms : (1 form) -// -// * KXNORD k, k, k [AVX512BW] -// -func (self *Program) KXNORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXNORD", 3, Operands { v0, v1, v2 }) - // KXNORD k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXNORD") - } - return p -} - -// KXNORQ performs "Bitwise Logical XNOR 64-bit Masks". -// -// Mnemonic : KXNORQ -// Supported forms : (1 form) -// -// * KXNORQ k, k, k [AVX512BW] -// -func (self *Program) KXNORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXNORQ", 3, Operands { v0, v1, v2 }) - // KXNORQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXNORQ") - } - return p -} - -// KXNORW performs "Bitwise Logical XNOR 16-bit Masks". -// -// Mnemonic : KXNORW -// Supported forms : (1 form) -// -// * KXNORW k, k, k [AVX512F] -// -func (self *Program) KXNORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXNORW", 3, Operands { v0, v1, v2 }) - // KXNORW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXNORW") - } - return p -} - -// KXORB performs "Bitwise Logical XOR 8-bit Masks". -// -// Mnemonic : KXORB -// Supported forms : (1 form) -// -// * KXORB k, k, k [AVX512DQ] -// -func (self *Program) KXORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXORB", 3, Operands { v0, v1, v2 }) - // KXORB k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, nil, hlcode(v[1])) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXORB") - } - return p -} - -// KXORD performs "Bitwise Logical XOR 32-bit Masks". -// -// Mnemonic : KXORD -// Supported forms : (1 form) -// -// * KXORD k, k, k [AVX512BW] -// -func (self *Program) KXORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXORD", 3, Operands { v0, v1, v2 }) - // KXORD k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXORD") - } - return p -} - -// KXORQ performs "Bitwise Logical XOR 64-bit Masks". -// -// Mnemonic : KXORQ -// Supported forms : (1 form) -// -// * KXORQ k, k, k [AVX512BW] -// -func (self *Program) KXORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXORQ", 3, Operands { v0, v1, v2 }) - // KXORQ k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1) - m.emit(0xfc ^ (hlcode(v[1]) << 3)) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXORQ") - } - return p -} - -// KXORW performs "Bitwise Logical XOR 16-bit Masks". -// -// Mnemonic : KXORW -// Supported forms : (1 form) -// -// * KXORW k, k, k [AVX512F] -// -func (self *Program) KXORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("KXORW", 3, Operands { v0, v1, v2 }) - // KXORW k, k, k - if isK(v0) && isK(v1) && isK(v2) { - self.require(ISA_AVX512F) - p.domain = DomainMask - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, hlcode(v[1])) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for KXORW") - } - return p -} - -// LDDQU performs "Load Unaligned Integer 128 Bits". -// -// Mnemonic : LDDQU -// Supported forms : (1 form) -// -// * LDDQU m128, xmm [SSE3] -// -func (self *Program) LDDQU(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LDDQU", 2, Operands { v0, v1 }) - // LDDQU m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LDDQU") - } - return p -} - -// LDMXCSR performs "Load MXCSR Register". -// -// Mnemonic : LDMXCSR -// Supported forms : (1 form) -// -// * LDMXCSR m32 [SSE] -// -func (self *Program) LDMXCSR(v0 interface{}) *Instruction { - p := self.alloc("LDMXCSR", 1, Operands { v0 }) - // LDMXCSR m32 - if isM32(v0) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0xae) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LDMXCSR") - } - return p -} - -// LEAL performs "Load Effective Address". -// -// Mnemonic : LEA -// Supported forms : (1 form) -// -// * LEAL m, r32 -// -func (self *Program) LEAL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LEAL", 2, Operands { v0, v1 }) - // LEAL m, r32 - if isM(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x8d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LEAL") - } - return p -} - -// LEAQ performs "Load Effective Address". -// -// Mnemonic : LEA -// Supported forms : (1 form) -// -// * LEAQ m, r64 -// -func (self *Program) LEAQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LEAQ", 2, Operands { v0, v1 }) - // LEAQ m, r64 - if isM(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x8d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LEAQ") - } - return p -} - -// LEAW performs "Load Effective Address". -// -// Mnemonic : LEA -// Supported forms : (1 form) -// -// * LEAW m, r16 -// -func (self *Program) LEAW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LEAW", 2, Operands { v0, v1 }) - // LEAW m, r16 - if isM(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x8d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LEAW") - } - return p -} - -// LFENCE performs "Load Fence". -// -// Mnemonic : LFENCE -// Supported forms : (1 form) -// -// * LFENCE [SSE2] -// -func (self *Program) LFENCE() *Instruction { - p := self.alloc("LFENCE", 0, Operands { }) - // LFENCE - self.require(ISA_SSE2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0xae) - m.emit(0xe8) - }) - return p -} - -// LZCNTL performs "Count the Number of Leading Zero Bits". -// -// Mnemonic : LZCNT -// Supported forms : (2 forms) -// -// * LZCNTL r32, r32 [LZCNT] -// * LZCNTL m32, r32 [LZCNT] -// -func (self *Program) LZCNTL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LZCNTL", 2, Operands { v0, v1 }) - // LZCNTL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_LZCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // LZCNTL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_LZCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LZCNTL") - } - return p -} - -// LZCNTQ performs "Count the Number of Leading Zero Bits". -// -// Mnemonic : LZCNT -// Supported forms : (2 forms) -// -// * LZCNTQ r64, r64 [LZCNT] -// * LZCNTQ m64, r64 [LZCNT] -// -func (self *Program) LZCNTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LZCNTQ", 2, Operands { v0, v1 }) - // LZCNTQ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_LZCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // LZCNTQ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_LZCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xbd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LZCNTQ") - } - return p -} - -// LZCNTW performs "Count the Number of Leading Zero Bits". -// -// Mnemonic : LZCNT -// Supported forms : (2 forms) -// -// * LZCNTW r16, r16 [LZCNT] -// * LZCNTW m16, r16 [LZCNT] -// -func (self *Program) LZCNTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("LZCNTW", 2, Operands { v0, v1 }) - // LZCNTW r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_LZCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // LZCNTW m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_LZCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for LZCNTW") - } - return p -} - -// MASKMOVDQU performs "Store Selected Bytes of Double Quadword". -// -// Mnemonic : MASKMOVDQU -// Supported forms : (1 form) -// -// * MASKMOVDQU xmm, xmm [SSE2] -// -func (self *Program) MASKMOVDQU(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MASKMOVDQU", 2, Operands { v0, v1 }) - // MASKMOVDQU xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MASKMOVDQU") - } - return p -} - -// MASKMOVQ performs "Store Selected Bytes of Quadword". -// -// Mnemonic : MASKMOVQ -// Supported forms : (1 form) -// -// * MASKMOVQ mm, mm [MMX+] -// -func (self *Program) MASKMOVQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MASKMOVQ", 2, Operands { v0, v1 }) - // MASKMOVQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MASKMOVQ") - } - return p -} - -// MAXPD performs "Return Maximum Packed Double-Precision Floating-Point Values". -// -// Mnemonic : MAXPD -// Supported forms : (2 forms) -// -// * MAXPD xmm, xmm [SSE2] -// * MAXPD m128, xmm [SSE2] -// -func (self *Program) MAXPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MAXPD", 2, Operands { v0, v1 }) - // MAXPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MAXPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MAXPD") - } - return p -} - -// MAXPS performs "Return Maximum Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MAXPS -// Supported forms : (2 forms) -// -// * MAXPS xmm, xmm [SSE] -// * MAXPS m128, xmm [SSE] -// -func (self *Program) MAXPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MAXPS", 2, Operands { v0, v1 }) - // MAXPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MAXPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MAXPS") - } - return p -} - -// MAXSD performs "Return Maximum Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : MAXSD -// Supported forms : (2 forms) -// -// * MAXSD xmm, xmm [SSE2] -// * MAXSD m64, xmm [SSE2] -// -func (self *Program) MAXSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MAXSD", 2, Operands { v0, v1 }) - // MAXSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MAXSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MAXSD") - } - return p -} - -// MAXSS performs "Return Maximum Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : MAXSS -// Supported forms : (2 forms) -// -// * MAXSS xmm, xmm [SSE] -// * MAXSS m32, xmm [SSE] -// -func (self *Program) MAXSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MAXSS", 2, Operands { v0, v1 }) - // MAXSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MAXSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MAXSS") - } - return p -} - -// MFENCE performs "Memory Fence". -// -// Mnemonic : MFENCE -// Supported forms : (1 form) -// -// * MFENCE [SSE2] -// -func (self *Program) MFENCE() *Instruction { - p := self.alloc("MFENCE", 0, Operands { }) - // MFENCE - self.require(ISA_SSE2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0xae) - m.emit(0xf0) - }) - return p -} - -// MINPD performs "Return Minimum Packed Double-Precision Floating-Point Values". -// -// Mnemonic : MINPD -// Supported forms : (2 forms) -// -// * MINPD xmm, xmm [SSE2] -// * MINPD m128, xmm [SSE2] -// -func (self *Program) MINPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MINPD", 2, Operands { v0, v1 }) - // MINPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MINPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MINPD") - } - return p -} - -// MINPS performs "Return Minimum Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MINPS -// Supported forms : (2 forms) -// -// * MINPS xmm, xmm [SSE] -// * MINPS m128, xmm [SSE] -// -func (self *Program) MINPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MINPS", 2, Operands { v0, v1 }) - // MINPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MINPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MINPS") - } - return p -} - -// MINSD performs "Return Minimum Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : MINSD -// Supported forms : (2 forms) -// -// * MINSD xmm, xmm [SSE2] -// * MINSD m64, xmm [SSE2] -// -func (self *Program) MINSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MINSD", 2, Operands { v0, v1 }) - // MINSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MINSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MINSD") - } - return p -} - -// MINSS performs "Return Minimum Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : MINSS -// Supported forms : (2 forms) -// -// * MINSS xmm, xmm [SSE] -// * MINSS m32, xmm [SSE] -// -func (self *Program) MINSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MINSS", 2, Operands { v0, v1 }) - // MINSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MINSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MINSS") - } - return p -} - -// MONITOR performs "Monitor a Linear Address Range". -// -// Mnemonic : MONITOR -// Supported forms : (1 form) -// -// * MONITOR [MONITOR] -// -func (self *Program) MONITOR() *Instruction { - p := self.alloc("MONITOR", 0, Operands { }) - // MONITOR - self.require(ISA_MONITOR) - p.domain = DomainMisc - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xc8) - }) - return p -} - -// MONITORX performs "Monitor a Linear Address Range with Timeout". -// -// Mnemonic : MONITORX -// Supported forms : (1 form) -// -// * MONITORX [MONITORX] -// -func (self *Program) MONITORX() *Instruction { - p := self.alloc("MONITORX", 0, Operands { }) - // MONITORX - self.require(ISA_MONITORX) - p.domain = DomainMisc - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xfa) - }) - return p -} - -// MOVAPD performs "Move Aligned Packed Double-Precision Floating-Point Values". -// -// Mnemonic : MOVAPD -// Supported forms : (3 forms) -// -// * MOVAPD xmm, xmm [SSE2] -// * MOVAPD m128, xmm [SSE2] -// * MOVAPD xmm, m128 [SSE2] -// -func (self *Program) MOVAPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVAPD", 2, Operands { v0, v1 }) - // MOVAPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVAPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVAPD xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVAPD") - } - return p -} - -// MOVAPS performs "Move Aligned Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MOVAPS -// Supported forms : (3 forms) -// -// * MOVAPS xmm, xmm [SSE] -// * MOVAPS m128, xmm [SSE] -// * MOVAPS xmm, m128 [SSE] -// -func (self *Program) MOVAPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVAPS", 2, Operands { v0, v1 }) - // MOVAPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVAPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVAPS xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVAPS") - } - return p -} - -// MOVB performs "Move". -// -// Mnemonic : MOV -// Supported forms : (5 forms) -// -// * MOVB imm8, r8 -// * MOVB r8, r8 -// * MOVB m8, r8 -// * MOVB imm8, m8 -// * MOVB r8, m8 -// -func (self *Program) MOVB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVB", 2, Operands { v0, v1 }) - // MOVB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xb0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // MOVB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x88) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x8a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc6) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // MOVB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x88) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVB") - } - return p -} - -// MOVBEL performs "Move Data After Swapping Bytes". -// -// Mnemonic : MOVBE -// Supported forms : (2 forms) -// -// * MOVBEL m32, r32 [MOVBE] -// * MOVBEL r32, m32 [MOVBE] -// -func (self *Program) MOVBEL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVBEL", 2, Operands { v0, v1 }) - // MOVBEL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_MOVBE) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVBEL r32, m32 - if isReg32(v0) && isM32(v1) { - self.require(ISA_MOVBE) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVBEL") - } - return p -} - -// MOVBEQ performs "Move Data After Swapping Bytes". -// -// Mnemonic : MOVBE -// Supported forms : (2 forms) -// -// * MOVBEQ m64, r64 [MOVBE] -// * MOVBEQ r64, m64 [MOVBE] -// -func (self *Program) MOVBEQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVBEQ", 2, Operands { v0, v1 }) - // MOVBEQ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_MOVBE) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVBEQ r64, m64 - if isReg64(v0) && isM64(v1) { - self.require(ISA_MOVBE) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVBEQ") - } - return p -} - -// MOVBEW performs "Move Data After Swapping Bytes". -// -// Mnemonic : MOVBE -// Supported forms : (2 forms) -// -// * MOVBEW m16, r16 [MOVBE] -// * MOVBEW r16, m16 [MOVBE] -// -func (self *Program) MOVBEW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVBEW", 2, Operands { v0, v1 }) - // MOVBEW m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_MOVBE) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVBEW r16, m16 - if isReg16(v0) && isM16(v1) { - self.require(ISA_MOVBE) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xf1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVBEW") - } - return p -} - -// MOVD performs "Move Doubleword". -// -// Mnemonic : MOVD -// Supported forms : (8 forms) -// -// * MOVD mm, r32 [MMX] -// * MOVD r32, mm [MMX] -// * MOVD m32, mm [MMX] -// * MOVD mm, m32 [MMX] -// * MOVD xmm, r32 [SSE2] -// * MOVD r32, xmm [SSE2] -// * MOVD m32, xmm [SSE2] -// * MOVD xmm, m32 [SSE2] -// -func (self *Program) MOVD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVD", 2, Operands { v0, v1 }) - // MOVD mm, r32 - if isMM(v0) && isReg32(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVD r32, mm - if isReg32(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVD m32, mm - if isM32(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVD mm, m32 - if isMM(v0) && isM32(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // MOVD xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVD r32, xmm - if isReg32(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVD xmm, m32 - if isXMM(v0) && isM32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVD") - } - return p -} - -// MOVDDUP performs "Move One Double-FP and Duplicate". -// -// Mnemonic : MOVDDUP -// Supported forms : (2 forms) -// -// * MOVDDUP xmm, xmm [SSE3] -// * MOVDDUP m64, xmm [SSE3] -// -func (self *Program) MOVDDUP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVDDUP", 2, Operands { v0, v1 }) - // MOVDDUP xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVDDUP m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVDDUP") - } - return p -} - -// MOVDQ2Q performs "Move Quadword from XMM to MMX Technology Register". -// -// Mnemonic : MOVDQ2Q -// Supported forms : (1 form) -// -// * MOVDQ2Q xmm, mm [SSE2] -// -func (self *Program) MOVDQ2Q(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVDQ2Q", 2, Operands { v0, v1 }) - // MOVDQ2Q xmm, mm - if isXMM(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MOVDQ2Q") - } - return p -} - -// MOVDQA performs "Move Aligned Double Quadword". -// -// Mnemonic : MOVDQA -// Supported forms : (3 forms) -// -// * MOVDQA xmm, xmm [SSE2] -// * MOVDQA m128, xmm [SSE2] -// * MOVDQA xmm, m128 [SSE2] -// -func (self *Program) MOVDQA(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVDQA", 2, Operands { v0, v1 }) - // MOVDQA xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVDQA m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVDQA xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVDQA") - } - return p -} - -// MOVDQU performs "Move Unaligned Double Quadword". -// -// Mnemonic : MOVDQU -// Supported forms : (3 forms) -// -// * MOVDQU xmm, xmm [SSE2] -// * MOVDQU m128, xmm [SSE2] -// * MOVDQU xmm, m128 [SSE2] -// -func (self *Program) MOVDQU(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVDQU", 2, Operands { v0, v1 }) - // MOVDQU xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVDQU m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVDQU xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVDQU") - } - return p -} - -// MOVHLPS performs "Move Packed Single-Precision Floating-Point Values High to Low". -// -// Mnemonic : MOVHLPS -// Supported forms : (1 form) -// -// * MOVHLPS xmm, xmm [SSE] -// -func (self *Program) MOVHLPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVHLPS", 2, Operands { v0, v1 }) - // MOVHLPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MOVHLPS") - } - return p -} - -// MOVHPD performs "Move High Packed Double-Precision Floating-Point Value". -// -// Mnemonic : MOVHPD -// Supported forms : (2 forms) -// -// * MOVHPD m64, xmm [SSE2] -// * MOVHPD xmm, m64 [SSE2] -// -func (self *Program) MOVHPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVHPD", 2, Operands { v0, v1 }) - // MOVHPD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVHPD xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x17) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVHPD") - } - return p -} - -// MOVHPS performs "Move High Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MOVHPS -// Supported forms : (2 forms) -// -// * MOVHPS m64, xmm [SSE] -// * MOVHPS xmm, m64 [SSE] -// -func (self *Program) MOVHPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVHPS", 2, Operands { v0, v1 }) - // MOVHPS m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVHPS xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x17) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVHPS") - } - return p -} - -// MOVL performs "Move". -// -// Mnemonic : MOV -// Supported forms : (5 forms) -// -// * MOVL imm32, r32 -// * MOVL r32, r32 -// * MOVL m32, r32 -// * MOVL imm32, m32 -// * MOVL r32, m32 -// -func (self *Program) MOVL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVL", 2, Operands { v0, v1 }) - // MOVL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc7) - m.emit(0xc0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xb8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // MOVL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x89) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x8b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc7) - m.mrsd(0, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // MOVL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x89) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVL") - } - return p -} - -// MOVLHPS performs "Move Packed Single-Precision Floating-Point Values Low to High". -// -// Mnemonic : MOVLHPS -// Supported forms : (1 form) -// -// * MOVLHPS xmm, xmm [SSE] -// -func (self *Program) MOVLHPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVLHPS", 2, Operands { v0, v1 }) - // MOVLHPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MOVLHPS") - } - return p -} - -// MOVLPD performs "Move Low Packed Double-Precision Floating-Point Value". -// -// Mnemonic : MOVLPD -// Supported forms : (2 forms) -// -// * MOVLPD m64, xmm [SSE2] -// * MOVLPD xmm, m64 [SSE2] -// -func (self *Program) MOVLPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVLPD", 2, Operands { v0, v1 }) - // MOVLPD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVLPD xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVLPD") - } - return p -} - -// MOVLPS performs "Move Low Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MOVLPS -// Supported forms : (2 forms) -// -// * MOVLPS m64, xmm [SSE] -// * MOVLPS xmm, m64 [SSE] -// -func (self *Program) MOVLPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVLPS", 2, Operands { v0, v1 }) - // MOVLPS m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVLPS xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVLPS") - } - return p -} - -// MOVMSKPD performs "Extract Packed Double-Precision Floating-Point Sign Mask". -// -// Mnemonic : MOVMSKPD -// Supported forms : (1 form) -// -// * MOVMSKPD xmm, r32 [SSE2] -// -func (self *Program) MOVMSKPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVMSKPD", 2, Operands { v0, v1 }) - // MOVMSKPD xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x50) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MOVMSKPD") - } - return p -} - -// MOVMSKPS performs "Extract Packed Single-Precision Floating-Point Sign Mask". -// -// Mnemonic : MOVMSKPS -// Supported forms : (1 form) -// -// * MOVMSKPS xmm, r32 [SSE] -// -func (self *Program) MOVMSKPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVMSKPS", 2, Operands { v0, v1 }) - // MOVMSKPS xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x50) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MOVMSKPS") - } - return p -} - -// MOVNTDQ performs "Store Double Quadword Using Non-Temporal Hint". -// -// Mnemonic : MOVNTDQ -// Supported forms : (1 form) -// -// * MOVNTDQ xmm, m128 [SSE2] -// -func (self *Program) MOVNTDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTDQ", 2, Operands { v0, v1 }) - // MOVNTDQ xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTDQ") - } - return p -} - -// MOVNTDQA performs "Load Double Quadword Non-Temporal Aligned Hint". -// -// Mnemonic : MOVNTDQA -// Supported forms : (1 form) -// -// * MOVNTDQA m128, xmm [SSE4.1] -// -func (self *Program) MOVNTDQA(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTDQA", 2, Operands { v0, v1 }) - // MOVNTDQA m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTDQA") - } - return p -} - -// MOVNTIL performs "Store Doubleword Using Non-Temporal Hint". -// -// Mnemonic : MOVNTI -// Supported forms : (1 form) -// -// * MOVNTIL r32, m32 [SSE2] -// -func (self *Program) MOVNTIL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTIL", 2, Operands { v0, v1 }) - // MOVNTIL r32, m32 - if isReg32(v0) && isM32(v1) { - self.require(ISA_SSE2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTIL") - } - return p -} - -// MOVNTIQ performs "Store Doubleword Using Non-Temporal Hint". -// -// Mnemonic : MOVNTI -// Supported forms : (1 form) -// -// * MOVNTIQ r64, m64 [SSE2] -// -func (self *Program) MOVNTIQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTIQ", 2, Operands { v0, v1 }) - // MOVNTIQ r64, m64 - if isReg64(v0) && isM64(v1) { - self.require(ISA_SSE2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xc3) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTIQ") - } - return p -} - -// MOVNTPD performs "Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint". -// -// Mnemonic : MOVNTPD -// Supported forms : (1 form) -// -// * MOVNTPD xmm, m128 [SSE2] -// -func (self *Program) MOVNTPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTPD", 2, Operands { v0, v1 }) - // MOVNTPD xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTPD") - } - return p -} - -// MOVNTPS performs "Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint". -// -// Mnemonic : MOVNTPS -// Supported forms : (1 form) -// -// * MOVNTPS xmm, m128 [SSE] -// -func (self *Program) MOVNTPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTPS", 2, Operands { v0, v1 }) - // MOVNTPS xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTPS") - } - return p -} - -// MOVNTQ performs "Store of Quadword Using Non-Temporal Hint". -// -// Mnemonic : MOVNTQ -// Supported forms : (1 form) -// -// * MOVNTQ mm, m64 [MMX+] -// -func (self *Program) MOVNTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTQ", 2, Operands { v0, v1 }) - // MOVNTQ mm, m64 - if isMM(v0) && isM64(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTQ") - } - return p -} - -// MOVNTSD performs "Store Scalar Double-Precision Floating-Point Values Using Non-Temporal Hint". -// -// Mnemonic : MOVNTSD -// Supported forms : (1 form) -// -// * MOVNTSD xmm, m64 [SSE4A] -// -func (self *Program) MOVNTSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTSD", 2, Operands { v0, v1 }) - // MOVNTSD xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE4A) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTSD") - } - return p -} - -// MOVNTSS performs "Store Scalar Single-Precision Floating-Point Values Using Non-Temporal Hint". -// -// Mnemonic : MOVNTSS -// Supported forms : (1 form) -// -// * MOVNTSS xmm, m32 [SSE4A] -// -func (self *Program) MOVNTSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVNTSS", 2, Operands { v0, v1 }) - // MOVNTSS xmm, m32 - if isXMM(v0) && isM32(v1) { - self.require(ISA_SSE4A) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVNTSS") - } - return p -} - -// MOVQ performs "Move". -// -// Mnemonic : MOV -// Supported forms : (16 forms) -// -// * MOVQ imm32, r64 -// * MOVQ imm64, r64 -// * MOVQ r64, r64 -// * MOVQ m64, r64 -// * MOVQ imm32, m64 -// * MOVQ r64, m64 -// * MOVQ mm, r64 [MMX] -// * MOVQ r64, mm [MMX] -// * MOVQ mm, mm [MMX] -// * MOVQ m64, mm [MMX] -// * MOVQ mm, m64 [MMX] -// * MOVQ xmm, r64 [SSE2] -// * MOVQ r64, xmm [SSE2] -// * MOVQ xmm, xmm [SSE2] -// * MOVQ m64, xmm [SSE2] -// * MOVQ xmm, m64 [SSE2] -// -func (self *Program) MOVQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVQ", 2, Operands { v0, v1 }) - // MOVQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc7) - m.emit(0xc0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // MOVQ imm64, r64 - if isImm64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xb8 | lcode(v[1])) - m.imm8(toImmAny(v[0])) - }) - } - // MOVQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x89) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x8b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc7) - m.mrsd(0, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // MOVQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x89) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // MOVQ mm, r64 - if isMM(v0) && isReg64(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVQ r64, mm - if isReg64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVQ mm, m64 - if isMM(v0) && isM64(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // MOVQ xmm, r64 - if isXMM(v0) && isReg64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVQ r64, xmm - if isReg64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xd6) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x7e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVQ xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xd6) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVQ") - } - return p -} - -// MOVQ2DQ performs "Move Quadword from MMX Technology to XMM Register". -// -// Mnemonic : MOVQ2DQ -// Supported forms : (1 form) -// -// * MOVQ2DQ mm, xmm [SSE2] -// -func (self *Program) MOVQ2DQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVQ2DQ", 2, Operands { v0, v1 }) - // MOVQ2DQ mm, xmm - if isMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MOVQ2DQ") - } - return p -} - -// MOVSBL performs "Move with Sign-Extension". -// -// Mnemonic : MOVSX -// Supported forms : (2 forms) -// -// * MOVSBL r8, r32 -// * MOVSBL m8, r32 -// -func (self *Program) MOVSBL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSBL", 2, Operands { v0, v1 }) - // MOVSBL r8, r32 - if isReg8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSBL m8, r32 - if isM8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbe) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSBL") - } - return p -} - -// MOVSBQ performs "Move with Sign-Extension". -// -// Mnemonic : MOVSX -// Supported forms : (2 forms) -// -// * MOVSBQ r8, r64 -// * MOVSBQ m8, r64 -// -func (self *Program) MOVSBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSBQ", 2, Operands { v0, v1 }) - // MOVSBQ r8, r64 - if isReg8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSBQ m8, r64 - if isM8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xbe) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSBQ") - } - return p -} - -// MOVSBW performs "Move with Sign-Extension". -// -// Mnemonic : MOVSX -// Supported forms : (2 forms) -// -// * MOVSBW r8, r16 -// * MOVSBW m8, r16 -// -func (self *Program) MOVSBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSBW", 2, Operands { v0, v1 }) - // MOVSBW r8, r16 - if isReg8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSBW m8, r16 - if isM8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbe) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSBW") - } - return p -} - -// MOVSD performs "Move Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : MOVSD -// Supported forms : (3 forms) -// -// * MOVSD xmm, xmm [SSE2] -// * MOVSD m64, xmm [SSE2] -// * MOVSD xmm, m64 [SSE2] -// -func (self *Program) MOVSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSD", 2, Operands { v0, v1 }) - // MOVSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVSD xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSD") - } - return p -} - -// MOVSHDUP performs "Move Packed Single-FP High and Duplicate". -// -// Mnemonic : MOVSHDUP -// Supported forms : (2 forms) -// -// * MOVSHDUP xmm, xmm [SSE3] -// * MOVSHDUP m128, xmm [SSE3] -// -func (self *Program) MOVSHDUP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSHDUP", 2, Operands { v0, v1 }) - // MOVSHDUP xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSHDUP m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSHDUP") - } - return p -} - -// MOVSLDUP performs "Move Packed Single-FP Low and Duplicate". -// -// Mnemonic : MOVSLDUP -// Supported forms : (2 forms) -// -// * MOVSLDUP xmm, xmm [SSE3] -// * MOVSLDUP m128, xmm [SSE3] -// -func (self *Program) MOVSLDUP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSLDUP", 2, Operands { v0, v1 }) - // MOVSLDUP xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSLDUP m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSLDUP") - } - return p -} - -// MOVSLQ performs "Move Doubleword to Quadword with Sign-Extension". -// -// Mnemonic : MOVSXD -// Supported forms : (2 forms) -// -// * MOVSLQ r32, r64 -// * MOVSLQ m32, r64 -// -func (self *Program) MOVSLQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSLQ", 2, Operands { v0, v1 }) - // MOVSLQ r32, r64 - if isReg32(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x63) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSLQ m32, r64 - if isM32(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x63) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSLQ") - } - return p -} - -// MOVSS performs "Move Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : MOVSS -// Supported forms : (3 forms) -// -// * MOVSS xmm, xmm [SSE] -// * MOVSS m32, xmm [SSE] -// * MOVSS xmm, m32 [SSE] -// -func (self *Program) MOVSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSS", 2, Operands { v0, v1 }) - // MOVSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVSS xmm, m32 - if isXMM(v0) && isM32(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSS") - } - return p -} - -// MOVSWL performs "Move with Sign-Extension". -// -// Mnemonic : MOVSX -// Supported forms : (2 forms) -// -// * MOVSWL r16, r32 -// * MOVSWL m16, r32 -// -func (self *Program) MOVSWL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSWL", 2, Operands { v0, v1 }) - // MOVSWL r16, r32 - if isReg16(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSWL m16, r32 - if isM16(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSWL") - } - return p -} - -// MOVSWQ performs "Move with Sign-Extension". -// -// Mnemonic : MOVSX -// Supported forms : (2 forms) -// -// * MOVSWQ r16, r64 -// * MOVSWQ m16, r64 -// -func (self *Program) MOVSWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVSWQ", 2, Operands { v0, v1 }) - // MOVSWQ r16, r64 - if isReg16(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVSWQ m16, r64 - if isM16(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xbf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVSWQ") - } - return p -} - -// MOVUPD performs "Move Unaligned Packed Double-Precision Floating-Point Values". -// -// Mnemonic : MOVUPD -// Supported forms : (3 forms) -// -// * MOVUPD xmm, xmm [SSE2] -// * MOVUPD m128, xmm [SSE2] -// * MOVUPD xmm, m128 [SSE2] -// -func (self *Program) MOVUPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVUPD", 2, Operands { v0, v1 }) - // MOVUPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVUPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVUPD xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVUPD") - } - return p -} - -// MOVUPS performs "Move Unaligned Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MOVUPS -// Supported forms : (3 forms) -// -// * MOVUPS xmm, xmm [SSE] -// * MOVUPS m128, xmm [SSE] -// * MOVUPS xmm, m128 [SSE] -// -func (self *Program) MOVUPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVUPS", 2, Operands { v0, v1 }) - // MOVUPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // MOVUPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVUPS xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVUPS") - } - return p -} - -// MOVW performs "Move". -// -// Mnemonic : MOV -// Supported forms : (5 forms) -// -// * MOVW imm16, r16 -// * MOVW r16, r16 -// * MOVW m16, r16 -// * MOVW imm16, m16 -// * MOVW r16, m16 -// -func (self *Program) MOVW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVW", 2, Operands { v0, v1 }) - // MOVW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc7) - m.emit(0xc0 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xb8 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // MOVW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x89) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x8b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // MOVW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc7) - m.mrsd(0, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // MOVW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x89) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVW") - } - return p -} - -// MOVZBL performs "Move with Zero-Extend". -// -// Mnemonic : MOVZX -// Supported forms : (2 forms) -// -// * MOVZBL r8, r32 -// * MOVZBL m8, r32 -// -func (self *Program) MOVZBL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVZBL", 2, Operands { v0, v1 }) - // MOVZBL r8, r32 - if isReg8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVZBL m8, r32 - if isM8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xb6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVZBL") - } - return p -} - -// MOVZBQ performs "Move with Zero-Extend". -// -// Mnemonic : MOVZX -// Supported forms : (2 forms) -// -// * MOVZBQ r8, r64 -// * MOVZBQ m8, r64 -// -func (self *Program) MOVZBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVZBQ", 2, Operands { v0, v1 }) - // MOVZBQ r8, r64 - if isReg8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVZBQ m8, r64 - if isM8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xb6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVZBQ") - } - return p -} - -// MOVZBW performs "Move with Zero-Extend". -// -// Mnemonic : MOVZX -// Supported forms : (2 forms) -// -// * MOVZBW r8, r16 -// * MOVZBW m8, r16 -// -func (self *Program) MOVZBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVZBW", 2, Operands { v0, v1 }) - // MOVZBW r8, r16 - if isReg8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVZBW m8, r16 - if isM8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xb6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVZBW") - } - return p -} - -// MOVZWL performs "Move with Zero-Extend". -// -// Mnemonic : MOVZX -// Supported forms : (2 forms) -// -// * MOVZWL r16, r32 -// * MOVZWL m16, r32 -// -func (self *Program) MOVZWL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVZWL", 2, Operands { v0, v1 }) - // MOVZWL r16, r32 - if isReg16(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVZWL m16, r32 - if isM16(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xb7) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVZWL") - } - return p -} - -// MOVZWQ performs "Move with Zero-Extend". -// -// Mnemonic : MOVZX -// Supported forms : (2 forms) -// -// * MOVZWQ r16, r64 -// * MOVZWQ m16, r64 -// -func (self *Program) MOVZWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MOVZWQ", 2, Operands { v0, v1 }) - // MOVZWQ r16, r64 - if isReg16(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MOVZWQ m16, r64 - if isM16(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xb7) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MOVZWQ") - } - return p -} - -// MPSADBW performs "Compute Multiple Packed Sums of Absolute Difference". -// -// Mnemonic : MPSADBW -// Supported forms : (2 forms) -// -// * MPSADBW imm8, xmm, xmm [SSE4.1] -// * MPSADBW imm8, m128, xmm [SSE4.1] -// -func (self *Program) MPSADBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("MPSADBW", 3, Operands { v0, v1, v2 }) - // MPSADBW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // MPSADBW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x42) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for MPSADBW") - } - return p -} - -// MULB performs "Unsigned Multiply". -// -// Mnemonic : MUL -// Supported forms : (2 forms) -// -// * MULB r8 -// * MULB m8 -// -func (self *Program) MULB(v0 interface{}) *Instruction { - p := self.alloc("MULB", 1, Operands { v0 }) - // MULB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xf6) - m.emit(0xe0 | lcode(v[0])) - }) - } - // MULB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf6) - m.mrsd(4, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULB") - } - return p -} - -// MULL performs "Unsigned Multiply". -// -// Mnemonic : MUL -// Supported forms : (2 forms) -// -// * MULL r32 -// * MULL m32 -// -func (self *Program) MULL(v0 interface{}) *Instruction { - p := self.alloc("MULL", 1, Operands { v0 }) - // MULL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xe0 | lcode(v[0])) - }) - } - // MULL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(4, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULL") - } - return p -} - -// MULPD performs "Multiply Packed Double-Precision Floating-Point Values". -// -// Mnemonic : MULPD -// Supported forms : (2 forms) -// -// * MULPD xmm, xmm [SSE2] -// * MULPD m128, xmm [SSE2] -// -func (self *Program) MULPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MULPD", 2, Operands { v0, v1 }) - // MULPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MULPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULPD") - } - return p -} - -// MULPS performs "Multiply Packed Single-Precision Floating-Point Values". -// -// Mnemonic : MULPS -// Supported forms : (2 forms) -// -// * MULPS xmm, xmm [SSE] -// * MULPS m128, xmm [SSE] -// -func (self *Program) MULPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MULPS", 2, Operands { v0, v1 }) - // MULPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MULPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULPS") - } - return p -} - -// MULQ performs "Unsigned Multiply". -// -// Mnemonic : MUL -// Supported forms : (2 forms) -// -// * MULQ r64 -// * MULQ m64 -// -func (self *Program) MULQ(v0 interface{}) *Instruction { - p := self.alloc("MULQ", 1, Operands { v0 }) - // MULQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xf7) - m.emit(0xe0 | lcode(v[0])) - }) - } - // MULQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xf7) - m.mrsd(4, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULQ") - } - return p -} - -// MULSD performs "Multiply Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : MULSD -// Supported forms : (2 forms) -// -// * MULSD xmm, xmm [SSE2] -// * MULSD m64, xmm [SSE2] -// -func (self *Program) MULSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MULSD", 2, Operands { v0, v1 }) - // MULSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MULSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULSD") - } - return p -} - -// MULSS performs "Multiply Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : MULSS -// Supported forms : (2 forms) -// -// * MULSS xmm, xmm [SSE] -// * MULSS m32, xmm [SSE] -// -func (self *Program) MULSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("MULSS", 2, Operands { v0, v1 }) - // MULSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // MULSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULSS") - } - return p -} - -// MULW performs "Unsigned Multiply". -// -// Mnemonic : MUL -// Supported forms : (2 forms) -// -// * MULW r16 -// * MULW m16 -// -func (self *Program) MULW(v0 interface{}) *Instruction { - p := self.alloc("MULW", 1, Operands { v0 }) - // MULW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xe0 | lcode(v[0])) - }) - } - // MULW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(4, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULW") - } - return p -} - -// MULXL performs "Unsigned Multiply Without Affecting Flags". -// -// Mnemonic : MULX -// Supported forms : (2 forms) -// -// * MULXL r32, r32, r32 [BMI2] -// * MULXL m32, r32, r32 [BMI2] -// -func (self *Program) MULXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("MULXL", 3, Operands { v0, v1, v2 }) - // MULXL r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7b ^ (hlcode(v[1]) << 3)) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // MULXL m32, r32, r32 - if isM32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULXL") - } - return p -} - -// MULXQ performs "Unsigned Multiply Without Affecting Flags". -// -// Mnemonic : MULX -// Supported forms : (2 forms) -// -// * MULXQ r64, r64, r64 [BMI2] -// * MULXQ m64, r64, r64 [BMI2] -// -func (self *Program) MULXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("MULXQ", 3, Operands { v0, v1, v2 }) - // MULXQ r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfb ^ (hlcode(v[1]) << 3)) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // MULXQ m64, r64, r64 - if isM64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for MULXQ") - } - return p -} - -// MWAIT performs "Monitor Wait". -// -// Mnemonic : MWAIT -// Supported forms : (1 form) -// -// * MWAIT [MONITOR] -// -func (self *Program) MWAIT() *Instruction { - p := self.alloc("MWAIT", 0, Operands { }) - // MWAIT - self.require(ISA_MONITOR) - p.domain = DomainMisc - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xc9) - }) - return p -} - -// MWAITX performs "Monitor Wait with Timeout". -// -// Mnemonic : MWAITX -// Supported forms : (1 form) -// -// * MWAITX [MONITORX] -// -func (self *Program) MWAITX() *Instruction { - p := self.alloc("MWAITX", 0, Operands { }) - // MWAITX - self.require(ISA_MONITORX) - p.domain = DomainMisc - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xfb) - }) - return p -} - -// NEGB performs "Two's Complement Negation". -// -// Mnemonic : NEG -// Supported forms : (2 forms) -// -// * NEGB r8 -// * NEGB m8 -// -func (self *Program) NEGB(v0 interface{}) *Instruction { - p := self.alloc("NEGB", 1, Operands { v0 }) - // NEGB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xf6) - m.emit(0xd8 | lcode(v[0])) - }) - } - // NEGB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf6) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NEGB") - } - return p -} - -// NEGL performs "Two's Complement Negation". -// -// Mnemonic : NEG -// Supported forms : (2 forms) -// -// * NEGL r32 -// * NEGL m32 -// -func (self *Program) NEGL(v0 interface{}) *Instruction { - p := self.alloc("NEGL", 1, Operands { v0 }) - // NEGL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xd8 | lcode(v[0])) - }) - } - // NEGL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NEGL") - } - return p -} - -// NEGQ performs "Two's Complement Negation". -// -// Mnemonic : NEG -// Supported forms : (2 forms) -// -// * NEGQ r64 -// * NEGQ m64 -// -func (self *Program) NEGQ(v0 interface{}) *Instruction { - p := self.alloc("NEGQ", 1, Operands { v0 }) - // NEGQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xf7) - m.emit(0xd8 | lcode(v[0])) - }) - } - // NEGQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xf7) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NEGQ") - } - return p -} - -// NEGW performs "Two's Complement Negation". -// -// Mnemonic : NEG -// Supported forms : (2 forms) -// -// * NEGW r16 -// * NEGW m16 -// -func (self *Program) NEGW(v0 interface{}) *Instruction { - p := self.alloc("NEGW", 1, Operands { v0 }) - // NEGW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xd8 | lcode(v[0])) - }) - } - // NEGW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NEGW") - } - return p -} - -// NOP performs "No Operation". -// -// Mnemonic : NOP -// Supported forms : (1 form) -// -// * NOP -// -func (self *Program) NOP() *Instruction { - p := self.alloc("NOP", 0, Operands { }) - // NOP - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x90) - }) - return p -} - -// NOTB performs "One's Complement Negation". -// -// Mnemonic : NOT -// Supported forms : (2 forms) -// -// * NOTB r8 -// * NOTB m8 -// -func (self *Program) NOTB(v0 interface{}) *Instruction { - p := self.alloc("NOTB", 1, Operands { v0 }) - // NOTB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0xf6) - m.emit(0xd0 | lcode(v[0])) - }) - } - // NOTB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf6) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NOTB") - } - return p -} - -// NOTL performs "One's Complement Negation". -// -// Mnemonic : NOT -// Supported forms : (2 forms) -// -// * NOTL r32 -// * NOTL m32 -// -func (self *Program) NOTL(v0 interface{}) *Instruction { - p := self.alloc("NOTL", 1, Operands { v0 }) - // NOTL r32 - if isReg32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xd0 | lcode(v[0])) - }) - } - // NOTL m32 - if isM32(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NOTL") - } - return p -} - -// NOTQ performs "One's Complement Negation". -// -// Mnemonic : NOT -// Supported forms : (2 forms) -// -// * NOTQ r64 -// * NOTQ m64 -// -func (self *Program) NOTQ(v0 interface{}) *Instruction { - p := self.alloc("NOTQ", 1, Operands { v0 }) - // NOTQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0xf7) - m.emit(0xd0 | lcode(v[0])) - }) - } - // NOTQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[0])) - m.emit(0xf7) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NOTQ") - } - return p -} - -// NOTW performs "One's Complement Negation". -// -// Mnemonic : NOT -// Supported forms : (2 forms) -// -// * NOTW r16 -// * NOTW m16 -// -func (self *Program) NOTW(v0 interface{}) *Instruction { - p := self.alloc("NOTW", 1, Operands { v0 }) - // NOTW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xf7) - m.emit(0xd0 | lcode(v[0])) - }) - } - // NOTW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xf7) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for NOTW") - } - return p -} - -// ORB performs "Logical Inclusive OR". -// -// Mnemonic : OR -// Supported forms : (6 forms) -// -// * ORB imm8, al -// * ORB imm8, r8 -// * ORB r8, r8 -// * ORB m8, r8 -// * ORB imm8, m8 -// * ORB r8, m8 -// -func (self *Program) ORB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ORB", 2, Operands { v0, v1 }) - // ORB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0c) - m.imm1(toImmAny(v[0])) - }) - } - // ORB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ORB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x08) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ORB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x0a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ORB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ORB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x08) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ORB") - } - return p -} - -// ORL performs "Logical Inclusive OR". -// -// Mnemonic : OR -// Supported forms : (8 forms) -// -// * ORL imm32, eax -// * ORL imm8, r32 -// * ORL imm32, r32 -// * ORL r32, r32 -// * ORL m32, r32 -// * ORL imm8, m32 -// * ORL imm32, m32 -// * ORL r32, m32 -// -func (self *Program) ORL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ORL", 2, Operands { v0, v1 }) - // ORL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0d) - m.imm4(toImmAny(v[0])) - }) - } - // ORL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ORL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xc8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ORL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x09) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ORL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ORL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ORL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(1, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ORL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x09) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ORL") - } - return p -} - -// ORPD performs "Bitwise Logical OR of Double-Precision Floating-Point Values". -// -// Mnemonic : ORPD -// Supported forms : (2 forms) -// -// * ORPD xmm, xmm [SSE2] -// * ORPD m128, xmm [SSE2] -// -func (self *Program) ORPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ORPD", 2, Operands { v0, v1 }) - // ORPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x56) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ORPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x56) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ORPD") - } - return p -} - -// ORPS performs "Bitwise Logical OR of Single-Precision Floating-Point Values". -// -// Mnemonic : ORPS -// Supported forms : (2 forms) -// -// * ORPS xmm, xmm [SSE] -// * ORPS m128, xmm [SSE] -// -func (self *Program) ORPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ORPS", 2, Operands { v0, v1 }) - // ORPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x56) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ORPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x56) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ORPS") - } - return p -} - -// ORQ performs "Logical Inclusive OR". -// -// Mnemonic : OR -// Supported forms : (8 forms) -// -// * ORQ imm32, rax -// * ORQ imm8, r64 -// * ORQ imm32, r64 -// * ORQ r64, r64 -// * ORQ m64, r64 -// * ORQ imm8, m64 -// * ORQ imm32, m64 -// * ORQ r64, m64 -// -func (self *Program) ORQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ORQ", 2, Operands { v0, v1 }) - // ORQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x0d) - m.imm4(toImmAny(v[0])) - }) - } - // ORQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ORQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xc8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // ORQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x09) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ORQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ORQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ORQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(1, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // ORQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x09) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ORQ") - } - return p -} - -// ORW performs "Logical Inclusive OR". -// -// Mnemonic : OR -// Supported forms : (8 forms) -// -// * ORW imm16, ax -// * ORW imm8, r16 -// * ORW imm16, r16 -// * ORW r16, r16 -// * ORW m16, r16 -// * ORW imm8, m16 -// * ORW imm16, m16 -// * ORW r16, m16 -// -func (self *Program) ORW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ORW", 2, Operands { v0, v1 }) - // ORW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x0d) - m.imm2(toImmAny(v[0])) - }) - } - // ORW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ORW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xc8 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // ORW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x09) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // ORW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // ORW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ORW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(1, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // ORW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x09) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ORW") - } - return p -} - -// PABSB performs "Packed Absolute Value of Byte Integers". -// -// Mnemonic : PABSB -// Supported forms : (4 forms) -// -// * PABSB mm, mm [SSSE3] -// * PABSB m64, mm [SSSE3] -// * PABSB xmm, xmm [SSSE3] -// * PABSB m128, xmm [SSSE3] -// -func (self *Program) PABSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PABSB", 2, Operands { v0, v1 }) - // PABSB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PABSB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PABSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PABSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PABSB") - } - return p -} - -// PABSD performs "Packed Absolute Value of Doubleword Integers". -// -// Mnemonic : PABSD -// Supported forms : (4 forms) -// -// * PABSD mm, mm [SSSE3] -// * PABSD m64, mm [SSSE3] -// * PABSD xmm, xmm [SSSE3] -// * PABSD m128, xmm [SSSE3] -// -func (self *Program) PABSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PABSD", 2, Operands { v0, v1 }) - // PABSD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PABSD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PABSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PABSD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PABSD") - } - return p -} - -// PABSW performs "Packed Absolute Value of Word Integers". -// -// Mnemonic : PABSW -// Supported forms : (4 forms) -// -// * PABSW mm, mm [SSSE3] -// * PABSW m64, mm [SSSE3] -// * PABSW xmm, xmm [SSSE3] -// * PABSW m128, xmm [SSSE3] -// -func (self *Program) PABSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PABSW", 2, Operands { v0, v1 }) - // PABSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PABSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PABSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PABSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PABSW") - } - return p -} - -// PACKSSDW performs "Pack Doublewords into Words with Signed Saturation". -// -// Mnemonic : PACKSSDW -// Supported forms : (4 forms) -// -// * PACKSSDW mm, mm [MMX] -// * PACKSSDW m64, mm [MMX] -// * PACKSSDW xmm, xmm [SSE2] -// * PACKSSDW m128, xmm [SSE2] -// -func (self *Program) PACKSSDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PACKSSDW", 2, Operands { v0, v1 }) - // PACKSSDW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKSSDW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PACKSSDW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKSSDW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PACKSSDW") - } - return p -} - -// PACKSSWB performs "Pack Words into Bytes with Signed Saturation". -// -// Mnemonic : PACKSSWB -// Supported forms : (4 forms) -// -// * PACKSSWB mm, mm [MMX] -// * PACKSSWB m64, mm [MMX] -// * PACKSSWB xmm, xmm [SSE2] -// * PACKSSWB m128, xmm [SSE2] -// -func (self *Program) PACKSSWB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PACKSSWB", 2, Operands { v0, v1 }) - // PACKSSWB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x63) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKSSWB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x63) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PACKSSWB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x63) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKSSWB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x63) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PACKSSWB") - } - return p -} - -// PACKUSDW performs "Pack Doublewords into Words with Unsigned Saturation". -// -// Mnemonic : PACKUSDW -// Supported forms : (2 forms) -// -// * PACKUSDW xmm, xmm [SSE4.1] -// * PACKUSDW m128, xmm [SSE4.1] -// -func (self *Program) PACKUSDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PACKUSDW", 2, Operands { v0, v1 }) - // PACKUSDW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKUSDW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x2b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PACKUSDW") - } - return p -} - -// PACKUSWB performs "Pack Words into Bytes with Unsigned Saturation". -// -// Mnemonic : PACKUSWB -// Supported forms : (4 forms) -// -// * PACKUSWB mm, mm [MMX] -// * PACKUSWB m64, mm [MMX] -// * PACKUSWB xmm, xmm [SSE2] -// * PACKUSWB m128, xmm [SSE2] -// -func (self *Program) PACKUSWB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PACKUSWB", 2, Operands { v0, v1 }) - // PACKUSWB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x67) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKUSWB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x67) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PACKUSWB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x67) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PACKUSWB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x67) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PACKUSWB") - } - return p -} - -// PADDB performs "Add Packed Byte Integers". -// -// Mnemonic : PADDB -// Supported forms : (4 forms) -// -// * PADDB mm, mm [MMX] -// * PADDB m64, mm [MMX] -// * PADDB xmm, xmm [SSE2] -// * PADDB m128, xmm [SSE2] -// -func (self *Program) PADDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDB", 2, Operands { v0, v1 }) - // PADDB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDB") - } - return p -} - -// PADDD performs "Add Packed Doubleword Integers". -// -// Mnemonic : PADDD -// Supported forms : (4 forms) -// -// * PADDD mm, mm [MMX] -// * PADDD m64, mm [MMX] -// * PADDD xmm, xmm [SSE2] -// * PADDD m128, xmm [SSE2] -// -func (self *Program) PADDD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDD", 2, Operands { v0, v1 }) - // PADDD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfe) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfe) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDD") - } - return p -} - -// PADDQ performs "Add Packed Quadword Integers". -// -// Mnemonic : PADDQ -// Supported forms : (4 forms) -// -// * PADDQ mm, mm [SSE2] -// * PADDQ m64, mm [SSE2] -// * PADDQ xmm, xmm [SSE2] -// * PADDQ m128, xmm [SSE2] -// -func (self *Program) PADDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDQ", 2, Operands { v0, v1 }) - // PADDQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd4) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd4) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDQ") - } - return p -} - -// PADDSB performs "Add Packed Signed Byte Integers with Signed Saturation". -// -// Mnemonic : PADDSB -// Supported forms : (4 forms) -// -// * PADDSB mm, mm [MMX] -// * PADDSB m64, mm [MMX] -// * PADDSB xmm, xmm [SSE2] -// * PADDSB m128, xmm [SSE2] -// -func (self *Program) PADDSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDSB", 2, Operands { v0, v1 }) - // PADDSB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xec) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDSB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xec) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xec) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xec) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDSB") - } - return p -} - -// PADDSW performs "Add Packed Signed Word Integers with Signed Saturation". -// -// Mnemonic : PADDSW -// Supported forms : (4 forms) -// -// * PADDSW mm, mm [MMX] -// * PADDSW m64, mm [MMX] -// * PADDSW xmm, xmm [SSE2] -// * PADDSW m128, xmm [SSE2] -// -func (self *Program) PADDSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDSW", 2, Operands { v0, v1 }) - // PADDSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xed) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xed) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xed) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xed) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDSW") - } - return p -} - -// PADDUSB performs "Add Packed Unsigned Byte Integers with Unsigned Saturation". -// -// Mnemonic : PADDUSB -// Supported forms : (4 forms) -// -// * PADDUSB mm, mm [MMX] -// * PADDUSB m64, mm [MMX] -// * PADDUSB xmm, xmm [SSE2] -// * PADDUSB m128, xmm [SSE2] -// -func (self *Program) PADDUSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDUSB", 2, Operands { v0, v1 }) - // PADDUSB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDUSB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDUSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDUSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDUSB") - } - return p -} - -// PADDUSW performs "Add Packed Unsigned Word Integers with Unsigned Saturation". -// -// Mnemonic : PADDUSW -// Supported forms : (4 forms) -// -// * PADDUSW mm, mm [MMX] -// * PADDUSW m64, mm [MMX] -// * PADDUSW xmm, xmm [SSE2] -// * PADDUSW m128, xmm [SSE2] -// -func (self *Program) PADDUSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDUSW", 2, Operands { v0, v1 }) - // PADDUSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDUSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDUSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDUSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDUSW") - } - return p -} - -// PADDW performs "Add Packed Word Integers". -// -// Mnemonic : PADDW -// Supported forms : (4 forms) -// -// * PADDW mm, mm [MMX] -// * PADDW m64, mm [MMX] -// * PADDW xmm, xmm [SSE2] -// * PADDW m128, xmm [SSE2] -// -func (self *Program) PADDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PADDW", 2, Operands { v0, v1 }) - // PADDW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PADDW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PADDW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PADDW") - } - return p -} - -// PALIGNR performs "Packed Align Right". -// -// Mnemonic : PALIGNR -// Supported forms : (4 forms) -// -// * PALIGNR imm8, mm, mm [SSSE3] -// * PALIGNR imm8, m64, mm [SSSE3] -// * PALIGNR imm8, xmm, xmm [SSSE3] -// * PALIGNR imm8, m128, xmm [SSSE3] -// -func (self *Program) PALIGNR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PALIGNR", 3, Operands { v0, v1, v2 }) - // PALIGNR imm8, mm, mm - if isImm8(v0) && isMM(v1) && isMM(v2) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PALIGNR imm8, m64, mm - if isImm8(v0) && isM64(v1) && isMM(v2) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0f) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // PALIGNR imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PALIGNR imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0f) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PALIGNR") - } - return p -} - -// PAND performs "Packed Bitwise Logical AND". -// -// Mnemonic : PAND -// Supported forms : (4 forms) -// -// * PAND mm, mm [MMX] -// * PAND m64, mm [MMX] -// * PAND xmm, xmm [SSE2] -// * PAND m128, xmm [SSE2] -// -func (self *Program) PAND(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PAND", 2, Operands { v0, v1 }) - // PAND mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PAND m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PAND xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PAND m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PAND") - } - return p -} - -// PANDN performs "Packed Bitwise Logical AND NOT". -// -// Mnemonic : PANDN -// Supported forms : (4 forms) -// -// * PANDN mm, mm [MMX] -// * PANDN m64, mm [MMX] -// * PANDN xmm, xmm [SSE2] -// * PANDN m128, xmm [SSE2] -// -func (self *Program) PANDN(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PANDN", 2, Operands { v0, v1 }) - // PANDN mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PANDN m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PANDN xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PANDN m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xdf) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PANDN") - } - return p -} - -// PAUSE performs "Spin Loop Hint". -// -// Mnemonic : PAUSE -// Supported forms : (1 form) -// -// * PAUSE -// -func (self *Program) PAUSE() *Instruction { - p := self.alloc("PAUSE", 0, Operands { }) - // PAUSE - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x90) - }) - return p -} - -// PAVGB performs "Average Packed Byte Integers". -// -// Mnemonic : PAVGB -// Supported forms : (4 forms) -// -// * PAVGB mm, mm [MMX+] -// * PAVGB m64, mm [MMX+] -// * PAVGB xmm, xmm [SSE2] -// * PAVGB m128, xmm [SSE2] -// -func (self *Program) PAVGB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PAVGB", 2, Operands { v0, v1 }) - // PAVGB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PAVGB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PAVGB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PAVGB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PAVGB") - } - return p -} - -// PAVGUSB performs "Average Packed Byte Integers". -// -// Mnemonic : PAVGUSB -// Supported forms : (2 forms) -// -// * PAVGUSB mm, mm [3dnow!] -// * PAVGUSB m64, mm [3dnow!] -// -func (self *Program) PAVGUSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PAVGUSB", 2, Operands { v0, v1 }) - // PAVGUSB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xbf) - }) - } - // PAVGUSB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xbf) - }) - } - if p.len == 0 { - panic("invalid operands for PAVGUSB") - } - return p -} - -// PAVGW performs "Average Packed Word Integers". -// -// Mnemonic : PAVGW -// Supported forms : (4 forms) -// -// * PAVGW mm, mm [MMX+] -// * PAVGW m64, mm [MMX+] -// * PAVGW xmm, xmm [SSE2] -// * PAVGW m128, xmm [SSE2] -// -func (self *Program) PAVGW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PAVGW", 2, Operands { v0, v1 }) - // PAVGW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PAVGW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PAVGW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PAVGW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PAVGW") - } - return p -} - -// PBLENDVB performs "Variable Blend Packed Bytes". -// -// Mnemonic : PBLENDVB -// Supported forms : (2 forms) -// -// * PBLENDVB xmm0, xmm, xmm [SSE4.1] -// * PBLENDVB xmm0, m128, xmm [SSE4.1] -// -func (self *Program) PBLENDVB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PBLENDVB", 3, Operands { v0, v1, v2 }) - // PBLENDVB xmm0, xmm, xmm - if v0 == XMM0 && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // PBLENDVB xmm0, m128, xmm - if v0 == XMM0 && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x10) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PBLENDVB") - } - return p -} - -// PBLENDW performs "Blend Packed Words". -// -// Mnemonic : PBLENDW -// Supported forms : (2 forms) -// -// * PBLENDW imm8, xmm, xmm [SSE4.1] -// * PBLENDW imm8, m128, xmm [SSE4.1] -// -func (self *Program) PBLENDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PBLENDW", 3, Operands { v0, v1, v2 }) - // PBLENDW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PBLENDW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0e) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PBLENDW") - } - return p -} - -// PCLMULQDQ performs "Carry-Less Quadword Multiplication". -// -// Mnemonic : PCLMULQDQ -// Supported forms : (2 forms) -// -// * PCLMULQDQ imm8, xmm, xmm [PCLMULQDQ] -// * PCLMULQDQ imm8, m128, xmm [PCLMULQDQ] -// -func (self *Program) PCLMULQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PCLMULQDQ", 3, Operands { v0, v1, v2 }) - // PCLMULQDQ imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_PCLMULQDQ) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x44) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PCLMULQDQ imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_PCLMULQDQ) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x44) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PCLMULQDQ") - } - return p -} - -// PCMPEQB performs "Compare Packed Byte Data for Equality". -// -// Mnemonic : PCMPEQB -// Supported forms : (4 forms) -// -// * PCMPEQB mm, mm [MMX] -// * PCMPEQB m64, mm [MMX] -// * PCMPEQB xmm, xmm [SSE2] -// * PCMPEQB m128, xmm [SSE2] -// -func (self *Program) PCMPEQB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPEQB", 2, Operands { v0, v1 }) - // PCMPEQB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x74) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x74) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PCMPEQB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x74) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x74) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPEQB") - } - return p -} - -// PCMPEQD performs "Compare Packed Doubleword Data for Equality". -// -// Mnemonic : PCMPEQD -// Supported forms : (4 forms) -// -// * PCMPEQD mm, mm [MMX] -// * PCMPEQD m64, mm [MMX] -// * PCMPEQD xmm, xmm [SSE2] -// * PCMPEQD m128, xmm [SSE2] -// -func (self *Program) PCMPEQD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPEQD", 2, Operands { v0, v1 }) - // PCMPEQD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x76) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x76) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PCMPEQD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x76) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x76) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPEQD") - } - return p -} - -// PCMPEQQ performs "Compare Packed Quadword Data for Equality". -// -// Mnemonic : PCMPEQQ -// Supported forms : (2 forms) -// -// * PCMPEQQ xmm, xmm [SSE4.1] -// * PCMPEQQ m128, xmm [SSE4.1] -// -func (self *Program) PCMPEQQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPEQQ", 2, Operands { v0, v1 }) - // PCMPEQQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x29) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPEQQ") - } - return p -} - -// PCMPEQW performs "Compare Packed Word Data for Equality". -// -// Mnemonic : PCMPEQW -// Supported forms : (4 forms) -// -// * PCMPEQW mm, mm [MMX] -// * PCMPEQW m64, mm [MMX] -// * PCMPEQW xmm, xmm [SSE2] -// * PCMPEQW m128, xmm [SSE2] -// -func (self *Program) PCMPEQW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPEQW", 2, Operands { v0, v1 }) - // PCMPEQW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x75) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x75) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PCMPEQW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x75) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPEQW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x75) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPEQW") - } - return p -} - -// PCMPESTRI performs "Packed Compare Explicit Length Strings, Return Index". -// -// Mnemonic : PCMPESTRI -// Supported forms : (2 forms) -// -// * PCMPESTRI imm8, xmm, xmm [SSE4.2] -// * PCMPESTRI imm8, m128, xmm [SSE4.2] -// -func (self *Program) PCMPESTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PCMPESTRI", 3, Operands { v0, v1, v2 }) - // PCMPESTRI imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PCMPESTRI imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPESTRI") - } - return p -} - -// PCMPESTRM performs "Packed Compare Explicit Length Strings, Return Mask". -// -// Mnemonic : PCMPESTRM -// Supported forms : (2 forms) -// -// * PCMPESTRM imm8, xmm, xmm [SSE4.2] -// * PCMPESTRM imm8, m128, xmm [SSE4.2] -// -func (self *Program) PCMPESTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PCMPESTRM", 3, Operands { v0, v1, v2 }) - // PCMPESTRM imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PCMPESTRM imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPESTRM") - } - return p -} - -// PCMPGTB performs "Compare Packed Signed Byte Integers for Greater Than". -// -// Mnemonic : PCMPGTB -// Supported forms : (4 forms) -// -// * PCMPGTB mm, mm [MMX] -// * PCMPGTB m64, mm [MMX] -// * PCMPGTB xmm, xmm [SSE2] -// * PCMPGTB m128, xmm [SSE2] -// -func (self *Program) PCMPGTB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPGTB", 2, Operands { v0, v1 }) - // PCMPGTB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x64) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x64) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PCMPGTB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x64) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x64) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPGTB") - } - return p -} - -// PCMPGTD performs "Compare Packed Signed Doubleword Integers for Greater Than". -// -// Mnemonic : PCMPGTD -// Supported forms : (4 forms) -// -// * PCMPGTD mm, mm [MMX] -// * PCMPGTD m64, mm [MMX] -// * PCMPGTD xmm, xmm [SSE2] -// * PCMPGTD m128, xmm [SSE2] -// -func (self *Program) PCMPGTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPGTD", 2, Operands { v0, v1 }) - // PCMPGTD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x66) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x66) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PCMPGTD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x66) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x66) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPGTD") - } - return p -} - -// PCMPGTQ performs "Compare Packed Data for Greater Than". -// -// Mnemonic : PCMPGTQ -// Supported forms : (2 forms) -// -// * PCMPGTQ xmm, xmm [SSE4.2] -// * PCMPGTQ m128, xmm [SSE4.2] -// -func (self *Program) PCMPGTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPGTQ", 2, Operands { v0, v1 }) - // PCMPGTQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x37) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x37) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPGTQ") - } - return p -} - -// PCMPGTW performs "Compare Packed Signed Word Integers for Greater Than". -// -// Mnemonic : PCMPGTW -// Supported forms : (4 forms) -// -// * PCMPGTW mm, mm [MMX] -// * PCMPGTW m64, mm [MMX] -// * PCMPGTW xmm, xmm [SSE2] -// * PCMPGTW m128, xmm [SSE2] -// -func (self *Program) PCMPGTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PCMPGTW", 2, Operands { v0, v1 }) - // PCMPGTW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x65) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x65) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PCMPGTW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x65) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PCMPGTW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x65) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPGTW") - } - return p -} - -// PCMPISTRI performs "Packed Compare Implicit Length Strings, Return Index". -// -// Mnemonic : PCMPISTRI -// Supported forms : (2 forms) -// -// * PCMPISTRI imm8, xmm, xmm [SSE4.2] -// * PCMPISTRI imm8, m128, xmm [SSE4.2] -// -func (self *Program) PCMPISTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PCMPISTRI", 3, Operands { v0, v1, v2 }) - // PCMPISTRI imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PCMPISTRI imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPISTRI") - } - return p -} - -// PCMPISTRM performs "Packed Compare Implicit Length Strings, Return Mask". -// -// Mnemonic : PCMPISTRM -// Supported forms : (2 forms) -// -// * PCMPISTRM imm8, xmm, xmm [SSE4.2] -// * PCMPISTRM imm8, m128, xmm [SSE4.2] -// -func (self *Program) PCMPISTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PCMPISTRM", 3, Operands { v0, v1, v2 }) - // PCMPISTRM imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PCMPISTRM imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PCMPISTRM") - } - return p -} - -// PDEP performs "Parallel Bits Deposit". -// -// Mnemonic : PDEP -// Supported forms : (4 forms) -// -// * PDEP r32, r32, r32 [BMI2] -// * PDEP m32, r32, r32 [BMI2] -// * PDEP r64, r64, r64 [BMI2] -// * PDEP m64, r64, r64 [BMI2] -// -func (self *Program) PDEP(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PDEP", 3, Operands { v0, v1, v2 }) - // PDEP r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7b ^ (hlcode(v[1]) << 3)) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // PDEP m32, r32, r32 - if isM32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // PDEP r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfb ^ (hlcode(v[1]) << 3)) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // PDEP m64, r64, r64 - if isM64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PDEP") - } - return p -} - -// PEXT performs "Parallel Bits Extract". -// -// Mnemonic : PEXT -// Supported forms : (4 forms) -// -// * PEXT r32, r32, r32 [BMI2] -// * PEXT m32, r32, r32 [BMI2] -// * PEXT r64, r64, r64 [BMI2] -// * PEXT m64, r64, r64 [BMI2] -// -func (self *Program) PEXT(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PEXT", 3, Operands { v0, v1, v2 }) - // PEXT r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7a ^ (hlcode(v[1]) << 3)) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // PEXT m32, r32, r32 - if isM32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x02, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // PEXT r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfa ^ (hlcode(v[1]) << 3)) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // PEXT m64, r64, r64 - if isM64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x82, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PEXT") - } - return p -} - -// PEXTRB performs "Extract Byte". -// -// Mnemonic : PEXTRB -// Supported forms : (2 forms) -// -// * PEXTRB imm8, xmm, r32 [SSE4.1] -// * PEXTRB imm8, xmm, m8 [SSE4.1] -// -func (self *Program) PEXTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PEXTRB", 3, Operands { v0, v1, v2 }) - // PEXTRB imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x14) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // PEXTRB imm8, xmm, m8 - if isImm8(v0) && isXMM(v1) && isM8(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x14) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PEXTRB") - } - return p -} - -// PEXTRD performs "Extract Doubleword". -// -// Mnemonic : PEXTRD -// Supported forms : (2 forms) -// -// * PEXTRD imm8, xmm, r32 [SSE4.1] -// * PEXTRD imm8, xmm, m32 [SSE4.1] -// -func (self *Program) PEXTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PEXTRD", 3, Operands { v0, v1, v2 }) - // PEXTRD imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // PEXTRD imm8, xmm, m32 - if isImm8(v0) && isXMM(v1) && isM32(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PEXTRD") - } - return p -} - -// PEXTRQ performs "Extract Quadword". -// -// Mnemonic : PEXTRQ -// Supported forms : (2 forms) -// -// * PEXTRQ imm8, xmm, r64 [SSE4.1] -// * PEXTRQ imm8, xmm, m64 [SSE4.1] -// -func (self *Program) PEXTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PEXTRQ", 3, Operands { v0, v1, v2 }) - // PEXTRQ imm8, xmm, r64 - if isImm8(v0) && isXMM(v1) && isReg64(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // PEXTRQ imm8, xmm, m64 - if isImm8(v0) && isXMM(v1) && isM64(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexm(1, hcode(v[1]), addr(v[2])) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PEXTRQ") - } - return p -} - -// PEXTRW performs "Extract Word". -// -// Mnemonic : PEXTRW -// Supported forms : (3 forms) -// -// * PEXTRW imm8, mm, r32 [MMX+] -// * PEXTRW imm8, xmm, r32 [SSE4.1] -// * PEXTRW imm8, xmm, m16 [SSE4.1] -// -func (self *Program) PEXTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PEXTRW", 3, Operands { v0, v1, v2 }) - // PEXTRW imm8, mm, r32 - if isImm8(v0) && isMM(v1) && isReg32(v2) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PEXTRW imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x15) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PEXTRW imm8, xmm, m16 - if isImm8(v0) && isXMM(v1) && isM16(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x15) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PEXTRW") - } - return p -} - -// PF2ID performs "Packed Floating-Point to Integer Doubleword Converson". -// -// Mnemonic : PF2ID -// Supported forms : (2 forms) -// -// * PF2ID mm, mm [3dnow!] -// * PF2ID m64, mm [3dnow!] -// -func (self *Program) PF2ID(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PF2ID", 2, Operands { v0, v1 }) - // PF2ID mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x1d) - }) - } - // PF2ID m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x1d) - }) - } - if p.len == 0 { - panic("invalid operands for PF2ID") - } - return p -} - -// PF2IW performs "Packed Floating-Point to Integer Word Conversion". -// -// Mnemonic : PF2IW -// Supported forms : (2 forms) -// -// * PF2IW mm, mm [3dnow!+] -// * PF2IW m64, mm [3dnow!+] -// -func (self *Program) PF2IW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PF2IW", 2, Operands { v0, v1 }) - // PF2IW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x1c) - }) - } - // PF2IW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x1c) - }) - } - if p.len == 0 { - panic("invalid operands for PF2IW") - } - return p -} - -// PFACC performs "Packed Floating-Point Accumulate". -// -// Mnemonic : PFACC -// Supported forms : (2 forms) -// -// * PFACC mm, mm [3dnow!] -// * PFACC m64, mm [3dnow!] -// -func (self *Program) PFACC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFACC", 2, Operands { v0, v1 }) - // PFACC mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xae) - }) - } - // PFACC m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xae) - }) - } - if p.len == 0 { - panic("invalid operands for PFACC") - } - return p -} - -// PFADD performs "Packed Floating-Point Add". -// -// Mnemonic : PFADD -// Supported forms : (2 forms) -// -// * PFADD mm, mm [3dnow!] -// * PFADD m64, mm [3dnow!] -// -func (self *Program) PFADD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFADD", 2, Operands { v0, v1 }) - // PFADD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x9e) - }) - } - // PFADD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x9e) - }) - } - if p.len == 0 { - panic("invalid operands for PFADD") - } - return p -} - -// PFCMPEQ performs "Packed Floating-Point Compare for Equal". -// -// Mnemonic : PFCMPEQ -// Supported forms : (2 forms) -// -// * PFCMPEQ mm, mm [3dnow!] -// * PFCMPEQ m64, mm [3dnow!] -// -func (self *Program) PFCMPEQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFCMPEQ", 2, Operands { v0, v1 }) - // PFCMPEQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xb0) - }) - } - // PFCMPEQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xb0) - }) - } - if p.len == 0 { - panic("invalid operands for PFCMPEQ") - } - return p -} - -// PFCMPGE performs "Packed Floating-Point Compare for Greater or Equal". -// -// Mnemonic : PFCMPGE -// Supported forms : (2 forms) -// -// * PFCMPGE mm, mm [3dnow!] -// * PFCMPGE m64, mm [3dnow!] -// -func (self *Program) PFCMPGE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFCMPGE", 2, Operands { v0, v1 }) - // PFCMPGE mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x90) - }) - } - // PFCMPGE m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x90) - }) - } - if p.len == 0 { - panic("invalid operands for PFCMPGE") - } - return p -} - -// PFCMPGT performs "Packed Floating-Point Compare for Greater Than". -// -// Mnemonic : PFCMPGT -// Supported forms : (2 forms) -// -// * PFCMPGT mm, mm [3dnow!] -// * PFCMPGT m64, mm [3dnow!] -// -func (self *Program) PFCMPGT(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFCMPGT", 2, Operands { v0, v1 }) - // PFCMPGT mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xa0) - }) - } - // PFCMPGT m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xa0) - }) - } - if p.len == 0 { - panic("invalid operands for PFCMPGT") - } - return p -} - -// PFMAX performs "Packed Floating-Point Maximum". -// -// Mnemonic : PFMAX -// Supported forms : (2 forms) -// -// * PFMAX mm, mm [3dnow!] -// * PFMAX m64, mm [3dnow!] -// -func (self *Program) PFMAX(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFMAX", 2, Operands { v0, v1 }) - // PFMAX mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xa4) - }) - } - // PFMAX m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xa4) - }) - } - if p.len == 0 { - panic("invalid operands for PFMAX") - } - return p -} - -// PFMIN performs "Packed Floating-Point Minimum". -// -// Mnemonic : PFMIN -// Supported forms : (2 forms) -// -// * PFMIN mm, mm [3dnow!] -// * PFMIN m64, mm [3dnow!] -// -func (self *Program) PFMIN(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFMIN", 2, Operands { v0, v1 }) - // PFMIN mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x94) - }) - } - // PFMIN m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x94) - }) - } - if p.len == 0 { - panic("invalid operands for PFMIN") - } - return p -} - -// PFMUL performs "Packed Floating-Point Multiply". -// -// Mnemonic : PFMUL -// Supported forms : (2 forms) -// -// * PFMUL mm, mm [3dnow!] -// * PFMUL m64, mm [3dnow!] -// -func (self *Program) PFMUL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFMUL", 2, Operands { v0, v1 }) - // PFMUL mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xb4) - }) - } - // PFMUL m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xb4) - }) - } - if p.len == 0 { - panic("invalid operands for PFMUL") - } - return p -} - -// PFNACC performs "Packed Floating-Point Negative Accumulate". -// -// Mnemonic : PFNACC -// Supported forms : (2 forms) -// -// * PFNACC mm, mm [3dnow!+] -// * PFNACC m64, mm [3dnow!+] -// -func (self *Program) PFNACC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFNACC", 2, Operands { v0, v1 }) - // PFNACC mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x8a) - }) - } - // PFNACC m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x8a) - }) - } - if p.len == 0 { - panic("invalid operands for PFNACC") - } - return p -} - -// PFPNACC performs "Packed Floating-Point Positive-Negative Accumulate". -// -// Mnemonic : PFPNACC -// Supported forms : (2 forms) -// -// * PFPNACC mm, mm [3dnow!+] -// * PFPNACC m64, mm [3dnow!+] -// -func (self *Program) PFPNACC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFPNACC", 2, Operands { v0, v1 }) - // PFPNACC mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x8e) - }) - } - // PFPNACC m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x8e) - }) - } - if p.len == 0 { - panic("invalid operands for PFPNACC") - } - return p -} - -// PFRCP performs "Packed Floating-Point Reciprocal Approximation". -// -// Mnemonic : PFRCP -// Supported forms : (2 forms) -// -// * PFRCP mm, mm [3dnow!] -// * PFRCP m64, mm [3dnow!] -// -func (self *Program) PFRCP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFRCP", 2, Operands { v0, v1 }) - // PFRCP mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x96) - }) - } - // PFRCP m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x96) - }) - } - if p.len == 0 { - panic("invalid operands for PFRCP") - } - return p -} - -// PFRCPIT1 performs "Packed Floating-Point Reciprocal Iteration 1". -// -// Mnemonic : PFRCPIT1 -// Supported forms : (2 forms) -// -// * PFRCPIT1 mm, mm [3dnow!] -// * PFRCPIT1 m64, mm [3dnow!] -// -func (self *Program) PFRCPIT1(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFRCPIT1", 2, Operands { v0, v1 }) - // PFRCPIT1 mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xa6) - }) - } - // PFRCPIT1 m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xa6) - }) - } - if p.len == 0 { - panic("invalid operands for PFRCPIT1") - } - return p -} - -// PFRCPIT2 performs "Packed Floating-Point Reciprocal Iteration 2". -// -// Mnemonic : PFRCPIT2 -// Supported forms : (2 forms) -// -// * PFRCPIT2 mm, mm [3dnow!] -// * PFRCPIT2 m64, mm [3dnow!] -// -func (self *Program) PFRCPIT2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFRCPIT2", 2, Operands { v0, v1 }) - // PFRCPIT2 mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xb6) - }) - } - // PFRCPIT2 m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xb6) - }) - } - if p.len == 0 { - panic("invalid operands for PFRCPIT2") - } - return p -} - -// PFRSQIT1 performs "Packed Floating-Point Reciprocal Square Root Iteration 1". -// -// Mnemonic : PFRSQIT1 -// Supported forms : (2 forms) -// -// * PFRSQIT1 mm, mm [3dnow!] -// * PFRSQIT1 m64, mm [3dnow!] -// -func (self *Program) PFRSQIT1(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFRSQIT1", 2, Operands { v0, v1 }) - // PFRSQIT1 mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xa7) - }) - } - // PFRSQIT1 m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xa7) - }) - } - if p.len == 0 { - panic("invalid operands for PFRSQIT1") - } - return p -} - -// PFRSQRT performs "Packed Floating-Point Reciprocal Square Root Approximation". -// -// Mnemonic : PFRSQRT -// Supported forms : (2 forms) -// -// * PFRSQRT mm, mm [3dnow!] -// * PFRSQRT m64, mm [3dnow!] -// -func (self *Program) PFRSQRT(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFRSQRT", 2, Operands { v0, v1 }) - // PFRSQRT mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x97) - }) - } - // PFRSQRT m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x97) - }) - } - if p.len == 0 { - panic("invalid operands for PFRSQRT") - } - return p -} - -// PFSUB performs "Packed Floating-Point Subtract". -// -// Mnemonic : PFSUB -// Supported forms : (2 forms) -// -// * PFSUB mm, mm [3dnow!] -// * PFSUB m64, mm [3dnow!] -// -func (self *Program) PFSUB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFSUB", 2, Operands { v0, v1 }) - // PFSUB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x9a) - }) - } - // PFSUB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x9a) - }) - } - if p.len == 0 { - panic("invalid operands for PFSUB") - } - return p -} - -// PFSUBR performs "Packed Floating-Point Subtract Reverse". -// -// Mnemonic : PFSUBR -// Supported forms : (2 forms) -// -// * PFSUBR mm, mm [3dnow!] -// * PFSUBR m64, mm [3dnow!] -// -func (self *Program) PFSUBR(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PFSUBR", 2, Operands { v0, v1 }) - // PFSUBR mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xaa) - }) - } - // PFSUBR m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xaa) - }) - } - if p.len == 0 { - panic("invalid operands for PFSUBR") - } - return p -} - -// PHADDD performs "Packed Horizontal Add Doubleword Integer". -// -// Mnemonic : PHADDD -// Supported forms : (4 forms) -// -// * PHADDD mm, mm [SSSE3] -// * PHADDD m64, mm [SSSE3] -// * PHADDD xmm, xmm [SSSE3] -// * PHADDD m128, xmm [SSSE3] -// -func (self *Program) PHADDD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHADDD", 2, Operands { v0, v1 }) - // PHADDD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x02) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHADDD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x02) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PHADDD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x02) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHADDD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x02) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHADDD") - } - return p -} - -// PHADDSW performs "Packed Horizontal Add Signed Word Integers with Signed Saturation". -// -// Mnemonic : PHADDSW -// Supported forms : (4 forms) -// -// * PHADDSW mm, mm [SSSE3] -// * PHADDSW m64, mm [SSSE3] -// * PHADDSW xmm, xmm [SSSE3] -// * PHADDSW m128, xmm [SSSE3] -// -func (self *Program) PHADDSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHADDSW", 2, Operands { v0, v1 }) - // PHADDSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x03) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHADDSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x03) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PHADDSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x03) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHADDSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x03) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHADDSW") - } - return p -} - -// PHADDW performs "Packed Horizontal Add Word Integers". -// -// Mnemonic : PHADDW -// Supported forms : (4 forms) -// -// * PHADDW mm, mm [SSSE3] -// * PHADDW m64, mm [SSSE3] -// * PHADDW xmm, xmm [SSSE3] -// * PHADDW m128, xmm [SSSE3] -// -func (self *Program) PHADDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHADDW", 2, Operands { v0, v1 }) - // PHADDW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x01) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHADDW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x01) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PHADDW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x01) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHADDW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x01) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHADDW") - } - return p -} - -// PHMINPOSUW performs "Packed Horizontal Minimum of Unsigned Word Integers". -// -// Mnemonic : PHMINPOSUW -// Supported forms : (2 forms) -// -// * PHMINPOSUW xmm, xmm [SSE4.1] -// * PHMINPOSUW m128, xmm [SSE4.1] -// -func (self *Program) PHMINPOSUW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHMINPOSUW", 2, Operands { v0, v1 }) - // PHMINPOSUW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x41) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHMINPOSUW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x41) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHMINPOSUW") - } - return p -} - -// PHSUBD performs "Packed Horizontal Subtract Doubleword Integers". -// -// Mnemonic : PHSUBD -// Supported forms : (4 forms) -// -// * PHSUBD mm, mm [SSSE3] -// * PHSUBD m64, mm [SSSE3] -// * PHSUBD xmm, xmm [SSSE3] -// * PHSUBD m128, xmm [SSSE3] -// -func (self *Program) PHSUBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHSUBD", 2, Operands { v0, v1 }) - // PHSUBD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x06) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHSUBD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x06) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PHSUBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x06) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHSUBD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x06) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHSUBD") - } - return p -} - -// PHSUBSW performs "Packed Horizontal Subtract Signed Word Integers with Signed Saturation". -// -// Mnemonic : PHSUBSW -// Supported forms : (4 forms) -// -// * PHSUBSW mm, mm [SSSE3] -// * PHSUBSW m64, mm [SSSE3] -// * PHSUBSW xmm, xmm [SSSE3] -// * PHSUBSW m128, xmm [SSSE3] -// -func (self *Program) PHSUBSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHSUBSW", 2, Operands { v0, v1 }) - // PHSUBSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x07) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHSUBSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x07) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PHSUBSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x07) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHSUBSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x07) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHSUBSW") - } - return p -} - -// PHSUBW performs "Packed Horizontal Subtract Word Integers". -// -// Mnemonic : PHSUBW -// Supported forms : (4 forms) -// -// * PHSUBW mm, mm [SSSE3] -// * PHSUBW m64, mm [SSSE3] -// * PHSUBW xmm, xmm [SSSE3] -// * PHSUBW m128, xmm [SSSE3] -// -func (self *Program) PHSUBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PHSUBW", 2, Operands { v0, v1 }) - // PHSUBW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x05) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHSUBW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x05) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PHSUBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x05) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PHSUBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x05) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PHSUBW") - } - return p -} - -// PI2FD performs "Packed Integer to Floating-Point Doubleword Conversion". -// -// Mnemonic : PI2FD -// Supported forms : (2 forms) -// -// * PI2FD mm, mm [3dnow!] -// * PI2FD m64, mm [3dnow!] -// -func (self *Program) PI2FD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PI2FD", 2, Operands { v0, v1 }) - // PI2FD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x0d) - }) - } - // PI2FD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x0d) - }) - } - if p.len == 0 { - panic("invalid operands for PI2FD") - } - return p -} - -// PI2FW performs "Packed Integer to Floating-Point Word Conversion". -// -// Mnemonic : PI2FW -// Supported forms : (2 forms) -// -// * PI2FW mm, mm [3dnow!+] -// * PI2FW m64, mm [3dnow!+] -// -func (self *Program) PI2FW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PI2FW", 2, Operands { v0, v1 }) - // PI2FW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0x0c) - }) - } - // PI2FW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0x0c) - }) - } - if p.len == 0 { - panic("invalid operands for PI2FW") - } - return p -} - -// PINSRB performs "Insert Byte". -// -// Mnemonic : PINSRB -// Supported forms : (2 forms) -// -// * PINSRB imm8, r32, xmm [SSE4.1] -// * PINSRB imm8, m8, xmm [SSE4.1] -// -func (self *Program) PINSRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PINSRB", 3, Operands { v0, v1, v2 }) - // PINSRB imm8, r32, xmm - if isImm8(v0) && isReg32(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x20) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PINSRB imm8, m8, xmm - if isImm8(v0) && isM8(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x20) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PINSRB") - } - return p -} - -// PINSRD performs "Insert Doubleword". -// -// Mnemonic : PINSRD -// Supported forms : (2 forms) -// -// * PINSRD imm8, r32, xmm [SSE4.1] -// * PINSRD imm8, m32, xmm [SSE4.1] -// -func (self *Program) PINSRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PINSRD", 3, Operands { v0, v1, v2 }) - // PINSRD imm8, r32, xmm - if isImm8(v0) && isReg32(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x22) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PINSRD imm8, m32, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x22) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PINSRD") - } - return p -} - -// PINSRQ performs "Insert Quadword". -// -// Mnemonic : PINSRQ -// Supported forms : (2 forms) -// -// * PINSRQ imm8, r64, xmm [SSE4.1] -// * PINSRQ imm8, m64, xmm [SSE4.1] -// -func (self *Program) PINSRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PINSRQ", 3, Operands { v0, v1, v2 }) - // PINSRQ imm8, r64, xmm - if isImm8(v0) && isReg64(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x22) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PINSRQ imm8, m64, xmm - if isImm8(v0) && isM64(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexm(1, hcode(v[2]), addr(v[1])) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x22) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PINSRQ") - } - return p -} - -// PINSRW performs "Insert Word". -// -// Mnemonic : PINSRW -// Supported forms : (4 forms) -// -// * PINSRW imm8, r32, mm [MMX+] -// * PINSRW imm8, m16, mm [MMX+] -// * PINSRW imm8, r32, xmm [SSE2] -// * PINSRW imm8, m16, xmm [SSE2] -// -func (self *Program) PINSRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PINSRW", 3, Operands { v0, v1, v2 }) - // PINSRW imm8, r32, mm - if isImm8(v0) && isReg32(v1) && isMM(v2) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PINSRW imm8, m16, mm - if isImm8(v0) && isM16(v1) && isMM(v2) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc4) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // PINSRW imm8, r32, xmm - if isImm8(v0) && isReg32(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PINSRW imm8, m16, xmm - if isImm8(v0) && isM16(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc4) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PINSRW") - } - return p -} - -// PMADDUBSW performs "Multiply and Add Packed Signed and Unsigned Byte Integers". -// -// Mnemonic : PMADDUBSW -// Supported forms : (4 forms) -// -// * PMADDUBSW mm, mm [SSSE3] -// * PMADDUBSW m64, mm [SSSE3] -// * PMADDUBSW xmm, xmm [SSSE3] -// * PMADDUBSW m128, xmm [SSSE3] -// -func (self *Program) PMADDUBSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMADDUBSW", 2, Operands { v0, v1 }) - // PMADDUBSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x04) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMADDUBSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x04) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMADDUBSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x04) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMADDUBSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x04) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMADDUBSW") - } - return p -} - -// PMADDWD performs "Multiply and Add Packed Signed Word Integers". -// -// Mnemonic : PMADDWD -// Supported forms : (4 forms) -// -// * PMADDWD mm, mm [MMX] -// * PMADDWD m64, mm [MMX] -// * PMADDWD xmm, xmm [SSE2] -// * PMADDWD m128, xmm [SSE2] -// -func (self *Program) PMADDWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMADDWD", 2, Operands { v0, v1 }) - // PMADDWD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMADDWD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf5) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMADDWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMADDWD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf5) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMADDWD") - } - return p -} - -// PMAXSB performs "Maximum of Packed Signed Byte Integers". -// -// Mnemonic : PMAXSB -// Supported forms : (2 forms) -// -// * PMAXSB xmm, xmm [SSE4.1] -// * PMAXSB m128, xmm [SSE4.1] -// -func (self *Program) PMAXSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMAXSB", 2, Operands { v0, v1 }) - // PMAXSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMAXSB") - } - return p -} - -// PMAXSD performs "Maximum of Packed Signed Doubleword Integers". -// -// Mnemonic : PMAXSD -// Supported forms : (2 forms) -// -// * PMAXSD xmm, xmm [SSE4.1] -// * PMAXSD m128, xmm [SSE4.1] -// -func (self *Program) PMAXSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMAXSD", 2, Operands { v0, v1 }) - // PMAXSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXSD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMAXSD") - } - return p -} - -// PMAXSW performs "Maximum of Packed Signed Word Integers". -// -// Mnemonic : PMAXSW -// Supported forms : (4 forms) -// -// * PMAXSW mm, mm [MMX+] -// * PMAXSW m64, mm [MMX+] -// * PMAXSW xmm, xmm [SSE2] -// * PMAXSW m128, xmm [SSE2] -// -func (self *Program) PMAXSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMAXSW", 2, Operands { v0, v1 }) - // PMAXSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xee) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xee) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMAXSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xee) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xee) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMAXSW") - } - return p -} - -// PMAXUB performs "Maximum of Packed Unsigned Byte Integers". -// -// Mnemonic : PMAXUB -// Supported forms : (4 forms) -// -// * PMAXUB mm, mm [MMX+] -// * PMAXUB m64, mm [MMX+] -// * PMAXUB xmm, xmm [SSE2] -// * PMAXUB m128, xmm [SSE2] -// -func (self *Program) PMAXUB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMAXUB", 2, Operands { v0, v1 }) - // PMAXUB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xde) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXUB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xde) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMAXUB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xde) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXUB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xde) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMAXUB") - } - return p -} - -// PMAXUD performs "Maximum of Packed Unsigned Doubleword Integers". -// -// Mnemonic : PMAXUD -// Supported forms : (2 forms) -// -// * PMAXUD xmm, xmm [SSE4.1] -// * PMAXUD m128, xmm [SSE4.1] -// -func (self *Program) PMAXUD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMAXUD", 2, Operands { v0, v1 }) - // PMAXUD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXUD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMAXUD") - } - return p -} - -// PMAXUW performs "Maximum of Packed Unsigned Word Integers". -// -// Mnemonic : PMAXUW -// Supported forms : (2 forms) -// -// * PMAXUW xmm, xmm [SSE4.1] -// * PMAXUW m128, xmm [SSE4.1] -// -func (self *Program) PMAXUW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMAXUW", 2, Operands { v0, v1 }) - // PMAXUW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMAXUW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMAXUW") - } - return p -} - -// PMINSB performs "Minimum of Packed Signed Byte Integers". -// -// Mnemonic : PMINSB -// Supported forms : (2 forms) -// -// * PMINSB xmm, xmm [SSE4.1] -// * PMINSB m128, xmm [SSE4.1] -// -func (self *Program) PMINSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMINSB", 2, Operands { v0, v1 }) - // PMINSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x38) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMINSB") - } - return p -} - -// PMINSD performs "Minimum of Packed Signed Doubleword Integers". -// -// Mnemonic : PMINSD -// Supported forms : (2 forms) -// -// * PMINSD xmm, xmm [SSE4.1] -// * PMINSD m128, xmm [SSE4.1] -// -func (self *Program) PMINSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMINSD", 2, Operands { v0, v1 }) - // PMINSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINSD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x39) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMINSD") - } - return p -} - -// PMINSW performs "Minimum of Packed Signed Word Integers". -// -// Mnemonic : PMINSW -// Supported forms : (4 forms) -// -// * PMINSW mm, mm [MMX+] -// * PMINSW m64, mm [MMX+] -// * PMINSW xmm, xmm [SSE2] -// * PMINSW m128, xmm [SSE2] -// -func (self *Program) PMINSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMINSW", 2, Operands { v0, v1 }) - // PMINSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xea) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xea) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMINSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xea) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xea) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMINSW") - } - return p -} - -// PMINUB performs "Minimum of Packed Unsigned Byte Integers". -// -// Mnemonic : PMINUB -// Supported forms : (4 forms) -// -// * PMINUB mm, mm [MMX+] -// * PMINUB m64, mm [MMX+] -// * PMINUB xmm, xmm [SSE2] -// * PMINUB m128, xmm [SSE2] -// -func (self *Program) PMINUB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMINUB", 2, Operands { v0, v1 }) - // PMINUB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xda) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINUB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xda) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMINUB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xda) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINUB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xda) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMINUB") - } - return p -} - -// PMINUD performs "Minimum of Packed Unsigned Doubleword Integers". -// -// Mnemonic : PMINUD -// Supported forms : (2 forms) -// -// * PMINUD xmm, xmm [SSE4.1] -// * PMINUD m128, xmm [SSE4.1] -// -func (self *Program) PMINUD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMINUD", 2, Operands { v0, v1 }) - // PMINUD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINUD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMINUD") - } - return p -} - -// PMINUW performs "Minimum of Packed Unsigned Word Integers". -// -// Mnemonic : PMINUW -// Supported forms : (2 forms) -// -// * PMINUW xmm, xmm [SSE4.1] -// * PMINUW m128, xmm [SSE4.1] -// -func (self *Program) PMINUW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMINUW", 2, Operands { v0, v1 }) - // PMINUW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMINUW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x3a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMINUW") - } - return p -} - -// PMOVMSKB performs "Move Byte Mask". -// -// Mnemonic : PMOVMSKB -// Supported forms : (2 forms) -// -// * PMOVMSKB mm, r32 [MMX+] -// * PMOVMSKB xmm, r32 [SSE2] -// -func (self *Program) PMOVMSKB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVMSKB", 2, Operands { v0, v1 }) - // PMOVMSKB mm, r32 - if isMM(v0) && isReg32(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVMSKB xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVMSKB") - } - return p -} - -// PMOVSXBD performs "Move Packed Byte Integers to Doubleword Integers with Sign Extension". -// -// Mnemonic : PMOVSXBD -// Supported forms : (2 forms) -// -// * PMOVSXBD xmm, xmm [SSE4.1] -// * PMOVSXBD m32, xmm [SSE4.1] -// -func (self *Program) PMOVSXBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVSXBD", 2, Operands { v0, v1 }) - // PMOVSXBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x21) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVSXBD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x21) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVSXBD") - } - return p -} - -// PMOVSXBQ performs "Move Packed Byte Integers to Quadword Integers with Sign Extension". -// -// Mnemonic : PMOVSXBQ -// Supported forms : (2 forms) -// -// * PMOVSXBQ xmm, xmm [SSE4.1] -// * PMOVSXBQ m16, xmm [SSE4.1] -// -func (self *Program) PMOVSXBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVSXBQ", 2, Operands { v0, v1 }) - // PMOVSXBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVSXBQ m16, xmm - if isM16(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVSXBQ") - } - return p -} - -// PMOVSXBW performs "Move Packed Byte Integers to Word Integers with Sign Extension". -// -// Mnemonic : PMOVSXBW -// Supported forms : (2 forms) -// -// * PMOVSXBW xmm, xmm [SSE4.1] -// * PMOVSXBW m64, xmm [SSE4.1] -// -func (self *Program) PMOVSXBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVSXBW", 2, Operands { v0, v1 }) - // PMOVSXBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x20) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVSXBW m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x20) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVSXBW") - } - return p -} - -// PMOVSXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Sign Extension". -// -// Mnemonic : PMOVSXDQ -// Supported forms : (2 forms) -// -// * PMOVSXDQ xmm, xmm [SSE4.1] -// * PMOVSXDQ m64, xmm [SSE4.1] -// -func (self *Program) PMOVSXDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVSXDQ", 2, Operands { v0, v1 }) - // PMOVSXDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x25) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVSXDQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x25) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVSXDQ") - } - return p -} - -// PMOVSXWD performs "Move Packed Word Integers to Doubleword Integers with Sign Extension". -// -// Mnemonic : PMOVSXWD -// Supported forms : (2 forms) -// -// * PMOVSXWD xmm, xmm [SSE4.1] -// * PMOVSXWD m64, xmm [SSE4.1] -// -func (self *Program) PMOVSXWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVSXWD", 2, Operands { v0, v1 }) - // PMOVSXWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVSXWD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVSXWD") - } - return p -} - -// PMOVSXWQ performs "Move Packed Word Integers to Quadword Integers with Sign Extension". -// -// Mnemonic : PMOVSXWQ -// Supported forms : (2 forms) -// -// * PMOVSXWQ xmm, xmm [SSE4.1] -// * PMOVSXWQ m32, xmm [SSE4.1] -// -func (self *Program) PMOVSXWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVSXWQ", 2, Operands { v0, v1 }) - // PMOVSXWQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x24) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVSXWQ m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x24) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVSXWQ") - } - return p -} - -// PMOVZXBD performs "Move Packed Byte Integers to Doubleword Integers with Zero Extension". -// -// Mnemonic : PMOVZXBD -// Supported forms : (2 forms) -// -// * PMOVZXBD xmm, xmm [SSE4.1] -// * PMOVZXBD m32, xmm [SSE4.1] -// -func (self *Program) PMOVZXBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVZXBD", 2, Operands { v0, v1 }) - // PMOVZXBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x31) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVZXBD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x31) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVZXBD") - } - return p -} - -// PMOVZXBQ performs "Move Packed Byte Integers to Quadword Integers with Zero Extension". -// -// Mnemonic : PMOVZXBQ -// Supported forms : (2 forms) -// -// * PMOVZXBQ xmm, xmm [SSE4.1] -// * PMOVZXBQ m16, xmm [SSE4.1] -// -func (self *Program) PMOVZXBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVZXBQ", 2, Operands { v0, v1 }) - // PMOVZXBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVZXBQ m16, xmm - if isM16(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVZXBQ") - } - return p -} - -// PMOVZXBW performs "Move Packed Byte Integers to Word Integers with Zero Extension". -// -// Mnemonic : PMOVZXBW -// Supported forms : (2 forms) -// -// * PMOVZXBW xmm, xmm [SSE4.1] -// * PMOVZXBW m64, xmm [SSE4.1] -// -func (self *Program) PMOVZXBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVZXBW", 2, Operands { v0, v1 }) - // PMOVZXBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x30) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVZXBW m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x30) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVZXBW") - } - return p -} - -// PMOVZXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Zero Extension". -// -// Mnemonic : PMOVZXDQ -// Supported forms : (2 forms) -// -// * PMOVZXDQ xmm, xmm [SSE4.1] -// * PMOVZXDQ m64, xmm [SSE4.1] -// -func (self *Program) PMOVZXDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVZXDQ", 2, Operands { v0, v1 }) - // PMOVZXDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x35) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVZXDQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x35) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVZXDQ") - } - return p -} - -// PMOVZXWD performs "Move Packed Word Integers to Doubleword Integers with Zero Extension". -// -// Mnemonic : PMOVZXWD -// Supported forms : (2 forms) -// -// * PMOVZXWD xmm, xmm [SSE4.1] -// * PMOVZXWD m64, xmm [SSE4.1] -// -func (self *Program) PMOVZXWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVZXWD", 2, Operands { v0, v1 }) - // PMOVZXWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVZXWD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVZXWD") - } - return p -} - -// PMOVZXWQ performs "Move Packed Word Integers to Quadword Integers with Zero Extension". -// -// Mnemonic : PMOVZXWQ -// Supported forms : (2 forms) -// -// * PMOVZXWQ xmm, xmm [SSE4.1] -// * PMOVZXWQ m32, xmm [SSE4.1] -// -func (self *Program) PMOVZXWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMOVZXWQ", 2, Operands { v0, v1 }) - // PMOVZXWQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x34) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMOVZXWQ m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x34) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMOVZXWQ") - } - return p -} - -// PMULDQ performs "Multiply Packed Signed Doubleword Integers and Store Quadword Result". -// -// Mnemonic : PMULDQ -// Supported forms : (2 forms) -// -// * PMULDQ xmm, xmm [SSE4.1] -// * PMULDQ m128, xmm [SSE4.1] -// -func (self *Program) PMULDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULDQ", 2, Operands { v0, v1 }) - // PMULDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULDQ") - } - return p -} - -// PMULHRSW performs "Packed Multiply Signed Word Integers and Store High Result with Round and Scale". -// -// Mnemonic : PMULHRSW -// Supported forms : (4 forms) -// -// * PMULHRSW mm, mm [SSSE3] -// * PMULHRSW m64, mm [SSSE3] -// * PMULHRSW xmm, xmm [SSSE3] -// * PMULHRSW m128, xmm [SSSE3] -// -func (self *Program) PMULHRSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULHRSW", 2, Operands { v0, v1 }) - // PMULHRSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULHRSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMULHRSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULHRSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULHRSW") - } - return p -} - -// PMULHRW performs "Packed Multiply High Rounded Word". -// -// Mnemonic : PMULHRW -// Supported forms : (2 forms) -// -// * PMULHRW mm, mm [3dnow!] -// * PMULHRW m64, mm [3dnow!] -// -func (self *Program) PMULHRW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULHRW", 2, Operands { v0, v1 }) - // PMULHRW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xb7) - }) - } - // PMULHRW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xb7) - }) - } - if p.len == 0 { - panic("invalid operands for PMULHRW") - } - return p -} - -// PMULHUW performs "Multiply Packed Unsigned Word Integers and Store High Result". -// -// Mnemonic : PMULHUW -// Supported forms : (4 forms) -// -// * PMULHUW mm, mm [MMX+] -// * PMULHUW m64, mm [MMX+] -// * PMULHUW xmm, xmm [SSE2] -// * PMULHUW m128, xmm [SSE2] -// -func (self *Program) PMULHUW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULHUW", 2, Operands { v0, v1 }) - // PMULHUW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULHUW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe4) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMULHUW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULHUW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe4) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULHUW") - } - return p -} - -// PMULHW performs "Multiply Packed Signed Word Integers and Store High Result". -// -// Mnemonic : PMULHW -// Supported forms : (4 forms) -// -// * PMULHW mm, mm [MMX] -// * PMULHW m64, mm [MMX] -// * PMULHW xmm, xmm [SSE2] -// * PMULHW m128, xmm [SSE2] -// -func (self *Program) PMULHW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULHW", 2, Operands { v0, v1 }) - // PMULHW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULHW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe5) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMULHW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULHW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe5) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULHW") - } - return p -} - -// PMULLD performs "Multiply Packed Signed Doubleword Integers and Store Low Result". -// -// Mnemonic : PMULLD -// Supported forms : (2 forms) -// -// * PMULLD xmm, xmm [SSE4.1] -// * PMULLD m128, xmm [SSE4.1] -// -func (self *Program) PMULLD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULLD", 2, Operands { v0, v1 }) - // PMULLD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x40) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULLD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x40) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULLD") - } - return p -} - -// PMULLW performs "Multiply Packed Signed Word Integers and Store Low Result". -// -// Mnemonic : PMULLW -// Supported forms : (4 forms) -// -// * PMULLW mm, mm [MMX] -// * PMULLW m64, mm [MMX] -// * PMULLW xmm, xmm [SSE2] -// * PMULLW m128, xmm [SSE2] -// -func (self *Program) PMULLW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULLW", 2, Operands { v0, v1 }) - // PMULLW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULLW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd5) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMULLW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULLW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd5) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULLW") - } - return p -} - -// PMULUDQ performs "Multiply Packed Unsigned Doubleword Integers". -// -// Mnemonic : PMULUDQ -// Supported forms : (4 forms) -// -// * PMULUDQ mm, mm [SSE2] -// * PMULUDQ m64, mm [SSE2] -// * PMULUDQ xmm, xmm [SSE2] -// * PMULUDQ m128, xmm [SSE2] -// -func (self *Program) PMULUDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PMULUDQ", 2, Operands { v0, v1 }) - // PMULUDQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULUDQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf4) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PMULUDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PMULUDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf4) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PMULUDQ") - } - return p -} - -// POPCNTL performs "Count of Number of Bits Set to 1". -// -// Mnemonic : POPCNT -// Supported forms : (2 forms) -// -// * POPCNTL r32, r32 [POPCNT] -// * POPCNTL m32, r32 [POPCNT] -// -func (self *Program) POPCNTL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("POPCNTL", 2, Operands { v0, v1 }) - // POPCNTL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_POPCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // POPCNTL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_POPCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xb8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for POPCNTL") - } - return p -} - -// POPCNTQ performs "Count of Number of Bits Set to 1". -// -// Mnemonic : POPCNT -// Supported forms : (2 forms) -// -// * POPCNTQ r64, r64 [POPCNT] -// * POPCNTQ m64, r64 [POPCNT] -// -func (self *Program) POPCNTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("POPCNTQ", 2, Operands { v0, v1 }) - // POPCNTQ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_POPCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // POPCNTQ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_POPCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xb8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for POPCNTQ") - } - return p -} - -// POPCNTW performs "Count of Number of Bits Set to 1". -// -// Mnemonic : POPCNT -// Supported forms : (2 forms) -// -// * POPCNTW r16, r16 [POPCNT] -// * POPCNTW m16, r16 [POPCNT] -// -func (self *Program) POPCNTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("POPCNTW", 2, Operands { v0, v1 }) - // POPCNTW r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_POPCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // POPCNTW m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_POPCNT) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xb8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for POPCNTW") - } - return p -} - -// POPQ performs "Pop a Value from the Stack". -// -// Mnemonic : POP -// Supported forms : (2 forms) -// -// * POPQ r64 -// * POPQ m64 -// -func (self *Program) POPQ(v0 interface{}) *Instruction { - p := self.alloc("POPQ", 1, Operands { v0 }) - // POPQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x58 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x8f) - m.emit(0xc0 | lcode(v[0])) - }) - } - // POPQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x8f) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for POPQ") - } - return p -} - -// POPW performs "Pop a Value from the Stack". -// -// Mnemonic : POP -// Supported forms : (2 forms) -// -// * POPW r16 -// * POPW m16 -// -func (self *Program) POPW(v0 interface{}) *Instruction { - p := self.alloc("POPW", 1, Operands { v0 }) - // POPW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0x58 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0x8f) - m.emit(0xc0 | lcode(v[0])) - }) - } - // POPW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0x8f) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for POPW") - } - return p -} - -// POR performs "Packed Bitwise Logical OR". -// -// Mnemonic : POR -// Supported forms : (4 forms) -// -// * POR mm, mm [MMX] -// * POR m64, mm [MMX] -// * POR xmm, xmm [SSE2] -// * POR m128, xmm [SSE2] -// -func (self *Program) POR(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("POR", 2, Operands { v0, v1 }) - // POR mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // POR m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xeb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // POR xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // POR m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xeb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for POR") - } - return p -} - -// PREFETCH performs "Prefetch Data into Caches". -// -// Mnemonic : PREFETCH -// Supported forms : (1 form) -// -// * PREFETCH m8 [PREFETCH] -// -func (self *Program) PREFETCH(v0 interface{}) *Instruction { - p := self.alloc("PREFETCH", 1, Operands { v0 }) - // PREFETCH m8 - if isM8(v0) { - self.require(ISA_PREFETCH) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0d) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCH") - } - return p -} - -// PREFETCHNTA performs "Prefetch Data Into Caches using NTA Hint". -// -// Mnemonic : PREFETCHNTA -// Supported forms : (1 form) -// -// * PREFETCHNTA m8 [MMX+] -// -func (self *Program) PREFETCHNTA(v0 interface{}) *Instruction { - p := self.alloc("PREFETCHNTA", 1, Operands { v0 }) - // PREFETCHNTA m8 - if isM8(v0) { - self.require(ISA_MMX_PLUS) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x18) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCHNTA") - } - return p -} - -// PREFETCHT0 performs "Prefetch Data Into Caches using T0 Hint". -// -// Mnemonic : PREFETCHT0 -// Supported forms : (1 form) -// -// * PREFETCHT0 m8 [MMX+] -// -func (self *Program) PREFETCHT0(v0 interface{}) *Instruction { - p := self.alloc("PREFETCHT0", 1, Operands { v0 }) - // PREFETCHT0 m8 - if isM8(v0) { - self.require(ISA_MMX_PLUS) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x18) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCHT0") - } - return p -} - -// PREFETCHT1 performs "Prefetch Data Into Caches using T1 Hint". -// -// Mnemonic : PREFETCHT1 -// Supported forms : (1 form) -// -// * PREFETCHT1 m8 [MMX+] -// -func (self *Program) PREFETCHT1(v0 interface{}) *Instruction { - p := self.alloc("PREFETCHT1", 1, Operands { v0 }) - // PREFETCHT1 m8 - if isM8(v0) { - self.require(ISA_MMX_PLUS) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x18) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCHT1") - } - return p -} - -// PREFETCHT2 performs "Prefetch Data Into Caches using T2 Hint". -// -// Mnemonic : PREFETCHT2 -// Supported forms : (1 form) -// -// * PREFETCHT2 m8 [MMX+] -// -func (self *Program) PREFETCHT2(v0 interface{}) *Instruction { - p := self.alloc("PREFETCHT2", 1, Operands { v0 }) - // PREFETCHT2 m8 - if isM8(v0) { - self.require(ISA_MMX_PLUS) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x18) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCHT2") - } - return p -} - -// PREFETCHW performs "Prefetch Data into Caches in Anticipation of a Write". -// -// Mnemonic : PREFETCHW -// Supported forms : (1 form) -// -// * PREFETCHW m8 [PREFETCHW] -// -func (self *Program) PREFETCHW(v0 interface{}) *Instruction { - p := self.alloc("PREFETCHW", 1, Operands { v0 }) - // PREFETCHW m8 - if isM8(v0) { - self.require(ISA_PREFETCHW) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0d) - m.mrsd(1, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCHW") - } - return p -} - -// PREFETCHWT1 performs "Prefetch Vector Data Into Caches with Intent to Write and T1 Hint". -// -// Mnemonic : PREFETCHWT1 -// Supported forms : (1 form) -// -// * PREFETCHWT1 m8 [PREFETCHWT1] -// -func (self *Program) PREFETCHWT1(v0 interface{}) *Instruction { - p := self.alloc("PREFETCHWT1", 1, Operands { v0 }) - // PREFETCHWT1 m8 - if isM8(v0) { - self.require(ISA_PREFETCHWT1) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0d) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PREFETCHWT1") - } - return p -} - -// PSADBW performs "Compute Sum of Absolute Differences". -// -// Mnemonic : PSADBW -// Supported forms : (4 forms) -// -// * PSADBW mm, mm [MMX+] -// * PSADBW m64, mm [MMX+] -// * PSADBW xmm, xmm [SSE2] -// * PSADBW m128, xmm [SSE2] -// -func (self *Program) PSADBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSADBW", 2, Operands { v0, v1 }) - // PSADBW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSADBW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSADBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSADBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSADBW") - } - return p -} - -// PSHUFB performs "Packed Shuffle Bytes". -// -// Mnemonic : PSHUFB -// Supported forms : (4 forms) -// -// * PSHUFB mm, mm [SSSE3] -// * PSHUFB m64, mm [SSSE3] -// * PSHUFB xmm, xmm [SSSE3] -// * PSHUFB m128, xmm [SSSE3] -// -func (self *Program) PSHUFB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSHUFB", 2, Operands { v0, v1 }) - // PSHUFB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x00) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSHUFB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x00) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSHUFB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x00) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSHUFB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x00) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSHUFB") - } - return p -} - -// PSHUFD performs "Shuffle Packed Doublewords". -// -// Mnemonic : PSHUFD -// Supported forms : (2 forms) -// -// * PSHUFD imm8, xmm, xmm [SSE2] -// * PSHUFD imm8, m128, xmm [SSE2] -// -func (self *Program) PSHUFD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PSHUFD", 3, Operands { v0, v1, v2 }) - // PSHUFD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSHUFD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PSHUFD") - } - return p -} - -// PSHUFHW performs "Shuffle Packed High Words". -// -// Mnemonic : PSHUFHW -// Supported forms : (2 forms) -// -// * PSHUFHW imm8, xmm, xmm [SSE2] -// * PSHUFHW imm8, m128, xmm [SSE2] -// -func (self *Program) PSHUFHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PSHUFHW", 3, Operands { v0, v1, v2 }) - // PSHUFHW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSHUFHW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PSHUFHW") - } - return p -} - -// PSHUFLW performs "Shuffle Packed Low Words". -// -// Mnemonic : PSHUFLW -// Supported forms : (2 forms) -// -// * PSHUFLW imm8, xmm, xmm [SSE2] -// * PSHUFLW imm8, m128, xmm [SSE2] -// -func (self *Program) PSHUFLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PSHUFLW", 3, Operands { v0, v1, v2 }) - // PSHUFLW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSHUFLW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PSHUFLW") - } - return p -} - -// PSHUFW performs "Shuffle Packed Words". -// -// Mnemonic : PSHUFW -// Supported forms : (2 forms) -// -// * PSHUFW imm8, mm, mm [MMX+] -// * PSHUFW imm8, m64, mm [MMX+] -// -func (self *Program) PSHUFW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("PSHUFW", 3, Operands { v0, v1, v2 }) - // PSHUFW imm8, mm, mm - if isImm8(v0) && isMM(v1) && isMM(v2) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSHUFW imm8, m64, mm - if isImm8(v0) && isM64(v1) && isMM(v2) { - self.require(ISA_MMX_PLUS) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PSHUFW") - } - return p -} - -// PSIGNB performs "Packed Sign of Byte Integers". -// -// Mnemonic : PSIGNB -// Supported forms : (4 forms) -// -// * PSIGNB mm, mm [SSSE3] -// * PSIGNB m64, mm [SSSE3] -// * PSIGNB xmm, xmm [SSSE3] -// * PSIGNB m128, xmm [SSSE3] -// -func (self *Program) PSIGNB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSIGNB", 2, Operands { v0, v1 }) - // PSIGNB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x08) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSIGNB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x08) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSIGNB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x08) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSIGNB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x08) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSIGNB") - } - return p -} - -// PSIGND performs "Packed Sign of Doubleword Integers". -// -// Mnemonic : PSIGND -// Supported forms : (4 forms) -// -// * PSIGND mm, mm [SSSE3] -// * PSIGND m64, mm [SSSE3] -// * PSIGND xmm, xmm [SSSE3] -// * PSIGND m128, xmm [SSSE3] -// -func (self *Program) PSIGND(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSIGND", 2, Operands { v0, v1 }) - // PSIGND mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSIGND m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSIGND xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSIGND m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x0a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSIGND") - } - return p -} - -// PSIGNW performs "Packed Sign of Word Integers". -// -// Mnemonic : PSIGNW -// Supported forms : (4 forms) -// -// * PSIGNW mm, mm [SSSE3] -// * PSIGNW m64, mm [SSSE3] -// * PSIGNW xmm, xmm [SSSE3] -// * PSIGNW m128, xmm [SSSE3] -// -func (self *Program) PSIGNW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSIGNW", 2, Operands { v0, v1 }) - // PSIGNW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x09) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSIGNW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x09) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSIGNW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x09) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSIGNW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSSE3) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x09) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSIGNW") - } - return p -} - -// PSLLD performs "Shift Packed Doubleword Data Left Logical". -// -// Mnemonic : PSLLD -// Supported forms : (6 forms) -// -// * PSLLD imm8, mm [MMX] -// * PSLLD mm, mm [MMX] -// * PSLLD m64, mm [MMX] -// * PSLLD imm8, xmm [SSE2] -// * PSLLD xmm, xmm [SSE2] -// * PSLLD m128, xmm [SSE2] -// -func (self *Program) PSLLD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSLLD", 2, Operands { v0, v1 }) - // PSLLD imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSLLD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSLLD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSLLD imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSLLD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSLLD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSLLD") - } - return p -} - -// PSLLDQ performs "Shift Packed Double Quadword Left Logical". -// -// Mnemonic : PSLLDQ -// Supported forms : (1 form) -// -// * PSLLDQ imm8, xmm [SSE2] -// -func (self *Program) PSLLDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSLLDQ", 2, Operands { v0, v1 }) - // PSLLDQ imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x73) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PSLLDQ") - } - return p -} - -// PSLLQ performs "Shift Packed Quadword Data Left Logical". -// -// Mnemonic : PSLLQ -// Supported forms : (6 forms) -// -// * PSLLQ imm8, mm [MMX] -// * PSLLQ mm, mm [MMX] -// * PSLLQ m64, mm [MMX] -// * PSLLQ imm8, xmm [SSE2] -// * PSLLQ xmm, xmm [SSE2] -// * PSLLQ m128, xmm [SSE2] -// -func (self *Program) PSLLQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSLLQ", 2, Operands { v0, v1 }) - // PSLLQ imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSLLQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSLLQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSLLQ imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSLLQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSLLQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSLLQ") - } - return p -} - -// PSLLW performs "Shift Packed Word Data Left Logical". -// -// Mnemonic : PSLLW -// Supported forms : (6 forms) -// -// * PSLLW imm8, mm [MMX] -// * PSLLW mm, mm [MMX] -// * PSLLW m64, mm [MMX] -// * PSLLW imm8, xmm [SSE2] -// * PSLLW xmm, xmm [SSE2] -// * PSLLW m128, xmm [SSE2] -// -func (self *Program) PSLLW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSLLW", 2, Operands { v0, v1 }) - // PSLLW imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSLLW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSLLW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSLLW imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSLLW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSLLW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSLLW") - } - return p -} - -// PSRAD performs "Shift Packed Doubleword Data Right Arithmetic". -// -// Mnemonic : PSRAD -// Supported forms : (6 forms) -// -// * PSRAD imm8, mm [MMX] -// * PSRAD mm, mm [MMX] -// * PSRAD m64, mm [MMX] -// * PSRAD imm8, xmm [SSE2] -// * PSRAD xmm, xmm [SSE2] -// * PSRAD m128, xmm [SSE2] -// -func (self *Program) PSRAD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSRAD", 2, Operands { v0, v1 }) - // PSRAD imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRAD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRAD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSRAD imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRAD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRAD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSRAD") - } - return p -} - -// PSRAW performs "Shift Packed Word Data Right Arithmetic". -// -// Mnemonic : PSRAW -// Supported forms : (6 forms) -// -// * PSRAW imm8, mm [MMX] -// * PSRAW mm, mm [MMX] -// * PSRAW m64, mm [MMX] -// * PSRAW imm8, xmm [SSE2] -// * PSRAW xmm, xmm [SSE2] -// * PSRAW m128, xmm [SSE2] -// -func (self *Program) PSRAW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSRAW", 2, Operands { v0, v1 }) - // PSRAW imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRAW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRAW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSRAW imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRAW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRAW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSRAW") - } - return p -} - -// PSRLD performs "Shift Packed Doubleword Data Right Logical". -// -// Mnemonic : PSRLD -// Supported forms : (6 forms) -// -// * PSRLD imm8, mm [MMX] -// * PSRLD mm, mm [MMX] -// * PSRLD m64, mm [MMX] -// * PSRLD imm8, xmm [SSE2] -// * PSRLD xmm, xmm [SSE2] -// * PSRLD m128, xmm [SSE2] -// -func (self *Program) PSRLD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSRLD", 2, Operands { v0, v1 }) - // PSRLD imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRLD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRLD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSRLD imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRLD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRLD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSRLD") - } - return p -} - -// PSRLDQ performs "Shift Packed Double Quadword Right Logical". -// -// Mnemonic : PSRLDQ -// Supported forms : (1 form) -// -// * PSRLDQ imm8, xmm [SSE2] -// -func (self *Program) PSRLDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSRLDQ", 2, Operands { v0, v1 }) - // PSRLDQ imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x73) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for PSRLDQ") - } - return p -} - -// PSRLQ performs "Shift Packed Quadword Data Right Logical". -// -// Mnemonic : PSRLQ -// Supported forms : (6 forms) -// -// * PSRLQ imm8, mm [MMX] -// * PSRLQ mm, mm [MMX] -// * PSRLQ m64, mm [MMX] -// * PSRLQ imm8, xmm [SSE2] -// * PSRLQ xmm, xmm [SSE2] -// * PSRLQ m128, xmm [SSE2] -// -func (self *Program) PSRLQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSRLQ", 2, Operands { v0, v1 }) - // PSRLQ imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRLQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRLQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSRLQ imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRLQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRLQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSRLQ") - } - return p -} - -// PSRLW performs "Shift Packed Word Data Right Logical". -// -// Mnemonic : PSRLW -// Supported forms : (6 forms) -// -// * PSRLW imm8, mm [MMX] -// * PSRLW mm, mm [MMX] -// * PSRLW m64, mm [MMX] -// * PSRLW imm8, xmm [SSE2] -// * PSRLW xmm, xmm [SSE2] -// * PSRLW m128, xmm [SSE2] -// -func (self *Program) PSRLW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSRLW", 2, Operands { v0, v1 }) - // PSRLW imm8, mm - if isImm8(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRLW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRLW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSRLW imm8, xmm - if isImm8(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x0f) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // PSRLW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSRLW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSRLW") - } - return p -} - -// PSUBB performs "Subtract Packed Byte Integers". -// -// Mnemonic : PSUBB -// Supported forms : (4 forms) -// -// * PSUBB mm, mm [MMX] -// * PSUBB m64, mm [MMX] -// * PSUBB xmm, xmm [SSE2] -// * PSUBB m128, xmm [SSE2] -// -func (self *Program) PSUBB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBB", 2, Operands { v0, v1 }) - // PSUBB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBB") - } - return p -} - -// PSUBD performs "Subtract Packed Doubleword Integers". -// -// Mnemonic : PSUBD -// Supported forms : (4 forms) -// -// * PSUBD mm, mm [MMX] -// * PSUBD m64, mm [MMX] -// * PSUBD xmm, xmm [SSE2] -// * PSUBD m128, xmm [SSE2] -// -func (self *Program) PSUBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBD", 2, Operands { v0, v1 }) - // PSUBD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfa) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfa) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBD") - } - return p -} - -// PSUBQ performs "Subtract Packed Quadword Integers". -// -// Mnemonic : PSUBQ -// Supported forms : (4 forms) -// -// * PSUBQ mm, mm [SSE2] -// * PSUBQ m64, mm [SSE2] -// * PSUBQ xmm, xmm [SSE2] -// * PSUBQ m128, xmm [SSE2] -// -func (self *Program) PSUBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBQ", 2, Operands { v0, v1 }) - // PSUBQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xfb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBQ") - } - return p -} - -// PSUBSB performs "Subtract Packed Signed Byte Integers with Signed Saturation". -// -// Mnemonic : PSUBSB -// Supported forms : (4 forms) -// -// * PSUBSB mm, mm [MMX] -// * PSUBSB m64, mm [MMX] -// * PSUBSB xmm, xmm [SSE2] -// * PSUBSB m128, xmm [SSE2] -// -func (self *Program) PSUBSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBSB", 2, Operands { v0, v1 }) - // PSUBSB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBSB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBSB") - } - return p -} - -// PSUBSW performs "Subtract Packed Signed Word Integers with Signed Saturation". -// -// Mnemonic : PSUBSW -// Supported forms : (4 forms) -// -// * PSUBSW mm, mm [MMX] -// * PSUBSW m64, mm [MMX] -// * PSUBSW xmm, xmm [SSE2] -// * PSUBSW m128, xmm [SSE2] -// -func (self *Program) PSUBSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBSW", 2, Operands { v0, v1 }) - // PSUBSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xe9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBSW") - } - return p -} - -// PSUBUSB performs "Subtract Packed Unsigned Byte Integers with Unsigned Saturation". -// -// Mnemonic : PSUBUSB -// Supported forms : (4 forms) -// -// * PSUBUSB mm, mm [MMX] -// * PSUBUSB m64, mm [MMX] -// * PSUBUSB xmm, xmm [SSE2] -// * PSUBUSB m128, xmm [SSE2] -// -func (self *Program) PSUBUSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBUSB", 2, Operands { v0, v1 }) - // PSUBUSB mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBUSB m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBUSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBUSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBUSB") - } - return p -} - -// PSUBUSW performs "Subtract Packed Unsigned Word Integers with Unsigned Saturation". -// -// Mnemonic : PSUBUSW -// Supported forms : (4 forms) -// -// * PSUBUSW mm, mm [MMX] -// * PSUBUSW m64, mm [MMX] -// * PSUBUSW xmm, xmm [SSE2] -// * PSUBUSW m128, xmm [SSE2] -// -func (self *Program) PSUBUSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBUSW", 2, Operands { v0, v1 }) - // PSUBUSW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBUSW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBUSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBUSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xd9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBUSW") - } - return p -} - -// PSUBW performs "Subtract Packed Word Integers". -// -// Mnemonic : PSUBW -// Supported forms : (4 forms) -// -// * PSUBW mm, mm [MMX] -// * PSUBW m64, mm [MMX] -// * PSUBW xmm, xmm [SSE2] -// * PSUBW m128, xmm [SSE2] -// -func (self *Program) PSUBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSUBW", 2, Operands { v0, v1 }) - // PSUBW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PSUBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PSUBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xf9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PSUBW") - } - return p -} - -// PSWAPD performs "Packed Swap Doubleword". -// -// Mnemonic : PSWAPD -// Supported forms : (2 forms) -// -// * PSWAPD mm, mm [3dnow!+] -// * PSWAPD m64, mm [3dnow!+] -// -func (self *Program) PSWAPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PSWAPD", 2, Operands { v0, v1 }) - // PSWAPD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - m.emit(0xbb) - }) - } - // PSWAPD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_3DNOW_PLUS) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - m.emit(0xbb) - }) - } - if p.len == 0 { - panic("invalid operands for PSWAPD") - } - return p -} - -// PTEST performs "Packed Logical Compare". -// -// Mnemonic : PTEST -// Supported forms : (2 forms) -// -// * PTEST xmm, xmm [SSE4.1] -// * PTEST m128, xmm [SSE4.1] -// -func (self *Program) PTEST(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PTEST", 2, Operands { v0, v1 }) - // PTEST xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x17) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PTEST m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0x17) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PTEST") - } - return p -} - -// PUNPCKHBW performs "Unpack and Interleave High-Order Bytes into Words". -// -// Mnemonic : PUNPCKHBW -// Supported forms : (4 forms) -// -// * PUNPCKHBW mm, mm [MMX] -// * PUNPCKHBW m64, mm [MMX] -// * PUNPCKHBW xmm, xmm [SSE2] -// * PUNPCKHBW m128, xmm [SSE2] -// -func (self *Program) PUNPCKHBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKHBW", 2, Operands { v0, v1 }) - // PUNPCKHBW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x68) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHBW m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x68) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PUNPCKHBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x68) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x68) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKHBW") - } - return p -} - -// PUNPCKHDQ performs "Unpack and Interleave High-Order Doublewords into Quadwords". -// -// Mnemonic : PUNPCKHDQ -// Supported forms : (4 forms) -// -// * PUNPCKHDQ mm, mm [MMX] -// * PUNPCKHDQ m64, mm [MMX] -// * PUNPCKHDQ xmm, xmm [SSE2] -// * PUNPCKHDQ m128, xmm [SSE2] -// -func (self *Program) PUNPCKHDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKHDQ", 2, Operands { v0, v1 }) - // PUNPCKHDQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHDQ m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PUNPCKHDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKHDQ") - } - return p -} - -// PUNPCKHQDQ performs "Unpack and Interleave High-Order Quadwords into Double Quadwords". -// -// Mnemonic : PUNPCKHQDQ -// Supported forms : (2 forms) -// -// * PUNPCKHQDQ xmm, xmm [SSE2] -// * PUNPCKHQDQ m128, xmm [SSE2] -// -func (self *Program) PUNPCKHQDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKHQDQ", 2, Operands { v0, v1 }) - // PUNPCKHQDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHQDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKHQDQ") - } - return p -} - -// PUNPCKHWD performs "Unpack and Interleave High-Order Words into Doublewords". -// -// Mnemonic : PUNPCKHWD -// Supported forms : (4 forms) -// -// * PUNPCKHWD mm, mm [MMX] -// * PUNPCKHWD m64, mm [MMX] -// * PUNPCKHWD xmm, xmm [SSE2] -// * PUNPCKHWD m128, xmm [SSE2] -// -func (self *Program) PUNPCKHWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKHWD", 2, Operands { v0, v1 }) - // PUNPCKHWD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x69) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHWD m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x69) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PUNPCKHWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x69) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKHWD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x69) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKHWD") - } - return p -} - -// PUNPCKLBW performs "Unpack and Interleave Low-Order Bytes into Words". -// -// Mnemonic : PUNPCKLBW -// Supported forms : (4 forms) -// -// * PUNPCKLBW mm, mm [MMX] -// * PUNPCKLBW m32, mm [MMX] -// * PUNPCKLBW xmm, xmm [SSE2] -// * PUNPCKLBW m128, xmm [SSE2] -// -func (self *Program) PUNPCKLBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKLBW", 2, Operands { v0, v1 }) - // PUNPCKLBW mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x60) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLBW m32, mm - if isM32(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x60) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PUNPCKLBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x60) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x60) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKLBW") - } - return p -} - -// PUNPCKLDQ performs "Unpack and Interleave Low-Order Doublewords into Quadwords". -// -// Mnemonic : PUNPCKLDQ -// Supported forms : (4 forms) -// -// * PUNPCKLDQ mm, mm [MMX] -// * PUNPCKLDQ m32, mm [MMX] -// * PUNPCKLDQ xmm, xmm [SSE2] -// * PUNPCKLDQ m128, xmm [SSE2] -// -func (self *Program) PUNPCKLDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKLDQ", 2, Operands { v0, v1 }) - // PUNPCKLDQ mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x62) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLDQ m32, mm - if isM32(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x62) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PUNPCKLDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x62) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x62) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKLDQ") - } - return p -} - -// PUNPCKLQDQ performs "Unpack and Interleave Low-Order Quadwords into Double Quadwords". -// -// Mnemonic : PUNPCKLQDQ -// Supported forms : (2 forms) -// -// * PUNPCKLQDQ xmm, xmm [SSE2] -// * PUNPCKLQDQ m128, xmm [SSE2] -// -func (self *Program) PUNPCKLQDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKLQDQ", 2, Operands { v0, v1 }) - // PUNPCKLQDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLQDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x6c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKLQDQ") - } - return p -} - -// PUNPCKLWD performs "Unpack and Interleave Low-Order Words into Doublewords". -// -// Mnemonic : PUNPCKLWD -// Supported forms : (4 forms) -// -// * PUNPCKLWD mm, mm [MMX] -// * PUNPCKLWD m32, mm [MMX] -// * PUNPCKLWD xmm, xmm [SSE2] -// * PUNPCKLWD m128, xmm [SSE2] -// -func (self *Program) PUNPCKLWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PUNPCKLWD", 2, Operands { v0, v1 }) - // PUNPCKLWD mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x61) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLWD m32, mm - if isM32(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x61) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PUNPCKLWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x61) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PUNPCKLWD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x61) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUNPCKLWD") - } - return p -} - -// PUSHQ performs "Push Value Onto the Stack". -// -// Mnemonic : PUSH -// Supported forms : (4 forms) -// -// * PUSHQ imm8 -// * PUSHQ imm32 -// * PUSHQ r64 -// * PUSHQ m64 -// -func (self *Program) PUSHQ(v0 interface{}) *Instruction { - p := self.alloc("PUSHQ", 1, Operands { v0 }) - // PUSHQ imm8 - if isImm8Ext(v0, 8) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x6a) - m.imm1(toImmAny(v[0])) - }) - } - // PUSHQ imm32 - if isImm32Ext(v0, 8) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x68) - m.imm4(toImmAny(v[0])) - }) - } - // PUSHQ r64 - if isReg64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x50 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xf0 | lcode(v[0])) - }) - } - // PUSHQ m64 - if isM64(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUSHQ") - } - return p -} - -// PUSHW performs "Push Value Onto the Stack". -// -// Mnemonic : PUSH -// Supported forms : (2 forms) -// -// * PUSHW r16 -// * PUSHW m16 -// -func (self *Program) PUSHW(v0 interface{}) *Instruction { - p := self.alloc("PUSHW", 1, Operands { v0 }) - // PUSHW r16 - if isReg16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0x50 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0xff) - m.emit(0xf0 | lcode(v[0])) - }) - } - // PUSHW m16 - if isM16(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[0]), false) - m.emit(0xff) - m.mrsd(6, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PUSHW") - } - return p -} - -// PXOR performs "Packed Bitwise Logical Exclusive OR". -// -// Mnemonic : PXOR -// Supported forms : (4 forms) -// -// * PXOR mm, mm [MMX] -// * PXOR m64, mm [MMX] -// * PXOR xmm, xmm [SSE2] -// * PXOR m128, xmm [SSE2] -// -func (self *Program) PXOR(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("PXOR", 2, Operands { v0, v1 }) - // PXOR mm, mm - if isMM(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xef) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PXOR m64, mm - if isM64(v0) && isMM(v1) { - self.require(ISA_MMX) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xef) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // PXOR xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xef) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // PXOR m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xef) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for PXOR") - } - return p -} - -// RCLB performs "Rotate Left through Carry Flag". -// -// Mnemonic : RCL -// Supported forms : (6 forms) -// -// * RCLB 1, r8 -// * RCLB imm8, r8 -// * RCLB cl, r8 -// * RCLB 1, m8 -// * RCLB imm8, m8 -// * RCLB cl, m8 -// -func (self *Program) RCLB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCLB", 2, Operands { v0, v1 }) - // RCLB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCLB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(2, addr(v[1]), 1) - }) - } - // RCLB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCLB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(2, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCLB") - } - return p -} - -// RCLL performs "Rotate Left through Carry Flag". -// -// Mnemonic : RCL -// Supported forms : (6 forms) -// -// * RCLL 1, r32 -// * RCLL imm8, r32 -// * RCLL cl, r32 -// * RCLL 1, m32 -// * RCLL imm8, m32 -// * RCLL cl, m32 -// -func (self *Program) RCLL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCLL", 2, Operands { v0, v1 }) - // RCLL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCLL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(2, addr(v[1]), 1) - }) - } - // RCLL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCLL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(2, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCLL") - } - return p -} - -// RCLQ performs "Rotate Left through Carry Flag". -// -// Mnemonic : RCL -// Supported forms : (6 forms) -// -// * RCLQ 1, r64 -// * RCLQ imm8, r64 -// * RCLQ cl, r64 -// * RCLQ 1, m64 -// * RCLQ imm8, m64 -// * RCLQ cl, m64 -// -func (self *Program) RCLQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCLQ", 2, Operands { v0, v1 }) - // RCLQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCLQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(2, addr(v[1]), 1) - }) - } - // RCLQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCLQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(2, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCLQ") - } - return p -} - -// RCLW performs "Rotate Left through Carry Flag". -// -// Mnemonic : RCL -// Supported forms : (6 forms) -// -// * RCLW 1, r16 -// * RCLW imm8, r16 -// * RCLW cl, r16 -// * RCLW 1, m16 -// * RCLW imm8, m16 -// * RCLW cl, m16 -// -func (self *Program) RCLW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCLW", 2, Operands { v0, v1 }) - // RCLW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCLW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xd0 | lcode(v[1])) - }) - } - // RCLW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(2, addr(v[1]), 1) - }) - } - // RCLW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(2, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCLW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(2, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCLW") - } - return p -} - -// RCPPS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : RCPPS -// Supported forms : (2 forms) -// -// * RCPPS xmm, xmm [SSE] -// * RCPPS m128, xmm [SSE] -// -func (self *Program) RCPPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCPPS", 2, Operands { v0, v1 }) - // RCPPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x53) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // RCPPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x53) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCPPS") - } - return p -} - -// RCPSS performs "Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : RCPSS -// Supported forms : (2 forms) -// -// * RCPSS xmm, xmm [SSE] -// * RCPSS m32, xmm [SSE] -// -func (self *Program) RCPSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCPSS", 2, Operands { v0, v1 }) - // RCPSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x53) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // RCPSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x53) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCPSS") - } - return p -} - -// RCRB performs "Rotate Right through Carry Flag". -// -// Mnemonic : RCR -// Supported forms : (6 forms) -// -// * RCRB 1, r8 -// * RCRB imm8, r8 -// * RCRB cl, r8 -// * RCRB 1, m8 -// * RCRB imm8, m8 -// * RCRB cl, m8 -// -func (self *Program) RCRB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCRB", 2, Operands { v0, v1 }) - // RCRB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCRB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(3, addr(v[1]), 1) - }) - } - // RCRB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCRB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(3, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCRB") - } - return p -} - -// RCRL performs "Rotate Right through Carry Flag". -// -// Mnemonic : RCR -// Supported forms : (6 forms) -// -// * RCRL 1, r32 -// * RCRL imm8, r32 -// * RCRL cl, r32 -// * RCRL 1, m32 -// * RCRL imm8, m32 -// * RCRL cl, m32 -// -func (self *Program) RCRL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCRL", 2, Operands { v0, v1 }) - // RCRL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCRL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(3, addr(v[1]), 1) - }) - } - // RCRL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCRL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(3, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCRL") - } - return p -} - -// RCRQ performs "Rotate Right through Carry Flag". -// -// Mnemonic : RCR -// Supported forms : (6 forms) -// -// * RCRQ 1, r64 -// * RCRQ imm8, r64 -// * RCRQ cl, r64 -// * RCRQ 1, m64 -// * RCRQ imm8, m64 -// * RCRQ cl, m64 -// -func (self *Program) RCRQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCRQ", 2, Operands { v0, v1 }) - // RCRQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCRQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(3, addr(v[1]), 1) - }) - } - // RCRQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCRQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(3, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCRQ") - } - return p -} - -// RCRW performs "Rotate Right through Carry Flag". -// -// Mnemonic : RCR -// Supported forms : (6 forms) -// -// * RCRW 1, r16 -// * RCRW imm8, r16 -// * RCRW cl, r16 -// * RCRW 1, m16 -// * RCRW imm8, m16 -// * RCRW cl, m16 -// -func (self *Program) RCRW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RCRW", 2, Operands { v0, v1 }) - // RCRW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RCRW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xd8 | lcode(v[1])) - }) - } - // RCRW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(3, addr(v[1]), 1) - }) - } - // RCRW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RCRW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(3, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RCRW") - } - return p -} - -// RDRAND performs "Read Random Number". -// -// Mnemonic : RDRAND -// Supported forms : (3 forms) -// -// * RDRAND r16 [RDRAND] -// * RDRAND r32 [RDRAND] -// * RDRAND r64 [RDRAND] -// -func (self *Program) RDRAND(v0 interface{}) *Instruction { - p := self.alloc("RDRAND", 1, Operands { v0 }) - // RDRAND r16 - if isReg16(v0) { - self.require(ISA_RDRAND) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0x0f) - m.emit(0xc7) - m.emit(0xf0 | lcode(v[0])) - }) - } - // RDRAND r32 - if isReg32(v0) { - self.require(ISA_RDRAND) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x0f) - m.emit(0xc7) - m.emit(0xf0 | lcode(v[0])) - }) - } - // RDRAND r64 - if isReg64(v0) { - self.require(ISA_RDRAND) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xc7) - m.emit(0xf0 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for RDRAND") - } - return p -} - -// RDSEED performs "Read Random SEED". -// -// Mnemonic : RDSEED -// Supported forms : (3 forms) -// -// * RDSEED r16 [RDSEED] -// * RDSEED r32 [RDSEED] -// * RDSEED r64 [RDSEED] -// -func (self *Program) RDSEED(v0 interface{}) *Instruction { - p := self.alloc("RDSEED", 1, Operands { v0 }) - // RDSEED r16 - if isReg16(v0) { - self.require(ISA_RDSEED) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0x0f) - m.emit(0xc7) - m.emit(0xf8 | lcode(v[0])) - }) - } - // RDSEED r32 - if isReg32(v0) { - self.require(ISA_RDSEED) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x0f) - m.emit(0xc7) - m.emit(0xf8 | lcode(v[0])) - }) - } - // RDSEED r64 - if isReg64(v0) { - self.require(ISA_RDSEED) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xc7) - m.emit(0xf8 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for RDSEED") - } - return p -} - -// RDTSC performs "Read Time-Stamp Counter". -// -// Mnemonic : RDTSC -// Supported forms : (1 form) -// -// * RDTSC [RDTSC] -// -func (self *Program) RDTSC() *Instruction { - p := self.alloc("RDTSC", 0, Operands { }) - // RDTSC - self.require(ISA_RDTSC) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x31) - }) - return p -} - -// RDTSCP performs "Read Time-Stamp Counter and Processor ID". -// -// Mnemonic : RDTSCP -// Supported forms : (1 form) -// -// * RDTSCP [RDTSCP] -// -func (self *Program) RDTSCP() *Instruction { - p := self.alloc("RDTSCP", 0, Operands { }) - // RDTSCP - self.require(ISA_RDTSCP) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xf9) - }) - return p -} - -// RET performs "Return from Procedure". -// -// Mnemonic : RET -// Supported forms : (2 forms) -// -// * RET -// * RET imm16 -// -func (self *Program) RET(vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("RET", 0, Operands { }) - case 1 : p = self.alloc("RET", 1, Operands { vv[0] }) - default : panic("instruction RET takes 0 or 1 operands") - } - // RET - if len(vv) == 0 { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc3) - }) - } - // RET imm16 - if len(vv) == 1 && isImm16(vv[0]) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc2) - m.imm2(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for RET") - } - return p -} - -// ROLB performs "Rotate Left". -// -// Mnemonic : ROL -// Supported forms : (6 forms) -// -// * ROLB 1, r8 -// * ROLB imm8, r8 -// * ROLB cl, r8 -// * ROLB 1, m8 -// * ROLB imm8, m8 -// * ROLB cl, m8 -// -func (self *Program) ROLB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ROLB", 2, Operands { v0, v1 }) - // ROLB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROLB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(0, addr(v[1]), 1) - }) - } - // ROLB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ROLB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(0, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ROLB") - } - return p -} - -// ROLL performs "Rotate Left". -// -// Mnemonic : ROL -// Supported forms : (6 forms) -// -// * ROLL 1, r32 -// * ROLL imm8, r32 -// * ROLL cl, r32 -// * ROLL 1, m32 -// * ROLL imm8, m32 -// * ROLL cl, m32 -// -func (self *Program) ROLL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ROLL", 2, Operands { v0, v1 }) - // ROLL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROLL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(0, addr(v[1]), 1) - }) - } - // ROLL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ROLL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(0, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ROLL") - } - return p -} - -// ROLQ performs "Rotate Left". -// -// Mnemonic : ROL -// Supported forms : (6 forms) -// -// * ROLQ 1, r64 -// * ROLQ imm8, r64 -// * ROLQ cl, r64 -// * ROLQ 1, m64 -// * ROLQ imm8, m64 -// * ROLQ cl, m64 -// -func (self *Program) ROLQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ROLQ", 2, Operands { v0, v1 }) - // ROLQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROLQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(0, addr(v[1]), 1) - }) - } - // ROLQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ROLQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(0, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ROLQ") - } - return p -} - -// ROLW performs "Rotate Left". -// -// Mnemonic : ROL -// Supported forms : (6 forms) -// -// * ROLW 1, r16 -// * ROLW imm8, r16 -// * ROLW cl, r16 -// * ROLW 1, m16 -// * ROLW imm8, m16 -// * ROLW cl, m16 -// -func (self *Program) ROLW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("ROLW", 2, Operands { v0, v1 }) - // ROLW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROLW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[1])) - }) - } - // ROLW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(0, addr(v[1]), 1) - }) - } - // ROLW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // ROLW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(0, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for ROLW") - } - return p -} - -// RORB performs "Rotate Right". -// -// Mnemonic : ROR -// Supported forms : (6 forms) -// -// * RORB 1, r8 -// * RORB imm8, r8 -// * RORB cl, r8 -// * RORB 1, m8 -// * RORB imm8, m8 -// * RORB cl, m8 -// -func (self *Program) RORB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RORB", 2, Operands { v0, v1 }) - // RORB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RORB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(1, addr(v[1]), 1) - }) - } - // RORB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RORB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(1, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RORB") - } - return p -} - -// RORL performs "Rotate Right". -// -// Mnemonic : ROR -// Supported forms : (6 forms) -// -// * RORL 1, r32 -// * RORL imm8, r32 -// * RORL cl, r32 -// * RORL 1, m32 -// * RORL imm8, m32 -// * RORL cl, m32 -// -func (self *Program) RORL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RORL", 2, Operands { v0, v1 }) - // RORL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RORL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(1, addr(v[1]), 1) - }) - } - // RORL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RORL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(1, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RORL") - } - return p -} - -// RORQ performs "Rotate Right". -// -// Mnemonic : ROR -// Supported forms : (6 forms) -// -// * RORQ 1, r64 -// * RORQ imm8, r64 -// * RORQ cl, r64 -// * RORQ 1, m64 -// * RORQ imm8, m64 -// * RORQ cl, m64 -// -func (self *Program) RORQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RORQ", 2, Operands { v0, v1 }) - // RORQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RORQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(1, addr(v[1]), 1) - }) - } - // RORQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RORQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(1, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RORQ") - } - return p -} - -// RORW performs "Rotate Right". -// -// Mnemonic : ROR -// Supported forms : (6 forms) -// -// * RORW 1, r16 -// * RORW imm8, r16 -// * RORW cl, r16 -// * RORW 1, m16 -// * RORW imm8, m16 -// * RORW cl, m16 -// -func (self *Program) RORW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RORW", 2, Operands { v0, v1 }) - // RORW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RORW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xc8 | lcode(v[1])) - }) - } - // RORW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(1, addr(v[1]), 1) - }) - } - // RORW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(1, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // RORW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(1, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RORW") - } - return p -} - -// RORXL performs "Rotate Right Logical Without Affecting Flags". -// -// Mnemonic : RORX -// Supported forms : (2 forms) -// -// * RORXL imm8, r32, r32 [BMI2] -// * RORXL imm8, m32, r32 [BMI2] -// -func (self *Program) RORXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("RORXL", 3, Operands { v0, v1, v2 }) - // RORXL imm8, r32, r32 - if isImm8(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7b) - m.emit(0xf0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RORXL imm8, m32, r32 - if isImm8(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x03, hcode(v[2]), addr(v[1]), 0) - m.emit(0xf0) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for RORXL") - } - return p -} - -// RORXQ performs "Rotate Right Logical Without Affecting Flags". -// -// Mnemonic : RORX -// Supported forms : (2 forms) -// -// * RORXQ imm8, r64, r64 [BMI2] -// * RORXQ imm8, m64, r64 [BMI2] -// -func (self *Program) RORXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("RORXQ", 3, Operands { v0, v1, v2 }) - // RORXQ imm8, r64, r64 - if isImm8(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfb) - m.emit(0xf0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // RORXQ imm8, m64, r64 - if isImm8(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x83, hcode(v[2]), addr(v[1]), 0) - m.emit(0xf0) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for RORXQ") - } - return p -} - -// ROUNDPD performs "Round Packed Double Precision Floating-Point Values". -// -// Mnemonic : ROUNDPD -// Supported forms : (2 forms) -// -// * ROUNDPD imm8, xmm, xmm [SSE4.1] -// * ROUNDPD imm8, m128, xmm [SSE4.1] -// -func (self *Program) ROUNDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("ROUNDPD", 3, Operands { v0, v1, v2 }) - // ROUNDPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROUNDPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for ROUNDPD") - } - return p -} - -// ROUNDPS performs "Round Packed Single Precision Floating-Point Values". -// -// Mnemonic : ROUNDPS -// Supported forms : (2 forms) -// -// * ROUNDPS imm8, xmm, xmm [SSE4.1] -// * ROUNDPS imm8, m128, xmm [SSE4.1] -// -func (self *Program) ROUNDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("ROUNDPS", 3, Operands { v0, v1, v2 }) - // ROUNDPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROUNDPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for ROUNDPS") - } - return p -} - -// ROUNDSD performs "Round Scalar Double Precision Floating-Point Values". -// -// Mnemonic : ROUNDSD -// Supported forms : (2 forms) -// -// * ROUNDSD imm8, xmm, xmm [SSE4.1] -// * ROUNDSD imm8, m64, xmm [SSE4.1] -// -func (self *Program) ROUNDSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("ROUNDSD", 3, Operands { v0, v1, v2 }) - // ROUNDSD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROUNDSD imm8, m64, xmm - if isImm8(v0) && isM64(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0b) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for ROUNDSD") - } - return p -} - -// ROUNDSS performs "Round Scalar Single Precision Floating-Point Values". -// -// Mnemonic : ROUNDSS -// Supported forms : (2 forms) -// -// * ROUNDSS imm8, xmm, xmm [SSE4.1] -// * ROUNDSS imm8, m32, xmm [SSE4.1] -// -func (self *Program) ROUNDSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("ROUNDSS", 3, Operands { v0, v1, v2 }) - // ROUNDSS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // ROUNDSS imm8, m32, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) { - self.require(ISA_SSE4_1) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0x0a) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for ROUNDSS") - } - return p -} - -// RSQRTPS performs "Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : RSQRTPS -// Supported forms : (2 forms) -// -// * RSQRTPS xmm, xmm [SSE] -// * RSQRTPS m128, xmm [SSE] -// -func (self *Program) RSQRTPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RSQRTPS", 2, Operands { v0, v1 }) - // RSQRTPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x52) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // RSQRTPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x52) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RSQRTPS") - } - return p -} - -// RSQRTSS performs "Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : RSQRTSS -// Supported forms : (2 forms) -// -// * RSQRTSS xmm, xmm [SSE] -// * RSQRTSS m32, xmm [SSE] -// -func (self *Program) RSQRTSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("RSQRTSS", 2, Operands { v0, v1 }) - // RSQRTSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x52) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // RSQRTSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x52) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for RSQRTSS") - } - return p -} - -// SALB performs "Arithmetic Shift Left". -// -// Mnemonic : SAL -// Supported forms : (6 forms) -// -// * SALB 1, r8 -// * SALB imm8, r8 -// * SALB cl, r8 -// * SALB 1, m8 -// * SALB imm8, m8 -// * SALB cl, m8 -// -func (self *Program) SALB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SALB", 2, Operands { v0, v1 }) - // SALB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SALB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SALB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SALB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SALB") - } - return p -} - -// SALL performs "Arithmetic Shift Left". -// -// Mnemonic : SAL -// Supported forms : (6 forms) -// -// * SALL 1, r32 -// * SALL imm8, r32 -// * SALL cl, r32 -// * SALL 1, m32 -// * SALL imm8, m32 -// * SALL cl, m32 -// -func (self *Program) SALL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SALL", 2, Operands { v0, v1 }) - // SALL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SALL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SALL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SALL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SALL") - } - return p -} - -// SALQ performs "Arithmetic Shift Left". -// -// Mnemonic : SAL -// Supported forms : (6 forms) -// -// * SALQ 1, r64 -// * SALQ imm8, r64 -// * SALQ cl, r64 -// * SALQ 1, m64 -// * SALQ imm8, m64 -// * SALQ cl, m64 -// -func (self *Program) SALQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SALQ", 2, Operands { v0, v1 }) - // SALQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SALQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SALQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SALQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SALQ") - } - return p -} - -// SALW performs "Arithmetic Shift Left". -// -// Mnemonic : SAL -// Supported forms : (6 forms) -// -// * SALW 1, r16 -// * SALW imm8, r16 -// * SALW cl, r16 -// * SALW 1, m16 -// * SALW imm8, m16 -// * SALW cl, m16 -// -func (self *Program) SALW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SALW", 2, Operands { v0, v1 }) - // SALW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SALW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SALW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SALW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SALW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SALW") - } - return p -} - -// SARB performs "Arithmetic Shift Right". -// -// Mnemonic : SAR -// Supported forms : (6 forms) -// -// * SARB 1, r8 -// * SARB imm8, r8 -// * SARB cl, r8 -// * SARB 1, m8 -// * SARB imm8, m8 -// * SARB cl, m8 -// -func (self *Program) SARB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SARB", 2, Operands { v0, v1 }) - // SARB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SARB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(7, addr(v[1]), 1) - }) - } - // SARB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SARB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(7, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SARB") - } - return p -} - -// SARL performs "Arithmetic Shift Right". -// -// Mnemonic : SAR -// Supported forms : (6 forms) -// -// * SARL 1, r32 -// * SARL imm8, r32 -// * SARL cl, r32 -// * SARL 1, m32 -// * SARL imm8, m32 -// * SARL cl, m32 -// -func (self *Program) SARL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SARL", 2, Operands { v0, v1 }) - // SARL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SARL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(7, addr(v[1]), 1) - }) - } - // SARL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SARL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(7, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SARL") - } - return p -} - -// SARQ performs "Arithmetic Shift Right". -// -// Mnemonic : SAR -// Supported forms : (6 forms) -// -// * SARQ 1, r64 -// * SARQ imm8, r64 -// * SARQ cl, r64 -// * SARQ 1, m64 -// * SARQ imm8, m64 -// * SARQ cl, m64 -// -func (self *Program) SARQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SARQ", 2, Operands { v0, v1 }) - // SARQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SARQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(7, addr(v[1]), 1) - }) - } - // SARQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SARQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(7, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SARQ") - } - return p -} - -// SARW performs "Arithmetic Shift Right". -// -// Mnemonic : SAR -// Supported forms : (6 forms) -// -// * SARW 1, r16 -// * SARW imm8, r16 -// * SARW cl, r16 -// * SARW 1, m16 -// * SARW imm8, m16 -// * SARW cl, m16 -// -func (self *Program) SARW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SARW", 2, Operands { v0, v1 }) - // SARW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SARW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xf8 | lcode(v[1])) - }) - } - // SARW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(7, addr(v[1]), 1) - }) - } - // SARW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(7, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SARW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(7, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SARW") - } - return p -} - -// SARXL performs "Arithmetic Shift Right Without Affecting Flags". -// -// Mnemonic : SARX -// Supported forms : (2 forms) -// -// * SARXL r32, r32, r32 [BMI2] -// * SARXL r32, m32, r32 [BMI2] -// -func (self *Program) SARXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SARXL", 3, Operands { v0, v1, v2 }) - // SARXL r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7a ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SARXL r32, m32, r32 - if isReg32(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x02, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SARXL") - } - return p -} - -// SARXQ performs "Arithmetic Shift Right Without Affecting Flags". -// -// Mnemonic : SARX -// Supported forms : (2 forms) -// -// * SARXQ r64, r64, r64 [BMI2] -// * SARXQ r64, m64, r64 [BMI2] -// -func (self *Program) SARXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SARXQ", 3, Operands { v0, v1, v2 }) - // SARXQ r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfa ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SARXQ r64, m64, r64 - if isReg64(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x82, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SARXQ") - } - return p -} - -// SBBB performs "Subtract with Borrow". -// -// Mnemonic : SBB -// Supported forms : (6 forms) -// -// * SBBB imm8, al -// * SBBB imm8, r8 -// * SBBB r8, r8 -// * SBBB m8, r8 -// * SBBB imm8, m8 -// * SBBB r8, m8 -// -func (self *Program) SBBB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SBBB", 2, Operands { v0, v1 }) - // SBBB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x1c) - m.imm1(toImmAny(v[0])) - }) - } - // SBBB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SBBB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x18) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x1a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SBBB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x1a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SBBB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SBBB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x18) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SBBB") - } - return p -} - -// SBBL performs "Subtract with Borrow". -// -// Mnemonic : SBB -// Supported forms : (8 forms) -// -// * SBBL imm32, eax -// * SBBL imm8, r32 -// * SBBL imm32, r32 -// * SBBL r32, r32 -// * SBBL m32, r32 -// * SBBL imm8, m32 -// * SBBL imm32, m32 -// * SBBL r32, m32 -// -func (self *Program) SBBL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SBBL", 2, Operands { v0, v1 }) - // SBBL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x1d) - m.imm4(toImmAny(v[0])) - }) - } - // SBBL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SBBL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xd8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // SBBL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x19) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x1b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SBBL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SBBL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SBBL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(3, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // SBBL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x19) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SBBL") - } - return p -} - -// SBBQ performs "Subtract with Borrow". -// -// Mnemonic : SBB -// Supported forms : (8 forms) -// -// * SBBQ imm32, rax -// * SBBQ imm8, r64 -// * SBBQ imm32, r64 -// * SBBQ r64, r64 -// * SBBQ m64, r64 -// * SBBQ imm8, m64 -// * SBBQ imm32, m64 -// * SBBQ r64, m64 -// -func (self *Program) SBBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SBBQ", 2, Operands { v0, v1 }) - // SBBQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x1d) - m.imm4(toImmAny(v[0])) - }) - } - // SBBQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SBBQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xd8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // SBBQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x19) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x1b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SBBQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SBBQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SBBQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(3, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // SBBQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x19) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SBBQ") - } - return p -} - -// SBBW performs "Subtract with Borrow". -// -// Mnemonic : SBB -// Supported forms : (8 forms) -// -// * SBBW imm16, ax -// * SBBW imm8, r16 -// * SBBW imm16, r16 -// * SBBW r16, r16 -// * SBBW m16, r16 -// * SBBW imm8, m16 -// * SBBW imm16, m16 -// * SBBW r16, m16 -// -func (self *Program) SBBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SBBW", 2, Operands { v0, v1 }) - // SBBW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x1d) - m.imm2(toImmAny(v[0])) - }) - } - // SBBW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SBBW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xd8 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // SBBW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x19) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x1b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SBBW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SBBW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(3, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SBBW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(3, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // SBBW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x19) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SBBW") - } - return p -} - -// SETA performs "Set byte if above (CF == 0 and ZF == 0)". -// -// Mnemonic : SETA -// Supported forms : (2 forms) -// -// * SETA r8 -// * SETA m8 -// -func (self *Program) SETA(v0 interface{}) *Instruction { - p := self.alloc("SETA", 1, Operands { v0 }) - // SETA r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x97) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETA m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x97) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETA") - } - return p -} - -// SETAE performs "Set byte if above or equal (CF == 0)". -// -// Mnemonic : SETAE -// Supported forms : (2 forms) -// -// * SETAE r8 -// * SETAE m8 -// -func (self *Program) SETAE(v0 interface{}) *Instruction { - p := self.alloc("SETAE", 1, Operands { v0 }) - // SETAE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x93) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETAE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x93) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETAE") - } - return p -} - -// SETB performs "Set byte if below (CF == 1)". -// -// Mnemonic : SETB -// Supported forms : (2 forms) -// -// * SETB r8 -// * SETB m8 -// -func (self *Program) SETB(v0 interface{}) *Instruction { - p := self.alloc("SETB", 1, Operands { v0 }) - // SETB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x92) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x92) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETB") - } - return p -} - -// SETBE performs "Set byte if below or equal (CF == 1 or ZF == 1)". -// -// Mnemonic : SETBE -// Supported forms : (2 forms) -// -// * SETBE r8 -// * SETBE m8 -// -func (self *Program) SETBE(v0 interface{}) *Instruction { - p := self.alloc("SETBE", 1, Operands { v0 }) - // SETBE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x96) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETBE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x96) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETBE") - } - return p -} - -// SETC performs "Set byte if carry (CF == 1)". -// -// Mnemonic : SETC -// Supported forms : (2 forms) -// -// * SETC r8 -// * SETC m8 -// -func (self *Program) SETC(v0 interface{}) *Instruction { - p := self.alloc("SETC", 1, Operands { v0 }) - // SETC r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x92) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETC m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x92) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETC") - } - return p -} - -// SETE performs "Set byte if equal (ZF == 1)". -// -// Mnemonic : SETE -// Supported forms : (2 forms) -// -// * SETE r8 -// * SETE m8 -// -func (self *Program) SETE(v0 interface{}) *Instruction { - p := self.alloc("SETE", 1, Operands { v0 }) - // SETE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x94) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x94) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETE") - } - return p -} - -// SETG performs "Set byte if greater (ZF == 0 and SF == OF)". -// -// Mnemonic : SETG -// Supported forms : (2 forms) -// -// * SETG r8 -// * SETG m8 -// -func (self *Program) SETG(v0 interface{}) *Instruction { - p := self.alloc("SETG", 1, Operands { v0 }) - // SETG r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETG m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9f) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETG") - } - return p -} - -// SETGE performs "Set byte if greater or equal (SF == OF)". -// -// Mnemonic : SETGE -// Supported forms : (2 forms) -// -// * SETGE r8 -// * SETGE m8 -// -func (self *Program) SETGE(v0 interface{}) *Instruction { - p := self.alloc("SETGE", 1, Operands { v0 }) - // SETGE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETGE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9d) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETGE") - } - return p -} - -// SETL performs "Set byte if less (SF != OF)". -// -// Mnemonic : SETL -// Supported forms : (2 forms) -// -// * SETL r8 -// * SETL m8 -// -func (self *Program) SETL(v0 interface{}) *Instruction { - p := self.alloc("SETL", 1, Operands { v0 }) - // SETL r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETL m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9c) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETL") - } - return p -} - -// SETLE performs "Set byte if less or equal (ZF == 1 or SF != OF)". -// -// Mnemonic : SETLE -// Supported forms : (2 forms) -// -// * SETLE r8 -// * SETLE m8 -// -func (self *Program) SETLE(v0 interface{}) *Instruction { - p := self.alloc("SETLE", 1, Operands { v0 }) - // SETLE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETLE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9e) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETLE") - } - return p -} - -// SETNA performs "Set byte if not above (CF == 1 or ZF == 1)". -// -// Mnemonic : SETNA -// Supported forms : (2 forms) -// -// * SETNA r8 -// * SETNA m8 -// -func (self *Program) SETNA(v0 interface{}) *Instruction { - p := self.alloc("SETNA", 1, Operands { v0 }) - // SETNA r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x96) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNA m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x96) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNA") - } - return p -} - -// SETNAE performs "Set byte if not above or equal (CF == 1)". -// -// Mnemonic : SETNAE -// Supported forms : (2 forms) -// -// * SETNAE r8 -// * SETNAE m8 -// -func (self *Program) SETNAE(v0 interface{}) *Instruction { - p := self.alloc("SETNAE", 1, Operands { v0 }) - // SETNAE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x92) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNAE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x92) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNAE") - } - return p -} - -// SETNB performs "Set byte if not below (CF == 0)". -// -// Mnemonic : SETNB -// Supported forms : (2 forms) -// -// * SETNB r8 -// * SETNB m8 -// -func (self *Program) SETNB(v0 interface{}) *Instruction { - p := self.alloc("SETNB", 1, Operands { v0 }) - // SETNB r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x93) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNB m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x93) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNB") - } - return p -} - -// SETNBE performs "Set byte if not below or equal (CF == 0 and ZF == 0)". -// -// Mnemonic : SETNBE -// Supported forms : (2 forms) -// -// * SETNBE r8 -// * SETNBE m8 -// -func (self *Program) SETNBE(v0 interface{}) *Instruction { - p := self.alloc("SETNBE", 1, Operands { v0 }) - // SETNBE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x97) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNBE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x97) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNBE") - } - return p -} - -// SETNC performs "Set byte if not carry (CF == 0)". -// -// Mnemonic : SETNC -// Supported forms : (2 forms) -// -// * SETNC r8 -// * SETNC m8 -// -func (self *Program) SETNC(v0 interface{}) *Instruction { - p := self.alloc("SETNC", 1, Operands { v0 }) - // SETNC r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x93) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNC m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x93) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNC") - } - return p -} - -// SETNE performs "Set byte if not equal (ZF == 0)". -// -// Mnemonic : SETNE -// Supported forms : (2 forms) -// -// * SETNE r8 -// * SETNE m8 -// -func (self *Program) SETNE(v0 interface{}) *Instruction { - p := self.alloc("SETNE", 1, Operands { v0 }) - // SETNE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x95) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x95) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNE") - } - return p -} - -// SETNG performs "Set byte if not greater (ZF == 1 or SF != OF)". -// -// Mnemonic : SETNG -// Supported forms : (2 forms) -// -// * SETNG r8 -// * SETNG m8 -// -func (self *Program) SETNG(v0 interface{}) *Instruction { - p := self.alloc("SETNG", 1, Operands { v0 }) - // SETNG r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNG m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9e) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNG") - } - return p -} - -// SETNGE performs "Set byte if not greater or equal (SF != OF)". -// -// Mnemonic : SETNGE -// Supported forms : (2 forms) -// -// * SETNGE r8 -// * SETNGE m8 -// -func (self *Program) SETNGE(v0 interface{}) *Instruction { - p := self.alloc("SETNGE", 1, Operands { v0 }) - // SETNGE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNGE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9c) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNGE") - } - return p -} - -// SETNL performs "Set byte if not less (SF == OF)". -// -// Mnemonic : SETNL -// Supported forms : (2 forms) -// -// * SETNL r8 -// * SETNL m8 -// -func (self *Program) SETNL(v0 interface{}) *Instruction { - p := self.alloc("SETNL", 1, Operands { v0 }) - // SETNL r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNL m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9d) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNL") - } - return p -} - -// SETNLE performs "Set byte if not less or equal (ZF == 0 and SF == OF)". -// -// Mnemonic : SETNLE -// Supported forms : (2 forms) -// -// * SETNLE r8 -// * SETNLE m8 -// -func (self *Program) SETNLE(v0 interface{}) *Instruction { - p := self.alloc("SETNLE", 1, Operands { v0 }) - // SETNLE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNLE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9f) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNLE") - } - return p -} - -// SETNO performs "Set byte if not overflow (OF == 0)". -// -// Mnemonic : SETNO -// Supported forms : (2 forms) -// -// * SETNO r8 -// * SETNO m8 -// -func (self *Program) SETNO(v0 interface{}) *Instruction { - p := self.alloc("SETNO", 1, Operands { v0 }) - // SETNO r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x91) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNO m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x91) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNO") - } - return p -} - -// SETNP performs "Set byte if not parity (PF == 0)". -// -// Mnemonic : SETNP -// Supported forms : (2 forms) -// -// * SETNP r8 -// * SETNP m8 -// -func (self *Program) SETNP(v0 interface{}) *Instruction { - p := self.alloc("SETNP", 1, Operands { v0 }) - // SETNP r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNP m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9b) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNP") - } - return p -} - -// SETNS performs "Set byte if not sign (SF == 0)". -// -// Mnemonic : SETNS -// Supported forms : (2 forms) -// -// * SETNS r8 -// * SETNS m8 -// -func (self *Program) SETNS(v0 interface{}) *Instruction { - p := self.alloc("SETNS", 1, Operands { v0 }) - // SETNS r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x99) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNS m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x99) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNS") - } - return p -} - -// SETNZ performs "Set byte if not zero (ZF == 0)". -// -// Mnemonic : SETNZ -// Supported forms : (2 forms) -// -// * SETNZ r8 -// * SETNZ m8 -// -func (self *Program) SETNZ(v0 interface{}) *Instruction { - p := self.alloc("SETNZ", 1, Operands { v0 }) - // SETNZ r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x95) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETNZ m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x95) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETNZ") - } - return p -} - -// SETO performs "Set byte if overflow (OF == 1)". -// -// Mnemonic : SETO -// Supported forms : (2 forms) -// -// * SETO r8 -// * SETO m8 -// -func (self *Program) SETO(v0 interface{}) *Instruction { - p := self.alloc("SETO", 1, Operands { v0 }) - // SETO r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x90) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETO m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x90) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETO") - } - return p -} - -// SETP performs "Set byte if parity (PF == 1)". -// -// Mnemonic : SETP -// Supported forms : (2 forms) -// -// * SETP r8 -// * SETP m8 -// -func (self *Program) SETP(v0 interface{}) *Instruction { - p := self.alloc("SETP", 1, Operands { v0 }) - // SETP r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETP m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9a) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETP") - } - return p -} - -// SETPE performs "Set byte if parity even (PF == 1)". -// -// Mnemonic : SETPE -// Supported forms : (2 forms) -// -// * SETPE r8 -// * SETPE m8 -// -func (self *Program) SETPE(v0 interface{}) *Instruction { - p := self.alloc("SETPE", 1, Operands { v0 }) - // SETPE r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETPE m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9a) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETPE") - } - return p -} - -// SETPO performs "Set byte if parity odd (PF == 0)". -// -// Mnemonic : SETPO -// Supported forms : (2 forms) -// -// * SETPO r8 -// * SETPO m8 -// -func (self *Program) SETPO(v0 interface{}) *Instruction { - p := self.alloc("SETPO", 1, Operands { v0 }) - // SETPO r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETPO m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x9b) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETPO") - } - return p -} - -// SETS performs "Set byte if sign (SF == 1)". -// -// Mnemonic : SETS -// Supported forms : (2 forms) -// -// * SETS r8 -// * SETS m8 -// -func (self *Program) SETS(v0 interface{}) *Instruction { - p := self.alloc("SETS", 1, Operands { v0 }) - // SETS r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x98) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETS m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x98) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETS") - } - return p -} - -// SETZ performs "Set byte if zero (ZF == 1)". -// -// Mnemonic : SETZ -// Supported forms : (2 forms) -// -// * SETZ r8 -// * SETZ m8 -// -func (self *Program) SETZ(v0 interface{}) *Instruction { - p := self.alloc("SETZ", 1, Operands { v0 }) - // SETZ r8 - if isReg8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0x94) - m.emit(0xc0 | lcode(v[0])) - }) - } - // SETZ m8 - if isM8(v0) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0x94) - m.mrsd(0, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SETZ") - } - return p -} - -// SFENCE performs "Store Fence". -// -// Mnemonic : SFENCE -// Supported forms : (1 form) -// -// * SFENCE [MMX+] -// -func (self *Program) SFENCE() *Instruction { - p := self.alloc("SFENCE", 0, Operands { }) - // SFENCE - self.require(ISA_MMX_PLUS) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0xae) - m.emit(0xf8) - }) - return p -} - -// SHA1MSG1 performs "Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords". -// -// Mnemonic : SHA1MSG1 -// Supported forms : (2 forms) -// -// * SHA1MSG1 xmm, xmm [SHA] -// * SHA1MSG1 m128, xmm [SHA] -// -func (self *Program) SHA1MSG1(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHA1MSG1", 2, Operands { v0, v1 }) - // SHA1MSG1 xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xc9) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SHA1MSG1 m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xc9) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHA1MSG1") - } - return p -} - -// SHA1MSG2 performs "Perform a Final Calculation for the Next Four SHA1 Message Doublewords". -// -// Mnemonic : SHA1MSG2 -// Supported forms : (2 forms) -// -// * SHA1MSG2 xmm, xmm [SHA] -// * SHA1MSG2 m128, xmm [SHA] -// -func (self *Program) SHA1MSG2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHA1MSG2", 2, Operands { v0, v1 }) - // SHA1MSG2 xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xca) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SHA1MSG2 m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xca) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHA1MSG2") - } - return p -} - -// SHA1NEXTE performs "Calculate SHA1 State Variable E after Four Rounds". -// -// Mnemonic : SHA1NEXTE -// Supported forms : (2 forms) -// -// * SHA1NEXTE xmm, xmm [SHA] -// * SHA1NEXTE m128, xmm [SHA] -// -func (self *Program) SHA1NEXTE(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHA1NEXTE", 2, Operands { v0, v1 }) - // SHA1NEXTE xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xc8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SHA1NEXTE m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xc8) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHA1NEXTE") - } - return p -} - -// SHA1RNDS4 performs "Perform Four Rounds of SHA1 Operation". -// -// Mnemonic : SHA1RNDS4 -// Supported forms : (2 forms) -// -// * SHA1RNDS4 imm8, xmm, xmm [SHA] -// * SHA1RNDS4 imm8, m128, xmm [SHA] -// -func (self *Program) SHA1RNDS4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHA1RNDS4", 3, Operands { v0, v1, v2 }) - // SHA1RNDS4 imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHA1RNDS4 imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x3a) - m.emit(0xcc) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for SHA1RNDS4") - } - return p -} - -// SHA256MSG1 performs "Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords". -// -// Mnemonic : SHA256MSG1 -// Supported forms : (2 forms) -// -// * SHA256MSG1 xmm, xmm [SHA] -// * SHA256MSG1 m128, xmm [SHA] -// -func (self *Program) SHA256MSG1(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHA256MSG1", 2, Operands { v0, v1 }) - // SHA256MSG1 xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SHA256MSG1 m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xcc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHA256MSG1") - } - return p -} - -// SHA256MSG2 performs "Perform a Final Calculation for the Next Four SHA256 Message Doublewords". -// -// Mnemonic : SHA256MSG2 -// Supported forms : (2 forms) -// -// * SHA256MSG2 xmm, xmm [SHA] -// * SHA256MSG2 m128, xmm [SHA] -// -func (self *Program) SHA256MSG2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHA256MSG2", 2, Operands { v0, v1 }) - // SHA256MSG2 xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xcd) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SHA256MSG2 m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xcd) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHA256MSG2") - } - return p -} - -// SHA256RNDS2 performs "Perform Two Rounds of SHA256 Operation". -// -// Mnemonic : SHA256RNDS2 -// Supported forms : (2 forms) -// -// * SHA256RNDS2 xmm0, xmm, xmm [SHA] -// * SHA256RNDS2 xmm0, m128, xmm [SHA] -// -func (self *Program) SHA256RNDS2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHA256RNDS2", 3, Operands { v0, v1, v2 }) - // SHA256RNDS2 xmm0, xmm, xmm - if v0 == XMM0 && isXMM(v1) && isXMM(v2) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xcb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SHA256RNDS2 xmm0, m128, xmm - if v0 == XMM0 && isM128(v1) && isXMM(v2) { - self.require(ISA_SHA) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0x38) - m.emit(0xcb) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHA256RNDS2") - } - return p -} - -// SHLB performs "Logical Shift Left". -// -// Mnemonic : SHL -// Supported forms : (6 forms) -// -// * SHLB 1, r8 -// * SHLB imm8, r8 -// * SHLB cl, r8 -// * SHLB 1, m8 -// * SHLB imm8, m8 -// * SHLB cl, m8 -// -func (self *Program) SHLB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHLB", 2, Operands { v0, v1 }) - // SHLB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SHLB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLB") - } - return p -} - -// SHLDL performs "Integer Double Precision Shift Left". -// -// Mnemonic : SHLD -// Supported forms : (4 forms) -// -// * SHLDL imm8, r32, r32 -// * SHLDL cl, r32, r32 -// * SHLDL imm8, r32, m32 -// * SHLDL cl, r32, m32 -// -func (self *Program) SHLDL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHLDL", 3, Operands { v0, v1, v2 }) - // SHLDL imm8, r32, r32 - if isImm8(v0) && isReg32(v1) && isReg32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xa4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLDL cl, r32, r32 - if v0 == CL && isReg32(v1) && isReg32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xa5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - }) - } - // SHLDL imm8, r32, m32 - if isImm8(v0) && isReg32(v1) && isM32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xa4) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLDL cl, r32, m32 - if v0 == CL && isReg32(v1) && isM32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xa5) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLDL") - } - return p -} - -// SHLDQ performs "Integer Double Precision Shift Left". -// -// Mnemonic : SHLD -// Supported forms : (4 forms) -// -// * SHLDQ imm8, r64, r64 -// * SHLDQ cl, r64, r64 -// * SHLDQ imm8, r64, m64 -// * SHLDQ cl, r64, m64 -// -func (self *Program) SHLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHLDQ", 3, Operands { v0, v1, v2 }) - // SHLDQ imm8, r64, r64 - if isImm8(v0) && isReg64(v1) && isReg64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) - m.emit(0x0f) - m.emit(0xa4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLDQ cl, r64, r64 - if v0 == CL && isReg64(v1) && isReg64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) - m.emit(0x0f) - m.emit(0xa5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - }) - } - // SHLDQ imm8, r64, m64 - if isImm8(v0) && isReg64(v1) && isM64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[2])) - m.emit(0x0f) - m.emit(0xa4) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLDQ cl, r64, m64 - if v0 == CL && isReg64(v1) && isM64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[2])) - m.emit(0x0f) - m.emit(0xa5) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLDQ") - } - return p -} - -// SHLDW performs "Integer Double Precision Shift Left". -// -// Mnemonic : SHLD -// Supported forms : (4 forms) -// -// * SHLDW imm8, r16, r16 -// * SHLDW cl, r16, r16 -// * SHLDW imm8, r16, m16 -// * SHLDW cl, r16, m16 -// -func (self *Program) SHLDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHLDW", 3, Operands { v0, v1, v2 }) - // SHLDW imm8, r16, r16 - if isImm8(v0) && isReg16(v1) && isReg16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xa4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLDW cl, r16, r16 - if v0 == CL && isReg16(v1) && isReg16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xa5) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - }) - } - // SHLDW imm8, r16, m16 - if isImm8(v0) && isReg16(v1) && isM16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xa4) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLDW cl, r16, m16 - if v0 == CL && isReg16(v1) && isM16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xa5) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLDW") - } - return p -} - -// SHLL performs "Logical Shift Left". -// -// Mnemonic : SHL -// Supported forms : (6 forms) -// -// * SHLL 1, r32 -// * SHLL imm8, r32 -// * SHLL cl, r32 -// * SHLL 1, m32 -// * SHLL imm8, m32 -// * SHLL cl, m32 -// -func (self *Program) SHLL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHLL", 2, Operands { v0, v1 }) - // SHLL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SHLL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLL") - } - return p -} - -// SHLQ performs "Logical Shift Left". -// -// Mnemonic : SHL -// Supported forms : (6 forms) -// -// * SHLQ 1, r64 -// * SHLQ imm8, r64 -// * SHLQ cl, r64 -// * SHLQ 1, m64 -// * SHLQ imm8, m64 -// * SHLQ cl, m64 -// -func (self *Program) SHLQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHLQ", 2, Operands { v0, v1 }) - // SHLQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SHLQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLQ") - } - return p -} - -// SHLW performs "Logical Shift Left". -// -// Mnemonic : SHL -// Supported forms : (6 forms) -// -// * SHLW 1, r16 -// * SHLW imm8, r16 -// * SHLW cl, r16 -// * SHLW 1, m16 -// * SHLW imm8, m16 -// * SHLW cl, m16 -// -func (self *Program) SHLW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHLW", 2, Operands { v0, v1 }) - // SHLW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHLW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xe0 | lcode(v[1])) - }) - } - // SHLW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(4, addr(v[1]), 1) - }) - } - // SHLW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(4, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHLW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(4, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLW") - } - return p -} - -// SHLXL performs "Logical Shift Left Without Affecting Flags". -// -// Mnemonic : SHLX -// Supported forms : (2 forms) -// -// * SHLXL r32, r32, r32 [BMI2] -// * SHLXL r32, m32, r32 [BMI2] -// -func (self *Program) SHLXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHLXL", 3, Operands { v0, v1, v2 }) - // SHLXL r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SHLXL r32, m32, r32 - if isReg32(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLXL") - } - return p -} - -// SHLXQ performs "Logical Shift Left Without Affecting Flags". -// -// Mnemonic : SHLX -// Supported forms : (2 forms) -// -// * SHLXQ r64, r64, r64 [BMI2] -// * SHLXQ r64, m64, r64 [BMI2] -// -func (self *Program) SHLXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHLXQ", 3, Operands { v0, v1, v2 }) - // SHLXQ r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf9 ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SHLXQ r64, m64, r64 - if isReg64(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHLXQ") - } - return p -} - -// SHRB performs "Logical Shift Right". -// -// Mnemonic : SHR -// Supported forms : (6 forms) -// -// * SHRB 1, r8 -// * SHRB imm8, r8 -// * SHRB cl, r8 -// * SHRB 1, m8 -// * SHRB imm8, m8 -// * SHRB cl, m8 -// -func (self *Program) SHRB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHRB", 2, Operands { v0, v1 }) - // SHRB 1, r8 - if isConst1(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd0) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xc0) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRB cl, r8 - if v0 == CL && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xd2) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRB 1, m8 - if isConst1(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd0) - m.mrsd(5, addr(v[1]), 1) - }) - } - // SHRB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc0) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRB cl, m8 - if v0 == CL && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd2) - m.mrsd(5, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRB") - } - return p -} - -// SHRDL performs "Integer Double Precision Shift Right". -// -// Mnemonic : SHRD -// Supported forms : (4 forms) -// -// * SHRDL imm8, r32, r32 -// * SHRDL cl, r32, r32 -// * SHRDL imm8, r32, m32 -// * SHRDL cl, r32, m32 -// -func (self *Program) SHRDL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHRDL", 3, Operands { v0, v1, v2 }) - // SHRDL imm8, r32, r32 - if isImm8(v0) && isReg32(v1) && isReg32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xac) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRDL cl, r32, r32 - if v0 == CL && isReg32(v1) && isReg32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xad) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - }) - } - // SHRDL imm8, r32, m32 - if isImm8(v0) && isReg32(v1) && isM32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xac) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRDL cl, r32, m32 - if v0 == CL && isReg32(v1) && isM32(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xad) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRDL") - } - return p -} - -// SHRDQ performs "Integer Double Precision Shift Right". -// -// Mnemonic : SHRD -// Supported forms : (4 forms) -// -// * SHRDQ imm8, r64, r64 -// * SHRDQ cl, r64, r64 -// * SHRDQ imm8, r64, m64 -// * SHRDQ cl, r64, m64 -// -func (self *Program) SHRDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHRDQ", 3, Operands { v0, v1, v2 }) - // SHRDQ imm8, r64, r64 - if isImm8(v0) && isReg64(v1) && isReg64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) - m.emit(0x0f) - m.emit(0xac) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRDQ cl, r64, r64 - if v0 == CL && isReg64(v1) && isReg64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) - m.emit(0x0f) - m.emit(0xad) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - }) - } - // SHRDQ imm8, r64, m64 - if isImm8(v0) && isReg64(v1) && isM64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[2])) - m.emit(0x0f) - m.emit(0xac) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRDQ cl, r64, m64 - if v0 == CL && isReg64(v1) && isM64(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[2])) - m.emit(0x0f) - m.emit(0xad) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRDQ") - } - return p -} - -// SHRDW performs "Integer Double Precision Shift Right". -// -// Mnemonic : SHRD -// Supported forms : (4 forms) -// -// * SHRDW imm8, r16, r16 -// * SHRDW cl, r16, r16 -// * SHRDW imm8, r16, m16 -// * SHRDW cl, r16, m16 -// -func (self *Program) SHRDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHRDW", 3, Operands { v0, v1, v2 }) - // SHRDW imm8, r16, r16 - if isImm8(v0) && isReg16(v1) && isReg16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xac) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRDW cl, r16, r16 - if v0 == CL && isReg16(v1) && isReg16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[2], false) - m.emit(0x0f) - m.emit(0xad) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - }) - } - // SHRDW imm8, r16, m16 - if isImm8(v0) && isReg16(v1) && isM16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xac) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRDW cl, r16, m16 - if v0 == CL && isReg16(v1) && isM16(v2) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[2]), false) - m.emit(0x0f) - m.emit(0xad) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRDW") - } - return p -} - -// SHRL performs "Logical Shift Right". -// -// Mnemonic : SHR -// Supported forms : (6 forms) -// -// * SHRL 1, r32 -// * SHRL imm8, r32 -// * SHRL cl, r32 -// * SHRL 1, m32 -// * SHRL imm8, m32 -// * SHRL cl, m32 -// -func (self *Program) SHRL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHRL", 2, Operands { v0, v1 }) - // SHRL 1, r32 - if isConst1(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRL imm8, r32 - if isImm8(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRL cl, r32 - if v0 == CL && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRL 1, m32 - if isConst1(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(5, addr(v[1]), 1) - }) - } - // SHRL imm8, m32 - if isImm8(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRL cl, m32 - if v0 == CL && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(5, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRL") - } - return p -} - -// SHRQ performs "Logical Shift Right". -// -// Mnemonic : SHR -// Supported forms : (6 forms) -// -// * SHRQ 1, r64 -// * SHRQ imm8, r64 -// * SHRQ cl, r64 -// * SHRQ 1, m64 -// * SHRQ imm8, m64 -// * SHRQ cl, m64 -// -func (self *Program) SHRQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHRQ", 2, Operands { v0, v1 }) - // SHRQ 1, r64 - if isConst1(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd1) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRQ imm8, r64 - if isImm8(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xc1) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRQ cl, r64 - if v0 == CL && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xd3) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRQ 1, m64 - if isConst1(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd1) - m.mrsd(5, addr(v[1]), 1) - }) - } - // SHRQ imm8, m64 - if isImm8(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xc1) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRQ cl, m64 - if v0 == CL && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xd3) - m.mrsd(5, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRQ") - } - return p -} - -// SHRW performs "Logical Shift Right". -// -// Mnemonic : SHR -// Supported forms : (6 forms) -// -// * SHRW 1, r16 -// * SHRW imm8, r16 -// * SHRW cl, r16 -// * SHRW 1, m16 -// * SHRW imm8, m16 -// * SHRW cl, m16 -// -func (self *Program) SHRW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SHRW", 2, Operands { v0, v1 }) - // SHRW 1, r16 - if isConst1(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd1) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRW imm8, r16 - if isImm8(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xc1) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHRW cl, r16 - if v0 == CL && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xd3) - m.emit(0xe8 | lcode(v[1])) - }) - } - // SHRW 1, m16 - if isConst1(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd1) - m.mrsd(5, addr(v[1]), 1) - }) - } - // SHRW imm8, m16 - if isImm8(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xc1) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SHRW cl, m16 - if v0 == CL && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xd3) - m.mrsd(5, addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRW") - } - return p -} - -// SHRXL performs "Logical Shift Right Without Affecting Flags". -// -// Mnemonic : SHRX -// Supported forms : (2 forms) -// -// * SHRXL r32, r32, r32 [BMI2] -// * SHRXL r32, m32, r32 [BMI2] -// -func (self *Program) SHRXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHRXL", 3, Operands { v0, v1, v2 }) - // SHRXL r32, r32, r32 - if isReg32(v0) && isReg32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7b ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SHRXL r32, m32, r32 - if isReg32(v0) && isM32(v1) && isReg32(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRXL") - } - return p -} - -// SHRXQ performs "Logical Shift Right Without Affecting Flags". -// -// Mnemonic : SHRX -// Supported forms : (2 forms) -// -// * SHRXQ r64, r64, r64 [BMI2] -// * SHRXQ r64, m64, r64 [BMI2] -// -func (self *Program) SHRXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHRXQ", 3, Operands { v0, v1, v2 }) - // SHRXQ r64, r64, r64 - if isReg64(v0) && isReg64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfb ^ (hlcode(v[0]) << 3)) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // SHRXQ r64, m64, r64 - if isReg64(v0) && isM64(v1) && isReg64(v2) { - self.require(ISA_BMI2) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0xf7) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SHRXQ") - } - return p -} - -// SHUFPD performs "Shuffle Packed Double-Precision Floating-Point Values". -// -// Mnemonic : SHUFPD -// Supported forms : (2 forms) -// -// * SHUFPD imm8, xmm, xmm [SSE2] -// * SHUFPD imm8, m128, xmm [SSE2] -// -func (self *Program) SHUFPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHUFPD", 3, Operands { v0, v1, v2 }) - // SHUFPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHUFPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc6) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for SHUFPD") - } - return p -} - -// SHUFPS performs "Shuffle Packed Single-Precision Floating-Point Values". -// -// Mnemonic : SHUFPS -// Supported forms : (2 forms) -// -// * SHUFPS imm8, xmm, xmm [SSE] -// * SHUFPS imm8, m128, xmm [SSE] -// -func (self *Program) SHUFPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("SHUFPS", 3, Operands { v0, v1, v2 }) - // SHUFPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), v[1], false) - m.emit(0x0f) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SHUFPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[2]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc6) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for SHUFPS") - } - return p -} - -// SQRTPD performs "Compute Square Roots of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : SQRTPD -// Supported forms : (2 forms) -// -// * SQRTPD xmm, xmm [SSE2] -// * SQRTPD m128, xmm [SSE2] -// -func (self *Program) SQRTPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SQRTPD", 2, Operands { v0, v1 }) - // SQRTPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SQRTPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SQRTPD") - } - return p -} - -// SQRTPS performs "Compute Square Roots of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : SQRTPS -// Supported forms : (2 forms) -// -// * SQRTPS xmm, xmm [SSE] -// * SQRTPS m128, xmm [SSE] -// -func (self *Program) SQRTPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SQRTPS", 2, Operands { v0, v1 }) - // SQRTPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SQRTPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SQRTPS") - } - return p -} - -// SQRTSD performs "Compute Square Root of Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : SQRTSD -// Supported forms : (2 forms) -// -// * SQRTSD xmm, xmm [SSE2] -// * SQRTSD m64, xmm [SSE2] -// -func (self *Program) SQRTSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SQRTSD", 2, Operands { v0, v1 }) - // SQRTSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SQRTSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SQRTSD") - } - return p -} - -// SQRTSS performs "Compute Square Root of Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : SQRTSS -// Supported forms : (2 forms) -// -// * SQRTSS xmm, xmm [SSE] -// * SQRTSS m32, xmm [SSE] -// -func (self *Program) SQRTSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SQRTSS", 2, Operands { v0, v1 }) - // SQRTSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SQRTSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SQRTSS") - } - return p -} - -// STC performs "Set Carry Flag". -// -// Mnemonic : STC -// Supported forms : (1 form) -// -// * STC -// -func (self *Program) STC() *Instruction { - p := self.alloc("STC", 0, Operands { }) - // STC - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf9) - }) - return p -} - -// STD performs "Set Direction Flag". -// -// Mnemonic : STD -// Supported forms : (1 form) -// -// * STD -// -func (self *Program) STD() *Instruction { - p := self.alloc("STD", 0, Operands { }) - // STD - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xfd) - }) - return p -} - -// STMXCSR performs "Store MXCSR Register State". -// -// Mnemonic : STMXCSR -// Supported forms : (1 form) -// -// * STMXCSR m32 [SSE] -// -func (self *Program) STMXCSR(v0 interface{}) *Instruction { - p := self.alloc("STMXCSR", 1, Operands { v0 }) - // STMXCSR m32 - if isM32(v0) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[0]), false) - m.emit(0x0f) - m.emit(0xae) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for STMXCSR") - } - return p -} - -// SUBB performs "Subtract". -// -// Mnemonic : SUB -// Supported forms : (6 forms) -// -// * SUBB imm8, al -// * SUBB imm8, r8 -// * SUBB r8, r8 -// * SUBB m8, r8 -// * SUBB imm8, m8 -// * SUBB r8, m8 -// -func (self *Program) SUBB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBB", 2, Operands { v0, v1 }) - // SUBB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x2c) - m.imm1(toImmAny(v[0])) - }) - } - // SUBB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SUBB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x28) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SUBB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SUBB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x28) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBB") - } - return p -} - -// SUBL performs "Subtract". -// -// Mnemonic : SUB -// Supported forms : (8 forms) -// -// * SUBL imm32, eax -// * SUBL imm8, r32 -// * SUBL imm32, r32 -// * SUBL r32, r32 -// * SUBL m32, r32 -// * SUBL imm8, m32 -// * SUBL imm32, m32 -// * SUBL r32, m32 -// -func (self *Program) SUBL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBL", 2, Operands { v0, v1 }) - // SUBL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x2d) - m.imm4(toImmAny(v[0])) - }) - } - // SUBL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SUBL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xe8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // SUBL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x2b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SUBL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SUBL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(5, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // SUBL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBL") - } - return p -} - -// SUBPD performs "Subtract Packed Double-Precision Floating-Point Values". -// -// Mnemonic : SUBPD -// Supported forms : (2 forms) -// -// * SUBPD xmm, xmm [SSE2] -// * SUBPD m128, xmm [SSE2] -// -func (self *Program) SUBPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBPD", 2, Operands { v0, v1 }) - // SUBPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBPD") - } - return p -} - -// SUBPS performs "Subtract Packed Single-Precision Floating-Point Values". -// -// Mnemonic : SUBPS -// Supported forms : (2 forms) -// -// * SUBPS xmm, xmm [SSE] -// * SUBPS m128, xmm [SSE] -// -func (self *Program) SUBPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBPS", 2, Operands { v0, v1 }) - // SUBPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBPS") - } - return p -} - -// SUBQ performs "Subtract". -// -// Mnemonic : SUB -// Supported forms : (8 forms) -// -// * SUBQ imm32, rax -// * SUBQ imm8, r64 -// * SUBQ imm32, r64 -// * SUBQ r64, r64 -// * SUBQ m64, r64 -// * SUBQ imm8, m64 -// * SUBQ imm32, m64 -// * SUBQ r64, m64 -// -func (self *Program) SUBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBQ", 2, Operands { v0, v1 }) - // SUBQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x2d) - m.imm4(toImmAny(v[0])) - }) - } - // SUBQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SUBQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xe8 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // SUBQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x2b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SUBQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SUBQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(5, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // SUBQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBQ") - } - return p -} - -// SUBSD performs "Subtract Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : SUBSD -// Supported forms : (2 forms) -// -// * SUBSD xmm, xmm [SSE2] -// * SUBSD m64, xmm [SSE2] -// -func (self *Program) SUBSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBSD", 2, Operands { v0, v1 }) - // SUBSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf2) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBSD") - } - return p -} - -// SUBSS performs "Subtract Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : SUBSS -// Supported forms : (2 forms) -// -// * SUBSS xmm, xmm [SSE] -// * SUBSS m32, xmm [SSE] -// -func (self *Program) SUBSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBSS", 2, Operands { v0, v1 }) - // SUBSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x5c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBSS") - } - return p -} - -// SUBW performs "Subtract". -// -// Mnemonic : SUB -// Supported forms : (8 forms) -// -// * SUBW imm16, ax -// * SUBW imm8, r16 -// * SUBW imm16, r16 -// * SUBW r16, r16 -// * SUBW m16, r16 -// * SUBW imm8, m16 -// * SUBW imm16, m16 -// * SUBW r16, m16 -// -func (self *Program) SUBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("SUBW", 2, Operands { v0, v1 }) - // SUBW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x2d) - m.imm2(toImmAny(v[0])) - }) - } - // SUBW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xe8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // SUBW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xe8 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // SUBW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // SUBW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x2b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // SUBW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(5, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // SUBW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(5, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // SUBW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for SUBW") - } - return p -} - -// SYSCALL performs "Fast System Call". -// -// Mnemonic : SYSCALL -// Supported forms : (1 form) -// -// * SYSCALL -// -func (self *Program) SYSCALL() *Instruction { - p := self.alloc("SYSCALL", 0, Operands { }) - // SYSCALL - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x05) - }) - return p -} - -// T1MSKC performs "Inverse Mask From Trailing Ones". -// -// Mnemonic : T1MSKC -// Supported forms : (4 forms) -// -// * T1MSKC r32, r32 [TBM] -// * T1MSKC m32, r32 [TBM] -// * T1MSKC r64, r64 [TBM] -// * T1MSKC m64, r64 [TBM] -// -func (self *Program) T1MSKC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("T1MSKC", 2, Operands { v0, v1 }) - // T1MSKC r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xf8 | lcode(v[0])) - }) - } - // T1MSKC m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(7, addr(v[0]), 1) - }) - } - // T1MSKC r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xf8 | lcode(v[0])) - }) - } - // T1MSKC m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(7, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for T1MSKC") - } - return p -} - -// TESTB performs "Logical Compare". -// -// Mnemonic : TEST -// Supported forms : (5 forms) -// -// * TESTB imm8, al -// * TESTB imm8, r8 -// * TESTB r8, r8 -// * TESTB imm8, m8 -// * TESTB r8, m8 -// -func (self *Program) TESTB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TESTB", 2, Operands { v0, v1 }) - // TESTB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xa8) - m.imm1(toImmAny(v[0])) - }) - } - // TESTB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // TESTB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x84) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // TESTB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xf6) - m.mrsd(0, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // TESTB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x84) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TESTB") - } - return p -} - -// TESTL performs "Logical Compare". -// -// Mnemonic : TEST -// Supported forms : (5 forms) -// -// * TESTL imm32, eax -// * TESTL imm32, r32 -// * TESTL r32, r32 -// * TESTL imm32, m32 -// * TESTL r32, m32 -// -func (self *Program) TESTL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TESTL", 2, Operands { v0, v1 }) - // TESTL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xa9) - m.imm4(toImmAny(v[0])) - }) - } - // TESTL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // TESTL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x85) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // TESTL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0xf7) - m.mrsd(0, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // TESTL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x85) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TESTL") - } - return p -} - -// TESTQ performs "Logical Compare". -// -// Mnemonic : TEST -// Supported forms : (5 forms) -// -// * TESTQ imm32, rax -// * TESTQ imm32, r64 -// * TESTQ r64, r64 -// * TESTQ imm32, m64 -// * TESTQ r64, m64 -// -func (self *Program) TESTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TESTQ", 2, Operands { v0, v1 }) - // TESTQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0xa9) - m.imm4(toImmAny(v[0])) - }) - } - // TESTQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // TESTQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x85) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // TESTQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0xf7) - m.mrsd(0, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // TESTQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x85) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TESTQ") - } - return p -} - -// TESTW performs "Logical Compare". -// -// Mnemonic : TEST -// Supported forms : (5 forms) -// -// * TESTW imm16, ax -// * TESTW imm16, r16 -// * TESTW r16, r16 -// * TESTW imm16, m16 -// * TESTW r16, m16 -// -func (self *Program) TESTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TESTW", 2, Operands { v0, v1 }) - // TESTW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xa9) - m.imm2(toImmAny(v[0])) - }) - } - // TESTW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // TESTW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x85) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // TESTW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0xf7) - m.mrsd(0, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // TESTW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x85) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TESTW") - } - return p -} - -// TZCNTL performs "Count the Number of Trailing Zero Bits". -// -// Mnemonic : TZCNT -// Supported forms : (2 forms) -// -// * TZCNTL r32, r32 [BMI] -// * TZCNTL m32, r32 [BMI] -// -func (self *Program) TZCNTL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TZCNTL", 2, Operands { v0, v1 }) - // TZCNTL r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // TZCNTL m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TZCNTL") - } - return p -} - -// TZCNTQ performs "Count the Number of Trailing Zero Bits". -// -// Mnemonic : TZCNT -// Supported forms : (2 forms) -// -// * TZCNTQ r64, r64 [BMI] -// * TZCNTQ m64, r64 [BMI] -// -func (self *Program) TZCNTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TZCNTQ", 2, Operands { v0, v1 }) - // TZCNTQ r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x0f) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // TZCNTQ m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xf3) - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x0f) - m.emit(0xbc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TZCNTQ") - } - return p -} - -// TZCNTW performs "Count the Number of Trailing Zero Bits". -// -// Mnemonic : TZCNT -// Supported forms : (2 forms) -// -// * TZCNTW r16, r16 [BMI] -// * TZCNTW m16, r16 [BMI] -// -func (self *Program) TZCNTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TZCNTW", 2, Operands { v0, v1 }) - // TZCNTW r16, r16 - if isReg16(v0) && isReg16(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf3) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // TZCNTW m16, r16 - if isM16(v0) && isReg16(v1) { - self.require(ISA_BMI) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0xf3) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0xbc) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TZCNTW") - } - return p -} - -// TZMSK performs "Mask From Trailing Zeros". -// -// Mnemonic : TZMSK -// Supported forms : (4 forms) -// -// * TZMSK r32, r32 [TBM] -// * TZMSK m32, r32 [TBM] -// * TZMSK r64, r64 [TBM] -// * TZMSK m64, r64 [TBM] -// -func (self *Program) TZMSK(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("TZMSK", 2, Operands { v0, v1 }) - // TZMSK r32, r32 - if isReg32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0x78 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xe0 | lcode(v[0])) - }) - } - // TZMSK m32, r32 - if isM32(v0) && isReg32(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(4, addr(v[0]), 1) - }) - } - // TZMSK r64, r64 - if isReg64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xe0 | lcode(v[0])) - }) - } - // TZMSK m64, r64 - if isM64(v0) && isReg64(v1) { - self.require(ISA_TBM) - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(4, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for TZMSK") - } - return p -} - -// UCOMISD performs "Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : UCOMISD -// Supported forms : (2 forms) -// -// * UCOMISD xmm, xmm [SSE2] -// * UCOMISD m64, xmm [SSE2] -// -func (self *Program) UCOMISD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("UCOMISD", 2, Operands { v0, v1 }) - // UCOMISD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // UCOMISD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for UCOMISD") - } - return p -} - -// UCOMISS performs "Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : UCOMISS -// Supported forms : (2 forms) -// -// * UCOMISS xmm, xmm [SSE] -// * UCOMISS m32, xmm [SSE] -// -func (self *Program) UCOMISS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("UCOMISS", 2, Operands { v0, v1 }) - // UCOMISS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // UCOMISS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x2e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for UCOMISS") - } - return p -} - -// UD2 performs "Undefined Instruction". -// -// Mnemonic : UD2 -// Supported forms : (1 form) -// -// * UD2 -// -func (self *Program) UD2() *Instruction { - p := self.alloc("UD2", 0, Operands { }) - // UD2 - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x0b) - }) - return p -} - -// UNPCKHPD performs "Unpack and Interleave High Packed Double-Precision Floating-Point Values". -// -// Mnemonic : UNPCKHPD -// Supported forms : (2 forms) -// -// * UNPCKHPD xmm, xmm [SSE2] -// * UNPCKHPD m128, xmm [SSE2] -// -func (self *Program) UNPCKHPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("UNPCKHPD", 2, Operands { v0, v1 }) - // UNPCKHPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x15) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // UNPCKHPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x15) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for UNPCKHPD") - } - return p -} - -// UNPCKHPS performs "Unpack and Interleave High Packed Single-Precision Floating-Point Values". -// -// Mnemonic : UNPCKHPS -// Supported forms : (2 forms) -// -// * UNPCKHPS xmm, xmm [SSE] -// * UNPCKHPS m128, xmm [SSE] -// -func (self *Program) UNPCKHPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("UNPCKHPS", 2, Operands { v0, v1 }) - // UNPCKHPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x15) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // UNPCKHPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x15) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for UNPCKHPS") - } - return p -} - -// UNPCKLPD performs "Unpack and Interleave Low Packed Double-Precision Floating-Point Values". -// -// Mnemonic : UNPCKLPD -// Supported forms : (2 forms) -// -// * UNPCKLPD xmm, xmm [SSE2] -// * UNPCKLPD m128, xmm [SSE2] -// -func (self *Program) UNPCKLPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("UNPCKLPD", 2, Operands { v0, v1 }) - // UNPCKLPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x14) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // UNPCKLPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x14) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for UNPCKLPD") - } - return p -} - -// UNPCKLPS performs "Unpack and Interleave Low Packed Single-Precision Floating-Point Values". -// -// Mnemonic : UNPCKLPS -// Supported forms : (2 forms) -// -// * UNPCKLPS xmm, xmm [SSE] -// * UNPCKLPS m128, xmm [SSE] -// -func (self *Program) UNPCKLPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("UNPCKLPS", 2, Operands { v0, v1 }) - // UNPCKLPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x14) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // UNPCKLPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x14) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for UNPCKLPS") - } - return p -} - -// VADDPD performs "Add Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VADDPD -// Supported forms : (11 forms) -// -// * VADDPD xmm, xmm, xmm [AVX] -// * VADDPD m128, xmm, xmm [AVX] -// * VADDPD ymm, ymm, ymm [AVX] -// * VADDPD m256, ymm, ymm [AVX] -// * VADDPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VADDPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VADDPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VADDPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VADDPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VADDPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VADDPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VADDPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VADDPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VADDPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VADDPD takes 3 or 4 operands") - } - // VADDPD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDPD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VADDPD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x58) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VADDPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VADDPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VADDPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VADDPD") - } - return p -} - -// VADDPS performs "Add Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VADDPS -// Supported forms : (11 forms) -// -// * VADDPS xmm, xmm, xmm [AVX] -// * VADDPS m128, xmm, xmm [AVX] -// * VADDPS ymm, ymm, ymm [AVX] -// * VADDPS m256, ymm, ymm [AVX] -// * VADDPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VADDPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VADDPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VADDPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VADDPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VADDPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VADDPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VADDPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VADDPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VADDPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VADDPS takes 3 or 4 operands") - } - // VADDPS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDPS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VADDPS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x58) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VADDPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VADDPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VADDPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VADDPS") - } - return p -} - -// VADDSD performs "Add Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VADDSD -// Supported forms : (5 forms) -// -// * VADDSD xmm, xmm, xmm [AVX] -// * VADDSD m64, xmm, xmm [AVX] -// * VADDSD m64, xmm, xmm{k}{z} [AVX512F] -// * VADDSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VADDSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VADDSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VADDSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VADDSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VADDSD takes 3 or 4 operands") - } - // VADDSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VADDSD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x58) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VADDSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VADDSD") - } - return p -} - -// VADDSS performs "Add Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VADDSS -// Supported forms : (5 forms) -// -// * VADDSS xmm, xmm, xmm [AVX] -// * VADDSS m32, xmm, xmm [AVX] -// * VADDSS m32, xmm, xmm{k}{z} [AVX512F] -// * VADDSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VADDSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VADDSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VADDSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VADDSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VADDSS takes 3 or 4 operands") - } - // VADDSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x58) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VADDSS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x58) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VADDSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x58) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VADDSS") - } - return p -} - -// VADDSUBPD performs "Packed Double-FP Add/Subtract". -// -// Mnemonic : VADDSUBPD -// Supported forms : (4 forms) -// -// * VADDSUBPD xmm, xmm, xmm [AVX] -// * VADDSUBPD m128, xmm, xmm [AVX] -// * VADDSUBPD ymm, ymm, ymm [AVX] -// * VADDSUBPD m256, ymm, ymm [AVX] -// -func (self *Program) VADDSUBPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VADDSUBPD", 3, Operands { v0, v1, v2 }) - // VADDSUBPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDSUBPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd0) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDSUBPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDSUBPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd0) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VADDSUBPD") - } - return p -} - -// VADDSUBPS performs "Packed Single-FP Add/Subtract". -// -// Mnemonic : VADDSUBPS -// Supported forms : (4 forms) -// -// * VADDSUBPS xmm, xmm, xmm [AVX] -// * VADDSUBPS m128, xmm, xmm [AVX] -// * VADDSUBPS ymm, ymm, ymm [AVX] -// * VADDSUBPS m256, ymm, ymm [AVX] -// -func (self *Program) VADDSUBPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VADDSUBPS", 3, Operands { v0, v1, v2 }) - // VADDSUBPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDSUBPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd0) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VADDSUBPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VADDSUBPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd0) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VADDSUBPS") - } - return p -} - -// VAESDEC performs "Perform One Round of an AES Decryption Flow". -// -// Mnemonic : VAESDEC -// Supported forms : (2 forms) -// -// * VAESDEC xmm, xmm, xmm [AES,AVX] -// * VAESDEC m128, xmm, xmm [AES,AVX] -// -func (self *Program) VAESDEC(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VAESDEC", 3, Operands { v0, v1, v2 }) - // VAESDEC xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xde) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VAESDEC m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xde) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VAESDEC") - } - return p -} - -// VAESDECLAST performs "Perform Last Round of an AES Decryption Flow". -// -// Mnemonic : VAESDECLAST -// Supported forms : (2 forms) -// -// * VAESDECLAST xmm, xmm, xmm [AES,AVX] -// * VAESDECLAST m128, xmm, xmm [AES,AVX] -// -func (self *Program) VAESDECLAST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VAESDECLAST", 3, Operands { v0, v1, v2 }) - // VAESDECLAST xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VAESDECLAST m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VAESDECLAST") - } - return p -} - -// VAESENC performs "Perform One Round of an AES Encryption Flow". -// -// Mnemonic : VAESENC -// Supported forms : (2 forms) -// -// * VAESENC xmm, xmm, xmm [AES,AVX] -// * VAESENC m128, xmm, xmm [AES,AVX] -// -func (self *Program) VAESENC(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VAESENC", 3, Operands { v0, v1, v2 }) - // VAESENC xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VAESENC m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VAESENC") - } - return p -} - -// VAESENCLAST performs "Perform Last Round of an AES Encryption Flow". -// -// Mnemonic : VAESENCLAST -// Supported forms : (2 forms) -// -// * VAESENCLAST xmm, xmm, xmm [AES,AVX] -// * VAESENCLAST m128, xmm, xmm [AES,AVX] -// -func (self *Program) VAESENCLAST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VAESENCLAST", 3, Operands { v0, v1, v2 }) - // VAESENCLAST xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VAESENCLAST m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VAESENCLAST") - } - return p -} - -// VAESIMC performs "Perform the AES InvMixColumn Transformation". -// -// Mnemonic : VAESIMC -// Supported forms : (2 forms) -// -// * VAESIMC xmm, xmm [AES,AVX] -// * VAESIMC m128, xmm [AES,AVX] -// -func (self *Program) VAESIMC(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VAESIMC", 2, Operands { v0, v1 }) - // VAESIMC xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VAESIMC m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0xdb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VAESIMC") - } - return p -} - -// VAESKEYGENASSIST performs "AES Round Key Generation Assist". -// -// Mnemonic : VAESKEYGENASSIST -// Supported forms : (2 forms) -// -// * VAESKEYGENASSIST imm8, xmm, xmm [AES,AVX] -// * VAESKEYGENASSIST imm8, m128, xmm [AES,AVX] -// -func (self *Program) VAESKEYGENASSIST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VAESKEYGENASSIST", 3, Operands { v0, v1, v2 }) - // VAESKEYGENASSIST imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VAESKEYGENASSIST imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX | ISA_AES) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VAESKEYGENASSIST") - } - return p -} - -// VALIGND performs "Align Doubleword Vectors". -// -// Mnemonic : VALIGND -// Supported forms : (6 forms) -// -// * VALIGND imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VALIGND imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VALIGND imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VALIGND imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VALIGND imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VALIGND imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VALIGND(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VALIGND", 4, Operands { v0, v1, v2, v3 }) - // VALIGND imm8, m512/m32bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGND imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x03) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGND imm8, m128/m32bcst, xmm, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGND imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x03) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGND imm8, m256/m32bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGND imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x03) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VALIGND") - } - return p -} - -// VALIGNQ performs "Align Quadword Vectors". -// -// Mnemonic : VALIGNQ -// Supported forms : (6 forms) -// -// * VALIGNQ imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VALIGNQ imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VALIGNQ imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VALIGNQ imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VALIGNQ imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VALIGNQ imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VALIGNQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VALIGNQ", 4, Operands { v0, v1, v2, v3 }) - // VALIGNQ imm8, m512/m64bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGNQ imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x03) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGNQ imm8, m128/m64bcst, xmm, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGNQ imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x03) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGNQ imm8, m256/m64bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VALIGNQ imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x03) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VALIGNQ") - } - return p -} - -// VANDNPD performs "Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VANDNPD -// Supported forms : (10 forms) -// -// * VANDNPD xmm, xmm, xmm [AVX] -// * VANDNPD m128, xmm, xmm [AVX] -// * VANDNPD ymm, ymm, ymm [AVX] -// * VANDNPD m256, ymm, ymm [AVX] -// * VANDNPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VANDNPD zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VANDNPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDNPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDNPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VANDNPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VANDNPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VANDNPD", 3, Operands { v0, v1, v2 }) - // VANDNPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDNPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDNPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VANDNPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VANDNPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VANDNPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VANDNPD") - } - return p -} - -// VANDNPS performs "Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VANDNPS -// Supported forms : (10 forms) -// -// * VANDNPS xmm, xmm, xmm [AVX] -// * VANDNPS m128, xmm, xmm [AVX] -// * VANDNPS ymm, ymm, ymm [AVX] -// * VANDNPS m256, ymm, ymm [AVX] -// * VANDNPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VANDNPS zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VANDNPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDNPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDNPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VANDNPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VANDNPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VANDNPS", 3, Operands { v0, v1, v2 }) - // VANDNPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDNPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDNPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VANDNPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VANDNPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDNPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VANDNPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x55) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VANDNPS") - } - return p -} - -// VANDPD performs "Bitwise Logical AND of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VANDPD -// Supported forms : (10 forms) -// -// * VANDPD xmm, xmm, xmm [AVX] -// * VANDPD m128, xmm, xmm [AVX] -// * VANDPD ymm, ymm, ymm [AVX] -// * VANDPD m256, ymm, ymm [AVX] -// * VANDPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VANDPD zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VANDPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VANDPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VANDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VANDPD", 3, Operands { v0, v1, v2 }) - // VANDPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VANDPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VANDPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VANDPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VANDPD") - } - return p -} - -// VANDPS performs "Bitwise Logical AND of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VANDPS -// Supported forms : (10 forms) -// -// * VANDPS xmm, xmm, xmm [AVX] -// * VANDPS m128, xmm, xmm [AVX] -// * VANDPS ymm, ymm, ymm [AVX] -// * VANDPS m256, ymm, ymm [AVX] -// * VANDPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VANDPS zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VANDPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VANDPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VANDPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VANDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VANDPS", 3, Operands { v0, v1, v2 }) - // VANDPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VANDPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VANDPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VANDPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VANDPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x54) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VANDPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x54) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VANDPS") - } - return p -} - -// VBLENDMPD performs "Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control". -// -// Mnemonic : VBLENDMPD -// Supported forms : (6 forms) -// -// * VBLENDMPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VBLENDMPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VBLENDMPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VBLENDMPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VBLENDMPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VBLENDMPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VBLENDMPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VBLENDMPD", 3, Operands { v0, v1, v2 }) - // VBLENDMPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VBLENDMPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VBLENDMPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VBLENDMPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VBLENDMPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VBLENDMPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VBLENDMPD") - } - return p -} - -// VBLENDMPS performs "Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control". -// -// Mnemonic : VBLENDMPS -// Supported forms : (6 forms) -// -// * VBLENDMPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VBLENDMPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VBLENDMPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VBLENDMPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VBLENDMPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VBLENDMPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VBLENDMPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VBLENDMPS", 3, Operands { v0, v1, v2 }) - // VBLENDMPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VBLENDMPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VBLENDMPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VBLENDMPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VBLENDMPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VBLENDMPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VBLENDMPS") - } - return p -} - -// VBLENDPD performs "Blend Packed Double Precision Floating-Point Values". -// -// Mnemonic : VBLENDPD -// Supported forms : (4 forms) -// -// * VBLENDPD imm8, xmm, xmm, xmm [AVX] -// * VBLENDPD imm8, m128, xmm, xmm [AVX] -// * VBLENDPD imm8, ymm, ymm, ymm [AVX] -// * VBLENDPD imm8, m256, ymm, ymm [AVX] -// -func (self *Program) VBLENDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VBLENDPD", 4, Operands { v0, v1, v2, v3 }) - // VBLENDPD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VBLENDPD imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VBLENDPD imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VBLENDPD imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VBLENDPD") - } - return p -} - -// VBLENDPS performs " Blend Packed Single Precision Floating-Point Values". -// -// Mnemonic : VBLENDPS -// Supported forms : (4 forms) -// -// * VBLENDPS imm8, xmm, xmm, xmm [AVX] -// * VBLENDPS imm8, m128, xmm, xmm [AVX] -// * VBLENDPS imm8, ymm, ymm, ymm [AVX] -// * VBLENDPS imm8, m256, ymm, ymm [AVX] -// -func (self *Program) VBLENDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VBLENDPS", 4, Operands { v0, v1, v2, v3 }) - // VBLENDPS imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VBLENDPS imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VBLENDPS imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VBLENDPS imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VBLENDPS") - } - return p -} - -// VBLENDVPD performs " Variable Blend Packed Double Precision Floating-Point Values". -// -// Mnemonic : VBLENDVPD -// Supported forms : (4 forms) -// -// * VBLENDVPD xmm, xmm, xmm, xmm [AVX] -// * VBLENDVPD xmm, m128, xmm, xmm [AVX] -// * VBLENDVPD ymm, ymm, ymm, ymm [AVX] -// * VBLENDVPD ymm, m256, ymm, ymm [AVX] -// -func (self *Program) VBLENDVPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VBLENDVPD", 4, Operands { v0, v1, v2, v3 }) - // VBLENDVPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VBLENDVPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x4b) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VBLENDVPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x4b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VBLENDVPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x4b) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VBLENDVPD") - } - return p -} - -// VBLENDVPS performs " Variable Blend Packed Single Precision Floating-Point Values". -// -// Mnemonic : VBLENDVPS -// Supported forms : (4 forms) -// -// * VBLENDVPS xmm, xmm, xmm, xmm [AVX] -// * VBLENDVPS xmm, m128, xmm, xmm [AVX] -// * VBLENDVPS ymm, ymm, ymm, ymm [AVX] -// * VBLENDVPS ymm, m256, ymm, ymm [AVX] -// -func (self *Program) VBLENDVPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VBLENDVPS", 4, Operands { v0, v1, v2, v3 }) - // VBLENDVPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VBLENDVPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x4a) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VBLENDVPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x4a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VBLENDVPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x4a) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VBLENDVPS") - } - return p -} - -// VBROADCASTF128 performs "Broadcast 128 Bit of Floating-Point Data". -// -// Mnemonic : VBROADCASTF128 -// Supported forms : (1 form) -// -// * VBROADCASTF128 m128, ymm [AVX] -// -func (self *Program) VBROADCASTF128(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTF128", 2, Operands { v0, v1 }) - // VBROADCASTF128 m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTF128") - } - return p -} - -// VBROADCASTF32X2 performs "Broadcast Two Single-Precision Floating-Point Elements". -// -// Mnemonic : VBROADCASTF32X2 -// Supported forms : (4 forms) -// -// * VBROADCASTF32X2 xmm, zmm{k}{z} [AVX512DQ] -// * VBROADCASTF32X2 m64, zmm{k}{z} [AVX512DQ] -// * VBROADCASTF32X2 xmm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VBROADCASTF32X2 m64, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VBROADCASTF32X2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTF32X2", 2, Operands { v0, v1 }) - // VBROADCASTF32X2 xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTF32X2 m64, zmm{k}{z} - if isM64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VBROADCASTF32X2 xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTF32X2 m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTF32X2") - } - return p -} - -// VBROADCASTF32X4 performs "Broadcast Four Single-Precision Floating-Point Elements". -// -// Mnemonic : VBROADCASTF32X4 -// Supported forms : (2 forms) -// -// * VBROADCASTF32X4 m128, zmm{k}{z} [AVX512F] -// * VBROADCASTF32X4 m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VBROADCASTF32X4(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTF32X4", 2, Operands { v0, v1 }) - // VBROADCASTF32X4 m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VBROADCASTF32X4 m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTF32X4") - } - return p -} - -// VBROADCASTF32X8 performs "Broadcast Eight Single-Precision Floating-Point Elements". -// -// Mnemonic : VBROADCASTF32X8 -// Supported forms : (1 form) -// -// * VBROADCASTF32X8 m256, zmm{k}{z} [AVX512DQ] -// -func (self *Program) VBROADCASTF32X8(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTF32X8", 2, Operands { v0, v1 }) - // VBROADCASTF32X8 m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTF32X8") - } - return p -} - -// VBROADCASTF64X2 performs "Broadcast Two Double-Precision Floating-Point Elements". -// -// Mnemonic : VBROADCASTF64X2 -// Supported forms : (2 forms) -// -// * VBROADCASTF64X2 m128, zmm{k}{z} [AVX512DQ] -// * VBROADCASTF64X2 m128, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VBROADCASTF64X2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTF64X2", 2, Operands { v0, v1 }) - // VBROADCASTF64X2 m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VBROADCASTF64X2 m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTF64X2") - } - return p -} - -// VBROADCASTF64X4 performs "Broadcast Four Double-Precision Floating-Point Elements". -// -// Mnemonic : VBROADCASTF64X4 -// Supported forms : (1 form) -// -// * VBROADCASTF64X4 m256, zmm{k}{z} [AVX512F] -// -func (self *Program) VBROADCASTF64X4(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTF64X4", 2, Operands { v0, v1 }) - // VBROADCASTF64X4 m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTF64X4") - } - return p -} - -// VBROADCASTI128 performs "Broadcast 128 Bits of Integer Data". -// -// Mnemonic : VBROADCASTI128 -// Supported forms : (1 form) -// -// * VBROADCASTI128 m128, ymm [AVX2] -// -func (self *Program) VBROADCASTI128(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTI128", 2, Operands { v0, v1 }) - // VBROADCASTI128 m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTI128") - } - return p -} - -// VBROADCASTI32X2 performs "Broadcast Two Doubleword Elements". -// -// Mnemonic : VBROADCASTI32X2 -// Supported forms : (6 forms) -// -// * VBROADCASTI32X2 xmm, zmm{k}{z} [AVX512DQ] -// * VBROADCASTI32X2 m64, zmm{k}{z} [AVX512DQ] -// * VBROADCASTI32X2 xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VBROADCASTI32X2 xmm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VBROADCASTI32X2 m64, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VBROADCASTI32X2 m64, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VBROADCASTI32X2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTI32X2", 2, Operands { v0, v1 }) - // VBROADCASTI32X2 xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTI32X2 m64, zmm{k}{z} - if isM64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VBROADCASTI32X2 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTI32X2 xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTI32X2 m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VBROADCASTI32X2 m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTI32X2") - } - return p -} - -// VBROADCASTI32X4 performs "Broadcast Four Doubleword Elements". -// -// Mnemonic : VBROADCASTI32X4 -// Supported forms : (2 forms) -// -// * VBROADCASTI32X4 m128, zmm{k}{z} [AVX512F] -// * VBROADCASTI32X4 m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VBROADCASTI32X4(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTI32X4", 2, Operands { v0, v1 }) - // VBROADCASTI32X4 m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VBROADCASTI32X4 m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTI32X4") - } - return p -} - -// VBROADCASTI32X8 performs "Broadcast Eight Doubleword Elements". -// -// Mnemonic : VBROADCASTI32X8 -// Supported forms : (1 form) -// -// * VBROADCASTI32X8 m256, zmm{k}{z} [AVX512DQ] -// -func (self *Program) VBROADCASTI32X8(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTI32X8", 2, Operands { v0, v1 }) - // VBROADCASTI32X8 m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTI32X8") - } - return p -} - -// VBROADCASTI64X2 performs "Broadcast Two Quadword Elements". -// -// Mnemonic : VBROADCASTI64X2 -// Supported forms : (2 forms) -// -// * VBROADCASTI64X2 m128, zmm{k}{z} [AVX512DQ] -// * VBROADCASTI64X2 m128, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VBROADCASTI64X2(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTI64X2", 2, Operands { v0, v1 }) - // VBROADCASTI64X2 m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VBROADCASTI64X2 m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTI64X2") - } - return p -} - -// VBROADCASTI64X4 performs "Broadcast Four Quadword Elements". -// -// Mnemonic : VBROADCASTI64X4 -// Supported forms : (1 form) -// -// * VBROADCASTI64X4 m256, zmm{k}{z} [AVX512F] -// -func (self *Program) VBROADCASTI64X4(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTI64X4", 2, Operands { v0, v1 }) - // VBROADCASTI64X4 m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTI64X4") - } - return p -} - -// VBROADCASTSD performs "Broadcast Double-Precision Floating-Point Element". -// -// Mnemonic : VBROADCASTSD -// Supported forms : (6 forms) -// -// * VBROADCASTSD m64, ymm [AVX] -// * VBROADCASTSD xmm, ymm [AVX2] -// * VBROADCASTSD xmm, zmm{k}{z} [AVX512F] -// * VBROADCASTSD m64, zmm{k}{z} [AVX512F] -// * VBROADCASTSD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VBROADCASTSD m64, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VBROADCASTSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTSD", 2, Operands { v0, v1 }) - // VBROADCASTSD m64, ymm - if isM64(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VBROADCASTSD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSD xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSD m64, zmm{k}{z} - if isM64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VBROADCASTSD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSD m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTSD") - } - return p -} - -// VBROADCASTSS performs "Broadcast Single-Precision Floating-Point Element". -// -// Mnemonic : VBROADCASTSS -// Supported forms : (8 forms) -// -// * VBROADCASTSS m32, xmm [AVX] -// * VBROADCASTSS m32, ymm [AVX] -// * VBROADCASTSS xmm, xmm [AVX2] -// * VBROADCASTSS xmm, ymm [AVX2] -// * VBROADCASTSS xmm, zmm{k}{z} [AVX512F] -// * VBROADCASTSS m32, zmm{k}{z} [AVX512F] -// * VBROADCASTSS xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VBROADCASTSS m32, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VBROADCASTSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VBROADCASTSS", 2, Operands { v0, v1 }) - // VBROADCASTSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x18) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VBROADCASTSS m32, ymm - if isM32(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x18) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VBROADCASTSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x18) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSS xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x18) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSS xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x18) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSS m32, zmm{k}{z} - if isM32(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x18) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VBROADCASTSS xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x18) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VBROADCASTSS m32, ymm{k}{z} - if isM32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x18) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VBROADCASTSS") - } - return p -} - -// VCMPPD performs "Compare Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VCMPPD -// Supported forms : (11 forms) -// -// * VCMPPD imm8, xmm, xmm, xmm [AVX] -// * VCMPPD imm8, m128, xmm, xmm [AVX] -// * VCMPPD imm8, ymm, ymm, ymm [AVX] -// * VCMPPD imm8, m256, ymm, ymm [AVX] -// * VCMPPD imm8, m512/m64bcst, zmm, k{k} [AVX512F] -// * VCMPPD imm8, {sae}, zmm, zmm, k{k} [AVX512F] -// * VCMPPD imm8, zmm, zmm, k{k} [AVX512F] -// * VCMPPD imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VCMPPD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VCMPPD imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VCMPPD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VCMPPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCMPPD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VCMPPD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VCMPPD takes 4 or 5 operands") - } - // VCMPPD imm8, xmm, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, m128, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, ymm, ymm, ymm - if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, m256, ymm, ymm - if len(vv) == 0 && isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, m512/m64bcst, zmm, k{k} - if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, {sae}, zmm, zmm, k{k} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isKk(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, zmm, zmm, k{k} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, m128/m64bcst, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, xmm, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, m256/m64bcst, ymm, k{k} - if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPD imm8, ymm, ymm, k{k} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCMPPD") - } - return p -} - -// VCMPPS performs "Compare Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VCMPPS -// Supported forms : (11 forms) -// -// * VCMPPS imm8, xmm, xmm, xmm [AVX] -// * VCMPPS imm8, m128, xmm, xmm [AVX] -// * VCMPPS imm8, ymm, ymm, ymm [AVX] -// * VCMPPS imm8, m256, ymm, ymm [AVX] -// * VCMPPS imm8, m512/m32bcst, zmm, k{k} [AVX512F] -// * VCMPPS imm8, {sae}, zmm, zmm, k{k} [AVX512F] -// * VCMPPS imm8, zmm, zmm, k{k} [AVX512F] -// * VCMPPS imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VCMPPS imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VCMPPS imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VCMPPS imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VCMPPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCMPPS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VCMPPS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VCMPPS takes 4 or 5 operands") - } - // VCMPPS imm8, xmm, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, m128, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, ymm, ymm, ymm - if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, m256, ymm, ymm - if len(vv) == 0 && isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, m512/m32bcst, zmm, k{k} - if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, {sae}, zmm, zmm, k{k} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isKk(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7c ^ (hlcode(v[3]) << 3)) - m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, zmm, zmm, k{k} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, m128/m32bcst, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, xmm, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, m256/m32bcst, ymm, k{k} - if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPPS imm8, ymm, ymm, k{k} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCMPPS") - } - return p -} - -// VCMPSD performs "Compare Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VCMPSD -// Supported forms : (5 forms) -// -// * VCMPSD imm8, xmm, xmm, xmm [AVX] -// * VCMPSD imm8, m64, xmm, xmm [AVX] -// * VCMPSD imm8, m64, xmm, k{k} [AVX512F] -// * VCMPSD imm8, {sae}, xmm, xmm, k{k} [AVX512F] -// * VCMPSD imm8, xmm, xmm, k{k} [AVX512F] -// -func (self *Program) VCMPSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCMPSD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VCMPSD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VCMPSD takes 4 or 5 operands") - } - // VCMPSD imm8, xmm, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSD imm8, m64, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSD imm8, m64, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSD imm8, {sae}, xmm, xmm, k{k} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isKk(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xff ^ (hlcode(v[3]) << 3)) - m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSD imm8, xmm, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCMPSD") - } - return p -} - -// VCMPSS performs "Compare Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VCMPSS -// Supported forms : (5 forms) -// -// * VCMPSS imm8, xmm, xmm, xmm [AVX] -// * VCMPSS imm8, m32, xmm, xmm [AVX] -// * VCMPSS imm8, m32, xmm, k{k} [AVX512F] -// * VCMPSS imm8, {sae}, xmm, xmm, k{k} [AVX512F] -// * VCMPSS imm8, xmm, xmm, k{k} [AVX512F] -// -func (self *Program) VCMPSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCMPSS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VCMPSS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VCMPSS takes 4 or 5 operands") - } - // VCMPSS imm8, xmm, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSS imm8, m32, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSS imm8, m32, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0xc2) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSS imm8, {sae}, xmm, xmm, k{k} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isKk(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7e ^ (hlcode(v[3]) << 3)) - m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCMPSS imm8, xmm, xmm, k{k} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCMPSS") - } - return p -} - -// VCOMISD performs "Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : VCOMISD -// Supported forms : (5 forms) -// -// * VCOMISD xmm, xmm [AVX] -// * VCOMISD m64, xmm [AVX] -// * VCOMISD m64, xmm [AVX512F] -// * VCOMISD {sae}, xmm, xmm [AVX512F] -// * VCOMISD xmm, xmm [AVX512F] -// -func (self *Program) VCOMISD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCOMISD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCOMISD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCOMISD takes 2 or 3 operands") - } - // VCOMISD xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCOMISD m64, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCOMISD m64, xmm - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2f) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCOMISD {sae}, xmm, xmm - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit(0x18) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCOMISD xmm, xmm - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit(0x48) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCOMISD") - } - return p -} - -// VCOMISS performs "Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : VCOMISS -// Supported forms : (5 forms) -// -// * VCOMISS xmm, xmm [AVX] -// * VCOMISS m32, xmm [AVX] -// * VCOMISS m32, xmm [AVX512F] -// * VCOMISS {sae}, xmm, xmm [AVX512F] -// * VCOMISS xmm, xmm [AVX512F] -// -func (self *Program) VCOMISS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCOMISS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCOMISS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCOMISS takes 2 or 3 operands") - } - // VCOMISS xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCOMISS m32, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCOMISS m32, xmm - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2f) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCOMISS {sae}, xmm, xmm - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit(0x18) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCOMISS xmm, xmm - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit(0x48) - m.emit(0x2f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCOMISS") - } - return p -} - -// VCOMPRESSPD performs "Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register". -// -// Mnemonic : VCOMPRESSPD -// Supported forms : (6 forms) -// -// * VCOMPRESSPD zmm, zmm{k}{z} [AVX512F] -// * VCOMPRESSPD zmm, m512{k}{z} [AVX512F] -// * VCOMPRESSPD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCOMPRESSPD xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VCOMPRESSPD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VCOMPRESSPD ymm, m256{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCOMPRESSPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VCOMPRESSPD", 2, Operands { v0, v1 }) - // VCOMPRESSPD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VCOMPRESSPD zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8a) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VCOMPRESSPD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VCOMPRESSPD xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8a) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VCOMPRESSPD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VCOMPRESSPD ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8a) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VCOMPRESSPD") - } - return p -} - -// VCOMPRESSPS performs "Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register". -// -// Mnemonic : VCOMPRESSPS -// Supported forms : (6 forms) -// -// * VCOMPRESSPS zmm, zmm{k}{z} [AVX512F] -// * VCOMPRESSPS zmm, m512{k}{z} [AVX512F] -// * VCOMPRESSPS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCOMPRESSPS xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VCOMPRESSPS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VCOMPRESSPS ymm, m256{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCOMPRESSPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VCOMPRESSPS", 2, Operands { v0, v1 }) - // VCOMPRESSPS zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VCOMPRESSPS zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8a) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VCOMPRESSPS xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VCOMPRESSPS xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8a) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VCOMPRESSPS ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x8a) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VCOMPRESSPS ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8a) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VCOMPRESSPS") - } - return p -} - -// VCVTDQ2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". -// -// Mnemonic : VCVTDQ2PD -// Supported forms : (10 forms) -// -// * VCVTDQ2PD xmm, xmm [AVX] -// * VCVTDQ2PD m64, xmm [AVX] -// * VCVTDQ2PD xmm, ymm [AVX] -// * VCVTDQ2PD m128, ymm [AVX] -// * VCVTDQ2PD m256/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTDQ2PD ymm, zmm{k}{z} [AVX512F] -// * VCVTDQ2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTDQ2PD m128/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTDQ2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTDQ2PD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTDQ2PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VCVTDQ2PD", 2, Operands { v0, v1 }) - // VCVTDQ2PD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTDQ2PD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), v[0], 0) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PD m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTDQ2PD m256/m32bcst, zmm{k}{z} - if isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTDQ2PD ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PD m64/m32bcst, xmm{k}{z} - if isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTDQ2PD m128/m32bcst, ymm{k}{z} - if isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTDQ2PD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTDQ2PD") - } - return p -} - -// VCVTDQ2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". -// -// Mnemonic : VCVTDQ2PS -// Supported forms : (11 forms) -// -// * VCVTDQ2PS xmm, xmm [AVX] -// * VCVTDQ2PS m128, xmm [AVX] -// * VCVTDQ2PS ymm, ymm [AVX] -// * VCVTDQ2PS m256, ymm [AVX] -// * VCVTDQ2PS m512/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTDQ2PS {er}, zmm, zmm{k}{z} [AVX512F] -// * VCVTDQ2PS zmm, zmm{k}{z} [AVX512F] -// * VCVTDQ2PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTDQ2PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTDQ2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTDQ2PS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTDQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTDQ2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTDQ2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTDQ2PS takes 2 or 3 operands") - } - // VCVTDQ2PS xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PS m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTDQ2PS ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PS m256, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTDQ2PS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTDQ2PS {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTDQ2PS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PS m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTDQ2PS m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTDQ2PS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTDQ2PS ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTDQ2PS") - } - return p -} - -// VCVTPD2DQ performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : VCVTPD2DQ -// Supported forms : (11 forms) -// -// * VCVTPD2DQ xmm, xmm [AVX] -// * VCVTPD2DQ ymm, xmm [AVX] -// * VCVTPD2DQ m128, xmm [AVX] -// * VCVTPD2DQ m256, xmm [AVX] -// * VCVTPD2DQ m512/m64bcst, ymm{k}{z} [AVX512F] -// * VCVTPD2DQ {er}, zmm, ymm{k}{z} [AVX512F] -// * VCVTPD2DQ zmm, ymm{k}{z} [AVX512F] -// * VCVTPD2DQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2DQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2DQ ymm, xmm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPD2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPD2DQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPD2DQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPD2DQ takes 2 or 3 operands") - } - // VCVTPD2DQ xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), v[0], 0) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2DQ ymm, xmm - if len(vv) == 0 && isYMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[1]), v[0], 0) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2DQ m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPD2DQ m256, xmm - if len(vv) == 0 && isM256(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPD2DQ m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPD2DQ {er}, zmm, ymm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPD2DQ zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2DQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPD2DQ m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPD2DQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2DQ ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPD2DQ") - } - return p -} - -// VCVTPD2PS performs "Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values". -// -// Mnemonic : VCVTPD2PS -// Supported forms : (11 forms) -// -// * VCVTPD2PS xmm, xmm [AVX] -// * VCVTPD2PS ymm, xmm [AVX] -// * VCVTPD2PS m128, xmm [AVX] -// * VCVTPD2PS m256, xmm [AVX] -// * VCVTPD2PS m512/m64bcst, ymm{k}{z} [AVX512F] -// * VCVTPD2PS {er}, zmm, ymm{k}{z} [AVX512F] -// * VCVTPD2PS zmm, ymm{k}{z} [AVX512F] -// * VCVTPD2PS m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2PS m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2PS ymm, xmm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPD2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPD2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPD2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPD2PS takes 2 or 3 operands") - } - // VCVTPD2PS xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2PS ymm, xmm - if len(vv) == 0 && isYMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2PS m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPD2PS m256, xmm - if len(vv) == 0 && isM256(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPD2PS m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPD2PS {er}, zmm, ymm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPD2PS zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2PS m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPD2PS m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPD2PS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2PS ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPD2PS") - } - return p -} - -// VCVTPD2QQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers". -// -// Mnemonic : VCVTPD2QQ -// Supported forms : (7 forms) -// -// * VCVTPD2QQ m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VCVTPD2QQ {er}, zmm, zmm{k}{z} [AVX512DQ] -// * VCVTPD2QQ zmm, zmm{k}{z} [AVX512DQ] -// * VCVTPD2QQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPD2QQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPD2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPD2QQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTPD2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPD2QQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPD2QQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPD2QQ takes 2 or 3 operands") - } - // VCVTPD2QQ m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7b) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPD2QQ {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPD2QQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2QQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7b) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPD2QQ m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPD2QQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2QQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPD2QQ") - } - return p -} - -// VCVTPD2UDQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers". -// -// Mnemonic : VCVTPD2UDQ -// Supported forms : (7 forms) -// -// * VCVTPD2UDQ m512/m64bcst, ymm{k}{z} [AVX512F] -// * VCVTPD2UDQ {er}, zmm, ymm{k}{z} [AVX512F] -// * VCVTPD2UDQ zmm, ymm{k}{z} [AVX512F] -// * VCVTPD2UDQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2UDQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPD2UDQ ymm, xmm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPD2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPD2UDQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPD2UDQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPD2UDQ takes 2 or 3 operands") - } - // VCVTPD2UDQ m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPD2UDQ {er}, zmm, ymm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPD2UDQ zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2UDQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPD2UDQ m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPD2UDQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2UDQ ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPD2UDQ") - } - return p -} - -// VCVTPD2UQQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers". -// -// Mnemonic : VCVTPD2UQQ -// Supported forms : (7 forms) -// -// * VCVTPD2UQQ m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VCVTPD2UQQ {er}, zmm, zmm{k}{z} [AVX512DQ] -// * VCVTPD2UQQ zmm, zmm{k}{z} [AVX512DQ] -// * VCVTPD2UQQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPD2UQQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPD2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPD2UQQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTPD2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPD2UQQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPD2UQQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPD2UQQ takes 2 or 3 operands") - } - // VCVTPD2UQQ m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPD2UQQ {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPD2UQQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2UQQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPD2UQQ m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPD2UQQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPD2UQQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPD2UQQ") - } - return p -} - -// VCVTPH2PS performs "Convert Half-Precision FP Values to Single-Precision FP Values". -// -// Mnemonic : VCVTPH2PS -// Supported forms : (11 forms) -// -// * VCVTPH2PS xmm, xmm [F16C] -// * VCVTPH2PS m64, xmm [F16C] -// * VCVTPH2PS xmm, ymm [F16C] -// * VCVTPH2PS m128, ymm [F16C] -// * VCVTPH2PS m256, zmm{k}{z} [AVX512F] -// * VCVTPH2PS {sae}, ymm, zmm{k}{z} [AVX512F] -// * VCVTPH2PS ymm, zmm{k}{z} [AVX512F] -// * VCVTPH2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPH2PS xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTPH2PS m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPH2PS m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPH2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPH2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPH2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPH2PS takes 2 or 3 operands") - } - // VCVTPH2PS xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPH2PS m64, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPH2PS xmm, ymm - if len(vv) == 0 && isXMM(v0) && isYMM(v1) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPH2PS m128, ymm - if len(vv) == 0 && isM128(v0) && isYMM(v1) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPH2PS m256, zmm{k}{z} - if len(vv) == 0 && isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPH2PS {sae}, ymm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x13) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPH2PS ymm, zmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPH2PS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPH2PS xmm, ymm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x13) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPH2PS m64, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTPH2PS m128, ymm{k}{z} - if len(vv) == 0 && isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPH2PS") - } - return p -} - -// VCVTPS2DQ performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : VCVTPS2DQ -// Supported forms : (11 forms) -// -// * VCVTPS2DQ xmm, xmm [AVX] -// * VCVTPS2DQ m128, xmm [AVX] -// * VCVTPS2DQ ymm, ymm [AVX] -// * VCVTPS2DQ m256, ymm [AVX] -// * VCVTPS2DQ m512/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTPS2DQ {er}, zmm, zmm{k}{z} [AVX512F] -// * VCVTPS2DQ zmm, zmm{k}{z} [AVX512F] -// * VCVTPS2DQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2DQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2DQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPS2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPS2DQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPS2DQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPS2DQ takes 2 or 3 operands") - } - // VCVTPS2DQ xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2DQ m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPS2DQ ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2DQ m256, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPS2DQ m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPS2DQ {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPS2DQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2DQ m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPS2DQ m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPS2DQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2DQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPS2DQ") - } - return p -} - -// VCVTPS2PD performs "Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values". -// -// Mnemonic : VCVTPS2PD -// Supported forms : (11 forms) -// -// * VCVTPS2PD xmm, xmm [AVX] -// * VCVTPS2PD m64, xmm [AVX] -// * VCVTPS2PD xmm, ymm [AVX] -// * VCVTPS2PD m128, ymm [AVX] -// * VCVTPS2PD m256/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTPS2PD {sae}, ymm, zmm{k}{z} [AVX512F] -// * VCVTPS2PD ymm, zmm{k}{z} [AVX512F] -// * VCVTPS2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2PD m128/m32bcst, ymm{k}{z} [AVX512VL] -// * VCVTPS2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2PD xmm, ymm{k}{z} [AVX512VL] -// -func (self *Program) VCVTPS2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPS2PD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPS2PD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPS2PD takes 2 or 3 operands") - } - // VCVTPS2PD xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2PD m64, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPS2PD xmm, ymm - if len(vv) == 0 && isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2PD m128, ymm - if len(vv) == 0 && isM128(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTPS2PD m256/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPS2PD {sae}, ymm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPS2PD ymm, zmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2PD m64/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTPS2PD m128/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPS2PD xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2PD xmm, ymm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPS2PD") - } - return p -} - -// VCVTPS2PH performs "Convert Single-Precision FP value to Half-Precision FP value". -// -// Mnemonic : VCVTPS2PH -// Supported forms : (11 forms) -// -// * VCVTPS2PH imm8, xmm, xmm [F16C] -// * VCVTPS2PH imm8, ymm, xmm [F16C] -// * VCVTPS2PH imm8, xmm, m64 [F16C] -// * VCVTPS2PH imm8, ymm, m128 [F16C] -// * VCVTPS2PH imm8, zmm, m256{k}{z} [AVX512F] -// * VCVTPS2PH imm8, {sae}, zmm, ymm{k}{z} [AVX512F] -// * VCVTPS2PH imm8, zmm, ymm{k}{z} [AVX512F] -// * VCVTPS2PH imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2PH imm8, xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2PH imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2PH imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPS2PH(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPS2PH", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTPS2PH", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTPS2PH takes 3 or 4 operands") - } - // VCVTPS2PH imm8, xmm, xmm - if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, ymm, xmm - if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isXMM(v2) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x7d) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, xmm, m64 - if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isM64(v2) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, ymm, m128 - if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isM128(v2) { - self.require(ISA_F16C) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, zmm, m256{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isM256kz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[2]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, {sae}, zmm, ymm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isYMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[3]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[3])) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, zmm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, xmm, m64{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isM64kz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[2]), 8) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, ymm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VCVTPS2PH imm8, ymm, m128{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPS2PH") - } - return p -} - -// VCVTPS2QQ performs "Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values". -// -// Mnemonic : VCVTPS2QQ -// Supported forms : (7 forms) -// -// * VCVTPS2QQ m256/m32bcst, zmm{k}{z} [AVX512DQ] -// * VCVTPS2QQ {er}, ymm, zmm{k}{z} [AVX512DQ] -// * VCVTPS2QQ ymm, zmm{k}{z} [AVX512DQ] -// * VCVTPS2QQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPS2QQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPS2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPS2QQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTPS2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPS2QQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPS2QQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPS2QQ takes 2 or 3 operands") - } - // VCVTPS2QQ m256/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPS2QQ {er}, ymm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPS2QQ ymm, zmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2QQ m64/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7b) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTPS2QQ m128/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7b) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPS2QQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2QQ xmm, ymm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPS2QQ") - } - return p -} - -// VCVTPS2UDQ performs "Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values". -// -// Mnemonic : VCVTPS2UDQ -// Supported forms : (7 forms) -// -// * VCVTPS2UDQ m512/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTPS2UDQ {er}, zmm, zmm{k}{z} [AVX512F] -// * VCVTPS2UDQ zmm, zmm{k}{z} [AVX512F] -// * VCVTPS2UDQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2UDQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTPS2UDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTPS2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPS2UDQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPS2UDQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPS2UDQ takes 2 or 3 operands") - } - // VCVTPS2UDQ m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTPS2UDQ {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPS2UDQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2UDQ m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPS2UDQ m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPS2UDQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2UDQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPS2UDQ") - } - return p -} - -// VCVTPS2UQQ performs "Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values". -// -// Mnemonic : VCVTPS2UQQ -// Supported forms : (7 forms) -// -// * VCVTPS2UQQ m256/m32bcst, zmm{k}{z} [AVX512DQ] -// * VCVTPS2UQQ {er}, ymm, zmm{k}{z} [AVX512DQ] -// * VCVTPS2UQQ ymm, zmm{k}{z} [AVX512DQ] -// * VCVTPS2UQQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPS2UQQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPS2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTPS2UQQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTPS2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTPS2UQQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTPS2UQQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTPS2UQQ takes 2 or 3 operands") - } - // VCVTPS2UQQ m256/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTPS2UQQ {er}, ymm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTPS2UQQ ymm, zmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2UQQ m64/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTPS2UQQ m128/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTPS2UQQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTPS2UQQ xmm, ymm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTPS2UQQ") - } - return p -} - -// VCVTQQ2PD performs "Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VCVTQQ2PD -// Supported forms : (7 forms) -// -// * VCVTQQ2PD m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VCVTQQ2PD {er}, zmm, zmm{k}{z} [AVX512DQ] -// * VCVTQQ2PD zmm, zmm{k}{z} [AVX512DQ] -// * VCVTQQ2PD m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTQQ2PD m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTQQ2PD xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTQQ2PD ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTQQ2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTQQ2PD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTQQ2PD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTQQ2PD takes 2 or 3 operands") - } - // VCVTQQ2PD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTQQ2PD {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTQQ2PD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTQQ2PD m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTQQ2PD m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTQQ2PD xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTQQ2PD ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTQQ2PD") - } - return p -} - -// VCVTQQ2PS performs "Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VCVTQQ2PS -// Supported forms : (7 forms) -// -// * VCVTQQ2PS m512/m64bcst, ymm{k}{z} [AVX512DQ] -// * VCVTQQ2PS {er}, zmm, ymm{k}{z} [AVX512DQ] -// * VCVTQQ2PS zmm, ymm{k}{z} [AVX512DQ] -// * VCVTQQ2PS m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTQQ2PS m256/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTQQ2PS xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTQQ2PS ymm, xmm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTQQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTQQ2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTQQ2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTQQ2PS takes 2 or 3 operands") - } - // VCVTQQ2PS m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTQQ2PS {er}, zmm, ymm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTQQ2PS zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTQQ2PS m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTQQ2PS m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTQQ2PS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTQQ2PS ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTQQ2PS") - } - return p -} - -// VCVTSD2SI performs "Convert Scalar Double-Precision FP Value to Integer". -// -// Mnemonic : VCVTSD2SI -// Supported forms : (10 forms) -// -// * VCVTSD2SI xmm, r32 [AVX] -// * VCVTSD2SI m64, r32 [AVX] -// * VCVTSD2SI xmm, r64 [AVX] -// * VCVTSD2SI m64, r64 [AVX] -// * VCVTSD2SI m64, r32 [AVX512F] -// * VCVTSD2SI m64, r64 [AVX512F] -// * VCVTSD2SI {er}, xmm, r32 [AVX512F] -// * VCVTSD2SI {er}, xmm, r64 [AVX512F] -// * VCVTSD2SI xmm, r32 [AVX512F] -// * VCVTSD2SI xmm, r64 [AVX512F] -// -func (self *Program) VCVTSD2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSD2SI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTSD2SI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTSD2SI takes 2 or 3 operands") - } - // VCVTSD2SI xmm, r32 - if len(vv) == 0 && isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), v[0], 0) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSD2SI m64, r32 - if len(vv) == 0 && isM64(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTSD2SI xmm, r64 - if len(vv) == 0 && isXMM(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfb) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSD2SI m64, r64 - if len(vv) == 0 && isM64(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x83, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTSD2SI m64, r32 - if len(vv) == 0 && isM64(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTSD2SI m64, r64 - if len(vv) == 0 && isM64(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTSD2SI {er}, xmm, r32 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSD2SI {er}, xmm, r64 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSD2SI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit(0x48) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSD2SI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit(0x48) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSD2SI") - } - return p -} - -// VCVTSD2SS performs "Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value". -// -// Mnemonic : VCVTSD2SS -// Supported forms : (5 forms) -// -// * VCVTSD2SS xmm, xmm, xmm [AVX] -// * VCVTSD2SS m64, xmm, xmm [AVX] -// * VCVTSD2SS m64, xmm, xmm{k}{z} [AVX512F] -// * VCVTSD2SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VCVTSD2SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VCVTSD2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSD2SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTSD2SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTSD2SS takes 3 or 4 operands") - } - // VCVTSD2SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSD2SS m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VCVTSD2SS m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VCVTSD2SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTSD2SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSD2SS") - } - return p -} - -// VCVTSD2USI performs "Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer". -// -// Mnemonic : VCVTSD2USI -// Supported forms : (6 forms) -// -// * VCVTSD2USI m64, r32 [AVX512F] -// * VCVTSD2USI m64, r64 [AVX512F] -// * VCVTSD2USI {er}, xmm, r32 [AVX512F] -// * VCVTSD2USI {er}, xmm, r64 [AVX512F] -// * VCVTSD2USI xmm, r32 [AVX512F] -// * VCVTSD2USI xmm, r64 [AVX512F] -// -func (self *Program) VCVTSD2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSD2USI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTSD2USI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTSD2USI takes 2 or 3 operands") - } - // VCVTSD2USI m64, r32 - if len(vv) == 0 && isM64(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTSD2USI m64, r64 - if len(vv) == 0 && isM64(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTSD2USI {er}, xmm, r32 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSD2USI {er}, xmm, r64 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSD2USI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit(0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSD2USI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit(0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSD2USI") - } - return p -} - -// VCVTSI2SD performs "Convert Dword Integer to Scalar Double-Precision FP Value". -// -// Mnemonic : VCVTSI2SD -// Supported forms : (9 forms) -// -// * VCVTSI2SD r32, xmm, xmm [AVX] -// * VCVTSI2SD r64, xmm, xmm [AVX] -// * VCVTSI2SD m32, xmm, xmm [AVX] -// * VCVTSI2SD m64, xmm, xmm [AVX] -// * VCVTSI2SD r32, xmm, xmm [AVX512F] -// * VCVTSI2SD m32, xmm, xmm [AVX512F] -// * VCVTSI2SD m64, xmm, xmm [AVX512F] -// * VCVTSI2SD {er}, r64, xmm, xmm [AVX512F] -// * VCVTSI2SD r64, xmm, xmm [AVX512F] -// -func (self *Program) VCVTSI2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSI2SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTSI2SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTSI2SD takes 3 or 4 operands") - } - // VCVTSI2SD r32, xmm, xmm - if len(vv) == 0 && isReg32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSI2SD r64, xmm, xmm - if len(vv) == 0 && isReg64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfb ^ (hlcode(v[1]) << 3)) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSI2SD m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VCVTSI2SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VCVTSI2SD r32, xmm, xmm - if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSI2SD m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VCVTSI2SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VCVTSI2SD {er}, r64, xmm, xmm - if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTSI2SD r64, xmm, xmm - if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSI2SD") - } - return p -} - -// VCVTSI2SS performs "Convert Dword Integer to Scalar Single-Precision FP Value". -// -// Mnemonic : VCVTSI2SS -// Supported forms : (10 forms) -// -// * VCVTSI2SS r32, xmm, xmm [AVX] -// * VCVTSI2SS r64, xmm, xmm [AVX] -// * VCVTSI2SS m32, xmm, xmm [AVX] -// * VCVTSI2SS m64, xmm, xmm [AVX] -// * VCVTSI2SS m32, xmm, xmm [AVX512F] -// * VCVTSI2SS m64, xmm, xmm [AVX512F] -// * VCVTSI2SS {er}, r32, xmm, xmm [AVX512F] -// * VCVTSI2SS {er}, r64, xmm, xmm [AVX512F] -// * VCVTSI2SS r32, xmm, xmm [AVX512F] -// * VCVTSI2SS r64, xmm, xmm [AVX512F] -// -func (self *Program) VCVTSI2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSI2SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTSI2SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTSI2SS takes 3 or 4 operands") - } - // VCVTSI2SS r32, xmm, xmm - if len(vv) == 0 && isReg32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSI2SS r64, xmm, xmm - if len(vv) == 0 && isReg64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfa ^ (hlcode(v[1]) << 3)) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSI2SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VCVTSI2SS m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x82, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VCVTSI2SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VCVTSI2SS m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VCVTSI2SS {er}, r32, xmm, xmm - if len(vv) == 1 && isER(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTSI2SS {er}, r64, xmm, xmm - if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfe ^ (hlcode(v[2]) << 3)) - m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTSI2SS r32, xmm, xmm - if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSI2SS r64, xmm, xmm - if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSI2SS") - } - return p -} - -// VCVTSS2SD performs "Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value". -// -// Mnemonic : VCVTSS2SD -// Supported forms : (5 forms) -// -// * VCVTSS2SD xmm, xmm, xmm [AVX] -// * VCVTSS2SD m32, xmm, xmm [AVX] -// * VCVTSS2SD m32, xmm, xmm{k}{z} [AVX512F] -// * VCVTSS2SD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VCVTSS2SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VCVTSS2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSS2SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTSS2SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTSS2SD takes 3 or 4 operands") - } - // VCVTSS2SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTSS2SD m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VCVTSS2SD m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5a) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VCVTSS2SD {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTSS2SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSS2SD") - } - return p -} - -// VCVTSS2SI performs "Convert Scalar Single-Precision FP Value to Dword Integer". -// -// Mnemonic : VCVTSS2SI -// Supported forms : (10 forms) -// -// * VCVTSS2SI xmm, r32 [AVX] -// * VCVTSS2SI m32, r32 [AVX] -// * VCVTSS2SI xmm, r64 [AVX] -// * VCVTSS2SI m32, r64 [AVX] -// * VCVTSS2SI m32, r32 [AVX512F] -// * VCVTSS2SI m32, r64 [AVX512F] -// * VCVTSS2SI {er}, xmm, r32 [AVX512F] -// * VCVTSS2SI {er}, xmm, r64 [AVX512F] -// * VCVTSS2SI xmm, r32 [AVX512F] -// * VCVTSS2SI xmm, r64 [AVX512F] -// -func (self *Program) VCVTSS2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSS2SI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTSS2SI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTSS2SI takes 2 or 3 operands") - } - // VCVTSS2SI xmm, r32 - if len(vv) == 0 && isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSS2SI m32, r32 - if len(vv) == 0 && isM32(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTSS2SI xmm, r64 - if len(vv) == 0 && isXMM(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfa) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSS2SI m32, r64 - if len(vv) == 0 && isM32(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x82, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTSS2SI m32, r32 - if len(vv) == 0 && isM32(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTSS2SI m32, r64 - if len(vv) == 0 && isM32(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2d) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTSS2SI {er}, xmm, r32 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSS2SI {er}, xmm, r64 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSS2SI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSS2SI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSS2SI") - } - return p -} - -// VCVTSS2USI performs "Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer". -// -// Mnemonic : VCVTSS2USI -// Supported forms : (6 forms) -// -// * VCVTSS2USI m32, r32 [AVX512F] -// * VCVTSS2USI m32, r64 [AVX512F] -// * VCVTSS2USI {er}, xmm, r32 [AVX512F] -// * VCVTSS2USI {er}, xmm, r64 [AVX512F] -// * VCVTSS2USI xmm, r32 [AVX512F] -// * VCVTSS2USI xmm, r64 [AVX512F] -// -func (self *Program) VCVTSS2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTSS2USI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTSS2USI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTSS2USI takes 2 or 3 operands") - } - // VCVTSS2USI m32, r32 - if len(vv) == 0 && isM32(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTSS2USI m32, r64 - if len(vv) == 0 && isM32(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTSS2USI {er}, xmm, r32 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSS2USI {er}, xmm, r64 - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe) - m.emit((vcode(v[0]) << 5) | 0x18) - m.emit(0x79) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTSS2USI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTSS2USI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTSS2USI") - } - return p -} - -// VCVTTPD2DQ performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : VCVTTPD2DQ -// Supported forms : (11 forms) -// -// * VCVTTPD2DQ xmm, xmm [AVX] -// * VCVTTPD2DQ ymm, xmm [AVX] -// * VCVTTPD2DQ m128, xmm [AVX] -// * VCVTTPD2DQ m256, xmm [AVX] -// * VCVTTPD2DQ m512/m64bcst, ymm{k}{z} [AVX512F] -// * VCVTTPD2DQ {sae}, zmm, ymm{k}{z} [AVX512F] -// * VCVTTPD2DQ zmm, ymm{k}{z} [AVX512F] -// * VCVTTPD2DQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPD2DQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPD2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPD2DQ ymm, xmm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTTPD2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPD2DQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPD2DQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPD2DQ takes 2 or 3 operands") - } - // VCVTTPD2DQ xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2DQ ymm, xmm - if len(vv) == 0 && isYMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2DQ m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTPD2DQ m256, xmm - if len(vv) == 0 && isM256(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTPD2DQ m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTTPD2DQ {sae}, zmm, ymm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPD2DQ zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2DQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPD2DQ m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xe6) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPD2DQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2DQ ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0xe6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPD2DQ") - } - return p -} - -// VCVTTPD2QQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers". -// -// Mnemonic : VCVTTPD2QQ -// Supported forms : (7 forms) -// -// * VCVTTPD2QQ m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VCVTTPD2QQ {sae}, zmm, zmm{k}{z} [AVX512DQ] -// * VCVTTPD2QQ zmm, zmm{k}{z} [AVX512DQ] -// * VCVTTPD2QQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPD2QQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPD2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPD2QQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTTPD2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPD2QQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPD2QQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPD2QQ takes 2 or 3 operands") - } - // VCVTTPD2QQ m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTTPD2QQ {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPD2QQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2QQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPD2QQ m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPD2QQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2QQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPD2QQ") - } - return p -} - -// VCVTTPD2UDQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers". -// -// Mnemonic : VCVTTPD2UDQ -// Supported forms : (7 forms) -// -// * VCVTTPD2UDQ m512/m64bcst, ymm{k}{z} [AVX512F] -// * VCVTTPD2UDQ {sae}, zmm, ymm{k}{z} [AVX512F] -// * VCVTTPD2UDQ zmm, ymm{k}{z} [AVX512F] -// * VCVTTPD2UDQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPD2UDQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPD2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPD2UDQ ymm, xmm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTTPD2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPD2UDQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPD2UDQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPD2UDQ takes 2 or 3 operands") - } - // VCVTTPD2UDQ m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTTPD2UDQ {sae}, zmm, ymm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPD2UDQ zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2UDQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPD2UDQ m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPD2UDQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2UDQ ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfc) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPD2UDQ") - } - return p -} - -// VCVTTPD2UQQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers". -// -// Mnemonic : VCVTTPD2UQQ -// Supported forms : (7 forms) -// -// * VCVTTPD2UQQ m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VCVTTPD2UQQ {sae}, zmm, zmm{k}{z} [AVX512DQ] -// * VCVTTPD2UQQ zmm, zmm{k}{z} [AVX512DQ] -// * VCVTTPD2UQQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPD2UQQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPD2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPD2UQQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTTPD2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPD2UQQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPD2UQQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPD2UQQ takes 2 or 3 operands") - } - // VCVTTPD2UQQ m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTTPD2UQQ {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPD2UQQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2UQQ m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPD2UQQ m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPD2UQQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPD2UQQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPD2UQQ") - } - return p -} - -// VCVTTPS2DQ performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". -// -// Mnemonic : VCVTTPS2DQ -// Supported forms : (11 forms) -// -// * VCVTTPS2DQ xmm, xmm [AVX] -// * VCVTTPS2DQ m128, xmm [AVX] -// * VCVTTPS2DQ ymm, ymm [AVX] -// * VCVTTPS2DQ m256, ymm [AVX] -// * VCVTTPS2DQ m512/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTTPS2DQ {sae}, zmm, zmm{k}{z} [AVX512F] -// * VCVTTPS2DQ zmm, zmm{k}{z} [AVX512F] -// * VCVTTPS2DQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPS2DQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPS2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPS2DQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTTPS2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPS2DQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPS2DQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPS2DQ takes 2 or 3 operands") - } - // VCVTTPS2DQ xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2DQ m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTPS2DQ ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), v[0], 0) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2DQ m256, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), addr(v[0]), 0) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTPS2DQ m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTTPS2DQ {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPS2DQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2DQ m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPS2DQ m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x5b) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPS2DQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2DQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x5b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPS2DQ") - } - return p -} - -// VCVTTPS2QQ performs "Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values". -// -// Mnemonic : VCVTTPS2QQ -// Supported forms : (7 forms) -// -// * VCVTTPS2QQ m256/m32bcst, zmm{k}{z} [AVX512DQ] -// * VCVTTPS2QQ {sae}, ymm, zmm{k}{z} [AVX512DQ] -// * VCVTTPS2QQ ymm, zmm{k}{z} [AVX512DQ] -// * VCVTTPS2QQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPS2QQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPS2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPS2QQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTTPS2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPS2QQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPS2QQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPS2QQ takes 2 or 3 operands") - } - // VCVTTPS2QQ m256/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPS2QQ {sae}, ymm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPS2QQ ymm, zmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2QQ m64/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTTPS2QQ m128/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPS2QQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2QQ xmm, ymm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPS2QQ") - } - return p -} - -// VCVTTPS2UDQ performs "Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values". -// -// Mnemonic : VCVTTPS2UDQ -// Supported forms : (7 forms) -// -// * VCVTTPS2UDQ m512/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTTPS2UDQ {sae}, zmm, zmm{k}{z} [AVX512F] -// * VCVTTPS2UDQ zmm, zmm{k}{z} [AVX512F] -// * VCVTTPS2UDQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPS2UDQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPS2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTTPS2UDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTTPS2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPS2UDQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPS2UDQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPS2UDQ takes 2 or 3 operands") - } - // VCVTTPS2UDQ m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTTPS2UDQ {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPS2UDQ zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2UDQ m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPS2UDQ m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPS2UDQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2UDQ ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPS2UDQ") - } - return p -} - -// VCVTTPS2UQQ performs "Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values". -// -// Mnemonic : VCVTTPS2UQQ -// Supported forms : (7 forms) -// -// * VCVTTPS2UQQ m256/m32bcst, zmm{k}{z} [AVX512DQ] -// * VCVTTPS2UQQ {sae}, ymm, zmm{k}{z} [AVX512DQ] -// * VCVTTPS2UQQ ymm, zmm{k}{z} [AVX512DQ] -// * VCVTTPS2UQQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPS2UQQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPS2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTTPS2UQQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTTPS2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTPS2UQQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTPS2UQQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTPS2UQQ takes 2 or 3 operands") - } - // VCVTTPS2UQQ m256/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTTPS2UQQ {sae}, ymm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTPS2UQQ ymm, zmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2UQQ m64/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTTPS2UQQ m128/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTTPS2UQQ xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTPS2UQQ xmm, ymm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTPS2UQQ") - } - return p -} - -// VCVTTSD2SI performs "Convert with Truncation Scalar Double-Precision FP Value to Signed Integer". -// -// Mnemonic : VCVTTSD2SI -// Supported forms : (10 forms) -// -// * VCVTTSD2SI xmm, r32 [AVX] -// * VCVTTSD2SI m64, r32 [AVX] -// * VCVTTSD2SI xmm, r64 [AVX] -// * VCVTTSD2SI m64, r64 [AVX] -// * VCVTTSD2SI m64, r32 [AVX512F] -// * VCVTTSD2SI m64, r64 [AVX512F] -// * VCVTTSD2SI {sae}, xmm, r32 [AVX512F] -// * VCVTTSD2SI {sae}, xmm, r64 [AVX512F] -// * VCVTTSD2SI xmm, r32 [AVX512F] -// * VCVTTSD2SI xmm, r64 [AVX512F] -// -func (self *Program) VCVTTSD2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTSD2SI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTSD2SI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTSD2SI takes 2 or 3 operands") - } - // VCVTTSD2SI xmm, r32 - if len(vv) == 0 && isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), v[0], 0) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSD2SI m64, r32 - if len(vv) == 0 && isM64(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTSD2SI xmm, r64 - if len(vv) == 0 && isXMM(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfb) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSD2SI m64, r64 - if len(vv) == 0 && isM64(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x83, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTSD2SI m64, r32 - if len(vv) == 0 && isM64(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTTSD2SI m64, r64 - if len(vv) == 0 && isM64(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTTSD2SI {sae}, xmm, r32 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit(0x18) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSD2SI {sae}, xmm, r64 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff) - m.emit(0x18) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSD2SI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit(0x48) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSD2SI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit(0x48) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTSD2SI") - } - return p -} - -// VCVTTSD2USI performs "Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer". -// -// Mnemonic : VCVTTSD2USI -// Supported forms : (6 forms) -// -// * VCVTTSD2USI m64, r32 [AVX512F] -// * VCVTTSD2USI m64, r64 [AVX512F] -// * VCVTTSD2USI {sae}, xmm, r32 [AVX512F] -// * VCVTTSD2USI {sae}, xmm, r64 [AVX512F] -// * VCVTTSD2USI xmm, r32 [AVX512F] -// * VCVTTSD2USI xmm, r64 [AVX512F] -// -func (self *Program) VCVTTSD2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTSD2USI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTSD2USI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTSD2USI takes 2 or 3 operands") - } - // VCVTTSD2USI m64, r32 - if len(vv) == 0 && isM64(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTTSD2USI m64, r64 - if len(vv) == 0 && isM64(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTTSD2USI {sae}, xmm, r32 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit(0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSD2USI {sae}, xmm, r64 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff) - m.emit(0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSD2USI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit(0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSD2USI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit(0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTSD2USI") - } - return p -} - -// VCVTTSS2SI performs "Convert with Truncation Scalar Single-Precision FP Value to Dword Integer". -// -// Mnemonic : VCVTTSS2SI -// Supported forms : (10 forms) -// -// * VCVTTSS2SI xmm, r32 [AVX] -// * VCVTTSS2SI m32, r32 [AVX] -// * VCVTTSS2SI xmm, r64 [AVX] -// * VCVTTSS2SI m32, r64 [AVX] -// * VCVTTSS2SI m32, r32 [AVX512F] -// * VCVTTSS2SI m32, r64 [AVX512F] -// * VCVTTSS2SI {sae}, xmm, r32 [AVX512F] -// * VCVTTSS2SI {sae}, xmm, r64 [AVX512F] -// * VCVTTSS2SI xmm, r32 [AVX512F] -// * VCVTTSS2SI xmm, r64 [AVX512F] -// -func (self *Program) VCVTTSS2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTSS2SI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTSS2SI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTSS2SI takes 2 or 3 operands") - } - // VCVTTSS2SI xmm, r32 - if len(vv) == 0 && isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSS2SI m32, r32 - if len(vv) == 0 && isM32(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTSS2SI xmm, r64 - if len(vv) == 0 && isXMM(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfa) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSS2SI m32, r64 - if len(vv) == 0 && isM32(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x82, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VCVTTSS2SI m32, r32 - if len(vv) == 0 && isM32(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTTSS2SI m32, r64 - if len(vv) == 0 && isM32(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2c) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTTSS2SI {sae}, xmm, r32 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit(0x18) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSS2SI {sae}, xmm, r64 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe) - m.emit(0x18) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSS2SI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSS2SI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTSS2SI") - } - return p -} - -// VCVTTSS2USI performs "Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer". -// -// Mnemonic : VCVTTSS2USI -// Supported forms : (6 forms) -// -// * VCVTTSS2USI m32, r32 [AVX512F] -// * VCVTTSS2USI m32, r64 [AVX512F] -// * VCVTTSS2USI {sae}, xmm, r32 [AVX512F] -// * VCVTTSS2USI {sae}, xmm, r64 [AVX512F] -// * VCVTTSS2USI xmm, r32 [AVX512F] -// * VCVTTSS2USI xmm, r64 [AVX512F] -// -func (self *Program) VCVTTSS2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTTSS2USI", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTTSS2USI", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTTSS2USI takes 2 or 3 operands") - } - // VCVTTSS2USI m32, r32 - if len(vv) == 0 && isM32(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTTSS2USI m32, r64 - if len(vv) == 0 && isM32(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VCVTTSS2USI {sae}, xmm, r32 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit(0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSS2USI {sae}, xmm, r64 - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe) - m.emit(0x18) - m.emit(0x78) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTTSS2USI xmm, r32 - if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTTSS2USI xmm, r64 - if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTTSS2USI") - } - return p -} - -// VCVTUDQ2PD performs "Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VCVTUDQ2PD -// Supported forms : (6 forms) -// -// * VCVTUDQ2PD m256/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTUDQ2PD ymm, zmm{k}{z} [AVX512F] -// * VCVTUDQ2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTUDQ2PD m128/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTUDQ2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTUDQ2PD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTUDQ2PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VCVTUDQ2PD", 2, Operands { v0, v1 }) - // VCVTUDQ2PD m256/m32bcst, zmm{k}{z} - if isM256M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTUDQ2PD ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUDQ2PD m64/m32bcst, xmm{k}{z} - if isM64M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VCVTUDQ2PD m128/m32bcst, ymm{k}{z} - if isM128M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTUDQ2PD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUDQ2PD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTUDQ2PD") - } - return p -} - -// VCVTUDQ2PS performs "Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VCVTUDQ2PS -// Supported forms : (7 forms) -// -// * VCVTUDQ2PS m512/m32bcst, zmm{k}{z} [AVX512F] -// * VCVTUDQ2PS {er}, zmm, zmm{k}{z} [AVX512F] -// * VCVTUDQ2PS zmm, zmm{k}{z} [AVX512F] -// * VCVTUDQ2PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTUDQ2PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VCVTUDQ2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VCVTUDQ2PS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VCVTUDQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTUDQ2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTUDQ2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTUDQ2PS takes 2 or 3 operands") - } - // VCVTUDQ2PS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTUDQ2PS {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTUDQ2PS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUDQ2PS m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTUDQ2PS m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTUDQ2PS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUDQ2PS ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTUDQ2PS") - } - return p -} - -// VCVTUQQ2PD performs "Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VCVTUQQ2PD -// Supported forms : (7 forms) -// -// * VCVTUQQ2PD m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VCVTUQQ2PD {er}, zmm, zmm{k}{z} [AVX512DQ] -// * VCVTUQQ2PD zmm, zmm{k}{z} [AVX512DQ] -// * VCVTUQQ2PD m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTUQQ2PD m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTUQQ2PD xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTUQQ2PD ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTUQQ2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTUQQ2PD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTUQQ2PD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTUQQ2PD takes 2 or 3 operands") - } - // VCVTUQQ2PD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTUQQ2PD {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTUQQ2PD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUQQ2PD m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTUQQ2PD m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTUQQ2PD xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUQQ2PD ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTUQQ2PD") - } - return p -} - -// VCVTUQQ2PS performs "Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VCVTUQQ2PS -// Supported forms : (7 forms) -// -// * VCVTUQQ2PS m512/m64bcst, ymm{k}{z} [AVX512DQ] -// * VCVTUQQ2PS {er}, zmm, ymm{k}{z} [AVX512DQ] -// * VCVTUQQ2PS zmm, ymm{k}{z} [AVX512DQ] -// * VCVTUQQ2PS m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTUQQ2PS m256/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTUQQ2PS xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VCVTUQQ2PS ymm, xmm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VCVTUQQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTUQQ2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VCVTUQQ2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VCVTUQQ2PS takes 2 or 3 operands") - } - // VCVTUQQ2PS m512/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VCVTUQQ2PS {er}, zmm, ymm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VCVTUQQ2PS zmm, ymm{k}{z} - if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUQQ2PS m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VCVTUQQ2PS m256/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x7a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VCVTUQQ2PS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VCVTUQQ2PS ymm, xmm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTUQQ2PS") - } - return p -} - -// VCVTUSI2SD performs "Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VCVTUSI2SD -// Supported forms : (5 forms) -// -// * VCVTUSI2SD r32, xmm, xmm [AVX512F] -// * VCVTUSI2SD m32, xmm, xmm [AVX512F] -// * VCVTUSI2SD m64, xmm, xmm [AVX512F] -// * VCVTUSI2SD {er}, r64, xmm, xmm [AVX512F] -// * VCVTUSI2SD r64, xmm, xmm [AVX512F] -// -func (self *Program) VCVTUSI2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTUSI2SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTUSI2SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTUSI2SD takes 3 or 4 operands") - } - // VCVTUSI2SD r32, xmm, xmm - if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTUSI2SD m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x7b) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VCVTUSI2SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x7b) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VCVTUSI2SD {er}, r64, xmm, xmm - if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTUSI2SD r64, xmm, xmm - if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTUSI2SD") - } - return p -} - -// VCVTUSI2SS performs "Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VCVTUSI2SS -// Supported forms : (6 forms) -// -// * VCVTUSI2SS m32, xmm, xmm [AVX512F] -// * VCVTUSI2SS m64, xmm, xmm [AVX512F] -// * VCVTUSI2SS {er}, r32, xmm, xmm [AVX512F] -// * VCVTUSI2SS {er}, r64, xmm, xmm [AVX512F] -// * VCVTUSI2SS r32, xmm, xmm [AVX512F] -// * VCVTUSI2SS r64, xmm, xmm [AVX512F] -// -func (self *Program) VCVTUSI2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VCVTUSI2SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VCVTUSI2SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VCVTUSI2SS takes 3 or 4 operands") - } - // VCVTUSI2SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x7b) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VCVTUSI2SS m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x7b) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VCVTUSI2SS {er}, r32, xmm, xmm - if len(vv) == 1 && isER(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTUSI2SS {er}, r64, xmm, xmm - if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfe ^ (hlcode(v[2]) << 3)) - m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VCVTUSI2SS r32, xmm, xmm - if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VCVTUSI2SS r64, xmm, xmm - if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VCVTUSI2SS") - } - return p -} - -// VDBPSADBW performs "Double Block Packed Sum-Absolute-Differences on Unsigned Bytes". -// -// Mnemonic : VDBPSADBW -// Supported forms : (6 forms) -// -// * VDBPSADBW imm8, zmm, zmm, zmm{k}{z} [AVX512BW] -// * VDBPSADBW imm8, m512, zmm, zmm{k}{z} [AVX512BW] -// * VDBPSADBW imm8, xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VDBPSADBW imm8, m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VDBPSADBW imm8, ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VDBPSADBW imm8, m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VDBPSADBW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VDBPSADBW", 4, Operands { v0, v1, v2, v3 }) - // VDBPSADBW imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x42) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VDBPSADBW imm8, m512, zmm, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x42) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VDBPSADBW imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x42) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VDBPSADBW imm8, m128, xmm, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x42) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VDBPSADBW imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x42) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VDBPSADBW imm8, m256, ymm, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x42) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDBPSADBW") - } - return p -} - -// VDIVPD performs "Divide Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VDIVPD -// Supported forms : (11 forms) -// -// * VDIVPD xmm, xmm, xmm [AVX] -// * VDIVPD m128, xmm, xmm [AVX] -// * VDIVPD ymm, ymm, ymm [AVX] -// * VDIVPD m256, ymm, ymm [AVX] -// * VDIVPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VDIVPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VDIVPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VDIVPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VDIVPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VDIVPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VDIVPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VDIVPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VDIVPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VDIVPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VDIVPD takes 3 or 4 operands") - } - // VDIVPD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VDIVPD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VDIVPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VDIVPD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VDIVPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VDIVPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VDIVPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDIVPD") - } - return p -} - -// VDIVPS performs "Divide Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VDIVPS -// Supported forms : (11 forms) -// -// * VDIVPS xmm, xmm, xmm [AVX] -// * VDIVPS m128, xmm, xmm [AVX] -// * VDIVPS ymm, ymm, ymm [AVX] -// * VDIVPS m256, ymm, ymm [AVX] -// * VDIVPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VDIVPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VDIVPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VDIVPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VDIVPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VDIVPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VDIVPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VDIVPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VDIVPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VDIVPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VDIVPS takes 3 or 4 operands") - } - // VDIVPS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VDIVPS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VDIVPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VDIVPS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VDIVPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VDIVPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VDIVPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDIVPS") - } - return p -} - -// VDIVSD performs "Divide Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VDIVSD -// Supported forms : (5 forms) -// -// * VDIVSD xmm, xmm, xmm [AVX] -// * VDIVSD m64, xmm, xmm [AVX] -// * VDIVSD m64, xmm, xmm{k}{z} [AVX512F] -// * VDIVSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VDIVSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VDIVSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VDIVSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VDIVSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VDIVSD takes 3 or 4 operands") - } - // VDIVSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VDIVSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VDIVSD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VDIVSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDIVSD") - } - return p -} - -// VDIVSS performs "Divide Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VDIVSS -// Supported forms : (5 forms) -// -// * VDIVSS xmm, xmm, xmm [AVX] -// * VDIVSS m32, xmm, xmm [AVX] -// * VDIVSS m32, xmm, xmm{k}{z} [AVX512F] -// * VDIVSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VDIVSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VDIVSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VDIVSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VDIVSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VDIVSS takes 3 or 4 operands") - } - // VDIVSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VDIVSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VDIVSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5e) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VDIVSS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VDIVSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDIVSS") - } - return p -} - -// VDPPD performs "Dot Product of Packed Double Precision Floating-Point Values". -// -// Mnemonic : VDPPD -// Supported forms : (2 forms) -// -// * VDPPD imm8, xmm, xmm, xmm [AVX] -// * VDPPD imm8, m128, xmm, xmm [AVX] -// -func (self *Program) VDPPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VDPPD", 4, Operands { v0, v1, v2, v3 }) - // VDPPD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x41) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VDPPD imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x41) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDPPD") - } - return p -} - -// VDPPS performs "Dot Product of Packed Single Precision Floating-Point Values". -// -// Mnemonic : VDPPS -// Supported forms : (4 forms) -// -// * VDPPS imm8, xmm, xmm, xmm [AVX] -// * VDPPS imm8, m128, xmm, xmm [AVX] -// * VDPPS imm8, ymm, ymm, ymm [AVX] -// * VDPPS imm8, m256, ymm, ymm [AVX] -// -func (self *Program) VDPPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VDPPS", 4, Operands { v0, v1, v2, v3 }) - // VDPPS imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x40) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VDPPS imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x40) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VDPPS imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x40) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VDPPS imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x40) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VDPPS") - } - return p -} - -// VEXP2PD performs "Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error". -// -// Mnemonic : VEXP2PD -// Supported forms : (3 forms) -// -// * VEXP2PD m512/m64bcst, zmm{k}{z} [AVX512ER] -// * VEXP2PD {sae}, zmm, zmm{k}{z} [AVX512ER] -// * VEXP2PD zmm, zmm{k}{z} [AVX512ER] -// -func (self *Program) VEXP2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VEXP2PD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VEXP2PD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VEXP2PD takes 2 or 3 operands") - } - // VEXP2PD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc8) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VEXP2PD {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xc8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VEXP2PD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xc8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXP2PD") - } - return p -} - -// VEXP2PS performs "Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error". -// -// Mnemonic : VEXP2PS -// Supported forms : (3 forms) -// -// * VEXP2PS m512/m32bcst, zmm{k}{z} [AVX512ER] -// * VEXP2PS {sae}, zmm, zmm{k}{z} [AVX512ER] -// * VEXP2PS zmm, zmm{k}{z} [AVX512ER] -// -func (self *Program) VEXP2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VEXP2PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VEXP2PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VEXP2PS takes 2 or 3 operands") - } - // VEXP2PS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc8) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VEXP2PS {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xc8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VEXP2PS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xc8) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXP2PS") - } - return p -} - -// VEXPANDPD performs "Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory". -// -// Mnemonic : VEXPANDPD -// Supported forms : (6 forms) -// -// * VEXPANDPD zmm, zmm{k}{z} [AVX512F] -// * VEXPANDPD m512, zmm{k}{z} [AVX512F] -// * VEXPANDPD xmm, xmm{k}{z} [AVX512VL] -// * VEXPANDPD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VEXPANDPD m128, xmm{k}{z} [AVX512VL] -// * VEXPANDPD m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VEXPANDPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VEXPANDPD", 2, Operands { v0, v1 }) - // VEXPANDPD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x88) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VEXPANDPD m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x88) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VEXPANDPD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x88) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VEXPANDPD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x88) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VEXPANDPD m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x88) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VEXPANDPD m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x88) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VEXPANDPD") - } - return p -} - -// VEXPANDPS performs "Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory". -// -// Mnemonic : VEXPANDPS -// Supported forms : (6 forms) -// -// * VEXPANDPS zmm, zmm{k}{z} [AVX512F] -// * VEXPANDPS m512, zmm{k}{z} [AVX512F] -// * VEXPANDPS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VEXPANDPS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VEXPANDPS m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VEXPANDPS m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VEXPANDPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VEXPANDPS", 2, Operands { v0, v1 }) - // VEXPANDPS zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x88) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VEXPANDPS m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x88) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VEXPANDPS xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x88) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VEXPANDPS ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x88) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VEXPANDPS m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x88) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VEXPANDPS m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x88) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VEXPANDPS") - } - return p -} - -// VEXTRACTF128 performs "Extract Packed Floating-Point Values". -// -// Mnemonic : VEXTRACTF128 -// Supported forms : (2 forms) -// -// * VEXTRACTF128 imm8, ymm, xmm [AVX] -// * VEXTRACTF128 imm8, ymm, m128 [AVX] -// -func (self *Program) VEXTRACTF128(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTF128", 3, Operands { v0, v1, v2 }) - // VEXTRACTF128 imm8, ymm, xmm - if isImm8(v0) && isYMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x7d) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF128 imm8, ymm, m128 - if isImm8(v0) && isYMM(v1) && isM128(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTF128") - } - return p -} - -// VEXTRACTF32X4 performs "Extract 128 Bits of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VEXTRACTF32X4 -// Supported forms : (4 forms) -// -// * VEXTRACTF32X4 imm8, zmm, xmm{k}{z} [AVX512F] -// * VEXTRACTF32X4 imm8, zmm, m128{k}{z} [AVX512F] -// * VEXTRACTF32X4 imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VEXTRACTF32X4 imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VEXTRACTF32X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTF32X4", 3, Operands { v0, v1, v2 }) - // VEXTRACTF32X4 imm8, zmm, xmm{k}{z} - if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF32X4 imm8, zmm, m128{k}{z} - if isImm8(v0) && isZMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF32X4 imm8, ymm, xmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF32X4 imm8, ymm, m128{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTF32X4") - } - return p -} - -// VEXTRACTF32X8 performs "Extract 256 Bits of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VEXTRACTF32X8 -// Supported forms : (2 forms) -// -// * VEXTRACTF32X8 imm8, zmm, ymm{k}{z} [AVX512DQ] -// * VEXTRACTF32X8 imm8, zmm, m256{k}{z} [AVX512DQ] -// -func (self *Program) VEXTRACTF32X8(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTF32X8", 3, Operands { v0, v1, v2 }) - // VEXTRACTF32X8 imm8, zmm, ymm{k}{z} - if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x1b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF32X8 imm8, zmm, m256{k}{z} - if isImm8(v0) && isZMM(v1) && isM256kz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[2]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTF32X8") - } - return p -} - -// VEXTRACTF64X2 performs "Extract 128 Bits of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VEXTRACTF64X2 -// Supported forms : (4 forms) -// -// * VEXTRACTF64X2 imm8, zmm, xmm{k}{z} [AVX512DQ] -// * VEXTRACTF64X2 imm8, zmm, m128{k}{z} [AVX512DQ] -// * VEXTRACTF64X2 imm8, ymm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VEXTRACTF64X2 imm8, ymm, m128{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VEXTRACTF64X2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTF64X2", 3, Operands { v0, v1, v2 }) - // VEXTRACTF64X2 imm8, zmm, xmm{k}{z} - if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF64X2 imm8, zmm, m128{k}{z} - if isImm8(v0) && isZMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF64X2 imm8, ymm, xmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x19) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF64X2 imm8, ymm, m128{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x19) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTF64X2") - } - return p -} - -// VEXTRACTF64X4 performs "Extract 256 Bits of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VEXTRACTF64X4 -// Supported forms : (2 forms) -// -// * VEXTRACTF64X4 imm8, zmm, ymm{k}{z} [AVX512F] -// * VEXTRACTF64X4 imm8, zmm, m256{k}{z} [AVX512F] -// -func (self *Program) VEXTRACTF64X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTF64X4", 3, Operands { v0, v1, v2 }) - // VEXTRACTF64X4 imm8, zmm, ymm{k}{z} - if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x1b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTF64X4 imm8, zmm, m256{k}{z} - if isImm8(v0) && isZMM(v1) && isM256kz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x1b) - m.mrsd(lcode(v[1]), addr(v[2]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTF64X4") - } - return p -} - -// VEXTRACTI128 performs "Extract Packed Integer Values". -// -// Mnemonic : VEXTRACTI128 -// Supported forms : (2 forms) -// -// * VEXTRACTI128 imm8, ymm, xmm [AVX2] -// * VEXTRACTI128 imm8, ymm, m128 [AVX2] -// -func (self *Program) VEXTRACTI128(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTI128", 3, Operands { v0, v1, v2 }) - // VEXTRACTI128 imm8, ymm, xmm - if isImm8(v0) && isYMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x7d) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI128 imm8, ymm, m128 - if isImm8(v0) && isYMM(v1) && isM128(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) - m.emit(0x39) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTI128") - } - return p -} - -// VEXTRACTI32X4 performs "Extract 128 Bits of Packed Doubleword Integer Values". -// -// Mnemonic : VEXTRACTI32X4 -// Supported forms : (4 forms) -// -// * VEXTRACTI32X4 imm8, zmm, xmm{k}{z} [AVX512F] -// * VEXTRACTI32X4 imm8, zmm, m128{k}{z} [AVX512F] -// * VEXTRACTI32X4 imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VEXTRACTI32X4 imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VEXTRACTI32X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTI32X4", 3, Operands { v0, v1, v2 }) - // VEXTRACTI32X4 imm8, zmm, xmm{k}{z} - if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI32X4 imm8, zmm, m128{k}{z} - if isImm8(v0) && isZMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x39) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI32X4 imm8, ymm, xmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI32X4 imm8, ymm, m128{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x39) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTI32X4") - } - return p -} - -// VEXTRACTI32X8 performs "Extract 256 Bits of Packed Doubleword Integer Values". -// -// Mnemonic : VEXTRACTI32X8 -// Supported forms : (2 forms) -// -// * VEXTRACTI32X8 imm8, zmm, ymm{k}{z} [AVX512DQ] -// * VEXTRACTI32X8 imm8, zmm, m256{k}{z} [AVX512DQ] -// -func (self *Program) VEXTRACTI32X8(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTI32X8", 3, Operands { v0, v1, v2 }) - // VEXTRACTI32X8 imm8, zmm, ymm{k}{z} - if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI32X8 imm8, zmm, m256{k}{z} - if isImm8(v0) && isZMM(v1) && isM256kz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3b) - m.mrsd(lcode(v[1]), addr(v[2]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTI32X8") - } - return p -} - -// VEXTRACTI64X2 performs "Extract 128 Bits of Packed Quadword Integer Values". -// -// Mnemonic : VEXTRACTI64X2 -// Supported forms : (4 forms) -// -// * VEXTRACTI64X2 imm8, zmm, xmm{k}{z} [AVX512DQ] -// * VEXTRACTI64X2 imm8, zmm, m128{k}{z} [AVX512DQ] -// * VEXTRACTI64X2 imm8, ymm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VEXTRACTI64X2 imm8, ymm, m128{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VEXTRACTI64X2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTI64X2", 3, Operands { v0, v1, v2 }) - // VEXTRACTI64X2 imm8, zmm, xmm{k}{z} - if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI64X2 imm8, zmm, m128{k}{z} - if isImm8(v0) && isZMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x39) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI64X2 imm8, ymm, xmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI64X2 imm8, ymm, m128{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x39) - m.mrsd(lcode(v[1]), addr(v[2]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTI64X2") - } - return p -} - -// VEXTRACTI64X4 performs "Extract 256 Bits of Packed Quadword Integer Values". -// -// Mnemonic : VEXTRACTI64X4 -// Supported forms : (2 forms) -// -// * VEXTRACTI64X4 imm8, zmm, ymm{k}{z} [AVX512F] -// * VEXTRACTI64X4 imm8, zmm, m256{k}{z} [AVX512F] -// -func (self *Program) VEXTRACTI64X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTI64X4", 3, Operands { v0, v1, v2 }) - // VEXTRACTI64X4 imm8, zmm, ymm{k}{z} - if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTI64X4 imm8, zmm, m256{k}{z} - if isImm8(v0) && isZMM(v1) && isM256kz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3b) - m.mrsd(lcode(v[1]), addr(v[2]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTI64X4") - } - return p -} - -// VEXTRACTPS performs "Extract Packed Single Precision Floating-Point Value". -// -// Mnemonic : VEXTRACTPS -// Supported forms : (4 forms) -// -// * VEXTRACTPS imm8, xmm, r32 [AVX] -// * VEXTRACTPS imm8, xmm, m32 [AVX] -// * VEXTRACTPS imm8, xmm, r32 [AVX512F] -// * VEXTRACTPS imm8, xmm, m32 [AVX512F] -// -func (self *Program) VEXTRACTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VEXTRACTPS", 3, Operands { v0, v1, v2 }) - // VEXTRACTPS imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79) - m.emit(0x17) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTPS imm8, xmm, m32 - if isImm8(v0) && isXMM(v1) && isM32(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) - m.emit(0x17) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTPS imm8, xmm, r32 - if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0x17) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VEXTRACTPS imm8, xmm, m32 - if isImm8(v0) && isEVEXXMM(v1) && isM32(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) - m.emit(0x17) - m.mrsd(lcode(v[1]), addr(v[2]), 4) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VEXTRACTPS") - } - return p -} - -// VFIXUPIMMPD performs "Fix Up Special Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFIXUPIMMPD -// Supported forms : (7 forms) -// -// * VFIXUPIMMPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFIXUPIMMPD imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFIXUPIMMPD imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFIXUPIMMPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFIXUPIMMPD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFIXUPIMMPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFIXUPIMMPD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFIXUPIMMPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFIXUPIMMPD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VFIXUPIMMPD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VFIXUPIMMPD takes 4 or 5 operands") - } - // VFIXUPIMMPD imm8, m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPD imm8, {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x54) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPD imm8, zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x54) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPD imm8, m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPD imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x54) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPD imm8, m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPD imm8, ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x54) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFIXUPIMMPD") - } - return p -} - -// VFIXUPIMMPS performs "Fix Up Special Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFIXUPIMMPS -// Supported forms : (7 forms) -// -// * VFIXUPIMMPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFIXUPIMMPS imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFIXUPIMMPS imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFIXUPIMMPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512VL] -// * VFIXUPIMMPS imm8, xmm, xmm, xmm{k}{z} [AVX512VL] -// * VFIXUPIMMPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFIXUPIMMPS imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFIXUPIMMPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFIXUPIMMPS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VFIXUPIMMPS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VFIXUPIMMPS takes 4 or 5 operands") - } - // VFIXUPIMMPS imm8, m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPS imm8, {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x54) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPS imm8, zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x54) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPS imm8, m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPS imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x54) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPS imm8, m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x54) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMPS imm8, ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x54) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFIXUPIMMPS") - } - return p -} - -// VFIXUPIMMSD performs "Fix Up Special Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VFIXUPIMMSD -// Supported forms : (3 forms) -// -// * VFIXUPIMMSD imm8, m64, xmm, xmm{k}{z} [AVX512F] -// * VFIXUPIMMSD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFIXUPIMMSD imm8, xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFIXUPIMMSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFIXUPIMMSD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VFIXUPIMMSD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VFIXUPIMMSD takes 4 or 5 operands") - } - // VFIXUPIMMSD imm8, m64, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x55) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMSD imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x55) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMSD imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x55) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFIXUPIMMSD") - } - return p -} - -// VFIXUPIMMSS performs "Fix Up Special Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VFIXUPIMMSS -// Supported forms : (3 forms) -// -// * VFIXUPIMMSS imm8, m32, xmm, xmm{k}{z} [AVX512F] -// * VFIXUPIMMSS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFIXUPIMMSS imm8, xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFIXUPIMMSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFIXUPIMMSS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VFIXUPIMMSS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VFIXUPIMMSS takes 4 or 5 operands") - } - // VFIXUPIMMSS imm8, m32, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x55) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMSS imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x55) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VFIXUPIMMSS imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x55) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFIXUPIMMSS") - } - return p -} - -// VFMADD132PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADD132PD -// Supported forms : (11 forms) -// -// * VFMADD132PD xmm, xmm, xmm [FMA3] -// * VFMADD132PD m128, xmm, xmm [FMA3] -// * VFMADD132PD ymm, ymm, ymm [FMA3] -// * VFMADD132PD m256, ymm, ymm [FMA3] -// * VFMADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD132PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD132PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD132PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD132PD takes 3 or 4 operands") - } - // VFMADD132PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD132PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD132PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADD132PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x98) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD132PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADD132PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADD132PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD132PD") - } - return p -} - -// VFMADD132PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADD132PS -// Supported forms : (11 forms) -// -// * VFMADD132PS xmm, xmm, xmm [FMA3] -// * VFMADD132PS m128, xmm, xmm [FMA3] -// * VFMADD132PS ymm, ymm, ymm [FMA3] -// * VFMADD132PS m256, ymm, ymm [FMA3] -// * VFMADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD132PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD132PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD132PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD132PS takes 3 or 4 operands") - } - // VFMADD132PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD132PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD132PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADD132PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x98) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD132PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADD132PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADD132PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD132PS") - } - return p -} - -// VFMADD132SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADD132SD -// Supported forms : (5 forms) -// -// * VFMADD132SD xmm, xmm, xmm [FMA3] -// * VFMADD132SD m64, xmm, xmm [FMA3] -// * VFMADD132SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFMADD132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMADD132SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMADD132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD132SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD132SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD132SD takes 3 or 4 operands") - } - // VFMADD132SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x99) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x99) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD132SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x99) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFMADD132SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x99) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD132SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x99) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD132SD") - } - return p -} - -// VFMADD132SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADD132SS -// Supported forms : (5 forms) -// -// * VFMADD132SS xmm, xmm, xmm [FMA3] -// * VFMADD132SS m32, xmm, xmm [FMA3] -// * VFMADD132SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFMADD132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMADD132SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMADD132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD132SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD132SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD132SS takes 3 or 4 operands") - } - // VFMADD132SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x99) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD132SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x99) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD132SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x99) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFMADD132SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x99) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD132SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x99) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD132SS") - } - return p -} - -// VFMADD213PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADD213PD -// Supported forms : (11 forms) -// -// * VFMADD213PD xmm, xmm, xmm [FMA3] -// * VFMADD213PD m128, xmm, xmm [FMA3] -// * VFMADD213PD ymm, ymm, ymm [FMA3] -// * VFMADD213PD m256, ymm, ymm [FMA3] -// * VFMADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD213PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD213PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD213PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD213PD takes 3 or 4 operands") - } - // VFMADD213PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD213PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD213PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADD213PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD213PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADD213PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADD213PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD213PD") - } - return p -} - -// VFMADD213PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADD213PS -// Supported forms : (11 forms) -// -// * VFMADD213PS xmm, xmm, xmm [FMA3] -// * VFMADD213PS m128, xmm, xmm [FMA3] -// * VFMADD213PS ymm, ymm, ymm [FMA3] -// * VFMADD213PS m256, ymm, ymm [FMA3] -// * VFMADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD213PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD213PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD213PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD213PS takes 3 or 4 operands") - } - // VFMADD213PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD213PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD213PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADD213PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD213PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADD213PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADD213PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xa8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD213PS") - } - return p -} - -// VFMADD213SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADD213SD -// Supported forms : (5 forms) -// -// * VFMADD213SD xmm, xmm, xmm [FMA3] -// * VFMADD213SD m64, xmm, xmm [FMA3] -// * VFMADD213SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFMADD213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMADD213SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMADD213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD213SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD213SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD213SD takes 3 or 4 operands") - } - // VFMADD213SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xa9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD213SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xa9) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFMADD213SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa9) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD213SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD213SD") - } - return p -} - -// VFMADD213SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADD213SS -// Supported forms : (5 forms) -// -// * VFMADD213SS xmm, xmm, xmm [FMA3] -// * VFMADD213SS m32, xmm, xmm [FMA3] -// * VFMADD213SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFMADD213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMADD213SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMADD213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD213SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD213SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD213SS takes 3 or 4 operands") - } - // VFMADD213SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xa9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD213SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD213SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xa9) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFMADD213SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa9) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD213SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD213SS") - } - return p -} - -// VFMADD231PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADD231PD -// Supported forms : (11 forms) -// -// * VFMADD231PD xmm, xmm, xmm [FMA3] -// * VFMADD231PD m128, xmm, xmm [FMA3] -// * VFMADD231PD ymm, ymm, ymm [FMA3] -// * VFMADD231PD m256, ymm, ymm [FMA3] -// * VFMADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD231PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD231PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD231PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD231PD takes 3 or 4 operands") - } - // VFMADD231PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD231PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD231PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADD231PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD231PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADD231PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADD231PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD231PD") - } - return p -} - -// VFMADD231PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADD231PS -// Supported forms : (11 forms) -// -// * VFMADD231PS xmm, xmm, xmm [FMA3] -// * VFMADD231PS m128, xmm, xmm [FMA3] -// * VFMADD231PS ymm, ymm, ymm [FMA3] -// * VFMADD231PS m256, ymm, ymm [FMA3] -// * VFMADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD231PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD231PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD231PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD231PS takes 3 or 4 operands") - } - // VFMADD231PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD231PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD231PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADD231PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD231PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADD231PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADD231PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD231PS") - } - return p -} - -// VFMADD231SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADD231SD -// Supported forms : (5 forms) -// -// * VFMADD231SD xmm, xmm, xmm [FMA3] -// * VFMADD231SD m64, xmm, xmm [FMA3] -// * VFMADD231SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFMADD231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMADD231SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMADD231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD231SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD231SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD231SD takes 3 or 4 operands") - } - // VFMADD231SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xb9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD231SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xb9) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFMADD231SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb9) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD231SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD231SD") - } - return p -} - -// VFMADD231SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADD231SS -// Supported forms : (5 forms) -// -// * VFMADD231SS xmm, xmm, xmm [FMA3] -// * VFMADD231SS m32, xmm, xmm [FMA3] -// * VFMADD231SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFMADD231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMADD231SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMADD231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADD231SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADD231SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADD231SS takes 3 or 4 operands") - } - // VFMADD231SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xb9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADD231SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADD231SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xb9) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFMADD231SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb9) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADD231SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADD231SS") - } - return p -} - -// VFMADDPD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADDPD -// Supported forms : (6 forms) -// -// * VFMADDPD xmm, xmm, xmm, xmm [FMA4] -// * VFMADDPD m128, xmm, xmm, xmm [FMA4] -// * VFMADDPD xmm, m128, xmm, xmm [FMA4] -// * VFMADDPD ymm, ymm, ymm, ymm [FMA4] -// * VFMADDPD m256, ymm, ymm, ymm [FMA4] -// * VFMADDPD ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMADDPD", 4, Operands { v0, v1, v2, v3 }) - // VFMADDPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x69) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x69) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDPD m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x69) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x69) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x69) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x69) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDPD m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x69) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x69) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDPD") - } - return p -} - -// VFMADDPS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADDPS -// Supported forms : (6 forms) -// -// * VFMADDPS xmm, xmm, xmm, xmm [FMA4] -// * VFMADDPS m128, xmm, xmm, xmm [FMA4] -// * VFMADDPS xmm, m128, xmm, xmm [FMA4] -// * VFMADDPS ymm, ymm, ymm, ymm [FMA4] -// * VFMADDPS m256, ymm, ymm, ymm [FMA4] -// * VFMADDPS ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMADDPS", 4, Operands { v0, v1, v2, v3 }) - // VFMADDPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x68) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x68) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDPS m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x68) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x68) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x68) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x68) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDPS m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x68) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x68) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDPS") - } - return p -} - -// VFMADDSD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSD -// Supported forms : (3 forms) -// -// * VFMADDSD xmm, xmm, xmm, xmm [FMA4] -// * VFMADDSD m64, xmm, xmm, xmm [FMA4] -// * VFMADDSD xmm, m64, xmm, xmm [FMA4] -// -func (self *Program) VFMADDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMADDSD", 4, Operands { v0, v1, v2, v3 }) - // VFMADDSD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSD m64, xmm, xmm, xmm - if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6b) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDSD xmm, m64, xmm, xmm - if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6b) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSD") - } - return p -} - -// VFMADDSS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSS -// Supported forms : (3 forms) -// -// * VFMADDSS xmm, xmm, xmm, xmm [FMA4] -// * VFMADDSS m32, xmm, xmm, xmm [FMA4] -// * VFMADDSS xmm, m32, xmm, xmm [FMA4] -// -func (self *Program) VFMADDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMADDSS", 4, Operands { v0, v1, v2, v3 }) - // VFMADDSS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSS m32, xmm, xmm, xmm - if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6a) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDSS xmm, m32, xmm, xmm - if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6a) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSS") - } - return p -} - -// VFMADDSUB132PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUB132PD -// Supported forms : (11 forms) -// -// * VFMADDSUB132PD xmm, xmm, xmm [FMA3] -// * VFMADDSUB132PD m128, xmm, xmm [FMA3] -// * VFMADDSUB132PD ymm, ymm, ymm [FMA3] -// * VFMADDSUB132PD m256, ymm, ymm [FMA3] -// * VFMADDSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADDSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADDSUB132PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADDSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADDSUB132PD takes 3 or 4 operands") - } - // VFMADDSUB132PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB132PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB132PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADDSUB132PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x96) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADDSUB132PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADDSUB132PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADDSUB132PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUB132PD") - } - return p -} - -// VFMADDSUB132PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUB132PS -// Supported forms : (11 forms) -// -// * VFMADDSUB132PS xmm, xmm, xmm [FMA3] -// * VFMADDSUB132PS m128, xmm, xmm [FMA3] -// * VFMADDSUB132PS ymm, ymm, ymm [FMA3] -// * VFMADDSUB132PS m256, ymm, ymm [FMA3] -// * VFMADDSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADDSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADDSUB132PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADDSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADDSUB132PS takes 3 or 4 operands") - } - // VFMADDSUB132PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB132PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB132PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADDSUB132PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x96) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADDSUB132PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADDSUB132PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB132PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADDSUB132PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUB132PS") - } - return p -} - -// VFMADDSUB213PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUB213PD -// Supported forms : (11 forms) -// -// * VFMADDSUB213PD xmm, xmm, xmm [FMA3] -// * VFMADDSUB213PD m128, xmm, xmm [FMA3] -// * VFMADDSUB213PD ymm, ymm, ymm [FMA3] -// * VFMADDSUB213PD m256, ymm, ymm [FMA3] -// * VFMADDSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADDSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADDSUB213PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADDSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADDSUB213PD takes 3 or 4 operands") - } - // VFMADDSUB213PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB213PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB213PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADDSUB213PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADDSUB213PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADDSUB213PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADDSUB213PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUB213PD") - } - return p -} - -// VFMADDSUB213PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUB213PS -// Supported forms : (11 forms) -// -// * VFMADDSUB213PS xmm, xmm, xmm [FMA3] -// * VFMADDSUB213PS m128, xmm, xmm [FMA3] -// * VFMADDSUB213PS ymm, ymm, ymm [FMA3] -// * VFMADDSUB213PS m256, ymm, ymm [FMA3] -// * VFMADDSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADDSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADDSUB213PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADDSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADDSUB213PS takes 3 or 4 operands") - } - // VFMADDSUB213PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB213PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB213PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADDSUB213PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADDSUB213PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADDSUB213PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB213PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa6) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADDSUB213PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUB213PS") - } - return p -} - -// VFMADDSUB231PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUB231PD -// Supported forms : (11 forms) -// -// * VFMADDSUB231PD xmm, xmm, xmm [FMA3] -// * VFMADDSUB231PD m128, xmm, xmm [FMA3] -// * VFMADDSUB231PD ymm, ymm, ymm [FMA3] -// * VFMADDSUB231PD m256, ymm, ymm [FMA3] -// * VFMADDSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADDSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADDSUB231PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADDSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADDSUB231PD takes 3 or 4 operands") - } - // VFMADDSUB231PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB231PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB231PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADDSUB231PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADDSUB231PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADDSUB231PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADDSUB231PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUB231PD") - } - return p -} - -// VFMADDSUB231PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUB231PS -// Supported forms : (11 forms) -// -// * VFMADDSUB231PS xmm, xmm, xmm [FMA3] -// * VFMADDSUB231PS m128, xmm, xmm [FMA3] -// * VFMADDSUB231PS ymm, ymm, ymm [FMA3] -// * VFMADDSUB231PS m256, ymm, ymm [FMA3] -// * VFMADDSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMADDSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMADDSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMADDSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMADDSUB231PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMADDSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMADDSUB231PS takes 3 or 4 operands") - } - // VFMADDSUB231PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB231PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMADDSUB231PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMADDSUB231PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMADDSUB231PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMADDSUB231PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMADDSUB231PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb6) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMADDSUB231PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUB231PS") - } - return p -} - -// VFMADDSUBPD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUBPD -// Supported forms : (6 forms) -// -// * VFMADDSUBPD xmm, xmm, xmm, xmm [FMA4] -// * VFMADDSUBPD m128, xmm, xmm, xmm [FMA4] -// * VFMADDSUBPD xmm, m128, xmm, xmm [FMA4] -// * VFMADDSUBPD ymm, ymm, ymm, ymm [FMA4] -// * VFMADDSUBPD m256, ymm, ymm, ymm [FMA4] -// * VFMADDSUBPD ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMADDSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMADDSUBPD", 4, Operands { v0, v1, v2, v3 }) - // VFMADDSUBPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSUBPD m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5d) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDSUBPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSUBPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSUBPD m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5d) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDSUBPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUBPD") - } - return p -} - -// VFMADDSUBPS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMADDSUBPS -// Supported forms : (6 forms) -// -// * VFMADDSUBPS xmm, xmm, xmm, xmm [FMA4] -// * VFMADDSUBPS m128, xmm, xmm, xmm [FMA4] -// * VFMADDSUBPS xmm, m128, xmm, xmm [FMA4] -// * VFMADDSUBPS ymm, ymm, ymm, ymm [FMA4] -// * VFMADDSUBPS m256, ymm, ymm, ymm [FMA4] -// * VFMADDSUBPS ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMADDSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMADDSUBPS", 4, Operands { v0, v1, v2, v3 }) - // VFMADDSUBPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSUBPS m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5c) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDSUBPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSUBPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMADDSUBPS m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5c) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMADDSUBPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMADDSUBPS") - } - return p -} - -// VFMSUB132PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB132PD -// Supported forms : (11 forms) -// -// * VFMSUB132PD xmm, xmm, xmm [FMA3] -// * VFMSUB132PD m128, xmm, xmm [FMA3] -// * VFMSUB132PD ymm, ymm, ymm [FMA3] -// * VFMSUB132PD m256, ymm, ymm [FMA3] -// * VFMSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB132PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB132PD takes 3 or 4 operands") - } - // VFMSUB132PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB132PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB132PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUB132PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB132PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUB132PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUB132PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB132PD") - } - return p -} - -// VFMSUB132PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB132PS -// Supported forms : (11 forms) -// -// * VFMSUB132PS xmm, xmm, xmm [FMA3] -// * VFMSUB132PS m128, xmm, xmm [FMA3] -// * VFMSUB132PS ymm, ymm, ymm [FMA3] -// * VFMSUB132PS m256, ymm, ymm [FMA3] -// * VFMSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB132PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB132PS takes 3 or 4 operands") - } - // VFMSUB132PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB132PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB132PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUB132PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB132PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUB132PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUB132PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB132PS") - } - return p -} - -// VFMSUB132SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB132SD -// Supported forms : (5 forms) -// -// * VFMSUB132SD xmm, xmm, xmm [FMA3] -// * VFMSUB132SD m64, xmm, xmm [FMA3] -// * VFMSUB132SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB132SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMSUB132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB132SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB132SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB132SD takes 3 or 4 operands") - } - // VFMSUB132SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB132SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x9b) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFMSUB132SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB132SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB132SD") - } - return p -} - -// VFMSUB132SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB132SS -// Supported forms : (5 forms) -// -// * VFMSUB132SS xmm, xmm, xmm [FMA3] -// * VFMSUB132SS m32, xmm, xmm [FMA3] -// * VFMSUB132SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB132SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMSUB132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB132SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB132SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB132SS takes 3 or 4 operands") - } - // VFMSUB132SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB132SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB132SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x9b) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFMSUB132SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB132SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB132SS") - } - return p -} - -// VFMSUB213PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB213PD -// Supported forms : (11 forms) -// -// * VFMSUB213PD xmm, xmm, xmm [FMA3] -// * VFMSUB213PD m128, xmm, xmm [FMA3] -// * VFMSUB213PD ymm, ymm, ymm [FMA3] -// * VFMSUB213PD m256, ymm, ymm [FMA3] -// * VFMSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB213PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB213PD takes 3 or 4 operands") - } - // VFMSUB213PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB213PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB213PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUB213PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB213PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUB213PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUB213PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB213PD") - } - return p -} - -// VFMSUB213PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB213PS -// Supported forms : (11 forms) -// -// * VFMSUB213PS xmm, xmm, xmm [FMA3] -// * VFMSUB213PS m128, xmm, xmm [FMA3] -// * VFMSUB213PS ymm, ymm, ymm [FMA3] -// * VFMSUB213PS m256, ymm, ymm [FMA3] -// * VFMSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB213PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB213PS takes 3 or 4 operands") - } - // VFMSUB213PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB213PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB213PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUB213PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB213PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUB213PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xaa) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUB213PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xaa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB213PS") - } - return p -} - -// VFMSUB213SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB213SD -// Supported forms : (5 forms) -// -// * VFMSUB213SD xmm, xmm, xmm [FMA3] -// * VFMSUB213SD m64, xmm, xmm [FMA3] -// * VFMSUB213SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB213SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMSUB213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB213SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB213SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB213SD takes 3 or 4 operands") - } - // VFMSUB213SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xab) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xab) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB213SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xab) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFMSUB213SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xab) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB213SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xab) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB213SD") - } - return p -} - -// VFMSUB213SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB213SS -// Supported forms : (5 forms) -// -// * VFMSUB213SS xmm, xmm, xmm [FMA3] -// * VFMSUB213SS m32, xmm, xmm [FMA3] -// * VFMSUB213SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB213SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMSUB213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB213SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB213SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB213SS takes 3 or 4 operands") - } - // VFMSUB213SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xab) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB213SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xab) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB213SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xab) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFMSUB213SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xab) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB213SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xab) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB213SS") - } - return p -} - -// VFMSUB231PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB231PD -// Supported forms : (11 forms) -// -// * VFMSUB231PD xmm, xmm, xmm [FMA3] -// * VFMSUB231PD m128, xmm, xmm [FMA3] -// * VFMSUB231PD ymm, ymm, ymm [FMA3] -// * VFMSUB231PD m256, ymm, ymm [FMA3] -// * VFMSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB231PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB231PD takes 3 or 4 operands") - } - // VFMSUB231PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB231PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB231PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUB231PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xba) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB231PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUB231PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUB231PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB231PD") - } - return p -} - -// VFMSUB231PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB231PS -// Supported forms : (11 forms) -// -// * VFMSUB231PS xmm, xmm, xmm [FMA3] -// * VFMSUB231PS m128, xmm, xmm [FMA3] -// * VFMSUB231PS ymm, ymm, ymm [FMA3] -// * VFMSUB231PS m256, ymm, ymm [FMA3] -// * VFMSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB231PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB231PS takes 3 or 4 operands") - } - // VFMSUB231PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB231PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB231PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUB231PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xba) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB231PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUB231PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xba) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUB231PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xba) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB231PS") - } - return p -} - -// VFMSUB231SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB231SD -// Supported forms : (5 forms) -// -// * VFMSUB231SD xmm, xmm, xmm [FMA3] -// * VFMSUB231SD m64, xmm, xmm [FMA3] -// * VFMSUB231SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB231SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMSUB231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB231SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB231SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB231SD takes 3 or 4 operands") - } - // VFMSUB231SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB231SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xbb) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFMSUB231SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB231SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB231SD") - } - return p -} - -// VFMSUB231SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUB231SS -// Supported forms : (5 forms) -// -// * VFMSUB231SS xmm, xmm, xmm [FMA3] -// * VFMSUB231SS m32, xmm, xmm [FMA3] -// * VFMSUB231SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFMSUB231SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFMSUB231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUB231SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUB231SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUB231SS takes 3 or 4 operands") - } - // VFMSUB231SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUB231SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUB231SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xbb) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFMSUB231SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUB231SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUB231SS") - } - return p -} - -// VFMSUBADD132PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADD132PD -// Supported forms : (11 forms) -// -// * VFMSUBADD132PD xmm, xmm, xmm [FMA3] -// * VFMSUBADD132PD m128, xmm, xmm [FMA3] -// * VFMSUBADD132PD ymm, ymm, ymm [FMA3] -// * VFMSUBADD132PD m256, ymm, ymm [FMA3] -// * VFMSUBADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD132PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUBADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUBADD132PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUBADD132PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUBADD132PD takes 3 or 4 operands") - } - // VFMSUBADD132PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD132PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD132PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUBADD132PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x97) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUBADD132PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUBADD132PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUBADD132PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADD132PD") - } - return p -} - -// VFMSUBADD132PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADD132PS -// Supported forms : (11 forms) -// -// * VFMSUBADD132PS xmm, xmm, xmm [FMA3] -// * VFMSUBADD132PS m128, xmm, xmm [FMA3] -// * VFMSUBADD132PS ymm, ymm, ymm [FMA3] -// * VFMSUBADD132PS m256, ymm, ymm [FMA3] -// * VFMSUBADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD132PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUBADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUBADD132PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUBADD132PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUBADD132PS takes 3 or 4 operands") - } - // VFMSUBADD132PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD132PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD132PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUBADD132PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x97) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUBADD132PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUBADD132PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD132PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUBADD132PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADD132PS") - } - return p -} - -// VFMSUBADD213PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADD213PD -// Supported forms : (11 forms) -// -// * VFMSUBADD213PD xmm, xmm, xmm [FMA3] -// * VFMSUBADD213PD m128, xmm, xmm [FMA3] -// * VFMSUBADD213PD ymm, ymm, ymm [FMA3] -// * VFMSUBADD213PD m256, ymm, ymm [FMA3] -// * VFMSUBADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD213PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUBADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUBADD213PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUBADD213PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUBADD213PD takes 3 or 4 operands") - } - // VFMSUBADD213PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD213PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD213PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUBADD213PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUBADD213PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUBADD213PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUBADD213PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADD213PD") - } - return p -} - -// VFMSUBADD213PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADD213PS -// Supported forms : (11 forms) -// -// * VFMSUBADD213PS xmm, xmm, xmm [FMA3] -// * VFMSUBADD213PS m128, xmm, xmm [FMA3] -// * VFMSUBADD213PS ymm, ymm, ymm [FMA3] -// * VFMSUBADD213PS m256, ymm, ymm [FMA3] -// * VFMSUBADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD213PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUBADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUBADD213PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUBADD213PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUBADD213PS takes 3 or 4 operands") - } - // VFMSUBADD213PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD213PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD213PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUBADD213PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUBADD213PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUBADD213PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD213PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xa7) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUBADD213PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xa7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADD213PS") - } - return p -} - -// VFMSUBADD231PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADD231PD -// Supported forms : (11 forms) -// -// * VFMSUBADD231PD xmm, xmm, xmm [FMA3] -// * VFMSUBADD231PD m128, xmm, xmm [FMA3] -// * VFMSUBADD231PD ymm, ymm, ymm [FMA3] -// * VFMSUBADD231PD m256, ymm, ymm [FMA3] -// * VFMSUBADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD231PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUBADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUBADD231PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUBADD231PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUBADD231PD takes 3 or 4 operands") - } - // VFMSUBADD231PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD231PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD231PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUBADD231PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUBADD231PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUBADD231PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUBADD231PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADD231PD") - } - return p -} - -// VFMSUBADD231PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADD231PS -// Supported forms : (11 forms) -// -// * VFMSUBADD231PS xmm, xmm, xmm [FMA3] -// * VFMSUBADD231PS m128, xmm, xmm [FMA3] -// * VFMSUBADD231PS ymm, ymm, ymm [FMA3] -// * VFMSUBADD231PS m256, ymm, ymm [FMA3] -// * VFMSUBADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD231PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFMSUBADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFMSUBADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFMSUBADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFMSUBADD231PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFMSUBADD231PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFMSUBADD231PS takes 3 or 4 operands") - } - // VFMSUBADD231PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD231PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFMSUBADD231PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFMSUBADD231PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFMSUBADD231PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFMSUBADD231PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFMSUBADD231PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb7) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFMSUBADD231PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb7) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADD231PS") - } - return p -} - -// VFMSUBADDPD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADDPD -// Supported forms : (6 forms) -// -// * VFMSUBADDPD xmm, xmm, xmm, xmm [FMA4] -// * VFMSUBADDPD m128, xmm, xmm, xmm [FMA4] -// * VFMSUBADDPD xmm, m128, xmm, xmm [FMA4] -// * VFMSUBADDPD ymm, ymm, ymm, ymm [FMA4] -// * VFMSUBADDPD m256, ymm, ymm, ymm [FMA4] -// * VFMSUBADDPD ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMSUBADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMSUBADDPD", 4, Operands { v0, v1, v2, v3 }) - // VFMSUBADDPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBADDPD m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5f) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBADDPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBADDPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBADDPD m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5f) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBADDPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADDPD") - } - return p -} - -// VFMSUBADDPS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBADDPS -// Supported forms : (6 forms) -// -// * VFMSUBADDPS xmm, xmm, xmm, xmm [FMA4] -// * VFMSUBADDPS m128, xmm, xmm, xmm [FMA4] -// * VFMSUBADDPS xmm, m128, xmm, xmm [FMA4] -// * VFMSUBADDPS ymm, ymm, ymm, ymm [FMA4] -// * VFMSUBADDPS m256, ymm, ymm, ymm [FMA4] -// * VFMSUBADDPS ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMSUBADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMSUBADDPS", 4, Operands { v0, v1, v2, v3 }) - // VFMSUBADDPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBADDPS m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5e) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBADDPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBADDPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x5e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBADDPS m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x5e) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBADDPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x5e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBADDPS") - } - return p -} - -// VFMSUBPD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBPD -// Supported forms : (6 forms) -// -// * VFMSUBPD xmm, xmm, xmm, xmm [FMA4] -// * VFMSUBPD m128, xmm, xmm, xmm [FMA4] -// * VFMSUBPD xmm, m128, xmm, xmm [FMA4] -// * VFMSUBPD ymm, ymm, ymm, ymm [FMA4] -// * VFMSUBPD m256, ymm, ymm, ymm [FMA4] -// * VFMSUBPD ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMSUBPD", 4, Operands { v0, v1, v2, v3 }) - // VFMSUBPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBPD m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6d) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBPD m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6d) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBPD") - } - return p -} - -// VFMSUBPS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBPS -// Supported forms : (6 forms) -// -// * VFMSUBPS xmm, xmm, xmm, xmm [FMA4] -// * VFMSUBPS m128, xmm, xmm, xmm [FMA4] -// * VFMSUBPS xmm, m128, xmm, xmm [FMA4] -// * VFMSUBPS ymm, ymm, ymm, ymm [FMA4] -// * VFMSUBPS m256, ymm, ymm, ymm [FMA4] -// * VFMSUBPS ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFMSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMSUBPS", 4, Operands { v0, v1, v2, v3 }) - // VFMSUBPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBPS m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6c) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBPS m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6c) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBPS") - } - return p -} - -// VFMSUBSD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBSD -// Supported forms : (3 forms) -// -// * VFMSUBSD xmm, xmm, xmm, xmm [FMA4] -// * VFMSUBSD m64, xmm, xmm, xmm [FMA4] -// * VFMSUBSD xmm, m64, xmm, xmm [FMA4] -// -func (self *Program) VFMSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMSUBSD", 4, Operands { v0, v1, v2, v3 }) - // VFMSUBSD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBSD m64, xmm, xmm, xmm - if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6f) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBSD xmm, m64, xmm, xmm - if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBSD") - } - return p -} - -// VFMSUBSS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFMSUBSS -// Supported forms : (3 forms) -// -// * VFMSUBSS xmm, xmm, xmm, xmm [FMA4] -// * VFMSUBSS m32, xmm, xmm, xmm [FMA4] -// * VFMSUBSS xmm, m32, xmm, xmm [FMA4] -// -func (self *Program) VFMSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFMSUBSS", 4, Operands { v0, v1, v2, v3 }) - // VFMSUBSS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFMSUBSS m32, xmm, xmm, xmm - if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x6e) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFMSUBSS xmm, m32, xmm, xmm - if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x6e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFMSUBSS") - } - return p -} - -// VFNMADD132PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD132PD -// Supported forms : (11 forms) -// -// * VFNMADD132PD xmm, xmm, xmm [FMA3] -// * VFNMADD132PD m128, xmm, xmm [FMA3] -// * VFNMADD132PD ymm, ymm, ymm [FMA3] -// * VFNMADD132PD m256, ymm, ymm [FMA3] -// * VFNMADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD132PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD132PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD132PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD132PD takes 3 or 4 operands") - } - // VFNMADD132PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD132PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD132PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMADD132PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD132PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMADD132PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMADD132PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD132PD") - } - return p -} - -// VFNMADD132PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD132PS -// Supported forms : (11 forms) -// -// * VFNMADD132PS xmm, xmm, xmm [FMA3] -// * VFNMADD132PS m128, xmm, xmm [FMA3] -// * VFNMADD132PS ymm, ymm, ymm [FMA3] -// * VFNMADD132PS m256, ymm, ymm [FMA3] -// * VFNMADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD132PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD132PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD132PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD132PS takes 3 or 4 operands") - } - // VFNMADD132PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD132PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD132PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMADD132PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD132PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMADD132PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMADD132PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x9c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD132PS") - } - return p -} - -// VFNMADD132SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD132SD -// Supported forms : (5 forms) -// -// * VFNMADD132SD xmm, xmm, xmm [FMA3] -// * VFNMADD132SD m64, xmm, xmm [FMA3] -// * VFNMADD132SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD132SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMADD132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD132SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD132SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD132SD takes 3 or 4 operands") - } - // VFNMADD132SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD132SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x9d) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFNMADD132SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD132SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD132SD") - } - return p -} - -// VFNMADD132SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD132SS -// Supported forms : (5 forms) -// -// * VFNMADD132SS xmm, xmm, xmm [FMA3] -// * VFNMADD132SS m32, xmm, xmm [FMA3] -// * VFNMADD132SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD132SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMADD132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD132SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD132SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD132SS takes 3 or 4 operands") - } - // VFNMADD132SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD132SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD132SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x9d) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFNMADD132SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD132SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD132SS") - } - return p -} - -// VFNMADD213PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD213PD -// Supported forms : (11 forms) -// -// * VFNMADD213PD xmm, xmm, xmm [FMA3] -// * VFNMADD213PD m128, xmm, xmm [FMA3] -// * VFNMADD213PD ymm, ymm, ymm [FMA3] -// * VFNMADD213PD m256, ymm, ymm [FMA3] -// * VFNMADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD213PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD213PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD213PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD213PD takes 3 or 4 operands") - } - // VFNMADD213PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD213PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD213PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMADD213PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xac) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD213PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMADD213PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMADD213PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD213PD") - } - return p -} - -// VFNMADD213PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD213PS -// Supported forms : (11 forms) -// -// * VFNMADD213PS xmm, xmm, xmm [FMA3] -// * VFNMADD213PS m128, xmm, xmm [FMA3] -// * VFNMADD213PS ymm, ymm, ymm [FMA3] -// * VFNMADD213PS m256, ymm, ymm [FMA3] -// * VFNMADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD213PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD213PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD213PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD213PS takes 3 or 4 operands") - } - // VFNMADD213PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD213PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD213PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMADD213PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xac) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD213PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMADD213PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xac) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMADD213PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xac) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD213PS") - } - return p -} - -// VFNMADD213SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD213SD -// Supported forms : (5 forms) -// -// * VFNMADD213SD xmm, xmm, xmm [FMA3] -// * VFNMADD213SD m64, xmm, xmm [FMA3] -// * VFNMADD213SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD213SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMADD213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD213SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD213SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD213SD takes 3 or 4 operands") - } - // VFNMADD213SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xad) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xad) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD213SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xad) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFNMADD213SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xad) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD213SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xad) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD213SD") - } - return p -} - -// VFNMADD213SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD213SS -// Supported forms : (5 forms) -// -// * VFNMADD213SS xmm, xmm, xmm [FMA3] -// * VFNMADD213SS m32, xmm, xmm [FMA3] -// * VFNMADD213SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD213SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMADD213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD213SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD213SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD213SS takes 3 or 4 operands") - } - // VFNMADD213SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xad) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD213SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xad) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD213SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xad) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFNMADD213SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xad) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD213SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xad) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD213SS") - } - return p -} - -// VFNMADD231PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD231PD -// Supported forms : (11 forms) -// -// * VFNMADD231PD xmm, xmm, xmm [FMA3] -// * VFNMADD231PD m128, xmm, xmm [FMA3] -// * VFNMADD231PD ymm, ymm, ymm [FMA3] -// * VFNMADD231PD m256, ymm, ymm [FMA3] -// * VFNMADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD231PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD231PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD231PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD231PD takes 3 or 4 operands") - } - // VFNMADD231PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD231PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD231PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMADD231PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD231PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMADD231PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMADD231PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD231PD") - } - return p -} - -// VFNMADD231PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD231PS -// Supported forms : (11 forms) -// -// * VFNMADD231PS xmm, xmm, xmm [FMA3] -// * VFNMADD231PS m128, xmm, xmm [FMA3] -// * VFNMADD231PS ymm, ymm, ymm [FMA3] -// * VFNMADD231PS m256, ymm, ymm [FMA3] -// * VFNMADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD231PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD231PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD231PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD231PS takes 3 or 4 operands") - } - // VFNMADD231PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD231PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD231PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMADD231PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD231PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMADD231PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbc) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMADD231PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xbc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD231PS") - } - return p -} - -// VFNMADD231SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD231SD -// Supported forms : (5 forms) -// -// * VFNMADD231SD xmm, xmm, xmm [FMA3] -// * VFNMADD231SD m64, xmm, xmm [FMA3] -// * VFNMADD231SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD231SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMADD231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD231SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD231SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD231SD takes 3 or 4 operands") - } - // VFNMADD231SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD231SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xbd) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFNMADD231SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD231SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD231SD") - } - return p -} - -// VFNMADD231SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADD231SS -// Supported forms : (5 forms) -// -// * VFNMADD231SS xmm, xmm, xmm [FMA3] -// * VFNMADD231SS m32, xmm, xmm [FMA3] -// * VFNMADD231SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMADD231SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMADD231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMADD231SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMADD231SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMADD231SS takes 3 or 4 operands") - } - // VFNMADD231SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMADD231SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMADD231SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xbd) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFNMADD231SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMADD231SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADD231SS") - } - return p -} - -// VFNMADDPD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADDPD -// Supported forms : (6 forms) -// -// * VFNMADDPD xmm, xmm, xmm, xmm [FMA4] -// * VFNMADDPD m128, xmm, xmm, xmm [FMA4] -// * VFNMADDPD xmm, m128, xmm, xmm [FMA4] -// * VFNMADDPD ymm, ymm, ymm, ymm [FMA4] -// * VFNMADDPD m256, ymm, ymm, ymm [FMA4] -// * VFNMADDPD ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFNMADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMADDPD", 4, Operands { v0, v1, v2, v3 }) - // VFNMADDPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x79) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x79) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDPD m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x79) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMADDPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x79) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x79) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x79) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDPD m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x79) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMADDPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x79) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADDPD") - } - return p -} - -// VFNMADDPS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADDPS -// Supported forms : (6 forms) -// -// * VFNMADDPS xmm, xmm, xmm, xmm [FMA4] -// * VFNMADDPS m128, xmm, xmm, xmm [FMA4] -// * VFNMADDPS xmm, m128, xmm, xmm [FMA4] -// * VFNMADDPS ymm, ymm, ymm, ymm [FMA4] -// * VFNMADDPS m256, ymm, ymm, ymm [FMA4] -// * VFNMADDPS ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFNMADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMADDPS", 4, Operands { v0, v1, v2, v3 }) - // VFNMADDPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x78) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x78) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDPS m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x78) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMADDPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x78) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x78) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x78) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDPS m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x78) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMADDPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x78) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADDPS") - } - return p -} - -// VFNMADDSD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMADDSD -// Supported forms : (3 forms) -// -// * VFNMADDSD xmm, xmm, xmm, xmm [FMA4] -// * VFNMADDSD m64, xmm, xmm, xmm [FMA4] -// * VFNMADDSD xmm, m64, xmm, xmm [FMA4] -// -func (self *Program) VFNMADDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMADDSD", 4, Operands { v0, v1, v2, v3 }) - // VFNMADDSD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDSD m64, xmm, xmm, xmm - if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7b) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMADDSD xmm, m64, xmm, xmm - if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7b) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADDSD") - } - return p -} - -// VFNMADDSS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMADDSS -// Supported forms : (3 forms) -// -// * VFNMADDSS xmm, xmm, xmm, xmm [FMA4] -// * VFNMADDSS m32, xmm, xmm, xmm [FMA4] -// * VFNMADDSS xmm, m32, xmm, xmm [FMA4] -// -func (self *Program) VFNMADDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMADDSS", 4, Operands { v0, v1, v2, v3 }) - // VFNMADDSS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMADDSS m32, xmm, xmm, xmm - if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7a) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMADDSS xmm, m32, xmm, xmm - if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7a) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMADDSS") - } - return p -} - -// VFNMSUB132PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB132PD -// Supported forms : (11 forms) -// -// * VFNMSUB132PD xmm, xmm, xmm [FMA3] -// * VFNMSUB132PD m128, xmm, xmm [FMA3] -// * VFNMSUB132PD ymm, ymm, ymm [FMA3] -// * VFNMSUB132PD m256, ymm, ymm [FMA3] -// * VFNMSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB132PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB132PD takes 3 or 4 operands") - } - // VFNMSUB132PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB132PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB132PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMSUB132PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB132PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMSUB132PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMSUB132PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB132PD") - } - return p -} - -// VFNMSUB132PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB132PS -// Supported forms : (11 forms) -// -// * VFNMSUB132PS xmm, xmm, xmm [FMA3] -// * VFNMSUB132PS m128, xmm, xmm [FMA3] -// * VFNMSUB132PS ymm, ymm, ymm [FMA3] -// * VFNMSUB132PS m256, ymm, ymm [FMA3] -// * VFNMSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB132PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB132PS takes 3 or 4 operands") - } - // VFNMSUB132PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB132PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB132PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMSUB132PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB132PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMSUB132PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x9e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMSUB132PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB132PS") - } - return p -} - -// VFNMSUB132SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB132SD -// Supported forms : (5 forms) -// -// * VFNMSUB132SD xmm, xmm, xmm [FMA3] -// * VFNMSUB132SD m64, xmm, xmm [FMA3] -// * VFNMSUB132SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB132SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMSUB132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB132SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB132SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB132SD takes 3 or 4 operands") - } - // VFNMSUB132SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB132SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x9f) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFNMSUB132SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB132SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB132SD") - } - return p -} - -// VFNMSUB132SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB132SS -// Supported forms : (5 forms) -// -// * VFNMSUB132SS xmm, xmm, xmm [FMA3] -// * VFNMSUB132SS m32, xmm, xmm [FMA3] -// * VFNMSUB132SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB132SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMSUB132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB132SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB132SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB132SS takes 3 or 4 operands") - } - // VFNMSUB132SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB132SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB132SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x9f) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFNMSUB132SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB132SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB132SS") - } - return p -} - -// VFNMSUB213PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB213PD -// Supported forms : (11 forms) -// -// * VFNMSUB213PD xmm, xmm, xmm [FMA3] -// * VFNMSUB213PD m128, xmm, xmm [FMA3] -// * VFNMSUB213PD ymm, ymm, ymm [FMA3] -// * VFNMSUB213PD m256, ymm, ymm [FMA3] -// * VFNMSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB213PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB213PD takes 3 or 4 operands") - } - // VFNMSUB213PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB213PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB213PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMSUB213PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xae) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB213PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMSUB213PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMSUB213PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB213PD") - } - return p -} - -// VFNMSUB213PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB213PS -// Supported forms : (11 forms) -// -// * VFNMSUB213PS xmm, xmm, xmm [FMA3] -// * VFNMSUB213PS m128, xmm, xmm [FMA3] -// * VFNMSUB213PS ymm, ymm, ymm [FMA3] -// * VFNMSUB213PS m256, ymm, ymm [FMA3] -// * VFNMSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB213PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB213PS takes 3 or 4 operands") - } - // VFNMSUB213PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB213PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB213PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMSUB213PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xae) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB213PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMSUB213PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xae) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMSUB213PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xae) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB213PS") - } - return p -} - -// VFNMSUB213SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB213SD -// Supported forms : (5 forms) -// -// * VFNMSUB213SD xmm, xmm, xmm [FMA3] -// * VFNMSUB213SD m64, xmm, xmm [FMA3] -// * VFNMSUB213SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB213SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMSUB213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB213SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB213SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB213SD takes 3 or 4 operands") - } - // VFNMSUB213SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xaf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB213SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xaf) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFNMSUB213SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB213SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB213SD") - } - return p -} - -// VFNMSUB213SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB213SS -// Supported forms : (5 forms) -// -// * VFNMSUB213SS xmm, xmm, xmm [FMA3] -// * VFNMSUB213SS m32, xmm, xmm [FMA3] -// * VFNMSUB213SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB213SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMSUB213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB213SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB213SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB213SS takes 3 or 4 operands") - } - // VFNMSUB213SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB213SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xaf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB213SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xaf) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFNMSUB213SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB213SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xaf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB213SS") - } - return p -} - -// VFNMSUB231PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB231PD -// Supported forms : (11 forms) -// -// * VFNMSUB231PD xmm, xmm, xmm [FMA3] -// * VFNMSUB231PD m128, xmm, xmm [FMA3] -// * VFNMSUB231PD ymm, ymm, ymm [FMA3] -// * VFNMSUB231PD m256, ymm, ymm [FMA3] -// * VFNMSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB231PD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB231PD takes 3 or 4 operands") - } - // VFNMSUB231PD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB231PD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB231PD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMSUB231PD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB231PD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMSUB231PD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMSUB231PD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB231PD") - } - return p -} - -// VFNMSUB231PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB231PS -// Supported forms : (11 forms) -// -// * VFNMSUB231PS xmm, xmm, xmm [FMA3] -// * VFNMSUB231PS m128, xmm, xmm [FMA3] -// * VFNMSUB231PS ymm, ymm, ymm [FMA3] -// * VFNMSUB231PS m256, ymm, ymm [FMA3] -// * VFNMSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VFNMSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VFNMSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VFNMSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB231PS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB231PS takes 3 or 4 operands") - } - // VFNMSUB231PS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB231PS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB231PS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VFNMSUB231PS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB231PS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VFNMSUB231PS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231PS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xbe) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VFNMSUB231PS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xbe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB231PS") - } - return p -} - -// VFNMSUB231SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB231SD -// Supported forms : (5 forms) -// -// * VFNMSUB231SD xmm, xmm, xmm [FMA3] -// * VFNMSUB231SD m64, xmm, xmm [FMA3] -// * VFNMSUB231SD m64, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB231SD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMSUB231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB231SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB231SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB231SD takes 3 or 4 operands") - } - // VFNMSUB231SD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231SD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB231SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xbf) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VFNMSUB231SD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB231SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB231SD") - } - return p -} - -// VFNMSUB231SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUB231SS -// Supported forms : (5 forms) -// -// * VFNMSUB231SS xmm, xmm, xmm [FMA3] -// * VFNMSUB231SS m32, xmm, xmm [FMA3] -// * VFNMSUB231SS m32, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VFNMSUB231SS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VFNMSUB231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VFNMSUB231SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VFNMSUB231SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VFNMSUB231SS takes 3 or 4 operands") - } - // VFNMSUB231SS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VFNMSUB231SS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_FMA3) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xbf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VFNMSUB231SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xbf) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VFNMSUB231SS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VFNMSUB231SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xbf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUB231SS") - } - return p -} - -// VFNMSUBPD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUBPD -// Supported forms : (6 forms) -// -// * VFNMSUBPD xmm, xmm, xmm, xmm [FMA4] -// * VFNMSUBPD m128, xmm, xmm, xmm [FMA4] -// * VFNMSUBPD xmm, m128, xmm, xmm [FMA4] -// * VFNMSUBPD ymm, ymm, ymm, ymm [FMA4] -// * VFNMSUBPD m256, ymm, ymm, ymm [FMA4] -// * VFNMSUBPD ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFNMSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMSUBPD", 4, Operands { v0, v1, v2, v3 }) - // VFNMSUBPD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBPD m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7d) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMSUBPD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBPD ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBPD m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7d) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMSUBPD ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7d) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUBPD") - } - return p -} - -// VFNMSUBPS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUBPS -// Supported forms : (6 forms) -// -// * VFNMSUBPS xmm, xmm, xmm, xmm [FMA4] -// * VFNMSUBPS m128, xmm, xmm, xmm [FMA4] -// * VFNMSUBPS xmm, m128, xmm, xmm [FMA4] -// * VFNMSUBPS ymm, ymm, ymm, ymm [FMA4] -// * VFNMSUBPS m256, ymm, ymm, ymm [FMA4] -// * VFNMSUBPS ymm, m256, ymm, ymm [FMA4] -// -func (self *Program) VFNMSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMSUBPS", 4, Operands { v0, v1, v2, v3 }) - // VFNMSUBPS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBPS m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7c) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMSUBPS xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBPS ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBPS m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7c) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMSUBPS ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUBPS") - } - return p -} - -// VFNMSUBSD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUBSD -// Supported forms : (3 forms) -// -// * VFNMSUBSD xmm, xmm, xmm, xmm [FMA4] -// * VFNMSUBSD m64, xmm, xmm, xmm [FMA4] -// * VFNMSUBSD xmm, m64, xmm, xmm [FMA4] -// -func (self *Program) VFNMSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMSUBSD", 4, Operands { v0, v1, v2, v3 }) - // VFNMSUBSD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBSD m64, xmm, xmm, xmm - if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7f) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMSUBSD xmm, m64, xmm, xmm - if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUBSD") - } - return p -} - -// VFNMSUBSS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VFNMSUBSS -// Supported forms : (3 forms) -// -// * VFNMSUBSS xmm, xmm, xmm, xmm [FMA4] -// * VFNMSUBSS m32, xmm, xmm, xmm [FMA4] -// * VFNMSUBSS xmm, m32, xmm, xmm [FMA4] -// -func (self *Program) VFNMSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VFNMSUBSS", 4, Operands { v0, v1, v2, v3 }) - // VFNMSUBSS xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VFNMSUBSS m32, xmm, xmm, xmm - if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0x7e) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VFNMSUBSS xmm, m32, xmm, xmm - if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_FMA4) - p.domain = DomainFMA - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x7e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VFNMSUBSS") - } - return p -} - -// VFPCLASSPD performs "Test Class of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VFPCLASSPD -// Supported forms : (6 forms) -// -// * VFPCLASSPD imm8, m512/m64bcst, k{k} [AVX512DQ] -// * VFPCLASSPD imm8, zmm, k{k} [AVX512DQ] -// * VFPCLASSPD imm8, m128/m64bcst, k{k} [AVX512DQ,AVX512VL] -// * VFPCLASSPD imm8, m256/m64bcst, k{k} [AVX512DQ,AVX512VL] -// * VFPCLASSPD imm8, xmm, k{k} [AVX512DQ,AVX512VL] -// * VFPCLASSPD imm8, ymm, k{k} [AVX512DQ,AVX512VL] -// -func (self *Program) VFPCLASSPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VFPCLASSPD", 3, Operands { v0, v1, v2 }) - // VFPCLASSPD imm8, m512/m64bcst, k{k} - if isImm8(v0) && isM512M64bcst(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPD imm8, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit(kcode(v[2]) | 0x48) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPD imm8, m128/m64bcst, k{k} - if isImm8(v0) && isM128M64bcst(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPD imm8, m256/m64bcst, k{k} - if isImm8(v0) && isM256M64bcst(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPD imm8, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit(kcode(v[2]) | 0x08) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPD imm8, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit(kcode(v[2]) | 0x28) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFPCLASSPD") - } - return p -} - -// VFPCLASSPS performs "Test Class of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VFPCLASSPS -// Supported forms : (6 forms) -// -// * VFPCLASSPS imm8, m512/m32bcst, k{k} [AVX512DQ] -// * VFPCLASSPS imm8, zmm, k{k} [AVX512DQ] -// * VFPCLASSPS imm8, m128/m32bcst, k{k} [AVX512DQ,AVX512VL] -// * VFPCLASSPS imm8, m256/m32bcst, k{k} [AVX512DQ,AVX512VL] -// * VFPCLASSPS imm8, xmm, k{k} [AVX512DQ,AVX512VL] -// * VFPCLASSPS imm8, ymm, k{k} [AVX512DQ,AVX512VL] -// -func (self *Program) VFPCLASSPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VFPCLASSPS", 3, Operands { v0, v1, v2 }) - // VFPCLASSPS imm8, m512/m32bcst, k{k} - if isImm8(v0) && isM512M32bcst(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPS imm8, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit(kcode(v[2]) | 0x48) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPS imm8, m128/m32bcst, k{k} - if isImm8(v0) && isM128M32bcst(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPS imm8, m256/m32bcst, k{k} - if isImm8(v0) && isM256M32bcst(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPS imm8, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit(kcode(v[2]) | 0x08) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSPS imm8, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit(kcode(v[2]) | 0x28) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFPCLASSPS") - } - return p -} - -// VFPCLASSSD performs "Test Class of Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VFPCLASSSD -// Supported forms : (2 forms) -// -// * VFPCLASSSD imm8, xmm, k{k} [AVX512DQ] -// * VFPCLASSSD imm8, m64, k{k} [AVX512DQ] -// -func (self *Program) VFPCLASSSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VFPCLASSSD", 3, Operands { v0, v1, v2 }) - // VFPCLASSSD imm8, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit(kcode(v[2]) | 0x08) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSSD imm8, m64, k{k} - if isImm8(v0) && isM64(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, 0) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFPCLASSSD") - } - return p -} - -// VFPCLASSSS performs "Test Class of Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VFPCLASSSS -// Supported forms : (2 forms) -// -// * VFPCLASSSS imm8, xmm, k{k} [AVX512DQ] -// * VFPCLASSSS imm8, m32, k{k} [AVX512DQ] -// -func (self *Program) VFPCLASSSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VFPCLASSSS", 3, Operands { v0, v1, v2 }) - // VFPCLASSSS imm8, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit(kcode(v[2]) | 0x08) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VFPCLASSSS imm8, m32, k{k} - if isImm8(v0) && isM32(v1) && isKk(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, 0) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VFPCLASSSS") - } - return p -} - -// VFRCZPD performs "Extract Fraction Packed Double-Precision Floating-Point". -// -// Mnemonic : VFRCZPD -// Supported forms : (4 forms) -// -// * VFRCZPD xmm, xmm [XOP] -// * VFRCZPD m128, xmm [XOP] -// * VFRCZPD ymm, ymm [XOP] -// * VFRCZPD m256, ymm [XOP] -// -func (self *Program) VFRCZPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VFRCZPD", 2, Operands { v0, v1 }) - // VFRCZPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0x81) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VFRCZPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0x81) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VFRCZPD ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7c) - m.emit(0x81) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VFRCZPD m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x04, hcode(v[1]), addr(v[0]), 0) - m.emit(0x81) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VFRCZPD") - } - return p -} - -// VFRCZPS performs "Extract Fraction Packed Single-Precision Floating-Point". -// -// Mnemonic : VFRCZPS -// Supported forms : (4 forms) -// -// * VFRCZPS xmm, xmm [XOP] -// * VFRCZPS m128, xmm [XOP] -// * VFRCZPS ymm, ymm [XOP] -// * VFRCZPS m256, ymm [XOP] -// -func (self *Program) VFRCZPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VFRCZPS", 2, Operands { v0, v1 }) - // VFRCZPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0x80) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VFRCZPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0x80) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VFRCZPS ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7c) - m.emit(0x80) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VFRCZPS m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x04, hcode(v[1]), addr(v[0]), 0) - m.emit(0x80) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VFRCZPS") - } - return p -} - -// VFRCZSD performs "Extract Fraction Scalar Double-Precision Floating-Point". -// -// Mnemonic : VFRCZSD -// Supported forms : (2 forms) -// -// * VFRCZSD xmm, xmm [XOP] -// * VFRCZSD m64, xmm [XOP] -// -func (self *Program) VFRCZSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VFRCZSD", 2, Operands { v0, v1 }) - // VFRCZSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0x83) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VFRCZSD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0x83) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VFRCZSD") - } - return p -} - -// VFRCZSS performs "Extract Fraction Scalar Single-Precision Floating Point". -// -// Mnemonic : VFRCZSS -// Supported forms : (2 forms) -// -// * VFRCZSS xmm, xmm [XOP] -// * VFRCZSS m32, xmm [XOP] -// -func (self *Program) VFRCZSS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VFRCZSS", 2, Operands { v0, v1 }) - // VFRCZSS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0x82) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VFRCZSS m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0x82) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VFRCZSS") - } - return p -} - -// VGATHERDPD performs "Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices". -// -// Mnemonic : VGATHERDPD -// Supported forms : (5 forms) -// -// * VGATHERDPD xmm, vm32x, xmm [AVX2] -// * VGATHERDPD ymm, vm32x, ymm [AVX2] -// * VGATHERDPD vm32y, zmm{k} [AVX512F] -// * VGATHERDPD vm32x, xmm{k} [AVX512F,AVX512VL] -// * VGATHERDPD vm32x, ymm{k} [AVX512F,AVX512VL] -// -func (self *Program) VGATHERDPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGATHERDPD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VGATHERDPD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VGATHERDPD takes 2 or 3 operands") - } - // VGATHERDPD xmm, vm32x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x92) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERDPD ymm, vm32x, ymm - if len(vv) == 1 && isYMM(v0) && isVMX(v1) && isYMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x92) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERDPD vm32y, zmm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isZMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x92) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VGATHERDPD vm32x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x92) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VGATHERDPD vm32x, ymm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isYMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x92) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERDPD") - } - return p -} - -// VGATHERDPS performs "Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices". -// -// Mnemonic : VGATHERDPS -// Supported forms : (5 forms) -// -// * VGATHERDPS xmm, vm32x, xmm [AVX2] -// * VGATHERDPS ymm, vm32y, ymm [AVX2] -// * VGATHERDPS vm32z, zmm{k} [AVX512F] -// * VGATHERDPS vm32x, xmm{k} [AVX512F,AVX512VL] -// * VGATHERDPS vm32y, ymm{k} [AVX512F,AVX512VL] -// -func (self *Program) VGATHERDPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGATHERDPS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VGATHERDPS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VGATHERDPS takes 2 or 3 operands") - } - // VGATHERDPS xmm, vm32x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x92) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERDPS ymm, vm32y, ymm - if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x92) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERDPS vm32z, zmm{k} - if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x92) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VGATHERDPS vm32x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x92) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VGATHERDPS vm32y, ymm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x92) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERDPS") - } - return p -} - -// VGATHERPF0DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint". -// -// Mnemonic : VGATHERPF0DPD -// Supported forms : (1 form) -// -// * VGATHERPF0DPD vm32y{k} [AVX512PF] -// -func (self *Program) VGATHERPF0DPD(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF0DPD", 1, Operands { v0 }) - // VGATHERPF0DPD vm32y{k} - if isVMYk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(1, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF0DPD") - } - return p -} - -// VGATHERPF0DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint". -// -// Mnemonic : VGATHERPF0DPS -// Supported forms : (1 form) -// -// * VGATHERPF0DPS vm32z{k} [AVX512PF] -// -func (self *Program) VGATHERPF0DPS(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF0DPS", 1, Operands { v0 }) - // VGATHERPF0DPS vm32z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(1, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF0DPS") - } - return p -} - -// VGATHERPF0QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint". -// -// Mnemonic : VGATHERPF0QPD -// Supported forms : (1 form) -// -// * VGATHERPF0QPD vm64z{k} [AVX512PF] -// -func (self *Program) VGATHERPF0QPD(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF0QPD", 1, Operands { v0 }) - // VGATHERPF0QPD vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(1, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF0QPD") - } - return p -} - -// VGATHERPF0QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint". -// -// Mnemonic : VGATHERPF0QPS -// Supported forms : (1 form) -// -// * VGATHERPF0QPS vm64z{k} [AVX512PF] -// -func (self *Program) VGATHERPF0QPS(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF0QPS", 1, Operands { v0 }) - // VGATHERPF0QPS vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(1, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF0QPS") - } - return p -} - -// VGATHERPF1DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint". -// -// Mnemonic : VGATHERPF1DPD -// Supported forms : (1 form) -// -// * VGATHERPF1DPD vm32y{k} [AVX512PF] -// -func (self *Program) VGATHERPF1DPD(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF1DPD", 1, Operands { v0 }) - // VGATHERPF1DPD vm32y{k} - if isVMYk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(2, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF1DPD") - } - return p -} - -// VGATHERPF1DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint". -// -// Mnemonic : VGATHERPF1DPS -// Supported forms : (1 form) -// -// * VGATHERPF1DPS vm32z{k} [AVX512PF] -// -func (self *Program) VGATHERPF1DPS(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF1DPS", 1, Operands { v0 }) - // VGATHERPF1DPS vm32z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(2, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF1DPS") - } - return p -} - -// VGATHERPF1QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint". -// -// Mnemonic : VGATHERPF1QPD -// Supported forms : (1 form) -// -// * VGATHERPF1QPD vm64z{k} [AVX512PF] -// -func (self *Program) VGATHERPF1QPD(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF1QPD", 1, Operands { v0 }) - // VGATHERPF1QPD vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(2, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF1QPD") - } - return p -} - -// VGATHERPF1QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint". -// -// Mnemonic : VGATHERPF1QPS -// Supported forms : (1 form) -// -// * VGATHERPF1QPS vm64z{k} [AVX512PF] -// -func (self *Program) VGATHERPF1QPS(v0 interface{}) *Instruction { - p := self.alloc("VGATHERPF1QPS", 1, Operands { v0 }) - // VGATHERPF1QPS vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(2, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERPF1QPS") - } - return p -} - -// VGATHERQPD performs "Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices". -// -// Mnemonic : VGATHERQPD -// Supported forms : (5 forms) -// -// * VGATHERQPD xmm, vm64x, xmm [AVX2] -// * VGATHERQPD ymm, vm64y, ymm [AVX2] -// * VGATHERQPD vm64z, zmm{k} [AVX512F] -// * VGATHERQPD vm64x, xmm{k} [AVX512F,AVX512VL] -// * VGATHERQPD vm64y, ymm{k} [AVX512F,AVX512VL] -// -func (self *Program) VGATHERQPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGATHERQPD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VGATHERQPD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VGATHERQPD takes 2 or 3 operands") - } - // VGATHERQPD xmm, vm64x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x93) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERQPD ymm, vm64y, ymm - if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x93) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERQPD vm64z, zmm{k} - if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x93) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VGATHERQPD vm64x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x93) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VGATHERQPD vm64y, ymm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x93) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERQPD") - } - return p -} - -// VGATHERQPS performs "Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices". -// -// Mnemonic : VGATHERQPS -// Supported forms : (5 forms) -// -// * VGATHERQPS xmm, vm64x, xmm [AVX2] -// * VGATHERQPS xmm, vm64y, xmm [AVX2] -// * VGATHERQPS vm64z, ymm{k} [AVX512F] -// * VGATHERQPS vm64x, xmm{k} [AVX512F,AVX512VL] -// * VGATHERQPS vm64y, xmm{k} [AVX512F,AVX512VL] -// -func (self *Program) VGATHERQPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGATHERQPS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VGATHERQPS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VGATHERQPS takes 2 or 3 operands") - } - // VGATHERQPS xmm, vm64x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x93) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERQPS xmm, vm64y, xmm - if len(vv) == 1 && isXMM(v0) && isVMY(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x93) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VGATHERQPS vm64z, ymm{k} - if len(vv) == 0 && isVMZ(v0) && isYMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x93) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VGATHERQPS vm64x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x93) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VGATHERQPS vm64y, xmm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x93) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VGATHERQPS") - } - return p -} - -// VGETEXPPD performs "Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values". -// -// Mnemonic : VGETEXPPD -// Supported forms : (7 forms) -// -// * VGETEXPPD m512/m64bcst, zmm{k}{z} [AVX512F] -// * VGETEXPPD {sae}, zmm, zmm{k}{z} [AVX512F] -// * VGETEXPPD zmm, zmm{k}{z} [AVX512F] -// * VGETEXPPD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETEXPPD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VGETEXPPD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETEXPPD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VGETEXPPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETEXPPD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VGETEXPPD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VGETEXPPD takes 2 or 3 operands") - } - // VGETEXPPD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VGETEXPPD {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VGETEXPPD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VGETEXPPD m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VGETEXPPD m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VGETEXPPD xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VGETEXPPD ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETEXPPD") - } - return p -} - -// VGETEXPPS performs "Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values". -// -// Mnemonic : VGETEXPPS -// Supported forms : (7 forms) -// -// * VGETEXPPS m512/m32bcst, zmm{k}{z} [AVX512F] -// * VGETEXPPS {sae}, zmm, zmm{k}{z} [AVX512F] -// * VGETEXPPS zmm, zmm{k}{z} [AVX512F] -// * VGETEXPPS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETEXPPS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VGETEXPPS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETEXPPS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VGETEXPPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETEXPPS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VGETEXPPS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VGETEXPPS takes 2 or 3 operands") - } - // VGETEXPPS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VGETEXPPS {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0x42) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VGETEXPPS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VGETEXPPS m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VGETEXPPS m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x42) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VGETEXPPS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VGETEXPPS ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x42) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETEXPPS") - } - return p -} - -// VGETEXPSD performs "Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value". -// -// Mnemonic : VGETEXPSD -// Supported forms : (3 forms) -// -// * VGETEXPSD m64, xmm, xmm{k}{z} [AVX512F] -// * VGETEXPSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VGETEXPSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VGETEXPSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETEXPSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VGETEXPSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VGETEXPSD takes 3 or 4 operands") - } - // VGETEXPSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x43) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VGETEXPSD {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x43) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VGETEXPSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x43) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETEXPSD") - } - return p -} - -// VGETEXPSS performs "Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value". -// -// Mnemonic : VGETEXPSS -// Supported forms : (3 forms) -// -// * VGETEXPSS m32, xmm, xmm{k}{z} [AVX512F] -// * VGETEXPSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VGETEXPSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VGETEXPSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETEXPSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VGETEXPSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VGETEXPSS takes 3 or 4 operands") - } - // VGETEXPSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x43) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VGETEXPSS {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x43) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VGETEXPSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x43) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETEXPSS") - } - return p -} - -// VGETMANTPD performs "Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VGETMANTPD -// Supported forms : (7 forms) -// -// * VGETMANTPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VGETMANTPD imm8, {sae}, zmm, zmm{k}{z} [AVX512F] -// * VGETMANTPD imm8, zmm, zmm{k}{z} [AVX512F] -// * VGETMANTPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETMANTPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VGETMANTPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETMANTPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VGETMANTPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETMANTPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VGETMANTPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VGETMANTPD takes 3 or 4 operands") - } - // VGETMANTPD imm8, m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPD imm8, {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) - m.emit(0x26) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPD imm8, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPD imm8, m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPD imm8, m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPD imm8, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPD imm8, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETMANTPD") - } - return p -} - -// VGETMANTPS performs "Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VGETMANTPS -// Supported forms : (7 forms) -// -// * VGETMANTPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VGETMANTPS imm8, {sae}, zmm, zmm{k}{z} [AVX512F] -// * VGETMANTPS imm8, zmm, zmm{k}{z} [AVX512F] -// * VGETMANTPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETMANTPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VGETMANTPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VGETMANTPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VGETMANTPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETMANTPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VGETMANTPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VGETMANTPS takes 3 or 4 operands") - } - // VGETMANTPS imm8, m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPS imm8, {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) - m.emit(0x26) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPS imm8, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPS imm8, m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPS imm8, m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPS imm8, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTPS imm8, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETMANTPS") - } - return p -} - -// VGETMANTSD performs "Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VGETMANTSD -// Supported forms : (3 forms) -// -// * VGETMANTSD imm8, m64, xmm, xmm{k}{z} [AVX512F] -// * VGETMANTSD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VGETMANTSD imm8, xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VGETMANTSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETMANTSD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VGETMANTSD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VGETMANTSD takes 4 or 5 operands") - } - // VGETMANTSD imm8, m64, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x27) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTSD imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x27) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTSD imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x27) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETMANTSD") - } - return p -} - -// VGETMANTSS performs "Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VGETMANTSS -// Supported forms : (3 forms) -// -// * VGETMANTSS imm8, m32, xmm, xmm{k}{z} [AVX512F] -// * VGETMANTSS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VGETMANTSS imm8, xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VGETMANTSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VGETMANTSS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VGETMANTSS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VGETMANTSS takes 4 or 5 operands") - } - // VGETMANTSS imm8, m32, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x27) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTSS imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x27) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VGETMANTSS imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x27) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VGETMANTSS") - } - return p -} - -// VHADDPD performs "Packed Double-FP Horizontal Add". -// -// Mnemonic : VHADDPD -// Supported forms : (4 forms) -// -// * VHADDPD xmm, xmm, xmm [AVX] -// * VHADDPD m128, xmm, xmm [AVX] -// * VHADDPD ymm, ymm, ymm [AVX] -// * VHADDPD m256, ymm, ymm [AVX] -// -func (self *Program) VHADDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VHADDPD", 3, Operands { v0, v1, v2 }) - // VHADDPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHADDPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VHADDPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHADDPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VHADDPD") - } - return p -} - -// VHADDPS performs "Packed Single-FP Horizontal Add". -// -// Mnemonic : VHADDPS -// Supported forms : (4 forms) -// -// * VHADDPS xmm, xmm, xmm [AVX] -// * VHADDPS m128, xmm, xmm [AVX] -// * VHADDPS ymm, ymm, ymm [AVX] -// * VHADDPS m256, ymm, ymm [AVX] -// -func (self *Program) VHADDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VHADDPS", 3, Operands { v0, v1, v2 }) - // VHADDPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHADDPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VHADDPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHADDPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VHADDPS") - } - return p -} - -// VHSUBPD performs "Packed Double-FP Horizontal Subtract". -// -// Mnemonic : VHSUBPD -// Supported forms : (4 forms) -// -// * VHSUBPD xmm, xmm, xmm [AVX] -// * VHSUBPD m128, xmm, xmm [AVX] -// * VHSUBPD ymm, ymm, ymm [AVX] -// * VHSUBPD m256, ymm, ymm [AVX] -// -func (self *Program) VHSUBPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VHSUBPD", 3, Operands { v0, v1, v2 }) - // VHSUBPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHSUBPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VHSUBPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHSUBPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VHSUBPD") - } - return p -} - -// VHSUBPS performs "Packed Single-FP Horizontal Subtract". -// -// Mnemonic : VHSUBPS -// Supported forms : (4 forms) -// -// * VHSUBPS xmm, xmm, xmm [AVX] -// * VHSUBPS m128, xmm, xmm [AVX] -// * VHSUBPS ymm, ymm, ymm [AVX] -// * VHSUBPS m256, ymm, ymm [AVX] -// -func (self *Program) VHSUBPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VHSUBPS", 3, Operands { v0, v1, v2 }) - // VHSUBPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHSUBPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VHSUBPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VHSUBPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VHSUBPS") - } - return p -} - -// VINSERTF128 performs "Insert Packed Floating-Point Values". -// -// Mnemonic : VINSERTF128 -// Supported forms : (2 forms) -// -// * VINSERTF128 imm8, xmm, ymm, ymm [AVX] -// * VINSERTF128 imm8, m128, ymm, ymm [AVX] -// -func (self *Program) VINSERTF128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTF128", 4, Operands { v0, v1, v2, v3 }) - // VINSERTF128 imm8, xmm, ymm, ymm - if isImm8(v0) && isXMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x18) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF128 imm8, m128, ymm, ymm - if isImm8(v0) && isM128(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x18) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTF128") - } - return p -} - -// VINSERTF32X4 performs "Insert 128 Bits of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VINSERTF32X4 -// Supported forms : (4 forms) -// -// * VINSERTF32X4 imm8, xmm, zmm, zmm{k}{z} [AVX512F] -// * VINSERTF32X4 imm8, m128, zmm, zmm{k}{z} [AVX512F] -// * VINSERTF32X4 imm8, xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VINSERTF32X4 imm8, m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VINSERTF32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTF32X4", 4, Operands { v0, v1, v2, v3 }) - // VINSERTF32X4 imm8, xmm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x18) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF32X4 imm8, m128, zmm, zmm{k}{z} - if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x18) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF32X4 imm8, xmm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x18) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF32X4 imm8, m128, ymm, ymm{k}{z} - if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x18) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTF32X4") - } - return p -} - -// VINSERTF32X8 performs "Insert 256 Bits of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VINSERTF32X8 -// Supported forms : (2 forms) -// -// * VINSERTF32X8 imm8, ymm, zmm, zmm{k}{z} [AVX512DQ] -// * VINSERTF32X8 imm8, m256, zmm, zmm{k}{z} [AVX512DQ] -// -func (self *Program) VINSERTF32X8(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTF32X8", 4, Operands { v0, v1, v2, v3 }) - // VINSERTF32X8 imm8, ymm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x1a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF32X8 imm8, m256, zmm, zmm{k}{z} - if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTF32X8") - } - return p -} - -// VINSERTF64X2 performs "Insert 128 Bits of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VINSERTF64X2 -// Supported forms : (4 forms) -// -// * VINSERTF64X2 imm8, xmm, zmm, zmm{k}{z} [AVX512DQ] -// * VINSERTF64X2 imm8, m128, zmm, zmm{k}{z} [AVX512DQ] -// * VINSERTF64X2 imm8, xmm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VINSERTF64X2 imm8, m128, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VINSERTF64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTF64X2", 4, Operands { v0, v1, v2, v3 }) - // VINSERTF64X2 imm8, xmm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x18) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF64X2 imm8, m128, zmm, zmm{k}{z} - if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x18) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF64X2 imm8, xmm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x18) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF64X2 imm8, m128, ymm, ymm{k}{z} - if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x18) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTF64X2") - } - return p -} - -// VINSERTF64X4 performs "Insert 256 Bits of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VINSERTF64X4 -// Supported forms : (2 forms) -// -// * VINSERTF64X4 imm8, ymm, zmm, zmm{k}{z} [AVX512F] -// * VINSERTF64X4 imm8, m256, zmm, zmm{k}{z} [AVX512F] -// -func (self *Program) VINSERTF64X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTF64X4", 4, Operands { v0, v1, v2, v3 }) - // VINSERTF64X4 imm8, ymm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x1a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTF64X4 imm8, m256, zmm, zmm{k}{z} - if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x1a) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTF64X4") - } - return p -} - -// VINSERTI128 performs "Insert Packed Integer Values". -// -// Mnemonic : VINSERTI128 -// Supported forms : (2 forms) -// -// * VINSERTI128 imm8, xmm, ymm, ymm [AVX2] -// * VINSERTI128 imm8, m128, ymm, ymm [AVX2] -// -func (self *Program) VINSERTI128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTI128", 4, Operands { v0, v1, v2, v3 }) - // VINSERTI128 imm8, xmm, ymm, ymm - if isImm8(v0) && isXMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x38) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI128 imm8, m128, ymm, ymm - if isImm8(v0) && isM128(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x38) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTI128") - } - return p -} - -// VINSERTI32X4 performs "Insert 128 Bits of Packed Doubleword Integer Values". -// -// Mnemonic : VINSERTI32X4 -// Supported forms : (4 forms) -// -// * VINSERTI32X4 imm8, xmm, zmm, zmm{k}{z} [AVX512F] -// * VINSERTI32X4 imm8, m128, zmm, zmm{k}{z} [AVX512F] -// * VINSERTI32X4 imm8, xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VINSERTI32X4 imm8, m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VINSERTI32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTI32X4", 4, Operands { v0, v1, v2, v3 }) - // VINSERTI32X4 imm8, xmm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x38) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI32X4 imm8, m128, zmm, zmm{k}{z} - if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x38) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI32X4 imm8, xmm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x38) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI32X4 imm8, m128, ymm, ymm{k}{z} - if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x38) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTI32X4") - } - return p -} - -// VINSERTI32X8 performs "Insert 256 Bits of Packed Doubleword Integer Values". -// -// Mnemonic : VINSERTI32X8 -// Supported forms : (2 forms) -// -// * VINSERTI32X8 imm8, ymm, zmm, zmm{k}{z} [AVX512DQ] -// * VINSERTI32X8 imm8, m256, zmm, zmm{k}{z} [AVX512DQ] -// -func (self *Program) VINSERTI32X8(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTI32X8", 4, Operands { v0, v1, v2, v3 }) - // VINSERTI32X8 imm8, ymm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI32X8 imm8, m256, zmm, zmm{k}{z} - if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x3a) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTI32X8") - } - return p -} - -// VINSERTI64X2 performs "Insert 128 Bits of Packed Quadword Integer Values". -// -// Mnemonic : VINSERTI64X2 -// Supported forms : (4 forms) -// -// * VINSERTI64X2 imm8, xmm, zmm, zmm{k}{z} [AVX512DQ] -// * VINSERTI64X2 imm8, m128, zmm, zmm{k}{z} [AVX512DQ] -// * VINSERTI64X2 imm8, xmm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VINSERTI64X2 imm8, m128, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VINSERTI64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTI64X2", 4, Operands { v0, v1, v2, v3 }) - // VINSERTI64X2 imm8, xmm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x38) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI64X2 imm8, m128, zmm, zmm{k}{z} - if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x38) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI64X2 imm8, xmm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x38) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI64X2 imm8, m128, ymm, ymm{k}{z} - if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x38) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTI64X2") - } - return p -} - -// VINSERTI64X4 performs "Insert 256 Bits of Packed Quadword Integer Values". -// -// Mnemonic : VINSERTI64X4 -// Supported forms : (2 forms) -// -// * VINSERTI64X4 imm8, ymm, zmm, zmm{k}{z} [AVX512F] -// * VINSERTI64X4 imm8, m256, zmm, zmm{k}{z} [AVX512F] -// -func (self *Program) VINSERTI64X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTI64X4", 4, Operands { v0, v1, v2, v3 }) - // VINSERTI64X4 imm8, ymm, zmm, zmm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTI64X4 imm8, m256, zmm, zmm{k}{z} - if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x3a) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTI64X4") - } - return p -} - -// VINSERTPS performs "Insert Packed Single Precision Floating-Point Value". -// -// Mnemonic : VINSERTPS -// Supported forms : (4 forms) -// -// * VINSERTPS imm8, xmm, xmm, xmm [AVX] -// * VINSERTPS imm8, m32, xmm, xmm [AVX] -// * VINSERTPS imm8, xmm, xmm, xmm [AVX512F] -// * VINSERTPS imm8, m32, xmm, xmm [AVX512F] -// -func (self *Program) VINSERTPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VINSERTPS", 4, Operands { v0, v1, v2, v3 }) - // VINSERTPS imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x21) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTPS imm8, m32, xmm, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x21) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTPS imm8, xmm, xmm, xmm - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0x21) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VINSERTPS imm8, m32, xmm, xmm - if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x21) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VINSERTPS") - } - return p -} - -// VLDDQU performs "Load Unaligned Integer 128 Bits". -// -// Mnemonic : VLDDQU -// Supported forms : (2 forms) -// -// * VLDDQU m128, xmm [AVX] -// * VLDDQU m256, ymm [AVX] -// -func (self *Program) VLDDQU(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VLDDQU", 2, Operands { v0, v1 }) - // VLDDQU m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), addr(v[0]), 0) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VLDDQU m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[1]), addr(v[0]), 0) - m.emit(0xf0) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VLDDQU") - } - return p -} - -// VLDMXCSR performs "Load MXCSR Register". -// -// Mnemonic : VLDMXCSR -// Supported forms : (1 form) -// -// * VLDMXCSR m32 [AVX] -// -func (self *Program) VLDMXCSR(v0 interface{}) *Instruction { - p := self.alloc("VLDMXCSR", 1, Operands { v0 }) - // VLDMXCSR m32 - if isM32(v0) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, addr(v[0]), 0) - m.emit(0xae) - m.mrsd(2, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VLDMXCSR") - } - return p -} - -// VMASKMOVDQU performs "Store Selected Bytes of Double Quadword". -// -// Mnemonic : VMASKMOVDQU -// Supported forms : (1 form) -// -// * VMASKMOVDQU xmm, xmm [AVX] -// -func (self *Program) VMASKMOVDQU(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMASKMOVDQU", 2, Operands { v0, v1 }) - // VMASKMOVDQU xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0xf7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMASKMOVDQU") - } - return p -} - -// VMASKMOVPD performs "Conditional Move Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VMASKMOVPD -// Supported forms : (4 forms) -// -// * VMASKMOVPD m128, xmm, xmm [AVX] -// * VMASKMOVPD m256, ymm, ymm [AVX] -// * VMASKMOVPD xmm, xmm, m128 [AVX] -// * VMASKMOVPD ymm, ymm, m256 [AVX] -// -func (self *Program) VMASKMOVPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VMASKMOVPD", 3, Operands { v0, v1, v2 }) - // VMASKMOVPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMASKMOVPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMASKMOVPD xmm, xmm, m128 - if isXMM(v0) && isXMM(v1) && isM128(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x2f) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - // VMASKMOVPD ymm, ymm, m256 - if isYMM(v0) && isYMM(v1) && isM256(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x2f) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VMASKMOVPD") - } - return p -} - -// VMASKMOVPS performs "Conditional Move Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMASKMOVPS -// Supported forms : (4 forms) -// -// * VMASKMOVPS m128, xmm, xmm [AVX] -// * VMASKMOVPS m256, ymm, ymm [AVX] -// * VMASKMOVPS xmm, xmm, m128 [AVX] -// * VMASKMOVPS ymm, ymm, m256 [AVX] -// -func (self *Program) VMASKMOVPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VMASKMOVPS", 3, Operands { v0, v1, v2 }) - // VMASKMOVPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMASKMOVPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMASKMOVPS xmm, xmm, m128 - if isXMM(v0) && isXMM(v1) && isM128(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x2e) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - // VMASKMOVPS ymm, ymm, m256 - if isYMM(v0) && isYMM(v1) && isM256(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x2e) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VMASKMOVPS") - } - return p -} - -// VMAXPD performs "Return Maximum Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VMAXPD -// Supported forms : (11 forms) -// -// * VMAXPD xmm, xmm, xmm [AVX] -// * VMAXPD m128, xmm, xmm [AVX] -// * VMAXPD ymm, ymm, ymm [AVX] -// * VMAXPD m256, ymm, ymm [AVX] -// * VMAXPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VMAXPD {sae}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VMAXPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VMAXPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMAXPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMAXPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMAXPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMAXPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMAXPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMAXPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMAXPD takes 3 or 4 operands") - } - // VMAXPD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMAXPD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMAXPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VMAXPD {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMAXPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VMAXPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VMAXPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMAXPD") - } - return p -} - -// VMAXPS performs "Return Maximum Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMAXPS -// Supported forms : (11 forms) -// -// * VMAXPS xmm, xmm, xmm [AVX] -// * VMAXPS m128, xmm, xmm [AVX] -// * VMAXPS ymm, ymm, ymm [AVX] -// * VMAXPS m256, ymm, ymm [AVX] -// * VMAXPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VMAXPS {sae}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VMAXPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VMAXPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMAXPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMAXPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMAXPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMAXPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMAXPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMAXPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMAXPS takes 3 or 4 operands") - } - // VMAXPS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMAXPS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMAXPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VMAXPS {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMAXPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VMAXPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VMAXPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMAXPS") - } - return p -} - -// VMAXSD performs "Return Maximum Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VMAXSD -// Supported forms : (5 forms) -// -// * VMAXSD xmm, xmm, xmm [AVX] -// * VMAXSD m64, xmm, xmm [AVX] -// * VMAXSD m64, xmm, xmm{k}{z} [AVX512F] -// * VMAXSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VMAXSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMAXSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMAXSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMAXSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMAXSD takes 3 or 4 operands") - } - // VMAXSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMAXSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VMAXSD {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMAXSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMAXSD") - } - return p -} - -// VMAXSS performs "Return Maximum Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VMAXSS -// Supported forms : (5 forms) -// -// * VMAXSS xmm, xmm, xmm [AVX] -// * VMAXSS m32, xmm, xmm [AVX] -// * VMAXSS m32, xmm, xmm{k}{z} [AVX512F] -// * VMAXSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VMAXSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMAXSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMAXSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMAXSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMAXSS takes 3 or 4 operands") - } - // VMAXSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMAXSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMAXSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5f) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VMAXSS {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMAXSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMAXSS") - } - return p -} - -// VMINPD performs "Return Minimum Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VMINPD -// Supported forms : (11 forms) -// -// * VMINPD xmm, xmm, xmm [AVX] -// * VMINPD m128, xmm, xmm [AVX] -// * VMINPD ymm, ymm, ymm [AVX] -// * VMINPD m256, ymm, ymm [AVX] -// * VMINPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VMINPD {sae}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VMINPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VMINPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMINPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMINPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMINPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMINPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMINPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMINPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMINPD takes 3 or 4 operands") - } - // VMINPD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMINPD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMINPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VMINPD {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMINPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VMINPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VMINPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMINPD") - } - return p -} - -// VMINPS performs "Return Minimum Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMINPS -// Supported forms : (11 forms) -// -// * VMINPS xmm, xmm, xmm [AVX] -// * VMINPS m128, xmm, xmm [AVX] -// * VMINPS ymm, ymm, ymm [AVX] -// * VMINPS m256, ymm, ymm [AVX] -// * VMINPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VMINPS {sae}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VMINPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VMINPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMINPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMINPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMINPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMINPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMINPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMINPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMINPS takes 3 or 4 operands") - } - // VMINPS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMINPS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMINPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VMINPS {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMINPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VMINPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VMINPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMINPS") - } - return p -} - -// VMINSD performs "Return Minimum Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VMINSD -// Supported forms : (5 forms) -// -// * VMINSD xmm, xmm, xmm [AVX] -// * VMINSD m64, xmm, xmm [AVX] -// * VMINSD m64, xmm, xmm{k}{z} [AVX512F] -// * VMINSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VMINSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMINSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMINSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMINSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMINSD takes 3 or 4 operands") - } - // VMINSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMINSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VMINSD {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMINSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMINSD") - } - return p -} - -// VMINSS performs "Return Minimum Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VMINSS -// Supported forms : (5 forms) -// -// * VMINSS xmm, xmm, xmm [AVX] -// * VMINSS m32, xmm, xmm [AVX] -// * VMINSS m32, xmm, xmm{k}{z} [AVX512F] -// * VMINSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VMINSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMINSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMINSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMINSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMINSS takes 3 or 4 operands") - } - // VMINSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMINSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMINSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5d) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VMINSS {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMINSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMINSS") - } - return p -} - -// VMOVAPD performs "Move Aligned Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VMOVAPD -// Supported forms : (15 forms) -// -// * VMOVAPD xmm, xmm [AVX] -// * VMOVAPD m128, xmm [AVX] -// * VMOVAPD ymm, ymm [AVX] -// * VMOVAPD m256, ymm [AVX] -// * VMOVAPD xmm, m128 [AVX] -// * VMOVAPD ymm, m256 [AVX] -// * VMOVAPD zmm, m512{k}{z} [AVX512F] -// * VMOVAPD zmm, zmm{k}{z} [AVX512F] -// * VMOVAPD m512, zmm{k}{z} [AVX512F] -// * VMOVAPD xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVAPD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVAPD ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVAPD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVAPD m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVAPD m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVAPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVAPD", 2, Operands { v0, v1 }) - // VMOVAPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), v[1], 0) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVAPD ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), v[1], 0) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPD m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVAPD xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVAPD ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), addr(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVAPD zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVAPD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPD m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVAPD xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVAPD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPD ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVAPD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPD m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVAPD m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVAPD") - } - return p -} - -// VMOVAPS performs "Move Aligned Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMOVAPS -// Supported forms : (15 forms) -// -// * VMOVAPS xmm, xmm [AVX] -// * VMOVAPS m128, xmm [AVX] -// * VMOVAPS ymm, ymm [AVX] -// * VMOVAPS m256, ymm [AVX] -// * VMOVAPS xmm, m128 [AVX] -// * VMOVAPS ymm, m256 [AVX] -// * VMOVAPS zmm, m512{k}{z} [AVX512F] -// * VMOVAPS zmm, zmm{k}{z} [AVX512F] -// * VMOVAPS m512, zmm{k}{z} [AVX512F] -// * VMOVAPS xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVAPS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVAPS ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVAPS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVAPS m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVAPS m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVAPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVAPS", 2, Operands { v0, v1 }) - // VMOVAPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), v[1], 0) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVAPS ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[0]), v[1], 0) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPS m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVAPS xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), addr(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVAPS ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[0]), addr(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVAPS zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVAPS zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPS m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVAPS xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVAPS xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPS ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x29) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVAPS ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x29) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVAPS m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVAPS m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x28) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVAPS") - } - return p -} - -// VMOVD performs "Move Doubleword". -// -// Mnemonic : VMOVD -// Supported forms : (8 forms) -// -// * VMOVD xmm, r32 [AVX] -// * VMOVD r32, xmm [AVX] -// * VMOVD m32, xmm [AVX] -// * VMOVD xmm, m32 [AVX] -// * VMOVD xmm, r32 [AVX512F] -// * VMOVD r32, xmm [AVX512F] -// * VMOVD m32, xmm [AVX512F] -// * VMOVD xmm, m32 [AVX512F] -// -func (self *Program) VMOVD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVD", 2, Operands { v0, v1 }) - // VMOVD xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), v[1], 0) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVD r32, xmm - if isReg32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVD xmm, m32 - if isXMM(v0) && isM32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVD xmm, r32 - if isEVEXXMM(v0) && isReg32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVD r32, xmm - if isReg32(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVD m32, xmm - if isM32(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VMOVD xmm, m32 - if isEVEXXMM(v0) && isM32(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVD") - } - return p -} - -// VMOVDDUP performs "Move One Double-FP and Duplicate". -// -// Mnemonic : VMOVDDUP -// Supported forms : (10 forms) -// -// * VMOVDDUP xmm, xmm [AVX] -// * VMOVDDUP m64, xmm [AVX] -// * VMOVDDUP ymm, ymm [AVX] -// * VMOVDDUP m256, ymm [AVX] -// * VMOVDDUP zmm, zmm{k}{z} [AVX512F] -// * VMOVDDUP m512, zmm{k}{z} [AVX512F] -// * VMOVDDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVDDUP m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDDUP m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVDDUP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDDUP", 2, Operands { v0, v1 }) - // VMOVDDUP xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), v[0], 0) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVDDUP m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), addr(v[0]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVDDUP ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[1]), v[0], 0) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVDDUP m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[1]), addr(v[0]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVDDUP zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVDDUP m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDDUP xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVDDUP ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVDDUP m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VMOVDDUP m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDDUP") - } - return p -} - -// VMOVDQA performs "Move Aligned Double Quadword". -// -// Mnemonic : VMOVDQA -// Supported forms : (6 forms) -// -// * VMOVDQA xmm, xmm [AVX] -// * VMOVDQA m128, xmm [AVX] -// * VMOVDQA ymm, ymm [AVX] -// * VMOVDQA m256, ymm [AVX] -// * VMOVDQA xmm, m128 [AVX] -// * VMOVDQA ymm, m256 [AVX] -// -func (self *Program) VMOVDQA(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQA", 2, Operands { v0, v1 }) - // VMOVDQA xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), v[1], 0) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVDQA ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), v[1], 0) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVDQA xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVDQA ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), addr(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQA") - } - return p -} - -// VMOVDQA32 performs "Move Aligned Doubleword Values". -// -// Mnemonic : VMOVDQA32 -// Supported forms : (9 forms) -// -// * VMOVDQA32 zmm, m512{k}{z} [AVX512F] -// * VMOVDQA32 zmm, zmm{k}{z} [AVX512F] -// * VMOVDQA32 m512, zmm{k}{z} [AVX512F] -// * VMOVDQA32 xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA32 xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA32 ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA32 ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA32 m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA32 m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVDQA32(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQA32", 2, Operands { v0, v1 }) - // VMOVDQA32 zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVDQA32 zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA32 m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDQA32 xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVDQA32 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA32 ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVDQA32 ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA32 m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVDQA32 m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQA32") - } - return p -} - -// VMOVDQA64 performs "Move Aligned Quadword Values". -// -// Mnemonic : VMOVDQA64 -// Supported forms : (9 forms) -// -// * VMOVDQA64 zmm, m512{k}{z} [AVX512F] -// * VMOVDQA64 zmm, zmm{k}{z} [AVX512F] -// * VMOVDQA64 m512, zmm{k}{z} [AVX512F] -// * VMOVDQA64 xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA64 xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA64 ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA64 ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA64 m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQA64 m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVDQA64(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQA64", 2, Operands { v0, v1 }) - // VMOVDQA64 zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVDQA64 zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA64 m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDQA64 xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVDQA64 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA64 ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVDQA64 ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQA64 m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVDQA64 m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQA64") - } - return p -} - -// VMOVDQU performs "Move Unaligned Double Quadword". -// -// Mnemonic : VMOVDQU -// Supported forms : (6 forms) -// -// * VMOVDQU xmm, xmm [AVX] -// * VMOVDQU m128, xmm [AVX] -// * VMOVDQU ymm, ymm [AVX] -// * VMOVDQU m256, ymm [AVX] -// * VMOVDQU xmm, m128 [AVX] -// * VMOVDQU ymm, m256 [AVX] -// -func (self *Program) VMOVDQU(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQU", 2, Operands { v0, v1 }) - // VMOVDQU xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[0]), v[1], 0) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVDQU ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), v[0], 0) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[0]), v[1], 0) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), addr(v[0]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVDQU xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[0]), addr(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVDQU ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[0]), addr(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQU") - } - return p -} - -// VMOVDQU16 performs "Move Unaligned Word Values". -// -// Mnemonic : VMOVDQU16 -// Supported forms : (9 forms) -// -// * VMOVDQU16 zmm, m512{k}{z} [AVX512BW] -// * VMOVDQU16 zmm, zmm{k}{z} [AVX512BW] -// * VMOVDQU16 m512, zmm{k}{z} [AVX512BW] -// * VMOVDQU16 xmm, m128{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU16 xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU16 ymm, m256{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU16 ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU16 m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU16 m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VMOVDQU16(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQU16", 2, Operands { v0, v1 }) - // VMOVDQU16 zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVDQU16 zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU16 m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDQU16 xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVDQU16 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU16 ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVDQU16 ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xff) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU16 m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVDQU16 m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQU16") - } - return p -} - -// VMOVDQU32 performs "Move Unaligned Doubleword Values". -// -// Mnemonic : VMOVDQU32 -// Supported forms : (9 forms) -// -// * VMOVDQU32 zmm, m512{k}{z} [AVX512F] -// * VMOVDQU32 zmm, zmm{k}{z} [AVX512F] -// * VMOVDQU32 m512, zmm{k}{z} [AVX512F] -// * VMOVDQU32 xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU32 xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU32 ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU32 ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU32 m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU32 m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVDQU32(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQU32", 2, Operands { v0, v1 }) - // VMOVDQU32 zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVDQU32 zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU32 m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDQU32 xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVDQU32 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU32 ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVDQU32 ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU32 m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVDQU32 m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQU32") - } - return p -} - -// VMOVDQU64 performs "Move Unaligned Quadword Values". -// -// Mnemonic : VMOVDQU64 -// Supported forms : (9 forms) -// -// * VMOVDQU64 zmm, m512{k}{z} [AVX512F] -// * VMOVDQU64 zmm, zmm{k}{z} [AVX512F] -// * VMOVDQU64 m512, zmm{k}{z} [AVX512F] -// * VMOVDQU64 xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU64 xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU64 ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU64 ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU64 m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVDQU64 m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVDQU64(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQU64", 2, Operands { v0, v1 }) - // VMOVDQU64 zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVDQU64 zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU64 m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDQU64 xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVDQU64 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU64 ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVDQU64 ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfe) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU64 m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVDQU64 m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQU64") - } - return p -} - -// VMOVDQU8 performs "Move Unaligned Byte Values". -// -// Mnemonic : VMOVDQU8 -// Supported forms : (9 forms) -// -// * VMOVDQU8 zmm, m512{k}{z} [AVX512BW] -// * VMOVDQU8 zmm, zmm{k}{z} [AVX512BW] -// * VMOVDQU8 m512, zmm{k}{z} [AVX512BW] -// * VMOVDQU8 xmm, m128{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU8 xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU8 ymm, m256{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU8 ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU8 m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VMOVDQU8 m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VMOVDQU8(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVDQU8", 2, Operands { v0, v1 }) - // VMOVDQU8 zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVDQU8 zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU8 m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVDQU8 xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVDQU8 xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU8 ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x7f) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVDQU8 ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x6f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVDQU8 m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVDQU8 m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x6f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVDQU8") - } - return p -} - -// VMOVHLPS performs "Move Packed Single-Precision Floating-Point Values High to Low". -// -// Mnemonic : VMOVHLPS -// Supported forms : (2 forms) -// -// * VMOVHLPS xmm, xmm, xmm [AVX] -// * VMOVHLPS xmm, xmm, xmm [AVX512F] -// -func (self *Program) VMOVHLPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VMOVHLPS", 3, Operands { v0, v1, v2 }) - // VMOVHLPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x12) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMOVHLPS xmm, xmm, xmm - if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) - m.emit(0x12) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVHLPS") - } - return p -} - -// VMOVHPD performs "Move High Packed Double-Precision Floating-Point Value". -// -// Mnemonic : VMOVHPD -// Supported forms : (4 forms) -// -// * VMOVHPD xmm, m64 [AVX] -// * VMOVHPD m64, xmm, xmm [AVX] -// * VMOVHPD xmm, m64 [AVX512F] -// * VMOVHPD m64, xmm, xmm [AVX512F] -// -func (self *Program) VMOVHPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMOVHPD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VMOVHPD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VMOVHPD takes 2 or 3 operands") - } - // VMOVHPD xmm, m64 - if len(vv) == 0 && isXMM(v0) && isM64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x17) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVHPD m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMOVHPD xmm, m64 - if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x17) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VMOVHPD m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVHPD") - } - return p -} - -// VMOVHPS performs "Move High Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMOVHPS -// Supported forms : (4 forms) -// -// * VMOVHPS xmm, m64 [AVX] -// * VMOVHPS m64, xmm, xmm [AVX] -// * VMOVHPS xmm, m64 [AVX512F] -// * VMOVHPS m64, xmm, xmm [AVX512F] -// -func (self *Program) VMOVHPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMOVHPS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VMOVHPS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VMOVHPS takes 2 or 3 operands") - } - // VMOVHPS xmm, m64 - if len(vv) == 0 && isXMM(v0) && isM64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), addr(v[1]), 0) - m.emit(0x17) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVHPS m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMOVHPS xmm, m64 - if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x17) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VMOVHPS m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVHPS") - } - return p -} - -// VMOVLHPS performs "Move Packed Single-Precision Floating-Point Values Low to High". -// -// Mnemonic : VMOVLHPS -// Supported forms : (2 forms) -// -// * VMOVLHPS xmm, xmm, xmm [AVX] -// * VMOVLHPS xmm, xmm, xmm [AVX512F] -// -func (self *Program) VMOVLHPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VMOVLHPS", 3, Operands { v0, v1, v2 }) - // VMOVLHPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMOVLHPS xmm, xmm, xmm - if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVLHPS") - } - return p -} - -// VMOVLPD performs "Move Low Packed Double-Precision Floating-Point Value". -// -// Mnemonic : VMOVLPD -// Supported forms : (4 forms) -// -// * VMOVLPD xmm, m64 [AVX] -// * VMOVLPD m64, xmm, xmm [AVX] -// * VMOVLPD xmm, m64 [AVX512F] -// * VMOVLPD m64, xmm, xmm [AVX512F] -// -func (self *Program) VMOVLPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMOVLPD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VMOVLPD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VMOVLPD takes 2 or 3 operands") - } - // VMOVLPD xmm, m64 - if len(vv) == 0 && isXMM(v0) && isM64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVLPD m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMOVLPD xmm, m64 - if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VMOVLPD m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVLPD") - } - return p -} - -// VMOVLPS performs "Move Low Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMOVLPS -// Supported forms : (4 forms) -// -// * VMOVLPS xmm, m64 [AVX] -// * VMOVLPS m64, xmm, xmm [AVX] -// * VMOVLPS xmm, m64 [AVX512F] -// * VMOVLPS m64, xmm, xmm [AVX512F] -// -func (self *Program) VMOVLPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMOVLPS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VMOVLPS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VMOVLPS takes 2 or 3 operands") - } - // VMOVLPS xmm, m64 - if len(vv) == 0 && isXMM(v0) && isM64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), addr(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVLPS m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMOVLPS xmm, m64 - if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VMOVLPS m64, xmm, xmm - if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVLPS") - } - return p -} - -// VMOVMSKPD performs "Extract Packed Double-Precision Floating-Point Sign Mask". -// -// Mnemonic : VMOVMSKPD -// Supported forms : (2 forms) -// -// * VMOVMSKPD xmm, r32 [AVX] -// * VMOVMSKPD ymm, r32 [AVX] -// -func (self *Program) VMOVMSKPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVMSKPD", 2, Operands { v0, v1 }) - // VMOVMSKPD xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x50) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVMSKPD ymm, r32 - if isYMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x50) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVMSKPD") - } - return p -} - -// VMOVMSKPS performs "Extract Packed Single-Precision Floating-Point Sign Mask". -// -// Mnemonic : VMOVMSKPS -// Supported forms : (2 forms) -// -// * VMOVMSKPS xmm, r32 [AVX] -// * VMOVMSKPS ymm, r32 [AVX] -// -func (self *Program) VMOVMSKPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVMSKPS", 2, Operands { v0, v1 }) - // VMOVMSKPS xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x50) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVMSKPS ymm, r32 - if isYMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x50) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVMSKPS") - } - return p -} - -// VMOVNTDQ performs "Store Double Quadword Using Non-Temporal Hint". -// -// Mnemonic : VMOVNTDQ -// Supported forms : (5 forms) -// -// * VMOVNTDQ xmm, m128 [AVX] -// * VMOVNTDQ ymm, m256 [AVX] -// * VMOVNTDQ zmm, m512 [AVX512F] -// * VMOVNTDQ xmm, m128 [AVX512F,AVX512VL] -// * VMOVNTDQ ymm, m256 [AVX512F,AVX512VL] -// -func (self *Program) VMOVNTDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVNTDQ", 2, Operands { v0, v1 }) - // VMOVNTDQ xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVNTDQ ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), addr(v[1]), 0) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVNTDQ zmm, m512 - if isZMM(v0) && isM512(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVNTDQ xmm, m128 - if isEVEXXMM(v0) && isM128(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVNTDQ ymm, m256 - if isEVEXYMM(v0) && isM256(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0xe7) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVNTDQ") - } - return p -} - -// VMOVNTDQA performs "Load Double Quadword Non-Temporal Aligned Hint". -// -// Mnemonic : VMOVNTDQA -// Supported forms : (5 forms) -// -// * VMOVNTDQA m128, xmm [AVX] -// * VMOVNTDQA m256, ymm [AVX2] -// * VMOVNTDQA m512, zmm [AVX512F] -// * VMOVNTDQA m128, xmm [AVX512F,AVX512VL] -// * VMOVNTDQA m256, ymm [AVX512F,AVX512VL] -// -func (self *Program) VMOVNTDQA(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVNTDQA", 2, Operands { v0, v1 }) - // VMOVNTDQA m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVNTDQA m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVNTDQA m512, zmm - if isM512(v0) && isZMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVNTDQA m128, xmm - if isM128(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVNTDQA m256, ymm - if isM256(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2a) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVNTDQA") - } - return p -} - -// VMOVNTPD performs "Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint". -// -// Mnemonic : VMOVNTPD -// Supported forms : (5 forms) -// -// * VMOVNTPD xmm, m128 [AVX] -// * VMOVNTPD ymm, m256 [AVX] -// * VMOVNTPD zmm, m512 [AVX512F] -// * VMOVNTPD xmm, m128 [AVX512F,AVX512VL] -// * VMOVNTPD ymm, m256 [AVX512F,AVX512VL] -// -func (self *Program) VMOVNTPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVNTPD", 2, Operands { v0, v1 }) - // VMOVNTPD xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVNTPD ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), addr(v[1]), 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVNTPD zmm, m512 - if isZMM(v0) && isM512(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVNTPD xmm, m128 - if isEVEXXMM(v0) && isM128(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVNTPD ymm, m256 - if isEVEXYMM(v0) && isM256(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVNTPD") - } - return p -} - -// VMOVNTPS performs "Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint". -// -// Mnemonic : VMOVNTPS -// Supported forms : (5 forms) -// -// * VMOVNTPS xmm, m128 [AVX] -// * VMOVNTPS ymm, m256 [AVX] -// * VMOVNTPS zmm, m512 [AVX512F] -// * VMOVNTPS xmm, m128 [AVX512F,AVX512VL] -// * VMOVNTPS ymm, m256 [AVX512F,AVX512VL] -// -func (self *Program) VMOVNTPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVNTPS", 2, Operands { v0, v1 }) - // VMOVNTPS xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), addr(v[1]), 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVNTPS ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[0]), addr(v[1]), 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVNTPS zmm, m512 - if isZMM(v0) && isM512(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVNTPS xmm, m128 - if isEVEXXMM(v0) && isM128(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVNTPS ymm, m256 - if isEVEXYMM(v0) && isM256(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x2b) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVNTPS") - } - return p -} - -// VMOVQ performs "Move Quadword". -// -// Mnemonic : VMOVQ -// Supported forms : (10 forms) -// -// * VMOVQ xmm, r64 [AVX] -// * VMOVQ r64, xmm [AVX] -// * VMOVQ xmm, xmm [AVX] -// * VMOVQ m64, xmm [AVX] -// * VMOVQ xmm, m64 [AVX] -// * VMOVQ xmm, r64 [AVX512F] -// * VMOVQ r64, xmm [AVX512F] -// * VMOVQ xmm, xmm [AVX512F] -// * VMOVQ m64, xmm [AVX512F] -// * VMOVQ xmm, m64 [AVX512F] -// -func (self *Program) VMOVQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVQ", 2, Operands { v0, v1 }) - // VMOVQ xmm, r64 - if isXMM(v0) && isReg64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[0]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf9) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVQ r64, xmm - if isReg64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), v[1], 0) - m.emit(0xd6) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x7e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x81, hcode(v[1]), addr(v[0]), 0) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVQ xmm, m64 - if isXMM(v0) && isM64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0xd6) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b1, 0x81, hcode(v[0]), addr(v[1]), 0) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVQ xmm, r64 - if isEVEXXMM(v0) && isReg64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit(0x08) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVQ r64, xmm - if isReg64(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit(0x08) - m.emit(0x6e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVQ xmm, xmm - if isEVEXXMM(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x08) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit(0x08) - m.emit(0xd6) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVQ m64, xmm - if isM64(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x6e) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x7e) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VMOVQ xmm, m64 - if isEVEXXMM(v0) && isM64(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0x7e) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) - m.emit(0xd6) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVQ") - } - return p -} - -// VMOVSD performs "Move Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VMOVSD -// Supported forms : (6 forms) -// -// * VMOVSD m64, xmm [AVX] -// * VMOVSD xmm, m64 [AVX] -// * VMOVSD xmm, xmm, xmm [AVX] -// * VMOVSD xmm, m64{k} [AVX512F] -// * VMOVSD m64, xmm{k}{z} [AVX512F] -// * VMOVSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMOVSD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMOVSD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VMOVSD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VMOVSD takes 2 or 3 operands") - } - // VMOVSD m64, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[1]), addr(v[0]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVSD xmm, m64 - if len(vv) == 0 && isXMM(v0) && isM64(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[0]), addr(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVSD xmm, xmm, xmm - if len(vv) == 1 && isXMM(v0) && isXMM(v1) && isXMM(vv[0]) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[0]), v[2], hlcode(v[1])) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) - }) - } - // VMOVSD xmm, m64{k} - if len(vv) == 0 && isEVEXXMM(v0) && isM64k(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VMOVSD m64, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VMOVSD xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVSD") - } - return p -} - -// VMOVSHDUP performs "Move Packed Single-FP High and Duplicate". -// -// Mnemonic : VMOVSHDUP -// Supported forms : (10 forms) -// -// * VMOVSHDUP xmm, xmm [AVX] -// * VMOVSHDUP m128, xmm [AVX] -// * VMOVSHDUP ymm, ymm [AVX] -// * VMOVSHDUP m256, ymm [AVX] -// * VMOVSHDUP zmm, zmm{k}{z} [AVX512F] -// * VMOVSHDUP m512, zmm{k}{z} [AVX512F] -// * VMOVSHDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVSHDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVSHDUP m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVSHDUP m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVSHDUP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVSHDUP", 2, Operands { v0, v1 }) - // VMOVSHDUP xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSHDUP m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVSHDUP ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), v[0], 0) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSHDUP m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), addr(v[0]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVSHDUP zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSHDUP m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVSHDUP xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSHDUP ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSHDUP m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVSHDUP m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVSHDUP") - } - return p -} - -// VMOVSLDUP performs "Move Packed Single-FP Low and Duplicate". -// -// Mnemonic : VMOVSLDUP -// Supported forms : (10 forms) -// -// * VMOVSLDUP xmm, xmm [AVX] -// * VMOVSLDUP m128, xmm [AVX] -// * VMOVSLDUP ymm, ymm [AVX] -// * VMOVSLDUP m256, ymm [AVX] -// * VMOVSLDUP zmm, zmm{k}{z} [AVX512F] -// * VMOVSLDUP m512, zmm{k}{z} [AVX512F] -// * VMOVSLDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVSLDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVSLDUP m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVSLDUP m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVSLDUP(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVSLDUP", 2, Operands { v0, v1 }) - // VMOVSLDUP xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), v[0], 0) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSLDUP m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVSLDUP ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), v[0], 0) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSLDUP m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[1]), addr(v[0]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVSLDUP zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSLDUP m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVSLDUP xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSLDUP ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x12) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VMOVSLDUP m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVSLDUP m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVSLDUP") - } - return p -} - -// VMOVSS performs "Move Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VMOVSS -// Supported forms : (6 forms) -// -// * VMOVSS m32, xmm [AVX] -// * VMOVSS xmm, m32 [AVX] -// * VMOVSS xmm, xmm, xmm [AVX] -// * VMOVSS xmm, m32{k} [AVX512F] -// * VMOVSS m32, xmm{k}{z} [AVX512F] -// * VMOVSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMOVSS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMOVSS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VMOVSS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VMOVSS takes 2 or 3 operands") - } - // VMOVSS m32, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[1]), addr(v[0]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVSS xmm, m32 - if len(vv) == 0 && isXMM(v0) && isM32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[0]), addr(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVSS xmm, xmm, xmm - if len(vv) == 1 && isXMM(v0) && isXMM(v1) && isXMM(vv[0]) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[0]), v[2], hlcode(v[1])) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) - }) - } - // VMOVSS xmm, m32{k} - if len(vv) == 0 && isEVEXXMM(v0) && isM32k(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VMOVSS m32, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VMOVSS xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVSS") - } - return p -} - -// VMOVUPD performs "Move Unaligned Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VMOVUPD -// Supported forms : (15 forms) -// -// * VMOVUPD xmm, xmm [AVX] -// * VMOVUPD m128, xmm [AVX] -// * VMOVUPD ymm, ymm [AVX] -// * VMOVUPD m256, ymm [AVX] -// * VMOVUPD xmm, m128 [AVX] -// * VMOVUPD ymm, m256 [AVX] -// * VMOVUPD zmm, m512{k}{z} [AVX512F] -// * VMOVUPD zmm, zmm{k}{z} [AVX512F] -// * VMOVUPD m512, zmm{k}{z} [AVX512F] -// * VMOVUPD xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVUPD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVUPD ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVUPD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVUPD m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVUPD m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVUPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVUPD", 2, Operands { v0, v1 }) - // VMOVUPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), v[1], 0) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVUPD ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), v[1], 0) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPD m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVUPD xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[0]), addr(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVUPD ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[0]), addr(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVUPD zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVUPD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPD m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVUPD xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVUPD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPD ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVUPD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPD m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVUPD m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVUPD") - } - return p -} - -// VMOVUPS performs "Move Unaligned Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMOVUPS -// Supported forms : (15 forms) -// -// * VMOVUPS xmm, xmm [AVX] -// * VMOVUPS m128, xmm [AVX] -// * VMOVUPS ymm, ymm [AVX] -// * VMOVUPS m256, ymm [AVX] -// * VMOVUPS xmm, m128 [AVX] -// * VMOVUPS ymm, m256 [AVX] -// * VMOVUPS zmm, m512{k}{z} [AVX512F] -// * VMOVUPS zmm, zmm{k}{z} [AVX512F] -// * VMOVUPS m512, zmm{k}{z} [AVX512F] -// * VMOVUPS xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VMOVUPS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVUPS ymm, m256{k}{z} [AVX512F,AVX512VL] -// * VMOVUPS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMOVUPS m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VMOVUPS m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMOVUPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VMOVUPS", 2, Operands { v0, v1 }) - // VMOVUPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), v[1], 0) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVUPS ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[0]), v[1], 0) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPS m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VMOVUPS xmm, m128 - if isXMM(v0) && isM128(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[0]), addr(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVUPS ymm, m256 - if isYMM(v0) && isM256(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[0]), addr(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - // VMOVUPS zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 64) - }) - } - // VMOVUPS zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPS m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VMOVUPS xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VMOVUPS xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPS ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VMOVUPS ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x10) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VMOVUPS m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VMOVUPS m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VMOVUPS") - } - return p -} - -// VMPSADBW performs "Compute Multiple Packed Sums of Absolute Difference". -// -// Mnemonic : VMPSADBW -// Supported forms : (4 forms) -// -// * VMPSADBW imm8, xmm, xmm, xmm [AVX] -// * VMPSADBW imm8, m128, xmm, xmm [AVX] -// * VMPSADBW imm8, ymm, ymm, ymm [AVX2] -// * VMPSADBW imm8, m256, ymm, ymm [AVX2] -// -func (self *Program) VMPSADBW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VMPSADBW", 4, Operands { v0, v1, v2, v3 }) - // VMPSADBW imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x42) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VMPSADBW imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x42) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VMPSADBW imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x42) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VMPSADBW imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x42) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMPSADBW") - } - return p -} - -// VMULPD performs "Multiply Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VMULPD -// Supported forms : (11 forms) -// -// * VMULPD xmm, xmm, xmm [AVX] -// * VMULPD m128, xmm, xmm [AVX] -// * VMULPD ymm, ymm, ymm [AVX] -// * VMULPD m256, ymm, ymm [AVX] -// * VMULPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VMULPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VMULPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VMULPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMULPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMULPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMULPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMULPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMULPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMULPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMULPD takes 3 or 4 operands") - } - // VMULPD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMULPD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMULPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VMULPD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x59) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMULPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VMULPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VMULPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMULPD") - } - return p -} - -// VMULPS performs "Multiply Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VMULPS -// Supported forms : (11 forms) -// -// * VMULPS xmm, xmm, xmm [AVX] -// * VMULPS m128, xmm, xmm [AVX] -// * VMULPS ymm, ymm, ymm [AVX] -// * VMULPS m256, ymm, ymm [AVX] -// * VMULPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VMULPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VMULPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VMULPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMULPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VMULPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VMULPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VMULPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMULPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMULPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMULPS takes 3 or 4 operands") - } - // VMULPS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMULPS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMULPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VMULPS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x59) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMULPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VMULPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VMULPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMULPS") - } - return p -} - -// VMULSD performs "Multiply Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VMULSD -// Supported forms : (5 forms) -// -// * VMULSD xmm, xmm, xmm [AVX] -// * VMULSD m64, xmm, xmm [AVX] -// * VMULSD m64, xmm, xmm{k}{z} [AVX512F] -// * VMULSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VMULSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMULSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMULSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMULSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMULSD takes 3 or 4 operands") - } - // VMULSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMULSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VMULSD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x59) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMULSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMULSD") - } - return p -} - -// VMULSS performs "Multiply Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VMULSS -// Supported forms : (5 forms) -// -// * VMULSS xmm, xmm, xmm [AVX] -// * VMULSS m32, xmm, xmm [AVX] -// * VMULSS m32, xmm, xmm{k}{z} [AVX512F] -// * VMULSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VMULSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VMULSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VMULSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VMULSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VMULSS takes 3 or 4 operands") - } - // VMULSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VMULSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VMULSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x59) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VMULSS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x59) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VMULSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x59) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VMULSS") - } - return p -} - -// VORPD performs "Bitwise Logical OR of Double-Precision Floating-Point Values". -// -// Mnemonic : VORPD -// Supported forms : (10 forms) -// -// * VORPD xmm, xmm, xmm [AVX] -// * VORPD m128, xmm, xmm [AVX] -// * VORPD ymm, ymm, ymm [AVX] -// * VORPD m256, ymm, ymm [AVX] -// * VORPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VORPD zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VORPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VORPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VORPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VORPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VORPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VORPD", 3, Operands { v0, v1, v2 }) - // VORPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VORPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VORPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VORPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VORPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VORPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VORPD") - } - return p -} - -// VORPS performs "Bitwise Logical OR of Single-Precision Floating-Point Values". -// -// Mnemonic : VORPS -// Supported forms : (10 forms) -// -// * VORPS xmm, xmm, xmm [AVX] -// * VORPS m128, xmm, xmm [AVX] -// * VORPS ymm, ymm, ymm [AVX] -// * VORPS m256, ymm, ymm [AVX] -// * VORPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VORPS zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VORPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VORPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VORPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VORPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VORPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VORPS", 3, Operands { v0, v1, v2 }) - // VORPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VORPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VORPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VORPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VORPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VORPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VORPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VORPS") - } - return p -} - -// VPABSB performs "Packed Absolute Value of Byte Integers". -// -// Mnemonic : VPABSB -// Supported forms : (10 forms) -// -// * VPABSB xmm, xmm [AVX] -// * VPABSB m128, xmm [AVX] -// * VPABSB ymm, ymm [AVX2] -// * VPABSB m256, ymm [AVX2] -// * VPABSB zmm, zmm{k}{z} [AVX512BW] -// * VPABSB m512, zmm{k}{z} [AVX512BW] -// * VPABSB xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPABSB ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPABSB m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPABSB m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPABSB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPABSB", 2, Operands { v0, v1 }) - // VPABSB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSB m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPABSB ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSB m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPABSB zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSB m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPABSB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSB ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x1c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSB m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPABSB m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1c) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPABSB") - } - return p -} - -// VPABSD performs "Packed Absolute Value of Doubleword Integers". -// -// Mnemonic : VPABSD -// Supported forms : (10 forms) -// -// * VPABSD xmm, xmm [AVX] -// * VPABSD m128, xmm [AVX] -// * VPABSD ymm, ymm [AVX2] -// * VPABSD m256, ymm [AVX2] -// * VPABSD m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPABSD zmm, zmm{k}{z} [AVX512F] -// * VPABSD m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPABSD m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPABSD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPABSD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPABSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPABSD", 2, Operands { v0, v1 }) - // VPABSD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPABSD ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSD m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPABSD m512/m32bcst, zmm{k}{z} - if isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPABSD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSD m128/m32bcst, xmm{k}{z} - if isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPABSD m256/m32bcst, ymm{k}{z} - if isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x1e) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPABSD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPABSD") - } - return p -} - -// VPABSQ performs "Packed Absolute Value of Quadword Integers". -// -// Mnemonic : VPABSQ -// Supported forms : (6 forms) -// -// * VPABSQ m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPABSQ zmm, zmm{k}{z} [AVX512F] -// * VPABSQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPABSQ m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPABSQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPABSQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPABSQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPABSQ", 2, Operands { v0, v1 }) - // VPABSQ m512/m64bcst, zmm{k}{z} - if isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x1f) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPABSQ zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSQ m128/m64bcst, xmm{k}{z} - if isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x1f) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPABSQ m256/m64bcst, ymm{k}{z} - if isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x1f) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPABSQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSQ ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPABSQ") - } - return p -} - -// VPABSW performs "Packed Absolute Value of Word Integers". -// -// Mnemonic : VPABSW -// Supported forms : (10 forms) -// -// * VPABSW xmm, xmm [AVX] -// * VPABSW m128, xmm [AVX] -// * VPABSW ymm, ymm [AVX2] -// * VPABSW m256, ymm [AVX2] -// * VPABSW zmm, zmm{k}{z} [AVX512BW] -// * VPABSW m512, zmm{k}{z} [AVX512BW] -// * VPABSW xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPABSW ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPABSW m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPABSW m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPABSW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPABSW", 2, Operands { v0, v1 }) - // VPABSW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPABSW ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSW m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPABSW zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSW m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPABSW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSW ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x1d) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPABSW m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPABSW m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x1d) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPABSW") - } - return p -} - -// VPACKSSDW performs "Pack Doublewords into Words with Signed Saturation". -// -// Mnemonic : VPACKSSDW -// Supported forms : (10 forms) -// -// * VPACKSSDW xmm, xmm, xmm [AVX] -// * VPACKSSDW m128, xmm, xmm [AVX] -// * VPACKSSDW ymm, ymm, ymm [AVX2] -// * VPACKSSDW m256, ymm, ymm [AVX2] -// * VPACKSSDW m512/m32bcst, zmm, zmm{k}{z} [AVX512BW] -// * VPACKSSDW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPACKSSDW m128/m32bcst, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKSSDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKSSDW m256/m32bcst, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPACKSSDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPACKSSDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPACKSSDW", 3, Operands { v0, v1, v2 }) - // VPACKSSDW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSDW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKSSDW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSDW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKSSDW m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPACKSSDW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSDW m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPACKSSDW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSDW m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6b) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPACKSSDW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x6b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPACKSSDW") - } - return p -} - -// VPACKSSWB performs "Pack Words into Bytes with Signed Saturation". -// -// Mnemonic : VPACKSSWB -// Supported forms : (10 forms) -// -// * VPACKSSWB xmm, xmm, xmm [AVX] -// * VPACKSSWB m128, xmm, xmm [AVX] -// * VPACKSSWB ymm, ymm, ymm [AVX2] -// * VPACKSSWB m256, ymm, ymm [AVX2] -// * VPACKSSWB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPACKSSWB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPACKSSWB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKSSWB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKSSWB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPACKSSWB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPACKSSWB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPACKSSWB", 3, Operands { v0, v1, v2 }) - // VPACKSSWB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSWB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKSSWB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSWB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKSSWB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSWB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPACKSSWB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSWB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPACKSSWB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKSSWB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPACKSSWB") - } - return p -} - -// VPACKUSDW performs "Pack Doublewords into Words with Unsigned Saturation". -// -// Mnemonic : VPACKUSDW -// Supported forms : (10 forms) -// -// * VPACKUSDW xmm, xmm, xmm [AVX] -// * VPACKUSDW m128, xmm, xmm [AVX] -// * VPACKUSDW ymm, ymm, ymm [AVX2] -// * VPACKUSDW m256, ymm, ymm [AVX2] -// * VPACKUSDW m512/m32bcst, zmm, zmm{k}{z} [AVX512BW] -// * VPACKUSDW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPACKUSDW m128/m32bcst, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKUSDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKUSDW m256/m32bcst, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPACKUSDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPACKUSDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPACKUSDW", 3, Operands { v0, v1, v2 }) - // VPACKUSDW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSDW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKUSDW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSDW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x2b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKUSDW m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2b) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPACKUSDW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSDW m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2b) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPACKUSDW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSDW m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2b) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPACKUSDW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x2b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPACKUSDW") - } - return p -} - -// VPACKUSWB performs "Pack Words into Bytes with Unsigned Saturation". -// -// Mnemonic : VPACKUSWB -// Supported forms : (10 forms) -// -// * VPACKUSWB xmm, xmm, xmm [AVX] -// * VPACKUSWB m128, xmm, xmm [AVX] -// * VPACKUSWB ymm, ymm, ymm [AVX2] -// * VPACKUSWB m256, ymm, ymm [AVX2] -// * VPACKUSWB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPACKUSWB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPACKUSWB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKUSWB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPACKUSWB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPACKUSWB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPACKUSWB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPACKUSWB", 3, Operands { v0, v1, v2 }) - // VPACKUSWB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSWB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKUSWB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSWB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPACKUSWB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSWB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPACKUSWB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSWB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPACKUSWB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x67) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPACKUSWB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x67) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPACKUSWB") - } - return p -} - -// VPADDB performs "Add Packed Byte Integers". -// -// Mnemonic : VPADDB -// Supported forms : (10 forms) -// -// * VPADDB xmm, xmm, xmm [AVX] -// * VPADDB m128, xmm, xmm [AVX] -// * VPADDB ymm, ymm, ymm [AVX2] -// * VPADDB m256, ymm, ymm [AVX2] -// * VPADDB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPADDB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPADDB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPADDB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPADDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDB", 3, Operands { v0, v1, v2 }) - // VPADDB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xfc) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xfc) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xfc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xfc) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDB") - } - return p -} - -// VPADDD performs "Add Packed Doubleword Integers". -// -// Mnemonic : VPADDD -// Supported forms : (10 forms) -// -// * VPADDD xmm, xmm, xmm [AVX] -// * VPADDD m128, xmm, xmm [AVX] -// * VPADDD ymm, ymm, ymm [AVX2] -// * VPADDD m256, ymm, ymm [AVX2] -// * VPADDD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPADDD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPADDD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPADDD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPADDD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPADDD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDD", 3, Operands { v0, v1, v2 }) - // VPADDD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfe) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfe) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfe) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfe) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfe) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPADDD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xfe) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDD") - } - return p -} - -// VPADDQ performs "Add Packed Quadword Integers". -// -// Mnemonic : VPADDQ -// Supported forms : (10 forms) -// -// * VPADDQ xmm, xmm, xmm [AVX] -// * VPADDQ m128, xmm, xmm [AVX] -// * VPADDQ ymm, ymm, ymm [AVX2] -// * VPADDQ m256, ymm, ymm [AVX2] -// * VPADDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPADDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPADDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPADDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPADDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPADDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPADDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDQ", 3, Operands { v0, v1, v2 }) - // VPADDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd4) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd4) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xd4) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xd4) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xd4) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPADDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDQ") - } - return p -} - -// VPADDSB performs "Add Packed Signed Byte Integers with Signed Saturation". -// -// Mnemonic : VPADDSB -// Supported forms : (10 forms) -// -// * VPADDSB xmm, xmm, xmm [AVX] -// * VPADDSB m128, xmm, xmm [AVX] -// * VPADDSB ymm, ymm, ymm [AVX2] -// * VPADDSB m256, ymm, ymm [AVX2] -// * VPADDSB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPADDSB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPADDSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPADDSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPADDSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDSB", 3, Operands { v0, v1, v2 }) - // VPADDSB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xec) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xec) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDSB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xec) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xec) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDSB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xec) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xec) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDSB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xec) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xec) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDSB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xec) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xec) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDSB") - } - return p -} - -// VPADDSW performs "Add Packed Signed Word Integers with Signed Saturation". -// -// Mnemonic : VPADDSW -// Supported forms : (10 forms) -// -// * VPADDSW xmm, xmm, xmm [AVX] -// * VPADDSW m128, xmm, xmm [AVX] -// * VPADDSW ymm, ymm, ymm [AVX2] -// * VPADDSW m256, ymm, ymm [AVX2] -// * VPADDSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPADDSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPADDSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPADDSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPADDSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDSW", 3, Operands { v0, v1, v2 }) - // VPADDSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xed) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xed) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xed) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xed) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xed) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xed) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xed) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xed) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xed) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xed) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDSW") - } - return p -} - -// VPADDUSB performs "Add Packed Unsigned Byte Integers with Unsigned Saturation". -// -// Mnemonic : VPADDUSB -// Supported forms : (10 forms) -// -// * VPADDUSB xmm, xmm, xmm [AVX] -// * VPADDUSB m128, xmm, xmm [AVX] -// * VPADDUSB ymm, ymm, ymm [AVX2] -// * VPADDUSB m256, ymm, ymm [AVX2] -// * VPADDUSB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPADDUSB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPADDUSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDUSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDUSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPADDUSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPADDUSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDUSB", 3, Operands { v0, v1, v2 }) - // VPADDUSB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDUSB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdc) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDUSB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xdc) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDUSB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xdc) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDUSB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xdc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xdc) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDUSB") - } - return p -} - -// VPADDUSW performs "Add Packed Unsigned Word Integers with Unsigned Saturation". -// -// Mnemonic : VPADDUSW -// Supported forms : (10 forms) -// -// * VPADDUSW xmm, xmm, xmm [AVX] -// * VPADDUSW m128, xmm, xmm [AVX] -// * VPADDUSW ymm, ymm, ymm [AVX2] -// * VPADDUSW m256, ymm, ymm [AVX2] -// * VPADDUSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPADDUSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPADDUSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDUSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDUSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPADDUSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPADDUSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDUSW", 3, Operands { v0, v1, v2 }) - // VPADDUSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDUSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDUSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xdd) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDUSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xdd) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDUSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xdd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDUSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xdd) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDUSW") - } - return p -} - -// VPADDW performs "Add Packed Word Integers". -// -// Mnemonic : VPADDW -// Supported forms : (10 forms) -// -// * VPADDW xmm, xmm, xmm [AVX] -// * VPADDW m128, xmm, xmm [AVX] -// * VPADDW ymm, ymm, ymm [AVX2] -// * VPADDW m256, ymm, ymm [AVX2] -// * VPADDW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPADDW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPADDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPADDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPADDW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPADDW", 3, Operands { v0, v1, v2 }) - // VPADDW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfd) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPADDW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xfd) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPADDW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xfd) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPADDW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xfd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPADDW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xfd) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPADDW") - } - return p -} - -// VPALIGNR performs "Packed Align Right". -// -// Mnemonic : VPALIGNR -// Supported forms : (10 forms) -// -// * VPALIGNR imm8, xmm, xmm, xmm [AVX] -// * VPALIGNR imm8, m128, xmm, xmm [AVX] -// * VPALIGNR imm8, ymm, ymm, ymm [AVX2] -// * VPALIGNR imm8, m256, ymm, ymm [AVX2] -// * VPALIGNR imm8, zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPALIGNR imm8, m512, zmm, zmm{k}{z} [AVX512BW] -// * VPALIGNR imm8, xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPALIGNR imm8, m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPALIGNR imm8, ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPALIGNR imm8, m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPALIGNR(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPALIGNR", 4, Operands { v0, v1, v2, v3 }) - // VPALIGNR imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, m512, zmm, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x0f) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, m128, xmm, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x0f) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPALIGNR imm8, m256, ymm, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x0f) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPALIGNR") - } - return p -} - -// VPAND performs "Packed Bitwise Logical AND". -// -// Mnemonic : VPAND -// Supported forms : (4 forms) -// -// * VPAND xmm, xmm, xmm [AVX] -// * VPAND m128, xmm, xmm [AVX] -// * VPAND ymm, ymm, ymm [AVX2] -// * VPAND m256, ymm, ymm [AVX2] -// -func (self *Program) VPAND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPAND", 3, Operands { v0, v1, v2 }) - // VPAND xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAND m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPAND ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAND m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPAND") - } - return p -} - -// VPANDD performs "Bitwise Logical AND of Packed Doubleword Integers". -// -// Mnemonic : VPANDD -// Supported forms : (6 forms) -// -// * VPANDD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPANDD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPANDD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPANDD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPANDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPANDD", 3, Operands { v0, v1, v2 }) - // VPANDD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPANDD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPANDD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPANDD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPANDD") - } - return p -} - -// VPANDN performs "Packed Bitwise Logical AND NOT". -// -// Mnemonic : VPANDN -// Supported forms : (4 forms) -// -// * VPANDN xmm, xmm, xmm [AVX] -// * VPANDN m128, xmm, xmm [AVX] -// * VPANDN ymm, ymm, ymm [AVX2] -// * VPANDN m256, ymm, ymm [AVX2] -// -func (self *Program) VPANDN(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPANDN", 3, Operands { v0, v1, v2 }) - // VPANDN xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDN m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPANDN ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDN m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPANDN") - } - return p -} - -// VPANDND performs "Bitwise Logical AND NOT of Packed Doubleword Integers". -// -// Mnemonic : VPANDND -// Supported forms : (6 forms) -// -// * VPANDND m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPANDND zmm, zmm, zmm{k}{z} [AVX512F] -// * VPANDND m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDND xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDND m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPANDND ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPANDND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPANDND", 3, Operands { v0, v1, v2 }) - // VPANDND m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPANDND zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDND m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPANDND xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDND m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPANDND ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPANDND") - } - return p -} - -// VPANDNQ performs "Bitwise Logical AND NOT of Packed Quadword Integers". -// -// Mnemonic : VPANDNQ -// Supported forms : (6 forms) -// -// * VPANDNQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPANDNQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPANDNQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDNQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDNQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPANDNQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPANDNQ", 3, Operands { v0, v1, v2 }) - // VPANDNQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPANDNQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDNQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPANDNQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDNQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdf) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPANDNQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xdf) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPANDNQ") - } - return p -} - -// VPANDQ performs "Bitwise Logical AND of Packed Quadword Integers". -// -// Mnemonic : VPANDQ -// Supported forms : (6 forms) -// -// * VPANDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPANDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPANDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPANDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPANDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPANDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPANDQ", 3, Operands { v0, v1, v2 }) - // VPANDQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPANDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPANDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPANDQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xdb) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPANDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPANDQ") - } - return p -} - -// VPAVGB performs "Average Packed Byte Integers". -// -// Mnemonic : VPAVGB -// Supported forms : (10 forms) -// -// * VPAVGB xmm, xmm, xmm [AVX] -// * VPAVGB m128, xmm, xmm [AVX] -// * VPAVGB ymm, ymm, ymm [AVX2] -// * VPAVGB m256, ymm, ymm [AVX2] -// * VPAVGB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPAVGB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPAVGB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPAVGB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPAVGB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPAVGB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPAVGB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPAVGB", 3, Operands { v0, v1, v2 }) - // VPAVGB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe0) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPAVGB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe0) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPAVGB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe0) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPAVGB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe0) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPAVGB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe0) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPAVGB") - } - return p -} - -// VPAVGW performs "Average Packed Word Integers". -// -// Mnemonic : VPAVGW -// Supported forms : (10 forms) -// -// * VPAVGW xmm, xmm, xmm [AVX] -// * VPAVGW m128, xmm, xmm [AVX] -// * VPAVGW ymm, ymm, ymm [AVX2] -// * VPAVGW m256, ymm, ymm [AVX2] -// * VPAVGW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPAVGW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPAVGW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPAVGW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPAVGW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPAVGW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPAVGW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPAVGW", 3, Operands { v0, v1, v2 }) - // VPAVGW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe3) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPAVGW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe3) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPAVGW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe3) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPAVGW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPAVGW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPAVGW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe3) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPAVGW") - } - return p -} - -// VPBLENDD performs "Blend Packed Doublewords". -// -// Mnemonic : VPBLENDD -// Supported forms : (4 forms) -// -// * VPBLENDD imm8, xmm, xmm, xmm [AVX2] -// * VPBLENDD imm8, m128, xmm, xmm [AVX2] -// * VPBLENDD imm8, ymm, ymm, ymm [AVX2] -// * VPBLENDD imm8, m256, ymm, ymm [AVX2] -// -func (self *Program) VPBLENDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPBLENDD", 4, Operands { v0, v1, v2, v3 }) - // VPBLENDD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x02) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPBLENDD imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x02) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPBLENDD imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x02) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPBLENDD imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x02) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDD") - } - return p -} - -// VPBLENDMB performs "Blend Byte Vectors Using an OpMask Control". -// -// Mnemonic : VPBLENDMB -// Supported forms : (6 forms) -// -// * VPBLENDMB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPBLENDMB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPBLENDMB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBLENDMB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBLENDMB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPBLENDMB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPBLENDMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPBLENDMB", 3, Operands { v0, v1, v2 }) - // VPBLENDMB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPBLENDMB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPBLENDMB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDMB") - } - return p -} - -// VPBLENDMD performs "Blend Doubleword Vectors Using an OpMask Control". -// -// Mnemonic : VPBLENDMD -// Supported forms : (6 forms) -// -// * VPBLENDMD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPBLENDMD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPBLENDMD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBLENDMD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBLENDMD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPBLENDMD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPBLENDMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPBLENDMD", 3, Operands { v0, v1, v2 }) - // VPBLENDMD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPBLENDMD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPBLENDMD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPBLENDMD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDMD") - } - return p -} - -// VPBLENDMQ performs "Blend Quadword Vectors Using an OpMask Control". -// -// Mnemonic : VPBLENDMQ -// Supported forms : (6 forms) -// -// * VPBLENDMQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPBLENDMQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPBLENDMQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBLENDMQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBLENDMQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPBLENDMQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPBLENDMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPBLENDMQ", 3, Operands { v0, v1, v2 }) - // VPBLENDMQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPBLENDMQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPBLENDMQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPBLENDMQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDMQ") - } - return p -} - -// VPBLENDMW performs "Blend Word Vectors Using an OpMask Control". -// -// Mnemonic : VPBLENDMW -// Supported forms : (6 forms) -// -// * VPBLENDMW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPBLENDMW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPBLENDMW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBLENDMW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBLENDMW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPBLENDMW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPBLENDMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPBLENDMW", 3, Operands { v0, v1, v2 }) - // VPBLENDMW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPBLENDMW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPBLENDMW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPBLENDMW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDMW") - } - return p -} - -// VPBLENDVB performs "Variable Blend Packed Bytes". -// -// Mnemonic : VPBLENDVB -// Supported forms : (4 forms) -// -// * VPBLENDVB xmm, xmm, xmm, xmm [AVX] -// * VPBLENDVB xmm, m128, xmm, xmm [AVX] -// * VPBLENDVB ymm, ymm, ymm, ymm [AVX2] -// * VPBLENDVB ymm, m256, ymm, ymm [AVX2] -// -func (self *Program) VPBLENDVB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPBLENDVB", 4, Operands { v0, v1, v2, v3 }) - // VPBLENDVB xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPBLENDVB xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x4c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPBLENDVB ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPBLENDVB ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x4c) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDVB") - } - return p -} - -// VPBLENDW performs "Blend Packed Words". -// -// Mnemonic : VPBLENDW -// Supported forms : (4 forms) -// -// * VPBLENDW imm8, xmm, xmm, xmm [AVX] -// * VPBLENDW imm8, m128, xmm, xmm [AVX] -// * VPBLENDW imm8, ymm, ymm, ymm [AVX2] -// * VPBLENDW imm8, m256, ymm, ymm [AVX2] -// -func (self *Program) VPBLENDW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPBLENDW", 4, Operands { v0, v1, v2, v3 }) - // VPBLENDW imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x0e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPBLENDW imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPBLENDW imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x0e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPBLENDW imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPBLENDW") - } - return p -} - -// VPBROADCASTB performs "Broadcast Byte Integer". -// -// Mnemonic : VPBROADCASTB -// Supported forms : (13 forms) -// -// * VPBROADCASTB xmm, xmm [AVX2] -// * VPBROADCASTB m8, xmm [AVX2] -// * VPBROADCASTB xmm, ymm [AVX2] -// * VPBROADCASTB m8, ymm [AVX2] -// * VPBROADCASTB r32, zmm{k}{z} [AVX512BW] -// * VPBROADCASTB xmm, zmm{k}{z} [AVX512BW] -// * VPBROADCASTB m8, zmm{k}{z} [AVX512BW] -// * VPBROADCASTB r32, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTB r32, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTB xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTB xmm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTB m8, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTB m8, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPBROADCASTB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPBROADCASTB", 2, Operands { v0, v1 }) - // VPBROADCASTB xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB m8, xmm - if isM8(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTB xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB m8, ymm - if isM8(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTB r32, zmm{k}{z} - if isReg32(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB m8, zmm{k}{z} - if isM8(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTB r32, xmm{k}{z} - if isReg32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB r32, ymm{k}{z} - if isReg32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x78) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTB m8, xmm{k}{z} - if isM8(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTB m8, ymm{k}{z} - if isM8(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x78) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPBROADCASTB") - } - return p -} - -// VPBROADCASTD performs "Broadcast Doubleword Integer". -// -// Mnemonic : VPBROADCASTD -// Supported forms : (13 forms) -// -// * VPBROADCASTD xmm, xmm [AVX2] -// * VPBROADCASTD m32, xmm [AVX2] -// * VPBROADCASTD xmm, ymm [AVX2] -// * VPBROADCASTD m32, ymm [AVX2] -// * VPBROADCASTD r32, zmm{k}{z} [AVX512F] -// * VPBROADCASTD xmm, zmm{k}{z} [AVX512F] -// * VPBROADCASTD m32, zmm{k}{z} [AVX512F] -// * VPBROADCASTD r32, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTD r32, ymm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTD m32, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTD m32, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPBROADCASTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPBROADCASTD", 2, Operands { v0, v1 }) - // VPBROADCASTD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD m32, ymm - if isM32(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTD r32, zmm{k}{z} - if isReg32(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD m32, zmm{k}{z} - if isM32(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPBROADCASTD r32, xmm{k}{z} - if isReg32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD r32, ymm{k}{z} - if isReg32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x58) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTD m32, xmm{k}{z} - if isM32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPBROADCASTD m32, ymm{k}{z} - if isM32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x58) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPBROADCASTD") - } - return p -} - -// VPBROADCASTMB2Q performs "Broadcast Low Byte of Mask Register to Packed Quadword Values". -// -// Mnemonic : VPBROADCASTMB2Q -// Supported forms : (3 forms) -// -// * VPBROADCASTMB2Q k, xmm [AVX512CD,AVX512VL] -// * VPBROADCASTMB2Q k, ymm [AVX512CD,AVX512VL] -// * VPBROADCASTMB2Q k, zmm [AVX512CD] -// -func (self *Program) VPBROADCASTMB2Q(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPBROADCASTMB2Q", 2, Operands { v0, v1 }) - // VPBROADCASTMB2Q k, xmm - if isK(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x08) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTMB2Q k, ymm - if isK(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x28) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTMB2Q k, zmm - if isK(v0) && isZMM(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x2a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPBROADCASTMB2Q") - } - return p -} - -// VPBROADCASTMW2D performs "Broadcast Low Word of Mask Register to Packed Doubleword Values". -// -// Mnemonic : VPBROADCASTMW2D -// Supported forms : (3 forms) -// -// * VPBROADCASTMW2D k, xmm [AVX512CD,AVX512VL] -// * VPBROADCASTMW2D k, ymm [AVX512CD,AVX512VL] -// * VPBROADCASTMW2D k, zmm [AVX512CD] -// -func (self *Program) VPBROADCASTMW2D(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPBROADCASTMW2D", 2, Operands { v0, v1 }) - // VPBROADCASTMW2D k, xmm - if isK(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x08) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTMW2D k, ymm - if isK(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x28) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTMW2D k, zmm - if isK(v0) && isZMM(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPBROADCASTMW2D") - } - return p -} - -// VPBROADCASTQ performs "Broadcast Quadword Integer". -// -// Mnemonic : VPBROADCASTQ -// Supported forms : (13 forms) -// -// * VPBROADCASTQ xmm, xmm [AVX2] -// * VPBROADCASTQ m64, xmm [AVX2] -// * VPBROADCASTQ xmm, ymm [AVX2] -// * VPBROADCASTQ m64, ymm [AVX2] -// * VPBROADCASTQ r64, zmm{k}{z} [AVX512F] -// * VPBROADCASTQ xmm, zmm{k}{z} [AVX512F] -// * VPBROADCASTQ m64, zmm{k}{z} [AVX512F] -// * VPBROADCASTQ r64, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTQ r64, ymm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTQ m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VPBROADCASTQ m64, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPBROADCASTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPBROADCASTQ", 2, Operands { v0, v1 }) - // VPBROADCASTQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ m64, ymm - if isM64(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTQ r64, zmm{k}{z} - if isReg64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ m64, zmm{k}{z} - if isM64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPBROADCASTQ r64, xmm{k}{z} - if isReg64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ r64, ymm{k}{z} - if isReg64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x59) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTQ m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPBROADCASTQ m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x59) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPBROADCASTQ") - } - return p -} - -// VPBROADCASTW performs "Broadcast Word Integer". -// -// Mnemonic : VPBROADCASTW -// Supported forms : (13 forms) -// -// * VPBROADCASTW xmm, xmm [AVX2] -// * VPBROADCASTW m16, xmm [AVX2] -// * VPBROADCASTW xmm, ymm [AVX2] -// * VPBROADCASTW m16, ymm [AVX2] -// * VPBROADCASTW r32, zmm{k}{z} [AVX512BW] -// * VPBROADCASTW xmm, zmm{k}{z} [AVX512BW] -// * VPBROADCASTW m16, zmm{k}{z} [AVX512BW] -// * VPBROADCASTW r32, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTW r32, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTW xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTW xmm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTW m16, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPBROADCASTW m16, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPBROADCASTW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPBROADCASTW", 2, Operands { v0, v1 }) - // VPBROADCASTW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW m16, xmm - if isM16(v0) && isXMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTW xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW m16, ymm - if isM16(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPBROADCASTW r32, zmm{k}{z} - if isReg32(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW m16, zmm{k}{z} - if isM16(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 2) - }) - } - // VPBROADCASTW r32, xmm{k}{z} - if isReg32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW r32, ymm{k}{z} - if isReg32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x7b) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x79) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPBROADCASTW m16, xmm{k}{z} - if isM16(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 2) - }) - } - // VPBROADCASTW m16, ymm{k}{z} - if isM16(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x79) - m.mrsd(lcode(v[1]), addr(v[0]), 2) - }) - } - if p.len == 0 { - panic("invalid operands for VPBROADCASTW") - } - return p -} - -// VPCLMULQDQ performs "Carry-Less Quadword Multiplication". -// -// Mnemonic : VPCLMULQDQ -// Supported forms : (2 forms) -// -// * VPCLMULQDQ imm8, xmm, xmm, xmm [AVX,PCLMULQDQ] -// * VPCLMULQDQ imm8, m128, xmm, xmm [AVX,PCLMULQDQ] -// -func (self *Program) VPCLMULQDQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCLMULQDQ", 4, Operands { v0, v1, v2, v3 }) - // VPCLMULQDQ imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX | ISA_PCLMULQDQ) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x44) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCLMULQDQ imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX | ISA_PCLMULQDQ) - p.domain = DomainCrypto - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x44) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCLMULQDQ") - } - return p -} - -// VPCMOV performs "Packed Conditional Move". -// -// Mnemonic : VPCMOV -// Supported forms : (6 forms) -// -// * VPCMOV xmm, xmm, xmm, xmm [XOP] -// * VPCMOV m128, xmm, xmm, xmm [XOP] -// * VPCMOV xmm, m128, xmm, xmm [XOP] -// * VPCMOV ymm, ymm, ymm, ymm [XOP] -// * VPCMOV m256, ymm, ymm, ymm [XOP] -// * VPCMOV ymm, m256, ymm, ymm [XOP] -// -func (self *Program) VPCMOV(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMOV", 4, Operands { v0, v1, v2, v3 }) - // VPCMOV xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xa2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[2]) << 3)) - m.emit(0xa2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - } - // VPCMOV m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x80, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0xa2) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VPCMOV xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xa2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPCMOV ymm, ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit(0xa2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfc ^ (hlcode(v[2]) << 3)) - m.emit(0xa2) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - } - // VPCMOV m256, ymm, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x84, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0xa2) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VPCMOV ymm, m256, ymm, ymm - if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x04, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xa2) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMOV") - } - return p -} - -// VPCMPB performs "Compare Packed Signed Byte Values". -// -// Mnemonic : VPCMPB -// Supported forms : (6 forms) -// -// * VPCMPB imm8, zmm, zmm, k{k} [AVX512BW] -// * VPCMPB imm8, m512, zmm, k{k} [AVX512BW] -// * VPCMPB imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPB imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPB imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPB imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPB", 4, Operands { v0, v1, v2, v3 }) - // VPCMPB imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPB imm8, m512, zmm, k{k} - if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3f) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPB imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPB imm8, m128, xmm, k{k} - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3f) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPB imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPB imm8, m256, ymm, k{k} - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3f) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPB") - } - return p -} - -// VPCMPD performs "Compare Packed Signed Doubleword Values". -// -// Mnemonic : VPCMPD -// Supported forms : (6 forms) -// -// * VPCMPD imm8, m512/m32bcst, zmm, k{k} [AVX512F] -// * VPCMPD imm8, zmm, zmm, k{k} [AVX512F] -// * VPCMPD imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPD imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPD", 4, Operands { v0, v1, v2, v3 }) - // VPCMPD imm8, m512/m32bcst, zmm, k{k} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1f) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPD imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPD imm8, m128/m32bcst, xmm, k{k} - if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1f) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPD imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPD imm8, m256/m32bcst, ymm, k{k} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1f) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPD imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPD") - } - return p -} - -// VPCMPEQB performs "Compare Packed Byte Data for Equality". -// -// Mnemonic : VPCMPEQB -// Supported forms : (10 forms) -// -// * VPCMPEQB xmm, xmm, xmm [AVX] -// * VPCMPEQB m128, xmm, xmm [AVX] -// * VPCMPEQB ymm, ymm, ymm [AVX2] -// * VPCMPEQB m256, ymm, ymm [AVX2] -// * VPCMPEQB zmm, zmm, k{k} [AVX512BW] -// * VPCMPEQB m512, zmm, k{k} [AVX512BW] -// * VPCMPEQB xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPEQB m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPEQB ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPEQB m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPEQB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPEQB", 3, Operands { v0, v1, v2 }) - // VPCMPEQB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x74) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x74) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x74) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x74) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQB zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x74) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQB m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x74) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPEQB xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x74) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQB m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x74) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPEQB ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x74) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQB m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x74) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPEQB") - } - return p -} - -// VPCMPEQD performs "Compare Packed Doubleword Data for Equality". -// -// Mnemonic : VPCMPEQD -// Supported forms : (10 forms) -// -// * VPCMPEQD xmm, xmm, xmm [AVX] -// * VPCMPEQD m128, xmm, xmm [AVX] -// * VPCMPEQD ymm, ymm, ymm [AVX2] -// * VPCMPEQD m256, ymm, ymm [AVX2] -// * VPCMPEQD m512/m32bcst, zmm, k{k} [AVX512F] -// * VPCMPEQD zmm, zmm, k{k} [AVX512F] -// * VPCMPEQD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPEQD xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPEQD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPEQD ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPEQD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPEQD", 3, Operands { v0, v1, v2 }) - // VPCMPEQD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQD m512/m32bcst, zmm, k{k} - if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPEQD zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQD m128/m32bcst, xmm, k{k} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPEQD xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQD m256/m32bcst, ymm, k{k} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPCMPEQD ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPEQD") - } - return p -} - -// VPCMPEQQ performs "Compare Packed Quadword Data for Equality". -// -// Mnemonic : VPCMPEQQ -// Supported forms : (10 forms) -// -// * VPCMPEQQ xmm, xmm, xmm [AVX] -// * VPCMPEQQ m128, xmm, xmm [AVX] -// * VPCMPEQQ ymm, ymm, ymm [AVX2] -// * VPCMPEQQ m256, ymm, ymm [AVX2] -// * VPCMPEQQ m512/m64bcst, zmm, k{k} [AVX512F] -// * VPCMPEQQ zmm, zmm, k{k} [AVX512F] -// * VPCMPEQQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPEQQ xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPEQQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPEQQ ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPEQQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPEQQ", 3, Operands { v0, v1, v2 }) - // VPCMPEQQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x29) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x29) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x29) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x29) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQQ m512/m64bcst, zmm, k{k} - if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x29) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPEQQ zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x29) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQQ m128/m64bcst, xmm, k{k} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x29) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPEQQ xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x29) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQQ m256/m64bcst, ymm, k{k} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x29) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPCMPEQQ ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x29) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPEQQ") - } - return p -} - -// VPCMPEQW performs "Compare Packed Word Data for Equality". -// -// Mnemonic : VPCMPEQW -// Supported forms : (10 forms) -// -// * VPCMPEQW xmm, xmm, xmm [AVX] -// * VPCMPEQW m128, xmm, xmm [AVX] -// * VPCMPEQW ymm, ymm, ymm [AVX2] -// * VPCMPEQW m256, ymm, ymm [AVX2] -// * VPCMPEQW zmm, zmm, k{k} [AVX512BW] -// * VPCMPEQW m512, zmm, k{k} [AVX512BW] -// * VPCMPEQW xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPEQW m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPEQW ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPEQW m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPEQW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPEQW", 3, Operands { v0, v1, v2 }) - // VPCMPEQW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPEQW zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQW m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPEQW xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQW m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPEQW ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPEQW m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPEQW") - } - return p -} - -// VPCMPESTRI performs "Packed Compare Explicit Length Strings, Return Index". -// -// Mnemonic : VPCMPESTRI -// Supported forms : (2 forms) -// -// * VPCMPESTRI imm8, xmm, xmm [AVX] -// * VPCMPESTRI imm8, m128, xmm [AVX] -// -func (self *Program) VPCMPESTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPESTRI", 3, Operands { v0, v1, v2 }) - // VPCMPESTRI imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPESTRI imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPESTRI") - } - return p -} - -// VPCMPESTRM performs "Packed Compare Explicit Length Strings, Return Mask". -// -// Mnemonic : VPCMPESTRM -// Supported forms : (2 forms) -// -// * VPCMPESTRM imm8, xmm, xmm [AVX] -// * VPCMPESTRM imm8, m128, xmm [AVX] -// -func (self *Program) VPCMPESTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPESTRM", 3, Operands { v0, v1, v2 }) - // VPCMPESTRM imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPESTRM imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPESTRM") - } - return p -} - -// VPCMPGTB performs "Compare Packed Signed Byte Integers for Greater Than". -// -// Mnemonic : VPCMPGTB -// Supported forms : (10 forms) -// -// * VPCMPGTB xmm, xmm, xmm [AVX] -// * VPCMPGTB m128, xmm, xmm [AVX] -// * VPCMPGTB ymm, ymm, ymm [AVX2] -// * VPCMPGTB m256, ymm, ymm [AVX2] -// * VPCMPGTB zmm, zmm, k{k} [AVX512BW] -// * VPCMPGTB m512, zmm, k{k} [AVX512BW] -// * VPCMPGTB xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPGTB m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPGTB ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPGTB m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPGTB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPGTB", 3, Operands { v0, v1, v2 }) - // VPCMPGTB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTB zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTB m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPGTB xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTB m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPGTB ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x64) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTB m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x64) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPGTB") - } - return p -} - -// VPCMPGTD performs "Compare Packed Signed Doubleword Integers for Greater Than". -// -// Mnemonic : VPCMPGTD -// Supported forms : (10 forms) -// -// * VPCMPGTD xmm, xmm, xmm [AVX] -// * VPCMPGTD m128, xmm, xmm [AVX] -// * VPCMPGTD ymm, ymm, ymm [AVX2] -// * VPCMPGTD m256, ymm, ymm [AVX2] -// * VPCMPGTD m512/m32bcst, zmm, k{k} [AVX512F] -// * VPCMPGTD zmm, zmm, k{k} [AVX512F] -// * VPCMPGTD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPGTD xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPGTD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPGTD ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPGTD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPGTD", 3, Operands { v0, v1, v2 }) - // VPCMPGTD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTD m512/m32bcst, zmm, k{k} - if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPGTD zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTD m128/m32bcst, xmm, k{k} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPGTD xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTD m256/m32bcst, ymm, k{k} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x66) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPCMPGTD ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x66) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPGTD") - } - return p -} - -// VPCMPGTQ performs "Compare Packed Data for Greater Than". -// -// Mnemonic : VPCMPGTQ -// Supported forms : (10 forms) -// -// * VPCMPGTQ xmm, xmm, xmm [AVX] -// * VPCMPGTQ m128, xmm, xmm [AVX] -// * VPCMPGTQ ymm, ymm, ymm [AVX2] -// * VPCMPGTQ m256, ymm, ymm [AVX2] -// * VPCMPGTQ m512/m64bcst, zmm, k{k} [AVX512F] -// * VPCMPGTQ zmm, zmm, k{k} [AVX512F] -// * VPCMPGTQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPGTQ xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPGTQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPGTQ ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPGTQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPGTQ", 3, Operands { v0, v1, v2 }) - // VPCMPGTQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x37) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x37) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x37) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x37) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTQ m512/m64bcst, zmm, k{k} - if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x37) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPGTQ zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x37) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTQ m128/m64bcst, xmm, k{k} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x37) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPGTQ xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x37) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTQ m256/m64bcst, ymm, k{k} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x37) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPCMPGTQ ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x37) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPGTQ") - } - return p -} - -// VPCMPGTW performs "Compare Packed Signed Word Integers for Greater Than". -// -// Mnemonic : VPCMPGTW -// Supported forms : (10 forms) -// -// * VPCMPGTW xmm, xmm, xmm [AVX] -// * VPCMPGTW m128, xmm, xmm [AVX] -// * VPCMPGTW ymm, ymm, ymm [AVX2] -// * VPCMPGTW m256, ymm, ymm [AVX2] -// * VPCMPGTW zmm, zmm, k{k} [AVX512BW] -// * VPCMPGTW m512, zmm, k{k} [AVX512BW] -// * VPCMPGTW xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPGTW m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPGTW ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPGTW m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPGTW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPGTW", 3, Operands { v0, v1, v2 }) - // VPCMPGTW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPCMPGTW zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTW m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPCMPGTW xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTW m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPCMPGTW ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x65) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPCMPGTW m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x65) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPGTW") - } - return p -} - -// VPCMPISTRI performs "Packed Compare Implicit Length Strings, Return Index". -// -// Mnemonic : VPCMPISTRI -// Supported forms : (2 forms) -// -// * VPCMPISTRI imm8, xmm, xmm [AVX] -// * VPCMPISTRI imm8, m128, xmm [AVX] -// -func (self *Program) VPCMPISTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPISTRI", 3, Operands { v0, v1, v2 }) - // VPCMPISTRI imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x63) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPISTRI imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x63) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPISTRI") - } - return p -} - -// VPCMPISTRM performs "Packed Compare Implicit Length Strings, Return Mask". -// -// Mnemonic : VPCMPISTRM -// Supported forms : (2 forms) -// -// * VPCMPISTRM imm8, xmm, xmm [AVX] -// * VPCMPISTRM imm8, m128, xmm [AVX] -// -func (self *Program) VPCMPISTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPCMPISTRM", 3, Operands { v0, v1, v2 }) - // VPCMPISTRM imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPISTRM imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPISTRM") - } - return p -} - -// VPCMPQ performs "Compare Packed Signed Quadword Values". -// -// Mnemonic : VPCMPQ -// Supported forms : (6 forms) -// -// * VPCMPQ imm8, m512/m64bcst, zmm, k{k} [AVX512F] -// * VPCMPQ imm8, zmm, zmm, k{k} [AVX512F] -// * VPCMPQ imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPQ imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPQ imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPQ imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPQ", 4, Operands { v0, v1, v2, v3 }) - // VPCMPQ imm8, m512/m64bcst, zmm, k{k} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1f) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPQ imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPQ imm8, m128/m64bcst, xmm, k{k} - if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1f) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPQ imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPQ imm8, m256/m64bcst, ymm, k{k} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1f) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPQ imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x1f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPQ") - } - return p -} - -// VPCMPUB performs "Compare Packed Unsigned Byte Values". -// -// Mnemonic : VPCMPUB -// Supported forms : (6 forms) -// -// * VPCMPUB imm8, zmm, zmm, k{k} [AVX512BW] -// * VPCMPUB imm8, m512, zmm, k{k} [AVX512BW] -// * VPCMPUB imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPUB imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPUB imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPUB imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPUB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPUB", 4, Operands { v0, v1, v2, v3 }) - // VPCMPUB imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUB imm8, m512, zmm, k{k} - if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3e) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUB imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUB imm8, m128, xmm, k{k} - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3e) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUB imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUB imm8, m256, ymm, k{k} - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3e) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPUB") - } - return p -} - -// VPCMPUD performs "Compare Packed Unsigned Doubleword Values". -// -// Mnemonic : VPCMPUD -// Supported forms : (6 forms) -// -// * VPCMPUD imm8, m512/m32bcst, zmm, k{k} [AVX512F] -// * VPCMPUD imm8, zmm, zmm, k{k} [AVX512F] -// * VPCMPUD imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPUD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPUD imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPUD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPUD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPUD", 4, Operands { v0, v1, v2, v3 }) - // VPCMPUD imm8, m512/m32bcst, zmm, k{k} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1e) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUD imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUD imm8, m128/m32bcst, xmm, k{k} - if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1e) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUD imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUD imm8, m256/m32bcst, ymm, k{k} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1e) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUD imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPUD") - } - return p -} - -// VPCMPUQ performs "Compare Packed Unsigned Quadword Values". -// -// Mnemonic : VPCMPUQ -// Supported forms : (6 forms) -// -// * VPCMPUQ imm8, m512/m64bcst, zmm, k{k} [AVX512F] -// * VPCMPUQ imm8, zmm, zmm, k{k} [AVX512F] -// * VPCMPUQ imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPUQ imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPCMPUQ imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPCMPUQ imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPCMPUQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPUQ", 4, Operands { v0, v1, v2, v3 }) - // VPCMPUQ imm8, m512/m64bcst, zmm, k{k} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1e) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUQ imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUQ imm8, m128/m64bcst, xmm, k{k} - if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1e) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUQ imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUQ imm8, m256/m64bcst, ymm, k{k} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) - m.emit(0x1e) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUQ imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x1e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPUQ") - } - return p -} - -// VPCMPUW performs "Compare Packed Unsigned Word Values". -// -// Mnemonic : VPCMPUW -// Supported forms : (6 forms) -// -// * VPCMPUW imm8, zmm, zmm, k{k} [AVX512BW] -// * VPCMPUW imm8, m512, zmm, k{k} [AVX512BW] -// * VPCMPUW imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPUW imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPUW imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPUW imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPUW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPUW", 4, Operands { v0, v1, v2, v3 }) - // VPCMPUW imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUW imm8, m512, zmm, k{k} - if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3e) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUW imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUW imm8, m128, xmm, k{k} - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3e) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUW imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPUW imm8, m256, ymm, k{k} - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3e) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPUW") - } - return p -} - -// VPCMPW performs "Compare Packed Signed Word Values". -// -// Mnemonic : VPCMPW -// Supported forms : (6 forms) -// -// * VPCMPW imm8, zmm, zmm, k{k} [AVX512BW] -// * VPCMPW imm8, m512, zmm, k{k} [AVX512BW] -// * VPCMPW imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPW imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPCMPW imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPCMPW imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPCMPW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCMPW", 4, Operands { v0, v1, v2, v3 }) - // VPCMPW imm8, zmm, zmm, k{k} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPW imm8, m512, zmm, k{k} - if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3f) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPW imm8, xmm, xmm, k{k} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPW imm8, m128, xmm, k{k} - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3f) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPW imm8, ymm, ymm, k{k} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCMPW imm8, m256, ymm, k{k} - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) - m.emit(0x3f) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCMPW") - } - return p -} - -// VPCOMB performs "Compare Packed Signed Byte Integers". -// -// Mnemonic : VPCOMB -// Supported forms : (2 forms) -// -// * VPCOMB imm8, xmm, xmm, xmm [XOP] -// * VPCOMB imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMB", 4, Operands { v0, v1, v2, v3 }) - // VPCOMB imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMB imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xcc) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMB") - } - return p -} - -// VPCOMD performs "Compare Packed Signed Doubleword Integers". -// -// Mnemonic : VPCOMD -// Supported forms : (2 forms) -// -// * VPCOMD imm8, xmm, xmm, xmm [XOP] -// * VPCOMD imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMD", 4, Operands { v0, v1, v2, v3 }) - // VPCOMD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xce) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMD imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xce) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMD") - } - return p -} - -// VPCOMPRESSD performs "Store Sparse Packed Doubleword Integer Values into Dense Memory/Register". -// -// Mnemonic : VPCOMPRESSD -// Supported forms : (6 forms) -// -// * VPCOMPRESSD zmm, zmm{k}{z} [AVX512F] -// * VPCOMPRESSD zmm, m512{k}{z} [AVX512F] -// * VPCOMPRESSD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPCOMPRESSD xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VPCOMPRESSD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPCOMPRESSD ymm, m256{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPCOMPRESSD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPCOMPRESSD", 2, Operands { v0, v1 }) - // VPCOMPRESSD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPCOMPRESSD zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8b) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPCOMPRESSD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPCOMPRESSD xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8b) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPCOMPRESSD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPCOMPRESSD ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8b) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMPRESSD") - } - return p -} - -// VPCOMPRESSQ performs "Store Sparse Packed Quadword Integer Values into Dense Memory/Register". -// -// Mnemonic : VPCOMPRESSQ -// Supported forms : (6 forms) -// -// * VPCOMPRESSQ zmm, zmm{k}{z} [AVX512F] -// * VPCOMPRESSQ zmm, m512{k}{z} [AVX512F] -// * VPCOMPRESSQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPCOMPRESSQ xmm, m128{k}{z} [AVX512F,AVX512VL] -// * VPCOMPRESSQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPCOMPRESSQ ymm, m256{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPCOMPRESSQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPCOMPRESSQ", 2, Operands { v0, v1 }) - // VPCOMPRESSQ zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPCOMPRESSQ zmm, m512{k}{z} - if isZMM(v0) && isM512kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8b) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPCOMPRESSQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPCOMPRESSQ xmm, m128{k}{z} - if isEVEXXMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8b) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPCOMPRESSQ ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x8b) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPCOMPRESSQ ymm, m256{k}{z} - if isEVEXYMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x8b) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMPRESSQ") - } - return p -} - -// VPCOMQ performs "Compare Packed Signed Quadword Integers". -// -// Mnemonic : VPCOMQ -// Supported forms : (2 forms) -// -// * VPCOMQ imm8, xmm, xmm, xmm [XOP] -// * VPCOMQ imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMQ", 4, Operands { v0, v1, v2, v3 }) - // VPCOMQ imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xcf) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMQ imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xcf) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMQ") - } - return p -} - -// VPCOMUB performs "Compare Packed Unsigned Byte Integers". -// -// Mnemonic : VPCOMUB -// Supported forms : (2 forms) -// -// * VPCOMUB imm8, xmm, xmm, xmm [XOP] -// * VPCOMUB imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMUB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMUB", 4, Operands { v0, v1, v2, v3 }) - // VPCOMUB imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xec) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMUB imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xec) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMUB") - } - return p -} - -// VPCOMUD performs "Compare Packed Unsigned Doubleword Integers". -// -// Mnemonic : VPCOMUD -// Supported forms : (2 forms) -// -// * VPCOMUD imm8, xmm, xmm, xmm [XOP] -// * VPCOMUD imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMUD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMUD", 4, Operands { v0, v1, v2, v3 }) - // VPCOMUD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xee) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMUD imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xee) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMUD") - } - return p -} - -// VPCOMUQ performs "Compare Packed Unsigned Quadword Integers". -// -// Mnemonic : VPCOMUQ -// Supported forms : (2 forms) -// -// * VPCOMUQ imm8, xmm, xmm, xmm [XOP] -// * VPCOMUQ imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMUQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMUQ", 4, Operands { v0, v1, v2, v3 }) - // VPCOMUQ imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xef) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMUQ imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xef) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMUQ") - } - return p -} - -// VPCOMUW performs "Compare Packed Unsigned Word Integers". -// -// Mnemonic : VPCOMUW -// Supported forms : (2 forms) -// -// * VPCOMUW imm8, xmm, xmm, xmm [XOP] -// * VPCOMUW imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMUW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMUW", 4, Operands { v0, v1, v2, v3 }) - // VPCOMUW imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xed) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMUW imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xed) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMUW") - } - return p -} - -// VPCOMW performs "Compare Packed Signed Word Integers". -// -// Mnemonic : VPCOMW -// Supported forms : (2 forms) -// -// * VPCOMW imm8, xmm, xmm, xmm [XOP] -// * VPCOMW imm8, m128, xmm, xmm [XOP] -// -func (self *Program) VPCOMW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPCOMW", 4, Operands { v0, v1, v2, v3 }) - // VPCOMW imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xcd) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPCOMW imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xcd) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCOMW") - } - return p -} - -// VPCONFLICTD performs "Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register". -// -// Mnemonic : VPCONFLICTD -// Supported forms : (6 forms) -// -// * VPCONFLICTD m128/m32bcst, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTD m256/m32bcst, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTD m512/m32bcst, zmm{k}{z} [AVX512CD] -// * VPCONFLICTD xmm, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTD ymm, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTD zmm, zmm{k}{z} [AVX512CD] -// -func (self *Program) VPCONFLICTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPCONFLICTD", 2, Operands { v0, v1 }) - // VPCONFLICTD m128/m32bcst, xmm{k}{z} - if isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc4) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPCONFLICTD m256/m32bcst, ymm{k}{z} - if isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc4) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPCONFLICTD m512/m32bcst, zmm{k}{z} - if isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc4) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPCONFLICTD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPCONFLICTD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPCONFLICTD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCONFLICTD") - } - return p -} - -// VPCONFLICTQ performs "Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register". -// -// Mnemonic : VPCONFLICTQ -// Supported forms : (6 forms) -// -// * VPCONFLICTQ m128/m64bcst, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTQ m256/m64bcst, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTQ m512/m64bcst, zmm{k}{z} [AVX512CD] -// * VPCONFLICTQ xmm, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTQ ymm, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPCONFLICTQ zmm, zmm{k}{z} [AVX512CD] -// -func (self *Program) VPCONFLICTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPCONFLICTQ", 2, Operands { v0, v1 }) - // VPCONFLICTQ m128/m64bcst, xmm{k}{z} - if isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc4) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPCONFLICTQ m256/m64bcst, ymm{k}{z} - if isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc4) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPCONFLICTQ m512/m64bcst, zmm{k}{z} - if isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xc4) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPCONFLICTQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPCONFLICTQ ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPCONFLICTQ zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPCONFLICTQ") - } - return p -} - -// VPERM2F128 performs "Permute Floating-Point Values". -// -// Mnemonic : VPERM2F128 -// Supported forms : (2 forms) -// -// * VPERM2F128 imm8, ymm, ymm, ymm [AVX] -// * VPERM2F128 imm8, m256, ymm, ymm [AVX] -// -func (self *Program) VPERM2F128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPERM2F128", 4, Operands { v0, v1, v2, v3 }) - // VPERM2F128 imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x06) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERM2F128 imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x06) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERM2F128") - } - return p -} - -// VPERM2I128 performs "Permute 128-Bit Integer Values". -// -// Mnemonic : VPERM2I128 -// Supported forms : (2 forms) -// -// * VPERM2I128 imm8, ymm, ymm, ymm [AVX2] -// * VPERM2I128 imm8, m256, ymm, ymm [AVX2] -// -func (self *Program) VPERM2I128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPERM2I128", 4, Operands { v0, v1, v2, v3 }) - // VPERM2I128 imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit(0x46) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERM2I128 imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x46) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERM2I128") - } - return p -} - -// VPERMB performs "Permute Byte Integers". -// -// Mnemonic : VPERMB -// Supported forms : (6 forms) -// -// * VPERMB xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMB m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMB ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMB m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMB zmm, zmm, zmm{k}{z} [AVX512VBMI] -// * VPERMB m512, zmm, zmm{k}{z} [AVX512VBMI] -// -func (self *Program) VPERMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMB", 3, Operands { v0, v1, v2 }) - // VPERMB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x8d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x8d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x8d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x8d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x8d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x8d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMB") - } - return p -} - -// VPERMD performs "Permute Doubleword Integers". -// -// Mnemonic : VPERMD -// Supported forms : (6 forms) -// -// * VPERMD ymm, ymm, ymm [AVX2] -// * VPERMD m256, ymm, ymm [AVX2] -// * VPERMD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMD", 3, Operands { v0, v1, v2 }) - // VPERMD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x36) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x36) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPERMD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x36) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x36) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x36) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x36) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMD") - } - return p -} - -// VPERMI2B performs "Full Permute of Bytes From Two Tables Overwriting the Index". -// -// Mnemonic : VPERMI2B -// Supported forms : (6 forms) -// -// * VPERMI2B xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMI2B m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMI2B ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMI2B m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMI2B zmm, zmm, zmm{k}{z} [AVX512VBMI] -// * VPERMI2B m512, zmm, zmm{k}{z} [AVX512VBMI] -// -func (self *Program) VPERMI2B(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMI2B", 3, Operands { v0, v1, v2 }) - // VPERMI2B xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2B m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMI2B ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2B m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMI2B zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2B m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMI2B") - } - return p -} - -// VPERMI2D performs "Full Permute of Doublewords From Two Tables Overwriting the Index". -// -// Mnemonic : VPERMI2D -// Supported forms : (6 forms) -// -// * VPERMI2D m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2D zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2D m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2D xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2D m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2D ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMI2D(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMI2D", 3, Operands { v0, v1, v2 }) - // VPERMI2D m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMI2D zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2D m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMI2D xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2D m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMI2D ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMI2D") - } - return p -} - -// VPERMI2PD performs "Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index". -// -// Mnemonic : VPERMI2PD -// Supported forms : (6 forms) -// -// * VPERMI2PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMI2PD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMI2PD", 3, Operands { v0, v1, v2 }) - // VPERMI2PD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x77) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMI2PD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x77) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2PD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x77) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMI2PD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x77) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2PD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x77) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMI2PD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x77) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMI2PD") - } - return p -} - -// VPERMI2PS performs "Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index". -// -// Mnemonic : VPERMI2PS -// Supported forms : (6 forms) -// -// * VPERMI2PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMI2PS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMI2PS", 3, Operands { v0, v1, v2 }) - // VPERMI2PS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x77) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMI2PS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x77) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2PS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x77) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMI2PS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x77) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2PS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x77) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMI2PS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x77) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMI2PS") - } - return p -} - -// VPERMI2Q performs "Full Permute of Quadwords From Two Tables Overwriting the Index". -// -// Mnemonic : VPERMI2Q -// Supported forms : (6 forms) -// -// * VPERMI2Q m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2Q zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMI2Q m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2Q xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2Q m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMI2Q ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMI2Q(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMI2Q", 3, Operands { v0, v1, v2 }) - // VPERMI2Q m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMI2Q zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2Q m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMI2Q xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2Q m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x76) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMI2Q ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x76) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMI2Q") - } - return p -} - -// VPERMI2W performs "Full Permute of Words From Two Tables Overwriting the Index". -// -// Mnemonic : VPERMI2W -// Supported forms : (6 forms) -// -// * VPERMI2W zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPERMI2W m512, zmm, zmm{k}{z} [AVX512BW] -// * VPERMI2W xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPERMI2W m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPERMI2W ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPERMI2W m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPERMI2W(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMI2W", 3, Operands { v0, v1, v2 }) - // VPERMI2W zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2W m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMI2W xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2W m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMI2W ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x75) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMI2W m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x75) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMI2W") - } - return p -} - -// VPERMIL2PD performs "Permute Two-Source Double-Precision Floating-Point Vectors". -// -// Mnemonic : VPERMIL2PD -// Supported forms : (6 forms) -// -// * VPERMIL2PD imm4, xmm, xmm, xmm, xmm [XOP] -// * VPERMIL2PD imm4, m128, xmm, xmm, xmm [XOP] -// * VPERMIL2PD imm4, xmm, m128, xmm, xmm [XOP] -// * VPERMIL2PD imm4, ymm, ymm, ymm, ymm [XOP] -// * VPERMIL2PD imm4, m256, ymm, ymm, ymm [XOP] -// * VPERMIL2PD imm4, ymm, m256, ymm, ymm [XOP] -// -func (self *Program) VPERMIL2PD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, v4 interface{}) *Instruction { - p := self.alloc("VPERMIL2PD", 5, Operands { v0, v1, v2, v3, v4 }) - // VPERMIL2PD imm4, xmm, xmm, xmm, xmm - if isImm4(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79 ^ (hlcode(v[3]) << 3)) - m.emit(0x49) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf9 ^ (hlcode(v[3]) << 3)) - m.emit(0x49) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PD imm4, m128, xmm, xmm, xmm - if isImm4(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[4]), addr(v[1]), hlcode(v[3])) - m.emit(0x49) - m.mrsd(lcode(v[4]), addr(v[1]), 1) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PD imm4, xmm, m128, xmm, xmm - if isImm4(v0) && isXMM(v1) && isM128(v2) && isXMM(v3) && isXMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[4]), addr(v[2]), hlcode(v[3])) - m.emit(0x49) - m.mrsd(lcode(v[4]), addr(v[2]), 1) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PD imm4, ymm, ymm, ymm, ymm - if isImm4(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit(0x49) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit(0x49) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PD imm4, m256, ymm, ymm, ymm - if isImm4(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[4]), addr(v[1]), hlcode(v[3])) - m.emit(0x49) - m.mrsd(lcode(v[4]), addr(v[1]), 1) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PD imm4, ymm, m256, ymm, ymm - if isImm4(v0) && isYMM(v1) && isM256(v2) && isYMM(v3) && isYMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[4]), addr(v[2]), hlcode(v[3])) - m.emit(0x49) - m.mrsd(lcode(v[4]), addr(v[2]), 1) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMIL2PD") - } - return p -} - -// VPERMIL2PS performs "Permute Two-Source Single-Precision Floating-Point Vectors". -// -// Mnemonic : VPERMIL2PS -// Supported forms : (6 forms) -// -// * VPERMIL2PS imm4, xmm, xmm, xmm, xmm [XOP] -// * VPERMIL2PS imm4, m128, xmm, xmm, xmm [XOP] -// * VPERMIL2PS imm4, xmm, m128, xmm, xmm [XOP] -// * VPERMIL2PS imm4, ymm, ymm, ymm, ymm [XOP] -// * VPERMIL2PS imm4, m256, ymm, ymm, ymm [XOP] -// * VPERMIL2PS imm4, ymm, m256, ymm, ymm [XOP] -// -func (self *Program) VPERMIL2PS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, v4 interface{}) *Instruction { - p := self.alloc("VPERMIL2PS", 5, Operands { v0, v1, v2, v3, v4 }) - // VPERMIL2PS imm4, xmm, xmm, xmm, xmm - if isImm4(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79 ^ (hlcode(v[3]) << 3)) - m.emit(0x48) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf9 ^ (hlcode(v[3]) << 3)) - m.emit(0x48) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PS imm4, m128, xmm, xmm, xmm - if isImm4(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[4]), addr(v[1]), hlcode(v[3])) - m.emit(0x48) - m.mrsd(lcode(v[4]), addr(v[1]), 1) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PS imm4, xmm, m128, xmm, xmm - if isImm4(v0) && isXMM(v1) && isM128(v2) && isXMM(v3) && isXMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[4]), addr(v[2]), hlcode(v[3])) - m.emit(0x48) - m.mrsd(lcode(v[4]), addr(v[2]), 1) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PS imm4, ymm, ymm, ymm, ymm - if isImm4(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit(0x48) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit(0x48) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PS imm4, m256, ymm, ymm, ymm - if isImm4(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[4]), addr(v[1]), hlcode(v[3])) - m.emit(0x48) - m.mrsd(lcode(v[4]), addr(v[1]), 1) - m.emit((hlcode(v[2]) << 4) | imml(v[0])) - }) - } - // VPERMIL2PS imm4, ymm, m256, ymm, ymm - if isImm4(v0) && isYMM(v1) && isM256(v2) && isYMM(v3) && isYMM(v4) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[4]), addr(v[2]), hlcode(v[3])) - m.emit(0x48) - m.mrsd(lcode(v[4]), addr(v[2]), 1) - m.emit((hlcode(v[1]) << 4) | imml(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMIL2PS") - } - return p -} - -// VPERMILPD performs "Permute Double-Precision Floating-Point Values". -// -// Mnemonic : VPERMILPD -// Supported forms : (20 forms) -// -// * VPERMILPD imm8, xmm, xmm [AVX] -// * VPERMILPD xmm, xmm, xmm [AVX] -// * VPERMILPD m128, xmm, xmm [AVX] -// * VPERMILPD imm8, m128, xmm [AVX] -// * VPERMILPD imm8, ymm, ymm [AVX] -// * VPERMILPD ymm, ymm, ymm [AVX] -// * VPERMILPD m256, ymm, ymm [AVX] -// * VPERMILPD imm8, m256, ymm [AVX] -// * VPERMILPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPERMILPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMILPD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPERMILPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMILPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMILPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMILPD", 3, Operands { v0, v1, v2 }) - // VPERMILPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPERMILPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPERMILPD imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x0d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMILPD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPD imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x0d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMILPD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x0d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMILPD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x0d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMILPD") - } - return p -} - -// VPERMILPS performs "Permute Single-Precision Floating-Point Values". -// -// Mnemonic : VPERMILPS -// Supported forms : (20 forms) -// -// * VPERMILPS imm8, xmm, xmm [AVX] -// * VPERMILPS xmm, xmm, xmm [AVX] -// * VPERMILPS m128, xmm, xmm [AVX] -// * VPERMILPS imm8, m128, xmm [AVX] -// * VPERMILPS imm8, ymm, ymm [AVX] -// * VPERMILPS ymm, ymm, ymm [AVX] -// * VPERMILPS m256, ymm, ymm [AVX] -// * VPERMILPS imm8, m256, ymm [AVX] -// * VPERMILPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPERMILPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMILPS imm8, zmm, zmm{k}{z} [AVX512F] -// * VPERMILPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMILPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMILPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMILPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMILPS", 3, Operands { v0, v1, v2 }) - // VPERMILPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPERMILPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPERMILPS imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x0c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMILPS imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPS imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x0c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMILPS imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMILPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x0c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMILPS imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMILPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x0c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMILPS") - } - return p -} - -// VPERMPD performs "Permute Double-Precision Floating-Point Elements". -// -// Mnemonic : VPERMPD -// Supported forms : (10 forms) -// -// * VPERMPD imm8, ymm, ymm [AVX2] -// * VPERMPD imm8, m256, ymm [AVX2] -// * VPERMPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPERMPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMPD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPERMPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMPD", 3, Operands { v0, v1, v2 }) - // VPERMPD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfd) - m.emit(0x01) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMPD imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[2]), addr(v[1]), 0) - m.emit(0x01) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMPD imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x01) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMPD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x01) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMPD imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x01) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMPD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x01) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMPD") - } - return p -} - -// VPERMPS performs "Permute Single-Precision Floating-Point Elements". -// -// Mnemonic : VPERMPS -// Supported forms : (6 forms) -// -// * VPERMPS ymm, ymm, ymm [AVX2] -// * VPERMPS m256, ymm, ymm [AVX2] -// * VPERMPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMPS", 3, Operands { v0, v1, v2 }) - // VPERMPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPERMPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x16) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x16) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMPS") - } - return p -} - -// VPERMQ performs "Permute Quadword Integers". -// -// Mnemonic : VPERMQ -// Supported forms : (10 forms) -// -// * VPERMQ imm8, ymm, ymm [AVX2] -// * VPERMQ imm8, m256, ymm [AVX2] -// * VPERMQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPERMQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMQ imm8, zmm, zmm{k}{z} [AVX512F] -// * VPERMQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMQ", 3, Operands { v0, v1, v2 }) - // VPERMQ imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xfd) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMQ imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x85, hcode(v[2]), addr(v[1]), 0) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMQ imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x36) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMQ imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x36) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMQ imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x36) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMQ imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPERMQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x36) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMQ") - } - return p -} - -// VPERMT2B performs "Full Permute of Bytes From Two Tables Overwriting a Table". -// -// Mnemonic : VPERMT2B -// Supported forms : (6 forms) -// -// * VPERMT2B xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMT2B m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMT2B ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMT2B m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPERMT2B zmm, zmm, zmm{k}{z} [AVX512VBMI] -// * VPERMT2B m512, zmm, zmm{k}{z} [AVX512VBMI] -// -func (self *Program) VPERMT2B(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMT2B", 3, Operands { v0, v1, v2 }) - // VPERMT2B xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2B m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMT2B ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2B m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMT2B zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2B m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMT2B") - } - return p -} - -// VPERMT2D performs "Full Permute of Doublewords From Two Tables Overwriting a Table". -// -// Mnemonic : VPERMT2D -// Supported forms : (6 forms) -// -// * VPERMT2D m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2D zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2D m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2D xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2D m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2D ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMT2D(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMT2D", 3, Operands { v0, v1, v2 }) - // VPERMT2D m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMT2D zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2D m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMT2D xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2D m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMT2D ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMT2D") - } - return p -} - -// VPERMT2PD performs "Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table". -// -// Mnemonic : VPERMT2PD -// Supported forms : (6 forms) -// -// * VPERMT2PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2PD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMT2PD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMT2PD", 3, Operands { v0, v1, v2 }) - // VPERMT2PD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7f) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMT2PD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2PD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7f) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMT2PD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2PD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7f) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMT2PD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMT2PD") - } - return p -} - -// VPERMT2PS performs "Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table". -// -// Mnemonic : VPERMT2PS -// Supported forms : (6 forms) -// -// * VPERMT2PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2PS zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMT2PS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMT2PS", 3, Operands { v0, v1, v2 }) - // VPERMT2PS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7f) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMT2PS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2PS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7f) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMT2PS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2PS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7f) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMT2PS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x7f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMT2PS") - } - return p -} - -// VPERMT2Q performs "Full Permute of Quadwords From Two Tables Overwriting a Table". -// -// Mnemonic : VPERMT2Q -// Supported forms : (6 forms) -// -// * VPERMT2Q m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2Q zmm, zmm, zmm{k}{z} [AVX512F] -// * VPERMT2Q m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2Q xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2Q m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPERMT2Q ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPERMT2Q(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMT2Q", 3, Operands { v0, v1, v2 }) - // VPERMT2Q m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMT2Q zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2Q m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMT2Q xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2Q m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x7e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPERMT2Q ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x7e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMT2Q") - } - return p -} - -// VPERMT2W performs "Full Permute of Words From Two Tables Overwriting a Table". -// -// Mnemonic : VPERMT2W -// Supported forms : (6 forms) -// -// * VPERMT2W zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPERMT2W m512, zmm, zmm{k}{z} [AVX512BW] -// * VPERMT2W xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPERMT2W m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPERMT2W ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPERMT2W m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPERMT2W(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMT2W", 3, Operands { v0, v1, v2 }) - // VPERMT2W zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2W m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMT2W xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2W m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMT2W ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x7d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMT2W m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x7d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMT2W") - } - return p -} - -// VPERMW performs "Permute Word Integers". -// -// Mnemonic : VPERMW -// Supported forms : (6 forms) -// -// * VPERMW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPERMW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPERMW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPERMW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPERMW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPERMW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPERMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPERMW", 3, Operands { v0, v1, v2 }) - // VPERMW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x8d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x8d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPERMW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x8d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x8d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPERMW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x8d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPERMW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x8d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPERMW") - } - return p -} - -// VPEXPANDD performs "Load Sparse Packed Doubleword Integer Values from Dense Memory/Register". -// -// Mnemonic : VPEXPANDD -// Supported forms : (6 forms) -// -// * VPEXPANDD zmm, zmm{k}{z} [AVX512F] -// * VPEXPANDD m512, zmm{k}{z} [AVX512F] -// * VPEXPANDD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPEXPANDD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPEXPANDD m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VPEXPANDD m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPEXPANDD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPEXPANDD", 2, Operands { v0, v1 }) - // VPEXPANDD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x89) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPEXPANDD m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x89) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPEXPANDD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x89) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPEXPANDD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x89) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPEXPANDD m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x89) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPEXPANDD m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x89) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPEXPANDD") - } - return p -} - -// VPEXPANDQ performs "Load Sparse Packed Quadword Integer Values from Dense Memory/Register". -// -// Mnemonic : VPEXPANDQ -// Supported forms : (6 forms) -// -// * VPEXPANDQ zmm, zmm{k}{z} [AVX512F] -// * VPEXPANDQ m512, zmm{k}{z} [AVX512F] -// * VPEXPANDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPEXPANDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPEXPANDQ m128, xmm{k}{z} [AVX512F,AVX512VL] -// * VPEXPANDQ m256, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPEXPANDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPEXPANDQ", 2, Operands { v0, v1 }) - // VPEXPANDQ zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x89) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPEXPANDQ m512, zmm{k}{z} - if isM512(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x89) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPEXPANDQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x89) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPEXPANDQ ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x89) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPEXPANDQ m128, xmm{k}{z} - if isM128(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x89) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPEXPANDQ m256, ymm{k}{z} - if isM256(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x89) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPEXPANDQ") - } - return p -} - -// VPEXTRB performs "Extract Byte". -// -// Mnemonic : VPEXTRB -// Supported forms : (4 forms) -// -// * VPEXTRB imm8, xmm, r32 [AVX] -// * VPEXTRB imm8, xmm, m8 [AVX] -// * VPEXTRB imm8, xmm, r32 [AVX512BW] -// * VPEXTRB imm8, xmm, m8 [AVX512BW] -// -func (self *Program) VPEXTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPEXTRB", 3, Operands { v0, v1, v2 }) - // VPEXTRB imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79) - m.emit(0x14) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRB imm8, xmm, m8 - if isImm8(v0) && isXMM(v1) && isM8(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) - m.emit(0x14) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRB imm8, xmm, r32 - if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0x14) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRB imm8, xmm, m8 - if isImm8(v0) && isEVEXXMM(v1) && isM8(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) - m.emit(0x14) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPEXTRB") - } - return p -} - -// VPEXTRD performs "Extract Doubleword". -// -// Mnemonic : VPEXTRD -// Supported forms : (4 forms) -// -// * VPEXTRD imm8, xmm, r32 [AVX] -// * VPEXTRD imm8, xmm, m32 [AVX] -// * VPEXTRD imm8, xmm, r32 [AVX512DQ] -// * VPEXTRD imm8, xmm, m32 [AVX512DQ] -// -func (self *Program) VPEXTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPEXTRD", 3, Operands { v0, v1, v2 }) - // VPEXTRD imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRD imm8, xmm, m32 - if isImm8(v0) && isXMM(v1) && isM32(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRD imm8, xmm, r32 - if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRD imm8, xmm, m32 - if isImm8(v0) && isEVEXXMM(v1) && isM32(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[2]), 4) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPEXTRD") - } - return p -} - -// VPEXTRQ performs "Extract Quadword". -// -// Mnemonic : VPEXTRQ -// Supported forms : (4 forms) -// -// * VPEXTRQ imm8, xmm, r64 [AVX] -// * VPEXTRQ imm8, xmm, m64 [AVX] -// * VPEXTRQ imm8, xmm, r64 [AVX512DQ] -// * VPEXTRQ imm8, xmm, m64 [AVX512DQ] -// -func (self *Program) VPEXTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPEXTRQ", 3, Operands { v0, v1, v2 }) - // VPEXTRQ imm8, xmm, r64 - if isImm8(v0) && isXMM(v1) && isReg64(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0xf9) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRQ imm8, xmm, m64 - if isImm8(v0) && isXMM(v1) && isM64(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[1]), addr(v[2]), 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRQ imm8, xmm, r64 - if isImm8(v0) && isEVEXXMM(v1) && isReg64(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit(0x08) - m.emit(0x16) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRQ imm8, xmm, m64 - if isImm8(v0) && isEVEXXMM(v1) && isM64(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) - m.emit(0x16) - m.mrsd(lcode(v[1]), addr(v[2]), 8) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPEXTRQ") - } - return p -} - -// VPEXTRW performs "Extract Word". -// -// Mnemonic : VPEXTRW -// Supported forms : (4 forms) -// -// * VPEXTRW imm8, xmm, r32 [AVX] -// * VPEXTRW imm8, xmm, m16 [AVX] -// * VPEXTRW imm8, xmm, r32 [AVX512BW] -// * VPEXTRW imm8, xmm, m16 [AVX512BW] -// -func (self *Program) VPEXTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPEXTRW", 3, Operands { v0, v1, v2 }) - // VPEXTRW imm8, xmm, r32 - if isImm8(v0) && isXMM(v1) && isReg32(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[1], 0) - m.emit(0xc5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) - m.emit(0x79) - m.emit(0x15) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRW imm8, xmm, m16 - if isImm8(v0) && isXMM(v1) && isM16(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) - m.emit(0x15) - m.mrsd(lcode(v[1]), addr(v[2]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRW imm8, xmm, r32 - if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0x15) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit(0x08) - m.emit(0xc5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPEXTRW imm8, xmm, m16 - if isImm8(v0) && isEVEXXMM(v1) && isM16(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) - m.emit(0x15) - m.mrsd(lcode(v[1]), addr(v[2]), 2) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPEXTRW") - } - return p -} - -// VPGATHERDD performs "Gather Packed Doubleword Values Using Signed Doubleword Indices". -// -// Mnemonic : VPGATHERDD -// Supported forms : (5 forms) -// -// * VPGATHERDD xmm, vm32x, xmm [AVX2] -// * VPGATHERDD ymm, vm32y, ymm [AVX2] -// * VPGATHERDD vm32z, zmm{k} [AVX512F] -// * VPGATHERDD vm32x, xmm{k} [AVX512F,AVX512VL] -// * VPGATHERDD vm32y, ymm{k} [AVX512F,AVX512VL] -// -func (self *Program) VPGATHERDD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VPGATHERDD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VPGATHERDD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VPGATHERDD takes 2 or 3 operands") - } - // VPGATHERDD xmm, vm32x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x90) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERDD ymm, vm32y, ymm - if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x90) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERDD vm32z, zmm{k} - if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPGATHERDD vm32x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPGATHERDD vm32y, ymm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPGATHERDD") - } - return p -} - -// VPGATHERDQ performs "Gather Packed Quadword Values Using Signed Doubleword Indices". -// -// Mnemonic : VPGATHERDQ -// Supported forms : (5 forms) -// -// * VPGATHERDQ xmm, vm32x, xmm [AVX2] -// * VPGATHERDQ ymm, vm32x, ymm [AVX2] -// * VPGATHERDQ vm32y, zmm{k} [AVX512F] -// * VPGATHERDQ vm32x, xmm{k} [AVX512F,AVX512VL] -// * VPGATHERDQ vm32x, ymm{k} [AVX512F,AVX512VL] -// -func (self *Program) VPGATHERDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VPGATHERDQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VPGATHERDQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VPGATHERDQ takes 2 or 3 operands") - } - // VPGATHERDQ xmm, vm32x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x90) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERDQ ymm, vm32x, ymm - if len(vv) == 1 && isYMM(v0) && isVMX(v1) && isYMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x90) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERDQ vm32y, zmm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isZMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPGATHERDQ vm32x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPGATHERDQ vm32x, ymm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isYMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x90) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPGATHERDQ") - } - return p -} - -// VPGATHERQD performs "Gather Packed Doubleword Values Using Signed Quadword Indices". -// -// Mnemonic : VPGATHERQD -// Supported forms : (5 forms) -// -// * VPGATHERQD xmm, vm64x, xmm [AVX2] -// * VPGATHERQD xmm, vm64y, xmm [AVX2] -// * VPGATHERQD vm64z, ymm{k} [AVX512F] -// * VPGATHERQD vm64x, xmm{k} [AVX512F,AVX512VL] -// * VPGATHERQD vm64y, xmm{k} [AVX512F,AVX512VL] -// -func (self *Program) VPGATHERQD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VPGATHERQD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VPGATHERQD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VPGATHERQD takes 2 or 3 operands") - } - // VPGATHERQD xmm, vm64x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x91) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERQD xmm, vm64y, xmm - if len(vv) == 1 && isXMM(v0) && isVMY(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x91) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERQD vm64z, ymm{k} - if len(vv) == 0 && isVMZ(v0) && isYMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x91) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPGATHERQD vm64x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x91) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPGATHERQD vm64y, xmm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x91) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPGATHERQD") - } - return p -} - -// VPGATHERQQ performs "Gather Packed Quadword Values Using Signed Quadword Indices". -// -// Mnemonic : VPGATHERQQ -// Supported forms : (5 forms) -// -// * VPGATHERQQ xmm, vm64x, xmm [AVX2] -// * VPGATHERQQ ymm, vm64y, ymm [AVX2] -// * VPGATHERQQ vm64z, zmm{k} [AVX512F] -// * VPGATHERQQ vm64x, xmm{k} [AVX512F,AVX512VL] -// * VPGATHERQQ vm64y, ymm{k} [AVX512F,AVX512VL] -// -func (self *Program) VPGATHERQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VPGATHERQQ", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VPGATHERQQ", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VPGATHERQQ takes 2 or 3 operands") - } - // VPGATHERQQ xmm, vm64x, xmm - if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x91) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERQQ ymm, vm64y, ymm - if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x91) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - // VPGATHERQQ vm64z, zmm{k} - if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x91) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPGATHERQQ vm64x, xmm{k} - if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x91) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPGATHERQQ vm64y, ymm{k} - if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) - m.emit(0x91) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPGATHERQQ") - } - return p -} - -// VPHADDBD performs "Packed Horizontal Add Signed Byte to Signed Doubleword". -// -// Mnemonic : VPHADDBD -// Supported forms : (2 forms) -// -// * VPHADDBD xmm, xmm [XOP] -// * VPHADDBD m128, xmm [XOP] -// -func (self *Program) VPHADDBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDBD", 2, Operands { v0, v1 }) - // VPHADDBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDBD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xc2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDBD") - } - return p -} - -// VPHADDBQ performs "Packed Horizontal Add Signed Byte to Signed Quadword". -// -// Mnemonic : VPHADDBQ -// Supported forms : (2 forms) -// -// * VPHADDBQ xmm, xmm [XOP] -// * VPHADDBQ m128, xmm [XOP] -// -func (self *Program) VPHADDBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDBQ", 2, Operands { v0, v1 }) - // VPHADDBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xc3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDBQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xc3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDBQ") - } - return p -} - -// VPHADDBW performs "Packed Horizontal Add Signed Byte to Signed Word". -// -// Mnemonic : VPHADDBW -// Supported forms : (2 forms) -// -// * VPHADDBW xmm, xmm [XOP] -// * VPHADDBW m128, xmm [XOP] -// -func (self *Program) VPHADDBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDBW", 2, Operands { v0, v1 }) - // VPHADDBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xc1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDBW") - } - return p -} - -// VPHADDD performs "Packed Horizontal Add Doubleword Integer". -// -// Mnemonic : VPHADDD -// Supported forms : (4 forms) -// -// * VPHADDD xmm, xmm, xmm [AVX] -// * VPHADDD m128, xmm, xmm [AVX] -// * VPHADDD ymm, ymm, ymm [AVX2] -// * VPHADDD m256, ymm, ymm [AVX2] -// -func (self *Program) VPHADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPHADDD", 3, Operands { v0, v1, v2 }) - // VPHADDD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x02) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHADDD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x02) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPHADDD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x02) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHADDD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x02) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDD") - } - return p -} - -// VPHADDDQ performs "Packed Horizontal Add Signed Doubleword to Signed Quadword". -// -// Mnemonic : VPHADDDQ -// Supported forms : (2 forms) -// -// * VPHADDDQ xmm, xmm [XOP] -// * VPHADDDQ m128, xmm [XOP] -// -func (self *Program) VPHADDDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDDQ", 2, Operands { v0, v1 }) - // VPHADDDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xcb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xcb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDDQ") - } - return p -} - -// VPHADDSW performs "Packed Horizontal Add Signed Word Integers with Signed Saturation". -// -// Mnemonic : VPHADDSW -// Supported forms : (4 forms) -// -// * VPHADDSW xmm, xmm, xmm [AVX] -// * VPHADDSW m128, xmm, xmm [AVX] -// * VPHADDSW ymm, ymm, ymm [AVX2] -// * VPHADDSW m256, ymm, ymm [AVX2] -// -func (self *Program) VPHADDSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPHADDSW", 3, Operands { v0, v1, v2 }) - // VPHADDSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x03) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHADDSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPHADDSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x03) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHADDSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x03) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDSW") - } - return p -} - -// VPHADDUBD performs "Packed Horizontal Add Unsigned Byte to Doubleword". -// -// Mnemonic : VPHADDUBD -// Supported forms : (2 forms) -// -// * VPHADDUBD xmm, xmm [XOP] -// * VPHADDUBD m128, xmm [XOP] -// -func (self *Program) VPHADDUBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDUBD", 2, Operands { v0, v1 }) - // VPHADDUBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDUBD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xd2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDUBD") - } - return p -} - -// VPHADDUBQ performs "Packed Horizontal Add Unsigned Byte to Quadword". -// -// Mnemonic : VPHADDUBQ -// Supported forms : (2 forms) -// -// * VPHADDUBQ xmm, xmm [XOP] -// * VPHADDUBQ m128, xmm [XOP] -// -func (self *Program) VPHADDUBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDUBQ", 2, Operands { v0, v1 }) - // VPHADDUBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDUBQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xd3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDUBQ") - } - return p -} - -// VPHADDUBW performs "Packed Horizontal Add Unsigned Byte to Word". -// -// Mnemonic : VPHADDUBW -// Supported forms : (2 forms) -// -// * VPHADDUBW xmm, xmm [XOP] -// * VPHADDUBW m128, xmm [XOP] -// -func (self *Program) VPHADDUBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDUBW", 2, Operands { v0, v1 }) - // VPHADDUBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDUBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xd1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDUBW") - } - return p -} - -// VPHADDUDQ performs "Packed Horizontal Add Unsigned Doubleword to Quadword". -// -// Mnemonic : VPHADDUDQ -// Supported forms : (2 forms) -// -// * VPHADDUDQ xmm, xmm [XOP] -// * VPHADDUDQ m128, xmm [XOP] -// -func (self *Program) VPHADDUDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDUDQ", 2, Operands { v0, v1 }) - // VPHADDUDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xdb) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDUDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xdb) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDUDQ") - } - return p -} - -// VPHADDUWD performs "Packed Horizontal Add Unsigned Word to Doubleword". -// -// Mnemonic : VPHADDUWD -// Supported forms : (2 forms) -// -// * VPHADDUWD xmm, xmm [XOP] -// * VPHADDUWD m128, xmm [XOP] -// -func (self *Program) VPHADDUWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDUWD", 2, Operands { v0, v1 }) - // VPHADDUWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xd6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDUWD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xd6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDUWD") - } - return p -} - -// VPHADDUWQ performs "Packed Horizontal Add Unsigned Word to Quadword". -// -// Mnemonic : VPHADDUWQ -// Supported forms : (2 forms) -// -// * VPHADDUWQ xmm, xmm [XOP] -// * VPHADDUWQ m128, xmm [XOP] -// -func (self *Program) VPHADDUWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDUWQ", 2, Operands { v0, v1 }) - // VPHADDUWQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xd7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDUWQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xd7) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDUWQ") - } - return p -} - -// VPHADDW performs "Packed Horizontal Add Word Integers". -// -// Mnemonic : VPHADDW -// Supported forms : (4 forms) -// -// * VPHADDW xmm, xmm, xmm [AVX] -// * VPHADDW m128, xmm, xmm [AVX] -// * VPHADDW ymm, ymm, ymm [AVX2] -// * VPHADDW m256, ymm, ymm [AVX2] -// -func (self *Program) VPHADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPHADDW", 3, Operands { v0, v1, v2 }) - // VPHADDW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHADDW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPHADDW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x01) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHADDW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x01) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDW") - } - return p -} - -// VPHADDWD performs "Packed Horizontal Add Signed Word to Signed Doubleword". -// -// Mnemonic : VPHADDWD -// Supported forms : (2 forms) -// -// * VPHADDWD xmm, xmm [XOP] -// * VPHADDWD m128, xmm [XOP] -// -func (self *Program) VPHADDWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDWD", 2, Operands { v0, v1 }) - // VPHADDWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDWD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xc6) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDWD") - } - return p -} - -// VPHADDWQ performs "Packed Horizontal Add Signed Word to Signed Quadword". -// -// Mnemonic : VPHADDWQ -// Supported forms : (2 forms) -// -// * VPHADDWQ xmm, xmm [XOP] -// * VPHADDWQ m128, xmm [XOP] -// -func (self *Program) VPHADDWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHADDWQ", 2, Operands { v0, v1 }) - // VPHADDWQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xc7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHADDWQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xc7) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHADDWQ") - } - return p -} - -// VPHMINPOSUW performs "Packed Horizontal Minimum of Unsigned Word Integers". -// -// Mnemonic : VPHMINPOSUW -// Supported forms : (2 forms) -// -// * VPHMINPOSUW xmm, xmm [AVX] -// * VPHMINPOSUW m128, xmm [AVX] -// -func (self *Program) VPHMINPOSUW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHMINPOSUW", 2, Operands { v0, v1 }) - // VPHMINPOSUW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x41) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHMINPOSUW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x41) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHMINPOSUW") - } - return p -} - -// VPHSUBBW performs "Packed Horizontal Subtract Signed Byte to Signed Word". -// -// Mnemonic : VPHSUBBW -// Supported forms : (2 forms) -// -// * VPHSUBBW xmm, xmm [XOP] -// * VPHSUBBW m128, xmm [XOP] -// -func (self *Program) VPHSUBBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHSUBBW", 2, Operands { v0, v1 }) - // VPHSUBBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHSUBBW m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe1) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHSUBBW") - } - return p -} - -// VPHSUBD performs "Packed Horizontal Subtract Doubleword Integers". -// -// Mnemonic : VPHSUBD -// Supported forms : (4 forms) -// -// * VPHSUBD xmm, xmm, xmm [AVX] -// * VPHSUBD m128, xmm, xmm [AVX] -// * VPHSUBD ymm, ymm, ymm [AVX2] -// * VPHSUBD m256, ymm, ymm [AVX2] -// -func (self *Program) VPHSUBD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPHSUBD", 3, Operands { v0, v1, v2 }) - // VPHSUBD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x06) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHSUBD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x06) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPHSUBD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x06) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHSUBD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x06) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHSUBD") - } - return p -} - -// VPHSUBDQ performs "Packed Horizontal Subtract Signed Doubleword to Signed Quadword". -// -// Mnemonic : VPHSUBDQ -// Supported forms : (2 forms) -// -// * VPHSUBDQ xmm, xmm [XOP] -// * VPHSUBDQ m128, xmm [XOP] -// -func (self *Program) VPHSUBDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHSUBDQ", 2, Operands { v0, v1 }) - // VPHSUBDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xe3) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHSUBDQ m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe3) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHSUBDQ") - } - return p -} - -// VPHSUBSW performs "Packed Horizontal Subtract Signed Word Integers with Signed Saturation". -// -// Mnemonic : VPHSUBSW -// Supported forms : (4 forms) -// -// * VPHSUBSW xmm, xmm, xmm [AVX] -// * VPHSUBSW m128, xmm, xmm [AVX] -// * VPHSUBSW ymm, ymm, ymm [AVX2] -// * VPHSUBSW m256, ymm, ymm [AVX2] -// -func (self *Program) VPHSUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPHSUBSW", 3, Operands { v0, v1, v2 }) - // VPHSUBSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x07) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHSUBSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x07) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPHSUBSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x07) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHSUBSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x07) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHSUBSW") - } - return p -} - -// VPHSUBW performs "Packed Horizontal Subtract Word Integers". -// -// Mnemonic : VPHSUBW -// Supported forms : (4 forms) -// -// * VPHSUBW xmm, xmm, xmm [AVX] -// * VPHSUBW m128, xmm, xmm [AVX] -// * VPHSUBW ymm, ymm, ymm [AVX2] -// * VPHSUBW m256, ymm, ymm [AVX2] -// -func (self *Program) VPHSUBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPHSUBW", 3, Operands { v0, v1, v2 }) - // VPHSUBW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHSUBW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPHSUBW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x05) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPHSUBW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x05) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHSUBW") - } - return p -} - -// VPHSUBWD performs "Packed Horizontal Subtract Signed Word to Signed Doubleword". -// -// Mnemonic : VPHSUBWD -// Supported forms : (2 forms) -// -// * VPHSUBWD xmm, xmm [XOP] -// * VPHSUBWD m128, xmm [XOP] -// -func (self *Program) VPHSUBWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPHSUBWD", 2, Operands { v0, v1 }) - // VPHSUBWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x78) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPHSUBWD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPHSUBWD") - } - return p -} - -// VPINSRB performs "Insert Byte". -// -// Mnemonic : VPINSRB -// Supported forms : (4 forms) -// -// * VPINSRB imm8, r32, xmm, xmm [AVX] -// * VPINSRB imm8, m8, xmm, xmm [AVX] -// * VPINSRB imm8, r32, xmm, xmm [AVX512BW] -// * VPINSRB imm8, m8, xmm, xmm [AVX512BW] -// -func (self *Program) VPINSRB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPINSRB", 4, Operands { v0, v1, v2, v3 }) - // VPINSRB imm8, r32, xmm, xmm - if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x20) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRB imm8, m8, xmm, xmm - if isImm8(v0) && isM8(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x20) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRB imm8, r32, xmm, xmm - if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0x20) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRB imm8, m8, xmm, xmm - if isImm8(v0) && isM8(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x20) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPINSRB") - } - return p -} - -// VPINSRD performs "Insert Doubleword". -// -// Mnemonic : VPINSRD -// Supported forms : (4 forms) -// -// * VPINSRD imm8, r32, xmm, xmm [AVX] -// * VPINSRD imm8, m32, xmm, xmm [AVX] -// * VPINSRD imm8, r32, xmm, xmm [AVX512DQ] -// * VPINSRD imm8, m32, xmm, xmm [AVX512DQ] -// -func (self *Program) VPINSRD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPINSRD", 4, Operands { v0, v1, v2, v3 }) - // VPINSRD imm8, r32, xmm, xmm - if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x22) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRD imm8, m32, xmm, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x22) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRD imm8, r32, xmm, xmm - if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0x22) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRD imm8, m32, xmm, xmm - if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x22) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPINSRD") - } - return p -} - -// VPINSRQ performs "Insert Quadword". -// -// Mnemonic : VPINSRQ -// Supported forms : (4 forms) -// -// * VPINSRQ imm8, r64, xmm, xmm [AVX] -// * VPINSRQ imm8, m64, xmm, xmm [AVX] -// * VPINSRQ imm8, r64, xmm, xmm [AVX512DQ] -// * VPINSRQ imm8, m64, xmm, xmm [AVX512DQ] -// -func (self *Program) VPINSRQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPINSRQ", 4, Operands { v0, v1, v2, v3 }) - // VPINSRQ imm8, r64, xmm, xmm - if isImm8(v0) && isReg64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0xf9 ^ (hlcode(v[2]) << 3)) - m.emit(0x22) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRQ imm8, m64, xmm, xmm - if isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x22) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRQ imm8, r64, xmm, xmm - if isImm8(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0x22) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRQ imm8, m64, xmm, xmm - if isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x22) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPINSRQ") - } - return p -} - -// VPINSRW performs "Insert Word". -// -// Mnemonic : VPINSRW -// Supported forms : (4 forms) -// -// * VPINSRW imm8, r32, xmm, xmm [AVX] -// * VPINSRW imm8, m16, xmm, xmm [AVX] -// * VPINSRW imm8, r32, xmm, xmm [AVX512BW] -// * VPINSRW imm8, m16, xmm, xmm [AVX512BW] -// -func (self *Program) VPINSRW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPINSRW", 4, Operands { v0, v1, v2, v3 }) - // VPINSRW imm8, r32, xmm, xmm - if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRW imm8, m16, xmm, xmm - if isImm8(v0) && isM16(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc4) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRW imm8, r32, xmm, xmm - if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0xc4) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPINSRW imm8, m16, xmm, xmm - if isImm8(v0) && isM16(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0xc4) - m.mrsd(lcode(v[3]), addr(v[1]), 2) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPINSRW") - } - return p -} - -// VPLZCNTD performs "Count the Number of Leading Zero Bits for Packed Doubleword Values". -// -// Mnemonic : VPLZCNTD -// Supported forms : (6 forms) -// -// * VPLZCNTD m128/m32bcst, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTD m256/m32bcst, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTD m512/m32bcst, zmm{k}{z} [AVX512CD] -// * VPLZCNTD xmm, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTD ymm, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTD zmm, zmm{k}{z} [AVX512CD] -// -func (self *Program) VPLZCNTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPLZCNTD", 2, Operands { v0, v1 }) - // VPLZCNTD m128/m32bcst, xmm{k}{z} - if isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPLZCNTD m256/m32bcst, ymm{k}{z} - if isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPLZCNTD m512/m32bcst, zmm{k}{z} - if isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPLZCNTD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPLZCNTD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPLZCNTD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPLZCNTD") - } - return p -} - -// VPLZCNTQ performs "Count the Number of Leading Zero Bits for Packed Quadword Values". -// -// Mnemonic : VPLZCNTQ -// Supported forms : (6 forms) -// -// * VPLZCNTQ m128/m64bcst, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTQ m256/m64bcst, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTQ m512/m64bcst, zmm{k}{z} [AVX512CD] -// * VPLZCNTQ xmm, xmm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTQ ymm, ymm{k}{z} [AVX512CD,AVX512VL] -// * VPLZCNTQ zmm, zmm{k}{z} [AVX512CD] -// -func (self *Program) VPLZCNTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPLZCNTQ", 2, Operands { v0, v1 }) - // VPLZCNTQ m128/m64bcst, xmm{k}{z} - if isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPLZCNTQ m256/m64bcst, ymm{k}{z} - if isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPLZCNTQ m512/m64bcst, zmm{k}{z} - if isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x44) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPLZCNTQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPLZCNTQ ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPLZCNTQ zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512CD) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x44) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPLZCNTQ") - } - return p -} - -// VPMACSDD performs "Packed Multiply Accumulate Signed Doubleword to Signed Doubleword". -// -// Mnemonic : VPMACSDD -// Supported forms : (2 forms) -// -// * VPMACSDD xmm, xmm, xmm, xmm [XOP] -// * VPMACSDD xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSDD", 4, Operands { v0, v1, v2, v3 }) - // VPMACSDD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x9e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSDD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x9e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSDD") - } - return p -} - -// VPMACSDQH performs "Packed Multiply Accumulate Signed High Doubleword to Signed Quadword". -// -// Mnemonic : VPMACSDQH -// Supported forms : (2 forms) -// -// * VPMACSDQH xmm, xmm, xmm, xmm [XOP] -// * VPMACSDQH xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSDQH(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSDQH", 4, Operands { v0, v1, v2, v3 }) - // VPMACSDQH xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x9f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSDQH xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x9f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSDQH") - } - return p -} - -// VPMACSDQL performs "Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword". -// -// Mnemonic : VPMACSDQL -// Supported forms : (2 forms) -// -// * VPMACSDQL xmm, xmm, xmm, xmm [XOP] -// * VPMACSDQL xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSDQL(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSDQL", 4, Operands { v0, v1, v2, v3 }) - // VPMACSDQL xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSDQL xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x97) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSDQL") - } - return p -} - -// VPMACSSDD performs "Packed Multiply Accumulate with Saturation Signed Doubleword to Signed Doubleword". -// -// Mnemonic : VPMACSSDD -// Supported forms : (2 forms) -// -// * VPMACSSDD xmm, xmm, xmm, xmm [XOP] -// * VPMACSSDD xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSSDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSSDD", 4, Operands { v0, v1, v2, v3 }) - // VPMACSSDD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x8e) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSSDD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x8e) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSSDD") - } - return p -} - -// VPMACSSDQH performs "Packed Multiply Accumulate with Saturation Signed High Doubleword to Signed Quadword". -// -// Mnemonic : VPMACSSDQH -// Supported forms : (2 forms) -// -// * VPMACSSDQH xmm, xmm, xmm, xmm [XOP] -// * VPMACSSDQH xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSSDQH(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSSDQH", 4, Operands { v0, v1, v2, v3 }) - // VPMACSSDQH xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x8f) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSSDQH xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x8f) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSSDQH") - } - return p -} - -// VPMACSSDQL performs "Packed Multiply Accumulate with Saturation Signed Low Doubleword to Signed Quadword". -// -// Mnemonic : VPMACSSDQL -// Supported forms : (2 forms) -// -// * VPMACSSDQL xmm, xmm, xmm, xmm [XOP] -// * VPMACSSDQL xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSSDQL(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSSDQL", 4, Operands { v0, v1, v2, v3 }) - // VPMACSSDQL xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x87) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSSDQL xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x87) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSSDQL") - } - return p -} - -// VPMACSSWD performs "Packed Multiply Accumulate with Saturation Signed Word to Signed Doubleword". -// -// Mnemonic : VPMACSSWD -// Supported forms : (2 forms) -// -// * VPMACSSWD xmm, xmm, xmm, xmm [XOP] -// * VPMACSSWD xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSSWD", 4, Operands { v0, v1, v2, v3 }) - // VPMACSSWD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x86) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSSWD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x86) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSSWD") - } - return p -} - -// VPMACSSWW performs "Packed Multiply Accumulate with Saturation Signed Word to Signed Word". -// -// Mnemonic : VPMACSSWW -// Supported forms : (2 forms) -// -// * VPMACSSWW xmm, xmm, xmm, xmm [XOP] -// * VPMACSSWW xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSSWW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSSWW", 4, Operands { v0, v1, v2, v3 }) - // VPMACSSWW xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x85) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSSWW xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x85) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSSWW") - } - return p -} - -// VPMACSWD performs "Packed Multiply Accumulate Signed Word to Signed Doubleword". -// -// Mnemonic : VPMACSWD -// Supported forms : (2 forms) -// -// * VPMACSWD xmm, xmm, xmm, xmm [XOP] -// * VPMACSWD xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSWD", 4, Operands { v0, v1, v2, v3 }) - // VPMACSWD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSWD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x96) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSWD") - } - return p -} - -// VPMACSWW performs "Packed Multiply Accumulate Signed Word to Signed Word". -// -// Mnemonic : VPMACSWW -// Supported forms : (2 forms) -// -// * VPMACSWW xmm, xmm, xmm, xmm [XOP] -// * VPMACSWW xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMACSWW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMACSWW", 4, Operands { v0, v1, v2, v3 }) - // VPMACSWW xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0x95) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMACSWW xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x95) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMACSWW") - } - return p -} - -// VPMADCSSWD performs "Packed Multiply Add Accumulate with Saturation Signed Word to Signed Doubleword". -// -// Mnemonic : VPMADCSSWD -// Supported forms : (2 forms) -// -// * VPMADCSSWD xmm, xmm, xmm, xmm [XOP] -// * VPMADCSSWD xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMADCSSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMADCSSWD", 4, Operands { v0, v1, v2, v3 }) - // VPMADCSSWD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xa6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMADCSSWD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xa6) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMADCSSWD") - } - return p -} - -// VPMADCSWD performs "Packed Multiply Add Accumulate Signed Word to Signed Doubleword". -// -// Mnemonic : VPMADCSWD -// Supported forms : (2 forms) -// -// * VPMADCSWD xmm, xmm, xmm, xmm [XOP] -// * VPMADCSWD xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPMADCSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPMADCSWD", 4, Operands { v0, v1, v2, v3 }) - // VPMADCSWD xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xb6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - } - // VPMADCSWD xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xb6) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMADCSWD") - } - return p -} - -// VPMADD52HUQ performs "Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators". -// -// Mnemonic : VPMADD52HUQ -// Supported forms : (6 forms) -// -// * VPMADD52HUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52HUQ xmm, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52HUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52HUQ ymm, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52HUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512IFMA] -// * VPMADD52HUQ zmm, zmm, zmm{k}{z} [AVX512IFMA] -// -func (self *Program) VPMADD52HUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMADD52HUQ", 3, Operands { v0, v1, v2 }) - // VPMADD52HUQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb5) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMADD52HUQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADD52HUQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb5) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMADD52HUQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADD52HUQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512IFMA) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb5) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMADD52HUQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512IFMA) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMADD52HUQ") - } - return p -} - -// VPMADD52LUQ performs "Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators". -// -// Mnemonic : VPMADD52LUQ -// Supported forms : (6 forms) -// -// * VPMADD52LUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52LUQ xmm, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52LUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52LUQ ymm, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] -// * VPMADD52LUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512IFMA] -// * VPMADD52LUQ zmm, zmm, zmm{k}{z} [AVX512IFMA] -// -func (self *Program) VPMADD52LUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMADD52LUQ", 3, Operands { v0, v1, v2 }) - // VPMADD52LUQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb4) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMADD52LUQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xb4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADD52LUQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb4) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMADD52LUQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512IFMA | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xb4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADD52LUQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512IFMA) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xb4) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMADD52LUQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512IFMA) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xb4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMADD52LUQ") - } - return p -} - -// VPMADDUBSW performs "Multiply and Add Packed Signed and Unsigned Byte Integers". -// -// Mnemonic : VPMADDUBSW -// Supported forms : (10 forms) -// -// * VPMADDUBSW xmm, xmm, xmm [AVX] -// * VPMADDUBSW m128, xmm, xmm [AVX] -// * VPMADDUBSW ymm, ymm, ymm [AVX2] -// * VPMADDUBSW m256, ymm, ymm [AVX2] -// * VPMADDUBSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMADDUBSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMADDUBSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMADDUBSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMADDUBSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMADDUBSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMADDUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMADDUBSW", 3, Operands { v0, v1, v2 }) - // VPMADDUBSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDUBSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMADDUBSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDUBSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMADDUBSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDUBSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMADDUBSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDUBSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMADDUBSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x04) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDUBSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x04) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMADDUBSW") - } - return p -} - -// VPMADDWD performs "Multiply and Add Packed Signed Word Integers". -// -// Mnemonic : VPMADDWD -// Supported forms : (10 forms) -// -// * VPMADDWD xmm, xmm, xmm [AVX] -// * VPMADDWD m128, xmm, xmm [AVX] -// * VPMADDWD ymm, ymm, ymm [AVX2] -// * VPMADDWD m256, ymm, ymm [AVX2] -// * VPMADDWD zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMADDWD m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMADDWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMADDWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMADDWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMADDWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMADDWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMADDWD", 3, Operands { v0, v1, v2 }) - // VPMADDWD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDWD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMADDWD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDWD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMADDWD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDWD m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMADDWD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDWD m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMADDWD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMADDWD m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf5) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMADDWD") - } - return p -} - -// VPMASKMOVD performs "Conditional Move Packed Doubleword Integers". -// -// Mnemonic : VPMASKMOVD -// Supported forms : (4 forms) -// -// * VPMASKMOVD m128, xmm, xmm [AVX2] -// * VPMASKMOVD m256, ymm, ymm [AVX2] -// * VPMASKMOVD xmm, xmm, m128 [AVX2] -// * VPMASKMOVD ymm, ymm, m256 [AVX2] -// -func (self *Program) VPMASKMOVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMASKMOVD", 3, Operands { v0, v1, v2 }) - // VPMASKMOVD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x8c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMASKMOVD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x8c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMASKMOVD xmm, xmm, m128 - if isXMM(v0) && isXMM(v1) && isM128(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x8e) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - // VPMASKMOVD ymm, ymm, m256 - if isYMM(v0) && isYMM(v1) && isM256(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x8e) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPMASKMOVD") - } - return p -} - -// VPMASKMOVQ performs "Conditional Move Packed Quadword Integers". -// -// Mnemonic : VPMASKMOVQ -// Supported forms : (4 forms) -// -// * VPMASKMOVQ m128, xmm, xmm [AVX2] -// * VPMASKMOVQ m256, ymm, ymm [AVX2] -// * VPMASKMOVQ xmm, xmm, m128 [AVX2] -// * VPMASKMOVQ ymm, ymm, m256 [AVX2] -// -func (self *Program) VPMASKMOVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMASKMOVQ", 3, Operands { v0, v1, v2 }) - // VPMASKMOVQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x8c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMASKMOVQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x8c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMASKMOVQ xmm, xmm, m128 - if isXMM(v0) && isXMM(v1) && isM128(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x8e) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - // VPMASKMOVQ ymm, ymm, m256 - if isYMM(v0) && isYMM(v1) && isM256(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[0]), addr(v[2]), hlcode(v[1])) - m.emit(0x8e) - m.mrsd(lcode(v[0]), addr(v[2]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPMASKMOVQ") - } - return p -} - -// VPMAXSB performs "Maximum of Packed Signed Byte Integers". -// -// Mnemonic : VPMAXSB -// Supported forms : (10 forms) -// -// * VPMAXSB xmm, xmm, xmm [AVX] -// * VPMAXSB m128, xmm, xmm [AVX] -// * VPMAXSB ymm, ymm, ymm [AVX2] -// * VPMAXSB m256, ymm, ymm [AVX2] -// * VPMAXSB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXSB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMAXSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXSB", 3, Operands { v0, v1, v2 }) - // VPMAXSB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x3c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXSB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x3c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXSB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXSB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXSB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXSB") - } - return p -} - -// VPMAXSD performs "Maximum of Packed Signed Doubleword Integers". -// -// Mnemonic : VPMAXSD -// Supported forms : (10 forms) -// -// * VPMAXSD xmm, xmm, xmm [AVX] -// * VPMAXSD m128, xmm, xmm [AVX] -// * VPMAXSD ymm, ymm, ymm [AVX2] -// * VPMAXSD m256, ymm, ymm [AVX2] -// * VPMAXSD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMAXSD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMAXSD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXSD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXSD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMAXSD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMAXSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXSD", 3, Operands { v0, v1, v2 }) - // VPMAXSD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXSD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXSD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXSD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXSD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMAXSD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXSD") - } - return p -} - -// VPMAXSQ performs "Maximum of Packed Signed Quadword Integers". -// -// Mnemonic : VPMAXSQ -// Supported forms : (6 forms) -// -// * VPMAXSQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMAXSQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMAXSQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXSQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXSQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMAXSQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMAXSQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXSQ", 3, Operands { v0, v1, v2 }) - // VPMAXSQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXSQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXSQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMAXSQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXSQ") - } - return p -} - -// VPMAXSW performs "Maximum of Packed Signed Word Integers". -// -// Mnemonic : VPMAXSW -// Supported forms : (10 forms) -// -// * VPMAXSW xmm, xmm, xmm [AVX] -// * VPMAXSW m128, xmm, xmm [AVX] -// * VPMAXSW ymm, ymm, ymm [AVX2] -// * VPMAXSW m256, ymm, ymm [AVX2] -// * VPMAXSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMAXSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXSW", 3, Operands { v0, v1, v2 }) - // VPMAXSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xee) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xee) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xee) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xee) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xee) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xee) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xee) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xee) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xee) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xee) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXSW") - } - return p -} - -// VPMAXUB performs "Maximum of Packed Unsigned Byte Integers". -// -// Mnemonic : VPMAXUB -// Supported forms : (10 forms) -// -// * VPMAXUB xmm, xmm, xmm [AVX] -// * VPMAXUB m128, xmm, xmm [AVX] -// * VPMAXUB ymm, ymm, ymm [AVX2] -// * VPMAXUB m256, ymm, ymm [AVX2] -// * VPMAXUB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXUB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXUB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXUB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXUB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXUB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMAXUB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXUB", 3, Operands { v0, v1, v2 }) - // VPMAXUB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xde) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xde) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXUB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xde) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xde) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXUB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xde) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xde) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXUB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xde) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xde) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXUB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xde) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xde) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXUB") - } - return p -} - -// VPMAXUD performs "Maximum of Packed Unsigned Doubleword Integers". -// -// Mnemonic : VPMAXUD -// Supported forms : (10 forms) -// -// * VPMAXUD xmm, xmm, xmm [AVX] -// * VPMAXUD m128, xmm, xmm [AVX] -// * VPMAXUD ymm, ymm, ymm [AVX2] -// * VPMAXUD m256, ymm, ymm [AVX2] -// * VPMAXUD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMAXUD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMAXUD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXUD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXUD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMAXUD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMAXUD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXUD", 3, Operands { v0, v1, v2 }) - // VPMAXUD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXUD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXUD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXUD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXUD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMAXUD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXUD") - } - return p -} - -// VPMAXUQ performs "Maximum of Packed Unsigned Quadword Integers". -// -// Mnemonic : VPMAXUQ -// Supported forms : (6 forms) -// -// * VPMAXUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMAXUQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMAXUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXUQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMAXUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMAXUQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMAXUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXUQ", 3, Operands { v0, v1, v2 }) - // VPMAXUQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXUQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXUQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3f) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMAXUQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXUQ") - } - return p -} - -// VPMAXUW performs "Maximum of Packed Unsigned Word Integers". -// -// Mnemonic : VPMAXUW -// Supported forms : (10 forms) -// -// * VPMAXUW xmm, xmm, xmm [AVX] -// * VPMAXUW m128, xmm, xmm [AVX] -// * VPMAXUW ymm, ymm, ymm [AVX2] -// * VPMAXUW m256, ymm, ymm [AVX2] -// * VPMAXUW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXUW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMAXUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMAXUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMAXUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMAXUW", 3, Operands { v0, v1, v2 }) - // VPMAXUW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXUW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3e) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMAXUW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3e) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMAXUW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3e) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMAXUW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMAXUW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3e) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMAXUW") - } - return p -} - -// VPMINSB performs "Minimum of Packed Signed Byte Integers". -// -// Mnemonic : VPMINSB -// Supported forms : (10 forms) -// -// * VPMINSB xmm, xmm, xmm [AVX] -// * VPMINSB m128, xmm, xmm [AVX] -// * VPMINSB ymm, ymm, ymm [AVX2] -// * VPMINSB m256, ymm, ymm [AVX2] -// * VPMINSB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMINSB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMINSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMINSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMINSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINSB", 3, Operands { v0, v1, v2 }) - // VPMINSB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x38) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x38) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINSB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x38) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x38) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINSB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x38) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x38) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINSB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x38) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x38) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINSB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x38) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x38) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINSB") - } - return p -} - -// VPMINSD performs "Minimum of Packed Signed Doubleword Integers". -// -// Mnemonic : VPMINSD -// Supported forms : (10 forms) -// -// * VPMINSD xmm, xmm, xmm [AVX] -// * VPMINSD m128, xmm, xmm [AVX] -// * VPMINSD ymm, ymm, ymm [AVX2] -// * VPMINSD m256, ymm, ymm [AVX2] -// * VPMINSD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMINSD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMINSD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINSD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINSD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMINSD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMINSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINSD", 3, Operands { v0, v1, v2 }) - // VPMINSD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINSD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINSD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINSD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINSD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMINSD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINSD") - } - return p -} - -// VPMINSQ performs "Minimum of Packed Signed Quadword Integers". -// -// Mnemonic : VPMINSQ -// Supported forms : (6 forms) -// -// * VPMINSQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMINSQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMINSQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINSQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINSQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMINSQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMINSQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINSQ", 3, Operands { v0, v1, v2 }) - // VPMINSQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINSQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINSQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x39) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMINSQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x39) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINSQ") - } - return p -} - -// VPMINSW performs "Minimum of Packed Signed Word Integers". -// -// Mnemonic : VPMINSW -// Supported forms : (10 forms) -// -// * VPMINSW xmm, xmm, xmm [AVX] -// * VPMINSW m128, xmm, xmm [AVX] -// * VPMINSW ymm, ymm, ymm [AVX2] -// * VPMINSW m256, ymm, ymm [AVX2] -// * VPMINSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMINSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMINSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMINSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMINSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINSW", 3, Operands { v0, v1, v2 }) - // VPMINSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xea) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xea) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xea) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xea) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xea) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xea) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xea) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xea) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xea) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xea) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINSW") - } - return p -} - -// VPMINUB performs "Minimum of Packed Unsigned Byte Integers". -// -// Mnemonic : VPMINUB -// Supported forms : (10 forms) -// -// * VPMINUB xmm, xmm, xmm [AVX] -// * VPMINUB m128, xmm, xmm [AVX] -// * VPMINUB ymm, ymm, ymm [AVX2] -// * VPMINUB m256, ymm, ymm [AVX2] -// * VPMINUB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMINUB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMINUB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINUB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINUB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMINUB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMINUB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINUB", 3, Operands { v0, v1, v2 }) - // VPMINUB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xda) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xda) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINUB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xda) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xda) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINUB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xda) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xda) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINUB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xda) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xda) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINUB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xda) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xda) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINUB") - } - return p -} - -// VPMINUD performs "Minimum of Packed Unsigned Doubleword Integers". -// -// Mnemonic : VPMINUD -// Supported forms : (10 forms) -// -// * VPMINUD xmm, xmm, xmm [AVX] -// * VPMINUD m128, xmm, xmm [AVX] -// * VPMINUD ymm, ymm, ymm [AVX2] -// * VPMINUD m256, ymm, ymm [AVX2] -// * VPMINUD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMINUD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMINUD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINUD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINUD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMINUD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMINUD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINUD", 3, Operands { v0, v1, v2 }) - // VPMINUD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINUD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINUD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINUD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINUD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMINUD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINUD") - } - return p -} - -// VPMINUQ performs "Minimum of Packed Unsigned Quadword Integers". -// -// Mnemonic : VPMINUQ -// Supported forms : (6 forms) -// -// * VPMINUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMINUQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMINUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINUQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMINUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMINUQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMINUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINUQ", 3, Operands { v0, v1, v2 }) - // VPMINUQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINUQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINUQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x3b) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMINUQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINUQ") - } - return p -} - -// VPMINUW performs "Minimum of Packed Unsigned Word Integers". -// -// Mnemonic : VPMINUW -// Supported forms : (10 forms) -// -// * VPMINUW xmm, xmm, xmm [AVX] -// * VPMINUW m128, xmm, xmm [AVX] -// * VPMINUW ymm, ymm, ymm [AVX2] -// * VPMINUW m256, ymm, ymm [AVX2] -// * VPMINUW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMINUW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMINUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMINUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMINUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMINUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMINUW", 3, Operands { v0, v1, v2 }) - // VPMINUW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINUW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x3a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMINUW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3a) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMINUW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3a) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMINUW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x3a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMINUW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x3a) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMINUW") - } - return p -} - -// VPMOVB2M performs "Move Signs of Packed Byte Integers to Mask Register". -// -// Mnemonic : VPMOVB2M -// Supported forms : (3 forms) -// -// * VPMOVB2M zmm, k [AVX512BW] -// * VPMOVB2M xmm, k [AVX512BW,AVX512VL] -// * VPMOVB2M ymm, k [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVB2M(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVB2M", 2, Operands { v0, v1 }) - // VPMOVB2M zmm, k - if isZMM(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVB2M xmm, k - if isEVEXXMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x08) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVB2M ymm, k - if isEVEXYMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x28) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVB2M") - } - return p -} - -// VPMOVD2M performs "Move Signs of Packed Doubleword Integers to Mask Register". -// -// Mnemonic : VPMOVD2M -// Supported forms : (3 forms) -// -// * VPMOVD2M zmm, k [AVX512DQ] -// * VPMOVD2M xmm, k [AVX512DQ,AVX512VL] -// * VPMOVD2M ymm, k [AVX512DQ,AVX512VL] -// -func (self *Program) VPMOVD2M(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVD2M", 2, Operands { v0, v1 }) - // VPMOVD2M zmm, k - if isZMM(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVD2M xmm, k - if isEVEXXMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x08) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVD2M ymm, k - if isEVEXYMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x28) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVD2M") - } - return p -} - -// VPMOVDB performs "Down Convert Packed Doubleword Values to Byte Values with Truncation". -// -// Mnemonic : VPMOVDB -// Supported forms : (6 forms) -// -// * VPMOVDB zmm, xmm{k}{z} [AVX512F] -// * VPMOVDB zmm, m128{k}{z} [AVX512F] -// * VPMOVDB xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVDB xmm, m32{k}{z} [AVX512F,AVX512VL] -// * VPMOVDB ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVDB ymm, m64{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVDB", 2, Operands { v0, v1 }) - // VPMOVDB zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x31) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVDB zmm, m128{k}{z} - if isZMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x31) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VPMOVDB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x31) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVDB xmm, m32{k}{z} - if isEVEXXMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x31) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPMOVDB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x31) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVDB ymm, m64{k}{z} - if isEVEXYMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x31) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVDB") - } - return p -} - -// VPMOVDW performs "Down Convert Packed Doubleword Values to Word Values with Truncation". -// -// Mnemonic : VPMOVDW -// Supported forms : (6 forms) -// -// * VPMOVDW zmm, ymm{k}{z} [AVX512F] -// * VPMOVDW zmm, m256{k}{z} [AVX512F] -// * VPMOVDW xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVDW xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VPMOVDW ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVDW ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVDW", 2, Operands { v0, v1 }) - // VPMOVDW zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x33) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVDW zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x33) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVDW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x33) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVDW xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x33) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVDW ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x33) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVDW ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x33) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVDW") - } - return p -} - -// VPMOVM2B performs "Expand Bits of Mask Register to Packed Byte Integers". -// -// Mnemonic : VPMOVM2B -// Supported forms : (3 forms) -// -// * VPMOVM2B k, zmm [AVX512BW] -// * VPMOVM2B k, xmm [AVX512BW,AVX512VL] -// * VPMOVM2B k, ymm [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVM2B(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVM2B", 2, Operands { v0, v1 }) - // VPMOVM2B k, zmm - if isK(v0) && isZMM(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2B k, xmm - if isK(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x08) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2B k, ymm - if isK(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x28) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVM2B") - } - return p -} - -// VPMOVM2D performs "Expand Bits of Mask Register to Packed Doubleword Integers". -// -// Mnemonic : VPMOVM2D -// Supported forms : (3 forms) -// -// * VPMOVM2D k, zmm [AVX512DQ] -// * VPMOVM2D k, xmm [AVX512DQ,AVX512VL] -// * VPMOVM2D k, ymm [AVX512DQ,AVX512VL] -// -func (self *Program) VPMOVM2D(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVM2D", 2, Operands { v0, v1 }) - // VPMOVM2D k, zmm - if isK(v0) && isZMM(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x48) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2D k, xmm - if isK(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x08) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2D k, ymm - if isK(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7e) - m.emit(0x28) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVM2D") - } - return p -} - -// VPMOVM2Q performs "Expand Bits of Mask Register to Packed Quadword Integers". -// -// Mnemonic : VPMOVM2Q -// Supported forms : (3 forms) -// -// * VPMOVM2Q k, zmm [AVX512DQ] -// * VPMOVM2Q k, xmm [AVX512DQ,AVX512VL] -// * VPMOVM2Q k, ymm [AVX512DQ,AVX512VL] -// -func (self *Program) VPMOVM2Q(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVM2Q", 2, Operands { v0, v1 }) - // VPMOVM2Q k, zmm - if isK(v0) && isZMM(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2Q k, xmm - if isK(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x08) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2Q k, ymm - if isK(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x28) - m.emit(0x38) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVM2Q") - } - return p -} - -// VPMOVM2W performs "Expand Bits of Mask Register to Packed Word Integers". -// -// Mnemonic : VPMOVM2W -// Supported forms : (3 forms) -// -// * VPMOVM2W k, zmm [AVX512BW] -// * VPMOVM2W k, xmm [AVX512BW,AVX512VL] -// * VPMOVM2W k, ymm [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVM2W(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVM2W", 2, Operands { v0, v1 }) - // VPMOVM2W k, zmm - if isK(v0) && isZMM(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2W k, xmm - if isK(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x08) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVM2W k, ymm - if isK(v0) && isEVEXYMM(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x28) - m.emit(0x28) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVM2W") - } - return p -} - -// VPMOVMSKB performs "Move Byte Mask". -// -// Mnemonic : VPMOVMSKB -// Supported forms : (2 forms) -// -// * VPMOVMSKB xmm, r32 [AVX] -// * VPMOVMSKB ymm, r32 [AVX2] -// -func (self *Program) VPMOVMSKB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVMSKB", 2, Operands { v0, v1 }) - // VPMOVMSKB xmm, r32 - if isXMM(v0) && isReg32(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0xd7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVMSKB ymm, r32 - if isYMM(v0) && isReg32(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0xd7) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVMSKB") - } - return p -} - -// VPMOVQ2M performs "Move Signs of Packed Quadword Integers to Mask Register". -// -// Mnemonic : VPMOVQ2M -// Supported forms : (3 forms) -// -// * VPMOVQ2M zmm, k [AVX512DQ] -// * VPMOVQ2M xmm, k [AVX512DQ,AVX512VL] -// * VPMOVQ2M ymm, k [AVX512DQ,AVX512VL] -// -func (self *Program) VPMOVQ2M(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVQ2M", 2, Operands { v0, v1 }) - // VPMOVQ2M zmm, k - if isZMM(v0) && isK(v1) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVQ2M xmm, k - if isEVEXXMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x08) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVQ2M ymm, k - if isEVEXYMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x28) - m.emit(0x39) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVQ2M") - } - return p -} - -// VPMOVQB performs "Down Convert Packed Quadword Values to Byte Values with Truncation". -// -// Mnemonic : VPMOVQB -// Supported forms : (6 forms) -// -// * VPMOVQB zmm, xmm{k}{z} [AVX512F] -// * VPMOVQB zmm, m64{k}{z} [AVX512F] -// * VPMOVQB xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVQB xmm, m16{k}{z} [AVX512F,AVX512VL] -// * VPMOVQB ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVQB ymm, m32{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVQB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVQB", 2, Operands { v0, v1 }) - // VPMOVQB zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x32) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQB zmm, m64{k}{z} - if isZMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x32) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVQB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x32) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQB xmm, m16{k}{z} - if isEVEXXMM(v0) && isM16kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x32) - m.mrsd(lcode(v[0]), addr(v[1]), 2) - }) - } - // VPMOVQB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x32) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQB ymm, m32{k}{z} - if isEVEXYMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x32) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVQB") - } - return p -} - -// VPMOVQD performs "Down Convert Packed Quadword Values to Doubleword Values with Truncation". -// -// Mnemonic : VPMOVQD -// Supported forms : (6 forms) -// -// * VPMOVQD zmm, ymm{k}{z} [AVX512F] -// * VPMOVQD zmm, m256{k}{z} [AVX512F] -// * VPMOVQD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVQD xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VPMOVQD ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVQD ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVQD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVQD", 2, Operands { v0, v1 }) - // VPMOVQD zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x35) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQD zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x35) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVQD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x35) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQD xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x35) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVQD ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x35) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQD ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x35) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVQD") - } - return p -} - -// VPMOVQW performs "Down Convert Packed Quadword Values to Word Values with Truncation". -// -// Mnemonic : VPMOVQW -// Supported forms : (6 forms) -// -// * VPMOVQW zmm, xmm{k}{z} [AVX512F] -// * VPMOVQW zmm, m128{k}{z} [AVX512F] -// * VPMOVQW xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVQW xmm, m32{k}{z} [AVX512F,AVX512VL] -// * VPMOVQW ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVQW ymm, m64{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVQW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVQW", 2, Operands { v0, v1 }) - // VPMOVQW zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x34) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQW zmm, m128{k}{z} - if isZMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x34) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VPMOVQW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x34) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQW xmm, m32{k}{z} - if isEVEXXMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x34) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPMOVQW ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x34) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVQW ymm, m64{k}{z} - if isEVEXYMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x34) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVQW") - } - return p -} - -// VPMOVSDB performs "Down Convert Packed Doubleword Values to Byte Values with Signed Saturation". -// -// Mnemonic : VPMOVSDB -// Supported forms : (6 forms) -// -// * VPMOVSDB zmm, xmm{k}{z} [AVX512F] -// * VPMOVSDB zmm, m128{k}{z} [AVX512F] -// * VPMOVSDB xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSDB xmm, m32{k}{z} [AVX512F,AVX512VL] -// * VPMOVSDB ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSDB ymm, m64{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSDB", 2, Operands { v0, v1 }) - // VPMOVSDB zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x21) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSDB zmm, m128{k}{z} - if isZMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x21) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VPMOVSDB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x21) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSDB xmm, m32{k}{z} - if isEVEXXMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x21) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPMOVSDB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x21) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSDB ymm, m64{k}{z} - if isEVEXYMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x21) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSDB") - } - return p -} - -// VPMOVSDW performs "Down Convert Packed Doubleword Values to Word Values with Signed Saturation". -// -// Mnemonic : VPMOVSDW -// Supported forms : (6 forms) -// -// * VPMOVSDW zmm, ymm{k}{z} [AVX512F] -// * VPMOVSDW zmm, m256{k}{z} [AVX512F] -// * VPMOVSDW xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSDW xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VPMOVSDW ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSDW ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSDW", 2, Operands { v0, v1 }) - // VPMOVSDW zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x23) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSDW zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x23) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVSDW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x23) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSDW xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x23) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVSDW ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x23) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSDW ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x23) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSDW") - } - return p -} - -// VPMOVSQB performs "Down Convert Packed Quadword Values to Byte Values with Signed Saturation". -// -// Mnemonic : VPMOVSQB -// Supported forms : (6 forms) -// -// * VPMOVSQB zmm, xmm{k}{z} [AVX512F] -// * VPMOVSQB zmm, m64{k}{z} [AVX512F] -// * VPMOVSQB xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQB xmm, m16{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQB ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQB ymm, m32{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSQB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSQB", 2, Operands { v0, v1 }) - // VPMOVSQB zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x22) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQB zmm, m64{k}{z} - if isZMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x22) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVSQB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x22) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQB xmm, m16{k}{z} - if isEVEXXMM(v0) && isM16kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x22) - m.mrsd(lcode(v[0]), addr(v[1]), 2) - }) - } - // VPMOVSQB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x22) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQB ymm, m32{k}{z} - if isEVEXYMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x22) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSQB") - } - return p -} - -// VPMOVSQD performs "Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation". -// -// Mnemonic : VPMOVSQD -// Supported forms : (6 forms) -// -// * VPMOVSQD zmm, ymm{k}{z} [AVX512F] -// * VPMOVSQD zmm, m256{k}{z} [AVX512F] -// * VPMOVSQD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQD xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQD ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQD ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSQD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSQD", 2, Operands { v0, v1 }) - // VPMOVSQD zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x25) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQD zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x25) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVSQD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x25) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQD xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x25) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVSQD ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x25) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQD ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x25) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSQD") - } - return p -} - -// VPMOVSQW performs "Down Convert Packed Quadword Values to Word Values with Signed Saturation". -// -// Mnemonic : VPMOVSQW -// Supported forms : (6 forms) -// -// * VPMOVSQW zmm, xmm{k}{z} [AVX512F] -// * VPMOVSQW zmm, m128{k}{z} [AVX512F] -// * VPMOVSQW xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQW xmm, m32{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQW ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSQW ymm, m64{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSQW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSQW", 2, Operands { v0, v1 }) - // VPMOVSQW zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x24) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQW zmm, m128{k}{z} - if isZMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x24) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VPMOVSQW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x24) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQW xmm, m32{k}{z} - if isEVEXXMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x24) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPMOVSQW ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x24) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSQW ymm, m64{k}{z} - if isEVEXYMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x24) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSQW") - } - return p -} - -// VPMOVSWB performs "Down Convert Packed Word Values to Byte Values with Signed Saturation". -// -// Mnemonic : VPMOVSWB -// Supported forms : (6 forms) -// -// * VPMOVSWB zmm, ymm{k}{z} [AVX512BW] -// * VPMOVSWB zmm, m256{k}{z} [AVX512BW] -// * VPMOVSWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVSWB xmm, m64{k}{z} [AVX512BW,AVX512VL] -// * VPMOVSWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVSWB ymm, m128{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVSWB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSWB", 2, Operands { v0, v1 }) - // VPMOVSWB zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x20) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSWB zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x20) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVSWB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x20) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSWB xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x20) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVSWB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x20) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVSWB ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x20) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSWB") - } - return p -} - -// VPMOVSXBD performs "Move Packed Byte Integers to Doubleword Integers with Sign Extension". -// -// Mnemonic : VPMOVSXBD -// Supported forms : (10 forms) -// -// * VPMOVSXBD xmm, xmm [AVX] -// * VPMOVSXBD m32, xmm [AVX] -// * VPMOVSXBD xmm, ymm [AVX2] -// * VPMOVSXBD m64, ymm [AVX2] -// * VPMOVSXBD xmm, zmm{k}{z} [AVX512F] -// * VPMOVSXBD m128, zmm{k}{z} [AVX512F] -// * VPMOVSXBD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXBD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXBD m32, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXBD m64, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSXBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSXBD", 2, Operands { v0, v1 }) - // VPMOVSXBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x21) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x21) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXBD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x21) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBD m64, ymm - if isM64(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x21) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXBD xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x21) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBD m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x21) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPMOVSXBD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x21) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x21) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBD m32, xmm{k}{z} - if isM32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x21) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPMOVSXBD m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x21) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSXBD") - } - return p -} - -// VPMOVSXBQ performs "Move Packed Byte Integers to Quadword Integers with Sign Extension". -// -// Mnemonic : VPMOVSXBQ -// Supported forms : (10 forms) -// -// * VPMOVSXBQ xmm, xmm [AVX] -// * VPMOVSXBQ m16, xmm [AVX] -// * VPMOVSXBQ xmm, ymm [AVX2] -// * VPMOVSXBQ m32, ymm [AVX2] -// * VPMOVSXBQ xmm, zmm{k}{z} [AVX512F] -// * VPMOVSXBQ m64, zmm{k}{z} [AVX512F] -// * VPMOVSXBQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXBQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXBQ m16, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXBQ m32, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSXBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSXBQ", 2, Operands { v0, v1 }) - // VPMOVSXBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBQ m16, xmm - if isM16(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXBQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBQ m32, ymm - if isM32(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXBQ xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBQ m64, zmm{k}{z} - if isM64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVSXBQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x22) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBQ m16, xmm{k}{z} - if isM16(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 2) - }) - } - // VPMOVSXBQ m32, ymm{k}{z} - if isM32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x22) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSXBQ") - } - return p -} - -// VPMOVSXBW performs "Move Packed Byte Integers to Word Integers with Sign Extension". -// -// Mnemonic : VPMOVSXBW -// Supported forms : (10 forms) -// -// * VPMOVSXBW xmm, xmm [AVX] -// * VPMOVSXBW m64, xmm [AVX] -// * VPMOVSXBW xmm, ymm [AVX2] -// * VPMOVSXBW m128, ymm [AVX2] -// * VPMOVSXBW ymm, zmm{k}{z} [AVX512BW] -// * VPMOVSXBW m256, zmm{k}{z} [AVX512BW] -// * VPMOVSXBW xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVSXBW xmm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVSXBW m64, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVSXBW m128, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVSXBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSXBW", 2, Operands { v0, v1 }) - // VPMOVSXBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x20) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBW m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x20) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXBW xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x20) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBW m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x20) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXBW ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x20) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBW m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x20) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPMOVSXBW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x20) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBW xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x20) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXBW m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x20) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVSXBW m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x20) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSXBW") - } - return p -} - -// VPMOVSXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Sign Extension". -// -// Mnemonic : VPMOVSXDQ -// Supported forms : (10 forms) -// -// * VPMOVSXDQ xmm, xmm [AVX] -// * VPMOVSXDQ m64, xmm [AVX] -// * VPMOVSXDQ xmm, ymm [AVX2] -// * VPMOVSXDQ m128, ymm [AVX2] -// * VPMOVSXDQ ymm, zmm{k}{z} [AVX512F] -// * VPMOVSXDQ m256, zmm{k}{z} [AVX512F] -// * VPMOVSXDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXDQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXDQ m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXDQ m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSXDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSXDQ", 2, Operands { v0, v1 }) - // VPMOVSXDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x25) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXDQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x25) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXDQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x25) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXDQ m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x25) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXDQ ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x25) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXDQ m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x25) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPMOVSXDQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x25) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXDQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x25) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXDQ m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x25) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVSXDQ m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x25) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSXDQ") - } - return p -} - -// VPMOVSXWD performs "Move Packed Word Integers to Doubleword Integers with Sign Extension". -// -// Mnemonic : VPMOVSXWD -// Supported forms : (10 forms) -// -// * VPMOVSXWD xmm, xmm [AVX] -// * VPMOVSXWD m64, xmm [AVX] -// * VPMOVSXWD xmm, ymm [AVX2] -// * VPMOVSXWD m128, ymm [AVX2] -// * VPMOVSXWD ymm, zmm{k}{z} [AVX512F] -// * VPMOVSXWD m256, zmm{k}{z} [AVX512F] -// * VPMOVSXWD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXWD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXWD m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXWD m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSXWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSXWD", 2, Operands { v0, v1 }) - // VPMOVSXWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXWD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWD m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXWD ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWD m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPMOVSXWD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x23) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWD m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVSXWD m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x23) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSXWD") - } - return p -} - -// VPMOVSXWQ performs "Move Packed Word Integers to Quadword Integers with Sign Extension". -// -// Mnemonic : VPMOVSXWQ -// Supported forms : (10 forms) -// -// * VPMOVSXWQ xmm, xmm [AVX] -// * VPMOVSXWQ m32, xmm [AVX] -// * VPMOVSXWQ xmm, ymm [AVX2] -// * VPMOVSXWQ m64, ymm [AVX2] -// * VPMOVSXWQ xmm, zmm{k}{z} [AVX512F] -// * VPMOVSXWQ m128, zmm{k}{z} [AVX512F] -// * VPMOVSXWQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXWQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXWQ m32, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVSXWQ m64, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVSXWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVSXWQ", 2, Operands { v0, v1 }) - // VPMOVSXWQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x24) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWQ m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x24) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXWQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x24) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWQ m64, ymm - if isM64(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x24) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVSXWQ xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x24) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWQ m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x24) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPMOVSXWQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x24) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x24) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVSXWQ m32, xmm{k}{z} - if isM32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x24) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPMOVSXWQ m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x24) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVSXWQ") - } - return p -} - -// VPMOVUSDB performs "Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation". -// -// Mnemonic : VPMOVUSDB -// Supported forms : (6 forms) -// -// * VPMOVUSDB zmm, xmm{k}{z} [AVX512F] -// * VPMOVUSDB zmm, m128{k}{z} [AVX512F] -// * VPMOVUSDB xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSDB xmm, m32{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSDB ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSDB ymm, m64{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVUSDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVUSDB", 2, Operands { v0, v1 }) - // VPMOVUSDB zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSDB zmm, m128{k}{z} - if isZMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VPMOVUSDB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSDB xmm, m32{k}{z} - if isEVEXXMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPMOVUSDB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x11) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSDB ymm, m64{k}{z} - if isEVEXYMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x11) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVUSDB") - } - return p -} - -// VPMOVUSDW performs "Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation". -// -// Mnemonic : VPMOVUSDW -// Supported forms : (6 forms) -// -// * VPMOVUSDW zmm, ymm{k}{z} [AVX512F] -// * VPMOVUSDW zmm, m256{k}{z} [AVX512F] -// * VPMOVUSDW xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSDW xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSDW ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSDW ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVUSDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVUSDW", 2, Operands { v0, v1 }) - // VPMOVUSDW zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x13) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSDW zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVUSDW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x13) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSDW xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVUSDW ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x13) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSDW ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x13) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVUSDW") - } - return p -} - -// VPMOVUSQB performs "Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation". -// -// Mnemonic : VPMOVUSQB -// Supported forms : (6 forms) -// -// * VPMOVUSQB zmm, xmm{k}{z} [AVX512F] -// * VPMOVUSQB zmm, m64{k}{z} [AVX512F] -// * VPMOVUSQB xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQB xmm, m16{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQB ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQB ymm, m32{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVUSQB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVUSQB", 2, Operands { v0, v1 }) - // VPMOVUSQB zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x12) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQB zmm, m64{k}{z} - if isZMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVUSQB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x12) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQB xmm, m16{k}{z} - if isEVEXXMM(v0) && isM16kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[0]), addr(v[1]), 2) - }) - } - // VPMOVUSQB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x12) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQB ymm, m32{k}{z} - if isEVEXYMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x12) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVUSQB") - } - return p -} - -// VPMOVUSQD performs "Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation". -// -// Mnemonic : VPMOVUSQD -// Supported forms : (6 forms) -// -// * VPMOVUSQD zmm, ymm{k}{z} [AVX512F] -// * VPMOVUSQD zmm, m256{k}{z} [AVX512F] -// * VPMOVUSQD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQD xmm, m64{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQD ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQD ymm, m128{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVUSQD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVUSQD", 2, Operands { v0, v1 }) - // VPMOVUSQD zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x15) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQD zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x15) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVUSQD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x15) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQD xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x15) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVUSQD ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x15) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQD ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x15) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVUSQD") - } - return p -} - -// VPMOVUSQW performs "Down Convert Packed Quadword Values to Word Values with Unsigned Saturation". -// -// Mnemonic : VPMOVUSQW -// Supported forms : (6 forms) -// -// * VPMOVUSQW zmm, xmm{k}{z} [AVX512F] -// * VPMOVUSQW zmm, m128{k}{z} [AVX512F] -// * VPMOVUSQW xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQW xmm, m32{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQW ymm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVUSQW ymm, m64{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVUSQW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVUSQW", 2, Operands { v0, v1 }) - // VPMOVUSQW zmm, xmm{k}{z} - if isZMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x14) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQW zmm, m128{k}{z} - if isZMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x14) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - // VPMOVUSQW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x14) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQW xmm, m32{k}{z} - if isEVEXXMM(v0) && isM32kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x14) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPMOVUSQW ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x14) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSQW ymm, m64{k}{z} - if isEVEXYMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x14) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVUSQW") - } - return p -} - -// VPMOVUSWB performs "Down Convert Packed Word Values to Byte Values with Unsigned Saturation". -// -// Mnemonic : VPMOVUSWB -// Supported forms : (6 forms) -// -// * VPMOVUSWB zmm, ymm{k}{z} [AVX512BW] -// * VPMOVUSWB zmm, m256{k}{z} [AVX512BW] -// * VPMOVUSWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVUSWB xmm, m64{k}{z} [AVX512BW,AVX512VL] -// * VPMOVUSWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVUSWB ymm, m128{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVUSWB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVUSWB", 2, Operands { v0, v1 }) - // VPMOVUSWB zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x10) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSWB zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVUSWB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x10) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSWB xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVUSWB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x10) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVUSWB ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x10) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVUSWB") - } - return p -} - -// VPMOVW2M performs "Move Signs of Packed Word Integers to Mask Register". -// -// Mnemonic : VPMOVW2M -// Supported forms : (3 forms) -// -// * VPMOVW2M zmm, k [AVX512BW] -// * VPMOVW2M xmm, k [AVX512BW,AVX512VL] -// * VPMOVW2M ymm, k [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVW2M(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVW2M", 2, Operands { v0, v1 }) - // VPMOVW2M zmm, k - if isZMM(v0) && isK(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x48) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVW2M xmm, k - if isEVEXXMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x08) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVW2M ymm, k - if isEVEXYMM(v0) && isK(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfe) - m.emit(0x28) - m.emit(0x29) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVW2M") - } - return p -} - -// VPMOVWB performs "Down Convert Packed Word Values to Byte Values with Truncation". -// -// Mnemonic : VPMOVWB -// Supported forms : (6 forms) -// -// * VPMOVWB zmm, ymm{k}{z} [AVX512BW] -// * VPMOVWB zmm, m256{k}{z} [AVX512BW] -// * VPMOVWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVWB xmm, m64{k}{z} [AVX512BW,AVX512VL] -// * VPMOVWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVWB ymm, m128{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVWB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVWB", 2, Operands { v0, v1 }) - // VPMOVWB zmm, ymm{k}{z} - if isZMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x30) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVWB zmm, m256{k}{z} - if isZMM(v0) && isM256kz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x30) - m.mrsd(lcode(v[0]), addr(v[1]), 32) - }) - } - // VPMOVWB xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x30) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVWB xmm, m64{k}{z} - if isEVEXXMM(v0) && isM64kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x30) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPMOVWB ymm, xmm{k}{z} - if isEVEXYMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x30) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // VPMOVWB ymm, m128{k}{z} - if isEVEXYMM(v0) && isM128kz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x30) - m.mrsd(lcode(v[0]), addr(v[1]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVWB") - } - return p -} - -// VPMOVZXBD performs "Move Packed Byte Integers to Doubleword Integers with Zero Extension". -// -// Mnemonic : VPMOVZXBD -// Supported forms : (10 forms) -// -// * VPMOVZXBD xmm, xmm [AVX] -// * VPMOVZXBD m32, xmm [AVX] -// * VPMOVZXBD xmm, ymm [AVX2] -// * VPMOVZXBD m64, ymm [AVX2] -// * VPMOVZXBD xmm, zmm{k}{z} [AVX512F] -// * VPMOVZXBD m128, zmm{k}{z} [AVX512F] -// * VPMOVZXBD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXBD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXBD m32, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXBD m64, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVZXBD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVZXBD", 2, Operands { v0, v1 }) - // VPMOVZXBD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x31) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBD m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x31) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXBD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x31) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBD m64, ymm - if isM64(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x31) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXBD xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x31) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBD m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x31) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPMOVZXBD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x31) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x31) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBD m32, xmm{k}{z} - if isM32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x31) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPMOVZXBD m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x31) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVZXBD") - } - return p -} - -// VPMOVZXBQ performs "Move Packed Byte Integers to Quadword Integers with Zero Extension". -// -// Mnemonic : VPMOVZXBQ -// Supported forms : (10 forms) -// -// * VPMOVZXBQ xmm, xmm [AVX] -// * VPMOVZXBQ m16, xmm [AVX] -// * VPMOVZXBQ xmm, ymm [AVX2] -// * VPMOVZXBQ m32, ymm [AVX2] -// * VPMOVZXBQ xmm, zmm{k}{z} [AVX512F] -// * VPMOVZXBQ m64, zmm{k}{z} [AVX512F] -// * VPMOVZXBQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXBQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXBQ m16, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXBQ m32, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVZXBQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVZXBQ", 2, Operands { v0, v1 }) - // VPMOVZXBQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBQ m16, xmm - if isM16(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXBQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBQ m32, ymm - if isM32(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXBQ xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBQ m64, zmm{k}{z} - if isM64(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVZXBQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBQ m16, xmm{k}{z} - if isM16(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 2) - }) - } - // VPMOVZXBQ m32, ymm{k}{z} - if isM32(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVZXBQ") - } - return p -} - -// VPMOVZXBW performs "Move Packed Byte Integers to Word Integers with Zero Extension". -// -// Mnemonic : VPMOVZXBW -// Supported forms : (10 forms) -// -// * VPMOVZXBW xmm, xmm [AVX] -// * VPMOVZXBW m64, xmm [AVX] -// * VPMOVZXBW xmm, ymm [AVX2] -// * VPMOVZXBW m128, ymm [AVX2] -// * VPMOVZXBW ymm, zmm{k}{z} [AVX512BW] -// * VPMOVZXBW m256, zmm{k}{z} [AVX512BW] -// * VPMOVZXBW xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVZXBW xmm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVZXBW m64, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMOVZXBW m128, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMOVZXBW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVZXBW", 2, Operands { v0, v1 }) - // VPMOVZXBW xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x30) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBW m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x30) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXBW xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x30) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBW m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x30) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXBW ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x30) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBW m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x30) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPMOVZXBW xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x30) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBW xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x30) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXBW m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x30) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVZXBW m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x30) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVZXBW") - } - return p -} - -// VPMOVZXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Zero Extension". -// -// Mnemonic : VPMOVZXDQ -// Supported forms : (10 forms) -// -// * VPMOVZXDQ xmm, xmm [AVX] -// * VPMOVZXDQ m64, xmm [AVX] -// * VPMOVZXDQ xmm, ymm [AVX2] -// * VPMOVZXDQ m128, ymm [AVX2] -// * VPMOVZXDQ ymm, zmm{k}{z} [AVX512F] -// * VPMOVZXDQ m256, zmm{k}{z} [AVX512F] -// * VPMOVZXDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXDQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXDQ m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXDQ m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVZXDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVZXDQ", 2, Operands { v0, v1 }) - // VPMOVZXDQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x35) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXDQ m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x35) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXDQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x35) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXDQ m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x35) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXDQ ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x35) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXDQ m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x35) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPMOVZXDQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x35) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXDQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x35) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXDQ m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x35) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVZXDQ m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x35) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVZXDQ") - } - return p -} - -// VPMOVZXWD performs "Move Packed Word Integers to Doubleword Integers with Zero Extension". -// -// Mnemonic : VPMOVZXWD -// Supported forms : (10 forms) -// -// * VPMOVZXWD xmm, xmm [AVX] -// * VPMOVZXWD m64, xmm [AVX] -// * VPMOVZXWD xmm, ymm [AVX2] -// * VPMOVZXWD m128, ymm [AVX2] -// * VPMOVZXWD ymm, zmm{k}{z} [AVX512F] -// * VPMOVZXWD m256, zmm{k}{z} [AVX512F] -// * VPMOVZXWD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXWD xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXWD m64, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXWD m128, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVZXWD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVZXWD", 2, Operands { v0, v1 }) - // VPMOVZXWD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWD m64, xmm - if isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXWD xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWD m128, ymm - if isM128(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXWD ymm, zmm{k}{z} - if isEVEXYMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWD m256, zmm{k}{z} - if isM256(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VPMOVZXWD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWD xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWD m64, xmm{k}{z} - if isM64(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VPMOVZXWD m128, ymm{k}{z} - if isM128(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVZXWD") - } - return p -} - -// VPMOVZXWQ performs "Move Packed Word Integers to Quadword Integers with Zero Extension". -// -// Mnemonic : VPMOVZXWQ -// Supported forms : (10 forms) -// -// * VPMOVZXWQ xmm, xmm [AVX] -// * VPMOVZXWQ m32, xmm [AVX] -// * VPMOVZXWQ xmm, ymm [AVX2] -// * VPMOVZXWQ m64, ymm [AVX2] -// * VPMOVZXWQ xmm, zmm{k}{z} [AVX512F] -// * VPMOVZXWQ m128, zmm{k}{z} [AVX512F] -// * VPMOVZXWQ xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXWQ xmm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXWQ m32, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMOVZXWQ m64, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMOVZXWQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPMOVZXWQ", 2, Operands { v0, v1 }) - // VPMOVZXWQ xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x34) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWQ m32, xmm - if isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x34) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXWQ xmm, ymm - if isXMM(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x34) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWQ m64, ymm - if isM64(v0) && isYMM(v1) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x34) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPMOVZXWQ xmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x34) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWQ m128, zmm{k}{z} - if isM128(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x34) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VPMOVZXWQ xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x34) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWQ xmm, ymm{k}{z} - if isEVEXXMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x34) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPMOVZXWQ m32, xmm{k}{z} - if isM32(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x34) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VPMOVZXWQ m64, ymm{k}{z} - if isM64(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) - m.emit(0x34) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPMOVZXWQ") - } - return p -} - -// VPMULDQ performs "Multiply Packed Signed Doubleword Integers and Store Quadword Result". -// -// Mnemonic : VPMULDQ -// Supported forms : (10 forms) -// -// * VPMULDQ xmm, xmm, xmm [AVX] -// * VPMULDQ m128, xmm, xmm [AVX] -// * VPMULDQ ymm, ymm, ymm [AVX2] -// * VPMULDQ m256, ymm, ymm [AVX2] -// * VPMULDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMULDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMULDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMULDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMULDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMULDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMULDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULDQ", 3, Operands { v0, v1, v2 }) - // VPMULDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x28) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x28) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x28) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x28) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULDQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x28) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x28) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULDQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x28) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x28) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULDQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x28) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMULDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x28) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULDQ") - } - return p -} - -// VPMULHRSW performs "Packed Multiply Signed Word Integers and Store High Result with Round and Scale". -// -// Mnemonic : VPMULHRSW -// Supported forms : (10 forms) -// -// * VPMULHRSW xmm, xmm, xmm [AVX] -// * VPMULHRSW m128, xmm, xmm [AVX] -// * VPMULHRSW ymm, ymm, ymm [AVX2] -// * VPMULHRSW m256, ymm, ymm [AVX2] -// * VPMULHRSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMULHRSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMULHRSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHRSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHRSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHRSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMULHRSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULHRSW", 3, Operands { v0, v1, v2 }) - // VPMULHRSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHRSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULHRSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHRSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULHRSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHRSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x0b) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULHRSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHRSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x0b) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULHRSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHRSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x0b) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULHRSW") - } - return p -} - -// VPMULHUW performs "Multiply Packed Unsigned Word Integers and Store High Result". -// -// Mnemonic : VPMULHUW -// Supported forms : (10 forms) -// -// * VPMULHUW xmm, xmm, xmm [AVX] -// * VPMULHUW m128, xmm, xmm [AVX] -// * VPMULHUW ymm, ymm, ymm [AVX2] -// * VPMULHUW m256, ymm, ymm [AVX2] -// * VPMULHUW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMULHUW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMULHUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMULHUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULHUW", 3, Operands { v0, v1, v2 }) - // VPMULHUW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHUW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe4) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULHUW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHUW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe4) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULHUW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHUW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe4) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULHUW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHUW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe4) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULHUW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHUW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe4) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULHUW") - } - return p -} - -// VPMULHW performs "Multiply Packed Signed Word Integers and Store High Result". -// -// Mnemonic : VPMULHW -// Supported forms : (10 forms) -// -// * VPMULHW xmm, xmm, xmm [AVX] -// * VPMULHW m128, xmm, xmm [AVX] -// * VPMULHW ymm, ymm, ymm [AVX2] -// * VPMULHW m256, ymm, ymm [AVX2] -// * VPMULHW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMULHW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMULHW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMULHW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMULHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULHW", 3, Operands { v0, v1, v2 }) - // VPMULHW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULHW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULHW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe5) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULHW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe5) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULHW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULHW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe5) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULHW") - } - return p -} - -// VPMULLD performs "Multiply Packed Signed Doubleword Integers and Store Low Result". -// -// Mnemonic : VPMULLD -// Supported forms : (10 forms) -// -// * VPMULLD xmm, xmm, xmm [AVX] -// * VPMULLD m128, xmm, xmm [AVX] -// * VPMULLD ymm, ymm, ymm [AVX2] -// * VPMULLD m256, ymm, ymm [AVX2] -// * VPMULLD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMULLD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMULLD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMULLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMULLD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMULLD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMULLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULLD", 3, Operands { v0, v1, v2 }) - // VPMULLD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULLD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULLD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULLD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULLD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMULLD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULLD") - } - return p -} - -// VPMULLQ performs "Multiply Packed Signed Quadword Integers and Store Low Result". -// -// Mnemonic : VPMULLQ -// Supported forms : (6 forms) -// -// * VPMULLQ m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VPMULLQ zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VPMULLQ m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VPMULLQ xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VPMULLQ m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VPMULLQ ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VPMULLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULLQ", 3, Operands { v0, v1, v2 }) - // VPMULLQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULLQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULLQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x40) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMULLQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x40) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULLQ") - } - return p -} - -// VPMULLW performs "Multiply Packed Signed Word Integers and Store Low Result". -// -// Mnemonic : VPMULLW -// Supported forms : (10 forms) -// -// * VPMULLW xmm, xmm, xmm [AVX] -// * VPMULLW m128, xmm, xmm [AVX] -// * VPMULLW ymm, ymm, ymm [AVX2] -// * VPMULLW m256, ymm, ymm [AVX2] -// * VPMULLW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPMULLW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPMULLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPMULLW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPMULLW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPMULLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULLW", 3, Operands { v0, v1, v2 }) - // VPMULLW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULLW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd5) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULLW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd5) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULLW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd5) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULLW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd5) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULLW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd5) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULLW") - } - return p -} - -// VPMULTISHIFTQB performs "Select Packed Unaligned Bytes from Quadword Sources". -// -// Mnemonic : VPMULTISHIFTQB -// Supported forms : (6 forms) -// -// * VPMULTISHIFTQB m128/m64bcst, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPMULTISHIFTQB xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] -// * VPMULTISHIFTQB m256/m64bcst, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPMULTISHIFTQB ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] -// * VPMULTISHIFTQB m512/m64bcst, zmm, zmm{k}{z} [AVX512VBMI] -// * VPMULTISHIFTQB zmm, zmm, zmm{k}{z} [AVX512VBMI] -// -func (self *Program) VPMULTISHIFTQB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULTISHIFTQB", 3, Operands { v0, v1, v2 }) - // VPMULTISHIFTQB m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VBMI | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x83) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULTISHIFTQB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VBMI | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x83) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULTISHIFTQB m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VBMI | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x83) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMULTISHIFTQB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VBMI | ISA_AVX512VL) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x83) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULTISHIFTQB m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x83) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULTISHIFTQB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512VBMI) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x83) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULTISHIFTQB") - } - return p -} - -// VPMULUDQ performs "Multiply Packed Unsigned Doubleword Integers". -// -// Mnemonic : VPMULUDQ -// Supported forms : (10 forms) -// -// * VPMULUDQ xmm, xmm, xmm [AVX] -// * VPMULUDQ m128, xmm, xmm [AVX] -// * VPMULUDQ ymm, ymm, ymm [AVX2] -// * VPMULUDQ m256, ymm, ymm [AVX2] -// * VPMULUDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPMULUDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPMULUDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMULUDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPMULUDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPMULUDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPMULUDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPMULUDQ", 3, Operands { v0, v1, v2 }) - // VPMULUDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULUDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf4) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULUDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULUDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf4) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPMULUDQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xf4) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPMULUDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULUDQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xf4) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPMULUDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPMULUDQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xf4) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPMULUDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf4) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPMULUDQ") - } - return p -} - -// VPOPCNTD performs "Packed Population Count for Doubleword Integers". -// -// Mnemonic : VPOPCNTD -// Supported forms : (2 forms) -// -// * VPOPCNTD m512/m32bcst, zmm{k}{z} [AVX512VPOPCNTDQ] -// * VPOPCNTD zmm, zmm{k}{z} [AVX512VPOPCNTDQ] -// -func (self *Program) VPOPCNTD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPOPCNTD", 2, Operands { v0, v1 }) - // VPOPCNTD m512/m32bcst, zmm{k}{z} - if isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512VPOPCNTDQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPOPCNTD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512VPOPCNTDQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x55) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPOPCNTD") - } - return p -} - -// VPOPCNTQ performs "Packed Population Count for Quadword Integers". -// -// Mnemonic : VPOPCNTQ -// Supported forms : (2 forms) -// -// * VPOPCNTQ m512/m64bcst, zmm{k}{z} [AVX512VPOPCNTDQ] -// * VPOPCNTQ zmm, zmm{k}{z} [AVX512VPOPCNTDQ] -// -func (self *Program) VPOPCNTQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPOPCNTQ", 2, Operands { v0, v1 }) - // VPOPCNTQ m512/m64bcst, zmm{k}{z} - if isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512VPOPCNTDQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x55) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VPOPCNTQ zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512VPOPCNTDQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x55) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPOPCNTQ") - } - return p -} - -// VPOR performs "Packed Bitwise Logical OR". -// -// Mnemonic : VPOR -// Supported forms : (4 forms) -// -// * VPOR xmm, xmm, xmm [AVX] -// * VPOR m128, xmm, xmm [AVX] -// * VPOR ymm, ymm, ymm [AVX2] -// * VPOR m256, ymm, ymm [AVX2] -// -func (self *Program) VPOR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPOR", 3, Operands { v0, v1, v2 }) - // VPOR xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPOR m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPOR ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPOR m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPOR") - } - return p -} - -// VPORD performs "Bitwise Logical OR of Packed Doubleword Integers". -// -// Mnemonic : VPORD -// Supported forms : (6 forms) -// -// * VPORD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPORD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPORD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPORD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPORD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPORD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPORD", 3, Operands { v0, v1, v2 }) - // VPORD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPORD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPORD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPORD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPORD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPORD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPORD") - } - return p -} - -// VPORQ performs "Bitwise Logical OR of Packed Quadword Integers". -// -// Mnemonic : VPORQ -// Supported forms : (6 forms) -// -// * VPORQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPORQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPORQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPORQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPORQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPORQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPORQ", 3, Operands { v0, v1, v2 }) - // VPORQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPORQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPORQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPORQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPORQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xeb) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPORQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xeb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPORQ") - } - return p -} - -// VPPERM performs "Packed Permute Bytes". -// -// Mnemonic : VPPERM -// Supported forms : (3 forms) -// -// * VPPERM xmm, xmm, xmm, xmm [XOP] -// * VPPERM m128, xmm, xmm, xmm [XOP] -// * VPPERM xmm, m128, xmm, xmm [XOP] -// -func (self *Program) VPPERM(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPPERM", 4, Operands { v0, v1, v2, v3 }) - // VPPERM xmm, xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[2]) << 3)) - m.emit(0xa3) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.emit(hlcode(v[0]) << 4) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[2]) << 3)) - m.emit(0xa3) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) - m.emit(hlcode(v[1]) << 4) - }) - } - // VPPERM m128, xmm, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x80, hcode(v[3]), addr(v[0]), hlcode(v[2])) - m.emit(0xa3) - m.mrsd(lcode(v[3]), addr(v[0]), 1) - m.emit(hlcode(v[1]) << 4) - }) - } - // VPPERM xmm, m128, xmm, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xa3) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.emit(hlcode(v[0]) << 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPPERM") - } - return p -} - -// VPROLD performs "Rotate Packed Doubleword Left". -// -// Mnemonic : VPROLD -// Supported forms : (6 forms) -// -// * VPROLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPROLD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPROLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPROLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPROLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROLD", 3, Operands { v0, v1, v2 }) - // VPROLD imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(1, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLD imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(1, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLD imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(1, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPROLD") - } - return p -} - -// VPROLQ performs "Rotate Packed Quadword Left". -// -// Mnemonic : VPROLQ -// Supported forms : (6 forms) -// -// * VPROLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPROLQ imm8, zmm, zmm{k}{z} [AVX512F] -// * VPROLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPROLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPROLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROLQ", 3, Operands { v0, v1, v2 }) - // VPROLQ imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(1, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLQ imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLQ imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(1, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLQ imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(1, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLQ imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROLQ imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xc8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPROLQ") - } - return p -} - -// VPROLVD performs "Variable Rotate Packed Doubleword Left". -// -// Mnemonic : VPROLVD -// Supported forms : (6 forms) -// -// * VPROLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPROLVD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPROLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPROLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPROLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROLVD", 3, Operands { v0, v1, v2 }) - // VPROLVD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPROLVD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROLVD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPROLVD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROLVD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPROLVD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPROLVD") - } - return p -} - -// VPROLVQ performs "Variable Rotate Packed Quadword Left". -// -// Mnemonic : VPROLVQ -// Supported forms : (6 forms) -// -// * VPROLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPROLVQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPROLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPROLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPROLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPROLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROLVQ", 3, Operands { v0, v1, v2 }) - // VPROLVQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPROLVQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROLVQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPROLVQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROLVQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPROLVQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPROLVQ") - } - return p -} - -// VPRORD performs "Rotate Packed Doubleword Right". -// -// Mnemonic : VPRORD -// Supported forms : (6 forms) -// -// * VPRORD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPRORD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPRORD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPRORD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPRORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPRORD", 3, Operands { v0, v1, v2 }) - // VPRORD imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(0, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORD imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(0, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORD imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(0, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPRORD") - } - return p -} - -// VPRORQ performs "Rotate Packed Quadword Right". -// -// Mnemonic : VPRORQ -// Supported forms : (6 forms) -// -// * VPRORQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPRORQ imm8, zmm, zmm{k}{z} [AVX512F] -// * VPRORQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPRORQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPRORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPRORQ", 3, Operands { v0, v1, v2 }) - // VPRORQ imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(0, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORQ imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORQ imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(0, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORQ imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(0, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORQ imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPRORQ imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xc0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPRORQ") - } - return p -} - -// VPRORVD performs "Variable Rotate Packed Doubleword Right". -// -// Mnemonic : VPRORVD -// Supported forms : (6 forms) -// -// * VPRORVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPRORVD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPRORVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPRORVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPRORVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPRORVD", 3, Operands { v0, v1, v2 }) - // VPRORVD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPRORVD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPRORVD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPRORVD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPRORVD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPRORVD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPRORVD") - } - return p -} - -// VPRORVQ performs "Variable Rotate Packed Quadword Right". -// -// Mnemonic : VPRORVQ -// Supported forms : (6 forms) -// -// * VPRORVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPRORVQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPRORVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPRORVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPRORVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPRORVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPRORVQ", 3, Operands { v0, v1, v2 }) - // VPRORVQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPRORVQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPRORVQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPRORVQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPRORVQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPRORVQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPRORVQ") - } - return p -} - -// VPROTB performs "Packed Rotate Bytes". -// -// Mnemonic : VPROTB -// Supported forms : (5 forms) -// -// * VPROTB imm8, xmm, xmm [XOP] -// * VPROTB xmm, xmm, xmm [XOP] -// * VPROTB m128, xmm, xmm [XOP] -// * VPROTB imm8, m128, xmm [XOP] -// * VPROTB xmm, m128, xmm [XOP] -// -func (self *Program) VPROTB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROTB", 3, Operands { v0, v1, v2 }) - // VPROTB imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78) - m.emit(0xc0) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x90) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x90) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROTB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x90) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPROTB imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) - m.emit(0xc0) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTB xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x90) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPROTB") - } - return p -} - -// VPROTD performs "Packed Rotate Doublewords". -// -// Mnemonic : VPROTD -// Supported forms : (5 forms) -// -// * VPROTD imm8, xmm, xmm [XOP] -// * VPROTD xmm, xmm, xmm [XOP] -// * VPROTD m128, xmm, xmm [XOP] -// * VPROTD imm8, m128, xmm [XOP] -// * VPROTD xmm, m128, xmm [XOP] -// -func (self *Program) VPROTD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROTD", 3, Operands { v0, v1, v2 }) - // VPROTD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78) - m.emit(0xc2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x92) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x92) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROTD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x92) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPROTD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) - m.emit(0xc2) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTD xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x92) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPROTD") - } - return p -} - -// VPROTQ performs "Packed Rotate Quadwords". -// -// Mnemonic : VPROTQ -// Supported forms : (5 forms) -// -// * VPROTQ imm8, xmm, xmm [XOP] -// * VPROTQ xmm, xmm, xmm [XOP] -// * VPROTQ m128, xmm, xmm [XOP] -// * VPROTQ imm8, m128, xmm [XOP] -// * VPROTQ xmm, m128, xmm [XOP] -// -func (self *Program) VPROTQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROTQ", 3, Operands { v0, v1, v2 }) - // VPROTQ imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78) - m.emit(0xc3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x93) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x93) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROTQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x93) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPROTQ imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) - m.emit(0xc3) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTQ xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x93) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPROTQ") - } - return p -} - -// VPROTW performs "Packed Rotate Words". -// -// Mnemonic : VPROTW -// Supported forms : (5 forms) -// -// * VPROTW imm8, xmm, xmm [XOP] -// * VPROTW xmm, xmm, xmm [XOP] -// * VPROTW m128, xmm, xmm [XOP] -// * VPROTW imm8, m128, xmm [XOP] -// * VPROTW xmm, m128, xmm [XOP] -// -func (self *Program) VPROTW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPROTW", 3, Operands { v0, v1, v2 }) - // VPROTW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x91) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x91) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPROTW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x91) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPROTW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) - m.emit(0xc1) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPROTW xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x91) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPROTW") - } - return p -} - -// VPSADBW performs "Compute Sum of Absolute Differences". -// -// Mnemonic : VPSADBW -// Supported forms : (10 forms) -// -// * VPSADBW xmm, xmm, xmm [AVX] -// * VPSADBW m128, xmm, xmm [AVX] -// * VPSADBW ymm, ymm, ymm [AVX2] -// * VPSADBW m256, ymm, ymm [AVX2] -// * VPSADBW zmm, zmm, zmm [AVX512BW] -// * VPSADBW m512, zmm, zmm [AVX512BW] -// * VPSADBW xmm, xmm, xmm [AVX512BW,AVX512VL] -// * VPSADBW m128, xmm, xmm [AVX512BW,AVX512VL] -// * VPSADBW ymm, ymm, ymm [AVX512BW,AVX512VL] -// * VPSADBW m256, ymm, ymm [AVX512BW,AVX512VL] -// -func (self *Program) VPSADBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSADBW", 3, Operands { v0, v1, v2 }) - // VPSADBW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSADBW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSADBW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSADBW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSADBW zmm, zmm, zmm - if isZMM(v0) && isZMM(v1) && isZMM(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSADBW m512, zmm, zmm - if isM512(v0) && isZMM(v1) && isZMM(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSADBW xmm, xmm, xmm - if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSADBW m128, xmm, xmm - if isM128(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSADBW ymm, ymm, ymm - if isEVEXYMM(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x20) - m.emit(0xf6) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSADBW m256, ymm, ymm - if isM256(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) - m.emit(0xf6) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSADBW") - } - return p -} - -// VPSCATTERDD performs "Scatter Packed Doubleword Values with Signed Doubleword Indices". -// -// Mnemonic : VPSCATTERDD -// Supported forms : (3 forms) -// -// * VPSCATTERDD zmm, vm32z{k} [AVX512F] -// * VPSCATTERDD xmm, vm32x{k} [AVX512F,AVX512VL] -// * VPSCATTERDD ymm, vm32y{k} [AVX512F,AVX512VL] -// -func (self *Program) VPSCATTERDD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPSCATTERDD", 2, Operands { v0, v1 }) - // VPSCATTERDD zmm, vm32z{k} - if isZMM(v0) && isVMZk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa0) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPSCATTERDD xmm, vm32x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa0) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPSCATTERDD ymm, vm32y{k} - if isEVEXYMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa0) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPSCATTERDD") - } - return p -} - -// VPSCATTERDQ performs "Scatter Packed Quadword Values with Signed Doubleword Indices". -// -// Mnemonic : VPSCATTERDQ -// Supported forms : (3 forms) -// -// * VPSCATTERDQ zmm, vm32y{k} [AVX512F] -// * VPSCATTERDQ xmm, vm32x{k} [AVX512F,AVX512VL] -// * VPSCATTERDQ ymm, vm32x{k} [AVX512F,AVX512VL] -// -func (self *Program) VPSCATTERDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPSCATTERDQ", 2, Operands { v0, v1 }) - // VPSCATTERDQ zmm, vm32y{k} - if isZMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa0) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPSCATTERDQ xmm, vm32x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa0) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPSCATTERDQ ymm, vm32x{k} - if isEVEXYMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa0) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPSCATTERDQ") - } - return p -} - -// VPSCATTERQD performs "Scatter Packed Doubleword Values with Signed Quadword Indices". -// -// Mnemonic : VPSCATTERQD -// Supported forms : (3 forms) -// -// * VPSCATTERQD ymm, vm64z{k} [AVX512F] -// * VPSCATTERQD xmm, vm64x{k} [AVX512F,AVX512VL] -// * VPSCATTERQD xmm, vm64y{k} [AVX512F,AVX512VL] -// -func (self *Program) VPSCATTERQD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPSCATTERQD", 2, Operands { v0, v1 }) - // VPSCATTERQD ymm, vm64z{k} - if isEVEXYMM(v0) && isVMZk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa1) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPSCATTERQD xmm, vm64x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa1) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VPSCATTERQD xmm, vm64y{k} - if isEVEXXMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa1) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VPSCATTERQD") - } - return p -} - -// VPSCATTERQQ performs "Scatter Packed Quadword Values with Signed Quadword Indices". -// -// Mnemonic : VPSCATTERQQ -// Supported forms : (3 forms) -// -// * VPSCATTERQQ zmm, vm64z{k} [AVX512F] -// * VPSCATTERQQ xmm, vm64x{k} [AVX512F,AVX512VL] -// * VPSCATTERQQ ymm, vm64y{k} [AVX512F,AVX512VL] -// -func (self *Program) VPSCATTERQQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPSCATTERQQ", 2, Operands { v0, v1 }) - // VPSCATTERQQ zmm, vm64z{k} - if isZMM(v0) && isVMZk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa1) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPSCATTERQQ xmm, vm64x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa1) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VPSCATTERQQ ymm, vm64y{k} - if isEVEXYMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa1) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VPSCATTERQQ") - } - return p -} - -// VPSHAB performs "Packed Shift Arithmetic Bytes". -// -// Mnemonic : VPSHAB -// Supported forms : (3 forms) -// -// * VPSHAB xmm, xmm, xmm [XOP] -// * VPSHAB m128, xmm, xmm [XOP] -// * VPSHAB xmm, m128, xmm [XOP] -// -func (self *Program) VPSHAB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHAB", 3, Operands { v0, v1, v2 }) - // VPSHAB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x98) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHAB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHAB xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x98) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHAB") - } - return p -} - -// VPSHAD performs "Packed Shift Arithmetic Doublewords". -// -// Mnemonic : VPSHAD -// Supported forms : (3 forms) -// -// * VPSHAD xmm, xmm, xmm [XOP] -// * VPSHAD m128, xmm, xmm [XOP] -// * VPSHAD xmm, m128, xmm [XOP] -// -func (self *Program) VPSHAD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHAD", 3, Operands { v0, v1, v2 }) - // VPSHAD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x9a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHAD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHAD xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x9a) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHAD") - } - return p -} - -// VPSHAQ performs "Packed Shift Arithmetic Quadwords". -// -// Mnemonic : VPSHAQ -// Supported forms : (3 forms) -// -// * VPSHAQ xmm, xmm, xmm [XOP] -// * VPSHAQ m128, xmm, xmm [XOP] -// * VPSHAQ xmm, m128, xmm [XOP] -// -func (self *Program) VPSHAQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHAQ", 3, Operands { v0, v1, v2 }) - // VPSHAQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x9b) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHAQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x9b) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHAQ xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x9b) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHAQ") - } - return p -} - -// VPSHAW performs "Packed Shift Arithmetic Words". -// -// Mnemonic : VPSHAW -// Supported forms : (3 forms) -// -// * VPSHAW xmm, xmm, xmm [XOP] -// * VPSHAW m128, xmm, xmm [XOP] -// * VPSHAW xmm, m128, xmm [XOP] -// -func (self *Program) VPSHAW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHAW", 3, Operands { v0, v1, v2 }) - // VPSHAW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x99) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x99) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHAW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x99) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHAW xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x99) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHAW") - } - return p -} - -// VPSHLB performs "Packed Shift Logical Bytes". -// -// Mnemonic : VPSHLB -// Supported forms : (3 forms) -// -// * VPSHLB xmm, xmm, xmm [XOP] -// * VPSHLB m128, xmm, xmm [XOP] -// * VPSHLB xmm, m128, xmm [XOP] -// -func (self *Program) VPSHLB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHLB", 3, Operands { v0, v1, v2 }) - // VPSHLB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x94) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x94) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHLB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x94) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHLB xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x94) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHLB") - } - return p -} - -// VPSHLD performs "Packed Shift Logical Doublewords". -// -// Mnemonic : VPSHLD -// Supported forms : (3 forms) -// -// * VPSHLD xmm, xmm, xmm [XOP] -// * VPSHLD m128, xmm, xmm [XOP] -// * VPSHLD xmm, m128, xmm [XOP] -// -func (self *Program) VPSHLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHLD", 3, Operands { v0, v1, v2 }) - // VPSHLD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x96) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHLD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHLD xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x96) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHLD") - } - return p -} - -// VPSHLQ performs "Packed Shift Logical Quadwords". -// -// Mnemonic : VPSHLQ -// Supported forms : (3 forms) -// -// * VPSHLQ xmm, xmm, xmm [XOP] -// * VPSHLQ m128, xmm, xmm [XOP] -// * VPSHLQ xmm, m128, xmm [XOP] -// -func (self *Program) VPSHLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHLQ", 3, Operands { v0, v1, v2 }) - // VPSHLQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x97) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHLQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHLQ xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x97) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHLQ") - } - return p -} - -// VPSHLW performs "Packed Shift Logical Words". -// -// Mnemonic : VPSHLW -// Supported forms : (3 forms) -// -// * VPSHLW xmm, xmm, xmm [XOP] -// * VPSHLW m128, xmm, xmm [XOP] -// * VPSHLW xmm, m128, xmm [XOP] -// -func (self *Program) VPSHLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHLW", 3, Operands { v0, v1, v2 }) - // VPSHLW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x78 ^ (hlcode(v[0]) << 3)) - m.emit(0x95) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x8f) - m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf8 ^ (hlcode(v[1]) << 3)) - m.emit(0x95) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHLW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x95) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHLW xmm, m128, xmm - if isXMM(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_XOP) - p.domain = DomainAMDSpecific - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) - m.emit(0x95) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHLW") - } - return p -} - -// VPSHUFB performs "Packed Shuffle Bytes". -// -// Mnemonic : VPSHUFB -// Supported forms : (10 forms) -// -// * VPSHUFB xmm, xmm, xmm [AVX] -// * VPSHUFB m128, xmm, xmm [AVX] -// * VPSHUFB ymm, ymm, ymm [AVX2] -// * VPSHUFB m256, ymm, ymm [AVX2] -// * VPSHUFB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSHUFB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSHUFB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSHUFB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHUFB", 3, Operands { v0, v1, v2 }) - // VPSHUFB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHUFB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHUFB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHUFB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSHUFB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHUFB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSHUFB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHUFB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSHUFB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x00) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSHUFB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x00) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHUFB") - } - return p -} - -// VPSHUFD performs "Shuffle Packed Doublewords". -// -// Mnemonic : VPSHUFD -// Supported forms : (10 forms) -// -// * VPSHUFD imm8, xmm, xmm [AVX] -// * VPSHUFD imm8, m128, xmm [AVX] -// * VPSHUFD imm8, ymm, ymm [AVX2] -// * VPSHUFD imm8, m256, ymm [AVX2] -// * VPSHUFD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPSHUFD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSHUFD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSHUFD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSHUFD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSHUFD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSHUFD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHUFD", 3, Operands { v0, v1, v2 }) - // VPSHUFD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[1], 0) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[1]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[1], 0) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[1]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHUFD") - } - return p -} - -// VPSHUFHW performs "Shuffle Packed High Words". -// -// Mnemonic : VPSHUFHW -// Supported forms : (10 forms) -// -// * VPSHUFHW imm8, xmm, xmm [AVX] -// * VPSHUFHW imm8, m128, xmm [AVX] -// * VPSHUFHW imm8, ymm, ymm [AVX2] -// * VPSHUFHW imm8, m256, ymm [AVX2] -// * VPSHUFHW imm8, zmm, zmm{k}{z} [AVX512BW] -// * VPSHUFHW imm8, m512, zmm{k}{z} [AVX512BW] -// * VPSHUFHW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFHW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFHW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFHW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSHUFHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHUFHW", 3, Operands { v0, v1, v2 }) - // VPSHUFHW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[1], 0) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[1]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[2]), v[1], 0) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(6, hcode(v[2]), addr(v[1]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, m512, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, m128, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFHW imm8, m256, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHUFHW") - } - return p -} - -// VPSHUFLW performs "Shuffle Packed Low Words". -// -// Mnemonic : VPSHUFLW -// Supported forms : (10 forms) -// -// * VPSHUFLW imm8, xmm, xmm [AVX] -// * VPSHUFLW imm8, m128, xmm [AVX] -// * VPSHUFLW imm8, ymm, ymm [AVX2] -// * VPSHUFLW imm8, m256, ymm [AVX2] -// * VPSHUFLW imm8, zmm, zmm{k}{z} [AVX512BW] -// * VPSHUFLW imm8, m512, zmm{k}{z} [AVX512BW] -// * VPSHUFLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSHUFLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSHUFLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSHUFLW", 3, Operands { v0, v1, v2 }) - // VPSHUFLW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[1], 0) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[1]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), v[1], 0) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(7, hcode(v[2]), addr(v[1]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, m512, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7f) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x70) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, m128, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSHUFLW imm8, m256, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x07, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) - m.emit(0x70) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSHUFLW") - } - return p -} - -// VPSIGNB performs "Packed Sign of Byte Integers". -// -// Mnemonic : VPSIGNB -// Supported forms : (4 forms) -// -// * VPSIGNB xmm, xmm, xmm [AVX] -// * VPSIGNB m128, xmm, xmm [AVX] -// * VPSIGNB ymm, ymm, ymm [AVX2] -// * VPSIGNB m256, ymm, ymm [AVX2] -// -func (self *Program) VPSIGNB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSIGNB", 3, Operands { v0, v1, v2 }) - // VPSIGNB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSIGNB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSIGNB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSIGNB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSIGNB") - } - return p -} - -// VPSIGND performs "Packed Sign of Doubleword Integers". -// -// Mnemonic : VPSIGND -// Supported forms : (4 forms) -// -// * VPSIGND xmm, xmm, xmm [AVX] -// * VPSIGND m128, xmm, xmm [AVX] -// * VPSIGND ymm, ymm, ymm [AVX2] -// * VPSIGND m256, ymm, ymm [AVX2] -// -func (self *Program) VPSIGND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSIGND", 3, Operands { v0, v1, v2 }) - // VPSIGND xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSIGND m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSIGND ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSIGND m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x0a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSIGND") - } - return p -} - -// VPSIGNW performs "Packed Sign of Word Integers". -// -// Mnemonic : VPSIGNW -// Supported forms : (4 forms) -// -// * VPSIGNW xmm, xmm, xmm [AVX] -// * VPSIGNW m128, xmm, xmm [AVX] -// * VPSIGNW ymm, ymm, ymm [AVX2] -// * VPSIGNW m256, ymm, ymm [AVX2] -// -func (self *Program) VPSIGNW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSIGNW", 3, Operands { v0, v1, v2 }) - // VPSIGNW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSIGNW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSIGNW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSIGNW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPSIGNW") - } - return p -} - -// VPSLLD performs "Shift Packed Doubleword Data Left Logical". -// -// Mnemonic : VPSLLD -// Supported forms : (18 forms) -// -// * VPSLLD imm8, xmm, xmm [AVX] -// * VPSLLD xmm, xmm, xmm [AVX] -// * VPSLLD m128, xmm, xmm [AVX] -// * VPSLLD imm8, ymm, ymm [AVX2] -// * VPSLLD xmm, ymm, ymm [AVX2] -// * VPSLLD m128, ymm, ymm [AVX2] -// * VPSLLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPSLLD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSLLD xmm, zmm, zmm{k}{z} [AVX512F] -// * VPSLLD m128, zmm, zmm{k}{z} [AVX512F] -// * VPSLLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSLLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLD", 3, Operands { v0, v1, v2 }) - // VPSLLD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLD m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLD imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(6, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLD m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLD imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(6, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(6, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLD m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLD xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLD m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLD") - } - return p -} - -// VPSLLDQ performs "Shift Packed Double Quadword Left Logical". -// -// Mnemonic : VPSLLDQ -// Supported forms : (8 forms) -// -// * VPSLLDQ imm8, xmm, xmm [AVX] -// * VPSLLDQ imm8, ymm, ymm [AVX2] -// * VPSLLDQ imm8, zmm, zmm [AVX512BW] -// * VPSLLDQ imm8, m512, zmm [AVX512BW] -// * VPSLLDQ imm8, xmm, xmm [AVX512BW,AVX512VL] -// * VPSLLDQ imm8, m128, xmm [AVX512BW,AVX512VL] -// * VPSLLDQ imm8, ymm, ymm [AVX512BW,AVX512VL] -// * VPSLLDQ imm8, m256, ymm [AVX512BW,AVX512VL] -// -func (self *Program) VPSLLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLDQ", 3, Operands { v0, v1, v2 }) - // VPSLLDQ imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, zmm, zmm - if isImm8(v0) && isZMM(v1) && isZMM(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x40) - m.emit(0x73) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, m512, zmm - if isImm8(v0) && isM512(v1) && isZMM(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x73) - m.mrsd(7, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, xmm, xmm - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0x73) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x73) - m.mrsd(7, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, ymm, ymm - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x20) - m.emit(0x73) - m.emit(0xf8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLDQ imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x73) - m.mrsd(7, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLDQ") - } - return p -} - -// VPSLLQ performs "Shift Packed Quadword Data Left Logical". -// -// Mnemonic : VPSLLQ -// Supported forms : (18 forms) -// -// * VPSLLQ imm8, xmm, xmm [AVX] -// * VPSLLQ xmm, xmm, xmm [AVX] -// * VPSLLQ m128, xmm, xmm [AVX] -// * VPSLLQ imm8, ymm, ymm [AVX2] -// * VPSLLQ xmm, ymm, ymm [AVX2] -// * VPSLLQ m128, ymm, ymm [AVX2] -// * VPSLLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPSLLQ imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSLLQ xmm, zmm, zmm{k}{z} [AVX512F] -// * VPSLLQ m128, zmm, zmm{k}{z} [AVX512F] -// * VPSLLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSLLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLQ", 3, Operands { v0, v1, v2 }) - // VPSLLQ imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLQ imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLQ m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf3) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLQ imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x73) - m.mrsd(6, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLQ m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLQ imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x73) - m.mrsd(6, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x73) - m.mrsd(6, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLQ m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLQ imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x73) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLQ xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLQ m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLQ") - } - return p -} - -// VPSLLVD performs "Variable Shift Packed Doubleword Data Left Logical". -// -// Mnemonic : VPSLLVD -// Supported forms : (10 forms) -// -// * VPSLLVD xmm, xmm, xmm [AVX2] -// * VPSLLVD m128, xmm, xmm [AVX2] -// * VPSLLVD ymm, ymm, ymm [AVX2] -// * VPSLLVD m256, ymm, ymm [AVX2] -// * VPSLLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSLLVD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSLLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSLLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLVD", 3, Operands { v0, v1, v2 }) - // VPSLLVD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLVD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLVD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSLLVD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLVD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSLLVD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLVD") - } - return p -} - -// VPSLLVQ performs "Variable Shift Packed Quadword Data Left Logical". -// -// Mnemonic : VPSLLVQ -// Supported forms : (10 forms) -// -// * VPSLLVQ xmm, xmm, xmm [AVX2] -// * VPSLLVQ m128, xmm, xmm [AVX2] -// * VPSLLVQ ymm, ymm, ymm [AVX2] -// * VPSLLVQ m256, ymm, ymm [AVX2] -// * VPSLLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSLLVQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSLLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSLLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSLLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSLLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLVQ", 3, Operands { v0, v1, v2 }) - // VPSLLVQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLVQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLVQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSLLVQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLVQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x47) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSLLVQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x47) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLVQ") - } - return p -} - -// VPSLLVW performs "Variable Shift Packed Word Data Left Logical". -// -// Mnemonic : VPSLLVW -// Supported forms : (6 forms) -// -// * VPSLLVW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSLLVW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSLLVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSLLVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLVW", 3, Operands { v0, v1, v2 }) - // VPSLLVW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x12) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSLLVW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x12) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLVW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x12) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLVW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x12) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLVW") - } - return p -} - -// VPSLLW performs "Shift Packed Word Data Left Logical". -// -// Mnemonic : VPSLLW -// Supported forms : (18 forms) -// -// * VPSLLW imm8, xmm, xmm [AVX] -// * VPSLLW xmm, xmm, xmm [AVX] -// * VPSLLW m128, xmm, xmm [AVX] -// * VPSLLW imm8, ymm, ymm [AVX2] -// * VPSLLW xmm, ymm, ymm [AVX2] -// * VPSLLW m128, ymm, ymm [AVX2] -// * VPSLLW imm8, zmm, zmm{k}{z} [AVX512BW] -// * VPSLLW xmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSLLW m128, zmm, zmm{k}{z} [AVX512BW] -// * VPSLLW imm8, m512, zmm{k}{z} [AVX512BW] -// * VPSLLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSLLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSLLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSLLW", 3, Operands { v0, v1, v2 }) - // VPSLLW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf1) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLW imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLW m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf1) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSLLW imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLW m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLW imm8, m512, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(6, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLW imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x71) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSLLW m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSLLW imm8, m128, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(6, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSLLW imm8, m256, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(6, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSLLW") - } - return p -} - -// VPSRAD performs "Shift Packed Doubleword Data Right Arithmetic". -// -// Mnemonic : VPSRAD -// Supported forms : (18 forms) -// -// * VPSRAD imm8, xmm, xmm [AVX] -// * VPSRAD xmm, xmm, xmm [AVX] -// * VPSRAD m128, xmm, xmm [AVX] -// * VPSRAD imm8, ymm, ymm [AVX2] -// * VPSRAD xmm, ymm, ymm [AVX2] -// * VPSRAD m128, ymm, ymm [AVX2] -// * VPSRAD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPSRAD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSRAD xmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRAD m128, zmm, zmm{k}{z} [AVX512F] -// * VPSRAD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRAD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRAD", 3, Operands { v0, v1, v2 }) - // VPSRAD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRAD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAD m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRAD imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(4, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAD m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAD imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(4, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(4, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAD m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAD xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAD m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRAD") - } - return p -} - -// VPSRAQ performs "Shift Packed Quadword Data Right Arithmetic". -// -// Mnemonic : VPSRAQ -// Supported forms : (12 forms) -// -// * VPSRAQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPSRAQ imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSRAQ xmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRAQ m128, zmm, zmm{k}{z} [AVX512F] -// * VPSRAQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRAQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRAQ", 3, Operands { v0, v1, v2 }) - // VPSRAQ imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(4, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAQ imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAQ xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAQ m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAQ imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(4, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAQ imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(4, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAQ imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAQ m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAQ imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAQ xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAQ m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRAQ") - } - return p -} - -// VPSRAVD performs "Variable Shift Packed Doubleword Data Right Arithmetic". -// -// Mnemonic : VPSRAVD -// Supported forms : (10 forms) -// -// * VPSRAVD xmm, xmm, xmm [AVX2] -// * VPSRAVD m128, xmm, xmm [AVX2] -// * VPSRAVD ymm, ymm, ymm [AVX2] -// * VPSRAVD m256, ymm, ymm [AVX2] -// * VPSRAVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSRAVD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRAVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRAVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRAVD", 3, Operands { v0, v1, v2 }) - // VPSRAVD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRAVD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRAVD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSRAVD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAVD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSRAVD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRAVD") - } - return p -} - -// VPSRAVQ performs "Variable Shift Packed Quadword Data Right Arithmetic". -// -// Mnemonic : VPSRAVQ -// Supported forms : (6 forms) -// -// * VPSRAVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSRAVQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRAVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRAVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRAVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRAVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRAVQ", 3, Operands { v0, v1, v2 }) - // VPSRAVQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSRAVQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAVQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x46) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSRAVQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x46) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRAVQ") - } - return p -} - -// VPSRAVW performs "Variable Shift Packed Word Data Right Arithmetic". -// -// Mnemonic : VPSRAVW -// Supported forms : (6 forms) -// -// * VPSRAVW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSRAVW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSRAVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSRAVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRAVW", 3, Operands { v0, v1, v2 }) - // VPSRAVW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x11) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x11) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSRAVW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x11) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x11) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAVW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x11) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAVW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x11) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRAVW") - } - return p -} - -// VPSRAW performs "Shift Packed Word Data Right Arithmetic". -// -// Mnemonic : VPSRAW -// Supported forms : (18 forms) -// -// * VPSRAW imm8, xmm, xmm [AVX] -// * VPSRAW xmm, xmm, xmm [AVX] -// * VPSRAW m128, xmm, xmm [AVX] -// * VPSRAW imm8, ymm, ymm [AVX2] -// * VPSRAW xmm, ymm, ymm [AVX2] -// * VPSRAW m128, ymm, ymm [AVX2] -// * VPSRAW imm8, zmm, zmm{k}{z} [AVX512BW] -// * VPSRAW xmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSRAW m128, zmm, zmm{k}{z} [AVX512BW] -// * VPSRAW imm8, m512, zmm{k}{z} [AVX512BW] -// * VPSRAW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRAW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSRAW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRAW", 3, Operands { v0, v1, v2 }) - // VPSRAW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe1) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRAW imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAW m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe1) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRAW imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAW m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAW imm8, m512, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(4, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAW imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x71) - m.emit(0xe0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRAW m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRAW imm8, m128, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(4, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRAW imm8, m256, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(4, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRAW") - } - return p -} - -// VPSRLD performs "Shift Packed Doubleword Data Right Logical". -// -// Mnemonic : VPSRLD -// Supported forms : (18 forms) -// -// * VPSRLD imm8, xmm, xmm [AVX] -// * VPSRLD xmm, xmm, xmm [AVX] -// * VPSRLD m128, xmm, xmm [AVX] -// * VPSRLD imm8, ymm, ymm [AVX2] -// * VPSRLD xmm, ymm, ymm [AVX2] -// * VPSRLD m128, ymm, ymm [AVX2] -// * VPSRLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VPSRLD imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSRLD xmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRLD m128, zmm, zmm{k}{z} [AVX512F] -// * VPSRLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLD", 3, Operands { v0, v1, v2 }) - // VPSRLD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLD m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd2) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLD imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(2, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLD m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLD imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(2, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x72) - m.mrsd(2, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLD m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x72) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLD xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd2) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLD m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd2) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLD") - } - return p -} - -// VPSRLDQ performs "Shift Packed Double Quadword Right Logical". -// -// Mnemonic : VPSRLDQ -// Supported forms : (8 forms) -// -// * VPSRLDQ imm8, xmm, xmm [AVX] -// * VPSRLDQ imm8, ymm, ymm [AVX2] -// * VPSRLDQ imm8, zmm, zmm [AVX512BW] -// * VPSRLDQ imm8, m512, zmm [AVX512BW] -// * VPSRLDQ imm8, xmm, xmm [AVX512BW,AVX512VL] -// * VPSRLDQ imm8, m128, xmm [AVX512BW,AVX512VL] -// * VPSRLDQ imm8, ymm, ymm [AVX512BW,AVX512VL] -// * VPSRLDQ imm8, m256, ymm [AVX512BW,AVX512VL] -// -func (self *Program) VPSRLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLDQ", 3, Operands { v0, v1, v2 }) - // VPSRLDQ imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, zmm, zmm - if isImm8(v0) && isZMM(v1) && isZMM(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x40) - m.emit(0x73) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, m512, zmm - if isImm8(v0) && isM512(v1) && isZMM(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x73) - m.mrsd(3, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, xmm, xmm - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) - m.emit(0x73) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x73) - m.mrsd(3, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, ymm, ymm - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x20) - m.emit(0x73) - m.emit(0xd8 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLDQ imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) - m.emit(0x73) - m.mrsd(3, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLDQ") - } - return p -} - -// VPSRLQ performs "Shift Packed Quadword Data Right Logical". -// -// Mnemonic : VPSRLQ -// Supported forms : (18 forms) -// -// * VPSRLQ imm8, xmm, xmm [AVX] -// * VPSRLQ xmm, xmm, xmm [AVX] -// * VPSRLQ m128, xmm, xmm [AVX] -// * VPSRLQ imm8, ymm, ymm [AVX2] -// * VPSRLQ xmm, ymm, ymm [AVX2] -// * VPSRLQ m128, ymm, ymm [AVX2] -// * VPSRLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VPSRLQ imm8, zmm, zmm{k}{z} [AVX512F] -// * VPSRLQ xmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRLQ m128, zmm, zmm{k}{z} [AVX512F] -// * VPSRLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLQ", 3, Operands { v0, v1, v2 }) - // VPSRLQ imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd3) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLQ imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLQ m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd3) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLQ imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x73) - m.mrsd(2, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLQ m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLQ imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x73) - m.mrsd(2, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x73) - m.mrsd(2, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLQ m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLQ imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x73) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLQ xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd3) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLQ m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd3) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLQ") - } - return p -} - -// VPSRLVD performs "Variable Shift Packed Doubleword Data Right Logical". -// -// Mnemonic : VPSRLVD -// Supported forms : (10 forms) -// -// * VPSRLVD xmm, xmm, xmm [AVX2] -// * VPSRLVD m128, xmm, xmm [AVX2] -// * VPSRLVD ymm, ymm, ymm [AVX2] -// * VPSRLVD m256, ymm, ymm [AVX2] -// * VPSRLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSRLVD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLVD", 3, Operands { v0, v1, v2 }) - // VPSRLVD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79 ^ (hlcode(v[1]) << 3)) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLVD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLVD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSRLVD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLVD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSRLVD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLVD") - } - return p -} - -// VPSRLVQ performs "Variable Shift Packed Quadword Data Right Logical". -// -// Mnemonic : VPSRLVQ -// Supported forms : (10 forms) -// -// * VPSRLVQ xmm, xmm, xmm [AVX2] -// * VPSRLVQ m128, xmm, xmm [AVX2] -// * VPSRLVQ ymm, ymm, ymm [AVX2] -// * VPSRLVQ m256, ymm, ymm [AVX2] -// * VPSRLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSRLVQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSRLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSRLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSRLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSRLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLVQ", 3, Operands { v0, v1, v2 }) - // VPSRLVQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xf9 ^ (hlcode(v[1]) << 3)) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLVQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLVQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSRLVQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLVQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x45) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSRLVQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x45) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLVQ") - } - return p -} - -// VPSRLVW performs "Variable Shift Packed Word Data Right Logical". -// -// Mnemonic : VPSRLVW -// Supported forms : (6 forms) -// -// * VPSRLVW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSRLVW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSRLVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSRLVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLVW", 3, Operands { v0, v1, v2 }) - // VPSRLVW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x10) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSRLVW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x10) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLVW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x10) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLVW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x10) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLVW") - } - return p -} - -// VPSRLW performs "Shift Packed Word Data Right Logical". -// -// Mnemonic : VPSRLW -// Supported forms : (18 forms) -// -// * VPSRLW imm8, xmm, xmm [AVX] -// * VPSRLW xmm, xmm, xmm [AVX] -// * VPSRLW m128, xmm, xmm [AVX] -// * VPSRLW imm8, ymm, ymm [AVX2] -// * VPSRLW xmm, ymm, ymm [AVX2] -// * VPSRLW m128, ymm, ymm [AVX2] -// * VPSRLW imm8, zmm, zmm{k}{z} [AVX512BW] -// * VPSRLW xmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSRLW m128, zmm, zmm{k}{z} [AVX512BW] -// * VPSRLW imm8, m512, zmm{k}{z} [AVX512BW] -// * VPSRLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSRLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSRLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSRLW", 3, Operands { v0, v1, v2 }) - // VPSRLW imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, 0, v[1], hlcode(v[2])) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd1) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLW imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, 0, v[1], hlcode(v[2])) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW xmm, ymm, ymm - if isXMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLW m128, ymm, ymm - if isM128(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd1) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSRLW imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW xmm, zmm, zmm{k}{z} - if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLW m128, zmm, zmm{k}{z} - if isM128(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLW imm8, m512, zmm{k}{z} - if isImm8(v0) && isM512(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(2, addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLW imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ (ehcode(v[1]) << 5)) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x71) - m.emit(0xd0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW xmm, ymm, ymm{k}{z} - if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd1) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSRLW m128, ymm, ymm{k}{z} - if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd1) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSRLW imm8, m128, xmm{k}{z} - if isImm8(v0) && isM128(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(2, addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPSRLW imm8, m256, ymm{k}{z} - if isImm8(v0) && isM256(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x71) - m.mrsd(2, addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSRLW") - } - return p -} - -// VPSUBB performs "Subtract Packed Byte Integers". -// -// Mnemonic : VPSUBB -// Supported forms : (10 forms) -// -// * VPSUBB xmm, xmm, xmm [AVX] -// * VPSUBB m128, xmm, xmm [AVX] -// * VPSUBB ymm, ymm, ymm [AVX2] -// * VPSUBB m256, ymm, ymm [AVX2] -// * VPSUBB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSUBB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBB", 3, Operands { v0, v1, v2 }) - // VPSUBB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBB") - } - return p -} - -// VPSUBD performs "Subtract Packed Doubleword Integers". -// -// Mnemonic : VPSUBD -// Supported forms : (10 forms) -// -// * VPSUBD xmm, xmm, xmm [AVX] -// * VPSUBD m128, xmm, xmm [AVX] -// * VPSUBD ymm, ymm, ymm [AVX2] -// * VPSUBD m256, ymm, ymm [AVX2] -// * VPSUBD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSUBD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSUBD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSUBD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSUBD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSUBD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSUBD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBD", 3, Operands { v0, v1, v2 }) - // VPSUBD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfa) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfa) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfa) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfa) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfa) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSUBD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xfa) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBD") - } - return p -} - -// VPSUBQ performs "Subtract Packed Quadword Integers". -// -// Mnemonic : VPSUBQ -// Supported forms : (10 forms) -// -// * VPSUBQ xmm, xmm, xmm [AVX] -// * VPSUBQ m128, xmm, xmm [AVX] -// * VPSUBQ ymm, ymm, ymm [AVX2] -// * VPSUBQ m256, ymm, ymm [AVX2] -// * VPSUBQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPSUBQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPSUBQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSUBQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPSUBQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPSUBQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPSUBQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBQ", 3, Operands { v0, v1, v2 }) - // VPSUBQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xfb) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfb) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfb) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xfb) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPSUBQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xfb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBQ") - } - return p -} - -// VPSUBSB performs "Subtract Packed Signed Byte Integers with Signed Saturation". -// -// Mnemonic : VPSUBSB -// Supported forms : (10 forms) -// -// * VPSUBSB xmm, xmm, xmm [AVX] -// * VPSUBSB m128, xmm, xmm [AVX] -// * VPSUBSB ymm, ymm, ymm [AVX2] -// * VPSUBSB m256, ymm, ymm [AVX2] -// * VPSUBSB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBSB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSUBSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBSB", 3, Operands { v0, v1, v2 }) - // VPSUBSB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBSB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBSB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBSB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBSB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBSB") - } - return p -} - -// VPSUBSW performs "Subtract Packed Signed Word Integers with Signed Saturation". -// -// Mnemonic : VPSUBSW -// Supported forms : (10 forms) -// -// * VPSUBSW xmm, xmm, xmm [AVX] -// * VPSUBSW m128, xmm, xmm [AVX] -// * VPSUBSW ymm, ymm, ymm [AVX2] -// * VPSUBSW m256, ymm, ymm [AVX2] -// * VPSUBSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBSW", 3, Operands { v0, v1, v2 }) - // VPSUBSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xe9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe9) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe9) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xe9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xe9) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBSW") - } - return p -} - -// VPSUBUSB performs "Subtract Packed Unsigned Byte Integers with Unsigned Saturation". -// -// Mnemonic : VPSUBUSB -// Supported forms : (10 forms) -// -// * VPSUBUSB xmm, xmm, xmm [AVX] -// * VPSUBUSB m128, xmm, xmm [AVX] -// * VPSUBUSB ymm, ymm, ymm [AVX2] -// * VPSUBUSB m256, ymm, ymm [AVX2] -// * VPSUBUSB zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBUSB m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBUSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBUSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBUSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBUSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSUBUSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBUSB", 3, Operands { v0, v1, v2 }) - // VPSUBUSB xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSB m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBUSB ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSB m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd8) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBUSB zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSB m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd8) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBUSB xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSB m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd8) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBUSB ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd8) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSB m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd8) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBUSB") - } - return p -} - -// VPSUBUSW performs "Subtract Packed Unsigned Word Integers with Unsigned Saturation". -// -// Mnemonic : VPSUBUSW -// Supported forms : (10 forms) -// -// * VPSUBUSW xmm, xmm, xmm [AVX] -// * VPSUBUSW m128, xmm, xmm [AVX] -// * VPSUBUSW ymm, ymm, ymm [AVX2] -// * VPSUBUSW m256, ymm, ymm [AVX2] -// * VPSUBUSW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBUSW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBUSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBUSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBUSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBUSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSUBUSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBUSW", 3, Operands { v0, v1, v2 }) - // VPSUBUSW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBUSW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xd9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBUSW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd9) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBUSW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd9) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBUSW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xd9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBUSW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xd9) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBUSW") - } - return p -} - -// VPSUBW performs "Subtract Packed Word Integers". -// -// Mnemonic : VPSUBW -// Supported forms : (10 forms) -// -// * VPSUBW xmm, xmm, xmm [AVX] -// * VPSUBW m128, xmm, xmm [AVX] -// * VPSUBW ymm, ymm, ymm [AVX2] -// * VPSUBW m256, ymm, ymm [AVX2] -// * VPSUBW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPSUBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPSUBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPSUBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPSUBW", 3, Operands { v0, v1, v2 }) - // VPSUBW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xf9) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPSUBW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf9) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPSUBW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf9) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPSUBW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xf9) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPSUBW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xf9) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPSUBW") - } - return p -} - -// VPTERNLOGD performs "Bitwise Ternary Logical Operation on Doubleword Values". -// -// Mnemonic : VPTERNLOGD -// Supported forms : (6 forms) -// -// * VPTERNLOGD imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPTERNLOGD imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VPTERNLOGD imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPTERNLOGD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPTERNLOGD imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPTERNLOGD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPTERNLOGD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPTERNLOGD", 4, Operands { v0, v1, v2, v3 }) - // VPTERNLOGD imm8, m512/m32bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x25) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGD imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x25) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGD imm8, m128/m32bcst, xmm, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x25) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGD imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x25) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGD imm8, m256/m32bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x25) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGD imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x25) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPTERNLOGD") - } - return p -} - -// VPTERNLOGQ performs "Bitwise Ternary Logical Operation on Quadword Values". -// -// Mnemonic : VPTERNLOGQ -// Supported forms : (6 forms) -// -// * VPTERNLOGQ imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPTERNLOGQ imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VPTERNLOGQ imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPTERNLOGQ imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPTERNLOGQ imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPTERNLOGQ imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPTERNLOGQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VPTERNLOGQ", 4, Operands { v0, v1, v2, v3 }) - // VPTERNLOGQ imm8, m512/m64bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x25) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGQ imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x25) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGQ imm8, m128/m64bcst, xmm, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x25) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGQ imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x25) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGQ imm8, m256/m64bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x25) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VPTERNLOGQ imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x25) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPTERNLOGQ") - } - return p -} - -// VPTEST performs "Packed Logical Compare". -// -// Mnemonic : VPTEST -// Supported forms : (4 forms) -// -// * VPTEST xmm, xmm [AVX] -// * VPTEST m128, xmm [AVX] -// * VPTEST ymm, ymm [AVX] -// * VPTEST m256, ymm [AVX] -// -func (self *Program) VPTEST(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VPTEST", 2, Operands { v0, v1 }) - // VPTEST xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x17) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPTEST m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x17) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VPTEST ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x17) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VPTEST m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x17) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPTEST") - } - return p -} - -// VPTESTMB performs "Logical AND of Packed Byte Integer Values and Set Mask". -// -// Mnemonic : VPTESTMB -// Supported forms : (6 forms) -// -// * VPTESTMB zmm, zmm, k{k} [AVX512BW] -// * VPTESTMB m512, zmm, k{k} [AVX512BW] -// * VPTESTMB xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTMB m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTMB ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPTESTMB m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPTESTMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTMB", 3, Operands { v0, v1, v2 }) - // VPTESTMB zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMB m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTMB xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMB m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTMB ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMB m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTMB") - } - return p -} - -// VPTESTMD performs "Logical AND of Packed Doubleword Integer Values and Set Mask". -// -// Mnemonic : VPTESTMD -// Supported forms : (6 forms) -// -// * VPTESTMD m512/m32bcst, zmm, k{k} [AVX512F] -// * VPTESTMD zmm, zmm, k{k} [AVX512F] -// * VPTESTMD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTMD xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTMD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPTESTMD ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPTESTMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTMD", 3, Operands { v0, v1, v2 }) - // VPTESTMD m512/m32bcst, zmm, k{k} - if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTMD zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMD m128/m32bcst, xmm, k{k} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTMD xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMD m256/m32bcst, ymm, k{k} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPTESTMD ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTMD") - } - return p -} - -// VPTESTMQ performs "Logical AND of Packed Quadword Integer Values and Set Mask". -// -// Mnemonic : VPTESTMQ -// Supported forms : (6 forms) -// -// * VPTESTMQ m512/m64bcst, zmm, k{k} [AVX512F] -// * VPTESTMQ zmm, zmm, k{k} [AVX512F] -// * VPTESTMQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTMQ xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTMQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPTESTMQ ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPTESTMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTMQ", 3, Operands { v0, v1, v2 }) - // VPTESTMQ m512/m64bcst, zmm, k{k} - if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTMQ zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMQ m128/m64bcst, xmm, k{k} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTMQ xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMQ m256/m64bcst, ymm, k{k} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPTESTMQ ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTMQ") - } - return p -} - -// VPTESTMW performs "Logical AND of Packed Word Integer Values and Set Mask". -// -// Mnemonic : VPTESTMW -// Supported forms : (6 forms) -// -// * VPTESTMW zmm, zmm, k{k} [AVX512BW] -// * VPTESTMW m512, zmm, k{k} [AVX512BW] -// * VPTESTMW xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTMW m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTMW ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPTESTMW m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPTESTMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTMW", 3, Operands { v0, v1, v2 }) - // VPTESTMW zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMW m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTMW xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMW m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTMW ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTMW m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTMW") - } - return p -} - -// VPTESTNMB performs "Logical NAND of Packed Byte Integer Values and Set Mask". -// -// Mnemonic : VPTESTNMB -// Supported forms : (6 forms) -// -// * VPTESTNMB zmm, zmm, k{k} [AVX512BW,AVX512F] -// * VPTESTNMB m512, zmm, k{k} [AVX512BW,AVX512F] -// * VPTESTNMB xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTNMB m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTNMB ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPTESTNMB m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPTESTNMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTNMB", 3, Operands { v0, v1, v2 }) - // VPTESTNMB zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMB m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTNMB xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMB m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTNMB ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMB m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTNMB") - } - return p -} - -// VPTESTNMD performs "Logical NAND of Packed Doubleword Integer Values and Set Mask". -// -// Mnemonic : VPTESTNMD -// Supported forms : (6 forms) -// -// * VPTESTNMD m512/m32bcst, zmm, k{k} [AVX512F] -// * VPTESTNMD zmm, zmm, k{k} [AVX512F] -// * VPTESTNMD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTNMD xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTNMD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPTESTNMD ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPTESTNMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTNMD", 3, Operands { v0, v1, v2 }) - // VPTESTNMD m512/m32bcst, zmm, k{k} - if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTNMD zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMD m128/m32bcst, xmm, k{k} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTNMD xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMD m256/m32bcst, ymm, k{k} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x06, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPTESTNMD ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTNMD") - } - return p -} - -// VPTESTNMQ performs "Logical NAND of Packed Quadword Integer Values and Set Mask". -// -// Mnemonic : VPTESTNMQ -// Supported forms : (6 forms) -// -// * VPTESTNMQ m512/m64bcst, zmm, k{k} [AVX512F] -// * VPTESTNMQ zmm, zmm, k{k} [AVX512F] -// * VPTESTNMQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTNMQ xmm, xmm, k{k} [AVX512F,AVX512VL] -// * VPTESTNMQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] -// * VPTESTNMQ ymm, ymm, k{k} [AVX512F,AVX512VL] -// -func (self *Program) VPTESTNMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTNMQ", 3, Operands { v0, v1, v2 }) - // VPTESTNMQ m512/m64bcst, zmm, k{k} - if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x86, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTNMQ zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMQ m128/m64bcst, xmm, k{k} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTNMQ xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMQ m256/m64bcst, ymm, k{k} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x86, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) - m.emit(0x27) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPTESTNMQ ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x27) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTNMQ") - } - return p -} - -// VPTESTNMW performs "Logical NAND of Packed Word Integer Values and Set Mask". -// -// Mnemonic : VPTESTNMW -// Supported forms : (6 forms) -// -// * VPTESTNMW zmm, zmm, k{k} [AVX512BW,AVX512F] -// * VPTESTNMW m512, zmm, k{k} [AVX512BW,AVX512F] -// * VPTESTNMW xmm, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTNMW m128, xmm, k{k} [AVX512BW,AVX512VL] -// * VPTESTNMW ymm, ymm, k{k} [AVX512BW,AVX512VL] -// * VPTESTNMW m256, ymm, k{k} [AVX512BW,AVX512VL] -// -func (self *Program) VPTESTNMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPTESTNMW", 3, Operands { v0, v1, v2 }) - // VPTESTNMW zmm, zmm, k{k} - if isZMM(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMW m512, zmm, k{k} - if isM512(v0) && isZMM(v1) && isKk(v2) { - self.require(ISA_AVX512F | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x86, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPTESTNMW xmm, xmm, k{k} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMW m128, xmm, k{k} - if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPTESTNMW ymm, ymm, k{k} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfe ^ (hlcode(v[1]) << 3)) - m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x26) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPTESTNMW m256, ymm, k{k} - if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x86, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) - m.emit(0x26) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPTESTNMW") - } - return p -} - -// VPUNPCKHBW performs "Unpack and Interleave High-Order Bytes into Words". -// -// Mnemonic : VPUNPCKHBW -// Supported forms : (10 forms) -// -// * VPUNPCKHBW xmm, xmm, xmm [AVX] -// * VPUNPCKHBW m128, xmm, xmm [AVX] -// * VPUNPCKHBW ymm, ymm, ymm [AVX2] -// * VPUNPCKHBW m256, ymm, ymm [AVX2] -// * VPUNPCKHBW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKHBW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKHBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKHBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKHBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKHBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPUNPCKHBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKHBW", 3, Operands { v0, v1, v2 }) - // VPUNPCKHBW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x68) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHBW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x68) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHBW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x68) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHBW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x68) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHBW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x68) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHBW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x68) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKHBW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x68) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHBW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x68) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKHBW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x68) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHBW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x68) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKHBW") - } - return p -} - -// VPUNPCKHDQ performs "Unpack and Interleave High-Order Doublewords into Quadwords". -// -// Mnemonic : VPUNPCKHDQ -// Supported forms : (10 forms) -// -// * VPUNPCKHDQ xmm, xmm, xmm [AVX] -// * VPUNPCKHDQ m128, xmm, xmm [AVX] -// * VPUNPCKHDQ ymm, ymm, ymm [AVX2] -// * VPUNPCKHDQ m256, ymm, ymm [AVX2] -// * VPUNPCKHDQ m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKHDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKHDQ m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKHDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKHDQ m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKHDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPUNPCKHDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKHDQ", 3, Operands { v0, v1, v2 }) - // VPUNPCKHDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6a) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHDQ m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6a) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKHDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHDQ m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6a) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKHDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHDQ m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6a) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPUNPCKHDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x6a) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKHDQ") - } - return p -} - -// VPUNPCKHQDQ performs "Unpack and Interleave High-Order Quadwords into Double Quadwords". -// -// Mnemonic : VPUNPCKHQDQ -// Supported forms : (10 forms) -// -// * VPUNPCKHQDQ xmm, xmm, xmm [AVX] -// * VPUNPCKHQDQ m128, xmm, xmm [AVX] -// * VPUNPCKHQDQ ymm, ymm, ymm [AVX2] -// * VPUNPCKHQDQ m256, ymm, ymm [AVX2] -// * VPUNPCKHQDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKHQDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKHQDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKHQDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKHQDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKHQDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPUNPCKHQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKHQDQ", 3, Operands { v0, v1, v2 }) - // VPUNPCKHQDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHQDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHQDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHQDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6d) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHQDQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6d) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKHQDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHQDQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6d) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKHQDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHQDQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6d) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPUNPCKHQDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x6d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKHQDQ") - } - return p -} - -// VPUNPCKHWD performs "Unpack and Interleave High-Order Words into Doublewords". -// -// Mnemonic : VPUNPCKHWD -// Supported forms : (10 forms) -// -// * VPUNPCKHWD xmm, xmm, xmm [AVX] -// * VPUNPCKHWD m128, xmm, xmm [AVX] -// * VPUNPCKHWD ymm, ymm, ymm [AVX2] -// * VPUNPCKHWD m256, ymm, ymm [AVX2] -// * VPUNPCKHWD zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKHWD m512, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKHWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKHWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKHWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKHWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPUNPCKHWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKHWD", 3, Operands { v0, v1, v2 }) - // VPUNPCKHWD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHWD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHWD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHWD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKHWD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHWD m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKHWD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHWD m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKHWD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x69) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKHWD m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x69) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKHWD") - } - return p -} - -// VPUNPCKLBW performs "Unpack and Interleave Low-Order Bytes into Words". -// -// Mnemonic : VPUNPCKLBW -// Supported forms : (10 forms) -// -// * VPUNPCKLBW xmm, xmm, xmm [AVX] -// * VPUNPCKLBW m128, xmm, xmm [AVX] -// * VPUNPCKLBW ymm, ymm, ymm [AVX2] -// * VPUNPCKLBW m256, ymm, ymm [AVX2] -// * VPUNPCKLBW zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKLBW m512, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKLBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKLBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKLBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKLBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPUNPCKLBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKLBW", 3, Operands { v0, v1, v2 }) - // VPUNPCKLBW xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLBW m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLBW ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLBW m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLBW zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLBW m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKLBW xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLBW m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKLBW ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x60) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLBW m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x60) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKLBW") - } - return p -} - -// VPUNPCKLDQ performs "Unpack and Interleave Low-Order Doublewords into Quadwords". -// -// Mnemonic : VPUNPCKLDQ -// Supported forms : (10 forms) -// -// * VPUNPCKLDQ xmm, xmm, xmm [AVX] -// * VPUNPCKLDQ m128, xmm, xmm [AVX] -// * VPUNPCKLDQ ymm, ymm, ymm [AVX2] -// * VPUNPCKLDQ m256, ymm, ymm [AVX2] -// * VPUNPCKLDQ m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKLDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKLDQ m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKLDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKLDQ m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKLDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPUNPCKLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKLDQ", 3, Operands { v0, v1, v2 }) - // VPUNPCKLDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLDQ m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKLDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLDQ m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKLDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLDQ m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x62) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPUNPCKLDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x62) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKLDQ") - } - return p -} - -// VPUNPCKLQDQ performs "Unpack and Interleave Low-Order Quadwords into Double Quadwords". -// -// Mnemonic : VPUNPCKLQDQ -// Supported forms : (10 forms) -// -// * VPUNPCKLQDQ xmm, xmm, xmm [AVX] -// * VPUNPCKLQDQ m128, xmm, xmm [AVX] -// * VPUNPCKLQDQ ymm, ymm, ymm [AVX2] -// * VPUNPCKLQDQ m256, ymm, ymm [AVX2] -// * VPUNPCKLQDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKLQDQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPUNPCKLQDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKLQDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKLQDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPUNPCKLQDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPUNPCKLQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKLQDQ", 3, Operands { v0, v1, v2 }) - // VPUNPCKLQDQ xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLQDQ m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLQDQ ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLQDQ m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x6c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLQDQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKLQDQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLQDQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKLQDQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLQDQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x6c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPUNPCKLQDQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x6c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKLQDQ") - } - return p -} - -// VPUNPCKLWD performs "Unpack and Interleave Low-Order Words into Doublewords". -// -// Mnemonic : VPUNPCKLWD -// Supported forms : (10 forms) -// -// * VPUNPCKLWD xmm, xmm, xmm [AVX] -// * VPUNPCKLWD m128, xmm, xmm [AVX] -// * VPUNPCKLWD ymm, ymm, ymm [AVX2] -// * VPUNPCKLWD m256, ymm, ymm [AVX2] -// * VPUNPCKLWD zmm, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKLWD m512, zmm, zmm{k}{z} [AVX512BW] -// * VPUNPCKLWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKLWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKLWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// * VPUNPCKLWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] -// -func (self *Program) VPUNPCKLWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPUNPCKLWD", 3, Operands { v0, v1, v2 }) - // VPUNPCKLWD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLWD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLWD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLWD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPUNPCKLWD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLWD m512, zmm, zmm{k}{z} - if isM512(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPUNPCKLWD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLWD m128, xmm, xmm{k}{z} - if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPUNPCKLWD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x61) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPUNPCKLWD m256, ymm, ymm{k}{z} - if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512BW) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x61) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - if p.len == 0 { - panic("invalid operands for VPUNPCKLWD") - } - return p -} - -// VPXOR performs "Packed Bitwise Logical Exclusive OR". -// -// Mnemonic : VPXOR -// Supported forms : (4 forms) -// -// * VPXOR xmm, xmm, xmm [AVX] -// * VPXOR m128, xmm, xmm [AVX] -// * VPXOR ymm, ymm, ymm [AVX2] -// * VPXOR m256, ymm, ymm [AVX2] -// -func (self *Program) VPXOR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPXOR", 3, Operands { v0, v1, v2 }) - // VPXOR xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPXOR m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VPXOR ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPXOR m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX2) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VPXOR") - } - return p -} - -// VPXORD performs "Bitwise Logical Exclusive OR of Packed Doubleword Integers". -// -// Mnemonic : VPXORD -// Supported forms : (6 forms) -// -// * VPXORD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VPXORD zmm, zmm, zmm{k}{z} [AVX512F] -// * VPXORD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPXORD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPXORD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPXORD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPXORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPXORD", 3, Operands { v0, v1, v2 }) - // VPXORD m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPXORD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPXORD m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPXORD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPXORD m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPXORD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPXORD") - } - return p -} - -// VPXORQ performs "Bitwise Logical Exclusive OR of Packed Quadword Integers". -// -// Mnemonic : VPXORQ -// Supported forms : (6 forms) -// -// * VPXORQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VPXORQ zmm, zmm, zmm{k}{z} [AVX512F] -// * VPXORQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPXORQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VPXORQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VPXORQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VPXORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VPXORQ", 3, Operands { v0, v1, v2 }) - // VPXORQ m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VPXORQ zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPXORQ m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VPXORQ xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VPXORQ m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0xef) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VPXORQ ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0xef) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VPXORQ") - } - return p -} - -// VRANGEPD performs "Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values". -// -// Mnemonic : VRANGEPD -// Supported forms : (7 forms) -// -// * VRANGEPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VRANGEPD imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VRANGEPD imm8, zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VRANGEPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VRANGEPD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VRANGEPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VRANGEPD imm8, ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VRANGEPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRANGEPD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VRANGEPD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VRANGEPD takes 4 or 5 operands") - } - // VRANGEPD imm8, m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x50) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPD imm8, {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x50) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPD imm8, zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x50) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPD imm8, m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x50) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPD imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x50) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPD imm8, m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x50) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPD imm8, ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x50) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRANGEPD") - } - return p -} - -// VRANGEPS performs "Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values". -// -// Mnemonic : VRANGEPS -// Supported forms : (7 forms) -// -// * VRANGEPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VRANGEPS imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VRANGEPS imm8, zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VRANGEPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VRANGEPS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VRANGEPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VRANGEPS imm8, ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VRANGEPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRANGEPS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VRANGEPS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VRANGEPS takes 4 or 5 operands") - } - // VRANGEPS imm8, m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x50) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPS imm8, {sae}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x50) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPS imm8, zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x50) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPS imm8, m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x50) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPS imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x50) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPS imm8, m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x50) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGEPS imm8, ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x50) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRANGEPS") - } - return p -} - -// VRANGESD performs "Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VRANGESD -// Supported forms : (3 forms) -// -// * VRANGESD imm8, m64, xmm, xmm{k}{z} [AVX512DQ] -// * VRANGESD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512DQ] -// * VRANGESD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] -// -func (self *Program) VRANGESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRANGESD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VRANGESD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VRANGESD takes 4 or 5 operands") - } - // VRANGESD imm8, m64, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x51) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGESD imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x51) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGESD imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x51) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRANGESD") - } - return p -} - -// VRANGESS performs "Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VRANGESS -// Supported forms : (3 forms) -// -// * VRANGESS imm8, m32, xmm, xmm{k}{z} [AVX512DQ] -// * VRANGESS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512DQ] -// * VRANGESS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] -// -func (self *Program) VRANGESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRANGESS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VRANGESS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VRANGESS takes 4 or 5 operands") - } - // VRANGESS imm8, m32, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x51) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGESS imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x51) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRANGESS imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x51) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRANGESS") - } - return p -} - -// VRCP14PD performs "Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VRCP14PD -// Supported forms : (6 forms) -// -// * VRCP14PD m512/m64bcst, zmm{k}{z} [AVX512F] -// * VRCP14PD zmm, zmm{k}{z} [AVX512F] -// * VRCP14PD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VRCP14PD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VRCP14PD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VRCP14PD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VRCP14PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VRCP14PD", 2, Operands { v0, v1 }) - // VRCP14PD m512/m64bcst, zmm{k}{z} - if isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRCP14PD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRCP14PD m128/m64bcst, xmm{k}{z} - if isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VRCP14PD m256/m64bcst, ymm{k}{z} - if isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VRCP14PD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRCP14PD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP14PD") - } - return p -} - -// VRCP14PS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VRCP14PS -// Supported forms : (6 forms) -// -// * VRCP14PS m512/m32bcst, zmm{k}{z} [AVX512F] -// * VRCP14PS zmm, zmm{k}{z} [AVX512F] -// * VRCP14PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VRCP14PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VRCP14PS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VRCP14PS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VRCP14PS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VRCP14PS", 2, Operands { v0, v1 }) - // VRCP14PS m512/m32bcst, zmm{k}{z} - if isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRCP14PS zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRCP14PS m128/m32bcst, xmm{k}{z} - if isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VRCP14PS m256/m32bcst, ymm{k}{z} - if isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4c) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VRCP14PS xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRCP14PS ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x4c) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP14PS") - } - return p -} - -// VRCP14SD performs "Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VRCP14SD -// Supported forms : (2 forms) -// -// * VRCP14SD xmm, xmm, xmm{k}{z} [AVX512F] -// * VRCP14SD m64, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VRCP14SD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VRCP14SD", 3, Operands { v0, v1, v2 }) - // VRCP14SD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VRCP14SD m64, xmm, xmm{k}{z} - if isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x4d) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP14SD") - } - return p -} - -// VRCP14SS performs "Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VRCP14SS -// Supported forms : (2 forms) -// -// * VRCP14SS xmm, xmm, xmm{k}{z} [AVX512F] -// * VRCP14SS m32, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VRCP14SS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VRCP14SS", 3, Operands { v0, v1, v2 }) - // VRCP14SS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x4d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VRCP14SS m32, xmm, xmm{k}{z} - if isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x4d) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP14SS") - } - return p -} - -// VRCP28PD performs "Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRCP28PD -// Supported forms : (3 forms) -// -// * VRCP28PD m512/m64bcst, zmm{k}{z} [AVX512ER] -// * VRCP28PD {sae}, zmm, zmm{k}{z} [AVX512ER] -// * VRCP28PD zmm, zmm{k}{z} [AVX512ER] -// -func (self *Program) VRCP28PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRCP28PD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VRCP28PD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VRCP28PD takes 2 or 3 operands") - } - // VRCP28PD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xca) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRCP28PD {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xca) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VRCP28PD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xca) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP28PD") - } - return p -} - -// VRCP28PS performs "Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRCP28PS -// Supported forms : (3 forms) -// -// * VRCP28PS m512/m32bcst, zmm{k}{z} [AVX512ER] -// * VRCP28PS {sae}, zmm, zmm{k}{z} [AVX512ER] -// * VRCP28PS zmm, zmm{k}{z} [AVX512ER] -// -func (self *Program) VRCP28PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRCP28PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VRCP28PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VRCP28PS takes 2 or 3 operands") - } - // VRCP28PS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xca) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRCP28PS {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xca) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VRCP28PS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xca) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP28PS") - } - return p -} - -// VRCP28SD performs "Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRCP28SD -// Supported forms : (3 forms) -// -// * VRCP28SD m64, xmm, xmm{k}{z} [AVX512ER] -// * VRCP28SD {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] -// * VRCP28SD xmm, xmm, xmm{k}{z} [AVX512ER] -// -func (self *Program) VRCP28SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRCP28SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VRCP28SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VRCP28SD takes 3 or 4 operands") - } - // VRCP28SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xcb) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VRCP28SD {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xcb) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VRCP28SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xcb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP28SD") - } - return p -} - -// VRCP28SS performs "Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRCP28SS -// Supported forms : (3 forms) -// -// * VRCP28SS m32, xmm, xmm{k}{z} [AVX512ER] -// * VRCP28SS {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] -// * VRCP28SS xmm, xmm, xmm{k}{z} [AVX512ER] -// -func (self *Program) VRCP28SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRCP28SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VRCP28SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VRCP28SS takes 3 or 4 operands") - } - // VRCP28SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xcb) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VRCP28SS {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xcb) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VRCP28SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xcb) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRCP28SS") - } - return p -} - -// VRCPPS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VRCPPS -// Supported forms : (4 forms) -// -// * VRCPPS xmm, xmm [AVX] -// * VRCPPS m128, xmm [AVX] -// * VRCPPS ymm, ymm [AVX] -// * VRCPPS m256, ymm [AVX] -// -func (self *Program) VRCPPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VRCPPS", 2, Operands { v0, v1 }) - // VRCPPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x53) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRCPPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x53) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VRCPPS ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x53) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRCPPS m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x53) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VRCPPS") - } - return p -} - -// VRCPSS performs "Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VRCPSS -// Supported forms : (2 forms) -// -// * VRCPSS xmm, xmm, xmm [AVX] -// * VRCPSS m32, xmm, xmm [AVX] -// -func (self *Program) VRCPSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VRCPSS", 3, Operands { v0, v1, v2 }) - // VRCPSS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x53) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VRCPSS m32, xmm, xmm - if isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x53) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VRCPSS") - } - return p -} - -// VREDUCEPD performs "Perform Reduction Transformation on Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VREDUCEPD -// Supported forms : (6 forms) -// -// * VREDUCEPD imm8, m512/m64bcst, zmm{k}{z} [AVX512DQ] -// * VREDUCEPD imm8, zmm, zmm{k}{z} [AVX512DQ] -// * VREDUCEPD imm8, m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VREDUCEPD imm8, m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VREDUCEPD imm8, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VREDUCEPD imm8, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VREDUCEPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VREDUCEPD", 3, Operands { v0, v1, v2 }) - // VREDUCEPD imm8, m512/m64bcst, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPD imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPD imm8, m128/m64bcst, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPD imm8, m256/m64bcst, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPD imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPD imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VREDUCEPD") - } - return p -} - -// VREDUCEPS performs "Perform Reduction Transformation on Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VREDUCEPS -// Supported forms : (6 forms) -// -// * VREDUCEPS imm8, m512/m32bcst, zmm{k}{z} [AVX512DQ] -// * VREDUCEPS imm8, zmm, zmm{k}{z} [AVX512DQ] -// * VREDUCEPS imm8, m128/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VREDUCEPS imm8, m256/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VREDUCEPS imm8, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VREDUCEPS imm8, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VREDUCEPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VREDUCEPS", 3, Operands { v0, v1, v2 }) - // VREDUCEPS imm8, m512/m32bcst, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPS imm8, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPS imm8, m128/m32bcst, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPS imm8, m256/m32bcst, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x56) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPS imm8, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCEPS imm8, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x56) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VREDUCEPS") - } - return p -} - -// VREDUCESD performs "Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VREDUCESD -// Supported forms : (2 forms) -// -// * VREDUCESD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] -// * VREDUCESD imm8, m64, xmm, xmm{k}{z} [AVX512DQ] -// -func (self *Program) VREDUCESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VREDUCESD", 4, Operands { v0, v1, v2, v3 }) - // VREDUCESD imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x57) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCESD imm8, m64, xmm, xmm{k}{z} - if isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x57) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VREDUCESD") - } - return p -} - -// VREDUCESS performs "Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VREDUCESS -// Supported forms : (2 forms) -// -// * VREDUCESS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] -// * VREDUCESS imm8, m32, xmm, xmm{k}{z} [AVX512DQ] -// -func (self *Program) VREDUCESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VREDUCESS", 4, Operands { v0, v1, v2, v3 }) - // VREDUCESS imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0x57) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VREDUCESS imm8, m32, xmm, xmm{k}{z} - if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x57) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VREDUCESS") - } - return p -} - -// VRNDSCALEPD performs "Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits". -// -// Mnemonic : VRNDSCALEPD -// Supported forms : (7 forms) -// -// * VRNDSCALEPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] -// * VRNDSCALEPD imm8, {sae}, zmm, zmm{k}{z} [AVX512F] -// * VRNDSCALEPD imm8, zmm, zmm{k}{z} [AVX512F] -// * VRNDSCALEPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VRNDSCALEPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VRNDSCALEPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VRNDSCALEPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VRNDSCALEPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRNDSCALEPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VRNDSCALEPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VRNDSCALEPD takes 3 or 4 operands") - } - // VRNDSCALEPD imm8, m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPD imm8, {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) - m.emit(0x09) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPD imm8, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPD imm8, m128/m64bcst, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPD imm8, m256/m64bcst, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPD imm8, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPD imm8, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRNDSCALEPD") - } - return p -} - -// VRNDSCALEPS performs "Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits". -// -// Mnemonic : VRNDSCALEPS -// Supported forms : (7 forms) -// -// * VRNDSCALEPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] -// * VRNDSCALEPS imm8, {sae}, zmm, zmm{k}{z} [AVX512F] -// * VRNDSCALEPS imm8, zmm, zmm{k}{z} [AVX512F] -// * VRNDSCALEPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VRNDSCALEPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VRNDSCALEPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VRNDSCALEPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VRNDSCALEPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRNDSCALEPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VRNDSCALEPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VRNDSCALEPS takes 3 or 4 operands") - } - // VRNDSCALEPS imm8, m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPS imm8, {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) - m.emit(0x08) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPS imm8, zmm, zmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPS imm8, m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPS imm8, m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPS imm8, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALEPS imm8, ymm, ymm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRNDSCALEPS") - } - return p -} - -// VRNDSCALESD performs "Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits". -// -// Mnemonic : VRNDSCALESD -// Supported forms : (3 forms) -// -// * VRNDSCALESD imm8, m64, xmm, xmm{k}{z} [AVX512F] -// * VRNDSCALESD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VRNDSCALESD imm8, xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VRNDSCALESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRNDSCALESD", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VRNDSCALESD", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VRNDSCALESD takes 4 or 5 operands") - } - // VRNDSCALESD imm8, m64, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x0b) - m.mrsd(lcode(v[3]), addr(v[1]), 8) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALESD imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0xfd ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALESD imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRNDSCALESD") - } - return p -} - -// VRNDSCALESS performs "Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits". -// -// Mnemonic : VRNDSCALESS -// Supported forms : (3 forms) -// -// * VRNDSCALESS imm8, m32, xmm, xmm{k}{z} [AVX512F] -// * VRNDSCALESS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VRNDSCALESS imm8, xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VRNDSCALESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRNDSCALESS", 4, Operands { v0, v1, v2, v3 }) - case 1 : p = self.alloc("VRNDSCALESS", 5, Operands { v0, v1, v2, v3, vv[0] }) - default : panic("instruction VRNDSCALESS takes 4 or 5 operands") - } - // VRNDSCALESS imm8, m32, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) - m.emit(0x0a) - m.mrsd(lcode(v[3]), addr(v[1]), 4) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALESS imm8, {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) - m.emit(0x7d ^ (hlcode(v[3]) << 3)) - m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) - m.imm1(toImmAny(v[0])) - }) - } - // VRNDSCALESS imm8, xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRNDSCALESS") - } - return p -} - -// VROUNDPD performs "Round Packed Double Precision Floating-Point Values". -// -// Mnemonic : VROUNDPD -// Supported forms : (4 forms) -// -// * VROUNDPD imm8, xmm, xmm [AVX] -// * VROUNDPD imm8, m128, xmm [AVX] -// * VROUNDPD imm8, ymm, ymm [AVX] -// * VROUNDPD imm8, m256, ymm [AVX] -// -func (self *Program) VROUNDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VROUNDPD", 3, Operands { v0, v1, v2 }) - // VROUNDPD imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDPD imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDPD imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d) - m.emit(0x09) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDPD imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) - m.emit(0x09) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VROUNDPD") - } - return p -} - -// VROUNDPS performs "Round Packed Single Precision Floating-Point Values". -// -// Mnemonic : VROUNDPS -// Supported forms : (4 forms) -// -// * VROUNDPS imm8, xmm, xmm [AVX] -// * VROUNDPS imm8, m128, xmm [AVX] -// * VROUNDPS imm8, ymm, ymm [AVX] -// * VROUNDPS imm8, m256, ymm [AVX] -// -func (self *Program) VROUNDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VROUNDPS", 3, Operands { v0, v1, v2 }) - // VROUNDPS imm8, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDPS imm8, m128, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDPS imm8, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x7d) - m.emit(0x08) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDPS imm8, m256, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) - m.emit(0x08) - m.mrsd(lcode(v[2]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VROUNDPS") - } - return p -} - -// VROUNDSD performs "Round Scalar Double Precision Floating-Point Values". -// -// Mnemonic : VROUNDSD -// Supported forms : (2 forms) -// -// * VROUNDSD imm8, xmm, xmm, xmm [AVX] -// * VROUNDSD imm8, m64, xmm, xmm [AVX] -// -func (self *Program) VROUNDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VROUNDSD", 4, Operands { v0, v1, v2, v3 }) - // VROUNDSD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x0b) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDSD imm8, m64, xmm, xmm - if isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0b) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VROUNDSD") - } - return p -} - -// VROUNDSS performs "Round Scalar Single Precision Floating-Point Values". -// -// Mnemonic : VROUNDSS -// Supported forms : (2 forms) -// -// * VROUNDSS imm8, xmm, xmm, xmm [AVX] -// * VROUNDSS imm8, m32, xmm, xmm [AVX] -// -func (self *Program) VROUNDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VROUNDSS", 4, Operands { v0, v1, v2, v3 }) - // VROUNDSS imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) - m.emit(0x79 ^ (hlcode(v[2]) << 3)) - m.emit(0x0a) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VROUNDSS imm8, m32, xmm, xmm - if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0x0a) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VROUNDSS") - } - return p -} - -// VRSQRT14PD performs "Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VRSQRT14PD -// Supported forms : (6 forms) -// -// * VRSQRT14PD m512/m64bcst, zmm{k}{z} [AVX512F] -// * VRSQRT14PD zmm, zmm{k}{z} [AVX512F] -// * VRSQRT14PD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VRSQRT14PD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VRSQRT14PD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VRSQRT14PD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VRSQRT14PD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VRSQRT14PD", 2, Operands { v0, v1 }) - // VRSQRT14PD m512/m64bcst, zmm{k}{z} - if isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRSQRT14PD zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRSQRT14PD m128/m64bcst, xmm{k}{z} - if isM128M64bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VRSQRT14PD m256/m64bcst, ymm{k}{z} - if isM256M64bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VRSQRT14PD xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRSQRT14PD ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT14PD") - } - return p -} - -// VRSQRT14PS performs "Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VRSQRT14PS -// Supported forms : (6 forms) -// -// * VRSQRT14PS m512/m32bcst, zmm{k}{z} [AVX512F] -// * VRSQRT14PS zmm, zmm{k}{z} [AVX512F] -// * VRSQRT14PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VRSQRT14PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VRSQRT14PS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VRSQRT14PS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VRSQRT14PS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VRSQRT14PS", 2, Operands { v0, v1 }) - // VRSQRT14PS m512/m32bcst, zmm{k}{z} - if isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRSQRT14PS zmm, zmm{k}{z} - if isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRSQRT14PS m128/m32bcst, xmm{k}{z} - if isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VRSQRT14PS m256/m32bcst, ymm{k}{z} - if isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x4e) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VRSQRT14PS xmm, xmm{k}{z} - if isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRSQRT14PS ymm, ymm{k}{z} - if isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x4e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT14PS") - } - return p -} - -// VRSQRT14SD performs "Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VRSQRT14SD -// Supported forms : (2 forms) -// -// * VRSQRT14SD xmm, xmm, xmm{k}{z} [AVX512F] -// * VRSQRT14SD m64, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VRSQRT14SD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VRSQRT14SD", 3, Operands { v0, v1, v2 }) - // VRSQRT14SD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VRSQRT14SD m64, xmm, xmm{k}{z} - if isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x4f) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT14SD") - } - return p -} - -// VRSQRT14SS performs "Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VRSQRT14SS -// Supported forms : (2 forms) -// -// * VRSQRT14SS xmm, xmm, xmm{k}{z} [AVX512F] -// * VRSQRT14SS m32, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VRSQRT14SS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VRSQRT14SS", 3, Operands { v0, v1, v2 }) - // VRSQRT14SS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x4f) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VRSQRT14SS m32, xmm, xmm{k}{z} - if isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x4f) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT14SS") - } - return p -} - -// VRSQRT28PD performs "Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRSQRT28PD -// Supported forms : (3 forms) -// -// * VRSQRT28PD m512/m64bcst, zmm{k}{z} [AVX512ER] -// * VRSQRT28PD {sae}, zmm, zmm{k}{z} [AVX512ER] -// * VRSQRT28PD zmm, zmm{k}{z} [AVX512ER] -// -func (self *Program) VRSQRT28PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRSQRT28PD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VRSQRT28PD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VRSQRT28PD takes 2 or 3 operands") - } - // VRSQRT28PD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xcc) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRSQRT28PD {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VRSQRT28PD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT28PD") - } - return p -} - -// VRSQRT28PS performs "Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRSQRT28PS -// Supported forms : (3 forms) -// -// * VRSQRT28PS m512/m32bcst, zmm{k}{z} [AVX512ER] -// * VRSQRT28PS {sae}, zmm, zmm{k}{z} [AVX512ER] -// * VRSQRT28PS zmm, zmm{k}{z} [AVX512ER] -// -func (self *Program) VRSQRT28PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRSQRT28PS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VRSQRT28PS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VRSQRT28PS takes 2 or 3 operands") - } - // VRSQRT28PS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0xcc) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VRSQRT28PS {sae}, zmm, zmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VRSQRT28PS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7d) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0xcc) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT28PS") - } - return p -} - -// VRSQRT28SD performs "Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRSQRT28SD -// Supported forms : (3 forms) -// -// * VRSQRT28SD m64, xmm, xmm{k}{z} [AVX512ER] -// * VRSQRT28SD {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] -// * VRSQRT28SD xmm, xmm, xmm{k}{z} [AVX512ER] -// -func (self *Program) VRSQRT28SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRSQRT28SD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VRSQRT28SD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VRSQRT28SD takes 3 or 4 operands") - } - // VRSQRT28SD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xcd) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VRSQRT28SD {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xcd) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VRSQRT28SD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xcd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT28SD") - } - return p -} - -// VRSQRT28SS performs "Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error". -// -// Mnemonic : VRSQRT28SS -// Supported forms : (3 forms) -// -// * VRSQRT28SS m32, xmm, xmm{k}{z} [AVX512ER] -// * VRSQRT28SS {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] -// * VRSQRT28SS xmm, xmm, xmm{k}{z} [AVX512ER] -// -func (self *Program) VRSQRT28SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VRSQRT28SS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VRSQRT28SS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VRSQRT28SS takes 3 or 4 operands") - } - // VRSQRT28SS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0xcd) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VRSQRT28SS {sae}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0xcd) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VRSQRT28SS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512ER) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0xcd) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRT28SS") - } - return p -} - -// VRSQRTPS performs "Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VRSQRTPS -// Supported forms : (4 forms) -// -// * VRSQRTPS xmm, xmm [AVX] -// * VRSQRTPS m128, xmm [AVX] -// * VRSQRTPS ymm, ymm [AVX] -// * VRSQRTPS m256, ymm [AVX] -// -func (self *Program) VRSQRTPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VRSQRTPS", 2, Operands { v0, v1 }) - // VRSQRTPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x52) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRSQRTPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x52) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VRSQRTPS ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x52) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VRSQRTPS m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x52) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRTPS") - } - return p -} - -// VRSQRTSS performs "Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VRSQRTSS -// Supported forms : (2 forms) -// -// * VRSQRTSS xmm, xmm, xmm [AVX] -// * VRSQRTSS m32, xmm, xmm [AVX] -// -func (self *Program) VRSQRTSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VRSQRTSS", 3, Operands { v0, v1, v2 }) - // VRSQRTSS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x52) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VRSQRTSS m32, xmm, xmm - if isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x52) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VRSQRTSS") - } - return p -} - -// VSCALEFPD performs "Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values". -// -// Mnemonic : VSCALEFPD -// Supported forms : (7 forms) -// -// * VSCALEFPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VSCALEFPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSCALEFPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VSCALEFPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSCALEFPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSCALEFPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSCALEFPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSCALEFPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSCALEFPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSCALEFPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSCALEFPD takes 3 or 4 operands") - } - // VSCALEFPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VSCALEFPD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSCALEFPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSCALEFPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VSCALEFPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSCALEFPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VSCALEFPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSCALEFPD") - } - return p -} - -// VSCALEFPS performs "Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values". -// -// Mnemonic : VSCALEFPS -// Supported forms : (7 forms) -// -// * VSCALEFPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VSCALEFPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSCALEFPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VSCALEFPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSCALEFPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSCALEFPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSCALEFPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSCALEFPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSCALEFPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSCALEFPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSCALEFPS takes 3 or 4 operands") - } - // VSCALEFPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VSCALEFPS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSCALEFPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSCALEFPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VSCALEFPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSCALEFPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x2c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VSCALEFPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x2c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSCALEFPS") - } - return p -} - -// VSCALEFSD performs "Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value". -// -// Mnemonic : VSCALEFSD -// Supported forms : (3 forms) -// -// * VSCALEFSD m64, xmm, xmm{k}{z} [AVX512F] -// * VSCALEFSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VSCALEFSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VSCALEFSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSCALEFSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSCALEFSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSCALEFSD takes 3 or 4 operands") - } - // VSCALEFSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x2d) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VSCALEFSD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSCALEFSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSCALEFSD") - } - return p -} - -// VSCALEFSS performs "Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value". -// -// Mnemonic : VSCALEFSS -// Supported forms : (3 forms) -// -// * VSCALEFSS m32, xmm, xmm{k}{z} [AVX512F] -// * VSCALEFSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VSCALEFSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VSCALEFSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSCALEFSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSCALEFSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSCALEFSS takes 3 or 4 operands") - } - // VSCALEFSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x2d) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VSCALEFSS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSCALEFSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7d ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x2d) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSCALEFSS") - } - return p -} - -// VSCATTERDPD performs "Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices". -// -// Mnemonic : VSCATTERDPD -// Supported forms : (3 forms) -// -// * VSCATTERDPD zmm, vm32y{k} [AVX512F] -// * VSCATTERDPD xmm, vm32x{k} [AVX512F,AVX512VL] -// * VSCATTERDPD ymm, vm32x{k} [AVX512F,AVX512VL] -// -func (self *Program) VSCATTERDPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VSCATTERDPD", 2, Operands { v0, v1 }) - // VSCATTERDPD zmm, vm32y{k} - if isZMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa2) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VSCATTERDPD xmm, vm32x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa2) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VSCATTERDPD ymm, vm32x{k} - if isEVEXYMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa2) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERDPD") - } - return p -} - -// VSCATTERDPS performs "Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices". -// -// Mnemonic : VSCATTERDPS -// Supported forms : (3 forms) -// -// * VSCATTERDPS zmm, vm32z{k} [AVX512F] -// * VSCATTERDPS xmm, vm32x{k} [AVX512F,AVX512VL] -// * VSCATTERDPS ymm, vm32y{k} [AVX512F,AVX512VL] -// -func (self *Program) VSCATTERDPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VSCATTERDPS", 2, Operands { v0, v1 }) - // VSCATTERDPS zmm, vm32z{k} - if isZMM(v0) && isVMZk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa2) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VSCATTERDPS xmm, vm32x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa2) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VSCATTERDPS ymm, vm32y{k} - if isEVEXYMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa2) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERDPS") - } - return p -} - -// VSCATTERPF0DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF0DPD -// Supported forms : (1 form) -// -// * VSCATTERPF0DPD vm32y{k} [AVX512PF] -// -func (self *Program) VSCATTERPF0DPD(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF0DPD", 1, Operands { v0 }) - // VSCATTERPF0DPD vm32y{k} - if isVMYk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(5, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF0DPD") - } - return p -} - -// VSCATTERPF0DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF0DPS -// Supported forms : (1 form) -// -// * VSCATTERPF0DPS vm32z{k} [AVX512PF] -// -func (self *Program) VSCATTERPF0DPS(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF0DPS", 1, Operands { v0 }) - // VSCATTERPF0DPS vm32z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(5, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF0DPS") - } - return p -} - -// VSCATTERPF0QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF0QPD -// Supported forms : (1 form) -// -// * VSCATTERPF0QPD vm64z{k} [AVX512PF] -// -func (self *Program) VSCATTERPF0QPD(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF0QPD", 1, Operands { v0 }) - // VSCATTERPF0QPD vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(5, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF0QPD") - } - return p -} - -// VSCATTERPF0QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF0QPS -// Supported forms : (1 form) -// -// * VSCATTERPF0QPS vm64z{k} [AVX512PF] -// -func (self *Program) VSCATTERPF0QPS(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF0QPS", 1, Operands { v0 }) - // VSCATTERPF0QPS vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(5, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF0QPS") - } - return p -} - -// VSCATTERPF1DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF1DPD -// Supported forms : (1 form) -// -// * VSCATTERPF1DPD vm32y{k} [AVX512PF] -// -func (self *Program) VSCATTERPF1DPD(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF1DPD", 1, Operands { v0 }) - // VSCATTERPF1DPD vm32y{k} - if isVMYk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(6, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF1DPD") - } - return p -} - -// VSCATTERPF1DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF1DPS -// Supported forms : (1 form) -// -// * VSCATTERPF1DPS vm32z{k} [AVX512PF] -// -func (self *Program) VSCATTERPF1DPS(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF1DPS", 1, Operands { v0 }) - // VSCATTERPF1DPS vm32z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc6) - m.mrsd(6, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF1DPS") - } - return p -} - -// VSCATTERPF1QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF1QPD -// Supported forms : (1 form) -// -// * VSCATTERPF1QPD vm64z{k} [AVX512PF] -// -func (self *Program) VSCATTERPF1QPD(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF1QPD", 1, Operands { v0 }) - // VSCATTERPF1QPD vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(6, addr(v[0]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF1QPD") - } - return p -} - -// VSCATTERPF1QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write". -// -// Mnemonic : VSCATTERPF1QPS -// Supported forms : (1 form) -// -// * VSCATTERPF1QPS vm64z{k} [AVX512PF] -// -func (self *Program) VSCATTERPF1QPS(v0 interface{}) *Instruction { - p := self.alloc("VSCATTERPF1QPS", 1, Operands { v0 }) - // VSCATTERPF1QPS vm64z{k} - if isVMZk(v0) { - self.require(ISA_AVX512PF) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) - m.emit(0xc7) - m.mrsd(6, addr(v[0]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERPF1QPS") - } - return p -} - -// VSCATTERQPD performs "Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices". -// -// Mnemonic : VSCATTERQPD -// Supported forms : (3 forms) -// -// * VSCATTERQPD zmm, vm64z{k} [AVX512F] -// * VSCATTERQPD xmm, vm64x{k} [AVX512F,AVX512VL] -// * VSCATTERQPD ymm, vm64y{k} [AVX512F,AVX512VL] -// -func (self *Program) VSCATTERQPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VSCATTERQPD", 2, Operands { v0, v1 }) - // VSCATTERQPD zmm, vm64z{k} - if isZMM(v0) && isVMZk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VSCATTERQPD xmm, vm64x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - // VSCATTERQPD ymm, vm64y{k} - if isEVEXYMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 8) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERQPD") - } - return p -} - -// VSCATTERQPS performs "Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices". -// -// Mnemonic : VSCATTERQPS -// Supported forms : (3 forms) -// -// * VSCATTERQPS ymm, vm64z{k} [AVX512F] -// * VSCATTERQPS xmm, vm64x{k} [AVX512F,AVX512VL] -// * VSCATTERQPS xmm, vm64y{k} [AVX512F,AVX512VL] -// -func (self *Program) VSCATTERQPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VSCATTERQPS", 2, Operands { v0, v1 }) - // VSCATTERQPS ymm, vm64z{k} - if isEVEXYMM(v0) && isVMZk(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VSCATTERQPS xmm, vm64x{k} - if isEVEXXMM(v0) && isVMXk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - // VSCATTERQPS xmm, vm64y{k} - if isEVEXXMM(v0) && isVMYk(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) - m.emit(0xa3) - m.mrsd(lcode(v[0]), addr(v[1]), 4) - }) - } - if p.len == 0 { - panic("invalid operands for VSCATTERQPS") - } - return p -} - -// VSHUFF32X4 performs "Shuffle 128-Bit Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VSHUFF32X4 -// Supported forms : (4 forms) -// -// * VSHUFF32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VSHUFF32X4 imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSHUFF32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSHUFF32X4 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSHUFF32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VSHUFF32X4", 4, Operands { v0, v1, v2, v3 }) - // VSHUFF32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x23) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFF32X4 imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x23) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFF32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x23) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFF32X4 imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x23) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSHUFF32X4") - } - return p -} - -// VSHUFF64X2 performs "Shuffle 128-Bit Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VSHUFF64X2 -// Supported forms : (4 forms) -// -// * VSHUFF64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VSHUFF64X2 imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSHUFF64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSHUFF64X2 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSHUFF64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VSHUFF64X2", 4, Operands { v0, v1, v2, v3 }) - // VSHUFF64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x23) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFF64X2 imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x23) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFF64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x23) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFF64X2 imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x23) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSHUFF64X2") - } - return p -} - -// VSHUFI32X4 performs "Shuffle 128-Bit Packed Doubleword Integer Values". -// -// Mnemonic : VSHUFI32X4 -// Supported forms : (4 forms) -// -// * VSHUFI32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VSHUFI32X4 imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSHUFI32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSHUFI32X4 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSHUFI32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VSHUFI32X4", 4, Operands { v0, v1, v2, v3 }) - // VSHUFI32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x43) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFI32X4 imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x43) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFI32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x43) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFI32X4 imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7d ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x43) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSHUFI32X4") - } - return p -} - -// VSHUFI64X2 performs "Shuffle 128-Bit Packed Quadword Integer Values". -// -// Mnemonic : VSHUFI64X2 -// Supported forms : (4 forms) -// -// * VSHUFI64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VSHUFI64X2 imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSHUFI64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSHUFI64X2 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSHUFI64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VSHUFI64X2", 4, Operands { v0, v1, v2, v3 }) - // VSHUFI64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x43) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFI64X2 imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0x43) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFI64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0x43) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFI64X2 imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0x43) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSHUFI64X2") - } - return p -} - -// VSHUFPD performs "Shuffle Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VSHUFPD -// Supported forms : (10 forms) -// -// * VSHUFPD imm8, xmm, xmm, xmm [AVX] -// * VSHUFPD imm8, m128, xmm, xmm [AVX] -// * VSHUFPD imm8, ymm, ymm, ymm [AVX] -// * VSHUFPD imm8, m256, ymm, ymm [AVX] -// * VSHUFPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VSHUFPD imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSHUFPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSHUFPD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSHUFPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSHUFPD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSHUFPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VSHUFPD", 4, Operands { v0, v1, v2, v3 }) - // VSHUFPD imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, m512/m64bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, m128/m64bcst, xmm, xmm{k}{z} - if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, m256/m64bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPD imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSHUFPD") - } - return p -} - -// VSHUFPS performs "Shuffle Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VSHUFPS -// Supported forms : (10 forms) -// -// * VSHUFPS imm8, xmm, xmm, xmm [AVX] -// * VSHUFPS imm8, m128, xmm, xmm [AVX] -// * VSHUFPS imm8, ymm, ymm, ymm [AVX] -// * VSHUFPS imm8, m256, ymm, ymm [AVX] -// * VSHUFPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VSHUFPS imm8, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSHUFPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSHUFPS imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSHUFPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSHUFPS imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSHUFPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { - p := self.alloc("VSHUFPS", 4, Operands { v0, v1, v2, v3 }) - // VSHUFPS imm8, xmm, xmm, xmm - if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, m128, xmm, xmm - if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, ymm, ymm, ymm - if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[3]), v[1], hlcode(v[2])) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, m256, ymm, ymm - if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[3]), addr(v[1]), hlcode(v[2])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, m512/m32bcst, zmm, zmm{k}{z} - if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 64) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, zmm, zmm, zmm{k}{z} - if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, m128/m32bcst, xmm, xmm{k}{z} - if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 16) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, xmm, xmm, xmm{k}{z} - if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, m256/m32bcst, ymm, ymm{k}{z} - if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) - m.emit(0xc6) - m.mrsd(lcode(v[3]), addr(v[1]), 32) - m.imm1(toImmAny(v[0])) - }) - } - // VSHUFPS imm8, ymm, ymm, ymm{k}{z} - if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) - m.emit(0xc6) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSHUFPS") - } - return p -} - -// VSQRTPD performs "Compute Square Roots of Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VSQRTPD -// Supported forms : (11 forms) -// -// * VSQRTPD xmm, xmm [AVX] -// * VSQRTPD m128, xmm [AVX] -// * VSQRTPD ymm, ymm [AVX] -// * VSQRTPD m256, ymm [AVX] -// * VSQRTPD m512/m64bcst, zmm{k}{z} [AVX512F] -// * VSQRTPD {er}, zmm, zmm{k}{z} [AVX512F] -// * VSQRTPD zmm, zmm{k}{z} [AVX512F] -// * VSQRTPD m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VSQRTPD m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VSQRTPD xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSQRTPD ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSQRTPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSQRTPD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VSQRTPD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VSQRTPD takes 2 or 3 operands") - } - // VSQRTPD xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPD m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VSQRTPD ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), v[0], 0) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPD m256, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[1]), addr(v[0]), 0) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VSQRTPD m512/m64bcst, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VSQRTPD {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x51) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VSQRTPD zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPD m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VSQRTPD m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VSQRTPD xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPD ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSQRTPD") - } - return p -} - -// VSQRTPS performs "Compute Square Roots of Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VSQRTPS -// Supported forms : (11 forms) -// -// * VSQRTPS xmm, xmm [AVX] -// * VSQRTPS m128, xmm [AVX] -// * VSQRTPS ymm, ymm [AVX] -// * VSQRTPS m256, ymm [AVX] -// * VSQRTPS m512/m32bcst, zmm{k}{z} [AVX512F] -// * VSQRTPS {er}, zmm, zmm{k}{z} [AVX512F] -// * VSQRTPS zmm, zmm{k}{z} [AVX512F] -// * VSQRTPS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] -// * VSQRTPS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] -// * VSQRTPS xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSQRTPS ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSQRTPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSQRTPS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VSQRTPS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VSQRTPS takes 2 or 3 operands") - } - // VSQRTPS xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPS m128, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VSQRTPS ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), v[0], 0) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPS m256, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[1]), addr(v[0]), 0) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VSQRTPS m512/m32bcst, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 64) - }) - } - // VSQRTPS {er}, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) - m.emit(0x51) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VSQRTPS zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPS m128/m32bcst, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 16) - }) - } - // VSQRTPS m256/m32bcst, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) - m.emit(0x51) - m.mrsd(lcode(v[1]), addr(v[0]), 32) - }) - } - // VSQRTPS xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VSQRTPS ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) - m.emit(0x51) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSQRTPS") - } - return p -} - -// VSQRTSD performs "Compute Square Root of Scalar Double-Precision Floating-Point Value". -// -// Mnemonic : VSQRTSD -// Supported forms : (5 forms) -// -// * VSQRTSD xmm, xmm, xmm [AVX] -// * VSQRTSD m64, xmm, xmm [AVX] -// * VSQRTSD m64, xmm, xmm{k}{z} [AVX512F] -// * VSQRTSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VSQRTSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VSQRTSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSQRTSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSQRTSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSQRTSD takes 3 or 4 operands") - } - // VSQRTSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x51) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSQRTSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x51) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSQRTSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x51) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VSQRTSD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x51) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSQRTSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x51) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSQRTSD") - } - return p -} - -// VSQRTSS performs "Compute Square Root of Scalar Single-Precision Floating-Point Value". -// -// Mnemonic : VSQRTSS -// Supported forms : (5 forms) -// -// * VSQRTSS xmm, xmm, xmm [AVX] -// * VSQRTSS m32, xmm, xmm [AVX] -// * VSQRTSS m32, xmm, xmm{k}{z} [AVX512F] -// * VSQRTSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VSQRTSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VSQRTSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSQRTSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSQRTSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSQRTSS takes 3 or 4 operands") - } - // VSQRTSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x51) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSQRTSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x51) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSQRTSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x51) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VSQRTSS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x51) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSQRTSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x51) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSQRTSS") - } - return p -} - -// VSTMXCSR performs "Store MXCSR Register State". -// -// Mnemonic : VSTMXCSR -// Supported forms : (1 form) -// -// * VSTMXCSR m32 [AVX] -// -func (self *Program) VSTMXCSR(v0 interface{}) *Instruction { - p := self.alloc("VSTMXCSR", 1, Operands { v0 }) - // VSTMXCSR m32 - if isM32(v0) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, addr(v[0]), 0) - m.emit(0xae) - m.mrsd(3, addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VSTMXCSR") - } - return p -} - -// VSUBPD performs "Subtract Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VSUBPD -// Supported forms : (11 forms) -// -// * VSUBPD xmm, xmm, xmm [AVX] -// * VSUBPD m128, xmm, xmm [AVX] -// * VSUBPD ymm, ymm, ymm [AVX] -// * VSUBPD m256, ymm, ymm [AVX] -// * VSUBPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VSUBPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSUBPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VSUBPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSUBPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSUBPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSUBPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSUBPD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSUBPD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSUBPD takes 3 or 4 operands") - } - // VSUBPD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPD m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSUBPD ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPD m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSUBPD m512/m64bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VSUBPD {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xfd ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSUBPD zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPD m128/m64bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VSUBPD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPD m256/m64bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VSUBPD ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSUBPD") - } - return p -} - -// VSUBPS performs "Subtract Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VSUBPS -// Supported forms : (11 forms) -// -// * VSUBPS xmm, xmm, xmm [AVX] -// * VSUBPS m128, xmm, xmm [AVX] -// * VSUBPS ymm, ymm, ymm [AVX] -// * VSUBPS m256, ymm, ymm [AVX] -// * VSUBPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VSUBPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] -// * VSUBPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VSUBPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSUBPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VSUBPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VSUBPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSUBPS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSUBPS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSUBPS takes 3 or 4 operands") - } - // VSUBPS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPS m128, xmm, xmm - if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSUBPS ymm, ymm, ymm - if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPS m256, ymm, ymm - if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSUBPS m512/m32bcst, zmm, zmm{k}{z} - if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VSUBPS {er}, zmm, zmm, zmm{k}{z} - if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7c ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSUBPS zmm, zmm, zmm{k}{z} - if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPS m128/m32bcst, xmm, xmm{k}{z} - if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VSUBPS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBPS m256/m32bcst, ymm, ymm{k}{z} - if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VSUBPS ymm, ymm, ymm{k}{z} - if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSUBPS") - } - return p -} - -// VSUBSD performs "Subtract Scalar Double-Precision Floating-Point Values". -// -// Mnemonic : VSUBSD -// Supported forms : (5 forms) -// -// * VSUBSD xmm, xmm, xmm [AVX] -// * VSUBSD m64, xmm, xmm [AVX] -// * VSUBSD m64, xmm, xmm{k}{z} [AVX512F] -// * VSUBSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VSUBSD xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSUBSD", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSUBSD", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSUBSD takes 3 or 4 operands") - } - // VSUBSD xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBSD m64, xmm, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSUBSD m64, xmm, xmm{k}{z} - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 8) - }) - } - // VSUBSD {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0xff ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSUBSD xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xff ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSUBSD") - } - return p -} - -// VSUBSS performs "Subtract Scalar Single-Precision Floating-Point Values". -// -// Mnemonic : VSUBSS -// Supported forms : (5 forms) -// -// * VSUBSS xmm, xmm, xmm [AVX] -// * VSUBSS m32, xmm, xmm [AVX] -// * VSUBSS m32, xmm, xmm{k}{z} [AVX512F] -// * VSUBSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] -// * VSUBSS xmm, xmm, xmm{k}{z} [AVX512F] -// -func (self *Program) VSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VSUBSS", 3, Operands { v0, v1, v2 }) - case 1 : p = self.alloc("VSUBSS", 4, Operands { v0, v1, v2, vv[0] }) - default : panic("instruction VSUBSS takes 3 or 4 operands") - } - // VSUBSS xmm, xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VSUBSS m32, xmm, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VSUBSS m32, xmm, xmm{k}{z} - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) - m.emit(0x5c) - m.mrsd(lcode(v[2]), addr(v[0]), 4) - }) - } - // VSUBSS {er}, xmm, xmm, xmm{k}{z} - if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) - m.emit(0x7e ^ (hlcode(v[2]) << 3)) - m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) - }) - } - // VSUBSS xmm, xmm, xmm{k}{z} - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7e ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x5c) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VSUBSS") - } - return p -} - -// VTESTPD performs "Packed Double-Precision Floating-Point Bit Test". -// -// Mnemonic : VTESTPD -// Supported forms : (4 forms) -// -// * VTESTPD xmm, xmm [AVX] -// * VTESTPD m128, xmm [AVX] -// * VTESTPD ymm, ymm [AVX] -// * VTESTPD m256, ymm [AVX] -// -func (self *Program) VTESTPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VTESTPD", 2, Operands { v0, v1 }) - // VTESTPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VTESTPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VTESTPD ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x0f) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VTESTPD m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x0f) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VTESTPD") - } - return p -} - -// VTESTPS performs "Packed Single-Precision Floating-Point Bit Test". -// -// Mnemonic : VTESTPS -// Supported forms : (4 forms) -// -// * VTESTPS xmm, xmm [AVX] -// * VTESTPS m128, xmm [AVX] -// * VTESTPS ymm, ymm [AVX] -// * VTESTPS m256, ymm [AVX] -// -func (self *Program) VTESTPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("VTESTPS", 2, Operands { v0, v1 }) - // VTESTPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x79) - m.emit(0x0e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VTESTPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) - m.emit(0x0e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VTESTPS ymm, ymm - if isYMM(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xc4) - m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) - m.emit(0x7d) - m.emit(0x0e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VTESTPS m256, ymm - if isM256(v0) && isYMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) - m.emit(0x0e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for VTESTPS") - } - return p -} - -// VUCOMISD performs "Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : VUCOMISD -// Supported forms : (5 forms) -// -// * VUCOMISD xmm, xmm [AVX] -// * VUCOMISD m64, xmm [AVX] -// * VUCOMISD m64, xmm [AVX512F] -// * VUCOMISD {sae}, xmm, xmm [AVX512F] -// * VUCOMISD xmm, xmm [AVX512F] -// -func (self *Program) VUCOMISD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VUCOMISD", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VUCOMISD", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VUCOMISD takes 2 or 3 operands") - } - // VUCOMISD xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), v[0], 0) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VUCOMISD m64, xmm - if len(vv) == 0 && isM64(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VUCOMISD m64, xmm - if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2e) - m.mrsd(lcode(v[1]), addr(v[0]), 8) - }) - } - // VUCOMISD {sae}, xmm, xmm - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd) - m.emit(0x18) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VUCOMISD xmm, xmm - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0xfd) - m.emit(0x48) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VUCOMISD") - } - return p -} - -// VUCOMISS performs "Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS". -// -// Mnemonic : VUCOMISS -// Supported forms : (5 forms) -// -// * VUCOMISS xmm, xmm [AVX] -// * VUCOMISS m32, xmm [AVX] -// * VUCOMISS m32, xmm [AVX512F] -// * VUCOMISS {sae}, xmm, xmm [AVX512F] -// * VUCOMISS xmm, xmm [AVX512F] -// -func (self *Program) VUCOMISS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { - var p *Instruction - switch len(vv) { - case 0 : p = self.alloc("VUCOMISS", 2, Operands { v0, v1 }) - case 1 : p = self.alloc("VUCOMISS", 3, Operands { v0, v1, vv[0] }) - default : panic("instruction VUCOMISS takes 2 or 3 operands") - } - // VUCOMISS xmm, xmm - if len(vv) == 0 && isXMM(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), v[0], 0) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // VUCOMISS m32, xmm - if len(vv) == 0 && isM32(v0) && isXMM(v1) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[1]), addr(v[0]), 0) - m.emit(0x2e) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // VUCOMISS m32, xmm - if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) - m.emit(0x2e) - m.mrsd(lcode(v[1]), addr(v[0]), 4) - }) - } - // VUCOMISS {sae}, xmm, xmm - if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c) - m.emit(0x18) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) - }) - } - // VUCOMISS xmm, xmm - if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) - m.emit(0x7c) - m.emit(0x48) - m.emit(0x2e) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VUCOMISS") - } - return p -} - -// VUNPCKHPD performs "Unpack and Interleave High Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VUNPCKHPD -// Supported forms : (10 forms) -// -// * VUNPCKHPD xmm, xmm, xmm [AVX] -// * VUNPCKHPD m128, xmm, xmm [AVX] -// * VUNPCKHPD ymm, ymm, ymm [AVX] -// * VUNPCKHPD m256, ymm, ymm [AVX] -// * VUNPCKHPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKHPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKHPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKHPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKHPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKHPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VUNPCKHPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VUNPCKHPD", 3, Operands { v0, v1, v2 }) - // VUNPCKHPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKHPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKHPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VUNPCKHPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VUNPCKHPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VUNPCKHPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VUNPCKHPD") - } - return p -} - -// VUNPCKHPS performs "Unpack and Interleave High Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VUNPCKHPS -// Supported forms : (10 forms) -// -// * VUNPCKHPS xmm, xmm, xmm [AVX] -// * VUNPCKHPS m128, xmm, xmm [AVX] -// * VUNPCKHPS ymm, ymm, ymm [AVX] -// * VUNPCKHPS m256, ymm, ymm [AVX] -// * VUNPCKHPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKHPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKHPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKHPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKHPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKHPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VUNPCKHPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VUNPCKHPS", 3, Operands { v0, v1, v2 }) - // VUNPCKHPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKHPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKHPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VUNPCKHPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VUNPCKHPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKHPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x15) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VUNPCKHPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x15) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VUNPCKHPS") - } - return p -} - -// VUNPCKLPD performs "Unpack and Interleave Low Packed Double-Precision Floating-Point Values". -// -// Mnemonic : VUNPCKLPD -// Supported forms : (10 forms) -// -// * VUNPCKLPD xmm, xmm, xmm [AVX] -// * VUNPCKLPD m128, xmm, xmm [AVX] -// * VUNPCKLPD ymm, ymm, ymm [AVX] -// * VUNPCKLPD m256, ymm, ymm [AVX] -// * VUNPCKLPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKLPD zmm, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKLPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKLPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKLPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKLPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VUNPCKLPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VUNPCKLPD", 3, Operands { v0, v1, v2 }) - // VUNPCKLPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKLPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKLPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VUNPCKLPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VUNPCKLPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VUNPCKLPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VUNPCKLPD") - } - return p -} - -// VUNPCKLPS performs "Unpack and Interleave Low Packed Single-Precision Floating-Point Values". -// -// Mnemonic : VUNPCKLPS -// Supported forms : (10 forms) -// -// * VUNPCKLPS xmm, xmm, xmm [AVX] -// * VUNPCKLPS m128, xmm, xmm [AVX] -// * VUNPCKLPS ymm, ymm, ymm [AVX] -// * VUNPCKLPS m256, ymm, ymm [AVX] -// * VUNPCKLPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKLPS zmm, zmm, zmm{k}{z} [AVX512F] -// * VUNPCKLPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKLPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKLPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// * VUNPCKLPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] -// -func (self *Program) VUNPCKLPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VUNPCKLPS", 3, Operands { v0, v1, v2 }) - // VUNPCKLPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKLPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VUNPCKLPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VUNPCKLPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VUNPCKLPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VUNPCKLPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x14) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VUNPCKLPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512F) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x14) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VUNPCKLPS") - } - return p -} - -// VXORPD performs "Bitwise Logical XOR for Double-Precision Floating-Point Values". -// -// Mnemonic : VXORPD -// Supported forms : (10 forms) -// -// * VXORPD xmm, xmm, xmm [AVX] -// * VXORPD m128, xmm, xmm [AVX] -// * VXORPD ymm, ymm, ymm [AVX] -// * VXORPD m256, ymm, ymm [AVX] -// * VXORPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VXORPD zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VXORPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VXORPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VXORPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VXORPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VXORPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VXORPD", 3, Operands { v0, v1, v2 }) - // VXORPD xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPD m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VXORPD ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPD m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VXORPD m512/m64bcst, zmm, zmm{k}{z} - if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VXORPD zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPD m128/m64bcst, xmm, xmm{k}{z} - if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VXORPD xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPD m256/m64bcst, ymm, ymm{k}{z} - if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VXORPD ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0xfd ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VXORPD") - } - return p -} - -// VXORPS performs "Bitwise Logical XOR for Single-Precision Floating-Point Values". -// -// Mnemonic : VXORPS -// Supported forms : (10 forms) -// -// * VXORPS xmm, xmm, xmm [AVX] -// * VXORPS m128, xmm, xmm [AVX] -// * VXORPS ymm, ymm, ymm [AVX] -// * VXORPS m256, ymm, ymm [AVX] -// * VXORPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] -// * VXORPS zmm, zmm, zmm{k}{z} [AVX512DQ] -// * VXORPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VXORPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] -// * VXORPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// * VXORPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] -// -func (self *Program) VXORPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { - p := self.alloc("VXORPS", 3, Operands { v0, v1, v2 }) - // VXORPS xmm, xmm, xmm - if isXMM(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPS m128, xmm, xmm - if isM128(v0) && isXMM(v1) && isXMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VXORPS ymm, ymm, ymm - if isYMM(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPS m256, ymm, ymm - if isM256(v0) && isYMM(v1) && isYMM(v2) { - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 1) - }) - } - // VXORPS m512/m32bcst, zmm, zmm{k}{z} - if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 64) - }) - } - // VXORPS zmm, zmm, zmm{k}{z} - if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { - self.require(ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPS m128/m32bcst, xmm, xmm{k}{z} - if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 16) - }) - } - // VXORPS xmm, xmm, xmm{k}{z} - if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - // VXORPS m256/m32bcst, ymm, ymm{k}{z} - if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) - m.emit(0x57) - m.mrsd(lcode(v[2]), addr(v[0]), 32) - }) - } - // VXORPS ymm, ymm, ymm{k}{z} - if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { - self.require(ISA_AVX512VL | ISA_AVX512DQ) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x62) - m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) - m.emit(0x7c ^ (hlcode(v[1]) << 3)) - m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) - m.emit(0x57) - m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) - }) - } - if p.len == 0 { - panic("invalid operands for VXORPS") - } - return p -} - -// VZEROALL performs "Zero All YMM Registers". -// -// Mnemonic : VZEROALL -// Supported forms : (1 form) -// -// * VZEROALL [AVX] -// -func (self *Program) VZEROALL() *Instruction { - p := self.alloc("VZEROALL", 0, Operands { }) - // VZEROALL - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(4, 0, nil, 0) - m.emit(0x77) - }) - return p -} - -// VZEROUPPER performs "Zero Upper Bits of YMM Registers". -// -// Mnemonic : VZEROUPPER -// Supported forms : (1 form) -// -// * VZEROUPPER [AVX] -// -func (self *Program) VZEROUPPER() *Instruction { - p := self.alloc("VZEROUPPER", 0, Operands { }) - // VZEROUPPER - self.require(ISA_AVX) - p.domain = DomainAVX - p.add(0, func(m *_Encoding, v []interface{}) { - m.vex2(0, 0, nil, 0) - m.emit(0x77) - }) - return p -} - -// XADDB performs "Exchange and Add". -// -// Mnemonic : XADD -// Supported forms : (2 forms) -// -// * XADDB r8, r8 -// * XADDB r8, m8 -// -func (self *Program) XADDB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XADDB", 2, Operands { v0, v1 }) - // XADDB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x0f) - m.emit(0xc0) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // XADDB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x0f) - m.emit(0xc0) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XADDB") - } - return p -} - -// XADDL performs "Exchange and Add". -// -// Mnemonic : XADD -// Supported forms : (2 forms) -// -// * XADDL r32, r32 -// * XADDL r32, m32 -// -func (self *Program) XADDL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XADDL", 2, Operands { v0, v1 }) - // XADDL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // XADDL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XADDL") - } - return p -} - -// XADDQ performs "Exchange and Add". -// -// Mnemonic : XADD -// Supported forms : (2 forms) -// -// * XADDQ r64, r64 -// * XADDQ r64, m64 -// -func (self *Program) XADDQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XADDQ", 2, Operands { v0, v1 }) - // XADDQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x0f) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // XADDQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x0f) - m.emit(0xc1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XADDQ") - } - return p -} - -// XADDW performs "Exchange and Add". -// -// Mnemonic : XADD -// Supported forms : (2 forms) -// -// * XADDW r16, r16 -// * XADDW r16, m16 -// -func (self *Program) XADDW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XADDW", 2, Operands { v0, v1 }) - // XADDW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x0f) - m.emit(0xc1) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - } - // XADDW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x0f) - m.emit(0xc1) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XADDW") - } - return p -} - -// XCHGB performs "Exchange Register/Memory with Register". -// -// Mnemonic : XCHG -// Supported forms : (3 forms) -// -// * XCHGB r8, r8 -// * XCHGB m8, r8 -// * XCHGB r8, m8 -// -func (self *Program) XCHGB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XCHGB", 2, Operands { v0, v1 }) - // XCHGB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x86) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x86) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XCHGB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x86) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XCHGB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x86) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XCHGB") - } - return p -} - -// XCHGL performs "Exchange Register/Memory with Register". -// -// Mnemonic : XCHG -// Supported forms : (5 forms) -// -// * XCHGL r32, eax -// * XCHGL eax, r32 -// * XCHGL r32, r32 -// * XCHGL m32, r32 -// * XCHGL r32, m32 -// -func (self *Program) XCHGL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XCHGL", 2, Operands { v0, v1 }) - // XCHGL r32, eax - if isReg32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[0], false) - m.emit(0x90 | lcode(v[0])) - }) - } - // XCHGL eax, r32 - if v0 == EAX && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x90 | lcode(v[1])) - }) - } - // XCHGL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x87) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x87) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XCHGL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x87) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XCHGL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x87) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XCHGL") - } - return p -} - -// XCHGQ performs "Exchange Register/Memory with Register". -// -// Mnemonic : XCHG -// Supported forms : (5 forms) -// -// * XCHGQ r64, rax -// * XCHGQ rax, r64 -// * XCHGQ r64, r64 -// * XCHGQ m64, r64 -// * XCHGQ r64, m64 -// -func (self *Program) XCHGQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XCHGQ", 2, Operands { v0, v1 }) - // XCHGQ r64, rax - if isReg64(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0])) - m.emit(0x90 | lcode(v[0])) - }) - } - // XCHGQ rax, r64 - if v0 == RAX && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x90 | lcode(v[1])) - }) - } - // XCHGQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x87) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x87) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XCHGQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x87) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XCHGQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x87) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XCHGQ") - } - return p -} - -// XCHGW performs "Exchange Register/Memory with Register". -// -// Mnemonic : XCHG -// Supported forms : (5 forms) -// -// * XCHGW r16, ax -// * XCHGW ax, r16 -// * XCHGW r16, r16 -// * XCHGW m16, r16 -// * XCHGW r16, m16 -// -func (self *Program) XCHGW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XCHGW", 2, Operands { v0, v1 }) - // XCHGW r16, ax - if isReg16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[0], false) - m.emit(0x90 | lcode(v[0])) - }) - } - // XCHGW ax, r16 - if v0 == AX && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x90 | lcode(v[1])) - }) - } - // XCHGW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x87) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x87) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XCHGW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x87) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XCHGW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x87) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XCHGW") - } - return p -} - -// XGETBV performs "Get Value of Extended Control Register". -// -// Mnemonic : XGETBV -// Supported forms : (1 form) -// -// * XGETBV -// -func (self *Program) XGETBV() *Instruction { - p := self.alloc("XGETBV", 0, Operands { }) - // XGETBV - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x0f) - m.emit(0x01) - m.emit(0xd0) - }) - return p -} - -// XLATB performs "Table Look-up Translation". -// -// Mnemonic : XLATB -// Supported forms : (2 forms) -// -// * XLATB -// * XLATB -// -func (self *Program) XLATB() *Instruction { - p := self.alloc("XLATB", 0, Operands { }) - // XLATB - p.domain = DomainMisc - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0xd7) - }) - // XLATB - p.domain = DomainMisc - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0xd7) - }) - return p -} - -// XORB performs "Logical Exclusive OR". -// -// Mnemonic : XOR -// Supported forms : (6 forms) -// -// * XORB imm8, al -// * XORB imm8, r8 -// * XORB r8, r8 -// * XORB m8, r8 -// * XORB imm8, m8 -// * XORB r8, m8 -// -func (self *Program) XORB(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XORB", 2, Operands { v0, v1 }) - // XORB imm8, al - if isImm8(v0) && v1 == AL { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x34) - m.imm1(toImmAny(v[0])) - }) - } - // XORB imm8, r8 - if isImm8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], isReg8REX(v[1])) - m.emit(0x80) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // XORB r8, r8 - if isReg8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x30) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) - m.emit(0x32) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XORB m8, r8 - if isM8(v0) && isReg8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) - m.emit(0x32) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XORB imm8, m8 - if isImm8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x80) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // XORB r8, m8 - if isReg8(v0) && isM8(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) - m.emit(0x30) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XORB") - } - return p -} - -// XORL performs "Logical Exclusive OR". -// -// Mnemonic : XOR -// Supported forms : (8 forms) -// -// * XORL imm32, eax -// * XORL imm8, r32 -// * XORL imm32, r32 -// * XORL r32, r32 -// * XORL m32, r32 -// * XORL imm8, m32 -// * XORL imm32, m32 -// * XORL r32, m32 -// -func (self *Program) XORL(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XORL", 2, Operands { v0, v1 }) - // XORL imm32, eax - if isImm32(v0) && v1 == EAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x35) - m.imm4(toImmAny(v[0])) - }) - } - // XORL imm8, r32 - if isImm8Ext(v0, 4) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // XORL imm32, r32 - if isImm32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xf0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // XORL r32, r32 - if isReg32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x31) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XORL m32, r32 - if isM32(v0) && isReg32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XORL imm8, m32 - if isImm8Ext(v0, 4) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // XORL imm32, m32 - if isImm32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(6, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // XORL r32, m32 - if isReg32(v0) && isM32(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x31) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XORL") - } - return p -} - -// XORPD performs "Bitwise Logical XOR for Double-Precision Floating-Point Values". -// -// Mnemonic : XORPD -// Supported forms : (2 forms) -// -// * XORPD xmm, xmm [SSE2] -// * XORPD m128, xmm [SSE2] -// -func (self *Program) XORPD(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XORPD", 2, Operands { v0, v1 }) - // XORPD xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x57) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XORPD m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE2) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x57) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XORPD") - } - return p -} - -// XORPS performs "Bitwise Logical XOR for Single-Precision Floating-Point Values". -// -// Mnemonic : XORPS -// Supported forms : (2 forms) -// -// * XORPS xmm, xmm [SSE] -// * XORPS m128, xmm [SSE] -// -func (self *Program) XORPS(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XORPS", 2, Operands { v0, v1 }) - // XORPS xmm, xmm - if isXMM(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x0f) - m.emit(0x57) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XORPS m128, xmm - if isM128(v0) && isXMM(v1) { - self.require(ISA_SSE) - p.domain = DomainMMXSSE - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x0f) - m.emit(0x57) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XORPS") - } - return p -} - -// XORQ performs "Logical Exclusive OR". -// -// Mnemonic : XOR -// Supported forms : (8 forms) -// -// * XORQ imm32, rax -// * XORQ imm8, r64 -// * XORQ imm32, r64 -// * XORQ r64, r64 -// * XORQ m64, r64 -// * XORQ imm8, m64 -// * XORQ imm32, m64 -// * XORQ r64, m64 -// -func (self *Program) XORQ(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XORQ", 2, Operands { v0, v1 }) - // XORQ imm32, rax - if isImm32(v0) && v1 == RAX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48) - m.emit(0x35) - m.imm4(toImmAny(v[0])) - }) - } - // XORQ imm8, r64 - if isImm8Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x83) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // XORQ imm32, r64 - if isImm32Ext(v0, 8) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1])) - m.emit(0x81) - m.emit(0xf0 | lcode(v[1])) - m.imm4(toImmAny(v[0])) - }) - } - // XORQ r64, r64 - if isReg64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) - m.emit(0x31) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XORQ m64, r64 - if isM64(v0) && isReg64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[1]), addr(v[0])) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XORQ imm8, m64 - if isImm8Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x83) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // XORQ imm32, m64 - if isImm32Ext(v0, 8) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, 0, addr(v[1])) - m.emit(0x81) - m.mrsd(6, addr(v[1]), 1) - m.imm4(toImmAny(v[0])) - }) - } - // XORQ r64, m64 - if isReg64(v0) && isM64(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.rexm(1, hcode(v[0]), addr(v[1])) - m.emit(0x31) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XORQ") - } - return p -} - -// XORW performs "Logical Exclusive OR". -// -// Mnemonic : XOR -// Supported forms : (8 forms) -// -// * XORW imm16, ax -// * XORW imm8, r16 -// * XORW imm16, r16 -// * XORW r16, r16 -// * XORW m16, r16 -// * XORW imm8, m16 -// * XORW imm16, m16 -// * XORW r16, m16 -// -func (self *Program) XORW(v0 interface{}, v1 interface{}) *Instruction { - p := self.alloc("XORW", 2, Operands { v0, v1 }) - // XORW imm16, ax - if isImm16(v0) && v1 == AX { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.emit(0x35) - m.imm2(toImmAny(v[0])) - }) - } - // XORW imm8, r16 - if isImm8Ext(v0, 2) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x83) - m.emit(0xf0 | lcode(v[1])) - m.imm1(toImmAny(v[0])) - }) - } - // XORW imm16, r16 - if isImm16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, v[1], false) - m.emit(0x81) - m.emit(0xf0 | lcode(v[1])) - m.imm2(toImmAny(v[0])) - }) - } - // XORW r16, r16 - if isReg16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), v[1], false) - m.emit(0x31) - m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) - }) - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), v[0], false) - m.emit(0x33) - m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) - }) - } - // XORW m16, r16 - if isM16(v0) && isReg16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[1]), addr(v[0]), false) - m.emit(0x33) - m.mrsd(lcode(v[1]), addr(v[0]), 1) - }) - } - // XORW imm8, m16 - if isImm8Ext(v0, 2) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x83) - m.mrsd(6, addr(v[1]), 1) - m.imm1(toImmAny(v[0])) - }) - } - // XORW imm16, m16 - if isImm16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(0, addr(v[1]), false) - m.emit(0x81) - m.mrsd(6, addr(v[1]), 1) - m.imm2(toImmAny(v[0])) - }) - } - // XORW r16, m16 - if isReg16(v0) && isM16(v1) { - p.domain = DomainGeneric - p.add(0, func(m *_Encoding, v []interface{}) { - m.emit(0x66) - m.rexo(hcode(v[0]), addr(v[1]), false) - m.emit(0x31) - m.mrsd(lcode(v[0]), addr(v[1]), 1) - }) - } - if p.len == 0 { - panic("invalid operands for XORW") - } - return p -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go deleted file mode 100644 index 675699eb0..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/instructions_table.go +++ /dev/null @@ -1,12291 +0,0 @@ -// Code generated by "mkasm_amd64.py", DO NOT EDIT. - -package x86_64 - -const ( - _N_args = 5 - _N_forms = 23 -) - -// Instructions maps all the instruction name to it's encoder function. -var Instructions = map[string]_InstructionEncoder { - "adcb" : __asm_proxy_ADCB__, - "adcl" : __asm_proxy_ADCL__, - "adcq" : __asm_proxy_ADCQ__, - "adcw" : __asm_proxy_ADCW__, - "adcxl" : __asm_proxy_ADCXL__, - "adcxq" : __asm_proxy_ADCXQ__, - "addb" : __asm_proxy_ADDB__, - "addl" : __asm_proxy_ADDL__, - "addpd" : __asm_proxy_ADDPD__, - "addps" : __asm_proxy_ADDPS__, - "addq" : __asm_proxy_ADDQ__, - "addsd" : __asm_proxy_ADDSD__, - "addss" : __asm_proxy_ADDSS__, - "addsubpd" : __asm_proxy_ADDSUBPD__, - "addsubps" : __asm_proxy_ADDSUBPS__, - "addw" : __asm_proxy_ADDW__, - "adoxl" : __asm_proxy_ADOXL__, - "adoxq" : __asm_proxy_ADOXQ__, - "aesdec" : __asm_proxy_AESDEC__, - "aesdeclast" : __asm_proxy_AESDECLAST__, - "aesenc" : __asm_proxy_AESENC__, - "aesenclast" : __asm_proxy_AESENCLAST__, - "aesimc" : __asm_proxy_AESIMC__, - "aeskeygenassist" : __asm_proxy_AESKEYGENASSIST__, - "andb" : __asm_proxy_ANDB__, - "andl" : __asm_proxy_ANDL__, - "andnl" : __asm_proxy_ANDNL__, - "andnpd" : __asm_proxy_ANDNPD__, - "andnps" : __asm_proxy_ANDNPS__, - "andnq" : __asm_proxy_ANDNQ__, - "andpd" : __asm_proxy_ANDPD__, - "andps" : __asm_proxy_ANDPS__, - "andq" : __asm_proxy_ANDQ__, - "andw" : __asm_proxy_ANDW__, - "bextr" : __asm_proxy_BEXTR__, - "blcfill" : __asm_proxy_BLCFILL__, - "blci" : __asm_proxy_BLCI__, - "blcic" : __asm_proxy_BLCIC__, - "blcmsk" : __asm_proxy_BLCMSK__, - "blcs" : __asm_proxy_BLCS__, - "blendpd" : __asm_proxy_BLENDPD__, - "blendps" : __asm_proxy_BLENDPS__, - "blendvpd" : __asm_proxy_BLENDVPD__, - "blendvps" : __asm_proxy_BLENDVPS__, - "blsfill" : __asm_proxy_BLSFILL__, - "blsi" : __asm_proxy_BLSI__, - "blsic" : __asm_proxy_BLSIC__, - "blsmsk" : __asm_proxy_BLSMSK__, - "blsr" : __asm_proxy_BLSR__, - "bsfl" : __asm_proxy_BSFL__, - "bsfq" : __asm_proxy_BSFQ__, - "bsfw" : __asm_proxy_BSFW__, - "bsrl" : __asm_proxy_BSRL__, - "bsrq" : __asm_proxy_BSRQ__, - "bsrw" : __asm_proxy_BSRW__, - "bswapl" : __asm_proxy_BSWAPL__, - "bswapq" : __asm_proxy_BSWAPQ__, - "btcl" : __asm_proxy_BTCL__, - "btcq" : __asm_proxy_BTCQ__, - "btcw" : __asm_proxy_BTCW__, - "btl" : __asm_proxy_BTL__, - "btq" : __asm_proxy_BTQ__, - "btrl" : __asm_proxy_BTRL__, - "btrq" : __asm_proxy_BTRQ__, - "btrw" : __asm_proxy_BTRW__, - "btsl" : __asm_proxy_BTSL__, - "btsq" : __asm_proxy_BTSQ__, - "btsw" : __asm_proxy_BTSW__, - "btw" : __asm_proxy_BTW__, - "bzhi" : __asm_proxy_BZHI__, - "call" : __asm_proxy_CALL__, - "callq" : __asm_proxy_CALLQ__, - "cbtw" : __asm_proxy_CBTW__, - "clc" : __asm_proxy_CLC__, - "cld" : __asm_proxy_CLD__, - "clflush" : __asm_proxy_CLFLUSH__, - "clflushopt" : __asm_proxy_CLFLUSHOPT__, - "cltd" : __asm_proxy_CLTD__, - "cltq" : __asm_proxy_CLTQ__, - "clwb" : __asm_proxy_CLWB__, - "clzero" : __asm_proxy_CLZERO__, - "cmc" : __asm_proxy_CMC__, - "cmova" : __asm_proxy_CMOVA__, - "cmovae" : __asm_proxy_CMOVAE__, - "cmovb" : __asm_proxy_CMOVB__, - "cmovbe" : __asm_proxy_CMOVBE__, - "cmovc" : __asm_proxy_CMOVC__, - "cmove" : __asm_proxy_CMOVE__, - "cmovg" : __asm_proxy_CMOVG__, - "cmovge" : __asm_proxy_CMOVGE__, - "cmovl" : __asm_proxy_CMOVL__, - "cmovle" : __asm_proxy_CMOVLE__, - "cmovna" : __asm_proxy_CMOVNA__, - "cmovnae" : __asm_proxy_CMOVNAE__, - "cmovnb" : __asm_proxy_CMOVNB__, - "cmovnbe" : __asm_proxy_CMOVNBE__, - "cmovnc" : __asm_proxy_CMOVNC__, - "cmovne" : __asm_proxy_CMOVNE__, - "cmovng" : __asm_proxy_CMOVNG__, - "cmovnge" : __asm_proxy_CMOVNGE__, - "cmovnl" : __asm_proxy_CMOVNL__, - "cmovnle" : __asm_proxy_CMOVNLE__, - "cmovno" : __asm_proxy_CMOVNO__, - "cmovnp" : __asm_proxy_CMOVNP__, - "cmovns" : __asm_proxy_CMOVNS__, - "cmovnz" : __asm_proxy_CMOVNZ__, - "cmovo" : __asm_proxy_CMOVO__, - "cmovp" : __asm_proxy_CMOVP__, - "cmovpe" : __asm_proxy_CMOVPE__, - "cmovpo" : __asm_proxy_CMOVPO__, - "cmovs" : __asm_proxy_CMOVS__, - "cmovz" : __asm_proxy_CMOVZ__, - "cmpb" : __asm_proxy_CMPB__, - "cmpl" : __asm_proxy_CMPL__, - "cmppd" : __asm_proxy_CMPPD__, - "cmpps" : __asm_proxy_CMPPS__, - "cmpq" : __asm_proxy_CMPQ__, - "cmpsd" : __asm_proxy_CMPSD__, - "cmpss" : __asm_proxy_CMPSS__, - "cmpw" : __asm_proxy_CMPW__, - "cmpxchg16b" : __asm_proxy_CMPXCHG16B__, - "cmpxchg8b" : __asm_proxy_CMPXCHG8B__, - "cmpxchgb" : __asm_proxy_CMPXCHGB__, - "cmpxchgl" : __asm_proxy_CMPXCHGL__, - "cmpxchgq" : __asm_proxy_CMPXCHGQ__, - "cmpxchgw" : __asm_proxy_CMPXCHGW__, - "comisd" : __asm_proxy_COMISD__, - "comiss" : __asm_proxy_COMISS__, - "cpuid" : __asm_proxy_CPUID__, - "cqto" : __asm_proxy_CQTO__, - "crc32b" : __asm_proxy_CRC32B__, - "crc32l" : __asm_proxy_CRC32L__, - "crc32q" : __asm_proxy_CRC32Q__, - "crc32w" : __asm_proxy_CRC32W__, - "cvtdq2pd" : __asm_proxy_CVTDQ2PD__, - "cvtdq2ps" : __asm_proxy_CVTDQ2PS__, - "cvtpd2dq" : __asm_proxy_CVTPD2DQ__, - "cvtpd2pi" : __asm_proxy_CVTPD2PI__, - "cvtpd2ps" : __asm_proxy_CVTPD2PS__, - "cvtpi2pd" : __asm_proxy_CVTPI2PD__, - "cvtpi2ps" : __asm_proxy_CVTPI2PS__, - "cvtps2dq" : __asm_proxy_CVTPS2DQ__, - "cvtps2pd" : __asm_proxy_CVTPS2PD__, - "cvtps2pi" : __asm_proxy_CVTPS2PI__, - "cvtsd2si" : __asm_proxy_CVTSD2SI__, - "cvtsd2ss" : __asm_proxy_CVTSD2SS__, - "cvtsi2sd" : __asm_proxy_CVTSI2SD__, - "cvtsi2ss" : __asm_proxy_CVTSI2SS__, - "cvtss2sd" : __asm_proxy_CVTSS2SD__, - "cvtss2si" : __asm_proxy_CVTSS2SI__, - "cvttpd2dq" : __asm_proxy_CVTTPD2DQ__, - "cvttpd2pi" : __asm_proxy_CVTTPD2PI__, - "cvttps2dq" : __asm_proxy_CVTTPS2DQ__, - "cvttps2pi" : __asm_proxy_CVTTPS2PI__, - "cvttsd2si" : __asm_proxy_CVTTSD2SI__, - "cvttss2si" : __asm_proxy_CVTTSS2SI__, - "cwtd" : __asm_proxy_CWTD__, - "cwtl" : __asm_proxy_CWTL__, - "decb" : __asm_proxy_DECB__, - "decl" : __asm_proxy_DECL__, - "decq" : __asm_proxy_DECQ__, - "decw" : __asm_proxy_DECW__, - "divb" : __asm_proxy_DIVB__, - "divl" : __asm_proxy_DIVL__, - "divpd" : __asm_proxy_DIVPD__, - "divps" : __asm_proxy_DIVPS__, - "divq" : __asm_proxy_DIVQ__, - "divsd" : __asm_proxy_DIVSD__, - "divss" : __asm_proxy_DIVSS__, - "divw" : __asm_proxy_DIVW__, - "dppd" : __asm_proxy_DPPD__, - "dpps" : __asm_proxy_DPPS__, - "emms" : __asm_proxy_EMMS__, - "extractps" : __asm_proxy_EXTRACTPS__, - "extrq" : __asm_proxy_EXTRQ__, - "femms" : __asm_proxy_FEMMS__, - "haddpd" : __asm_proxy_HADDPD__, - "haddps" : __asm_proxy_HADDPS__, - "hsubpd" : __asm_proxy_HSUBPD__, - "hsubps" : __asm_proxy_HSUBPS__, - "idivb" : __asm_proxy_IDIVB__, - "idivl" : __asm_proxy_IDIVL__, - "idivq" : __asm_proxy_IDIVQ__, - "idivw" : __asm_proxy_IDIVW__, - "imulb" : __asm_proxy_IMULB__, - "imull" : __asm_proxy_IMULL__, - "imulq" : __asm_proxy_IMULQ__, - "imulw" : __asm_proxy_IMULW__, - "incb" : __asm_proxy_INCB__, - "incl" : __asm_proxy_INCL__, - "incq" : __asm_proxy_INCQ__, - "incw" : __asm_proxy_INCW__, - "insertps" : __asm_proxy_INSERTPS__, - "insertq" : __asm_proxy_INSERTQ__, - "int" : __asm_proxy_INT__, - "ja" : __asm_proxy_JA__, - "jae" : __asm_proxy_JAE__, - "jb" : __asm_proxy_JB__, - "jbe" : __asm_proxy_JBE__, - "jc" : __asm_proxy_JC__, - "je" : __asm_proxy_JE__, - "jecxz" : __asm_proxy_JECXZ__, - "jg" : __asm_proxy_JG__, - "jge" : __asm_proxy_JGE__, - "jl" : __asm_proxy_JL__, - "jle" : __asm_proxy_JLE__, - "jmp" : __asm_proxy_JMP__, - "jmpq" : __asm_proxy_JMPQ__, - "jna" : __asm_proxy_JNA__, - "jnae" : __asm_proxy_JNAE__, - "jnb" : __asm_proxy_JNB__, - "jnbe" : __asm_proxy_JNBE__, - "jnc" : __asm_proxy_JNC__, - "jne" : __asm_proxy_JNE__, - "jng" : __asm_proxy_JNG__, - "jnge" : __asm_proxy_JNGE__, - "jnl" : __asm_proxy_JNL__, - "jnle" : __asm_proxy_JNLE__, - "jno" : __asm_proxy_JNO__, - "jnp" : __asm_proxy_JNP__, - "jns" : __asm_proxy_JNS__, - "jnz" : __asm_proxy_JNZ__, - "jo" : __asm_proxy_JO__, - "jp" : __asm_proxy_JP__, - "jpe" : __asm_proxy_JPE__, - "jpo" : __asm_proxy_JPO__, - "jrcxz" : __asm_proxy_JRCXZ__, - "js" : __asm_proxy_JS__, - "jz" : __asm_proxy_JZ__, - "kaddb" : __asm_proxy_KADDB__, - "kaddd" : __asm_proxy_KADDD__, - "kaddq" : __asm_proxy_KADDQ__, - "kaddw" : __asm_proxy_KADDW__, - "kandb" : __asm_proxy_KANDB__, - "kandd" : __asm_proxy_KANDD__, - "kandnb" : __asm_proxy_KANDNB__, - "kandnd" : __asm_proxy_KANDND__, - "kandnq" : __asm_proxy_KANDNQ__, - "kandnw" : __asm_proxy_KANDNW__, - "kandq" : __asm_proxy_KANDQ__, - "kandw" : __asm_proxy_KANDW__, - "kmovb" : __asm_proxy_KMOVB__, - "kmovd" : __asm_proxy_KMOVD__, - "kmovq" : __asm_proxy_KMOVQ__, - "kmovw" : __asm_proxy_KMOVW__, - "knotb" : __asm_proxy_KNOTB__, - "knotd" : __asm_proxy_KNOTD__, - "knotq" : __asm_proxy_KNOTQ__, - "knotw" : __asm_proxy_KNOTW__, - "korb" : __asm_proxy_KORB__, - "kord" : __asm_proxy_KORD__, - "korq" : __asm_proxy_KORQ__, - "kortestb" : __asm_proxy_KORTESTB__, - "kortestd" : __asm_proxy_KORTESTD__, - "kortestq" : __asm_proxy_KORTESTQ__, - "kortestw" : __asm_proxy_KORTESTW__, - "korw" : __asm_proxy_KORW__, - "kshiftlb" : __asm_proxy_KSHIFTLB__, - "kshiftld" : __asm_proxy_KSHIFTLD__, - "kshiftlq" : __asm_proxy_KSHIFTLQ__, - "kshiftlw" : __asm_proxy_KSHIFTLW__, - "kshiftrb" : __asm_proxy_KSHIFTRB__, - "kshiftrd" : __asm_proxy_KSHIFTRD__, - "kshiftrq" : __asm_proxy_KSHIFTRQ__, - "kshiftrw" : __asm_proxy_KSHIFTRW__, - "ktestb" : __asm_proxy_KTESTB__, - "ktestd" : __asm_proxy_KTESTD__, - "ktestq" : __asm_proxy_KTESTQ__, - "ktestw" : __asm_proxy_KTESTW__, - "kunpckbw" : __asm_proxy_KUNPCKBW__, - "kunpckdq" : __asm_proxy_KUNPCKDQ__, - "kunpckwd" : __asm_proxy_KUNPCKWD__, - "kxnorb" : __asm_proxy_KXNORB__, - "kxnord" : __asm_proxy_KXNORD__, - "kxnorq" : __asm_proxy_KXNORQ__, - "kxnorw" : __asm_proxy_KXNORW__, - "kxorb" : __asm_proxy_KXORB__, - "kxord" : __asm_proxy_KXORD__, - "kxorq" : __asm_proxy_KXORQ__, - "kxorw" : __asm_proxy_KXORW__, - "lddqu" : __asm_proxy_LDDQU__, - "ldmxcsr" : __asm_proxy_LDMXCSR__, - "leal" : __asm_proxy_LEAL__, - "leaq" : __asm_proxy_LEAQ__, - "leaw" : __asm_proxy_LEAW__, - "lfence" : __asm_proxy_LFENCE__, - "lzcntl" : __asm_proxy_LZCNTL__, - "lzcntq" : __asm_proxy_LZCNTQ__, - "lzcntw" : __asm_proxy_LZCNTW__, - "maskmovdqu" : __asm_proxy_MASKMOVDQU__, - "maskmovq" : __asm_proxy_MASKMOVQ__, - "maxpd" : __asm_proxy_MAXPD__, - "maxps" : __asm_proxy_MAXPS__, - "maxsd" : __asm_proxy_MAXSD__, - "maxss" : __asm_proxy_MAXSS__, - "mfence" : __asm_proxy_MFENCE__, - "minpd" : __asm_proxy_MINPD__, - "minps" : __asm_proxy_MINPS__, - "minsd" : __asm_proxy_MINSD__, - "minss" : __asm_proxy_MINSS__, - "monitor" : __asm_proxy_MONITOR__, - "monitorx" : __asm_proxy_MONITORX__, - "movapd" : __asm_proxy_MOVAPD__, - "movaps" : __asm_proxy_MOVAPS__, - "movb" : __asm_proxy_MOVB__, - "movbel" : __asm_proxy_MOVBEL__, - "movbeq" : __asm_proxy_MOVBEQ__, - "movbew" : __asm_proxy_MOVBEW__, - "movd" : __asm_proxy_MOVD__, - "movddup" : __asm_proxy_MOVDDUP__, - "movdq2q" : __asm_proxy_MOVDQ2Q__, - "movdqa" : __asm_proxy_MOVDQA__, - "movdqu" : __asm_proxy_MOVDQU__, - "movhlps" : __asm_proxy_MOVHLPS__, - "movhpd" : __asm_proxy_MOVHPD__, - "movhps" : __asm_proxy_MOVHPS__, - "movl" : __asm_proxy_MOVL__, - "movlhps" : __asm_proxy_MOVLHPS__, - "movlpd" : __asm_proxy_MOVLPD__, - "movlps" : __asm_proxy_MOVLPS__, - "movmskpd" : __asm_proxy_MOVMSKPD__, - "movmskps" : __asm_proxy_MOVMSKPS__, - "movntdq" : __asm_proxy_MOVNTDQ__, - "movntdqa" : __asm_proxy_MOVNTDQA__, - "movntil" : __asm_proxy_MOVNTIL__, - "movntiq" : __asm_proxy_MOVNTIQ__, - "movntpd" : __asm_proxy_MOVNTPD__, - "movntps" : __asm_proxy_MOVNTPS__, - "movntq" : __asm_proxy_MOVNTQ__, - "movntsd" : __asm_proxy_MOVNTSD__, - "movntss" : __asm_proxy_MOVNTSS__, - "movq" : __asm_proxy_MOVQ__, - "movq2dq" : __asm_proxy_MOVQ2DQ__, - "movsbl" : __asm_proxy_MOVSBL__, - "movsbq" : __asm_proxy_MOVSBQ__, - "movsbw" : __asm_proxy_MOVSBW__, - "movsd" : __asm_proxy_MOVSD__, - "movshdup" : __asm_proxy_MOVSHDUP__, - "movsldup" : __asm_proxy_MOVSLDUP__, - "movslq" : __asm_proxy_MOVSLQ__, - "movss" : __asm_proxy_MOVSS__, - "movswl" : __asm_proxy_MOVSWL__, - "movswq" : __asm_proxy_MOVSWQ__, - "movupd" : __asm_proxy_MOVUPD__, - "movups" : __asm_proxy_MOVUPS__, - "movw" : __asm_proxy_MOVW__, - "movzbl" : __asm_proxy_MOVZBL__, - "movzbq" : __asm_proxy_MOVZBQ__, - "movzbw" : __asm_proxy_MOVZBW__, - "movzwl" : __asm_proxy_MOVZWL__, - "movzwq" : __asm_proxy_MOVZWQ__, - "mpsadbw" : __asm_proxy_MPSADBW__, - "mulb" : __asm_proxy_MULB__, - "mull" : __asm_proxy_MULL__, - "mulpd" : __asm_proxy_MULPD__, - "mulps" : __asm_proxy_MULPS__, - "mulq" : __asm_proxy_MULQ__, - "mulsd" : __asm_proxy_MULSD__, - "mulss" : __asm_proxy_MULSS__, - "mulw" : __asm_proxy_MULW__, - "mulxl" : __asm_proxy_MULXL__, - "mulxq" : __asm_proxy_MULXQ__, - "mwait" : __asm_proxy_MWAIT__, - "mwaitx" : __asm_proxy_MWAITX__, - "negb" : __asm_proxy_NEGB__, - "negl" : __asm_proxy_NEGL__, - "negq" : __asm_proxy_NEGQ__, - "negw" : __asm_proxy_NEGW__, - "nop" : __asm_proxy_NOP__, - "notb" : __asm_proxy_NOTB__, - "notl" : __asm_proxy_NOTL__, - "notq" : __asm_proxy_NOTQ__, - "notw" : __asm_proxy_NOTW__, - "orb" : __asm_proxy_ORB__, - "orl" : __asm_proxy_ORL__, - "orpd" : __asm_proxy_ORPD__, - "orps" : __asm_proxy_ORPS__, - "orq" : __asm_proxy_ORQ__, - "orw" : __asm_proxy_ORW__, - "pabsb" : __asm_proxy_PABSB__, - "pabsd" : __asm_proxy_PABSD__, - "pabsw" : __asm_proxy_PABSW__, - "packssdw" : __asm_proxy_PACKSSDW__, - "packsswb" : __asm_proxy_PACKSSWB__, - "packusdw" : __asm_proxy_PACKUSDW__, - "packuswb" : __asm_proxy_PACKUSWB__, - "paddb" : __asm_proxy_PADDB__, - "paddd" : __asm_proxy_PADDD__, - "paddq" : __asm_proxy_PADDQ__, - "paddsb" : __asm_proxy_PADDSB__, - "paddsw" : __asm_proxy_PADDSW__, - "paddusb" : __asm_proxy_PADDUSB__, - "paddusw" : __asm_proxy_PADDUSW__, - "paddw" : __asm_proxy_PADDW__, - "palignr" : __asm_proxy_PALIGNR__, - "pand" : __asm_proxy_PAND__, - "pandn" : __asm_proxy_PANDN__, - "pause" : __asm_proxy_PAUSE__, - "pavgb" : __asm_proxy_PAVGB__, - "pavgusb" : __asm_proxy_PAVGUSB__, - "pavgw" : __asm_proxy_PAVGW__, - "pblendvb" : __asm_proxy_PBLENDVB__, - "pblendw" : __asm_proxy_PBLENDW__, - "pclmulqdq" : __asm_proxy_PCLMULQDQ__, - "pcmpeqb" : __asm_proxy_PCMPEQB__, - "pcmpeqd" : __asm_proxy_PCMPEQD__, - "pcmpeqq" : __asm_proxy_PCMPEQQ__, - "pcmpeqw" : __asm_proxy_PCMPEQW__, - "pcmpestri" : __asm_proxy_PCMPESTRI__, - "pcmpestrm" : __asm_proxy_PCMPESTRM__, - "pcmpgtb" : __asm_proxy_PCMPGTB__, - "pcmpgtd" : __asm_proxy_PCMPGTD__, - "pcmpgtq" : __asm_proxy_PCMPGTQ__, - "pcmpgtw" : __asm_proxy_PCMPGTW__, - "pcmpistri" : __asm_proxy_PCMPISTRI__, - "pcmpistrm" : __asm_proxy_PCMPISTRM__, - "pdep" : __asm_proxy_PDEP__, - "pext" : __asm_proxy_PEXT__, - "pextrb" : __asm_proxy_PEXTRB__, - "pextrd" : __asm_proxy_PEXTRD__, - "pextrq" : __asm_proxy_PEXTRQ__, - "pextrw" : __asm_proxy_PEXTRW__, - "pf2id" : __asm_proxy_PF2ID__, - "pf2iw" : __asm_proxy_PF2IW__, - "pfacc" : __asm_proxy_PFACC__, - "pfadd" : __asm_proxy_PFADD__, - "pfcmpeq" : __asm_proxy_PFCMPEQ__, - "pfcmpge" : __asm_proxy_PFCMPGE__, - "pfcmpgt" : __asm_proxy_PFCMPGT__, - "pfmax" : __asm_proxy_PFMAX__, - "pfmin" : __asm_proxy_PFMIN__, - "pfmul" : __asm_proxy_PFMUL__, - "pfnacc" : __asm_proxy_PFNACC__, - "pfpnacc" : __asm_proxy_PFPNACC__, - "pfrcp" : __asm_proxy_PFRCP__, - "pfrcpit1" : __asm_proxy_PFRCPIT1__, - "pfrcpit2" : __asm_proxy_PFRCPIT2__, - "pfrsqit1" : __asm_proxy_PFRSQIT1__, - "pfrsqrt" : __asm_proxy_PFRSQRT__, - "pfsub" : __asm_proxy_PFSUB__, - "pfsubr" : __asm_proxy_PFSUBR__, - "phaddd" : __asm_proxy_PHADDD__, - "phaddsw" : __asm_proxy_PHADDSW__, - "phaddw" : __asm_proxy_PHADDW__, - "phminposuw" : __asm_proxy_PHMINPOSUW__, - "phsubd" : __asm_proxy_PHSUBD__, - "phsubsw" : __asm_proxy_PHSUBSW__, - "phsubw" : __asm_proxy_PHSUBW__, - "pi2fd" : __asm_proxy_PI2FD__, - "pi2fw" : __asm_proxy_PI2FW__, - "pinsrb" : __asm_proxy_PINSRB__, - "pinsrd" : __asm_proxy_PINSRD__, - "pinsrq" : __asm_proxy_PINSRQ__, - "pinsrw" : __asm_proxy_PINSRW__, - "pmaddubsw" : __asm_proxy_PMADDUBSW__, - "pmaddwd" : __asm_proxy_PMADDWD__, - "pmaxsb" : __asm_proxy_PMAXSB__, - "pmaxsd" : __asm_proxy_PMAXSD__, - "pmaxsw" : __asm_proxy_PMAXSW__, - "pmaxub" : __asm_proxy_PMAXUB__, - "pmaxud" : __asm_proxy_PMAXUD__, - "pmaxuw" : __asm_proxy_PMAXUW__, - "pminsb" : __asm_proxy_PMINSB__, - "pminsd" : __asm_proxy_PMINSD__, - "pminsw" : __asm_proxy_PMINSW__, - "pminub" : __asm_proxy_PMINUB__, - "pminud" : __asm_proxy_PMINUD__, - "pminuw" : __asm_proxy_PMINUW__, - "pmovmskb" : __asm_proxy_PMOVMSKB__, - "pmovsxbd" : __asm_proxy_PMOVSXBD__, - "pmovsxbq" : __asm_proxy_PMOVSXBQ__, - "pmovsxbw" : __asm_proxy_PMOVSXBW__, - "pmovsxdq" : __asm_proxy_PMOVSXDQ__, - "pmovsxwd" : __asm_proxy_PMOVSXWD__, - "pmovsxwq" : __asm_proxy_PMOVSXWQ__, - "pmovzxbd" : __asm_proxy_PMOVZXBD__, - "pmovzxbq" : __asm_proxy_PMOVZXBQ__, - "pmovzxbw" : __asm_proxy_PMOVZXBW__, - "pmovzxdq" : __asm_proxy_PMOVZXDQ__, - "pmovzxwd" : __asm_proxy_PMOVZXWD__, - "pmovzxwq" : __asm_proxy_PMOVZXWQ__, - "pmuldq" : __asm_proxy_PMULDQ__, - "pmulhrsw" : __asm_proxy_PMULHRSW__, - "pmulhrw" : __asm_proxy_PMULHRW__, - "pmulhuw" : __asm_proxy_PMULHUW__, - "pmulhw" : __asm_proxy_PMULHW__, - "pmulld" : __asm_proxy_PMULLD__, - "pmullw" : __asm_proxy_PMULLW__, - "pmuludq" : __asm_proxy_PMULUDQ__, - "popcntl" : __asm_proxy_POPCNTL__, - "popcntq" : __asm_proxy_POPCNTQ__, - "popcntw" : __asm_proxy_POPCNTW__, - "popq" : __asm_proxy_POPQ__, - "popw" : __asm_proxy_POPW__, - "por" : __asm_proxy_POR__, - "prefetch" : __asm_proxy_PREFETCH__, - "prefetchnta" : __asm_proxy_PREFETCHNTA__, - "prefetcht0" : __asm_proxy_PREFETCHT0__, - "prefetcht1" : __asm_proxy_PREFETCHT1__, - "prefetcht2" : __asm_proxy_PREFETCHT2__, - "prefetchw" : __asm_proxy_PREFETCHW__, - "prefetchwt1" : __asm_proxy_PREFETCHWT1__, - "psadbw" : __asm_proxy_PSADBW__, - "pshufb" : __asm_proxy_PSHUFB__, - "pshufd" : __asm_proxy_PSHUFD__, - "pshufhw" : __asm_proxy_PSHUFHW__, - "pshuflw" : __asm_proxy_PSHUFLW__, - "pshufw" : __asm_proxy_PSHUFW__, - "psignb" : __asm_proxy_PSIGNB__, - "psignd" : __asm_proxy_PSIGND__, - "psignw" : __asm_proxy_PSIGNW__, - "pslld" : __asm_proxy_PSLLD__, - "pslldq" : __asm_proxy_PSLLDQ__, - "psllq" : __asm_proxy_PSLLQ__, - "psllw" : __asm_proxy_PSLLW__, - "psrad" : __asm_proxy_PSRAD__, - "psraw" : __asm_proxy_PSRAW__, - "psrld" : __asm_proxy_PSRLD__, - "psrldq" : __asm_proxy_PSRLDQ__, - "psrlq" : __asm_proxy_PSRLQ__, - "psrlw" : __asm_proxy_PSRLW__, - "psubb" : __asm_proxy_PSUBB__, - "psubd" : __asm_proxy_PSUBD__, - "psubq" : __asm_proxy_PSUBQ__, - "psubsb" : __asm_proxy_PSUBSB__, - "psubsw" : __asm_proxy_PSUBSW__, - "psubusb" : __asm_proxy_PSUBUSB__, - "psubusw" : __asm_proxy_PSUBUSW__, - "psubw" : __asm_proxy_PSUBW__, - "pswapd" : __asm_proxy_PSWAPD__, - "ptest" : __asm_proxy_PTEST__, - "punpckhbw" : __asm_proxy_PUNPCKHBW__, - "punpckhdq" : __asm_proxy_PUNPCKHDQ__, - "punpckhqdq" : __asm_proxy_PUNPCKHQDQ__, - "punpckhwd" : __asm_proxy_PUNPCKHWD__, - "punpcklbw" : __asm_proxy_PUNPCKLBW__, - "punpckldq" : __asm_proxy_PUNPCKLDQ__, - "punpcklqdq" : __asm_proxy_PUNPCKLQDQ__, - "punpcklwd" : __asm_proxy_PUNPCKLWD__, - "pushq" : __asm_proxy_PUSHQ__, - "pushw" : __asm_proxy_PUSHW__, - "pxor" : __asm_proxy_PXOR__, - "rclb" : __asm_proxy_RCLB__, - "rcll" : __asm_proxy_RCLL__, - "rclq" : __asm_proxy_RCLQ__, - "rclw" : __asm_proxy_RCLW__, - "rcpps" : __asm_proxy_RCPPS__, - "rcpss" : __asm_proxy_RCPSS__, - "rcrb" : __asm_proxy_RCRB__, - "rcrl" : __asm_proxy_RCRL__, - "rcrq" : __asm_proxy_RCRQ__, - "rcrw" : __asm_proxy_RCRW__, - "rdrand" : __asm_proxy_RDRAND__, - "rdseed" : __asm_proxy_RDSEED__, - "rdtsc" : __asm_proxy_RDTSC__, - "rdtscp" : __asm_proxy_RDTSCP__, - "ret" : __asm_proxy_RET__, - "rolb" : __asm_proxy_ROLB__, - "roll" : __asm_proxy_ROLL__, - "rolq" : __asm_proxy_ROLQ__, - "rolw" : __asm_proxy_ROLW__, - "rorb" : __asm_proxy_RORB__, - "rorl" : __asm_proxy_RORL__, - "rorq" : __asm_proxy_RORQ__, - "rorw" : __asm_proxy_RORW__, - "rorxl" : __asm_proxy_RORXL__, - "rorxq" : __asm_proxy_RORXQ__, - "roundpd" : __asm_proxy_ROUNDPD__, - "roundps" : __asm_proxy_ROUNDPS__, - "roundsd" : __asm_proxy_ROUNDSD__, - "roundss" : __asm_proxy_ROUNDSS__, - "rsqrtps" : __asm_proxy_RSQRTPS__, - "rsqrtss" : __asm_proxy_RSQRTSS__, - "salb" : __asm_proxy_SALB__, - "sall" : __asm_proxy_SALL__, - "salq" : __asm_proxy_SALQ__, - "salw" : __asm_proxy_SALW__, - "sarb" : __asm_proxy_SARB__, - "sarl" : __asm_proxy_SARL__, - "sarq" : __asm_proxy_SARQ__, - "sarw" : __asm_proxy_SARW__, - "sarxl" : __asm_proxy_SARXL__, - "sarxq" : __asm_proxy_SARXQ__, - "sbbb" : __asm_proxy_SBBB__, - "sbbl" : __asm_proxy_SBBL__, - "sbbq" : __asm_proxy_SBBQ__, - "sbbw" : __asm_proxy_SBBW__, - "seta" : __asm_proxy_SETA__, - "setae" : __asm_proxy_SETAE__, - "setb" : __asm_proxy_SETB__, - "setbe" : __asm_proxy_SETBE__, - "setc" : __asm_proxy_SETC__, - "sete" : __asm_proxy_SETE__, - "setg" : __asm_proxy_SETG__, - "setge" : __asm_proxy_SETGE__, - "setl" : __asm_proxy_SETL__, - "setle" : __asm_proxy_SETLE__, - "setna" : __asm_proxy_SETNA__, - "setnae" : __asm_proxy_SETNAE__, - "setnb" : __asm_proxy_SETNB__, - "setnbe" : __asm_proxy_SETNBE__, - "setnc" : __asm_proxy_SETNC__, - "setne" : __asm_proxy_SETNE__, - "setng" : __asm_proxy_SETNG__, - "setnge" : __asm_proxy_SETNGE__, - "setnl" : __asm_proxy_SETNL__, - "setnle" : __asm_proxy_SETNLE__, - "setno" : __asm_proxy_SETNO__, - "setnp" : __asm_proxy_SETNP__, - "setns" : __asm_proxy_SETNS__, - "setnz" : __asm_proxy_SETNZ__, - "seto" : __asm_proxy_SETO__, - "setp" : __asm_proxy_SETP__, - "setpe" : __asm_proxy_SETPE__, - "setpo" : __asm_proxy_SETPO__, - "sets" : __asm_proxy_SETS__, - "setz" : __asm_proxy_SETZ__, - "sfence" : __asm_proxy_SFENCE__, - "sha1msg1" : __asm_proxy_SHA1MSG1__, - "sha1msg2" : __asm_proxy_SHA1MSG2__, - "sha1nexte" : __asm_proxy_SHA1NEXTE__, - "sha1rnds4" : __asm_proxy_SHA1RNDS4__, - "sha256msg1" : __asm_proxy_SHA256MSG1__, - "sha256msg2" : __asm_proxy_SHA256MSG2__, - "sha256rnds2" : __asm_proxy_SHA256RNDS2__, - "shlb" : __asm_proxy_SHLB__, - "shldl" : __asm_proxy_SHLDL__, - "shldq" : __asm_proxy_SHLDQ__, - "shldw" : __asm_proxy_SHLDW__, - "shll" : __asm_proxy_SHLL__, - "shlq" : __asm_proxy_SHLQ__, - "shlw" : __asm_proxy_SHLW__, - "shlxl" : __asm_proxy_SHLXL__, - "shlxq" : __asm_proxy_SHLXQ__, - "shrb" : __asm_proxy_SHRB__, - "shrdl" : __asm_proxy_SHRDL__, - "shrdq" : __asm_proxy_SHRDQ__, - "shrdw" : __asm_proxy_SHRDW__, - "shrl" : __asm_proxy_SHRL__, - "shrq" : __asm_proxy_SHRQ__, - "shrw" : __asm_proxy_SHRW__, - "shrxl" : __asm_proxy_SHRXL__, - "shrxq" : __asm_proxy_SHRXQ__, - "shufpd" : __asm_proxy_SHUFPD__, - "shufps" : __asm_proxy_SHUFPS__, - "sqrtpd" : __asm_proxy_SQRTPD__, - "sqrtps" : __asm_proxy_SQRTPS__, - "sqrtsd" : __asm_proxy_SQRTSD__, - "sqrtss" : __asm_proxy_SQRTSS__, - "stc" : __asm_proxy_STC__, - "std" : __asm_proxy_STD__, - "stmxcsr" : __asm_proxy_STMXCSR__, - "subb" : __asm_proxy_SUBB__, - "subl" : __asm_proxy_SUBL__, - "subpd" : __asm_proxy_SUBPD__, - "subps" : __asm_proxy_SUBPS__, - "subq" : __asm_proxy_SUBQ__, - "subsd" : __asm_proxy_SUBSD__, - "subss" : __asm_proxy_SUBSS__, - "subw" : __asm_proxy_SUBW__, - "syscall" : __asm_proxy_SYSCALL__, - "t1mskc" : __asm_proxy_T1MSKC__, - "testb" : __asm_proxy_TESTB__, - "testl" : __asm_proxy_TESTL__, - "testq" : __asm_proxy_TESTQ__, - "testw" : __asm_proxy_TESTW__, - "tzcntl" : __asm_proxy_TZCNTL__, - "tzcntq" : __asm_proxy_TZCNTQ__, - "tzcntw" : __asm_proxy_TZCNTW__, - "tzmsk" : __asm_proxy_TZMSK__, - "ucomisd" : __asm_proxy_UCOMISD__, - "ucomiss" : __asm_proxy_UCOMISS__, - "ud2" : __asm_proxy_UD2__, - "unpckhpd" : __asm_proxy_UNPCKHPD__, - "unpckhps" : __asm_proxy_UNPCKHPS__, - "unpcklpd" : __asm_proxy_UNPCKLPD__, - "unpcklps" : __asm_proxy_UNPCKLPS__, - "vaddpd" : __asm_proxy_VADDPD__, - "vaddps" : __asm_proxy_VADDPS__, - "vaddsd" : __asm_proxy_VADDSD__, - "vaddss" : __asm_proxy_VADDSS__, - "vaddsubpd" : __asm_proxy_VADDSUBPD__, - "vaddsubps" : __asm_proxy_VADDSUBPS__, - "vaesdec" : __asm_proxy_VAESDEC__, - "vaesdeclast" : __asm_proxy_VAESDECLAST__, - "vaesenc" : __asm_proxy_VAESENC__, - "vaesenclast" : __asm_proxy_VAESENCLAST__, - "vaesimc" : __asm_proxy_VAESIMC__, - "vaeskeygenassist" : __asm_proxy_VAESKEYGENASSIST__, - "valignd" : __asm_proxy_VALIGND__, - "valignq" : __asm_proxy_VALIGNQ__, - "vandnpd" : __asm_proxy_VANDNPD__, - "vandnps" : __asm_proxy_VANDNPS__, - "vandpd" : __asm_proxy_VANDPD__, - "vandps" : __asm_proxy_VANDPS__, - "vblendmpd" : __asm_proxy_VBLENDMPD__, - "vblendmps" : __asm_proxy_VBLENDMPS__, - "vblendpd" : __asm_proxy_VBLENDPD__, - "vblendps" : __asm_proxy_VBLENDPS__, - "vblendvpd" : __asm_proxy_VBLENDVPD__, - "vblendvps" : __asm_proxy_VBLENDVPS__, - "vbroadcastf128" : __asm_proxy_VBROADCASTF128__, - "vbroadcastf32x2" : __asm_proxy_VBROADCASTF32X2__, - "vbroadcastf32x4" : __asm_proxy_VBROADCASTF32X4__, - "vbroadcastf32x8" : __asm_proxy_VBROADCASTF32X8__, - "vbroadcastf64x2" : __asm_proxy_VBROADCASTF64X2__, - "vbroadcastf64x4" : __asm_proxy_VBROADCASTF64X4__, - "vbroadcasti128" : __asm_proxy_VBROADCASTI128__, - "vbroadcasti32x2" : __asm_proxy_VBROADCASTI32X2__, - "vbroadcasti32x4" : __asm_proxy_VBROADCASTI32X4__, - "vbroadcasti32x8" : __asm_proxy_VBROADCASTI32X8__, - "vbroadcasti64x2" : __asm_proxy_VBROADCASTI64X2__, - "vbroadcasti64x4" : __asm_proxy_VBROADCASTI64X4__, - "vbroadcastsd" : __asm_proxy_VBROADCASTSD__, - "vbroadcastss" : __asm_proxy_VBROADCASTSS__, - "vcmppd" : __asm_proxy_VCMPPD__, - "vcmpps" : __asm_proxy_VCMPPS__, - "vcmpsd" : __asm_proxy_VCMPSD__, - "vcmpss" : __asm_proxy_VCMPSS__, - "vcomisd" : __asm_proxy_VCOMISD__, - "vcomiss" : __asm_proxy_VCOMISS__, - "vcompresspd" : __asm_proxy_VCOMPRESSPD__, - "vcompressps" : __asm_proxy_VCOMPRESSPS__, - "vcvtdq2pd" : __asm_proxy_VCVTDQ2PD__, - "vcvtdq2ps" : __asm_proxy_VCVTDQ2PS__, - "vcvtpd2dq" : __asm_proxy_VCVTPD2DQ__, - "vcvtpd2ps" : __asm_proxy_VCVTPD2PS__, - "vcvtpd2qq" : __asm_proxy_VCVTPD2QQ__, - "vcvtpd2udq" : __asm_proxy_VCVTPD2UDQ__, - "vcvtpd2uqq" : __asm_proxy_VCVTPD2UQQ__, - "vcvtph2ps" : __asm_proxy_VCVTPH2PS__, - "vcvtps2dq" : __asm_proxy_VCVTPS2DQ__, - "vcvtps2pd" : __asm_proxy_VCVTPS2PD__, - "vcvtps2ph" : __asm_proxy_VCVTPS2PH__, - "vcvtps2qq" : __asm_proxy_VCVTPS2QQ__, - "vcvtps2udq" : __asm_proxy_VCVTPS2UDQ__, - "vcvtps2uqq" : __asm_proxy_VCVTPS2UQQ__, - "vcvtqq2pd" : __asm_proxy_VCVTQQ2PD__, - "vcvtqq2ps" : __asm_proxy_VCVTQQ2PS__, - "vcvtsd2si" : __asm_proxy_VCVTSD2SI__, - "vcvtsd2ss" : __asm_proxy_VCVTSD2SS__, - "vcvtsd2usi" : __asm_proxy_VCVTSD2USI__, - "vcvtsi2sd" : __asm_proxy_VCVTSI2SD__, - "vcvtsi2ss" : __asm_proxy_VCVTSI2SS__, - "vcvtss2sd" : __asm_proxy_VCVTSS2SD__, - "vcvtss2si" : __asm_proxy_VCVTSS2SI__, - "vcvtss2usi" : __asm_proxy_VCVTSS2USI__, - "vcvttpd2dq" : __asm_proxy_VCVTTPD2DQ__, - "vcvttpd2qq" : __asm_proxy_VCVTTPD2QQ__, - "vcvttpd2udq" : __asm_proxy_VCVTTPD2UDQ__, - "vcvttpd2uqq" : __asm_proxy_VCVTTPD2UQQ__, - "vcvttps2dq" : __asm_proxy_VCVTTPS2DQ__, - "vcvttps2qq" : __asm_proxy_VCVTTPS2QQ__, - "vcvttps2udq" : __asm_proxy_VCVTTPS2UDQ__, - "vcvttps2uqq" : __asm_proxy_VCVTTPS2UQQ__, - "vcvttsd2si" : __asm_proxy_VCVTTSD2SI__, - "vcvttsd2usi" : __asm_proxy_VCVTTSD2USI__, - "vcvttss2si" : __asm_proxy_VCVTTSS2SI__, - "vcvttss2usi" : __asm_proxy_VCVTTSS2USI__, - "vcvtudq2pd" : __asm_proxy_VCVTUDQ2PD__, - "vcvtudq2ps" : __asm_proxy_VCVTUDQ2PS__, - "vcvtuqq2pd" : __asm_proxy_VCVTUQQ2PD__, - "vcvtuqq2ps" : __asm_proxy_VCVTUQQ2PS__, - "vcvtusi2sd" : __asm_proxy_VCVTUSI2SD__, - "vcvtusi2ss" : __asm_proxy_VCVTUSI2SS__, - "vdbpsadbw" : __asm_proxy_VDBPSADBW__, - "vdivpd" : __asm_proxy_VDIVPD__, - "vdivps" : __asm_proxy_VDIVPS__, - "vdivsd" : __asm_proxy_VDIVSD__, - "vdivss" : __asm_proxy_VDIVSS__, - "vdppd" : __asm_proxy_VDPPD__, - "vdpps" : __asm_proxy_VDPPS__, - "vexp2pd" : __asm_proxy_VEXP2PD__, - "vexp2ps" : __asm_proxy_VEXP2PS__, - "vexpandpd" : __asm_proxy_VEXPANDPD__, - "vexpandps" : __asm_proxy_VEXPANDPS__, - "vextractf128" : __asm_proxy_VEXTRACTF128__, - "vextractf32x4" : __asm_proxy_VEXTRACTF32X4__, - "vextractf32x8" : __asm_proxy_VEXTRACTF32X8__, - "vextractf64x2" : __asm_proxy_VEXTRACTF64X2__, - "vextractf64x4" : __asm_proxy_VEXTRACTF64X4__, - "vextracti128" : __asm_proxy_VEXTRACTI128__, - "vextracti32x4" : __asm_proxy_VEXTRACTI32X4__, - "vextracti32x8" : __asm_proxy_VEXTRACTI32X8__, - "vextracti64x2" : __asm_proxy_VEXTRACTI64X2__, - "vextracti64x4" : __asm_proxy_VEXTRACTI64X4__, - "vextractps" : __asm_proxy_VEXTRACTPS__, - "vfixupimmpd" : __asm_proxy_VFIXUPIMMPD__, - "vfixupimmps" : __asm_proxy_VFIXUPIMMPS__, - "vfixupimmsd" : __asm_proxy_VFIXUPIMMSD__, - "vfixupimmss" : __asm_proxy_VFIXUPIMMSS__, - "vfmadd132pd" : __asm_proxy_VFMADD132PD__, - "vfmadd132ps" : __asm_proxy_VFMADD132PS__, - "vfmadd132sd" : __asm_proxy_VFMADD132SD__, - "vfmadd132ss" : __asm_proxy_VFMADD132SS__, - "vfmadd213pd" : __asm_proxy_VFMADD213PD__, - "vfmadd213ps" : __asm_proxy_VFMADD213PS__, - "vfmadd213sd" : __asm_proxy_VFMADD213SD__, - "vfmadd213ss" : __asm_proxy_VFMADD213SS__, - "vfmadd231pd" : __asm_proxy_VFMADD231PD__, - "vfmadd231ps" : __asm_proxy_VFMADD231PS__, - "vfmadd231sd" : __asm_proxy_VFMADD231SD__, - "vfmadd231ss" : __asm_proxy_VFMADD231SS__, - "vfmaddpd" : __asm_proxy_VFMADDPD__, - "vfmaddps" : __asm_proxy_VFMADDPS__, - "vfmaddsd" : __asm_proxy_VFMADDSD__, - "vfmaddss" : __asm_proxy_VFMADDSS__, - "vfmaddsub132pd" : __asm_proxy_VFMADDSUB132PD__, - "vfmaddsub132ps" : __asm_proxy_VFMADDSUB132PS__, - "vfmaddsub213pd" : __asm_proxy_VFMADDSUB213PD__, - "vfmaddsub213ps" : __asm_proxy_VFMADDSUB213PS__, - "vfmaddsub231pd" : __asm_proxy_VFMADDSUB231PD__, - "vfmaddsub231ps" : __asm_proxy_VFMADDSUB231PS__, - "vfmaddsubpd" : __asm_proxy_VFMADDSUBPD__, - "vfmaddsubps" : __asm_proxy_VFMADDSUBPS__, - "vfmsub132pd" : __asm_proxy_VFMSUB132PD__, - "vfmsub132ps" : __asm_proxy_VFMSUB132PS__, - "vfmsub132sd" : __asm_proxy_VFMSUB132SD__, - "vfmsub132ss" : __asm_proxy_VFMSUB132SS__, - "vfmsub213pd" : __asm_proxy_VFMSUB213PD__, - "vfmsub213ps" : __asm_proxy_VFMSUB213PS__, - "vfmsub213sd" : __asm_proxy_VFMSUB213SD__, - "vfmsub213ss" : __asm_proxy_VFMSUB213SS__, - "vfmsub231pd" : __asm_proxy_VFMSUB231PD__, - "vfmsub231ps" : __asm_proxy_VFMSUB231PS__, - "vfmsub231sd" : __asm_proxy_VFMSUB231SD__, - "vfmsub231ss" : __asm_proxy_VFMSUB231SS__, - "vfmsubadd132pd" : __asm_proxy_VFMSUBADD132PD__, - "vfmsubadd132ps" : __asm_proxy_VFMSUBADD132PS__, - "vfmsubadd213pd" : __asm_proxy_VFMSUBADD213PD__, - "vfmsubadd213ps" : __asm_proxy_VFMSUBADD213PS__, - "vfmsubadd231pd" : __asm_proxy_VFMSUBADD231PD__, - "vfmsubadd231ps" : __asm_proxy_VFMSUBADD231PS__, - "vfmsubaddpd" : __asm_proxy_VFMSUBADDPD__, - "vfmsubaddps" : __asm_proxy_VFMSUBADDPS__, - "vfmsubpd" : __asm_proxy_VFMSUBPD__, - "vfmsubps" : __asm_proxy_VFMSUBPS__, - "vfmsubsd" : __asm_proxy_VFMSUBSD__, - "vfmsubss" : __asm_proxy_VFMSUBSS__, - "vfnmadd132pd" : __asm_proxy_VFNMADD132PD__, - "vfnmadd132ps" : __asm_proxy_VFNMADD132PS__, - "vfnmadd132sd" : __asm_proxy_VFNMADD132SD__, - "vfnmadd132ss" : __asm_proxy_VFNMADD132SS__, - "vfnmadd213pd" : __asm_proxy_VFNMADD213PD__, - "vfnmadd213ps" : __asm_proxy_VFNMADD213PS__, - "vfnmadd213sd" : __asm_proxy_VFNMADD213SD__, - "vfnmadd213ss" : __asm_proxy_VFNMADD213SS__, - "vfnmadd231pd" : __asm_proxy_VFNMADD231PD__, - "vfnmadd231ps" : __asm_proxy_VFNMADD231PS__, - "vfnmadd231sd" : __asm_proxy_VFNMADD231SD__, - "vfnmadd231ss" : __asm_proxy_VFNMADD231SS__, - "vfnmaddpd" : __asm_proxy_VFNMADDPD__, - "vfnmaddps" : __asm_proxy_VFNMADDPS__, - "vfnmaddsd" : __asm_proxy_VFNMADDSD__, - "vfnmaddss" : __asm_proxy_VFNMADDSS__, - "vfnmsub132pd" : __asm_proxy_VFNMSUB132PD__, - "vfnmsub132ps" : __asm_proxy_VFNMSUB132PS__, - "vfnmsub132sd" : __asm_proxy_VFNMSUB132SD__, - "vfnmsub132ss" : __asm_proxy_VFNMSUB132SS__, - "vfnmsub213pd" : __asm_proxy_VFNMSUB213PD__, - "vfnmsub213ps" : __asm_proxy_VFNMSUB213PS__, - "vfnmsub213sd" : __asm_proxy_VFNMSUB213SD__, - "vfnmsub213ss" : __asm_proxy_VFNMSUB213SS__, - "vfnmsub231pd" : __asm_proxy_VFNMSUB231PD__, - "vfnmsub231ps" : __asm_proxy_VFNMSUB231PS__, - "vfnmsub231sd" : __asm_proxy_VFNMSUB231SD__, - "vfnmsub231ss" : __asm_proxy_VFNMSUB231SS__, - "vfnmsubpd" : __asm_proxy_VFNMSUBPD__, - "vfnmsubps" : __asm_proxy_VFNMSUBPS__, - "vfnmsubsd" : __asm_proxy_VFNMSUBSD__, - "vfnmsubss" : __asm_proxy_VFNMSUBSS__, - "vfpclasspd" : __asm_proxy_VFPCLASSPD__, - "vfpclassps" : __asm_proxy_VFPCLASSPS__, - "vfpclasssd" : __asm_proxy_VFPCLASSSD__, - "vfpclassss" : __asm_proxy_VFPCLASSSS__, - "vfrczpd" : __asm_proxy_VFRCZPD__, - "vfrczps" : __asm_proxy_VFRCZPS__, - "vfrczsd" : __asm_proxy_VFRCZSD__, - "vfrczss" : __asm_proxy_VFRCZSS__, - "vgatherdpd" : __asm_proxy_VGATHERDPD__, - "vgatherdps" : __asm_proxy_VGATHERDPS__, - "vgatherpf0dpd" : __asm_proxy_VGATHERPF0DPD__, - "vgatherpf0dps" : __asm_proxy_VGATHERPF0DPS__, - "vgatherpf0qpd" : __asm_proxy_VGATHERPF0QPD__, - "vgatherpf0qps" : __asm_proxy_VGATHERPF0QPS__, - "vgatherpf1dpd" : __asm_proxy_VGATHERPF1DPD__, - "vgatherpf1dps" : __asm_proxy_VGATHERPF1DPS__, - "vgatherpf1qpd" : __asm_proxy_VGATHERPF1QPD__, - "vgatherpf1qps" : __asm_proxy_VGATHERPF1QPS__, - "vgatherqpd" : __asm_proxy_VGATHERQPD__, - "vgatherqps" : __asm_proxy_VGATHERQPS__, - "vgetexppd" : __asm_proxy_VGETEXPPD__, - "vgetexpps" : __asm_proxy_VGETEXPPS__, - "vgetexpsd" : __asm_proxy_VGETEXPSD__, - "vgetexpss" : __asm_proxy_VGETEXPSS__, - "vgetmantpd" : __asm_proxy_VGETMANTPD__, - "vgetmantps" : __asm_proxy_VGETMANTPS__, - "vgetmantsd" : __asm_proxy_VGETMANTSD__, - "vgetmantss" : __asm_proxy_VGETMANTSS__, - "vhaddpd" : __asm_proxy_VHADDPD__, - "vhaddps" : __asm_proxy_VHADDPS__, - "vhsubpd" : __asm_proxy_VHSUBPD__, - "vhsubps" : __asm_proxy_VHSUBPS__, - "vinsertf128" : __asm_proxy_VINSERTF128__, - "vinsertf32x4" : __asm_proxy_VINSERTF32X4__, - "vinsertf32x8" : __asm_proxy_VINSERTF32X8__, - "vinsertf64x2" : __asm_proxy_VINSERTF64X2__, - "vinsertf64x4" : __asm_proxy_VINSERTF64X4__, - "vinserti128" : __asm_proxy_VINSERTI128__, - "vinserti32x4" : __asm_proxy_VINSERTI32X4__, - "vinserti32x8" : __asm_proxy_VINSERTI32X8__, - "vinserti64x2" : __asm_proxy_VINSERTI64X2__, - "vinserti64x4" : __asm_proxy_VINSERTI64X4__, - "vinsertps" : __asm_proxy_VINSERTPS__, - "vlddqu" : __asm_proxy_VLDDQU__, - "vldmxcsr" : __asm_proxy_VLDMXCSR__, - "vmaskmovdqu" : __asm_proxy_VMASKMOVDQU__, - "vmaskmovpd" : __asm_proxy_VMASKMOVPD__, - "vmaskmovps" : __asm_proxy_VMASKMOVPS__, - "vmaxpd" : __asm_proxy_VMAXPD__, - "vmaxps" : __asm_proxy_VMAXPS__, - "vmaxsd" : __asm_proxy_VMAXSD__, - "vmaxss" : __asm_proxy_VMAXSS__, - "vminpd" : __asm_proxy_VMINPD__, - "vminps" : __asm_proxy_VMINPS__, - "vminsd" : __asm_proxy_VMINSD__, - "vminss" : __asm_proxy_VMINSS__, - "vmovapd" : __asm_proxy_VMOVAPD__, - "vmovaps" : __asm_proxy_VMOVAPS__, - "vmovd" : __asm_proxy_VMOVD__, - "vmovddup" : __asm_proxy_VMOVDDUP__, - "vmovdqa" : __asm_proxy_VMOVDQA__, - "vmovdqa32" : __asm_proxy_VMOVDQA32__, - "vmovdqa64" : __asm_proxy_VMOVDQA64__, - "vmovdqu" : __asm_proxy_VMOVDQU__, - "vmovdqu16" : __asm_proxy_VMOVDQU16__, - "vmovdqu32" : __asm_proxy_VMOVDQU32__, - "vmovdqu64" : __asm_proxy_VMOVDQU64__, - "vmovdqu8" : __asm_proxy_VMOVDQU8__, - "vmovhlps" : __asm_proxy_VMOVHLPS__, - "vmovhpd" : __asm_proxy_VMOVHPD__, - "vmovhps" : __asm_proxy_VMOVHPS__, - "vmovlhps" : __asm_proxy_VMOVLHPS__, - "vmovlpd" : __asm_proxy_VMOVLPD__, - "vmovlps" : __asm_proxy_VMOVLPS__, - "vmovmskpd" : __asm_proxy_VMOVMSKPD__, - "vmovmskps" : __asm_proxy_VMOVMSKPS__, - "vmovntdq" : __asm_proxy_VMOVNTDQ__, - "vmovntdqa" : __asm_proxy_VMOVNTDQA__, - "vmovntpd" : __asm_proxy_VMOVNTPD__, - "vmovntps" : __asm_proxy_VMOVNTPS__, - "vmovq" : __asm_proxy_VMOVQ__, - "vmovsd" : __asm_proxy_VMOVSD__, - "vmovshdup" : __asm_proxy_VMOVSHDUP__, - "vmovsldup" : __asm_proxy_VMOVSLDUP__, - "vmovss" : __asm_proxy_VMOVSS__, - "vmovupd" : __asm_proxy_VMOVUPD__, - "vmovups" : __asm_proxy_VMOVUPS__, - "vmpsadbw" : __asm_proxy_VMPSADBW__, - "vmulpd" : __asm_proxy_VMULPD__, - "vmulps" : __asm_proxy_VMULPS__, - "vmulsd" : __asm_proxy_VMULSD__, - "vmulss" : __asm_proxy_VMULSS__, - "vorpd" : __asm_proxy_VORPD__, - "vorps" : __asm_proxy_VORPS__, - "vpabsb" : __asm_proxy_VPABSB__, - "vpabsd" : __asm_proxy_VPABSD__, - "vpabsq" : __asm_proxy_VPABSQ__, - "vpabsw" : __asm_proxy_VPABSW__, - "vpackssdw" : __asm_proxy_VPACKSSDW__, - "vpacksswb" : __asm_proxy_VPACKSSWB__, - "vpackusdw" : __asm_proxy_VPACKUSDW__, - "vpackuswb" : __asm_proxy_VPACKUSWB__, - "vpaddb" : __asm_proxy_VPADDB__, - "vpaddd" : __asm_proxy_VPADDD__, - "vpaddq" : __asm_proxy_VPADDQ__, - "vpaddsb" : __asm_proxy_VPADDSB__, - "vpaddsw" : __asm_proxy_VPADDSW__, - "vpaddusb" : __asm_proxy_VPADDUSB__, - "vpaddusw" : __asm_proxy_VPADDUSW__, - "vpaddw" : __asm_proxy_VPADDW__, - "vpalignr" : __asm_proxy_VPALIGNR__, - "vpand" : __asm_proxy_VPAND__, - "vpandd" : __asm_proxy_VPANDD__, - "vpandn" : __asm_proxy_VPANDN__, - "vpandnd" : __asm_proxy_VPANDND__, - "vpandnq" : __asm_proxy_VPANDNQ__, - "vpandq" : __asm_proxy_VPANDQ__, - "vpavgb" : __asm_proxy_VPAVGB__, - "vpavgw" : __asm_proxy_VPAVGW__, - "vpblendd" : __asm_proxy_VPBLENDD__, - "vpblendmb" : __asm_proxy_VPBLENDMB__, - "vpblendmd" : __asm_proxy_VPBLENDMD__, - "vpblendmq" : __asm_proxy_VPBLENDMQ__, - "vpblendmw" : __asm_proxy_VPBLENDMW__, - "vpblendvb" : __asm_proxy_VPBLENDVB__, - "vpblendw" : __asm_proxy_VPBLENDW__, - "vpbroadcastb" : __asm_proxy_VPBROADCASTB__, - "vpbroadcastd" : __asm_proxy_VPBROADCASTD__, - "vpbroadcastmb2q" : __asm_proxy_VPBROADCASTMB2Q__, - "vpbroadcastmw2d" : __asm_proxy_VPBROADCASTMW2D__, - "vpbroadcastq" : __asm_proxy_VPBROADCASTQ__, - "vpbroadcastw" : __asm_proxy_VPBROADCASTW__, - "vpclmulqdq" : __asm_proxy_VPCLMULQDQ__, - "vpcmov" : __asm_proxy_VPCMOV__, - "vpcmpb" : __asm_proxy_VPCMPB__, - "vpcmpd" : __asm_proxy_VPCMPD__, - "vpcmpeqb" : __asm_proxy_VPCMPEQB__, - "vpcmpeqd" : __asm_proxy_VPCMPEQD__, - "vpcmpeqq" : __asm_proxy_VPCMPEQQ__, - "vpcmpeqw" : __asm_proxy_VPCMPEQW__, - "vpcmpestri" : __asm_proxy_VPCMPESTRI__, - "vpcmpestrm" : __asm_proxy_VPCMPESTRM__, - "vpcmpgtb" : __asm_proxy_VPCMPGTB__, - "vpcmpgtd" : __asm_proxy_VPCMPGTD__, - "vpcmpgtq" : __asm_proxy_VPCMPGTQ__, - "vpcmpgtw" : __asm_proxy_VPCMPGTW__, - "vpcmpistri" : __asm_proxy_VPCMPISTRI__, - "vpcmpistrm" : __asm_proxy_VPCMPISTRM__, - "vpcmpq" : __asm_proxy_VPCMPQ__, - "vpcmpub" : __asm_proxy_VPCMPUB__, - "vpcmpud" : __asm_proxy_VPCMPUD__, - "vpcmpuq" : __asm_proxy_VPCMPUQ__, - "vpcmpuw" : __asm_proxy_VPCMPUW__, - "vpcmpw" : __asm_proxy_VPCMPW__, - "vpcomb" : __asm_proxy_VPCOMB__, - "vpcomd" : __asm_proxy_VPCOMD__, - "vpcompressd" : __asm_proxy_VPCOMPRESSD__, - "vpcompressq" : __asm_proxy_VPCOMPRESSQ__, - "vpcomq" : __asm_proxy_VPCOMQ__, - "vpcomub" : __asm_proxy_VPCOMUB__, - "vpcomud" : __asm_proxy_VPCOMUD__, - "vpcomuq" : __asm_proxy_VPCOMUQ__, - "vpcomuw" : __asm_proxy_VPCOMUW__, - "vpcomw" : __asm_proxy_VPCOMW__, - "vpconflictd" : __asm_proxy_VPCONFLICTD__, - "vpconflictq" : __asm_proxy_VPCONFLICTQ__, - "vperm2f128" : __asm_proxy_VPERM2F128__, - "vperm2i128" : __asm_proxy_VPERM2I128__, - "vpermb" : __asm_proxy_VPERMB__, - "vpermd" : __asm_proxy_VPERMD__, - "vpermi2b" : __asm_proxy_VPERMI2B__, - "vpermi2d" : __asm_proxy_VPERMI2D__, - "vpermi2pd" : __asm_proxy_VPERMI2PD__, - "vpermi2ps" : __asm_proxy_VPERMI2PS__, - "vpermi2q" : __asm_proxy_VPERMI2Q__, - "vpermi2w" : __asm_proxy_VPERMI2W__, - "vpermil2pd" : __asm_proxy_VPERMIL2PD__, - "vpermil2ps" : __asm_proxy_VPERMIL2PS__, - "vpermilpd" : __asm_proxy_VPERMILPD__, - "vpermilps" : __asm_proxy_VPERMILPS__, - "vpermpd" : __asm_proxy_VPERMPD__, - "vpermps" : __asm_proxy_VPERMPS__, - "vpermq" : __asm_proxy_VPERMQ__, - "vpermt2b" : __asm_proxy_VPERMT2B__, - "vpermt2d" : __asm_proxy_VPERMT2D__, - "vpermt2pd" : __asm_proxy_VPERMT2PD__, - "vpermt2ps" : __asm_proxy_VPERMT2PS__, - "vpermt2q" : __asm_proxy_VPERMT2Q__, - "vpermt2w" : __asm_proxy_VPERMT2W__, - "vpermw" : __asm_proxy_VPERMW__, - "vpexpandd" : __asm_proxy_VPEXPANDD__, - "vpexpandq" : __asm_proxy_VPEXPANDQ__, - "vpextrb" : __asm_proxy_VPEXTRB__, - "vpextrd" : __asm_proxy_VPEXTRD__, - "vpextrq" : __asm_proxy_VPEXTRQ__, - "vpextrw" : __asm_proxy_VPEXTRW__, - "vpgatherdd" : __asm_proxy_VPGATHERDD__, - "vpgatherdq" : __asm_proxy_VPGATHERDQ__, - "vpgatherqd" : __asm_proxy_VPGATHERQD__, - "vpgatherqq" : __asm_proxy_VPGATHERQQ__, - "vphaddbd" : __asm_proxy_VPHADDBD__, - "vphaddbq" : __asm_proxy_VPHADDBQ__, - "vphaddbw" : __asm_proxy_VPHADDBW__, - "vphaddd" : __asm_proxy_VPHADDD__, - "vphadddq" : __asm_proxy_VPHADDDQ__, - "vphaddsw" : __asm_proxy_VPHADDSW__, - "vphaddubd" : __asm_proxy_VPHADDUBD__, - "vphaddubq" : __asm_proxy_VPHADDUBQ__, - "vphaddubw" : __asm_proxy_VPHADDUBW__, - "vphaddudq" : __asm_proxy_VPHADDUDQ__, - "vphadduwd" : __asm_proxy_VPHADDUWD__, - "vphadduwq" : __asm_proxy_VPHADDUWQ__, - "vphaddw" : __asm_proxy_VPHADDW__, - "vphaddwd" : __asm_proxy_VPHADDWD__, - "vphaddwq" : __asm_proxy_VPHADDWQ__, - "vphminposuw" : __asm_proxy_VPHMINPOSUW__, - "vphsubbw" : __asm_proxy_VPHSUBBW__, - "vphsubd" : __asm_proxy_VPHSUBD__, - "vphsubdq" : __asm_proxy_VPHSUBDQ__, - "vphsubsw" : __asm_proxy_VPHSUBSW__, - "vphsubw" : __asm_proxy_VPHSUBW__, - "vphsubwd" : __asm_proxy_VPHSUBWD__, - "vpinsrb" : __asm_proxy_VPINSRB__, - "vpinsrd" : __asm_proxy_VPINSRD__, - "vpinsrq" : __asm_proxy_VPINSRQ__, - "vpinsrw" : __asm_proxy_VPINSRW__, - "vplzcntd" : __asm_proxy_VPLZCNTD__, - "vplzcntq" : __asm_proxy_VPLZCNTQ__, - "vpmacsdd" : __asm_proxy_VPMACSDD__, - "vpmacsdqh" : __asm_proxy_VPMACSDQH__, - "vpmacsdql" : __asm_proxy_VPMACSDQL__, - "vpmacssdd" : __asm_proxy_VPMACSSDD__, - "vpmacssdqh" : __asm_proxy_VPMACSSDQH__, - "vpmacssdql" : __asm_proxy_VPMACSSDQL__, - "vpmacsswd" : __asm_proxy_VPMACSSWD__, - "vpmacssww" : __asm_proxy_VPMACSSWW__, - "vpmacswd" : __asm_proxy_VPMACSWD__, - "vpmacsww" : __asm_proxy_VPMACSWW__, - "vpmadcsswd" : __asm_proxy_VPMADCSSWD__, - "vpmadcswd" : __asm_proxy_VPMADCSWD__, - "vpmadd52huq" : __asm_proxy_VPMADD52HUQ__, - "vpmadd52luq" : __asm_proxy_VPMADD52LUQ__, - "vpmaddubsw" : __asm_proxy_VPMADDUBSW__, - "vpmaddwd" : __asm_proxy_VPMADDWD__, - "vpmaskmovd" : __asm_proxy_VPMASKMOVD__, - "vpmaskmovq" : __asm_proxy_VPMASKMOVQ__, - "vpmaxsb" : __asm_proxy_VPMAXSB__, - "vpmaxsd" : __asm_proxy_VPMAXSD__, - "vpmaxsq" : __asm_proxy_VPMAXSQ__, - "vpmaxsw" : __asm_proxy_VPMAXSW__, - "vpmaxub" : __asm_proxy_VPMAXUB__, - "vpmaxud" : __asm_proxy_VPMAXUD__, - "vpmaxuq" : __asm_proxy_VPMAXUQ__, - "vpmaxuw" : __asm_proxy_VPMAXUW__, - "vpminsb" : __asm_proxy_VPMINSB__, - "vpminsd" : __asm_proxy_VPMINSD__, - "vpminsq" : __asm_proxy_VPMINSQ__, - "vpminsw" : __asm_proxy_VPMINSW__, - "vpminub" : __asm_proxy_VPMINUB__, - "vpminud" : __asm_proxy_VPMINUD__, - "vpminuq" : __asm_proxy_VPMINUQ__, - "vpminuw" : __asm_proxy_VPMINUW__, - "vpmovb2m" : __asm_proxy_VPMOVB2M__, - "vpmovd2m" : __asm_proxy_VPMOVD2M__, - "vpmovdb" : __asm_proxy_VPMOVDB__, - "vpmovdw" : __asm_proxy_VPMOVDW__, - "vpmovm2b" : __asm_proxy_VPMOVM2B__, - "vpmovm2d" : __asm_proxy_VPMOVM2D__, - "vpmovm2q" : __asm_proxy_VPMOVM2Q__, - "vpmovm2w" : __asm_proxy_VPMOVM2W__, - "vpmovmskb" : __asm_proxy_VPMOVMSKB__, - "vpmovq2m" : __asm_proxy_VPMOVQ2M__, - "vpmovqb" : __asm_proxy_VPMOVQB__, - "vpmovqd" : __asm_proxy_VPMOVQD__, - "vpmovqw" : __asm_proxy_VPMOVQW__, - "vpmovsdb" : __asm_proxy_VPMOVSDB__, - "vpmovsdw" : __asm_proxy_VPMOVSDW__, - "vpmovsqb" : __asm_proxy_VPMOVSQB__, - "vpmovsqd" : __asm_proxy_VPMOVSQD__, - "vpmovsqw" : __asm_proxy_VPMOVSQW__, - "vpmovswb" : __asm_proxy_VPMOVSWB__, - "vpmovsxbd" : __asm_proxy_VPMOVSXBD__, - "vpmovsxbq" : __asm_proxy_VPMOVSXBQ__, - "vpmovsxbw" : __asm_proxy_VPMOVSXBW__, - "vpmovsxdq" : __asm_proxy_VPMOVSXDQ__, - "vpmovsxwd" : __asm_proxy_VPMOVSXWD__, - "vpmovsxwq" : __asm_proxy_VPMOVSXWQ__, - "vpmovusdb" : __asm_proxy_VPMOVUSDB__, - "vpmovusdw" : __asm_proxy_VPMOVUSDW__, - "vpmovusqb" : __asm_proxy_VPMOVUSQB__, - "vpmovusqd" : __asm_proxy_VPMOVUSQD__, - "vpmovusqw" : __asm_proxy_VPMOVUSQW__, - "vpmovuswb" : __asm_proxy_VPMOVUSWB__, - "vpmovw2m" : __asm_proxy_VPMOVW2M__, - "vpmovwb" : __asm_proxy_VPMOVWB__, - "vpmovzxbd" : __asm_proxy_VPMOVZXBD__, - "vpmovzxbq" : __asm_proxy_VPMOVZXBQ__, - "vpmovzxbw" : __asm_proxy_VPMOVZXBW__, - "vpmovzxdq" : __asm_proxy_VPMOVZXDQ__, - "vpmovzxwd" : __asm_proxy_VPMOVZXWD__, - "vpmovzxwq" : __asm_proxy_VPMOVZXWQ__, - "vpmuldq" : __asm_proxy_VPMULDQ__, - "vpmulhrsw" : __asm_proxy_VPMULHRSW__, - "vpmulhuw" : __asm_proxy_VPMULHUW__, - "vpmulhw" : __asm_proxy_VPMULHW__, - "vpmulld" : __asm_proxy_VPMULLD__, - "vpmullq" : __asm_proxy_VPMULLQ__, - "vpmullw" : __asm_proxy_VPMULLW__, - "vpmultishiftqb" : __asm_proxy_VPMULTISHIFTQB__, - "vpmuludq" : __asm_proxy_VPMULUDQ__, - "vpopcntd" : __asm_proxy_VPOPCNTD__, - "vpopcntq" : __asm_proxy_VPOPCNTQ__, - "vpor" : __asm_proxy_VPOR__, - "vpord" : __asm_proxy_VPORD__, - "vporq" : __asm_proxy_VPORQ__, - "vpperm" : __asm_proxy_VPPERM__, - "vprold" : __asm_proxy_VPROLD__, - "vprolq" : __asm_proxy_VPROLQ__, - "vprolvd" : __asm_proxy_VPROLVD__, - "vprolvq" : __asm_proxy_VPROLVQ__, - "vprord" : __asm_proxy_VPRORD__, - "vprorq" : __asm_proxy_VPRORQ__, - "vprorvd" : __asm_proxy_VPRORVD__, - "vprorvq" : __asm_proxy_VPRORVQ__, - "vprotb" : __asm_proxy_VPROTB__, - "vprotd" : __asm_proxy_VPROTD__, - "vprotq" : __asm_proxy_VPROTQ__, - "vprotw" : __asm_proxy_VPROTW__, - "vpsadbw" : __asm_proxy_VPSADBW__, - "vpscatterdd" : __asm_proxy_VPSCATTERDD__, - "vpscatterdq" : __asm_proxy_VPSCATTERDQ__, - "vpscatterqd" : __asm_proxy_VPSCATTERQD__, - "vpscatterqq" : __asm_proxy_VPSCATTERQQ__, - "vpshab" : __asm_proxy_VPSHAB__, - "vpshad" : __asm_proxy_VPSHAD__, - "vpshaq" : __asm_proxy_VPSHAQ__, - "vpshaw" : __asm_proxy_VPSHAW__, - "vpshlb" : __asm_proxy_VPSHLB__, - "vpshld" : __asm_proxy_VPSHLD__, - "vpshlq" : __asm_proxy_VPSHLQ__, - "vpshlw" : __asm_proxy_VPSHLW__, - "vpshufb" : __asm_proxy_VPSHUFB__, - "vpshufd" : __asm_proxy_VPSHUFD__, - "vpshufhw" : __asm_proxy_VPSHUFHW__, - "vpshuflw" : __asm_proxy_VPSHUFLW__, - "vpsignb" : __asm_proxy_VPSIGNB__, - "vpsignd" : __asm_proxy_VPSIGND__, - "vpsignw" : __asm_proxy_VPSIGNW__, - "vpslld" : __asm_proxy_VPSLLD__, - "vpslldq" : __asm_proxy_VPSLLDQ__, - "vpsllq" : __asm_proxy_VPSLLQ__, - "vpsllvd" : __asm_proxy_VPSLLVD__, - "vpsllvq" : __asm_proxy_VPSLLVQ__, - "vpsllvw" : __asm_proxy_VPSLLVW__, - "vpsllw" : __asm_proxy_VPSLLW__, - "vpsrad" : __asm_proxy_VPSRAD__, - "vpsraq" : __asm_proxy_VPSRAQ__, - "vpsravd" : __asm_proxy_VPSRAVD__, - "vpsravq" : __asm_proxy_VPSRAVQ__, - "vpsravw" : __asm_proxy_VPSRAVW__, - "vpsraw" : __asm_proxy_VPSRAW__, - "vpsrld" : __asm_proxy_VPSRLD__, - "vpsrldq" : __asm_proxy_VPSRLDQ__, - "vpsrlq" : __asm_proxy_VPSRLQ__, - "vpsrlvd" : __asm_proxy_VPSRLVD__, - "vpsrlvq" : __asm_proxy_VPSRLVQ__, - "vpsrlvw" : __asm_proxy_VPSRLVW__, - "vpsrlw" : __asm_proxy_VPSRLW__, - "vpsubb" : __asm_proxy_VPSUBB__, - "vpsubd" : __asm_proxy_VPSUBD__, - "vpsubq" : __asm_proxy_VPSUBQ__, - "vpsubsb" : __asm_proxy_VPSUBSB__, - "vpsubsw" : __asm_proxy_VPSUBSW__, - "vpsubusb" : __asm_proxy_VPSUBUSB__, - "vpsubusw" : __asm_proxy_VPSUBUSW__, - "vpsubw" : __asm_proxy_VPSUBW__, - "vpternlogd" : __asm_proxy_VPTERNLOGD__, - "vpternlogq" : __asm_proxy_VPTERNLOGQ__, - "vptest" : __asm_proxy_VPTEST__, - "vptestmb" : __asm_proxy_VPTESTMB__, - "vptestmd" : __asm_proxy_VPTESTMD__, - "vptestmq" : __asm_proxy_VPTESTMQ__, - "vptestmw" : __asm_proxy_VPTESTMW__, - "vptestnmb" : __asm_proxy_VPTESTNMB__, - "vptestnmd" : __asm_proxy_VPTESTNMD__, - "vptestnmq" : __asm_proxy_VPTESTNMQ__, - "vptestnmw" : __asm_proxy_VPTESTNMW__, - "vpunpckhbw" : __asm_proxy_VPUNPCKHBW__, - "vpunpckhdq" : __asm_proxy_VPUNPCKHDQ__, - "vpunpckhqdq" : __asm_proxy_VPUNPCKHQDQ__, - "vpunpckhwd" : __asm_proxy_VPUNPCKHWD__, - "vpunpcklbw" : __asm_proxy_VPUNPCKLBW__, - "vpunpckldq" : __asm_proxy_VPUNPCKLDQ__, - "vpunpcklqdq" : __asm_proxy_VPUNPCKLQDQ__, - "vpunpcklwd" : __asm_proxy_VPUNPCKLWD__, - "vpxor" : __asm_proxy_VPXOR__, - "vpxord" : __asm_proxy_VPXORD__, - "vpxorq" : __asm_proxy_VPXORQ__, - "vrangepd" : __asm_proxy_VRANGEPD__, - "vrangeps" : __asm_proxy_VRANGEPS__, - "vrangesd" : __asm_proxy_VRANGESD__, - "vrangess" : __asm_proxy_VRANGESS__, - "vrcp14pd" : __asm_proxy_VRCP14PD__, - "vrcp14ps" : __asm_proxy_VRCP14PS__, - "vrcp14sd" : __asm_proxy_VRCP14SD__, - "vrcp14ss" : __asm_proxy_VRCP14SS__, - "vrcp28pd" : __asm_proxy_VRCP28PD__, - "vrcp28ps" : __asm_proxy_VRCP28PS__, - "vrcp28sd" : __asm_proxy_VRCP28SD__, - "vrcp28ss" : __asm_proxy_VRCP28SS__, - "vrcpps" : __asm_proxy_VRCPPS__, - "vrcpss" : __asm_proxy_VRCPSS__, - "vreducepd" : __asm_proxy_VREDUCEPD__, - "vreduceps" : __asm_proxy_VREDUCEPS__, - "vreducesd" : __asm_proxy_VREDUCESD__, - "vreducess" : __asm_proxy_VREDUCESS__, - "vrndscalepd" : __asm_proxy_VRNDSCALEPD__, - "vrndscaleps" : __asm_proxy_VRNDSCALEPS__, - "vrndscalesd" : __asm_proxy_VRNDSCALESD__, - "vrndscaless" : __asm_proxy_VRNDSCALESS__, - "vroundpd" : __asm_proxy_VROUNDPD__, - "vroundps" : __asm_proxy_VROUNDPS__, - "vroundsd" : __asm_proxy_VROUNDSD__, - "vroundss" : __asm_proxy_VROUNDSS__, - "vrsqrt14pd" : __asm_proxy_VRSQRT14PD__, - "vrsqrt14ps" : __asm_proxy_VRSQRT14PS__, - "vrsqrt14sd" : __asm_proxy_VRSQRT14SD__, - "vrsqrt14ss" : __asm_proxy_VRSQRT14SS__, - "vrsqrt28pd" : __asm_proxy_VRSQRT28PD__, - "vrsqrt28ps" : __asm_proxy_VRSQRT28PS__, - "vrsqrt28sd" : __asm_proxy_VRSQRT28SD__, - "vrsqrt28ss" : __asm_proxy_VRSQRT28SS__, - "vrsqrtps" : __asm_proxy_VRSQRTPS__, - "vrsqrtss" : __asm_proxy_VRSQRTSS__, - "vscalefpd" : __asm_proxy_VSCALEFPD__, - "vscalefps" : __asm_proxy_VSCALEFPS__, - "vscalefsd" : __asm_proxy_VSCALEFSD__, - "vscalefss" : __asm_proxy_VSCALEFSS__, - "vscatterdpd" : __asm_proxy_VSCATTERDPD__, - "vscatterdps" : __asm_proxy_VSCATTERDPS__, - "vscatterpf0dpd" : __asm_proxy_VSCATTERPF0DPD__, - "vscatterpf0dps" : __asm_proxy_VSCATTERPF0DPS__, - "vscatterpf0qpd" : __asm_proxy_VSCATTERPF0QPD__, - "vscatterpf0qps" : __asm_proxy_VSCATTERPF0QPS__, - "vscatterpf1dpd" : __asm_proxy_VSCATTERPF1DPD__, - "vscatterpf1dps" : __asm_proxy_VSCATTERPF1DPS__, - "vscatterpf1qpd" : __asm_proxy_VSCATTERPF1QPD__, - "vscatterpf1qps" : __asm_proxy_VSCATTERPF1QPS__, - "vscatterqpd" : __asm_proxy_VSCATTERQPD__, - "vscatterqps" : __asm_proxy_VSCATTERQPS__, - "vshuff32x4" : __asm_proxy_VSHUFF32X4__, - "vshuff64x2" : __asm_proxy_VSHUFF64X2__, - "vshufi32x4" : __asm_proxy_VSHUFI32X4__, - "vshufi64x2" : __asm_proxy_VSHUFI64X2__, - "vshufpd" : __asm_proxy_VSHUFPD__, - "vshufps" : __asm_proxy_VSHUFPS__, - "vsqrtpd" : __asm_proxy_VSQRTPD__, - "vsqrtps" : __asm_proxy_VSQRTPS__, - "vsqrtsd" : __asm_proxy_VSQRTSD__, - "vsqrtss" : __asm_proxy_VSQRTSS__, - "vstmxcsr" : __asm_proxy_VSTMXCSR__, - "vsubpd" : __asm_proxy_VSUBPD__, - "vsubps" : __asm_proxy_VSUBPS__, - "vsubsd" : __asm_proxy_VSUBSD__, - "vsubss" : __asm_proxy_VSUBSS__, - "vtestpd" : __asm_proxy_VTESTPD__, - "vtestps" : __asm_proxy_VTESTPS__, - "vucomisd" : __asm_proxy_VUCOMISD__, - "vucomiss" : __asm_proxy_VUCOMISS__, - "vunpckhpd" : __asm_proxy_VUNPCKHPD__, - "vunpckhps" : __asm_proxy_VUNPCKHPS__, - "vunpcklpd" : __asm_proxy_VUNPCKLPD__, - "vunpcklps" : __asm_proxy_VUNPCKLPS__, - "vxorpd" : __asm_proxy_VXORPD__, - "vxorps" : __asm_proxy_VXORPS__, - "vzeroall" : __asm_proxy_VZEROALL__, - "vzeroupper" : __asm_proxy_VZEROUPPER__, - "xaddb" : __asm_proxy_XADDB__, - "xaddl" : __asm_proxy_XADDL__, - "xaddq" : __asm_proxy_XADDQ__, - "xaddw" : __asm_proxy_XADDW__, - "xchgb" : __asm_proxy_XCHGB__, - "xchgl" : __asm_proxy_XCHGL__, - "xchgq" : __asm_proxy_XCHGQ__, - "xchgw" : __asm_proxy_XCHGW__, - "xgetbv" : __asm_proxy_XGETBV__, - "xlatb" : __asm_proxy_XLATB__, - "xorb" : __asm_proxy_XORB__, - "xorl" : __asm_proxy_XORL__, - "xorpd" : __asm_proxy_XORPD__, - "xorps" : __asm_proxy_XORPS__, - "xorq" : __asm_proxy_XORQ__, - "xorw" : __asm_proxy_XORW__, -} - -func __asm_proxy_ADCB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADCB(v[0], v[1]) - } else { - panic("instruction ADCB takes exactly 2 operands") - } -} - -func __asm_proxy_ADCL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADCL(v[0], v[1]) - } else { - panic("instruction ADCL takes exactly 2 operands") - } -} - -func __asm_proxy_ADCQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADCQ(v[0], v[1]) - } else { - panic("instruction ADCQ takes exactly 2 operands") - } -} - -func __asm_proxy_ADCW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADCW(v[0], v[1]) - } else { - panic("instruction ADCW takes exactly 2 operands") - } -} - -func __asm_proxy_ADCXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADCXL(v[0], v[1]) - } else { - panic("instruction ADCXL takes exactly 2 operands") - } -} - -func __asm_proxy_ADCXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADCXQ(v[0], v[1]) - } else { - panic("instruction ADCXQ takes exactly 2 operands") - } -} - -func __asm_proxy_ADDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDB(v[0], v[1]) - } else { - panic("instruction ADDB takes exactly 2 operands") - } -} - -func __asm_proxy_ADDL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDL(v[0], v[1]) - } else { - panic("instruction ADDL takes exactly 2 operands") - } -} - -func __asm_proxy_ADDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDPD(v[0], v[1]) - } else { - panic("instruction ADDPD takes exactly 2 operands") - } -} - -func __asm_proxy_ADDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDPS(v[0], v[1]) - } else { - panic("instruction ADDPS takes exactly 2 operands") - } -} - -func __asm_proxy_ADDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDQ(v[0], v[1]) - } else { - panic("instruction ADDQ takes exactly 2 operands") - } -} - -func __asm_proxy_ADDSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDSD(v[0], v[1]) - } else { - panic("instruction ADDSD takes exactly 2 operands") - } -} - -func __asm_proxy_ADDSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDSS(v[0], v[1]) - } else { - panic("instruction ADDSS takes exactly 2 operands") - } -} - -func __asm_proxy_ADDSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDSUBPD(v[0], v[1]) - } else { - panic("instruction ADDSUBPD takes exactly 2 operands") - } -} - -func __asm_proxy_ADDSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDSUBPS(v[0], v[1]) - } else { - panic("instruction ADDSUBPS takes exactly 2 operands") - } -} - -func __asm_proxy_ADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADDW(v[0], v[1]) - } else { - panic("instruction ADDW takes exactly 2 operands") - } -} - -func __asm_proxy_ADOXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADOXL(v[0], v[1]) - } else { - panic("instruction ADOXL takes exactly 2 operands") - } -} - -func __asm_proxy_ADOXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ADOXQ(v[0], v[1]) - } else { - panic("instruction ADOXQ takes exactly 2 operands") - } -} - -func __asm_proxy_AESDEC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.AESDEC(v[0], v[1]) - } else { - panic("instruction AESDEC takes exactly 2 operands") - } -} - -func __asm_proxy_AESDECLAST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.AESDECLAST(v[0], v[1]) - } else { - panic("instruction AESDECLAST takes exactly 2 operands") - } -} - -func __asm_proxy_AESENC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.AESENC(v[0], v[1]) - } else { - panic("instruction AESENC takes exactly 2 operands") - } -} - -func __asm_proxy_AESENCLAST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.AESENCLAST(v[0], v[1]) - } else { - panic("instruction AESENCLAST takes exactly 2 operands") - } -} - -func __asm_proxy_AESIMC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.AESIMC(v[0], v[1]) - } else { - panic("instruction AESIMC takes exactly 2 operands") - } -} - -func __asm_proxy_AESKEYGENASSIST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.AESKEYGENASSIST(v[0], v[1], v[2]) - } else { - panic("instruction AESKEYGENASSIST takes exactly 3 operands") - } -} - -func __asm_proxy_ANDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDB(v[0], v[1]) - } else { - panic("instruction ANDB takes exactly 2 operands") - } -} - -func __asm_proxy_ANDL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDL(v[0], v[1]) - } else { - panic("instruction ANDL takes exactly 2 operands") - } -} - -func __asm_proxy_ANDNL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.ANDNL(v[0], v[1], v[2]) - } else { - panic("instruction ANDNL takes exactly 3 operands") - } -} - -func __asm_proxy_ANDNPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDNPD(v[0], v[1]) - } else { - panic("instruction ANDNPD takes exactly 2 operands") - } -} - -func __asm_proxy_ANDNPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDNPS(v[0], v[1]) - } else { - panic("instruction ANDNPS takes exactly 2 operands") - } -} - -func __asm_proxy_ANDNQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.ANDNQ(v[0], v[1], v[2]) - } else { - panic("instruction ANDNQ takes exactly 3 operands") - } -} - -func __asm_proxy_ANDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDPD(v[0], v[1]) - } else { - panic("instruction ANDPD takes exactly 2 operands") - } -} - -func __asm_proxy_ANDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDPS(v[0], v[1]) - } else { - panic("instruction ANDPS takes exactly 2 operands") - } -} - -func __asm_proxy_ANDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDQ(v[0], v[1]) - } else { - panic("instruction ANDQ takes exactly 2 operands") - } -} - -func __asm_proxy_ANDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ANDW(v[0], v[1]) - } else { - panic("instruction ANDW takes exactly 2 operands") - } -} - -func __asm_proxy_BEXTR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.BEXTR(v[0], v[1], v[2]) - } else { - panic("instruction BEXTR takes exactly 3 operands") - } -} - -func __asm_proxy_BLCFILL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLCFILL(v[0], v[1]) - } else { - panic("instruction BLCFILL takes exactly 2 operands") - } -} - -func __asm_proxy_BLCI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLCI(v[0], v[1]) - } else { - panic("instruction BLCI takes exactly 2 operands") - } -} - -func __asm_proxy_BLCIC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLCIC(v[0], v[1]) - } else { - panic("instruction BLCIC takes exactly 2 operands") - } -} - -func __asm_proxy_BLCMSK__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLCMSK(v[0], v[1]) - } else { - panic("instruction BLCMSK takes exactly 2 operands") - } -} - -func __asm_proxy_BLCS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLCS(v[0], v[1]) - } else { - panic("instruction BLCS takes exactly 2 operands") - } -} - -func __asm_proxy_BLENDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.BLENDPD(v[0], v[1], v[2]) - } else { - panic("instruction BLENDPD takes exactly 3 operands") - } -} - -func __asm_proxy_BLENDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.BLENDPS(v[0], v[1], v[2]) - } else { - panic("instruction BLENDPS takes exactly 3 operands") - } -} - -func __asm_proxy_BLENDVPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.BLENDVPD(v[0], v[1], v[2]) - } else { - panic("instruction BLENDVPD takes exactly 3 operands") - } -} - -func __asm_proxy_BLENDVPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.BLENDVPS(v[0], v[1], v[2]) - } else { - panic("instruction BLENDVPS takes exactly 3 operands") - } -} - -func __asm_proxy_BLSFILL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLSFILL(v[0], v[1]) - } else { - panic("instruction BLSFILL takes exactly 2 operands") - } -} - -func __asm_proxy_BLSI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLSI(v[0], v[1]) - } else { - panic("instruction BLSI takes exactly 2 operands") - } -} - -func __asm_proxy_BLSIC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLSIC(v[0], v[1]) - } else { - panic("instruction BLSIC takes exactly 2 operands") - } -} - -func __asm_proxy_BLSMSK__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLSMSK(v[0], v[1]) - } else { - panic("instruction BLSMSK takes exactly 2 operands") - } -} - -func __asm_proxy_BLSR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BLSR(v[0], v[1]) - } else { - panic("instruction BLSR takes exactly 2 operands") - } -} - -func __asm_proxy_BSFL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BSFL(v[0], v[1]) - } else { - panic("instruction BSFL takes exactly 2 operands") - } -} - -func __asm_proxy_BSFQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BSFQ(v[0], v[1]) - } else { - panic("instruction BSFQ takes exactly 2 operands") - } -} - -func __asm_proxy_BSFW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BSFW(v[0], v[1]) - } else { - panic("instruction BSFW takes exactly 2 operands") - } -} - -func __asm_proxy_BSRL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BSRL(v[0], v[1]) - } else { - panic("instruction BSRL takes exactly 2 operands") - } -} - -func __asm_proxy_BSRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BSRQ(v[0], v[1]) - } else { - panic("instruction BSRQ takes exactly 2 operands") - } -} - -func __asm_proxy_BSRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BSRW(v[0], v[1]) - } else { - panic("instruction BSRW takes exactly 2 operands") - } -} - -func __asm_proxy_BSWAPL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.BSWAPL(v[0]) - } else { - panic("instruction BSWAPL takes exactly 1 operand") - } -} - -func __asm_proxy_BSWAPQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.BSWAPQ(v[0]) - } else { - panic("instruction BSWAPQ takes exactly 1 operand") - } -} - -func __asm_proxy_BTCL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTCL(v[0], v[1]) - } else { - panic("instruction BTCL takes exactly 2 operands") - } -} - -func __asm_proxy_BTCQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTCQ(v[0], v[1]) - } else { - panic("instruction BTCQ takes exactly 2 operands") - } -} - -func __asm_proxy_BTCW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTCW(v[0], v[1]) - } else { - panic("instruction BTCW takes exactly 2 operands") - } -} - -func __asm_proxy_BTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTL(v[0], v[1]) - } else { - panic("instruction BTL takes exactly 2 operands") - } -} - -func __asm_proxy_BTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTQ(v[0], v[1]) - } else { - panic("instruction BTQ takes exactly 2 operands") - } -} - -func __asm_proxy_BTRL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTRL(v[0], v[1]) - } else { - panic("instruction BTRL takes exactly 2 operands") - } -} - -func __asm_proxy_BTRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTRQ(v[0], v[1]) - } else { - panic("instruction BTRQ takes exactly 2 operands") - } -} - -func __asm_proxy_BTRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTRW(v[0], v[1]) - } else { - panic("instruction BTRW takes exactly 2 operands") - } -} - -func __asm_proxy_BTSL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTSL(v[0], v[1]) - } else { - panic("instruction BTSL takes exactly 2 operands") - } -} - -func __asm_proxy_BTSQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTSQ(v[0], v[1]) - } else { - panic("instruction BTSQ takes exactly 2 operands") - } -} - -func __asm_proxy_BTSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTSW(v[0], v[1]) - } else { - panic("instruction BTSW takes exactly 2 operands") - } -} - -func __asm_proxy_BTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.BTW(v[0], v[1]) - } else { - panic("instruction BTW takes exactly 2 operands") - } -} - -func __asm_proxy_BZHI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.BZHI(v[0], v[1], v[2]) - } else { - panic("instruction BZHI takes exactly 3 operands") - } -} - -func __asm_proxy_CALL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CALL(v[0]) - } else { - panic("instruction CALL takes exactly 1 operand") - } -} - -func __asm_proxy_CALLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CALLQ(v[0]) - } else { - panic("instruction CALLQ takes exactly 1 operand") - } -} - -func __asm_proxy_CBTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CBTW() - } else { - panic("instruction CBTW takes no operands") - } -} - -func __asm_proxy_CLC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CLC() - } else { - panic("instruction CLC takes no operands") - } -} - -func __asm_proxy_CLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CLD() - } else { - panic("instruction CLD takes no operands") - } -} - -func __asm_proxy_CLFLUSH__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CLFLUSH(v[0]) - } else { - panic("instruction CLFLUSH takes exactly 1 operand") - } -} - -func __asm_proxy_CLFLUSHOPT__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CLFLUSHOPT(v[0]) - } else { - panic("instruction CLFLUSHOPT takes exactly 1 operand") - } -} - -func __asm_proxy_CLTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CLTD() - } else { - panic("instruction CLTD takes no operands") - } -} - -func __asm_proxy_CLTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CLTQ() - } else { - panic("instruction CLTQ takes no operands") - } -} - -func __asm_proxy_CLWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CLWB(v[0]) - } else { - panic("instruction CLWB takes exactly 1 operand") - } -} - -func __asm_proxy_CLZERO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CLZERO() - } else { - panic("instruction CLZERO takes no operands") - } -} - -func __asm_proxy_CMC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CMC() - } else { - panic("instruction CMC takes no operands") - } -} - -func __asm_proxy_CMOVA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVA(v[0], v[1]) - } else { - panic("instruction CMOVA takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVAE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVAE(v[0], v[1]) - } else { - panic("instruction CMOVAE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVB(v[0], v[1]) - } else { - panic("instruction CMOVB takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVBE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVBE(v[0], v[1]) - } else { - panic("instruction CMOVBE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVC(v[0], v[1]) - } else { - panic("instruction CMOVC takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVE(v[0], v[1]) - } else { - panic("instruction CMOVE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVG__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVG(v[0], v[1]) - } else { - panic("instruction CMOVG takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVGE(v[0], v[1]) - } else { - panic("instruction CMOVGE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVL(v[0], v[1]) - } else { - panic("instruction CMOVL takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVLE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVLE(v[0], v[1]) - } else { - panic("instruction CMOVLE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNA(v[0], v[1]) - } else { - panic("instruction CMOVNA takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNAE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNAE(v[0], v[1]) - } else { - panic("instruction CMOVNAE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNB(v[0], v[1]) - } else { - panic("instruction CMOVNB takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNBE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNBE(v[0], v[1]) - } else { - panic("instruction CMOVNBE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNC(v[0], v[1]) - } else { - panic("instruction CMOVNC takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNE(v[0], v[1]) - } else { - panic("instruction CMOVNE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNG__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNG(v[0], v[1]) - } else { - panic("instruction CMOVNG takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNGE(v[0], v[1]) - } else { - panic("instruction CMOVNGE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNL(v[0], v[1]) - } else { - panic("instruction CMOVNL takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNLE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNLE(v[0], v[1]) - } else { - panic("instruction CMOVNLE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNO(v[0], v[1]) - } else { - panic("instruction CMOVNO takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNP(v[0], v[1]) - } else { - panic("instruction CMOVNP takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNS(v[0], v[1]) - } else { - panic("instruction CMOVNS takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVNZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVNZ(v[0], v[1]) - } else { - panic("instruction CMOVNZ takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVO(v[0], v[1]) - } else { - panic("instruction CMOVO takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVP(v[0], v[1]) - } else { - panic("instruction CMOVP takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVPE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVPE(v[0], v[1]) - } else { - panic("instruction CMOVPE takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVPO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVPO(v[0], v[1]) - } else { - panic("instruction CMOVPO takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVS(v[0], v[1]) - } else { - panic("instruction CMOVS takes exactly 2 operands") - } -} - -func __asm_proxy_CMOVZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMOVZ(v[0], v[1]) - } else { - panic("instruction CMOVZ takes exactly 2 operands") - } -} - -func __asm_proxy_CMPB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPB(v[0], v[1]) - } else { - panic("instruction CMPB takes exactly 2 operands") - } -} - -func __asm_proxy_CMPL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPL(v[0], v[1]) - } else { - panic("instruction CMPL takes exactly 2 operands") - } -} - -func __asm_proxy_CMPPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.CMPPD(v[0], v[1], v[2]) - } else { - panic("instruction CMPPD takes exactly 3 operands") - } -} - -func __asm_proxy_CMPPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.CMPPS(v[0], v[1], v[2]) - } else { - panic("instruction CMPPS takes exactly 3 operands") - } -} - -func __asm_proxy_CMPQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPQ(v[0], v[1]) - } else { - panic("instruction CMPQ takes exactly 2 operands") - } -} - -func __asm_proxy_CMPSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.CMPSD(v[0], v[1], v[2]) - } else { - panic("instruction CMPSD takes exactly 3 operands") - } -} - -func __asm_proxy_CMPSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.CMPSS(v[0], v[1], v[2]) - } else { - panic("instruction CMPSS takes exactly 3 operands") - } -} - -func __asm_proxy_CMPW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPW(v[0], v[1]) - } else { - panic("instruction CMPW takes exactly 2 operands") - } -} - -func __asm_proxy_CMPXCHG16B__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CMPXCHG16B(v[0]) - } else { - panic("instruction CMPXCHG16B takes exactly 1 operand") - } -} - -func __asm_proxy_CMPXCHG8B__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.CMPXCHG8B(v[0]) - } else { - panic("instruction CMPXCHG8B takes exactly 1 operand") - } -} - -func __asm_proxy_CMPXCHGB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPXCHGB(v[0], v[1]) - } else { - panic("instruction CMPXCHGB takes exactly 2 operands") - } -} - -func __asm_proxy_CMPXCHGL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPXCHGL(v[0], v[1]) - } else { - panic("instruction CMPXCHGL takes exactly 2 operands") - } -} - -func __asm_proxy_CMPXCHGQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPXCHGQ(v[0], v[1]) - } else { - panic("instruction CMPXCHGQ takes exactly 2 operands") - } -} - -func __asm_proxy_CMPXCHGW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CMPXCHGW(v[0], v[1]) - } else { - panic("instruction CMPXCHGW takes exactly 2 operands") - } -} - -func __asm_proxy_COMISD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.COMISD(v[0], v[1]) - } else { - panic("instruction COMISD takes exactly 2 operands") - } -} - -func __asm_proxy_COMISS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.COMISS(v[0], v[1]) - } else { - panic("instruction COMISS takes exactly 2 operands") - } -} - -func __asm_proxy_CPUID__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CPUID() - } else { - panic("instruction CPUID takes no operands") - } -} - -func __asm_proxy_CQTO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CQTO() - } else { - panic("instruction CQTO takes no operands") - } -} - -func __asm_proxy_CRC32B__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CRC32B(v[0], v[1]) - } else { - panic("instruction CRC32B takes exactly 2 operands") - } -} - -func __asm_proxy_CRC32L__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CRC32L(v[0], v[1]) - } else { - panic("instruction CRC32L takes exactly 2 operands") - } -} - -func __asm_proxy_CRC32Q__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CRC32Q(v[0], v[1]) - } else { - panic("instruction CRC32Q takes exactly 2 operands") - } -} - -func __asm_proxy_CRC32W__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CRC32W(v[0], v[1]) - } else { - panic("instruction CRC32W takes exactly 2 operands") - } -} - -func __asm_proxy_CVTDQ2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTDQ2PD(v[0], v[1]) - } else { - panic("instruction CVTDQ2PD takes exactly 2 operands") - } -} - -func __asm_proxy_CVTDQ2PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTDQ2PS(v[0], v[1]) - } else { - panic("instruction CVTDQ2PS takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPD2DQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPD2DQ(v[0], v[1]) - } else { - panic("instruction CVTPD2DQ takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPD2PI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPD2PI(v[0], v[1]) - } else { - panic("instruction CVTPD2PI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPD2PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPD2PS(v[0], v[1]) - } else { - panic("instruction CVTPD2PS takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPI2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPI2PD(v[0], v[1]) - } else { - panic("instruction CVTPI2PD takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPI2PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPI2PS(v[0], v[1]) - } else { - panic("instruction CVTPI2PS takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPS2DQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPS2DQ(v[0], v[1]) - } else { - panic("instruction CVTPS2DQ takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPS2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPS2PD(v[0], v[1]) - } else { - panic("instruction CVTPS2PD takes exactly 2 operands") - } -} - -func __asm_proxy_CVTPS2PI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTPS2PI(v[0], v[1]) - } else { - panic("instruction CVTPS2PI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTSD2SI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTSD2SI(v[0], v[1]) - } else { - panic("instruction CVTSD2SI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTSD2SS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTSD2SS(v[0], v[1]) - } else { - panic("instruction CVTSD2SS takes exactly 2 operands") - } -} - -func __asm_proxy_CVTSI2SD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTSI2SD(v[0], v[1]) - } else { - panic("instruction CVTSI2SD takes exactly 2 operands") - } -} - -func __asm_proxy_CVTSI2SS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTSI2SS(v[0], v[1]) - } else { - panic("instruction CVTSI2SS takes exactly 2 operands") - } -} - -func __asm_proxy_CVTSS2SD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTSS2SD(v[0], v[1]) - } else { - panic("instruction CVTSS2SD takes exactly 2 operands") - } -} - -func __asm_proxy_CVTSS2SI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTSS2SI(v[0], v[1]) - } else { - panic("instruction CVTSS2SI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTTPD2DQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTTPD2DQ(v[0], v[1]) - } else { - panic("instruction CVTTPD2DQ takes exactly 2 operands") - } -} - -func __asm_proxy_CVTTPD2PI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTTPD2PI(v[0], v[1]) - } else { - panic("instruction CVTTPD2PI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTTPS2DQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTTPS2DQ(v[0], v[1]) - } else { - panic("instruction CVTTPS2DQ takes exactly 2 operands") - } -} - -func __asm_proxy_CVTTPS2PI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTTPS2PI(v[0], v[1]) - } else { - panic("instruction CVTTPS2PI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTTSD2SI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTTSD2SI(v[0], v[1]) - } else { - panic("instruction CVTTSD2SI takes exactly 2 operands") - } -} - -func __asm_proxy_CVTTSS2SI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.CVTTSS2SI(v[0], v[1]) - } else { - panic("instruction CVTTSS2SI takes exactly 2 operands") - } -} - -func __asm_proxy_CWTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CWTD() - } else { - panic("instruction CWTD takes no operands") - } -} - -func __asm_proxy_CWTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.CWTL() - } else { - panic("instruction CWTL takes no operands") - } -} - -func __asm_proxy_DECB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DECB(v[0]) - } else { - panic("instruction DECB takes exactly 1 operand") - } -} - -func __asm_proxy_DECL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DECL(v[0]) - } else { - panic("instruction DECL takes exactly 1 operand") - } -} - -func __asm_proxy_DECQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DECQ(v[0]) - } else { - panic("instruction DECQ takes exactly 1 operand") - } -} - -func __asm_proxy_DECW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DECW(v[0]) - } else { - panic("instruction DECW takes exactly 1 operand") - } -} - -func __asm_proxy_DIVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DIVB(v[0]) - } else { - panic("instruction DIVB takes exactly 1 operand") - } -} - -func __asm_proxy_DIVL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DIVL(v[0]) - } else { - panic("instruction DIVL takes exactly 1 operand") - } -} - -func __asm_proxy_DIVPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.DIVPD(v[0], v[1]) - } else { - panic("instruction DIVPD takes exactly 2 operands") - } -} - -func __asm_proxy_DIVPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.DIVPS(v[0], v[1]) - } else { - panic("instruction DIVPS takes exactly 2 operands") - } -} - -func __asm_proxy_DIVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DIVQ(v[0]) - } else { - panic("instruction DIVQ takes exactly 1 operand") - } -} - -func __asm_proxy_DIVSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.DIVSD(v[0], v[1]) - } else { - panic("instruction DIVSD takes exactly 2 operands") - } -} - -func __asm_proxy_DIVSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.DIVSS(v[0], v[1]) - } else { - panic("instruction DIVSS takes exactly 2 operands") - } -} - -func __asm_proxy_DIVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.DIVW(v[0]) - } else { - panic("instruction DIVW takes exactly 1 operand") - } -} - -func __asm_proxy_DPPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.DPPD(v[0], v[1], v[2]) - } else { - panic("instruction DPPD takes exactly 3 operands") - } -} - -func __asm_proxy_DPPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.DPPS(v[0], v[1], v[2]) - } else { - panic("instruction DPPS takes exactly 3 operands") - } -} - -func __asm_proxy_EMMS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.EMMS() - } else { - panic("instruction EMMS takes no operands") - } -} - -func __asm_proxy_EXTRACTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.EXTRACTPS(v[0], v[1], v[2]) - } else { - panic("instruction EXTRACTPS takes exactly 3 operands") - } -} - -func __asm_proxy_EXTRQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.EXTRQ(v[0], v[1]) - case 3 : return p.EXTRQ(v[0], v[1], v[2]) - default : panic("instruction EXTRQ takes 2 or 3 operands") - } -} - -func __asm_proxy_FEMMS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.FEMMS() - } else { - panic("instruction FEMMS takes no operands") - } -} - -func __asm_proxy_HADDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.HADDPD(v[0], v[1]) - } else { - panic("instruction HADDPD takes exactly 2 operands") - } -} - -func __asm_proxy_HADDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.HADDPS(v[0], v[1]) - } else { - panic("instruction HADDPS takes exactly 2 operands") - } -} - -func __asm_proxy_HSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.HSUBPD(v[0], v[1]) - } else { - panic("instruction HSUBPD takes exactly 2 operands") - } -} - -func __asm_proxy_HSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.HSUBPS(v[0], v[1]) - } else { - panic("instruction HSUBPS takes exactly 2 operands") - } -} - -func __asm_proxy_IDIVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.IDIVB(v[0]) - } else { - panic("instruction IDIVB takes exactly 1 operand") - } -} - -func __asm_proxy_IDIVL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.IDIVL(v[0]) - } else { - panic("instruction IDIVL takes exactly 1 operand") - } -} - -func __asm_proxy_IDIVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.IDIVQ(v[0]) - } else { - panic("instruction IDIVQ takes exactly 1 operand") - } -} - -func __asm_proxy_IDIVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.IDIVW(v[0]) - } else { - panic("instruction IDIVW takes exactly 1 operand") - } -} - -func __asm_proxy_IMULB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.IMULB(v[0]) - } else { - panic("instruction IMULB takes exactly 1 operand") - } -} - -func __asm_proxy_IMULL__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 1 : return p.IMULL(v[0]) - case 2 : return p.IMULL(v[0], v[1]) - case 3 : return p.IMULL(v[0], v[1], v[2]) - default : panic("instruction IMULL takes 1 or 2 or 3 operands") - } -} - -func __asm_proxy_IMULQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 1 : return p.IMULQ(v[0]) - case 2 : return p.IMULQ(v[0], v[1]) - case 3 : return p.IMULQ(v[0], v[1], v[2]) - default : panic("instruction IMULQ takes 1 or 2 or 3 operands") - } -} - -func __asm_proxy_IMULW__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 1 : return p.IMULW(v[0]) - case 2 : return p.IMULW(v[0], v[1]) - case 3 : return p.IMULW(v[0], v[1], v[2]) - default : panic("instruction IMULW takes 1 or 2 or 3 operands") - } -} - -func __asm_proxy_INCB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.INCB(v[0]) - } else { - panic("instruction INCB takes exactly 1 operand") - } -} - -func __asm_proxy_INCL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.INCL(v[0]) - } else { - panic("instruction INCL takes exactly 1 operand") - } -} - -func __asm_proxy_INCQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.INCQ(v[0]) - } else { - panic("instruction INCQ takes exactly 1 operand") - } -} - -func __asm_proxy_INCW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.INCW(v[0]) - } else { - panic("instruction INCW takes exactly 1 operand") - } -} - -func __asm_proxy_INSERTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.INSERTPS(v[0], v[1], v[2]) - } else { - panic("instruction INSERTPS takes exactly 3 operands") - } -} - -func __asm_proxy_INSERTQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.INSERTQ(v[0], v[1]) - case 4 : return p.INSERTQ(v[0], v[1], v[2], v[3]) - default : panic("instruction INSERTQ takes 2 or 4 operands") - } -} - -func __asm_proxy_INT__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.INT(v[0]) - } else { - panic("instruction INT takes exactly 1 operand") - } -} - -func __asm_proxy_JA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JA(v[0]) - } else { - panic("instruction JA takes exactly 1 operand") - } -} - -func __asm_proxy_JAE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JAE(v[0]) - } else { - panic("instruction JAE takes exactly 1 operand") - } -} - -func __asm_proxy_JB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JB(v[0]) - } else { - panic("instruction JB takes exactly 1 operand") - } -} - -func __asm_proxy_JBE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JBE(v[0]) - } else { - panic("instruction JBE takes exactly 1 operand") - } -} - -func __asm_proxy_JC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JC(v[0]) - } else { - panic("instruction JC takes exactly 1 operand") - } -} - -func __asm_proxy_JE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JE(v[0]) - } else { - panic("instruction JE takes exactly 1 operand") - } -} - -func __asm_proxy_JECXZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JECXZ(v[0]) - } else { - panic("instruction JECXZ takes exactly 1 operand") - } -} - -func __asm_proxy_JG__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JG(v[0]) - } else { - panic("instruction JG takes exactly 1 operand") - } -} - -func __asm_proxy_JGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JGE(v[0]) - } else { - panic("instruction JGE takes exactly 1 operand") - } -} - -func __asm_proxy_JL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JL(v[0]) - } else { - panic("instruction JL takes exactly 1 operand") - } -} - -func __asm_proxy_JLE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JLE(v[0]) - } else { - panic("instruction JLE takes exactly 1 operand") - } -} - -func __asm_proxy_JMP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JMP(v[0]) - } else { - panic("instruction JMP takes exactly 1 operand") - } -} - -func __asm_proxy_JMPQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JMPQ(v[0]) - } else { - panic("instruction JMPQ takes exactly 1 operand") - } -} - -func __asm_proxy_JNA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNA(v[0]) - } else { - panic("instruction JNA takes exactly 1 operand") - } -} - -func __asm_proxy_JNAE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNAE(v[0]) - } else { - panic("instruction JNAE takes exactly 1 operand") - } -} - -func __asm_proxy_JNB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNB(v[0]) - } else { - panic("instruction JNB takes exactly 1 operand") - } -} - -func __asm_proxy_JNBE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNBE(v[0]) - } else { - panic("instruction JNBE takes exactly 1 operand") - } -} - -func __asm_proxy_JNC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNC(v[0]) - } else { - panic("instruction JNC takes exactly 1 operand") - } -} - -func __asm_proxy_JNE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNE(v[0]) - } else { - panic("instruction JNE takes exactly 1 operand") - } -} - -func __asm_proxy_JNG__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNG(v[0]) - } else { - panic("instruction JNG takes exactly 1 operand") - } -} - -func __asm_proxy_JNGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNGE(v[0]) - } else { - panic("instruction JNGE takes exactly 1 operand") - } -} - -func __asm_proxy_JNL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNL(v[0]) - } else { - panic("instruction JNL takes exactly 1 operand") - } -} - -func __asm_proxy_JNLE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNLE(v[0]) - } else { - panic("instruction JNLE takes exactly 1 operand") - } -} - -func __asm_proxy_JNO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNO(v[0]) - } else { - panic("instruction JNO takes exactly 1 operand") - } -} - -func __asm_proxy_JNP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNP(v[0]) - } else { - panic("instruction JNP takes exactly 1 operand") - } -} - -func __asm_proxy_JNS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNS(v[0]) - } else { - panic("instruction JNS takes exactly 1 operand") - } -} - -func __asm_proxy_JNZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JNZ(v[0]) - } else { - panic("instruction JNZ takes exactly 1 operand") - } -} - -func __asm_proxy_JO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JO(v[0]) - } else { - panic("instruction JO takes exactly 1 operand") - } -} - -func __asm_proxy_JP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JP(v[0]) - } else { - panic("instruction JP takes exactly 1 operand") - } -} - -func __asm_proxy_JPE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JPE(v[0]) - } else { - panic("instruction JPE takes exactly 1 operand") - } -} - -func __asm_proxy_JPO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JPO(v[0]) - } else { - panic("instruction JPO takes exactly 1 operand") - } -} - -func __asm_proxy_JRCXZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JRCXZ(v[0]) - } else { - panic("instruction JRCXZ takes exactly 1 operand") - } -} - -func __asm_proxy_JS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JS(v[0]) - } else { - panic("instruction JS takes exactly 1 operand") - } -} - -func __asm_proxy_JZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.JZ(v[0]) - } else { - panic("instruction JZ takes exactly 1 operand") - } -} - -func __asm_proxy_KADDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KADDB(v[0], v[1], v[2]) - } else { - panic("instruction KADDB takes exactly 3 operands") - } -} - -func __asm_proxy_KADDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KADDD(v[0], v[1], v[2]) - } else { - panic("instruction KADDD takes exactly 3 operands") - } -} - -func __asm_proxy_KADDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KADDQ(v[0], v[1], v[2]) - } else { - panic("instruction KADDQ takes exactly 3 operands") - } -} - -func __asm_proxy_KADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KADDW(v[0], v[1], v[2]) - } else { - panic("instruction KADDW takes exactly 3 operands") - } -} - -func __asm_proxy_KANDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDB(v[0], v[1], v[2]) - } else { - panic("instruction KANDB takes exactly 3 operands") - } -} - -func __asm_proxy_KANDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDD(v[0], v[1], v[2]) - } else { - panic("instruction KANDD takes exactly 3 operands") - } -} - -func __asm_proxy_KANDNB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDNB(v[0], v[1], v[2]) - } else { - panic("instruction KANDNB takes exactly 3 operands") - } -} - -func __asm_proxy_KANDND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDND(v[0], v[1], v[2]) - } else { - panic("instruction KANDND takes exactly 3 operands") - } -} - -func __asm_proxy_KANDNQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDNQ(v[0], v[1], v[2]) - } else { - panic("instruction KANDNQ takes exactly 3 operands") - } -} - -func __asm_proxy_KANDNW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDNW(v[0], v[1], v[2]) - } else { - panic("instruction KANDNW takes exactly 3 operands") - } -} - -func __asm_proxy_KANDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDQ(v[0], v[1], v[2]) - } else { - panic("instruction KANDQ takes exactly 3 operands") - } -} - -func __asm_proxy_KANDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KANDW(v[0], v[1], v[2]) - } else { - panic("instruction KANDW takes exactly 3 operands") - } -} - -func __asm_proxy_KMOVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KMOVB(v[0], v[1]) - } else { - panic("instruction KMOVB takes exactly 2 operands") - } -} - -func __asm_proxy_KMOVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KMOVD(v[0], v[1]) - } else { - panic("instruction KMOVD takes exactly 2 operands") - } -} - -func __asm_proxy_KMOVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KMOVQ(v[0], v[1]) - } else { - panic("instruction KMOVQ takes exactly 2 operands") - } -} - -func __asm_proxy_KMOVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KMOVW(v[0], v[1]) - } else { - panic("instruction KMOVW takes exactly 2 operands") - } -} - -func __asm_proxy_KNOTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KNOTB(v[0], v[1]) - } else { - panic("instruction KNOTB takes exactly 2 operands") - } -} - -func __asm_proxy_KNOTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KNOTD(v[0], v[1]) - } else { - panic("instruction KNOTD takes exactly 2 operands") - } -} - -func __asm_proxy_KNOTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KNOTQ(v[0], v[1]) - } else { - panic("instruction KNOTQ takes exactly 2 operands") - } -} - -func __asm_proxy_KNOTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KNOTW(v[0], v[1]) - } else { - panic("instruction KNOTW takes exactly 2 operands") - } -} - -func __asm_proxy_KORB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KORB(v[0], v[1], v[2]) - } else { - panic("instruction KORB takes exactly 3 operands") - } -} - -func __asm_proxy_KORD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KORD(v[0], v[1], v[2]) - } else { - panic("instruction KORD takes exactly 3 operands") - } -} - -func __asm_proxy_KORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KORQ(v[0], v[1], v[2]) - } else { - panic("instruction KORQ takes exactly 3 operands") - } -} - -func __asm_proxy_KORTESTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KORTESTB(v[0], v[1]) - } else { - panic("instruction KORTESTB takes exactly 2 operands") - } -} - -func __asm_proxy_KORTESTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KORTESTD(v[0], v[1]) - } else { - panic("instruction KORTESTD takes exactly 2 operands") - } -} - -func __asm_proxy_KORTESTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KORTESTQ(v[0], v[1]) - } else { - panic("instruction KORTESTQ takes exactly 2 operands") - } -} - -func __asm_proxy_KORTESTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KORTESTW(v[0], v[1]) - } else { - panic("instruction KORTESTW takes exactly 2 operands") - } -} - -func __asm_proxy_KORW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KORW(v[0], v[1], v[2]) - } else { - panic("instruction KORW takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTLB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTLB(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTLB takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTLD(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTLD takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTLQ(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTLQ takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTLW(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTLW takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTRB(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTRB takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTRD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTRD(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTRD takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTRQ(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTRQ takes exactly 3 operands") - } -} - -func __asm_proxy_KSHIFTRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KSHIFTRW(v[0], v[1], v[2]) - } else { - panic("instruction KSHIFTRW takes exactly 3 operands") - } -} - -func __asm_proxy_KTESTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KTESTB(v[0], v[1]) - } else { - panic("instruction KTESTB takes exactly 2 operands") - } -} - -func __asm_proxy_KTESTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KTESTD(v[0], v[1]) - } else { - panic("instruction KTESTD takes exactly 2 operands") - } -} - -func __asm_proxy_KTESTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KTESTQ(v[0], v[1]) - } else { - panic("instruction KTESTQ takes exactly 2 operands") - } -} - -func __asm_proxy_KTESTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.KTESTW(v[0], v[1]) - } else { - panic("instruction KTESTW takes exactly 2 operands") - } -} - -func __asm_proxy_KUNPCKBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KUNPCKBW(v[0], v[1], v[2]) - } else { - panic("instruction KUNPCKBW takes exactly 3 operands") - } -} - -func __asm_proxy_KUNPCKDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KUNPCKDQ(v[0], v[1], v[2]) - } else { - panic("instruction KUNPCKDQ takes exactly 3 operands") - } -} - -func __asm_proxy_KUNPCKWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KUNPCKWD(v[0], v[1], v[2]) - } else { - panic("instruction KUNPCKWD takes exactly 3 operands") - } -} - -func __asm_proxy_KXNORB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXNORB(v[0], v[1], v[2]) - } else { - panic("instruction KXNORB takes exactly 3 operands") - } -} - -func __asm_proxy_KXNORD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXNORD(v[0], v[1], v[2]) - } else { - panic("instruction KXNORD takes exactly 3 operands") - } -} - -func __asm_proxy_KXNORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXNORQ(v[0], v[1], v[2]) - } else { - panic("instruction KXNORQ takes exactly 3 operands") - } -} - -func __asm_proxy_KXNORW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXNORW(v[0], v[1], v[2]) - } else { - panic("instruction KXNORW takes exactly 3 operands") - } -} - -func __asm_proxy_KXORB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXORB(v[0], v[1], v[2]) - } else { - panic("instruction KXORB takes exactly 3 operands") - } -} - -func __asm_proxy_KXORD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXORD(v[0], v[1], v[2]) - } else { - panic("instruction KXORD takes exactly 3 operands") - } -} - -func __asm_proxy_KXORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXORQ(v[0], v[1], v[2]) - } else { - panic("instruction KXORQ takes exactly 3 operands") - } -} - -func __asm_proxy_KXORW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.KXORW(v[0], v[1], v[2]) - } else { - panic("instruction KXORW takes exactly 3 operands") - } -} - -func __asm_proxy_LDDQU__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LDDQU(v[0], v[1]) - } else { - panic("instruction LDDQU takes exactly 2 operands") - } -} - -func __asm_proxy_LDMXCSR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.LDMXCSR(v[0]) - } else { - panic("instruction LDMXCSR takes exactly 1 operand") - } -} - -func __asm_proxy_LEAL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LEAL(v[0], v[1]) - } else { - panic("instruction LEAL takes exactly 2 operands") - } -} - -func __asm_proxy_LEAQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LEAQ(v[0], v[1]) - } else { - panic("instruction LEAQ takes exactly 2 operands") - } -} - -func __asm_proxy_LEAW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LEAW(v[0], v[1]) - } else { - panic("instruction LEAW takes exactly 2 operands") - } -} - -func __asm_proxy_LFENCE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.LFENCE() - } else { - panic("instruction LFENCE takes no operands") - } -} - -func __asm_proxy_LZCNTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LZCNTL(v[0], v[1]) - } else { - panic("instruction LZCNTL takes exactly 2 operands") - } -} - -func __asm_proxy_LZCNTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LZCNTQ(v[0], v[1]) - } else { - panic("instruction LZCNTQ takes exactly 2 operands") - } -} - -func __asm_proxy_LZCNTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.LZCNTW(v[0], v[1]) - } else { - panic("instruction LZCNTW takes exactly 2 operands") - } -} - -func __asm_proxy_MASKMOVDQU__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MASKMOVDQU(v[0], v[1]) - } else { - panic("instruction MASKMOVDQU takes exactly 2 operands") - } -} - -func __asm_proxy_MASKMOVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MASKMOVQ(v[0], v[1]) - } else { - panic("instruction MASKMOVQ takes exactly 2 operands") - } -} - -func __asm_proxy_MAXPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MAXPD(v[0], v[1]) - } else { - panic("instruction MAXPD takes exactly 2 operands") - } -} - -func __asm_proxy_MAXPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MAXPS(v[0], v[1]) - } else { - panic("instruction MAXPS takes exactly 2 operands") - } -} - -func __asm_proxy_MAXSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MAXSD(v[0], v[1]) - } else { - panic("instruction MAXSD takes exactly 2 operands") - } -} - -func __asm_proxy_MAXSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MAXSS(v[0], v[1]) - } else { - panic("instruction MAXSS takes exactly 2 operands") - } -} - -func __asm_proxy_MFENCE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.MFENCE() - } else { - panic("instruction MFENCE takes no operands") - } -} - -func __asm_proxy_MINPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MINPD(v[0], v[1]) - } else { - panic("instruction MINPD takes exactly 2 operands") - } -} - -func __asm_proxy_MINPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MINPS(v[0], v[1]) - } else { - panic("instruction MINPS takes exactly 2 operands") - } -} - -func __asm_proxy_MINSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MINSD(v[0], v[1]) - } else { - panic("instruction MINSD takes exactly 2 operands") - } -} - -func __asm_proxy_MINSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MINSS(v[0], v[1]) - } else { - panic("instruction MINSS takes exactly 2 operands") - } -} - -func __asm_proxy_MONITOR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.MONITOR() - } else { - panic("instruction MONITOR takes no operands") - } -} - -func __asm_proxy_MONITORX__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.MONITORX() - } else { - panic("instruction MONITORX takes no operands") - } -} - -func __asm_proxy_MOVAPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVAPD(v[0], v[1]) - } else { - panic("instruction MOVAPD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVAPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVAPS(v[0], v[1]) - } else { - panic("instruction MOVAPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVB(v[0], v[1]) - } else { - panic("instruction MOVB takes exactly 2 operands") - } -} - -func __asm_proxy_MOVBEL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVBEL(v[0], v[1]) - } else { - panic("instruction MOVBEL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVBEQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVBEQ(v[0], v[1]) - } else { - panic("instruction MOVBEQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVBEW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVBEW(v[0], v[1]) - } else { - panic("instruction MOVBEW takes exactly 2 operands") - } -} - -func __asm_proxy_MOVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVD(v[0], v[1]) - } else { - panic("instruction MOVD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVDDUP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVDDUP(v[0], v[1]) - } else { - panic("instruction MOVDDUP takes exactly 2 operands") - } -} - -func __asm_proxy_MOVDQ2Q__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVDQ2Q(v[0], v[1]) - } else { - panic("instruction MOVDQ2Q takes exactly 2 operands") - } -} - -func __asm_proxy_MOVDQA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVDQA(v[0], v[1]) - } else { - panic("instruction MOVDQA takes exactly 2 operands") - } -} - -func __asm_proxy_MOVDQU__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVDQU(v[0], v[1]) - } else { - panic("instruction MOVDQU takes exactly 2 operands") - } -} - -func __asm_proxy_MOVHLPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVHLPS(v[0], v[1]) - } else { - panic("instruction MOVHLPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVHPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVHPD(v[0], v[1]) - } else { - panic("instruction MOVHPD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVHPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVHPS(v[0], v[1]) - } else { - panic("instruction MOVHPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVL(v[0], v[1]) - } else { - panic("instruction MOVL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVLHPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVLHPS(v[0], v[1]) - } else { - panic("instruction MOVLHPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVLPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVLPD(v[0], v[1]) - } else { - panic("instruction MOVLPD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVLPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVLPS(v[0], v[1]) - } else { - panic("instruction MOVLPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVMSKPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVMSKPD(v[0], v[1]) - } else { - panic("instruction MOVMSKPD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVMSKPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVMSKPS(v[0], v[1]) - } else { - panic("instruction MOVMSKPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTDQ(v[0], v[1]) - } else { - panic("instruction MOVNTDQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTDQA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTDQA(v[0], v[1]) - } else { - panic("instruction MOVNTDQA takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTIL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTIL(v[0], v[1]) - } else { - panic("instruction MOVNTIL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTIQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTIQ(v[0], v[1]) - } else { - panic("instruction MOVNTIQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTPD(v[0], v[1]) - } else { - panic("instruction MOVNTPD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTPS(v[0], v[1]) - } else { - panic("instruction MOVNTPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTQ(v[0], v[1]) - } else { - panic("instruction MOVNTQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTSD(v[0], v[1]) - } else { - panic("instruction MOVNTSD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVNTSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVNTSS(v[0], v[1]) - } else { - panic("instruction MOVNTSS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVQ(v[0], v[1]) - } else { - panic("instruction MOVQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVQ2DQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVQ2DQ(v[0], v[1]) - } else { - panic("instruction MOVQ2DQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSBL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSBL(v[0], v[1]) - } else { - panic("instruction MOVSBL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSBQ(v[0], v[1]) - } else { - panic("instruction MOVSBQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSBW(v[0], v[1]) - } else { - panic("instruction MOVSBW takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSD(v[0], v[1]) - } else { - panic("instruction MOVSD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSHDUP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSHDUP(v[0], v[1]) - } else { - panic("instruction MOVSHDUP takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSLDUP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSLDUP(v[0], v[1]) - } else { - panic("instruction MOVSLDUP takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSLQ(v[0], v[1]) - } else { - panic("instruction MOVSLQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSS(v[0], v[1]) - } else { - panic("instruction MOVSS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSWL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSWL(v[0], v[1]) - } else { - panic("instruction MOVSWL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVSWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVSWQ(v[0], v[1]) - } else { - panic("instruction MOVSWQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVUPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVUPD(v[0], v[1]) - } else { - panic("instruction MOVUPD takes exactly 2 operands") - } -} - -func __asm_proxy_MOVUPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVUPS(v[0], v[1]) - } else { - panic("instruction MOVUPS takes exactly 2 operands") - } -} - -func __asm_proxy_MOVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVW(v[0], v[1]) - } else { - panic("instruction MOVW takes exactly 2 operands") - } -} - -func __asm_proxy_MOVZBL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVZBL(v[0], v[1]) - } else { - panic("instruction MOVZBL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVZBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVZBQ(v[0], v[1]) - } else { - panic("instruction MOVZBQ takes exactly 2 operands") - } -} - -func __asm_proxy_MOVZBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVZBW(v[0], v[1]) - } else { - panic("instruction MOVZBW takes exactly 2 operands") - } -} - -func __asm_proxy_MOVZWL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVZWL(v[0], v[1]) - } else { - panic("instruction MOVZWL takes exactly 2 operands") - } -} - -func __asm_proxy_MOVZWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MOVZWQ(v[0], v[1]) - } else { - panic("instruction MOVZWQ takes exactly 2 operands") - } -} - -func __asm_proxy_MPSADBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.MPSADBW(v[0], v[1], v[2]) - } else { - panic("instruction MPSADBW takes exactly 3 operands") - } -} - -func __asm_proxy_MULB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.MULB(v[0]) - } else { - panic("instruction MULB takes exactly 1 operand") - } -} - -func __asm_proxy_MULL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.MULL(v[0]) - } else { - panic("instruction MULL takes exactly 1 operand") - } -} - -func __asm_proxy_MULPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MULPD(v[0], v[1]) - } else { - panic("instruction MULPD takes exactly 2 operands") - } -} - -func __asm_proxy_MULPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MULPS(v[0], v[1]) - } else { - panic("instruction MULPS takes exactly 2 operands") - } -} - -func __asm_proxy_MULQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.MULQ(v[0]) - } else { - panic("instruction MULQ takes exactly 1 operand") - } -} - -func __asm_proxy_MULSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MULSD(v[0], v[1]) - } else { - panic("instruction MULSD takes exactly 2 operands") - } -} - -func __asm_proxy_MULSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.MULSS(v[0], v[1]) - } else { - panic("instruction MULSS takes exactly 2 operands") - } -} - -func __asm_proxy_MULW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.MULW(v[0]) - } else { - panic("instruction MULW takes exactly 1 operand") - } -} - -func __asm_proxy_MULXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.MULXL(v[0], v[1], v[2]) - } else { - panic("instruction MULXL takes exactly 3 operands") - } -} - -func __asm_proxy_MULXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.MULXQ(v[0], v[1], v[2]) - } else { - panic("instruction MULXQ takes exactly 3 operands") - } -} - -func __asm_proxy_MWAIT__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.MWAIT() - } else { - panic("instruction MWAIT takes no operands") - } -} - -func __asm_proxy_MWAITX__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.MWAITX() - } else { - panic("instruction MWAITX takes no operands") - } -} - -func __asm_proxy_NEGB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NEGB(v[0]) - } else { - panic("instruction NEGB takes exactly 1 operand") - } -} - -func __asm_proxy_NEGL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NEGL(v[0]) - } else { - panic("instruction NEGL takes exactly 1 operand") - } -} - -func __asm_proxy_NEGQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NEGQ(v[0]) - } else { - panic("instruction NEGQ takes exactly 1 operand") - } -} - -func __asm_proxy_NEGW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NEGW(v[0]) - } else { - panic("instruction NEGW takes exactly 1 operand") - } -} - -func __asm_proxy_NOP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.NOP() - } else { - panic("instruction NOP takes no operands") - } -} - -func __asm_proxy_NOTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NOTB(v[0]) - } else { - panic("instruction NOTB takes exactly 1 operand") - } -} - -func __asm_proxy_NOTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NOTL(v[0]) - } else { - panic("instruction NOTL takes exactly 1 operand") - } -} - -func __asm_proxy_NOTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NOTQ(v[0]) - } else { - panic("instruction NOTQ takes exactly 1 operand") - } -} - -func __asm_proxy_NOTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.NOTW(v[0]) - } else { - panic("instruction NOTW takes exactly 1 operand") - } -} - -func __asm_proxy_ORB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ORB(v[0], v[1]) - } else { - panic("instruction ORB takes exactly 2 operands") - } -} - -func __asm_proxy_ORL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ORL(v[0], v[1]) - } else { - panic("instruction ORL takes exactly 2 operands") - } -} - -func __asm_proxy_ORPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ORPD(v[0], v[1]) - } else { - panic("instruction ORPD takes exactly 2 operands") - } -} - -func __asm_proxy_ORPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ORPS(v[0], v[1]) - } else { - panic("instruction ORPS takes exactly 2 operands") - } -} - -func __asm_proxy_ORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ORQ(v[0], v[1]) - } else { - panic("instruction ORQ takes exactly 2 operands") - } -} - -func __asm_proxy_ORW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ORW(v[0], v[1]) - } else { - panic("instruction ORW takes exactly 2 operands") - } -} - -func __asm_proxy_PABSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PABSB(v[0], v[1]) - } else { - panic("instruction PABSB takes exactly 2 operands") - } -} - -func __asm_proxy_PABSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PABSD(v[0], v[1]) - } else { - panic("instruction PABSD takes exactly 2 operands") - } -} - -func __asm_proxy_PABSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PABSW(v[0], v[1]) - } else { - panic("instruction PABSW takes exactly 2 operands") - } -} - -func __asm_proxy_PACKSSDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PACKSSDW(v[0], v[1]) - } else { - panic("instruction PACKSSDW takes exactly 2 operands") - } -} - -func __asm_proxy_PACKSSWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PACKSSWB(v[0], v[1]) - } else { - panic("instruction PACKSSWB takes exactly 2 operands") - } -} - -func __asm_proxy_PACKUSDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PACKUSDW(v[0], v[1]) - } else { - panic("instruction PACKUSDW takes exactly 2 operands") - } -} - -func __asm_proxy_PACKUSWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PACKUSWB(v[0], v[1]) - } else { - panic("instruction PACKUSWB takes exactly 2 operands") - } -} - -func __asm_proxy_PADDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDB(v[0], v[1]) - } else { - panic("instruction PADDB takes exactly 2 operands") - } -} - -func __asm_proxy_PADDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDD(v[0], v[1]) - } else { - panic("instruction PADDD takes exactly 2 operands") - } -} - -func __asm_proxy_PADDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDQ(v[0], v[1]) - } else { - panic("instruction PADDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PADDSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDSB(v[0], v[1]) - } else { - panic("instruction PADDSB takes exactly 2 operands") - } -} - -func __asm_proxy_PADDSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDSW(v[0], v[1]) - } else { - panic("instruction PADDSW takes exactly 2 operands") - } -} - -func __asm_proxy_PADDUSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDUSB(v[0], v[1]) - } else { - panic("instruction PADDUSB takes exactly 2 operands") - } -} - -func __asm_proxy_PADDUSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDUSW(v[0], v[1]) - } else { - panic("instruction PADDUSW takes exactly 2 operands") - } -} - -func __asm_proxy_PADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PADDW(v[0], v[1]) - } else { - panic("instruction PADDW takes exactly 2 operands") - } -} - -func __asm_proxy_PALIGNR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PALIGNR(v[0], v[1], v[2]) - } else { - panic("instruction PALIGNR takes exactly 3 operands") - } -} - -func __asm_proxy_PAND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PAND(v[0], v[1]) - } else { - panic("instruction PAND takes exactly 2 operands") - } -} - -func __asm_proxy_PANDN__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PANDN(v[0], v[1]) - } else { - panic("instruction PANDN takes exactly 2 operands") - } -} - -func __asm_proxy_PAUSE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.PAUSE() - } else { - panic("instruction PAUSE takes no operands") - } -} - -func __asm_proxy_PAVGB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PAVGB(v[0], v[1]) - } else { - panic("instruction PAVGB takes exactly 2 operands") - } -} - -func __asm_proxy_PAVGUSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PAVGUSB(v[0], v[1]) - } else { - panic("instruction PAVGUSB takes exactly 2 operands") - } -} - -func __asm_proxy_PAVGW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PAVGW(v[0], v[1]) - } else { - panic("instruction PAVGW takes exactly 2 operands") - } -} - -func __asm_proxy_PBLENDVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PBLENDVB(v[0], v[1], v[2]) - } else { - panic("instruction PBLENDVB takes exactly 3 operands") - } -} - -func __asm_proxy_PBLENDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PBLENDW(v[0], v[1], v[2]) - } else { - panic("instruction PBLENDW takes exactly 3 operands") - } -} - -func __asm_proxy_PCLMULQDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PCLMULQDQ(v[0], v[1], v[2]) - } else { - panic("instruction PCLMULQDQ takes exactly 3 operands") - } -} - -func __asm_proxy_PCMPEQB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPEQB(v[0], v[1]) - } else { - panic("instruction PCMPEQB takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPEQD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPEQD(v[0], v[1]) - } else { - panic("instruction PCMPEQD takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPEQQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPEQQ(v[0], v[1]) - } else { - panic("instruction PCMPEQQ takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPEQW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPEQW(v[0], v[1]) - } else { - panic("instruction PCMPEQW takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPESTRI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PCMPESTRI(v[0], v[1], v[2]) - } else { - panic("instruction PCMPESTRI takes exactly 3 operands") - } -} - -func __asm_proxy_PCMPESTRM__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PCMPESTRM(v[0], v[1], v[2]) - } else { - panic("instruction PCMPESTRM takes exactly 3 operands") - } -} - -func __asm_proxy_PCMPGTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPGTB(v[0], v[1]) - } else { - panic("instruction PCMPGTB takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPGTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPGTD(v[0], v[1]) - } else { - panic("instruction PCMPGTD takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPGTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPGTQ(v[0], v[1]) - } else { - panic("instruction PCMPGTQ takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPGTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PCMPGTW(v[0], v[1]) - } else { - panic("instruction PCMPGTW takes exactly 2 operands") - } -} - -func __asm_proxy_PCMPISTRI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PCMPISTRI(v[0], v[1], v[2]) - } else { - panic("instruction PCMPISTRI takes exactly 3 operands") - } -} - -func __asm_proxy_PCMPISTRM__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PCMPISTRM(v[0], v[1], v[2]) - } else { - panic("instruction PCMPISTRM takes exactly 3 operands") - } -} - -func __asm_proxy_PDEP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PDEP(v[0], v[1], v[2]) - } else { - panic("instruction PDEP takes exactly 3 operands") - } -} - -func __asm_proxy_PEXT__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PEXT(v[0], v[1], v[2]) - } else { - panic("instruction PEXT takes exactly 3 operands") - } -} - -func __asm_proxy_PEXTRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PEXTRB(v[0], v[1], v[2]) - } else { - panic("instruction PEXTRB takes exactly 3 operands") - } -} - -func __asm_proxy_PEXTRD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PEXTRD(v[0], v[1], v[2]) - } else { - panic("instruction PEXTRD takes exactly 3 operands") - } -} - -func __asm_proxy_PEXTRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PEXTRQ(v[0], v[1], v[2]) - } else { - panic("instruction PEXTRQ takes exactly 3 operands") - } -} - -func __asm_proxy_PEXTRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PEXTRW(v[0], v[1], v[2]) - } else { - panic("instruction PEXTRW takes exactly 3 operands") - } -} - -func __asm_proxy_PF2ID__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PF2ID(v[0], v[1]) - } else { - panic("instruction PF2ID takes exactly 2 operands") - } -} - -func __asm_proxy_PF2IW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PF2IW(v[0], v[1]) - } else { - panic("instruction PF2IW takes exactly 2 operands") - } -} - -func __asm_proxy_PFACC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFACC(v[0], v[1]) - } else { - panic("instruction PFACC takes exactly 2 operands") - } -} - -func __asm_proxy_PFADD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFADD(v[0], v[1]) - } else { - panic("instruction PFADD takes exactly 2 operands") - } -} - -func __asm_proxy_PFCMPEQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFCMPEQ(v[0], v[1]) - } else { - panic("instruction PFCMPEQ takes exactly 2 operands") - } -} - -func __asm_proxy_PFCMPGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFCMPGE(v[0], v[1]) - } else { - panic("instruction PFCMPGE takes exactly 2 operands") - } -} - -func __asm_proxy_PFCMPGT__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFCMPGT(v[0], v[1]) - } else { - panic("instruction PFCMPGT takes exactly 2 operands") - } -} - -func __asm_proxy_PFMAX__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFMAX(v[0], v[1]) - } else { - panic("instruction PFMAX takes exactly 2 operands") - } -} - -func __asm_proxy_PFMIN__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFMIN(v[0], v[1]) - } else { - panic("instruction PFMIN takes exactly 2 operands") - } -} - -func __asm_proxy_PFMUL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFMUL(v[0], v[1]) - } else { - panic("instruction PFMUL takes exactly 2 operands") - } -} - -func __asm_proxy_PFNACC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFNACC(v[0], v[1]) - } else { - panic("instruction PFNACC takes exactly 2 operands") - } -} - -func __asm_proxy_PFPNACC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFPNACC(v[0], v[1]) - } else { - panic("instruction PFPNACC takes exactly 2 operands") - } -} - -func __asm_proxy_PFRCP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFRCP(v[0], v[1]) - } else { - panic("instruction PFRCP takes exactly 2 operands") - } -} - -func __asm_proxy_PFRCPIT1__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFRCPIT1(v[0], v[1]) - } else { - panic("instruction PFRCPIT1 takes exactly 2 operands") - } -} - -func __asm_proxy_PFRCPIT2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFRCPIT2(v[0], v[1]) - } else { - panic("instruction PFRCPIT2 takes exactly 2 operands") - } -} - -func __asm_proxy_PFRSQIT1__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFRSQIT1(v[0], v[1]) - } else { - panic("instruction PFRSQIT1 takes exactly 2 operands") - } -} - -func __asm_proxy_PFRSQRT__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFRSQRT(v[0], v[1]) - } else { - panic("instruction PFRSQRT takes exactly 2 operands") - } -} - -func __asm_proxy_PFSUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFSUB(v[0], v[1]) - } else { - panic("instruction PFSUB takes exactly 2 operands") - } -} - -func __asm_proxy_PFSUBR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PFSUBR(v[0], v[1]) - } else { - panic("instruction PFSUBR takes exactly 2 operands") - } -} - -func __asm_proxy_PHADDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHADDD(v[0], v[1]) - } else { - panic("instruction PHADDD takes exactly 2 operands") - } -} - -func __asm_proxy_PHADDSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHADDSW(v[0], v[1]) - } else { - panic("instruction PHADDSW takes exactly 2 operands") - } -} - -func __asm_proxy_PHADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHADDW(v[0], v[1]) - } else { - panic("instruction PHADDW takes exactly 2 operands") - } -} - -func __asm_proxy_PHMINPOSUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHMINPOSUW(v[0], v[1]) - } else { - panic("instruction PHMINPOSUW takes exactly 2 operands") - } -} - -func __asm_proxy_PHSUBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHSUBD(v[0], v[1]) - } else { - panic("instruction PHSUBD takes exactly 2 operands") - } -} - -func __asm_proxy_PHSUBSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHSUBSW(v[0], v[1]) - } else { - panic("instruction PHSUBSW takes exactly 2 operands") - } -} - -func __asm_proxy_PHSUBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PHSUBW(v[0], v[1]) - } else { - panic("instruction PHSUBW takes exactly 2 operands") - } -} - -func __asm_proxy_PI2FD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PI2FD(v[0], v[1]) - } else { - panic("instruction PI2FD takes exactly 2 operands") - } -} - -func __asm_proxy_PI2FW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PI2FW(v[0], v[1]) - } else { - panic("instruction PI2FW takes exactly 2 operands") - } -} - -func __asm_proxy_PINSRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PINSRB(v[0], v[1], v[2]) - } else { - panic("instruction PINSRB takes exactly 3 operands") - } -} - -func __asm_proxy_PINSRD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PINSRD(v[0], v[1], v[2]) - } else { - panic("instruction PINSRD takes exactly 3 operands") - } -} - -func __asm_proxy_PINSRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PINSRQ(v[0], v[1], v[2]) - } else { - panic("instruction PINSRQ takes exactly 3 operands") - } -} - -func __asm_proxy_PINSRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PINSRW(v[0], v[1], v[2]) - } else { - panic("instruction PINSRW takes exactly 3 operands") - } -} - -func __asm_proxy_PMADDUBSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMADDUBSW(v[0], v[1]) - } else { - panic("instruction PMADDUBSW takes exactly 2 operands") - } -} - -func __asm_proxy_PMADDWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMADDWD(v[0], v[1]) - } else { - panic("instruction PMADDWD takes exactly 2 operands") - } -} - -func __asm_proxy_PMAXSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMAXSB(v[0], v[1]) - } else { - panic("instruction PMAXSB takes exactly 2 operands") - } -} - -func __asm_proxy_PMAXSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMAXSD(v[0], v[1]) - } else { - panic("instruction PMAXSD takes exactly 2 operands") - } -} - -func __asm_proxy_PMAXSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMAXSW(v[0], v[1]) - } else { - panic("instruction PMAXSW takes exactly 2 operands") - } -} - -func __asm_proxy_PMAXUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMAXUB(v[0], v[1]) - } else { - panic("instruction PMAXUB takes exactly 2 operands") - } -} - -func __asm_proxy_PMAXUD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMAXUD(v[0], v[1]) - } else { - panic("instruction PMAXUD takes exactly 2 operands") - } -} - -func __asm_proxy_PMAXUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMAXUW(v[0], v[1]) - } else { - panic("instruction PMAXUW takes exactly 2 operands") - } -} - -func __asm_proxy_PMINSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMINSB(v[0], v[1]) - } else { - panic("instruction PMINSB takes exactly 2 operands") - } -} - -func __asm_proxy_PMINSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMINSD(v[0], v[1]) - } else { - panic("instruction PMINSD takes exactly 2 operands") - } -} - -func __asm_proxy_PMINSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMINSW(v[0], v[1]) - } else { - panic("instruction PMINSW takes exactly 2 operands") - } -} - -func __asm_proxy_PMINUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMINUB(v[0], v[1]) - } else { - panic("instruction PMINUB takes exactly 2 operands") - } -} - -func __asm_proxy_PMINUD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMINUD(v[0], v[1]) - } else { - panic("instruction PMINUD takes exactly 2 operands") - } -} - -func __asm_proxy_PMINUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMINUW(v[0], v[1]) - } else { - panic("instruction PMINUW takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVMSKB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVMSKB(v[0], v[1]) - } else { - panic("instruction PMOVMSKB takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVSXBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVSXBD(v[0], v[1]) - } else { - panic("instruction PMOVSXBD takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVSXBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVSXBQ(v[0], v[1]) - } else { - panic("instruction PMOVSXBQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVSXBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVSXBW(v[0], v[1]) - } else { - panic("instruction PMOVSXBW takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVSXDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVSXDQ(v[0], v[1]) - } else { - panic("instruction PMOVSXDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVSXWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVSXWD(v[0], v[1]) - } else { - panic("instruction PMOVSXWD takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVSXWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVSXWQ(v[0], v[1]) - } else { - panic("instruction PMOVSXWQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVZXBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVZXBD(v[0], v[1]) - } else { - panic("instruction PMOVZXBD takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVZXBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVZXBQ(v[0], v[1]) - } else { - panic("instruction PMOVZXBQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVZXBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVZXBW(v[0], v[1]) - } else { - panic("instruction PMOVZXBW takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVZXDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVZXDQ(v[0], v[1]) - } else { - panic("instruction PMOVZXDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVZXWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVZXWD(v[0], v[1]) - } else { - panic("instruction PMOVZXWD takes exactly 2 operands") - } -} - -func __asm_proxy_PMOVZXWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMOVZXWQ(v[0], v[1]) - } else { - panic("instruction PMOVZXWQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMULDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULDQ(v[0], v[1]) - } else { - panic("instruction PMULDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PMULHRSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULHRSW(v[0], v[1]) - } else { - panic("instruction PMULHRSW takes exactly 2 operands") - } -} - -func __asm_proxy_PMULHRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULHRW(v[0], v[1]) - } else { - panic("instruction PMULHRW takes exactly 2 operands") - } -} - -func __asm_proxy_PMULHUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULHUW(v[0], v[1]) - } else { - panic("instruction PMULHUW takes exactly 2 operands") - } -} - -func __asm_proxy_PMULHW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULHW(v[0], v[1]) - } else { - panic("instruction PMULHW takes exactly 2 operands") - } -} - -func __asm_proxy_PMULLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULLD(v[0], v[1]) - } else { - panic("instruction PMULLD takes exactly 2 operands") - } -} - -func __asm_proxy_PMULLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULLW(v[0], v[1]) - } else { - panic("instruction PMULLW takes exactly 2 operands") - } -} - -func __asm_proxy_PMULUDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PMULUDQ(v[0], v[1]) - } else { - panic("instruction PMULUDQ takes exactly 2 operands") - } -} - -func __asm_proxy_POPCNTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.POPCNTL(v[0], v[1]) - } else { - panic("instruction POPCNTL takes exactly 2 operands") - } -} - -func __asm_proxy_POPCNTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.POPCNTQ(v[0], v[1]) - } else { - panic("instruction POPCNTQ takes exactly 2 operands") - } -} - -func __asm_proxy_POPCNTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.POPCNTW(v[0], v[1]) - } else { - panic("instruction POPCNTW takes exactly 2 operands") - } -} - -func __asm_proxy_POPQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.POPQ(v[0]) - } else { - panic("instruction POPQ takes exactly 1 operand") - } -} - -func __asm_proxy_POPW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.POPW(v[0]) - } else { - panic("instruction POPW takes exactly 1 operand") - } -} - -func __asm_proxy_POR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.POR(v[0], v[1]) - } else { - panic("instruction POR takes exactly 2 operands") - } -} - -func __asm_proxy_PREFETCH__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCH(v[0]) - } else { - panic("instruction PREFETCH takes exactly 1 operand") - } -} - -func __asm_proxy_PREFETCHNTA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCHNTA(v[0]) - } else { - panic("instruction PREFETCHNTA takes exactly 1 operand") - } -} - -func __asm_proxy_PREFETCHT0__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCHT0(v[0]) - } else { - panic("instruction PREFETCHT0 takes exactly 1 operand") - } -} - -func __asm_proxy_PREFETCHT1__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCHT1(v[0]) - } else { - panic("instruction PREFETCHT1 takes exactly 1 operand") - } -} - -func __asm_proxy_PREFETCHT2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCHT2(v[0]) - } else { - panic("instruction PREFETCHT2 takes exactly 1 operand") - } -} - -func __asm_proxy_PREFETCHW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCHW(v[0]) - } else { - panic("instruction PREFETCHW takes exactly 1 operand") - } -} - -func __asm_proxy_PREFETCHWT1__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PREFETCHWT1(v[0]) - } else { - panic("instruction PREFETCHWT1 takes exactly 1 operand") - } -} - -func __asm_proxy_PSADBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSADBW(v[0], v[1]) - } else { - panic("instruction PSADBW takes exactly 2 operands") - } -} - -func __asm_proxy_PSHUFB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSHUFB(v[0], v[1]) - } else { - panic("instruction PSHUFB takes exactly 2 operands") - } -} - -func __asm_proxy_PSHUFD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PSHUFD(v[0], v[1], v[2]) - } else { - panic("instruction PSHUFD takes exactly 3 operands") - } -} - -func __asm_proxy_PSHUFHW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PSHUFHW(v[0], v[1], v[2]) - } else { - panic("instruction PSHUFHW takes exactly 3 operands") - } -} - -func __asm_proxy_PSHUFLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PSHUFLW(v[0], v[1], v[2]) - } else { - panic("instruction PSHUFLW takes exactly 3 operands") - } -} - -func __asm_proxy_PSHUFW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.PSHUFW(v[0], v[1], v[2]) - } else { - panic("instruction PSHUFW takes exactly 3 operands") - } -} - -func __asm_proxy_PSIGNB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSIGNB(v[0], v[1]) - } else { - panic("instruction PSIGNB takes exactly 2 operands") - } -} - -func __asm_proxy_PSIGND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSIGND(v[0], v[1]) - } else { - panic("instruction PSIGND takes exactly 2 operands") - } -} - -func __asm_proxy_PSIGNW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSIGNW(v[0], v[1]) - } else { - panic("instruction PSIGNW takes exactly 2 operands") - } -} - -func __asm_proxy_PSLLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSLLD(v[0], v[1]) - } else { - panic("instruction PSLLD takes exactly 2 operands") - } -} - -func __asm_proxy_PSLLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSLLDQ(v[0], v[1]) - } else { - panic("instruction PSLLDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PSLLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSLLQ(v[0], v[1]) - } else { - panic("instruction PSLLQ takes exactly 2 operands") - } -} - -func __asm_proxy_PSLLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSLLW(v[0], v[1]) - } else { - panic("instruction PSLLW takes exactly 2 operands") - } -} - -func __asm_proxy_PSRAD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSRAD(v[0], v[1]) - } else { - panic("instruction PSRAD takes exactly 2 operands") - } -} - -func __asm_proxy_PSRAW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSRAW(v[0], v[1]) - } else { - panic("instruction PSRAW takes exactly 2 operands") - } -} - -func __asm_proxy_PSRLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSRLD(v[0], v[1]) - } else { - panic("instruction PSRLD takes exactly 2 operands") - } -} - -func __asm_proxy_PSRLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSRLDQ(v[0], v[1]) - } else { - panic("instruction PSRLDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PSRLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSRLQ(v[0], v[1]) - } else { - panic("instruction PSRLQ takes exactly 2 operands") - } -} - -func __asm_proxy_PSRLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSRLW(v[0], v[1]) - } else { - panic("instruction PSRLW takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBB(v[0], v[1]) - } else { - panic("instruction PSUBB takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBD(v[0], v[1]) - } else { - panic("instruction PSUBD takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBQ(v[0], v[1]) - } else { - panic("instruction PSUBQ takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBSB(v[0], v[1]) - } else { - panic("instruction PSUBSB takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBSW(v[0], v[1]) - } else { - panic("instruction PSUBSW takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBUSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBUSB(v[0], v[1]) - } else { - panic("instruction PSUBUSB takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBUSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBUSW(v[0], v[1]) - } else { - panic("instruction PSUBUSW takes exactly 2 operands") - } -} - -func __asm_proxy_PSUBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSUBW(v[0], v[1]) - } else { - panic("instruction PSUBW takes exactly 2 operands") - } -} - -func __asm_proxy_PSWAPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PSWAPD(v[0], v[1]) - } else { - panic("instruction PSWAPD takes exactly 2 operands") - } -} - -func __asm_proxy_PTEST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PTEST(v[0], v[1]) - } else { - panic("instruction PTEST takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKHBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKHBW(v[0], v[1]) - } else { - panic("instruction PUNPCKHBW takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKHDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKHDQ(v[0], v[1]) - } else { - panic("instruction PUNPCKHDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKHQDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKHQDQ(v[0], v[1]) - } else { - panic("instruction PUNPCKHQDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKHWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKHWD(v[0], v[1]) - } else { - panic("instruction PUNPCKHWD takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKLBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKLBW(v[0], v[1]) - } else { - panic("instruction PUNPCKLBW takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKLDQ(v[0], v[1]) - } else { - panic("instruction PUNPCKLDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKLQDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKLQDQ(v[0], v[1]) - } else { - panic("instruction PUNPCKLQDQ takes exactly 2 operands") - } -} - -func __asm_proxy_PUNPCKLWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PUNPCKLWD(v[0], v[1]) - } else { - panic("instruction PUNPCKLWD takes exactly 2 operands") - } -} - -func __asm_proxy_PUSHQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PUSHQ(v[0]) - } else { - panic("instruction PUSHQ takes exactly 1 operand") - } -} - -func __asm_proxy_PUSHW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.PUSHW(v[0]) - } else { - panic("instruction PUSHW takes exactly 1 operand") - } -} - -func __asm_proxy_PXOR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.PXOR(v[0], v[1]) - } else { - panic("instruction PXOR takes exactly 2 operands") - } -} - -func __asm_proxy_RCLB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCLB(v[0], v[1]) - } else { - panic("instruction RCLB takes exactly 2 operands") - } -} - -func __asm_proxy_RCLL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCLL(v[0], v[1]) - } else { - panic("instruction RCLL takes exactly 2 operands") - } -} - -func __asm_proxy_RCLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCLQ(v[0], v[1]) - } else { - panic("instruction RCLQ takes exactly 2 operands") - } -} - -func __asm_proxy_RCLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCLW(v[0], v[1]) - } else { - panic("instruction RCLW takes exactly 2 operands") - } -} - -func __asm_proxy_RCPPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCPPS(v[0], v[1]) - } else { - panic("instruction RCPPS takes exactly 2 operands") - } -} - -func __asm_proxy_RCPSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCPSS(v[0], v[1]) - } else { - panic("instruction RCPSS takes exactly 2 operands") - } -} - -func __asm_proxy_RCRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCRB(v[0], v[1]) - } else { - panic("instruction RCRB takes exactly 2 operands") - } -} - -func __asm_proxy_RCRL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCRL(v[0], v[1]) - } else { - panic("instruction RCRL takes exactly 2 operands") - } -} - -func __asm_proxy_RCRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCRQ(v[0], v[1]) - } else { - panic("instruction RCRQ takes exactly 2 operands") - } -} - -func __asm_proxy_RCRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RCRW(v[0], v[1]) - } else { - panic("instruction RCRW takes exactly 2 operands") - } -} - -func __asm_proxy_RDRAND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.RDRAND(v[0]) - } else { - panic("instruction RDRAND takes exactly 1 operand") - } -} - -func __asm_proxy_RDSEED__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.RDSEED(v[0]) - } else { - panic("instruction RDSEED takes exactly 1 operand") - } -} - -func __asm_proxy_RDTSC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.RDTSC() - } else { - panic("instruction RDTSC takes no operands") - } -} - -func __asm_proxy_RDTSCP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.RDTSCP() - } else { - panic("instruction RDTSCP takes no operands") - } -} - -func __asm_proxy_RET__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 0 : return p.RET() - case 1 : return p.RET(v[0]) - default : panic("instruction RET takes 0 or 1 operands") - } -} - -func __asm_proxy_ROLB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ROLB(v[0], v[1]) - } else { - panic("instruction ROLB takes exactly 2 operands") - } -} - -func __asm_proxy_ROLL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ROLL(v[0], v[1]) - } else { - panic("instruction ROLL takes exactly 2 operands") - } -} - -func __asm_proxy_ROLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ROLQ(v[0], v[1]) - } else { - panic("instruction ROLQ takes exactly 2 operands") - } -} - -func __asm_proxy_ROLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.ROLW(v[0], v[1]) - } else { - panic("instruction ROLW takes exactly 2 operands") - } -} - -func __asm_proxy_RORB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RORB(v[0], v[1]) - } else { - panic("instruction RORB takes exactly 2 operands") - } -} - -func __asm_proxy_RORL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RORL(v[0], v[1]) - } else { - panic("instruction RORL takes exactly 2 operands") - } -} - -func __asm_proxy_RORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RORQ(v[0], v[1]) - } else { - panic("instruction RORQ takes exactly 2 operands") - } -} - -func __asm_proxy_RORW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RORW(v[0], v[1]) - } else { - panic("instruction RORW takes exactly 2 operands") - } -} - -func __asm_proxy_RORXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.RORXL(v[0], v[1], v[2]) - } else { - panic("instruction RORXL takes exactly 3 operands") - } -} - -func __asm_proxy_RORXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.RORXQ(v[0], v[1], v[2]) - } else { - panic("instruction RORXQ takes exactly 3 operands") - } -} - -func __asm_proxy_ROUNDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.ROUNDPD(v[0], v[1], v[2]) - } else { - panic("instruction ROUNDPD takes exactly 3 operands") - } -} - -func __asm_proxy_ROUNDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.ROUNDPS(v[0], v[1], v[2]) - } else { - panic("instruction ROUNDPS takes exactly 3 operands") - } -} - -func __asm_proxy_ROUNDSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.ROUNDSD(v[0], v[1], v[2]) - } else { - panic("instruction ROUNDSD takes exactly 3 operands") - } -} - -func __asm_proxy_ROUNDSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.ROUNDSS(v[0], v[1], v[2]) - } else { - panic("instruction ROUNDSS takes exactly 3 operands") - } -} - -func __asm_proxy_RSQRTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RSQRTPS(v[0], v[1]) - } else { - panic("instruction RSQRTPS takes exactly 2 operands") - } -} - -func __asm_proxy_RSQRTSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.RSQRTSS(v[0], v[1]) - } else { - panic("instruction RSQRTSS takes exactly 2 operands") - } -} - -func __asm_proxy_SALB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SALB(v[0], v[1]) - } else { - panic("instruction SALB takes exactly 2 operands") - } -} - -func __asm_proxy_SALL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SALL(v[0], v[1]) - } else { - panic("instruction SALL takes exactly 2 operands") - } -} - -func __asm_proxy_SALQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SALQ(v[0], v[1]) - } else { - panic("instruction SALQ takes exactly 2 operands") - } -} - -func __asm_proxy_SALW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SALW(v[0], v[1]) - } else { - panic("instruction SALW takes exactly 2 operands") - } -} - -func __asm_proxy_SARB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SARB(v[0], v[1]) - } else { - panic("instruction SARB takes exactly 2 operands") - } -} - -func __asm_proxy_SARL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SARL(v[0], v[1]) - } else { - panic("instruction SARL takes exactly 2 operands") - } -} - -func __asm_proxy_SARQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SARQ(v[0], v[1]) - } else { - panic("instruction SARQ takes exactly 2 operands") - } -} - -func __asm_proxy_SARW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SARW(v[0], v[1]) - } else { - panic("instruction SARW takes exactly 2 operands") - } -} - -func __asm_proxy_SARXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SARXL(v[0], v[1], v[2]) - } else { - panic("instruction SARXL takes exactly 3 operands") - } -} - -func __asm_proxy_SARXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SARXQ(v[0], v[1], v[2]) - } else { - panic("instruction SARXQ takes exactly 3 operands") - } -} - -func __asm_proxy_SBBB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SBBB(v[0], v[1]) - } else { - panic("instruction SBBB takes exactly 2 operands") - } -} - -func __asm_proxy_SBBL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SBBL(v[0], v[1]) - } else { - panic("instruction SBBL takes exactly 2 operands") - } -} - -func __asm_proxy_SBBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SBBQ(v[0], v[1]) - } else { - panic("instruction SBBQ takes exactly 2 operands") - } -} - -func __asm_proxy_SBBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SBBW(v[0], v[1]) - } else { - panic("instruction SBBW takes exactly 2 operands") - } -} - -func __asm_proxy_SETA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETA(v[0]) - } else { - panic("instruction SETA takes exactly 1 operand") - } -} - -func __asm_proxy_SETAE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETAE(v[0]) - } else { - panic("instruction SETAE takes exactly 1 operand") - } -} - -func __asm_proxy_SETB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETB(v[0]) - } else { - panic("instruction SETB takes exactly 1 operand") - } -} - -func __asm_proxy_SETBE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETBE(v[0]) - } else { - panic("instruction SETBE takes exactly 1 operand") - } -} - -func __asm_proxy_SETC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETC(v[0]) - } else { - panic("instruction SETC takes exactly 1 operand") - } -} - -func __asm_proxy_SETE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETE(v[0]) - } else { - panic("instruction SETE takes exactly 1 operand") - } -} - -func __asm_proxy_SETG__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETG(v[0]) - } else { - panic("instruction SETG takes exactly 1 operand") - } -} - -func __asm_proxy_SETGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETGE(v[0]) - } else { - panic("instruction SETGE takes exactly 1 operand") - } -} - -func __asm_proxy_SETL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETL(v[0]) - } else { - panic("instruction SETL takes exactly 1 operand") - } -} - -func __asm_proxy_SETLE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETLE(v[0]) - } else { - panic("instruction SETLE takes exactly 1 operand") - } -} - -func __asm_proxy_SETNA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNA(v[0]) - } else { - panic("instruction SETNA takes exactly 1 operand") - } -} - -func __asm_proxy_SETNAE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNAE(v[0]) - } else { - panic("instruction SETNAE takes exactly 1 operand") - } -} - -func __asm_proxy_SETNB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNB(v[0]) - } else { - panic("instruction SETNB takes exactly 1 operand") - } -} - -func __asm_proxy_SETNBE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNBE(v[0]) - } else { - panic("instruction SETNBE takes exactly 1 operand") - } -} - -func __asm_proxy_SETNC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNC(v[0]) - } else { - panic("instruction SETNC takes exactly 1 operand") - } -} - -func __asm_proxy_SETNE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNE(v[0]) - } else { - panic("instruction SETNE takes exactly 1 operand") - } -} - -func __asm_proxy_SETNG__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNG(v[0]) - } else { - panic("instruction SETNG takes exactly 1 operand") - } -} - -func __asm_proxy_SETNGE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNGE(v[0]) - } else { - panic("instruction SETNGE takes exactly 1 operand") - } -} - -func __asm_proxy_SETNL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNL(v[0]) - } else { - panic("instruction SETNL takes exactly 1 operand") - } -} - -func __asm_proxy_SETNLE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNLE(v[0]) - } else { - panic("instruction SETNLE takes exactly 1 operand") - } -} - -func __asm_proxy_SETNO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNO(v[0]) - } else { - panic("instruction SETNO takes exactly 1 operand") - } -} - -func __asm_proxy_SETNP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNP(v[0]) - } else { - panic("instruction SETNP takes exactly 1 operand") - } -} - -func __asm_proxy_SETNS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNS(v[0]) - } else { - panic("instruction SETNS takes exactly 1 operand") - } -} - -func __asm_proxy_SETNZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETNZ(v[0]) - } else { - panic("instruction SETNZ takes exactly 1 operand") - } -} - -func __asm_proxy_SETO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETO(v[0]) - } else { - panic("instruction SETO takes exactly 1 operand") - } -} - -func __asm_proxy_SETP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETP(v[0]) - } else { - panic("instruction SETP takes exactly 1 operand") - } -} - -func __asm_proxy_SETPE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETPE(v[0]) - } else { - panic("instruction SETPE takes exactly 1 operand") - } -} - -func __asm_proxy_SETPO__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETPO(v[0]) - } else { - panic("instruction SETPO takes exactly 1 operand") - } -} - -func __asm_proxy_SETS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETS(v[0]) - } else { - panic("instruction SETS takes exactly 1 operand") - } -} - -func __asm_proxy_SETZ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.SETZ(v[0]) - } else { - panic("instruction SETZ takes exactly 1 operand") - } -} - -func __asm_proxy_SFENCE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.SFENCE() - } else { - panic("instruction SFENCE takes no operands") - } -} - -func __asm_proxy_SHA1MSG1__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHA1MSG1(v[0], v[1]) - } else { - panic("instruction SHA1MSG1 takes exactly 2 operands") - } -} - -func __asm_proxy_SHA1MSG2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHA1MSG2(v[0], v[1]) - } else { - panic("instruction SHA1MSG2 takes exactly 2 operands") - } -} - -func __asm_proxy_SHA1NEXTE__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHA1NEXTE(v[0], v[1]) - } else { - panic("instruction SHA1NEXTE takes exactly 2 operands") - } -} - -func __asm_proxy_SHA1RNDS4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHA1RNDS4(v[0], v[1], v[2]) - } else { - panic("instruction SHA1RNDS4 takes exactly 3 operands") - } -} - -func __asm_proxy_SHA256MSG1__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHA256MSG1(v[0], v[1]) - } else { - panic("instruction SHA256MSG1 takes exactly 2 operands") - } -} - -func __asm_proxy_SHA256MSG2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHA256MSG2(v[0], v[1]) - } else { - panic("instruction SHA256MSG2 takes exactly 2 operands") - } -} - -func __asm_proxy_SHA256RNDS2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHA256RNDS2(v[0], v[1], v[2]) - } else { - panic("instruction SHA256RNDS2 takes exactly 3 operands") - } -} - -func __asm_proxy_SHLB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHLB(v[0], v[1]) - } else { - panic("instruction SHLB takes exactly 2 operands") - } -} - -func __asm_proxy_SHLDL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHLDL(v[0], v[1], v[2]) - } else { - panic("instruction SHLDL takes exactly 3 operands") - } -} - -func __asm_proxy_SHLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHLDQ(v[0], v[1], v[2]) - } else { - panic("instruction SHLDQ takes exactly 3 operands") - } -} - -func __asm_proxy_SHLDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHLDW(v[0], v[1], v[2]) - } else { - panic("instruction SHLDW takes exactly 3 operands") - } -} - -func __asm_proxy_SHLL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHLL(v[0], v[1]) - } else { - panic("instruction SHLL takes exactly 2 operands") - } -} - -func __asm_proxy_SHLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHLQ(v[0], v[1]) - } else { - panic("instruction SHLQ takes exactly 2 operands") - } -} - -func __asm_proxy_SHLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHLW(v[0], v[1]) - } else { - panic("instruction SHLW takes exactly 2 operands") - } -} - -func __asm_proxy_SHLXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHLXL(v[0], v[1], v[2]) - } else { - panic("instruction SHLXL takes exactly 3 operands") - } -} - -func __asm_proxy_SHLXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHLXQ(v[0], v[1], v[2]) - } else { - panic("instruction SHLXQ takes exactly 3 operands") - } -} - -func __asm_proxy_SHRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHRB(v[0], v[1]) - } else { - panic("instruction SHRB takes exactly 2 operands") - } -} - -func __asm_proxy_SHRDL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHRDL(v[0], v[1], v[2]) - } else { - panic("instruction SHRDL takes exactly 3 operands") - } -} - -func __asm_proxy_SHRDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHRDQ(v[0], v[1], v[2]) - } else { - panic("instruction SHRDQ takes exactly 3 operands") - } -} - -func __asm_proxy_SHRDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHRDW(v[0], v[1], v[2]) - } else { - panic("instruction SHRDW takes exactly 3 operands") - } -} - -func __asm_proxy_SHRL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHRL(v[0], v[1]) - } else { - panic("instruction SHRL takes exactly 2 operands") - } -} - -func __asm_proxy_SHRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHRQ(v[0], v[1]) - } else { - panic("instruction SHRQ takes exactly 2 operands") - } -} - -func __asm_proxy_SHRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SHRW(v[0], v[1]) - } else { - panic("instruction SHRW takes exactly 2 operands") - } -} - -func __asm_proxy_SHRXL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHRXL(v[0], v[1], v[2]) - } else { - panic("instruction SHRXL takes exactly 3 operands") - } -} - -func __asm_proxy_SHRXQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHRXQ(v[0], v[1], v[2]) - } else { - panic("instruction SHRXQ takes exactly 3 operands") - } -} - -func __asm_proxy_SHUFPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHUFPD(v[0], v[1], v[2]) - } else { - panic("instruction SHUFPD takes exactly 3 operands") - } -} - -func __asm_proxy_SHUFPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.SHUFPS(v[0], v[1], v[2]) - } else { - panic("instruction SHUFPS takes exactly 3 operands") - } -} - -func __asm_proxy_SQRTPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SQRTPD(v[0], v[1]) - } else { - panic("instruction SQRTPD takes exactly 2 operands") - } -} - -func __asm_proxy_SQRTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SQRTPS(v[0], v[1]) - } else { - panic("instruction SQRTPS takes exactly 2 operands") - } -} - -func __asm_proxy_SQRTSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SQRTSD(v[0], v[1]) - } else { - panic("instruction SQRTSD takes exactly 2 operands") - } -} - -func __asm_proxy_SQRTSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SQRTSS(v[0], v[1]) - } else { - panic("instruction SQRTSS takes exactly 2 operands") - } -} - -func __asm_proxy_STC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.STC() - } else { - panic("instruction STC takes no operands") - } -} - -func __asm_proxy_STD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.STD() - } else { - panic("instruction STD takes no operands") - } -} - -func __asm_proxy_STMXCSR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.STMXCSR(v[0]) - } else { - panic("instruction STMXCSR takes exactly 1 operand") - } -} - -func __asm_proxy_SUBB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBB(v[0], v[1]) - } else { - panic("instruction SUBB takes exactly 2 operands") - } -} - -func __asm_proxy_SUBL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBL(v[0], v[1]) - } else { - panic("instruction SUBL takes exactly 2 operands") - } -} - -func __asm_proxy_SUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBPD(v[0], v[1]) - } else { - panic("instruction SUBPD takes exactly 2 operands") - } -} - -func __asm_proxy_SUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBPS(v[0], v[1]) - } else { - panic("instruction SUBPS takes exactly 2 operands") - } -} - -func __asm_proxy_SUBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBQ(v[0], v[1]) - } else { - panic("instruction SUBQ takes exactly 2 operands") - } -} - -func __asm_proxy_SUBSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBSD(v[0], v[1]) - } else { - panic("instruction SUBSD takes exactly 2 operands") - } -} - -func __asm_proxy_SUBSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBSS(v[0], v[1]) - } else { - panic("instruction SUBSS takes exactly 2 operands") - } -} - -func __asm_proxy_SUBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.SUBW(v[0], v[1]) - } else { - panic("instruction SUBW takes exactly 2 operands") - } -} - -func __asm_proxy_SYSCALL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.SYSCALL() - } else { - panic("instruction SYSCALL takes no operands") - } -} - -func __asm_proxy_T1MSKC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.T1MSKC(v[0], v[1]) - } else { - panic("instruction T1MSKC takes exactly 2 operands") - } -} - -func __asm_proxy_TESTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TESTB(v[0], v[1]) - } else { - panic("instruction TESTB takes exactly 2 operands") - } -} - -func __asm_proxy_TESTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TESTL(v[0], v[1]) - } else { - panic("instruction TESTL takes exactly 2 operands") - } -} - -func __asm_proxy_TESTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TESTQ(v[0], v[1]) - } else { - panic("instruction TESTQ takes exactly 2 operands") - } -} - -func __asm_proxy_TESTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TESTW(v[0], v[1]) - } else { - panic("instruction TESTW takes exactly 2 operands") - } -} - -func __asm_proxy_TZCNTL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TZCNTL(v[0], v[1]) - } else { - panic("instruction TZCNTL takes exactly 2 operands") - } -} - -func __asm_proxy_TZCNTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TZCNTQ(v[0], v[1]) - } else { - panic("instruction TZCNTQ takes exactly 2 operands") - } -} - -func __asm_proxy_TZCNTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TZCNTW(v[0], v[1]) - } else { - panic("instruction TZCNTW takes exactly 2 operands") - } -} - -func __asm_proxy_TZMSK__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.TZMSK(v[0], v[1]) - } else { - panic("instruction TZMSK takes exactly 2 operands") - } -} - -func __asm_proxy_UCOMISD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.UCOMISD(v[0], v[1]) - } else { - panic("instruction UCOMISD takes exactly 2 operands") - } -} - -func __asm_proxy_UCOMISS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.UCOMISS(v[0], v[1]) - } else { - panic("instruction UCOMISS takes exactly 2 operands") - } -} - -func __asm_proxy_UD2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.UD2() - } else { - panic("instruction UD2 takes no operands") - } -} - -func __asm_proxy_UNPCKHPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.UNPCKHPD(v[0], v[1]) - } else { - panic("instruction UNPCKHPD takes exactly 2 operands") - } -} - -func __asm_proxy_UNPCKHPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.UNPCKHPS(v[0], v[1]) - } else { - panic("instruction UNPCKHPS takes exactly 2 operands") - } -} - -func __asm_proxy_UNPCKLPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.UNPCKLPD(v[0], v[1]) - } else { - panic("instruction UNPCKLPD takes exactly 2 operands") - } -} - -func __asm_proxy_UNPCKLPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.UNPCKLPS(v[0], v[1]) - } else { - panic("instruction UNPCKLPS takes exactly 2 operands") - } -} - -func __asm_proxy_VADDPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VADDPD(v[0], v[1], v[2]) - case 4 : return p.VADDPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VADDPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VADDPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VADDPS(v[0], v[1], v[2]) - case 4 : return p.VADDPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VADDPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VADDSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VADDSD(v[0], v[1], v[2]) - case 4 : return p.VADDSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VADDSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VADDSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VADDSS(v[0], v[1], v[2]) - case 4 : return p.VADDSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VADDSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VADDSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VADDSUBPD(v[0], v[1], v[2]) - } else { - panic("instruction VADDSUBPD takes exactly 3 operands") - } -} - -func __asm_proxy_VADDSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VADDSUBPS(v[0], v[1], v[2]) - } else { - panic("instruction VADDSUBPS takes exactly 3 operands") - } -} - -func __asm_proxy_VAESDEC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VAESDEC(v[0], v[1], v[2]) - } else { - panic("instruction VAESDEC takes exactly 3 operands") - } -} - -func __asm_proxy_VAESDECLAST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VAESDECLAST(v[0], v[1], v[2]) - } else { - panic("instruction VAESDECLAST takes exactly 3 operands") - } -} - -func __asm_proxy_VAESENC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VAESENC(v[0], v[1], v[2]) - } else { - panic("instruction VAESENC takes exactly 3 operands") - } -} - -func __asm_proxy_VAESENCLAST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VAESENCLAST(v[0], v[1], v[2]) - } else { - panic("instruction VAESENCLAST takes exactly 3 operands") - } -} - -func __asm_proxy_VAESIMC__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VAESIMC(v[0], v[1]) - } else { - panic("instruction VAESIMC takes exactly 2 operands") - } -} - -func __asm_proxy_VAESKEYGENASSIST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VAESKEYGENASSIST(v[0], v[1], v[2]) - } else { - panic("instruction VAESKEYGENASSIST takes exactly 3 operands") - } -} - -func __asm_proxy_VALIGND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VALIGND(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VALIGND takes exactly 4 operands") - } -} - -func __asm_proxy_VALIGNQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VALIGNQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VALIGNQ takes exactly 4 operands") - } -} - -func __asm_proxy_VANDNPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VANDNPD(v[0], v[1], v[2]) - } else { - panic("instruction VANDNPD takes exactly 3 operands") - } -} - -func __asm_proxy_VANDNPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VANDNPS(v[0], v[1], v[2]) - } else { - panic("instruction VANDNPS takes exactly 3 operands") - } -} - -func __asm_proxy_VANDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VANDPD(v[0], v[1], v[2]) - } else { - panic("instruction VANDPD takes exactly 3 operands") - } -} - -func __asm_proxy_VANDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VANDPS(v[0], v[1], v[2]) - } else { - panic("instruction VANDPS takes exactly 3 operands") - } -} - -func __asm_proxy_VBLENDMPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VBLENDMPD(v[0], v[1], v[2]) - } else { - panic("instruction VBLENDMPD takes exactly 3 operands") - } -} - -func __asm_proxy_VBLENDMPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VBLENDMPS(v[0], v[1], v[2]) - } else { - panic("instruction VBLENDMPS takes exactly 3 operands") - } -} - -func __asm_proxy_VBLENDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VBLENDPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VBLENDPD takes exactly 4 operands") - } -} - -func __asm_proxy_VBLENDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VBLENDPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VBLENDPS takes exactly 4 operands") - } -} - -func __asm_proxy_VBLENDVPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VBLENDVPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VBLENDVPD takes exactly 4 operands") - } -} - -func __asm_proxy_VBLENDVPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VBLENDVPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VBLENDVPS takes exactly 4 operands") - } -} - -func __asm_proxy_VBROADCASTF128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTF128(v[0], v[1]) - } else { - panic("instruction VBROADCASTF128 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTF32X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTF32X2(v[0], v[1]) - } else { - panic("instruction VBROADCASTF32X2 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTF32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTF32X4(v[0], v[1]) - } else { - panic("instruction VBROADCASTF32X4 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTF32X8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTF32X8(v[0], v[1]) - } else { - panic("instruction VBROADCASTF32X8 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTF64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTF64X2(v[0], v[1]) - } else { - panic("instruction VBROADCASTF64X2 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTF64X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTF64X4(v[0], v[1]) - } else { - panic("instruction VBROADCASTF64X4 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTI128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTI128(v[0], v[1]) - } else { - panic("instruction VBROADCASTI128 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTI32X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTI32X2(v[0], v[1]) - } else { - panic("instruction VBROADCASTI32X2 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTI32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTI32X4(v[0], v[1]) - } else { - panic("instruction VBROADCASTI32X4 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTI32X8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTI32X8(v[0], v[1]) - } else { - panic("instruction VBROADCASTI32X8 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTI64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTI64X2(v[0], v[1]) - } else { - panic("instruction VBROADCASTI64X2 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTI64X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTI64X4(v[0], v[1]) - } else { - panic("instruction VBROADCASTI64X4 takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTSD(v[0], v[1]) - } else { - panic("instruction VBROADCASTSD takes exactly 2 operands") - } -} - -func __asm_proxy_VBROADCASTSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VBROADCASTSS(v[0], v[1]) - } else { - panic("instruction VBROADCASTSS takes exactly 2 operands") - } -} - -func __asm_proxy_VCMPPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VCMPPD(v[0], v[1], v[2], v[3]) - case 5 : return p.VCMPPD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VCMPPD takes 4 or 5 operands") - } -} - -func __asm_proxy_VCMPPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VCMPPS(v[0], v[1], v[2], v[3]) - case 5 : return p.VCMPPS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VCMPPS takes 4 or 5 operands") - } -} - -func __asm_proxy_VCMPSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VCMPSD(v[0], v[1], v[2], v[3]) - case 5 : return p.VCMPSD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VCMPSD takes 4 or 5 operands") - } -} - -func __asm_proxy_VCMPSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VCMPSS(v[0], v[1], v[2], v[3]) - case 5 : return p.VCMPSS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VCMPSS takes 4 or 5 operands") - } -} - -func __asm_proxy_VCOMISD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCOMISD(v[0], v[1]) - case 3 : return p.VCOMISD(v[0], v[1], v[2]) - default : panic("instruction VCOMISD takes 2 or 3 operands") - } -} - -func __asm_proxy_VCOMISS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCOMISS(v[0], v[1]) - case 3 : return p.VCOMISS(v[0], v[1], v[2]) - default : panic("instruction VCOMISS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCOMPRESSPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VCOMPRESSPD(v[0], v[1]) - } else { - panic("instruction VCOMPRESSPD takes exactly 2 operands") - } -} - -func __asm_proxy_VCOMPRESSPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VCOMPRESSPS(v[0], v[1]) - } else { - panic("instruction VCOMPRESSPS takes exactly 2 operands") - } -} - -func __asm_proxy_VCVTDQ2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VCVTDQ2PD(v[0], v[1]) - } else { - panic("instruction VCVTDQ2PD takes exactly 2 operands") - } -} - -func __asm_proxy_VCVTDQ2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTDQ2PS(v[0], v[1]) - case 3 : return p.VCVTDQ2PS(v[0], v[1], v[2]) - default : panic("instruction VCVTDQ2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPD2DQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPD2DQ(v[0], v[1]) - case 3 : return p.VCVTPD2DQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPD2DQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPD2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPD2PS(v[0], v[1]) - case 3 : return p.VCVTPD2PS(v[0], v[1], v[2]) - default : panic("instruction VCVTPD2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPD2QQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPD2QQ(v[0], v[1]) - case 3 : return p.VCVTPD2QQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPD2QQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPD2UDQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPD2UDQ(v[0], v[1]) - case 3 : return p.VCVTPD2UDQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPD2UDQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPD2UQQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPD2UQQ(v[0], v[1]) - case 3 : return p.VCVTPD2UQQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPD2UQQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPH2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPH2PS(v[0], v[1]) - case 3 : return p.VCVTPH2PS(v[0], v[1], v[2]) - default : panic("instruction VCVTPH2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPS2DQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPS2DQ(v[0], v[1]) - case 3 : return p.VCVTPS2DQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPS2DQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPS2PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPS2PD(v[0], v[1]) - case 3 : return p.VCVTPS2PD(v[0], v[1], v[2]) - default : panic("instruction VCVTPS2PD takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPS2PH__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTPS2PH(v[0], v[1], v[2]) - case 4 : return p.VCVTPS2PH(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTPS2PH takes 3 or 4 operands") - } -} - -func __asm_proxy_VCVTPS2QQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPS2QQ(v[0], v[1]) - case 3 : return p.VCVTPS2QQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPS2QQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPS2UDQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPS2UDQ(v[0], v[1]) - case 3 : return p.VCVTPS2UDQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPS2UDQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTPS2UQQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTPS2UQQ(v[0], v[1]) - case 3 : return p.VCVTPS2UQQ(v[0], v[1], v[2]) - default : panic("instruction VCVTPS2UQQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTQQ2PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTQQ2PD(v[0], v[1]) - case 3 : return p.VCVTQQ2PD(v[0], v[1], v[2]) - default : panic("instruction VCVTQQ2PD takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTQQ2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTQQ2PS(v[0], v[1]) - case 3 : return p.VCVTQQ2PS(v[0], v[1], v[2]) - default : panic("instruction VCVTQQ2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTSD2SI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTSD2SI(v[0], v[1]) - case 3 : return p.VCVTSD2SI(v[0], v[1], v[2]) - default : panic("instruction VCVTSD2SI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTSD2SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTSD2SS(v[0], v[1], v[2]) - case 4 : return p.VCVTSD2SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTSD2SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VCVTSD2USI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTSD2USI(v[0], v[1]) - case 3 : return p.VCVTSD2USI(v[0], v[1], v[2]) - default : panic("instruction VCVTSD2USI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTSI2SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTSI2SD(v[0], v[1], v[2]) - case 4 : return p.VCVTSI2SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTSI2SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VCVTSI2SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTSI2SS(v[0], v[1], v[2]) - case 4 : return p.VCVTSI2SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTSI2SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VCVTSS2SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTSS2SD(v[0], v[1], v[2]) - case 4 : return p.VCVTSS2SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTSS2SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VCVTSS2SI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTSS2SI(v[0], v[1]) - case 3 : return p.VCVTSS2SI(v[0], v[1], v[2]) - default : panic("instruction VCVTSS2SI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTSS2USI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTSS2USI(v[0], v[1]) - case 3 : return p.VCVTSS2USI(v[0], v[1], v[2]) - default : panic("instruction VCVTSS2USI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPD2DQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPD2DQ(v[0], v[1]) - case 3 : return p.VCVTTPD2DQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPD2DQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPD2QQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPD2QQ(v[0], v[1]) - case 3 : return p.VCVTTPD2QQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPD2QQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPD2UDQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPD2UDQ(v[0], v[1]) - case 3 : return p.VCVTTPD2UDQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPD2UDQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPD2UQQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPD2UQQ(v[0], v[1]) - case 3 : return p.VCVTTPD2UQQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPD2UQQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPS2DQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPS2DQ(v[0], v[1]) - case 3 : return p.VCVTTPS2DQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPS2DQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPS2QQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPS2QQ(v[0], v[1]) - case 3 : return p.VCVTTPS2QQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPS2QQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPS2UDQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPS2UDQ(v[0], v[1]) - case 3 : return p.VCVTTPS2UDQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPS2UDQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTPS2UQQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTPS2UQQ(v[0], v[1]) - case 3 : return p.VCVTTPS2UQQ(v[0], v[1], v[2]) - default : panic("instruction VCVTTPS2UQQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTSD2SI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTSD2SI(v[0], v[1]) - case 3 : return p.VCVTTSD2SI(v[0], v[1], v[2]) - default : panic("instruction VCVTTSD2SI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTSD2USI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTSD2USI(v[0], v[1]) - case 3 : return p.VCVTTSD2USI(v[0], v[1], v[2]) - default : panic("instruction VCVTTSD2USI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTSS2SI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTSS2SI(v[0], v[1]) - case 3 : return p.VCVTTSS2SI(v[0], v[1], v[2]) - default : panic("instruction VCVTTSS2SI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTTSS2USI__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTTSS2USI(v[0], v[1]) - case 3 : return p.VCVTTSS2USI(v[0], v[1], v[2]) - default : panic("instruction VCVTTSS2USI takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTUDQ2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VCVTUDQ2PD(v[0], v[1]) - } else { - panic("instruction VCVTUDQ2PD takes exactly 2 operands") - } -} - -func __asm_proxy_VCVTUDQ2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTUDQ2PS(v[0], v[1]) - case 3 : return p.VCVTUDQ2PS(v[0], v[1], v[2]) - default : panic("instruction VCVTUDQ2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTUQQ2PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTUQQ2PD(v[0], v[1]) - case 3 : return p.VCVTUQQ2PD(v[0], v[1], v[2]) - default : panic("instruction VCVTUQQ2PD takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTUQQ2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VCVTUQQ2PS(v[0], v[1]) - case 3 : return p.VCVTUQQ2PS(v[0], v[1], v[2]) - default : panic("instruction VCVTUQQ2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VCVTUSI2SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTUSI2SD(v[0], v[1], v[2]) - case 4 : return p.VCVTUSI2SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTUSI2SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VCVTUSI2SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VCVTUSI2SS(v[0], v[1], v[2]) - case 4 : return p.VCVTUSI2SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VCVTUSI2SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VDBPSADBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VDBPSADBW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VDBPSADBW takes exactly 4 operands") - } -} - -func __asm_proxy_VDIVPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VDIVPD(v[0], v[1], v[2]) - case 4 : return p.VDIVPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VDIVPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VDIVPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VDIVPS(v[0], v[1], v[2]) - case 4 : return p.VDIVPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VDIVPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VDIVSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VDIVSD(v[0], v[1], v[2]) - case 4 : return p.VDIVSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VDIVSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VDIVSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VDIVSS(v[0], v[1], v[2]) - case 4 : return p.VDIVSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VDIVSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VDPPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VDPPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VDPPD takes exactly 4 operands") - } -} - -func __asm_proxy_VDPPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VDPPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VDPPS takes exactly 4 operands") - } -} - -func __asm_proxy_VEXP2PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VEXP2PD(v[0], v[1]) - case 3 : return p.VEXP2PD(v[0], v[1], v[2]) - default : panic("instruction VEXP2PD takes 2 or 3 operands") - } -} - -func __asm_proxy_VEXP2PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VEXP2PS(v[0], v[1]) - case 3 : return p.VEXP2PS(v[0], v[1], v[2]) - default : panic("instruction VEXP2PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VEXPANDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VEXPANDPD(v[0], v[1]) - } else { - panic("instruction VEXPANDPD takes exactly 2 operands") - } -} - -func __asm_proxy_VEXPANDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VEXPANDPS(v[0], v[1]) - } else { - panic("instruction VEXPANDPS takes exactly 2 operands") - } -} - -func __asm_proxy_VEXTRACTF128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTF128(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTF128 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTF32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTF32X4(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTF32X4 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTF32X8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTF32X8(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTF32X8 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTF64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTF64X2(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTF64X2 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTF64X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTF64X4(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTF64X4 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTI128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTI128(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTI128 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTI32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTI32X4(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTI32X4 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTI32X8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTI32X8(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTI32X8 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTI64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTI64X2(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTI64X2 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTI64X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTI64X4(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTI64X4 takes exactly 3 operands") - } -} - -func __asm_proxy_VEXTRACTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VEXTRACTPS(v[0], v[1], v[2]) - } else { - panic("instruction VEXTRACTPS takes exactly 3 operands") - } -} - -func __asm_proxy_VFIXUPIMMPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VFIXUPIMMPD(v[0], v[1], v[2], v[3]) - case 5 : return p.VFIXUPIMMPD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VFIXUPIMMPD takes 4 or 5 operands") - } -} - -func __asm_proxy_VFIXUPIMMPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VFIXUPIMMPS(v[0], v[1], v[2], v[3]) - case 5 : return p.VFIXUPIMMPS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VFIXUPIMMPS takes 4 or 5 operands") - } -} - -func __asm_proxy_VFIXUPIMMSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VFIXUPIMMSD(v[0], v[1], v[2], v[3]) - case 5 : return p.VFIXUPIMMSD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VFIXUPIMMSD takes 4 or 5 operands") - } -} - -func __asm_proxy_VFIXUPIMMSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VFIXUPIMMSS(v[0], v[1], v[2], v[3]) - case 5 : return p.VFIXUPIMMSS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VFIXUPIMMSS takes 4 or 5 operands") - } -} - -func __asm_proxy_VFMADD132PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD132PD(v[0], v[1], v[2]) - case 4 : return p.VFMADD132PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD132PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD132PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD132PS(v[0], v[1], v[2]) - case 4 : return p.VFMADD132PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD132PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD132SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD132SD(v[0], v[1], v[2]) - case 4 : return p.VFMADD132SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD132SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD132SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD132SS(v[0], v[1], v[2]) - case 4 : return p.VFMADD132SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD132SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD213PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD213PD(v[0], v[1], v[2]) - case 4 : return p.VFMADD213PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD213PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD213PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD213PS(v[0], v[1], v[2]) - case 4 : return p.VFMADD213PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD213PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD213SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD213SD(v[0], v[1], v[2]) - case 4 : return p.VFMADD213SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD213SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD213SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD213SS(v[0], v[1], v[2]) - case 4 : return p.VFMADD213SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD213SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD231PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD231PD(v[0], v[1], v[2]) - case 4 : return p.VFMADD231PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD231PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD231PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD231PS(v[0], v[1], v[2]) - case 4 : return p.VFMADD231PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD231PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD231SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD231SD(v[0], v[1], v[2]) - case 4 : return p.VFMADD231SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD231SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADD231SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADD231SS(v[0], v[1], v[2]) - case 4 : return p.VFMADD231SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADD231SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMADDPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMADDPD takes exactly 4 operands") - } -} - -func __asm_proxy_VFMADDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMADDPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMADDPS takes exactly 4 operands") - } -} - -func __asm_proxy_VFMADDSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMADDSD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMADDSD takes exactly 4 operands") - } -} - -func __asm_proxy_VFMADDSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMADDSS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMADDSS takes exactly 4 operands") - } -} - -func __asm_proxy_VFMADDSUB132PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADDSUB132PD(v[0], v[1], v[2]) - case 4 : return p.VFMADDSUB132PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADDSUB132PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDSUB132PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADDSUB132PS(v[0], v[1], v[2]) - case 4 : return p.VFMADDSUB132PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADDSUB132PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDSUB213PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADDSUB213PD(v[0], v[1], v[2]) - case 4 : return p.VFMADDSUB213PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADDSUB213PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDSUB213PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADDSUB213PS(v[0], v[1], v[2]) - case 4 : return p.VFMADDSUB213PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADDSUB213PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDSUB231PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADDSUB231PD(v[0], v[1], v[2]) - case 4 : return p.VFMADDSUB231PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADDSUB231PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDSUB231PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMADDSUB231PS(v[0], v[1], v[2]) - case 4 : return p.VFMADDSUB231PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMADDSUB231PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMADDSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMADDSUBPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMADDSUBPD takes exactly 4 operands") - } -} - -func __asm_proxy_VFMADDSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMADDSUBPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMADDSUBPS takes exactly 4 operands") - } -} - -func __asm_proxy_VFMSUB132PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB132PD(v[0], v[1], v[2]) - case 4 : return p.VFMSUB132PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB132PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB132PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB132PS(v[0], v[1], v[2]) - case 4 : return p.VFMSUB132PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB132PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB132SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB132SD(v[0], v[1], v[2]) - case 4 : return p.VFMSUB132SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB132SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB132SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB132SS(v[0], v[1], v[2]) - case 4 : return p.VFMSUB132SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB132SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB213PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB213PD(v[0], v[1], v[2]) - case 4 : return p.VFMSUB213PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB213PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB213PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB213PS(v[0], v[1], v[2]) - case 4 : return p.VFMSUB213PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB213PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB213SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB213SD(v[0], v[1], v[2]) - case 4 : return p.VFMSUB213SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB213SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB213SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB213SS(v[0], v[1], v[2]) - case 4 : return p.VFMSUB213SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB213SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB231PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB231PD(v[0], v[1], v[2]) - case 4 : return p.VFMSUB231PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB231PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB231PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB231PS(v[0], v[1], v[2]) - case 4 : return p.VFMSUB231PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB231PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB231SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB231SD(v[0], v[1], v[2]) - case 4 : return p.VFMSUB231SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB231SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUB231SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUB231SS(v[0], v[1], v[2]) - case 4 : return p.VFMSUB231SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUB231SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADD132PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUBADD132PD(v[0], v[1], v[2]) - case 4 : return p.VFMSUBADD132PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUBADD132PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADD132PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUBADD132PS(v[0], v[1], v[2]) - case 4 : return p.VFMSUBADD132PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUBADD132PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADD213PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUBADD213PD(v[0], v[1], v[2]) - case 4 : return p.VFMSUBADD213PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUBADD213PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADD213PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUBADD213PS(v[0], v[1], v[2]) - case 4 : return p.VFMSUBADD213PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUBADD213PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADD231PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUBADD231PD(v[0], v[1], v[2]) - case 4 : return p.VFMSUBADD231PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUBADD231PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADD231PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFMSUBADD231PS(v[0], v[1], v[2]) - case 4 : return p.VFMSUBADD231PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFMSUBADD231PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFMSUBADDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMSUBADDPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMSUBADDPD takes exactly 4 operands") - } -} - -func __asm_proxy_VFMSUBADDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMSUBADDPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMSUBADDPS takes exactly 4 operands") - } -} - -func __asm_proxy_VFMSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMSUBPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMSUBPD takes exactly 4 operands") - } -} - -func __asm_proxy_VFMSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMSUBPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMSUBPS takes exactly 4 operands") - } -} - -func __asm_proxy_VFMSUBSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMSUBSD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMSUBSD takes exactly 4 operands") - } -} - -func __asm_proxy_VFMSUBSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFMSUBSS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFMSUBSS takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMADD132PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD132PD(v[0], v[1], v[2]) - case 4 : return p.VFNMADD132PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD132PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD132PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD132PS(v[0], v[1], v[2]) - case 4 : return p.VFNMADD132PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD132PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD132SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD132SD(v[0], v[1], v[2]) - case 4 : return p.VFNMADD132SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD132SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD132SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD132SS(v[0], v[1], v[2]) - case 4 : return p.VFNMADD132SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD132SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD213PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD213PD(v[0], v[1], v[2]) - case 4 : return p.VFNMADD213PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD213PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD213PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD213PS(v[0], v[1], v[2]) - case 4 : return p.VFNMADD213PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD213PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD213SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD213SD(v[0], v[1], v[2]) - case 4 : return p.VFNMADD213SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD213SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD213SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD213SS(v[0], v[1], v[2]) - case 4 : return p.VFNMADD213SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD213SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD231PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD231PD(v[0], v[1], v[2]) - case 4 : return p.VFNMADD231PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD231PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD231PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD231PS(v[0], v[1], v[2]) - case 4 : return p.VFNMADD231PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD231PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD231SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD231SD(v[0], v[1], v[2]) - case 4 : return p.VFNMADD231SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD231SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADD231SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMADD231SS(v[0], v[1], v[2]) - case 4 : return p.VFNMADD231SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMADD231SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMADDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMADDPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMADDPD takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMADDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMADDPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMADDPS takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMADDSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMADDSD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMADDSD takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMADDSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMADDSS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMADDSS takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMSUB132PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB132PD(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB132PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB132PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB132PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB132PS(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB132PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB132PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB132SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB132SD(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB132SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB132SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB132SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB132SS(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB132SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB132SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB213PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB213PD(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB213PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB213PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB213PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB213PS(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB213PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB213PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB213SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB213SD(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB213SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB213SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB213SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB213SS(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB213SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB213SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB231PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB231PD(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB231PD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB231PD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB231PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB231PS(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB231PS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB231PS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB231SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB231SD(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB231SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB231SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUB231SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VFNMSUB231SS(v[0], v[1], v[2]) - case 4 : return p.VFNMSUB231SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VFNMSUB231SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VFNMSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMSUBPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMSUBPD takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMSUBPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMSUBPS takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMSUBSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMSUBSD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMSUBSD takes exactly 4 operands") - } -} - -func __asm_proxy_VFNMSUBSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VFNMSUBSS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VFNMSUBSS takes exactly 4 operands") - } -} - -func __asm_proxy_VFPCLASSPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VFPCLASSPD(v[0], v[1], v[2]) - } else { - panic("instruction VFPCLASSPD takes exactly 3 operands") - } -} - -func __asm_proxy_VFPCLASSPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VFPCLASSPS(v[0], v[1], v[2]) - } else { - panic("instruction VFPCLASSPS takes exactly 3 operands") - } -} - -func __asm_proxy_VFPCLASSSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VFPCLASSSD(v[0], v[1], v[2]) - } else { - panic("instruction VFPCLASSSD takes exactly 3 operands") - } -} - -func __asm_proxy_VFPCLASSSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VFPCLASSSS(v[0], v[1], v[2]) - } else { - panic("instruction VFPCLASSSS takes exactly 3 operands") - } -} - -func __asm_proxy_VFRCZPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VFRCZPD(v[0], v[1]) - } else { - panic("instruction VFRCZPD takes exactly 2 operands") - } -} - -func __asm_proxy_VFRCZPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VFRCZPS(v[0], v[1]) - } else { - panic("instruction VFRCZPS takes exactly 2 operands") - } -} - -func __asm_proxy_VFRCZSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VFRCZSD(v[0], v[1]) - } else { - panic("instruction VFRCZSD takes exactly 2 operands") - } -} - -func __asm_proxy_VFRCZSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VFRCZSS(v[0], v[1]) - } else { - panic("instruction VFRCZSS takes exactly 2 operands") - } -} - -func __asm_proxy_VGATHERDPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VGATHERDPD(v[0], v[1]) - case 3 : return p.VGATHERDPD(v[0], v[1], v[2]) - default : panic("instruction VGATHERDPD takes 2 or 3 operands") - } -} - -func __asm_proxy_VGATHERDPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VGATHERDPS(v[0], v[1]) - case 3 : return p.VGATHERDPS(v[0], v[1], v[2]) - default : panic("instruction VGATHERDPS takes 2 or 3 operands") - } -} - -func __asm_proxy_VGATHERPF0DPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF0DPD(v[0]) - } else { - panic("instruction VGATHERPF0DPD takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF0DPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF0DPS(v[0]) - } else { - panic("instruction VGATHERPF0DPS takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF0QPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF0QPD(v[0]) - } else { - panic("instruction VGATHERPF0QPD takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF0QPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF0QPS(v[0]) - } else { - panic("instruction VGATHERPF0QPS takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF1DPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF1DPD(v[0]) - } else { - panic("instruction VGATHERPF1DPD takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF1DPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF1DPS(v[0]) - } else { - panic("instruction VGATHERPF1DPS takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF1QPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF1QPD(v[0]) - } else { - panic("instruction VGATHERPF1QPD takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERPF1QPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VGATHERPF1QPS(v[0]) - } else { - panic("instruction VGATHERPF1QPS takes exactly 1 operand") - } -} - -func __asm_proxy_VGATHERQPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VGATHERQPD(v[0], v[1]) - case 3 : return p.VGATHERQPD(v[0], v[1], v[2]) - default : panic("instruction VGATHERQPD takes 2 or 3 operands") - } -} - -func __asm_proxy_VGATHERQPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VGATHERQPS(v[0], v[1]) - case 3 : return p.VGATHERQPS(v[0], v[1], v[2]) - default : panic("instruction VGATHERQPS takes 2 or 3 operands") - } -} - -func __asm_proxy_VGETEXPPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VGETEXPPD(v[0], v[1]) - case 3 : return p.VGETEXPPD(v[0], v[1], v[2]) - default : panic("instruction VGETEXPPD takes 2 or 3 operands") - } -} - -func __asm_proxy_VGETEXPPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VGETEXPPS(v[0], v[1]) - case 3 : return p.VGETEXPPS(v[0], v[1], v[2]) - default : panic("instruction VGETEXPPS takes 2 or 3 operands") - } -} - -func __asm_proxy_VGETEXPSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VGETEXPSD(v[0], v[1], v[2]) - case 4 : return p.VGETEXPSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VGETEXPSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VGETEXPSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VGETEXPSS(v[0], v[1], v[2]) - case 4 : return p.VGETEXPSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VGETEXPSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VGETMANTPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VGETMANTPD(v[0], v[1], v[2]) - case 4 : return p.VGETMANTPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VGETMANTPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VGETMANTPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VGETMANTPS(v[0], v[1], v[2]) - case 4 : return p.VGETMANTPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VGETMANTPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VGETMANTSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VGETMANTSD(v[0], v[1], v[2], v[3]) - case 5 : return p.VGETMANTSD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VGETMANTSD takes 4 or 5 operands") - } -} - -func __asm_proxy_VGETMANTSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VGETMANTSS(v[0], v[1], v[2], v[3]) - case 5 : return p.VGETMANTSS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VGETMANTSS takes 4 or 5 operands") - } -} - -func __asm_proxy_VHADDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VHADDPD(v[0], v[1], v[2]) - } else { - panic("instruction VHADDPD takes exactly 3 operands") - } -} - -func __asm_proxy_VHADDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VHADDPS(v[0], v[1], v[2]) - } else { - panic("instruction VHADDPS takes exactly 3 operands") - } -} - -func __asm_proxy_VHSUBPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VHSUBPD(v[0], v[1], v[2]) - } else { - panic("instruction VHSUBPD takes exactly 3 operands") - } -} - -func __asm_proxy_VHSUBPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VHSUBPS(v[0], v[1], v[2]) - } else { - panic("instruction VHSUBPS takes exactly 3 operands") - } -} - -func __asm_proxy_VINSERTF128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTF128(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTF128 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTF32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTF32X4(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTF32X4 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTF32X8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTF32X8(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTF32X8 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTF64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTF64X2(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTF64X2 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTF64X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTF64X4(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTF64X4 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTI128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTI128(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTI128 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTI32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTI32X4(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTI32X4 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTI32X8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTI32X8(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTI32X8 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTI64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTI64X2(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTI64X2 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTI64X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTI64X4(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTI64X4 takes exactly 4 operands") - } -} - -func __asm_proxy_VINSERTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VINSERTPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VINSERTPS takes exactly 4 operands") - } -} - -func __asm_proxy_VLDDQU__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VLDDQU(v[0], v[1]) - } else { - panic("instruction VLDDQU takes exactly 2 operands") - } -} - -func __asm_proxy_VLDMXCSR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VLDMXCSR(v[0]) - } else { - panic("instruction VLDMXCSR takes exactly 1 operand") - } -} - -func __asm_proxy_VMASKMOVDQU__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMASKMOVDQU(v[0], v[1]) - } else { - panic("instruction VMASKMOVDQU takes exactly 2 operands") - } -} - -func __asm_proxy_VMASKMOVPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VMASKMOVPD(v[0], v[1], v[2]) - } else { - panic("instruction VMASKMOVPD takes exactly 3 operands") - } -} - -func __asm_proxy_VMASKMOVPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VMASKMOVPS(v[0], v[1], v[2]) - } else { - panic("instruction VMASKMOVPS takes exactly 3 operands") - } -} - -func __asm_proxy_VMAXPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMAXPD(v[0], v[1], v[2]) - case 4 : return p.VMAXPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VMAXPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VMAXPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMAXPS(v[0], v[1], v[2]) - case 4 : return p.VMAXPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VMAXPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VMAXSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMAXSD(v[0], v[1], v[2]) - case 4 : return p.VMAXSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VMAXSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VMAXSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMAXSS(v[0], v[1], v[2]) - case 4 : return p.VMAXSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VMAXSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VMINPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMINPD(v[0], v[1], v[2]) - case 4 : return p.VMINPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VMINPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VMINPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMINPS(v[0], v[1], v[2]) - case 4 : return p.VMINPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VMINPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VMINSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMINSD(v[0], v[1], v[2]) - case 4 : return p.VMINSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VMINSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VMINSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMINSS(v[0], v[1], v[2]) - case 4 : return p.VMINSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VMINSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VMOVAPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVAPD(v[0], v[1]) - } else { - panic("instruction VMOVAPD takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVAPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVAPS(v[0], v[1]) - } else { - panic("instruction VMOVAPS takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVD(v[0], v[1]) - } else { - panic("instruction VMOVD takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDDUP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDDUP(v[0], v[1]) - } else { - panic("instruction VMOVDDUP takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQA(v[0], v[1]) - } else { - panic("instruction VMOVDQA takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQA32__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQA32(v[0], v[1]) - } else { - panic("instruction VMOVDQA32 takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQA64__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQA64(v[0], v[1]) - } else { - panic("instruction VMOVDQA64 takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQU__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQU(v[0], v[1]) - } else { - panic("instruction VMOVDQU takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQU16__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQU16(v[0], v[1]) - } else { - panic("instruction VMOVDQU16 takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQU32__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQU32(v[0], v[1]) - } else { - panic("instruction VMOVDQU32 takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQU64__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQU64(v[0], v[1]) - } else { - panic("instruction VMOVDQU64 takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVDQU8__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVDQU8(v[0], v[1]) - } else { - panic("instruction VMOVDQU8 takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVHLPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VMOVHLPS(v[0], v[1], v[2]) - } else { - panic("instruction VMOVHLPS takes exactly 3 operands") - } -} - -func __asm_proxy_VMOVHPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VMOVHPD(v[0], v[1]) - case 3 : return p.VMOVHPD(v[0], v[1], v[2]) - default : panic("instruction VMOVHPD takes 2 or 3 operands") - } -} - -func __asm_proxy_VMOVHPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VMOVHPS(v[0], v[1]) - case 3 : return p.VMOVHPS(v[0], v[1], v[2]) - default : panic("instruction VMOVHPS takes 2 or 3 operands") - } -} - -func __asm_proxy_VMOVLHPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VMOVLHPS(v[0], v[1], v[2]) - } else { - panic("instruction VMOVLHPS takes exactly 3 operands") - } -} - -func __asm_proxy_VMOVLPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VMOVLPD(v[0], v[1]) - case 3 : return p.VMOVLPD(v[0], v[1], v[2]) - default : panic("instruction VMOVLPD takes 2 or 3 operands") - } -} - -func __asm_proxy_VMOVLPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VMOVLPS(v[0], v[1]) - case 3 : return p.VMOVLPS(v[0], v[1], v[2]) - default : panic("instruction VMOVLPS takes 2 or 3 operands") - } -} - -func __asm_proxy_VMOVMSKPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVMSKPD(v[0], v[1]) - } else { - panic("instruction VMOVMSKPD takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVMSKPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVMSKPS(v[0], v[1]) - } else { - panic("instruction VMOVMSKPS takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVNTDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVNTDQ(v[0], v[1]) - } else { - panic("instruction VMOVNTDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVNTDQA__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVNTDQA(v[0], v[1]) - } else { - panic("instruction VMOVNTDQA takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVNTPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVNTPD(v[0], v[1]) - } else { - panic("instruction VMOVNTPD takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVNTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVNTPS(v[0], v[1]) - } else { - panic("instruction VMOVNTPS takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVQ(v[0], v[1]) - } else { - panic("instruction VMOVQ takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VMOVSD(v[0], v[1]) - case 3 : return p.VMOVSD(v[0], v[1], v[2]) - default : panic("instruction VMOVSD takes 2 or 3 operands") - } -} - -func __asm_proxy_VMOVSHDUP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVSHDUP(v[0], v[1]) - } else { - panic("instruction VMOVSHDUP takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVSLDUP__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVSLDUP(v[0], v[1]) - } else { - panic("instruction VMOVSLDUP takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VMOVSS(v[0], v[1]) - case 3 : return p.VMOVSS(v[0], v[1], v[2]) - default : panic("instruction VMOVSS takes 2 or 3 operands") - } -} - -func __asm_proxy_VMOVUPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVUPD(v[0], v[1]) - } else { - panic("instruction VMOVUPD takes exactly 2 operands") - } -} - -func __asm_proxy_VMOVUPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VMOVUPS(v[0], v[1]) - } else { - panic("instruction VMOVUPS takes exactly 2 operands") - } -} - -func __asm_proxy_VMPSADBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VMPSADBW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VMPSADBW takes exactly 4 operands") - } -} - -func __asm_proxy_VMULPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMULPD(v[0], v[1], v[2]) - case 4 : return p.VMULPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VMULPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VMULPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMULPS(v[0], v[1], v[2]) - case 4 : return p.VMULPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VMULPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VMULSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMULSD(v[0], v[1], v[2]) - case 4 : return p.VMULSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VMULSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VMULSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VMULSS(v[0], v[1], v[2]) - case 4 : return p.VMULSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VMULSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VORPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VORPD(v[0], v[1], v[2]) - } else { - panic("instruction VORPD takes exactly 3 operands") - } -} - -func __asm_proxy_VORPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VORPS(v[0], v[1], v[2]) - } else { - panic("instruction VORPS takes exactly 3 operands") - } -} - -func __asm_proxy_VPABSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPABSB(v[0], v[1]) - } else { - panic("instruction VPABSB takes exactly 2 operands") - } -} - -func __asm_proxy_VPABSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPABSD(v[0], v[1]) - } else { - panic("instruction VPABSD takes exactly 2 operands") - } -} - -func __asm_proxy_VPABSQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPABSQ(v[0], v[1]) - } else { - panic("instruction VPABSQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPABSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPABSW(v[0], v[1]) - } else { - panic("instruction VPABSW takes exactly 2 operands") - } -} - -func __asm_proxy_VPACKSSDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPACKSSDW(v[0], v[1], v[2]) - } else { - panic("instruction VPACKSSDW takes exactly 3 operands") - } -} - -func __asm_proxy_VPACKSSWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPACKSSWB(v[0], v[1], v[2]) - } else { - panic("instruction VPACKSSWB takes exactly 3 operands") - } -} - -func __asm_proxy_VPACKUSDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPACKUSDW(v[0], v[1], v[2]) - } else { - panic("instruction VPACKUSDW takes exactly 3 operands") - } -} - -func __asm_proxy_VPACKUSWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPACKUSWB(v[0], v[1], v[2]) - } else { - panic("instruction VPACKUSWB takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDB(v[0], v[1], v[2]) - } else { - panic("instruction VPADDB takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDD(v[0], v[1], v[2]) - } else { - panic("instruction VPADDD takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPADDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDSB(v[0], v[1], v[2]) - } else { - panic("instruction VPADDSB takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDSW(v[0], v[1], v[2]) - } else { - panic("instruction VPADDSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDUSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDUSB(v[0], v[1], v[2]) - } else { - panic("instruction VPADDUSB takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDUSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDUSW(v[0], v[1], v[2]) - } else { - panic("instruction VPADDUSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPADDW(v[0], v[1], v[2]) - } else { - panic("instruction VPADDW takes exactly 3 operands") - } -} - -func __asm_proxy_VPALIGNR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPALIGNR(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPALIGNR takes exactly 4 operands") - } -} - -func __asm_proxy_VPAND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPAND(v[0], v[1], v[2]) - } else { - panic("instruction VPAND takes exactly 3 operands") - } -} - -func __asm_proxy_VPANDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPANDD(v[0], v[1], v[2]) - } else { - panic("instruction VPANDD takes exactly 3 operands") - } -} - -func __asm_proxy_VPANDN__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPANDN(v[0], v[1], v[2]) - } else { - panic("instruction VPANDN takes exactly 3 operands") - } -} - -func __asm_proxy_VPANDND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPANDND(v[0], v[1], v[2]) - } else { - panic("instruction VPANDND takes exactly 3 operands") - } -} - -func __asm_proxy_VPANDNQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPANDNQ(v[0], v[1], v[2]) - } else { - panic("instruction VPANDNQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPANDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPANDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPANDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPAVGB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPAVGB(v[0], v[1], v[2]) - } else { - panic("instruction VPAVGB takes exactly 3 operands") - } -} - -func __asm_proxy_VPAVGW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPAVGW(v[0], v[1], v[2]) - } else { - panic("instruction VPAVGW takes exactly 3 operands") - } -} - -func __asm_proxy_VPBLENDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPBLENDD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPBLENDD takes exactly 4 operands") - } -} - -func __asm_proxy_VPBLENDMB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPBLENDMB(v[0], v[1], v[2]) - } else { - panic("instruction VPBLENDMB takes exactly 3 operands") - } -} - -func __asm_proxy_VPBLENDMD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPBLENDMD(v[0], v[1], v[2]) - } else { - panic("instruction VPBLENDMD takes exactly 3 operands") - } -} - -func __asm_proxy_VPBLENDMQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPBLENDMQ(v[0], v[1], v[2]) - } else { - panic("instruction VPBLENDMQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPBLENDMW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPBLENDMW(v[0], v[1], v[2]) - } else { - panic("instruction VPBLENDMW takes exactly 3 operands") - } -} - -func __asm_proxy_VPBLENDVB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPBLENDVB(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPBLENDVB takes exactly 4 operands") - } -} - -func __asm_proxy_VPBLENDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPBLENDW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPBLENDW takes exactly 4 operands") - } -} - -func __asm_proxy_VPBROADCASTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPBROADCASTB(v[0], v[1]) - } else { - panic("instruction VPBROADCASTB takes exactly 2 operands") - } -} - -func __asm_proxy_VPBROADCASTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPBROADCASTD(v[0], v[1]) - } else { - panic("instruction VPBROADCASTD takes exactly 2 operands") - } -} - -func __asm_proxy_VPBROADCASTMB2Q__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPBROADCASTMB2Q(v[0], v[1]) - } else { - panic("instruction VPBROADCASTMB2Q takes exactly 2 operands") - } -} - -func __asm_proxy_VPBROADCASTMW2D__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPBROADCASTMW2D(v[0], v[1]) - } else { - panic("instruction VPBROADCASTMW2D takes exactly 2 operands") - } -} - -func __asm_proxy_VPBROADCASTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPBROADCASTQ(v[0], v[1]) - } else { - panic("instruction VPBROADCASTQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPBROADCASTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPBROADCASTW(v[0], v[1]) - } else { - panic("instruction VPBROADCASTW takes exactly 2 operands") - } -} - -func __asm_proxy_VPCLMULQDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCLMULQDQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCLMULQDQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMOV__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMOV(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMOV takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPB(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPB takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPD takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPEQB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPEQB(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPEQB takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPEQD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPEQD(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPEQD takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPEQQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPEQQ(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPEQQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPEQW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPEQW(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPEQW takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPESTRI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPESTRI(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPESTRI takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPESTRM__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPESTRM(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPESTRM takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPGTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPGTB(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPGTB takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPGTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPGTD(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPGTD takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPGTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPGTQ(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPGTQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPGTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPGTW(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPGTW takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPISTRI__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPISTRI(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPISTRI takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPISTRM__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPCMPISTRM(v[0], v[1], v[2]) - } else { - panic("instruction VPCMPISTRM takes exactly 3 operands") - } -} - -func __asm_proxy_VPCMPQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPUB(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPUB takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPUD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPUD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPUD takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPUQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPUQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPUQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPUW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPUW takes exactly 4 operands") - } -} - -func __asm_proxy_VPCMPW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCMPW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCMPW takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMB(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMB takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMD takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMPRESSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPCOMPRESSD(v[0], v[1]) - } else { - panic("instruction VPCOMPRESSD takes exactly 2 operands") - } -} - -func __asm_proxy_VPCOMPRESSQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPCOMPRESSQ(v[0], v[1]) - } else { - panic("instruction VPCOMPRESSQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPCOMQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMUB(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMUB takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMUD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMUD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMUD takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMUQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMUQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMUQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMUW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMUW takes exactly 4 operands") - } -} - -func __asm_proxy_VPCOMW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPCOMW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPCOMW takes exactly 4 operands") - } -} - -func __asm_proxy_VPCONFLICTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPCONFLICTD(v[0], v[1]) - } else { - panic("instruction VPCONFLICTD takes exactly 2 operands") - } -} - -func __asm_proxy_VPCONFLICTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPCONFLICTQ(v[0], v[1]) - } else { - panic("instruction VPCONFLICTQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPERM2F128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPERM2F128(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPERM2F128 takes exactly 4 operands") - } -} - -func __asm_proxy_VPERM2I128__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPERM2I128(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPERM2I128 takes exactly 4 operands") - } -} - -func __asm_proxy_VPERMB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMB(v[0], v[1], v[2]) - } else { - panic("instruction VPERMB takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMD(v[0], v[1], v[2]) - } else { - panic("instruction VPERMD takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMI2B__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMI2B(v[0], v[1], v[2]) - } else { - panic("instruction VPERMI2B takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMI2D__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMI2D(v[0], v[1], v[2]) - } else { - panic("instruction VPERMI2D takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMI2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMI2PD(v[0], v[1], v[2]) - } else { - panic("instruction VPERMI2PD takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMI2PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMI2PS(v[0], v[1], v[2]) - } else { - panic("instruction VPERMI2PS takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMI2Q__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMI2Q(v[0], v[1], v[2]) - } else { - panic("instruction VPERMI2Q takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMI2W__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMI2W(v[0], v[1], v[2]) - } else { - panic("instruction VPERMI2W takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMIL2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 5 { - return p.VPERMIL2PD(v[0], v[1], v[2], v[3], v[4]) - } else { - panic("instruction VPERMIL2PD takes exactly 5 operands") - } -} - -func __asm_proxy_VPERMIL2PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 5 { - return p.VPERMIL2PS(v[0], v[1], v[2], v[3], v[4]) - } else { - panic("instruction VPERMIL2PS takes exactly 5 operands") - } -} - -func __asm_proxy_VPERMILPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMILPD(v[0], v[1], v[2]) - } else { - panic("instruction VPERMILPD takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMILPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMILPS(v[0], v[1], v[2]) - } else { - panic("instruction VPERMILPS takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMPD(v[0], v[1], v[2]) - } else { - panic("instruction VPERMPD takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMPS(v[0], v[1], v[2]) - } else { - panic("instruction VPERMPS takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMQ(v[0], v[1], v[2]) - } else { - panic("instruction VPERMQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMT2B__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMT2B(v[0], v[1], v[2]) - } else { - panic("instruction VPERMT2B takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMT2D__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMT2D(v[0], v[1], v[2]) - } else { - panic("instruction VPERMT2D takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMT2PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMT2PD(v[0], v[1], v[2]) - } else { - panic("instruction VPERMT2PD takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMT2PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMT2PS(v[0], v[1], v[2]) - } else { - panic("instruction VPERMT2PS takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMT2Q__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMT2Q(v[0], v[1], v[2]) - } else { - panic("instruction VPERMT2Q takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMT2W__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMT2W(v[0], v[1], v[2]) - } else { - panic("instruction VPERMT2W takes exactly 3 operands") - } -} - -func __asm_proxy_VPERMW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPERMW(v[0], v[1], v[2]) - } else { - panic("instruction VPERMW takes exactly 3 operands") - } -} - -func __asm_proxy_VPEXPANDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPEXPANDD(v[0], v[1]) - } else { - panic("instruction VPEXPANDD takes exactly 2 operands") - } -} - -func __asm_proxy_VPEXPANDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPEXPANDQ(v[0], v[1]) - } else { - panic("instruction VPEXPANDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPEXTRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPEXTRB(v[0], v[1], v[2]) - } else { - panic("instruction VPEXTRB takes exactly 3 operands") - } -} - -func __asm_proxy_VPEXTRD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPEXTRD(v[0], v[1], v[2]) - } else { - panic("instruction VPEXTRD takes exactly 3 operands") - } -} - -func __asm_proxy_VPEXTRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPEXTRQ(v[0], v[1], v[2]) - } else { - panic("instruction VPEXTRQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPEXTRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPEXTRW(v[0], v[1], v[2]) - } else { - panic("instruction VPEXTRW takes exactly 3 operands") - } -} - -func __asm_proxy_VPGATHERDD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VPGATHERDD(v[0], v[1]) - case 3 : return p.VPGATHERDD(v[0], v[1], v[2]) - default : panic("instruction VPGATHERDD takes 2 or 3 operands") - } -} - -func __asm_proxy_VPGATHERDQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VPGATHERDQ(v[0], v[1]) - case 3 : return p.VPGATHERDQ(v[0], v[1], v[2]) - default : panic("instruction VPGATHERDQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VPGATHERQD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VPGATHERQD(v[0], v[1]) - case 3 : return p.VPGATHERQD(v[0], v[1], v[2]) - default : panic("instruction VPGATHERQD takes 2 or 3 operands") - } -} - -func __asm_proxy_VPGATHERQQ__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VPGATHERQQ(v[0], v[1]) - case 3 : return p.VPGATHERQQ(v[0], v[1], v[2]) - default : panic("instruction VPGATHERQQ takes 2 or 3 operands") - } -} - -func __asm_proxy_VPHADDBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDBD(v[0], v[1]) - } else { - panic("instruction VPHADDBD takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDBQ(v[0], v[1]) - } else { - panic("instruction VPHADDBQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDBW(v[0], v[1]) - } else { - panic("instruction VPHADDBW takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPHADDD(v[0], v[1], v[2]) - } else { - panic("instruction VPHADDD takes exactly 3 operands") - } -} - -func __asm_proxy_VPHADDDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDDQ(v[0], v[1]) - } else { - panic("instruction VPHADDDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPHADDSW(v[0], v[1], v[2]) - } else { - panic("instruction VPHADDSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPHADDUBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDUBD(v[0], v[1]) - } else { - panic("instruction VPHADDUBD takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDUBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDUBQ(v[0], v[1]) - } else { - panic("instruction VPHADDUBQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDUBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDUBW(v[0], v[1]) - } else { - panic("instruction VPHADDUBW takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDUDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDUDQ(v[0], v[1]) - } else { - panic("instruction VPHADDUDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDUWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDUWD(v[0], v[1]) - } else { - panic("instruction VPHADDUWD takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDUWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDUWQ(v[0], v[1]) - } else { - panic("instruction VPHADDUWQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPHADDW(v[0], v[1], v[2]) - } else { - panic("instruction VPHADDW takes exactly 3 operands") - } -} - -func __asm_proxy_VPHADDWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDWD(v[0], v[1]) - } else { - panic("instruction VPHADDWD takes exactly 2 operands") - } -} - -func __asm_proxy_VPHADDWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHADDWQ(v[0], v[1]) - } else { - panic("instruction VPHADDWQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHMINPOSUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHMINPOSUW(v[0], v[1]) - } else { - panic("instruction VPHMINPOSUW takes exactly 2 operands") - } -} - -func __asm_proxy_VPHSUBBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHSUBBW(v[0], v[1]) - } else { - panic("instruction VPHSUBBW takes exactly 2 operands") - } -} - -func __asm_proxy_VPHSUBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPHSUBD(v[0], v[1], v[2]) - } else { - panic("instruction VPHSUBD takes exactly 3 operands") - } -} - -func __asm_proxy_VPHSUBDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHSUBDQ(v[0], v[1]) - } else { - panic("instruction VPHSUBDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPHSUBSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPHSUBSW(v[0], v[1], v[2]) - } else { - panic("instruction VPHSUBSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPHSUBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPHSUBW(v[0], v[1], v[2]) - } else { - panic("instruction VPHSUBW takes exactly 3 operands") - } -} - -func __asm_proxy_VPHSUBWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPHSUBWD(v[0], v[1]) - } else { - panic("instruction VPHSUBWD takes exactly 2 operands") - } -} - -func __asm_proxy_VPINSRB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPINSRB(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPINSRB takes exactly 4 operands") - } -} - -func __asm_proxy_VPINSRD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPINSRD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPINSRD takes exactly 4 operands") - } -} - -func __asm_proxy_VPINSRQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPINSRQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPINSRQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPINSRW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPINSRW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPINSRW takes exactly 4 operands") - } -} - -func __asm_proxy_VPLZCNTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPLZCNTD(v[0], v[1]) - } else { - panic("instruction VPLZCNTD takes exactly 2 operands") - } -} - -func __asm_proxy_VPLZCNTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPLZCNTQ(v[0], v[1]) - } else { - panic("instruction VPLZCNTQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMACSDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSDD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSDD takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSDQH__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSDQH(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSDQH takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSDQL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSDQL(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSDQL takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSSDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSSDD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSSDD takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSSDQH__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSSDQH(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSSDQH takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSSDQL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSSDQL(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSSDQL takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSSWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSSWD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSSWD takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSSWW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSSWW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSSWW takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSWD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSWD takes exactly 4 operands") - } -} - -func __asm_proxy_VPMACSWW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMACSWW(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMACSWW takes exactly 4 operands") - } -} - -func __asm_proxy_VPMADCSSWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMADCSSWD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMADCSSWD takes exactly 4 operands") - } -} - -func __asm_proxy_VPMADCSWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPMADCSWD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPMADCSWD takes exactly 4 operands") - } -} - -func __asm_proxy_VPMADD52HUQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMADD52HUQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMADD52HUQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMADD52LUQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMADD52LUQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMADD52LUQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMADDUBSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMADDUBSW(v[0], v[1], v[2]) - } else { - panic("instruction VPMADDUBSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMADDWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMADDWD(v[0], v[1], v[2]) - } else { - panic("instruction VPMADDWD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMASKMOVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMASKMOVD(v[0], v[1], v[2]) - } else { - panic("instruction VPMASKMOVD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMASKMOVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMASKMOVQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMASKMOVQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXSB(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXSB takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXSD(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXSD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXSQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXSQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXSQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXSW(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXUB(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXUB takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXUD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXUD(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXUD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXUQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXUQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXUQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMAXUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMAXUW(v[0], v[1], v[2]) - } else { - panic("instruction VPMAXUW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINSB(v[0], v[1], v[2]) - } else { - panic("instruction VPMINSB takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINSD(v[0], v[1], v[2]) - } else { - panic("instruction VPMINSD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINSQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINSQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMINSQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINSW(v[0], v[1], v[2]) - } else { - panic("instruction VPMINSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINUB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINUB(v[0], v[1], v[2]) - } else { - panic("instruction VPMINUB takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINUD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINUD(v[0], v[1], v[2]) - } else { - panic("instruction VPMINUD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINUQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINUQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMINUQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMINUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMINUW(v[0], v[1], v[2]) - } else { - panic("instruction VPMINUW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMOVB2M__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVB2M(v[0], v[1]) - } else { - panic("instruction VPMOVB2M takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVD2M__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVD2M(v[0], v[1]) - } else { - panic("instruction VPMOVD2M takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVDB(v[0], v[1]) - } else { - panic("instruction VPMOVDB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVDW(v[0], v[1]) - } else { - panic("instruction VPMOVDW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVM2B__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVM2B(v[0], v[1]) - } else { - panic("instruction VPMOVM2B takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVM2D__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVM2D(v[0], v[1]) - } else { - panic("instruction VPMOVM2D takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVM2Q__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVM2Q(v[0], v[1]) - } else { - panic("instruction VPMOVM2Q takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVM2W__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVM2W(v[0], v[1]) - } else { - panic("instruction VPMOVM2W takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVMSKB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVMSKB(v[0], v[1]) - } else { - panic("instruction VPMOVMSKB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVQ2M__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVQ2M(v[0], v[1]) - } else { - panic("instruction VPMOVQ2M takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVQB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVQB(v[0], v[1]) - } else { - panic("instruction VPMOVQB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVQD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVQD(v[0], v[1]) - } else { - panic("instruction VPMOVQD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVQW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVQW(v[0], v[1]) - } else { - panic("instruction VPMOVQW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSDB(v[0], v[1]) - } else { - panic("instruction VPMOVSDB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSDW(v[0], v[1]) - } else { - panic("instruction VPMOVSDW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSQB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSQB(v[0], v[1]) - } else { - panic("instruction VPMOVSQB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSQD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSQD(v[0], v[1]) - } else { - panic("instruction VPMOVSQD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSQW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSQW(v[0], v[1]) - } else { - panic("instruction VPMOVSQW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSWB(v[0], v[1]) - } else { - panic("instruction VPMOVSWB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSXBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSXBD(v[0], v[1]) - } else { - panic("instruction VPMOVSXBD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSXBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSXBQ(v[0], v[1]) - } else { - panic("instruction VPMOVSXBQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSXBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSXBW(v[0], v[1]) - } else { - panic("instruction VPMOVSXBW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSXDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSXDQ(v[0], v[1]) - } else { - panic("instruction VPMOVSXDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSXWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSXWD(v[0], v[1]) - } else { - panic("instruction VPMOVSXWD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVSXWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVSXWQ(v[0], v[1]) - } else { - panic("instruction VPMOVSXWQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVUSDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVUSDB(v[0], v[1]) - } else { - panic("instruction VPMOVUSDB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVUSDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVUSDW(v[0], v[1]) - } else { - panic("instruction VPMOVUSDW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVUSQB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVUSQB(v[0], v[1]) - } else { - panic("instruction VPMOVUSQB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVUSQD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVUSQD(v[0], v[1]) - } else { - panic("instruction VPMOVUSQD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVUSQW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVUSQW(v[0], v[1]) - } else { - panic("instruction VPMOVUSQW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVUSWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVUSWB(v[0], v[1]) - } else { - panic("instruction VPMOVUSWB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVW2M__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVW2M(v[0], v[1]) - } else { - panic("instruction VPMOVW2M takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVWB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVWB(v[0], v[1]) - } else { - panic("instruction VPMOVWB takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVZXBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVZXBD(v[0], v[1]) - } else { - panic("instruction VPMOVZXBD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVZXBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVZXBQ(v[0], v[1]) - } else { - panic("instruction VPMOVZXBQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVZXBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVZXBW(v[0], v[1]) - } else { - panic("instruction VPMOVZXBW takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVZXDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVZXDQ(v[0], v[1]) - } else { - panic("instruction VPMOVZXDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVZXWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVZXWD(v[0], v[1]) - } else { - panic("instruction VPMOVZXWD takes exactly 2 operands") - } -} - -func __asm_proxy_VPMOVZXWQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPMOVZXWQ(v[0], v[1]) - } else { - panic("instruction VPMOVZXWQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPMULDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMULDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULHRSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULHRSW(v[0], v[1], v[2]) - } else { - panic("instruction VPMULHRSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULHUW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULHUW(v[0], v[1], v[2]) - } else { - panic("instruction VPMULHUW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULHW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULHW(v[0], v[1], v[2]) - } else { - panic("instruction VPMULHW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULLD(v[0], v[1], v[2]) - } else { - panic("instruction VPMULLD takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULLQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMULLQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULLW(v[0], v[1], v[2]) - } else { - panic("instruction VPMULLW takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULTISHIFTQB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULTISHIFTQB(v[0], v[1], v[2]) - } else { - panic("instruction VPMULTISHIFTQB takes exactly 3 operands") - } -} - -func __asm_proxy_VPMULUDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPMULUDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPMULUDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPOPCNTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPOPCNTD(v[0], v[1]) - } else { - panic("instruction VPOPCNTD takes exactly 2 operands") - } -} - -func __asm_proxy_VPOPCNTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPOPCNTQ(v[0], v[1]) - } else { - panic("instruction VPOPCNTQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPOR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPOR(v[0], v[1], v[2]) - } else { - panic("instruction VPOR takes exactly 3 operands") - } -} - -func __asm_proxy_VPORD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPORD(v[0], v[1], v[2]) - } else { - panic("instruction VPORD takes exactly 3 operands") - } -} - -func __asm_proxy_VPORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPORQ(v[0], v[1], v[2]) - } else { - panic("instruction VPORQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPPERM__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPPERM(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPPERM takes exactly 4 operands") - } -} - -func __asm_proxy_VPROLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROLD(v[0], v[1], v[2]) - } else { - panic("instruction VPROLD takes exactly 3 operands") - } -} - -func __asm_proxy_VPROLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROLQ(v[0], v[1], v[2]) - } else { - panic("instruction VPROLQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPROLVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROLVD(v[0], v[1], v[2]) - } else { - panic("instruction VPROLVD takes exactly 3 operands") - } -} - -func __asm_proxy_VPROLVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROLVQ(v[0], v[1], v[2]) - } else { - panic("instruction VPROLVQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPRORD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPRORD(v[0], v[1], v[2]) - } else { - panic("instruction VPRORD takes exactly 3 operands") - } -} - -func __asm_proxy_VPRORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPRORQ(v[0], v[1], v[2]) - } else { - panic("instruction VPRORQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPRORVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPRORVD(v[0], v[1], v[2]) - } else { - panic("instruction VPRORVD takes exactly 3 operands") - } -} - -func __asm_proxy_VPRORVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPRORVQ(v[0], v[1], v[2]) - } else { - panic("instruction VPRORVQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPROTB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROTB(v[0], v[1], v[2]) - } else { - panic("instruction VPROTB takes exactly 3 operands") - } -} - -func __asm_proxy_VPROTD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROTD(v[0], v[1], v[2]) - } else { - panic("instruction VPROTD takes exactly 3 operands") - } -} - -func __asm_proxy_VPROTQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROTQ(v[0], v[1], v[2]) - } else { - panic("instruction VPROTQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPROTW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPROTW(v[0], v[1], v[2]) - } else { - panic("instruction VPROTW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSADBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSADBW(v[0], v[1], v[2]) - } else { - panic("instruction VPSADBW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSCATTERDD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPSCATTERDD(v[0], v[1]) - } else { - panic("instruction VPSCATTERDD takes exactly 2 operands") - } -} - -func __asm_proxy_VPSCATTERDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPSCATTERDQ(v[0], v[1]) - } else { - panic("instruction VPSCATTERDQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPSCATTERQD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPSCATTERQD(v[0], v[1]) - } else { - panic("instruction VPSCATTERQD takes exactly 2 operands") - } -} - -func __asm_proxy_VPSCATTERQQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPSCATTERQQ(v[0], v[1]) - } else { - panic("instruction VPSCATTERQQ takes exactly 2 operands") - } -} - -func __asm_proxy_VPSHAB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHAB(v[0], v[1], v[2]) - } else { - panic("instruction VPSHAB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHAD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHAD(v[0], v[1], v[2]) - } else { - panic("instruction VPSHAD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHAQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHAQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSHAQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHAW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHAW(v[0], v[1], v[2]) - } else { - panic("instruction VPSHAW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHLB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHLB(v[0], v[1], v[2]) - } else { - panic("instruction VPSHLB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHLD(v[0], v[1], v[2]) - } else { - panic("instruction VPSHLD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHLQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSHLQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHLW(v[0], v[1], v[2]) - } else { - panic("instruction VPSHLW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHUFB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHUFB(v[0], v[1], v[2]) - } else { - panic("instruction VPSHUFB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHUFD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHUFD(v[0], v[1], v[2]) - } else { - panic("instruction VPSHUFD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHUFHW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHUFHW(v[0], v[1], v[2]) - } else { - panic("instruction VPSHUFHW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSHUFLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSHUFLW(v[0], v[1], v[2]) - } else { - panic("instruction VPSHUFLW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSIGNB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSIGNB(v[0], v[1], v[2]) - } else { - panic("instruction VPSIGNB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSIGND__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSIGND(v[0], v[1], v[2]) - } else { - panic("instruction VPSIGND takes exactly 3 operands") - } -} - -func __asm_proxy_VPSIGNW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSIGNW(v[0], v[1], v[2]) - } else { - panic("instruction VPSIGNW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLD(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLVD(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLVD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLVQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLVQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLVW(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLVW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSLLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSLLW(v[0], v[1], v[2]) - } else { - panic("instruction VPSLLW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRAD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRAD(v[0], v[1], v[2]) - } else { - panic("instruction VPSRAD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRAQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRAQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSRAQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRAVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRAVD(v[0], v[1], v[2]) - } else { - panic("instruction VPSRAVD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRAVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRAVQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSRAVQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRAVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRAVW(v[0], v[1], v[2]) - } else { - panic("instruction VPSRAVW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRAW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRAW(v[0], v[1], v[2]) - } else { - panic("instruction VPSRAW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLD(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLVD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLVD(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLVD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLVQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLVQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLVQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLVW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLVW(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLVW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSRLW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSRLW(v[0], v[1], v[2]) - } else { - panic("instruction VPSRLW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBB(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBD(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBD takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBQ(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBSB(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBSB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBSW(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBUSB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBUSB(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBUSB takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBUSW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBUSW(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBUSW takes exactly 3 operands") - } -} - -func __asm_proxy_VPSUBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPSUBW(v[0], v[1], v[2]) - } else { - panic("instruction VPSUBW takes exactly 3 operands") - } -} - -func __asm_proxy_VPTERNLOGD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPTERNLOGD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPTERNLOGD takes exactly 4 operands") - } -} - -func __asm_proxy_VPTERNLOGQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VPTERNLOGQ(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VPTERNLOGQ takes exactly 4 operands") - } -} - -func __asm_proxy_VPTEST__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VPTEST(v[0], v[1]) - } else { - panic("instruction VPTEST takes exactly 2 operands") - } -} - -func __asm_proxy_VPTESTMB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTMB(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTMB takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTMD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTMD(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTMD takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTMQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTMQ(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTMQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTMW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTMW(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTMW takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTNMB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTNMB(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTNMB takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTNMD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTNMD(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTNMD takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTNMQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTNMQ(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTNMQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPTESTNMW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPTESTNMW(v[0], v[1], v[2]) - } else { - panic("instruction VPTESTNMW takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKHBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKHBW(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKHBW takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKHDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKHDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKHDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKHQDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKHQDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKHQDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKHWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKHWD(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKHWD takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKLBW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKLBW(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKLBW takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKLDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKLDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKLDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKLQDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKLQDQ(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKLQDQ takes exactly 3 operands") - } -} - -func __asm_proxy_VPUNPCKLWD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPUNPCKLWD(v[0], v[1], v[2]) - } else { - panic("instruction VPUNPCKLWD takes exactly 3 operands") - } -} - -func __asm_proxy_VPXOR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPXOR(v[0], v[1], v[2]) - } else { - panic("instruction VPXOR takes exactly 3 operands") - } -} - -func __asm_proxy_VPXORD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPXORD(v[0], v[1], v[2]) - } else { - panic("instruction VPXORD takes exactly 3 operands") - } -} - -func __asm_proxy_VPXORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VPXORQ(v[0], v[1], v[2]) - } else { - panic("instruction VPXORQ takes exactly 3 operands") - } -} - -func __asm_proxy_VRANGEPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VRANGEPD(v[0], v[1], v[2], v[3]) - case 5 : return p.VRANGEPD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VRANGEPD takes 4 or 5 operands") - } -} - -func __asm_proxy_VRANGEPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VRANGEPS(v[0], v[1], v[2], v[3]) - case 5 : return p.VRANGEPS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VRANGEPS takes 4 or 5 operands") - } -} - -func __asm_proxy_VRANGESD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VRANGESD(v[0], v[1], v[2], v[3]) - case 5 : return p.VRANGESD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VRANGESD takes 4 or 5 operands") - } -} - -func __asm_proxy_VRANGESS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VRANGESS(v[0], v[1], v[2], v[3]) - case 5 : return p.VRANGESS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VRANGESS takes 4 or 5 operands") - } -} - -func __asm_proxy_VRCP14PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VRCP14PD(v[0], v[1]) - } else { - panic("instruction VRCP14PD takes exactly 2 operands") - } -} - -func __asm_proxy_VRCP14PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VRCP14PS(v[0], v[1]) - } else { - panic("instruction VRCP14PS takes exactly 2 operands") - } -} - -func __asm_proxy_VRCP14SD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VRCP14SD(v[0], v[1], v[2]) - } else { - panic("instruction VRCP14SD takes exactly 3 operands") - } -} - -func __asm_proxy_VRCP14SS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VRCP14SS(v[0], v[1], v[2]) - } else { - panic("instruction VRCP14SS takes exactly 3 operands") - } -} - -func __asm_proxy_VRCP28PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VRCP28PD(v[0], v[1]) - case 3 : return p.VRCP28PD(v[0], v[1], v[2]) - default : panic("instruction VRCP28PD takes 2 or 3 operands") - } -} - -func __asm_proxy_VRCP28PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VRCP28PS(v[0], v[1]) - case 3 : return p.VRCP28PS(v[0], v[1], v[2]) - default : panic("instruction VRCP28PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VRCP28SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VRCP28SD(v[0], v[1], v[2]) - case 4 : return p.VRCP28SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VRCP28SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VRCP28SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VRCP28SS(v[0], v[1], v[2]) - case 4 : return p.VRCP28SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VRCP28SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VRCPPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VRCPPS(v[0], v[1]) - } else { - panic("instruction VRCPPS takes exactly 2 operands") - } -} - -func __asm_proxy_VRCPSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VRCPSS(v[0], v[1], v[2]) - } else { - panic("instruction VRCPSS takes exactly 3 operands") - } -} - -func __asm_proxy_VREDUCEPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VREDUCEPD(v[0], v[1], v[2]) - } else { - panic("instruction VREDUCEPD takes exactly 3 operands") - } -} - -func __asm_proxy_VREDUCEPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VREDUCEPS(v[0], v[1], v[2]) - } else { - panic("instruction VREDUCEPS takes exactly 3 operands") - } -} - -func __asm_proxy_VREDUCESD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VREDUCESD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VREDUCESD takes exactly 4 operands") - } -} - -func __asm_proxy_VREDUCESS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VREDUCESS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VREDUCESS takes exactly 4 operands") - } -} - -func __asm_proxy_VRNDSCALEPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VRNDSCALEPD(v[0], v[1], v[2]) - case 4 : return p.VRNDSCALEPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VRNDSCALEPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VRNDSCALEPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VRNDSCALEPS(v[0], v[1], v[2]) - case 4 : return p.VRNDSCALEPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VRNDSCALEPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VRNDSCALESD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VRNDSCALESD(v[0], v[1], v[2], v[3]) - case 5 : return p.VRNDSCALESD(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VRNDSCALESD takes 4 or 5 operands") - } -} - -func __asm_proxy_VRNDSCALESS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 4 : return p.VRNDSCALESS(v[0], v[1], v[2], v[3]) - case 5 : return p.VRNDSCALESS(v[0], v[1], v[2], v[3], v[4]) - default : panic("instruction VRNDSCALESS takes 4 or 5 operands") - } -} - -func __asm_proxy_VROUNDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VROUNDPD(v[0], v[1], v[2]) - } else { - panic("instruction VROUNDPD takes exactly 3 operands") - } -} - -func __asm_proxy_VROUNDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VROUNDPS(v[0], v[1], v[2]) - } else { - panic("instruction VROUNDPS takes exactly 3 operands") - } -} - -func __asm_proxy_VROUNDSD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VROUNDSD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VROUNDSD takes exactly 4 operands") - } -} - -func __asm_proxy_VROUNDSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VROUNDSS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VROUNDSS takes exactly 4 operands") - } -} - -func __asm_proxy_VRSQRT14PD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VRSQRT14PD(v[0], v[1]) - } else { - panic("instruction VRSQRT14PD takes exactly 2 operands") - } -} - -func __asm_proxy_VRSQRT14PS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VRSQRT14PS(v[0], v[1]) - } else { - panic("instruction VRSQRT14PS takes exactly 2 operands") - } -} - -func __asm_proxy_VRSQRT14SD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VRSQRT14SD(v[0], v[1], v[2]) - } else { - panic("instruction VRSQRT14SD takes exactly 3 operands") - } -} - -func __asm_proxy_VRSQRT14SS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VRSQRT14SS(v[0], v[1], v[2]) - } else { - panic("instruction VRSQRT14SS takes exactly 3 operands") - } -} - -func __asm_proxy_VRSQRT28PD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VRSQRT28PD(v[0], v[1]) - case 3 : return p.VRSQRT28PD(v[0], v[1], v[2]) - default : panic("instruction VRSQRT28PD takes 2 or 3 operands") - } -} - -func __asm_proxy_VRSQRT28PS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VRSQRT28PS(v[0], v[1]) - case 3 : return p.VRSQRT28PS(v[0], v[1], v[2]) - default : panic("instruction VRSQRT28PS takes 2 or 3 operands") - } -} - -func __asm_proxy_VRSQRT28SD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VRSQRT28SD(v[0], v[1], v[2]) - case 4 : return p.VRSQRT28SD(v[0], v[1], v[2], v[3]) - default : panic("instruction VRSQRT28SD takes 3 or 4 operands") - } -} - -func __asm_proxy_VRSQRT28SS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VRSQRT28SS(v[0], v[1], v[2]) - case 4 : return p.VRSQRT28SS(v[0], v[1], v[2], v[3]) - default : panic("instruction VRSQRT28SS takes 3 or 4 operands") - } -} - -func __asm_proxy_VRSQRTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VRSQRTPS(v[0], v[1]) - } else { - panic("instruction VRSQRTPS takes exactly 2 operands") - } -} - -func __asm_proxy_VRSQRTSS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VRSQRTSS(v[0], v[1], v[2]) - } else { - panic("instruction VRSQRTSS takes exactly 3 operands") - } -} - -func __asm_proxy_VSCALEFPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSCALEFPD(v[0], v[1], v[2]) - case 4 : return p.VSCALEFPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VSCALEFPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VSCALEFPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSCALEFPS(v[0], v[1], v[2]) - case 4 : return p.VSCALEFPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VSCALEFPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VSCALEFSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSCALEFSD(v[0], v[1], v[2]) - case 4 : return p.VSCALEFSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VSCALEFSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VSCALEFSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSCALEFSS(v[0], v[1], v[2]) - case 4 : return p.VSCALEFSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VSCALEFSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VSCATTERDPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VSCATTERDPD(v[0], v[1]) - } else { - panic("instruction VSCATTERDPD takes exactly 2 operands") - } -} - -func __asm_proxy_VSCATTERDPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VSCATTERDPS(v[0], v[1]) - } else { - panic("instruction VSCATTERDPS takes exactly 2 operands") - } -} - -func __asm_proxy_VSCATTERPF0DPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF0DPD(v[0]) - } else { - panic("instruction VSCATTERPF0DPD takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF0DPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF0DPS(v[0]) - } else { - panic("instruction VSCATTERPF0DPS takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF0QPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF0QPD(v[0]) - } else { - panic("instruction VSCATTERPF0QPD takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF0QPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF0QPS(v[0]) - } else { - panic("instruction VSCATTERPF0QPS takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF1DPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF1DPD(v[0]) - } else { - panic("instruction VSCATTERPF1DPD takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF1DPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF1DPS(v[0]) - } else { - panic("instruction VSCATTERPF1DPS takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF1QPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF1QPD(v[0]) - } else { - panic("instruction VSCATTERPF1QPD takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERPF1QPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSCATTERPF1QPS(v[0]) - } else { - panic("instruction VSCATTERPF1QPS takes exactly 1 operand") - } -} - -func __asm_proxy_VSCATTERQPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VSCATTERQPD(v[0], v[1]) - } else { - panic("instruction VSCATTERQPD takes exactly 2 operands") - } -} - -func __asm_proxy_VSCATTERQPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VSCATTERQPS(v[0], v[1]) - } else { - panic("instruction VSCATTERQPS takes exactly 2 operands") - } -} - -func __asm_proxy_VSHUFF32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VSHUFF32X4(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VSHUFF32X4 takes exactly 4 operands") - } -} - -func __asm_proxy_VSHUFF64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VSHUFF64X2(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VSHUFF64X2 takes exactly 4 operands") - } -} - -func __asm_proxy_VSHUFI32X4__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VSHUFI32X4(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VSHUFI32X4 takes exactly 4 operands") - } -} - -func __asm_proxy_VSHUFI64X2__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VSHUFI64X2(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VSHUFI64X2 takes exactly 4 operands") - } -} - -func __asm_proxy_VSHUFPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VSHUFPD(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VSHUFPD takes exactly 4 operands") - } -} - -func __asm_proxy_VSHUFPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 4 { - return p.VSHUFPS(v[0], v[1], v[2], v[3]) - } else { - panic("instruction VSHUFPS takes exactly 4 operands") - } -} - -func __asm_proxy_VSQRTPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VSQRTPD(v[0], v[1]) - case 3 : return p.VSQRTPD(v[0], v[1], v[2]) - default : panic("instruction VSQRTPD takes 2 or 3 operands") - } -} - -func __asm_proxy_VSQRTPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VSQRTPS(v[0], v[1]) - case 3 : return p.VSQRTPS(v[0], v[1], v[2]) - default : panic("instruction VSQRTPS takes 2 or 3 operands") - } -} - -func __asm_proxy_VSQRTSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSQRTSD(v[0], v[1], v[2]) - case 4 : return p.VSQRTSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VSQRTSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VSQRTSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSQRTSS(v[0], v[1], v[2]) - case 4 : return p.VSQRTSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VSQRTSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VSTMXCSR__(p *Program, v ...interface{}) *Instruction { - if len(v) == 1 { - return p.VSTMXCSR(v[0]) - } else { - panic("instruction VSTMXCSR takes exactly 1 operand") - } -} - -func __asm_proxy_VSUBPD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSUBPD(v[0], v[1], v[2]) - case 4 : return p.VSUBPD(v[0], v[1], v[2], v[3]) - default : panic("instruction VSUBPD takes 3 or 4 operands") - } -} - -func __asm_proxy_VSUBPS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSUBPS(v[0], v[1], v[2]) - case 4 : return p.VSUBPS(v[0], v[1], v[2], v[3]) - default : panic("instruction VSUBPS takes 3 or 4 operands") - } -} - -func __asm_proxy_VSUBSD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSUBSD(v[0], v[1], v[2]) - case 4 : return p.VSUBSD(v[0], v[1], v[2], v[3]) - default : panic("instruction VSUBSD takes 3 or 4 operands") - } -} - -func __asm_proxy_VSUBSS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 3 : return p.VSUBSS(v[0], v[1], v[2]) - case 4 : return p.VSUBSS(v[0], v[1], v[2], v[3]) - default : panic("instruction VSUBSS takes 3 or 4 operands") - } -} - -func __asm_proxy_VTESTPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VTESTPD(v[0], v[1]) - } else { - panic("instruction VTESTPD takes exactly 2 operands") - } -} - -func __asm_proxy_VTESTPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.VTESTPS(v[0], v[1]) - } else { - panic("instruction VTESTPS takes exactly 2 operands") - } -} - -func __asm_proxy_VUCOMISD__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VUCOMISD(v[0], v[1]) - case 3 : return p.VUCOMISD(v[0], v[1], v[2]) - default : panic("instruction VUCOMISD takes 2 or 3 operands") - } -} - -func __asm_proxy_VUCOMISS__(p *Program, v ...interface{}) *Instruction { - switch len(v) { - case 2 : return p.VUCOMISS(v[0], v[1]) - case 3 : return p.VUCOMISS(v[0], v[1], v[2]) - default : panic("instruction VUCOMISS takes 2 or 3 operands") - } -} - -func __asm_proxy_VUNPCKHPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VUNPCKHPD(v[0], v[1], v[2]) - } else { - panic("instruction VUNPCKHPD takes exactly 3 operands") - } -} - -func __asm_proxy_VUNPCKHPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VUNPCKHPS(v[0], v[1], v[2]) - } else { - panic("instruction VUNPCKHPS takes exactly 3 operands") - } -} - -func __asm_proxy_VUNPCKLPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VUNPCKLPD(v[0], v[1], v[2]) - } else { - panic("instruction VUNPCKLPD takes exactly 3 operands") - } -} - -func __asm_proxy_VUNPCKLPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VUNPCKLPS(v[0], v[1], v[2]) - } else { - panic("instruction VUNPCKLPS takes exactly 3 operands") - } -} - -func __asm_proxy_VXORPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VXORPD(v[0], v[1], v[2]) - } else { - panic("instruction VXORPD takes exactly 3 operands") - } -} - -func __asm_proxy_VXORPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 3 { - return p.VXORPS(v[0], v[1], v[2]) - } else { - panic("instruction VXORPS takes exactly 3 operands") - } -} - -func __asm_proxy_VZEROALL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.VZEROALL() - } else { - panic("instruction VZEROALL takes no operands") - } -} - -func __asm_proxy_VZEROUPPER__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.VZEROUPPER() - } else { - panic("instruction VZEROUPPER takes no operands") - } -} - -func __asm_proxy_XADDB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XADDB(v[0], v[1]) - } else { - panic("instruction XADDB takes exactly 2 operands") - } -} - -func __asm_proxy_XADDL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XADDL(v[0], v[1]) - } else { - panic("instruction XADDL takes exactly 2 operands") - } -} - -func __asm_proxy_XADDQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XADDQ(v[0], v[1]) - } else { - panic("instruction XADDQ takes exactly 2 operands") - } -} - -func __asm_proxy_XADDW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XADDW(v[0], v[1]) - } else { - panic("instruction XADDW takes exactly 2 operands") - } -} - -func __asm_proxy_XCHGB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XCHGB(v[0], v[1]) - } else { - panic("instruction XCHGB takes exactly 2 operands") - } -} - -func __asm_proxy_XCHGL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XCHGL(v[0], v[1]) - } else { - panic("instruction XCHGL takes exactly 2 operands") - } -} - -func __asm_proxy_XCHGQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XCHGQ(v[0], v[1]) - } else { - panic("instruction XCHGQ takes exactly 2 operands") - } -} - -func __asm_proxy_XCHGW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XCHGW(v[0], v[1]) - } else { - panic("instruction XCHGW takes exactly 2 operands") - } -} - -func __asm_proxy_XGETBV__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.XGETBV() - } else { - panic("instruction XGETBV takes no operands") - } -} - -func __asm_proxy_XLATB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 0 { - return p.XLATB() - } else { - panic("instruction XLATB takes no operands") - } -} - -func __asm_proxy_XORB__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XORB(v[0], v[1]) - } else { - panic("instruction XORB takes exactly 2 operands") - } -} - -func __asm_proxy_XORL__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XORL(v[0], v[1]) - } else { - panic("instruction XORL takes exactly 2 operands") - } -} - -func __asm_proxy_XORPD__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XORPD(v[0], v[1]) - } else { - panic("instruction XORPD takes exactly 2 operands") - } -} - -func __asm_proxy_XORPS__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XORPS(v[0], v[1]) - } else { - panic("instruction XORPS takes exactly 2 operands") - } -} - -func __asm_proxy_XORQ__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XORQ(v[0], v[1]) - } else { - panic("instruction XORQ takes exactly 2 operands") - } -} - -func __asm_proxy_XORW__(p *Program, v ...interface{}) *Instruction { - if len(v) == 2 { - return p.XORW(v[0], v[1]) - } else { - panic("instruction XORW takes exactly 2 operands") - } -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go deleted file mode 100644 index 8c4bc9f65..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/operands.go +++ /dev/null @@ -1,649 +0,0 @@ -package x86_64 - -import ( - "errors" - "fmt" - "math" - "reflect" - "strconv" - "strings" - "sync/atomic" -) - -// RelativeOffset represents an RIP-relative offset. -type RelativeOffset int32 - -// String implements the fmt.Stringer interface. -func (self RelativeOffset) String() string { - if self == 0 { - return "(%rip)" - } else { - return fmt.Sprintf("%d(%%rip)", self) - } -} - -// RoundingControl represents a floating-point rounding option. -type RoundingControl uint8 - -const ( - // RN_SAE represents "Round Nearest", which is the default rounding option. - RN_SAE RoundingControl = iota - - // RD_SAE represents "Round Down". - RD_SAE - - // RU_SAE represents "Round Up". - RU_SAE - - // RZ_SAE represents "Round towards Zero". - RZ_SAE -) - -var _RC_NAMES = map[RoundingControl]string{ - RN_SAE: "rn-sae", - RD_SAE: "rd-sae", - RU_SAE: "ru-sae", - RZ_SAE: "rz-sae", -} - -func (self RoundingControl) String() string { - if v, ok := _RC_NAMES[self]; ok { - return v - } else { - panic("invalid RoundingControl value") - } -} - -// ExceptionControl represents the "Suppress All Exceptions" flag. -type ExceptionControl uint8 - -const ( - // SAE represents the flag "Suppress All Exceptions" for floating point operations. - SAE ExceptionControl = iota -) - -func (ExceptionControl) String() string { - return "sae" -} - -// AddressType indicates which kind of value that an Addressable object contains. -type AddressType uint - -const ( - // None indicates the Addressable does not contain any addressable value. - None AddressType = iota - - // Memory indicates the Addressable contains a memory address. - Memory - - // Offset indicates the Addressable contains an RIP-relative offset. - Offset - - // Reference indicates the Addressable contains a label reference. - Reference -) - -// Disposable is a type of object that can be Free'd manually. -type Disposable interface { - Free() -} - -// Label represents a location within the program. -type Label struct { - refs int64 - Name string - Dest *Instruction -} - -func (self *Label) offset(p uintptr, n int) RelativeOffset { - if self.Dest == nil { - panic("unresolved label: " + self.Name) - } else { - return RelativeOffset(self.Dest.pc - p - uintptr(n)) - } -} - -// Free decreases the reference count of a Label, if the -// refcount drops to 0, the Label will be recycled. -func (self *Label) Free() { - if atomic.AddInt64(&self.refs, -1) == 0 { - //freeLabel(self) - } -} - -// String implements the fmt.Stringer interface. -func (self *Label) String() string { - if self.Dest == nil { - return fmt.Sprintf("%s(%%rip)", self.Name) - } else { - return fmt.Sprintf("%s(%%rip)@%#x", self.Name, self.Dest.pc) - } -} - -// Retain increases the reference count of a Label. -func (self *Label) Retain() *Label { - atomic.AddInt64(&self.refs, 1) - return self -} - -// Evaluate implements the interface expr.Term. -func (self *Label) Evaluate() (int64, error) { - if self.Dest != nil { - return int64(self.Dest.pc), nil - } else { - return 0, errors.New("unresolved label: " + self.Name) - } -} - -// Addressable is a union to represent an addressable operand. -type Addressable struct { - Type AddressType - Memory MemoryAddress - Offset RelativeOffset - Reference *Label -} - -// String implements the fmt.Stringer interface. -func (self *Addressable) String() string { - switch self.Type { - case None: - return "(not addressable)" - case Memory: - return self.Memory.String() - case Offset: - return self.Offset.String() - case Reference: - return self.Reference.String() - default: - return "(invalid addressable)" - } -} - -// MemoryOperand represents a memory operand for an instruction. -type MemoryOperand struct { - refs int64 - Size int - Addr Addressable - Mask RegisterMask - Masked bool - Broadcast uint8 -} - -const ( - _Sizes = 0b10000000100010111 // bit-mask for valid sizes (0, 1, 2, 4, 8, 16) -) - -func (self *MemoryOperand) isVMX(evex bool) bool { - return self.Addr.Type == Memory && self.Addr.Memory.isVMX(evex) -} - -func (self *MemoryOperand) isVMY(evex bool) bool { - return self.Addr.Type == Memory && self.Addr.Memory.isVMY(evex) -} - -func (self *MemoryOperand) isVMZ() bool { - return self.Addr.Type == Memory && self.Addr.Memory.isVMZ() -} - -func (self *MemoryOperand) isMem() bool { - if (_Sizes & (1 << self.Broadcast)) == 0 { - return false - } else if self.Addr.Type == Memory { - return self.Addr.Memory.isMem() - } else if self.Addr.Type == Offset { - return true - } else if self.Addr.Type == Reference { - return true - } else { - return false - } -} - -func (self *MemoryOperand) isSize(n int) bool { - return self.Size == 0 || self.Size == n -} - -func (self *MemoryOperand) isBroadcast(n int, b uint8) bool { - return self.Size == n && self.Broadcast == b -} - -func (self *MemoryOperand) formatMask() string { - if !self.Masked { - return "" - } else { - return self.Mask.String() - } -} - -func (self *MemoryOperand) formatBroadcast() string { - if self.Broadcast == 0 { - return "" - } else { - return fmt.Sprintf("{1to%d}", self.Broadcast) - } -} - -func (self *MemoryOperand) ensureAddrValid() { - switch self.Addr.Type { - case None: - break - case Memory: - self.Addr.Memory.EnsureValid() - case Offset: - break - case Reference: - break - default: - panic("invalid address type") - } -} - -func (self *MemoryOperand) ensureSizeValid() { - if (_Sizes & (1 << self.Size)) == 0 { - panic("invalid memory operand size") - } -} - -func (self *MemoryOperand) ensureBroadcastValid() { - if (_Sizes & (1 << self.Broadcast)) == 0 { - panic("invalid memory operand broadcast") - } -} - -// Free decreases the reference count of a MemoryOperand, if the -// refcount drops to 0, the Label will be recycled. -func (self *MemoryOperand) Free() { - if atomic.AddInt64(&self.refs, -1) == 0 { - //freeMemoryOperand(self) - } -} - -// String implements the fmt.Stringer interface. -func (self *MemoryOperand) String() string { - return self.Addr.String() + self.formatMask() + self.formatBroadcast() -} - -// Retain increases the reference count of a MemoryOperand. -func (self *MemoryOperand) Retain() *MemoryOperand { - atomic.AddInt64(&self.refs, 1) - return self -} - -// EnsureValid checks if the memory operand is valid, if not, it panics. -func (self *MemoryOperand) EnsureValid() { - self.ensureAddrValid() - self.ensureSizeValid() - self.ensureBroadcastValid() -} - -// MemoryAddress represents a memory address. -type MemoryAddress struct { - Base Register - Index Register - Scale uint8 - Displacement int32 -} - -const ( - _Scales = 0b100010111 // bit-mask for valid scales (0, 1, 2, 4, 8) -) - -func (self *MemoryAddress) isVMX(evex bool) bool { - return self.isMemBase() && (self.Index == nil || isXMM(self.Index) || (evex && isEVEXXMM(self.Index))) -} - -func (self *MemoryAddress) isVMY(evex bool) bool { - return self.isMemBase() && (self.Index == nil || isYMM(self.Index) || (evex && isEVEXYMM(self.Index))) -} - -func (self *MemoryAddress) isVMZ() bool { - return self.isMemBase() && (self.Index == nil || isZMM(self.Index)) -} - -func (self *MemoryAddress) isMem() bool { - return self.isMemBase() && (self.Index == nil || isReg64(self.Index)) -} - -func (self *MemoryAddress) isMemBase() bool { - return (self.Base == nil || isReg64(self.Base)) && // `Base` must be 64-bit if present - (self.Scale == 0) == (self.Index == nil) && // `Scale` and `Index` depends on each other - (_Scales&(1<= 2 { - sb.WriteByte(',') - sb.WriteString(strconv.Itoa(int(self.Scale))) - } - } - - /* close the bracket */ - sb.WriteByte(')') - return sb.String() -} - -// EnsureValid checks if the memory address is valid, if not, it panics. -func (self *MemoryAddress) EnsureValid() { - if !self.isMemBase() || (self.Index != nil && !isIndexable(self.Index)) { - panic("not a valid memory address") - } -} - -// Ref constructs a memory reference to a label. -func Ref(ref *Label) (v *MemoryOperand) { - v = CreateMemoryOperand() - v.Addr.Type = Reference - v.Addr.Reference = ref - return -} - -// Abs construct a simple memory address that represents absolute addressing. -func Abs(disp int32) *MemoryOperand { - return Sib(nil, nil, 0, disp) -} - -// Ptr constructs a simple memory operand with base and displacement. -func Ptr(base Register, disp int32) *MemoryOperand { - return Sib(base, nil, 0, disp) -} - -// Sib constructs a simple memory operand that represents a complete memory address. -func Sib(base Register, index Register, scale uint8, disp int32) (v *MemoryOperand) { - v = CreateMemoryOperand() - v.Addr.Type = Memory - v.Addr.Memory.Base = base - v.Addr.Memory.Index = index - v.Addr.Memory.Scale = scale - v.Addr.Memory.Displacement = disp - v.EnsureValid() - return -} - -/** Operand Matching Helpers **/ - -const _IntMask = (1 << reflect.Int) | - (1 << reflect.Int8) | - (1 << reflect.Int16) | - (1 << reflect.Int32) | - (1 << reflect.Int64) | - (1 << reflect.Uint) | - (1 << reflect.Uint8) | - (1 << reflect.Uint16) | - (1 << reflect.Uint32) | - (1 << reflect.Uint64) | - (1 << reflect.Uintptr) - -func isInt(k reflect.Kind) bool { - return (_IntMask & (1 << k)) != 0 -} - -func asInt64(v interface{}) (int64, bool) { - if isSpecial(v) { - return 0, false - } else if x := efaceOf(v); isInt(x.kind()) { - return x.toInt64(), true - } else { - return 0, false - } -} - -func inRange(v interface{}, low int64, high int64) bool { - x, ok := asInt64(v) - return ok && x >= low && x <= high -} - -func isSpecial(v interface{}) bool { - switch v.(type) { - case Register8: - return true - case Register16: - return true - case Register32: - return true - case Register64: - return true - case KRegister: - return true - case MMRegister: - return true - case XMMRegister: - return true - case YMMRegister: - return true - case ZMMRegister: - return true - case RelativeOffset: - return true - case RoundingControl: - return true - case ExceptionControl: - return true - default: - return false - } -} - -func isIndexable(v interface{}) bool { - return isZMM(v) || isReg64(v) || isEVEXXMM(v) || isEVEXYMM(v) -} - -func isImm4(v interface{}) bool { return inRange(v, 0, 15) } -func isImm8(v interface{}) bool { return inRange(v, math.MinInt8, math.MaxUint8) } -func isImm16(v interface{}) bool { return inRange(v, math.MinInt16, math.MaxUint16) } -func isImm32(v interface{}) bool { return inRange(v, math.MinInt32, math.MaxUint32) } -func isImm64(v interface{}) bool { _, r := asInt64(v); return r } -func isConst1(v interface{}) bool { x, r := asInt64(v); return r && x == 1 } -func isConst3(v interface{}) bool { x, r := asInt64(v); return r && x == 3 } -func isRel8(v interface{}) bool { - x, r := v.(RelativeOffset) - return r && x >= math.MinInt8 && x <= math.MaxInt8 -} -func isRel32(v interface{}) bool { _, r := v.(RelativeOffset); return r } -func isLabel(v interface{}) bool { _, r := v.(*Label); return r } -func isReg8(v interface{}) bool { _, r := v.(Register8); return r } -func isReg8REX(v interface{}) bool { - x, r := v.(Register8) - return r && (x&0x80) == 0 && x >= SPL -} -func isReg16(v interface{}) bool { _, r := v.(Register16); return r } -func isReg32(v interface{}) bool { _, r := v.(Register32); return r } -func isReg64(v interface{}) bool { _, r := v.(Register64); return r } -func isMM(v interface{}) bool { _, r := v.(MMRegister); return r } -func isXMM(v interface{}) bool { x, r := v.(XMMRegister); return r && x <= XMM15 } -func isEVEXXMM(v interface{}) bool { _, r := v.(XMMRegister); return r } -func isXMMk(v interface{}) bool { - x, r := v.(MaskedRegister) - return isXMM(v) || (r && isXMM(x.Reg) && !x.Mask.Z) -} -func isXMMkz(v interface{}) bool { - x, r := v.(MaskedRegister) - return isXMM(v) || (r && isXMM(x.Reg)) -} -func isYMM(v interface{}) bool { x, r := v.(YMMRegister); return r && x <= YMM15 } -func isEVEXYMM(v interface{}) bool { _, r := v.(YMMRegister); return r } -func isYMMk(v interface{}) bool { - x, r := v.(MaskedRegister) - return isYMM(v) || (r && isYMM(x.Reg) && !x.Mask.Z) -} -func isYMMkz(v interface{}) bool { - x, r := v.(MaskedRegister) - return isYMM(v) || (r && isYMM(x.Reg)) -} -func isZMM(v interface{}) bool { _, r := v.(ZMMRegister); return r } -func isZMMk(v interface{}) bool { - x, r := v.(MaskedRegister) - return isZMM(v) || (r && isZMM(x.Reg) && !x.Mask.Z) -} -func isZMMkz(v interface{}) bool { - x, r := v.(MaskedRegister) - return isZMM(v) || (r && isZMM(x.Reg)) -} -func isK(v interface{}) bool { _, r := v.(KRegister); return r } -func isKk(v interface{}) bool { - x, r := v.(MaskedRegister) - return isK(v) || (r && isK(x.Reg) && !x.Mask.Z) -} -func isM(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isMem() && x.Broadcast == 0 && !x.Masked -} -func isMk(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isMem() && x.Broadcast == 0 && !(x.Masked && x.Mask.Z) -} -func isMkz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isMem() && x.Broadcast == 0 -} -func isM8(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(1) -} -func isM16(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(2) -} -func isM16kz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMkz(v) && x.isSize(2) -} -func isM32(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(4) -} -func isM32k(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMk(v) && x.isSize(4) -} -func isM32kz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMkz(v) && x.isSize(4) -} -func isM64(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(8) -} -func isM64k(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMk(v) && x.isSize(8) -} -func isM64kz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMkz(v) && x.isSize(8) -} -func isM128(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(16) -} -func isM128kz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMkz(v) && x.isSize(16) -} -func isM256(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(32) -} -func isM256kz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMkz(v) && x.isSize(32) -} -func isM512(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isM(v) && x.isSize(64) -} -func isM512kz(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && isMkz(v) && x.isSize(64) -} -func isM64M32bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM64(v) || (r && x.isBroadcast(4, 2)) -} -func isM128M32bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM128(v) || (r && x.isBroadcast(4, 4)) -} -func isM256M32bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM256(v) || (r && x.isBroadcast(4, 8)) -} -func isM512M32bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM512(v) || (r && x.isBroadcast(4, 16)) -} -func isM128M64bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM128(v) || (r && x.isBroadcast(8, 2)) -} -func isM256M64bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM256(v) || (r && x.isBroadcast(8, 4)) -} -func isM512M64bcst(v interface{}) bool { - x, r := v.(*MemoryOperand) - return isM512(v) || (r && x.isBroadcast(8, 8)) -} -func isVMX(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isVMX(false) && !x.Masked -} -func isEVEXVMX(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isVMX(true) && !x.Masked -} -func isVMXk(v interface{}) bool { x, r := v.(*MemoryOperand); return r && x.isVMX(true) } -func isVMY(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isVMY(false) && !x.Masked -} -func isEVEXVMY(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isVMY(true) && !x.Masked -} -func isVMYk(v interface{}) bool { x, r := v.(*MemoryOperand); return r && x.isVMY(true) } -func isVMZ(v interface{}) bool { - x, r := v.(*MemoryOperand) - return r && x.isVMZ() && !x.Masked -} -func isVMZk(v interface{}) bool { x, r := v.(*MemoryOperand); return r && x.isVMZ() } -func isSAE(v interface{}) bool { _, r := v.(ExceptionControl); return r } -func isER(v interface{}) bool { _, r := v.(RoundingControl); return r } - -func isImmExt(v interface{}, ext int, min int64, max int64) bool { - if x, ok := asInt64(v); !ok { - return false - } else if m := int64(1) << (8 * ext); x < m && x >= m+min { - return true - } else { - return x <= max && x >= min - } -} - -func isImm8Ext(v interface{}, ext int) bool { - return isImmExt(v, ext, math.MinInt8, math.MaxInt8) -} - -func isImm32Ext(v interface{}, ext int) bool { - return isImmExt(v, ext, math.MinInt32, math.MaxInt32) -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go deleted file mode 100644 index 8e6cbbd8a..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/pools.go +++ /dev/null @@ -1,38 +0,0 @@ -package x86_64 - -// CreateLabel creates a new Label, it may allocate a new one or grab one from a pool. -func CreateLabel(name string) *Label { - p := new(Label) - - /* initialize the label */ - p.refs = 1 - p.Name = name - return p -} - -func newProgram(arch *Arch) *Program { - p := new(Program) - - /* initialize the program */ - p.arch = arch - return p -} - -func newInstruction(name string, argc int, argv Operands) *Instruction { - p := new(Instruction) - - /* initialize the instruction */ - p.name = name - p.argc = argc - p.argv = argv - return p -} - -// CreateMemoryOperand creates a new MemoryOperand, it may allocate a new one or grab one from a pool. -func CreateMemoryOperand() *MemoryOperand { - p := new(MemoryOperand) - - /* initialize the memory operand */ - p.refs = 1 - return p -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/program.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/program.go deleted file mode 100644 index 31562491f..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/program.go +++ /dev/null @@ -1,568 +0,0 @@ -package x86_64 - -import ( - "fmt" - "math" - "math/bits" - - "github.com/chenzhuoyu/iasm/expr" -) - -type ( - _PseudoType int - _InstructionEncoder func(*Program, ...interface{}) *Instruction -) - -const ( - _PseudoNop _PseudoType = iota + 1 - _PseudoByte - _PseudoWord - _PseudoLong - _PseudoQuad - _PseudoData - _PseudoAlign -) - -func (self _PseudoType) String() string { - switch self { - case _PseudoNop: - return ".nop" - case _PseudoByte: - return ".byte" - case _PseudoWord: - return ".word" - case _PseudoLong: - return ".long" - case _PseudoQuad: - return ".quad" - case _PseudoData: - return ".data" - case _PseudoAlign: - return ".align" - default: - panic("unreachable") - } -} - -type _Pseudo struct { - kind _PseudoType - data []byte - uint uint64 - expr *expr.Expr -} - -func (self *_Pseudo) free() { - if self.expr != nil { - self.expr.Free() - } -} - -func (self *_Pseudo) encode(m *[]byte, pc uintptr) int { - switch self.kind { - case _PseudoNop: - return 0 - case _PseudoByte: - self.encodeByte(m) - return 1 - case _PseudoWord: - self.encodeWord(m) - return 2 - case _PseudoLong: - self.encodeLong(m) - return 4 - case _PseudoQuad: - self.encodeQuad(m) - return 8 - case _PseudoData: - self.encodeData(m) - return len(self.data) - case _PseudoAlign: - self.encodeAlign(m, pc) - return self.alignSize(pc) - default: - panic("invalid pseudo instruction") - } -} - -func (self *_Pseudo) evalExpr(low int64, high int64) int64 { - if v, err := self.expr.Evaluate(); err != nil { - panic(err) - } else if v < low || v > high { - panic(fmt.Sprintf("expression out of range [%d, %d]: %d", low, high, v)) - } else { - return v - } -} - -func (self *_Pseudo) alignSize(pc uintptr) int { - if !ispow2(self.uint) { - panic(fmt.Sprintf("aligment should be a power of 2, not %d", self.uint)) - } else { - return align(int(pc), bits.TrailingZeros64(self.uint)) - int(pc) - } -} - -func (self *_Pseudo) encodeData(m *[]byte) { - if m != nil { - *m = append(*m, self.data...) - } -} - -func (self *_Pseudo) encodeByte(m *[]byte) { - if m != nil { - append8(m, byte(self.evalExpr(math.MinInt8, math.MaxUint8))) - } -} - -func (self *_Pseudo) encodeWord(m *[]byte) { - if m != nil { - append16(m, uint16(self.evalExpr(math.MinInt16, math.MaxUint16))) - } -} - -func (self *_Pseudo) encodeLong(m *[]byte) { - if m != nil { - append32(m, uint32(self.evalExpr(math.MinInt32, math.MaxUint32))) - } -} - -func (self *_Pseudo) encodeQuad(m *[]byte) { - if m != nil { - if v, err := self.expr.Evaluate(); err != nil { - panic(err) - } else { - append64(m, uint64(v)) - } - } -} - -func (self *_Pseudo) encodeAlign(m *[]byte, pc uintptr) { - if m != nil { - if self.expr == nil { - expandmm(m, self.alignSize(pc), 0) - } else { - expandmm(m, self.alignSize(pc), byte(self.evalExpr(math.MinInt8, math.MaxUint8))) - } - } -} - -// Operands represents a sequence of operand required by an instruction. -type Operands [_N_args]interface{} - -// InstructionDomain represents the domain of an instruction. -type InstructionDomain uint8 - -const ( - DomainGeneric InstructionDomain = iota - DomainMMXSSE - DomainAVX - DomainFMA - DomainCrypto - DomainMask - DomainAMDSpecific - DomainMisc - DomainPseudo -) - -type ( - _BranchType uint8 -) - -const ( - _B_none _BranchType = iota - _B_conditional - _B_unconditional -) - -// Instruction represents an unencoded instruction. -type Instruction struct { - next *Instruction - pc uintptr - nb int - len int - argc int - name string - argv Operands - forms [_N_forms]_Encoding - pseudo _Pseudo - branch _BranchType - domain InstructionDomain - prefix []byte -} - -func (self *Instruction) add(flags int, encoder func(m *_Encoding, v []interface{})) { - self.forms[self.len].flags = flags - self.forms[self.len].encoder = encoder - self.len++ -} - -func (self *Instruction) free() { - self.clear() - self.pseudo.free() - //freeInstruction(self) -} - -func (self *Instruction) clear() { - for i := 0; i < self.argc; i++ { - if v, ok := self.argv[i].(Disposable); ok { - v.Free() - } - } -} - -func (self *Instruction) check(e *_Encoding) bool { - if (e.flags & _F_rel1) != 0 { - return isRel8(self.argv[0]) - } else if (e.flags & _F_rel4) != 0 { - return isRel32(self.argv[0]) || isLabel(self.argv[0]) - } else { - return true - } -} - -func (self *Instruction) encode(m *[]byte) int { - n := math.MaxInt64 - p := (*_Encoding)(nil) - - /* encode prefixes if any */ - if self.nb = len(self.prefix); m != nil { - *m = append(*m, self.prefix...) - } - - /* check for pseudo-instructions */ - if self.pseudo.kind != 0 { - self.nb += self.pseudo.encode(m, self.pc) - return self.nb - } - - /* find the shortest encoding */ - for i := 0; i < self.len; i++ { - if e := &self.forms[i]; self.check(e) { - if v := e.encode(self.argv[:self.argc]); v < n { - n = v - p = e - } - } - } - - /* add to buffer if needed */ - if m != nil { - *m = append(*m, p.bytes[:n]...) - } - - /* update the instruction length */ - self.nb += n - return self.nb -} - -/** Instruction Prefixes **/ - -const ( - _P_cs = 0x2e - _P_ds = 0x3e - _P_es = 0x26 - _P_fs = 0x64 - _P_gs = 0x65 - _P_ss = 0x36 - _P_lock = 0xf0 -) - -// CS overrides the memory operation of this instruction to CS. -func (self *Instruction) CS() *Instruction { - self.prefix = append(self.prefix, _P_cs) - return self -} - -// DS overrides the memory operation of this instruction to DS, -// this is the default section for most instructions if not specified. -func (self *Instruction) DS() *Instruction { - self.prefix = append(self.prefix, _P_ds) - return self -} - -// ES overrides the memory operation of this instruction to ES. -func (self *Instruction) ES() *Instruction { - self.prefix = append(self.prefix, _P_es) - return self -} - -// FS overrides the memory operation of this instruction to FS. -func (self *Instruction) FS() *Instruction { - self.prefix = append(self.prefix, _P_fs) - return self -} - -// GS overrides the memory operation of this instruction to GS. -func (self *Instruction) GS() *Instruction { - self.prefix = append(self.prefix, _P_gs) - return self -} - -// SS overrides the memory operation of this instruction to SS. -func (self *Instruction) SS() *Instruction { - self.prefix = append(self.prefix, _P_ss) - return self -} - -// LOCK causes the processor's LOCK# signal to be asserted during execution of -// the accompanying instruction (turns the instruction into an atomic instruction). -// In a multiprocessor environment, the LOCK# signal insures that the processor -// has exclusive use of any shared memory while the signal is asserted. -func (self *Instruction) LOCK() *Instruction { - self.prefix = append(self.prefix, _P_lock) - return self -} - -/** Basic Instruction Properties **/ - -// Name returns the instruction name. -func (self *Instruction) Name() string { - return self.name -} - -// Domain returns the domain of this instruction. -func (self *Instruction) Domain() InstructionDomain { - return self.domain -} - -// Operands returns the operands of this instruction. -func (self *Instruction) Operands() []interface{} { - return self.argv[:self.argc] -} - -// Program represents a sequence of instructions. -type Program struct { - arch *Arch - head *Instruction - tail *Instruction -} - -const ( - _N_near = 2 // near-branch (-128 ~ +127) takes 2 bytes to encode - _N_far_cond = 6 // conditional far-branch takes 6 bytes to encode - _N_far_uncond = 5 // unconditional far-branch takes 5 bytes to encode -) - -func (self *Program) clear() { - for p, q := self.head, self.head; p != nil; p = q { - q = p.next - p.free() - } -} - -func (self *Program) alloc(name string, argc int, argv Operands) *Instruction { - p := self.tail - q := newInstruction(name, argc, argv) - - /* attach to tail if any */ - if p != nil { - p.next = q - } else { - self.head = q - } - - /* set the new tail */ - self.tail = q - return q -} - -func (self *Program) pseudo(kind _PseudoType) (p *Instruction) { - p = self.alloc(kind.String(), 0, Operands{}) - p.domain = DomainPseudo - p.pseudo.kind = kind - return -} - -func (self *Program) require(isa ISA) { - if !self.arch.HasISA(isa) { - panic("ISA '" + isa.String() + "' was not enabled") - } -} - -func (self *Program) branchSize(p *Instruction) int { - switch p.branch { - case _B_none: - panic("p is not a branch") - case _B_conditional: - return _N_far_cond - case _B_unconditional: - return _N_far_uncond - default: - panic("invalid instruction") - } -} - -/** Pseudo-Instructions **/ - -// Byte is a pseudo-instruction to add raw byte to the assembled code. -func (self *Program) Byte(v *expr.Expr) (p *Instruction) { - p = self.pseudo(_PseudoByte) - p.pseudo.expr = v - return -} - -// Word is a pseudo-instruction to add raw uint16 as little-endian to the assembled code. -func (self *Program) Word(v *expr.Expr) (p *Instruction) { - p = self.pseudo(_PseudoWord) - p.pseudo.expr = v - return -} - -// Long is a pseudo-instruction to add raw uint32 as little-endian to the assembled code. -func (self *Program) Long(v *expr.Expr) (p *Instruction) { - p = self.pseudo(_PseudoLong) - p.pseudo.expr = v - return -} - -// Quad is a pseudo-instruction to add raw uint64 as little-endian to the assembled code. -func (self *Program) Quad(v *expr.Expr) (p *Instruction) { - p = self.pseudo(_PseudoQuad) - p.pseudo.expr = v - return -} - -// Data is a pseudo-instruction to add raw bytes to the assembled code. -func (self *Program) Data(v []byte) (p *Instruction) { - p = self.pseudo(_PseudoData) - p.pseudo.data = v - return -} - -// Align is a pseudo-instruction to ensure the PC is aligned to a certain value. -func (self *Program) Align(align uint64, padding *expr.Expr) (p *Instruction) { - p = self.pseudo(_PseudoAlign) - p.pseudo.uint = align - p.pseudo.expr = padding - return -} - -/** Program Assembler **/ - -// Free returns the Program object into pool. -// Any operation performed after Free is undefined behavior. -// -// NOTE: This also frees all the instructions, labels, memory -// -// operands and expressions associated with this program. -func (self *Program) Free() { - self.clear() - //freeProgram(self) -} - -// Link pins a label at the current position. -func (self *Program) Link(p *Label) { - if p.Dest != nil { - panic("lable was alreay linked") - } else { - p.Dest = self.pseudo(_PseudoNop) - } -} - -// Assemble assembles and links the entire program into machine code. -func (self *Program) Assemble(pc uintptr) (ret []byte) { - orig := pc - next := true - offs := uintptr(0) - - /* Pass 0: PC-precompute, assume all labeled branches are far-branches. */ - for p := self.head; p != nil; p = p.next { - if p.pc = pc; !isLabel(p.argv[0]) || p.branch == _B_none { - pc += uintptr(p.encode(nil)) - } else { - pc += uintptr(self.branchSize(p)) - } - } - - /* allocate space for the machine code */ - nb := int(pc - orig) - ret = make([]byte, 0, nb) - - /* Pass 1: adjust all the jumps */ - for next { - next = false - offs = uintptr(0) - - /* scan all the branches */ - for p := self.head; p != nil; p = p.next { - var ok bool - var lb *Label - - /* re-calculate the alignment here */ - if nb = p.nb; p.pseudo.kind == _PseudoAlign { - p.pc -= offs - offs += uintptr(nb - p.encode(nil)) - continue - } - - /* adjust the program counter */ - p.pc -= offs - lb, ok = p.argv[0].(*Label) - - /* only care about labeled far-branches */ - if !ok || p.nb == _N_near || p.branch == _B_none { - continue - } - - /* calculate the jump offset */ - size := self.branchSize(p) - diff := lb.offset(p.pc, size) - - /* too far to be a near jump */ - if diff > 127 || diff < -128 { - p.nb = size - continue - } - - /* a far jump becomes a near jump, calculate - * the PC adjustment value and assemble again */ - next = true - p.nb = _N_near - offs += uintptr(size - _N_near) - } - } - - /* Pass 3: link all the cross-references */ - for p := self.head; p != nil; p = p.next { - for i := 0; i < p.argc; i++ { - var ok bool - var lb *Label - var op *MemoryOperand - - /* resolve labels */ - if lb, ok = p.argv[i].(*Label); ok { - p.argv[i] = lb.offset(p.pc, p.nb) - continue - } - - /* check for memory operands */ - if op, ok = p.argv[i].(*MemoryOperand); !ok { - continue - } - - /* check for label references */ - if op.Addr.Type != Reference { - continue - } - - /* replace the label with the real offset */ - op.Addr.Type = Offset - op.Addr.Offset = op.Addr.Reference.offset(p.pc, p.nb) - } - } - - /* Pass 4: actually encode all the instructions */ - for p := self.head; p != nil; p = p.next { - p.encode(&ret) - } - - /* all done */ - return ret -} - -// AssembleAndFree is like Assemble, but it frees the Program after assembling. -func (self *Program) AssembleAndFree(pc uintptr) (ret []byte) { - ret = self.Assemble(pc) - self.Free() - return -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go deleted file mode 100644 index cd1188a2d..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/registers.go +++ /dev/null @@ -1,677 +0,0 @@ -package x86_64 - -import ( - `fmt` -) - -// Register represents a hardware register. -type Register interface { - fmt.Stringer - implRegister() -} - -type ( - Register8 byte - Register16 byte - Register32 byte - Register64 byte -) - -type ( - KRegister byte - MMRegister byte - XMMRegister byte - YMMRegister byte - ZMMRegister byte -) - -// RegisterMask is a KRegister used to mask another register. -type RegisterMask struct { - Z bool - K KRegister -} - -// String implements the fmt.Stringer interface. -func (self RegisterMask) String() string { - if !self.Z { - return fmt.Sprintf("{%%%s}", self.K) - } else { - return fmt.Sprintf("{%%%s}{z}", self.K) - } -} - -// MaskedRegister is a Register masked by a RegisterMask. -type MaskedRegister struct { - Reg Register - Mask RegisterMask -} - -// String implements the fmt.Stringer interface. -func (self MaskedRegister) String() string { - return self.Reg.String() + self.Mask.String() -} - -const ( - AL Register8 = iota - CL - DL - BL - SPL - BPL - SIL - DIL - R8b - R9b - R10b - R11b - R12b - R13b - R14b - R15b -) - -const ( - AH = SPL | 0x80 - CH = BPL | 0x80 - DH = SIL | 0x80 - BH = DIL | 0x80 -) - -const ( - AX Register16 = iota - CX - DX - BX - SP - BP - SI - DI - R8w - R9w - R10w - R11w - R12w - R13w - R14w - R15w -) - -const ( - EAX Register32 = iota - ECX - EDX - EBX - ESP - EBP - ESI - EDI - R8d - R9d - R10d - R11d - R12d - R13d - R14d - R15d -) - -const ( - RAX Register64 = iota - RCX - RDX - RBX - RSP - RBP - RSI - RDI - R8 - R9 - R10 - R11 - R12 - R13 - R14 - R15 -) - -const ( - K0 KRegister = iota - K1 - K2 - K3 - K4 - K5 - K6 - K7 -) - -const ( - MM0 MMRegister = iota - MM1 - MM2 - MM3 - MM4 - MM5 - MM6 - MM7 -) - -const ( - XMM0 XMMRegister = iota - XMM1 - XMM2 - XMM3 - XMM4 - XMM5 - XMM6 - XMM7 - XMM8 - XMM9 - XMM10 - XMM11 - XMM12 - XMM13 - XMM14 - XMM15 - XMM16 - XMM17 - XMM18 - XMM19 - XMM20 - XMM21 - XMM22 - XMM23 - XMM24 - XMM25 - XMM26 - XMM27 - XMM28 - XMM29 - XMM30 - XMM31 -) - -const ( - YMM0 YMMRegister = iota - YMM1 - YMM2 - YMM3 - YMM4 - YMM5 - YMM6 - YMM7 - YMM8 - YMM9 - YMM10 - YMM11 - YMM12 - YMM13 - YMM14 - YMM15 - YMM16 - YMM17 - YMM18 - YMM19 - YMM20 - YMM21 - YMM22 - YMM23 - YMM24 - YMM25 - YMM26 - YMM27 - YMM28 - YMM29 - YMM30 - YMM31 -) - -const ( - ZMM0 ZMMRegister = iota - ZMM1 - ZMM2 - ZMM3 - ZMM4 - ZMM5 - ZMM6 - ZMM7 - ZMM8 - ZMM9 - ZMM10 - ZMM11 - ZMM12 - ZMM13 - ZMM14 - ZMM15 - ZMM16 - ZMM17 - ZMM18 - ZMM19 - ZMM20 - ZMM21 - ZMM22 - ZMM23 - ZMM24 - ZMM25 - ZMM26 - ZMM27 - ZMM28 - ZMM29 - ZMM30 - ZMM31 -) - -func (self Register8) implRegister() {} -func (self Register16) implRegister() {} -func (self Register32) implRegister() {} -func (self Register64) implRegister() {} - -func (self KRegister) implRegister() {} -func (self MMRegister) implRegister() {} -func (self XMMRegister) implRegister() {} -func (self YMMRegister) implRegister() {} -func (self ZMMRegister) implRegister() {} - -func (self Register8) String() string { if int(self) >= len(r8names) { return "???" } else { return r8names[self] } } -func (self Register16) String() string { if int(self) >= len(r16names) { return "???" } else { return r16names[self] } } -func (self Register32) String() string { if int(self) >= len(r32names) { return "???" } else { return r32names[self] } } -func (self Register64) String() string { if int(self) >= len(r64names) { return "???" } else { return r64names[self] } } - -func (self KRegister) String() string { if int(self) >= len(knames) { return "???" } else { return knames[self] } } -func (self MMRegister) String() string { if int(self) >= len(mmnames) { return "???" } else { return mmnames[self] } } -func (self XMMRegister) String() string { if int(self) >= len(xmmnames) { return "???" } else { return xmmnames[self] } } -func (self YMMRegister) String() string { if int(self) >= len(ymmnames) { return "???" } else { return ymmnames[self] } } -func (self ZMMRegister) String() string { if int(self) >= len(zmmnames) { return "???" } else { return zmmnames[self] } } - -// Registers maps register name into Register instances. -var Registers = map[string]Register { - "al" : AL, - "cl" : CL, - "dl" : DL, - "bl" : BL, - "spl" : SPL, - "bpl" : BPL, - "sil" : SIL, - "dil" : DIL, - "r8b" : R8b, - "r9b" : R9b, - "r10b" : R10b, - "r11b" : R11b, - "r12b" : R12b, - "r13b" : R13b, - "r14b" : R14b, - "r15b" : R15b, - "ah" : AH, - "ch" : CH, - "dh" : DH, - "bh" : BH, - "ax" : AX, - "cx" : CX, - "dx" : DX, - "bx" : BX, - "sp" : SP, - "bp" : BP, - "si" : SI, - "di" : DI, - "r8w" : R8w, - "r9w" : R9w, - "r10w" : R10w, - "r11w" : R11w, - "r12w" : R12w, - "r13w" : R13w, - "r14w" : R14w, - "r15w" : R15w, - "eax" : EAX, - "ecx" : ECX, - "edx" : EDX, - "ebx" : EBX, - "esp" : ESP, - "ebp" : EBP, - "esi" : ESI, - "edi" : EDI, - "r8d" : R8d, - "r9d" : R9d, - "r10d" : R10d, - "r11d" : R11d, - "r12d" : R12d, - "r13d" : R13d, - "r14d" : R14d, - "r15d" : R15d, - "rax" : RAX, - "rcx" : RCX, - "rdx" : RDX, - "rbx" : RBX, - "rsp" : RSP, - "rbp" : RBP, - "rsi" : RSI, - "rdi" : RDI, - "r8" : R8, - "r9" : R9, - "r10" : R10, - "r11" : R11, - "r12" : R12, - "r13" : R13, - "r14" : R14, - "r15" : R15, - "k0" : K0, - "k1" : K1, - "k2" : K2, - "k3" : K3, - "k4" : K4, - "k5" : K5, - "k6" : K6, - "k7" : K7, - "mm0" : MM0, - "mm1" : MM1, - "mm2" : MM2, - "mm3" : MM3, - "mm4" : MM4, - "mm5" : MM5, - "mm6" : MM6, - "mm7" : MM7, - "xmm0" : XMM0, - "xmm1" : XMM1, - "xmm2" : XMM2, - "xmm3" : XMM3, - "xmm4" : XMM4, - "xmm5" : XMM5, - "xmm6" : XMM6, - "xmm7" : XMM7, - "xmm8" : XMM8, - "xmm9" : XMM9, - "xmm10" : XMM10, - "xmm11" : XMM11, - "xmm12" : XMM12, - "xmm13" : XMM13, - "xmm14" : XMM14, - "xmm15" : XMM15, - "xmm16" : XMM16, - "xmm17" : XMM17, - "xmm18" : XMM18, - "xmm19" : XMM19, - "xmm20" : XMM20, - "xmm21" : XMM21, - "xmm22" : XMM22, - "xmm23" : XMM23, - "xmm24" : XMM24, - "xmm25" : XMM25, - "xmm26" : XMM26, - "xmm27" : XMM27, - "xmm28" : XMM28, - "xmm29" : XMM29, - "xmm30" : XMM30, - "xmm31" : XMM31, - "ymm0" : YMM0, - "ymm1" : YMM1, - "ymm2" : YMM2, - "ymm3" : YMM3, - "ymm4" : YMM4, - "ymm5" : YMM5, - "ymm6" : YMM6, - "ymm7" : YMM7, - "ymm8" : YMM8, - "ymm9" : YMM9, - "ymm10" : YMM10, - "ymm11" : YMM11, - "ymm12" : YMM12, - "ymm13" : YMM13, - "ymm14" : YMM14, - "ymm15" : YMM15, - "ymm16" : YMM16, - "ymm17" : YMM17, - "ymm18" : YMM18, - "ymm19" : YMM19, - "ymm20" : YMM20, - "ymm21" : YMM21, - "ymm22" : YMM22, - "ymm23" : YMM23, - "ymm24" : YMM24, - "ymm25" : YMM25, - "ymm26" : YMM26, - "ymm27" : YMM27, - "ymm28" : YMM28, - "ymm29" : YMM29, - "ymm30" : YMM30, - "ymm31" : YMM31, - "zmm0" : ZMM0, - "zmm1" : ZMM1, - "zmm2" : ZMM2, - "zmm3" : ZMM3, - "zmm4" : ZMM4, - "zmm5" : ZMM5, - "zmm6" : ZMM6, - "zmm7" : ZMM7, - "zmm8" : ZMM8, - "zmm9" : ZMM9, - "zmm10" : ZMM10, - "zmm11" : ZMM11, - "zmm12" : ZMM12, - "zmm13" : ZMM13, - "zmm14" : ZMM14, - "zmm15" : ZMM15, - "zmm16" : ZMM16, - "zmm17" : ZMM17, - "zmm18" : ZMM18, - "zmm19" : ZMM19, - "zmm20" : ZMM20, - "zmm21" : ZMM21, - "zmm22" : ZMM22, - "zmm23" : ZMM23, - "zmm24" : ZMM24, - "zmm25" : ZMM25, - "zmm26" : ZMM26, - "zmm27" : ZMM27, - "zmm28" : ZMM28, - "zmm29" : ZMM29, - "zmm30" : ZMM30, - "zmm31" : ZMM31, -} - -/** Register Name Tables **/ - -var r8names = [...]string { - AL : "al", - CL : "cl", - DL : "dl", - BL : "bl", - SPL : "spl", - BPL : "bpl", - SIL : "sil", - DIL : "dil", - R8b : "r8b", - R9b : "r9b", - R10b : "r10b", - R11b : "r11b", - R12b : "r12b", - R13b : "r13b", - R14b : "r14b", - R15b : "r15b", - AH : "ah", - CH : "ch", - DH : "dh", - BH : "bh", -} - -var r16names = [...]string { - AX : "ax", - CX : "cx", - DX : "dx", - BX : "bx", - SP : "sp", - BP : "bp", - SI : "si", - DI : "di", - R8w : "r8w", - R9w : "r9w", - R10w : "r10w", - R11w : "r11w", - R12w : "r12w", - R13w : "r13w", - R14w : "r14w", - R15w : "r15w", -} - -var r32names = [...]string { - EAX : "eax", - ECX : "ecx", - EDX : "edx", - EBX : "ebx", - ESP : "esp", - EBP : "ebp", - ESI : "esi", - EDI : "edi", - R8d : "r8d", - R9d : "r9d", - R10d : "r10d", - R11d : "r11d", - R12d : "r12d", - R13d : "r13d", - R14d : "r14d", - R15d : "r15d", -} - -var r64names = [...]string { - RAX : "rax", - RCX : "rcx", - RDX : "rdx", - RBX : "rbx", - RSP : "rsp", - RBP : "rbp", - RSI : "rsi", - RDI : "rdi", - R8 : "r8", - R9 : "r9", - R10 : "r10", - R11 : "r11", - R12 : "r12", - R13 : "r13", - R14 : "r14", - R15 : "r15", -} - -var knames = [...]string { - K0: "k0", - K1: "k1", - K2: "k2", - K3: "k3", - K4: "k4", - K5: "k5", - K6: "k6", - K7: "k7", -} - -var mmnames = [...]string { - MM0: "mm0", - MM1: "mm1", - MM2: "mm2", - MM3: "mm3", - MM4: "mm4", - MM5: "mm5", - MM6: "mm6", - MM7: "mm7", -} - -var xmmnames = [...]string { - XMM0 : "xmm0", - XMM1 : "xmm1", - XMM2 : "xmm2", - XMM3 : "xmm3", - XMM4 : "xmm4", - XMM5 : "xmm5", - XMM6 : "xmm6", - XMM7 : "xmm7", - XMM8 : "xmm8", - XMM9 : "xmm9", - XMM10 : "xmm10", - XMM11 : "xmm11", - XMM12 : "xmm12", - XMM13 : "xmm13", - XMM14 : "xmm14", - XMM15 : "xmm15", - XMM16 : "xmm16", - XMM17 : "xmm17", - XMM18 : "xmm18", - XMM19 : "xmm19", - XMM20 : "xmm20", - XMM21 : "xmm21", - XMM22 : "xmm22", - XMM23 : "xmm23", - XMM24 : "xmm24", - XMM25 : "xmm25", - XMM26 : "xmm26", - XMM27 : "xmm27", - XMM28 : "xmm28", - XMM29 : "xmm29", - XMM30 : "xmm30", - XMM31 : "xmm31", -} - -var ymmnames = [...]string { - YMM0 : "ymm0", - YMM1 : "ymm1", - YMM2 : "ymm2", - YMM3 : "ymm3", - YMM4 : "ymm4", - YMM5 : "ymm5", - YMM6 : "ymm6", - YMM7 : "ymm7", - YMM8 : "ymm8", - YMM9 : "ymm9", - YMM10 : "ymm10", - YMM11 : "ymm11", - YMM12 : "ymm12", - YMM13 : "ymm13", - YMM14 : "ymm14", - YMM15 : "ymm15", - YMM16 : "ymm16", - YMM17 : "ymm17", - YMM18 : "ymm18", - YMM19 : "ymm19", - YMM20 : "ymm20", - YMM21 : "ymm21", - YMM22 : "ymm22", - YMM23 : "ymm23", - YMM24 : "ymm24", - YMM25 : "ymm25", - YMM26 : "ymm26", - YMM27 : "ymm27", - YMM28 : "ymm28", - YMM29 : "ymm29", - YMM30 : "ymm30", - YMM31 : "ymm31", -} - -var zmmnames = [...]string { - ZMM0 : "zmm0", - ZMM1 : "zmm1", - ZMM2 : "zmm2", - ZMM3 : "zmm3", - ZMM4 : "zmm4", - ZMM5 : "zmm5", - ZMM6 : "zmm6", - ZMM7 : "zmm7", - ZMM8 : "zmm8", - ZMM9 : "zmm9", - ZMM10 : "zmm10", - ZMM11 : "zmm11", - ZMM12 : "zmm12", - ZMM13 : "zmm13", - ZMM14 : "zmm14", - ZMM15 : "zmm15", - ZMM16 : "zmm16", - ZMM17 : "zmm17", - ZMM18 : "zmm18", - ZMM19 : "zmm19", - ZMM20 : "zmm20", - ZMM21 : "zmm21", - ZMM22 : "zmm22", - ZMM23 : "zmm23", - ZMM24 : "zmm24", - ZMM25 : "zmm25", - ZMM26 : "zmm26", - ZMM27 : "zmm27", - ZMM28 : "zmm28", - ZMM29 : "zmm29", - ZMM30 : "zmm30", - ZMM31 : "zmm31", -} diff --git a/vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go b/vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go deleted file mode 100644 index 19a259951..000000000 --- a/vendor/github.com/chenzhuoyu/iasm/x86_64/utils.go +++ /dev/null @@ -1,131 +0,0 @@ -package x86_64 - -import ( - `encoding/binary` - `errors` - `reflect` - `strconv` - `unicode/utf8` - `unsafe` -) - -const ( - _CC_digit = 1 << iota - _CC_ident - _CC_ident0 - _CC_number -) - -func ispow2(v uint64) bool { - return (v & (v - 1)) == 0 -} - -func isdigit(cc rune) bool { - return '0' <= cc && cc <= '9' -} - -func isalpha(cc rune) bool { - return (cc >= 'a' && cc <= 'z') || (cc >= 'A' && cc <= 'Z') -} - -func isident(cc rune) bool { - return cc == '_' || isalpha(cc) || isdigit(cc) -} - -func isident0(cc rune) bool { - return cc == '_' || isalpha(cc) -} - -func isnumber(cc rune) bool { - return (cc == 'b' || cc == 'B') || - (cc == 'o' || cc == 'O') || - (cc == 'x' || cc == 'X') || - (cc >= '0' && cc <= '9') || - (cc >= 'a' && cc <= 'f') || - (cc >= 'A' && cc <= 'F') -} - -func align(v int, n int) int { - return (((v - 1) >> n) + 1) << n -} - -func append8(m *[]byte, v byte) { - *m = append(*m, v) -} - -func append16(m *[]byte, v uint16) { - p := len(*m) - *m = append(*m, 0, 0) - binary.LittleEndian.PutUint16((*m)[p:], v) -} - -func append32(m *[]byte, v uint32) { - p := len(*m) - *m = append(*m, 0, 0, 0, 0) - binary.LittleEndian.PutUint32((*m)[p:], v) -} - -func append64(m *[]byte, v uint64) { - p := len(*m) - *m = append(*m, 0, 0, 0, 0, 0, 0, 0, 0) - binary.LittleEndian.PutUint64((*m)[p:], v) -} - -func expandmm(m *[]byte, n int, v byte) { - sl := (*_GoSlice)(unsafe.Pointer(m)) - nb := sl.len + n - - /* grow as needed */ - if nb > cap(*m) { - *m = growslice(byteType, *m, nb) - } - - /* fill the new area */ - memset(unsafe.Pointer(uintptr(sl.ptr) + uintptr(sl.len)), v, uintptr(n)) - sl.len = nb -} - -func memset(p unsafe.Pointer, c byte, n uintptr) { - if c != 0 { - memsetv(p, c, n) - } else { - memclrNoHeapPointers(p, n) - } -} - -func memsetv(p unsafe.Pointer, c byte, n uintptr) { - for i := uintptr(0); i < n; i++ { - *(*byte)(unsafe.Pointer(uintptr(p) + i)) = c - } -} - -func literal64(v string) (uint64, error) { - var nb int - var ch rune - var ex error - var mm [12]byte - - /* unquote the runes */ - for v != "" { - if ch, _, v, ex = strconv.UnquoteChar(v, '\''); ex != nil { - return 0, ex - } else if nb += utf8.EncodeRune(mm[nb:], ch); nb > 8 { - return 0, errors.New("multi-char constant too large") - } - } - - /* convert to uint64 */ - return *(*uint64)(unsafe.Pointer(&mm)), nil -} - -var ( - byteWrap = reflect.TypeOf(byte(0)) - byteType = (*_GoType)(efaceOf(byteWrap).ptr) -) - -//go:linkname growslice runtime.growslice -func growslice(_ *_GoType, _ []byte, _ int) []byte - -//go:noescape -//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers -func memclrNoHeapPointers(_ unsafe.Pointer, _ uintptr) diff --git a/vendor/github.com/cloudwego/base64x/.gitignore b/vendor/github.com/cloudwego/base64x/.gitignore new file mode 100644 index 000000000..644df37e0 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/.gitignore @@ -0,0 +1,30 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# 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/ + +# the result of the go build +output* +output/* + +# Files generated by IDEs +.idea/ +*.iml + +# Vim swap files +*.swp + +# Vscode files +.vscode + diff --git a/vendor/github.com/cloudwego/base64x/.golangci.yaml b/vendor/github.com/cloudwego/base64x/.golangci.yaml new file mode 100644 index 000000000..71405b0bc --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/.golangci.yaml @@ -0,0 +1,37 @@ +# Options for analysis running. +run: + # include `vendor` `third_party` `testdata` `examples` `Godeps` `builtin` + skip-dirs-use-default: true + skip-dirs: + - kitex_gen + skip-files: + - ".*\\.mock\\.go$" +# output configuration options +output: + # Format: colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions + format: colored-line-number +# All available settings of specific linters. +# Refer to https://golangci-lint.run/usage/linters +linters-settings: + gofumpt: + # Choose whether to use the extra rules. + # Default: false + extra-rules: true + govet: + # Disable analyzers by name. + # Run `go tool vet help` to see all analyzers. + disable: + - stdmethods +linters: + enable: + - gofumpt + - goimports + - gofmt + disable: + - errcheck + - typecheck + - deadcode + - varcheck + - staticcheck +issues: + exclude-use-default: true diff --git a/vendor/github.com/cloudwego/base64x/.licenserc.yaml b/vendor/github.com/cloudwego/base64x/.licenserc.yaml new file mode 100644 index 000000000..f969fec26 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/.licenserc.yaml @@ -0,0 +1,14 @@ +header: + license: + spdx-id: Apache-2.0 + copyright-owner: CloudWeGo Authors + + paths: + - '**/*.go' + - '**/*.s' + + paths-ignore: + - 'native_subr_amd64.go' + - 'native_text_amd64.go' + + comment: on-failure diff --git a/vendor/github.com/cloudwego/base64x/CODE_OF_CONDUCT.md b/vendor/github.com/cloudwego/base64x/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..25ceb8918 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +conduct@cloudwego.io. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/vendor/github.com/cloudwego/base64x/CONTRIBUTING.md b/vendor/github.com/cloudwego/base64x/CONTRIBUTING.md new file mode 100644 index 000000000..e60a59ec0 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/CONTRIBUTING.md @@ -0,0 +1,55 @@ +# How to Contribute + +## Your First Pull Request +We use github for our codebase. You can start by reading [How To Pull Request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests). + +## Branch Organization +We use [git-flow](https://nvie.com/posts/a-successful-git-branching-model/) as our branch organization, as known as [FDD](https://en.wikipedia.org/wiki/Feature-driven_development) + +## Bugs +### 1. How to Find Known Issues +We are using [Github Issues](https://github.com/cloudwego/kitex/issues) for our public bugs. We keep a close eye on this and try to make it clear when we have an internal fix in progress. Before filing a new task, try to make sure your problem doesn’t already exist. + +### 2. Reporting New Issues +Providing a reduced test code is a recommended way for reporting issues. Then can placed in: +- Just in issues +- [Golang Playground](https://play.golang.org/) + +### 3. Security Bugs +Please do not report the safe disclosure of bugs to public issues. Contact us by [Support Email](mailto:conduct@cloudwego.io) + +## How to Get in Touch +- [Email](mailto:conduct@cloudwego.io) + +## Submit a Pull Request +Before you submit your Pull Request (PR) consider the following guidelines: +1. Search [GitHub](https://github.com/cloudwego/kitex/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate existing efforts. +2. Be sure that an issue describes the problem you're fixing, or documents the design for the feature you'd like to add. Discussing the design upfront helps to ensure that we're ready to accept your work. +3. [Fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) the cloudwego/kitex repo. +4. In your forked repository, make your changes in a new git branch: + ``` + git checkout -b my-fix-branch develop + ``` +5. Create your patch, including appropriate test cases. +6. Follow our [Style Guides](#code-style-guides). +7. Commit your changes using a descriptive commit message that follows [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit). + Adherence to these conventions is necessary because release notes are automatically generated from these messages. +8. Push your branch to GitHub: + ``` + git push origin my-fix-branch + ``` +9. In GitHub, send a pull request to `kitex:develop` + +## Contribution Prerequisites +- Our development environment keeps up with [Go Official](https://golang.org/project/). +- You need fully checking with lint tools before submit your pull request. [gofmt](https://golang.org/pkg/cmd/gofmt/) and [golangci-lint](https://github.com/golangci/golangci-lint) +- You are familiar with [Github](https://github.com) +- Maybe you need familiar with [Actions](https://github.com/features/actions)(our default workflow tool). + +## Code Style Guides +Also see [Pingcap General advice](https://pingcap.github.io/style-guide/general.html). + +Good resources: +- [Effective Go](https://golang.org/doc/effective_go) +- [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments) +- [Uber Go Style Guide](https://github.com/uber-go/guide/blob/master/style.md) diff --git a/vendor/github.com/cloudwego/base64x/LICENSE b/vendor/github.com/cloudwego/base64x/LICENSE new file mode 100644 index 000000000..261eeb9e9 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/cloudwego/base64x/LICENSE-APACHE b/vendor/github.com/cloudwego/base64x/LICENSE-APACHE new file mode 100644 index 000000000..66a27ec5f --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/LICENSE-APACHE @@ -0,0 +1,177 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/vendor/github.com/cloudwego/base64x/Makefile b/vendor/github.com/cloudwego/base64x/Makefile new file mode 100644 index 000000000..a0793f485 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/Makefile @@ -0,0 +1,29 @@ +.PHONY: all clean + +CFLAGS := -mavx +CFLAGS += -mavx2 +CFLAGS += -mno-bmi +CFLAGS += -mno-red-zone +CFLAGS += -fno-asynchronous-unwind-tables +CFLAGS += -fno-stack-protector +CFLAGS += -fno-exceptions +CFLAGS += -fno-builtin +CFLAGS += -fno-rtti +CFLAGS += -nostdlib +CFLAGS += -O3 + +NATIVE_ASM := $(wildcard native/*.S) +NATIVE_SRC := $(wildcard native/*.h) +NATIVE_SRC += $(wildcard native/*.c) + +all: native_amd64.s + +clean: + 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 -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/cloudwego/base64x/README.md b/vendor/github.com/cloudwego/base64x/README.md new file mode 100644 index 000000000..4a3a7c98a --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/README.md @@ -0,0 +1,4 @@ +# base64x + +High performance drop-in replacement of the `encoding/base64` library. + diff --git a/vendor/github.com/cloudwego/base64x/_typos.toml b/vendor/github.com/cloudwego/base64x/_typos.toml new file mode 100644 index 000000000..47b5bead8 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/_typos.toml @@ -0,0 +1,4 @@ +# Typo check: https://github.com/crate-ci/typos + +[files] +extend-exclude = ["go.mod", "go.sum", "check_branch_name.sh"] diff --git a/vendor/github.com/cloudwego/base64x/base64x.go b/vendor/github.com/cloudwego/base64x/base64x.go new file mode 100644 index 000000000..b9ded5507 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/base64x.go @@ -0,0 +1,167 @@ +/* + * Copyright 2024 CloudWeGo Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package base64x + +import ( + `encoding/base64` +) + +// An Encoding is a radix 64 encoding/decoding scheme, defined by a +// 64-character alphabet. The most common encoding is the "base64" +// encoding defined in RFC 4648 and used in MIME (RFC 2045) and PEM +// (RFC 1421). RFC 4648 also defines an alternate encoding, which is +// the standard encoding with - and _ substituted for + and /. +type Encoding int + +const ( + _MODE_URL = 1 << 0 + _MODE_RAW = 1 << 1 + _MODE_AVX2 = 1 << 2 + _MODE_JSON = 1 << 3 +) + +// StdEncoding is the standard base64 encoding, as defined in +// RFC 4648. +const StdEncoding Encoding = 0 + +// URLEncoding is the alternate base64 encoding defined in RFC 4648. +// It is typically used in URLs and file names. +const URLEncoding Encoding = _MODE_URL + +// RawStdEncoding is the standard raw, unpadded base64 encoding, +// as defined in RFC 4648 section 3.2. +// +// This is the same as StdEncoding but omits padding characters. +const RawStdEncoding Encoding = _MODE_RAW + +// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648. +// It is typically used in URLs and file names. +// +// This is the same as URLEncoding but omits padding characters. +const RawURLEncoding Encoding = _MODE_RAW | _MODE_URL + +// JSONStdEncoding is the StdEncoding and encoded as JSON string as RFC 8259. +const JSONStdEncoding Encoding = _MODE_JSON; + +var ( + archFlags = 0 +) + +/** Encoder Functions **/ + +// Encode encodes src using the specified encoding, writing +// EncodedLen(len(src)) bytes to out. +// +// The encoding pads the output to a multiple of 4 bytes, +// so Encode is not appropriate for use on individual blocks +// of a large data stream. +// +// If out is not large enough to contain the encoded result, +// it will panic. +func (self Encoding) Encode(out []byte, src []byte) { + if len(src) != 0 { + if buf := out[:0:len(out)]; self.EncodedLen(len(src)) <= len(out) { + self.EncodeUnsafe(&buf, src) + } else { + panic("encoder output buffer is too small") + } + } +} + +// EncodeUnsafe behaves like Encode, except it does NOT check if +// out is large enough to contain the encoded result. +// +// It will also update the length of out. +func (self Encoding) EncodeUnsafe(out *[]byte, src []byte) { + b64encode(out, &src, int(self) | archFlags) +} + +// EncodeToString returns the base64 encoding of src. +func (self Encoding) EncodeToString(src []byte) string { + nbs := len(src) + ret := make([]byte, 0, self.EncodedLen(nbs)) + + /* encode in native code */ + self.EncodeUnsafe(&ret, src) + return mem2str(ret) +} + +// EncodedLen returns the length in bytes of the base64 encoding +// of an input buffer of length n. +func (self Encoding) EncodedLen(n int) int { + if (self & _MODE_RAW) == 0 { + return (n + 2) / 3 * 4 + } else { + return (n * 8 + 5) / 6 + } +} + +/** Decoder Functions **/ + +// Decode decodes src using the encoding enc. It writes at most +// DecodedLen(len(src)) bytes to out and returns the number of bytes +// written. If src contains invalid base64 data, it will return the +// number of bytes successfully written and base64.CorruptInputError. +// +// New line characters (\r and \n) are ignored. +// +// If out is not large enough to contain the encoded result, +// it will panic. +func (self Encoding) Decode(out []byte, src []byte) (int, error) { + if len(src) == 0 { + return 0, nil + } else if buf := out[:0:len(out)]; self.DecodedLen(len(src)) <= len(out) { + return self.DecodeUnsafe(&buf, src) + } else { + panic("decoder output buffer is too small") + } +} + +// DecodeUnsafe behaves like Decode, except it does NOT check if +// out is large enough to contain the decoded result. +// +// 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 { + return n, nil + } else { + return 0, base64.CorruptInputError(-n - 1) + } +} + +// DecodeString returns the bytes represented by the base64 string s. +func (self Encoding) DecodeString(s string) ([]byte, error) { + src := str2mem(s) + ret := make([]byte, 0, self.DecodedLen(len(s))) + + /* decode into the allocated buffer */ + if _, err := self.DecodeUnsafe(&ret, src); err != nil { + return nil, err + } else { + return ret, nil + } +} + +// DecodedLen returns the maximum length in bytes of the decoded data +// corresponding to n bytes of base64-encoded data. +func (self Encoding) DecodedLen(n int) int { + if (self & _MODE_RAW) == 0 { + return n / 4 * 3 + } else { + return n * 6 / 8 + } +} diff --git a/vendor/github.com/cloudwego/base64x/check_branch_name.sh b/vendor/github.com/cloudwego/base64x/check_branch_name.sh new file mode 100644 index 000000000..1876fc045 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/check_branch_name.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +current=$(git status | head -n1 | sed 's/On branch //') +name=${1:-$current} +if [[ ! $name =~ ^(((opt(imize)?|feat(ure)?|(bug|hot)?fix|test|refact(or)?|ci)/.+)|(main|develop)|(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/cloudwego/base64x/cpuid.go b/vendor/github.com/cloudwego/base64x/cpuid.go new file mode 100644 index 000000000..1947af0e1 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/cpuid.go @@ -0,0 +1,33 @@ +/* + * Copyright 2024 CloudWeGo Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package base64x + +import ( + `fmt` + `os` + + `github.com/klauspost/cpuid/v2` +) + +func hasAVX2() bool { + switch v := os.Getenv("B64X_MODE"); v { + case "" : fallthrough + case "auto" : return cpuid.CPU.Has(cpuid.AVX2) + case "noavx2" : return false + default : panic(fmt.Sprintf("invalid mode: '%s', should be one of 'auto', 'noavx2'", v)) + } +} diff --git a/vendor/github.com/cloudwego/base64x/faststr.go b/vendor/github.com/cloudwego/base64x/faststr.go new file mode 100644 index 000000000..083d864f7 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/faststr.go @@ -0,0 +1,51 @@ +/* + * Copyright 2024 CloudWeGo Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package base64x + +import ( + `reflect` + `unsafe` +) + +func mem2str(v []byte) (s string) { + (*reflect.StringHeader)(unsafe.Pointer(&s)).Len = (*reflect.SliceHeader)(unsafe.Pointer(&v)).Len + (*reflect.StringHeader)(unsafe.Pointer(&s)).Data = (*reflect.SliceHeader)(unsafe.Pointer(&v)).Data + return +} + +func str2mem(s string) (v []byte) { + (*reflect.SliceHeader)(unsafe.Pointer(&v)).Cap = (*reflect.StringHeader)(unsafe.Pointer(&s)).Len + (*reflect.SliceHeader)(unsafe.Pointer(&v)).Len = (*reflect.StringHeader)(unsafe.Pointer(&s)).Len + (*reflect.SliceHeader)(unsafe.Pointer(&v)).Data = (*reflect.StringHeader)(unsafe.Pointer(&s)).Data + return +} + +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/cloudwego/base64x/native_amd64.go b/vendor/github.com/cloudwego/base64x/native_amd64.go new file mode 100644 index 000000000..d988ea103 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/native_amd64.go @@ -0,0 +1,58 @@ +/* + * Copyright 2024 CloudWeGo Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +//go:generate make +package base64x + +import ( + `unsafe` + + `github.com/bytedance/sonic/loader` +) + +//go:nosplit +func b64encode(out *[]byte, src *[]byte, mode int) { + __b64encode(noEscape(unsafe.Pointer(out)), noEscape(unsafe.Pointer(src)), mode) +} + +//go:nosplit +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/cloudwego/base64x/native_subr_amd64.go b/vendor/github.com/cloudwego/base64x/native_subr_amd64.go new file mode 100644 index 000000000..3bcb09005 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/native_subr_amd64.go @@ -0,0 +1,63 @@ +// +build !noasm !appengine +// Code generated by asm2asm, DO NOT EDIT. + +package base64x + +import ( + `github.com/bytedance/sonic/loader` +) + +const ( + _entry__b64decode = 1328 + _entry__b64encode = 256 +) + +const ( + _stack__b64decode = 152 + _stack__b64encode = 40 +) + +const ( + _size__b64decode = 17616 + _size__b64encode = 864 +) + +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/cloudwego/base64x/native_text_amd64.go b/vendor/github.com/cloudwego/base64x/native_text_amd64.go new file mode 100644 index 000000000..fcfb21942 --- /dev/null +++ b/vendor/github.com/cloudwego/base64x/native_text_amd64.go @@ -0,0 +1,5305 @@ +// +build amd64 +// Code generated by asm2asm, DO NOT EDIT. + +package base64x + +var text__native_entry__ = []byte{ + 0x48, 0x8d, 0x05, 0xf9, 0xff, 0xff, 0xff, // leaq $-7(%rip), %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00000007 movq %rax, $8(%rsp) + 0xc3, //0x0000000c retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000000d .p2align 5, 0x00 + //0x00000020 LCPI0_0 + 0x01, //0x00000020 .byte 1 + 0x00, //0x00000021 .byte 0 + 0x02, //0x00000022 .byte 2 + 0x01, //0x00000023 .byte 1 + 0x04, //0x00000024 .byte 4 + 0x03, //0x00000025 .byte 3 + 0x05, //0x00000026 .byte 5 + 0x04, //0x00000027 .byte 4 + 0x07, //0x00000028 .byte 7 + 0x06, //0x00000029 .byte 6 + 0x08, //0x0000002a .byte 8 + 0x07, //0x0000002b .byte 7 + 0x0a, //0x0000002c .byte 10 + 0x09, //0x0000002d .byte 9 + 0x0b, //0x0000002e .byte 11 + 0x0a, //0x0000002f .byte 10 + 0x01, //0x00000030 .byte 1 + 0x00, //0x00000031 .byte 0 + 0x02, //0x00000032 .byte 2 + 0x01, //0x00000033 .byte 1 + 0x04, //0x00000034 .byte 4 + 0x03, //0x00000035 .byte 3 + 0x05, //0x00000036 .byte 5 + 0x04, //0x00000037 .byte 4 + 0x07, //0x00000038 .byte 7 + 0x06, //0x00000039 .byte 6 + 0x08, //0x0000003a .byte 8 + 0x07, //0x0000003b .byte 7 + 0x0a, //0x0000003c .byte 10 + 0x09, //0x0000003d .byte 9 + 0x0b, //0x0000003e .byte 11 + 0x0a, //0x0000003f .byte 10 + //0x00000040 LCPI0_1 + 0x00, 0xfc, //0x00000040 .word 64512 + 0xc0, 0x0f, //0x00000042 .word 4032 + 0x00, 0xfc, //0x00000044 .word 64512 + 0xc0, 0x0f, //0x00000046 .word 4032 + 0x00, 0xfc, //0x00000048 .word 64512 + 0xc0, 0x0f, //0x0000004a .word 4032 + 0x00, 0xfc, //0x0000004c .word 64512 + 0xc0, 0x0f, //0x0000004e .word 4032 + 0x00, 0xfc, //0x00000050 .word 64512 + 0xc0, 0x0f, //0x00000052 .word 4032 + 0x00, 0xfc, //0x00000054 .word 64512 + 0xc0, 0x0f, //0x00000056 .word 4032 + 0x00, 0xfc, //0x00000058 .word 64512 + 0xc0, 0x0f, //0x0000005a .word 4032 + 0x00, 0xfc, //0x0000005c .word 64512 + 0xc0, 0x0f, //0x0000005e .word 4032 + //0x00000060 LCPI0_2 + 0x40, 0x00, //0x00000060 .word 64 + 0x00, 0x04, //0x00000062 .word 1024 + 0x40, 0x00, //0x00000064 .word 64 + 0x00, 0x04, //0x00000066 .word 1024 + 0x40, 0x00, //0x00000068 .word 64 + 0x00, 0x04, //0x0000006a .word 1024 + 0x40, 0x00, //0x0000006c .word 64 + 0x00, 0x04, //0x0000006e .word 1024 + 0x40, 0x00, //0x00000070 .word 64 + 0x00, 0x04, //0x00000072 .word 1024 + 0x40, 0x00, //0x00000074 .word 64 + 0x00, 0x04, //0x00000076 .word 1024 + 0x40, 0x00, //0x00000078 .word 64 + 0x00, 0x04, //0x0000007a .word 1024 + 0x40, 0x00, //0x0000007c .word 64 + 0x00, 0x04, //0x0000007e .word 1024 + //0x00000080 LCPI0_3 + 0xf0, 0x03, //0x00000080 .word 1008 + 0x3f, 0x00, //0x00000082 .word 63 + 0xf0, 0x03, //0x00000084 .word 1008 + 0x3f, 0x00, //0x00000086 .word 63 + 0xf0, 0x03, //0x00000088 .word 1008 + 0x3f, 0x00, //0x0000008a .word 63 + 0xf0, 0x03, //0x0000008c .word 1008 + 0x3f, 0x00, //0x0000008e .word 63 + 0xf0, 0x03, //0x00000090 .word 1008 + 0x3f, 0x00, //0x00000092 .word 63 + 0xf0, 0x03, //0x00000094 .word 1008 + 0x3f, 0x00, //0x00000096 .word 63 + 0xf0, 0x03, //0x00000098 .word 1008 + 0x3f, 0x00, //0x0000009a .word 63 + 0xf0, 0x03, //0x0000009c .word 1008 + 0x3f, 0x00, //0x0000009e .word 63 + //0x000000a0 LCPI0_4 + 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, //0x000000a0 QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' + 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, 0x1a, //0x000000b0 QUAD $0x1a1a1a1a1a1a1a1a; QUAD $0x1a1a1a1a1a1a1a1a // .space 16, '\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a\x1a' + //0x000000c0 LCPI0_5 + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000000c0 QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' + 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000000d0 QUAD $0x3333333333333333; QUAD $0x3333333333333333 // .space 16, '3333333333333333' + //0x000000e0 LCPI0_6 + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, //0x000000e0 QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' + 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, //0x000000f0 QUAD $0x0d0d0d0d0d0d0d0d; QUAD $0x0d0d0d0d0d0d0d0d // .space 16, '\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r' + //0x00000100 .p2align 4, 0x90 + //0x00000100 _b64encode + 0x55, //0x00000100 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000101 movq %rsp, %rbp + 0x41, 0x57, //0x00000104 pushq %r15 + 0x41, 0x56, //0x00000106 pushq %r14 + 0x41, 0x54, //0x00000108 pushq %r12 + 0x53, //0x0000010a pushq %rbx + 0x4c, 0x8b, 0x4e, 0x08, //0x0000010b movq $8(%rsi), %r9 + 0x4d, 0x85, 0xc9, //0x0000010f testq %r9, %r9 + 0x0f, 0x84, 0x3c, 0x03, 0x00, 0x00, //0x00000112 je LBB0_26 + 0x4c, 0x8b, 0x07, //0x00000118 movq (%rdi), %r8 + 0x4c, 0x03, 0x47, 0x08, //0x0000011b addq $8(%rdi), %r8 + 0x4c, 0x8b, 0x26, //0x0000011f movq (%rsi), %r12 + 0x4d, 0x01, 0xe1, //0x00000122 addq %r12, %r9 + 0xf6, 0xc2, 0x01, //0x00000125 testb $1, %dl + 0x48, 0x8d, 0x0d, 0x11, 0x49, 0x00, 0x00, //0x00000128 leaq $18705(%rip), %rcx /* _VecEncodeCharsetStd+0(%rip) */ + 0x4c, 0x8d, 0x15, 0x6a, 0x49, 0x00, 0x00, //0x0000012f leaq $18794(%rip), %r10 /* _VecEncodeCharsetURL+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xd1, //0x00000136 cmoveq %rcx, %r10 + 0x48, 0x8d, 0x0d, 0xbf, 0x48, 0x00, 0x00, //0x0000013a leaq $18623(%rip), %rcx /* _TabEncodeCharsetStd+0(%rip) */ + 0x4c, 0x8d, 0x1d, 0x18, 0x49, 0x00, 0x00, //0x00000141 leaq $18712(%rip), %r11 /* _TabEncodeCharsetURL+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xd9, //0x00000148 cmoveq %rcx, %r11 + 0xf6, 0xc2, 0x04, //0x0000014c testb $4, %dl + 0x0f, 0x84, 0xc8, 0x00, 0x00, 0x00, //0x0000014f je LBB0_2 + 0x49, 0x8d, 0x71, 0xe4, //0x00000155 leaq $-28(%r9), %rsi + 0x49, 0x39, 0xf4, //0x00000159 cmpq %rsi, %r12 + 0x0f, 0x87, 0x4e, 0x02, 0x00, 0x00, //0x0000015c ja LBB0_4 + 0xc4, 0xc1, 0x7e, 0x6f, 0x02, //0x00000162 vmovdqu (%r10), %ymm0 + 0xc5, 0xfd, 0x6f, 0x0d, 0xb1, 0xfe, 0xff, 0xff, //0x00000167 vmovdqa $-335(%rip), %ymm1 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0xc9, 0xfe, 0xff, 0xff, //0x0000016f vmovdqa $-311(%rip), %ymm2 /* LCPI0_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x1d, 0xe1, 0xfe, 0xff, 0xff, //0x00000177 vmovdqa $-287(%rip), %ymm3 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0xf9, 0xfe, 0xff, 0xff, //0x0000017f vmovdqa $-263(%rip), %ymm4 /* LCPI0_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x11, 0xff, 0xff, 0xff, //0x00000187 vmovdqa $-239(%rip), %ymm5 /* LCPI0_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x29, 0xff, 0xff, 0xff, //0x0000018f vmovdqa $-215(%rip), %ymm6 /* LCPI0_5+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0x41, 0xff, 0xff, 0xff, //0x00000197 vmovdqa $-191(%rip), %ymm7 /* LCPI0_6+0(%rip) */ + 0x4d, 0x89, 0xc6, //0x0000019f movq %r8, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000001a2 .p2align 4, 0x90 + //0x000001b0 LBB0_6 + 0xc4, 0x41, 0x7a, 0x6f, 0x04, 0x24, //0x000001b0 vmovdqu (%r12), %xmm8 + 0xc4, 0x43, 0x3d, 0x38, 0x44, 0x24, 0x0c, 0x01, //0x000001b6 vinserti128 $1, $12(%r12), %ymm8, %ymm8 + 0xc4, 0x62, 0x3d, 0x00, 0xc1, //0x000001be vpshufb %ymm1, %ymm8, %ymm8 + 0xc5, 0x3d, 0xdb, 0xca, //0x000001c3 vpand %ymm2, %ymm8, %ymm9 + 0xc5, 0x35, 0xe4, 0xcb, //0x000001c7 vpmulhuw %ymm3, %ymm9, %ymm9 + 0xc5, 0x3d, 0xdb, 0xc4, //0x000001cb vpand %ymm4, %ymm8, %ymm8 + 0xc4, 0xc1, 0x2d, 0x71, 0xf0, 0x08, //0x000001cf vpsllw $8, %ymm8, %ymm10 + 0xc4, 0xc1, 0x3d, 0x71, 0xf0, 0x04, //0x000001d5 vpsllw $4, %ymm8, %ymm8 + 0xc4, 0x43, 0x3d, 0x0e, 0xc2, 0xaa, //0x000001db vpblendw $170, %ymm10, %ymm8, %ymm8 + 0xc4, 0x41, 0x3d, 0xeb, 0xc1, //0x000001e1 vpor %ymm9, %ymm8, %ymm8 + 0xc4, 0x41, 0x55, 0x64, 0xc8, //0x000001e6 vpcmpgtb %ymm8, %ymm5, %ymm9 + 0xc5, 0x35, 0xdb, 0xcf, //0x000001eb vpand %ymm7, %ymm9, %ymm9 + 0xc5, 0x3d, 0xd8, 0xd6, //0x000001ef vpsubusb %ymm6, %ymm8, %ymm10 + 0xc4, 0x41, 0x35, 0xeb, 0xca, //0x000001f3 vpor %ymm10, %ymm9, %ymm9 + 0xc4, 0x42, 0x7d, 0x00, 0xc9, //0x000001f8 vpshufb %ymm9, %ymm0, %ymm9 + 0xc4, 0x41, 0x35, 0xfc, 0xc0, //0x000001fd vpaddb %ymm8, %ymm9, %ymm8 + 0xc4, 0x41, 0x7e, 0x7f, 0x06, //0x00000202 vmovdqu %ymm8, (%r14) + 0x49, 0x83, 0xc6, 0x20, //0x00000207 addq $32, %r14 + 0x49, 0x83, 0xc4, 0x18, //0x0000020b addq $24, %r12 + 0x49, 0x39, 0xf4, //0x0000020f cmpq %rsi, %r12 + 0x0f, 0x86, 0x98, 0xff, 0xff, 0xff, //0x00000212 jbe LBB0_6 + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00000218 jmp LBB0_7 + //0x0000021d LBB0_2 + 0x4d, 0x89, 0xc6, //0x0000021d movq %r8, %r14 + //0x00000220 LBB0_7 + 0x49, 0x8d, 0x71, 0xe8, //0x00000220 leaq $-24(%r9), %rsi + 0x49, 0x39, 0xf4, //0x00000224 cmpq %rsi, %r12 + 0x0f, 0x87, 0x93, 0x00, 0x00, 0x00, //0x00000227 ja LBB0_10 + //0x0000022d LBB0_8 + 0x89, 0xd6, //0x0000022d movl %edx, %esi + 0x83, 0xe6, 0x04, //0x0000022f andl $4, %esi + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00000232 je LBB0_10 + 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00000238 vmovdqu (%r12), %xmm0 + 0xc4, 0xc1, 0x7a, 0x6f, 0x4c, 0x24, 0x08, //0x0000023e vmovdqu $8(%r12), %xmm1 + 0xc5, 0xf1, 0x73, 0xd9, 0x04, //0x00000245 vpsrldq $4, %xmm1, %xmm1 + 0xc4, 0xe3, 0x7d, 0x38, 0xc1, 0x01, //0x0000024a vinserti128 $1, %xmm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x00, 0x05, 0xc7, 0xfd, 0xff, 0xff, //0x00000250 vpshufb $-569(%rip), %ymm0, %ymm0 /* LCPI0_0+0(%rip) */ + 0xc5, 0xfd, 0xdb, 0x0d, 0xdf, 0xfd, 0xff, 0xff, //0x00000259 vpand $-545(%rip), %ymm0, %ymm1 /* LCPI0_1+0(%rip) */ + 0xc5, 0xf5, 0xe4, 0x0d, 0xf7, 0xfd, 0xff, 0xff, //0x00000261 vpmulhuw $-521(%rip), %ymm1, %ymm1 /* LCPI0_2+0(%rip) */ + 0xc5, 0xfd, 0xdb, 0x05, 0x0f, 0xfe, 0xff, 0xff, //0x00000269 vpand $-497(%rip), %ymm0, %ymm0 /* LCPI0_3+0(%rip) */ + 0xc5, 0xed, 0x71, 0xf0, 0x08, //0x00000271 vpsllw $8, %ymm0, %ymm2 + 0xc5, 0xfd, 0x71, 0xf0, 0x04, //0x00000276 vpsllw $4, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x0e, 0xc2, 0xaa, //0x0000027b vpblendw $170, %ymm2, %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00000281 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0x6f, 0x0d, 0x13, 0xfe, 0xff, 0xff, //0x00000285 vmovdqa $-493(%rip), %ymm1 /* LCPI0_4+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x0000028d vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc4, 0xc1, 0x7e, 0x6f, 0x12, //0x00000291 vmovdqu (%r10), %ymm2 + 0xc5, 0xfd, 0xd8, 0x1d, 0x22, 0xfe, 0xff, 0xff, //0x00000296 vpsubusb $-478(%rip), %ymm0, %ymm3 /* LCPI0_5+0(%rip) */ + 0xc5, 0xf5, 0xdb, 0x0d, 0x3a, 0xfe, 0xff, 0xff, //0x0000029e vpand $-454(%rip), %ymm1, %ymm1 /* LCPI0_6+0(%rip) */ + 0xc5, 0xf5, 0xeb, 0xcb, //0x000002a6 vpor %ymm3, %ymm1, %ymm1 + 0xc4, 0xe2, 0x6d, 0x00, 0xc9, //0x000002aa vpshufb %ymm1, %ymm2, %ymm1 + 0xc5, 0xf5, 0xfc, 0xc0, //0x000002af vpaddb %ymm0, %ymm1, %ymm0 + 0xc4, 0xc1, 0x7e, 0x7f, 0x06, //0x000002b3 vmovdqu %ymm0, (%r14) + 0x49, 0x83, 0xc6, 0x20, //0x000002b8 addq $32, %r14 + 0x49, 0x83, 0xc4, 0x18, //0x000002bc addq $24, %r12 + //0x000002c0 LBB0_10 + 0x4d, 0x39, 0xcc, //0x000002c0 cmpq %r9, %r12 + 0x0f, 0x84, 0x84, 0x01, 0x00, 0x00, //0x000002c3 je LBB0_25 + 0x4d, 0x8d, 0x51, 0xfc, //0x000002c9 leaq $-4(%r9), %r10 + 0x4d, 0x39, 0xd4, //0x000002cd cmpq %r10, %r12 + 0x0f, 0x87, 0x61, 0x00, 0x00, 0x00, //0x000002d0 ja LBB0_14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000002d6 .p2align 4, 0x90 + //0x000002e0 LBB0_12 + 0x41, 0x8b, 0x34, 0x24, //0x000002e0 movl (%r12), %esi + 0x0f, 0xce, //0x000002e4 bswapl %esi + 0x49, 0x89, 0xf7, //0x000002e6 movq %rsi, %r15 + 0x49, 0xc1, 0xef, 0x1a, //0x000002e9 shrq $26, %r15 + 0x89, 0xf1, //0x000002ed movl %esi, %ecx + 0xc1, 0xe9, 0x14, //0x000002ef shrl $20, %ecx + 0x83, 0xe1, 0x3f, //0x000002f2 andl $63, %ecx + 0x89, 0xf3, //0x000002f5 movl %esi, %ebx + 0xc1, 0xeb, 0x0e, //0x000002f7 shrl $14, %ebx + 0x83, 0xe3, 0x3f, //0x000002fa andl $63, %ebx + 0xc1, 0xee, 0x08, //0x000002fd shrl $8, %esi + 0x83, 0xe6, 0x3f, //0x00000300 andl $63, %esi + 0x49, 0x83, 0xc4, 0x03, //0x00000303 addq $3, %r12 + 0x43, 0x0f, 0xb6, 0x04, 0x3b, //0x00000307 movzbl (%r11,%r15), %eax + 0x41, 0x88, 0x06, //0x0000030c movb %al, (%r14) + 0x41, 0x0f, 0xb6, 0x04, 0x0b, //0x0000030f movzbl (%r11,%rcx), %eax + 0x41, 0x88, 0x46, 0x01, //0x00000314 movb %al, $1(%r14) + 0x41, 0x0f, 0xb6, 0x04, 0x1b, //0x00000318 movzbl (%r11,%rbx), %eax + 0x41, 0x88, 0x46, 0x02, //0x0000031d movb %al, $2(%r14) + 0x41, 0x0f, 0xb6, 0x04, 0x33, //0x00000321 movzbl (%r11,%rsi), %eax + 0x41, 0x88, 0x46, 0x03, //0x00000326 movb %al, $3(%r14) + 0x49, 0x83, 0xc6, 0x04, //0x0000032a addq $4, %r14 + 0x4d, 0x39, 0xd4, //0x0000032e cmpq %r10, %r12 + 0x0f, 0x86, 0xa9, 0xff, 0xff, 0xff, //0x00000331 jbe LBB0_12 + //0x00000337 LBB0_14 + 0x4d, 0x29, 0xe1, //0x00000337 subq %r12, %r9 + 0x45, 0x0f, 0xb6, 0x14, 0x24, //0x0000033a movzbl (%r12), %r10d + 0x49, 0x83, 0xf9, 0x01, //0x0000033f cmpq $1, %r9 + 0x0f, 0x84, 0xc0, 0x00, 0x00, 0x00, //0x00000343 je LBB0_21 + 0x4c, 0x89, 0xd6, //0x00000349 movq %r10, %rsi + 0x48, 0xc1, 0xe6, 0x10, //0x0000034c shlq $16, %rsi + 0x49, 0x83, 0xf9, 0x02, //0x00000350 cmpq $2, %r9 + 0x0f, 0x84, 0x6b, 0x00, 0x00, 0x00, //0x00000354 je LBB0_18 + 0x49, 0x83, 0xf9, 0x03, //0x0000035a cmpq $3, %r9 + 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x0000035e jne LBB0_25 + 0x41, 0x0f, 0xb6, 0x54, 0x24, 0x02, //0x00000364 movzbl $2(%r12), %edx + 0x09, 0xd6, //0x0000036a orl %edx, %esi + 0x41, 0x0f, 0xb6, 0x44, 0x24, 0x01, //0x0000036c movzbl $1(%r12), %eax + 0xc1, 0xe0, 0x08, //0x00000372 shll $8, %eax + 0x09, 0xf0, //0x00000375 orl %esi, %eax + 0x49, 0xc1, 0xea, 0x02, //0x00000377 shrq $2, %r10 + 0x43, 0x8a, 0x0c, 0x13, //0x0000037b movb (%r11,%r10), %cl + 0x41, 0x88, 0x0e, //0x0000037f movb %cl, (%r14) + 0x89, 0xc1, //0x00000382 movl %eax, %ecx + 0xc1, 0xe9, 0x0c, //0x00000384 shrl $12, %ecx + 0x83, 0xe1, 0x3f, //0x00000387 andl $63, %ecx + 0x41, 0x8a, 0x0c, 0x0b, //0x0000038a movb (%r11,%rcx), %cl + 0x41, 0x88, 0x4e, 0x01, //0x0000038e movb %cl, $1(%r14) + 0xc1, 0xe8, 0x06, //0x00000392 shrl $6, %eax + 0x83, 0xe0, 0x3f, //0x00000395 andl $63, %eax + 0x41, 0x8a, 0x04, 0x03, //0x00000398 movb (%r11,%rax), %al + 0x41, 0x88, 0x46, 0x02, //0x0000039c movb %al, $2(%r14) + 0x83, 0xe2, 0x3f, //0x000003a0 andl $63, %edx + 0x41, 0x8a, 0x04, 0x13, //0x000003a3 movb (%r11,%rdx), %al + 0x41, 0x88, 0x46, 0x03, //0x000003a7 movb %al, $3(%r14) + 0xe9, 0x87, 0x00, 0x00, 0x00, //0x000003ab jmp LBB0_24 + //0x000003b0 LBB0_4 + 0x4d, 0x89, 0xc6, //0x000003b0 movq %r8, %r14 + 0x49, 0x8d, 0x71, 0xe8, //0x000003b3 leaq $-24(%r9), %rsi + 0x49, 0x39, 0xf4, //0x000003b7 cmpq %rsi, %r12 + 0x0f, 0x86, 0x6d, 0xfe, 0xff, 0xff, //0x000003ba jbe LBB0_8 + 0xe9, 0xfb, 0xfe, 0xff, 0xff, //0x000003c0 jmp LBB0_10 + //0x000003c5 LBB0_18 + 0x41, 0x0f, 0xb6, 0x44, 0x24, 0x01, //0x000003c5 movzbl $1(%r12), %eax + 0x89, 0xc1, //0x000003cb movl %eax, %ecx + 0xc1, 0xe1, 0x08, //0x000003cd shll $8, %ecx + 0x09, 0xf1, //0x000003d0 orl %esi, %ecx + 0x49, 0xc1, 0xea, 0x02, //0x000003d2 shrq $2, %r10 + 0x43, 0x8a, 0x1c, 0x13, //0x000003d6 movb (%r11,%r10), %bl + 0x41, 0x88, 0x1e, //0x000003da movb %bl, (%r14) + 0xc1, 0xe9, 0x0c, //0x000003dd shrl $12, %ecx + 0x83, 0xe1, 0x3f, //0x000003e0 andl $63, %ecx + 0x41, 0x8a, 0x0c, 0x0b, //0x000003e3 movb (%r11,%rcx), %cl + 0x41, 0x88, 0x4e, 0x01, //0x000003e7 movb %cl, $1(%r14) + 0x83, 0xe0, 0x0f, //0x000003eb andl $15, %eax + 0x41, 0x8a, 0x04, 0x83, //0x000003ee movb (%r11,%rax,4), %al + 0x41, 0x88, 0x46, 0x02, //0x000003f2 movb %al, $2(%r14) + 0xf6, 0xc2, 0x02, //0x000003f6 testb $2, %dl + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x000003f9 jne LBB0_19 + 0x41, 0xc6, 0x46, 0x03, 0x3d, //0x000003ff movb $61, $3(%r14) + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000404 jmp LBB0_24 + //0x00000409 LBB0_21 + 0x4c, 0x89, 0xd0, //0x00000409 movq %r10, %rax + 0x48, 0xc1, 0xe8, 0x02, //0x0000040c shrq $2, %rax + 0x41, 0x8a, 0x04, 0x03, //0x00000410 movb (%r11,%rax), %al + 0x41, 0x88, 0x06, //0x00000414 movb %al, (%r14) + 0x41, 0xc1, 0xe2, 0x04, //0x00000417 shll $4, %r10d + 0x41, 0x83, 0xe2, 0x30, //0x0000041b andl $48, %r10d + 0x43, 0x8a, 0x04, 0x13, //0x0000041f movb (%r11,%r10), %al + 0x41, 0x88, 0x46, 0x01, //0x00000423 movb %al, $1(%r14) + 0xf6, 0xc2, 0x02, //0x00000427 testb $2, %dl + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x0000042a jne LBB0_22 + 0x66, 0x41, 0xc7, 0x46, 0x02, 0x3d, 0x3d, //0x00000430 movw $15677, $2(%r14) + //0x00000437 LBB0_24 + 0x49, 0x83, 0xc6, 0x04, //0x00000437 addq $4, %r14 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000043b jmp LBB0_25 + //0x00000440 LBB0_19 + 0x49, 0x83, 0xc6, 0x03, //0x00000440 addq $3, %r14 + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00000444 jmp LBB0_25 + //0x00000449 LBB0_22 + 0x49, 0x83, 0xc6, 0x02, //0x00000449 addq $2, %r14 + //0x0000044d LBB0_25 + 0x4d, 0x29, 0xc6, //0x0000044d subq %r8, %r14 + 0x4c, 0x01, 0x77, 0x08, //0x00000450 addq %r14, $8(%rdi) + //0x00000454 LBB0_26 + 0x5b, //0x00000454 popq %rbx + 0x41, 0x5c, //0x00000455 popq %r12 + 0x41, 0x5e, //0x00000457 popq %r14 + 0x41, 0x5f, //0x00000459 popq %r15 + 0x5d, //0x0000045b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000045c vzeroupper + 0xc3, //0x0000045f retq + //0x00000460 .p2align 5, 0x00 + //0x00000460 LCPI1_0 + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000460 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000470 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + //0x00000480 LCPI1_1 + 0x01, //0x00000480 .byte 1 + 0x02, //0x00000481 .byte 2 + 0x04, //0x00000482 .byte 4 + 0x08, //0x00000483 .byte 8 + 0x10, //0x00000484 .byte 16 + 0x20, //0x00000485 .byte 32 + 0x40, //0x00000486 .byte 64 + 0x80, //0x00000487 .byte 128 + 0x00, //0x00000488 .byte 0 + 0x00, //0x00000489 .byte 0 + 0x00, //0x0000048a .byte 0 + 0x00, //0x0000048b .byte 0 + 0x00, //0x0000048c .byte 0 + 0x00, //0x0000048d .byte 0 + 0x00, //0x0000048e .byte 0 + 0x00, //0x0000048f .byte 0 + 0x01, //0x00000490 .byte 1 + 0x02, //0x00000491 .byte 2 + 0x04, //0x00000492 .byte 4 + 0x08, //0x00000493 .byte 8 + 0x10, //0x00000494 .byte 16 + 0x20, //0x00000495 .byte 32 + 0x40, //0x00000496 .byte 64 + 0x80, //0x00000497 .byte 128 + 0x00, //0x00000498 .byte 0 + 0x00, //0x00000499 .byte 0 + 0x00, //0x0000049a .byte 0 + 0x00, //0x0000049b .byte 0 + 0x00, //0x0000049c .byte 0 + 0x00, //0x0000049d .byte 0 + 0x00, //0x0000049e .byte 0 + 0x00, //0x0000049f .byte 0 + //0x000004a0 LCPI1_2 + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, //0x000004a0 QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, //0x000004b0 QUAD $0x3f3f3f3f3f3f3f3f; QUAD $0x3f3f3f3f3f3f3f3f // .space 16, '????????????????' + //0x000004c0 LCPI1_3 + 0x40, //0x000004c0 .byte 64 + 0x01, //0x000004c1 .byte 1 + 0x40, //0x000004c2 .byte 64 + 0x01, //0x000004c3 .byte 1 + 0x40, //0x000004c4 .byte 64 + 0x01, //0x000004c5 .byte 1 + 0x40, //0x000004c6 .byte 64 + 0x01, //0x000004c7 .byte 1 + 0x40, //0x000004c8 .byte 64 + 0x01, //0x000004c9 .byte 1 + 0x40, //0x000004ca .byte 64 + 0x01, //0x000004cb .byte 1 + 0x40, //0x000004cc .byte 64 + 0x01, //0x000004cd .byte 1 + 0x40, //0x000004ce .byte 64 + 0x01, //0x000004cf .byte 1 + 0x40, //0x000004d0 .byte 64 + 0x01, //0x000004d1 .byte 1 + 0x40, //0x000004d2 .byte 64 + 0x01, //0x000004d3 .byte 1 + 0x40, //0x000004d4 .byte 64 + 0x01, //0x000004d5 .byte 1 + 0x40, //0x000004d6 .byte 64 + 0x01, //0x000004d7 .byte 1 + 0x40, //0x000004d8 .byte 64 + 0x01, //0x000004d9 .byte 1 + 0x40, //0x000004da .byte 64 + 0x01, //0x000004db .byte 1 + 0x40, //0x000004dc .byte 64 + 0x01, //0x000004dd .byte 1 + 0x40, //0x000004de .byte 64 + 0x01, //0x000004df .byte 1 + //0x000004e0 LCPI1_4 + 0x00, 0x10, //0x000004e0 .word 4096 + 0x01, 0x00, //0x000004e2 .word 1 + 0x00, 0x10, //0x000004e4 .word 4096 + 0x01, 0x00, //0x000004e6 .word 1 + 0x00, 0x10, //0x000004e8 .word 4096 + 0x01, 0x00, //0x000004ea .word 1 + 0x00, 0x10, //0x000004ec .word 4096 + 0x01, 0x00, //0x000004ee .word 1 + 0x00, 0x10, //0x000004f0 .word 4096 + 0x01, 0x00, //0x000004f2 .word 1 + 0x00, 0x10, //0x000004f4 .word 4096 + 0x01, 0x00, //0x000004f6 .word 1 + 0x00, 0x10, //0x000004f8 .word 4096 + 0x01, 0x00, //0x000004fa .word 1 + 0x00, 0x10, //0x000004fc .word 4096 + 0x01, 0x00, //0x000004fe .word 1 + //0x00000500 LCPI1_6 + 0x02, //0x00000500 .byte 2 + 0x01, //0x00000501 .byte 1 + 0x00, //0x00000502 .byte 0 + 0x06, //0x00000503 .byte 6 + 0x05, //0x00000504 .byte 5 + 0x04, //0x00000505 .byte 4 + 0x0a, //0x00000506 .byte 10 + 0x09, //0x00000507 .byte 9 + 0x08, //0x00000508 .byte 8 + 0x0e, //0x00000509 .byte 14 + 0x0d, //0x0000050a .byte 13 + 0x0c, //0x0000050b .byte 12 + 0x00, //0x0000050c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000050d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000050e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000050f BYTE $0x00 // .space 1, '\x00' + 0x05, //0x00000510 .byte 5 + 0x04, //0x00000511 .byte 4 + 0x0a, //0x00000512 .byte 10 + 0x09, //0x00000513 .byte 9 + 0x08, //0x00000514 .byte 8 + 0x0e, //0x00000515 .byte 14 + 0x0d, //0x00000516 .byte 13 + 0x0c, //0x00000517 .byte 12 + 0x00, //0x00000518 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000519 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000051f BYTE $0x00 // .space 1, '\x00' + //0x00000520 .p2align 4, 0x00 + //0x00000520 LCPI1_5 + 0x00, //0x00000520 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000521 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000522 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000523 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000524 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000525 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000526 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000527 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000528 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00000529 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000052a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000052b BYTE $0x00 // .space 1, '\x00' + 0x02, //0x0000052c .byte 2 + 0x01, //0x0000052d .byte 1 + 0x00, //0x0000052e .byte 0 + 0x06, //0x0000052f .byte 6 + //0x00000530 .p2align 4, 0x90 + //0x00000530 _b64decode + 0x55, //0x00000530 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000531 movq %rsp, %rbp + 0x41, 0x57, //0x00000534 pushq %r15 + 0x41, 0x56, //0x00000536 pushq %r14 + 0x41, 0x55, //0x00000538 pushq %r13 + 0x41, 0x54, //0x0000053a pushq %r12 + 0x53, //0x0000053c pushq %rbx + 0x48, 0x83, 0xec, 0x68, //0x0000053d subq $104, %rsp + 0x48, 0x85, 0xd2, //0x00000541 testq %rdx, %rdx + 0x0f, 0x84, 0x3e, 0x11, 0x00, 0x00, //0x00000544 je LBB1_282 + 0x48, 0x8b, 0x1f, //0x0000054a movq (%rdi), %rbx + 0x48, 0x8b, 0x47, 0x08, //0x0000054d movq $8(%rdi), %rax + 0x48, 0x01, 0xd8, //0x00000551 addq %rbx, %rax + 0x48, 0x89, 0xbd, 0x70, 0xff, 0xff, 0xff, //0x00000554 movq %rdi, $-144(%rbp) + 0x48, 0x03, 0x5f, 0x10, //0x0000055b addq $16(%rdi), %rbx + 0x48, 0x89, 0x5d, 0x90, //0x0000055f movq %rbx, $-112(%rbp) + 0x48, 0x89, 0x55, 0x88, //0x00000563 movq %rdx, $-120(%rbp) + 0x48, 0x8d, 0x1c, 0x16, //0x00000567 leaq (%rsi,%rdx), %rbx + 0xf6, 0xc1, 0x01, //0x0000056b testb $1, %cl + 0x48, 0x8d, 0x15, 0xcb, 0x45, 0x00, 0x00, //0x0000056e leaq $17867(%rip), %rdx /* _VecDecodeCharsetStd+0(%rip) */ + 0x48, 0x8d, 0x3d, 0x44, 0x47, 0x00, 0x00, //0x00000575 leaq $18244(%rip), %rdi /* _VecDecodeCharsetURL+0(%rip) */ + 0x48, 0x0f, 0x44, 0xfa, //0x0000057c cmoveq %rdx, %rdi + 0x48, 0x89, 0x7d, 0xc0, //0x00000580 movq %rdi, $-64(%rbp) + 0x48, 0x8d, 0x15, 0x35, 0x45, 0x00, 0x00, //0x00000584 leaq $17717(%rip), %rdx /* _VecDecodeTableStd+0(%rip) */ + 0x4c, 0x8d, 0x0d, 0xae, 0x46, 0x00, 0x00, //0x0000058b leaq $18094(%rip), %r9 /* _VecDecodeTableURL+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xca, //0x00000592 cmoveq %rdx, %r9 + 0x48, 0x89, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00000596 movq %rax, $-136(%rbp) + 0x48, 0x89, 0x45, 0xb0, //0x0000059d movq %rax, $-80(%rbp) + 0x48, 0x89, 0x75, 0xa8, //0x000005a1 movq %rsi, $-88(%rbp) + 0x49, 0x89, 0xf7, //0x000005a5 movq %rsi, %r15 + 0x89, 0x4d, 0xbc, //0x000005a8 movl %ecx, $-68(%rbp) + 0xf6, 0xc1, 0x04, //0x000005ab testb $4, %cl + 0x48, 0x89, 0x5d, 0xd0, //0x000005ae movq %rbx, $-48(%rbp) + 0x0f, 0x85, 0xd7, 0x10, 0x00, 0x00, //0x000005b2 jne LBB1_283 + //0x000005b8 LBB1_2 + 0x48, 0x8b, 0x45, 0x90, //0x000005b8 movq $-112(%rbp), %rax + 0x48, 0x83, 0xc0, 0xf8, //0x000005bc addq $-8, %rax + 0x48, 0x89, 0x45, 0xc8, //0x000005c0 movq %rax, $-56(%rbp) + 0x48, 0x3b, 0x45, 0xb0, //0x000005c4 cmpq $-80(%rbp), %rax + 0x0f, 0x82, 0xfe, 0x22, 0x00, 0x00, //0x000005c8 jb LBB1_574 + 0x48, 0x8d, 0x43, 0xf8, //0x000005ce leaq $-8(%rbx), %rax + 0x48, 0x89, 0x45, 0xa0, //0x000005d2 movq %rax, $-96(%rbp) + 0x4c, 0x39, 0xf8, //0x000005d6 cmpq %r15, %rax + 0x0f, 0x82, 0xed, 0x22, 0x00, 0x00, //0x000005d9 jb LBB1_574 + 0x48, 0x8b, 0x45, 0xa8, //0x000005df movq $-88(%rbp), %rax + 0x48, 0x8b, 0x4d, 0x88, //0x000005e3 movq $-120(%rbp), %rcx + 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x000005e7 leaq $-2(%rcx,%rax), %rdx + 0x48, 0x89, 0x55, 0x80, //0x000005ec movq %rdx, $-128(%rbp) + 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x000005f0 leaq $-3(%rcx,%rax), %rax + 0x48, 0x89, 0x45, 0x98, //0x000005f5 movq %rax, $-104(%rbp) + 0x4d, 0x89, 0xf9, //0x000005f9 movq %r15, %r9 + 0xe9, 0x71, 0x00, 0x00, 0x00, //0x000005fc jmp LBB1_5 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000601 .p2align 4, 0x90 + //0x00000610 LBB1_6 + 0x49, 0xc1, 0xe3, 0x3a, //0x00000610 shlq $58, %r11 + 0x49, 0xc1, 0xe0, 0x34, //0x00000614 shlq $52, %r8 + 0x4d, 0x09, 0xd8, //0x00000618 orq %r11, %r8 + 0x49, 0xc1, 0xe6, 0x2e, //0x0000061b shlq $46, %r14 + 0x48, 0xc1, 0xe1, 0x28, //0x0000061f shlq $40, %rcx + 0x4c, 0x09, 0xf1, //0x00000623 orq %r14, %rcx + 0x4c, 0x09, 0xc1, //0x00000626 orq %r8, %rcx + 0x49, 0xc1, 0xe2, 0x22, //0x00000629 shlq $34, %r10 + 0x48, 0xc1, 0xe6, 0x1c, //0x0000062d shlq $28, %rsi + 0x4c, 0x09, 0xd6, //0x00000631 orq %r10, %rsi + 0x48, 0xc1, 0xe3, 0x16, //0x00000634 shlq $22, %rbx + 0x48, 0x09, 0xf3, //0x00000638 orq %rsi, %rbx + 0x48, 0x09, 0xcb, //0x0000063b orq %rcx, %rbx + 0x48, 0xc1, 0xe0, 0x10, //0x0000063e shlq $16, %rax + 0x48, 0x09, 0xd8, //0x00000642 orq %rbx, %rax + 0x48, 0x0f, 0xc8, //0x00000645 bswapq %rax + 0x48, 0x8b, 0x4d, 0xb0, //0x00000648 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x01, //0x0000064c movq %rax, (%rcx) + 0x49, 0x83, 0xc1, 0x08, //0x0000064f addq $8, %r9 + 0x48, 0x83, 0xc1, 0x06, //0x00000653 addq $6, %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00000657 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x0000065b cmpq %rcx, $-56(%rbp) + 0x0f, 0x82, 0x81, 0x22, 0x00, 0x00, //0x0000065f jb LBB1_572 + //0x00000665 LBB1_223 + 0x4d, 0x89, 0xcf, //0x00000665 movq %r9, %r15 + 0x4c, 0x39, 0x4d, 0xa0, //0x00000668 cmpq %r9, $-96(%rbp) + 0x0f, 0x82, 0x74, 0x22, 0x00, 0x00, //0x0000066c jb LBB1_572 + //0x00000672 LBB1_5 + 0x41, 0x0f, 0xb6, 0x01, //0x00000672 movzbl (%r9), %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00000676 movq $-64(%rbp), %rdx + 0x44, 0x0f, 0xb6, 0x1c, 0x02, //0x0000067a movzbl (%rdx,%rax), %r11d + 0x41, 0x0f, 0xb6, 0x41, 0x01, //0x0000067f movzbl $1(%r9), %eax + 0x44, 0x0f, 0xb6, 0x04, 0x02, //0x00000684 movzbl (%rdx,%rax), %r8d + 0x41, 0x0f, 0xb6, 0x41, 0x02, //0x00000689 movzbl $2(%r9), %eax + 0x44, 0x0f, 0xb6, 0x34, 0x02, //0x0000068e movzbl (%rdx,%rax), %r14d + 0x41, 0x0f, 0xb6, 0x41, 0x03, //0x00000693 movzbl $3(%r9), %eax + 0x0f, 0xb6, 0x0c, 0x02, //0x00000698 movzbl (%rdx,%rax), %ecx + 0x41, 0x0f, 0xb6, 0x41, 0x04, //0x0000069c movzbl $4(%r9), %eax + 0x44, 0x0f, 0xb6, 0x14, 0x02, //0x000006a1 movzbl (%rdx,%rax), %r10d + 0x41, 0x0f, 0xb6, 0x41, 0x05, //0x000006a6 movzbl $5(%r9), %eax + 0x0f, 0xb6, 0x34, 0x02, //0x000006ab movzbl (%rdx,%rax), %esi + 0x41, 0x0f, 0xb6, 0x41, 0x06, //0x000006af movzbl $6(%r9), %eax + 0x0f, 0xb6, 0x1c, 0x02, //0x000006b4 movzbl (%rdx,%rax), %ebx + 0x41, 0x0f, 0xb6, 0x41, 0x07, //0x000006b8 movzbl $7(%r9), %eax + 0x0f, 0xb6, 0x04, 0x02, //0x000006bd movzbl (%rdx,%rax), %eax + 0x45, 0x89, 0xc5, //0x000006c1 movl %r8d, %r13d + 0x45, 0x09, 0xdd, //0x000006c4 orl %r11d, %r13d + 0x41, 0x89, 0xcc, //0x000006c7 movl %ecx, %r12d + 0x45, 0x09, 0xf4, //0x000006ca orl %r14d, %r12d + 0x45, 0x09, 0xec, //0x000006cd orl %r13d, %r12d + 0x89, 0xf7, //0x000006d0 movl %esi, %edi + 0x44, 0x09, 0xd7, //0x000006d2 orl %r10d, %edi + 0x89, 0xda, //0x000006d5 movl %ebx, %edx + 0x09, 0xfa, //0x000006d7 orl %edi, %edx + 0x44, 0x09, 0xe2, //0x000006d9 orl %r12d, %edx + 0x89, 0xc7, //0x000006dc movl %eax, %edi + 0x09, 0xd7, //0x000006de orl %edx, %edi + 0x40, 0x80, 0xff, 0xff, //0x000006e0 cmpb $-1, %dil + 0x0f, 0x85, 0x26, 0xff, 0xff, 0xff, //0x000006e4 jne LBB1_6 + 0x48, 0x8b, 0x5d, 0xd0, //0x000006ea movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xcb, //0x000006ee cmpq %r9, %rbx + 0x44, 0x8b, 0x55, 0xbc, //0x000006f1 movl $-68(%rbp), %r10d + 0x0f, 0x86, 0x15, 0x02, 0x00, 0x00, //0x000006f5 jbe LBB1_39 + 0x41, 0xf6, 0xc2, 0x08, //0x000006fb testb $8, %r10b + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000006ff je LBB1_11 + 0x4c, 0x89, 0xca, //0x00000705 movq %r9, %rdx + 0xe9, 0xbf, 0x00, 0x00, 0x00, //0x00000708 jmp LBB1_22 + 0x90, 0x90, 0x90, //0x0000070d .p2align 4, 0x90 + //0x00000710 LBB1_10 + 0x49, 0xff, 0xc1, //0x00000710 incq %r9 + 0x49, 0x39, 0xd9, //0x00000713 cmpq %rbx, %r9 + 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x00000716 jae LBB1_37 + //0x0000071c LBB1_11 + 0x41, 0x0f, 0xb6, 0x09, //0x0000071c movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000720 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000724 je LBB1_10 + 0x80, 0xf9, 0x0a, //0x0000072a cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x0000072d je LBB1_10 + 0x48, 0x8b, 0x45, 0xc0, //0x00000733 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x14, 0x08, //0x00000737 movzbl (%rax,%rcx), %edx + 0x49, 0xff, 0xc1, //0x0000073b incq %r9 + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000073e cmpl $255, %edx + 0x0f, 0x84, 0x81, 0x02, 0x00, 0x00, //0x00000744 je LBB1_51 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000074a movl $1, %r11d + 0x49, 0x39, 0xd9, //0x00000750 cmpq %rbx, %r9 + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00000753 jb LBB1_16 + 0xe9, 0x8b, 0x0b, 0x00, 0x00, //0x00000759 jmp LBB1_209 + 0x90, 0x90, //0x0000075e .p2align 4, 0x90 + //0x00000760 LBB1_15 + 0x49, 0xff, 0xc1, //0x00000760 incq %r9 + 0x49, 0x39, 0xd9, //0x00000763 cmpq %rbx, %r9 + 0x0f, 0x83, 0x3d, 0x04, 0x00, 0x00, //0x00000766 jae LBB1_82 + //0x0000076c LBB1_16 + 0x41, 0x0f, 0xb6, 0x09, //0x0000076c movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000770 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00000774 je LBB1_15 + 0x80, 0xf9, 0x0a, //0x0000077a cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x0000077d je LBB1_15 + 0x48, 0x8b, 0x45, 0xc0, //0x00000783 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00000787 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc1, //0x0000078b incq %r9 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x0000078e cmpl $255, %eax + 0x0f, 0x84, 0x30, 0x06, 0x00, 0x00, //0x00000793 je LBB1_115 + 0xc1, 0xe2, 0x06, //0x00000799 shll $6, %edx + 0x09, 0xc2, //0x0000079c orl %eax, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000079e movl $2, %r11d + 0x49, 0x39, 0xd9, //0x000007a4 cmpq %rbx, %r9 + 0x0f, 0x82, 0x95, 0x01, 0x00, 0x00, //0x000007a7 jb LBB1_41 + 0xe9, 0x37, 0x0b, 0x00, 0x00, //0x000007ad jmp LBB1_209 + //0x000007b2 LBB1_20 + 0x3c, 0x6e, //0x000007b2 cmpb $110, %al + 0x0f, 0x85, 0xd6, 0x01, 0x00, 0x00, //0x000007b4 jne LBB1_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007ba .p2align 4, 0x90 + //0x000007c0 LBB1_21 + 0x4c, 0x89, 0xca, //0x000007c0 movq %r9, %rdx + 0x49, 0x39, 0xd9, //0x000007c3 cmpq %rbx, %r9 + 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x000007c6 jae LBB1_37 + //0x000007cc LBB1_22 + 0x48, 0x8d, 0x42, 0x01, //0x000007cc leaq $1(%rdx), %rax + 0x0f, 0xb6, 0x0a, //0x000007d0 movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x000007d3 cmpb $92, %cl + 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x000007d6 jne LBB1_35 + 0x4c, 0x8d, 0x4a, 0x02, //0x000007dc leaq $2(%rdx), %r9 + 0xb1, 0xff, //0x000007e0 movb $-1, %cl + 0x49, 0x39, 0xd9, //0x000007e2 cmpq %rbx, %r9 + 0x0f, 0x87, 0x9d, 0x01, 0x00, 0x00, //0x000007e5 ja LBB1_45 + 0x0f, 0xb6, 0x00, //0x000007eb movzbl (%rax), %eax + 0x3c, 0x71, //0x000007ee cmpb $113, %al + 0x0f, 0x8e, 0xbc, 0xff, 0xff, 0xff, //0x000007f0 jle LBB1_20 + 0x3c, 0x72, //0x000007f6 cmpb $114, %al + 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x000007f8 je LBB1_21 + 0x3c, 0x75, //0x000007fe cmpb $117, %al + 0x0f, 0x85, 0x94, 0x01, 0x00, 0x00, //0x00000800 jne LBB1_48 + 0x48, 0x89, 0xd8, //0x00000806 movq %rbx, %rax + 0x4c, 0x29, 0xc8, //0x00000809 subq %r9, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000080c cmpq $4, %rax + 0x0f, 0x8c, 0x84, 0x01, 0x00, 0x00, //0x00000810 jl LBB1_48 + 0x41, 0x8b, 0x01, //0x00000816 movl (%r9), %eax + 0x89, 0xc6, //0x00000819 movl %eax, %esi + 0xf7, 0xd6, //0x0000081b notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000081d leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000823 andl $-2139062144, %esi + 0x85, 0xfe, //0x00000829 testl %edi, %esi + 0x0f, 0x85, 0x69, 0x01, 0x00, 0x00, //0x0000082b jne LBB1_48 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00000831 leal $421075225(%rax), %edi + 0x09, 0xc7, //0x00000837 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000839 testl $-2139062144, %edi + 0x0f, 0x85, 0x55, 0x01, 0x00, 0x00, //0x0000083f jne LBB1_48 + 0x89, 0xc7, //0x00000845 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000847 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000084d movl $-1061109568, %ebx + 0x29, 0xfb, //0x00000852 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00000854 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x0000085b andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x0000085d testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00000860 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x30, 0x01, 0x00, 0x00, //0x00000864 jne LBB1_48 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000086a movl $-522133280, %ebx + 0x29, 0xfb, //0x0000086f subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000871 addl $960051513, %edi + 0x21, 0xde, //0x00000877 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00000879 movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x0000087d testl %edi, %esi + 0x0f, 0x85, 0x15, 0x01, 0x00, 0x00, //0x0000087f jne LBB1_48 + 0x0f, 0xc8, //0x00000885 bswapl %eax + 0x89, 0xc1, //0x00000887 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000889 shrl $4, %ecx + 0xf7, 0xd1, //0x0000088c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000088e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000894 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000897 andl $252645135, %eax + 0x01, 0xc8, //0x0000089c addl %ecx, %eax + 0x89, 0xc1, //0x0000089e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x000008a0 shrl $4, %ecx + 0x09, 0xc1, //0x000008a3 orl %eax, %ecx + 0x89, 0xc8, //0x000008a5 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000008a7 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000008aa andl $65280, %eax + 0x89, 0xce, //0x000008af movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000008b1 andl $128, %esi + 0x09, 0xc6, //0x000008b7 orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000008b9 je LBB1_34 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000008bf movl $255, %ecx + //0x000008c4 LBB1_34 + 0x48, 0x83, 0xc2, 0x06, //0x000008c4 addq $6, %rdx + 0x49, 0x89, 0xd1, //0x000008c8 movq %rdx, %r9 + 0x80, 0xf9, 0x0d, //0x000008cb cmpb $13, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000008ce jne LBB1_36 + 0xe9, 0xe7, 0xfe, 0xff, 0xff, //0x000008d4 jmp LBB1_21 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000008d9 .p2align 4, 0x90 + //0x000008e0 LBB1_35 + 0x49, 0x89, 0xc1, //0x000008e0 movq %rax, %r9 + 0x80, 0xf9, 0x0d, //0x000008e3 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x000008e6 je LBB1_21 + //0x000008ec LBB1_36 + 0x80, 0xf9, 0x0a, //0x000008ec cmpb $10, %cl + 0x0f, 0x84, 0xcb, 0xfe, 0xff, 0xff, //0x000008ef je LBB1_21 + 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x000008f5 jmp LBB1_48 + //0x000008fa LBB1_37 + 0x31, 0xd2, //0x000008fa xorl %edx, %edx + 0x45, 0x31, 0xdb, //0x000008fc xorl %r11d, %r11d + //0x000008ff LBB1_38 + 0x45, 0x85, 0xdb, //0x000008ff testl %r11d, %r11d + 0x0f, 0x85, 0xe1, 0x09, 0x00, 0x00, //0x00000902 jne LBB1_209 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000908 .p2align 4, 0x90 + //0x00000910 LBB1_39 + 0x48, 0x8b, 0x4d, 0xb0, //0x00000910 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00000914 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x00000918 cmpq %rcx, $-56(%rbp) + 0x0f, 0x83, 0x43, 0xfd, 0xff, 0xff, //0x0000091c jae LBB1_223 + 0xe9, 0xbf, 0x1f, 0x00, 0x00, //0x00000922 jmp LBB1_572 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000927 .p2align 4, 0x90 + //0x00000930 LBB1_40 + 0x49, 0xff, 0xc1, //0x00000930 incq %r9 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000933 movl $2, %r11d + 0x49, 0x39, 0xd9, //0x00000939 cmpq %rbx, %r9 + 0x0f, 0x83, 0xbd, 0xff, 0xff, 0xff, //0x0000093c jae LBB1_38 + //0x00000942 LBB1_41 + 0x41, 0x0f, 0xb6, 0x09, //0x00000942 movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000946 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x0000094a je LBB1_40 + 0x80, 0xf9, 0x0a, //0x00000950 cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00000953 je LBB1_40 + 0x48, 0x8b, 0x45, 0xc0, //0x00000959 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x0000095d movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc1, //0x00000961 incq %r9 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000964 cmpl $255, %eax + 0x0f, 0x84, 0xea, 0x08, 0x00, 0x00, //0x00000969 je LBB1_176 + 0xc1, 0xe2, 0x06, //0x0000096f shll $6, %edx + 0x09, 0xc2, //0x00000972 orl %eax, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000974 movl $3, %r11d + 0x49, 0x39, 0xd9, //0x0000097a cmpq %rbx, %r9 + 0x0f, 0x82, 0xba, 0x03, 0x00, 0x00, //0x0000097d jb LBB1_105 + 0xe9, 0x61, 0x09, 0x00, 0x00, //0x00000983 jmp LBB1_209 + //0x00000988 LBB1_45 + 0x49, 0x89, 0xc1, //0x00000988 movq %rax, %r9 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x0000098b jmp LBB1_48 + //0x00000990 LBB1_46 + 0x3c, 0x2f, //0x00000990 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000992 jne LBB1_48 + 0x89, 0xc1, //0x00000998 movl %eax, %ecx + //0x0000099a LBB1_48 + 0x0f, 0xb6, 0xc1, //0x0000099a movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x0000099d movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x14, 0x02, //0x000009a1 movzbl (%rdx,%rax), %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x000009a5 cmpl $255, %edx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000009ab je LBB1_51 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000009b1 movl $1, %r11d + 0x49, 0x39, 0xd9, //0x000009b7 cmpq %rbx, %r9 + 0x0f, 0x83, 0x29, 0x09, 0x00, 0x00, //0x000009ba jae LBB1_209 + 0x41, 0x89, 0xd4, //0x000009c0 movl %edx, %r12d + 0x4c, 0x89, 0xca, //0x000009c3 movq %r9, %rdx + 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x000009c6 jmp LBB1_67 + //0x000009cb LBB1_51 + 0x45, 0x31, 0xe4, //0x000009cb xorl %r12d, %r12d + 0x45, 0x31, 0xdb, //0x000009ce xorl %r11d, %r11d + //0x000009d1 LBB1_52 + 0x41, 0xf6, 0xc2, 0x02, //0x000009d1 testb $2, %r10b + 0x0f, 0x85, 0x3a, 0x09, 0x00, 0x00, //0x000009d5 jne LBB1_212 + 0x41, 0x83, 0xfb, 0x02, //0x000009db cmpl $2, %r11d + 0x0f, 0x82, 0x30, 0x09, 0x00, 0x00, //0x000009df jb LBB1_212 + 0x80, 0xf9, 0x3d, //0x000009e5 cmpb $61, %cl + 0x0f, 0x85, 0x27, 0x09, 0x00, 0x00, //0x000009e8 jne LBB1_212 + 0x41, 0xbe, 0x05, 0x00, 0x00, 0x00, //0x000009ee movl $5, %r14d + 0x45, 0x29, 0xde, //0x000009f4 subl %r11d, %r14d + 0x41, 0xf6, 0xc2, 0x08, //0x000009f7 testb $8, %r10b + 0x0f, 0x85, 0xb3, 0x01, 0x00, 0x00, //0x000009fb jne LBB1_83 + 0x4c, 0x39, 0x4d, 0xd0, //0x00000a01 cmpq %r9, $-48(%rbp) + 0x0f, 0x86, 0x6f, 0x09, 0x00, 0x00, //0x00000a05 jbe LBB1_216 + 0x49, 0x8d, 0x49, 0x03, //0x00000a0b leaq $3(%r9), %rcx + 0x48, 0x8b, 0x5d, 0x80, //0x00000a0f movq $-128(%rbp), %rbx + 0x4c, 0x29, 0xcb, //0x00000a13 subq %r9, %rbx + 0x49, 0x8d, 0x51, 0x04, //0x00000a16 leaq $4(%r9), %rdx + 0x48, 0x8b, 0x7d, 0x98, //0x00000a1a movq $-104(%rbp), %rdi + 0x4c, 0x29, 0xcf, //0x00000a1e subq %r9, %rdi + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00000a21 jmp LBB1_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a26 .p2align 4, 0x90 + //0x00000a30 LBB1_58 + 0x49, 0xff, 0xc1, //0x00000a30 incq %r9 + 0x48, 0xff, 0xc1, //0x00000a33 incq %rcx + 0x48, 0xff, 0xcb, //0x00000a36 decq %rbx + 0x48, 0xff, 0xc2, //0x00000a39 incq %rdx + 0x48, 0xff, 0xcf, //0x00000a3c decq %rdi + 0x4c, 0x39, 0x4d, 0xd0, //0x00000a3f cmpq %r9, $-48(%rbp) + 0x0f, 0x84, 0x2d, 0x09, 0x00, 0x00, //0x00000a43 je LBB1_215 + //0x00000a49 LBB1_59 + 0x41, 0x0f, 0xb6, 0x01, //0x00000a49 movzbl (%r9), %eax + 0x3c, 0x0a, //0x00000a4d cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00000a4f je LBB1_58 + 0x3c, 0x0d, //0x00000a55 cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00000a57 je LBB1_58 + 0x3c, 0x3d, //0x00000a5d cmpb $61, %al + 0x0f, 0x85, 0x04, 0x05, 0x00, 0x00, //0x00000a5f jne LBB1_144 + 0x49, 0xff, 0xc1, //0x00000a65 incq %r9 + 0x41, 0x83, 0xfe, 0x02, //0x00000a68 cmpl $2, %r14d + 0x0f, 0x84, 0xa3, 0x08, 0x00, 0x00, //0x00000a6c je LBB1_212 + 0x4c, 0x39, 0x4d, 0xd0, //0x00000a72 cmpq %r9, $-48(%rbp) + 0x0f, 0x87, 0x15, 0x03, 0x00, 0x00, //0x00000a76 ja LBB1_110 + 0xe9, 0xf9, 0x08, 0x00, 0x00, //0x00000a7c jmp LBB1_216 + //0x00000a81 LBB1_64 + 0x3c, 0x6e, //0x00000a81 cmpb $110, %al + 0x0f, 0x85, 0x4e, 0x03, 0x00, 0x00, //0x00000a83 jne LBB1_116 + //0x00000a89 LBB1_65 + 0x4d, 0x89, 0xc1, //0x00000a89 movq %r8, %r9 + //0x00000a8c LBB1_66 + 0x4c, 0x89, 0xca, //0x00000a8c movq %r9, %rdx + 0x49, 0x39, 0xd9, //0x00000a8f cmpq %rbx, %r9 + 0x0f, 0x83, 0x85, 0x02, 0x00, 0x00, //0x00000a92 jae LBB1_103 + //0x00000a98 LBB1_67 + 0x4c, 0x8d, 0x4a, 0x01, //0x00000a98 leaq $1(%rdx), %r9 + 0x0f, 0xb6, 0x0a, //0x00000a9c movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x00000a9f cmpb $92, %cl + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x00000aa2 jne LBB1_80 + 0x4c, 0x8d, 0x42, 0x02, //0x00000aa8 leaq $2(%rdx), %r8 + 0xb1, 0xff, //0x00000aac movb $-1, %cl + 0x49, 0x39, 0xd8, //0x00000aae cmpq %rbx, %r8 + 0x0f, 0x87, 0x31, 0x03, 0x00, 0x00, //0x00000ab1 ja LBB1_119 + 0x41, 0x0f, 0xb6, 0x01, //0x00000ab7 movzbl (%r9), %eax + 0x3c, 0x71, //0x00000abb cmpb $113, %al + 0x0f, 0x8e, 0xbe, 0xff, 0xff, 0xff, //0x00000abd jle LBB1_64 + 0x3c, 0x72, //0x00000ac3 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00000ac5 je LBB1_65 + 0x3c, 0x75, //0x00000acb cmpb $117, %al + 0x0f, 0x85, 0x0e, 0x03, 0x00, 0x00, //0x00000acd jne LBB1_118 + 0x48, 0x8b, 0x45, 0xd0, //0x00000ad3 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00000ad7 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000ada cmpq $4, %rax + 0x0f, 0x8c, 0xfd, 0x02, 0x00, 0x00, //0x00000ade jl LBB1_118 + 0x41, 0x8b, 0x18, //0x00000ae4 movl (%r8), %ebx + 0x89, 0xde, //0x00000ae7 movl %ebx, %esi + 0xf7, 0xd6, //0x00000ae9 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000aeb leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000af1 andl $-2139062144, %esi + 0x85, 0xc6, //0x00000af7 testl %eax, %esi + 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x00000af9 jne LBB1_118 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00000aff leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00000b05 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00000b07 testl $-2139062144, %eax + 0x0f, 0x85, 0xcf, 0x02, 0x00, 0x00, //0x00000b0c jne LBB1_118 + 0x89, 0xd8, //0x00000b12 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000b14 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000b19 movl $-1061109568, %edi + 0x29, 0xc7, //0x00000b1e subl %eax, %edi + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00000b20 leal $1179010630(%rax), %r9d + 0x21, 0xf7, //0x00000b27 andl %esi, %edi + 0x44, 0x85, 0xcf, //0x00000b29 testl %r9d, %edi + 0x0f, 0x85, 0xaf, 0x02, 0x00, 0x00, //0x00000b2c jne LBB1_118 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000b32 movl $-522133280, %edi + 0x29, 0xc7, //0x00000b37 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00000b39 addl $960051513, %eax + 0x21, 0xfe, //0x00000b3e andl %edi, %esi + 0x85, 0xc6, //0x00000b40 testl %eax, %esi + 0x0f, 0x85, 0x99, 0x02, 0x00, 0x00, //0x00000b42 jne LBB1_118 + 0x0f, 0xcb, //0x00000b48 bswapl %ebx + 0x89, 0xd8, //0x00000b4a movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00000b4c shrl $4, %eax + 0xf7, 0xd0, //0x00000b4f notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00000b51 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00000b56 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000b59 andl $252645135, %ebx + 0x01, 0xc3, //0x00000b5f addl %eax, %ebx + 0x89, 0xd9, //0x00000b61 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00000b63 shrl $4, %ecx + 0x09, 0xd9, //0x00000b66 orl %ebx, %ecx + 0x89, 0xc8, //0x00000b68 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00000b6a shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000b6d andl $65280, %eax + 0x89, 0xce, //0x00000b72 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00000b74 andl $128, %esi + 0x09, 0xc6, //0x00000b7a orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000b7c je LBB1_79 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000b82 movl $255, %ecx + //0x00000b87 LBB1_79 + 0x48, 0x83, 0xc2, 0x06, //0x00000b87 addq $6, %rdx + 0x49, 0x89, 0xd1, //0x00000b8b movq %rdx, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x00000b8e movq $-48(%rbp), %rbx + //0x00000b92 LBB1_80 + 0x80, 0xf9, 0x0a, //0x00000b92 cmpb $10, %cl + 0x0f, 0x84, 0xf1, 0xfe, 0xff, 0xff, //0x00000b95 je LBB1_66 + 0x80, 0xf9, 0x0d, //0x00000b9b cmpb $13, %cl + 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x00000b9e je LBB1_66 + 0xe9, 0x3f, 0x02, 0x00, 0x00, //0x00000ba4 jmp LBB1_119 + //0x00000ba9 LBB1_82 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000ba9 movl $1, %r11d + 0xe9, 0x4b, 0xfd, 0xff, 0xff, //0x00000baf jmp LBB1_38 + //0x00000bb4 LBB1_83 + 0x48, 0x8b, 0x55, 0xd0, //0x00000bb4 movq $-48(%rbp), %rdx + 0x4c, 0x39, 0xca, //0x00000bb8 cmpq %r9, %rdx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000bbb ja LBB1_86 + 0xe9, 0xb4, 0x07, 0x00, 0x00, //0x00000bc1 jmp LBB1_216 + //0x00000bc6 LBB1_102 + 0x48, 0x89, 0xc1, //0x00000bc6 movq %rax, %rcx + 0x49, 0x89, 0xc9, //0x00000bc9 movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x00000bcc cmpq %rdx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00000bcf jb LBB1_86 + 0xe9, 0x3b, 0x01, 0x00, 0x00, //0x00000bd5 jmp LBB1_143 + //0x00000bda LBB1_84 + 0x48, 0x89, 0xc8, //0x00000bda movq %rcx, %rax + 0x49, 0x89, 0xc9, //0x00000bdd movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x00000be0 cmpq %rdx, %rcx + 0x0f, 0x83, 0x2c, 0x01, 0x00, 0x00, //0x00000be3 jae LBB1_143 + //0x00000be9 LBB1_86 + 0x49, 0x8d, 0x41, 0x01, //0x00000be9 leaq $1(%r9), %rax + 0x41, 0x0f, 0xb6, 0x09, //0x00000bed movzbl (%r9), %ecx + 0x80, 0xf9, 0x5c, //0x00000bf1 cmpb $92, %cl + 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00000bf4 jne LBB1_99 + 0x49, 0x8d, 0x49, 0x02, //0x00000bfa leaq $2(%r9), %rcx + 0x48, 0x39, 0xd1, //0x00000bfe cmpq %rdx, %rcx + 0x0f, 0x87, 0x79, 0x0a, 0x00, 0x00, //0x00000c01 ja LBB1_258 + 0x0f, 0xb6, 0x00, //0x00000c07 movzbl (%rax), %eax + 0x3c, 0x6e, //0x00000c0a cmpb $110, %al + 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00000c0c je LBB1_84 + 0x3c, 0x72, //0x00000c12 cmpb $114, %al + 0x0f, 0x84, 0xc0, 0xff, 0xff, 0xff, //0x00000c14 je LBB1_84 + 0x3c, 0x75, //0x00000c1a cmpb $117, %al + 0x0f, 0x85, 0x53, 0x0a, 0x00, 0x00, //0x00000c1c jne LBB1_278 + 0x48, 0x89, 0xd0, //0x00000c22 movq %rdx, %rax + 0x48, 0x29, 0xc8, //0x00000c25 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000c28 cmpq $4, %rax + 0x0f, 0x8c, 0x43, 0x0a, 0x00, 0x00, //0x00000c2c jl LBB1_278 + 0x8b, 0x01, //0x00000c32 movl (%rcx), %eax + 0x89, 0xc2, //0x00000c34 movl %eax, %edx + 0xf7, 0xd2, //0x00000c36 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000c38 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00000c3e andl $-2139062144, %edx + 0x85, 0xf2, //0x00000c44 testl %esi, %edx + 0x0f, 0x85, 0x29, 0x0a, 0x00, 0x00, //0x00000c46 jne LBB1_278 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x00000c4c leal $421075225(%rax), %esi + 0x09, 0xc6, //0x00000c52 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00000c54 testl $-2139062144, %esi + 0x0f, 0x85, 0x15, 0x0a, 0x00, 0x00, //0x00000c5a jne LBB1_278 + 0x89, 0xc6, //0x00000c60 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000c62 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000c68 movl $-1061109568, %edi + 0x29, 0xf7, //0x00000c6d subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00000c6f leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00000c75 andl %edx, %edi + 0x85, 0xdf, //0x00000c77 testl %ebx, %edi + 0x0f, 0x85, 0xf6, 0x09, 0x00, 0x00, //0x00000c79 jne LBB1_278 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000c7f movl $-522133280, %edi + 0x29, 0xf7, //0x00000c84 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00000c86 addl $960051513, %esi + 0x21, 0xfa, //0x00000c8c andl %edi, %edx + 0x85, 0xf2, //0x00000c8e testl %esi, %edx + 0x0f, 0x85, 0xdf, 0x09, 0x00, 0x00, //0x00000c90 jne LBB1_278 + 0x0f, 0xc8, //0x00000c96 bswapl %eax + 0x89, 0xc1, //0x00000c98 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000c9a shrl $4, %ecx + 0xf7, 0xd1, //0x00000c9d notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000c9f andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000ca5 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000ca8 andl $252645135, %eax + 0x01, 0xc8, //0x00000cad addl %ecx, %eax + 0x89, 0xc1, //0x00000caf movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000cb1 shrl $4, %ecx + 0x09, 0xc1, //0x00000cb4 orl %eax, %ecx + 0x89, 0xc8, //0x00000cb6 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00000cb8 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000cbb andl $65280, %eax + 0x89, 0xca, //0x00000cc0 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00000cc2 andl $128, %edx + 0x09, 0xc2, //0x00000cc8 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000cca je LBB1_98 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000cd0 movl $255, %ecx + //0x00000cd5 LBB1_98 + 0x49, 0x83, 0xc1, 0x06, //0x00000cd5 addq $6, %r9 + 0x4c, 0x89, 0xc8, //0x00000cd9 movq %r9, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00000cdc movq $-48(%rbp), %rdx + //0x00000ce0 LBB1_99 + 0x80, 0xf9, 0x0a, //0x00000ce0 cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00000ce3 je LBB1_102 + 0x80, 0xf9, 0x0d, //0x00000ce9 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00000cec je LBB1_102 + 0x80, 0xf9, 0x3d, //0x00000cf2 cmpb $61, %cl + 0x0f, 0x85, 0x85, 0x09, 0x00, 0x00, //0x00000cf5 jne LBB1_258 + 0x49, 0x89, 0xc1, //0x00000cfb movq %rax, %r9 + 0x41, 0x83, 0xfe, 0x02, //0x00000cfe cmpl $2, %r14d + 0x0f, 0x84, 0x0d, 0x06, 0x00, 0x00, //0x00000d02 je LBB1_212 + 0x48, 0x8b, 0x75, 0xd0, //0x00000d08 movq $-48(%rbp), %rsi + 0x48, 0x39, 0xc6, //0x00000d0c cmpq %rax, %rsi + 0x0f, 0x87, 0x0e, 0x04, 0x00, 0x00, //0x00000d0f ja LBB1_179 + //0x00000d15 LBB1_143 + 0x49, 0x89, 0xc1, //0x00000d15 movq %rax, %r9 + 0xe9, 0x5d, 0x06, 0x00, 0x00, //0x00000d18 jmp LBB1_216 + //0x00000d1d LBB1_103 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000d1d movl $1, %r11d + 0x44, 0x89, 0xe2, //0x00000d23 movl %r12d, %edx + 0xe9, 0xd4, 0xfb, 0xff, 0xff, //0x00000d26 jmp LBB1_38 + //0x00000d2b LBB1_104 + 0x49, 0xff, 0xc1, //0x00000d2b incq %r9 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000d2e movl $3, %r11d + 0x49, 0x39, 0xd9, //0x00000d34 cmpq %rbx, %r9 + 0x0f, 0x83, 0xc2, 0xfb, 0xff, 0xff, //0x00000d37 jae LBB1_38 + //0x00000d3d LBB1_105 + 0x41, 0x0f, 0xb6, 0x09, //0x00000d3d movzbl (%r9), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00000d41 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00000d45 je LBB1_104 + 0x80, 0xf9, 0x0a, //0x00000d4b cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00000d4e je LBB1_104 + 0x48, 0x8b, 0x45, 0xc0, //0x00000d54 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00000d58 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc1, //0x00000d5c incq %r9 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000d5f cmpl $255, %eax + 0x0f, 0x85, 0x74, 0x05, 0x00, 0x00, //0x00000d64 jne LBB1_208 + 0x41, 0x89, 0xd4, //0x00000d6a movl %edx, %r12d + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000d6d movl $3, %r11d + 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00000d73 jmp LBB1_52 + //0x00000d78 LBB1_109 + 0x49, 0xff, 0xc1, //0x00000d78 incq %r9 + 0x48, 0xff, 0xc1, //0x00000d7b incq %rcx + 0x48, 0xff, 0xcb, //0x00000d7e decq %rbx + 0x48, 0xff, 0xc2, //0x00000d81 incq %rdx + 0x48, 0xff, 0xcf, //0x00000d84 decq %rdi + 0x4c, 0x39, 0x4d, 0xd0, //0x00000d87 cmpq %r9, $-48(%rbp) + 0x0f, 0x84, 0xe5, 0x05, 0x00, 0x00, //0x00000d8b je LBB1_215 + //0x00000d91 LBB1_110 + 0x41, 0x0f, 0xb6, 0x01, //0x00000d91 movzbl (%r9), %eax + 0x3c, 0x0a, //0x00000d95 cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00000d97 je LBB1_109 + 0x3c, 0x0d, //0x00000d9d cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00000d9f je LBB1_109 + 0x3c, 0x3d, //0x00000da5 cmpb $61, %al + 0x0f, 0x85, 0xbc, 0x01, 0x00, 0x00, //0x00000da7 jne LBB1_144 + 0x49, 0xff, 0xc1, //0x00000dad incq %r9 + 0x41, 0x83, 0xfe, 0x03, //0x00000db0 cmpl $3, %r14d + 0x0f, 0x84, 0x5b, 0x05, 0x00, 0x00, //0x00000db4 je LBB1_212 + 0x4c, 0x39, 0x4d, 0xd0, //0x00000dba cmpq %r9, $-48(%rbp) + 0x0f, 0x87, 0xb5, 0x04, 0x00, 0x00, //0x00000dbe ja LBB1_197 + 0xe9, 0xb1, 0x05, 0x00, 0x00, //0x00000dc4 jmp LBB1_216 + //0x00000dc9 LBB1_115 + 0x41, 0x89, 0xd4, //0x00000dc9 movl %edx, %r12d + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000dcc movl $1, %r11d + 0xe9, 0xfa, 0xfb, 0xff, 0xff, //0x00000dd2 jmp LBB1_52 + //0x00000dd7 LBB1_116 + 0x3c, 0x2f, //0x00000dd7 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000dd9 jne LBB1_118 + 0x89, 0xc1, //0x00000ddf movl %eax, %ecx + //0x00000de1 LBB1_118 + 0x4d, 0x89, 0xc1, //0x00000de1 movq %r8, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x00000de4 movq $-48(%rbp), %rbx + //0x00000de8 LBB1_119 + 0x0f, 0xb6, 0xc1, //0x00000de8 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00000deb movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00000def movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000df3 cmpl $255, %eax + 0x0f, 0x84, 0x58, 0x01, 0x00, 0x00, //0x00000df8 je LBB1_140 + 0x44, 0x89, 0xe2, //0x00000dfe movl %r12d, %edx + 0xc1, 0xe2, 0x06, //0x00000e01 shll $6, %edx + 0x09, 0xc2, //0x00000e04 orl %eax, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000e06 movl $2, %r11d + 0x49, 0x39, 0xd9, //0x00000e0c cmpq %rbx, %r9 + 0x0f, 0x83, 0xd4, 0x04, 0x00, 0x00, //0x00000e0f jae LBB1_209 + 0x41, 0x89, 0xd4, //0x00000e15 movl %edx, %r12d + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00000e18 jmp LBB1_125 + //0x00000e1d LBB1_122 + 0x3c, 0x6e, //0x00000e1d cmpb $110, %al + 0x0f, 0x85, 0x52, 0x01, 0x00, 0x00, //0x00000e1f jne LBB1_150 + //0x00000e25 LBB1_123 + 0x48, 0x89, 0xd7, //0x00000e25 movq %rdx, %rdi + 0x44, 0x89, 0xe2, //0x00000e28 movl %r12d, %edx + //0x00000e2b LBB1_124 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00000e2b movl $2, %r11d + 0x49, 0x89, 0xf9, //0x00000e31 movq %rdi, %r9 + 0x48, 0x39, 0xdf, //0x00000e34 cmpq %rbx, %rdi + 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x00000e37 jae LBB1_142 + //0x00000e3d LBB1_125 + 0x49, 0x8d, 0x79, 0x01, //0x00000e3d leaq $1(%r9), %rdi + 0x41, 0x0f, 0xb6, 0x09, //0x00000e41 movzbl (%r9), %ecx + 0x80, 0xf9, 0x5c, //0x00000e45 cmpb $92, %cl + 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x00000e48 jne LBB1_138 + 0x49, 0x8d, 0x51, 0x02, //0x00000e4e leaq $2(%r9), %rdx + 0xb1, 0xff, //0x00000e52 movb $-1, %cl + 0x48, 0x39, 0xda, //0x00000e54 cmpq %rbx, %rdx + 0x0f, 0x87, 0x27, 0x01, 0x00, 0x00, //0x00000e57 ja LBB1_153 + 0x0f, 0xb6, 0x07, //0x00000e5d movzbl (%rdi), %eax + 0x3c, 0x71, //0x00000e60 cmpb $113, %al + 0x0f, 0x8e, 0xb5, 0xff, 0xff, 0xff, //0x00000e62 jle LBB1_122 + 0x3c, 0x72, //0x00000e68 cmpb $114, %al + 0x0f, 0x84, 0xb5, 0xff, 0xff, 0xff, //0x00000e6a je LBB1_123 + 0x3c, 0x75, //0x00000e70 cmpb $117, %al + 0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x00000e72 jne LBB1_152 + 0x48, 0x89, 0xd8, //0x00000e78 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00000e7b subq %rdx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00000e7e cmpq $4, %rax + 0x0f, 0x8c, 0xf9, 0x00, 0x00, 0x00, //0x00000e82 jl LBB1_152 + 0x8b, 0x02, //0x00000e88 movl (%rdx), %eax + 0x89, 0xc6, //0x00000e8a movl %eax, %esi + 0xf7, 0xd6, //0x00000e8c notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00000e8e leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00000e94 andl $-2139062144, %esi + 0x85, 0xfe, //0x00000e9a testl %edi, %esi + 0x0f, 0x85, 0xdf, 0x00, 0x00, 0x00, //0x00000e9c jne LBB1_152 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00000ea2 leal $421075225(%rax), %edi + 0x09, 0xc7, //0x00000ea8 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00000eaa testl $-2139062144, %edi + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x00000eb0 jne LBB1_152 + 0x89, 0xc7, //0x00000eb6 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00000eb8 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00000ebe movl $-1061109568, %ebx + 0x29, 0xfb, //0x00000ec3 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00000ec5 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x00000ecc andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x00000ece testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00000ed1 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0xa6, 0x00, 0x00, 0x00, //0x00000ed5 jne LBB1_152 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00000edb movl $-522133280, %ebx + 0x29, 0xfb, //0x00000ee0 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00000ee2 addl $960051513, %edi + 0x21, 0xde, //0x00000ee8 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00000eea movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x00000eee testl %edi, %esi + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00000ef0 jne LBB1_152 + 0x0f, 0xc8, //0x00000ef6 bswapl %eax + 0x89, 0xc1, //0x00000ef8 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000efa shrl $4, %ecx + 0xf7, 0xd1, //0x00000efd notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00000eff andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00000f05 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00000f08 andl $252645135, %eax + 0x01, 0xc8, //0x00000f0d addl %ecx, %eax + 0x89, 0xc1, //0x00000f0f movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00000f11 shrl $4, %ecx + 0x09, 0xc1, //0x00000f14 orl %eax, %ecx + 0x89, 0xc8, //0x00000f16 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00000f18 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00000f1b andl $65280, %eax + 0x89, 0xca, //0x00000f20 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00000f22 andl $128, %edx + 0x09, 0xc2, //0x00000f28 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00000f2a je LBB1_137 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00000f30 movl $255, %ecx + //0x00000f35 LBB1_137 + 0x49, 0x83, 0xc1, 0x06, //0x00000f35 addq $6, %r9 + 0x4c, 0x89, 0xcf, //0x00000f39 movq %r9, %rdi + 0x44, 0x89, 0xe2, //0x00000f3c movl %r12d, %edx + //0x00000f3f LBB1_138 + 0x80, 0xf9, 0x0a, //0x00000f3f cmpb $10, %cl + 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00000f42 je LBB1_124 + 0x80, 0xf9, 0x0d, //0x00000f48 cmpb $13, %cl + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00000f4b je LBB1_124 + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x00000f51 jmp LBB1_153 + //0x00000f56 LBB1_140 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00000f56 movl $1, %r11d + 0xe9, 0x70, 0xfa, 0xff, 0xff, //0x00000f5c jmp LBB1_52 + //0x00000f61 LBB1_142 + 0x49, 0x89, 0xf9, //0x00000f61 movq %rdi, %r9 + 0xe9, 0x96, 0xf9, 0xff, 0xff, //0x00000f64 jmp LBB1_38 + //0x00000f69 LBB1_144 + 0x49, 0xff, 0xc1, //0x00000f69 incq %r9 + 0x4c, 0x89, 0xca, //0x00000f6c movq %r9, %rdx + //0x00000f6f LBB1_145 + 0x49, 0x89, 0xd1, //0x00000f6f movq %rdx, %r9 + 0xe9, 0x9e, 0x03, 0x00, 0x00, //0x00000f72 jmp LBB1_212 + //0x00000f77 LBB1_150 + 0x3c, 0x2f, //0x00000f77 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00000f79 jne LBB1_152 + 0x89, 0xc1, //0x00000f7f movl %eax, %ecx + //0x00000f81 LBB1_152 + 0x48, 0x89, 0xd7, //0x00000f81 movq %rdx, %rdi + //0x00000f84 LBB1_153 + 0x0f, 0xb6, 0xc1, //0x00000f84 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00000f87 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00000f8b movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00000f8f cmpl $255, %eax + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00000f94 je LBB1_174 + 0x44, 0x89, 0xe2, //0x00000f9a movl %r12d, %edx + 0xc1, 0xe2, 0x06, //0x00000f9d shll $6, %edx + 0x09, 0xc2, //0x00000fa0 orl %eax, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000fa2 movl $3, %r11d + 0x48, 0x39, 0xdf, //0x00000fa8 cmpq %rbx, %rdi + 0x0f, 0x83, 0x47, 0x01, 0x00, 0x00, //0x00000fab jae LBB1_175 + 0x41, 0x89, 0xd4, //0x00000fb1 movl %edx, %r12d + 0xe9, 0x1d, 0x00, 0x00, 0x00, //0x00000fb4 jmp LBB1_159 + //0x00000fb9 LBB1_156 + 0x3c, 0x6e, //0x00000fb9 cmpb $110, %al + 0x0f, 0x85, 0xf3, 0x02, 0x00, 0x00, //0x00000fbb jne LBB1_203 + //0x00000fc1 LBB1_157 + 0x4d, 0x89, 0xc1, //0x00000fc1 movq %r8, %r9 + //0x00000fc4 LBB1_158 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00000fc4 movl $3, %r11d + 0x4c, 0x89, 0xcf, //0x00000fca movq %r9, %rdi + 0x49, 0x39, 0xd9, //0x00000fcd cmpq %rbx, %r9 + 0x0f, 0x83, 0x29, 0xf9, 0xff, 0xff, //0x00000fd0 jae LBB1_38 + //0x00000fd6 LBB1_159 + 0x4c, 0x8d, 0x4f, 0x01, //0x00000fd6 leaq $1(%rdi), %r9 + 0x0f, 0xb6, 0x0f, //0x00000fda movzbl (%rdi), %ecx + 0x80, 0xf9, 0x5c, //0x00000fdd cmpb $92, %cl + 0x0f, 0x85, 0xed, 0x00, 0x00, 0x00, //0x00000fe0 jne LBB1_172 + 0x4c, 0x8d, 0x47, 0x02, //0x00000fe6 leaq $2(%rdi), %r8 + 0xb1, 0xff, //0x00000fea movb $-1, %cl + 0x49, 0x39, 0xd8, //0x00000fec cmpq %rbx, %r8 + 0x0f, 0x87, 0xd0, 0x02, 0x00, 0x00, //0x00000fef ja LBB1_206 + 0x41, 0x0f, 0xb6, 0x01, //0x00000ff5 movzbl (%r9), %eax + 0x3c, 0x71, //0x00000ff9 cmpb $113, %al + 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x00000ffb jle LBB1_156 + 0x3c, 0x72, //0x00001001 cmpb $114, %al + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00001003 je LBB1_157 + 0x3c, 0x75, //0x00001009 cmpb $117, %al + 0x0f, 0x85, 0xad, 0x02, 0x00, 0x00, //0x0000100b jne LBB1_205 + 0x48, 0x8b, 0x45, 0xd0, //0x00001011 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00001015 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00001018 cmpq $4, %rax + 0x0f, 0x8c, 0x9c, 0x02, 0x00, 0x00, //0x0000101c jl LBB1_205 + 0x41, 0x8b, 0x18, //0x00001022 movl (%r8), %ebx + 0x89, 0xde, //0x00001025 movl %ebx, %esi + 0xf7, 0xd6, //0x00001027 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001029 leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000102f andl $-2139062144, %esi + 0x85, 0xc6, //0x00001035 testl %eax, %esi + 0x0f, 0x85, 0x81, 0x02, 0x00, 0x00, //0x00001037 jne LBB1_205 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x0000103d leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00001043 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001045 testl $-2139062144, %eax + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x0000104a jne LBB1_205 + 0x89, 0xd8, //0x00001050 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001052 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001057 movl $-1061109568, %edx + 0x29, 0xc2, //0x0000105c subl %eax, %edx + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x0000105e leal $1179010630(%rax), %r9d + 0x21, 0xf2, //0x00001065 andl %esi, %edx + 0x44, 0x85, 0xca, //0x00001067 testl %r9d, %edx + 0x0f, 0x85, 0x4e, 0x02, 0x00, 0x00, //0x0000106a jne LBB1_205 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001070 movl $-522133280, %edx + 0x29, 0xc2, //0x00001075 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001077 addl $960051513, %eax + 0x21, 0xd6, //0x0000107c andl %edx, %esi + 0x85, 0xc6, //0x0000107e testl %eax, %esi + 0x0f, 0x85, 0x38, 0x02, 0x00, 0x00, //0x00001080 jne LBB1_205 + 0x0f, 0xcb, //0x00001086 bswapl %ebx + 0x89, 0xd8, //0x00001088 movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x0000108a shrl $4, %eax + 0xf7, 0xd0, //0x0000108d notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000108f andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00001094 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001097 andl $252645135, %ebx + 0x01, 0xc3, //0x0000109d addl %eax, %ebx + 0x89, 0xd9, //0x0000109f movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x000010a1 shrl $4, %ecx + 0x09, 0xd9, //0x000010a4 orl %ebx, %ecx + 0x89, 0xc8, //0x000010a6 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000010a8 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000010ab andl $65280, %eax + 0x89, 0xca, //0x000010b0 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000010b2 andl $128, %edx + 0x09, 0xc2, //0x000010b8 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000010ba je LBB1_171 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000010c0 movl $255, %ecx + //0x000010c5 LBB1_171 + 0x48, 0x83, 0xc7, 0x06, //0x000010c5 addq $6, %rdi + 0x49, 0x89, 0xf9, //0x000010c9 movq %rdi, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x000010cc movq $-48(%rbp), %rbx + 0x44, 0x89, 0xe2, //0x000010d0 movl %r12d, %edx + //0x000010d3 LBB1_172 + 0x80, 0xf9, 0x0a, //0x000010d3 cmpb $10, %cl + 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x000010d6 je LBB1_158 + 0x80, 0xf9, 0x0d, //0x000010dc cmpb $13, %cl + 0x0f, 0x84, 0xdf, 0xfe, 0xff, 0xff, //0x000010df je LBB1_158 + 0xe9, 0xdb, 0x01, 0x00, 0x00, //0x000010e5 jmp LBB1_206 + //0x000010ea LBB1_174 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000010ea movl $2, %r11d + 0x49, 0x89, 0xf9, //0x000010f0 movq %rdi, %r9 + 0xe9, 0xd9, 0xf8, 0xff, 0xff, //0x000010f3 jmp LBB1_52 + //0x000010f8 LBB1_175 + 0x49, 0x89, 0xf9, //0x000010f8 movq %rdi, %r9 + 0xe9, 0xe9, 0x01, 0x00, 0x00, //0x000010fb jmp LBB1_209 + //0x00001100 LBB1_195 + 0x4c, 0x89, 0xc9, //0x00001100 movq %r9, %rcx + 0x48, 0x89, 0xc8, //0x00001103 movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x00001106 cmpq %rsi, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00001109 jb LBB1_179 + 0xe9, 0x66, 0x02, 0x00, 0x00, //0x0000110f jmp LBB1_216 + //0x00001114 LBB1_177 + 0x49, 0x89, 0xc9, //0x00001114 movq %rcx, %r9 + 0x48, 0x89, 0xc8, //0x00001117 movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x0000111a cmpq %rsi, %rcx + 0x0f, 0x83, 0x57, 0x02, 0x00, 0x00, //0x0000111d jae LBB1_216 + //0x00001123 LBB1_179 + 0x4c, 0x8d, 0x48, 0x01, //0x00001123 leaq $1(%rax), %r9 + 0x0f, 0xb6, 0x08, //0x00001127 movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x0000112a cmpb $92, %cl + 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x0000112d jne LBB1_192 + 0x48, 0x8d, 0x48, 0x02, //0x00001133 leaq $2(%rax), %rcx + 0x48, 0x39, 0xf1, //0x00001137 cmpq %rsi, %rcx + 0x0f, 0x87, 0x3d, 0x05, 0x00, 0x00, //0x0000113a ja LBB1_279 + 0x41, 0x0f, 0xb6, 0x11, //0x00001140 movzbl (%r9), %edx + 0x80, 0xfa, 0x6e, //0x00001144 cmpb $110, %dl + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x00001147 je LBB1_177 + 0x80, 0xfa, 0x72, //0x0000114d cmpb $114, %dl + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00001150 je LBB1_177 + 0x80, 0xfa, 0x75, //0x00001156 cmpb $117, %dl + 0x0f, 0x85, 0x16, 0x05, 0x00, 0x00, //0x00001159 jne LBB1_278 + 0x48, 0x89, 0xf2, //0x0000115f movq %rsi, %rdx + 0x48, 0x29, 0xca, //0x00001162 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00001165 cmpq $4, %rdx + 0x0f, 0x8c, 0x06, 0x05, 0x00, 0x00, //0x00001169 jl LBB1_278 + 0x8b, 0x11, //0x0000116f movl (%rcx), %edx + 0x89, 0xd6, //0x00001171 movl %edx, %esi + 0xf7, 0xd6, //0x00001173 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001175 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000117b andl $-2139062144, %esi + 0x85, 0xfe, //0x00001181 testl %edi, %esi + 0x0f, 0x85, 0xec, 0x04, 0x00, 0x00, //0x00001183 jne LBB1_278 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00001189 leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x0000118f orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00001191 testl $-2139062144, %edi + 0x0f, 0x85, 0xd8, 0x04, 0x00, 0x00, //0x00001197 jne LBB1_278 + 0x89, 0xd7, //0x0000119d movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000119f andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000011a5 movl $-1061109568, %ebx + 0x29, 0xfb, //0x000011aa subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000011ac leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000011b3 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000011b5 testl %r8d, %ebx + 0x0f, 0x85, 0xb7, 0x04, 0x00, 0x00, //0x000011b8 jne LBB1_278 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000011be movl $-522133280, %ebx + 0x29, 0xfb, //0x000011c3 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000011c5 addl $960051513, %edi + 0x21, 0xde, //0x000011cb andl %ebx, %esi + 0x85, 0xfe, //0x000011cd testl %edi, %esi + 0x0f, 0x85, 0xa0, 0x04, 0x00, 0x00, //0x000011cf jne LBB1_278 + 0x0f, 0xca, //0x000011d5 bswapl %edx + 0x89, 0xd1, //0x000011d7 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000011d9 shrl $4, %ecx + 0xf7, 0xd1, //0x000011dc notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000011de andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000011e4 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000011e7 andl $252645135, %edx + 0x01, 0xca, //0x000011ed addl %ecx, %edx + 0x89, 0xd1, //0x000011ef movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000011f1 shrl $4, %ecx + 0x09, 0xd1, //0x000011f4 orl %edx, %ecx + 0x89, 0xca, //0x000011f6 movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x000011f8 shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000011fb andl $65280, %edx + 0x89, 0xce, //0x00001201 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00001203 andl $128, %esi + 0x09, 0xd6, //0x00001209 orl %edx, %esi + 0x48, 0x8b, 0x75, 0xd0, //0x0000120b movq $-48(%rbp), %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000120f je LBB1_191 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00001215 movl $255, %ecx + //0x0000121a LBB1_191 + 0x48, 0x83, 0xc0, 0x06, //0x0000121a addq $6, %rax + 0x49, 0x89, 0xc1, //0x0000121e movq %rax, %r9 + //0x00001221 LBB1_192 + 0x80, 0xf9, 0x0a, //0x00001221 cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00001224 je LBB1_195 + 0x80, 0xf9, 0x0d, //0x0000122a cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x0000122d je LBB1_195 + 0x80, 0xf9, 0x3d, //0x00001233 cmpb $61, %cl + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00001236 jne LBB1_212 + 0x41, 0x83, 0xfe, 0x03, //0x0000123c cmpl $3, %r14d + 0x0f, 0x84, 0xcf, 0x00, 0x00, 0x00, //0x00001240 je LBB1_212 + 0x4c, 0x39, 0x4d, 0xd0, //0x00001246 cmpq %r9, $-48(%rbp) + 0x0f, 0x86, 0x2a, 0x01, 0x00, 0x00, //0x0000124a jbe LBB1_216 + 0x48, 0x8b, 0x55, 0xd0, //0x00001250 movq $-48(%rbp), %rdx + 0xe9, 0x8e, 0x01, 0x00, 0x00, //0x00001254 jmp LBB1_234 + //0x00001259 LBB1_176 + 0x41, 0x89, 0xd4, //0x00001259 movl %edx, %r12d + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000125c movl $2, %r11d + 0xe9, 0x6a, 0xf7, 0xff, 0xff, //0x00001262 jmp LBB1_52 + //0x00001267 LBB1_196 + 0x48, 0xff, 0xc1, //0x00001267 incq %rcx + 0x48, 0xff, 0xc2, //0x0000126a incq %rdx + 0x48, 0xff, 0xcf, //0x0000126d decq %rdi + 0x48, 0xff, 0xcb, //0x00001270 decq %rbx + 0x0f, 0x84, 0xfd, 0x00, 0x00, 0x00, //0x00001273 je LBB1_215 + //0x00001279 LBB1_197 + 0x0f, 0xb6, 0x41, 0xff, //0x00001279 movzbl $-1(%rcx), %eax + 0x3c, 0x0a, //0x0000127d cmpb $10, %al + 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x0000127f je LBB1_196 + 0x3c, 0x0d, //0x00001285 cmpb $13, %al + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001287 je LBB1_196 + 0x3c, 0x3d, //0x0000128d cmpb $61, %al + 0x0f, 0x85, 0x75, 0x02, 0x00, 0x00, //0x0000128f jne LBB1_252 + 0x49, 0x89, 0xc9, //0x00001295 movq %rcx, %r9 + 0x41, 0x83, 0xfe, 0x04, //0x00001298 cmpl $4, %r14d + 0x0f, 0x84, 0x73, 0x00, 0x00, 0x00, //0x0000129c je LBB1_212 + 0x48, 0x39, 0x4d, 0xd0, //0x000012a2 cmpq %rcx, $-48(%rbp) + 0x0f, 0x87, 0xaf, 0x00, 0x00, 0x00, //0x000012a6 ja LBB1_229 + 0x49, 0x89, 0xc9, //0x000012ac movq %rcx, %r9 + 0xe9, 0xc6, 0x00, 0x00, 0x00, //0x000012af jmp LBB1_216 + //0x000012b4 LBB1_203 + 0x3c, 0x2f, //0x000012b4 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000012b6 jne LBB1_205 + 0x89, 0xc1, //0x000012bc movl %eax, %ecx + //0x000012be LBB1_205 + 0x4d, 0x89, 0xc1, //0x000012be movq %r8, %r9 + 0x48, 0x8b, 0x5d, 0xd0, //0x000012c1 movq $-48(%rbp), %rbx + //0x000012c5 LBB1_206 + 0x0f, 0xb6, 0xc1, //0x000012c5 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x000012c8 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x000012cc movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000012d0 cmpl $255, %eax + 0x0f, 0x84, 0x69, 0x00, 0x00, 0x00, //0x000012d5 je LBB1_214 + 0x44, 0x89, 0xe2, //0x000012db movl %r12d, %edx + //0x000012de LBB1_208 + 0xc1, 0xe2, 0x06, //0x000012de shll $6, %edx + 0x09, 0xc2, //0x000012e1 orl %eax, %edx + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000012e3 movl $4, %r11d + //0x000012e9 LBB1_209 + 0x41, 0x89, 0xd4, //0x000012e9 movl %edx, %r12d + 0x41, 0xf6, 0xc2, 0x02, //0x000012ec testb $2, %r10b + 0x0f, 0x94, 0xc0, //0x000012f0 sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000012f3 cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000012f7 sete %cl + 0x49, 0x39, 0xd9, //0x000012fa cmpq %rbx, %r9 + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x000012fd jb LBB1_216 + 0x41, 0x83, 0xfb, 0x04, //0x00001303 cmpl $4, %r11d + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x00001307 je LBB1_216 + 0x08, 0xc8, //0x0000130d orb %cl, %al + 0x0f, 0x84, 0x65, 0x00, 0x00, 0x00, //0x0000130f je LBB1_216 + //0x00001315 LBB1_212 + 0x49, 0x8d, 0x49, 0x01, //0x00001315 leaq $1(%r9), %rcx + 0x4c, 0x39, 0x4d, 0xd0, //0x00001319 cmpq %r9, $-48(%rbp) + 0x49, 0x0f, 0x45, 0xc9, //0x0000131d cmovneq %r9, %rcx + 0x4c, 0x29, 0xf9, //0x00001321 subq %r15, %rcx + 0x0f, 0x85, 0xb0, 0x36, 0x00, 0x00, //0x00001324 jne LBB1_1140 + 0x4d, 0x89, 0xf9, //0x0000132a movq %r15, %r9 + 0x48, 0x8b, 0x4d, 0xb0, //0x0000132d movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00001331 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x00001335 cmpq %rcx, $-56(%rbp) + 0x0f, 0x83, 0x26, 0xf3, 0xff, 0xff, //0x00001339 jae LBB1_223 + 0xe9, 0xa2, 0x15, 0x00, 0x00, //0x0000133f jmp LBB1_572 + //0x00001344 LBB1_214 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001344 movl $3, %r11d + 0xe9, 0x82, 0xf6, 0xff, 0xff, //0x0000134a jmp LBB1_52 + //0x0000134f LBB1_228 + 0x48, 0xff, 0xc2, //0x0000134f incq %rdx + 0x48, 0xff, 0xcf, //0x00001352 decq %rdi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00001355 je LBB1_215 + //0x0000135b LBB1_229 + 0x0f, 0xb6, 0x42, 0xff, //0x0000135b movzbl $-1(%rdx), %eax + 0x3c, 0x0a, //0x0000135f cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00001361 je LBB1_228 + 0x3c, 0x0d, //0x00001367 cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001369 je LBB1_228 + 0x3c, 0x3d, //0x0000136f cmpb $61, %al + 0xe9, 0xf9, 0xfb, 0xff, 0xff, //0x00001371 jmp LBB1_145 + //0x00001376 LBB1_215 + 0x4c, 0x8b, 0x4d, 0xd0, //0x00001376 movq $-48(%rbp), %r9 + //0x0000137a LBB1_216 + 0xb0, 0x04, //0x0000137a movb $4, %al + 0x44, 0x28, 0xd8, //0x0000137c subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x0000137f movzbl %al, %eax + 0x01, 0xc0, //0x00001382 addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x00001384 leal (%rax,%rax,2), %ecx + 0x44, 0x89, 0xe0, //0x00001387 movl %r12d, %eax + 0xd3, 0xe0, //0x0000138a shll %cl, %eax + 0x41, 0x83, 0xfb, 0x02, //0x0000138c cmpl $2, %r11d + 0x48, 0x8b, 0x4d, 0xb0, //0x00001390 movq $-80(%rbp), %rcx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001394 je LBB1_221 + 0x41, 0x83, 0xfb, 0x03, //0x0000139a cmpl $3, %r11d + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000139e je LBB1_220 + 0x41, 0x83, 0xfb, 0x04, //0x000013a4 cmpl $4, %r11d + 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x000013a8 jne LBB1_222 + 0x88, 0x41, 0x02, //0x000013ae movb %al, $2(%rcx) + //0x000013b1 LBB1_220 + 0x88, 0x61, 0x01, //0x000013b1 movb %ah, $1(%rcx) + //0x000013b4 LBB1_221 + 0xc1, 0xe8, 0x10, //0x000013b4 shrl $16, %eax + 0x88, 0x01, //0x000013b7 movb %al, (%rcx) + //0x000013b9 LBB1_222 + 0x44, 0x89, 0xd8, //0x000013b9 movl %r11d, %eax + 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x000013bc leaq $-1(%rcx,%rax), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x000013c1 movq %rcx, $-80(%rbp) + 0x48, 0x39, 0x4d, 0xc8, //0x000013c5 cmpq %rcx, $-56(%rbp) + 0x0f, 0x83, 0x96, 0xf2, 0xff, 0xff, //0x000013c9 jae LBB1_223 + 0xe9, 0x12, 0x15, 0x00, 0x00, //0x000013cf jmp LBB1_572 + //0x000013d4 LBB1_233 + 0x48, 0x89, 0xc1, //0x000013d4 movq %rax, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x000013d7 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xc9, //0x000013db movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x000013de cmpq %rdx, %rcx + 0x0f, 0x83, 0x2e, 0xf9, 0xff, 0xff, //0x000013e1 jae LBB1_143 + //0x000013e7 LBB1_234 + 0x49, 0x8d, 0x41, 0x01, //0x000013e7 leaq $1(%r9), %rax + 0x41, 0x0f, 0xb6, 0x09, //0x000013eb movzbl (%r9), %ecx + 0x80, 0xf9, 0x5c, //0x000013ef cmpb $92, %cl + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x000013f2 jne LBB1_247 + 0x49, 0x8d, 0x49, 0x02, //0x000013f8 leaq $2(%r9), %rcx + 0x48, 0x39, 0xd1, //0x000013fc cmpq %rdx, %rcx + 0x0f, 0x87, 0x7b, 0x02, 0x00, 0x00, //0x000013ff ja LBB1_258 + 0x0f, 0xb6, 0x00, //0x00001405 movzbl (%rax), %eax + 0x3c, 0x6e, //0x00001408 cmpb $110, %al + 0x0f, 0x84, 0xe2, 0x00, 0x00, 0x00, //0x0000140a je LBB1_249 + 0x3c, 0x72, //0x00001410 cmpb $114, %al + 0x0f, 0x84, 0xda, 0x00, 0x00, 0x00, //0x00001412 je LBB1_249 + 0x3c, 0x75, //0x00001418 cmpb $117, %al + 0x0f, 0x85, 0x55, 0x02, 0x00, 0x00, //0x0000141a jne LBB1_278 + 0x48, 0x8b, 0x45, 0xd0, //0x00001420 movq $-48(%rbp), %rax + 0x48, 0x29, 0xc8, //0x00001424 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00001427 cmpq $4, %rax + 0x0f, 0x8c, 0x44, 0x02, 0x00, 0x00, //0x0000142b jl LBB1_278 + 0x8b, 0x01, //0x00001431 movl (%rcx), %eax + 0x89, 0xc2, //0x00001433 movl %eax, %edx + 0xf7, 0xd2, //0x00001435 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001437 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x0000143d andl $-2139062144, %edx + 0x85, 0xf2, //0x00001443 testl %esi, %edx + 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x00001445 jne LBB1_278 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x0000144b leal $421075225(%rax), %esi + 0x09, 0xc6, //0x00001451 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00001453 testl $-2139062144, %esi + 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x00001459 jne LBB1_278 + 0x89, 0xc6, //0x0000145f movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001461 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001467 movl $-1061109568, %edi + 0x29, 0xf7, //0x0000146c subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x0000146e leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00001474 andl %edx, %edi + 0x85, 0xdf, //0x00001476 testl %ebx, %edi + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x00001478 jne LBB1_278 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000147e movl $-522133280, %edi + 0x29, 0xf7, //0x00001483 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00001485 addl $960051513, %esi + 0x21, 0xfa, //0x0000148b andl %edi, %edx + 0x85, 0xf2, //0x0000148d testl %esi, %edx + 0x0f, 0x85, 0xe0, 0x01, 0x00, 0x00, //0x0000148f jne LBB1_278 + 0x0f, 0xc8, //0x00001495 bswapl %eax + 0x89, 0xc1, //0x00001497 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001499 shrl $4, %ecx + 0xf7, 0xd1, //0x0000149c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000149e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000014a4 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x000014a7 andl $252645135, %eax + 0x01, 0xc8, //0x000014ac addl %ecx, %eax + 0x89, 0xc1, //0x000014ae movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x000014b0 shrl $4, %ecx + 0x09, 0xc1, //0x000014b3 orl %eax, %ecx + 0x89, 0xc8, //0x000014b5 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000014b7 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000014ba andl $65280, %eax + 0x89, 0xca, //0x000014bf movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000014c1 andl $128, %edx + 0x09, 0xc2, //0x000014c7 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000014c9 je LBB1_246 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000014cf movl $255, %ecx + //0x000014d4 LBB1_246 + 0x49, 0x83, 0xc1, 0x06, //0x000014d4 addq $6, %r9 + 0x4c, 0x89, 0xc8, //0x000014d8 movq %r9, %rax + //0x000014db LBB1_247 + 0x80, 0xf9, 0x0a, //0x000014db cmpb $10, %cl + 0x0f, 0x84, 0xf0, 0xfe, 0xff, 0xff, //0x000014de je LBB1_233 + 0x80, 0xf9, 0x0d, //0x000014e4 cmpb $13, %cl + 0x0f, 0x84, 0xe7, 0xfe, 0xff, 0xff, //0x000014e7 je LBB1_233 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000014ed jmp LBB1_254 + //0x000014f2 LBB1_249 + 0x48, 0x89, 0xc8, //0x000014f2 movq %rcx, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x000014f5 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xc9, //0x000014f9 movq %rcx, %r9 + 0x48, 0x39, 0xd1, //0x000014fc cmpq %rdx, %rcx + 0x0f, 0x82, 0xe2, 0xfe, 0xff, 0xff, //0x000014ff jb LBB1_234 + 0xe9, 0x0b, 0xf8, 0xff, 0xff, //0x00001505 jmp LBB1_143 + //0x0000150a LBB1_252 + 0x48, 0x89, 0xca, //0x0000150a movq %rcx, %rdx + 0x49, 0x89, 0xc9, //0x0000150d movq %rcx, %r9 + 0xe9, 0x00, 0xfe, 0xff, 0xff, //0x00001510 jmp LBB1_212 + //0x00001515 LBB1_254 + 0x80, 0xf9, 0x3d, //0x00001515 cmpb $61, %cl + 0x0f, 0x85, 0x62, 0x01, 0x00, 0x00, //0x00001518 jne LBB1_258 + 0x49, 0x89, 0xc1, //0x0000151e movq %rax, %r9 + 0x41, 0x83, 0xfe, 0x04, //0x00001521 cmpl $4, %r14d + 0x0f, 0x84, 0xea, 0xfd, 0xff, 0xff, //0x00001525 je LBB1_212 + 0x48, 0x39, 0x45, 0xd0, //0x0000152b cmpq %rax, $-48(%rbp) + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x0000152f ja LBB1_261 + 0xe9, 0xdb, 0xf7, 0xff, 0xff, //0x00001535 jmp LBB1_143 + //0x0000153a LBB1_277 + 0x4c, 0x89, 0xc9, //0x0000153a movq %r9, %rcx + 0x48, 0x89, 0xc8, //0x0000153d movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x00001540 cmpq $-48(%rbp), %rcx + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00001544 jb LBB1_261 + 0xe9, 0x2b, 0xfe, 0xff, 0xff, //0x0000154a jmp LBB1_216 + //0x0000154f LBB1_259 + 0x49, 0x89, 0xc9, //0x0000154f movq %rcx, %r9 + 0x48, 0x89, 0xc8, //0x00001552 movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x00001555 cmpq $-48(%rbp), %rcx + 0x0f, 0x83, 0x1b, 0xfe, 0xff, 0xff, //0x00001559 jae LBB1_216 + //0x0000155f LBB1_261 + 0x4c, 0x8d, 0x48, 0x01, //0x0000155f leaq $1(%rax), %r9 + 0x0f, 0xb6, 0x08, //0x00001563 movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x00001566 cmpb $92, %cl + 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x00001569 jne LBB1_274 + 0x48, 0x8d, 0x48, 0x02, //0x0000156f leaq $2(%rax), %rcx + 0x48, 0x3b, 0x4d, 0xd0, //0x00001573 cmpq $-48(%rbp), %rcx + 0x0f, 0x87, 0x00, 0x01, 0x00, 0x00, //0x00001577 ja LBB1_279 + 0x41, 0x0f, 0xb6, 0x11, //0x0000157d movzbl (%r9), %edx + 0x80, 0xfa, 0x6e, //0x00001581 cmpb $110, %dl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00001584 je LBB1_259 + 0x80, 0xfa, 0x72, //0x0000158a cmpb $114, %dl + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000158d je LBB1_259 + 0x80, 0xfa, 0x75, //0x00001593 cmpb $117, %dl + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00001596 jne LBB1_278 + 0x48, 0x8b, 0x55, 0xd0, //0x0000159c movq $-48(%rbp), %rdx + 0x48, 0x29, 0xca, //0x000015a0 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x000015a3 cmpq $4, %rdx + 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x000015a7 jl LBB1_278 + 0x8b, 0x11, //0x000015ad movl (%rcx), %edx + 0x89, 0xd6, //0x000015af movl %edx, %esi + 0xf7, 0xd6, //0x000015b1 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x000015b3 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000015b9 andl $-2139062144, %esi + 0x85, 0xfe, //0x000015bf testl %edi, %esi + 0x0f, 0x85, 0xae, 0x00, 0x00, 0x00, //0x000015c1 jne LBB1_278 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x000015c7 leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x000015cd orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x000015cf testl $-2139062144, %edi + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x000015d5 jne LBB1_278 + 0x89, 0xd7, //0x000015db movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x000015dd andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000015e3 movl $-1061109568, %ebx + 0x29, 0xfb, //0x000015e8 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000015ea leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000015f1 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000015f3 testl %r8d, %ebx + 0x0f, 0x85, 0x79, 0x00, 0x00, 0x00, //0x000015f6 jne LBB1_278 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000015fc movl $-522133280, %ebx + 0x29, 0xfb, //0x00001601 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001603 addl $960051513, %edi + 0x21, 0xde, //0x00001609 andl %ebx, %esi + 0x85, 0xfe, //0x0000160b testl %edi, %esi + 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x0000160d jne LBB1_278 + 0x0f, 0xca, //0x00001613 bswapl %edx + 0x89, 0xd1, //0x00001615 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x00001617 shrl $4, %ecx + 0xf7, 0xd1, //0x0000161a notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000161c andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001622 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001625 andl $252645135, %edx + 0x01, 0xca, //0x0000162b addl %ecx, %edx + 0x89, 0xd1, //0x0000162d movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x0000162f shrl $4, %ecx + 0x09, 0xd1, //0x00001632 orl %edx, %ecx + 0x89, 0xca, //0x00001634 movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x00001636 shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x00001639 andl $65280, %edx + 0x89, 0xce, //0x0000163f movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00001641 andl $128, %esi + 0x09, 0xd6, //0x00001647 orl %edx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00001649 je LBB1_273 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x0000164f movl $255, %ecx + //0x00001654 LBB1_273 + 0x48, 0x83, 0xc0, 0x06, //0x00001654 addq $6, %rax + 0x49, 0x89, 0xc1, //0x00001658 movq %rax, %r9 + //0x0000165b LBB1_274 + 0x80, 0xf9, 0x0a, //0x0000165b cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x0000165e je LBB1_277 + 0x80, 0xf9, 0x0d, //0x00001664 cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00001667 je LBB1_277 + 0x80, 0xf9, 0x3d, //0x0000166d cmpb $61, %cl + 0xe9, 0xa0, 0xfc, 0xff, 0xff, //0x00001670 jmp LBB1_212 + //0x00001675 LBB1_278 + 0x49, 0x89, 0xc9, //0x00001675 movq %rcx, %r9 + 0xe9, 0x98, 0xfc, 0xff, 0xff, //0x00001678 jmp LBB1_212 + //0x0000167d LBB1_279 + 0x4c, 0x89, 0xc8, //0x0000167d movq %r9, %rax + //0x00001680 LBB1_258 + 0x49, 0x89, 0xc1, //0x00001680 movq %rax, %r9 + 0xe9, 0x8d, 0xfc, 0xff, 0xff, //0x00001683 jmp LBB1_212 + //0x00001688 LBB1_282 + 0x31, 0xc0, //0x00001688 xorl %eax, %eax + 0xe9, 0x39, 0x33, 0x00, 0x00, //0x0000168a jmp LBB1_1139 + //0x0000168f LBB1_283 + 0x48, 0x8b, 0x45, 0x90, //0x0000168f movq $-112(%rbp), %rax + 0x4c, 0x8d, 0x60, 0xe0, //0x00001693 leaq $-32(%rax), %r12 + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00001697 movq $-136(%rbp), %rax + 0x49, 0x39, 0xc4, //0x0000169e cmpq %rax, %r12 + 0x0f, 0x82, 0xad, 0x22, 0x00, 0x00, //0x000016a1 jb LBB1_854 + 0x4c, 0x8d, 0x53, 0xe0, //0x000016a7 leaq $-32(%rbx), %r10 + 0x48, 0x89, 0x45, 0xb0, //0x000016ab movq %rax, $-80(%rbp) + 0x48, 0x8b, 0x45, 0xa8, //0x000016af movq $-88(%rbp), %rax + 0x49, 0x89, 0xc7, //0x000016b3 movq %rax, %r15 + 0x49, 0x39, 0xc2, //0x000016b6 cmpq %rax, %r10 + 0x0f, 0x82, 0xf9, 0xee, 0xff, 0xff, //0x000016b9 jb LBB1_2 + 0xc4, 0xc1, 0x7e, 0x6f, 0x41, 0x20, //0x000016bf vmovdqu $32(%r9), %ymm0 + 0x4c, 0x8b, 0x6d, 0xa8, //0x000016c5 movq $-88(%rbp), %r13 + 0x48, 0x8b, 0x45, 0x88, //0x000016c9 movq $-120(%rbp), %rax + 0x4a, 0x8d, 0x4c, 0x28, 0xfe, //0x000016cd leaq $-2(%rax,%r13), %rcx + 0x48, 0x89, 0x4d, 0xa0, //0x000016d2 movq %rcx, $-96(%rbp) + 0x4a, 0x8d, 0x44, 0x28, 0xfd, //0x000016d6 leaq $-3(%rax,%r13), %rax + 0x48, 0x89, 0x45, 0x80, //0x000016db movq %rax, $-128(%rbp) + 0xc5, 0xfd, 0x6f, 0x0d, 0x79, 0xed, 0xff, 0xff, //0x000016df vmovdqa $-4743(%rip), %ymm1 /* LCPI1_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x91, 0xed, 0xff, 0xff, //0x000016e7 vmovdqa $-4719(%rip), %ymm2 /* LCPI1_1+0(%rip) */ + 0xc5, 0xe1, 0xef, 0xdb, //0x000016ef vpxor %xmm3, %xmm3, %xmm3 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000016f3 movabsq $-4294967296, %r8 + 0xc5, 0x7d, 0x6f, 0x2d, 0x9b, 0xed, 0xff, 0xff, //0x000016fd vmovdqa $-4709(%rip), %ymm13 /* LCPI1_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xb3, 0xed, 0xff, 0xff, //0x00001705 vmovdqa $-4685(%rip), %ymm5 /* LCPI1_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xcb, 0xed, 0xff, 0xff, //0x0000170d vmovdqa $-4661(%rip), %ymm6 /* LCPI1_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0x03, 0xee, 0xff, 0xff, //0x00001715 vmovdqa $-4605(%rip), %xmm7 /* LCPI1_5+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0xdb, 0xed, 0xff, 0xff, //0x0000171d vmovdqa $-4645(%rip), %ymm8 /* LCPI1_6+0(%rip) */ + 0x48, 0x8b, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00001725 movq $-136(%rbp), %rax + 0x48, 0x89, 0x45, 0xb0, //0x0000172c movq %rax, $-80(%rbp) + 0x4d, 0x89, 0xef, //0x00001730 movq %r13, %r15 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00001733 jmp LBB1_286 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001738 .p2align 4, 0x90 + //0x00001740 LBB1_295 + 0xc4, 0x41, 0x35, 0x74, 0x59, 0x40, //0x00001740 vpcmpeqb $64(%r9), %ymm9, %ymm11 + 0xc4, 0x41, 0x7e, 0x6f, 0x21, //0x00001746 vmovdqu (%r9), %ymm12 + 0xc4, 0x42, 0x1d, 0x00, 0xd2, //0x0000174b vpshufb %ymm10, %ymm12, %ymm10 + 0xc4, 0x43, 0x2d, 0x4c, 0x51, 0x60, 0xb0, //0x00001750 vpblendvb %ymm11, $96(%r9), %ymm10, %ymm10 + 0xc4, 0x41, 0x2d, 0xfc, 0xc9, //0x00001757 vpaddb %ymm9, %ymm10, %ymm9 + 0xc4, 0x41, 0x35, 0xdb, 0xcd, //0x0000175c vpand %ymm13, %ymm9, %ymm9 + 0xc4, 0x62, 0x35, 0x04, 0xcd, //0x00001761 vpmaddubsw %ymm5, %ymm9, %ymm9 + 0xc5, 0x35, 0xf5, 0xce, //0x00001766 vpmaddwd %ymm6, %ymm9, %ymm9 + 0xc4, 0x63, 0x7d, 0x39, 0xcc, 0x01, //0x0000176a vextracti128 $1, %ymm9, %xmm4 + 0xc4, 0xe2, 0x59, 0x00, 0xe7, //0x00001770 vpshufb %xmm7, %xmm4, %xmm4 + 0xc4, 0x42, 0x35, 0x00, 0xc8, //0x00001775 vpshufb %ymm8, %ymm9, %ymm9 + 0xc4, 0xe3, 0x35, 0x02, 0xe4, 0x08, //0x0000177a vpblendd $8, %ymm4, %ymm9, %ymm4 + 0xc4, 0xe3, 0x5d, 0x02, 0xe3, 0xc0, //0x00001780 vpblendd $192, %ymm3, %ymm4, %ymm4 + 0x48, 0x8b, 0x4d, 0xb0, //0x00001786 movq $-80(%rbp), %rcx + 0xc5, 0xfe, 0x7f, 0x21, //0x0000178a vmovdqu %ymm4, (%rcx) + 0x49, 0x83, 0xc7, 0x20, //0x0000178e addq $32, %r15 + 0x48, 0x83, 0xc1, 0x18, //0x00001792 addq $24, %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00001796 movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x0000179a cmpq %rcx, %r12 + 0x0f, 0x82, 0x15, 0xee, 0xff, 0xff, //0x0000179d jb LBB1_2 + //0x000017a3 LBB1_506 + 0x4d, 0x89, 0xfd, //0x000017a3 movq %r15, %r13 + 0x4d, 0x39, 0xfa, //0x000017a6 cmpq %r15, %r10 + 0x0f, 0x82, 0x09, 0xee, 0xff, 0xff, //0x000017a9 jb LBB1_2 + //0x000017af LBB1_286 + 0xc4, 0x41, 0x7e, 0x6f, 0x4d, 0x00, //0x000017af vmovdqu (%r13), %ymm9 + 0xc4, 0xc1, 0x2d, 0x72, 0xd1, 0x04, //0x000017b5 vpsrld $4, %ymm9, %ymm10 + 0xc5, 0x2d, 0xdb, 0xd1, //0x000017bb vpand %ymm1, %ymm10, %ymm10 + 0xc5, 0x35, 0xdb, 0xd9, //0x000017bf vpand %ymm1, %ymm9, %ymm11 + 0xc4, 0x42, 0x7d, 0x00, 0xdb, //0x000017c3 vpshufb %ymm11, %ymm0, %ymm11 + 0xc4, 0x42, 0x6d, 0x00, 0xe2, //0x000017c8 vpshufb %ymm10, %ymm2, %ymm12 + 0xc4, 0x41, 0x1d, 0xdb, 0xdb, //0x000017cd vpand %ymm11, %ymm12, %ymm11 + 0xc5, 0x25, 0x74, 0xdb, //0x000017d2 vpcmpeqb %ymm3, %ymm11, %ymm11 + 0xc4, 0xc1, 0x7d, 0xd7, 0xc3, //0x000017d6 vpmovmskb %ymm11, %eax + 0x4c, 0x09, 0xc0, //0x000017db orq %r8, %rax + 0x48, 0x0f, 0xbc, 0xc0, //0x000017de bsfq %rax, %rax + 0x83, 0xf8, 0x1f, //0x000017e2 cmpl $31, %eax + 0x0f, 0x87, 0x55, 0xff, 0xff, 0xff, //0x000017e5 ja LBB1_295 + 0x4c, 0x39, 0xfb, //0x000017eb cmpq %r15, %rbx + 0x0f, 0x86, 0x3c, 0x02, 0x00, 0x00, //0x000017ee jbe LBB1_320 + 0xf6, 0x45, 0xbc, 0x08, //0x000017f4 testb $8, $-68(%rbp) + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000017f8 je LBB1_291 + 0x4c, 0x89, 0xf8, //0x000017fe movq %r15, %rax + 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x00001801 jmp LBB1_303 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001806 .p2align 4, 0x90 + //0x00001810 LBB1_290 + 0x49, 0xff, 0xc7, //0x00001810 incq %r15 + 0x49, 0x39, 0xdf, //0x00001813 cmpq %rbx, %r15 + 0x0f, 0x83, 0x00, 0x02, 0x00, 0x00, //0x00001816 jae LBB1_318 + //0x0000181c LBB1_291 + 0x45, 0x0f, 0xb6, 0x37, //0x0000181c movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001820 cmpq $13, %r14 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00001824 je LBB1_290 + 0x41, 0x80, 0xfe, 0x0a, //0x0000182a cmpb $10, %r14b + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000182e je LBB1_290 + 0x48, 0x8b, 0x45, 0xc0, //0x00001834 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001838 movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x0000183d incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001840 cmpl $255, %eax + 0x0f, 0x84, 0xb0, 0x02, 0x00, 0x00, //0x00001845 je LBB1_333 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000184b movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00001851 cmpq %rbx, %r15 + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001854 jb LBB1_297 + 0xe9, 0x4e, 0x0c, 0x00, 0x00, //0x0000185a jmp LBB1_492 + 0x90, //0x0000185f .p2align 4, 0x90 + //0x00001860 LBB1_296 + 0x49, 0xff, 0xc7, //0x00001860 incq %r15 + 0x49, 0x39, 0xdf, //0x00001863 cmpq %rbx, %r15 + 0x0f, 0x83, 0x90, 0x04, 0x00, 0x00, //0x00001866 jae LBB1_364 + //0x0000186c LBB1_297 + 0x45, 0x0f, 0xb6, 0x37, //0x0000186c movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001870 cmpq $13, %r14 + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00001874 je LBB1_296 + 0x41, 0x80, 0xfe, 0x0a, //0x0000187a cmpb $10, %r14b + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000187e je LBB1_296 + 0x89, 0x45, 0xc8, //0x00001884 movl %eax, $-56(%rbp) + 0x48, 0x8b, 0x45, 0xc0, //0x00001887 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x0000188b movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x00001890 incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001893 cmpl $255, %eax + 0x0f, 0x84, 0xe0, 0x06, 0x00, 0x00, //0x00001898 je LBB1_422 + 0x8b, 0x4d, 0xc8, //0x0000189e movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000018a1 shll $6, %ecx + 0x09, 0xc1, //0x000018a4 orl %eax, %ecx + 0x89, 0xc8, //0x000018a6 movl %ecx, %eax + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000018a8 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x000018ae cmpq %rbx, %r15 + 0x0f, 0x82, 0xab, 0x01, 0x00, 0x00, //0x000018b1 jb LBB1_322 + 0xe9, 0xf1, 0x0b, 0x00, 0x00, //0x000018b7 jmp LBB1_492 + //0x000018bc LBB1_301 + 0x80, 0xfa, 0x6e, //0x000018bc cmpb $110, %dl + 0x0f, 0x85, 0xf5, 0x01, 0x00, 0x00, //0x000018bf jne LBB1_327 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018c5 .p2align 4, 0x90 + //0x000018d0 LBB1_302 + 0x4c, 0x89, 0xf8, //0x000018d0 movq %r15, %rax + 0x49, 0x39, 0xdf, //0x000018d3 cmpq %rbx, %r15 + 0x0f, 0x83, 0x40, 0x01, 0x00, 0x00, //0x000018d6 jae LBB1_318 + //0x000018dc LBB1_303 + 0x48, 0x8d, 0x50, 0x01, //0x000018dc leaq $1(%rax), %rdx + 0x44, 0x0f, 0xb6, 0x30, //0x000018e0 movzbl (%rax), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x000018e4 cmpb $92, %r14b + 0x0f, 0x85, 0x12, 0x01, 0x00, 0x00, //0x000018e8 jne LBB1_316 + 0x4c, 0x8d, 0x78, 0x02, //0x000018ee leaq $2(%rax), %r15 + 0x41, 0xb6, 0xff, //0x000018f2 movb $-1, %r14b + 0x49, 0x39, 0xdf, //0x000018f5 cmpq %rbx, %r15 + 0x0f, 0x87, 0xb4, 0x01, 0x00, 0x00, //0x000018f8 ja LBB1_326 + 0x0f, 0xb6, 0x12, //0x000018fe movzbl (%rdx), %edx + 0x80, 0xfa, 0x71, //0x00001901 cmpb $113, %dl + 0x0f, 0x8e, 0xb2, 0xff, 0xff, 0xff, //0x00001904 jle LBB1_301 + 0x80, 0xfa, 0x72, //0x0000190a cmpb $114, %dl + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x0000190d je LBB1_302 + 0x80, 0xfa, 0x75, //0x00001913 cmpb $117, %dl + 0x0f, 0x85, 0xaa, 0x01, 0x00, 0x00, //0x00001916 jne LBB1_329 + 0x48, 0x8b, 0x4d, 0xd0, //0x0000191c movq $-48(%rbp), %rcx + 0x4c, 0x29, 0xf9, //0x00001920 subq %r15, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00001923 cmpq $4, %rcx + 0x0f, 0x8c, 0x99, 0x01, 0x00, 0x00, //0x00001927 jl LBB1_329 + 0x41, 0x8b, 0x1f, //0x0000192d movl (%r15), %ebx + 0x89, 0xdf, //0x00001930 movl %ebx, %edi + 0xf7, 0xd7, //0x00001932 notl %edi + 0x8d, 0x8b, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001934 leal $-808464432(%rbx), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000193a andl $-2139062144, %edi + 0x85, 0xcf, //0x00001940 testl %ecx, %edi + 0x0f, 0x85, 0x7e, 0x01, 0x00, 0x00, //0x00001942 jne LBB1_329 + 0x8d, 0x8b, 0x19, 0x19, 0x19, 0x19, //0x00001948 leal $421075225(%rbx), %ecx + 0x09, 0xd9, //0x0000194e orl %ebx, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001950 testl $-2139062144, %ecx + 0x0f, 0x85, 0x6a, 0x01, 0x00, 0x00, //0x00001956 jne LBB1_329 + 0x89, 0xda, //0x0000195c movl %ebx, %edx + 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000195e andl $2139062143, %edx + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001964 movl $-1061109568, %ecx + 0x29, 0xd1, //0x00001969 subl %edx, %ecx + 0x8d, 0xb2, 0x46, 0x46, 0x46, 0x46, //0x0000196b leal $1179010630(%rdx), %esi + 0x21, 0xf9, //0x00001971 andl %edi, %ecx + 0x85, 0xf1, //0x00001973 testl %esi, %ecx + 0x0f, 0x85, 0x4b, 0x01, 0x00, 0x00, //0x00001975 jne LBB1_329 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000197b movl $-522133280, %ecx + 0x29, 0xd1, //0x00001980 subl %edx, %ecx + 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00001982 addl $960051513, %edx + 0x21, 0xcf, //0x00001988 andl %ecx, %edi + 0x85, 0xd7, //0x0000198a testl %edx, %edi + 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x0000198c jne LBB1_329 + 0x0f, 0xcb, //0x00001992 bswapl %ebx + 0x89, 0xd9, //0x00001994 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00001996 shrl $4, %ecx + 0xf7, 0xd1, //0x00001999 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000199b andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000019a1 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x000019a4 andl $252645135, %ebx + 0x01, 0xcb, //0x000019aa addl %ecx, %ebx + 0x41, 0x89, 0xde, //0x000019ac movl %ebx, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x000019af shrl $4, %r14d + 0x41, 0x09, 0xde, //0x000019b3 orl %ebx, %r14d + 0x44, 0x89, 0xf1, //0x000019b6 movl %r14d, %ecx + 0xc1, 0xe9, 0x08, //0x000019b9 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000019bc andl $65280, %ecx + 0x44, 0x89, 0xf2, //0x000019c2 movl %r14d, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000019c5 andl $128, %edx + 0x09, 0xca, //0x000019cb orl %ecx, %edx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000019cd je LBB1_315 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x000019d3 movl $255, %r14d + //0x000019d9 LBB1_315 + 0x48, 0x83, 0xc0, 0x06, //0x000019d9 addq $6, %rax + 0x49, 0x89, 0xc7, //0x000019dd movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000019e0 movq $-48(%rbp), %rbx + 0x41, 0x80, 0xfe, 0x0d, //0x000019e4 cmpb $13, %r14b + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x000019e8 jne LBB1_317 + 0xe9, 0xdd, 0xfe, 0xff, 0xff, //0x000019ee jmp LBB1_302 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000019f3 .p2align 4, 0x90 + //0x00001a00 LBB1_316 + 0x49, 0x89, 0xd7, //0x00001a00 movq %rdx, %r15 + 0x41, 0x80, 0xfe, 0x0d, //0x00001a03 cmpb $13, %r14b + 0x0f, 0x84, 0xc3, 0xfe, 0xff, 0xff, //0x00001a07 je LBB1_302 + //0x00001a0d LBB1_317 + 0x41, 0x80, 0xfe, 0x0a, //0x00001a0d cmpb $10, %r14b + 0x0f, 0x84, 0xb9, 0xfe, 0xff, 0xff, //0x00001a11 je LBB1_302 + 0xe9, 0xae, 0x00, 0x00, 0x00, //0x00001a17 jmp LBB1_330 + //0x00001a1c LBB1_318 + 0x31, 0xc0, //0x00001a1c xorl %eax, %eax + 0x45, 0x31, 0xdb, //0x00001a1e xorl %r11d, %r11d + //0x00001a21 LBB1_319 + 0x45, 0x85, 0xdb, //0x00001a21 testl %r11d, %r11d + 0x0f, 0x85, 0x83, 0x0a, 0x00, 0x00, //0x00001a24 jne LBB1_492 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a2a .p2align 4, 0x90 + //0x00001a30 LBB1_320 + 0x48, 0x8b, 0x4d, 0xb0, //0x00001a30 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x00001a34 movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x00001a38 cmpq %rcx, %r12 + 0x0f, 0x83, 0x62, 0xfd, 0xff, 0xff, //0x00001a3b jae LBB1_506 + 0xe9, 0x72, 0xeb, 0xff, 0xff, //0x00001a41 jmp LBB1_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001a46 .p2align 4, 0x90 + //0x00001a50 LBB1_321 + 0x49, 0xff, 0xc7, //0x00001a50 incq %r15 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001a53 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00001a59 cmpq %rbx, %r15 + 0x0f, 0x83, 0xbf, 0xff, 0xff, 0xff, //0x00001a5c jae LBB1_319 + //0x00001a62 LBB1_322 + 0x45, 0x0f, 0xb6, 0x37, //0x00001a62 movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001a66 cmpq $13, %r14 + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001a6a je LBB1_321 + 0x41, 0x80, 0xfe, 0x0a, //0x00001a70 cmpb $10, %r14b + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00001a74 je LBB1_321 + 0x89, 0x45, 0xc8, //0x00001a7a movl %eax, $-56(%rbp) + 0x48, 0x8b, 0x45, 0xc0, //0x00001a7d movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001a81 movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x00001a86 incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001a89 cmpl $255, %eax + 0x0f, 0x84, 0x67, 0x09, 0x00, 0x00, //0x00001a8e je LBB1_458 + 0x8b, 0x4d, 0xc8, //0x00001a94 movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00001a97 shll $6, %ecx + 0x09, 0xc1, //0x00001a9a orl %eax, %ecx + 0x89, 0xc8, //0x00001a9c movl %ecx, %eax + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001a9e movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00001aa4 cmpq %rbx, %r15 + 0x0f, 0x82, 0xec, 0x03, 0x00, 0x00, //0x00001aa7 jb LBB1_387 + 0xe9, 0xfb, 0x09, 0x00, 0x00, //0x00001aad jmp LBB1_492 + //0x00001ab2 LBB1_326 + 0x49, 0x89, 0xd7, //0x00001ab2 movq %rdx, %r15 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001ab5 jmp LBB1_330 + //0x00001aba LBB1_327 + 0x80, 0xfa, 0x2f, //0x00001aba cmpb $47, %dl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x00001abd jne LBB1_329 + 0x41, 0x89, 0xd6, //0x00001ac3 movl %edx, %r14d + //0x00001ac6 LBB1_329 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001ac6 movq $-48(%rbp), %rbx + //0x00001aca LBB1_330 + 0x41, 0x0f, 0xb6, 0xc6, //0x00001aca movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x00001ace movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x00001ad2 movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001ad6 cmpl $255, %eax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00001adb je LBB1_333 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001ae1 movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00001ae7 cmpq %rbx, %r15 + 0x0f, 0x83, 0xbd, 0x09, 0x00, 0x00, //0x00001aea jae LBB1_492 + 0x89, 0x45, 0xc8, //0x00001af0 movl %eax, $-56(%rbp) + 0x4c, 0x89, 0xf8, //0x00001af3 movq %r15, %rax + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00001af6 jmp LBB1_349 + //0x00001afb LBB1_333 + 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00001afb movl $0, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x00001b02 xorl %r11d, %r11d + //0x00001b05 LBB1_334 + 0xf6, 0x45, 0xbc, 0x02, //0x00001b05 testb $2, $-68(%rbp) + 0x0f, 0x85, 0xca, 0x09, 0x00, 0x00, //0x00001b09 jne LBB1_495 + 0x41, 0x83, 0xfb, 0x02, //0x00001b0f cmpl $2, %r11d + 0x0f, 0x82, 0xc0, 0x09, 0x00, 0x00, //0x00001b13 jb LBB1_495 + 0x41, 0x80, 0xfe, 0x3d, //0x00001b19 cmpb $61, %r14b + 0x0f, 0x85, 0xb6, 0x09, 0x00, 0x00, //0x00001b1d jne LBB1_495 + 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00001b23 movl $5, %esi + 0x44, 0x29, 0xde, //0x00001b28 subl %r11d, %esi + 0xf6, 0x45, 0xbc, 0x08, //0x00001b2b testb $8, $-68(%rbp) + 0x0f, 0x85, 0xd2, 0x01, 0x00, 0x00, //0x00001b2f jne LBB1_365 + 0x4c, 0x39, 0x7d, 0xd0, //0x00001b35 cmpq %r15, $-48(%rbp) + 0x0f, 0x86, 0x74, 0x0b, 0x00, 0x00, //0x00001b39 jbe LBB1_499 + 0x49, 0x8d, 0x57, 0x03, //0x00001b3f leaq $3(%r15), %rdx + 0x48, 0x8b, 0x45, 0xa0, //0x00001b43 movq $-96(%rbp), %rax + 0x4c, 0x29, 0xf8, //0x00001b47 subq %r15, %rax + 0x49, 0x8d, 0x5f, 0x04, //0x00001b4a leaq $4(%r15), %rbx + 0x48, 0x8b, 0x7d, 0x80, //0x00001b4e movq $-128(%rbp), %rdi + 0x4c, 0x29, 0xff, //0x00001b52 subq %r15, %rdi + 0xe9, 0x1f, 0x00, 0x00, 0x00, //0x00001b55 jmp LBB1_341 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b5a .p2align 4, 0x90 + //0x00001b60 LBB1_340 + 0x49, 0xff, 0xc7, //0x00001b60 incq %r15 + 0x48, 0xff, 0xc2, //0x00001b63 incq %rdx + 0x48, 0xff, 0xc8, //0x00001b66 decq %rax + 0x48, 0xff, 0xc3, //0x00001b69 incq %rbx + 0x48, 0xff, 0xcf, //0x00001b6c decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00001b6f cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0x51, 0x05, 0x00, 0x00, //0x00001b73 je LBB1_498 + //0x00001b79 LBB1_341 + 0x41, 0x0f, 0xb6, 0x0f, //0x00001b79 movzbl (%r15), %ecx + 0x80, 0xf9, 0x0a, //0x00001b7d cmpb $10, %cl + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001b80 je LBB1_340 + 0x80, 0xf9, 0x0d, //0x00001b86 cmpb $13, %cl + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00001b89 je LBB1_340 + 0x80, 0xf9, 0x3d, //0x00001b8f cmpb $61, %cl + 0x0f, 0x85, 0x43, 0x05, 0x00, 0x00, //0x00001b92 jne LBB1_426 + 0x49, 0xff, 0xc7, //0x00001b98 incq %r15 + 0x83, 0xfe, 0x02, //0x00001b9b cmpl $2, %esi + 0x0f, 0x84, 0x35, 0x09, 0x00, 0x00, //0x00001b9e je LBB1_495 + 0x4c, 0x39, 0x7d, 0xd0, //0x00001ba4 cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0x41, 0x03, 0x00, 0x00, //0x00001ba8 ja LBB1_392 + 0xe9, 0x00, 0x0b, 0x00, 0x00, //0x00001bae jmp LBB1_499 + //0x00001bb3 LBB1_346 + 0x80, 0xfb, 0x6e, //0x00001bb3 cmpb $110, %bl + 0x0f, 0x85, 0x6d, 0x03, 0x00, 0x00, //0x00001bb6 jne LBB1_398 + //0x00001bbc LBB1_347 + 0x49, 0x89, 0xd7, //0x00001bbc movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001bbf movq $-48(%rbp), %rbx + //0x00001bc3 LBB1_348 + 0x4c, 0x89, 0xf8, //0x00001bc3 movq %r15, %rax + 0x49, 0x39, 0xdf, //0x00001bc6 cmpq %rbx, %r15 + 0x0f, 0x83, 0xaa, 0x02, 0x00, 0x00, //0x00001bc9 jae LBB1_385 + //0x00001bcf LBB1_349 + 0x4c, 0x8d, 0x78, 0x01, //0x00001bcf leaq $1(%rax), %r15 + 0x44, 0x0f, 0xb6, 0x30, //0x00001bd3 movzbl (%rax), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x00001bd7 cmpb $92, %r14b + 0x0f, 0x85, 0x02, 0x01, 0x00, 0x00, //0x00001bdb jne LBB1_362 + 0x48, 0x8d, 0x50, 0x02, //0x00001be1 leaq $2(%rax), %rdx + 0x41, 0xb6, 0xff, //0x00001be5 movb $-1, %r14b + 0x48, 0x39, 0xda, //0x00001be8 cmpq %rbx, %rdx + 0x0f, 0x87, 0x55, 0x03, 0x00, 0x00, //0x00001beb ja LBB1_401 + 0x41, 0x0f, 0xb6, 0x1f, //0x00001bf1 movzbl (%r15), %ebx + 0x80, 0xfb, 0x71, //0x00001bf5 cmpb $113, %bl + 0x0f, 0x8e, 0xb5, 0xff, 0xff, 0xff, //0x00001bf8 jle LBB1_346 + 0x80, 0xfb, 0x72, //0x00001bfe cmpb $114, %bl + 0x0f, 0x84, 0xb5, 0xff, 0xff, 0xff, //0x00001c01 je LBB1_347 + 0x80, 0xfb, 0x75, //0x00001c07 cmpb $117, %bl + 0x0f, 0x85, 0x25, 0x03, 0x00, 0x00, //0x00001c0a jne LBB1_400 + 0x48, 0x8b, 0x4d, 0xd0, //0x00001c10 movq $-48(%rbp), %rcx + 0x48, 0x29, 0xd1, //0x00001c14 subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00001c17 cmpq $4, %rcx + 0x0f, 0x8c, 0x14, 0x03, 0x00, 0x00, //0x00001c1b jl LBB1_400 + 0x8b, 0x32, //0x00001c21 movl (%rdx), %esi + 0x89, 0xf3, //0x00001c23 movl %esi, %ebx + 0xf7, 0xd3, //0x00001c25 notl %ebx + 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001c27 leal $-808464432(%rsi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00001c2d andl $-2139062144, %ebx + 0x85, 0xcb, //0x00001c33 testl %ecx, %ebx + 0x0f, 0x85, 0xfa, 0x02, 0x00, 0x00, //0x00001c35 jne LBB1_400 + 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x00001c3b leal $421075225(%rsi), %ecx + 0x09, 0xf1, //0x00001c41 orl %esi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001c43 testl $-2139062144, %ecx + 0x0f, 0x85, 0xe6, 0x02, 0x00, 0x00, //0x00001c49 jne LBB1_400 + 0x89, 0xf7, //0x00001c4f movl %esi, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001c51 andl $2139062143, %edi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001c57 movl $-1061109568, %ecx + 0x29, 0xf9, //0x00001c5c subl %edi, %ecx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00001c5e leal $1179010630(%rdi), %r8d + 0x21, 0xd9, //0x00001c65 andl %ebx, %ecx + 0x44, 0x85, 0xc1, //0x00001c67 testl %r8d, %ecx + 0x0f, 0x85, 0xc5, 0x02, 0x00, 0x00, //0x00001c6a jne LBB1_400 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001c70 movl $-522133280, %ecx + 0x29, 0xf9, //0x00001c75 subl %edi, %ecx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001c77 addl $960051513, %edi + 0x21, 0xcb, //0x00001c7d andl %ecx, %ebx + 0x85, 0xfb, //0x00001c7f testl %edi, %ebx + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x00001c81 jne LBB1_400 + 0x0f, 0xce, //0x00001c87 bswapl %esi + 0x89, 0xf1, //0x00001c89 movl %esi, %ecx + 0xc1, 0xe9, 0x04, //0x00001c8b shrl $4, %ecx + 0xf7, 0xd1, //0x00001c8e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001c90 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001c96 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001c99 andl $252645135, %esi + 0x01, 0xce, //0x00001c9f addl %ecx, %esi + 0x41, 0x89, 0xf6, //0x00001ca1 movl %esi, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x00001ca4 shrl $4, %r14d + 0x41, 0x09, 0xf6, //0x00001ca8 orl %esi, %r14d + 0x44, 0x89, 0xf1, //0x00001cab movl %r14d, %ecx + 0xc1, 0xe9, 0x08, //0x00001cae shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00001cb1 andl $65280, %ecx + 0x44, 0x89, 0xf2, //0x00001cb7 movl %r14d, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00001cba andl $128, %edx + 0x09, 0xca, //0x00001cc0 orl %ecx, %edx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001cc2 je LBB1_361 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x00001cc8 movl $255, %r14d + //0x00001cce LBB1_361 + 0x48, 0x83, 0xc0, 0x06, //0x00001cce addq $6, %rax + 0x49, 0x89, 0xc7, //0x00001cd2 movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001cd5 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001cd9 movabsq $-4294967296, %r8 + //0x00001ce3 LBB1_362 + 0x41, 0x80, 0xfe, 0x0a, //0x00001ce3 cmpb $10, %r14b + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00001ce7 je LBB1_348 + 0x41, 0x80, 0xfe, 0x0d, //0x00001ced cmpb $13, %r14b + 0x0f, 0x84, 0xcc, 0xfe, 0xff, 0xff, //0x00001cf1 je LBB1_348 + 0xe9, 0x4a, 0x02, 0x00, 0x00, //0x00001cf7 jmp LBB1_401 + //0x00001cfc LBB1_364 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001cfc movl $1, %r11d + 0xe9, 0x1a, 0xfd, 0xff, 0xff, //0x00001d02 jmp LBB1_319 + //0x00001d07 LBB1_365 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001d07 movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xfb, //0x00001d0b cmpq %r15, %rbx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00001d0e ja LBB1_368 + 0xe9, 0x9a, 0x09, 0x00, 0x00, //0x00001d14 jmp LBB1_499 + //0x00001d19 LBB1_384 + 0x49, 0x89, 0xd6, //0x00001d19 movq %rdx, %r14 + 0x4d, 0x89, 0xf7, //0x00001d1c movq %r14, %r15 + 0x49, 0x39, 0xde, //0x00001d1f cmpq %rbx, %r14 + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00001d22 jb LBB1_368 + 0xe9, 0x44, 0x01, 0x00, 0x00, //0x00001d28 jmp LBB1_425 + //0x00001d2d LBB1_366 + 0x4c, 0x89, 0xf2, //0x00001d2d movq %r14, %rdx + 0x4d, 0x89, 0xf7, //0x00001d30 movq %r14, %r15 + 0x49, 0x39, 0xde, //0x00001d33 cmpq %rbx, %r14 + 0x0f, 0x83, 0x35, 0x01, 0x00, 0x00, //0x00001d36 jae LBB1_425 + //0x00001d3c LBB1_368 + 0x49, 0x8d, 0x57, 0x01, //0x00001d3c leaq $1(%r15), %rdx + 0x41, 0x0f, 0xb6, 0x3f, //0x00001d40 movzbl (%r15), %edi + 0x40, 0x80, 0xff, 0x5c, //0x00001d44 cmpb $92, %dil + 0x0f, 0x85, 0xe9, 0x00, 0x00, 0x00, //0x00001d48 jne LBB1_381 + 0x4d, 0x8d, 0x77, 0x02, //0x00001d4e leaq $2(%r15), %r14 + 0x49, 0x39, 0xde, //0x00001d52 cmpq %rbx, %r14 + 0x0f, 0x87, 0xe2, 0x07, 0x00, 0x00, //0x00001d55 ja LBB1_459 + 0x0f, 0xb6, 0x02, //0x00001d5b movzbl (%rdx), %eax + 0x3c, 0x6e, //0x00001d5e cmpb $110, %al + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x00001d60 je LBB1_366 + 0x3c, 0x72, //0x00001d66 cmpb $114, %al + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x00001d68 je LBB1_366 + 0x3c, 0x75, //0x00001d6e cmpb $117, %al + 0x0f, 0x85, 0x7d, 0x06, 0x00, 0x00, //0x00001d70 jne LBB1_479 + 0x48, 0x89, 0xd8, //0x00001d76 movq %rbx, %rax + 0x4c, 0x29, 0xf0, //0x00001d79 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00001d7c cmpq $4, %rax + 0x0f, 0x8c, 0x6d, 0x06, 0x00, 0x00, //0x00001d80 jl LBB1_479 + 0x41, 0x8b, 0x06, //0x00001d86 movl (%r14), %eax + 0x89, 0xc2, //0x00001d89 movl %eax, %edx + 0xf7, 0xd2, //0x00001d8b notl %edx + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001d8d leal $-808464432(%rax), %ecx + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00001d93 andl $-2139062144, %edx + 0x85, 0xca, //0x00001d99 testl %ecx, %edx + 0x0f, 0x85, 0x52, 0x06, 0x00, 0x00, //0x00001d9b jne LBB1_479 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x00001da1 leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x00001da7 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00001da9 testl $-2139062144, %ecx + 0x0f, 0x85, 0x3e, 0x06, 0x00, 0x00, //0x00001daf jne LBB1_479 + 0x89, 0x75, 0x98, //0x00001db5 movl %esi, $-104(%rbp) + 0x89, 0xc7, //0x00001db8 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dba andl $2139062143, %edi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dc0 movl $-1061109568, %ecx + 0x29, 0xf9, //0x00001dc5 subl %edi, %ecx + 0x8d, 0xb7, 0x46, 0x46, 0x46, 0x46, //0x00001dc7 leal $1179010630(%rdi), %esi + 0x21, 0xd1, //0x00001dcd andl %edx, %ecx + 0x85, 0xf1, //0x00001dcf testl %esi, %ecx + 0x0f, 0x85, 0x1c, 0x06, 0x00, 0x00, //0x00001dd1 jne LBB1_479 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001dd7 movl $-522133280, %ecx + 0x29, 0xf9, //0x00001ddc subl %edi, %ecx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00001dde addl $960051513, %edi + 0x21, 0xca, //0x00001de4 andl %ecx, %edx + 0x85, 0xfa, //0x00001de6 testl %edi, %edx + 0x0f, 0x85, 0x05, 0x06, 0x00, 0x00, //0x00001de8 jne LBB1_479 + 0x0f, 0xc8, //0x00001dee bswapl %eax + 0x89, 0xc1, //0x00001df0 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001df2 shrl $4, %ecx + 0xf7, 0xd1, //0x00001df5 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001df7 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001dfd leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e00 andl $252645135, %eax + 0x01, 0xc8, //0x00001e05 addl %ecx, %eax + 0x89, 0xc7, //0x00001e07 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00001e09 shrl $4, %edi + 0x09, 0xc7, //0x00001e0c orl %eax, %edi + 0x89, 0xf8, //0x00001e0e movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x00001e10 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e13 andl $65280, %eax + 0x89, 0xf9, //0x00001e18 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00001e1a andl $128, %ecx + 0x09, 0xc1, //0x00001e20 orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00001e22 je LBB1_380 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00001e28 movl $255, %edi + //0x00001e2d LBB1_380 + 0x49, 0x83, 0xc7, 0x06, //0x00001e2d addq $6, %r15 + 0x4c, 0x89, 0xfa, //0x00001e31 movq %r15, %rdx + 0x8b, 0x75, 0x98, //0x00001e34 movl $-104(%rbp), %esi + //0x00001e37 LBB1_381 + 0x40, 0x80, 0xff, 0x0a, //0x00001e37 cmpb $10, %dil + 0x0f, 0x84, 0xd8, 0xfe, 0xff, 0xff, //0x00001e3b je LBB1_384 + 0x40, 0x80, 0xff, 0x0d, //0x00001e41 cmpb $13, %dil + 0x0f, 0x84, 0xce, 0xfe, 0xff, 0xff, //0x00001e45 je LBB1_384 + 0x40, 0x80, 0xff, 0x3d, //0x00001e4b cmpb $61, %dil + 0x0f, 0x85, 0xe8, 0x06, 0x00, 0x00, //0x00001e4f jne LBB1_459 + 0x49, 0x89, 0xd7, //0x00001e55 movq %rdx, %r15 + 0x83, 0xfe, 0x02, //0x00001e58 cmpl $2, %esi + 0x0f, 0x84, 0x78, 0x06, 0x00, 0x00, //0x00001e5b je LBB1_495 + 0x89, 0x75, 0x98, //0x00001e61 movl %esi, $-104(%rbp) + 0x48, 0x8b, 0x75, 0xd0, //0x00001e64 movq $-48(%rbp), %rsi + 0x48, 0x39, 0xd6, //0x00001e68 cmpq %rdx, %rsi + 0x0f, 0x87, 0x48, 0x04, 0x00, 0x00, //0x00001e6b ja LBB1_462 + //0x00001e71 LBB1_425 + 0x49, 0x89, 0xd7, //0x00001e71 movq %rdx, %r15 + 0xe9, 0x3a, 0x08, 0x00, 0x00, //0x00001e74 jmp LBB1_499 + //0x00001e79 LBB1_385 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001e79 movl $1, %r11d + 0x8b, 0x45, 0xc8, //0x00001e7f movl $-56(%rbp), %eax + 0xe9, 0x9a, 0xfb, 0xff, 0xff, //0x00001e82 jmp LBB1_319 + //0x00001e87 LBB1_386 + 0x49, 0xff, 0xc7, //0x00001e87 incq %r15 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001e8a movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00001e90 cmpq %rbx, %r15 + 0x0f, 0x83, 0x88, 0xfb, 0xff, 0xff, //0x00001e93 jae LBB1_319 + //0x00001e99 LBB1_387 + 0x45, 0x0f, 0xb6, 0x37, //0x00001e99 movzbl (%r15), %r14d + 0x49, 0x83, 0xfe, 0x0d, //0x00001e9d cmpq $13, %r14 + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00001ea1 je LBB1_386 + 0x41, 0x80, 0xfe, 0x0a, //0x00001ea7 cmpb $10, %r14b + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x00001eab je LBB1_386 + 0x89, 0x45, 0xc8, //0x00001eb1 movl %eax, $-56(%rbp) + 0x48, 0x8b, 0x45, 0xc0, //0x00001eb4 movq $-64(%rbp), %rax + 0x42, 0x0f, 0xb6, 0x04, 0x30, //0x00001eb8 movzbl (%rax,%r14), %eax + 0x49, 0xff, 0xc7, //0x00001ebd incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001ec0 cmpl $255, %eax + 0x0f, 0x85, 0xd2, 0x05, 0x00, 0x00, //0x00001ec5 jne LBB1_491 + //0x00001ecb LBB1_497 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00001ecb movl $3, %r11d + 0xe9, 0x2f, 0xfc, 0xff, 0xff, //0x00001ed1 jmp LBB1_334 + //0x00001ed6 LBB1_391 + 0x49, 0xff, 0xc7, //0x00001ed6 incq %r15 + 0x48, 0xff, 0xc2, //0x00001ed9 incq %rdx + 0x48, 0xff, 0xc8, //0x00001edc decq %rax + 0x48, 0xff, 0xc3, //0x00001edf incq %rbx + 0x48, 0xff, 0xcf, //0x00001ee2 decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00001ee5 cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0xdb, 0x01, 0x00, 0x00, //0x00001ee9 je LBB1_498 + //0x00001eef LBB1_392 + 0x41, 0x0f, 0xb6, 0x0f, //0x00001eef movzbl (%r15), %ecx + 0x80, 0xf9, 0x0a, //0x00001ef3 cmpb $10, %cl + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00001ef6 je LBB1_391 + 0x80, 0xf9, 0x0d, //0x00001efc cmpb $13, %cl + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00001eff je LBB1_391 + 0x80, 0xf9, 0x3d, //0x00001f05 cmpb $61, %cl + 0x0f, 0x85, 0xcd, 0x01, 0x00, 0x00, //0x00001f08 jne LBB1_426 + 0x49, 0xff, 0xc7, //0x00001f0e incq %r15 + 0x83, 0xfe, 0x03, //0x00001f11 cmpl $3, %esi + 0x0f, 0x84, 0xbf, 0x05, 0x00, 0x00, //0x00001f14 je LBB1_495 + 0x4c, 0x39, 0x7d, 0xd0, //0x00001f1a cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0xf4, 0x04, 0x00, 0x00, //0x00001f1e ja LBB1_481 + 0xe9, 0x8a, 0x07, 0x00, 0x00, //0x00001f24 jmp LBB1_499 + //0x00001f29 LBB1_398 + 0x80, 0xfb, 0x2f, //0x00001f29 cmpb $47, %bl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x00001f2c jne LBB1_400 + 0x41, 0x89, 0xde, //0x00001f32 movl %ebx, %r14d + //0x00001f35 LBB1_400 + 0x49, 0x89, 0xd7, //0x00001f35 movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00001f38 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00001f3c movabsq $-4294967296, %r8 + //0x00001f46 LBB1_401 + 0x41, 0x0f, 0xb6, 0xc6, //0x00001f46 movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x00001f4a movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x00001f4e movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00001f52 cmpl $255, %eax + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00001f57 je LBB1_422 + 0x8b, 0x4d, 0xc8, //0x00001f5d movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00001f60 shll $6, %ecx + 0x09, 0xc1, //0x00001f63 orl %eax, %ecx + 0x89, 0xc8, //0x00001f65 movl %ecx, %eax + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001f67 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00001f6d cmpq %rbx, %r15 + 0x0f, 0x83, 0x37, 0x05, 0x00, 0x00, //0x00001f70 jae LBB1_492 + 0x89, 0x45, 0xc8, //0x00001f76 movl %eax, $-56(%rbp) + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00001f79 jmp LBB1_407 + //0x00001f7e LBB1_422 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00001f7e movl $1, %r11d + 0xe9, 0x7c, 0xfb, 0xff, 0xff, //0x00001f84 jmp LBB1_334 + //0x00001f89 LBB1_404 + 0x80, 0xfa, 0x6e, //0x00001f89 cmpb $110, %dl + 0x0f, 0x85, 0x54, 0x01, 0x00, 0x00, //0x00001f8c jne LBB1_432 + //0x00001f92 LBB1_405 + 0x48, 0x89, 0xc2, //0x00001f92 movq %rax, %rdx + 0x8b, 0x45, 0xc8, //0x00001f95 movl $-56(%rbp), %eax + //0x00001f98 LBB1_406 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00001f98 movl $2, %r11d + 0x49, 0x89, 0xd7, //0x00001f9e movq %rdx, %r15 + 0x48, 0x39, 0xda, //0x00001fa1 cmpq %rbx, %rdx + 0x0f, 0x83, 0x29, 0x01, 0x00, 0x00, //0x00001fa4 jae LBB1_424 + //0x00001faa LBB1_407 + 0x49, 0x8d, 0x57, 0x01, //0x00001faa leaq $1(%r15), %rdx + 0x45, 0x0f, 0xb6, 0x37, //0x00001fae movzbl (%r15), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x00001fb2 cmpb $92, %r14b + 0x0f, 0x85, 0xf5, 0x00, 0x00, 0x00, //0x00001fb6 jne LBB1_420 + 0x49, 0x8d, 0x47, 0x02, //0x00001fbc leaq $2(%r15), %rax + 0x41, 0xb6, 0xff, //0x00001fc0 movb $-1, %r14b + 0x48, 0x39, 0xd8, //0x00001fc3 cmpq %rbx, %rax + 0x0f, 0x87, 0x29, 0x01, 0x00, 0x00, //0x00001fc6 ja LBB1_435 + 0x0f, 0xb6, 0x12, //0x00001fcc movzbl (%rdx), %edx + 0x80, 0xfa, 0x71, //0x00001fcf cmpb $113, %dl + 0x0f, 0x8e, 0xb1, 0xff, 0xff, 0xff, //0x00001fd2 jle LBB1_404 + 0x80, 0xfa, 0x72, //0x00001fd8 cmpb $114, %dl + 0x0f, 0x84, 0xb1, 0xff, 0xff, 0xff, //0x00001fdb je LBB1_405 + 0x80, 0xfa, 0x75, //0x00001fe1 cmpb $117, %dl + 0x0f, 0x85, 0x08, 0x01, 0x00, 0x00, //0x00001fe4 jne LBB1_434 + 0x48, 0x89, 0xd9, //0x00001fea movq %rbx, %rcx + 0x48, 0x29, 0xc1, //0x00001fed subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00001ff0 cmpq $4, %rcx + 0x0f, 0x8c, 0xf8, 0x00, 0x00, 0x00, //0x00001ff4 jl LBB1_434 + 0x8b, 0x10, //0x00001ffa movl (%rax), %edx + 0x89, 0xd7, //0x00001ffc movl %edx, %edi + 0xf7, 0xd7, //0x00001ffe notl %edi + 0x8d, 0x8a, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002000 leal $-808464432(%rdx), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00002006 andl $-2139062144, %edi + 0x85, 0xcf, //0x0000200c testl %ecx, %edi + 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x0000200e jne LBB1_434 + 0x8d, 0x8a, 0x19, 0x19, 0x19, 0x19, //0x00002014 leal $421075225(%rdx), %ecx + 0x09, 0xd1, //0x0000201a orl %edx, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000201c testl $-2139062144, %ecx + 0x0f, 0x85, 0xca, 0x00, 0x00, 0x00, //0x00002022 jne LBB1_434 + 0x89, 0xd6, //0x00002028 movl %edx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000202a andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002030 movl $-1061109568, %ecx + 0x29, 0xf1, //0x00002035 subl %esi, %ecx + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002037 leal $1179010630(%rsi), %ebx + 0x21, 0xf9, //0x0000203d andl %edi, %ecx + 0x85, 0xd9, //0x0000203f testl %ebx, %ecx + 0x48, 0x8b, 0x5d, 0xd0, //0x00002041 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00002045 jne LBB1_434 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000204b movl $-522133280, %ecx + 0x29, 0xf1, //0x00002050 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002052 addl $960051513, %esi + 0x21, 0xcf, //0x00002058 andl %ecx, %edi + 0x85, 0xf7, //0x0000205a testl %esi, %edi + 0x0f, 0x85, 0x90, 0x00, 0x00, 0x00, //0x0000205c jne LBB1_434 + 0x0f, 0xca, //0x00002062 bswapl %edx + 0x89, 0xd0, //0x00002064 movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x00002066 shrl $4, %eax + 0xf7, 0xd0, //0x00002069 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000206b andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00002070 leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002073 andl $252645135, %edx + 0x01, 0xc2, //0x00002079 addl %eax, %edx + 0x41, 0x89, 0xd6, //0x0000207b movl %edx, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x0000207e shrl $4, %r14d + 0x41, 0x09, 0xd6, //0x00002082 orl %edx, %r14d + 0x44, 0x89, 0xf0, //0x00002085 movl %r14d, %eax + 0xc1, 0xe8, 0x08, //0x00002088 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000208b andl $65280, %eax + 0x44, 0x89, 0xf1, //0x00002090 movl %r14d, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002093 andl $128, %ecx + 0x09, 0xc1, //0x00002099 orl %eax, %ecx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000209b je LBB1_419 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x000020a1 movl $255, %r14d + //0x000020a7 LBB1_419 + 0x49, 0x83, 0xc7, 0x06, //0x000020a7 addq $6, %r15 + 0x4c, 0x89, 0xfa, //0x000020ab movq %r15, %rdx + 0x8b, 0x45, 0xc8, //0x000020ae movl $-56(%rbp), %eax + //0x000020b1 LBB1_420 + 0x41, 0x80, 0xfe, 0x0a, //0x000020b1 cmpb $10, %r14b + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x000020b5 je LBB1_406 + 0x41, 0x80, 0xfe, 0x0d, //0x000020bb cmpb $13, %r14b + 0x0f, 0x84, 0xd3, 0xfe, 0xff, 0xff, //0x000020bf je LBB1_406 + 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000020c5 jmp LBB1_435 + //0x000020ca LBB1_498 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000020ca movq $-48(%rbp), %r15 + 0xe9, 0xe0, 0x05, 0x00, 0x00, //0x000020ce jmp LBB1_499 + //0x000020d3 LBB1_424 + 0x49, 0x89, 0xd7, //0x000020d3 movq %rdx, %r15 + 0xe9, 0x46, 0xf9, 0xff, 0xff, //0x000020d6 jmp LBB1_319 + //0x000020db LBB1_426 + 0x49, 0xff, 0xc7, //0x000020db incq %r15 + 0x4c, 0x89, 0xfb, //0x000020de movq %r15, %rbx + 0xe9, 0xf3, 0x03, 0x00, 0x00, //0x000020e1 jmp LBB1_495 + //0x000020e6 LBB1_432 + 0x80, 0xfa, 0x2f, //0x000020e6 cmpb $47, %dl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x000020e9 jne LBB1_434 + 0x41, 0x89, 0xd6, //0x000020ef movl %edx, %r14d + //0x000020f2 LBB1_434 + 0x48, 0x89, 0xc2, //0x000020f2 movq %rax, %rdx + //0x000020f5 LBB1_435 + 0x41, 0x0f, 0xb6, 0xc6, //0x000020f5 movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x000020f9 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x000020fd movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002101 cmpl $255, %eax + 0x0f, 0x84, 0x74, 0x01, 0x00, 0x00, //0x00002106 je LBB1_456 + 0x8b, 0x4d, 0xc8, //0x0000210c movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x0000210f shll $6, %ecx + 0x09, 0xc1, //0x00002112 orl %eax, %ecx + 0x89, 0xc8, //0x00002114 movl %ecx, %eax + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002116 movl $3, %r11d + 0x48, 0x39, 0xda, //0x0000211c cmpq %rbx, %rdx + 0x0f, 0x83, 0x69, 0x01, 0x00, 0x00, //0x0000211f jae LBB1_457 + 0x89, 0x45, 0xc8, //0x00002125 movl %eax, $-56(%rbp) + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00002128 jmp LBB1_441 + //0x0000212d LBB1_438 + 0x80, 0xfb, 0x6e, //0x0000212d cmpb $110, %bl + 0x0f, 0x85, 0x33, 0x03, 0x00, 0x00, //0x00002130 jne LBB1_487 + //0x00002136 LBB1_439 + 0x49, 0x89, 0xc7, //0x00002136 movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002139 movq $-48(%rbp), %rbx + 0x8b, 0x45, 0xc8, //0x0000213d movl $-56(%rbp), %eax + //0x00002140 LBB1_440 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002140 movl $3, %r11d + 0x4c, 0x89, 0xfa, //0x00002146 movq %r15, %rdx + 0x49, 0x39, 0xdf, //0x00002149 cmpq %rbx, %r15 + 0x0f, 0x83, 0xcf, 0xf8, 0xff, 0xff, //0x0000214c jae LBB1_319 + //0x00002152 LBB1_441 + 0x4c, 0x8d, 0x7a, 0x01, //0x00002152 leaq $1(%rdx), %r15 + 0x44, 0x0f, 0xb6, 0x32, //0x00002156 movzbl (%rdx), %r14d + 0x41, 0x80, 0xfe, 0x5c, //0x0000215a cmpb $92, %r14b + 0x0f, 0x85, 0x03, 0x01, 0x00, 0x00, //0x0000215e jne LBB1_454 + 0x48, 0x8d, 0x42, 0x02, //0x00002164 leaq $2(%rdx), %rax + 0x41, 0xb6, 0xff, //0x00002168 movb $-1, %r14b + 0x48, 0x39, 0xd8, //0x0000216b cmpq %rbx, %rax + 0x0f, 0x87, 0x12, 0x03, 0x00, 0x00, //0x0000216e ja LBB1_490 + 0x41, 0x0f, 0xb6, 0x1f, //0x00002174 movzbl (%r15), %ebx + 0x80, 0xfb, 0x71, //0x00002178 cmpb $113, %bl + 0x0f, 0x8e, 0xac, 0xff, 0xff, 0xff, //0x0000217b jle LBB1_438 + 0x80, 0xfb, 0x72, //0x00002181 cmpb $114, %bl + 0x0f, 0x84, 0xac, 0xff, 0xff, 0xff, //0x00002184 je LBB1_439 + 0x80, 0xfb, 0x75, //0x0000218a cmpb $117, %bl + 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x0000218d jne LBB1_489 + 0x48, 0x8b, 0x4d, 0xd0, //0x00002193 movq $-48(%rbp), %rcx + 0x48, 0x29, 0xc1, //0x00002197 subq %rax, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x0000219a cmpq $4, %rcx + 0x0f, 0x8c, 0xd1, 0x02, 0x00, 0x00, //0x0000219e jl LBB1_489 + 0x8b, 0x38, //0x000021a4 movl (%rax), %edi + 0x89, 0xfb, //0x000021a6 movl %edi, %ebx + 0xf7, 0xd3, //0x000021a8 notl %ebx + 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x000021aa leal $-808464432(%rdi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x000021b0 andl $-2139062144, %ebx + 0x85, 0xcb, //0x000021b6 testl %ecx, %ebx + 0x0f, 0x85, 0xb7, 0x02, 0x00, 0x00, //0x000021b8 jne LBB1_489 + 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x000021be leal $421075225(%rdi), %ecx + 0x09, 0xf9, //0x000021c4 orl %edi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000021c6 testl $-2139062144, %ecx + 0x0f, 0x85, 0xa3, 0x02, 0x00, 0x00, //0x000021cc jne LBB1_489 + 0x89, 0xfe, //0x000021d2 movl %edi, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000021d4 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000021da movl $-1061109568, %ecx + 0x29, 0xf1, //0x000021df subl %esi, %ecx + 0x44, 0x8d, 0x86, 0x46, 0x46, 0x46, 0x46, //0x000021e1 leal $1179010630(%rsi), %r8d + 0x21, 0xd9, //0x000021e8 andl %ebx, %ecx + 0x44, 0x85, 0xc1, //0x000021ea testl %r8d, %ecx + 0x0f, 0x85, 0x82, 0x02, 0x00, 0x00, //0x000021ed jne LBB1_489 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000021f3 movl $-522133280, %ecx + 0x29, 0xf1, //0x000021f8 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x000021fa addl $960051513, %esi + 0x21, 0xcb, //0x00002200 andl %ecx, %ebx + 0x85, 0xf3, //0x00002202 testl %esi, %ebx + 0x0f, 0x85, 0x6b, 0x02, 0x00, 0x00, //0x00002204 jne LBB1_489 + 0x0f, 0xcf, //0x0000220a bswapl %edi + 0x89, 0xf8, //0x0000220c movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x0000220e shrl $4, %eax + 0xf7, 0xd0, //0x00002211 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00002213 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00002218 leal (%rax,%rax,8), %eax + 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000221b andl $252645135, %edi + 0x01, 0xc7, //0x00002221 addl %eax, %edi + 0x41, 0x89, 0xfe, //0x00002223 movl %edi, %r14d + 0x41, 0xc1, 0xee, 0x04, //0x00002226 shrl $4, %r14d + 0x41, 0x09, 0xfe, //0x0000222a orl %edi, %r14d + 0x44, 0x89, 0xf0, //0x0000222d movl %r14d, %eax + 0xc1, 0xe8, 0x08, //0x00002230 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002233 andl $65280, %eax + 0x44, 0x89, 0xf1, //0x00002238 movl %r14d, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x0000223b andl $128, %ecx + 0x09, 0xc1, //0x00002241 orl %eax, %ecx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002243 je LBB1_453 + 0x41, 0xbe, 0xff, 0x00, 0x00, 0x00, //0x00002249 movl $255, %r14d + //0x0000224f LBB1_453 + 0x48, 0x83, 0xc2, 0x06, //0x0000224f addq $6, %rdx + 0x49, 0x89, 0xd7, //0x00002253 movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002256 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000225a movabsq $-4294967296, %r8 + 0x8b, 0x45, 0xc8, //0x00002264 movl $-56(%rbp), %eax + //0x00002267 LBB1_454 + 0x41, 0x80, 0xfe, 0x0a, //0x00002267 cmpb $10, %r14b + 0x0f, 0x84, 0xcf, 0xfe, 0xff, 0xff, //0x0000226b je LBB1_440 + 0x41, 0x80, 0xfe, 0x0d, //0x00002271 cmpb $13, %r14b + 0x0f, 0x84, 0xc5, 0xfe, 0xff, 0xff, //0x00002275 je LBB1_440 + 0xe9, 0x06, 0x02, 0x00, 0x00, //0x0000227b jmp LBB1_490 + //0x00002280 LBB1_456 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002280 movl $2, %r11d + 0x49, 0x89, 0xd7, //0x00002286 movq %rdx, %r15 + 0xe9, 0x77, 0xf8, 0xff, 0xff, //0x00002289 jmp LBB1_334 + //0x0000228e LBB1_457 + 0x49, 0x89, 0xd7, //0x0000228e movq %rdx, %r15 + 0xe9, 0x17, 0x02, 0x00, 0x00, //0x00002291 jmp LBB1_492 + //0x00002296 LBB1_478 + 0x4d, 0x89, 0xfe, //0x00002296 movq %r15, %r14 + 0x4c, 0x89, 0xf2, //0x00002299 movq %r14, %rdx + 0x49, 0x39, 0xf6, //0x0000229c cmpq %rsi, %r14 + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x0000229f jb LBB1_462 + 0xe9, 0x09, 0x04, 0x00, 0x00, //0x000022a5 jmp LBB1_499 + //0x000022aa LBB1_460 + 0x4d, 0x89, 0xf7, //0x000022aa movq %r14, %r15 + 0x4c, 0x89, 0xf2, //0x000022ad movq %r14, %rdx + 0x49, 0x39, 0xf6, //0x000022b0 cmpq %rsi, %r14 + 0x0f, 0x83, 0xfa, 0x03, 0x00, 0x00, //0x000022b3 jae LBB1_499 + //0x000022b9 LBB1_462 + 0x4c, 0x8d, 0x7a, 0x01, //0x000022b9 leaq $1(%rdx), %r15 + 0x0f, 0xb6, 0x3a, //0x000022bd movzbl (%rdx), %edi + 0x40, 0x80, 0xff, 0x5c, //0x000022c0 cmpb $92, %dil + 0x0f, 0x85, 0xe8, 0x00, 0x00, 0x00, //0x000022c4 jne LBB1_475 + 0x4c, 0x8d, 0x72, 0x02, //0x000022ca leaq $2(%rdx), %r14 + 0x49, 0x39, 0xf6, //0x000022ce cmpq %rsi, %r14 + 0x0f, 0x87, 0x63, 0x02, 0x00, 0x00, //0x000022d1 ja LBB1_517 + 0x41, 0x0f, 0xb6, 0x07, //0x000022d7 movzbl (%r15), %eax + 0x3c, 0x6e, //0x000022db cmpb $110, %al + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x000022dd je LBB1_460 + 0x3c, 0x72, //0x000022e3 cmpb $114, %al + 0x0f, 0x84, 0xbf, 0xff, 0xff, 0xff, //0x000022e5 je LBB1_460 + 0x3c, 0x75, //0x000022eb cmpb $117, %al + 0x0f, 0x85, 0x00, 0x01, 0x00, 0x00, //0x000022ed jne LBB1_479 + 0x48, 0x89, 0xf0, //0x000022f3 movq %rsi, %rax + 0x4c, 0x29, 0xf0, //0x000022f6 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000022f9 cmpq $4, %rax + 0x0f, 0x8c, 0xf0, 0x00, 0x00, 0x00, //0x000022fd jl LBB1_479 + 0x41, 0x8b, 0x06, //0x00002303 movl (%r14), %eax + 0x89, 0xc7, //0x00002306 movl %eax, %edi + 0xf7, 0xd7, //0x00002308 notl %edi + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000230a leal $-808464432(%rax), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00002310 andl $-2139062144, %edi + 0x85, 0xcf, //0x00002316 testl %ecx, %edi + 0x0f, 0x85, 0xd5, 0x00, 0x00, 0x00, //0x00002318 jne LBB1_479 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x0000231e leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x00002324 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00002326 testl $-2139062144, %ecx + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x0000232c jne LBB1_479 + 0x89, 0xc6, //0x00002332 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002334 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000233a movl $-1061109568, %ecx + 0x29, 0xf1, //0x0000233f subl %esi, %ecx + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002341 leal $1179010630(%rsi), %ebx + 0x21, 0xf9, //0x00002347 andl %edi, %ecx + 0x85, 0xd9, //0x00002349 testl %ebx, %ecx + 0x0f, 0x85, 0xa2, 0x00, 0x00, 0x00, //0x0000234b jne LBB1_479 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002351 movl $-522133280, %ecx + 0x29, 0xf1, //0x00002356 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002358 addl $960051513, %esi + 0x21, 0xcf, //0x0000235e andl %ecx, %edi + 0x85, 0xf7, //0x00002360 testl %esi, %edi + 0x48, 0x8b, 0x75, 0xd0, //0x00002362 movq $-48(%rbp), %rsi + 0x0f, 0x85, 0x87, 0x00, 0x00, 0x00, //0x00002366 jne LBB1_479 + 0x0f, 0xc8, //0x0000236c bswapl %eax + 0x89, 0xc1, //0x0000236e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002370 shrl $4, %ecx + 0xf7, 0xd1, //0x00002373 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002375 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000237b leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000237e andl $252645135, %eax + 0x01, 0xc8, //0x00002383 addl %ecx, %eax + 0x89, 0xc7, //0x00002385 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00002387 shrl $4, %edi + 0x09, 0xc7, //0x0000238a orl %eax, %edi + 0x89, 0xf8, //0x0000238c movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x0000238e shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002391 andl $65280, %eax + 0x89, 0xf9, //0x00002396 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002398 andl $128, %ecx + 0x09, 0xc1, //0x0000239e orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000023a0 je LBB1_474 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x000023a6 movl $255, %edi + //0x000023ab LBB1_474 + 0x48, 0x83, 0xc2, 0x06, //0x000023ab addq $6, %rdx + 0x49, 0x89, 0xd7, //0x000023af movq %rdx, %r15 + //0x000023b2 LBB1_475 + 0x40, 0x80, 0xff, 0x0a, //0x000023b2 cmpb $10, %dil + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x000023b6 je LBB1_478 + 0x40, 0x80, 0xff, 0x0d, //0x000023bc cmpb $13, %dil + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x000023c0 je LBB1_478 + 0x40, 0x80, 0xff, 0x3d, //0x000023c6 cmpb $61, %dil + 0x0f, 0x85, 0x09, 0x01, 0x00, 0x00, //0x000023ca jne LBB1_495 + 0x83, 0x7d, 0x98, 0x03, //0x000023d0 cmpl $3, $-104(%rbp) + 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x000023d4 je LBB1_495 + 0x4c, 0x39, 0x7d, 0xd0, //0x000023da cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0x86, 0x01, 0x00, 0x00, //0x000023de ja LBB1_522 + //0x000023e4 LBB1_511 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000023e4 movabsq $-4294967296, %r8 + 0xe9, 0xc0, 0x02, 0x00, 0x00, //0x000023ee jmp LBB1_499 + //0x000023f3 LBB1_479 + 0x4d, 0x89, 0xf7, //0x000023f3 movq %r14, %r15 + 0xe9, 0xde, 0x00, 0x00, 0x00, //0x000023f6 jmp LBB1_495 + //0x000023fb LBB1_458 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000023fb movl $2, %r11d + 0xe9, 0xff, 0xf6, 0xff, 0xff, //0x00002401 jmp LBB1_334 + //0x00002406 LBB1_480 + 0x48, 0xff, 0xc2, //0x00002406 incq %rdx + 0x48, 0xff, 0xc3, //0x00002409 incq %rbx + 0x48, 0xff, 0xcf, //0x0000240c decq %rdi + 0x48, 0xff, 0xc8, //0x0000240f decq %rax + 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x00002412 je LBB1_519 + //0x00002418 LBB1_481 + 0x0f, 0xb6, 0x4a, 0xff, //0x00002418 movzbl $-1(%rdx), %ecx + 0x80, 0xf9, 0x0a, //0x0000241c cmpb $10, %cl + 0x0f, 0x84, 0xe1, 0xff, 0xff, 0xff, //0x0000241f je LBB1_480 + 0x80, 0xf9, 0x0d, //0x00002425 cmpb $13, %cl + 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00002428 je LBB1_480 + 0x80, 0xf9, 0x3d, //0x0000242e cmpb $61, %cl + 0x0f, 0x85, 0xe5, 0x02, 0x00, 0x00, //0x00002431 jne LBB1_539 + 0x49, 0x89, 0xd7, //0x00002437 movq %rdx, %r15 + 0x83, 0xfe, 0x04, //0x0000243a cmpl $4, %esi + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000243d movabsq $-4294967296, %r8 + 0x0f, 0x84, 0x8c, 0x00, 0x00, 0x00, //0x00002447 je LBB1_495 + 0x48, 0x39, 0x55, 0xd0, //0x0000244d cmpq %rdx, $-48(%rbp) + 0x0f, 0x87, 0xbf, 0x00, 0x00, 0x00, //0x00002451 ja LBB1_513 + //0x00002457 LBB1_486 + 0x49, 0x89, 0xd7, //0x00002457 movq %rdx, %r15 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000245a movabsq $-4294967296, %r8 + 0xe9, 0x4a, 0x02, 0x00, 0x00, //0x00002464 jmp LBB1_499 + //0x00002469 LBB1_487 + 0x80, 0xfb, 0x2f, //0x00002469 cmpb $47, %bl + 0x0f, 0x85, 0x03, 0x00, 0x00, 0x00, //0x0000246c jne LBB1_489 + 0x41, 0x89, 0xde, //0x00002472 movl %ebx, %r14d + //0x00002475 LBB1_489 + 0x49, 0x89, 0xc7, //0x00002475 movq %rax, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002478 movq $-48(%rbp), %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000247c movabsq $-4294967296, %r8 + //0x00002486 LBB1_490 + 0x41, 0x0f, 0xb6, 0xc6, //0x00002486 movzbl %r14b, %eax + 0x48, 0x8b, 0x4d, 0xc0, //0x0000248a movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x04, 0x01, //0x0000248e movzbl (%rcx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002492 cmpl $255, %eax + 0x0f, 0x84, 0x2e, 0xfa, 0xff, 0xff, //0x00002497 je LBB1_497 + //0x0000249d LBB1_491 + 0x8b, 0x4d, 0xc8, //0x0000249d movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000024a0 shll $6, %ecx + 0x09, 0xc1, //0x000024a3 orl %eax, %ecx + 0x89, 0xc8, //0x000024a5 movl %ecx, %eax + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000024a7 movl $4, %r11d + //0x000024ad LBB1_492 + 0x89, 0x45, 0xc8, //0x000024ad movl %eax, $-56(%rbp) + 0xf6, 0x45, 0xbc, 0x02, //0x000024b0 testb $2, $-68(%rbp) + 0x0f, 0x94, 0xc0, //0x000024b4 sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000024b7 cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000024bb sete %cl + 0x49, 0x39, 0xdf, //0x000024be cmpq %rbx, %r15 + 0x0f, 0x82, 0xec, 0x01, 0x00, 0x00, //0x000024c1 jb LBB1_499 + 0x41, 0x83, 0xfb, 0x04, //0x000024c7 cmpl $4, %r11d + 0x0f, 0x84, 0xe2, 0x01, 0x00, 0x00, //0x000024cb je LBB1_499 + 0x08, 0xc8, //0x000024d1 orb %cl, %al + 0x0f, 0x84, 0xda, 0x01, 0x00, 0x00, //0x000024d3 je LBB1_499 + //0x000024d9 LBB1_495 + 0x49, 0x8d, 0x4f, 0x01, //0x000024d9 leaq $1(%r15), %rcx + 0x48, 0x8b, 0x5d, 0xd0, //0x000024dd movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xfb, //0x000024e1 cmpq %r15, %rbx + 0x49, 0x0f, 0x45, 0xcf, //0x000024e4 cmovneq %r15, %rcx + 0x4c, 0x29, 0xe9, //0x000024e8 subq %r13, %rcx + 0x0f, 0x85, 0xf8, 0x24, 0x00, 0x00, //0x000024eb jne LBB1_1141 + 0x4d, 0x89, 0xef, //0x000024f1 movq %r13, %r15 + 0x48, 0x8b, 0x4d, 0xb0, //0x000024f4 movq $-80(%rbp), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x000024f8 movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x000024fc cmpq %rcx, %r12 + 0x0f, 0x83, 0x9e, 0xf2, 0xff, 0xff, //0x000024ff jae LBB1_506 + 0xe9, 0xae, 0xe0, 0xff, 0xff, //0x00002505 jmp LBB1_2 + //0x0000250a LBB1_512 + 0x48, 0xff, 0xc3, //0x0000250a incq %rbx + 0x48, 0xff, 0xcf, //0x0000250d decq %rdi + 0x0f, 0x84, 0x8f, 0x01, 0x00, 0x00, //0x00002510 je LBB1_519 + //0x00002516 LBB1_513 + 0x0f, 0xb6, 0x43, 0xff, //0x00002516 movzbl $-1(%rbx), %eax + 0x3c, 0x0a, //0x0000251a cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x0000251c je LBB1_512 + 0x3c, 0x0d, //0x00002522 cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00002524 je LBB1_512 + 0x3c, 0x3d, //0x0000252a cmpb $61, %al + 0x0f, 0x85, 0x64, 0x03, 0x00, 0x00, //0x0000252c jne LBB1_545 + 0x49, 0x89, 0xdf, //0x00002532 movq %rbx, %r15 + 0xe9, 0x71, 0x03, 0x00, 0x00, //0x00002535 jmp LBB1_567 + //0x0000253a LBB1_517 + 0x4c, 0x89, 0xfa, //0x0000253a movq %r15, %rdx + //0x0000253d LBB1_459 + 0x49, 0x89, 0xd7, //0x0000253d movq %rdx, %r15 + 0xe9, 0x94, 0xff, 0xff, 0xff, //0x00002540 jmp LBB1_495 + //0x00002545 LBB1_538 + 0x49, 0x89, 0xd6, //0x00002545 movq %rdx, %r14 + 0x4d, 0x89, 0xf7, //0x00002548 movq %r14, %r15 + 0x4c, 0x3b, 0x75, 0xd0, //0x0000254b cmpq $-48(%rbp), %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x0000254f jb LBB1_522 + 0xe9, 0xfd, 0xfe, 0xff, 0xff, //0x00002555 jmp LBB1_486 + //0x0000255a LBB1_520 + 0x4c, 0x89, 0xf2, //0x0000255a movq %r14, %rdx + 0x4d, 0x89, 0xf7, //0x0000255d movq %r14, %r15 + 0x4c, 0x3b, 0x75, 0xd0, //0x00002560 cmpq $-48(%rbp), %r14 + 0x0f, 0x83, 0xed, 0xfe, 0xff, 0xff, //0x00002564 jae LBB1_486 + //0x0000256a LBB1_522 + 0x49, 0x8d, 0x57, 0x01, //0x0000256a leaq $1(%r15), %rdx + 0x41, 0x0f, 0xb6, 0x3f, //0x0000256e movzbl (%r15), %edi + 0x40, 0x80, 0xff, 0x5c, //0x00002572 cmpb $92, %dil + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00002576 jne LBB1_535 + 0x4d, 0x8d, 0x77, 0x02, //0x0000257c leaq $2(%r15), %r14 + 0x4c, 0x3b, 0x75, 0xd0, //0x00002580 cmpq $-48(%rbp), %r14 + 0x0f, 0x87, 0xa7, 0x01, 0x00, 0x00, //0x00002584 ja LBB1_543 + 0x0f, 0xb6, 0x02, //0x0000258a movzbl (%rdx), %eax + 0x3c, 0x6e, //0x0000258d cmpb $110, %al + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000258f je LBB1_520 + 0x3c, 0x72, //0x00002595 cmpb $114, %al + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00002597 je LBB1_520 + 0x3c, 0x75, //0x0000259d cmpb $117, %al + 0x0f, 0x85, 0xdf, 0x02, 0x00, 0x00, //0x0000259f jne LBB1_544 + 0x48, 0x8b, 0x45, 0xd0, //0x000025a5 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xf0, //0x000025a9 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000025ac cmpq $4, %rax + 0x0f, 0x8c, 0xc6, 0x02, 0x00, 0x00, //0x000025b0 jl LBB1_566 + 0x41, 0x8b, 0x06, //0x000025b6 movl (%r14), %eax + 0x89, 0xc2, //0x000025b9 movl %eax, %edx + 0xf7, 0xd2, //0x000025bb notl %edx + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x000025bd leal $-808464432(%rax), %ecx + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000025c3 andl $-2139062144, %edx + 0x85, 0xca, //0x000025c9 testl %ecx, %edx + 0x0f, 0x85, 0xab, 0x02, 0x00, 0x00, //0x000025cb jne LBB1_566 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x000025d1 leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x000025d7 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000025d9 testl $-2139062144, %ecx + 0x0f, 0x85, 0x97, 0x02, 0x00, 0x00, //0x000025df jne LBB1_566 + 0x89, 0xc6, //0x000025e5 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025e7 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025ed movl $-1061109568, %ecx + 0x29, 0xf1, //0x000025f2 subl %esi, %ecx + 0x8d, 0xbe, 0x46, 0x46, 0x46, 0x46, //0x000025f4 leal $1179010630(%rsi), %edi + 0x21, 0xd1, //0x000025fa andl %edx, %ecx + 0x85, 0xf9, //0x000025fc testl %edi, %ecx + 0x0f, 0x85, 0x78, 0x02, 0x00, 0x00, //0x000025fe jne LBB1_566 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002604 movl $-522133280, %ecx + 0x29, 0xf1, //0x00002609 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x0000260b addl $960051513, %esi + 0x21, 0xca, //0x00002611 andl %ecx, %edx + 0x85, 0xf2, //0x00002613 testl %esi, %edx + 0x0f, 0x85, 0x61, 0x02, 0x00, 0x00, //0x00002615 jne LBB1_566 + 0x0f, 0xc8, //0x0000261b bswapl %eax + 0x89, 0xc1, //0x0000261d movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000261f shrl $4, %ecx + 0xf7, 0xd1, //0x00002622 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002624 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000262a leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000262d andl $252645135, %eax + 0x01, 0xc8, //0x00002632 addl %ecx, %eax + 0x89, 0xc7, //0x00002634 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00002636 shrl $4, %edi + 0x09, 0xc7, //0x00002639 orl %eax, %edi + 0x89, 0xf8, //0x0000263b movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x0000263d shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002640 andl $65280, %eax + 0x89, 0xf9, //0x00002645 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002647 andl $128, %ecx + 0x09, 0xc1, //0x0000264d orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000264f je LBB1_534 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00002655 movl $255, %edi + //0x0000265a LBB1_534 + 0x49, 0x83, 0xc7, 0x06, //0x0000265a addq $6, %r15 + 0x4c, 0x89, 0xfa, //0x0000265e movq %r15, %rdx + //0x00002661 LBB1_535 + 0x40, 0x80, 0xff, 0x0a, //0x00002661 cmpb $10, %dil + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00002665 je LBB1_538 + 0x40, 0x80, 0xff, 0x0d, //0x0000266b cmpb $13, %dil + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000266f je LBB1_538 + 0x40, 0x80, 0xff, 0x3d, //0x00002675 cmpb $61, %dil + 0x0f, 0x85, 0x29, 0x02, 0x00, 0x00, //0x00002679 jne LBB1_546 + 0x49, 0x89, 0xd7, //0x0000267f movq %rdx, %r15 + 0x83, 0x7d, 0x98, 0x04, //0x00002682 cmpl $4, $-104(%rbp) + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002686 movabsq $-4294967296, %r8 + 0x0f, 0x84, 0x43, 0xfe, 0xff, 0xff, //0x00002690 je LBB1_495 + 0x48, 0x39, 0x55, 0xd0, //0x00002696 cmpq %rdx, $-48(%rbp) + 0x0f, 0x87, 0xc8, 0x00, 0x00, 0x00, //0x0000269a ja LBB1_549 + 0xe9, 0xb2, 0xfd, 0xff, 0xff, //0x000026a0 jmp LBB1_486 + //0x000026a5 LBB1_519 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000026a5 movq $-48(%rbp), %r15 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000026a9 movabsq $-4294967296, %r8 + //0x000026b3 LBB1_499 + 0xb0, 0x04, //0x000026b3 movb $4, %al + 0x44, 0x28, 0xd8, //0x000026b5 subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x000026b8 movzbl %al, %eax + 0x01, 0xc0, //0x000026bb addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x000026bd leal (%rax,%rax,2), %ecx + 0x8b, 0x45, 0xc8, //0x000026c0 movl $-56(%rbp), %eax + 0xd3, 0xe0, //0x000026c3 shll %cl, %eax + 0x41, 0x83, 0xfb, 0x02, //0x000026c5 cmpl $2, %r11d + 0x48, 0x8b, 0x5d, 0xd0, //0x000026c9 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x000026cd je LBB1_504 + 0x41, 0x83, 0xfb, 0x03, //0x000026d3 cmpl $3, %r11d + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x000026d7 je LBB1_503 + 0x41, 0x83, 0xfb, 0x04, //0x000026dd cmpl $4, %r11d + 0x48, 0x8b, 0x4d, 0xb0, //0x000026e1 movq $-80(%rbp), %rcx + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x000026e5 jne LBB1_505 + 0x88, 0x41, 0x02, //0x000026eb movb %al, $2(%rcx) + //0x000026ee LBB1_503 + 0x89, 0xc1, //0x000026ee movl %eax, %ecx + 0x48, 0x8b, 0x45, 0xb0, //0x000026f0 movq $-80(%rbp), %rax + 0x88, 0x68, 0x01, //0x000026f4 movb %ch, $1(%rax) + 0x89, 0xc8, //0x000026f7 movl %ecx, %eax + //0x000026f9 LBB1_504 + 0xc1, 0xe8, 0x10, //0x000026f9 shrl $16, %eax + 0x48, 0x8b, 0x4d, 0xb0, //0x000026fc movq $-80(%rbp), %rcx + 0x88, 0x01, //0x00002700 movb %al, (%rcx) + //0x00002702 LBB1_505 + 0x44, 0x89, 0xd8, //0x00002702 movl %r11d, %eax + 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x00002705 leaq $-1(%rcx,%rax), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000270a movq %rcx, $-80(%rbp) + 0x49, 0x39, 0xcc, //0x0000270e cmpq %rcx, %r12 + 0x0f, 0x83, 0x8c, 0xf0, 0xff, 0xff, //0x00002711 jae LBB1_506 + 0xe9, 0x9c, 0xde, 0xff, 0xff, //0x00002717 jmp LBB1_2 + //0x0000271c LBB1_539 + 0x48, 0x89, 0xd3, //0x0000271c movq %rdx, %rbx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x0000271f movabsq $-4294967296, %r8 + 0x49, 0x89, 0xd7, //0x00002729 movq %rdx, %r15 + 0xe9, 0xa8, 0xfd, 0xff, 0xff, //0x0000272c jmp LBB1_495 + //0x00002731 LBB1_543 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002731 movabsq $-4294967296, %r8 + 0x49, 0x89, 0xd7, //0x0000273b movq %rdx, %r15 + 0xe9, 0x96, 0xfd, 0xff, 0xff, //0x0000273e jmp LBB1_495 + //0x00002743 LBB1_565 + 0x4d, 0x89, 0xfe, //0x00002743 movq %r15, %r14 + 0x4c, 0x89, 0xf2, //0x00002746 movq %r14, %rdx + 0x4c, 0x3b, 0x75, 0xd0, //0x00002749 cmpq $-48(%rbp), %r14 + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x0000274d jb LBB1_549 + 0xe9, 0x8c, 0xfc, 0xff, 0xff, //0x00002753 jmp LBB1_511 + //0x00002758 LBB1_547 + 0x4d, 0x89, 0xf7, //0x00002758 movq %r14, %r15 + 0x4c, 0x89, 0xf2, //0x0000275b movq %r14, %rdx + 0x4c, 0x3b, 0x75, 0xd0, //0x0000275e cmpq $-48(%rbp), %r14 + 0x0f, 0x83, 0x7c, 0xfc, 0xff, 0xff, //0x00002762 jae LBB1_511 + //0x00002768 LBB1_549 + 0x4c, 0x8d, 0x7a, 0x01, //0x00002768 leaq $1(%rdx), %r15 + 0x0f, 0xb6, 0x3a, //0x0000276c movzbl (%rdx), %edi + 0x40, 0x80, 0xff, 0x5c, //0x0000276f cmpb $92, %dil + 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00002773 jne LBB1_562 + 0x4c, 0x8d, 0x72, 0x02, //0x00002779 leaq $2(%rdx), %r14 + 0x4c, 0x3b, 0x75, 0xd0, //0x0000277d cmpq $-48(%rbp), %r14 + 0x0f, 0x87, 0x33, 0x01, 0x00, 0x00, //0x00002781 ja LBB1_570 + 0x41, 0x0f, 0xb6, 0x07, //0x00002787 movzbl (%r15), %eax + 0x3c, 0x6e, //0x0000278b cmpb $110, %al + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x0000278d je LBB1_547 + 0x3c, 0x72, //0x00002793 cmpb $114, %al + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00002795 je LBB1_547 + 0x3c, 0x75, //0x0000279b cmpb $117, %al + 0x0f, 0x85, 0xe1, 0x00, 0x00, 0x00, //0x0000279d jne LBB1_544 + 0x48, 0x8b, 0x45, 0xd0, //0x000027a3 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xf0, //0x000027a7 subq %r14, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000027aa cmpq $4, %rax + 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x000027ae jl LBB1_566 + 0x41, 0x8b, 0x06, //0x000027b4 movl (%r14), %eax + 0x89, 0xc7, //0x000027b7 movl %eax, %edi + 0xf7, 0xd7, //0x000027b9 notl %edi + 0x8d, 0x88, 0xd0, 0xcf, 0xcf, 0xcf, //0x000027bb leal $-808464432(%rax), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x000027c1 andl $-2139062144, %edi + 0x85, 0xcf, //0x000027c7 testl %ecx, %edi + 0x0f, 0x85, 0xad, 0x00, 0x00, 0x00, //0x000027c9 jne LBB1_566 + 0x8d, 0x88, 0x19, 0x19, 0x19, 0x19, //0x000027cf leal $421075225(%rax), %ecx + 0x09, 0xc1, //0x000027d5 orl %eax, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x000027d7 testl $-2139062144, %ecx + 0x0f, 0x85, 0x99, 0x00, 0x00, 0x00, //0x000027dd jne LBB1_566 + 0x89, 0xc6, //0x000027e3 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000027e5 andl $2139062143, %esi + 0xb9, 0xc0, 0xc0, 0xc0, 0xc0, //0x000027eb movl $-1061109568, %ecx + 0x29, 0xf1, //0x000027f0 subl %esi, %ecx + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x000027f2 leal $1179010630(%rsi), %ebx + 0x21, 0xf9, //0x000027f8 andl %edi, %ecx + 0x85, 0xd9, //0x000027fa testl %ebx, %ecx + 0x0f, 0x85, 0x7a, 0x00, 0x00, 0x00, //0x000027fc jne LBB1_566 + 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002802 movl $-522133280, %ecx + 0x29, 0xf1, //0x00002807 subl %esi, %ecx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002809 addl $960051513, %esi + 0x21, 0xcf, //0x0000280f andl %ecx, %edi + 0x85, 0xf7, //0x00002811 testl %esi, %edi + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x00002813 jne LBB1_566 + 0x0f, 0xc8, //0x00002819 bswapl %eax + 0x89, 0xc1, //0x0000281b movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000281d shrl $4, %ecx + 0xf7, 0xd1, //0x00002820 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002822 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002828 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000282b andl $252645135, %eax + 0x01, 0xc8, //0x00002830 addl %ecx, %eax + 0x89, 0xc7, //0x00002832 movl %eax, %edi + 0xc1, 0xef, 0x04, //0x00002834 shrl $4, %edi + 0x09, 0xc7, //0x00002837 orl %eax, %edi + 0x89, 0xf8, //0x00002839 movl %edi, %eax + 0xc1, 0xe8, 0x08, //0x0000283b shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000283e andl $65280, %eax + 0x89, 0xf9, //0x00002843 movl %edi, %ecx + 0x81, 0xe1, 0x80, 0x00, 0x00, 0x00, //0x00002845 andl $128, %ecx + 0x09, 0xc1, //0x0000284b orl %eax, %ecx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000284d je LBB1_561 + 0xbf, 0xff, 0x00, 0x00, 0x00, //0x00002853 movl $255, %edi + //0x00002858 LBB1_561 + 0x48, 0x83, 0xc2, 0x06, //0x00002858 addq $6, %rdx + 0x49, 0x89, 0xd7, //0x0000285c movq %rdx, %r15 + //0x0000285f LBB1_562 + 0x40, 0x80, 0xff, 0x0a, //0x0000285f cmpb $10, %dil + 0x0f, 0x84, 0xda, 0xfe, 0xff, 0xff, //0x00002863 je LBB1_565 + 0x40, 0x80, 0xff, 0x0d, //0x00002869 cmpb $13, %dil + 0x0f, 0x84, 0xd0, 0xfe, 0xff, 0xff, //0x0000286d je LBB1_565 + 0x40, 0x80, 0xff, 0x3d, //0x00002873 cmpb $61, %dil + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002877 jmp LBB1_567 + //0x0000287c LBB1_566 + 0x4d, 0x89, 0xf7, //0x0000287c movq %r14, %r15 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000287f jmp LBB1_567 + //0x00002884 LBB1_544 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002884 movabsq $-4294967296, %r8 + 0x4d, 0x89, 0xf7, //0x0000288e movq %r14, %r15 + 0xe9, 0x43, 0xfc, 0xff, 0xff, //0x00002891 jmp LBB1_495 + //0x00002896 LBB1_545 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00002896 movabsq $-4294967296, %r8 + 0x49, 0x89, 0xdf, //0x000028a0 movq %rbx, %r15 + 0xe9, 0x31, 0xfc, 0xff, 0xff, //0x000028a3 jmp LBB1_495 + //0x000028a8 LBB1_546 + 0x49, 0x89, 0xd7, //0x000028a8 movq %rdx, %r15 + //0x000028ab LBB1_567 + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000028ab movabsq $-4294967296, %r8 + 0xe9, 0x1f, 0xfc, 0xff, 0xff, //0x000028b5 jmp LBB1_495 + //0x000028ba LBB1_570 + 0x4c, 0x89, 0xfa, //0x000028ba movq %r15, %rdx + 0x49, 0xb8, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, //0x000028bd movabsq $-4294967296, %r8 + 0xe9, 0x0d, 0xfc, 0xff, 0xff, //0x000028c7 jmp LBB1_495 + //0x000028cc LBB1_574 + 0x4d, 0x89, 0xf9, //0x000028cc movq %r15, %r9 + 0x48, 0x8b, 0x45, 0x90, //0x000028cf movq $-112(%rbp), %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000028d3 addq $-4, %rax + 0x48, 0x3b, 0x45, 0xb0, //0x000028d7 cmpq $-80(%rbp), %rax + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000028db jae LBB1_575 + 0xe9, 0x34, 0x10, 0x00, 0x00, //0x000028e1 jmp LBB1_851 + //0x000028e6 LBB1_572 + 0x4d, 0x89, 0xcf, //0x000028e6 movq %r9, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000028e9 movq $-48(%rbp), %rbx + 0x48, 0x8b, 0x45, 0x90, //0x000028ed movq $-112(%rbp), %rax + 0x48, 0x83, 0xc0, 0xfc, //0x000028f1 addq $-4, %rax + 0x48, 0x3b, 0x45, 0xb0, //0x000028f5 cmpq $-80(%rbp), %rax + 0x0f, 0x82, 0x1b, 0x10, 0x00, 0x00, //0x000028f9 jb LBB1_851 + //0x000028ff LBB1_575 + 0x4c, 0x8d, 0x6b, 0xfc, //0x000028ff leaq $-4(%rbx), %r13 + 0x4d, 0x39, 0xfd, //0x00002903 cmpq %r15, %r13 + 0x0f, 0x82, 0x0e, 0x10, 0x00, 0x00, //0x00002906 jb LBB1_851 + 0x49, 0x89, 0xc6, //0x0000290c movq %rax, %r14 + 0x44, 0x8b, 0x65, 0xbc, //0x0000290f movl $-68(%rbp), %r12d + 0x41, 0x83, 0xe4, 0x02, //0x00002913 andl $2, %r12d + 0x48, 0x8b, 0x45, 0xa8, //0x00002917 movq $-88(%rbp), %rax + 0x48, 0x8b, 0x4d, 0x88, //0x0000291b movq $-120(%rbp), %rcx + 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x0000291f leaq $-2(%rcx,%rax), %rdx + 0x48, 0x89, 0x55, 0xa0, //0x00002924 movq %rdx, $-96(%rbp) + 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x00002928 leaq $-3(%rcx,%rax), %rax + 0x48, 0x89, 0x45, 0x90, //0x0000292d movq %rax, $-112(%rbp) + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00002931 jmp LBB1_577 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002936 .p2align 4, 0x90 + //0x00002940 LBB1_578 + 0xc1, 0xe2, 0x1a, //0x00002940 shll $26, %edx + 0xc1, 0xe0, 0x14, //0x00002943 shll $20, %eax + 0x09, 0xd0, //0x00002946 orl %edx, %eax + 0xc1, 0xe3, 0x0e, //0x00002948 shll $14, %ebx + 0xc1, 0xe1, 0x08, //0x0000294b shll $8, %ecx + 0x09, 0xd9, //0x0000294e orl %ebx, %ecx + 0x09, 0xc1, //0x00002950 orl %eax, %ecx + 0x0f, 0xc9, //0x00002952 bswapl %ecx + 0x48, 0x8b, 0x55, 0xb0, //0x00002954 movq $-80(%rbp), %rdx + 0x89, 0x0a, //0x00002958 movl %ecx, (%rdx) + 0x49, 0x83, 0xc7, 0x04, //0x0000295a addq $4, %r15 + 0x48, 0x83, 0xc2, 0x03, //0x0000295e addq $3, %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00002962 movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00002966 cmpq %rdx, %r14 + 0x0f, 0x82, 0xbb, 0x0f, 0x00, 0x00, //0x00002969 jb LBB1_852 + //0x0000296f LBB1_727 + 0x4d, 0x89, 0xf9, //0x0000296f movq %r15, %r9 + 0x4d, 0x39, 0xfd, //0x00002972 cmpq %r15, %r13 + 0x0f, 0x82, 0xaf, 0x0f, 0x00, 0x00, //0x00002975 jb LBB1_852 + //0x0000297b LBB1_577 + 0x41, 0x0f, 0xb6, 0x07, //0x0000297b movzbl (%r15), %eax + 0x48, 0x8b, 0x75, 0xc0, //0x0000297f movq $-64(%rbp), %rsi + 0x0f, 0xb6, 0x14, 0x06, //0x00002983 movzbl (%rsi,%rax), %edx + 0x41, 0x0f, 0xb6, 0x47, 0x01, //0x00002987 movzbl $1(%r15), %eax + 0x0f, 0xb6, 0x04, 0x06, //0x0000298c movzbl (%rsi,%rax), %eax + 0x41, 0x0f, 0xb6, 0x4f, 0x02, //0x00002990 movzbl $2(%r15), %ecx + 0x0f, 0xb6, 0x1c, 0x0e, //0x00002995 movzbl (%rsi,%rcx), %ebx + 0x41, 0x0f, 0xb6, 0x4f, 0x03, //0x00002999 movzbl $3(%r15), %ecx + 0x0f, 0xb6, 0x0c, 0x0e, //0x0000299e movzbl (%rsi,%rcx), %ecx + 0x89, 0xc7, //0x000029a2 movl %eax, %edi + 0x09, 0xd7, //0x000029a4 orl %edx, %edi + 0x89, 0xde, //0x000029a6 movl %ebx, %esi + 0x09, 0xce, //0x000029a8 orl %ecx, %esi + 0x09, 0xfe, //0x000029aa orl %edi, %esi + 0x40, 0x80, 0xfe, 0xff, //0x000029ac cmpb $-1, %sil + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x000029b0 jne LBB1_578 + 0x48, 0x8b, 0x5d, 0xd0, //0x000029b6 movq $-48(%rbp), %rbx + 0x4c, 0x39, 0xfb, //0x000029ba cmpq %r15, %rbx + 0x0f, 0x86, 0x1d, 0x02, 0x00, 0x00, //0x000029bd jbe LBB1_611 + 0xf6, 0x45, 0xbc, 0x08, //0x000029c3 testb $8, $-68(%rbp) + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000029c7 je LBB1_583 + 0x4c, 0x89, 0xfa, //0x000029cd movq %r15, %rdx + 0xe9, 0xc7, 0x00, 0x00, 0x00, //0x000029d0 jmp LBB1_594 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029d5 .p2align 4, 0x90 + //0x000029e0 LBB1_582 + 0x49, 0xff, 0xc7, //0x000029e0 incq %r15 + 0x49, 0x39, 0xdf, //0x000029e3 cmpq %rbx, %r15 + 0x0f, 0x83, 0xde, 0x01, 0x00, 0x00, //0x000029e6 jae LBB1_609 + //0x000029ec LBB1_583 + 0x41, 0x0f, 0xb6, 0x0f, //0x000029ec movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x000029f0 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x000029f4 je LBB1_582 + 0x80, 0xf9, 0x0a, //0x000029fa cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x000029fd je LBB1_582 + 0x48, 0x8b, 0x45, 0xc0, //0x00002a03 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00002a07 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x00002a0b incq %r15 + 0x89, 0x45, 0xc8, //0x00002a0e movl %eax, $-56(%rbp) + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002a11 cmpl $255, %eax + 0x0f, 0x84, 0x84, 0x02, 0x00, 0x00, //0x00002a16 je LBB1_623 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002a1c movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00002a22 cmpq %rbx, %r15 + 0x0f, 0x82, 0x11, 0x00, 0x00, 0x00, //0x00002a25 jb LBB1_588 + 0xe9, 0x99, 0x06, 0x00, 0x00, //0x00002a2b jmp LBB1_693 + //0x00002a30 .p2align 4, 0x90 + //0x00002a30 LBB1_587 + 0x49, 0xff, 0xc7, //0x00002a30 incq %r15 + 0x49, 0x39, 0xdf, //0x00002a33 cmpq %rbx, %r15 + 0x0f, 0x83, 0x3d, 0x04, 0x00, 0x00, //0x00002a36 jae LBB1_675 + //0x00002a3c LBB1_588 + 0x41, 0x0f, 0xb6, 0x0f, //0x00002a3c movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00002a40 cmpq $13, %rcx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00002a44 je LBB1_587 + 0x80, 0xf9, 0x0a, //0x00002a4a cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x00002a4d je LBB1_587 + 0x48, 0x8b, 0x45, 0xc0, //0x00002a53 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00002a57 movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x00002a5b incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002a5e cmpl $255, %eax + 0x0f, 0x84, 0xb6, 0x06, 0x00, 0x00, //0x00002a63 je LBB1_716 + 0x8b, 0x4d, 0xc8, //0x00002a69 movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00002a6c shll $6, %ecx + 0x09, 0xc1, //0x00002a6f orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x00002a71 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002a74 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00002a7a cmpq %rbx, %r15 + 0x0f, 0x82, 0x8f, 0x01, 0x00, 0x00, //0x00002a7d jb LBB1_613 + 0xe9, 0x41, 0x06, 0x00, 0x00, //0x00002a83 jmp LBB1_693 + //0x00002a88 LBB1_592 + 0x3c, 0x6e, //0x00002a88 cmpb $110, %al + 0x0f, 0x85, 0xd6, 0x01, 0x00, 0x00, //0x00002a8a jne LBB1_618 + //0x00002a90 .p2align 4, 0x90 + //0x00002a90 LBB1_593 + 0x4c, 0x89, 0xfa, //0x00002a90 movq %r15, %rdx + 0x49, 0x39, 0xdf, //0x00002a93 cmpq %rbx, %r15 + 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x00002a96 jae LBB1_609 + //0x00002a9c LBB1_594 + 0x48, 0x8d, 0x42, 0x01, //0x00002a9c leaq $1(%rdx), %rax + 0x0f, 0xb6, 0x0a, //0x00002aa0 movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x00002aa3 cmpb $92, %cl + 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x00002aa6 jne LBB1_607 + 0x4c, 0x8d, 0x7a, 0x02, //0x00002aac leaq $2(%rdx), %r15 + 0xb1, 0xff, //0x00002ab0 movb $-1, %cl + 0x49, 0x39, 0xdf, //0x00002ab2 cmpq %rbx, %r15 + 0x0f, 0x87, 0xa3, 0x01, 0x00, 0x00, //0x00002ab5 ja LBB1_617 + 0x0f, 0xb6, 0x00, //0x00002abb movzbl (%rax), %eax + 0x3c, 0x71, //0x00002abe cmpb $113, %al + 0x0f, 0x8e, 0xc2, 0xff, 0xff, 0xff, //0x00002ac0 jle LBB1_592 + 0x3c, 0x72, //0x00002ac6 cmpb $114, %al + 0x0f, 0x84, 0xc2, 0xff, 0xff, 0xff, //0x00002ac8 je LBB1_593 + 0x3c, 0x75, //0x00002ace cmpb $117, %al + 0x0f, 0x85, 0x9a, 0x01, 0x00, 0x00, //0x00002ad0 jne LBB1_620 + 0x48, 0x89, 0xd8, //0x00002ad6 movq %rbx, %rax + 0x4c, 0x29, 0xf8, //0x00002ad9 subq %r15, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002adc cmpq $4, %rax + 0x0f, 0x8c, 0x8a, 0x01, 0x00, 0x00, //0x00002ae0 jl LBB1_620 + 0x41, 0x8b, 0x07, //0x00002ae6 movl (%r15), %eax + 0x89, 0xc6, //0x00002ae9 movl %eax, %esi + 0xf7, 0xd6, //0x00002aeb notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002aed leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00002af3 andl $-2139062144, %esi + 0x85, 0xfe, //0x00002af9 testl %edi, %esi + 0x0f, 0x85, 0x6f, 0x01, 0x00, 0x00, //0x00002afb jne LBB1_620 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x00002b01 leal $421075225(%rax), %edi + 0x09, 0xc7, //0x00002b07 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00002b09 testl $-2139062144, %edi + 0x0f, 0x85, 0x5b, 0x01, 0x00, 0x00, //0x00002b0f jne LBB1_620 + 0x89, 0xc7, //0x00002b15 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002b17 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002b1d movl $-1061109568, %ebx + 0x29, 0xfb, //0x00002b22 subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x00002b24 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x00002b2b andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x00002b2d testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b30 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x36, 0x01, 0x00, 0x00, //0x00002b34 jne LBB1_620 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002b3a movl $-522133280, %ebx + 0x29, 0xfb, //0x00002b3f subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00002b41 addl $960051513, %edi + 0x21, 0xde, //0x00002b47 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00002b49 movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x00002b4d testl %edi, %esi + 0x0f, 0x85, 0x1b, 0x01, 0x00, 0x00, //0x00002b4f jne LBB1_620 + 0x0f, 0xc8, //0x00002b55 bswapl %eax + 0x89, 0xc1, //0x00002b57 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002b59 shrl $4, %ecx + 0xf7, 0xd1, //0x00002b5c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002b5e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002b64 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002b67 andl $252645135, %eax + 0x01, 0xc8, //0x00002b6c addl %ecx, %eax + 0x89, 0xc1, //0x00002b6e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002b70 shrl $4, %ecx + 0x09, 0xc1, //0x00002b73 orl %eax, %ecx + 0x89, 0xc8, //0x00002b75 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002b77 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002b7a andl $65280, %eax + 0x89, 0xce, //0x00002b7f movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00002b81 andl $128, %esi + 0x09, 0xc6, //0x00002b87 orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002b89 je LBB1_606 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002b8f movl $255, %ecx + //0x00002b94 LBB1_606 + 0x48, 0x83, 0xc2, 0x06, //0x00002b94 addq $6, %rdx + 0x49, 0x89, 0xd7, //0x00002b98 movq %rdx, %r15 + 0x80, 0xf9, 0x0d, //0x00002b9b cmpb $13, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002b9e jne LBB1_608 + 0xe9, 0xe7, 0xfe, 0xff, 0xff, //0x00002ba4 jmp LBB1_593 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ba9 .p2align 4, 0x90 + //0x00002bb0 LBB1_607 + 0x49, 0x89, 0xc7, //0x00002bb0 movq %rax, %r15 + 0x80, 0xf9, 0x0d, //0x00002bb3 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00002bb6 je LBB1_593 + //0x00002bbc LBB1_608 + 0x80, 0xf9, 0x0a, //0x00002bbc cmpb $10, %cl + 0x0f, 0x84, 0xcb, 0xfe, 0xff, 0xff, //0x00002bbf je LBB1_593 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00002bc5 jmp LBB1_620 + //0x00002bca LBB1_609 + 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00002bca movl $0, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x00002bd1 xorl %r11d, %r11d + //0x00002bd4 LBB1_610 + 0x45, 0x85, 0xdb, //0x00002bd4 testl %r11d, %r11d + 0x0f, 0x85, 0xec, 0x04, 0x00, 0x00, //0x00002bd7 jne LBB1_693 + 0x90, 0x90, 0x90, //0x00002bdd .p2align 4, 0x90 + //0x00002be0 LBB1_611 + 0x48, 0x8b, 0x55, 0xb0, //0x00002be0 movq $-80(%rbp), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00002be4 movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00002be8 cmpq %rdx, %r14 + 0x0f, 0x83, 0x7e, 0xfd, 0xff, 0xff, //0x00002beb jae LBB1_727 + 0xe9, 0x34, 0x0d, 0x00, 0x00, //0x00002bf1 jmp LBB1_852 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002bf6 .p2align 4, 0x90 + //0x00002c00 LBB1_612 + 0x49, 0xff, 0xc7, //0x00002c00 incq %r15 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00002c03 movl $2, %r11d + 0x49, 0x39, 0xdf, //0x00002c09 cmpq %rbx, %r15 + 0x0f, 0x83, 0xc2, 0xff, 0xff, 0xff, //0x00002c0c jae LBB1_610 + //0x00002c12 LBB1_613 + 0x41, 0x0f, 0xb6, 0x0f, //0x00002c12 movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00002c16 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00002c1a je LBB1_612 + 0x80, 0xf9, 0x0a, //0x00002c20 cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00002c23 je LBB1_612 + 0x48, 0x8b, 0x45, 0xc0, //0x00002c29 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x00002c2d movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x00002c31 incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002c34 cmpl $255, %eax + 0x0f, 0x84, 0x0e, 0x09, 0x00, 0x00, //0x00002c39 je LBB1_759 + 0x8b, 0x4d, 0xc8, //0x00002c3f movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00002c42 shll $6, %ecx + 0x09, 0xc1, //0x00002c45 orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x00002c47 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002c4a movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00002c50 cmpq %rbx, %r15 + 0x0f, 0x82, 0xa6, 0x03, 0x00, 0x00, //0x00002c53 jb LBB1_677 + 0xe9, 0x6b, 0x04, 0x00, 0x00, //0x00002c59 jmp LBB1_693 + //0x00002c5e LBB1_617 + 0x49, 0x89, 0xc7, //0x00002c5e movq %rax, %r15 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00002c61 jmp LBB1_620 + //0x00002c66 LBB1_618 + 0x3c, 0x2f, //0x00002c66 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00002c68 jne LBB1_620 + 0x89, 0xc1, //0x00002c6e movl %eax, %ecx + //0x00002c70 LBB1_620 + 0x0f, 0xb6, 0xc1, //0x00002c70 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00002c73 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00002c77 movzbl (%rdx,%rax), %eax + 0x89, 0x45, 0xc8, //0x00002c7b movl %eax, $-56(%rbp) + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00002c7e cmpl $255, %eax + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00002c83 je LBB1_623 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002c89 movl $1, %r11d + 0x49, 0x39, 0xdf, //0x00002c8f cmpq %rbx, %r15 + 0x0f, 0x83, 0x31, 0x04, 0x00, 0x00, //0x00002c92 jae LBB1_693 + 0x4c, 0x89, 0xfa, //0x00002c98 movq %r15, %rdx + 0xe9, 0xc8, 0x00, 0x00, 0x00, //0x00002c9b jmp LBB1_639 + //0x00002ca0 LBB1_623 + 0xc7, 0x45, 0xc8, 0x00, 0x00, 0x00, 0x00, //0x00002ca0 movl $0, $-56(%rbp) + 0x45, 0x31, 0xdb, //0x00002ca7 xorl %r11d, %r11d + //0x00002caa LBB1_624 + 0x45, 0x85, 0xe4, //0x00002caa testl %r12d, %r12d + 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x00002cad jne LBB1_696 + 0x41, 0x83, 0xfb, 0x02, //0x00002cb3 cmpl $2, %r11d + 0x0f, 0x82, 0x34, 0x04, 0x00, 0x00, //0x00002cb7 jb LBB1_696 + 0x80, 0xf9, 0x3d, //0x00002cbd cmpb $61, %cl + 0x0f, 0x85, 0x2b, 0x04, 0x00, 0x00, //0x00002cc0 jne LBB1_696 + 0x41, 0xba, 0x05, 0x00, 0x00, 0x00, //0x00002cc6 movl $5, %r10d + 0x45, 0x29, 0xda, //0x00002ccc subl %r11d, %r10d + 0xf6, 0x45, 0xbc, 0x08, //0x00002ccf testb $8, $-68(%rbp) + 0x0f, 0x85, 0xab, 0x01, 0x00, 0x00, //0x00002cd3 jne LBB1_655 + 0x4c, 0x39, 0x7d, 0xd0, //0x00002cd9 cmpq %r15, $-48(%rbp) + 0x0f, 0x86, 0x2a, 0x09, 0x00, 0x00, //0x00002cdd jbe LBB1_720 + 0x49, 0x8d, 0x4f, 0x03, //0x00002ce3 leaq $3(%r15), %rcx + 0x48, 0x8b, 0x5d, 0xa0, //0x00002ce7 movq $-96(%rbp), %rbx + 0x4c, 0x29, 0xfb, //0x00002ceb subq %r15, %rbx + 0x49, 0x8d, 0x57, 0x04, //0x00002cee leaq $4(%r15), %rdx + 0x48, 0x8b, 0x7d, 0x90, //0x00002cf2 movq $-112(%rbp), %rdi + 0x4c, 0x29, 0xff, //0x00002cf6 subq %r15, %rdi + 0xe9, 0x1b, 0x00, 0x00, 0x00, //0x00002cf9 jmp LBB1_631 + 0x90, 0x90, //0x00002cfe .p2align 4, 0x90 + //0x00002d00 LBB1_630 + 0x49, 0xff, 0xc7, //0x00002d00 incq %r15 + 0x48, 0xff, 0xc1, //0x00002d03 incq %rcx + 0x48, 0xff, 0xcb, //0x00002d06 decq %rbx + 0x48, 0xff, 0xc2, //0x00002d09 incq %rdx + 0x48, 0xff, 0xcf, //0x00002d0c decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00002d0f cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0xf0, 0x08, 0x00, 0x00, //0x00002d13 je LBB1_717 + //0x00002d19 LBB1_631 + 0x41, 0x0f, 0xb6, 0x07, //0x00002d19 movzbl (%r15), %eax + 0x3c, 0x0a, //0x00002d1d cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00002d1f je LBB1_630 + 0x3c, 0x0d, //0x00002d25 cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00002d27 je LBB1_630 + 0x3c, 0x3d, //0x00002d2d cmpb $61, %al + 0x0f, 0x85, 0x30, 0x05, 0x00, 0x00, //0x00002d2f jne LBB1_728 + 0x49, 0xff, 0xc7, //0x00002d35 incq %r15 + 0x41, 0x83, 0xfa, 0x02, //0x00002d38 cmpl $2, %r10d + 0x0f, 0x84, 0xaf, 0x03, 0x00, 0x00, //0x00002d3c je LBB1_696 + 0x4c, 0x39, 0x7d, 0xd0, //0x00002d42 cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0x04, 0x03, 0x00, 0x00, //0x00002d46 ja LBB1_682 + 0xe9, 0xbc, 0x08, 0x00, 0x00, //0x00002d4c jmp LBB1_720 + //0x00002d51 LBB1_636 + 0x3c, 0x6e, //0x00002d51 cmpb $110, %al + 0x0f, 0x85, 0x2f, 0x03, 0x00, 0x00, //0x00002d53 jne LBB1_688 + //0x00002d59 LBB1_637 + 0x4d, 0x89, 0xc7, //0x00002d59 movq %r8, %r15 + //0x00002d5c LBB1_638 + 0x4c, 0x89, 0xfa, //0x00002d5c movq %r15, %rdx + 0x49, 0x39, 0xdf, //0x00002d5f cmpq %rbx, %r15 + 0x0f, 0x83, 0x11, 0x01, 0x00, 0x00, //0x00002d62 jae LBB1_675 + //0x00002d68 LBB1_639 + 0x4c, 0x8d, 0x7a, 0x01, //0x00002d68 leaq $1(%rdx), %r15 + 0x0f, 0xb6, 0x0a, //0x00002d6c movzbl (%rdx), %ecx + 0x80, 0xf9, 0x5c, //0x00002d6f cmpb $92, %cl + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x00002d72 jne LBB1_652 + 0x4c, 0x8d, 0x42, 0x02, //0x00002d78 leaq $2(%rdx), %r8 + 0xb1, 0xff, //0x00002d7c movb $-1, %cl + 0x49, 0x39, 0xd8, //0x00002d7e cmpq %rbx, %r8 + 0x0f, 0x87, 0x12, 0x03, 0x00, 0x00, //0x00002d81 ja LBB1_691 + 0x41, 0x0f, 0xb6, 0x07, //0x00002d87 movzbl (%r15), %eax + 0x3c, 0x71, //0x00002d8b cmpb $113, %al + 0x0f, 0x8e, 0xbe, 0xff, 0xff, 0xff, //0x00002d8d jle LBB1_636 + 0x3c, 0x72, //0x00002d93 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00002d95 je LBB1_637 + 0x3c, 0x75, //0x00002d9b cmpb $117, %al + 0x0f, 0x85, 0xef, 0x02, 0x00, 0x00, //0x00002d9d jne LBB1_690 + 0x48, 0x8b, 0x45, 0xd0, //0x00002da3 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00002da7 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002daa cmpq $4, %rax + 0x0f, 0x8c, 0xde, 0x02, 0x00, 0x00, //0x00002dae jl LBB1_690 + 0x41, 0x8b, 0x18, //0x00002db4 movl (%r8), %ebx + 0x89, 0xde, //0x00002db7 movl %ebx, %esi + 0xf7, 0xd6, //0x00002db9 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002dbb leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00002dc1 andl $-2139062144, %esi + 0x85, 0xc6, //0x00002dc7 testl %eax, %esi + 0x0f, 0x85, 0xc3, 0x02, 0x00, 0x00, //0x00002dc9 jne LBB1_690 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00002dcf leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00002dd5 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00002dd7 testl $-2139062144, %eax + 0x0f, 0x85, 0xb0, 0x02, 0x00, 0x00, //0x00002ddc jne LBB1_690 + 0x89, 0xd8, //0x00002de2 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002de4 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002de9 movl $-1061109568, %edi + 0x29, 0xc7, //0x00002dee subl %eax, %edi + 0x44, 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x00002df0 leal $1179010630(%rax), %r10d + 0x21, 0xf7, //0x00002df7 andl %esi, %edi + 0x44, 0x85, 0xd7, //0x00002df9 testl %r10d, %edi + 0x0f, 0x85, 0x90, 0x02, 0x00, 0x00, //0x00002dfc jne LBB1_690 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002e02 movl $-522133280, %edi + 0x29, 0xc7, //0x00002e07 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002e09 addl $960051513, %eax + 0x21, 0xfe, //0x00002e0e andl %edi, %esi + 0x85, 0xc6, //0x00002e10 testl %eax, %esi + 0x0f, 0x85, 0x7a, 0x02, 0x00, 0x00, //0x00002e12 jne LBB1_690 + 0x0f, 0xcb, //0x00002e18 bswapl %ebx + 0x89, 0xd8, //0x00002e1a movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00002e1c shrl $4, %eax + 0xf7, 0xd0, //0x00002e1f notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00002e21 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00002e26 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002e29 andl $252645135, %ebx + 0x01, 0xc3, //0x00002e2f addl %eax, %ebx + 0x89, 0xd9, //0x00002e31 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00002e33 shrl $4, %ecx + 0x09, 0xd9, //0x00002e36 orl %ebx, %ecx + 0x89, 0xc8, //0x00002e38 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002e3a shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002e3d andl $65280, %eax + 0x89, 0xce, //0x00002e42 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00002e44 andl $128, %esi + 0x09, 0xc6, //0x00002e4a orl %eax, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002e4c je LBB1_651 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002e52 movl $255, %ecx + //0x00002e57 LBB1_651 + 0x48, 0x83, 0xc2, 0x06, //0x00002e57 addq $6, %rdx + 0x49, 0x89, 0xd7, //0x00002e5b movq %rdx, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00002e5e movq $-48(%rbp), %rbx + //0x00002e62 LBB1_652 + 0x80, 0xf9, 0x0a, //0x00002e62 cmpb $10, %cl + 0x0f, 0x84, 0xf1, 0xfe, 0xff, 0xff, //0x00002e65 je LBB1_638 + 0x80, 0xf9, 0x0d, //0x00002e6b cmpb $13, %cl + 0x0f, 0x84, 0xe8, 0xfe, 0xff, 0xff, //0x00002e6e je LBB1_638 + 0xe9, 0x20, 0x02, 0x00, 0x00, //0x00002e74 jmp LBB1_691 + //0x00002e79 LBB1_675 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00002e79 movl $1, %r11d + 0xe9, 0x50, 0xfd, 0xff, 0xff, //0x00002e7f jmp LBB1_610 + //0x00002e84 LBB1_655 + 0x48, 0x8b, 0x55, 0xd0, //0x00002e84 movq $-48(%rbp), %rdx + 0x4c, 0x39, 0xfa, //0x00002e88 cmpq %r15, %rdx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00002e8b ja LBB1_658 + 0xe9, 0x77, 0x07, 0x00, 0x00, //0x00002e91 jmp LBB1_720 + //0x00002e96 LBB1_674 + 0x48, 0x89, 0xc1, //0x00002e96 movq %rax, %rcx + 0x49, 0x89, 0xcf, //0x00002e99 movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x00002e9c cmpq %rdx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002e9f jb LBB1_658 + 0xe9, 0x3b, 0x01, 0x00, 0x00, //0x00002ea5 jmp LBB1_719 + //0x00002eaa LBB1_656 + 0x48, 0x89, 0xc8, //0x00002eaa movq %rcx, %rax + 0x49, 0x89, 0xcf, //0x00002ead movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x00002eb0 cmpq %rdx, %rcx + 0x0f, 0x83, 0x2c, 0x01, 0x00, 0x00, //0x00002eb3 jae LBB1_719 + //0x00002eb9 LBB1_658 + 0x49, 0x8d, 0x47, 0x01, //0x00002eb9 leaq $1(%r15), %rax + 0x41, 0x0f, 0xb6, 0x0f, //0x00002ebd movzbl (%r15), %ecx + 0x80, 0xf9, 0x5c, //0x00002ec1 cmpb $92, %cl + 0x0f, 0x85, 0xe6, 0x00, 0x00, 0x00, //0x00002ec4 jne LBB1_671 + 0x49, 0x8d, 0x4f, 0x02, //0x00002eca leaq $2(%r15), %rcx + 0x48, 0x39, 0xd1, //0x00002ece cmpq %rdx, %rcx + 0x0f, 0x87, 0x3b, 0x0a, 0x00, 0x00, //0x00002ed1 ja LBB1_827 + 0x0f, 0xb6, 0x00, //0x00002ed7 movzbl (%rax), %eax + 0x3c, 0x6e, //0x00002eda cmpb $110, %al + 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00002edc je LBB1_656 + 0x3c, 0x72, //0x00002ee2 cmpb $114, %al + 0x0f, 0x84, 0xc0, 0xff, 0xff, 0xff, //0x00002ee4 je LBB1_656 + 0x3c, 0x75, //0x00002eea cmpb $117, %al + 0x0f, 0x85, 0x15, 0x0a, 0x00, 0x00, //0x00002eec jne LBB1_847 + 0x48, 0x89, 0xd0, //0x00002ef2 movq %rdx, %rax + 0x48, 0x29, 0xc8, //0x00002ef5 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00002ef8 cmpq $4, %rax + 0x0f, 0x8c, 0x05, 0x0a, 0x00, 0x00, //0x00002efc jl LBB1_847 + 0x8b, 0x01, //0x00002f02 movl (%rcx), %eax + 0x89, 0xc2, //0x00002f04 movl %eax, %edx + 0xf7, 0xd2, //0x00002f06 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002f08 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x00002f0e andl $-2139062144, %edx + 0x85, 0xf2, //0x00002f14 testl %esi, %edx + 0x0f, 0x85, 0xeb, 0x09, 0x00, 0x00, //0x00002f16 jne LBB1_847 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x00002f1c leal $421075225(%rax), %esi + 0x09, 0xc6, //0x00002f22 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00002f24 testl $-2139062144, %esi + 0x0f, 0x85, 0xd7, 0x09, 0x00, 0x00, //0x00002f2a jne LBB1_847 + 0x89, 0xc6, //0x00002f30 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002f32 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002f38 movl $-1061109568, %edi + 0x29, 0xf7, //0x00002f3d subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00002f3f leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00002f45 andl %edx, %edi + 0x85, 0xdf, //0x00002f47 testl %ebx, %edi + 0x0f, 0x85, 0xb8, 0x09, 0x00, 0x00, //0x00002f49 jne LBB1_847 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002f4f movl $-522133280, %edi + 0x29, 0xf7, //0x00002f54 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00002f56 addl $960051513, %esi + 0x21, 0xfa, //0x00002f5c andl %edi, %edx + 0x85, 0xf2, //0x00002f5e testl %esi, %edx + 0x0f, 0x85, 0xa1, 0x09, 0x00, 0x00, //0x00002f60 jne LBB1_847 + 0x0f, 0xc8, //0x00002f66 bswapl %eax + 0x89, 0xc1, //0x00002f68 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002f6a shrl $4, %ecx + 0xf7, 0xd1, //0x00002f6d notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002f6f andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002f75 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002f78 andl $252645135, %eax + 0x01, 0xc8, //0x00002f7d addl %ecx, %eax + 0x89, 0xc1, //0x00002f7f movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002f81 shrl $4, %ecx + 0x09, 0xc1, //0x00002f84 orl %eax, %ecx + 0x89, 0xc8, //0x00002f86 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002f88 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002f8b andl $65280, %eax + 0x89, 0xca, //0x00002f90 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00002f92 andl $128, %edx + 0x09, 0xc2, //0x00002f98 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00002f9a je LBB1_670 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00002fa0 movl $255, %ecx + //0x00002fa5 LBB1_670 + 0x49, 0x83, 0xc7, 0x06, //0x00002fa5 addq $6, %r15 + 0x4c, 0x89, 0xf8, //0x00002fa9 movq %r15, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00002fac movq $-48(%rbp), %rdx + //0x00002fb0 LBB1_671 + 0x80, 0xf9, 0x0a, //0x00002fb0 cmpb $10, %cl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00002fb3 je LBB1_674 + 0x80, 0xf9, 0x0d, //0x00002fb9 cmpb $13, %cl + 0x0f, 0x84, 0xd4, 0xfe, 0xff, 0xff, //0x00002fbc je LBB1_674 + 0x80, 0xf9, 0x3d, //0x00002fc2 cmpb $61, %cl + 0x0f, 0x85, 0x47, 0x09, 0x00, 0x00, //0x00002fc5 jne LBB1_827 + 0x49, 0x89, 0xc7, //0x00002fcb movq %rax, %r15 + 0x41, 0x83, 0xfa, 0x02, //0x00002fce cmpl $2, %r10d + 0x0f, 0x84, 0x19, 0x01, 0x00, 0x00, //0x00002fd2 je LBB1_696 + 0x48, 0x8b, 0x75, 0xd0, //0x00002fd8 movq $-48(%rbp), %rsi + 0x48, 0x39, 0xc6, //0x00002fdc cmpq %rax, %rsi + 0x0f, 0x87, 0x32, 0x04, 0x00, 0x00, //0x00002fdf ja LBB1_762 + //0x00002fe5 LBB1_719 + 0x49, 0x89, 0xc7, //0x00002fe5 movq %rax, %r15 + 0xe9, 0x20, 0x06, 0x00, 0x00, //0x00002fe8 jmp LBB1_720 + //0x00002fed LBB1_676 + 0x49, 0xff, 0xc7, //0x00002fed incq %r15 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00002ff0 movl $3, %r11d + 0x49, 0x39, 0xdf, //0x00002ff6 cmpq %rbx, %r15 + 0x0f, 0x83, 0xd5, 0xfb, 0xff, 0xff, //0x00002ff9 jae LBB1_610 + //0x00002fff LBB1_677 + 0x41, 0x0f, 0xb6, 0x0f, //0x00002fff movzbl (%r15), %ecx + 0x48, 0x83, 0xf9, 0x0d, //0x00003003 cmpq $13, %rcx + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003007 je LBB1_676 + 0x80, 0xf9, 0x0a, //0x0000300d cmpb $10, %cl + 0x0f, 0x84, 0xd7, 0xff, 0xff, 0xff, //0x00003010 je LBB1_676 + 0x48, 0x8b, 0x45, 0xc0, //0x00003016 movq $-64(%rbp), %rax + 0x0f, 0xb6, 0x04, 0x08, //0x0000301a movzbl (%rax,%rcx), %eax + 0x49, 0xff, 0xc7, //0x0000301e incq %r15 + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x00003021 cmpl $255, %eax + 0x0f, 0x85, 0xa0, 0x05, 0x00, 0x00, //0x00003026 jne LBB1_790 + //0x0000302c LBB1_791 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x0000302c movl $3, %r11d + 0xe9, 0x73, 0xfc, 0xff, 0xff, //0x00003032 jmp LBB1_624 + //0x00003037 LBB1_681 + 0x49, 0xff, 0xc7, //0x00003037 incq %r15 + 0x48, 0xff, 0xc1, //0x0000303a incq %rcx + 0x48, 0xff, 0xcb, //0x0000303d decq %rbx + 0x48, 0xff, 0xc2, //0x00003040 incq %rdx + 0x48, 0xff, 0xcf, //0x00003043 decq %rdi + 0x4c, 0x39, 0x7d, 0xd0, //0x00003046 cmpq %r15, $-48(%rbp) + 0x0f, 0x84, 0xb9, 0x05, 0x00, 0x00, //0x0000304a je LBB1_717 + //0x00003050 LBB1_682 + 0x41, 0x0f, 0xb6, 0x07, //0x00003050 movzbl (%r15), %eax + 0x3c, 0x0a, //0x00003054 cmpb $10, %al + 0x0f, 0x84, 0xdb, 0xff, 0xff, 0xff, //0x00003056 je LBB1_681 + 0x3c, 0x0d, //0x0000305c cmpb $13, %al + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x0000305e je LBB1_681 + 0x3c, 0x3d, //0x00003064 cmpb $61, %al + 0x0f, 0x85, 0xf9, 0x01, 0x00, 0x00, //0x00003066 jne LBB1_728 + 0x49, 0xff, 0xc7, //0x0000306c incq %r15 + 0x41, 0x83, 0xfa, 0x03, //0x0000306f cmpl $3, %r10d + 0x0f, 0x84, 0x78, 0x00, 0x00, 0x00, //0x00003073 je LBB1_696 + 0x4c, 0x39, 0x7d, 0xd0, //0x00003079 cmpq %r15, $-48(%rbp) + 0x0f, 0x87, 0xe7, 0x04, 0x00, 0x00, //0x0000307d ja LBB1_780 + 0xe9, 0x85, 0x05, 0x00, 0x00, //0x00003083 jmp LBB1_720 + //0x00003088 LBB1_688 + 0x3c, 0x2f, //0x00003088 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x0000308a jne LBB1_690 + 0x89, 0xc1, //0x00003090 movl %eax, %ecx + //0x00003092 LBB1_690 + 0x4d, 0x89, 0xc7, //0x00003092 movq %r8, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x00003095 movq $-48(%rbp), %rbx + //0x00003099 LBB1_691 + 0x0f, 0xb6, 0xc1, //0x00003099 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x0000309c movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x000030a0 movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000030a4 cmpl $255, %eax + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x000030a9 je LBB1_716 + 0x8b, 0x4d, 0xc8, //0x000030af movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000030b2 shll $6, %ecx + 0x09, 0xc1, //0x000030b5 orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x000030b7 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000030ba movl $2, %r11d + 0x49, 0x39, 0xdf, //0x000030c0 cmpq %rbx, %r15 + 0x0f, 0x82, 0x7e, 0x00, 0x00, 0x00, //0x000030c3 jb LBB1_701 + //0x000030c9 LBB1_693 + 0x45, 0x85, 0xe4, //0x000030c9 testl %r12d, %r12d + 0x0f, 0x94, 0xc0, //0x000030cc sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000030cf cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000030d3 sete %cl + 0x49, 0x39, 0xdf, //0x000030d6 cmpq %rbx, %r15 + 0x0f, 0x82, 0x2e, 0x05, 0x00, 0x00, //0x000030d9 jb LBB1_720 + 0x41, 0x83, 0xfb, 0x04, //0x000030df cmpl $4, %r11d + 0x0f, 0x84, 0x24, 0x05, 0x00, 0x00, //0x000030e3 je LBB1_720 + 0x08, 0xc8, //0x000030e9 orb %cl, %al + 0x0f, 0x84, 0x1c, 0x05, 0x00, 0x00, //0x000030eb je LBB1_720 + //0x000030f1 LBB1_696 + 0x49, 0x8d, 0x4f, 0x01, //0x000030f1 leaq $1(%r15), %rcx + 0x4c, 0x39, 0x7d, 0xd0, //0x000030f5 cmpq %r15, $-48(%rbp) + 0x49, 0x0f, 0x45, 0xcf, //0x000030f9 cmovneq %r15, %rcx + 0x4c, 0x29, 0xc9, //0x000030fd subq %r9, %rcx + 0x0f, 0x85, 0x9a, 0x18, 0x00, 0x00, //0x00003100 jne LBB1_1137 + 0x4d, 0x89, 0xcf, //0x00003106 movq %r9, %r15 + 0x48, 0x8b, 0x55, 0xb0, //0x00003109 movq $-80(%rbp), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x0000310d movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00003111 cmpq %rdx, %r14 + 0x0f, 0x83, 0x55, 0xf8, 0xff, 0xff, //0x00003114 jae LBB1_727 + 0xe9, 0x0b, 0x08, 0x00, 0x00, //0x0000311a jmp LBB1_852 + //0x0000311f LBB1_716 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000311f movl $1, %r11d + 0xe9, 0x80, 0xfb, 0xff, 0xff, //0x00003125 jmp LBB1_624 + //0x0000312a LBB1_698 + 0x3c, 0x6e, //0x0000312a cmpb $110, %al + 0x0f, 0x85, 0x41, 0x01, 0x00, 0x00, //0x0000312c jne LBB1_734 + //0x00003132 LBB1_699 + 0x48, 0x89, 0xd7, //0x00003132 movq %rdx, %rdi + //0x00003135 LBB1_700 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003135 movl $2, %r11d + 0x49, 0x89, 0xff, //0x0000313b movq %rdi, %r15 + 0x48, 0x39, 0xdf, //0x0000313e cmpq %rbx, %rdi + 0x0f, 0x83, 0x16, 0x01, 0x00, 0x00, //0x00003141 jae LBB1_718 + //0x00003147 LBB1_701 + 0x49, 0x8d, 0x7f, 0x01, //0x00003147 leaq $1(%r15), %rdi + 0x41, 0x0f, 0xb6, 0x0f, //0x0000314b movzbl (%r15), %ecx + 0x80, 0xf9, 0x5c, //0x0000314f cmpb $92, %cl + 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x00003152 jne LBB1_714 + 0x49, 0x8d, 0x57, 0x02, //0x00003158 leaq $2(%r15), %rdx + 0xb1, 0xff, //0x0000315c movb $-1, %cl + 0x48, 0x39, 0xda, //0x0000315e cmpq %rbx, %rdx + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00003161 ja LBB1_737 + 0x0f, 0xb6, 0x07, //0x00003167 movzbl (%rdi), %eax + 0x3c, 0x71, //0x0000316a cmpb $113, %al + 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x0000316c jle LBB1_698 + 0x3c, 0x72, //0x00003172 cmpb $114, %al + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00003174 je LBB1_699 + 0x3c, 0x75, //0x0000317a cmpb $117, %al + 0x0f, 0x85, 0xfb, 0x00, 0x00, 0x00, //0x0000317c jne LBB1_736 + 0x48, 0x89, 0xd8, //0x00003182 movq %rbx, %rax + 0x48, 0x29, 0xd0, //0x00003185 subq %rdx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00003188 cmpq $4, %rax + 0x0f, 0x8c, 0xeb, 0x00, 0x00, 0x00, //0x0000318c jl LBB1_736 + 0x8b, 0x02, //0x00003192 movl (%rdx), %eax + 0x89, 0xc6, //0x00003194 movl %eax, %esi + 0xf7, 0xd6, //0x00003196 notl %esi + 0x8d, 0xb8, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003198 leal $-808464432(%rax), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000319e andl $-2139062144, %esi + 0x85, 0xfe, //0x000031a4 testl %edi, %esi + 0x0f, 0x85, 0xd1, 0x00, 0x00, 0x00, //0x000031a6 jne LBB1_736 + 0x8d, 0xb8, 0x19, 0x19, 0x19, 0x19, //0x000031ac leal $421075225(%rax), %edi + 0x09, 0xc7, //0x000031b2 orl %eax, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x000031b4 testl $-2139062144, %edi + 0x0f, 0x85, 0xbd, 0x00, 0x00, 0x00, //0x000031ba jne LBB1_736 + 0x89, 0xc7, //0x000031c0 movl %eax, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x000031c2 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000031c8 movl $-1061109568, %ebx + 0x29, 0xfb, //0x000031cd subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000031cf leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000031d6 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000031d8 testl %r8d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x000031db movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x98, 0x00, 0x00, 0x00, //0x000031df jne LBB1_736 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000031e5 movl $-522133280, %ebx + 0x29, 0xfb, //0x000031ea subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000031ec addl $960051513, %edi + 0x21, 0xde, //0x000031f2 andl %ebx, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x000031f4 movq $-48(%rbp), %rbx + 0x85, 0xfe, //0x000031f8 testl %edi, %esi + 0x0f, 0x85, 0x7d, 0x00, 0x00, 0x00, //0x000031fa jne LBB1_736 + 0x0f, 0xc8, //0x00003200 bswapl %eax + 0x89, 0xc1, //0x00003202 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00003204 shrl $4, %ecx + 0xf7, 0xd1, //0x00003207 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00003209 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000320f leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003212 andl $252645135, %eax + 0x01, 0xc8, //0x00003217 addl %ecx, %eax + 0x89, 0xc1, //0x00003219 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000321b shrl $4, %ecx + 0x09, 0xc1, //0x0000321e orl %eax, %ecx + 0x89, 0xc8, //0x00003220 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00003222 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00003225 andl $65280, %eax + 0x89, 0xca, //0x0000322a movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000322c andl $128, %edx + 0x09, 0xc2, //0x00003232 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003234 je LBB1_713 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x0000323a movl $255, %ecx + //0x0000323f LBB1_713 + 0x49, 0x83, 0xc7, 0x06, //0x0000323f addq $6, %r15 + 0x4c, 0x89, 0xff, //0x00003243 movq %r15, %rdi + //0x00003246 LBB1_714 + 0x80, 0xf9, 0x0a, //0x00003246 cmpb $10, %cl + 0x0f, 0x84, 0xe6, 0xfe, 0xff, 0xff, //0x00003249 je LBB1_700 + 0x80, 0xf9, 0x0d, //0x0000324f cmpb $13, %cl + 0x0f, 0x84, 0xdd, 0xfe, 0xff, 0xff, //0x00003252 je LBB1_700 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x00003258 jmp LBB1_737 + //0x0000325d LBB1_718 + 0x49, 0x89, 0xff, //0x0000325d movq %rdi, %r15 + 0xe9, 0x6f, 0xf9, 0xff, 0xff, //0x00003260 jmp LBB1_610 + //0x00003265 LBB1_728 + 0x49, 0xff, 0xc7, //0x00003265 incq %r15 + 0x4c, 0x89, 0xfa, //0x00003268 movq %r15, %rdx + //0x0000326b LBB1_729 + 0x49, 0x89, 0xd7, //0x0000326b movq %rdx, %r15 + 0xe9, 0x7e, 0xfe, 0xff, 0xff, //0x0000326e jmp LBB1_696 + //0x00003273 LBB1_734 + 0x3c, 0x2f, //0x00003273 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x00003275 jne LBB1_736 + 0x89, 0xc1, //0x0000327b movl %eax, %ecx + //0x0000327d LBB1_736 + 0x48, 0x89, 0xd7, //0x0000327d movq %rdx, %rdi + //0x00003280 LBB1_737 + 0x0f, 0xb6, 0xc1, //0x00003280 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x00003283 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x00003287 movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x0000328b cmpl $255, %eax + 0x0f, 0x84, 0x50, 0x01, 0x00, 0x00, //0x00003290 je LBB1_758 + 0x8b, 0x4d, 0xc8, //0x00003296 movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x00003299 shll $6, %ecx + 0x09, 0xc1, //0x0000329c orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x0000329e movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000032a1 movl $3, %r11d + 0x48, 0x39, 0xdf, //0x000032a7 cmpq %rbx, %rdi + 0x0f, 0x82, 0x25, 0x00, 0x00, 0x00, //0x000032aa jb LBB1_743 + 0x49, 0x89, 0xff, //0x000032b0 movq %rdi, %r15 + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x000032b3 jmp LBB1_693 + //0x000032b8 LBB1_740 + 0x3c, 0x6e, //0x000032b8 cmpb $110, %al + 0x0f, 0x85, 0xe5, 0x02, 0x00, 0x00, //0x000032ba jne LBB1_786 + //0x000032c0 LBB1_741 + 0x4d, 0x89, 0xc7, //0x000032c0 movq %r8, %r15 + //0x000032c3 LBB1_742 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000032c3 movl $3, %r11d + 0x4c, 0x89, 0xff, //0x000032c9 movq %r15, %rdi + 0x49, 0x39, 0xdf, //0x000032cc cmpq %rbx, %r15 + 0x0f, 0x83, 0xff, 0xf8, 0xff, 0xff, //0x000032cf jae LBB1_610 + //0x000032d5 LBB1_743 + 0x4c, 0x8d, 0x7f, 0x01, //0x000032d5 leaq $1(%rdi), %r15 + 0x0f, 0xb6, 0x0f, //0x000032d9 movzbl (%rdi), %ecx + 0x80, 0xf9, 0x5c, //0x000032dc cmpb $92, %cl + 0x0f, 0x85, 0xea, 0x00, 0x00, 0x00, //0x000032df jne LBB1_756 + 0x4c, 0x8d, 0x47, 0x02, //0x000032e5 leaq $2(%rdi), %r8 + 0xb1, 0xff, //0x000032e9 movb $-1, %cl + 0x49, 0x39, 0xd8, //0x000032eb cmpq %rbx, %r8 + 0x0f, 0x87, 0xc2, 0x02, 0x00, 0x00, //0x000032ee ja LBB1_789 + 0x41, 0x0f, 0xb6, 0x07, //0x000032f4 movzbl (%r15), %eax + 0x3c, 0x71, //0x000032f8 cmpb $113, %al + 0x0f, 0x8e, 0xb8, 0xff, 0xff, 0xff, //0x000032fa jle LBB1_740 + 0x3c, 0x72, //0x00003300 cmpb $114, %al + 0x0f, 0x84, 0xb8, 0xff, 0xff, 0xff, //0x00003302 je LBB1_741 + 0x3c, 0x75, //0x00003308 cmpb $117, %al + 0x0f, 0x85, 0x9f, 0x02, 0x00, 0x00, //0x0000330a jne LBB1_788 + 0x48, 0x8b, 0x45, 0xd0, //0x00003310 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xc0, //0x00003314 subq %r8, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00003317 cmpq $4, %rax + 0x0f, 0x8c, 0x8e, 0x02, 0x00, 0x00, //0x0000331b jl LBB1_788 + 0x41, 0x8b, 0x18, //0x00003321 movl (%r8), %ebx + 0x89, 0xde, //0x00003324 movl %ebx, %esi + 0xf7, 0xd6, //0x00003326 notl %esi + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003328 leal $-808464432(%rbx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000332e andl $-2139062144, %esi + 0x85, 0xc6, //0x00003334 testl %eax, %esi + 0x0f, 0x85, 0x73, 0x02, 0x00, 0x00, //0x00003336 jne LBB1_788 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x0000333c leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00003342 orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00003344 testl $-2139062144, %eax + 0x0f, 0x85, 0x60, 0x02, 0x00, 0x00, //0x00003349 jne LBB1_788 + 0x89, 0xd8, //0x0000334f movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003351 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003356 movl $-1061109568, %edx + 0x29, 0xc2, //0x0000335b subl %eax, %edx + 0x44, 0x8d, 0x90, 0x46, 0x46, 0x46, 0x46, //0x0000335d leal $1179010630(%rax), %r10d + 0x21, 0xf2, //0x00003364 andl %esi, %edx + 0x44, 0x85, 0xd2, //0x00003366 testl %r10d, %edx + 0x0f, 0x85, 0x40, 0x02, 0x00, 0x00, //0x00003369 jne LBB1_788 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000336f movl $-522133280, %edx + 0x29, 0xc2, //0x00003374 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00003376 addl $960051513, %eax + 0x21, 0xd6, //0x0000337b andl %edx, %esi + 0x85, 0xc6, //0x0000337d testl %eax, %esi + 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x0000337f jne LBB1_788 + 0x0f, 0xcb, //0x00003385 bswapl %ebx + 0x89, 0xd8, //0x00003387 movl %ebx, %eax + 0xc1, 0xe8, 0x04, //0x00003389 shrl $4, %eax + 0xf7, 0xd0, //0x0000338c notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000338e andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003393 leal (%rax,%rax,8), %eax + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003396 andl $252645135, %ebx + 0x01, 0xc3, //0x0000339c addl %eax, %ebx + 0x89, 0xd9, //0x0000339e movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x000033a0 shrl $4, %ecx + 0x09, 0xd9, //0x000033a3 orl %ebx, %ecx + 0x89, 0xc8, //0x000033a5 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000033a7 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000033aa andl $65280, %eax + 0x89, 0xca, //0x000033af movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000033b1 andl $128, %edx + 0x09, 0xc2, //0x000033b7 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000033b9 je LBB1_755 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000033bf movl $255, %ecx + //0x000033c4 LBB1_755 + 0x48, 0x83, 0xc7, 0x06, //0x000033c4 addq $6, %rdi + 0x49, 0x89, 0xff, //0x000033c8 movq %rdi, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000033cb movq $-48(%rbp), %rbx + //0x000033cf LBB1_756 + 0x80, 0xf9, 0x0a, //0x000033cf cmpb $10, %cl + 0x0f, 0x84, 0xeb, 0xfe, 0xff, 0xff, //0x000033d2 je LBB1_742 + 0x80, 0xf9, 0x0d, //0x000033d8 cmpb $13, %cl + 0x0f, 0x84, 0xe2, 0xfe, 0xff, 0xff, //0x000033db je LBB1_742 + 0xe9, 0xd0, 0x01, 0x00, 0x00, //0x000033e1 jmp LBB1_789 + //0x000033e6 LBB1_758 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000033e6 movl $2, %r11d + 0x49, 0x89, 0xff, //0x000033ec movq %rdi, %r15 + 0xe9, 0xb6, 0xf8, 0xff, 0xff, //0x000033ef jmp LBB1_624 + //0x000033f4 LBB1_778 + 0x4c, 0x89, 0xf9, //0x000033f4 movq %r15, %rcx + 0x48, 0x89, 0xc8, //0x000033f7 movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x000033fa cmpq %rsi, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000033fd jb LBB1_762 + 0xe9, 0x05, 0x02, 0x00, 0x00, //0x00003403 jmp LBB1_720 + //0x00003408 LBB1_760 + 0x49, 0x89, 0xcf, //0x00003408 movq %rcx, %r15 + 0x48, 0x89, 0xc8, //0x0000340b movq %rcx, %rax + 0x48, 0x39, 0xf1, //0x0000340e cmpq %rsi, %rcx + 0x0f, 0x83, 0xf6, 0x01, 0x00, 0x00, //0x00003411 jae LBB1_720 + //0x00003417 LBB1_762 + 0x4c, 0x8d, 0x78, 0x01, //0x00003417 leaq $1(%rax), %r15 + 0x0f, 0xb6, 0x08, //0x0000341b movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x0000341e cmpb $92, %cl + 0x0f, 0x85, 0xee, 0x00, 0x00, 0x00, //0x00003421 jne LBB1_775 + 0x48, 0x8d, 0x48, 0x02, //0x00003427 leaq $2(%rax), %rcx + 0x48, 0x39, 0xf1, //0x0000342b cmpq %rsi, %rcx + 0x0f, 0x87, 0xdb, 0x04, 0x00, 0x00, //0x0000342e ja LBB1_848 + 0x41, 0x0f, 0xb6, 0x17, //0x00003434 movzbl (%r15), %edx + 0x80, 0xfa, 0x6e, //0x00003438 cmpb $110, %dl + 0x0f, 0x84, 0xc7, 0xff, 0xff, 0xff, //0x0000343b je LBB1_760 + 0x80, 0xfa, 0x72, //0x00003441 cmpb $114, %dl + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00003444 je LBB1_760 + 0x80, 0xfa, 0x75, //0x0000344a cmpb $117, %dl + 0x0f, 0x85, 0xb4, 0x04, 0x00, 0x00, //0x0000344d jne LBB1_847 + 0x48, 0x89, 0xf2, //0x00003453 movq %rsi, %rdx + 0x48, 0x29, 0xca, //0x00003456 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00003459 cmpq $4, %rdx + 0x0f, 0x8c, 0xa4, 0x04, 0x00, 0x00, //0x0000345d jl LBB1_847 + 0x8b, 0x11, //0x00003463 movl (%rcx), %edx + 0x89, 0xd6, //0x00003465 movl %edx, %esi + 0xf7, 0xd6, //0x00003467 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003469 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000346f andl $-2139062144, %esi + 0x85, 0xfe, //0x00003475 testl %edi, %esi + 0x0f, 0x85, 0x8a, 0x04, 0x00, 0x00, //0x00003477 jne LBB1_847 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x0000347d leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x00003483 orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00003485 testl $-2139062144, %edi + 0x0f, 0x85, 0x76, 0x04, 0x00, 0x00, //0x0000348b jne LBB1_847 + 0x89, 0xd7, //0x00003491 movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003493 andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003499 movl $-1061109568, %ebx + 0x29, 0xfb, //0x0000349e subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x000034a0 leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x000034a7 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x000034a9 testl %r8d, %ebx + 0x0f, 0x85, 0x55, 0x04, 0x00, 0x00, //0x000034ac jne LBB1_847 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000034b2 movl $-522133280, %ebx + 0x29, 0xfb, //0x000034b7 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x000034b9 addl $960051513, %edi + 0x21, 0xde, //0x000034bf andl %ebx, %esi + 0x85, 0xfe, //0x000034c1 testl %edi, %esi + 0x0f, 0x85, 0x3e, 0x04, 0x00, 0x00, //0x000034c3 jne LBB1_847 + 0x0f, 0xca, //0x000034c9 bswapl %edx + 0x89, 0xd1, //0x000034cb movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000034cd shrl $4, %ecx + 0xf7, 0xd1, //0x000034d0 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000034d2 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000034d8 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000034db andl $252645135, %edx + 0x01, 0xca, //0x000034e1 addl %ecx, %edx + 0x89, 0xd1, //0x000034e3 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000034e5 shrl $4, %ecx + 0x09, 0xd1, //0x000034e8 orl %edx, %ecx + 0x89, 0xca, //0x000034ea movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x000034ec shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000034ef andl $65280, %edx + 0x89, 0xce, //0x000034f5 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000034f7 andl $128, %esi + 0x09, 0xd6, //0x000034fd orl %edx, %esi + 0x48, 0x8b, 0x75, 0xd0, //0x000034ff movq $-48(%rbp), %rsi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003503 je LBB1_774 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00003509 movl $255, %ecx + //0x0000350e LBB1_774 + 0x48, 0x83, 0xc0, 0x06, //0x0000350e addq $6, %rax + 0x49, 0x89, 0xc7, //0x00003512 movq %rax, %r15 + //0x00003515 LBB1_775 + 0x80, 0xf9, 0x0a, //0x00003515 cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x00003518 je LBB1_778 + 0x80, 0xf9, 0x0d, //0x0000351e cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00003521 je LBB1_778 + 0x80, 0xf9, 0x3d, //0x00003527 cmpb $61, %cl + 0x0f, 0x85, 0xc1, 0xfb, 0xff, 0xff, //0x0000352a jne LBB1_696 + 0x41, 0x83, 0xfa, 0x03, //0x00003530 cmpl $3, %r10d + 0x0f, 0x84, 0xb7, 0xfb, 0xff, 0xff, //0x00003534 je LBB1_696 + 0x4c, 0x39, 0x7d, 0xd0, //0x0000353a cmpq %r15, $-48(%rbp) + 0x0f, 0x86, 0xc9, 0x00, 0x00, 0x00, //0x0000353e jbe LBB1_720 + 0x48, 0x8b, 0x55, 0xd0, //0x00003544 movq $-48(%rbp), %rdx + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00003548 jmp LBB1_803 + //0x0000354d LBB1_759 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000354d movl $2, %r11d + 0xe9, 0x52, 0xf7, 0xff, 0xff, //0x00003553 jmp LBB1_624 + //0x00003558 LBB1_779 + 0x48, 0xff, 0xc1, //0x00003558 incq %rcx + 0x48, 0xff, 0xc2, //0x0000355b incq %rdx + 0x48, 0xff, 0xcf, //0x0000355e decq %rdi + 0x48, 0xff, 0xcb, //0x00003561 decq %rbx + 0x0f, 0x84, 0x9f, 0x00, 0x00, 0x00, //0x00003564 je LBB1_717 + //0x0000356a LBB1_780 + 0x0f, 0xb6, 0x41, 0xff, //0x0000356a movzbl $-1(%rcx), %eax + 0x3c, 0x0a, //0x0000356e cmpb $10, %al + 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x00003570 je LBB1_779 + 0x3c, 0x0d, //0x00003576 cmpb $13, %al + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00003578 je LBB1_779 + 0x3c, 0x3d, //0x0000357e cmpb $61, %al + 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x00003580 jne LBB1_821 + 0x49, 0x89, 0xcf, //0x00003586 movq %rcx, %r15 + 0x41, 0x83, 0xfa, 0x04, //0x00003589 cmpl $4, %r10d + 0x0f, 0x84, 0x5e, 0xfb, 0xff, 0xff, //0x0000358d je LBB1_696 + 0x48, 0x39, 0x4d, 0xd0, //0x00003593 cmpq %rcx, $-48(%rbp) + 0x0f, 0x87, 0x51, 0x00, 0x00, 0x00, //0x00003597 ja LBB1_798 + 0x49, 0x89, 0xcf, //0x0000359d movq %rcx, %r15 + 0xe9, 0x68, 0x00, 0x00, 0x00, //0x000035a0 jmp LBB1_720 + //0x000035a5 LBB1_786 + 0x3c, 0x2f, //0x000035a5 cmpb $47, %al + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000035a7 jne LBB1_788 + 0x89, 0xc1, //0x000035ad movl %eax, %ecx + //0x000035af LBB1_788 + 0x4d, 0x89, 0xc7, //0x000035af movq %r8, %r15 + 0x48, 0x8b, 0x5d, 0xd0, //0x000035b2 movq $-48(%rbp), %rbx + //0x000035b6 LBB1_789 + 0x0f, 0xb6, 0xc1, //0x000035b6 movzbl %cl, %eax + 0x48, 0x8b, 0x55, 0xc0, //0x000035b9 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x04, 0x02, //0x000035bd movzbl (%rdx,%rax), %eax + 0x3d, 0xff, 0x00, 0x00, 0x00, //0x000035c1 cmpl $255, %eax + 0x0f, 0x84, 0x60, 0xfa, 0xff, 0xff, //0x000035c6 je LBB1_791 + //0x000035cc LBB1_790 + 0x8b, 0x4d, 0xc8, //0x000035cc movl $-56(%rbp), %ecx + 0xc1, 0xe1, 0x06, //0x000035cf shll $6, %ecx + 0x09, 0xc1, //0x000035d2 orl %eax, %ecx + 0x89, 0x4d, 0xc8, //0x000035d4 movl %ecx, $-56(%rbp) + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000035d7 movl $4, %r11d + 0xe9, 0xe7, 0xfa, 0xff, 0xff, //0x000035dd jmp LBB1_693 + //0x000035e2 LBB1_797 + 0x48, 0xff, 0xc2, //0x000035e2 incq %rdx + 0x48, 0xff, 0xcf, //0x000035e5 decq %rdi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000035e8 je LBB1_717 + //0x000035ee LBB1_798 + 0x0f, 0xb6, 0x42, 0xff, //0x000035ee movzbl $-1(%rdx), %eax + 0x3c, 0x0a, //0x000035f2 cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x000035f4 je LBB1_797 + 0x3c, 0x0d, //0x000035fa cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x000035fc je LBB1_797 + 0x3c, 0x3d, //0x00003602 cmpb $61, %al + 0xe9, 0x62, 0xfc, 0xff, 0xff, //0x00003604 jmp LBB1_729 + //0x00003609 LBB1_717 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00003609 movq $-48(%rbp), %r15 + //0x0000360d LBB1_720 + 0xb0, 0x04, //0x0000360d movb $4, %al + 0x44, 0x28, 0xd8, //0x0000360f subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x00003612 movzbl %al, %eax + 0x01, 0xc0, //0x00003615 addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x00003617 leal (%rax,%rax,2), %ecx + 0x8b, 0x45, 0xc8, //0x0000361a movl $-56(%rbp), %eax + 0xd3, 0xe0, //0x0000361d shll %cl, %eax + 0x41, 0x83, 0xfb, 0x02, //0x0000361f cmpl $2, %r11d + 0x48, 0x8b, 0x55, 0xb0, //0x00003623 movq $-80(%rbp), %rdx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003627 je LBB1_725 + 0x41, 0x83, 0xfb, 0x03, //0x0000362d cmpl $3, %r11d + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00003631 je LBB1_724 + 0x41, 0x83, 0xfb, 0x04, //0x00003637 cmpl $4, %r11d + 0x0f, 0x85, 0x0b, 0x00, 0x00, 0x00, //0x0000363b jne LBB1_726 + 0x88, 0x42, 0x02, //0x00003641 movb %al, $2(%rdx) + //0x00003644 LBB1_724 + 0x88, 0x62, 0x01, //0x00003644 movb %ah, $1(%rdx) + //0x00003647 LBB1_725 + 0xc1, 0xe8, 0x10, //0x00003647 shrl $16, %eax + 0x88, 0x02, //0x0000364a movb %al, (%rdx) + //0x0000364c LBB1_726 + 0x44, 0x89, 0xd8, //0x0000364c movl %r11d, %eax + 0x48, 0x8d, 0x54, 0x02, 0xff, //0x0000364f leaq $-1(%rdx,%rax), %rdx + 0x48, 0x89, 0x55, 0xb0, //0x00003654 movq %rdx, $-80(%rbp) + 0x49, 0x39, 0xd6, //0x00003658 cmpq %rdx, %r14 + 0x0f, 0x83, 0x0e, 0xf3, 0xff, 0xff, //0x0000365b jae LBB1_727 + 0xe9, 0xc4, 0x02, 0x00, 0x00, //0x00003661 jmp LBB1_852 + //0x00003666 LBB1_802 + 0x48, 0x89, 0xc1, //0x00003666 movq %rax, %rcx + 0x48, 0x8b, 0x55, 0xd0, //0x00003669 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xcf, //0x0000366d movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x00003670 cmpq %rdx, %rcx + 0x0f, 0x83, 0x6c, 0xf9, 0xff, 0xff, //0x00003673 jae LBB1_719 + //0x00003679 LBB1_803 + 0x49, 0x8d, 0x47, 0x01, //0x00003679 leaq $1(%r15), %rax + 0x41, 0x0f, 0xb6, 0x0f, //0x0000367d movzbl (%r15), %ecx + 0x80, 0xf9, 0x5c, //0x00003681 cmpb $92, %cl + 0x0f, 0x85, 0xe3, 0x00, 0x00, 0x00, //0x00003684 jne LBB1_816 + 0x49, 0x8d, 0x4f, 0x02, //0x0000368a leaq $2(%r15), %rcx + 0x48, 0x39, 0xd1, //0x0000368e cmpq %rdx, %rcx + 0x0f, 0x87, 0x7b, 0x02, 0x00, 0x00, //0x00003691 ja LBB1_827 + 0x0f, 0xb6, 0x00, //0x00003697 movzbl (%rax), %eax + 0x3c, 0x6e, //0x0000369a cmpb $110, %al + 0x0f, 0x84, 0xe2, 0x00, 0x00, 0x00, //0x0000369c je LBB1_818 + 0x3c, 0x72, //0x000036a2 cmpb $114, %al + 0x0f, 0x84, 0xda, 0x00, 0x00, 0x00, //0x000036a4 je LBB1_818 + 0x3c, 0x75, //0x000036aa cmpb $117, %al + 0x0f, 0x85, 0x55, 0x02, 0x00, 0x00, //0x000036ac jne LBB1_847 + 0x48, 0x8b, 0x45, 0xd0, //0x000036b2 movq $-48(%rbp), %rax + 0x48, 0x29, 0xc8, //0x000036b6 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x000036b9 cmpq $4, %rax + 0x0f, 0x8c, 0x44, 0x02, 0x00, 0x00, //0x000036bd jl LBB1_847 + 0x8b, 0x01, //0x000036c3 movl (%rcx), %eax + 0x89, 0xc2, //0x000036c5 movl %eax, %edx + 0xf7, 0xd2, //0x000036c7 notl %edx + 0x8d, 0xb0, 0xd0, 0xcf, 0xcf, 0xcf, //0x000036c9 leal $-808464432(%rax), %esi + 0x81, 0xe2, 0x80, 0x80, 0x80, 0x80, //0x000036cf andl $-2139062144, %edx + 0x85, 0xf2, //0x000036d5 testl %esi, %edx + 0x0f, 0x85, 0x2a, 0x02, 0x00, 0x00, //0x000036d7 jne LBB1_847 + 0x8d, 0xb0, 0x19, 0x19, 0x19, 0x19, //0x000036dd leal $421075225(%rax), %esi + 0x09, 0xc6, //0x000036e3 orl %eax, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x000036e5 testl $-2139062144, %esi + 0x0f, 0x85, 0x16, 0x02, 0x00, 0x00, //0x000036eb jne LBB1_847 + 0x89, 0xc6, //0x000036f1 movl %eax, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x000036f3 andl $2139062143, %esi + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x000036f9 movl $-1061109568, %edi + 0x29, 0xf7, //0x000036fe subl %esi, %edi + 0x8d, 0x9e, 0x46, 0x46, 0x46, 0x46, //0x00003700 leal $1179010630(%rsi), %ebx + 0x21, 0xd7, //0x00003706 andl %edx, %edi + 0x85, 0xdf, //0x00003708 testl %ebx, %edi + 0x0f, 0x85, 0xf7, 0x01, 0x00, 0x00, //0x0000370a jne LBB1_847 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003710 movl $-522133280, %edi + 0x29, 0xf7, //0x00003715 subl %esi, %edi + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00003717 addl $960051513, %esi + 0x21, 0xfa, //0x0000371d andl %edi, %edx + 0x85, 0xf2, //0x0000371f testl %esi, %edx + 0x0f, 0x85, 0xe0, 0x01, 0x00, 0x00, //0x00003721 jne LBB1_847 + 0x0f, 0xc8, //0x00003727 bswapl %eax + 0x89, 0xc1, //0x00003729 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x0000372b shrl $4, %ecx + 0xf7, 0xd1, //0x0000372e notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00003730 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00003736 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003739 andl $252645135, %eax + 0x01, 0xc8, //0x0000373e addl %ecx, %eax + 0x89, 0xc1, //0x00003740 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00003742 shrl $4, %ecx + 0x09, 0xc1, //0x00003745 orl %eax, %ecx + 0x89, 0xc8, //0x00003747 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00003749 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000374c andl $65280, %eax + 0x89, 0xca, //0x00003751 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x00003753 andl $128, %edx + 0x09, 0xc2, //0x00003759 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x0000375b je LBB1_815 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00003761 movl $255, %ecx + //0x00003766 LBB1_815 + 0x49, 0x83, 0xc7, 0x06, //0x00003766 addq $6, %r15 + 0x4c, 0x89, 0xf8, //0x0000376a movq %r15, %rax + //0x0000376d LBB1_816 + 0x80, 0xf9, 0x0a, //0x0000376d cmpb $10, %cl + 0x0f, 0x84, 0xf0, 0xfe, 0xff, 0xff, //0x00003770 je LBB1_802 + 0x80, 0xf9, 0x0d, //0x00003776 cmpb $13, %cl + 0x0f, 0x84, 0xe7, 0xfe, 0xff, 0xff, //0x00003779 je LBB1_802 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x0000377f jmp LBB1_823 + //0x00003784 LBB1_818 + 0x48, 0x89, 0xc8, //0x00003784 movq %rcx, %rax + 0x48, 0x8b, 0x55, 0xd0, //0x00003787 movq $-48(%rbp), %rdx + 0x49, 0x89, 0xcf, //0x0000378b movq %rcx, %r15 + 0x48, 0x39, 0xd1, //0x0000378e cmpq %rdx, %rcx + 0x0f, 0x82, 0xe2, 0xfe, 0xff, 0xff, //0x00003791 jb LBB1_803 + 0xe9, 0x49, 0xf8, 0xff, 0xff, //0x00003797 jmp LBB1_719 + //0x0000379c LBB1_821 + 0x48, 0x89, 0xca, //0x0000379c movq %rcx, %rdx + 0x49, 0x89, 0xcf, //0x0000379f movq %rcx, %r15 + 0xe9, 0x4a, 0xf9, 0xff, 0xff, //0x000037a2 jmp LBB1_696 + //0x000037a7 LBB1_823 + 0x80, 0xf9, 0x3d, //0x000037a7 cmpb $61, %cl + 0x0f, 0x85, 0x62, 0x01, 0x00, 0x00, //0x000037aa jne LBB1_827 + 0x49, 0x89, 0xc7, //0x000037b0 movq %rax, %r15 + 0x41, 0x83, 0xfa, 0x04, //0x000037b3 cmpl $4, %r10d + 0x0f, 0x84, 0x34, 0xf9, 0xff, 0xff, //0x000037b7 je LBB1_696 + 0x48, 0x39, 0x45, 0xd0, //0x000037bd cmpq %rax, $-48(%rbp) + 0x0f, 0x87, 0x2a, 0x00, 0x00, 0x00, //0x000037c1 ja LBB1_830 + 0xe9, 0x19, 0xf8, 0xff, 0xff, //0x000037c7 jmp LBB1_719 + //0x000037cc LBB1_846 + 0x4c, 0x89, 0xf9, //0x000037cc movq %r15, %rcx + 0x48, 0x89, 0xc8, //0x000037cf movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x000037d2 cmpq $-48(%rbp), %rcx + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x000037d6 jb LBB1_830 + 0xe9, 0x2c, 0xfe, 0xff, 0xff, //0x000037dc jmp LBB1_720 + //0x000037e1 LBB1_828 + 0x49, 0x89, 0xcf, //0x000037e1 movq %rcx, %r15 + 0x48, 0x89, 0xc8, //0x000037e4 movq %rcx, %rax + 0x48, 0x3b, 0x4d, 0xd0, //0x000037e7 cmpq $-48(%rbp), %rcx + 0x0f, 0x83, 0x1c, 0xfe, 0xff, 0xff, //0x000037eb jae LBB1_720 + //0x000037f1 LBB1_830 + 0x4c, 0x8d, 0x78, 0x01, //0x000037f1 leaq $1(%rax), %r15 + 0x0f, 0xb6, 0x08, //0x000037f5 movzbl (%rax), %ecx + 0x80, 0xf9, 0x5c, //0x000037f8 cmpb $92, %cl + 0x0f, 0x85, 0xec, 0x00, 0x00, 0x00, //0x000037fb jne LBB1_843 + 0x48, 0x8d, 0x48, 0x02, //0x00003801 leaq $2(%rax), %rcx + 0x48, 0x3b, 0x4d, 0xd0, //0x00003805 cmpq $-48(%rbp), %rcx + 0x0f, 0x87, 0x00, 0x01, 0x00, 0x00, //0x00003809 ja LBB1_848 + 0x41, 0x0f, 0xb6, 0x17, //0x0000380f movzbl (%r15), %edx + 0x80, 0xfa, 0x6e, //0x00003813 cmpb $110, %dl + 0x0f, 0x84, 0xc5, 0xff, 0xff, 0xff, //0x00003816 je LBB1_828 + 0x80, 0xfa, 0x72, //0x0000381c cmpb $114, %dl + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000381f je LBB1_828 + 0x80, 0xfa, 0x75, //0x00003825 cmpb $117, %dl + 0x0f, 0x85, 0xd9, 0x00, 0x00, 0x00, //0x00003828 jne LBB1_847 + 0x48, 0x8b, 0x55, 0xd0, //0x0000382e movq $-48(%rbp), %rdx + 0x48, 0x29, 0xca, //0x00003832 subq %rcx, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x00003835 cmpq $4, %rdx + 0x0f, 0x8c, 0xc8, 0x00, 0x00, 0x00, //0x00003839 jl LBB1_847 + 0x8b, 0x11, //0x0000383f movl (%rcx), %edx + 0x89, 0xd6, //0x00003841 movl %edx, %esi + 0xf7, 0xd6, //0x00003843 notl %esi + 0x8d, 0xba, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003845 leal $-808464432(%rdx), %edi + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x0000384b andl $-2139062144, %esi + 0x85, 0xfe, //0x00003851 testl %edi, %esi + 0x0f, 0x85, 0xae, 0x00, 0x00, 0x00, //0x00003853 jne LBB1_847 + 0x8d, 0xba, 0x19, 0x19, 0x19, 0x19, //0x00003859 leal $421075225(%rdx), %edi + 0x09, 0xd7, //0x0000385f orl %edx, %edi + 0xf7, 0xc7, 0x80, 0x80, 0x80, 0x80, //0x00003861 testl $-2139062144, %edi + 0x0f, 0x85, 0x9a, 0x00, 0x00, 0x00, //0x00003867 jne LBB1_847 + 0x89, 0xd7, //0x0000386d movl %edx, %edi + 0x81, 0xe7, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000386f andl $2139062143, %edi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003875 movl $-1061109568, %ebx + 0x29, 0xfb, //0x0000387a subl %edi, %ebx + 0x44, 0x8d, 0x87, 0x46, 0x46, 0x46, 0x46, //0x0000387c leal $1179010630(%rdi), %r8d + 0x21, 0xf3, //0x00003883 andl %esi, %ebx + 0x44, 0x85, 0xc3, //0x00003885 testl %r8d, %ebx + 0x0f, 0x85, 0x79, 0x00, 0x00, 0x00, //0x00003888 jne LBB1_847 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000388e movl $-522133280, %ebx + 0x29, 0xfb, //0x00003893 subl %edi, %ebx + 0x81, 0xc7, 0x39, 0x39, 0x39, 0x39, //0x00003895 addl $960051513, %edi + 0x21, 0xde, //0x0000389b andl %ebx, %esi + 0x85, 0xfe, //0x0000389d testl %edi, %esi + 0x0f, 0x85, 0x62, 0x00, 0x00, 0x00, //0x0000389f jne LBB1_847 + 0x0f, 0xca, //0x000038a5 bswapl %edx + 0x89, 0xd1, //0x000038a7 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000038a9 shrl $4, %ecx + 0xf7, 0xd1, //0x000038ac notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x000038ae andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x000038b4 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000038b7 andl $252645135, %edx + 0x01, 0xca, //0x000038bd addl %ecx, %edx + 0x89, 0xd1, //0x000038bf movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000038c1 shrl $4, %ecx + 0x09, 0xd1, //0x000038c4 orl %edx, %ecx + 0x89, 0xca, //0x000038c6 movl %ecx, %edx + 0xc1, 0xea, 0x08, //0x000038c8 shrl $8, %edx + 0x81, 0xe2, 0x00, 0xff, 0x00, 0x00, //0x000038cb andl $65280, %edx + 0x89, 0xce, //0x000038d1 movl %ecx, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x000038d3 andl $128, %esi + 0x09, 0xd6, //0x000038d9 orl %edx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000038db je LBB1_842 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000038e1 movl $255, %ecx + //0x000038e6 LBB1_842 + 0x48, 0x83, 0xc0, 0x06, //0x000038e6 addq $6, %rax + 0x49, 0x89, 0xc7, //0x000038ea movq %rax, %r15 + //0x000038ed LBB1_843 + 0x80, 0xf9, 0x0a, //0x000038ed cmpb $10, %cl + 0x0f, 0x84, 0xd6, 0xfe, 0xff, 0xff, //0x000038f0 je LBB1_846 + 0x80, 0xf9, 0x0d, //0x000038f6 cmpb $13, %cl + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x000038f9 je LBB1_846 + 0x80, 0xf9, 0x3d, //0x000038ff cmpb $61, %cl + 0xe9, 0xea, 0xf7, 0xff, 0xff, //0x00003902 jmp LBB1_696 + //0x00003907 LBB1_847 + 0x49, 0x89, 0xcf, //0x00003907 movq %rcx, %r15 + 0xe9, 0xe2, 0xf7, 0xff, 0xff, //0x0000390a jmp LBB1_696 + //0x0000390f LBB1_848 + 0x4c, 0x89, 0xf8, //0x0000390f movq %r15, %rax + //0x00003912 LBB1_827 + 0x49, 0x89, 0xc7, //0x00003912 movq %rax, %r15 + 0xe9, 0xd7, 0xf7, 0xff, 0xff, //0x00003915 jmp LBB1_696 + //0x0000391a LBB1_851 + 0x44, 0x8b, 0x75, 0xbc, //0x0000391a movl $-68(%rbp), %r14d + 0x45, 0x89, 0xf4, //0x0000391e movl %r14d, %r12d + 0x41, 0x83, 0xe4, 0x02, //0x00003921 andl $2, %r12d + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00003925 jmp LBB1_853 + //0x0000392a LBB1_852 + 0x4d, 0x89, 0xf9, //0x0000392a movq %r15, %r9 + 0x44, 0x8b, 0x75, 0xbc, //0x0000392d movl $-68(%rbp), %r14d + 0x48, 0x8b, 0x5d, 0xd0, //0x00003931 movq $-48(%rbp), %rbx + //0x00003935 LBB1_853 + 0x48, 0x8b, 0x45, 0xa8, //0x00003935 movq $-88(%rbp), %rax + 0x48, 0x8b, 0x4d, 0x88, //0x00003939 movq $-120(%rbp), %rcx + 0x48, 0x8d, 0x54, 0x01, 0xfe, //0x0000393d leaq $-2(%rcx,%rax), %rdx + 0x48, 0x89, 0x55, 0xc8, //0x00003942 movq %rdx, $-56(%rbp) + 0x48, 0x8d, 0x44, 0x01, 0xfd, //0x00003946 leaq $-3(%rcx,%rax), %rax + 0x48, 0x89, 0x45, 0xa0, //0x0000394b movq %rax, $-96(%rbp) + 0xe9, 0x37, 0x00, 0x00, 0x00, //0x0000394f jmp LBB1_857 + //0x00003954 LBB1_854 + 0x48, 0x89, 0x45, 0xb0, //0x00003954 movq %rax, $-80(%rbp) + 0x4c, 0x8b, 0x7d, 0xa8, //0x00003958 movq $-88(%rbp), %r15 + 0xe9, 0x57, 0xcc, 0xff, 0xff, //0x0000395c jmp LBB1_2 + //0x00003961 LBB1_1102 + 0x49, 0x89, 0xc8, //0x00003961 movq %rcx, %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003964 .p2align 4, 0x90 + //0x00003970 LBB1_856 + 0x49, 0x8d, 0x48, 0x01, //0x00003970 leaq $1(%r8), %rcx + 0x4c, 0x39, 0xc3, //0x00003974 cmpq %r8, %rbx + 0x49, 0x0f, 0x45, 0xc8, //0x00003977 cmovneq %r8, %rcx + 0x4c, 0x29, 0xc9, //0x0000397b subq %r9, %rcx + 0x44, 0x8b, 0x75, 0xbc, //0x0000397e movl $-68(%rbp), %r14d + 0x48, 0x85, 0xc9, //0x00003982 testq %rcx, %rcx + 0x0f, 0x85, 0x15, 0x10, 0x00, 0x00, //0x00003985 jne LBB1_1137 + //0x0000398b LBB1_857 + 0x4c, 0x39, 0xcb, //0x0000398b cmpq %r9, %rbx + 0x0f, 0x86, 0x1b, 0x10, 0x00, 0x00, //0x0000398e jbe LBB1_1138 + 0x41, 0xf6, 0xc6, 0x08, //0x00003994 testb $8, %r14b + 0x0f, 0x85, 0xc2, 0x00, 0x00, 0x00, //0x00003998 jne LBB1_870 + 0x4d, 0x89, 0xc8, //0x0000399e movq %r9, %r8 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000039a1 jmp LBB1_861 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039a6 .p2align 4, 0x90 + //0x000039b0 LBB1_860 + 0x49, 0xff, 0xc0, //0x000039b0 incq %r8 + 0x49, 0x39, 0xd8, //0x000039b3 cmpq %rbx, %r8 + 0x0f, 0x83, 0x04, 0x02, 0x00, 0x00, //0x000039b6 jae LBB1_888 + //0x000039bc LBB1_861 + 0x41, 0x0f, 0xb6, 0x00, //0x000039bc movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x000039c0 cmpq $13, %rax + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x000039c4 je LBB1_860 + 0x3c, 0x0a, //0x000039ca cmpb $10, %al + 0x0f, 0x84, 0xde, 0xff, 0xff, 0xff, //0x000039cc je LBB1_860 + 0x48, 0x8b, 0x4d, 0xc0, //0x000039d2 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x14, 0x01, //0x000039d6 movzbl (%rcx,%rax), %edx + 0x49, 0xff, 0xc0, //0x000039da incq %r8 + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x000039dd cmpl $255, %edx + 0x0f, 0x84, 0xb7, 0x02, 0x00, 0x00, //0x000039e3 je LBB1_902 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000039e9 movl $1, %r11d + 0x49, 0x39, 0xd8, //0x000039ef cmpq %rbx, %r8 + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000039f2 jb LBB1_866 + 0xe9, 0xe3, 0x0b, 0x00, 0x00, //0x000039f8 jmp LBB1_1060 + 0x90, 0x90, 0x90, //0x000039fd .p2align 4, 0x90 + //0x00003a00 LBB1_865 + 0x49, 0xff, 0xc0, //0x00003a00 incq %r8 + 0x49, 0x39, 0xd8, //0x00003a03 cmpq %rbx, %r8 + 0x0f, 0x83, 0x70, 0x04, 0x00, 0x00, //0x00003a06 jae LBB1_933 + //0x00003a0c LBB1_866 + 0x41, 0x0f, 0xb6, 0x00, //0x00003a0c movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x00003a10 cmpq $13, %rax + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00003a14 je LBB1_865 + 0x3c, 0x0a, //0x00003a1a cmpb $10, %al + 0x0f, 0x84, 0xde, 0xff, 0xff, 0xff, //0x00003a1c je LBB1_865 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003a22 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x0c, 0x01, //0x00003a26 movzbl (%rcx,%rax), %ecx + 0x49, 0xff, 0xc0, //0x00003a2a incq %r8 + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003a2d cmpl $255, %ecx + 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00003a33 je LBB1_960 + 0xc1, 0xe2, 0x06, //0x00003a39 shll $6, %edx + 0x09, 0xca, //0x00003a3c orl %ecx, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003a3e movl $2, %r11d + 0x49, 0x39, 0xd8, //0x00003a44 cmpq %rbx, %r8 + 0x0f, 0x82, 0xb5, 0x01, 0x00, 0x00, //0x00003a47 jb LBB1_892 + 0xe9, 0x8e, 0x0b, 0x00, 0x00, //0x00003a4d jmp LBB1_1060 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a52 .p2align 4, 0x90 + //0x00003a60 LBB1_870 + 0x4c, 0x89, 0xca, //0x00003a60 movq %r9, %rdx + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00003a63 jmp LBB1_873 + //0x00003a68 LBB1_871 + 0x80, 0xf9, 0x6e, //0x00003a68 cmpb $110, %cl + 0x0f, 0x85, 0xdf, 0x01, 0x00, 0x00, //0x00003a6b jne LBB1_897 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003a71 .p2align 4, 0x90 + //0x00003a80 LBB1_872 + 0x4c, 0x89, 0xc2, //0x00003a80 movq %r8, %rdx + 0x49, 0x39, 0xd8, //0x00003a83 cmpq %rbx, %r8 + 0x0f, 0x83, 0x34, 0x01, 0x00, 0x00, //0x00003a86 jae LBB1_888 + //0x00003a8c LBB1_873 + 0x48, 0x8d, 0x4a, 0x01, //0x00003a8c leaq $1(%rdx), %rcx + 0x0f, 0xb6, 0x02, //0x00003a90 movzbl (%rdx), %eax + 0x3c, 0x5c, //0x00003a93 cmpb $92, %al + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x00003a95 jne LBB1_886 + 0x4c, 0x8d, 0x42, 0x02, //0x00003a9b leaq $2(%rdx), %r8 + 0xb0, 0xff, //0x00003a9f movb $-1, %al + 0x49, 0x39, 0xd8, //0x00003aa1 cmpq %rbx, %r8 + 0x0f, 0x87, 0x9e, 0x01, 0x00, 0x00, //0x00003aa4 ja LBB1_896 + 0x0f, 0xb6, 0x09, //0x00003aaa movzbl (%rcx), %ecx + 0x80, 0xf9, 0x71, //0x00003aad cmpb $113, %cl + 0x0f, 0x8e, 0xb2, 0xff, 0xff, 0xff, //0x00003ab0 jle LBB1_871 + 0x80, 0xf9, 0x72, //0x00003ab6 cmpb $114, %cl + 0x0f, 0x84, 0xc1, 0xff, 0xff, 0xff, //0x00003ab9 je LBB1_872 + 0x80, 0xf9, 0x75, //0x00003abf cmpb $117, %cl + 0x0f, 0x85, 0x98, 0x01, 0x00, 0x00, //0x00003ac2 jne LBB1_899 + 0x48, 0x89, 0xd9, //0x00003ac8 movq %rbx, %rcx + 0x4c, 0x29, 0xc1, //0x00003acb subq %r8, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00003ace cmpq $4, %rcx + 0x0f, 0x8c, 0x88, 0x01, 0x00, 0x00, //0x00003ad2 jl LBB1_899 + 0x41, 0x8b, 0x08, //0x00003ad8 movl (%r8), %ecx + 0x89, 0xcf, //0x00003adb movl %ecx, %edi + 0xf7, 0xd7, //0x00003add notl %edi + 0x8d, 0xb1, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003adf leal $-808464432(%rcx), %esi + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x00003ae5 andl $-2139062144, %edi + 0x85, 0xf7, //0x00003aeb testl %esi, %edi + 0x0f, 0x85, 0x6d, 0x01, 0x00, 0x00, //0x00003aed jne LBB1_899 + 0x8d, 0xb1, 0x19, 0x19, 0x19, 0x19, //0x00003af3 leal $421075225(%rcx), %esi + 0x09, 0xce, //0x00003af9 orl %ecx, %esi + 0xf7, 0xc6, 0x80, 0x80, 0x80, 0x80, //0x00003afb testl $-2139062144, %esi + 0x0f, 0x85, 0x59, 0x01, 0x00, 0x00, //0x00003b01 jne LBB1_899 + 0x89, 0xce, //0x00003b07 movl %ecx, %esi + 0x81, 0xe6, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003b09 andl $2139062143, %esi + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003b0f movl $-1061109568, %ebx + 0x29, 0xf3, //0x00003b14 subl %esi, %ebx + 0x44, 0x8d, 0x96, 0x46, 0x46, 0x46, 0x46, //0x00003b16 leal $1179010630(%rsi), %r10d + 0x21, 0xfb, //0x00003b1d andl %edi, %ebx + 0x44, 0x85, 0xd3, //0x00003b1f testl %r10d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x00003b22 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x34, 0x01, 0x00, 0x00, //0x00003b26 jne LBB1_899 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003b2c movl $-522133280, %ebx + 0x29, 0xf3, //0x00003b31 subl %esi, %ebx + 0x81, 0xc6, 0x39, 0x39, 0x39, 0x39, //0x00003b33 addl $960051513, %esi + 0x21, 0xdf, //0x00003b39 andl %ebx, %edi + 0x48, 0x8b, 0x5d, 0xd0, //0x00003b3b movq $-48(%rbp), %rbx + 0x85, 0xf7, //0x00003b3f testl %esi, %edi + 0x0f, 0x85, 0x19, 0x01, 0x00, 0x00, //0x00003b41 jne LBB1_899 + 0x0f, 0xc9, //0x00003b47 bswapl %ecx + 0x89, 0xc8, //0x00003b49 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00003b4b shrl $4, %eax + 0xf7, 0xd0, //0x00003b4e notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003b50 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003b55 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003b58 andl $252645135, %ecx + 0x01, 0xc1, //0x00003b5e addl %eax, %ecx + 0x89, 0xc8, //0x00003b60 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00003b62 shrl $4, %eax + 0x09, 0xc8, //0x00003b65 orl %ecx, %eax + 0x89, 0xc1, //0x00003b67 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00003b69 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00003b6c andl $65280, %ecx + 0x89, 0xc6, //0x00003b72 movl %eax, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00003b74 andl $128, %esi + 0x09, 0xce, //0x00003b7a orl %ecx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003b7c je LBB1_885 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x00003b82 movl $255, %eax + //0x00003b87 LBB1_885 + 0x48, 0x83, 0xc2, 0x06, //0x00003b87 addq $6, %rdx + 0x49, 0x89, 0xd0, //0x00003b8b movq %rdx, %r8 + 0x3c, 0x0d, //0x00003b8e cmpb $13, %al + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003b90 jne LBB1_887 + 0xe9, 0xe5, 0xfe, 0xff, 0xff, //0x00003b96 jmp LBB1_872 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b9b .p2align 4, 0x90 + //0x00003ba0 LBB1_886 + 0x49, 0x89, 0xc8, //0x00003ba0 movq %rcx, %r8 + 0x3c, 0x0d, //0x00003ba3 cmpb $13, %al + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x00003ba5 je LBB1_872 + //0x00003bab LBB1_887 + 0x3c, 0x0a, //0x00003bab cmpb $10, %al + 0x0f, 0x84, 0xcd, 0xfe, 0xff, 0xff, //0x00003bad je LBB1_872 + 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x00003bb3 jmp LBB1_899 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003bb8 .p2align 4, 0x90 + //0x00003bc0 LBB1_888 + 0x31, 0xd2, //0x00003bc0 xorl %edx, %edx + 0x45, 0x31, 0xdb, //0x00003bc2 xorl %r11d, %r11d + //0x00003bc5 LBB1_889 + 0x45, 0x85, 0xdb, //0x00003bc5 testl %r11d, %r11d + 0x0f, 0x85, 0x12, 0x0a, 0x00, 0x00, //0x00003bc8 jne LBB1_1060 + 0x4d, 0x89, 0xc1, //0x00003bce movq %r8, %r9 + 0x31, 0xc9, //0x00003bd1 xorl %ecx, %ecx + 0x48, 0x85, 0xc9, //0x00003bd3 testq %rcx, %rcx + 0x0f, 0x84, 0xaf, 0xfd, 0xff, 0xff, //0x00003bd6 je LBB1_857 + 0xe9, 0xbf, 0x0d, 0x00, 0x00, //0x00003bdc jmp LBB1_1137 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003be1 .p2align 4, 0x90 + //0x00003bf0 LBB1_891 + 0x49, 0xff, 0xc0, //0x00003bf0 incq %r8 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00003bf3 movl $2, %r11d + 0x49, 0x39, 0xd8, //0x00003bf9 cmpq %rbx, %r8 + 0x0f, 0x83, 0xc3, 0xff, 0xff, 0xff, //0x00003bfc jae LBB1_889 + //0x00003c02 LBB1_892 + 0x41, 0x0f, 0xb6, 0x00, //0x00003c02 movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x00003c06 cmpq $13, %rax + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003c0a je LBB1_891 + 0x3c, 0x0a, //0x00003c10 cmpb $10, %al + 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00003c12 je LBB1_891 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003c18 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x0c, 0x01, //0x00003c1c movzbl (%rcx,%rax), %ecx + 0x49, 0xff, 0xc0, //0x00003c20 incq %r8 + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003c23 cmpl $255, %ecx + 0x0f, 0x84, 0xbd, 0x07, 0x00, 0x00, //0x00003c29 je LBB1_1025 + 0xc1, 0xe2, 0x06, //0x00003c2f shll $6, %edx + 0x09, 0xca, //0x00003c32 orl %ecx, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003c34 movl $3, %r11d + 0x49, 0x39, 0xd8, //0x00003c3a cmpq %rbx, %r8 + 0x0f, 0x82, 0x6f, 0x02, 0x00, 0x00, //0x00003c3d jb LBB1_936 + 0xe9, 0x98, 0x09, 0x00, 0x00, //0x00003c43 jmp LBB1_1060 + //0x00003c48 LBB1_896 + 0x49, 0x89, 0xc8, //0x00003c48 movq %rcx, %r8 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00003c4b jmp LBB1_899 + //0x00003c50 LBB1_897 + 0x80, 0xf9, 0x2f, //0x00003c50 cmpb $47, %cl + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00003c53 jne LBB1_899 + 0x89, 0xc8, //0x00003c59 movl %ecx, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c5b .p2align 4, 0x90 + //0x00003c60 LBB1_899 + 0x0f, 0xb6, 0xc8, //0x00003c60 movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x00003c63 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x14, 0x0a, //0x00003c67 movzbl (%rdx,%rcx), %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x00003c6b cmpl $255, %edx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00003c71 je LBB1_902 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003c77 movl $1, %r11d + 0x49, 0x39, 0xd8, //0x00003c7d cmpq %rbx, %r8 + 0x0f, 0x83, 0x5a, 0x09, 0x00, 0x00, //0x00003c80 jae LBB1_1060 + 0x41, 0x89, 0xd7, //0x00003c86 movl %edx, %r15d + 0x4c, 0x89, 0xc2, //0x00003c89 movq %r8, %rdx + 0xe9, 0xd6, 0x00, 0x00, 0x00, //0x00003c8c jmp LBB1_918 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003c91 .p2align 4, 0x90 + //0x00003ca0 LBB1_902 + 0x45, 0x31, 0xff, //0x00003ca0 xorl %r15d, %r15d + 0x45, 0x31, 0xdb, //0x00003ca3 xorl %r11d, %r11d + //0x00003ca6 LBB1_903 + 0x45, 0x85, 0xe4, //0x00003ca6 testl %r12d, %r12d + 0x0f, 0x85, 0xc1, 0xfc, 0xff, 0xff, //0x00003ca9 jne LBB1_856 + 0x41, 0x83, 0xfb, 0x02, //0x00003caf cmpl $2, %r11d + 0x0f, 0x82, 0xb7, 0xfc, 0xff, 0xff, //0x00003cb3 jb LBB1_856 + 0x3c, 0x3d, //0x00003cb9 cmpb $61, %al + 0x0f, 0x85, 0xaf, 0xfc, 0xff, 0xff, //0x00003cbb jne LBB1_856 + 0x41, 0xbe, 0x05, 0x00, 0x00, 0x00, //0x00003cc1 movl $5, %r14d + 0x45, 0x29, 0xde, //0x00003cc7 subl %r11d, %r14d + 0xf6, 0x45, 0xbc, 0x08, //0x00003cca testb $8, $-68(%rbp) + 0x0f, 0x85, 0x19, 0x02, 0x00, 0x00, //0x00003cce jne LBB1_940 + 0x4c, 0x39, 0xc3, //0x00003cd4 cmpq %r8, %rbx + 0x0f, 0x86, 0x2e, 0x09, 0x00, 0x00, //0x00003cd7 jbe LBB1_1063 + 0x49, 0x8d, 0x48, 0x03, //0x00003cdd leaq $3(%r8), %rcx + 0x48, 0x8b, 0x75, 0xc8, //0x00003ce1 movq $-56(%rbp), %rsi + 0x4c, 0x29, 0xc6, //0x00003ce5 subq %r8, %rsi + 0x49, 0x8d, 0x50, 0x04, //0x00003ce8 leaq $4(%r8), %rdx + 0x48, 0x8b, 0x7d, 0xa0, //0x00003cec movq $-96(%rbp), %rdi + 0x4c, 0x29, 0xc7, //0x00003cf0 subq %r8, %rdi + 0xe9, 0x20, 0x00, 0x00, 0x00, //0x00003cf3 jmp LBB1_910 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003cf8 .p2align 4, 0x90 + //0x00003d00 LBB1_909 + 0x49, 0xff, 0xc0, //0x00003d00 incq %r8 + 0x48, 0xff, 0xc1, //0x00003d03 incq %rcx + 0x48, 0xff, 0xce, //0x00003d06 decq %rsi + 0x48, 0xff, 0xc2, //0x00003d09 incq %rdx + 0x48, 0xff, 0xcf, //0x00003d0c decq %rdi + 0x4c, 0x39, 0xc3, //0x00003d0f cmpq %r8, %rbx + 0x0f, 0x84, 0x7e, 0x08, 0x00, 0x00, //0x00003d12 je LBB1_993 + //0x00003d18 LBB1_910 + 0x41, 0x0f, 0xb6, 0x00, //0x00003d18 movzbl (%r8), %eax + 0x3c, 0x0a, //0x00003d1c cmpb $10, %al + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x00003d1e je LBB1_909 + 0x3c, 0x0d, //0x00003d24 cmpb $13, %al + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00003d26 je LBB1_909 + 0x3c, 0x3d, //0x00003d2c cmpb $61, %al + 0x0f, 0x85, 0x1d, 0x05, 0x00, 0x00, //0x00003d2e jne LBB1_855 + 0x49, 0xff, 0xc0, //0x00003d34 incq %r8 + 0x41, 0x83, 0xfe, 0x02, //0x00003d37 cmpl $2, %r14d + 0x0f, 0x84, 0x2f, 0xfc, 0xff, 0xff, //0x00003d3b je LBB1_856 + 0x4c, 0x39, 0xc3, //0x00003d41 cmpq %r8, %rbx + 0x0f, 0x87, 0x3a, 0x03, 0x00, 0x00, //0x00003d44 ja LBB1_962 + 0xe9, 0xbc, 0x08, 0x00, 0x00, //0x00003d4a jmp LBB1_1063 + //0x00003d4f LBB1_915 + 0x80, 0xf9, 0x6e, //0x00003d4f cmpb $110, %cl + 0x0f, 0x85, 0x63, 0x03, 0x00, 0x00, //0x00003d52 jne LBB1_967 + //0x00003d58 LBB1_916 + 0x4d, 0x89, 0xd0, //0x00003d58 movq %r10, %r8 + //0x00003d5b LBB1_917 + 0x4c, 0x89, 0xc2, //0x00003d5b movq %r8, %rdx + 0x49, 0x39, 0xd8, //0x00003d5e cmpq %rbx, %r8 + 0x0f, 0x83, 0x20, 0x01, 0x00, 0x00, //0x00003d61 jae LBB1_934 + //0x00003d67 LBB1_918 + 0x4c, 0x8d, 0x42, 0x01, //0x00003d67 leaq $1(%rdx), %r8 + 0x0f, 0xb6, 0x02, //0x00003d6b movzbl (%rdx), %eax + 0x3c, 0x5c, //0x00003d6e cmpb $92, %al + 0x0f, 0x85, 0xf1, 0x00, 0x00, 0x00, //0x00003d70 jne LBB1_931 + 0x4c, 0x8d, 0x52, 0x02, //0x00003d76 leaq $2(%rdx), %r10 + 0xb0, 0xff, //0x00003d7a movb $-1, %al + 0x49, 0x39, 0xda, //0x00003d7c cmpq %rbx, %r10 + 0x0f, 0x87, 0x48, 0x03, 0x00, 0x00, //0x00003d7f ja LBB1_970 + 0x41, 0x0f, 0xb6, 0x08, //0x00003d85 movzbl (%r8), %ecx + 0x80, 0xf9, 0x71, //0x00003d89 cmpb $113, %cl + 0x0f, 0x8e, 0xbd, 0xff, 0xff, 0xff, //0x00003d8c jle LBB1_915 + 0x80, 0xf9, 0x72, //0x00003d92 cmpb $114, %cl + 0x0f, 0x84, 0xbd, 0xff, 0xff, 0xff, //0x00003d95 je LBB1_916 + 0x80, 0xf9, 0x75, //0x00003d9b cmpb $117, %cl + 0x0f, 0x85, 0x22, 0x03, 0x00, 0x00, //0x00003d9e jne LBB1_969 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003da4 movq $-48(%rbp), %rcx + 0x4c, 0x29, 0xd1, //0x00003da8 subq %r10, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00003dab cmpq $4, %rcx + 0x0f, 0x8c, 0x11, 0x03, 0x00, 0x00, //0x00003daf jl LBB1_969 + 0x41, 0x8b, 0x3a, //0x00003db5 movl (%r10), %edi + 0x89, 0xfb, //0x00003db8 movl %edi, %ebx + 0xf7, 0xd3, //0x00003dba notl %ebx + 0x8d, 0x8f, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003dbc leal $-808464432(%rdi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00003dc2 andl $-2139062144, %ebx + 0x85, 0xcb, //0x00003dc8 testl %ecx, %ebx + 0x0f, 0x85, 0xf6, 0x02, 0x00, 0x00, //0x00003dca jne LBB1_969 + 0x8d, 0x8f, 0x19, 0x19, 0x19, 0x19, //0x00003dd0 leal $421075225(%rdi), %ecx + 0x09, 0xf9, //0x00003dd6 orl %edi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00003dd8 testl $-2139062144, %ecx + 0x0f, 0x85, 0xe2, 0x02, 0x00, 0x00, //0x00003dde jne LBB1_969 + 0x89, 0xf9, //0x00003de4 movl %edi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003de6 andl $2139062143, %ecx + 0xbe, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003dec movl $-1061109568, %esi + 0x29, 0xce, //0x00003df1 subl %ecx, %esi + 0x44, 0x8d, 0x81, 0x46, 0x46, 0x46, 0x46, //0x00003df3 leal $1179010630(%rcx), %r8d + 0x21, 0xde, //0x00003dfa andl %ebx, %esi + 0x44, 0x85, 0xc6, //0x00003dfc testl %r8d, %esi + 0x0f, 0x85, 0xc1, 0x02, 0x00, 0x00, //0x00003dff jne LBB1_969 + 0xbe, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003e05 movl $-522133280, %esi + 0x29, 0xce, //0x00003e0a subl %ecx, %esi + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x00003e0c addl $960051513, %ecx + 0x21, 0xf3, //0x00003e12 andl %esi, %ebx + 0x85, 0xcb, //0x00003e14 testl %ecx, %ebx + 0x0f, 0x85, 0xaa, 0x02, 0x00, 0x00, //0x00003e16 jne LBB1_969 + 0x0f, 0xcf, //0x00003e1c bswapl %edi + 0x89, 0xf8, //0x00003e1e movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x00003e20 shrl $4, %eax + 0xf7, 0xd0, //0x00003e23 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003e25 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003e2a leal (%rax,%rax,8), %eax + 0x81, 0xe7, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003e2d andl $252645135, %edi + 0x01, 0xc7, //0x00003e33 addl %eax, %edi + 0x89, 0xf8, //0x00003e35 movl %edi, %eax + 0xc1, 0xe8, 0x04, //0x00003e37 shrl $4, %eax + 0x09, 0xf8, //0x00003e3a orl %edi, %eax + 0x89, 0xc1, //0x00003e3c movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00003e3e shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00003e41 andl $65280, %ecx + 0x89, 0xc6, //0x00003e47 movl %eax, %esi + 0x81, 0xe6, 0x80, 0x00, 0x00, 0x00, //0x00003e49 andl $128, %esi + 0x09, 0xce, //0x00003e4f orl %ecx, %esi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003e51 je LBB1_930 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x00003e57 movl $255, %eax + //0x00003e5c LBB1_930 + 0x48, 0x83, 0xc2, 0x06, //0x00003e5c addq $6, %rdx + 0x49, 0x89, 0xd0, //0x00003e60 movq %rdx, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x00003e63 movq $-48(%rbp), %rbx + //0x00003e67 LBB1_931 + 0x3c, 0x0a, //0x00003e67 cmpb $10, %al + 0x0f, 0x84, 0xec, 0xfe, 0xff, 0xff, //0x00003e69 je LBB1_917 + 0x3c, 0x0d, //0x00003e6f cmpb $13, %al + 0x0f, 0x84, 0xe4, 0xfe, 0xff, 0xff, //0x00003e71 je LBB1_917 + 0xe9, 0x51, 0x02, 0x00, 0x00, //0x00003e77 jmp LBB1_970 + //0x00003e7c LBB1_933 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003e7c movl $1, %r11d + 0xe9, 0x3e, 0xfd, 0xff, 0xff, //0x00003e82 jmp LBB1_889 + //0x00003e87 LBB1_934 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00003e87 movl $1, %r11d + 0x44, 0x89, 0xfa, //0x00003e8d movl %r15d, %edx + 0xe9, 0x30, 0xfd, 0xff, 0xff, //0x00003e90 jmp LBB1_889 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e95 .p2align 4, 0x90 + //0x00003ea0 LBB1_935 + 0x49, 0xff, 0xc0, //0x00003ea0 incq %r8 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003ea3 movl $3, %r11d + 0x49, 0x39, 0xd8, //0x00003ea9 cmpq %rbx, %r8 + 0x0f, 0x83, 0x13, 0xfd, 0xff, 0xff, //0x00003eac jae LBB1_889 + //0x00003eb2 LBB1_936 + 0x41, 0x0f, 0xb6, 0x00, //0x00003eb2 movzbl (%r8), %eax + 0x48, 0x83, 0xf8, 0x0d, //0x00003eb6 cmpq $13, %rax + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x00003eba je LBB1_935 + 0x3c, 0x0a, //0x00003ec0 cmpb $10, %al + 0x0f, 0x84, 0xd8, 0xff, 0xff, 0xff, //0x00003ec2 je LBB1_935 + 0x48, 0x8b, 0x4d, 0xc0, //0x00003ec8 movq $-64(%rbp), %rcx + 0x0f, 0xb6, 0x0c, 0x01, //0x00003ecc movzbl (%rcx,%rax), %ecx + 0x49, 0xff, 0xc0, //0x00003ed0 incq %r8 + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00003ed3 cmpl $255, %ecx + 0x0f, 0x85, 0xeb, 0x06, 0x00, 0x00, //0x00003ed9 jne LBB1_1059 + 0x41, 0x89, 0xd7, //0x00003edf movl %edx, %r15d + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00003ee2 movl $3, %r11d + 0xe9, 0xb9, 0xfd, 0xff, 0xff, //0x00003ee8 jmp LBB1_903 + //0x00003eed LBB1_940 + 0x4c, 0x39, 0xc3, //0x00003eed cmpq %r8, %rbx + 0x0f, 0x87, 0x39, 0x00, 0x00, 0x00, //0x00003ef0 ja LBB1_943 + 0xe9, 0x10, 0x07, 0x00, 0x00, //0x00003ef6 jmp LBB1_1063 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003efb .p2align 4, 0x90 + //0x00003f00 LBB1_959 + 0x4c, 0x89, 0xe9, //0x00003f00 movq %r13, %rcx + 0x49, 0x89, 0xc8, //0x00003f03 movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x00003f06 cmpq %rbx, %rcx + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00003f09 jb LBB1_943 + 0xe9, 0x42, 0x01, 0x00, 0x00, //0x00003f0f jmp LBB1_994 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f14 .p2align 4, 0x90 + //0x00003f20 LBB1_941 + 0x49, 0x89, 0xcd, //0x00003f20 movq %rcx, %r13 + 0x49, 0x89, 0xc8, //0x00003f23 movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x00003f26 cmpq %rbx, %rcx + 0x0f, 0x83, 0x27, 0x01, 0x00, 0x00, //0x00003f29 jae LBB1_994 + //0x00003f2f LBB1_943 + 0x4d, 0x8d, 0x68, 0x01, //0x00003f2f leaq $1(%r8), %r13 + 0x41, 0x0f, 0xb6, 0x08, //0x00003f33 movzbl (%r8), %ecx + 0x80, 0xf9, 0x5c, //0x00003f37 cmpb $92, %cl + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00003f3a jne LBB1_956 + 0x49, 0x8d, 0x48, 0x02, //0x00003f40 leaq $2(%r8), %rcx + 0x48, 0x39, 0xd9, //0x00003f44 cmpq %rbx, %rcx + 0x0f, 0x87, 0x66, 0x07, 0x00, 0x00, //0x00003f47 ja LBB1_1026 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x00003f4d movzbl (%r13), %eax + 0x3c, 0x6e, //0x00003f52 cmpb $110, %al + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00003f54 je LBB1_941 + 0x3c, 0x72, //0x00003f5a cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x00003f5c je LBB1_941 + 0x3c, 0x75, //0x00003f62 cmpb $117, %al + 0x0f, 0x85, 0xf7, 0xf9, 0xff, 0xff, //0x00003f64 jne LBB1_1102 + 0x48, 0x89, 0xd8, //0x00003f6a movq %rbx, %rax + 0x48, 0x29, 0xc8, //0x00003f6d subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00003f70 cmpq $4, %rax + 0x0f, 0x8c, 0xe7, 0xf9, 0xff, 0xff, //0x00003f74 jl LBB1_1102 + 0x8b, 0x11, //0x00003f7a movl (%rcx), %edx + 0x89, 0xd6, //0x00003f7c movl %edx, %esi + 0xf7, 0xd6, //0x00003f7e notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x00003f80 leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00003f86 andl $-2139062144, %esi + 0x85, 0xc6, //0x00003f8c testl %eax, %esi + 0x0f, 0x85, 0xcd, 0xf9, 0xff, 0xff, //0x00003f8e jne LBB1_1102 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00003f94 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x00003f9a orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00003f9c testl $-2139062144, %eax + 0x0f, 0x85, 0xba, 0xf9, 0xff, 0xff, //0x00003fa1 jne LBB1_1102 + 0x89, 0xd0, //0x00003fa7 movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00003fa9 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00003fae movl $-1061109568, %edi + 0x29, 0xc7, //0x00003fb3 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x00003fb5 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x00003fbb andl %esi, %edi + 0x85, 0xdf, //0x00003fbd testl %ebx, %edi + 0x0f, 0x85, 0x9a, 0x09, 0x00, 0x00, //0x00003fbf jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00003fc5 movl $-522133280, %edi + 0x29, 0xc7, //0x00003fca subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00003fcc addl $960051513, %eax + 0x21, 0xfe, //0x00003fd1 andl %edi, %esi + 0x85, 0xc6, //0x00003fd3 testl %eax, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x00003fd5 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x82, 0xf9, 0xff, 0xff, //0x00003fd9 jne LBB1_1102 + 0x0f, 0xca, //0x00003fdf bswapl %edx + 0x89, 0xd0, //0x00003fe1 movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x00003fe3 shrl $4, %eax + 0xf7, 0xd0, //0x00003fe6 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00003fe8 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00003fed leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00003ff0 andl $252645135, %edx + 0x01, 0xc2, //0x00003ff6 addl %eax, %edx + 0x89, 0xd1, //0x00003ff8 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x00003ffa shrl $4, %ecx + 0x09, 0xd1, //0x00003ffd orl %edx, %ecx + 0x89, 0xc8, //0x00003fff movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00004001 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00004004 andl $65280, %eax + 0x89, 0xca, //0x00004009 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000400b andl $128, %edx + 0x09, 0xc2, //0x00004011 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004013 je LBB1_955 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004019 movl $255, %ecx + //0x0000401e LBB1_955 + 0x49, 0x83, 0xc0, 0x06, //0x0000401e addq $6, %r8 + 0x4d, 0x89, 0xc5, //0x00004022 movq %r8, %r13 + //0x00004025 LBB1_956 + 0x80, 0xf9, 0x0a, //0x00004025 cmpb $10, %cl + 0x0f, 0x84, 0xd2, 0xfe, 0xff, 0xff, //0x00004028 je LBB1_959 + 0x80, 0xf9, 0x0d, //0x0000402e cmpb $13, %cl + 0x0f, 0x84, 0xc9, 0xfe, 0xff, 0xff, //0x00004031 je LBB1_959 + 0x80, 0xf9, 0x3d, //0x00004037 cmpb $61, %cl + 0x0f, 0x85, 0x73, 0x06, 0x00, 0x00, //0x0000403a jne LBB1_1026 + 0x4d, 0x89, 0xe8, //0x00004040 movq %r13, %r8 + 0x41, 0x83, 0xfe, 0x02, //0x00004043 cmpl $2, %r14d + 0x0f, 0x84, 0x23, 0xf9, 0xff, 0xff, //0x00004047 je LBB1_856 + 0x4c, 0x39, 0xeb, //0x0000404d cmpq %r13, %rbx + 0x0f, 0x87, 0xc7, 0x03, 0x00, 0x00, //0x00004050 ja LBB1_1029 + //0x00004056 LBB1_994 + 0x4d, 0x89, 0xe8, //0x00004056 movq %r13, %r8 + 0xe9, 0xad, 0x05, 0x00, 0x00, //0x00004059 jmp LBB1_1063 + //0x0000405e LBB1_960 + 0x41, 0x89, 0xd7, //0x0000405e movl %edx, %r15d + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004061 movl $1, %r11d + 0xe9, 0x3a, 0xfc, 0xff, 0xff, //0x00004067 jmp LBB1_903 + //0x0000406c LBB1_961 + 0x49, 0xff, 0xc0, //0x0000406c incq %r8 + 0x48, 0xff, 0xc1, //0x0000406f incq %rcx + 0x48, 0xff, 0xce, //0x00004072 decq %rsi + 0x48, 0xff, 0xc2, //0x00004075 incq %rdx + 0x48, 0xff, 0xcf, //0x00004078 decq %rdi + 0x4c, 0x39, 0xc3, //0x0000407b cmpq %r8, %rbx + 0x0f, 0x84, 0x12, 0x05, 0x00, 0x00, //0x0000407e je LBB1_993 + //0x00004084 LBB1_962 + 0x41, 0x0f, 0xb6, 0x00, //0x00004084 movzbl (%r8), %eax + 0x3c, 0x0a, //0x00004088 cmpb $10, %al + 0x0f, 0x84, 0xdc, 0xff, 0xff, 0xff, //0x0000408a je LBB1_961 + 0x3c, 0x0d, //0x00004090 cmpb $13, %al + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00004092 je LBB1_961 + 0x3c, 0x3d, //0x00004098 cmpb $61, %al + 0x0f, 0x85, 0xb1, 0x01, 0x00, 0x00, //0x0000409a jne LBB1_855 + 0x49, 0xff, 0xc0, //0x000040a0 incq %r8 + 0x41, 0x83, 0xfe, 0x03, //0x000040a3 cmpl $3, %r14d + 0x0f, 0x84, 0xc3, 0xf8, 0xff, 0xff, //0x000040a7 je LBB1_856 + 0x4c, 0x39, 0xc3, //0x000040ad cmpq %r8, %rbx + 0x0f, 0x87, 0xa2, 0x04, 0x00, 0x00, //0x000040b0 ja LBB1_1048 + 0xe9, 0x50, 0x05, 0x00, 0x00, //0x000040b6 jmp LBB1_1063 + //0x000040bb LBB1_967 + 0x80, 0xf9, 0x2f, //0x000040bb cmpb $47, %cl + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000040be jne LBB1_969 + 0x89, 0xc8, //0x000040c4 movl %ecx, %eax + //0x000040c6 LBB1_969 + 0x4d, 0x89, 0xd0, //0x000040c6 movq %r10, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x000040c9 movq $-48(%rbp), %rbx + //0x000040cd LBB1_970 + 0x0f, 0xb6, 0xc8, //0x000040cd movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x000040d0 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x0c, 0x0a, //0x000040d4 movzbl (%rdx,%rcx), %ecx + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x000040d8 cmpl $255, %ecx + 0x0f, 0x84, 0x5a, 0x01, 0x00, 0x00, //0x000040de je LBB1_991 + 0x44, 0x89, 0xfa, //0x000040e4 movl %r15d, %edx + 0xc1, 0xe2, 0x06, //0x000040e7 shll $6, %edx + 0x09, 0xca, //0x000040ea orl %ecx, %edx + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000040ec movl $2, %r11d + 0x49, 0x39, 0xd8, //0x000040f2 cmpq %rbx, %r8 + 0x0f, 0x83, 0xe5, 0x04, 0x00, 0x00, //0x000040f5 jae LBB1_1060 + 0x41, 0x89, 0xd7, //0x000040fb movl %edx, %r15d + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000040fe jmp LBB1_976 + //0x00004103 LBB1_973 + 0x80, 0xf9, 0x6e, //0x00004103 cmpb $110, %cl + 0x0f, 0x85, 0x50, 0x01, 0x00, 0x00, //0x00004106 jne LBB1_995 + //0x0000410c LBB1_974 + 0x48, 0x89, 0xd7, //0x0000410c movq %rdx, %rdi + 0x44, 0x89, 0xfa, //0x0000410f movl %r15d, %edx + //0x00004112 LBB1_975 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00004112 movl $2, %r11d + 0x49, 0x89, 0xf8, //0x00004118 movq %rdi, %r8 + 0x48, 0x39, 0xdf, //0x0000411b cmpq %rbx, %rdi + 0x0f, 0x83, 0x25, 0x01, 0x00, 0x00, //0x0000411e jae LBB1_992 + //0x00004124 LBB1_976 + 0x49, 0x8d, 0x78, 0x01, //0x00004124 leaq $1(%r8), %rdi + 0x41, 0x0f, 0xb6, 0x00, //0x00004128 movzbl (%r8), %eax + 0x3c, 0x5c, //0x0000412c cmpb $92, %al + 0x0f, 0x85, 0xf5, 0x00, 0x00, 0x00, //0x0000412e jne LBB1_989 + 0x49, 0x8d, 0x50, 0x02, //0x00004134 leaq $2(%r8), %rdx + 0xb0, 0xff, //0x00004138 movb $-1, %al + 0x48, 0x39, 0xda, //0x0000413a cmpq %rbx, %rdx + 0x0f, 0x87, 0x27, 0x01, 0x00, 0x00, //0x0000413d ja LBB1_998 + 0x0f, 0xb6, 0x0f, //0x00004143 movzbl (%rdi), %ecx + 0x80, 0xf9, 0x71, //0x00004146 cmpb $113, %cl + 0x0f, 0x8e, 0xb4, 0xff, 0xff, 0xff, //0x00004149 jle LBB1_973 + 0x80, 0xf9, 0x72, //0x0000414f cmpb $114, %cl + 0x0f, 0x84, 0xb4, 0xff, 0xff, 0xff, //0x00004152 je LBB1_974 + 0x80, 0xf9, 0x75, //0x00004158 cmpb $117, %cl + 0x0f, 0x85, 0x06, 0x01, 0x00, 0x00, //0x0000415b jne LBB1_997 + 0x48, 0x89, 0xd9, //0x00004161 movq %rbx, %rcx + 0x48, 0x29, 0xd1, //0x00004164 subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00004167 cmpq $4, %rcx + 0x0f, 0x8c, 0xf6, 0x00, 0x00, 0x00, //0x0000416b jl LBB1_997 + 0x8b, 0x32, //0x00004171 movl (%rdx), %esi + 0x89, 0xf7, //0x00004173 movl %esi, %edi + 0xf7, 0xd7, //0x00004175 notl %edi + 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00004177 leal $-808464432(%rsi), %ecx + 0x81, 0xe7, 0x80, 0x80, 0x80, 0x80, //0x0000417d andl $-2139062144, %edi + 0x85, 0xcf, //0x00004183 testl %ecx, %edi + 0x0f, 0x85, 0xdc, 0x00, 0x00, 0x00, //0x00004185 jne LBB1_997 + 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x0000418b leal $421075225(%rsi), %ecx + 0x09, 0xf1, //0x00004191 orl %esi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x00004193 testl $-2139062144, %ecx + 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00004199 jne LBB1_997 + 0x89, 0xf1, //0x0000419f movl %esi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x000041a1 andl $2139062143, %ecx + 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000041a7 movl $-1061109568, %ebx + 0x29, 0xcb, //0x000041ac subl %ecx, %ebx + 0x44, 0x8d, 0x91, 0x46, 0x46, 0x46, 0x46, //0x000041ae leal $1179010630(%rcx), %r10d + 0x21, 0xfb, //0x000041b5 andl %edi, %ebx + 0x44, 0x85, 0xd3, //0x000041b7 testl %r10d, %ebx + 0x48, 0x8b, 0x5d, 0xd0, //0x000041ba movq $-48(%rbp), %rbx + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x000041be jne LBB1_997 + 0xbb, 0xe0, 0xe0, 0xe0, 0xe0, //0x000041c4 movl $-522133280, %ebx + 0x29, 0xcb, //0x000041c9 subl %ecx, %ebx + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x000041cb addl $960051513, %ecx + 0x21, 0xdf, //0x000041d1 andl %ebx, %edi + 0x48, 0x8b, 0x5d, 0xd0, //0x000041d3 movq $-48(%rbp), %rbx + 0x85, 0xcf, //0x000041d7 testl %ecx, %edi + 0x0f, 0x85, 0x88, 0x00, 0x00, 0x00, //0x000041d9 jne LBB1_997 + 0x0f, 0xce, //0x000041df bswapl %esi + 0x89, 0xf0, //0x000041e1 movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x000041e3 shrl $4, %eax + 0xf7, 0xd0, //0x000041e6 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000041e8 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000041ed leal (%rax,%rax,8), %eax + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x000041f0 andl $252645135, %esi + 0x01, 0xc6, //0x000041f6 addl %eax, %esi + 0x89, 0xf0, //0x000041f8 movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x000041fa shrl $4, %eax + 0x09, 0xf0, //0x000041fd orl %esi, %eax + 0x89, 0xc1, //0x000041ff movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00004201 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00004204 andl $65280, %ecx + 0x89, 0xc2, //0x0000420a movl %eax, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000420c andl $128, %edx + 0x09, 0xca, //0x00004212 orl %ecx, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004214 je LBB1_988 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x0000421a movl $255, %eax + //0x0000421f LBB1_988 + 0x49, 0x83, 0xc0, 0x06, //0x0000421f addq $6, %r8 + 0x4c, 0x89, 0xc7, //0x00004223 movq %r8, %rdi + 0x44, 0x89, 0xfa, //0x00004226 movl %r15d, %edx + //0x00004229 LBB1_989 + 0x3c, 0x0a, //0x00004229 cmpb $10, %al + 0x0f, 0x84, 0xe1, 0xfe, 0xff, 0xff, //0x0000422b je LBB1_975 + 0x3c, 0x0d, //0x00004231 cmpb $13, %al + 0x0f, 0x84, 0xd9, 0xfe, 0xff, 0xff, //0x00004233 je LBB1_975 + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00004239 jmp LBB1_998 + //0x0000423e LBB1_991 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000423e movl $1, %r11d + 0xe9, 0x5d, 0xfa, 0xff, 0xff, //0x00004244 jmp LBB1_903 + //0x00004249 LBB1_992 + 0x49, 0x89, 0xf8, //0x00004249 movq %rdi, %r8 + 0xe9, 0x74, 0xf9, 0xff, 0xff, //0x0000424c jmp LBB1_889 + //0x00004251 LBB1_855 + 0x49, 0xff, 0xc0, //0x00004251 incq %r8 + 0x4c, 0x89, 0xc2, //0x00004254 movq %r8, %rdx + 0xe9, 0x14, 0xf7, 0xff, 0xff, //0x00004257 jmp LBB1_856 + //0x0000425c LBB1_995 + 0x80, 0xf9, 0x2f, //0x0000425c cmpb $47, %cl + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x0000425f jne LBB1_997 + 0x89, 0xc8, //0x00004265 movl %ecx, %eax + //0x00004267 LBB1_997 + 0x48, 0x89, 0xd7, //0x00004267 movq %rdx, %rdi + //0x0000426a LBB1_998 + 0x0f, 0xb6, 0xc8, //0x0000426a movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x0000426d movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x0c, 0x0a, //0x00004271 movzbl (%rdx,%rcx), %ecx + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x00004275 cmpl $255, %ecx + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x0000427b je LBB1_1019 + 0x44, 0x89, 0xfa, //0x00004281 movl %r15d, %edx + 0xc1, 0xe2, 0x06, //0x00004284 shll $6, %edx + 0x09, 0xca, //0x00004287 orl %ecx, %edx + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00004289 movl $3, %r11d + 0x48, 0x39, 0xdf, //0x0000428f cmpq %rbx, %rdi + 0x0f, 0x83, 0x4c, 0x01, 0x00, 0x00, //0x00004292 jae LBB1_1020 + 0x41, 0x89, 0xd7, //0x00004298 movl %edx, %r15d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000429b jmp LBB1_1004 + //0x000042a0 LBB1_1001 + 0x80, 0xf9, 0x6e, //0x000042a0 cmpb $110, %cl + 0x0f, 0x85, 0xf5, 0x02, 0x00, 0x00, //0x000042a3 jne LBB1_1054 + //0x000042a9 LBB1_1002 + 0x4d, 0x89, 0xd0, //0x000042a9 movq %r10, %r8 + //0x000042ac LBB1_1003 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000042ac movl $3, %r11d + 0x4c, 0x89, 0xc7, //0x000042b2 movq %r8, %rdi + 0x49, 0x39, 0xd8, //0x000042b5 cmpq %rbx, %r8 + 0x0f, 0x83, 0x07, 0xf9, 0xff, 0xff, //0x000042b8 jae LBB1_889 + //0x000042be LBB1_1004 + 0x4c, 0x8d, 0x47, 0x01, //0x000042be leaq $1(%rdi), %r8 + 0x0f, 0xb6, 0x07, //0x000042c2 movzbl (%rdi), %eax + 0x3c, 0x5c, //0x000042c5 cmpb $92, %al + 0x0f, 0x85, 0xf4, 0x00, 0x00, 0x00, //0x000042c7 jne LBB1_1017 + 0x4c, 0x8d, 0x57, 0x02, //0x000042cd leaq $2(%rdi), %r10 + 0xb0, 0xff, //0x000042d1 movb $-1, %al + 0x49, 0x39, 0xda, //0x000042d3 cmpq %rbx, %r10 + 0x0f, 0x87, 0xd4, 0x02, 0x00, 0x00, //0x000042d6 ja LBB1_1057 + 0x41, 0x0f, 0xb6, 0x08, //0x000042dc movzbl (%r8), %ecx + 0x80, 0xf9, 0x71, //0x000042e0 cmpb $113, %cl + 0x0f, 0x8e, 0xb7, 0xff, 0xff, 0xff, //0x000042e3 jle LBB1_1001 + 0x80, 0xf9, 0x72, //0x000042e9 cmpb $114, %cl + 0x0f, 0x84, 0xb7, 0xff, 0xff, 0xff, //0x000042ec je LBB1_1002 + 0x80, 0xf9, 0x75, //0x000042f2 cmpb $117, %cl + 0x0f, 0x85, 0xae, 0x02, 0x00, 0x00, //0x000042f5 jne LBB1_1056 + 0x48, 0x8b, 0x4d, 0xd0, //0x000042fb movq $-48(%rbp), %rcx + 0x4c, 0x29, 0xd1, //0x000042ff subq %r10, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00004302 cmpq $4, %rcx + 0x0f, 0x8c, 0x9d, 0x02, 0x00, 0x00, //0x00004306 jl LBB1_1056 + 0x41, 0x8b, 0x32, //0x0000430c movl (%r10), %esi + 0x89, 0xf3, //0x0000430f movl %esi, %ebx + 0xf7, 0xd3, //0x00004311 notl %ebx + 0x8d, 0x8e, 0xd0, 0xcf, 0xcf, 0xcf, //0x00004313 leal $-808464432(%rsi), %ecx + 0x81, 0xe3, 0x80, 0x80, 0x80, 0x80, //0x00004319 andl $-2139062144, %ebx + 0x85, 0xcb, //0x0000431f testl %ecx, %ebx + 0x0f, 0x85, 0x82, 0x02, 0x00, 0x00, //0x00004321 jne LBB1_1056 + 0x8d, 0x8e, 0x19, 0x19, 0x19, 0x19, //0x00004327 leal $421075225(%rsi), %ecx + 0x09, 0xf1, //0x0000432d orl %esi, %ecx + 0xf7, 0xc1, 0x80, 0x80, 0x80, 0x80, //0x0000432f testl $-2139062144, %ecx + 0x0f, 0x85, 0x6e, 0x02, 0x00, 0x00, //0x00004335 jne LBB1_1056 + 0x89, 0xf1, //0x0000433b movl %esi, %ecx + 0x81, 0xe1, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000433d andl $2139062143, %ecx + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00004343 movl $-1061109568, %edx + 0x29, 0xca, //0x00004348 subl %ecx, %edx + 0x44, 0x8d, 0x81, 0x46, 0x46, 0x46, 0x46, //0x0000434a leal $1179010630(%rcx), %r8d + 0x21, 0xda, //0x00004351 andl %ebx, %edx + 0x44, 0x85, 0xc2, //0x00004353 testl %r8d, %edx + 0x0f, 0x85, 0x4d, 0x02, 0x00, 0x00, //0x00004356 jne LBB1_1056 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000435c movl $-522133280, %edx + 0x29, 0xca, //0x00004361 subl %ecx, %edx + 0x81, 0xc1, 0x39, 0x39, 0x39, 0x39, //0x00004363 addl $960051513, %ecx + 0x21, 0xd3, //0x00004369 andl %edx, %ebx + 0x85, 0xcb, //0x0000436b testl %ecx, %ebx + 0x0f, 0x85, 0x36, 0x02, 0x00, 0x00, //0x0000436d jne LBB1_1056 + 0x0f, 0xce, //0x00004373 bswapl %esi + 0x89, 0xf0, //0x00004375 movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x00004377 shrl $4, %eax + 0xf7, 0xd0, //0x0000437a notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000437c andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00004381 leal (%rax,%rax,8), %eax + 0x81, 0xe6, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004384 andl $252645135, %esi + 0x01, 0xc6, //0x0000438a addl %eax, %esi + 0x89, 0xf0, //0x0000438c movl %esi, %eax + 0xc1, 0xe8, 0x04, //0x0000438e shrl $4, %eax + 0x09, 0xf0, //0x00004391 orl %esi, %eax + 0x89, 0xc1, //0x00004393 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00004395 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00004398 andl $65280, %ecx + 0x89, 0xc2, //0x0000439e movl %eax, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000043a0 andl $128, %edx + 0x09, 0xca, //0x000043a6 orl %ecx, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000043a8 je LBB1_1016 + 0xb8, 0xff, 0x00, 0x00, 0x00, //0x000043ae movl $255, %eax + //0x000043b3 LBB1_1016 + 0x48, 0x83, 0xc7, 0x06, //0x000043b3 addq $6, %rdi + 0x49, 0x89, 0xf8, //0x000043b7 movq %rdi, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x000043ba movq $-48(%rbp), %rbx + 0x44, 0x89, 0xfa, //0x000043be movl %r15d, %edx + //0x000043c1 LBB1_1017 + 0x3c, 0x0a, //0x000043c1 cmpb $10, %al + 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x000043c3 je LBB1_1003 + 0x3c, 0x0d, //0x000043c9 cmpb $13, %al + 0x0f, 0x84, 0xdb, 0xfe, 0xff, 0xff, //0x000043cb je LBB1_1003 + 0xe9, 0xda, 0x01, 0x00, 0x00, //0x000043d1 jmp LBB1_1057 + //0x000043d6 LBB1_1019 + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000043d6 movl $2, %r11d + 0x49, 0x89, 0xf8, //0x000043dc movq %rdi, %r8 + 0xe9, 0xc2, 0xf8, 0xff, 0xff, //0x000043df jmp LBB1_903 + //0x000043e4 LBB1_1020 + 0x49, 0x89, 0xf8, //0x000043e4 movq %rdi, %r8 + 0xe9, 0xf4, 0x01, 0x00, 0x00, //0x000043e7 jmp LBB1_1060 + //0x000043ec LBB1_1025 + 0x41, 0x89, 0xd7, //0x000043ec movl %edx, %r15d + 0x41, 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000043ef movl $2, %r11d + 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x000043f5 jmp LBB1_903 + //0x000043fa LBB1_1045 + 0x4c, 0x89, 0xc1, //0x000043fa movq %r8, %rcx + 0x49, 0x89, 0xcd, //0x000043fd movq %rcx, %r13 + 0x48, 0x39, 0xd9, //0x00004400 cmpq %rbx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00004403 jb LBB1_1029 + 0xe9, 0xfd, 0x01, 0x00, 0x00, //0x00004409 jmp LBB1_1063 + //0x0000440e LBB1_1027 + 0x49, 0x89, 0xc8, //0x0000440e movq %rcx, %r8 + 0x49, 0x89, 0xcd, //0x00004411 movq %rcx, %r13 + 0x48, 0x39, 0xd9, //0x00004414 cmpq %rbx, %rcx + 0x0f, 0x83, 0xee, 0x01, 0x00, 0x00, //0x00004417 jae LBB1_1063 + //0x0000441d LBB1_1029 + 0x4d, 0x8d, 0x45, 0x01, //0x0000441d leaq $1(%r13), %r8 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00004421 movzbl (%r13), %ecx + 0x80, 0xf9, 0x5c, //0x00004426 cmpb $92, %cl + 0x0f, 0x85, 0xe4, 0x00, 0x00, 0x00, //0x00004429 jne LBB1_1042 + 0x49, 0x8d, 0x4d, 0x02, //0x0000442f leaq $2(%r13), %rcx + 0x48, 0x39, 0xd9, //0x00004433 cmpq %rbx, %rcx + 0x0f, 0x87, 0x74, 0x02, 0x00, 0x00, //0x00004436 ja LBB1_1080 + 0x41, 0x0f, 0xb6, 0x00, //0x0000443c movzbl (%r8), %eax + 0x3c, 0x6e, //0x00004440 cmpb $110, %al + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00004442 je LBB1_1027 + 0x3c, 0x72, //0x00004448 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x0000444a je LBB1_1027 + 0x3c, 0x75, //0x00004450 cmpb $117, %al + 0x0f, 0x85, 0x09, 0xf5, 0xff, 0xff, //0x00004452 jne LBB1_1102 + 0x48, 0x89, 0xd8, //0x00004458 movq %rbx, %rax + 0x48, 0x29, 0xc8, //0x0000445b subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000445e cmpq $4, %rax + 0x0f, 0x8c, 0xf9, 0xf4, 0xff, 0xff, //0x00004462 jl LBB1_1102 + 0x8b, 0x11, //0x00004468 movl (%rcx), %edx + 0x89, 0xd6, //0x0000446a movl %edx, %esi + 0xf7, 0xd6, //0x0000446c notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000446e leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00004474 andl $-2139062144, %esi + 0x85, 0xc6, //0x0000447a testl %eax, %esi + 0x0f, 0x85, 0xdf, 0xf4, 0xff, 0xff, //0x0000447c jne LBB1_1102 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00004482 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x00004488 orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000448a testl $-2139062144, %eax + 0x0f, 0x85, 0xcc, 0xf4, 0xff, 0xff, //0x0000448f jne LBB1_1102 + 0x89, 0xd0, //0x00004495 movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00004497 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000449c movl $-1061109568, %edi + 0x29, 0xc7, //0x000044a1 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x000044a3 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x000044a9 andl %esi, %edi + 0x85, 0xdf, //0x000044ab testl %ebx, %edi + 0x0f, 0x85, 0xac, 0x04, 0x00, 0x00, //0x000044ad jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x000044b3 movl $-522133280, %edi + 0x29, 0xc7, //0x000044b8 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x000044ba addl $960051513, %eax + 0x21, 0xfe, //0x000044bf andl %edi, %esi + 0x85, 0xc6, //0x000044c1 testl %eax, %esi + 0x48, 0x8b, 0x5d, 0xd0, //0x000044c3 movq $-48(%rbp), %rbx + 0x0f, 0x85, 0x94, 0xf4, 0xff, 0xff, //0x000044c7 jne LBB1_1102 + 0x0f, 0xca, //0x000044cd bswapl %edx + 0x89, 0xd0, //0x000044cf movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x000044d1 shrl $4, %eax + 0xf7, 0xd0, //0x000044d4 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000044d6 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000044db leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x000044de andl $252645135, %edx + 0x01, 0xc2, //0x000044e4 addl %eax, %edx + 0x89, 0xd1, //0x000044e6 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000044e8 shrl $4, %ecx + 0x09, 0xd1, //0x000044eb orl %edx, %ecx + 0x89, 0xc8, //0x000044ed movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000044ef shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000044f2 andl $65280, %eax + 0x89, 0xca, //0x000044f7 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000044f9 andl $128, %edx + 0x09, 0xc2, //0x000044ff orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004501 je LBB1_1041 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004507 movl $255, %ecx + //0x0000450c LBB1_1041 + 0x49, 0x83, 0xc5, 0x06, //0x0000450c addq $6, %r13 + 0x4d, 0x89, 0xe8, //0x00004510 movq %r13, %r8 + //0x00004513 LBB1_1042 + 0x80, 0xf9, 0x0a, //0x00004513 cmpb $10, %cl + 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x00004516 je LBB1_1045 + 0x80, 0xf9, 0x0d, //0x0000451c cmpb $13, %cl + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x0000451f je LBB1_1045 + 0x80, 0xf9, 0x3d, //0x00004525 cmpb $61, %cl + 0x0f, 0x85, 0x42, 0xf4, 0xff, 0xff, //0x00004528 jne LBB1_856 + 0x41, 0x83, 0xfe, 0x03, //0x0000452e cmpl $3, %r14d + 0x0f, 0x84, 0x38, 0xf4, 0xff, 0xff, //0x00004532 je LBB1_856 + 0x4c, 0x39, 0xc3, //0x00004538 cmpq %r8, %rbx + 0x0f, 0x87, 0x9d, 0x01, 0x00, 0x00, //0x0000453b ja LBB1_1085 + 0xe9, 0xc5, 0x00, 0x00, 0x00, //0x00004541 jmp LBB1_1063 + //0x00004546 LBB1_1047 + 0x48, 0xff, 0xc1, //0x00004546 incq %rcx + 0x48, 0xff, 0xc2, //0x00004549 incq %rdx + 0x48, 0xff, 0xcf, //0x0000454c decq %rdi + 0x48, 0xff, 0xce, //0x0000454f decq %rsi + 0x0f, 0x84, 0x3e, 0x00, 0x00, 0x00, //0x00004552 je LBB1_993 + //0x00004558 LBB1_1048 + 0x0f, 0xb6, 0x41, 0xff, //0x00004558 movzbl $-1(%rcx), %eax + 0x3c, 0x0a, //0x0000455c cmpb $10, %al + 0x0f, 0x84, 0xe2, 0xff, 0xff, 0xff, //0x0000455e je LBB1_1047 + 0x3c, 0x0d, //0x00004564 cmpb $13, %al + 0x0f, 0x84, 0xda, 0xff, 0xff, 0xff, //0x00004566 je LBB1_1047 + 0x3c, 0x3d, //0x0000456c cmpb $61, %al + 0x0f, 0x85, 0xa1, 0x02, 0x00, 0x00, //0x0000456e jne LBB1_1103 + 0x49, 0x89, 0xc8, //0x00004574 movq %rcx, %r8 + 0x41, 0x83, 0xfe, 0x04, //0x00004577 cmpl $4, %r14d + 0x0f, 0x84, 0xef, 0xf3, 0xff, 0xff, //0x0000457b je LBB1_856 + 0x48, 0x39, 0xcb, //0x00004581 cmpq %rcx, %rbx + 0x0f, 0x87, 0x02, 0x01, 0x00, 0x00, //0x00004584 ja LBB1_1076 + 0x49, 0x89, 0xc8, //0x0000458a movq %rcx, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000458d movq $-48(%rbp), %rbx + 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00004591 jmp LBB1_1063 + //0x00004596 LBB1_993 + 0x49, 0x89, 0xd8, //0x00004596 movq %rbx, %r8 + 0xe9, 0x6d, 0x00, 0x00, 0x00, //0x00004599 jmp LBB1_1063 + //0x0000459e LBB1_1054 + 0x80, 0xf9, 0x2f, //0x0000459e cmpb $47, %cl + 0x0f, 0x85, 0x02, 0x00, 0x00, 0x00, //0x000045a1 jne LBB1_1056 + 0x89, 0xc8, //0x000045a7 movl %ecx, %eax + //0x000045a9 LBB1_1056 + 0x4d, 0x89, 0xd0, //0x000045a9 movq %r10, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x000045ac movq $-48(%rbp), %rbx + //0x000045b0 LBB1_1057 + 0x0f, 0xb6, 0xc8, //0x000045b0 movzbl %al, %ecx + 0x48, 0x8b, 0x55, 0xc0, //0x000045b3 movq $-64(%rbp), %rdx + 0x0f, 0xb6, 0x0c, 0x0a, //0x000045b7 movzbl (%rdx,%rcx), %ecx + 0x81, 0xf9, 0xff, 0x00, 0x00, 0x00, //0x000045bb cmpl $255, %ecx + 0x0f, 0x84, 0xae, 0x00, 0x00, 0x00, //0x000045c1 je LBB1_1070 + 0x44, 0x89, 0xfa, //0x000045c7 movl %r15d, %edx + //0x000045ca LBB1_1059 + 0xc1, 0xe2, 0x06, //0x000045ca shll $6, %edx + 0x09, 0xca, //0x000045cd orl %ecx, %edx + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000045cf movl $4, %r11d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000045d5 .p2align 4, 0x90 + //0x000045e0 LBB1_1060 + 0x41, 0x89, 0xd7, //0x000045e0 movl %edx, %r15d + 0x45, 0x85, 0xe4, //0x000045e3 testl %r12d, %r12d + 0x0f, 0x94, 0xc0, //0x000045e6 sete %al + 0x41, 0x83, 0xfb, 0x01, //0x000045e9 cmpl $1, %r11d + 0x0f, 0x94, 0xc1, //0x000045ed sete %cl + 0x49, 0x39, 0xd8, //0x000045f0 cmpq %rbx, %r8 + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000045f3 jb LBB1_1063 + 0x41, 0x83, 0xfb, 0x04, //0x000045f9 cmpl $4, %r11d + 0x0f, 0x84, 0x08, 0x00, 0x00, 0x00, //0x000045fd je LBB1_1063 + 0x08, 0xc8, //0x00004603 orb %cl, %al + 0x0f, 0x85, 0x65, 0xf3, 0xff, 0xff, //0x00004605 jne LBB1_856 + //0x0000460b LBB1_1063 + 0xb0, 0x04, //0x0000460b movb $4, %al + 0x44, 0x28, 0xd8, //0x0000460d subb %r11b, %al + 0x0f, 0xb6, 0xc0, //0x00004610 movzbl %al, %eax + 0x01, 0xc0, //0x00004613 addl %eax, %eax + 0x8d, 0x0c, 0x40, //0x00004615 leal (%rax,%rax,2), %ecx + 0x44, 0x89, 0xfa, //0x00004618 movl %r15d, %edx + 0xd3, 0xe2, //0x0000461b shll %cl, %edx + 0x41, 0x83, 0xfb, 0x02, //0x0000461d cmpl $2, %r11d + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004621 je LBB1_1068 + 0x41, 0x83, 0xfb, 0x03, //0x00004627 cmpl $3, %r11d + 0x0f, 0x84, 0x11, 0x00, 0x00, 0x00, //0x0000462b je LBB1_1067 + 0x41, 0x83, 0xfb, 0x04, //0x00004631 cmpl $4, %r11d + 0x48, 0x8b, 0x4d, 0xb0, //0x00004635 movq $-80(%rbp), %rcx + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00004639 jne LBB1_1069 + 0x88, 0x51, 0x02, //0x0000463f movb %dl, $2(%rcx) + //0x00004642 LBB1_1067 + 0x48, 0x8b, 0x45, 0xb0, //0x00004642 movq $-80(%rbp), %rax + 0x88, 0x70, 0x01, //0x00004646 movb %dh, $1(%rax) + //0x00004649 LBB1_1068 + 0xc1, 0xea, 0x10, //0x00004649 shrl $16, %edx + 0x48, 0x8b, 0x4d, 0xb0, //0x0000464c movq $-80(%rbp), %rcx + 0x88, 0x11, //0x00004650 movb %dl, (%rcx) + //0x00004652 LBB1_1069 + 0x44, 0x89, 0xd8, //0x00004652 movl %r11d, %eax + 0x48, 0x8d, 0x4c, 0x01, 0xff, //0x00004655 leaq $-1(%rcx,%rax), %rcx + 0x48, 0x89, 0x4d, 0xb0, //0x0000465a movq %rcx, $-80(%rbp) + 0x4d, 0x89, 0xc1, //0x0000465e movq %r8, %r9 + 0x31, 0xc9, //0x00004661 xorl %ecx, %ecx + 0x44, 0x8b, 0x75, 0xbc, //0x00004663 movl $-68(%rbp), %r14d + 0x48, 0x85, 0xc9, //0x00004667 testq %rcx, %rcx + 0x0f, 0x84, 0x1b, 0xf3, 0xff, 0xff, //0x0000466a je LBB1_857 + 0xe9, 0x2b, 0x03, 0x00, 0x00, //0x00004670 jmp LBB1_1137 + //0x00004675 LBB1_1070 + 0x41, 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00004675 movl $3, %r11d + 0xe9, 0x26, 0xf6, 0xff, 0xff, //0x0000467b jmp LBB1_903 + //0x00004680 LBB1_1075 + 0x48, 0xff, 0xc2, //0x00004680 incq %rdx + 0x48, 0xff, 0xcf, //0x00004683 decq %rdi + 0x0f, 0x84, 0x94, 0x01, 0x00, 0x00, //0x00004686 je LBB1_1105 + //0x0000468c LBB1_1076 + 0x0f, 0xb6, 0x42, 0xff, //0x0000468c movzbl $-1(%rdx), %eax + 0x3c, 0x0a, //0x00004690 cmpb $10, %al + 0x0f, 0x84, 0xe8, 0xff, 0xff, 0xff, //0x00004692 je LBB1_1075 + 0x3c, 0x0d, //0x00004698 cmpb $13, %al + 0x0f, 0x84, 0xe0, 0xff, 0xff, 0xff, //0x0000469a je LBB1_1075 + 0x3c, 0x3d, //0x000046a0 cmpb $61, %al + 0x0f, 0x85, 0xc3, 0x02, 0x00, 0x00, //0x000046a2 jne LBB1_1110 + 0x49, 0x89, 0xd0, //0x000046a8 movq %rdx, %r8 + 0xe9, 0xb2, 0x02, 0x00, 0x00, //0x000046ab jmp LBB1_1132 + //0x000046b0 LBB1_1080 + 0x4d, 0x89, 0xc5, //0x000046b0 movq %r8, %r13 + //0x000046b3 LBB1_1026 + 0x4d, 0x89, 0xe8, //0x000046b3 movq %r13, %r8 + 0xe9, 0xb5, 0xf2, 0xff, 0xff, //0x000046b6 jmp LBB1_856 + //0x000046bb LBB1_1101 + 0x4c, 0x89, 0xe9, //0x000046bb movq %r13, %rcx + 0x49, 0x89, 0xc8, //0x000046be movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x000046c1 cmpq %rbx, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000046c4 jb LBB1_1085 + 0xe9, 0x87, 0xf9, 0xff, 0xff, //0x000046ca jmp LBB1_994 + //0x000046cf LBB1_1083 + 0x49, 0x89, 0xcd, //0x000046cf movq %rcx, %r13 + 0x49, 0x89, 0xc8, //0x000046d2 movq %rcx, %r8 + 0x48, 0x39, 0xd9, //0x000046d5 cmpq %rbx, %rcx + 0x0f, 0x83, 0x78, 0xf9, 0xff, 0xff, //0x000046d8 jae LBB1_994 + //0x000046de LBB1_1085 + 0x4d, 0x8d, 0x68, 0x01, //0x000046de leaq $1(%r8), %r13 + 0x41, 0x0f, 0xb6, 0x08, //0x000046e2 movzbl (%r8), %ecx + 0x80, 0xf9, 0x5c, //0x000046e6 cmpb $92, %cl + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x000046e9 jne LBB1_1098 + 0x49, 0x8d, 0x48, 0x02, //0x000046ef leaq $2(%r8), %rcx + 0x48, 0x39, 0xd9, //0x000046f3 cmpq %rbx, %rcx + 0x0f, 0x87, 0xb7, 0xff, 0xff, 0xff, //0x000046f6 ja LBB1_1026 + 0x41, 0x0f, 0xb6, 0x45, 0x00, //0x000046fc movzbl (%r13), %eax + 0x3c, 0x6e, //0x00004701 cmpb $110, %al + 0x0f, 0x84, 0xc6, 0xff, 0xff, 0xff, //0x00004703 je LBB1_1083 + 0x3c, 0x72, //0x00004709 cmpb $114, %al + 0x0f, 0x84, 0xbe, 0xff, 0xff, 0xff, //0x0000470b je LBB1_1083 + 0x3c, 0x75, //0x00004711 cmpb $117, %al + 0x0f, 0x85, 0x48, 0xf2, 0xff, 0xff, //0x00004713 jne LBB1_1102 + 0x48, 0x89, 0xd8, //0x00004719 movq %rbx, %rax + 0x48, 0x29, 0xc8, //0x0000471c subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x0000471f cmpq $4, %rax + 0x0f, 0x8c, 0x36, 0x02, 0x00, 0x00, //0x00004723 jl LBB1_1131 + 0x8b, 0x11, //0x00004729 movl (%rcx), %edx + 0x89, 0xd6, //0x0000472b movl %edx, %esi + 0xf7, 0xd6, //0x0000472d notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000472f leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x00004735 andl $-2139062144, %esi + 0x85, 0xc6, //0x0000473b testl %eax, %esi + 0x0f, 0x85, 0x1c, 0x02, 0x00, 0x00, //0x0000473d jne LBB1_1131 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x00004743 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x00004749 orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x0000474b testl $-2139062144, %eax + 0x0f, 0x85, 0x09, 0x02, 0x00, 0x00, //0x00004750 jne LBB1_1131 + 0x89, 0xd0, //0x00004756 movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00004758 andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000475d movl $-1061109568, %edi + 0x29, 0xc7, //0x00004762 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x00004764 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x0000476a andl %esi, %edi + 0x85, 0xdf, //0x0000476c testl %ebx, %edi + 0x0f, 0x85, 0xeb, 0x01, 0x00, 0x00, //0x0000476e jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004774 movl $-522133280, %edi + 0x29, 0xc7, //0x00004779 subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x0000477b addl $960051513, %eax + 0x21, 0xfe, //0x00004780 andl %edi, %esi + 0x85, 0xc6, //0x00004782 testl %eax, %esi + 0x0f, 0x85, 0xd5, 0x01, 0x00, 0x00, //0x00004784 jne LBB1_1131 + 0x0f, 0xca, //0x0000478a bswapl %edx + 0x89, 0xd0, //0x0000478c movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x0000478e shrl $4, %eax + 0xf7, 0xd0, //0x00004791 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00004793 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00004798 leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000479b andl $252645135, %edx + 0x01, 0xc2, //0x000047a1 addl %eax, %edx + 0x89, 0xd1, //0x000047a3 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x000047a5 shrl $4, %ecx + 0x09, 0xd1, //0x000047a8 orl %edx, %ecx + 0x89, 0xc8, //0x000047aa movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x000047ac shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x000047af andl $65280, %eax + 0x89, 0xca, //0x000047b4 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x000047b6 andl $128, %edx + 0x09, 0xc2, //0x000047bc orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x000047be je LBB1_1097 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x000047c4 movl $255, %ecx + //0x000047c9 LBB1_1097 + 0x49, 0x83, 0xc0, 0x06, //0x000047c9 addq $6, %r8 + 0x4d, 0x89, 0xc5, //0x000047cd movq %r8, %r13 + 0x48, 0x8b, 0x5d, 0xd0, //0x000047d0 movq $-48(%rbp), %rbx + //0x000047d4 LBB1_1098 + 0x80, 0xf9, 0x0a, //0x000047d4 cmpb $10, %cl + 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x000047d7 je LBB1_1101 + 0x80, 0xf9, 0x0d, //0x000047dd cmpb $13, %cl + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x000047e0 je LBB1_1101 + 0x80, 0xf9, 0x3d, //0x000047e6 cmpb $61, %cl + 0x0f, 0x85, 0x88, 0x01, 0x00, 0x00, //0x000047e9 jne LBB1_1111 + 0x4d, 0x89, 0xe8, //0x000047ef movq %r13, %r8 + 0x41, 0x83, 0xfe, 0x04, //0x000047f2 cmpl $4, %r14d + 0x48, 0x8b, 0x5d, 0xd0, //0x000047f6 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x70, 0xf1, 0xff, 0xff, //0x000047fa je LBB1_856 + 0x4c, 0x39, 0xeb, //0x00004800 cmpq %r13, %rbx + 0x0f, 0x87, 0x48, 0x00, 0x00, 0x00, //0x00004803 ja LBB1_1114 + 0x4d, 0x89, 0xe8, //0x00004809 movq %r13, %r8 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000480c movq $-48(%rbp), %rbx + 0xe9, 0xf6, 0xfd, 0xff, 0xff, //0x00004810 jmp LBB1_1063 + //0x00004815 LBB1_1103 + 0x48, 0x89, 0xca, //0x00004815 movq %rcx, %rdx + 0x49, 0x89, 0xc8, //0x00004818 movq %rcx, %r8 + 0xe9, 0x50, 0xf1, 0xff, 0xff, //0x0000481b jmp LBB1_856 + //0x00004820 LBB1_1105 + 0x48, 0x8b, 0x5d, 0xd0, //0x00004820 movq $-48(%rbp), %rbx + 0x49, 0x89, 0xd8, //0x00004824 movq %rbx, %r8 + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00004827 jmp LBB1_1063 + //0x0000482c LBB1_1130 + 0x4c, 0x89, 0xc1, //0x0000482c movq %r8, %rcx + 0x49, 0x89, 0xcd, //0x0000482f movq %rcx, %r13 + 0x48, 0x3b, 0x4d, 0xd0, //0x00004832 cmpq $-48(%rbp), %rcx + 0x0f, 0x82, 0x15, 0x00, 0x00, 0x00, //0x00004836 jb LBB1_1114 + 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x0000483c jmp LBB1_1133 + //0x00004841 LBB1_1112 + 0x49, 0x89, 0xc8, //0x00004841 movq %rcx, %r8 + 0x49, 0x89, 0xcd, //0x00004844 movq %rcx, %r13 + 0x48, 0x3b, 0x4d, 0xd0, //0x00004847 cmpq $-48(%rbp), %rcx + 0x0f, 0x83, 0x2e, 0x01, 0x00, 0x00, //0x0000484b jae LBB1_1133 + //0x00004851 LBB1_1114 + 0x4d, 0x8d, 0x45, 0x01, //0x00004851 leaq $1(%r13), %r8 + 0x41, 0x0f, 0xb6, 0x4d, 0x00, //0x00004855 movzbl (%r13), %ecx + 0x80, 0xf9, 0x5c, //0x0000485a cmpb $92, %cl + 0x0f, 0x85, 0xe2, 0x00, 0x00, 0x00, //0x0000485d jne LBB1_1127 + 0x49, 0x8d, 0x4d, 0x02, //0x00004863 leaq $2(%r13), %rcx + 0x48, 0x3b, 0x4d, 0xd0, //0x00004867 cmpq $-48(%rbp), %rcx + 0x0f, 0x87, 0x17, 0x01, 0x00, 0x00, //0x0000486b ja LBB1_1135 + 0x41, 0x0f, 0xb6, 0x00, //0x00004871 movzbl (%r8), %eax + 0x3c, 0x6e, //0x00004875 cmpb $110, %al + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00004877 je LBB1_1112 + 0x3c, 0x72, //0x0000487d cmpb $114, %al + 0x0f, 0x84, 0xbc, 0xff, 0xff, 0xff, //0x0000487f je LBB1_1112 + 0x3c, 0x75, //0x00004885 cmpb $117, %al + 0x0f, 0x85, 0x07, 0x01, 0x00, 0x00, //0x00004887 jne LBB1_1136 + 0x48, 0x8b, 0x45, 0xd0, //0x0000488d movq $-48(%rbp), %rax + 0x48, 0x29, 0xc8, //0x00004891 subq %rcx, %rax + 0x48, 0x83, 0xf8, 0x04, //0x00004894 cmpq $4, %rax + 0x0f, 0x8c, 0xc1, 0x00, 0x00, 0x00, //0x00004898 jl LBB1_1131 + 0x8b, 0x11, //0x0000489e movl (%rcx), %edx + 0x89, 0xd6, //0x000048a0 movl %edx, %esi + 0xf7, 0xd6, //0x000048a2 notl %esi + 0x8d, 0x82, 0xd0, 0xcf, 0xcf, 0xcf, //0x000048a4 leal $-808464432(%rdx), %eax + 0x81, 0xe6, 0x80, 0x80, 0x80, 0x80, //0x000048aa andl $-2139062144, %esi + 0x85, 0xc6, //0x000048b0 testl %eax, %esi + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x000048b2 jne LBB1_1131 + 0x8d, 0x82, 0x19, 0x19, 0x19, 0x19, //0x000048b8 leal $421075225(%rdx), %eax + 0x09, 0xd0, //0x000048be orl %edx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x000048c0 testl $-2139062144, %eax + 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x000048c5 jne LBB1_1131 + 0x89, 0xd0, //0x000048cb movl %edx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000048cd andl $2139062143, %eax + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x000048d2 movl $-1061109568, %edi + 0x29, 0xc7, //0x000048d7 subl %eax, %edi + 0x8d, 0x98, 0x46, 0x46, 0x46, 0x46, //0x000048d9 leal $1179010630(%rax), %ebx + 0x21, 0xf7, //0x000048df andl %esi, %edi + 0x85, 0xdf, //0x000048e1 testl %ebx, %edi + 0x0f, 0x85, 0x76, 0x00, 0x00, 0x00, //0x000048e3 jne LBB1_1131 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x000048e9 movl $-522133280, %edi + 0x29, 0xc7, //0x000048ee subl %eax, %edi + 0x05, 0x39, 0x39, 0x39, 0x39, //0x000048f0 addl $960051513, %eax + 0x21, 0xfe, //0x000048f5 andl %edi, %esi + 0x85, 0xc6, //0x000048f7 testl %eax, %esi + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x000048f9 jne LBB1_1131 + 0x0f, 0xca, //0x000048ff bswapl %edx + 0x89, 0xd0, //0x00004901 movl %edx, %eax + 0xc1, 0xe8, 0x04, //0x00004903 shrl $4, %eax + 0xf7, 0xd0, //0x00004906 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00004908 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x0000490d leal (%rax,%rax,8), %eax + 0x81, 0xe2, 0x0f, 0x0f, 0x0f, 0x0f, //0x00004910 andl $252645135, %edx + 0x01, 0xc2, //0x00004916 addl %eax, %edx + 0x89, 0xd1, //0x00004918 movl %edx, %ecx + 0xc1, 0xe9, 0x04, //0x0000491a shrl $4, %ecx + 0x09, 0xd1, //0x0000491d orl %edx, %ecx + 0x89, 0xc8, //0x0000491f movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00004921 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00004924 andl $65280, %eax + 0x89, 0xca, //0x00004929 movl %ecx, %edx + 0x81, 0xe2, 0x80, 0x00, 0x00, 0x00, //0x0000492b andl $128, %edx + 0x09, 0xc2, //0x00004931 orl %eax, %edx + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00004933 je LBB1_1126 + 0xb9, 0xff, 0x00, 0x00, 0x00, //0x00004939 movl $255, %ecx + //0x0000493e LBB1_1126 + 0x49, 0x83, 0xc5, 0x06, //0x0000493e addq $6, %r13 + 0x4d, 0x89, 0xe8, //0x00004942 movq %r13, %r8 + //0x00004945 LBB1_1127 + 0x80, 0xf9, 0x0a, //0x00004945 cmpb $10, %cl + 0x0f, 0x84, 0xde, 0xfe, 0xff, 0xff, //0x00004948 je LBB1_1130 + 0x80, 0xf9, 0x0d, //0x0000494e cmpb $13, %cl + 0x0f, 0x84, 0xd5, 0xfe, 0xff, 0xff, //0x00004951 je LBB1_1130 + 0x80, 0xf9, 0x3d, //0x00004957 cmpb $61, %cl + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000495a jmp LBB1_1132 + //0x0000495f LBB1_1131 + 0x49, 0x89, 0xc8, //0x0000495f movq %rcx, %r8 + //0x00004962 LBB1_1132 + 0x48, 0x8b, 0x5d, 0xd0, //0x00004962 movq $-48(%rbp), %rbx + 0xe9, 0x05, 0xf0, 0xff, 0xff, //0x00004966 jmp LBB1_856 + //0x0000496b LBB1_1110 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000496b movq $-48(%rbp), %rbx + 0x49, 0x89, 0xd0, //0x0000496f movq %rdx, %r8 + 0xe9, 0xf9, 0xef, 0xff, 0xff, //0x00004972 jmp LBB1_856 + //0x00004977 LBB1_1111 + 0x4d, 0x89, 0xe8, //0x00004977 movq %r13, %r8 + 0xe9, 0xe3, 0xff, 0xff, 0xff, //0x0000497a jmp LBB1_1132 + //0x0000497f LBB1_1133 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000497f movq $-48(%rbp), %rbx + 0xe9, 0x83, 0xfc, 0xff, 0xff, //0x00004983 jmp LBB1_1063 + //0x00004988 LBB1_1135 + 0x4d, 0x89, 0xc5, //0x00004988 movq %r8, %r13 + 0x48, 0x8b, 0x5d, 0xd0, //0x0000498b movq $-48(%rbp), %rbx + 0xe9, 0xdc, 0xef, 0xff, 0xff, //0x0000498f jmp LBB1_856 + //0x00004994 LBB1_1136 + 0x48, 0x8b, 0x5d, 0xd0, //0x00004994 movq $-48(%rbp), %rbx + 0x49, 0x89, 0xc8, //0x00004998 movq %rcx, %r8 + 0xe9, 0xd0, 0xef, 0xff, 0xff, //0x0000499b jmp LBB1_856 + //0x000049a0 LBB1_1137 + 0x48, 0x8b, 0x45, 0xa8, //0x000049a0 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xc8, //0x000049a4 subq %r9, %rax + 0x48, 0x29, 0xc8, //0x000049a7 subq %rcx, %rax + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x000049aa jmp LBB1_1139 + //0x000049af LBB1_1138 + 0x48, 0x8b, 0x4d, 0xb0, //0x000049af movq $-80(%rbp), %rcx + 0x48, 0x2b, 0x8d, 0x78, 0xff, 0xff, 0xff, //0x000049b3 subq $-136(%rbp), %rcx + 0x48, 0x8b, 0x85, 0x70, 0xff, 0xff, 0xff, //0x000049ba movq $-144(%rbp), %rax + 0x48, 0x01, 0x48, 0x08, //0x000049c1 addq %rcx, $8(%rax) + 0x48, 0x89, 0xc8, //0x000049c5 movq %rcx, %rax + //0x000049c8 LBB1_1139 + 0x48, 0x83, 0xc4, 0x68, //0x000049c8 addq $104, %rsp + 0x5b, //0x000049cc popq %rbx + 0x41, 0x5c, //0x000049cd popq %r12 + 0x41, 0x5d, //0x000049cf popq %r13 + 0x41, 0x5e, //0x000049d1 popq %r14 + 0x41, 0x5f, //0x000049d3 popq %r15 + 0x5d, //0x000049d5 popq %rbp + 0xc5, 0xf8, 0x77, //0x000049d6 vzeroupper + 0xc3, //0x000049d9 retq + //0x000049da LBB1_1140 + 0x48, 0x8b, 0x45, 0xa8, //0x000049da movq $-88(%rbp), %rax + 0x4c, 0x29, 0xf8, //0x000049de subq %r15, %rax + 0x48, 0x29, 0xc8, //0x000049e1 subq %rcx, %rax + 0xe9, 0xdf, 0xff, 0xff, 0xff, //0x000049e4 jmp LBB1_1139 + //0x000049e9 LBB1_1141 + 0x48, 0x8b, 0x45, 0xa8, //0x000049e9 movq $-88(%rbp), %rax + 0x4c, 0x29, 0xe8, //0x000049ed subq %r13, %rax + 0x48, 0x29, 0xc8, //0x000049f0 subq %rcx, %rax + 0xe9, 0xd0, 0xff, 0xff, 0xff, //0x000049f3 jmp LBB1_1139 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000049f8 .p2align 4, 0x00 + //0x00004a00 _TabEncodeCharsetStd + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, //0x00004a00 QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, //0x00004a10 QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' + 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, //0x00004a20 QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' + 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2f, //0x00004a30 QUAD $0x333231307a797877; QUAD $0x2f2b393837363534 // .ascii 16, 'wxyz0123456789+/' + //0x00004a40 .p2align 4, 0x00 + //0x00004a40 _VecEncodeCharsetStd + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xed, 0xf0, 0x41, 0x00, 0x00, //0x00004a40 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x000041f0edfcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xed\xf0A\x00\x00' + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xed, 0xf0, 0x41, 0x00, 0x00, //0x00004a50 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x000041f0edfcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xed\xf0A\x00\x00' + //0x00004a60 .p2align 4, 0x00 + //0x00004a60 _TabEncodeCharsetURL + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, //0x00004a60 QUAD $0x4847464544434241; QUAD $0x504f4e4d4c4b4a49 // .ascii 16, 'ABCDEFGHIJKLMNOP' + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, //0x00004a70 QUAD $0x5857565554535251; QUAD $0x6665646362615a59 // .ascii 16, 'QRSTUVWXYZabcdef' + 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, //0x00004a80 QUAD $0x6e6d6c6b6a696867; QUAD $0x767574737271706f // .ascii 16, 'ghijklmnopqrstuv' + 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2d, 0x5f, //0x00004a90 QUAD $0x333231307a797877; QUAD $0x5f2d393837363534 // .ascii 16, 'wxyz0123456789-_' + //0x00004aa0 .p2align 4, 0x00 + //0x00004aa0 _VecEncodeCharsetURL + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xef, 0x20, 0x41, 0x00, 0x00, //0x00004aa0 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x00004120effcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xef A\x00\x00' + 0x47, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xef, 0x20, 0x41, 0x00, 0x00, //0x00004ab0 QUAD $0xfcfcfcfcfcfcfc47; QUAD $0x00004120effcfcfc // .asciz 16, 'G\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xef A\x00\x00' + //0x00004ac0 .p2align 4, 0x00 + //0x00004ac0 _VecDecodeTableStd + 0x00, 0x00, 0x13, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ac0 QUAD $0xb9b9bfbf04130000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x13\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x13, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ad0 QUAD $0xb9b9bfbf04130000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x13\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x54, 0x50, 0x50, 0x50, 0x54, //0x00004ae0 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x5450505054f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0TPPPT' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x54, 0x50, 0x50, 0x50, 0x54, //0x00004af0 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x5450505054f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0TPPPT' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004b00 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .ascii 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00004b10 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .ascii 16, '////////////////' + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, //0x00004b20 QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .ascii 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, //0x00004b30 QUAD $0x1010101010101010; QUAD $0x1010101010101010 // .ascii 16, '\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10' + //0x00004b40 .p2align 4, 0x00 + //0x00004b40 _VecDecodeCharsetStd + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b40 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b50 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, 0xff, 0x3f, //0x00004b60 QUAD $0xffffffffffffffff; QUAD $0x3fffffff3effffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff\xff?' + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b70 QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' + 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, //0x00004b80 QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004b90 QUAD $0x161514131211100f; QUAD $0xffffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff\xff' + 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, //0x00004ba0 QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bb0 QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bc0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bd0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004be0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004bf0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c00 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c10 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c20 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004c30 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + //0x00004c40 .p2align 4, 0x00 + //0x00004c40 _VecDecodeTableURL + 0x00, 0x00, 0x11, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c40 QUAD $0xb9b9bfbf04110000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x11\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x11, 0x04, 0xbf, 0xbf, 0xb9, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004c50 QUAD $0xb9b9bfbf04110000; QUAD $0x0000000000000000 // .ascii 16, '\x00\x00\x11\x04\xbf\xbf\xb9\xb9\x00\x00\x00\x00\x00\x00\x00\x00' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x50, 0x50, 0x54, 0x50, 0x70, //0x00004c60 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x7050545050f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0PPTPp' + 0xa8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0x50, 0x50, 0x54, 0x50, 0x70, //0x00004c70 QUAD $0xf8f8f8f8f8f8f8a8; QUAD $0x7050545050f0f8f8 // .ascii 16, '\xa8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf8\xf0PPTPp' + 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, //0x00004c80 QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .ascii 16, '________________' + 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, 0x5f, //0x00004c90 QUAD $0x5f5f5f5f5f5f5f5f; QUAD $0x5f5f5f5f5f5f5f5f // .ascii 16, '________________' + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004ca0 QUAD $0xe0e0e0e0e0e0e0e0; QUAD $0xe0e0e0e0e0e0e0e0 // .ascii 16, '\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0' + 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, //0x00004cb0 QUAD $0xe0e0e0e0e0e0e0e0; QUAD $0xe0e0e0e0e0e0e0e0 // .ascii 16, '\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0\xe0' + //0x00004cc0 .p2align 4, 0x00 + //0x00004cc0 _VecDecodeCharsetURL + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cc0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cd0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0xff, 0xff, //0x00004ce0 QUAD $0xffffffffffffffff; QUAD $0xffff3effffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff>\xff\xff' + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004cf0 QUAD $0x3b3a393837363534; QUAD $0xffffffffffff3d3c // .ascii 16, '456789:;<=\xff\xff\xff\xff\xff\xff' + 0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, //0x00004d00 QUAD $0x06050403020100ff; QUAD $0x0e0d0c0b0a090807 // .ascii 16, '\xff\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e' + 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0xff, 0xff, 0xff, 0xff, 0x3f, //0x00004d10 QUAD $0x161514131211100f; QUAD $0x3fffffffff191817 // .ascii 16, '\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\xff\xff\xff\xff?' + 0xff, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, //0x00004d20 QUAD $0x201f1e1d1c1b1aff; QUAD $0x2827262524232221 // .ascii 16, '\xff\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'(' + 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d30 QUAD $0x302f2e2d2c2b2a29; QUAD $0xffffffffff333231 // .ascii 16, ')*+,-./0123\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d40 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d50 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d60 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d70 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d80 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004d90 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004da0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, //0x00004db0 QUAD $0xffffffffffffffff; QUAD $0xffffffffffffffff // .ascii 16, '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' +} diff --git a/vendor/github.com/cloudwego/iasm/LICENSE-APACHE b/vendor/github.com/cloudwego/iasm/LICENSE-APACHE new file mode 100644 index 000000000..66a27ec5f --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/LICENSE-APACHE @@ -0,0 +1,177 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/vendor/github.com/cloudwego/iasm/expr/ast.go b/vendor/github.com/cloudwego/iasm/expr/ast.go new file mode 100644 index 000000000..a91bb2e25 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/ast.go @@ -0,0 +1,261 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +import ( + `fmt` +) + +// Type is tyep expression type. +type Type int + +const ( + // CONST indicates that the expression is a constant. + CONST Type = iota + + // TERM indicates that the expression is a Term reference. + TERM + + // EXPR indicates that the expression is a unary or binary expression. + EXPR +) + +var typeNames = map[Type]string { + EXPR : "Expr", + TERM : "Term", + CONST : "Const", +} + +// String returns the string representation of a Type. +func (self Type) String() string { + if v, ok := typeNames[self]; ok { + return v + } else { + return fmt.Sprintf("expr.Type(%d)", self) + } +} + +// Operator represents an operation to perform when Type is EXPR. +type Operator uint8 + +const ( + // ADD performs "Add Expr.Left and Expr.Right". + ADD Operator = iota + + // SUB performs "Subtract Expr.Left by Expr.Right". + SUB + + // MUL performs "Multiply Expr.Left by Expr.Right". + MUL + + // DIV performs "Divide Expr.Left by Expr.Right". + DIV + + // MOD performs "Modulo Expr.Left by Expr.Right". + MOD + + // AND performs "Bitwise AND Expr.Left and Expr.Right". + AND + + // OR performs "Bitwise OR Expr.Left and Expr.Right". + OR + + // XOR performs "Bitwise XOR Expr.Left and Expr.Right". + XOR + + // SHL performs "Bitwise Shift Expr.Left to the Left by Expr.Right Bits". + SHL + + // SHR performs "Bitwise Shift Expr.Left to the Right by Expr.Right Bits". + SHR + + // POW performs "Raise Expr.Left to the power of Expr.Right" + POW + + // NOT performs "Bitwise Invert Expr.Left". + NOT + + // NEG performs "Negate Expr.Left". + NEG +) + +var operatorNames = map[Operator]string { + ADD : "Add", + SUB : "Subtract", + MUL : "Multiply", + DIV : "Divide", + MOD : "Modulo", + AND : "And", + OR : "Or", + XOR : "ExclusiveOr", + SHL : "ShiftLeft", + SHR : "ShiftRight", + POW : "Power", + NOT : "Invert", + NEG : "Negate", +} + +// String returns the string representation of a Type. +func (self Operator) String() string { + if v, ok := operatorNames[self]; ok { + return v + } else { + return fmt.Sprintf("expr.Operator(%d)", self) + } +} + +// Expr represents an expression node. +type Expr struct { + Type Type + Term Term + Op Operator + Left *Expr + Right *Expr + Const int64 +} + +// Ref creates an expression from a Term. +func Ref(t Term) (p *Expr) { + p = newExpression() + p.Term = t + p.Type = TERM + return +} + +// Int creates an expression from an integer. +func Int(v int64) (p *Expr) { + p = newExpression() + p.Type = CONST + p.Const = v + return +} + +func (self *Expr) clear() { + if self.Term != nil { self.Term.Free() } + if self.Left != nil { self.Left.Free() } + if self.Right != nil { self.Right.Free() } +} + +// Free returns the Expr into pool. +// Any operation performed after Free is undefined behavior. +func (self *Expr) Free() { + self.clear() + freeExpression(self) +} + +// Evaluate evaluates the expression into an integer. +// It also implements the Term interface. +func (self *Expr) Evaluate() (int64, error) { + switch self.Type { + case EXPR : return self.eval() + case TERM : return self.Term.Evaluate() + case CONST : return self.Const, nil + default : panic("invalid expression type: " + self.Type.String()) + } +} + +/** Expression Combinator **/ + +func combine(a *Expr, op Operator, b *Expr) (r *Expr) { + r = newExpression() + r.Op = op + r.Type = EXPR + r.Left = a + r.Right = b + return +} + +func (self *Expr) Add(v *Expr) *Expr { return combine(self, ADD, v) } +func (self *Expr) Sub(v *Expr) *Expr { return combine(self, SUB, v) } +func (self *Expr) Mul(v *Expr) *Expr { return combine(self, MUL, v) } +func (self *Expr) Div(v *Expr) *Expr { return combine(self, DIV, v) } +func (self *Expr) Mod(v *Expr) *Expr { return combine(self, MOD, v) } +func (self *Expr) And(v *Expr) *Expr { return combine(self, AND, v) } +func (self *Expr) Or (v *Expr) *Expr { return combine(self, OR , v) } +func (self *Expr) Xor(v *Expr) *Expr { return combine(self, XOR, v) } +func (self *Expr) Shl(v *Expr) *Expr { return combine(self, SHL, v) } +func (self *Expr) Shr(v *Expr) *Expr { return combine(self, SHR, v) } +func (self *Expr) Pow(v *Expr) *Expr { return combine(self, POW, v) } +func (self *Expr) Not() *Expr { return combine(self, NOT, nil) } +func (self *Expr) Neg() *Expr { return combine(self, NEG, nil) } + +/** Expression Evaluator **/ + +var binaryEvaluators = [256]func(int64, int64) (int64, error) { + ADD: func(a, b int64) (int64, error) { return a + b, nil }, + SUB: func(a, b int64) (int64, error) { return a - b, nil }, + MUL: func(a, b int64) (int64, error) { return a * b, nil }, + DIV: idiv, + MOD: imod, + AND: func(a, b int64) (int64, error) { return a & b, nil }, + OR: func(a, b int64) (int64, error) { return a | b, nil }, + XOR: func(a, b int64) (int64, error) { return a ^ b, nil }, + SHL: func(a, b int64) (int64, error) { return a << b, nil }, + SHR: func(a, b int64) (int64, error) { return a >> b, nil }, + POW: ipow, +} + +func (self *Expr) eval() (int64, error) { + var lhs int64 + var rhs int64 + var err error + var vfn func(int64, int64) (int64, error) + + /* evaluate LHS */ + if lhs, err = self.Left.Evaluate(); err != nil { + return 0, err + } + + /* check for unary operators */ + switch self.Op { + case NOT: return self.unaryNot(lhs) + case NEG: return self.unaryNeg(lhs) + } + + /* check for operators */ + if vfn = binaryEvaluators[self.Op]; vfn == nil { + panic("invalid operator: " + self.Op.String()) + } + + /* must be a binary expression */ + if self.Right == nil { + panic("operator " + self.Op.String() + " is a binary operator") + } + + /* evaluate RHS, and call the operator */ + if rhs, err = self.Right.Evaluate(); err != nil { + return 0, err + } else { + return vfn(lhs, rhs) + } +} + +func (self *Expr) unaryNot(v int64) (int64, error) { + if self.Right == nil { + return ^v, nil + } else { + panic("operator Invert is an unary operator") + } +} + +func (self *Expr) unaryNeg(v int64) (int64, error) { + if self.Right == nil { + return -v, nil + } else { + panic("operator Negate is an unary operator") + } +} diff --git a/vendor/github.com/cloudwego/iasm/expr/errors.go b/vendor/github.com/cloudwego/iasm/expr/errors.go new file mode 100644 index 000000000..ece4cb8dd --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/errors.go @@ -0,0 +1,53 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +import ( + `fmt` +) + +// SyntaxError represents a syntax error in the expression. +type SyntaxError struct { + Pos int + Reason string +} + +func newSyntaxError(pos int, reason string) *SyntaxError { + return &SyntaxError { + Pos : pos, + Reason : reason, + } +} + +func (self *SyntaxError) Error() string { + return fmt.Sprintf("Syntax error at position %d: %s", self.Pos, self.Reason) +} + +// RuntimeError is an error which would occure at run time. +type RuntimeError struct { + Reason string +} + +func newRuntimeError(reason string) *RuntimeError { + return &RuntimeError { + Reason: reason, + } +} + +func (self *RuntimeError) Error() string { + return "Runtime error: " + self.Reason +} diff --git a/vendor/github.com/cloudwego/iasm/expr/ops.go b/vendor/github.com/cloudwego/iasm/expr/ops.go new file mode 100644 index 000000000..7f168b902 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/ops.go @@ -0,0 +1,67 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +import ( + `fmt` +) + +func idiv(v int64, d int64) (int64, error) { + if d != 0 { + return v / d, nil + } else { + return 0, newRuntimeError("division by zero") + } +} + +func imod(v int64, d int64) (int64, error) { + if d != 0 { + return v % d, nil + } else { + return 0, newRuntimeError("division by zero") + } +} + +func ipow(v int64, e int64) (int64, error) { + mul := v + ret := int64(1) + + /* value must be 0 or positive */ + if v < 0 { + return 0, newRuntimeError(fmt.Sprintf("negative base value: %d", v)) + } + + /* exponent must be non-negative */ + if e < 0 { + return 0, newRuntimeError(fmt.Sprintf("negative exponent: %d", e)) + } + + /* fast power first round */ + if (e & 1) != 0 { + ret *= mul + } + + /* fast power remaining rounds */ + for e >>= 1; e != 0; e >>= 1 { + if mul *= mul; (e & 1) != 0 { + ret *= mul + } + } + + /* all done */ + return ret, nil +} diff --git a/vendor/github.com/cloudwego/iasm/expr/parser.go b/vendor/github.com/cloudwego/iasm/expr/parser.go new file mode 100644 index 000000000..1846a58a0 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/parser.go @@ -0,0 +1,329 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +import ( + `strconv` + `unicode` + `unsafe` +) + +type _TokenKind uint8 + +const ( + _T_end _TokenKind = iota + 1 + _T_int + _T_punc + _T_name +) + +const ( + _OP2 = 0x80 + _POW = _OP2 | '*' + _SHL = _OP2 | '<' + _SHR = _OP2 | '>' +) + +type _Slice struct { + p unsafe.Pointer + n int + c int +} + +type _Token struct { + pos int + ptr *rune + u64 uint64 + tag _TokenKind +} + +func (self _Token) str() (v string) { + return string(self.rbuf()) +} + +func (self _Token) rbuf() (v []rune) { + (*_Slice)(unsafe.Pointer(&v)).c = int(self.u64) + (*_Slice)(unsafe.Pointer(&v)).n = int(self.u64) + (*_Slice)(unsafe.Pointer(&v)).p = unsafe.Pointer(self.ptr) + return +} + +func tokenEnd(p int) _Token { + return _Token { + pos: p, + tag: _T_end, + } +} + +func tokenInt(p int, v uint64) _Token { + return _Token { + pos: p, + u64: v, + tag: _T_int, + } +} + +func tokenPunc(p int, v rune) _Token { + return _Token { + pos: p, + tag: _T_punc, + u64: uint64(v), + } +} + +func tokenName(p int, v []rune) _Token { + return _Token { + pos: p, + ptr: &v[0], + tag: _T_name, + u64: uint64(len(v)), + } +} + +// Repository represents a repository of Term's. +type Repository interface { + Get(name string) (Term, error) +} + +// Parser parses an expression string to it's AST representation. +type Parser struct { + pos int + src []rune +} + +var binaryOps = [...]func(*Expr, *Expr) *Expr { + '+' : (*Expr).Add, + '-' : (*Expr).Sub, + '*' : (*Expr).Mul, + '/' : (*Expr).Div, + '%' : (*Expr).Mod, + '&' : (*Expr).And, + '^' : (*Expr).Xor, + '|' : (*Expr).Or, + _SHL : (*Expr).Shl, + _SHR : (*Expr).Shr, + _POW : (*Expr).Pow, +} + +var precedence = [...]map[int]bool { + {_SHL: true, _SHR: true}, + {'|' : true}, + {'^' : true}, + {'&' : true}, + {'+' : true, '-': true}, + {'*' : true, '/': true, '%': true}, + {_POW: true}, +} + +func (self *Parser) ch() rune { + return self.src[self.pos] +} + +func (self *Parser) eof() bool { + return self.pos >= len(self.src) +} + +func (self *Parser) rch() (v rune) { + v, self.pos = self.src[self.pos], self.pos + 1 + return +} + +func (self *Parser) hex(ss []rune) bool { + if len(ss) == 1 && ss[0] == '0' { + return unicode.ToLower(self.ch()) == 'x' + } else if len(ss) <= 1 || unicode.ToLower(ss[1]) != 'x' { + return unicode.IsDigit(self.ch()) + } else { + return ishexdigit(self.ch()) + } +} + +func (self *Parser) int(p int, ss []rune) (_Token, error) { + var err error + var val uint64 + + /* find all the digits */ + for !self.eof() && self.hex(ss) { + ss = append(ss, self.rch()) + } + + /* parse the value */ + if val, err = strconv.ParseUint(string(ss), 0, 64); err != nil { + return _Token{}, err + } else { + return tokenInt(p, val), nil + } +} + +func (self *Parser) name(p int, ss []rune) _Token { + for !self.eof() && isident(self.ch()) { ss = append(ss, self.rch()) } + return tokenName(p, ss) +} + +func (self *Parser) read(p int, ch rune) (_Token, error) { + if isdigit(ch) { + return self.int(p, []rune { ch }) + } else if isident0(ch) { + return self.name(p, []rune { ch }), nil + } else if isop2ch(ch) && !self.eof() && self.ch() == ch { + return tokenPunc(p, _OP2 | self.rch()), nil + } else if isop1ch(ch) { + return tokenPunc(p, ch), nil + } else { + return _Token{}, newSyntaxError(self.pos, "invalid character " + strconv.QuoteRuneToASCII(ch)) + } +} + +func (self *Parser) next() (_Token, error) { + for { + var p int + var c rune + + /* check for EOF */ + if self.eof() { + return tokenEnd(self.pos), nil + } + + /* read the next char */ + p = self.pos + c = self.rch() + + /* parse the token if not a space */ + if !unicode.IsSpace(c) { + return self.read(p, c) + } + } +} + +func (self *Parser) grab(tk _Token, repo Repository) (*Expr, error) { + if repo == nil { + return nil, newSyntaxError(tk.pos, "unresolved symbol: " + tk.str()) + } else if term, err := repo.Get(tk.str()); err != nil { + return nil, err + } else { + return Ref(term), nil + } +} + +func (self *Parser) nest(nest int, repo Repository) (*Expr, error) { + var err error + var ret *Expr + var ntk _Token + + /* evaluate the nested expression */ + if ret, err = self.expr(0, nest + 1, repo); err != nil { + return nil, err + } + + /* must follows with a ')' */ + if ntk, err = self.next(); err != nil { + return nil, err + } else if ntk.tag != _T_punc || ntk.u64 != ')' { + return nil, newSyntaxError(ntk.pos, "')' expected") + } else { + return ret, nil + } +} + +func (self *Parser) unit(nest int, repo Repository) (*Expr, error) { + if tk, err := self.next(); err != nil { + return nil, err + } else if tk.tag == _T_int { + return Int(int64(tk.u64)), nil + } else if tk.tag == _T_name { + return self.grab(tk, repo) + } else if tk.tag == _T_punc && tk.u64 == '(' { + return self.nest(nest, repo) + } else if tk.tag == _T_punc && tk.u64 == '+' { + return self.unit(nest, repo) + } else if tk.tag == _T_punc && tk.u64 == '-' { + return neg2(self.unit(nest, repo)) + } else if tk.tag == _T_punc && tk.u64 == '~' { + return not2(self.unit(nest, repo)) + } else { + return nil, newSyntaxError(tk.pos, "integer, unary operator or nested expression expected") + } +} + +func (self *Parser) term(prec int, nest int, repo Repository) (*Expr, error) { + var err error + var val *Expr + + /* parse the LHS operand */ + if val, err = self.expr(prec + 1, nest, repo); err != nil { + return nil, err + } + + /* parse all the operators of the same precedence */ + for { + var op int + var rv *Expr + var tk _Token + + /* peek the next token */ + pp := self.pos + tk, err = self.next() + + /* check for errors */ + if err != nil { + return nil, err + } + + /* encountered EOF */ + if tk.tag == _T_end { + return val, nil + } + + /* must be an operator */ + if tk.tag != _T_punc { + return nil, newSyntaxError(tk.pos, "operators expected") + } + + /* check for the operator precedence */ + if op = int(tk.u64); !precedence[prec][op] { + self.pos = pp + return val, nil + } + + /* evaluate the RHS operand, and combine the value */ + if rv, err = self.expr(prec + 1, nest, repo); err != nil { + return nil, err + } else { + val = binaryOps[op](val, rv) + } + } +} + +func (self *Parser) expr(prec int, nest int, repo Repository) (*Expr, error) { + if prec >= len(precedence) { + return self.unit(nest, repo) + } else { + return self.term(prec, nest, repo) + } +} + +// Parse parses the expression, and returns it's AST tree. +func (self *Parser) Parse(repo Repository) (*Expr, error) { + return self.expr(0, 0, repo) +} + +// SetSource resets the expression parser and sets the expression source. +func (self *Parser) SetSource(src string) *Parser { + self.pos = 0 + self.src = []rune(src) + return self +} diff --git a/vendor/github.com/cloudwego/iasm/expr/pools.go b/vendor/github.com/cloudwego/iasm/expr/pools.go new file mode 100644 index 000000000..869225242 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/pools.go @@ -0,0 +1,42 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +import ( + `sync` +) + +var ( + expressionPool sync.Pool +) + +func newExpression() *Expr { + if v := expressionPool.Get(); v == nil { + return new(Expr) + } else { + return resetExpression(v.(*Expr)) + } +} + +func freeExpression(p *Expr) { + expressionPool.Put(p) +} + +func resetExpression(p *Expr) *Expr { + *p = Expr{} + return p +} diff --git a/vendor/github.com/cloudwego/iasm/expr/term.go b/vendor/github.com/cloudwego/iasm/expr/term.go new file mode 100644 index 000000000..45042334b --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/term.go @@ -0,0 +1,23 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +// Term represents a value that can Evaluate() into an integer. +type Term interface { + Free() + Evaluate() (int64, error) +} diff --git a/vendor/github.com/cloudwego/iasm/expr/utils.go b/vendor/github.com/cloudwego/iasm/expr/utils.go new file mode 100644 index 000000000..780f406e7 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/expr/utils.go @@ -0,0 +1,77 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package expr + +var op1ch = [...]bool { + '+': true, + '-': true, + '*': true, + '/': true, + '%': true, + '&': true, + '|': true, + '^': true, + '~': true, + '(': true, + ')': true, +} + +var op2ch = [...]bool { + '*': true, + '<': true, + '>': true, +} + +func neg2(v *Expr, err error) (*Expr, error) { + if err != nil { + return nil, err + } else { + return v.Neg(), nil + } +} + +func not2(v *Expr, err error) (*Expr, error) { + if err != nil { + return nil, err + } else { + return v.Not(), nil + } +} + +func isop1ch(ch rune) bool { + return ch >= 0 && int(ch) < len(op1ch) && op1ch[ch] +} + +func isop2ch(ch rune) bool { + return ch >= 0 && int(ch) < len(op2ch) && op2ch[ch] +} + +func isdigit(ch rune) bool { + return ch >= '0' && ch <= '9' +} + +func isident(ch rune) bool { + return isdigit(ch) || isident0(ch) +} + +func isident0(ch rune) bool { + return (ch == '_') || (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') +} + +func ishexdigit(ch rune) bool { + return isdigit(ch) || (ch >= 'a' && ch <= 'f') || (ch >= 'A' && ch <= 'F') +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/arch.go b/vendor/github.com/cloudwego/iasm/x86_64/arch.go new file mode 100644 index 000000000..26f1a539d --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/arch.go @@ -0,0 +1,251 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + `fmt` +) + +// ISA represents an extension to x86-64 instruction set. +type ISA uint64 + +const ( + ISA_CPUID ISA = 1 << iota + ISA_RDTSC + ISA_RDTSCP + ISA_CMOV + ISA_MOVBE + ISA_POPCNT + ISA_LZCNT + ISA_TBM + ISA_BMI + ISA_BMI2 + ISA_ADX + ISA_MMX + ISA_MMX_PLUS + ISA_FEMMS + ISA_3DNOW + ISA_3DNOW_PLUS + ISA_SSE + ISA_SSE2 + ISA_SSE3 + ISA_SSSE3 + ISA_SSE4A + ISA_SSE4_1 + ISA_SSE4_2 + ISA_FMA3 + ISA_FMA4 + ISA_XOP + ISA_F16C + ISA_AVX + ISA_AVX2 + ISA_AVX512F + ISA_AVX512BW + ISA_AVX512DQ + ISA_AVX512VL + ISA_AVX512PF + ISA_AVX512ER + ISA_AVX512CD + ISA_AVX512VBMI + ISA_AVX512IFMA + ISA_AVX512VPOPCNTDQ + ISA_AVX512_4VNNIW + ISA_AVX512_4FMAPS + ISA_PREFETCH + ISA_PREFETCHW + ISA_PREFETCHWT1 + ISA_CLFLUSH + ISA_CLFLUSHOPT + ISA_CLWB + ISA_CLZERO + ISA_RDRAND + ISA_RDSEED + ISA_PCLMULQDQ + ISA_AES + ISA_SHA + ISA_MONITOR + ISA_MONITORX + ISA_ALL = ^ISA(0) +) + +var _ISA_NAMES = map[ISA]string { + ISA_CPUID : "CPUID", + ISA_RDTSC : "RDTSC", + ISA_RDTSCP : "RDTSCP", + ISA_CMOV : "CMOV", + ISA_MOVBE : "MOVBE", + ISA_POPCNT : "POPCNT", + ISA_LZCNT : "LZCNT", + ISA_TBM : "TBM", + ISA_BMI : "BMI", + ISA_BMI2 : "BMI2", + ISA_ADX : "ADX", + ISA_MMX : "MMX", + ISA_MMX_PLUS : "MMX+", + ISA_FEMMS : "FEMMS", + ISA_3DNOW : "3dnow!", + ISA_3DNOW_PLUS : "3dnow!+", + ISA_SSE : "SSE", + ISA_SSE2 : "SSE2", + ISA_SSE3 : "SSE3", + ISA_SSSE3 : "SSSE3", + ISA_SSE4A : "SSE4A", + ISA_SSE4_1 : "SSE4.1", + ISA_SSE4_2 : "SSE4.2", + ISA_FMA3 : "FMA3", + ISA_FMA4 : "FMA4", + ISA_XOP : "XOP", + ISA_F16C : "F16C", + ISA_AVX : "AVX", + ISA_AVX2 : "AVX2", + ISA_AVX512F : "AVX512F", + ISA_AVX512BW : "AVX512BW", + ISA_AVX512DQ : "AVX512DQ", + ISA_AVX512VL : "AVX512VL", + ISA_AVX512PF : "AVX512PF", + ISA_AVX512ER : "AVX512ER", + ISA_AVX512CD : "AVX512CD", + ISA_AVX512VBMI : "AVX512VBMI", + ISA_AVX512IFMA : "AVX512IFMA", + ISA_AVX512VPOPCNTDQ : "AVX512VPOPCNTDQ", + ISA_AVX512_4VNNIW : "AVX512_4VNNIW", + ISA_AVX512_4FMAPS : "AVX512_4FMAPS", + ISA_PREFETCH : "PREFETCH", + ISA_PREFETCHW : "PREFETCHW", + ISA_PREFETCHWT1 : "PREFETCHWT1", + ISA_CLFLUSH : "CLFLUSH", + ISA_CLFLUSHOPT : "CLFLUSHOPT", + ISA_CLWB : "CLWB", + ISA_CLZERO : "CLZERO", + ISA_RDRAND : "RDRAND", + ISA_RDSEED : "RDSEED", + ISA_PCLMULQDQ : "PCLMULQDQ", + ISA_AES : "AES", + ISA_SHA : "SHA", + ISA_MONITOR : "MONITOR", + ISA_MONITORX : "MONITORX", +} + +var _ISA_MAPPING = map[string]ISA { + "CPUID" : ISA_CPUID, + "RDTSC" : ISA_RDTSC, + "RDTSCP" : ISA_RDTSCP, + "CMOV" : ISA_CMOV, + "MOVBE" : ISA_MOVBE, + "POPCNT" : ISA_POPCNT, + "LZCNT" : ISA_LZCNT, + "TBM" : ISA_TBM, + "BMI" : ISA_BMI, + "BMI2" : ISA_BMI2, + "ADX" : ISA_ADX, + "MMX" : ISA_MMX, + "MMX+" : ISA_MMX_PLUS, + "FEMMS" : ISA_FEMMS, + "3dnow!" : ISA_3DNOW, + "3dnow!+" : ISA_3DNOW_PLUS, + "SSE" : ISA_SSE, + "SSE2" : ISA_SSE2, + "SSE3" : ISA_SSE3, + "SSSE3" : ISA_SSSE3, + "SSE4A" : ISA_SSE4A, + "SSE4.1" : ISA_SSE4_1, + "SSE4.2" : ISA_SSE4_2, + "FMA3" : ISA_FMA3, + "FMA4" : ISA_FMA4, + "XOP" : ISA_XOP, + "F16C" : ISA_F16C, + "AVX" : ISA_AVX, + "AVX2" : ISA_AVX2, + "AVX512F" : ISA_AVX512F, + "AVX512BW" : ISA_AVX512BW, + "AVX512DQ" : ISA_AVX512DQ, + "AVX512VL" : ISA_AVX512VL, + "AVX512PF" : ISA_AVX512PF, + "AVX512ER" : ISA_AVX512ER, + "AVX512CD" : ISA_AVX512CD, + "AVX512VBMI" : ISA_AVX512VBMI, + "AVX512IFMA" : ISA_AVX512IFMA, + "AVX512VPOPCNTDQ" : ISA_AVX512VPOPCNTDQ, + "AVX512_4VNNIW" : ISA_AVX512_4VNNIW, + "AVX512_4FMAPS" : ISA_AVX512_4FMAPS, + "PREFETCH" : ISA_PREFETCH, + "PREFETCHW" : ISA_PREFETCHW, + "PREFETCHWT1" : ISA_PREFETCHWT1, + "CLFLUSH" : ISA_CLFLUSH, + "CLFLUSHOPT" : ISA_CLFLUSHOPT, + "CLWB" : ISA_CLWB, + "CLZERO" : ISA_CLZERO, + "RDRAND" : ISA_RDRAND, + "RDSEED" : ISA_RDSEED, + "PCLMULQDQ" : ISA_PCLMULQDQ, + "AES" : ISA_AES, + "SHA" : ISA_SHA, + "MONITOR" : ISA_MONITOR, + "MONITORX" : ISA_MONITORX, +} + +func (self ISA) String() string { + if v, ok := _ISA_NAMES[self]; ok { + return v + } else { + return fmt.Sprintf("(invalid: %#x)", uint64(self)) + } +} + +// ParseISA parses name into ISA, it will panic if the name is invalid. +func ParseISA(name string) ISA { + if v, ok := _ISA_MAPPING[name]; ok { + return v + } else { + panic("invalid ISA name: " + name) + } +} + +// Arch represents the x86_64 architecture. +type Arch struct { + isa ISA +} + +// DefaultArch is the default architecture with all ISA enabled. +var DefaultArch = CreateArch() + +// CreateArch creates a new Arch with all ISA enabled. +func CreateArch() *Arch { + return new(Arch).EnableISA(ISA_ALL) +} + +// HasISA checks if a particular ISA was enabled. +func (self *Arch) HasISA(isa ISA) bool { + return (self.isa & isa) != 0 +} + +// EnableISA enables a particular ISA. +func (self *Arch) EnableISA(isa ISA) *Arch { + self.isa |= isa + return self +} + +// DisableISA disables a particular ISA. +func (self *Arch) DisableISA(isa ISA) *Arch { + self.isa &^= isa + return self +} + +// CreateProgram creates a new empty program. +func (self *Arch) CreateProgram() *Program { + return newProgram(self) +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/asm.s b/vendor/github.com/cloudwego/iasm/x86_64/asm.s new file mode 100644 index 000000000..a00c41dfc --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/asm.s @@ -0,0 +1,16 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + diff --git a/vendor/github.com/cloudwego/iasm/x86_64/assembler.go b/vendor/github.com/cloudwego/iasm/x86_64/assembler.go new file mode 100644 index 000000000..bbe19193a --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/assembler.go @@ -0,0 +1,1819 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + `bytes` + `errors` + `fmt` + `math` + `strconv` + `strings` + `unicode` + + `github.com/cloudwego/iasm/expr` +) + +type ( + _TokenKind int + _Punctuation int +) + +const ( + _T_end _TokenKind = iota + 1 + _T_int + _T_name + _T_punc + _T_space +) + +const ( + _P_plus _Punctuation = iota + 1 + _P_minus + _P_star + _P_slash + _P_percent + _P_amp + _P_bar + _P_caret + _P_shl + _P_shr + _P_tilde + _P_lbrk + _P_rbrk + _P_dot + _P_comma + _P_colon + _P_dollar + _P_hash +) + +var _PUNC_NAME = map[_Punctuation]string { + _P_plus : "+", + _P_minus : "-", + _P_star : "*", + _P_slash : "/", + _P_percent : "%", + _P_amp : "&", + _P_bar : "|", + _P_caret : "^", + _P_shl : "<<", + _P_shr : ">>", + _P_tilde : "~", + _P_lbrk : "(", + _P_rbrk : ")", + _P_dot : ".", + _P_comma : ",", + _P_colon : ":", + _P_dollar : "$", + _P_hash : "#", +} + +func (self _Punctuation) String() string { + if v, ok := _PUNC_NAME[self]; ok { + return v + } else { + return fmt.Sprintf("_Punctuation(%d)", self) + } +} + +type _Token struct { + pos int + end int + u64 uint64 + str string + tag _TokenKind +} + +func (self *_Token) punc() _Punctuation { + return _Punctuation(self.u64) +} + +func (self *_Token) String() string { + switch self.tag { + case _T_end : return "" + case _T_int : return fmt.Sprintf("", self.u64) + case _T_punc : return fmt.Sprintf("", _Punctuation(self.u64)) + case _T_name : return fmt.Sprintf("", strconv.QuoteToASCII(self.str)) + case _T_space : return "" + default : return fmt.Sprintf("", self.tag, self.u64, strconv.QuoteToASCII(self.str)) + } +} + +func tokenEnd(p int, end int) _Token { + return _Token { + pos: p, + end: end, + tag: _T_end, + } +} + +func tokenInt(p int, val uint64) _Token { + return _Token { + pos: p, + u64: val, + tag: _T_int, + } +} + +func tokenName(p int, name string) _Token { + return _Token { + pos: p, + str: name, + tag: _T_name, + } +} + +func tokenPunc(p int, punc _Punctuation) _Token { + return _Token { + pos: p, + tag: _T_punc, + u64: uint64(punc), + } +} + +func tokenSpace(p int, end int) _Token { + return _Token { + pos: p, + end: end, + tag: _T_space, + } +} + +// SyntaxError represents an error in the assembly syntax. +type SyntaxError struct { + Pos int + Row int + Src []rune + Reason string +} + +// Error implements the error interface. +func (self *SyntaxError) Error() string { + if self.Pos < 0 { + return fmt.Sprintf("%s at line %d", self.Reason, self.Row) + } else { + return fmt.Sprintf("%s at %d:%d", self.Reason, self.Row, self.Pos + 1) + } +} + +type _Tokenizer struct { + pos int + row int + src []rune +} + +func (self *_Tokenizer) ch() rune { + return self.src[self.pos] +} + +func (self *_Tokenizer) eof() bool { + return self.pos >= len(self.src) +} + +func (self *_Tokenizer) rch() (ret rune) { + ret, self.pos = self.src[self.pos], self.pos + 1 + return +} + +func (self *_Tokenizer) err(pos int, msg string) *SyntaxError { + return &SyntaxError { + Pos : pos, + Row : self.row, + Src : self.src, + Reason : msg, + } +} + +type _TrimState int + +const ( + _TS_normal _TrimState = iota + _TS_slcomm + _TS_hscomm + _TS_string + _TS_escape + _TS_accept + _TS_nolast +) + +func (self *_Tokenizer) init(src string) { + var i int + var ch rune + var st _TrimState + + /* set the source */ + self.pos = 0 + self.src = []rune(src) + + /* remove commends, including "//" and "##" */ + loop: for i, ch = range self.src { + switch { + case st == _TS_normal && ch == '/' : st = _TS_slcomm + case st == _TS_normal && ch == '"' : st = _TS_string + case st == _TS_normal && ch == ';' : st = _TS_accept; break loop + case st == _TS_normal && ch == '#' : st = _TS_hscomm + case st == _TS_slcomm && ch == '/' : st = _TS_nolast; break loop + case st == _TS_slcomm : st = _TS_normal + case st == _TS_hscomm && ch == '#' : st = _TS_nolast; break loop + case st == _TS_hscomm : st = _TS_normal + case st == _TS_string && ch == '"' : st = _TS_normal + case st == _TS_string && ch == '\\' : st = _TS_escape + case st == _TS_escape : st = _TS_string + } + } + + /* check for errors */ + switch st { + case _TS_accept: self.src = self.src[:i] + case _TS_nolast: self.src = self.src[:i - 1] + case _TS_string: panic(self.err(i, "string is not terminated")) + case _TS_escape: panic(self.err(i, "escape sequence is not terminated")) + } +} + +func (self *_Tokenizer) skip(check func(v rune) bool) { + for !self.eof() && check(self.ch()) { + self.pos++ + } +} + +func (self *_Tokenizer) find(pos int, check func(v rune) bool) string { + self.skip(check) + return string(self.src[pos:self.pos]) +} + +func (self *_Tokenizer) chrv(p int) _Token { + var err error + var val uint64 + + /* starting and ending position */ + p0 := p + 1 + p1 := p0 + 1 + + /* find the end of the literal */ + for p1 < len(self.src) && self.src[p1] != '\'' { + if p1++; self.src[p1 - 1] == '\\' { + p1++ + } + } + + /* empty literal */ + if p1 == p0 { + panic(self.err(p1, "empty character constant")) + } + + /* check for EOF */ + if p1 == len(self.src) { + panic(self.err(p1, "unexpected EOF when scanning literals")) + } + + /* parse the literal */ + if val, err = literal64(string(self.src[p0:p1])); err != nil { + panic(self.err(p0, "cannot parse literal: " + err.Error())) + } + + /* skip the closing '\'' */ + self.pos = p1 + 1 + return tokenInt(p, val) +} + +func (self *_Tokenizer) numv(p int) _Token { + if val, err := strconv.ParseUint(self.find(p, isnumber), 0, 64); err != nil { + panic(self.err(p, "invalid immediate value: " + err.Error())) + } else { + return tokenInt(p, val) + } +} + +func (self *_Tokenizer) defv(p int, cc rune) _Token { + if isdigit(cc) { + return self.numv(p) + } else if isident0(cc) { + return tokenName(p, self.find(p, isident)) + } else { + panic(self.err(p, "invalid char: " + strconv.QuoteRune(cc))) + } +} + +func (self *_Tokenizer) rep2(p int, pp _Punctuation, cc rune) _Token { + if self.eof() { + panic(self.err(self.pos, "unexpected EOF when scanning operators")) + } else if c := self.rch(); c != cc { + panic(self.err(p + 1, strconv.QuoteRune(cc) + " expected, got " + strconv.QuoteRune(c))) + } else { + return tokenPunc(p, pp) + } +} + +func (self *_Tokenizer) read() _Token { + var p int + var c rune + var t _Token + + /* check for EOF */ + if self.eof() { + return tokenEnd(self.pos, self.pos) + } + + /* skip spaces as needed */ + if p = self.pos; unicode.IsSpace(self.src[p]) { + self.skip(unicode.IsSpace) + return tokenSpace(p, self.pos) + } + + /* check for line comments */ + if p = self.pos; p < len(self.src) - 1 && self.src[p] == '/' && self.src[p + 1] == '/' { + self.pos = len(self.src) + return tokenEnd(p, self.pos) + } + + /* read the next character */ + p = self.pos + c = self.rch() + + /* parse the next character */ + switch c { + case '+' : t = tokenPunc(p, _P_plus) + case '-' : t = tokenPunc(p, _P_minus) + case '*' : t = tokenPunc(p, _P_star) + case '/' : t = tokenPunc(p, _P_slash) + case '%' : t = tokenPunc(p, _P_percent) + case '&' : t = tokenPunc(p, _P_amp) + case '|' : t = tokenPunc(p, _P_bar) + case '^' : t = tokenPunc(p, _P_caret) + case '<' : t = self.rep2(p, _P_shl, '<') + case '>' : t = self.rep2(p, _P_shr, '>') + case '~' : t = tokenPunc(p, _P_tilde) + case '(' : t = tokenPunc(p, _P_lbrk) + case ')' : t = tokenPunc(p, _P_rbrk) + case '.' : t = tokenPunc(p, _P_dot) + case ',' : t = tokenPunc(p, _P_comma) + case ':' : t = tokenPunc(p, _P_colon) + case '$' : t = tokenPunc(p, _P_dollar) + case '#' : t = tokenPunc(p, _P_hash) + case '\'' : t = self.chrv(p) + default : t = self.defv(p, c) + } + + /* mark the end of token */ + t.end = self.pos + return t +} + +func (self *_Tokenizer) next() (tk _Token) { + for { + if tk = self.read(); tk.tag != _T_space { + return + } + } +} + +// LabelKind indicates the type of label reference. +type LabelKind int + +// OperandKind indicates the type of the operand. +type OperandKind int + +// InstructionPrefix indicates the prefix bytes prepended to the instruction. +type InstructionPrefix byte + +const ( + // OpImm means the operand is an immediate value. + OpImm OperandKind = 1 << iota + + // OpReg means the operand is a register. + OpReg + + // OpMem means the operand is a memory address. + OpMem + + // OpLabel means the operand is a label, specifically for + // branch instructions. + OpLabel +) + +const ( + // Declaration means the label is a declaration. + Declaration LabelKind = iota + 1 + + // BranchTarget means the label should be treated as a branch target. + BranchTarget + + // RelativeAddress means the label should be treated as a reference to + // the code section (e.g. RIP-relative addressing). + RelativeAddress +) + +const ( + // PrefixLock causes the processor's LOCK# signal to be asserted during execution of + // the accompanying instruction (turns the instruction into an atomic instruction). + // In a multiprocessor environment, the LOCK# signal insures that the processor + // has exclusive use of any shared memory while the signal is asserted. + PrefixLock InstructionPrefix = iota + + // PrefixSegmentCS overrides the memory operation of this instruction to CS (Code Segment). + PrefixSegmentCS + + // PrefixSegmentDS overrides the memory operation of this instruction to DS (Data Segment), + // this is the default section for most instructions if not specified. + PrefixSegmentDS + + // PrefixSegmentES overrides the memory operation of this instruction to ES (Extra Segment). + PrefixSegmentES + + // PrefixSegmentFS overrides the memory operation of this instruction to FS. + PrefixSegmentFS + + // PrefixSegmentGS overrides the memory operation of this instruction to GS. + PrefixSegmentGS + + // PrefixSegmentSS overrides the memory operation of this instruction to SS (Stack Segment). + PrefixSegmentSS +) + +// ParsedLabel represents a label in the source, either a jump target or +// an RIP-relative addressing. +type ParsedLabel struct { + Name string + Kind LabelKind +} + +// ParsedOperand represents an operand of an instruction in the source. +type ParsedOperand struct { + Op OperandKind + Imm int64 + Reg Register + Label ParsedLabel + Memory MemoryAddress +} + +// ParsedInstruction represents an instruction in the source. +type ParsedInstruction struct { + Mnemonic string + Operands []ParsedOperand + Prefixes []InstructionPrefix +} + +func (self *ParsedInstruction) imm(v int64) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpImm, + Imm : v, + }) +} + +func (self *ParsedInstruction) reg(v Register) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpReg, + Reg : v, + }) +} + +func (self *ParsedInstruction) mem(v MemoryAddress) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpMem, + Memory : v, + }) +} + +func (self *ParsedInstruction) target(v string) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpLabel, + Label : ParsedLabel { + Name: v, + Kind: BranchTarget, + }, + }) +} + +func (self *ParsedInstruction) reference(v string) { + self.Operands = append(self.Operands, ParsedOperand { + Op : OpLabel, + Label : ParsedLabel { + Name: v, + Kind: RelativeAddress, + }, + }) +} + +// LineKind indicates the type of ParsedLine. +type LineKind int + +const ( + // LineLabel means the ParsedLine is a label. + LineLabel LineKind = iota + 1 + + // LineInstr means the ParsedLine is an instruction. + LineInstr + + // LineCommand means the ParsedLine is a ParsedCommand. + LineCommand +) + +// ParsedLine represents a parsed source line. +type ParsedLine struct { + Row int + Src []rune + Kind LineKind + Label ParsedLabel + Command ParsedCommand + Instruction ParsedInstruction +} + +// ParsedCommand represents a parsed assembly directive command. +type ParsedCommand struct { + Cmd string + Args []ParsedCommandArg +} + +// ParsedCommandArg represents an argument of a ParsedCommand. +type ParsedCommandArg struct { + Value string + IsString bool +} + +// Parser parses the source, and generates a sequence of ParsedInstruction's. +type Parser struct { + lex _Tokenizer + exp expr.Parser +} + +const ( + rip Register64 = 0xff +) + +var _RegBranch = map[string]bool { + "jmp" : true, + "jmpq" : true, + "call" : true, + "callq" : true, +} + +var _SegPrefix = map[string]InstructionPrefix { + "cs": PrefixSegmentCS, + "ds": PrefixSegmentDS, + "es": PrefixSegmentES, + "fs": PrefixSegmentFS, + "gs": PrefixSegmentGS, + "ss": PrefixSegmentSS, +} + +func (self *Parser) i32(tk _Token, v int64) int32 { + if v >= math.MinInt32 && v <= math.MaxUint32 { + return int32(v) + } else { + panic(self.err(tk.pos, fmt.Sprintf("32-bit integer out ouf range: %d", v))) + } +} + +func (self *Parser) err(pos int, msg string) *SyntaxError { + return &SyntaxError { + Pos : pos, + Row : self.lex.row, + Src : self.lex.src, + Reason : msg, + } +} + +func (self *Parser) negv() int64 { + tk := self.lex.read() + tt := tk.tag + + /* must be an integer */ + if tt != _T_int { + panic(self.err(tk.pos, "integer expected after '-'")) + } else { + return -int64(tk.u64) + } +} + +func (self *Parser) eval(p int) (r int64) { + var e error + var v *expr.Expr + + /* searching start */ + n := 1 + q := p + 1 + + /* find the end of expression */ + for n > 0 && q < len(self.lex.src) { + switch self.lex.src[q] { + case '(' : q++; n++ + case ')' : q++; n-- + default : q++ + } + } + + /* check for EOF */ + if n != 0 { + panic(self.err(q, "unexpected EOF when parsing expressions")) + } + + /* evaluate the expression */ + if v, e = self.exp.SetSource(string(self.lex.src[p:q - 1])).Parse(nil); e != nil { + panic(self.err(p, "cannot evaluate expression: " + e.Error())) + } + + /* evaluate the expression */ + if r, e = v.Evaluate(); e != nil { + panic(self.err(p, "cannot evaluate expression: " + e.Error())) + } + + /* skip the last ')' */ + v.Free() + self.lex.pos = q + return +} + +func (self *Parser) relx(tk _Token) { + if tk.tag != _T_punc || tk.punc() != _P_lbrk { + panic(self.err(tk.pos, "'(' expected for RIP-relative addressing")) + } else if tk = self.lex.next(); self.regx(tk) != rip { + panic(self.err(tk.pos, "RIP-relative addressing expects %rip as the base register")) + } else if tk = self.lex.next(); tk.tag != _T_punc || tk.punc() != _P_rbrk { + panic(self.err(tk.pos, "RIP-relative addressing does not support indexing or scaling")) + } +} + +func (self *Parser) immx(tk _Token) int64 { + if tk.tag != _T_punc || tk.punc() != _P_dollar { + panic(self.err(tk.pos, "'$' expected for registers")) + } else if tk = self.lex.read(); tk.tag == _T_int { + return int64(tk.u64) + } else if tk.tag == _T_punc && tk.punc() == _P_lbrk { + return self.eval(self.lex.pos) + } else if tk.tag == _T_punc && tk.punc() == _P_minus { + return self.negv() + } else { + panic(self.err(tk.pos, "immediate value expected")) + } +} + +func (self *Parser) regx(tk _Token) Register { + if tk.tag != _T_punc || tk.punc() != _P_percent { + panic(self.err(tk.pos, "'%' expected for registers")) + } else if tk = self.lex.read(); tk.tag != _T_name { + panic(self.err(tk.pos, "register name expected")) + } else if tk.str == "rip" { + return rip + } else if reg, ok := Registers[tk.str]; ok { + return reg + } else { + panic(self.err(tk.pos, "invalid register name: " + strconv.Quote(tk.str))) + } +} + +func (self *Parser) regv(tk _Token) Register { + if reg := self.regx(tk); reg == rip { + panic(self.err(tk.pos, "%rip is not accessable as a dedicated register")) + } else { + return reg + } +} + +func (self *Parser) disp(vv int32) MemoryAddress { + switch tk := self.lex.next(); tk.tag { + case _T_end : return MemoryAddress { Displacement: vv } + case _T_punc : return self.relm(tk, vv) + default : panic(self.err(tk.pos, "',' or '(' expected")) + } +} + +func (self *Parser) relm(tv _Token, disp int32) MemoryAddress { + var tk _Token + var tt _TokenKind + + /* check for absolute addressing */ + if tv.punc() == _P_comma { + self.lex.pos-- + return MemoryAddress { Displacement: disp } + } + + /* must be '(' now */ + if tv.punc() != _P_lbrk { + panic(self.err(tv.pos, "',' or '(' expected")) + } + + /* read the next token */ + tk = self.lex.next() + tt = tk.tag + + /* must be a punctuation */ + if tt != _T_punc { + panic(self.err(tk.pos, "'%' or ',' expected")) + } + + /* check for base */ + switch tk.punc() { + case _P_percent : return self.base(tk, disp) + case _P_comma : return self.index(nil, disp) + default : panic(self.err(tk.pos, "'%' or ',' expected")) + } +} + +func (self *Parser) base(tk _Token, disp int32) MemoryAddress { + rr := self.regx(tk) + nk := self.lex.next() + + /* check for register indirection or base-index addressing */ + if !isReg64(rr) { + panic(self.err(tk.pos, "not a valid base register")) + } else if nk.tag != _T_punc { + panic(self.err(nk.pos, "',' or ')' expected")) + } else if nk.punc() == _P_comma { + return self.index(rr, disp) + } else if nk.punc() == _P_rbrk { + return MemoryAddress { Base: rr, Displacement: disp } + } else { + panic(self.err(nk.pos, "',' or ')' expected")) + } +} + +func (self *Parser) index(base Register, disp int32) MemoryAddress { + tk := self.lex.next() + rr := self.regx(tk) + nk := self.lex.next() + + /* check for scaled indexing */ + if base == rip { + panic(self.err(tk.pos, "RIP-relative addressing does not support indexing or scaling")) + } else if !isIndexable(rr) { + panic(self.err(tk.pos, "not a valid index register")) + } else if nk.tag != _T_punc { + panic(self.err(nk.pos, "',' or ')' expected")) + } else if nk.punc() == _P_comma { + return self.scale(base, rr, disp) + } else if nk.punc() == _P_rbrk { + return MemoryAddress { Base: base, Index: rr, Scale: 1, Displacement: disp } + } else { + panic(self.err(nk.pos, "',' or ')' expected")) + } +} + +func (self *Parser) scale(base Register, index Register, disp int32) MemoryAddress { + tk := self.lex.next() + tt := tk.tag + tv := tk.u64 + + /* must be an integer */ + if tt != _T_int { + panic(self.err(tk.pos, "integer expected")) + } + + /* scale can only be 1, 2, 4 or 8 */ + if tv == 0 || (_Scales & (1 << tv)) == 0 { + panic(self.err(tk.pos, "scale can only be 1, 2, 4 or 8")) + } + + /* read next token */ + tk = self.lex.next() + tt = tk.tag + + /* check for the closing ')' */ + if tt != _T_punc || tk.punc() != _P_rbrk { + panic(self.err(tk.pos, "')' expected")) + } + + /* construct the memory address */ + return MemoryAddress { + Base : base, + Index : index, + Scale : uint8(tv), + Displacement : disp, + } +} + +func (self *Parser) cmds() *ParsedLine { + cmd := "" + pos := self.lex.pos + buf := []ParsedCommandArg(nil) + + /* find the end of command */ + for p := pos; pos < len(self.lex.src); pos++ { + if unicode.IsSpace(self.lex.src[pos]) { + cmd = string(self.lex.src[p:pos]) + break + } + } + + /* parse the arguments */ + loop: for { + switch self.next(&pos) { + case 0 : break loop + case '#' : break loop + case '"' : pos = self.strings(&buf, pos) + default : pos = self.expressions(&buf, pos) + } + } + + /* construct the line */ + return &ParsedLine { + Row : self.lex.row, + Src : self.lex.src, + Kind : LineCommand, + Command : ParsedCommand { + Cmd : cmd, + Args : buf, + }, + } +} + +func (self *Parser) feed(line string) *ParsedLine { + ff := true + rr := false + lk := false + + /* reset the lexer */ + self.lex.row++ + self.lex.init(line) + + /* parse the first token */ + tk := self.lex.next() + tt := tk.tag + + /* it is a directive if it starts with a dot */ + if tk.tag == _T_punc && tk.punc() == _P_dot { + return self.cmds() + } + + /* otherwise it could be labels or instructions */ + if tt != _T_name { + panic(self.err(tk.pos, "identifier expected")) + } + + /* peek the next token */ + lex := self.lex + tkx := lex.next() + + /* check for labels */ + if tkx.tag == _T_punc && tkx.punc() == _P_colon { + tkx = lex.next() + ttx := tkx.tag + + /* the line must end here */ + if ttx != _T_end { + panic(self.err(tkx.pos, "garbage after label definition")) + } + + /* construct the label */ + return &ParsedLine { + Row : self.lex.row, + Src : self.lex.src, + Kind : LineLabel, + Label : ParsedLabel { + Kind: Declaration, + Name: tk.str, + }, + } + } + + /* special case for the "lock" prefix */ + if tk.tag == _T_name && strings.ToLower(tk.str) == "lock" { + lk = true + tk = self.lex.next() + + /* must be an instruction */ + if tk.tag != _T_name { + panic(self.err(tk.pos, "identifier expected")) + } + } + + /* set the line kind and mnemonic */ + ret := &ParsedLine { + Row : self.lex.row, + Src : self.lex.src, + Kind : LineInstr, + Instruction : ParsedInstruction { Mnemonic: strings.ToLower(tk.str) }, + } + + /* check for LOCK prefix */ + if lk { + ret.Instruction.Prefixes = append(ret.Instruction.Prefixes, PrefixLock) + } + + /* parse all the operands */ + for { + tk = self.lex.next() + tt = tk.tag + + /* check for end of line */ + if tt == _T_end { + break + } + + /* expect a comma if not the first operand */ + if !ff { + if tt == _T_punc && tk.punc() == _P_comma { + tk = self.lex.next() + } else { + panic(self.err(tk.pos, "',' expected")) + } + } + + /* not the first operand anymore */ + ff = false + tt = tk.tag + + /* encountered an integer, must be a SIB memory address */ + if tt == _T_int { + ret.Instruction.mem(self.disp(self.i32(tk, int64(tk.u64)))) + continue + } + + /* encountered an identifier, maybe an expression or a jump target, or a segment override prefix */ + if tt == _T_name { + ts := tk.str + tp := self.lex.pos + + /* if the next token is EOF or a comma, it's a jumpt target */ + if tk = self.lex.next(); tk.tag == _T_end || (tk.tag == _T_punc && tk.punc() == _P_comma) { + self.lex.pos = tp + ret.Instruction.target(ts) + continue + } + + /* if it is a colon, it's a segment override prefix, otherwise it must be an RIP-relative addressing operand */ + if tk.tag != _T_punc || tk.punc() != _P_colon { + self.relx(tk) + ret.Instruction.reference(ts) + continue + } + + /* lookup segment prefixes */ + if p, ok := _SegPrefix[strings.ToLower(ts)]; !ok { + panic(self.err(tk.pos, "invalid segment name")) + } else { + ret.Instruction.Prefixes = append(ret.Instruction.Prefixes, p) + } + + /* read the next token */ + tk = self.lex.next() + tt = tk.tag + + /* encountered an integer, must be a SIB memory address */ + if tt == _T_int { + ret.Instruction.mem(self.disp(self.i32(tk, int64(tk.u64)))) + continue + } + } + + /* certain instructions may have a "*" before operands */ + if tt == _T_punc && tk.punc() == _P_star { + tk = self.lex.next() + tt = tk.tag + rr = true + } + + /* ... otherwise it must be a punctuation */ + if tt != _T_punc { + panic(self.err(tk.pos, "'$', '%', '-' or '(' expected")) + } + + /* check the operator */ + switch tk.punc() { + case _P_lbrk : break + case _P_minus : ret.Instruction.mem(self.disp(self.i32(tk, self.negv()))) ; continue + case _P_dollar : ret.Instruction.imm(self.immx(tk)) ; continue + case _P_percent : ret.Instruction.reg(self.regv(tk)) ; continue + default : panic(self.err(tk.pos, "'$', '%', '-' or '(' expected")) + } + + /* special case of '(', might be either `(expr)(SIB)` or just `(SIB)` + * read one more token to confirm */ + tk = self.lex.next() + tt = tk.tag + + /* the next token is '%', it's a memory address, + * or ',' if it's a memory address without base, + * otherwise it must be in `(expr)(SIB)` form */ + if tk.tag == _T_punc && tk.punc() == _P_percent { + ret.Instruction.mem(self.base(tk, 0)) + } else if tk.tag == _T_punc && tk.punc() == _P_comma { + ret.Instruction.mem(self.index(nil, 0)) + } else { + ret.Instruction.mem(self.disp(self.i32(tk, self.eval(tk.pos)))) + } + } + + /* check "jmp" and "call" instructions */ + if !_RegBranch[ret.Instruction.Mnemonic] { + return ret + } else if len(ret.Instruction.Operands) != 1 { + panic(self.err(tk.pos, fmt.Sprintf(`"%s" requires exact 1 argument`, ret.Instruction.Mnemonic))) + } else if !rr && ret.Instruction.Operands[0].Op != OpReg && ret.Instruction.Operands[0].Op != OpLabel { + panic(self.err(tk.pos, fmt.Sprintf(`invalid operand for "%s" instruction`, ret.Instruction.Mnemonic))) + } else { + return ret + } +} + +func (self *Parser) next(p *int) rune { + for { + if *p >= len(self.lex.src) { + return 0 + } else if cc := self.lex.src[*p]; !unicode.IsSpace(cc) { + return cc + } else { + *p++ + } + } +} + +func (self *Parser) delim(p int) int { + if cc := self.next(&p); cc == 0 { + return p + } else if cc == ',' { + return p + 1 + } else { + panic(self.err(p, "',' expected")) + } +} + +func (self *Parser) strings(argv *[]ParsedCommandArg, p int) int { + var i int + var e error + var v string + + /* find the end of string */ + for i = p + 1; i < len(self.lex.src) && self.lex.src[i] != '"'; i++ { + if self.lex.src[i] == '\\' { + i++ + } + } + + /* check for EOF */ + if i == len(self.lex.src) { + panic(self.err(i, "unexpected EOF when scanning strings")) + } + + /* unquote the string */ + if v, e = strconv.Unquote(string(self.lex.src[p:i + 1])); e != nil { + panic(self.err(p, "invalid string: " + e.Error())) + } + + /* add the argument to buffer */ + *argv = append(*argv, ParsedCommandArg { Value: v, IsString: true }) + return self.delim(i + 1) +} + +func (self *Parser) directives(line string) { + self.lex.row++ + self.lex.init(line) + + /* parse the first token */ + tk := self.lex.next() + tt := tk.tag + + /* check for EOF */ + if tt == _T_end { + return + } + + /* must be a directive */ + if tt != _T_punc || tk.punc() != _P_hash { + panic(self.err(tk.pos, "'#' expected")) + } + + /* parse the line number */ + tk = self.lex.next() + tt = tk.tag + + /* must be a line number, if it is, set the row number, and ignore the rest of the line */ + if tt != _T_int { + panic(self.err(tk.pos, "line number expected")) + } else { + self.lex.row = int(tk.u64) - 1 + } +} + +func (self *Parser) expressions(argv *[]ParsedCommandArg, p int) int { + var i int + var n int + var s int + + /* scan until the first standalone ',' or EOF */ + loop: for i = p; i < len(self.lex.src); i++ { + switch self.lex.src[i] { + case ',' : if s == 0 { if n == 0 { break loop } } + case ']', '}', '>' : if s == 0 { if n == 0 { break loop } else { n-- } } + case '[', '{', '<' : if s == 0 { n++ } + case '\\' : if s != 0 { i++ } + case '\'' : if s != 2 { s ^= 1 } + case '"' : if s != 1 { s ^= 2 } + } + } + + /* check for EOF in strings */ + if s != 0 { + panic(self.err(i, "unexpected EOF when scanning strings")) + } + + /* check for bracket matching */ + if n != 0 { + panic(self.err(i, "unbalanced '{' or '[' or '<'")) + } + + /* add the argument to buffer */ + *argv = append(*argv, ParsedCommandArg { Value: string(self.lex.src[p:i]) }) + return self.delim(i) +} + +// Feed feeds the parser with one more line, and the parser +// parses it into a ParsedLine. +// +// NOTE: Feed does not handle empty lines or multiple lines, +// it panics when this happens. Use Parse to parse multiple +// lines of assembly source. +// +func (self *Parser) Feed(src string) (ret *ParsedLine, err error) { + var ok bool + var ss string + var vv interface{} + + /* check for multiple lines */ + if strings.ContainsRune(src, '\n') { + return nil, errors.New("passing multiple lines to Feed()") + } + + /* check for blank lines */ + if ss = strings.TrimSpace(src); ss == "" || ss[0] == '#' || strings.HasPrefix(ss, "//") { + return nil, errors.New("blank line or line with only comments or line-marks") + } + + /* setup error handler */ + defer func() { + if vv = recover(); vv != nil { + if err, ok = vv.(*SyntaxError); !ok { + panic(vv) + } + } + }() + + /* call the actual parser */ + ret = self.feed(src) + return +} + +// Parse parses the entire assembly source (possibly multiple lines) into +// a sequence of *ParsedLine. +func (self *Parser) Parse(src string) (ret []*ParsedLine, err error) { + var ok bool + var ss string + var vv interface{} + + /* setup error handler */ + defer func() { + if vv = recover(); vv != nil { + if err, ok = vv.(*SyntaxError); !ok { + panic(vv) + } + } + }() + + /* feed every line */ + for _, line := range strings.Split(src, "\n") { + if ss = strings.TrimSpace(line); ss == "" || strings.HasPrefix(ss, "//") { + self.lex.row++ + } else if ss[0] == '#' { + self.directives(line) + } else { + ret = append(ret, self.feed(line)) + } + } + + /* all done */ + err = nil + return +} + +// Directive handles the directive. +func (self *Parser) Directive(line string) (err error) { + var ok bool + var ss string + var vv interface{} + + /* check for directives */ + if ss = strings.TrimSpace(line); ss == "" || ss[0] != '#' { + return errors.New("not a directive") + } + + /* setup error handler */ + defer func() { + if vv = recover(); vv != nil { + if err, ok = vv.(*SyntaxError); !ok { + panic(vv) + } + } + }() + + /* call the directive parser */ + self.directives(line) + return +} + +type _TermRepo struct { + terms map[string]expr.Term +} + +func (self *_TermRepo) Get(name string) (expr.Term, error) { + if ret, ok := self.terms[name]; ok { + return ret, nil + } else { + return nil, errors.New("undefined name: " + name) + } +} + +func (self *_TermRepo) label(name string) (*Label, error) { + var ok bool + var lb *Label + var tr expr.Term + + /* check for existing terms */ + if tr, ok = self.terms[name]; ok { + if lb, ok = tr.(*Label); ok { + return lb, nil + } else { + return nil, errors.New("name is not a label: " + name) + } + } + + /* create a new one as needed */ + lb = new(Label) + lb.Name = name + + /* create the map if needed */ + if self.terms == nil { + self.terms = make(map[string]expr.Term, 1) + } + + /* register the label */ + self.terms[name] = lb + return lb, nil +} + +func (self *_TermRepo) define(name string, term expr.Term) { + var ok bool + var tr expr.Term + + /* create the map if needed */ + if self.terms == nil { + self.terms = make(map[string]expr.Term, 1) + } + + /* check for existing terms */ + if tr, ok = self.terms[name]; !ok { + self.terms[name] = term + } else if _, ok = tr.(*Label); !ok { + self.terms[name] = term + } else { + panic("conflicting term types: " + name) + } +} + +// _Command describes an assembler command. +// +// The _Command.args describes both the arity and argument type with characters, +// the length is the number of arguments, the character itself represents the +// argument type. +// +// Possible values are: +// +// s This argument should be a string +// e This argument should be an expression +// ? The next argument is optional, and must be the last argument. +// +type _Command struct { + args string + handler func(*Assembler, *Program, []ParsedCommandArg) error +} + +// Options controls the behavior of Assembler. +type Options struct { + // InstructionAliasing specifies whether to enable instruction aliasing. + // Set to true enables instruction aliasing, and the Assembler will try harder to find instructions. + InstructionAliasing bool + + // IgnoreUnknownDirectives specifies whether to report errors when encountered unknown directives. + // Set to true ignores all unknwon directives silently, useful for parsing generated assembly. + IgnoreUnknownDirectives bool +} + +// Assembler assembles the entire assembly program and generates the corresponding +// machine code representations. +type Assembler struct { + cc int + ps Parser + pc uintptr + buf []byte + main string + opts Options + repo _TermRepo + expr expr.Parser + line *ParsedLine +} + +var asmCommands = map[string]_Command { + "org" : { "e" , (*Assembler).assembleCommandOrg }, + "set" : { "ee" , (*Assembler).assembleCommandSet }, + "byte" : { "e" , (*Assembler).assembleCommandByte }, + "word" : { "e" , (*Assembler).assembleCommandWord }, + "long" : { "e" , (*Assembler).assembleCommandLong }, + "quad" : { "e" , (*Assembler).assembleCommandQuad }, + "fill" : { "e?e" , (*Assembler).assembleCommandFill }, + "space" : { "e?e" , (*Assembler).assembleCommandFill }, + "align" : { "e?e" , (*Assembler).assembleCommandAlign }, + "entry" : { "e" , (*Assembler).assembleCommandEntry }, + "ascii" : { "s" , (*Assembler).assembleCommandAscii }, + "asciz" : { "s" , (*Assembler).assembleCommandAsciz }, + "p2align" : { "e?e" , (*Assembler).assembleCommandP2Align }, +} + +func (self *Assembler) err(msg string) *SyntaxError { + return &SyntaxError { + Pos : -1, + Row : self.line.Row, + Src : self.line.Src, + Reason : msg, + } +} + +func (self *Assembler) eval(expr string) (int64, error) { + if exp, err := self.expr.SetSource(expr).Parse(nil); err != nil { + return 0, err + } else { + return exp.Evaluate() + } +} + +func (self *Assembler) checkArgs(i int, n int, v *ParsedCommand, isString bool) error { + if i >= len(v.Args) { + return self.err(fmt.Sprintf("command %s takes exact %d arguments", strconv.Quote(v.Cmd), n)) + } else if isString && !v.Args[i].IsString { + return self.err(fmt.Sprintf("argument %d of command %s must be a string", i + 1, strconv.Quote(v.Cmd))) + } else if !isString && v.Args[i].IsString { + return self.err(fmt.Sprintf("argument %d of command %s must be an expression", i + 1, strconv.Quote(v.Cmd))) + } else { + return nil + } +} + +func (self *Assembler) assembleLabel(p *Program, lb *ParsedLabel) error { + if v, err := self.repo.label(lb.Name); err != nil { + return err + } else { + p.Link(v) + return nil + } +} + +func (self *Assembler) assembleInstr(p *Program, line *ParsedInstruction) (err error) { + var ok bool + var pfx []byte + var ops []interface{} + var enc _InstructionEncoder + + /* convert to lower-case */ + opts := self.opts + name := strings.ToLower(line.Mnemonic) + + /* fix register-addressing branches if needed */ + if opts.InstructionAliasing && len(line.Operands) == 1 { + switch { + case name == "retq" : name = "ret" + case name == "movabsq" : name = "movq" + case name == "jmp" && line.Operands[0].Op != OpLabel : name = "jmpq" + case name == "jmpq" && line.Operands[0].Op == OpLabel : name = "jmp" + case name == "call" && line.Operands[0].Op != OpLabel : name = "callq" + case name == "callq" && line.Operands[0].Op == OpLabel : name = "call" + } + } + + /* lookup from the alias table if needed */ + if opts.InstructionAliasing { + enc, ok = _InstructionAliases[name] + } + + /* lookup from the instruction table */ + if !ok { + enc, ok = Instructions[name] + } + + /* remove size suffix if possible */ + if !ok && opts.InstructionAliasing { + switch i := len(name) - 1; name[i] { + case 'b', 'w', 'l', 'q': { + enc, ok = Instructions[name[:i]] + } + } + } + + /* check for instruction name */ + if !ok { + return self.err("no such instruction: " + strconv.Quote(name)) + } + + /* allocate memory for prefix if any */ + if len(line.Prefixes) != 0 { + pfx = make([]byte, len(line.Prefixes)) + } + + /* convert the prefixes */ + for i, v := range line.Prefixes { + switch v { + case PrefixLock : pfx[i] = _P_lock + case PrefixSegmentCS : pfx[i] = _P_cs + case PrefixSegmentDS : pfx[i] = _P_ds + case PrefixSegmentES : pfx[i] = _P_es + case PrefixSegmentFS : pfx[i] = _P_fs + case PrefixSegmentGS : pfx[i] = _P_gs + case PrefixSegmentSS : pfx[i] = _P_ss + default : panic("unreachable: invalid segment prefix") + } + } + + /* convert the operands */ + for _, op := range line.Operands { + switch op.Op { + case OpImm : ops = append(ops, op.Imm) + case OpReg : ops = append(ops, op.Reg) + case OpMem : self.assembleInstrMem(&ops, op.Memory) + case OpLabel : self.assembleInstrLabel(&ops, op.Label) + default : panic("parser yields an invalid operand kind") + } + } + + /* catch any exceptions in the encoder */ + defer func() { + if v := recover(); v != nil { + err = self.err(fmt.Sprint(v)) + } + }() + + /* encode the instruction */ + enc(p, ops...).prefix = pfx + return nil +} + +func (self *Assembler) assembleInstrMem(ops *[]interface{}, addr MemoryAddress) { + mem := new(MemoryOperand) + *ops = append(*ops, mem) + + /* check for RIP-relative addressing */ + if addr.Base != rip { + mem.Addr.Type = Memory + mem.Addr.Memory = addr + } else { + mem.Addr.Type = Offset + mem.Addr.Offset = RelativeOffset(addr.Displacement) + } +} + +func (self *Assembler) assembleInstrLabel(ops *[]interface{}, label ParsedLabel) { + vk := label.Kind + tr, err := self.repo.label(label.Name) + + /* check for errors */ + if err != nil { + panic(err) + } + + /* check for branch target */ + if vk == BranchTarget { + *ops = append(*ops, tr) + return + } + + /* add to ops */ + *ops = append(*ops, &MemoryOperand { + Addr: Addressable { + Type : Reference, + Reference : tr, + }, + }) +} + +func (self *Assembler) assembleCommand(p *Program, line *ParsedCommand) error { + var iv int + var cc rune + var ok bool + var va bool + var fn _Command + + /* find the command */ + if fn, ok = asmCommands[line.Cmd]; !ok { + if self.opts.IgnoreUnknownDirectives { + return nil + } else { + return self.err("no such command: " + strconv.Quote(line.Cmd)) + } + } + + /* expected & real argument count */ + argx := len(fn.args) + argc := len(line.Args) + + /* check the arguments */ + loop: for iv, cc = range fn.args { + switch cc { + case '?' : va = true; break loop + case 's' : if err := self.checkArgs(iv, argx, line, true) ; err != nil { return err } + case 'e' : if err := self.checkArgs(iv, argx, line, false) ; err != nil { return err } + default : panic("invalid argument descriptor: " + strconv.Quote(fn.args)) + } + } + + /* simple case: non-variadic command */ + if !va { + if argc == argx { + return fn.handler(self, p, line.Args) + } else { + return self.err(fmt.Sprintf("command %s takes exact %d arguments", strconv.Quote(line.Cmd), argx)) + } + } + + /* check for the descriptor */ + if iv != argx - 2 { + panic("invalid argument descriptor: " + strconv.Quote(fn.args)) + } + + /* variadic command and the final optional argument is set */ + if argc == argx - 1 { + switch fn.args[argx - 1] { + case 's' : if err := self.checkArgs(iv, -1, line, true) ; err != nil { return err } + case 'e' : if err := self.checkArgs(iv, -1, line, false) ; err != nil { return err } + default : panic("invalid argument descriptor: " + strconv.Quote(fn.args)) + } + } + + /* check argument count */ + if argc == argx - 1 || argc == argx - 2 { + return fn.handler(self, p, line.Args) + } else { + return self.err(fmt.Sprintf("command %s takes %d or %d arguments", strconv.Quote(line.Cmd), argx - 2, argx - 1)) + } +} + +func (self *Assembler) assembleCommandInt(p *Program, argv []ParsedCommandArg, addfn func(*Program, *expr.Expr) *Instruction) error { + var err error + var val *expr.Expr + + /* parse the expression */ + if val, err = self.expr.SetSource(argv[0].Value).Parse(&self.repo); err != nil { + return err + } + + /* add to the program */ + addfn(p, val) + return nil +} + +func (self *Assembler) assembleCommandOrg(_ *Program, argv []ParsedCommandArg) error { + var err error + var val int64 + + /* evaluate the expression */ + if val, err = self.eval(argv[0].Value); err != nil { + return err + } + + /* check for origin */ + if val < 0 { + return self.err(fmt.Sprintf("negative origin: %d", val)) + } + + /* ".org" must be the first command if any */ + if self.cc != 1 { + return self.err(".org must be the first command if present") + } + + /* set the initial program counter */ + self.pc = uintptr(val) + return nil +} + +func (self *Assembler) assembleCommandSet(_ *Program, argv []ParsedCommandArg) error { + var err error + var val *expr.Expr + + /* parse the expression */ + if val, err = self.expr.SetSource(argv[1].Value).Parse(&self.repo); err != nil { + return err + } + + /* define the new identifier */ + self.repo.define(argv[0].Value, val) + return nil +} + +func (self *Assembler) assembleCommandByte(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Byte) +} + +func (self *Assembler) assembleCommandWord(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Word) +} + +func (self *Assembler) assembleCommandLong(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Long) +} + +func (self *Assembler) assembleCommandQuad(p *Program, argv []ParsedCommandArg) error { + return self.assembleCommandInt(p, argv, (*Program).Quad) +} + +func (self *Assembler) assembleCommandFill(p *Program, argv []ParsedCommandArg) error { + var fv byte + var nb int64 + var ex error + + /* evaluate the size */ + if nb, ex = self.eval(argv[0].Value); ex != nil { + return ex + } + + /* check for filling size */ + if nb < 0 { + return self.err(fmt.Sprintf("negative filling size: %d", nb)) + } + + /* check for optional filling value */ + if len(argv) == 2 { + if val, err := self.eval(argv[1].Value); err != nil { + return err + } else if val < math.MinInt8 || val > math.MaxUint8 { + return self.err(fmt.Sprintf("value %d cannot be represented with a byte", val)) + } else { + fv = byte(val) + } + } + + /* fill with specified byte */ + p.Data(bytes.Repeat([]byte { fv }, int(nb))) + return nil +} + +func (self *Assembler) assembleCommandAlign(p *Program, argv []ParsedCommandArg) error { + var nb int64 + var ex error + var fv *expr.Expr + + /* evaluate the size */ + if nb, ex = self.eval(argv[0].Value); ex != nil { + return ex + } + + /* check for alignment value */ + if nb <= 0 { + return self.err(fmt.Sprintf("zero or negative alignment: %d", nb)) + } + + /* alignment must be a power of 2 */ + if (nb & (nb - 1)) != 0 { + return self.err(fmt.Sprintf("alignment must be a power of 2: %d", nb)) + } + + /* check for optional filling value */ + if len(argv) == 2 { + if v, err := self.expr.SetSource(argv[1].Value).Parse(&self.repo); err == nil { + fv = v + } else { + return err + } + } + + /* fill with specified byte, default to 0 if not specified */ + p.Align(uint64(nb), fv) + return nil +} + +func (self *Assembler) assembleCommandEntry(_ *Program, argv []ParsedCommandArg) error { + name := argv[0].Value + rbuf := []rune(name) + + /* check all the characters */ + for i, cc := range rbuf { + if !isident0(cc) && (i == 0 || !isident(cc)) { + return self.err("entry point must be a label name") + } + } + + /* set the main entry point */ + self.main = name + return nil +} + +func (self *Assembler) assembleCommandAscii(p *Program, argv []ParsedCommandArg) error { + p.Data([]byte(argv[0].Value)) + return nil +} + +func (self *Assembler) assembleCommandAsciz(p *Program, argv []ParsedCommandArg) error { + p.Data(append([]byte(argv[0].Value), 0)) + return nil +} + +func (self *Assembler) assembleCommandP2Align(p *Program, argv []ParsedCommandArg) error { + var nb int64 + var ex error + var fv *expr.Expr + + /* evaluate the size */ + if nb, ex = self.eval(argv[0].Value); ex != nil { + return ex + } + + /* check for alignment value */ + if nb <= 0 { + return self.err(fmt.Sprintf("zero or negative alignment: %d", nb)) + } + + /* check for optional filling value */ + if len(argv) == 2 { + if v, err := self.expr.SetSource(argv[1].Value).Parse(&self.repo); err == nil { + fv = v + } else { + return err + } + } + + /* fill with specified byte, default to 0 if not specified */ + p.Align(1 << nb, fv) + return nil +} + +// Base returns the origin. +func (self *Assembler) Base() uintptr { + return self.pc +} + +// Code returns the assembled machine code. +func (self *Assembler) Code() []byte { + return self.buf +} + +// Entry returns the address of the specified entry point, or the origin if not specified. +func (self *Assembler) Entry() uintptr { + if self.main == "" { + return self.pc + } else if tr, err := self.repo.Get(self.main); err != nil { + panic(err) + } else if val, err := tr.Evaluate(); err != nil { + panic(err) + } else { + return uintptr(val) + } +} + +// Options returns the internal options reference, changing it WILL affect this Assembler instance. +func (self *Assembler) Options() *Options { + return &self.opts +} + +// WithBase resets the origin to pc. +func (self *Assembler) WithBase(pc uintptr) *Assembler { + self.pc = pc + return self +} + +// Assemble assembles the assembly source and save the machine code to internal buffer. +func (self *Assembler) Assemble(src string) error { + var err error + var buf []*ParsedLine + + /* parse the source */ + if buf, err = self.ps.Parse(src); err != nil { + return err + } + + /* create a new program */ + p := DefaultArch.CreateProgram() + defer p.Free() + + /* process every line */ + for _, self.line = range buf { + switch self.cc++; self.line.Kind { + case LineLabel : if err = self.assembleLabel (p, &self.line.Label) ; err != nil { return err } + case LineInstr : if err = self.assembleInstr (p, &self.line.Instruction) ; err != nil { return err } + case LineCommand : if err = self.assembleCommand (p, &self.line.Command) ; err != nil { return err } + default : panic("parser yields an invalid line kind") + } + } + + /* assemble the program */ + self.buf = p.Assemble(self.pc) + return nil +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/assembler_alias.go b/vendor/github.com/cloudwego/iasm/x86_64/assembler_alias.go new file mode 100644 index 000000000..e8f1f725c --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/assembler_alias.go @@ -0,0 +1,49 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +func alias_INT3(p *Program, vv ...interface{}) *Instruction { + if len(vv) == 0 { + return p.INT(3) + } else { + panic("instruction INT3 takes no operands") + } +} + +func alias_VCMPEQPS(p *Program, vv ...interface{}) *Instruction { + if len(vv) >= 3 { + return p.VCMPPS(0x00, vv[0], vv[1], vv[2], vv[3:]...) + } else { + panic("instruction VCMPEQPS takes 3 or 4 operands") + } +} + +func alias_VCMPTRUEPS(p *Program, vv ...interface{}) *Instruction { + if len(vv) >= 3 { + return p.VCMPPS(0x0f, vv[0], vv[1], vv[2], vv[3:]...) + } else { + panic("instruction VCMPTRUEPS takes 3 or 4 operands") + } +} + +var _InstructionAliases = map[string]_InstructionEncoder { + "int3" : alias_INT3, + "retq" : Instructions["ret"], + "movabsq" : Instructions["movq"], + "vcmpeqps" : alias_VCMPEQPS, + "vcmptrueps" : alias_VCMPTRUEPS, +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/eface.go b/vendor/github.com/cloudwego/iasm/x86_64/eface.go new file mode 100644 index 000000000..ad3967b4f --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/eface.go @@ -0,0 +1,79 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + `reflect` + `unsafe` +) + +type _GoType struct { + size uintptr + pdata uintptr + hash uint32 + flags uint8 + align uint8 + falign uint8 + kflags uint8 + traits unsafe.Pointer + gcdata *byte + str int32 + ptrx int32 +} + +const ( + _KindMask = (1 << 5) - 1 +) + +func (self *_GoType) kind() reflect.Kind { + return reflect.Kind(self.kflags & _KindMask) +} + +type _GoSlice struct { + ptr unsafe.Pointer + len int + cap int +} + +type _GoEface struct { + vt *_GoType + ptr unsafe.Pointer +} + +func (self *_GoEface) kind() reflect.Kind { + if self.vt != nil { + return self.vt.kind() + } else { + return reflect.Invalid + } +} + +func (self *_GoEface) toInt64() int64 { + if self.vt.size == 8 { + return *(*int64)(self.ptr) + } else if self.vt.size == 4 { + return int64(*(*int32)(self.ptr)) + } else if self.vt.size == 2 { + return int64(*(*int16)(self.ptr)) + } else { + return int64(*(*int8)(self.ptr)) + } +} + +func efaceOf(v interface{}) _GoEface { + return *(*_GoEface)(unsafe.Pointer(&v)) +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/encodings.go b/vendor/github.com/cloudwego/iasm/x86_64/encodings.go new file mode 100644 index 000000000..a0d96db92 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/encodings.go @@ -0,0 +1,691 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + `encoding/binary` + `math` +) + +/** Operand Encoding Helpers **/ + +func imml(v interface{}) byte { + return byte(toImmAny(v) & 0x0f) +} + +func relv(v interface{}) int64 { + switch r := v.(type) { + case *Label : return 0 + case RelativeOffset : return int64(r) + default : panic("invalid relative offset") + } +} + +func addr(v interface{}) interface{} { + switch a := v.(*MemoryOperand).Addr; a.Type { + case Memory : return a.Memory + case Offset : return a.Offset + case Reference : return a.Reference + default : panic("invalid memory operand type") + } +} + +func bcode(v interface{}) byte { + if m, ok := v.(*MemoryOperand); !ok { + panic("v is not a memory operand") + } else if m.Broadcast == 0 { + return 0 + } else { + return 1 + } +} + +func vcode(v interface{}) byte { + switch r := v.(type) { + case XMMRegister : return byte(r) + case YMMRegister : return byte(r) + case ZMMRegister : return byte(r) + case MaskedRegister : return vcode(r.Reg) + default : panic("v is not a vector register") + } +} + +func kcode(v interface{}) byte { + switch r := v.(type) { + case KRegister : return byte(r) + case XMMRegister : return 0 + case YMMRegister : return 0 + case ZMMRegister : return 0 + case RegisterMask : return byte(r.K) + case MaskedRegister : return byte(r.Mask.K) + case *MemoryOperand : return toKcodeMem(r) + default : panic("v is not a maskable operand") + } +} + +func zcode(v interface{}) byte { + switch r := v.(type) { + case KRegister : return 0 + case XMMRegister : return 0 + case YMMRegister : return 0 + case ZMMRegister : return 0 + case RegisterMask : return toZcodeRegM(r) + case MaskedRegister : return toZcodeRegM(r.Mask) + case *MemoryOperand : return toZcodeMem(r) + default : panic("v is not a maskable operand") + } +} + +func lcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r & 0x07) + case Register16 : return byte(r & 0x07) + case Register32 : return byte(r & 0x07) + case Register64 : return byte(r & 0x07) + case KRegister : return byte(r & 0x07) + case MMRegister : return byte(r & 0x07) + case XMMRegister : return byte(r & 0x07) + case YMMRegister : return byte(r & 0x07) + case ZMMRegister : return byte(r & 0x07) + case MaskedRegister : return lcode(r.Reg) + default : panic("v is not a register") + } +} + +func hcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r >> 3) & 1 + case Register16 : return byte(r >> 3) & 1 + case Register32 : return byte(r >> 3) & 1 + case Register64 : return byte(r >> 3) & 1 + case KRegister : return byte(r >> 3) & 1 + case MMRegister : return byte(r >> 3) & 1 + case XMMRegister : return byte(r >> 3) & 1 + case YMMRegister : return byte(r >> 3) & 1 + case ZMMRegister : return byte(r >> 3) & 1 + case MaskedRegister : return hcode(r.Reg) + default : panic("v is not a register") + } +} + +func ecode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r >> 4) & 1 + case Register16 : return byte(r >> 4) & 1 + case Register32 : return byte(r >> 4) & 1 + case Register64 : return byte(r >> 4) & 1 + case KRegister : return byte(r >> 4) & 1 + case MMRegister : return byte(r >> 4) & 1 + case XMMRegister : return byte(r >> 4) & 1 + case YMMRegister : return byte(r >> 4) & 1 + case ZMMRegister : return byte(r >> 4) & 1 + case MaskedRegister : return ecode(r.Reg) + default : panic("v is not a register") + } +} + +func hlcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return toHLcodeReg8(r) + case Register16 : return byte(r & 0x0f) + case Register32 : return byte(r & 0x0f) + case Register64 : return byte(r & 0x0f) + case KRegister : return byte(r & 0x0f) + case MMRegister : return byte(r & 0x0f) + case XMMRegister : return byte(r & 0x0f) + case YMMRegister : return byte(r & 0x0f) + case ZMMRegister : return byte(r & 0x0f) + case MaskedRegister : return hlcode(r.Reg) + default : panic("v is not a register") + } +} + +func ehcode(v interface{}) byte { + switch r := v.(type) { + case Register8 : return byte(r >> 3) & 0x03 + case Register16 : return byte(r >> 3) & 0x03 + case Register32 : return byte(r >> 3) & 0x03 + case Register64 : return byte(r >> 3) & 0x03 + case KRegister : return byte(r >> 3) & 0x03 + case MMRegister : return byte(r >> 3) & 0x03 + case XMMRegister : return byte(r >> 3) & 0x03 + case YMMRegister : return byte(r >> 3) & 0x03 + case ZMMRegister : return byte(r >> 3) & 0x03 + case MaskedRegister : return ehcode(r.Reg) + default : panic("v is not a register") + } +} + +func toImmAny(v interface{}) int64 { + if x, ok := asInt64(v); ok { + return x + } else { + panic("value is not an integer") + } +} + +func toHcodeOpt(v interface{}) byte { + if v == nil { + return 0 + } else { + return hcode(v) + } +} + +func toEcodeVMM(v interface{}, x byte) byte { + switch r := v.(type) { + case XMMRegister : return ecode(r) + case YMMRegister : return ecode(r) + case ZMMRegister : return ecode(r) + default : return x + } +} + +func toKcodeMem(v *MemoryOperand) byte { + if !v.Masked { + return 0 + } else { + return byte(v.Mask.K) + } +} + +func toZcodeMem(v *MemoryOperand) byte { + if !v.Masked || v.Mask.Z { + return 0 + } else { + return 1 + } +} + +func toZcodeRegM(v RegisterMask) byte { + if v.Z { + return 1 + } else { + return 0 + } +} + +func toHLcodeReg8(v Register8) byte { + switch v { + case AH: fallthrough + case BH: fallthrough + case CH: fallthrough + case DH: panic("ah/bh/ch/dh registers never use 4-bit encoding") + default: return byte(v & 0x0f) + } +} + +/** Instruction Encoding Helpers **/ + +const ( + _N_inst = 16 +) + +const ( + _F_rel1 = 1 << iota + _F_rel4 +) + +type _Encoding struct { + len int + flags int + bytes [_N_inst]byte + encoder func(m *_Encoding, v []interface{}) +} + +// buf ensures len + n <= len(bytes). +func (self *_Encoding) buf(n int) []byte { + if i := self.len; i + n > _N_inst { + panic("instruction too long") + } else { + return self.bytes[i:] + } +} + +// emit encodes a single byte. +func (self *_Encoding) emit(v byte) { + self.buf(1)[0] = v + self.len++ +} + +// imm1 encodes a single byte immediate value. +func (self *_Encoding) imm1(v int64) { + self.emit(byte(v)) +} + +// imm2 encodes a two-byte immediate value in little-endian. +func (self *_Encoding) imm2(v int64) { + binary.LittleEndian.PutUint16(self.buf(2), uint16(v)) + self.len += 2 +} + +// imm4 encodes a 4-byte immediate value in little-endian. +func (self *_Encoding) imm4(v int64) { + binary.LittleEndian.PutUint32(self.buf(4), uint32(v)) + self.len += 4 +} + +// imm8 encodes an 8-byte immediate value in little-endian. +func (self *_Encoding) imm8(v int64) { + binary.LittleEndian.PutUint64(self.buf(8), uint64(v)) + self.len += 8 +} + +// vex2 encodes a 2-byte or 3-byte VEX prefix. +// +// 2-byte VEX prefix: +// Requires: VEX.W = 0, VEX.mmmmm = 0b00001 and VEX.B = VEX.X = 0 +// +----------------+ +// Byte 0: | Bits 0-7: 0xc5 | +// +----------------+ +// +// +-----------+----------------+----------+--------------+ +// Byte 1: | Bit 7: ~R | Bits 3-6 ~vvvv | Bit 2: L | Bits 0-1: pp | +// +-----------+----------------+----------+--------------+ +// +// 3-byte VEX prefix: +// +----------------+ +// Byte 0: | Bits 0-7: 0xc4 | +// +----------------+ +// +// +-----------+-----------+-----------+-------------------+ +// Byte 1: | Bit 7: ~R | Bit 6: ~X | Bit 5: ~B | Bits 0-4: 0b00001 | +// +-----------+-----------+-----------+-------------------+ +// +// +----------+-----------------+----------+--------------+ +// Byte 2: | Bit 7: 0 | Bits 3-6: ~vvvv | Bit 2: L | Bits 0-1: pp | +// +----------+-----------------+----------+--------------+ +// +func (self *_Encoding) vex2(lpp byte, r byte, rm interface{}, vvvv byte) { + var b byte + var x byte + + /* VEX.R must be a single-bit mask */ + if r > 1 { + panic("VEX.R must be a 1-bit mask") + } + + /* VEX.Lpp must be a 3-bit mask */ + if lpp &^ 0b111 != 0 { + panic("VEX.Lpp must be a 3-bit mask") + } + + /* VEX.vvvv must be a 4-bit mask */ + if vvvv &^ 0b1111 != 0 { + panic("VEX.vvvv must be a 4-bit mask") + } + + /* encode the RM bits if any */ + if rm != nil { + switch v := rm.(type) { + case *Label : break + case Register : b = hcode(v) + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + } + + /* if VEX.B and VEX.X are zeroes, 2-byte VEX prefix can be used */ + if x == 0 && b == 0 { + self.emit(0xc5) + self.emit(0xf8 ^ (r << 7) ^ (vvvv << 3) ^ lpp) + } else { + self.emit(0xc4) + self.emit(0xe1 ^ (r << 7) ^ (x << 6) ^ (b << 5)) + self.emit(0x78 ^ (vvvv << 3) ^ lpp) + } +} + +// vex3 encodes a 3-byte VEX or XOP prefix. +// +// 3-byte VEX/XOP prefix +// +-----------------------------------+ +// Byte 0: | Bits 0-7: 0xc4 (VEX) / 0x8f (XOP) | +// +-----------------------------------+ +// +// +-----------+-----------+-----------+-----------------+ +// Byte 1: | Bit 7: ~R | Bit 6: ~X | Bit 5: ~B | Bits 0-4: mmmmm | +// +-----------+-----------+-----------+-----------------+ +// +// +----------+-----------------+----------+--------------+ +// Byte 2: | Bit 7: W | Bits 3-6: ~vvvv | Bit 2: L | Bits 0-1: pp | +// +----------+-----------------+----------+--------------+ +// +func (self *_Encoding) vex3(esc byte, mmmmm byte, wlpp byte, r byte, rm interface{}, vvvv byte) { + var b byte + var x byte + + /* VEX.R must be a single-bit mask */ + if r > 1 { + panic("VEX.R must be a 1-bit mask") + } + + /* VEX.vvvv must be a 4-bit mask */ + if vvvv &^ 0b1111 != 0 { + panic("VEX.vvvv must be a 4-bit mask") + } + + /* escape must be a 3-byte VEX (0xc4) or XOP (0x8f) prefix */ + if esc != 0xc4 && esc != 0x8f { + panic("escape must be a 3-byte VEX (0xc4) or XOP (0x8f) prefix") + } + + /* VEX.W____Lpp is expected to have no bits set except 0, 1, 2 and 7 */ + if wlpp &^ 0b10000111 != 0 { + panic("VEX.W____Lpp is expected to have no bits set except 0, 1, 2 and 7") + } + + /* VEX.m-mmmm is expected to be a 5-bit mask */ + if mmmmm &^ 0b11111 != 0 { + panic("VEX.m-mmmm is expected to be a 5-bit mask") + } + + /* encode the RM bits */ + switch v := rm.(type) { + case *Label : break + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + + /* encode the 3-byte VEX or XOP prefix */ + self.emit(esc) + self.emit(0xe0 ^ (r << 7) ^ (x << 6) ^ (b << 5) ^ mmmmm) + self.emit(0x78 ^ (vvvv << 3) ^ wlpp) +} + +// evex encodes a 4-byte EVEX prefix. +func (self *_Encoding) evex(mm byte, w1pp byte, ll byte, rr byte, rm interface{}, vvvvv byte, aaa byte, zz byte, bb byte) { + var b byte + var x byte + + /* EVEX.b must be a single-bit mask */ + if bb > 1 { + panic("EVEX.b must be a 1-bit mask") + } + + /* EVEX.z must be a single-bit mask */ + if zz > 1 { + panic("EVEX.z must be a 1-bit mask") + } + + /* EVEX.mm must be a 2-bit mask */ + if mm &^ 0b11 != 0 { + panic("EVEX.mm must be a 2-bit mask") + } + + /* EVEX.L'L must be a 2-bit mask */ + if ll &^ 0b11 != 0 { + panic("EVEX.L'L must be a 2-bit mask") + } + + /* EVEX.R'R must be a 2-bit mask */ + if rr &^ 0b11 != 0 { + panic("EVEX.R'R must be a 2-bit mask") + } + + /* EVEX.aaa must be a 3-bit mask */ + if aaa &^ 0b111 != 0 { + panic("EVEX.aaa must be a 3-bit mask") + } + + /* EVEX.v'vvvv must be a 5-bit mask */ + if vvvvv &^ 0b11111 != 0 { + panic("EVEX.v'vvvv must be a 5-bit mask") + } + + /* EVEX.W____1pp is expected to have no bits set except 0, 1, 2, and 7 */ + if w1pp &^ 0b10000011 != 0b100 { + panic("EVEX.W____1pp is expected to have no bits set except 0, 1, 2, and 7") + } + + /* extract bits from EVEX.R'R and EVEX.v'vvvv */ + r1, r0 := rr >> 1, rr & 1 + v1, v0 := vvvvv >> 4, vvvvv & 0b1111 + + /* encode the RM bits if any */ + if rm != nil { + switch m := rm.(type) { + case *Label : break + case Register : b, x = hcode(m), ecode(m) + case MemoryAddress : b, x, v1 = toHcodeOpt(m.Base), toHcodeOpt(m.Index), toEcodeVMM(m.Index, v1) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + } + + /* EVEX prefix bytes */ + p0 := (r0 << 7) | (x << 6) | (b << 5) | (r1 << 4) | mm + p1 := (v0 << 3) | w1pp + p2 := (zz << 7) | (ll << 5) | (b << 4) | (v1 << 3) | aaa + + /* p0: invert RXBR' (bits 4-7) + * p1: invert vvvv (bits 3-6) + * p2: invert V' (bit 3) */ + self.emit(0x62) + self.emit(p0 ^ 0xf0) + self.emit(p1 ^ 0x78) + self.emit(p2 ^ 0x08) +} + +// rexm encodes a mandatory REX prefix. +func (self *_Encoding) rexm(w byte, r byte, rm interface{}) { + var b byte + var x byte + + /* REX.R must be 0 or 1 */ + if r != 0 && r != 1 { + panic("REX.R must be 0 or 1") + } + + /* REX.W must be 0 or 1 */ + if w != 0 && w != 1 { + panic("REX.W must be 0 or 1") + } + + /* encode the RM bits */ + switch v := rm.(type) { + case *Label : break + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + + /* encode the REX prefix */ + self.emit(0x40 | (w << 3) | (r << 2) | (x << 1) | b) +} + +// rexo encodes an optional REX prefix. +func (self *_Encoding) rexo(r byte, rm interface{}, force bool) { + var b byte + var x byte + + /* REX.R must be 0 or 1 */ + if r != 0 && r != 1 { + panic("REX.R must be 0 or 1") + } + + /* encode the RM bits */ + switch v := rm.(type) { + case *Label : break + case Register : b = hcode(v) + case MemoryAddress : b, x = toHcodeOpt(v.Base), toHcodeOpt(v.Index) + case RelativeOffset : break + default : panic("rm is expected to be a register or a memory address") + } + + /* if REX.R, REX.X, and REX.B are all zeroes, REX prefix can be omitted */ + if force || r != 0 || x != 0 || b != 0 { + self.emit(0x40 | (r << 2) | (x << 1) | b) + } +} + +// mrsd encodes ModR/M, SIB and Displacement. +// +// ModR/M byte +// +----------------+---------------+---------------+ +// | Bits 6-7: Mode | Bits 3-5: Reg | Bits 0-2: R/M | +// +----------------+---------------+---------------+ +// +// SIB byte +// +-----------------+-----------------+----------------+ +// | Bits 6-7: Scale | Bits 3-5: Index | Bits 0-2: Base | +// +-----------------+-----------------+----------------+ +// +func (self *_Encoding) mrsd(reg byte, rm interface{}, disp8v int32) { + var ok bool + var mm MemoryAddress + var ro RelativeOffset + + /* ModRM encodes the lower 3-bit of the register */ + if reg > 7 { + panic("invalid register bits") + } + + /* check the displacement scale */ + switch disp8v { + case 1: break + case 2: break + case 4: break + case 8: break + case 16: break + case 32: break + case 64: break + default: panic("invalid displacement size") + } + + /* special case: unresolved labels, assuming a zero offset */ + if _, ok = rm.(*Label); ok { + self.emit(0x05 | (reg << 3)) + self.imm4(0) + return + } + + /* special case: RIP-relative offset + * ModRM.Mode == 0 and ModeRM.R/M == 5 indicates (rip + disp32) addressing */ + if ro, ok = rm.(RelativeOffset); ok { + self.emit(0x05 | (reg << 3)) + self.imm4(int64(ro)) + return + } + + /* must be a generic memory address */ + if mm, ok = rm.(MemoryAddress); !ok { + panic("rm must be a memory address") + } + + /* absolute addressing, encoded as disp(%rbp,%rsp,1) */ + if mm.Base == nil && mm.Index == nil { + self.emit(0x04 | (reg << 3)) + self.emit(0x25) + self.imm4(int64(mm.Displacement)) + return + } + + /* no SIB byte */ + if mm.Index == nil && lcode(mm.Base) != 0b100 { + cc := lcode(mm.Base) + dv := mm.Displacement + + /* ModRM.Mode == 0 (no displacement) */ + if dv == 0 && mm.Base != RBP && mm.Base != R13 { + if cc == 0b101 { + panic("rbp/r13 is not encodable as a base register (interpreted as disp32 address)") + } else { + self.emit((reg << 3) | cc) + return + } + } + + /* ModRM.Mode == 1 (8-bit displacement) */ + if dq := dv / disp8v; dq >= math.MinInt8 && dq <= math.MaxInt8 && dv % disp8v == 0 { + self.emit(0x40 | (reg << 3) | cc) + self.imm1(int64(dq)) + return + } + + /* ModRM.Mode == 2 (32-bit displacement) */ + self.emit(0x80 | (reg << 3) | cc) + self.imm4(int64(mm.Displacement)) + return + } + + /* all encodings below use ModRM.R/M = 4 (0b100) to indicate the presence of SIB */ + if mm.Index == RSP { + panic("rsp is not encodable as an index register (interpreted as no index)") + } + + /* index = 4 (0b100) denotes no-index encoding */ + var scale byte + var index byte = 0x04 + + /* encode the scale byte */ + if mm.Scale != 0 { + switch mm.Scale { + case 1 : scale = 0 + case 2 : scale = 1 + case 4 : scale = 2 + case 8 : scale = 3 + default : panic("invalid scale value") + } + } + + /* encode the index byte */ + if mm.Index != nil { + index = lcode(mm.Index) + } + + /* SIB.Base = 5 (0b101) and ModRM.Mode = 0 indicates no-base encoding with disp32 */ + if mm.Base == nil { + self.emit((reg << 3) | 0b100) + self.emit((scale << 6) | (index << 3) | 0b101) + self.imm4(int64(mm.Displacement)) + return + } + + /* base L-code & displacement value */ + cc := lcode(mm.Base) + dv := mm.Displacement + + /* ModRM.Mode == 0 (no displacement) */ + if dv == 0 && cc != 0b101 { + self.emit((reg << 3) | 0b100) + self.emit((scale << 6) | (index << 3) | cc) + return + } + + /* ModRM.Mode == 1 (8-bit displacement) */ + if dq := dv / disp8v; dq >= math.MinInt8 && dq <= math.MaxInt8 && dv % disp8v == 0 { + self.emit(0x44 | (reg << 3)) + self.emit((scale << 6) | (index << 3) | cc) + self.imm1(int64(dq)) + return + } + + /* ModRM.Mode == 2 (32-bit displacement) */ + self.emit(0x84 | (reg << 3)) + self.emit((scale << 6) | (index << 3) | cc) + self.imm4(int64(mm.Displacement)) +} + +// encode invokes the encoder to encode this instruction. +func (self *_Encoding) encode(v []interface{}) int { + self.len = 0 + self.encoder(self, v) + return self.len +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/instructions.go b/vendor/github.com/cloudwego/iasm/x86_64/instructions.go new file mode 100644 index 000000000..d9c069035 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/instructions.go @@ -0,0 +1,97210 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Code generated by "mkasm_amd64.py", DO NOT EDIT. + +package x86_64 + +// ADCB performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (6 forms) +// +// * ADCB imm8, al +// * ADCB imm8, r8 +// * ADCB r8, r8 +// * ADCB m8, r8 +// * ADCB imm8, m8 +// * ADCB r8, m8 +// +func (self *Program) ADCB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCB", 2, Operands { v0, v1 }) + // ADCB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x14) + m.imm1(toImmAny(v[0])) + }) + } + // ADCB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCB") + } + return p +} + +// ADCL performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (8 forms) +// +// * ADCL imm32, eax +// * ADCL imm8, r32 +// * ADCL imm32, r32 +// * ADCL r32, r32 +// * ADCL m32, r32 +// * ADCL imm8, m32 +// * ADCL imm32, m32 +// * ADCL r32, m32 +// +func (self *Program) ADCL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCL", 2, Operands { v0, v1 }) + // ADCL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x15) + m.imm4(toImmAny(v[0])) + }) + } + // ADCL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADCL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(2, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADCL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCL") + } + return p +} + +// ADCQ performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (8 forms) +// +// * ADCQ imm32, rax +// * ADCQ imm8, r64 +// * ADCQ imm32, r64 +// * ADCQ r64, r64 +// * ADCQ m64, r64 +// * ADCQ imm8, m64 +// * ADCQ imm32, m64 +// * ADCQ r64, m64 +// +func (self *Program) ADCQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCQ", 2, Operands { v0, v1 }) + // ADCQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x15) + m.imm4(toImmAny(v[0])) + }) + } + // ADCQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xd0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADCQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(2, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADCQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCQ") + } + return p +} + +// ADCW performs "Add with Carry". +// +// Mnemonic : ADC +// Supported forms : (8 forms) +// +// * ADCW imm16, ax +// * ADCW imm8, r16 +// * ADCW imm16, r16 +// * ADCW r16, r16 +// * ADCW m16, r16 +// * ADCW imm8, m16 +// * ADCW imm16, m16 +// * ADCW r16, m16 +// +func (self *Program) ADCW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCW", 2, Operands { v0, v1 }) + // ADCW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x15) + m.imm2(toImmAny(v[0])) + }) + } + // ADCW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADCW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ADCW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADCW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADCW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(2, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ADCW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCW") + } + return p +} + +// ADCXL performs "Unsigned Integer Addition of Two Operands with Carry Flag". +// +// Mnemonic : ADCX +// Supported forms : (2 forms) +// +// * ADCXL r32, r32 [ADX] +// * ADCXL m32, r32 [ADX] +// +func (self *Program) ADCXL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCXL", 2, Operands { v0, v1 }) + // ADCXL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCXL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCXL") + } + return p +} + +// ADCXQ performs "Unsigned Integer Addition of Two Operands with Carry Flag". +// +// Mnemonic : ADCX +// Supported forms : (2 forms) +// +// * ADCXQ r64, r64 [ADX] +// * ADCXQ m64, r64 [ADX] +// +func (self *Program) ADCXQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADCXQ", 2, Operands { v0, v1 }) + // ADCXQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADCXQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADCXQ") + } + return p +} + +// ADDB performs "Add". +// +// Mnemonic : ADD +// Supported forms : (6 forms) +// +// * ADDB imm8, al +// * ADDB imm8, r8 +// * ADDB r8, r8 +// * ADDB m8, r8 +// * ADDB imm8, m8 +// * ADDB r8, m8 +// +func (self *Program) ADDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDB", 2, Operands { v0, v1 }) + // ADDB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x04) + m.imm1(toImmAny(v[0])) + }) + } + // ADDB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x00) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x02) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x02) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x00) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDB") + } + return p +} + +// ADDL performs "Add". +// +// Mnemonic : ADD +// Supported forms : (8 forms) +// +// * ADDL imm32, eax +// * ADDL imm8, r32 +// * ADDL imm32, r32 +// * ADDL r32, r32 +// * ADDL m32, r32 +// * ADDL imm8, m32 +// * ADDL imm32, m32 +// * ADDL r32, m32 +// +func (self *Program) ADDL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDL", 2, Operands { v0, v1 }) + // ADDL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x05) + m.imm4(toImmAny(v[0])) + }) + } + // ADDL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADDL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x01) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADDL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x01) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDL") + } + return p +} + +// ADDPD performs "Add Packed Double-Precision Floating-Point Values". +// +// Mnemonic : ADDPD +// Supported forms : (2 forms) +// +// * ADDPD xmm, xmm [SSE2] +// * ADDPD m128, xmm [SSE2] +// +func (self *Program) ADDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDPD", 2, Operands { v0, v1 }) + // ADDPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDPD") + } + return p +} + +// ADDPS performs "Add Packed Single-Precision Floating-Point Values". +// +// Mnemonic : ADDPS +// Supported forms : (2 forms) +// +// * ADDPS xmm, xmm [SSE] +// * ADDPS m128, xmm [SSE] +// +func (self *Program) ADDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDPS", 2, Operands { v0, v1 }) + // ADDPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDPS") + } + return p +} + +// ADDQ performs "Add". +// +// Mnemonic : ADD +// Supported forms : (8 forms) +// +// * ADDQ imm32, rax +// * ADDQ imm8, r64 +// * ADDQ imm32, r64 +// * ADDQ r64, r64 +// * ADDQ m64, r64 +// * ADDQ imm8, m64 +// * ADDQ imm32, m64 +// * ADDQ r64, m64 +// +func (self *Program) ADDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDQ", 2, Operands { v0, v1 }) + // ADDQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x05) + m.imm4(toImmAny(v[0])) + }) + } + // ADDQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ADDQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x01) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ADDQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDQ") + } + return p +} + +// ADDSD performs "Add Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : ADDSD +// Supported forms : (2 forms) +// +// * ADDSD xmm, xmm [SSE2] +// * ADDSD m64, xmm [SSE2] +// +func (self *Program) ADDSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSD", 2, Operands { v0, v1 }) + // ADDSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSD") + } + return p +} + +// ADDSS performs "Add Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : ADDSS +// Supported forms : (2 forms) +// +// * ADDSS xmm, xmm [SSE] +// * ADDSS m32, xmm [SSE] +// +func (self *Program) ADDSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSS", 2, Operands { v0, v1 }) + // ADDSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSS") + } + return p +} + +// ADDSUBPD performs "Packed Double-FP Add/Subtract". +// +// Mnemonic : ADDSUBPD +// Supported forms : (2 forms) +// +// * ADDSUBPD xmm, xmm [SSE3] +// * ADDSUBPD m128, xmm [SSE3] +// +func (self *Program) ADDSUBPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSUBPD", 2, Operands { v0, v1 }) + // ADDSUBPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSUBPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSUBPD") + } + return p +} + +// ADDSUBPS performs "Packed Single-FP Add/Subtract". +// +// Mnemonic : ADDSUBPS +// Supported forms : (2 forms) +// +// * ADDSUBPS xmm, xmm [SSE3] +// * ADDSUBPS m128, xmm [SSE3] +// +func (self *Program) ADDSUBPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDSUBPS", 2, Operands { v0, v1 }) + // ADDSUBPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDSUBPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDSUBPS") + } + return p +} + +// ADDW performs "Add". +// +// Mnemonic : ADD +// Supported forms : (8 forms) +// +// * ADDW imm16, ax +// * ADDW imm8, r16 +// * ADDW imm16, r16 +// * ADDW r16, r16 +// * ADDW m16, r16 +// * ADDW imm8, m16 +// * ADDW imm16, m16 +// * ADDW r16, m16 +// +func (self *Program) ADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADDW", 2, Operands { v0, v1 }) + // ADDW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x05) + m.imm2(toImmAny(v[0])) + }) + } + // ADDW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ADDW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ADDW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x01) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADDW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ADDW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ADDW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(0, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ADDW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x01) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADDW") + } + return p +} + +// ADOXL performs "Unsigned Integer Addition of Two Operands with Overflow Flag". +// +// Mnemonic : ADOX +// Supported forms : (2 forms) +// +// * ADOXL r32, r32 [ADX] +// * ADOXL m32, r32 [ADX] +// +func (self *Program) ADOXL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADOXL", 2, Operands { v0, v1 }) + // ADOXL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADOXL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADOXL") + } + return p +} + +// ADOXQ performs "Unsigned Integer Addition of Two Operands with Overflow Flag". +// +// Mnemonic : ADOX +// Supported forms : (2 forms) +// +// * ADOXQ r64, r64 [ADX] +// * ADOXQ m64, r64 [ADX] +// +func (self *Program) ADOXQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ADOXQ", 2, Operands { v0, v1 }) + // ADOXQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ADOXQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_ADX) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ADOXQ") + } + return p +} + +// AESDEC performs "Perform One Round of an AES Decryption Flow". +// +// Mnemonic : AESDEC +// Supported forms : (2 forms) +// +// * AESDEC xmm, xmm [AES] +// * AESDEC m128, xmm [AES] +// +func (self *Program) AESDEC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESDEC", 2, Operands { v0, v1 }) + // AESDEC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xde) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESDEC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xde) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESDEC") + } + return p +} + +// AESDECLAST performs "Perform Last Round of an AES Decryption Flow". +// +// Mnemonic : AESDECLAST +// Supported forms : (2 forms) +// +// * AESDECLAST xmm, xmm [AES] +// * AESDECLAST m128, xmm [AES] +// +func (self *Program) AESDECLAST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESDECLAST", 2, Operands { v0, v1 }) + // AESDECLAST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESDECLAST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESDECLAST") + } + return p +} + +// AESENC performs "Perform One Round of an AES Encryption Flow". +// +// Mnemonic : AESENC +// Supported forms : (2 forms) +// +// * AESENC xmm, xmm [AES] +// * AESENC m128, xmm [AES] +// +func (self *Program) AESENC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESENC", 2, Operands { v0, v1 }) + // AESENC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESENC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESENC") + } + return p +} + +// AESENCLAST performs "Perform Last Round of an AES Encryption Flow". +// +// Mnemonic : AESENCLAST +// Supported forms : (2 forms) +// +// * AESENCLAST xmm, xmm [AES] +// * AESENCLAST m128, xmm [AES] +// +func (self *Program) AESENCLAST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESENCLAST", 2, Operands { v0, v1 }) + // AESENCLAST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESENCLAST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESENCLAST") + } + return p +} + +// AESIMC performs "Perform the AES InvMixColumn Transformation". +// +// Mnemonic : AESIMC +// Supported forms : (2 forms) +// +// * AESIMC xmm, xmm [AES] +// * AESIMC m128, xmm [AES] +// +func (self *Program) AESIMC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("AESIMC", 2, Operands { v0, v1 }) + // AESIMC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // AESIMC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for AESIMC") + } + return p +} + +// AESKEYGENASSIST performs "AES Round Key Generation Assist". +// +// Mnemonic : AESKEYGENASSIST +// Supported forms : (2 forms) +// +// * AESKEYGENASSIST imm8, xmm, xmm [AES] +// * AESKEYGENASSIST imm8, m128, xmm [AES] +// +func (self *Program) AESKEYGENASSIST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("AESKEYGENASSIST", 3, Operands { v0, v1, v2 }) + // AESKEYGENASSIST imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // AESKEYGENASSIST imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for AESKEYGENASSIST") + } + return p +} + +// ANDB performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (6 forms) +// +// * ANDB imm8, al +// * ANDB imm8, r8 +// * ANDB r8, r8 +// * ANDB m8, r8 +// * ANDB imm8, m8 +// * ANDB r8, m8 +// +func (self *Program) ANDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDB", 2, Operands { v0, v1 }) + // ANDB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x24) + m.imm1(toImmAny(v[0])) + }) + } + // ANDB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDB") + } + return p +} + +// ANDL performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (8 forms) +// +// * ANDL imm32, eax +// * ANDL imm8, r32 +// * ANDL imm32, r32 +// * ANDL r32, r32 +// * ANDL m32, r32 +// * ANDL imm8, m32 +// * ANDL imm32, m32 +// * ANDL r32, m32 +// +func (self *Program) ANDL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDL", 2, Operands { v0, v1 }) + // ANDL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x25) + m.imm4(toImmAny(v[0])) + }) + } + // ANDL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ANDL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(4, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ANDL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDL") + } + return p +} + +// ANDNL performs "Logical AND NOT". +// +// Mnemonic : ANDN +// Supported forms : (2 forms) +// +// * ANDNL r32, r32, r32 [BMI] +// * ANDNL m32, r32, r32 [BMI] +// +func (self *Program) ANDNL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ANDNL", 3, Operands { v0, v1, v2 }) + // ANDNL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // ANDNL m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNL") + } + return p +} + +// ANDNPD performs "Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : ANDNPD +// Supported forms : (2 forms) +// +// * ANDNPD xmm, xmm [SSE2] +// * ANDNPD m128, xmm [SSE2] +// +func (self *Program) ANDNPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDNPD", 2, Operands { v0, v1 }) + // ANDNPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDNPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNPD") + } + return p +} + +// ANDNPS performs "Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : ANDNPS +// Supported forms : (2 forms) +// +// * ANDNPS xmm, xmm [SSE] +// * ANDNPS m128, xmm [SSE] +// +func (self *Program) ANDNPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDNPS", 2, Operands { v0, v1 }) + // ANDNPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDNPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNPS") + } + return p +} + +// ANDNQ performs "Logical AND NOT". +// +// Mnemonic : ANDN +// Supported forms : (2 forms) +// +// * ANDNQ r64, r64, r64 [BMI] +// * ANDNQ m64, r64, r64 [BMI] +// +func (self *Program) ANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ANDNQ", 3, Operands { v0, v1, v2 }) + // ANDNQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // ANDNQ m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDNQ") + } + return p +} + +// ANDPD performs "Bitwise Logical AND of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : ANDPD +// Supported forms : (2 forms) +// +// * ANDPD xmm, xmm [SSE2] +// * ANDPD m128, xmm [SSE2] +// +func (self *Program) ANDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDPD", 2, Operands { v0, v1 }) + // ANDPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x54) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x54) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDPD") + } + return p +} + +// ANDPS performs "Bitwise Logical AND of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : ANDPS +// Supported forms : (2 forms) +// +// * ANDPS xmm, xmm [SSE] +// * ANDPS m128, xmm [SSE] +// +func (self *Program) ANDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDPS", 2, Operands { v0, v1 }) + // ANDPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x54) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x54) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDPS") + } + return p +} + +// ANDQ performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (8 forms) +// +// * ANDQ imm32, rax +// * ANDQ imm8, r64 +// * ANDQ imm32, r64 +// * ANDQ r64, r64 +// * ANDQ m64, r64 +// * ANDQ imm8, m64 +// * ANDQ imm32, m64 +// * ANDQ r64, m64 +// +func (self *Program) ANDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDQ", 2, Operands { v0, v1 }) + // ANDQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x25) + m.imm4(toImmAny(v[0])) + }) + } + // ANDQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xe0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ANDQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(4, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ANDQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDQ") + } + return p +} + +// ANDW performs "Logical AND". +// +// Mnemonic : AND +// Supported forms : (8 forms) +// +// * ANDW imm16, ax +// * ANDW imm8, r16 +// * ANDW imm16, r16 +// * ANDW r16, r16 +// * ANDW m16, r16 +// * ANDW imm8, m16 +// * ANDW imm16, m16 +// * ANDW r16, m16 +// +func (self *Program) ANDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ANDW", 2, Operands { v0, v1 }) + // ANDW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x25) + m.imm2(toImmAny(v[0])) + }) + } + // ANDW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ANDW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ANDW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ANDW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ANDW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ANDW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(4, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ANDW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ANDW") + } + return p +} + +// BEXTR performs "Bit Field Extract". +// +// Mnemonic : BEXTR +// Supported forms : (8 forms) +// +// * BEXTR imm32, r32, r32 [TBM] +// * BEXTR imm32, m32, r32 [TBM] +// * BEXTR imm32, r64, r64 [TBM] +// * BEXTR imm32, m64, r64 [TBM] +// * BEXTR r32, r32, r32 [BMI] +// * BEXTR r32, m32, r32 [BMI] +// * BEXTR r64, r64, r64 [BMI] +// * BEXTR r64, m64, r64 [BMI] +// +func (self *Program) BEXTR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BEXTR", 3, Operands { v0, v1, v2 }) + // BEXTR imm32, r32, r32 + if isImm32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xea ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR imm32, m32, r32 + if isImm32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1010, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR imm32, r64, r64 + if isImm32(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xea ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf8) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR imm32, m64, r64 + if isImm32(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1010, 0x80, hcode(v[2]), addr(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // BEXTR r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BEXTR r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // BEXTR r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf8 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BEXTR r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BEXTR") + } + return p +} + +// BLCFILL performs "Fill From Lowest Clear Bit". +// +// Mnemonic : BLCFILL +// Supported forms : (4 forms) +// +// * BLCFILL r32, r32 [TBM] +// * BLCFILL m32, r32 [TBM] +// * BLCFILL r64, r64 [TBM] +// * BLCFILL m64, r64 [TBM] +// +func (self *Program) BLCFILL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCFILL", 2, Operands { v0, v1 }) + // BLCFILL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCFILL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(1, addr(v[0]), 1) + }) + } + // BLCFILL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCFILL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCFILL") + } + return p +} + +// BLCI performs "Isolate Lowest Clear Bit". +// +// Mnemonic : BLCI +// Supported forms : (4 forms) +// +// * BLCI r32, r32 [TBM] +// * BLCI m32, r32 [TBM] +// * BLCI r64, r64 [TBM] +// * BLCI m64, r64 [TBM] +// +func (self *Program) BLCI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCI", 2, Operands { v0, v1 }) + // BLCI r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLCI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(6, addr(v[0]), 1) + }) + } + // BLCI r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLCI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCI") + } + return p +} + +// BLCIC performs "Isolate Lowest Set Bit and Complement". +// +// Mnemonic : BLCIC +// Supported forms : (4 forms) +// +// * BLCIC r32, r32 [TBM] +// * BLCIC m32, r32 [TBM] +// * BLCIC r64, r64 [TBM] +// * BLCIC m64, r64 [TBM] +// +func (self *Program) BLCIC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCIC", 2, Operands { v0, v1 }) + // BLCIC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe8 | lcode(v[0])) + }) + } + // BLCIC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(5, addr(v[0]), 1) + }) + } + // BLCIC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe8 | lcode(v[0])) + }) + } + // BLCIC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(5, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCIC") + } + return p +} + +// BLCMSK performs "Mask From Lowest Clear Bit". +// +// Mnemonic : BLCMSK +// Supported forms : (4 forms) +// +// * BLCMSK r32, r32 [TBM] +// * BLCMSK m32, r32 [TBM] +// * BLCMSK r64, r64 [TBM] +// * BLCMSK m64, r64 [TBM] +// +func (self *Program) BLCMSK(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCMSK", 2, Operands { v0, v1 }) + // BLCMSK r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCMSK m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(1, addr(v[0]), 1) + }) + } + // BLCMSK r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLCMSK m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCMSK") + } + return p +} + +// BLCS performs "Set Lowest Clear Bit". +// +// Mnemonic : BLCS +// Supported forms : (4 forms) +// +// * BLCS r32, r32 [TBM] +// * BLCS m32, r32 [TBM] +// * BLCS r64, r64 [TBM] +// * BLCS m64, r64 [TBM] +// +func (self *Program) BLCS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLCS", 2, Operands { v0, v1 }) + // BLCS r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLCS m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(3, addr(v[0]), 1) + }) + } + // BLCS r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLCS m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLCS") + } + return p +} + +// BLENDPD performs "Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : BLENDPD +// Supported forms : (2 forms) +// +// * BLENDPD imm8, xmm, xmm [SSE4.1] +// * BLENDPD imm8, m128, xmm [SSE4.1] +// +func (self *Program) BLENDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDPD", 3, Operands { v0, v1, v2 }) + // BLENDPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BLENDPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDPD") + } + return p +} + +// BLENDPS performs " Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : BLENDPS +// Supported forms : (2 forms) +// +// * BLENDPS imm8, xmm, xmm [SSE4.1] +// * BLENDPS imm8, m128, xmm [SSE4.1] +// +func (self *Program) BLENDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDPS", 3, Operands { v0, v1, v2 }) + // BLENDPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BLENDPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDPS") + } + return p +} + +// BLENDVPD performs " Variable Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : BLENDVPD +// Supported forms : (2 forms) +// +// * BLENDVPD xmm0, xmm, xmm [SSE4.1] +// * BLENDVPD xmm0, m128, xmm [SSE4.1] +// +func (self *Program) BLENDVPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDVPD", 3, Operands { v0, v1, v2 }) + // BLENDVPD xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BLENDVPD xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDVPD") + } + return p +} + +// BLENDVPS performs " Variable Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : BLENDVPS +// Supported forms : (2 forms) +// +// * BLENDVPS xmm0, xmm, xmm [SSE4.1] +// * BLENDVPS xmm0, m128, xmm [SSE4.1] +// +func (self *Program) BLENDVPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BLENDVPS", 3, Operands { v0, v1, v2 }) + // BLENDVPS xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BLENDVPS xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLENDVPS") + } + return p +} + +// BLSFILL performs "Fill From Lowest Set Bit". +// +// Mnemonic : BLSFILL +// Supported forms : (4 forms) +// +// * BLSFILL r32, r32 [TBM] +// * BLSFILL m32, r32 [TBM] +// * BLSFILL r64, r64 [TBM] +// * BLSFILL m64, r64 [TBM] +// +func (self *Program) BLSFILL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSFILL", 2, Operands { v0, v1 }) + // BLSFILL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSFILL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(2, addr(v[0]), 1) + }) + } + // BLSFILL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSFILL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSFILL") + } + return p +} + +// BLSI performs "Isolate Lowest Set Bit". +// +// Mnemonic : BLSI +// Supported forms : (4 forms) +// +// * BLSI r32, r32 [BMI] +// * BLSI m32, r32 [BMI] +// * BLSI r64, r64 [BMI] +// * BLSI m64, r64 [BMI] +// +func (self *Program) BLSI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSI", 2, Operands { v0, v1 }) + // BLSI r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLSI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(3, addr(v[0]), 1) + }) + } + // BLSI r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd8 | lcode(v[0])) + }) + } + // BLSI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSI") + } + return p +} + +// BLSIC performs "Isolate Lowest Set Bit and Complement". +// +// Mnemonic : BLSIC +// Supported forms : (4 forms) +// +// * BLSIC r32, r32 [TBM] +// * BLSIC m32, r32 [TBM] +// * BLSIC r64, r64 [TBM] +// * BLSIC m64, r64 [TBM] +// +func (self *Program) BLSIC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSIC", 2, Operands { v0, v1 }) + // BLSIC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLSIC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(6, addr(v[0]), 1) + }) + } + // BLSIC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf0 | lcode(v[0])) + }) + } + // BLSIC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSIC") + } + return p +} + +// BLSMSK performs "Mask From Lowest Set Bit". +// +// Mnemonic : BLSMSK +// Supported forms : (4 forms) +// +// * BLSMSK r32, r32 [BMI] +// * BLSMSK m32, r32 [BMI] +// * BLSMSK r64, r64 [BMI] +// * BLSMSK m64, r64 [BMI] +// +func (self *Program) BLSMSK(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSMSK", 2, Operands { v0, v1 }) + // BLSMSK r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSMSK m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(2, addr(v[0]), 1) + }) + } + // BLSMSK r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xd0 | lcode(v[0])) + }) + } + // BLSMSK m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSMSK") + } + return p +} + +// BLSR performs "Reset Lowest Set Bit". +// +// Mnemonic : BLSR +// Supported forms : (4 forms) +// +// * BLSR r32, r32 [BMI] +// * BLSR m32, r32 [BMI] +// * BLSR r64, r64 [BMI] +// * BLSR m64, r64 [BMI] +// +func (self *Program) BLSR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BLSR", 2, Operands { v0, v1 }) + // BLSR r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLSR m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(1, addr(v[0]), 1) + }) + } + // BLSR r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0xf3) + m.emit(0xc8 | lcode(v[0])) + }) + } + // BLSR m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BLSR") + } + return p +} + +// BSFL performs "Bit Scan Forward". +// +// Mnemonic : BSF +// Supported forms : (2 forms) +// +// * BSFL r32, r32 +// * BSFL m32, r32 +// +func (self *Program) BSFL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSFL", 2, Operands { v0, v1 }) + // BSFL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSFL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSFL") + } + return p +} + +// BSFQ performs "Bit Scan Forward". +// +// Mnemonic : BSF +// Supported forms : (2 forms) +// +// * BSFQ r64, r64 +// * BSFQ m64, r64 +// +func (self *Program) BSFQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSFQ", 2, Operands { v0, v1 }) + // BSFQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSFQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSFQ") + } + return p +} + +// BSFW performs "Bit Scan Forward". +// +// Mnemonic : BSF +// Supported forms : (2 forms) +// +// * BSFW r16, r16 +// * BSFW m16, r16 +// +func (self *Program) BSFW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSFW", 2, Operands { v0, v1 }) + // BSFW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSFW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSFW") + } + return p +} + +// BSRL performs "Bit Scan Reverse". +// +// Mnemonic : BSR +// Supported forms : (2 forms) +// +// * BSRL r32, r32 +// * BSRL m32, r32 +// +func (self *Program) BSRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSRL", 2, Operands { v0, v1 }) + // BSRL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSRL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSRL") + } + return p +} + +// BSRQ performs "Bit Scan Reverse". +// +// Mnemonic : BSR +// Supported forms : (2 forms) +// +// * BSRQ r64, r64 +// * BSRQ m64, r64 +// +func (self *Program) BSRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSRQ", 2, Operands { v0, v1 }) + // BSRQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSRQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSRQ") + } + return p +} + +// BSRW performs "Bit Scan Reverse". +// +// Mnemonic : BSR +// Supported forms : (2 forms) +// +// * BSRW r16, r16 +// * BSRW m16, r16 +// +func (self *Program) BSRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BSRW", 2, Operands { v0, v1 }) + // BSRW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // BSRW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BSRW") + } + return p +} + +// BSWAPL performs "Byte Swap". +// +// Mnemonic : BSWAP +// Supported forms : (1 form) +// +// * BSWAPL r32 +// +func (self *Program) BSWAPL(v0 interface{}) *Instruction { + p := self.alloc("BSWAPL", 1, Operands { v0 }) + // BSWAPL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc8 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BSWAPL") + } + return p +} + +// BSWAPQ performs "Byte Swap". +// +// Mnemonic : BSWAP +// Supported forms : (1 form) +// +// * BSWAPQ r64 +// +func (self *Program) BSWAPQ(v0 interface{}) *Instruction { + p := self.alloc("BSWAPQ", 1, Operands { v0 }) + // BSWAPQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xc8 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for BSWAPQ") + } + return p +} + +// BTCL performs "Bit Test and Complement". +// +// Mnemonic : BTC +// Supported forms : (4 forms) +// +// * BTCL imm8, r32 +// * BTCL r32, r32 +// * BTCL imm8, m32 +// * BTCL r32, m32 +// +func (self *Program) BTCL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTCL", 2, Operands { v0, v1 }) + // BTCL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTCL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTCL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTCL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xbb) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTCL") + } + return p +} + +// BTCQ performs "Bit Test and Complement". +// +// Mnemonic : BTC +// Supported forms : (4 forms) +// +// * BTCQ imm8, r64 +// * BTCQ r64, r64 +// * BTCQ imm8, m64 +// * BTCQ r64, m64 +// +func (self *Program) BTCQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTCQ", 2, Operands { v0, v1 }) + // BTCQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTCQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTCQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTCQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xbb) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTCQ") + } + return p +} + +// BTCW performs "Bit Test and Complement". +// +// Mnemonic : BTC +// Supported forms : (4 forms) +// +// * BTCW imm8, r16 +// * BTCW r16, r16 +// * BTCW imm8, m16 +// * BTCW r16, m16 +// +func (self *Program) BTCW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTCW", 2, Operands { v0, v1 }) + // BTCW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTCW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTCW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTCW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xbb) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTCW") + } + return p +} + +// BTL performs "Bit Test". +// +// Mnemonic : BT +// Supported forms : (4 forms) +// +// * BTL imm8, r32 +// * BTL r32, r32 +// * BTL imm8, m32 +// * BTL r32, m32 +// +func (self *Program) BTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTL", 2, Operands { v0, v1 }) + // BTL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTL") + } + return p +} + +// BTQ performs "Bit Test". +// +// Mnemonic : BT +// Supported forms : (4 forms) +// +// * BTQ imm8, r64 +// * BTQ r64, r64 +// * BTQ imm8, m64 +// * BTQ r64, m64 +// +func (self *Program) BTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTQ", 2, Operands { v0, v1 }) + // BTQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTQ") + } + return p +} + +// BTRL performs "Bit Test and Reset". +// +// Mnemonic : BTR +// Supported forms : (4 forms) +// +// * BTRL imm8, r32 +// * BTRL r32, r32 +// * BTRL imm8, m32 +// * BTRL r32, m32 +// +func (self *Program) BTRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTRL", 2, Operands { v0, v1 }) + // BTRL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTRL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTRL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTRL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTRL") + } + return p +} + +// BTRQ performs "Bit Test and Reset". +// +// Mnemonic : BTR +// Supported forms : (4 forms) +// +// * BTRQ imm8, r64 +// * BTRQ r64, r64 +// * BTRQ imm8, m64 +// * BTRQ r64, m64 +// +func (self *Program) BTRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTRQ", 2, Operands { v0, v1 }) + // BTRQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTRQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xb3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTRQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTRQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xb3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTRQ") + } + return p +} + +// BTRW performs "Bit Test and Reset". +// +// Mnemonic : BTR +// Supported forms : (4 forms) +// +// * BTRW imm8, r16 +// * BTRW r16, r16 +// * BTRW imm8, m16 +// * BTRW r16, m16 +// +func (self *Program) BTRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTRW", 2, Operands { v0, v1 }) + // BTRW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTRW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTRW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTRW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTRW") + } + return p +} + +// BTSL performs "Bit Test and Set". +// +// Mnemonic : BTS +// Supported forms : (4 forms) +// +// * BTSL imm8, r32 +// * BTSL r32, r32 +// * BTSL imm8, m32 +// * BTSL r32, m32 +// +func (self *Program) BTSL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTSL", 2, Operands { v0, v1 }) + // BTSL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTSL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xab) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTSL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTSL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xab) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTSL") + } + return p +} + +// BTSQ performs "Bit Test and Set". +// +// Mnemonic : BTS +// Supported forms : (4 forms) +// +// * BTSQ imm8, r64 +// * BTSQ r64, r64 +// * BTSQ imm8, m64 +// * BTSQ r64, m64 +// +func (self *Program) BTSQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTSQ", 2, Operands { v0, v1 }) + // BTSQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTSQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xab) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTSQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTSQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xab) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTSQ") + } + return p +} + +// BTSW performs "Bit Test and Set". +// +// Mnemonic : BTS +// Supported forms : (4 forms) +// +// * BTSW imm8, r16 +// * BTSW r16, r16 +// * BTSW imm8, m16 +// * BTSW r16, m16 +// +func (self *Program) BTSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTSW", 2, Operands { v0, v1 }) + // BTSW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTSW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xab) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTSW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTSW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xab) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTSW") + } + return p +} + +// BTW performs "Bit Test". +// +// Mnemonic : BT +// Supported forms : (4 forms) +// +// * BTW imm8, r16 +// * BTW r16, r16 +// * BTW imm8, m16 +// * BTW r16, m16 +// +func (self *Program) BTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("BTW", 2, Operands { v0, v1 }) + // BTW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0xba) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // BTW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // BTW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x0f) + m.emit(0xba) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // BTW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BTW") + } + return p +} + +// BZHI performs "Zero High Bits Starting with Specified Bit Position". +// +// Mnemonic : BZHI +// Supported forms : (4 forms) +// +// * BZHI r32, r32, r32 [BMI2] +// * BZHI r32, m32, r32 [BMI2] +// * BZHI r64, r64, r64 [BMI2] +// * BZHI r64, m64, r64 [BMI2] +// +func (self *Program) BZHI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("BZHI", 3, Operands { v0, v1, v2 }) + // BZHI r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BZHI r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // BZHI r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf8 ^ (hlcode(v[0]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // BZHI r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x80, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for BZHI") + } + return p +} + +// CALL performs "Call Procedure". +// +// Mnemonic : CALL +// Supported forms : (1 form) +// +// * CALL rel32 +// +func (self *Program) CALL(v0 interface{}) *Instruction { + p := self.alloc("CALL", 1, Operands { v0 }) + // CALL rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe8) + m.imm4(relv(v[0])) + }) + } + // CALL label + if isLabel(v0) { + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0xe8) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CALL") + } + return p +} + +// CALLQ performs "Call Procedure". +// +// Mnemonic : CALL +// Supported forms : (2 forms) +// +// * CALLQ r64 +// * CALLQ m64 +// +func (self *Program) CALLQ(v0 interface{}) *Instruction { + p := self.alloc("CALLQ", 1, Operands { v0 }) + // CALLQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xd0 | lcode(v[0])) + }) + } + // CALLQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CALLQ") + } + return p +} + +// CBTW performs "Convert Byte to Word". +// +// Mnemonic : CBW +// Supported forms : (1 form) +// +// * CBTW +// +func (self *Program) CBTW() *Instruction { + p := self.alloc("CBTW", 0, Operands { }) + // CBTW + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x98) + }) + return p +} + +// CLC performs "Clear Carry Flag". +// +// Mnemonic : CLC +// Supported forms : (1 form) +// +// * CLC +// +func (self *Program) CLC() *Instruction { + p := self.alloc("CLC", 0, Operands { }) + // CLC + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf8) + }) + return p +} + +// CLD performs "Clear Direction Flag". +// +// Mnemonic : CLD +// Supported forms : (1 form) +// +// * CLD +// +func (self *Program) CLD() *Instruction { + p := self.alloc("CLD", 0, Operands { }) + // CLD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xfc) + }) + return p +} + +// CLFLUSH performs "Flush Cache Line". +// +// Mnemonic : CLFLUSH +// Supported forms : (1 form) +// +// * CLFLUSH m8 [CLFLUSH] +// +func (self *Program) CLFLUSH(v0 interface{}) *Instruction { + p := self.alloc("CLFLUSH", 1, Operands { v0 }) + // CLFLUSH m8 + if isM8(v0) { + self.require(ISA_CLFLUSH) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CLFLUSH") + } + return p +} + +// CLFLUSHOPT performs "Flush Cache Line Optimized". +// +// Mnemonic : CLFLUSHOPT +// Supported forms : (1 form) +// +// * CLFLUSHOPT m8 [CLFLUSHOPT] +// +func (self *Program) CLFLUSHOPT(v0 interface{}) *Instruction { + p := self.alloc("CLFLUSHOPT", 1, Operands { v0 }) + // CLFLUSHOPT m8 + if isM8(v0) { + self.require(ISA_CLFLUSHOPT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CLFLUSHOPT") + } + return p +} + +// CLTD performs "Convert Doubleword to Quadword". +// +// Mnemonic : CDQ +// Supported forms : (1 form) +// +// * CLTD +// +func (self *Program) CLTD() *Instruction { + p := self.alloc("CLTD", 0, Operands { }) + // CLTD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x99) + }) + return p +} + +// CLTQ performs "Convert Doubleword to Quadword". +// +// Mnemonic : CDQE +// Supported forms : (1 form) +// +// * CLTQ +// +func (self *Program) CLTQ() *Instruction { + p := self.alloc("CLTQ", 0, Operands { }) + // CLTQ + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x98) + }) + return p +} + +// CLWB performs "Cache Line Write Back". +// +// Mnemonic : CLWB +// Supported forms : (1 form) +// +// * CLWB m8 [CLWB] +// +func (self *Program) CLWB(v0 interface{}) *Instruction { + p := self.alloc("CLWB", 1, Operands { v0 }) + // CLWB m8 + if isM8(v0) { + self.require(ISA_CLWB) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CLWB") + } + return p +} + +// CLZERO performs "Zero-out 64-bit Cache Line". +// +// Mnemonic : CLZERO +// Supported forms : (1 form) +// +// * CLZERO [CLZERO] +// +func (self *Program) CLZERO() *Instruction { + p := self.alloc("CLZERO", 0, Operands { }) + // CLZERO + self.require(ISA_CLZERO) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xfc) + }) + return p +} + +// CMC performs "Complement Carry Flag". +// +// Mnemonic : CMC +// Supported forms : (1 form) +// +// * CMC +// +func (self *Program) CMC() *Instruction { + p := self.alloc("CMC", 0, Operands { }) + // CMC + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf5) + }) + return p +} + +// CMOVA performs "Move if above (CF == 0 and ZF == 0)". +// +// Mnemonic : CMOVA +// Supported forms : (6 forms) +// +// * CMOVA r16, r16 [CMOV] +// * CMOVA m16, r16 [CMOV] +// * CMOVA r32, r32 [CMOV] +// * CMOVA m32, r32 [CMOV] +// * CMOVA r64, r64 [CMOV] +// * CMOVA m64, r64 [CMOV] +// +func (self *Program) CMOVA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVA", 2, Operands { v0, v1 }) + // CMOVA r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVA m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVA r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVA m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVA r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVA m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVA") + } + return p +} + +// CMOVAE performs "Move if above or equal (CF == 0)". +// +// Mnemonic : CMOVAE +// Supported forms : (6 forms) +// +// * CMOVAE r16, r16 [CMOV] +// * CMOVAE m16, r16 [CMOV] +// * CMOVAE r32, r32 [CMOV] +// * CMOVAE m32, r32 [CMOV] +// * CMOVAE r64, r64 [CMOV] +// * CMOVAE m64, r64 [CMOV] +// +func (self *Program) CMOVAE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVAE", 2, Operands { v0, v1 }) + // CMOVAE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVAE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVAE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVAE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVAE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVAE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVAE") + } + return p +} + +// CMOVB performs "Move if below (CF == 1)". +// +// Mnemonic : CMOVB +// Supported forms : (6 forms) +// +// * CMOVB r16, r16 [CMOV] +// * CMOVB m16, r16 [CMOV] +// * CMOVB r32, r32 [CMOV] +// * CMOVB m32, r32 [CMOV] +// * CMOVB r64, r64 [CMOV] +// * CMOVB m64, r64 [CMOV] +// +func (self *Program) CMOVB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVB", 2, Operands { v0, v1 }) + // CMOVB r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVB m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVB r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVB m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVB r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVB m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVB") + } + return p +} + +// CMOVBE performs "Move if below or equal (CF == 1 or ZF == 1)". +// +// Mnemonic : CMOVBE +// Supported forms : (6 forms) +// +// * CMOVBE r16, r16 [CMOV] +// * CMOVBE m16, r16 [CMOV] +// * CMOVBE r32, r32 [CMOV] +// * CMOVBE m32, r32 [CMOV] +// * CMOVBE r64, r64 [CMOV] +// * CMOVBE m64, r64 [CMOV] +// +func (self *Program) CMOVBE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVBE", 2, Operands { v0, v1 }) + // CMOVBE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVBE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVBE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVBE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVBE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVBE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVBE") + } + return p +} + +// CMOVC performs "Move if carry (CF == 1)". +// +// Mnemonic : CMOVC +// Supported forms : (6 forms) +// +// * CMOVC r16, r16 [CMOV] +// * CMOVC m16, r16 [CMOV] +// * CMOVC r32, r32 [CMOV] +// * CMOVC m32, r32 [CMOV] +// * CMOVC r64, r64 [CMOV] +// * CMOVC m64, r64 [CMOV] +// +func (self *Program) CMOVC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVC", 2, Operands { v0, v1 }) + // CMOVC r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVC m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVC") + } + return p +} + +// CMOVE performs "Move if equal (ZF == 1)". +// +// Mnemonic : CMOVE +// Supported forms : (6 forms) +// +// * CMOVE r16, r16 [CMOV] +// * CMOVE m16, r16 [CMOV] +// * CMOVE r32, r32 [CMOV] +// * CMOVE m32, r32 [CMOV] +// * CMOVE r64, r64 [CMOV] +// * CMOVE m64, r64 [CMOV] +// +func (self *Program) CMOVE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVE", 2, Operands { v0, v1 }) + // CMOVE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVE") + } + return p +} + +// CMOVG performs "Move if greater (ZF == 0 and SF == OF)". +// +// Mnemonic : CMOVG +// Supported forms : (6 forms) +// +// * CMOVG r16, r16 [CMOV] +// * CMOVG m16, r16 [CMOV] +// * CMOVG r32, r32 [CMOV] +// * CMOVG m32, r32 [CMOV] +// * CMOVG r64, r64 [CMOV] +// * CMOVG m64, r64 [CMOV] +// +func (self *Program) CMOVG(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVG", 2, Operands { v0, v1 }) + // CMOVG r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVG m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVG r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVG m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVG r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVG m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVG") + } + return p +} + +// CMOVGE performs "Move if greater or equal (SF == OF)". +// +// Mnemonic : CMOVGE +// Supported forms : (6 forms) +// +// * CMOVGE r16, r16 [CMOV] +// * CMOVGE m16, r16 [CMOV] +// * CMOVGE r32, r32 [CMOV] +// * CMOVGE m32, r32 [CMOV] +// * CMOVGE r64, r64 [CMOV] +// * CMOVGE m64, r64 [CMOV] +// +func (self *Program) CMOVGE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVGE", 2, Operands { v0, v1 }) + // CMOVGE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVGE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVGE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVGE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVGE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVGE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVGE") + } + return p +} + +// CMOVL performs "Move if less (SF != OF)". +// +// Mnemonic : CMOVL +// Supported forms : (6 forms) +// +// * CMOVL r16, r16 [CMOV] +// * CMOVL m16, r16 [CMOV] +// * CMOVL r32, r32 [CMOV] +// * CMOVL m32, r32 [CMOV] +// * CMOVL r64, r64 [CMOV] +// * CMOVL m64, r64 [CMOV] +// +func (self *Program) CMOVL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVL", 2, Operands { v0, v1 }) + // CMOVL r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVL m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVL") + } + return p +} + +// CMOVLE performs "Move if less or equal (ZF == 1 or SF != OF)". +// +// Mnemonic : CMOVLE +// Supported forms : (6 forms) +// +// * CMOVLE r16, r16 [CMOV] +// * CMOVLE m16, r16 [CMOV] +// * CMOVLE r32, r32 [CMOV] +// * CMOVLE m32, r32 [CMOV] +// * CMOVLE r64, r64 [CMOV] +// * CMOVLE m64, r64 [CMOV] +// +func (self *Program) CMOVLE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVLE", 2, Operands { v0, v1 }) + // CMOVLE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVLE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVLE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVLE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVLE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVLE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVLE") + } + return p +} + +// CMOVNA performs "Move if not above (CF == 1 or ZF == 1)". +// +// Mnemonic : CMOVNA +// Supported forms : (6 forms) +// +// * CMOVNA r16, r16 [CMOV] +// * CMOVNA m16, r16 [CMOV] +// * CMOVNA r32, r32 [CMOV] +// * CMOVNA m32, r32 [CMOV] +// * CMOVNA r64, r64 [CMOV] +// * CMOVNA m64, r64 [CMOV] +// +func (self *Program) CMOVNA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNA", 2, Operands { v0, v1 }) + // CMOVNA r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNA m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNA r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNA m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNA r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNA m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x46) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNA") + } + return p +} + +// CMOVNAE performs "Move if not above or equal (CF == 1)". +// +// Mnemonic : CMOVNAE +// Supported forms : (6 forms) +// +// * CMOVNAE r16, r16 [CMOV] +// * CMOVNAE m16, r16 [CMOV] +// * CMOVNAE r32, r32 [CMOV] +// * CMOVNAE m32, r32 [CMOV] +// * CMOVNAE r64, r64 [CMOV] +// * CMOVNAE m64, r64 [CMOV] +// +func (self *Program) CMOVNAE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNAE", 2, Operands { v0, v1 }) + // CMOVNAE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNAE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNAE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNAE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNAE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNAE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNAE") + } + return p +} + +// CMOVNB performs "Move if not below (CF == 0)". +// +// Mnemonic : CMOVNB +// Supported forms : (6 forms) +// +// * CMOVNB r16, r16 [CMOV] +// * CMOVNB m16, r16 [CMOV] +// * CMOVNB r32, r32 [CMOV] +// * CMOVNB m32, r32 [CMOV] +// * CMOVNB r64, r64 [CMOV] +// * CMOVNB m64, r64 [CMOV] +// +func (self *Program) CMOVNB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNB", 2, Operands { v0, v1 }) + // CMOVNB r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNB m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNB r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNB m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNB r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNB m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNB") + } + return p +} + +// CMOVNBE performs "Move if not below or equal (CF == 0 and ZF == 0)". +// +// Mnemonic : CMOVNBE +// Supported forms : (6 forms) +// +// * CMOVNBE r16, r16 [CMOV] +// * CMOVNBE m16, r16 [CMOV] +// * CMOVNBE r32, r32 [CMOV] +// * CMOVNBE m32, r32 [CMOV] +// * CMOVNBE r64, r64 [CMOV] +// * CMOVNBE m64, r64 [CMOV] +// +func (self *Program) CMOVNBE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNBE", 2, Operands { v0, v1 }) + // CMOVNBE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNBE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNBE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNBE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNBE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNBE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x47) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNBE") + } + return p +} + +// CMOVNC performs "Move if not carry (CF == 0)". +// +// Mnemonic : CMOVNC +// Supported forms : (6 forms) +// +// * CMOVNC r16, r16 [CMOV] +// * CMOVNC m16, r16 [CMOV] +// * CMOVNC r32, r32 [CMOV] +// * CMOVNC m32, r32 [CMOV] +// * CMOVNC r64, r64 [CMOV] +// * CMOVNC m64, r64 [CMOV] +// +func (self *Program) CMOVNC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNC", 2, Operands { v0, v1 }) + // CMOVNC r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNC m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x43) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNC") + } + return p +} + +// CMOVNE performs "Move if not equal (ZF == 0)". +// +// Mnemonic : CMOVNE +// Supported forms : (6 forms) +// +// * CMOVNE r16, r16 [CMOV] +// * CMOVNE m16, r16 [CMOV] +// * CMOVNE r32, r32 [CMOV] +// * CMOVNE m32, r32 [CMOV] +// * CMOVNE r64, r64 [CMOV] +// * CMOVNE m64, r64 [CMOV] +// +func (self *Program) CMOVNE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNE", 2, Operands { v0, v1 }) + // CMOVNE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNE") + } + return p +} + +// CMOVNG performs "Move if not greater (ZF == 1 or SF != OF)". +// +// Mnemonic : CMOVNG +// Supported forms : (6 forms) +// +// * CMOVNG r16, r16 [CMOV] +// * CMOVNG m16, r16 [CMOV] +// * CMOVNG r32, r32 [CMOV] +// * CMOVNG m32, r32 [CMOV] +// * CMOVNG r64, r64 [CMOV] +// * CMOVNG m64, r64 [CMOV] +// +func (self *Program) CMOVNG(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNG", 2, Operands { v0, v1 }) + // CMOVNG r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNG m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNG r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNG m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNG r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNG m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNG") + } + return p +} + +// CMOVNGE performs "Move if not greater or equal (SF != OF)". +// +// Mnemonic : CMOVNGE +// Supported forms : (6 forms) +// +// * CMOVNGE r16, r16 [CMOV] +// * CMOVNGE m16, r16 [CMOV] +// * CMOVNGE r32, r32 [CMOV] +// * CMOVNGE m32, r32 [CMOV] +// * CMOVNGE r64, r64 [CMOV] +// * CMOVNGE m64, r64 [CMOV] +// +func (self *Program) CMOVNGE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNGE", 2, Operands { v0, v1 }) + // CMOVNGE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNGE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNGE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNGE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNGE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNGE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNGE") + } + return p +} + +// CMOVNL performs "Move if not less (SF == OF)". +// +// Mnemonic : CMOVNL +// Supported forms : (6 forms) +// +// * CMOVNL r16, r16 [CMOV] +// * CMOVNL m16, r16 [CMOV] +// * CMOVNL r32, r32 [CMOV] +// * CMOVNL m32, r32 [CMOV] +// * CMOVNL r64, r64 [CMOV] +// * CMOVNL m64, r64 [CMOV] +// +func (self *Program) CMOVNL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNL", 2, Operands { v0, v1 }) + // CMOVNL r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNL m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNL r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNL m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNL") + } + return p +} + +// CMOVNLE performs "Move if not less or equal (ZF == 0 and SF == OF)". +// +// Mnemonic : CMOVNLE +// Supported forms : (6 forms) +// +// * CMOVNLE r16, r16 [CMOV] +// * CMOVNLE m16, r16 [CMOV] +// * CMOVNLE r32, r32 [CMOV] +// * CMOVNLE m32, r32 [CMOV] +// * CMOVNLE r64, r64 [CMOV] +// * CMOVNLE m64, r64 [CMOV] +// +func (self *Program) CMOVNLE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNLE", 2, Operands { v0, v1 }) + // CMOVNLE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNLE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNLE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNLE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNLE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNLE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNLE") + } + return p +} + +// CMOVNO performs "Move if not overflow (OF == 0)". +// +// Mnemonic : CMOVNO +// Supported forms : (6 forms) +// +// * CMOVNO r16, r16 [CMOV] +// * CMOVNO m16, r16 [CMOV] +// * CMOVNO r32, r32 [CMOV] +// * CMOVNO m32, r32 [CMOV] +// * CMOVNO r64, r64 [CMOV] +// * CMOVNO m64, r64 [CMOV] +// +func (self *Program) CMOVNO(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNO", 2, Operands { v0, v1 }) + // CMOVNO r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNO m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNO r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNO m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNO r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNO m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNO") + } + return p +} + +// CMOVNP performs "Move if not parity (PF == 0)". +// +// Mnemonic : CMOVNP +// Supported forms : (6 forms) +// +// * CMOVNP r16, r16 [CMOV] +// * CMOVNP m16, r16 [CMOV] +// * CMOVNP r32, r32 [CMOV] +// * CMOVNP m32, r32 [CMOV] +// * CMOVNP r64, r64 [CMOV] +// * CMOVNP m64, r64 [CMOV] +// +func (self *Program) CMOVNP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNP", 2, Operands { v0, v1 }) + // CMOVNP r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNP m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNP r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNP m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNP r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNP m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNP") + } + return p +} + +// CMOVNS performs "Move if not sign (SF == 0)". +// +// Mnemonic : CMOVNS +// Supported forms : (6 forms) +// +// * CMOVNS r16, r16 [CMOV] +// * CMOVNS m16, r16 [CMOV] +// * CMOVNS r32, r32 [CMOV] +// * CMOVNS m32, r32 [CMOV] +// * CMOVNS r64, r64 [CMOV] +// * CMOVNS m64, r64 [CMOV] +// +func (self *Program) CMOVNS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNS", 2, Operands { v0, v1 }) + // CMOVNS r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x49) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNS m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x49) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNS r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x49) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNS m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x49) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNS r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x49) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNS m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x49) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNS") + } + return p +} + +// CMOVNZ performs "Move if not zero (ZF == 0)". +// +// Mnemonic : CMOVNZ +// Supported forms : (6 forms) +// +// * CMOVNZ r16, r16 [CMOV] +// * CMOVNZ m16, r16 [CMOV] +// * CMOVNZ r32, r32 [CMOV] +// * CMOVNZ m32, r32 [CMOV] +// * CMOVNZ r64, r64 [CMOV] +// * CMOVNZ m64, r64 [CMOV] +// +func (self *Program) CMOVNZ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVNZ", 2, Operands { v0, v1 }) + // CMOVNZ r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNZ m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNZ r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNZ m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVNZ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVNZ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x45) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVNZ") + } + return p +} + +// CMOVO performs "Move if overflow (OF == 1)". +// +// Mnemonic : CMOVO +// Supported forms : (6 forms) +// +// * CMOVO r16, r16 [CMOV] +// * CMOVO m16, r16 [CMOV] +// * CMOVO r32, r32 [CMOV] +// * CMOVO m32, r32 [CMOV] +// * CMOVO r64, r64 [CMOV] +// * CMOVO m64, r64 [CMOV] +// +func (self *Program) CMOVO(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVO", 2, Operands { v0, v1 }) + // CMOVO r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVO m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVO r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVO m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVO r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVO m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVO") + } + return p +} + +// CMOVP performs "Move if parity (PF == 1)". +// +// Mnemonic : CMOVP +// Supported forms : (6 forms) +// +// * CMOVP r16, r16 [CMOV] +// * CMOVP m16, r16 [CMOV] +// * CMOVP r32, r32 [CMOV] +// * CMOVP m32, r32 [CMOV] +// * CMOVP r64, r64 [CMOV] +// * CMOVP m64, r64 [CMOV] +// +func (self *Program) CMOVP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVP", 2, Operands { v0, v1 }) + // CMOVP r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVP m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVP r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVP m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVP r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVP m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVP") + } + return p +} + +// CMOVPE performs "Move if parity even (PF == 1)". +// +// Mnemonic : CMOVPE +// Supported forms : (6 forms) +// +// * CMOVPE r16, r16 [CMOV] +// * CMOVPE m16, r16 [CMOV] +// * CMOVPE r32, r32 [CMOV] +// * CMOVPE m32, r32 [CMOV] +// * CMOVPE r64, r64 [CMOV] +// * CMOVPE m64, r64 [CMOV] +// +func (self *Program) CMOVPE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVPE", 2, Operands { v0, v1 }) + // CMOVPE r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPE m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPE r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPE m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPE r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPE m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVPE") + } + return p +} + +// CMOVPO performs "Move if parity odd (PF == 0)". +// +// Mnemonic : CMOVPO +// Supported forms : (6 forms) +// +// * CMOVPO r16, r16 [CMOV] +// * CMOVPO m16, r16 [CMOV] +// * CMOVPO r32, r32 [CMOV] +// * CMOVPO m32, r32 [CMOV] +// * CMOVPO r64, r64 [CMOV] +// * CMOVPO m64, r64 [CMOV] +// +func (self *Program) CMOVPO(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVPO", 2, Operands { v0, v1 }) + // CMOVPO r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPO m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPO r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPO m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVPO r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVPO m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x4b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVPO") + } + return p +} + +// CMOVS performs "Move if sign (SF == 1)". +// +// Mnemonic : CMOVS +// Supported forms : (6 forms) +// +// * CMOVS r16, r16 [CMOV] +// * CMOVS m16, r16 [CMOV] +// * CMOVS r32, r32 [CMOV] +// * CMOVS m32, r32 [CMOV] +// * CMOVS r64, r64 [CMOV] +// * CMOVS m64, r64 [CMOV] +// +func (self *Program) CMOVS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVS", 2, Operands { v0, v1 }) + // CMOVS r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x48) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVS m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x48) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVS r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x48) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVS m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x48) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVS r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x48) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVS m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x48) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVS") + } + return p +} + +// CMOVZ performs "Move if zero (ZF == 1)". +// +// Mnemonic : CMOVZ +// Supported forms : (6 forms) +// +// * CMOVZ r16, r16 [CMOV] +// * CMOVZ m16, r16 [CMOV] +// * CMOVZ r32, r32 [CMOV] +// * CMOVZ m32, r32 [CMOV] +// * CMOVZ r64, r64 [CMOV] +// * CMOVZ m64, r64 [CMOV] +// +func (self *Program) CMOVZ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMOVZ", 2, Operands { v0, v1 }) + // CMOVZ r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVZ m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVZ r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVZ m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMOVZ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMOVZ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_CMOV) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMOVZ") + } + return p +} + +// CMPB performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (6 forms) +// +// * CMPB imm8, al +// * CMPB imm8, r8 +// * CMPB r8, r8 +// * CMPB m8, r8 +// * CMPB imm8, m8 +// * CMPB r8, m8 +// +func (self *Program) CMPB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPB", 2, Operands { v0, v1 }) + // CMPB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x3c) + m.imm1(toImmAny(v[0])) + }) + } + // CMPB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x38) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x3a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x38) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPB") + } + return p +} + +// CMPL performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (8 forms) +// +// * CMPL imm32, eax +// * CMPL imm8, r32 +// * CMPL imm32, r32 +// * CMPL r32, r32 +// * CMPL m32, r32 +// * CMPL imm8, m32 +// * CMPL imm32, m32 +// * CMPL r32, m32 +// +func (self *Program) CMPL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPL", 2, Operands { v0, v1 }) + // CMPL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x3d) + m.imm4(toImmAny(v[0])) + }) + } + // CMPL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // CMPL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x39) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(7, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // CMPL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x39) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPL") + } + return p +} + +// CMPPD performs "Compare Packed Double-Precision Floating-Point Values". +// +// Mnemonic : CMPPD +// Supported forms : (2 forms) +// +// * CMPPD imm8, xmm, xmm [SSE2] +// * CMPPD imm8, m128, xmm [SSE2] +// +func (self *Program) CMPPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPPD", 3, Operands { v0, v1, v2 }) + // CMPPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPPD") + } + return p +} + +// CMPPS performs "Compare Packed Single-Precision Floating-Point Values". +// +// Mnemonic : CMPPS +// Supported forms : (2 forms) +// +// * CMPPS imm8, xmm, xmm [SSE] +// * CMPPS imm8, m128, xmm [SSE] +// +func (self *Program) CMPPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPPS", 3, Operands { v0, v1, v2 }) + // CMPPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPPS") + } + return p +} + +// CMPQ performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (8 forms) +// +// * CMPQ imm32, rax +// * CMPQ imm8, r64 +// * CMPQ imm32, r64 +// * CMPQ r64, r64 +// * CMPQ m64, r64 +// * CMPQ imm8, m64 +// * CMPQ imm32, m64 +// * CMPQ r64, m64 +// +func (self *Program) CMPQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPQ", 2, Operands { v0, v1 }) + // CMPQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x3d) + m.imm4(toImmAny(v[0])) + }) + } + // CMPQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xf8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // CMPQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x39) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(7, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // CMPQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x39) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPQ") + } + return p +} + +// CMPSD performs "Compare Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : CMPSD +// Supported forms : (2 forms) +// +// * CMPSD imm8, xmm, xmm [SSE2] +// * CMPSD imm8, m64, xmm [SSE2] +// +func (self *Program) CMPSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPSD", 3, Operands { v0, v1, v2 }) + // CMPSD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPSD imm8, m64, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPSD") + } + return p +} + +// CMPSS performs "Compare Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : CMPSS +// Supported forms : (2 forms) +// +// * CMPSS imm8, xmm, xmm [SSE] +// * CMPSS imm8, m32, xmm [SSE] +// +func (self *Program) CMPSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("CMPSS", 3, Operands { v0, v1, v2 }) + // CMPSS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPSS imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for CMPSS") + } + return p +} + +// CMPW performs "Compare Two Operands". +// +// Mnemonic : CMP +// Supported forms : (8 forms) +// +// * CMPW imm16, ax +// * CMPW imm8, r16 +// * CMPW imm16, r16 +// * CMPW r16, r16 +// * CMPW m16, r16 +// * CMPW imm8, m16 +// * CMPW imm16, m16 +// * CMPW r16, m16 +// +func (self *Program) CMPW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPW", 2, Operands { v0, v1 }) + // CMPW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x3d) + m.imm2(toImmAny(v[0])) + }) + } + // CMPW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // CMPW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // CMPW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x39) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CMPW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CMPW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // CMPW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(7, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // CMPW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x39) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPW") + } + return p +} + +// CMPXCHG16B performs "Compare and Exchange 16 Bytes". +// +// Mnemonic : CMPXCHG16B +// Supported forms : (1 form) +// +// * CMPXCHG16B m128 +// +func (self *Program) CMPXCHG16B(v0 interface{}) *Instruction { + p := self.alloc("CMPXCHG16B", 1, Operands { v0 }) + // CMPXCHG16B m128 + if isM128(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0x0f) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHG16B") + } + return p +} + +// CMPXCHG8B performs "Compare and Exchange 8 Bytes". +// +// Mnemonic : CMPXCHG8B +// Supported forms : (1 form) +// +// * CMPXCHG8B m64 +// +func (self *Program) CMPXCHG8B(v0 interface{}) *Instruction { + p := self.alloc("CMPXCHG8B", 1, Operands { v0 }) + // CMPXCHG8B m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHG8B") + } + return p +} + +// CMPXCHGB performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGB r8, r8 +// * CMPXCHGB r8, m8 +// +func (self *Program) CMPXCHGB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGB", 2, Operands { v0, v1 }) + // CMPXCHGB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x0f) + m.emit(0xb0) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xb0) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGB") + } + return p +} + +// CMPXCHGL performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGL r32, r32 +// * CMPXCHGL r32, m32 +// +func (self *Program) CMPXCHGL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGL", 2, Operands { v0, v1 }) + // CMPXCHGL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGL") + } + return p +} + +// CMPXCHGQ performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGQ r64, r64 +// * CMPXCHGQ r64, m64 +// +func (self *Program) CMPXCHGQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGQ", 2, Operands { v0, v1 }) + // CMPXCHGQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xb1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xb1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGQ") + } + return p +} + +// CMPXCHGW performs "Compare and Exchange". +// +// Mnemonic : CMPXCHG +// Supported forms : (2 forms) +// +// * CMPXCHGW r16, r16 +// * CMPXCHGW r16, m16 +// +func (self *Program) CMPXCHGW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CMPXCHGW", 2, Operands { v0, v1 }) + // CMPXCHGW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xb1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // CMPXCHGW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xb1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CMPXCHGW") + } + return p +} + +// COMISD performs "Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : COMISD +// Supported forms : (2 forms) +// +// * COMISD xmm, xmm [SSE2] +// * COMISD m64, xmm [SSE2] +// +func (self *Program) COMISD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("COMISD", 2, Operands { v0, v1 }) + // COMISD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // COMISD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for COMISD") + } + return p +} + +// COMISS performs "Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : COMISS +// Supported forms : (2 forms) +// +// * COMISS xmm, xmm [SSE] +// * COMISS m32, xmm [SSE] +// +func (self *Program) COMISS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("COMISS", 2, Operands { v0, v1 }) + // COMISS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // COMISS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for COMISS") + } + return p +} + +// CPUID performs "CPU Identification". +// +// Mnemonic : CPUID +// Supported forms : (1 form) +// +// * CPUID [CPUID] +// +func (self *Program) CPUID() *Instruction { + p := self.alloc("CPUID", 0, Operands { }) + // CPUID + self.require(ISA_CPUID) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xa2) + }) + return p +} + +// CQTO performs "Convert Quadword to Octaword". +// +// Mnemonic : CQO +// Supported forms : (1 form) +// +// * CQTO +// +func (self *Program) CQTO() *Instruction { + p := self.alloc("CQTO", 0, Operands { }) + // CQTO + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x99) + }) + return p +} + +// CRC32B performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (4 forms) +// +// * CRC32B r8, r32 [SSE4.2] +// * CRC32B m8, r32 [SSE4.2] +// * CRC32B r8, r64 [SSE4.2] +// * CRC32B m8, r64 [SSE4.2] +// +func (self *Program) CRC32B(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32B", 2, Operands { v0, v1 }) + // CRC32B r8, r32 + if isReg8(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32B m8, r32 + if isM8(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CRC32B r8, r64 + if isReg8(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32B m8, r64 + if isM8(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32B") + } + return p +} + +// CRC32L performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (2 forms) +// +// * CRC32L r32, r32 [SSE4.2] +// * CRC32L m32, r32 [SSE4.2] +// +func (self *Program) CRC32L(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32L", 2, Operands { v0, v1 }) + // CRC32L r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32L m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32L") + } + return p +} + +// CRC32Q performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (2 forms) +// +// * CRC32Q r64, r64 [SSE4.2] +// * CRC32Q m64, r64 [SSE4.2] +// +func (self *Program) CRC32Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32Q", 2, Operands { v0, v1 }) + // CRC32Q r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32Q m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32Q") + } + return p +} + +// CRC32W performs "Accumulate CRC32 Value". +// +// Mnemonic : CRC32 +// Supported forms : (2 forms) +// +// * CRC32W r16, r32 [SSE4.2] +// * CRC32W m16, r32 [SSE4.2] +// +func (self *Program) CRC32W(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CRC32W", 2, Operands { v0, v1 }) + // CRC32W r16, r32 + if isReg16(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CRC32W m16, r32 + if isM16(v0) && isReg32(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CRC32W") + } + return p +} + +// CVTDQ2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". +// +// Mnemonic : CVTDQ2PD +// Supported forms : (2 forms) +// +// * CVTDQ2PD xmm, xmm [SSE2] +// * CVTDQ2PD m64, xmm [SSE2] +// +func (self *Program) CVTDQ2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTDQ2PD", 2, Operands { v0, v1 }) + // CVTDQ2PD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTDQ2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTDQ2PD") + } + return p +} + +// CVTDQ2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". +// +// Mnemonic : CVTDQ2PS +// Supported forms : (2 forms) +// +// * CVTDQ2PS xmm, xmm [SSE2] +// * CVTDQ2PS m128, xmm [SSE2] +// +func (self *Program) CVTDQ2PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTDQ2PS", 2, Operands { v0, v1 }) + // CVTDQ2PS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTDQ2PS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTDQ2PS") + } + return p +} + +// CVTPD2DQ performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPD2DQ +// Supported forms : (2 forms) +// +// * CVTPD2DQ xmm, xmm [SSE2] +// * CVTPD2DQ m128, xmm [SSE2] +// +func (self *Program) CVTPD2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPD2DQ", 2, Operands { v0, v1 }) + // CVTPD2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPD2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPD2DQ") + } + return p +} + +// CVTPD2PI performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPD2PI +// Supported forms : (2 forms) +// +// * CVTPD2PI xmm, mm [SSE] +// * CVTPD2PI m128, mm [SSE] +// +func (self *Program) CVTPD2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPD2PI", 2, Operands { v0, v1 }) + // CVTPD2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPD2PI m128, mm + if isM128(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPD2PI") + } + return p +} + +// CVTPD2PS performs "Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values". +// +// Mnemonic : CVTPD2PS +// Supported forms : (2 forms) +// +// * CVTPD2PS xmm, xmm [SSE2] +// * CVTPD2PS m128, xmm [SSE2] +// +func (self *Program) CVTPD2PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPD2PS", 2, Operands { v0, v1 }) + // CVTPD2PS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPD2PS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPD2PS") + } + return p +} + +// CVTPI2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". +// +// Mnemonic : CVTPI2PD +// Supported forms : (2 forms) +// +// * CVTPI2PD mm, xmm [SSE2] +// * CVTPI2PD m64, xmm [SSE2] +// +func (self *Program) CVTPI2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPI2PD", 2, Operands { v0, v1 }) + // CVTPI2PD mm, xmm + if isMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPI2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPI2PD") + } + return p +} + +// CVTPI2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". +// +// Mnemonic : CVTPI2PS +// Supported forms : (2 forms) +// +// * CVTPI2PS mm, xmm [SSE] +// * CVTPI2PS m64, xmm [SSE] +// +func (self *Program) CVTPI2PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPI2PS", 2, Operands { v0, v1 }) + // CVTPI2PS mm, xmm + if isMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPI2PS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPI2PS") + } + return p +} + +// CVTPS2DQ performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPS2DQ +// Supported forms : (2 forms) +// +// * CVTPS2DQ xmm, xmm [SSE2] +// * CVTPS2DQ m128, xmm [SSE2] +// +func (self *Program) CVTPS2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPS2DQ", 2, Operands { v0, v1 }) + // CVTPS2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPS2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPS2DQ") + } + return p +} + +// CVTPS2PD performs "Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values". +// +// Mnemonic : CVTPS2PD +// Supported forms : (2 forms) +// +// * CVTPS2PD xmm, xmm [SSE2] +// * CVTPS2PD m64, xmm [SSE2] +// +func (self *Program) CVTPS2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPS2PD", 2, Operands { v0, v1 }) + // CVTPS2PD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPS2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPS2PD") + } + return p +} + +// CVTPS2PI performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTPS2PI +// Supported forms : (2 forms) +// +// * CVTPS2PI xmm, mm [SSE] +// * CVTPS2PI m64, mm [SSE] +// +func (self *Program) CVTPS2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTPS2PI", 2, Operands { v0, v1 }) + // CVTPS2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTPS2PI m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTPS2PI") + } + return p +} + +// CVTSD2SI performs "Convert Scalar Double-Precision FP Value to Integer". +// +// Mnemonic : CVTSD2SI +// Supported forms : (4 forms) +// +// * CVTSD2SI xmm, r32 [SSE2] +// * CVTSD2SI m64, r32 [SSE2] +// * CVTSD2SI xmm, r64 [SSE2] +// * CVTSD2SI m64, r64 [SSE2] +// +func (self *Program) CVTSD2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSD2SI", 2, Operands { v0, v1 }) + // CVTSD2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSD2SI m64, r32 + if isM64(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSD2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSD2SI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSD2SI") + } + return p +} + +// CVTSD2SS performs "Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value". +// +// Mnemonic : CVTSD2SS +// Supported forms : (2 forms) +// +// * CVTSD2SS xmm, xmm [SSE2] +// * CVTSD2SS m64, xmm [SSE2] +// +func (self *Program) CVTSD2SS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSD2SS", 2, Operands { v0, v1 }) + // CVTSD2SS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSD2SS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSD2SS") + } + return p +} + +// CVTSI2SD performs "Convert Dword Integer to Scalar Double-Precision FP Value". +// +// Mnemonic : CVTSI2SD +// Supported forms : (4 forms) +// +// * CVTSI2SD r32, xmm [SSE2] +// * CVTSI2SD r64, xmm [SSE2] +// * CVTSI2SD m32, xmm [SSE2] +// * CVTSI2SD m64, xmm [SSE2] +// +func (self *Program) CVTSI2SD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSI2SD", 2, Operands { v0, v1 }) + // CVTSI2SD r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SD r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSI2SD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSI2SD") + } + return p +} + +// CVTSI2SS performs "Convert Dword Integer to Scalar Single-Precision FP Value". +// +// Mnemonic : CVTSI2SS +// Supported forms : (4 forms) +// +// * CVTSI2SS r32, xmm [SSE] +// * CVTSI2SS r64, xmm [SSE] +// * CVTSI2SS m32, xmm [SSE] +// * CVTSI2SS m64, xmm [SSE] +// +func (self *Program) CVTSI2SS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSI2SS", 2, Operands { v0, v1 }) + // CVTSI2SS r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SS r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSI2SS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSI2SS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSI2SS") + } + return p +} + +// CVTSS2SD performs "Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value". +// +// Mnemonic : CVTSS2SD +// Supported forms : (2 forms) +// +// * CVTSS2SD xmm, xmm [SSE2] +// * CVTSS2SD m32, xmm [SSE2] +// +func (self *Program) CVTSS2SD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSS2SD", 2, Operands { v0, v1 }) + // CVTSS2SD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSS2SD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSS2SD") + } + return p +} + +// CVTSS2SI performs "Convert Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : CVTSS2SI +// Supported forms : (4 forms) +// +// * CVTSS2SI xmm, r32 [SSE] +// * CVTSS2SI m32, r32 [SSE] +// * CVTSS2SI xmm, r64 [SSE] +// * CVTSS2SI m32, r64 [SSE] +// +func (self *Program) CVTSS2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTSS2SI", 2, Operands { v0, v1 }) + // CVTSS2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSS2SI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTSS2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTSS2SI m32, r64 + if isM32(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTSS2SI") + } + return p +} + +// CVTTPD2DQ performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPD2DQ +// Supported forms : (2 forms) +// +// * CVTTPD2DQ xmm, xmm [SSE2] +// * CVTTPD2DQ m128, xmm [SSE2] +// +func (self *Program) CVTTPD2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPD2DQ", 2, Operands { v0, v1 }) + // CVTTPD2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPD2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPD2DQ") + } + return p +} + +// CVTTPD2PI performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPD2PI +// Supported forms : (2 forms) +// +// * CVTTPD2PI xmm, mm [SSE2] +// * CVTTPD2PI m128, mm [SSE2] +// +func (self *Program) CVTTPD2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPD2PI", 2, Operands { v0, v1 }) + // CVTTPD2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPD2PI m128, mm + if isM128(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPD2PI") + } + return p +} + +// CVTTPS2DQ performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPS2DQ +// Supported forms : (2 forms) +// +// * CVTTPS2DQ xmm, xmm [SSE2] +// * CVTTPS2DQ m128, xmm [SSE2] +// +func (self *Program) CVTTPS2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPS2DQ", 2, Operands { v0, v1 }) + // CVTTPS2DQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPS2DQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPS2DQ") + } + return p +} + +// CVTTPS2PI performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : CVTTPS2PI +// Supported forms : (2 forms) +// +// * CVTTPS2PI xmm, mm [SSE] +// * CVTTPS2PI m64, mm [SSE] +// +func (self *Program) CVTTPS2PI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTPS2PI", 2, Operands { v0, v1 }) + // CVTTPS2PI xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTPS2PI m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTPS2PI") + } + return p +} + +// CVTTSD2SI performs "Convert with Truncation Scalar Double-Precision FP Value to Signed Integer". +// +// Mnemonic : CVTTSD2SI +// Supported forms : (4 forms) +// +// * CVTTSD2SI xmm, r32 [SSE2] +// * CVTTSD2SI m64, r32 [SSE2] +// * CVTTSD2SI xmm, r64 [SSE2] +// * CVTTSD2SI m64, r64 [SSE2] +// +func (self *Program) CVTTSD2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTSD2SI", 2, Operands { v0, v1 }) + // CVTTSD2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSD2SI m64, r32 + if isM64(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTTSD2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSD2SI m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTSD2SI") + } + return p +} + +// CVTTSS2SI performs "Convert with Truncation Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : CVTTSS2SI +// Supported forms : (4 forms) +// +// * CVTTSS2SI xmm, r32 [SSE] +// * CVTTSS2SI m32, r32 [SSE] +// * CVTTSS2SI xmm, r64 [SSE] +// * CVTTSS2SI m32, r64 [SSE] +// +func (self *Program) CVTTSS2SI(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("CVTTSS2SI", 2, Operands { v0, v1 }) + // CVTTSS2SI xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSS2SI m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // CVTTSS2SI xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // CVTTSS2SI m32, r64 + if isM32(v0) && isReg64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for CVTTSS2SI") + } + return p +} + +// CWTD performs "Convert Word to Doubleword". +// +// Mnemonic : CWD +// Supported forms : (1 form) +// +// * CWTD +// +func (self *Program) CWTD() *Instruction { + p := self.alloc("CWTD", 0, Operands { }) + // CWTD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x99) + }) + return p +} + +// CWTL performs "Convert Word to Doubleword". +// +// Mnemonic : CWDE +// Supported forms : (1 form) +// +// * CWTL +// +func (self *Program) CWTL() *Instruction { + p := self.alloc("CWTL", 0, Operands { }) + // CWTL + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x98) + }) + return p +} + +// DECB performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECB r8 +// * DECB m8 +// +func (self *Program) DECB(v0 interface{}) *Instruction { + p := self.alloc("DECB", 1, Operands { v0 }) + // DECB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xfe) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xfe) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECB") + } + return p +} + +// DECL performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECL r32 +// * DECL m32 +// +func (self *Program) DECL(v0 interface{}) *Instruction { + p := self.alloc("DECL", 1, Operands { v0 }) + // DECL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECL") + } + return p +} + +// DECQ performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECQ r64 +// * DECQ m64 +// +func (self *Program) DECQ(v0 interface{}) *Instruction { + p := self.alloc("DECQ", 1, Operands { v0 }) + // DECQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xff) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xff) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECQ") + } + return p +} + +// DECW performs "Decrement by 1". +// +// Mnemonic : DEC +// Supported forms : (2 forms) +// +// * DECW r16 +// * DECW m16 +// +func (self *Program) DECW(v0 interface{}) *Instruction { + p := self.alloc("DECW", 1, Operands { v0 }) + // DECW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc8 | lcode(v[0])) + }) + } + // DECW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DECW") + } + return p +} + +// DIVB performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVB r8 +// * DIVB m8 +// +func (self *Program) DIVB(v0 interface{}) *Instruction { + p := self.alloc("DIVB", 1, Operands { v0 }) + // DIVB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVB") + } + return p +} + +// DIVL performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVL r32 +// * DIVL m32 +// +func (self *Program) DIVL(v0 interface{}) *Instruction { + p := self.alloc("DIVL", 1, Operands { v0 }) + // DIVL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVL") + } + return p +} + +// DIVPD performs "Divide Packed Double-Precision Floating-Point Values". +// +// Mnemonic : DIVPD +// Supported forms : (2 forms) +// +// * DIVPD xmm, xmm [SSE2] +// * DIVPD m128, xmm [SSE2] +// +func (self *Program) DIVPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVPD", 2, Operands { v0, v1 }) + // DIVPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVPD") + } + return p +} + +// DIVPS performs "Divide Packed Single-Precision Floating-Point Values". +// +// Mnemonic : DIVPS +// Supported forms : (2 forms) +// +// * DIVPS xmm, xmm [SSE] +// * DIVPS m128, xmm [SSE] +// +func (self *Program) DIVPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVPS", 2, Operands { v0, v1 }) + // DIVPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVPS") + } + return p +} + +// DIVQ performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVQ r64 +// * DIVQ m64 +// +func (self *Program) DIVQ(v0 interface{}) *Instruction { + p := self.alloc("DIVQ", 1, Operands { v0 }) + // DIVQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVQ") + } + return p +} + +// DIVSD performs "Divide Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : DIVSD +// Supported forms : (2 forms) +// +// * DIVSD xmm, xmm [SSE2] +// * DIVSD m64, xmm [SSE2] +// +func (self *Program) DIVSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVSD", 2, Operands { v0, v1 }) + // DIVSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVSD") + } + return p +} + +// DIVSS performs "Divide Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : DIVSS +// Supported forms : (2 forms) +// +// * DIVSS xmm, xmm [SSE] +// * DIVSS m32, xmm [SSE] +// +func (self *Program) DIVSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("DIVSS", 2, Operands { v0, v1 }) + // DIVSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // DIVSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVSS") + } + return p +} + +// DIVW performs "Unsigned Divide". +// +// Mnemonic : DIV +// Supported forms : (2 forms) +// +// * DIVW r16 +// * DIVW m16 +// +func (self *Program) DIVW(v0 interface{}) *Instruction { + p := self.alloc("DIVW", 1, Operands { v0 }) + // DIVW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // DIVW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for DIVW") + } + return p +} + +// DPPD performs "Dot Product of Packed Double Precision Floating-Point Values". +// +// Mnemonic : DPPD +// Supported forms : (2 forms) +// +// * DPPD imm8, xmm, xmm [SSE4.1] +// * DPPD imm8, m128, xmm [SSE4.1] +// +func (self *Program) DPPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("DPPD", 3, Operands { v0, v1, v2 }) + // DPPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // DPPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x41) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for DPPD") + } + return p +} + +// DPPS performs "Dot Product of Packed Single Precision Floating-Point Values". +// +// Mnemonic : DPPS +// Supported forms : (2 forms) +// +// * DPPS imm8, xmm, xmm [SSE4.1] +// * DPPS imm8, m128, xmm [SSE4.1] +// +func (self *Program) DPPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("DPPS", 3, Operands { v0, v1, v2 }) + // DPPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // DPPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for DPPS") + } + return p +} + +// EMMS performs "Exit MMX State". +// +// Mnemonic : EMMS +// Supported forms : (1 form) +// +// * EMMS [MMX] +// +func (self *Program) EMMS() *Instruction { + p := self.alloc("EMMS", 0, Operands { }) + // EMMS + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x77) + }) + return p +} + +// EXTRACTPS performs "Extract Packed Single Precision Floating-Point Value". +// +// Mnemonic : EXTRACTPS +// Supported forms : (2 forms) +// +// * EXTRACTPS imm8, xmm, r32 [SSE4.1] +// * EXTRACTPS imm8, xmm, m32 [SSE4.1] +// +func (self *Program) EXTRACTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("EXTRACTPS", 3, Operands { v0, v1, v2 }) + // EXTRACTPS imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // EXTRACTPS imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for EXTRACTPS") + } + return p +} + +// EXTRQ performs "Extract Field". +// +// Mnemonic : EXTRQ +// Supported forms : (2 forms) +// +// * EXTRQ xmm, xmm [SSE4A] +// * EXTRQ imm8, imm8, xmm [SSE4A] +// +func (self *Program) EXTRQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("EXTRQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("EXTRQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction EXTRQ takes 2 or 3 operands") + } + // EXTRQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // EXTRQ imm8, imm8, xmm + if len(vv) == 1 && isImm8(v0) && isImm8(v1) && isXMM(vv[0]) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[2], false) + m.emit(0x0f) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2])) + m.imm1(toImmAny(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for EXTRQ") + } + return p +} + +// FEMMS performs "Fast Exit Multimedia State". +// +// Mnemonic : FEMMS +// Supported forms : (1 form) +// +// * FEMMS [FEMMS] +// +func (self *Program) FEMMS() *Instruction { + p := self.alloc("FEMMS", 0, Operands { }) + // FEMMS + self.require(ISA_FEMMS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x0e) + }) + return p +} + +// HADDPD performs "Packed Double-FP Horizontal Add". +// +// Mnemonic : HADDPD +// Supported forms : (2 forms) +// +// * HADDPD xmm, xmm [SSE3] +// * HADDPD m128, xmm [SSE3] +// +func (self *Program) HADDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HADDPD", 2, Operands { v0, v1 }) + // HADDPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HADDPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HADDPD") + } + return p +} + +// HADDPS performs "Packed Single-FP Horizontal Add". +// +// Mnemonic : HADDPS +// Supported forms : (2 forms) +// +// * HADDPS xmm, xmm [SSE3] +// * HADDPS m128, xmm [SSE3] +// +func (self *Program) HADDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HADDPS", 2, Operands { v0, v1 }) + // HADDPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HADDPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HADDPS") + } + return p +} + +// HSUBPD performs "Packed Double-FP Horizontal Subtract". +// +// Mnemonic : HSUBPD +// Supported forms : (2 forms) +// +// * HSUBPD xmm, xmm [SSE3] +// * HSUBPD m128, xmm [SSE3] +// +func (self *Program) HSUBPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HSUBPD", 2, Operands { v0, v1 }) + // HSUBPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HSUBPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HSUBPD") + } + return p +} + +// HSUBPS performs "Packed Single-FP Horizontal Subtract". +// +// Mnemonic : HSUBPS +// Supported forms : (2 forms) +// +// * HSUBPS xmm, xmm [SSE3] +// * HSUBPS m128, xmm [SSE3] +// +func (self *Program) HSUBPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("HSUBPS", 2, Operands { v0, v1 }) + // HSUBPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // HSUBPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for HSUBPS") + } + return p +} + +// IDIVB performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVB r8 +// * IDIVB m8 +// +func (self *Program) IDIVB(v0 interface{}) *Instruction { + p := self.alloc("IDIVB", 1, Operands { v0 }) + // IDIVB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVB") + } + return p +} + +// IDIVL performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVL r32 +// * IDIVL m32 +// +func (self *Program) IDIVL(v0 interface{}) *Instruction { + p := self.alloc("IDIVL", 1, Operands { v0 }) + // IDIVL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVL") + } + return p +} + +// IDIVQ performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVQ r64 +// * IDIVQ m64 +// +func (self *Program) IDIVQ(v0 interface{}) *Instruction { + p := self.alloc("IDIVQ", 1, Operands { v0 }) + // IDIVQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVQ") + } + return p +} + +// IDIVW performs "Signed Divide". +// +// Mnemonic : IDIV +// Supported forms : (2 forms) +// +// * IDIVW r16 +// * IDIVW m16 +// +func (self *Program) IDIVW(v0 interface{}) *Instruction { + p := self.alloc("IDIVW", 1, Operands { v0 }) + // IDIVW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // IDIVW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IDIVW") + } + return p +} + +// IMULB performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (2 forms) +// +// * IMULB r8 +// * IMULB m8 +// +func (self *Program) IMULB(v0 interface{}) *Instruction { + p := self.alloc("IMULB", 1, Operands { v0 }) + // IMULB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(5, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for IMULB") + } + return p +} + +// IMULL performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (8 forms) +// +// * IMULL r32 +// * IMULL m32 +// * IMULL r32, r32 +// * IMULL m32, r32 +// * IMULL imm8, r32, r32 +// * IMULL imm32, r32, r32 +// * IMULL imm8, m32, r32 +// * IMULL imm32, m32, r32 +// +func (self *Program) IMULL(v0 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("IMULL", 1, Operands { v0 }) + case 1 : p = self.alloc("IMULL", 2, Operands { v0, vv[0] }) + case 2 : p = self.alloc("IMULL", 3, Operands { v0, vv[0], vv[1] }) + default : panic("instruction IMULL takes 1 or 2 or 3 operands") + } + // IMULL r32 + if len(vv) == 0 && isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULL m32 + if len(vv) == 0 && isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(5, addr(v[0]), 1) + }) + } + // IMULL r32, r32 + if len(vv) == 1 && isReg32(v0) && isReg32(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // IMULL m32, r32 + if len(vv) == 1 && isM32(v0) && isReg32(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xaf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // IMULL imm8, r32, r32 + if len(vv) == 2 && isImm8(v0) && isReg32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // IMULL imm32, r32, r32 + if len(vv) == 2 && isImm32(v0) && isReg32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // IMULL imm8, m32, r32 + if len(vv) == 2 && isImm8(v0) && isM32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // IMULL imm32, m32, r32 + if len(vv) == 2 && isImm32(v0) && isM32(vv[0]) && isReg32(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for IMULL") + } + return p +} + +// IMULQ performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (8 forms) +// +// * IMULQ r64 +// * IMULQ m64 +// * IMULQ r64, r64 +// * IMULQ m64, r64 +// * IMULQ imm8, r64, r64 +// * IMULQ imm32, r64, r64 +// * IMULQ imm8, m64, r64 +// * IMULQ imm32, m64, r64 +// +func (self *Program) IMULQ(v0 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("IMULQ", 1, Operands { v0 }) + case 1 : p = self.alloc("IMULQ", 2, Operands { v0, vv[0] }) + case 2 : p = self.alloc("IMULQ", 3, Operands { v0, vv[0], vv[1] }) + default : panic("instruction IMULQ takes 1 or 2 or 3 operands") + } + // IMULQ r64 + if len(vv) == 0 && isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULQ m64 + if len(vv) == 0 && isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(5, addr(v[0]), 1) + }) + } + // IMULQ r64, r64 + if len(vv) == 1 && isReg64(v0) && isReg64(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // IMULQ m64, r64 + if len(vv) == 1 && isM64(v0) && isReg64(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xaf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // IMULQ imm8, r64, r64 + if len(vv) == 2 && isImm8(v0) && isReg64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // IMULQ imm32, r64, r64 + if len(vv) == 2 && isImm32(v0) && isReg64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // IMULQ imm8, m64, r64 + if len(vv) == 2 && isImm8(v0) && isM64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[2]), addr(v[1])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // IMULQ imm32, m64, r64 + if len(vv) == 2 && isImm32(v0) && isM64(vv[0]) && isReg64(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[2]), addr(v[1])) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for IMULQ") + } + return p +} + +// IMULW performs "Signed Multiply". +// +// Mnemonic : IMUL +// Supported forms : (8 forms) +// +// * IMULW r16 +// * IMULW m16 +// * IMULW r16, r16 +// * IMULW m16, r16 +// * IMULW imm8, r16, r16 +// * IMULW imm16, r16, r16 +// * IMULW imm8, m16, r16 +// * IMULW imm16, m16, r16 +// +func (self *Program) IMULW(v0 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("IMULW", 1, Operands { v0 }) + case 1 : p = self.alloc("IMULW", 2, Operands { v0, vv[0] }) + case 2 : p = self.alloc("IMULW", 3, Operands { v0, vv[0], vv[1] }) + default : panic("instruction IMULW takes 1 or 2 or 3 operands") + } + // IMULW r16 + if len(vv) == 0 && isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe8 | lcode(v[0])) + }) + } + // IMULW m16 + if len(vv) == 0 && isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(5, addr(v[0]), 1) + }) + } + // IMULW r16, r16 + if len(vv) == 1 && isReg16(v0) && isReg16(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // IMULW m16, r16 + if len(vv) == 1 && isM16(v0) && isReg16(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xaf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // IMULW imm8, r16, r16 + if len(vv) == 2 && isImm8(v0) && isReg16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // IMULW imm16, r16, r16 + if len(vv) == 2 && isImm16(v0) && isReg16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // IMULW imm8, m16, r16 + if len(vv) == 2 && isImm8(v0) && isM16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // IMULW imm16, m16, r16 + if len(vv) == 2 && isImm16(v0) && isM16(vv[0]) && isReg16(vv[1]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for IMULW") + } + return p +} + +// INCB performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCB r8 +// * INCB m8 +// +func (self *Program) INCB(v0 interface{}) *Instruction { + p := self.alloc("INCB", 1, Operands { v0 }) + // INCB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xfe) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCB") + } + return p +} + +// INCL performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCL r32 +// * INCL m32 +// +func (self *Program) INCL(v0 interface{}) *Instruction { + p := self.alloc("INCL", 1, Operands { v0 }) + // INCL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCL") + } + return p +} + +// INCQ performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCQ r64 +// * INCQ m64 +// +func (self *Program) INCQ(v0 interface{}) *Instruction { + p := self.alloc("INCQ", 1, Operands { v0 }) + // INCQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xff) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xff) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCQ") + } + return p +} + +// INCW performs "Increment by 1". +// +// Mnemonic : INC +// Supported forms : (2 forms) +// +// * INCW r16 +// * INCW m16 +// +func (self *Program) INCW(v0 interface{}) *Instruction { + p := self.alloc("INCW", 1, Operands { v0 }) + // INCW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xc0 | lcode(v[0])) + }) + } + // INCW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for INCW") + } + return p +} + +// INSERTPS performs "Insert Packed Single Precision Floating-Point Value". +// +// Mnemonic : INSERTPS +// Supported forms : (2 forms) +// +// * INSERTPS imm8, xmm, xmm [SSE4.1] +// * INSERTPS imm8, m32, xmm [SSE4.1] +// +func (self *Program) INSERTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("INSERTPS", 3, Operands { v0, v1, v2 }) + // INSERTPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x21) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // INSERTPS imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x21) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for INSERTPS") + } + return p +} + +// INSERTQ performs "Insert Field". +// +// Mnemonic : INSERTQ +// Supported forms : (2 forms) +// +// * INSERTQ xmm, xmm [SSE4A] +// * INSERTQ imm8, imm8, xmm, xmm [SSE4A] +// +func (self *Program) INSERTQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("INSERTQ", 2, Operands { v0, v1 }) + case 2 : p = self.alloc("INSERTQ", 4, Operands { v0, v1, vv[0], vv[1] }) + default : panic("instruction INSERTQ takes 2 or 4 operands") + } + // INSERTQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // INSERTQ imm8, imm8, xmm, xmm + if len(vv) == 2 && isImm8(v0) && isImm8(v1) && isXMM(vv[0]) && isXMM(vv[1]) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[3]), v[2], false) + m.emit(0x0f) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for INSERTQ") + } + return p +} + +// INT performs "Call to Interrupt Procedure". +// +// Mnemonic : INT +// Supported forms : (2 forms) +// +// * INT 3 +// * INT imm8 +// +func (self *Program) INT(v0 interface{}) *Instruction { + p := self.alloc("INT", 1, Operands { v0 }) + // INT 3 + if isConst3(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xcc) + }) + } + // INT imm8 + if isImm8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xcd) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for INT") + } + return p +} + +// JA performs "Jump if above (CF == 0 and ZF == 0)". +// +// Mnemonic : JA +// Supported forms : (2 forms) +// +// * JA rel8 +// * JA rel32 +// +func (self *Program) JA(v0 interface{}) *Instruction { + p := self.alloc("JA", 1, Operands { v0 }) + p.branch = _B_conditional + // JA rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + } + // JA rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + // JA label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JA") + } + return p +} + +// JAE performs "Jump if above or equal (CF == 0)". +// +// Mnemonic : JAE +// Supported forms : (2 forms) +// +// * JAE rel8 +// * JAE rel32 +// +func (self *Program) JAE(v0 interface{}) *Instruction { + p := self.alloc("JAE", 1, Operands { v0 }) + p.branch = _B_conditional + // JAE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + } + // JAE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + // JAE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JAE") + } + return p +} + +// JB performs "Jump if below (CF == 1)". +// +// Mnemonic : JB +// Supported forms : (2 forms) +// +// * JB rel8 +// * JB rel32 +// +func (self *Program) JB(v0 interface{}) *Instruction { + p := self.alloc("JB", 1, Operands { v0 }) + p.branch = _B_conditional + // JB rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + } + // JB rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + // JB label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JB") + } + return p +} + +// JBE performs "Jump if below or equal (CF == 1 or ZF == 1)". +// +// Mnemonic : JBE +// Supported forms : (2 forms) +// +// * JBE rel8 +// * JBE rel32 +// +func (self *Program) JBE(v0 interface{}) *Instruction { + p := self.alloc("JBE", 1, Operands { v0 }) + p.branch = _B_conditional + // JBE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + } + // JBE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + // JBE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JBE") + } + return p +} + +// JC performs "Jump if carry (CF == 1)". +// +// Mnemonic : JC +// Supported forms : (2 forms) +// +// * JC rel8 +// * JC rel32 +// +func (self *Program) JC(v0 interface{}) *Instruction { + p := self.alloc("JC", 1, Operands { v0 }) + p.branch = _B_conditional + // JC rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + } + // JC rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + // JC label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JC") + } + return p +} + +// JE performs "Jump if equal (ZF == 1)". +// +// Mnemonic : JE +// Supported forms : (2 forms) +// +// * JE rel8 +// * JE rel32 +// +func (self *Program) JE(v0 interface{}) *Instruction { + p := self.alloc("JE", 1, Operands { v0 }) + p.branch = _B_conditional + // JE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + } + // JE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + // JE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JE") + } + return p +} + +// JECXZ performs "Jump if ECX register is 0". +// +// Mnemonic : JECXZ +// Supported forms : (1 form) +// +// * JECXZ rel8 +// +func (self *Program) JECXZ(v0 interface{}) *Instruction { + p := self.alloc("JECXZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JECXZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + // JECXZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JECXZ") + } + return p +} + +// JG performs "Jump if greater (ZF == 0 and SF == OF)". +// +// Mnemonic : JG +// Supported forms : (2 forms) +// +// * JG rel8 +// * JG rel32 +// +func (self *Program) JG(v0 interface{}) *Instruction { + p := self.alloc("JG", 1, Operands { v0 }) + p.branch = _B_conditional + // JG rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + } + // JG rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + // JG label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JG") + } + return p +} + +// JGE performs "Jump if greater or equal (SF == OF)". +// +// Mnemonic : JGE +// Supported forms : (2 forms) +// +// * JGE rel8 +// * JGE rel32 +// +func (self *Program) JGE(v0 interface{}) *Instruction { + p := self.alloc("JGE", 1, Operands { v0 }) + p.branch = _B_conditional + // JGE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + } + // JGE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + // JGE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JGE") + } + return p +} + +// JL performs "Jump if less (SF != OF)". +// +// Mnemonic : JL +// Supported forms : (2 forms) +// +// * JL rel8 +// * JL rel32 +// +func (self *Program) JL(v0 interface{}) *Instruction { + p := self.alloc("JL", 1, Operands { v0 }) + p.branch = _B_conditional + // JL rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + } + // JL rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + // JL label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JL") + } + return p +} + +// JLE performs "Jump if less or equal (ZF == 1 or SF != OF)". +// +// Mnemonic : JLE +// Supported forms : (2 forms) +// +// * JLE rel8 +// * JLE rel32 +// +func (self *Program) JLE(v0 interface{}) *Instruction { + p := self.alloc("JLE", 1, Operands { v0 }) + p.branch = _B_conditional + // JLE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + } + // JLE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + // JLE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JLE") + } + return p +} + +// JMP performs "Jump Unconditionally". +// +// Mnemonic : JMP +// Supported forms : (2 forms) +// +// * JMP rel8 +// * JMP rel32 +// +func (self *Program) JMP(v0 interface{}) *Instruction { + p := self.alloc("JMP", 1, Operands { v0 }) + p.branch = _B_unconditional + // JMP rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xeb) + m.imm1(relv(v[0])) + }) + } + // JMP rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe9) + m.imm4(relv(v[0])) + }) + } + // JMP label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0xeb) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0xe9) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JMP") + } + return p +} + +// JMPQ performs "Jump Unconditionally". +// +// Mnemonic : JMP +// Supported forms : (2 forms) +// +// * JMPQ r64 +// * JMPQ m64 +// +func (self *Program) JMPQ(v0 interface{}) *Instruction { + p := self.alloc("JMPQ", 1, Operands { v0 }) + // JMPQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xe0 | lcode(v[0])) + }) + } + // JMPQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for JMPQ") + } + return p +} + +// JNA performs "Jump if not above (CF == 1 or ZF == 1)". +// +// Mnemonic : JNA +// Supported forms : (2 forms) +// +// * JNA rel8 +// * JNA rel32 +// +func (self *Program) JNA(v0 interface{}) *Instruction { + p := self.alloc("JNA", 1, Operands { v0 }) + p.branch = _B_conditional + // JNA rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + } + // JNA rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + // JNA label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x76) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x86) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNA") + } + return p +} + +// JNAE performs "Jump if not above or equal (CF == 1)". +// +// Mnemonic : JNAE +// Supported forms : (2 forms) +// +// * JNAE rel8 +// * JNAE rel32 +// +func (self *Program) JNAE(v0 interface{}) *Instruction { + p := self.alloc("JNAE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNAE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + } + // JNAE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + // JNAE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x72) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x82) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNAE") + } + return p +} + +// JNB performs "Jump if not below (CF == 0)". +// +// Mnemonic : JNB +// Supported forms : (2 forms) +// +// * JNB rel8 +// * JNB rel32 +// +func (self *Program) JNB(v0 interface{}) *Instruction { + p := self.alloc("JNB", 1, Operands { v0 }) + p.branch = _B_conditional + // JNB rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + } + // JNB rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + // JNB label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNB") + } + return p +} + +// JNBE performs "Jump if not below or equal (CF == 0 and ZF == 0)". +// +// Mnemonic : JNBE +// Supported forms : (2 forms) +// +// * JNBE rel8 +// * JNBE rel32 +// +func (self *Program) JNBE(v0 interface{}) *Instruction { + p := self.alloc("JNBE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNBE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + } + // JNBE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + // JNBE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x77) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x87) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNBE") + } + return p +} + +// JNC performs "Jump if not carry (CF == 0)". +// +// Mnemonic : JNC +// Supported forms : (2 forms) +// +// * JNC rel8 +// * JNC rel32 +// +func (self *Program) JNC(v0 interface{}) *Instruction { + p := self.alloc("JNC", 1, Operands { v0 }) + p.branch = _B_conditional + // JNC rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + } + // JNC rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + // JNC label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x73) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x83) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNC") + } + return p +} + +// JNE performs "Jump if not equal (ZF == 0)". +// +// Mnemonic : JNE +// Supported forms : (2 forms) +// +// * JNE rel8 +// * JNE rel32 +// +func (self *Program) JNE(v0 interface{}) *Instruction { + p := self.alloc("JNE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + } + // JNE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + // JNE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNE") + } + return p +} + +// JNG performs "Jump if not greater (ZF == 1 or SF != OF)". +// +// Mnemonic : JNG +// Supported forms : (2 forms) +// +// * JNG rel8 +// * JNG rel32 +// +func (self *Program) JNG(v0 interface{}) *Instruction { + p := self.alloc("JNG", 1, Operands { v0 }) + p.branch = _B_conditional + // JNG rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + } + // JNG rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + // JNG label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7e) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8e) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNG") + } + return p +} + +// JNGE performs "Jump if not greater or equal (SF != OF)". +// +// Mnemonic : JNGE +// Supported forms : (2 forms) +// +// * JNGE rel8 +// * JNGE rel32 +// +func (self *Program) JNGE(v0 interface{}) *Instruction { + p := self.alloc("JNGE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNGE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + } + // JNGE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + // JNGE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7c) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8c) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNGE") + } + return p +} + +// JNL performs "Jump if not less (SF == OF)". +// +// Mnemonic : JNL +// Supported forms : (2 forms) +// +// * JNL rel8 +// * JNL rel32 +// +func (self *Program) JNL(v0 interface{}) *Instruction { + p := self.alloc("JNL", 1, Operands { v0 }) + p.branch = _B_conditional + // JNL rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + } + // JNL rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + // JNL label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7d) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8d) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNL") + } + return p +} + +// JNLE performs "Jump if not less or equal (ZF == 0 and SF == OF)". +// +// Mnemonic : JNLE +// Supported forms : (2 forms) +// +// * JNLE rel8 +// * JNLE rel32 +// +func (self *Program) JNLE(v0 interface{}) *Instruction { + p := self.alloc("JNLE", 1, Operands { v0 }) + p.branch = _B_conditional + // JNLE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + } + // JNLE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + // JNLE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7f) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8f) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNLE") + } + return p +} + +// JNO performs "Jump if not overflow (OF == 0)". +// +// Mnemonic : JNO +// Supported forms : (2 forms) +// +// * JNO rel8 +// * JNO rel32 +// +func (self *Program) JNO(v0 interface{}) *Instruction { + p := self.alloc("JNO", 1, Operands { v0 }) + p.branch = _B_conditional + // JNO rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x71) + m.imm1(relv(v[0])) + }) + } + // JNO rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x81) + m.imm4(relv(v[0])) + }) + } + // JNO label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x71) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x81) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNO") + } + return p +} + +// JNP performs "Jump if not parity (PF == 0)". +// +// Mnemonic : JNP +// Supported forms : (2 forms) +// +// * JNP rel8 +// * JNP rel32 +// +func (self *Program) JNP(v0 interface{}) *Instruction { + p := self.alloc("JNP", 1, Operands { v0 }) + p.branch = _B_conditional + // JNP rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + } + // JNP rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + // JNP label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNP") + } + return p +} + +// JNS performs "Jump if not sign (SF == 0)". +// +// Mnemonic : JNS +// Supported forms : (2 forms) +// +// * JNS rel8 +// * JNS rel32 +// +func (self *Program) JNS(v0 interface{}) *Instruction { + p := self.alloc("JNS", 1, Operands { v0 }) + p.branch = _B_conditional + // JNS rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x79) + m.imm1(relv(v[0])) + }) + } + // JNS rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x89) + m.imm4(relv(v[0])) + }) + } + // JNS label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x79) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x89) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNS") + } + return p +} + +// JNZ performs "Jump if not zero (ZF == 0)". +// +// Mnemonic : JNZ +// Supported forms : (2 forms) +// +// * JNZ rel8 +// * JNZ rel32 +// +func (self *Program) JNZ(v0 interface{}) *Instruction { + p := self.alloc("JNZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JNZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + } + // JNZ rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + // JNZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x75) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x85) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JNZ") + } + return p +} + +// JO performs "Jump if overflow (OF == 1)". +// +// Mnemonic : JO +// Supported forms : (2 forms) +// +// * JO rel8 +// * JO rel32 +// +func (self *Program) JO(v0 interface{}) *Instruction { + p := self.alloc("JO", 1, Operands { v0 }) + p.branch = _B_conditional + // JO rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x70) + m.imm1(relv(v[0])) + }) + } + // JO rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x80) + m.imm4(relv(v[0])) + }) + } + // JO label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x70) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x80) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JO") + } + return p +} + +// JP performs "Jump if parity (PF == 1)". +// +// Mnemonic : JP +// Supported forms : (2 forms) +// +// * JP rel8 +// * JP rel32 +// +func (self *Program) JP(v0 interface{}) *Instruction { + p := self.alloc("JP", 1, Operands { v0 }) + p.branch = _B_conditional + // JP rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + } + // JP rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + // JP label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JP") + } + return p +} + +// JPE performs "Jump if parity even (PF == 1)". +// +// Mnemonic : JPE +// Supported forms : (2 forms) +// +// * JPE rel8 +// * JPE rel32 +// +func (self *Program) JPE(v0 interface{}) *Instruction { + p := self.alloc("JPE", 1, Operands { v0 }) + p.branch = _B_conditional + // JPE rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + } + // JPE rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + // JPE label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7a) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8a) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JPE") + } + return p +} + +// JPO performs "Jump if parity odd (PF == 0)". +// +// Mnemonic : JPO +// Supported forms : (2 forms) +// +// * JPO rel8 +// * JPO rel32 +// +func (self *Program) JPO(v0 interface{}) *Instruction { + p := self.alloc("JPO", 1, Operands { v0 }) + p.branch = _B_conditional + // JPO rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + } + // JPO rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + // JPO label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x7b) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x8b) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JPO") + } + return p +} + +// JRCXZ performs "Jump if RCX register is 0". +// +// Mnemonic : JRCXZ +// Supported forms : (1 form) +// +// * JRCXZ rel8 +// +func (self *Program) JRCXZ(v0 interface{}) *Instruction { + p := self.alloc("JRCXZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JRCXZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + // JRCXZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0xe3) + m.imm1(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JRCXZ") + } + return p +} + +// JS performs "Jump if sign (SF == 1)". +// +// Mnemonic : JS +// Supported forms : (2 forms) +// +// * JS rel8 +// * JS rel32 +// +func (self *Program) JS(v0 interface{}) *Instruction { + p := self.alloc("JS", 1, Operands { v0 }) + p.branch = _B_conditional + // JS rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x78) + m.imm1(relv(v[0])) + }) + } + // JS rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x88) + m.imm4(relv(v[0])) + }) + } + // JS label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x78) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x88) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JS") + } + return p +} + +// JZ performs "Jump if zero (ZF == 1)". +// +// Mnemonic : JZ +// Supported forms : (2 forms) +// +// * JZ rel8 +// * JZ rel32 +// +func (self *Program) JZ(v0 interface{}) *Instruction { + p := self.alloc("JZ", 1, Operands { v0 }) + p.branch = _B_conditional + // JZ rel8 + if isRel8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + } + // JZ rel32 + if isRel32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + // JZ label + if isLabel(v0) { + p.add(_F_rel1, func(m *_Encoding, v []interface{}) { + m.emit(0x74) + m.imm1(relv(v[0])) + }) + p.add(_F_rel4, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x84) + m.imm4(relv(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for JZ") + } + return p +} + +// KADDB performs "ADD Two 8-bit Masks". +// +// Mnemonic : KADDB +// Supported forms : (1 form) +// +// * KADDB k, k, k [AVX512DQ] +// +func (self *Program) KADDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDB", 3, Operands { v0, v1, v2 }) + // KADDB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDB") + } + return p +} + +// KADDD performs "ADD Two 32-bit Masks". +// +// Mnemonic : KADDD +// Supported forms : (1 form) +// +// * KADDD k, k, k [AVX512BW] +// +func (self *Program) KADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDD", 3, Operands { v0, v1, v2 }) + // KADDD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDD") + } + return p +} + +// KADDQ performs "ADD Two 64-bit Masks". +// +// Mnemonic : KADDQ +// Supported forms : (1 form) +// +// * KADDQ k, k, k [AVX512BW] +// +func (self *Program) KADDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDQ", 3, Operands { v0, v1, v2 }) + // KADDQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDQ") + } + return p +} + +// KADDW performs "ADD Two 16-bit Masks". +// +// Mnemonic : KADDW +// Supported forms : (1 form) +// +// * KADDW k, k, k [AVX512DQ] +// +func (self *Program) KADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KADDW", 3, Operands { v0, v1, v2 }) + // KADDW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KADDW") + } + return p +} + +// KANDB performs "Bitwise Logical AND 8-bit Masks". +// +// Mnemonic : KANDB +// Supported forms : (1 form) +// +// * KANDB k, k, k [AVX512DQ] +// +func (self *Program) KANDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDB", 3, Operands { v0, v1, v2 }) + // KANDB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDB") + } + return p +} + +// KANDD performs "Bitwise Logical AND 32-bit Masks". +// +// Mnemonic : KANDD +// Supported forms : (1 form) +// +// * KANDD k, k, k [AVX512BW] +// +func (self *Program) KANDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDD", 3, Operands { v0, v1, v2 }) + // KANDD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDD") + } + return p +} + +// KANDNB performs "Bitwise Logical AND NOT 8-bit Masks". +// +// Mnemonic : KANDNB +// Supported forms : (1 form) +// +// * KANDNB k, k, k [AVX512DQ] +// +func (self *Program) KANDNB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDNB", 3, Operands { v0, v1, v2 }) + // KANDNB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDNB") + } + return p +} + +// KANDND performs "Bitwise Logical AND NOT 32-bit Masks". +// +// Mnemonic : KANDND +// Supported forms : (1 form) +// +// * KANDND k, k, k [AVX512BW] +// +func (self *Program) KANDND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDND", 3, Operands { v0, v1, v2 }) + // KANDND k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDND") + } + return p +} + +// KANDNQ performs "Bitwise Logical AND NOT 64-bit Masks". +// +// Mnemonic : KANDNQ +// Supported forms : (1 form) +// +// * KANDNQ k, k, k [AVX512BW] +// +func (self *Program) KANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDNQ", 3, Operands { v0, v1, v2 }) + // KANDNQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDNQ") + } + return p +} + +// KANDNW performs "Bitwise Logical AND NOT 16-bit Masks". +// +// Mnemonic : KANDNW +// Supported forms : (1 form) +// +// * KANDNW k, k, k [AVX512F] +// +func (self *Program) KANDNW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDNW", 3, Operands { v0, v1, v2 }) + // KANDNW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDNW") + } + return p +} + +// KANDQ performs "Bitwise Logical AND 64-bit Masks". +// +// Mnemonic : KANDQ +// Supported forms : (1 form) +// +// * KANDQ k, k, k [AVX512BW] +// +func (self *Program) KANDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDQ", 3, Operands { v0, v1, v2 }) + // KANDQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDQ") + } + return p +} + +// KANDW performs "Bitwise Logical AND 16-bit Masks". +// +// Mnemonic : KANDW +// Supported forms : (1 form) +// +// * KANDW k, k, k [AVX512F] +// +func (self *Program) KANDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KANDW", 3, Operands { v0, v1, v2 }) + // KANDW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x41) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KANDW") + } + return p +} + +// KMOVB performs "Move 8-bit Mask". +// +// Mnemonic : KMOVB +// Supported forms : (5 forms) +// +// * KMOVB k, k [AVX512DQ] +// * KMOVB r32, k [AVX512DQ] +// * KMOVB m8, k [AVX512DQ] +// * KMOVB k, r32 [AVX512DQ] +// * KMOVB k, m8 [AVX512DQ] +// +func (self *Program) KMOVB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVB", 2, Operands { v0, v1 }) + // KMOVB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVB r32, k + if isReg32(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[0], 0) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVB m8, k + if isM8(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVB k, r32 + if isK(v0) && isReg32(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), nil, 0) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVB k, m8 + if isK(v0) && isM8(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVB") + } + return p +} + +// KMOVD performs "Move 32-bit Mask". +// +// Mnemonic : KMOVD +// Supported forms : (5 forms) +// +// * KMOVD k, k [AVX512BW] +// * KMOVD r32, k [AVX512BW] +// * KMOVD m32, k [AVX512BW] +// * KMOVD k, r32 [AVX512BW] +// * KMOVD k, m32 [AVX512BW] +// +func (self *Program) KMOVD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVD", 2, Operands { v0, v1 }) + // KMOVD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVD r32, k + if isReg32(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, 0, v[0], 0) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVD m32, k + if isM32(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVD k, r32 + if isK(v0) && isReg32(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), nil, 0) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVD k, m32 + if isK(v0) && isM32(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVD") + } + return p +} + +// KMOVQ performs "Move 64-bit Mask". +// +// Mnemonic : KMOVQ +// Supported forms : (5 forms) +// +// * KMOVQ k, k [AVX512BW] +// * KMOVQ r64, k [AVX512BW] +// * KMOVQ m64, k [AVX512BW] +// * KMOVQ k, r64 [AVX512BW] +// * KMOVQ k, m64 [AVX512BW] +// +func (self *Program) KMOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVQ", 2, Operands { v0, v1 }) + // KMOVQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVQ r64, k + if isReg64(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[0]) << 5)) + m.emit(0xfb) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVQ m64, k + if isM64(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x80, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVQ k, r64 + if isK(v0) && isReg64(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7)) + m.emit(0xfb) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVQ k, m64 + if isK(v0) && isM64(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x80, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVQ") + } + return p +} + +// KMOVW performs "Move 16-bit Mask". +// +// Mnemonic : KMOVW +// Supported forms : (5 forms) +// +// * KMOVW k, k [AVX512F] +// * KMOVW r32, k [AVX512F] +// * KMOVW m16, k [AVX512F] +// * KMOVW k, r32 [AVX512F] +// * KMOVW k, m16 [AVX512F] +// +func (self *Program) KMOVW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KMOVW", 2, Operands { v0, v1 }) + // KMOVW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x90) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVW r32, k + if isReg32(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, v[0], 0) + m.emit(0x92) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVW m16, k + if isM16(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[0]), 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // KMOVW k, r32 + if isK(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), nil, 0) + m.emit(0x93) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // KMOVW k, m16 + if isK(v0) && isM16(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[1]), 0) + m.emit(0x91) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for KMOVW") + } + return p +} + +// KNOTB performs "NOT 8-bit Mask Register". +// +// Mnemonic : KNOTB +// Supported forms : (1 form) +// +// * KNOTB k, k [AVX512DQ] +// +func (self *Program) KNOTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTB", 2, Operands { v0, v1 }) + // KNOTB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTB") + } + return p +} + +// KNOTD performs "NOT 32-bit Mask Register". +// +// Mnemonic : KNOTD +// Supported forms : (1 form) +// +// * KNOTD k, k [AVX512BW] +// +func (self *Program) KNOTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTD", 2, Operands { v0, v1 }) + // KNOTD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTD") + } + return p +} + +// KNOTQ performs "NOT 64-bit Mask Register". +// +// Mnemonic : KNOTQ +// Supported forms : (1 form) +// +// * KNOTQ k, k [AVX512BW] +// +func (self *Program) KNOTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTQ", 2, Operands { v0, v1 }) + // KNOTQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTQ") + } + return p +} + +// KNOTW performs "NOT 16-bit Mask Register". +// +// Mnemonic : KNOTW +// Supported forms : (1 form) +// +// * KNOTW k, k [AVX512F] +// +func (self *Program) KNOTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KNOTW", 2, Operands { v0, v1 }) + // KNOTW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KNOTW") + } + return p +} + +// KORB performs "Bitwise Logical OR 8-bit Masks". +// +// Mnemonic : KORB +// Supported forms : (1 form) +// +// * KORB k, k, k [AVX512DQ] +// +func (self *Program) KORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORB", 3, Operands { v0, v1, v2 }) + // KORB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORB") + } + return p +} + +// KORD performs "Bitwise Logical OR 32-bit Masks". +// +// Mnemonic : KORD +// Supported forms : (1 form) +// +// * KORD k, k, k [AVX512BW] +// +func (self *Program) KORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORD", 3, Operands { v0, v1, v2 }) + // KORD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORD") + } + return p +} + +// KORQ performs "Bitwise Logical OR 64-bit Masks". +// +// Mnemonic : KORQ +// Supported forms : (1 form) +// +// * KORQ k, k, k [AVX512BW] +// +func (self *Program) KORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORQ", 3, Operands { v0, v1, v2 }) + // KORQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORQ") + } + return p +} + +// KORTESTB performs "OR 8-bit Masks and Set Flags". +// +// Mnemonic : KORTESTB +// Supported forms : (1 form) +// +// * KORTESTB k, k [AVX512DQ] +// +func (self *Program) KORTESTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTB", 2, Operands { v0, v1 }) + // KORTESTB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTB") + } + return p +} + +// KORTESTD performs "OR 32-bit Masks and Set Flags". +// +// Mnemonic : KORTESTD +// Supported forms : (1 form) +// +// * KORTESTD k, k [AVX512BW] +// +func (self *Program) KORTESTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTD", 2, Operands { v0, v1 }) + // KORTESTD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTD") + } + return p +} + +// KORTESTQ performs "OR 64-bit Masks and Set Flags". +// +// Mnemonic : KORTESTQ +// Supported forms : (1 form) +// +// * KORTESTQ k, k [AVX512BW] +// +func (self *Program) KORTESTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTQ", 2, Operands { v0, v1 }) + // KORTESTQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTQ") + } + return p +} + +// KORTESTW performs "OR 16-bit Masks and Set Flags". +// +// Mnemonic : KORTESTW +// Supported forms : (1 form) +// +// * KORTESTW k, k [AVX512F] +// +func (self *Program) KORTESTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KORTESTW", 2, Operands { v0, v1 }) + // KORTESTW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x98) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORTESTW") + } + return p +} + +// KORW performs "Bitwise Logical OR 16-bit Masks". +// +// Mnemonic : KORW +// Supported forms : (1 form) +// +// * KORW k, k, k [AVX512F] +// +func (self *Program) KORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KORW", 3, Operands { v0, v1, v2 }) + // KORW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KORW") + } + return p +} + +// KSHIFTLB performs "Shift Left 8-bit Masks". +// +// Mnemonic : KSHIFTLB +// Supported forms : (1 form) +// +// * KSHIFTLB imm8, k, k [AVX512DQ] +// +func (self *Program) KSHIFTLB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLB", 3, Operands { v0, v1, v2 }) + // KSHIFTLB imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x32) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLB") + } + return p +} + +// KSHIFTLD performs "Shift Left 32-bit Masks". +// +// Mnemonic : KSHIFTLD +// Supported forms : (1 form) +// +// * KSHIFTLD imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLD", 3, Operands { v0, v1, v2 }) + // KSHIFTLD imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x33) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLD") + } + return p +} + +// KSHIFTLQ performs "Shift Left 64-bit Masks". +// +// Mnemonic : KSHIFTLQ +// Supported forms : (1 form) +// +// * KSHIFTLQ imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLQ", 3, Operands { v0, v1, v2 }) + // KSHIFTLQ imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x33) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLQ") + } + return p +} + +// KSHIFTLW performs "Shift Left 16-bit Masks". +// +// Mnemonic : KSHIFTLW +// Supported forms : (1 form) +// +// * KSHIFTLW imm8, k, k [AVX512F] +// +func (self *Program) KSHIFTLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTLW", 3, Operands { v0, v1, v2 }) + // KSHIFTLW imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x32) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTLW") + } + return p +} + +// KSHIFTRB performs "Shift Right 8-bit Masks". +// +// Mnemonic : KSHIFTRB +// Supported forms : (1 form) +// +// * KSHIFTRB imm8, k, k [AVX512DQ] +// +func (self *Program) KSHIFTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRB", 3, Operands { v0, v1, v2 }) + // KSHIFTRB imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x30) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRB") + } + return p +} + +// KSHIFTRD performs "Shift Right 32-bit Masks". +// +// Mnemonic : KSHIFTRD +// Supported forms : (1 form) +// +// * KSHIFTRD imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRD", 3, Operands { v0, v1, v2 }) + // KSHIFTRD imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0x79) + m.emit(0x31) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRD") + } + return p +} + +// KSHIFTRQ performs "Shift Right 64-bit Masks". +// +// Mnemonic : KSHIFTRQ +// Supported forms : (1 form) +// +// * KSHIFTRQ imm8, k, k [AVX512BW] +// +func (self *Program) KSHIFTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRQ", 3, Operands { v0, v1, v2 }) + // KSHIFTRQ imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x31) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRQ") + } + return p +} + +// KSHIFTRW performs "Shift Right 16-bit Masks". +// +// Mnemonic : KSHIFTRW +// Supported forms : (1 form) +// +// * KSHIFTRW imm8, k, k [AVX512F] +// +func (self *Program) KSHIFTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KSHIFTRW", 3, Operands { v0, v1, v2 }) + // KSHIFTRW imm8, k, k + if isImm8(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3) + m.emit(0xf9) + m.emit(0x30) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KSHIFTRW") + } + return p +} + +// KTESTB performs "Bit Test 8-bit Masks and Set Flags". +// +// Mnemonic : KTESTB +// Supported forms : (1 form) +// +// * KTESTB k, k [AVX512DQ] +// +func (self *Program) KTESTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTB", 2, Operands { v0, v1 }) + // KTESTB k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, nil, 0) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTB") + } + return p +} + +// KTESTD performs "Bit Test 32-bit Masks and Set Flags". +// +// Mnemonic : KTESTD +// Supported forms : (1 form) +// +// * KTESTD k, k [AVX512BW] +// +func (self *Program) KTESTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTD", 2, Operands { v0, v1 }) + // KTESTD k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf9) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTD") + } + return p +} + +// KTESTQ performs "Bit Test 64-bit Masks and Set Flags". +// +// Mnemonic : KTESTQ +// Supported forms : (1 form) +// +// * KTESTQ k, k [AVX512BW] +// +func (self *Program) KTESTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTQ", 2, Operands { v0, v1 }) + // KTESTQ k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xf8) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTQ") + } + return p +} + +// KTESTW performs "Bit Test 16-bit Masks and Set Flags". +// +// Mnemonic : KTESTW +// Supported forms : (1 form) +// +// * KTESTW k, k [AVX512DQ] +// +func (self *Program) KTESTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("KTESTW", 2, Operands { v0, v1 }) + // KTESTW k, k + if isK(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x99) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KTESTW") + } + return p +} + +// KUNPCKBW performs "Unpack and Interleave 8-bit Masks". +// +// Mnemonic : KUNPCKBW +// Supported forms : (1 form) +// +// * KUNPCKBW k, k, k [AVX512F] +// +func (self *Program) KUNPCKBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KUNPCKBW", 3, Operands { v0, v1, v2 }) + // KUNPCKBW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KUNPCKBW") + } + return p +} + +// KUNPCKDQ performs "Unpack and Interleave 32-bit Masks". +// +// Mnemonic : KUNPCKDQ +// Supported forms : (1 form) +// +// * KUNPCKDQ k, k, k [AVX512BW] +// +func (self *Program) KUNPCKDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KUNPCKDQ", 3, Operands { v0, v1, v2 }) + // KUNPCKDQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KUNPCKDQ") + } + return p +} + +// KUNPCKWD performs "Unpack and Interleave 16-bit Masks". +// +// Mnemonic : KUNPCKWD +// Supported forms : (1 form) +// +// * KUNPCKWD k, k, k [AVX512BW] +// +func (self *Program) KUNPCKWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KUNPCKWD", 3, Operands { v0, v1, v2 }) + // KUNPCKWD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KUNPCKWD") + } + return p +} + +// KXNORB performs "Bitwise Logical XNOR 8-bit Masks". +// +// Mnemonic : KXNORB +// Supported forms : (1 form) +// +// * KXNORB k, k, k [AVX512DQ] +// +func (self *Program) KXNORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORB", 3, Operands { v0, v1, v2 }) + // KXNORB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORB") + } + return p +} + +// KXNORD performs "Bitwise Logical XNOR 32-bit Masks". +// +// Mnemonic : KXNORD +// Supported forms : (1 form) +// +// * KXNORD k, k, k [AVX512BW] +// +func (self *Program) KXNORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORD", 3, Operands { v0, v1, v2 }) + // KXNORD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORD") + } + return p +} + +// KXNORQ performs "Bitwise Logical XNOR 64-bit Masks". +// +// Mnemonic : KXNORQ +// Supported forms : (1 form) +// +// * KXNORQ k, k, k [AVX512BW] +// +func (self *Program) KXNORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORQ", 3, Operands { v0, v1, v2 }) + // KXNORQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORQ") + } + return p +} + +// KXNORW performs "Bitwise Logical XNOR 16-bit Masks". +// +// Mnemonic : KXNORW +// Supported forms : (1 form) +// +// * KXNORW k, k, k [AVX512F] +// +func (self *Program) KXNORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXNORW", 3, Operands { v0, v1, v2 }) + // KXNORW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXNORW") + } + return p +} + +// KXORB performs "Bitwise Logical XOR 8-bit Masks". +// +// Mnemonic : KXORB +// Supported forms : (1 form) +// +// * KXORB k, k, k [AVX512DQ] +// +func (self *Program) KXORB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORB", 3, Operands { v0, v1, v2 }) + // KXORB k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, nil, hlcode(v[1])) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORB") + } + return p +} + +// KXORD performs "Bitwise Logical XOR 32-bit Masks". +// +// Mnemonic : KXORD +// Supported forms : (1 form) +// +// * KXORD k, k, k [AVX512BW] +// +func (self *Program) KXORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORD", 3, Operands { v0, v1, v2 }) + // KXORD k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORD") + } + return p +} + +// KXORQ performs "Bitwise Logical XOR 64-bit Masks". +// +// Mnemonic : KXORQ +// Supported forms : (1 form) +// +// * KXORQ k, k, k [AVX512BW] +// +func (self *Program) KXORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORQ", 3, Operands { v0, v1, v2 }) + // KXORQ k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1) + m.emit(0xfc ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORQ") + } + return p +} + +// KXORW performs "Bitwise Logical XOR 16-bit Masks". +// +// Mnemonic : KXORW +// Supported forms : (1 form) +// +// * KXORW k, k, k [AVX512F] +// +func (self *Program) KXORW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("KXORW", 3, Operands { v0, v1, v2 }) + // KXORW k, k, k + if isK(v0) && isK(v1) && isK(v2) { + self.require(ISA_AVX512F) + p.domain = DomainMask + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, hlcode(v[1])) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for KXORW") + } + return p +} + +// LDDQU performs "Load Unaligned Integer 128 Bits". +// +// Mnemonic : LDDQU +// Supported forms : (1 form) +// +// * LDDQU m128, xmm [SSE3] +// +func (self *Program) LDDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LDDQU", 2, Operands { v0, v1 }) + // LDDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LDDQU") + } + return p +} + +// LDMXCSR performs "Load MXCSR Register". +// +// Mnemonic : LDMXCSR +// Supported forms : (1 form) +// +// * LDMXCSR m32 [SSE] +// +func (self *Program) LDMXCSR(v0 interface{}) *Instruction { + p := self.alloc("LDMXCSR", 1, Operands { v0 }) + // LDMXCSR m32 + if isM32(v0) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LDMXCSR") + } + return p +} + +// LEAL performs "Load Effective Address". +// +// Mnemonic : LEA +// Supported forms : (1 form) +// +// * LEAL m, r32 +// +func (self *Program) LEAL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LEAL", 2, Operands { v0, v1 }) + // LEAL m, r32 + if isM(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LEAL") + } + return p +} + +// LEAQ performs "Load Effective Address". +// +// Mnemonic : LEA +// Supported forms : (1 form) +// +// * LEAQ m, r64 +// +func (self *Program) LEAQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LEAQ", 2, Operands { v0, v1 }) + // LEAQ m, r64 + if isM(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x8d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LEAQ") + } + return p +} + +// LEAW performs "Load Effective Address". +// +// Mnemonic : LEA +// Supported forms : (1 form) +// +// * LEAW m, r16 +// +func (self *Program) LEAW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LEAW", 2, Operands { v0, v1 }) + // LEAW m, r16 + if isM(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LEAW") + } + return p +} + +// LFENCE performs "Load Fence". +// +// Mnemonic : LFENCE +// Supported forms : (1 form) +// +// * LFENCE [SSE2] +// +func (self *Program) LFENCE() *Instruction { + p := self.alloc("LFENCE", 0, Operands { }) + // LFENCE + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xae) + m.emit(0xe8) + }) + return p +} + +// LZCNTL performs "Count the Number of Leading Zero Bits". +// +// Mnemonic : LZCNT +// Supported forms : (2 forms) +// +// * LZCNTL r32, r32 [LZCNT] +// * LZCNTL m32, r32 [LZCNT] +// +func (self *Program) LZCNTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LZCNTL", 2, Operands { v0, v1 }) + // LZCNTL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // LZCNTL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LZCNTL") + } + return p +} + +// LZCNTQ performs "Count the Number of Leading Zero Bits". +// +// Mnemonic : LZCNT +// Supported forms : (2 forms) +// +// * LZCNTQ r64, r64 [LZCNT] +// * LZCNTQ m64, r64 [LZCNT] +// +func (self *Program) LZCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LZCNTQ", 2, Operands { v0, v1 }) + // LZCNTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // LZCNTQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LZCNTQ") + } + return p +} + +// LZCNTW performs "Count the Number of Leading Zero Bits". +// +// Mnemonic : LZCNT +// Supported forms : (2 forms) +// +// * LZCNTW r16, r16 [LZCNT] +// * LZCNTW m16, r16 [LZCNT] +// +func (self *Program) LZCNTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("LZCNTW", 2, Operands { v0, v1 }) + // LZCNTW r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // LZCNTW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_LZCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for LZCNTW") + } + return p +} + +// MASKMOVDQU performs "Store Selected Bytes of Double Quadword". +// +// Mnemonic : MASKMOVDQU +// Supported forms : (1 form) +// +// * MASKMOVDQU xmm, xmm [SSE2] +// +func (self *Program) MASKMOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MASKMOVDQU", 2, Operands { v0, v1 }) + // MASKMOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MASKMOVDQU") + } + return p +} + +// MASKMOVQ performs "Store Selected Bytes of Quadword". +// +// Mnemonic : MASKMOVQ +// Supported forms : (1 form) +// +// * MASKMOVQ mm, mm [MMX+] +// +func (self *Program) MASKMOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MASKMOVQ", 2, Operands { v0, v1 }) + // MASKMOVQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MASKMOVQ") + } + return p +} + +// MAXPD performs "Return Maximum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MAXPD +// Supported forms : (2 forms) +// +// * MAXPD xmm, xmm [SSE2] +// * MAXPD m128, xmm [SSE2] +// +func (self *Program) MAXPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXPD", 2, Operands { v0, v1 }) + // MAXPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXPD") + } + return p +} + +// MAXPS performs "Return Maximum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MAXPS +// Supported forms : (2 forms) +// +// * MAXPS xmm, xmm [SSE] +// * MAXPS m128, xmm [SSE] +// +func (self *Program) MAXPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXPS", 2, Operands { v0, v1 }) + // MAXPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXPS") + } + return p +} + +// MAXSD performs "Return Maximum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : MAXSD +// Supported forms : (2 forms) +// +// * MAXSD xmm, xmm [SSE2] +// * MAXSD m64, xmm [SSE2] +// +func (self *Program) MAXSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXSD", 2, Operands { v0, v1 }) + // MAXSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXSD") + } + return p +} + +// MAXSS performs "Return Maximum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : MAXSS +// Supported forms : (2 forms) +// +// * MAXSS xmm, xmm [SSE] +// * MAXSS m32, xmm [SSE] +// +func (self *Program) MAXSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MAXSS", 2, Operands { v0, v1 }) + // MAXSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MAXSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MAXSS") + } + return p +} + +// MFENCE performs "Memory Fence". +// +// Mnemonic : MFENCE +// Supported forms : (1 form) +// +// * MFENCE [SSE2] +// +func (self *Program) MFENCE() *Instruction { + p := self.alloc("MFENCE", 0, Operands { }) + // MFENCE + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xae) + m.emit(0xf0) + }) + return p +} + +// MINPD performs "Return Minimum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MINPD +// Supported forms : (2 forms) +// +// * MINPD xmm, xmm [SSE2] +// * MINPD m128, xmm [SSE2] +// +func (self *Program) MINPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINPD", 2, Operands { v0, v1 }) + // MINPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINPD") + } + return p +} + +// MINPS performs "Return Minimum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MINPS +// Supported forms : (2 forms) +// +// * MINPS xmm, xmm [SSE] +// * MINPS m128, xmm [SSE] +// +func (self *Program) MINPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINPS", 2, Operands { v0, v1 }) + // MINPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINPS") + } + return p +} + +// MINSD performs "Return Minimum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : MINSD +// Supported forms : (2 forms) +// +// * MINSD xmm, xmm [SSE2] +// * MINSD m64, xmm [SSE2] +// +func (self *Program) MINSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINSD", 2, Operands { v0, v1 }) + // MINSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINSD") + } + return p +} + +// MINSS performs "Return Minimum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : MINSS +// Supported forms : (2 forms) +// +// * MINSS xmm, xmm [SSE] +// * MINSS m32, xmm [SSE] +// +func (self *Program) MINSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MINSS", 2, Operands { v0, v1 }) + // MINSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MINSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MINSS") + } + return p +} + +// MONITOR performs "Monitor a Linear Address Range". +// +// Mnemonic : MONITOR +// Supported forms : (1 form) +// +// * MONITOR [MONITOR] +// +func (self *Program) MONITOR() *Instruction { + p := self.alloc("MONITOR", 0, Operands { }) + // MONITOR + self.require(ISA_MONITOR) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xc8) + }) + return p +} + +// MONITORX performs "Monitor a Linear Address Range with Timeout". +// +// Mnemonic : MONITORX +// Supported forms : (1 form) +// +// * MONITORX [MONITORX] +// +func (self *Program) MONITORX() *Instruction { + p := self.alloc("MONITORX", 0, Operands { }) + // MONITORX + self.require(ISA_MONITORX) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xfa) + }) + return p +} + +// MOVAPD performs "Move Aligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MOVAPD +// Supported forms : (3 forms) +// +// * MOVAPD xmm, xmm [SSE2] +// * MOVAPD m128, xmm [SSE2] +// * MOVAPD xmm, m128 [SSE2] +// +func (self *Program) MOVAPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVAPD", 2, Operands { v0, v1 }) + // MOVAPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVAPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVAPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVAPD") + } + return p +} + +// MOVAPS performs "Move Aligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVAPS +// Supported forms : (3 forms) +// +// * MOVAPS xmm, xmm [SSE] +// * MOVAPS m128, xmm [SSE] +// * MOVAPS xmm, m128 [SSE] +// +func (self *Program) MOVAPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVAPS", 2, Operands { v0, v1 }) + // MOVAPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVAPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVAPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVAPS") + } + return p +} + +// MOVB performs "Move". +// +// Mnemonic : MOV +// Supported forms : (5 forms) +// +// * MOVB imm8, r8 +// * MOVB r8, r8 +// * MOVB m8, r8 +// * MOVB imm8, m8 +// * MOVB r8, m8 +// +func (self *Program) MOVB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVB", 2, Operands { v0, v1 }) + // MOVB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xb0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // MOVB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x88) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x8a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc6) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // MOVB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x88) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVB") + } + return p +} + +// MOVBEL performs "Move Data After Swapping Bytes". +// +// Mnemonic : MOVBE +// Supported forms : (2 forms) +// +// * MOVBEL m32, r32 [MOVBE] +// * MOVBEL r32, m32 [MOVBE] +// +func (self *Program) MOVBEL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVBEL", 2, Operands { v0, v1 }) + // MOVBEL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVBEL r32, m32 + if isReg32(v0) && isM32(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVBEL") + } + return p +} + +// MOVBEQ performs "Move Data After Swapping Bytes". +// +// Mnemonic : MOVBE +// Supported forms : (2 forms) +// +// * MOVBEQ m64, r64 [MOVBE] +// * MOVBEQ r64, m64 [MOVBE] +// +func (self *Program) MOVBEQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVBEQ", 2, Operands { v0, v1 }) + // MOVBEQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVBEQ r64, m64 + if isReg64(v0) && isM64(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVBEQ") + } + return p +} + +// MOVBEW performs "Move Data After Swapping Bytes". +// +// Mnemonic : MOVBE +// Supported forms : (2 forms) +// +// * MOVBEW m16, r16 [MOVBE] +// * MOVBEW r16, m16 [MOVBE] +// +func (self *Program) MOVBEW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVBEW", 2, Operands { v0, v1 }) + // MOVBEW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVBEW r16, m16 + if isReg16(v0) && isM16(v1) { + self.require(ISA_MOVBE) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xf1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVBEW") + } + return p +} + +// MOVD performs "Move Doubleword". +// +// Mnemonic : MOVD +// Supported forms : (8 forms) +// +// * MOVD mm, r32 [MMX] +// * MOVD r32, mm [MMX] +// * MOVD m32, mm [MMX] +// * MOVD mm, m32 [MMX] +// * MOVD xmm, r32 [SSE2] +// * MOVD r32, xmm [SSE2] +// * MOVD m32, xmm [SSE2] +// * MOVD xmm, m32 [SSE2] +// +func (self *Program) MOVD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVD", 2, Operands { v0, v1 }) + // MOVD mm, r32 + if isMM(v0) && isReg32(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVD r32, mm + if isReg32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVD m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVD mm, m32 + if isMM(v0) && isM32(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // MOVD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVD r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVD xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVD") + } + return p +} + +// MOVDDUP performs "Move One Double-FP and Duplicate". +// +// Mnemonic : MOVDDUP +// Supported forms : (2 forms) +// +// * MOVDDUP xmm, xmm [SSE3] +// * MOVDDUP m64, xmm [SSE3] +// +func (self *Program) MOVDDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDDUP", 2, Operands { v0, v1 }) + // MOVDDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVDDUP m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDDUP") + } + return p +} + +// MOVDQ2Q performs "Move Quadword from XMM to MMX Technology Register". +// +// Mnemonic : MOVDQ2Q +// Supported forms : (1 form) +// +// * MOVDQ2Q xmm, mm [SSE2] +// +func (self *Program) MOVDQ2Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDQ2Q", 2, Operands { v0, v1 }) + // MOVDQ2Q xmm, mm + if isXMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDQ2Q") + } + return p +} + +// MOVDQA performs "Move Aligned Double Quadword". +// +// Mnemonic : MOVDQA +// Supported forms : (3 forms) +// +// * MOVDQA xmm, xmm [SSE2] +// * MOVDQA m128, xmm [SSE2] +// * MOVDQA xmm, m128 [SSE2] +// +func (self *Program) MOVDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDQA", 2, Operands { v0, v1 }) + // MOVDQA xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVDQA xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDQA") + } + return p +} + +// MOVDQU performs "Move Unaligned Double Quadword". +// +// Mnemonic : MOVDQU +// Supported forms : (3 forms) +// +// * MOVDQU xmm, xmm [SSE2] +// * MOVDQU m128, xmm [SSE2] +// * MOVDQU xmm, m128 [SSE2] +// +func (self *Program) MOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVDQU", 2, Operands { v0, v1 }) + // MOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVDQU xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVDQU") + } + return p +} + +// MOVHLPS performs "Move Packed Single-Precision Floating-Point Values High to Low". +// +// Mnemonic : MOVHLPS +// Supported forms : (1 form) +// +// * MOVHLPS xmm, xmm [SSE] +// +func (self *Program) MOVHLPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVHLPS", 2, Operands { v0, v1 }) + // MOVHLPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVHLPS") + } + return p +} + +// MOVHPD performs "Move High Packed Double-Precision Floating-Point Value". +// +// Mnemonic : MOVHPD +// Supported forms : (2 forms) +// +// * MOVHPD m64, xmm [SSE2] +// * MOVHPD xmm, m64 [SSE2] +// +func (self *Program) MOVHPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVHPD", 2, Operands { v0, v1 }) + // MOVHPD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVHPD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVHPD") + } + return p +} + +// MOVHPS performs "Move High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVHPS +// Supported forms : (2 forms) +// +// * MOVHPS m64, xmm [SSE] +// * MOVHPS xmm, m64 [SSE] +// +func (self *Program) MOVHPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVHPS", 2, Operands { v0, v1 }) + // MOVHPS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVHPS xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVHPS") + } + return p +} + +// MOVL performs "Move". +// +// Mnemonic : MOV +// Supported forms : (5 forms) +// +// * MOVL imm32, r32 +// * MOVL r32, r32 +// * MOVL m32, r32 +// * MOVL imm32, m32 +// * MOVL r32, m32 +// +func (self *Program) MOVL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVL", 2, Operands { v0, v1 }) + // MOVL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xb8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // MOVL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x89) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // MOVL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x89) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVL") + } + return p +} + +// MOVLHPS performs "Move Packed Single-Precision Floating-Point Values Low to High". +// +// Mnemonic : MOVLHPS +// Supported forms : (1 form) +// +// * MOVLHPS xmm, xmm [SSE] +// +func (self *Program) MOVLHPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVLHPS", 2, Operands { v0, v1 }) + // MOVLHPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVLHPS") + } + return p +} + +// MOVLPD performs "Move Low Packed Double-Precision Floating-Point Value". +// +// Mnemonic : MOVLPD +// Supported forms : (2 forms) +// +// * MOVLPD m64, xmm [SSE2] +// * MOVLPD xmm, m64 [SSE2] +// +func (self *Program) MOVLPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVLPD", 2, Operands { v0, v1 }) + // MOVLPD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVLPD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVLPD") + } + return p +} + +// MOVLPS performs "Move Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVLPS +// Supported forms : (2 forms) +// +// * MOVLPS m64, xmm [SSE] +// * MOVLPS xmm, m64 [SSE] +// +func (self *Program) MOVLPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVLPS", 2, Operands { v0, v1 }) + // MOVLPS m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVLPS xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVLPS") + } + return p +} + +// MOVMSKPD performs "Extract Packed Double-Precision Floating-Point Sign Mask". +// +// Mnemonic : MOVMSKPD +// Supported forms : (1 form) +// +// * MOVMSKPD xmm, r32 [SSE2] +// +func (self *Program) MOVMSKPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVMSKPD", 2, Operands { v0, v1 }) + // MOVMSKPD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVMSKPD") + } + return p +} + +// MOVMSKPS performs "Extract Packed Single-Precision Floating-Point Sign Mask". +// +// Mnemonic : MOVMSKPS +// Supported forms : (1 form) +// +// * MOVMSKPS xmm, r32 [SSE] +// +func (self *Program) MOVMSKPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVMSKPS", 2, Operands { v0, v1 }) + // MOVMSKPS xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVMSKPS") + } + return p +} + +// MOVNTDQ performs "Store Double Quadword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTDQ +// Supported forms : (1 form) +// +// * MOVNTDQ xmm, m128 [SSE2] +// +func (self *Program) MOVNTDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTDQ", 2, Operands { v0, v1 }) + // MOVNTDQ xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTDQ") + } + return p +} + +// MOVNTDQA performs "Load Double Quadword Non-Temporal Aligned Hint". +// +// Mnemonic : MOVNTDQA +// Supported forms : (1 form) +// +// * MOVNTDQA m128, xmm [SSE4.1] +// +func (self *Program) MOVNTDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTDQA", 2, Operands { v0, v1 }) + // MOVNTDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTDQA") + } + return p +} + +// MOVNTIL performs "Store Doubleword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTI +// Supported forms : (1 form) +// +// * MOVNTIL r32, m32 [SSE2] +// +func (self *Program) MOVNTIL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTIL", 2, Operands { v0, v1 }) + // MOVNTIL r32, m32 + if isReg32(v0) && isM32(v1) { + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTIL") + } + return p +} + +// MOVNTIQ performs "Store Doubleword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTI +// Supported forms : (1 form) +// +// * MOVNTIQ r64, m64 [SSE2] +// +func (self *Program) MOVNTIQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTIQ", 2, Operands { v0, v1 }) + // MOVNTIQ r64, m64 + if isReg64(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xc3) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTIQ") + } + return p +} + +// MOVNTPD performs "Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTPD +// Supported forms : (1 form) +// +// * MOVNTPD xmm, m128 [SSE2] +// +func (self *Program) MOVNTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTPD", 2, Operands { v0, v1 }) + // MOVNTPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTPD") + } + return p +} + +// MOVNTPS performs "Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTPS +// Supported forms : (1 form) +// +// * MOVNTPS xmm, m128 [SSE] +// +func (self *Program) MOVNTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTPS", 2, Operands { v0, v1 }) + // MOVNTPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTPS") + } + return p +} + +// MOVNTQ performs "Store of Quadword Using Non-Temporal Hint". +// +// Mnemonic : MOVNTQ +// Supported forms : (1 form) +// +// * MOVNTQ mm, m64 [MMX+] +// +func (self *Program) MOVNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTQ", 2, Operands { v0, v1 }) + // MOVNTQ mm, m64 + if isMM(v0) && isM64(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTQ") + } + return p +} + +// MOVNTSD performs "Store Scalar Double-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTSD +// Supported forms : (1 form) +// +// * MOVNTSD xmm, m64 [SSE4A] +// +func (self *Program) MOVNTSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTSD", 2, Operands { v0, v1 }) + // MOVNTSD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTSD") + } + return p +} + +// MOVNTSS performs "Store Scalar Single-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : MOVNTSS +// Supported forms : (1 form) +// +// * MOVNTSS xmm, m32 [SSE4A] +// +func (self *Program) MOVNTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVNTSS", 2, Operands { v0, v1 }) + // MOVNTSS xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_SSE4A) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVNTSS") + } + return p +} + +// MOVQ performs "Move". +// +// Mnemonic : MOV +// Supported forms : (16 forms) +// +// * MOVQ imm32, r64 +// * MOVQ imm64, r64 +// * MOVQ r64, r64 +// * MOVQ m64, r64 +// * MOVQ imm32, m64 +// * MOVQ r64, m64 +// * MOVQ mm, r64 [MMX] +// * MOVQ r64, mm [MMX] +// * MOVQ mm, mm [MMX] +// * MOVQ m64, mm [MMX] +// * MOVQ mm, m64 [MMX] +// * MOVQ xmm, r64 [SSE2] +// * MOVQ r64, xmm [SSE2] +// * MOVQ xmm, xmm [SSE2] +// * MOVQ m64, xmm [SSE2] +// * MOVQ xmm, m64 [SSE2] +// +func (self *Program) MOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVQ", 2, Operands { v0, v1 }) + // MOVQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // MOVQ imm64, r64 + if isImm64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xb8 | lcode(v[1])) + m.imm8(toImmAny(v[0])) + }) + } + // MOVQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x89) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x8b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // MOVQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x89) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // MOVQ mm, r64 + if isMM(v0) && isReg64(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ r64, mm + if isReg64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVQ mm, m64 + if isMM(v0) && isM64(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // MOVQ xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVQ xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xd6) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVQ") + } + return p +} + +// MOVQ2DQ performs "Move Quadword from MMX Technology to XMM Register". +// +// Mnemonic : MOVQ2DQ +// Supported forms : (1 form) +// +// * MOVQ2DQ mm, xmm [SSE2] +// +func (self *Program) MOVQ2DQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVQ2DQ", 2, Operands { v0, v1 }) + // MOVQ2DQ mm, xmm + if isMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MOVQ2DQ") + } + return p +} + +// MOVSBL performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSBL r8, r32 +// * MOVSBL m8, r32 +// +func (self *Program) MOVSBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSBL", 2, Operands { v0, v1 }) + // MOVSBL r8, r32 + if isReg8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSBL m8, r32 + if isM8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSBL") + } + return p +} + +// MOVSBQ performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSBQ r8, r64 +// * MOVSBQ m8, r64 +// +func (self *Program) MOVSBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSBQ", 2, Operands { v0, v1 }) + // MOVSBQ r8, r64 + if isReg8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSBQ m8, r64 + if isM8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSBQ") + } + return p +} + +// MOVSBW performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSBW r8, r16 +// * MOVSBW m8, r16 +// +func (self *Program) MOVSBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSBW", 2, Operands { v0, v1 }) + // MOVSBW r8, r16 + if isReg8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSBW m8, r16 + if isM8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSBW") + } + return p +} + +// MOVSD performs "Move Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : MOVSD +// Supported forms : (3 forms) +// +// * MOVSD xmm, xmm [SSE2] +// * MOVSD m64, xmm [SSE2] +// * MOVSD xmm, m64 [SSE2] +// +func (self *Program) MOVSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSD", 2, Operands { v0, v1 }) + // MOVSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVSD xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSD") + } + return p +} + +// MOVSHDUP performs "Move Packed Single-FP High and Duplicate". +// +// Mnemonic : MOVSHDUP +// Supported forms : (2 forms) +// +// * MOVSHDUP xmm, xmm [SSE3] +// * MOVSHDUP m128, xmm [SSE3] +// +func (self *Program) MOVSHDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSHDUP", 2, Operands { v0, v1 }) + // MOVSHDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSHDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSHDUP") + } + return p +} + +// MOVSLDUP performs "Move Packed Single-FP Low and Duplicate". +// +// Mnemonic : MOVSLDUP +// Supported forms : (2 forms) +// +// * MOVSLDUP xmm, xmm [SSE3] +// * MOVSLDUP m128, xmm [SSE3] +// +func (self *Program) MOVSLDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSLDUP", 2, Operands { v0, v1 }) + // MOVSLDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSLDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSLDUP") + } + return p +} + +// MOVSLQ performs "Move Doubleword to Quadword with Sign-Extension". +// +// Mnemonic : MOVSXD +// Supported forms : (2 forms) +// +// * MOVSLQ r32, r64 +// * MOVSLQ m32, r64 +// +func (self *Program) MOVSLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSLQ", 2, Operands { v0, v1 }) + // MOVSLQ r32, r64 + if isReg32(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x63) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSLQ m32, r64 + if isM32(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x63) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSLQ") + } + return p +} + +// MOVSS performs "Move Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : MOVSS +// Supported forms : (3 forms) +// +// * MOVSS xmm, xmm [SSE] +// * MOVSS m32, xmm [SSE] +// * MOVSS xmm, m32 [SSE] +// +func (self *Program) MOVSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSS", 2, Operands { v0, v1 }) + // MOVSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVSS xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSS") + } + return p +} + +// MOVSWL performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSWL r16, r32 +// * MOVSWL m16, r32 +// +func (self *Program) MOVSWL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSWL", 2, Operands { v0, v1 }) + // MOVSWL r16, r32 + if isReg16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSWL m16, r32 + if isM16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSWL") + } + return p +} + +// MOVSWQ performs "Move with Sign-Extension". +// +// Mnemonic : MOVSX +// Supported forms : (2 forms) +// +// * MOVSWQ r16, r64 +// * MOVSWQ m16, r64 +// +func (self *Program) MOVSWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVSWQ", 2, Operands { v0, v1 }) + // MOVSWQ r16, r64 + if isReg16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVSWQ m16, r64 + if isM16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVSWQ") + } + return p +} + +// MOVUPD performs "Move Unaligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MOVUPD +// Supported forms : (3 forms) +// +// * MOVUPD xmm, xmm [SSE2] +// * MOVUPD m128, xmm [SSE2] +// * MOVUPD xmm, m128 [SSE2] +// +func (self *Program) MOVUPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVUPD", 2, Operands { v0, v1 }) + // MOVUPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVUPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVUPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVUPD") + } + return p +} + +// MOVUPS performs "Move Unaligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MOVUPS +// Supported forms : (3 forms) +// +// * MOVUPS xmm, xmm [SSE] +// * MOVUPS m128, xmm [SSE] +// * MOVUPS xmm, m128 [SSE] +// +func (self *Program) MOVUPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVUPS", 2, Operands { v0, v1 }) + // MOVUPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // MOVUPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVUPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVUPS") + } + return p +} + +// MOVW performs "Move". +// +// Mnemonic : MOV +// Supported forms : (5 forms) +// +// * MOVW imm16, r16 +// * MOVW r16, r16 +// * MOVW m16, r16 +// * MOVW imm16, m16 +// * MOVW r16, m16 +// +func (self *Program) MOVW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVW", 2, Operands { v0, v1 }) + // MOVW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xb8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // MOVW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x89) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x8b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // MOVW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc7) + m.mrsd(0, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // MOVW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x89) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVW") + } + return p +} + +// MOVZBL performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZBL r8, r32 +// * MOVZBL m8, r32 +// +func (self *Program) MOVZBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZBL", 2, Operands { v0, v1 }) + // MOVZBL r8, r32 + if isReg8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZBL m8, r32 + if isM8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZBL") + } + return p +} + +// MOVZBQ performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZBQ r8, r64 +// * MOVZBQ m8, r64 +// +func (self *Program) MOVZBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZBQ", 2, Operands { v0, v1 }) + // MOVZBQ r8, r64 + if isReg8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZBQ m8, r64 + if isM8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZBQ") + } + return p +} + +// MOVZBW performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZBW r8, r16 +// * MOVZBW m8, r16 +// +func (self *Program) MOVZBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZBW", 2, Operands { v0, v1 }) + // MOVZBW r8, r16 + if isReg8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZBW m8, r16 + if isM8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZBW") + } + return p +} + +// MOVZWL performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZWL r16, r32 +// * MOVZWL m16, r32 +// +func (self *Program) MOVZWL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZWL", 2, Operands { v0, v1 }) + // MOVZWL r16, r32 + if isReg16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZWL m16, r32 + if isM16(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZWL") + } + return p +} + +// MOVZWQ performs "Move with Zero-Extend". +// +// Mnemonic : MOVZX +// Supported forms : (2 forms) +// +// * MOVZWQ r16, r64 +// * MOVZWQ m16, r64 +// +func (self *Program) MOVZWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MOVZWQ", 2, Operands { v0, v1 }) + // MOVZWQ r16, r64 + if isReg16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MOVZWQ m16, r64 + if isM16(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xb7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MOVZWQ") + } + return p +} + +// MPSADBW performs "Compute Multiple Packed Sums of Absolute Difference". +// +// Mnemonic : MPSADBW +// Supported forms : (2 forms) +// +// * MPSADBW imm8, xmm, xmm [SSE4.1] +// * MPSADBW imm8, m128, xmm [SSE4.1] +// +func (self *Program) MPSADBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("MPSADBW", 3, Operands { v0, v1, v2 }) + // MPSADBW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // MPSADBW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x42) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for MPSADBW") + } + return p +} + +// MULB performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULB r8 +// * MULB m8 +// +func (self *Program) MULB(v0 interface{}) *Instruction { + p := self.alloc("MULB", 1, Operands { v0 }) + // MULB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULB") + } + return p +} + +// MULL performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULL r32 +// * MULL m32 +// +func (self *Program) MULL(v0 interface{}) *Instruction { + p := self.alloc("MULL", 1, Operands { v0 }) + // MULL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULL") + } + return p +} + +// MULPD performs "Multiply Packed Double-Precision Floating-Point Values". +// +// Mnemonic : MULPD +// Supported forms : (2 forms) +// +// * MULPD xmm, xmm [SSE2] +// * MULPD m128, xmm [SSE2] +// +func (self *Program) MULPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULPD", 2, Operands { v0, v1 }) + // MULPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULPD") + } + return p +} + +// MULPS performs "Multiply Packed Single-Precision Floating-Point Values". +// +// Mnemonic : MULPS +// Supported forms : (2 forms) +// +// * MULPS xmm, xmm [SSE] +// * MULPS m128, xmm [SSE] +// +func (self *Program) MULPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULPS", 2, Operands { v0, v1 }) + // MULPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULPS") + } + return p +} + +// MULQ performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULQ r64 +// * MULQ m64 +// +func (self *Program) MULQ(v0 interface{}) *Instruction { + p := self.alloc("MULQ", 1, Operands { v0 }) + // MULQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULQ") + } + return p +} + +// MULSD performs "Multiply Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : MULSD +// Supported forms : (2 forms) +// +// * MULSD xmm, xmm [SSE2] +// * MULSD m64, xmm [SSE2] +// +func (self *Program) MULSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULSD", 2, Operands { v0, v1 }) + // MULSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULSD") + } + return p +} + +// MULSS performs "Multiply Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : MULSS +// Supported forms : (2 forms) +// +// * MULSS xmm, xmm [SSE] +// * MULSS m32, xmm [SSE] +// +func (self *Program) MULSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("MULSS", 2, Operands { v0, v1 }) + // MULSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // MULSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULSS") + } + return p +} + +// MULW performs "Unsigned Multiply". +// +// Mnemonic : MUL +// Supported forms : (2 forms) +// +// * MULW r16 +// * MULW m16 +// +func (self *Program) MULW(v0 interface{}) *Instruction { + p := self.alloc("MULW", 1, Operands { v0 }) + // MULW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xe0 | lcode(v[0])) + }) + } + // MULW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULW") + } + return p +} + +// MULXL performs "Unsigned Multiply Without Affecting Flags". +// +// Mnemonic : MULX +// Supported forms : (2 forms) +// +// * MULXL r32, r32, r32 [BMI2] +// * MULXL m32, r32, r32 [BMI2] +// +func (self *Program) MULXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("MULXL", 3, Operands { v0, v1, v2 }) + // MULXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7b ^ (hlcode(v[1]) << 3)) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // MULXL m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULXL") + } + return p +} + +// MULXQ performs "Unsigned Multiply Without Affecting Flags". +// +// Mnemonic : MULX +// Supported forms : (2 forms) +// +// * MULXQ r64, r64, r64 [BMI2] +// * MULXQ m64, r64, r64 [BMI2] +// +func (self *Program) MULXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("MULXQ", 3, Operands { v0, v1, v2 }) + // MULXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb ^ (hlcode(v[1]) << 3)) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // MULXQ m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for MULXQ") + } + return p +} + +// MWAIT performs "Monitor Wait". +// +// Mnemonic : MWAIT +// Supported forms : (1 form) +// +// * MWAIT [MONITOR] +// +func (self *Program) MWAIT() *Instruction { + p := self.alloc("MWAIT", 0, Operands { }) + // MWAIT + self.require(ISA_MONITOR) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xc9) + }) + return p +} + +// MWAITX performs "Monitor Wait with Timeout". +// +// Mnemonic : MWAITX +// Supported forms : (1 form) +// +// * MWAITX [MONITORX] +// +func (self *Program) MWAITX() *Instruction { + p := self.alloc("MWAITX", 0, Operands { }) + // MWAITX + self.require(ISA_MONITORX) + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xfb) + }) + return p +} + +// NEGB performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGB r8 +// * NEGB m8 +// +func (self *Program) NEGB(v0 interface{}) *Instruction { + p := self.alloc("NEGB", 1, Operands { v0 }) + // NEGB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGB") + } + return p +} + +// NEGL performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGL r32 +// * NEGL m32 +// +func (self *Program) NEGL(v0 interface{}) *Instruction { + p := self.alloc("NEGL", 1, Operands { v0 }) + // NEGL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGL") + } + return p +} + +// NEGQ performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGQ r64 +// * NEGQ m64 +// +func (self *Program) NEGQ(v0 interface{}) *Instruction { + p := self.alloc("NEGQ", 1, Operands { v0 }) + // NEGQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGQ") + } + return p +} + +// NEGW performs "Two's Complement Negation". +// +// Mnemonic : NEG +// Supported forms : (2 forms) +// +// * NEGW r16 +// * NEGW m16 +// +func (self *Program) NEGW(v0 interface{}) *Instruction { + p := self.alloc("NEGW", 1, Operands { v0 }) + // NEGW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd8 | lcode(v[0])) + }) + } + // NEGW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NEGW") + } + return p +} + +// NOP performs "No Operation". +// +// Mnemonic : NOP +// Supported forms : (1 form) +// +// * NOP +// +func (self *Program) NOP() *Instruction { + p := self.alloc("NOP", 0, Operands { }) + // NOP + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x90) + }) + return p +} + +// NOTB performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTB r8 +// * NOTB m8 +// +func (self *Program) NOTB(v0 interface{}) *Instruction { + p := self.alloc("NOTB", 1, Operands { v0 }) + // NOTB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0xf6) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf6) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTB") + } + return p +} + +// NOTL performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTL r32 +// * NOTL m32 +// +func (self *Program) NOTL(v0 interface{}) *Instruction { + p := self.alloc("NOTL", 1, Operands { v0 }) + // NOTL r32 + if isReg32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTL m32 + if isM32(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTL") + } + return p +} + +// NOTQ performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTQ r64 +// * NOTQ m64 +// +func (self *Program) NOTQ(v0 interface{}) *Instruction { + p := self.alloc("NOTQ", 1, Operands { v0 }) + // NOTQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0xf7) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[0])) + m.emit(0xf7) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTQ") + } + return p +} + +// NOTW performs "One's Complement Negation". +// +// Mnemonic : NOT +// Supported forms : (2 forms) +// +// * NOTW r16 +// * NOTW m16 +// +func (self *Program) NOTW(v0 interface{}) *Instruction { + p := self.alloc("NOTW", 1, Operands { v0 }) + // NOTW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xf7) + m.emit(0xd0 | lcode(v[0])) + }) + } + // NOTW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xf7) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for NOTW") + } + return p +} + +// ORB performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (6 forms) +// +// * ORB imm8, al +// * ORB imm8, r8 +// * ORB r8, r8 +// * ORB m8, r8 +// * ORB imm8, m8 +// * ORB r8, m8 +// +func (self *Program) ORB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORB", 2, Operands { v0, v1 }) + // ORB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0c) + m.imm1(toImmAny(v[0])) + }) + } + // ORB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x08) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x0a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x08) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORB") + } + return p +} + +// ORL performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (8 forms) +// +// * ORL imm32, eax +// * ORL imm8, r32 +// * ORL imm32, r32 +// * ORL r32, r32 +// * ORL m32, r32 +// * ORL imm8, m32 +// * ORL imm32, m32 +// * ORL r32, m32 +// +func (self *Program) ORL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORL", 2, Operands { v0, v1 }) + // ORL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0d) + m.imm4(toImmAny(v[0])) + }) + } + // ORL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ORL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x09) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(1, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ORL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x09) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORL") + } + return p +} + +// ORPD performs "Bitwise Logical OR of Double-Precision Floating-Point Values". +// +// Mnemonic : ORPD +// Supported forms : (2 forms) +// +// * ORPD xmm, xmm [SSE2] +// * ORPD m128, xmm [SSE2] +// +func (self *Program) ORPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORPD", 2, Operands { v0, v1 }) + // ORPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x56) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x56) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORPD") + } + return p +} + +// ORPS performs "Bitwise Logical OR of Single-Precision Floating-Point Values". +// +// Mnemonic : ORPS +// Supported forms : (2 forms) +// +// * ORPS xmm, xmm [SSE] +// * ORPS m128, xmm [SSE] +// +func (self *Program) ORPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORPS", 2, Operands { v0, v1 }) + // ORPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x56) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x56) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORPS") + } + return p +} + +// ORQ performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (8 forms) +// +// * ORQ imm32, rax +// * ORQ imm8, r64 +// * ORQ imm32, r64 +// * ORQ r64, r64 +// * ORQ m64, r64 +// * ORQ imm8, m64 +// * ORQ imm32, m64 +// * ORQ r64, m64 +// +func (self *Program) ORQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORQ", 2, Operands { v0, v1 }) + // ORQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x0d) + m.imm4(toImmAny(v[0])) + }) + } + // ORQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xc8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // ORQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x09) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(1, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // ORQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORQ") + } + return p +} + +// ORW performs "Logical Inclusive OR". +// +// Mnemonic : OR +// Supported forms : (8 forms) +// +// * ORW imm16, ax +// * ORW imm8, r16 +// * ORW imm16, r16 +// * ORW r16, r16 +// * ORW m16, r16 +// * ORW imm8, m16 +// * ORW imm16, m16 +// * ORW r16, m16 +// +func (self *Program) ORW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ORW", 2, Operands { v0, v1 }) + // ORW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x0d) + m.imm2(toImmAny(v[0])) + }) + } + // ORW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ORW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xc8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // ORW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x09) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // ORW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // ORW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ORW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(1, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // ORW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x09) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ORW") + } + return p +} + +// PABSB performs "Packed Absolute Value of Byte Integers". +// +// Mnemonic : PABSB +// Supported forms : (4 forms) +// +// * PABSB mm, mm [SSSE3] +// * PABSB m64, mm [SSSE3] +// * PABSB xmm, xmm [SSSE3] +// * PABSB m128, xmm [SSSE3] +// +func (self *Program) PABSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PABSB", 2, Operands { v0, v1 }) + // PABSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PABSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PABSB") + } + return p +} + +// PABSD performs "Packed Absolute Value of Doubleword Integers". +// +// Mnemonic : PABSD +// Supported forms : (4 forms) +// +// * PABSD mm, mm [SSSE3] +// * PABSD m64, mm [SSSE3] +// * PABSD xmm, xmm [SSSE3] +// * PABSD m128, xmm [SSSE3] +// +func (self *Program) PABSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PABSD", 2, Operands { v0, v1 }) + // PABSD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PABSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PABSD") + } + return p +} + +// PABSW performs "Packed Absolute Value of Word Integers". +// +// Mnemonic : PABSW +// Supported forms : (4 forms) +// +// * PABSW mm, mm [SSSE3] +// * PABSW m64, mm [SSSE3] +// * PABSW xmm, xmm [SSSE3] +// * PABSW m128, xmm [SSSE3] +// +func (self *Program) PABSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PABSW", 2, Operands { v0, v1 }) + // PABSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PABSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PABSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PABSW") + } + return p +} + +// PACKSSDW performs "Pack Doublewords into Words with Signed Saturation". +// +// Mnemonic : PACKSSDW +// Supported forms : (4 forms) +// +// * PACKSSDW mm, mm [MMX] +// * PACKSSDW m64, mm [MMX] +// * PACKSSDW xmm, xmm [SSE2] +// * PACKSSDW m128, xmm [SSE2] +// +func (self *Program) PACKSSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKSSDW", 2, Operands { v0, v1 }) + // PACKSSDW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSDW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PACKSSDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKSSDW") + } + return p +} + +// PACKSSWB performs "Pack Words into Bytes with Signed Saturation". +// +// Mnemonic : PACKSSWB +// Supported forms : (4 forms) +// +// * PACKSSWB mm, mm [MMX] +// * PACKSSWB m64, mm [MMX] +// * PACKSSWB xmm, xmm [SSE2] +// * PACKSSWB m128, xmm [SSE2] +// +func (self *Program) PACKSSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKSSWB", 2, Operands { v0, v1 }) + // PACKSSWB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x63) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSWB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x63) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PACKSSWB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x63) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKSSWB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x63) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKSSWB") + } + return p +} + +// PACKUSDW performs "Pack Doublewords into Words with Unsigned Saturation". +// +// Mnemonic : PACKUSDW +// Supported forms : (2 forms) +// +// * PACKUSDW xmm, xmm [SSE4.1] +// * PACKUSDW m128, xmm [SSE4.1] +// +func (self *Program) PACKUSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKUSDW", 2, Operands { v0, v1 }) + // PACKUSDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKUSDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKUSDW") + } + return p +} + +// PACKUSWB performs "Pack Words into Bytes with Unsigned Saturation". +// +// Mnemonic : PACKUSWB +// Supported forms : (4 forms) +// +// * PACKUSWB mm, mm [MMX] +// * PACKUSWB m64, mm [MMX] +// * PACKUSWB xmm, xmm [SSE2] +// * PACKUSWB m128, xmm [SSE2] +// +func (self *Program) PACKUSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PACKUSWB", 2, Operands { v0, v1 }) + // PACKUSWB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x67) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKUSWB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x67) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PACKUSWB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x67) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PACKUSWB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x67) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PACKUSWB") + } + return p +} + +// PADDB performs "Add Packed Byte Integers". +// +// Mnemonic : PADDB +// Supported forms : (4 forms) +// +// * PADDB mm, mm [MMX] +// * PADDB m64, mm [MMX] +// * PADDB xmm, xmm [SSE2] +// * PADDB m128, xmm [SSE2] +// +func (self *Program) PADDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDB", 2, Operands { v0, v1 }) + // PADDB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDB") + } + return p +} + +// PADDD performs "Add Packed Doubleword Integers". +// +// Mnemonic : PADDD +// Supported forms : (4 forms) +// +// * PADDD mm, mm [MMX] +// * PADDD m64, mm [MMX] +// * PADDD xmm, xmm [SSE2] +// * PADDD m128, xmm [SSE2] +// +func (self *Program) PADDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDD", 2, Operands { v0, v1 }) + // PADDD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfe) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDD") + } + return p +} + +// PADDQ performs "Add Packed Quadword Integers". +// +// Mnemonic : PADDQ +// Supported forms : (4 forms) +// +// * PADDQ mm, mm [SSE2] +// * PADDQ m64, mm [SSE2] +// * PADDQ xmm, xmm [SSE2] +// * PADDQ m128, xmm [SSE2] +// +func (self *Program) PADDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDQ", 2, Operands { v0, v1 }) + // PADDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDQ") + } + return p +} + +// PADDSB performs "Add Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : PADDSB +// Supported forms : (4 forms) +// +// * PADDSB mm, mm [MMX] +// * PADDSB m64, mm [MMX] +// * PADDSB xmm, xmm [SSE2] +// * PADDSB m128, xmm [SSE2] +// +func (self *Program) PADDSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDSB", 2, Operands { v0, v1 }) + // PADDSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xec) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xec) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xec) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xec) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDSB") + } + return p +} + +// PADDSW performs "Add Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : PADDSW +// Supported forms : (4 forms) +// +// * PADDSW mm, mm [MMX] +// * PADDSW m64, mm [MMX] +// * PADDSW xmm, xmm [SSE2] +// * PADDSW m128, xmm [SSE2] +// +func (self *Program) PADDSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDSW", 2, Operands { v0, v1 }) + // PADDSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xed) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xed) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xed) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xed) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDSW") + } + return p +} + +// PADDUSB performs "Add Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : PADDUSB +// Supported forms : (4 forms) +// +// * PADDUSB mm, mm [MMX] +// * PADDUSB m64, mm [MMX] +// * PADDUSB xmm, xmm [SSE2] +// * PADDUSB m128, xmm [SSE2] +// +func (self *Program) PADDUSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDUSB", 2, Operands { v0, v1 }) + // PADDUSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDUSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDUSB") + } + return p +} + +// PADDUSW performs "Add Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : PADDUSW +// Supported forms : (4 forms) +// +// * PADDUSW mm, mm [MMX] +// * PADDUSW m64, mm [MMX] +// * PADDUSW xmm, xmm [SSE2] +// * PADDUSW m128, xmm [SSE2] +// +func (self *Program) PADDUSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDUSW", 2, Operands { v0, v1 }) + // PADDUSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDUSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDUSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDUSW") + } + return p +} + +// PADDW performs "Add Packed Word Integers". +// +// Mnemonic : PADDW +// Supported forms : (4 forms) +// +// * PADDW mm, mm [MMX] +// * PADDW m64, mm [MMX] +// * PADDW xmm, xmm [SSE2] +// * PADDW m128, xmm [SSE2] +// +func (self *Program) PADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PADDW", 2, Operands { v0, v1 }) + // PADDW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PADDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PADDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PADDW") + } + return p +} + +// PALIGNR performs "Packed Align Right". +// +// Mnemonic : PALIGNR +// Supported forms : (4 forms) +// +// * PALIGNR imm8, mm, mm [SSSE3] +// * PALIGNR imm8, m64, mm [SSSE3] +// * PALIGNR imm8, xmm, xmm [SSSE3] +// * PALIGNR imm8, m128, xmm [SSSE3] +// +func (self *Program) PALIGNR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PALIGNR", 3, Operands { v0, v1, v2 }) + // PALIGNR imm8, mm, mm + if isImm8(v0) && isMM(v1) && isMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PALIGNR imm8, m64, mm + if isImm8(v0) && isM64(v1) && isMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // PALIGNR imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PALIGNR imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0f) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PALIGNR") + } + return p +} + +// PAND performs "Packed Bitwise Logical AND". +// +// Mnemonic : PAND +// Supported forms : (4 forms) +// +// * PAND mm, mm [MMX] +// * PAND m64, mm [MMX] +// * PAND xmm, xmm [SSE2] +// * PAND m128, xmm [SSE2] +// +func (self *Program) PAND(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAND", 2, Operands { v0, v1 }) + // PAND mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAND m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PAND xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAND m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PAND") + } + return p +} + +// PANDN performs "Packed Bitwise Logical AND NOT". +// +// Mnemonic : PANDN +// Supported forms : (4 forms) +// +// * PANDN mm, mm [MMX] +// * PANDN m64, mm [MMX] +// * PANDN xmm, xmm [SSE2] +// * PANDN m128, xmm [SSE2] +// +func (self *Program) PANDN(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PANDN", 2, Operands { v0, v1 }) + // PANDN mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PANDN m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PANDN xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PANDN m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xdf) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PANDN") + } + return p +} + +// PAUSE performs "Spin Loop Hint". +// +// Mnemonic : PAUSE +// Supported forms : (1 form) +// +// * PAUSE +// +func (self *Program) PAUSE() *Instruction { + p := self.alloc("PAUSE", 0, Operands { }) + // PAUSE + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x90) + }) + return p +} + +// PAVGB performs "Average Packed Byte Integers". +// +// Mnemonic : PAVGB +// Supported forms : (4 forms) +// +// * PAVGB mm, mm [MMX+] +// * PAVGB m64, mm [MMX+] +// * PAVGB xmm, xmm [SSE2] +// * PAVGB m128, xmm [SSE2] +// +func (self *Program) PAVGB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAVGB", 2, Operands { v0, v1 }) + // PAVGB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PAVGB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PAVGB") + } + return p +} + +// PAVGUSB performs "Average Packed Byte Integers". +// +// Mnemonic : PAVGUSB +// Supported forms : (2 forms) +// +// * PAVGUSB mm, mm [3dnow!] +// * PAVGUSB m64, mm [3dnow!] +// +func (self *Program) PAVGUSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAVGUSB", 2, Operands { v0, v1 }) + // PAVGUSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xbf) + }) + } + // PAVGUSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xbf) + }) + } + if p.len == 0 { + panic("invalid operands for PAVGUSB") + } + return p +} + +// PAVGW performs "Average Packed Word Integers". +// +// Mnemonic : PAVGW +// Supported forms : (4 forms) +// +// * PAVGW mm, mm [MMX+] +// * PAVGW m64, mm [MMX+] +// * PAVGW xmm, xmm [SSE2] +// * PAVGW m128, xmm [SSE2] +// +func (self *Program) PAVGW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PAVGW", 2, Operands { v0, v1 }) + // PAVGW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PAVGW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PAVGW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PAVGW") + } + return p +} + +// PBLENDVB performs "Variable Blend Packed Bytes". +// +// Mnemonic : PBLENDVB +// Supported forms : (2 forms) +// +// * PBLENDVB xmm0, xmm, xmm [SSE4.1] +// * PBLENDVB xmm0, m128, xmm [SSE4.1] +// +func (self *Program) PBLENDVB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PBLENDVB", 3, Operands { v0, v1, v2 }) + // PBLENDVB xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // PBLENDVB xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PBLENDVB") + } + return p +} + +// PBLENDW performs "Blend Packed Words". +// +// Mnemonic : PBLENDW +// Supported forms : (2 forms) +// +// * PBLENDW imm8, xmm, xmm [SSE4.1] +// * PBLENDW imm8, m128, xmm [SSE4.1] +// +func (self *Program) PBLENDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PBLENDW", 3, Operands { v0, v1, v2 }) + // PBLENDW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PBLENDW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0e) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PBLENDW") + } + return p +} + +// PCLMULQDQ performs "Carry-Less Quadword Multiplication". +// +// Mnemonic : PCLMULQDQ +// Supported forms : (2 forms) +// +// * PCLMULQDQ imm8, xmm, xmm [PCLMULQDQ] +// * PCLMULQDQ imm8, m128, xmm [PCLMULQDQ] +// +func (self *Program) PCLMULQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCLMULQDQ", 3, Operands { v0, v1, v2 }) + // PCLMULQDQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x44) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCLMULQDQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x44) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCLMULQDQ") + } + return p +} + +// PCMPEQB performs "Compare Packed Byte Data for Equality". +// +// Mnemonic : PCMPEQB +// Supported forms : (4 forms) +// +// * PCMPEQB mm, mm [MMX] +// * PCMPEQB m64, mm [MMX] +// * PCMPEQB xmm, xmm [SSE2] +// * PCMPEQB m128, xmm [SSE2] +// +func (self *Program) PCMPEQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQB", 2, Operands { v0, v1 }) + // PCMPEQB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x74) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x74) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPEQB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x74) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x74) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQB") + } + return p +} + +// PCMPEQD performs "Compare Packed Doubleword Data for Equality". +// +// Mnemonic : PCMPEQD +// Supported forms : (4 forms) +// +// * PCMPEQD mm, mm [MMX] +// * PCMPEQD m64, mm [MMX] +// * PCMPEQD xmm, xmm [SSE2] +// * PCMPEQD m128, xmm [SSE2] +// +func (self *Program) PCMPEQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQD", 2, Operands { v0, v1 }) + // PCMPEQD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x76) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x76) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPEQD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x76) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x76) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQD") + } + return p +} + +// PCMPEQQ performs "Compare Packed Quadword Data for Equality". +// +// Mnemonic : PCMPEQQ +// Supported forms : (2 forms) +// +// * PCMPEQQ xmm, xmm [SSE4.1] +// * PCMPEQQ m128, xmm [SSE4.1] +// +func (self *Program) PCMPEQQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQQ", 2, Operands { v0, v1 }) + // PCMPEQQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x29) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQQ") + } + return p +} + +// PCMPEQW performs "Compare Packed Word Data for Equality". +// +// Mnemonic : PCMPEQW +// Supported forms : (4 forms) +// +// * PCMPEQW mm, mm [MMX] +// * PCMPEQW m64, mm [MMX] +// * PCMPEQW xmm, xmm [SSE2] +// * PCMPEQW m128, xmm [SSE2] +// +func (self *Program) PCMPEQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPEQW", 2, Operands { v0, v1 }) + // PCMPEQW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x75) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x75) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPEQW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x75) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPEQW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x75) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPEQW") + } + return p +} + +// PCMPESTRI performs "Packed Compare Explicit Length Strings, Return Index". +// +// Mnemonic : PCMPESTRI +// Supported forms : (2 forms) +// +// * PCMPESTRI imm8, xmm, xmm [SSE4.2] +// * PCMPESTRI imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPESTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPESTRI", 3, Operands { v0, v1, v2 }) + // PCMPESTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPESTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPESTRI") + } + return p +} + +// PCMPESTRM performs "Packed Compare Explicit Length Strings, Return Mask". +// +// Mnemonic : PCMPESTRM +// Supported forms : (2 forms) +// +// * PCMPESTRM imm8, xmm, xmm [SSE4.2] +// * PCMPESTRM imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPESTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPESTRM", 3, Operands { v0, v1, v2 }) + // PCMPESTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPESTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPESTRM") + } + return p +} + +// PCMPGTB performs "Compare Packed Signed Byte Integers for Greater Than". +// +// Mnemonic : PCMPGTB +// Supported forms : (4 forms) +// +// * PCMPGTB mm, mm [MMX] +// * PCMPGTB m64, mm [MMX] +// * PCMPGTB xmm, xmm [SSE2] +// * PCMPGTB m128, xmm [SSE2] +// +func (self *Program) PCMPGTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTB", 2, Operands { v0, v1 }) + // PCMPGTB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x64) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x64) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPGTB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x64) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x64) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTB") + } + return p +} + +// PCMPGTD performs "Compare Packed Signed Doubleword Integers for Greater Than". +// +// Mnemonic : PCMPGTD +// Supported forms : (4 forms) +// +// * PCMPGTD mm, mm [MMX] +// * PCMPGTD m64, mm [MMX] +// * PCMPGTD xmm, xmm [SSE2] +// * PCMPGTD m128, xmm [SSE2] +// +func (self *Program) PCMPGTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTD", 2, Operands { v0, v1 }) + // PCMPGTD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x66) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x66) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPGTD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x66) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x66) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTD") + } + return p +} + +// PCMPGTQ performs "Compare Packed Data for Greater Than". +// +// Mnemonic : PCMPGTQ +// Supported forms : (2 forms) +// +// * PCMPGTQ xmm, xmm [SSE4.2] +// * PCMPGTQ m128, xmm [SSE4.2] +// +func (self *Program) PCMPGTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTQ", 2, Operands { v0, v1 }) + // PCMPGTQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x37) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x37) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTQ") + } + return p +} + +// PCMPGTW performs "Compare Packed Signed Word Integers for Greater Than". +// +// Mnemonic : PCMPGTW +// Supported forms : (4 forms) +// +// * PCMPGTW mm, mm [MMX] +// * PCMPGTW m64, mm [MMX] +// * PCMPGTW xmm, xmm [SSE2] +// * PCMPGTW m128, xmm [SSE2] +// +func (self *Program) PCMPGTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PCMPGTW", 2, Operands { v0, v1 }) + // PCMPGTW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x65) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x65) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PCMPGTW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x65) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PCMPGTW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x65) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPGTW") + } + return p +} + +// PCMPISTRI performs "Packed Compare Implicit Length Strings, Return Index". +// +// Mnemonic : PCMPISTRI +// Supported forms : (2 forms) +// +// * PCMPISTRI imm8, xmm, xmm [SSE4.2] +// * PCMPISTRI imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPISTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPISTRI", 3, Operands { v0, v1, v2 }) + // PCMPISTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPISTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPISTRI") + } + return p +} + +// PCMPISTRM performs "Packed Compare Implicit Length Strings, Return Mask". +// +// Mnemonic : PCMPISTRM +// Supported forms : (2 forms) +// +// * PCMPISTRM imm8, xmm, xmm [SSE4.2] +// * PCMPISTRM imm8, m128, xmm [SSE4.2] +// +func (self *Program) PCMPISTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PCMPISTRM", 3, Operands { v0, v1, v2 }) + // PCMPISTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PCMPISTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PCMPISTRM") + } + return p +} + +// PDEP performs "Parallel Bits Deposit". +// +// Mnemonic : PDEP +// Supported forms : (4 forms) +// +// * PDEP r32, r32, r32 [BMI2] +// * PDEP m32, r32, r32 [BMI2] +// * PDEP r64, r64, r64 [BMI2] +// * PDEP m64, r64, r64 [BMI2] +// +func (self *Program) PDEP(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PDEP", 3, Operands { v0, v1, v2 }) + // PDEP r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7b ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PDEP m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // PDEP r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PDEP m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PDEP") + } + return p +} + +// PEXT performs "Parallel Bits Extract". +// +// Mnemonic : PEXT +// Supported forms : (4 forms) +// +// * PEXT r32, r32, r32 [BMI2] +// * PEXT m32, r32, r32 [BMI2] +// * PEXT r64, r64, r64 [BMI2] +// * PEXT m64, r64, r64 [BMI2] +// +func (self *Program) PEXT(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXT", 3, Operands { v0, v1, v2 }) + // PEXT r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7a ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PEXT m32, r32, r32 + if isM32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x02, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // PEXT r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa ^ (hlcode(v[1]) << 3)) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // PEXT m64, r64, r64 + if isM64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x82, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PEXT") + } + return p +} + +// PEXTRB performs "Extract Byte". +// +// Mnemonic : PEXTRB +// Supported forms : (2 forms) +// +// * PEXTRB imm8, xmm, r32 [SSE4.1] +// * PEXTRB imm8, xmm, m8 [SSE4.1] +// +func (self *Program) PEXTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRB", 3, Operands { v0, v1, v2 }) + // PEXTRB imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRB imm8, xmm, m8 + if isImm8(v0) && isXMM(v1) && isM8(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRB") + } + return p +} + +// PEXTRD performs "Extract Doubleword". +// +// Mnemonic : PEXTRD +// Supported forms : (2 forms) +// +// * PEXTRD imm8, xmm, r32 [SSE4.1] +// * PEXTRD imm8, xmm, m32 [SSE4.1] +// +func (self *Program) PEXTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRD", 3, Operands { v0, v1, v2 }) + // PEXTRD imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRD imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRD") + } + return p +} + +// PEXTRQ performs "Extract Quadword". +// +// Mnemonic : PEXTRQ +// Supported forms : (2 forms) +// +// * PEXTRQ imm8, xmm, r64 [SSE4.1] +// * PEXTRQ imm8, xmm, m64 [SSE4.1] +// +func (self *Program) PEXTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRQ", 3, Operands { v0, v1, v2 }) + // PEXTRQ imm8, xmm, r64 + if isImm8(v0) && isXMM(v1) && isReg64(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRQ imm8, xmm, m64 + if isImm8(v0) && isXMM(v1) && isM64(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRQ") + } + return p +} + +// PEXTRW performs "Extract Word". +// +// Mnemonic : PEXTRW +// Supported forms : (3 forms) +// +// * PEXTRW imm8, mm, r32 [MMX+] +// * PEXTRW imm8, xmm, r32 [SSE4.1] +// * PEXTRW imm8, xmm, m16 [SSE4.1] +// +func (self *Program) PEXTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PEXTRW", 3, Operands { v0, v1, v2 }) + // PEXTRW imm8, mm, r32 + if isImm8(v0) && isMM(v1) && isReg32(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRW imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PEXTRW imm8, xmm, m16 + if isImm8(v0) && isXMM(v1) && isM16(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PEXTRW") + } + return p +} + +// PF2ID performs "Packed Floating-Point to Integer Doubleword Converson". +// +// Mnemonic : PF2ID +// Supported forms : (2 forms) +// +// * PF2ID mm, mm [3dnow!] +// * PF2ID m64, mm [3dnow!] +// +func (self *Program) PF2ID(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PF2ID", 2, Operands { v0, v1 }) + // PF2ID mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x1d) + }) + } + // PF2ID m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x1d) + }) + } + if p.len == 0 { + panic("invalid operands for PF2ID") + } + return p +} + +// PF2IW performs "Packed Floating-Point to Integer Word Conversion". +// +// Mnemonic : PF2IW +// Supported forms : (2 forms) +// +// * PF2IW mm, mm [3dnow!+] +// * PF2IW m64, mm [3dnow!+] +// +func (self *Program) PF2IW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PF2IW", 2, Operands { v0, v1 }) + // PF2IW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x1c) + }) + } + // PF2IW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x1c) + }) + } + if p.len == 0 { + panic("invalid operands for PF2IW") + } + return p +} + +// PFACC performs "Packed Floating-Point Accumulate". +// +// Mnemonic : PFACC +// Supported forms : (2 forms) +// +// * PFACC mm, mm [3dnow!] +// * PFACC m64, mm [3dnow!] +// +func (self *Program) PFACC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFACC", 2, Operands { v0, v1 }) + // PFACC mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xae) + }) + } + // PFACC m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xae) + }) + } + if p.len == 0 { + panic("invalid operands for PFACC") + } + return p +} + +// PFADD performs "Packed Floating-Point Add". +// +// Mnemonic : PFADD +// Supported forms : (2 forms) +// +// * PFADD mm, mm [3dnow!] +// * PFADD m64, mm [3dnow!] +// +func (self *Program) PFADD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFADD", 2, Operands { v0, v1 }) + // PFADD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x9e) + }) + } + // PFADD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x9e) + }) + } + if p.len == 0 { + panic("invalid operands for PFADD") + } + return p +} + +// PFCMPEQ performs "Packed Floating-Point Compare for Equal". +// +// Mnemonic : PFCMPEQ +// Supported forms : (2 forms) +// +// * PFCMPEQ mm, mm [3dnow!] +// * PFCMPEQ m64, mm [3dnow!] +// +func (self *Program) PFCMPEQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFCMPEQ", 2, Operands { v0, v1 }) + // PFCMPEQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb0) + }) + } + // PFCMPEQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb0) + }) + } + if p.len == 0 { + panic("invalid operands for PFCMPEQ") + } + return p +} + +// PFCMPGE performs "Packed Floating-Point Compare for Greater or Equal". +// +// Mnemonic : PFCMPGE +// Supported forms : (2 forms) +// +// * PFCMPGE mm, mm [3dnow!] +// * PFCMPGE m64, mm [3dnow!] +// +func (self *Program) PFCMPGE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFCMPGE", 2, Operands { v0, v1 }) + // PFCMPGE mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x90) + }) + } + // PFCMPGE m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x90) + }) + } + if p.len == 0 { + panic("invalid operands for PFCMPGE") + } + return p +} + +// PFCMPGT performs "Packed Floating-Point Compare for Greater Than". +// +// Mnemonic : PFCMPGT +// Supported forms : (2 forms) +// +// * PFCMPGT mm, mm [3dnow!] +// * PFCMPGT m64, mm [3dnow!] +// +func (self *Program) PFCMPGT(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFCMPGT", 2, Operands { v0, v1 }) + // PFCMPGT mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa0) + }) + } + // PFCMPGT m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa0) + }) + } + if p.len == 0 { + panic("invalid operands for PFCMPGT") + } + return p +} + +// PFMAX performs "Packed Floating-Point Maximum". +// +// Mnemonic : PFMAX +// Supported forms : (2 forms) +// +// * PFMAX mm, mm [3dnow!] +// * PFMAX m64, mm [3dnow!] +// +func (self *Program) PFMAX(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFMAX", 2, Operands { v0, v1 }) + // PFMAX mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa4) + }) + } + // PFMAX m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa4) + }) + } + if p.len == 0 { + panic("invalid operands for PFMAX") + } + return p +} + +// PFMIN performs "Packed Floating-Point Minimum". +// +// Mnemonic : PFMIN +// Supported forms : (2 forms) +// +// * PFMIN mm, mm [3dnow!] +// * PFMIN m64, mm [3dnow!] +// +func (self *Program) PFMIN(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFMIN", 2, Operands { v0, v1 }) + // PFMIN mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x94) + }) + } + // PFMIN m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x94) + }) + } + if p.len == 0 { + panic("invalid operands for PFMIN") + } + return p +} + +// PFMUL performs "Packed Floating-Point Multiply". +// +// Mnemonic : PFMUL +// Supported forms : (2 forms) +// +// * PFMUL mm, mm [3dnow!] +// * PFMUL m64, mm [3dnow!] +// +func (self *Program) PFMUL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFMUL", 2, Operands { v0, v1 }) + // PFMUL mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb4) + }) + } + // PFMUL m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb4) + }) + } + if p.len == 0 { + panic("invalid operands for PFMUL") + } + return p +} + +// PFNACC performs "Packed Floating-Point Negative Accumulate". +// +// Mnemonic : PFNACC +// Supported forms : (2 forms) +// +// * PFNACC mm, mm [3dnow!+] +// * PFNACC m64, mm [3dnow!+] +// +func (self *Program) PFNACC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFNACC", 2, Operands { v0, v1 }) + // PFNACC mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x8a) + }) + } + // PFNACC m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x8a) + }) + } + if p.len == 0 { + panic("invalid operands for PFNACC") + } + return p +} + +// PFPNACC performs "Packed Floating-Point Positive-Negative Accumulate". +// +// Mnemonic : PFPNACC +// Supported forms : (2 forms) +// +// * PFPNACC mm, mm [3dnow!+] +// * PFPNACC m64, mm [3dnow!+] +// +func (self *Program) PFPNACC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFPNACC", 2, Operands { v0, v1 }) + // PFPNACC mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x8e) + }) + } + // PFPNACC m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x8e) + }) + } + if p.len == 0 { + panic("invalid operands for PFPNACC") + } + return p +} + +// PFRCP performs "Packed Floating-Point Reciprocal Approximation". +// +// Mnemonic : PFRCP +// Supported forms : (2 forms) +// +// * PFRCP mm, mm [3dnow!] +// * PFRCP m64, mm [3dnow!] +// +func (self *Program) PFRCP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRCP", 2, Operands { v0, v1 }) + // PFRCP mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x96) + }) + } + // PFRCP m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x96) + }) + } + if p.len == 0 { + panic("invalid operands for PFRCP") + } + return p +} + +// PFRCPIT1 performs "Packed Floating-Point Reciprocal Iteration 1". +// +// Mnemonic : PFRCPIT1 +// Supported forms : (2 forms) +// +// * PFRCPIT1 mm, mm [3dnow!] +// * PFRCPIT1 m64, mm [3dnow!] +// +func (self *Program) PFRCPIT1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRCPIT1", 2, Operands { v0, v1 }) + // PFRCPIT1 mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa6) + }) + } + // PFRCPIT1 m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa6) + }) + } + if p.len == 0 { + panic("invalid operands for PFRCPIT1") + } + return p +} + +// PFRCPIT2 performs "Packed Floating-Point Reciprocal Iteration 2". +// +// Mnemonic : PFRCPIT2 +// Supported forms : (2 forms) +// +// * PFRCPIT2 mm, mm [3dnow!] +// * PFRCPIT2 m64, mm [3dnow!] +// +func (self *Program) PFRCPIT2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRCPIT2", 2, Operands { v0, v1 }) + // PFRCPIT2 mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb6) + }) + } + // PFRCPIT2 m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb6) + }) + } + if p.len == 0 { + panic("invalid operands for PFRCPIT2") + } + return p +} + +// PFRSQIT1 performs "Packed Floating-Point Reciprocal Square Root Iteration 1". +// +// Mnemonic : PFRSQIT1 +// Supported forms : (2 forms) +// +// * PFRSQIT1 mm, mm [3dnow!] +// * PFRSQIT1 m64, mm [3dnow!] +// +func (self *Program) PFRSQIT1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRSQIT1", 2, Operands { v0, v1 }) + // PFRSQIT1 mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xa7) + }) + } + // PFRSQIT1 m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xa7) + }) + } + if p.len == 0 { + panic("invalid operands for PFRSQIT1") + } + return p +} + +// PFRSQRT performs "Packed Floating-Point Reciprocal Square Root Approximation". +// +// Mnemonic : PFRSQRT +// Supported forms : (2 forms) +// +// * PFRSQRT mm, mm [3dnow!] +// * PFRSQRT m64, mm [3dnow!] +// +func (self *Program) PFRSQRT(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFRSQRT", 2, Operands { v0, v1 }) + // PFRSQRT mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x97) + }) + } + // PFRSQRT m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x97) + }) + } + if p.len == 0 { + panic("invalid operands for PFRSQRT") + } + return p +} + +// PFSUB performs "Packed Floating-Point Subtract". +// +// Mnemonic : PFSUB +// Supported forms : (2 forms) +// +// * PFSUB mm, mm [3dnow!] +// * PFSUB m64, mm [3dnow!] +// +func (self *Program) PFSUB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFSUB", 2, Operands { v0, v1 }) + // PFSUB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x9a) + }) + } + // PFSUB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x9a) + }) + } + if p.len == 0 { + panic("invalid operands for PFSUB") + } + return p +} + +// PFSUBR performs "Packed Floating-Point Subtract Reverse". +// +// Mnemonic : PFSUBR +// Supported forms : (2 forms) +// +// * PFSUBR mm, mm [3dnow!] +// * PFSUBR m64, mm [3dnow!] +// +func (self *Program) PFSUBR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PFSUBR", 2, Operands { v0, v1 }) + // PFSUBR mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xaa) + }) + } + // PFSUBR m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xaa) + }) + } + if p.len == 0 { + panic("invalid operands for PFSUBR") + } + return p +} + +// PHADDD performs "Packed Horizontal Add Doubleword Integer". +// +// Mnemonic : PHADDD +// Supported forms : (4 forms) +// +// * PHADDD mm, mm [SSSE3] +// * PHADDD m64, mm [SSSE3] +// * PHADDD xmm, xmm [SSSE3] +// * PHADDD m128, xmm [SSSE3] +// +func (self *Program) PHADDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHADDD", 2, Operands { v0, v1 }) + // PHADDD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHADDD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x02) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHADDD") + } + return p +} + +// PHADDSW performs "Packed Horizontal Add Signed Word Integers with Signed Saturation". +// +// Mnemonic : PHADDSW +// Supported forms : (4 forms) +// +// * PHADDSW mm, mm [SSSE3] +// * PHADDSW m64, mm [SSSE3] +// * PHADDSW xmm, xmm [SSSE3] +// * PHADDSW m128, xmm [SSSE3] +// +func (self *Program) PHADDSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHADDSW", 2, Operands { v0, v1 }) + // PHADDSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHADDSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x03) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHADDSW") + } + return p +} + +// PHADDW performs "Packed Horizontal Add Word Integers". +// +// Mnemonic : PHADDW +// Supported forms : (4 forms) +// +// * PHADDW mm, mm [SSSE3] +// * PHADDW m64, mm [SSSE3] +// * PHADDW xmm, xmm [SSSE3] +// * PHADDW m128, xmm [SSSE3] +// +func (self *Program) PHADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHADDW", 2, Operands { v0, v1 }) + // PHADDW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHADDW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHADDW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x01) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHADDW") + } + return p +} + +// PHMINPOSUW performs "Packed Horizontal Minimum of Unsigned Word Integers". +// +// Mnemonic : PHMINPOSUW +// Supported forms : (2 forms) +// +// * PHMINPOSUW xmm, xmm [SSE4.1] +// * PHMINPOSUW m128, xmm [SSE4.1] +// +func (self *Program) PHMINPOSUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHMINPOSUW", 2, Operands { v0, v1 }) + // PHMINPOSUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHMINPOSUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHMINPOSUW") + } + return p +} + +// PHSUBD performs "Packed Horizontal Subtract Doubleword Integers". +// +// Mnemonic : PHSUBD +// Supported forms : (4 forms) +// +// * PHSUBD mm, mm [SSSE3] +// * PHSUBD m64, mm [SSSE3] +// * PHSUBD xmm, xmm [SSSE3] +// * PHSUBD m128, xmm [SSSE3] +// +func (self *Program) PHSUBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHSUBD", 2, Operands { v0, v1 }) + // PHSUBD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHSUBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x06) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHSUBD") + } + return p +} + +// PHSUBSW performs "Packed Horizontal Subtract Signed Word Integers with Signed Saturation". +// +// Mnemonic : PHSUBSW +// Supported forms : (4 forms) +// +// * PHSUBSW mm, mm [SSSE3] +// * PHSUBSW m64, mm [SSSE3] +// * PHSUBSW xmm, xmm [SSSE3] +// * PHSUBSW m128, xmm [SSSE3] +// +func (self *Program) PHSUBSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHSUBSW", 2, Operands { v0, v1 }) + // PHSUBSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHSUBSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x07) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHSUBSW") + } + return p +} + +// PHSUBW performs "Packed Horizontal Subtract Word Integers". +// +// Mnemonic : PHSUBW +// Supported forms : (4 forms) +// +// * PHSUBW mm, mm [SSSE3] +// * PHSUBW m64, mm [SSSE3] +// * PHSUBW xmm, xmm [SSSE3] +// * PHSUBW m128, xmm [SSSE3] +// +func (self *Program) PHSUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PHSUBW", 2, Operands { v0, v1 }) + // PHSUBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PHSUBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PHSUBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x05) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PHSUBW") + } + return p +} + +// PI2FD performs "Packed Integer to Floating-Point Doubleword Conversion". +// +// Mnemonic : PI2FD +// Supported forms : (2 forms) +// +// * PI2FD mm, mm [3dnow!] +// * PI2FD m64, mm [3dnow!] +// +func (self *Program) PI2FD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PI2FD", 2, Operands { v0, v1 }) + // PI2FD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x0d) + }) + } + // PI2FD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x0d) + }) + } + if p.len == 0 { + panic("invalid operands for PI2FD") + } + return p +} + +// PI2FW performs "Packed Integer to Floating-Point Word Conversion". +// +// Mnemonic : PI2FW +// Supported forms : (2 forms) +// +// * PI2FW mm, mm [3dnow!+] +// * PI2FW m64, mm [3dnow!+] +// +func (self *Program) PI2FW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PI2FW", 2, Operands { v0, v1 }) + // PI2FW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0x0c) + }) + } + // PI2FW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0x0c) + }) + } + if p.len == 0 { + panic("invalid operands for PI2FW") + } + return p +} + +// PINSRB performs "Insert Byte". +// +// Mnemonic : PINSRB +// Supported forms : (2 forms) +// +// * PINSRB imm8, r32, xmm [SSE4.1] +// * PINSRB imm8, m8, xmm [SSE4.1] +// +func (self *Program) PINSRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRB", 3, Operands { v0, v1, v2 }) + // PINSRB imm8, r32, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x20) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRB imm8, m8, xmm + if isImm8(v0) && isM8(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x20) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRB") + } + return p +} + +// PINSRD performs "Insert Doubleword". +// +// Mnemonic : PINSRD +// Supported forms : (2 forms) +// +// * PINSRD imm8, r32, xmm [SSE4.1] +// * PINSRD imm8, m32, xmm [SSE4.1] +// +func (self *Program) PINSRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRD", 3, Operands { v0, v1, v2 }) + // PINSRD imm8, r32, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRD imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRD") + } + return p +} + +// PINSRQ performs "Insert Quadword". +// +// Mnemonic : PINSRQ +// Supported forms : (2 forms) +// +// * PINSRQ imm8, r64, xmm [SSE4.1] +// * PINSRQ imm8, m64, xmm [SSE4.1] +// +func (self *Program) PINSRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRQ", 3, Operands { v0, v1, v2 }) + // PINSRQ imm8, r64, xmm + if isImm8(v0) && isReg64(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x48 | hcode(v[2]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRQ imm8, m64, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexm(1, hcode(v[2]), addr(v[1])) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x22) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRQ") + } + return p +} + +// PINSRW performs "Insert Word". +// +// Mnemonic : PINSRW +// Supported forms : (4 forms) +// +// * PINSRW imm8, r32, mm [MMX+] +// * PINSRW imm8, m16, mm [MMX+] +// * PINSRW imm8, r32, xmm [SSE2] +// * PINSRW imm8, m16, xmm [SSE2] +// +func (self *Program) PINSRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PINSRW", 3, Operands { v0, v1, v2 }) + // PINSRW imm8, r32, mm + if isImm8(v0) && isReg32(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRW imm8, m16, mm + if isImm8(v0) && isM16(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc4) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRW imm8, r32, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PINSRW imm8, m16, xmm + if isImm8(v0) && isM16(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc4) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PINSRW") + } + return p +} + +// PMADDUBSW performs "Multiply and Add Packed Signed and Unsigned Byte Integers". +// +// Mnemonic : PMADDUBSW +// Supported forms : (4 forms) +// +// * PMADDUBSW mm, mm [SSSE3] +// * PMADDUBSW m64, mm [SSSE3] +// * PMADDUBSW xmm, xmm [SSSE3] +// * PMADDUBSW m128, xmm [SSSE3] +// +func (self *Program) PMADDUBSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMADDUBSW", 2, Operands { v0, v1 }) + // PMADDUBSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDUBSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMADDUBSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDUBSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x04) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMADDUBSW") + } + return p +} + +// PMADDWD performs "Multiply and Add Packed Signed Word Integers". +// +// Mnemonic : PMADDWD +// Supported forms : (4 forms) +// +// * PMADDWD mm, mm [MMX] +// * PMADDWD m64, mm [MMX] +// * PMADDWD xmm, xmm [SSE2] +// * PMADDWD m128, xmm [SSE2] +// +func (self *Program) PMADDWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMADDWD", 2, Operands { v0, v1 }) + // PMADDWD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDWD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMADDWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMADDWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMADDWD") + } + return p +} + +// PMAXSB performs "Maximum of Packed Signed Byte Integers". +// +// Mnemonic : PMAXSB +// Supported forms : (2 forms) +// +// * PMAXSB xmm, xmm [SSE4.1] +// * PMAXSB m128, xmm [SSE4.1] +// +func (self *Program) PMAXSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXSB", 2, Operands { v0, v1 }) + // PMAXSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXSB") + } + return p +} + +// PMAXSD performs "Maximum of Packed Signed Doubleword Integers". +// +// Mnemonic : PMAXSD +// Supported forms : (2 forms) +// +// * PMAXSD xmm, xmm [SSE4.1] +// * PMAXSD m128, xmm [SSE4.1] +// +func (self *Program) PMAXSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXSD", 2, Operands { v0, v1 }) + // PMAXSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXSD") + } + return p +} + +// PMAXSW performs "Maximum of Packed Signed Word Integers". +// +// Mnemonic : PMAXSW +// Supported forms : (4 forms) +// +// * PMAXSW mm, mm [MMX+] +// * PMAXSW m64, mm [MMX+] +// * PMAXSW xmm, xmm [SSE2] +// * PMAXSW m128, xmm [SSE2] +// +func (self *Program) PMAXSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXSW", 2, Operands { v0, v1 }) + // PMAXSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xee) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xee) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMAXSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xee) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xee) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXSW") + } + return p +} + +// PMAXUB performs "Maximum of Packed Unsigned Byte Integers". +// +// Mnemonic : PMAXUB +// Supported forms : (4 forms) +// +// * PMAXUB mm, mm [MMX+] +// * PMAXUB m64, mm [MMX+] +// * PMAXUB xmm, xmm [SSE2] +// * PMAXUB m128, xmm [SSE2] +// +func (self *Program) PMAXUB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXUB", 2, Operands { v0, v1 }) + // PMAXUB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xde) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xde) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMAXUB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xde) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xde) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXUB") + } + return p +} + +// PMAXUD performs "Maximum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : PMAXUD +// Supported forms : (2 forms) +// +// * PMAXUD xmm, xmm [SSE4.1] +// * PMAXUD m128, xmm [SSE4.1] +// +func (self *Program) PMAXUD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXUD", 2, Operands { v0, v1 }) + // PMAXUD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXUD") + } + return p +} + +// PMAXUW performs "Maximum of Packed Unsigned Word Integers". +// +// Mnemonic : PMAXUW +// Supported forms : (2 forms) +// +// * PMAXUW xmm, xmm [SSE4.1] +// * PMAXUW m128, xmm [SSE4.1] +// +func (self *Program) PMAXUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMAXUW", 2, Operands { v0, v1 }) + // PMAXUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMAXUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMAXUW") + } + return p +} + +// PMINSB performs "Minimum of Packed Signed Byte Integers". +// +// Mnemonic : PMINSB +// Supported forms : (2 forms) +// +// * PMINSB xmm, xmm [SSE4.1] +// * PMINSB m128, xmm [SSE4.1] +// +func (self *Program) PMINSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINSB", 2, Operands { v0, v1 }) + // PMINSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x38) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINSB") + } + return p +} + +// PMINSD performs "Minimum of Packed Signed Doubleword Integers". +// +// Mnemonic : PMINSD +// Supported forms : (2 forms) +// +// * PMINSD xmm, xmm [SSE4.1] +// * PMINSD m128, xmm [SSE4.1] +// +func (self *Program) PMINSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINSD", 2, Operands { v0, v1 }) + // PMINSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINSD") + } + return p +} + +// PMINSW performs "Minimum of Packed Signed Word Integers". +// +// Mnemonic : PMINSW +// Supported forms : (4 forms) +// +// * PMINSW mm, mm [MMX+] +// * PMINSW m64, mm [MMX+] +// * PMINSW xmm, xmm [SSE2] +// * PMINSW m128, xmm [SSE2] +// +func (self *Program) PMINSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINSW", 2, Operands { v0, v1 }) + // PMINSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xea) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xea) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMINSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xea) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xea) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINSW") + } + return p +} + +// PMINUB performs "Minimum of Packed Unsigned Byte Integers". +// +// Mnemonic : PMINUB +// Supported forms : (4 forms) +// +// * PMINUB mm, mm [MMX+] +// * PMINUB m64, mm [MMX+] +// * PMINUB xmm, xmm [SSE2] +// * PMINUB m128, xmm [SSE2] +// +func (self *Program) PMINUB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINUB", 2, Operands { v0, v1 }) + // PMINUB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xda) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xda) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMINUB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xda) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xda) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINUB") + } + return p +} + +// PMINUD performs "Minimum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : PMINUD +// Supported forms : (2 forms) +// +// * PMINUD xmm, xmm [SSE4.1] +// * PMINUD m128, xmm [SSE4.1] +// +func (self *Program) PMINUD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINUD", 2, Operands { v0, v1 }) + // PMINUD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINUD") + } + return p +} + +// PMINUW performs "Minimum of Packed Unsigned Word Integers". +// +// Mnemonic : PMINUW +// Supported forms : (2 forms) +// +// * PMINUW xmm, xmm [SSE4.1] +// * PMINUW m128, xmm [SSE4.1] +// +func (self *Program) PMINUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMINUW", 2, Operands { v0, v1 }) + // PMINUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMINUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x3a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMINUW") + } + return p +} + +// PMOVMSKB performs "Move Byte Mask". +// +// Mnemonic : PMOVMSKB +// Supported forms : (2 forms) +// +// * PMOVMSKB mm, r32 [MMX+] +// * PMOVMSKB xmm, r32 [SSE2] +// +func (self *Program) PMOVMSKB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVMSKB", 2, Operands { v0, v1 }) + // PMOVMSKB mm, r32 + if isMM(v0) && isReg32(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVMSKB xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVMSKB") + } + return p +} + +// PMOVSXBD performs "Move Packed Byte Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : PMOVSXBD +// Supported forms : (2 forms) +// +// * PMOVSXBD xmm, xmm [SSE4.1] +// * PMOVSXBD m32, xmm [SSE4.1] +// +func (self *Program) PMOVSXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXBD", 2, Operands { v0, v1 }) + // PMOVSXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXBD") + } + return p +} + +// PMOVSXBQ performs "Move Packed Byte Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : PMOVSXBQ +// Supported forms : (2 forms) +// +// * PMOVSXBQ xmm, xmm [SSE4.1] +// * PMOVSXBQ m16, xmm [SSE4.1] +// +func (self *Program) PMOVSXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXBQ", 2, Operands { v0, v1 }) + // PMOVSXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXBQ") + } + return p +} + +// PMOVSXBW performs "Move Packed Byte Integers to Word Integers with Sign Extension". +// +// Mnemonic : PMOVSXBW +// Supported forms : (2 forms) +// +// * PMOVSXBW xmm, xmm [SSE4.1] +// * PMOVSXBW m64, xmm [SSE4.1] +// +func (self *Program) PMOVSXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXBW", 2, Operands { v0, v1 }) + // PMOVSXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXBW") + } + return p +} + +// PMOVSXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : PMOVSXDQ +// Supported forms : (2 forms) +// +// * PMOVSXDQ xmm, xmm [SSE4.1] +// * PMOVSXDQ m64, xmm [SSE4.1] +// +func (self *Program) PMOVSXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXDQ", 2, Operands { v0, v1 }) + // PMOVSXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXDQ") + } + return p +} + +// PMOVSXWD performs "Move Packed Word Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : PMOVSXWD +// Supported forms : (2 forms) +// +// * PMOVSXWD xmm, xmm [SSE4.1] +// * PMOVSXWD m64, xmm [SSE4.1] +// +func (self *Program) PMOVSXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXWD", 2, Operands { v0, v1 }) + // PMOVSXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXWD") + } + return p +} + +// PMOVSXWQ performs "Move Packed Word Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : PMOVSXWQ +// Supported forms : (2 forms) +// +// * PMOVSXWQ xmm, xmm [SSE4.1] +// * PMOVSXWQ m32, xmm [SSE4.1] +// +func (self *Program) PMOVSXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVSXWQ", 2, Operands { v0, v1 }) + // PMOVSXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVSXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVSXWQ") + } + return p +} + +// PMOVZXBD performs "Move Packed Byte Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : PMOVZXBD +// Supported forms : (2 forms) +// +// * PMOVZXBD xmm, xmm [SSE4.1] +// * PMOVZXBD m32, xmm [SSE4.1] +// +func (self *Program) PMOVZXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXBD", 2, Operands { v0, v1 }) + // PMOVZXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXBD") + } + return p +} + +// PMOVZXBQ performs "Move Packed Byte Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : PMOVZXBQ +// Supported forms : (2 forms) +// +// * PMOVZXBQ xmm, xmm [SSE4.1] +// * PMOVZXBQ m16, xmm [SSE4.1] +// +func (self *Program) PMOVZXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXBQ", 2, Operands { v0, v1 }) + // PMOVZXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXBQ") + } + return p +} + +// PMOVZXBW performs "Move Packed Byte Integers to Word Integers with Zero Extension". +// +// Mnemonic : PMOVZXBW +// Supported forms : (2 forms) +// +// * PMOVZXBW xmm, xmm [SSE4.1] +// * PMOVZXBW m64, xmm [SSE4.1] +// +func (self *Program) PMOVZXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXBW", 2, Operands { v0, v1 }) + // PMOVZXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXBW") + } + return p +} + +// PMOVZXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : PMOVZXDQ +// Supported forms : (2 forms) +// +// * PMOVZXDQ xmm, xmm [SSE4.1] +// * PMOVZXDQ m64, xmm [SSE4.1] +// +func (self *Program) PMOVZXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXDQ", 2, Operands { v0, v1 }) + // PMOVZXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXDQ") + } + return p +} + +// PMOVZXWD performs "Move Packed Word Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : PMOVZXWD +// Supported forms : (2 forms) +// +// * PMOVZXWD xmm, xmm [SSE4.1] +// * PMOVZXWD m64, xmm [SSE4.1] +// +func (self *Program) PMOVZXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXWD", 2, Operands { v0, v1 }) + // PMOVZXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXWD") + } + return p +} + +// PMOVZXWQ performs "Move Packed Word Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : PMOVZXWQ +// Supported forms : (2 forms) +// +// * PMOVZXWQ xmm, xmm [SSE4.1] +// * PMOVZXWQ m32, xmm [SSE4.1] +// +func (self *Program) PMOVZXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMOVZXWQ", 2, Operands { v0, v1 }) + // PMOVZXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMOVZXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMOVZXWQ") + } + return p +} + +// PMULDQ performs "Multiply Packed Signed Doubleword Integers and Store Quadword Result". +// +// Mnemonic : PMULDQ +// Supported forms : (2 forms) +// +// * PMULDQ xmm, xmm [SSE4.1] +// * PMULDQ m128, xmm [SSE4.1] +// +func (self *Program) PMULDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULDQ", 2, Operands { v0, v1 }) + // PMULDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULDQ") + } + return p +} + +// PMULHRSW performs "Packed Multiply Signed Word Integers and Store High Result with Round and Scale". +// +// Mnemonic : PMULHRSW +// Supported forms : (4 forms) +// +// * PMULHRSW mm, mm [SSSE3] +// * PMULHRSW m64, mm [SSSE3] +// * PMULHRSW xmm, xmm [SSSE3] +// * PMULHRSW m128, xmm [SSSE3] +// +func (self *Program) PMULHRSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHRSW", 2, Operands { v0, v1 }) + // PMULHRSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHRSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULHRSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHRSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHRSW") + } + return p +} + +// PMULHRW performs "Packed Multiply High Rounded Word". +// +// Mnemonic : PMULHRW +// Supported forms : (2 forms) +// +// * PMULHRW mm, mm [3dnow!] +// * PMULHRW m64, mm [3dnow!] +// +func (self *Program) PMULHRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHRW", 2, Operands { v0, v1 }) + // PMULHRW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xb7) + }) + } + // PMULHRW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xb7) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHRW") + } + return p +} + +// PMULHUW performs "Multiply Packed Unsigned Word Integers and Store High Result". +// +// Mnemonic : PMULHUW +// Supported forms : (4 forms) +// +// * PMULHUW mm, mm [MMX+] +// * PMULHUW m64, mm [MMX+] +// * PMULHUW xmm, xmm [SSE2] +// * PMULHUW m128, xmm [SSE2] +// +func (self *Program) PMULHUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHUW", 2, Operands { v0, v1 }) + // PMULHUW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHUW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULHUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHUW") + } + return p +} + +// PMULHW performs "Multiply Packed Signed Word Integers and Store High Result". +// +// Mnemonic : PMULHW +// Supported forms : (4 forms) +// +// * PMULHW mm, mm [MMX] +// * PMULHW m64, mm [MMX] +// * PMULHW xmm, xmm [SSE2] +// * PMULHW m128, xmm [SSE2] +// +func (self *Program) PMULHW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULHW", 2, Operands { v0, v1 }) + // PMULHW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULHW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULHW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULHW") + } + return p +} + +// PMULLD performs "Multiply Packed Signed Doubleword Integers and Store Low Result". +// +// Mnemonic : PMULLD +// Supported forms : (2 forms) +// +// * PMULLD xmm, xmm [SSE4.1] +// * PMULLD m128, xmm [SSE4.1] +// +func (self *Program) PMULLD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULLD", 2, Operands { v0, v1 }) + // PMULLD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x40) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULLD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x40) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULLD") + } + return p +} + +// PMULLW performs "Multiply Packed Signed Word Integers and Store Low Result". +// +// Mnemonic : PMULLW +// Supported forms : (4 forms) +// +// * PMULLW mm, mm [MMX] +// * PMULLW m64, mm [MMX] +// * PMULLW xmm, xmm [SSE2] +// * PMULLW m128, xmm [SSE2] +// +func (self *Program) PMULLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULLW", 2, Operands { v0, v1 }) + // PMULLW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULLW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULLW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULLW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd5) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULLW") + } + return p +} + +// PMULUDQ performs "Multiply Packed Unsigned Doubleword Integers". +// +// Mnemonic : PMULUDQ +// Supported forms : (4 forms) +// +// * PMULUDQ mm, mm [SSE2] +// * PMULUDQ m64, mm [SSE2] +// * PMULUDQ xmm, xmm [SSE2] +// * PMULUDQ m128, xmm [SSE2] +// +func (self *Program) PMULUDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PMULUDQ", 2, Operands { v0, v1 }) + // PMULUDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULUDQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PMULUDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PMULUDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf4) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PMULUDQ") + } + return p +} + +// POPCNTL performs "Count of Number of Bits Set to 1". +// +// Mnemonic : POPCNT +// Supported forms : (2 forms) +// +// * POPCNTL r32, r32 [POPCNT] +// * POPCNTL m32, r32 [POPCNT] +// +func (self *Program) POPCNTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POPCNTL", 2, Operands { v0, v1 }) + // POPCNTL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POPCNTL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPCNTL") + } + return p +} + +// POPCNTQ performs "Count of Number of Bits Set to 1". +// +// Mnemonic : POPCNT +// Supported forms : (2 forms) +// +// * POPCNTQ r64, r64 [POPCNT] +// * POPCNTQ m64, r64 [POPCNT] +// +func (self *Program) POPCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POPCNTQ", 2, Operands { v0, v1 }) + // POPCNTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POPCNTQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xb8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPCNTQ") + } + return p +} + +// POPCNTW performs "Count of Number of Bits Set to 1". +// +// Mnemonic : POPCNT +// Supported forms : (2 forms) +// +// * POPCNTW r16, r16 [POPCNT] +// * POPCNTW m16, r16 [POPCNT] +// +func (self *Program) POPCNTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POPCNTW", 2, Operands { v0, v1 }) + // POPCNTW r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POPCNTW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_POPCNT) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xb8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPCNTW") + } + return p +} + +// POPQ performs "Pop a Value from the Stack". +// +// Mnemonic : POP +// Supported forms : (2 forms) +// +// * POPQ r64 +// * POPQ m64 +// +func (self *Program) POPQ(v0 interface{}) *Instruction { + p := self.alloc("POPQ", 1, Operands { v0 }) + // POPQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x58 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x8f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // POPQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x8f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPQ") + } + return p +} + +// POPW performs "Pop a Value from the Stack". +// +// Mnemonic : POP +// Supported forms : (2 forms) +// +// * POPW r16 +// * POPW m16 +// +func (self *Program) POPW(v0 interface{}) *Instruction { + p := self.alloc("POPW", 1, Operands { v0 }) + // POPW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x58 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x8f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // POPW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0x8f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POPW") + } + return p +} + +// POR performs "Packed Bitwise Logical OR". +// +// Mnemonic : POR +// Supported forms : (4 forms) +// +// * POR mm, mm [MMX] +// * POR m64, mm [MMX] +// * POR xmm, xmm [SSE2] +// * POR m128, xmm [SSE2] +// +func (self *Program) POR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("POR", 2, Operands { v0, v1 }) + // POR mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POR m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xeb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // POR xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // POR m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xeb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for POR") + } + return p +} + +// PREFETCH performs "Prefetch Data into Caches". +// +// Mnemonic : PREFETCH +// Supported forms : (1 form) +// +// * PREFETCH m8 [PREFETCH] +// +func (self *Program) PREFETCH(v0 interface{}) *Instruction { + p := self.alloc("PREFETCH", 1, Operands { v0 }) + // PREFETCH m8 + if isM8(v0) { + self.require(ISA_PREFETCH) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0d) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCH") + } + return p +} + +// PREFETCHNTA performs "Prefetch Data Into Caches using NTA Hint". +// +// Mnemonic : PREFETCHNTA +// Supported forms : (1 form) +// +// * PREFETCHNTA m8 [MMX+] +// +func (self *Program) PREFETCHNTA(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHNTA", 1, Operands { v0 }) + // PREFETCHNTA m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHNTA") + } + return p +} + +// PREFETCHT0 performs "Prefetch Data Into Caches using T0 Hint". +// +// Mnemonic : PREFETCHT0 +// Supported forms : (1 form) +// +// * PREFETCHT0 m8 [MMX+] +// +func (self *Program) PREFETCHT0(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHT0", 1, Operands { v0 }) + // PREFETCHT0 m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHT0") + } + return p +} + +// PREFETCHT1 performs "Prefetch Data Into Caches using T1 Hint". +// +// Mnemonic : PREFETCHT1 +// Supported forms : (1 form) +// +// * PREFETCHT1 m8 [MMX+] +// +func (self *Program) PREFETCHT1(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHT1", 1, Operands { v0 }) + // PREFETCHT1 m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHT1") + } + return p +} + +// PREFETCHT2 performs "Prefetch Data Into Caches using T2 Hint". +// +// Mnemonic : PREFETCHT2 +// Supported forms : (1 form) +// +// * PREFETCHT2 m8 [MMX+] +// +func (self *Program) PREFETCHT2(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHT2", 1, Operands { v0 }) + // PREFETCHT2 m8 + if isM8(v0) { + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x18) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHT2") + } + return p +} + +// PREFETCHW performs "Prefetch Data into Caches in Anticipation of a Write". +// +// Mnemonic : PREFETCHW +// Supported forms : (1 form) +// +// * PREFETCHW m8 [PREFETCHW] +// +func (self *Program) PREFETCHW(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHW", 1, Operands { v0 }) + // PREFETCHW m8 + if isM8(v0) { + self.require(ISA_PREFETCHW) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0d) + m.mrsd(1, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHW") + } + return p +} + +// PREFETCHWT1 performs "Prefetch Vector Data Into Caches with Intent to Write and T1 Hint". +// +// Mnemonic : PREFETCHWT1 +// Supported forms : (1 form) +// +// * PREFETCHWT1 m8 [PREFETCHWT1] +// +func (self *Program) PREFETCHWT1(v0 interface{}) *Instruction { + p := self.alloc("PREFETCHWT1", 1, Operands { v0 }) + // PREFETCHWT1 m8 + if isM8(v0) { + self.require(ISA_PREFETCHWT1) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0d) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PREFETCHWT1") + } + return p +} + +// PSADBW performs "Compute Sum of Absolute Differences". +// +// Mnemonic : PSADBW +// Supported forms : (4 forms) +// +// * PSADBW mm, mm [MMX+] +// * PSADBW m64, mm [MMX+] +// * PSADBW xmm, xmm [SSE2] +// * PSADBW m128, xmm [SSE2] +// +func (self *Program) PSADBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSADBW", 2, Operands { v0, v1 }) + // PSADBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSADBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSADBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSADBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSADBW") + } + return p +} + +// PSHUFB performs "Packed Shuffle Bytes". +// +// Mnemonic : PSHUFB +// Supported forms : (4 forms) +// +// * PSHUFB mm, mm [SSSE3] +// * PSHUFB m64, mm [SSSE3] +// * PSHUFB xmm, xmm [SSSE3] +// * PSHUFB m128, xmm [SSSE3] +// +func (self *Program) PSHUFB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSHUFB", 2, Operands { v0, v1 }) + // PSHUFB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSHUFB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSHUFB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSHUFB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x00) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFB") + } + return p +} + +// PSHUFD performs "Shuffle Packed Doublewords". +// +// Mnemonic : PSHUFD +// Supported forms : (2 forms) +// +// * PSHUFD imm8, xmm, xmm [SSE2] +// * PSHUFD imm8, m128, xmm [SSE2] +// +func (self *Program) PSHUFD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFD", 3, Operands { v0, v1, v2 }) + // PSHUFD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFD") + } + return p +} + +// PSHUFHW performs "Shuffle Packed High Words". +// +// Mnemonic : PSHUFHW +// Supported forms : (2 forms) +// +// * PSHUFHW imm8, xmm, xmm [SSE2] +// * PSHUFHW imm8, m128, xmm [SSE2] +// +func (self *Program) PSHUFHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFHW", 3, Operands { v0, v1, v2 }) + // PSHUFHW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFHW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFHW") + } + return p +} + +// PSHUFLW performs "Shuffle Packed Low Words". +// +// Mnemonic : PSHUFLW +// Supported forms : (2 forms) +// +// * PSHUFLW imm8, xmm, xmm [SSE2] +// * PSHUFLW imm8, m128, xmm [SSE2] +// +func (self *Program) PSHUFLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFLW", 3, Operands { v0, v1, v2 }) + // PSHUFLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFLW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFLW") + } + return p +} + +// PSHUFW performs "Shuffle Packed Words". +// +// Mnemonic : PSHUFW +// Supported forms : (2 forms) +// +// * PSHUFW imm8, mm, mm [MMX+] +// * PSHUFW imm8, m64, mm [MMX+] +// +func (self *Program) PSHUFW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("PSHUFW", 3, Operands { v0, v1, v2 }) + // PSHUFW imm8, mm, mm + if isImm8(v0) && isMM(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSHUFW imm8, m64, mm + if isImm8(v0) && isM64(v1) && isMM(v2) { + self.require(ISA_MMX_PLUS) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSHUFW") + } + return p +} + +// PSIGNB performs "Packed Sign of Byte Integers". +// +// Mnemonic : PSIGNB +// Supported forms : (4 forms) +// +// * PSIGNB mm, mm [SSSE3] +// * PSIGNB m64, mm [SSSE3] +// * PSIGNB xmm, xmm [SSSE3] +// * PSIGNB m128, xmm [SSSE3] +// +func (self *Program) PSIGNB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSIGNB", 2, Operands { v0, v1 }) + // PSIGNB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSIGNB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x08) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSIGNB") + } + return p +} + +// PSIGND performs "Packed Sign of Doubleword Integers". +// +// Mnemonic : PSIGND +// Supported forms : (4 forms) +// +// * PSIGND mm, mm [SSSE3] +// * PSIGND m64, mm [SSSE3] +// * PSIGND xmm, xmm [SSSE3] +// * PSIGND m128, xmm [SSSE3] +// +func (self *Program) PSIGND(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSIGND", 2, Operands { v0, v1 }) + // PSIGND mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGND m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSIGND xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGND m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x0a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSIGND") + } + return p +} + +// PSIGNW performs "Packed Sign of Word Integers". +// +// Mnemonic : PSIGNW +// Supported forms : (4 forms) +// +// * PSIGNW mm, mm [SSSE3] +// * PSIGNW m64, mm [SSSE3] +// * PSIGNW xmm, xmm [SSSE3] +// * PSIGNW m128, xmm [SSSE3] +// +func (self *Program) PSIGNW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSIGNW", 2, Operands { v0, v1 }) + // PSIGNW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSIGNW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSIGNW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSSE3) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x09) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSIGNW") + } + return p +} + +// PSLLD performs "Shift Packed Doubleword Data Left Logical". +// +// Mnemonic : PSLLD +// Supported forms : (6 forms) +// +// * PSLLD imm8, mm [MMX] +// * PSLLD mm, mm [MMX] +// * PSLLD m64, mm [MMX] +// * PSLLD imm8, xmm [SSE2] +// * PSLLD xmm, xmm [SSE2] +// * PSLLD m128, xmm [SSE2] +// +func (self *Program) PSLLD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLD", 2, Operands { v0, v1 }) + // PSLLD imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSLLD imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLD") + } + return p +} + +// PSLLDQ performs "Shift Packed Double Quadword Left Logical". +// +// Mnemonic : PSLLDQ +// Supported forms : (1 form) +// +// * PSLLDQ imm8, xmm [SSE2] +// +func (self *Program) PSLLDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLDQ", 2, Operands { v0, v1 }) + // PSLLDQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLDQ") + } + return p +} + +// PSLLQ performs "Shift Packed Quadword Data Left Logical". +// +// Mnemonic : PSLLQ +// Supported forms : (6 forms) +// +// * PSLLQ imm8, mm [MMX] +// * PSLLQ mm, mm [MMX] +// * PSLLQ m64, mm [MMX] +// * PSLLQ imm8, xmm [SSE2] +// * PSLLQ xmm, xmm [SSE2] +// * PSLLQ m128, xmm [SSE2] +// +func (self *Program) PSLLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLQ", 2, Operands { v0, v1 }) + // PSLLQ imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSLLQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLQ") + } + return p +} + +// PSLLW performs "Shift Packed Word Data Left Logical". +// +// Mnemonic : PSLLW +// Supported forms : (6 forms) +// +// * PSLLW imm8, mm [MMX] +// * PSLLW mm, mm [MMX] +// * PSLLW m64, mm [MMX] +// * PSLLW imm8, xmm [SSE2] +// * PSLLW xmm, xmm [SSE2] +// * PSLLW m128, xmm [SSE2] +// +func (self *Program) PSLLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSLLW", 2, Operands { v0, v1 }) + // PSLLW imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSLLW imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSLLW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSLLW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSLLW") + } + return p +} + +// PSRAD performs "Shift Packed Doubleword Data Right Arithmetic". +// +// Mnemonic : PSRAD +// Supported forms : (6 forms) +// +// * PSRAD imm8, mm [MMX] +// * PSRAD mm, mm [MMX] +// * PSRAD m64, mm [MMX] +// * PSRAD imm8, xmm [SSE2] +// * PSRAD xmm, xmm [SSE2] +// * PSRAD m128, xmm [SSE2] +// +func (self *Program) PSRAD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRAD", 2, Operands { v0, v1 }) + // PSRAD imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRAD imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRAD") + } + return p +} + +// PSRAW performs "Shift Packed Word Data Right Arithmetic". +// +// Mnemonic : PSRAW +// Supported forms : (6 forms) +// +// * PSRAW imm8, mm [MMX] +// * PSRAW mm, mm [MMX] +// * PSRAW m64, mm [MMX] +// * PSRAW imm8, xmm [SSE2] +// * PSRAW xmm, xmm [SSE2] +// * PSRAW m128, xmm [SSE2] +// +func (self *Program) PSRAW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRAW", 2, Operands { v0, v1 }) + // PSRAW imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRAW imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRAW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRAW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRAW") + } + return p +} + +// PSRLD performs "Shift Packed Doubleword Data Right Logical". +// +// Mnemonic : PSRLD +// Supported forms : (6 forms) +// +// * PSRLD imm8, mm [MMX] +// * PSRLD mm, mm [MMX] +// * PSRLD m64, mm [MMX] +// * PSRLD imm8, xmm [SSE2] +// * PSRLD xmm, xmm [SSE2] +// * PSRLD m128, xmm [SSE2] +// +func (self *Program) PSRLD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLD", 2, Operands { v0, v1 }) + // PSRLD imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRLD imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLD") + } + return p +} + +// PSRLDQ performs "Shift Packed Double Quadword Right Logical". +// +// Mnemonic : PSRLDQ +// Supported forms : (1 form) +// +// * PSRLDQ imm8, xmm [SSE2] +// +func (self *Program) PSRLDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLDQ", 2, Operands { v0, v1 }) + // PSRLDQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLDQ") + } + return p +} + +// PSRLQ performs "Shift Packed Quadword Data Right Logical". +// +// Mnemonic : PSRLQ +// Supported forms : (6 forms) +// +// * PSRLQ imm8, mm [MMX] +// * PSRLQ mm, mm [MMX] +// * PSRLQ m64, mm [MMX] +// * PSRLQ imm8, xmm [SSE2] +// * PSRLQ xmm, xmm [SSE2] +// * PSRLQ m128, xmm [SSE2] +// +func (self *Program) PSRLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLQ", 2, Operands { v0, v1 }) + // PSRLQ imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRLQ imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLQ") + } + return p +} + +// PSRLW performs "Shift Packed Word Data Right Logical". +// +// Mnemonic : PSRLW +// Supported forms : (6 forms) +// +// * PSRLW imm8, mm [MMX] +// * PSRLW mm, mm [MMX] +// * PSRLW m64, mm [MMX] +// * PSRLW imm8, xmm [SSE2] +// * PSRLW xmm, xmm [SSE2] +// * PSRLW m128, xmm [SSE2] +// +func (self *Program) PSRLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSRLW", 2, Operands { v0, v1 }) + // PSRLW imm8, mm + if isImm8(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSRLW imm8, xmm + if isImm8(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x0f) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // PSRLW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSRLW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSRLW") + } + return p +} + +// PSUBB performs "Subtract Packed Byte Integers". +// +// Mnemonic : PSUBB +// Supported forms : (4 forms) +// +// * PSUBB mm, mm [MMX] +// * PSUBB m64, mm [MMX] +// * PSUBB xmm, xmm [SSE2] +// * PSUBB m128, xmm [SSE2] +// +func (self *Program) PSUBB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBB", 2, Operands { v0, v1 }) + // PSUBB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBB") + } + return p +} + +// PSUBD performs "Subtract Packed Doubleword Integers". +// +// Mnemonic : PSUBD +// Supported forms : (4 forms) +// +// * PSUBD mm, mm [MMX] +// * PSUBD m64, mm [MMX] +// * PSUBD xmm, xmm [SSE2] +// * PSUBD m128, xmm [SSE2] +// +func (self *Program) PSUBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBD", 2, Operands { v0, v1 }) + // PSUBD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfa) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfa) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBD") + } + return p +} + +// PSUBQ performs "Subtract Packed Quadword Integers". +// +// Mnemonic : PSUBQ +// Supported forms : (4 forms) +// +// * PSUBQ mm, mm [SSE2] +// * PSUBQ m64, mm [SSE2] +// * PSUBQ xmm, xmm [SSE2] +// * PSUBQ m128, xmm [SSE2] +// +func (self *Program) PSUBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBQ", 2, Operands { v0, v1 }) + // PSUBQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xfb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBQ") + } + return p +} + +// PSUBSB performs "Subtract Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : PSUBSB +// Supported forms : (4 forms) +// +// * PSUBSB mm, mm [MMX] +// * PSUBSB m64, mm [MMX] +// * PSUBSB xmm, xmm [SSE2] +// * PSUBSB m128, xmm [SSE2] +// +func (self *Program) PSUBSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBSB", 2, Operands { v0, v1 }) + // PSUBSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBSB") + } + return p +} + +// PSUBSW performs "Subtract Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : PSUBSW +// Supported forms : (4 forms) +// +// * PSUBSW mm, mm [MMX] +// * PSUBSW m64, mm [MMX] +// * PSUBSW xmm, xmm [SSE2] +// * PSUBSW m128, xmm [SSE2] +// +func (self *Program) PSUBSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBSW", 2, Operands { v0, v1 }) + // PSUBSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xe9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBSW") + } + return p +} + +// PSUBUSB performs "Subtract Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : PSUBUSB +// Supported forms : (4 forms) +// +// * PSUBUSB mm, mm [MMX] +// * PSUBUSB m64, mm [MMX] +// * PSUBUSB xmm, xmm [SSE2] +// * PSUBUSB m128, xmm [SSE2] +// +func (self *Program) PSUBUSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBUSB", 2, Operands { v0, v1 }) + // PSUBUSB mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSB m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBUSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBUSB") + } + return p +} + +// PSUBUSW performs "Subtract Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : PSUBUSW +// Supported forms : (4 forms) +// +// * PSUBUSW mm, mm [MMX] +// * PSUBUSW m64, mm [MMX] +// * PSUBUSW xmm, xmm [SSE2] +// * PSUBUSW m128, xmm [SSE2] +// +func (self *Program) PSUBUSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBUSW", 2, Operands { v0, v1 }) + // PSUBUSW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBUSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBUSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xd9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBUSW") + } + return p +} + +// PSUBW performs "Subtract Packed Word Integers". +// +// Mnemonic : PSUBW +// Supported forms : (4 forms) +// +// * PSUBW mm, mm [MMX] +// * PSUBW m64, mm [MMX] +// * PSUBW xmm, xmm [SSE2] +// * PSUBW m128, xmm [SSE2] +// +func (self *Program) PSUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSUBW", 2, Operands { v0, v1 }) + // PSUBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PSUBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PSUBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xf9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PSUBW") + } + return p +} + +// PSWAPD performs "Packed Swap Doubleword". +// +// Mnemonic : PSWAPD +// Supported forms : (2 forms) +// +// * PSWAPD mm, mm [3dnow!+] +// * PSWAPD m64, mm [3dnow!+] +// +func (self *Program) PSWAPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PSWAPD", 2, Operands { v0, v1 }) + // PSWAPD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + m.emit(0xbb) + }) + } + // PSWAPD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_3DNOW_PLUS) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + m.emit(0xbb) + }) + } + if p.len == 0 { + panic("invalid operands for PSWAPD") + } + return p +} + +// PTEST performs "Packed Logical Compare". +// +// Mnemonic : PTEST +// Supported forms : (2 forms) +// +// * PTEST xmm, xmm [SSE4.1] +// * PTEST m128, xmm [SSE4.1] +// +func (self *Program) PTEST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PTEST", 2, Operands { v0, v1 }) + // PTEST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PTEST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PTEST") + } + return p +} + +// PUNPCKHBW performs "Unpack and Interleave High-Order Bytes into Words". +// +// Mnemonic : PUNPCKHBW +// Supported forms : (4 forms) +// +// * PUNPCKHBW mm, mm [MMX] +// * PUNPCKHBW m64, mm [MMX] +// * PUNPCKHBW xmm, xmm [SSE2] +// * PUNPCKHBW m128, xmm [SSE2] +// +func (self *Program) PUNPCKHBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHBW", 2, Operands { v0, v1 }) + // PUNPCKHBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x68) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHBW m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x68) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKHBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x68) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x68) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHBW") + } + return p +} + +// PUNPCKHDQ performs "Unpack and Interleave High-Order Doublewords into Quadwords". +// +// Mnemonic : PUNPCKHDQ +// Supported forms : (4 forms) +// +// * PUNPCKHDQ mm, mm [MMX] +// * PUNPCKHDQ m64, mm [MMX] +// * PUNPCKHDQ xmm, xmm [SSE2] +// * PUNPCKHDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKHDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHDQ", 2, Operands { v0, v1 }) + // PUNPCKHDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHDQ m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKHDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHDQ") + } + return p +} + +// PUNPCKHQDQ performs "Unpack and Interleave High-Order Quadwords into Double Quadwords". +// +// Mnemonic : PUNPCKHQDQ +// Supported forms : (2 forms) +// +// * PUNPCKHQDQ xmm, xmm [SSE2] +// * PUNPCKHQDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKHQDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHQDQ", 2, Operands { v0, v1 }) + // PUNPCKHQDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHQDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHQDQ") + } + return p +} + +// PUNPCKHWD performs "Unpack and Interleave High-Order Words into Doublewords". +// +// Mnemonic : PUNPCKHWD +// Supported forms : (4 forms) +// +// * PUNPCKHWD mm, mm [MMX] +// * PUNPCKHWD m64, mm [MMX] +// * PUNPCKHWD xmm, xmm [SSE2] +// * PUNPCKHWD m128, xmm [SSE2] +// +func (self *Program) PUNPCKHWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKHWD", 2, Operands { v0, v1 }) + // PUNPCKHWD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x69) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHWD m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x69) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKHWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x69) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKHWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x69) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKHWD") + } + return p +} + +// PUNPCKLBW performs "Unpack and Interleave Low-Order Bytes into Words". +// +// Mnemonic : PUNPCKLBW +// Supported forms : (4 forms) +// +// * PUNPCKLBW mm, mm [MMX] +// * PUNPCKLBW m32, mm [MMX] +// * PUNPCKLBW xmm, xmm [SSE2] +// * PUNPCKLBW m128, xmm [SSE2] +// +func (self *Program) PUNPCKLBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLBW", 2, Operands { v0, v1 }) + // PUNPCKLBW mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x60) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLBW m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x60) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKLBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x60) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x60) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLBW") + } + return p +} + +// PUNPCKLDQ performs "Unpack and Interleave Low-Order Doublewords into Quadwords". +// +// Mnemonic : PUNPCKLDQ +// Supported forms : (4 forms) +// +// * PUNPCKLDQ mm, mm [MMX] +// * PUNPCKLDQ m32, mm [MMX] +// * PUNPCKLDQ xmm, xmm [SSE2] +// * PUNPCKLDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKLDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLDQ", 2, Operands { v0, v1 }) + // PUNPCKLDQ mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x62) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLDQ m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x62) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKLDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x62) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x62) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLDQ") + } + return p +} + +// PUNPCKLQDQ performs "Unpack and Interleave Low-Order Quadwords into Double Quadwords". +// +// Mnemonic : PUNPCKLQDQ +// Supported forms : (2 forms) +// +// * PUNPCKLQDQ xmm, xmm [SSE2] +// * PUNPCKLQDQ m128, xmm [SSE2] +// +func (self *Program) PUNPCKLQDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLQDQ", 2, Operands { v0, v1 }) + // PUNPCKLQDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLQDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x6c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLQDQ") + } + return p +} + +// PUNPCKLWD performs "Unpack and Interleave Low-Order Words into Doublewords". +// +// Mnemonic : PUNPCKLWD +// Supported forms : (4 forms) +// +// * PUNPCKLWD mm, mm [MMX] +// * PUNPCKLWD m32, mm [MMX] +// * PUNPCKLWD xmm, xmm [SSE2] +// * PUNPCKLWD m128, xmm [SSE2] +// +func (self *Program) PUNPCKLWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PUNPCKLWD", 2, Operands { v0, v1 }) + // PUNPCKLWD mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x61) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLWD m32, mm + if isM32(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x61) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PUNPCKLWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x61) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PUNPCKLWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x61) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUNPCKLWD") + } + return p +} + +// PUSHQ performs "Push Value Onto the Stack". +// +// Mnemonic : PUSH +// Supported forms : (4 forms) +// +// * PUSHQ imm8 +// * PUSHQ imm32 +// * PUSHQ r64 +// * PUSHQ m64 +// +func (self *Program) PUSHQ(v0 interface{}) *Instruction { + p := self.alloc("PUSHQ", 1, Operands { v0 }) + // PUSHQ imm8 + if isImm8Ext(v0, 8) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x6a) + m.imm1(toImmAny(v[0])) + }) + } + // PUSHQ imm32 + if isImm32Ext(v0, 8) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x68) + m.imm4(toImmAny(v[0])) + }) + } + // PUSHQ r64 + if isReg64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x50 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xf0 | lcode(v[0])) + }) + } + // PUSHQ m64 + if isM64(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUSHQ") + } + return p +} + +// PUSHW performs "Push Value Onto the Stack". +// +// Mnemonic : PUSH +// Supported forms : (2 forms) +// +// * PUSHW r16 +// * PUSHW m16 +// +func (self *Program) PUSHW(v0 interface{}) *Instruction { + p := self.alloc("PUSHW", 1, Operands { v0 }) + // PUSHW r16 + if isReg16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x50 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0xff) + m.emit(0xf0 | lcode(v[0])) + }) + } + // PUSHW m16 + if isM16(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[0]), false) + m.emit(0xff) + m.mrsd(6, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PUSHW") + } + return p +} + +// PXOR performs "Packed Bitwise Logical Exclusive OR". +// +// Mnemonic : PXOR +// Supported forms : (4 forms) +// +// * PXOR mm, mm [MMX] +// * PXOR m64, mm [MMX] +// * PXOR xmm, xmm [SSE2] +// * PXOR m128, xmm [SSE2] +// +func (self *Program) PXOR(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("PXOR", 2, Operands { v0, v1 }) + // PXOR mm, mm + if isMM(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xef) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PXOR m64, mm + if isM64(v0) && isMM(v1) { + self.require(ISA_MMX) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xef) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // PXOR xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xef) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // PXOR m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xef) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for PXOR") + } + return p +} + +// RCLB performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLB 1, r8 +// * RCLB imm8, r8 +// * RCLB cl, r8 +// * RCLB 1, m8 +// * RCLB imm8, m8 +// * RCLB cl, m8 +// +func (self *Program) RCLB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLB", 2, Operands { v0, v1 }) + // RCLB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLB") + } + return p +} + +// RCLL performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLL 1, r32 +// * RCLL imm8, r32 +// * RCLL cl, r32 +// * RCLL 1, m32 +// * RCLL imm8, m32 +// * RCLL cl, m32 +// +func (self *Program) RCLL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLL", 2, Operands { v0, v1 }) + // RCLL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLL") + } + return p +} + +// RCLQ performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLQ 1, r64 +// * RCLQ imm8, r64 +// * RCLQ cl, r64 +// * RCLQ 1, m64 +// * RCLQ imm8, m64 +// * RCLQ cl, m64 +// +func (self *Program) RCLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLQ", 2, Operands { v0, v1 }) + // RCLQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLQ") + } + return p +} + +// RCLW performs "Rotate Left through Carry Flag". +// +// Mnemonic : RCL +// Supported forms : (6 forms) +// +// * RCLW 1, r16 +// * RCLW imm8, r16 +// * RCLW cl, r16 +// * RCLW 1, m16 +// * RCLW imm8, m16 +// * RCLW cl, m16 +// +func (self *Program) RCLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCLW", 2, Operands { v0, v1 }) + // RCLW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCLW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd0 | lcode(v[1])) + }) + } + // RCLW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(2, addr(v[1]), 1) + }) + } + // RCLW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(2, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCLW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(2, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCLW") + } + return p +} + +// RCPPS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : RCPPS +// Supported forms : (2 forms) +// +// * RCPPS xmm, xmm [SSE] +// * RCPPS m128, xmm [SSE] +// +func (self *Program) RCPPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCPPS", 2, Operands { v0, v1 }) + // RCPPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RCPPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCPPS") + } + return p +} + +// RCPSS performs "Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : RCPSS +// Supported forms : (2 forms) +// +// * RCPSS xmm, xmm [SSE] +// * RCPSS m32, xmm [SSE] +// +func (self *Program) RCPSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCPSS", 2, Operands { v0, v1 }) + // RCPSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RCPSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCPSS") + } + return p +} + +// RCRB performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRB 1, r8 +// * RCRB imm8, r8 +// * RCRB cl, r8 +// * RCRB 1, m8 +// * RCRB imm8, m8 +// * RCRB cl, m8 +// +func (self *Program) RCRB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRB", 2, Operands { v0, v1 }) + // RCRB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRB") + } + return p +} + +// RCRL performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRL 1, r32 +// * RCRL imm8, r32 +// * RCRL cl, r32 +// * RCRL 1, m32 +// * RCRL imm8, m32 +// * RCRL cl, m32 +// +func (self *Program) RCRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRL", 2, Operands { v0, v1 }) + // RCRL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRL") + } + return p +} + +// RCRQ performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRQ 1, r64 +// * RCRQ imm8, r64 +// * RCRQ cl, r64 +// * RCRQ 1, m64 +// * RCRQ imm8, m64 +// * RCRQ cl, m64 +// +func (self *Program) RCRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRQ", 2, Operands { v0, v1 }) + // RCRQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRQ") + } + return p +} + +// RCRW performs "Rotate Right through Carry Flag". +// +// Mnemonic : RCR +// Supported forms : (6 forms) +// +// * RCRW 1, r16 +// * RCRW imm8, r16 +// * RCRW cl, r16 +// * RCRW 1, m16 +// * RCRW imm8, m16 +// * RCRW cl, m16 +// +func (self *Program) RCRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RCRW", 2, Operands { v0, v1 }) + // RCRW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RCRW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xd8 | lcode(v[1])) + }) + } + // RCRW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(3, addr(v[1]), 1) + }) + } + // RCRW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RCRW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(3, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RCRW") + } + return p +} + +// RDRAND performs "Read Random Number". +// +// Mnemonic : RDRAND +// Supported forms : (3 forms) +// +// * RDRAND r16 [RDRAND] +// * RDRAND r32 [RDRAND] +// * RDRAND r64 [RDRAND] +// +func (self *Program) RDRAND(v0 interface{}) *Instruction { + p := self.alloc("RDRAND", 1, Operands { v0 }) + // RDRAND r16 + if isReg16(v0) { + self.require(ISA_RDRAND) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // RDRAND r32 + if isReg32(v0) { + self.require(ISA_RDRAND) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf0 | lcode(v[0])) + }) + } + // RDRAND r64 + if isReg64(v0) { + self.require(ISA_RDRAND) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf0 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RDRAND") + } + return p +} + +// RDSEED performs "Read Random SEED". +// +// Mnemonic : RDSEED +// Supported forms : (3 forms) +// +// * RDSEED r16 [RDSEED] +// * RDSEED r32 [RDSEED] +// * RDSEED r64 [RDSEED] +// +func (self *Program) RDSEED(v0 interface{}) *Instruction { + p := self.alloc("RDSEED", 1, Operands { v0 }) + // RDSEED r16 + if isReg16(v0) { + self.require(ISA_RDSEED) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // RDSEED r32 + if isReg32(v0) { + self.require(ISA_RDSEED) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf8 | lcode(v[0])) + }) + } + // RDSEED r64 + if isReg64(v0) { + self.require(ISA_RDSEED) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xc7) + m.emit(0xf8 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RDSEED") + } + return p +} + +// RDTSC performs "Read Time-Stamp Counter". +// +// Mnemonic : RDTSC +// Supported forms : (1 form) +// +// * RDTSC [RDTSC] +// +func (self *Program) RDTSC() *Instruction { + p := self.alloc("RDTSC", 0, Operands { }) + // RDTSC + self.require(ISA_RDTSC) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x31) + }) + return p +} + +// RDTSCP performs "Read Time-Stamp Counter and Processor ID". +// +// Mnemonic : RDTSCP +// Supported forms : (1 form) +// +// * RDTSCP [RDTSCP] +// +func (self *Program) RDTSCP() *Instruction { + p := self.alloc("RDTSCP", 0, Operands { }) + // RDTSCP + self.require(ISA_RDTSCP) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xf9) + }) + return p +} + +// RET performs "Return from Procedure". +// +// Mnemonic : RET +// Supported forms : (2 forms) +// +// * RET +// * RET imm16 +// +func (self *Program) RET(vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("RET", 0, Operands { }) + case 1 : p = self.alloc("RET", 1, Operands { vv[0] }) + default : panic("instruction RET takes 0 or 1 operands") + } + // RET + if len(vv) == 0 { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc3) + }) + } + // RET imm16 + if len(vv) == 1 && isImm16(vv[0]) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc2) + m.imm2(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RET") + } + return p +} + +// ROLB performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLB 1, r8 +// * ROLB imm8, r8 +// * ROLB cl, r8 +// * ROLB 1, m8 +// * ROLB imm8, m8 +// * ROLB cl, m8 +// +func (self *Program) ROLB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLB", 2, Operands { v0, v1 }) + // ROLB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLB") + } + return p +} + +// ROLL performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLL 1, r32 +// * ROLL imm8, r32 +// * ROLL cl, r32 +// * ROLL 1, m32 +// * ROLL imm8, m32 +// * ROLL cl, m32 +// +func (self *Program) ROLL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLL", 2, Operands { v0, v1 }) + // ROLL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLL") + } + return p +} + +// ROLQ performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLQ 1, r64 +// * ROLQ imm8, r64 +// * ROLQ cl, r64 +// * ROLQ 1, m64 +// * ROLQ imm8, m64 +// * ROLQ cl, m64 +// +func (self *Program) ROLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLQ", 2, Operands { v0, v1 }) + // ROLQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLQ") + } + return p +} + +// ROLW performs "Rotate Left". +// +// Mnemonic : ROL +// Supported forms : (6 forms) +// +// * ROLW 1, r16 +// * ROLW imm8, r16 +// * ROLW cl, r16 +// * ROLW 1, m16 +// * ROLW imm8, m16 +// * ROLW cl, m16 +// +func (self *Program) ROLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("ROLW", 2, Operands { v0, v1 }) + // ROLW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROLW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1])) + }) + } + // ROLW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(0, addr(v[1]), 1) + }) + } + // ROLW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // ROLW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(0, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for ROLW") + } + return p +} + +// RORB performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORB 1, r8 +// * RORB imm8, r8 +// * RORB cl, r8 +// * RORB 1, m8 +// * RORB imm8, m8 +// * RORB cl, m8 +// +func (self *Program) RORB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORB", 2, Operands { v0, v1 }) + // RORB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORB") + } + return p +} + +// RORL performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORL 1, r32 +// * RORL imm8, r32 +// * RORL cl, r32 +// * RORL 1, m32 +// * RORL imm8, m32 +// * RORL cl, m32 +// +func (self *Program) RORL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORL", 2, Operands { v0, v1 }) + // RORL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORL") + } + return p +} + +// RORQ performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORQ 1, r64 +// * RORQ imm8, r64 +// * RORQ cl, r64 +// * RORQ 1, m64 +// * RORQ imm8, m64 +// * RORQ cl, m64 +// +func (self *Program) RORQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORQ", 2, Operands { v0, v1 }) + // RORQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORQ") + } + return p +} + +// RORW performs "Rotate Right". +// +// Mnemonic : ROR +// Supported forms : (6 forms) +// +// * RORW 1, r16 +// * RORW imm8, r16 +// * RORW cl, r16 +// * RORW 1, m16 +// * RORW imm8, m16 +// * RORW cl, m16 +// +func (self *Program) RORW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RORW", 2, Operands { v0, v1 }) + // RORW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xc8 | lcode(v[1])) + }) + } + // RORW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(1, addr(v[1]), 1) + }) + } + // RORW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(1, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // RORW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(1, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RORW") + } + return p +} + +// RORXL performs "Rotate Right Logical Without Affecting Flags". +// +// Mnemonic : RORX +// Supported forms : (2 forms) +// +// * RORXL imm8, r32, r32 [BMI2] +// * RORXL imm8, m32, r32 [BMI2] +// +func (self *Program) RORXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("RORXL", 3, Operands { v0, v1, v2 }) + // RORXL imm8, r32, r32 + if isImm8(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7b) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORXL imm8, m32, r32 + if isImm8(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x03, hcode(v[2]), addr(v[1]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RORXL") + } + return p +} + +// RORXQ performs "Rotate Right Logical Without Affecting Flags". +// +// Mnemonic : RORX +// Supported forms : (2 forms) +// +// * RORXQ imm8, r64, r64 [BMI2] +// * RORXQ imm8, m64, r64 [BMI2] +// +func (self *Program) RORXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("RORXQ", 3, Operands { v0, v1, v2 }) + // RORXQ imm8, r64, r64 + if isImm8(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfb) + m.emit(0xf0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // RORXQ imm8, m64, r64 + if isImm8(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x83, hcode(v[2]), addr(v[1]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for RORXQ") + } + return p +} + +// ROUNDPD performs "Round Packed Double Precision Floating-Point Values". +// +// Mnemonic : ROUNDPD +// Supported forms : (2 forms) +// +// * ROUNDPD imm8, xmm, xmm [SSE4.1] +// * ROUNDPD imm8, m128, xmm [SSE4.1] +// +func (self *Program) ROUNDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDPD", 3, Operands { v0, v1, v2 }) + // ROUNDPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDPD") + } + return p +} + +// ROUNDPS performs "Round Packed Single Precision Floating-Point Values". +// +// Mnemonic : ROUNDPS +// Supported forms : (2 forms) +// +// * ROUNDPS imm8, xmm, xmm [SSE4.1] +// * ROUNDPS imm8, m128, xmm [SSE4.1] +// +func (self *Program) ROUNDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDPS", 3, Operands { v0, v1, v2 }) + // ROUNDPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDPS") + } + return p +} + +// ROUNDSD performs "Round Scalar Double Precision Floating-Point Values". +// +// Mnemonic : ROUNDSD +// Supported forms : (2 forms) +// +// * ROUNDSD imm8, xmm, xmm [SSE4.1] +// * ROUNDSD imm8, m64, xmm [SSE4.1] +// +func (self *Program) ROUNDSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDSD", 3, Operands { v0, v1, v2 }) + // ROUNDSD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDSD imm8, m64, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDSD") + } + return p +} + +// ROUNDSS performs "Round Scalar Single Precision Floating-Point Values". +// +// Mnemonic : ROUNDSS +// Supported forms : (2 forms) +// +// * ROUNDSS imm8, xmm, xmm [SSE4.1] +// * ROUNDSS imm8, m32, xmm [SSE4.1] +// +func (self *Program) ROUNDSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("ROUNDSS", 3, Operands { v0, v1, v2 }) + // ROUNDSS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // ROUNDSS imm8, m32, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) { + self.require(ISA_SSE4_1) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0x0a) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for ROUNDSS") + } + return p +} + +// RSQRTPS performs "Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : RSQRTPS +// Supported forms : (2 forms) +// +// * RSQRTPS xmm, xmm [SSE] +// * RSQRTPS m128, xmm [SSE] +// +func (self *Program) RSQRTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RSQRTPS", 2, Operands { v0, v1 }) + // RSQRTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RSQRTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RSQRTPS") + } + return p +} + +// RSQRTSS performs "Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : RSQRTSS +// Supported forms : (2 forms) +// +// * RSQRTSS xmm, xmm [SSE] +// * RSQRTSS m32, xmm [SSE] +// +func (self *Program) RSQRTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("RSQRTSS", 2, Operands { v0, v1 }) + // RSQRTSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // RSQRTSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for RSQRTSS") + } + return p +} + +// SALB performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALB 1, r8 +// * SALB imm8, r8 +// * SALB cl, r8 +// * SALB 1, m8 +// * SALB imm8, m8 +// * SALB cl, m8 +// +func (self *Program) SALB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALB", 2, Operands { v0, v1 }) + // SALB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALB") + } + return p +} + +// SALL performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALL 1, r32 +// * SALL imm8, r32 +// * SALL cl, r32 +// * SALL 1, m32 +// * SALL imm8, m32 +// * SALL cl, m32 +// +func (self *Program) SALL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALL", 2, Operands { v0, v1 }) + // SALL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALL") + } + return p +} + +// SALQ performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALQ 1, r64 +// * SALQ imm8, r64 +// * SALQ cl, r64 +// * SALQ 1, m64 +// * SALQ imm8, m64 +// * SALQ cl, m64 +// +func (self *Program) SALQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALQ", 2, Operands { v0, v1 }) + // SALQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALQ") + } + return p +} + +// SALW performs "Arithmetic Shift Left". +// +// Mnemonic : SAL +// Supported forms : (6 forms) +// +// * SALW 1, r16 +// * SALW imm8, r16 +// * SALW cl, r16 +// * SALW 1, m16 +// * SALW imm8, m16 +// * SALW cl, m16 +// +func (self *Program) SALW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SALW", 2, Operands { v0, v1 }) + // SALW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SALW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SALW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SALW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SALW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SALW") + } + return p +} + +// SARB performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARB 1, r8 +// * SARB imm8, r8 +// * SARB cl, r8 +// * SARB 1, m8 +// * SARB imm8, m8 +// * SARB cl, m8 +// +func (self *Program) SARB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARB", 2, Operands { v0, v1 }) + // SARB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARB") + } + return p +} + +// SARL performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARL 1, r32 +// * SARL imm8, r32 +// * SARL cl, r32 +// * SARL 1, m32 +// * SARL imm8, m32 +// * SARL cl, m32 +// +func (self *Program) SARL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARL", 2, Operands { v0, v1 }) + // SARL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARL") + } + return p +} + +// SARQ performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARQ 1, r64 +// * SARQ imm8, r64 +// * SARQ cl, r64 +// * SARQ 1, m64 +// * SARQ imm8, m64 +// * SARQ cl, m64 +// +func (self *Program) SARQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARQ", 2, Operands { v0, v1 }) + // SARQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARQ") + } + return p +} + +// SARW performs "Arithmetic Shift Right". +// +// Mnemonic : SAR +// Supported forms : (6 forms) +// +// * SARW 1, r16 +// * SARW imm8, r16 +// * SARW cl, r16 +// * SARW 1, m16 +// * SARW imm8, m16 +// * SARW cl, m16 +// +func (self *Program) SARW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SARW", 2, Operands { v0, v1 }) + // SARW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SARW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xf8 | lcode(v[1])) + }) + } + // SARW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(7, addr(v[1]), 1) + }) + } + // SARW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(7, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SARW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(7, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARW") + } + return p +} + +// SARXL performs "Arithmetic Shift Right Without Affecting Flags". +// +// Mnemonic : SARX +// Supported forms : (2 forms) +// +// * SARXL r32, r32, r32 [BMI2] +// * SARXL r32, m32, r32 [BMI2] +// +func (self *Program) SARXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SARXL", 3, Operands { v0, v1, v2 }) + // SARXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7a ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SARXL r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x02, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARXL") + } + return p +} + +// SARXQ performs "Arithmetic Shift Right Without Affecting Flags". +// +// Mnemonic : SARX +// Supported forms : (2 forms) +// +// * SARXQ r64, r64, r64 [BMI2] +// * SARXQ r64, m64, r64 [BMI2] +// +func (self *Program) SARXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SARXQ", 3, Operands { v0, v1, v2 }) + // SARXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfa ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SARXQ r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x82, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SARXQ") + } + return p +} + +// SBBB performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (6 forms) +// +// * SBBB imm8, al +// * SBBB imm8, r8 +// * SBBB r8, r8 +// * SBBB m8, r8 +// * SBBB imm8, m8 +// * SBBB r8, m8 +// +func (self *Program) SBBB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBB", 2, Operands { v0, v1 }) + // SBBB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x1c) + m.imm1(toImmAny(v[0])) + }) + } + // SBBB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x18) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x1a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x18) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBB") + } + return p +} + +// SBBL performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (8 forms) +// +// * SBBL imm32, eax +// * SBBL imm8, r32 +// * SBBL imm32, r32 +// * SBBL r32, r32 +// * SBBL m32, r32 +// * SBBL imm8, m32 +// * SBBL imm32, m32 +// * SBBL r32, m32 +// +func (self *Program) SBBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBL", 2, Operands { v0, v1 }) + // SBBL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x1d) + m.imm4(toImmAny(v[0])) + }) + } + // SBBL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SBBL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x19) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(3, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SBBL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x19) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBL") + } + return p +} + +// SBBQ performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (8 forms) +// +// * SBBQ imm32, rax +// * SBBQ imm8, r64 +// * SBBQ imm32, r64 +// * SBBQ r64, r64 +// * SBBQ m64, r64 +// * SBBQ imm8, m64 +// * SBBQ imm32, m64 +// * SBBQ r64, m64 +// +func (self *Program) SBBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBQ", 2, Operands { v0, v1 }) + // SBBQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x1d) + m.imm4(toImmAny(v[0])) + }) + } + // SBBQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xd8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SBBQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x19) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(3, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SBBQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x19) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBQ") + } + return p +} + +// SBBW performs "Subtract with Borrow". +// +// Mnemonic : SBB +// Supported forms : (8 forms) +// +// * SBBW imm16, ax +// * SBBW imm8, r16 +// * SBBW imm16, r16 +// * SBBW r16, r16 +// * SBBW m16, r16 +// * SBBW imm8, m16 +// * SBBW imm16, m16 +// * SBBW r16, m16 +// +func (self *Program) SBBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SBBW", 2, Operands { v0, v1 }) + // SBBW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x1d) + m.imm2(toImmAny(v[0])) + }) + } + // SBBW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SBBW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xd8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // SBBW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x19) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SBBW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SBBW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(3, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SBBW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(3, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // SBBW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x19) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SBBW") + } + return p +} + +// SETA performs "Set byte if above (CF == 0 and ZF == 0)". +// +// Mnemonic : SETA +// Supported forms : (2 forms) +// +// * SETA r8 +// * SETA m8 +// +func (self *Program) SETA(v0 interface{}) *Instruction { + p := self.alloc("SETA", 1, Operands { v0 }) + // SETA r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x97) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETA m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x97) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETA") + } + return p +} + +// SETAE performs "Set byte if above or equal (CF == 0)". +// +// Mnemonic : SETAE +// Supported forms : (2 forms) +// +// * SETAE r8 +// * SETAE m8 +// +func (self *Program) SETAE(v0 interface{}) *Instruction { + p := self.alloc("SETAE", 1, Operands { v0 }) + // SETAE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x93) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETAE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x93) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETAE") + } + return p +} + +// SETB performs "Set byte if below (CF == 1)". +// +// Mnemonic : SETB +// Supported forms : (2 forms) +// +// * SETB r8 +// * SETB m8 +// +func (self *Program) SETB(v0 interface{}) *Instruction { + p := self.alloc("SETB", 1, Operands { v0 }) + // SETB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x92) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x92) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETB") + } + return p +} + +// SETBE performs "Set byte if below or equal (CF == 1 or ZF == 1)". +// +// Mnemonic : SETBE +// Supported forms : (2 forms) +// +// * SETBE r8 +// * SETBE m8 +// +func (self *Program) SETBE(v0 interface{}) *Instruction { + p := self.alloc("SETBE", 1, Operands { v0 }) + // SETBE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x96) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETBE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x96) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETBE") + } + return p +} + +// SETC performs "Set byte if carry (CF == 1)". +// +// Mnemonic : SETC +// Supported forms : (2 forms) +// +// * SETC r8 +// * SETC m8 +// +func (self *Program) SETC(v0 interface{}) *Instruction { + p := self.alloc("SETC", 1, Operands { v0 }) + // SETC r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x92) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETC m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x92) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETC") + } + return p +} + +// SETE performs "Set byte if equal (ZF == 1)". +// +// Mnemonic : SETE +// Supported forms : (2 forms) +// +// * SETE r8 +// * SETE m8 +// +func (self *Program) SETE(v0 interface{}) *Instruction { + p := self.alloc("SETE", 1, Operands { v0 }) + // SETE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x94) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x94) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETE") + } + return p +} + +// SETG performs "Set byte if greater (ZF == 0 and SF == OF)". +// +// Mnemonic : SETG +// Supported forms : (2 forms) +// +// * SETG r8 +// * SETG m8 +// +func (self *Program) SETG(v0 interface{}) *Instruction { + p := self.alloc("SETG", 1, Operands { v0 }) + // SETG r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETG m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETG") + } + return p +} + +// SETGE performs "Set byte if greater or equal (SF == OF)". +// +// Mnemonic : SETGE +// Supported forms : (2 forms) +// +// * SETGE r8 +// * SETGE m8 +// +func (self *Program) SETGE(v0 interface{}) *Instruction { + p := self.alloc("SETGE", 1, Operands { v0 }) + // SETGE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETGE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9d) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETGE") + } + return p +} + +// SETL performs "Set byte if less (SF != OF)". +// +// Mnemonic : SETL +// Supported forms : (2 forms) +// +// * SETL r8 +// * SETL m8 +// +func (self *Program) SETL(v0 interface{}) *Instruction { + p := self.alloc("SETL", 1, Operands { v0 }) + // SETL r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETL m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9c) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETL") + } + return p +} + +// SETLE performs "Set byte if less or equal (ZF == 1 or SF != OF)". +// +// Mnemonic : SETLE +// Supported forms : (2 forms) +// +// * SETLE r8 +// * SETLE m8 +// +func (self *Program) SETLE(v0 interface{}) *Instruction { + p := self.alloc("SETLE", 1, Operands { v0 }) + // SETLE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETLE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9e) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETLE") + } + return p +} + +// SETNA performs "Set byte if not above (CF == 1 or ZF == 1)". +// +// Mnemonic : SETNA +// Supported forms : (2 forms) +// +// * SETNA r8 +// * SETNA m8 +// +func (self *Program) SETNA(v0 interface{}) *Instruction { + p := self.alloc("SETNA", 1, Operands { v0 }) + // SETNA r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x96) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNA m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x96) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNA") + } + return p +} + +// SETNAE performs "Set byte if not above or equal (CF == 1)". +// +// Mnemonic : SETNAE +// Supported forms : (2 forms) +// +// * SETNAE r8 +// * SETNAE m8 +// +func (self *Program) SETNAE(v0 interface{}) *Instruction { + p := self.alloc("SETNAE", 1, Operands { v0 }) + // SETNAE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x92) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNAE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x92) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNAE") + } + return p +} + +// SETNB performs "Set byte if not below (CF == 0)". +// +// Mnemonic : SETNB +// Supported forms : (2 forms) +// +// * SETNB r8 +// * SETNB m8 +// +func (self *Program) SETNB(v0 interface{}) *Instruction { + p := self.alloc("SETNB", 1, Operands { v0 }) + // SETNB r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x93) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNB m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x93) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNB") + } + return p +} + +// SETNBE performs "Set byte if not below or equal (CF == 0 and ZF == 0)". +// +// Mnemonic : SETNBE +// Supported forms : (2 forms) +// +// * SETNBE r8 +// * SETNBE m8 +// +func (self *Program) SETNBE(v0 interface{}) *Instruction { + p := self.alloc("SETNBE", 1, Operands { v0 }) + // SETNBE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x97) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNBE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x97) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNBE") + } + return p +} + +// SETNC performs "Set byte if not carry (CF == 0)". +// +// Mnemonic : SETNC +// Supported forms : (2 forms) +// +// * SETNC r8 +// * SETNC m8 +// +func (self *Program) SETNC(v0 interface{}) *Instruction { + p := self.alloc("SETNC", 1, Operands { v0 }) + // SETNC r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x93) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNC m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x93) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNC") + } + return p +} + +// SETNE performs "Set byte if not equal (ZF == 0)". +// +// Mnemonic : SETNE +// Supported forms : (2 forms) +// +// * SETNE r8 +// * SETNE m8 +// +func (self *Program) SETNE(v0 interface{}) *Instruction { + p := self.alloc("SETNE", 1, Operands { v0 }) + // SETNE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x95) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x95) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNE") + } + return p +} + +// SETNG performs "Set byte if not greater (ZF == 1 or SF != OF)". +// +// Mnemonic : SETNG +// Supported forms : (2 forms) +// +// * SETNG r8 +// * SETNG m8 +// +func (self *Program) SETNG(v0 interface{}) *Instruction { + p := self.alloc("SETNG", 1, Operands { v0 }) + // SETNG r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNG m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9e) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNG") + } + return p +} + +// SETNGE performs "Set byte if not greater or equal (SF != OF)". +// +// Mnemonic : SETNGE +// Supported forms : (2 forms) +// +// * SETNGE r8 +// * SETNGE m8 +// +func (self *Program) SETNGE(v0 interface{}) *Instruction { + p := self.alloc("SETNGE", 1, Operands { v0 }) + // SETNGE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNGE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9c) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNGE") + } + return p +} + +// SETNL performs "Set byte if not less (SF == OF)". +// +// Mnemonic : SETNL +// Supported forms : (2 forms) +// +// * SETNL r8 +// * SETNL m8 +// +func (self *Program) SETNL(v0 interface{}) *Instruction { + p := self.alloc("SETNL", 1, Operands { v0 }) + // SETNL r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNL m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9d) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNL") + } + return p +} + +// SETNLE performs "Set byte if not less or equal (ZF == 0 and SF == OF)". +// +// Mnemonic : SETNLE +// Supported forms : (2 forms) +// +// * SETNLE r8 +// * SETNLE m8 +// +func (self *Program) SETNLE(v0 interface{}) *Instruction { + p := self.alloc("SETNLE", 1, Operands { v0 }) + // SETNLE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNLE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9f) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNLE") + } + return p +} + +// SETNO performs "Set byte if not overflow (OF == 0)". +// +// Mnemonic : SETNO +// Supported forms : (2 forms) +// +// * SETNO r8 +// * SETNO m8 +// +func (self *Program) SETNO(v0 interface{}) *Instruction { + p := self.alloc("SETNO", 1, Operands { v0 }) + // SETNO r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x91) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNO m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x91) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNO") + } + return p +} + +// SETNP performs "Set byte if not parity (PF == 0)". +// +// Mnemonic : SETNP +// Supported forms : (2 forms) +// +// * SETNP r8 +// * SETNP m8 +// +func (self *Program) SETNP(v0 interface{}) *Instruction { + p := self.alloc("SETNP", 1, Operands { v0 }) + // SETNP r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNP m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9b) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNP") + } + return p +} + +// SETNS performs "Set byte if not sign (SF == 0)". +// +// Mnemonic : SETNS +// Supported forms : (2 forms) +// +// * SETNS r8 +// * SETNS m8 +// +func (self *Program) SETNS(v0 interface{}) *Instruction { + p := self.alloc("SETNS", 1, Operands { v0 }) + // SETNS r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x99) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNS m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x99) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNS") + } + return p +} + +// SETNZ performs "Set byte if not zero (ZF == 0)". +// +// Mnemonic : SETNZ +// Supported forms : (2 forms) +// +// * SETNZ r8 +// * SETNZ m8 +// +func (self *Program) SETNZ(v0 interface{}) *Instruction { + p := self.alloc("SETNZ", 1, Operands { v0 }) + // SETNZ r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x95) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETNZ m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x95) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETNZ") + } + return p +} + +// SETO performs "Set byte if overflow (OF == 1)". +// +// Mnemonic : SETO +// Supported forms : (2 forms) +// +// * SETO r8 +// * SETO m8 +// +func (self *Program) SETO(v0 interface{}) *Instruction { + p := self.alloc("SETO", 1, Operands { v0 }) + // SETO r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x90) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETO m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x90) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETO") + } + return p +} + +// SETP performs "Set byte if parity (PF == 1)". +// +// Mnemonic : SETP +// Supported forms : (2 forms) +// +// * SETP r8 +// * SETP m8 +// +func (self *Program) SETP(v0 interface{}) *Instruction { + p := self.alloc("SETP", 1, Operands { v0 }) + // SETP r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETP m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9a) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETP") + } + return p +} + +// SETPE performs "Set byte if parity even (PF == 1)". +// +// Mnemonic : SETPE +// Supported forms : (2 forms) +// +// * SETPE r8 +// * SETPE m8 +// +func (self *Program) SETPE(v0 interface{}) *Instruction { + p := self.alloc("SETPE", 1, Operands { v0 }) + // SETPE r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETPE m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9a) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETPE") + } + return p +} + +// SETPO performs "Set byte if parity odd (PF == 0)". +// +// Mnemonic : SETPO +// Supported forms : (2 forms) +// +// * SETPO r8 +// * SETPO m8 +// +func (self *Program) SETPO(v0 interface{}) *Instruction { + p := self.alloc("SETPO", 1, Operands { v0 }) + // SETPO r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETPO m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x9b) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETPO") + } + return p +} + +// SETS performs "Set byte if sign (SF == 1)". +// +// Mnemonic : SETS +// Supported forms : (2 forms) +// +// * SETS r8 +// * SETS m8 +// +func (self *Program) SETS(v0 interface{}) *Instruction { + p := self.alloc("SETS", 1, Operands { v0 }) + // SETS r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x98) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETS m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x98) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETS") + } + return p +} + +// SETZ performs "Set byte if zero (ZF == 1)". +// +// Mnemonic : SETZ +// Supported forms : (2 forms) +// +// * SETZ r8 +// * SETZ m8 +// +func (self *Program) SETZ(v0 interface{}) *Instruction { + p := self.alloc("SETZ", 1, Operands { v0 }) + // SETZ r8 + if isReg8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0x94) + m.emit(0xc0 | lcode(v[0])) + }) + } + // SETZ m8 + if isM8(v0) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0x94) + m.mrsd(0, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SETZ") + } + return p +} + +// SFENCE performs "Store Fence". +// +// Mnemonic : SFENCE +// Supported forms : (1 form) +// +// * SFENCE [MMX+] +// +func (self *Program) SFENCE() *Instruction { + p := self.alloc("SFENCE", 0, Operands { }) + // SFENCE + self.require(ISA_MMX_PLUS) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0xae) + m.emit(0xf8) + }) + return p +} + +// SHA1MSG1 performs "Perform an Intermediate Calculation for the Next Four SHA1 Message Doublewords". +// +// Mnemonic : SHA1MSG1 +// Supported forms : (2 forms) +// +// * SHA1MSG1 xmm, xmm [SHA] +// * SHA1MSG1 m128, xmm [SHA] +// +func (self *Program) SHA1MSG1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA1MSG1", 2, Operands { v0, v1 }) + // SHA1MSG1 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc9) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA1MSG1 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc9) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1MSG1") + } + return p +} + +// SHA1MSG2 performs "Perform a Final Calculation for the Next Four SHA1 Message Doublewords". +// +// Mnemonic : SHA1MSG2 +// Supported forms : (2 forms) +// +// * SHA1MSG2 xmm, xmm [SHA] +// * SHA1MSG2 m128, xmm [SHA] +// +func (self *Program) SHA1MSG2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA1MSG2", 2, Operands { v0, v1 }) + // SHA1MSG2 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xca) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA1MSG2 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xca) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1MSG2") + } + return p +} + +// SHA1NEXTE performs "Calculate SHA1 State Variable E after Four Rounds". +// +// Mnemonic : SHA1NEXTE +// Supported forms : (2 forms) +// +// * SHA1NEXTE xmm, xmm [SHA] +// * SHA1NEXTE m128, xmm [SHA] +// +func (self *Program) SHA1NEXTE(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA1NEXTE", 2, Operands { v0, v1 }) + // SHA1NEXTE xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA1NEXTE m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xc8) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1NEXTE") + } + return p +} + +// SHA1RNDS4 performs "Perform Four Rounds of SHA1 Operation". +// +// Mnemonic : SHA1RNDS4 +// Supported forms : (2 forms) +// +// * SHA1RNDS4 imm8, xmm, xmm [SHA] +// * SHA1RNDS4 imm8, m128, xmm [SHA] +// +func (self *Program) SHA1RNDS4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHA1RNDS4", 3, Operands { v0, v1, v2 }) + // SHA1RNDS4 imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHA1RNDS4 imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x3a) + m.emit(0xcc) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for SHA1RNDS4") + } + return p +} + +// SHA256MSG1 performs "Perform an Intermediate Calculation for the Next Four SHA256 Message Doublewords". +// +// Mnemonic : SHA256MSG1 +// Supported forms : (2 forms) +// +// * SHA256MSG1 xmm, xmm [SHA] +// * SHA256MSG1 m128, xmm [SHA] +// +func (self *Program) SHA256MSG1(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA256MSG1", 2, Operands { v0, v1 }) + // SHA256MSG1 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA256MSG1 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA256MSG1") + } + return p +} + +// SHA256MSG2 performs "Perform a Final Calculation for the Next Four SHA256 Message Doublewords". +// +// Mnemonic : SHA256MSG2 +// Supported forms : (2 forms) +// +// * SHA256MSG2 xmm, xmm [SHA] +// * SHA256MSG2 m128, xmm [SHA] +// +func (self *Program) SHA256MSG2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHA256MSG2", 2, Operands { v0, v1 }) + // SHA256MSG2 xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SHA256MSG2 m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcd) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA256MSG2") + } + return p +} + +// SHA256RNDS2 performs "Perform Two Rounds of SHA256 Operation". +// +// Mnemonic : SHA256RNDS2 +// Supported forms : (2 forms) +// +// * SHA256RNDS2 xmm0, xmm, xmm [SHA] +// * SHA256RNDS2 xmm0, m128, xmm [SHA] +// +func (self *Program) SHA256RNDS2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHA256RNDS2", 3, Operands { v0, v1, v2 }) + // SHA256RNDS2 xmm0, xmm, xmm + if v0 == XMM0 && isXMM(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHA256RNDS2 xmm0, m128, xmm + if v0 == XMM0 && isM128(v1) && isXMM(v2) { + self.require(ISA_SHA) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0x38) + m.emit(0xcb) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHA256RNDS2") + } + return p +} + +// SHLB performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLB 1, r8 +// * SHLB imm8, r8 +// * SHLB cl, r8 +// * SHLB 1, m8 +// * SHLB imm8, m8 +// * SHLB cl, m8 +// +func (self *Program) SHLB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLB", 2, Operands { v0, v1 }) + // SHLB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLB") + } + return p +} + +// SHLDL performs "Integer Double Precision Shift Left". +// +// Mnemonic : SHLD +// Supported forms : (4 forms) +// +// * SHLDL imm8, r32, r32 +// * SHLDL cl, r32, r32 +// * SHLDL imm8, r32, m32 +// * SHLDL cl, r32, m32 +// +func (self *Program) SHLDL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLDL", 3, Operands { v0, v1, v2 }) + // SHLDL imm8, r32, r32 + if isImm8(v0) && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDL cl, r32, r32 + if v0 == CL && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHLDL imm8, r32, m32 + if isImm8(v0) && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa4) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDL cl, r32, m32 + if v0 == CL && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa5) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLDL") + } + return p +} + +// SHLDQ performs "Integer Double Precision Shift Left". +// +// Mnemonic : SHLD +// Supported forms : (4 forms) +// +// * SHLDQ imm8, r64, r64 +// * SHLDQ cl, r64, r64 +// * SHLDQ imm8, r64, m64 +// * SHLDQ cl, r64, m64 +// +func (self *Program) SHLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLDQ", 3, Operands { v0, v1, v2 }) + // SHLDQ imm8, r64, r64 + if isImm8(v0) && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xa4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDQ cl, r64, r64 + if v0 == CL && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xa5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHLDQ imm8, r64, m64 + if isImm8(v0) && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xa4) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDQ cl, r64, m64 + if v0 == CL && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xa5) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLDQ") + } + return p +} + +// SHLDW performs "Integer Double Precision Shift Left". +// +// Mnemonic : SHLD +// Supported forms : (4 forms) +// +// * SHLDW imm8, r16, r16 +// * SHLDW cl, r16, r16 +// * SHLDW imm8, r16, m16 +// * SHLDW cl, r16, m16 +// +func (self *Program) SHLDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLDW", 3, Operands { v0, v1, v2 }) + // SHLDW imm8, r16, r16 + if isImm8(v0) && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDW cl, r16, r16 + if v0 == CL && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xa5) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHLDW imm8, r16, m16 + if isImm8(v0) && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa4) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLDW cl, r16, m16 + if v0 == CL && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xa5) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLDW") + } + return p +} + +// SHLL performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLL 1, r32 +// * SHLL imm8, r32 +// * SHLL cl, r32 +// * SHLL 1, m32 +// * SHLL imm8, m32 +// * SHLL cl, m32 +// +func (self *Program) SHLL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLL", 2, Operands { v0, v1 }) + // SHLL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLL") + } + return p +} + +// SHLQ performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLQ 1, r64 +// * SHLQ imm8, r64 +// * SHLQ cl, r64 +// * SHLQ 1, m64 +// * SHLQ imm8, m64 +// * SHLQ cl, m64 +// +func (self *Program) SHLQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLQ", 2, Operands { v0, v1 }) + // SHLQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLQ") + } + return p +} + +// SHLW performs "Logical Shift Left". +// +// Mnemonic : SHL +// Supported forms : (6 forms) +// +// * SHLW 1, r16 +// * SHLW imm8, r16 +// * SHLW cl, r16 +// * SHLW 1, m16 +// * SHLW imm8, m16 +// * SHLW cl, m16 +// +func (self *Program) SHLW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHLW", 2, Operands { v0, v1 }) + // SHLW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHLW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe0 | lcode(v[1])) + }) + } + // SHLW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(4, addr(v[1]), 1) + }) + } + // SHLW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(4, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHLW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(4, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLW") + } + return p +} + +// SHLXL performs "Logical Shift Left Without Affecting Flags". +// +// Mnemonic : SHLX +// Supported forms : (2 forms) +// +// * SHLXL r32, r32, r32 [BMI2] +// * SHLXL r32, m32, r32 [BMI2] +// +func (self *Program) SHLXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLXL", 3, Operands { v0, v1, v2 }) + // SHLXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHLXL r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLXL") + } + return p +} + +// SHLXQ performs "Logical Shift Left Without Affecting Flags". +// +// Mnemonic : SHLX +// Supported forms : (2 forms) +// +// * SHLXQ r64, r64, r64 [BMI2] +// * SHLXQ r64, m64, r64 [BMI2] +// +func (self *Program) SHLXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHLXQ", 3, Operands { v0, v1, v2 }) + // SHLXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHLXQ r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHLXQ") + } + return p +} + +// SHRB performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRB 1, r8 +// * SHRB imm8, r8 +// * SHRB cl, r8 +// * SHRB 1, m8 +// * SHRB imm8, m8 +// * SHRB cl, m8 +// +func (self *Program) SHRB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRB", 2, Operands { v0, v1 }) + // SHRB 1, r8 + if isConst1(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd0) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xc0) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRB cl, r8 + if v0 == CL && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xd2) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRB 1, m8 + if isConst1(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd0) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc0) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRB cl, m8 + if v0 == CL && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd2) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRB") + } + return p +} + +// SHRDL performs "Integer Double Precision Shift Right". +// +// Mnemonic : SHRD +// Supported forms : (4 forms) +// +// * SHRDL imm8, r32, r32 +// * SHRDL cl, r32, r32 +// * SHRDL imm8, r32, m32 +// * SHRDL cl, r32, m32 +// +func (self *Program) SHRDL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRDL", 3, Operands { v0, v1, v2 }) + // SHRDL imm8, r32, r32 + if isImm8(v0) && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xac) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDL cl, r32, r32 + if v0 == CL && isReg32(v1) && isReg32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xad) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHRDL imm8, r32, m32 + if isImm8(v0) && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xac) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDL cl, r32, m32 + if v0 == CL && isReg32(v1) && isM32(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xad) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRDL") + } + return p +} + +// SHRDQ performs "Integer Double Precision Shift Right". +// +// Mnemonic : SHRD +// Supported forms : (4 forms) +// +// * SHRDQ imm8, r64, r64 +// * SHRDQ cl, r64, r64 +// * SHRDQ imm8, r64, m64 +// * SHRDQ cl, r64, m64 +// +func (self *Program) SHRDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRDQ", 3, Operands { v0, v1, v2 }) + // SHRDQ imm8, r64, r64 + if isImm8(v0) && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xac) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDQ cl, r64, r64 + if v0 == CL && isReg64(v1) && isReg64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[2])) + m.emit(0x0f) + m.emit(0xad) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHRDQ imm8, r64, m64 + if isImm8(v0) && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xac) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDQ cl, r64, m64 + if v0 == CL && isReg64(v1) && isM64(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[2])) + m.emit(0x0f) + m.emit(0xad) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRDQ") + } + return p +} + +// SHRDW performs "Integer Double Precision Shift Right". +// +// Mnemonic : SHRD +// Supported forms : (4 forms) +// +// * SHRDW imm8, r16, r16 +// * SHRDW cl, r16, r16 +// * SHRDW imm8, r16, m16 +// * SHRDW cl, r16, m16 +// +func (self *Program) SHRDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRDW", 3, Operands { v0, v1, v2 }) + // SHRDW imm8, r16, r16 + if isImm8(v0) && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xac) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDW cl, r16, r16 + if v0 == CL && isReg16(v1) && isReg16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[2], false) + m.emit(0x0f) + m.emit(0xad) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + }) + } + // SHRDW imm8, r16, m16 + if isImm8(v0) && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xac) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRDW cl, r16, m16 + if v0 == CL && isReg16(v1) && isM16(v2) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[2]), false) + m.emit(0x0f) + m.emit(0xad) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRDW") + } + return p +} + +// SHRL performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRL 1, r32 +// * SHRL imm8, r32 +// * SHRL cl, r32 +// * SHRL 1, m32 +// * SHRL imm8, m32 +// * SHRL cl, m32 +// +func (self *Program) SHRL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRL", 2, Operands { v0, v1 }) + // SHRL 1, r32 + if isConst1(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRL imm8, r32 + if isImm8(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRL cl, r32 + if v0 == CL && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRL 1, m32 + if isConst1(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRL imm8, m32 + if isImm8(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRL cl, m32 + if v0 == CL && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRL") + } + return p +} + +// SHRQ performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRQ 1, r64 +// * SHRQ imm8, r64 +// * SHRQ cl, r64 +// * SHRQ 1, m64 +// * SHRQ imm8, m64 +// * SHRQ cl, m64 +// +func (self *Program) SHRQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRQ", 2, Operands { v0, v1 }) + // SHRQ 1, r64 + if isConst1(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd1) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRQ imm8, r64 + if isImm8(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xc1) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRQ cl, r64 + if v0 == CL && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xd3) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRQ 1, m64 + if isConst1(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd1) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRQ imm8, m64 + if isImm8(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xc1) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRQ cl, m64 + if v0 == CL && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xd3) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRQ") + } + return p +} + +// SHRW performs "Logical Shift Right". +// +// Mnemonic : SHR +// Supported forms : (6 forms) +// +// * SHRW 1, r16 +// * SHRW imm8, r16 +// * SHRW cl, r16 +// * SHRW 1, m16 +// * SHRW imm8, m16 +// * SHRW cl, m16 +// +func (self *Program) SHRW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SHRW", 2, Operands { v0, v1 }) + // SHRW 1, r16 + if isConst1(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd1) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRW imm8, r16 + if isImm8(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xc1) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHRW cl, r16 + if v0 == CL && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xd3) + m.emit(0xe8 | lcode(v[1])) + }) + } + // SHRW 1, m16 + if isConst1(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd1) + m.mrsd(5, addr(v[1]), 1) + }) + } + // SHRW imm8, m16 + if isImm8(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xc1) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SHRW cl, m16 + if v0 == CL && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xd3) + m.mrsd(5, addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRW") + } + return p +} + +// SHRXL performs "Logical Shift Right Without Affecting Flags". +// +// Mnemonic : SHRX +// Supported forms : (2 forms) +// +// * SHRXL r32, r32, r32 [BMI2] +// * SHRXL r32, m32, r32 [BMI2] +// +func (self *Program) SHRXL(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRXL", 3, Operands { v0, v1, v2 }) + // SHRXL r32, r32, r32 + if isReg32(v0) && isReg32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7b ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHRXL r32, m32, r32 + if isReg32(v0) && isM32(v1) && isReg32(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x03, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRXL") + } + return p +} + +// SHRXQ performs "Logical Shift Right Without Affecting Flags". +// +// Mnemonic : SHRX +// Supported forms : (2 forms) +// +// * SHRXQ r64, r64, r64 [BMI2] +// * SHRXQ r64, m64, r64 [BMI2] +// +func (self *Program) SHRXQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHRXQ", 3, Operands { v0, v1, v2 }) + // SHRXQ r64, r64, r64 + if isReg64(v0) && isReg64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfb ^ (hlcode(v[0]) << 3)) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // SHRXQ r64, m64, r64 + if isReg64(v0) && isM64(v1) && isReg64(v2) { + self.require(ISA_BMI2) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x83, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0xf7) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SHRXQ") + } + return p +} + +// SHUFPD performs "Shuffle Packed Double-Precision Floating-Point Values". +// +// Mnemonic : SHUFPD +// Supported forms : (2 forms) +// +// * SHUFPD imm8, xmm, xmm [SSE2] +// * SHUFPD imm8, m128, xmm [SSE2] +// +func (self *Program) SHUFPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHUFPD", 3, Operands { v0, v1, v2 }) + // SHUFPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHUFPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc6) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for SHUFPD") + } + return p +} + +// SHUFPS performs "Shuffle Packed Single-Precision Floating-Point Values". +// +// Mnemonic : SHUFPS +// Supported forms : (2 forms) +// +// * SHUFPS imm8, xmm, xmm [SSE] +// * SHUFPS imm8, m128, xmm [SSE] +// +func (self *Program) SHUFPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("SHUFPS", 3, Operands { v0, v1, v2 }) + // SHUFPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), v[1], false) + m.emit(0x0f) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SHUFPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[2]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc6) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for SHUFPS") + } + return p +} + +// SQRTPD performs "Compute Square Roots of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : SQRTPD +// Supported forms : (2 forms) +// +// * SQRTPD xmm, xmm [SSE2] +// * SQRTPD m128, xmm [SSE2] +// +func (self *Program) SQRTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTPD", 2, Operands { v0, v1 }) + // SQRTPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTPD") + } + return p +} + +// SQRTPS performs "Compute Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : SQRTPS +// Supported forms : (2 forms) +// +// * SQRTPS xmm, xmm [SSE] +// * SQRTPS m128, xmm [SSE] +// +func (self *Program) SQRTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTPS", 2, Operands { v0, v1 }) + // SQRTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTPS") + } + return p +} + +// SQRTSD performs "Compute Square Root of Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : SQRTSD +// Supported forms : (2 forms) +// +// * SQRTSD xmm, xmm [SSE2] +// * SQRTSD m64, xmm [SSE2] +// +func (self *Program) SQRTSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTSD", 2, Operands { v0, v1 }) + // SQRTSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTSD") + } + return p +} + +// SQRTSS performs "Compute Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : SQRTSS +// Supported forms : (2 forms) +// +// * SQRTSS xmm, xmm [SSE] +// * SQRTSS m32, xmm [SSE] +// +func (self *Program) SQRTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SQRTSS", 2, Operands { v0, v1 }) + // SQRTSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SQRTSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SQRTSS") + } + return p +} + +// STC performs "Set Carry Flag". +// +// Mnemonic : STC +// Supported forms : (1 form) +// +// * STC +// +func (self *Program) STC() *Instruction { + p := self.alloc("STC", 0, Operands { }) + // STC + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf9) + }) + return p +} + +// STD performs "Set Direction Flag". +// +// Mnemonic : STD +// Supported forms : (1 form) +// +// * STD +// +func (self *Program) STD() *Instruction { + p := self.alloc("STD", 0, Operands { }) + // STD + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xfd) + }) + return p +} + +// STMXCSR performs "Store MXCSR Register State". +// +// Mnemonic : STMXCSR +// Supported forms : (1 form) +// +// * STMXCSR m32 [SSE] +// +func (self *Program) STMXCSR(v0 interface{}) *Instruction { + p := self.alloc("STMXCSR", 1, Operands { v0 }) + // STMXCSR m32 + if isM32(v0) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[0]), false) + m.emit(0x0f) + m.emit(0xae) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for STMXCSR") + } + return p +} + +// SUBB performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (6 forms) +// +// * SUBB imm8, al +// * SUBB imm8, r8 +// * SUBB r8, r8 +// * SUBB m8, r8 +// * SUBB imm8, m8 +// * SUBB r8, m8 +// +func (self *Program) SUBB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBB", 2, Operands { v0, v1 }) + // SUBB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x2c) + m.imm1(toImmAny(v[0])) + }) + } + // SUBB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x28) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBB") + } + return p +} + +// SUBL performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (8 forms) +// +// * SUBL imm32, eax +// * SUBL imm8, r32 +// * SUBL imm32, r32 +// * SUBL r32, r32 +// * SUBL m32, r32 +// * SUBL imm8, m32 +// * SUBL imm32, m32 +// * SUBL r32, m32 +// +func (self *Program) SUBL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBL", 2, Operands { v0, v1 }) + // SUBL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x2d) + m.imm4(toImmAny(v[0])) + }) + } + // SUBL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SUBL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(5, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SUBL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBL") + } + return p +} + +// SUBPD performs "Subtract Packed Double-Precision Floating-Point Values". +// +// Mnemonic : SUBPD +// Supported forms : (2 forms) +// +// * SUBPD xmm, xmm [SSE2] +// * SUBPD m128, xmm [SSE2] +// +func (self *Program) SUBPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBPD", 2, Operands { v0, v1 }) + // SUBPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBPD") + } + return p +} + +// SUBPS performs "Subtract Packed Single-Precision Floating-Point Values". +// +// Mnemonic : SUBPS +// Supported forms : (2 forms) +// +// * SUBPS xmm, xmm [SSE] +// * SUBPS m128, xmm [SSE] +// +func (self *Program) SUBPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBPS", 2, Operands { v0, v1 }) + // SUBPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBPS") + } + return p +} + +// SUBQ performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (8 forms) +// +// * SUBQ imm32, rax +// * SUBQ imm8, r64 +// * SUBQ imm32, r64 +// * SUBQ r64, r64 +// * SUBQ m64, r64 +// * SUBQ imm8, m64 +// * SUBQ imm32, m64 +// * SUBQ r64, m64 +// +func (self *Program) SUBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBQ", 2, Operands { v0, v1 }) + // SUBQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x2d) + m.imm4(toImmAny(v[0])) + }) + } + // SUBQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xe8 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // SUBQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(5, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // SUBQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBQ") + } + return p +} + +// SUBSD performs "Subtract Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : SUBSD +// Supported forms : (2 forms) +// +// * SUBSD xmm, xmm [SSE2] +// * SUBSD m64, xmm [SSE2] +// +func (self *Program) SUBSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBSD", 2, Operands { v0, v1 }) + // SUBSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf2) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBSD") + } + return p +} + +// SUBSS performs "Subtract Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : SUBSS +// Supported forms : (2 forms) +// +// * SUBSS xmm, xmm [SSE] +// * SUBSS m32, xmm [SSE] +// +func (self *Program) SUBSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBSS", 2, Operands { v0, v1 }) + // SUBSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x5c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBSS") + } + return p +} + +// SUBW performs "Subtract". +// +// Mnemonic : SUB +// Supported forms : (8 forms) +// +// * SUBW imm16, ax +// * SUBW imm8, r16 +// * SUBW imm16, r16 +// * SUBW r16, r16 +// * SUBW m16, r16 +// * SUBW imm8, m16 +// * SUBW imm16, m16 +// * SUBW r16, m16 +// +func (self *Program) SUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("SUBW", 2, Operands { v0, v1 }) + // SUBW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x2d) + m.imm2(toImmAny(v[0])) + }) + } + // SUBW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xe8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // SUBW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xe8 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // SUBW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // SUBW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x2b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // SUBW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(5, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // SUBW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(5, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // SUBW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for SUBW") + } + return p +} + +// SYSCALL performs "Fast System Call". +// +// Mnemonic : SYSCALL +// Supported forms : (1 form) +// +// * SYSCALL +// +func (self *Program) SYSCALL() *Instruction { + p := self.alloc("SYSCALL", 0, Operands { }) + // SYSCALL + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x05) + }) + return p +} + +// T1MSKC performs "Inverse Mask From Trailing Ones". +// +// Mnemonic : T1MSKC +// Supported forms : (4 forms) +// +// * T1MSKC r32, r32 [TBM] +// * T1MSKC m32, r32 [TBM] +// * T1MSKC r64, r64 [TBM] +// * T1MSKC m64, r64 [TBM] +// +func (self *Program) T1MSKC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("T1MSKC", 2, Operands { v0, v1 }) + // T1MSKC r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf8 | lcode(v[0])) + }) + } + // T1MSKC m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(7, addr(v[0]), 1) + }) + } + // T1MSKC r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xf8 | lcode(v[0])) + }) + } + // T1MSKC m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(7, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for T1MSKC") + } + return p +} + +// TESTB performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTB imm8, al +// * TESTB imm8, r8 +// * TESTB r8, r8 +// * TESTB imm8, m8 +// * TESTB r8, m8 +// +func (self *Program) TESTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTB", 2, Operands { v0, v1 }) + // TESTB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xa8) + m.imm1(toImmAny(v[0])) + }) + } + // TESTB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // TESTB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x84) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xf6) + m.mrsd(0, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // TESTB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x84) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTB") + } + return p +} + +// TESTL performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTL imm32, eax +// * TESTL imm32, r32 +// * TESTL r32, r32 +// * TESTL imm32, m32 +// * TESTL r32, m32 +// +func (self *Program) TESTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTL", 2, Operands { v0, v1 }) + // TESTL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xa9) + m.imm4(toImmAny(v[0])) + }) + } + // TESTL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // TESTL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x85) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0xf7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // TESTL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x85) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTL") + } + return p +} + +// TESTQ performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTQ imm32, rax +// * TESTQ imm32, r64 +// * TESTQ r64, r64 +// * TESTQ imm32, m64 +// * TESTQ r64, m64 +// +func (self *Program) TESTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTQ", 2, Operands { v0, v1 }) + // TESTQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0xa9) + m.imm4(toImmAny(v[0])) + }) + } + // TESTQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // TESTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x85) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0xf7) + m.mrsd(0, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // TESTQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x85) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTQ") + } + return p +} + +// TESTW performs "Logical Compare". +// +// Mnemonic : TEST +// Supported forms : (5 forms) +// +// * TESTW imm16, ax +// * TESTW imm16, r16 +// * TESTW r16, r16 +// * TESTW imm16, m16 +// * TESTW r16, m16 +// +func (self *Program) TESTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TESTW", 2, Operands { v0, v1 }) + // TESTW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xa9) + m.imm2(toImmAny(v[0])) + }) + } + // TESTW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // TESTW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x85) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // TESTW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0xf7) + m.mrsd(0, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // TESTW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x85) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TESTW") + } + return p +} + +// TZCNTL performs "Count the Number of Trailing Zero Bits". +// +// Mnemonic : TZCNT +// Supported forms : (2 forms) +// +// * TZCNTL r32, r32 [BMI] +// * TZCNTL m32, r32 [BMI] +// +func (self *Program) TZCNTL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZCNTL", 2, Operands { v0, v1 }) + // TZCNTL r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // TZCNTL m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZCNTL") + } + return p +} + +// TZCNTQ performs "Count the Number of Trailing Zero Bits". +// +// Mnemonic : TZCNT +// Supported forms : (2 forms) +// +// * TZCNTQ r64, r64 [BMI] +// * TZCNTQ m64, r64 [BMI] +// +func (self *Program) TZCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZCNTQ", 2, Operands { v0, v1 }) + // TZCNTQ r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // TZCNTQ m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xf3) + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZCNTQ") + } + return p +} + +// TZCNTW performs "Count the Number of Trailing Zero Bits". +// +// Mnemonic : TZCNT +// Supported forms : (2 forms) +// +// * TZCNTW r16, r16 [BMI] +// * TZCNTW m16, r16 [BMI] +// +func (self *Program) TZCNTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZCNTW", 2, Operands { v0, v1 }) + // TZCNTW r16, r16 + if isReg16(v0) && isReg16(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // TZCNTW m16, r16 + if isM16(v0) && isReg16(v1) { + self.require(ISA_BMI) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0xf3) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0xbc) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZCNTW") + } + return p +} + +// TZMSK performs "Mask From Trailing Zeros". +// +// Mnemonic : TZMSK +// Supported forms : (4 forms) +// +// * TZMSK r32, r32 [TBM] +// * TZMSK m32, r32 [TBM] +// * TZMSK r64, r64 [TBM] +// * TZMSK m64, r64 [TBM] +// +func (self *Program) TZMSK(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("TZMSK", 2, Operands { v0, v1 }) + // TZMSK r32, r32 + if isReg32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0x78 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe0 | lcode(v[0])) + }) + } + // TZMSK m32, r32 + if isM32(v0) && isReg32(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(4, addr(v[0]), 1) + }) + } + // TZMSK r64, r64 + if isReg64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xe0 | lcode(v[0])) + }) + } + // TZMSK m64, r64 + if isM64(v0) && isReg64(v1) { + self.require(ISA_TBM) + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, 0, addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(4, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for TZMSK") + } + return p +} + +// UCOMISD performs "Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : UCOMISD +// Supported forms : (2 forms) +// +// * UCOMISD xmm, xmm [SSE2] +// * UCOMISD m64, xmm [SSE2] +// +func (self *Program) UCOMISD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UCOMISD", 2, Operands { v0, v1 }) + // UCOMISD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UCOMISD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UCOMISD") + } + return p +} + +// UCOMISS performs "Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : UCOMISS +// Supported forms : (2 forms) +// +// * UCOMISS xmm, xmm [SSE] +// * UCOMISS m32, xmm [SSE] +// +func (self *Program) UCOMISS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UCOMISS", 2, Operands { v0, v1 }) + // UCOMISS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UCOMISS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UCOMISS") + } + return p +} + +// UD2 performs "Undefined Instruction". +// +// Mnemonic : UD2 +// Supported forms : (1 form) +// +// * UD2 +// +func (self *Program) UD2() *Instruction { + p := self.alloc("UD2", 0, Operands { }) + // UD2 + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x0b) + }) + return p +} + +// UNPCKHPD performs "Unpack and Interleave High Packed Double-Precision Floating-Point Values". +// +// Mnemonic : UNPCKHPD +// Supported forms : (2 forms) +// +// * UNPCKHPD xmm, xmm [SSE2] +// * UNPCKHPD m128, xmm [SSE2] +// +func (self *Program) UNPCKHPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKHPD", 2, Operands { v0, v1 }) + // UNPCKHPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKHPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKHPD") + } + return p +} + +// UNPCKHPS performs "Unpack and Interleave High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : UNPCKHPS +// Supported forms : (2 forms) +// +// * UNPCKHPS xmm, xmm [SSE] +// * UNPCKHPS m128, xmm [SSE] +// +func (self *Program) UNPCKHPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKHPS", 2, Operands { v0, v1 }) + // UNPCKHPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKHPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKHPS") + } + return p +} + +// UNPCKLPD performs "Unpack and Interleave Low Packed Double-Precision Floating-Point Values". +// +// Mnemonic : UNPCKLPD +// Supported forms : (2 forms) +// +// * UNPCKLPD xmm, xmm [SSE2] +// * UNPCKLPD m128, xmm [SSE2] +// +func (self *Program) UNPCKLPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKLPD", 2, Operands { v0, v1 }) + // UNPCKLPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKLPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKLPD") + } + return p +} + +// UNPCKLPS performs "Unpack and Interleave Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : UNPCKLPS +// Supported forms : (2 forms) +// +// * UNPCKLPS xmm, xmm [SSE] +// * UNPCKLPS m128, xmm [SSE] +// +func (self *Program) UNPCKLPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("UNPCKLPS", 2, Operands { v0, v1 }) + // UNPCKLPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // UNPCKLPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for UNPCKLPS") + } + return p +} + +// VADDPD performs "Add Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VADDPD +// Supported forms : (11 forms) +// +// * VADDPD xmm, xmm, xmm [AVX] +// * VADDPD m128, xmm, xmm [AVX] +// * VADDPD ymm, ymm, ymm [AVX] +// * VADDPD m256, ymm, ymm [AVX] +// * VADDPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VADDPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VADDPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VADDPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDPD takes 3 or 4 operands") + } + // VADDPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VADDPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VADDPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VADDPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDPD") + } + return p +} + +// VADDPS performs "Add Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VADDPS +// Supported forms : (11 forms) +// +// * VADDPS xmm, xmm, xmm [AVX] +// * VADDPS m128, xmm, xmm [AVX] +// * VADDPS ymm, ymm, ymm [AVX] +// * VADDPS m256, ymm, ymm [AVX] +// * VADDPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VADDPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VADDPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VADDPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VADDPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VADDPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDPS takes 3 or 4 operands") + } + // VADDPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VADDPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VADDPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VADDPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDPS") + } + return p +} + +// VADDSD performs "Add Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VADDSD +// Supported forms : (5 forms) +// +// * VADDSD xmm, xmm, xmm [AVX] +// * VADDSD m64, xmm, xmm [AVX] +// * VADDSD m64, xmm, xmm{k}{z} [AVX512F] +// * VADDSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VADDSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VADDSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDSD takes 3 or 4 operands") + } + // VADDSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VADDSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSD") + } + return p +} + +// VADDSS performs "Add Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VADDSS +// Supported forms : (5 forms) +// +// * VADDSS xmm, xmm, xmm [AVX] +// * VADDSS m32, xmm, xmm [AVX] +// * VADDSS m32, xmm, xmm{k}{z} [AVX512F] +// * VADDSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VADDSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VADDSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VADDSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VADDSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VADDSS takes 3 or 4 operands") + } + // VADDSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x58) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VADDSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x58) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VADDSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x58) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSS") + } + return p +} + +// VADDSUBPD performs "Packed Double-FP Add/Subtract". +// +// Mnemonic : VADDSUBPD +// Supported forms : (4 forms) +// +// * VADDSUBPD xmm, xmm, xmm [AVX] +// * VADDSUBPD m128, xmm, xmm [AVX] +// * VADDSUBPD ymm, ymm, ymm [AVX] +// * VADDSUBPD m256, ymm, ymm [AVX] +// +func (self *Program) VADDSUBPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VADDSUBPD", 3, Operands { v0, v1, v2 }) + // VADDSUBPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSUBPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSUBPD") + } + return p +} + +// VADDSUBPS performs "Packed Single-FP Add/Subtract". +// +// Mnemonic : VADDSUBPS +// Supported forms : (4 forms) +// +// * VADDSUBPS xmm, xmm, xmm [AVX] +// * VADDSUBPS m128, xmm, xmm [AVX] +// * VADDSUBPS ymm, ymm, ymm [AVX] +// * VADDSUBPS m256, ymm, ymm [AVX] +// +func (self *Program) VADDSUBPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VADDSUBPS", 3, Operands { v0, v1, v2 }) + // VADDSUBPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VADDSUBPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VADDSUBPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VADDSUBPS") + } + return p +} + +// VAESDEC performs "Perform One Round of an AES Decryption Flow". +// +// Mnemonic : VAESDEC +// Supported forms : (2 forms) +// +// * VAESDEC xmm, xmm, xmm [AES,AVX] +// * VAESDEC m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESDEC(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESDEC", 3, Operands { v0, v1, v2 }) + // VAESDEC xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESDEC m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESDEC") + } + return p +} + +// VAESDECLAST performs "Perform Last Round of an AES Decryption Flow". +// +// Mnemonic : VAESDECLAST +// Supported forms : (2 forms) +// +// * VAESDECLAST xmm, xmm, xmm [AES,AVX] +// * VAESDECLAST m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESDECLAST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESDECLAST", 3, Operands { v0, v1, v2 }) + // VAESDECLAST xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESDECLAST m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESDECLAST") + } + return p +} + +// VAESENC performs "Perform One Round of an AES Encryption Flow". +// +// Mnemonic : VAESENC +// Supported forms : (2 forms) +// +// * VAESENC xmm, xmm, xmm [AES,AVX] +// * VAESENC m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESENC(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESENC", 3, Operands { v0, v1, v2 }) + // VAESENC xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESENC m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESENC") + } + return p +} + +// VAESENCLAST performs "Perform Last Round of an AES Encryption Flow". +// +// Mnemonic : VAESENCLAST +// Supported forms : (2 forms) +// +// * VAESENCLAST xmm, xmm, xmm [AES,AVX] +// * VAESENCLAST m128, xmm, xmm [AES,AVX] +// +func (self *Program) VAESENCLAST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESENCLAST", 3, Operands { v0, v1, v2 }) + // VAESENCLAST xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VAESENCLAST m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESENCLAST") + } + return p +} + +// VAESIMC performs "Perform the AES InvMixColumn Transformation". +// +// Mnemonic : VAESIMC +// Supported forms : (2 forms) +// +// * VAESIMC xmm, xmm [AES,AVX] +// * VAESIMC m128, xmm [AES,AVX] +// +func (self *Program) VAESIMC(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VAESIMC", 2, Operands { v0, v1 }) + // VAESIMC xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VAESIMC m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VAESIMC") + } + return p +} + +// VAESKEYGENASSIST performs "AES Round Key Generation Assist". +// +// Mnemonic : VAESKEYGENASSIST +// Supported forms : (2 forms) +// +// * VAESKEYGENASSIST imm8, xmm, xmm [AES,AVX] +// * VAESKEYGENASSIST imm8, m128, xmm [AES,AVX] +// +func (self *Program) VAESKEYGENASSIST(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VAESKEYGENASSIST", 3, Operands { v0, v1, v2 }) + // VAESKEYGENASSIST imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VAESKEYGENASSIST imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX | ISA_AES) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VAESKEYGENASSIST") + } + return p +} + +// VALIGND performs "Align Doubleword Vectors". +// +// Mnemonic : VALIGND +// Supported forms : (6 forms) +// +// * VALIGND imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VALIGND imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VALIGND imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGND imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGND imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VALIGND imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VALIGND(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VALIGND", 4, Operands { v0, v1, v2, v3 }) + // VALIGND imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, m128/m32bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGND imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VALIGND") + } + return p +} + +// VALIGNQ performs "Align Quadword Vectors". +// +// Mnemonic : VALIGNQ +// Supported forms : (6 forms) +// +// * VALIGNQ imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VALIGNQ imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VALIGNQ imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGNQ imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VALIGNQ imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VALIGNQ imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VALIGNQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VALIGNQ", 4, Operands { v0, v1, v2, v3 }) + // VALIGNQ imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, m128/m64bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VALIGNQ imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x03) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VALIGNQ") + } + return p +} + +// VANDNPD performs "Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VANDNPD +// Supported forms : (10 forms) +// +// * VANDNPD xmm, xmm, xmm [AVX] +// * VANDNPD m128, xmm, xmm [AVX] +// * VANDNPD ymm, ymm, ymm [AVX] +// * VANDNPD m256, ymm, ymm [AVX] +// * VANDNPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDNPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDNPD", 3, Operands { v0, v1, v2 }) + // VANDNPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDNPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDNPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDNPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDNPD") + } + return p +} + +// VANDNPS performs "Bitwise Logical AND NOT of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VANDNPS +// Supported forms : (10 forms) +// +// * VANDNPS xmm, xmm, xmm [AVX] +// * VANDNPS m128, xmm, xmm [AVX] +// * VANDNPS ymm, ymm, ymm [AVX] +// * VANDNPS m256, ymm, ymm [AVX] +// * VANDNPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDNPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDNPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDNPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDNPS", 3, Operands { v0, v1, v2 }) + // VANDNPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDNPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDNPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDNPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDNPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDNPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x55) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDNPS") + } + return p +} + +// VANDPD performs "Bitwise Logical AND of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VANDPD +// Supported forms : (10 forms) +// +// * VANDPD xmm, xmm, xmm [AVX] +// * VANDPD m128, xmm, xmm [AVX] +// * VANDPD ymm, ymm, ymm [AVX] +// * VANDPD m256, ymm, ymm [AVX] +// * VANDPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDPD", 3, Operands { v0, v1, v2 }) + // VANDPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDPD") + } + return p +} + +// VANDPS performs "Bitwise Logical AND of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VANDPS +// Supported forms : (10 forms) +// +// * VANDPS xmm, xmm, xmm [AVX] +// * VANDPS m128, xmm, xmm [AVX] +// * VANDPS ymm, ymm, ymm [AVX] +// * VANDPS m256, ymm, ymm [AVX] +// * VANDPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VANDPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VANDPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VANDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VANDPS", 3, Operands { v0, v1, v2 }) + // VANDPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VANDPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VANDPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VANDPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VANDPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x54) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VANDPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VANDPS") + } + return p +} + +// VBLENDMPD performs "Blend Packed Double-Precision Floating-Point Vectors Using an OpMask Control". +// +// Mnemonic : VBLENDMPD +// Supported forms : (6 forms) +// +// * VBLENDMPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBLENDMPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VBLENDMPD", 3, Operands { v0, v1, v2 }) + // VBLENDMPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VBLENDMPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VBLENDMPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VBLENDMPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDMPD") + } + return p +} + +// VBLENDMPS performs "Blend Packed Single-Precision Floating-Point Vectors Using an OpMask Control". +// +// Mnemonic : VBLENDMPS +// Supported forms : (6 forms) +// +// * VBLENDMPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VBLENDMPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBLENDMPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBLENDMPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VBLENDMPS", 3, Operands { v0, v1, v2 }) + // VBLENDMPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VBLENDMPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VBLENDMPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VBLENDMPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VBLENDMPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDMPS") + } + return p +} + +// VBLENDPD performs "Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : VBLENDPD +// Supported forms : (4 forms) +// +// * VBLENDPD imm8, xmm, xmm, xmm [AVX] +// * VBLENDPD imm8, m128, xmm, xmm [AVX] +// * VBLENDPD imm8, ymm, ymm, ymm [AVX] +// * VBLENDPD imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDPD", 4, Operands { v0, v1, v2, v3 }) + // VBLENDPD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPD imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPD imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDPD") + } + return p +} + +// VBLENDPS performs " Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : VBLENDPS +// Supported forms : (4 forms) +// +// * VBLENDPS imm8, xmm, xmm, xmm [AVX] +// * VBLENDPS imm8, m128, xmm, xmm [AVX] +// * VBLENDPS imm8, ymm, ymm, ymm [AVX] +// * VBLENDPS imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDPS", 4, Operands { v0, v1, v2, v3 }) + // VBLENDPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPS imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPS imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VBLENDPS imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDPS") + } + return p +} + +// VBLENDVPD performs " Variable Blend Packed Double Precision Floating-Point Values". +// +// Mnemonic : VBLENDVPD +// Supported forms : (4 forms) +// +// * VBLENDVPD xmm, xmm, xmm, xmm [AVX] +// * VBLENDVPD xmm, m128, xmm, xmm [AVX] +// * VBLENDVPD ymm, ymm, ymm, ymm [AVX] +// * VBLENDVPD ymm, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDVPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDVPD", 4, Operands { v0, v1, v2, v3 }) + // VBLENDVPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x4b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDVPD") + } + return p +} + +// VBLENDVPS performs " Variable Blend Packed Single Precision Floating-Point Values". +// +// Mnemonic : VBLENDVPS +// Supported forms : (4 forms) +// +// * VBLENDVPS xmm, xmm, xmm, xmm [AVX] +// * VBLENDVPS xmm, m128, xmm, xmm [AVX] +// * VBLENDVPS ymm, ymm, ymm, ymm [AVX] +// * VBLENDVPS ymm, m256, ymm, ymm [AVX] +// +func (self *Program) VBLENDVPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VBLENDVPS", 4, Operands { v0, v1, v2, v3 }) + // VBLENDVPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x4a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VBLENDVPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VBLENDVPS") + } + return p +} + +// VBROADCASTF128 performs "Broadcast 128 Bit of Floating-Point Data". +// +// Mnemonic : VBROADCASTF128 +// Supported forms : (1 form) +// +// * VBROADCASTF128 m128, ymm [AVX] +// +func (self *Program) VBROADCASTF128(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF128", 2, Operands { v0, v1 }) + // VBROADCASTF128 m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF128") + } + return p +} + +// VBROADCASTF32X2 performs "Broadcast Two Single-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF32X2 +// Supported forms : (4 forms) +// +// * VBROADCASTF32X2 xmm, zmm{k}{z} [AVX512DQ] +// * VBROADCASTF32X2 m64, zmm{k}{z} [AVX512DQ] +// * VBROADCASTF32X2 xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTF32X2 m64, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTF32X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF32X2", 2, Operands { v0, v1 }) + // VBROADCASTF32X2 xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTF32X2 m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTF32X2 xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTF32X2 m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF32X2") + } + return p +} + +// VBROADCASTF32X4 performs "Broadcast Four Single-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF32X4 +// Supported forms : (2 forms) +// +// * VBROADCASTF32X4 m128, zmm{k}{z} [AVX512F] +// * VBROADCASTF32X4 m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTF32X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF32X4", 2, Operands { v0, v1 }) + // VBROADCASTF32X4 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTF32X4 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF32X4") + } + return p +} + +// VBROADCASTF32X8 performs "Broadcast Eight Single-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF32X8 +// Supported forms : (1 form) +// +// * VBROADCASTF32X8 m256, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VBROADCASTF32X8(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF32X8", 2, Operands { v0, v1 }) + // VBROADCASTF32X8 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF32X8") + } + return p +} + +// VBROADCASTF64X2 performs "Broadcast Two Double-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF64X2 +// Supported forms : (2 forms) +// +// * VBROADCASTF64X2 m128, zmm{k}{z} [AVX512DQ] +// * VBROADCASTF64X2 m128, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTF64X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF64X2", 2, Operands { v0, v1 }) + // VBROADCASTF64X2 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTF64X2 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF64X2") + } + return p +} + +// VBROADCASTF64X4 performs "Broadcast Four Double-Precision Floating-Point Elements". +// +// Mnemonic : VBROADCASTF64X4 +// Supported forms : (1 form) +// +// * VBROADCASTF64X4 m256, zmm{k}{z} [AVX512F] +// +func (self *Program) VBROADCASTF64X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTF64X4", 2, Operands { v0, v1 }) + // VBROADCASTF64X4 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTF64X4") + } + return p +} + +// VBROADCASTI128 performs "Broadcast 128 Bits of Integer Data". +// +// Mnemonic : VBROADCASTI128 +// Supported forms : (1 form) +// +// * VBROADCASTI128 m128, ymm [AVX2] +// +func (self *Program) VBROADCASTI128(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI128", 2, Operands { v0, v1 }) + // VBROADCASTI128 m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI128") + } + return p +} + +// VBROADCASTI32X2 performs "Broadcast Two Doubleword Elements". +// +// Mnemonic : VBROADCASTI32X2 +// Supported forms : (6 forms) +// +// * VBROADCASTI32X2 xmm, zmm{k}{z} [AVX512DQ] +// * VBROADCASTI32X2 m64, zmm{k}{z} [AVX512DQ] +// * VBROADCASTI32X2 xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTI32X2 xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTI32X2 m64, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VBROADCASTI32X2 m64, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTI32X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI32X2", 2, Operands { v0, v1 }) + // VBROADCASTI32X2 xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTI32X2 m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTI32X2 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTI32X2 xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTI32X2 m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTI32X2 m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI32X2") + } + return p +} + +// VBROADCASTI32X4 performs "Broadcast Four Doubleword Elements". +// +// Mnemonic : VBROADCASTI32X4 +// Supported forms : (2 forms) +// +// * VBROADCASTI32X4 m128, zmm{k}{z} [AVX512F] +// * VBROADCASTI32X4 m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTI32X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI32X4", 2, Operands { v0, v1 }) + // VBROADCASTI32X4 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTI32X4 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI32X4") + } + return p +} + +// VBROADCASTI32X8 performs "Broadcast Eight Doubleword Elements". +// +// Mnemonic : VBROADCASTI32X8 +// Supported forms : (1 form) +// +// * VBROADCASTI32X8 m256, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VBROADCASTI32X8(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI32X8", 2, Operands { v0, v1 }) + // VBROADCASTI32X8 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI32X8") + } + return p +} + +// VBROADCASTI64X2 performs "Broadcast Two Quadword Elements". +// +// Mnemonic : VBROADCASTI64X2 +// Supported forms : (2 forms) +// +// * VBROADCASTI64X2 m128, zmm{k}{z} [AVX512DQ] +// * VBROADCASTI64X2 m128, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VBROADCASTI64X2(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI64X2", 2, Operands { v0, v1 }) + // VBROADCASTI64X2 m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VBROADCASTI64X2 m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI64X2") + } + return p +} + +// VBROADCASTI64X4 performs "Broadcast Four Quadword Elements". +// +// Mnemonic : VBROADCASTI64X4 +// Supported forms : (1 form) +// +// * VBROADCASTI64X4 m256, zmm{k}{z} [AVX512F] +// +func (self *Program) VBROADCASTI64X4(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTI64X4", 2, Operands { v0, v1 }) + // VBROADCASTI64X4 m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTI64X4") + } + return p +} + +// VBROADCASTSD performs "Broadcast Double-Precision Floating-Point Element". +// +// Mnemonic : VBROADCASTSD +// Supported forms : (6 forms) +// +// * VBROADCASTSD m64, ymm [AVX] +// * VBROADCASTSD xmm, ymm [AVX2] +// * VBROADCASTSD xmm, zmm{k}{z} [AVX512F] +// * VBROADCASTSD m64, zmm{k}{z} [AVX512F] +// * VBROADCASTSD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBROADCASTSD m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTSD", 2, Operands { v0, v1 }) + // VBROADCASTSD m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VBROADCASTSD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSD m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VBROADCASTSD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSD m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTSD") + } + return p +} + +// VBROADCASTSS performs "Broadcast Single-Precision Floating-Point Element". +// +// Mnemonic : VBROADCASTSS +// Supported forms : (8 forms) +// +// * VBROADCASTSS m32, xmm [AVX] +// * VBROADCASTSS m32, ymm [AVX] +// * VBROADCASTSS xmm, xmm [AVX2] +// * VBROADCASTSS xmm, ymm [AVX2] +// * VBROADCASTSS xmm, zmm{k}{z} [AVX512F] +// * VBROADCASTSS m32, zmm{k}{z} [AVX512F] +// * VBROADCASTSS xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VBROADCASTSS m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VBROADCASTSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VBROADCASTSS", 2, Operands { v0, v1 }) + // VBROADCASTSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VBROADCASTSS m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VBROADCASTSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS m32, zmm{k}{z} + if isM32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VBROADCASTSS xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x18) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VBROADCASTSS m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x18) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VBROADCASTSS") + } + return p +} + +// VCMPPD performs "Compare Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCMPPD +// Supported forms : (11 forms) +// +// * VCMPPD imm8, xmm, xmm, xmm [AVX] +// * VCMPPD imm8, m128, xmm, xmm [AVX] +// * VCMPPD imm8, ymm, ymm, ymm [AVX] +// * VCMPPD imm8, m256, ymm, ymm [AVX] +// * VCMPPD imm8, m512/m64bcst, zmm, k{k} [AVX512F] +// * VCMPPD imm8, {sae}, zmm, zmm, k{k} [AVX512F] +// * VCMPPD imm8, zmm, zmm, k{k} [AVX512F] +// * VCMPPD imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPD imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VCMPPD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VCMPPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPPD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPPD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPPD takes 4 or 5 operands") + } + // VCMPPD imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m128, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, ymm, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m256, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m512/m64bcst, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, {sae}, zmm, zmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, zmm, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m128/m64bcst, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, m256/m64bcst, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPD imm8, ymm, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPPD") + } + return p +} + +// VCMPPS performs "Compare Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCMPPS +// Supported forms : (11 forms) +// +// * VCMPPS imm8, xmm, xmm, xmm [AVX] +// * VCMPPS imm8, m128, xmm, xmm [AVX] +// * VCMPPS imm8, ymm, ymm, ymm [AVX] +// * VCMPPS imm8, m256, ymm, ymm [AVX] +// * VCMPPS imm8, m512/m32bcst, zmm, k{k} [AVX512F] +// * VCMPPS imm8, {sae}, zmm, zmm, k{k} [AVX512F] +// * VCMPPS imm8, zmm, zmm, k{k} [AVX512F] +// * VCMPPS imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPS imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VCMPPS imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VCMPPS imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VCMPPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPPS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPPS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPPS takes 4 or 5 operands") + } + // VCMPPS imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m128, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, ymm, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m256, ymm, ymm + if len(vv) == 0 && isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m512/m32bcst, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, {sae}, zmm, zmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7c ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, zmm, zmm, k{k} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m128/m32bcst, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, m256/m32bcst, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPPS imm8, ymm, ymm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPPS") + } + return p +} + +// VCMPSD performs "Compare Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VCMPSD +// Supported forms : (5 forms) +// +// * VCMPSD imm8, xmm, xmm, xmm [AVX] +// * VCMPSD imm8, m64, xmm, xmm [AVX] +// * VCMPSD imm8, m64, xmm, k{k} [AVX512F] +// * VCMPSD imm8, {sae}, xmm, xmm, k{k} [AVX512F] +// * VCMPSD imm8, xmm, xmm, k{k} [AVX512F] +// +func (self *Program) VCMPSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPSD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPSD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPSD takes 4 or 5 operands") + } + // VCMPSD imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, m64, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, m64, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, {sae}, xmm, xmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xff ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSD imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPSD") + } + return p +} + +// VCMPSS performs "Compare Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VCMPSS +// Supported forms : (5 forms) +// +// * VCMPSS imm8, xmm, xmm, xmm [AVX] +// * VCMPSS imm8, m32, xmm, xmm [AVX] +// * VCMPSS imm8, m32, xmm, k{k} [AVX512F] +// * VCMPSS imm8, {sae}, xmm, xmm, k{k} [AVX512F] +// * VCMPSS imm8, xmm, xmm, k{k} [AVX512F] +// +func (self *Program) VCMPSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCMPSS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VCMPSS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VCMPSS takes 4 or 5 operands") + } + // VCMPSS imm8, xmm, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, m32, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, m32, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0xc2) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, {sae}, xmm, xmm, k{k} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isKk(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7e ^ (hlcode(v[3]) << 3)) + m.emit((0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCMPSS imm8, xmm, xmm, k{k} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCMPSS") + } + return p +} + +// VCOMISD performs "Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VCOMISD +// Supported forms : (5 forms) +// +// * VCOMISD xmm, xmm [AVX] +// * VCOMISD m64, xmm [AVX] +// * VCOMISD m64, xmm [AVX512F] +// * VCOMISD {sae}, xmm, xmm [AVX512F] +// * VCOMISD xmm, xmm [AVX512F] +// +func (self *Program) VCOMISD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCOMISD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCOMISD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCOMISD takes 2 or 3 operands") + } + // VCOMISD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCOMISD {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(0x18) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCOMISD xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x48) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMISD") + } + return p +} + +// VCOMISS performs "Compare Scalar Ordered Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VCOMISS +// Supported forms : (5 forms) +// +// * VCOMISS xmm, xmm [AVX] +// * VCOMISS m32, xmm [AVX] +// * VCOMISS m32, xmm [AVX512F] +// * VCOMISS {sae}, xmm, xmm [AVX512F] +// * VCOMISS xmm, xmm [AVX512F] +// +func (self *Program) VCOMISS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCOMISS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCOMISS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCOMISS takes 2 or 3 operands") + } + // VCOMISS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2f) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCOMISS {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit(0x18) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCOMISS xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit(0x48) + m.emit(0x2f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMISS") + } + return p +} + +// VCOMPRESSPD performs "Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory/Register". +// +// Mnemonic : VCOMPRESSPD +// Supported forms : (6 forms) +// +// * VCOMPRESSPD zmm, zmm{k}{z} [AVX512F] +// * VCOMPRESSPD zmm, m512{k}{z} [AVX512F] +// * VCOMPRESSPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPD ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCOMPRESSPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCOMPRESSPD", 2, Operands { v0, v1 }) + // VCOMPRESSPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VCOMPRESSPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VCOMPRESSPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMPRESSPD") + } + return p +} + +// VCOMPRESSPS performs "Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory/Register". +// +// Mnemonic : VCOMPRESSPS +// Supported forms : (6 forms) +// +// * VCOMPRESSPS zmm, zmm{k}{z} [AVX512F] +// * VCOMPRESSPS zmm, m512{k}{z} [AVX512F] +// * VCOMPRESSPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPS xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VCOMPRESSPS ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCOMPRESSPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCOMPRESSPS", 2, Operands { v0, v1 }) + // VCOMPRESSPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPS zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VCOMPRESSPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPS xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VCOMPRESSPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8a) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VCOMPRESSPS ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8a) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VCOMPRESSPS") + } + return p +} + +// VCVTDQ2PD performs "Convert Packed Dword Integers to Packed Double-Precision FP Values". +// +// Mnemonic : VCVTDQ2PD +// Supported forms : (10 forms) +// +// * VCVTDQ2PD xmm, xmm [AVX] +// * VCVTDQ2PD m64, xmm [AVX] +// * VCVTDQ2PD xmm, ymm [AVX] +// * VCVTDQ2PD m128, ymm [AVX] +// * VCVTDQ2PD m256/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTDQ2PD ymm, zmm{k}{z} [AVX512F] +// * VCVTDQ2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PD m128/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTDQ2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCVTDQ2PD", 2, Operands { v0, v1 }) + // VCVTDQ2PD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PD m256/m32bcst, zmm{k}{z} + if isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTDQ2PD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD m64/m32bcst, xmm{k}{z} + if isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTDQ2PD m128/m32bcst, ymm{k}{z} + if isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTDQ2PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTDQ2PD") + } + return p +} + +// VCVTDQ2PS performs "Convert Packed Dword Integers to Packed Single-Precision FP Values". +// +// Mnemonic : VCVTDQ2PS +// Supported forms : (11 forms) +// +// * VCVTDQ2PS xmm, xmm [AVX] +// * VCVTDQ2PS m128, xmm [AVX] +// * VCVTDQ2PS ymm, ymm [AVX] +// * VCVTDQ2PS m256, ymm [AVX] +// * VCVTDQ2PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTDQ2PS {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTDQ2PS zmm, zmm{k}{z} [AVX512F] +// * VCVTDQ2PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTDQ2PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTDQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTDQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTDQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTDQ2PS takes 2 or 3 operands") + } + // VCVTDQ2PS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PS ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTDQ2PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTDQ2PS {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTDQ2PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTDQ2PS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTDQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTDQ2PS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTDQ2PS") + } + return p +} + +// VCVTPD2DQ performs "Convert Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTPD2DQ +// Supported forms : (11 forms) +// +// * VCVTPD2DQ xmm, xmm [AVX] +// * VCVTPD2DQ ymm, xmm [AVX] +// * VCVTPD2DQ m128, xmm [AVX] +// * VCVTPD2DQ m256, xmm [AVX] +// * VCVTPD2DQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTPD2DQ {er}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2DQ zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2DQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2DQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2DQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPD2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2DQ takes 2 or 3 operands") + } + // VCVTPD2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ ymm, xmm + if len(vv) == 0 && isYMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2DQ m256, xmm + if len(vv) == 0 && isM256(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2DQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2DQ {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2DQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2DQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2DQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2DQ") + } + return p +} + +// VCVTPD2PS performs "Convert Packed Double-Precision FP Values to Packed Single-Precision FP Values". +// +// Mnemonic : VCVTPD2PS +// Supported forms : (11 forms) +// +// * VCVTPD2PS xmm, xmm [AVX] +// * VCVTPD2PS ymm, xmm [AVX] +// * VCVTPD2PS m128, xmm [AVX] +// * VCVTPD2PS m256, xmm [AVX] +// * VCVTPD2PS m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTPD2PS {er}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2PS zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2PS m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2PS m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2PS ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPD2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2PS takes 2 or 3 operands") + } + // VCVTPD2PS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS ymm, xmm + if len(vv) == 0 && isYMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2PS m256, xmm + if len(vv) == 0 && isM256(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPD2PS m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2PS {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2PS zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2PS m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2PS ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2PS") + } + return p +} + +// VCVTPD2QQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers". +// +// Mnemonic : VCVTPD2QQ +// Supported forms : (7 forms) +// +// * VCVTPD2QQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPD2QQ {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2QQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2QQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2QQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2QQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPD2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2QQ takes 2 or 3 operands") + } + // VCVTPD2QQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2QQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2QQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2QQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2QQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2QQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2QQ") + } + return p +} + +// VCVTPD2UDQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers". +// +// Mnemonic : VCVTPD2UDQ +// Supported forms : (7 forms) +// +// * VCVTPD2UDQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTPD2UDQ {er}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2UDQ zmm, ymm{k}{z} [AVX512F] +// * VCVTPD2UDQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2UDQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPD2UDQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPD2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2UDQ takes 2 or 3 operands") + } + // VCVTPD2UDQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2UDQ {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2UDQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UDQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2UDQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UDQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2UDQ") + } + return p +} + +// VCVTPD2UQQ performs "Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers". +// +// Mnemonic : VCVTPD2UQQ +// Supported forms : (7 forms) +// +// * VCVTPD2UQQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPD2UQQ {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2UQQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTPD2UQQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2UQQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPD2UQQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPD2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPD2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPD2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPD2UQQ takes 2 or 3 operands") + } + // VCVTPD2UQQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPD2UQQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPD2UQQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UQQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPD2UQQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPD2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPD2UQQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPD2UQQ") + } + return p +} + +// VCVTPH2PS performs "Convert Half-Precision FP Values to Single-Precision FP Values". +// +// Mnemonic : VCVTPH2PS +// Supported forms : (11 forms) +// +// * VCVTPH2PS xmm, xmm [F16C] +// * VCVTPH2PS m64, xmm [F16C] +// * VCVTPH2PS xmm, ymm [F16C] +// * VCVTPH2PS m128, ymm [F16C] +// * VCVTPH2PS m256, zmm{k}{z} [AVX512F] +// * VCVTPH2PS {sae}, ymm, zmm{k}{z} [AVX512F] +// * VCVTPH2PS ymm, zmm{k}{z} [AVX512F] +// * VCVTPH2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPH2PS xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTPH2PS m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPH2PS m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPH2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPH2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPH2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPH2PS takes 2 or 3 operands") + } + // VCVTPH2PS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPH2PS xmm, ymm + if len(vv) == 0 && isXMM(v0) && isYMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS m128, ymm + if len(vv) == 0 && isM128(v0) && isYMM(v1) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPH2PS m256, zmm{k}{z} + if len(vv) == 0 && isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPH2PS {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x13) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPH2PS ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x13) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPH2PS m64, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPH2PS m128, ymm{k}{z} + if len(vv) == 0 && isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPH2PS") + } + return p +} + +// VCVTPS2DQ performs "Convert Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTPS2DQ +// Supported forms : (11 forms) +// +// * VCVTPS2DQ xmm, xmm [AVX] +// * VCVTPS2DQ m128, xmm [AVX] +// * VCVTPS2DQ ymm, ymm [AVX] +// * VCVTPS2DQ m256, ymm [AVX] +// * VCVTPS2DQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTPS2DQ {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2DQ zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2DQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2DQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2DQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPS2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2DQ takes 2 or 3 operands") + } + // VCVTPS2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2DQ ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2DQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPS2DQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2DQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2DQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2DQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2DQ") + } + return p +} + +// VCVTPS2PD performs "Convert Packed Single-Precision FP Values to Packed Double-Precision FP Values". +// +// Mnemonic : VCVTPS2PD +// Supported forms : (11 forms) +// +// * VCVTPS2PD xmm, xmm [AVX] +// * VCVTPS2PD m64, xmm [AVX] +// * VCVTPS2PD xmm, ymm [AVX] +// * VCVTPS2PD m128, ymm [AVX] +// * VCVTPS2PD m256/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTPS2PD {sae}, ymm, zmm{k}{z} [AVX512F] +// * VCVTPS2PD ymm, zmm{k}{z} [AVX512F] +// * VCVTPS2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PD m128/m32bcst, ymm{k}{z} [AVX512VL] +// * VCVTPS2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PD xmm, ymm{k}{z} [AVX512VL] +// +func (self *Program) VCVTPS2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2PD takes 2 or 3 operands") + } + // VCVTPS2PD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2PD xmm, ymm + if len(vv) == 0 && isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD m128, ymm + if len(vv) == 0 && isM128(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTPS2PD m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2PD {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2PD ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPS2PD m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2PD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2PD xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2PD") + } + return p +} + +// VCVTPS2PH performs "Convert Single-Precision FP value to Half-Precision FP value". +// +// Mnemonic : VCVTPS2PH +// Supported forms : (11 forms) +// +// * VCVTPS2PH imm8, xmm, xmm [F16C] +// * VCVTPS2PH imm8, ymm, xmm [F16C] +// * VCVTPS2PH imm8, xmm, m64 [F16C] +// * VCVTPS2PH imm8, ymm, m128 [F16C] +// * VCVTPS2PH imm8, zmm, m256{k}{z} [AVX512F] +// * VCVTPS2PH imm8, {sae}, zmm, ymm{k}{z} [AVX512F] +// * VCVTPS2PH imm8, zmm, ymm{k}{z} [AVX512F] +// * VCVTPS2PH imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PH imm8, xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PH imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2PH imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPS2PH(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2PH", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTPS2PH", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTPS2PH takes 3 or 4 operands") + } + // VCVTPS2PH imm8, xmm, xmm + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, xmm + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isXMM(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, xmm, m64 + if len(vv) == 0 && isImm8(v0) && isXMM(v1) && isM64(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, m128 + if len(vv) == 0 && isImm8(v0) && isYMM(v1) && isM128(v2) { + self.require(ISA_F16C) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, zmm, m256{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, {sae}, zmm, ymm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[3]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[3])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, zmm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, xmm, m64{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isM64kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VCVTPS2PH imm8, ymm, m128{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2PH") + } + return p +} + +// VCVTPS2QQ performs "Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values". +// +// Mnemonic : VCVTPS2QQ +// Supported forms : (7 forms) +// +// * VCVTPS2QQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPS2QQ {er}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2QQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2QQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2QQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2QQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPS2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2QQ takes 2 or 3 operands") + } + // VCVTPS2QQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2QQ {er}, ymm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2QQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2QQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPS2QQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2QQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2QQ") + } + return p +} + +// VCVTPS2UDQ performs "Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values". +// +// Mnemonic : VCVTPS2UDQ +// Supported forms : (7 forms) +// +// * VCVTPS2UDQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTPS2UDQ {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2UDQ zmm, zmm{k}{z} [AVX512F] +// * VCVTPS2UDQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2UDQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTPS2UDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTPS2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2UDQ takes 2 or 3 operands") + } + // VCVTPS2UDQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTPS2UDQ {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2UDQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UDQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2UDQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UDQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2UDQ") + } + return p +} + +// VCVTPS2UQQ performs "Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values". +// +// Mnemonic : VCVTPS2UQQ +// Supported forms : (7 forms) +// +// * VCVTPS2UQQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTPS2UQQ {er}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2UQQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTPS2UQQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2UQQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTPS2UQQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTPS2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTPS2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTPS2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTPS2UQQ takes 2 or 3 operands") + } + // VCVTPS2UQQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTPS2UQQ {er}, ymm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTPS2UQQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UQQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTPS2UQQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTPS2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTPS2UQQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTPS2UQQ") + } + return p +} + +// VCVTQQ2PD performs "Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCVTQQ2PD +// Supported forms : (7 forms) +// +// * VCVTQQ2PD m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTQQ2PD {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTQQ2PD zmm, zmm{k}{z} [AVX512DQ] +// * VCVTQQ2PD m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PD m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PD xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PD ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTQQ2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTQQ2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTQQ2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTQQ2PD takes 2 or 3 operands") + } + // VCVTQQ2PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTQQ2PD {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTQQ2PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PD m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTQQ2PD m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTQQ2PD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTQQ2PD") + } + return p +} + +// VCVTQQ2PS performs "Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCVTQQ2PS +// Supported forms : (7 forms) +// +// * VCVTQQ2PS m512/m64bcst, ymm{k}{z} [AVX512DQ] +// * VCVTQQ2PS {er}, zmm, ymm{k}{z} [AVX512DQ] +// * VCVTQQ2PS zmm, ymm{k}{z} [AVX512DQ] +// * VCVTQQ2PS m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PS m256/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PS xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTQQ2PS ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTQQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTQQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTQQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTQQ2PS takes 2 or 3 operands") + } + // VCVTQQ2PS m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTQQ2PS {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTQQ2PS zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PS m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTQQ2PS m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTQQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTQQ2PS ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTQQ2PS") + } + return p +} + +// VCVTSD2SI performs "Convert Scalar Double-Precision FP Value to Integer". +// +// Mnemonic : VCVTSD2SI +// Supported forms : (10 forms) +// +// * VCVTSD2SI xmm, r32 [AVX] +// * VCVTSD2SI m64, r32 [AVX] +// * VCVTSD2SI xmm, r64 [AVX] +// * VCVTSD2SI m64, r64 [AVX] +// * VCVTSD2SI m64, r32 [AVX512F] +// * VCVTSD2SI m64, r64 [AVX512F] +// * VCVTSD2SI {er}, xmm, r32 [AVX512F] +// * VCVTSD2SI {er}, xmm, r64 [AVX512F] +// * VCVTSD2SI xmm, r32 [AVX512F] +// * VCVTSD2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSD2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSD2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSD2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSD2SI takes 2 or 3 operands") + } + // VCVTSD2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSD2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x83, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2SI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2SI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSD2SI") + } + return p +} + +// VCVTSD2SS performs "Convert Scalar Double-Precision FP Value to Scalar Single-Precision FP Value". +// +// Mnemonic : VCVTSD2SS +// Supported forms : (5 forms) +// +// * VCVTSD2SS xmm, xmm, xmm [AVX] +// * VCVTSD2SS m64, xmm, xmm [AVX] +// * VCVTSD2SS m64, xmm, xmm{k}{z} [AVX512F] +// * VCVTSD2SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VCVTSD2SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VCVTSD2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSD2SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSD2SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSD2SS takes 3 or 4 operands") + } + // VCVTSD2SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSD2SS m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTSD2SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSD2SS") + } + return p +} + +// VCVTSD2USI performs "Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer". +// +// Mnemonic : VCVTSD2USI +// Supported forms : (6 forms) +// +// * VCVTSD2USI m64, r32 [AVX512F] +// * VCVTSD2USI m64, r64 [AVX512F] +// * VCVTSD2USI {er}, xmm, r32 [AVX512F] +// * VCVTSD2USI {er}, xmm, r64 [AVX512F] +// * VCVTSD2USI xmm, r32 [AVX512F] +// * VCVTSD2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSD2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSD2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSD2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSD2USI takes 2 or 3 operands") + } + // VCVTSD2USI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2USI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTSD2USI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2USI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSD2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSD2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSD2USI") + } + return p +} + +// VCVTSI2SD performs "Convert Dword Integer to Scalar Double-Precision FP Value". +// +// Mnemonic : VCVTSI2SD +// Supported forms : (9 forms) +// +// * VCVTSI2SD r32, xmm, xmm [AVX] +// * VCVTSI2SD r64, xmm, xmm [AVX] +// * VCVTSI2SD m32, xmm, xmm [AVX] +// * VCVTSI2SD m64, xmm, xmm [AVX] +// * VCVTSI2SD r32, xmm, xmm [AVX512F] +// * VCVTSI2SD m32, xmm, xmm [AVX512F] +// * VCVTSI2SD m64, xmm, xmm [AVX512F] +// * VCVTSI2SD {er}, r64, xmm, xmm [AVX512F] +// * VCVTSI2SD r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTSI2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSI2SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSI2SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSI2SD takes 3 or 4 operands") + } + // VCVTSI2SD r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SD r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb ^ (hlcode(v[1]) << 3)) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x83, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SD r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTSI2SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTSI2SD {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSI2SD r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSI2SD") + } + return p +} + +// VCVTSI2SS performs "Convert Dword Integer to Scalar Single-Precision FP Value". +// +// Mnemonic : VCVTSI2SS +// Supported forms : (10 forms) +// +// * VCVTSI2SS r32, xmm, xmm [AVX] +// * VCVTSI2SS r64, xmm, xmm [AVX] +// * VCVTSI2SS m32, xmm, xmm [AVX] +// * VCVTSI2SS m64, xmm, xmm [AVX] +// * VCVTSI2SS m32, xmm, xmm [AVX512F] +// * VCVTSI2SS m64, xmm, xmm [AVX512F] +// * VCVTSI2SS {er}, r32, xmm, xmm [AVX512F] +// * VCVTSI2SS {er}, r64, xmm, xmm [AVX512F] +// * VCVTSI2SS r32, xmm, xmm [AVX512F] +// * VCVTSI2SS r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTSI2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSI2SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSI2SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSI2SS takes 3 or 4 operands") + } + // VCVTSI2SS r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SS r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa ^ (hlcode(v[1]) << 3)) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x82, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSI2SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTSI2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTSI2SS {er}, r32, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSI2SS {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfe ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSI2SS r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSI2SS r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSI2SS") + } + return p +} + +// VCVTSS2SD performs "Convert Scalar Single-Precision FP Value to Scalar Double-Precision FP Value". +// +// Mnemonic : VCVTSS2SD +// Supported forms : (5 forms) +// +// * VCVTSS2SD xmm, xmm, xmm [AVX] +// * VCVTSS2SD m32, xmm, xmm [AVX] +// * VCVTSS2SD m32, xmm, xmm{k}{z} [AVX512F] +// * VCVTSS2SD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VCVTSS2SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VCVTSS2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSS2SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTSS2SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTSS2SD takes 3 or 4 operands") + } + // VCVTSS2SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VCVTSS2SD m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5a) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTSS2SD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSS2SD") + } + return p +} + +// VCVTSS2SI performs "Convert Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : VCVTSS2SI +// Supported forms : (10 forms) +// +// * VCVTSS2SI xmm, r32 [AVX] +// * VCVTSS2SI m32, r32 [AVX] +// * VCVTSS2SI xmm, r64 [AVX] +// * VCVTSS2SI m32, r64 [AVX] +// * VCVTSS2SI m32, r32 [AVX512F] +// * VCVTSS2SI m32, r64 [AVX512F] +// * VCVTSS2SI {er}, xmm, r32 [AVX512F] +// * VCVTSS2SI {er}, xmm, r64 [AVX512F] +// * VCVTSS2SI xmm, r32 [AVX512F] +// * VCVTSS2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSS2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSS2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSS2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSS2SI takes 2 or 3 operands") + } + // VCVTSS2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSS2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x82, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2d) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2SI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2SI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSS2SI") + } + return p +} + +// VCVTSS2USI performs "Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer". +// +// Mnemonic : VCVTSS2USI +// Supported forms : (6 forms) +// +// * VCVTSS2USI m32, r32 [AVX512F] +// * VCVTSS2USI m32, r64 [AVX512F] +// * VCVTSS2USI {er}, xmm, r32 [AVX512F] +// * VCVTSS2USI {er}, xmm, r64 [AVX512F] +// * VCVTSS2USI xmm, r32 [AVX512F] +// * VCVTSS2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTSS2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTSS2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTSS2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTSS2USI takes 2 or 3 operands") + } + // VCVTSS2USI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2USI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTSS2USI {er}, xmm, r32 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2USI {er}, xmm, r64 + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((vcode(v[0]) << 5) | 0x18) + m.emit(0x79) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTSS2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTSS2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTSS2USI") + } + return p +} + +// VCVTTPD2DQ performs "Convert with Truncation Packed Double-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTTPD2DQ +// Supported forms : (11 forms) +// +// * VCVTTPD2DQ xmm, xmm [AVX] +// * VCVTTPD2DQ ymm, xmm [AVX] +// * VCVTTPD2DQ m128, xmm [AVX] +// * VCVTTPD2DQ m256, xmm [AVX] +// * VCVTTPD2DQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTTPD2DQ {sae}, zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2DQ zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2DQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2DQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2DQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPD2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2DQ takes 2 or 3 operands") + } + // VCVTTPD2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ ymm, xmm + if len(vv) == 0 && isYMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPD2DQ m256, xmm + if len(vv) == 0 && isM256(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPD2DQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2DQ {sae}, zmm, ymm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2DQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2DQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xe6) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2DQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xe6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2DQ") + } + return p +} + +// VCVTTPD2QQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers". +// +// Mnemonic : VCVTTPD2QQ +// Supported forms : (7 forms) +// +// * VCVTTPD2QQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2QQ {sae}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2QQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2QQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2QQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2QQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPD2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2QQ takes 2 or 3 operands") + } + // VCVTTPD2QQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2QQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2QQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2QQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2QQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2QQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2QQ") + } + return p +} + +// VCVTTPD2UDQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers". +// +// Mnemonic : VCVTTPD2UDQ +// Supported forms : (7 forms) +// +// * VCVTTPD2UDQ m512/m64bcst, ymm{k}{z} [AVX512F] +// * VCVTTPD2UDQ {sae}, zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2UDQ zmm, ymm{k}{z} [AVX512F] +// * VCVTTPD2UDQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2UDQ m256/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPD2UDQ ymm, xmm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPD2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2UDQ takes 2 or 3 operands") + } + // VCVTTPD2UDQ m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2UDQ {sae}, zmm, ymm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2UDQ zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UDQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2UDQ m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x84, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UDQ ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfc) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2UDQ") + } + return p +} + +// VCVTTPD2UQQ performs "Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers". +// +// Mnemonic : VCVTTPD2UQQ +// Supported forms : (7 forms) +// +// * VCVTTPD2UQQ m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2UQQ {sae}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2UQQ zmm, zmm{k}{z} [AVX512DQ] +// * VCVTTPD2UQQ m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2UQQ m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPD2UQQ ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPD2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPD2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPD2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPD2UQQ takes 2 or 3 operands") + } + // VCVTTPD2UQQ m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPD2UQQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPD2UQQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UQQ m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPD2UQQ m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPD2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPD2UQQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPD2UQQ") + } + return p +} + +// VCVTTPS2DQ performs "Convert with Truncation Packed Single-Precision FP Values to Packed Dword Integers". +// +// Mnemonic : VCVTTPS2DQ +// Supported forms : (11 forms) +// +// * VCVTTPS2DQ xmm, xmm [AVX] +// * VCVTTPS2DQ m128, xmm [AVX] +// * VCVTTPS2DQ ymm, ymm [AVX] +// * VCVTTPS2DQ m256, ymm [AVX] +// * VCVTTPS2DQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTTPS2DQ {sae}, zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2DQ zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2DQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2DQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2DQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2DQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPS2DQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2DQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2DQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2DQ takes 2 or 3 operands") + } + // VCVTTPS2DQ xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPS2DQ ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTPS2DQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPS2DQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2DQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2DQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x5b) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2DQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2DQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x5b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2DQ") + } + return p +} + +// VCVTTPS2QQ performs "Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values". +// +// Mnemonic : VCVTTPS2QQ +// Supported forms : (7 forms) +// +// * VCVTTPS2QQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2QQ {sae}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2QQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2QQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2QQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2QQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2QQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPS2QQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2QQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2QQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2QQ takes 2 or 3 operands") + } + // VCVTTPS2QQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2QQ {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2QQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2QQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTPS2QQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2QQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2QQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2QQ") + } + return p +} + +// VCVTTPS2UDQ performs "Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values". +// +// Mnemonic : VCVTTPS2UDQ +// Supported forms : (7 forms) +// +// * VCVTTPS2UDQ m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTTPS2UDQ {sae}, zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2UDQ zmm, zmm{k}{z} [AVX512F] +// * VCVTTPS2UDQ m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2UDQ m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2UDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTTPS2UDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTTPS2UDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2UDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2UDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2UDQ takes 2 or 3 operands") + } + // VCVTTPS2UDQ m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTTPS2UDQ {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2UDQ zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UDQ m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2UDQ m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2UDQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UDQ ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2UDQ") + } + return p +} + +// VCVTTPS2UQQ performs "Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values". +// +// Mnemonic : VCVTTPS2UQQ +// Supported forms : (7 forms) +// +// * VCVTTPS2UQQ m256/m32bcst, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2UQQ {sae}, ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2UQQ ymm, zmm{k}{z} [AVX512DQ] +// * VCVTTPS2UQQ m64/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2UQQ m128/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2UQQ xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTTPS2UQQ xmm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTTPS2UQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTPS2UQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTPS2UQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTPS2UQQ takes 2 or 3 operands") + } + // VCVTTPS2UQQ m256/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTTPS2UQQ {sae}, ymm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXYMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTPS2UQQ ymm, zmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UQQ m64/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTPS2UQQ m128/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTTPS2UQQ xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTPS2UQQ xmm, ymm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTPS2UQQ") + } + return p +} + +// VCVTTSD2SI performs "Convert with Truncation Scalar Double-Precision FP Value to Signed Integer". +// +// Mnemonic : VCVTTSD2SI +// Supported forms : (10 forms) +// +// * VCVTTSD2SI xmm, r32 [AVX] +// * VCVTTSD2SI m64, r32 [AVX] +// * VCVTTSD2SI xmm, r64 [AVX] +// * VCVTTSD2SI m64, r64 [AVX] +// * VCVTTSD2SI m64, r32 [AVX512F] +// * VCVTTSD2SI m64, r64 [AVX512F] +// * VCVTTSD2SI {sae}, xmm, r32 [AVX512F] +// * VCVTTSD2SI {sae}, xmm, r64 [AVX512F] +// * VCVTTSD2SI xmm, r32 [AVX512F] +// * VCVTTSD2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSD2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSD2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSD2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSD2SI takes 2 or 3 operands") + } + // VCVTTSD2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSD2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfb) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x83, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSD2SI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2SI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2SI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2SI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSD2SI") + } + return p +} + +// VCVTTSD2USI performs "Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer". +// +// Mnemonic : VCVTTSD2USI +// Supported forms : (6 forms) +// +// * VCVTTSD2USI m64, r32 [AVX512F] +// * VCVTTSD2USI m64, r64 [AVX512F] +// * VCVTTSD2USI {sae}, xmm, r32 [AVX512F] +// * VCVTTSD2USI {sae}, xmm, r64 [AVX512F] +// * VCVTTSD2USI xmm, r32 [AVX512F] +// * VCVTTSD2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSD2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSD2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSD2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSD2USI takes 2 or 3 operands") + } + // VCVTTSD2USI m64, r32 + if len(vv) == 0 && isM64(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2USI m64, r64 + if len(vv) == 0 && isM64(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTTSD2USI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2USI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSD2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSD2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSD2USI") + } + return p +} + +// VCVTTSS2SI performs "Convert with Truncation Scalar Single-Precision FP Value to Dword Integer". +// +// Mnemonic : VCVTTSS2SI +// Supported forms : (10 forms) +// +// * VCVTTSS2SI xmm, r32 [AVX] +// * VCVTTSS2SI m32, r32 [AVX] +// * VCVTTSS2SI xmm, r64 [AVX] +// * VCVTTSS2SI m32, r64 [AVX] +// * VCVTTSS2SI m32, r32 [AVX512F] +// * VCVTTSS2SI m32, r64 [AVX512F] +// * VCVTTSS2SI {sae}, xmm, r32 [AVX512F] +// * VCVTTSS2SI {sae}, xmm, r64 [AVX512F] +// * VCVTTSS2SI xmm, r32 [AVX512F] +// * VCVTTSS2SI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSS2SI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSS2SI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSS2SI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSS2SI takes 2 or 3 operands") + } + // VCVTTSS2SI xmm, r32 + if len(vv) == 0 && isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSS2SI xmm, r64 + if len(vv) == 0 && isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfa) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x82, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VCVTTSS2SI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2SI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2c) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2SI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2SI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit(0x18) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2SI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2SI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSS2SI") + } + return p +} + +// VCVTTSS2USI performs "Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer". +// +// Mnemonic : VCVTTSS2USI +// Supported forms : (6 forms) +// +// * VCVTTSS2USI m32, r32 [AVX512F] +// * VCVTTSS2USI m32, r64 [AVX512F] +// * VCVTTSS2USI {sae}, xmm, r32 [AVX512F] +// * VCVTTSS2USI {sae}, xmm, r64 [AVX512F] +// * VCVTTSS2USI xmm, r32 [AVX512F] +// * VCVTTSS2USI xmm, r64 [AVX512F] +// +func (self *Program) VCVTTSS2USI(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTTSS2USI", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTTSS2USI", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTTSS2USI takes 2 or 3 operands") + } + // VCVTTSS2USI m32, r32 + if len(vv) == 0 && isM32(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2USI m32, r64 + if len(vv) == 0 && isM32(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VCVTTSS2USI {sae}, xmm, r32 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg32(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2USI {sae}, xmm, r64 + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isReg64(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit(0x18) + m.emit(0x78) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTTSS2USI xmm, r32 + if len(vv) == 0 && isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTTSS2USI xmm, r64 + if len(vv) == 0 && isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTTSS2USI") + } + return p +} + +// VCVTUDQ2PD performs "Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCVTUDQ2PD +// Supported forms : (6 forms) +// +// * VCVTUDQ2PD m256/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PD ymm, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PD m64/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PD m128/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTUDQ2PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VCVTUDQ2PD", 2, Operands { v0, v1 }) + // VCVTUDQ2PD m256/m32bcst, zmm{k}{z} + if isM256M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUDQ2PD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PD m64/m32bcst, xmm{k}{z} + if isM64M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VCVTUDQ2PD m128/m32bcst, ymm{k}{z} + if isM128M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUDQ2PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUDQ2PD") + } + return p +} + +// VCVTUDQ2PS performs "Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCVTUDQ2PS +// Supported forms : (7 forms) +// +// * VCVTUDQ2PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PS {er}, zmm, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PS zmm, zmm{k}{z} [AVX512F] +// * VCVTUDQ2PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VCVTUDQ2PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VCVTUDQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUDQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTUDQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTUDQ2PS takes 2 or 3 operands") + } + // VCVTUDQ2PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTUDQ2PS {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTUDQ2PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUDQ2PS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUDQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUDQ2PS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUDQ2PS") + } + return p +} + +// VCVTUQQ2PD performs "Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VCVTUQQ2PD +// Supported forms : (7 forms) +// +// * VCVTUQQ2PD m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VCVTUQQ2PD {er}, zmm, zmm{k}{z} [AVX512DQ] +// * VCVTUQQ2PD zmm, zmm{k}{z} [AVX512DQ] +// * VCVTUQQ2PD m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PD m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PD xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PD ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTUQQ2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUQQ2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTUQQ2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTUQQ2PD takes 2 or 3 operands") + } + // VCVTUQQ2PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTUQQ2PD {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTUQQ2PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PD m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUQQ2PD m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUQQ2PD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUQQ2PD") + } + return p +} + +// VCVTUQQ2PS performs "Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VCVTUQQ2PS +// Supported forms : (7 forms) +// +// * VCVTUQQ2PS m512/m64bcst, ymm{k}{z} [AVX512DQ] +// * VCVTUQQ2PS {er}, zmm, ymm{k}{z} [AVX512DQ] +// * VCVTUQQ2PS zmm, ymm{k}{z} [AVX512DQ] +// * VCVTUQQ2PS m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PS m256/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PS xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VCVTUQQ2PS ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VCVTUQQ2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUQQ2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VCVTUQQ2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VCVTUQQ2PS takes 2 or 3 operands") + } + // VCVTUQQ2PS m512/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VCVTUQQ2PS {er}, zmm, ymm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isYMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VCVTUQQ2PS zmm, ymm{k}{z} + if len(vv) == 0 && isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PS m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VCVTUQQ2PS m256/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x7a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VCVTUQQ2PS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VCVTUQQ2PS ymm, xmm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUQQ2PS") + } + return p +} + +// VCVTUSI2SD performs "Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VCVTUSI2SD +// Supported forms : (5 forms) +// +// * VCVTUSI2SD r32, xmm, xmm [AVX512F] +// * VCVTUSI2SD m32, xmm, xmm [AVX512F] +// * VCVTUSI2SD m64, xmm, xmm [AVX512F] +// * VCVTUSI2SD {er}, r64, xmm, xmm [AVX512F] +// * VCVTUSI2SD r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTUSI2SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUSI2SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTUSI2SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTUSI2SD takes 3 or 4 operands") + } + // VCVTUSI2SD r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTUSI2SD m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTUSI2SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTUSI2SD {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTUSI2SD r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUSI2SD") + } + return p +} + +// VCVTUSI2SS performs "Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VCVTUSI2SS +// Supported forms : (6 forms) +// +// * VCVTUSI2SS m32, xmm, xmm [AVX512F] +// * VCVTUSI2SS m64, xmm, xmm [AVX512F] +// * VCVTUSI2SS {er}, r32, xmm, xmm [AVX512F] +// * VCVTUSI2SS {er}, r64, xmm, xmm [AVX512F] +// * VCVTUSI2SS r32, xmm, xmm [AVX512F] +// * VCVTUSI2SS r64, xmm, xmm [AVX512F] +// +func (self *Program) VCVTUSI2SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VCVTUSI2SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VCVTUSI2SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VCVTUSI2SS takes 3 or 4 operands") + } + // VCVTUSI2SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VCVTUSI2SS m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x7b) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VCVTUSI2SS {er}, r32, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTUSI2SS {er}, r64, xmm, xmm + if len(vv) == 1 && isER(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfe ^ (hlcode(v[2]) << 3)) + m.emit((vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | 0x10) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VCVTUSI2SS r32, xmm, xmm + if len(vv) == 0 && isReg32(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VCVTUSI2SS r64, xmm, xmm + if len(vv) == 0 && isReg64(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VCVTUSI2SS") + } + return p +} + +// VDBPSADBW performs "Double Block Packed Sum-Absolute-Differences on Unsigned Bytes". +// +// Mnemonic : VDBPSADBW +// Supported forms : (6 forms) +// +// * VDBPSADBW imm8, zmm, zmm, zmm{k}{z} [AVX512BW] +// * VDBPSADBW imm8, m512, zmm, zmm{k}{z} [AVX512BW] +// * VDBPSADBW imm8, xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VDBPSADBW imm8, m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VDBPSADBW imm8, ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VDBPSADBW imm8, m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VDBPSADBW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VDBPSADBW", 4, Operands { v0, v1, v2, v3 }) + // VDBPSADBW imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, m512, zmm, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, m128, xmm, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDBPSADBW imm8, m256, ymm, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDBPSADBW") + } + return p +} + +// VDIVPD performs "Divide Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VDIVPD +// Supported forms : (11 forms) +// +// * VDIVPD xmm, xmm, xmm [AVX] +// * VDIVPD m128, xmm, xmm [AVX] +// * VDIVPD ymm, ymm, ymm [AVX] +// * VDIVPD m256, ymm, ymm [AVX] +// * VDIVPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VDIVPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VDIVPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VDIVPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVPD takes 3 or 4 operands") + } + // VDIVPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VDIVPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VDIVPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VDIVPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVPD") + } + return p +} + +// VDIVPS performs "Divide Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VDIVPS +// Supported forms : (11 forms) +// +// * VDIVPS xmm, xmm, xmm [AVX] +// * VDIVPS m128, xmm, xmm [AVX] +// * VDIVPS ymm, ymm, ymm [AVX] +// * VDIVPS m256, ymm, ymm [AVX] +// * VDIVPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VDIVPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VDIVPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VDIVPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VDIVPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VDIVPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVPS takes 3 or 4 operands") + } + // VDIVPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VDIVPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VDIVPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VDIVPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVPS") + } + return p +} + +// VDIVSD performs "Divide Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VDIVSD +// Supported forms : (5 forms) +// +// * VDIVSD xmm, xmm, xmm [AVX] +// * VDIVSD m64, xmm, xmm [AVX] +// * VDIVSD m64, xmm, xmm{k}{z} [AVX512F] +// * VDIVSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VDIVSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VDIVSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVSD takes 3 or 4 operands") + } + // VDIVSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VDIVSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVSD") + } + return p +} + +// VDIVSS performs "Divide Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VDIVSS +// Supported forms : (5 forms) +// +// * VDIVSS xmm, xmm, xmm [AVX] +// * VDIVSS m32, xmm, xmm [AVX] +// * VDIVSS m32, xmm, xmm{k}{z} [AVX512F] +// * VDIVSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VDIVSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VDIVSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VDIVSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VDIVSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VDIVSS takes 3 or 4 operands") + } + // VDIVSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VDIVSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VDIVSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5e) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VDIVSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VDIVSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDIVSS") + } + return p +} + +// VDPPD performs "Dot Product of Packed Double Precision Floating-Point Values". +// +// Mnemonic : VDPPD +// Supported forms : (2 forms) +// +// * VDPPD imm8, xmm, xmm, xmm [AVX] +// * VDPPD imm8, m128, xmm, xmm [AVX] +// +func (self *Program) VDPPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VDPPD", 4, Operands { v0, v1, v2, v3 }) + // VDPPD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x41) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x41) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDPPD") + } + return p +} + +// VDPPS performs "Dot Product of Packed Single Precision Floating-Point Values". +// +// Mnemonic : VDPPS +// Supported forms : (4 forms) +// +// * VDPPS imm8, xmm, xmm, xmm [AVX] +// * VDPPS imm8, m128, xmm, xmm [AVX] +// * VDPPS imm8, ymm, ymm, ymm [AVX] +// * VDPPS imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VDPPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VDPPS", 4, Operands { v0, v1, v2, v3 }) + // VDPPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPS imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x40) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPS imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VDPPS imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x40) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VDPPS") + } + return p +} + +// VEXP2PD performs "Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error". +// +// Mnemonic : VEXP2PD +// Supported forms : (3 forms) +// +// * VEXP2PD m512/m64bcst, zmm{k}{z} [AVX512ER] +// * VEXP2PD {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VEXP2PD zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VEXP2PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VEXP2PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VEXP2PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VEXP2PD takes 2 or 3 operands") + } + // VEXP2PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc8) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VEXP2PD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VEXP2PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXP2PD") + } + return p +} + +// VEXP2PS performs "Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error". +// +// Mnemonic : VEXP2PS +// Supported forms : (3 forms) +// +// * VEXP2PS m512/m32bcst, zmm{k}{z} [AVX512ER] +// * VEXP2PS {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VEXP2PS zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VEXP2PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VEXP2PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VEXP2PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VEXP2PS takes 2 or 3 operands") + } + // VEXP2PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc8) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VEXP2PS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VEXP2PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc8) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXP2PS") + } + return p +} + +// VEXPANDPD performs "Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory". +// +// Mnemonic : VEXPANDPD +// Supported forms : (6 forms) +// +// * VEXPANDPD zmm, zmm{k}{z} [AVX512F] +// * VEXPANDPD m512, zmm{k}{z} [AVX512F] +// * VEXPANDPD xmm, xmm{k}{z} [AVX512VL] +// * VEXPANDPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPD m128, xmm{k}{z} [AVX512VL] +// * VEXPANDPD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXPANDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VEXPANDPD", 2, Operands { v0, v1 }) + // VEXPANDPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VEXPANDPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VEXPANDPD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VEXPANDPD") + } + return p +} + +// VEXPANDPS performs "Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory". +// +// Mnemonic : VEXPANDPS +// Supported forms : (6 forms) +// +// * VEXPANDPS zmm, zmm{k}{z} [AVX512F] +// * VEXPANDPS m512, zmm{k}{z} [AVX512F] +// * VEXPANDPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPS m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXPANDPS m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXPANDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VEXPANDPS", 2, Operands { v0, v1 }) + // VEXPANDPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPS m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VEXPANDPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x88) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VEXPANDPS m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VEXPANDPS m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x88) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VEXPANDPS") + } + return p +} + +// VEXTRACTF128 performs "Extract Packed Floating-Point Values". +// +// Mnemonic : VEXTRACTF128 +// Supported forms : (2 forms) +// +// * VEXTRACTF128 imm8, ymm, xmm [AVX] +// * VEXTRACTF128 imm8, ymm, m128 [AVX] +// +func (self *Program) VEXTRACTF128(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF128", 3, Operands { v0, v1, v2 }) + // VEXTRACTF128 imm8, ymm, xmm + if isImm8(v0) && isYMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF128 imm8, ymm, m128 + if isImm8(v0) && isYMM(v1) && isM128(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF128") + } + return p +} + +// VEXTRACTF32X4 performs "Extract 128 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF32X4 +// Supported forms : (4 forms) +// +// * VEXTRACTF32X4 imm8, zmm, xmm{k}{z} [AVX512F] +// * VEXTRACTF32X4 imm8, zmm, m128{k}{z} [AVX512F] +// * VEXTRACTF32X4 imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXTRACTF32X4 imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXTRACTF32X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF32X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTF32X4 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X4 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X4 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X4 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF32X4") + } + return p +} + +// VEXTRACTF32X8 performs "Extract 256 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF32X8 +// Supported forms : (2 forms) +// +// * VEXTRACTF32X8 imm8, zmm, ymm{k}{z} [AVX512DQ] +// * VEXTRACTF32X8 imm8, zmm, m256{k}{z} [AVX512DQ] +// +func (self *Program) VEXTRACTF32X8(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF32X8", 3, Operands { v0, v1, v2 }) + // VEXTRACTF32X8 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF32X8 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF32X8") + } + return p +} + +// VEXTRACTF64X2 performs "Extract 128 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF64X2 +// Supported forms : (4 forms) +// +// * VEXTRACTF64X2 imm8, zmm, xmm{k}{z} [AVX512DQ] +// * VEXTRACTF64X2 imm8, zmm, m128{k}{z} [AVX512DQ] +// * VEXTRACTF64X2 imm8, ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VEXTRACTF64X2 imm8, ymm, m128{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VEXTRACTF64X2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF64X2", 3, Operands { v0, v1, v2 }) + // VEXTRACTF64X2 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X2 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X2 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x19) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X2 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x19) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF64X2") + } + return p +} + +// VEXTRACTF64X4 performs "Extract 256 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VEXTRACTF64X4 +// Supported forms : (2 forms) +// +// * VEXTRACTF64X4 imm8, zmm, ymm{k}{z} [AVX512F] +// * VEXTRACTF64X4 imm8, zmm, m256{k}{z} [AVX512F] +// +func (self *Program) VEXTRACTF64X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTF64X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTF64X4 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x1b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTF64X4 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x1b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTF64X4") + } + return p +} + +// VEXTRACTI128 performs "Extract Packed Integer Values". +// +// Mnemonic : VEXTRACTI128 +// Supported forms : (2 forms) +// +// * VEXTRACTI128 imm8, ymm, xmm [AVX2] +// * VEXTRACTI128 imm8, ymm, m128 [AVX2] +// +func (self *Program) VEXTRACTI128(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI128", 3, Operands { v0, v1, v2 }) + // VEXTRACTI128 imm8, ymm, xmm + if isImm8(v0) && isYMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI128 imm8, ymm, m128 + if isImm8(v0) && isYMM(v1) && isM128(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[1]), addr(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI128") + } + return p +} + +// VEXTRACTI32X4 performs "Extract 128 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VEXTRACTI32X4 +// Supported forms : (4 forms) +// +// * VEXTRACTI32X4 imm8, zmm, xmm{k}{z} [AVX512F] +// * VEXTRACTI32X4 imm8, zmm, m128{k}{z} [AVX512F] +// * VEXTRACTI32X4 imm8, ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VEXTRACTI32X4 imm8, ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VEXTRACTI32X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI32X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTI32X4 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X4 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X4 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X4 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI32X4") + } + return p +} + +// VEXTRACTI32X8 performs "Extract 256 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VEXTRACTI32X8 +// Supported forms : (2 forms) +// +// * VEXTRACTI32X8 imm8, zmm, ymm{k}{z} [AVX512DQ] +// * VEXTRACTI32X8 imm8, zmm, m256{k}{z} [AVX512DQ] +// +func (self *Program) VEXTRACTI32X8(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI32X8", 3, Operands { v0, v1, v2 }) + // VEXTRACTI32X8 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI32X8 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI32X8") + } + return p +} + +// VEXTRACTI64X2 performs "Extract 128 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VEXTRACTI64X2 +// Supported forms : (4 forms) +// +// * VEXTRACTI64X2 imm8, zmm, xmm{k}{z} [AVX512DQ] +// * VEXTRACTI64X2 imm8, zmm, m128{k}{z} [AVX512DQ] +// * VEXTRACTI64X2 imm8, ymm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VEXTRACTI64X2 imm8, ymm, m128{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VEXTRACTI64X2(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI64X2", 3, Operands { v0, v1, v2 }) + // VEXTRACTI64X2 imm8, zmm, xmm{k}{z} + if isImm8(v0) && isZMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X2 imm8, zmm, m128{k}{z} + if isImm8(v0) && isZMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X2 imm8, ymm, xmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X2 imm8, ymm, m128{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isM128kz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x39) + m.mrsd(lcode(v[1]), addr(v[2]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI64X2") + } + return p +} + +// VEXTRACTI64X4 performs "Extract 256 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VEXTRACTI64X4 +// Supported forms : (2 forms) +// +// * VEXTRACTI64X4 imm8, zmm, ymm{k}{z} [AVX512F] +// * VEXTRACTI64X4 imm8, zmm, m256{k}{z} [AVX512F] +// +func (self *Program) VEXTRACTI64X4(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTI64X4", 3, Operands { v0, v1, v2 }) + // VEXTRACTI64X4 imm8, zmm, ymm{k}{z} + if isImm8(v0) && isZMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTI64X4 imm8, zmm, m256{k}{z} + if isImm8(v0) && isZMM(v1) && isM256kz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[1]), addr(v[2]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3b) + m.mrsd(lcode(v[1]), addr(v[2]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTI64X4") + } + return p +} + +// VEXTRACTPS performs "Extract Packed Single Precision Floating-Point Value". +// +// Mnemonic : VEXTRACTPS +// Supported forms : (4 forms) +// +// * VEXTRACTPS imm8, xmm, r32 [AVX] +// * VEXTRACTPS imm8, xmm, m32 [AVX] +// * VEXTRACTPS imm8, xmm, r32 [AVX512F] +// * VEXTRACTPS imm8, xmm, m32 [AVX512F] +// +func (self *Program) VEXTRACTPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VEXTRACTPS", 3, Operands { v0, v1, v2 }) + // VEXTRACTPS imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTPS imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTPS imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VEXTRACTPS imm8, xmm, m32 + if isImm8(v0) && isEVEXXMM(v1) && isM32(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[2]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VEXTRACTPS") + } + return p +} + +// VFIXUPIMMPD performs "Fix Up Special Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFIXUPIMMPD +// Supported forms : (7 forms) +// +// * VFIXUPIMMPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPD imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPD imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFIXUPIMMPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMPD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMPD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMPD takes 4 or 5 operands") + } + // VFIXUPIMMPD imm8, m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x54) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPD imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMPD") + } + return p +} + +// VFIXUPIMMPS performs "Fix Up Special Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFIXUPIMMPS +// Supported forms : (7 forms) +// +// * VFIXUPIMMPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPS imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPS imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFIXUPIMMPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512VL] +// * VFIXUPIMMPS imm8, xmm, xmm, xmm{k}{z} [AVX512VL] +// * VFIXUPIMMPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFIXUPIMMPS imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFIXUPIMMPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMPS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMPS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMPS takes 4 or 5 operands") + } + // VFIXUPIMMPS imm8, m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x54) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x54) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMPS imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x54) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMPS") + } + return p +} + +// VFIXUPIMMSD performs "Fix Up Special Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VFIXUPIMMSD +// Supported forms : (3 forms) +// +// * VFIXUPIMMSD imm8, m64, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSD imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFIXUPIMMSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMSD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMSD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMSD takes 4 or 5 operands") + } + // VFIXUPIMMSD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x55) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x55) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMSD") + } + return p +} + +// VFIXUPIMMSS performs "Fix Up Special Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VFIXUPIMMSS +// Supported forms : (3 forms) +// +// * VFIXUPIMMSS imm8, m32, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFIXUPIMMSS imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFIXUPIMMSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFIXUPIMMSS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VFIXUPIMMSS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VFIXUPIMMSS takes 4 or 5 operands") + } + // VFIXUPIMMSS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x55) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x55) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VFIXUPIMMSS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x55) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFIXUPIMMSS") + } + return p +} + +// VFMADD132PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132PD +// Supported forms : (11 forms) +// +// * VFMADD132PD xmm, xmm, xmm [FMA3] +// * VFMADD132PD m128, xmm, xmm [FMA3] +// * VFMADD132PD ymm, ymm, ymm [FMA3] +// * VFMADD132PD m256, ymm, ymm [FMA3] +// * VFMADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132PD takes 3 or 4 operands") + } + // VFMADD132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x98) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132PD") + } + return p +} + +// VFMADD132PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132PS +// Supported forms : (11 forms) +// +// * VFMADD132PS xmm, xmm, xmm [FMA3] +// * VFMADD132PS m128, xmm, xmm [FMA3] +// * VFMADD132PS ymm, ymm, ymm [FMA3] +// * VFMADD132PS m256, ymm, ymm [FMA3] +// * VFMADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132PS takes 3 or 4 operands") + } + // VFMADD132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x98) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132PS") + } + return p +} + +// VFMADD132SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132SD +// Supported forms : (5 forms) +// +// * VFMADD132SD xmm, xmm, xmm [FMA3] +// * VFMADD132SD m64, xmm, xmm [FMA3] +// * VFMADD132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132SD takes 3 or 4 operands") + } + // VFMADD132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMADD132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x99) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132SD") + } + return p +} + +// VFMADD132SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD132SS +// Supported forms : (5 forms) +// +// * VFMADD132SS xmm, xmm, xmm [FMA3] +// * VFMADD132SS m32, xmm, xmm [FMA3] +// * VFMADD132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD132SS takes 3 or 4 operands") + } + // VFMADD132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMADD132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x99) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD132SS") + } + return p +} + +// VFMADD213PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213PD +// Supported forms : (11 forms) +// +// * VFMADD213PD xmm, xmm, xmm [FMA3] +// * VFMADD213PD m128, xmm, xmm [FMA3] +// * VFMADD213PD ymm, ymm, ymm [FMA3] +// * VFMADD213PD m256, ymm, ymm [FMA3] +// * VFMADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213PD takes 3 or 4 operands") + } + // VFMADD213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213PD") + } + return p +} + +// VFMADD213PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213PS +// Supported forms : (11 forms) +// +// * VFMADD213PS xmm, xmm, xmm [FMA3] +// * VFMADD213PS m128, xmm, xmm [FMA3] +// * VFMADD213PS ymm, ymm, ymm [FMA3] +// * VFMADD213PS m256, ymm, ymm [FMA3] +// * VFMADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213PS takes 3 or 4 operands") + } + // VFMADD213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213PS") + } + return p +} + +// VFMADD213SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213SD +// Supported forms : (5 forms) +// +// * VFMADD213SD xmm, xmm, xmm [FMA3] +// * VFMADD213SD m64, xmm, xmm [FMA3] +// * VFMADD213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213SD takes 3 or 4 operands") + } + // VFMADD213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMADD213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213SD") + } + return p +} + +// VFMADD213SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD213SS +// Supported forms : (5 forms) +// +// * VFMADD213SS xmm, xmm, xmm [FMA3] +// * VFMADD213SS m32, xmm, xmm [FMA3] +// * VFMADD213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD213SS takes 3 or 4 operands") + } + // VFMADD213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xa9) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMADD213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD213SS") + } + return p +} + +// VFMADD231PD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231PD +// Supported forms : (11 forms) +// +// * VFMADD231PD xmm, xmm, xmm [FMA3] +// * VFMADD231PD m128, xmm, xmm [FMA3] +// * VFMADD231PD ymm, ymm, ymm [FMA3] +// * VFMADD231PD m256, ymm, ymm [FMA3] +// * VFMADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231PD takes 3 or 4 operands") + } + // VFMADD231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231PD") + } + return p +} + +// VFMADD231PS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231PS +// Supported forms : (11 forms) +// +// * VFMADD231PS xmm, xmm, xmm [FMA3] +// * VFMADD231PS m128, xmm, xmm [FMA3] +// * VFMADD231PS ymm, ymm, ymm [FMA3] +// * VFMADD231PS m256, ymm, ymm [FMA3] +// * VFMADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231PS takes 3 or 4 operands") + } + // VFMADD231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADD231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADD231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADD231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231PS") + } + return p +} + +// VFMADD231SD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231SD +// Supported forms : (5 forms) +// +// * VFMADD231SD xmm, xmm, xmm [FMA3] +// * VFMADD231SD m64, xmm, xmm [FMA3] +// * VFMADD231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231SD takes 3 or 4 operands") + } + // VFMADD231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMADD231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231SD") + } + return p +} + +// VFMADD231SS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADD231SS +// Supported forms : (5 forms) +// +// * VFMADD231SS xmm, xmm, xmm [FMA3] +// * VFMADD231SS m32, xmm, xmm [FMA3] +// * VFMADD231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMADD231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMADD231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADD231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADD231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADD231SS takes 3 or 4 operands") + } + // VFMADD231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADD231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADD231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xb9) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMADD231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADD231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADD231SS") + } + return p +} + +// VFMADDPD performs "Fused Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDPD +// Supported forms : (6 forms) +// +// * VFMADDPD xmm, xmm, xmm, xmm [FMA4] +// * VFMADDPD m128, xmm, xmm, xmm [FMA4] +// * VFMADDPD xmm, m128, xmm, xmm [FMA4] +// * VFMADDPD ymm, ymm, ymm, ymm [FMA4] +// * VFMADDPD m256, ymm, ymm, ymm [FMA4] +// * VFMADDPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDPD", 4, Operands { v0, v1, v2, v3 }) + // VFMADDPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x69) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x69) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDPD") + } + return p +} + +// VFMADDPS performs "Fused Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDPS +// Supported forms : (6 forms) +// +// * VFMADDPS xmm, xmm, xmm, xmm [FMA4] +// * VFMADDPS m128, xmm, xmm, xmm [FMA4] +// * VFMADDPS xmm, m128, xmm, xmm [FMA4] +// * VFMADDPS ymm, ymm, ymm, ymm [FMA4] +// * VFMADDPS m256, ymm, ymm, ymm [FMA4] +// * VFMADDPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDPS", 4, Operands { v0, v1, v2, v3 }) + // VFMADDPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x68) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x68) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDPS") + } + return p +} + +// VFMADDSD performs "Fused Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSD +// Supported forms : (3 forms) +// +// * VFMADDSD xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSD m64, xmm, xmm, xmm [FMA4] +// * VFMADDSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFMADDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSD", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6b) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSD") + } + return p +} + +// VFMADDSS performs "Fused Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSS +// Supported forms : (3 forms) +// +// * VFMADDSS xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSS m32, xmm, xmm, xmm [FMA4] +// * VFMADDSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFMADDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSS", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6a) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSS") + } + return p +} + +// VFMADDSUB132PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB132PD +// Supported forms : (11 forms) +// +// * VFMADDSUB132PD xmm, xmm, xmm [FMA3] +// * VFMADDSUB132PD m128, xmm, xmm [FMA3] +// * VFMADDSUB132PD ymm, ymm, ymm [FMA3] +// * VFMADDSUB132PD m256, ymm, ymm [FMA3] +// * VFMADDSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB132PD takes 3 or 4 operands") + } + // VFMADDSUB132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x96) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB132PD") + } + return p +} + +// VFMADDSUB132PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB132PS +// Supported forms : (11 forms) +// +// * VFMADDSUB132PS xmm, xmm, xmm [FMA3] +// * VFMADDSUB132PS m128, xmm, xmm [FMA3] +// * VFMADDSUB132PS ymm, ymm, ymm [FMA3] +// * VFMADDSUB132PS m256, ymm, ymm [FMA3] +// * VFMADDSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB132PS takes 3 or 4 operands") + } + // VFMADDSUB132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x96) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB132PS") + } + return p +} + +// VFMADDSUB213PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB213PD +// Supported forms : (11 forms) +// +// * VFMADDSUB213PD xmm, xmm, xmm [FMA3] +// * VFMADDSUB213PD m128, xmm, xmm [FMA3] +// * VFMADDSUB213PD ymm, ymm, ymm [FMA3] +// * VFMADDSUB213PD m256, ymm, ymm [FMA3] +// * VFMADDSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB213PD takes 3 or 4 operands") + } + // VFMADDSUB213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB213PD") + } + return p +} + +// VFMADDSUB213PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB213PS +// Supported forms : (11 forms) +// +// * VFMADDSUB213PS xmm, xmm, xmm [FMA3] +// * VFMADDSUB213PS m128, xmm, xmm [FMA3] +// * VFMADDSUB213PS ymm, ymm, ymm [FMA3] +// * VFMADDSUB213PS m256, ymm, ymm [FMA3] +// * VFMADDSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB213PS takes 3 or 4 operands") + } + // VFMADDSUB213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB213PS") + } + return p +} + +// VFMADDSUB231PD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB231PD +// Supported forms : (11 forms) +// +// * VFMADDSUB231PD xmm, xmm, xmm [FMA3] +// * VFMADDSUB231PD m128, xmm, xmm [FMA3] +// * VFMADDSUB231PD ymm, ymm, ymm [FMA3] +// * VFMADDSUB231PD m256, ymm, ymm [FMA3] +// * VFMADDSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB231PD takes 3 or 4 operands") + } + // VFMADDSUB231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB231PD") + } + return p +} + +// VFMADDSUB231PS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUB231PS +// Supported forms : (11 forms) +// +// * VFMADDSUB231PS xmm, xmm, xmm [FMA3] +// * VFMADDSUB231PS m128, xmm, xmm [FMA3] +// * VFMADDSUB231PS ymm, ymm, ymm [FMA3] +// * VFMADDSUB231PS m256, ymm, ymm [FMA3] +// * VFMADDSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMADDSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMADDSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMADDSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMADDSUB231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMADDSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMADDSUB231PS takes 3 or 4 operands") + } + // VFMADDSUB231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMADDSUB231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMADDSUB231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMADDSUB231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMADDSUB231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMADDSUB231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMADDSUB231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUB231PS") + } + return p +} + +// VFMADDSUBPD performs "Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUBPD +// Supported forms : (6 forms) +// +// * VFMADDSUBPD xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPD m128, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPD xmm, m128, xmm, xmm [FMA4] +// * VFMADDSUBPD ymm, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPD m256, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSUBPD", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSUBPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUBPD") + } + return p +} + +// VFMADDSUBPS performs "Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMADDSUBPS +// Supported forms : (6 forms) +// +// * VFMADDSUBPS xmm, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPS m128, xmm, xmm, xmm [FMA4] +// * VFMADDSUBPS xmm, m128, xmm, xmm [FMA4] +// * VFMADDSUBPS ymm, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPS m256, ymm, ymm, ymm [FMA4] +// * VFMADDSUBPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMADDSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMADDSUBPS", 4, Operands { v0, v1, v2, v3 }) + // VFMADDSUBPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMADDSUBPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMADDSUBPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMADDSUBPS") + } + return p +} + +// VFMSUB132PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132PD +// Supported forms : (11 forms) +// +// * VFMSUB132PD xmm, xmm, xmm [FMA3] +// * VFMSUB132PD m128, xmm, xmm [FMA3] +// * VFMSUB132PD ymm, ymm, ymm [FMA3] +// * VFMSUB132PD m256, ymm, ymm [FMA3] +// * VFMSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132PD takes 3 or 4 operands") + } + // VFMSUB132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132PD") + } + return p +} + +// VFMSUB132PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132PS +// Supported forms : (11 forms) +// +// * VFMSUB132PS xmm, xmm, xmm [FMA3] +// * VFMSUB132PS m128, xmm, xmm [FMA3] +// * VFMSUB132PS ymm, ymm, ymm [FMA3] +// * VFMSUB132PS m256, ymm, ymm [FMA3] +// * VFMSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132PS takes 3 or 4 operands") + } + // VFMSUB132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132PS") + } + return p +} + +// VFMSUB132SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132SD +// Supported forms : (5 forms) +// +// * VFMSUB132SD xmm, xmm, xmm [FMA3] +// * VFMSUB132SD m64, xmm, xmm [FMA3] +// * VFMSUB132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132SD takes 3 or 4 operands") + } + // VFMSUB132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMSUB132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132SD") + } + return p +} + +// VFMSUB132SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB132SS +// Supported forms : (5 forms) +// +// * VFMSUB132SS xmm, xmm, xmm [FMA3] +// * VFMSUB132SS m32, xmm, xmm [FMA3] +// * VFMSUB132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB132SS takes 3 or 4 operands") + } + // VFMSUB132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMSUB132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB132SS") + } + return p +} + +// VFMSUB213PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213PD +// Supported forms : (11 forms) +// +// * VFMSUB213PD xmm, xmm, xmm [FMA3] +// * VFMSUB213PD m128, xmm, xmm [FMA3] +// * VFMSUB213PD ymm, ymm, ymm [FMA3] +// * VFMSUB213PD m256, ymm, ymm [FMA3] +// * VFMSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213PD takes 3 or 4 operands") + } + // VFMSUB213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213PD") + } + return p +} + +// VFMSUB213PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213PS +// Supported forms : (11 forms) +// +// * VFMSUB213PS xmm, xmm, xmm [FMA3] +// * VFMSUB213PS m128, xmm, xmm [FMA3] +// * VFMSUB213PS ymm, ymm, ymm [FMA3] +// * VFMSUB213PS m256, ymm, ymm [FMA3] +// * VFMSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213PS takes 3 or 4 operands") + } + // VFMSUB213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xaa) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xaa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213PS") + } + return p +} + +// VFMSUB213SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213SD +// Supported forms : (5 forms) +// +// * VFMSUB213SD xmm, xmm, xmm [FMA3] +// * VFMSUB213SD m64, xmm, xmm [FMA3] +// * VFMSUB213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213SD takes 3 or 4 operands") + } + // VFMSUB213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMSUB213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xab) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213SD") + } + return p +} + +// VFMSUB213SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB213SS +// Supported forms : (5 forms) +// +// * VFMSUB213SS xmm, xmm, xmm [FMA3] +// * VFMSUB213SS m32, xmm, xmm [FMA3] +// * VFMSUB213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB213SS takes 3 or 4 operands") + } + // VFMSUB213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xab) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMSUB213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xab) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xab) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB213SS") + } + return p +} + +// VFMSUB231PD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231PD +// Supported forms : (11 forms) +// +// * VFMSUB231PD xmm, xmm, xmm [FMA3] +// * VFMSUB231PD m128, xmm, xmm [FMA3] +// * VFMSUB231PD ymm, ymm, ymm [FMA3] +// * VFMSUB231PD m256, ymm, ymm [FMA3] +// * VFMSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231PD takes 3 or 4 operands") + } + // VFMSUB231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xba) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231PD") + } + return p +} + +// VFMSUB231PS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231PS +// Supported forms : (11 forms) +// +// * VFMSUB231PS xmm, xmm, xmm [FMA3] +// * VFMSUB231PS m128, xmm, xmm [FMA3] +// * VFMSUB231PS ymm, ymm, ymm [FMA3] +// * VFMSUB231PS m256, ymm, ymm [FMA3] +// * VFMSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231PS takes 3 or 4 operands") + } + // VFMSUB231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUB231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xba) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUB231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xba) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUB231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xba) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231PS") + } + return p +} + +// VFMSUB231SD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231SD +// Supported forms : (5 forms) +// +// * VFMSUB231SD xmm, xmm, xmm [FMA3] +// * VFMSUB231SD m64, xmm, xmm [FMA3] +// * VFMSUB231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231SD takes 3 or 4 operands") + } + // VFMSUB231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFMSUB231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231SD") + } + return p +} + +// VFMSUB231SS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUB231SS +// Supported forms : (5 forms) +// +// * VFMSUB231SS xmm, xmm, xmm [FMA3] +// * VFMSUB231SS m32, xmm, xmm [FMA3] +// * VFMSUB231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFMSUB231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFMSUB231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUB231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUB231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUB231SS takes 3 or 4 operands") + } + // VFMSUB231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUB231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUB231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbb) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFMSUB231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUB231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUB231SS") + } + return p +} + +// VFMSUBADD132PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD132PD +// Supported forms : (11 forms) +// +// * VFMSUBADD132PD xmm, xmm, xmm [FMA3] +// * VFMSUBADD132PD m128, xmm, xmm [FMA3] +// * VFMSUBADD132PD ymm, ymm, ymm [FMA3] +// * VFMSUBADD132PD m256, ymm, ymm [FMA3] +// * VFMSUBADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD132PD takes 3 or 4 operands") + } + // VFMSUBADD132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x97) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD132PD") + } + return p +} + +// VFMSUBADD132PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD132PS +// Supported forms : (11 forms) +// +// * VFMSUBADD132PS xmm, xmm, xmm [FMA3] +// * VFMSUBADD132PS m128, xmm, xmm [FMA3] +// * VFMSUBADD132PS ymm, ymm, ymm [FMA3] +// * VFMSUBADD132PS m256, ymm, ymm [FMA3] +// * VFMSUBADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD132PS takes 3 or 4 operands") + } + // VFMSUBADD132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x97) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD132PS") + } + return p +} + +// VFMSUBADD213PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD213PD +// Supported forms : (11 forms) +// +// * VFMSUBADD213PD xmm, xmm, xmm [FMA3] +// * VFMSUBADD213PD m128, xmm, xmm [FMA3] +// * VFMSUBADD213PD ymm, ymm, ymm [FMA3] +// * VFMSUBADD213PD m256, ymm, ymm [FMA3] +// * VFMSUBADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD213PD takes 3 or 4 operands") + } + // VFMSUBADD213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD213PD") + } + return p +} + +// VFMSUBADD213PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD213PS +// Supported forms : (11 forms) +// +// * VFMSUBADD213PS xmm, xmm, xmm [FMA3] +// * VFMSUBADD213PS m128, xmm, xmm [FMA3] +// * VFMSUBADD213PS ymm, ymm, ymm [FMA3] +// * VFMSUBADD213PS m256, ymm, ymm [FMA3] +// * VFMSUBADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD213PS takes 3 or 4 operands") + } + // VFMSUBADD213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xa7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xa7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD213PS") + } + return p +} + +// VFMSUBADD231PD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD231PD +// Supported forms : (11 forms) +// +// * VFMSUBADD231PD xmm, xmm, xmm [FMA3] +// * VFMSUBADD231PD m128, xmm, xmm [FMA3] +// * VFMSUBADD231PD ymm, ymm, ymm [FMA3] +// * VFMSUBADD231PD m256, ymm, ymm [FMA3] +// * VFMSUBADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD231PD takes 3 or 4 operands") + } + // VFMSUBADD231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD231PD") + } + return p +} + +// VFMSUBADD231PS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADD231PS +// Supported forms : (11 forms) +// +// * VFMSUBADD231PS xmm, xmm, xmm [FMA3] +// * VFMSUBADD231PS m128, xmm, xmm [FMA3] +// * VFMSUBADD231PS ymm, ymm, ymm [FMA3] +// * VFMSUBADD231PS m256, ymm, ymm [FMA3] +// * VFMSUBADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFMSUBADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFMSUBADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFMSUBADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFMSUBADD231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFMSUBADD231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFMSUBADD231PS takes 3 or 4 operands") + } + // VFMSUBADD231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFMSUBADD231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFMSUBADD231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFMSUBADD231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFMSUBADD231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFMSUBADD231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb7) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFMSUBADD231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb7) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADD231PS") + } + return p +} + +// VFMSUBADDPD performs "Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADDPD +// Supported forms : (6 forms) +// +// * VFMSUBADDPD xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPD m128, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPD xmm, m128, xmm, xmm [FMA4] +// * VFMSUBADDPD ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPD m256, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBADDPD", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBADDPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADDPD") + } + return p +} + +// VFMSUBADDPS performs "Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBADDPS +// Supported forms : (6 forms) +// +// * VFMSUBADDPS xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPS m128, xmm, xmm, xmm [FMA4] +// * VFMSUBADDPS xmm, m128, xmm, xmm [FMA4] +// * VFMSUBADDPS ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPS m256, ymm, ymm, ymm [FMA4] +// * VFMSUBADDPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBADDPS", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBADDPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x5e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBADDPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBADDPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x5e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBADDPS") + } + return p +} + +// VFMSUBPD performs "Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBPD +// Supported forms : (6 forms) +// +// * VFMSUBPD xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBPD m128, xmm, xmm, xmm [FMA4] +// * VFMSUBPD xmm, m128, xmm, xmm [FMA4] +// * VFMSUBPD ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBPD m256, ymm, ymm, ymm [FMA4] +// * VFMSUBPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBPD", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBPD") + } + return p +} + +// VFMSUBPS performs "Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBPS +// Supported forms : (6 forms) +// +// * VFMSUBPS xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBPS m128, xmm, xmm, xmm [FMA4] +// * VFMSUBPS xmm, m128, xmm, xmm [FMA4] +// * VFMSUBPS ymm, ymm, ymm, ymm [FMA4] +// * VFMSUBPS m256, ymm, ymm, ymm [FMA4] +// * VFMSUBPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFMSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBPS", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBPS") + } + return p +} + +// VFMSUBSD performs "Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBSD +// Supported forms : (3 forms) +// +// * VFMSUBSD xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBSD m64, xmm, xmm, xmm [FMA4] +// * VFMSUBSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFMSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBSD", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBSD") + } + return p +} + +// VFMSUBSS performs "Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFMSUBSS +// Supported forms : (3 forms) +// +// * VFMSUBSS xmm, xmm, xmm, xmm [FMA4] +// * VFMSUBSS m32, xmm, xmm, xmm [FMA4] +// * VFMSUBSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFMSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFMSUBSS", 4, Operands { v0, v1, v2, v3 }) + // VFMSUBSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFMSUBSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x6e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFMSUBSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x6e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFMSUBSS") + } + return p +} + +// VFNMADD132PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132PD +// Supported forms : (11 forms) +// +// * VFNMADD132PD xmm, xmm, xmm [FMA3] +// * VFNMADD132PD m128, xmm, xmm [FMA3] +// * VFNMADD132PD ymm, ymm, ymm [FMA3] +// * VFNMADD132PD m256, ymm, ymm [FMA3] +// * VFNMADD132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132PD takes 3 or 4 operands") + } + // VFNMADD132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132PD") + } + return p +} + +// VFNMADD132PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132PS +// Supported forms : (11 forms) +// +// * VFNMADD132PS xmm, xmm, xmm [FMA3] +// * VFNMADD132PS m128, xmm, xmm [FMA3] +// * VFNMADD132PS ymm, ymm, ymm [FMA3] +// * VFNMADD132PS m256, ymm, ymm [FMA3] +// * VFNMADD132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132PS takes 3 or 4 operands") + } + // VFNMADD132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132PS") + } + return p +} + +// VFNMADD132SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132SD +// Supported forms : (5 forms) +// +// * VFNMADD132SD xmm, xmm, xmm [FMA3] +// * VFNMADD132SD m64, xmm, xmm [FMA3] +// * VFNMADD132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132SD takes 3 or 4 operands") + } + // VFNMADD132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMADD132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132SD") + } + return p +} + +// VFNMADD132SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD132SS +// Supported forms : (5 forms) +// +// * VFNMADD132SS xmm, xmm, xmm [FMA3] +// * VFNMADD132SS m32, xmm, xmm [FMA3] +// * VFNMADD132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD132SS takes 3 or 4 operands") + } + // VFNMADD132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMADD132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD132SS") + } + return p +} + +// VFNMADD213PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213PD +// Supported forms : (11 forms) +// +// * VFNMADD213PD xmm, xmm, xmm [FMA3] +// * VFNMADD213PD m128, xmm, xmm [FMA3] +// * VFNMADD213PD ymm, ymm, ymm [FMA3] +// * VFNMADD213PD m256, ymm, ymm [FMA3] +// * VFNMADD213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213PD takes 3 or 4 operands") + } + // VFNMADD213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xac) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213PD") + } + return p +} + +// VFNMADD213PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213PS +// Supported forms : (11 forms) +// +// * VFNMADD213PS xmm, xmm, xmm [FMA3] +// * VFNMADD213PS m128, xmm, xmm [FMA3] +// * VFNMADD213PS ymm, ymm, ymm [FMA3] +// * VFNMADD213PS m256, ymm, ymm [FMA3] +// * VFNMADD213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213PS takes 3 or 4 operands") + } + // VFNMADD213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xac) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xac) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xac) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213PS") + } + return p +} + +// VFNMADD213SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213SD +// Supported forms : (5 forms) +// +// * VFNMADD213SD xmm, xmm, xmm [FMA3] +// * VFNMADD213SD m64, xmm, xmm [FMA3] +// * VFNMADD213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213SD takes 3 or 4 operands") + } + // VFNMADD213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMADD213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xad) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213SD") + } + return p +} + +// VFNMADD213SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD213SS +// Supported forms : (5 forms) +// +// * VFNMADD213SS xmm, xmm, xmm [FMA3] +// * VFNMADD213SS m32, xmm, xmm [FMA3] +// * VFNMADD213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD213SS takes 3 or 4 operands") + } + // VFNMADD213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xad) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMADD213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xad) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xad) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD213SS") + } + return p +} + +// VFNMADD231PD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231PD +// Supported forms : (11 forms) +// +// * VFNMADD231PD xmm, xmm, xmm [FMA3] +// * VFNMADD231PD m128, xmm, xmm [FMA3] +// * VFNMADD231PD ymm, ymm, ymm [FMA3] +// * VFNMADD231PD m256, ymm, ymm [FMA3] +// * VFNMADD231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231PD takes 3 or 4 operands") + } + // VFNMADD231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231PD") + } + return p +} + +// VFNMADD231PS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231PS +// Supported forms : (11 forms) +// +// * VFNMADD231PS xmm, xmm, xmm [FMA3] +// * VFNMADD231PS m128, xmm, xmm [FMA3] +// * VFNMADD231PS ymm, ymm, ymm [FMA3] +// * VFNMADD231PS m256, ymm, ymm [FMA3] +// * VFNMADD231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMADD231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMADD231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMADD231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231PS takes 3 or 4 operands") + } + // VFNMADD231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMADD231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMADD231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMADD231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231PS") + } + return p +} + +// VFNMADD231SD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231SD +// Supported forms : (5 forms) +// +// * VFNMADD231SD xmm, xmm, xmm [FMA3] +// * VFNMADD231SD m64, xmm, xmm [FMA3] +// * VFNMADD231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231SD takes 3 or 4 operands") + } + // VFNMADD231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMADD231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231SD") + } + return p +} + +// VFNMADD231SS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADD231SS +// Supported forms : (5 forms) +// +// * VFNMADD231SS xmm, xmm, xmm [FMA3] +// * VFNMADD231SS m32, xmm, xmm [FMA3] +// * VFNMADD231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMADD231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMADD231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMADD231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMADD231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMADD231SS takes 3 or 4 operands") + } + // VFNMADD231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMADD231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMADD231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbd) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMADD231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMADD231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADD231SS") + } + return p +} + +// VFNMADDPD performs "Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDPD +// Supported forms : (6 forms) +// +// * VFNMADDPD xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDPD m128, xmm, xmm, xmm [FMA4] +// * VFNMADDPD xmm, m128, xmm, xmm [FMA4] +// * VFNMADDPD ymm, ymm, ymm, ymm [FMA4] +// * VFNMADDPD m256, ymm, ymm, ymm [FMA4] +// * VFNMADDPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMADDPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDPD", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x79) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x79) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDPD") + } + return p +} + +// VFNMADDPS performs "Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDPS +// Supported forms : (6 forms) +// +// * VFNMADDPS xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDPS m128, xmm, xmm, xmm [FMA4] +// * VFNMADDPS xmm, m128, xmm, xmm [FMA4] +// * VFNMADDPS ymm, ymm, ymm, ymm [FMA4] +// * VFNMADDPS m256, ymm, ymm, ymm [FMA4] +// * VFNMADDPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMADDPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDPS", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x78) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x78) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDPS") + } + return p +} + +// VFNMADDSD performs "Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDSD +// Supported forms : (3 forms) +// +// * VFNMADDSD xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDSD m64, xmm, xmm, xmm [FMA4] +// * VFNMADDSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFNMADDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDSD", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7b) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDSD") + } + return p +} + +// VFNMADDSS performs "Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMADDSS +// Supported forms : (3 forms) +// +// * VFNMADDSS xmm, xmm, xmm, xmm [FMA4] +// * VFNMADDSS m32, xmm, xmm, xmm [FMA4] +// * VFNMADDSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFNMADDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMADDSS", 4, Operands { v0, v1, v2, v3 }) + // VFNMADDSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMADDSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7a) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMADDSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMADDSS") + } + return p +} + +// VFNMSUB132PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132PD +// Supported forms : (11 forms) +// +// * VFNMSUB132PD xmm, xmm, xmm [FMA3] +// * VFNMSUB132PD m128, xmm, xmm [FMA3] +// * VFNMSUB132PD ymm, ymm, ymm [FMA3] +// * VFNMSUB132PD m256, ymm, ymm [FMA3] +// * VFNMSUB132PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB132PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132PD takes 3 or 4 operands") + } + // VFNMSUB132PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB132PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB132PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB132PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132PD") + } + return p +} + +// VFNMSUB132PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132PS +// Supported forms : (11 forms) +// +// * VFNMSUB132PS xmm, xmm, xmm [FMA3] +// * VFNMSUB132PS m128, xmm, xmm [FMA3] +// * VFNMSUB132PS ymm, ymm, ymm [FMA3] +// * VFNMSUB132PS m256, ymm, ymm [FMA3] +// * VFNMSUB132PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB132PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB132PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB132PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132PS takes 3 or 4 operands") + } + // VFNMSUB132PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB132PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB132PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x9e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB132PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132PS") + } + return p +} + +// VFNMSUB132SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132SD +// Supported forms : (5 forms) +// +// * VFNMSUB132SD xmm, xmm, xmm [FMA3] +// * VFNMSUB132SD m64, xmm, xmm [FMA3] +// * VFNMSUB132SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB132SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132SD takes 3 or 4 operands") + } + // VFNMSUB132SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMSUB132SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132SD") + } + return p +} + +// VFNMSUB132SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB132SS +// Supported forms : (5 forms) +// +// * VFNMSUB132SS xmm, xmm, xmm [FMA3] +// * VFNMSUB132SS m32, xmm, xmm [FMA3] +// * VFNMSUB132SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB132SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB132SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB132SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB132SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB132SS takes 3 or 4 operands") + } + // VFNMSUB132SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB132SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB132SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x9f) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMSUB132SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB132SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB132SS") + } + return p +} + +// VFNMSUB213PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213PD +// Supported forms : (11 forms) +// +// * VFNMSUB213PD xmm, xmm, xmm [FMA3] +// * VFNMSUB213PD m128, xmm, xmm [FMA3] +// * VFNMSUB213PD ymm, ymm, ymm [FMA3] +// * VFNMSUB213PD m256, ymm, ymm [FMA3] +// * VFNMSUB213PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB213PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213PD takes 3 or 4 operands") + } + // VFNMSUB213PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB213PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xae) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB213PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB213PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213PD") + } + return p +} + +// VFNMSUB213PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213PS +// Supported forms : (11 forms) +// +// * VFNMSUB213PS xmm, xmm, xmm [FMA3] +// * VFNMSUB213PS m128, xmm, xmm [FMA3] +// * VFNMSUB213PS ymm, ymm, ymm [FMA3] +// * VFNMSUB213PS m256, ymm, ymm [FMA3] +// * VFNMSUB213PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB213PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB213PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB213PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213PS takes 3 or 4 operands") + } + // VFNMSUB213PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB213PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xae) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB213PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xae) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB213PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xae) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213PS") + } + return p +} + +// VFNMSUB213SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213SD +// Supported forms : (5 forms) +// +// * VFNMSUB213SD xmm, xmm, xmm [FMA3] +// * VFNMSUB213SD m64, xmm, xmm [FMA3] +// * VFNMSUB213SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB213SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213SD takes 3 or 4 operands") + } + // VFNMSUB213SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMSUB213SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213SD") + } + return p +} + +// VFNMSUB213SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB213SS +// Supported forms : (5 forms) +// +// * VFNMSUB213SS xmm, xmm, xmm [FMA3] +// * VFNMSUB213SS m32, xmm, xmm [FMA3] +// * VFNMSUB213SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB213SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB213SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB213SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB213SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB213SS takes 3 or 4 operands") + } + // VFNMSUB213SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB213SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB213SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xaf) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMSUB213SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB213SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xaf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB213SS") + } + return p +} + +// VFNMSUB231PD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231PD +// Supported forms : (11 forms) +// +// * VFNMSUB231PD xmm, xmm, xmm [FMA3] +// * VFNMSUB231PD m128, xmm, xmm [FMA3] +// * VFNMSUB231PD ymm, ymm, ymm [FMA3] +// * VFNMSUB231PD m256, ymm, ymm [FMA3] +// * VFNMSUB231PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB231PD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231PD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231PD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231PD takes 3 or 4 operands") + } + // VFNMSUB231PD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB231PD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231PD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB231PD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB231PD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231PD") + } + return p +} + +// VFNMSUB231PS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231PS +// Supported forms : (11 forms) +// +// * VFNMSUB231PS xmm, xmm, xmm [FMA3] +// * VFNMSUB231PS m128, xmm, xmm [FMA3] +// * VFNMSUB231PS ymm, ymm, ymm [FMA3] +// * VFNMSUB231PS m256, ymm, ymm [FMA3] +// * VFNMSUB231PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VFNMSUB231PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VFNMSUB231PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VFNMSUB231PS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231PS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231PS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231PS takes 3 or 4 operands") + } + // VFNMSUB231PS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231PS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VFNMSUB231PS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231PS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VFNMSUB231PS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231PS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xbe) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VFNMSUB231PS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xbe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231PS") + } + return p +} + +// VFNMSUB231SD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231SD +// Supported forms : (5 forms) +// +// * VFNMSUB231SD xmm, xmm, xmm [FMA3] +// * VFNMSUB231SD m64, xmm, xmm [FMA3] +// * VFNMSUB231SD m64, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB231SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231SD takes 3 or 4 operands") + } + // VFNMSUB231SD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231SD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VFNMSUB231SD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231SD") + } + return p +} + +// VFNMSUB231SS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUB231SS +// Supported forms : (5 forms) +// +// * VFNMSUB231SS xmm, xmm, xmm [FMA3] +// * VFNMSUB231SS m32, xmm, xmm [FMA3] +// * VFNMSUB231SS m32, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VFNMSUB231SS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VFNMSUB231SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VFNMSUB231SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VFNMSUB231SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VFNMSUB231SS takes 3 or 4 operands") + } + // VFNMSUB231SS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VFNMSUB231SS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_FMA3) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VFNMSUB231SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xbf) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VFNMSUB231SS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VFNMSUB231SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xbf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUB231SS") + } + return p +} + +// VFNMSUBPD performs "Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBPD +// Supported forms : (6 forms) +// +// * VFNMSUBPD xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBPD m128, xmm, xmm, xmm [FMA4] +// * VFNMSUBPD xmm, m128, xmm, xmm [FMA4] +// * VFNMSUBPD ymm, ymm, ymm, ymm [FMA4] +// * VFNMSUBPD m256, ymm, ymm, ymm [FMA4] +// * VFNMSUBPD ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBPD", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBPD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPD m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPD ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPD m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPD ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7d) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBPD") + } + return p +} + +// VFNMSUBPS performs "Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBPS +// Supported forms : (6 forms) +// +// * VFNMSUBPS xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBPS m128, xmm, xmm, xmm [FMA4] +// * VFNMSUBPS xmm, m128, xmm, xmm [FMA4] +// * VFNMSUBPS ymm, ymm, ymm, ymm [FMA4] +// * VFNMSUBPS m256, ymm, ymm, ymm [FMA4] +// * VFNMSUBPS ymm, m256, ymm, ymm [FMA4] +// +func (self *Program) VFNMSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBPS", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBPS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPS m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPS xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPS ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBPS m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBPS ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBPS") + } + return p +} + +// VFNMSUBSD performs "Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBSD +// Supported forms : (3 forms) +// +// * VFNMSUBSD xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBSD m64, xmm, xmm, xmm [FMA4] +// * VFNMSUBSD xmm, m64, xmm, xmm [FMA4] +// +func (self *Program) VFNMSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBSD", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBSD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBSD m64, xmm, xmm, xmm + if isM64(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7f) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBSD xmm, m64, xmm, xmm + if isXMM(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBSD") + } + return p +} + +// VFNMSUBSS performs "Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VFNMSUBSS +// Supported forms : (3 forms) +// +// * VFNMSUBSS xmm, xmm, xmm, xmm [FMA4] +// * VFNMSUBSS m32, xmm, xmm, xmm [FMA4] +// * VFNMSUBSS xmm, m32, xmm, xmm [FMA4] +// +func (self *Program) VFNMSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VFNMSUBSS", 4, Operands { v0, v1, v2, v3 }) + // VFNMSUBSS xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VFNMSUBSS m32, xmm, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0x7e) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VFNMSUBSS xmm, m32, xmm, xmm + if isXMM(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_FMA4) + p.domain = DomainFMA + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x7e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VFNMSUBSS") + } + return p +} + +// VFPCLASSPD performs "Test Class of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VFPCLASSPD +// Supported forms : (6 forms) +// +// * VFPCLASSPD imm8, m512/m64bcst, k{k} [AVX512DQ] +// * VFPCLASSPD imm8, zmm, k{k} [AVX512DQ] +// * VFPCLASSPD imm8, m128/m64bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPD imm8, m256/m64bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPD imm8, xmm, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPD imm8, ymm, k{k} [AVX512DQ,AVX512VL] +// +func (self *Program) VFPCLASSPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSPD", 3, Operands { v0, v1, v2 }) + // VFPCLASSPD imm8, m512/m64bcst, k{k} + if isImm8(v0) && isM512M64bcst(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x48) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, m128/m64bcst, k{k} + if isImm8(v0) && isM128M64bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, m256/m64bcst, k{k} + if isImm8(v0) && isM256M64bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPD imm8, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x28) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSPD") + } + return p +} + +// VFPCLASSPS performs "Test Class of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VFPCLASSPS +// Supported forms : (6 forms) +// +// * VFPCLASSPS imm8, m512/m32bcst, k{k} [AVX512DQ] +// * VFPCLASSPS imm8, zmm, k{k} [AVX512DQ] +// * VFPCLASSPS imm8, m128/m32bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPS imm8, m256/m32bcst, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPS imm8, xmm, k{k} [AVX512DQ,AVX512VL] +// * VFPCLASSPS imm8, ymm, k{k} [AVX512DQ,AVX512VL] +// +func (self *Program) VFPCLASSPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSPS", 3, Operands { v0, v1, v2 }) + // VFPCLASSPS imm8, m512/m32bcst, k{k} + if isImm8(v0) && isM512M32bcst(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x48) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, m128/m32bcst, k{k} + if isImm8(v0) && isM128M32bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, m256/m32bcst, k{k} + if isImm8(v0) && isM256M32bcst(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, bcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSPS imm8, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x28) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSPS") + } + return p +} + +// VFPCLASSSD performs "Test Class of Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VFPCLASSSD +// Supported forms : (2 forms) +// +// * VFPCLASSSD imm8, xmm, k{k} [AVX512DQ] +// * VFPCLASSSD imm8, m64, k{k} [AVX512DQ] +// +func (self *Program) VFPCLASSSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSSD", 3, Operands { v0, v1, v2 }) + // VFPCLASSSD imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSSD imm8, m64, k{k} + if isImm8(v0) && isM64(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSSD") + } + return p +} + +// VFPCLASSSS performs "Test Class of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VFPCLASSSS +// Supported forms : (2 forms) +// +// * VFPCLASSSS imm8, xmm, k{k} [AVX512DQ] +// * VFPCLASSSS imm8, m32, k{k} [AVX512DQ] +// +func (self *Program) VFPCLASSSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VFPCLASSSS", 3, Operands { v0, v1, v2 }) + // VFPCLASSSS imm8, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(kcode(v[2]) | 0x08) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VFPCLASSSS imm8, m32, k{k} + if isImm8(v0) && isM32(v1) && isKk(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), 0, 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VFPCLASSSS") + } + return p +} + +// VFRCZPD performs "Extract Fraction Packed Double-Precision Floating-Point". +// +// Mnemonic : VFRCZPD +// Supported forms : (4 forms) +// +// * VFRCZPD xmm, xmm [XOP] +// * VFRCZPD m128, xmm [XOP] +// * VFRCZPD ymm, ymm [XOP] +// * VFRCZPD m256, ymm [XOP] +// +func (self *Program) VFRCZPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZPD", 2, Operands { v0, v1 }) + // VFRCZPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x81) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VFRCZPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7c) + m.emit(0x81) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x04, hcode(v[1]), addr(v[0]), 0) + m.emit(0x81) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZPD") + } + return p +} + +// VFRCZPS performs "Extract Fraction Packed Single-Precision Floating-Point". +// +// Mnemonic : VFRCZPS +// Supported forms : (4 forms) +// +// * VFRCZPS xmm, xmm [XOP] +// * VFRCZPS m128, xmm [XOP] +// * VFRCZPS ymm, ymm [XOP] +// * VFRCZPS m256, ymm [XOP] +// +func (self *Program) VFRCZPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZPS", 2, Operands { v0, v1 }) + // VFRCZPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x80) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x80) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VFRCZPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7c) + m.emit(0x80) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x04, hcode(v[1]), addr(v[0]), 0) + m.emit(0x80) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZPS") + } + return p +} + +// VFRCZSD performs "Extract Fraction Scalar Double-Precision Floating-Point". +// +// Mnemonic : VFRCZSD +// Supported forms : (2 forms) +// +// * VFRCZSD xmm, xmm [XOP] +// * VFRCZSD m64, xmm [XOP] +// +func (self *Program) VFRCZSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZSD", 2, Operands { v0, v1 }) + // VFRCZSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x83) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZSD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x83) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZSD") + } + return p +} + +// VFRCZSS performs "Extract Fraction Scalar Single-Precision Floating Point". +// +// Mnemonic : VFRCZSS +// Supported forms : (2 forms) +// +// * VFRCZSS xmm, xmm [XOP] +// * VFRCZSS m32, xmm [XOP] +// +func (self *Program) VFRCZSS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VFRCZSS", 2, Operands { v0, v1 }) + // VFRCZSS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0x82) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VFRCZSS m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0x82) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VFRCZSS") + } + return p +} + +// VGATHERDPD performs "Gather Packed Double-Precision Floating-Point Values Using Signed Doubleword Indices". +// +// Mnemonic : VGATHERDPD +// Supported forms : (5 forms) +// +// * VGATHERDPD xmm, vm32x, xmm [AVX2] +// * VGATHERDPD ymm, vm32x, ymm [AVX2] +// * VGATHERDPD vm32y, zmm{k} [AVX512F] +// * VGATHERDPD vm32x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERDPD vm32x, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERDPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERDPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERDPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERDPD takes 2 or 3 operands") + } + // VGATHERDPD xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPD ymm, vm32x, ymm + if len(vv) == 1 && isYMM(v0) && isVMX(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPD vm32y, zmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERDPD vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERDPD vm32x, ymm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERDPD") + } + return p +} + +// VGATHERDPS performs "Gather Packed Single-Precision Floating-Point Values Using Signed Doubleword Indices". +// +// Mnemonic : VGATHERDPS +// Supported forms : (5 forms) +// +// * VGATHERDPS xmm, vm32x, xmm [AVX2] +// * VGATHERDPS ymm, vm32y, ymm [AVX2] +// * VGATHERDPS vm32z, zmm{k} [AVX512F] +// * VGATHERDPS vm32x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERDPS vm32y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERDPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERDPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERDPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERDPS takes 2 or 3 operands") + } + // VGATHERDPS xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPS ymm, vm32y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERDPS vm32z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERDPS vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERDPS vm32y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x92) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERDPS") + } + return p +} + +// VGATHERPF0DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0DPD +// Supported forms : (1 form) +// +// * VGATHERPF0DPD vm32y{k} [AVX512PF] +// +func (self *Program) VGATHERPF0DPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0DPD", 1, Operands { v0 }) + // VGATHERPF0DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(1, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0DPD") + } + return p +} + +// VGATHERPF0DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0DPS +// Supported forms : (1 form) +// +// * VGATHERPF0DPS vm32z{k} [AVX512PF] +// +func (self *Program) VGATHERPF0DPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0DPS", 1, Operands { v0 }) + // VGATHERPF0DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(1, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0DPS") + } + return p +} + +// VGATHERPF0QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0QPD +// Supported forms : (1 form) +// +// * VGATHERPF0QPD vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF0QPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0QPD", 1, Operands { v0 }) + // VGATHERPF0QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0QPD") + } + return p +} + +// VGATHERPF0QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint". +// +// Mnemonic : VGATHERPF0QPS +// Supported forms : (1 form) +// +// * VGATHERPF0QPS vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF0QPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF0QPS", 1, Operands { v0 }) + // VGATHERPF0QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(1, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF0QPS") + } + return p +} + +// VGATHERPF1DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1DPD +// Supported forms : (1 form) +// +// * VGATHERPF1DPD vm32y{k} [AVX512PF] +// +func (self *Program) VGATHERPF1DPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1DPD", 1, Operands { v0 }) + // VGATHERPF1DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(2, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1DPD") + } + return p +} + +// VGATHERPF1DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1DPS +// Supported forms : (1 form) +// +// * VGATHERPF1DPS vm32z{k} [AVX512PF] +// +func (self *Program) VGATHERPF1DPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1DPS", 1, Operands { v0 }) + // VGATHERPF1DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(2, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1DPS") + } + return p +} + +// VGATHERPF1QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1QPD +// Supported forms : (1 form) +// +// * VGATHERPF1QPD vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF1QPD(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1QPD", 1, Operands { v0 }) + // VGATHERPF1QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(2, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1QPD") + } + return p +} + +// VGATHERPF1QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint". +// +// Mnemonic : VGATHERPF1QPS +// Supported forms : (1 form) +// +// * VGATHERPF1QPS vm64z{k} [AVX512PF] +// +func (self *Program) VGATHERPF1QPS(v0 interface{}) *Instruction { + p := self.alloc("VGATHERPF1QPS", 1, Operands { v0 }) + // VGATHERPF1QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(2, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERPF1QPS") + } + return p +} + +// VGATHERQPD performs "Gather Packed Double-Precision Floating-Point Values Using Signed Quadword Indices". +// +// Mnemonic : VGATHERQPD +// Supported forms : (5 forms) +// +// * VGATHERQPD xmm, vm64x, xmm [AVX2] +// * VGATHERQPD ymm, vm64y, ymm [AVX2] +// * VGATHERQPD vm64z, zmm{k} [AVX512F] +// * VGATHERQPD vm64x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERQPD vm64y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERQPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERQPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERQPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERQPD takes 2 or 3 operands") + } + // VGATHERQPD xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPD ymm, vm64y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPD vm64z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERQPD vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VGATHERQPD vm64y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERQPD") + } + return p +} + +// VGATHERQPS performs "Gather Packed Single-Precision Floating-Point Values Using Signed Quadword Indices". +// +// Mnemonic : VGATHERQPS +// Supported forms : (5 forms) +// +// * VGATHERQPS xmm, vm64x, xmm [AVX2] +// * VGATHERQPS xmm, vm64y, xmm [AVX2] +// * VGATHERQPS vm64z, ymm{k} [AVX512F] +// * VGATHERQPS vm64x, xmm{k} [AVX512F,AVX512VL] +// * VGATHERQPS vm64y, xmm{k} [AVX512F,AVX512VL] +// +func (self *Program) VGATHERQPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGATHERQPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGATHERQPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGATHERQPS takes 2 or 3 operands") + } + // VGATHERQPS xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPS xmm, vm64y, xmm + if len(vv) == 1 && isXMM(v0) && isVMY(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VGATHERQPS vm64z, ymm{k} + if len(vv) == 0 && isVMZ(v0) && isYMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERQPS vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VGATHERQPS vm64y, xmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x93) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VGATHERQPS") + } + return p +} + +// VGETEXPPD performs "Extract Exponents of Packed Double-Precision Floating-Point Values as Double-Precision Floating-Point Values". +// +// Mnemonic : VGETEXPPD +// Supported forms : (7 forms) +// +// * VGETEXPPD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VGETEXPPD {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPD zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETEXPPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGETEXPPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGETEXPPD takes 2 or 3 operands") + } + // VGETEXPPD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VGETEXPPD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VGETEXPPD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPD m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VGETEXPPD m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VGETEXPPD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPPD") + } + return p +} + +// VGETEXPPS performs "Extract Exponents of Packed Single-Precision Floating-Point Values as Single-Precision Floating-Point Values". +// +// Mnemonic : VGETEXPPS +// Supported forms : (7 forms) +// +// * VGETEXPPS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VGETEXPPS {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPS zmm, zmm{k}{z} [AVX512F] +// * VGETEXPPS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETEXPPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETEXPPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VGETEXPPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VGETEXPPS takes 2 or 3 operands") + } + // VGETEXPPS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VGETEXPPS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0x42) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VGETEXPPS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VGETEXPPS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x42) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VGETEXPPS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VGETEXPPS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x42) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPPS") + } + return p +} + +// VGETEXPSD performs "Extract Exponent of Scalar Double-Precision Floating-Point Value as Double-Precision Floating-Point Value". +// +// Mnemonic : VGETEXPSD +// Supported forms : (3 forms) +// +// * VGETEXPSD m64, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETEXPSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETEXPSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETEXPSD takes 3 or 4 operands") + } + // VGETEXPSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x43) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VGETEXPSD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VGETEXPSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPSD") + } + return p +} + +// VGETEXPSS performs "Extract Exponent of Scalar Single-Precision Floating-Point Value as Single-Precision Floating-Point Value". +// +// Mnemonic : VGETEXPSS +// Supported forms : (3 forms) +// +// * VGETEXPSS m32, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETEXPSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETEXPSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETEXPSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETEXPSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETEXPSS takes 3 or 4 operands") + } + // VGETEXPSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x43) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VGETEXPSS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VGETEXPSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETEXPSS") + } + return p +} + +// VGETMANTPD performs "Extract Normalized Mantissas from Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VGETMANTPD +// Supported forms : (7 forms) +// +// * VGETMANTPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VGETMANTPD imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETMANTPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETMANTPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETMANTPD takes 3 or 4 operands") + } + // VGETMANTPD imm8, m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x26) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPD imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTPD") + } + return p +} + +// VGETMANTPS performs "Extract Normalized Mantissas from Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VGETMANTPS +// Supported forms : (7 forms) +// +// * VGETMANTPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VGETMANTPS imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPS imm8, zmm, zmm{k}{z} [AVX512F] +// * VGETMANTPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VGETMANTPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VGETMANTPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VGETMANTPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VGETMANTPS takes 3 or 4 operands") + } + // VGETMANTPS imm8, m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x26) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTPS imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTPS") + } + return p +} + +// VGETMANTSD performs "Extract Normalized Mantissa from Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VGETMANTSD +// Supported forms : (3 forms) +// +// * VGETMANTSD imm8, m64, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSD imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETMANTSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTSD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VGETMANTSD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VGETMANTSD takes 4 or 5 operands") + } + // VGETMANTSD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x27) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x27) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTSD") + } + return p +} + +// VGETMANTSS performs "Extract Normalized Mantissa from Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VGETMANTSS +// Supported forms : (3 forms) +// +// * VGETMANTSS imm8, m32, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VGETMANTSS imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VGETMANTSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VGETMANTSS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VGETMANTSS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VGETMANTSS takes 4 or 5 operands") + } + // VGETMANTSS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x27) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x27) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VGETMANTSS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VGETMANTSS") + } + return p +} + +// VHADDPD performs "Packed Double-FP Horizontal Add". +// +// Mnemonic : VHADDPD +// Supported forms : (4 forms) +// +// * VHADDPD xmm, xmm, xmm [AVX] +// * VHADDPD m128, xmm, xmm [AVX] +// * VHADDPD ymm, ymm, ymm [AVX] +// * VHADDPD m256, ymm, ymm [AVX] +// +func (self *Program) VHADDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHADDPD", 3, Operands { v0, v1, v2 }) + // VHADDPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHADDPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHADDPD") + } + return p +} + +// VHADDPS performs "Packed Single-FP Horizontal Add". +// +// Mnemonic : VHADDPS +// Supported forms : (4 forms) +// +// * VHADDPS xmm, xmm, xmm [AVX] +// * VHADDPS m128, xmm, xmm [AVX] +// * VHADDPS ymm, ymm, ymm [AVX] +// * VHADDPS m256, ymm, ymm [AVX] +// +func (self *Program) VHADDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHADDPS", 3, Operands { v0, v1, v2 }) + // VHADDPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHADDPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHADDPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHADDPS") + } + return p +} + +// VHSUBPD performs "Packed Double-FP Horizontal Subtract". +// +// Mnemonic : VHSUBPD +// Supported forms : (4 forms) +// +// * VHSUBPD xmm, xmm, xmm [AVX] +// * VHSUBPD m128, xmm, xmm [AVX] +// * VHSUBPD ymm, ymm, ymm [AVX] +// * VHSUBPD m256, ymm, ymm [AVX] +// +func (self *Program) VHSUBPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHSUBPD", 3, Operands { v0, v1, v2 }) + // VHSUBPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHSUBPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHSUBPD") + } + return p +} + +// VHSUBPS performs "Packed Single-FP Horizontal Subtract". +// +// Mnemonic : VHSUBPS +// Supported forms : (4 forms) +// +// * VHSUBPS xmm, xmm, xmm [AVX] +// * VHSUBPS m128, xmm, xmm [AVX] +// * VHSUBPS ymm, ymm, ymm [AVX] +// * VHSUBPS m256, ymm, ymm [AVX] +// +func (self *Program) VHSUBPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VHSUBPS", 3, Operands { v0, v1, v2 }) + // VHSUBPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VHSUBPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VHSUBPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VHSUBPS") + } + return p +} + +// VINSERTF128 performs "Insert Packed Floating-Point Values". +// +// Mnemonic : VINSERTF128 +// Supported forms : (2 forms) +// +// * VINSERTF128 imm8, xmm, ymm, ymm [AVX] +// * VINSERTF128 imm8, m128, ymm, ymm [AVX] +// +func (self *Program) VINSERTF128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF128", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF128 imm8, xmm, ymm, ymm + if isImm8(v0) && isXMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF128 imm8, m128, ymm, ymm + if isImm8(v0) && isM128(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF128") + } + return p +} + +// VINSERTF32X4 performs "Insert 128 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF32X4 +// Supported forms : (4 forms) +// +// * VINSERTF32X4 imm8, xmm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTF32X4 imm8, m128, zmm, zmm{k}{z} [AVX512F] +// * VINSERTF32X4 imm8, xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VINSERTF32X4 imm8, m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VINSERTF32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF32X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF32X4 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X4 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X4 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X4 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF32X4") + } + return p +} + +// VINSERTF32X8 performs "Insert 256 Bits of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF32X8 +// Supported forms : (2 forms) +// +// * VINSERTF32X8 imm8, ymm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTF32X8 imm8, m256, zmm, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VINSERTF32X8(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF32X8", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF32X8 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF32X8 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF32X8") + } + return p +} + +// VINSERTF64X2 performs "Insert 128 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF64X2 +// Supported forms : (4 forms) +// +// * VINSERTF64X2 imm8, xmm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTF64X2 imm8, m128, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTF64X2 imm8, xmm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VINSERTF64X2 imm8, m128, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VINSERTF64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF64X2", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF64X2 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X2 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X2 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x18) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X2 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x18) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF64X2") + } + return p +} + +// VINSERTF64X4 performs "Insert 256 Bits of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VINSERTF64X4 +// Supported forms : (2 forms) +// +// * VINSERTF64X4 imm8, ymm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTF64X4 imm8, m256, zmm, zmm{k}{z} [AVX512F] +// +func (self *Program) VINSERTF64X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTF64X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTF64X4 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTF64X4 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x1a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTF64X4") + } + return p +} + +// VINSERTI128 performs "Insert Packed Integer Values". +// +// Mnemonic : VINSERTI128 +// Supported forms : (2 forms) +// +// * VINSERTI128 imm8, xmm, ymm, ymm [AVX2] +// * VINSERTI128 imm8, m128, ymm, ymm [AVX2] +// +func (self *Program) VINSERTI128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI128", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI128 imm8, xmm, ymm, ymm + if isImm8(v0) && isXMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI128 imm8, m128, ymm, ymm + if isImm8(v0) && isM128(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI128") + } + return p +} + +// VINSERTI32X4 performs "Insert 128 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VINSERTI32X4 +// Supported forms : (4 forms) +// +// * VINSERTI32X4 imm8, xmm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTI32X4 imm8, m128, zmm, zmm{k}{z} [AVX512F] +// * VINSERTI32X4 imm8, xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VINSERTI32X4 imm8, m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VINSERTI32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI32X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI32X4 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X4 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X4 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X4 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI32X4") + } + return p +} + +// VINSERTI32X8 performs "Insert 256 Bits of Packed Doubleword Integer Values". +// +// Mnemonic : VINSERTI32X8 +// Supported forms : (2 forms) +// +// * VINSERTI32X8 imm8, ymm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTI32X8 imm8, m256, zmm, zmm{k}{z} [AVX512DQ] +// +func (self *Program) VINSERTI32X8(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI32X8", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI32X8 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI32X8 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI32X8") + } + return p +} + +// VINSERTI64X2 performs "Insert 128 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VINSERTI64X2 +// Supported forms : (4 forms) +// +// * VINSERTI64X2 imm8, xmm, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTI64X2 imm8, m128, zmm, zmm{k}{z} [AVX512DQ] +// * VINSERTI64X2 imm8, xmm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VINSERTI64X2 imm8, m128, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VINSERTI64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI64X2", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI64X2 imm8, xmm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X2 imm8, m128, zmm, zmm{k}{z} + if isImm8(v0) && isM128(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X2 imm8, xmm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x38) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X2 imm8, m128, ymm, ymm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x38) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI64X2") + } + return p +} + +// VINSERTI64X4 performs "Insert 256 Bits of Packed Quadword Integer Values". +// +// Mnemonic : VINSERTI64X4 +// Supported forms : (2 forms) +// +// * VINSERTI64X4 imm8, ymm, zmm, zmm{k}{z} [AVX512F] +// * VINSERTI64X4 imm8, m256, zmm, zmm{k}{z} [AVX512F] +// +func (self *Program) VINSERTI64X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTI64X4", 4, Operands { v0, v1, v2, v3 }) + // VINSERTI64X4 imm8, ymm, zmm, zmm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTI64X4 imm8, m256, zmm, zmm{k}{z} + if isImm8(v0) && isM256(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTI64X4") + } + return p +} + +// VINSERTPS performs "Insert Packed Single Precision Floating-Point Value". +// +// Mnemonic : VINSERTPS +// Supported forms : (4 forms) +// +// * VINSERTPS imm8, xmm, xmm, xmm [AVX] +// * VINSERTPS imm8, m32, xmm, xmm [AVX] +// * VINSERTPS imm8, xmm, xmm, xmm [AVX512F] +// * VINSERTPS imm8, m32, xmm, xmm [AVX512F] +// +func (self *Program) VINSERTPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VINSERTPS", 4, Operands { v0, v1, v2, v3 }) + // VINSERTPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x21) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTPS imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x21) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTPS imm8, xmm, xmm, xmm + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x21) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VINSERTPS imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x21) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VINSERTPS") + } + return p +} + +// VLDDQU performs "Load Unaligned Integer 128 Bits". +// +// Mnemonic : VLDDQU +// Supported forms : (2 forms) +// +// * VLDDQU m128, xmm [AVX] +// * VLDDQU m256, ymm [AVX] +// +func (self *Program) VLDDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VLDDQU", 2, Operands { v0, v1 }) + // VLDDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VLDDQU m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), addr(v[0]), 0) + m.emit(0xf0) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VLDDQU") + } + return p +} + +// VLDMXCSR performs "Load MXCSR Register". +// +// Mnemonic : VLDMXCSR +// Supported forms : (1 form) +// +// * VLDMXCSR m32 [AVX] +// +func (self *Program) VLDMXCSR(v0 interface{}) *Instruction { + p := self.alloc("VLDMXCSR", 1, Operands { v0 }) + // VLDMXCSR m32 + if isM32(v0) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[0]), 0) + m.emit(0xae) + m.mrsd(2, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VLDMXCSR") + } + return p +} + +// VMASKMOVDQU performs "Store Selected Bytes of Double Quadword". +// +// Mnemonic : VMASKMOVDQU +// Supported forms : (1 form) +// +// * VMASKMOVDQU xmm, xmm [AVX] +// +func (self *Program) VMASKMOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMASKMOVDQU", 2, Operands { v0, v1 }) + // VMASKMOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0xf7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMASKMOVDQU") + } + return p +} + +// VMASKMOVPD performs "Conditional Move Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMASKMOVPD +// Supported forms : (4 forms) +// +// * VMASKMOVPD m128, xmm, xmm [AVX] +// * VMASKMOVPD m256, ymm, ymm [AVX] +// * VMASKMOVPD xmm, xmm, m128 [AVX] +// * VMASKMOVPD ymm, ymm, m256 [AVX] +// +func (self *Program) VMASKMOVPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMASKMOVPD", 3, Operands { v0, v1, v2 }) + // VMASKMOVPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPD xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2f) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VMASKMOVPD ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2f) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMASKMOVPD") + } + return p +} + +// VMASKMOVPS performs "Conditional Move Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMASKMOVPS +// Supported forms : (4 forms) +// +// * VMASKMOVPS m128, xmm, xmm [AVX] +// * VMASKMOVPS m256, ymm, ymm [AVX] +// * VMASKMOVPS xmm, xmm, m128 [AVX] +// * VMASKMOVPS ymm, ymm, m256 [AVX] +// +func (self *Program) VMASKMOVPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMASKMOVPS", 3, Operands { v0, v1, v2 }) + // VMASKMOVPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMASKMOVPS xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VMASKMOVPS ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x2e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMASKMOVPS") + } + return p +} + +// VMAXPD performs "Return Maximum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMAXPD +// Supported forms : (11 forms) +// +// * VMAXPD xmm, xmm, xmm [AVX] +// * VMAXPD m128, xmm, xmm [AVX] +// * VMAXPD ymm, ymm, ymm [AVX] +// * VMAXPD m256, ymm, ymm [AVX] +// * VMAXPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VMAXPD {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMAXPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMAXPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXPD takes 3 or 4 operands") + } + // VMAXPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMAXPD {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMAXPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMAXPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXPD") + } + return p +} + +// VMAXPS performs "Return Maximum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMAXPS +// Supported forms : (11 forms) +// +// * VMAXPS xmm, xmm, xmm [AVX] +// * VMAXPS m128, xmm, xmm [AVX] +// * VMAXPS ymm, ymm, ymm [AVX] +// * VMAXPS m256, ymm, ymm [AVX] +// * VMAXPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VMAXPS {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VMAXPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMAXPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMAXPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMAXPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXPS takes 3 or 4 operands") + } + // VMAXPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMAXPS {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMAXPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMAXPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXPS") + } + return p +} + +// VMAXSD performs "Return Maximum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VMAXSD +// Supported forms : (5 forms) +// +// * VMAXSD xmm, xmm, xmm [AVX] +// * VMAXSD m64, xmm, xmm [AVX] +// * VMAXSD m64, xmm, xmm{k}{z} [AVX512F] +// * VMAXSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMAXSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMAXSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXSD takes 3 or 4 operands") + } + // VMAXSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VMAXSD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXSD") + } + return p +} + +// VMAXSS performs "Return Maximum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VMAXSS +// Supported forms : (5 forms) +// +// * VMAXSS xmm, xmm, xmm [AVX] +// * VMAXSS m32, xmm, xmm [AVX] +// * VMAXSS m32, xmm, xmm{k}{z} [AVX512F] +// * VMAXSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMAXSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMAXSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMAXSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMAXSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMAXSS takes 3 or 4 operands") + } + // VMAXSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMAXSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMAXSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5f) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VMAXSS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMAXSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMAXSS") + } + return p +} + +// VMINPD performs "Return Minimum Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMINPD +// Supported forms : (11 forms) +// +// * VMINPD xmm, xmm, xmm [AVX] +// * VMINPD m128, xmm, xmm [AVX] +// * VMINPD ymm, ymm, ymm [AVX] +// * VMINPD m256, ymm, ymm [AVX] +// * VMINPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VMINPD {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMINPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMINPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINPD takes 3 or 4 operands") + } + // VMINPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMINPD {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMINPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMINPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINPD") + } + return p +} + +// VMINPS performs "Return Minimum Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMINPS +// Supported forms : (11 forms) +// +// * VMINPS xmm, xmm, xmm [AVX] +// * VMINPS m128, xmm, xmm [AVX] +// * VMINPS ymm, ymm, ymm [AVX] +// * VMINPS m256, ymm, ymm [AVX] +// * VMINPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VMINPS {sae}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VMINPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMINPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMINPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMINPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINPS takes 3 or 4 operands") + } + // VMINPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMINPS {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMINPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMINPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINPS") + } + return p +} + +// VMINSD performs "Return Minimum Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VMINSD +// Supported forms : (5 forms) +// +// * VMINSD xmm, xmm, xmm [AVX] +// * VMINSD m64, xmm, xmm [AVX] +// * VMINSD m64, xmm, xmm{k}{z} [AVX512F] +// * VMINSD {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMINSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMINSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINSD takes 3 or 4 operands") + } + // VMINSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VMINSD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINSD") + } + return p +} + +// VMINSS performs "Return Minimum Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VMINSS +// Supported forms : (5 forms) +// +// * VMINSS xmm, xmm, xmm [AVX] +// * VMINSS m32, xmm, xmm [AVX] +// * VMINSS m32, xmm, xmm{k}{z} [AVX512F] +// * VMINSS {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMINSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMINSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMINSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMINSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMINSS takes 3 or 4 operands") + } + // VMINSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMINSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMINSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VMINSS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMINSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMINSS") + } + return p +} + +// VMOVAPD performs "Move Aligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMOVAPD +// Supported forms : (15 forms) +// +// * VMOVAPD xmm, xmm [AVX] +// * VMOVAPD m128, xmm [AVX] +// * VMOVAPD ymm, ymm [AVX] +// * VMOVAPD m256, ymm [AVX] +// * VMOVAPD xmm, m128 [AVX] +// * VMOVAPD ymm, m256 [AVX] +// * VMOVAPD zmm, m512{k}{z} [AVX512F] +// * VMOVAPD zmm, zmm{k}{z} [AVX512F] +// * VMOVAPD m512, zmm{k}{z} [AVX512F] +// * VMOVAPD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVAPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVAPD", 2, Operands { v0, v1 }) + // VMOVAPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPD ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVAPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVAPD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVAPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVAPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVAPD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVAPD") + } + return p +} + +// VMOVAPS performs "Move Aligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVAPS +// Supported forms : (15 forms) +// +// * VMOVAPS xmm, xmm [AVX] +// * VMOVAPS m128, xmm [AVX] +// * VMOVAPS ymm, ymm [AVX] +// * VMOVAPS m256, ymm [AVX] +// * VMOVAPS xmm, m128 [AVX] +// * VMOVAPS ymm, m256 [AVX] +// * VMOVAPS zmm, m512{k}{z} [AVX512F] +// * VMOVAPS zmm, zmm{k}{z} [AVX512F] +// * VMOVAPS m512, zmm{k}{z} [AVX512F] +// * VMOVAPS xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVAPS m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVAPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVAPS", 2, Operands { v0, v1 }) + // VMOVAPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), v[1], 0) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVAPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPS ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), addr(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVAPS zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVAPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVAPS xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVAPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x29) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVAPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVAPS m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVAPS m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x28) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVAPS") + } + return p +} + +// VMOVD performs "Move Doubleword". +// +// Mnemonic : VMOVD +// Supported forms : (8 forms) +// +// * VMOVD xmm, r32 [AVX] +// * VMOVD r32, xmm [AVX] +// * VMOVD m32, xmm [AVX] +// * VMOVD xmm, m32 [AVX] +// * VMOVD xmm, r32 [AVX512F] +// * VMOVD r32, xmm [AVX512F] +// * VMOVD m32, xmm [AVX512F] +// * VMOVD xmm, m32 [AVX512F] +// +func (self *Program) VMOVD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVD", 2, Operands { v0, v1 }) + // VMOVD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVD r32, xmm + if isReg32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVD xmm, m32 + if isXMM(v0) && isM32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVD xmm, r32 + if isEVEXXMM(v0) && isReg32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVD r32, xmm + if isReg32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVD m32, xmm + if isM32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VMOVD xmm, m32 + if isEVEXXMM(v0) && isM32(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVD") + } + return p +} + +// VMOVDDUP performs "Move One Double-FP and Duplicate". +// +// Mnemonic : VMOVDDUP +// Supported forms : (10 forms) +// +// * VMOVDDUP xmm, xmm [AVX] +// * VMOVDDUP m64, xmm [AVX] +// * VMOVDDUP ymm, ymm [AVX] +// * VMOVDDUP m256, ymm [AVX] +// * VMOVDDUP zmm, zmm{k}{z} [AVX512F] +// * VMOVDDUP m512, zmm{k}{z} [AVX512F] +// * VMOVDDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDDUP m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDDUP m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDDUP", 2, Operands { v0, v1 }) + // VMOVDDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDDUP ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDDUP zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDDUP xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVDDUP m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VMOVDDUP m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDDUP") + } + return p +} + +// VMOVDQA performs "Move Aligned Double Quadword". +// +// Mnemonic : VMOVDQA +// Supported forms : (6 forms) +// +// * VMOVDQA xmm, xmm [AVX] +// * VMOVDQA m128, xmm [AVX] +// * VMOVDQA ymm, ymm [AVX] +// * VMOVDQA m256, ymm [AVX] +// * VMOVDQA xmm, m128 [AVX] +// * VMOVDQA ymm, m256 [AVX] +// +func (self *Program) VMOVDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQA", 2, Operands { v0, v1 }) + // VMOVDQA xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQA ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQA xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVDQA ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQA") + } + return p +} + +// VMOVDQA32 performs "Move Aligned Doubleword Values". +// +// Mnemonic : VMOVDQA32 +// Supported forms : (9 forms) +// +// * VMOVDQA32 zmm, m512{k}{z} [AVX512F] +// * VMOVDQA32 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQA32 m512, zmm{k}{z} [AVX512F] +// * VMOVDQA32 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA32 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQA32(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQA32", 2, Operands { v0, v1 }) + // VMOVDQA32 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQA32 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA32 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQA32 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQA32 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA32 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQA32 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA32 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQA32 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQA32") + } + return p +} + +// VMOVDQA64 performs "Move Aligned Quadword Values". +// +// Mnemonic : VMOVDQA64 +// Supported forms : (9 forms) +// +// * VMOVDQA64 zmm, m512{k}{z} [AVX512F] +// * VMOVDQA64 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQA64 m512, zmm{k}{z} [AVX512F] +// * VMOVDQA64 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQA64 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQA64(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQA64", 2, Operands { v0, v1 }) + // VMOVDQA64 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQA64 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA64 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQA64 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQA64 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA64 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQA64 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQA64 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQA64 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQA64") + } + return p +} + +// VMOVDQU performs "Move Unaligned Double Quadword". +// +// Mnemonic : VMOVDQU +// Supported forms : (6 forms) +// +// * VMOVDQU xmm, xmm [AVX] +// * VMOVDQU m128, xmm [AVX] +// * VMOVDQU ymm, ymm [AVX] +// * VMOVDQU m256, ymm [AVX] +// * VMOVDQU xmm, m128 [AVX] +// * VMOVDQU ymm, m256 [AVX] +// +func (self *Program) VMOVDQU(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU", 2, Operands { v0, v1 }) + // VMOVDQU xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQU ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[0]), v[1], 0) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVDQU xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVDQU ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU") + } + return p +} + +// VMOVDQU16 performs "Move Unaligned Word Values". +// +// Mnemonic : VMOVDQU16 +// Supported forms : (9 forms) +// +// * VMOVDQU16 zmm, m512{k}{z} [AVX512BW] +// * VMOVDQU16 zmm, zmm{k}{z} [AVX512BW] +// * VMOVDQU16 m512, zmm{k}{z} [AVX512BW] +// * VMOVDQU16 xmm, m128{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 ymm, m256{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU16 m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VMOVDQU16(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU16", 2, Operands { v0, v1 }) + // VMOVDQU16 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU16 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU16 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU16 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU16 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU16 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU16 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU16 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU16 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU16") + } + return p +} + +// VMOVDQU32 performs "Move Unaligned Doubleword Values". +// +// Mnemonic : VMOVDQU32 +// Supported forms : (9 forms) +// +// * VMOVDQU32 zmm, m512{k}{z} [AVX512F] +// * VMOVDQU32 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQU32 m512, zmm{k}{z} [AVX512F] +// * VMOVDQU32 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU32 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQU32(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU32", 2, Operands { v0, v1 }) + // VMOVDQU32 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU32 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU32 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU32 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU32 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU32 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU32 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU32 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU32 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU32") + } + return p +} + +// VMOVDQU64 performs "Move Unaligned Quadword Values". +// +// Mnemonic : VMOVDQU64 +// Supported forms : (9 forms) +// +// * VMOVDQU64 zmm, m512{k}{z} [AVX512F] +// * VMOVDQU64 zmm, zmm{k}{z} [AVX512F] +// * VMOVDQU64 m512, zmm{k}{z} [AVX512F] +// * VMOVDQU64 xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVDQU64 m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVDQU64(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU64", 2, Operands { v0, v1 }) + // VMOVDQU64 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU64 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU64 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU64 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU64 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU64 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU64 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfe) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU64 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU64 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU64") + } + return p +} + +// VMOVDQU8 performs "Move Unaligned Byte Values". +// +// Mnemonic : VMOVDQU8 +// Supported forms : (9 forms) +// +// * VMOVDQU8 zmm, m512{k}{z} [AVX512BW] +// * VMOVDQU8 zmm, zmm{k}{z} [AVX512BW] +// * VMOVDQU8 m512, zmm{k}{z} [AVX512BW] +// * VMOVDQU8 xmm, m128{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 ymm, m256{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VMOVDQU8 m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VMOVDQU8(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVDQU8", 2, Operands { v0, v1 }) + // VMOVDQU8 zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVDQU8 zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU8 m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVDQU8 xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVDQU8 xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU8 ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x7f) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVDQU8 ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x6f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVDQU8 m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVDQU8 m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x6f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVDQU8") + } + return p +} + +// VMOVHLPS performs "Move Packed Single-Precision Floating-Point Values High to Low". +// +// Mnemonic : VMOVHLPS +// Supported forms : (2 forms) +// +// * VMOVHLPS xmm, xmm, xmm [AVX] +// * VMOVHLPS xmm, xmm, xmm [AVX512F] +// +func (self *Program) VMOVHLPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMOVHLPS", 3, Operands { v0, v1, v2 }) + // VMOVHLPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMOVHLPS xmm, xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVHLPS") + } + return p +} + +// VMOVHPD performs "Move High Packed Double-Precision Floating-Point Value". +// +// Mnemonic : VMOVHPD +// Supported forms : (4 forms) +// +// * VMOVHPD xmm, m64 [AVX] +// * VMOVHPD m64, xmm, xmm [AVX] +// * VMOVHPD xmm, m64 [AVX512F] +// * VMOVHPD m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVHPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVHPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVHPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVHPD takes 2 or 3 operands") + } + // VMOVHPD xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVHPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVHPD xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVHPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVHPD") + } + return p +} + +// VMOVHPS performs "Move High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVHPS +// Supported forms : (4 forms) +// +// * VMOVHPS xmm, m64 [AVX] +// * VMOVHPS m64, xmm, xmm [AVX] +// * VMOVHPS xmm, m64 [AVX512F] +// * VMOVHPS m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVHPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVHPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVHPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVHPS takes 2 or 3 operands") + } + // VMOVHPS xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVHPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVHPS xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x17) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVHPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVHPS") + } + return p +} + +// VMOVLHPS performs "Move Packed Single-Precision Floating-Point Values Low to High". +// +// Mnemonic : VMOVLHPS +// Supported forms : (2 forms) +// +// * VMOVLHPS xmm, xmm, xmm [AVX] +// * VMOVLHPS xmm, xmm, xmm [AVX512F] +// +func (self *Program) VMOVLHPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VMOVLHPS", 3, Operands { v0, v1, v2 }) + // VMOVLHPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMOVLHPS xmm, xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVLHPS") + } + return p +} + +// VMOVLPD performs "Move Low Packed Double-Precision Floating-Point Value". +// +// Mnemonic : VMOVLPD +// Supported forms : (4 forms) +// +// * VMOVLPD xmm, m64 [AVX] +// * VMOVLPD m64, xmm, xmm [AVX] +// * VMOVLPD xmm, m64 [AVX512F] +// * VMOVLPD m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVLPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVLPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVLPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVLPD takes 2 or 3 operands") + } + // VMOVLPD xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVLPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVLPD xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVLPD m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVLPD") + } + return p +} + +// VMOVLPS performs "Move Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVLPS +// Supported forms : (4 forms) +// +// * VMOVLPS xmm, m64 [AVX] +// * VMOVLPS m64, xmm, xmm [AVX] +// * VMOVLPS xmm, m64 [AVX512F] +// * VMOVLPS m64, xmm, xmm [AVX512F] +// +func (self *Program) VMOVLPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVLPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVLPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVLPS takes 2 or 3 operands") + } + // VMOVLPS xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVLPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMOVLPS xmm, m64 + if len(vv) == 0 && isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVLPS m64, xmm, xmm + if len(vv) == 1 && isM64(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVLPS") + } + return p +} + +// VMOVMSKPD performs "Extract Packed Double-Precision Floating-Point Sign Mask". +// +// Mnemonic : VMOVMSKPD +// Supported forms : (2 forms) +// +// * VMOVMSKPD xmm, r32 [AVX] +// * VMOVMSKPD ymm, r32 [AVX] +// +func (self *Program) VMOVMSKPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVMSKPD", 2, Operands { v0, v1 }) + // VMOVMSKPD xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVMSKPD ymm, r32 + if isYMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVMSKPD") + } + return p +} + +// VMOVMSKPS performs "Extract Packed Single-Precision Floating-Point Sign Mask". +// +// Mnemonic : VMOVMSKPS +// Supported forms : (2 forms) +// +// * VMOVMSKPS xmm, r32 [AVX] +// * VMOVMSKPS ymm, r32 [AVX] +// +func (self *Program) VMOVMSKPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVMSKPS", 2, Operands { v0, v1 }) + // VMOVMSKPS xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVMSKPS ymm, r32 + if isYMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x50) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVMSKPS") + } + return p +} + +// VMOVNTDQ performs "Store Double Quadword Using Non-Temporal Hint". +// +// Mnemonic : VMOVNTDQ +// Supported forms : (5 forms) +// +// * VMOVNTDQ xmm, m128 [AVX] +// * VMOVNTDQ ymm, m256 [AVX] +// * VMOVNTDQ zmm, m512 [AVX512F] +// * VMOVNTDQ xmm, m128 [AVX512F,AVX512VL] +// * VMOVNTDQ ymm, m256 [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTDQ", 2, Operands { v0, v1 }) + // VMOVNTDQ xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTDQ ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTDQ zmm, m512 + if isZMM(v0) && isM512(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVNTDQ xmm, m128 + if isEVEXXMM(v0) && isM128(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVNTDQ ymm, m256 + if isEVEXYMM(v0) && isM256(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xe7) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTDQ") + } + return p +} + +// VMOVNTDQA performs "Load Double Quadword Non-Temporal Aligned Hint". +// +// Mnemonic : VMOVNTDQA +// Supported forms : (5 forms) +// +// * VMOVNTDQA m128, xmm [AVX] +// * VMOVNTDQA m256, ymm [AVX2] +// * VMOVNTDQA m512, zmm [AVX512F] +// * VMOVNTDQA m128, xmm [AVX512F,AVX512VL] +// * VMOVNTDQA m256, ymm [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTDQA(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTDQA", 2, Operands { v0, v1 }) + // VMOVNTDQA m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVNTDQA m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVNTDQA m512, zmm + if isM512(v0) && isZMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVNTDQA m128, xmm + if isM128(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVNTDQA m256, ymm + if isM256(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2a) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTDQA") + } + return p +} + +// VMOVNTPD performs "Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : VMOVNTPD +// Supported forms : (5 forms) +// +// * VMOVNTPD xmm, m128 [AVX] +// * VMOVNTPD ymm, m256 [AVX] +// * VMOVNTPD zmm, m512 [AVX512F] +// * VMOVNTPD xmm, m128 [AVX512F,AVX512VL] +// * VMOVNTPD ymm, m256 [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTPD", 2, Operands { v0, v1 }) + // VMOVNTPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPD ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPD zmm, m512 + if isZMM(v0) && isM512(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVNTPD xmm, m128 + if isEVEXXMM(v0) && isM128(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVNTPD ymm, m256 + if isEVEXYMM(v0) && isM256(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTPD") + } + return p +} + +// VMOVNTPS performs "Store Packed Single-Precision Floating-Point Values Using Non-Temporal Hint". +// +// Mnemonic : VMOVNTPS +// Supported forms : (5 forms) +// +// * VMOVNTPS xmm, m128 [AVX] +// * VMOVNTPS ymm, m256 [AVX] +// * VMOVNTPS zmm, m512 [AVX512F] +// * VMOVNTPS xmm, m128 [AVX512F,AVX512VL] +// * VMOVNTPS ymm, m256 [AVX512F,AVX512VL] +// +func (self *Program) VMOVNTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVNTPS", 2, Operands { v0, v1 }) + // VMOVNTPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPS ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), addr(v[1]), 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVNTPS zmm, m512 + if isZMM(v0) && isM512(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVNTPS xmm, m128 + if isEVEXXMM(v0) && isM128(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVNTPS ymm, m256 + if isEVEXYMM(v0) && isM256(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x2b) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVNTPS") + } + return p +} + +// VMOVQ performs "Move Quadword". +// +// Mnemonic : VMOVQ +// Supported forms : (10 forms) +// +// * VMOVQ xmm, r64 [AVX] +// * VMOVQ r64, xmm [AVX] +// * VMOVQ xmm, xmm [AVX] +// * VMOVQ m64, xmm [AVX] +// * VMOVQ xmm, m64 [AVX] +// * VMOVQ xmm, r64 [AVX512F] +// * VMOVQ r64, xmm [AVX512F] +// * VMOVQ xmm, xmm [AVX512F] +// * VMOVQ m64, xmm [AVX512F] +// * VMOVQ xmm, m64 [AVX512F] +// +func (self *Program) VMOVQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVQ", 2, Operands { v0, v1 }) + // VMOVQ xmm, r64 + if isXMM(v0) && isReg64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[0]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ r64, xmm + if isReg64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe1 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x7e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, hcode(v[1]), addr(v[0]), 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVQ xmm, m64 + if isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0xd6) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b1, 0x81, hcode(v[0]), addr(v[1]), 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVQ xmm, r64 + if isEVEXXMM(v0) && isReg64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ r64, xmm + if isReg64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0x6e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVQ xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVQ m64, xmm + if isM64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x6e) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x86, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x7e) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VMOVQ xmm, m64 + if isEVEXXMM(v0) && isM64(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0x7e) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, 0, 0, 0) + m.emit(0xd6) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVQ") + } + return p +} + +// VMOVSD performs "Move Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VMOVSD +// Supported forms : (6 forms) +// +// * VMOVSD m64, xmm [AVX] +// * VMOVSD xmm, m64 [AVX] +// * VMOVSD xmm, xmm, xmm [AVX] +// * VMOVSD xmm, m64{k} [AVX512F] +// * VMOVSD m64, xmm{k}{z} [AVX512F] +// * VMOVSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMOVSD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVSD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVSD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVSD takes 2 or 3 operands") + } + // VMOVSD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSD xmm, m64 + if len(vv) == 0 && isXMM(v0) && isM64(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVSD xmm, xmm, xmm + if len(vv) == 1 && isXMM(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[0]), v[2], hlcode(v[1])) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + // VMOVSD xmm, m64{k} + if len(vv) == 0 && isEVEXXMM(v0) && isM64k(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VMOVSD m64, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VMOVSD xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSD") + } + return p +} + +// VMOVSHDUP performs "Move Packed Single-FP High and Duplicate". +// +// Mnemonic : VMOVSHDUP +// Supported forms : (10 forms) +// +// * VMOVSHDUP xmm, xmm [AVX] +// * VMOVSHDUP m128, xmm [AVX] +// * VMOVSHDUP ymm, ymm [AVX] +// * VMOVSHDUP m256, ymm [AVX] +// * VMOVSHDUP zmm, zmm{k}{z} [AVX512F] +// * VMOVSHDUP m512, zmm{k}{z} [AVX512F] +// * VMOVSHDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSHDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVSHDUP m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSHDUP m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVSHDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVSHDUP", 2, Operands { v0, v1 }) + // VMOVSHDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSHDUP ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSHDUP zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVSHDUP xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSHDUP m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVSHDUP m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSHDUP") + } + return p +} + +// VMOVSLDUP performs "Move Packed Single-FP Low and Duplicate". +// +// Mnemonic : VMOVSLDUP +// Supported forms : (10 forms) +// +// * VMOVSLDUP xmm, xmm [AVX] +// * VMOVSLDUP m128, xmm [AVX] +// * VMOVSLDUP ymm, ymm [AVX] +// * VMOVSLDUP m256, ymm [AVX] +// * VMOVSLDUP zmm, zmm{k}{z} [AVX512F] +// * VMOVSLDUP m512, zmm{k}{z} [AVX512F] +// * VMOVSLDUP xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSLDUP ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVSLDUP m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVSLDUP m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVSLDUP(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVSLDUP", 2, Operands { v0, v1 }) + // VMOVSLDUP xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSLDUP ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), v[0], 0) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[1]), addr(v[0]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSLDUP zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVSLDUP xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x12) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VMOVSLDUP m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVSLDUP m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSLDUP") + } + return p +} + +// VMOVSS performs "Move Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVSS +// Supported forms : (6 forms) +// +// * VMOVSS m32, xmm [AVX] +// * VMOVSS xmm, m32 [AVX] +// * VMOVSS xmm, xmm, xmm [AVX] +// * VMOVSS xmm, m32{k} [AVX512F] +// * VMOVSS m32, xmm{k}{z} [AVX512F] +// * VMOVSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMOVSS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMOVSS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VMOVSS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VMOVSS takes 2 or 3 operands") + } + // VMOVSS m32, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVSS xmm, m32 + if len(vv) == 0 && isXMM(v0) && isM32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVSS xmm, xmm, xmm + if len(vv) == 1 && isXMM(v0) && isXMM(v1) && isXMM(vv[0]) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[0]), v[2], hlcode(v[1])) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + // VMOVSS xmm, m32{k} + if len(vv) == 0 && isEVEXXMM(v0) && isM32k(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VMOVSS m32, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VMOVSS xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[2])) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVSS") + } + return p +} + +// VMOVUPD performs "Move Unaligned Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMOVUPD +// Supported forms : (15 forms) +// +// * VMOVUPD xmm, xmm [AVX] +// * VMOVUPD m128, xmm [AVX] +// * VMOVUPD ymm, ymm [AVX] +// * VMOVUPD m256, ymm [AVX] +// * VMOVUPD xmm, m128 [AVX] +// * VMOVUPD ymm, m256 [AVX] +// * VMOVUPD zmm, m512{k}{z} [AVX512F] +// * VMOVUPD zmm, zmm{k}{z} [AVX512F] +// * VMOVUPD m512, zmm{k}{z} [AVX512F] +// * VMOVUPD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVUPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVUPD", 2, Operands { v0, v1 }) + // VMOVUPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPD xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPD ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVUPD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVUPD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVUPD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVUPD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVUPD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVUPD") + } + return p +} + +// VMOVUPS performs "Move Unaligned Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMOVUPS +// Supported forms : (15 forms) +// +// * VMOVUPS xmm, xmm [AVX] +// * VMOVUPS m128, xmm [AVX] +// * VMOVUPS ymm, ymm [AVX] +// * VMOVUPS m256, ymm [AVX] +// * VMOVUPS xmm, m128 [AVX] +// * VMOVUPS ymm, m256 [AVX] +// * VMOVUPS zmm, m512{k}{z} [AVX512F] +// * VMOVUPS zmm, zmm{k}{z} [AVX512F] +// * VMOVUPS m512, zmm{k}{z} [AVX512F] +// * VMOVUPS xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS ymm, m256{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VMOVUPS m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMOVUPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VMOVUPS", 2, Operands { v0, v1 }) + // VMOVUPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), v[1], 0) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VMOVUPS xmm, m128 + if isXMM(v0) && isM128(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPS ymm, m256 + if isYMM(v0) && isM256(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[0]), addr(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + // VMOVUPS zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 64) + }) + } + // VMOVUPS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VMOVUPS xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VMOVUPS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VMOVUPS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x10) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VMOVUPS m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VMOVUPS m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VMOVUPS") + } + return p +} + +// VMPSADBW performs "Compute Multiple Packed Sums of Absolute Difference". +// +// Mnemonic : VMPSADBW +// Supported forms : (4 forms) +// +// * VMPSADBW imm8, xmm, xmm, xmm [AVX] +// * VMPSADBW imm8, m128, xmm, xmm [AVX] +// * VMPSADBW imm8, ymm, ymm, ymm [AVX2] +// * VMPSADBW imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VMPSADBW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VMPSADBW", 4, Operands { v0, v1, v2, v3 }) + // VMPSADBW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VMPSADBW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VMPSADBW imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x42) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VMPSADBW imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x42) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMPSADBW") + } + return p +} + +// VMULPD performs "Multiply Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VMULPD +// Supported forms : (11 forms) +// +// * VMULPD xmm, xmm, xmm [AVX] +// * VMULPD m128, xmm, xmm [AVX] +// * VMULPD ymm, ymm, ymm [AVX] +// * VMULPD m256, ymm, ymm [AVX] +// * VMULPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VMULPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMULPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMULPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULPD takes 3 or 4 operands") + } + // VMULPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMULPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMULPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMULPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULPD") + } + return p +} + +// VMULPS performs "Multiply Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VMULPS +// Supported forms : (11 forms) +// +// * VMULPS xmm, xmm, xmm [AVX] +// * VMULPS m128, xmm, xmm [AVX] +// * VMULPS ymm, ymm, ymm [AVX] +// * VMULPS m256, ymm, ymm [AVX] +// * VMULPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VMULPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VMULPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VMULPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VMULPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VMULPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULPS takes 3 or 4 operands") + } + // VMULPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VMULPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VMULPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VMULPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULPS") + } + return p +} + +// VMULSD performs "Multiply Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VMULSD +// Supported forms : (5 forms) +// +// * VMULSD xmm, xmm, xmm [AVX] +// * VMULSD m64, xmm, xmm [AVX] +// * VMULSD m64, xmm, xmm{k}{z} [AVX512F] +// * VMULSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMULSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMULSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULSD takes 3 or 4 operands") + } + // VMULSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VMULSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULSD") + } + return p +} + +// VMULSS performs "Multiply Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VMULSS +// Supported forms : (5 forms) +// +// * VMULSS xmm, xmm, xmm [AVX] +// * VMULSS m32, xmm, xmm [AVX] +// * VMULSS m32, xmm, xmm{k}{z} [AVX512F] +// * VMULSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VMULSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VMULSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VMULSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VMULSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VMULSS takes 3 or 4 operands") + } + // VMULSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VMULSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VMULSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x59) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VMULSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x59) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VMULSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x59) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VMULSS") + } + return p +} + +// VORPD performs "Bitwise Logical OR of Double-Precision Floating-Point Values". +// +// Mnemonic : VORPD +// Supported forms : (10 forms) +// +// * VORPD xmm, xmm, xmm [AVX] +// * VORPD m128, xmm, xmm [AVX] +// * VORPD ymm, ymm, ymm [AVX] +// * VORPD m256, ymm, ymm [AVX] +// * VORPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VORPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VORPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VORPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VORPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VORPD", 3, Operands { v0, v1, v2 }) + // VORPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VORPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VORPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VORPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VORPD") + } + return p +} + +// VORPS performs "Bitwise Logical OR of Single-Precision Floating-Point Values". +// +// Mnemonic : VORPS +// Supported forms : (10 forms) +// +// * VORPS xmm, xmm, xmm [AVX] +// * VORPS m128, xmm, xmm [AVX] +// * VORPS ymm, ymm, ymm [AVX] +// * VORPS m256, ymm, ymm [AVX] +// * VORPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VORPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VORPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VORPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VORPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VORPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VORPS", 3, Operands { v0, v1, v2 }) + // VORPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VORPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VORPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VORPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VORPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VORPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VORPS") + } + return p +} + +// VPABSB performs "Packed Absolute Value of Byte Integers". +// +// Mnemonic : VPABSB +// Supported forms : (10 forms) +// +// * VPABSB xmm, xmm [AVX] +// * VPABSB m128, xmm [AVX] +// * VPABSB ymm, ymm [AVX2] +// * VPABSB m256, ymm [AVX2] +// * VPABSB zmm, zmm{k}{z} [AVX512BW] +// * VPABSB m512, zmm{k}{z} [AVX512BW] +// * VPABSB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSB ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPABSB m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSB m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPABSB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSB", 2, Operands { v0, v1 }) + // VPABSB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSB ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSB zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSB m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSB m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1c) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSB") + } + return p +} + +// VPABSD performs "Packed Absolute Value of Doubleword Integers". +// +// Mnemonic : VPABSD +// Supported forms : (10 forms) +// +// * VPABSD xmm, xmm [AVX] +// * VPABSD m128, xmm [AVX] +// * VPABSD ymm, ymm [AVX2] +// * VPABSD m256, ymm [AVX2] +// * VPABSD m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPABSD zmm, zmm{k}{z} [AVX512F] +// * VPABSD m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSD m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPABSD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPABSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSD", 2, Operands { v0, v1 }) + // VPABSD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSD m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1e) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPABSD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSD") + } + return p +} + +// VPABSQ performs "Packed Absolute Value of Quadword Integers". +// +// Mnemonic : VPABSQ +// Supported forms : (6 forms) +// +// * VPABSQ m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPABSQ zmm, zmm{k}{z} [AVX512F] +// * VPABSQ m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSQ m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPABSQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPABSQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPABSQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSQ", 2, Operands { v0, v1 }) + // VPABSQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1f) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSQ m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1f) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSQ m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x1f) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPABSQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSQ") + } + return p +} + +// VPABSW performs "Packed Absolute Value of Word Integers". +// +// Mnemonic : VPABSW +// Supported forms : (10 forms) +// +// * VPABSW xmm, xmm [AVX] +// * VPABSW m128, xmm [AVX] +// * VPABSW ymm, ymm [AVX2] +// * VPABSW m256, ymm [AVX2] +// * VPABSW zmm, zmm{k}{z} [AVX512BW] +// * VPABSW m512, zmm{k}{z} [AVX512BW] +// * VPABSW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSW ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPABSW m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPABSW m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPABSW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPABSW", 2, Operands { v0, v1 }) + // VPABSW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSW ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPABSW zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPABSW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x1d) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPABSW m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPABSW m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x1d) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPABSW") + } + return p +} + +// VPACKSSDW performs "Pack Doublewords into Words with Signed Saturation". +// +// Mnemonic : VPACKSSDW +// Supported forms : (10 forms) +// +// * VPACKSSDW xmm, xmm, xmm [AVX] +// * VPACKSSDW m128, xmm, xmm [AVX] +// * VPACKSSDW ymm, ymm, ymm [AVX2] +// * VPACKSSDW m256, ymm, ymm [AVX2] +// * VPACKSSDW m512/m32bcst, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSDW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSDW m128/m32bcst, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSDW m256/m32bcst, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKSSDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKSSDW", 3, Operands { v0, v1, v2 }) + // VPACKSSDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSDW m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKSSDW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKSSDW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSDW m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPACKSSDW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKSSDW") + } + return p +} + +// VPACKSSWB performs "Pack Words into Bytes with Signed Saturation". +// +// Mnemonic : VPACKSSWB +// Supported forms : (10 forms) +// +// * VPACKSSWB xmm, xmm, xmm [AVX] +// * VPACKSSWB m128, xmm, xmm [AVX] +// * VPACKSSWB ymm, ymm, ymm [AVX2] +// * VPACKSSWB m256, ymm, ymm [AVX2] +// * VPACKSSWB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSWB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPACKSSWB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSWB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSWB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKSSWB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKSSWB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKSSWB", 3, Operands { v0, v1, v2 }) + // VPACKSSWB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSWB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKSSWB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKSSWB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKSSWB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKSSWB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKSSWB") + } + return p +} + +// VPACKUSDW performs "Pack Doublewords into Words with Unsigned Saturation". +// +// Mnemonic : VPACKUSDW +// Supported forms : (10 forms) +// +// * VPACKUSDW xmm, xmm, xmm [AVX] +// * VPACKUSDW m128, xmm, xmm [AVX] +// * VPACKUSDW ymm, ymm, ymm [AVX2] +// * VPACKUSDW m256, ymm, ymm [AVX2] +// * VPACKUSDW m512/m32bcst, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSDW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSDW m128/m32bcst, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSDW m256/m32bcst, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKUSDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKUSDW", 3, Operands { v0, v1, v2 }) + // VPACKUSDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSDW m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKUSDW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKUSDW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSDW m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPACKUSDW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x2b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKUSDW") + } + return p +} + +// VPACKUSWB performs "Pack Words into Bytes with Unsigned Saturation". +// +// Mnemonic : VPACKUSWB +// Supported forms : (10 forms) +// +// * VPACKUSWB xmm, xmm, xmm [AVX] +// * VPACKUSWB m128, xmm, xmm [AVX] +// * VPACKUSWB ymm, ymm, ymm [AVX2] +// * VPACKUSWB m256, ymm, ymm [AVX2] +// * VPACKUSWB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSWB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPACKUSWB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSWB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSWB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPACKUSWB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPACKUSWB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPACKUSWB", 3, Operands { v0, v1, v2 }) + // VPACKUSWB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSWB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPACKUSWB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPACKUSWB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPACKUSWB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x67) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPACKUSWB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x67) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPACKUSWB") + } + return p +} + +// VPADDB performs "Add Packed Byte Integers". +// +// Mnemonic : VPADDB +// Supported forms : (10 forms) +// +// * VPADDB xmm, xmm, xmm [AVX] +// * VPADDB m128, xmm, xmm [AVX] +// * VPADDB ymm, ymm, ymm [AVX2] +// * VPADDB m256, ymm, ymm [AVX2] +// * VPADDB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDB", 3, Operands { v0, v1, v2 }) + // VPADDB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDB") + } + return p +} + +// VPADDD performs "Add Packed Doubleword Integers". +// +// Mnemonic : VPADDD +// Supported forms : (10 forms) +// +// * VPADDD xmm, xmm, xmm [AVX] +// * VPADDD m128, xmm, xmm [AVX] +// * VPADDD ymm, ymm, ymm [AVX2] +// * VPADDD m256, ymm, ymm [AVX2] +// * VPADDD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPADDD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPADDD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPADDD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDD", 3, Operands { v0, v1, v2 }) + // VPADDD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfe) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPADDD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfe) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDD") + } + return p +} + +// VPADDQ performs "Add Packed Quadword Integers". +// +// Mnemonic : VPADDQ +// Supported forms : (10 forms) +// +// * VPADDQ xmm, xmm, xmm [AVX] +// * VPADDQ m128, xmm, xmm [AVX] +// * VPADDQ ymm, ymm, ymm [AVX2] +// * VPADDQ m256, ymm, ymm [AVX2] +// * VPADDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPADDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPADDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPADDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPADDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPADDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDQ", 3, Operands { v0, v1, v2 }) + // VPADDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xd4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPADDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDQ") + } + return p +} + +// VPADDSB performs "Add Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : VPADDSB +// Supported forms : (10 forms) +// +// * VPADDSB xmm, xmm, xmm [AVX] +// * VPADDSB m128, xmm, xmm [AVX] +// * VPADDSB ymm, ymm, ymm [AVX2] +// * VPADDSB m256, ymm, ymm [AVX2] +// * VPADDSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDSB", 3, Operands { v0, v1, v2 }) + // VPADDSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xec) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xec) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDSB") + } + return p +} + +// VPADDSW performs "Add Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPADDSW +// Supported forms : (10 forms) +// +// * VPADDSW xmm, xmm, xmm [AVX] +// * VPADDSW m128, xmm, xmm [AVX] +// * VPADDSW ymm, ymm, ymm [AVX2] +// * VPADDSW m256, ymm, ymm [AVX2] +// * VPADDSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDSW", 3, Operands { v0, v1, v2 }) + // VPADDSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xed) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xed) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDSW") + } + return p +} + +// VPADDUSB performs "Add Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : VPADDUSB +// Supported forms : (10 forms) +// +// * VPADDUSB xmm, xmm, xmm [AVX] +// * VPADDUSB m128, xmm, xmm [AVX] +// * VPADDUSB ymm, ymm, ymm [AVX2] +// * VPADDUSB m256, ymm, ymm [AVX2] +// * VPADDUSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDUSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDUSB", 3, Operands { v0, v1, v2 }) + // VPADDUSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDUSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDUSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdc) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDUSB") + } + return p +} + +// VPADDUSW performs "Add Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : VPADDUSW +// Supported forms : (10 forms) +// +// * VPADDUSW xmm, xmm, xmm [AVX] +// * VPADDUSW m128, xmm, xmm [AVX] +// * VPADDUSW ymm, ymm, ymm [AVX2] +// * VPADDUSW m256, ymm, ymm [AVX2] +// * VPADDUSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDUSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDUSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDUSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDUSW", 3, Operands { v0, v1, v2 }) + // VPADDUSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDUSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDUSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDUSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDUSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xdd) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDUSW") + } + return p +} + +// VPADDW performs "Add Packed Word Integers". +// +// Mnemonic : VPADDW +// Supported forms : (10 forms) +// +// * VPADDW xmm, xmm, xmm [AVX] +// * VPADDW m128, xmm, xmm [AVX] +// * VPADDW ymm, ymm, ymm [AVX2] +// * VPADDW m256, ymm, ymm [AVX2] +// * VPADDW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPADDW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPADDW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPADDW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPADDW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPADDW", 3, Operands { v0, v1, v2 }) + // VPADDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPADDW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPADDW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPADDW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPADDW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xfd) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPADDW") + } + return p +} + +// VPALIGNR performs "Packed Align Right". +// +// Mnemonic : VPALIGNR +// Supported forms : (10 forms) +// +// * VPALIGNR imm8, xmm, xmm, xmm [AVX] +// * VPALIGNR imm8, m128, xmm, xmm [AVX] +// * VPALIGNR imm8, ymm, ymm, ymm [AVX2] +// * VPALIGNR imm8, m256, ymm, ymm [AVX2] +// * VPALIGNR imm8, zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPALIGNR imm8, m512, zmm, zmm{k}{z} [AVX512BW] +// * VPALIGNR imm8, xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPALIGNR imm8, m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPALIGNR imm8, ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPALIGNR imm8, m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPALIGNR(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPALIGNR", 4, Operands { v0, v1, v2, v3 }) + // VPALIGNR imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m512, zmm, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m128, xmm, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPALIGNR imm8, m256, ymm, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPALIGNR") + } + return p +} + +// VPAND performs "Packed Bitwise Logical AND". +// +// Mnemonic : VPAND +// Supported forms : (4 forms) +// +// * VPAND xmm, xmm, xmm [AVX] +// * VPAND m128, xmm, xmm [AVX] +// * VPAND ymm, ymm, ymm [AVX2] +// * VPAND m256, ymm, ymm [AVX2] +// +func (self *Program) VPAND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPAND", 3, Operands { v0, v1, v2 }) + // VPAND xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAND m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAND ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAND m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPAND") + } + return p +} + +// VPANDD performs "Bitwise Logical AND of Packed Doubleword Integers". +// +// Mnemonic : VPANDD +// Supported forms : (6 forms) +// +// * VPANDD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDD", 3, Operands { v0, v1, v2 }) + // VPANDD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDD") + } + return p +} + +// VPANDN performs "Packed Bitwise Logical AND NOT". +// +// Mnemonic : VPANDN +// Supported forms : (4 forms) +// +// * VPANDN xmm, xmm, xmm [AVX] +// * VPANDN m128, xmm, xmm [AVX] +// * VPANDN ymm, ymm, ymm [AVX2] +// * VPANDN m256, ymm, ymm [AVX2] +// +func (self *Program) VPANDN(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDN", 3, Operands { v0, v1, v2 }) + // VPANDN xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDN m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPANDN ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDN m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDN") + } + return p +} + +// VPANDND performs "Bitwise Logical AND NOT of Packed Doubleword Integers". +// +// Mnemonic : VPANDND +// Supported forms : (6 forms) +// +// * VPANDND m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDND zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDND m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDND xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDND m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDND ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDND", 3, Operands { v0, v1, v2 }) + // VPANDND m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDND zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDND m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDND xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDND m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDND ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDND") + } + return p +} + +// VPANDNQ performs "Bitwise Logical AND NOT of Packed Quadword Integers". +// +// Mnemonic : VPANDNQ +// Supported forms : (6 forms) +// +// * VPANDNQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDNQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDNQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDNQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDNQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDNQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDNQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDNQ", 3, Operands { v0, v1, v2 }) + // VPANDNQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDNQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDNQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDNQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDNQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdf) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDNQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdf) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDNQ") + } + return p +} + +// VPANDQ performs "Bitwise Logical AND of Packed Quadword Integers". +// +// Mnemonic : VPANDQ +// Supported forms : (6 forms) +// +// * VPANDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPANDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPANDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPANDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPANDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPANDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPANDQ", 3, Operands { v0, v1, v2 }) + // VPANDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPANDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPANDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPANDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xdb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPANDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPANDQ") + } + return p +} + +// VPAVGB performs "Average Packed Byte Integers". +// +// Mnemonic : VPAVGB +// Supported forms : (10 forms) +// +// * VPAVGB xmm, xmm, xmm [AVX] +// * VPAVGB m128, xmm, xmm [AVX] +// * VPAVGB ymm, ymm, ymm [AVX2] +// * VPAVGB m256, ymm, ymm [AVX2] +// * VPAVGB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPAVGB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPAVGB", 3, Operands { v0, v1, v2 }) + // VPAVGB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPAVGB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPAVGB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe0) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPAVGB") + } + return p +} + +// VPAVGW performs "Average Packed Word Integers". +// +// Mnemonic : VPAVGW +// Supported forms : (10 forms) +// +// * VPAVGW xmm, xmm, xmm [AVX] +// * VPAVGW m128, xmm, xmm [AVX] +// * VPAVGW ymm, ymm, ymm [AVX2] +// * VPAVGW m256, ymm, ymm [AVX2] +// * VPAVGW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPAVGW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPAVGW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPAVGW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPAVGW", 3, Operands { v0, v1, v2 }) + // VPAVGW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPAVGW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPAVGW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPAVGW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPAVGW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPAVGW") + } + return p +} + +// VPBLENDD performs "Blend Packed Doublewords". +// +// Mnemonic : VPBLENDD +// Supported forms : (4 forms) +// +// * VPBLENDD imm8, xmm, xmm, xmm [AVX2] +// * VPBLENDD imm8, m128, xmm, xmm [AVX2] +// * VPBLENDD imm8, ymm, ymm, ymm [AVX2] +// * VPBLENDD imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VPBLENDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPBLENDD", 4, Operands { v0, v1, v2, v3 }) + // VPBLENDD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x02) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDD imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDD imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x02) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDD") + } + return p +} + +// VPBLENDMB performs "Blend Byte Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMB +// Supported forms : (6 forms) +// +// * VPBLENDMB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBLENDMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMB", 3, Operands { v0, v1, v2 }) + // VPBLENDMB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMB") + } + return p +} + +// VPBLENDMD performs "Blend Doubleword Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMD +// Supported forms : (6 forms) +// +// * VPBLENDMD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBLENDMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMD", 3, Operands { v0, v1, v2 }) + // VPBLENDMD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPBLENDMD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMD") + } + return p +} + +// VPBLENDMQ performs "Blend Quadword Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMQ +// Supported forms : (6 forms) +// +// * VPBLENDMQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPBLENDMQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBLENDMQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBLENDMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMQ", 3, Operands { v0, v1, v2 }) + // VPBLENDMQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPBLENDMQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMQ") + } + return p +} + +// VPBLENDMW performs "Blend Word Vectors Using an OpMask Control". +// +// Mnemonic : VPBLENDMW +// Supported forms : (6 forms) +// +// * VPBLENDMW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPBLENDMW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBLENDMW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBLENDMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPBLENDMW", 3, Operands { v0, v1, v2 }) + // VPBLENDMW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPBLENDMW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPBLENDMW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPBLENDMW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDMW") + } + return p +} + +// VPBLENDVB performs "Variable Blend Packed Bytes". +// +// Mnemonic : VPBLENDVB +// Supported forms : (4 forms) +// +// * VPBLENDVB xmm, xmm, xmm, xmm [AVX] +// * VPBLENDVB xmm, m128, xmm, xmm [AVX] +// * VPBLENDVB ymm, ymm, ymm, ymm [AVX2] +// * VPBLENDVB ymm, m256, ymm, ymm [AVX2] +// +func (self *Program) VPBLENDVB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPBLENDVB", 4, Operands { v0, v1, v2, v3 }) + // VPBLENDVB xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPBLENDVB xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPBLENDVB ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPBLENDVB ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x4c) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDVB") + } + return p +} + +// VPBLENDW performs "Blend Packed Words". +// +// Mnemonic : VPBLENDW +// Supported forms : (4 forms) +// +// * VPBLENDW imm8, xmm, xmm, xmm [AVX] +// * VPBLENDW imm8, m128, xmm, xmm [AVX] +// * VPBLENDW imm8, ymm, ymm, ymm [AVX2] +// * VPBLENDW imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VPBLENDW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPBLENDW", 4, Operands { v0, v1, v2, v3 }) + // VPBLENDW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDW imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPBLENDW imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBLENDW") + } + return p +} + +// VPBROADCASTB performs "Broadcast Byte Integer". +// +// Mnemonic : VPBROADCASTB +// Supported forms : (13 forms) +// +// * VPBROADCASTB xmm, xmm [AVX2] +// * VPBROADCASTB m8, xmm [AVX2] +// * VPBROADCASTB xmm, ymm [AVX2] +// * VPBROADCASTB m8, ymm [AVX2] +// * VPBROADCASTB r32, zmm{k}{z} [AVX512BW] +// * VPBROADCASTB xmm, zmm{k}{z} [AVX512BW] +// * VPBROADCASTB m8, zmm{k}{z} [AVX512BW] +// * VPBROADCASTB r32, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB r32, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB m8, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTB m8, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBROADCASTB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTB", 2, Operands { v0, v1 }) + // VPBROADCASTB xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, xmm + if isM8(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, ymm + if isM8(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB r32, zmm{k}{z} + if isReg32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, zmm{k}{z} + if isM8(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB r32, xmm{k}{z} + if isReg32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB r32, ymm{k}{z} + if isReg32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x78) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTB m8, xmm{k}{z} + if isM8(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTB m8, ymm{k}{z} + if isM8(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x78) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTB") + } + return p +} + +// VPBROADCASTD performs "Broadcast Doubleword Integer". +// +// Mnemonic : VPBROADCASTD +// Supported forms : (13 forms) +// +// * VPBROADCASTD xmm, xmm [AVX2] +// * VPBROADCASTD m32, xmm [AVX2] +// * VPBROADCASTD xmm, ymm [AVX2] +// * VPBROADCASTD m32, ymm [AVX2] +// * VPBROADCASTD r32, zmm{k}{z} [AVX512F] +// * VPBROADCASTD xmm, zmm{k}{z} [AVX512F] +// * VPBROADCASTD m32, zmm{k}{z} [AVX512F] +// * VPBROADCASTD r32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD r32, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTD m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBROADCASTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTD", 2, Operands { v0, v1 }) + // VPBROADCASTD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTD r32, zmm{k}{z} + if isReg32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, zmm{k}{z} + if isM32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPBROADCASTD r32, xmm{k}{z} + if isReg32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD r32, ymm{k}{z} + if isReg32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x58) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTD m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPBROADCASTD m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x58) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTD") + } + return p +} + +// VPBROADCASTMB2Q performs "Broadcast Low Byte of Mask Register to Packed Quadword Values". +// +// Mnemonic : VPBROADCASTMB2Q +// Supported forms : (3 forms) +// +// * VPBROADCASTMB2Q k, xmm [AVX512CD,AVX512VL] +// * VPBROADCASTMB2Q k, ymm [AVX512CD,AVX512VL] +// * VPBROADCASTMB2Q k, zmm [AVX512CD] +// +func (self *Program) VPBROADCASTMB2Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTMB2Q", 2, Operands { v0, v1 }) + // VPBROADCASTMB2Q k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMB2Q k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMB2Q k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x2a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTMB2Q") + } + return p +} + +// VPBROADCASTMW2D performs "Broadcast Low Word of Mask Register to Packed Doubleword Values". +// +// Mnemonic : VPBROADCASTMW2D +// Supported forms : (3 forms) +// +// * VPBROADCASTMW2D k, xmm [AVX512CD,AVX512VL] +// * VPBROADCASTMW2D k, ymm [AVX512CD,AVX512VL] +// * VPBROADCASTMW2D k, zmm [AVX512CD] +// +func (self *Program) VPBROADCASTMW2D(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTMW2D", 2, Operands { v0, v1 }) + // VPBROADCASTMW2D k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMW2D k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTMW2D k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTMW2D") + } + return p +} + +// VPBROADCASTQ performs "Broadcast Quadword Integer". +// +// Mnemonic : VPBROADCASTQ +// Supported forms : (13 forms) +// +// * VPBROADCASTQ xmm, xmm [AVX2] +// * VPBROADCASTQ m64, xmm [AVX2] +// * VPBROADCASTQ xmm, ymm [AVX2] +// * VPBROADCASTQ m64, ymm [AVX2] +// * VPBROADCASTQ r64, zmm{k}{z} [AVX512F] +// * VPBROADCASTQ xmm, zmm{k}{z} [AVX512F] +// * VPBROADCASTQ m64, zmm{k}{z} [AVX512F] +// * VPBROADCASTQ r64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ r64, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPBROADCASTQ m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPBROADCASTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTQ", 2, Operands { v0, v1 }) + // VPBROADCASTQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTQ r64, zmm{k}{z} + if isReg64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPBROADCASTQ r64, xmm{k}{z} + if isReg64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ r64, ymm{k}{z} + if isReg64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x59) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTQ m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPBROADCASTQ m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x59) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTQ") + } + return p +} + +// VPBROADCASTW performs "Broadcast Word Integer". +// +// Mnemonic : VPBROADCASTW +// Supported forms : (13 forms) +// +// * VPBROADCASTW xmm, xmm [AVX2] +// * VPBROADCASTW m16, xmm [AVX2] +// * VPBROADCASTW xmm, ymm [AVX2] +// * VPBROADCASTW m16, ymm [AVX2] +// * VPBROADCASTW r32, zmm{k}{z} [AVX512BW] +// * VPBROADCASTW xmm, zmm{k}{z} [AVX512BW] +// * VPBROADCASTW m16, zmm{k}{z} [AVX512BW] +// * VPBROADCASTW r32, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW r32, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW m16, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPBROADCASTW m16, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPBROADCASTW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPBROADCASTW", 2, Operands { v0, v1 }) + // VPBROADCASTW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTW xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, ymm + if isM16(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPBROADCASTW r32, zmm{k}{z} + if isReg32(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, zmm{k}{z} + if isM16(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPBROADCASTW r32, xmm{k}{z} + if isReg32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW r32, ymm{k}{z} + if isReg32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x7b) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x79) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPBROADCASTW m16, xmm{k}{z} + if isM16(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPBROADCASTW m16, ymm{k}{z} + if isM16(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x79) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + if p.len == 0 { + panic("invalid operands for VPBROADCASTW") + } + return p +} + +// VPCLMULQDQ performs "Carry-Less Quadword Multiplication". +// +// Mnemonic : VPCLMULQDQ +// Supported forms : (2 forms) +// +// * VPCLMULQDQ imm8, xmm, xmm, xmm [AVX,PCLMULQDQ] +// * VPCLMULQDQ imm8, m128, xmm, xmm [AVX,PCLMULQDQ] +// +func (self *Program) VPCLMULQDQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCLMULQDQ", 4, Operands { v0, v1, v2, v3 }) + // VPCLMULQDQ imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX | ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x44) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCLMULQDQ imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX | ISA_PCLMULQDQ) + p.domain = DomainCrypto + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x44) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCLMULQDQ") + } + return p +} + +// VPCMOV performs "Packed Conditional Move". +// +// Mnemonic : VPCMOV +// Supported forms : (6 forms) +// +// * VPCMOV xmm, xmm, xmm, xmm [XOP] +// * VPCMOV m128, xmm, xmm, xmm [XOP] +// * VPCMOV xmm, m128, xmm, xmm [XOP] +// * VPCMOV ymm, ymm, ymm, ymm [XOP] +// * VPCMOV m256, ymm, ymm, ymm [XOP] +// * VPCMOV ymm, m256, ymm, ymm [XOP] +// +func (self *Program) VPCMOV(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMOV", 4, Operands { v0, v1, v2, v3 }) + // VPCMOV xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x80, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPCMOV ymm, ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfc ^ (hlcode(v[2]) << 3)) + m.emit(0xa2) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV m256, ymm, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x84, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPCMOV ymm, m256, ymm, ymm + if isYMM(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x04, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa2) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMOV") + } + return p +} + +// VPCMPB performs "Compare Packed Signed Byte Values". +// +// Mnemonic : VPCMPB +// Supported forms : (6 forms) +// +// * VPCMPB imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPB imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPB imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPB imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPB imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPB imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPB", 4, Operands { v0, v1, v2, v3 }) + // VPCMPB imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPB imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPB") + } + return p +} + +// VPCMPD performs "Compare Packed Signed Doubleword Values". +// +// Mnemonic : VPCMPD +// Supported forms : (6 forms) +// +// * VPCMPD imm8, m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPD imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPD imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPD imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPD", 4, Operands { v0, v1, v2, v3 }) + // VPCMPD imm8, m512/m32bcst, zmm, k{k} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, m128/m32bcst, xmm, k{k} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, m256/m32bcst, ymm, k{k} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPD imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPD") + } + return p +} + +// VPCMPEQB performs "Compare Packed Byte Data for Equality". +// +// Mnemonic : VPCMPEQB +// Supported forms : (10 forms) +// +// * VPCMPEQB xmm, xmm, xmm [AVX] +// * VPCMPEQB m128, xmm, xmm [AVX] +// * VPCMPEQB ymm, ymm, ymm [AVX2] +// * VPCMPEQB m256, ymm, ymm [AVX2] +// * VPCMPEQB zmm, zmm, k{k} [AVX512BW] +// * VPCMPEQB m512, zmm, k{k} [AVX512BW] +// * VPCMPEQB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPEQB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQB", 3, Operands { v0, v1, v2 }) + // VPCMPEQB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x74) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x74) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQB") + } + return p +} + +// VPCMPEQD performs "Compare Packed Doubleword Data for Equality". +// +// Mnemonic : VPCMPEQD +// Supported forms : (10 forms) +// +// * VPCMPEQD xmm, xmm, xmm [AVX] +// * VPCMPEQD m128, xmm, xmm [AVX] +// * VPCMPEQD ymm, ymm, ymm [AVX2] +// * VPCMPEQD m256, ymm, ymm [AVX2] +// * VPCMPEQD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPEQD zmm, zmm, k{k} [AVX512F] +// * VPCMPEQD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPEQD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQD", 3, Operands { v0, v1, v2 }) + // VPCMPEQD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPEQD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQD") + } + return p +} + +// VPCMPEQQ performs "Compare Packed Quadword Data for Equality". +// +// Mnemonic : VPCMPEQQ +// Supported forms : (10 forms) +// +// * VPCMPEQQ xmm, xmm, xmm [AVX] +// * VPCMPEQQ m128, xmm, xmm [AVX] +// * VPCMPEQQ ymm, ymm, ymm [AVX2] +// * VPCMPEQQ m256, ymm, ymm [AVX2] +// * VPCMPEQQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPEQQ zmm, zmm, k{k} [AVX512F] +// * VPCMPEQQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPEQQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPEQQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQQ", 3, Operands { v0, v1, v2 }) + // VPCMPEQQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x29) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPEQQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x29) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQQ") + } + return p +} + +// VPCMPEQW performs "Compare Packed Word Data for Equality". +// +// Mnemonic : VPCMPEQW +// Supported forms : (10 forms) +// +// * VPCMPEQW xmm, xmm, xmm [AVX] +// * VPCMPEQW m128, xmm, xmm [AVX] +// * VPCMPEQW ymm, ymm, ymm [AVX2] +// * VPCMPEQW m256, ymm, ymm [AVX2] +// * VPCMPEQW zmm, zmm, k{k} [AVX512BW] +// * VPCMPEQW m512, zmm, k{k} [AVX512BW] +// * VPCMPEQW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPEQW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPEQW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPEQW", 3, Operands { v0, v1, v2 }) + // VPCMPEQW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPEQW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPEQW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPEQW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPEQW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPEQW") + } + return p +} + +// VPCMPESTRI performs "Packed Compare Explicit Length Strings, Return Index". +// +// Mnemonic : VPCMPESTRI +// Supported forms : (2 forms) +// +// * VPCMPESTRI imm8, xmm, xmm [AVX] +// * VPCMPESTRI imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPESTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPESTRI", 3, Operands { v0, v1, v2 }) + // VPCMPESTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPESTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPESTRI") + } + return p +} + +// VPCMPESTRM performs "Packed Compare Explicit Length Strings, Return Mask". +// +// Mnemonic : VPCMPESTRM +// Supported forms : (2 forms) +// +// * VPCMPESTRM imm8, xmm, xmm [AVX] +// * VPCMPESTRM imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPESTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPESTRM", 3, Operands { v0, v1, v2 }) + // VPCMPESTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPESTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPESTRM") + } + return p +} + +// VPCMPGTB performs "Compare Packed Signed Byte Integers for Greater Than". +// +// Mnemonic : VPCMPGTB +// Supported forms : (10 forms) +// +// * VPCMPGTB xmm, xmm, xmm [AVX] +// * VPCMPGTB m128, xmm, xmm [AVX] +// * VPCMPGTB ymm, ymm, ymm [AVX2] +// * VPCMPGTB m256, ymm, ymm [AVX2] +// * VPCMPGTB zmm, zmm, k{k} [AVX512BW] +// * VPCMPGTB m512, zmm, k{k} [AVX512BW] +// * VPCMPGTB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPGTB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTB", 3, Operands { v0, v1, v2 }) + // VPCMPGTB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x64) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x64) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTB") + } + return p +} + +// VPCMPGTD performs "Compare Packed Signed Doubleword Integers for Greater Than". +// +// Mnemonic : VPCMPGTD +// Supported forms : (10 forms) +// +// * VPCMPGTD xmm, xmm, xmm [AVX] +// * VPCMPGTD m128, xmm, xmm [AVX] +// * VPCMPGTD ymm, ymm, ymm [AVX2] +// * VPCMPGTD m256, ymm, ymm [AVX2] +// * VPCMPGTD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPGTD zmm, zmm, k{k} [AVX512F] +// * VPCMPGTD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPGTD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTD", 3, Operands { v0, v1, v2 }) + // VPCMPGTD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x66) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPGTD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x66) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTD") + } + return p +} + +// VPCMPGTQ performs "Compare Packed Data for Greater Than". +// +// Mnemonic : VPCMPGTQ +// Supported forms : (10 forms) +// +// * VPCMPGTQ xmm, xmm, xmm [AVX] +// * VPCMPGTQ m128, xmm, xmm [AVX] +// * VPCMPGTQ ymm, ymm, ymm [AVX2] +// * VPCMPGTQ m256, ymm, ymm [AVX2] +// * VPCMPGTQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPGTQ zmm, zmm, k{k} [AVX512F] +// * VPCMPGTQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPGTQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPGTQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTQ", 3, Operands { v0, v1, v2 }) + // VPCMPGTQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x37) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPCMPGTQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x37) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTQ") + } + return p +} + +// VPCMPGTW performs "Compare Packed Signed Word Integers for Greater Than". +// +// Mnemonic : VPCMPGTW +// Supported forms : (10 forms) +// +// * VPCMPGTW xmm, xmm, xmm [AVX] +// * VPCMPGTW m128, xmm, xmm [AVX] +// * VPCMPGTW ymm, ymm, ymm [AVX2] +// * VPCMPGTW m256, ymm, ymm [AVX2] +// * VPCMPGTW zmm, zmm, k{k} [AVX512BW] +// * VPCMPGTW m512, zmm, k{k} [AVX512BW] +// * VPCMPGTW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPGTW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPGTW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPGTW", 3, Operands { v0, v1, v2 }) + // VPCMPGTW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPCMPGTW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPCMPGTW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPCMPGTW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x65) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPCMPGTW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x65) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPGTW") + } + return p +} + +// VPCMPISTRI performs "Packed Compare Implicit Length Strings, Return Index". +// +// Mnemonic : VPCMPISTRI +// Supported forms : (2 forms) +// +// * VPCMPISTRI imm8, xmm, xmm [AVX] +// * VPCMPISTRI imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPISTRI(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPISTRI", 3, Operands { v0, v1, v2 }) + // VPCMPISTRI imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x63) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPISTRI imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x63) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPISTRI") + } + return p +} + +// VPCMPISTRM performs "Packed Compare Implicit Length Strings, Return Mask". +// +// Mnemonic : VPCMPISTRM +// Supported forms : (2 forms) +// +// * VPCMPISTRM imm8, xmm, xmm [AVX] +// * VPCMPISTRM imm8, m128, xmm [AVX] +// +func (self *Program) VPCMPISTRM(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPCMPISTRM", 3, Operands { v0, v1, v2 }) + // VPCMPISTRM imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPISTRM imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPISTRM") + } + return p +} + +// VPCMPQ performs "Compare Packed Signed Quadword Values". +// +// Mnemonic : VPCMPQ +// Supported forms : (6 forms) +// +// * VPCMPQ imm8, m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPQ imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPQ imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPQ imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPQ imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPQ imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPQ", 4, Operands { v0, v1, v2, v3 }) + // VPCMPQ imm8, m512/m64bcst, zmm, k{k} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, m128/m64bcst, xmm, k{k} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, m256/m64bcst, ymm, k{k} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPQ imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPQ") + } + return p +} + +// VPCMPUB performs "Compare Packed Unsigned Byte Values". +// +// Mnemonic : VPCMPUB +// Supported forms : (6 forms) +// +// * VPCMPUB imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPUB imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPUB imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUB imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUB imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUB imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPUB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUB", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUB imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUB imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUB") + } + return p +} + +// VPCMPUD performs "Compare Packed Unsigned Doubleword Values". +// +// Mnemonic : VPCMPUD +// Supported forms : (6 forms) +// +// * VPCMPUD imm8, m512/m32bcst, zmm, k{k} [AVX512F] +// * VPCMPUD imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPUD imm8, m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUD imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUD imm8, m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPUD imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPUD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUD", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUD imm8, m512/m32bcst, zmm, k{k} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, m128/m32bcst, xmm, k{k} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, m256/m32bcst, ymm, k{k} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUD imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUD") + } + return p +} + +// VPCMPUQ performs "Compare Packed Unsigned Quadword Values". +// +// Mnemonic : VPCMPUQ +// Supported forms : (6 forms) +// +// * VPCMPUQ imm8, m512/m64bcst, zmm, k{k} [AVX512F] +// * VPCMPUQ imm8, zmm, zmm, k{k} [AVX512F] +// * VPCMPUQ imm8, m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUQ imm8, xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPCMPUQ imm8, m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPCMPUQ imm8, ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPCMPUQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUQ", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUQ imm8, m512/m64bcst, zmm, k{k} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, m128/m64bcst, xmm, k{k} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, m256/m64bcst, ymm, k{k} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, bcode(v[1])) + m.emit(0x1e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUQ imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x1e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUQ") + } + return p +} + +// VPCMPUW performs "Compare Packed Unsigned Word Values". +// +// Mnemonic : VPCMPUW +// Supported forms : (6 forms) +// +// * VPCMPUW imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPUW imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPUW imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUW imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUW imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPUW imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPUW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPUW", 4, Operands { v0, v1, v2, v3 }) + // VPCMPUW imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPUW imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3e) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPUW") + } + return p +} + +// VPCMPW performs "Compare Packed Signed Word Values". +// +// Mnemonic : VPCMPW +// Supported forms : (6 forms) +// +// * VPCMPW imm8, zmm, zmm, k{k} [AVX512BW] +// * VPCMPW imm8, m512, zmm, k{k} [AVX512BW] +// * VPCMPW imm8, xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPW imm8, m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPCMPW imm8, ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPCMPW imm8, m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPCMPW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCMPW", 4, Operands { v0, v1, v2, v3 }) + // VPCMPW imm8, zmm, zmm, k{k} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, m512, zmm, k{k} + if isImm8(v0) && isM512(v1) && isZMM(v2) && isKk(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, xmm, xmm, k{k} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, m128, xmm, k{k} + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, ymm, ymm, k{k} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCMPW imm8, m256, ymm, k{k} + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) && isKk(v3) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), 0, 0) + m.emit(0x3f) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCMPW") + } + return p +} + +// VPCOMB performs "Compare Packed Signed Byte Integers". +// +// Mnemonic : VPCOMB +// Supported forms : (2 forms) +// +// * VPCOMB imm8, xmm, xmm, xmm [XOP] +// * VPCOMB imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMB", 4, Operands { v0, v1, v2, v3 }) + // VPCOMB imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMB imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xcc) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMB") + } + return p +} + +// VPCOMD performs "Compare Packed Signed Doubleword Integers". +// +// Mnemonic : VPCOMD +// Supported forms : (2 forms) +// +// * VPCOMD imm8, xmm, xmm, xmm [XOP] +// * VPCOMD imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMD", 4, Operands { v0, v1, v2, v3 }) + // VPCOMD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xce) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xce) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMD") + } + return p +} + +// VPCOMPRESSD performs "Store Sparse Packed Doubleword Integer Values into Dense Memory/Register". +// +// Mnemonic : VPCOMPRESSD +// Supported forms : (6 forms) +// +// * VPCOMPRESSD zmm, zmm{k}{z} [AVX512F] +// * VPCOMPRESSD zmm, m512{k}{z} [AVX512F] +// * VPCOMPRESSD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSD xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSD ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPCOMPRESSD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCOMPRESSD", 2, Operands { v0, v1 }) + // VPCOMPRESSD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSD zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPCOMPRESSD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSD xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPCOMPRESSD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSD ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMPRESSD") + } + return p +} + +// VPCOMPRESSQ performs "Store Sparse Packed Quadword Integer Values into Dense Memory/Register". +// +// Mnemonic : VPCOMPRESSQ +// Supported forms : (6 forms) +// +// * VPCOMPRESSQ zmm, zmm{k}{z} [AVX512F] +// * VPCOMPRESSQ zmm, m512{k}{z} [AVX512F] +// * VPCOMPRESSQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSQ xmm, m128{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPCOMPRESSQ ymm, m256{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPCOMPRESSQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCOMPRESSQ", 2, Operands { v0, v1 }) + // VPCOMPRESSQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSQ zmm, m512{k}{z} + if isZMM(v0) && isM512kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPCOMPRESSQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSQ xmm, m128{k}{z} + if isEVEXXMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPCOMPRESSQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x8b) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPCOMPRESSQ ymm, m256{k}{z} + if isEVEXYMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x8b) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMPRESSQ") + } + return p +} + +// VPCOMQ performs "Compare Packed Signed Quadword Integers". +// +// Mnemonic : VPCOMQ +// Supported forms : (2 forms) +// +// * VPCOMQ imm8, xmm, xmm, xmm [XOP] +// * VPCOMQ imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMQ", 4, Operands { v0, v1, v2, v3 }) + // VPCOMQ imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xcf) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMQ imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xcf) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMQ") + } + return p +} + +// VPCOMUB performs "Compare Packed Unsigned Byte Integers". +// +// Mnemonic : VPCOMUB +// Supported forms : (2 forms) +// +// * VPCOMUB imm8, xmm, xmm, xmm [XOP] +// * VPCOMUB imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUB", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUB imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xec) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUB imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xec) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUB") + } + return p +} + +// VPCOMUD performs "Compare Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPCOMUD +// Supported forms : (2 forms) +// +// * VPCOMUD imm8, xmm, xmm, xmm [XOP] +// * VPCOMUD imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUD", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xee) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xee) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUD") + } + return p +} + +// VPCOMUQ performs "Compare Packed Unsigned Quadword Integers". +// +// Mnemonic : VPCOMUQ +// Supported forms : (2 forms) +// +// * VPCOMUQ imm8, xmm, xmm, xmm [XOP] +// * VPCOMUQ imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUQ", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUQ imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xef) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUQ imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xef) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUQ") + } + return p +} + +// VPCOMUW performs "Compare Packed Unsigned Word Integers". +// +// Mnemonic : VPCOMUW +// Supported forms : (2 forms) +// +// * VPCOMUW imm8, xmm, xmm, xmm [XOP] +// * VPCOMUW imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMUW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMUW", 4, Operands { v0, v1, v2, v3 }) + // VPCOMUW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xed) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMUW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xed) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMUW") + } + return p +} + +// VPCOMW performs "Compare Packed Signed Word Integers". +// +// Mnemonic : VPCOMW +// Supported forms : (2 forms) +// +// * VPCOMW imm8, xmm, xmm, xmm [XOP] +// * VPCOMW imm8, m128, xmm, xmm [XOP] +// +func (self *Program) VPCOMW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPCOMW", 4, Operands { v0, v1, v2, v3 }) + // VPCOMW imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPCOMW imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xcd) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCOMW") + } + return p +} + +// VPCONFLICTD performs "Detect Conflicts Within a Vector of Packed Doubleword Values into Dense Memory/Register". +// +// Mnemonic : VPCONFLICTD +// Supported forms : (6 forms) +// +// * VPCONFLICTD m128/m32bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD m256/m32bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD m512/m32bcst, zmm{k}{z} [AVX512CD] +// * VPCONFLICTD xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTD zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPCONFLICTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCONFLICTD", 2, Operands { v0, v1 }) + // VPCONFLICTD m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPCONFLICTD m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPCONFLICTD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPCONFLICTD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCONFLICTD") + } + return p +} + +// VPCONFLICTQ performs "Detect Conflicts Within a Vector of Packed Quadword Values into Dense Memory/Register". +// +// Mnemonic : VPCONFLICTQ +// Supported forms : (6 forms) +// +// * VPCONFLICTQ m128/m64bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ m256/m64bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ m512/m64bcst, zmm{k}{z} [AVX512CD] +// * VPCONFLICTQ xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPCONFLICTQ zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPCONFLICTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPCONFLICTQ", 2, Operands { v0, v1 }) + // VPCONFLICTQ m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPCONFLICTQ m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPCONFLICTQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xc4) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPCONFLICTQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPCONFLICTQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPCONFLICTQ") + } + return p +} + +// VPERM2F128 performs "Permute Floating-Point Values". +// +// Mnemonic : VPERM2F128 +// Supported forms : (2 forms) +// +// * VPERM2F128 imm8, ymm, ymm, ymm [AVX] +// * VPERM2F128 imm8, m256, ymm, ymm [AVX] +// +func (self *Program) VPERM2F128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPERM2F128", 4, Operands { v0, v1, v2, v3 }) + // VPERM2F128 imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x06) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERM2F128 imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x06) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERM2F128") + } + return p +} + +// VPERM2I128 performs "Permute 128-Bit Integer Values". +// +// Mnemonic : VPERM2I128 +// Supported forms : (2 forms) +// +// * VPERM2I128 imm8, ymm, ymm, ymm [AVX2] +// * VPERM2I128 imm8, m256, ymm, ymm [AVX2] +// +func (self *Program) VPERM2I128(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPERM2I128", 4, Operands { v0, v1, v2, v3 }) + // VPERM2I128 imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERM2I128 imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x46) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERM2I128") + } + return p +} + +// VPERMB performs "Permute Byte Integers". +// +// Mnemonic : VPERMB +// Supported forms : (6 forms) +// +// * VPERMB xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMB zmm, zmm, zmm{k}{z} [AVX512VBMI] +// * VPERMB m512, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPERMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMB", 3, Operands { v0, v1, v2 }) + // VPERMB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMB") + } + return p +} + +// VPERMD performs "Permute Doubleword Integers". +// +// Mnemonic : VPERMD +// Supported forms : (6 forms) +// +// * VPERMD ymm, ymm, ymm [AVX2] +// * VPERMD m256, ymm, ymm [AVX2] +// * VPERMD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMD", 3, Operands { v0, v1, v2 }) + // VPERMD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMD") + } + return p +} + +// VPERMI2B performs "Full Permute of Bytes From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2B +// Supported forms : (6 forms) +// +// * VPERMI2B xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMI2B zmm, zmm, zmm{k}{z} [AVX512VBMI] +// * VPERMI2B m512, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPERMI2B(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2B", 3, Operands { v0, v1, v2 }) + // VPERMI2B xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2B m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2B ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2B m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2B zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2B m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2B") + } + return p +} + +// VPERMI2D performs "Full Permute of Doublewords From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2D +// Supported forms : (6 forms) +// +// * VPERMI2D m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2D zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2D m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2D xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2D m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2D ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2D(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2D", 3, Operands { v0, v1, v2 }) + // VPERMI2D m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2D zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2D m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2D xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2D m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2D ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2D") + } + return p +} + +// VPERMI2PD performs "Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2PD +// Supported forms : (6 forms) +// +// * VPERMI2PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2PD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2PD", 3, Operands { v0, v1, v2 }) + // VPERMI2PD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2PD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2PD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2PD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2PD") + } + return p +} + +// VPERMI2PS performs "Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2PS +// Supported forms : (6 forms) +// +// * VPERMI2PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2PS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2PS", 3, Operands { v0, v1, v2 }) + // VPERMI2PS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2PS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2PS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2PS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x77) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2PS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x77) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2PS") + } + return p +} + +// VPERMI2Q performs "Full Permute of Quadwords From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2Q +// Supported forms : (6 forms) +// +// * VPERMI2Q m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2Q zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMI2Q m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2Q xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2Q m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMI2Q ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMI2Q(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2Q", 3, Operands { v0, v1, v2 }) + // VPERMI2Q m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2Q zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2Q m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2Q xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2Q m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x76) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMI2Q ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x76) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2Q") + } + return p +} + +// VPERMI2W performs "Full Permute of Words From Two Tables Overwriting the Index". +// +// Mnemonic : VPERMI2W +// Supported forms : (6 forms) +// +// * VPERMI2W zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPERMI2W m512, zmm, zmm{k}{z} [AVX512BW] +// * VPERMI2W xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMI2W m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMI2W ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPERMI2W m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPERMI2W(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMI2W", 3, Operands { v0, v1, v2 }) + // VPERMI2W zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2W m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMI2W xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2W m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMI2W ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x75) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMI2W m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x75) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMI2W") + } + return p +} + +// VPERMIL2PD performs "Permute Two-Source Double-Precision Floating-Point Vectors". +// +// Mnemonic : VPERMIL2PD +// Supported forms : (6 forms) +// +// * VPERMIL2PD imm4, xmm, xmm, xmm, xmm [XOP] +// * VPERMIL2PD imm4, m128, xmm, xmm, xmm [XOP] +// * VPERMIL2PD imm4, xmm, m128, xmm, xmm [XOP] +// * VPERMIL2PD imm4, ymm, ymm, ymm, ymm [XOP] +// * VPERMIL2PD imm4, m256, ymm, ymm, ymm [XOP] +// * VPERMIL2PD imm4, ymm, m256, ymm, ymm [XOP] +// +func (self *Program) VPERMIL2PD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, v4 interface{}) *Instruction { + p := self.alloc("VPERMIL2PD", 5, Operands { v0, v1, v2, v3, v4 }) + // VPERMIL2PD imm4, xmm, xmm, xmm, xmm + if isImm4(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79 ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, m128, xmm, xmm, xmm + if isImm4(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, xmm, m128, xmm, xmm + if isImm4(v0) && isXMM(v1) && isM128(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, ymm, ymm, ymm, ymm + if isImm4(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit(0x49) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, m256, ymm, ymm, ymm + if isImm4(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PD imm4, ymm, m256, ymm, ymm + if isImm4(v0) && isYMM(v1) && isM256(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x49) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMIL2PD") + } + return p +} + +// VPERMIL2PS performs "Permute Two-Source Single-Precision Floating-Point Vectors". +// +// Mnemonic : VPERMIL2PS +// Supported forms : (6 forms) +// +// * VPERMIL2PS imm4, xmm, xmm, xmm, xmm [XOP] +// * VPERMIL2PS imm4, m128, xmm, xmm, xmm [XOP] +// * VPERMIL2PS imm4, xmm, m128, xmm, xmm [XOP] +// * VPERMIL2PS imm4, ymm, ymm, ymm, ymm [XOP] +// * VPERMIL2PS imm4, m256, ymm, ymm, ymm [XOP] +// * VPERMIL2PS imm4, ymm, m256, ymm, ymm [XOP] +// +func (self *Program) VPERMIL2PS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, v4 interface{}) *Instruction { + p := self.alloc("VPERMIL2PS", 5, Operands { v0, v1, v2, v3, v4 }) + // VPERMIL2PS imm4, xmm, xmm, xmm, xmm + if isImm4(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79 ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, m128, xmm, xmm, xmm + if isImm4(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, xmm, m128, xmm, xmm + if isImm4(v0) && isXMM(v1) && isM128(v2) && isXMM(v3) && isXMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, ymm, ymm, ymm, ymm + if isImm4(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[4]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit(0x48) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[1])) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, m256, ymm, ymm, ymm + if isImm4(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[4]), addr(v[1]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[1]), 1) + m.emit((hlcode(v[2]) << 4) | imml(v[0])) + }) + } + // VPERMIL2PS imm4, ymm, m256, ymm, ymm + if isImm4(v0) && isYMM(v1) && isM256(v2) && isYMM(v3) && isYMM(v4) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[4]), addr(v[2]), hlcode(v[3])) + m.emit(0x48) + m.mrsd(lcode(v[4]), addr(v[2]), 1) + m.emit((hlcode(v[1]) << 4) | imml(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMIL2PS") + } + return p +} + +// VPERMILPD performs "Permute Double-Precision Floating-Point Values". +// +// Mnemonic : VPERMILPD +// Supported forms : (20 forms) +// +// * VPERMILPD imm8, xmm, xmm [AVX] +// * VPERMILPD xmm, xmm, xmm [AVX] +// * VPERMILPD m128, xmm, xmm [AVX] +// * VPERMILPD imm8, m128, xmm [AVX] +// * VPERMILPD imm8, ymm, ymm [AVX] +// * VPERMILPD ymm, ymm, ymm [AVX] +// * VPERMILPD m256, ymm, ymm [AVX] +// * VPERMILPD imm8, m256, ymm [AVX] +// * VPERMILPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPERMILPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMILPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMILPD", 3, Operands { v0, v1, v2 }) + // VPERMILPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMILPD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMILPD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMILPD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x0d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMILPD") + } + return p +} + +// VPERMILPS performs "Permute Single-Precision Floating-Point Values". +// +// Mnemonic : VPERMILPS +// Supported forms : (20 forms) +// +// * VPERMILPS imm8, xmm, xmm [AVX] +// * VPERMILPS xmm, xmm, xmm [AVX] +// * VPERMILPS m128, xmm, xmm [AVX] +// * VPERMILPS imm8, m128, xmm [AVX] +// * VPERMILPS imm8, ymm, ymm [AVX] +// * VPERMILPS ymm, ymm, ymm [AVX] +// * VPERMILPS m256, ymm, ymm [AVX] +// * VPERMILPS imm8, m256, ymm [AVX] +// * VPERMILPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPERMILPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPS imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMILPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMILPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMILPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMILPS", 3, Operands { v0, v1, v2 }) + // VPERMILPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMILPS imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMILPS imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMILPS imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMILPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x0c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMILPS imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMILPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x0c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMILPS") + } + return p +} + +// VPERMPD performs "Permute Double-Precision Floating-Point Elements". +// +// Mnemonic : VPERMPD +// Supported forms : (10 forms) +// +// * VPERMPD imm8, ymm, ymm [AVX2] +// * VPERMPD imm8, m256, ymm [AVX2] +// * VPERMPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPERMPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMPD", 3, Operands { v0, v1, v2 }) + // VPERMPD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[2]), addr(v[1]), 0) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMPD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMPD imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMPD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMPD") + } + return p +} + +// VPERMPS performs "Permute Single-Precision Floating-Point Elements". +// +// Mnemonic : VPERMPS +// Supported forms : (6 forms) +// +// * VPERMPS ymm, ymm, ymm [AVX2] +// * VPERMPS m256, ymm, ymm [AVX2] +// * VPERMPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMPS", 3, Operands { v0, v1, v2 }) + // VPERMPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPERMPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x16) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x16) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMPS") + } + return p +} + +// VPERMQ performs "Permute Quadword Integers". +// +// Mnemonic : VPERMQ +// Supported forms : (10 forms) +// +// * VPERMQ imm8, ymm, ymm [AVX2] +// * VPERMQ imm8, m256, ymm [AVX2] +// * VPERMQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPERMQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPERMQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMQ", 3, Operands { v0, v1, v2 }) + // VPERMQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xfd) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x85, hcode(v[2]), addr(v[1]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x36) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPERMQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x36) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMQ") + } + return p +} + +// VPERMT2B performs "Full Permute of Bytes From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2B +// Supported forms : (6 forms) +// +// * VPERMT2B xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B m128, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B m256, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPERMT2B zmm, zmm, zmm{k}{z} [AVX512VBMI] +// * VPERMT2B m512, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPERMT2B(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2B", 3, Operands { v0, v1, v2 }) + // VPERMT2B xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2B m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2B ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2B m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2B zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2B m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2B") + } + return p +} + +// VPERMT2D performs "Full Permute of Doublewords From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2D +// Supported forms : (6 forms) +// +// * VPERMT2D m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2D zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2D m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2D xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2D m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2D ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2D(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2D", 3, Operands { v0, v1, v2 }) + // VPERMT2D m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2D zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2D m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2D xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2D m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2D ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2D") + } + return p +} + +// VPERMT2PD performs "Full Permute of Double-Precision Floating-Point Values From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2PD +// Supported forms : (6 forms) +// +// * VPERMT2PD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2PD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2PD", 3, Operands { v0, v1, v2 }) + // VPERMT2PD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2PD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2PD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2PD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2PD") + } + return p +} + +// VPERMT2PS performs "Full Permute of Single-Precision Floating-Point Values From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2PS +// Supported forms : (6 forms) +// +// * VPERMT2PS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PS zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2PS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2PS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2PS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2PS", 3, Operands { v0, v1, v2 }) + // VPERMT2PS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2PS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2PS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2PS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2PS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2PS") + } + return p +} + +// VPERMT2Q performs "Full Permute of Quadwords From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2Q +// Supported forms : (6 forms) +// +// * VPERMT2Q m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2Q zmm, zmm, zmm{k}{z} [AVX512F] +// * VPERMT2Q m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2Q xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2Q m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPERMT2Q ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPERMT2Q(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2Q", 3, Operands { v0, v1, v2 }) + // VPERMT2Q m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2Q zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2Q m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2Q xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2Q m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x7e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPERMT2Q ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2Q") + } + return p +} + +// VPERMT2W performs "Full Permute of Words From Two Tables Overwriting a Table". +// +// Mnemonic : VPERMT2W +// Supported forms : (6 forms) +// +// * VPERMT2W zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPERMT2W m512, zmm, zmm{k}{z} [AVX512BW] +// * VPERMT2W xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMT2W m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMT2W ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPERMT2W m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPERMT2W(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMT2W", 3, Operands { v0, v1, v2 }) + // VPERMT2W zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2W m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMT2W xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2W m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMT2W ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x7d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMT2W m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x7d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMT2W") + } + return p +} + +// VPERMW performs "Permute Word Integers". +// +// Mnemonic : VPERMW +// Supported forms : (6 forms) +// +// * VPERMW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPERMW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPERMW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPERMW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPERMW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPERMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPERMW", 3, Operands { v0, v1, v2 }) + // VPERMW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPERMW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPERMW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x8d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPERMW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x8d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPERMW") + } + return p +} + +// VPEXPANDD performs "Load Sparse Packed Doubleword Integer Values from Dense Memory/Register". +// +// Mnemonic : VPEXPANDD +// Supported forms : (6 forms) +// +// * VPEXPANDD zmm, zmm{k}{z} [AVX512F] +// * VPEXPANDD m512, zmm{k}{z} [AVX512F] +// * VPEXPANDD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDD m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDD m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPEXPANDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPEXPANDD", 2, Operands { v0, v1 }) + // VPEXPANDD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDD m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPEXPANDD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDD m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPEXPANDD m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXPANDD") + } + return p +} + +// VPEXPANDQ performs "Load Sparse Packed Quadword Integer Values from Dense Memory/Register". +// +// Mnemonic : VPEXPANDQ +// Supported forms : (6 forms) +// +// * VPEXPANDQ zmm, zmm{k}{z} [AVX512F] +// * VPEXPANDQ m512, zmm{k}{z} [AVX512F] +// * VPEXPANDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDQ ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDQ m128, xmm{k}{z} [AVX512F,AVX512VL] +// * VPEXPANDQ m256, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPEXPANDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPEXPANDQ", 2, Operands { v0, v1 }) + // VPEXPANDQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDQ m512, zmm{k}{z} + if isM512(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPEXPANDQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x89) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPEXPANDQ m128, xmm{k}{z} + if isM128(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPEXPANDQ m256, ymm{k}{z} + if isM256(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x89) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXPANDQ") + } + return p +} + +// VPEXTRB performs "Extract Byte". +// +// Mnemonic : VPEXTRB +// Supported forms : (4 forms) +// +// * VPEXTRB imm8, xmm, r32 [AVX] +// * VPEXTRB imm8, xmm, m8 [AVX] +// * VPEXTRB imm8, xmm, r32 [AVX512BW] +// * VPEXTRB imm8, xmm, m8 [AVX512BW] +// +func (self *Program) VPEXTRB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRB", 3, Operands { v0, v1, v2 }) + // VPEXTRB imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRB imm8, xmm, m8 + if isImm8(v0) && isXMM(v1) && isM8(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRB imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x14) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRB imm8, xmm, m8 + if isImm8(v0) && isEVEXXMM(v1) && isM8(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x14) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRB") + } + return p +} + +// VPEXTRD performs "Extract Doubleword". +// +// Mnemonic : VPEXTRD +// Supported forms : (4 forms) +// +// * VPEXTRD imm8, xmm, r32 [AVX] +// * VPEXTRD imm8, xmm, m32 [AVX] +// * VPEXTRD imm8, xmm, r32 [AVX512DQ] +// * VPEXTRD imm8, xmm, m32 [AVX512DQ] +// +func (self *Program) VPEXTRD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRD", 3, Operands { v0, v1, v2 }) + // VPEXTRD imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRD imm8, xmm, m32 + if isImm8(v0) && isXMM(v1) && isM32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRD imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRD imm8, xmm, m32 + if isImm8(v0) && isEVEXXMM(v1) && isM32(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRD") + } + return p +} + +// VPEXTRQ performs "Extract Quadword". +// +// Mnemonic : VPEXTRQ +// Supported forms : (4 forms) +// +// * VPEXTRQ imm8, xmm, r64 [AVX] +// * VPEXTRQ imm8, xmm, m64 [AVX] +// * VPEXTRQ imm8, xmm, r64 [AVX512DQ] +// * VPEXTRQ imm8, xmm, m64 [AVX512DQ] +// +func (self *Program) VPEXTRQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRQ", 3, Operands { v0, v1, v2 }) + // VPEXTRQ imm8, xmm, r64 + if isImm8(v0) && isXMM(v1) && isReg64(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0xf9) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRQ imm8, xmm, m64 + if isImm8(v0) && isXMM(v1) && isM64(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[1]), addr(v[2]), 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRQ imm8, xmm, r64 + if isImm8(v0) && isEVEXXMM(v1) && isReg64(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x08) + m.emit(0x16) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRQ imm8, xmm, m64 + if isImm8(v0) && isEVEXXMM(v1) && isM64(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x16) + m.mrsd(lcode(v[1]), addr(v[2]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRQ") + } + return p +} + +// VPEXTRW performs "Extract Word". +// +// Mnemonic : VPEXTRW +// Supported forms : (4 forms) +// +// * VPEXTRW imm8, xmm, r32 [AVX] +// * VPEXTRW imm8, xmm, m16 [AVX] +// * VPEXTRW imm8, xmm, r32 [AVX512BW] +// * VPEXTRW imm8, xmm, m16 [AVX512BW] +// +func (self *Program) VPEXTRW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPEXTRW", 3, Operands { v0, v1, v2 }) + // VPEXTRW imm8, xmm, r32 + if isImm8(v0) && isXMM(v1) && isReg32(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[1], 0) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[1]) << 7) ^ (hcode(v[2]) << 5)) + m.emit(0x79) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRW imm8, xmm, m16 + if isImm8(v0) && isXMM(v1) && isM16(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[1]), addr(v[2]), 0) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[2]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRW imm8, xmm, r32 + if isImm8(v0) && isEVEXXMM(v1) && isReg32(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[1]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0x15) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit(0x08) + m.emit(0xc5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPEXTRW imm8, xmm, m16 + if isImm8(v0) && isEVEXXMM(v1) && isM16(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[1]), addr(v[2]), 0, 0, 0, 0) + m.emit(0x15) + m.mrsd(lcode(v[1]), addr(v[2]), 2) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPEXTRW") + } + return p +} + +// VPGATHERDD performs "Gather Packed Doubleword Values Using Signed Doubleword Indices". +// +// Mnemonic : VPGATHERDD +// Supported forms : (5 forms) +// +// * VPGATHERDD xmm, vm32x, xmm [AVX2] +// * VPGATHERDD ymm, vm32y, ymm [AVX2] +// * VPGATHERDD vm32z, zmm{k} [AVX512F] +// * VPGATHERDD vm32x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERDD vm32y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERDD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERDD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERDD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERDD takes 2 or 3 operands") + } + // VPGATHERDD xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDD ymm, vm32y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDD vm32z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERDD vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERDD vm32y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERDD") + } + return p +} + +// VPGATHERDQ performs "Gather Packed Quadword Values Using Signed Doubleword Indices". +// +// Mnemonic : VPGATHERDQ +// Supported forms : (5 forms) +// +// * VPGATHERDQ xmm, vm32x, xmm [AVX2] +// * VPGATHERDQ ymm, vm32x, ymm [AVX2] +// * VPGATHERDQ vm32y, zmm{k} [AVX512F] +// * VPGATHERDQ vm32x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERDQ vm32x, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERDQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERDQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERDQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERDQ takes 2 or 3 operands") + } + // VPGATHERDQ xmm, vm32x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDQ ymm, vm32x, ymm + if len(vv) == 1 && isYMM(v0) && isVMX(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERDQ vm32y, zmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERDQ vm32x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERDQ vm32x, ymm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x90) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERDQ") + } + return p +} + +// VPGATHERQD performs "Gather Packed Doubleword Values Using Signed Quadword Indices". +// +// Mnemonic : VPGATHERQD +// Supported forms : (5 forms) +// +// * VPGATHERQD xmm, vm64x, xmm [AVX2] +// * VPGATHERQD xmm, vm64y, xmm [AVX2] +// * VPGATHERQD vm64z, ymm{k} [AVX512F] +// * VPGATHERQD vm64x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERQD vm64y, xmm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERQD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERQD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERQD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERQD takes 2 or 3 operands") + } + // VPGATHERQD xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQD xmm, vm64y, xmm + if len(vv) == 1 && isXMM(v0) && isVMY(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQD vm64z, ymm{k} + if len(vv) == 0 && isVMZ(v0) && isYMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERQD vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPGATHERQD vm64y, xmm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERQD") + } + return p +} + +// VPGATHERQQ performs "Gather Packed Quadword Values Using Signed Quadword Indices". +// +// Mnemonic : VPGATHERQQ +// Supported forms : (5 forms) +// +// * VPGATHERQQ xmm, vm64x, xmm [AVX2] +// * VPGATHERQQ ymm, vm64y, ymm [AVX2] +// * VPGATHERQQ vm64z, zmm{k} [AVX512F] +// * VPGATHERQQ vm64x, xmm{k} [AVX512F,AVX512VL] +// * VPGATHERQQ vm64y, ymm{k} [AVX512F,AVX512VL] +// +func (self *Program) VPGATHERQQ(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VPGATHERQQ", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VPGATHERQQ", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VPGATHERQQ takes 2 or 3 operands") + } + // VPGATHERQQ xmm, vm64x, xmm + if len(vv) == 1 && isXMM(v0) && isVMX(v1) && isXMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQQ ymm, vm64y, ymm + if len(vv) == 1 && isYMM(v0) && isVMY(v1) && isYMM(vv[0]) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + // VPGATHERQQ vm64z, zmm{k} + if len(vv) == 0 && isVMZ(v0) && isZMMk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERQQ vm64x, xmm{k} + if len(vv) == 0 && isEVEXVMX(v0) && isXMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPGATHERQQ vm64y, ymm{k} + if len(vv) == 0 && isEVEXVMY(v0) && isYMMk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), 0, 0) + m.emit(0x91) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPGATHERQQ") + } + return p +} + +// VPHADDBD performs "Packed Horizontal Add Signed Byte to Signed Doubleword". +// +// Mnemonic : VPHADDBD +// Supported forms : (2 forms) +// +// * VPHADDBD xmm, xmm [XOP] +// * VPHADDBD m128, xmm [XOP] +// +func (self *Program) VPHADDBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDBD", 2, Operands { v0, v1 }) + // VPHADDBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDBD") + } + return p +} + +// VPHADDBQ performs "Packed Horizontal Add Signed Byte to Signed Quadword". +// +// Mnemonic : VPHADDBQ +// Supported forms : (2 forms) +// +// * VPHADDBQ xmm, xmm [XOP] +// * VPHADDBQ m128, xmm [XOP] +// +func (self *Program) VPHADDBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDBQ", 2, Operands { v0, v1 }) + // VPHADDBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDBQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDBQ") + } + return p +} + +// VPHADDBW performs "Packed Horizontal Add Signed Byte to Signed Word". +// +// Mnemonic : VPHADDBW +// Supported forms : (2 forms) +// +// * VPHADDBW xmm, xmm [XOP] +// * VPHADDBW m128, xmm [XOP] +// +func (self *Program) VPHADDBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDBW", 2, Operands { v0, v1 }) + // VPHADDBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDBW") + } + return p +} + +// VPHADDD performs "Packed Horizontal Add Doubleword Integer". +// +// Mnemonic : VPHADDD +// Supported forms : (4 forms) +// +// * VPHADDD xmm, xmm, xmm [AVX] +// * VPHADDD m128, xmm, xmm [AVX] +// * VPHADDD ymm, ymm, ymm [AVX2] +// * VPHADDD m256, ymm, ymm [AVX2] +// +func (self *Program) VPHADDD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHADDD", 3, Operands { v0, v1, v2 }) + // VPHADDD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHADDD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x02) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x02) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDD") + } + return p +} + +// VPHADDDQ performs "Packed Horizontal Add Signed Doubleword to Signed Quadword". +// +// Mnemonic : VPHADDDQ +// Supported forms : (2 forms) +// +// * VPHADDDQ xmm, xmm [XOP] +// * VPHADDDQ m128, xmm [XOP] +// +func (self *Program) VPHADDDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDDQ", 2, Operands { v0, v1 }) + // VPHADDDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xcb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDDQ") + } + return p +} + +// VPHADDSW performs "Packed Horizontal Add Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPHADDSW +// Supported forms : (4 forms) +// +// * VPHADDSW xmm, xmm, xmm [AVX] +// * VPHADDSW m128, xmm, xmm [AVX] +// * VPHADDSW ymm, ymm, ymm [AVX2] +// * VPHADDSW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHADDSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHADDSW", 3, Operands { v0, v1, v2 }) + // VPHADDSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x03) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHADDSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x03) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x03) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDSW") + } + return p +} + +// VPHADDUBD performs "Packed Horizontal Add Unsigned Byte to Doubleword". +// +// Mnemonic : VPHADDUBD +// Supported forms : (2 forms) +// +// * VPHADDUBD xmm, xmm [XOP] +// * VPHADDUBD m128, xmm [XOP] +// +func (self *Program) VPHADDUBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUBD", 2, Operands { v0, v1 }) + // VPHADDUBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUBD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUBD") + } + return p +} + +// VPHADDUBQ performs "Packed Horizontal Add Unsigned Byte to Quadword". +// +// Mnemonic : VPHADDUBQ +// Supported forms : (2 forms) +// +// * VPHADDUBQ xmm, xmm [XOP] +// * VPHADDUBQ m128, xmm [XOP] +// +func (self *Program) VPHADDUBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUBQ", 2, Operands { v0, v1 }) + // VPHADDUBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUBQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUBQ") + } + return p +} + +// VPHADDUBW performs "Packed Horizontal Add Unsigned Byte to Word". +// +// Mnemonic : VPHADDUBW +// Supported forms : (2 forms) +// +// * VPHADDUBW xmm, xmm [XOP] +// * VPHADDUBW m128, xmm [XOP] +// +func (self *Program) VPHADDUBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUBW", 2, Operands { v0, v1 }) + // VPHADDUBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUBW") + } + return p +} + +// VPHADDUDQ performs "Packed Horizontal Add Unsigned Doubleword to Quadword". +// +// Mnemonic : VPHADDUDQ +// Supported forms : (2 forms) +// +// * VPHADDUDQ xmm, xmm [XOP] +// * VPHADDUDQ m128, xmm [XOP] +// +func (self *Program) VPHADDUDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUDQ", 2, Operands { v0, v1 }) + // VPHADDUDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xdb) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xdb) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUDQ") + } + return p +} + +// VPHADDUWD performs "Packed Horizontal Add Unsigned Word to Doubleword". +// +// Mnemonic : VPHADDUWD +// Supported forms : (2 forms) +// +// * VPHADDUWD xmm, xmm [XOP] +// * VPHADDUWD m128, xmm [XOP] +// +func (self *Program) VPHADDUWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUWD", 2, Operands { v0, v1 }) + // VPHADDUWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUWD") + } + return p +} + +// VPHADDUWQ performs "Packed Horizontal Add Unsigned Word to Quadword". +// +// Mnemonic : VPHADDUWQ +// Supported forms : (2 forms) +// +// * VPHADDUWQ xmm, xmm [XOP] +// * VPHADDUWQ m128, xmm [XOP] +// +func (self *Program) VPHADDUWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDUWQ", 2, Operands { v0, v1 }) + // VPHADDUWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDUWQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xd7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDUWQ") + } + return p +} + +// VPHADDW performs "Packed Horizontal Add Word Integers". +// +// Mnemonic : VPHADDW +// Supported forms : (4 forms) +// +// * VPHADDW xmm, xmm, xmm [AVX] +// * VPHADDW m128, xmm, xmm [AVX] +// * VPHADDW ymm, ymm, ymm [AVX2] +// * VPHADDW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHADDW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHADDW", 3, Operands { v0, v1, v2 }) + // VPHADDW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHADDW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x01) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHADDW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x01) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDW") + } + return p +} + +// VPHADDWD performs "Packed Horizontal Add Signed Word to Signed Doubleword". +// +// Mnemonic : VPHADDWD +// Supported forms : (2 forms) +// +// * VPHADDWD xmm, xmm [XOP] +// * VPHADDWD m128, xmm [XOP] +// +func (self *Program) VPHADDWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDWD", 2, Operands { v0, v1 }) + // VPHADDWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc6) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDWD") + } + return p +} + +// VPHADDWQ performs "Packed Horizontal Add Signed Word to Signed Quadword". +// +// Mnemonic : VPHADDWQ +// Supported forms : (2 forms) +// +// * VPHADDWQ xmm, xmm [XOP] +// * VPHADDWQ m128, xmm [XOP] +// +func (self *Program) VPHADDWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHADDWQ", 2, Operands { v0, v1 }) + // VPHADDWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xc7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHADDWQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xc7) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHADDWQ") + } + return p +} + +// VPHMINPOSUW performs "Packed Horizontal Minimum of Unsigned Word Integers". +// +// Mnemonic : VPHMINPOSUW +// Supported forms : (2 forms) +// +// * VPHMINPOSUW xmm, xmm [AVX] +// * VPHMINPOSUW m128, xmm [AVX] +// +func (self *Program) VPHMINPOSUW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHMINPOSUW", 2, Operands { v0, v1 }) + // VPHMINPOSUW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x41) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHMINPOSUW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x41) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHMINPOSUW") + } + return p +} + +// VPHSUBBW performs "Packed Horizontal Subtract Signed Byte to Signed Word". +// +// Mnemonic : VPHSUBBW +// Supported forms : (2 forms) +// +// * VPHSUBBW xmm, xmm [XOP] +// * VPHSUBBW m128, xmm [XOP] +// +func (self *Program) VPHSUBBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHSUBBW", 2, Operands { v0, v1 }) + // VPHSUBBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHSUBBW m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBBW") + } + return p +} + +// VPHSUBD performs "Packed Horizontal Subtract Doubleword Integers". +// +// Mnemonic : VPHSUBD +// Supported forms : (4 forms) +// +// * VPHSUBD xmm, xmm, xmm [AVX] +// * VPHSUBD m128, xmm, xmm [AVX] +// * VPHSUBD ymm, ymm, ymm [AVX2] +// * VPHSUBD m256, ymm, ymm [AVX2] +// +func (self *Program) VPHSUBD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHSUBD", 3, Operands { v0, v1, v2 }) + // VPHSUBD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x06) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x06) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHSUBD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x06) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x06) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBD") + } + return p +} + +// VPHSUBDQ performs "Packed Horizontal Subtract Signed Doubleword to Signed Quadword". +// +// Mnemonic : VPHSUBDQ +// Supported forms : (2 forms) +// +// * VPHSUBDQ xmm, xmm [XOP] +// * VPHSUBDQ m128, xmm [XOP] +// +func (self *Program) VPHSUBDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHSUBDQ", 2, Operands { v0, v1 }) + // VPHSUBDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xe3) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHSUBDQ m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe3) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBDQ") + } + return p +} + +// VPHSUBSW performs "Packed Horizontal Subtract Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPHSUBSW +// Supported forms : (4 forms) +// +// * VPHSUBSW xmm, xmm, xmm [AVX] +// * VPHSUBSW m128, xmm, xmm [AVX] +// * VPHSUBSW ymm, ymm, ymm [AVX2] +// * VPHSUBSW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHSUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHSUBSW", 3, Operands { v0, v1, v2 }) + // VPHSUBSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x07) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x07) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHSUBSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x07) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x07) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBSW") + } + return p +} + +// VPHSUBW performs "Packed Horizontal Subtract Word Integers". +// +// Mnemonic : VPHSUBW +// Supported forms : (4 forms) +// +// * VPHSUBW xmm, xmm, xmm [AVX] +// * VPHSUBW m128, xmm, xmm [AVX] +// * VPHSUBW ymm, ymm, ymm [AVX2] +// * VPHSUBW m256, ymm, ymm [AVX2] +// +func (self *Program) VPHSUBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPHSUBW", 3, Operands { v0, v1, v2 }) + // VPHSUBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPHSUBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x05) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPHSUBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x05) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBW") + } + return p +} + +// VPHSUBWD performs "Packed Horizontal Subtract Signed Word to Signed Doubleword". +// +// Mnemonic : VPHSUBWD +// Supported forms : (2 forms) +// +// * VPHSUBWD xmm, xmm [XOP] +// * VPHSUBWD m128, xmm [XOP] +// +func (self *Program) VPHSUBWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPHSUBWD", 2, Operands { v0, v1 }) + // VPHSUBWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x78) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPHSUBWD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[1]), addr(v[0]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPHSUBWD") + } + return p +} + +// VPINSRB performs "Insert Byte". +// +// Mnemonic : VPINSRB +// Supported forms : (4 forms) +// +// * VPINSRB imm8, r32, xmm, xmm [AVX] +// * VPINSRB imm8, m8, xmm, xmm [AVX] +// * VPINSRB imm8, r32, xmm, xmm [AVX512BW] +// * VPINSRB imm8, m8, xmm, xmm [AVX512BW] +// +func (self *Program) VPINSRB(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRB", 4, Operands { v0, v1, v2, v3 }) + // VPINSRB imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x20) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRB imm8, m8, xmm, xmm + if isImm8(v0) && isM8(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x20) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRB imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x20) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRB imm8, m8, xmm, xmm + if isImm8(v0) && isM8(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x20) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRB") + } + return p +} + +// VPINSRD performs "Insert Doubleword". +// +// Mnemonic : VPINSRD +// Supported forms : (4 forms) +// +// * VPINSRD imm8, r32, xmm, xmm [AVX] +// * VPINSRD imm8, m32, xmm, xmm [AVX] +// * VPINSRD imm8, r32, xmm, xmm [AVX512DQ] +// * VPINSRD imm8, m32, xmm, xmm [AVX512DQ] +// +func (self *Program) VPINSRD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRD", 4, Operands { v0, v1, v2, v3 }) + // VPINSRD imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRD imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRD imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRD imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRD") + } + return p +} + +// VPINSRQ performs "Insert Quadword". +// +// Mnemonic : VPINSRQ +// Supported forms : (4 forms) +// +// * VPINSRQ imm8, r64, xmm, xmm [AVX] +// * VPINSRQ imm8, m64, xmm, xmm [AVX] +// * VPINSRQ imm8, r64, xmm, xmm [AVX512DQ] +// * VPINSRQ imm8, m64, xmm, xmm [AVX512DQ] +// +func (self *Program) VPINSRQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRQ", 4, Operands { v0, v1, v2, v3 }) + // VPINSRQ imm8, r64, xmm, xmm + if isImm8(v0) && isReg64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0xf9 ^ (hlcode(v[2]) << 3)) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRQ imm8, m64, xmm, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x81, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRQ imm8, r64, xmm, xmm + if isImm8(v0) && isReg64(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x22) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRQ imm8, m64, xmm, xmm + if isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x22) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRQ") + } + return p +} + +// VPINSRW performs "Insert Word". +// +// Mnemonic : VPINSRW +// Supported forms : (4 forms) +// +// * VPINSRW imm8, r32, xmm, xmm [AVX] +// * VPINSRW imm8, m16, xmm, xmm [AVX] +// * VPINSRW imm8, r32, xmm, xmm [AVX512BW] +// * VPINSRW imm8, m16, xmm, xmm [AVX512BW] +// +func (self *Program) VPINSRW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPINSRW", 4, Operands { v0, v1, v2, v3 }) + // VPINSRW imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRW imm8, m16, xmm, xmm + if isImm8(v0) && isM16(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc4) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRW imm8, r32, xmm, xmm + if isImm8(v0) && isReg32(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0xc4) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPINSRW imm8, m16, xmm, xmm + if isImm8(v0) && isM16(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0xc4) + m.mrsd(lcode(v[3]), addr(v[1]), 2) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPINSRW") + } + return p +} + +// VPLZCNTD performs "Count the Number of Leading Zero Bits for Packed Doubleword Values". +// +// Mnemonic : VPLZCNTD +// Supported forms : (6 forms) +// +// * VPLZCNTD m128/m32bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD m256/m32bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD m512/m32bcst, zmm{k}{z} [AVX512CD] +// * VPLZCNTD xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTD zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPLZCNTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPLZCNTD", 2, Operands { v0, v1 }) + // VPLZCNTD m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPLZCNTD m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPLZCNTD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPLZCNTD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPLZCNTD") + } + return p +} + +// VPLZCNTQ performs "Count the Number of Leading Zero Bits for Packed Quadword Values". +// +// Mnemonic : VPLZCNTQ +// Supported forms : (6 forms) +// +// * VPLZCNTQ m128/m64bcst, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ m256/m64bcst, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ m512/m64bcst, zmm{k}{z} [AVX512CD] +// * VPLZCNTQ xmm, xmm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ ymm, ymm{k}{z} [AVX512CD,AVX512VL] +// * VPLZCNTQ zmm, zmm{k}{z} [AVX512CD] +// +func (self *Program) VPLZCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPLZCNTQ", 2, Operands { v0, v1 }) + // VPLZCNTQ m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPLZCNTQ m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPLZCNTQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x44) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPLZCNTQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTQ ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPLZCNTQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512CD) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x44) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPLZCNTQ") + } + return p +} + +// VPMACSDD performs "Packed Multiply Accumulate Signed Doubleword to Signed Doubleword". +// +// Mnemonic : VPMACSDD +// Supported forms : (2 forms) +// +// * VPMACSDD xmm, xmm, xmm, xmm [XOP] +// * VPMACSDD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSDD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSDD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x9e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSDD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x9e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSDD") + } + return p +} + +// VPMACSDQH performs "Packed Multiply Accumulate Signed High Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSDQH +// Supported forms : (2 forms) +// +// * VPMACSDQH xmm, xmm, xmm, xmm [XOP] +// * VPMACSDQH xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSDQH(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSDQH", 4, Operands { v0, v1, v2, v3 }) + // VPMACSDQH xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x9f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSDQH xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x9f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSDQH") + } + return p +} + +// VPMACSDQL performs "Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSDQL +// Supported forms : (2 forms) +// +// * VPMACSDQL xmm, xmm, xmm, xmm [XOP] +// * VPMACSDQL xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSDQL(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSDQL", 4, Operands { v0, v1, v2, v3 }) + // VPMACSDQL xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSDQL xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x97) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSDQL") + } + return p +} + +// VPMACSSDD performs "Packed Multiply Accumulate with Saturation Signed Doubleword to Signed Doubleword". +// +// Mnemonic : VPMACSSDD +// Supported forms : (2 forms) +// +// * VPMACSSDD xmm, xmm, xmm, xmm [XOP] +// * VPMACSSDD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSDD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSDD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSDD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x8e) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSDD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x8e) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSDD") + } + return p +} + +// VPMACSSDQH performs "Packed Multiply Accumulate with Saturation Signed High Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSSDQH +// Supported forms : (2 forms) +// +// * VPMACSSDQH xmm, xmm, xmm, xmm [XOP] +// * VPMACSSDQH xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSDQH(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSDQH", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSDQH xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x8f) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSDQH xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x8f) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSDQH") + } + return p +} + +// VPMACSSDQL performs "Packed Multiply Accumulate with Saturation Signed Low Doubleword to Signed Quadword". +// +// Mnemonic : VPMACSSDQL +// Supported forms : (2 forms) +// +// * VPMACSSDQL xmm, xmm, xmm, xmm [XOP] +// * VPMACSSDQL xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSDQL(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSDQL", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSDQL xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x87) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSDQL xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x87) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSDQL") + } + return p +} + +// VPMACSSWD performs "Packed Multiply Accumulate with Saturation Signed Word to Signed Doubleword". +// +// Mnemonic : VPMACSSWD +// Supported forms : (2 forms) +// +// * VPMACSSWD xmm, xmm, xmm, xmm [XOP] +// * VPMACSSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x86) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x86) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSWD") + } + return p +} + +// VPMACSSWW performs "Packed Multiply Accumulate with Saturation Signed Word to Signed Word". +// +// Mnemonic : VPMACSSWW +// Supported forms : (2 forms) +// +// * VPMACSSWW xmm, xmm, xmm, xmm [XOP] +// * VPMACSSWW xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSSWW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSSWW", 4, Operands { v0, v1, v2, v3 }) + // VPMACSSWW xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x85) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSSWW xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x85) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSSWW") + } + return p +} + +// VPMACSWD performs "Packed Multiply Accumulate Signed Word to Signed Doubleword". +// +// Mnemonic : VPMACSWD +// Supported forms : (2 forms) +// +// * VPMACSWD xmm, xmm, xmm, xmm [XOP] +// * VPMACSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMACSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x96) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSWD") + } + return p +} + +// VPMACSWW performs "Packed Multiply Accumulate Signed Word to Signed Word". +// +// Mnemonic : VPMACSWW +// Supported forms : (2 forms) +// +// * VPMACSWW xmm, xmm, xmm, xmm [XOP] +// * VPMACSWW xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMACSWW(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMACSWW", 4, Operands { v0, v1, v2, v3 }) + // VPMACSWW xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0x95) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMACSWW xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x95) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMACSWW") + } + return p +} + +// VPMADCSSWD performs "Packed Multiply Add Accumulate with Saturation Signed Word to Signed Doubleword". +// +// Mnemonic : VPMADCSSWD +// Supported forms : (2 forms) +// +// * VPMADCSSWD xmm, xmm, xmm, xmm [XOP] +// * VPMADCSSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMADCSSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMADCSSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMADCSSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xa6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMADCSSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADCSSWD") + } + return p +} + +// VPMADCSWD performs "Packed Multiply Add Accumulate Signed Word to Signed Doubleword". +// +// Mnemonic : VPMADCSWD +// Supported forms : (2 forms) +// +// * VPMADCSWD xmm, xmm, xmm, xmm [XOP] +// * VPMADCSWD xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPMADCSWD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPMADCSWD", 4, Operands { v0, v1, v2, v3 }) + // VPMADCSWD xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xb6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + } + // VPMADCSWD xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xb6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADCSWD") + } + return p +} + +// VPMADD52HUQ performs "Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to Quadword Accumulators". +// +// Mnemonic : VPMADD52HUQ +// Supported forms : (6 forms) +// +// * VPMADD52HUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ xmm, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ ymm, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52HUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512IFMA] +// * VPMADD52HUQ zmm, zmm, zmm{k}{z} [AVX512IFMA] +// +func (self *Program) VPMADD52HUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADD52HUQ", 3, Operands { v0, v1, v2 }) + // VPMADD52HUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADD52HUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52HUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMADD52HUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52HUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADD52HUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADD52HUQ") + } + return p +} + +// VPMADD52LUQ performs "Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Quadword Accumulators". +// +// Mnemonic : VPMADD52LUQ +// Supported forms : (6 forms) +// +// * VPMADD52LUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ xmm, xmm, xmm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ ymm, ymm, ymm{k}{z} [AVX512IFMA,AVX512VL] +// * VPMADD52LUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512IFMA] +// * VPMADD52LUQ zmm, zmm, zmm{k}{z} [AVX512IFMA] +// +func (self *Program) VPMADD52LUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADD52LUQ", 3, Operands { v0, v1, v2 }) + // VPMADD52LUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADD52LUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xb4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52LUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMADD52LUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512IFMA | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xb4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADD52LUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xb4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADD52LUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512IFMA) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xb4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADD52LUQ") + } + return p +} + +// VPMADDUBSW performs "Multiply and Add Packed Signed and Unsigned Byte Integers". +// +// Mnemonic : VPMADDUBSW +// Supported forms : (10 forms) +// +// * VPMADDUBSW xmm, xmm, xmm [AVX] +// * VPMADDUBSW m128, xmm, xmm [AVX] +// * VPMADDUBSW ymm, ymm, ymm [AVX2] +// * VPMADDUBSW m256, ymm, ymm [AVX2] +// * VPMADDUBSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDUBSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDUBSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDUBSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDUBSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDUBSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMADDUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADDUBSW", 3, Operands { v0, v1, v2 }) + // VPMADDUBSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDUBSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDUBSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADDUBSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADDUBSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x04) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDUBSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x04) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADDUBSW") + } + return p +} + +// VPMADDWD performs "Multiply and Add Packed Signed Word Integers". +// +// Mnemonic : VPMADDWD +// Supported forms : (10 forms) +// +// * VPMADDWD xmm, xmm, xmm [AVX] +// * VPMADDWD m128, xmm, xmm [AVX] +// * VPMADDWD ymm, ymm, ymm [AVX2] +// * VPMADDWD m256, ymm, ymm [AVX2] +// * VPMADDWD zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDWD m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMADDWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMADDWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMADDWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMADDWD", 3, Operands { v0, v1, v2 }) + // VPMADDWD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDWD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMADDWD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMADDWD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMADDWD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMADDWD m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMADDWD") + } + return p +} + +// VPMASKMOVD performs "Conditional Move Packed Doubleword Integers". +// +// Mnemonic : VPMASKMOVD +// Supported forms : (4 forms) +// +// * VPMASKMOVD m128, xmm, xmm [AVX2] +// * VPMASKMOVD m256, ymm, ymm [AVX2] +// * VPMASKMOVD xmm, xmm, m128 [AVX2] +// * VPMASKMOVD ymm, ymm, m256 [AVX2] +// +func (self *Program) VPMASKMOVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMASKMOVD", 3, Operands { v0, v1, v2 }) + // VPMASKMOVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVD xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VPMASKMOVD ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPMASKMOVD") + } + return p +} + +// VPMASKMOVQ performs "Conditional Move Packed Quadword Integers". +// +// Mnemonic : VPMASKMOVQ +// Supported forms : (4 forms) +// +// * VPMASKMOVQ m128, xmm, xmm [AVX2] +// * VPMASKMOVQ m256, ymm, ymm [AVX2] +// * VPMASKMOVQ xmm, xmm, m128 [AVX2] +// * VPMASKMOVQ ymm, ymm, m256 [AVX2] +// +func (self *Program) VPMASKMOVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMASKMOVQ", 3, Operands { v0, v1, v2 }) + // VPMASKMOVQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x8c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMASKMOVQ xmm, xmm, m128 + if isXMM(v0) && isXMM(v1) && isM128(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + // VPMASKMOVQ ymm, ymm, m256 + if isYMM(v0) && isYMM(v1) && isM256(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[0]), addr(v[2]), hlcode(v[1])) + m.emit(0x8e) + m.mrsd(lcode(v[0]), addr(v[2]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPMASKMOVQ") + } + return p +} + +// VPMAXSB performs "Maximum of Packed Signed Byte Integers". +// +// Mnemonic : VPMAXSB +// Supported forms : (10 forms) +// +// * VPMAXSB xmm, xmm, xmm [AVX] +// * VPMAXSB m128, xmm, xmm [AVX] +// * VPMAXSB ymm, ymm, ymm [AVX2] +// * VPMAXSB m256, ymm, ymm [AVX2] +// * VPMAXSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSB", 3, Operands { v0, v1, v2 }) + // VPMAXSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSB") + } + return p +} + +// VPMAXSD performs "Maximum of Packed Signed Doubleword Integers". +// +// Mnemonic : VPMAXSD +// Supported forms : (10 forms) +// +// * VPMAXSD xmm, xmm, xmm [AVX] +// * VPMAXSD m128, xmm, xmm [AVX] +// * VPMAXSD ymm, ymm, ymm [AVX2] +// * VPMAXSD m256, ymm, ymm [AVX2] +// * VPMAXSD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSD", 3, Operands { v0, v1, v2 }) + // VPMAXSD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXSD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSD") + } + return p +} + +// VPMAXSQ performs "Maximum of Packed Signed Quadword Integers". +// +// Mnemonic : VPMAXSQ +// Supported forms : (6 forms) +// +// * VPMAXSQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXSQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXSQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXSQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSQ", 3, Operands { v0, v1, v2 }) + // VPMAXSQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXSQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSQ") + } + return p +} + +// VPMAXSW performs "Maximum of Packed Signed Word Integers". +// +// Mnemonic : VPMAXSW +// Supported forms : (10 forms) +// +// * VPMAXSW xmm, xmm, xmm [AVX] +// * VPMAXSW m128, xmm, xmm [AVX] +// * VPMAXSW ymm, ymm, ymm [AVX2] +// * VPMAXSW m256, ymm, ymm [AVX2] +// * VPMAXSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXSW", 3, Operands { v0, v1, v2 }) + // VPMAXSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xee) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xee) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXSW") + } + return p +} + +// VPMAXUB performs "Maximum of Packed Unsigned Byte Integers". +// +// Mnemonic : VPMAXUB +// Supported forms : (10 forms) +// +// * VPMAXUB xmm, xmm, xmm [AVX] +// * VPMAXUB m128, xmm, xmm [AVX] +// * VPMAXUB ymm, ymm, ymm [AVX2] +// * VPMAXUB m256, ymm, ymm [AVX2] +// * VPMAXUB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXUB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUB", 3, Operands { v0, v1, v2 }) + // VPMAXUB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xde) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xde) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUB") + } + return p +} + +// VPMAXUD performs "Maximum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPMAXUD +// Supported forms : (10 forms) +// +// * VPMAXUD xmm, xmm, xmm [AVX] +// * VPMAXUD m128, xmm, xmm [AVX] +// * VPMAXUD ymm, ymm, ymm [AVX2] +// * VPMAXUD m256, ymm, ymm [AVX2] +// * VPMAXUD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXUD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUD", 3, Operands { v0, v1, v2 }) + // VPMAXUD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXUD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUD") + } + return p +} + +// VPMAXUQ performs "Maximum of Packed Unsigned Quadword Integers". +// +// Mnemonic : VPMAXUQ +// Supported forms : (6 forms) +// +// * VPMAXUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMAXUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMAXUQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMAXUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUQ", 3, Operands { v0, v1, v2 }) + // VPMAXUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3f) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMAXUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUQ") + } + return p +} + +// VPMAXUW performs "Maximum of Packed Unsigned Word Integers". +// +// Mnemonic : VPMAXUW +// Supported forms : (10 forms) +// +// * VPMAXUW xmm, xmm, xmm [AVX] +// * VPMAXUW m128, xmm, xmm [AVX] +// * VPMAXUW ymm, ymm, ymm [AVX2] +// * VPMAXUW m256, ymm, ymm [AVX2] +// * VPMAXUW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMAXUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMAXUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMAXUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMAXUW", 3, Operands { v0, v1, v2 }) + // VPMAXUW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMAXUW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMAXUW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMAXUW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMAXUW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3e) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMAXUW") + } + return p +} + +// VPMINSB performs "Minimum of Packed Signed Byte Integers". +// +// Mnemonic : VPMINSB +// Supported forms : (10 forms) +// +// * VPMINSB xmm, xmm, xmm [AVX] +// * VPMINSB m128, xmm, xmm [AVX] +// * VPMINSB ymm, ymm, ymm [AVX2] +// * VPMINSB m256, ymm, ymm [AVX2] +// * VPMINSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSB", 3, Operands { v0, v1, v2 }) + // VPMINSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x38) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x38) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSB") + } + return p +} + +// VPMINSD performs "Minimum of Packed Signed Doubleword Integers". +// +// Mnemonic : VPMINSD +// Supported forms : (10 forms) +// +// * VPMINSD xmm, xmm, xmm [AVX] +// * VPMINSD m128, xmm, xmm [AVX] +// * VPMINSD ymm, ymm, ymm [AVX2] +// * VPMINSD m256, ymm, ymm [AVX2] +// * VPMINSD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINSD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINSD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINSD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINSD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSD", 3, Operands { v0, v1, v2 }) + // VPMINSD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINSD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSD") + } + return p +} + +// VPMINSQ performs "Minimum of Packed Signed Quadword Integers". +// +// Mnemonic : VPMINSQ +// Supported forms : (6 forms) +// +// * VPMINSQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINSQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINSQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINSQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINSQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINSQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSQ", 3, Operands { v0, v1, v2 }) + // VPMINSQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x39) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINSQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x39) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSQ") + } + return p +} + +// VPMINSW performs "Minimum of Packed Signed Word Integers". +// +// Mnemonic : VPMINSW +// Supported forms : (10 forms) +// +// * VPMINSW xmm, xmm, xmm [AVX] +// * VPMINSW m128, xmm, xmm [AVX] +// * VPMINSW ymm, ymm, ymm [AVX2] +// * VPMINSW m256, ymm, ymm [AVX2] +// * VPMINSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINSW", 3, Operands { v0, v1, v2 }) + // VPMINSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xea) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xea) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINSW") + } + return p +} + +// VPMINUB performs "Minimum of Packed Unsigned Byte Integers". +// +// Mnemonic : VPMINUB +// Supported forms : (10 forms) +// +// * VPMINUB xmm, xmm, xmm [AVX] +// * VPMINUB m128, xmm, xmm [AVX] +// * VPMINUB ymm, ymm, ymm [AVX2] +// * VPMINUB m256, ymm, ymm [AVX2] +// * VPMINUB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINUB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUB", 3, Operands { v0, v1, v2 }) + // VPMINUB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xda) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xda) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUB") + } + return p +} + +// VPMINUD performs "Minimum of Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPMINUD +// Supported forms : (10 forms) +// +// * VPMINUD xmm, xmm, xmm [AVX] +// * VPMINUD m128, xmm, xmm [AVX] +// * VPMINUD ymm, ymm, ymm [AVX2] +// * VPMINUD m256, ymm, ymm [AVX2] +// * VPMINUD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINUD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINUD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINUD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINUD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUD", 3, Operands { v0, v1, v2 }) + // VPMINUD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINUD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUD") + } + return p +} + +// VPMINUQ performs "Minimum of Packed Unsigned Quadword Integers". +// +// Mnemonic : VPMINUQ +// Supported forms : (6 forms) +// +// * VPMINUQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMINUQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMINUQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMINUQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMINUQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMINUQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUQ", 3, Operands { v0, v1, v2 }) + // VPMINUQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x3b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMINUQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUQ") + } + return p +} + +// VPMINUW performs "Minimum of Packed Unsigned Word Integers". +// +// Mnemonic : VPMINUW +// Supported forms : (10 forms) +// +// * VPMINUW xmm, xmm, xmm [AVX] +// * VPMINUW m128, xmm, xmm [AVX] +// * VPMINUW ymm, ymm, ymm [AVX2] +// * VPMINUW m256, ymm, ymm [AVX2] +// * VPMINUW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMINUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMINUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMINUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMINUW", 3, Operands { v0, v1, v2 }) + // VPMINUW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMINUW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMINUW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMINUW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x3a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMINUW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x3a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMINUW") + } + return p +} + +// VPMOVB2M performs "Move Signs of Packed Byte Integers to Mask Register". +// +// Mnemonic : VPMOVB2M +// Supported forms : (3 forms) +// +// * VPMOVB2M zmm, k [AVX512BW] +// * VPMOVB2M xmm, k [AVX512BW,AVX512VL] +// * VPMOVB2M ymm, k [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVB2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVB2M", 2, Operands { v0, v1 }) + // VPMOVB2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVB2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVB2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVB2M") + } + return p +} + +// VPMOVD2M performs "Move Signs of Packed Doubleword Integers to Mask Register". +// +// Mnemonic : VPMOVD2M +// Supported forms : (3 forms) +// +// * VPMOVD2M zmm, k [AVX512DQ] +// * VPMOVD2M xmm, k [AVX512DQ,AVX512VL] +// * VPMOVD2M ymm, k [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVD2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVD2M", 2, Operands { v0, v1 }) + // VPMOVD2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVD2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVD2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVD2M") + } + return p +} + +// VPMOVDB performs "Down Convert Packed Doubleword Values to Byte Values with Truncation". +// +// Mnemonic : VPMOVDB +// Supported forms : (6 forms) +// +// * VPMOVDB zmm, xmm{k}{z} [AVX512F] +// * VPMOVDB zmm, m128{k}{z} [AVX512F] +// * VPMOVDB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDB xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVDB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDB ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVDB", 2, Operands { v0, v1 }) + // VPMOVDB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDB zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVDB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDB xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVDB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDB ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVDB") + } + return p +} + +// VPMOVDW performs "Down Convert Packed Doubleword Values to Word Values with Truncation". +// +// Mnemonic : VPMOVDW +// Supported forms : (6 forms) +// +// * VPMOVDW zmm, ymm{k}{z} [AVX512F] +// * VPMOVDW zmm, m256{k}{z} [AVX512F] +// * VPMOVDW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDW xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVDW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVDW ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVDW", 2, Operands { v0, v1 }) + // VPMOVDW zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x33) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDW zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVDW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x33) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDW xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVDW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x33) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVDW ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVDW") + } + return p +} + +// VPMOVM2B performs "Expand Bits of Mask Register to Packed Byte Integers". +// +// Mnemonic : VPMOVM2B +// Supported forms : (3 forms) +// +// * VPMOVM2B k, zmm [AVX512BW] +// * VPMOVM2B k, xmm [AVX512BW,AVX512VL] +// * VPMOVM2B k, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVM2B(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2B", 2, Operands { v0, v1 }) + // VPMOVM2B k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2B k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2B k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2B") + } + return p +} + +// VPMOVM2D performs "Expand Bits of Mask Register to Packed Doubleword Integers". +// +// Mnemonic : VPMOVM2D +// Supported forms : (3 forms) +// +// * VPMOVM2D k, zmm [AVX512DQ] +// * VPMOVM2D k, xmm [AVX512DQ,AVX512VL] +// * VPMOVM2D k, ymm [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVM2D(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2D", 2, Operands { v0, v1 }) + // VPMOVM2D k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x48) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2D k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x08) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2D k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7e) + m.emit(0x28) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2D") + } + return p +} + +// VPMOVM2Q performs "Expand Bits of Mask Register to Packed Quadword Integers". +// +// Mnemonic : VPMOVM2Q +// Supported forms : (3 forms) +// +// * VPMOVM2Q k, zmm [AVX512DQ] +// * VPMOVM2Q k, xmm [AVX512DQ,AVX512VL] +// * VPMOVM2Q k, ymm [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVM2Q(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2Q", 2, Operands { v0, v1 }) + // VPMOVM2Q k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2Q k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2Q k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x38) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2Q") + } + return p +} + +// VPMOVM2W performs "Expand Bits of Mask Register to Packed Word Integers". +// +// Mnemonic : VPMOVM2W +// Supported forms : (3 forms) +// +// * VPMOVM2W k, zmm [AVX512BW] +// * VPMOVM2W k, xmm [AVX512BW,AVX512VL] +// * VPMOVM2W k, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVM2W(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVM2W", 2, Operands { v0, v1 }) + // VPMOVM2W k, zmm + if isK(v0) && isZMM(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2W k, xmm + if isK(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVM2W k, ymm + if isK(v0) && isEVEXYMM(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x28) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVM2W") + } + return p +} + +// VPMOVMSKB performs "Move Byte Mask". +// +// Mnemonic : VPMOVMSKB +// Supported forms : (2 forms) +// +// * VPMOVMSKB xmm, r32 [AVX] +// * VPMOVMSKB ymm, r32 [AVX2] +// +func (self *Program) VPMOVMSKB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVMSKB", 2, Operands { v0, v1 }) + // VPMOVMSKB xmm, r32 + if isXMM(v0) && isReg32(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVMSKB ymm, r32 + if isYMM(v0) && isReg32(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0xd7) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVMSKB") + } + return p +} + +// VPMOVQ2M performs "Move Signs of Packed Quadword Integers to Mask Register". +// +// Mnemonic : VPMOVQ2M +// Supported forms : (3 forms) +// +// * VPMOVQ2M zmm, k [AVX512DQ] +// * VPMOVQ2M xmm, k [AVX512DQ,AVX512VL] +// * VPMOVQ2M ymm, k [AVX512DQ,AVX512VL] +// +func (self *Program) VPMOVQ2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQ2M", 2, Operands { v0, v1 }) + // VPMOVQ2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVQ2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVQ2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x39) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQ2M") + } + return p +} + +// VPMOVQB performs "Down Convert Packed Quadword Values to Byte Values with Truncation". +// +// Mnemonic : VPMOVQB +// Supported forms : (6 forms) +// +// * VPMOVQB zmm, xmm{k}{z} [AVX512F] +// * VPMOVQB zmm, m64{k}{z} [AVX512F] +// * VPMOVQB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQB xmm, m16{k}{z} [AVX512F,AVX512VL] +// * VPMOVQB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQB ymm, m32{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQB", 2, Operands { v0, v1 }) + // VPMOVQB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x32) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQB zmm, m64{k}{z} + if isZMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVQB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x32) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQB xmm, m16{k}{z} + if isEVEXXMM(v0) && isM16kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[0]), addr(v[1]), 2) + }) + } + // VPMOVQB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x32) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQB ymm, m32{k}{z} + if isEVEXYMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQB") + } + return p +} + +// VPMOVQD performs "Down Convert Packed Quadword Values to Doubleword Values with Truncation". +// +// Mnemonic : VPMOVQD +// Supported forms : (6 forms) +// +// * VPMOVQD zmm, ymm{k}{z} [AVX512F] +// * VPMOVQD zmm, m256{k}{z} [AVX512F] +// * VPMOVQD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQD xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVQD ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQD ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQD", 2, Operands { v0, v1 }) + // VPMOVQD zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x35) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQD zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVQD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x35) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQD xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVQD ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x35) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQD ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQD") + } + return p +} + +// VPMOVQW performs "Down Convert Packed Quadword Values to Word Values with Truncation". +// +// Mnemonic : VPMOVQW +// Supported forms : (6 forms) +// +// * VPMOVQW zmm, xmm{k}{z} [AVX512F] +// * VPMOVQW zmm, m128{k}{z} [AVX512F] +// * VPMOVQW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQW xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVQW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVQW ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVQW", 2, Operands { v0, v1 }) + // VPMOVQW zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x34) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQW zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVQW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x34) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQW xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVQW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x34) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVQW ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVQW") + } + return p +} + +// VPMOVSDB performs "Down Convert Packed Doubleword Values to Byte Values with Signed Saturation". +// +// Mnemonic : VPMOVSDB +// Supported forms : (6 forms) +// +// * VPMOVSDB zmm, xmm{k}{z} [AVX512F] +// * VPMOVSDB zmm, m128{k}{z} [AVX512F] +// * VPMOVSDB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDB xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDB ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSDB", 2, Operands { v0, v1 }) + // VPMOVSDB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDB zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVSDB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDB xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVSDB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x21) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDB ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSDB") + } + return p +} + +// VPMOVSDW performs "Down Convert Packed Doubleword Values to Word Values with Signed Saturation". +// +// Mnemonic : VPMOVSDW +// Supported forms : (6 forms) +// +// * VPMOVSDW zmm, ymm{k}{z} [AVX512F] +// * VPMOVSDW zmm, m256{k}{z} [AVX512F] +// * VPMOVSDW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDW xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSDW ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSDW", 2, Operands { v0, v1 }) + // VPMOVSDW zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x23) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDW zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVSDW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x23) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDW xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSDW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x23) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSDW ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSDW") + } + return p +} + +// VPMOVSQB performs "Down Convert Packed Quadword Values to Byte Values with Signed Saturation". +// +// Mnemonic : VPMOVSQB +// Supported forms : (6 forms) +// +// * VPMOVSQB zmm, xmm{k}{z} [AVX512F] +// * VPMOVSQB zmm, m64{k}{z} [AVX512F] +// * VPMOVSQB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQB xmm, m16{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQB ymm, m32{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSQB", 2, Operands { v0, v1 }) + // VPMOVSQB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x22) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQB zmm, m64{k}{z} + if isZMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSQB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x22) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQB xmm, m16{k}{z} + if isEVEXXMM(v0) && isM16kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[0]), addr(v[1]), 2) + }) + } + // VPMOVSQB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x22) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQB ymm, m32{k}{z} + if isEVEXYMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSQB") + } + return p +} + +// VPMOVSQD performs "Down Convert Packed Quadword Values to Doubleword Values with Signed Saturation". +// +// Mnemonic : VPMOVSQD +// Supported forms : (6 forms) +// +// * VPMOVSQD zmm, ymm{k}{z} [AVX512F] +// * VPMOVSQD zmm, m256{k}{z} [AVX512F] +// * VPMOVSQD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQD xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQD ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQD ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSQD", 2, Operands { v0, v1 }) + // VPMOVSQD zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x25) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQD zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVSQD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x25) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQD xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSQD ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x25) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQD ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSQD") + } + return p +} + +// VPMOVSQW performs "Down Convert Packed Quadword Values to Word Values with Signed Saturation". +// +// Mnemonic : VPMOVSQW +// Supported forms : (6 forms) +// +// * VPMOVSQW zmm, xmm{k}{z} [AVX512F] +// * VPMOVSQW zmm, m128{k}{z} [AVX512F] +// * VPMOVSQW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQW xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSQW ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSQW", 2, Operands { v0, v1 }) + // VPMOVSQW zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x24) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQW zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVSQW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x24) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQW xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVSQW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x24) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSQW ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSQW") + } + return p +} + +// VPMOVSWB performs "Down Convert Packed Word Values to Byte Values with Signed Saturation". +// +// Mnemonic : VPMOVSWB +// Supported forms : (6 forms) +// +// * VPMOVSWB zmm, ymm{k}{z} [AVX512BW] +// * VPMOVSWB zmm, m256{k}{z} [AVX512BW] +// * VPMOVSWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSWB xmm, m64{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSWB ymm, m128{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSWB", 2, Operands { v0, v1 }) + // VPMOVSWB zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSWB zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVSWB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSWB xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVSWB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x20) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVSWB ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSWB") + } + return p +} + +// VPMOVSXBD performs "Move Packed Byte Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXBD +// Supported forms : (10 forms) +// +// * VPMOVSXBD xmm, xmm [AVX] +// * VPMOVSXBD m32, xmm [AVX] +// * VPMOVSXBD xmm, ymm [AVX2] +// * VPMOVSXBD m64, ymm [AVX2] +// * VPMOVSXBD xmm, zmm{k}{z} [AVX512F] +// * VPMOVSXBD m128, zmm{k}{z} [AVX512F] +// * VPMOVSXBD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBD m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBD m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXBD", 2, Operands { v0, v1 }) + // VPMOVSXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVSXBD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x21) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBD m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVSXBD m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x21) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXBD") + } + return p +} + +// VPMOVSXBQ performs "Move Packed Byte Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXBQ +// Supported forms : (10 forms) +// +// * VPMOVSXBQ xmm, xmm [AVX] +// * VPMOVSXBQ m16, xmm [AVX] +// * VPMOVSXBQ xmm, ymm [AVX2] +// * VPMOVSXBQ m32, ymm [AVX2] +// * VPMOVSXBQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVSXBQ m64, zmm{k}{z} [AVX512F] +// * VPMOVSXBQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBQ m16, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXBQ m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXBQ", 2, Operands { v0, v1 }) + // VPMOVSXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXBQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x22) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBQ m16, xmm{k}{z} + if isM16(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPMOVSXBQ m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x22) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXBQ") + } + return p +} + +// VPMOVSXBW performs "Move Packed Byte Integers to Word Integers with Sign Extension". +// +// Mnemonic : VPMOVSXBW +// Supported forms : (10 forms) +// +// * VPMOVSXBW xmm, xmm [AVX] +// * VPMOVSXBW m64, xmm [AVX] +// * VPMOVSXBW xmm, ymm [AVX2] +// * VPMOVSXBW m128, ymm [AVX2] +// * VPMOVSXBW ymm, zmm{k}{z} [AVX512BW] +// * VPMOVSXBW m256, zmm{k}{z} [AVX512BW] +// * VPMOVSXBW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSXBW xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSXBW m64, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVSXBW m128, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVSXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXBW", 2, Operands { v0, v1 }) + // VPMOVSXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBW xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXBW ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVSXBW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x20) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXBW m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXBW m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x20) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXBW") + } + return p +} + +// VPMOVSXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXDQ +// Supported forms : (10 forms) +// +// * VPMOVSXDQ xmm, xmm [AVX] +// * VPMOVSXDQ m64, xmm [AVX] +// * VPMOVSXDQ xmm, ymm [AVX2] +// * VPMOVSXDQ m128, ymm [AVX2] +// * VPMOVSXDQ ymm, zmm{k}{z} [AVX512F] +// * VPMOVSXDQ m256, zmm{k}{z} [AVX512F] +// * VPMOVSXDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXDQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXDQ m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXDQ m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXDQ", 2, Operands { v0, v1 }) + // VPMOVSXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXDQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXDQ ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVSXDQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x25) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXDQ m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXDQ m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x25) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXDQ") + } + return p +} + +// VPMOVSXWD performs "Move Packed Word Integers to Doubleword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXWD +// Supported forms : (10 forms) +// +// * VPMOVSXWD xmm, xmm [AVX] +// * VPMOVSXWD m64, xmm [AVX] +// * VPMOVSXWD xmm, ymm [AVX2] +// * VPMOVSXWD m128, ymm [AVX2] +// * VPMOVSXWD ymm, zmm{k}{z} [AVX512F] +// * VPMOVSXWD m256, zmm{k}{z} [AVX512F] +// * VPMOVSXWD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWD m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWD m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXWD", 2, Operands { v0, v1 }) + // VPMOVSXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVSXWD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x23) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWD m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVSXWD m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x23) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXWD") + } + return p +} + +// VPMOVSXWQ performs "Move Packed Word Integers to Quadword Integers with Sign Extension". +// +// Mnemonic : VPMOVSXWQ +// Supported forms : (10 forms) +// +// * VPMOVSXWQ xmm, xmm [AVX] +// * VPMOVSXWQ m32, xmm [AVX] +// * VPMOVSXWQ xmm, ymm [AVX2] +// * VPMOVSXWQ m64, ymm [AVX2] +// * VPMOVSXWQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVSXWQ m128, zmm{k}{z} [AVX512F] +// * VPMOVSXWQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWQ m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVSXWQ m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVSXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVSXWQ", 2, Operands { v0, v1 }) + // VPMOVSXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVSXWQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVSXWQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x24) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVSXWQ m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVSXWQ m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x24) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVSXWQ") + } + return p +} + +// VPMOVUSDB performs "Down Convert Packed Doubleword Values to Byte Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSDB +// Supported forms : (6 forms) +// +// * VPMOVUSDB zmm, xmm{k}{z} [AVX512F] +// * VPMOVUSDB zmm, m128{k}{z} [AVX512F] +// * VPMOVUSDB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDB xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDB ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSDB", 2, Operands { v0, v1 }) + // VPMOVUSDB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDB zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVUSDB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDB xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVUSDB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x11) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDB ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x11) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSDB") + } + return p +} + +// VPMOVUSDW performs "Down Convert Packed Doubleword Values to Word Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSDW +// Supported forms : (6 forms) +// +// * VPMOVUSDW zmm, ymm{k}{z} [AVX512F] +// * VPMOVUSDW zmm, m256{k}{z} [AVX512F] +// * VPMOVUSDW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDW xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSDW ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSDW", 2, Operands { v0, v1 }) + // VPMOVUSDW zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x13) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDW zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVUSDW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x13) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDW xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSDW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x13) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSDW ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x13) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSDW") + } + return p +} + +// VPMOVUSQB performs "Down Convert Packed Quadword Values to Byte Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSQB +// Supported forms : (6 forms) +// +// * VPMOVUSQB zmm, xmm{k}{z} [AVX512F] +// * VPMOVUSQB zmm, m64{k}{z} [AVX512F] +// * VPMOVUSQB xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQB xmm, m16{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQB ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQB ymm, m32{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSQB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSQB", 2, Operands { v0, v1 }) + // VPMOVUSQB zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x12) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQB zmm, m64{k}{z} + if isZMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSQB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x12) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQB xmm, m16{k}{z} + if isEVEXXMM(v0) && isM16kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[0]), addr(v[1]), 2) + }) + } + // VPMOVUSQB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x12) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQB ymm, m32{k}{z} + if isEVEXYMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x12) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSQB") + } + return p +} + +// VPMOVUSQD performs "Down Convert Packed Quadword Values to Doubleword Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSQD +// Supported forms : (6 forms) +// +// * VPMOVUSQD zmm, ymm{k}{z} [AVX512F] +// * VPMOVUSQD zmm, m256{k}{z} [AVX512F] +// * VPMOVUSQD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQD xmm, m64{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQD ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQD ymm, m128{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSQD", 2, Operands { v0, v1 }) + // VPMOVUSQD zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x15) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQD zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x15) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVUSQD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x15) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQD xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x15) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSQD ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x15) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQD ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x15) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSQD") + } + return p +} + +// VPMOVUSQW performs "Down Convert Packed Quadword Values to Word Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSQW +// Supported forms : (6 forms) +// +// * VPMOVUSQW zmm, xmm{k}{z} [AVX512F] +// * VPMOVUSQW zmm, m128{k}{z} [AVX512F] +// * VPMOVUSQW xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQW xmm, m32{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQW ymm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVUSQW ymm, m64{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVUSQW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSQW", 2, Operands { v0, v1 }) + // VPMOVUSQW zmm, xmm{k}{z} + if isZMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x14) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQW zmm, m128{k}{z} + if isZMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x14) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + // VPMOVUSQW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x14) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQW xmm, m32{k}{z} + if isEVEXXMM(v0) && isM32kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x14) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPMOVUSQW ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x14) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSQW ymm, m64{k}{z} + if isEVEXYMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x14) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSQW") + } + return p +} + +// VPMOVUSWB performs "Down Convert Packed Word Values to Byte Values with Unsigned Saturation". +// +// Mnemonic : VPMOVUSWB +// Supported forms : (6 forms) +// +// * VPMOVUSWB zmm, ymm{k}{z} [AVX512BW] +// * VPMOVUSWB zmm, m256{k}{z} [AVX512BW] +// * VPMOVUSWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVUSWB xmm, m64{k}{z} [AVX512BW,AVX512VL] +// * VPMOVUSWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVUSWB ymm, m128{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVUSWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVUSWB", 2, Operands { v0, v1 }) + // VPMOVUSWB zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSWB zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVUSWB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSWB xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVUSWB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x10) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVUSWB ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x10) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVUSWB") + } + return p +} + +// VPMOVW2M performs "Move Signs of Packed Word Integers to Mask Register". +// +// Mnemonic : VPMOVW2M +// Supported forms : (3 forms) +// +// * VPMOVW2M zmm, k [AVX512BW] +// * VPMOVW2M xmm, k [AVX512BW,AVX512VL] +// * VPMOVW2M ymm, k [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVW2M(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVW2M", 2, Operands { v0, v1 }) + // VPMOVW2M zmm, k + if isZMM(v0) && isK(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x48) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVW2M xmm, k + if isEVEXXMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x08) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVW2M ymm, k + if isEVEXYMM(v0) && isK(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfe) + m.emit(0x28) + m.emit(0x29) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVW2M") + } + return p +} + +// VPMOVWB performs "Down Convert Packed Word Values to Byte Values with Truncation". +// +// Mnemonic : VPMOVWB +// Supported forms : (6 forms) +// +// * VPMOVWB zmm, ymm{k}{z} [AVX512BW] +// * VPMOVWB zmm, m256{k}{z} [AVX512BW] +// * VPMOVWB xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVWB xmm, m64{k}{z} [AVX512BW,AVX512VL] +// * VPMOVWB ymm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVWB ymm, m128{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVWB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVWB", 2, Operands { v0, v1 }) + // VPMOVWB zmm, ymm{k}{z} + if isZMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVWB zmm, m256{k}{z} + if isZMM(v0) && isM256kz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 32) + }) + } + // VPMOVWB xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVWB xmm, m64{k}{z} + if isEVEXXMM(v0) && isM64kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPMOVWB ymm, xmm{k}{z} + if isEVEXYMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[0]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[0]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // VPMOVWB ymm, m128{k}{z} + if isEVEXYMM(v0) && isM128kz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVWB") + } + return p +} + +// VPMOVZXBD performs "Move Packed Byte Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXBD +// Supported forms : (10 forms) +// +// * VPMOVZXBD xmm, xmm [AVX] +// * VPMOVZXBD m32, xmm [AVX] +// * VPMOVZXBD xmm, ymm [AVX2] +// * VPMOVZXBD m64, ymm [AVX2] +// * VPMOVZXBD xmm, zmm{k}{z} [AVX512F] +// * VPMOVZXBD m128, zmm{k}{z} [AVX512F] +// * VPMOVZXBD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBD m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBD m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXBD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXBD", 2, Operands { v0, v1 }) + // VPMOVZXBD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBD xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVZXBD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x31) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBD m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVZXBD m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x31) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXBD") + } + return p +} + +// VPMOVZXBQ performs "Move Packed Byte Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXBQ +// Supported forms : (10 forms) +// +// * VPMOVZXBQ xmm, xmm [AVX] +// * VPMOVZXBQ m16, xmm [AVX] +// * VPMOVZXBQ xmm, ymm [AVX2] +// * VPMOVZXBQ m32, ymm [AVX2] +// * VPMOVZXBQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVZXBQ m64, zmm{k}{z} [AVX512F] +// * VPMOVZXBQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBQ m16, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXBQ m32, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXBQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXBQ", 2, Operands { v0, v1 }) + // VPMOVZXBQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m16, xmm + if isM16(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m32, ymm + if isM32(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m64, zmm{k}{z} + if isM64(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXBQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBQ m16, xmm{k}{z} + if isM16(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 2) + }) + } + // VPMOVZXBQ m32, ymm{k}{z} + if isM32(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXBQ") + } + return p +} + +// VPMOVZXBW performs "Move Packed Byte Integers to Word Integers with Zero Extension". +// +// Mnemonic : VPMOVZXBW +// Supported forms : (10 forms) +// +// * VPMOVZXBW xmm, xmm [AVX] +// * VPMOVZXBW m64, xmm [AVX] +// * VPMOVZXBW xmm, ymm [AVX2] +// * VPMOVZXBW m128, ymm [AVX2] +// * VPMOVZXBW ymm, zmm{k}{z} [AVX512BW] +// * VPMOVZXBW m256, zmm{k}{z} [AVX512BW] +// * VPMOVZXBW xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVZXBW xmm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVZXBW m64, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMOVZXBW m128, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMOVZXBW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXBW", 2, Operands { v0, v1 }) + // VPMOVZXBW xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBW xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXBW ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVZXBW xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x30) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXBW m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXBW m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x30) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXBW") + } + return p +} + +// VPMOVZXDQ performs "Move Packed Doubleword Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXDQ +// Supported forms : (10 forms) +// +// * VPMOVZXDQ xmm, xmm [AVX] +// * VPMOVZXDQ m64, xmm [AVX] +// * VPMOVZXDQ xmm, ymm [AVX2] +// * VPMOVZXDQ m128, ymm [AVX2] +// * VPMOVZXDQ ymm, zmm{k}{z} [AVX512F] +// * VPMOVZXDQ m256, zmm{k}{z} [AVX512F] +// * VPMOVZXDQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXDQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXDQ m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXDQ m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXDQ", 2, Operands { v0, v1 }) + // VPMOVZXDQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXDQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXDQ ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVZXDQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x35) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXDQ m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXDQ m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x35) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXDQ") + } + return p +} + +// VPMOVZXWD performs "Move Packed Word Integers to Doubleword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXWD +// Supported forms : (10 forms) +// +// * VPMOVZXWD xmm, xmm [AVX] +// * VPMOVZXWD m64, xmm [AVX] +// * VPMOVZXWD xmm, ymm [AVX2] +// * VPMOVZXWD m128, ymm [AVX2] +// * VPMOVZXWD ymm, zmm{k}{z} [AVX512F] +// * VPMOVZXWD m256, zmm{k}{z} [AVX512F] +// * VPMOVZXWD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWD xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWD m64, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWD m128, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXWD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXWD", 2, Operands { v0, v1 }) + // VPMOVZXWD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m64, xmm + if isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWD xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m128, ymm + if isM128(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWD ymm, zmm{k}{z} + if isEVEXYMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m256, zmm{k}{z} + if isM256(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VPMOVZXWD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWD m64, xmm{k}{z} + if isM64(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VPMOVZXWD m128, ymm{k}{z} + if isM128(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXWD") + } + return p +} + +// VPMOVZXWQ performs "Move Packed Word Integers to Quadword Integers with Zero Extension". +// +// Mnemonic : VPMOVZXWQ +// Supported forms : (10 forms) +// +// * VPMOVZXWQ xmm, xmm [AVX] +// * VPMOVZXWQ m32, xmm [AVX] +// * VPMOVZXWQ xmm, ymm [AVX2] +// * VPMOVZXWQ m64, ymm [AVX2] +// * VPMOVZXWQ xmm, zmm{k}{z} [AVX512F] +// * VPMOVZXWQ m128, zmm{k}{z} [AVX512F] +// * VPMOVZXWQ xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWQ xmm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWQ m32, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMOVZXWQ m64, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMOVZXWQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPMOVZXWQ", 2, Operands { v0, v1 }) + // VPMOVZXWQ xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m32, xmm + if isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWQ xmm, ymm + if isXMM(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m64, ymm + if isM64(v0) && isYMM(v1) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPMOVZXWQ xmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m128, zmm{k}{z} + if isM128(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VPMOVZXWQ xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ xmm, ymm{k}{z} + if isEVEXXMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x34) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPMOVZXWQ m32, xmm{k}{z} + if isM32(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VPMOVZXWQ m64, ymm{k}{z} + if isM64(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), 0) + m.emit(0x34) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPMOVZXWQ") + } + return p +} + +// VPMULDQ performs "Multiply Packed Signed Doubleword Integers and Store Quadword Result". +// +// Mnemonic : VPMULDQ +// Supported forms : (10 forms) +// +// * VPMULDQ xmm, xmm, xmm [AVX] +// * VPMULDQ m128, xmm, xmm [AVX] +// * VPMULDQ ymm, ymm, ymm [AVX2] +// * VPMULDQ m256, ymm, ymm [AVX2] +// * VPMULDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMULDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMULDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMULDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMULDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULDQ", 3, Operands { v0, v1, v2 }) + // VPMULDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x28) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x28) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULDQ") + } + return p +} + +// VPMULHRSW performs "Packed Multiply Signed Word Integers and Store High Result with Round and Scale". +// +// Mnemonic : VPMULHRSW +// Supported forms : (10 forms) +// +// * VPMULHRSW xmm, xmm, xmm [AVX] +// * VPMULHRSW m128, xmm, xmm [AVX] +// * VPMULHRSW ymm, ymm, ymm [AVX2] +// * VPMULHRSW m256, ymm, ymm [AVX2] +// * VPMULHRSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHRSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHRSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHRSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHRSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHRSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULHRSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULHRSW", 3, Operands { v0, v1, v2 }) + // VPMULHRSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHRSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHRSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULHRSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULHRSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHRSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULHRSW") + } + return p +} + +// VPMULHUW performs "Multiply Packed Unsigned Word Integers and Store High Result". +// +// Mnemonic : VPMULHUW +// Supported forms : (10 forms) +// +// * VPMULHUW xmm, xmm, xmm [AVX] +// * VPMULHUW m128, xmm, xmm [AVX] +// * VPMULHUW ymm, ymm, ymm [AVX2] +// * VPMULHUW m256, ymm, ymm [AVX2] +// * VPMULHUW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHUW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHUW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHUW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHUW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHUW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULHUW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULHUW", 3, Operands { v0, v1, v2 }) + // VPMULHUW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHUW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHUW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULHUW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULHUW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHUW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULHUW") + } + return p +} + +// VPMULHW performs "Multiply Packed Signed Word Integers and Store High Result". +// +// Mnemonic : VPMULHW +// Supported forms : (10 forms) +// +// * VPMULHW xmm, xmm, xmm [AVX] +// * VPMULHW m128, xmm, xmm [AVX] +// * VPMULHW ymm, ymm, ymm [AVX2] +// * VPMULHW m256, ymm, ymm [AVX2] +// * VPMULHW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULHW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULHW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULHW", 3, Operands { v0, v1, v2 }) + // VPMULHW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULHW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULHW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULHW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULHW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULHW") + } + return p +} + +// VPMULLD performs "Multiply Packed Signed Doubleword Integers and Store Low Result". +// +// Mnemonic : VPMULLD +// Supported forms : (10 forms) +// +// * VPMULLD xmm, xmm, xmm [AVX] +// * VPMULLD m128, xmm, xmm [AVX] +// * VPMULLD ymm, ymm, ymm [AVX2] +// * VPMULLD m256, ymm, ymm [AVX2] +// * VPMULLD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMULLD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMULLD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULLD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMULLD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMULLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULLD", 3, Operands { v0, v1, v2 }) + // VPMULLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULLD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULLD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULLD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULLD") + } + return p +} + +// VPMULLQ performs "Multiply Packed Signed Quadword Integers and Store Low Result". +// +// Mnemonic : VPMULLQ +// Supported forms : (6 forms) +// +// * VPMULLQ m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VPMULLQ zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VPMULLQ m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VPMULLQ xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VPMULLQ m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VPMULLQ ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VPMULLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULLQ", 3, Operands { v0, v1, v2 }) + // VPMULLQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULLQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULLQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x40) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULLQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x40) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULLQ") + } + return p +} + +// VPMULLW performs "Multiply Packed Signed Word Integers and Store Low Result". +// +// Mnemonic : VPMULLW +// Supported forms : (10 forms) +// +// * VPMULLW xmm, xmm, xmm [AVX] +// * VPMULLW m128, xmm, xmm [AVX] +// * VPMULLW ymm, ymm, ymm [AVX2] +// * VPMULLW m256, ymm, ymm [AVX2] +// * VPMULLW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPMULLW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPMULLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPMULLW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPMULLW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPMULLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULLW", 3, Operands { v0, v1, v2 }) + // VPMULLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULLW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULLW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULLW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd5) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULLW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd5) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULLW") + } + return p +} + +// VPMULTISHIFTQB performs "Select Packed Unaligned Bytes from Quadword Sources". +// +// Mnemonic : VPMULTISHIFTQB +// Supported forms : (6 forms) +// +// * VPMULTISHIFTQB m128/m64bcst, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB xmm, xmm, xmm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB m256/m64bcst, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB ymm, ymm, ymm{k}{z} [AVX512VBMI,AVX512VL] +// * VPMULTISHIFTQB m512/m64bcst, zmm, zmm{k}{z} [AVX512VBMI] +// * VPMULTISHIFTQB zmm, zmm, zmm{k}{z} [AVX512VBMI] +// +func (self *Program) VPMULTISHIFTQB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULTISHIFTQB", 3, Operands { v0, v1, v2 }) + // VPMULTISHIFTQB m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x83) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULTISHIFTQB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x83) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULTISHIFTQB m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x83) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULTISHIFTQB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VBMI | ISA_AVX512VL) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x83) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULTISHIFTQB m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x83) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULTISHIFTQB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512VBMI) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x83) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULTISHIFTQB") + } + return p +} + +// VPMULUDQ performs "Multiply Packed Unsigned Doubleword Integers". +// +// Mnemonic : VPMULUDQ +// Supported forms : (10 forms) +// +// * VPMULUDQ xmm, xmm, xmm [AVX] +// * VPMULUDQ m128, xmm, xmm [AVX] +// * VPMULUDQ ymm, ymm, ymm [AVX2] +// * VPMULUDQ m256, ymm, ymm [AVX2] +// * VPMULUDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPMULUDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPMULUDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULUDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPMULUDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPMULUDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPMULUDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPMULUDQ", 3, Operands { v0, v1, v2 }) + // VPMULUDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULUDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPMULUDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPMULUDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPMULUDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPMULUDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xf4) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPMULUDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf4) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPMULUDQ") + } + return p +} + +// VPOPCNTD performs "Packed Population Count for Doubleword Integers". +// +// Mnemonic : VPOPCNTD +// Supported forms : (2 forms) +// +// * VPOPCNTD m512/m32bcst, zmm{k}{z} [AVX512VPOPCNTDQ] +// * VPOPCNTD zmm, zmm{k}{z} [AVX512VPOPCNTDQ] +// +func (self *Program) VPOPCNTD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPOPCNTD", 2, Operands { v0, v1 }) + // VPOPCNTD m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPOPCNTD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPOPCNTD") + } + return p +} + +// VPOPCNTQ performs "Packed Population Count for Quadword Integers". +// +// Mnemonic : VPOPCNTQ +// Supported forms : (2 forms) +// +// * VPOPCNTQ m512/m64bcst, zmm{k}{z} [AVX512VPOPCNTDQ] +// * VPOPCNTQ zmm, zmm{k}{z} [AVX512VPOPCNTDQ] +// +func (self *Program) VPOPCNTQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPOPCNTQ", 2, Operands { v0, v1 }) + // VPOPCNTQ m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x55) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VPOPCNTQ zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512VPOPCNTDQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x55) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPOPCNTQ") + } + return p +} + +// VPOR performs "Packed Bitwise Logical OR". +// +// Mnemonic : VPOR +// Supported forms : (4 forms) +// +// * VPOR xmm, xmm, xmm [AVX] +// * VPOR m128, xmm, xmm [AVX] +// * VPOR ymm, ymm, ymm [AVX2] +// * VPOR m256, ymm, ymm [AVX2] +// +func (self *Program) VPOR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPOR", 3, Operands { v0, v1, v2 }) + // VPOR xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPOR m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPOR ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPOR m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPOR") + } + return p +} + +// VPORD performs "Bitwise Logical OR of Packed Doubleword Integers". +// +// Mnemonic : VPORD +// Supported forms : (6 forms) +// +// * VPORD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPORD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPORD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPORD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPORD", 3, Operands { v0, v1, v2 }) + // VPORD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPORD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPORD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPORD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPORD") + } + return p +} + +// VPORQ performs "Bitwise Logical OR of Packed Quadword Integers". +// +// Mnemonic : VPORQ +// Supported forms : (6 forms) +// +// * VPORQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPORQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPORQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPORQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPORQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPORQ", 3, Operands { v0, v1, v2 }) + // VPORQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPORQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPORQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPORQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xeb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPORQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xeb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPORQ") + } + return p +} + +// VPPERM performs "Packed Permute Bytes". +// +// Mnemonic : VPPERM +// Supported forms : (3 forms) +// +// * VPPERM xmm, xmm, xmm, xmm [XOP] +// * VPPERM m128, xmm, xmm, xmm [XOP] +// * VPPERM xmm, m128, xmm, xmm [XOP] +// +func (self *Program) VPPERM(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPPERM", 4, Operands { v0, v1, v2, v3 }) + // VPPERM xmm, xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[2]) << 3)) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.emit(hlcode(v[0]) << 4) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[3]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[2]) << 3)) + m.emit(0xa3) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[0])) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPPERM m128, xmm, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x80, hcode(v[3]), addr(v[0]), hlcode(v[2])) + m.emit(0xa3) + m.mrsd(lcode(v[3]), addr(v[0]), 1) + m.emit(hlcode(v[1]) << 4) + }) + } + // VPPERM xmm, m128, xmm, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xa3) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.emit(hlcode(v[0]) << 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPPERM") + } + return p +} + +// VPROLD performs "Rotate Packed Doubleword Left". +// +// Mnemonic : VPROLD +// Supported forms : (6 forms) +// +// * VPROLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPROLD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPROLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLD", 3, Operands { v0, v1, v2 }) + // VPROLD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLD") + } + return p +} + +// VPROLQ performs "Rotate Packed Quadword Left". +// +// Mnemonic : VPROLQ +// Supported forms : (6 forms) +// +// * VPROLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPROLQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPROLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLQ", 3, Operands { v0, v1, v2 }) + // VPROLQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(1, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROLQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLQ") + } + return p +} + +// VPROLVD performs "Variable Rotate Packed Doubleword Left". +// +// Mnemonic : VPROLVD +// Supported forms : (6 forms) +// +// * VPROLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPROLVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPROLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLVD", 3, Operands { v0, v1, v2 }) + // VPROLVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPROLVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPROLVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPROLVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLVD") + } + return p +} + +// VPROLVQ performs "Variable Rotate Packed Quadword Left". +// +// Mnemonic : VPROLVQ +// Supported forms : (6 forms) +// +// * VPROLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPROLVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPROLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPROLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPROLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPROLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROLVQ", 3, Operands { v0, v1, v2 }) + // VPROLVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPROLVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPROLVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROLVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPROLVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPROLVQ") + } + return p +} + +// VPRORD performs "Rotate Packed Doubleword Right". +// +// Mnemonic : VPRORD +// Supported forms : (6 forms) +// +// * VPRORD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPRORD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPRORD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORD", 3, Operands { v0, v1, v2 }) + // VPRORD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORD") + } + return p +} + +// VPRORQ performs "Rotate Packed Quadword Right". +// +// Mnemonic : VPRORQ +// Supported forms : (6 forms) +// +// * VPRORQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPRORQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPRORQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORQ", 3, Operands { v0, v1, v2 }) + // VPRORQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(0, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPRORQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xc0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORQ") + } + return p +} + +// VPRORVD performs "Variable Rotate Packed Doubleword Right". +// +// Mnemonic : VPRORVD +// Supported forms : (6 forms) +// +// * VPRORVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPRORVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPRORVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORVD", 3, Operands { v0, v1, v2 }) + // VPRORVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPRORVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPRORVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPRORVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORVD") + } + return p +} + +// VPRORVQ performs "Variable Rotate Packed Quadword Right". +// +// Mnemonic : VPRORVQ +// Supported forms : (6 forms) +// +// * VPRORVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPRORVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPRORVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPRORVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPRORVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPRORVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPRORVQ", 3, Operands { v0, v1, v2 }) + // VPRORVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPRORVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPRORVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPRORVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPRORVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPRORVQ") + } + return p +} + +// VPROTB performs "Packed Rotate Bytes". +// +// Mnemonic : VPROTB +// Supported forms : (5 forms) +// +// * VPROTB imm8, xmm, xmm [XOP] +// * VPROTB xmm, xmm, xmm [XOP] +// * VPROTB m128, xmm, xmm [XOP] +// * VPROTB imm8, m128, xmm [XOP] +// * VPROTB xmm, m128, xmm [XOP] +// +func (self *Program) VPROTB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTB", 3, Operands { v0, v1, v2 }) + // VPROTB imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc0) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x90) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x90) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTB imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc0) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTB xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x90) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTB") + } + return p +} + +// VPROTD performs "Packed Rotate Doublewords". +// +// Mnemonic : VPROTD +// Supported forms : (5 forms) +// +// * VPROTD imm8, xmm, xmm [XOP] +// * VPROTD xmm, xmm, xmm [XOP] +// * VPROTD m128, xmm, xmm [XOP] +// * VPROTD imm8, m128, xmm [XOP] +// * VPROTD xmm, m128, xmm [XOP] +// +func (self *Program) VPROTD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTD", 3, Operands { v0, v1, v2 }) + // VPROTD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x92) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x92) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc2) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTD xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x92) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTD") + } + return p +} + +// VPROTQ performs "Packed Rotate Quadwords". +// +// Mnemonic : VPROTQ +// Supported forms : (5 forms) +// +// * VPROTQ imm8, xmm, xmm [XOP] +// * VPROTQ xmm, xmm, xmm [XOP] +// * VPROTQ m128, xmm, xmm [XOP] +// * VPROTQ imm8, m128, xmm [XOP] +// * VPROTQ xmm, m128, xmm [XOP] +// +func (self *Program) VPROTQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTQ", 3, Operands { v0, v1, v2 }) + // VPROTQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x93) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x93) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc3) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTQ xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x93) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTQ") + } + return p +} + +// VPROTW performs "Packed Rotate Words". +// +// Mnemonic : VPROTW +// Supported forms : (5 forms) +// +// * VPROTW imm8, xmm, xmm [XOP] +// * VPROTW xmm, xmm, xmm [XOP] +// * VPROTW m128, xmm, xmm [XOP] +// * VPROTW imm8, m128, xmm [XOP] +// * VPROTW xmm, m128, xmm [XOP] +// +func (self *Program) VPROTW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPROTW", 3, Operands { v0, v1, v2 }) + // VPROTW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe8 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x91) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x91) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPROTW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPROTW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1000, 0x00, hcode(v[2]), addr(v[1]), 0) + m.emit(0xc1) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPROTW xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x91) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPROTW") + } + return p +} + +// VPSADBW performs "Compute Sum of Absolute Differences". +// +// Mnemonic : VPSADBW +// Supported forms : (10 forms) +// +// * VPSADBW xmm, xmm, xmm [AVX] +// * VPSADBW m128, xmm, xmm [AVX] +// * VPSADBW ymm, ymm, ymm [AVX2] +// * VPSADBW m256, ymm, ymm [AVX2] +// * VPSADBW zmm, zmm, zmm [AVX512BW] +// * VPSADBW m512, zmm, zmm [AVX512BW] +// * VPSADBW xmm, xmm, xmm [AVX512BW,AVX512VL] +// * VPSADBW m128, xmm, xmm [AVX512BW,AVX512VL] +// * VPSADBW ymm, ymm, ymm [AVX512BW,AVX512VL] +// * VPSADBW m256, ymm, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPSADBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSADBW", 3, Operands { v0, v1, v2 }) + // VPSADBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSADBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSADBW zmm, zmm, zmm + if isZMM(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x40) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m512, zmm, zmm + if isM512(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSADBW xmm, xmm, xmm + if isEVEXXMM(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x00) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m128, xmm, xmm + if isM128(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSADBW ymm, ymm, ymm + if isEVEXYMM(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | 0x20) + m.emit(0xf6) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSADBW m256, ymm, ymm + if isM256(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), 0, 0, 0) + m.emit(0xf6) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSADBW") + } + return p +} + +// VPSCATTERDD performs "Scatter Packed Doubleword Values with Signed Doubleword Indices". +// +// Mnemonic : VPSCATTERDD +// Supported forms : (3 forms) +// +// * VPSCATTERDD zmm, vm32z{k} [AVX512F] +// * VPSCATTERDD xmm, vm32x{k} [AVX512F,AVX512VL] +// * VPSCATTERDD ymm, vm32y{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERDD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERDD", 2, Operands { v0, v1 }) + // VPSCATTERDD zmm, vm32z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERDD xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERDD ymm, vm32y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERDD") + } + return p +} + +// VPSCATTERDQ performs "Scatter Packed Quadword Values with Signed Doubleword Indices". +// +// Mnemonic : VPSCATTERDQ +// Supported forms : (3 forms) +// +// * VPSCATTERDQ zmm, vm32y{k} [AVX512F] +// * VPSCATTERDQ xmm, vm32x{k} [AVX512F,AVX512VL] +// * VPSCATTERDQ ymm, vm32x{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERDQ", 2, Operands { v0, v1 }) + // VPSCATTERDQ zmm, vm32y{k} + if isZMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERDQ xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERDQ ymm, vm32x{k} + if isEVEXYMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa0) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERDQ") + } + return p +} + +// VPSCATTERQD performs "Scatter Packed Doubleword Values with Signed Quadword Indices". +// +// Mnemonic : VPSCATTERQD +// Supported forms : (3 forms) +// +// * VPSCATTERQD ymm, vm64z{k} [AVX512F] +// * VPSCATTERQD xmm, vm64x{k} [AVX512F,AVX512VL] +// * VPSCATTERQD xmm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERQD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERQD", 2, Operands { v0, v1 }) + // VPSCATTERQD ymm, vm64z{k} + if isEVEXYMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERQD xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VPSCATTERQD xmm, vm64y{k} + if isEVEXXMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERQD") + } + return p +} + +// VPSCATTERQQ performs "Scatter Packed Quadword Values with Signed Quadword Indices". +// +// Mnemonic : VPSCATTERQQ +// Supported forms : (3 forms) +// +// * VPSCATTERQQ zmm, vm64z{k} [AVX512F] +// * VPSCATTERQQ xmm, vm64x{k} [AVX512F,AVX512VL] +// * VPSCATTERQQ ymm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VPSCATTERQQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPSCATTERQQ", 2, Operands { v0, v1 }) + // VPSCATTERQQ zmm, vm64z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERQQ xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VPSCATTERQQ ymm, vm64y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa1) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VPSCATTERQQ") + } + return p +} + +// VPSHAB performs "Packed Shift Arithmetic Bytes". +// +// Mnemonic : VPSHAB +// Supported forms : (3 forms) +// +// * VPSHAB xmm, xmm, xmm [XOP] +// * VPSHAB m128, xmm, xmm [XOP] +// * VPSHAB xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAB", 3, Operands { v0, v1, v2 }) + // VPSHAB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x98) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAB xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x98) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAB") + } + return p +} + +// VPSHAD performs "Packed Shift Arithmetic Doublewords". +// +// Mnemonic : VPSHAD +// Supported forms : (3 forms) +// +// * VPSHAD xmm, xmm, xmm [XOP] +// * VPSHAD m128, xmm, xmm [XOP] +// * VPSHAD xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAD", 3, Operands { v0, v1, v2 }) + // VPSHAD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x9a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAD xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x9a) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAD") + } + return p +} + +// VPSHAQ performs "Packed Shift Arithmetic Quadwords". +// +// Mnemonic : VPSHAQ +// Supported forms : (3 forms) +// +// * VPSHAQ xmm, xmm, xmm [XOP] +// * VPSHAQ m128, xmm, xmm [XOP] +// * VPSHAQ xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAQ", 3, Operands { v0, v1, v2 }) + // VPSHAQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x9b) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAQ xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x9b) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAQ") + } + return p +} + +// VPSHAW performs "Packed Shift Arithmetic Words". +// +// Mnemonic : VPSHAW +// Supported forms : (3 forms) +// +// * VPSHAW xmm, xmm, xmm [XOP] +// * VPSHAW m128, xmm, xmm [XOP] +// * VPSHAW xmm, m128, xmm [XOP] +// +func (self *Program) VPSHAW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHAW", 3, Operands { v0, v1, v2 }) + // VPSHAW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x99) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHAW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHAW xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x99) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHAW") + } + return p +} + +// VPSHLB performs "Packed Shift Logical Bytes". +// +// Mnemonic : VPSHLB +// Supported forms : (3 forms) +// +// * VPSHLB xmm, xmm, xmm [XOP] +// * VPSHLB m128, xmm, xmm [XOP] +// * VPSHLB xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLB", 3, Operands { v0, v1, v2 }) + // VPSHLB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x94) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x94) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x94) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLB xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x94) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLB") + } + return p +} + +// VPSHLD performs "Packed Shift Logical Doublewords". +// +// Mnemonic : VPSHLD +// Supported forms : (3 forms) +// +// * VPSHLD xmm, xmm, xmm [XOP] +// * VPSHLD m128, xmm, xmm [XOP] +// * VPSHLD xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLD", 3, Operands { v0, v1, v2 }) + // VPSHLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x96) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLD xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x96) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLD") + } + return p +} + +// VPSHLQ performs "Packed Shift Logical Quadwords". +// +// Mnemonic : VPSHLQ +// Supported forms : (3 forms) +// +// * VPSHLQ xmm, xmm, xmm [XOP] +// * VPSHLQ m128, xmm, xmm [XOP] +// * VPSHLQ xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLQ", 3, Operands { v0, v1, v2 }) + // VPSHLQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x97) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLQ xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x97) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLQ") + } + return p +} + +// VPSHLW performs "Packed Shift Logical Words". +// +// Mnemonic : VPSHLW +// Supported forms : (3 forms) +// +// * VPSHLW xmm, xmm, xmm [XOP] +// * VPSHLW m128, xmm, xmm [XOP] +// * VPSHLW xmm, m128, xmm [XOP] +// +func (self *Program) VPSHLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHLW", 3, Operands { v0, v1, v2 }) + // VPSHLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x78 ^ (hlcode(v[0]) << 3)) + m.emit(0x95) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x8f) + m.emit(0xe9 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf8 ^ (hlcode(v[1]) << 3)) + m.emit(0x95) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x80, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x95) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHLW xmm, m128, xmm + if isXMM(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_XOP) + p.domain = DomainAMDSpecific + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0x8f, 0b1001, 0x00, hcode(v[2]), addr(v[1]), hlcode(v[0])) + m.emit(0x95) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHLW") + } + return p +} + +// VPSHUFB performs "Packed Shuffle Bytes". +// +// Mnemonic : VPSHUFB +// Supported forms : (10 forms) +// +// * VPSHUFB xmm, xmm, xmm [AVX] +// * VPSHUFB m128, xmm, xmm [AVX] +// * VPSHUFB ymm, ymm, ymm [AVX2] +// * VPSHUFB m256, ymm, ymm [AVX2] +// * VPSHUFB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSHUFB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFB", 3, Operands { v0, v1, v2 }) + // VPSHUFB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHUFB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSHUFB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSHUFB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSHUFB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x00) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSHUFB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x00) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFB") + } + return p +} + +// VPSHUFD performs "Shuffle Packed Doublewords". +// +// Mnemonic : VPSHUFD +// Supported forms : (10 forms) +// +// * VPSHUFD imm8, xmm, xmm [AVX] +// * VPSHUFD imm8, m128, xmm [AVX] +// * VPSHUFD imm8, ymm, ymm [AVX2] +// * VPSHUFD imm8, m256, ymm [AVX2] +// * VPSHUFD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSHUFD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSHUFD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSHUFD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSHUFD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSHUFD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSHUFD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFD", 3, Operands { v0, v1, v2 }) + // VPSHUFD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFD") + } + return p +} + +// VPSHUFHW performs "Shuffle Packed High Words". +// +// Mnemonic : VPSHUFHW +// Supported forms : (10 forms) +// +// * VPSHUFHW imm8, xmm, xmm [AVX] +// * VPSHUFHW imm8, m128, xmm [AVX] +// * VPSHUFHW imm8, ymm, ymm [AVX2] +// * VPSHUFHW imm8, m256, ymm [AVX2] +// * VPSHUFHW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFHW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSHUFHW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFHW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFHW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFHW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSHUFHW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFHW", 3, Operands { v0, v1, v2 }) + // VPSHUFHW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(6, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFHW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFHW") + } + return p +} + +// VPSHUFLW performs "Shuffle Packed Low Words". +// +// Mnemonic : VPSHUFLW +// Supported forms : (10 forms) +// +// * VPSHUFLW imm8, xmm, xmm [AVX] +// * VPSHUFLW imm8, m128, xmm [AVX] +// * VPSHUFLW imm8, ymm, ymm [AVX2] +// * VPSHUFLW imm8, m256, ymm [AVX2] +// * VPSHUFLW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSHUFLW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSHUFLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSHUFLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSHUFLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSHUFLW", 3, Operands { v0, v1, v2 }) + // VPSHUFLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), v[1], 0) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(7, hcode(v[2]), addr(v[1]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7f) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x70) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSHUFLW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x07, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), 0) + m.emit(0x70) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSHUFLW") + } + return p +} + +// VPSIGNB performs "Packed Sign of Byte Integers". +// +// Mnemonic : VPSIGNB +// Supported forms : (4 forms) +// +// * VPSIGNB xmm, xmm, xmm [AVX] +// * VPSIGNB m128, xmm, xmm [AVX] +// * VPSIGNB ymm, ymm, ymm [AVX2] +// * VPSIGNB m256, ymm, ymm [AVX2] +// +func (self *Program) VPSIGNB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSIGNB", 3, Operands { v0, v1, v2 }) + // VPSIGNB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSIGNB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSIGNB") + } + return p +} + +// VPSIGND performs "Packed Sign of Doubleword Integers". +// +// Mnemonic : VPSIGND +// Supported forms : (4 forms) +// +// * VPSIGND xmm, xmm, xmm [AVX] +// * VPSIGND m128, xmm, xmm [AVX] +// * VPSIGND ymm, ymm, ymm [AVX2] +// * VPSIGND m256, ymm, ymm [AVX2] +// +func (self *Program) VPSIGND(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSIGND", 3, Operands { v0, v1, v2 }) + // VPSIGND xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGND m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSIGND ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGND m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x0a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSIGND") + } + return p +} + +// VPSIGNW performs "Packed Sign of Word Integers". +// +// Mnemonic : VPSIGNW +// Supported forms : (4 forms) +// +// * VPSIGNW xmm, xmm, xmm [AVX] +// * VPSIGNW m128, xmm, xmm [AVX] +// * VPSIGNW ymm, ymm, ymm [AVX2] +// * VPSIGNW m256, ymm, ymm [AVX2] +// +func (self *Program) VPSIGNW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSIGNW", 3, Operands { v0, v1, v2 }) + // VPSIGNW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSIGNW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSIGNW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPSIGNW") + } + return p +} + +// VPSLLD performs "Shift Packed Doubleword Data Left Logical". +// +// Mnemonic : VPSLLD +// Supported forms : (18 forms) +// +// * VPSLLD imm8, xmm, xmm [AVX] +// * VPSLLD xmm, xmm, xmm [AVX] +// * VPSLLD m128, xmm, xmm [AVX] +// * VPSLLD imm8, ymm, ymm [AVX2] +// * VPSLLD xmm, ymm, ymm [AVX2] +// * VPSLLD m128, ymm, ymm [AVX2] +// * VPSLLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSLLD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSLLD xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLD m128, zmm, zmm{k}{z} [AVX512F] +// * VPSLLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLD", 3, Operands { v0, v1, v2 }) + // VPSLLD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(6, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(6, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(6, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLD xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLD m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLD") + } + return p +} + +// VPSLLDQ performs "Shift Packed Double Quadword Left Logical". +// +// Mnemonic : VPSLLDQ +// Supported forms : (8 forms) +// +// * VPSLLDQ imm8, xmm, xmm [AVX] +// * VPSLLDQ imm8, ymm, ymm [AVX2] +// * VPSLLDQ imm8, zmm, zmm [AVX512BW] +// * VPSLLDQ imm8, m512, zmm [AVX512BW] +// * VPSLLDQ imm8, xmm, xmm [AVX512BW,AVX512VL] +// * VPSLLDQ imm8, m128, xmm [AVX512BW,AVX512VL] +// * VPSLLDQ imm8, ymm, ymm [AVX512BW,AVX512VL] +// * VPSLLDQ imm8, m256, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPSLLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLDQ", 3, Operands { v0, v1, v2 }) + // VPSLLDQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, zmm, zmm + if isImm8(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x40) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, m512, zmm + if isImm8(v0) && isM512(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(7, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, xmm, xmm + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(7, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, ymm, ymm + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x20) + m.emit(0x73) + m.emit(0xf8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLDQ imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(7, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLDQ") + } + return p +} + +// VPSLLQ performs "Shift Packed Quadword Data Left Logical". +// +// Mnemonic : VPSLLQ +// Supported forms : (18 forms) +// +// * VPSLLQ imm8, xmm, xmm [AVX] +// * VPSLLQ xmm, xmm, xmm [AVX] +// * VPSLLQ m128, xmm, xmm [AVX] +// * VPSLLQ imm8, ymm, ymm [AVX2] +// * VPSLLQ xmm, ymm, ymm [AVX2] +// * VPSLLQ m128, ymm, ymm [AVX2] +// * VPSLLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPSLLQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSLLQ xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLQ m128, zmm, zmm{k}{z} [AVX512F] +// * VPSLLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLQ", 3, Operands { v0, v1, v2 }) + // VPSLLQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(6, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(6, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(6, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x73) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLQ xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLQ m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLQ") + } + return p +} + +// VPSLLVD performs "Variable Shift Packed Doubleword Data Left Logical". +// +// Mnemonic : VPSLLVD +// Supported forms : (10 forms) +// +// * VPSLLVD xmm, xmm, xmm [AVX2] +// * VPSLLVD m128, xmm, xmm [AVX2] +// * VPSLLVD ymm, ymm, ymm [AVX2] +// * VPSLLVD m256, ymm, ymm [AVX2] +// * VPSLLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLVD", 3, Operands { v0, v1, v2 }) + // VPSLLVD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSLLVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSLLVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLVD") + } + return p +} + +// VPSLLVQ performs "Variable Shift Packed Quadword Data Left Logical". +// +// Mnemonic : VPSLLVQ +// Supported forms : (10 forms) +// +// * VPSLLVQ xmm, xmm, xmm [AVX2] +// * VPSLLVQ m128, xmm, xmm [AVX2] +// * VPSLLVQ ymm, ymm, ymm [AVX2] +// * VPSLLVQ m256, ymm, ymm [AVX2] +// * VPSLLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSLLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSLLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSLLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLVQ", 3, Operands { v0, v1, v2 }) + // VPSLLVQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSLLVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x47) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSLLVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x47) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLVQ") + } + return p +} + +// VPSLLVW performs "Variable Shift Packed Word Data Left Logical". +// +// Mnemonic : VPSLLVW +// Supported forms : (6 forms) +// +// * VPSLLVW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLVW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSLLVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLVW", 3, Operands { v0, v1, v2 }) + // VPSLLVW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSLLVW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLVW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x12) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLVW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x12) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLVW") + } + return p +} + +// VPSLLW performs "Shift Packed Word Data Left Logical". +// +// Mnemonic : VPSLLW +// Supported forms : (18 forms) +// +// * VPSLLW imm8, xmm, xmm [AVX] +// * VPSLLW xmm, xmm, xmm [AVX] +// * VPSLLW m128, xmm, xmm [AVX] +// * VPSLLW imm8, ymm, ymm [AVX2] +// * VPSLLW xmm, ymm, ymm [AVX2] +// * VPSLLW m128, ymm, ymm [AVX2] +// * VPSLLW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLW xmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLW m128, zmm, zmm{k}{z} [AVX512BW] +// * VPSLLW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSLLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSLLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSLLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSLLW", 3, Operands { v0, v1, v2 }) + // VPSLLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSLLW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(6, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x71) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSLLW m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSLLW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(6, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSLLW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(6, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSLLW") + } + return p +} + +// VPSRAD performs "Shift Packed Doubleword Data Right Arithmetic". +// +// Mnemonic : VPSRAD +// Supported forms : (18 forms) +// +// * VPSRAD imm8, xmm, xmm [AVX] +// * VPSRAD xmm, xmm, xmm [AVX] +// * VPSRAD m128, xmm, xmm [AVX] +// * VPSRAD imm8, ymm, ymm [AVX2] +// * VPSRAD xmm, ymm, ymm [AVX2] +// * VPSRAD m128, ymm, ymm [AVX2] +// * VPSRAD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSRAD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRAD xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAD m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRAD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAD", 3, Operands { v0, v1, v2 }) + // VPSRAD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAD xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAD m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAD") + } + return p +} + +// VPSRAQ performs "Shift Packed Quadword Data Right Arithmetic". +// +// Mnemonic : VPSRAQ +// Supported forms : (12 forms) +// +// * VPSRAQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPSRAQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRAQ xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAQ m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRAQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAQ", 3, Operands { v0, v1, v2 }) + // VPSRAQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAQ m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(4, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAQ m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAQ xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAQ m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAQ") + } + return p +} + +// VPSRAVD performs "Variable Shift Packed Doubleword Data Right Arithmetic". +// +// Mnemonic : VPSRAVD +// Supported forms : (10 forms) +// +// * VPSRAVD xmm, xmm, xmm [AVX2] +// * VPSRAVD m128, xmm, xmm [AVX2] +// * VPSRAVD ymm, ymm, ymm [AVX2] +// * VPSRAVD m256, ymm, ymm [AVX2] +// * VPSRAVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAVD", 3, Operands { v0, v1, v2 }) + // VPSRAVD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAVD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRAVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRAVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAVD") + } + return p +} + +// VPSRAVQ performs "Variable Shift Packed Quadword Data Right Arithmetic". +// +// Mnemonic : VPSRAVQ +// Supported forms : (6 forms) +// +// * VPSRAVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRAVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRAVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRAVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAVQ", 3, Operands { v0, v1, v2 }) + // VPSRAVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRAVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x46) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRAVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x46) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAVQ") + } + return p +} + +// VPSRAVW performs "Variable Shift Packed Word Data Right Arithmetic". +// +// Mnemonic : VPSRAVW +// Supported forms : (6 forms) +// +// * VPSRAVW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAVW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRAVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAVW", 3, Operands { v0, v1, v2 }) + // VPSRAVW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x11) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x11) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRAVW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x11) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x11) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAVW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x11) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAVW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x11) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAVW") + } + return p +} + +// VPSRAW performs "Shift Packed Word Data Right Arithmetic". +// +// Mnemonic : VPSRAW +// Supported forms : (18 forms) +// +// * VPSRAW imm8, xmm, xmm [AVX] +// * VPSRAW xmm, xmm, xmm [AVX] +// * VPSRAW m128, xmm, xmm [AVX] +// * VPSRAW imm8, ymm, ymm [AVX2] +// * VPSRAW xmm, ymm, ymm [AVX2] +// * VPSRAW m128, ymm, ymm [AVX2] +// * VPSRAW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAW xmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAW m128, zmm, zmm{k}{z} [AVX512BW] +// * VPSRAW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSRAW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRAW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRAW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRAW", 3, Operands { v0, v1, v2 }) + // VPSRAW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRAW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(4, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x71) + m.emit(0xe0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRAW m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRAW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(4, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRAW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(4, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRAW") + } + return p +} + +// VPSRLD performs "Shift Packed Doubleword Data Right Logical". +// +// Mnemonic : VPSRLD +// Supported forms : (18 forms) +// +// * VPSRLD imm8, xmm, xmm [AVX] +// * VPSRLD xmm, xmm, xmm [AVX] +// * VPSRLD m128, xmm, xmm [AVX] +// * VPSRLD imm8, ymm, ymm [AVX2] +// * VPSRLD xmm, ymm, ymm [AVX2] +// * VPSRLD m128, ymm, ymm [AVX2] +// * VPSRLD imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VPSRLD imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRLD xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLD m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRLD imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLD m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLD", 3, Operands { v0, v1, v2 }) + // VPSRLD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLD imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(2, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLD imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(2, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x72) + m.mrsd(2, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x72) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLD xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd2) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLD m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd2) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLD") + } + return p +} + +// VPSRLDQ performs "Shift Packed Double Quadword Right Logical". +// +// Mnemonic : VPSRLDQ +// Supported forms : (8 forms) +// +// * VPSRLDQ imm8, xmm, xmm [AVX] +// * VPSRLDQ imm8, ymm, ymm [AVX2] +// * VPSRLDQ imm8, zmm, zmm [AVX512BW] +// * VPSRLDQ imm8, m512, zmm [AVX512BW] +// * VPSRLDQ imm8, xmm, xmm [AVX512BW,AVX512VL] +// * VPSRLDQ imm8, m128, xmm [AVX512BW,AVX512VL] +// * VPSRLDQ imm8, ymm, ymm [AVX512BW,AVX512VL] +// * VPSRLDQ imm8, m256, ymm [AVX512BW,AVX512VL] +// +func (self *Program) VPSRLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLDQ", 3, Operands { v0, v1, v2 }) + // VPSRLDQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, zmm, zmm + if isImm8(v0) && isZMM(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x40) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, m512, zmm + if isImm8(v0) && isM512(v1) && isZMM(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(3, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, xmm, xmm + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x00) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isEVEXXMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(3, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, ymm, ymm + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((0x08 ^ (ecode(v[2]) << 3)) | 0x20) + m.emit(0x73) + m.emit(0xd8 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLDQ imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isEVEXYMM(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), 0, 0, 0) + m.emit(0x73) + m.mrsd(3, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLDQ") + } + return p +} + +// VPSRLQ performs "Shift Packed Quadword Data Right Logical". +// +// Mnemonic : VPSRLQ +// Supported forms : (18 forms) +// +// * VPSRLQ imm8, xmm, xmm [AVX] +// * VPSRLQ xmm, xmm, xmm [AVX] +// * VPSRLQ m128, xmm, xmm [AVX] +// * VPSRLQ imm8, ymm, ymm [AVX2] +// * VPSRLQ xmm, ymm, ymm [AVX2] +// * VPSRLQ m128, ymm, ymm [AVX2] +// * VPSRLQ imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VPSRLQ imm8, zmm, zmm{k}{z} [AVX512F] +// * VPSRLQ xmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLQ m128, zmm, zmm{k}{z} [AVX512F] +// * VPSRLQ imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ m128, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ xmm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLQ m128, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLQ", 3, Operands { v0, v1, v2 }) + // VPSRLQ imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLQ imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLQ imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(2, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLQ imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(2, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x73) + m.mrsd(2, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLQ imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x73) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLQ xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd3) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLQ m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd3) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLQ") + } + return p +} + +// VPSRLVD performs "Variable Shift Packed Doubleword Data Right Logical". +// +// Mnemonic : VPSRLVD +// Supported forms : (10 forms) +// +// * VPSRLVD xmm, xmm, xmm [AVX2] +// * VPSRLVD m128, xmm, xmm [AVX2] +// * VPSRLVD ymm, ymm, ymm [AVX2] +// * VPSRLVD m256, ymm, ymm [AVX2] +// * VPSRLVD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLVD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLVD", 3, Operands { v0, v1, v2 }) + // VPSRLVD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79 ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRLVD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLVD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRLVD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLVD") + } + return p +} + +// VPSRLVQ performs "Variable Shift Packed Quadword Data Right Logical". +// +// Mnemonic : VPSRLVQ +// Supported forms : (10 forms) +// +// * VPSRLVQ xmm, xmm, xmm [AVX2] +// * VPSRLVQ m128, xmm, xmm [AVX2] +// * VPSRLVQ ymm, ymm, ymm [AVX2] +// * VPSRLVQ m256, ymm, ymm [AVX2] +// * VPSRLVQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSRLVQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSRLVQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSRLVQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLVQ", 3, Operands { v0, v1, v2 }) + // VPSRLVQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xf9 ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x81, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[2]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x85, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLVQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRLVQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLVQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x45) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSRLVQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x45) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLVQ") + } + return p +} + +// VPSRLVW performs "Variable Shift Packed Word Data Right Logical". +// +// Mnemonic : VPSRLVW +// Supported forms : (6 forms) +// +// * VPSRLVW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLVW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLVW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLVW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLVW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLVW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRLVW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLVW", 3, Operands { v0, v1, v2 }) + // VPSRLVW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSRLVW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLVW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x10) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLVW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x10) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLVW") + } + return p +} + +// VPSRLW performs "Shift Packed Word Data Right Logical". +// +// Mnemonic : VPSRLW +// Supported forms : (18 forms) +// +// * VPSRLW imm8, xmm, xmm [AVX] +// * VPSRLW xmm, xmm, xmm [AVX] +// * VPSRLW m128, xmm, xmm [AVX] +// * VPSRLW imm8, ymm, ymm [AVX2] +// * VPSRLW xmm, ymm, ymm [AVX2] +// * VPSRLW m128, ymm, ymm [AVX2] +// * VPSRLW imm8, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLW xmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLW m128, zmm, zmm{k}{z} [AVX512BW] +// * VPSRLW imm8, m512, zmm{k}{z} [AVX512BW] +// * VPSRLW imm8, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW imm8, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW xmm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW m128, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW imm8, m128, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSRLW imm8, m256, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSRLW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSRLW", 3, Operands { v0, v1, v2 }) + // VPSRLW imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLW imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, 0, v[1], hlcode(v[2])) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, ymm, ymm + if isXMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, ymm, ymm + if isM128(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSRLW imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, zmm, zmm{k}{z} + if isEVEXXMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, zmm, zmm{k}{z} + if isM128(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLW imm8, m512, zmm{k}{z} + if isImm8(v0) && isM512(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(2, addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLW imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ (ehcode(v[1]) << 5)) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x71) + m.emit(0xd0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW xmm, ymm, ymm{k}{z} + if isEVEXXMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd1) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSRLW m128, ymm, ymm{k}{z} + if isM128(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd1) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSRLW imm8, m128, xmm{k}{z} + if isImm8(v0) && isM128(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(2, addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPSRLW imm8, m256, ymm{k}{z} + if isImm8(v0) && isM256(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, 0, addr(v[1]), vcode(v[2]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x71) + m.mrsd(2, addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSRLW") + } + return p +} + +// VPSUBB performs "Subtract Packed Byte Integers". +// +// Mnemonic : VPSUBB +// Supported forms : (10 forms) +// +// * VPSUBB xmm, xmm, xmm [AVX] +// * VPSUBB m128, xmm, xmm [AVX] +// * VPSUBB ymm, ymm, ymm [AVX2] +// * VPSUBB m256, ymm, ymm [AVX2] +// * VPSUBB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBB", 3, Operands { v0, v1, v2 }) + // VPSUBB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBB") + } + return p +} + +// VPSUBD performs "Subtract Packed Doubleword Integers". +// +// Mnemonic : VPSUBD +// Supported forms : (10 forms) +// +// * VPSUBD xmm, xmm, xmm [AVX] +// * VPSUBD m128, xmm, xmm [AVX] +// * VPSUBD ymm, ymm, ymm [AVX2] +// * VPSUBD m256, ymm, ymm [AVX2] +// * VPSUBD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSUBD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSUBD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSUBD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSUBD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBD", 3, Operands { v0, v1, v2 }) + // VPSUBD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfa) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSUBD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfa) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBD") + } + return p +} + +// VPSUBQ performs "Subtract Packed Quadword Integers". +// +// Mnemonic : VPSUBQ +// Supported forms : (10 forms) +// +// * VPSUBQ xmm, xmm, xmm [AVX] +// * VPSUBQ m128, xmm, xmm [AVX] +// * VPSUBQ ymm, ymm, ymm [AVX2] +// * VPSUBQ m256, ymm, ymm [AVX2] +// * VPSUBQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPSUBQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPSUBQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPSUBQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPSUBQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPSUBQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBQ", 3, Operands { v0, v1, v2 }) + // VPSUBQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xfb) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPSUBQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xfb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBQ") + } + return p +} + +// VPSUBSB performs "Subtract Packed Signed Byte Integers with Signed Saturation". +// +// Mnemonic : VPSUBSB +// Supported forms : (10 forms) +// +// * VPSUBSB xmm, xmm, xmm [AVX] +// * VPSUBSB m128, xmm, xmm [AVX] +// * VPSUBSB ymm, ymm, ymm [AVX2] +// * VPSUBSB m256, ymm, ymm [AVX2] +// * VPSUBSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBSB", 3, Operands { v0, v1, v2 }) + // VPSUBSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBSB") + } + return p +} + +// VPSUBSW performs "Subtract Packed Signed Word Integers with Signed Saturation". +// +// Mnemonic : VPSUBSW +// Supported forms : (10 forms) +// +// * VPSUBSW xmm, xmm, xmm [AVX] +// * VPSUBSW m128, xmm, xmm [AVX] +// * VPSUBSW ymm, ymm, ymm [AVX2] +// * VPSUBSW m256, ymm, ymm [AVX2] +// * VPSUBSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBSW", 3, Operands { v0, v1, v2 }) + // VPSUBSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xe9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xe9) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBSW") + } + return p +} + +// VPSUBUSB performs "Subtract Packed Unsigned Byte Integers with Unsigned Saturation". +// +// Mnemonic : VPSUBUSB +// Supported forms : (10 forms) +// +// * VPSUBUSB xmm, xmm, xmm [AVX] +// * VPSUBUSB m128, xmm, xmm [AVX] +// * VPSUBUSB ymm, ymm, ymm [AVX2] +// * VPSUBUSB m256, ymm, ymm [AVX2] +// * VPSUBUSB zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSB m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSB xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSB m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSB ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSB m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBUSB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBUSB", 3, Operands { v0, v1, v2 }) + // VPSUBUSB xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSB ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSB zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBUSB xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBUSB ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd8) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSB m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd8) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBUSB") + } + return p +} + +// VPSUBUSW performs "Subtract Packed Unsigned Word Integers with Unsigned Saturation". +// +// Mnemonic : VPSUBUSW +// Supported forms : (10 forms) +// +// * VPSUBUSW xmm, xmm, xmm [AVX] +// * VPSUBUSW m128, xmm, xmm [AVX] +// * VPSUBUSW ymm, ymm, ymm [AVX2] +// * VPSUBUSW m256, ymm, ymm [AVX2] +// * VPSUBUSW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBUSW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBUSW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBUSW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBUSW", 3, Operands { v0, v1, v2 }) + // VPSUBUSW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBUSW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBUSW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBUSW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xd9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBUSW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xd9) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBUSW") + } + return p +} + +// VPSUBW performs "Subtract Packed Word Integers". +// +// Mnemonic : VPSUBW +// Supported forms : (10 forms) +// +// * VPSUBW xmm, xmm, xmm [AVX] +// * VPSUBW m128, xmm, xmm [AVX] +// * VPSUBW ymm, ymm, ymm [AVX2] +// * VPSUBW m256, ymm, ymm [AVX2] +// * VPSUBW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPSUBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPSUBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPSUBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPSUBW", 3, Operands { v0, v1, v2 }) + // VPSUBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPSUBW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPSUBW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPSUBW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xf9) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPSUBW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xf9) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPSUBW") + } + return p +} + +// VPTERNLOGD performs "Bitwise Ternary Logical Operation on Doubleword Values". +// +// Mnemonic : VPTERNLOGD +// Supported forms : (6 forms) +// +// * VPTERNLOGD imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGD imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGD imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGD imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPTERNLOGD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPTERNLOGD", 4, Operands { v0, v1, v2, v3 }) + // VPTERNLOGD imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, m128/m32bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGD imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTERNLOGD") + } + return p +} + +// VPTERNLOGQ performs "Bitwise Ternary Logical Operation on Quadword Values". +// +// Mnemonic : VPTERNLOGQ +// Supported forms : (6 forms) +// +// * VPTERNLOGQ imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGQ imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VPTERNLOGQ imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGQ imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGQ imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPTERNLOGQ imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPTERNLOGQ(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VPTERNLOGQ", 4, Operands { v0, v1, v2, v3 }) + // VPTERNLOGQ imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, m128/m64bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x25) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VPTERNLOGQ imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x25) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTERNLOGQ") + } + return p +} + +// VPTEST performs "Packed Logical Compare". +// +// Mnemonic : VPTEST +// Supported forms : (4 forms) +// +// * VPTEST xmm, xmm [AVX] +// * VPTEST m128, xmm [AVX] +// * VPTEST ymm, ymm [AVX] +// * VPTEST m256, ymm [AVX] +// +func (self *Program) VPTEST(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VPTEST", 2, Operands { v0, v1 }) + // VPTEST xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPTEST m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VPTEST ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x17) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VPTEST m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x17) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPTEST") + } + return p +} + +// VPTESTMB performs "Logical AND of Packed Byte Integer Values and Set Mask". +// +// Mnemonic : VPTESTMB +// Supported forms : (6 forms) +// +// * VPTESTMB zmm, zmm, k{k} [AVX512BW] +// * VPTESTMB m512, zmm, k{k} [AVX512BW] +// * VPTESTMB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMB", 3, Operands { v0, v1, v2 }) + // VPTESTMB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMB") + } + return p +} + +// VPTESTMD performs "Logical AND of Packed Doubleword Integer Values and Set Mask". +// +// Mnemonic : VPTESTMD +// Supported forms : (6 forms) +// +// * VPTESTMD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPTESTMD zmm, zmm, k{k} [AVX512F] +// * VPTESTMD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTMD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMD", 3, Operands { v0, v1, v2 }) + // VPTESTMD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTMD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMD") + } + return p +} + +// VPTESTMQ performs "Logical AND of Packed Quadword Integer Values and Set Mask". +// +// Mnemonic : VPTESTMQ +// Supported forms : (6 forms) +// +// * VPTESTMQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPTESTMQ zmm, zmm, k{k} [AVX512F] +// * VPTESTMQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTMQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTMQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMQ", 3, Operands { v0, v1, v2 }) + // VPTESTMQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTMQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMQ") + } + return p +} + +// VPTESTMW performs "Logical AND of Packed Word Integer Values and Set Mask". +// +// Mnemonic : VPTESTMW +// Supported forms : (6 forms) +// +// * VPTESTMW zmm, zmm, k{k} [AVX512BW] +// * VPTESTMW m512, zmm, k{k} [AVX512BW] +// * VPTESTMW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTMW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTMW", 3, Operands { v0, v1, v2 }) + // VPTESTMW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTMW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTMW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTMW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTMW") + } + return p +} + +// VPTESTNMB performs "Logical NAND of Packed Byte Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMB +// Supported forms : (6 forms) +// +// * VPTESTNMB zmm, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMB m512, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMB xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMB m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMB ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMB m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTNMB(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMB", 3, Operands { v0, v1, v2 }) + // VPTESTNMB zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMB m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMB xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMB m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMB ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMB m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMB") + } + return p +} + +// VPTESTNMD performs "Logical NAND of Packed Doubleword Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMD +// Supported forms : (6 forms) +// +// * VPTESTNMD m512/m32bcst, zmm, k{k} [AVX512F] +// * VPTESTNMD zmm, zmm, k{k} [AVX512F] +// * VPTESTNMD m128/m32bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMD xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMD m256/m32bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMD ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTNMD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMD", 3, Operands { v0, v1, v2 }) + // VPTESTNMD m512/m32bcst, zmm, k{k} + if isM512M32bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMD zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMD m128/m32bcst, xmm, k{k} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMD xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMD m256/m32bcst, ymm, k{k} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x06, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTNMD ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMD") + } + return p +} + +// VPTESTNMQ performs "Logical NAND of Packed Quadword Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMQ +// Supported forms : (6 forms) +// +// * VPTESTNMQ m512/m64bcst, zmm, k{k} [AVX512F] +// * VPTESTNMQ zmm, zmm, k{k} [AVX512F] +// * VPTESTNMQ m128/m64bcst, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMQ xmm, xmm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMQ m256/m64bcst, ymm, k{k} [AVX512F,AVX512VL] +// * VPTESTNMQ ymm, ymm, k{k} [AVX512F,AVX512VL] +// +func (self *Program) VPTESTNMQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMQ", 3, Operands { v0, v1, v2 }) + // VPTESTNMQ m512/m64bcst, zmm, k{k} + if isM512M64bcst(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMQ zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMQ m128/m64bcst, xmm, k{k} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMQ xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMQ m256/m64bcst, ymm, k{k} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, bcode(v[0])) + m.emit(0x27) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPTESTNMQ ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x27) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMQ") + } + return p +} + +// VPTESTNMW performs "Logical NAND of Packed Word Integer Values and Set Mask". +// +// Mnemonic : VPTESTNMW +// Supported forms : (6 forms) +// +// * VPTESTNMW zmm, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMW m512, zmm, k{k} [AVX512BW,AVX512F] +// * VPTESTNMW xmm, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMW m128, xmm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMW ymm, ymm, k{k} [AVX512BW,AVX512VL] +// * VPTESTNMW m256, ymm, k{k} [AVX512BW,AVX512VL] +// +func (self *Program) VPTESTNMW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPTESTNMW", 3, Operands { v0, v1, v2 }) + // VPTESTNMW zmm, zmm, k{k} + if isZMM(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMW m512, zmm, k{k} + if isM512(v0) && isZMM(v1) && isKk(v2) { + self.require(ISA_AVX512F | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPTESTNMW xmm, xmm, k{k} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMW m128, xmm, k{k} + if isM128(v0) && isEVEXXMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPTESTNMW ymm, ymm, k{k} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfe ^ (hlcode(v[1]) << 3)) + m.emit((0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x26) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPTESTNMW m256, ymm, k{k} + if isM256(v0) && isEVEXYMM(v1) && isKk(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x86, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), 0, 0) + m.emit(0x26) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPTESTNMW") + } + return p +} + +// VPUNPCKHBW performs "Unpack and Interleave High-Order Bytes into Words". +// +// Mnemonic : VPUNPCKHBW +// Supported forms : (10 forms) +// +// * VPUNPCKHBW xmm, xmm, xmm [AVX] +// * VPUNPCKHBW m128, xmm, xmm [AVX] +// * VPUNPCKHBW ymm, ymm, ymm [AVX2] +// * VPUNPCKHBW m256, ymm, ymm [AVX2] +// * VPUNPCKHBW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHBW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKHBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHBW", 3, Operands { v0, v1, v2 }) + // VPUNPCKHBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHBW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHBW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHBW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x68) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHBW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x68) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHBW") + } + return p +} + +// VPUNPCKHDQ performs "Unpack and Interleave High-Order Doublewords into Quadwords". +// +// Mnemonic : VPUNPCKHDQ +// Supported forms : (10 forms) +// +// * VPUNPCKHDQ xmm, xmm, xmm [AVX] +// * VPUNPCKHDQ m128, xmm, xmm [AVX] +// * VPUNPCKHDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKHDQ m256, ymm, ymm [AVX2] +// * VPUNPCKHDQ m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHDQ m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHDQ m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKHDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKHDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHDQ m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHDQ m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6a) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKHDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6a) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHDQ") + } + return p +} + +// VPUNPCKHQDQ performs "Unpack and Interleave High-Order Quadwords into Double Quadwords". +// +// Mnemonic : VPUNPCKHQDQ +// Supported forms : (10 forms) +// +// * VPUNPCKHQDQ xmm, xmm, xmm [AVX] +// * VPUNPCKHQDQ m128, xmm, xmm [AVX] +// * VPUNPCKHQDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKHQDQ m256, ymm, ymm [AVX2] +// * VPUNPCKHQDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHQDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKHQDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHQDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHQDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKHQDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKHQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHQDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKHQDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHQDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHQDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHQDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHQDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHQDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6d) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKHQDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHQDQ") + } + return p +} + +// VPUNPCKHWD performs "Unpack and Interleave High-Order Words into Doublewords". +// +// Mnemonic : VPUNPCKHWD +// Supported forms : (10 forms) +// +// * VPUNPCKHWD xmm, xmm, xmm [AVX] +// * VPUNPCKHWD m128, xmm, xmm [AVX] +// * VPUNPCKHWD ymm, ymm, ymm [AVX2] +// * VPUNPCKHWD m256, ymm, ymm [AVX2] +// * VPUNPCKHWD zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHWD m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKHWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKHWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKHWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKHWD", 3, Operands { v0, v1, v2 }) + // VPUNPCKHWD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHWD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKHWD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKHWD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKHWD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x69) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKHWD m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x69) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKHWD") + } + return p +} + +// VPUNPCKLBW performs "Unpack and Interleave Low-Order Bytes into Words". +// +// Mnemonic : VPUNPCKLBW +// Supported forms : (10 forms) +// +// * VPUNPCKLBW xmm, xmm, xmm [AVX] +// * VPUNPCKLBW m128, xmm, xmm [AVX] +// * VPUNPCKLBW ymm, ymm, ymm [AVX2] +// * VPUNPCKLBW m256, ymm, ymm [AVX2] +// * VPUNPCKLBW zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLBW m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLBW xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLBW m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLBW ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLBW m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKLBW(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLBW", 3, Operands { v0, v1, v2 }) + // VPUNPCKLBW xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLBW ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLBW zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLBW xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLBW ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x60) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLBW m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x60) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLBW") + } + return p +} + +// VPUNPCKLDQ performs "Unpack and Interleave Low-Order Doublewords into Quadwords". +// +// Mnemonic : VPUNPCKLDQ +// Supported forms : (10 forms) +// +// * VPUNPCKLDQ xmm, xmm, xmm [AVX] +// * VPUNPCKLDQ m128, xmm, xmm [AVX] +// * VPUNPCKLDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKLDQ m256, ymm, ymm [AVX2] +// * VPUNPCKLDQ m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLDQ m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLDQ m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKLDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKLDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLDQ m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLDQ m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x62) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKLDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x62) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLDQ") + } + return p +} + +// VPUNPCKLQDQ performs "Unpack and Interleave Low-Order Quadwords into Double Quadwords". +// +// Mnemonic : VPUNPCKLQDQ +// Supported forms : (10 forms) +// +// * VPUNPCKLQDQ xmm, xmm, xmm [AVX] +// * VPUNPCKLQDQ m128, xmm, xmm [AVX] +// * VPUNPCKLQDQ ymm, ymm, ymm [AVX2] +// * VPUNPCKLQDQ m256, ymm, ymm [AVX2] +// * VPUNPCKLQDQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLQDQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPUNPCKLQDQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLQDQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLQDQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPUNPCKLQDQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPUNPCKLQDQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLQDQ", 3, Operands { v0, v1, v2 }) + // VPUNPCKLQDQ xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLQDQ ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLQDQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLQDQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLQDQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLQDQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x6c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPUNPCKLQDQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x6c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLQDQ") + } + return p +} + +// VPUNPCKLWD performs "Unpack and Interleave Low-Order Words into Doublewords". +// +// Mnemonic : VPUNPCKLWD +// Supported forms : (10 forms) +// +// * VPUNPCKLWD xmm, xmm, xmm [AVX] +// * VPUNPCKLWD m128, xmm, xmm [AVX] +// * VPUNPCKLWD ymm, ymm, ymm [AVX2] +// * VPUNPCKLWD m256, ymm, ymm [AVX2] +// * VPUNPCKLWD zmm, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLWD m512, zmm, zmm{k}{z} [AVX512BW] +// * VPUNPCKLWD xmm, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLWD m128, xmm, xmm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLWD ymm, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// * VPUNPCKLWD m256, ymm, ymm{k}{z} [AVX512BW,AVX512VL] +// +func (self *Program) VPUNPCKLWD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPUNPCKLWD", 3, Operands { v0, v1, v2 }) + // VPUNPCKLWD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLWD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPUNPCKLWD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m512, zmm, zmm{k}{z} + if isM512(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPUNPCKLWD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m128, xmm, xmm{k}{z} + if isM128(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPUNPCKLWD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x61) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPUNPCKLWD m256, ymm, ymm{k}{z} + if isM256(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512BW) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x61) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + if p.len == 0 { + panic("invalid operands for VPUNPCKLWD") + } + return p +} + +// VPXOR performs "Packed Bitwise Logical Exclusive OR". +// +// Mnemonic : VPXOR +// Supported forms : (4 forms) +// +// * VPXOR xmm, xmm, xmm [AVX] +// * VPXOR m128, xmm, xmm [AVX] +// * VPXOR ymm, ymm, ymm [AVX2] +// * VPXOR m256, ymm, ymm [AVX2] +// +func (self *Program) VPXOR(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPXOR", 3, Operands { v0, v1, v2 }) + // VPXOR xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXOR m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VPXOR ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXOR m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX2) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VPXOR") + } + return p +} + +// VPXORD performs "Bitwise Logical Exclusive OR of Packed Doubleword Integers". +// +// Mnemonic : VPXORD +// Supported forms : (6 forms) +// +// * VPXORD m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VPXORD zmm, zmm, zmm{k}{z} [AVX512F] +// * VPXORD m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORD m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPXORD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPXORD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPXORD", 3, Operands { v0, v1, v2 }) + // VPXORD m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPXORD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORD m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPXORD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORD m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPXORD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPXORD") + } + return p +} + +// VPXORQ performs "Bitwise Logical Exclusive OR of Packed Quadword Integers". +// +// Mnemonic : VPXORQ +// Supported forms : (6 forms) +// +// * VPXORQ m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VPXORQ zmm, zmm, zmm{k}{z} [AVX512F] +// * VPXORQ m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORQ xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VPXORQ m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VPXORQ ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VPXORQ(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VPXORQ", 3, Operands { v0, v1, v2 }) + // VPXORQ m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VPXORQ zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORQ m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VPXORQ xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VPXORQ m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0xef) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VPXORQ ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0xef) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VPXORQ") + } + return p +} + +// VRANGEPD performs "Range Restriction Calculation For Packed Pairs of Double-Precision Floating-Point Values". +// +// Mnemonic : VRANGEPD +// Supported forms : (7 forms) +// +// * VRANGEPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPD imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPD imm8, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPD imm8, ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VRANGEPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGEPD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGEPD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGEPD takes 4 or 5 operands") + } + // VRANGEPD imm8, m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x50) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPD imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGEPD") + } + return p +} + +// VRANGEPS performs "Range Restriction Calculation For Packed Pairs of Single-Precision Floating-Point Values". +// +// Mnemonic : VRANGEPS +// Supported forms : (7 forms) +// +// * VRANGEPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPS imm8, {sae}, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPS imm8, zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VRANGEPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VRANGEPS imm8, ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VRANGEPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGEPS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGEPS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGEPS takes 4 or 5 operands") + } + // VRANGEPS imm8, m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, {sae}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMM(v3) && isZMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x50) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x50) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGEPS imm8, ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x50) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGEPS") + } + return p +} + +// VRANGESD performs "Range Restriction Calculation For a pair of Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VRANGESD +// Supported forms : (3 forms) +// +// * VRANGESD imm8, m64, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VRANGESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGESD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGESD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGESD takes 4 or 5 operands") + } + // VRANGESD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x51) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGESD") + } + return p +} + +// VRANGESS performs "Range Restriction Calculation For a pair of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VRANGESS +// Supported forms : (3 forms) +// +// * VRANGESS imm8, m32, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VRANGESS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VRANGESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRANGESS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRANGESS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRANGESS takes 4 or 5 operands") + } + // VRANGESS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x51) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRANGESS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRANGESS") + } + return p +} + +// VRCP14PD performs "Compute Approximate Reciprocals of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VRCP14PD +// Supported forms : (6 forms) +// +// * VRCP14PD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VRCP14PD zmm, zmm{k}{z} [AVX512F] +// * VRCP14PD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRCP14PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRCP14PD", 2, Operands { v0, v1 }) + // VRCP14PD m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP14PD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PD m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRCP14PD m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRCP14PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14PD") + } + return p +} + +// VRCP14PS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRCP14PS +// Supported forms : (6 forms) +// +// * VRCP14PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VRCP14PS zmm, zmm{k}{z} [AVX512F] +// * VRCP14PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRCP14PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRCP14PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRCP14PS", 2, Operands { v0, v1 }) + // VRCP14PS m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP14PS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PS m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRCP14PS m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4c) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRCP14PS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCP14PS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4c) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14PS") + } + return p +} + +// VRCP14SD performs "Compute Approximate Reciprocal of a Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VRCP14SD +// Supported forms : (2 forms) +// +// * VRCP14SD xmm, xmm, xmm{k}{z} [AVX512F] +// * VRCP14SD m64, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRCP14SD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRCP14SD", 3, Operands { v0, v1, v2 }) + // VRCP14SD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRCP14SD m64, xmm, xmm{k}{z} + if isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14SD") + } + return p +} + +// VRCP14SS performs "Compute Approximate Reciprocal of a Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VRCP14SS +// Supported forms : (2 forms) +// +// * VRCP14SS xmm, xmm, xmm{k}{z} [AVX512F] +// * VRCP14SS m32, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRCP14SS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRCP14SS", 3, Operands { v0, v1, v2 }) + // VRCP14SS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRCP14SS m32, xmm, xmm{k}{z} + if isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP14SS") + } + return p +} + +// VRCP28PD performs "Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28PD +// Supported forms : (3 forms) +// +// * VRCP28PD m512/m64bcst, zmm{k}{z} [AVX512ER] +// * VRCP28PD {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRCP28PD zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRCP28PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRCP28PD takes 2 or 3 operands") + } + // VRCP28PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xca) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP28PD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xca) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRCP28PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xca) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28PD") + } + return p +} + +// VRCP28PS performs "Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28PS +// Supported forms : (3 forms) +// +// * VRCP28PS m512/m32bcst, zmm{k}{z} [AVX512ER] +// * VRCP28PS {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRCP28PS zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRCP28PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRCP28PS takes 2 or 3 operands") + } + // VRCP28PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xca) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRCP28PS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xca) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRCP28PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xca) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28PS") + } + return p +} + +// VRCP28SD performs "Approximation to the Reciprocal of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28SD +// Supported forms : (3 forms) +// +// * VRCP28SD m64, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SD {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SD xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRCP28SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRCP28SD takes 3 or 4 operands") + } + // VRCP28SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcb) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VRCP28SD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRCP28SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28SD") + } + return p +} + +// VRCP28SS performs "Approximation to the Reciprocal of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRCP28SS +// Supported forms : (3 forms) +// +// * VRCP28SS m32, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SS {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRCP28SS xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRCP28SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRCP28SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRCP28SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRCP28SS takes 3 or 4 operands") + } + // VRCP28SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcb) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VRCP28SS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRCP28SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcb) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRCP28SS") + } + return p +} + +// VRCPPS performs "Compute Approximate Reciprocals of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRCPPS +// Supported forms : (4 forms) +// +// * VRCPPS xmm, xmm [AVX] +// * VRCPPS m128, xmm [AVX] +// * VRCPPS ymm, ymm [AVX] +// * VRCPPS m256, ymm [AVX] +// +func (self *Program) VRCPPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRCPPS", 2, Operands { v0, v1 }) + // VRCPPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCPPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VRCPPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x53) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRCPPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x53) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRCPPS") + } + return p +} + +// VRCPSS performs "Compute Approximate Reciprocal of Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VRCPSS +// Supported forms : (2 forms) +// +// * VRCPSS xmm, xmm, xmm [AVX] +// * VRCPSS m32, xmm, xmm [AVX] +// +func (self *Program) VRCPSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRCPSS", 3, Operands { v0, v1, v2 }) + // VRCPSS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x53) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRCPSS m32, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x53) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRCPSS") + } + return p +} + +// VREDUCEPD performs "Perform Reduction Transformation on Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VREDUCEPD +// Supported forms : (6 forms) +// +// * VREDUCEPD imm8, m512/m64bcst, zmm{k}{z} [AVX512DQ] +// * VREDUCEPD imm8, zmm, zmm{k}{z} [AVX512DQ] +// * VREDUCEPD imm8, m128/m64bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPD imm8, m256/m64bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPD imm8, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPD imm8, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VREDUCEPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VREDUCEPD", 3, Operands { v0, v1, v2 }) + // VREDUCEPD imm8, m512/m64bcst, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, m128/m64bcst, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, m256/m64bcst, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPD imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCEPD") + } + return p +} + +// VREDUCEPS performs "Perform Reduction Transformation on Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VREDUCEPS +// Supported forms : (6 forms) +// +// * VREDUCEPS imm8, m512/m32bcst, zmm{k}{z} [AVX512DQ] +// * VREDUCEPS imm8, zmm, zmm{k}{z} [AVX512DQ] +// * VREDUCEPS imm8, m128/m32bcst, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPS imm8, m256/m32bcst, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPS imm8, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VREDUCEPS imm8, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VREDUCEPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VREDUCEPS", 3, Operands { v0, v1, v2 }) + // VREDUCEPS imm8, m512/m32bcst, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, m128/m32bcst, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, m256/m32bcst, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x56) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCEPS imm8, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x56) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCEPS") + } + return p +} + +// VREDUCESD performs "Perform Reduction Transformation on a Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VREDUCESD +// Supported forms : (2 forms) +// +// * VREDUCESD imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VREDUCESD imm8, m64, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VREDUCESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VREDUCESD", 4, Operands { v0, v1, v2, v3 }) + // VREDUCESD imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCESD imm8, m64, xmm, xmm{k}{z} + if isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x57) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCESD") + } + return p +} + +// VREDUCESS performs "Perform Reduction Transformation on a Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VREDUCESS +// Supported forms : (2 forms) +// +// * VREDUCESS imm8, xmm, xmm, xmm{k}{z} [AVX512DQ] +// * VREDUCESS imm8, m32, xmm, xmm{k}{z} [AVX512DQ] +// +func (self *Program) VREDUCESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VREDUCESS", 4, Operands { v0, v1, v2, v3 }) + // VREDUCESS imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VREDUCESS imm8, m32, xmm, xmm{k}{z} + if isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x57) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VREDUCESS") + } + return p +} + +// VRNDSCALEPD performs "Round Packed Double-Precision Floating-Point Values To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALEPD +// Supported forms : (7 forms) +// +// * VRNDSCALEPD imm8, m512/m64bcst, zmm{k}{z} [AVX512F] +// * VRNDSCALEPD imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPD imm8, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPD imm8, m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPD imm8, m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPD imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPD imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRNDSCALEPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALEPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRNDSCALEPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRNDSCALEPD takes 3 or 4 operands") + } + // VRNDSCALEPD imm8, m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M64bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x09) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, m128/m64bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M64bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, m256/m64bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M64bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPD imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALEPD") + } + return p +} + +// VRNDSCALEPS performs "Round Packed Single-Precision Floating-Point Values To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALEPS +// Supported forms : (7 forms) +// +// * VRNDSCALEPS imm8, m512/m32bcst, zmm{k}{z} [AVX512F] +// * VRNDSCALEPS imm8, {sae}, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPS imm8, zmm, zmm{k}{z} [AVX512F] +// * VRNDSCALEPS imm8, m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPS imm8, m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPS imm8, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRNDSCALEPS imm8, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRNDSCALEPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALEPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRNDSCALEPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRNDSCALEPS takes 3 or 4 operands") + } + // VRNDSCALEPS imm8, m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM512M32bcst(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[3]) << 7) | kcode(v[3]) | 0x18) + m.emit(0x08) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, zmm, zmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x48) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM128M32bcst(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM256M32bcst(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[2]), addr(v[1]), 0, kcode(v[2]), zcode(v[2]), bcode(v[1])) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x08) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALEPS imm8, ymm, ymm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x28) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALEPS") + } + return p +} + +// VRNDSCALESD performs "Round Scalar Double-Precision Floating-Point Value To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALESD +// Supported forms : (3 forms) +// +// * VRNDSCALESD imm8, m64, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESD imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESD imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRNDSCALESD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALESD", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRNDSCALESD", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRNDSCALESD takes 4 or 5 operands") + } + // VRNDSCALESD imm8, m64, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM64(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0b) + m.mrsd(lcode(v[3]), addr(v[1]), 8) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESD imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0xfd ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESD imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALESD") + } + return p +} + +// VRNDSCALESS performs "Round Scalar Single-Precision Floating-Point Value To Include A Given Number Of Fraction Bits". +// +// Mnemonic : VRNDSCALESS +// Supported forms : (3 forms) +// +// * VRNDSCALESS imm8, m32, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESS imm8, {sae}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VRNDSCALESS imm8, xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRNDSCALESS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRNDSCALESS", 4, Operands { v0, v1, v2, v3 }) + case 1 : p = self.alloc("VRNDSCALESS", 5, Operands { v0, v1, v2, v3, vv[0] }) + default : panic("instruction VRNDSCALESS takes 4 or 5 operands") + } + // VRNDSCALESS imm8, m32, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isM32(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), 0) + m.emit(0x0a) + m.mrsd(lcode(v[3]), addr(v[1]), 4) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESS imm8, {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isImm8(v0) && isSAE(v1) && isEVEXXMM(v2) && isEVEXXMM(v3) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[4]) << 7) | (ehcode(v[2]) << 5) | (ecode(v[4]) << 4))) + m.emit(0x7d ^ (hlcode(v[3]) << 3)) + m.emit((zcode(v[4]) << 7) | (0x08 ^ (ecode(v[3]) << 3)) | kcode(v[4]) | 0x10) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[4]) << 3 | lcode(v[2])) + m.imm1(toImmAny(v[0])) + }) + } + // VRNDSCALESS imm8, xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRNDSCALESS") + } + return p +} + +// VROUNDPD performs "Round Packed Double Precision Floating-Point Values". +// +// Mnemonic : VROUNDPD +// Supported forms : (4 forms) +// +// * VROUNDPD imm8, xmm, xmm [AVX] +// * VROUNDPD imm8, m128, xmm [AVX] +// * VROUNDPD imm8, ymm, ymm [AVX] +// * VROUNDPD imm8, m256, ymm [AVX] +// +func (self *Program) VROUNDPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VROUNDPD", 3, Operands { v0, v1, v2 }) + // VROUNDPD imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPD imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPD imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x09) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPD imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x09) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDPD") + } + return p +} + +// VROUNDPS performs "Round Packed Single Precision Floating-Point Values". +// +// Mnemonic : VROUNDPS +// Supported forms : (4 forms) +// +// * VROUNDPS imm8, xmm, xmm [AVX] +// * VROUNDPS imm8, m128, xmm [AVX] +// * VROUNDPS imm8, ymm, ymm [AVX] +// * VROUNDPS imm8, m256, ymm [AVX] +// +func (self *Program) VROUNDPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VROUNDPS", 3, Operands { v0, v1, v2 }) + // VROUNDPS imm8, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPS imm8, m128, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[2]), addr(v[1]), 0) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPS imm8, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[2]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x7d) + m.emit(0x08) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDPS imm8, m256, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x05, hcode(v[2]), addr(v[1]), 0) + m.emit(0x08) + m.mrsd(lcode(v[2]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDPS") + } + return p +} + +// VROUNDSD performs "Round Scalar Double Precision Floating-Point Values". +// +// Mnemonic : VROUNDSD +// Supported forms : (2 forms) +// +// * VROUNDSD imm8, xmm, xmm, xmm [AVX] +// * VROUNDSD imm8, m64, xmm, xmm [AVX] +// +func (self *Program) VROUNDSD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VROUNDSD", 4, Operands { v0, v1, v2, v3 }) + // VROUNDSD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0b) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDSD imm8, m64, xmm, xmm + if isImm8(v0) && isM64(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0b) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDSD") + } + return p +} + +// VROUNDSS performs "Round Scalar Single Precision Floating-Point Values". +// +// Mnemonic : VROUNDSS +// Supported forms : (2 forms) +// +// * VROUNDSS imm8, xmm, xmm, xmm [AVX] +// * VROUNDSS imm8, m32, xmm, xmm [AVX] +// +func (self *Program) VROUNDSS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VROUNDSS", 4, Operands { v0, v1, v2, v3 }) + // VROUNDSS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe3 ^ (hcode(v[3]) << 7) ^ (hcode(v[1]) << 5)) + m.emit(0x79 ^ (hlcode(v[2]) << 3)) + m.emit(0x0a) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VROUNDSS imm8, m32, xmm, xmm + if isImm8(v0) && isM32(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b11, 0x01, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0x0a) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VROUNDSS") + } + return p +} + +// VRSQRT14PD performs "Compute Approximate Reciprocals of Square Roots of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VRSQRT14PD +// Supported forms : (6 forms) +// +// * VRSQRT14PD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VRSQRT14PD zmm, zmm{k}{z} [AVX512F] +// * VRSQRT14PD m128/m64bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PD m256/m64bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRSQRT14PD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRSQRT14PD", 2, Operands { v0, v1 }) + // VRSQRT14PD m512/m64bcst, zmm{k}{z} + if isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT14PD zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PD m128/m64bcst, xmm{k}{z} + if isM128M64bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRSQRT14PD m256/m64bcst, ymm{k}{z} + if isM256M64bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRSQRT14PD xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PD ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14PD") + } + return p +} + +// VRSQRT14PS performs "Compute Approximate Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRSQRT14PS +// Supported forms : (6 forms) +// +// * VRSQRT14PS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VRSQRT14PS zmm, zmm{k}{z} [AVX512F] +// * VRSQRT14PS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VRSQRT14PS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VRSQRT14PS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRSQRT14PS", 2, Operands { v0, v1 }) + // VRSQRT14PS m512/m32bcst, zmm{k}{z} + if isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT14PS zmm, zmm{k}{z} + if isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PS m128/m32bcst, xmm{k}{z} + if isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VRSQRT14PS m256/m32bcst, ymm{k}{z} + if isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x4e) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VRSQRT14PS xmm, xmm{k}{z} + if isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14PS ymm, ymm{k}{z} + if isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x4e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14PS") + } + return p +} + +// VRSQRT14SD performs "Compute Approximate Reciprocal of a Square Root of a Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VRSQRT14SD +// Supported forms : (2 forms) +// +// * VRSQRT14SD xmm, xmm, xmm{k}{z} [AVX512F] +// * VRSQRT14SD m64, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRSQRT14SD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRSQRT14SD", 3, Operands { v0, v1, v2 }) + // VRSQRT14SD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14SD m64, xmm, xmm{k}{z} + if isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4f) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14SD") + } + return p +} + +// VRSQRT14SS performs "Compute Approximate Reciprocal of a Square Root of a Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VRSQRT14SS +// Supported forms : (2 forms) +// +// * VRSQRT14SS xmm, xmm, xmm{k}{z} [AVX512F] +// * VRSQRT14SS m32, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VRSQRT14SS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRSQRT14SS", 3, Operands { v0, v1, v2 }) + // VRSQRT14SS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x4f) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRSQRT14SS m32, xmm, xmm{k}{z} + if isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x4f) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT14SS") + } + return p +} + +// VRSQRT28PD performs "Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28PD +// Supported forms : (3 forms) +// +// * VRSQRT28PD m512/m64bcst, zmm{k}{z} [AVX512ER] +// * VRSQRT28PD {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRSQRT28PD zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28PD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28PD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRSQRT28PD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRSQRT28PD takes 2 or 3 operands") + } + // VRSQRT28PD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xcc) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT28PD {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28PD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28PD") + } + return p +} + +// VRSQRT28PS performs "Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28PS +// Supported forms : (3 forms) +// +// * VRSQRT28PS m512/m32bcst, zmm{k}{z} [AVX512ER] +// * VRSQRT28PS {sae}, zmm, zmm{k}{z} [AVX512ER] +// * VRSQRT28PS zmm, zmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28PS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28PS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VRSQRT28PS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VRSQRT28PS takes 2 or 3 operands") + } + // VRSQRT28PS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0xcc) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VRSQRT28PS {sae}, zmm, zmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[2]) << 7) | kcode(v[2]) | 0x18) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28PS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7d) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0xcc) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28PS") + } + return p +} + +// VRSQRT28SD performs "Approximation to the Reciprocal Square Root of a Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28SD +// Supported forms : (3 forms) +// +// * VRSQRT28SD m64, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SD {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SD xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28SD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28SD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRSQRT28SD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRSQRT28SD takes 3 or 4 operands") + } + // VRSQRT28SD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcd) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VRSQRT28SD {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28SD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28SD") + } + return p +} + +// VRSQRT28SS performs "Approximation to the Reciprocal Square Root of a Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error". +// +// Mnemonic : VRSQRT28SS +// Supported forms : (3 forms) +// +// * VRSQRT28SS m32, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SS {sae}, xmm, xmm, xmm{k}{z} [AVX512ER] +// * VRSQRT28SS xmm, xmm, xmm{k}{z} [AVX512ER] +// +func (self *Program) VRSQRT28SS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VRSQRT28SS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VRSQRT28SS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VRSQRT28SS takes 3 or 4 operands") + } + // VRSQRT28SS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0xcd) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VRSQRT28SS {sae}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VRSQRT28SS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512ER) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0xcd) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRT28SS") + } + return p +} + +// VRSQRTPS performs "Compute Reciprocals of Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VRSQRTPS +// Supported forms : (4 forms) +// +// * VRSQRTPS xmm, xmm [AVX] +// * VRSQRTPS m128, xmm [AVX] +// * VRSQRTPS ymm, ymm [AVX] +// * VRSQRTPS m256, ymm [AVX] +// +func (self *Program) VRSQRTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VRSQRTPS", 2, Operands { v0, v1 }) + // VRSQRTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VRSQRTPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x52) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VRSQRTPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x52) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRTPS") + } + return p +} + +// VRSQRTSS performs "Compute Reciprocal of Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VRSQRTSS +// Supported forms : (2 forms) +// +// * VRSQRTSS xmm, xmm, xmm [AVX] +// * VRSQRTSS m32, xmm, xmm [AVX] +// +func (self *Program) VRSQRTSS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VRSQRTSS", 3, Operands { v0, v1, v2 }) + // VRSQRTSS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x52) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VRSQRTSS m32, xmm, xmm + if isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x52) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VRSQRTSS") + } + return p +} + +// VSCALEFPD performs "Scale Packed Double-Precision Floating-Point Values With Double-Precision Floating-Point Values". +// +// Mnemonic : VSCALEFPD +// Supported forms : (7 forms) +// +// * VSCALEFPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSCALEFPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFPD takes 3 or 4 operands") + } + // VSCALEFPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSCALEFPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSCALEFPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSCALEFPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFPD") + } + return p +} + +// VSCALEFPS performs "Scale Packed Single-Precision Floating-Point Values With Single-Precision Floating-Point Values". +// +// Mnemonic : VSCALEFPS +// Supported forms : (7 forms) +// +// * VSCALEFPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VSCALEFPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSCALEFPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSCALEFPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFPS takes 3 or 4 operands") + } + // VSCALEFPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSCALEFPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSCALEFPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSCALEFPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x2c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSCALEFPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x2c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFPS") + } + return p +} + +// VSCALEFSD performs "Scale Scalar Double-Precision Floating-Point Value With a Double-Precision Floating-Point Value". +// +// Mnemonic : VSCALEFSD +// Supported forms : (3 forms) +// +// * VSCALEFSD m64, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSCALEFSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFSD takes 3 or 4 operands") + } + // VSCALEFSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VSCALEFSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFSD") + } + return p +} + +// VSCALEFSS performs "Scale Scalar Single-Precision Floating-Point Value With a Single-Precision Floating-Point Value". +// +// Mnemonic : VSCALEFSS +// Supported forms : (3 forms) +// +// * VSCALEFSS m32, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSCALEFSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSCALEFSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSCALEFSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSCALEFSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSCALEFSS takes 3 or 4 operands") + } + // VSCALEFSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x2d) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VSCALEFSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSCALEFSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf2 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7d ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x2d) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSCALEFSS") + } + return p +} + +// VSCATTERDPD performs "Scatter Packed Double-Precision Floating-Point Values with Signed Doubleword Indices". +// +// Mnemonic : VSCATTERDPD +// Supported forms : (3 forms) +// +// * VSCATTERDPD zmm, vm32y{k} [AVX512F] +// * VSCATTERDPD xmm, vm32x{k} [AVX512F,AVX512VL] +// * VSCATTERDPD ymm, vm32x{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERDPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERDPD", 2, Operands { v0, v1 }) + // VSCATTERDPD zmm, vm32y{k} + if isZMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERDPD xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERDPD ymm, vm32x{k} + if isEVEXYMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERDPD") + } + return p +} + +// VSCATTERDPS performs "Scatter Packed Single-Precision Floating-Point Values with Signed Doubleword Indices". +// +// Mnemonic : VSCATTERDPS +// Supported forms : (3 forms) +// +// * VSCATTERDPS zmm, vm32z{k} [AVX512F] +// * VSCATTERDPS xmm, vm32x{k} [AVX512F,AVX512VL] +// * VSCATTERDPS ymm, vm32y{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERDPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERDPS", 2, Operands { v0, v1 }) + // VSCATTERDPS zmm, vm32z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERDPS xmm, vm32x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERDPS ymm, vm32y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa2) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERDPS") + } + return p +} + +// VSCATTERPF0DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0DPD +// Supported forms : (1 form) +// +// * VSCATTERPF0DPD vm32y{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0DPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0DPD", 1, Operands { v0 }) + // VSCATTERPF0DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(5, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0DPD") + } + return p +} + +// VSCATTERPF0DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0DPS +// Supported forms : (1 form) +// +// * VSCATTERPF0DPS vm32z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0DPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0DPS", 1, Operands { v0 }) + // VSCATTERPF0DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(5, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0DPS") + } + return p +} + +// VSCATTERPF0QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0QPD +// Supported forms : (1 form) +// +// * VSCATTERPF0QPD vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0QPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0QPD", 1, Operands { v0 }) + // VSCATTERPF0QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(5, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0QPD") + } + return p +} + +// VSCATTERPF0QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T0 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF0QPS +// Supported forms : (1 form) +// +// * VSCATTERPF0QPS vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF0QPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF0QPS", 1, Operands { v0 }) + // VSCATTERPF0QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(5, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF0QPS") + } + return p +} + +// VSCATTERPF1DPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1DPD +// Supported forms : (1 form) +// +// * VSCATTERPF1DPD vm32y{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1DPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1DPD", 1, Operands { v0 }) + // VSCATTERPF1DPD vm32y{k} + if isVMYk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(6, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1DPD") + } + return p +} + +// VSCATTERPF1DPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Doubleword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1DPS +// Supported forms : (1 form) +// +// * VSCATTERPF1DPS vm32z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1DPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1DPS", 1, Operands { v0 }) + // VSCATTERPF1DPS vm32z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc6) + m.mrsd(6, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1DPS") + } + return p +} + +// VSCATTERPF1QPD performs "Sparse Prefetch Packed Double-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1QPD +// Supported forms : (1 form) +// +// * VSCATTERPF1QPD vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1QPD(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1QPD", 1, Operands { v0 }) + // VSCATTERPF1QPD vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(6, addr(v[0]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1QPD") + } + return p +} + +// VSCATTERPF1QPS performs "Sparse Prefetch Packed Single-Precision Floating-Point Data Values with Signed Quadword Indices Using T1 Hint with Intent to Write". +// +// Mnemonic : VSCATTERPF1QPS +// Supported forms : (1 form) +// +// * VSCATTERPF1QPS vm64z{k} [AVX512PF] +// +func (self *Program) VSCATTERPF1QPS(v0 interface{}) *Instruction { + p := self.alloc("VSCATTERPF1QPS", 1, Operands { v0 }) + // VSCATTERPF1QPS vm64z{k} + if isVMZk(v0) { + self.require(ISA_AVX512PF) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, 0, addr(v[0]), 0, kcode(v[0]), 0, 0) + m.emit(0xc7) + m.mrsd(6, addr(v[0]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERPF1QPS") + } + return p +} + +// VSCATTERQPD performs "Scatter Packed Double-Precision Floating-Point Values with Signed Quadword Indices". +// +// Mnemonic : VSCATTERQPD +// Supported forms : (3 forms) +// +// * VSCATTERQPD zmm, vm64z{k} [AVX512F] +// * VSCATTERQPD xmm, vm64x{k} [AVX512F,AVX512VL] +// * VSCATTERQPD ymm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERQPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERQPD", 2, Operands { v0, v1 }) + // VSCATTERQPD zmm, vm64z{k} + if isZMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERQPD xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + // VSCATTERQPD ymm, vm64y{k} + if isEVEXYMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x85, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 8) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERQPD") + } + return p +} + +// VSCATTERQPS performs "Scatter Packed Single-Precision Floating-Point Values with Signed Quadword Indices". +// +// Mnemonic : VSCATTERQPS +// Supported forms : (3 forms) +// +// * VSCATTERQPS ymm, vm64z{k} [AVX512F] +// * VSCATTERQPS xmm, vm64x{k} [AVX512F,AVX512VL] +// * VSCATTERQPS xmm, vm64y{k} [AVX512F,AVX512VL] +// +func (self *Program) VSCATTERQPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VSCATTERQPS", 2, Operands { v0, v1 }) + // VSCATTERQPS ymm, vm64z{k} + if isEVEXYMM(v0) && isVMZk(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b10, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERQPS xmm, vm64x{k} + if isEVEXXMM(v0) && isVMXk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b00, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + // VSCATTERQPS xmm, vm64y{k} + if isEVEXXMM(v0) && isVMYk(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b10, 0x05, 0b01, ehcode(v[0]), addr(v[1]), 0, kcode(v[1]), 0, 0) + m.emit(0xa3) + m.mrsd(lcode(v[0]), addr(v[1]), 4) + }) + } + if p.len == 0 { + panic("invalid operands for VSCATTERQPS") + } + return p +} + +// VSHUFF32X4 performs "Shuffle 128-Bit Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSHUFF32X4 +// Supported forms : (4 forms) +// +// * VSHUFF32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF32X4 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFF32X4 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFF32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFF32X4", 4, Operands { v0, v1, v2, v3 }) + // VSHUFF32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF32X4 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF32X4 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFF32X4") + } + return p +} + +// VSHUFF64X2 performs "Shuffle 128-Bit Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSHUFF64X2 +// Supported forms : (4 forms) +// +// * VSHUFF64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF64X2 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFF64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFF64X2 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFF64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFF64X2", 4, Operands { v0, v1, v2, v3 }) + // VSHUFF64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF64X2 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x23) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFF64X2 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x23) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFF64X2") + } + return p +} + +// VSHUFI32X4 performs "Shuffle 128-Bit Packed Doubleword Integer Values". +// +// Mnemonic : VSHUFI32X4 +// Supported forms : (4 forms) +// +// * VSHUFI32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI32X4 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFI32X4 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFI32X4(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFI32X4", 4, Operands { v0, v1, v2, v3 }) + // VSHUFI32X4 imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI32X4 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI32X4 imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x05, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI32X4 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7d ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFI32X4") + } + return p +} + +// VSHUFI64X2 performs "Shuffle 128-Bit Packed Quadword Integer Values". +// +// Mnemonic : VSHUFI64X2 +// Supported forms : (4 forms) +// +// * VSHUFI64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI64X2 imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFI64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFI64X2 imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFI64X2(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFI64X2", 4, Operands { v0, v1, v2, v3 }) + // VSHUFI64X2 imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI64X2 imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI64X2 imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b11, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0x43) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFI64X2 imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf3 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0x43) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFI64X2") + } + return p +} + +// VSHUFPD performs "Shuffle Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSHUFPD +// Supported forms : (10 forms) +// +// * VSHUFPD imm8, xmm, xmm, xmm [AVX] +// * VSHUFPD imm8, m128, xmm, xmm [AVX] +// * VSHUFPD imm8, ymm, ymm, ymm [AVX] +// * VSHUFPD imm8, m256, ymm, ymm [AVX] +// * VSHUFPD imm8, m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPD imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPD imm8, m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPD imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPD imm8, m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPD imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFPD(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFPD", 4, Operands { v0, v1, v2, v3 }) + // VSHUFPD imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m512/m64bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M64bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m128/m64bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M64bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, m256/m64bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M64bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPD imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFPD") + } + return p +} + +// VSHUFPS performs "Shuffle Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSHUFPS +// Supported forms : (10 forms) +// +// * VSHUFPS imm8, xmm, xmm, xmm [AVX] +// * VSHUFPS imm8, m128, xmm, xmm [AVX] +// * VSHUFPS imm8, ymm, ymm, ymm [AVX] +// * VSHUFPS imm8, m256, ymm, ymm [AVX] +// * VSHUFPS imm8, m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPS imm8, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSHUFPS imm8, m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPS imm8, xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPS imm8, m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSHUFPS imm8, ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSHUFPS(v0 interface{}, v1 interface{}, v2 interface{}, v3 interface{}) *Instruction { + p := self.alloc("VSHUFPS", 4, Operands { v0, v1, v2, v3 }) + // VSHUFPS imm8, xmm, xmm, xmm + if isImm8(v0) && isXMM(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m128, xmm, xmm + if isImm8(v0) && isM128(v1) && isXMM(v2) && isXMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, ymm, ymm, ymm + if isImm8(v0) && isYMM(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), v[1], hlcode(v[2])) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m256, ymm, ymm + if isImm8(v0) && isM256(v1) && isYMM(v2) && isYMM(v3) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[3]), addr(v[1]), hlcode(v[2])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m512/m32bcst, zmm, zmm{k}{z} + if isImm8(v0) && isM512M32bcst(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 64) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, zmm, zmm, zmm{k}{z} + if isImm8(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(v3) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x40) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m128/m32bcst, xmm, xmm{k}{z} + if isImm8(v0) && isM128M32bcst(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 16) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, xmm, xmm, xmm{k}{z} + if isImm8(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x00) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, m256/m32bcst, ymm, ymm{k}{z} + if isImm8(v0) && isM256M32bcst(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[3]), addr(v[1]), vcode(v[2]), kcode(v[3]), zcode(v[3]), bcode(v[1])) + m.emit(0xc6) + m.mrsd(lcode(v[3]), addr(v[1]), 32) + m.imm1(toImmAny(v[0])) + }) + } + // VSHUFPS imm8, ymm, ymm, ymm{k}{z} + if isImm8(v0) && isEVEXYMM(v1) && isEVEXYMM(v2) && isYMMkz(v3) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x20) + m.emit(0xc6) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSHUFPS") + } + return p +} + +// VSQRTPD performs "Compute Square Roots of Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSQRTPD +// Supported forms : (11 forms) +// +// * VSQRTPD xmm, xmm [AVX] +// * VSQRTPD m128, xmm [AVX] +// * VSQRTPD ymm, ymm [AVX] +// * VSQRTPD m256, ymm [AVX] +// * VSQRTPD m512/m64bcst, zmm{k}{z} [AVX512F] +// * VSQRTPD {er}, zmm, zmm{k}{z} [AVX512F] +// * VSQRTPD zmm, zmm{k}{z} [AVX512F] +// * VSQRTPD m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPD m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPD xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPD ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSQRTPD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTPD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VSQRTPD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VSQRTPD takes 2 or 3 operands") + } + // VSQRTPD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPD ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPD m512/m64bcst, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VSQRTPD {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VSQRTPD zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VSQRTPD m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VSQRTPD xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPD ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTPD") + } + return p +} + +// VSQRTPS performs "Compute Square Roots of Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSQRTPS +// Supported forms : (11 forms) +// +// * VSQRTPS xmm, xmm [AVX] +// * VSQRTPS m128, xmm [AVX] +// * VSQRTPS ymm, ymm [AVX] +// * VSQRTPS m256, ymm [AVX] +// * VSQRTPS m512/m32bcst, zmm{k}{z} [AVX512F] +// * VSQRTPS {er}, zmm, zmm{k}{z} [AVX512F] +// * VSQRTPS zmm, zmm{k}{z} [AVX512F] +// * VSQRTPS m128/m32bcst, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPS m256/m32bcst, ymm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPS xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSQRTPS ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSQRTPS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTPS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VSQRTPS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VSQRTPS takes 2 or 3 operands") + } + // VSQRTPS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS m128, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPS ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), v[0], 0) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS m256, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[1]), addr(v[0]), 0) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VSQRTPS m512/m32bcst, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 64) + }) + } + // VSQRTPS {er}, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[2]) << 7) | (vcode(v[0]) << 5) | kcode(v[2]) | 0x18) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VSQRTPS zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMMkz(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x48) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS m128/m32bcst, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 16) + }) + } + // VSQRTPS m256/m32bcst, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[1]), addr(v[0]), 0, kcode(v[1]), zcode(v[1]), bcode(v[0])) + m.emit(0x51) + m.mrsd(lcode(v[1]), addr(v[0]), 32) + }) + } + // VSQRTPS xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isXMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x08) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VSQRTPS ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isYMMkz(v1) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit((zcode(v[1]) << 7) | kcode(v[1]) | 0x28) + m.emit(0x51) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTPS") + } + return p +} + +// VSQRTSD performs "Compute Square Root of Scalar Double-Precision Floating-Point Value". +// +// Mnemonic : VSQRTSD +// Supported forms : (5 forms) +// +// * VSQRTSD xmm, xmm, xmm [AVX] +// * VSQRTSD m64, xmm, xmm [AVX] +// * VSQRTSD m64, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSQRTSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSQRTSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSQRTSD takes 3 or 4 operands") + } + // VSQRTSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSQRTSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSQRTSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VSQRTSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSQRTSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTSD") + } + return p +} + +// VSQRTSS performs "Compute Square Root of Scalar Single-Precision Floating-Point Value". +// +// Mnemonic : VSQRTSS +// Supported forms : (5 forms) +// +// * VSQRTSS xmm, xmm, xmm [AVX] +// * VSQRTSS m32, xmm, xmm [AVX] +// * VSQRTSS m32, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSQRTSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSQRTSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSQRTSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSQRTSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSQRTSS takes 3 or 4 operands") + } + // VSQRTSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSQRTSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSQRTSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x51) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VSQRTSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x51) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSQRTSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x51) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSQRTSS") + } + return p +} + +// VSTMXCSR performs "Store MXCSR Register State". +// +// Mnemonic : VSTMXCSR +// Supported forms : (1 form) +// +// * VSTMXCSR m32 [AVX] +// +func (self *Program) VSTMXCSR(v0 interface{}) *Instruction { + p := self.alloc("VSTMXCSR", 1, Operands { v0 }) + // VSTMXCSR m32 + if isM32(v0) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, addr(v[0]), 0) + m.emit(0xae) + m.mrsd(3, addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VSTMXCSR") + } + return p +} + +// VSUBPD performs "Subtract Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VSUBPD +// Supported forms : (11 forms) +// +// * VSUBPD xmm, xmm, xmm [AVX] +// * VSUBPD m128, xmm, xmm [AVX] +// * VSUBPD ymm, ymm, ymm [AVX] +// * VSUBPD m256, ymm, ymm [AVX] +// * VSUBPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VSUBPD {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSUBPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSUBPD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBPD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBPD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBPD takes 3 or 4 operands") + } + // VSUBPD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPD ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPD m512/m64bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSUBPD {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xfd ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBPD zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m128/m64bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSUBPD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPD m256/m64bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSUBPD ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBPD") + } + return p +} + +// VSUBPS performs "Subtract Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VSUBPS +// Supported forms : (11 forms) +// +// * VSUBPS xmm, xmm, xmm [AVX] +// * VSUBPS m128, xmm, xmm [AVX] +// * VSUBPS ymm, ymm, ymm [AVX] +// * VSUBPS m256, ymm, ymm [AVX] +// * VSUBPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VSUBPS {er}, zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VSUBPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VSUBPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VSUBPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VSUBPS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBPS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBPS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBPS takes 3 or 4 operands") + } + // VSUBPS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m128, xmm, xmm + if len(vv) == 0 && isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPS ymm, ymm, ymm + if len(vv) == 0 && isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m256, ymm, ymm + if len(vv) == 0 && isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBPS m512/m32bcst, zmm, zmm{k}{z} + if len(vv) == 0 && isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VSUBPS {er}, zmm, zmm, zmm{k}{z} + if len(vv) == 1 && isER(v0) && isZMM(v1) && isZMM(v2) && isZMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7c ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBPS zmm, zmm, zmm{k}{z} + if len(vv) == 0 && isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m128/m32bcst, xmm, xmm{k}{z} + if len(vv) == 0 && isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VSUBPS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBPS m256/m32bcst, ymm, ymm{k}{z} + if len(vv) == 0 && isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VSUBPS ymm, ymm, ymm{k}{z} + if len(vv) == 0 && isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBPS") + } + return p +} + +// VSUBSD performs "Subtract Scalar Double-Precision Floating-Point Values". +// +// Mnemonic : VSUBSD +// Supported forms : (5 forms) +// +// * VSUBSD xmm, xmm, xmm [AVX] +// * VSUBSD m64, xmm, xmm [AVX] +// * VSUBSD m64, xmm, xmm{k}{z} [AVX512F] +// * VSUBSD {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSUBSD xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSUBSD(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBSD", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBSD", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBSD takes 3 or 4 operands") + } + // VSUBSD xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBSD m64, xmm, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(3, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBSD m64, xmm, xmm{k}{z} + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x87, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 8) + }) + } + // VSUBSD {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0xff ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBSD xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xff ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBSD") + } + return p +} + +// VSUBSS performs "Subtract Scalar Single-Precision Floating-Point Values". +// +// Mnemonic : VSUBSS +// Supported forms : (5 forms) +// +// * VSUBSS xmm, xmm, xmm [AVX] +// * VSUBSS m32, xmm, xmm [AVX] +// * VSUBSS m32, xmm, xmm{k}{z} [AVX512F] +// * VSUBSS {er}, xmm, xmm, xmm{k}{z} [AVX512F] +// * VSUBSS xmm, xmm, xmm{k}{z} [AVX512F] +// +func (self *Program) VSUBSS(v0 interface{}, v1 interface{}, v2 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VSUBSS", 3, Operands { v0, v1, v2 }) + case 1 : p = self.alloc("VSUBSS", 4, Operands { v0, v1, v2, vv[0] }) + default : panic("instruction VSUBSS takes 3 or 4 operands") + } + // VSUBSS xmm, xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VSUBSS m32, xmm, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(2, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VSUBSS m32, xmm, xmm{k}{z} + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x06, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), 0) + m.emit(0x5c) + m.mrsd(lcode(v[2]), addr(v[0]), 4) + }) + } + // VSUBSS {er}, xmm, xmm, xmm{k}{z} + if len(vv) == 1 && isER(v0) && isEVEXXMM(v1) && isEVEXXMM(v2) && isXMMkz(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[3]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[3]) << 4))) + m.emit(0x7e ^ (hlcode(v[2]) << 3)) + m.emit((zcode(v[3]) << 7) | (vcode(v[0]) << 5) | (0x08 ^ (ecode(v[2]) << 3)) | kcode(v[3]) | 0x10) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[3]) << 3 | lcode(v[1])) + }) + } + // VSUBSS xmm, xmm, xmm{k}{z} + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7e ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x5c) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VSUBSS") + } + return p +} + +// VTESTPD performs "Packed Double-Precision Floating-Point Bit Test". +// +// Mnemonic : VTESTPD +// Supported forms : (4 forms) +// +// * VTESTPD xmm, xmm [AVX] +// * VTESTPD m128, xmm [AVX] +// * VTESTPD ymm, ymm [AVX] +// * VTESTPD m256, ymm [AVX] +// +func (self *Program) VTESTPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VTESTPD", 2, Operands { v0, v1 }) + // VTESTPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VTESTPD ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x0f) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPD m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0f) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VTESTPD") + } + return p +} + +// VTESTPS performs "Packed Single-Precision Floating-Point Bit Test". +// +// Mnemonic : VTESTPS +// Supported forms : (4 forms) +// +// * VTESTPS xmm, xmm [AVX] +// * VTESTPS m128, xmm [AVX] +// * VTESTPS ymm, ymm [AVX] +// * VTESTPS m256, ymm [AVX] +// +func (self *Program) VTESTPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("VTESTPS", 2, Operands { v0, v1 }) + // VTESTPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x79) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x01, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VTESTPS ymm, ymm + if isYMM(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xc4) + m.emit(0xe2 ^ (hcode(v[1]) << 7) ^ (hcode(v[0]) << 5)) + m.emit(0x7d) + m.emit(0x0e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VTESTPS m256, ymm + if isM256(v0) && isYMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex3(0xc4, 0b10, 0x05, hcode(v[1]), addr(v[0]), 0) + m.emit(0x0e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for VTESTPS") + } + return p +} + +// VUCOMISD performs "Unordered Compare Scalar Double-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VUCOMISD +// Supported forms : (5 forms) +// +// * VUCOMISD xmm, xmm [AVX] +// * VUCOMISD m64, xmm [AVX] +// * VUCOMISD m64, xmm [AVX512F] +// * VUCOMISD {sae}, xmm, xmm [AVX512F] +// * VUCOMISD xmm, xmm [AVX512F] +// +func (self *Program) VUCOMISD(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VUCOMISD", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VUCOMISD", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VUCOMISD takes 2 or 3 operands") + } + // VUCOMISD xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), v[0], 0) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VUCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VUCOMISD m64, xmm + if len(vv) == 0 && isM64(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 8) + }) + } + // VUCOMISD {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd) + m.emit(0x18) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VUCOMISD xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0xfd) + m.emit(0x48) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUCOMISD") + } + return p +} + +// VUCOMISS performs "Unordered Compare Scalar Single-Precision Floating-Point Values and Set EFLAGS". +// +// Mnemonic : VUCOMISS +// Supported forms : (5 forms) +// +// * VUCOMISS xmm, xmm [AVX] +// * VUCOMISS m32, xmm [AVX] +// * VUCOMISS m32, xmm [AVX512F] +// * VUCOMISS {sae}, xmm, xmm [AVX512F] +// * VUCOMISS xmm, xmm [AVX512F] +// +func (self *Program) VUCOMISS(v0 interface{}, v1 interface{}, vv ...interface{}) *Instruction { + var p *Instruction + switch len(vv) { + case 0 : p = self.alloc("VUCOMISS", 2, Operands { v0, v1 }) + case 1 : p = self.alloc("VUCOMISS", 3, Operands { v0, v1, vv[0] }) + default : panic("instruction VUCOMISS takes 2 or 3 operands") + } + // VUCOMISS xmm, xmm + if len(vv) == 0 && isXMM(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), v[0], 0) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // VUCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isXMM(v1) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[1]), addr(v[0]), 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // VUCOMISS m32, xmm + if len(vv) == 0 && isM32(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[1]), addr(v[0]), 0, 0, 0, 0) + m.emit(0x2e) + m.mrsd(lcode(v[1]), addr(v[0]), 4) + }) + } + // VUCOMISS {sae}, xmm, xmm + if len(vv) == 1 && isSAE(v0) && isEVEXXMM(v1) && isEVEXXMM(vv[0]) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[1]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c) + m.emit(0x18) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[1])) + }) + } + // VUCOMISS xmm, xmm + if len(vv) == 0 && isEVEXXMM(v0) && isEVEXXMM(v1) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[1]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[1]) << 4))) + m.emit(0x7c) + m.emit(0x48) + m.emit(0x2e) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUCOMISS") + } + return p +} + +// VUNPCKHPD performs "Unpack and Interleave High Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKHPD +// Supported forms : (10 forms) +// +// * VUNPCKHPD xmm, xmm, xmm [AVX] +// * VUNPCKHPD m128, xmm, xmm [AVX] +// * VUNPCKHPD ymm, ymm, ymm [AVX] +// * VUNPCKHPD m256, ymm, ymm [AVX] +// * VUNPCKHPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKHPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKHPD", 3, Operands { v0, v1, v2 }) + // VUNPCKHPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKHPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKHPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKHPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKHPD") + } + return p +} + +// VUNPCKHPS performs "Unpack and Interleave High Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKHPS +// Supported forms : (10 forms) +// +// * VUNPCKHPS xmm, xmm, xmm [AVX] +// * VUNPCKHPS m128, xmm, xmm [AVX] +// * VUNPCKHPS ymm, ymm, ymm [AVX] +// * VUNPCKHPS m256, ymm, ymm [AVX] +// * VUNPCKHPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKHPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKHPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKHPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKHPS", 3, Operands { v0, v1, v2 }) + // VUNPCKHPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKHPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKHPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKHPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKHPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x15) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKHPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x15) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKHPS") + } + return p +} + +// VUNPCKLPD performs "Unpack and Interleave Low Packed Double-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKLPD +// Supported forms : (10 forms) +// +// * VUNPCKLPD xmm, xmm, xmm [AVX] +// * VUNPCKLPD m128, xmm, xmm [AVX] +// * VUNPCKLPD ymm, ymm, ymm [AVX] +// * VUNPCKLPD m256, ymm, ymm [AVX] +// * VUNPCKLPD m512/m64bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPD zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPD m128/m64bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPD xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPD m256/m64bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPD ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKLPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKLPD", 3, Operands { v0, v1, v2 }) + // VUNPCKLPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKLPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKLPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKLPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKLPD") + } + return p +} + +// VUNPCKLPS performs "Unpack and Interleave Low Packed Single-Precision Floating-Point Values". +// +// Mnemonic : VUNPCKLPS +// Supported forms : (10 forms) +// +// * VUNPCKLPS xmm, xmm, xmm [AVX] +// * VUNPCKLPS m128, xmm, xmm [AVX] +// * VUNPCKLPS ymm, ymm, ymm [AVX] +// * VUNPCKLPS m256, ymm, ymm [AVX] +// * VUNPCKLPS m512/m32bcst, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPS zmm, zmm, zmm{k}{z} [AVX512F] +// * VUNPCKLPS m128/m32bcst, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPS xmm, xmm, xmm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPS m256/m32bcst, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// * VUNPCKLPS ymm, ymm, ymm{k}{z} [AVX512F,AVX512VL] +// +func (self *Program) VUNPCKLPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VUNPCKLPS", 3, Operands { v0, v1, v2 }) + // VUNPCKLPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VUNPCKLPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VUNPCKLPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VUNPCKLPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VUNPCKLPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x14) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VUNPCKLPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512F) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x14) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VUNPCKLPS") + } + return p +} + +// VXORPD performs "Bitwise Logical XOR for Double-Precision Floating-Point Values". +// +// Mnemonic : VXORPD +// Supported forms : (10 forms) +// +// * VXORPD xmm, xmm, xmm [AVX] +// * VXORPD m128, xmm, xmm [AVX] +// * VXORPD ymm, ymm, ymm [AVX] +// * VXORPD m256, ymm, ymm [AVX] +// * VXORPD m512/m64bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPD zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPD m128/m64bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPD xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPD m256/m64bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPD ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VXORPD(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VXORPD", 3, Operands { v0, v1, v2 }) + // VXORPD xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(1, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPD ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(5, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPD m512/m64bcst, zmm, zmm{k}{z} + if isM512M64bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VXORPD zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m128/m64bcst, xmm, xmm{k}{z} + if isM128M64bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VXORPD xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPD m256/m64bcst, ymm, ymm{k}{z} + if isM256M64bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x85, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VXORPD ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0xfd ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VXORPD") + } + return p +} + +// VXORPS performs "Bitwise Logical XOR for Single-Precision Floating-Point Values". +// +// Mnemonic : VXORPS +// Supported forms : (10 forms) +// +// * VXORPS xmm, xmm, xmm [AVX] +// * VXORPS m128, xmm, xmm [AVX] +// * VXORPS ymm, ymm, ymm [AVX] +// * VXORPS m256, ymm, ymm [AVX] +// * VXORPS m512/m32bcst, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPS zmm, zmm, zmm{k}{z} [AVX512DQ] +// * VXORPS m128/m32bcst, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPS xmm, xmm, xmm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPS m256/m32bcst, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// * VXORPS ymm, ymm, ymm{k}{z} [AVX512DQ,AVX512VL] +// +func (self *Program) VXORPS(v0 interface{}, v1 interface{}, v2 interface{}) *Instruction { + p := self.alloc("VXORPS", 3, Operands { v0, v1, v2 }) + // VXORPS xmm, xmm, xmm + if isXMM(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m128, xmm, xmm + if isM128(v0) && isXMM(v1) && isXMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPS ymm, ymm, ymm + if isYMM(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), v[0], hlcode(v[1])) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m256, ymm, ymm + if isM256(v0) && isYMM(v1) && isYMM(v2) { + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, hcode(v[2]), addr(v[0]), hlcode(v[1])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 1) + }) + } + // VXORPS m512/m32bcst, zmm, zmm{k}{z} + if isM512M32bcst(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b10, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 64) + }) + } + // VXORPS zmm, zmm, zmm{k}{z} + if isZMM(v0) && isZMM(v1) && isZMMkz(v2) { + self.require(ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x40) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m128/m32bcst, xmm, xmm{k}{z} + if isM128M32bcst(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b00, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 16) + }) + } + // VXORPS xmm, xmm, xmm{k}{z} + if isEVEXXMM(v0) && isEVEXXMM(v1) && isXMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x00) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + // VXORPS m256/m32bcst, ymm, ymm{k}{z} + if isM256M32bcst(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.evex(0b01, 0x04, 0b01, ehcode(v[2]), addr(v[0]), vcode(v[1]), kcode(v[2]), zcode(v[2]), bcode(v[0])) + m.emit(0x57) + m.mrsd(lcode(v[2]), addr(v[0]), 32) + }) + } + // VXORPS ymm, ymm, ymm{k}{z} + if isEVEXYMM(v0) && isEVEXYMM(v1) && isYMMkz(v2) { + self.require(ISA_AVX512VL | ISA_AVX512DQ) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x62) + m.emit(0xf1 ^ ((hcode(v[2]) << 7) | (ehcode(v[0]) << 5) | (ecode(v[2]) << 4))) + m.emit(0x7c ^ (hlcode(v[1]) << 3)) + m.emit((zcode(v[2]) << 7) | (0x08 ^ (ecode(v[1]) << 3)) | kcode(v[2]) | 0x20) + m.emit(0x57) + m.emit(0xc0 | lcode(v[2]) << 3 | lcode(v[0])) + }) + } + if p.len == 0 { + panic("invalid operands for VXORPS") + } + return p +} + +// VZEROALL performs "Zero All YMM Registers". +// +// Mnemonic : VZEROALL +// Supported forms : (1 form) +// +// * VZEROALL [AVX] +// +func (self *Program) VZEROALL() *Instruction { + p := self.alloc("VZEROALL", 0, Operands { }) + // VZEROALL + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(4, 0, nil, 0) + m.emit(0x77) + }) + return p +} + +// VZEROUPPER performs "Zero Upper Bits of YMM Registers". +// +// Mnemonic : VZEROUPPER +// Supported forms : (1 form) +// +// * VZEROUPPER [AVX] +// +func (self *Program) VZEROUPPER() *Instruction { + p := self.alloc("VZEROUPPER", 0, Operands { }) + // VZEROUPPER + self.require(ISA_AVX) + p.domain = DomainAVX + p.add(0, func(m *_Encoding, v []interface{}) { + m.vex2(0, 0, nil, 0) + m.emit(0x77) + }) + return p +} + +// XADDB performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDB r8, r8 +// * XADDB r8, m8 +// +func (self *Program) XADDB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDB", 2, Operands { v0, v1 }) + // XADDB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x0f) + m.emit(0xc0) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x0f) + m.emit(0xc0) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDB") + } + return p +} + +// XADDL performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDL r32, r32 +// * XADDL r32, m32 +// +func (self *Program) XADDL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDL", 2, Operands { v0, v1 }) + // XADDL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDL") + } + return p +} + +// XADDQ performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDQ r64, r64 +// * XADDQ r64, m64 +// +func (self *Program) XADDQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDQ", 2, Operands { v0, v1 }) + // XADDQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x0f) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x0f) + m.emit(0xc1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDQ") + } + return p +} + +// XADDW performs "Exchange and Add". +// +// Mnemonic : XADD +// Supported forms : (2 forms) +// +// * XADDW r16, r16 +// * XADDW r16, m16 +// +func (self *Program) XADDW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XADDW", 2, Operands { v0, v1 }) + // XADDW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x0f) + m.emit(0xc1) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + } + // XADDW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x0f) + m.emit(0xc1) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XADDW") + } + return p +} + +// XCHGB performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (3 forms) +// +// * XCHGB r8, r8 +// * XCHGB m8, r8 +// * XCHGB r8, m8 +// +func (self *Program) XCHGB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGB", 2, Operands { v0, v1 }) + // XCHGB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x86) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x86) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x86) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x86) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGB") + } + return p +} + +// XCHGL performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (5 forms) +// +// * XCHGL r32, eax +// * XCHGL eax, r32 +// * XCHGL r32, r32 +// * XCHGL m32, r32 +// * XCHGL r32, m32 +// +func (self *Program) XCHGL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGL", 2, Operands { v0, v1 }) + // XCHGL r32, eax + if isReg32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[0], false) + m.emit(0x90 | lcode(v[0])) + }) + } + // XCHGL eax, r32 + if v0 == EAX && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x90 | lcode(v[1])) + }) + } + // XCHGL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x87) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x87) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGL") + } + return p +} + +// XCHGQ performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (5 forms) +// +// * XCHGQ r64, rax +// * XCHGQ rax, r64 +// * XCHGQ r64, r64 +// * XCHGQ m64, r64 +// * XCHGQ r64, m64 +// +func (self *Program) XCHGQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGQ", 2, Operands { v0, v1 }) + // XCHGQ r64, rax + if isReg64(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0])) + m.emit(0x90 | lcode(v[0])) + }) + } + // XCHGQ rax, r64 + if v0 == RAX && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x90 | lcode(v[1])) + }) + } + // XCHGQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x87) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x87) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x87) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x87) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGQ") + } + return p +} + +// XCHGW performs "Exchange Register/Memory with Register". +// +// Mnemonic : XCHG +// Supported forms : (5 forms) +// +// * XCHGW r16, ax +// * XCHGW ax, r16 +// * XCHGW r16, r16 +// * XCHGW m16, r16 +// * XCHGW r16, m16 +// +func (self *Program) XCHGW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XCHGW", 2, Operands { v0, v1 }) + // XCHGW r16, ax + if isReg16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[0], false) + m.emit(0x90 | lcode(v[0])) + }) + } + // XCHGW ax, r16 + if v0 == AX && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x90 | lcode(v[1])) + }) + } + // XCHGW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x87) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XCHGW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x87) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XCHGW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x87) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XCHGW") + } + return p +} + +// XGETBV performs "Get Value of Extended Control Register". +// +// Mnemonic : XGETBV +// Supported forms : (1 form) +// +// * XGETBV +// +func (self *Program) XGETBV() *Instruction { + p := self.alloc("XGETBV", 0, Operands { }) + // XGETBV + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x0f) + m.emit(0x01) + m.emit(0xd0) + }) + return p +} + +// XLATB performs "Table Look-up Translation". +// +// Mnemonic : XLATB +// Supported forms : (2 forms) +// +// * XLATB +// * XLATB +// +func (self *Program) XLATB() *Instruction { + p := self.alloc("XLATB", 0, Operands { }) + // XLATB + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0xd7) + }) + // XLATB + p.domain = DomainMisc + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0xd7) + }) + return p +} + +// XORB performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (6 forms) +// +// * XORB imm8, al +// * XORB imm8, r8 +// * XORB r8, r8 +// * XORB m8, r8 +// * XORB imm8, m8 +// * XORB r8, m8 +// +func (self *Program) XORB(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORB", 2, Operands { v0, v1 }) + // XORB imm8, al + if isImm8(v0) && v1 == AL { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x34) + m.imm1(toImmAny(v[0])) + }) + } + // XORB imm8, r8 + if isImm8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], isReg8REX(v[1])) + m.emit(0x80) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORB r8, r8 + if isReg8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x30) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], isReg8REX(v[0]) || isReg8REX(v[1])) + m.emit(0x32) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORB m8, r8 + if isM8(v0) && isReg8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), isReg8REX(v[1])) + m.emit(0x32) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORB imm8, m8 + if isImm8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x80) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORB r8, m8 + if isReg8(v0) && isM8(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), isReg8REX(v[0])) + m.emit(0x30) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORB") + } + return p +} + +// XORL performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (8 forms) +// +// * XORL imm32, eax +// * XORL imm8, r32 +// * XORL imm32, r32 +// * XORL r32, r32 +// * XORL m32, r32 +// * XORL imm8, m32 +// * XORL imm32, m32 +// * XORL r32, m32 +// +func (self *Program) XORL(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORL", 2, Operands { v0, v1 }) + // XORL imm32, eax + if isImm32(v0) && v1 == EAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x35) + m.imm4(toImmAny(v[0])) + }) + } + // XORL imm8, r32 + if isImm8Ext(v0, 4) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORL imm32, r32 + if isImm32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // XORL r32, r32 + if isReg32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORL m32, r32 + if isM32(v0) && isReg32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORL imm8, m32 + if isImm8Ext(v0, 4) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORL imm32, m32 + if isImm32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(6, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // XORL r32, m32 + if isReg32(v0) && isM32(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORL") + } + return p +} + +// XORPD performs "Bitwise Logical XOR for Double-Precision Floating-Point Values". +// +// Mnemonic : XORPD +// Supported forms : (2 forms) +// +// * XORPD xmm, xmm [SSE2] +// * XORPD m128, xmm [SSE2] +// +func (self *Program) XORPD(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORPD", 2, Operands { v0, v1 }) + // XORPD xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x57) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORPD m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE2) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x57) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORPD") + } + return p +} + +// XORPS performs "Bitwise Logical XOR for Single-Precision Floating-Point Values". +// +// Mnemonic : XORPS +// Supported forms : (2 forms) +// +// * XORPS xmm, xmm [SSE] +// * XORPS m128, xmm [SSE] +// +func (self *Program) XORPS(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORPS", 2, Operands { v0, v1 }) + // XORPS xmm, xmm + if isXMM(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x0f) + m.emit(0x57) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORPS m128, xmm + if isM128(v0) && isXMM(v1) { + self.require(ISA_SSE) + p.domain = DomainMMXSSE + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x0f) + m.emit(0x57) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORPS") + } + return p +} + +// XORQ performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (8 forms) +// +// * XORQ imm32, rax +// * XORQ imm8, r64 +// * XORQ imm32, r64 +// * XORQ r64, r64 +// * XORQ m64, r64 +// * XORQ imm8, m64 +// * XORQ imm32, m64 +// * XORQ r64, m64 +// +func (self *Program) XORQ(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORQ", 2, Operands { v0, v1 }) + // XORQ imm32, rax + if isImm32(v0) && v1 == RAX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48) + m.emit(0x35) + m.imm4(toImmAny(v[0])) + }) + } + // XORQ imm8, r64 + if isImm8Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x83) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORQ imm32, r64 + if isImm32Ext(v0, 8) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1])) + m.emit(0x81) + m.emit(0xf0 | lcode(v[1])) + m.imm4(toImmAny(v[0])) + }) + } + // XORQ r64, r64 + if isReg64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[0]) << 2 | hcode(v[1])) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x48 | hcode(v[1]) << 2 | hcode(v[0])) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORQ m64, r64 + if isM64(v0) && isReg64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[1]), addr(v[0])) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORQ imm8, m64 + if isImm8Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x83) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORQ imm32, m64 + if isImm32Ext(v0, 8) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, 0, addr(v[1])) + m.emit(0x81) + m.mrsd(6, addr(v[1]), 1) + m.imm4(toImmAny(v[0])) + }) + } + // XORQ r64, m64 + if isReg64(v0) && isM64(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.rexm(1, hcode(v[0]), addr(v[1])) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORQ") + } + return p +} + +// XORW performs "Logical Exclusive OR". +// +// Mnemonic : XOR +// Supported forms : (8 forms) +// +// * XORW imm16, ax +// * XORW imm8, r16 +// * XORW imm16, r16 +// * XORW r16, r16 +// * XORW m16, r16 +// * XORW imm8, m16 +// * XORW imm16, m16 +// * XORW r16, m16 +// +func (self *Program) XORW(v0 interface{}, v1 interface{}) *Instruction { + p := self.alloc("XORW", 2, Operands { v0, v1 }) + // XORW imm16, ax + if isImm16(v0) && v1 == AX { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.emit(0x35) + m.imm2(toImmAny(v[0])) + }) + } + // XORW imm8, r16 + if isImm8Ext(v0, 2) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x83) + m.emit(0xf0 | lcode(v[1])) + m.imm1(toImmAny(v[0])) + }) + } + // XORW imm16, r16 + if isImm16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, v[1], false) + m.emit(0x81) + m.emit(0xf0 | lcode(v[1])) + m.imm2(toImmAny(v[0])) + }) + } + // XORW r16, r16 + if isReg16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), v[1], false) + m.emit(0x31) + m.emit(0xc0 | lcode(v[0]) << 3 | lcode(v[1])) + }) + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), v[0], false) + m.emit(0x33) + m.emit(0xc0 | lcode(v[1]) << 3 | lcode(v[0])) + }) + } + // XORW m16, r16 + if isM16(v0) && isReg16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[1]), addr(v[0]), false) + m.emit(0x33) + m.mrsd(lcode(v[1]), addr(v[0]), 1) + }) + } + // XORW imm8, m16 + if isImm8Ext(v0, 2) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x83) + m.mrsd(6, addr(v[1]), 1) + m.imm1(toImmAny(v[0])) + }) + } + // XORW imm16, m16 + if isImm16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(0, addr(v[1]), false) + m.emit(0x81) + m.mrsd(6, addr(v[1]), 1) + m.imm2(toImmAny(v[0])) + }) + } + // XORW r16, m16 + if isReg16(v0) && isM16(v1) { + p.domain = DomainGeneric + p.add(0, func(m *_Encoding, v []interface{}) { + m.emit(0x66) + m.rexo(hcode(v[0]), addr(v[1]), false) + m.emit(0x31) + m.mrsd(lcode(v[0]), addr(v[1]), 1) + }) + } + if p.len == 0 { + panic("invalid operands for XORW") + } + return p +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/instructions_table.go b/vendor/github.com/cloudwego/iasm/x86_64/instructions_table.go new file mode 100644 index 000000000..dfb652ae3 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/instructions_table.go @@ -0,0 +1,12307 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// Code generated by "mkasm_amd64.py", DO NOT EDIT. + +package x86_64 + +const ( + _N_args = 5 + _N_forms = 23 +) + +// Instructions maps all the instruction name to it's encoder function. +var Instructions = map[string]_InstructionEncoder { + "adcb" : __asm_proxy_ADCB__, + "adcl" : __asm_proxy_ADCL__, + "adcq" : __asm_proxy_ADCQ__, + "adcw" : __asm_proxy_ADCW__, + "adcxl" : __asm_proxy_ADCXL__, + "adcxq" : __asm_proxy_ADCXQ__, + "addb" : __asm_proxy_ADDB__, + "addl" : __asm_proxy_ADDL__, + "addpd" : __asm_proxy_ADDPD__, + "addps" : __asm_proxy_ADDPS__, + "addq" : __asm_proxy_ADDQ__, + "addsd" : __asm_proxy_ADDSD__, + "addss" : __asm_proxy_ADDSS__, + "addsubpd" : __asm_proxy_ADDSUBPD__, + "addsubps" : __asm_proxy_ADDSUBPS__, + "addw" : __asm_proxy_ADDW__, + "adoxl" : __asm_proxy_ADOXL__, + "adoxq" : __asm_proxy_ADOXQ__, + "aesdec" : __asm_proxy_AESDEC__, + "aesdeclast" : __asm_proxy_AESDECLAST__, + "aesenc" : __asm_proxy_AESENC__, + "aesenclast" : __asm_proxy_AESENCLAST__, + "aesimc" : __asm_proxy_AESIMC__, + "aeskeygenassist" : __asm_proxy_AESKEYGENASSIST__, + "andb" : __asm_proxy_ANDB__, + "andl" : __asm_proxy_ANDL__, + "andnl" : __asm_proxy_ANDNL__, + "andnpd" : __asm_proxy_ANDNPD__, + "andnps" : __asm_proxy_ANDNPS__, + "andnq" : __asm_proxy_ANDNQ__, + "andpd" : __asm_proxy_ANDPD__, + "andps" : __asm_proxy_ANDPS__, + "andq" : __asm_proxy_ANDQ__, + "andw" : __asm_proxy_ANDW__, + "bextr" : __asm_proxy_BEXTR__, + "blcfill" : __asm_proxy_BLCFILL__, + "blci" : __asm_proxy_BLCI__, + "blcic" : __asm_proxy_BLCIC__, + "blcmsk" : __asm_proxy_BLCMSK__, + "blcs" : __asm_proxy_BLCS__, + "blendpd" : __asm_proxy_BLENDPD__, + "blendps" : __asm_proxy_BLENDPS__, + "blendvpd" : __asm_proxy_BLENDVPD__, + "blendvps" : __asm_proxy_BLENDVPS__, + "blsfill" : __asm_proxy_BLSFILL__, + "blsi" : __asm_proxy_BLSI__, + "blsic" : __asm_proxy_BLSIC__, + "blsmsk" : __asm_proxy_BLSMSK__, + "blsr" : __asm_proxy_BLSR__, + "bsfl" : __asm_proxy_BSFL__, + "bsfq" : __asm_proxy_BSFQ__, + "bsfw" : __asm_proxy_BSFW__, + "bsrl" : __asm_proxy_BSRL__, + "bsrq" : __asm_proxy_BSRQ__, + "bsrw" : __asm_proxy_BSRW__, + "bswapl" : __asm_proxy_BSWAPL__, + "bswapq" : __asm_proxy_BSWAPQ__, + "btcl" : __asm_proxy_BTCL__, + "btcq" : __asm_proxy_BTCQ__, + "btcw" : __asm_proxy_BTCW__, + "btl" : __asm_proxy_BTL__, + "btq" : __asm_proxy_BTQ__, + "btrl" : __asm_proxy_BTRL__, + "btrq" : __asm_proxy_BTRQ__, + "btrw" : __asm_proxy_BTRW__, + "btsl" : __asm_proxy_BTSL__, + "btsq" : __asm_proxy_BTSQ__, + "btsw" : __asm_proxy_BTSW__, + "btw" : __asm_proxy_BTW__, + "bzhi" : __asm_proxy_BZHI__, + "call" : __asm_proxy_CALL__, + "callq" : __asm_proxy_CALLQ__, + "cbtw" : __asm_proxy_CBTW__, + "clc" : __asm_proxy_CLC__, + "cld" : __asm_proxy_CLD__, + "clflush" : __asm_proxy_CLFLUSH__, + "clflushopt" : __asm_proxy_CLFLUSHOPT__, + "cltd" : __asm_proxy_CLTD__, + "cltq" : __asm_proxy_CLTQ__, + "clwb" : __asm_proxy_CLWB__, + "clzero" : __asm_proxy_CLZERO__, + "cmc" : __asm_proxy_CMC__, + "cmova" : __asm_proxy_CMOVA__, + "cmovae" : __asm_proxy_CMOVAE__, + "cmovb" : __asm_proxy_CMOVB__, + "cmovbe" : __asm_proxy_CMOVBE__, + "cmovc" : __asm_proxy_CMOVC__, + "cmove" : __asm_proxy_CMOVE__, + "cmovg" : __asm_proxy_CMOVG__, + "cmovge" : __asm_proxy_CMOVGE__, + "cmovl" : __asm_proxy_CMOVL__, + "cmovle" : __asm_proxy_CMOVLE__, + "cmovna" : __asm_proxy_CMOVNA__, + "cmovnae" : __asm_proxy_CMOVNAE__, + "cmovnb" : __asm_proxy_CMOVNB__, + "cmovnbe" : __asm_proxy_CMOVNBE__, + "cmovnc" : __asm_proxy_CMOVNC__, + "cmovne" : __asm_proxy_CMOVNE__, + "cmovng" : __asm_proxy_CMOVNG__, + "cmovnge" : __asm_proxy_CMOVNGE__, + "cmovnl" : __asm_proxy_CMOVNL__, + "cmovnle" : __asm_proxy_CMOVNLE__, + "cmovno" : __asm_proxy_CMOVNO__, + "cmovnp" : __asm_proxy_CMOVNP__, + "cmovns" : __asm_proxy_CMOVNS__, + "cmovnz" : __asm_proxy_CMOVNZ__, + "cmovo" : __asm_proxy_CMOVO__, + "cmovp" : __asm_proxy_CMOVP__, + "cmovpe" : __asm_proxy_CMOVPE__, + "cmovpo" : __asm_proxy_CMOVPO__, + "cmovs" : __asm_proxy_CMOVS__, + "cmovz" : __asm_proxy_CMOVZ__, + "cmpb" : __asm_proxy_CMPB__, + "cmpl" : __asm_proxy_CMPL__, + "cmppd" : __asm_proxy_CMPPD__, + "cmpps" : __asm_proxy_CMPPS__, + "cmpq" : __asm_proxy_CMPQ__, + "cmpsd" : __asm_proxy_CMPSD__, + "cmpss" : __asm_proxy_CMPSS__, + "cmpw" : __asm_proxy_CMPW__, + "cmpxchg16b" : __asm_proxy_CMPXCHG16B__, + "cmpxchg8b" : __asm_proxy_CMPXCHG8B__, + "cmpxchgb" : __asm_proxy_CMPXCHGB__, + "cmpxchgl" : __asm_proxy_CMPXCHGL__, + "cmpxchgq" : __asm_proxy_CMPXCHGQ__, + "cmpxchgw" : __asm_proxy_CMPXCHGW__, + "comisd" : __asm_proxy_COMISD__, + "comiss" : __asm_proxy_COMISS__, + "cpuid" : __asm_proxy_CPUID__, + "cqto" : __asm_proxy_CQTO__, + "crc32b" : __asm_proxy_CRC32B__, + "crc32l" : __asm_proxy_CRC32L__, + "crc32q" : __asm_proxy_CRC32Q__, + "crc32w" : __asm_proxy_CRC32W__, + "cvtdq2pd" : __asm_proxy_CVTDQ2PD__, + "cvtdq2ps" : __asm_proxy_CVTDQ2PS__, + "cvtpd2dq" : __asm_proxy_CVTPD2DQ__, + "cvtpd2pi" : __asm_proxy_CVTPD2PI__, + "cvtpd2ps" : __asm_proxy_CVTPD2PS__, + "cvtpi2pd" : __asm_proxy_CVTPI2PD__, + "cvtpi2ps" : __asm_proxy_CVTPI2PS__, + "cvtps2dq" : __asm_proxy_CVTPS2DQ__, + "cvtps2pd" : __asm_proxy_CVTPS2PD__, + "cvtps2pi" : __asm_proxy_CVTPS2PI__, + "cvtsd2si" : __asm_proxy_CVTSD2SI__, + "cvtsd2ss" : __asm_proxy_CVTSD2SS__, + "cvtsi2sd" : __asm_proxy_CVTSI2SD__, + "cvtsi2ss" : __asm_proxy_CVTSI2SS__, + "cvtss2sd" : __asm_proxy_CVTSS2SD__, + "cvtss2si" : __asm_proxy_CVTSS2SI__, + "cvttpd2dq" : __asm_proxy_CVTTPD2DQ__, + "cvttpd2pi" : __asm_proxy_CVTTPD2PI__, + "cvttps2dq" : __asm_proxy_CVTTPS2DQ__, + "cvttps2pi" : __asm_proxy_CVTTPS2PI__, + "cvttsd2si" : __asm_proxy_CVTTSD2SI__, + "cvttss2si" : __asm_proxy_CVTTSS2SI__, + "cwtd" : __asm_proxy_CWTD__, + "cwtl" : __asm_proxy_CWTL__, + "decb" : __asm_proxy_DECB__, + "decl" : __asm_proxy_DECL__, + "decq" : __asm_proxy_DECQ__, + "decw" : __asm_proxy_DECW__, + "divb" : __asm_proxy_DIVB__, + "divl" : __asm_proxy_DIVL__, + "divpd" : __asm_proxy_DIVPD__, + "divps" : __asm_proxy_DIVPS__, + "divq" : __asm_proxy_DIVQ__, + "divsd" : __asm_proxy_DIVSD__, + "divss" : __asm_proxy_DIVSS__, + "divw" : __asm_proxy_DIVW__, + "dppd" : __asm_proxy_DPPD__, + "dpps" : __asm_proxy_DPPS__, + "emms" : __asm_proxy_EMMS__, + "extractps" : __asm_proxy_EXTRACTPS__, + "extrq" : __asm_proxy_EXTRQ__, + "femms" : __asm_proxy_FEMMS__, + "haddpd" : __asm_proxy_HADDPD__, + "haddps" : __asm_proxy_HADDPS__, + "hsubpd" : __asm_proxy_HSUBPD__, + "hsubps" : __asm_proxy_HSUBPS__, + "idivb" : __asm_proxy_IDIVB__, + "idivl" : __asm_proxy_IDIVL__, + "idivq" : __asm_proxy_IDIVQ__, + "idivw" : __asm_proxy_IDIVW__, + "imulb" : __asm_proxy_IMULB__, + "imull" : __asm_proxy_IMULL__, + "imulq" : __asm_proxy_IMULQ__, + "imulw" : __asm_proxy_IMULW__, + "incb" : __asm_proxy_INCB__, + "incl" : __asm_proxy_INCL__, + "incq" : __asm_proxy_INCQ__, + "incw" : __asm_proxy_INCW__, + "insertps" : __asm_proxy_INSERTPS__, + "insertq" : __asm_proxy_INSERTQ__, + "int" : __asm_proxy_INT__, + "ja" : __asm_proxy_JA__, + "jae" : __asm_proxy_JAE__, + "jb" : __asm_proxy_JB__, + "jbe" : __asm_proxy_JBE__, + "jc" : __asm_proxy_JC__, + "je" : __asm_proxy_JE__, + "jecxz" : __asm_proxy_JECXZ__, + "jg" : __asm_proxy_JG__, + "jge" : __asm_proxy_JGE__, + "jl" : __asm_proxy_JL__, + "jle" : __asm_proxy_JLE__, + "jmp" : __asm_proxy_JMP__, + "jmpq" : __asm_proxy_JMPQ__, + "jna" : __asm_proxy_JNA__, + "jnae" : __asm_proxy_JNAE__, + "jnb" : __asm_proxy_JNB__, + "jnbe" : __asm_proxy_JNBE__, + "jnc" : __asm_proxy_JNC__, + "jne" : __asm_proxy_JNE__, + "jng" : __asm_proxy_JNG__, + "jnge" : __asm_proxy_JNGE__, + "jnl" : __asm_proxy_JNL__, + "jnle" : __asm_proxy_JNLE__, + "jno" : __asm_proxy_JNO__, + "jnp" : __asm_proxy_JNP__, + "jns" : __asm_proxy_JNS__, + "jnz" : __asm_proxy_JNZ__, + "jo" : __asm_proxy_JO__, + "jp" : __asm_proxy_JP__, + "jpe" : __asm_proxy_JPE__, + "jpo" : __asm_proxy_JPO__, + "jrcxz" : __asm_proxy_JRCXZ__, + "js" : __asm_proxy_JS__, + "jz" : __asm_proxy_JZ__, + "kaddb" : __asm_proxy_KADDB__, + "kaddd" : __asm_proxy_KADDD__, + "kaddq" : __asm_proxy_KADDQ__, + "kaddw" : __asm_proxy_KADDW__, + "kandb" : __asm_proxy_KANDB__, + "kandd" : __asm_proxy_KANDD__, + "kandnb" : __asm_proxy_KANDNB__, + "kandnd" : __asm_proxy_KANDND__, + "kandnq" : __asm_proxy_KANDNQ__, + "kandnw" : __asm_proxy_KANDNW__, + "kandq" : __asm_proxy_KANDQ__, + "kandw" : __asm_proxy_KANDW__, + "kmovb" : __asm_proxy_KMOVB__, + "kmovd" : __asm_proxy_KMOVD__, + "kmovq" : __asm_proxy_KMOVQ__, + "kmovw" : __asm_proxy_KMOVW__, + "knotb" : __asm_proxy_KNOTB__, + "knotd" : __asm_proxy_KNOTD__, + "knotq" : __asm_proxy_KNOTQ__, + "knotw" : __asm_proxy_KNOTW__, + "korb" : __asm_proxy_KORB__, + "kord" : __asm_proxy_KORD__, + "korq" : __asm_proxy_KORQ__, + "kortestb" : __asm_proxy_KORTESTB__, + "kortestd" : __asm_proxy_KORTESTD__, + "kortestq" : __asm_proxy_KORTESTQ__, + "kortestw" : __asm_proxy_KORTESTW__, + "korw" : __asm_proxy_KORW__, + "kshiftlb" : __asm_proxy_KSHIFTLB__, + "kshiftld" : __asm_proxy_KSHIFTLD__, + "kshiftlq" : __asm_proxy_KSHIFTLQ__, + "kshiftlw" : __asm_proxy_KSHIFTLW__, + "kshiftrb" : __asm_proxy_KSHIFTRB__, + "kshiftrd" : __asm_proxy_KSHIFTRD__, + "kshiftrq" : __asm_proxy_KSHIFTRQ__, + "kshiftrw" : __asm_proxy_KSHIFTRW__, + "ktestb" : __asm_proxy_KTESTB__, + "ktestd" : __asm_proxy_KTESTD__, + "ktestq" : __asm_proxy_KTESTQ__, + "ktestw" : __asm_proxy_KTESTW__, + "kunpckbw" : __asm_proxy_KUNPCKBW__, + "kunpckdq" : __asm_proxy_KUNPCKDQ__, + "kunpckwd" : __asm_proxy_KUNPCKWD__, + "kxnorb" : __asm_proxy_KXNORB__, + "kxnord" : __asm_proxy_KXNORD__, + "kxnorq" : __asm_proxy_KXNORQ__, + "kxnorw" : __asm_proxy_KXNORW__, + "kxorb" : __asm_proxy_KXORB__, + "kxord" : __asm_proxy_KXORD__, + "kxorq" : __asm_proxy_KXORQ__, + "kxorw" : __asm_proxy_KXORW__, + "lddqu" : __asm_proxy_LDDQU__, + "ldmxcsr" : __asm_proxy_LDMXCSR__, + "leal" : __asm_proxy_LEAL__, + "leaq" : __asm_proxy_LEAQ__, + "leaw" : __asm_proxy_LEAW__, + "lfence" : __asm_proxy_LFENCE__, + "lzcntl" : __asm_proxy_LZCNTL__, + "lzcntq" : __asm_proxy_LZCNTQ__, + "lzcntw" : __asm_proxy_LZCNTW__, + "maskmovdqu" : __asm_proxy_MASKMOVDQU__, + "maskmovq" : __asm_proxy_MASKMOVQ__, + "maxpd" : __asm_proxy_MAXPD__, + "maxps" : __asm_proxy_MAXPS__, + "maxsd" : __asm_proxy_MAXSD__, + "maxss" : __asm_proxy_MAXSS__, + "mfence" : __asm_proxy_MFENCE__, + "minpd" : __asm_proxy_MINPD__, + "minps" : __asm_proxy_MINPS__, + "minsd" : __asm_proxy_MINSD__, + "minss" : __asm_proxy_MINSS__, + "monitor" : __asm_proxy_MONITOR__, + "monitorx" : __asm_proxy_MONITORX__, + "movapd" : __asm_proxy_MOVAPD__, + "movaps" : __asm_proxy_MOVAPS__, + "movb" : __asm_proxy_MOVB__, + "movbel" : __asm_proxy_MOVBEL__, + "movbeq" : __asm_proxy_MOVBEQ__, + "movbew" : __asm_proxy_MOVBEW__, + "movd" : __asm_proxy_MOVD__, + "movddup" : __asm_proxy_MOVDDUP__, + "movdq2q" : __asm_proxy_MOVDQ2Q__, + "movdqa" : __asm_proxy_MOVDQA__, + "movdqu" : __asm_proxy_MOVDQU__, + "movhlps" : __asm_proxy_MOVHLPS__, + "movhpd" : __asm_proxy_MOVHPD__, + "movhps" : __asm_proxy_MOVHPS__, + "movl" : __asm_proxy_MOVL__, + "movlhps" : __asm_proxy_MOVLHPS__, + "movlpd" : __asm_proxy_MOVLPD__, + "movlps" : __asm_proxy_MOVLPS__, + "movmskpd" : __asm_proxy_MOVMSKPD__, + "movmskps" : __asm_proxy_MOVMSKPS__, + "movntdq" : __asm_proxy_MOVNTDQ__, + "movntdqa" : __asm_proxy_MOVNTDQA__, + "movntil" : __asm_proxy_MOVNTIL__, + "movntiq" : __asm_proxy_MOVNTIQ__, + "movntpd" : __asm_proxy_MOVNTPD__, + "movntps" : __asm_proxy_MOVNTPS__, + "movntq" : __asm_proxy_MOVNTQ__, + "movntsd" : __asm_proxy_MOVNTSD__, + "movntss" : __asm_proxy_MOVNTSS__, + "movq" : __asm_proxy_MOVQ__, + "movq2dq" : __asm_proxy_MOVQ2DQ__, + "movsbl" : __asm_proxy_MOVSBL__, + "movsbq" : __asm_proxy_MOVSBQ__, + "movsbw" : __asm_proxy_MOVSBW__, + "movsd" : __asm_proxy_MOVSD__, + "movshdup" : __asm_proxy_MOVSHDUP__, + "movsldup" : __asm_proxy_MOVSLDUP__, + "movslq" : __asm_proxy_MOVSLQ__, + "movss" : __asm_proxy_MOVSS__, + "movswl" : __asm_proxy_MOVSWL__, + "movswq" : __asm_proxy_MOVSWQ__, + "movupd" : __asm_proxy_MOVUPD__, + "movups" : __asm_proxy_MOVUPS__, + "movw" : __asm_proxy_MOVW__, + "movzbl" : __asm_proxy_MOVZBL__, + "movzbq" : __asm_proxy_MOVZBQ__, + "movzbw" : __asm_proxy_MOVZBW__, + "movzwl" : __asm_proxy_MOVZWL__, + "movzwq" : __asm_proxy_MOVZWQ__, + "mpsadbw" : __asm_proxy_MPSADBW__, + "mulb" : __asm_proxy_MULB__, + "mull" : __asm_proxy_MULL__, + "mulpd" : __asm_proxy_MULPD__, + "mulps" : __asm_proxy_MULPS__, + "mulq" : __asm_proxy_MULQ__, + "mulsd" : __asm_proxy_MULSD__, + "mulss" : __asm_proxy_MULSS__, + "mulw" : __asm_proxy_MULW__, + "mulxl" : __asm_proxy_MULXL__, + "mulxq" : __asm_proxy_MULXQ__, + "mwait" : __asm_proxy_MWAIT__, + "mwaitx" : __asm_proxy_MWAITX__, + "negb" : __asm_proxy_NEGB__, + "negl" : __asm_proxy_NEGL__, + "negq" : __asm_proxy_NEGQ__, + "negw" : __asm_proxy_NEGW__, + "nop" : __asm_proxy_NOP__, + "notb" : __asm_proxy_NOTB__, + "notl" : __asm_proxy_NOTL__, + "notq" : __asm_proxy_NOTQ__, + "notw" : __asm_proxy_NOTW__, + "orb" : __asm_proxy_ORB__, + "orl" : __asm_proxy_ORL__, + "orpd" : __asm_proxy_ORPD__, + "orps" : __asm_proxy_ORPS__, + "orq" : __asm_proxy_ORQ__, + "orw" : __asm_proxy_ORW__, + "pabsb" : __asm_proxy_PABSB__, + "pabsd" : __asm_proxy_PABSD__, + "pabsw" : __asm_proxy_PABSW__, + "packssdw" : __asm_proxy_PACKSSDW__, + "packsswb" : __asm_proxy_PACKSSWB__, + "packusdw" : __asm_proxy_PACKUSDW__, + "packuswb" : __asm_proxy_PACKUSWB__, + "paddb" : __asm_proxy_PADDB__, + "paddd" : __asm_proxy_PADDD__, + "paddq" : __asm_proxy_PADDQ__, + "paddsb" : __asm_proxy_PADDSB__, + "paddsw" : __asm_proxy_PADDSW__, + "paddusb" : __asm_proxy_PADDUSB__, + "paddusw" : __asm_proxy_PADDUSW__, + "paddw" : __asm_proxy_PADDW__, + "palignr" : __asm_proxy_PALIGNR__, + "pand" : __asm_proxy_PAND__, + "pandn" : __asm_proxy_PANDN__, + "pause" : __asm_proxy_PAUSE__, + "pavgb" : __asm_proxy_PAVGB__, + "pavgusb" : __asm_proxy_PAVGUSB__, + "pavgw" : __asm_proxy_PAVGW__, + "pblendvb" : __asm_proxy_PBLENDVB__, + "pblendw" : __asm_proxy_PBLENDW__, + "pclmulqdq" : __asm_proxy_PCLMULQDQ__, + "pcmpeqb" : __asm_proxy_PCMPEQB__, + "pcmpeqd" : __asm_proxy_PCMPEQD__, + "pcmpeqq" : __asm_proxy_PCMPEQQ__, + "pcmpeqw" : __asm_proxy_PCMPEQW__, + "pcmpestri" : __asm_proxy_PCMPESTRI__, + "pcmpestrm" : __asm_proxy_PCMPESTRM__, + "pcmpgtb" : __asm_proxy_PCMPGTB__, + "pcmpgtd" : __asm_proxy_PCMPGTD__, + "pcmpgtq" : __asm_proxy_PCMPGTQ__, + "pcmpgtw" : __asm_proxy_PCMPGTW__, + "pcmpistri" : __asm_proxy_PCMPISTRI__, + "pcmpistrm" : __asm_proxy_PCMPISTRM__, + "pdep" : __asm_proxy_PDEP__, + "pext" : __asm_proxy_PEXT__, + "pextrb" : __asm_proxy_PEXTRB__, + "pextrd" : __asm_proxy_PEXTRD__, + "pextrq" : __asm_proxy_PEXTRQ__, + "pextrw" : __asm_proxy_PEXTRW__, + "pf2id" : __asm_proxy_PF2ID__, + "pf2iw" : __asm_proxy_PF2IW__, + "pfacc" : __asm_proxy_PFACC__, + "pfadd" : __asm_proxy_PFADD__, + "pfcmpeq" : __asm_proxy_PFCMPEQ__, + "pfcmpge" : __asm_proxy_PFCMPGE__, + "pfcmpgt" : __asm_proxy_PFCMPGT__, + "pfmax" : __asm_proxy_PFMAX__, + "pfmin" : __asm_proxy_PFMIN__, + "pfmul" : __asm_proxy_PFMUL__, + "pfnacc" : __asm_proxy_PFNACC__, + "pfpnacc" : __asm_proxy_PFPNACC__, + "pfrcp" : __asm_proxy_PFRCP__, + "pfrcpit1" : __asm_proxy_PFRCPIT1__, + "pfrcpit2" : __asm_proxy_PFRCPIT2__, + "pfrsqit1" : __asm_proxy_PFRSQIT1__, + "pfrsqrt" : __asm_proxy_PFRSQRT__, + "pfsub" : __asm_proxy_PFSUB__, + "pfsubr" : __asm_proxy_PFSUBR__, + "phaddd" : __asm_proxy_PHADDD__, + "phaddsw" : __asm_proxy_PHADDSW__, + "phaddw" : __asm_proxy_PHADDW__, + "phminposuw" : __asm_proxy_PHMINPOSUW__, + "phsubd" : __asm_proxy_PHSUBD__, + "phsubsw" : __asm_proxy_PHSUBSW__, + "phsubw" : __asm_proxy_PHSUBW__, + "pi2fd" : __asm_proxy_PI2FD__, + "pi2fw" : __asm_proxy_PI2FW__, + "pinsrb" : __asm_proxy_PINSRB__, + "pinsrd" : __asm_proxy_PINSRD__, + "pinsrq" : __asm_proxy_PINSRQ__, + "pinsrw" : __asm_proxy_PINSRW__, + "pmaddubsw" : __asm_proxy_PMADDUBSW__, + "pmaddwd" : __asm_proxy_PMADDWD__, + "pmaxsb" : __asm_proxy_PMAXSB__, + "pmaxsd" : __asm_proxy_PMAXSD__, + "pmaxsw" : __asm_proxy_PMAXSW__, + "pmaxub" : __asm_proxy_PMAXUB__, + "pmaxud" : __asm_proxy_PMAXUD__, + "pmaxuw" : __asm_proxy_PMAXUW__, + "pminsb" : __asm_proxy_PMINSB__, + "pminsd" : __asm_proxy_PMINSD__, + "pminsw" : __asm_proxy_PMINSW__, + "pminub" : __asm_proxy_PMINUB__, + "pminud" : __asm_proxy_PMINUD__, + "pminuw" : __asm_proxy_PMINUW__, + "pmovmskb" : __asm_proxy_PMOVMSKB__, + "pmovsxbd" : __asm_proxy_PMOVSXBD__, + "pmovsxbq" : __asm_proxy_PMOVSXBQ__, + "pmovsxbw" : __asm_proxy_PMOVSXBW__, + "pmovsxdq" : __asm_proxy_PMOVSXDQ__, + "pmovsxwd" : __asm_proxy_PMOVSXWD__, + "pmovsxwq" : __asm_proxy_PMOVSXWQ__, + "pmovzxbd" : __asm_proxy_PMOVZXBD__, + "pmovzxbq" : __asm_proxy_PMOVZXBQ__, + "pmovzxbw" : __asm_proxy_PMOVZXBW__, + "pmovzxdq" : __asm_proxy_PMOVZXDQ__, + "pmovzxwd" : __asm_proxy_PMOVZXWD__, + "pmovzxwq" : __asm_proxy_PMOVZXWQ__, + "pmuldq" : __asm_proxy_PMULDQ__, + "pmulhrsw" : __asm_proxy_PMULHRSW__, + "pmulhrw" : __asm_proxy_PMULHRW__, + "pmulhuw" : __asm_proxy_PMULHUW__, + "pmulhw" : __asm_proxy_PMULHW__, + "pmulld" : __asm_proxy_PMULLD__, + "pmullw" : __asm_proxy_PMULLW__, + "pmuludq" : __asm_proxy_PMULUDQ__, + "popcntl" : __asm_proxy_POPCNTL__, + "popcntq" : __asm_proxy_POPCNTQ__, + "popcntw" : __asm_proxy_POPCNTW__, + "popq" : __asm_proxy_POPQ__, + "popw" : __asm_proxy_POPW__, + "por" : __asm_proxy_POR__, + "prefetch" : __asm_proxy_PREFETCH__, + "prefetchnta" : __asm_proxy_PREFETCHNTA__, + "prefetcht0" : __asm_proxy_PREFETCHT0__, + "prefetcht1" : __asm_proxy_PREFETCHT1__, + "prefetcht2" : __asm_proxy_PREFETCHT2__, + "prefetchw" : __asm_proxy_PREFETCHW__, + "prefetchwt1" : __asm_proxy_PREFETCHWT1__, + "psadbw" : __asm_proxy_PSADBW__, + "pshufb" : __asm_proxy_PSHUFB__, + "pshufd" : __asm_proxy_PSHUFD__, + "pshufhw" : __asm_proxy_PSHUFHW__, + "pshuflw" : __asm_proxy_PSHUFLW__, + "pshufw" : __asm_proxy_PSHUFW__, + "psignb" : __asm_proxy_PSIGNB__, + "psignd" : __asm_proxy_PSIGND__, + "psignw" : __asm_proxy_PSIGNW__, + "pslld" : __asm_proxy_PSLLD__, + "pslldq" : __asm_proxy_PSLLDQ__, + "psllq" : __asm_proxy_PSLLQ__, + "psllw" : __asm_proxy_PSLLW__, + "psrad" : __asm_proxy_PSRAD__, + "psraw" : __asm_proxy_PSRAW__, + "psrld" : __asm_proxy_PSRLD__, + "psrldq" : __asm_proxy_PSRLDQ__, + "psrlq" : __asm_proxy_PSRLQ__, + "psrlw" : __asm_proxy_PSRLW__, + "psubb" : __asm_proxy_PSUBB__, + "psubd" : __asm_proxy_PSUBD__, + "psubq" : __asm_proxy_PSUBQ__, + "psubsb" : __asm_proxy_PSUBSB__, + "psubsw" : __asm_proxy_PSUBSW__, + "psubusb" : __asm_proxy_PSUBUSB__, + "psubusw" : __asm_proxy_PSUBUSW__, + "psubw" : __asm_proxy_PSUBW__, + "pswapd" : __asm_proxy_PSWAPD__, + "ptest" : __asm_proxy_PTEST__, + "punpckhbw" : __asm_proxy_PUNPCKHBW__, + "punpckhdq" : __asm_proxy_PUNPCKHDQ__, + "punpckhqdq" : __asm_proxy_PUNPCKHQDQ__, + "punpckhwd" : __asm_proxy_PUNPCKHWD__, + "punpcklbw" : __asm_proxy_PUNPCKLBW__, + "punpckldq" : __asm_proxy_PUNPCKLDQ__, + "punpcklqdq" : __asm_proxy_PUNPCKLQDQ__, + "punpcklwd" : __asm_proxy_PUNPCKLWD__, + "pushq" : __asm_proxy_PUSHQ__, + "pushw" : __asm_proxy_PUSHW__, + "pxor" : __asm_proxy_PXOR__, + "rclb" : __asm_proxy_RCLB__, + "rcll" : __asm_proxy_RCLL__, + "rclq" : __asm_proxy_RCLQ__, + "rclw" : __asm_proxy_RCLW__, + "rcpps" : __asm_proxy_RCPPS__, + "rcpss" : __asm_proxy_RCPSS__, + "rcrb" : __asm_proxy_RCRB__, + "rcrl" : __asm_proxy_RCRL__, + "rcrq" : __asm_proxy_RCRQ__, + "rcrw" : __asm_proxy_RCRW__, + "rdrand" : __asm_proxy_RDRAND__, + "rdseed" : __asm_proxy_RDSEED__, + "rdtsc" : __asm_proxy_RDTSC__, + "rdtscp" : __asm_proxy_RDTSCP__, + "ret" : __asm_proxy_RET__, + "rolb" : __asm_proxy_ROLB__, + "roll" : __asm_proxy_ROLL__, + "rolq" : __asm_proxy_ROLQ__, + "rolw" : __asm_proxy_ROLW__, + "rorb" : __asm_proxy_RORB__, + "rorl" : __asm_proxy_RORL__, + "rorq" : __asm_proxy_RORQ__, + "rorw" : __asm_proxy_RORW__, + "rorxl" : __asm_proxy_RORXL__, + "rorxq" : __asm_proxy_RORXQ__, + "roundpd" : __asm_proxy_ROUNDPD__, + "roundps" : __asm_proxy_ROUNDPS__, + "roundsd" : __asm_proxy_ROUNDSD__, + "roundss" : __asm_proxy_ROUNDSS__, + "rsqrtps" : __asm_proxy_RSQRTPS__, + "rsqrtss" : __asm_proxy_RSQRTSS__, + "salb" : __asm_proxy_SALB__, + "sall" : __asm_proxy_SALL__, + "salq" : __asm_proxy_SALQ__, + "salw" : __asm_proxy_SALW__, + "sarb" : __asm_proxy_SARB__, + "sarl" : __asm_proxy_SARL__, + "sarq" : __asm_proxy_SARQ__, + "sarw" : __asm_proxy_SARW__, + "sarxl" : __asm_proxy_SARXL__, + "sarxq" : __asm_proxy_SARXQ__, + "sbbb" : __asm_proxy_SBBB__, + "sbbl" : __asm_proxy_SBBL__, + "sbbq" : __asm_proxy_SBBQ__, + "sbbw" : __asm_proxy_SBBW__, + "seta" : __asm_proxy_SETA__, + "setae" : __asm_proxy_SETAE__, + "setb" : __asm_proxy_SETB__, + "setbe" : __asm_proxy_SETBE__, + "setc" : __asm_proxy_SETC__, + "sete" : __asm_proxy_SETE__, + "setg" : __asm_proxy_SETG__, + "setge" : __asm_proxy_SETGE__, + "setl" : __asm_proxy_SETL__, + "setle" : __asm_proxy_SETLE__, + "setna" : __asm_proxy_SETNA__, + "setnae" : __asm_proxy_SETNAE__, + "setnb" : __asm_proxy_SETNB__, + "setnbe" : __asm_proxy_SETNBE__, + "setnc" : __asm_proxy_SETNC__, + "setne" : __asm_proxy_SETNE__, + "setng" : __asm_proxy_SETNG__, + "setnge" : __asm_proxy_SETNGE__, + "setnl" : __asm_proxy_SETNL__, + "setnle" : __asm_proxy_SETNLE__, + "setno" : __asm_proxy_SETNO__, + "setnp" : __asm_proxy_SETNP__, + "setns" : __asm_proxy_SETNS__, + "setnz" : __asm_proxy_SETNZ__, + "seto" : __asm_proxy_SETO__, + "setp" : __asm_proxy_SETP__, + "setpe" : __asm_proxy_SETPE__, + "setpo" : __asm_proxy_SETPO__, + "sets" : __asm_proxy_SETS__, + "setz" : __asm_proxy_SETZ__, + "sfence" : __asm_proxy_SFENCE__, + "sha1msg1" : __asm_proxy_SHA1MSG1__, + "sha1msg2" : __asm_proxy_SHA1MSG2__, + "sha1nexte" : __asm_proxy_SHA1NEXTE__, + "sha1rnds4" : __asm_proxy_SHA1RNDS4__, + "sha256msg1" : __asm_proxy_SHA256MSG1__, + "sha256msg2" : __asm_proxy_SHA256MSG2__, + "sha256rnds2" : __asm_proxy_SHA256RNDS2__, + "shlb" : __asm_proxy_SHLB__, + "shldl" : __asm_proxy_SHLDL__, + "shldq" : __asm_proxy_SHLDQ__, + "shldw" : __asm_proxy_SHLDW__, + "shll" : __asm_proxy_SHLL__, + "shlq" : __asm_proxy_SHLQ__, + "shlw" : __asm_proxy_SHLW__, + "shlxl" : __asm_proxy_SHLXL__, + "shlxq" : __asm_proxy_SHLXQ__, + "shrb" : __asm_proxy_SHRB__, + "shrdl" : __asm_proxy_SHRDL__, + "shrdq" : __asm_proxy_SHRDQ__, + "shrdw" : __asm_proxy_SHRDW__, + "shrl" : __asm_proxy_SHRL__, + "shrq" : __asm_proxy_SHRQ__, + "shrw" : __asm_proxy_SHRW__, + "shrxl" : __asm_proxy_SHRXL__, + "shrxq" : __asm_proxy_SHRXQ__, + "shufpd" : __asm_proxy_SHUFPD__, + "shufps" : __asm_proxy_SHUFPS__, + "sqrtpd" : __asm_proxy_SQRTPD__, + "sqrtps" : __asm_proxy_SQRTPS__, + "sqrtsd" : __asm_proxy_SQRTSD__, + "sqrtss" : __asm_proxy_SQRTSS__, + "stc" : __asm_proxy_STC__, + "std" : __asm_proxy_STD__, + "stmxcsr" : __asm_proxy_STMXCSR__, + "subb" : __asm_proxy_SUBB__, + "subl" : __asm_proxy_SUBL__, + "subpd" : __asm_proxy_SUBPD__, + "subps" : __asm_proxy_SUBPS__, + "subq" : __asm_proxy_SUBQ__, + "subsd" : __asm_proxy_SUBSD__, + "subss" : __asm_proxy_SUBSS__, + "subw" : __asm_proxy_SUBW__, + "syscall" : __asm_proxy_SYSCALL__, + "t1mskc" : __asm_proxy_T1MSKC__, + "testb" : __asm_proxy_TESTB__, + "testl" : __asm_proxy_TESTL__, + "testq" : __asm_proxy_TESTQ__, + "testw" : __asm_proxy_TESTW__, + "tzcntl" : __asm_proxy_TZCNTL__, + "tzcntq" : __asm_proxy_TZCNTQ__, + "tzcntw" : __asm_proxy_TZCNTW__, + "tzmsk" : __asm_proxy_TZMSK__, + "ucomisd" : __asm_proxy_UCOMISD__, + "ucomiss" : __asm_proxy_UCOMISS__, + "ud2" : __asm_proxy_UD2__, + "unpckhpd" : __asm_proxy_UNPCKHPD__, + "unpckhps" : __asm_proxy_UNPCKHPS__, + "unpcklpd" : __asm_proxy_UNPCKLPD__, + "unpcklps" : __asm_proxy_UNPCKLPS__, + "vaddpd" : __asm_proxy_VADDPD__, + "vaddps" : __asm_proxy_VADDPS__, + "vaddsd" : __asm_proxy_VADDSD__, + "vaddss" : __asm_proxy_VADDSS__, + "vaddsubpd" : __asm_proxy_VADDSUBPD__, + "vaddsubps" : __asm_proxy_VADDSUBPS__, + "vaesdec" : __asm_proxy_VAESDEC__, + "vaesdeclast" : __asm_proxy_VAESDECLAST__, + "vaesenc" : __asm_proxy_VAESENC__, + "vaesenclast" : __asm_proxy_VAESENCLAST__, + "vaesimc" : __asm_proxy_VAESIMC__, + "vaeskeygenassist" : __asm_proxy_VAESKEYGENASSIST__, + "valignd" : __asm_proxy_VALIGND__, + "valignq" : __asm_proxy_VALIGNQ__, + "vandnpd" : __asm_proxy_VANDNPD__, + "vandnps" : __asm_proxy_VANDNPS__, + "vandpd" : __asm_proxy_VANDPD__, + "vandps" : __asm_proxy_VANDPS__, + "vblendmpd" : __asm_proxy_VBLENDMPD__, + "vblendmps" : __asm_proxy_VBLENDMPS__, + "vblendpd" : __asm_proxy_VBLENDPD__, + "vblendps" : __asm_proxy_VBLENDPS__, + "vblendvpd" : __asm_proxy_VBLENDVPD__, + "vblendvps" : __asm_proxy_VBLENDVPS__, + "vbroadcastf128" : __asm_proxy_VBROADCASTF128__, + "vbroadcastf32x2" : __asm_proxy_VBROADCASTF32X2__, + "vbroadcastf32x4" : __asm_proxy_VBROADCASTF32X4__, + "vbroadcastf32x8" : __asm_proxy_VBROADCASTF32X8__, + "vbroadcastf64x2" : __asm_proxy_VBROADCASTF64X2__, + "vbroadcastf64x4" : __asm_proxy_VBROADCASTF64X4__, + "vbroadcasti128" : __asm_proxy_VBROADCASTI128__, + "vbroadcasti32x2" : __asm_proxy_VBROADCASTI32X2__, + "vbroadcasti32x4" : __asm_proxy_VBROADCASTI32X4__, + "vbroadcasti32x8" : __asm_proxy_VBROADCASTI32X8__, + "vbroadcasti64x2" : __asm_proxy_VBROADCASTI64X2__, + "vbroadcasti64x4" : __asm_proxy_VBROADCASTI64X4__, + "vbroadcastsd" : __asm_proxy_VBROADCASTSD__, + "vbroadcastss" : __asm_proxy_VBROADCASTSS__, + "vcmppd" : __asm_proxy_VCMPPD__, + "vcmpps" : __asm_proxy_VCMPPS__, + "vcmpsd" : __asm_proxy_VCMPSD__, + "vcmpss" : __asm_proxy_VCMPSS__, + "vcomisd" : __asm_proxy_VCOMISD__, + "vcomiss" : __asm_proxy_VCOMISS__, + "vcompresspd" : __asm_proxy_VCOMPRESSPD__, + "vcompressps" : __asm_proxy_VCOMPRESSPS__, + "vcvtdq2pd" : __asm_proxy_VCVTDQ2PD__, + "vcvtdq2ps" : __asm_proxy_VCVTDQ2PS__, + "vcvtpd2dq" : __asm_proxy_VCVTPD2DQ__, + "vcvtpd2ps" : __asm_proxy_VCVTPD2PS__, + "vcvtpd2qq" : __asm_proxy_VCVTPD2QQ__, + "vcvtpd2udq" : __asm_proxy_VCVTPD2UDQ__, + "vcvtpd2uqq" : __asm_proxy_VCVTPD2UQQ__, + "vcvtph2ps" : __asm_proxy_VCVTPH2PS__, + "vcvtps2dq" : __asm_proxy_VCVTPS2DQ__, + "vcvtps2pd" : __asm_proxy_VCVTPS2PD__, + "vcvtps2ph" : __asm_proxy_VCVTPS2PH__, + "vcvtps2qq" : __asm_proxy_VCVTPS2QQ__, + "vcvtps2udq" : __asm_proxy_VCVTPS2UDQ__, + "vcvtps2uqq" : __asm_proxy_VCVTPS2UQQ__, + "vcvtqq2pd" : __asm_proxy_VCVTQQ2PD__, + "vcvtqq2ps" : __asm_proxy_VCVTQQ2PS__, + "vcvtsd2si" : __asm_proxy_VCVTSD2SI__, + "vcvtsd2ss" : __asm_proxy_VCVTSD2SS__, + "vcvtsd2usi" : __asm_proxy_VCVTSD2USI__, + "vcvtsi2sd" : __asm_proxy_VCVTSI2SD__, + "vcvtsi2ss" : __asm_proxy_VCVTSI2SS__, + "vcvtss2sd" : __asm_proxy_VCVTSS2SD__, + "vcvtss2si" : __asm_proxy_VCVTSS2SI__, + "vcvtss2usi" : __asm_proxy_VCVTSS2USI__, + "vcvttpd2dq" : __asm_proxy_VCVTTPD2DQ__, + "vcvttpd2qq" : __asm_proxy_VCVTTPD2QQ__, + "vcvttpd2udq" : __asm_proxy_VCVTTPD2UDQ__, + "vcvttpd2uqq" : __asm_proxy_VCVTTPD2UQQ__, + "vcvttps2dq" : __asm_proxy_VCVTTPS2DQ__, + "vcvttps2qq" : __asm_proxy_VCVTTPS2QQ__, + "vcvttps2udq" : __asm_proxy_VCVTTPS2UDQ__, + "vcvttps2uqq" : __asm_proxy_VCVTTPS2UQQ__, + "vcvttsd2si" : __asm_proxy_VCVTTSD2SI__, + "vcvttsd2usi" : __asm_proxy_VCVTTSD2USI__, + "vcvttss2si" : __asm_proxy_VCVTTSS2SI__, + "vcvttss2usi" : __asm_proxy_VCVTTSS2USI__, + "vcvtudq2pd" : __asm_proxy_VCVTUDQ2PD__, + "vcvtudq2ps" : __asm_proxy_VCVTUDQ2PS__, + "vcvtuqq2pd" : __asm_proxy_VCVTUQQ2PD__, + "vcvtuqq2ps" : __asm_proxy_VCVTUQQ2PS__, + "vcvtusi2sd" : __asm_proxy_VCVTUSI2SD__, + "vcvtusi2ss" : __asm_proxy_VCVTUSI2SS__, + "vdbpsadbw" : __asm_proxy_VDBPSADBW__, + "vdivpd" : __asm_proxy_VDIVPD__, + "vdivps" : __asm_proxy_VDIVPS__, + "vdivsd" : __asm_proxy_VDIVSD__, + "vdivss" : __asm_proxy_VDIVSS__, + "vdppd" : __asm_proxy_VDPPD__, + "vdpps" : __asm_proxy_VDPPS__, + "vexp2pd" : __asm_proxy_VEXP2PD__, + "vexp2ps" : __asm_proxy_VEXP2PS__, + "vexpandpd" : __asm_proxy_VEXPANDPD__, + "vexpandps" : __asm_proxy_VEXPANDPS__, + "vextractf128" : __asm_proxy_VEXTRACTF128__, + "vextractf32x4" : __asm_proxy_VEXTRACTF32X4__, + "vextractf32x8" : __asm_proxy_VEXTRACTF32X8__, + "vextractf64x2" : __asm_proxy_VEXTRACTF64X2__, + "vextractf64x4" : __asm_proxy_VEXTRACTF64X4__, + "vextracti128" : __asm_proxy_VEXTRACTI128__, + "vextracti32x4" : __asm_proxy_VEXTRACTI32X4__, + "vextracti32x8" : __asm_proxy_VEXTRACTI32X8__, + "vextracti64x2" : __asm_proxy_VEXTRACTI64X2__, + "vextracti64x4" : __asm_proxy_VEXTRACTI64X4__, + "vextractps" : __asm_proxy_VEXTRACTPS__, + "vfixupimmpd" : __asm_proxy_VFIXUPIMMPD__, + "vfixupimmps" : __asm_proxy_VFIXUPIMMPS__, + "vfixupimmsd" : __asm_proxy_VFIXUPIMMSD__, + "vfixupimmss" : __asm_proxy_VFIXUPIMMSS__, + "vfmadd132pd" : __asm_proxy_VFMADD132PD__, + "vfmadd132ps" : __asm_proxy_VFMADD132PS__, + "vfmadd132sd" : __asm_proxy_VFMADD132SD__, + "vfmadd132ss" : __asm_proxy_VFMADD132SS__, + "vfmadd213pd" : __asm_proxy_VFMADD213PD__, + "vfmadd213ps" : __asm_proxy_VFMADD213PS__, + "vfmadd213sd" : __asm_proxy_VFMADD213SD__, + "vfmadd213ss" : __asm_proxy_VFMADD213SS__, + "vfmadd231pd" : __asm_proxy_VFMADD231PD__, + "vfmadd231ps" : __asm_proxy_VFMADD231PS__, + "vfmadd231sd" : __asm_proxy_VFMADD231SD__, + "vfmadd231ss" : __asm_proxy_VFMADD231SS__, + "vfmaddpd" : __asm_proxy_VFMADDPD__, + "vfmaddps" : __asm_proxy_VFMADDPS__, + "vfmaddsd" : __asm_proxy_VFMADDSD__, + "vfmaddss" : __asm_proxy_VFMADDSS__, + "vfmaddsub132pd" : __asm_proxy_VFMADDSUB132PD__, + "vfmaddsub132ps" : __asm_proxy_VFMADDSUB132PS__, + "vfmaddsub213pd" : __asm_proxy_VFMADDSUB213PD__, + "vfmaddsub213ps" : __asm_proxy_VFMADDSUB213PS__, + "vfmaddsub231pd" : __asm_proxy_VFMADDSUB231PD__, + "vfmaddsub231ps" : __asm_proxy_VFMADDSUB231PS__, + "vfmaddsubpd" : __asm_proxy_VFMADDSUBPD__, + "vfmaddsubps" : __asm_proxy_VFMADDSUBPS__, + "vfmsub132pd" : __asm_proxy_VFMSUB132PD__, + "vfmsub132ps" : __asm_proxy_VFMSUB132PS__, + "vfmsub132sd" : __asm_proxy_VFMSUB132SD__, + "vfmsub132ss" : __asm_proxy_VFMSUB132SS__, + "vfmsub213pd" : __asm_proxy_VFMSUB213PD__, + "vfmsub213ps" : __asm_proxy_VFMSUB213PS__, + "vfmsub213sd" : __asm_proxy_VFMSUB213SD__, + "vfmsub213ss" : __asm_proxy_VFMSUB213SS__, + "vfmsub231pd" : __asm_proxy_VFMSUB231PD__, + "vfmsub231ps" : __asm_proxy_VFMSUB231PS__, + "vfmsub231sd" : __asm_proxy_VFMSUB231SD__, + "vfmsub231ss" : __asm_proxy_VFMSUB231SS__, + "vfmsubadd132pd" : __asm_proxy_VFMSUBADD132PD__, + "vfmsubadd132ps" : __asm_proxy_VFMSUBADD132PS__, + "vfmsubadd213pd" : __asm_proxy_VFMSUBADD213PD__, + "vfmsubadd213ps" : __asm_proxy_VFMSUBADD213PS__, + "vfmsubadd231pd" : __asm_proxy_VFMSUBADD231PD__, + "vfmsubadd231ps" : __asm_proxy_VFMSUBADD231PS__, + "vfmsubaddpd" : __asm_proxy_VFMSUBADDPD__, + "vfmsubaddps" : __asm_proxy_VFMSUBADDPS__, + "vfmsubpd" : __asm_proxy_VFMSUBPD__, + "vfmsubps" : __asm_proxy_VFMSUBPS__, + "vfmsubsd" : __asm_proxy_VFMSUBSD__, + "vfmsubss" : __asm_proxy_VFMSUBSS__, + "vfnmadd132pd" : __asm_proxy_VFNMADD132PD__, + "vfnmadd132ps" : __asm_proxy_VFNMADD132PS__, + "vfnmadd132sd" : __asm_proxy_VFNMADD132SD__, + "vfnmadd132ss" : __asm_proxy_VFNMADD132SS__, + "vfnmadd213pd" : __asm_proxy_VFNMADD213PD__, + "vfnmadd213ps" : __asm_proxy_VFNMADD213PS__, + "vfnmadd213sd" : __asm_proxy_VFNMADD213SD__, + "vfnmadd213ss" : __asm_proxy_VFNMADD213SS__, + "vfnmadd231pd" : __asm_proxy_VFNMADD231PD__, + "vfnmadd231ps" : __asm_proxy_VFNMADD231PS__, + "vfnmadd231sd" : __asm_proxy_VFNMADD231SD__, + "vfnmadd231ss" : __asm_proxy_VFNMADD231SS__, + "vfnmaddpd" : __asm_proxy_VFNMADDPD__, + "vfnmaddps" : __asm_proxy_VFNMADDPS__, + "vfnmaddsd" : __asm_proxy_VFNMADDSD__, + "vfnmaddss" : __asm_proxy_VFNMADDSS__, + "vfnmsub132pd" : __asm_proxy_VFNMSUB132PD__, + "vfnmsub132ps" : __asm_proxy_VFNMSUB132PS__, + "vfnmsub132sd" : __asm_proxy_VFNMSUB132SD__, + "vfnmsub132ss" : __asm_proxy_VFNMSUB132SS__, + "vfnmsub213pd" : __asm_proxy_VFNMSUB213PD__, + "vfnmsub213ps" : __asm_proxy_VFNMSUB213PS__, + "vfnmsub213sd" : __asm_proxy_VFNMSUB213SD__, + "vfnmsub213ss" : __asm_proxy_VFNMSUB213SS__, + "vfnmsub231pd" : __asm_proxy_VFNMSUB231PD__, + "vfnmsub231ps" : __asm_proxy_VFNMSUB231PS__, + "vfnmsub231sd" : __asm_proxy_VFNMSUB231SD__, + "vfnmsub231ss" : __asm_proxy_VFNMSUB231SS__, + "vfnmsubpd" : __asm_proxy_VFNMSUBPD__, + "vfnmsubps" : __asm_proxy_VFNMSUBPS__, + "vfnmsubsd" : __asm_proxy_VFNMSUBSD__, + "vfnmsubss" : __asm_proxy_VFNMSUBSS__, + "vfpclasspd" : __asm_proxy_VFPCLASSPD__, + "vfpclassps" : __asm_proxy_VFPCLASSPS__, + "vfpclasssd" : __asm_proxy_VFPCLASSSD__, + "vfpclassss" : __asm_proxy_VFPCLASSSS__, + "vfrczpd" : __asm_proxy_VFRCZPD__, + "vfrczps" : __asm_proxy_VFRCZPS__, + "vfrczsd" : __asm_proxy_VFRCZSD__, + "vfrczss" : __asm_proxy_VFRCZSS__, + "vgatherdpd" : __asm_proxy_VGATHERDPD__, + "vgatherdps" : __asm_proxy_VGATHERDPS__, + "vgatherpf0dpd" : __asm_proxy_VGATHERPF0DPD__, + "vgatherpf0dps" : __asm_proxy_VGATHERPF0DPS__, + "vgatherpf0qpd" : __asm_proxy_VGATHERPF0QPD__, + "vgatherpf0qps" : __asm_proxy_VGATHERPF0QPS__, + "vgatherpf1dpd" : __asm_proxy_VGATHERPF1DPD__, + "vgatherpf1dps" : __asm_proxy_VGATHERPF1DPS__, + "vgatherpf1qpd" : __asm_proxy_VGATHERPF1QPD__, + "vgatherpf1qps" : __asm_proxy_VGATHERPF1QPS__, + "vgatherqpd" : __asm_proxy_VGATHERQPD__, + "vgatherqps" : __asm_proxy_VGATHERQPS__, + "vgetexppd" : __asm_proxy_VGETEXPPD__, + "vgetexpps" : __asm_proxy_VGETEXPPS__, + "vgetexpsd" : __asm_proxy_VGETEXPSD__, + "vgetexpss" : __asm_proxy_VGETEXPSS__, + "vgetmantpd" : __asm_proxy_VGETMANTPD__, + "vgetmantps" : __asm_proxy_VGETMANTPS__, + "vgetmantsd" : __asm_proxy_VGETMANTSD__, + "vgetmantss" : __asm_proxy_VGETMANTSS__, + "vhaddpd" : __asm_proxy_VHADDPD__, + "vhaddps" : __asm_proxy_VHADDPS__, + "vhsubpd" : __asm_proxy_VHSUBPD__, + "vhsubps" : __asm_proxy_VHSUBPS__, + "vinsertf128" : __asm_proxy_VINSERTF128__, + "vinsertf32x4" : __asm_proxy_VINSERTF32X4__, + "vinsertf32x8" : __asm_proxy_VINSERTF32X8__, + "vinsertf64x2" : __asm_proxy_VINSERTF64X2__, + "vinsertf64x4" : __asm_proxy_VINSERTF64X4__, + "vinserti128" : __asm_proxy_VINSERTI128__, + "vinserti32x4" : __asm_proxy_VINSERTI32X4__, + "vinserti32x8" : __asm_proxy_VINSERTI32X8__, + "vinserti64x2" : __asm_proxy_VINSERTI64X2__, + "vinserti64x4" : __asm_proxy_VINSERTI64X4__, + "vinsertps" : __asm_proxy_VINSERTPS__, + "vlddqu" : __asm_proxy_VLDDQU__, + "vldmxcsr" : __asm_proxy_VLDMXCSR__, + "vmaskmovdqu" : __asm_proxy_VMASKMOVDQU__, + "vmaskmovpd" : __asm_proxy_VMASKMOVPD__, + "vmaskmovps" : __asm_proxy_VMASKMOVPS__, + "vmaxpd" : __asm_proxy_VMAXPD__, + "vmaxps" : __asm_proxy_VMAXPS__, + "vmaxsd" : __asm_proxy_VMAXSD__, + "vmaxss" : __asm_proxy_VMAXSS__, + "vminpd" : __asm_proxy_VMINPD__, + "vminps" : __asm_proxy_VMINPS__, + "vminsd" : __asm_proxy_VMINSD__, + "vminss" : __asm_proxy_VMINSS__, + "vmovapd" : __asm_proxy_VMOVAPD__, + "vmovaps" : __asm_proxy_VMOVAPS__, + "vmovd" : __asm_proxy_VMOVD__, + "vmovddup" : __asm_proxy_VMOVDDUP__, + "vmovdqa" : __asm_proxy_VMOVDQA__, + "vmovdqa32" : __asm_proxy_VMOVDQA32__, + "vmovdqa64" : __asm_proxy_VMOVDQA64__, + "vmovdqu" : __asm_proxy_VMOVDQU__, + "vmovdqu16" : __asm_proxy_VMOVDQU16__, + "vmovdqu32" : __asm_proxy_VMOVDQU32__, + "vmovdqu64" : __asm_proxy_VMOVDQU64__, + "vmovdqu8" : __asm_proxy_VMOVDQU8__, + "vmovhlps" : __asm_proxy_VMOVHLPS__, + "vmovhpd" : __asm_proxy_VMOVHPD__, + "vmovhps" : __asm_proxy_VMOVHPS__, + "vmovlhps" : __asm_proxy_VMOVLHPS__, + "vmovlpd" : __asm_proxy_VMOVLPD__, + "vmovlps" : __asm_proxy_VMOVLPS__, + "vmovmskpd" : __asm_proxy_VMOVMSKPD__, + "vmovmskps" : __asm_proxy_VMOVMSKPS__, + "vmovntdq" : __asm_proxy_VMOVNTDQ__, + "vmovntdqa" : __asm_proxy_VMOVNTDQA__, + "vmovntpd" : __asm_proxy_VMOVNTPD__, + "vmovntps" : __asm_proxy_VMOVNTPS__, + "vmovq" : __asm_proxy_VMOVQ__, + "vmovsd" : __asm_proxy_VMOVSD__, + "vmovshdup" : __asm_proxy_VMOVSHDUP__, + "vmovsldup" : __asm_proxy_VMOVSLDUP__, + "vmovss" : __asm_proxy_VMOVSS__, + "vmovupd" : __asm_proxy_VMOVUPD__, + "vmovups" : __asm_proxy_VMOVUPS__, + "vmpsadbw" : __asm_proxy_VMPSADBW__, + "vmulpd" : __asm_proxy_VMULPD__, + "vmulps" : __asm_proxy_VMULPS__, + "vmulsd" : __asm_proxy_VMULSD__, + "vmulss" : __asm_proxy_VMULSS__, + "vorpd" : __asm_proxy_VORPD__, + "vorps" : __asm_proxy_VORPS__, + "vpabsb" : __asm_proxy_VPABSB__, + "vpabsd" : __asm_proxy_VPABSD__, + "vpabsq" : __asm_proxy_VPABSQ__, + "vpabsw" : __asm_proxy_VPABSW__, + "vpackssdw" : __asm_proxy_VPACKSSDW__, + "vpacksswb" : __asm_proxy_VPACKSSWB__, + "vpackusdw" : __asm_proxy_VPACKUSDW__, + "vpackuswb" : __asm_proxy_VPACKUSWB__, + "vpaddb" : __asm_proxy_VPADDB__, + "vpaddd" : __asm_proxy_VPADDD__, + "vpaddq" : __asm_proxy_VPADDQ__, + "vpaddsb" : __asm_proxy_VPADDSB__, + "vpaddsw" : __asm_proxy_VPADDSW__, + "vpaddusb" : __asm_proxy_VPADDUSB__, + "vpaddusw" : __asm_proxy_VPADDUSW__, + "vpaddw" : __asm_proxy_VPADDW__, + "vpalignr" : __asm_proxy_VPALIGNR__, + "vpand" : __asm_proxy_VPAND__, + "vpandd" : __asm_proxy_VPANDD__, + "vpandn" : __asm_proxy_VPANDN__, + "vpandnd" : __asm_proxy_VPANDND__, + "vpandnq" : __asm_proxy_VPANDNQ__, + "vpandq" : __asm_proxy_VPANDQ__, + "vpavgb" : __asm_proxy_VPAVGB__, + "vpavgw" : __asm_proxy_VPAVGW__, + "vpblendd" : __asm_proxy_VPBLENDD__, + "vpblendmb" : __asm_proxy_VPBLENDMB__, + "vpblendmd" : __asm_proxy_VPBLENDMD__, + "vpblendmq" : __asm_proxy_VPBLENDMQ__, + "vpblendmw" : __asm_proxy_VPBLENDMW__, + "vpblendvb" : __asm_proxy_VPBLENDVB__, + "vpblendw" : __asm_proxy_VPBLENDW__, + "vpbroadcastb" : __asm_proxy_VPBROADCASTB__, + "vpbroadcastd" : __asm_proxy_VPBROADCASTD__, + "vpbroadcastmb2q" : __asm_proxy_VPBROADCASTMB2Q__, + "vpbroadcastmw2d" : __asm_proxy_VPBROADCASTMW2D__, + "vpbroadcastq" : __asm_proxy_VPBROADCASTQ__, + "vpbroadcastw" : __asm_proxy_VPBROADCASTW__, + "vpclmulqdq" : __asm_proxy_VPCLMULQDQ__, + "vpcmov" : __asm_proxy_VPCMOV__, + "vpcmpb" : __asm_proxy_VPCMPB__, + "vpcmpd" : __asm_proxy_VPCMPD__, + "vpcmpeqb" : __asm_proxy_VPCMPEQB__, + "vpcmpeqd" : __asm_proxy_VPCMPEQD__, + "vpcmpeqq" : __asm_proxy_VPCMPEQQ__, + "vpcmpeqw" : __asm_proxy_VPCMPEQW__, + "vpcmpestri" : __asm_proxy_VPCMPESTRI__, + "vpcmpestrm" : __asm_proxy_VPCMPESTRM__, + "vpcmpgtb" : __asm_proxy_VPCMPGTB__, + "vpcmpgtd" : __asm_proxy_VPCMPGTD__, + "vpcmpgtq" : __asm_proxy_VPCMPGTQ__, + "vpcmpgtw" : __asm_proxy_VPCMPGTW__, + "vpcmpistri" : __asm_proxy_VPCMPISTRI__, + "vpcmpistrm" : __asm_proxy_VPCMPISTRM__, + "vpcmpq" : __asm_proxy_VPCMPQ__, + "vpcmpub" : __asm_proxy_VPCMPUB__, + "vpcmpud" : __asm_proxy_VPCMPUD__, + "vpcmpuq" : __asm_proxy_VPCMPUQ__, + "vpcmpuw" : __asm_proxy_VPCMPUW__, + "vpcmpw" : __asm_proxy_VPCMPW__, + "vpcomb" : __asm_proxy_VPCOMB__, + "vpcomd" : __asm_proxy_VPCOMD__, + "vpcompressd" : __asm_proxy_VPCOMPRESSD__, + "vpcompressq" : __asm_proxy_VPCOMPRESSQ__, + "vpcomq" : __asm_proxy_VPCOMQ__, + "vpcomub" : __asm_proxy_VPCOMUB__, + "vpcomud" : __asm_proxy_VPCOMUD__, + "vpcomuq" : __asm_proxy_VPCOMUQ__, + "vpcomuw" : __asm_proxy_VPCOMUW__, + "vpcomw" : __asm_proxy_VPCOMW__, + "vpconflictd" : __asm_proxy_VPCONFLICTD__, + "vpconflictq" : __asm_proxy_VPCONFLICTQ__, + "vperm2f128" : __asm_proxy_VPERM2F128__, + "vperm2i128" : __asm_proxy_VPERM2I128__, + "vpermb" : __asm_proxy_VPERMB__, + "vpermd" : __asm_proxy_VPERMD__, + "vpermi2b" : __asm_proxy_VPERMI2B__, + "vpermi2d" : __asm_proxy_VPERMI2D__, + "vpermi2pd" : __asm_proxy_VPERMI2PD__, + "vpermi2ps" : __asm_proxy_VPERMI2PS__, + "vpermi2q" : __asm_proxy_VPERMI2Q__, + "vpermi2w" : __asm_proxy_VPERMI2W__, + "vpermil2pd" : __asm_proxy_VPERMIL2PD__, + "vpermil2ps" : __asm_proxy_VPERMIL2PS__, + "vpermilpd" : __asm_proxy_VPERMILPD__, + "vpermilps" : __asm_proxy_VPERMILPS__, + "vpermpd" : __asm_proxy_VPERMPD__, + "vpermps" : __asm_proxy_VPERMPS__, + "vpermq" : __asm_proxy_VPERMQ__, + "vpermt2b" : __asm_proxy_VPERMT2B__, + "vpermt2d" : __asm_proxy_VPERMT2D__, + "vpermt2pd" : __asm_proxy_VPERMT2PD__, + "vpermt2ps" : __asm_proxy_VPERMT2PS__, + "vpermt2q" : __asm_proxy_VPERMT2Q__, + "vpermt2w" : __asm_proxy_VPERMT2W__, + "vpermw" : __asm_proxy_VPERMW__, + "vpexpandd" : __asm_proxy_VPEXPANDD__, + "vpexpandq" : __asm_proxy_VPEXPANDQ__, + "vpextrb" : __asm_proxy_VPEXTRB__, + "vpextrd" : __asm_proxy_VPEXTRD__, + "vpextrq" : __asm_proxy_VPEXTRQ__, + "vpextrw" : __asm_proxy_VPEXTRW__, + "vpgatherdd" : __asm_proxy_VPGATHERDD__, + "vpgatherdq" : __asm_proxy_VPGATHERDQ__, + "vpgatherqd" : __asm_proxy_VPGATHERQD__, + "vpgatherqq" : __asm_proxy_VPGATHERQQ__, + "vphaddbd" : __asm_proxy_VPHADDBD__, + "vphaddbq" : __asm_proxy_VPHADDBQ__, + "vphaddbw" : __asm_proxy_VPHADDBW__, + "vphaddd" : __asm_proxy_VPHADDD__, + "vphadddq" : __asm_proxy_VPHADDDQ__, + "vphaddsw" : __asm_proxy_VPHADDSW__, + "vphaddubd" : __asm_proxy_VPHADDUBD__, + "vphaddubq" : __asm_proxy_VPHADDUBQ__, + "vphaddubw" : __asm_proxy_VPHADDUBW__, + "vphaddudq" : __asm_proxy_VPHADDUDQ__, + "vphadduwd" : __asm_proxy_VPHADDUWD__, + "vphadduwq" : __asm_proxy_VPHADDUWQ__, + "vphaddw" : __asm_proxy_VPHADDW__, + "vphaddwd" : __asm_proxy_VPHADDWD__, + "vphaddwq" : __asm_proxy_VPHADDWQ__, + "vphminposuw" : __asm_proxy_VPHMINPOSUW__, + "vphsubbw" : __asm_proxy_VPHSUBBW__, + "vphsubd" : __asm_proxy_VPHSUBD__, + "vphsubdq" : __asm_proxy_VPHSUBDQ__, + "vphsubsw" : __asm_proxy_VPHSUBSW__, + "vphsubw" : __asm_proxy_VPHSUBW__, + "vphsubwd" : __asm_proxy_VPHSUBWD__, + "vpinsrb" : __asm_proxy_VPINSRB__, + "vpinsrd" : __asm_proxy_VPINSRD__, + "vpinsrq" : __asm_proxy_VPINSRQ__, + "vpinsrw" : __asm_proxy_VPINSRW__, + "vplzcntd" : __asm_proxy_VPLZCNTD__, + "vplzcntq" : __asm_proxy_VPLZCNTQ__, + "vpmacsdd" : __asm_proxy_VPMACSDD__, + "vpmacsdqh" : __asm_proxy_VPMACSDQH__, + "vpmacsdql" : __asm_proxy_VPMACSDQL__, + "vpmacssdd" : __asm_proxy_VPMACSSDD__, + "vpmacssdqh" : __asm_proxy_VPMACSSDQH__, + "vpmacssdql" : __asm_proxy_VPMACSSDQL__, + "vpmacsswd" : __asm_proxy_VPMACSSWD__, + "vpmacssww" : __asm_proxy_VPMACSSWW__, + "vpmacswd" : __asm_proxy_VPMACSWD__, + "vpmacsww" : __asm_proxy_VPMACSWW__, + "vpmadcsswd" : __asm_proxy_VPMADCSSWD__, + "vpmadcswd" : __asm_proxy_VPMADCSWD__, + "vpmadd52huq" : __asm_proxy_VPMADD52HUQ__, + "vpmadd52luq" : __asm_proxy_VPMADD52LUQ__, + "vpmaddubsw" : __asm_proxy_VPMADDUBSW__, + "vpmaddwd" : __asm_proxy_VPMADDWD__, + "vpmaskmovd" : __asm_proxy_VPMASKMOVD__, + "vpmaskmovq" : __asm_proxy_VPMASKMOVQ__, + "vpmaxsb" : __asm_proxy_VPMAXSB__, + "vpmaxsd" : __asm_proxy_VPMAXSD__, + "vpmaxsq" : __asm_proxy_VPMAXSQ__, + "vpmaxsw" : __asm_proxy_VPMAXSW__, + "vpmaxub" : __asm_proxy_VPMAXUB__, + "vpmaxud" : __asm_proxy_VPMAXUD__, + "vpmaxuq" : __asm_proxy_VPMAXUQ__, + "vpmaxuw" : __asm_proxy_VPMAXUW__, + "vpminsb" : __asm_proxy_VPMINSB__, + "vpminsd" : __asm_proxy_VPMINSD__, + "vpminsq" : __asm_proxy_VPMINSQ__, + "vpminsw" : __asm_proxy_VPMINSW__, + "vpminub" : __asm_proxy_VPMINUB__, + "vpminud" : __asm_proxy_VPMINUD__, + "vpminuq" : __asm_proxy_VPMINUQ__, + "vpminuw" : __asm_proxy_VPMINUW__, + "vpmovb2m" : __asm_proxy_VPMOVB2M__, + "vpmovd2m" : __asm_proxy_VPMOVD2M__, + "vpmovdb" : __asm_proxy_VPMOVDB__, + "vpmovdw" : __asm_proxy_VPMOVDW__, + "vpmovm2b" : __asm_proxy_VPMOVM2B__, + "vpmovm2d" : __asm_proxy_VPMOVM2D__, + "vpmovm2q" : __asm_proxy_VPMOVM2Q__, + "vpmovm2w" : __asm_proxy_VPMOVM2W__, + "vpmovmskb" : __asm_proxy_VPMOVMSKB__, + "vpmovq2m" : __asm_proxy_VPMOVQ2M__, + "vpmovqb" : __asm_proxy_VPMOVQB__, + "vpmovqd" : __asm_proxy_VPMOVQD__, + "vpmovqw" : __asm_proxy_VPMOVQW__, + "vpmovsdb" : __asm_proxy_VPMOVSDB__, + "vpmovsdw" : __asm_proxy_VPMOVSDW__, + "vpmovsqb" : __asm_proxy_VPMOVSQB__, + "vpmovsqd" : __asm_proxy_VPMOVSQD__, + "vpmovsqw" : __asm_proxy_VPMOVSQW__, + "vpmovswb" : __asm_proxy_VPMOVSWB__, + "vpmovsxbd" : __asm_proxy_VPMOVSXBD__, + "vpmovsxbq" : __asm_proxy_VPMOVSXBQ__, + "vpmovsxbw" : __asm_proxy_VPMOVSXBW__, + "vpmovsxdq" : __asm_proxy_VPMOVSXDQ__, + "vpmovsxwd" : __asm_proxy_VPMOVSXWD__, + "vpmovsxwq" : __asm_proxy_VPMOVSXWQ__, + "vpmovusdb" : __asm_proxy_VPMOVUSDB__, + "vpmovusdw" : __asm_proxy_VPMOVUSDW__, + "vpmovusqb" : __asm_proxy_VPMOVUSQB__, + "vpmovusqd" : __asm_proxy_VPMOVUSQD__, + "vpmovusqw" : __asm_proxy_VPMOVUSQW__, + "vpmovuswb" : __asm_proxy_VPMOVUSWB__, + "vpmovw2m" : __asm_proxy_VPMOVW2M__, + "vpmovwb" : __asm_proxy_VPMOVWB__, + "vpmovzxbd" : __asm_proxy_VPMOVZXBD__, + "vpmovzxbq" : __asm_proxy_VPMOVZXBQ__, + "vpmovzxbw" : __asm_proxy_VPMOVZXBW__, + "vpmovzxdq" : __asm_proxy_VPMOVZXDQ__, + "vpmovzxwd" : __asm_proxy_VPMOVZXWD__, + "vpmovzxwq" : __asm_proxy_VPMOVZXWQ__, + "vpmuldq" : __asm_proxy_VPMULDQ__, + "vpmulhrsw" : __asm_proxy_VPMULHRSW__, + "vpmulhuw" : __asm_proxy_VPMULHUW__, + "vpmulhw" : __asm_proxy_VPMULHW__, + "vpmulld" : __asm_proxy_VPMULLD__, + "vpmullq" : __asm_proxy_VPMULLQ__, + "vpmullw" : __asm_proxy_VPMULLW__, + "vpmultishiftqb" : __asm_proxy_VPMULTISHIFTQB__, + "vpmuludq" : __asm_proxy_VPMULUDQ__, + "vpopcntd" : __asm_proxy_VPOPCNTD__, + "vpopcntq" : __asm_proxy_VPOPCNTQ__, + "vpor" : __asm_proxy_VPOR__, + "vpord" : __asm_proxy_VPORD__, + "vporq" : __asm_proxy_VPORQ__, + "vpperm" : __asm_proxy_VPPERM__, + "vprold" : __asm_proxy_VPROLD__, + "vprolq" : __asm_proxy_VPROLQ__, + "vprolvd" : __asm_proxy_VPROLVD__, + "vprolvq" : __asm_proxy_VPROLVQ__, + "vprord" : __asm_proxy_VPRORD__, + "vprorq" : __asm_proxy_VPRORQ__, + "vprorvd" : __asm_proxy_VPRORVD__, + "vprorvq" : __asm_proxy_VPRORVQ__, + "vprotb" : __asm_proxy_VPROTB__, + "vprotd" : __asm_proxy_VPROTD__, + "vprotq" : __asm_proxy_VPROTQ__, + "vprotw" : __asm_proxy_VPROTW__, + "vpsadbw" : __asm_proxy_VPSADBW__, + "vpscatterdd" : __asm_proxy_VPSCATTERDD__, + "vpscatterdq" : __asm_proxy_VPSCATTERDQ__, + "vpscatterqd" : __asm_proxy_VPSCATTERQD__, + "vpscatterqq" : __asm_proxy_VPSCATTERQQ__, + "vpshab" : __asm_proxy_VPSHAB__, + "vpshad" : __asm_proxy_VPSHAD__, + "vpshaq" : __asm_proxy_VPSHAQ__, + "vpshaw" : __asm_proxy_VPSHAW__, + "vpshlb" : __asm_proxy_VPSHLB__, + "vpshld" : __asm_proxy_VPSHLD__, + "vpshlq" : __asm_proxy_VPSHLQ__, + "vpshlw" : __asm_proxy_VPSHLW__, + "vpshufb" : __asm_proxy_VPSHUFB__, + "vpshufd" : __asm_proxy_VPSHUFD__, + "vpshufhw" : __asm_proxy_VPSHUFHW__, + "vpshuflw" : __asm_proxy_VPSHUFLW__, + "vpsignb" : __asm_proxy_VPSIGNB__, + "vpsignd" : __asm_proxy_VPSIGND__, + "vpsignw" : __asm_proxy_VPSIGNW__, + "vpslld" : __asm_proxy_VPSLLD__, + "vpslldq" : __asm_proxy_VPSLLDQ__, + "vpsllq" : __asm_proxy_VPSLLQ__, + "vpsllvd" : __asm_proxy_VPSLLVD__, + "vpsllvq" : __asm_proxy_VPSLLVQ__, + "vpsllvw" : __asm_proxy_VPSLLVW__, + "vpsllw" : __asm_proxy_VPSLLW__, + "vpsrad" : __asm_proxy_VPSRAD__, + "vpsraq" : __asm_proxy_VPSRAQ__, + "vpsravd" : __asm_proxy_VPSRAVD__, + "vpsravq" : __asm_proxy_VPSRAVQ__, + "vpsravw" : __asm_proxy_VPSRAVW__, + "vpsraw" : __asm_proxy_VPSRAW__, + "vpsrld" : __asm_proxy_VPSRLD__, + "vpsrldq" : __asm_proxy_VPSRLDQ__, + "vpsrlq" : __asm_proxy_VPSRLQ__, + "vpsrlvd" : __asm_proxy_VPSRLVD__, + "vpsrlvq" : __asm_proxy_VPSRLVQ__, + "vpsrlvw" : __asm_proxy_VPSRLVW__, + "vpsrlw" : __asm_proxy_VPSRLW__, + "vpsubb" : __asm_proxy_VPSUBB__, + "vpsubd" : __asm_proxy_VPSUBD__, + "vpsubq" : __asm_proxy_VPSUBQ__, + "vpsubsb" : __asm_proxy_VPSUBSB__, + "vpsubsw" : __asm_proxy_VPSUBSW__, + "vpsubusb" : __asm_proxy_VPSUBUSB__, + "vpsubusw" : __asm_proxy_VPSUBUSW__, + "vpsubw" : __asm_proxy_VPSUBW__, + "vpternlogd" : __asm_proxy_VPTERNLOGD__, + "vpternlogq" : __asm_proxy_VPTERNLOGQ__, + "vptest" : __asm_proxy_VPTEST__, + "vptestmb" : __asm_proxy_VPTESTMB__, + "vptestmd" : __asm_proxy_VPTESTMD__, + "vptestmq" : __asm_proxy_VPTESTMQ__, + "vptestmw" : __asm_proxy_VPTESTMW__, + "vptestnmb" : __asm_proxy_VPTESTNMB__, + "vptestnmd" : __asm_proxy_VPTESTNMD__, + "vptestnmq" : __asm_proxy_VPTESTNMQ__, + "vptestnmw" : __asm_proxy_VPTESTNMW__, + "vpunpckhbw" : __asm_proxy_VPUNPCKHBW__, + "vpunpckhdq" : __asm_proxy_VPUNPCKHDQ__, + "vpunpckhqdq" : __asm_proxy_VPUNPCKHQDQ__, + "vpunpckhwd" : __asm_proxy_VPUNPCKHWD__, + "vpunpcklbw" : __asm_proxy_VPUNPCKLBW__, + "vpunpckldq" : __asm_proxy_VPUNPCKLDQ__, + "vpunpcklqdq" : __asm_proxy_VPUNPCKLQDQ__, + "vpunpcklwd" : __asm_proxy_VPUNPCKLWD__, + "vpxor" : __asm_proxy_VPXOR__, + "vpxord" : __asm_proxy_VPXORD__, + "vpxorq" : __asm_proxy_VPXORQ__, + "vrangepd" : __asm_proxy_VRANGEPD__, + "vrangeps" : __asm_proxy_VRANGEPS__, + "vrangesd" : __asm_proxy_VRANGESD__, + "vrangess" : __asm_proxy_VRANGESS__, + "vrcp14pd" : __asm_proxy_VRCP14PD__, + "vrcp14ps" : __asm_proxy_VRCP14PS__, + "vrcp14sd" : __asm_proxy_VRCP14SD__, + "vrcp14ss" : __asm_proxy_VRCP14SS__, + "vrcp28pd" : __asm_proxy_VRCP28PD__, + "vrcp28ps" : __asm_proxy_VRCP28PS__, + "vrcp28sd" : __asm_proxy_VRCP28SD__, + "vrcp28ss" : __asm_proxy_VRCP28SS__, + "vrcpps" : __asm_proxy_VRCPPS__, + "vrcpss" : __asm_proxy_VRCPSS__, + "vreducepd" : __asm_proxy_VREDUCEPD__, + "vreduceps" : __asm_proxy_VREDUCEPS__, + "vreducesd" : __asm_proxy_VREDUCESD__, + "vreducess" : __asm_proxy_VREDUCESS__, + "vrndscalepd" : __asm_proxy_VRNDSCALEPD__, + "vrndscaleps" : __asm_proxy_VRNDSCALEPS__, + "vrndscalesd" : __asm_proxy_VRNDSCALESD__, + "vrndscaless" : __asm_proxy_VRNDSCALESS__, + "vroundpd" : __asm_proxy_VROUNDPD__, + "vroundps" : __asm_proxy_VROUNDPS__, + "vroundsd" : __asm_proxy_VROUNDSD__, + "vroundss" : __asm_proxy_VROUNDSS__, + "vrsqrt14pd" : __asm_proxy_VRSQRT14PD__, + "vrsqrt14ps" : __asm_proxy_VRSQRT14PS__, + "vrsqrt14sd" : __asm_proxy_VRSQRT14SD__, + "vrsqrt14ss" : __asm_proxy_VRSQRT14SS__, + "vrsqrt28pd" : __asm_proxy_VRSQRT28PD__, + "vrsqrt28ps" : __asm_proxy_VRSQRT28PS__, + "vrsqrt28sd" : __asm_proxy_VRSQRT28SD__, + "vrsqrt28ss" : __asm_proxy_VRSQRT28SS__, + "vrsqrtps" : __asm_proxy_VRSQRTPS__, + "vrsqrtss" : __asm_proxy_VRSQRTSS__, + "vscalefpd" : __asm_proxy_VSCALEFPD__, + "vscalefps" : __asm_proxy_VSCALEFPS__, + "vscalefsd" : __asm_proxy_VSCALEFSD__, + "vscalefss" : __asm_proxy_VSCALEFSS__, + "vscatterdpd" : __asm_proxy_VSCATTERDPD__, + "vscatterdps" : __asm_proxy_VSCATTERDPS__, + "vscatterpf0dpd" : __asm_proxy_VSCATTERPF0DPD__, + "vscatterpf0dps" : __asm_proxy_VSCATTERPF0DPS__, + "vscatterpf0qpd" : __asm_proxy_VSCATTERPF0QPD__, + "vscatterpf0qps" : __asm_proxy_VSCATTERPF0QPS__, + "vscatterpf1dpd" : __asm_proxy_VSCATTERPF1DPD__, + "vscatterpf1dps" : __asm_proxy_VSCATTERPF1DPS__, + "vscatterpf1qpd" : __asm_proxy_VSCATTERPF1QPD__, + "vscatterpf1qps" : __asm_proxy_VSCATTERPF1QPS__, + "vscatterqpd" : __asm_proxy_VSCATTERQPD__, + "vscatterqps" : __asm_proxy_VSCATTERQPS__, + "vshuff32x4" : __asm_proxy_VSHUFF32X4__, + "vshuff64x2" : __asm_proxy_VSHUFF64X2__, + "vshufi32x4" : __asm_proxy_VSHUFI32X4__, + "vshufi64x2" : __asm_proxy_VSHUFI64X2__, + "vshufpd" : __asm_proxy_VSHUFPD__, + "vshufps" : __asm_proxy_VSHUFPS__, + "vsqrtpd" : __asm_proxy_VSQRTPD__, + "vsqrtps" : __asm_proxy_VSQRTPS__, + "vsqrtsd" : __asm_proxy_VSQRTSD__, + "vsqrtss" : __asm_proxy_VSQRTSS__, + "vstmxcsr" : __asm_proxy_VSTMXCSR__, + "vsubpd" : __asm_proxy_VSUBPD__, + "vsubps" : __asm_proxy_VSUBPS__, + "vsubsd" : __asm_proxy_VSUBSD__, + "vsubss" : __asm_proxy_VSUBSS__, + "vtestpd" : __asm_proxy_VTESTPD__, + "vtestps" : __asm_proxy_VTESTPS__, + "vucomisd" : __asm_proxy_VUCOMISD__, + "vucomiss" : __asm_proxy_VUCOMISS__, + "vunpckhpd" : __asm_proxy_VUNPCKHPD__, + "vunpckhps" : __asm_proxy_VUNPCKHPS__, + "vunpcklpd" : __asm_proxy_VUNPCKLPD__, + "vunpcklps" : __asm_proxy_VUNPCKLPS__, + "vxorpd" : __asm_proxy_VXORPD__, + "vxorps" : __asm_proxy_VXORPS__, + "vzeroall" : __asm_proxy_VZEROALL__, + "vzeroupper" : __asm_proxy_VZEROUPPER__, + "xaddb" : __asm_proxy_XADDB__, + "xaddl" : __asm_proxy_XADDL__, + "xaddq" : __asm_proxy_XADDQ__, + "xaddw" : __asm_proxy_XADDW__, + "xchgb" : __asm_proxy_XCHGB__, + "xchgl" : __asm_proxy_XCHGL__, + "xchgq" : __asm_proxy_XCHGQ__, + "xchgw" : __asm_proxy_XCHGW__, + "xgetbv" : __asm_proxy_XGETBV__, + "xlatb" : __asm_proxy_XLATB__, + "xorb" : __asm_proxy_XORB__, + "xorl" : __asm_proxy_XORL__, + "xorpd" : __asm_proxy_XORPD__, + "xorps" : __asm_proxy_XORPS__, + "xorq" : __asm_proxy_XORQ__, + "xorw" : __asm_proxy_XORW__, +} + +func __asm_proxy_ADCB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCB(v[0], v[1]) + } else { + panic("instruction ADCB takes exactly 2 operands") + } +} + +func __asm_proxy_ADCL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCL(v[0], v[1]) + } else { + panic("instruction ADCL takes exactly 2 operands") + } +} + +func __asm_proxy_ADCQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCQ(v[0], v[1]) + } else { + panic("instruction ADCQ takes exactly 2 operands") + } +} + +func __asm_proxy_ADCW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCW(v[0], v[1]) + } else { + panic("instruction ADCW takes exactly 2 operands") + } +} + +func __asm_proxy_ADCXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCXL(v[0], v[1]) + } else { + panic("instruction ADCXL takes exactly 2 operands") + } +} + +func __asm_proxy_ADCXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADCXQ(v[0], v[1]) + } else { + panic("instruction ADCXQ takes exactly 2 operands") + } +} + +func __asm_proxy_ADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDB(v[0], v[1]) + } else { + panic("instruction ADDB takes exactly 2 operands") + } +} + +func __asm_proxy_ADDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDL(v[0], v[1]) + } else { + panic("instruction ADDL takes exactly 2 operands") + } +} + +func __asm_proxy_ADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDPD(v[0], v[1]) + } else { + panic("instruction ADDPD takes exactly 2 operands") + } +} + +func __asm_proxy_ADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDPS(v[0], v[1]) + } else { + panic("instruction ADDPS takes exactly 2 operands") + } +} + +func __asm_proxy_ADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDQ(v[0], v[1]) + } else { + panic("instruction ADDQ takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSD(v[0], v[1]) + } else { + panic("instruction ADDSD takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSS(v[0], v[1]) + } else { + panic("instruction ADDSS takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSUBPD(v[0], v[1]) + } else { + panic("instruction ADDSUBPD takes exactly 2 operands") + } +} + +func __asm_proxy_ADDSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDSUBPS(v[0], v[1]) + } else { + panic("instruction ADDSUBPS takes exactly 2 operands") + } +} + +func __asm_proxy_ADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADDW(v[0], v[1]) + } else { + panic("instruction ADDW takes exactly 2 operands") + } +} + +func __asm_proxy_ADOXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADOXL(v[0], v[1]) + } else { + panic("instruction ADOXL takes exactly 2 operands") + } +} + +func __asm_proxy_ADOXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ADOXQ(v[0], v[1]) + } else { + panic("instruction ADOXQ takes exactly 2 operands") + } +} + +func __asm_proxy_AESDEC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESDEC(v[0], v[1]) + } else { + panic("instruction AESDEC takes exactly 2 operands") + } +} + +func __asm_proxy_AESDECLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESDECLAST(v[0], v[1]) + } else { + panic("instruction AESDECLAST takes exactly 2 operands") + } +} + +func __asm_proxy_AESENC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESENC(v[0], v[1]) + } else { + panic("instruction AESENC takes exactly 2 operands") + } +} + +func __asm_proxy_AESENCLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESENCLAST(v[0], v[1]) + } else { + panic("instruction AESENCLAST takes exactly 2 operands") + } +} + +func __asm_proxy_AESIMC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.AESIMC(v[0], v[1]) + } else { + panic("instruction AESIMC takes exactly 2 operands") + } +} + +func __asm_proxy_AESKEYGENASSIST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.AESKEYGENASSIST(v[0], v[1], v[2]) + } else { + panic("instruction AESKEYGENASSIST takes exactly 3 operands") + } +} + +func __asm_proxy_ANDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDB(v[0], v[1]) + } else { + panic("instruction ANDB takes exactly 2 operands") + } +} + +func __asm_proxy_ANDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDL(v[0], v[1]) + } else { + panic("instruction ANDL takes exactly 2 operands") + } +} + +func __asm_proxy_ANDNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ANDNL(v[0], v[1], v[2]) + } else { + panic("instruction ANDNL takes exactly 3 operands") + } +} + +func __asm_proxy_ANDNPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDNPD(v[0], v[1]) + } else { + panic("instruction ANDNPD takes exactly 2 operands") + } +} + +func __asm_proxy_ANDNPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDNPS(v[0], v[1]) + } else { + panic("instruction ANDNPS takes exactly 2 operands") + } +} + +func __asm_proxy_ANDNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ANDNQ(v[0], v[1], v[2]) + } else { + panic("instruction ANDNQ takes exactly 3 operands") + } +} + +func __asm_proxy_ANDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDPD(v[0], v[1]) + } else { + panic("instruction ANDPD takes exactly 2 operands") + } +} + +func __asm_proxy_ANDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDPS(v[0], v[1]) + } else { + panic("instruction ANDPS takes exactly 2 operands") + } +} + +func __asm_proxy_ANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDQ(v[0], v[1]) + } else { + panic("instruction ANDQ takes exactly 2 operands") + } +} + +func __asm_proxy_ANDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ANDW(v[0], v[1]) + } else { + panic("instruction ANDW takes exactly 2 operands") + } +} + +func __asm_proxy_BEXTR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BEXTR(v[0], v[1], v[2]) + } else { + panic("instruction BEXTR takes exactly 3 operands") + } +} + +func __asm_proxy_BLCFILL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCFILL(v[0], v[1]) + } else { + panic("instruction BLCFILL takes exactly 2 operands") + } +} + +func __asm_proxy_BLCI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCI(v[0], v[1]) + } else { + panic("instruction BLCI takes exactly 2 operands") + } +} + +func __asm_proxy_BLCIC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCIC(v[0], v[1]) + } else { + panic("instruction BLCIC takes exactly 2 operands") + } +} + +func __asm_proxy_BLCMSK__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCMSK(v[0], v[1]) + } else { + panic("instruction BLCMSK takes exactly 2 operands") + } +} + +func __asm_proxy_BLCS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLCS(v[0], v[1]) + } else { + panic("instruction BLCS takes exactly 2 operands") + } +} + +func __asm_proxy_BLENDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDPD(v[0], v[1], v[2]) + } else { + panic("instruction BLENDPD takes exactly 3 operands") + } +} + +func __asm_proxy_BLENDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDPS(v[0], v[1], v[2]) + } else { + panic("instruction BLENDPS takes exactly 3 operands") + } +} + +func __asm_proxy_BLENDVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDVPD(v[0], v[1], v[2]) + } else { + panic("instruction BLENDVPD takes exactly 3 operands") + } +} + +func __asm_proxy_BLENDVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BLENDVPS(v[0], v[1], v[2]) + } else { + panic("instruction BLENDVPS takes exactly 3 operands") + } +} + +func __asm_proxy_BLSFILL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSFILL(v[0], v[1]) + } else { + panic("instruction BLSFILL takes exactly 2 operands") + } +} + +func __asm_proxy_BLSI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSI(v[0], v[1]) + } else { + panic("instruction BLSI takes exactly 2 operands") + } +} + +func __asm_proxy_BLSIC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSIC(v[0], v[1]) + } else { + panic("instruction BLSIC takes exactly 2 operands") + } +} + +func __asm_proxy_BLSMSK__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSMSK(v[0], v[1]) + } else { + panic("instruction BLSMSK takes exactly 2 operands") + } +} + +func __asm_proxy_BLSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BLSR(v[0], v[1]) + } else { + panic("instruction BLSR takes exactly 2 operands") + } +} + +func __asm_proxy_BSFL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSFL(v[0], v[1]) + } else { + panic("instruction BSFL takes exactly 2 operands") + } +} + +func __asm_proxy_BSFQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSFQ(v[0], v[1]) + } else { + panic("instruction BSFQ takes exactly 2 operands") + } +} + +func __asm_proxy_BSFW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSFW(v[0], v[1]) + } else { + panic("instruction BSFW takes exactly 2 operands") + } +} + +func __asm_proxy_BSRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSRL(v[0], v[1]) + } else { + panic("instruction BSRL takes exactly 2 operands") + } +} + +func __asm_proxy_BSRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSRQ(v[0], v[1]) + } else { + panic("instruction BSRQ takes exactly 2 operands") + } +} + +func __asm_proxy_BSRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BSRW(v[0], v[1]) + } else { + panic("instruction BSRW takes exactly 2 operands") + } +} + +func __asm_proxy_BSWAPL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.BSWAPL(v[0]) + } else { + panic("instruction BSWAPL takes exactly 1 operand") + } +} + +func __asm_proxy_BSWAPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.BSWAPQ(v[0]) + } else { + panic("instruction BSWAPQ takes exactly 1 operand") + } +} + +func __asm_proxy_BTCL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTCL(v[0], v[1]) + } else { + panic("instruction BTCL takes exactly 2 operands") + } +} + +func __asm_proxy_BTCQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTCQ(v[0], v[1]) + } else { + panic("instruction BTCQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTCW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTCW(v[0], v[1]) + } else { + panic("instruction BTCW takes exactly 2 operands") + } +} + +func __asm_proxy_BTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTL(v[0], v[1]) + } else { + panic("instruction BTL takes exactly 2 operands") + } +} + +func __asm_proxy_BTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTQ(v[0], v[1]) + } else { + panic("instruction BTQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTRL(v[0], v[1]) + } else { + panic("instruction BTRL takes exactly 2 operands") + } +} + +func __asm_proxy_BTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTRQ(v[0], v[1]) + } else { + panic("instruction BTRQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTRW(v[0], v[1]) + } else { + panic("instruction BTRW takes exactly 2 operands") + } +} + +func __asm_proxy_BTSL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTSL(v[0], v[1]) + } else { + panic("instruction BTSL takes exactly 2 operands") + } +} + +func __asm_proxy_BTSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTSQ(v[0], v[1]) + } else { + panic("instruction BTSQ takes exactly 2 operands") + } +} + +func __asm_proxy_BTSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTSW(v[0], v[1]) + } else { + panic("instruction BTSW takes exactly 2 operands") + } +} + +func __asm_proxy_BTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.BTW(v[0], v[1]) + } else { + panic("instruction BTW takes exactly 2 operands") + } +} + +func __asm_proxy_BZHI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.BZHI(v[0], v[1], v[2]) + } else { + panic("instruction BZHI takes exactly 3 operands") + } +} + +func __asm_proxy_CALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CALL(v[0]) + } else { + panic("instruction CALL takes exactly 1 operand") + } +} + +func __asm_proxy_CALLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CALLQ(v[0]) + } else { + panic("instruction CALLQ takes exactly 1 operand") + } +} + +func __asm_proxy_CBTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CBTW() + } else { + panic("instruction CBTW takes no operands") + } +} + +func __asm_proxy_CLC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLC() + } else { + panic("instruction CLC takes no operands") + } +} + +func __asm_proxy_CLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLD() + } else { + panic("instruction CLD takes no operands") + } +} + +func __asm_proxy_CLFLUSH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CLFLUSH(v[0]) + } else { + panic("instruction CLFLUSH takes exactly 1 operand") + } +} + +func __asm_proxy_CLFLUSHOPT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CLFLUSHOPT(v[0]) + } else { + panic("instruction CLFLUSHOPT takes exactly 1 operand") + } +} + +func __asm_proxy_CLTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLTD() + } else { + panic("instruction CLTD takes no operands") + } +} + +func __asm_proxy_CLTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLTQ() + } else { + panic("instruction CLTQ takes no operands") + } +} + +func __asm_proxy_CLWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CLWB(v[0]) + } else { + panic("instruction CLWB takes exactly 1 operand") + } +} + +func __asm_proxy_CLZERO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CLZERO() + } else { + panic("instruction CLZERO takes no operands") + } +} + +func __asm_proxy_CMC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CMC() + } else { + panic("instruction CMC takes no operands") + } +} + +func __asm_proxy_CMOVA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVA(v[0], v[1]) + } else { + panic("instruction CMOVA takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVAE(v[0], v[1]) + } else { + panic("instruction CMOVAE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVB(v[0], v[1]) + } else { + panic("instruction CMOVB takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVBE(v[0], v[1]) + } else { + panic("instruction CMOVBE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVC(v[0], v[1]) + } else { + panic("instruction CMOVC takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVE(v[0], v[1]) + } else { + panic("instruction CMOVE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVG(v[0], v[1]) + } else { + panic("instruction CMOVG takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVGE(v[0], v[1]) + } else { + panic("instruction CMOVGE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVL(v[0], v[1]) + } else { + panic("instruction CMOVL takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVLE(v[0], v[1]) + } else { + panic("instruction CMOVLE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNA(v[0], v[1]) + } else { + panic("instruction CMOVNA takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNAE(v[0], v[1]) + } else { + panic("instruction CMOVNAE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNB(v[0], v[1]) + } else { + panic("instruction CMOVNB takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNBE(v[0], v[1]) + } else { + panic("instruction CMOVNBE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNC(v[0], v[1]) + } else { + panic("instruction CMOVNC takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNE(v[0], v[1]) + } else { + panic("instruction CMOVNE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNG(v[0], v[1]) + } else { + panic("instruction CMOVNG takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNGE(v[0], v[1]) + } else { + panic("instruction CMOVNGE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNL(v[0], v[1]) + } else { + panic("instruction CMOVNL takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNLE(v[0], v[1]) + } else { + panic("instruction CMOVNLE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNO(v[0], v[1]) + } else { + panic("instruction CMOVNO takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNP(v[0], v[1]) + } else { + panic("instruction CMOVNP takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNS(v[0], v[1]) + } else { + panic("instruction CMOVNS takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVNZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVNZ(v[0], v[1]) + } else { + panic("instruction CMOVNZ takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVO(v[0], v[1]) + } else { + panic("instruction CMOVO takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVP(v[0], v[1]) + } else { + panic("instruction CMOVP takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVPE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVPE(v[0], v[1]) + } else { + panic("instruction CMOVPE takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVPO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVPO(v[0], v[1]) + } else { + panic("instruction CMOVPO takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVS(v[0], v[1]) + } else { + panic("instruction CMOVS takes exactly 2 operands") + } +} + +func __asm_proxy_CMOVZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMOVZ(v[0], v[1]) + } else { + panic("instruction CMOVZ takes exactly 2 operands") + } +} + +func __asm_proxy_CMPB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPB(v[0], v[1]) + } else { + panic("instruction CMPB takes exactly 2 operands") + } +} + +func __asm_proxy_CMPL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPL(v[0], v[1]) + } else { + panic("instruction CMPL takes exactly 2 operands") + } +} + +func __asm_proxy_CMPPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPPD(v[0], v[1], v[2]) + } else { + panic("instruction CMPPD takes exactly 3 operands") + } +} + +func __asm_proxy_CMPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPPS(v[0], v[1], v[2]) + } else { + panic("instruction CMPPS takes exactly 3 operands") + } +} + +func __asm_proxy_CMPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPQ(v[0], v[1]) + } else { + panic("instruction CMPQ takes exactly 2 operands") + } +} + +func __asm_proxy_CMPSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPSD(v[0], v[1], v[2]) + } else { + panic("instruction CMPSD takes exactly 3 operands") + } +} + +func __asm_proxy_CMPSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.CMPSS(v[0], v[1], v[2]) + } else { + panic("instruction CMPSS takes exactly 3 operands") + } +} + +func __asm_proxy_CMPW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPW(v[0], v[1]) + } else { + panic("instruction CMPW takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHG16B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CMPXCHG16B(v[0]) + } else { + panic("instruction CMPXCHG16B takes exactly 1 operand") + } +} + +func __asm_proxy_CMPXCHG8B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.CMPXCHG8B(v[0]) + } else { + panic("instruction CMPXCHG8B takes exactly 1 operand") + } +} + +func __asm_proxy_CMPXCHGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGB(v[0], v[1]) + } else { + panic("instruction CMPXCHGB takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHGL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGL(v[0], v[1]) + } else { + panic("instruction CMPXCHGL takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGQ(v[0], v[1]) + } else { + panic("instruction CMPXCHGQ takes exactly 2 operands") + } +} + +func __asm_proxy_CMPXCHGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CMPXCHGW(v[0], v[1]) + } else { + panic("instruction CMPXCHGW takes exactly 2 operands") + } +} + +func __asm_proxy_COMISD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.COMISD(v[0], v[1]) + } else { + panic("instruction COMISD takes exactly 2 operands") + } +} + +func __asm_proxy_COMISS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.COMISS(v[0], v[1]) + } else { + panic("instruction COMISS takes exactly 2 operands") + } +} + +func __asm_proxy_CPUID__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CPUID() + } else { + panic("instruction CPUID takes no operands") + } +} + +func __asm_proxy_CQTO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CQTO() + } else { + panic("instruction CQTO takes no operands") + } +} + +func __asm_proxy_CRC32B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32B(v[0], v[1]) + } else { + panic("instruction CRC32B takes exactly 2 operands") + } +} + +func __asm_proxy_CRC32L__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32L(v[0], v[1]) + } else { + panic("instruction CRC32L takes exactly 2 operands") + } +} + +func __asm_proxy_CRC32Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32Q(v[0], v[1]) + } else { + panic("instruction CRC32Q takes exactly 2 operands") + } +} + +func __asm_proxy_CRC32W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CRC32W(v[0], v[1]) + } else { + panic("instruction CRC32W takes exactly 2 operands") + } +} + +func __asm_proxy_CVTDQ2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTDQ2PD(v[0], v[1]) + } else { + panic("instruction CVTDQ2PD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTDQ2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTDQ2PS(v[0], v[1]) + } else { + panic("instruction CVTDQ2PS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPD2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPD2DQ(v[0], v[1]) + } else { + panic("instruction CVTPD2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPD2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPD2PI(v[0], v[1]) + } else { + panic("instruction CVTPD2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPD2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPD2PS(v[0], v[1]) + } else { + panic("instruction CVTPD2PS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPI2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPI2PD(v[0], v[1]) + } else { + panic("instruction CVTPI2PD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPI2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPI2PS(v[0], v[1]) + } else { + panic("instruction CVTPI2PS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPS2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPS2DQ(v[0], v[1]) + } else { + panic("instruction CVTPS2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPS2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPS2PD(v[0], v[1]) + } else { + panic("instruction CVTPS2PD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTPS2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTPS2PI(v[0], v[1]) + } else { + panic("instruction CVTPS2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSD2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSD2SI(v[0], v[1]) + } else { + panic("instruction CVTSD2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSD2SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSD2SS(v[0], v[1]) + } else { + panic("instruction CVTSD2SS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSI2SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSI2SD(v[0], v[1]) + } else { + panic("instruction CVTSI2SD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSI2SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSI2SS(v[0], v[1]) + } else { + panic("instruction CVTSI2SS takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSS2SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSS2SD(v[0], v[1]) + } else { + panic("instruction CVTSS2SD takes exactly 2 operands") + } +} + +func __asm_proxy_CVTSS2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTSS2SI(v[0], v[1]) + } else { + panic("instruction CVTSS2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPD2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPD2DQ(v[0], v[1]) + } else { + panic("instruction CVTTPD2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPD2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPD2PI(v[0], v[1]) + } else { + panic("instruction CVTTPD2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPS2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPS2DQ(v[0], v[1]) + } else { + panic("instruction CVTTPS2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTPS2PI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTPS2PI(v[0], v[1]) + } else { + panic("instruction CVTTPS2PI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTSD2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTSD2SI(v[0], v[1]) + } else { + panic("instruction CVTTSD2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CVTTSS2SI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.CVTTSS2SI(v[0], v[1]) + } else { + panic("instruction CVTTSS2SI takes exactly 2 operands") + } +} + +func __asm_proxy_CWTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CWTD() + } else { + panic("instruction CWTD takes no operands") + } +} + +func __asm_proxy_CWTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.CWTL() + } else { + panic("instruction CWTL takes no operands") + } +} + +func __asm_proxy_DECB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECB(v[0]) + } else { + panic("instruction DECB takes exactly 1 operand") + } +} + +func __asm_proxy_DECL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECL(v[0]) + } else { + panic("instruction DECL takes exactly 1 operand") + } +} + +func __asm_proxy_DECQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECQ(v[0]) + } else { + panic("instruction DECQ takes exactly 1 operand") + } +} + +func __asm_proxy_DECW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DECW(v[0]) + } else { + panic("instruction DECW takes exactly 1 operand") + } +} + +func __asm_proxy_DIVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVB(v[0]) + } else { + panic("instruction DIVB takes exactly 1 operand") + } +} + +func __asm_proxy_DIVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVL(v[0]) + } else { + panic("instruction DIVL takes exactly 1 operand") + } +} + +func __asm_proxy_DIVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVPD(v[0], v[1]) + } else { + panic("instruction DIVPD takes exactly 2 operands") + } +} + +func __asm_proxy_DIVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVPS(v[0], v[1]) + } else { + panic("instruction DIVPS takes exactly 2 operands") + } +} + +func __asm_proxy_DIVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVQ(v[0]) + } else { + panic("instruction DIVQ takes exactly 1 operand") + } +} + +func __asm_proxy_DIVSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVSD(v[0], v[1]) + } else { + panic("instruction DIVSD takes exactly 2 operands") + } +} + +func __asm_proxy_DIVSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.DIVSS(v[0], v[1]) + } else { + panic("instruction DIVSS takes exactly 2 operands") + } +} + +func __asm_proxy_DIVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.DIVW(v[0]) + } else { + panic("instruction DIVW takes exactly 1 operand") + } +} + +func __asm_proxy_DPPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.DPPD(v[0], v[1], v[2]) + } else { + panic("instruction DPPD takes exactly 3 operands") + } +} + +func __asm_proxy_DPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.DPPS(v[0], v[1], v[2]) + } else { + panic("instruction DPPS takes exactly 3 operands") + } +} + +func __asm_proxy_EMMS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.EMMS() + } else { + panic("instruction EMMS takes no operands") + } +} + +func __asm_proxy_EXTRACTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.EXTRACTPS(v[0], v[1], v[2]) + } else { + panic("instruction EXTRACTPS takes exactly 3 operands") + } +} + +func __asm_proxy_EXTRQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.EXTRQ(v[0], v[1]) + case 3 : return p.EXTRQ(v[0], v[1], v[2]) + default : panic("instruction EXTRQ takes 2 or 3 operands") + } +} + +func __asm_proxy_FEMMS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.FEMMS() + } else { + panic("instruction FEMMS takes no operands") + } +} + +func __asm_proxy_HADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HADDPD(v[0], v[1]) + } else { + panic("instruction HADDPD takes exactly 2 operands") + } +} + +func __asm_proxy_HADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HADDPS(v[0], v[1]) + } else { + panic("instruction HADDPS takes exactly 2 operands") + } +} + +func __asm_proxy_HSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HSUBPD(v[0], v[1]) + } else { + panic("instruction HSUBPD takes exactly 2 operands") + } +} + +func __asm_proxy_HSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.HSUBPS(v[0], v[1]) + } else { + panic("instruction HSUBPS takes exactly 2 operands") + } +} + +func __asm_proxy_IDIVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVB(v[0]) + } else { + panic("instruction IDIVB takes exactly 1 operand") + } +} + +func __asm_proxy_IDIVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVL(v[0]) + } else { + panic("instruction IDIVL takes exactly 1 operand") + } +} + +func __asm_proxy_IDIVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVQ(v[0]) + } else { + panic("instruction IDIVQ takes exactly 1 operand") + } +} + +func __asm_proxy_IDIVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IDIVW(v[0]) + } else { + panic("instruction IDIVW takes exactly 1 operand") + } +} + +func __asm_proxy_IMULB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.IMULB(v[0]) + } else { + panic("instruction IMULB takes exactly 1 operand") + } +} + +func __asm_proxy_IMULL__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 1 : return p.IMULL(v[0]) + case 2 : return p.IMULL(v[0], v[1]) + case 3 : return p.IMULL(v[0], v[1], v[2]) + default : panic("instruction IMULL takes 1 or 2 or 3 operands") + } +} + +func __asm_proxy_IMULQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 1 : return p.IMULQ(v[0]) + case 2 : return p.IMULQ(v[0], v[1]) + case 3 : return p.IMULQ(v[0], v[1], v[2]) + default : panic("instruction IMULQ takes 1 or 2 or 3 operands") + } +} + +func __asm_proxy_IMULW__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 1 : return p.IMULW(v[0]) + case 2 : return p.IMULW(v[0], v[1]) + case 3 : return p.IMULW(v[0], v[1], v[2]) + default : panic("instruction IMULW takes 1 or 2 or 3 operands") + } +} + +func __asm_proxy_INCB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCB(v[0]) + } else { + panic("instruction INCB takes exactly 1 operand") + } +} + +func __asm_proxy_INCL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCL(v[0]) + } else { + panic("instruction INCL takes exactly 1 operand") + } +} + +func __asm_proxy_INCQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCQ(v[0]) + } else { + panic("instruction INCQ takes exactly 1 operand") + } +} + +func __asm_proxy_INCW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INCW(v[0]) + } else { + panic("instruction INCW takes exactly 1 operand") + } +} + +func __asm_proxy_INSERTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.INSERTPS(v[0], v[1], v[2]) + } else { + panic("instruction INSERTPS takes exactly 3 operands") + } +} + +func __asm_proxy_INSERTQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.INSERTQ(v[0], v[1]) + case 4 : return p.INSERTQ(v[0], v[1], v[2], v[3]) + default : panic("instruction INSERTQ takes 2 or 4 operands") + } +} + +func __asm_proxy_INT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.INT(v[0]) + } else { + panic("instruction INT takes exactly 1 operand") + } +} + +func __asm_proxy_JA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JA(v[0]) + } else { + panic("instruction JA takes exactly 1 operand") + } +} + +func __asm_proxy_JAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JAE(v[0]) + } else { + panic("instruction JAE takes exactly 1 operand") + } +} + +func __asm_proxy_JB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JB(v[0]) + } else { + panic("instruction JB takes exactly 1 operand") + } +} + +func __asm_proxy_JBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JBE(v[0]) + } else { + panic("instruction JBE takes exactly 1 operand") + } +} + +func __asm_proxy_JC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JC(v[0]) + } else { + panic("instruction JC takes exactly 1 operand") + } +} + +func __asm_proxy_JE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JE(v[0]) + } else { + panic("instruction JE takes exactly 1 operand") + } +} + +func __asm_proxy_JECXZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JECXZ(v[0]) + } else { + panic("instruction JECXZ takes exactly 1 operand") + } +} + +func __asm_proxy_JG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JG(v[0]) + } else { + panic("instruction JG takes exactly 1 operand") + } +} + +func __asm_proxy_JGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JGE(v[0]) + } else { + panic("instruction JGE takes exactly 1 operand") + } +} + +func __asm_proxy_JL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JL(v[0]) + } else { + panic("instruction JL takes exactly 1 operand") + } +} + +func __asm_proxy_JLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JLE(v[0]) + } else { + panic("instruction JLE takes exactly 1 operand") + } +} + +func __asm_proxy_JMP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JMP(v[0]) + } else { + panic("instruction JMP takes exactly 1 operand") + } +} + +func __asm_proxy_JMPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JMPQ(v[0]) + } else { + panic("instruction JMPQ takes exactly 1 operand") + } +} + +func __asm_proxy_JNA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNA(v[0]) + } else { + panic("instruction JNA takes exactly 1 operand") + } +} + +func __asm_proxy_JNAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNAE(v[0]) + } else { + panic("instruction JNAE takes exactly 1 operand") + } +} + +func __asm_proxy_JNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNB(v[0]) + } else { + panic("instruction JNB takes exactly 1 operand") + } +} + +func __asm_proxy_JNBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNBE(v[0]) + } else { + panic("instruction JNBE takes exactly 1 operand") + } +} + +func __asm_proxy_JNC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNC(v[0]) + } else { + panic("instruction JNC takes exactly 1 operand") + } +} + +func __asm_proxy_JNE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNE(v[0]) + } else { + panic("instruction JNE takes exactly 1 operand") + } +} + +func __asm_proxy_JNG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNG(v[0]) + } else { + panic("instruction JNG takes exactly 1 operand") + } +} + +func __asm_proxy_JNGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNGE(v[0]) + } else { + panic("instruction JNGE takes exactly 1 operand") + } +} + +func __asm_proxy_JNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNL(v[0]) + } else { + panic("instruction JNL takes exactly 1 operand") + } +} + +func __asm_proxy_JNLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNLE(v[0]) + } else { + panic("instruction JNLE takes exactly 1 operand") + } +} + +func __asm_proxy_JNO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNO(v[0]) + } else { + panic("instruction JNO takes exactly 1 operand") + } +} + +func __asm_proxy_JNP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNP(v[0]) + } else { + panic("instruction JNP takes exactly 1 operand") + } +} + +func __asm_proxy_JNS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNS(v[0]) + } else { + panic("instruction JNS takes exactly 1 operand") + } +} + +func __asm_proxy_JNZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JNZ(v[0]) + } else { + panic("instruction JNZ takes exactly 1 operand") + } +} + +func __asm_proxy_JO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JO(v[0]) + } else { + panic("instruction JO takes exactly 1 operand") + } +} + +func __asm_proxy_JP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JP(v[0]) + } else { + panic("instruction JP takes exactly 1 operand") + } +} + +func __asm_proxy_JPE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JPE(v[0]) + } else { + panic("instruction JPE takes exactly 1 operand") + } +} + +func __asm_proxy_JPO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JPO(v[0]) + } else { + panic("instruction JPO takes exactly 1 operand") + } +} + +func __asm_proxy_JRCXZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JRCXZ(v[0]) + } else { + panic("instruction JRCXZ takes exactly 1 operand") + } +} + +func __asm_proxy_JS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JS(v[0]) + } else { + panic("instruction JS takes exactly 1 operand") + } +} + +func __asm_proxy_JZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.JZ(v[0]) + } else { + panic("instruction JZ takes exactly 1 operand") + } +} + +func __asm_proxy_KADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDB(v[0], v[1], v[2]) + } else { + panic("instruction KADDB takes exactly 3 operands") + } +} + +func __asm_proxy_KADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDD(v[0], v[1], v[2]) + } else { + panic("instruction KADDD takes exactly 3 operands") + } +} + +func __asm_proxy_KADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDQ(v[0], v[1], v[2]) + } else { + panic("instruction KADDQ takes exactly 3 operands") + } +} + +func __asm_proxy_KADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KADDW(v[0], v[1], v[2]) + } else { + panic("instruction KADDW takes exactly 3 operands") + } +} + +func __asm_proxy_KANDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDB(v[0], v[1], v[2]) + } else { + panic("instruction KANDB takes exactly 3 operands") + } +} + +func __asm_proxy_KANDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDD(v[0], v[1], v[2]) + } else { + panic("instruction KANDD takes exactly 3 operands") + } +} + +func __asm_proxy_KANDNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDNB(v[0], v[1], v[2]) + } else { + panic("instruction KANDNB takes exactly 3 operands") + } +} + +func __asm_proxy_KANDND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDND(v[0], v[1], v[2]) + } else { + panic("instruction KANDND takes exactly 3 operands") + } +} + +func __asm_proxy_KANDNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDNQ(v[0], v[1], v[2]) + } else { + panic("instruction KANDNQ takes exactly 3 operands") + } +} + +func __asm_proxy_KANDNW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDNW(v[0], v[1], v[2]) + } else { + panic("instruction KANDNW takes exactly 3 operands") + } +} + +func __asm_proxy_KANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDQ(v[0], v[1], v[2]) + } else { + panic("instruction KANDQ takes exactly 3 operands") + } +} + +func __asm_proxy_KANDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KANDW(v[0], v[1], v[2]) + } else { + panic("instruction KANDW takes exactly 3 operands") + } +} + +func __asm_proxy_KMOVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVB(v[0], v[1]) + } else { + panic("instruction KMOVB takes exactly 2 operands") + } +} + +func __asm_proxy_KMOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVD(v[0], v[1]) + } else { + panic("instruction KMOVD takes exactly 2 operands") + } +} + +func __asm_proxy_KMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVQ(v[0], v[1]) + } else { + panic("instruction KMOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_KMOVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KMOVW(v[0], v[1]) + } else { + panic("instruction KMOVW takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTB(v[0], v[1]) + } else { + panic("instruction KNOTB takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTD(v[0], v[1]) + } else { + panic("instruction KNOTD takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTQ(v[0], v[1]) + } else { + panic("instruction KNOTQ takes exactly 2 operands") + } +} + +func __asm_proxy_KNOTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KNOTW(v[0], v[1]) + } else { + panic("instruction KNOTW takes exactly 2 operands") + } +} + +func __asm_proxy_KORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORB(v[0], v[1], v[2]) + } else { + panic("instruction KORB takes exactly 3 operands") + } +} + +func __asm_proxy_KORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORD(v[0], v[1], v[2]) + } else { + panic("instruction KORD takes exactly 3 operands") + } +} + +func __asm_proxy_KORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORQ(v[0], v[1], v[2]) + } else { + panic("instruction KORQ takes exactly 3 operands") + } +} + +func __asm_proxy_KORTESTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTB(v[0], v[1]) + } else { + panic("instruction KORTESTB takes exactly 2 operands") + } +} + +func __asm_proxy_KORTESTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTD(v[0], v[1]) + } else { + panic("instruction KORTESTD takes exactly 2 operands") + } +} + +func __asm_proxy_KORTESTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTQ(v[0], v[1]) + } else { + panic("instruction KORTESTQ takes exactly 2 operands") + } +} + +func __asm_proxy_KORTESTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KORTESTW(v[0], v[1]) + } else { + panic("instruction KORTESTW takes exactly 2 operands") + } +} + +func __asm_proxy_KORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KORW(v[0], v[1], v[2]) + } else { + panic("instruction KORW takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLB(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLB takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLD(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLD takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLQ(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLQ takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTLW(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTLW takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRB(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRB takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRD(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRD takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRQ(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRQ takes exactly 3 operands") + } +} + +func __asm_proxy_KSHIFTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KSHIFTRW(v[0], v[1], v[2]) + } else { + panic("instruction KSHIFTRW takes exactly 3 operands") + } +} + +func __asm_proxy_KTESTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTB(v[0], v[1]) + } else { + panic("instruction KTESTB takes exactly 2 operands") + } +} + +func __asm_proxy_KTESTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTD(v[0], v[1]) + } else { + panic("instruction KTESTD takes exactly 2 operands") + } +} + +func __asm_proxy_KTESTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTQ(v[0], v[1]) + } else { + panic("instruction KTESTQ takes exactly 2 operands") + } +} + +func __asm_proxy_KTESTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.KTESTW(v[0], v[1]) + } else { + panic("instruction KTESTW takes exactly 2 operands") + } +} + +func __asm_proxy_KUNPCKBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KUNPCKBW(v[0], v[1], v[2]) + } else { + panic("instruction KUNPCKBW takes exactly 3 operands") + } +} + +func __asm_proxy_KUNPCKDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KUNPCKDQ(v[0], v[1], v[2]) + } else { + panic("instruction KUNPCKDQ takes exactly 3 operands") + } +} + +func __asm_proxy_KUNPCKWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KUNPCKWD(v[0], v[1], v[2]) + } else { + panic("instruction KUNPCKWD takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORB(v[0], v[1], v[2]) + } else { + panic("instruction KXNORB takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORD(v[0], v[1], v[2]) + } else { + panic("instruction KXNORD takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORQ(v[0], v[1], v[2]) + } else { + panic("instruction KXNORQ takes exactly 3 operands") + } +} + +func __asm_proxy_KXNORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXNORW(v[0], v[1], v[2]) + } else { + panic("instruction KXNORW takes exactly 3 operands") + } +} + +func __asm_proxy_KXORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORB(v[0], v[1], v[2]) + } else { + panic("instruction KXORB takes exactly 3 operands") + } +} + +func __asm_proxy_KXORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORD(v[0], v[1], v[2]) + } else { + panic("instruction KXORD takes exactly 3 operands") + } +} + +func __asm_proxy_KXORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORQ(v[0], v[1], v[2]) + } else { + panic("instruction KXORQ takes exactly 3 operands") + } +} + +func __asm_proxy_KXORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.KXORW(v[0], v[1], v[2]) + } else { + panic("instruction KXORW takes exactly 3 operands") + } +} + +func __asm_proxy_LDDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LDDQU(v[0], v[1]) + } else { + panic("instruction LDDQU takes exactly 2 operands") + } +} + +func __asm_proxy_LDMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.LDMXCSR(v[0]) + } else { + panic("instruction LDMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_LEAL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LEAL(v[0], v[1]) + } else { + panic("instruction LEAL takes exactly 2 operands") + } +} + +func __asm_proxy_LEAQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LEAQ(v[0], v[1]) + } else { + panic("instruction LEAQ takes exactly 2 operands") + } +} + +func __asm_proxy_LEAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LEAW(v[0], v[1]) + } else { + panic("instruction LEAW takes exactly 2 operands") + } +} + +func __asm_proxy_LFENCE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.LFENCE() + } else { + panic("instruction LFENCE takes no operands") + } +} + +func __asm_proxy_LZCNTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LZCNTL(v[0], v[1]) + } else { + panic("instruction LZCNTL takes exactly 2 operands") + } +} + +func __asm_proxy_LZCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LZCNTQ(v[0], v[1]) + } else { + panic("instruction LZCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_LZCNTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.LZCNTW(v[0], v[1]) + } else { + panic("instruction LZCNTW takes exactly 2 operands") + } +} + +func __asm_proxy_MASKMOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MASKMOVDQU(v[0], v[1]) + } else { + panic("instruction MASKMOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_MASKMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MASKMOVQ(v[0], v[1]) + } else { + panic("instruction MASKMOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_MAXPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXPD(v[0], v[1]) + } else { + panic("instruction MAXPD takes exactly 2 operands") + } +} + +func __asm_proxy_MAXPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXPS(v[0], v[1]) + } else { + panic("instruction MAXPS takes exactly 2 operands") + } +} + +func __asm_proxy_MAXSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXSD(v[0], v[1]) + } else { + panic("instruction MAXSD takes exactly 2 operands") + } +} + +func __asm_proxy_MAXSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MAXSS(v[0], v[1]) + } else { + panic("instruction MAXSS takes exactly 2 operands") + } +} + +func __asm_proxy_MFENCE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MFENCE() + } else { + panic("instruction MFENCE takes no operands") + } +} + +func __asm_proxy_MINPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINPD(v[0], v[1]) + } else { + panic("instruction MINPD takes exactly 2 operands") + } +} + +func __asm_proxy_MINPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINPS(v[0], v[1]) + } else { + panic("instruction MINPS takes exactly 2 operands") + } +} + +func __asm_proxy_MINSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINSD(v[0], v[1]) + } else { + panic("instruction MINSD takes exactly 2 operands") + } +} + +func __asm_proxy_MINSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MINSS(v[0], v[1]) + } else { + panic("instruction MINSS takes exactly 2 operands") + } +} + +func __asm_proxy_MONITOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MONITOR() + } else { + panic("instruction MONITOR takes no operands") + } +} + +func __asm_proxy_MONITORX__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MONITORX() + } else { + panic("instruction MONITORX takes no operands") + } +} + +func __asm_proxy_MOVAPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVAPD(v[0], v[1]) + } else { + panic("instruction MOVAPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVAPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVAPS(v[0], v[1]) + } else { + panic("instruction MOVAPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVB(v[0], v[1]) + } else { + panic("instruction MOVB takes exactly 2 operands") + } +} + +func __asm_proxy_MOVBEL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVBEL(v[0], v[1]) + } else { + panic("instruction MOVBEL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVBEQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVBEQ(v[0], v[1]) + } else { + panic("instruction MOVBEQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVBEW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVBEW(v[0], v[1]) + } else { + panic("instruction MOVBEW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVD(v[0], v[1]) + } else { + panic("instruction MOVD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDDUP(v[0], v[1]) + } else { + panic("instruction MOVDDUP takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDQ2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDQ2Q(v[0], v[1]) + } else { + panic("instruction MOVDQ2Q takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDQA(v[0], v[1]) + } else { + panic("instruction MOVDQA takes exactly 2 operands") + } +} + +func __asm_proxy_MOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVDQU(v[0], v[1]) + } else { + panic("instruction MOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_MOVHLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVHLPS(v[0], v[1]) + } else { + panic("instruction MOVHLPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVHPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVHPD(v[0], v[1]) + } else { + panic("instruction MOVHPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVHPS(v[0], v[1]) + } else { + panic("instruction MOVHPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVL(v[0], v[1]) + } else { + panic("instruction MOVL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVLHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVLHPS(v[0], v[1]) + } else { + panic("instruction MOVLHPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVLPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVLPD(v[0], v[1]) + } else { + panic("instruction MOVLPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVLPS(v[0], v[1]) + } else { + panic("instruction MOVLPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVMSKPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVMSKPD(v[0], v[1]) + } else { + panic("instruction MOVMSKPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVMSKPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVMSKPS(v[0], v[1]) + } else { + panic("instruction MOVMSKPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTDQ(v[0], v[1]) + } else { + panic("instruction MOVNTDQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTDQA(v[0], v[1]) + } else { + panic("instruction MOVNTDQA takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTIL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTIL(v[0], v[1]) + } else { + panic("instruction MOVNTIL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTIQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTIQ(v[0], v[1]) + } else { + panic("instruction MOVNTIQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTPD(v[0], v[1]) + } else { + panic("instruction MOVNTPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTPS(v[0], v[1]) + } else { + panic("instruction MOVNTPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTQ(v[0], v[1]) + } else { + panic("instruction MOVNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTSD(v[0], v[1]) + } else { + panic("instruction MOVNTSD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVNTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVNTSS(v[0], v[1]) + } else { + panic("instruction MOVNTSS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVQ(v[0], v[1]) + } else { + panic("instruction MOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVQ2DQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVQ2DQ(v[0], v[1]) + } else { + panic("instruction MOVQ2DQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSBL(v[0], v[1]) + } else { + panic("instruction MOVSBL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSBQ(v[0], v[1]) + } else { + panic("instruction MOVSBQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSBW(v[0], v[1]) + } else { + panic("instruction MOVSBW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSD(v[0], v[1]) + } else { + panic("instruction MOVSD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSHDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSHDUP(v[0], v[1]) + } else { + panic("instruction MOVSHDUP takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSLDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSLDUP(v[0], v[1]) + } else { + panic("instruction MOVSLDUP takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSLQ(v[0], v[1]) + } else { + panic("instruction MOVSLQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSS(v[0], v[1]) + } else { + panic("instruction MOVSS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSWL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSWL(v[0], v[1]) + } else { + panic("instruction MOVSWL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVSWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVSWQ(v[0], v[1]) + } else { + panic("instruction MOVSWQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVUPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVUPD(v[0], v[1]) + } else { + panic("instruction MOVUPD takes exactly 2 operands") + } +} + +func __asm_proxy_MOVUPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVUPS(v[0], v[1]) + } else { + panic("instruction MOVUPS takes exactly 2 operands") + } +} + +func __asm_proxy_MOVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVW(v[0], v[1]) + } else { + panic("instruction MOVW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZBL(v[0], v[1]) + } else { + panic("instruction MOVZBL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZBQ(v[0], v[1]) + } else { + panic("instruction MOVZBQ takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZBW(v[0], v[1]) + } else { + panic("instruction MOVZBW takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZWL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZWL(v[0], v[1]) + } else { + panic("instruction MOVZWL takes exactly 2 operands") + } +} + +func __asm_proxy_MOVZWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MOVZWQ(v[0], v[1]) + } else { + panic("instruction MOVZWQ takes exactly 2 operands") + } +} + +func __asm_proxy_MPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.MPSADBW(v[0], v[1], v[2]) + } else { + panic("instruction MPSADBW takes exactly 3 operands") + } +} + +func __asm_proxy_MULB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULB(v[0]) + } else { + panic("instruction MULB takes exactly 1 operand") + } +} + +func __asm_proxy_MULL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULL(v[0]) + } else { + panic("instruction MULL takes exactly 1 operand") + } +} + +func __asm_proxy_MULPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULPD(v[0], v[1]) + } else { + panic("instruction MULPD takes exactly 2 operands") + } +} + +func __asm_proxy_MULPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULPS(v[0], v[1]) + } else { + panic("instruction MULPS takes exactly 2 operands") + } +} + +func __asm_proxy_MULQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULQ(v[0]) + } else { + panic("instruction MULQ takes exactly 1 operand") + } +} + +func __asm_proxy_MULSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULSD(v[0], v[1]) + } else { + panic("instruction MULSD takes exactly 2 operands") + } +} + +func __asm_proxy_MULSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.MULSS(v[0], v[1]) + } else { + panic("instruction MULSS takes exactly 2 operands") + } +} + +func __asm_proxy_MULW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.MULW(v[0]) + } else { + panic("instruction MULW takes exactly 1 operand") + } +} + +func __asm_proxy_MULXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.MULXL(v[0], v[1], v[2]) + } else { + panic("instruction MULXL takes exactly 3 operands") + } +} + +func __asm_proxy_MULXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.MULXQ(v[0], v[1], v[2]) + } else { + panic("instruction MULXQ takes exactly 3 operands") + } +} + +func __asm_proxy_MWAIT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MWAIT() + } else { + panic("instruction MWAIT takes no operands") + } +} + +func __asm_proxy_MWAITX__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.MWAITX() + } else { + panic("instruction MWAITX takes no operands") + } +} + +func __asm_proxy_NEGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGB(v[0]) + } else { + panic("instruction NEGB takes exactly 1 operand") + } +} + +func __asm_proxy_NEGL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGL(v[0]) + } else { + panic("instruction NEGL takes exactly 1 operand") + } +} + +func __asm_proxy_NEGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGQ(v[0]) + } else { + panic("instruction NEGQ takes exactly 1 operand") + } +} + +func __asm_proxy_NEGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NEGW(v[0]) + } else { + panic("instruction NEGW takes exactly 1 operand") + } +} + +func __asm_proxy_NOP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.NOP() + } else { + panic("instruction NOP takes no operands") + } +} + +func __asm_proxy_NOTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTB(v[0]) + } else { + panic("instruction NOTB takes exactly 1 operand") + } +} + +func __asm_proxy_NOTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTL(v[0]) + } else { + panic("instruction NOTL takes exactly 1 operand") + } +} + +func __asm_proxy_NOTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTQ(v[0]) + } else { + panic("instruction NOTQ takes exactly 1 operand") + } +} + +func __asm_proxy_NOTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.NOTW(v[0]) + } else { + panic("instruction NOTW takes exactly 1 operand") + } +} + +func __asm_proxy_ORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORB(v[0], v[1]) + } else { + panic("instruction ORB takes exactly 2 operands") + } +} + +func __asm_proxy_ORL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORL(v[0], v[1]) + } else { + panic("instruction ORL takes exactly 2 operands") + } +} + +func __asm_proxy_ORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORPD(v[0], v[1]) + } else { + panic("instruction ORPD takes exactly 2 operands") + } +} + +func __asm_proxy_ORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORPS(v[0], v[1]) + } else { + panic("instruction ORPS takes exactly 2 operands") + } +} + +func __asm_proxy_ORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORQ(v[0], v[1]) + } else { + panic("instruction ORQ takes exactly 2 operands") + } +} + +func __asm_proxy_ORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ORW(v[0], v[1]) + } else { + panic("instruction ORW takes exactly 2 operands") + } +} + +func __asm_proxy_PABSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PABSB(v[0], v[1]) + } else { + panic("instruction PABSB takes exactly 2 operands") + } +} + +func __asm_proxy_PABSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PABSD(v[0], v[1]) + } else { + panic("instruction PABSD takes exactly 2 operands") + } +} + +func __asm_proxy_PABSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PABSW(v[0], v[1]) + } else { + panic("instruction PABSW takes exactly 2 operands") + } +} + +func __asm_proxy_PACKSSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKSSDW(v[0], v[1]) + } else { + panic("instruction PACKSSDW takes exactly 2 operands") + } +} + +func __asm_proxy_PACKSSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKSSWB(v[0], v[1]) + } else { + panic("instruction PACKSSWB takes exactly 2 operands") + } +} + +func __asm_proxy_PACKUSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKUSDW(v[0], v[1]) + } else { + panic("instruction PACKUSDW takes exactly 2 operands") + } +} + +func __asm_proxy_PACKUSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PACKUSWB(v[0], v[1]) + } else { + panic("instruction PACKUSWB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDB(v[0], v[1]) + } else { + panic("instruction PADDB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDD(v[0], v[1]) + } else { + panic("instruction PADDD takes exactly 2 operands") + } +} + +func __asm_proxy_PADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDQ(v[0], v[1]) + } else { + panic("instruction PADDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PADDSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDSB(v[0], v[1]) + } else { + panic("instruction PADDSB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDSW(v[0], v[1]) + } else { + panic("instruction PADDSW takes exactly 2 operands") + } +} + +func __asm_proxy_PADDUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDUSB(v[0], v[1]) + } else { + panic("instruction PADDUSB takes exactly 2 operands") + } +} + +func __asm_proxy_PADDUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDUSW(v[0], v[1]) + } else { + panic("instruction PADDUSW takes exactly 2 operands") + } +} + +func __asm_proxy_PADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PADDW(v[0], v[1]) + } else { + panic("instruction PADDW takes exactly 2 operands") + } +} + +func __asm_proxy_PALIGNR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PALIGNR(v[0], v[1], v[2]) + } else { + panic("instruction PALIGNR takes exactly 3 operands") + } +} + +func __asm_proxy_PAND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAND(v[0], v[1]) + } else { + panic("instruction PAND takes exactly 2 operands") + } +} + +func __asm_proxy_PANDN__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PANDN(v[0], v[1]) + } else { + panic("instruction PANDN takes exactly 2 operands") + } +} + +func __asm_proxy_PAUSE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.PAUSE() + } else { + panic("instruction PAUSE takes no operands") + } +} + +func __asm_proxy_PAVGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAVGB(v[0], v[1]) + } else { + panic("instruction PAVGB takes exactly 2 operands") + } +} + +func __asm_proxy_PAVGUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAVGUSB(v[0], v[1]) + } else { + panic("instruction PAVGUSB takes exactly 2 operands") + } +} + +func __asm_proxy_PAVGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PAVGW(v[0], v[1]) + } else { + panic("instruction PAVGW takes exactly 2 operands") + } +} + +func __asm_proxy_PBLENDVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PBLENDVB(v[0], v[1], v[2]) + } else { + panic("instruction PBLENDVB takes exactly 3 operands") + } +} + +func __asm_proxy_PBLENDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PBLENDW(v[0], v[1], v[2]) + } else { + panic("instruction PBLENDW takes exactly 3 operands") + } +} + +func __asm_proxy_PCLMULQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCLMULQDQ(v[0], v[1], v[2]) + } else { + panic("instruction PCLMULQDQ takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPEQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQB(v[0], v[1]) + } else { + panic("instruction PCMPEQB takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPEQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQD(v[0], v[1]) + } else { + panic("instruction PCMPEQD takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPEQQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQQ(v[0], v[1]) + } else { + panic("instruction PCMPEQQ takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPEQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPEQW(v[0], v[1]) + } else { + panic("instruction PCMPEQW takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPESTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPESTRI(v[0], v[1], v[2]) + } else { + panic("instruction PCMPESTRI takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPESTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPESTRM(v[0], v[1], v[2]) + } else { + panic("instruction PCMPESTRM takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPGTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTB(v[0], v[1]) + } else { + panic("instruction PCMPGTB takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPGTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTD(v[0], v[1]) + } else { + panic("instruction PCMPGTD takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPGTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTQ(v[0], v[1]) + } else { + panic("instruction PCMPGTQ takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPGTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PCMPGTW(v[0], v[1]) + } else { + panic("instruction PCMPGTW takes exactly 2 operands") + } +} + +func __asm_proxy_PCMPISTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPISTRI(v[0], v[1], v[2]) + } else { + panic("instruction PCMPISTRI takes exactly 3 operands") + } +} + +func __asm_proxy_PCMPISTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PCMPISTRM(v[0], v[1], v[2]) + } else { + panic("instruction PCMPISTRM takes exactly 3 operands") + } +} + +func __asm_proxy_PDEP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PDEP(v[0], v[1], v[2]) + } else { + panic("instruction PDEP takes exactly 3 operands") + } +} + +func __asm_proxy_PEXT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXT(v[0], v[1], v[2]) + } else { + panic("instruction PEXT takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRB(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRB takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRD(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRD takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRQ(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRQ takes exactly 3 operands") + } +} + +func __asm_proxy_PEXTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PEXTRW(v[0], v[1], v[2]) + } else { + panic("instruction PEXTRW takes exactly 3 operands") + } +} + +func __asm_proxy_PF2ID__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PF2ID(v[0], v[1]) + } else { + panic("instruction PF2ID takes exactly 2 operands") + } +} + +func __asm_proxy_PF2IW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PF2IW(v[0], v[1]) + } else { + panic("instruction PF2IW takes exactly 2 operands") + } +} + +func __asm_proxy_PFACC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFACC(v[0], v[1]) + } else { + panic("instruction PFACC takes exactly 2 operands") + } +} + +func __asm_proxy_PFADD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFADD(v[0], v[1]) + } else { + panic("instruction PFADD takes exactly 2 operands") + } +} + +func __asm_proxy_PFCMPEQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFCMPEQ(v[0], v[1]) + } else { + panic("instruction PFCMPEQ takes exactly 2 operands") + } +} + +func __asm_proxy_PFCMPGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFCMPGE(v[0], v[1]) + } else { + panic("instruction PFCMPGE takes exactly 2 operands") + } +} + +func __asm_proxy_PFCMPGT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFCMPGT(v[0], v[1]) + } else { + panic("instruction PFCMPGT takes exactly 2 operands") + } +} + +func __asm_proxy_PFMAX__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFMAX(v[0], v[1]) + } else { + panic("instruction PFMAX takes exactly 2 operands") + } +} + +func __asm_proxy_PFMIN__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFMIN(v[0], v[1]) + } else { + panic("instruction PFMIN takes exactly 2 operands") + } +} + +func __asm_proxy_PFMUL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFMUL(v[0], v[1]) + } else { + panic("instruction PFMUL takes exactly 2 operands") + } +} + +func __asm_proxy_PFNACC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFNACC(v[0], v[1]) + } else { + panic("instruction PFNACC takes exactly 2 operands") + } +} + +func __asm_proxy_PFPNACC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFPNACC(v[0], v[1]) + } else { + panic("instruction PFPNACC takes exactly 2 operands") + } +} + +func __asm_proxy_PFRCP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRCP(v[0], v[1]) + } else { + panic("instruction PFRCP takes exactly 2 operands") + } +} + +func __asm_proxy_PFRCPIT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRCPIT1(v[0], v[1]) + } else { + panic("instruction PFRCPIT1 takes exactly 2 operands") + } +} + +func __asm_proxy_PFRCPIT2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRCPIT2(v[0], v[1]) + } else { + panic("instruction PFRCPIT2 takes exactly 2 operands") + } +} + +func __asm_proxy_PFRSQIT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRSQIT1(v[0], v[1]) + } else { + panic("instruction PFRSQIT1 takes exactly 2 operands") + } +} + +func __asm_proxy_PFRSQRT__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFRSQRT(v[0], v[1]) + } else { + panic("instruction PFRSQRT takes exactly 2 operands") + } +} + +func __asm_proxy_PFSUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFSUB(v[0], v[1]) + } else { + panic("instruction PFSUB takes exactly 2 operands") + } +} + +func __asm_proxy_PFSUBR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PFSUBR(v[0], v[1]) + } else { + panic("instruction PFSUBR takes exactly 2 operands") + } +} + +func __asm_proxy_PHADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHADDD(v[0], v[1]) + } else { + panic("instruction PHADDD takes exactly 2 operands") + } +} + +func __asm_proxy_PHADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHADDSW(v[0], v[1]) + } else { + panic("instruction PHADDSW takes exactly 2 operands") + } +} + +func __asm_proxy_PHADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHADDW(v[0], v[1]) + } else { + panic("instruction PHADDW takes exactly 2 operands") + } +} + +func __asm_proxy_PHMINPOSUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHMINPOSUW(v[0], v[1]) + } else { + panic("instruction PHMINPOSUW takes exactly 2 operands") + } +} + +func __asm_proxy_PHSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHSUBD(v[0], v[1]) + } else { + panic("instruction PHSUBD takes exactly 2 operands") + } +} + +func __asm_proxy_PHSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHSUBSW(v[0], v[1]) + } else { + panic("instruction PHSUBSW takes exactly 2 operands") + } +} + +func __asm_proxy_PHSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PHSUBW(v[0], v[1]) + } else { + panic("instruction PHSUBW takes exactly 2 operands") + } +} + +func __asm_proxy_PI2FD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PI2FD(v[0], v[1]) + } else { + panic("instruction PI2FD takes exactly 2 operands") + } +} + +func __asm_proxy_PI2FW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PI2FW(v[0], v[1]) + } else { + panic("instruction PI2FW takes exactly 2 operands") + } +} + +func __asm_proxy_PINSRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRB(v[0], v[1], v[2]) + } else { + panic("instruction PINSRB takes exactly 3 operands") + } +} + +func __asm_proxy_PINSRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRD(v[0], v[1], v[2]) + } else { + panic("instruction PINSRD takes exactly 3 operands") + } +} + +func __asm_proxy_PINSRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRQ(v[0], v[1], v[2]) + } else { + panic("instruction PINSRQ takes exactly 3 operands") + } +} + +func __asm_proxy_PINSRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PINSRW(v[0], v[1], v[2]) + } else { + panic("instruction PINSRW takes exactly 3 operands") + } +} + +func __asm_proxy_PMADDUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMADDUBSW(v[0], v[1]) + } else { + panic("instruction PMADDUBSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMADDWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMADDWD(v[0], v[1]) + } else { + panic("instruction PMADDWD takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXSB(v[0], v[1]) + } else { + panic("instruction PMAXSB takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXSD(v[0], v[1]) + } else { + panic("instruction PMAXSD takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXSW(v[0], v[1]) + } else { + panic("instruction PMAXSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXUB(v[0], v[1]) + } else { + panic("instruction PMAXUB takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXUD(v[0], v[1]) + } else { + panic("instruction PMAXUD takes exactly 2 operands") + } +} + +func __asm_proxy_PMAXUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMAXUW(v[0], v[1]) + } else { + panic("instruction PMAXUW takes exactly 2 operands") + } +} + +func __asm_proxy_PMINSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINSB(v[0], v[1]) + } else { + panic("instruction PMINSB takes exactly 2 operands") + } +} + +func __asm_proxy_PMINSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINSD(v[0], v[1]) + } else { + panic("instruction PMINSD takes exactly 2 operands") + } +} + +func __asm_proxy_PMINSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINSW(v[0], v[1]) + } else { + panic("instruction PMINSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMINUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINUB(v[0], v[1]) + } else { + panic("instruction PMINUB takes exactly 2 operands") + } +} + +func __asm_proxy_PMINUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINUD(v[0], v[1]) + } else { + panic("instruction PMINUD takes exactly 2 operands") + } +} + +func __asm_proxy_PMINUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMINUW(v[0], v[1]) + } else { + panic("instruction PMINUW takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVMSKB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVMSKB(v[0], v[1]) + } else { + panic("instruction PMOVMSKB takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXBD(v[0], v[1]) + } else { + panic("instruction PMOVSXBD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXBQ(v[0], v[1]) + } else { + panic("instruction PMOVSXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXBW(v[0], v[1]) + } else { + panic("instruction PMOVSXBW takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXDQ(v[0], v[1]) + } else { + panic("instruction PMOVSXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXWD(v[0], v[1]) + } else { + panic("instruction PMOVSXWD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVSXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVSXWQ(v[0], v[1]) + } else { + panic("instruction PMOVSXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXBD(v[0], v[1]) + } else { + panic("instruction PMOVZXBD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXBQ(v[0], v[1]) + } else { + panic("instruction PMOVZXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXBW(v[0], v[1]) + } else { + panic("instruction PMOVZXBW takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXDQ(v[0], v[1]) + } else { + panic("instruction PMOVZXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXWD(v[0], v[1]) + } else { + panic("instruction PMOVZXWD takes exactly 2 operands") + } +} + +func __asm_proxy_PMOVZXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMOVZXWQ(v[0], v[1]) + } else { + panic("instruction PMOVZXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMULDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULDQ(v[0], v[1]) + } else { + panic("instruction PMULDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHRSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHRSW(v[0], v[1]) + } else { + panic("instruction PMULHRSW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHRW(v[0], v[1]) + } else { + panic("instruction PMULHRW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHUW(v[0], v[1]) + } else { + panic("instruction PMULHUW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULHW(v[0], v[1]) + } else { + panic("instruction PMULHW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULLD(v[0], v[1]) + } else { + panic("instruction PMULLD takes exactly 2 operands") + } +} + +func __asm_proxy_PMULLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULLW(v[0], v[1]) + } else { + panic("instruction PMULLW takes exactly 2 operands") + } +} + +func __asm_proxy_PMULUDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PMULUDQ(v[0], v[1]) + } else { + panic("instruction PMULUDQ takes exactly 2 operands") + } +} + +func __asm_proxy_POPCNTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POPCNTL(v[0], v[1]) + } else { + panic("instruction POPCNTL takes exactly 2 operands") + } +} + +func __asm_proxy_POPCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POPCNTQ(v[0], v[1]) + } else { + panic("instruction POPCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_POPCNTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POPCNTW(v[0], v[1]) + } else { + panic("instruction POPCNTW takes exactly 2 operands") + } +} + +func __asm_proxy_POPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.POPQ(v[0]) + } else { + panic("instruction POPQ takes exactly 1 operand") + } +} + +func __asm_proxy_POPW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.POPW(v[0]) + } else { + panic("instruction POPW takes exactly 1 operand") + } +} + +func __asm_proxy_POR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.POR(v[0], v[1]) + } else { + panic("instruction POR takes exactly 2 operands") + } +} + +func __asm_proxy_PREFETCH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCH(v[0]) + } else { + panic("instruction PREFETCH takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHNTA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHNTA(v[0]) + } else { + panic("instruction PREFETCHNTA takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHT0__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHT0(v[0]) + } else { + panic("instruction PREFETCHT0 takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHT1(v[0]) + } else { + panic("instruction PREFETCHT1 takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHT2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHT2(v[0]) + } else { + panic("instruction PREFETCHT2 takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHW(v[0]) + } else { + panic("instruction PREFETCHW takes exactly 1 operand") + } +} + +func __asm_proxy_PREFETCHWT1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PREFETCHWT1(v[0]) + } else { + panic("instruction PREFETCHWT1 takes exactly 1 operand") + } +} + +func __asm_proxy_PSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSADBW(v[0], v[1]) + } else { + panic("instruction PSADBW takes exactly 2 operands") + } +} + +func __asm_proxy_PSHUFB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSHUFB(v[0], v[1]) + } else { + panic("instruction PSHUFB takes exactly 2 operands") + } +} + +func __asm_proxy_PSHUFD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFD(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFD takes exactly 3 operands") + } +} + +func __asm_proxy_PSHUFHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFHW(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFHW takes exactly 3 operands") + } +} + +func __asm_proxy_PSHUFLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFLW(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFLW takes exactly 3 operands") + } +} + +func __asm_proxy_PSHUFW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.PSHUFW(v[0], v[1], v[2]) + } else { + panic("instruction PSHUFW takes exactly 3 operands") + } +} + +func __asm_proxy_PSIGNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSIGNB(v[0], v[1]) + } else { + panic("instruction PSIGNB takes exactly 2 operands") + } +} + +func __asm_proxy_PSIGND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSIGND(v[0], v[1]) + } else { + panic("instruction PSIGND takes exactly 2 operands") + } +} + +func __asm_proxy_PSIGNW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSIGNW(v[0], v[1]) + } else { + panic("instruction PSIGNW takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLD(v[0], v[1]) + } else { + panic("instruction PSLLD takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLDQ(v[0], v[1]) + } else { + panic("instruction PSLLDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLQ(v[0], v[1]) + } else { + panic("instruction PSLLQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSLLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSLLW(v[0], v[1]) + } else { + panic("instruction PSLLW takes exactly 2 operands") + } +} + +func __asm_proxy_PSRAD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRAD(v[0], v[1]) + } else { + panic("instruction PSRAD takes exactly 2 operands") + } +} + +func __asm_proxy_PSRAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRAW(v[0], v[1]) + } else { + panic("instruction PSRAW takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLD(v[0], v[1]) + } else { + panic("instruction PSRLD takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLDQ(v[0], v[1]) + } else { + panic("instruction PSRLDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLQ(v[0], v[1]) + } else { + panic("instruction PSRLQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSRLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSRLW(v[0], v[1]) + } else { + panic("instruction PSRLW takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBB(v[0], v[1]) + } else { + panic("instruction PSUBB takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBD(v[0], v[1]) + } else { + panic("instruction PSUBD takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBQ(v[0], v[1]) + } else { + panic("instruction PSUBQ takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBSB(v[0], v[1]) + } else { + panic("instruction PSUBSB takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBSW(v[0], v[1]) + } else { + panic("instruction PSUBSW takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBUSB(v[0], v[1]) + } else { + panic("instruction PSUBUSB takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBUSW(v[0], v[1]) + } else { + panic("instruction PSUBUSW takes exactly 2 operands") + } +} + +func __asm_proxy_PSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSUBW(v[0], v[1]) + } else { + panic("instruction PSUBW takes exactly 2 operands") + } +} + +func __asm_proxy_PSWAPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PSWAPD(v[0], v[1]) + } else { + panic("instruction PSWAPD takes exactly 2 operands") + } +} + +func __asm_proxy_PTEST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PTEST(v[0], v[1]) + } else { + panic("instruction PTEST takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHBW(v[0], v[1]) + } else { + panic("instruction PUNPCKHBW takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKHDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHQDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKHQDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKHWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKHWD(v[0], v[1]) + } else { + panic("instruction PUNPCKHWD takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLBW(v[0], v[1]) + } else { + panic("instruction PUNPCKLBW takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKLDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLQDQ(v[0], v[1]) + } else { + panic("instruction PUNPCKLQDQ takes exactly 2 operands") + } +} + +func __asm_proxy_PUNPCKLWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PUNPCKLWD(v[0], v[1]) + } else { + panic("instruction PUNPCKLWD takes exactly 2 operands") + } +} + +func __asm_proxy_PUSHQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PUSHQ(v[0]) + } else { + panic("instruction PUSHQ takes exactly 1 operand") + } +} + +func __asm_proxy_PUSHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.PUSHW(v[0]) + } else { + panic("instruction PUSHW takes exactly 1 operand") + } +} + +func __asm_proxy_PXOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.PXOR(v[0], v[1]) + } else { + panic("instruction PXOR takes exactly 2 operands") + } +} + +func __asm_proxy_RCLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLB(v[0], v[1]) + } else { + panic("instruction RCLB takes exactly 2 operands") + } +} + +func __asm_proxy_RCLL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLL(v[0], v[1]) + } else { + panic("instruction RCLL takes exactly 2 operands") + } +} + +func __asm_proxy_RCLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLQ(v[0], v[1]) + } else { + panic("instruction RCLQ takes exactly 2 operands") + } +} + +func __asm_proxy_RCLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCLW(v[0], v[1]) + } else { + panic("instruction RCLW takes exactly 2 operands") + } +} + +func __asm_proxy_RCPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCPPS(v[0], v[1]) + } else { + panic("instruction RCPPS takes exactly 2 operands") + } +} + +func __asm_proxy_RCPSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCPSS(v[0], v[1]) + } else { + panic("instruction RCPSS takes exactly 2 operands") + } +} + +func __asm_proxy_RCRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRB(v[0], v[1]) + } else { + panic("instruction RCRB takes exactly 2 operands") + } +} + +func __asm_proxy_RCRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRL(v[0], v[1]) + } else { + panic("instruction RCRL takes exactly 2 operands") + } +} + +func __asm_proxy_RCRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRQ(v[0], v[1]) + } else { + panic("instruction RCRQ takes exactly 2 operands") + } +} + +func __asm_proxy_RCRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RCRW(v[0], v[1]) + } else { + panic("instruction RCRW takes exactly 2 operands") + } +} + +func __asm_proxy_RDRAND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.RDRAND(v[0]) + } else { + panic("instruction RDRAND takes exactly 1 operand") + } +} + +func __asm_proxy_RDSEED__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.RDSEED(v[0]) + } else { + panic("instruction RDSEED takes exactly 1 operand") + } +} + +func __asm_proxy_RDTSC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.RDTSC() + } else { + panic("instruction RDTSC takes no operands") + } +} + +func __asm_proxy_RDTSCP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.RDTSCP() + } else { + panic("instruction RDTSCP takes no operands") + } +} + +func __asm_proxy_RET__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 0 : return p.RET() + case 1 : return p.RET(v[0]) + default : panic("instruction RET takes 0 or 1 operands") + } +} + +func __asm_proxy_ROLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLB(v[0], v[1]) + } else { + panic("instruction ROLB takes exactly 2 operands") + } +} + +func __asm_proxy_ROLL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLL(v[0], v[1]) + } else { + panic("instruction ROLL takes exactly 2 operands") + } +} + +func __asm_proxy_ROLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLQ(v[0], v[1]) + } else { + panic("instruction ROLQ takes exactly 2 operands") + } +} + +func __asm_proxy_ROLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.ROLW(v[0], v[1]) + } else { + panic("instruction ROLW takes exactly 2 operands") + } +} + +func __asm_proxy_RORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORB(v[0], v[1]) + } else { + panic("instruction RORB takes exactly 2 operands") + } +} + +func __asm_proxy_RORL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORL(v[0], v[1]) + } else { + panic("instruction RORL takes exactly 2 operands") + } +} + +func __asm_proxy_RORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORQ(v[0], v[1]) + } else { + panic("instruction RORQ takes exactly 2 operands") + } +} + +func __asm_proxy_RORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RORW(v[0], v[1]) + } else { + panic("instruction RORW takes exactly 2 operands") + } +} + +func __asm_proxy_RORXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.RORXL(v[0], v[1], v[2]) + } else { + panic("instruction RORXL takes exactly 3 operands") + } +} + +func __asm_proxy_RORXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.RORXQ(v[0], v[1], v[2]) + } else { + panic("instruction RORXQ takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDPD(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDPD takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDPS(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDPS takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDSD(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDSD takes exactly 3 operands") + } +} + +func __asm_proxy_ROUNDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.ROUNDSS(v[0], v[1], v[2]) + } else { + panic("instruction ROUNDSS takes exactly 3 operands") + } +} + +func __asm_proxy_RSQRTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RSQRTPS(v[0], v[1]) + } else { + panic("instruction RSQRTPS takes exactly 2 operands") + } +} + +func __asm_proxy_RSQRTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.RSQRTSS(v[0], v[1]) + } else { + panic("instruction RSQRTSS takes exactly 2 operands") + } +} + +func __asm_proxy_SALB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALB(v[0], v[1]) + } else { + panic("instruction SALB takes exactly 2 operands") + } +} + +func __asm_proxy_SALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALL(v[0], v[1]) + } else { + panic("instruction SALL takes exactly 2 operands") + } +} + +func __asm_proxy_SALQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALQ(v[0], v[1]) + } else { + panic("instruction SALQ takes exactly 2 operands") + } +} + +func __asm_proxy_SALW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SALW(v[0], v[1]) + } else { + panic("instruction SALW takes exactly 2 operands") + } +} + +func __asm_proxy_SARB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARB(v[0], v[1]) + } else { + panic("instruction SARB takes exactly 2 operands") + } +} + +func __asm_proxy_SARL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARL(v[0], v[1]) + } else { + panic("instruction SARL takes exactly 2 operands") + } +} + +func __asm_proxy_SARQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARQ(v[0], v[1]) + } else { + panic("instruction SARQ takes exactly 2 operands") + } +} + +func __asm_proxy_SARW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SARW(v[0], v[1]) + } else { + panic("instruction SARW takes exactly 2 operands") + } +} + +func __asm_proxy_SARXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SARXL(v[0], v[1], v[2]) + } else { + panic("instruction SARXL takes exactly 3 operands") + } +} + +func __asm_proxy_SARXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SARXQ(v[0], v[1], v[2]) + } else { + panic("instruction SARXQ takes exactly 3 operands") + } +} + +func __asm_proxy_SBBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBB(v[0], v[1]) + } else { + panic("instruction SBBB takes exactly 2 operands") + } +} + +func __asm_proxy_SBBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBL(v[0], v[1]) + } else { + panic("instruction SBBL takes exactly 2 operands") + } +} + +func __asm_proxy_SBBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBQ(v[0], v[1]) + } else { + panic("instruction SBBQ takes exactly 2 operands") + } +} + +func __asm_proxy_SBBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SBBW(v[0], v[1]) + } else { + panic("instruction SBBW takes exactly 2 operands") + } +} + +func __asm_proxy_SETA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETA(v[0]) + } else { + panic("instruction SETA takes exactly 1 operand") + } +} + +func __asm_proxy_SETAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETAE(v[0]) + } else { + panic("instruction SETAE takes exactly 1 operand") + } +} + +func __asm_proxy_SETB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETB(v[0]) + } else { + panic("instruction SETB takes exactly 1 operand") + } +} + +func __asm_proxy_SETBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETBE(v[0]) + } else { + panic("instruction SETBE takes exactly 1 operand") + } +} + +func __asm_proxy_SETC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETC(v[0]) + } else { + panic("instruction SETC takes exactly 1 operand") + } +} + +func __asm_proxy_SETE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETE(v[0]) + } else { + panic("instruction SETE takes exactly 1 operand") + } +} + +func __asm_proxy_SETG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETG(v[0]) + } else { + panic("instruction SETG takes exactly 1 operand") + } +} + +func __asm_proxy_SETGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETGE(v[0]) + } else { + panic("instruction SETGE takes exactly 1 operand") + } +} + +func __asm_proxy_SETL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETL(v[0]) + } else { + panic("instruction SETL takes exactly 1 operand") + } +} + +func __asm_proxy_SETLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETLE(v[0]) + } else { + panic("instruction SETLE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNA(v[0]) + } else { + panic("instruction SETNA takes exactly 1 operand") + } +} + +func __asm_proxy_SETNAE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNAE(v[0]) + } else { + panic("instruction SETNAE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNB(v[0]) + } else { + panic("instruction SETNB takes exactly 1 operand") + } +} + +func __asm_proxy_SETNBE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNBE(v[0]) + } else { + panic("instruction SETNBE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNC(v[0]) + } else { + panic("instruction SETNC takes exactly 1 operand") + } +} + +func __asm_proxy_SETNE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNE(v[0]) + } else { + panic("instruction SETNE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNG__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNG(v[0]) + } else { + panic("instruction SETNG takes exactly 1 operand") + } +} + +func __asm_proxy_SETNGE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNGE(v[0]) + } else { + panic("instruction SETNGE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNL(v[0]) + } else { + panic("instruction SETNL takes exactly 1 operand") + } +} + +func __asm_proxy_SETNLE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNLE(v[0]) + } else { + panic("instruction SETNLE takes exactly 1 operand") + } +} + +func __asm_proxy_SETNO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNO(v[0]) + } else { + panic("instruction SETNO takes exactly 1 operand") + } +} + +func __asm_proxy_SETNP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNP(v[0]) + } else { + panic("instruction SETNP takes exactly 1 operand") + } +} + +func __asm_proxy_SETNS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNS(v[0]) + } else { + panic("instruction SETNS takes exactly 1 operand") + } +} + +func __asm_proxy_SETNZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETNZ(v[0]) + } else { + panic("instruction SETNZ takes exactly 1 operand") + } +} + +func __asm_proxy_SETO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETO(v[0]) + } else { + panic("instruction SETO takes exactly 1 operand") + } +} + +func __asm_proxy_SETP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETP(v[0]) + } else { + panic("instruction SETP takes exactly 1 operand") + } +} + +func __asm_proxy_SETPE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETPE(v[0]) + } else { + panic("instruction SETPE takes exactly 1 operand") + } +} + +func __asm_proxy_SETPO__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETPO(v[0]) + } else { + panic("instruction SETPO takes exactly 1 operand") + } +} + +func __asm_proxy_SETS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETS(v[0]) + } else { + panic("instruction SETS takes exactly 1 operand") + } +} + +func __asm_proxy_SETZ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.SETZ(v[0]) + } else { + panic("instruction SETZ takes exactly 1 operand") + } +} + +func __asm_proxy_SFENCE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.SFENCE() + } else { + panic("instruction SFENCE takes no operands") + } +} + +func __asm_proxy_SHA1MSG1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA1MSG1(v[0], v[1]) + } else { + panic("instruction SHA1MSG1 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA1MSG2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA1MSG2(v[0], v[1]) + } else { + panic("instruction SHA1MSG2 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA1NEXTE__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA1NEXTE(v[0], v[1]) + } else { + panic("instruction SHA1NEXTE takes exactly 2 operands") + } +} + +func __asm_proxy_SHA1RNDS4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHA1RNDS4(v[0], v[1], v[2]) + } else { + panic("instruction SHA1RNDS4 takes exactly 3 operands") + } +} + +func __asm_proxy_SHA256MSG1__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA256MSG1(v[0], v[1]) + } else { + panic("instruction SHA256MSG1 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA256MSG2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHA256MSG2(v[0], v[1]) + } else { + panic("instruction SHA256MSG2 takes exactly 2 operands") + } +} + +func __asm_proxy_SHA256RNDS2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHA256RNDS2(v[0], v[1], v[2]) + } else { + panic("instruction SHA256RNDS2 takes exactly 3 operands") + } +} + +func __asm_proxy_SHLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLB(v[0], v[1]) + } else { + panic("instruction SHLB takes exactly 2 operands") + } +} + +func __asm_proxy_SHLDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLDL(v[0], v[1], v[2]) + } else { + panic("instruction SHLDL takes exactly 3 operands") + } +} + +func __asm_proxy_SHLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLDQ(v[0], v[1], v[2]) + } else { + panic("instruction SHLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHLDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLDW(v[0], v[1], v[2]) + } else { + panic("instruction SHLDW takes exactly 3 operands") + } +} + +func __asm_proxy_SHLL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLL(v[0], v[1]) + } else { + panic("instruction SHLL takes exactly 2 operands") + } +} + +func __asm_proxy_SHLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLQ(v[0], v[1]) + } else { + panic("instruction SHLQ takes exactly 2 operands") + } +} + +func __asm_proxy_SHLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHLW(v[0], v[1]) + } else { + panic("instruction SHLW takes exactly 2 operands") + } +} + +func __asm_proxy_SHLXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLXL(v[0], v[1], v[2]) + } else { + panic("instruction SHLXL takes exactly 3 operands") + } +} + +func __asm_proxy_SHLXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHLXQ(v[0], v[1], v[2]) + } else { + panic("instruction SHLXQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRB(v[0], v[1]) + } else { + panic("instruction SHRB takes exactly 2 operands") + } +} + +func __asm_proxy_SHRDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRDL(v[0], v[1], v[2]) + } else { + panic("instruction SHRDL takes exactly 3 operands") + } +} + +func __asm_proxy_SHRDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRDQ(v[0], v[1], v[2]) + } else { + panic("instruction SHRDQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHRDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRDW(v[0], v[1], v[2]) + } else { + panic("instruction SHRDW takes exactly 3 operands") + } +} + +func __asm_proxy_SHRL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRL(v[0], v[1]) + } else { + panic("instruction SHRL takes exactly 2 operands") + } +} + +func __asm_proxy_SHRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRQ(v[0], v[1]) + } else { + panic("instruction SHRQ takes exactly 2 operands") + } +} + +func __asm_proxy_SHRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SHRW(v[0], v[1]) + } else { + panic("instruction SHRW takes exactly 2 operands") + } +} + +func __asm_proxy_SHRXL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRXL(v[0], v[1], v[2]) + } else { + panic("instruction SHRXL takes exactly 3 operands") + } +} + +func __asm_proxy_SHRXQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHRXQ(v[0], v[1], v[2]) + } else { + panic("instruction SHRXQ takes exactly 3 operands") + } +} + +func __asm_proxy_SHUFPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHUFPD(v[0], v[1], v[2]) + } else { + panic("instruction SHUFPD takes exactly 3 operands") + } +} + +func __asm_proxy_SHUFPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.SHUFPS(v[0], v[1], v[2]) + } else { + panic("instruction SHUFPS takes exactly 3 operands") + } +} + +func __asm_proxy_SQRTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTPD(v[0], v[1]) + } else { + panic("instruction SQRTPD takes exactly 2 operands") + } +} + +func __asm_proxy_SQRTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTPS(v[0], v[1]) + } else { + panic("instruction SQRTPS takes exactly 2 operands") + } +} + +func __asm_proxy_SQRTSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTSD(v[0], v[1]) + } else { + panic("instruction SQRTSD takes exactly 2 operands") + } +} + +func __asm_proxy_SQRTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SQRTSS(v[0], v[1]) + } else { + panic("instruction SQRTSS takes exactly 2 operands") + } +} + +func __asm_proxy_STC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.STC() + } else { + panic("instruction STC takes no operands") + } +} + +func __asm_proxy_STD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.STD() + } else { + panic("instruction STD takes no operands") + } +} + +func __asm_proxy_STMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.STMXCSR(v[0]) + } else { + panic("instruction STMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_SUBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBB(v[0], v[1]) + } else { + panic("instruction SUBB takes exactly 2 operands") + } +} + +func __asm_proxy_SUBL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBL(v[0], v[1]) + } else { + panic("instruction SUBL takes exactly 2 operands") + } +} + +func __asm_proxy_SUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBPD(v[0], v[1]) + } else { + panic("instruction SUBPD takes exactly 2 operands") + } +} + +func __asm_proxy_SUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBPS(v[0], v[1]) + } else { + panic("instruction SUBPS takes exactly 2 operands") + } +} + +func __asm_proxy_SUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBQ(v[0], v[1]) + } else { + panic("instruction SUBQ takes exactly 2 operands") + } +} + +func __asm_proxy_SUBSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBSD(v[0], v[1]) + } else { + panic("instruction SUBSD takes exactly 2 operands") + } +} + +func __asm_proxy_SUBSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBSS(v[0], v[1]) + } else { + panic("instruction SUBSS takes exactly 2 operands") + } +} + +func __asm_proxy_SUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.SUBW(v[0], v[1]) + } else { + panic("instruction SUBW takes exactly 2 operands") + } +} + +func __asm_proxy_SYSCALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.SYSCALL() + } else { + panic("instruction SYSCALL takes no operands") + } +} + +func __asm_proxy_T1MSKC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.T1MSKC(v[0], v[1]) + } else { + panic("instruction T1MSKC takes exactly 2 operands") + } +} + +func __asm_proxy_TESTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTB(v[0], v[1]) + } else { + panic("instruction TESTB takes exactly 2 operands") + } +} + +func __asm_proxy_TESTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTL(v[0], v[1]) + } else { + panic("instruction TESTL takes exactly 2 operands") + } +} + +func __asm_proxy_TESTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTQ(v[0], v[1]) + } else { + panic("instruction TESTQ takes exactly 2 operands") + } +} + +func __asm_proxy_TESTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TESTW(v[0], v[1]) + } else { + panic("instruction TESTW takes exactly 2 operands") + } +} + +func __asm_proxy_TZCNTL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZCNTL(v[0], v[1]) + } else { + panic("instruction TZCNTL takes exactly 2 operands") + } +} + +func __asm_proxy_TZCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZCNTQ(v[0], v[1]) + } else { + panic("instruction TZCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_TZCNTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZCNTW(v[0], v[1]) + } else { + panic("instruction TZCNTW takes exactly 2 operands") + } +} + +func __asm_proxy_TZMSK__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.TZMSK(v[0], v[1]) + } else { + panic("instruction TZMSK takes exactly 2 operands") + } +} + +func __asm_proxy_UCOMISD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UCOMISD(v[0], v[1]) + } else { + panic("instruction UCOMISD takes exactly 2 operands") + } +} + +func __asm_proxy_UCOMISS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UCOMISS(v[0], v[1]) + } else { + panic("instruction UCOMISS takes exactly 2 operands") + } +} + +func __asm_proxy_UD2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.UD2() + } else { + panic("instruction UD2 takes no operands") + } +} + +func __asm_proxy_UNPCKHPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKHPD(v[0], v[1]) + } else { + panic("instruction UNPCKHPD takes exactly 2 operands") + } +} + +func __asm_proxy_UNPCKHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKHPS(v[0], v[1]) + } else { + panic("instruction UNPCKHPS takes exactly 2 operands") + } +} + +func __asm_proxy_UNPCKLPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKLPD(v[0], v[1]) + } else { + panic("instruction UNPCKLPD takes exactly 2 operands") + } +} + +func __asm_proxy_UNPCKLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.UNPCKLPS(v[0], v[1]) + } else { + panic("instruction UNPCKLPS takes exactly 2 operands") + } +} + +func __asm_proxy_VADDPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDPD(v[0], v[1], v[2]) + case 4 : return p.VADDPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDPS(v[0], v[1], v[2]) + case 4 : return p.VADDPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDSD(v[0], v[1], v[2]) + case 4 : return p.VADDSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VADDSS(v[0], v[1], v[2]) + case 4 : return p.VADDSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VADDSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VADDSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VADDSUBPD(v[0], v[1], v[2]) + } else { + panic("instruction VADDSUBPD takes exactly 3 operands") + } +} + +func __asm_proxy_VADDSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VADDSUBPS(v[0], v[1], v[2]) + } else { + panic("instruction VADDSUBPS takes exactly 3 operands") + } +} + +func __asm_proxy_VAESDEC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESDEC(v[0], v[1], v[2]) + } else { + panic("instruction VAESDEC takes exactly 3 operands") + } +} + +func __asm_proxy_VAESDECLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESDECLAST(v[0], v[1], v[2]) + } else { + panic("instruction VAESDECLAST takes exactly 3 operands") + } +} + +func __asm_proxy_VAESENC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESENC(v[0], v[1], v[2]) + } else { + panic("instruction VAESENC takes exactly 3 operands") + } +} + +func __asm_proxy_VAESENCLAST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESENCLAST(v[0], v[1], v[2]) + } else { + panic("instruction VAESENCLAST takes exactly 3 operands") + } +} + +func __asm_proxy_VAESIMC__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VAESIMC(v[0], v[1]) + } else { + panic("instruction VAESIMC takes exactly 2 operands") + } +} + +func __asm_proxy_VAESKEYGENASSIST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VAESKEYGENASSIST(v[0], v[1], v[2]) + } else { + panic("instruction VAESKEYGENASSIST takes exactly 3 operands") + } +} + +func __asm_proxy_VALIGND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VALIGND(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VALIGND takes exactly 4 operands") + } +} + +func __asm_proxy_VALIGNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VALIGNQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VALIGNQ takes exactly 4 operands") + } +} + +func __asm_proxy_VANDNPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDNPD(v[0], v[1], v[2]) + } else { + panic("instruction VANDNPD takes exactly 3 operands") + } +} + +func __asm_proxy_VANDNPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDNPS(v[0], v[1], v[2]) + } else { + panic("instruction VANDNPS takes exactly 3 operands") + } +} + +func __asm_proxy_VANDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDPD(v[0], v[1], v[2]) + } else { + panic("instruction VANDPD takes exactly 3 operands") + } +} + +func __asm_proxy_VANDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VANDPS(v[0], v[1], v[2]) + } else { + panic("instruction VANDPS takes exactly 3 operands") + } +} + +func __asm_proxy_VBLENDMPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VBLENDMPD(v[0], v[1], v[2]) + } else { + panic("instruction VBLENDMPD takes exactly 3 operands") + } +} + +func __asm_proxy_VBLENDMPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VBLENDMPS(v[0], v[1], v[2]) + } else { + panic("instruction VBLENDMPS takes exactly 3 operands") + } +} + +func __asm_proxy_VBLENDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VBLENDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VBLENDVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDVPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDVPD takes exactly 4 operands") + } +} + +func __asm_proxy_VBLENDVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VBLENDVPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VBLENDVPS takes exactly 4 operands") + } +} + +func __asm_proxy_VBROADCASTF128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF128(v[0], v[1]) + } else { + panic("instruction VBROADCASTF128 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF32X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF32X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTF32X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF32X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTF32X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF32X8(v[0], v[1]) + } else { + panic("instruction VBROADCASTF32X8 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF64X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTF64X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTF64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTF64X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTF64X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI128(v[0], v[1]) + } else { + panic("instruction VBROADCASTI128 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI32X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI32X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTI32X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI32X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTI32X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI32X8(v[0], v[1]) + } else { + panic("instruction VBROADCASTI32X8 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI64X2(v[0], v[1]) + } else { + panic("instruction VBROADCASTI64X2 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTI64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTI64X4(v[0], v[1]) + } else { + panic("instruction VBROADCASTI64X4 takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTSD(v[0], v[1]) + } else { + panic("instruction VBROADCASTSD takes exactly 2 operands") + } +} + +func __asm_proxy_VBROADCASTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VBROADCASTSS(v[0], v[1]) + } else { + panic("instruction VBROADCASTSS takes exactly 2 operands") + } +} + +func __asm_proxy_VCMPPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPPD(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPPD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPPD takes 4 or 5 operands") + } +} + +func __asm_proxy_VCMPPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPPS(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPPS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPPS takes 4 or 5 operands") + } +} + +func __asm_proxy_VCMPSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPSD(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPSD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPSD takes 4 or 5 operands") + } +} + +func __asm_proxy_VCMPSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VCMPSS(v[0], v[1], v[2], v[3]) + case 5 : return p.VCMPSS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VCMPSS takes 4 or 5 operands") + } +} + +func __asm_proxy_VCOMISD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCOMISD(v[0], v[1]) + case 3 : return p.VCOMISD(v[0], v[1], v[2]) + default : panic("instruction VCOMISD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCOMISS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCOMISS(v[0], v[1]) + case 3 : return p.VCOMISS(v[0], v[1], v[2]) + default : panic("instruction VCOMISS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCOMPRESSPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCOMPRESSPD(v[0], v[1]) + } else { + panic("instruction VCOMPRESSPD takes exactly 2 operands") + } +} + +func __asm_proxy_VCOMPRESSPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCOMPRESSPS(v[0], v[1]) + } else { + panic("instruction VCOMPRESSPS takes exactly 2 operands") + } +} + +func __asm_proxy_VCVTDQ2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCVTDQ2PD(v[0], v[1]) + } else { + panic("instruction VCVTDQ2PD takes exactly 2 operands") + } +} + +func __asm_proxy_VCVTDQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTDQ2PS(v[0], v[1]) + case 3 : return p.VCVTDQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTDQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2DQ(v[0], v[1]) + case 3 : return p.VCVTPD2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2PS(v[0], v[1]) + case 3 : return p.VCVTPD2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2QQ(v[0], v[1]) + case 3 : return p.VCVTPD2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2UDQ(v[0], v[1]) + case 3 : return p.VCVTPD2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPD2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPD2UQQ(v[0], v[1]) + case 3 : return p.VCVTPD2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPD2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPH2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPH2PS(v[0], v[1]) + case 3 : return p.VCVTPH2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTPH2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2DQ(v[0], v[1]) + case 3 : return p.VCVTPS2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2PD(v[0], v[1]) + case 3 : return p.VCVTPS2PD(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2PH__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTPS2PH(v[0], v[1], v[2]) + case 4 : return p.VCVTPS2PH(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTPS2PH takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTPS2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2QQ(v[0], v[1]) + case 3 : return p.VCVTPS2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2UDQ(v[0], v[1]) + case 3 : return p.VCVTPS2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTPS2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTPS2UQQ(v[0], v[1]) + case 3 : return p.VCVTPS2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTPS2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTQQ2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTQQ2PD(v[0], v[1]) + case 3 : return p.VCVTQQ2PD(v[0], v[1], v[2]) + default : panic("instruction VCVTQQ2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTQQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTQQ2PS(v[0], v[1]) + case 3 : return p.VCVTQQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTQQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSD2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSD2SI(v[0], v[1]) + case 3 : return p.VCVTSD2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTSD2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSD2SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSD2SS(v[0], v[1], v[2]) + case 4 : return p.VCVTSD2SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSD2SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSD2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSD2USI(v[0], v[1]) + case 3 : return p.VCVTSD2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTSD2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSI2SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSI2SD(v[0], v[1], v[2]) + case 4 : return p.VCVTSI2SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSI2SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSI2SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSI2SS(v[0], v[1], v[2]) + case 4 : return p.VCVTSI2SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSI2SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSS2SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTSS2SD(v[0], v[1], v[2]) + case 4 : return p.VCVTSS2SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTSS2SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTSS2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSS2SI(v[0], v[1]) + case 3 : return p.VCVTSS2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTSS2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTSS2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTSS2USI(v[0], v[1]) + case 3 : return p.VCVTSS2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTSS2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2DQ(v[0], v[1]) + case 3 : return p.VCVTTPD2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2QQ(v[0], v[1]) + case 3 : return p.VCVTTPD2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2UDQ(v[0], v[1]) + case 3 : return p.VCVTTPD2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPD2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPD2UQQ(v[0], v[1]) + case 3 : return p.VCVTTPD2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPD2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2DQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2DQ(v[0], v[1]) + case 3 : return p.VCVTTPS2DQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2DQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2QQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2QQ(v[0], v[1]) + case 3 : return p.VCVTTPS2QQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2QQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2UDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2UDQ(v[0], v[1]) + case 3 : return p.VCVTTPS2UDQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2UDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTPS2UQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTPS2UQQ(v[0], v[1]) + case 3 : return p.VCVTTPS2UQQ(v[0], v[1], v[2]) + default : panic("instruction VCVTTPS2UQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSD2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSD2SI(v[0], v[1]) + case 3 : return p.VCVTTSD2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSD2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSD2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSD2USI(v[0], v[1]) + case 3 : return p.VCVTTSD2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSD2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSS2SI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSS2SI(v[0], v[1]) + case 3 : return p.VCVTTSS2SI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSS2SI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTTSS2USI__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTTSS2USI(v[0], v[1]) + case 3 : return p.VCVTTSS2USI(v[0], v[1], v[2]) + default : panic("instruction VCVTTSS2USI takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUDQ2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VCVTUDQ2PD(v[0], v[1]) + } else { + panic("instruction VCVTUDQ2PD takes exactly 2 operands") + } +} + +func __asm_proxy_VCVTUDQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTUDQ2PS(v[0], v[1]) + case 3 : return p.VCVTUDQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTUDQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUQQ2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTUQQ2PD(v[0], v[1]) + case 3 : return p.VCVTUQQ2PD(v[0], v[1], v[2]) + default : panic("instruction VCVTUQQ2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUQQ2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VCVTUQQ2PS(v[0], v[1]) + case 3 : return p.VCVTUQQ2PS(v[0], v[1], v[2]) + default : panic("instruction VCVTUQQ2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VCVTUSI2SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTUSI2SD(v[0], v[1], v[2]) + case 4 : return p.VCVTUSI2SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTUSI2SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VCVTUSI2SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VCVTUSI2SS(v[0], v[1], v[2]) + case 4 : return p.VCVTUSI2SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VCVTUSI2SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VDBPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VDBPSADBW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VDBPSADBW takes exactly 4 operands") + } +} + +func __asm_proxy_VDIVPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVPD(v[0], v[1], v[2]) + case 4 : return p.VDIVPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VDIVPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVPS(v[0], v[1], v[2]) + case 4 : return p.VDIVPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VDIVSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVSD(v[0], v[1], v[2]) + case 4 : return p.VDIVSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VDIVSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VDIVSS(v[0], v[1], v[2]) + case 4 : return p.VDIVSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VDIVSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VDPPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VDPPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VDPPD takes exactly 4 operands") + } +} + +func __asm_proxy_VDPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VDPPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VDPPS takes exactly 4 operands") + } +} + +func __asm_proxy_VEXP2PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VEXP2PD(v[0], v[1]) + case 3 : return p.VEXP2PD(v[0], v[1], v[2]) + default : panic("instruction VEXP2PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VEXP2PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VEXP2PS(v[0], v[1]) + case 3 : return p.VEXP2PS(v[0], v[1], v[2]) + default : panic("instruction VEXP2PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VEXPANDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VEXPANDPD(v[0], v[1]) + } else { + panic("instruction VEXPANDPD takes exactly 2 operands") + } +} + +func __asm_proxy_VEXPANDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VEXPANDPS(v[0], v[1]) + } else { + panic("instruction VEXPANDPS takes exactly 2 operands") + } +} + +func __asm_proxy_VEXTRACTF128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF128(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF128 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF32X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF32X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF32X8(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF32X8 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF64X2(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF64X2 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTF64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTF64X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTF64X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI128(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI128 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI32X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI32X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI32X8(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI32X8 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI64X2(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI64X2 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTI64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTI64X4(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTI64X4 takes exactly 3 operands") + } +} + +func __asm_proxy_VEXTRACTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VEXTRACTPS(v[0], v[1], v[2]) + } else { + panic("instruction VEXTRACTPS takes exactly 3 operands") + } +} + +func __asm_proxy_VFIXUPIMMPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMPD(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMPD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMPD takes 4 or 5 operands") + } +} + +func __asm_proxy_VFIXUPIMMPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMPS(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMPS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMPS takes 4 or 5 operands") + } +} + +func __asm_proxy_VFIXUPIMMSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMSD(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMSD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMSD takes 4 or 5 operands") + } +} + +func __asm_proxy_VFIXUPIMMSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VFIXUPIMMSS(v[0], v[1], v[2], v[3]) + case 5 : return p.VFIXUPIMMSS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VFIXUPIMMSS takes 4 or 5 operands") + } +} + +func __asm_proxy_VFMADD132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132PD(v[0], v[1], v[2]) + case 4 : return p.VFMADD132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132PS(v[0], v[1], v[2]) + case 4 : return p.VFMADD132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132SD(v[0], v[1], v[2]) + case 4 : return p.VFMADD132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD132SS(v[0], v[1], v[2]) + case 4 : return p.VFMADD132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213PD(v[0], v[1], v[2]) + case 4 : return p.VFMADD213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213PS(v[0], v[1], v[2]) + case 4 : return p.VFMADD213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213SD(v[0], v[1], v[2]) + case 4 : return p.VFMADD213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD213SS(v[0], v[1], v[2]) + case 4 : return p.VFMADD213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231PD(v[0], v[1], v[2]) + case 4 : return p.VFMADD231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231PS(v[0], v[1], v[2]) + case 4 : return p.VFMADD231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231SD(v[0], v[1], v[2]) + case 4 : return p.VFMADD231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADD231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADD231SS(v[0], v[1], v[2]) + case 4 : return p.VFMADD231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADD231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSUB132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB132PD(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB132PS(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB213PD(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB213PS(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB231PD(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUB231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMADDSUB231PS(v[0], v[1], v[2]) + case 4 : return p.VFMADDSUB231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMADDSUB231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMADDSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSUBPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSUBPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMADDSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMADDSUBPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMADDSUBPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUB132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132SD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB132SS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213SD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB213SS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231SD(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUB231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUB231SS(v[0], v[1], v[2]) + case 4 : return p.VFMSUB231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUB231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD132PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD132PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD213PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD213PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD231PD(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADD231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFMSUBADD231PS(v[0], v[1], v[2]) + case 4 : return p.VFMSUBADD231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFMSUBADD231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFMSUBADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBADDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBADDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBADDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBADDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFMSUBSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFMSUBSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFMSUBSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADD132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132PD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132PS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132SD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD132SS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213PD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213PS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213SD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD213SS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231PD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231PS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231SD(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADD231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMADD231SS(v[0], v[1], v[2]) + case 4 : return p.VFNMADD231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMADD231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMADDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMADDSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMADDSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUB132PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132PD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB132PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132PS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB132SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132SD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB132SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB132SS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB132SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB132SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213PD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213PS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213SD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB213SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB213SS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB213SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB213SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231PD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231PD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231PD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231PS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231PS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231PS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231SD(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUB231SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VFNMSUB231SS(v[0], v[1], v[2]) + case 4 : return p.VFNMSUB231SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VFNMSUB231SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VFNMSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBPD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBPS takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUBSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBSD takes exactly 4 operands") + } +} + +func __asm_proxy_VFNMSUBSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VFNMSUBSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VFNMSUBSS takes exactly 4 operands") + } +} + +func __asm_proxy_VFPCLASSPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSPD(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSPD takes exactly 3 operands") + } +} + +func __asm_proxy_VFPCLASSPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSPS(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSPS takes exactly 3 operands") + } +} + +func __asm_proxy_VFPCLASSSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSSD(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSSD takes exactly 3 operands") + } +} + +func __asm_proxy_VFPCLASSSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VFPCLASSSS(v[0], v[1], v[2]) + } else { + panic("instruction VFPCLASSSS takes exactly 3 operands") + } +} + +func __asm_proxy_VFRCZPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZPD(v[0], v[1]) + } else { + panic("instruction VFRCZPD takes exactly 2 operands") + } +} + +func __asm_proxy_VFRCZPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZPS(v[0], v[1]) + } else { + panic("instruction VFRCZPS takes exactly 2 operands") + } +} + +func __asm_proxy_VFRCZSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZSD(v[0], v[1]) + } else { + panic("instruction VFRCZSD takes exactly 2 operands") + } +} + +func __asm_proxy_VFRCZSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VFRCZSS(v[0], v[1]) + } else { + panic("instruction VFRCZSS takes exactly 2 operands") + } +} + +func __asm_proxy_VGATHERDPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERDPD(v[0], v[1]) + case 3 : return p.VGATHERDPD(v[0], v[1], v[2]) + default : panic("instruction VGATHERDPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VGATHERDPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERDPS(v[0], v[1]) + case 3 : return p.VGATHERDPS(v[0], v[1], v[2]) + default : panic("instruction VGATHERDPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VGATHERPF0DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0DPD(v[0]) + } else { + panic("instruction VGATHERPF0DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF0DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0DPS(v[0]) + } else { + panic("instruction VGATHERPF0DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF0QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0QPD(v[0]) + } else { + panic("instruction VGATHERPF0QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF0QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF0QPS(v[0]) + } else { + panic("instruction VGATHERPF0QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1DPD(v[0]) + } else { + panic("instruction VGATHERPF1DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1DPS(v[0]) + } else { + panic("instruction VGATHERPF1DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1QPD(v[0]) + } else { + panic("instruction VGATHERPF1QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERPF1QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VGATHERPF1QPS(v[0]) + } else { + panic("instruction VGATHERPF1QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VGATHERQPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERQPD(v[0], v[1]) + case 3 : return p.VGATHERQPD(v[0], v[1], v[2]) + default : panic("instruction VGATHERQPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VGATHERQPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGATHERQPS(v[0], v[1]) + case 3 : return p.VGATHERQPS(v[0], v[1], v[2]) + default : panic("instruction VGATHERQPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VGETEXPPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGETEXPPD(v[0], v[1]) + case 3 : return p.VGETEXPPD(v[0], v[1], v[2]) + default : panic("instruction VGETEXPPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VGETEXPPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VGETEXPPS(v[0], v[1]) + case 3 : return p.VGETEXPPS(v[0], v[1], v[2]) + default : panic("instruction VGETEXPPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VGETEXPSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETEXPSD(v[0], v[1], v[2]) + case 4 : return p.VGETEXPSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETEXPSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETEXPSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETEXPSS(v[0], v[1], v[2]) + case 4 : return p.VGETEXPSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETEXPSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETMANTPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETMANTPD(v[0], v[1], v[2]) + case 4 : return p.VGETMANTPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETMANTPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETMANTPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VGETMANTPS(v[0], v[1], v[2]) + case 4 : return p.VGETMANTPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VGETMANTPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VGETMANTSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VGETMANTSD(v[0], v[1], v[2], v[3]) + case 5 : return p.VGETMANTSD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VGETMANTSD takes 4 or 5 operands") + } +} + +func __asm_proxy_VGETMANTSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VGETMANTSS(v[0], v[1], v[2], v[3]) + case 5 : return p.VGETMANTSS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VGETMANTSS takes 4 or 5 operands") + } +} + +func __asm_proxy_VHADDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHADDPD(v[0], v[1], v[2]) + } else { + panic("instruction VHADDPD takes exactly 3 operands") + } +} + +func __asm_proxy_VHADDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHADDPS(v[0], v[1], v[2]) + } else { + panic("instruction VHADDPS takes exactly 3 operands") + } +} + +func __asm_proxy_VHSUBPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHSUBPD(v[0], v[1], v[2]) + } else { + panic("instruction VHSUBPD takes exactly 3 operands") + } +} + +func __asm_proxy_VHSUBPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VHSUBPS(v[0], v[1], v[2]) + } else { + panic("instruction VHSUBPS takes exactly 3 operands") + } +} + +func __asm_proxy_VINSERTF128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF128 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF32X8(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF32X8 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTF64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTF64X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTF64X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI128 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI32X8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI32X8(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI32X8 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTI64X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTI64X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTI64X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VINSERTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VINSERTPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VINSERTPS takes exactly 4 operands") + } +} + +func __asm_proxy_VLDDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VLDDQU(v[0], v[1]) + } else { + panic("instruction VLDDQU takes exactly 2 operands") + } +} + +func __asm_proxy_VLDMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VLDMXCSR(v[0]) + } else { + panic("instruction VLDMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_VMASKMOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMASKMOVDQU(v[0], v[1]) + } else { + panic("instruction VMASKMOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_VMASKMOVPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMASKMOVPD(v[0], v[1], v[2]) + } else { + panic("instruction VMASKMOVPD takes exactly 3 operands") + } +} + +func __asm_proxy_VMASKMOVPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMASKMOVPS(v[0], v[1], v[2]) + } else { + panic("instruction VMASKMOVPS takes exactly 3 operands") + } +} + +func __asm_proxy_VMAXPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXPD(v[0], v[1], v[2]) + case 4 : return p.VMAXPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMAXPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXPS(v[0], v[1], v[2]) + case 4 : return p.VMAXPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMAXSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXSD(v[0], v[1], v[2]) + case 4 : return p.VMAXSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMAXSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMAXSS(v[0], v[1], v[2]) + case 4 : return p.VMAXSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMAXSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINPD(v[0], v[1], v[2]) + case 4 : return p.VMINPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINPS(v[0], v[1], v[2]) + case 4 : return p.VMINPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINSD(v[0], v[1], v[2]) + case 4 : return p.VMINSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMINSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMINSS(v[0], v[1], v[2]) + case 4 : return p.VMINSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMINSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMOVAPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVAPD(v[0], v[1]) + } else { + panic("instruction VMOVAPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVAPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVAPS(v[0], v[1]) + } else { + panic("instruction VMOVAPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVD(v[0], v[1]) + } else { + panic("instruction VMOVD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDDUP(v[0], v[1]) + } else { + panic("instruction VMOVDDUP takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQA(v[0], v[1]) + } else { + panic("instruction VMOVDQA takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQA32__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQA32(v[0], v[1]) + } else { + panic("instruction VMOVDQA32 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQA64__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQA64(v[0], v[1]) + } else { + panic("instruction VMOVDQA64 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU(v[0], v[1]) + } else { + panic("instruction VMOVDQU takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU16__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU16(v[0], v[1]) + } else { + panic("instruction VMOVDQU16 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU32__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU32(v[0], v[1]) + } else { + panic("instruction VMOVDQU32 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU64__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU64(v[0], v[1]) + } else { + panic("instruction VMOVDQU64 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVDQU8__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVDQU8(v[0], v[1]) + } else { + panic("instruction VMOVDQU8 takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVHLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMOVHLPS(v[0], v[1], v[2]) + } else { + panic("instruction VMOVHLPS takes exactly 3 operands") + } +} + +func __asm_proxy_VMOVHPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVHPD(v[0], v[1]) + case 3 : return p.VMOVHPD(v[0], v[1], v[2]) + default : panic("instruction VMOVHPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVHPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVHPS(v[0], v[1]) + case 3 : return p.VMOVHPS(v[0], v[1], v[2]) + default : panic("instruction VMOVHPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVLHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VMOVLHPS(v[0], v[1], v[2]) + } else { + panic("instruction VMOVLHPS takes exactly 3 operands") + } +} + +func __asm_proxy_VMOVLPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVLPD(v[0], v[1]) + case 3 : return p.VMOVLPD(v[0], v[1], v[2]) + default : panic("instruction VMOVLPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVLPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVLPS(v[0], v[1]) + case 3 : return p.VMOVLPS(v[0], v[1], v[2]) + default : panic("instruction VMOVLPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVMSKPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVMSKPD(v[0], v[1]) + } else { + panic("instruction VMOVMSKPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVMSKPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVMSKPS(v[0], v[1]) + } else { + panic("instruction VMOVMSKPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTDQ(v[0], v[1]) + } else { + panic("instruction VMOVNTDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTDQA__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTDQA(v[0], v[1]) + } else { + panic("instruction VMOVNTDQA takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTPD(v[0], v[1]) + } else { + panic("instruction VMOVNTPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVNTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVNTPS(v[0], v[1]) + } else { + panic("instruction VMOVNTPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVQ(v[0], v[1]) + } else { + panic("instruction VMOVQ takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVSD(v[0], v[1]) + case 3 : return p.VMOVSD(v[0], v[1], v[2]) + default : panic("instruction VMOVSD takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVSHDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVSHDUP(v[0], v[1]) + } else { + panic("instruction VMOVSHDUP takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVSLDUP__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVSLDUP(v[0], v[1]) + } else { + panic("instruction VMOVSLDUP takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VMOVSS(v[0], v[1]) + case 3 : return p.VMOVSS(v[0], v[1], v[2]) + default : panic("instruction VMOVSS takes 2 or 3 operands") + } +} + +func __asm_proxy_VMOVUPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVUPD(v[0], v[1]) + } else { + panic("instruction VMOVUPD takes exactly 2 operands") + } +} + +func __asm_proxy_VMOVUPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VMOVUPS(v[0], v[1]) + } else { + panic("instruction VMOVUPS takes exactly 2 operands") + } +} + +func __asm_proxy_VMPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VMPSADBW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VMPSADBW takes exactly 4 operands") + } +} + +func __asm_proxy_VMULPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULPD(v[0], v[1], v[2]) + case 4 : return p.VMULPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMULPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULPS(v[0], v[1], v[2]) + case 4 : return p.VMULPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VMULSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULSD(v[0], v[1], v[2]) + case 4 : return p.VMULSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VMULSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VMULSS(v[0], v[1], v[2]) + case 4 : return p.VMULSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VMULSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VORPD(v[0], v[1], v[2]) + } else { + panic("instruction VORPD takes exactly 3 operands") + } +} + +func __asm_proxy_VORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VORPS(v[0], v[1], v[2]) + } else { + panic("instruction VORPS takes exactly 3 operands") + } +} + +func __asm_proxy_VPABSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSB(v[0], v[1]) + } else { + panic("instruction VPABSB takes exactly 2 operands") + } +} + +func __asm_proxy_VPABSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSD(v[0], v[1]) + } else { + panic("instruction VPABSD takes exactly 2 operands") + } +} + +func __asm_proxy_VPABSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSQ(v[0], v[1]) + } else { + panic("instruction VPABSQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPABSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPABSW(v[0], v[1]) + } else { + panic("instruction VPABSW takes exactly 2 operands") + } +} + +func __asm_proxy_VPACKSSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKSSDW(v[0], v[1], v[2]) + } else { + panic("instruction VPACKSSDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPACKSSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKSSWB(v[0], v[1], v[2]) + } else { + panic("instruction VPACKSSWB takes exactly 3 operands") + } +} + +func __asm_proxy_VPACKUSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKUSDW(v[0], v[1], v[2]) + } else { + panic("instruction VPACKUSDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPACKUSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPACKUSWB(v[0], v[1], v[2]) + } else { + panic("instruction VPACKUSWB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDB(v[0], v[1], v[2]) + } else { + panic("instruction VPADDB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDD(v[0], v[1], v[2]) + } else { + panic("instruction VPADDD takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPADDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDSB(v[0], v[1], v[2]) + } else { + panic("instruction VPADDSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDSW(v[0], v[1], v[2]) + } else { + panic("instruction VPADDSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDUSB(v[0], v[1], v[2]) + } else { + panic("instruction VPADDUSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDUSW(v[0], v[1], v[2]) + } else { + panic("instruction VPADDUSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPADDW(v[0], v[1], v[2]) + } else { + panic("instruction VPADDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPALIGNR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPALIGNR(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPALIGNR takes exactly 4 operands") + } +} + +func __asm_proxy_VPAND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPAND(v[0], v[1], v[2]) + } else { + panic("instruction VPAND takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDD(v[0], v[1], v[2]) + } else { + panic("instruction VPANDD takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDN__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDN(v[0], v[1], v[2]) + } else { + panic("instruction VPANDN takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDND(v[0], v[1], v[2]) + } else { + panic("instruction VPANDND takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDNQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDNQ(v[0], v[1], v[2]) + } else { + panic("instruction VPANDNQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPANDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPANDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPAVGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPAVGB(v[0], v[1], v[2]) + } else { + panic("instruction VPAVGB takes exactly 3 operands") + } +} + +func __asm_proxy_VPAVGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPAVGW(v[0], v[1], v[2]) + } else { + panic("instruction VPAVGW takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPBLENDD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPBLENDD takes exactly 4 operands") + } +} + +func __asm_proxy_VPBLENDMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMB(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMD(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPBLENDMW(v[0], v[1], v[2]) + } else { + panic("instruction VPBLENDMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPBLENDVB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPBLENDVB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPBLENDVB takes exactly 4 operands") + } +} + +func __asm_proxy_VPBLENDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPBLENDW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPBLENDW takes exactly 4 operands") + } +} + +func __asm_proxy_VPBROADCASTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTB(v[0], v[1]) + } else { + panic("instruction VPBROADCASTB takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTD(v[0], v[1]) + } else { + panic("instruction VPBROADCASTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTMB2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTMB2Q(v[0], v[1]) + } else { + panic("instruction VPBROADCASTMB2Q takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTMW2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTMW2D(v[0], v[1]) + } else { + panic("instruction VPBROADCASTMW2D takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTQ(v[0], v[1]) + } else { + panic("instruction VPBROADCASTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPBROADCASTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPBROADCASTW(v[0], v[1]) + } else { + panic("instruction VPBROADCASTW takes exactly 2 operands") + } +} + +func __asm_proxy_VPCLMULQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCLMULQDQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCLMULQDQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMOV__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMOV(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMOV takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPEQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQB(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQB takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPEQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQD(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQD takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPEQQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQQ(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPEQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPEQW(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPEQW takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPESTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPESTRI(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPESTRI takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPESTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPESTRM(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPESTRM takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTB(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTB takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTD(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTD takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTQ(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPGTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPGTW(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPGTW takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPISTRI__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPISTRI(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPISTRI takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPISTRM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPCMPISTRM(v[0], v[1], v[2]) + } else { + panic("instruction VPCMPISTRM takes exactly 3 operands") + } +} + +func __asm_proxy_VPCMPQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPUW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPUW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCMPW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCMPW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCMPW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMPRESSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCOMPRESSD(v[0], v[1]) + } else { + panic("instruction VPCOMPRESSD takes exactly 2 operands") + } +} + +func __asm_proxy_VPCOMPRESSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCOMPRESSQ(v[0], v[1]) + } else { + panic("instruction VPCOMPRESSQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPCOMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUB takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUD takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMUW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMUW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCOMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPCOMW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPCOMW takes exactly 4 operands") + } +} + +func __asm_proxy_VPCONFLICTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCONFLICTD(v[0], v[1]) + } else { + panic("instruction VPCONFLICTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPCONFLICTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPCONFLICTQ(v[0], v[1]) + } else { + panic("instruction VPCONFLICTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPERM2F128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPERM2F128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPERM2F128 takes exactly 4 operands") + } +} + +func __asm_proxy_VPERM2I128__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPERM2I128(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPERM2I128 takes exactly 4 operands") + } +} + +func __asm_proxy_VPERMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMB(v[0], v[1], v[2]) + } else { + panic("instruction VPERMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2B(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2B takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2D(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2D takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2PD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2PD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2PS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2PS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2Q(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2Q takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMI2W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMI2W(v[0], v[1], v[2]) + } else { + panic("instruction VPERMI2W takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMIL2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 5 { + return p.VPERMIL2PD(v[0], v[1], v[2], v[3], v[4]) + } else { + panic("instruction VPERMIL2PD takes exactly 5 operands") + } +} + +func __asm_proxy_VPERMIL2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 5 { + return p.VPERMIL2PS(v[0], v[1], v[2], v[3], v[4]) + } else { + panic("instruction VPERMIL2PS takes exactly 5 operands") + } +} + +func __asm_proxy_VPERMILPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMILPD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMILPD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMILPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMILPS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMILPS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMPD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMPD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMPS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMPS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPERMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2B(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2B takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2D(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2D takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2PD(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2PD takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2PS(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2PS takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2Q(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2Q takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMT2W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMT2W(v[0], v[1], v[2]) + } else { + panic("instruction VPERMT2W takes exactly 3 operands") + } +} + +func __asm_proxy_VPERMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPERMW(v[0], v[1], v[2]) + } else { + panic("instruction VPERMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXPANDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPEXPANDD(v[0], v[1]) + } else { + panic("instruction VPEXPANDD takes exactly 2 operands") + } +} + +func __asm_proxy_VPEXPANDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPEXPANDQ(v[0], v[1]) + } else { + panic("instruction VPEXPANDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPEXTRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRB(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRB takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXTRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRD(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRD takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXTRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRQ(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPEXTRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPEXTRW(v[0], v[1], v[2]) + } else { + panic("instruction VPEXTRW takes exactly 3 operands") + } +} + +func __asm_proxy_VPGATHERDD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERDD(v[0], v[1]) + case 3 : return p.VPGATHERDD(v[0], v[1], v[2]) + default : panic("instruction VPGATHERDD takes 2 or 3 operands") + } +} + +func __asm_proxy_VPGATHERDQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERDQ(v[0], v[1]) + case 3 : return p.VPGATHERDQ(v[0], v[1], v[2]) + default : panic("instruction VPGATHERDQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VPGATHERQD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERQD(v[0], v[1]) + case 3 : return p.VPGATHERQD(v[0], v[1], v[2]) + default : panic("instruction VPGATHERQD takes 2 or 3 operands") + } +} + +func __asm_proxy_VPGATHERQQ__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VPGATHERQQ(v[0], v[1]) + case 3 : return p.VPGATHERQQ(v[0], v[1], v[2]) + default : panic("instruction VPGATHERQQ takes 2 or 3 operands") + } +} + +func __asm_proxy_VPHADDBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDBD(v[0], v[1]) + } else { + panic("instruction VPHADDBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDBQ(v[0], v[1]) + } else { + panic("instruction VPHADDBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDBW(v[0], v[1]) + } else { + panic("instruction VPHADDBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHADDD(v[0], v[1], v[2]) + } else { + panic("instruction VPHADDD takes exactly 3 operands") + } +} + +func __asm_proxy_VPHADDDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDDQ(v[0], v[1]) + } else { + panic("instruction VPHADDDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHADDSW(v[0], v[1], v[2]) + } else { + panic("instruction VPHADDSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHADDUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUBD(v[0], v[1]) + } else { + panic("instruction VPHADDUBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUBQ(v[0], v[1]) + } else { + panic("instruction VPHADDUBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUBW(v[0], v[1]) + } else { + panic("instruction VPHADDUBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUDQ(v[0], v[1]) + } else { + panic("instruction VPHADDUDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUWD(v[0], v[1]) + } else { + panic("instruction VPHADDUWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDUWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDUWQ(v[0], v[1]) + } else { + panic("instruction VPHADDUWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHADDW(v[0], v[1], v[2]) + } else { + panic("instruction VPHADDW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHADDWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDWD(v[0], v[1]) + } else { + panic("instruction VPHADDWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPHADDWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHADDWQ(v[0], v[1]) + } else { + panic("instruction VPHADDWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHMINPOSUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHMINPOSUW(v[0], v[1]) + } else { + panic("instruction VPHMINPOSUW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHSUBBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHSUBBW(v[0], v[1]) + } else { + panic("instruction VPHSUBBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPHSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHSUBD(v[0], v[1], v[2]) + } else { + panic("instruction VPHSUBD takes exactly 3 operands") + } +} + +func __asm_proxy_VPHSUBDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHSUBDQ(v[0], v[1]) + } else { + panic("instruction VPHSUBDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPHSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHSUBSW(v[0], v[1], v[2]) + } else { + panic("instruction VPHSUBSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPHSUBW(v[0], v[1], v[2]) + } else { + panic("instruction VPHSUBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPHSUBWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPHSUBWD(v[0], v[1]) + } else { + panic("instruction VPHSUBWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPINSRB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRB(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRB takes exactly 4 operands") + } +} + +func __asm_proxy_VPINSRD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRD takes exactly 4 operands") + } +} + +func __asm_proxy_VPINSRQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPINSRW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPINSRW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPINSRW takes exactly 4 operands") + } +} + +func __asm_proxy_VPLZCNTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPLZCNTD(v[0], v[1]) + } else { + panic("instruction VPLZCNTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPLZCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPLZCNTQ(v[0], v[1]) + } else { + panic("instruction VPLZCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMACSDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSDD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSDD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSDQH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSDQH(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSDQH takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSDQL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSDQL(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSDQL takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSDD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSDD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSDQH__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSDQH(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSDQH takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSDQL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSDQL(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSDQL takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSSWW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSSWW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSSWW takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMACSWW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMACSWW(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMACSWW takes exactly 4 operands") + } +} + +func __asm_proxy_VPMADCSSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMADCSSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMADCSSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMADCSWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPMADCSWD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPMADCSWD takes exactly 4 operands") + } +} + +func __asm_proxy_VPMADD52HUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADD52HUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMADD52HUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMADD52LUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADD52LUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMADD52LUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMADDUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADDUBSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMADDUBSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMADDWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMADDWD(v[0], v[1], v[2]) + } else { + panic("instruction VPMADDWD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMASKMOVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMASKMOVD(v[0], v[1], v[2]) + } else { + panic("instruction VPMASKMOVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMASKMOVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMASKMOVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMASKMOVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSB(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSD(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUB(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUD(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMAXUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMAXUW(v[0], v[1], v[2]) + } else { + panic("instruction VPMAXUW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSB(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSD(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMINSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUB(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUD(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMINUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMINUW(v[0], v[1], v[2]) + } else { + panic("instruction VPMINUW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMOVB2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVB2M(v[0], v[1]) + } else { + panic("instruction VPMOVB2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVD2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVD2M(v[0], v[1]) + } else { + panic("instruction VPMOVD2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVDB(v[0], v[1]) + } else { + panic("instruction VPMOVDB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVDW(v[0], v[1]) + } else { + panic("instruction VPMOVDW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2B__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2B(v[0], v[1]) + } else { + panic("instruction VPMOVM2B takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2D__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2D(v[0], v[1]) + } else { + panic("instruction VPMOVM2D takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2Q__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2Q(v[0], v[1]) + } else { + panic("instruction VPMOVM2Q takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVM2W__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVM2W(v[0], v[1]) + } else { + panic("instruction VPMOVM2W takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVMSKB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVMSKB(v[0], v[1]) + } else { + panic("instruction VPMOVMSKB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQ2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQ2M(v[0], v[1]) + } else { + panic("instruction VPMOVQ2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQB(v[0], v[1]) + } else { + panic("instruction VPMOVQB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQD(v[0], v[1]) + } else { + panic("instruction VPMOVQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVQW(v[0], v[1]) + } else { + panic("instruction VPMOVQW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSDB(v[0], v[1]) + } else { + panic("instruction VPMOVSDB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSDW(v[0], v[1]) + } else { + panic("instruction VPMOVSDW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSQB(v[0], v[1]) + } else { + panic("instruction VPMOVSQB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSQD(v[0], v[1]) + } else { + panic("instruction VPMOVSQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSQW(v[0], v[1]) + } else { + panic("instruction VPMOVSQW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSWB(v[0], v[1]) + } else { + panic("instruction VPMOVSWB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXBD(v[0], v[1]) + } else { + panic("instruction VPMOVSXBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXBQ(v[0], v[1]) + } else { + panic("instruction VPMOVSXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXBW(v[0], v[1]) + } else { + panic("instruction VPMOVSXBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXDQ(v[0], v[1]) + } else { + panic("instruction VPMOVSXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXWD(v[0], v[1]) + } else { + panic("instruction VPMOVSXWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVSXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVSXWQ(v[0], v[1]) + } else { + panic("instruction VPMOVSXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSDB(v[0], v[1]) + } else { + panic("instruction VPMOVUSDB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSDW(v[0], v[1]) + } else { + panic("instruction VPMOVUSDW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSQB(v[0], v[1]) + } else { + panic("instruction VPMOVUSQB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSQD(v[0], v[1]) + } else { + panic("instruction VPMOVUSQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSQW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSQW(v[0], v[1]) + } else { + panic("instruction VPMOVUSQW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVUSWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVUSWB(v[0], v[1]) + } else { + panic("instruction VPMOVUSWB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVW2M__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVW2M(v[0], v[1]) + } else { + panic("instruction VPMOVW2M takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVWB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVWB(v[0], v[1]) + } else { + panic("instruction VPMOVWB takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXBD(v[0], v[1]) + } else { + panic("instruction VPMOVZXBD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXBQ(v[0], v[1]) + } else { + panic("instruction VPMOVZXBQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXBW(v[0], v[1]) + } else { + panic("instruction VPMOVZXBW takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXDQ(v[0], v[1]) + } else { + panic("instruction VPMOVZXDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXWD(v[0], v[1]) + } else { + panic("instruction VPMOVZXWD takes exactly 2 operands") + } +} + +func __asm_proxy_VPMOVZXWQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPMOVZXWQ(v[0], v[1]) + } else { + panic("instruction VPMOVZXWQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPMULDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMULDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULHRSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULHRSW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULHRSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULHUW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULHUW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULHUW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULHW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULHW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULLD(v[0], v[1], v[2]) + } else { + panic("instruction VPMULLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMULLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULLW(v[0], v[1], v[2]) + } else { + panic("instruction VPMULLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULTISHIFTQB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULTISHIFTQB(v[0], v[1], v[2]) + } else { + panic("instruction VPMULTISHIFTQB takes exactly 3 operands") + } +} + +func __asm_proxy_VPMULUDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPMULUDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPMULUDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPOPCNTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPOPCNTD(v[0], v[1]) + } else { + panic("instruction VPOPCNTD takes exactly 2 operands") + } +} + +func __asm_proxy_VPOPCNTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPOPCNTQ(v[0], v[1]) + } else { + panic("instruction VPOPCNTQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPOR(v[0], v[1], v[2]) + } else { + panic("instruction VPOR takes exactly 3 operands") + } +} + +func __asm_proxy_VPORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPORD(v[0], v[1], v[2]) + } else { + panic("instruction VPORD takes exactly 3 operands") + } +} + +func __asm_proxy_VPORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPORQ(v[0], v[1], v[2]) + } else { + panic("instruction VPORQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPPERM__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPPERM(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPPERM takes exactly 4 operands") + } +} + +func __asm_proxy_VPROLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLD(v[0], v[1], v[2]) + } else { + panic("instruction VPROLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPROLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPROLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPROLVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLVD(v[0], v[1], v[2]) + } else { + panic("instruction VPROLVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPROLVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROLVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPROLVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORD(v[0], v[1], v[2]) + } else { + panic("instruction VPRORD takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORQ(v[0], v[1], v[2]) + } else { + panic("instruction VPRORQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORVD(v[0], v[1], v[2]) + } else { + panic("instruction VPRORVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPRORVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPRORVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPRORVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTB(v[0], v[1], v[2]) + } else { + panic("instruction VPROTB takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTD(v[0], v[1], v[2]) + } else { + panic("instruction VPROTD takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTQ(v[0], v[1], v[2]) + } else { + panic("instruction VPROTQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPROTW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPROTW(v[0], v[1], v[2]) + } else { + panic("instruction VPROTW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSADBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSADBW(v[0], v[1], v[2]) + } else { + panic("instruction VPSADBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSCATTERDD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERDD(v[0], v[1]) + } else { + panic("instruction VPSCATTERDD takes exactly 2 operands") + } +} + +func __asm_proxy_VPSCATTERDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERDQ(v[0], v[1]) + } else { + panic("instruction VPSCATTERDQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPSCATTERQD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERQD(v[0], v[1]) + } else { + panic("instruction VPSCATTERQD takes exactly 2 operands") + } +} + +func __asm_proxy_VPSCATTERQQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPSCATTERQQ(v[0], v[1]) + } else { + panic("instruction VPSCATTERQQ takes exactly 2 operands") + } +} + +func __asm_proxy_VPSHAB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAB(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHAD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAD(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHAQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHAW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHAW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLB(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLD(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFB(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFD(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFHW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFHW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFHW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSHUFLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSHUFLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSHUFLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSIGNB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSIGNB(v[0], v[1], v[2]) + } else { + panic("instruction VPSIGNB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSIGND__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSIGND(v[0], v[1], v[2]) + } else { + panic("instruction VPSIGND takes exactly 3 operands") + } +} + +func __asm_proxy_VPSIGNW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSIGNW(v[0], v[1], v[2]) + } else { + panic("instruction VPSIGNW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLD(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLVD(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLVW(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLVW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSLLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSLLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSLLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAVD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAVW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAVW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRAW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRAW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRAW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLVD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLVD(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLVD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLVQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLVQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLVQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLVW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLVW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLVW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSRLW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSRLW(v[0], v[1], v[2]) + } else { + panic("instruction VPSRLW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBB(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBD(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBD takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBQ(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBSB(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBSW(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBUSB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBUSB(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBUSB takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBUSW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBUSW(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBUSW takes exactly 3 operands") + } +} + +func __asm_proxy_VPSUBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPSUBW(v[0], v[1], v[2]) + } else { + panic("instruction VPSUBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPTERNLOGD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPTERNLOGD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPTERNLOGD takes exactly 4 operands") + } +} + +func __asm_proxy_VPTERNLOGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VPTERNLOGQ(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VPTERNLOGQ takes exactly 4 operands") + } +} + +func __asm_proxy_VPTEST__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VPTEST(v[0], v[1]) + } else { + panic("instruction VPTEST takes exactly 2 operands") + } +} + +func __asm_proxy_VPTESTMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMB(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMD(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTMW(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMB(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMB takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMD(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMD takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMQ(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPTESTNMW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPTESTNMW(v[0], v[1], v[2]) + } else { + panic("instruction VPTESTNMW takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHBW(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHQDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHQDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKHWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKHWD(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKHWD takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLBW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLBW(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLBW takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLQDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLQDQ(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLQDQ takes exactly 3 operands") + } +} + +func __asm_proxy_VPUNPCKLWD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPUNPCKLWD(v[0], v[1], v[2]) + } else { + panic("instruction VPUNPCKLWD takes exactly 3 operands") + } +} + +func __asm_proxy_VPXOR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPXOR(v[0], v[1], v[2]) + } else { + panic("instruction VPXOR takes exactly 3 operands") + } +} + +func __asm_proxy_VPXORD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPXORD(v[0], v[1], v[2]) + } else { + panic("instruction VPXORD takes exactly 3 operands") + } +} + +func __asm_proxy_VPXORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VPXORQ(v[0], v[1], v[2]) + } else { + panic("instruction VPXORQ takes exactly 3 operands") + } +} + +func __asm_proxy_VRANGEPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGEPD(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGEPD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGEPD takes 4 or 5 operands") + } +} + +func __asm_proxy_VRANGEPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGEPS(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGEPS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGEPS takes 4 or 5 operands") + } +} + +func __asm_proxy_VRANGESD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGESD(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGESD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGESD takes 4 or 5 operands") + } +} + +func __asm_proxy_VRANGESS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRANGESS(v[0], v[1], v[2], v[3]) + case 5 : return p.VRANGESS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRANGESS takes 4 or 5 operands") + } +} + +func __asm_proxy_VRCP14PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRCP14PD(v[0], v[1]) + } else { + panic("instruction VRCP14PD takes exactly 2 operands") + } +} + +func __asm_proxy_VRCP14PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRCP14PS(v[0], v[1]) + } else { + panic("instruction VRCP14PS takes exactly 2 operands") + } +} + +func __asm_proxy_VRCP14SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRCP14SD(v[0], v[1], v[2]) + } else { + panic("instruction VRCP14SD takes exactly 3 operands") + } +} + +func __asm_proxy_VRCP14SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRCP14SS(v[0], v[1], v[2]) + } else { + panic("instruction VRCP14SS takes exactly 3 operands") + } +} + +func __asm_proxy_VRCP28PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRCP28PD(v[0], v[1]) + case 3 : return p.VRCP28PD(v[0], v[1], v[2]) + default : panic("instruction VRCP28PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VRCP28PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRCP28PS(v[0], v[1]) + case 3 : return p.VRCP28PS(v[0], v[1], v[2]) + default : panic("instruction VRCP28PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VRCP28SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRCP28SD(v[0], v[1], v[2]) + case 4 : return p.VRCP28SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VRCP28SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VRCP28SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRCP28SS(v[0], v[1], v[2]) + case 4 : return p.VRCP28SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VRCP28SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VRCPPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRCPPS(v[0], v[1]) + } else { + panic("instruction VRCPPS takes exactly 2 operands") + } +} + +func __asm_proxy_VRCPSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRCPSS(v[0], v[1], v[2]) + } else { + panic("instruction VRCPSS takes exactly 3 operands") + } +} + +func __asm_proxy_VREDUCEPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VREDUCEPD(v[0], v[1], v[2]) + } else { + panic("instruction VREDUCEPD takes exactly 3 operands") + } +} + +func __asm_proxy_VREDUCEPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VREDUCEPS(v[0], v[1], v[2]) + } else { + panic("instruction VREDUCEPS takes exactly 3 operands") + } +} + +func __asm_proxy_VREDUCESD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VREDUCESD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VREDUCESD takes exactly 4 operands") + } +} + +func __asm_proxy_VREDUCESS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VREDUCESS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VREDUCESS takes exactly 4 operands") + } +} + +func __asm_proxy_VRNDSCALEPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRNDSCALEPD(v[0], v[1], v[2]) + case 4 : return p.VRNDSCALEPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VRNDSCALEPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VRNDSCALEPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRNDSCALEPS(v[0], v[1], v[2]) + case 4 : return p.VRNDSCALEPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VRNDSCALEPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VRNDSCALESD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRNDSCALESD(v[0], v[1], v[2], v[3]) + case 5 : return p.VRNDSCALESD(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRNDSCALESD takes 4 or 5 operands") + } +} + +func __asm_proxy_VRNDSCALESS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 4 : return p.VRNDSCALESS(v[0], v[1], v[2], v[3]) + case 5 : return p.VRNDSCALESS(v[0], v[1], v[2], v[3], v[4]) + default : panic("instruction VRNDSCALESS takes 4 or 5 operands") + } +} + +func __asm_proxy_VROUNDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VROUNDPD(v[0], v[1], v[2]) + } else { + panic("instruction VROUNDPD takes exactly 3 operands") + } +} + +func __asm_proxy_VROUNDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VROUNDPS(v[0], v[1], v[2]) + } else { + panic("instruction VROUNDPS takes exactly 3 operands") + } +} + +func __asm_proxy_VROUNDSD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VROUNDSD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VROUNDSD takes exactly 4 operands") + } +} + +func __asm_proxy_VROUNDSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VROUNDSS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VROUNDSS takes exactly 4 operands") + } +} + +func __asm_proxy_VRSQRT14PD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRSQRT14PD(v[0], v[1]) + } else { + panic("instruction VRSQRT14PD takes exactly 2 operands") + } +} + +func __asm_proxy_VRSQRT14PS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRSQRT14PS(v[0], v[1]) + } else { + panic("instruction VRSQRT14PS takes exactly 2 operands") + } +} + +func __asm_proxy_VRSQRT14SD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRSQRT14SD(v[0], v[1], v[2]) + } else { + panic("instruction VRSQRT14SD takes exactly 3 operands") + } +} + +func __asm_proxy_VRSQRT14SS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRSQRT14SS(v[0], v[1], v[2]) + } else { + panic("instruction VRSQRT14SS takes exactly 3 operands") + } +} + +func __asm_proxy_VRSQRT28PD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRSQRT28PD(v[0], v[1]) + case 3 : return p.VRSQRT28PD(v[0], v[1], v[2]) + default : panic("instruction VRSQRT28PD takes 2 or 3 operands") + } +} + +func __asm_proxy_VRSQRT28PS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VRSQRT28PS(v[0], v[1]) + case 3 : return p.VRSQRT28PS(v[0], v[1], v[2]) + default : panic("instruction VRSQRT28PS takes 2 or 3 operands") + } +} + +func __asm_proxy_VRSQRT28SD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRSQRT28SD(v[0], v[1], v[2]) + case 4 : return p.VRSQRT28SD(v[0], v[1], v[2], v[3]) + default : panic("instruction VRSQRT28SD takes 3 or 4 operands") + } +} + +func __asm_proxy_VRSQRT28SS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VRSQRT28SS(v[0], v[1], v[2]) + case 4 : return p.VRSQRT28SS(v[0], v[1], v[2], v[3]) + default : panic("instruction VRSQRT28SS takes 3 or 4 operands") + } +} + +func __asm_proxy_VRSQRTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VRSQRTPS(v[0], v[1]) + } else { + panic("instruction VRSQRTPS takes exactly 2 operands") + } +} + +func __asm_proxy_VRSQRTSS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VRSQRTSS(v[0], v[1], v[2]) + } else { + panic("instruction VRSQRTSS takes exactly 3 operands") + } +} + +func __asm_proxy_VSCALEFPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFPD(v[0], v[1], v[2]) + case 4 : return p.VSCALEFPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCALEFPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFPS(v[0], v[1], v[2]) + case 4 : return p.VSCALEFPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCALEFSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFSD(v[0], v[1], v[2]) + case 4 : return p.VSCALEFSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCALEFSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSCALEFSS(v[0], v[1], v[2]) + case 4 : return p.VSCALEFSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSCALEFSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSCATTERDPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERDPD(v[0], v[1]) + } else { + panic("instruction VSCATTERDPD takes exactly 2 operands") + } +} + +func __asm_proxy_VSCATTERDPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERDPS(v[0], v[1]) + } else { + panic("instruction VSCATTERDPS takes exactly 2 operands") + } +} + +func __asm_proxy_VSCATTERPF0DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0DPD(v[0]) + } else { + panic("instruction VSCATTERPF0DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF0DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0DPS(v[0]) + } else { + panic("instruction VSCATTERPF0DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF0QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0QPD(v[0]) + } else { + panic("instruction VSCATTERPF0QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF0QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF0QPS(v[0]) + } else { + panic("instruction VSCATTERPF0QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1DPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1DPD(v[0]) + } else { + panic("instruction VSCATTERPF1DPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1DPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1DPS(v[0]) + } else { + panic("instruction VSCATTERPF1DPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1QPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1QPD(v[0]) + } else { + panic("instruction VSCATTERPF1QPD takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERPF1QPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSCATTERPF1QPS(v[0]) + } else { + panic("instruction VSCATTERPF1QPS takes exactly 1 operand") + } +} + +func __asm_proxy_VSCATTERQPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERQPD(v[0], v[1]) + } else { + panic("instruction VSCATTERQPD takes exactly 2 operands") + } +} + +func __asm_proxy_VSCATTERQPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VSCATTERQPS(v[0], v[1]) + } else { + panic("instruction VSCATTERQPS takes exactly 2 operands") + } +} + +func __asm_proxy_VSHUFF32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFF32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFF32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFF64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFF64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFF64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFI32X4__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFI32X4(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFI32X4 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFI64X2__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFI64X2(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFI64X2 takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFPD(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFPD takes exactly 4 operands") + } +} + +func __asm_proxy_VSHUFPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 4 { + return p.VSHUFPS(v[0], v[1], v[2], v[3]) + } else { + panic("instruction VSHUFPS takes exactly 4 operands") + } +} + +func __asm_proxy_VSQRTPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VSQRTPD(v[0], v[1]) + case 3 : return p.VSQRTPD(v[0], v[1], v[2]) + default : panic("instruction VSQRTPD takes 2 or 3 operands") + } +} + +func __asm_proxy_VSQRTPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VSQRTPS(v[0], v[1]) + case 3 : return p.VSQRTPS(v[0], v[1], v[2]) + default : panic("instruction VSQRTPS takes 2 or 3 operands") + } +} + +func __asm_proxy_VSQRTSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSQRTSD(v[0], v[1], v[2]) + case 4 : return p.VSQRTSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSQRTSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSQRTSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSQRTSS(v[0], v[1], v[2]) + case 4 : return p.VSQRTSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSQRTSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSTMXCSR__(p *Program, v ...interface{}) *Instruction { + if len(v) == 1 { + return p.VSTMXCSR(v[0]) + } else { + panic("instruction VSTMXCSR takes exactly 1 operand") + } +} + +func __asm_proxy_VSUBPD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBPD(v[0], v[1], v[2]) + case 4 : return p.VSUBPD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBPD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSUBPS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBPS(v[0], v[1], v[2]) + case 4 : return p.VSUBPS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBPS takes 3 or 4 operands") + } +} + +func __asm_proxy_VSUBSD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBSD(v[0], v[1], v[2]) + case 4 : return p.VSUBSD(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBSD takes 3 or 4 operands") + } +} + +func __asm_proxy_VSUBSS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 3 : return p.VSUBSS(v[0], v[1], v[2]) + case 4 : return p.VSUBSS(v[0], v[1], v[2], v[3]) + default : panic("instruction VSUBSS takes 3 or 4 operands") + } +} + +func __asm_proxy_VTESTPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VTESTPD(v[0], v[1]) + } else { + panic("instruction VTESTPD takes exactly 2 operands") + } +} + +func __asm_proxy_VTESTPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.VTESTPS(v[0], v[1]) + } else { + panic("instruction VTESTPS takes exactly 2 operands") + } +} + +func __asm_proxy_VUCOMISD__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VUCOMISD(v[0], v[1]) + case 3 : return p.VUCOMISD(v[0], v[1], v[2]) + default : panic("instruction VUCOMISD takes 2 or 3 operands") + } +} + +func __asm_proxy_VUCOMISS__(p *Program, v ...interface{}) *Instruction { + switch len(v) { + case 2 : return p.VUCOMISS(v[0], v[1]) + case 3 : return p.VUCOMISS(v[0], v[1], v[2]) + default : panic("instruction VUCOMISS takes 2 or 3 operands") + } +} + +func __asm_proxy_VUNPCKHPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKHPD(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKHPD takes exactly 3 operands") + } +} + +func __asm_proxy_VUNPCKHPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKHPS(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKHPS takes exactly 3 operands") + } +} + +func __asm_proxy_VUNPCKLPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKLPD(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKLPD takes exactly 3 operands") + } +} + +func __asm_proxy_VUNPCKLPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VUNPCKLPS(v[0], v[1], v[2]) + } else { + panic("instruction VUNPCKLPS takes exactly 3 operands") + } +} + +func __asm_proxy_VXORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VXORPD(v[0], v[1], v[2]) + } else { + panic("instruction VXORPD takes exactly 3 operands") + } +} + +func __asm_proxy_VXORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 3 { + return p.VXORPS(v[0], v[1], v[2]) + } else { + panic("instruction VXORPS takes exactly 3 operands") + } +} + +func __asm_proxy_VZEROALL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.VZEROALL() + } else { + panic("instruction VZEROALL takes no operands") + } +} + +func __asm_proxy_VZEROUPPER__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.VZEROUPPER() + } else { + panic("instruction VZEROUPPER takes no operands") + } +} + +func __asm_proxy_XADDB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDB(v[0], v[1]) + } else { + panic("instruction XADDB takes exactly 2 operands") + } +} + +func __asm_proxy_XADDL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDL(v[0], v[1]) + } else { + panic("instruction XADDL takes exactly 2 operands") + } +} + +func __asm_proxy_XADDQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDQ(v[0], v[1]) + } else { + panic("instruction XADDQ takes exactly 2 operands") + } +} + +func __asm_proxy_XADDW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XADDW(v[0], v[1]) + } else { + panic("instruction XADDW takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGB(v[0], v[1]) + } else { + panic("instruction XCHGB takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGL(v[0], v[1]) + } else { + panic("instruction XCHGL takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGQ(v[0], v[1]) + } else { + panic("instruction XCHGQ takes exactly 2 operands") + } +} + +func __asm_proxy_XCHGW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XCHGW(v[0], v[1]) + } else { + panic("instruction XCHGW takes exactly 2 operands") + } +} + +func __asm_proxy_XGETBV__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.XGETBV() + } else { + panic("instruction XGETBV takes no operands") + } +} + +func __asm_proxy_XLATB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 0 { + return p.XLATB() + } else { + panic("instruction XLATB takes no operands") + } +} + +func __asm_proxy_XORB__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORB(v[0], v[1]) + } else { + panic("instruction XORB takes exactly 2 operands") + } +} + +func __asm_proxy_XORL__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORL(v[0], v[1]) + } else { + panic("instruction XORL takes exactly 2 operands") + } +} + +func __asm_proxy_XORPD__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORPD(v[0], v[1]) + } else { + panic("instruction XORPD takes exactly 2 operands") + } +} + +func __asm_proxy_XORPS__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORPS(v[0], v[1]) + } else { + panic("instruction XORPS takes exactly 2 operands") + } +} + +func __asm_proxy_XORQ__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORQ(v[0], v[1]) + } else { + panic("instruction XORQ takes exactly 2 operands") + } +} + +func __asm_proxy_XORW__(p *Program, v ...interface{}) *Instruction { + if len(v) == 2 { + return p.XORW(v[0], v[1]) + } else { + panic("instruction XORW takes exactly 2 operands") + } +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/operands.go b/vendor/github.com/cloudwego/iasm/x86_64/operands.go new file mode 100644 index 000000000..61adbf83b --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/operands.go @@ -0,0 +1,665 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + "errors" + "fmt" + "math" + "reflect" + "strconv" + "strings" + "sync/atomic" +) + +// RelativeOffset represents an RIP-relative offset. +type RelativeOffset int32 + +// String implements the fmt.Stringer interface. +func (self RelativeOffset) String() string { + if self == 0 { + return "(%rip)" + } else { + return fmt.Sprintf("%d(%%rip)", self) + } +} + +// RoundingControl represents a floating-point rounding option. +type RoundingControl uint8 + +const ( + // RN_SAE represents "Round Nearest", which is the default rounding option. + RN_SAE RoundingControl = iota + + // RD_SAE represents "Round Down". + RD_SAE + + // RU_SAE represents "Round Up". + RU_SAE + + // RZ_SAE represents "Round towards Zero". + RZ_SAE +) + +var _RC_NAMES = map[RoundingControl]string{ + RN_SAE: "rn-sae", + RD_SAE: "rd-sae", + RU_SAE: "ru-sae", + RZ_SAE: "rz-sae", +} + +func (self RoundingControl) String() string { + if v, ok := _RC_NAMES[self]; ok { + return v + } else { + panic("invalid RoundingControl value") + } +} + +// ExceptionControl represents the "Suppress All Exceptions" flag. +type ExceptionControl uint8 + +const ( + // SAE represents the flag "Suppress All Exceptions" for floating point operations. + SAE ExceptionControl = iota +) + +func (ExceptionControl) String() string { + return "sae" +} + +// AddressType indicates which kind of value that an Addressable object contains. +type AddressType uint + +const ( + // None indicates the Addressable does not contain any addressable value. + None AddressType = iota + + // Memory indicates the Addressable contains a memory address. + Memory + + // Offset indicates the Addressable contains an RIP-relative offset. + Offset + + // Reference indicates the Addressable contains a label reference. + Reference +) + +// Disposable is a type of object that can be Free'd manually. +type Disposable interface { + Free() +} + +// Label represents a location within the program. +type Label struct { + refs int64 + Name string + Dest *Instruction +} + +func (self *Label) offset(p uintptr, n int) RelativeOffset { + if self.Dest == nil { + panic("unresolved label: " + self.Name) + } else { + return RelativeOffset(self.Dest.pc - p - uintptr(n)) + } +} + +// Free decreases the reference count of a Label, if the +// refcount drops to 0, the Label will be recycled. +func (self *Label) Free() { + if atomic.AddInt64(&self.refs, -1) == 0 { + //freeLabel(self) + } +} + +// String implements the fmt.Stringer interface. +func (self *Label) String() string { + if self.Dest == nil { + return fmt.Sprintf("%s(%%rip)", self.Name) + } else { + return fmt.Sprintf("%s(%%rip)@%#x", self.Name, self.Dest.pc) + } +} + +// Retain increases the reference count of a Label. +func (self *Label) Retain() *Label { + atomic.AddInt64(&self.refs, 1) + return self +} + +// Evaluate implements the interface expr.Term. +func (self *Label) Evaluate() (int64, error) { + if self.Dest != nil { + return int64(self.Dest.pc), nil + } else { + return 0, errors.New("unresolved label: " + self.Name) + } +} + +// Addressable is a union to represent an addressable operand. +type Addressable struct { + Type AddressType + Memory MemoryAddress + Offset RelativeOffset + Reference *Label +} + +// String implements the fmt.Stringer interface. +func (self *Addressable) String() string { + switch self.Type { + case None: + return "(not addressable)" + case Memory: + return self.Memory.String() + case Offset: + return self.Offset.String() + case Reference: + return self.Reference.String() + default: + return "(invalid addressable)" + } +} + +// MemoryOperand represents a memory operand for an instruction. +type MemoryOperand struct { + refs int64 + Size int + Addr Addressable + Mask RegisterMask + Masked bool + Broadcast uint8 +} + +const ( + _Sizes = 0b10000000100010111 // bit-mask for valid sizes (0, 1, 2, 4, 8, 16) +) + +func (self *MemoryOperand) isVMX(evex bool) bool { + return self.Addr.Type == Memory && self.Addr.Memory.isVMX(evex) +} + +func (self *MemoryOperand) isVMY(evex bool) bool { + return self.Addr.Type == Memory && self.Addr.Memory.isVMY(evex) +} + +func (self *MemoryOperand) isVMZ() bool { + return self.Addr.Type == Memory && self.Addr.Memory.isVMZ() +} + +func (self *MemoryOperand) isMem() bool { + if (_Sizes & (1 << self.Broadcast)) == 0 { + return false + } else if self.Addr.Type == Memory { + return self.Addr.Memory.isMem() + } else if self.Addr.Type == Offset { + return true + } else if self.Addr.Type == Reference { + return true + } else { + return false + } +} + +func (self *MemoryOperand) isSize(n int) bool { + return self.Size == 0 || self.Size == n +} + +func (self *MemoryOperand) isBroadcast(n int, b uint8) bool { + return self.Size == n && self.Broadcast == b +} + +func (self *MemoryOperand) formatMask() string { + if !self.Masked { + return "" + } else { + return self.Mask.String() + } +} + +func (self *MemoryOperand) formatBroadcast() string { + if self.Broadcast == 0 { + return "" + } else { + return fmt.Sprintf("{1to%d}", self.Broadcast) + } +} + +func (self *MemoryOperand) ensureAddrValid() { + switch self.Addr.Type { + case None: + break + case Memory: + self.Addr.Memory.EnsureValid() + case Offset: + break + case Reference: + break + default: + panic("invalid address type") + } +} + +func (self *MemoryOperand) ensureSizeValid() { + if (_Sizes & (1 << self.Size)) == 0 { + panic("invalid memory operand size") + } +} + +func (self *MemoryOperand) ensureBroadcastValid() { + if (_Sizes & (1 << self.Broadcast)) == 0 { + panic("invalid memory operand broadcast") + } +} + +// Free decreases the reference count of a MemoryOperand, if the +// refcount drops to 0, the Label will be recycled. +func (self *MemoryOperand) Free() { + if atomic.AddInt64(&self.refs, -1) == 0 { + //freeMemoryOperand(self) + } +} + +// String implements the fmt.Stringer interface. +func (self *MemoryOperand) String() string { + return self.Addr.String() + self.formatMask() + self.formatBroadcast() +} + +// Retain increases the reference count of a MemoryOperand. +func (self *MemoryOperand) Retain() *MemoryOperand { + atomic.AddInt64(&self.refs, 1) + return self +} + +// EnsureValid checks if the memory operand is valid, if not, it panics. +func (self *MemoryOperand) EnsureValid() { + self.ensureAddrValid() + self.ensureSizeValid() + self.ensureBroadcastValid() +} + +// MemoryAddress represents a memory address. +type MemoryAddress struct { + Base Register + Index Register + Scale uint8 + Displacement int32 +} + +const ( + _Scales = 0b100010111 // bit-mask for valid scales (0, 1, 2, 4, 8) +) + +func (self *MemoryAddress) isVMX(evex bool) bool { + return self.isMemBase() && (self.Index == nil || isXMM(self.Index) || (evex && isEVEXXMM(self.Index))) +} + +func (self *MemoryAddress) isVMY(evex bool) bool { + return self.isMemBase() && (self.Index == nil || isYMM(self.Index) || (evex && isEVEXYMM(self.Index))) +} + +func (self *MemoryAddress) isVMZ() bool { + return self.isMemBase() && (self.Index == nil || isZMM(self.Index)) +} + +func (self *MemoryAddress) isMem() bool { + return self.isMemBase() && (self.Index == nil || isReg64(self.Index)) +} + +func (self *MemoryAddress) isMemBase() bool { + return (self.Base == nil || isReg64(self.Base)) && // `Base` must be 64-bit if present + (self.Scale == 0) == (self.Index == nil) && // `Scale` and `Index` depends on each other + (_Scales&(1<= 2 { + sb.WriteByte(',') + sb.WriteString(strconv.Itoa(int(self.Scale))) + } + } + + /* close the bracket */ + sb.WriteByte(')') + return sb.String() +} + +// EnsureValid checks if the memory address is valid, if not, it panics. +func (self *MemoryAddress) EnsureValid() { + if !self.isMemBase() || (self.Index != nil && !isIndexable(self.Index)) { + panic("not a valid memory address") + } +} + +// Ref constructs a memory reference to a label. +func Ref(ref *Label) (v *MemoryOperand) { + v = CreateMemoryOperand() + v.Addr.Type = Reference + v.Addr.Reference = ref + return +} + +// Abs construct a simple memory address that represents absolute addressing. +func Abs(disp int32) *MemoryOperand { + return Sib(nil, nil, 0, disp) +} + +// Ptr constructs a simple memory operand with base and displacement. +func Ptr(base Register, disp int32) *MemoryOperand { + return Sib(base, nil, 0, disp) +} + +// Sib constructs a simple memory operand that represents a complete memory address. +func Sib(base Register, index Register, scale uint8, disp int32) (v *MemoryOperand) { + v = CreateMemoryOperand() + v.Addr.Type = Memory + v.Addr.Memory.Base = base + v.Addr.Memory.Index = index + v.Addr.Memory.Scale = scale + v.Addr.Memory.Displacement = disp + v.EnsureValid() + return +} + +/** Operand Matching Helpers **/ + +const _IntMask = (1 << reflect.Int) | + (1 << reflect.Int8) | + (1 << reflect.Int16) | + (1 << reflect.Int32) | + (1 << reflect.Int64) | + (1 << reflect.Uint) | + (1 << reflect.Uint8) | + (1 << reflect.Uint16) | + (1 << reflect.Uint32) | + (1 << reflect.Uint64) | + (1 << reflect.Uintptr) + +func isInt(k reflect.Kind) bool { + return (_IntMask & (1 << k)) != 0 +} + +func asInt64(v interface{}) (int64, bool) { + if isSpecial(v) { + return 0, false + } else if x := efaceOf(v); isInt(x.kind()) { + return x.toInt64(), true + } else { + return 0, false + } +} + +func inRange(v interface{}, low int64, high int64) bool { + x, ok := asInt64(v) + return ok && x >= low && x <= high +} + +func isSpecial(v interface{}) bool { + switch v.(type) { + case Register8: + return true + case Register16: + return true + case Register32: + return true + case Register64: + return true + case KRegister: + return true + case MMRegister: + return true + case XMMRegister: + return true + case YMMRegister: + return true + case ZMMRegister: + return true + case RelativeOffset: + return true + case RoundingControl: + return true + case ExceptionControl: + return true + default: + return false + } +} + +func isIndexable(v interface{}) bool { + return isZMM(v) || isReg64(v) || isEVEXXMM(v) || isEVEXYMM(v) +} + +func isImm4(v interface{}) bool { return inRange(v, 0, 15) } +func isImm8(v interface{}) bool { return inRange(v, math.MinInt8, math.MaxUint8) } +func isImm16(v interface{}) bool { return inRange(v, math.MinInt16, math.MaxUint16) } +func isImm32(v interface{}) bool { return inRange(v, math.MinInt32, math.MaxUint32) } +func isImm64(v interface{}) bool { _, r := asInt64(v); return r } +func isConst1(v interface{}) bool { x, r := asInt64(v); return r && x == 1 } +func isConst3(v interface{}) bool { x, r := asInt64(v); return r && x == 3 } +func isRel8(v interface{}) bool { + x, r := v.(RelativeOffset) + return r && x >= math.MinInt8 && x <= math.MaxInt8 +} +func isRel32(v interface{}) bool { _, r := v.(RelativeOffset); return r } +func isLabel(v interface{}) bool { _, r := v.(*Label); return r } +func isReg8(v interface{}) bool { _, r := v.(Register8); return r } +func isReg8REX(v interface{}) bool { + x, r := v.(Register8) + return r && (x&0x80) == 0 && x >= SPL +} +func isReg16(v interface{}) bool { _, r := v.(Register16); return r } +func isReg32(v interface{}) bool { _, r := v.(Register32); return r } +func isReg64(v interface{}) bool { _, r := v.(Register64); return r } +func isMM(v interface{}) bool { _, r := v.(MMRegister); return r } +func isXMM(v interface{}) bool { x, r := v.(XMMRegister); return r && x <= XMM15 } +func isEVEXXMM(v interface{}) bool { _, r := v.(XMMRegister); return r } +func isXMMk(v interface{}) bool { + x, r := v.(MaskedRegister) + return isXMM(v) || (r && isXMM(x.Reg) && !x.Mask.Z) +} +func isXMMkz(v interface{}) bool { + x, r := v.(MaskedRegister) + return isXMM(v) || (r && isXMM(x.Reg)) +} +func isYMM(v interface{}) bool { x, r := v.(YMMRegister); return r && x <= YMM15 } +func isEVEXYMM(v interface{}) bool { _, r := v.(YMMRegister); return r } +func isYMMk(v interface{}) bool { + x, r := v.(MaskedRegister) + return isYMM(v) || (r && isYMM(x.Reg) && !x.Mask.Z) +} +func isYMMkz(v interface{}) bool { + x, r := v.(MaskedRegister) + return isYMM(v) || (r && isYMM(x.Reg)) +} +func isZMM(v interface{}) bool { _, r := v.(ZMMRegister); return r } +func isZMMk(v interface{}) bool { + x, r := v.(MaskedRegister) + return isZMM(v) || (r && isZMM(x.Reg) && !x.Mask.Z) +} +func isZMMkz(v interface{}) bool { + x, r := v.(MaskedRegister) + return isZMM(v) || (r && isZMM(x.Reg)) +} +func isK(v interface{}) bool { _, r := v.(KRegister); return r } +func isKk(v interface{}) bool { + x, r := v.(MaskedRegister) + return isK(v) || (r && isK(x.Reg) && !x.Mask.Z) +} +func isM(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isMem() && x.Broadcast == 0 && !x.Masked +} +func isMk(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isMem() && x.Broadcast == 0 && !(x.Masked && x.Mask.Z) +} +func isMkz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isMem() && x.Broadcast == 0 +} +func isM8(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(1) +} +func isM16(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(2) +} +func isM16kz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMkz(v) && x.isSize(2) +} +func isM32(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(4) +} +func isM32k(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMk(v) && x.isSize(4) +} +func isM32kz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMkz(v) && x.isSize(4) +} +func isM64(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(8) +} +func isM64k(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMk(v) && x.isSize(8) +} +func isM64kz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMkz(v) && x.isSize(8) +} +func isM128(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(16) +} +func isM128kz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMkz(v) && x.isSize(16) +} +func isM256(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(32) +} +func isM256kz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMkz(v) && x.isSize(32) +} +func isM512(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isM(v) && x.isSize(64) +} +func isM512kz(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && isMkz(v) && x.isSize(64) +} +func isM64M32bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM64(v) || (r && x.isBroadcast(4, 2)) +} +func isM128M32bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM128(v) || (r && x.isBroadcast(4, 4)) +} +func isM256M32bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM256(v) || (r && x.isBroadcast(4, 8)) +} +func isM512M32bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM512(v) || (r && x.isBroadcast(4, 16)) +} +func isM128M64bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM128(v) || (r && x.isBroadcast(8, 2)) +} +func isM256M64bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM256(v) || (r && x.isBroadcast(8, 4)) +} +func isM512M64bcst(v interface{}) bool { + x, r := v.(*MemoryOperand) + return isM512(v) || (r && x.isBroadcast(8, 8)) +} +func isVMX(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isVMX(false) && !x.Masked +} +func isEVEXVMX(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isVMX(true) && !x.Masked +} +func isVMXk(v interface{}) bool { x, r := v.(*MemoryOperand); return r && x.isVMX(true) } +func isVMY(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isVMY(false) && !x.Masked +} +func isEVEXVMY(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isVMY(true) && !x.Masked +} +func isVMYk(v interface{}) bool { x, r := v.(*MemoryOperand); return r && x.isVMY(true) } +func isVMZ(v interface{}) bool { + x, r := v.(*MemoryOperand) + return r && x.isVMZ() && !x.Masked +} +func isVMZk(v interface{}) bool { x, r := v.(*MemoryOperand); return r && x.isVMZ() } +func isSAE(v interface{}) bool { _, r := v.(ExceptionControl); return r } +func isER(v interface{}) bool { _, r := v.(RoundingControl); return r } + +func isImmExt(v interface{}, ext int, min int64, max int64) bool { + if x, ok := asInt64(v); !ok { + return false + } else if m := int64(1) << (8 * ext); x < m && x >= m+min { + return true + } else { + return x <= max && x >= min + } +} + +func isImm8Ext(v interface{}, ext int) bool { + return isImmExt(v, ext, math.MinInt8, math.MaxInt8) +} + +func isImm32Ext(v interface{}, ext int) bool { + return isImmExt(v, ext, math.MinInt32, math.MaxInt32) +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/pools.go b/vendor/github.com/cloudwego/iasm/x86_64/pools.go new file mode 100644 index 000000000..690db5b7a --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/pools.go @@ -0,0 +1,54 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +// CreateLabel creates a new Label, it may allocate a new one or grab one from a pool. +func CreateLabel(name string) *Label { + p := new(Label) + + /* initialize the label */ + p.refs = 1 + p.Name = name + return p +} + +func newProgram(arch *Arch) *Program { + p := new(Program) + + /* initialize the program */ + p.arch = arch + return p +} + +func newInstruction(name string, argc int, argv Operands) *Instruction { + p := new(Instruction) + + /* initialize the instruction */ + p.name = name + p.argc = argc + p.argv = argv + return p +} + +// CreateMemoryOperand creates a new MemoryOperand, it may allocate a new one or grab one from a pool. +func CreateMemoryOperand() *MemoryOperand { + p := new(MemoryOperand) + + /* initialize the memory operand */ + p.refs = 1 + return p +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/program.go b/vendor/github.com/cloudwego/iasm/x86_64/program.go new file mode 100644 index 000000000..f0c9b18c6 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/program.go @@ -0,0 +1,584 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + "fmt" + "math" + "math/bits" + + "github.com/cloudwego/iasm/expr" +) + +type ( + _PseudoType int + _InstructionEncoder func(*Program, ...interface{}) *Instruction +) + +const ( + _PseudoNop _PseudoType = iota + 1 + _PseudoByte + _PseudoWord + _PseudoLong + _PseudoQuad + _PseudoData + _PseudoAlign +) + +func (self _PseudoType) String() string { + switch self { + case _PseudoNop: + return ".nop" + case _PseudoByte: + return ".byte" + case _PseudoWord: + return ".word" + case _PseudoLong: + return ".long" + case _PseudoQuad: + return ".quad" + case _PseudoData: + return ".data" + case _PseudoAlign: + return ".align" + default: + panic("unreachable") + } +} + +type _Pseudo struct { + kind _PseudoType + data []byte + uint uint64 + expr *expr.Expr +} + +func (self *_Pseudo) free() { + if self.expr != nil { + self.expr.Free() + } +} + +func (self *_Pseudo) encode(m *[]byte, pc uintptr) int { + switch self.kind { + case _PseudoNop: + return 0 + case _PseudoByte: + self.encodeByte(m) + return 1 + case _PseudoWord: + self.encodeWord(m) + return 2 + case _PseudoLong: + self.encodeLong(m) + return 4 + case _PseudoQuad: + self.encodeQuad(m) + return 8 + case _PseudoData: + self.encodeData(m) + return len(self.data) + case _PseudoAlign: + self.encodeAlign(m, pc) + return self.alignSize(pc) + default: + panic("invalid pseudo instruction") + } +} + +func (self *_Pseudo) evalExpr(low int64, high int64) int64 { + if v, err := self.expr.Evaluate(); err != nil { + panic(err) + } else if v < low || v > high { + panic(fmt.Sprintf("expression out of range [%d, %d]: %d", low, high, v)) + } else { + return v + } +} + +func (self *_Pseudo) alignSize(pc uintptr) int { + if !ispow2(self.uint) { + panic(fmt.Sprintf("aligment should be a power of 2, not %d", self.uint)) + } else { + return align(int(pc), bits.TrailingZeros64(self.uint)) - int(pc) + } +} + +func (self *_Pseudo) encodeData(m *[]byte) { + if m != nil { + *m = append(*m, self.data...) + } +} + +func (self *_Pseudo) encodeByte(m *[]byte) { + if m != nil { + append8(m, byte(self.evalExpr(math.MinInt8, math.MaxUint8))) + } +} + +func (self *_Pseudo) encodeWord(m *[]byte) { + if m != nil { + append16(m, uint16(self.evalExpr(math.MinInt16, math.MaxUint16))) + } +} + +func (self *_Pseudo) encodeLong(m *[]byte) { + if m != nil { + append32(m, uint32(self.evalExpr(math.MinInt32, math.MaxUint32))) + } +} + +func (self *_Pseudo) encodeQuad(m *[]byte) { + if m != nil { + if v, err := self.expr.Evaluate(); err != nil { + panic(err) + } else { + append64(m, uint64(v)) + } + } +} + +func (self *_Pseudo) encodeAlign(m *[]byte, pc uintptr) { + if m != nil { + if self.expr == nil { + expandmm(m, self.alignSize(pc), 0) + } else { + expandmm(m, self.alignSize(pc), byte(self.evalExpr(math.MinInt8, math.MaxUint8))) + } + } +} + +// Operands represents a sequence of operand required by an instruction. +type Operands [_N_args]interface{} + +// InstructionDomain represents the domain of an instruction. +type InstructionDomain uint8 + +const ( + DomainGeneric InstructionDomain = iota + DomainMMXSSE + DomainAVX + DomainFMA + DomainCrypto + DomainMask + DomainAMDSpecific + DomainMisc + DomainPseudo +) + +type ( + _BranchType uint8 +) + +const ( + _B_none _BranchType = iota + _B_conditional + _B_unconditional +) + +// Instruction represents an unencoded instruction. +type Instruction struct { + next *Instruction + pc uintptr + nb int + len int + argc int + name string + argv Operands + forms [_N_forms]_Encoding + pseudo _Pseudo + branch _BranchType + domain InstructionDomain + prefix []byte +} + +func (self *Instruction) add(flags int, encoder func(m *_Encoding, v []interface{})) { + self.forms[self.len].flags = flags + self.forms[self.len].encoder = encoder + self.len++ +} + +func (self *Instruction) free() { + self.clear() + self.pseudo.free() + //freeInstruction(self) +} + +func (self *Instruction) clear() { + for i := 0; i < self.argc; i++ { + if v, ok := self.argv[i].(Disposable); ok { + v.Free() + } + } +} + +func (self *Instruction) check(e *_Encoding) bool { + if (e.flags & _F_rel1) != 0 { + return isRel8(self.argv[0]) + } else if (e.flags & _F_rel4) != 0 { + return isRel32(self.argv[0]) || isLabel(self.argv[0]) + } else { + return true + } +} + +func (self *Instruction) encode(m *[]byte) int { + n := math.MaxInt64 + p := (*_Encoding)(nil) + + /* encode prefixes if any */ + if self.nb = len(self.prefix); m != nil { + *m = append(*m, self.prefix...) + } + + /* check for pseudo-instructions */ + if self.pseudo.kind != 0 { + self.nb += self.pseudo.encode(m, self.pc) + return self.nb + } + + /* find the shortest encoding */ + for i := 0; i < self.len; i++ { + if e := &self.forms[i]; self.check(e) { + if v := e.encode(self.argv[:self.argc]); v < n { + n = v + p = e + } + } + } + + /* add to buffer if needed */ + if m != nil { + *m = append(*m, p.bytes[:n]...) + } + + /* update the instruction length */ + self.nb += n + return self.nb +} + +/** Instruction Prefixes **/ + +const ( + _P_cs = 0x2e + _P_ds = 0x3e + _P_es = 0x26 + _P_fs = 0x64 + _P_gs = 0x65 + _P_ss = 0x36 + _P_lock = 0xf0 +) + +// CS overrides the memory operation of this instruction to CS. +func (self *Instruction) CS() *Instruction { + self.prefix = append(self.prefix, _P_cs) + return self +} + +// DS overrides the memory operation of this instruction to DS, +// this is the default section for most instructions if not specified. +func (self *Instruction) DS() *Instruction { + self.prefix = append(self.prefix, _P_ds) + return self +} + +// ES overrides the memory operation of this instruction to ES. +func (self *Instruction) ES() *Instruction { + self.prefix = append(self.prefix, _P_es) + return self +} + +// FS overrides the memory operation of this instruction to FS. +func (self *Instruction) FS() *Instruction { + self.prefix = append(self.prefix, _P_fs) + return self +} + +// GS overrides the memory operation of this instruction to GS. +func (self *Instruction) GS() *Instruction { + self.prefix = append(self.prefix, _P_gs) + return self +} + +// SS overrides the memory operation of this instruction to SS. +func (self *Instruction) SS() *Instruction { + self.prefix = append(self.prefix, _P_ss) + return self +} + +// LOCK causes the processor's LOCK# signal to be asserted during execution of +// the accompanying instruction (turns the instruction into an atomic instruction). +// In a multiprocessor environment, the LOCK# signal insures that the processor +// has exclusive use of any shared memory while the signal is asserted. +func (self *Instruction) LOCK() *Instruction { + self.prefix = append(self.prefix, _P_lock) + return self +} + +/** Basic Instruction Properties **/ + +// Name returns the instruction name. +func (self *Instruction) Name() string { + return self.name +} + +// Domain returns the domain of this instruction. +func (self *Instruction) Domain() InstructionDomain { + return self.domain +} + +// Operands returns the operands of this instruction. +func (self *Instruction) Operands() []interface{} { + return self.argv[:self.argc] +} + +// Program represents a sequence of instructions. +type Program struct { + arch *Arch + head *Instruction + tail *Instruction +} + +const ( + _N_near = 2 // near-branch (-128 ~ +127) takes 2 bytes to encode + _N_far_cond = 6 // conditional far-branch takes 6 bytes to encode + _N_far_uncond = 5 // unconditional far-branch takes 5 bytes to encode +) + +func (self *Program) clear() { + for p, q := self.head, self.head; p != nil; p = q { + q = p.next + p.free() + } +} + +func (self *Program) alloc(name string, argc int, argv Operands) *Instruction { + p := self.tail + q := newInstruction(name, argc, argv) + + /* attach to tail if any */ + if p != nil { + p.next = q + } else { + self.head = q + } + + /* set the new tail */ + self.tail = q + return q +} + +func (self *Program) pseudo(kind _PseudoType) (p *Instruction) { + p = self.alloc(kind.String(), 0, Operands{}) + p.domain = DomainPseudo + p.pseudo.kind = kind + return +} + +func (self *Program) require(isa ISA) { + if !self.arch.HasISA(isa) { + panic("ISA '" + isa.String() + "' was not enabled") + } +} + +func (self *Program) branchSize(p *Instruction) int { + switch p.branch { + case _B_none: + panic("p is not a branch") + case _B_conditional: + return _N_far_cond + case _B_unconditional: + return _N_far_uncond + default: + panic("invalid instruction") + } +} + +/** Pseudo-Instructions **/ + +// Byte is a pseudo-instruction to add raw byte to the assembled code. +func (self *Program) Byte(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoByte) + p.pseudo.expr = v + return +} + +// Word is a pseudo-instruction to add raw uint16 as little-endian to the assembled code. +func (self *Program) Word(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoWord) + p.pseudo.expr = v + return +} + +// Long is a pseudo-instruction to add raw uint32 as little-endian to the assembled code. +func (self *Program) Long(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoLong) + p.pseudo.expr = v + return +} + +// Quad is a pseudo-instruction to add raw uint64 as little-endian to the assembled code. +func (self *Program) Quad(v *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoQuad) + p.pseudo.expr = v + return +} + +// Data is a pseudo-instruction to add raw bytes to the assembled code. +func (self *Program) Data(v []byte) (p *Instruction) { + p = self.pseudo(_PseudoData) + p.pseudo.data = v + return +} + +// Align is a pseudo-instruction to ensure the PC is aligned to a certain value. +func (self *Program) Align(align uint64, padding *expr.Expr) (p *Instruction) { + p = self.pseudo(_PseudoAlign) + p.pseudo.uint = align + p.pseudo.expr = padding + return +} + +/** Program Assembler **/ + +// Free returns the Program object into pool. +// Any operation performed after Free is undefined behavior. +// +// NOTE: This also frees all the instructions, labels, memory +// +// operands and expressions associated with this program. +func (self *Program) Free() { + self.clear() + //freeProgram(self) +} + +// Link pins a label at the current position. +func (self *Program) Link(p *Label) { + if p.Dest != nil { + panic("lable was alreay linked") + } else { + p.Dest = self.pseudo(_PseudoNop) + } +} + +// Assemble assembles and links the entire program into machine code. +func (self *Program) Assemble(pc uintptr) (ret []byte) { + orig := pc + next := true + offs := uintptr(0) + + /* Pass 0: PC-precompute, assume all labeled branches are far-branches. */ + for p := self.head; p != nil; p = p.next { + if p.pc = pc; !isLabel(p.argv[0]) || p.branch == _B_none { + pc += uintptr(p.encode(nil)) + } else { + pc += uintptr(self.branchSize(p)) + } + } + + /* allocate space for the machine code */ + nb := int(pc - orig) + ret = make([]byte, 0, nb) + + /* Pass 1: adjust all the jumps */ + for next { + next = false + offs = uintptr(0) + + /* scan all the branches */ + for p := self.head; p != nil; p = p.next { + var ok bool + var lb *Label + + /* re-calculate the alignment here */ + if nb = p.nb; p.pseudo.kind == _PseudoAlign { + p.pc -= offs + offs += uintptr(nb - p.encode(nil)) + continue + } + + /* adjust the program counter */ + p.pc -= offs + lb, ok = p.argv[0].(*Label) + + /* only care about labeled far-branches */ + if !ok || p.nb == _N_near || p.branch == _B_none { + continue + } + + /* calculate the jump offset */ + size := self.branchSize(p) + diff := lb.offset(p.pc, size) + + /* too far to be a near jump */ + if diff > 127 || diff < -128 { + p.nb = size + continue + } + + /* a far jump becomes a near jump, calculate + * the PC adjustment value and assemble again */ + next = true + p.nb = _N_near + offs += uintptr(size - _N_near) + } + } + + /* Pass 3: link all the cross-references */ + for p := self.head; p != nil; p = p.next { + for i := 0; i < p.argc; i++ { + var ok bool + var lb *Label + var op *MemoryOperand + + /* resolve labels */ + if lb, ok = p.argv[i].(*Label); ok { + p.argv[i] = lb.offset(p.pc, p.nb) + continue + } + + /* check for memory operands */ + if op, ok = p.argv[i].(*MemoryOperand); !ok { + continue + } + + /* check for label references */ + if op.Addr.Type != Reference { + continue + } + + /* replace the label with the real offset */ + op.Addr.Type = Offset + op.Addr.Offset = op.Addr.Reference.offset(p.pc, p.nb) + } + } + + /* Pass 4: actually encode all the instructions */ + for p := self.head; p != nil; p = p.next { + p.encode(&ret) + } + + /* all done */ + return ret +} + +// AssembleAndFree is like Assemble, but it frees the Program after assembling. +func (self *Program) AssembleAndFree(pc uintptr) (ret []byte) { + ret = self.Assemble(pc) + self.Free() + return +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/registers.go b/vendor/github.com/cloudwego/iasm/x86_64/registers.go new file mode 100644 index 000000000..574c2ee96 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/registers.go @@ -0,0 +1,693 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + `fmt` +) + +// Register represents a hardware register. +type Register interface { + fmt.Stringer + implRegister() +} + +type ( + Register8 byte + Register16 byte + Register32 byte + Register64 byte +) + +type ( + KRegister byte + MMRegister byte + XMMRegister byte + YMMRegister byte + ZMMRegister byte +) + +// RegisterMask is a KRegister used to mask another register. +type RegisterMask struct { + Z bool + K KRegister +} + +// String implements the fmt.Stringer interface. +func (self RegisterMask) String() string { + if !self.Z { + return fmt.Sprintf("{%%%s}", self.K) + } else { + return fmt.Sprintf("{%%%s}{z}", self.K) + } +} + +// MaskedRegister is a Register masked by a RegisterMask. +type MaskedRegister struct { + Reg Register + Mask RegisterMask +} + +// String implements the fmt.Stringer interface. +func (self MaskedRegister) String() string { + return self.Reg.String() + self.Mask.String() +} + +const ( + AL Register8 = iota + CL + DL + BL + SPL + BPL + SIL + DIL + R8b + R9b + R10b + R11b + R12b + R13b + R14b + R15b +) + +const ( + AH = SPL | 0x80 + CH = BPL | 0x80 + DH = SIL | 0x80 + BH = DIL | 0x80 +) + +const ( + AX Register16 = iota + CX + DX + BX + SP + BP + SI + DI + R8w + R9w + R10w + R11w + R12w + R13w + R14w + R15w +) + +const ( + EAX Register32 = iota + ECX + EDX + EBX + ESP + EBP + ESI + EDI + R8d + R9d + R10d + R11d + R12d + R13d + R14d + R15d +) + +const ( + RAX Register64 = iota + RCX + RDX + RBX + RSP + RBP + RSI + RDI + R8 + R9 + R10 + R11 + R12 + R13 + R14 + R15 +) + +const ( + K0 KRegister = iota + K1 + K2 + K3 + K4 + K5 + K6 + K7 +) + +const ( + MM0 MMRegister = iota + MM1 + MM2 + MM3 + MM4 + MM5 + MM6 + MM7 +) + +const ( + XMM0 XMMRegister = iota + XMM1 + XMM2 + XMM3 + XMM4 + XMM5 + XMM6 + XMM7 + XMM8 + XMM9 + XMM10 + XMM11 + XMM12 + XMM13 + XMM14 + XMM15 + XMM16 + XMM17 + XMM18 + XMM19 + XMM20 + XMM21 + XMM22 + XMM23 + XMM24 + XMM25 + XMM26 + XMM27 + XMM28 + XMM29 + XMM30 + XMM31 +) + +const ( + YMM0 YMMRegister = iota + YMM1 + YMM2 + YMM3 + YMM4 + YMM5 + YMM6 + YMM7 + YMM8 + YMM9 + YMM10 + YMM11 + YMM12 + YMM13 + YMM14 + YMM15 + YMM16 + YMM17 + YMM18 + YMM19 + YMM20 + YMM21 + YMM22 + YMM23 + YMM24 + YMM25 + YMM26 + YMM27 + YMM28 + YMM29 + YMM30 + YMM31 +) + +const ( + ZMM0 ZMMRegister = iota + ZMM1 + ZMM2 + ZMM3 + ZMM4 + ZMM5 + ZMM6 + ZMM7 + ZMM8 + ZMM9 + ZMM10 + ZMM11 + ZMM12 + ZMM13 + ZMM14 + ZMM15 + ZMM16 + ZMM17 + ZMM18 + ZMM19 + ZMM20 + ZMM21 + ZMM22 + ZMM23 + ZMM24 + ZMM25 + ZMM26 + ZMM27 + ZMM28 + ZMM29 + ZMM30 + ZMM31 +) + +func (self Register8) implRegister() {} +func (self Register16) implRegister() {} +func (self Register32) implRegister() {} +func (self Register64) implRegister() {} + +func (self KRegister) implRegister() {} +func (self MMRegister) implRegister() {} +func (self XMMRegister) implRegister() {} +func (self YMMRegister) implRegister() {} +func (self ZMMRegister) implRegister() {} + +func (self Register8) String() string { if int(self) >= len(r8names) { return "???" } else { return r8names[self] } } +func (self Register16) String() string { if int(self) >= len(r16names) { return "???" } else { return r16names[self] } } +func (self Register32) String() string { if int(self) >= len(r32names) { return "???" } else { return r32names[self] } } +func (self Register64) String() string { if int(self) >= len(r64names) { return "???" } else { return r64names[self] } } + +func (self KRegister) String() string { if int(self) >= len(knames) { return "???" } else { return knames[self] } } +func (self MMRegister) String() string { if int(self) >= len(mmnames) { return "???" } else { return mmnames[self] } } +func (self XMMRegister) String() string { if int(self) >= len(xmmnames) { return "???" } else { return xmmnames[self] } } +func (self YMMRegister) String() string { if int(self) >= len(ymmnames) { return "???" } else { return ymmnames[self] } } +func (self ZMMRegister) String() string { if int(self) >= len(zmmnames) { return "???" } else { return zmmnames[self] } } + +// Registers maps register name into Register instances. +var Registers = map[string]Register { + "al" : AL, + "cl" : CL, + "dl" : DL, + "bl" : BL, + "spl" : SPL, + "bpl" : BPL, + "sil" : SIL, + "dil" : DIL, + "r8b" : R8b, + "r9b" : R9b, + "r10b" : R10b, + "r11b" : R11b, + "r12b" : R12b, + "r13b" : R13b, + "r14b" : R14b, + "r15b" : R15b, + "ah" : AH, + "ch" : CH, + "dh" : DH, + "bh" : BH, + "ax" : AX, + "cx" : CX, + "dx" : DX, + "bx" : BX, + "sp" : SP, + "bp" : BP, + "si" : SI, + "di" : DI, + "r8w" : R8w, + "r9w" : R9w, + "r10w" : R10w, + "r11w" : R11w, + "r12w" : R12w, + "r13w" : R13w, + "r14w" : R14w, + "r15w" : R15w, + "eax" : EAX, + "ecx" : ECX, + "edx" : EDX, + "ebx" : EBX, + "esp" : ESP, + "ebp" : EBP, + "esi" : ESI, + "edi" : EDI, + "r8d" : R8d, + "r9d" : R9d, + "r10d" : R10d, + "r11d" : R11d, + "r12d" : R12d, + "r13d" : R13d, + "r14d" : R14d, + "r15d" : R15d, + "rax" : RAX, + "rcx" : RCX, + "rdx" : RDX, + "rbx" : RBX, + "rsp" : RSP, + "rbp" : RBP, + "rsi" : RSI, + "rdi" : RDI, + "r8" : R8, + "r9" : R9, + "r10" : R10, + "r11" : R11, + "r12" : R12, + "r13" : R13, + "r14" : R14, + "r15" : R15, + "k0" : K0, + "k1" : K1, + "k2" : K2, + "k3" : K3, + "k4" : K4, + "k5" : K5, + "k6" : K6, + "k7" : K7, + "mm0" : MM0, + "mm1" : MM1, + "mm2" : MM2, + "mm3" : MM3, + "mm4" : MM4, + "mm5" : MM5, + "mm6" : MM6, + "mm7" : MM7, + "xmm0" : XMM0, + "xmm1" : XMM1, + "xmm2" : XMM2, + "xmm3" : XMM3, + "xmm4" : XMM4, + "xmm5" : XMM5, + "xmm6" : XMM6, + "xmm7" : XMM7, + "xmm8" : XMM8, + "xmm9" : XMM9, + "xmm10" : XMM10, + "xmm11" : XMM11, + "xmm12" : XMM12, + "xmm13" : XMM13, + "xmm14" : XMM14, + "xmm15" : XMM15, + "xmm16" : XMM16, + "xmm17" : XMM17, + "xmm18" : XMM18, + "xmm19" : XMM19, + "xmm20" : XMM20, + "xmm21" : XMM21, + "xmm22" : XMM22, + "xmm23" : XMM23, + "xmm24" : XMM24, + "xmm25" : XMM25, + "xmm26" : XMM26, + "xmm27" : XMM27, + "xmm28" : XMM28, + "xmm29" : XMM29, + "xmm30" : XMM30, + "xmm31" : XMM31, + "ymm0" : YMM0, + "ymm1" : YMM1, + "ymm2" : YMM2, + "ymm3" : YMM3, + "ymm4" : YMM4, + "ymm5" : YMM5, + "ymm6" : YMM6, + "ymm7" : YMM7, + "ymm8" : YMM8, + "ymm9" : YMM9, + "ymm10" : YMM10, + "ymm11" : YMM11, + "ymm12" : YMM12, + "ymm13" : YMM13, + "ymm14" : YMM14, + "ymm15" : YMM15, + "ymm16" : YMM16, + "ymm17" : YMM17, + "ymm18" : YMM18, + "ymm19" : YMM19, + "ymm20" : YMM20, + "ymm21" : YMM21, + "ymm22" : YMM22, + "ymm23" : YMM23, + "ymm24" : YMM24, + "ymm25" : YMM25, + "ymm26" : YMM26, + "ymm27" : YMM27, + "ymm28" : YMM28, + "ymm29" : YMM29, + "ymm30" : YMM30, + "ymm31" : YMM31, + "zmm0" : ZMM0, + "zmm1" : ZMM1, + "zmm2" : ZMM2, + "zmm3" : ZMM3, + "zmm4" : ZMM4, + "zmm5" : ZMM5, + "zmm6" : ZMM6, + "zmm7" : ZMM7, + "zmm8" : ZMM8, + "zmm9" : ZMM9, + "zmm10" : ZMM10, + "zmm11" : ZMM11, + "zmm12" : ZMM12, + "zmm13" : ZMM13, + "zmm14" : ZMM14, + "zmm15" : ZMM15, + "zmm16" : ZMM16, + "zmm17" : ZMM17, + "zmm18" : ZMM18, + "zmm19" : ZMM19, + "zmm20" : ZMM20, + "zmm21" : ZMM21, + "zmm22" : ZMM22, + "zmm23" : ZMM23, + "zmm24" : ZMM24, + "zmm25" : ZMM25, + "zmm26" : ZMM26, + "zmm27" : ZMM27, + "zmm28" : ZMM28, + "zmm29" : ZMM29, + "zmm30" : ZMM30, + "zmm31" : ZMM31, +} + +/** Register Name Tables **/ + +var r8names = [...]string { + AL : "al", + CL : "cl", + DL : "dl", + BL : "bl", + SPL : "spl", + BPL : "bpl", + SIL : "sil", + DIL : "dil", + R8b : "r8b", + R9b : "r9b", + R10b : "r10b", + R11b : "r11b", + R12b : "r12b", + R13b : "r13b", + R14b : "r14b", + R15b : "r15b", + AH : "ah", + CH : "ch", + DH : "dh", + BH : "bh", +} + +var r16names = [...]string { + AX : "ax", + CX : "cx", + DX : "dx", + BX : "bx", + SP : "sp", + BP : "bp", + SI : "si", + DI : "di", + R8w : "r8w", + R9w : "r9w", + R10w : "r10w", + R11w : "r11w", + R12w : "r12w", + R13w : "r13w", + R14w : "r14w", + R15w : "r15w", +} + +var r32names = [...]string { + EAX : "eax", + ECX : "ecx", + EDX : "edx", + EBX : "ebx", + ESP : "esp", + EBP : "ebp", + ESI : "esi", + EDI : "edi", + R8d : "r8d", + R9d : "r9d", + R10d : "r10d", + R11d : "r11d", + R12d : "r12d", + R13d : "r13d", + R14d : "r14d", + R15d : "r15d", +} + +var r64names = [...]string { + RAX : "rax", + RCX : "rcx", + RDX : "rdx", + RBX : "rbx", + RSP : "rsp", + RBP : "rbp", + RSI : "rsi", + RDI : "rdi", + R8 : "r8", + R9 : "r9", + R10 : "r10", + R11 : "r11", + R12 : "r12", + R13 : "r13", + R14 : "r14", + R15 : "r15", +} + +var knames = [...]string { + K0: "k0", + K1: "k1", + K2: "k2", + K3: "k3", + K4: "k4", + K5: "k5", + K6: "k6", + K7: "k7", +} + +var mmnames = [...]string { + MM0: "mm0", + MM1: "mm1", + MM2: "mm2", + MM3: "mm3", + MM4: "mm4", + MM5: "mm5", + MM6: "mm6", + MM7: "mm7", +} + +var xmmnames = [...]string { + XMM0 : "xmm0", + XMM1 : "xmm1", + XMM2 : "xmm2", + XMM3 : "xmm3", + XMM4 : "xmm4", + XMM5 : "xmm5", + XMM6 : "xmm6", + XMM7 : "xmm7", + XMM8 : "xmm8", + XMM9 : "xmm9", + XMM10 : "xmm10", + XMM11 : "xmm11", + XMM12 : "xmm12", + XMM13 : "xmm13", + XMM14 : "xmm14", + XMM15 : "xmm15", + XMM16 : "xmm16", + XMM17 : "xmm17", + XMM18 : "xmm18", + XMM19 : "xmm19", + XMM20 : "xmm20", + XMM21 : "xmm21", + XMM22 : "xmm22", + XMM23 : "xmm23", + XMM24 : "xmm24", + XMM25 : "xmm25", + XMM26 : "xmm26", + XMM27 : "xmm27", + XMM28 : "xmm28", + XMM29 : "xmm29", + XMM30 : "xmm30", + XMM31 : "xmm31", +} + +var ymmnames = [...]string { + YMM0 : "ymm0", + YMM1 : "ymm1", + YMM2 : "ymm2", + YMM3 : "ymm3", + YMM4 : "ymm4", + YMM5 : "ymm5", + YMM6 : "ymm6", + YMM7 : "ymm7", + YMM8 : "ymm8", + YMM9 : "ymm9", + YMM10 : "ymm10", + YMM11 : "ymm11", + YMM12 : "ymm12", + YMM13 : "ymm13", + YMM14 : "ymm14", + YMM15 : "ymm15", + YMM16 : "ymm16", + YMM17 : "ymm17", + YMM18 : "ymm18", + YMM19 : "ymm19", + YMM20 : "ymm20", + YMM21 : "ymm21", + YMM22 : "ymm22", + YMM23 : "ymm23", + YMM24 : "ymm24", + YMM25 : "ymm25", + YMM26 : "ymm26", + YMM27 : "ymm27", + YMM28 : "ymm28", + YMM29 : "ymm29", + YMM30 : "ymm30", + YMM31 : "ymm31", +} + +var zmmnames = [...]string { + ZMM0 : "zmm0", + ZMM1 : "zmm1", + ZMM2 : "zmm2", + ZMM3 : "zmm3", + ZMM4 : "zmm4", + ZMM5 : "zmm5", + ZMM6 : "zmm6", + ZMM7 : "zmm7", + ZMM8 : "zmm8", + ZMM9 : "zmm9", + ZMM10 : "zmm10", + ZMM11 : "zmm11", + ZMM12 : "zmm12", + ZMM13 : "zmm13", + ZMM14 : "zmm14", + ZMM15 : "zmm15", + ZMM16 : "zmm16", + ZMM17 : "zmm17", + ZMM18 : "zmm18", + ZMM19 : "zmm19", + ZMM20 : "zmm20", + ZMM21 : "zmm21", + ZMM22 : "zmm22", + ZMM23 : "zmm23", + ZMM24 : "zmm24", + ZMM25 : "zmm25", + ZMM26 : "zmm26", + ZMM27 : "zmm27", + ZMM28 : "zmm28", + ZMM29 : "zmm29", + ZMM30 : "zmm30", + ZMM31 : "zmm31", +} diff --git a/vendor/github.com/cloudwego/iasm/x86_64/utils.go b/vendor/github.com/cloudwego/iasm/x86_64/utils.go new file mode 100644 index 000000000..56c107ff5 --- /dev/null +++ b/vendor/github.com/cloudwego/iasm/x86_64/utils.go @@ -0,0 +1,147 @@ +// +// Copyright 2024 CloudWeGo Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package x86_64 + +import ( + `encoding/binary` + `errors` + `reflect` + `strconv` + `unicode/utf8` + `unsafe` +) + +const ( + _CC_digit = 1 << iota + _CC_ident + _CC_ident0 + _CC_number +) + +func ispow2(v uint64) bool { + return (v & (v - 1)) == 0 +} + +func isdigit(cc rune) bool { + return '0' <= cc && cc <= '9' +} + +func isalpha(cc rune) bool { + return (cc >= 'a' && cc <= 'z') || (cc >= 'A' && cc <= 'Z') +} + +func isident(cc rune) bool { + return cc == '_' || isalpha(cc) || isdigit(cc) +} + +func isident0(cc rune) bool { + return cc == '_' || isalpha(cc) +} + +func isnumber(cc rune) bool { + return (cc == 'b' || cc == 'B') || + (cc == 'o' || cc == 'O') || + (cc == 'x' || cc == 'X') || + (cc >= '0' && cc <= '9') || + (cc >= 'a' && cc <= 'f') || + (cc >= 'A' && cc <= 'F') +} + +func align(v int, n int) int { + return (((v - 1) >> n) + 1) << n +} + +func append8(m *[]byte, v byte) { + *m = append(*m, v) +} + +func append16(m *[]byte, v uint16) { + p := len(*m) + *m = append(*m, 0, 0) + binary.LittleEndian.PutUint16((*m)[p:], v) +} + +func append32(m *[]byte, v uint32) { + p := len(*m) + *m = append(*m, 0, 0, 0, 0) + binary.LittleEndian.PutUint32((*m)[p:], v) +} + +func append64(m *[]byte, v uint64) { + p := len(*m) + *m = append(*m, 0, 0, 0, 0, 0, 0, 0, 0) + binary.LittleEndian.PutUint64((*m)[p:], v) +} + +func expandmm(m *[]byte, n int, v byte) { + sl := (*_GoSlice)(unsafe.Pointer(m)) + nb := sl.len + n + + /* grow as needed */ + if nb > cap(*m) { + *m = growslice(byteType, *m, nb) + } + + /* fill the new area */ + memset(unsafe.Pointer(uintptr(sl.ptr) + uintptr(sl.len)), v, uintptr(n)) + sl.len = nb +} + +func memset(p unsafe.Pointer, c byte, n uintptr) { + if c != 0 { + memsetv(p, c, n) + } else { + memclrNoHeapPointers(p, n) + } +} + +func memsetv(p unsafe.Pointer, c byte, n uintptr) { + for i := uintptr(0); i < n; i++ { + *(*byte)(unsafe.Pointer(uintptr(p) + i)) = c + } +} + +func literal64(v string) (uint64, error) { + var nb int + var ch rune + var ex error + var mm [12]byte + + /* unquote the runes */ + for v != "" { + if ch, _, v, ex = strconv.UnquoteChar(v, '\''); ex != nil { + return 0, ex + } else if nb += utf8.EncodeRune(mm[nb:], ch); nb > 8 { + return 0, errors.New("multi-char constant too large") + } + } + + /* convert to uint64 */ + return *(*uint64)(unsafe.Pointer(&mm)), nil +} + +var ( + byteWrap = reflect.TypeOf(byte(0)) + byteType = (*_GoType)(efaceOf(byteWrap).ptr) +) + +//go:linkname growslice runtime.growslice +func growslice(_ *_GoType, _ []byte, _ int) []byte + +//go:noescape +//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers +func memclrNoHeapPointers(_ unsafe.Pointer, _ uintptr) diff --git a/vendor/github.com/gin-contrib/gzip/.goreleaser.yaml b/vendor/github.com/gin-contrib/gzip/.goreleaser.yaml index aa5453cfc..4c910add4 100644 --- a/vendor/github.com/gin-contrib/gzip/.goreleaser.yaml +++ b/vendor/github.com/gin-contrib/gzip/.goreleaser.yaml @@ -1,57 +1,29 @@ -project_name: queue - builds: - - - # If true, skip the build. + - # If true, skip the build. # Useful for library projects. # Default is false skip: true changelog: - # Set it to true if you wish to skip the changelog generation. - # This may result in an empty release notes on GitHub/GitLab/Gitea. - skip: false - - # Changelog generation implementation to use. - # - # Valid options are: - # - `git`: uses `git log`; - # - `github`: uses the compare GitHub API, appending the author login to the changelog. - # - `gitlab`: uses the compare GitLab API, appending the author name and email to the changelog. - # - `github-native`: uses the GitHub release notes generation API, disables the groups feature. - # - # Defaults to `git`. - use: git - - # Sorts the changelog by the commit's messages. - # Could either be asc, desc or empty - # Default is empty - sort: asc - - # Group commits messages by given regex and title. - # Order value defines the order of the groups. - # Proving no regex means all commits will be grouped under the default group. - # Groups are disabled when using github-native, as it already groups things by itself. - # - # Default is no groups. + use: github groups: - title: Features regexp: "^.*feat[(\\w)]*:+.*$" order: 0 - - title: 'Bug fixes' + - title: "Bug fixes" regexp: "^.*fix[(\\w)]*:+.*$" order: 1 - - title: 'Enhancements' + - title: "Enhancements" regexp: "^.*chore[(\\w)]*:+.*$" order: 2 + - title: "Refactor" + regexp: "^.*refactor[(\\w)]*:+.*$" + order: 3 + - title: "Build process updates" + regexp: ^.*?(build|ci)(\(.+\))??!?:.+$ + order: 4 + - title: "Documentation updates" + regexp: ^.*?docs?(\(.+\))??!?:.+$ + order: 4 - title: Others order: 999 - - filters: - # Commit messages matching the regexp listed here will be removed from - # the changelog - # Default is empty - exclude: - - '^docs' - - 'CICD' - - typo diff --git a/vendor/github.com/go-playground/validator/v10/README.md b/vendor/github.com/go-playground/validator/v10/README.md index a6e1d0b51..e9b2b37f6 100644 --- a/vendor/github.com/go-playground/validator/v10/README.md +++ b/vendor/github.com/go-playground/validator/v10/README.md @@ -1,7 +1,7 @@ Package validator ================= [![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -![Project status](https://img.shields.io/badge/version-10.19.0-green.svg) +![Project status](https://img.shields.io/badge/version-10.20.0-green.svg) [![Build Status](https://travis-ci.org/go-playground/validator.svg?branch=master)](https://travis-ci.org/go-playground/validator) [![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=master&service=github)](https://coveralls.io/github/go-playground/validator?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator) diff --git a/vendor/github.com/go-playground/validator/v10/baked_in.go b/vendor/github.com/go-playground/validator/v10/baked_in.go index 95f56e008..f622c6225 100644 --- a/vendor/github.com/go-playground/validator/v10/baked_in.go +++ b/vendor/github.com/go-playground/validator/v10/baked_in.go @@ -64,8 +64,9 @@ var ( // defines a common or complex set of validation(s) to simplify // adding validation to structs. bakedInAliases = map[string]string{ - "iscolor": "hexcolor|rgb|rgba|hsl|hsla", - "country_code": "iso3166_1_alpha2|iso3166_1_alpha3|iso3166_1_alpha_numeric", + "iscolor": "hexcolor|rgb|rgba|hsl|hsla", + "country_code": "iso3166_1_alpha2|iso3166_1_alpha3|iso3166_1_alpha_numeric", + "eu_country_code": "iso3166_1_alpha2_eu|iso3166_1_alpha3_eu|iso3166_1_alpha_numeric_eu", } // bakedInValidators is the default map of ValidationFunc @@ -133,6 +134,7 @@ var ( "urn_rfc2141": isUrnRFC2141, // RFC 2141 "file": isFile, "filepath": isFilePath, + "base32": isBase32, "base64": isBase64, "base64url": isBase64URL, "base64rawurl": isBase64RawURL, @@ -216,8 +218,11 @@ var ( "datetime": isDatetime, "timezone": isTimeZone, "iso3166_1_alpha2": isIso3166Alpha2, + "iso3166_1_alpha2_eu": isIso3166Alpha2EU, "iso3166_1_alpha3": isIso3166Alpha3, + "iso3166_1_alpha3_eu": isIso3166Alpha3EU, "iso3166_1_alpha_numeric": isIso3166AlphaNumeric, + "iso3166_1_alpha_numeric_eu": isIso3166AlphaNumericEU, "iso3166_2": isIso31662, "iso4217": isIso4217, "iso4217_numeric": isIso4217Numeric, @@ -1399,6 +1404,11 @@ func isPostcodeByIso3166Alpha2Field(fl FieldLevel) bool { return reg.MatchString(field.String()) } +// isBase32 is the validation function for validating if the current field's value is a valid base 32. +func isBase32(fl FieldLevel) bool { + return base32Regex.MatchString(fl.Field().String()) +} + // isBase64 is the validation function for validating if the current field's value is a valid base 64. func isBase64(fl FieldLevel) bool { return base64Regex.MatchString(fl.Field().String()) @@ -2762,12 +2772,24 @@ func isIso3166Alpha2(fl FieldLevel) bool { return iso3166_1_alpha2[val] } +// isIso3166Alpha2EU is the validation function for validating if the current field's value is a valid iso3166-1 alpha-2 European Union country code. +func isIso3166Alpha2EU(fl FieldLevel) bool { + val := fl.Field().String() + return iso3166_1_alpha2_eu[val] +} + // isIso3166Alpha3 is the validation function for validating if the current field's value is a valid iso3166-1 alpha-3 country code. func isIso3166Alpha3(fl FieldLevel) bool { val := fl.Field().String() return iso3166_1_alpha3[val] } +// isIso3166Alpha3EU is the validation function for validating if the current field's value is a valid iso3166-1 alpha-3 European Union country code. +func isIso3166Alpha3EU(fl FieldLevel) bool { + val := fl.Field().String() + return iso3166_1_alpha3_eu[val] +} + // isIso3166AlphaNumeric is the validation function for validating if the current field's value is a valid iso3166-1 alpha-numeric country code. func isIso3166AlphaNumeric(fl FieldLevel) bool { field := fl.Field() @@ -2790,6 +2812,28 @@ func isIso3166AlphaNumeric(fl FieldLevel) bool { return iso3166_1_alpha_numeric[code] } +// isIso3166AlphaNumericEU is the validation function for validating if the current field's value is a valid iso3166-1 alpha-numeric European Union country code. +func isIso3166AlphaNumericEU(fl FieldLevel) bool { + field := fl.Field() + + var code int + switch field.Kind() { + case reflect.String: + i, err := strconv.Atoi(field.String()) + if err != nil { + return false + } + code = i % 1000 + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + code = int(field.Int() % 1000) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + code = int(field.Uint() % 1000) + default: + panic(fmt.Sprintf("Bad field type %T", field.Interface())) + } + return iso3166_1_alpha_numeric_eu[code] +} + // isIso31662 is the validation function for validating if the current field's value is a valid iso3166-2 code. func isIso31662(fl FieldLevel) bool { val := fl.Field().String() diff --git a/vendor/github.com/go-playground/validator/v10/country_codes.go b/vendor/github.com/go-playground/validator/v10/country_codes.go index 0119f0574..e507149d1 100644 --- a/vendor/github.com/go-playground/validator/v10/country_codes.go +++ b/vendor/github.com/go-playground/validator/v10/country_codes.go @@ -54,6 +54,15 @@ var iso3166_1_alpha2 = map[string]bool{ "EH": true, "YE": true, "ZM": true, "ZW": true, "XK": true, } +var iso3166_1_alpha2_eu = map[string]bool{ + "AT": true, "BE": true, "BG": true, "HR": true, "CY": true, + "CZ": true, "DK": true, "EE": true, "FI": true, "FR": true, + "DE": true, "GR": true, "HU": true, "IE": true, "IT": true, + "LV": true, "LT": true, "LU": true, "MT": true, "NL": true, + "PL": true, "PT": true, "RO": true, "SK": true, "SI": true, + "ES": true, "SE": true, +} + var iso3166_1_alpha3 = map[string]bool{ // see: https://www.iso.org/iso-3166-country-codes.html "AFG": true, "ALB": true, "DZA": true, "ASM": true, "AND": true, @@ -107,6 +116,15 @@ var iso3166_1_alpha3 = map[string]bool{ "VNM": true, "VGB": true, "VIR": true, "WLF": true, "ESH": true, "YEM": true, "ZMB": true, "ZWE": true, "ALA": true, "UNK": true, } + +var iso3166_1_alpha3_eu = map[string]bool{ + "AUT": true, "BEL": true, "BGR": true, "HRV": true, "CYP": true, + "CZE": true, "DNK": true, "EST": true, "FIN": true, "FRA": true, + "DEU": true, "GRC": true, "HUN": true, "IRL": true, "ITA": true, + "LVA": true, "LTU": true, "LUX": true, "MLT": true, "NLD": true, + "POL": true, "PRT": true, "ROU": true, "SVK": true, "SVN": true, + "ESP": true, "SWE": true, +} var iso3166_1_alpha_numeric = map[int]bool{ // see: https://www.iso.org/iso-3166-country-codes.html 4: true, 8: true, 12: true, 16: true, 20: true, @@ -161,6 +179,15 @@ var iso3166_1_alpha_numeric = map[int]bool{ 887: true, 894: true, 716: true, 248: true, 153: true, } +var iso3166_1_alpha_numeric_eu = map[int]bool{ + 40: true, 56: true, 100: true, 191: true, 196: true, + 200: true, 208: true, 233: true, 246: true, 250: true, + 276: true, 300: true, 348: true, 372: true, 380: true, + 428: true, 440: true, 442: true, 470: true, 528: true, + 616: true, 620: true, 642: true, 703: true, 705: true, + 724: true, 752: true, +} + var iso3166_2 = map[string]bool{ "AD-02": true, "AD-03": true, "AD-04": true, "AD-05": true, "AD-06": true, "AD-07": true, "AD-08": true, "AE-AJ": true, "AE-AZ": true, "AE-DU": true, diff --git a/vendor/github.com/go-playground/validator/v10/doc.go b/vendor/github.com/go-playground/validator/v10/doc.go index b47409188..2e8092a90 100644 --- a/vendor/github.com/go-playground/validator/v10/doc.go +++ b/vendor/github.com/go-playground/validator/v10/doc.go @@ -916,6 +916,15 @@ according to the RFC 2141 spec. Usage: urn_rfc2141 +# Base32 String + +This validates that a string value contains a valid bas324 value. +Although an empty string is valid base32 this will report an empty string +as an error, if you wish to accept an empty string as valid you can use +this with the omitempty tag. + + Usage: base32 + # Base64 String This validates that a string value contains a valid base64 value. diff --git a/vendor/github.com/go-playground/validator/v10/regexes.go b/vendor/github.com/go-playground/validator/v10/regexes.go index af98d8daa..f39a4667d 100644 --- a/vendor/github.com/go-playground/validator/v10/regexes.go +++ b/vendor/github.com/go-playground/validator/v10/regexes.go @@ -17,6 +17,7 @@ const ( hslaRegexString = "^hsla\\(\\s*(?:0|[1-9]\\d?|[12]\\d\\d|3[0-5]\\d|360)\\s*,\\s*(?:(?:0|[1-9]\\d?|100)%)\\s*,\\s*(?:(?:0|[1-9]\\d?|100)%)\\s*,\\s*(?:(?:0.[1-9]*)|[01])\\s*\\)$" emailRegexString = "^(?:(?:(?:(?:[a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+(?:\\.([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])+)*)|(?:(?:\\x22)(?:(?:(?:(?:\\x20|\\x09)*(?:\\x0d\\x0a))?(?:\\x20|\\x09)+)?(?:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(?:(?:[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}]))))*(?:(?:(?:\\x20|\\x09)*(?:\\x0d\\x0a))?(\\x20|\\x09)+)?(?:\\x22))))@(?:(?:(?:[a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(?:(?:[a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])(?:[a-zA-Z]|\\d|-|\\.|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*(?:[a-zA-Z]|\\d|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.)+(?:(?:[a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])|(?:(?:[a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])(?:[a-zA-Z]|\\d|-|\\.|~|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])*(?:[a-zA-Z]|[\\x{00A0}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFEF}])))\\.?$" e164RegexString = "^\\+[1-9]?[0-9]{7,14}$" + base32RegexString = "^(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}=|[A-Z2-7]{8})$" base64RegexString = "^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=|[A-Za-z0-9+\\/]{4})$" base64URLRegexString = "^(?:[A-Za-z0-9-_]{4})*(?:[A-Za-z0-9-_]{2}==|[A-Za-z0-9-_]{3}=|[A-Za-z0-9-_]{4})$" base64RawURLRegexString = "^(?:[A-Za-z0-9-_]{4})*(?:[A-Za-z0-9-_]{2,4})$" @@ -31,7 +32,7 @@ const ( uUID4RFC4122RegexString = "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" uUID5RFC4122RegexString = "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-5[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" uUIDRFC4122RegexString = "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" - uLIDRegexString = "^[A-HJKMNP-TV-Z0-9]{26}$" + uLIDRegexString = "^(?i)[A-HJKMNP-TV-Z0-9]{26}$" md4RegexString = "^[0-9a-f]{32}$" md5RegexString = "^[0-9a-f]{32}$" sha256RegexString = "^[0-9a-f]{64}$" @@ -89,6 +90,7 @@ var ( hslaRegex = regexp.MustCompile(hslaRegexString) e164Regex = regexp.MustCompile(e164RegexString) emailRegex = regexp.MustCompile(emailRegexString) + base32Regex = regexp.MustCompile(base32RegexString) base64Regex = regexp.MustCompile(base64RegexString) base64URLRegex = regexp.MustCompile(base64URLRegexString) base64RawURLRegex = regexp.MustCompile(base64RawURLRegexString) diff --git a/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go b/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go index ce7dd4af1..76df2d5b6 100644 --- a/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go +++ b/vendor/github.com/pelletier/go-toml/v2/internal/tracker/seen.go @@ -57,7 +57,11 @@ type SeenTracker struct { currentIdx int } -var pool sync.Pool +var pool = sync.Pool{ + New: func() interface{} { + return &SeenTracker{} + }, +} func (s *SeenTracker) reset() { // Always contains a root element at index 0. @@ -331,12 +335,6 @@ func (s *SeenTracker) checkArray(node *unstable.Node) (first bool, err error) { } func (s *SeenTracker) checkInlineTable(node *unstable.Node) (first bool, err error) { - if pool.New == nil { - pool.New = func() interface{} { - return &SeenTracker{} - } - } - s = pool.Get().(*SeenTracker) s.reset() diff --git a/vendor/github.com/pelletier/go-toml/v2/marshaler.go b/vendor/github.com/pelletier/go-toml/v2/marshaler.go index ffc992720..7f4e20c12 100644 --- a/vendor/github.com/pelletier/go-toml/v2/marshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/marshaler.go @@ -1025,6 +1025,10 @@ func (enc *Encoder) encodeSliceAsArrayTable(b []byte, ctx encoderCtx, v reflect. scratch = enc.commented(ctx.commented, scratch) + if enc.indentTables { + scratch = enc.indent(ctx.indent, scratch) + } + scratch = append(scratch, "[["...) for i, k := range ctx.parentKey { diff --git a/vendor/google.golang.org/protobuf/encoding/protojson/encode.go b/vendor/google.golang.org/protobuf/encoding/protojson/encode.go index 3f75098b6..29846df22 100644 --- a/vendor/google.golang.org/protobuf/encoding/protojson/encode.go +++ b/vendor/google.golang.org/protobuf/encoding/protojson/encode.go @@ -25,15 +25,17 @@ const defaultIndent = " " // Format formats the message as a multiline string. // This function is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func Format(m proto.Message) string { return MarshalOptions{Multiline: true}.Format(m) } // Marshal writes the given [proto.Message] in JSON format using default options. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func Marshal(m proto.Message) ([]byte, error) { return MarshalOptions{}.Marshal(m) } @@ -110,8 +112,9 @@ type MarshalOptions struct { // Format formats the message as a string. // This method is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func (o MarshalOptions) Format(m proto.Message) string { if m == nil || !m.ProtoReflect().IsValid() { return "" // invalid syntax, but okay since this is for debugging @@ -122,8 +125,9 @@ func (o MarshalOptions) Format(m proto.Message) string { } // Marshal marshals the given [proto.Message] in the JSON format using options in -// MarshalOptions. Do not depend on the output being stable. It may change over -// time across different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return o.marshal(nil, m) } diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go index 95967e811..1f57e6610 100644 --- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go @@ -27,15 +27,17 @@ const defaultIndent = " " // Format formats the message as a multiline string. // This function is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func Format(m proto.Message) string { return MarshalOptions{Multiline: true}.Format(m) } // Marshal writes the given [proto.Message] in textproto format using default -// options. Do not depend on the output being stable. It may change over time -// across different versions of the program. +// options. Do not depend on the output being stable. Its output will change +// across different builds of your program, even when using the same version of +// the protobuf module. func Marshal(m proto.Message) ([]byte, error) { return MarshalOptions{}.Marshal(m) } @@ -84,8 +86,9 @@ type MarshalOptions struct { // Format formats the message as a string. // This method is only intended for human consumption and ignores errors. -// Do not depend on the output being stable. It may change over time across -// different versions of the program. +// Do not depend on the output being stable. Its output will change across +// different builds of your program, even when using the same version of the +// protobuf module. func (o MarshalOptions) Format(m proto.Message) string { if m == nil || !m.ProtoReflect().IsValid() { return "" // invalid syntax, but okay since this is for debugging @@ -98,8 +101,9 @@ func (o MarshalOptions) Format(m proto.Message) string { } // Marshal writes the given [proto.Message] in textproto format using options in -// MarshalOptions object. Do not depend on the output being stable. It may -// change over time across different versions of the program. +// MarshalOptions object. Do not depend on the output being stable. Its output +// will change across different builds of your program, even when using the +// same version of the protobuf module. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { return o.marshal(nil, m) } diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go index a45625c8d..87e46bd4d 100644 --- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go @@ -252,6 +252,7 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record fu {rv.MethodByName("Values"), "Values"}, {rv.MethodByName("ReservedNames"), "ReservedNames"}, {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, + {rv.MethodByName("IsClosed"), "IsClosed"}, }...) case protoreflect.EnumValueDescriptor: diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb index 18f075687..f691305eb 100644 Binary files a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb and b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb differ diff --git a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go index 373d20837..7e87c7604 100644 --- a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +++ b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go @@ -32,6 +32,7 @@ var byteType = reflect.TypeOf(byte(0)) func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor { f := new(filedesc.Field) f.L0.ParentFile = filedesc.SurrogateProto2 + f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures for len(tag) > 0 { i := strings.IndexByte(tag, ',') if i < 0 { @@ -107,8 +108,7 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri f.L1.StringName.InitJSON(jsonName) } case s == "packed": - f.L1.HasPacked = true - f.L1.IsPacked = true + f.L1.EditionFeatures.IsPacked = true case strings.HasPrefix(s, "weak="): f.L1.IsWeak = true f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):])) diff --git a/vendor/google.golang.org/protobuf/internal/errors/errors.go b/vendor/google.golang.org/protobuf/internal/errors/errors.go index 20c17b35e..d96719829 100644 --- a/vendor/google.golang.org/protobuf/internal/errors/errors.go +++ b/vendor/google.golang.org/protobuf/internal/errors/errors.go @@ -87,3 +87,18 @@ func InvalidUTF8(name string) error { func RequiredNotSet(name string) error { return New("required field %v not set", name) } + +type SizeMismatchError struct { + Calculated, Measured int +} + +func (e *SizeMismatchError) Error() string { + return fmt.Sprintf("size mismatch (see https://github.com/golang/protobuf/issues/1609): calculated=%d, measured=%d", e.Calculated, e.Measured) +} + +func MismatchedSizeCalculation(calculated, measured int) error { + return &SizeMismatchError{ + Calculated: calculated, + Measured: measured, + } +} diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 8826bcf40..ece53bea3 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -7,6 +7,7 @@ package filedesc import ( "bytes" "fmt" + "strings" "sync" "sync/atomic" @@ -108,9 +109,12 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } func (fd *File) Parent() protoreflect.Descriptor { return nil } func (fd *File) Index() int { return 0 } func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax } -func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } -func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } -func (fd *File) IsPlaceholder() bool { return false } + +// Not exported and just used to reconstruct the original FileDescriptor proto +func (fd *File) Edition() int32 { return int32(fd.L1.Edition) } +func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } +func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } +func (fd *File) IsPlaceholder() bool { return false } func (fd *File) Options() protoreflect.ProtoMessage { if f := fd.lazyInit().Options; f != nil { return f() @@ -202,6 +206,9 @@ func (ed *Enum) lazyInit() *EnumL2 { ed.L0.ParentFile.lazyInit() // implicitly initializes L2 return ed.L2 } +func (ed *Enum) IsClosed() bool { + return !ed.L1.EditionFeatures.IsOpenEnum +} func (ed *EnumValue) Options() protoreflect.ProtoMessage { if f := ed.L1.Options; f != nil { @@ -251,10 +258,6 @@ type ( StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsWeak bool // promoted from google.protobuf.FieldOptions - HasPacked bool // promoted from google.protobuf.FieldOptions - IsPacked bool // promoted from google.protobuf.FieldOptions - HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions - EnforceUTF8 bool // promoted from google.protobuf.FieldOptions Default defaultValue ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields Enum protoreflect.EnumDescriptor @@ -331,8 +334,7 @@ func (fd *Field) HasPresence() bool { if fd.L1.Cardinality == protoreflect.Repeated { return false } - explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence - return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil + return fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil } func (fd *Field) HasOptionalKeyword() bool { return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional @@ -345,14 +347,7 @@ func (fd *Field) IsPacked() bool { case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: return false } - if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { - return fd.L1.EditionFeatures.IsPacked - } - if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { - // proto3 repeated fields are packed by default. - return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked + return fd.L1.EditionFeatures.IsPacked } func (fd *Field) IsExtension() bool { return false } func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } @@ -399,13 +394,7 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} // WARNING: This method is exempt from the compatibility promise and may be // removed in the future without warning. func (fd *Field) EnforceUTF8() bool { - if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { - return fd.L1.EditionFeatures.IsUTF8Validated - } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } - return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 + return fd.L1.EditionFeatures.IsUTF8Validated } func (od *Oneof) IsSynthetic() bool { @@ -438,7 +427,6 @@ type ( Options func() protoreflect.ProtoMessage StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto - IsPacked bool // promoted from google.protobuf.FieldOptions Default defaultValue Enum protoreflect.EnumDescriptor Message protoreflect.MessageDescriptor @@ -461,7 +449,16 @@ func (xd *Extension) HasPresence() bool { return xd.L1.Cardi func (xd *Extension) HasOptionalKeyword() bool { return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional } -func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } +func (xd *Extension) IsPacked() bool { + if xd.L1.Cardinality != protoreflect.Repeated { + return false + } + switch xd.L1.Kind { + case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: + return false + } + return xd.L1.EditionFeatures.IsPacked +} func (xd *Extension) IsExtension() bool { return true } func (xd *Extension) IsWeak() bool { return false } func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated } @@ -542,8 +539,9 @@ func (md *Method) ProtoInternal(pragma.DoNotImplement) {} // Surrogate files are can be used to create standalone descriptors // where the syntax is only information derived from the parent file. var ( - SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} - SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} + SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} + SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} + SurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}} ) type ( @@ -585,6 +583,34 @@ func (s *stringName) InitJSON(name string) { s.nameJSON = name } +// Returns true if this field is structured like the synthetic field of a proto2 +// group. This allows us to expand our treatment of delimited fields without +// breaking proto2 files that have been upgraded to editions. +func isGroupLike(fd protoreflect.FieldDescriptor) bool { + // Groups are always group types. + if fd.Kind() != protoreflect.GroupKind { + return false + } + + // Group fields are always the lowercase type name. + if strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) { + return false + } + + // Groups could only be defined in the same file they're used. + if fd.Message().ParentFile() != fd.ParentFile() { + return false + } + + // Group messages are always defined in the same scope as the field. File + // level extensions will compare NULL == NULL here, which is why the file + // comparison above is necessary to ensure both come from the same file. + if fd.IsExtension() { + return fd.Parent() == fd.Message().Parent() + } + return fd.ContainingMessage() == fd.Message().Parent() +} + func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { s.once.Do(func() { if fd.IsExtension() { @@ -605,7 +631,7 @@ func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { // Format the text name. s.nameText = string(fd.Name()) - if fd.Kind() == protoreflect.GroupKind { + if isGroupLike(fd) { s.nameText = string(fd.Message().Name()) } } diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go index 237e64fd2..3bc3b1cdf 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go @@ -113,8 +113,10 @@ func (fd *File) unmarshalSeed(b []byte) { switch string(v) { case "proto2": fd.L1.Syntax = protoreflect.Proto2 + fd.L1.Edition = EditionProto2 case "proto3": fd.L1.Syntax = protoreflect.Proto3 + fd.L1.Edition = EditionProto3 case "editions": fd.L1.Syntax = protoreflect.Editions default: @@ -177,11 +179,10 @@ func (fd *File) unmarshalSeed(b []byte) { // If syntax is missing, it is assumed to be proto2. if fd.L1.Syntax == 0 { fd.L1.Syntax = protoreflect.Proto2 + fd.L1.Edition = EditionProto2 } - if fd.L1.Syntax == protoreflect.Editions { - fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) - } + fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) // Parse editions features from options if any if options != nil { @@ -267,6 +268,7 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protorefl ed.L0.ParentFile = pf ed.L0.Parent = pd ed.L0.Index = i + ed.L1.EditionFeatures = featuresFromParentDesc(ed.Parent()) var numValues int for b := b; len(b) > 0; { @@ -443,6 +445,7 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd prot xd.L0.ParentFile = pf xd.L0.Parent = pd xd.L0.Index = i + xd.L1.EditionFeatures = featuresFromParentDesc(pd) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) @@ -467,6 +470,38 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd prot xd.L0.FullName = appendFullName(sb, pd.FullName(), v) case genid.FieldDescriptorProto_Extendee_field_number: xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v)) + case genid.FieldDescriptorProto_Options_field_number: + xd.unmarshalOptions(v) + } + default: + m := protowire.ConsumeFieldValue(num, typ, b) + b = b[m:] + } + } + + if xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { + xd.L1.Kind = protoreflect.GroupKind + } +} + +func (xd *Extension) unmarshalOptions(b []byte) { + for len(b) > 0 { + num, typ, n := protowire.ConsumeTag(b) + b = b[n:] + switch typ { + case protowire.VarintType: + v, m := protowire.ConsumeVarint(b) + b = b[m:] + switch num { + case genid.FieldOptions_Packed_field_number: + xd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) + } + case protowire.BytesType: + v, m := protowire.ConsumeBytes(b) + b = b[m:] + switch num { + case genid.FieldOptions_Features_field_number: + xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) } default: m := protowire.ConsumeFieldValue(num, typ, b) diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index 482a61cc1..570181eb4 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -466,10 +466,10 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref b = b[m:] } } - if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { + if fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { fd.L1.Kind = protoreflect.GroupKind } - if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { + if fd.L1.EditionFeatures.IsLegacyRequired { fd.L1.Cardinality = protoreflect.Required } if rawTypeName != nil { @@ -496,13 +496,11 @@ func (fd *Field) unmarshalOptions(b []byte) { b = b[m:] switch num { case genid.FieldOptions_Packed_field_number: - fd.L1.HasPacked = true - fd.L1.IsPacked = protowire.DecodeBool(v) + fd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v) case genid.FieldOptions_Weak_field_number: fd.L1.IsWeak = protowire.DecodeBool(v) case FieldOptions_EnforceUTF8: - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) + fd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) @@ -548,7 +546,6 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { var rawTypeName []byte var rawOptions []byte - xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) xd.L2 = new(ExtensionL2) for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) @@ -572,7 +569,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v case genid.FieldDescriptorProto_Options_field_number: - xd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } default: @@ -580,12 +576,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { b = b[m:] } } - if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { - xd.L1.Kind = protoreflect.GroupKind - } - if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { - xd.L1.Cardinality = protoreflect.Required - } if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch xd.L1.Kind { @@ -598,32 +588,6 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions) } -func (xd *Extension) unmarshalOptions(b []byte) { - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) - b = b[n:] - switch typ { - case protowire.VarintType: - v, m := protowire.ConsumeVarint(b) - b = b[m:] - switch num { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } - case protowire.BytesType: - v, m := protowire.ConsumeBytes(b) - b = b[m:] - switch num { - case genid.FieldOptions_Features_field_number: - xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) - } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] - } - } -} - func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { var rawMethods [][]byte var rawOptions []byte diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go index 0375a49d4..d1e16a26d 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go @@ -14,9 +14,13 @@ import ( ) var defaultsCache = make(map[Edition]EditionFeatures) +var defaultsKeys = []Edition{} func init() { unmarshalEditionDefaults(editiondefaults.Defaults) + SurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2) + SurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3) + SurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023) } func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { @@ -110,6 +114,7 @@ func unmarshalEditionDefault(b []byte) { } } defaultsCache[ed] = fs + defaultsKeys = append(defaultsKeys, ed) } func unmarshalEditionDefaults(b []byte) { @@ -135,8 +140,15 @@ func unmarshalEditionDefaults(b []byte) { } func getFeaturesFor(ed Edition) EditionFeatures { - if def, ok := defaultsCache[ed]; ok { - return def + match := EditionUnknown + for _, key := range defaultsKeys { + if key > ed { + break + } + match = key + } + if match == EditionUnknown { + panic(fmt.Sprintf("unsupported edition: %v", ed)) } - panic(fmt.Sprintf("unsupported edition: %v", ed)) + return defaultsCache[match] } diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go index 28240ebc5..bfb3b8417 100644 --- a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +++ b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go @@ -63,6 +63,7 @@ func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return des func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues } func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames } func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges } +func (e PlaceholderEnum) IsClosed() bool { return false } func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return } func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go index fd9015e8e..9a652a2b4 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go @@ -10,7 +10,7 @@ import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" ) -const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" +const File_google_protobuf_go_features_proto = "google/protobuf/go_features.proto" // Names for google.protobuf.GoFeatures. const ( diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go index 3fadd241e..78ee47e44 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go @@ -233,9 +233,15 @@ func sizeMessageInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { } func appendMessageInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { + calculatedSize := f.mi.sizePointer(p.Elem(), opts) b = protowire.AppendVarint(b, f.wiretag) - b = protowire.AppendVarint(b, uint64(f.mi.sizePointer(p.Elem(), opts))) - return f.mi.marshalAppendPointer(b, p.Elem(), opts) + b = protowire.AppendVarint(b, uint64(calculatedSize)) + before := len(b) + b, err := f.mi.marshalAppendPointer(b, p.Elem(), opts) + if measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize) + } + return b, err } func consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { @@ -262,14 +268,21 @@ func isInitMessageInfo(p pointer, f *coderFieldInfo) error { return f.mi.checkInitializedPointer(p.Elem()) } -func sizeMessage(m proto.Message, tagsize int, _ marshalOptions) int { - return protowire.SizeBytes(proto.Size(m)) + tagsize +func sizeMessage(m proto.Message, tagsize int, opts marshalOptions) int { + return protowire.SizeBytes(opts.Options().Size(m)) + tagsize } func appendMessage(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { + mopts := opts.Options() + calculatedSize := mopts.Size(m) b = protowire.AppendVarint(b, wiretag) - b = protowire.AppendVarint(b, uint64(proto.Size(m))) - return opts.Options().MarshalAppend(b, m) + b = protowire.AppendVarint(b, uint64(calculatedSize)) + before := len(b) + b, err := mopts.MarshalAppend(b, m) + if measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize) + } + return b, err } func consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { @@ -405,8 +418,8 @@ func consumeGroupType(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf return f.mi.unmarshalPointer(b, p.Elem(), f.num, opts) } -func sizeGroup(m proto.Message, tagsize int, _ marshalOptions) int { - return 2*tagsize + proto.Size(m) +func sizeGroup(m proto.Message, tagsize int, opts marshalOptions) int { + return 2*tagsize + opts.Options().Size(m) } func appendGroup(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { @@ -482,10 +495,14 @@ func appendMessageSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshal b = protowire.AppendVarint(b, f.wiretag) siz := f.mi.sizePointer(v, opts) b = protowire.AppendVarint(b, uint64(siz)) + before := len(b) b, err = f.mi.marshalAppendPointer(b, v, opts) if err != nil { return b, err } + if measuredSize := len(b) - before; siz != measuredSize { + return nil, errors.MismatchedSizeCalculation(siz, measuredSize) + } } return b, nil } @@ -520,28 +537,34 @@ func isInitMessageSliceInfo(p pointer, f *coderFieldInfo) error { return nil } -func sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, _ marshalOptions) int { +func sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, opts marshalOptions) int { + mopts := opts.Options() s := p.PointerSlice() n := 0 for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) - n += protowire.SizeBytes(proto.Size(m)) + tagsize + n += protowire.SizeBytes(mopts.Size(m)) + tagsize } return n } func appendMessageSlice(b []byte, p pointer, wiretag uint64, goType reflect.Type, opts marshalOptions) ([]byte, error) { + mopts := opts.Options() s := p.PointerSlice() var err error for _, v := range s { m := asMessage(v.AsValueOf(goType.Elem())) b = protowire.AppendVarint(b, wiretag) - siz := proto.Size(m) + siz := mopts.Size(m) b = protowire.AppendVarint(b, uint64(siz)) - b, err = opts.Options().MarshalAppend(b, m) + before := len(b) + b, err = mopts.MarshalAppend(b, m) if err != nil { return b, err } + if measuredSize := len(b) - before; siz != measuredSize { + return nil, errors.MismatchedSizeCalculation(siz, measuredSize) + } } return b, nil } @@ -582,11 +605,12 @@ func isInitMessageSlice(p pointer, goType reflect.Type) error { // Slices of messages func sizeMessageSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { + mopts := opts.Options() list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() - n += protowire.SizeBytes(proto.Size(m)) + tagsize + n += protowire.SizeBytes(mopts.Size(m)) + tagsize } return n } @@ -597,13 +621,17 @@ func appendMessageSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() b = protowire.AppendVarint(b, wiretag) - siz := proto.Size(m) + siz := mopts.Size(m) b = protowire.AppendVarint(b, uint64(siz)) + before := len(b) var err error b, err = mopts.MarshalAppend(b, m) if err != nil { return b, err } + if measuredSize := len(b) - before; siz != measuredSize { + return nil, errors.MismatchedSizeCalculation(siz, measuredSize) + } } return b, nil } @@ -651,11 +679,12 @@ var coderMessageSliceValue = valueCoderFuncs{ } func sizeGroupSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { + mopts := opts.Options() list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() - n += 2*tagsize + proto.Size(m) + n += 2*tagsize + mopts.Size(m) } return n } @@ -738,12 +767,13 @@ func makeGroupSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) } } -func sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, _ marshalOptions) int { +func sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, opts marshalOptions) int { + mopts := opts.Options() s := p.PointerSlice() n := 0 for _, v := range s { m := asMessage(v.AsValueOf(messageType.Elem())) - n += 2*tagsize + proto.Size(m) + n += 2*tagsize + mopts.Size(m) } return n } diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go index 111b9d16f..fb35f0bae 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go @@ -9,6 +9,7 @@ import ( "sort" "google.golang.org/protobuf/encoding/protowire" + "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" ) @@ -240,11 +241,16 @@ func appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coder size += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) size += mapi.valFuncs.size(val, mapValTagSize, opts) b = protowire.AppendVarint(b, uint64(size)) + before := len(b) b, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts) if err != nil { return nil, err } - return mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts) + b, err = mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts) + if measuredSize := len(b) - before; size != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(size, measuredSize) + } + return b, err } else { key := mapi.conv.keyConv.PBValueOf(keyrv).MapKey() val := pointerOfValue(valrv) @@ -259,7 +265,12 @@ func appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coder } b = protowire.AppendVarint(b, mapi.valWiretag) b = protowire.AppendVarint(b, uint64(valSize)) - return f.mi.marshalAppendPointer(b, val, opts) + before := len(b) + b, err = f.mi.marshalAppendPointer(b, val, opts) + if measuredSize := len(b) - before; valSize != measuredSize && err == nil { + return nil, errors.MismatchedSizeCalculation(valSize, measuredSize) + } + return b, err } } diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go index c2a803bb2..c1c33d005 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go @@ -167,6 +167,7 @@ func aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { ed := &filedesc.Enum{L2: new(filedesc.EnumL2)} ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum ed.L0.ParentFile = filedesc.SurrogateProto3 + ed.L1.EditionFeatures = ed.L0.ParentFile.L1.EditionFeatures ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{}) // TODO: Use the presence of a UnmarshalJSON method to determine proto2? diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go index 87b30d050..6e8677ee6 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go @@ -118,7 +118,7 @@ func (xi *ExtensionInfo) initFromLegacy() { xd.L1.Number = protoreflect.FieldNumber(xi.Field) xd.L1.Cardinality = fd.L1.Cardinality xd.L1.Kind = fd.L1.Kind - xd.L2.IsPacked = fd.L1.IsPacked + xd.L1.EditionFeatures = fd.L1.EditionFeatures xd.L2.Default = fd.L1.Default xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType) xd.L2.Enum = ed diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go index 9ab091086..b649f1124 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go @@ -7,7 +7,7 @@ package impl import ( "bytes" "compress/gzip" - "io/ioutil" + "io" "sync" "google.golang.org/protobuf/internal/filedesc" @@ -51,7 +51,7 @@ func legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor { if err != nil { panic(err) } - b2, err := ioutil.ReadAll(zr) + b2, err := io.ReadAll(zr) if err != nil { panic(err) } diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go index 2ab2c6297..950e9a1fe 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go @@ -204,6 +204,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName } } + md.L1.EditionFeatures = md.L0.ParentFile.L1.EditionFeatures // Obtain a list of oneof wrapper types. var oneofWrappers []reflect.Type methods := make([]reflect.Method, 0, 2) @@ -250,6 +251,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName od := &md.L2.Oneofs.List[n] od.L0.FullName = md.FullName().Append(protoreflect.Name(tag)) od.L0.ParentFile = md.L0.ParentFile + od.L1.EditionFeatures = md.L1.EditionFeatures od.L0.Parent = md od.L0.Index = n @@ -260,6 +262,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName aberrantAppendField(md, f.Type, tag, "", "") fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1] fd.L1.ContainingOneof = od + fd.L1.EditionFeatures = od.L1.EditionFeatures od.L1.Fields.List = append(od.L1.Fields.List, fd) } } @@ -307,14 +310,14 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, fd.L0.Parent = md fd.L0.Index = n - if fd.L1.IsWeak || fd.L1.HasPacked { + if fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked { fd.L1.Options = func() protoreflect.ProtoMessage { opts := descopts.Field.ProtoReflect().New() if fd.L1.IsWeak { opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) } - if fd.L1.HasPacked { - opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked)) + if fd.L1.EditionFeatures.IsPacked { + opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked)) } return opts.Interface() } @@ -344,6 +347,7 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, md2.L0.ParentFile = md.L0.ParentFile md2.L0.Parent = md md2.L0.Index = n + md2.L1.EditionFeatures = md.L1.EditionFeatures md2.L1.IsMapEntry = true md2.L2.Options = func() protoreflect.ProtoMessage { diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go index d9ea010be..a6f0dbdad 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go @@ -247,11 +247,10 @@ func (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.V } } } -func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { +func (m *extensionMap) Has(xd protoreflect.ExtensionTypeDescriptor) (ok bool) { if m == nil { return false } - xd := xt.TypeDescriptor() x, ok := (*m)[int32(xd.Number())] if !ok { return false @@ -261,25 +260,22 @@ func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { return x.Value().List().Len() > 0 case xd.IsMap(): return x.Value().Map().Len() > 0 - case xd.Message() != nil: - return x.Value().Message().IsValid() } return true } -func (m *extensionMap) Clear(xt protoreflect.ExtensionType) { - delete(*m, int32(xt.TypeDescriptor().Number())) +func (m *extensionMap) Clear(xd protoreflect.ExtensionTypeDescriptor) { + delete(*m, int32(xd.Number())) } -func (m *extensionMap) Get(xt protoreflect.ExtensionType) protoreflect.Value { - xd := xt.TypeDescriptor() +func (m *extensionMap) Get(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value { if m != nil { if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } } - return xt.Zero() + return xd.Type().Zero() } -func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) { - xd := xt.TypeDescriptor() +func (m *extensionMap) Set(xd protoreflect.ExtensionTypeDescriptor, v protoreflect.Value) { + xt := xd.Type() isValid := true switch { case !xt.IsValidValue(v): @@ -292,7 +288,7 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) isValid = v.Message().IsValid() } if !isValid { - panic(fmt.Sprintf("%v: assigning invalid value", xt.TypeDescriptor().FullName())) + panic(fmt.Sprintf("%v: assigning invalid value", xd.FullName())) } if *m == nil { @@ -302,16 +298,15 @@ func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) x.Set(xt, v) (*m)[int32(xd.Number())] = x } -func (m *extensionMap) Mutable(xt protoreflect.ExtensionType) protoreflect.Value { - xd := xt.TypeDescriptor() +func (m *extensionMap) Mutable(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value { if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() { panic("invalid Mutable on field with non-composite type") } if x, ok := (*m)[int32(xd.Number())]; ok { return x.Value() } - v := xt.New() - m.Set(xt, v) + v := xd.Type().New() + m.Set(xd, v) return v } @@ -428,7 +423,7 @@ func (m *messageIfaceWrapper) protoUnwrap() interface{} { // checkField verifies that the provided field descriptor is valid. // Exactly one of the returned values is populated. -func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionType) { +func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionTypeDescriptor) { var fi *fieldInfo if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) { fi = mi.denseFields[n] @@ -457,7 +452,7 @@ func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, if !ok { panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) } - return nil, xtd.Type() + return nil, xtd } panic(fmt.Sprintf("field %v is invalid", fd.FullName())) } diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go index 741d6e5b6..29ba6bd35 100644 --- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go +++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go @@ -27,8 +27,9 @@ func (m *messageState) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageState) ProtoMethods() *protoiface.Methods { - m.messageInfo().init() - return &m.messageInfo().methods + mi := m.messageInfo() + mi.init() + return &mi.methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code @@ -41,8 +42,9 @@ func (m *messageState) ProtoMessageInfo() *MessageInfo { } func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - m.messageInfo().init() - for _, ri := range m.messageInfo().rangeInfos { + mi := m.messageInfo() + mi.init() + for _, ri := range mi.rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { @@ -52,77 +54,86 @@ func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.V } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { - fi := m.messageInfo().fields[n] + fi := mi.fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } - m.messageInfo().extensionMap(m.pointer()).Range(f) + mi.extensionMap(m.pointer()).Range(f) } func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.has(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Has(xt) + return mi.extensionMap(m.pointer()).Has(xd) } } func (m *messageState) Clear(fd protoreflect.FieldDescriptor) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.clear(m.pointer()) } else { - m.messageInfo().extensionMap(m.pointer()).Clear(xt) + mi.extensionMap(m.pointer()).Clear(xd) } } func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.get(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Get(xt) + return mi.extensionMap(m.pointer()).Get(xd) } } func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { - m.messageInfo().extensionMap(m.pointer()).Set(xt, v) + mi.extensionMap(m.pointer()).Set(xd, v) } } func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) + return mi.extensionMap(m.pointer()).Mutable(xd) } } func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.newField() } else { - return xt.New() + return xd.Type().New() } } func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - m.messageInfo().init() - if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { + mi := m.messageInfo() + mi.init() + if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageState) GetUnknown() protoreflect.RawFields { - m.messageInfo().init() - return m.messageInfo().getUnknown(m.pointer()) + mi := m.messageInfo() + mi.init() + return mi.getUnknown(m.pointer()) } func (m *messageState) SetUnknown(b protoreflect.RawFields) { - m.messageInfo().init() - m.messageInfo().setUnknown(m.pointer(), b) + mi := m.messageInfo() + mi.init() + mi.setUnknown(m.pointer(), b) } func (m *messageState) IsValid() bool { return !m.pointer().IsNil() @@ -147,8 +158,9 @@ func (m *messageReflectWrapper) protoUnwrap() interface{} { return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) } func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods { - m.messageInfo().init() - return &m.messageInfo().methods + mi := m.messageInfo() + mi.init() + return &mi.methods } // ProtoMessageInfo is a pseudo-internal API for allowing the v1 code @@ -161,8 +173,9 @@ func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo { } func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - m.messageInfo().init() - for _, ri := range m.messageInfo().rangeInfos { + mi := m.messageInfo() + mi.init() + for _, ri := range mi.rangeInfos { switch ri := ri.(type) { case *fieldInfo: if ri.has(m.pointer()) { @@ -172,77 +185,86 @@ func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, proto } case *oneofInfo: if n := ri.which(m.pointer()); n > 0 { - fi := m.messageInfo().fields[n] + fi := mi.fields[n] if !f(fi.fieldDesc, fi.get(m.pointer())) { return } } } } - m.messageInfo().extensionMap(m.pointer()).Range(f) + mi.extensionMap(m.pointer()).Range(f) } func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.has(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Has(xt) + return mi.extensionMap(m.pointer()).Has(xd) } } func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.clear(m.pointer()) } else { - m.messageInfo().extensionMap(m.pointer()).Clear(xt) + mi.extensionMap(m.pointer()).Clear(xd) } } func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.get(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Get(xt) + return mi.extensionMap(m.pointer()).Get(xd) } } func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { fi.set(m.pointer(), v) } else { - m.messageInfo().extensionMap(m.pointer()).Set(xt, v) + mi.extensionMap(m.pointer()).Set(xd, v) } } func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.mutable(m.pointer()) } else { - return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) + return mi.extensionMap(m.pointer()).Mutable(xd) } } func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { - m.messageInfo().init() - if fi, xt := m.messageInfo().checkField(fd); fi != nil { + mi := m.messageInfo() + mi.init() + if fi, xd := mi.checkField(fd); fi != nil { return fi.newField() } else { - return xt.New() + return xd.Type().New() } } func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { - m.messageInfo().init() - if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { + mi := m.messageInfo() + mi.init() + if oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { return od.Fields().ByNumber(oi.which(m.pointer())) } panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) } func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields { - m.messageInfo().init() - return m.messageInfo().getUnknown(m.pointer()) + mi := m.messageInfo() + mi.init() + return mi.getUnknown(m.pointer()) } func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) { - m.messageInfo().init() - m.messageInfo().setUnknown(m.pointer(), b) + mi := m.messageInfo() + mi.init() + mi.setUnknown(m.pointer(), b) } func (m *messageReflectWrapper) IsValid() bool { return !m.pointer().IsNil() diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go index a50fcfb49..fc6bfc396 100644 --- a/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/vendor/google.golang.org/protobuf/internal/version/version.go @@ -51,7 +51,7 @@ import ( // 10. Send out the CL for review and submit it. const ( Major = 1 - Minor = 33 + Minor = 34 Patch = 0 PreRelease = "" ) diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go index e5b03b567..d75a6534c 100644 --- a/vendor/google.golang.org/protobuf/proto/decode.go +++ b/vendor/google.golang.org/protobuf/proto/decode.go @@ -51,6 +51,8 @@ type UnmarshalOptions struct { // Unmarshal parses the wire-format message in b and places the result in m. // The provided message must be mutable (e.g., a non-nil pointer to a message). +// +// See the [UnmarshalOptions] type if you need more control. func Unmarshal(b []byte, m Message) error { _, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect()) return err diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go index 4fed202f9..1f847bcc3 100644 --- a/vendor/google.golang.org/protobuf/proto/encode.go +++ b/vendor/google.golang.org/protobuf/proto/encode.go @@ -5,12 +5,17 @@ package proto import ( + "errors" + "fmt" + "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" + + protoerrors "google.golang.org/protobuf/internal/errors" ) // MarshalOptions configures the marshaler. @@ -70,7 +75,32 @@ type MarshalOptions struct { UseCachedSize bool } +// flags turns the specified MarshalOptions (user-facing) into +// protoiface.MarshalInputFlags (used internally by the marshaler). +// +// See impl.marshalOptions.Options for the inverse operation. +func (o MarshalOptions) flags() protoiface.MarshalInputFlags { + var flags protoiface.MarshalInputFlags + + // Note: o.AllowPartial is always forced to true by MarshalOptions.marshal, + // which is why it is not a part of MarshalInputFlags. + + if o.Deterministic { + flags |= protoiface.MarshalDeterministic + } + + if o.UseCachedSize { + flags |= protoiface.MarshalUseCachedSize + } + + return flags +} + // Marshal returns the wire-format encoding of m. +// +// This is the most common entry point for encoding a Protobuf message. +// +// See the [MarshalOptions] type if you need more control. func Marshal(m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to output. if m == nil { @@ -116,6 +146,9 @@ func emptyBytesForMessage(m Message) []byte { // MarshalAppend appends the wire-format encoding of m to b, // returning the result. +// +// This is a less common entry point than [Marshal], which is only needed if you +// need to supply your own buffers for performance reasons. func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { // Treat nil message interface as an empty message; nothing to append. if m == nil { @@ -145,12 +178,7 @@ func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoifac in := protoiface.MarshalInput{ Message: m, Buf: b, - } - if o.Deterministic { - in.Flags |= protoiface.MarshalDeterministic - } - if o.UseCachedSize { - in.Flags |= protoiface.MarshalUseCachedSize + Flags: o.flags(), } if methods.Size != nil { sout := methods.Size(protoiface.SizeInput{ @@ -168,6 +196,10 @@ func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoifac out.Buf, err = o.marshalMessageSlow(b, m) } if err != nil { + var mismatch *protoerrors.SizeMismatchError + if errors.As(err, &mismatch) { + return out, fmt.Errorf("marshaling %s: %v", string(m.Descriptor().FullName()), err) + } return out, err } if allowPartial { diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go index 17899a3a7..c9c8721a6 100644 --- a/vendor/google.golang.org/protobuf/proto/extension.go +++ b/vendor/google.golang.org/protobuf/proto/extension.go @@ -11,18 +11,21 @@ import ( // HasExtension reports whether an extension field is populated. // It returns false if m is invalid or if xt does not extend m. func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - // Treat nil message interface as an empty message; no populated fields. - if m == nil { + // Treat nil message interface or descriptor as an empty message; no populated + // fields. + if m == nil || xt == nil { return false } // As a special-case, we reports invalid or mismatching descriptors // as always not being populated (since they aren't). - if xt == nil || m.ProtoReflect().Descriptor() != xt.TypeDescriptor().ContainingMessage() { + mr := m.ProtoReflect() + xd := xt.TypeDescriptor() + if mr.Descriptor() != xd.ContainingMessage() { return false } - return m.ProtoReflect().Has(xt.TypeDescriptor()) + return mr.Has(xd) } // ClearExtension clears an extension field such that subsequent diff --git a/vendor/google.golang.org/protobuf/proto/messageset.go b/vendor/google.golang.org/protobuf/proto/messageset.go index 312d5d45c..575d14831 100644 --- a/vendor/google.golang.org/protobuf/proto/messageset.go +++ b/vendor/google.golang.org/protobuf/proto/messageset.go @@ -47,11 +47,16 @@ func (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]b func (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { b = messageset.AppendFieldStart(b, fd.Number()) b = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType) - b = protowire.AppendVarint(b, uint64(o.Size(value.Message().Interface()))) + calculatedSize := o.Size(value.Message().Interface()) + b = protowire.AppendVarint(b, uint64(calculatedSize)) + before := len(b) b, err := o.marshalMessage(b, value.Message()) if err != nil { return b, err } + if measuredSize := len(b) - before; calculatedSize != measuredSize { + return nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize) + } b = messageset.AppendFieldEnd(b) return b, nil } diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go index f1692b49b..052fb5ae3 100644 --- a/vendor/google.golang.org/protobuf/proto/size.go +++ b/vendor/google.golang.org/protobuf/proto/size.go @@ -34,6 +34,7 @@ func (o MarshalOptions) size(m protoreflect.Message) (size int) { if methods != nil && methods.Size != nil { out := methods.Size(protoiface.SizeInput{ Message: m, + Flags: o.flags(), }) return out.Size } @@ -42,6 +43,7 @@ func (o MarshalOptions) size(m protoreflect.Message) (size int) { // This case is mainly used for legacy types with a Marshal method. out, _ := methods.Marshal(protoiface.MarshalInput{ Message: m, + Flags: o.flags(), }) return len(out.Buf) } diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go index 00b01fbd8..c85bfaa5b 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go @@ -161,7 +161,7 @@ const ( // IsValid reports whether the syntax is valid. func (s Syntax) IsValid() bool { switch s { - case Proto2, Proto3: + case Proto2, Proto3, Editions: return true default: return false diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go index 60ff62b4c..5b80afe52 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go @@ -544,6 +544,12 @@ type EnumDescriptor interface { // ReservedRanges is a list of reserved ranges of enum numbers. ReservedRanges() EnumRanges + // IsClosed reports whether this enum uses closed semantics. + // See https://protobuf.dev/programming-guides/enum/#definitions. + // Note: the Go protobuf implementation is not spec compliant and treats + // all enums as open enums. + IsClosed() bool + isEnumDescriptor } type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } diff --git a/vendor/modules.txt b/vendor/modules.txt index 394940bc9..995c81d6f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -103,13 +103,12 @@ github.com/beorn7/perks/quantile ## explicit; go 1.14 github.com/buckket/go-blurhash github.com/buckket/go-blurhash/base83 -# github.com/bytedance/sonic v1.11.3 +# github.com/bytedance/sonic v1.11.6 ## 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 @@ -123,23 +122,20 @@ github.com/bytedance/sonic/internal/native/sse github.com/bytedance/sonic/internal/native/types github.com/bytedance/sonic/internal/resolver github.com/bytedance/sonic/internal/rt -github.com/bytedance/sonic/loader github.com/bytedance/sonic/option github.com/bytedance/sonic/unquote github.com/bytedance/sonic/utf8 +# github.com/bytedance/sonic/loader v0.1.1 +## explicit; go 1.16 +github.com/bytedance/sonic/loader +github.com/bytedance/sonic/loader/internal/abi +github.com/bytedance/sonic/loader/internal/rt # github.com/cenkalti/backoff/v4 v4.3.0 ## explicit; go 1.18 github.com/cenkalti/backoff/v4 # github.com/cespare/xxhash/v2 v2.2.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d -## explicit; go 1.16 -github.com/chenzhuoyu/base64x -# github.com/chenzhuoyu/iasm v0.9.1 -## explicit; go 1.16 -github.com/chenzhuoyu/iasm/expr -github.com/chenzhuoyu/iasm/x86_64 # github.com/cilium/ebpf v0.9.1 ## explicit; go 1.17 github.com/cilium/ebpf @@ -149,6 +145,13 @@ github.com/cilium/ebpf/internal github.com/cilium/ebpf/internal/sys github.com/cilium/ebpf/internal/unix github.com/cilium/ebpf/link +# github.com/cloudwego/base64x v0.1.4 +## explicit; go 1.16 +github.com/cloudwego/base64x +# github.com/cloudwego/iasm v0.2.0 +## explicit; go 1.16 +github.com/cloudwego/iasm/expr +github.com/cloudwego/iasm/x86_64 # github.com/containerd/cgroups/v3 v3.0.1 ## explicit; go 1.17 github.com/containerd/cgroups/v3 @@ -210,7 +213,7 @@ github.com/gabriel-vasile/mimetype/internal/magic # github.com/gin-contrib/cors v1.7.1 ## explicit; go 1.18 github.com/gin-contrib/cors -# github.com/gin-contrib/gzip v1.0.0 +# github.com/gin-contrib/gzip v1.0.1 ## explicit; go 1.18 github.com/gin-contrib/gzip # github.com/gin-contrib/sessions v1.0.0 @@ -302,7 +305,7 @@ github.com/go-playground/locales/currency # github.com/go-playground/universal-translator v0.18.1 ## explicit; go 1.18 github.com/go-playground/universal-translator -# github.com/go-playground/validator/v10 v10.19.0 +# github.com/go-playground/validator/v10 v10.20.0 ## explicit; go 1.18 github.com/go-playground/validator/v10 # github.com/go-swagger/go-swagger v0.30.6-0.20240418033037-c46c303aaa02 @@ -524,7 +527,7 @@ github.com/opencontainers/runtime-spec/specs-go # github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 ## explicit; go 1.16 github.com/pbnjay/memory -# github.com/pelletier/go-toml/v2 v2.2.0 +# github.com/pelletier/go-toml/v2 v2.2.2 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 github.com/pelletier/go-toml/v2/internal/characters @@ -1175,7 +1178,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.33.0 +# google.golang.org/protobuf v1.34.0 ## explicit; go 1.17 google.golang.org/protobuf/encoding/protojson google.golang.org/protobuf/encoding/prototext -- cgit v1.2.3